Color legend

Only one run hit this line
Both runs hit the line, a different amount of time
Both runs hit the line the same amount of time
None of the run hit this line
Inside file listings: gcov- / lcov-like report, with two line hit counters:
hits for run on reference shader: hits for run on variant shader: line number: source code

File list

Legend for file list:
1st column: number of lines with differents hits, where one run has no hit at all
2nd column: number of lines with different hits, where both runs hit at least once

 - |    48 |   125 | src/intel/brw_cfg.cpp.gcov
 - |    48 |   125 | src/intel/compiler/brw_cfg.cpp.gcov
 - |    48 |   125 | src/intel/compiler/.libs/brw_cfg.cpp.gcov
 - |    41 |    11 | src/intel/brw_predicated_break.cpp.gcov
 - |    41 |    11 | src/intel/compiler/brw_predicated_break.cpp.gcov
 - |    41 |    11 | src/intel/compiler/.libs/brw_predicated_break.cpp.gcov
 - |    16 |   237 | src/compiler/nir/.libs/nir_loop_analyze.c.gcov
 - |    16 |   237 | src/compiler/nir/nir_loop_analyze.c.gcov
 - |    16 |   237 | src/compiler/nir_loop_analyze.c.gcov
 - |     8 |    25 | src/compiler/nir/.libs/nir_opt_trivial_continues.c.gcov
 - |     8 |    25 | src/compiler/nir/nir_opt_trivial_continues.c.gcov
 - |     8 |    25 | src/compiler/nir_opt_trivial_continues.c.gcov
 - |     6 |   337 | src/compiler/nir/.libs/nir_validate.c.gcov
 - |     6 |   337 | src/compiler/nir/nir_validate.c.gcov
 - |     6 |   337 | src/compiler/nir_validate.c.gcov
 - |     4 |   178 | src/intel/brw_fs_copy_propagation.cpp.gcov
 - |     4 |   178 | src/intel/compiler/brw_fs_copy_propagation.cpp.gcov
 - |     4 |   178 | src/intel/compiler/.libs/brw_fs_copy_propagation.cpp.gcov
 - |     4 |    76 | src/intel/brw_shader.cpp.gcov
 - |     4 |    76 | src/intel/compiler/brw_shader.cpp.gcov
 - |     4 |    76 | src/intel/compiler/.libs/brw_shader.cpp.gcov
 - |     3 |   167 | src/compiler/nir/.libs/nir_search.c.gcov
 - |     3 |   167 | src/compiler/nir/nir_search.c.gcov
 - |     3 |   167 | src/compiler/nir_search.c.gcov
 - |     3 |    27 | src/compiler/glsl/glsl_lexer.ll.gcov
 - |     3 |    27 | src/compiler/glsl/glsl_parser.yy.gcov
 - |     3 |    27 | src/compiler/glsl/.libs/glsl_lexer.ll.gcov
 - |     3 |    27 | src/compiler/glsl/.libs/glsl_parser.yy.gcov
 - |     3 |    27 | src/compiler/glsl_lexer.ll.gcov
 - |     3 |    27 | src/compiler/glsl_parser.yy.gcov
 - |     3 |    20 | src/compiler/nir/.libs/nir_opt_loop_unroll.c.gcov
 - |     3 |    20 | src/compiler/nir/nir_opt_loop_unroll.c.gcov
 - |     3 |    20 | src/compiler/nir_opt_loop_unroll.c.gcov
 - |     3 |     3 | src/compiler/glsl/ir_function_detect_recursion.cpp.gcov
 - |     3 |     3 | src/compiler/glsl/.libs/ir_function_detect_recursion.cpp.gcov
 - |     3 |     3 | src/compiler/ir_function_detect_recursion.cpp.gcov
 - |     2 |    39 | src/compiler/nir/.libs/nir_opt_algebraic.c.gcov
 - |     2 |    39 | src/compiler/nir/nir_opt_algebraic.c.gcov
 - |     2 |    39 | src/compiler/nir_opt_algebraic.c.gcov
 - |     2 |     5 | src/mesa/drivers/dri/i965/brw_bufmgr.c.gcov
 - |     2 |     5 | src/mesa/drivers/dri/i965/.libs/brw_bufmgr.c.gcov
 - |     1 |   477 | src/compiler/nir/.libs/nir.c.gcov
 - |     1 |   477 | src/compiler/nir/nir.c.gcov
 - |     1 |   477 | src/compiler/nir.c.gcov
 - |     1 |   110 | src/compiler/glsl/.libs/lower_jumps.cpp.gcov
 - |     1 |   110 | src/compiler/glsl/lower_jumps.cpp.gcov
 - |     1 |   110 | src/compiler/lower_jumps.cpp.gcov
 - |     1 |   103 | src/intel/brw_fs_register_coalesce.cpp.gcov
 - |     1 |   103 | src/intel/compiler/brw_fs_register_coalesce.cpp.gcov
 - |     1 |   103 | src/intel/compiler/.libs/brw_fs_register_coalesce.cpp.gcov
 - |     1 |    97 | src/compiler/ast_to_hir.cpp.gcov
 - |     1 |    97 | src/compiler/glsl/ast_to_hir.cpp.gcov
 - |     1 |    97 | src/compiler/glsl/.libs/ast_to_hir.cpp.gcov
 - |     1 |    88 | src/compiler/nir/.libs/nir_liveness.c.gcov
 - |     1 |    88 | src/compiler/nir/nir_liveness.c.gcov
 - |     1 |    88 | src/compiler/nir_liveness.c.gcov
 - |     1 |    49 | src/compiler/glsl/glsl_parser.cpp.gcov
 - |     1 |    49 | src/compiler/glsl/.libs/glsl_parser.cpp.gcov
 - |     1 |    49 | src/compiler/glsl_parser.cpp.gcov
 - |     1 |    38 | src/intel/brw_fs_reg_allocate.cpp.gcov
 - |     1 |    38 | src/intel/compiler/brw_fs_reg_allocate.cpp.gcov
 - |     1 |    38 | src/intel/compiler/.libs/brw_fs_reg_allocate.cpp.gcov
 - |     0 |   445 | src/intel/brw_fs.cpp.gcov
 - |     0 |   445 | src/intel/compiler/brw_fs.cpp.gcov
 - |     0 |   445 | src/intel/compiler/.libs/brw_fs.cpp.gcov
 - |     0 |   338 | src/intel/brw_eu_emit.c.gcov
 - |     0 |   338 | src/intel/compiler/brw_eu_emit.c.gcov
 - |     0 |   338 | src/intel/compiler/.libs/brw_eu_emit.c.gcov
 - |     0 |   308 | src/intel/brw_schedule_instructions.cpp.gcov
 - |     0 |   308 | src/intel/compiler/brw_schedule_instructions.cpp.gcov
 - |     0 |   308 | src/intel/compiler/.libs/brw_schedule_instructions.cpp.gcov
 - |     0 |   238 | src/compiler/nir/.libs/nir_from_ssa.c.gcov
 - |     0 |   238 | src/compiler/nir/nir_from_ssa.c.gcov
 - |     0 |   238 | src/compiler/nir_from_ssa.c.gcov
 - |     0 |   181 | src/util/.libs/ralloc.c.gcov
 - |     0 |   181 | src/util/ralloc.c.gcov
 - |     0 |   173 | src/compiler/nir/.libs/nir_instr_set.c.gcov
 - |     0 |   173 | src/compiler/nir/nir_instr_set.c.gcov
 - |     0 |   173 | src/compiler/nir_instr_set.c.gcov
 - |     0 |   164 | src/compiler/glsl/.libs/opt_copy_propagation_elements.cpp.gcov
 - |     0 |   164 | src/compiler/glsl/opt_copy_propagation_elements.cpp.gcov
 - |     0 |   164 | src/compiler/opt_copy_propagation_elements.cpp.gcov
 - |     0 |   162 | src/intel/brw_eu_validate.c.gcov
 - |     0 |   162 | src/intel/compiler/brw_eu_validate.c.gcov
 - |     0 |   162 | src/intel/compiler/.libs/brw_eu_validate.c.gcov
 - |     0 |   152 | src/compiler/nir/.libs/nir_control_flow.c.gcov
 - |     0 |   152 | src/compiler/nir/nir_control_flow.c.gcov
 - |     0 |   152 | src/compiler/nir_control_flow.c.gcov
 - |     0 |   143 | src/intel/brw_fs_live_variables.cpp.gcov
 - |     0 |   143 | src/intel/compiler/brw_fs_live_variables.cpp.gcov
 - |     0 |   143 | src/intel/compiler/.libs/brw_fs_live_variables.cpp.gcov
 - |     0 |   133 | src/compiler/nir/.libs/nir_lower_vars_to_ssa.c.gcov
 - |     0 |   133 | src/compiler/nir/nir_lower_vars_to_ssa.c.gcov
 - |     0 |   133 | src/compiler/nir_lower_vars_to_ssa.c.gcov
 - |     0 |   122 | src/compiler/glcpp-parse.y.gcov
 - |     0 |   122 | src/compiler/glsl/glcpp/glcpp-parse.y.gcov
 - |     0 |   122 | src/compiler/glsl/glcpp/.libs/glcpp-parse.y.gcov
 - |     0 |   122 | src/compiler/glsl/glcpp-parse.y.gcov
 - |     0 |   122 | src/compiler/nir/.libs/nir_clone.c.gcov
 - |     0 |   122 | src/compiler/nir/nir_clone.c.gcov
 - |     0 |   122 | src/compiler/nir_clone.c.gcov
 - |     0 |   118 | src/intel/brw_fs_cse.cpp.gcov
 - |     0 |   118 | src/intel/compiler/brw_fs_cse.cpp.gcov
 - |     0 |   118 | src/intel/compiler/.libs/brw_fs_cse.cpp.gcov
 - |     0 |   116 | src/compiler/glsl/ir.cpp.gcov
 - |     0 |   116 | src/compiler/glsl/.libs/ir.cpp.gcov
 - |     0 |   116 | src/compiler/ir.cpp.gcov
 - |     0 |   113 | src/compiler/nir/.libs/nir_opt_copy_propagate.c.gcov
 - |     0 |   113 | src/compiler/nir/nir_opt_copy_propagate.c.gcov
 - |     0 |   113 | src/compiler/nir_opt_copy_propagate.c.gcov
 - |     0 |   113 | src/intel/brw_eu_compact.c.gcov
 - |     0 |   113 | src/intel/compiler/brw_eu_compact.c.gcov
 - |     0 |   113 | src/intel/compiler/.libs/brw_eu_compact.c.gcov
 - |     0 |   107 | src/util/hash_table.c.gcov
 - |     0 |   107 | src/util/.libs/hash_table.c.gcov
 - |     0 |   101 | src/util/.libs/set.c.gcov
 - |     0 |   101 | src/util/set.c.gcov
 - |     0 |   100 | src/intel/brw_fs_nir.cpp.gcov
 - |     0 |   100 | src/intel/compiler/brw_fs_nir.cpp.gcov
 - |     0 |   100 | src/intel/compiler/.libs/brw_fs_nir.cpp.gcov
 - |     0 |    92 | src/compiler/glsl/glsl_to_nir.cpp.gcov
 - |     0 |    92 | src/compiler/glsl/.libs/glsl_to_nir.cpp.gcov
 - |     0 |    92 | src/compiler/glsl_to_nir.cpp.gcov
 - |     0 |    91 | src/compiler/glsl/.libs/opt_constant_propagation.cpp.gcov
 - |     0 |    91 | src/compiler/glsl/opt_constant_propagation.cpp.gcov
 - |     0 |    91 | src/compiler/opt_constant_propagation.cpp.gcov
 - |     0 |    85 | src/compiler/nir/.libs/nir_lower_io.c.gcov
 - |     0 |    85 | src/compiler/nir/nir_lower_io.c.gcov
 - |     0 |    85 | src/compiler/nir_lower_io.c.gcov
 - |     0 |    84 | src/compiler/glsl/.libs/opt_copy_propagation.cpp.gcov
 - |     0 |    84 | src/compiler/glsl/opt_copy_propagation.cpp.gcov
 - |     0 |    84 | src/compiler/opt_copy_propagation.cpp.gcov
 - |     0 |    84 | src/intel/brw_fs_generator.cpp.gcov
 - |     0 |    84 | src/intel/compiler/brw_fs_generator.cpp.gcov
 - |     0 |    84 | src/intel/compiler/.libs/brw_fs_generator.cpp.gcov
 - |     0 |    79 | src/compiler/glsl/.libs/nir_builder.h.gcov
 - |     0 |    79 | src/compiler/glsl/nir_builder.h.gcov
 - |     0 |    79 | src/compiler/nir_builder.h.gcov
 - |     0 |    69 | src/compiler/glsl/ir_hv_accept.cpp.gcov
 - |     0 |    69 | src/compiler/glsl/.libs/ir_hv_accept.cpp.gcov
 - |     0 |    69 | src/compiler/ir_hv_accept.cpp.gcov
 - |     0 |    65 | src/compiler/nir/.libs/nir_phi_builder.c.gcov
 - |     0 |    65 | src/compiler/nir/nir_phi_builder.c.gcov
 - |     0 |    65 | src/compiler/nir_phi_builder.c.gcov
 - |     0 |    63 | src/compiler/nir/.libs/nir_dominance.c.gcov
 - |     0 |    63 | src/compiler/nir/nir_dominance.c.gcov
 - |     0 |    63 | src/compiler/nir_dominance.c.gcov
 - |     0 |    61 | src/compiler/glcpp-parse.c.gcov
 - |     0 |    61 | src/compiler/glsl/glcpp/glcpp-parse.c.gcov
 - |     0 |    61 | src/compiler/glsl/glcpp/.libs/glcpp-parse.c.gcov
 - |     0 |    61 | src/compiler/glsl/glcpp-parse.c.gcov
 - |     0 |    60 | src/compiler/glsl/ir_hierarchical_visitor.cpp.gcov
 - |     0 |    60 | src/compiler/glsl/.libs/ir_hierarchical_visitor.cpp.gcov
 - |     0 |    60 | src/compiler/ir_hierarchical_visitor.cpp.gcov
 - |     0 |    58 | src/compiler/nir/.libs/nir_lower_to_source_mods.c.gcov
 - |     0 |    58 | src/compiler/nir/nir_lower_to_source_mods.c.gcov
 - |     0 |    58 | src/compiler/nir_lower_to_source_mods.c.gcov
 - |     0 |    57 | src/compiler/nir/.libs/nir_opt_copy_prop_vars.c.gcov
 - |     0 |    57 | src/compiler/nir/nir_opt_copy_prop_vars.c.gcov
 - |     0 |    57 | src/compiler/nir_opt_copy_prop_vars.c.gcov
 - |     0 |    55 | src/intel/brw_eu.c.gcov
 - |     0 |    55 | src/intel/compiler/brw_eu.c.gcov
 - |     0 |    55 | src/intel/compiler/.libs/brw_eu.c.gcov
 - |     0 |    54 | src/compiler/nir/.libs/nir_lower_wpos_ytransform.c.gcov
 - |     0 |    54 | src/compiler/nir/nir_lower_wpos_ytransform.c.gcov
 - |     0 |    54 | src/compiler/nir_lower_wpos_ytransform.c.gcov
 - |     0 |    53 | src/intel/brw_fs_dead_code_eliminate.cpp.gcov
 - |     0 |    53 | src/intel/compiler/brw_fs_dead_code_eliminate.cpp.gcov
 - |     0 |    53 | src/intel/compiler/.libs/brw_fs_dead_code_eliminate.cpp.gcov
 - |     0 |    49 | src/compiler/nir/.libs/nir_gather_info.c.gcov
 - |     0 |    49 | src/compiler/nir/.libs/nir_opt_dce.c.gcov
 - |     0 |    49 | src/compiler/nir/nir_gather_info.c.gcov
 - |     0 |    49 | src/compiler/nir/nir_opt_dce.c.gcov
 - |     0 |    49 | src/compiler/nir_gather_info.c.gcov
 - |     0 |    49 | src/compiler/nir_opt_dce.c.gcov
 - |     0 |    44 | src/compiler/nir/.libs/nir_opt_dead_cf.c.gcov
 - |     0 |    44 | src/compiler/nir/nir_opt_dead_cf.c.gcov
 - |     0 |    44 | src/compiler/nir_opt_dead_cf.c.gcov
 - |     0 |    42 | src/compiler/glsl/.libs/nir.h.gcov
 - |     0 |    42 | src/compiler/glsl/nir.h.gcov
 - |     0 |    42 | src/compiler/nir.h.gcov
 - |     0 |    41 | src/compiler/nir/.libs/nir_lower_alu_to_scalar.c.gcov
 - |     0 |    41 | src/compiler/nir/nir_lower_alu_to_scalar.c.gcov
 - |     0 |    41 | src/compiler/nir_lower_alu_to_scalar.c.gcov
 - |     0 |    40 | src/compiler/nir/.libs/nir_lower_returns.c.gcov
 - |     0 |    40 | src/compiler/nir/nir_lower_returns.c.gcov
 - |     0 |    40 | src/compiler/nir_lower_returns.c.gcov
 - |     0 |    38 | src/compiler/glcpp-lex.l.gcov
 - |     0 |    38 | src/compiler/glsl/glcpp/glcpp-lex.l.gcov
 - |     0 |    38 | src/compiler/glsl/glcpp/.libs/glcpp-lex.l.gcov
 - |     0 |    38 | src/compiler/glsl/glcpp-lex.l.gcov
 - |     0 |    38 | src/compiler/glsl/.libs/opt_algebraic.cpp.gcov
 - |     0 |    38 | src/compiler/glsl/opt_algebraic.cpp.gcov
 - |     0 |    38 | src/compiler/nir/.libs/nir_constant_expressions.c.gcov
 - |     0 |    38 | src/compiler/nir/nir_constant_expressions.c.gcov
 - |     0 |    38 | src/compiler/nir_constant_expressions.c.gcov
 - |     0 |    38 | src/compiler/opt_algebraic.cpp.gcov
 - |     0 |    38 | src/intel/brw_fs_cmod_propagation.cpp.gcov
 - |     0 |    38 | src/intel/compiler/brw_fs_cmod_propagation.cpp.gcov
 - |     0 |    38 | src/intel/compiler/.libs/brw_fs_cmod_propagation.cpp.gcov
 - |     0 |    37 | src/compiler/glsl/ir_validate.cpp.gcov
 - |     0 |    37 | src/compiler/glsl/.libs/ir_validate.cpp.gcov
 - |     0 |    37 | src/compiler/ir_validate.cpp.gcov
 - |     0 |    37 | src/compiler/nir/.libs/nir_opt_constant_folding.c.gcov
 - |     0 |    37 | src/compiler/nir/nir_opt_constant_folding.c.gcov
 - |     0 |    37 | src/compiler/nir_opt_constant_folding.c.gcov
 - |     0 |    36 | src/util/.libs/register_allocate.c.gcov
 - |     0 |    36 | src/util/register_allocate.c.gcov
 - |     0 |    34 | src/compiler/nir/.libs/nir_sweep.c.gcov
 - |     0 |    34 | src/compiler/nir/nir_sweep.c.gcov
 - |     0 |    34 | src/compiler/nir_sweep.c.gcov
 - |     0 |    32 | src/compiler/nir/.libs/nir_opt_move_comparisons.c.gcov
 - |     0 |    32 | src/compiler/nir/nir_opt_move_comparisons.c.gcov
 - |     0 |    32 | src/compiler/nir_opt_move_comparisons.c.gcov
 - |     0 |    32 | src/intel/brw_fs_sel_peephole.cpp.gcov
 - |     0 |    32 | src/intel/compiler/brw_fs_sel_peephole.cpp.gcov
 - |     0 |    32 | src/intel/compiler/.libs/brw_fs_sel_peephole.cpp.gcov
 - |     0 |    31 | src/compiler/glsl/glsl_lexer.cpp.gcov
 - |     0 |    31 | src/compiler/glsl/.libs/glsl_lexer.cpp.gcov
 - |     0 |    31 | src/compiler/glsl_lexer.cpp.gcov
 - |     0 |    31 | src/compiler/nir/.libs/nir_opt_if.c.gcov
 - |     0 |    31 | src/compiler/nir/nir_opt_if.c.gcov
 - |     0 |    31 | src/compiler/nir_opt_if.c.gcov
 - |     0 |    30 | src/compiler/glsl/glsl_parser_extras.cpp.gcov
 - |     0 |    30 | src/compiler/glsl/.libs/glsl_parser_extras.cpp.gcov
 - |     0 |    30 | src/compiler/glsl_parser_extras.cpp.gcov
 - |     0 |    30 | src/compiler/nir/.libs/nir_remove_dead_variables.c.gcov
 - |     0 |    30 | src/compiler/nir/nir_remove_dead_variables.c.gcov
 - |     0 |    30 | src/compiler/nir_remove_dead_variables.c.gcov
 - |     0 |    30 | src/intel/brw_nir_opt_peephole_ffma.c.gcov
 - |     0 |    30 | src/intel/compiler/brw_nir_opt_peephole_ffma.c.gcov
 - |     0 |    30 | src/intel/compiler/.libs/brw_nir_opt_peephole_ffma.c.gcov
 - |     0 |    29 | src/compiler/glsl/ir_clone.cpp.gcov
 - |     0 |    29 | src/compiler/glsl/.libs/ir_clone.cpp.gcov
 - |     0 |    29 | src/compiler/ir_clone.cpp.gcov
 - |     0 |    29 | src/compiler/nir/.libs/nir_opt_remove_phis.c.gcov
 - |     0 |    29 | src/compiler/nir/nir_opt_remove_phis.c.gcov
 - |     0 |    29 | src/compiler/nir_opt_remove_phis.c.gcov
 - |     0 |    28 | src/compiler/glcpp-lex.c.gcov
 - |     0 |    28 | src/compiler/glsl/glcpp/glcpp-lex.c.gcov
 - |     0 |    28 | src/compiler/glsl/glcpp/.libs/glcpp-lex.c.gcov
 - |     0 |    28 | src/compiler/glsl/glcpp-lex.c.gcov
 - |     0 |    28 | src/compiler/glsl/.libs/opt_dead_code_local.cpp.gcov
 - |     0 |    28 | src/compiler/glsl/opt_dead_code_local.cpp.gcov
 - |     0 |    28 | src/compiler/opt_dead_code_local.cpp.gcov
 - |     0 |    27 | src/compiler/glsl/ir_rvalue_visitor.cpp.gcov
 - |     0 |    27 | src/compiler/glsl/.libs/ir_rvalue_visitor.cpp.gcov
 - |     0 |    27 | src/compiler/ir_rvalue_visitor.cpp.gcov
 - |     0 |    27 | src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp.gcov
 - |     0 |    27 | src/mesa/drivers/dri/i965/.libs/brw_fs_vector_splitting.cpp.gcov
 - |     0 |    26 | src/compiler/glsl/ir_variable_refcount.cpp.gcov
 - |     0 |    26 | src/compiler/glsl/.libs/ir_variable_refcount.cpp.gcov
 - |     0 |    26 | src/compiler/ir_variable_refcount.cpp.gcov
 - |     0 |    24 | src/compiler/nir/.libs/nir_lower_regs_to_ssa.c.gcov
 - |     0 |    24 | src/compiler/nir/nir_lower_regs_to_ssa.c.gcov
 - |     0 |    24 | src/compiler/nir_lower_regs_to_ssa.c.gcov
 - |     0 |    23 | src/compiler/nir/.libs/nir_worklist.c.gcov
 - |     0 |    23 | src/compiler/nir/nir_worklist.c.gcov
 - |     0 |    23 | src/compiler/nir_worklist.c.gcov
 - |     0 |    23 | src/intel/brw_nir.c.gcov
 - |     0 |    23 | src/intel/compiler/brw_nir.c.gcov
 - |     0 |    23 | src/intel/compiler/.libs/brw_nir.c.gcov
 - |     0 |    22 | src/compiler/nir/.libs/nir_opt_undef.c.gcov
 - |     0 |    22 | src/compiler/nir/nir_opt_undef.c.gcov
 - |     0 |    22 | src/compiler/nir_opt_undef.c.gcov
 - |     0 |    22 | src/mesa/program/.libs/symbol_table.c.gcov
 - |     0 |    22 | src/mesa/program/symbol_table.c.gcov
 - |     0 |    22 | src/mesa/symbol_table.c.gcov
 - |     0 |    22 | src/symbol_table.c.gcov
 - |     0 |    21 | src/compiler/glsl/ir_basic_block.cpp.gcov
 - |     0 |    21 | src/compiler/glsl/ir_constant_expression.cpp.gcov
 - |     0 |    21 | src/compiler/glsl/.libs/ir_basic_block.cpp.gcov
 - |     0 |    21 | src/compiler/glsl/.libs/ir_constant_expression.cpp.gcov
 - |     0 |    21 | src/compiler/ir_basic_block.cpp.gcov
 - |     0 |    21 | src/compiler/ir_constant_expression.cpp.gcov
 - |     0 |    20 | src/compiler/nir/.libs/nir_opt_peephole_select.c.gcov
 - |     0 |    20 | src/compiler/nir/nir_opt_peephole_select.c.gcov
 - |     0 |    20 | src/compiler/nir_opt_peephole_select.c.gcov
 - |     0 |    20 | src/intel/brw_dead_control_flow.cpp.gcov
 - |     0 |    20 | src/intel/compiler/brw_dead_control_flow.cpp.gcov
 - |     0 |    20 | src/intel/compiler/.libs/brw_dead_control_flow.cpp.gcov
 - |     0 |    19 | src/compiler/glsl/.libs/opt_constant_folding.cpp.gcov
 - |     0 |    19 | src/compiler/glsl/opt_constant_folding.cpp.gcov
 - |     0 |    19 | src/compiler/nir/.libs/nir_lower_phis_to_scalar.c.gcov
 - |     0 |    19 | src/compiler/nir/nir_lower_phis_to_scalar.c.gcov
 - |     0 |    19 | src/compiler/nir_lower_phis_to_scalar.c.gcov
 - |     0 |    19 | src/compiler/opt_constant_folding.cpp.gcov
 - |     0 |    19 | src/mesa/program/ir.h.gcov
 - |     0 |    19 | src/mesa/program/.libs/ir.h.gcov
 - |     0 |    17 | src/compiler/glsl/glsl_symbol_table.cpp.gcov
 - |     0 |    17 | src/compiler/glsl/.libs/glsl_symbol_table.cpp.gcov
 - |     0 |    17 | src/compiler/glsl/.libs/lower_ubo_reference.cpp.gcov
 - |     0 |    17 | src/compiler/glsl/.libs/opt_dead_builtin_varyings.cpp.gcov
 - |     0 |    17 | src/compiler/glsl/lower_ubo_reference.cpp.gcov
 - |     0 |    17 | src/compiler/glsl/opt_dead_builtin_varyings.cpp.gcov
 - |     0 |    17 | src/compiler/glsl_symbol_table.cpp.gcov
 - |     0 |    17 | src/compiler/lower_ubo_reference.cpp.gcov
 - |     0 |    17 | src/compiler/opt_dead_builtin_varyings.cpp.gcov
 - |     0 |    16 | src/compiler/nir/.libs/nir_lower_constant_initializers.c.gcov
 - |     0 |    16 | src/compiler/nir/nir_lower_constant_initializers.c.gcov
 - |     0 |    16 | src/compiler/nir_lower_constant_initializers.c.gcov
 - |     0 |    15 | src/compiler/glsl/hir_field_selection.cpp.gcov
 - |     0 |    15 | src/compiler/glsl/.libs/hir_field_selection.cpp.gcov
 - |     0 |    15 | src/compiler/hir_field_selection.cpp.gcov
 - |     0 |    15 | src/compiler/nir/.libs/nir_lower_indirect_derefs.c.gcov
 - |     0 |    15 | src/compiler/nir/nir_lower_indirect_derefs.c.gcov
 - |     0 |    15 | src/compiler/nir_lower_indirect_derefs.c.gcov
 - |     0 |    15 | src/intel/brw_fs_saturate_propagation.cpp.gcov
 - |     0 |    15 | src/intel/compiler/brw_fs_saturate_propagation.cpp.gcov
 - |     0 |    15 | src/intel/compiler/.libs/brw_fs_saturate_propagation.cpp.gcov
 - |     0 |    15 | src/mesa/program/.libs/list.h.gcov
 - |     0 |    15 | src/mesa/program/list.h.gcov
 - |     0 |    14 | src/compiler/glsl/.libs/lower_vec_index_to_cond_assign.cpp.gcov
 - |     0 |    14 | src/compiler/glsl/lower_vec_index_to_cond_assign.cpp.gcov
 - |     0 |    14 | src/compiler/.libs/nir_types.cpp.gcov
 - |     0 |    14 | src/compiler/lower_vec_index_to_cond_assign.cpp.gcov
 - |     0 |    14 | src/compiler/nir_types.cpp.gcov
 - |     0 |    14 | src/loader/.libs/loader_dri3_helper.c.gcov
 - |     0 |    14 | src/loader/loader_dri3_helper.c.gcov
 - |     0 |    13 | src/compiler/glsl/.libs/lower_packing_builtins.cpp.gcov
 - |     0 |    13 | src/compiler/glsl/lower_packing_builtins.cpp.gcov
 - |     0 |    13 | src/compiler/glsl_types.cpp.gcov
 - |     0 |    13 | src/compiler/.libs/glsl_types.cpp.gcov
 - |     0 |    13 | src/compiler/lower_packing_builtins.cpp.gcov
 - |     0 |    13 | src/compiler/nir/.libs/nir_lower_global_vars_to_local.c.gcov
 - |     0 |    13 | src/compiler/nir/.libs/nir_lower_system_values.c.gcov
 - |     0 |    13 | src/compiler/nir/nir_lower_global_vars_to_local.c.gcov
 - |     0 |    13 | src/compiler/nir/nir_lower_system_values.c.gcov
 - |     0 |    13 | src/compiler/nir_lower_global_vars_to_local.c.gcov
 - |     0 |    13 | src/compiler/nir_lower_system_values.c.gcov
 - |     0 |    12 | src/compiler/glsl/.libs/lower_discard_flow.cpp.gcov
 - |     0 |    12 | src/compiler/glsl/.libs/opt_array_splitting.cpp.gcov
 - |     0 |    12 | src/compiler/glsl/lower_discard_flow.cpp.gcov
 - |     0 |    12 | src/compiler/glsl/opt_array_splitting.cpp.gcov
 - |     0 |    12 | src/compiler/lower_discard_flow.cpp.gcov
 - |     0 |    12 | src/compiler/nir/.libs/nir_opt_cse.c.gcov
 - |     0 |    12 | src/compiler/nir/nir_opt_cse.c.gcov
 - |     0 |    12 | src/compiler/nir_opt_cse.c.gcov
 - |     0 |    12 | src/compiler/opt_array_splitting.cpp.gcov
 - |     0 |    11 | src/compiler/glsl/.libs/opt_if_simplification.cpp.gcov
 - |     0 |    11 | src/compiler/glsl/opt_if_simplification.cpp.gcov
 - |     0 |    11 | src/compiler/opt_if_simplification.cpp.gcov
 - |     0 |    10 | src/compiler/bitset.h.gcov
 - |     0 |    10 | src/compiler/glsl/ir_array_refcount.cpp.gcov
 - |     0 |    10 | src/compiler/glsl/.libs/ir_array_refcount.cpp.gcov
 - |     0 |    10 | src/compiler/glsl/.libs/opt_structure_splitting.cpp.gcov
 - |     0 |    10 | src/compiler/glsl/opt_structure_splitting.cpp.gcov
 - |     0 |    10 | src/compiler/ir_array_refcount.cpp.gcov
 - |     0 |    10 | src/compiler/nir/bitset.h.gcov
 - |     0 |    10 | src/compiler/nir/.libs/bitset.h.gcov
 - |     0 |    10 | src/compiler/nir/.libs/nir_split_var_copies.c.gcov
 - |     0 |    10 | src/compiler/nir/nir_split_var_copies.c.gcov
 - |     0 |    10 | src/compiler/nir_split_var_copies.c.gcov
 - |     0 |    10 | src/compiler/opt_structure_splitting.cpp.gcov
 - |     0 |    10 | src/intel/brw_fs_combine_constants.cpp.gcov
 - |     0 |    10 | src/intel/brw_fs_lower_conversions.cpp.gcov
 - |     0 |    10 | src/intel/compiler/brw_fs_combine_constants.cpp.gcov
 - |     0 |    10 | src/intel/compiler/brw_fs_lower_conversions.cpp.gcov
 - |     0 |    10 | src/intel/compiler/.libs/brw_fs_combine_constants.cpp.gcov
 - |     0 |    10 | src/intel/compiler/.libs/brw_fs_lower_conversions.cpp.gcov
 - |     0 |     9 | src/compiler/glsl/.libs/opt_redundant_jumps.cpp.gcov
 - |     0 |     9 | src/compiler/glsl/.libs/opt_tree_grafting.cpp.gcov
 - |     0 |     9 | src/compiler/glsl/opt_redundant_jumps.cpp.gcov
 - |     0 |     9 | src/compiler/glsl/opt_tree_grafting.cpp.gcov
 - |     0 |     9 | src/compiler/opt_redundant_jumps.cpp.gcov
 - |     0 |     9 | src/compiler/opt_tree_grafting.cpp.gcov
 - |     0 |     9 | src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp.gcov
 - |     0 |     9 | src/mesa/drivers/dri/i965/.libs/brw_fs_channel_expressions.cpp.gcov
 - |     0 |     8 | src/compiler/glsl/.libs/opt_function_inlining.cpp.gcov
 - |     0 |     8 | src/compiler/glsl/.libs/opt_rebalance_tree.cpp.gcov
 - |     0 |     8 | src/compiler/glsl/opt_function_inlining.cpp.gcov
 - |     0 |     8 | src/compiler/glsl/opt_rebalance_tree.cpp.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_lower_64bit_packing.c.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_lower_double_ops.c.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_lower_int64.c.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_lower_tex.c.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_metadata.c.gcov
 - |     0 |     8 | src/compiler/nir/.libs/nir_normalize_cubemap_coords.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_lower_64bit_packing.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_lower_double_ops.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_lower_int64.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_lower_tex.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_metadata.c.gcov
 - |     0 |     8 | src/compiler/nir/nir_normalize_cubemap_coords.c.gcov
 - |     0 |     8 | src/compiler/nir_lower_64bit_packing.c.gcov
 - |     0 |     8 | src/compiler/nir_lower_double_ops.c.gcov
 - |     0 |     8 | src/compiler/nir_lower_int64.c.gcov
 - |     0 |     8 | src/compiler/nir_lower_tex.c.gcov
 - |     0 |     8 | src/compiler/nir_metadata.c.gcov
 - |     0 |     8 | src/compiler/nir_normalize_cubemap_coords.c.gcov
 - |     0 |     8 | src/compiler/opt_function_inlining.cpp.gcov
 - |     0 |     8 | src/compiler/opt_rebalance_tree.cpp.gcov
 - |     0 |     8 | src/intel/brw_fs_validate.cpp.gcov
 - |     0 |     8 | src/intel/compiler/brw_fs_validate.cpp.gcov
 - |     0 |     8 | src/intel/compiler/.libs/brw_fs_validate.cpp.gcov
 - |     0 |     7 | src/compiler/glsl/.libs/lower_mat_op_to_vec.cpp.gcov
 - |     0 |     7 | src/compiler/glsl/lower_mat_op_to_vec.cpp.gcov
 - |     0 |     7 | src/compiler/lower_mat_op_to_vec.cpp.gcov
 - |     0 |     7 | src/compiler/nir/.libs/nir_lower_atomics.c.gcov
 - |     0 |     7 | src/compiler/nir/.libs/nir_lower_locals_to_regs.c.gcov
 - |     0 |     7 | src/compiler/nir/.libs/nir_lower_var_copies.c.gcov
 - |     0 |     7 | src/compiler/nir/nir_lower_atomics.c.gcov
 - |     0 |     7 | src/compiler/nir/nir_lower_locals_to_regs.c.gcov
 - |     0 |     7 | src/compiler/nir/nir_lower_var_copies.c.gcov
 - |     0 |     7 | src/compiler/nir_lower_atomics.c.gcov
 - |     0 |     7 | src/compiler/nir_lower_locals_to_regs.c.gcov
 - |     0 |     7 | src/compiler/nir_lower_var_copies.c.gcov
 - |     0 |     6 | src/compiler/glsl/.libs/lower_noise.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/.libs/lower_vector.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/.libs/lower_vector_insert.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/.libs/opt_dead_code.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/.libs/opt_minmax.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/lower_noise.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/lower_vector.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/lower_vector_insert.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/opt_dead_code.cpp.gcov
 - |     0 |     6 | src/compiler/glsl/opt_minmax.cpp.gcov
 - |     0 |     6 | src/compiler/lower_noise.cpp.gcov
 - |     0 |     6 | src/compiler/lower_vector.cpp.gcov
 - |     0 |     6 | src/compiler/lower_vector_insert.cpp.gcov
 - |     0 |     6 | src/compiler/opt_dead_code.cpp.gcov
 - |     0 |     6 | src/compiler/opt_minmax.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/lower_const_arrays_to_uniforms.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/lower_named_interface_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/lower_vec_index_to_swizzle.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/opt_conditional_discard.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/opt_flatten_nested_if_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/.libs/opt_noop_swizzle.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/lower_const_arrays_to_uniforms.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/lower_named_interface_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/lower_vec_index_to_swizzle.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/opt_conditional_discard.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/opt_flatten_nested_if_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/glsl/opt_noop_swizzle.cpp.gcov
 - |     0 |     5 | src/compiler/lower_const_arrays_to_uniforms.cpp.gcov
 - |     0 |     5 | src/compiler/lower_named_interface_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/lower_vec_index_to_swizzle.cpp.gcov
 - |     0 |     5 | src/compiler/opt_conditional_discard.cpp.gcov
 - |     0 |     5 | src/compiler/opt_flatten_nested_if_blocks.cpp.gcov
 - |     0 |     5 | src/compiler/opt_noop_swizzle.cpp.gcov
 - |     0 |     5 | src/mesa/program/glsl_types.h.gcov
 - |     0 |     5 | src/mesa/program/.libs/glsl_types.h.gcov
 - |     0 |     4 | src/compiler/ast_expr.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/ast_expr.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/ir_expression_flattening.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/.libs/ast_expr.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/.libs/ir_expression_flattening.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/.libs/link_uniform_block_active_visitor.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/.libs/opt_swizzle_swizzle.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/link_uniform_block_active_visitor.cpp.gcov
 - |     0 |     4 | src/compiler/glsl/opt_swizzle_swizzle.cpp.gcov
 - |     0 |     4 | src/compiler/ir_expression_flattening.cpp.gcov
 - |     0 |     4 | src/compiler/link_uniform_block_active_visitor.cpp.gcov
 - |     0 |     4 | src/compiler/opt_swizzle_swizzle.cpp.gcov
 - |     0 |     4 | src/mesa/glsl_types.h.gcov
 - |     0 |     4 | src/mesa/main/glsl_types.h.gcov
 - |     0 |     4 | src/mesa/main/.libs/glsl_types.h.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/linker.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/link_functions.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/lower_instructions.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/lower_offset_array.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/lower_vector_derefs.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/nir_types.h.gcov
 - |     0 |     3 | src/compiler/glsl/.libs/propagate_invariance.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/linker.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/link_functions.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/lower_instructions.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/lower_offset_array.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/lower_vector_derefs.cpp.gcov
 - |     0 |     3 | src/compiler/glsl/nir_types.h.gcov
 - |     0 |     3 | src/compiler/glsl/propagate_invariance.cpp.gcov
 - |     0 |     3 | src/compiler/linker.cpp.gcov
 - |     0 |     3 | src/compiler/link_functions.cpp.gcov
 - |     0 |     3 | src/compiler/lower_instructions.cpp.gcov
 - |     0 |     3 | src/compiler/lower_offset_array.cpp.gcov
 - |     0 |     3 | src/compiler/lower_vector_derefs.cpp.gcov
 - |     0 |     3 | src/compiler/nir/.libs/nir_lower_load_const_to_scalar.c.gcov
 - |     0 |     3 | src/compiler/nir/.libs/nir_lower_samplers.c.gcov
 - |     0 |     3 | src/compiler/nir/.libs/nir_search.h.gcov
 - |     0 |     3 | src/compiler/nir/nir_lower_load_const_to_scalar.c.gcov
 - |     0 |     3 | src/compiler/nir/nir_lower_samplers.c.gcov
 - |     0 |     3 | src/compiler/nir/nir_search.h.gcov
 - |     0 |     3 | src/compiler/nir_lower_load_const_to_scalar.c.gcov
 - |     0 |     3 | src/compiler/nir_lower_samplers.c.gcov
 - |     0 |     3 | src/compiler/nir_search.h.gcov
 - |     0 |     3 | src/compiler/nir_types.h.gcov
 - |     0 |     3 | src/compiler/propagate_invariance.cpp.gcov
 - |     0 |     3 | src/intel/brw_eu.h.gcov
 - |     0 |     3 | src/intel/brw_fs_lower_pack.cpp.gcov
 - |     0 |     3 | src/intel/compiler/brw_eu.h.gcov
 - |     0 |     3 | src/intel/compiler/brw_fs_lower_pack.cpp.gcov
 - |     0 |     3 | src/intel/compiler/.libs/brw_eu.h.gcov
 - |     0 |     3 | src/intel/compiler/.libs/brw_fs_lower_pack.cpp.gcov
 - |     0 |     2 | src/compiler/glsl/glcpp/hash_table.h.gcov
 - |     0 |     2 | src/compiler/glsl/glcpp/.libs/hash_table.h.gcov
 - |     0 |     2 | src/compiler/glsl/hash_table.h.gcov
 - |     0 |     2 | src/compiler/glsl/.libs/nir_builder_opcodes.h.gcov
 - |     0 |     2 | src/compiler/glsl/nir_builder_opcodes.h.gcov
 - |     0 |     2 | src/compiler/hash_table.h.gcov
 - |     0 |     2 | src/compiler/nir/hash_table.h.gcov
 - |     0 |     2 | src/compiler/nir/.libs/hash_table.h.gcov
 - |     0 |     2 | src/compiler/nir/.libs/nir_worklist.h.gcov
 - |     0 |     2 | src/compiler/nir/.libs/u_math.h.gcov
 - |     0 |     2 | src/compiler/nir/nir_worklist.h.gcov
 - |     0 |     2 | src/compiler/nir/u_math.h.gcov
 - |     0 |     2 | src/compiler/nir_builder_opcodes.h.gcov
 - |     0 |     2 | src/compiler/nir_worklist.h.gcov
 - |     0 |     2 | src/compiler/u_math.h.gcov
 - |     0 |     2 | src/hash_table.h.gcov
 - |     0 |     2 | src/intel/brw_fs.h.gcov
 - |     0 |     2 | src/intel/compiler/brw_fs.h.gcov
 - |     0 |     2 | src/intel/compiler/.libs/brw_fs.h.gcov
 - |     0 |     2 | src/mesa/drivers/dri/i965/brw_nir.h.gcov
 - |     0 |     2 | src/mesa/drivers/dri/i965/hash_table.h.gcov
 - |     0 |     2 | src/mesa/drivers/dri/i965/.libs/brw_nir.h.gcov
 - |     0 |     2 | src/mesa/drivers/dri/i965/.libs/hash_table.h.gcov
 - |     0 |     2 | src/mesa/program/hash_table.h.gcov
 - |     0 |     2 | src/mesa/program/.libs/hash_table.h.gcov
 - |     0 |     2 | src/util/crc32.c.gcov
 - |     0 |     2 | src/util/.libs/crc32.c.gcov
 - |     0 |     2 | src/util/.libs/strtod.c.gcov
 - |     0 |     2 | src/util/strtod.c.gcov

File diff


src/compiler/ast_expr.cpp.gcov

        -:        -:    0:Source:glsl/ast_expr.cpp
        -:        -:    0:Graph:glsl/.libs/ast_expr.gcno
        -:        -:    0:Data:glsl/.libs/ast_expr.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:#include <assert.h>
        -:        -:   24:#include "ast.h"
        -:        -:   25:
        -:        -:   26:const char *
    #####:    #####:   27:ast_expression::operator_string(enum ast_operators op)
        -:        -:   28:{
        -:        -:   29:   static const char *const operators[] = {
        -:        -:   30:      "=",
        -:        -:   31:      "+",
        -:        -:   32:      "-",
        -:        -:   33:      "+",
        -:        -:   34:      "-",
        -:        -:   35:      "*",
        -:        -:   36:      "/",
        -:        -:   37:      "%",
        -:        -:   38:      "<<",
        -:        -:   39:      ">>",
        -:        -:   40:      "<",
        -:        -:   41:      ">",
        -:        -:   42:      "<=",
        -:        -:   43:      ">=",
        -:        -:   44:      "==",
        -:        -:   45:      "!=",
        -:        -:   46:      "&",
        -:        -:   47:      "^",
        -:        -:   48:      "|",
        -:        -:   49:      "~",
        -:        -:   50:      "&&",
        -:        -:   51:      "^^",
        -:        -:   52:      "||",
        -:        -:   53:      "!",
        -:        -:   54:
        -:        -:   55:      "*=",
        -:        -:   56:      "/=",
        -:        -:   57:      "%=",
        -:        -:   58:      "+=",
        -:        -:   59:      "-=",
        -:        -:   60:      "<<=",
        -:        -:   61:      ">>=",
        -:        -:   62:      "&=",
        -:        -:   63:      "^=",
        -:        -:   64:      "|=",
        -:        -:   65:
        -:        -:   66:      "?:",
        -:        -:   67:
        -:        -:   68:      "++",
        -:        -:   69:      "--",
        -:        -:   70:      "++",
        -:        -:   71:      "--",
        -:        -:   72:      ".",
        -:        -:   73:   };
        -:        -:   74:
    #####:    #####:   75:   assert((unsigned int)op < sizeof(operators) / sizeof(operators[0]));
        -:        -:   76:
    #####:    #####:   77:   return operators[op];
        -:        -:   78:}
        -:        -:   79:
        -:        -:   80:
        8:        9:   81:ast_expression_bin::ast_expression_bin(int oper, ast_expression *ex0,
        -:        -:   82:                                       ast_expression *ex1) :
        8:        9:   83:   ast_expression(oper, ex0, ex1, NULL)
        -:        -:   84:{
        8:        9:   85:   assert((oper >= ast_plus) && (oper <= ast_logic_not));
        8:        9:   86:}
        -:        -:   87:
        -:        -:   88:
        -:        -:   89:void
    #####:    #####:   90:ast_expression_bin::print(void) const
        -:        -:   91:{
    #####:    #####:   92:   subexpressions[0]->print();
    #####:    #####:   93:   printf("%s ", operator_string(oper));
    #####:    #####:   94:   subexpressions[1]->print();
    #####:    #####:   95:}

src/compiler/ast_to_hir.cpp.gcov

        -:        -:    0:Source:glsl/ast_to_hir.cpp
        -:        -:    0:Graph:glsl/.libs/ast_to_hir.gcno
        -:        -:    0:Data:glsl/.libs/ast_to_hir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ast_to_hir.c
        -:        -:   26: * Convert abstract syntax to to high-level intermediate reprensentation (HIR).
        -:        -:   27: *
        -:        -:   28: * During the conversion to HIR, the majority of the symantic checking is
        -:        -:   29: * preformed on the program.  This includes:
        -:        -:   30: *
        -:        -:   31: *    * Symbol table management
        -:        -:   32: *    * Type checking
        -:        -:   33: *    * Function binding
        -:        -:   34: *
        -:        -:   35: * The majority of this work could be done during parsing, and the parser could
        -:        -:   36: * probably generate HIR directly.  However, this results in frequent changes
        -:        -:   37: * to the parser code.  Since we do not assume that every system this complier
        -:        -:   38: * is built on will have Flex and Bison installed, we have to store the code
        -:        -:   39: * generated by these tools in our version control system.  In other parts of
        -:        -:   40: * the system we've seen problems where a parser was changed but the generated
        -:        -:   41: * code was not committed, merge conflicts where created because two developers
        -:        -:   42: * had slightly different versions of Bison installed, etc.
        -:        -:   43: *
        -:        -:   44: * I have also noticed that running Bison generated parsers in GDB is very
        -:        -:   45: * irritating.  When you get a segfault on '$$ = $1->foo', you can't very
        -:        -:   46: * well 'print $1' in GDB.
        -:        -:   47: *
        -:        -:   48: * As a result, my preference is to put as little C code as possible in the
        -:        -:   49: * parser (and lexer) sources.
        -:        -:   50: */
        -:        -:   51:
        -:        -:   52:#include "glsl_symbol_table.h"
        -:        -:   53:#include "glsl_parser_extras.h"
        -:        -:   54:#include "ast.h"
        -:        -:   55:#include "compiler/glsl_types.h"
        -:        -:   56:#include "util/hash_table.h"
        -:        -:   57:#include "main/macros.h"
        -:        -:   58:#include "main/shaderobj.h"
        -:        -:   59:#include "ir.h"
        -:        -:   60:#include "ir_builder.h"
        -:        -:   61:#include "builtin_functions.h"
        -:        -:   62:
        -:        -:   63:using namespace ir_builder;
        -:        -:   64:
        -:        -:   65:static void
        -:        -:   66:detect_conflicting_assignments(struct _mesa_glsl_parse_state *state,
        -:        -:   67:                               exec_list *instructions);
        -:        -:   68:static void
        -:        -:   69:remove_per_vertex_blocks(exec_list *instructions,
        -:        -:   70:                         _mesa_glsl_parse_state *state, ir_variable_mode mode);
        -:        -:   71:
        -:        -:   72:/**
        -:        -:   73: * Visitor class that finds the first instance of any write-only variable that
        -:        -:   74: * is ever read, if any
        -:        -:   75: */
        -:        -:   76:class read_from_write_only_variable_visitor : public ir_hierarchical_visitor
        -:        -:   77:{
        -:        -:   78:public:
        2:        2:   79:   read_from_write_only_variable_visitor() : found(NULL)
        -:        -:   80:   {
        2:        2:   81:   }
        -:        -:   82:
      113:      114:   83:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:   84:   {
      113:      114:   85:      if (this->in_assignee)
       46:       46:   86:         return visit_continue;
        -:        -:   87:
       67:       68:   88:      ir_variable *var = ir->variable_referenced();
        -:        -:   89:      /* We can have image_write_only set on both images and buffer variables,
        -:        -:   90:       * but in the former there is a distinction between reads from
        -:        -:   91:       * the variable itself (write_only) and from the memory they point to
        -:        -:   92:       * (image_write_only), while in the case of buffer variables there is
        -:        -:   93:       * no such distinction, that is why this check here is limited to
        -:        -:   94:       * buffer variables alone.
        -:        -:   95:       */
       67:       68:   96:      if (!var || var->data.mode != ir_var_shader_storage)
       67:       68:   97:         return visit_continue;
        -:        -:   98:
    #####:    #####:   99:      if (var->data.image_write_only) {
    #####:    #####:  100:         found = var;
    #####:    #####:  101:         return visit_stop;
        -:        -:  102:      }
        -:        -:  103:
    #####:    #####:  104:      return visit_continue;
        -:        -:  105:   }
        -:        -:  106:
        2:        2:  107:   ir_variable *get_variable() {
        2:        2:  108:      return found;
        -:        -:  109:   }
        -:        -:  110:
       20:       22:  111:   virtual ir_visitor_status visit_enter(ir_expression *ir)
        -:        -:  112:   {
        -:        -:  113:      /* .length() doesn't actually read anything */
       20:       22:  114:      if (ir->operation == ir_unop_ssbo_unsized_array_length)
    #####:    #####:  115:         return visit_continue_with_parent;
        -:        -:  116:
       20:       22:  117:      return visit_continue;
        -:        -:  118:   }
        -:        -:  119:
        -:        -:  120:private:
        -:        -:  121:   ir_variable *found;
        -:        -:  122:};
        -:        -:  123:
        -:        -:  124:void
        2:        2:  125:_mesa_ast_to_hir(exec_list *instructions, struct _mesa_glsl_parse_state *state)
        -:        -:  126:{
        2:        2:  127:   _mesa_glsl_initialize_variables(instructions, state);
        -:        -:  128:
        2:        2:  129:   state->symbols->separate_function_namespace = state->language_version == 110;
        -:        -:  130:
        2:        2:  131:   state->current_function = NULL;
        -:        -:  132:
        2:        2:  133:   state->toplevel_ir = instructions;
        -:        -:  134:
        2:        2:  135:   state->gs_input_prim_type_specified = false;
        2:        2:  136:   state->tcs_output_vertices_specified = false;
        2:        2:  137:   state->cs_input_local_size_specified = false;
        -:        -:  138:
        -:        -:  139:   /* Section 4.2 of the GLSL 1.20 specification states:
        -:        -:  140:    * "The built-in functions are scoped in a scope outside the global scope
        -:        -:  141:    *  users declare global variables in.  That is, a shader's global scope,
        -:        -:  142:    *  available for user-defined functions and global variables, is nested
        -:        -:  143:    *  inside the scope containing the built-in functions."
        -:        -:  144:    *
        -:        -:  145:    * Since built-in functions like ftransform() access built-in variables,
        -:        -:  146:    * it follows that those must be in the outer scope as well.
        -:        -:  147:    *
        -:        -:  148:    * We push scope here to create this nesting effect...but don't pop.
        -:        -:  149:    * This way, a shader's globals are still in the symbol table for use
        -:        -:  150:    * by the linker.
        -:        -:  151:    */
        2:        2:  152:   state->symbols->push_scope();
        -:        -:  153:
        8:        8:  154:   foreach_list_typed (ast_node, ast, link, & state->translation_unit)
        6:        6:  155:      ast->hir(instructions, state);
        -:        -:  156:
        2:        2:  157:   detect_recursion_unlinked(state, instructions);
        2:        2:  158:   detect_conflicting_assignments(state, instructions);
        -:        -:  159:
        2:        2:  160:   state->toplevel_ir = NULL;
        -:        -:  161:
        -:        -:  162:   /* Move all of the variable declarations to the front of the IR list, and
        -:        -:  163:    * reverse the order.  This has the (intended!) side effect that vertex
        -:        -:  164:    * shader inputs and fragment shader outputs will appear in the IR in the
        -:        -:  165:    * same order that they appeared in the shader code.  This results in the
        -:        -:  166:    * locations being assigned in the declared order.  Many (arguably buggy)
        -:        -:  167:    * applications depend on this behavior, and it matches what nearly all
        -:        -:  168:    * other drivers do.
        -:        -:  169:    */
      155:      155:  170:   foreach_in_list_safe(ir_instruction, node, instructions) {
      153:      153:  171:      ir_variable *const var = node->as_variable();
        -:        -:  172:
      153:      153:  173:      if (var == NULL)
        3:        3:  174:         continue;
        -:        -:  175:
      150:      150:  176:      var->remove();
      150:      150:  177:      instructions->push_head(var);
        -:        -:  178:   }
        -:        -:  179:
        -:        -:  180:   /* Figure out if gl_FragCoord is actually used in fragment shader */
        2:        2:  181:   ir_variable *const var = state->symbols->get_variable("gl_FragCoord");
        2:        2:  182:   if (var != NULL)
        1:        1:  183:      state->fs_uses_gl_fragcoord = var->data.used;
        -:        -:  184:
        -:        -:  185:   /* From section 7.1 (Built-In Language Variables) of the GLSL 4.10 spec:
        -:        -:  186:    *
        -:        -:  187:    *     If multiple shaders using members of a built-in block belonging to
        -:        -:  188:    *     the same interface are linked together in the same program, they
        -:        -:  189:    *     must all redeclare the built-in block in the same way, as described
        -:        -:  190:    *     in section 4.3.7 "Interface Blocks" for interface block matching, or
        -:        -:  191:    *     a link error will result.
        -:        -:  192:    *
        -:        -:  193:    * The phrase "using members of a built-in block" implies that if two
        -:        -:  194:    * shaders are linked together and one of them *does not use* any members
        -:        -:  195:    * of the built-in block, then that shader does not need to have a matching
        -:        -:  196:    * redeclaration of the built-in block.
        -:        -:  197:    *
        -:        -:  198:    * This appears to be a clarification to the behaviour established for
        -:        -:  199:    * gl_PerVertex by GLSL 1.50, therefore implement it regardless of GLSL
        -:        -:  200:    * version.
        -:        -:  201:    *
        -:        -:  202:    * The definition of "interface" in section 4.3.7 that applies here is as
        -:        -:  203:    * follows:
        -:        -:  204:    *
        -:        -:  205:    *     The boundary between adjacent programmable pipeline stages: This
        -:        -:  206:    *     spans all the outputs in all compilation units of the first stage
        -:        -:  207:    *     and all the inputs in all compilation units of the second stage.
        -:        -:  208:    *
        -:        -:  209:    * Therefore this rule applies to both inter- and intra-stage linking.
        -:        -:  210:    *
        -:        -:  211:    * The easiest way to implement this is to check whether the shader uses
        -:        -:  212:    * gl_PerVertex right after ast-to-ir conversion, and if it doesn't, simply
        -:        -:  213:    * remove all the relevant variable declaration from the IR, so that the
        -:        -:  214:    * linker won't see them and complain about mismatches.
        -:        -:  215:    */
        2:        2:  216:   remove_per_vertex_blocks(instructions, state, ir_var_shader_in);
        2:        2:  217:   remove_per_vertex_blocks(instructions, state, ir_var_shader_out);
        -:        -:  218:
        -:        -:  219:   /* Check that we don't have reads from write-only variables */
        2:        2:  220:   read_from_write_only_variable_visitor v;
        2:        2:  221:   v.run(instructions);
        2:        2:  222:   ir_variable *error_var = v.get_variable();
        2:        2:  223:   if (error_var) {
        -:        -:  224:      /* It would be nice to have proper location information, but for that
        -:        -:  225:       * we would need to check this as we process each kind of AST node
        -:        -:  226:       */
        -:        -:  227:      YYLTYPE loc;
    #####:    #####:  228:      memset(&loc, 0, sizeof(loc));
    #####:    #####:  229:      _mesa_glsl_error(&loc, state, "Read from write-only variable `%s'",
    #####:    #####:  230:                       error_var->name);
        -:        -:  231:   }
        2:        2:  232:}
        -:        -:  233:
        -:        -:  234:
        -:        -:  235:static ir_expression_operation
    #####:    #####:  236:get_implicit_conversion_operation(const glsl_type *to, const glsl_type *from,
        -:        -:  237:                                  struct _mesa_glsl_parse_state *state)
        -:        -:  238:{
    #####:    #####:  239:   switch (to->base_type) {
        -:        -:  240:   case GLSL_TYPE_FLOAT:
    #####:    #####:  241:      switch (from->base_type) {
    #####:    #####:  242:      case GLSL_TYPE_INT: return ir_unop_i2f;
    #####:    #####:  243:      case GLSL_TYPE_UINT: return ir_unop_u2f;
    #####:    #####:  244:      default: return (ir_expression_operation)0;
        -:        -:  245:      }
        -:        -:  246:
        -:        -:  247:   case GLSL_TYPE_UINT:
    #####:    #####:  248:      if (!state->is_version(400, 0) && !state->ARB_gpu_shader5_enable
    #####:    #####:  249:          && !state->MESA_shader_integer_functions_enable)
    #####:    #####:  250:         return (ir_expression_operation)0;
    #####:    #####:  251:      switch (from->base_type) {
    #####:    #####:  252:         case GLSL_TYPE_INT: return ir_unop_i2u;
    #####:    #####:  253:         default: return (ir_expression_operation)0;
        -:        -:  254:      }
        -:        -:  255:
        -:        -:  256:   case GLSL_TYPE_DOUBLE:
    #####:    #####:  257:      if (!state->has_double())
    #####:    #####:  258:         return (ir_expression_operation)0;
    #####:    #####:  259:      switch (from->base_type) {
    #####:    #####:  260:      case GLSL_TYPE_INT: return ir_unop_i2d;
    #####:    #####:  261:      case GLSL_TYPE_UINT: return ir_unop_u2d;
    #####:    #####:  262:      case GLSL_TYPE_FLOAT: return ir_unop_f2d;
    #####:    #####:  263:      case GLSL_TYPE_INT64: return ir_unop_i642d;
    #####:    #####:  264:      case GLSL_TYPE_UINT64: return ir_unop_u642d;
    #####:    #####:  265:      default: return (ir_expression_operation)0;
        -:        -:  266:      }
        -:        -:  267:
        -:        -:  268:   case GLSL_TYPE_UINT64:
    #####:    #####:  269:      if (!state->has_int64())
    #####:    #####:  270:         return (ir_expression_operation)0;
    #####:    #####:  271:      switch (from->base_type) {
    #####:    #####:  272:      case GLSL_TYPE_INT: return ir_unop_i2u64;
    #####:    #####:  273:      case GLSL_TYPE_UINT: return ir_unop_u2u64;
    #####:    #####:  274:      case GLSL_TYPE_INT64: return ir_unop_i642u64;
    #####:    #####:  275:      default: return (ir_expression_operation)0;
        -:        -:  276:      }
        -:        -:  277:
        -:        -:  278:   case GLSL_TYPE_INT64:
    #####:    #####:  279:      if (!state->has_int64())
    #####:    #####:  280:         return (ir_expression_operation)0;
    #####:    #####:  281:      switch (from->base_type) {
    #####:    #####:  282:      case GLSL_TYPE_INT: return ir_unop_i2i64;
    #####:    #####:  283:      default: return (ir_expression_operation)0;
        -:        -:  284:      }
        -:        -:  285:
    #####:    #####:  286:   default: return (ir_expression_operation)0;
        -:        -:  287:   }
        -:        -:  288:}
        -:        -:  289:
        -:        -:  290:
        -:        -:  291:/**
        -:        -:  292: * If a conversion is available, convert one operand to a different type
        -:        -:  293: *
        -:        -:  294: * The \c from \c ir_rvalue is converted "in place".
        -:        -:  295: *
        -:        -:  296: * \param to     Type that the operand it to be converted to
        -:        -:  297: * \param from   Operand that is being converted
        -:        -:  298: * \param state  GLSL compiler state
        -:        -:  299: *
        -:        -:  300: * \return
        -:        -:  301: * If a conversion is possible (or unnecessary), \c true is returned.
        -:        -:  302: * Otherwise \c false is returned.
        -:        -:  303: */
        -:        -:  304:static bool
       11:       12:  305:apply_implicit_conversion(const glsl_type *to, ir_rvalue * &from,
        -:        -:  306:                          struct _mesa_glsl_parse_state *state)
        -:        -:  307:{
       11:       12:  308:   void *ctx = state;
       11:       12:  309:   if (to->base_type == from->type->base_type)
       11:       12:  310:      return true;
        -:        -:  311:
        -:        -:  312:   /* Prior to GLSL 1.20, there are no implicit conversions */
    #####:    #####:  313:   if (!state->is_version(120, 0))
    #####:    #####:  314:      return false;
        -:        -:  315:
        -:        -:  316:   /* ESSL does not allow implicit conversions */
    #####:    #####:  317:   if (state->es_shader)
    #####:    #####:  318:      return false;
        -:        -:  319:
        -:        -:  320:   /* From page 27 (page 33 of the PDF) of the GLSL 1.50 spec:
        -:        -:  321:    *
        -:        -:  322:    *    "There are no implicit array or structure conversions. For
        -:        -:  323:    *    example, an array of int cannot be implicitly converted to an
        -:        -:  324:    *    array of float.
        -:        -:  325:    */
    #####:    #####:  326:   if (!to->is_numeric() || !from->type->is_numeric())
    #####:    #####:  327:      return false;
        -:        -:  328:
        -:        -:  329:   /* We don't actually want the specific type `to`, we want a type
        -:        -:  330:    * with the same base type as `to`, but the same vector width as
        -:        -:  331:    * `from`.
        -:        -:  332:    */
    #####:    #####:  333:   to = glsl_type::get_instance(to->base_type, from->type->vector_elements,
    #####:    #####:  334:                                from->type->matrix_columns);
        -:        -:  335:
    #####:    #####:  336:   ir_expression_operation op = get_implicit_conversion_operation(to, from->type, state);
    #####:    #####:  337:   if (op) {
    #####:    #####:  338:      from = new(ctx) ir_expression(op, to, from, NULL);
    #####:    #####:  339:      return true;
        -:        -:  340:   } else {
    #####:    #####:  341:      return false;
        -:        -:  342:   }
        -:        -:  343:}
        -:        -:  344:
        -:        -:  345:
        -:        -:  346:static const struct glsl_type *
        6:        6:  347:arithmetic_result_type(ir_rvalue * &value_a, ir_rvalue * &value_b,
        -:        -:  348:                       bool multiply,
        -:        -:  349:                       struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  350:{
        6:        6:  351:   const glsl_type *type_a = value_a->type;
        6:        6:  352:   const glsl_type *type_b = value_b->type;
        -:        -:  353:
        -:        -:  354:   /* From GLSL 1.50 spec, page 56:
        -:        -:  355:    *
        -:        -:  356:    *    "The arithmetic binary operators add (+), subtract (-),
        -:        -:  357:    *    multiply (*), and divide (/) operate on integer and
        -:        -:  358:    *    floating-point scalars, vectors, and matrices."
        -:        -:  359:    */
        6:        6:  360:   if (!type_a->is_numeric() || !type_b->is_numeric()) {
        -:        -:  361:      _mesa_glsl_error(loc, state,
    #####:    #####:  362:                       "operands to arithmetic operators must be numeric");
    #####:    #####:  363:      return glsl_type::error_type;
        -:        -:  364:   }
        -:        -:  365:
        -:        -:  366:
        -:        -:  367:   /*    "If one operand is floating-point based and the other is
        -:        -:  368:    *    not, then the conversions from Section 4.1.10 "Implicit
        -:        -:  369:    *    Conversions" are applied to the non-floating-point-based operand."
        -:        -:  370:    */
       12:       12:  371:   if (!apply_implicit_conversion(type_a, value_b, state)
        6:        6:  372:       && !apply_implicit_conversion(type_b, value_a, state)) {
        -:        -:  373:      _mesa_glsl_error(loc, state,
        -:        -:  374:                       "could not implicitly convert operands to "
    #####:    #####:  375:                       "arithmetic operator");
    #####:    #####:  376:      return glsl_type::error_type;
        -:        -:  377:   }
        6:        6:  378:   type_a = value_a->type;
        6:        6:  379:   type_b = value_b->type;
        -:        -:  380:
        -:        -:  381:   /*    "If the operands are integer types, they must both be signed or
        -:        -:  382:    *    both be unsigned."
        -:        -:  383:    *
        -:        -:  384:    * From this rule and the preceeding conversion it can be inferred that
        -:        -:  385:    * both types must be GLSL_TYPE_FLOAT, or GLSL_TYPE_UINT, or GLSL_TYPE_INT.
        -:        -:  386:    * The is_numeric check above already filtered out the case where either
        -:        -:  387:    * type is not one of these, so now the base types need only be tested for
        -:        -:  388:    * equality.
        -:        -:  389:    */
        6:        6:  390:   if (type_a->base_type != type_b->base_type) {
        -:        -:  391:      _mesa_glsl_error(loc, state,
    #####:    #####:  392:                       "base type mismatch for arithmetic operator");
    #####:    #####:  393:      return glsl_type::error_type;
        -:        -:  394:   }
        -:        -:  395:
        -:        -:  396:   /*    "All arithmetic binary operators result in the same fundamental type
        -:        -:  397:    *    (signed integer, unsigned integer, or floating-point) as the
        -:        -:  398:    *    operands they operate on, after operand type conversion. After
        -:        -:  399:    *    conversion, the following cases are valid
        -:        -:  400:    *
        -:        -:  401:    *    * The two operands are scalars. In this case the operation is
        -:        -:  402:    *      applied, resulting in a scalar."
        -:        -:  403:    */
        6:        6:  404:   if (type_a->is_scalar() && type_b->is_scalar())
        6:        6:  405:      return type_a;
        -:        -:  406:
        -:        -:  407:   /*   "* One operand is a scalar, and the other is a vector or matrix.
        -:        -:  408:    *      In this case, the scalar operation is applied independently to each
        -:        -:  409:    *      component of the vector or matrix, resulting in the same size
        -:        -:  410:    *      vector or matrix."
        -:        -:  411:    */
    #####:    #####:  412:   if (type_a->is_scalar()) {
    #####:    #####:  413:      if (!type_b->is_scalar())
    #####:    #####:  414:         return type_b;
    #####:    #####:  415:   } else if (type_b->is_scalar()) {
    #####:    #####:  416:      return type_a;
        -:        -:  417:   }
        -:        -:  418:
        -:        -:  419:   /* All of the combinations of <scalar, scalar>, <vector, scalar>,
        -:        -:  420:    * <scalar, vector>, <scalar, matrix>, and <matrix, scalar> have been
        -:        -:  421:    * handled.
        -:        -:  422:    */
    #####:    #####:  423:   assert(!type_a->is_scalar());
    #####:    #####:  424:   assert(!type_b->is_scalar());
        -:        -:  425:
        -:        -:  426:   /*   "* The two operands are vectors of the same size. In this case, the
        -:        -:  427:    *      operation is done component-wise resulting in the same size
        -:        -:  428:    *      vector."
        -:        -:  429:    */
    #####:    #####:  430:   if (type_a->is_vector() && type_b->is_vector()) {
    #####:    #####:  431:      if (type_a == type_b) {
    #####:    #####:  432:         return type_a;
        -:        -:  433:      } else {
        -:        -:  434:         _mesa_glsl_error(loc, state,
    #####:    #####:  435:                          "vector size mismatch for arithmetic operator");
    #####:    #####:  436:         return glsl_type::error_type;
        -:        -:  437:      }
        -:        -:  438:   }
        -:        -:  439:
        -:        -:  440:   /* All of the combinations of <scalar, scalar>, <vector, scalar>,
        -:        -:  441:    * <scalar, vector>, <scalar, matrix>, <matrix, scalar>, and
        -:        -:  442:    * <vector, vector> have been handled.  At least one of the operands must
        -:        -:  443:    * be matrix.  Further, since there are no integer matrix types, the base
        -:        -:  444:    * type of both operands must be float.
        -:        -:  445:    */
    #####:    #####:  446:   assert(type_a->is_matrix() || type_b->is_matrix());
    #####:    #####:  447:   assert(type_a->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  448:          type_a->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  449:   assert(type_b->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  450:          type_b->base_type == GLSL_TYPE_DOUBLE);
        -:        -:  451:
        -:        -:  452:   /*   "* The operator is add (+), subtract (-), or divide (/), and the
        -:        -:  453:    *      operands are matrices with the same number of rows and the same
        -:        -:  454:    *      number of columns. In this case, the operation is done component-
        -:        -:  455:    *      wise resulting in the same size matrix."
        -:        -:  456:    *    * The operator is multiply (*), where both operands are matrices or
        -:        -:  457:    *      one operand is a vector and the other a matrix. A right vector
        -:        -:  458:    *      operand is treated as a column vector and a left vector operand as a
        -:        -:  459:    *      row vector. In all these cases, it is required that the number of
        -:        -:  460:    *      columns of the left operand is equal to the number of rows of the
        -:        -:  461:    *      right operand. Then, the multiply (*) operation does a linear
        -:        -:  462:    *      algebraic multiply, yielding an object that has the same number of
        -:        -:  463:    *      rows as the left operand and the same number of columns as the right
        -:        -:  464:    *      operand. Section 5.10 "Vector and Matrix Operations" explains in
        -:        -:  465:    *      more detail how vectors and matrices are operated on."
        -:        -:  466:    */
    #####:    #####:  467:   if (! multiply) {
    #####:    #####:  468:      if (type_a == type_b)
    #####:    #####:  469:         return type_a;
        -:        -:  470:   } else {
    #####:    #####:  471:      const glsl_type *type = glsl_type::get_mul_type(type_a, type_b);
        -:        -:  472:
    #####:    #####:  473:      if (type == glsl_type::error_type) {
        -:        -:  474:         _mesa_glsl_error(loc, state,
    #####:    #####:  475:                          "size mismatch for matrix multiplication");
        -:        -:  476:      }
        -:        -:  477:
    #####:    #####:  478:      return type;
        -:        -:  479:   }
        -:        -:  480:
        -:        -:  481:
        -:        -:  482:   /*    "All other cases are illegal."
        -:        -:  483:    */
    #####:    #####:  484:   _mesa_glsl_error(loc, state, "type mismatch");
    #####:    #####:  485:   return glsl_type::error_type;
        -:        -:  486:}
        -:        -:  487:
        -:        -:  488:
        -:        -:  489:static const struct glsl_type *
    #####:    #####:  490:unary_arithmetic_result_type(const struct glsl_type *type,
        -:        -:  491:                             struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  492:{
        -:        -:  493:   /* From GLSL 1.50 spec, page 57:
        -:        -:  494:    *
        -:        -:  495:    *    "The arithmetic unary operators negate (-), post- and pre-increment
        -:        -:  496:    *     and decrement (-- and ++) operate on integer or floating-point
        -:        -:  497:    *     values (including vectors and matrices). All unary operators work
        -:        -:  498:    *     component-wise on their operands. These result with the same type
        -:        -:  499:    *     they operated on."
        -:        -:  500:    */
    #####:    #####:  501:   if (!type->is_numeric()) {
        -:        -:  502:      _mesa_glsl_error(loc, state,
    #####:    #####:  503:                       "operands to arithmetic operators must be numeric");
    #####:    #####:  504:      return glsl_type::error_type;
        -:        -:  505:   }
        -:        -:  506:
    #####:    #####:  507:   return type;
        -:        -:  508:}
        -:        -:  509:
        -:        -:  510:/**
        -:        -:  511: * \brief Return the result type of a bit-logic operation.
        -:        -:  512: *
        -:        -:  513: * If the given types to the bit-logic operator are invalid, return
        -:        -:  514: * glsl_type::error_type.
        -:        -:  515: *
        -:        -:  516: * \param value_a LHS of bit-logic op
        -:        -:  517: * \param value_b RHS of bit-logic op
        -:        -:  518: */
        -:        -:  519:static const struct glsl_type *
    #####:    #####:  520:bit_logic_result_type(ir_rvalue * &value_a, ir_rvalue * &value_b,
        -:        -:  521:                      ast_operators op,
        -:        -:  522:                      struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  523:{
    #####:    #####:  524:   const glsl_type *type_a = value_a->type;
    #####:    #####:  525:   const glsl_type *type_b = value_b->type;
        -:        -:  526:
    #####:    #####:  527:   if (!state->check_bitwise_operations_allowed(loc)) {
    #####:    #####:  528:      return glsl_type::error_type;
        -:        -:  529:   }
        -:        -:  530:
        -:        -:  531:   /* From page 50 (page 56 of PDF) of GLSL 1.30 spec:
        -:        -:  532:    *
        -:        -:  533:    *     "The bitwise operators and (&), exclusive-or (^), and inclusive-or
        -:        -:  534:    *     (|). The operands must be of type signed or unsigned integers or
        -:        -:  535:    *     integer vectors."
        -:        -:  536:    */
    #####:    #####:  537:   if (!type_a->is_integer_32_64()) {
    #####:    #####:  538:      _mesa_glsl_error(loc, state, "LHS of `%s' must be an integer",
    #####:    #####:  539:                        ast_expression::operator_string(op));
    #####:    #####:  540:      return glsl_type::error_type;
        -:        -:  541:   }
    #####:    #####:  542:   if (!type_b->is_integer_32_64()) {
    #####:    #####:  543:      _mesa_glsl_error(loc, state, "RHS of `%s' must be an integer",
    #####:    #####:  544:                       ast_expression::operator_string(op));
    #####:    #####:  545:      return glsl_type::error_type;
        -:        -:  546:   }
        -:        -:  547:
        -:        -:  548:   /* Prior to GLSL 4.0 / GL_ARB_gpu_shader5, implicit conversions didn't
        -:        -:  549:    * make sense for bitwise operations, as they don't operate on floats.
        -:        -:  550:    *
        -:        -:  551:    * GLSL 4.0 added implicit int -> uint conversions, which are relevant
        -:        -:  552:    * here.  It wasn't clear whether or not we should apply them to bitwise
        -:        -:  553:    * operations.  However, Khronos has decided that they should in future
        -:        -:  554:    * language revisions.  Applications also rely on this behavior.  We opt
        -:        -:  555:    * to apply them in general, but issue a portability warning.
        -:        -:  556:    *
        -:        -:  557:    * See https://www.khronos.org/bugzilla/show_bug.cgi?id=1405
        -:        -:  558:    */
    #####:    #####:  559:   if (type_a->base_type != type_b->base_type) {
    #####:    #####:  560:      if (!apply_implicit_conversion(type_a, value_b, state)
    #####:    #####:  561:          && !apply_implicit_conversion(type_b, value_a, state)) {
    #####:    #####:  562:         _mesa_glsl_error(loc, state,
        -:        -:  563:                          "could not implicitly convert operands to "
        -:        -:  564:                          "`%s` operator",
    #####:    #####:  565:                          ast_expression::operator_string(op));
    #####:    #####:  566:         return glsl_type::error_type;
        -:        -:  567:      } else {
    #####:    #####:  568:         _mesa_glsl_warning(loc, state,
        -:        -:  569:                            "some implementations may not support implicit "
        -:        -:  570:                            "int -> uint conversions for `%s' operators; "
        -:        -:  571:                            "consider casting explicitly for portability",
    #####:    #####:  572:                            ast_expression::operator_string(op));
        -:        -:  573:      }
    #####:    #####:  574:      type_a = value_a->type;
    #####:    #####:  575:      type_b = value_b->type;
        -:        -:  576:   }
        -:        -:  577:
        -:        -:  578:   /*     "The fundamental types of the operands (signed or unsigned) must
        -:        -:  579:    *     match,"
        -:        -:  580:    */
    #####:    #####:  581:   if (type_a->base_type != type_b->base_type) {
    #####:    #####:  582:      _mesa_glsl_error(loc, state, "operands of `%s' must have the same "
    #####:    #####:  583:                       "base type", ast_expression::operator_string(op));
    #####:    #####:  584:      return glsl_type::error_type;
        -:        -:  585:   }
        -:        -:  586:
        -:        -:  587:   /*     "The operands cannot be vectors of differing size." */
    #####:    #####:  588:   if (type_a->is_vector() &&
    #####:    #####:  589:       type_b->is_vector() &&
    #####:    #####:  590:       type_a->vector_elements != type_b->vector_elements) {
    #####:    #####:  591:      _mesa_glsl_error(loc, state, "operands of `%s' cannot be vectors of "
    #####:    #####:  592:                       "different sizes", ast_expression::operator_string(op));
    #####:    #####:  593:      return glsl_type::error_type;
        -:        -:  594:   }
        -:        -:  595:
        -:        -:  596:   /*     "If one operand is a scalar and the other a vector, the scalar is
        -:        -:  597:    *     applied component-wise to the vector, resulting in the same type as
        -:        -:  598:    *     the vector. The fundamental types of the operands [...] will be the
        -:        -:  599:    *     resulting fundamental type."
        -:        -:  600:    */
    #####:    #####:  601:   if (type_a->is_scalar())
    #####:    #####:  602:       return type_b;
        -:        -:  603:   else
    #####:    #####:  604:       return type_a;
        -:        -:  605:}
        -:        -:  606:
        -:        -:  607:static const struct glsl_type *
    #####:    #####:  608:modulus_result_type(ir_rvalue * &value_a, ir_rvalue * &value_b,
        -:        -:  609:                    struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  610:{
    #####:    #####:  611:   const glsl_type *type_a = value_a->type;
    #####:    #####:  612:   const glsl_type *type_b = value_b->type;
        -:        -:  613:
    #####:    #####:  614:   if (!state->check_version(130, 300, loc, "operator '%%' is reserved")) {
    #####:    #####:  615:      return glsl_type::error_type;
        -:        -:  616:   }
        -:        -:  617:
        -:        -:  618:   /* Section 5.9 (Expressions) of the GLSL 4.00 specification says:
        -:        -:  619:    *
        -:        -:  620:    *    "The operator modulus (%) operates on signed or unsigned integers or
        -:        -:  621:    *    integer vectors."
        -:        -:  622:    */
    #####:    #####:  623:   if (!type_a->is_integer_32_64()) {
    #####:    #####:  624:      _mesa_glsl_error(loc, state, "LHS of operator %% must be an integer");
    #####:    #####:  625:      return glsl_type::error_type;
        -:        -:  626:   }
    #####:    #####:  627:   if (!type_b->is_integer_32_64()) {
    #####:    #####:  628:      _mesa_glsl_error(loc, state, "RHS of operator %% must be an integer");
    #####:    #####:  629:      return glsl_type::error_type;
        -:        -:  630:   }
        -:        -:  631:
        -:        -:  632:   /*    "If the fundamental types in the operands do not match, then the
        -:        -:  633:    *    conversions from section 4.1.10 "Implicit Conversions" are applied
        -:        -:  634:    *    to create matching types."
        -:        -:  635:    *
        -:        -:  636:    * Note that GLSL 4.00 (and GL_ARB_gpu_shader5) introduced implicit
        -:        -:  637:    * int -> uint conversion rules.  Prior to that, there were no implicit
        -:        -:  638:    * conversions.  So it's harmless to apply them universally - no implicit
        -:        -:  639:    * conversions will exist.  If the types don't match, we'll receive false,
        -:        -:  640:    * and raise an error, satisfying the GLSL 1.50 spec, page 56:
        -:        -:  641:    *
        -:        -:  642:    *    "The operand types must both be signed or unsigned."
        -:        -:  643:    */
    #####:    #####:  644:   if (!apply_implicit_conversion(type_a, value_b, state) &&
    #####:    #####:  645:       !apply_implicit_conversion(type_b, value_a, state)) {
        -:        -:  646:      _mesa_glsl_error(loc, state,
        -:        -:  647:                       "could not implicitly convert operands to "
    #####:    #####:  648:                       "modulus (%%) operator");
    #####:    #####:  649:      return glsl_type::error_type;
        -:        -:  650:   }
    #####:    #####:  651:   type_a = value_a->type;
    #####:    #####:  652:   type_b = value_b->type;
        -:        -:  653:
        -:        -:  654:   /*    "The operands cannot be vectors of differing size. If one operand is
        -:        -:  655:    *    a scalar and the other vector, then the scalar is applied component-
        -:        -:  656:    *    wise to the vector, resulting in the same type as the vector. If both
        -:        -:  657:    *    are vectors of the same size, the result is computed component-wise."
        -:        -:  658:    */
    #####:    #####:  659:   if (type_a->is_vector()) {
    #####:    #####:  660:      if (!type_b->is_vector()
    #####:    #####:  661:          || (type_a->vector_elements == type_b->vector_elements))
    #####:    #####:  662:      return type_a;
        -:        -:  663:   } else
    #####:    #####:  664:      return type_b;
        -:        -:  665:
        -:        -:  666:   /*    "The operator modulus (%) is not defined for any other data types
        -:        -:  667:    *    (non-integer types)."
        -:        -:  668:    */
    #####:    #####:  669:   _mesa_glsl_error(loc, state, "type mismatch");
    #####:    #####:  670:   return glsl_type::error_type;
        -:        -:  671:}
        -:        -:  672:
        -:        -:  673:
        -:        -:  674:static const struct glsl_type *
        5:        6:  675:relational_result_type(ir_rvalue * &value_a, ir_rvalue * &value_b,
        -:        -:  676:                       struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  677:{
        5:        6:  678:   const glsl_type *type_a = value_a->type;
        5:        6:  679:   const glsl_type *type_b = value_b->type;
        -:        -:  680:
        -:        -:  681:   /* From GLSL 1.50 spec, page 56:
        -:        -:  682:    *    "The relational operators greater than (>), less than (<), greater
        -:        -:  683:    *    than or equal (>=), and less than or equal (<=) operate only on
        -:        -:  684:    *    scalar integer and scalar floating-point expressions."
        -:        -:  685:    */
       10:       12:  686:   if (!type_a->is_numeric()
        5:        6:  687:       || !type_b->is_numeric()
        5:        6:  688:       || !type_a->is_scalar()
       10:       12:  689:       || !type_b->is_scalar()) {
        -:        -:  690:      _mesa_glsl_error(loc, state,
        -:        -:  691:                       "operands to relational operators must be scalar and "
    #####:    #####:  692:                       "numeric");
    #####:    #####:  693:      return glsl_type::error_type;
        -:        -:  694:   }
        -:        -:  695:
        -:        -:  696:   /*    "Either the operands' types must match, or the conversions from
        -:        -:  697:    *    Section 4.1.10 "Implicit Conversions" will be applied to the integer
        -:        -:  698:    *    operand, after which the types must match."
        -:        -:  699:    */
       10:       12:  700:   if (!apply_implicit_conversion(type_a, value_b, state)
        5:        6:  701:       && !apply_implicit_conversion(type_b, value_a, state)) {
        -:        -:  702:      _mesa_glsl_error(loc, state,
        -:        -:  703:                       "could not implicitly convert operands to "
    #####:    #####:  704:                       "relational operator");
    #####:    #####:  705:      return glsl_type::error_type;
        -:        -:  706:   }
        5:        6:  707:   type_a = value_a->type;
        5:        6:  708:   type_b = value_b->type;
        -:        -:  709:
        5:        6:  710:   if (type_a->base_type != type_b->base_type) {
    #####:    #####:  711:      _mesa_glsl_error(loc, state, "base type mismatch");
    #####:    #####:  712:      return glsl_type::error_type;
        -:        -:  713:   }
        -:        -:  714:
        -:        -:  715:   /*    "The result is scalar Boolean."
        -:        -:  716:    */
        5:        6:  717:   return glsl_type::bool_type;
        -:        -:  718:}
        -:        -:  719:
        -:        -:  720:/**
        -:        -:  721: * \brief Return the result type of a bit-shift operation.
        -:        -:  722: *
        -:        -:  723: * If the given types to the bit-shift operator are invalid, return
        -:        -:  724: * glsl_type::error_type.
        -:        -:  725: *
        -:        -:  726: * \param type_a Type of LHS of bit-shift op
        -:        -:  727: * \param type_b Type of RHS of bit-shift op
        -:        -:  728: */
        -:        -:  729:static const struct glsl_type *
    #####:    #####:  730:shift_result_type(const struct glsl_type *type_a,
        -:        -:  731:                  const struct glsl_type *type_b,
        -:        -:  732:                  ast_operators op,
        -:        -:  733:                  struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -:  734:{
    #####:    #####:  735:   if (!state->check_bitwise_operations_allowed(loc)) {
    #####:    #####:  736:      return glsl_type::error_type;
        -:        -:  737:   }
        -:        -:  738:
        -:        -:  739:   /* From page 50 (page 56 of the PDF) of the GLSL 1.30 spec:
        -:        -:  740:    *
        -:        -:  741:    *     "The shift operators (<<) and (>>). For both operators, the operands
        -:        -:  742:    *     must be signed or unsigned integers or integer vectors. One operand
        -:        -:  743:    *     can be signed while the other is unsigned."
        -:        -:  744:    */
    #####:    #####:  745:   if (!type_a->is_integer_32_64()) {
    #####:    #####:  746:      _mesa_glsl_error(loc, state, "LHS of operator %s must be an integer or "
    #####:    #####:  747:                       "integer vector", ast_expression::operator_string(op));
    #####:    #####:  748:     return glsl_type::error_type;
        -:        -:  749:
        -:        -:  750:   }
    #####:    #####:  751:   if (!type_b->is_integer()) {
    #####:    #####:  752:      _mesa_glsl_error(loc, state, "RHS of operator %s must be an integer or "
    #####:    #####:  753:                       "integer vector", ast_expression::operator_string(op));
    #####:    #####:  754:     return glsl_type::error_type;
        -:        -:  755:   }
        -:        -:  756:
        -:        -:  757:   /*     "If the first operand is a scalar, the second operand has to be
        -:        -:  758:    *     a scalar as well."
        -:        -:  759:    */
    #####:    #####:  760:   if (type_a->is_scalar() && !type_b->is_scalar()) {
    #####:    #####:  761:      _mesa_glsl_error(loc, state, "if the first operand of %s is scalar, the "
        -:        -:  762:                       "second must be scalar as well",
    #####:    #####:  763:                       ast_expression::operator_string(op));
    #####:    #####:  764:     return glsl_type::error_type;
        -:        -:  765:   }
        -:        -:  766:
        -:        -:  767:   /* If both operands are vectors, check that they have same number of
        -:        -:  768:    * elements.
        -:        -:  769:    */
    #####:    #####:  770:   if (type_a->is_vector() &&
    #####:    #####:  771:      type_b->is_vector() &&
    #####:    #####:  772:      type_a->vector_elements != type_b->vector_elements) {
    #####:    #####:  773:      _mesa_glsl_error(loc, state, "vector operands to operator %s must "
        -:        -:  774:                       "have same number of elements",
    #####:    #####:  775:                       ast_expression::operator_string(op));
    #####:    #####:  776:     return glsl_type::error_type;
        -:        -:  777:   }
        -:        -:  778:
        -:        -:  779:   /*     "In all cases, the resulting type will be the same type as the left
        -:        -:  780:    *     operand."
        -:        -:  781:    */
    #####:    #####:  782:   return type_a;
        -:        -:  783:}
        -:        -:  784:
        -:        -:  785:/**
        -:        -:  786: * Returns the innermost array index expression in an rvalue tree.
        -:        -:  787: * This is the largest indexing level -- if an array of blocks, then
        -:        -:  788: * it is the block index rather than an indexing expression for an
        -:        -:  789: * array-typed member of an array of blocks.
        -:        -:  790: */
        -:        -:  791:static ir_rvalue *
    #####:    #####:  792:find_innermost_array_index(ir_rvalue *rv)
        -:        -:  793:{
    #####:    #####:  794:   ir_dereference_array *last = NULL;
    #####:    #####:  795:   while (rv) {
    #####:    #####:  796:      if (rv->as_dereference_array()) {
    #####:    #####:  797:         last = rv->as_dereference_array();
    #####:    #####:  798:         rv = last->array;
    #####:    #####:  799:      } else if (rv->as_dereference_record())
    #####:    #####:  800:         rv = rv->as_dereference_record()->record;
    #####:    #####:  801:      else if (rv->as_swizzle())
    #####:    #####:  802:         rv = rv->as_swizzle()->val;
        -:        -:  803:      else
    #####:    #####:  804:         rv = NULL;
        -:        -:  805:   }
        -:        -:  806:
    #####:    #####:  807:   if (last)
    #####:    #####:  808:      return last->array_index;
        -:        -:  809:
    #####:    #####:  810:   return NULL;
        -:        -:  811:}
        -:        -:  812:
        -:        -:  813:/**
        -:        -:  814: * Validates that a value can be assigned to a location with a specified type
        -:        -:  815: *
        -:        -:  816: * Validates that \c rhs can be assigned to some location.  If the types are
        -:        -:  817: * not an exact match but an automatic conversion is possible, \c rhs will be
        -:        -:  818: * converted.
        -:        -:  819: *
        -:        -:  820: * \return
        -:        -:  821: * \c NULL if \c rhs cannot be assigned to a location with type \c lhs_type.
        -:        -:  822: * Otherwise the actual RHS to be assigned will be returned.  This may be
        -:        -:  823: * \c rhs, or it may be \c rhs after some type conversion.
        -:        -:  824: *
        -:        -:  825: * \note
        -:        -:  826: * In addition to being used for assignments, this function is used to
        -:        -:  827: * type-check return values.
        -:        -:  828: */
        -:        -:  829:static ir_rvalue *
       17:       17:  830:validate_assignment(struct _mesa_glsl_parse_state *state,
        -:        -:  831:                    YYLTYPE loc, ir_rvalue *lhs,
        -:        -:  832:                    ir_rvalue *rhs, bool is_initializer)
        -:        -:  833:{
        -:        -:  834:   /* If there is already some error in the RHS, just return it.  Anything
        -:        -:  835:    * else will lead to an avalanche of error message back to the user.
        -:        -:  836:    */
       17:       17:  837:   if (rhs->type->is_error())
    #####:    #####:  838:      return rhs;
        -:        -:  839:
        -:        -:  840:   /* In the Tessellation Control Shader:
        -:        -:  841:    * If a per-vertex output variable is used as an l-value, it is an error
        -:        -:  842:    * if the expression indicating the vertex number is not the identifier
        -:        -:  843:    * `gl_InvocationID`.
        -:        -:  844:    */
       17:       17:  845:   if (state->stage == MESA_SHADER_TESS_CTRL && !lhs->type->is_error()) {
    #####:    #####:  846:      ir_variable *var = lhs->variable_referenced();
    #####:    #####:  847:      if (var && var->data.mode == ir_var_shader_out && !var->data.patch) {
    #####:    #####:  848:         ir_rvalue *index = find_innermost_array_index(lhs);
    #####:    #####:  849:         ir_variable *index_var = index ? index->variable_referenced() : NULL;
    #####:    #####:  850:         if (!index_var || strcmp(index_var->name, "gl_InvocationID") != 0) {
        -:        -:  851:            _mesa_glsl_error(&loc, state,
        -:        -:  852:                             "Tessellation control shader outputs can only "
    #####:    #####:  853:                             "be indexed by gl_InvocationID");
    #####:    #####:  854:            return NULL;
        -:        -:  855:         }
        -:        -:  856:      }
        -:        -:  857:   }
        -:        -:  858:
        -:        -:  859:   /* If the types are identical, the assignment can trivially proceed.
        -:        -:  860:    */
       17:       17:  861:   if (rhs->type == lhs->type)
       17:       17:  862:      return rhs;
        -:        -:  863:
        -:        -:  864:   /* If the array element types are the same and the LHS is unsized,
        -:        -:  865:    * the assignment is okay for initializers embedded in variable
        -:        -:  866:    * declarations.
        -:        -:  867:    *
        -:        -:  868:    * Note: Whole-array assignments are not permitted in GLSL 1.10, but this
        -:        -:  869:    * is handled by ir_dereference::is_lvalue.
        -:        -:  870:    */
    #####:    #####:  871:   const glsl_type *lhs_t = lhs->type;
    #####:    #####:  872:   const glsl_type *rhs_t = rhs->type;
    #####:    #####:  873:   bool unsized_array = false;
    #####:    #####:  874:   while(lhs_t->is_array()) {
    #####:    #####:  875:      if (rhs_t == lhs_t)
    #####:    #####:  876:         break; /* the rest of the inner arrays match so break out early */
    #####:    #####:  877:      if (!rhs_t->is_array()) {
    #####:    #####:  878:         unsized_array = false;
    #####:    #####:  879:         break; /* number of dimensions mismatch */
        -:        -:  880:      }
    #####:    #####:  881:      if (lhs_t->length == rhs_t->length) {
    #####:    #####:  882:         lhs_t = lhs_t->fields.array;
    #####:    #####:  883:         rhs_t = rhs_t->fields.array;
    #####:    #####:  884:         continue;
    #####:    #####:  885:      } else if (lhs_t->is_unsized_array()) {
    #####:    #####:  886:         unsized_array = true;
        -:        -:  887:      } else {
    #####:    #####:  888:         unsized_array = false;
    #####:    #####:  889:         break; /* sized array mismatch */
        -:        -:  890:      }
    #####:    #####:  891:      lhs_t = lhs_t->fields.array;
    #####:    #####:  892:      rhs_t = rhs_t->fields.array;
        -:        -:  893:   }
    #####:    #####:  894:   if (unsized_array) {
    #####:    #####:  895:      if (is_initializer) {
    #####:    #####:  896:         return rhs;
        -:        -:  897:      } else {
        -:        -:  898:         _mesa_glsl_error(&loc, state,
    #####:    #####:  899:                          "implicitly sized arrays cannot be assigned");
    #####:    #####:  900:         return NULL;
        -:        -:  901:      }
        -:        -:  902:   }
        -:        -:  903:
        -:        -:  904:   /* Check for implicit conversion in GLSL 1.20 */
    #####:    #####:  905:   if (apply_implicit_conversion(lhs->type, rhs, state)) {
    #####:    #####:  906:      if (rhs->type == lhs->type)
    #####:    #####:  907:         return rhs;
        -:        -:  908:   }
        -:        -:  909:
    #####:    #####:  910:   _mesa_glsl_error(&loc, state,
        -:        -:  911:                    "%s of type %s cannot be assigned to "
        -:        -:  912:                    "variable of type %s",
        -:        -:  913:                    is_initializer ? "initializer" : "value",
    #####:    #####:  914:                    rhs->type->name, lhs->type->name);
        -:        -:  915:
    #####:    #####:  916:   return NULL;
        -:        -:  917:}
        -:        -:  918:
        -:        -:  919:static void
    #####:    #####:  920:mark_whole_array_access(ir_rvalue *access)
        -:        -:  921:{
    #####:    #####:  922:   ir_dereference_variable *deref = access->as_dereference_variable();
        -:        -:  923:
    #####:    #####:  924:   if (deref && deref->var) {
    #####:    #####:  925:      deref->var->data.max_array_access = deref->type->length - 1;
        -:        -:  926:   }
    #####:    #####:  927:}
        -:        -:  928:
        -:        -:  929:static bool
       17:       17:  930:do_assignment(exec_list *instructions, struct _mesa_glsl_parse_state *state,
        -:        -:  931:              const char *non_lvalue_description,
        -:        -:  932:              ir_rvalue *lhs, ir_rvalue *rhs,
        -:        -:  933:              ir_rvalue **out_rvalue, bool needs_rvalue,
        -:        -:  934:              bool is_initializer,
        -:        -:  935:              YYLTYPE lhs_loc)
        -:        -:  936:{
       17:       17:  937:   void *ctx = state;
       17:       17:  938:   bool error_emitted = (lhs->type->is_error() || rhs->type->is_error());
        -:        -:  939:
       17:       17:  940:   ir_variable *lhs_var = lhs->variable_referenced();
       17:       17:  941:   if (lhs_var)
       17:       17:  942:      lhs_var->data.assigned = true;
        -:        -:  943:
       17:       17:  944:   if (!error_emitted) {
       17:       17:  945:      if (non_lvalue_description != NULL) {
        -:        -:  946:         _mesa_glsl_error(&lhs_loc, state,
        -:        -:  947:                          "assignment to %s",
    #####:    #####:  948:                          non_lvalue_description);
    #####:    #####:  949:         error_emitted = true;
       34:       34:  950:      } else if (lhs_var != NULL && (lhs_var->data.read_only ||
       17:       17:  951:                 (lhs_var->data.mode == ir_var_shader_storage &&
        -:        -:  952:                  lhs_var->data.image_read_only))) {
        -:        -:  953:         /* We can have image_read_only set on both images and buffer variables,
        -:        -:  954:          * but in the former there is a distinction between assignments to
        -:        -:  955:          * the variable itself (read_only) and to the memory they point to
        -:        -:  956:          * (image_read_only), while in the case of buffer variables there is
        -:        -:  957:          * no such distinction, that is why this check here is limited to
        -:        -:  958:          * buffer variables alone.
        -:        -:  959:          */
    #####:    #####:  960:         _mesa_glsl_error(&lhs_loc, state,
        -:        -:  961:                          "assignment to read-only variable '%s'",
    #####:    #####:  962:                          lhs_var->name);
    #####:    #####:  963:         error_emitted = true;
       17:       17:  964:      } else if (lhs->type->is_array() &&
    #####:    #####:  965:                 !state->check_version(120, 300, &lhs_loc,
    #####:    #####:  966:                                       "whole array assignment forbidden")) {
        -:        -:  967:         /* From page 32 (page 38 of the PDF) of the GLSL 1.10 spec:
        -:        -:  968:          *
        -:        -:  969:          *    "Other binary or unary expressions, non-dereferenced
        -:        -:  970:          *     arrays, function names, swizzles with repeated fields,
        -:        -:  971:          *     and constants cannot be l-values."
        -:        -:  972:          *
        -:        -:  973:          * The restriction on arrays is lifted in GLSL 1.20 and GLSL ES 3.00.
        -:        -:  974:          */
    #####:    #####:  975:         error_emitted = true;
       17:       17:  976:      } else if (!lhs->is_lvalue()) {
    #####:    #####:  977:         _mesa_glsl_error(& lhs_loc, state, "non-lvalue in assignment");
    #####:    #####:  978:         error_emitted = true;
        -:        -:  979:      }
        -:        -:  980:   }
        -:        -:  981:
        -:        -:  982:   ir_rvalue *new_rhs =
       17:       17:  983:      validate_assignment(state, lhs_loc, lhs, rhs, is_initializer);
       17:       17:  984:   if (new_rhs != NULL) {
       17:       17:  985:      rhs = new_rhs;
        -:        -:  986:
        -:        -:  987:      /* If the LHS array was not declared with a size, it takes it size from
        -:        -:  988:       * the RHS.  If the LHS is an l-value and a whole array, it must be a
        -:        -:  989:       * dereference of a variable.  Any other case would require that the LHS
        -:        -:  990:       * is either not an l-value or not a whole array.
        -:        -:  991:       */
       17:       17:  992:      if (lhs->type->is_unsized_array()) {
    #####:    #####:  993:         ir_dereference *const d = lhs->as_dereference();
        -:        -:  994:
    #####:    #####:  995:         assert(d != NULL);
        -:        -:  996:
    #####:    #####:  997:         ir_variable *const var = d->variable_referenced();
        -:        -:  998:
    #####:    #####:  999:         assert(var != NULL);
        -:        -: 1000:
    #####:    #####: 1001:         if (var->data.max_array_access >= rhs->type->array_size()) {
        -:        -: 1002:            /* FINISHME: This should actually log the location of the RHS. */
    #####:    #####: 1003:            _mesa_glsl_error(& lhs_loc, state, "array size must be > %u due to "
        -:        -: 1004:                             "previous access",
    #####:    #####: 1005:                             var->data.max_array_access);
        -:        -: 1006:         }
        -:        -: 1007:
    #####:    #####: 1008:         var->type = glsl_type::get_array_instance(lhs->type->fields.array,
    #####:    #####: 1009:                                                   rhs->type->array_size());
    #####:    #####: 1010:         d->type = var->type;
        -:        -: 1011:      }
       17:       17: 1012:      if (lhs->type->is_array()) {
    #####:    #####: 1013:         mark_whole_array_access(rhs);
    #####:    #####: 1014:         mark_whole_array_access(lhs);
        -:        -: 1015:      }
        -:        -: 1016:   }
        -:        -: 1017:
        -:        -: 1018:   /* Most callers of do_assignment (assign, add_assign, pre_inc/dec,
        -:        -: 1019:    * but not post_inc) need the converted assigned value as an rvalue
        -:        -: 1020:    * to handle things like:
        -:        -: 1021:    *
        -:        -: 1022:    * i = j += 1;
        -:        -: 1023:    */
       17:       17: 1024:   if (needs_rvalue) {
        -:        -: 1025:      ir_rvalue *rvalue;
        5:        5: 1026:      if (!error_emitted) {
        -:        -: 1027:         ir_variable *var = new(ctx) ir_variable(rhs->type, "assignment_tmp",
        5:        5: 1028:                                                 ir_var_temporary);
        5:        5: 1029:         instructions->push_tail(var);
        5:        5: 1030:         instructions->push_tail(assign(var, rhs));
        -:        -: 1031:
        -:        -: 1032:         ir_dereference_variable *deref_var =
        5:        5: 1033:            new(ctx) ir_dereference_variable(var);
        5:        5: 1034:         instructions->push_tail(new(ctx) ir_assignment(lhs, deref_var));
        5:        5: 1035:         rvalue = new(ctx) ir_dereference_variable(var);
        -:        -: 1036:      } else {
    #####:    #####: 1037:         rvalue = ir_rvalue::error_value(ctx);
        -:        -: 1038:      }
        5:        5: 1039:      *out_rvalue = rvalue;
        -:        -: 1040:   } else {
       12:       12: 1041:      if (!error_emitted)
       12:       12: 1042:         instructions->push_tail(new(ctx) ir_assignment(lhs, rhs));
       12:       12: 1043:      *out_rvalue = NULL;
        -:        -: 1044:   }
        -:        -: 1045:
       17:       17: 1046:   return error_emitted;
        -:        -: 1047:}
        -:        -: 1048:
        -:        -: 1049:static ir_rvalue *
        2:        2: 1050:get_lvalue_copy(exec_list *instructions, ir_rvalue *lvalue)
        -:        -: 1051:{
        2:        2: 1052:   void *ctx = ralloc_parent(lvalue);
        -:        -: 1053:   ir_variable *var;
        -:        -: 1054:
        -:        -: 1055:   var = new(ctx) ir_variable(lvalue->type, "_post_incdec_tmp",
        2:        2: 1056:                              ir_var_temporary);
        2:        2: 1057:   instructions->push_tail(var);
        -:        -: 1058:
        2:        2: 1059:   instructions->push_tail(new(ctx) ir_assignment(new(ctx) ir_dereference_variable(var),
        4:        4: 1060:                                                  lvalue));
        -:        -: 1061:
        2:        2: 1062:   return new(ctx) ir_dereference_variable(var);
        -:        -: 1063:}
        -:        -: 1064:
        -:        -: 1065:
        -:        -: 1066:ir_rvalue *
    #####:    #####: 1067:ast_node::hir(exec_list *instructions, struct _mesa_glsl_parse_state *state)
        -:        -: 1068:{
        -:        -: 1069:   (void) instructions;
        -:        -: 1070:   (void) state;
        -:        -: 1071:
    #####:    #####: 1072:   return NULL;
        -:        -: 1073:}
        -:        -: 1074:
        -:        -: 1075:bool
    #####:    #####: 1076:ast_node::has_sequence_subexpression() const
        -:        -: 1077:{
    #####:    #####: 1078:   return false;
        -:        -: 1079:}
        -:        -: 1080:
        -:        -: 1081:void
    #####:    #####: 1082:ast_node::set_is_lhs(bool /* new_value */)
        -:        -: 1083:{
    #####:    #####: 1084:}
        -:        -: 1085:
        -:        -: 1086:void
    #####:    #####: 1087:ast_function_expression::hir_no_rvalue(exec_list *instructions,
        -:        -: 1088:                                       struct _mesa_glsl_parse_state *state)
        -:        -: 1089:{
    #####:    #####: 1090:   (void)hir(instructions, state);
    #####:    #####: 1091:}
        -:        -: 1092:
        -:        -: 1093:void
    #####:    #####: 1094:ast_aggregate_initializer::hir_no_rvalue(exec_list *instructions,
        -:        -: 1095:                                         struct _mesa_glsl_parse_state *state)
        -:        -: 1096:{
    #####:    #####: 1097:   (void)hir(instructions, state);
    #####:    #####: 1098:}
        -:        -: 1099:
        -:        -: 1100:static ir_rvalue *
    #####:    #####: 1101:do_comparison(void *mem_ctx, int operation, ir_rvalue *op0, ir_rvalue *op1)
        -:        -: 1102:{
        -:        -: 1103:   int join_op;
    #####:    #####: 1104:   ir_rvalue *cmp = NULL;
        -:        -: 1105:
    #####:    #####: 1106:   if (operation == ir_binop_all_equal)
    #####:    #####: 1107:      join_op = ir_binop_logic_and;
        -:        -: 1108:   else
    #####:    #####: 1109:      join_op = ir_binop_logic_or;
        -:        -: 1110:
    #####:    #####: 1111:   switch (op0->type->base_type) {
        -:        -: 1112:   case GLSL_TYPE_FLOAT:
        -:        -: 1113:   case GLSL_TYPE_UINT:
        -:        -: 1114:   case GLSL_TYPE_INT:
        -:        -: 1115:   case GLSL_TYPE_BOOL:
        -:        -: 1116:   case GLSL_TYPE_DOUBLE:
        -:        -: 1117:   case GLSL_TYPE_UINT64:
        -:        -: 1118:   case GLSL_TYPE_INT64:
    #####:    #####: 1119:      return new(mem_ctx) ir_expression(operation, op0, op1);
        -:        -: 1120:
        -:        -: 1121:   case GLSL_TYPE_ARRAY: {
    #####:    #####: 1122:      for (unsigned int i = 0; i < op0->type->length; i++) {
        -:        -: 1123:         ir_rvalue *e0, *e1, *result;
        -:        -: 1124:
    #####:    #####: 1125:         e0 = new(mem_ctx) ir_dereference_array(op0->clone(mem_ctx, NULL),
    #####:    #####: 1126:                                                new(mem_ctx) ir_constant(i));
    #####:    #####: 1127:         e1 = new(mem_ctx) ir_dereference_array(op1->clone(mem_ctx, NULL),
    #####:    #####: 1128:                                                new(mem_ctx) ir_constant(i));
    #####:    #####: 1129:         result = do_comparison(mem_ctx, operation, e0, e1);
        -:        -: 1130:
    #####:    #####: 1131:         if (cmp) {
    #####:    #####: 1132:            cmp = new(mem_ctx) ir_expression(join_op, cmp, result);
        -:        -: 1133:         } else {
    #####:    #####: 1134:            cmp = result;
        -:        -: 1135:         }
        -:        -: 1136:      }
        -:        -: 1137:
    #####:    #####: 1138:      mark_whole_array_access(op0);
    #####:    #####: 1139:      mark_whole_array_access(op1);
    #####:    #####: 1140:      break;
        -:        -: 1141:   }
        -:        -: 1142:
        -:        -: 1143:   case GLSL_TYPE_STRUCT: {
    #####:    #####: 1144:      for (unsigned int i = 0; i < op0->type->length; i++) {
        -:        -: 1145:         ir_rvalue *e0, *e1, *result;
    #####:    #####: 1146:         const char *field_name = op0->type->fields.structure[i].name;
        -:        -: 1147:
    #####:    #####: 1148:         e0 = new(mem_ctx) ir_dereference_record(op0->clone(mem_ctx, NULL),
    #####:    #####: 1149:                                                 field_name);
    #####:    #####: 1150:         e1 = new(mem_ctx) ir_dereference_record(op1->clone(mem_ctx, NULL),
    #####:    #####: 1151:                                                 field_name);
    #####:    #####: 1152:         result = do_comparison(mem_ctx, operation, e0, e1);
        -:        -: 1153:
    #####:    #####: 1154:         if (cmp) {
    #####:    #####: 1155:            cmp = new(mem_ctx) ir_expression(join_op, cmp, result);
        -:        -: 1156:         } else {
    #####:    #####: 1157:            cmp = result;
        -:        -: 1158:         }
        -:        -: 1159:      }
    #####:    #####: 1160:      break;
        -:        -: 1161:   }
        -:        -: 1162:
        -:        -: 1163:   case GLSL_TYPE_ERROR:
        -:        -: 1164:   case GLSL_TYPE_VOID:
        -:        -: 1165:   case GLSL_TYPE_SAMPLER:
        -:        -: 1166:   case GLSL_TYPE_IMAGE:
        -:        -: 1167:   case GLSL_TYPE_INTERFACE:
        -:        -: 1168:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -: 1169:   case GLSL_TYPE_SUBROUTINE:
        -:        -: 1170:   case GLSL_TYPE_FUNCTION:
        -:        -: 1171:      /* I assume a comparison of a struct containing a sampler just
        -:        -: 1172:       * ignores the sampler present in the type.
        -:        -: 1173:       */
    #####:    #####: 1174:      break;
        -:        -: 1175:   }
        -:        -: 1176:
    #####:    #####: 1177:   if (cmp == NULL)
    #####:    #####: 1178:      cmp = new(mem_ctx) ir_constant(true);
        -:        -: 1179:
    #####:    #####: 1180:   return cmp;
        -:        -: 1181:}
        -:        -: 1182:
        -:        -: 1183:/* For logical operations, we want to ensure that the operands are
        -:        -: 1184: * scalar booleans.  If it isn't, emit an error and return a constant
        -:        -: 1185: * boolean to avoid triggering cascading error messages.
        -:        -: 1186: */
        -:        -: 1187:ir_rvalue *
    #####:    #####: 1188:get_scalar_boolean_operand(exec_list *instructions,
        -:        -: 1189:                           struct _mesa_glsl_parse_state *state,
        -:        -: 1190:                           ast_expression *parent_expr,
        -:        -: 1191:                           int operand,
        -:        -: 1192:                           const char *operand_name,
        -:        -: 1193:                           bool *error_emitted)
        -:        -: 1194:{
    #####:    #####: 1195:   ast_expression *expr = parent_expr->subexpressions[operand];
    #####:    #####: 1196:   void *ctx = state;
    #####:    #####: 1197:   ir_rvalue *val = expr->hir(instructions, state);
        -:        -: 1198:
    #####:    #####: 1199:   if (val->type->is_boolean() && val->type->is_scalar())
    #####:    #####: 1200:      return val;
        -:        -: 1201:
    #####:    #####: 1202:   if (!*error_emitted) {
    #####:    #####: 1203:      YYLTYPE loc = expr->get_location();
    #####:    #####: 1204:      _mesa_glsl_error(&loc, state, "%s of `%s' must be scalar boolean",
        -:        -: 1205:                       operand_name,
    #####:    #####: 1206:                       parent_expr->operator_string(parent_expr->oper));
    #####:    #####: 1207:      *error_emitted = true;
        -:        -: 1208:   }
        -:        -: 1209:
    #####:    #####: 1210:   return new(ctx) ir_constant(true);
        -:        -: 1211:}
        -:        -: 1212:
        -:        -: 1213:/**
        -:        -: 1214: * If name refers to a builtin array whose maximum allowed size is less than
        -:        -: 1215: * size, report an error and return true.  Otherwise return false.
        -:        -: 1216: */
        -:        -: 1217:void
        5:        5: 1218:check_builtin_array_max_size(const char *name, unsigned size,
        -:        -: 1219:                             YYLTYPE loc, struct _mesa_glsl_parse_state *state)
        -:        -: 1220:{
        5:        5: 1221:   if ((strcmp("gl_TexCoord", name) == 0)
    #####:    #####: 1222:       && (size > state->Const.MaxTextureCoords)) {
        -:        -: 1223:      /* From page 54 (page 60 of the PDF) of the GLSL 1.20 spec:
        -:        -: 1224:       *
        -:        -: 1225:       *     "The size [of gl_TexCoord] can be at most
        -:        -: 1226:       *     gl_MaxTextureCoords."
        -:        -: 1227:       */
    #####:    #####: 1228:      _mesa_glsl_error(&loc, state, "`gl_TexCoord' array size cannot "
        -:        -: 1229:                       "be larger than gl_MaxTextureCoords (%u)",
    #####:    #####: 1230:                       state->Const.MaxTextureCoords);
        5:        5: 1231:   } else if (strcmp("gl_ClipDistance", name) == 0) {
    #####:    #####: 1232:      state->clip_dist_size = size;
    #####:    #####: 1233:      if (size + state->cull_dist_size > state->Const.MaxClipPlanes) {
        -:        -: 1234:         /* From section 7.1 (Vertex Shader Special Variables) of the
        -:        -: 1235:          * GLSL 1.30 spec:
        -:        -: 1236:          *
        -:        -: 1237:          *   "The gl_ClipDistance array is predeclared as unsized and
        -:        -: 1238:          *   must be sized by the shader either redeclaring it with a
        -:        -: 1239:          *   size or indexing it only with integral constant
        -:        -: 1240:          *   expressions. ... The size can be at most
        -:        -: 1241:          *   gl_MaxClipDistances."
        -:        -: 1242:          */
    #####:    #####: 1243:         _mesa_glsl_error(&loc, state, "`gl_ClipDistance' array size cannot "
        -:        -: 1244:                          "be larger than gl_MaxClipDistances (%u)",
    #####:    #####: 1245:                          state->Const.MaxClipPlanes);
        -:        -: 1246:      }
        5:        5: 1247:   } else if (strcmp("gl_CullDistance", name) == 0) {
    #####:    #####: 1248:      state->cull_dist_size = size;
    #####:    #####: 1249:      if (size + state->clip_dist_size > state->Const.MaxClipPlanes) {
        -:        -: 1250:         /* From the ARB_cull_distance spec:
        -:        -: 1251:          *
        -:        -: 1252:          *   "The gl_CullDistance array is predeclared as unsized and
        -:        -: 1253:          *    must be sized by the shader either redeclaring it with
        -:        -: 1254:          *    a size or indexing it only with integral constant
        -:        -: 1255:          *    expressions. The size determines the number and set of
        -:        -: 1256:          *    enabled cull distances and can be at most
        -:        -: 1257:          *    gl_MaxCullDistances."
        -:        -: 1258:          */
    #####:    #####: 1259:         _mesa_glsl_error(&loc, state, "`gl_CullDistance' array size cannot "
        -:        -: 1260:                          "be larger than gl_MaxCullDistances (%u)",
    #####:    #####: 1261:                          state->Const.MaxClipPlanes);
        -:        -: 1262:      }
        -:        -: 1263:   }
        5:        5: 1264:}
        -:        -: 1265:
        -:        -: 1266:/**
        -:        -: 1267: * Create the constant 1, of a which is appropriate for incrementing and
        -:        -: 1268: * decrementing values of the given GLSL type.  For example, if type is vec4,
        -:        -: 1269: * this creates a constant value of 1.0 having type float.
        -:        -: 1270: *
        -:        -: 1271: * If the given type is invalid for increment and decrement operators, return
        -:        -: 1272: * a floating point 1--the error will be detected later.
        -:        -: 1273: */
        -:        -: 1274:static ir_rvalue *
        2:        2: 1275:constant_one_for_inc_dec(void *ctx, const glsl_type *type)
        -:        -: 1276:{
        2:        2: 1277:   switch (type->base_type) {
        -:        -: 1278:   case GLSL_TYPE_UINT:
    #####:    #####: 1279:      return new(ctx) ir_constant((unsigned) 1);
        -:        -: 1280:   case GLSL_TYPE_INT:
        2:        2: 1281:      return new(ctx) ir_constant(1);
        -:        -: 1282:   case GLSL_TYPE_UINT64:
    #####:    #####: 1283:      return new(ctx) ir_constant((uint64_t) 1);
        -:        -: 1284:   case GLSL_TYPE_INT64:
    #####:    #####: 1285:      return new(ctx) ir_constant((int64_t) 1);
        -:        -: 1286:   default:
        -:        -: 1287:   case GLSL_TYPE_FLOAT:
    #####:    #####: 1288:      return new(ctx) ir_constant(1.0f);
        -:        -: 1289:   }
        -:        -: 1290:}
        -:        -: 1291:
        -:        -: 1292:ir_rvalue *
      110:      114: 1293:ast_expression::hir(exec_list *instructions,
        -:        -: 1294:                    struct _mesa_glsl_parse_state *state)
        -:        -: 1295:{
      110:      114: 1296:   return do_hir(instructions, state, true);
        -:        -: 1297:}
        -:        -: 1298:
        -:        -: 1299:void
       10:       10: 1300:ast_expression::hir_no_rvalue(exec_list *instructions,
        -:        -: 1301:                              struct _mesa_glsl_parse_state *state)
        -:        -: 1302:{
       10:       10: 1303:   do_hir(instructions, state, false);
       10:       10: 1304:}
        -:        -: 1305:
        -:        -: 1306:void
       50:       50: 1307:ast_expression::set_is_lhs(bool new_value)
        -:        -: 1308:{
        -:        -: 1309:   /* is_lhs is tracked only to print "variable used uninitialized" warnings,
        -:        -: 1310:    * if we lack an identifier we can just skip it.
        -:        -: 1311:    */
       50:       50: 1312:   if (this->primary_expression.identifier == NULL)
        6:        6: 1313:      return;
        -:        -: 1314:
       44:       44: 1315:   this->is_lhs = new_value;
        -:        -: 1316:
        -:        -: 1317:   /* We need to go through the subexpressions tree to cover cases like
        -:        -: 1318:    * ast_field_selection
        -:        -: 1319:    */
       44:       44: 1320:   if (this->subexpressions[0] != NULL)
       11:       11: 1321:      this->subexpressions[0]->set_is_lhs(new_value);
        -:        -: 1322:}
        -:        -: 1323:
        -:        -: 1324:ir_rvalue *
      120:      124: 1325:ast_expression::do_hir(exec_list *instructions,
        -:        -: 1326:                       struct _mesa_glsl_parse_state *state,
        -:        -: 1327:                       bool needs_rvalue)
        -:        -: 1328:{
      120:      124: 1329:   void *ctx = state;
        -:        -: 1330:   static const int operations[AST_NUM_OPERATORS] = {
        -:        -: 1331:      -1,               /* ast_assign doesn't convert to ir_expression. */
        -:        -: 1332:      -1,               /* ast_plus doesn't convert to ir_expression. */
        -:        -: 1333:      ir_unop_neg,
        -:        -: 1334:      ir_binop_add,
        -:        -: 1335:      ir_binop_sub,
        -:        -: 1336:      ir_binop_mul,
        -:        -: 1337:      ir_binop_div,
        -:        -: 1338:      ir_binop_mod,
        -:        -: 1339:      ir_binop_lshift,
        -:        -: 1340:      ir_binop_rshift,
        -:        -: 1341:      ir_binop_less,
        -:        -: 1342:      ir_binop_greater,
        -:        -: 1343:      ir_binop_lequal,
        -:        -: 1344:      ir_binop_gequal,
        -:        -: 1345:      ir_binop_all_equal,
        -:        -: 1346:      ir_binop_any_nequal,
        -:        -: 1347:      ir_binop_bit_and,
        -:        -: 1348:      ir_binop_bit_xor,
        -:        -: 1349:      ir_binop_bit_or,
        -:        -: 1350:      ir_unop_bit_not,
        -:        -: 1351:      ir_binop_logic_and,
        -:        -: 1352:      ir_binop_logic_xor,
        -:        -: 1353:      ir_binop_logic_or,
        -:        -: 1354:      ir_unop_logic_not,
        -:        -: 1355:
        -:        -: 1356:      /* Note: The following block of expression types actually convert
        -:        -: 1357:       * to multiple IR instructions.
        -:        -: 1358:       */
        -:        -: 1359:      ir_binop_mul,     /* ast_mul_assign */
        -:        -: 1360:      ir_binop_div,     /* ast_div_assign */
        -:        -: 1361:      ir_binop_mod,     /* ast_mod_assign */
        -:        -: 1362:      ir_binop_add,     /* ast_add_assign */
        -:        -: 1363:      ir_binop_sub,     /* ast_sub_assign */
        -:        -: 1364:      ir_binop_lshift,  /* ast_ls_assign */
        -:        -: 1365:      ir_binop_rshift,  /* ast_rs_assign */
        -:        -: 1366:      ir_binop_bit_and, /* ast_and_assign */
        -:        -: 1367:      ir_binop_bit_xor, /* ast_xor_assign */
        -:        -: 1368:      ir_binop_bit_or,  /* ast_or_assign */
        -:        -: 1369:
        -:        -: 1370:      -1,               /* ast_conditional doesn't convert to ir_expression. */
        -:        -: 1371:      ir_binop_add,     /* ast_pre_inc. */
        -:        -: 1372:      ir_binop_sub,     /* ast_pre_dec. */
        -:        -: 1373:      ir_binop_add,     /* ast_post_inc. */
        -:        -: 1374:      ir_binop_sub,     /* ast_post_dec. */
        -:        -: 1375:      -1,               /* ast_field_selection doesn't conv to ir_expression. */
        -:        -: 1376:      -1,               /* ast_array_index doesn't convert to ir_expression. */
        -:        -: 1377:      -1,               /* ast_function_call doesn't conv to ir_expression. */
        -:        -: 1378:      -1,               /* ast_identifier doesn't convert to ir_expression. */
        -:        -: 1379:      -1,               /* ast_int_constant doesn't convert to ir_expression. */
        -:        -: 1380:      -1,               /* ast_uint_constant doesn't conv to ir_expression. */
        -:        -: 1381:      -1,               /* ast_float_constant doesn't conv to ir_expression. */
        -:        -: 1382:      -1,               /* ast_bool_constant doesn't conv to ir_expression. */
        -:        -: 1383:      -1,               /* ast_sequence doesn't convert to ir_expression. */
        -:        -: 1384:      -1,               /* ast_aggregate shouldn't ever even get here. */
        -:        -: 1385:   };
      120:      124: 1386:   ir_rvalue *result = NULL;
        -:        -: 1387:   ir_rvalue *op[3];
        -:        -: 1388:   const struct glsl_type *type, *orig_type;
      120:      124: 1389:   bool error_emitted = false;
        -:        -: 1390:   YYLTYPE loc;
        -:        -: 1391:
      120:      124: 1392:   loc = this->get_location();
        -:        -: 1393:
      120:      124: 1394:   switch (this->oper) {
        -:        -: 1395:   case ast_aggregate:
    #####:    #####: 1396:      assert(!"ast_aggregate: Should never get here.");
        -:        -: 1397:      break;
        -:        -: 1398:
        -:        -: 1399:   case ast_assign: {
        9:        9: 1400:      this->subexpressions[0]->set_is_lhs(true);
        9:        9: 1401:      op[0] = this->subexpressions[0]->hir(instructions, state);
        9:        9: 1402:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1403:
        -:        -: 1404:      error_emitted =
       18:       18: 1405:         do_assignment(instructions, state,
        9:        9: 1406:                       this->subexpressions[0]->non_lvalue_description,
        -:        -: 1407:                       op[0], op[1], &result, needs_rvalue, false,
       18:       18: 1408:                       this->subexpressions[0]->get_location());
        9:        9: 1409:      break;
        -:        -: 1410:   }
        -:        -: 1411:
        -:        -: 1412:   case ast_plus:
    #####:    #####: 1413:      op[0] = this->subexpressions[0]->hir(instructions, state);
        -:        -: 1414:
    #####:    #####: 1415:      type = unary_arithmetic_result_type(op[0]->type, state, & loc);
        -:        -: 1416:
    #####:    #####: 1417:      error_emitted = type->is_error();
        -:        -: 1418:
    #####:    #####: 1419:      result = op[0];
    #####:    #####: 1420:      break;
        -:        -: 1421:
        -:        -: 1422:   case ast_neg:
    #####:    #####: 1423:      op[0] = this->subexpressions[0]->hir(instructions, state);
        -:        -: 1424:
    #####:    #####: 1425:      type = unary_arithmetic_result_type(op[0]->type, state, & loc);
        -:        -: 1426:
    #####:    #####: 1427:      error_emitted = type->is_error();
        -:        -: 1428:
    #####:    #####: 1429:      result = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1430:                                      op[0], NULL);
    #####:    #####: 1431:      break;
        -:        -: 1432:
        -:        -: 1433:   case ast_add:
        -:        -: 1434:   case ast_sub:
        -:        -: 1435:   case ast_mul:
        -:        -: 1436:   case ast_div:
        3:        3: 1437:      op[0] = this->subexpressions[0]->hir(instructions, state);
        3:        3: 1438:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1439:
        3:        3: 1440:      type = arithmetic_result_type(op[0], op[1],
        3:        3: 1441:                                    (this->oper == ast_mul),
        3:        3: 1442:                                    state, & loc);
        3:        3: 1443:      error_emitted = type->is_error();
        -:        -: 1444:
        6:        6: 1445:      result = new(ctx) ir_expression(operations[this->oper], type,
        9:        9: 1446:                                      op[0], op[1]);
        3:        3: 1447:      break;
        -:        -: 1448:
        -:        -: 1449:   case ast_mod:
    #####:    #####: 1450:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1451:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1452:
    #####:    #####: 1453:      type = modulus_result_type(op[0], op[1], state, &loc);
        -:        -: 1454:
    #####:    #####: 1455:      assert(operations[this->oper] == ir_binop_mod);
        -:        -: 1456:
    #####:    #####: 1457:      result = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1458:                                      op[0], op[1]);
    #####:    #####: 1459:      error_emitted = type->is_error();
    #####:    #####: 1460:      break;
        -:        -: 1461:
        -:        -: 1462:   case ast_lshift:
        -:        -: 1463:   case ast_rshift:
    #####:    #####: 1464:       if (!state->check_bitwise_operations_allowed(&loc)) {
    #####:    #####: 1465:          error_emitted = true;
        -:        -: 1466:       }
        -:        -: 1467:
    #####:    #####: 1468:       op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1469:       op[1] = this->subexpressions[1]->hir(instructions, state);
    #####:    #####: 1470:       type = shift_result_type(op[0]->type, op[1]->type, this->oper, state,
    #####:    #####: 1471:                                &loc);
    #####:    #####: 1472:       result = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1473:                                       op[0], op[1]);
    #####:    #####: 1474:       error_emitted = op[0]->type->is_error() || op[1]->type->is_error();
    #####:    #####: 1475:       break;
        -:        -: 1476:
        -:        -: 1477:   case ast_less:
        -:        -: 1478:   case ast_greater:
        -:        -: 1479:   case ast_lequal:
        -:        -: 1480:   case ast_gequal:
        5:        6: 1481:      op[0] = this->subexpressions[0]->hir(instructions, state);
        5:        6: 1482:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1483:
        5:        6: 1484:      type = relational_result_type(op[0], op[1], state, & loc);
        -:        -: 1485:
        -:        -: 1486:      /* The relational operators must either generate an error or result
        -:        -: 1487:       * in a scalar boolean.  See page 57 of the GLSL 1.50 spec.
        -:        -: 1488:       */
       10:       12: 1489:      assert(type->is_error()
        -:        -: 1490:             || ((type->base_type == GLSL_TYPE_BOOL)
        5:        6: 1491:                 && type->is_scalar()));
        -:        -: 1492:
       10:       12: 1493:      result = new(ctx) ir_expression(operations[this->oper], type,
       15:       18: 1494:                                      op[0], op[1]);
        5:        6: 1495:      error_emitted = type->is_error();
        5:        6: 1496:      break;
        -:        -: 1497:
        -:        -: 1498:   case ast_nequal:
        -:        -: 1499:   case ast_equal:
    #####:    #####: 1500:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1501:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1502:
        -:        -: 1503:      /* From page 58 (page 64 of the PDF) of the GLSL 1.50 spec:
        -:        -: 1504:       *
        -:        -: 1505:       *    "The equality operators equal (==), and not equal (!=)
        -:        -: 1506:       *    operate on all types. They result in a scalar Boolean. If
        -:        -: 1507:       *    the operand types do not match, then there must be a
        -:        -: 1508:       *    conversion from Section 4.1.10 "Implicit Conversions"
        -:        -: 1509:       *    applied to one operand that can make them match, in which
        -:        -: 1510:       *    case this conversion is done."
        -:        -: 1511:       */
        -:        -: 1512:
    #####:    #####: 1513:      if (op[0]->type == glsl_type::void_type || op[1]->type == glsl_type::void_type) {
    #####:    #####: 1514:         _mesa_glsl_error(& loc, state, "`%s':  wrong operand types: "
        -:        -: 1515:                         "no operation `%1$s' exists that takes a left-hand "
        -:        -: 1516:                         "operand of type 'void' or a right operand of type "
    #####:    #####: 1517:                         "'void'", (this->oper == ast_equal) ? "==" : "!=");
    #####:    #####: 1518:         error_emitted = true;
    #####:    #####: 1519:      } else if ((!apply_implicit_conversion(op[0]->type, op[1], state)
    #####:    #####: 1520:           && !apply_implicit_conversion(op[1]->type, op[0], state))
    #####:    #####: 1521:          || (op[0]->type != op[1]->type)) {
    #####:    #####: 1522:         _mesa_glsl_error(& loc, state, "operands of `%s' must have the same "
    #####:    #####: 1523:                          "type", (this->oper == ast_equal) ? "==" : "!=");
    #####:    #####: 1524:         error_emitted = true;
    #####:    #####: 1525:      } else if ((op[0]->type->is_array() || op[1]->type->is_array()) &&
    #####:    #####: 1526:                 !state->check_version(120, 300, &loc,
    #####:    #####: 1527:                                       "array comparisons forbidden")) {
    #####:    #####: 1528:         error_emitted = true;
    #####:    #####: 1529:      } else if ((op[0]->type->contains_subroutine() ||
    #####:    #####: 1530:                  op[1]->type->contains_subroutine())) {
    #####:    #####: 1531:         _mesa_glsl_error(&loc, state, "subroutine comparisons forbidden");
    #####:    #####: 1532:         error_emitted = true;
    #####:    #####: 1533:      } else if ((op[0]->type->contains_opaque() ||
    #####:    #####: 1534:                  op[1]->type->contains_opaque())) {
    #####:    #####: 1535:         _mesa_glsl_error(&loc, state, "opaque type comparisons forbidden");
    #####:    #####: 1536:         error_emitted = true;
        -:        -: 1537:      }
        -:        -: 1538:
    #####:    #####: 1539:      if (error_emitted) {
    #####:    #####: 1540:         result = new(ctx) ir_constant(false);
        -:        -: 1541:      } else {
    #####:    #####: 1542:         result = do_comparison(ctx, operations[this->oper], op[0], op[1]);
    #####:    #####: 1543:         assert(result->type == glsl_type::bool_type);
        -:        -: 1544:      }
    #####:    #####: 1545:      break;
        -:        -: 1546:
        -:        -: 1547:   case ast_bit_and:
        -:        -: 1548:   case ast_bit_xor:
        -:        -: 1549:   case ast_bit_or:
    #####:    #####: 1550:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1551:      op[1] = this->subexpressions[1]->hir(instructions, state);
    #####:    #####: 1552:      type = bit_logic_result_type(op[0], op[1], this->oper, state, &loc);
    #####:    #####: 1553:      result = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1554:                                      op[0], op[1]);
    #####:    #####: 1555:      error_emitted = op[0]->type->is_error() || op[1]->type->is_error();
    #####:    #####: 1556:      break;
        -:        -: 1557:
        -:        -: 1558:   case ast_bit_not:
    #####:    #####: 1559:      op[0] = this->subexpressions[0]->hir(instructions, state);
        -:        -: 1560:
    #####:    #####: 1561:      if (!state->check_bitwise_operations_allowed(&loc)) {
    #####:    #####: 1562:         error_emitted = true;
        -:        -: 1563:      }
        -:        -: 1564:
    #####:    #####: 1565:      if (!op[0]->type->is_integer_32_64()) {
    #####:    #####: 1566:         _mesa_glsl_error(&loc, state, "operand of `~' must be an integer");
    #####:    #####: 1567:         error_emitted = true;
        -:        -: 1568:      }
        -:        -: 1569:
    #####:    #####: 1570:      type = error_emitted ? glsl_type::error_type : op[0]->type;
    #####:    #####: 1571:      result = new(ctx) ir_expression(ir_unop_bit_not, type, op[0], NULL);
    #####:    #####: 1572:      break;
        -:        -: 1573:
        -:        -: 1574:   case ast_logic_and: {
    #####:    #####: 1575:      exec_list rhs_instructions;
    #####:    #####: 1576:      op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
    #####:    #####: 1577:                                         "LHS", &error_emitted);
    #####:    #####: 1578:      op[1] = get_scalar_boolean_operand(&rhs_instructions, state, this, 1,
    #####:    #####: 1579:                                         "RHS", &error_emitted);
        -:        -: 1580:
    #####:    #####: 1581:      if (rhs_instructions.is_empty()) {
    #####:    #####: 1582:         result = new(ctx) ir_expression(ir_binop_logic_and, op[0], op[1]);
    #####:    #####: 1583:         type = result->type;
        -:        -: 1584:      } else {
        -:        -: 1585:         ir_variable *const tmp = new(ctx) ir_variable(glsl_type::bool_type,
        -:        -: 1586:                                                       "and_tmp",
    #####:    #####: 1587:                                                       ir_var_temporary);
    #####:    #####: 1588:         instructions->push_tail(tmp);
        -:        -: 1589:
    #####:    #####: 1590:         ir_if *const stmt = new(ctx) ir_if(op[0]);
    #####:    #####: 1591:         instructions->push_tail(stmt);
        -:        -: 1592:
    #####:    #####: 1593:         stmt->then_instructions.append_list(&rhs_instructions);
    #####:    #####: 1594:         ir_dereference *const then_deref = new(ctx) ir_dereference_variable(tmp);
        -:        -: 1595:         ir_assignment *const then_assign =
    #####:    #####: 1596:            new(ctx) ir_assignment(then_deref, op[1]);
    #####:    #####: 1597:         stmt->then_instructions.push_tail(then_assign);
        -:        -: 1598:
    #####:    #####: 1599:         ir_dereference *const else_deref = new(ctx) ir_dereference_variable(tmp);
        -:        -: 1600:         ir_assignment *const else_assign =
    #####:    #####: 1601:            new(ctx) ir_assignment(else_deref, new(ctx) ir_constant(false));
    #####:    #####: 1602:         stmt->else_instructions.push_tail(else_assign);
        -:        -: 1603:
    #####:    #####: 1604:         result = new(ctx) ir_dereference_variable(tmp);
    #####:    #####: 1605:         type = tmp->type;
        -:        -: 1606:      }
    #####:    #####: 1607:      break;
        -:        -: 1608:   }
        -:        -: 1609:
        -:        -: 1610:   case ast_logic_or: {
    #####:    #####: 1611:      exec_list rhs_instructions;
    #####:    #####: 1612:      op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
    #####:    #####: 1613:                                         "LHS", &error_emitted);
    #####:    #####: 1614:      op[1] = get_scalar_boolean_operand(&rhs_instructions, state, this, 1,
    #####:    #####: 1615:                                         "RHS", &error_emitted);
        -:        -: 1616:
    #####:    #####: 1617:      if (rhs_instructions.is_empty()) {
    #####:    #####: 1618:         result = new(ctx) ir_expression(ir_binop_logic_or, op[0], op[1]);
    #####:    #####: 1619:         type = result->type;
        -:        -: 1620:      } else {
        -:        -: 1621:         ir_variable *const tmp = new(ctx) ir_variable(glsl_type::bool_type,
        -:        -: 1622:                                                       "or_tmp",
    #####:    #####: 1623:                                                       ir_var_temporary);
    #####:    #####: 1624:         instructions->push_tail(tmp);
        -:        -: 1625:
    #####:    #####: 1626:         ir_if *const stmt = new(ctx) ir_if(op[0]);
    #####:    #####: 1627:         instructions->push_tail(stmt);
        -:        -: 1628:
    #####:    #####: 1629:         ir_dereference *const then_deref = new(ctx) ir_dereference_variable(tmp);
        -:        -: 1630:         ir_assignment *const then_assign =
    #####:    #####: 1631:            new(ctx) ir_assignment(then_deref, new(ctx) ir_constant(true));
    #####:    #####: 1632:         stmt->then_instructions.push_tail(then_assign);
        -:        -: 1633:
    #####:    #####: 1634:         stmt->else_instructions.append_list(&rhs_instructions);
    #####:    #####: 1635:         ir_dereference *const else_deref = new(ctx) ir_dereference_variable(tmp);
        -:        -: 1636:         ir_assignment *const else_assign =
    #####:    #####: 1637:            new(ctx) ir_assignment(else_deref, op[1]);
    #####:    #####: 1638:         stmt->else_instructions.push_tail(else_assign);
        -:        -: 1639:
    #####:    #####: 1640:         result = new(ctx) ir_dereference_variable(tmp);
    #####:    #####: 1641:         type = tmp->type;
        -:        -: 1642:      }
    #####:    #####: 1643:      break;
        -:        -: 1644:   }
        -:        -: 1645:
        -:        -: 1646:   case ast_logic_xor:
        -:        -: 1647:      /* From page 33 (page 39 of the PDF) of the GLSL 1.10 spec:
        -:        -: 1648:       *
        -:        -: 1649:       *    "The logical binary operators and (&&), or ( | | ), and
        -:        -: 1650:       *     exclusive or (^^). They operate only on two Boolean
        -:        -: 1651:       *     expressions and result in a Boolean expression."
        -:        -: 1652:       */
    #####:    #####: 1653:      op[0] = get_scalar_boolean_operand(instructions, state, this, 0, "LHS",
    #####:    #####: 1654:                                         &error_emitted);
    #####:    #####: 1655:      op[1] = get_scalar_boolean_operand(instructions, state, this, 1, "RHS",
    #####:    #####: 1656:                                         &error_emitted);
        -:        -: 1657:
    #####:    #####: 1658:      result = new(ctx) ir_expression(operations[this->oper], glsl_type::bool_type,
    #####:    #####: 1659:                                      op[0], op[1]);
    #####:    #####: 1660:      break;
        -:        -: 1661:
        -:        -: 1662:   case ast_logic_not:
    #####:    #####: 1663:      op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
    #####:    #####: 1664:                                         "operand", &error_emitted);
        -:        -: 1665:
    #####:    #####: 1666:      result = new(ctx) ir_expression(operations[this->oper], glsl_type::bool_type,
    #####:    #####: 1667:                                      op[0], NULL);
    #####:    #####: 1668:      break;
        -:        -: 1669:
        -:        -: 1670:   case ast_mul_assign:
        -:        -: 1671:   case ast_div_assign:
        -:        -: 1672:   case ast_add_assign:
        -:        -: 1673:   case ast_sub_assign: {
        1:        1: 1674:      this->subexpressions[0]->set_is_lhs(true);
        1:        1: 1675:      op[0] = this->subexpressions[0]->hir(instructions, state);
        1:        1: 1676:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1677:
        1:        1: 1678:      orig_type = op[0]->type;
        1:        1: 1679:      type = arithmetic_result_type(op[0], op[1],
        1:        1: 1680:                                    (this->oper == ast_mul_assign),
        1:        1: 1681:                                    state, & loc);
        -:        -: 1682:
        1:        1: 1683:      if (type != orig_type) {
        -:        -: 1684:         _mesa_glsl_error(& loc, state,
        -:        -: 1685:                          "could not implicitly convert "
    #####:    #####: 1686:                          "%s to %s", type->name, orig_type->name);
    #####:    #####: 1687:         type = glsl_type::error_type;
        -:        -: 1688:      }
        -:        -: 1689:
        2:        2: 1690:      ir_rvalue *temp_rhs = new(ctx) ir_expression(operations[this->oper], type,
        3:        3: 1691:                                                   op[0], op[1]);
        -:        -: 1692:
        -:        -: 1693:      error_emitted =
        3:        3: 1694:         do_assignment(instructions, state,
        1:        1: 1695:                       this->subexpressions[0]->non_lvalue_description,
        1:        1: 1696:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1697:                       &result, needs_rvalue, false,
        2:        2: 1698:                       this->subexpressions[0]->get_location());
        -:        -: 1699:
        -:        -: 1700:      /* GLSL 1.10 does not allow array assignment.  However, we don't have to
        -:        -: 1701:       * explicitly test for this because none of the binary expression
        -:        -: 1702:       * operators allow array operands either.
        -:        -: 1703:       */
        -:        -: 1704:
        1:        1: 1705:      break;
        -:        -: 1706:   }
        -:        -: 1707:
        -:        -: 1708:   case ast_mod_assign: {
    #####:    #####: 1709:      this->subexpressions[0]->set_is_lhs(true);
    #####:    #####: 1710:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1711:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1712:
    #####:    #####: 1713:      orig_type = op[0]->type;
    #####:    #####: 1714:      type = modulus_result_type(op[0], op[1], state, &loc);
        -:        -: 1715:
    #####:    #####: 1716:      if (type != orig_type) {
        -:        -: 1717:         _mesa_glsl_error(& loc, state,
        -:        -: 1718:                          "could not implicitly convert "
    #####:    #####: 1719:                          "%s to %s", type->name, orig_type->name);
    #####:    #####: 1720:         type = glsl_type::error_type;
        -:        -: 1721:      }
        -:        -: 1722:
    #####:    #####: 1723:      assert(operations[this->oper] == ir_binop_mod);
        -:        -: 1724:
        -:        -: 1725:      ir_rvalue *temp_rhs;
    #####:    #####: 1726:      temp_rhs = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1727:                                        op[0], op[1]);
        -:        -: 1728:
        -:        -: 1729:      error_emitted =
    #####:    #####: 1730:         do_assignment(instructions, state,
    #####:    #####: 1731:                       this->subexpressions[0]->non_lvalue_description,
    #####:    #####: 1732:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1733:                       &result, needs_rvalue, false,
    #####:    #####: 1734:                       this->subexpressions[0]->get_location());
    #####:    #####: 1735:      break;
        -:        -: 1736:   }
        -:        -: 1737:
        -:        -: 1738:   case ast_ls_assign:
        -:        -: 1739:   case ast_rs_assign: {
    #####:    #####: 1740:      this->subexpressions[0]->set_is_lhs(true);
    #####:    #####: 1741:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1742:      op[1] = this->subexpressions[1]->hir(instructions, state);
    #####:    #####: 1743:      type = shift_result_type(op[0]->type, op[1]->type, this->oper, state,
    #####:    #####: 1744:                               &loc);
    #####:    #####: 1745:      ir_rvalue *temp_rhs = new(ctx) ir_expression(operations[this->oper],
    #####:    #####: 1746:                                                   type, op[0], op[1]);
        -:        -: 1747:      error_emitted =
    #####:    #####: 1748:         do_assignment(instructions, state,
    #####:    #####: 1749:                       this->subexpressions[0]->non_lvalue_description,
    #####:    #####: 1750:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1751:                       &result, needs_rvalue, false,
    #####:    #####: 1752:                       this->subexpressions[0]->get_location());
    #####:    #####: 1753:      break;
        -:        -: 1754:   }
        -:        -: 1755:
        -:        -: 1756:   case ast_and_assign:
        -:        -: 1757:   case ast_xor_assign:
        -:        -: 1758:   case ast_or_assign: {
    #####:    #####: 1759:      this->subexpressions[0]->set_is_lhs(true);
    #####:    #####: 1760:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1761:      op[1] = this->subexpressions[1]->hir(instructions, state);
        -:        -: 1762:
    #####:    #####: 1763:      orig_type = op[0]->type;
    #####:    #####: 1764:      type = bit_logic_result_type(op[0], op[1], this->oper, state, &loc);
        -:        -: 1765:
    #####:    #####: 1766:      if (type != orig_type) {
        -:        -: 1767:         _mesa_glsl_error(& loc, state,
        -:        -: 1768:                          "could not implicitly convert "
    #####:    #####: 1769:                          "%s to %s", type->name, orig_type->name);
    #####:    #####: 1770:         type = glsl_type::error_type;
        -:        -: 1771:      }
        -:        -: 1772:
    #####:    #####: 1773:      ir_rvalue *temp_rhs = new(ctx) ir_expression(operations[this->oper],
    #####:    #####: 1774:                                                   type, op[0], op[1]);
        -:        -: 1775:      error_emitted =
    #####:    #####: 1776:         do_assignment(instructions, state,
    #####:    #####: 1777:                       this->subexpressions[0]->non_lvalue_description,
    #####:    #####: 1778:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1779:                       &result, needs_rvalue, false,
    #####:    #####: 1780:                       this->subexpressions[0]->get_location());
    #####:    #####: 1781:      break;
        -:        -: 1782:   }
        -:        -: 1783:
        -:        -: 1784:   case ast_conditional: {
        -:        -: 1785:      /* From page 59 (page 65 of the PDF) of the GLSL 1.50 spec:
        -:        -: 1786:       *
        -:        -: 1787:       *    "The ternary selection operator (?:). It operates on three
        -:        -: 1788:       *    expressions (exp1 ? exp2 : exp3). This operator evaluates the
        -:        -: 1789:       *    first expression, which must result in a scalar Boolean."
        -:        -: 1790:       */
    #####:    #####: 1791:      op[0] = get_scalar_boolean_operand(instructions, state, this, 0,
    #####:    #####: 1792:                                         "condition", &error_emitted);
        -:        -: 1793:
        -:        -: 1794:      /* The :? operator is implemented by generating an anonymous temporary
        -:        -: 1795:       * followed by an if-statement.  The last instruction in each branch of
        -:        -: 1796:       * the if-statement assigns a value to the anonymous temporary.  This
        -:        -: 1797:       * temporary is the r-value of the expression.
        -:        -: 1798:       */
    #####:    #####: 1799:      exec_list then_instructions;
    #####:    #####: 1800:      exec_list else_instructions;
        -:        -: 1801:
    #####:    #####: 1802:      op[1] = this->subexpressions[1]->hir(&then_instructions, state);
    #####:    #####: 1803:      op[2] = this->subexpressions[2]->hir(&else_instructions, state);
        -:        -: 1804:
        -:        -: 1805:      /* From page 59 (page 65 of the PDF) of the GLSL 1.50 spec:
        -:        -: 1806:       *
        -:        -: 1807:       *     "The second and third expressions can be any type, as
        -:        -: 1808:       *     long their types match, or there is a conversion in
        -:        -: 1809:       *     Section 4.1.10 "Implicit Conversions" that can be applied
        -:        -: 1810:       *     to one of the expressions to make their types match. This
        -:        -: 1811:       *     resulting matching type is the type of the entire
        -:        -: 1812:       *     expression."
        -:        -: 1813:       */
    #####:    #####: 1814:      if ((!apply_implicit_conversion(op[1]->type, op[2], state)
    #####:    #####: 1815:          && !apply_implicit_conversion(op[2]->type, op[1], state))
    #####:    #####: 1816:          || (op[1]->type != op[2]->type)) {
    #####:    #####: 1817:         YYLTYPE loc = this->subexpressions[1]->get_location();
        -:        -: 1818:
        -:        -: 1819:         _mesa_glsl_error(& loc, state, "second and third operands of ?: "
    #####:    #####: 1820:                          "operator must have matching types");
    #####:    #####: 1821:         error_emitted = true;
    #####:    #####: 1822:         type = glsl_type::error_type;
        -:        -: 1823:      } else {
    #####:    #####: 1824:         type = op[1]->type;
        -:        -: 1825:      }
        -:        -: 1826:
        -:        -: 1827:      /* From page 33 (page 39 of the PDF) of the GLSL 1.10 spec:
        -:        -: 1828:       *
        -:        -: 1829:       *    "The second and third expressions must be the same type, but can
        -:        -: 1830:       *    be of any type other than an array."
        -:        -: 1831:       */
    #####:    #####: 1832:      if (type->is_array() &&
    #####:    #####: 1833:          !state->check_version(120, 300, &loc,
        -:        -: 1834:                                "second and third operands of ?: operator "
    #####:    #####: 1835:                                "cannot be arrays")) {
    #####:    #####: 1836:         error_emitted = true;
        -:        -: 1837:      }
        -:        -: 1838:
        -:        -: 1839:      /* From section 4.1.7 of the GLSL 4.50 spec (Opaque Types):
        -:        -: 1840:       *
        -:        -: 1841:       *  "Except for array indexing, structure member selection, and
        -:        -: 1842:       *   parentheses, opaque variables are not allowed to be operands in
        -:        -: 1843:       *   expressions; such use results in a compile-time error."
        -:        -: 1844:       */
    #####:    #####: 1845:      if (type->contains_opaque()) {
        -:        -: 1846:         _mesa_glsl_error(&loc, state, "opaque variables cannot be operands "
    #####:    #####: 1847:                          "of the ?: operator");
    #####:    #####: 1848:         error_emitted = true;
        -:        -: 1849:      }
        -:        -: 1850:
    #####:    #####: 1851:      ir_constant *cond_val = op[0]->constant_expression_value();
        -:        -: 1852:
    #####:    #####: 1853:      if (then_instructions.is_empty()
    #####:    #####: 1854:          && else_instructions.is_empty()
    #####:    #####: 1855:          && cond_val != NULL) {
    #####:    #####: 1856:         result = cond_val->value.b[0] ? op[1] : op[2];
        -:        -: 1857:      } else {
        -:        -: 1858:         /* The copy to conditional_tmp reads the whole array. */
    #####:    #####: 1859:         if (type->is_array()) {
    #####:    #####: 1860:            mark_whole_array_access(op[1]);
    #####:    #####: 1861:            mark_whole_array_access(op[2]);
        -:        -: 1862:         }
        -:        -: 1863:
        -:        -: 1864:         ir_variable *const tmp =
    #####:    #####: 1865:            new(ctx) ir_variable(type, "conditional_tmp", ir_var_temporary);
    #####:    #####: 1866:         instructions->push_tail(tmp);
        -:        -: 1867:
    #####:    #####: 1868:         ir_if *const stmt = new(ctx) ir_if(op[0]);
    #####:    #####: 1869:         instructions->push_tail(stmt);
        -:        -: 1870:
    #####:    #####: 1871:         then_instructions.move_nodes_to(& stmt->then_instructions);
        -:        -: 1872:         ir_dereference *const then_deref =
    #####:    #####: 1873:            new(ctx) ir_dereference_variable(tmp);
        -:        -: 1874:         ir_assignment *const then_assign =
    #####:    #####: 1875:            new(ctx) ir_assignment(then_deref, op[1]);
    #####:    #####: 1876:         stmt->then_instructions.push_tail(then_assign);
        -:        -: 1877:
    #####:    #####: 1878:         else_instructions.move_nodes_to(& stmt->else_instructions);
        -:        -: 1879:         ir_dereference *const else_deref =
    #####:    #####: 1880:            new(ctx) ir_dereference_variable(tmp);
        -:        -: 1881:         ir_assignment *const else_assign =
    #####:    #####: 1882:            new(ctx) ir_assignment(else_deref, op[2]);
    #####:    #####: 1883:         stmt->else_instructions.push_tail(else_assign);
        -:        -: 1884:
    #####:    #####: 1885:         result = new(ctx) ir_dereference_variable(tmp);
        -:        -: 1886:      }
    #####:    #####: 1887:      break;
        -:        -: 1888:   }
        -:        -: 1889:
        -:        -: 1890:   case ast_pre_inc:
        -:        -: 1891:   case ast_pre_dec: {
    #####:    #####: 1892:      this->non_lvalue_description = (this->oper == ast_pre_inc)
    #####:    #####: 1893:         ? "pre-increment operation" : "pre-decrement operation";
        -:        -: 1894:
    #####:    #####: 1895:      op[0] = this->subexpressions[0]->hir(instructions, state);
    #####:    #####: 1896:      op[1] = constant_one_for_inc_dec(ctx, op[0]->type);
        -:        -: 1897:
    #####:    #####: 1898:      type = arithmetic_result_type(op[0], op[1], false, state, & loc);
        -:        -: 1899:
        -:        -: 1900:      ir_rvalue *temp_rhs;
    #####:    #####: 1901:      temp_rhs = new(ctx) ir_expression(operations[this->oper], type,
    #####:    #####: 1902:                                        op[0], op[1]);
        -:        -: 1903:
        -:        -: 1904:      error_emitted =
    #####:    #####: 1905:         do_assignment(instructions, state,
    #####:    #####: 1906:                       this->subexpressions[0]->non_lvalue_description,
    #####:    #####: 1907:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1908:                       &result, needs_rvalue, false,
    #####:    #####: 1909:                       this->subexpressions[0]->get_location());
    #####:    #####: 1910:      break;
        -:        -: 1911:   }
        -:        -: 1912:
        -:        -: 1913:   case ast_post_inc:
        -:        -: 1914:   case ast_post_dec: {
        2:        2: 1915:      this->non_lvalue_description = (this->oper == ast_post_inc)
        2:        2: 1916:         ? "post-increment operation" : "post-decrement operation";
        2:        2: 1917:      op[0] = this->subexpressions[0]->hir(instructions, state);
        2:        2: 1918:      op[1] = constant_one_for_inc_dec(ctx, op[0]->type);
        -:        -: 1919:
        2:        2: 1920:      error_emitted = op[0]->type->is_error() || op[1]->type->is_error();
        -:        -: 1921:
        2:        2: 1922:      type = arithmetic_result_type(op[0], op[1], false, state, & loc);
        -:        -: 1923:
        -:        -: 1924:      ir_rvalue *temp_rhs;
        4:        4: 1925:      temp_rhs = new(ctx) ir_expression(operations[this->oper], type,
        6:        6: 1926:                                        op[0], op[1]);
        -:        -: 1927:
        -:        -: 1928:      /* Get a temporary of a copy of the lvalue before it's modified.
        -:        -: 1929:       * This may get thrown away later.
        -:        -: 1930:       */
        2:        2: 1931:      result = get_lvalue_copy(instructions, op[0]->clone(ctx, NULL));
        -:        -: 1932:
        -:        -: 1933:      ir_rvalue *junk_rvalue;
        -:        -: 1934:      error_emitted =
        6:        6: 1935:         do_assignment(instructions, state,
        2:        2: 1936:                       this->subexpressions[0]->non_lvalue_description,
        2:        2: 1937:                       op[0]->clone(ctx, NULL), temp_rhs,
        -:        -: 1938:                       &junk_rvalue, false, false,
        4:        4: 1939:                       this->subexpressions[0]->get_location());
        -:        -: 1940:
        2:        2: 1941:      break;
        -:        -: 1942:   }
        -:        -: 1943:
        -:        -: 1944:   case ast_field_selection:
       14:       15: 1945:      result = _mesa_ast_field_selection_to_hir(this, instructions, state);
       14:       15: 1946:      break;
        -:        -: 1947:
        -:        -: 1948:   case ast_array_index: {
       16:       16: 1949:      YYLTYPE index_loc = subexpressions[1]->get_location();
        -:        -: 1950:
        -:        -: 1951:      /* Getting if an array is being used uninitialized is beyond what we get
        -:        -: 1952:       * from ir_value.data.assigned. Setting is_lhs as true would force to
        -:        -: 1953:       * not raise a uninitialized warning when using an array
        -:        -: 1954:       */
       16:       16: 1955:      subexpressions[0]->set_is_lhs(true);
       16:       16: 1956:      op[0] = subexpressions[0]->hir(instructions, state);
       16:       16: 1957:      op[1] = subexpressions[1]->hir(instructions, state);
        -:        -: 1958:
       16:       16: 1959:      result = _mesa_ast_array_index_to_hir(ctx, state, op[0], op[1],
       16:       16: 1960:                                            loc, index_loc);
        -:        -: 1961:
       16:       16: 1962:      if (result->type->is_error())
    #####:    #####: 1963:         error_emitted = true;
        -:        -: 1964:
       16:       16: 1965:      break;
        -:        -: 1966:   }
        -:        -: 1967:
        -:        -: 1968:   case ast_unsized_array_dim:
    #####:    #####: 1969:      assert(!"ast_unsized_array_dim: Should never get here.");
        -:        -: 1970:      break;
        -:        -: 1971:
        -:        -: 1972:   case ast_function_call:
        -:        -: 1973:      /* Should *NEVER* get here.  ast_function_call should always be handled
        -:        -: 1974:       * by ast_function_expression::hir.
        -:        -: 1975:       */
    #####:    #####: 1976:      assert(0);
        -:        -: 1977:      break;
        -:        -: 1978:
        -:        -: 1979:   case ast_identifier: {
        -:        -: 1980:      /* ast_identifier can appear several places in a full abstract syntax
        -:        -: 1981:       * tree.  This particular use must be at location specified in the grammar
        -:        -: 1982:       * as 'variable_identifier'.
        -:        -: 1983:       */
        -:        -: 1984:      ir_variable *var =
       51:       52: 1985:         state->symbols->get_variable(this->primary_expression.identifier);
        -:        -: 1986:
       51:       52: 1987:      if (var == NULL) {
        -:        -: 1988:         /* the identifier might be a subroutine name */
        -:        -: 1989:         char *sub_name;
    #####:    #####: 1990:         sub_name = ralloc_asprintf(ctx, "%s_%s", _mesa_shader_stage_to_subroutine_prefix(state->stage), this->primary_expression.identifier);
    #####:    #####: 1991:         var = state->symbols->get_variable(sub_name);
    #####:    #####: 1992:         ralloc_free(sub_name);
        -:        -: 1993:      }
        -:        -: 1994:
       51:       52: 1995:      if (var != NULL) {
       51:       52: 1996:         var->data.used = true;
       51:       52: 1997:         result = new(ctx) ir_dereference_variable(var);
        -:        -: 1998:
      122:      125: 1999:         if ((var->data.mode == ir_var_auto || var->data.mode == ir_var_shader_out)
       33:       33: 2000:             && !this->is_lhs
       15:       15: 2001:             && result->variable_referenced()->data.assigned != true
       51:       52: 2002:             && !is_gl_identifier(var->name)) {
    #####:    #####: 2003:            _mesa_glsl_warning(&loc, state, "`%s' used uninitialized",
    #####:    #####: 2004:                               this->primary_expression.identifier);
        -:        -: 2005:         }
        -:        -: 2006:      } else {
    #####:    #####: 2007:         _mesa_glsl_error(& loc, state, "`%s' undeclared",
    #####:    #####: 2008:                          this->primary_expression.identifier);
        -:        -: 2009:
    #####:    #####: 2010:         result = ir_rvalue::error_value(ctx);
    #####:    #####: 2011:         error_emitted = true;
        -:        -: 2012:      }
       51:       52: 2013:      break;
        -:        -: 2014:   }
        -:        -: 2015:
        -:        -: 2016:   case ast_int_constant:
       17:       17: 2017:      result = new(ctx) ir_constant(this->primary_expression.int_constant);
       17:       17: 2018:      break;
        -:        -: 2019:
        -:        -: 2020:   case ast_uint_constant:
    #####:    #####: 2021:      result = new(ctx) ir_constant(this->primary_expression.uint_constant);
    #####:    #####: 2022:      break;
        -:        -: 2023:
        -:        -: 2024:   case ast_float_constant:
        2:        3: 2025:      result = new(ctx) ir_constant(this->primary_expression.float_constant);
        2:        3: 2026:      break;
        -:        -: 2027:
        -:        -: 2028:   case ast_bool_constant:
    #####:    #####: 2029:      result = new(ctx) ir_constant(bool(this->primary_expression.bool_constant));
    #####:    #####: 2030:      break;
        -:        -: 2031:
        -:        -: 2032:   case ast_double_constant:
    #####:    #####: 2033:      result = new(ctx) ir_constant(this->primary_expression.double_constant);
    #####:    #####: 2034:      break;
        -:        -: 2035:
        -:        -: 2036:   case ast_uint64_constant:
    #####:    #####: 2037:      result = new(ctx) ir_constant(this->primary_expression.uint64_constant);
    #####:    #####: 2038:      break;
        -:        -: 2039:
        -:        -: 2040:   case ast_int64_constant:
    #####:    #####: 2041:      result = new(ctx) ir_constant(this->primary_expression.int64_constant);
    #####:    #####: 2042:      break;
        -:        -: 2043:
        -:        -: 2044:   case ast_sequence: {
        -:        -: 2045:      /* It should not be possible to generate a sequence in the AST without
        -:        -: 2046:       * any expressions in it.
        -:        -: 2047:       */
    #####:    #####: 2048:      assert(!this->expressions.is_empty());
        -:        -: 2049:
        -:        -: 2050:      /* The r-value of a sequence is the last expression in the sequence.  If
        -:        -: 2051:       * the other expressions in the sequence do not have side-effects (and
        -:        -: 2052:       * therefore add instructions to the instruction list), they get dropped
        -:        -: 2053:       * on the floor.
        -:        -: 2054:       */
    #####:    #####: 2055:      exec_node *previous_tail = NULL;
    #####:    #####: 2056:      YYLTYPE previous_operand_loc = loc;
        -:        -: 2057:
    #####:    #####: 2058:      foreach_list_typed (ast_node, ast, link, &this->expressions) {
        -:        -: 2059:         /* If one of the operands of comma operator does not generate any
        -:        -: 2060:          * code, we want to emit a warning.  At each pass through the loop
        -:        -: 2061:          * previous_tail will point to the last instruction in the stream
        -:        -: 2062:          * *before* processing the previous operand.  Naturally,
        -:        -: 2063:          * instructions->get_tail_raw() will point to the last instruction in
        -:        -: 2064:          * the stream *after* processing the previous operand.  If the two
        -:        -: 2065:          * pointers match, then the previous operand had no effect.
        -:        -: 2066:          *
        -:        -: 2067:          * The warning behavior here differs slightly from GCC.  GCC will
        -:        -: 2068:          * only emit a warning if none of the left-hand operands have an
        -:        -: 2069:          * effect.  However, it will emit a warning for each.  I believe that
        -:        -: 2070:          * there are some cases in C (especially with GCC extensions) where
        -:        -: 2071:          * it is useful to have an intermediate step in a sequence have no
        -:        -: 2072:          * effect, but I don't think these cases exist in GLSL.  Either way,
        -:        -: 2073:          * it would be a giant hassle to replicate that behavior.
        -:        -: 2074:          */
    #####:    #####: 2075:         if (previous_tail == instructions->get_tail_raw()) {
        -:        -: 2076:            _mesa_glsl_warning(&previous_operand_loc, state,
        -:        -: 2077:                               "left-hand operand of comma expression has "
    #####:    #####: 2078:                               "no effect");
        -:        -: 2079:         }
        -:        -: 2080:
        -:        -: 2081:         /* The tail is directly accessed instead of using the get_tail()
        -:        -: 2082:          * method for performance reasons.  get_tail() has extra code to
        -:        -: 2083:          * return NULL when the list is empty.  We don't care about that
        -:        -: 2084:          * here, so using get_tail_raw() is fine.
        -:        -: 2085:          */
    #####:    #####: 2086:         previous_tail = instructions->get_tail_raw();
    #####:    #####: 2087:         previous_operand_loc = ast->get_location();
        -:        -: 2088:
    #####:    #####: 2089:         result = ast->hir(instructions, state);
        -:        -: 2090:      }
        -:        -: 2091:
        -:        -: 2092:      /* Any errors should have already been emitted in the loop above.
        -:        -: 2093:       */
    #####:    #####: 2094:      error_emitted = true;
    #####:    #####: 2095:      break;
        -:        -: 2096:   }
        -:        -: 2097:   }
      120:      124: 2098:   type = NULL; /* use result->type, not type. */
      120:      124: 2099:   assert(result != NULL || !needs_rvalue);
        -:        -: 2100:
      120:      124: 2101:   if (result && result->type->is_error() && !error_emitted)
    #####:    #####: 2102:      _mesa_glsl_error(& loc, state, "type mismatch");
        -:        -: 2103:
      120:      124: 2104:   return result;
        -:        -: 2105:}
        -:        -: 2106:
        -:        -: 2107:bool
        1:        1: 2108:ast_expression::has_sequence_subexpression() const
        -:        -: 2109:{
        1:        1: 2110:   switch (this->oper) {
        -:        -: 2111:   case ast_plus:
        -:        -: 2112:   case ast_neg:
        -:        -: 2113:   case ast_bit_not:
        -:        -: 2114:   case ast_logic_not:
        -:        -: 2115:   case ast_pre_inc:
        -:        -: 2116:   case ast_pre_dec:
        -:        -: 2117:   case ast_post_inc:
        -:        -: 2118:   case ast_post_dec:
    #####:    #####: 2119:      return this->subexpressions[0]->has_sequence_subexpression();
        -:        -: 2120:
        -:        -: 2121:   case ast_assign:
        -:        -: 2122:   case ast_add:
        -:        -: 2123:   case ast_sub:
        -:        -: 2124:   case ast_mul:
        -:        -: 2125:   case ast_div:
        -:        -: 2126:   case ast_mod:
        -:        -: 2127:   case ast_lshift:
        -:        -: 2128:   case ast_rshift:
        -:        -: 2129:   case ast_less:
        -:        -: 2130:   case ast_greater:
        -:        -: 2131:   case ast_lequal:
        -:        -: 2132:   case ast_gequal:
        -:        -: 2133:   case ast_nequal:
        -:        -: 2134:   case ast_equal:
        -:        -: 2135:   case ast_bit_and:
        -:        -: 2136:   case ast_bit_xor:
        -:        -: 2137:   case ast_bit_or:
        -:        -: 2138:   case ast_logic_and:
        -:        -: 2139:   case ast_logic_or:
        -:        -: 2140:   case ast_logic_xor:
        -:        -: 2141:   case ast_array_index:
        -:        -: 2142:   case ast_mul_assign:
        -:        -: 2143:   case ast_div_assign:
        -:        -: 2144:   case ast_add_assign:
        -:        -: 2145:   case ast_sub_assign:
        -:        -: 2146:   case ast_mod_assign:
        -:        -: 2147:   case ast_ls_assign:
        -:        -: 2148:   case ast_rs_assign:
        -:        -: 2149:   case ast_and_assign:
        -:        -: 2150:   case ast_xor_assign:
        -:        -: 2151:   case ast_or_assign:
    #####:    #####: 2152:      return this->subexpressions[0]->has_sequence_subexpression() ||
    #####:    #####: 2153:             this->subexpressions[1]->has_sequence_subexpression();
        -:        -: 2154:
        -:        -: 2155:   case ast_conditional:
    #####:    #####: 2156:      return this->subexpressions[0]->has_sequence_subexpression() ||
    #####:    #####: 2157:             this->subexpressions[1]->has_sequence_subexpression() ||
    #####:    #####: 2158:             this->subexpressions[2]->has_sequence_subexpression();
        -:        -: 2159:
        -:        -: 2160:   case ast_sequence:
    #####:    #####: 2161:      return true;
        -:        -: 2162:
        -:        -: 2163:   case ast_field_selection:
        -:        -: 2164:   case ast_identifier:
        -:        -: 2165:   case ast_int_constant:
        -:        -: 2166:   case ast_uint_constant:
        -:        -: 2167:   case ast_float_constant:
        -:        -: 2168:   case ast_bool_constant:
        -:        -: 2169:   case ast_double_constant:
        -:        -: 2170:   case ast_int64_constant:
        -:        -: 2171:   case ast_uint64_constant:
        1:        1: 2172:      return false;
        -:        -: 2173:
        -:        -: 2174:   case ast_aggregate:
    #####:    #####: 2175:      return false;
        -:        -: 2176:
        -:        -: 2177:   case ast_function_call:
    #####:    #####: 2178:      unreachable("should be handled by ast_function_expression::hir");
        -:        -: 2179:
        -:        -: 2180:   case ast_unsized_array_dim:
    #####:    #####: 2181:      unreachable("ast_unsized_array_dim: Should never get here.");
        -:        -: 2182:   }
        -:        -: 2183:
    #####:    #####: 2184:   return false;
        -:        -: 2185:}
        -:        -: 2186:
        -:        -: 2187:ir_rvalue *
       10:       10: 2188:ast_expression_statement::hir(exec_list *instructions,
        -:        -: 2189:                              struct _mesa_glsl_parse_state *state)
        -:        -: 2190:{
        -:        -: 2191:   /* It is possible to have expression statements that don't have an
        -:        -: 2192:    * expression.  This is the solitary semicolon:
        -:        -: 2193:    *
        -:        -: 2194:    * for (i = 0; i < 5; i++)
        -:        -: 2195:    *     ;
        -:        -: 2196:    *
        -:        -: 2197:    * In this case the expression will be NULL.  Test for NULL and don't do
        -:        -: 2198:    * anything in that case.
        -:        -: 2199:    */
       10:       10: 2200:   if (expression != NULL)
       10:       10: 2201:      expression->hir_no_rvalue(instructions, state);
        -:        -: 2202:
        -:        -: 2203:   /* Statements do not have r-values.
        -:        -: 2204:    */
       10:       10: 2205:   return NULL;
        -:        -: 2206:}
        -:        -: 2207:
        -:        -: 2208:
        -:        -: 2209:ir_rvalue *
        8:        9: 2210:ast_compound_statement::hir(exec_list *instructions,
        -:        -: 2211:                            struct _mesa_glsl_parse_state *state)
        -:        -: 2212:{
        8:        9: 2213:   if (new_scope)
        3:        4: 2214:      state->symbols->push_scope();
        -:        -: 2215:
       28:       30: 2216:   foreach_list_typed (ast_node, ast, link, &this->statements)
       20:       21: 2217:      ast->hir(instructions, state);
        -:        -: 2218:
        8:        9: 2219:   if (new_scope)
        3:        4: 2220:      state->symbols->pop_scope();
        -:        -: 2221:
        -:        -: 2222:   /* Compound statements do not have r-values.
        -:        -: 2223:    */
        8:        9: 2224:   return NULL;
        -:        -: 2225:}
        -:        -: 2226:
        -:        -: 2227:/**
        -:        -: 2228: * Evaluate the given exec_node (which should be an ast_node representing
        -:        -: 2229: * a single array dimension) and return its integer value.
        -:        -: 2230: */
        -:        -: 2231:static unsigned
        1:        1: 2232:process_array_size(exec_node *node,
        -:        -: 2233:                   struct _mesa_glsl_parse_state *state)
        -:        -: 2234:{
        1:        1: 2235:   exec_list dummy_instructions;
        -:        -: 2236:
        1:        1: 2237:   ast_node *array_size = exec_node_data(ast_node, node, link);
        -:        -: 2238:
        -:        -: 2239:   /**
        -:        -: 2240:    * Dimensions other than the outermost dimension can by unsized if they
        -:        -: 2241:    * are immediately sized by a constructor or initializer.
        -:        -: 2242:    */
        1:        1: 2243:   if (((ast_expression*)array_size)->oper == ast_unsized_array_dim)
    #####:    #####: 2244:      return 0;
        -:        -: 2245:
        1:        1: 2246:   ir_rvalue *const ir = array_size->hir(& dummy_instructions, state);
        1:        1: 2247:   YYLTYPE loc = array_size->get_location();
        -:        -: 2248:
        1:        1: 2249:   if (ir == NULL) {
        -:        -: 2250:      _mesa_glsl_error(& loc, state,
    #####:    #####: 2251:                       "array size could not be resolved");
    #####:    #####: 2252:      return 0;
        -:        -: 2253:   }
        -:        -: 2254:
        1:        1: 2255:   if (!ir->type->is_integer()) {
        -:        -: 2256:      _mesa_glsl_error(& loc, state,
    #####:    #####: 2257:                       "array size must be integer type");
    #####:    #####: 2258:      return 0;
        -:        -: 2259:   }
        -:        -: 2260:
        1:        1: 2261:   if (!ir->type->is_scalar()) {
        -:        -: 2262:      _mesa_glsl_error(& loc, state,
    #####:    #####: 2263:                       "array size must be scalar type");
    #####:    #####: 2264:      return 0;
        -:        -: 2265:   }
        -:        -: 2266:
        1:        1: 2267:   ir_constant *const size = ir->constant_expression_value();
        2:        2: 2268:   if (size == NULL ||
        2:        2: 2269:       (state->is_version(120, 300) &&
        1:        1: 2270:        array_size->has_sequence_subexpression())) {
        -:        -: 2271:      _mesa_glsl_error(& loc, state, "array size must be a "
    #####:    #####: 2272:                       "constant valued expression");
    #####:    #####: 2273:      return 0;
        -:        -: 2274:   }
        -:        -: 2275:
        1:        1: 2276:   if (size->value.i[0] <= 0) {
    #####:    #####: 2277:      _mesa_glsl_error(& loc, state, "array size must be > 0");
    #####:    #####: 2278:      return 0;
        -:        -: 2279:   }
        -:        -: 2280:
        1:        1: 2281:   assert(size->type == ir->type);
        -:        -: 2282:
        -:        -: 2283:   /* If the array size is const (and we've verified that
        -:        -: 2284:    * it is) then no instructions should have been emitted
        -:        -: 2285:    * when we converted it to HIR. If they were emitted,
        -:        -: 2286:    * then either the array size isn't const after all, or
        -:        -: 2287:    * we are emitting unnecessary instructions.
        -:        -: 2288:    */
        1:        1: 2289:   assert(dummy_instructions.is_empty());
        -:        -: 2290:
        1:        1: 2291:   return size->value.u[0];
        -:        -: 2292:}
        -:        -: 2293:
        -:        -: 2294:static const glsl_type *
       28:       28: 2295:process_array_type(YYLTYPE *loc, const glsl_type *base,
        -:        -: 2296:                   ast_array_specifier *array_specifier,
        -:        -: 2297:                   struct _mesa_glsl_parse_state *state)
        -:        -: 2298:{
       28:       28: 2299:   const glsl_type *array_type = base;
        -:        -: 2300:
       28:       28: 2301:   if (array_specifier != NULL) {
        1:        1: 2302:      if (base->is_array()) {
        -:        -: 2303:
        -:        -: 2304:         /* From page 19 (page 25) of the GLSL 1.20 spec:
        -:        -: 2305:          *
        -:        -: 2306:          * "Only one-dimensional arrays may be declared."
        -:        -: 2307:          */
    #####:    #####: 2308:         if (!state->check_arrays_of_arrays_allowed(loc)) {
    #####:    #####: 2309:            return glsl_type::error_type;
        -:        -: 2310:         }
        -:        -: 2311:      }
        -:        -: 2312:
        4:        4: 2313:      for (exec_node *node = array_specifier->array_dimensions.get_tail_raw();
        2:        2: 2314:           !node->is_head_sentinel(); node = node->prev) {
        1:        1: 2315:         unsigned array_size = process_array_size(node, state);
        1:        1: 2316:         array_type = glsl_type::get_array_instance(array_type, array_size);
        -:        -: 2317:      }
        -:        -: 2318:   }
        -:        -: 2319:
       28:       28: 2320:   return array_type;
        -:        -: 2321:}
        -:        -: 2322:
        -:        -: 2323:static bool
    #####:    #####: 2324:precision_qualifier_allowed(const glsl_type *type)
        -:        -: 2325:{
        -:        -: 2326:   /* Precision qualifiers apply to floating point, integer and opaque
        -:        -: 2327:    * types.
        -:        -: 2328:    *
        -:        -: 2329:    * Section 4.5.2 (Precision Qualifiers) of the GLSL 1.30 spec says:
        -:        -: 2330:    *    "Any floating point or any integer declaration can have the type
        -:        -: 2331:    *    preceded by one of these precision qualifiers [...] Literal
        -:        -: 2332:    *    constants do not have precision qualifiers. Neither do Boolean
        -:        -: 2333:    *    variables.
        -:        -: 2334:    *
        -:        -: 2335:    * Section 4.5 (Precision and Precision Qualifiers) of the GLSL 1.30
        -:        -: 2336:    * spec also says:
        -:        -: 2337:    *
        -:        -: 2338:    *     "Precision qualifiers are added for code portability with OpenGL
        -:        -: 2339:    *     ES, not for functionality. They have the same syntax as in OpenGL
        -:        -: 2340:    *     ES."
        -:        -: 2341:    *
        -:        -: 2342:    * Section 8 (Built-In Functions) of the GLSL ES 1.00 spec says:
        -:        -: 2343:    *
        -:        -: 2344:    *     "uniform lowp sampler2D sampler;
        -:        -: 2345:    *     highp vec2 coord;
        -:        -: 2346:    *     ...
        -:        -: 2347:    *     lowp vec4 col = texture2D (sampler, coord);
        -:        -: 2348:    *                                            // texture2D returns lowp"
        -:        -: 2349:    *
        -:        -: 2350:    * From this, we infer that GLSL 1.30 (and later) should allow precision
        -:        -: 2351:    * qualifiers on sampler types just like float and integer types.
        -:        -: 2352:    */
    #####:    #####: 2353:   const glsl_type *const t = type->without_array();
        -:        -: 2354:
    #####:    #####: 2355:   return (t->is_float() || t->is_integer() || t->contains_opaque()) &&
    #####:    #####: 2356:          !t->is_record();
        -:        -: 2357:}
        -:        -: 2358:
        -:        -: 2359:const glsl_type *
       18:       18: 2360:ast_type_specifier::glsl_type(const char **name,
        -:        -: 2361:                              struct _mesa_glsl_parse_state *state) const
        -:        -: 2362:{
        -:        -: 2363:   const struct glsl_type *type;
        -:        -: 2364:
       18:       18: 2365:   type = state->symbols->get_type(this->type_name);
       18:       18: 2366:   *name = this->type_name;
        -:        -: 2367:
       18:       18: 2368:   YYLTYPE loc = this->get_location();
       18:       18: 2369:   type = process_array_type(&loc, type, this->array_specifier, state);
        -:        -: 2370:
       18:       18: 2371:   return type;
        -:        -: 2372:}
        -:        -: 2373:
        -:        -: 2374:/**
        -:        -: 2375: * From the OpenGL ES 3.0 spec, 4.5.4 Default Precision Qualifiers:
        -:        -: 2376: *
        -:        -: 2377: * "The precision statement
        -:        -: 2378: *
        -:        -: 2379: *    precision precision-qualifier type;
        -:        -: 2380: *
        -:        -: 2381: *  can be used to establish a default precision qualifier. The type field can
        -:        -: 2382: *  be either int or float or any of the sampler types, (...) If type is float,
        -:        -: 2383: *  the directive applies to non-precision-qualified floating point type
        -:        -: 2384: *  (scalar, vector, and matrix) declarations. If type is int, the directive
        -:        -: 2385: *  applies to all non-precision-qualified integer type (scalar, vector, signed,
        -:        -: 2386: *  and unsigned) declarations."
        -:        -: 2387: *
        -:        -: 2388: * We use the symbol table to keep the values of the default precisions for
        -:        -: 2389: * each 'type' in each scope and we use the 'type' string from the precision
        -:        -: 2390: * statement as key in the symbol table. When we want to retrieve the default
        -:        -: 2391: * precision associated with a given glsl_type we need to know the type string
        -:        -: 2392: * associated with it. This is what this function returns.
        -:        -: 2393: */
        -:        -: 2394:static const char *
    #####:    #####: 2395:get_type_name_for_precision_qualifier(const glsl_type *type)
        -:        -: 2396:{
    #####:    #####: 2397:   switch (type->base_type) {
        -:        -: 2398:   case GLSL_TYPE_FLOAT:
    #####:    #####: 2399:      return "float";
        -:        -: 2400:   case GLSL_TYPE_UINT:
        -:        -: 2401:   case GLSL_TYPE_INT:
    #####:    #####: 2402:      return "int";
        -:        -: 2403:   case GLSL_TYPE_ATOMIC_UINT:
    #####:    #####: 2404:      return "atomic_uint";
        -:        -: 2405:   case GLSL_TYPE_IMAGE:
        -:        -: 2406:   /* fallthrough */
        -:        -: 2407:   case GLSL_TYPE_SAMPLER: {
        -:        -: 2408:      const unsigned type_idx =
    #####:    #####: 2409:         type->sampler_array + 2 * type->sampler_shadow;
    #####:    #####: 2410:      const unsigned offset = type->is_sampler() ? 0 : 4;
    #####:    #####: 2411:      assert(type_idx < 4);
    #####:    #####: 2412:      switch (type->sampled_type) {
        -:        -: 2413:      case GLSL_TYPE_FLOAT:
    #####:    #####: 2414:         switch (type->sampler_dimensionality) {
        -:        -: 2415:         case GLSL_SAMPLER_DIM_1D: {
    #####:    #####: 2416:            assert(type->is_sampler());
        -:        -: 2417:            static const char *const names[4] = {
        -:        -: 2418:              "sampler1D", "sampler1DArray",
        -:        -: 2419:              "sampler1DShadow", "sampler1DArrayShadow"
        -:        -: 2420:            };
    #####:    #####: 2421:            return names[type_idx];
        -:        -: 2422:         }
        -:        -: 2423:         case GLSL_SAMPLER_DIM_2D: {
        -:        -: 2424:            static const char *const names[8] = {
        -:        -: 2425:              "sampler2D", "sampler2DArray",
        -:        -: 2426:              "sampler2DShadow", "sampler2DArrayShadow",
        -:        -: 2427:              "image2D", "image2DArray", NULL, NULL
        -:        -: 2428:            };
    #####:    #####: 2429:            return names[offset + type_idx];
        -:        -: 2430:         }
        -:        -: 2431:         case GLSL_SAMPLER_DIM_3D: {
        -:        -: 2432:            static const char *const names[8] = {
        -:        -: 2433:              "sampler3D", NULL, NULL, NULL,
        -:        -: 2434:              "image3D", NULL, NULL, NULL
        -:        -: 2435:            };
    #####:    #####: 2436:            return names[offset + type_idx];
        -:        -: 2437:         }
        -:        -: 2438:         case GLSL_SAMPLER_DIM_CUBE: {
        -:        -: 2439:            static const char *const names[8] = {
        -:        -: 2440:              "samplerCube", "samplerCubeArray",
        -:        -: 2441:              "samplerCubeShadow", "samplerCubeArrayShadow",
        -:        -: 2442:              "imageCube", NULL, NULL, NULL
        -:        -: 2443:            };
    #####:    #####: 2444:            return names[offset + type_idx];
        -:        -: 2445:         }
        -:        -: 2446:         case GLSL_SAMPLER_DIM_MS: {
    #####:    #####: 2447:            assert(type->is_sampler());
        -:        -: 2448:            static const char *const names[4] = {
        -:        -: 2449:              "sampler2DMS", "sampler2DMSArray", NULL, NULL
        -:        -: 2450:            };
    #####:    #####: 2451:            return names[type_idx];
        -:        -: 2452:         }
        -:        -: 2453:         case GLSL_SAMPLER_DIM_RECT: {
    #####:    #####: 2454:            assert(type->is_sampler());
        -:        -: 2455:            static const char *const names[4] = {
        -:        -: 2456:              "samplerRect", NULL, "samplerRectShadow", NULL
        -:        -: 2457:            };
    #####:    #####: 2458:            return names[type_idx];
        -:        -: 2459:         }
        -:        -: 2460:         case GLSL_SAMPLER_DIM_BUF: {
        -:        -: 2461:            static const char *const names[8] = {
        -:        -: 2462:              "samplerBuffer", NULL, NULL, NULL,
        -:        -: 2463:              "imageBuffer", NULL, NULL, NULL
        -:        -: 2464:            };
    #####:    #####: 2465:            return names[offset + type_idx];
        -:        -: 2466:         }
        -:        -: 2467:         case GLSL_SAMPLER_DIM_EXTERNAL: {
    #####:    #####: 2468:            assert(type->is_sampler());
        -:        -: 2469:            static const char *const names[4] = {
        -:        -: 2470:              "samplerExternalOES", NULL, NULL, NULL
        -:        -: 2471:            };
    #####:    #####: 2472:            return names[type_idx];
        -:        -: 2473:         }
        -:        -: 2474:         default:
    #####:    #####: 2475:            unreachable("Unsupported sampler/image dimensionality");
        -:        -: 2476:         } /* sampler/image float dimensionality */
        -:        -: 2477:         break;
        -:        -: 2478:      case GLSL_TYPE_INT:
    #####:    #####: 2479:         switch (type->sampler_dimensionality) {
        -:        -: 2480:         case GLSL_SAMPLER_DIM_1D: {
    #####:    #####: 2481:            assert(type->is_sampler());
        -:        -: 2482:            static const char *const names[4] = {
        -:        -: 2483:              "isampler1D", "isampler1DArray", NULL, NULL
        -:        -: 2484:            };
    #####:    #####: 2485:            return names[type_idx];
        -:        -: 2486:         }
        -:        -: 2487:         case GLSL_SAMPLER_DIM_2D: {
        -:        -: 2488:            static const char *const names[8] = {
        -:        -: 2489:              "isampler2D", "isampler2DArray", NULL, NULL,
        -:        -: 2490:              "iimage2D", "iimage2DArray", NULL, NULL
        -:        -: 2491:            };
    #####:    #####: 2492:            return names[offset + type_idx];
        -:        -: 2493:         }
        -:        -: 2494:         case GLSL_SAMPLER_DIM_3D: {
        -:        -: 2495:            static const char *const names[8] = {
        -:        -: 2496:              "isampler3D", NULL, NULL, NULL,
        -:        -: 2497:              "iimage3D", NULL, NULL, NULL
        -:        -: 2498:            };
    #####:    #####: 2499:            return names[offset + type_idx];
        -:        -: 2500:         }
        -:        -: 2501:         case GLSL_SAMPLER_DIM_CUBE: {
        -:        -: 2502:            static const char *const names[8] = {
        -:        -: 2503:              "isamplerCube", "isamplerCubeArray", NULL, NULL,
        -:        -: 2504:              "iimageCube", NULL, NULL, NULL
        -:        -: 2505:            };
    #####:    #####: 2506:            return names[offset + type_idx];
        -:        -: 2507:         }
        -:        -: 2508:         case GLSL_SAMPLER_DIM_MS: {
    #####:    #####: 2509:            assert(type->is_sampler());
        -:        -: 2510:            static const char *const names[4] = {
        -:        -: 2511:              "isampler2DMS", "isampler2DMSArray", NULL, NULL
        -:        -: 2512:            };
    #####:    #####: 2513:            return names[type_idx];
        -:        -: 2514:         }
        -:        -: 2515:         case GLSL_SAMPLER_DIM_RECT: {
    #####:    #####: 2516:            assert(type->is_sampler());
        -:        -: 2517:            static const char *const names[4] = {
        -:        -: 2518:              "isamplerRect", NULL, "isamplerRectShadow", NULL
        -:        -: 2519:            };
    #####:    #####: 2520:            return names[type_idx];
        -:        -: 2521:         }
        -:        -: 2522:         case GLSL_SAMPLER_DIM_BUF: {
        -:        -: 2523:            static const char *const names[8] = {
        -:        -: 2524:              "isamplerBuffer", NULL, NULL, NULL,
        -:        -: 2525:              "iimageBuffer", NULL, NULL, NULL
        -:        -: 2526:            };
    #####:    #####: 2527:            return names[offset + type_idx];
        -:        -: 2528:         }
        -:        -: 2529:         default:
    #####:    #####: 2530:            unreachable("Unsupported isampler/iimage dimensionality");
        -:        -: 2531:         } /* sampler/image int dimensionality */
        -:        -: 2532:         break;
        -:        -: 2533:      case GLSL_TYPE_UINT:
    #####:    #####: 2534:         switch (type->sampler_dimensionality) {
        -:        -: 2535:         case GLSL_SAMPLER_DIM_1D: {
    #####:    #####: 2536:            assert(type->is_sampler());
        -:        -: 2537:            static const char *const names[4] = {
        -:        -: 2538:              "usampler1D", "usampler1DArray", NULL, NULL
        -:        -: 2539:            };
    #####:    #####: 2540:            return names[type_idx];
        -:        -: 2541:         }
        -:        -: 2542:         case GLSL_SAMPLER_DIM_2D: {
        -:        -: 2543:            static const char *const names[8] = {
        -:        -: 2544:              "usampler2D", "usampler2DArray", NULL, NULL,
        -:        -: 2545:              "uimage2D", "uimage2DArray", NULL, NULL
        -:        -: 2546:            };
    #####:    #####: 2547:            return names[offset + type_idx];
        -:        -: 2548:         }
        -:        -: 2549:         case GLSL_SAMPLER_DIM_3D: {
        -:        -: 2550:            static const char *const names[8] = {
        -:        -: 2551:              "usampler3D", NULL, NULL, NULL,
        -:        -: 2552:              "uimage3D", NULL, NULL, NULL
        -:        -: 2553:            };
    #####:    #####: 2554:            return names[offset + type_idx];
        -:        -: 2555:         }
        -:        -: 2556:         case GLSL_SAMPLER_DIM_CUBE: {
        -:        -: 2557:            static const char *const names[8] = {
        -:        -: 2558:              "usamplerCube", "usamplerCubeArray", NULL, NULL,
        -:        -: 2559:              "uimageCube", NULL, NULL, NULL
        -:        -: 2560:            };
    #####:    #####: 2561:            return names[offset + type_idx];
        -:        -: 2562:         }
        -:        -: 2563:         case GLSL_SAMPLER_DIM_MS: {
    #####:    #####: 2564:            assert(type->is_sampler());
        -:        -: 2565:            static const char *const names[4] = {
        -:        -: 2566:              "usampler2DMS", "usampler2DMSArray", NULL, NULL
        -:        -: 2567:            };
    #####:    #####: 2568:            return names[type_idx];
        -:        -: 2569:         }
        -:        -: 2570:         case GLSL_SAMPLER_DIM_RECT: {
    #####:    #####: 2571:            assert(type->is_sampler());
        -:        -: 2572:            static const char *const names[4] = {
        -:        -: 2573:              "usamplerRect", NULL, "usamplerRectShadow", NULL
        -:        -: 2574:            };
    #####:    #####: 2575:            return names[type_idx];
        -:        -: 2576:         }
        -:        -: 2577:         case GLSL_SAMPLER_DIM_BUF: {
        -:        -: 2578:            static const char *const names[8] = {
        -:        -: 2579:              "usamplerBuffer", NULL, NULL, NULL,
        -:        -: 2580:              "uimageBuffer", NULL, NULL, NULL
        -:        -: 2581:            };
    #####:    #####: 2582:            return names[offset + type_idx];
        -:        -: 2583:         }
        -:        -: 2584:         default:
    #####:    #####: 2585:            unreachable("Unsupported usampler/uimage dimensionality");
        -:        -: 2586:         } /* sampler/image uint dimensionality */
        -:        -: 2587:         break;
        -:        -: 2588:      default:
    #####:    #####: 2589:         unreachable("Unsupported sampler/image type");
        -:        -: 2590:      } /* sampler/image type */
        -:        -: 2591:      break;
        -:        -: 2592:   } /* GLSL_TYPE_SAMPLER/GLSL_TYPE_IMAGE */
        -:        -: 2593:   break;
        -:        -: 2594:   default:
    #####:    #####: 2595:      unreachable("Unsupported type");
        -:        -: 2596:   } /* base type */
        -:        -: 2597:}
        -:        -: 2598:
        -:        -: 2599:static unsigned
    #####:    #####: 2600:select_gles_precision(unsigned qual_precision,
        -:        -: 2601:                      const glsl_type *type,
        -:        -: 2602:                      struct _mesa_glsl_parse_state *state, YYLTYPE *loc)
        -:        -: 2603:{
        -:        -: 2604:   /* Precision qualifiers do not have any meaning in Desktop GLSL.
        -:        -: 2605:    * In GLES we take the precision from the type qualifier if present,
        -:        -: 2606:    * otherwise, if the type of the variable allows precision qualifiers at
        -:        -: 2607:    * all, we look for the default precision qualifier for that type in the
        -:        -: 2608:    * current scope.
        -:        -: 2609:    */
    #####:    #####: 2610:   assert(state->es_shader);
        -:        -: 2611:
    #####:    #####: 2612:   unsigned precision = GLSL_PRECISION_NONE;
    #####:    #####: 2613:   if (qual_precision) {
    #####:    #####: 2614:      precision = qual_precision;
    #####:    #####: 2615:   } else if (precision_qualifier_allowed(type)) {
        -:        -: 2616:      const char *type_name =
    #####:    #####: 2617:         get_type_name_for_precision_qualifier(type->without_array());
    #####:    #####: 2618:      assert(type_name != NULL);
        -:        -: 2619:
        -:        -: 2620:      precision =
    #####:    #####: 2621:         state->symbols->get_default_precision_qualifier(type_name);
    #####:    #####: 2622:      if (precision == ast_precision_none) {
        -:        -: 2623:         _mesa_glsl_error(loc, state,
        -:        -: 2624:                          "No precision specified in this scope for type `%s'",
    #####:    #####: 2625:                          type->name);
        -:        -: 2626:      }
        -:        -: 2627:   }
        -:        -: 2628:
        -:        -: 2629:
        -:        -: 2630:   /* Section 4.1.7.3 (Atomic Counters) of the GLSL ES 3.10 spec says:
        -:        -: 2631:    *
        -:        -: 2632:    *    "The default precision of all atomic types is highp. It is an error to
        -:        -: 2633:    *    declare an atomic type with a different precision or to specify the
        -:        -: 2634:    *    default precision for an atomic type to be lowp or mediump."
        -:        -: 2635:    */
    #####:    #####: 2636:   if (type->base_type == GLSL_TYPE_ATOMIC_UINT &&
        -:        -: 2637:       precision != ast_precision_high) {
        -:        -: 2638:      _mesa_glsl_error(loc, state,
    #####:    #####: 2639:                       "atomic_uint can only have highp precision qualifier");
        -:        -: 2640:   }
        -:        -: 2641:
    #####:    #####: 2642:   return precision;
        -:        -: 2643:}
        -:        -: 2644:
        -:        -: 2645:const glsl_type *
       14:       14: 2646:ast_fully_specified_type::glsl_type(const char **name,
        -:        -: 2647:                                    struct _mesa_glsl_parse_state *state) const
        -:        -: 2648:{
       14:       14: 2649:   return this->specifier->glsl_type(name, state);
        -:        -: 2650:}
        -:        -: 2651:
        -:        -: 2652:/**
        -:        -: 2653: * Determine whether a toplevel variable declaration declares a varying.  This
        -:        -: 2654: * function operates by examining the variable's mode and the shader target,
        -:        -: 2655: * so it correctly identifies linkage variables regardless of whether they are
        -:        -: 2656: * declared using the deprecated "varying" syntax or the new "in/out" syntax.
        -:        -: 2657: *
        -:        -: 2658: * Passing a non-toplevel variable declaration (e.g. a function parameter) to
        -:        -: 2659: * this function will produce undefined results.
        -:        -: 2660: */
        -:        -: 2661:static bool
        8:        8: 2662:is_varying_var(ir_variable *var, gl_shader_stage target)
        -:        -: 2663:{
        8:        8: 2664:   switch (target) {
        -:        -: 2665:   case MESA_SHADER_VERTEX:
        1:        1: 2666:      return var->data.mode == ir_var_shader_out;
        -:        -: 2667:   case MESA_SHADER_FRAGMENT:
        7:        7: 2668:      return var->data.mode == ir_var_shader_in;
        -:        -: 2669:   default:
    #####:    #####: 2670:      return var->data.mode == ir_var_shader_out || var->data.mode == ir_var_shader_in;
        -:        -: 2671:   }
        -:        -: 2672:}
        -:        -: 2673:
        -:        -: 2674:static bool
    #####:    #####: 2675:is_allowed_invariant(ir_variable *var, struct _mesa_glsl_parse_state *state)
        -:        -: 2676:{
    #####:    #####: 2677:   if (is_varying_var(var, state->stage))
    #####:    #####: 2678:      return true;
        -:        -: 2679:
        -:        -: 2680:   /* From Section 4.6.1 ("The Invariant Qualifier") GLSL 1.20 spec:
        -:        -: 2681:    * "Only variables output from a vertex shader can be candidates
        -:        -: 2682:    * for invariance".
        -:        -: 2683:    */
    #####:    #####: 2684:   if (!state->is_version(130, 0))
    #####:    #####: 2685:      return false;
        -:        -: 2686:
        -:        -: 2687:   /*
        -:        -: 2688:    * Later specs remove this language - so allowed invariant
        -:        -: 2689:    * on fragment shader outputs as well.
        -:        -: 2690:    */
    #####:    #####: 2691:   if (state->stage == MESA_SHADER_FRAGMENT &&
    #####:    #####: 2692:       var->data.mode == ir_var_shader_out)
    #####:    #####: 2693:      return true;
    #####:    #####: 2694:   return false;
        -:        -: 2695:}
        -:        -: 2696:
        -:        -: 2697:/**
        -:        -: 2698: * Matrix layout qualifiers are only allowed on certain types
        -:        -: 2699: */
        -:        -: 2700:static void
    #####:    #####: 2701:validate_matrix_layout_for_type(struct _mesa_glsl_parse_state *state,
        -:        -: 2702:                                YYLTYPE *loc,
        -:        -: 2703:                                const glsl_type *type,
        -:        -: 2704:                                ir_variable *var)
        -:        -: 2705:{
    #####:    #####: 2706:   if (var && !var->is_in_buffer_block()) {
        -:        -: 2707:      /* Layout qualifiers may only apply to interface blocks and fields in
        -:        -: 2708:       * them.
        -:        -: 2709:       */
        -:        -: 2710:      _mesa_glsl_error(loc, state,
        -:        -: 2711:                       "uniform block layout qualifiers row_major and "
        -:        -: 2712:                       "column_major may not be applied to variables "
    #####:    #####: 2713:                       "outside of uniform blocks");
    #####:    #####: 2714:   } else if (!type->without_array()->is_matrix()) {
        -:        -: 2715:      /* The OpenGL ES 3.0 conformance tests did not originally allow
        -:        -: 2716:       * matrix layout qualifiers on non-matrices.  However, the OpenGL
        -:        -: 2717:       * 4.4 and OpenGL ES 3.0 (revision TBD) specifications were
        -:        -: 2718:       * amended to specifically allow these layouts on all types.  Emit
        -:        -: 2719:       * a warning so that people know their code may not be portable.
        -:        -: 2720:       */
        -:        -: 2721:      _mesa_glsl_warning(loc, state,
        -:        -: 2722:                         "uniform block layout qualifiers row_major and "
        -:        -: 2723:                         "column_major applied to non-matrix types may "
    #####:    #####: 2724:                         "be rejected by older compilers");
        -:        -: 2725:   }
    #####:    #####: 2726:}
        -:        -: 2727:
        -:        -: 2728:static bool
    #####:    #####: 2729:validate_xfb_buffer_qualifier(YYLTYPE *loc,
        -:        -: 2730:                              struct _mesa_glsl_parse_state *state,
        -:        -: 2731:                              unsigned xfb_buffer) {
    #####:    #####: 2732:   if (xfb_buffer >= state->Const.MaxTransformFeedbackBuffers) {
    #####:    #####: 2733:      _mesa_glsl_error(loc, state,
        -:        -: 2734:                       "invalid xfb_buffer specified %d is larger than "
        -:        -: 2735:                       "MAX_TRANSFORM_FEEDBACK_BUFFERS - 1 (%d).",
        -:        -: 2736:                       xfb_buffer,
    #####:    #####: 2737:                       state->Const.MaxTransformFeedbackBuffers - 1);
    #####:    #####: 2738:      return false;
        -:        -: 2739:   }
        -:        -: 2740:
    #####:    #####: 2741:   return true;
        -:        -: 2742:}
        -:        -: 2743:
        -:        -: 2744:/* From the ARB_enhanced_layouts spec:
        -:        -: 2745: *
        -:        -: 2746: *    "Variables and block members qualified with *xfb_offset* can be
        -:        -: 2747: *    scalars, vectors, matrices, structures, and (sized) arrays of these.
        -:        -: 2748: *    The offset must be a multiple of the size of the first component of
        -:        -: 2749: *    the first qualified variable or block member, or a compile-time error
        -:        -: 2750: *    results.  Further, if applied to an aggregate containing a double,
        -:        -: 2751: *    the offset must also be a multiple of 8, and the space taken in the
        -:        -: 2752: *    buffer will be a multiple of 8.
        -:        -: 2753: */
        -:        -: 2754:static bool
    #####:    #####: 2755:validate_xfb_offset_qualifier(YYLTYPE *loc,
        -:        -: 2756:                              struct _mesa_glsl_parse_state *state,
        -:        -: 2757:                              int xfb_offset, const glsl_type *type,
        -:        -: 2758:                              unsigned component_size) {
    #####:    #####: 2759:  const glsl_type *t_without_array = type->without_array();
        -:        -: 2760:
    #####:    #####: 2761:   if (xfb_offset != -1 && type->is_unsized_array()) {
        -:        -: 2762:      _mesa_glsl_error(loc, state,
    #####:    #####: 2763:                       "xfb_offset can't be used with unsized arrays.");
    #####:    #####: 2764:      return false;
        -:        -: 2765:   }
        -:        -: 2766:
        -:        -: 2767:   /* Make sure nested structs don't contain unsized arrays, and validate
        -:        -: 2768:    * any xfb_offsets on interface members.
        -:        -: 2769:    */
    #####:    #####: 2770:   if (t_without_array->is_record() || t_without_array->is_interface())
    #####:    #####: 2771:      for (unsigned int i = 0; i < t_without_array->length; i++) {
    #####:    #####: 2772:         const glsl_type *member_t = t_without_array->fields.structure[i].type;
        -:        -: 2773:
        -:        -: 2774:         /* When the interface block doesn't have an xfb_offset qualifier then
        -:        -: 2775:          * we apply the component size rules at the member level.
        -:        -: 2776:          */
    #####:    #####: 2777:         if (xfb_offset == -1)
    #####:    #####: 2778:            component_size = member_t->contains_double() ? 8 : 4;
        -:        -: 2779:
    #####:    #####: 2780:         int xfb_offset = t_without_array->fields.structure[i].offset;
        -:        -: 2781:         validate_xfb_offset_qualifier(loc, state, xfb_offset, member_t,
    #####:    #####: 2782:                                       component_size);
        -:        -: 2783:      }
        -:        -: 2784:
        -:        -: 2785:  /* Nested structs or interface block without offset may not have had an
        -:        -: 2786:   * offset applied yet so return.
        -:        -: 2787:   */
    #####:    #####: 2788:   if (xfb_offset == -1) {
    #####:    #####: 2789:     return true;
        -:        -: 2790:   }
        -:        -: 2791:
    #####:    #####: 2792:   if (xfb_offset % component_size) {
        -:        -: 2793:      _mesa_glsl_error(loc, state,
        -:        -: 2794:                       "invalid qualifier xfb_offset=%d must be a multiple "
        -:        -: 2795:                       "of the first component size of the first qualified "
        -:        -: 2796:                       "variable or block member. Or double if an aggregate "
        -:        -: 2797:                       "that contains a double (%d).",
    #####:    #####: 2798:                       xfb_offset, component_size);
    #####:    #####: 2799:      return false;
        -:        -: 2800:   }
        -:        -: 2801:
    #####:    #####: 2802:   return true;
        -:        -: 2803:}
        -:        -: 2804:
        -:        -: 2805:static bool
    #####:    #####: 2806:validate_stream_qualifier(YYLTYPE *loc, struct _mesa_glsl_parse_state *state,
        -:        -: 2807:                          unsigned stream)
        -:        -: 2808:{
    #####:    #####: 2809:   if (stream >= state->ctx->Const.MaxVertexStreams) {
    #####:    #####: 2810:      _mesa_glsl_error(loc, state,
        -:        -: 2811:                       "invalid stream specified %d is larger than "
        -:        -: 2812:                       "MAX_VERTEX_STREAMS - 1 (%d).",
    #####:    #####: 2813:                       stream, state->ctx->Const.MaxVertexStreams - 1);
    #####:    #####: 2814:      return false;
        -:        -: 2815:   }
        -:        -: 2816:
    #####:    #####: 2817:   return true;
        -:        -: 2818:}
        -:        -: 2819:
        -:        -: 2820:static void
    #####:    #####: 2821:apply_explicit_binding(struct _mesa_glsl_parse_state *state,
        -:        -: 2822:                       YYLTYPE *loc,
        -:        -: 2823:                       ir_variable *var,
        -:        -: 2824:                       const glsl_type *type,
        -:        -: 2825:                       const ast_type_qualifier *qual)
        -:        -: 2826:{
    #####:    #####: 2827:   if (!qual->flags.q.uniform && !qual->flags.q.buffer) {
        -:        -: 2828:      _mesa_glsl_error(loc, state,
        -:        -: 2829:                       "the \"binding\" qualifier only applies to uniforms and "
    #####:    #####: 2830:                       "shader storage buffer objects");
    #####:    #####: 2831:      return;
        -:        -: 2832:   }
        -:        -: 2833:
        -:        -: 2834:   unsigned qual_binding;
    #####:    #####: 2835:   if (!process_qualifier_constant(state, loc, "binding", qual->binding,
        -:        -: 2836:                                   &qual_binding)) {
    #####:    #####: 2837:      return;
        -:        -: 2838:   }
        -:        -: 2839:
    #####:    #####: 2840:   const struct gl_context *const ctx = state->ctx;
    #####:    #####: 2841:   unsigned elements = type->is_array() ? type->arrays_of_arrays_size() : 1;
    #####:    #####: 2842:   unsigned max_index = qual_binding + elements - 1;
    #####:    #####: 2843:   const glsl_type *base_type = type->without_array();
        -:        -: 2844:
    #####:    #####: 2845:   if (base_type->is_interface()) {
        -:        -: 2846:      /* UBOs.  From page 60 of the GLSL 4.20 specification:
        -:        -: 2847:       * "If the binding point for any uniform block instance is less than zero,
        -:        -: 2848:       *  or greater than or equal to the implementation-dependent maximum
        -:        -: 2849:       *  number of uniform buffer bindings, a compilation error will occur.
        -:        -: 2850:       *  When the binding identifier is used with a uniform block instanced as
        -:        -: 2851:       *  an array of size N, all elements of the array from binding through
        -:        -: 2852:       *  binding + N – 1 must be within this range."
        -:        -: 2853:       *
        -:        -: 2854:       * The implementation-dependent maximum is GL_MAX_UNIFORM_BUFFER_BINDINGS.
        -:        -: 2855:       */
    #####:    #####: 2856:      if (qual->flags.q.uniform &&
    #####:    #####: 2857:         max_index >= ctx->Const.MaxUniformBufferBindings) {
        -:        -: 2858:         _mesa_glsl_error(loc, state, "layout(binding = %u) for %d UBOs exceeds "
        -:        -: 2859:                          "the maximum number of UBO binding points (%d)",
        -:        -: 2860:                          qual_binding, elements,
    #####:    #####: 2861:                          ctx->Const.MaxUniformBufferBindings);
    #####:    #####: 2862:         return;
        -:        -: 2863:      }
        -:        -: 2864:
        -:        -: 2865:      /* SSBOs. From page 67 of the GLSL 4.30 specification:
        -:        -: 2866:       * "If the binding point for any uniform or shader storage block instance
        -:        -: 2867:       *  is less than zero, or greater than or equal to the
        -:        -: 2868:       *  implementation-dependent maximum number of uniform buffer bindings, a
        -:        -: 2869:       *  compile-time error will occur. When the binding identifier is used
        -:        -: 2870:       *  with a uniform or shader storage block instanced as an array of size
        -:        -: 2871:       *  N, all elements of the array from binding through binding + N – 1 must
        -:        -: 2872:       *  be within this range."
        -:        -: 2873:       */
    #####:    #####: 2874:      if (qual->flags.q.buffer &&
    #####:    #####: 2875:         max_index >= ctx->Const.MaxShaderStorageBufferBindings) {
        -:        -: 2876:         _mesa_glsl_error(loc, state, "layout(binding = %u) for %d SSBOs exceeds "
        -:        -: 2877:                          "the maximum number of SSBO binding points (%d)",
        -:        -: 2878:                          qual_binding, elements,
    #####:    #####: 2879:                          ctx->Const.MaxShaderStorageBufferBindings);
    #####:    #####: 2880:         return;
        -:        -: 2881:      }
    #####:    #####: 2882:   } else if (base_type->is_sampler()) {
        -:        -: 2883:      /* Samplers.  From page 63 of the GLSL 4.20 specification:
        -:        -: 2884:       * "If the binding is less than zero, or greater than or equal to the
        -:        -: 2885:       *  implementation-dependent maximum supported number of units, a
        -:        -: 2886:       *  compilation error will occur. When the binding identifier is used
        -:        -: 2887:       *  with an array of size N, all elements of the array from binding
        -:        -: 2888:       *  through binding + N - 1 must be within this range."
        -:        -: 2889:       */
    #####:    #####: 2890:      unsigned limit = ctx->Const.MaxCombinedTextureImageUnits;
        -:        -: 2891:
    #####:    #####: 2892:      if (max_index >= limit) {
        -:        -: 2893:         _mesa_glsl_error(loc, state, "layout(binding = %d) for %d samplers "
        -:        -: 2894:                          "exceeds the maximum number of texture image units "
    #####:    #####: 2895:                          "(%u)", qual_binding, elements, limit);
        -:        -: 2896:
    #####:    #####: 2897:         return;
        -:        -: 2898:      }
    #####:    #####: 2899:   } else if (base_type->contains_atomic()) {
    #####:    #####: 2900:      assert(ctx->Const.MaxAtomicBufferBindings <= MAX_COMBINED_ATOMIC_BUFFERS);
    #####:    #####: 2901:      if (qual_binding >= ctx->Const.MaxAtomicBufferBindings) {
        -:        -: 2902:         _mesa_glsl_error(loc, state, "layout(binding = %d) exceeds the "
        -:        -: 2903:                          " maximum number of atomic counter buffer bindings"
        -:        -: 2904:                          "(%u)", qual_binding,
    #####:    #####: 2905:                          ctx->Const.MaxAtomicBufferBindings);
        -:        -: 2906:
    #####:    #####: 2907:         return;
        -:        -: 2908:      }
    #####:    #####: 2909:   } else if ((state->is_version(420, 310) ||
    #####:    #####: 2910:               state->ARB_shading_language_420pack_enable) &&
    #####:    #####: 2911:              base_type->is_image()) {
    #####:    #####: 2912:      assert(ctx->Const.MaxImageUnits <= MAX_IMAGE_UNITS);
    #####:    #####: 2913:      if (max_index >= ctx->Const.MaxImageUnits) {
        -:        -: 2914:         _mesa_glsl_error(loc, state, "Image binding %d exceeds the "
        -:        -: 2915:                          " maximum number of image units (%d)", max_index,
    #####:    #####: 2916:                          ctx->Const.MaxImageUnits);
    #####:    #####: 2917:         return;
        -:        -: 2918:      }
        -:        -: 2919:
        -:        -: 2920:   } else {
        -:        -: 2921:      _mesa_glsl_error(loc, state,
        -:        -: 2922:                       "the \"binding\" qualifier only applies to uniform "
    #####:    #####: 2923:                       "blocks, opaque variables, or arrays thereof");
    #####:    #####: 2924:      return;
        -:        -: 2925:   }
        -:        -: 2926:
    #####:    #####: 2927:   var->data.explicit_binding = true;
    #####:    #####: 2928:   var->data.binding = qual_binding;
        -:        -: 2929:
    #####:    #####: 2930:   return;
        -:        -: 2931:}
        -:        -: 2932:
        -:        -: 2933:static void
       10:       10: 2934:validate_fragment_flat_interpolation_input(struct _mesa_glsl_parse_state *state,
        -:        -: 2935:                                           YYLTYPE *loc,
        -:        -: 2936:                                           const glsl_interp_mode interpolation,
        -:        -: 2937:                                           const struct glsl_type *var_type,
        -:        -: 2938:                                           ir_variable_mode mode)
        -:        -: 2939:{
       10:       10: 2940:   if (state->stage != MESA_SHADER_FRAGMENT ||
        9:        9: 2941:       interpolation == INTERP_MODE_FLAT ||
        -:        -: 2942:       mode != ir_var_shader_in)
       10:       10: 2943:      return;
        -:        -: 2944:
        -:        -: 2945:   /* Integer fragment inputs must be qualified with 'flat'.  In GLSL ES,
        -:        -: 2946:    * so must integer vertex outputs.
        -:        -: 2947:    *
        -:        -: 2948:    * From section 4.3.4 ("Inputs") of the GLSL 1.50 spec:
        -:        -: 2949:    *    "Fragment shader inputs that are signed or unsigned integers or
        -:        -: 2950:    *    integer vectors must be qualified with the interpolation qualifier
        -:        -: 2951:    *    flat."
        -:        -: 2952:    *
        -:        -: 2953:    * From section 4.3.4 ("Input Variables") of the GLSL 3.00 ES spec:
        -:        -: 2954:    *    "Fragment shader inputs that are, or contain, signed or unsigned
        -:        -: 2955:    *    integers or integer vectors must be qualified with the
        -:        -: 2956:    *    interpolation qualifier flat."
        -:        -: 2957:    *
        -:        -: 2958:    * From section 4.3.6 ("Output Variables") of the GLSL 3.00 ES spec:
        -:        -: 2959:    *    "Vertex shader outputs that are, or contain, signed or unsigned
        -:        -: 2960:    *    integers or integer vectors must be qualified with the
        -:        -: 2961:    *    interpolation qualifier flat."
        -:        -: 2962:    *
        -:        -: 2963:    * Note that prior to GLSL 1.50, this requirement applied to vertex
        -:        -: 2964:    * outputs rather than fragment inputs.  That creates problems in the
        -:        -: 2965:    * presence of geometry shaders, so we adopt the GLSL 1.50 rule for all
        -:        -: 2966:    * desktop GL shaders.  For GLSL ES shaders, we follow the spec and
        -:        -: 2967:    * apply the restriction to both vertex outputs and fragment inputs.
        -:        -: 2968:    *
        -:        -: 2969:    * Note also that the desktop GLSL specs are missing the text "or
        -:        -: 2970:    * contain"; this is presumably an oversight, since there is no
        -:        -: 2971:    * reasonable way to interpolate a fragment shader input that contains
        -:        -: 2972:    * an integer. See Khronos bug #15671.
        -:        -: 2973:    */
    #####:    #####: 2974:   if (state->is_version(130, 300)
    #####:    #####: 2975:       && var_type->contains_integer()) {
        -:        -: 2976:      _mesa_glsl_error(loc, state, "if a fragment input is (or contains) "
    #####:    #####: 2977:                       "an integer, then it must be qualified with 'flat'");
        -:        -: 2978:   }
        -:        -: 2979:
        -:        -: 2980:   /* Double fragment inputs must be qualified with 'flat'.
        -:        -: 2981:    *
        -:        -: 2982:    * From the "Overview" of the ARB_gpu_shader_fp64 extension spec:
        -:        -: 2983:    *    "This extension does not support interpolation of double-precision
        -:        -: 2984:    *    values; doubles used as fragment shader inputs must be qualified as
        -:        -: 2985:    *    "flat"."
        -:        -: 2986:    *
        -:        -: 2987:    * From section 4.3.4 ("Inputs") of the GLSL 4.00 spec:
        -:        -: 2988:    *    "Fragment shader inputs that are signed or unsigned integers, integer
        -:        -: 2989:    *    vectors, or any double-precision floating-point type must be
        -:        -: 2990:    *    qualified with the interpolation qualifier flat."
        -:        -: 2991:    *
        -:        -: 2992:    * Note that the GLSL specs are missing the text "or contain"; this is
        -:        -: 2993:    * presumably an oversight. See Khronos bug #15671.
        -:        -: 2994:    *
        -:        -: 2995:    * The 'double' type does not exist in GLSL ES so far.
        -:        -: 2996:    */
    #####:    #####: 2997:   if (state->has_double()
    #####:    #####: 2998:       && var_type->contains_double()) {
        -:        -: 2999:      _mesa_glsl_error(loc, state, "if a fragment input is (or contains) "
    #####:    #####: 3000:                       "a double, then it must be qualified with 'flat'");
        -:        -: 3001:   }
        -:        -: 3002:}
        -:        -: 3003:
        -:        -: 3004:static void
       10:       10: 3005:validate_interpolation_qualifier(struct _mesa_glsl_parse_state *state,
        -:        -: 3006:                                 YYLTYPE *loc,
        -:        -: 3007:                                 const glsl_interp_mode interpolation,
        -:        -: 3008:                                 const struct ast_type_qualifier *qual,
        -:        -: 3009:                                 const struct glsl_type *var_type,
        -:        -: 3010:                                 ir_variable_mode mode)
        -:        -: 3011:{
        -:        -: 3012:   /* Interpolation qualifiers can only apply to shader inputs or outputs, but
        -:        -: 3013:    * not to vertex shader inputs nor fragment shader outputs.
        -:        -: 3014:    *
        -:        -: 3015:    * From section 4.3 ("Storage Qualifiers") of the GLSL 1.30 spec:
        -:        -: 3016:    *    "Outputs from a vertex shader (out) and inputs to a fragment
        -:        -: 3017:    *    shader (in) can be further qualified with one or more of these
        -:        -: 3018:    *    interpolation qualifiers"
        -:        -: 3019:    *    ...
        -:        -: 3020:    *    "These interpolation qualifiers may only precede the qualifiers in,
        -:        -: 3021:    *    centroid in, out, or centroid out in a declaration. They do not apply
        -:        -: 3022:    *    to the deprecated storage qualifiers varying or centroid
        -:        -: 3023:    *    varying. They also do not apply to inputs into a vertex shader or
        -:        -: 3024:    *    outputs from a fragment shader."
        -:        -: 3025:    *
        -:        -: 3026:    * From section 4.3 ("Storage Qualifiers") of the GLSL ES 3.00 spec:
        -:        -: 3027:    *    "Outputs from a shader (out) and inputs to a shader (in) can be
        -:        -: 3028:    *    further qualified with one of these interpolation qualifiers."
        -:        -: 3029:    *    ...
        -:        -: 3030:    *    "These interpolation qualifiers may only precede the qualifiers
        -:        -: 3031:    *    in, centroid in, out, or centroid out in a declaration. They do
        -:        -: 3032:    *    not apply to inputs into a vertex shader or outputs from a
        -:        -: 3033:    *    fragment shader."
        -:        -: 3034:    */
       20:       20: 3035:   if (state->is_version(130, 300)
       10:       10: 3036:       && interpolation != INTERP_MODE_NONE) {
    #####:    #####: 3037:      const char *i = interpolation_string(interpolation);
    #####:    #####: 3038:      if (mode != ir_var_shader_in && mode != ir_var_shader_out)
        -:        -: 3039:         _mesa_glsl_error(loc, state,
        -:        -: 3040:                          "interpolation qualifier `%s' can only be applied to "
    #####:    #####: 3041:                          "shader inputs or outputs.", i);
        -:        -: 3042:
    #####:    #####: 3043:      switch (state->stage) {
        -:        -: 3044:      case MESA_SHADER_VERTEX:
    #####:    #####: 3045:         if (mode == ir_var_shader_in) {
        -:        -: 3046:            _mesa_glsl_error(loc, state,
        -:        -: 3047:                             "interpolation qualifier '%s' cannot be applied to "
    #####:    #####: 3048:                             "vertex shader inputs", i);
        -:        -: 3049:         }
    #####:    #####: 3050:         break;
        -:        -: 3051:      case MESA_SHADER_FRAGMENT:
    #####:    #####: 3052:         if (mode == ir_var_shader_out) {
        -:        -: 3053:            _mesa_glsl_error(loc, state,
        -:        -: 3054:                             "interpolation qualifier '%s' cannot be applied to "
    #####:    #####: 3055:                             "fragment shader outputs", i);
        -:        -: 3056:         }
    #####:    #####: 3057:         break;
        -:        -: 3058:      default:
    #####:    #####: 3059:         break;
        -:        -: 3060:      }
        -:        -: 3061:   }
        -:        -: 3062:
        -:        -: 3063:   /* Interpolation qualifiers cannot be applied to 'centroid' and
        -:        -: 3064:    * 'centroid varying'.
        -:        -: 3065:    *
        -:        -: 3066:    * From section 4.3 ("Storage Qualifiers") of the GLSL 1.30 spec:
        -:        -: 3067:    *    "interpolation qualifiers may only precede the qualifiers in,
        -:        -: 3068:    *    centroid in, out, or centroid out in a declaration. They do not apply
        -:        -: 3069:    *    to the deprecated storage qualifiers varying or centroid varying."
        -:        -: 3070:    *
        -:        -: 3071:    * These deprecated storage qualifiers do not exist in GLSL ES 3.00.
        -:        -: 3072:    */
       20:       20: 3073:   if (state->is_version(130, 0)
       10:       10: 3074:       && interpolation != INTERP_MODE_NONE
       10:       10: 3075:       && qual->flags.q.varying) {
        -:        -: 3076:
    #####:    #####: 3077:      const char *i = interpolation_string(interpolation);
        -:        -: 3078:      const char *s;
    #####:    #####: 3079:      if (qual->flags.q.centroid)
    #####:    #####: 3080:         s = "centroid varying";
        -:        -: 3081:      else
    #####:    #####: 3082:         s = "varying";
        -:        -: 3083:
        -:        -: 3084:      _mesa_glsl_error(loc, state,
        -:        -: 3085:                       "qualifier '%s' cannot be applied to the "
    #####:    #####: 3086:                       "deprecated storage qualifier '%s'", i, s);
        -:        -: 3087:   }
        -:        -: 3088:
        -:        -: 3089:   validate_fragment_flat_interpolation_input(state, loc, interpolation,
       10:       10: 3090:                                              var_type, mode);
       10:       10: 3091:}
        -:        -: 3092:
        -:        -: 3093:static glsl_interp_mode
       10:       10: 3094:interpret_interpolation_qualifier(const struct ast_type_qualifier *qual,
        -:        -: 3095:                                  const struct glsl_type *var_type,
        -:        -: 3096:                                  ir_variable_mode mode,
        -:        -: 3097:                                  struct _mesa_glsl_parse_state *state,
        -:        -: 3098:                                  YYLTYPE *loc)
        -:        -: 3099:{
        -:        -: 3100:   glsl_interp_mode interpolation;
       10:       10: 3101:   if (qual->flags.q.flat)
    #####:    #####: 3102:      interpolation = INTERP_MODE_FLAT;
       10:       10: 3103:   else if (qual->flags.q.noperspective)
    #####:    #####: 3104:      interpolation = INTERP_MODE_NOPERSPECTIVE;
       10:       10: 3105:   else if (qual->flags.q.smooth)
    #####:    #####: 3106:      interpolation = INTERP_MODE_SMOOTH;
       10:       10: 3107:   else if (state->es_shader &&
    #####:    #####: 3108:            ((mode == ir_var_shader_in &&
    #####:    #####: 3109:              state->stage != MESA_SHADER_VERTEX) ||
    #####:    #####: 3110:             (mode == ir_var_shader_out &&
    #####:    #####: 3111:              state->stage != MESA_SHADER_FRAGMENT)))
        -:        -: 3112:      /* Section 4.3.9 (Interpolation) of the GLSL ES 3.00 spec says:
        -:        -: 3113:       *
        -:        -: 3114:       *    "When no interpolation qualifier is present, smooth interpolation
        -:        -: 3115:       *    is used."
        -:        -: 3116:       */
    #####:    #####: 3117:      interpolation = INTERP_MODE_SMOOTH;
        -:        -: 3118:   else
       10:       10: 3119:      interpolation = INTERP_MODE_NONE;
        -:        -: 3120:
        -:        -: 3121:   validate_interpolation_qualifier(state, loc,
        -:        -: 3122:                                    interpolation,
       10:       10: 3123:                                    qual, var_type, mode);
        -:        -: 3124:
       10:       10: 3125:   return interpolation;
        -:        -: 3126:}
        -:        -: 3127:
        -:        -: 3128:
        -:        -: 3129:static void
    #####:    #####: 3130:apply_explicit_location(const struct ast_type_qualifier *qual,
        -:        -: 3131:                        ir_variable *var,
        -:        -: 3132:                        struct _mesa_glsl_parse_state *state,
        -:        -: 3133:                        YYLTYPE *loc)
        -:        -: 3134:{
    #####:    #####: 3135:   bool fail = false;
        -:        -: 3136:
        -:        -: 3137:   unsigned qual_location;
    #####:    #####: 3138:   if (!process_qualifier_constant(state, loc, "location", qual->location,
        -:        -: 3139:                                   &qual_location)) {
    #####:    #####: 3140:      return;
        -:        -: 3141:   }
        -:        -: 3142:
        -:        -: 3143:   /* Checks for GL_ARB_explicit_uniform_location. */
    #####:    #####: 3144:   if (qual->flags.q.uniform) {
    #####:    #####: 3145:      if (!state->check_explicit_uniform_location_allowed(loc, var))
    #####:    #####: 3146:         return;
        -:        -: 3147:
    #####:    #####: 3148:      const struct gl_context *const ctx = state->ctx;
    #####:    #####: 3149:      unsigned max_loc = qual_location + var->type->uniform_locations() - 1;
        -:        -: 3150:
    #####:    #####: 3151:      if (max_loc >= ctx->Const.MaxUserAssignableUniformLocations) {
    #####:    #####: 3152:         _mesa_glsl_error(loc, state, "location(s) consumed by uniform %s "
        -:        -: 3153:                          ">= MAX_UNIFORM_LOCATIONS (%u)", var->name,
    #####:    #####: 3154:                          ctx->Const.MaxUserAssignableUniformLocations);
    #####:    #####: 3155:         return;
        -:        -: 3156:      }
        -:        -: 3157:
    #####:    #####: 3158:      var->data.explicit_location = true;
    #####:    #####: 3159:      var->data.location = qual_location;
    #####:    #####: 3160:      return;
        -:        -: 3161:   }
        -:        -: 3162:
        -:        -: 3163:   /* Between GL_ARB_explicit_attrib_location an
        -:        -: 3164:    * GL_ARB_separate_shader_objects, the inputs and outputs of any shader
        -:        -: 3165:    * stage can be assigned explicit locations.  The checking here associates
        -:        -: 3166:    * the correct extension with the correct stage's input / output:
        -:        -: 3167:    *
        -:        -: 3168:    *                     input            output
        -:        -: 3169:    *                     -----            ------
        -:        -: 3170:    * vertex              explicit_loc     sso
        -:        -: 3171:    * tess control        sso              sso
        -:        -: 3172:    * tess eval           sso              sso
        -:        -: 3173:    * geometry            sso              sso
        -:        -: 3174:    * fragment            sso              explicit_loc
        -:        -: 3175:    */
    #####:    #####: 3176:   switch (state->stage) {
        -:        -: 3177:   case MESA_SHADER_VERTEX:
    #####:    #####: 3178:      if (var->data.mode == ir_var_shader_in) {
    #####:    #####: 3179:         if (!state->check_explicit_attrib_location_allowed(loc, var))
    #####:    #####: 3180:            return;
        -:        -: 3181:
    #####:    #####: 3182:         break;
        -:        -: 3183:      }
        -:        -: 3184:
    #####:    #####: 3185:      if (var->data.mode == ir_var_shader_out) {
    #####:    #####: 3186:         if (!state->check_separate_shader_objects_allowed(loc, var))
    #####:    #####: 3187:            return;
        -:        -: 3188:
    #####:    #####: 3189:         break;
        -:        -: 3190:      }
        -:        -: 3191:
    #####:    #####: 3192:      fail = true;
    #####:    #####: 3193:      break;
        -:        -: 3194:
        -:        -: 3195:   case MESA_SHADER_TESS_CTRL:
        -:        -: 3196:   case MESA_SHADER_TESS_EVAL:
        -:        -: 3197:   case MESA_SHADER_GEOMETRY:
    #####:    #####: 3198:      if (var->data.mode == ir_var_shader_in || var->data.mode == ir_var_shader_out) {
    #####:    #####: 3199:         if (!state->check_separate_shader_objects_allowed(loc, var))
    #####:    #####: 3200:            return;
        -:        -: 3201:
    #####:    #####: 3202:         break;
        -:        -: 3203:      }
        -:        -: 3204:
    #####:    #####: 3205:      fail = true;
    #####:    #####: 3206:      break;
        -:        -: 3207:
        -:        -: 3208:   case MESA_SHADER_FRAGMENT:
    #####:    #####: 3209:      if (var->data.mode == ir_var_shader_in) {
    #####:    #####: 3210:         if (!state->check_separate_shader_objects_allowed(loc, var))
    #####:    #####: 3211:            return;
        -:        -: 3212:
    #####:    #####: 3213:         break;
        -:        -: 3214:      }
        -:        -: 3215:
    #####:    #####: 3216:      if (var->data.mode == ir_var_shader_out) {
    #####:    #####: 3217:         if (!state->check_explicit_attrib_location_allowed(loc, var))
    #####:    #####: 3218:            return;
        -:        -: 3219:
    #####:    #####: 3220:         break;
        -:        -: 3221:      }
        -:        -: 3222:
    #####:    #####: 3223:      fail = true;
    #####:    #####: 3224:      break;
        -:        -: 3225:
        -:        -: 3226:   case MESA_SHADER_COMPUTE:
        -:        -: 3227:      _mesa_glsl_error(loc, state,
        -:        -: 3228:                       "compute shader variables cannot be given "
    #####:    #####: 3229:                       "explicit locations");
    #####:    #####: 3230:      return;
        -:        -: 3231:   };
        -:        -: 3232:
    #####:    #####: 3233:   if (fail) {
    #####:    #####: 3234:      _mesa_glsl_error(loc, state,
        -:        -: 3235:                       "%s cannot be given an explicit location in %s shader",
        -:        -: 3236:                       mode_string(var),
    #####:    #####: 3237:      _mesa_shader_stage_to_string(state->stage));
        -:        -: 3238:   } else {
    #####:    #####: 3239:      var->data.explicit_location = true;
        -:        -: 3240:
    #####:    #####: 3241:      switch (state->stage) {
        -:        -: 3242:      case MESA_SHADER_VERTEX:
    #####:    #####: 3243:         var->data.location = (var->data.mode == ir_var_shader_in)
    #####:    #####: 3244:            ? (qual_location + VERT_ATTRIB_GENERIC0)
    #####:    #####: 3245:            : (qual_location + VARYING_SLOT_VAR0);
    #####:    #####: 3246:         break;
        -:        -: 3247:
        -:        -: 3248:      case MESA_SHADER_TESS_CTRL:
        -:        -: 3249:      case MESA_SHADER_TESS_EVAL:
        -:        -: 3250:      case MESA_SHADER_GEOMETRY:
    #####:    #####: 3251:         if (var->data.patch)
    #####:    #####: 3252:            var->data.location = qual_location + VARYING_SLOT_PATCH0;
        -:        -: 3253:         else
    #####:    #####: 3254:            var->data.location = qual_location + VARYING_SLOT_VAR0;
    #####:    #####: 3255:         break;
        -:        -: 3256:
        -:        -: 3257:      case MESA_SHADER_FRAGMENT:
    #####:    #####: 3258:         var->data.location = (var->data.mode == ir_var_shader_out)
    #####:    #####: 3259:            ? (qual_location + FRAG_RESULT_DATA0)
    #####:    #####: 3260:            : (qual_location + VARYING_SLOT_VAR0);
    #####:    #####: 3261:         break;
        -:        -: 3262:      case MESA_SHADER_COMPUTE:
    #####:    #####: 3263:         assert(!"Unexpected shader type");
        -:        -: 3264:         break;
        -:        -: 3265:      }
        -:        -: 3266:
        -:        -: 3267:      /* Check if index was set for the uniform instead of the function */
    #####:    #####: 3268:      if (qual->flags.q.explicit_index && qual->is_subroutine_decl()) {
        -:        -: 3269:         _mesa_glsl_error(loc, state, "an index qualifier can only be "
    #####:    #####: 3270:                          "used with subroutine functions");
    #####:    #####: 3271:         return;
        -:        -: 3272:      }
        -:        -: 3273:
        -:        -: 3274:      unsigned qual_index;
    #####:    #####: 3275:      if (qual->flags.q.explicit_index &&
    #####:    #####: 3276:          process_qualifier_constant(state, loc, "index", qual->index,
        -:        -: 3277:                                     &qual_index)) {
        -:        -: 3278:         /* From the GLSL 4.30 specification, section 4.4.2 (Output
        -:        -: 3279:          * Layout Qualifiers):
        -:        -: 3280:          *
        -:        -: 3281:          * "It is also a compile-time error if a fragment shader
        -:        -: 3282:          *  sets a layout index to less than 0 or greater than 1."
        -:        -: 3283:          *
        -:        -: 3284:          * Older specifications don't mandate a behavior; we take
        -:        -: 3285:          * this as a clarification and always generate the error.
        -:        -: 3286:          */
    #####:    #####: 3287:         if (qual_index > 1) {
        -:        -: 3288:            _mesa_glsl_error(loc, state,
    #####:    #####: 3289:                             "explicit index may only be 0 or 1");
        -:        -: 3290:         } else {
    #####:    #####: 3291:            var->data.explicit_index = true;
    #####:    #####: 3292:            var->data.index = qual_index;
        -:        -: 3293:         }
        -:        -: 3294:      }
        -:        -: 3295:   }
        -:        -: 3296:}
        -:        -: 3297:
        -:        -: 3298:static void
       10:       10: 3299:apply_image_qualifier_to_variable(const struct ast_type_qualifier *qual,
        -:        -: 3300:                                  ir_variable *var,
        -:        -: 3301:                                  struct _mesa_glsl_parse_state *state,
        -:        -: 3302:                                  YYLTYPE *loc)
        -:        -: 3303:{
       10:       10: 3304:   const glsl_type *base_type = var->type->without_array();
        -:        -: 3305:
       10:       10: 3306:   if (!base_type->is_image()) {
       10:       10: 3307:      if (qual->flags.q.read_only ||
       10:       10: 3308:          qual->flags.q.write_only ||
       10:       10: 3309:          qual->flags.q.coherent ||
       10:       10: 3310:          qual->flags.q._volatile ||
       10:       10: 3311:          qual->flags.q.restrict_flag ||
        -:        -: 3312:          qual->flags.q.explicit_image_format) {
        -:        -: 3313:         _mesa_glsl_error(loc, state, "memory qualifiers may only be applied "
    #####:    #####: 3314:                          "to images");
        -:        -: 3315:      }
       10:       10: 3316:      return;
        -:        -: 3317:   }
        -:        -: 3318:
    #####:    #####: 3319:   if (var->data.mode != ir_var_uniform &&
    #####:    #####: 3320:       var->data.mode != ir_var_function_in) {
        -:        -: 3321:      _mesa_glsl_error(loc, state, "image variables may only be declared as "
        -:        -: 3322:                       "function parameters or uniform-qualified "
    #####:    #####: 3323:                       "global variables");
        -:        -: 3324:   }
        -:        -: 3325:
    #####:    #####: 3326:   var->data.image_read_only |= qual->flags.q.read_only;
    #####:    #####: 3327:   var->data.image_write_only |= qual->flags.q.write_only;
    #####:    #####: 3328:   var->data.image_coherent |= qual->flags.q.coherent;
    #####:    #####: 3329:   var->data.image_volatile |= qual->flags.q._volatile;
    #####:    #####: 3330:   var->data.image_restrict |= qual->flags.q.restrict_flag;
    #####:    #####: 3331:   var->data.read_only = true;
        -:        -: 3332:
    #####:    #####: 3333:   if (qual->flags.q.explicit_image_format) {
    #####:    #####: 3334:      if (var->data.mode == ir_var_function_in) {
        -:        -: 3335:         _mesa_glsl_error(loc, state, "format qualifiers cannot be used on "
    #####:    #####: 3336:                          "image function parameters");
        -:        -: 3337:      }
        -:        -: 3338:
    #####:    #####: 3339:      if (qual->image_base_type != base_type->sampled_type) {
        -:        -: 3340:         _mesa_glsl_error(loc, state, "format qualifier doesn't match the base "
    #####:    #####: 3341:                          "data type of the image");
        -:        -: 3342:      }
        -:        -: 3343:
    #####:    #####: 3344:      var->data.image_format = qual->image_format;
        -:        -: 3345:   } else {
    #####:    #####: 3346:      if (var->data.mode == ir_var_uniform) {
    #####:    #####: 3347:         if (state->es_shader) {
        -:        -: 3348:            _mesa_glsl_error(loc, state, "all image uniforms must have a "
    #####:    #####: 3349:                             "format layout qualifier");
    #####:    #####: 3350:         } else if (!qual->flags.q.write_only) {
        -:        -: 3351:            _mesa_glsl_error(loc, state, "image uniforms not qualified with "
    #####:    #####: 3352:                             "`writeonly' must have a format layout qualifier");
        -:        -: 3353:         }
        -:        -: 3354:      }
    #####:    #####: 3355:      var->data.image_format = GL_NONE;
        -:        -: 3356:   }
        -:        -: 3357:
        -:        -: 3358:   /* From page 70 of the GLSL ES 3.1 specification:
        -:        -: 3359:    *
        -:        -: 3360:    * "Except for image variables qualified with the format qualifiers r32f,
        -:        -: 3361:    *  r32i, and r32ui, image variables must specify either memory qualifier
        -:        -: 3362:    *  readonly or the memory qualifier writeonly."
        -:        -: 3363:    */
    #####:    #####: 3364:   if (state->es_shader &&
    #####:    #####: 3365:       var->data.image_format != GL_R32F &&
    #####:    #####: 3366:       var->data.image_format != GL_R32I &&
    #####:    #####: 3367:       var->data.image_format != GL_R32UI &&
    #####:    #####: 3368:       !var->data.image_read_only &&
    #####:    #####: 3369:       !var->data.image_write_only) {
        -:        -: 3370:      _mesa_glsl_error(loc, state, "image variables of format other than r32f, "
        -:        -: 3371:                       "r32i or r32ui must be qualified `readonly' or "
    #####:    #####: 3372:                       "`writeonly'");
        -:        -: 3373:   }
        -:        -: 3374:}
        -:        -: 3375:
        -:        -: 3376:static inline const char*
    #####:    #####: 3377:get_layout_qualifier_string(bool origin_upper_left, bool pixel_center_integer)
        -:        -: 3378:{
    #####:    #####: 3379:   if (origin_upper_left && pixel_center_integer)
    #####:    #####: 3380:      return "origin_upper_left, pixel_center_integer";
    #####:    #####: 3381:   else if (origin_upper_left)
    #####:    #####: 3382:      return "origin_upper_left";
    #####:    #####: 3383:   else if (pixel_center_integer)
    #####:    #####: 3384:      return "pixel_center_integer";
        -:        -: 3385:   else
    #####:    #####: 3386:      return " ";
        -:        -: 3387:}
        -:        -: 3388:
        -:        -: 3389:static inline bool
    #####:    #####: 3390:is_conflicting_fragcoord_redeclaration(struct _mesa_glsl_parse_state *state,
        -:        -: 3391:                                       const struct ast_type_qualifier *qual)
        -:        -: 3392:{
        -:        -: 3393:   /* If gl_FragCoord was previously declared, and the qualifiers were
        -:        -: 3394:    * different in any way, return true.
        -:        -: 3395:    */
    #####:    #####: 3396:   if (state->fs_redeclares_gl_fragcoord) {
    #####:    #####: 3397:      return (state->fs_pixel_center_integer != qual->flags.q.pixel_center_integer
    #####:    #####: 3398:         || state->fs_origin_upper_left != qual->flags.q.origin_upper_left);
        -:        -: 3399:   }
        -:        -: 3400:
    #####:    #####: 3401:   return false;
        -:        -: 3402:}
        -:        -: 3403:
        -:        -: 3404:static inline void
        3:        3: 3405:validate_array_dimensions(const glsl_type *t,
        -:        -: 3406:                          struct _mesa_glsl_parse_state *state,
        -:        -: 3407:                          YYLTYPE *loc) {
        3:        3: 3408:   if (t->is_array()) {
        1:        1: 3409:      t = t->fields.array;
        1:        1: 3410:      while (t->is_array()) {
    #####:    #####: 3411:         if (t->is_unsized_array()) {
        -:        -: 3412:            _mesa_glsl_error(loc, state,
        -:        -: 3413:                             "only the outermost array dimension can "
        -:        -: 3414:                             "be unsized",
    #####:    #####: 3415:                             t->name);
    #####:    #####: 3416:            break;
        -:        -: 3417:         }
    #####:    #####: 3418:         t = t->fields.array;
        -:        -: 3419:      }
        -:        -: 3420:   }
        3:        3: 3421:}
        -:        -: 3422:
        -:        -: 3423:static void
        8:        8: 3424:apply_layout_qualifier_to_variable(const struct ast_type_qualifier *qual,
        -:        -: 3425:                                   ir_variable *var,
        -:        -: 3426:                                   struct _mesa_glsl_parse_state *state,
        -:        -: 3427:                                   YYLTYPE *loc)
        -:        -: 3428:{
        8:        8: 3429:   if (var->name != NULL && strcmp(var->name, "gl_FragCoord") == 0) {
        -:        -: 3430:
        -:        -: 3431:      /* Section 4.3.8.1, page 39 of GLSL 1.50 spec says:
        -:        -: 3432:       *
        -:        -: 3433:       *    "Within any shader, the first redeclarations of gl_FragCoord
        -:        -: 3434:       *     must appear before any use of gl_FragCoord."
        -:        -: 3435:       *
        -:        -: 3436:       * Generate a compiler error if above condition is not met by the
        -:        -: 3437:       * fragment shader.
        -:        -: 3438:       */
    #####:    #####: 3439:      ir_variable *earlier = state->symbols->get_variable("gl_FragCoord");
    #####:    #####: 3440:      if (earlier != NULL &&
    #####:    #####: 3441:          earlier->data.used &&
    #####:    #####: 3442:          !state->fs_redeclares_gl_fragcoord) {
        -:        -: 3443:         _mesa_glsl_error(loc, state,
        -:        -: 3444:                          "gl_FragCoord used before its first redeclaration "
    #####:    #####: 3445:                          "in fragment shader");
        -:        -: 3446:      }
        -:        -: 3447:
        -:        -: 3448:      /* Make sure all gl_FragCoord redeclarations specify the same layout
        -:        -: 3449:       * qualifiers.
        -:        -: 3450:       */
    #####:    #####: 3451:      if (is_conflicting_fragcoord_redeclaration(state, qual)) {
        -:        -: 3452:         const char *const qual_string =
    #####:    #####: 3453:            get_layout_qualifier_string(qual->flags.q.origin_upper_left,
    #####:    #####: 3454:                                        qual->flags.q.pixel_center_integer);
        -:        -: 3455:
        -:        -: 3456:         const char *const state_string =
    #####:    #####: 3457:            get_layout_qualifier_string(state->fs_origin_upper_left,
    #####:    #####: 3458:                                        state->fs_pixel_center_integer);
        -:        -: 3459:
        -:        -: 3460:         _mesa_glsl_error(loc, state,
        -:        -: 3461:                          "gl_FragCoord redeclared with different layout "
        -:        -: 3462:                          "qualifiers (%s) and (%s) ",
        -:        -: 3463:                          state_string,
    #####:    #####: 3464:                          qual_string);
        -:        -: 3465:      }
    #####:    #####: 3466:      state->fs_origin_upper_left = qual->flags.q.origin_upper_left;
    #####:    #####: 3467:      state->fs_pixel_center_integer = qual->flags.q.pixel_center_integer;
        -:        -: 3468:      state->fs_redeclares_gl_fragcoord_with_no_layout_qualifiers =
    #####:    #####: 3469:         !qual->flags.q.origin_upper_left && !qual->flags.q.pixel_center_integer;
        -:        -: 3470:      state->fs_redeclares_gl_fragcoord =
    #####:    #####: 3471:         state->fs_origin_upper_left ||
    #####:    #####: 3472:         state->fs_pixel_center_integer ||
    #####:    #####: 3473:         state->fs_redeclares_gl_fragcoord_with_no_layout_qualifiers;
        -:        -: 3474:   }
        -:        -: 3475:
        8:        8: 3476:   var->data.pixel_center_integer = qual->flags.q.pixel_center_integer;
        8:        8: 3477:   var->data.origin_upper_left = qual->flags.q.origin_upper_left;
        8:        8: 3478:   if ((qual->flags.q.origin_upper_left || qual->flags.q.pixel_center_integer)
    #####:    #####: 3479:       && (strcmp(var->name, "gl_FragCoord") != 0)) {
        -:        -: 3480:      const char *const qual_string = (qual->flags.q.origin_upper_left)
    #####:    #####: 3481:         ? "origin_upper_left" : "pixel_center_integer";
        -:        -: 3482:
        -:        -: 3483:      _mesa_glsl_error(loc, state,
        -:        -: 3484:                       "layout qualifier `%s' can only be applied to "
        -:        -: 3485:                       "fragment shader input `gl_FragCoord'",
    #####:    #####: 3486:                       qual_string);
        -:        -: 3487:   }
        -:        -: 3488:
        8:        8: 3489:   if (qual->flags.q.explicit_location) {
    #####:    #####: 3490:      apply_explicit_location(qual, var, state, loc);
        -:        -: 3491:
    #####:    #####: 3492:      if (qual->flags.q.explicit_component) {
        -:        -: 3493:         unsigned qual_component;
    #####:    #####: 3494:         if (process_qualifier_constant(state, loc, "component",
    #####:    #####: 3495:                                        qual->component, &qual_component)) {
    #####:    #####: 3496:            const glsl_type *type = var->type->without_array();
    #####:    #####: 3497:            unsigned components = type->component_slots();
        -:        -: 3498:
    #####:    #####: 3499:            if (type->is_matrix() || type->is_record()) {
        -:        -: 3500:               _mesa_glsl_error(loc, state, "component layout qualifier "
        -:        -: 3501:                                "cannot be applied to a matrix, a structure, "
        -:        -: 3502:                                "a block, or an array containing any of "
    #####:    #####: 3503:                                "these.");
    #####:    #####: 3504:            } else if (qual_component != 0 &&
    #####:    #####: 3505:                (qual_component + components - 1) > 3) {
    #####:    #####: 3506:               _mesa_glsl_error(loc, state, "component overflow (%u > 3)",
    #####:    #####: 3507:                                (qual_component + components - 1));
    #####:    #####: 3508:            } else if (qual_component == 1 && type->is_64bit()) {
        -:        -: 3509:               /* We don't bother checking for 3 as it should be caught by the
        -:        -: 3510:                * overflow check above.
        -:        -: 3511:                */
        -:        -: 3512:               _mesa_glsl_error(loc, state, "doubles cannot begin at "
    #####:    #####: 3513:                                "component 1 or 3");
        -:        -: 3514:            } else {
    #####:    #####: 3515:               var->data.explicit_component = true;
    #####:    #####: 3516:               var->data.location_frac = qual_component;
        -:        -: 3517:            }
        -:        -: 3518:         }
        -:        -: 3519:      }
        8:        8: 3520:   } else if (qual->flags.q.explicit_index) {
    #####:    #####: 3521:      if (!qual->subroutine_list)
        -:        -: 3522:         _mesa_glsl_error(loc, state,
    #####:    #####: 3523:                          "explicit index requires explicit location");
        8:        8: 3524:   } else if (qual->flags.q.explicit_component) {
        -:        -: 3525:      _mesa_glsl_error(loc, state,
    #####:    #####: 3526:                       "explicit component requires explicit location");
        -:        -: 3527:   }
        -:        -: 3528:
        8:        8: 3529:   if (qual->flags.q.explicit_binding) {
    #####:    #####: 3530:      apply_explicit_binding(state, loc, var, var->type, qual);
        -:        -: 3531:   }
        -:        -: 3532:
        8:        8: 3533:   if (state->stage == MESA_SHADER_GEOMETRY &&
    #####:    #####: 3534:       qual->flags.q.out && qual->flags.q.stream) {
        -:        -: 3535:      unsigned qual_stream;
    #####:    #####: 3536:      if (process_qualifier_constant(state, loc, "stream", qual->stream,
    #####:    #####: 3537:                                     &qual_stream) &&
    #####:    #####: 3538:          validate_stream_qualifier(loc, state, qual_stream)) {
    #####:    #####: 3539:         var->data.stream = qual_stream;
        -:        -: 3540:      }
        -:        -: 3541:   }
        -:        -: 3542:
        8:        8: 3543:   if (qual->flags.q.out && qual->flags.q.xfb_buffer) {
        -:        -: 3544:      unsigned qual_xfb_buffer;
    #####:    #####: 3545:      if (process_qualifier_constant(state, loc, "xfb_buffer",
    #####:    #####: 3546:                                     qual->xfb_buffer, &qual_xfb_buffer) &&
    #####:    #####: 3547:          validate_xfb_buffer_qualifier(loc, state, qual_xfb_buffer)) {
    #####:    #####: 3548:         var->data.xfb_buffer = qual_xfb_buffer;
    #####:    #####: 3549:         if (qual->flags.q.explicit_xfb_buffer)
    #####:    #####: 3550:            var->data.explicit_xfb_buffer = true;
        -:        -: 3551:      }
        -:        -: 3552:   }
        -:        -: 3553:
        8:        8: 3554:   if (qual->flags.q.explicit_xfb_offset) {
        -:        -: 3555:      unsigned qual_xfb_offset;
    #####:    #####: 3556:      unsigned component_size = var->type->contains_double() ? 8 : 4;
        -:        -: 3557:
    #####:    #####: 3558:      if (process_qualifier_constant(state, loc, "xfb_offset",
    #####:    #####: 3559:                                     qual->offset, &qual_xfb_offset) &&
    #####:    #####: 3560:          validate_xfb_offset_qualifier(loc, state, (int) qual_xfb_offset,
        -:        -: 3561:                                        var->type, component_size)) {
    #####:    #####: 3562:         var->data.offset = qual_xfb_offset;
    #####:    #####: 3563:         var->data.explicit_xfb_offset = true;
        -:        -: 3564:      }
        -:        -: 3565:   }
        -:        -: 3566:
        8:        8: 3567:   if (qual->flags.q.explicit_xfb_stride) {
        -:        -: 3568:      unsigned qual_xfb_stride;
    #####:    #####: 3569:      if (process_qualifier_constant(state, loc, "xfb_stride",
    #####:    #####: 3570:                                     qual->xfb_stride, &qual_xfb_stride)) {
    #####:    #####: 3571:         var->data.xfb_stride = qual_xfb_stride;
    #####:    #####: 3572:         var->data.explicit_xfb_stride = true;
        -:        -: 3573:      }
        -:        -: 3574:   }
        -:        -: 3575:
        8:        8: 3576:   if (var->type->contains_atomic()) {
    #####:    #####: 3577:      if (var->data.mode == ir_var_uniform) {
    #####:    #####: 3578:         if (var->data.explicit_binding) {
        -:        -: 3579:            unsigned *offset =
    #####:    #####: 3580:               &state->atomic_counter_offsets[var->data.binding];
        -:        -: 3581:
    #####:    #####: 3582:            if (*offset % ATOMIC_COUNTER_SIZE)
        -:        -: 3583:               _mesa_glsl_error(loc, state,
    #####:    #####: 3584:                                "misaligned atomic counter offset");
        -:        -: 3585:
    #####:    #####: 3586:            var->data.offset = *offset;
    #####:    #####: 3587:            *offset += var->type->atomic_size();
        -:        -: 3588:
        -:        -: 3589:         } else {
        -:        -: 3590:            _mesa_glsl_error(loc, state,
    #####:    #####: 3591:                             "atomic counters require explicit binding point");
        -:        -: 3592:         }
    #####:    #####: 3593:      } else if (var->data.mode != ir_var_function_in) {
        -:        -: 3594:         _mesa_glsl_error(loc, state, "atomic counters may only be declared as "
        -:        -: 3595:                          "function parameters or uniform-qualified "
    #####:    #####: 3596:                          "global variables");
        -:        -: 3597:      }
        -:        -: 3598:   }
        -:        -: 3599:
        8:        8: 3600:   if (var->type->contains_sampler()) {
    #####:    #####: 3601:      if (var->data.mode != ir_var_uniform &&
    #####:    #####: 3602:          var->data.mode != ir_var_function_in) {
        -:        -: 3603:         _mesa_glsl_error(loc, state, "sampler variables may only be declared "
        -:        -: 3604:                          "as function parameters or uniform-qualified "
    #####:    #####: 3605:                          "global variables");
        -:        -: 3606:      }
        -:        -: 3607:   }
        -:        -: 3608:
        -:        -: 3609:   /* Is the 'layout' keyword used with parameters that allow relaxed checking.
        -:        -: 3610:    * Many implementations of GL_ARB_fragment_coord_conventions_enable and some
        -:        -: 3611:    * implementations (only Mesa?) GL_ARB_explicit_attrib_location_enable
        -:        -: 3612:    * allowed the layout qualifier to be used with 'varying' and 'attribute'.
        -:        -: 3613:    * These extensions and all following extensions that add the 'layout'
        -:        -: 3614:    * keyword have been modified to require the use of 'in' or 'out'.
        -:        -: 3615:    *
        -:        -: 3616:    * The following extension do not allow the deprecated keywords:
        -:        -: 3617:    *
        -:        -: 3618:    *    GL_AMD_conservative_depth
        -:        -: 3619:    *    GL_ARB_conservative_depth
        -:        -: 3620:    *    GL_ARB_gpu_shader5
        -:        -: 3621:    *    GL_ARB_separate_shader_objects
        -:        -: 3622:    *    GL_ARB_tessellation_shader
        -:        -: 3623:    *    GL_ARB_transform_feedback3
        -:        -: 3624:    *    GL_ARB_uniform_buffer_object
        -:        -: 3625:    *
        -:        -: 3626:    * It is unknown whether GL_EXT_shader_image_load_store or GL_NV_gpu_shader5
        -:        -: 3627:    * allow layout with the deprecated keywords.
        -:        -: 3628:    */
        -:        -: 3629:   const bool relaxed_layout_qualifier_checking =
        8:        8: 3630:      state->ARB_fragment_coord_conventions_enable;
        -:        -: 3631:
        -:        -: 3632:   const bool uses_deprecated_qualifier = qual->flags.q.attribute
        8:        8: 3633:      || qual->flags.q.varying;
        8:        8: 3634:   if (qual->has_layout() && uses_deprecated_qualifier) {
    #####:    #####: 3635:      if (relaxed_layout_qualifier_checking) {
        -:        -: 3636:         _mesa_glsl_warning(loc, state,
        -:        -: 3637:                            "`layout' qualifier may not be used with "
    #####:    #####: 3638:                            "`attribute' or `varying'");
        -:        -: 3639:      } else {
        -:        -: 3640:         _mesa_glsl_error(loc, state,
        -:        -: 3641:                          "`layout' qualifier may not be used with "
    #####:    #####: 3642:                          "`attribute' or `varying'");
        -:        -: 3643:      }
        -:        -: 3644:   }
        -:        -: 3645:
        -:        -: 3646:   /* Layout qualifiers for gl_FragDepth, which are enabled by extension
        -:        -: 3647:    * AMD_conservative_depth.
        -:        -: 3648:    */
        8:        8: 3649:   if (qual->flags.q.depth_type
    #####:    #####: 3650:       && !state->is_version(420, 0)
    #####:    #####: 3651:       && !state->AMD_conservative_depth_enable
        8:        8: 3652:       && !state->ARB_conservative_depth_enable) {
        -:        -: 3653:       _mesa_glsl_error(loc, state,
        -:        -: 3654:                        "extension GL_AMD_conservative_depth or "
        -:        -: 3655:                        "GL_ARB_conservative_depth must be enabled "
    #####:    #####: 3656:                        "to use depth layout qualifiers");
        8:        8: 3657:   } else if (qual->flags.q.depth_type
    #####:    #####: 3658:              && strcmp(var->name, "gl_FragDepth") != 0) {
        -:        -: 3659:       _mesa_glsl_error(loc, state,
        -:        -: 3660:                        "depth layout qualifiers can be applied only to "
    #####:    #####: 3661:                        "gl_FragDepth");
        -:        -: 3662:   }
        -:        -: 3663:
        8:        8: 3664:   switch (qual->depth_type) {
        -:        -: 3665:   case ast_depth_any:
    #####:    #####: 3666:      var->data.depth_layout = ir_depth_layout_any;
    #####:    #####: 3667:      break;
        -:        -: 3668:   case ast_depth_greater:
    #####:    #####: 3669:      var->data.depth_layout = ir_depth_layout_greater;
    #####:    #####: 3670:      break;
        -:        -: 3671:   case ast_depth_less:
    #####:    #####: 3672:      var->data.depth_layout = ir_depth_layout_less;
    #####:    #####: 3673:      break;
        -:        -: 3674:   case ast_depth_unchanged:
    #####:    #####: 3675:      var->data.depth_layout = ir_depth_layout_unchanged;
    #####:    #####: 3676:      break;
        -:        -: 3677:   default:
        8:        8: 3678:      var->data.depth_layout = ir_depth_layout_none;
        8:        8: 3679:      break;
        -:        -: 3680:   }
        -:        -: 3681:
        8:        8: 3682:   if (qual->flags.q.std140 ||
        8:        8: 3683:       qual->flags.q.std430 ||
        8:        8: 3684:       qual->flags.q.packed ||
        -:        -: 3685:       qual->flags.q.shared) {
        -:        -: 3686:      _mesa_glsl_error(loc, state,
        -:        -: 3687:                       "uniform and shader storage block layout qualifiers "
        -:        -: 3688:                       "std140, std430, packed, and shared can only be "
        -:        -: 3689:                       "applied to uniform or shader storage blocks, not "
    #####:    #####: 3690:                       "members");
        -:        -: 3691:   }
        -:        -: 3692:
        8:        8: 3693:   if (qual->flags.q.row_major || qual->flags.q.column_major) {
    #####:    #####: 3694:      validate_matrix_layout_for_type(state, loc, var->type, var);
        -:        -: 3695:   }
        -:        -: 3696:
        -:        -: 3697:   /* From section 4.4.1.3 of the GLSL 4.50 specification (Fragment Shader
        -:        -: 3698:    * Inputs):
        -:        -: 3699:    *
        -:        -: 3700:    *  "Fragment shaders also allow the following layout qualifier on in only
        -:        -: 3701:    *   (not with variable declarations)
        -:        -: 3702:    *     layout-qualifier-id
        -:        -: 3703:    *        early_fragment_tests
        -:        -: 3704:    *   [...]"
        -:        -: 3705:    */
        8:        8: 3706:   if (qual->flags.q.early_fragment_tests) {
        -:        -: 3707:      _mesa_glsl_error(loc, state, "early_fragment_tests layout qualifier only "
    #####:    #####: 3708:                       "valid in fragment shader input layout declaration.");
        -:        -: 3709:   }
        -:        -: 3710:
        8:        8: 3711:   if (qual->flags.q.inner_coverage) {
        -:        -: 3712:      _mesa_glsl_error(loc, state, "inner_coverage layout qualifier only "
    #####:    #####: 3713:                       "valid in fragment shader input layout declaration.");
        -:        -: 3714:   }
        -:        -: 3715:
        8:        8: 3716:   if (qual->flags.q.post_depth_coverage) {
        -:        -: 3717:      _mesa_glsl_error(loc, state, "post_depth_coverage layout qualifier only "
    #####:    #####: 3718:                       "valid in fragment shader input layout declaration.");
        -:        -: 3719:   }
        8:        8: 3720:}
        -:        -: 3721:
        -:        -: 3722:static void
       10:       10: 3723:apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
        -:        -: 3724:                                 ir_variable *var,
        -:        -: 3725:                                 struct _mesa_glsl_parse_state *state,
        -:        -: 3726:                                 YYLTYPE *loc,
        -:        -: 3727:                                 bool is_parameter)
        -:        -: 3728:{
        -:        -: 3729:   STATIC_ASSERT(sizeof(qual->flags.q) <= sizeof(qual->flags.i));
        -:        -: 3730:
       10:       10: 3731:   if (qual->flags.q.invariant) {
    #####:    #####: 3732:      if (var->data.used) {
    #####:    #####: 3733:         _mesa_glsl_error(loc, state,
        -:        -: 3734:                          "variable `%s' may not be redeclared "
        -:        -: 3735:                          "`invariant' after being used",
    #####:    #####: 3736:                          var->name);
        -:        -: 3737:      } else {
    #####:    #####: 3738:         var->data.invariant = 1;
        -:        -: 3739:      }
        -:        -: 3740:   }
        -:        -: 3741:
       10:       10: 3742:   if (qual->flags.q.precise) {
    #####:    #####: 3743:      if (var->data.used) {
    #####:    #####: 3744:         _mesa_glsl_error(loc, state,
        -:        -: 3745:                          "variable `%s' may not be redeclared "
        -:        -: 3746:                          "`precise' after being used",
    #####:    #####: 3747:                          var->name);
        -:        -: 3748:      } else {
    #####:    #####: 3749:         var->data.precise = 1;
        -:        -: 3750:      }
        -:        -: 3751:   }
        -:        -: 3752:
       10:       10: 3753:   if (qual->is_subroutine_decl() && !qual->flags.q.uniform) {
        -:        -: 3754:      _mesa_glsl_error(loc, state,
        -:        -: 3755:                       "`subroutine' may only be applied to uniforms, "
    #####:    #####: 3756:                       "subroutine type declarations, or function definitions");
        -:        -: 3757:   }
        -:        -: 3758:
       10:       10: 3759:   if (qual->flags.q.constant || qual->flags.q.attribute
        9:        9: 3760:       || qual->flags.q.uniform
        7:        7: 3761:       || (qual->flags.q.varying && (state->stage == MESA_SHADER_FRAGMENT)))
        3:        3: 3762:      var->data.read_only = 1;
        -:        -: 3763:
       10:       10: 3764:   if (qual->flags.q.centroid)
    #####:    #####: 3765:      var->data.centroid = 1;
        -:        -: 3766:
       10:       10: 3767:   if (qual->flags.q.sample)
    #####:    #####: 3768:      var->data.sample = 1;
        -:        -: 3769:
        -:        -: 3770:   /* Precision qualifiers do not hold any meaning in Desktop GLSL */
       10:       10: 3771:   if (state->es_shader) {
        -:        -: 3772:      var->data.precision =
    #####:    #####: 3773:         select_gles_precision(qual->precision, var->type, state, loc);
        -:        -: 3774:   }
        -:        -: 3775:
       10:       10: 3776:   if (qual->flags.q.patch)
    #####:    #####: 3777:      var->data.patch = 1;
        -:        -: 3778:
       10:       10: 3779:   if (qual->flags.q.attribute && state->stage != MESA_SHADER_VERTEX) {
    #####:    #####: 3780:      var->type = glsl_type::error_type;
    #####:    #####: 3781:      _mesa_glsl_error(loc, state,
        -:        -: 3782:                       "`attribute' variables may not be declared in the "
        -:        -: 3783:                       "%s shader",
    #####:    #####: 3784:                       _mesa_shader_stage_to_string(state->stage));
        -:        -: 3785:   }
        -:        -: 3786:
        -:        -: 3787:   /* Disallow layout qualifiers which may only appear on layout declarations. */
       10:       10: 3788:   if (qual->flags.q.prim_type) {
        -:        -: 3789:      _mesa_glsl_error(loc, state,
        -:        -: 3790:                       "Primitive type may only be specified on GS input or output "
    #####:    #####: 3791:                       "layout declaration, not on variables.");
        -:        -: 3792:   }
        -:        -: 3793:
        -:        -: 3794:   /* Section 6.1.1 (Function Calling Conventions) of the GLSL 1.10 spec says:
        -:        -: 3795:    *
        -:        -: 3796:    *     "However, the const qualifier cannot be used with out or inout."
        -:        -: 3797:    *
        -:        -: 3798:    * The same section of the GLSL 4.40 spec further clarifies this saying:
        -:        -: 3799:    *
        -:        -: 3800:    *     "The const qualifier cannot be used with out or inout, or a
        -:        -: 3801:    *     compile-time error results."
        -:        -: 3802:    */
       10:       10: 3803:   if (is_parameter && qual->flags.q.constant && qual->flags.q.out) {
        -:        -: 3804:      _mesa_glsl_error(loc, state,
        -:        -: 3805:                       "`const' may not be applied to `out' or `inout' "
    #####:    #####: 3806:                       "function parameters");
        -:        -: 3807:   }
        -:        -: 3808:
        -:        -: 3809:   /* If there is no qualifier that changes the mode of the variable, leave
        -:        -: 3810:    * the setting alone.
        -:        -: 3811:    */
       10:       10: 3812:   assert(var->data.mode != ir_var_temporary);
       10:       10: 3813:   if (qual->flags.q.in && qual->flags.q.out)
    #####:    #####: 3814:      var->data.mode = is_parameter ? ir_var_function_inout : ir_var_shader_out;
       10:       10: 3815:   else if (qual->flags.q.in)
    #####:    #####: 3816:      var->data.mode = is_parameter ? ir_var_function_in : ir_var_shader_in;
       10:       10: 3817:   else if (qual->flags.q.attribute
        9:        9: 3818:            || (qual->flags.q.varying && (state->stage == MESA_SHADER_FRAGMENT)))
        1:        1: 3819:      var->data.mode = ir_var_shader_in;
        9:        9: 3820:   else if (qual->flags.q.out)
    #####:    #####: 3821:      var->data.mode = is_parameter ? ir_var_function_out : ir_var_shader_out;
        9:        9: 3822:   else if (qual->flags.q.varying && (state->stage == MESA_SHADER_VERTEX))
    #####:    #####: 3823:      var->data.mode = ir_var_shader_out;
        9:        9: 3824:   else if (qual->flags.q.uniform)
        2:        2: 3825:      var->data.mode = ir_var_uniform;
        7:        7: 3826:   else if (qual->flags.q.buffer)
    #####:    #####: 3827:      var->data.mode = ir_var_shader_storage;
        7:        7: 3828:   else if (qual->flags.q.shared_storage)
    #####:    #####: 3829:      var->data.mode = ir_var_shader_shared;
        -:        -: 3830:
       19:       19: 3831:   var->data.fb_fetch_output = state->stage == MESA_SHADER_FRAGMENT &&
       10:       10: 3832:                               qual->flags.q.in && qual->flags.q.out;
        -:        -: 3833:
       10:       10: 3834:   if (!is_parameter && is_varying_var(var, state->stage)) {
        -:        -: 3835:      /* User-defined ins/outs are not permitted in compute shaders. */
    #####:    #####: 3836:      if (state->stage == MESA_SHADER_COMPUTE) {
        -:        -: 3837:         _mesa_glsl_error(loc, state,
        -:        -: 3838:                          "user-defined input and output variables are not "
    #####:    #####: 3839:                          "permitted in compute shaders");
        -:        -: 3840:      }
        -:        -: 3841:
        -:        -: 3842:      /* This variable is being used to link data between shader stages (in
        -:        -: 3843:       * pre-glsl-1.30 parlance, it's a "varying").  Check that it has a type
        -:        -: 3844:       * that is allowed for such purposes.
        -:        -: 3845:       *
        -:        -: 3846:       * From page 25 (page 31 of the PDF) of the GLSL 1.10 spec:
        -:        -: 3847:       *
        -:        -: 3848:       *     "The varying qualifier can be used only with the data types
        -:        -: 3849:       *     float, vec2, vec3, vec4, mat2, mat3, and mat4, or arrays of
        -:        -: 3850:       *     these."
        -:        -: 3851:       *
        -:        -: 3852:       * This was relaxed in GLSL version 1.30 and GLSL ES version 3.00.  From
        -:        -: 3853:       * page 31 (page 37 of the PDF) of the GLSL 1.30 spec:
        -:        -: 3854:       *
        -:        -: 3855:       *     "Fragment inputs can only be signed and unsigned integers and
        -:        -: 3856:       *     integer vectors, float, floating-point vectors, matrices, or
        -:        -: 3857:       *     arrays of these. Structures cannot be input.
        -:        -: 3858:       *
        -:        -: 3859:       * Similar text exists in the section on vertex shader outputs.
        -:        -: 3860:       *
        -:        -: 3861:       * Similar text exists in the GLSL ES 3.00 spec, except that the GLSL ES
        -:        -: 3862:       * 3.00 spec allows structs as well.  Varying structs are also allowed
        -:        -: 3863:       * in GLSL 1.50.
        -:        -: 3864:       */
    #####:    #####: 3865:      switch (var->type->get_scalar_type()->base_type) {
        -:        -: 3866:      case GLSL_TYPE_FLOAT:
        -:        -: 3867:         /* Ok in all GLSL versions */
    #####:    #####: 3868:         break;
        -:        -: 3869:      case GLSL_TYPE_UINT:
        -:        -: 3870:      case GLSL_TYPE_INT:
    #####:    #####: 3871:         if (state->is_version(130, 300))
    #####:    #####: 3872:            break;
    #####:    #####: 3873:         _mesa_glsl_error(loc, state,
        -:        -: 3874:                          "varying variables must be of base type float in %s",
    #####:    #####: 3875:                          state->get_version_string());
    #####:    #####: 3876:         break;
        -:        -: 3877:      case GLSL_TYPE_STRUCT:
    #####:    #####: 3878:         if (state->is_version(150, 300))
    #####:    #####: 3879:            break;
        -:        -: 3880:         _mesa_glsl_error(loc, state,
    #####:    #####: 3881:                          "varying variables may not be of type struct");
    #####:    #####: 3882:         break;
        -:        -: 3883:      case GLSL_TYPE_DOUBLE:
        -:        -: 3884:      case GLSL_TYPE_UINT64:
        -:        -: 3885:      case GLSL_TYPE_INT64:
    #####:    #####: 3886:         break;
        -:        -: 3887:      default:
    #####:    #####: 3888:         _mesa_glsl_error(loc, state, "illegal type for a varying variable");
    #####:    #####: 3889:         break;
        -:        -: 3890:      }
        -:        -: 3891:   }
        -:        -: 3892:
       10:       10: 3893:   if (state->all_invariant && (state->current_function == NULL)) {
    #####:    #####: 3894:      switch (state->stage) {
        -:        -: 3895:      case MESA_SHADER_VERTEX:
    #####:    #####: 3896:         if (var->data.mode == ir_var_shader_out)
    #####:    #####: 3897:            var->data.invariant = true;
    #####:    #####: 3898:         break;
        -:        -: 3899:      case MESA_SHADER_TESS_CTRL:
        -:        -: 3900:      case MESA_SHADER_TESS_EVAL:
        -:        -: 3901:      case MESA_SHADER_GEOMETRY:
    #####:    #####: 3902:         if ((var->data.mode == ir_var_shader_in)
    #####:    #####: 3903:             || (var->data.mode == ir_var_shader_out))
    #####:    #####: 3904:            var->data.invariant = true;
    #####:    #####: 3905:         break;
        -:        -: 3906:      case MESA_SHADER_FRAGMENT:
    #####:    #####: 3907:         if (var->data.mode == ir_var_shader_in)
    #####:    #####: 3908:            var->data.invariant = true;
    #####:    #####: 3909:         break;
        -:        -: 3910:      case MESA_SHADER_COMPUTE:
        -:        -: 3911:         /* Invariance isn't meaningful in compute shaders. */
    #####:    #####: 3912:         break;
        -:        -: 3913:      }
        -:        -: 3914:   }
        -:        -: 3915:
        -:        -: 3916:   var->data.interpolation =
       10:       10: 3917:      interpret_interpolation_qualifier(qual, var->type,
       10:       10: 3918:                                        (ir_variable_mode) var->data.mode,
       10:       10: 3919:                                        state, loc);
        -:        -: 3920:
        -:        -: 3921:   /* Does the declaration use the deprecated 'attribute' or 'varying'
        -:        -: 3922:    * keywords?
        -:        -: 3923:    */
        -:        -: 3924:   const bool uses_deprecated_qualifier = qual->flags.q.attribute
       10:       10: 3925:      || qual->flags.q.varying;
        -:        -: 3926:
        -:        -: 3927:
        -:        -: 3928:   /* Validate auxiliary storage qualifiers */
        -:        -: 3929:
        -:        -: 3930:   /* From section 4.3.4 of the GLSL 1.30 spec:
        -:        -: 3931:    *    "It is an error to use centroid in in a vertex shader."
        -:        -: 3932:    *
        -:        -: 3933:    * From section 4.3.4 of the GLSL ES 3.00 spec:
        -:        -: 3934:    *    "It is an error to use centroid in or interpolation qualifiers in
        -:        -: 3935:    *    a vertex shader input."
        -:        -: 3936:    */
        -:        -: 3937:
        -:        -: 3938:   /* Section 4.3.6 of the GLSL 1.30 specification states:
        -:        -: 3939:    * "It is an error to use centroid out in a fragment shader."
        -:        -: 3940:    *
        -:        -: 3941:    * The GL_ARB_shading_language_420pack extension specification states:
        -:        -: 3942:    * "It is an error to use auxiliary storage qualifiers or interpolation
        -:        -: 3943:    *  qualifiers on an output in a fragment shader."
        -:        -: 3944:    */
       10:       10: 3945:   if (qual->flags.q.sample && (!is_varying_var(var, state->stage) || uses_deprecated_qualifier)) {
        -:        -: 3946:      _mesa_glsl_error(loc, state,
        -:        -: 3947:                       "sample qualifier may only be used on `in` or `out` "
    #####:    #####: 3948:                       "variables between shader stages");
        -:        -: 3949:   }
       10:       10: 3950:   if (qual->flags.q.centroid && !is_varying_var(var, state->stage)) {
        -:        -: 3951:      _mesa_glsl_error(loc, state,
        -:        -: 3952:                       "centroid qualifier may only be used with `in', "
    #####:    #####: 3953:                       "`out' or `varying' variables between shader stages");
        -:        -: 3954:   }
        -:        -: 3955:
       10:       10: 3956:   if (qual->flags.q.shared_storage && state->stage != MESA_SHADER_COMPUTE) {
        -:        -: 3957:      _mesa_glsl_error(loc, state,
        -:        -: 3958:                       "the shared storage qualifiers can only be used with "
    #####:    #####: 3959:                       "compute shaders");
        -:        -: 3960:   }
        -:        -: 3961:
       10:       10: 3962:   apply_image_qualifier_to_variable(qual, var, state, loc);
       10:       10: 3963:}
        -:        -: 3964:
        -:        -: 3965:/**
        -:        -: 3966: * Get the variable that is being redeclared by this declaration or if it
        -:        -: 3967: * does not exist, the current declared variable.
        -:        -: 3968: *
        -:        -: 3969: * Semantic checks to verify the validity of the redeclaration are also
        -:        -: 3970: * performed.  If semantic checks fail, compilation error will be emitted via
        -:        -: 3971: * \c _mesa_glsl_error, but a non-\c NULL pointer will still be returned.
        -:        -: 3972: *
        -:        -: 3973: * \returns
        -:        -: 3974: * A pointer to an existing variable in the current scope if the declaration
        -:        -: 3975: * is a redeclaration, current variable otherwise. \c is_declared boolean
        -:        -: 3976: * will return \c true if the declaration is a redeclaration, \c false
        -:        -: 3977: * otherwise.
        -:        -: 3978: */
        -:        -: 3979:static ir_variable *
        8:        8: 3980:get_variable_being_redeclared(ir_variable *var, YYLTYPE loc,
        -:        -: 3981:                              struct _mesa_glsl_parse_state *state,
        -:        -: 3982:                              bool allow_all_redeclarations,
        -:        -: 3983:                              bool *is_redeclaration)
        -:        -: 3984:{
        -:        -: 3985:   /* Check if this declaration is actually a re-declaration, either to
        -:        -: 3986:    * resize an array or add qualifiers to an existing variable.
        -:        -: 3987:    *
        -:        -: 3988:    * This is allowed for variables in the current scope, or when at
        -:        -: 3989:    * global scope (for built-ins in the implicit outer scope).
        -:        -: 3990:    */
        8:        8: 3991:   ir_variable *earlier = state->symbols->get_variable(var->name);
       16:       16: 3992:   if (earlier == NULL ||
    #####:    #####: 3993:       (state->current_function != NULL &&
    #####:    #####: 3994:       !state->symbols->name_declared_this_scope(var->name))) {
        8:        8: 3995:      *is_redeclaration = false;
        8:        8: 3996:      return var;
        -:        -: 3997:   }
        -:        -: 3998:
    #####:    #####: 3999:   *is_redeclaration = true;
        -:        -: 4000:
        -:        -: 4001:   /* From page 24 (page 30 of the PDF) of the GLSL 1.50 spec,
        -:        -: 4002:    *
        -:        -: 4003:    * "It is legal to declare an array without a size and then
        -:        -: 4004:    *  later re-declare the same name as an array of the same
        -:        -: 4005:    *  type and specify a size."
        -:        -: 4006:    */
    #####:    #####: 4007:   if (earlier->type->is_unsized_array() && var->type->is_array()
    #####:    #####: 4008:       && (var->type->fields.array == earlier->type->fields.array)) {
        -:        -: 4009:      /* FINISHME: This doesn't match the qualifiers on the two
        -:        -: 4010:       * FINISHME: declarations.  It's not 100% clear whether this is
        -:        -: 4011:       * FINISHME: required or not.
        -:        -: 4012:       */
        -:        -: 4013:
    #####:    #####: 4014:      const int size = var->type->array_size();
    #####:    #####: 4015:      check_builtin_array_max_size(var->name, size, loc, state);
    #####:    #####: 4016:      if ((size > 0) && (size <= earlier->data.max_array_access)) {
    #####:    #####: 4017:         _mesa_glsl_error(& loc, state, "array size must be > %u due to "
        -:        -: 4018:                          "previous access",
    #####:    #####: 4019:                          earlier->data.max_array_access);
        -:        -: 4020:      }
        -:        -: 4021:
    #####:    #####: 4022:      earlier->type = var->type;
    #####:    #####: 4023:      delete var;
    #####:    #####: 4024:      var = NULL;
    #####:    #####: 4025:   } else if ((state->ARB_fragment_coord_conventions_enable ||
    #####:    #####: 4026:              state->is_version(150, 0))
    #####:    #####: 4027:              && strcmp(var->name, "gl_FragCoord") == 0
    #####:    #####: 4028:              && earlier->type == var->type
    #####:    #####: 4029:              && var->data.mode == ir_var_shader_in) {
        -:        -: 4030:      /* Allow redeclaration of gl_FragCoord for ARB_fcc layout
        -:        -: 4031:       * qualifiers.
        -:        -: 4032:       */
    #####:    #####: 4033:      earlier->data.origin_upper_left = var->data.origin_upper_left;
    #####:    #####: 4034:      earlier->data.pixel_center_integer = var->data.pixel_center_integer;
        -:        -: 4035:
        -:        -: 4036:      /* According to section 4.3.7 of the GLSL 1.30 spec,
        -:        -: 4037:       * the following built-in varaibles can be redeclared with an
        -:        -: 4038:       * interpolation qualifier:
        -:        -: 4039:       *    * gl_FrontColor
        -:        -: 4040:       *    * gl_BackColor
        -:        -: 4041:       *    * gl_FrontSecondaryColor
        -:        -: 4042:       *    * gl_BackSecondaryColor
        -:        -: 4043:       *    * gl_Color
        -:        -: 4044:       *    * gl_SecondaryColor
        -:        -: 4045:       */
    #####:    #####: 4046:   } else if (state->is_version(130, 0)
    #####:    #####: 4047:              && (strcmp(var->name, "gl_FrontColor") == 0
    #####:    #####: 4048:                  || strcmp(var->name, "gl_BackColor") == 0
    #####:    #####: 4049:                  || strcmp(var->name, "gl_FrontSecondaryColor") == 0
    #####:    #####: 4050:                  || strcmp(var->name, "gl_BackSecondaryColor") == 0
    #####:    #####: 4051:                  || strcmp(var->name, "gl_Color") == 0
    #####:    #####: 4052:                  || strcmp(var->name, "gl_SecondaryColor") == 0)
    #####:    #####: 4053:              && earlier->type == var->type
    #####:    #####: 4054:              && earlier->data.mode == var->data.mode) {
    #####:    #####: 4055:      earlier->data.interpolation = var->data.interpolation;
        -:        -: 4056:
        -:        -: 4057:      /* Layout qualifiers for gl_FragDepth. */
    #####:    #####: 4058:   } else if ((state->is_version(420, 0) ||
    #####:    #####: 4059:               state->AMD_conservative_depth_enable ||
    #####:    #####: 4060:               state->ARB_conservative_depth_enable)
    #####:    #####: 4061:              && strcmp(var->name, "gl_FragDepth") == 0
    #####:    #####: 4062:              && earlier->type == var->type
    #####:    #####: 4063:              && earlier->data.mode == var->data.mode) {
        -:        -: 4064:
        -:        -: 4065:      /** From the AMD_conservative_depth spec:
        -:        -: 4066:       *     Within any shader, the first redeclarations of gl_FragDepth
        -:        -: 4067:       *     must appear before any use of gl_FragDepth.
        -:        -: 4068:       */
    #####:    #####: 4069:      if (earlier->data.used) {
        -:        -: 4070:         _mesa_glsl_error(&loc, state,
        -:        -: 4071:                          "the first redeclaration of gl_FragDepth "
    #####:    #####: 4072:                          "must appear before any use of gl_FragDepth");
        -:        -: 4073:      }
        -:        -: 4074:
        -:        -: 4075:      /* Prevent inconsistent redeclaration of depth layout qualifier. */
    #####:    #####: 4076:      if (earlier->data.depth_layout != ir_depth_layout_none
    #####:    #####: 4077:          && earlier->data.depth_layout != var->data.depth_layout) {
    #####:    #####: 4078:            _mesa_glsl_error(&loc, state,
        -:        -: 4079:                             "gl_FragDepth: depth layout is declared here "
        -:        -: 4080:                             "as '%s, but it was previously declared as "
        -:        -: 4081:                             "'%s'",
    #####:    #####: 4082:                             depth_layout_string(var->data.depth_layout),
    #####:    #####: 4083:                             depth_layout_string(earlier->data.depth_layout));
        -:        -: 4084:      }
        -:        -: 4085:
    #####:    #####: 4086:      earlier->data.depth_layout = var->data.depth_layout;
        -:        -: 4087:
    #####:    #####: 4088:   } else if (state->has_framebuffer_fetch() &&
    #####:    #####: 4089:              strcmp(var->name, "gl_LastFragData") == 0 &&
    #####:    #####: 4090:              var->type == earlier->type &&
    #####:    #####: 4091:              var->data.mode == ir_var_auto) {
        -:        -: 4092:      /* According to the EXT_shader_framebuffer_fetch spec:
        -:        -: 4093:       *
        -:        -: 4094:       *   "By default, gl_LastFragData is declared with the mediump precision
        -:        -: 4095:       *    qualifier. This can be changed by redeclaring the corresponding
        -:        -: 4096:       *    variables with the desired precision qualifier."
        -:        -: 4097:       */
    #####:    #####: 4098:      earlier->data.precision = var->data.precision;
        -:        -: 4099:
    #####:    #####: 4100:   } else if (allow_all_redeclarations) {
    #####:    #####: 4101:      if (earlier->data.mode != var->data.mode) {
    #####:    #####: 4102:         _mesa_glsl_error(&loc, state,
        -:        -: 4103:                          "redeclaration of `%s' with incorrect qualifiers",
    #####:    #####: 4104:                          var->name);
    #####:    #####: 4105:      } else if (earlier->type != var->type) {
    #####:    #####: 4106:         _mesa_glsl_error(&loc, state,
        -:        -: 4107:                          "redeclaration of `%s' has incorrect type",
    #####:    #####: 4108:                          var->name);
        -:        -: 4109:      }
        -:        -: 4110:   } else {
    #####:    #####: 4111:      _mesa_glsl_error(&loc, state, "`%s' redeclared", var->name);
        -:        -: 4112:   }
        -:        -: 4113:
    #####:    #####: 4114:   return earlier;
        -:        -: 4115:}
        -:        -: 4116:
        -:        -: 4117:/**
        -:        -: 4118: * Generate the IR for an initializer in a variable declaration
        -:        -: 4119: */
        -:        -: 4120:ir_rvalue *
        5:        5: 4121:process_initializer(ir_variable *var, ast_declaration *decl,
        -:        -: 4122:                    ast_fully_specified_type *type,
        -:        -: 4123:                    exec_list *initializer_instructions,
        -:        -: 4124:                    struct _mesa_glsl_parse_state *state)
        -:        -: 4125:{
        5:        5: 4126:   ir_rvalue *result = NULL;
        -:        -: 4127:
        5:        5: 4128:   YYLTYPE initializer_loc = decl->initializer->get_location();
        -:        -: 4129:
        -:        -: 4130:   /* From page 24 (page 30 of the PDF) of the GLSL 1.10 spec:
        -:        -: 4131:    *
        -:        -: 4132:    *    "All uniform variables are read-only and are initialized either
        -:        -: 4133:    *    directly by an application via API commands, or indirectly by
        -:        -: 4134:    *    OpenGL."
        -:        -: 4135:    */
        5:        5: 4136:   if (var->data.mode == ir_var_uniform) {
    #####:    #####: 4137:      state->check_version(120, 0, &initializer_loc,
        -:        -: 4138:                           "cannot initialize uniform %s",
    #####:    #####: 4139:                           var->name);
        -:        -: 4140:   }
        -:        -: 4141:
        -:        -: 4142:   /* Section 4.3.7 "Buffer Variables" of the GLSL 4.30 spec:
        -:        -: 4143:    *
        -:        -: 4144:    *    "Buffer variables cannot have initializers."
        -:        -: 4145:    */
        5:        5: 4146:   if (var->data.mode == ir_var_shader_storage) {
    #####:    #####: 4147:      _mesa_glsl_error(&initializer_loc, state,
        -:        -: 4148:                       "cannot initialize buffer variable %s",
    #####:    #####: 4149:                       var->name);
        -:        -: 4150:   }
        -:        -: 4151:
        -:        -: 4152:   /* From section 4.1.7 of the GLSL 4.40 spec:
        -:        -: 4153:    *
        -:        -: 4154:    *    "Opaque variables [...] are initialized only through the
        -:        -: 4155:    *     OpenGL API; they cannot be declared with an initializer in a
        -:        -: 4156:    *     shader."
        -:        -: 4157:    */
        5:        5: 4158:   if (var->type->contains_opaque()) {
    #####:    #####: 4159:      _mesa_glsl_error(&initializer_loc, state,
        -:        -: 4160:                       "cannot initialize opaque variable %s",
    #####:    #####: 4161:                       var->name);
        -:        -: 4162:   }
        -:        -: 4163:
        5:        5: 4164:   if ((var->data.mode == ir_var_shader_in) && (state->current_function == NULL)) {
    #####:    #####: 4165:      _mesa_glsl_error(&initializer_loc, state,
        -:        -: 4166:                       "cannot initialize %s shader input / %s %s",
    #####:    #####: 4167:                       _mesa_shader_stage_to_string(state->stage),
    #####:    #####: 4168:                       (state->stage == MESA_SHADER_VERTEX)
        -:        -: 4169:                       ? "attribute" : "varying",
    #####:    #####: 4170:                       var->name);
        -:        -: 4171:   }
        -:        -: 4172:
        5:        5: 4173:   if (var->data.mode == ir_var_shader_out && state->current_function == NULL) {
    #####:    #####: 4174:      _mesa_glsl_error(&initializer_loc, state,
        -:        -: 4175:                       "cannot initialize %s shader output %s",
    #####:    #####: 4176:                       _mesa_shader_stage_to_string(state->stage),
    #####:    #####: 4177:                       var->name);
        -:        -: 4178:   }
        -:        -: 4179:
        -:        -: 4180:   /* If the initializer is an ast_aggregate_initializer, recursively store
        -:        -: 4181:    * type information from the LHS into it, so that its hir() function can do
        -:        -: 4182:    * type checking.
        -:        -: 4183:    */
        5:        5: 4184:   if (decl->initializer->oper == ast_aggregate)
    #####:    #####: 4185:      _mesa_ast_set_aggregate_type(var->type, decl->initializer);
        -:        -: 4186:
        5:        5: 4187:   ir_dereference *const lhs = new(state) ir_dereference_variable(var);
        5:        5: 4188:   ir_rvalue *rhs = decl->initializer->hir(initializer_instructions, state);
        -:        -: 4189:
        -:        -: 4190:   /* Calculate the constant value if this is a const or uniform
        -:        -: 4191:    * declaration.
        -:        -: 4192:    *
        -:        -: 4193:    * Section 4.3 (Storage Qualifiers) of the GLSL ES 1.00.17 spec says:
        -:        -: 4194:    *
        -:        -: 4195:    *     "Declarations of globals without a storage qualifier, or with
        -:        -: 4196:    *     just the const qualifier, may include initializers, in which case
        -:        -: 4197:    *     they will be initialized before the first line of main() is
        -:        -: 4198:    *     executed.  Such initializers must be a constant expression."
        -:        -: 4199:    *
        -:        -: 4200:    * The same section of the GLSL ES 3.00.4 spec has similar language.
        -:        -: 4201:    */
        5:        5: 4202:   if (type->qualifier.flags.q.constant
        5:        5: 4203:       || type->qualifier.flags.q.uniform
        5:        5: 4204:       || (state->es_shader && state->current_function == NULL)) {
        -:        -: 4205:      ir_rvalue *new_rhs = validate_assignment(state, initializer_loc,
    #####:    #####: 4206:                                               lhs, rhs, true);
    #####:    #####: 4207:      if (new_rhs != NULL) {
    #####:    #####: 4208:         rhs = new_rhs;
        -:        -: 4209:
        -:        -: 4210:         /* Section 4.3.3 (Constant Expressions) of the GLSL ES 3.00.4 spec
        -:        -: 4211:          * says:
        -:        -: 4212:          *
        -:        -: 4213:          *     "A constant expression is one of
        -:        -: 4214:          *
        -:        -: 4215:          *        ...
        -:        -: 4216:          *
        -:        -: 4217:          *        - an expression formed by an operator on operands that are
        -:        -: 4218:          *          all constant expressions, including getting an element of
        -:        -: 4219:          *          a constant array, or a field of a constant structure, or
        -:        -: 4220:          *          components of a constant vector.  However, the sequence
        -:        -: 4221:          *          operator ( , ) and the assignment operators ( =, +=, ...)
        -:        -: 4222:          *          are not included in the operators that can create a
        -:        -: 4223:          *          constant expression."
        -:        -: 4224:          *
        -:        -: 4225:          * Section 12.43 (Sequence operator and constant expressions) says:
        -:        -: 4226:          *
        -:        -: 4227:          *     "Should the following construct be allowed?
        -:        -: 4228:          *
        -:        -: 4229:          *         float a[2,3];
        -:        -: 4230:          *
        -:        -: 4231:          *     The expression within the brackets uses the sequence operator
        -:        -: 4232:          *     (',') and returns the integer 3 so the construct is declaring
        -:        -: 4233:          *     a single-dimensional array of size 3.  In some languages, the
        -:        -: 4234:          *     construct declares a two-dimensional array.  It would be
        -:        -: 4235:          *     preferable to make this construct illegal to avoid confusion.
        -:        -: 4236:          *
        -:        -: 4237:          *     One possibility is to change the definition of the sequence
        -:        -: 4238:          *     operator so that it does not return a constant-expression and
        -:        -: 4239:          *     hence cannot be used to declare an array size.
        -:        -: 4240:          *
        -:        -: 4241:          *     RESOLUTION: The result of a sequence operator is not a
        -:        -: 4242:          *     constant-expression."
        -:        -: 4243:          *
        -:        -: 4244:          * Section 4.3.3 (Constant Expressions) of the GLSL 4.30.9 spec
        -:        -: 4245:          * contains language almost identical to the section 4.3.3 in the
        -:        -: 4246:          * GLSL ES 3.00.4 spec.  This is a new limitation for these GLSL
        -:        -: 4247:          * versions.
        -:        -: 4248:          */
    #####:    #####: 4249:         ir_constant *constant_value = rhs->constant_expression_value();
    #####:    #####: 4250:         if (!constant_value ||
    #####:    #####: 4251:             (state->is_version(430, 300) &&
    #####:    #####: 4252:              decl->initializer->has_sequence_subexpression())) {
        -:        -: 4253:            const char *const variable_mode =
        -:        -: 4254:               (type->qualifier.flags.q.constant)
        -:        -: 4255:               ? "const"
    #####:    #####: 4256:               : ((type->qualifier.flags.q.uniform) ? "uniform" : "global");
        -:        -: 4257:
        -:        -: 4258:            /* If ARB_shading_language_420pack is enabled, initializers of
        -:        -: 4259:             * const-qualified local variables do not have to be constant
        -:        -: 4260:             * expressions. Const-qualified global variables must still be
        -:        -: 4261:             * initialized with constant expressions.
        -:        -: 4262:             */
    #####:    #####: 4263:            if (!state->has_420pack()
    #####:    #####: 4264:                || state->current_function == NULL) {
    #####:    #####: 4265:               _mesa_glsl_error(& initializer_loc, state,
        -:        -: 4266:                                "initializer of %s variable `%s' must be a "
        -:        -: 4267:                                "constant expression",
        -:        -: 4268:                                variable_mode,
    #####:    #####: 4269:                                decl->identifier);
    #####:    #####: 4270:               if (var->type->is_numeric()) {
        -:        -: 4271:                  /* Reduce cascading errors. */
        -:        -: 4272:                  var->constant_value = type->qualifier.flags.q.constant
    #####:    #####: 4273:                     ? ir_constant::zero(state, var->type) : NULL;
        -:        -: 4274:               }
        -:        -: 4275:            }
        -:        -: 4276:         } else {
    #####:    #####: 4277:            rhs = constant_value;
        -:        -: 4278:            var->constant_value = type->qualifier.flags.q.constant
    #####:    #####: 4279:               ? constant_value : NULL;
        -:        -: 4280:         }
        -:        -: 4281:      } else {
    #####:    #####: 4282:         if (var->type->is_numeric()) {
        -:        -: 4283:            /* Reduce cascading errors. */
        -:        -: 4284:            var->constant_value = type->qualifier.flags.q.constant
    #####:    #####: 4285:               ? ir_constant::zero(state, var->type) : NULL;
        -:        -: 4286:         }
        -:        -: 4287:      }
        -:        -: 4288:   }
        -:        -: 4289:
        5:        5: 4290:   if (rhs && !rhs->type->is_error()) {
        5:        5: 4291:      bool temp = var->data.read_only;
        5:        5: 4292:      if (type->qualifier.flags.q.constant)
    #####:    #####: 4293:         var->data.read_only = false;
        -:        -: 4294:
        -:        -: 4295:      /* Never emit code to initialize a uniform.
        -:        -: 4296:       */
        -:        -: 4297:      const glsl_type *initializer_type;
        5:        5: 4298:      if (!type->qualifier.flags.q.uniform) {
        5:        5: 4299:         do_assignment(initializer_instructions, state,
        -:        -: 4300:                       NULL,
        -:        -: 4301:                       lhs, rhs,
        -:        -: 4302:                       &result, true,
        -:        -: 4303:                       true,
        5:        5: 4304:                       type->get_location());
        5:        5: 4305:         initializer_type = result->type;
        -:        -: 4306:      } else
    #####:    #####: 4307:         initializer_type = rhs->type;
        -:        -: 4308:
        5:        5: 4309:      var->constant_initializer = rhs->constant_expression_value();
        5:        5: 4310:      var->data.has_initializer = true;
        -:        -: 4311:
        -:        -: 4312:      /* If the declared variable is an unsized array, it must inherrit
        -:        -: 4313:       * its full type from the initializer.  A declaration such as
        -:        -: 4314:       *
        -:        -: 4315:       *     uniform float a[] = float[](1.0, 2.0, 3.0, 3.0);
        -:        -: 4316:       *
        -:        -: 4317:       * becomes
        -:        -: 4318:       *
        -:        -: 4319:       *     uniform float a[4] = float[](1.0, 2.0, 3.0, 3.0);
        -:        -: 4320:       *
        -:        -: 4321:       * The assignment generated in the if-statement (below) will also
        -:        -: 4322:       * automatically handle this case for non-uniforms.
        -:        -: 4323:       *
        -:        -: 4324:       * If the declared variable is not an array, the types must
        -:        -: 4325:       * already match exactly.  As a result, the type assignment
        -:        -: 4326:       * here can be done unconditionally.  For non-uniforms the call
        -:        -: 4327:       * to do_assignment can change the type of the initializer (via
        -:        -: 4328:       * the implicit conversion rules).  For uniforms the initializer
        -:        -: 4329:       * must be a constant expression, and the type of that expression
        -:        -: 4330:       * was validated above.
        -:        -: 4331:       */
        5:        5: 4332:      var->type = initializer_type;
        -:        -: 4333:
        5:        5: 4334:      var->data.read_only = temp;
        -:        -: 4335:   }
        -:        -: 4336:
        5:        5: 4337:   return result;
        -:        -: 4338:}
        -:        -: 4339:
        -:        -: 4340:static void
    #####:    #####: 4341:validate_layout_qualifier_vertex_count(struct _mesa_glsl_parse_state *state,
        -:        -: 4342:                                       YYLTYPE loc, ir_variable *var,
        -:        -: 4343:                                       unsigned num_vertices,
        -:        -: 4344:                                       unsigned *size,
        -:        -: 4345:                                       const char *var_category)
        -:        -: 4346:{
    #####:    #####: 4347:   if (var->type->is_unsized_array()) {
        -:        -: 4348:      /* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
        -:        -: 4349:       *
        -:        -: 4350:       *   All geometry shader input unsized array declarations will be
        -:        -: 4351:       *   sized by an earlier input layout qualifier, when present, as per
        -:        -: 4352:       *   the following table.
        -:        -: 4353:       *
        -:        -: 4354:       * Followed by a table mapping each allowed input layout qualifier to
        -:        -: 4355:       * the corresponding input length.
        -:        -: 4356:       *
        -:        -: 4357:       * Similarly for tessellation control shader outputs.
        -:        -: 4358:       */
    #####:    #####: 4359:      if (num_vertices != 0)
    #####:    #####: 4360:         var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####: 4361:                                                   num_vertices);
        -:        -: 4362:   } else {
        -:        -: 4363:      /* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec
        -:        -: 4364:       * includes the following examples of compile-time errors:
        -:        -: 4365:       *
        -:        -: 4366:       *   // code sequence within one shader...
        -:        -: 4367:       *   in vec4 Color1[];    // size unknown
        -:        -: 4368:       *   ...Color1.length()...// illegal, length() unknown
        -:        -: 4369:       *   in vec4 Color2[2];   // size is 2
        -:        -: 4370:       *   ...Color1.length()...// illegal, Color1 still has no size
        -:        -: 4371:       *   in vec4 Color3[3];   // illegal, input sizes are inconsistent
        -:        -: 4372:       *   layout(lines) in;    // legal, input size is 2, matching
        -:        -: 4373:       *   in vec4 Color4[3];   // illegal, contradicts layout
        -:        -: 4374:       *   ...
        -:        -: 4375:       *
        -:        -: 4376:       * To detect the case illustrated by Color3, we verify that the size of
        -:        -: 4377:       * an explicitly-sized array matches the size of any previously declared
        -:        -: 4378:       * explicitly-sized array.  To detect the case illustrated by Color4, we
        -:        -: 4379:       * verify that the size of an explicitly-sized array is consistent with
        -:        -: 4380:       * any previously declared input layout.
        -:        -: 4381:       */
    #####:    #####: 4382:      if (num_vertices != 0 && var->type->length != num_vertices) {
        -:        -: 4383:         _mesa_glsl_error(&loc, state,
        -:        -: 4384:                          "%s size contradicts previously declared layout "
        -:        -: 4385:                          "(size is %u, but layout requires a size of %u)",
    #####:    #####: 4386:                          var_category, var->type->length, num_vertices);
    #####:    #####: 4387:      } else if (*size != 0 && var->type->length != *size) {
    #####:    #####: 4388:         _mesa_glsl_error(&loc, state,
        -:        -: 4389:                          "%s sizes are inconsistent (size is %u, but a "
        -:        -: 4390:                          "previous declaration has size %u)",
    #####:    #####: 4391:                          var_category, var->type->length, *size);
        -:        -: 4392:      } else {
    #####:    #####: 4393:         *size = var->type->length;
        -:        -: 4394:      }
        -:        -: 4395:   }
    #####:    #####: 4396:}
        -:        -: 4397:
        -:        -: 4398:static void
    #####:    #####: 4399:handle_tess_ctrl_shader_output_decl(struct _mesa_glsl_parse_state *state,
        -:        -: 4400:                                    YYLTYPE loc, ir_variable *var)
        -:        -: 4401:{
    #####:    #####: 4402:   unsigned num_vertices = 0;
        -:        -: 4403:
    #####:    #####: 4404:   if (state->tcs_output_vertices_specified) {
    #####:    #####: 4405:      if (!state->out_qualifier->vertices->
    #####:    #####: 4406:             process_qualifier_constant(state, "vertices",
        -:        -: 4407:                                        &num_vertices, false)) {
    #####:    #####: 4408:         return;
        -:        -: 4409:      }
        -:        -: 4410:
    #####:    #####: 4411:      if (num_vertices > state->Const.MaxPatchVertices) {
        -:        -: 4412:         _mesa_glsl_error(&loc, state, "vertices (%d) exceeds "
    #####:    #####: 4413:                          "GL_MAX_PATCH_VERTICES", num_vertices);
    #####:    #####: 4414:         return;
        -:        -: 4415:      }
        -:        -: 4416:   }
        -:        -: 4417:
    #####:    #####: 4418:   if (!var->type->is_array() && !var->data.patch) {
        -:        -: 4419:      _mesa_glsl_error(&loc, state,
    #####:    #####: 4420:                       "tessellation control shader outputs must be arrays");
        -:        -: 4421:
        -:        -: 4422:      /* To avoid cascading failures, short circuit the checks below. */
    #####:    #####: 4423:      return;
        -:        -: 4424:   }
        -:        -: 4425:
    #####:    #####: 4426:   if (var->data.patch)
    #####:    #####: 4427:      return;
        -:        -: 4428:
    #####:    #####: 4429:   validate_layout_qualifier_vertex_count(state, loc, var, num_vertices,
        -:        -: 4430:                                          &state->tcs_output_size,
    #####:    #####: 4431:                                          "tessellation control shader output");
        -:        -: 4432:}
        -:        -: 4433:
        -:        -: 4434:/**
        -:        -: 4435: * Do additional processing necessary for tessellation control/evaluation shader
        -:        -: 4436: * input declarations. This covers both interface block arrays and bare input
        -:        -: 4437: * variables.
        -:        -: 4438: */
        -:        -: 4439:static void
    #####:    #####: 4440:handle_tess_shader_input_decl(struct _mesa_glsl_parse_state *state,
        -:        -: 4441:                              YYLTYPE loc, ir_variable *var)
        -:        -: 4442:{
    #####:    #####: 4443:   if (!var->type->is_array() && !var->data.patch) {
        -:        -: 4444:      _mesa_glsl_error(&loc, state,
    #####:    #####: 4445:                       "per-vertex tessellation shader inputs must be arrays");
        -:        -: 4446:      /* Avoid cascading failures. */
    #####:    #####: 4447:      return;
        -:        -: 4448:   }
        -:        -: 4449:
    #####:    #####: 4450:   if (var->data.patch)
    #####:    #####: 4451:      return;
        -:        -: 4452:
        -:        -: 4453:   /* The ARB_tessellation_shader spec says:
        -:        -: 4454:    *
        -:        -: 4455:    *    "Declaring an array size is optional.  If no size is specified, it
        -:        -: 4456:    *     will be taken from the implementation-dependent maximum patch size
        -:        -: 4457:    *     (gl_MaxPatchVertices).  If a size is specified, it must match the
        -:        -: 4458:    *     maximum patch size; otherwise, a compile or link error will occur."
        -:        -: 4459:    *
        -:        -: 4460:    * This text appears twice, once for TCS inputs, and again for TES inputs.
        -:        -: 4461:    */
    #####:    #####: 4462:   if (var->type->is_unsized_array()) {
    #####:    #####: 4463:      var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####: 4464:            state->Const.MaxPatchVertices);
    #####:    #####: 4465:   } else if (var->type->length != state->Const.MaxPatchVertices) {
    #####:    #####: 4466:      _mesa_glsl_error(&loc, state,
        -:        -: 4467:                       "per-vertex tessellation shader input arrays must be "
        -:        -: 4468:                       "sized to gl_MaxPatchVertices (%d).",
    #####:    #####: 4469:                       state->Const.MaxPatchVertices);
        -:        -: 4470:   }
        -:        -: 4471:}
        -:        -: 4472:
        -:        -: 4473:
        -:        -: 4474:/**
        -:        -: 4475: * Do additional processing necessary for geometry shader input declarations
        -:        -: 4476: * (this covers both interface blocks arrays and bare input variables).
        -:        -: 4477: */
        -:        -: 4478:static void
    #####:    #####: 4479:handle_geometry_shader_input_decl(struct _mesa_glsl_parse_state *state,
        -:        -: 4480:                                  YYLTYPE loc, ir_variable *var)
        -:        -: 4481:{
    #####:    #####: 4482:   unsigned num_vertices = 0;
        -:        -: 4483:
    #####:    #####: 4484:   if (state->gs_input_prim_type_specified) {
    #####:    #####: 4485:      num_vertices = vertices_per_prim(state->in_qualifier->prim_type);
        -:        -: 4486:   }
        -:        -: 4487:
        -:        -: 4488:   /* Geometry shader input variables must be arrays.  Caller should have
        -:        -: 4489:    * reported an error for this.
        -:        -: 4490:    */
    #####:    #####: 4491:   if (!var->type->is_array()) {
    #####:    #####: 4492:      assert(state->error);
        -:        -: 4493:
        -:        -: 4494:      /* To avoid cascading failures, short circuit the checks below. */
    #####:    #####: 4495:      return;
        -:        -: 4496:   }
        -:        -: 4497:
    #####:    #####: 4498:   validate_layout_qualifier_vertex_count(state, loc, var, num_vertices,
        -:        -: 4499:                                          &state->gs_input_size,
    #####:    #####: 4500:                                          "geometry shader input");
        -:        -: 4501:}
        -:        -: 4502:
        -:        -: 4503:void
       11:       11: 4504:validate_identifier(const char *identifier, YYLTYPE loc,
        -:        -: 4505:                    struct _mesa_glsl_parse_state *state)
        -:        -: 4506:{
        -:        -: 4507:   /* From page 15 (page 21 of the PDF) of the GLSL 1.10 spec,
        -:        -: 4508:    *
        -:        -: 4509:    *   "Identifiers starting with "gl_" are reserved for use by
        -:        -: 4510:    *   OpenGL, and may not be declared in a shader as either a
        -:        -: 4511:    *   variable or a function."
        -:        -: 4512:    */
       11:       11: 4513:   if (is_gl_identifier(identifier)) {
        -:        -: 4514:      _mesa_glsl_error(&loc, state,
        -:        -: 4515:                       "identifier `%s' uses reserved `gl_' prefix",
    #####:    #####: 4516:                       identifier);
       11:       11: 4517:   } else if (strstr(identifier, "__")) {
        -:        -: 4518:      /* From page 14 (page 20 of the PDF) of the GLSL 1.10
        -:        -: 4519:       * spec:
        -:        -: 4520:       *
        -:        -: 4521:       *     "In addition, all identifiers containing two
        -:        -: 4522:       *      consecutive underscores (__) are reserved as
        -:        -: 4523:       *      possible future keywords."
        -:        -: 4524:       *
        -:        -: 4525:       * The intention is that names containing __ are reserved for internal
        -:        -: 4526:       * use by the implementation, and names prefixed with GL_ are reserved
        -:        -: 4527:       * for use by Khronos.  Names simply containing __ are dangerous to use,
        -:        -: 4528:       * but should be allowed.
        -:        -: 4529:       *
        -:        -: 4530:       * A future version of the GLSL specification will clarify this.
        -:        -: 4531:       */
        -:        -: 4532:      _mesa_glsl_warning(&loc, state,
        -:        -: 4533:                         "identifier `%s' uses reserved `__' string",
    #####:    #####: 4534:                         identifier);
        -:        -: 4535:   }
       11:       11: 4536:}
        -:        -: 4537:
        -:        -: 4538:ir_rvalue *
        8:        8: 4539:ast_declarator_list::hir(exec_list *instructions,
        -:        -: 4540:                         struct _mesa_glsl_parse_state *state)
        -:        -: 4541:{
        8:        8: 4542:   void *ctx = state;
        -:        -: 4543:   const struct glsl_type *decl_type;
        8:        8: 4544:   const char *type_name = NULL;
        8:        8: 4545:   ir_rvalue *result = NULL;
        8:        8: 4546:   YYLTYPE loc = this->get_location();
        -:        -: 4547:
        -:        -: 4548:   /* From page 46 (page 52 of the PDF) of the GLSL 1.50 spec:
        -:        -: 4549:    *
        -:        -: 4550:    *     "To ensure that a particular output variable is invariant, it is
        -:        -: 4551:    *     necessary to use the invariant qualifier. It can either be used to
        -:        -: 4552:    *     qualify a previously declared variable as being invariant
        -:        -: 4553:    *
        -:        -: 4554:    *         invariant gl_Position; // make existing gl_Position be invariant"
        -:        -: 4555:    *
        -:        -: 4556:    * In these cases the parser will set the 'invariant' flag in the declarator
        -:        -: 4557:    * list, and the type will be NULL.
        -:        -: 4558:    */
        8:        8: 4559:   if (this->invariant) {
    #####:    #####: 4560:      assert(this->type == NULL);
        -:        -: 4561:
    #####:    #####: 4562:      if (state->current_function != NULL) {
        -:        -: 4563:         _mesa_glsl_error(& loc, state,
        -:        -: 4564:                          "all uses of `invariant' keyword must be at global "
    #####:    #####: 4565:                          "scope");
        -:        -: 4566:      }
        -:        -: 4567:
    #####:    #####: 4568:      foreach_list_typed (ast_declaration, decl, link, &this->declarations) {
    #####:    #####: 4569:         assert(decl->array_specifier == NULL);
    #####:    #####: 4570:         assert(decl->initializer == NULL);
        -:        -: 4571:
        -:        -: 4572:         ir_variable *const earlier =
    #####:    #####: 4573:            state->symbols->get_variable(decl->identifier);
    #####:    #####: 4574:         if (earlier == NULL) {
    #####:    #####: 4575:            _mesa_glsl_error(& loc, state,
        -:        -: 4576:                             "undeclared variable `%s' cannot be marked "
    #####:    #####: 4577:                             "invariant", decl->identifier);
    #####:    #####: 4578:         } else if (!is_allowed_invariant(earlier, state)) {
    #####:    #####: 4579:            _mesa_glsl_error(&loc, state,
        -:        -: 4580:                             "`%s' cannot be marked invariant; interfaces between "
    #####:    #####: 4581:                             "shader stages only.", decl->identifier);
    #####:    #####: 4582:         } else if (earlier->data.used) {
    #####:    #####: 4583:            _mesa_glsl_error(& loc, state,
        -:        -: 4584:                            "variable `%s' may not be redeclared "
        -:        -: 4585:                            "`invariant' after being used",
    #####:    #####: 4586:                            earlier->name);
        -:        -: 4587:         } else {
    #####:    #####: 4588:            earlier->data.invariant = true;
        -:        -: 4589:         }
        -:        -: 4590:      }
        -:        -: 4591:
        -:        -: 4592:      /* Invariant redeclarations do not have r-values.
        -:        -: 4593:       */
    #####:    #####: 4594:      return NULL;
        -:        -: 4595:   }
        -:        -: 4596:
        8:        8: 4597:   if (this->precise) {
    #####:    #####: 4598:      assert(this->type == NULL);
        -:        -: 4599:
    #####:    #####: 4600:      foreach_list_typed (ast_declaration, decl, link, &this->declarations) {
    #####:    #####: 4601:         assert(decl->array_specifier == NULL);
    #####:    #####: 4602:         assert(decl->initializer == NULL);
        -:        -: 4603:
        -:        -: 4604:         ir_variable *const earlier =
    #####:    #####: 4605:            state->symbols->get_variable(decl->identifier);
    #####:    #####: 4606:         if (earlier == NULL) {
    #####:    #####: 4607:            _mesa_glsl_error(& loc, state,
        -:        -: 4608:                             "undeclared variable `%s' cannot be marked "
    #####:    #####: 4609:                             "precise", decl->identifier);
    #####:    #####: 4610:         } else if (state->current_function != NULL &&
    #####:    #####: 4611:                    !state->symbols->name_declared_this_scope(decl->identifier)) {
        -:        -: 4612:            /* Note: we have to check if we're in a function, since
        -:        -: 4613:             * builtins are treated as having come from another scope.
        -:        -: 4614:             */
    #####:    #####: 4615:            _mesa_glsl_error(& loc, state,
        -:        -: 4616:                             "variable `%s' from an outer scope may not be "
        -:        -: 4617:                             "redeclared `precise' in this scope",
    #####:    #####: 4618:                             earlier->name);
    #####:    #####: 4619:         } else if (earlier->data.used) {
    #####:    #####: 4620:            _mesa_glsl_error(& loc, state,
        -:        -: 4621:                             "variable `%s' may not be redeclared "
        -:        -: 4622:                             "`precise' after being used",
    #####:    #####: 4623:                             earlier->name);
        -:        -: 4624:         } else {
    #####:    #####: 4625:            earlier->data.precise = true;
        -:        -: 4626:         }
        -:        -: 4627:      }
        -:        -: 4628:
        -:        -: 4629:      /* Precise redeclarations do not have r-values either. */
    #####:    #####: 4630:      return NULL;
        -:        -: 4631:   }
        -:        -: 4632:
        8:        8: 4633:   assert(this->type != NULL);
        8:        8: 4634:   assert(!this->invariant);
        8:        8: 4635:   assert(!this->precise);
        -:        -: 4636:
        -:        -: 4637:   /* The type specifier may contain a structure definition.  Process that
        -:        -: 4638:    * before any of the variable declarations.
        -:        -: 4639:    */
        8:        8: 4640:   (void) this->type->specifier->hir(instructions, state);
        -:        -: 4641:
        8:        8: 4642:   decl_type = this->type->glsl_type(& type_name, state);
        -:        -: 4643:
        -:        -: 4644:   /* Section 4.3.7 "Buffer Variables" of the GLSL 4.30 spec:
        -:        -: 4645:    *    "Buffer variables may only be declared inside interface blocks
        -:        -: 4646:    *    (section 4.3.9 “Interface Blocks”), which are then referred to as
        -:        -: 4647:    *    shader storage blocks. It is a compile-time error to declare buffer
        -:        -: 4648:    *    variables at global scope (outside a block)."
        -:        -: 4649:    */
        8:        8: 4650:   if (type->qualifier.flags.q.buffer && !decl_type->is_interface()) {
        -:        -: 4651:      _mesa_glsl_error(&loc, state,
        -:        -: 4652:                       "buffer variables cannot be declared outside "
    #####:    #####: 4653:                       "interface blocks");
        -:        -: 4654:   }
        -:        -: 4655:
        -:        -: 4656:   /* An offset-qualified atomic counter declaration sets the default
        -:        -: 4657:    * offset for the next declaration within the same atomic counter
        -:        -: 4658:    * buffer.
        -:        -: 4659:    */
        8:        8: 4660:   if (decl_type && decl_type->contains_atomic()) {
    #####:    #####: 4661:      if (type->qualifier.flags.q.explicit_binding &&
    #####:    #####: 4662:          type->qualifier.flags.q.explicit_offset) {
        -:        -: 4663:         unsigned qual_binding;
        -:        -: 4664:         unsigned qual_offset;
    #####:    #####: 4665:         if (process_qualifier_constant(state, &loc, "binding",
    #####:    #####: 4666:                                        type->qualifier.binding,
        -:        -: 4667:                                        &qual_binding)
    #####:    #####: 4668:             && process_qualifier_constant(state, &loc, "offset",
    #####:    #####: 4669:                                        type->qualifier.offset,
        -:        -: 4670:                                        &qual_offset)) {
    #####:    #####: 4671:            state->atomic_counter_offsets[qual_binding] = qual_offset;
        -:        -: 4672:         }
        -:        -: 4673:      }
        -:        -: 4674:
        -:        -: 4675:      ast_type_qualifier allowed_atomic_qual_mask;
    #####:    #####: 4676:      allowed_atomic_qual_mask.flags.i = 0;
    #####:    #####: 4677:      allowed_atomic_qual_mask.flags.q.explicit_binding = 1;
    #####:    #####: 4678:      allowed_atomic_qual_mask.flags.q.explicit_offset = 1;
    #####:    #####: 4679:      allowed_atomic_qual_mask.flags.q.uniform = 1;
        -:        -: 4680:
    #####:    #####: 4681:      type->qualifier.validate_flags(&loc, state, allowed_atomic_qual_mask,
        -:        -: 4682:                                     "invalid layout qualifier for",
    #####:    #####: 4683:                                     "atomic_uint");
        -:        -: 4684:   }
        -:        -: 4685:
        8:        8: 4686:   if (this->declarations.is_empty()) {
        -:        -: 4687:      /* If there is no structure involved in the program text, there are two
        -:        -: 4688:       * possible scenarios:
        -:        -: 4689:       *
        -:        -: 4690:       * - The program text contained something like 'vec4;'.  This is an
        -:        -: 4691:       *   empty declaration.  It is valid but weird.  Emit a warning.
        -:        -: 4692:       *
        -:        -: 4693:       * - The program text contained something like 'S;' and 'S' is not the
        -:        -: 4694:       *   name of a known structure type.  This is both invalid and weird.
        -:        -: 4695:       *   Emit an error.
        -:        -: 4696:       *
        -:        -: 4697:       * - The program text contained something like 'mediump float;'
        -:        -: 4698:       *   when the programmer probably meant 'precision mediump
        -:        -: 4699:       *   float;' Emit a warning with a description of what they
        -:        -: 4700:       *   probably meant to do.
        -:        -: 4701:       *
        -:        -: 4702:       * Note that if decl_type is NULL and there is a structure involved,
        -:        -: 4703:       * there must have been some sort of error with the structure.  In this
        -:        -: 4704:       * case we assume that an error was already generated on this line of
        -:        -: 4705:       * code for the structure.  There is no need to generate an additional,
        -:        -: 4706:       * confusing error.
        -:        -: 4707:       */
    #####:    #####: 4708:      assert(this->type->specifier->structure == NULL || decl_type != NULL
    #####:    #####: 4709:             || state->error);
        -:        -: 4710:
    #####:    #####: 4711:      if (decl_type == NULL) {
        -:        -: 4712:         _mesa_glsl_error(&loc, state,
        -:        -: 4713:                          "invalid type `%s' in empty declaration",
    #####:    #####: 4714:                          type_name);
        -:        -: 4715:      } else {
    #####:    #####: 4716:         if (decl_type->base_type == GLSL_TYPE_ARRAY) {
        -:        -: 4717:            /* From Section 13.22 (Array Declarations) of the GLSL ES 3.2
        -:        -: 4718:             * spec:
        -:        -: 4719:             *
        -:        -: 4720:             *    "... any declaration that leaves the size undefined is
        -:        -: 4721:             *    disallowed as this would add complexity and there are no
        -:        -: 4722:             *    use-cases."
        -:        -: 4723:             */
    #####:    #####: 4724:            if (state->es_shader && decl_type->is_unsized_array()) {
        -:        -: 4725:               _mesa_glsl_error(&loc, state, "array size must be explicitly "
    #####:    #####: 4726:                                "or implicitly defined");
        -:        -: 4727:            }
        -:        -: 4728:
        -:        -: 4729:            /* From Section 4.12 (Empty Declarations) of the GLSL 4.5 spec:
        -:        -: 4730:             *
        -:        -: 4731:             *    "The combinations of types and qualifiers that cause
        -:        -: 4732:             *    compile-time or link-time errors are the same whether or not
        -:        -: 4733:             *    the declaration is empty."
        -:        -: 4734:             */
    #####:    #####: 4735:            validate_array_dimensions(decl_type, state, &loc);
        -:        -: 4736:         }
        -:        -: 4737:
    #####:    #####: 4738:         if (decl_type->base_type == GLSL_TYPE_ATOMIC_UINT) {
        -:        -: 4739:            /* Empty atomic counter declarations are allowed and useful
        -:        -: 4740:             * to set the default offset qualifier.
        -:        -: 4741:             */
    #####:    #####: 4742:            return NULL;
    #####:    #####: 4743:         } else if (this->type->qualifier.precision != ast_precision_none) {
    #####:    #####: 4744:            if (this->type->specifier->structure != NULL) {
        -:        -: 4745:               _mesa_glsl_error(&loc, state,
        -:        -: 4746:                                "precision qualifiers can't be applied "
    #####:    #####: 4747:                                "to structures");
        -:        -: 4748:            } else {
        -:        -: 4749:               static const char *const precision_names[] = {
        -:        -: 4750:                  "highp",
        -:        -: 4751:                  "highp",
        -:        -: 4752:                  "mediump",
        -:        -: 4753:                  "lowp"
        -:        -: 4754:               };
        -:        -: 4755:
    #####:    #####: 4756:               _mesa_glsl_warning(&loc, state,
        -:        -: 4757:                                  "empty declaration with precision "
        -:        -: 4758:                                  "qualifier, to set the default precision, "
        -:        -: 4759:                                  "use `precision %s %s;'",
    #####:    #####: 4760:                                  precision_names[this->type->
    #####:    #####: 4761:                                     qualifier.precision],
    #####:    #####: 4762:                                  type_name);
        -:        -: 4763:            }
    #####:    #####: 4764:         } else if (this->type->specifier->structure == NULL) {
    #####:    #####: 4765:            _mesa_glsl_warning(&loc, state, "empty declaration");
        -:        -: 4766:         }
        -:        -: 4767:      }
        -:        -: 4768:   }
        -:        -: 4769:
       16:       16: 4770:   foreach_list_typed (ast_declaration, decl, link, &this->declarations) {
        -:        -: 4771:      const struct glsl_type *var_type;
        -:        -: 4772:      ir_variable *var;
        8:        8: 4773:      const char *identifier = decl->identifier;
        -:        -: 4774:      /* FINISHME: Emit a warning if a variable declaration shadows a
        -:        -: 4775:       * FINISHME: declaration at a higher scope.
        -:        -: 4776:       */
        -:        -: 4777:
        8:        8: 4778:      if ((decl_type == NULL) || decl_type->is_void()) {
    #####:    #####: 4779:         if (type_name != NULL) {
    #####:    #####: 4780:            _mesa_glsl_error(& loc, state,
        -:        -: 4781:                             "invalid type `%s' in declaration of `%s'",
    #####:    #####: 4782:                             type_name, decl->identifier);
        -:        -: 4783:         } else {
    #####:    #####: 4784:            _mesa_glsl_error(& loc, state,
        -:        -: 4785:                             "invalid type in declaration of `%s'",
    #####:    #####: 4786:                             decl->identifier);
        -:        -: 4787:         }
    #####:    #####: 4788:         continue;
        -:        -: 4789:      }
        -:        -: 4790:
        8:        8: 4791:      if (this->type->qualifier.is_subroutine_decl()) {
        -:        -: 4792:         const glsl_type *t;
        -:        -: 4793:         const char *name;
        -:        -: 4794:
    #####:    #####: 4795:         t = state->symbols->get_type(this->type->specifier->type_name);
    #####:    #####: 4796:         if (!t)
    #####:    #####: 4797:            _mesa_glsl_error(& loc, state,
        -:        -: 4798:                             "invalid type in declaration of `%s'",
    #####:    #####: 4799:                             decl->identifier);
    #####:    #####: 4800:         name = ralloc_asprintf(ctx, "%s_%s", _mesa_shader_stage_to_subroutine_prefix(state->stage), decl->identifier);
        -:        -: 4801:
    #####:    #####: 4802:         identifier = name;
        -:        -: 4803:
        -:        -: 4804:      }
        8:        8: 4805:      var_type = process_array_type(&loc, decl_type, decl->array_specifier,
        8:        8: 4806:                                    state);
        -:        -: 4807:
        8:        8: 4808:      var = new(ctx) ir_variable(var_type, identifier, ir_var_auto);
        -:        -: 4809:
        -:        -: 4810:      /* The 'varying in' and 'varying out' qualifiers can only be used with
        -:        -: 4811:       * ARB_geometry_shader4 and EXT_geometry_shader4, which we don't support
        -:        -: 4812:       * yet.
        -:        -: 4813:       */
        8:        8: 4814:      if (this->type->qualifier.flags.q.varying) {
    #####:    #####: 4815:         if (this->type->qualifier.flags.q.in) {
    #####:    #####: 4816:            _mesa_glsl_error(& loc, state,
        -:        -: 4817:                             "`varying in' qualifier in declaration of "
        -:        -: 4818:                             "`%s' only valid for geometry shaders using "
        -:        -: 4819:                             "ARB_geometry_shader4 or EXT_geometry_shader4",
    #####:    #####: 4820:                             decl->identifier);
    #####:    #####: 4821:         } else if (this->type->qualifier.flags.q.out) {
    #####:    #####: 4822:            _mesa_glsl_error(& loc, state,
        -:        -: 4823:                             "`varying out' qualifier in declaration of "
        -:        -: 4824:                             "`%s' only valid for geometry shaders using "
        -:        -: 4825:                             "ARB_geometry_shader4 or EXT_geometry_shader4",
    #####:    #####: 4826:                             decl->identifier);
        -:        -: 4827:         }
        -:        -: 4828:      }
        -:        -: 4829:
        -:        -: 4830:      /* From page 22 (page 28 of the PDF) of the GLSL 1.10 specification;
        -:        -: 4831:       *
        -:        -: 4832:       *     "Global variables can only use the qualifiers const,
        -:        -: 4833:       *     attribute, uniform, or varying. Only one may be
        -:        -: 4834:       *     specified.
        -:        -: 4835:       *
        -:        -: 4836:       *     Local variables can only use the qualifier const."
        -:        -: 4837:       *
        -:        -: 4838:       * This is relaxed in GLSL 1.30 and GLSL ES 3.00.  It is also relaxed by
        -:        -: 4839:       * any extension that adds the 'layout' keyword.
        -:        -: 4840:       */
       16:       16: 4841:      if (!state->is_version(130, 300)
    #####:    #####: 4842:          && !state->has_explicit_attrib_location()
    #####:    #####: 4843:          && !state->has_separate_shader_objects()
        8:        8: 4844:          && !state->ARB_fragment_coord_conventions_enable) {
    #####:    #####: 4845:         if (this->type->qualifier.flags.q.out) {
    #####:    #####: 4846:            _mesa_glsl_error(& loc, state,
        -:        -: 4847:                             "`out' qualifier in declaration of `%s' "
        -:        -: 4848:                             "only valid for function parameters in %s",
    #####:    #####: 4849:                             decl->identifier, state->get_version_string());
        -:        -: 4850:         }
    #####:    #####: 4851:         if (this->type->qualifier.flags.q.in) {
    #####:    #####: 4852:            _mesa_glsl_error(& loc, state,
        -:        -: 4853:                             "`in' qualifier in declaration of `%s' "
        -:        -: 4854:                             "only valid for function parameters in %s",
    #####:    #####: 4855:                             decl->identifier, state->get_version_string());
        -:        -: 4856:         }
        -:        -: 4857:         /* FINISHME: Test for other invalid qualifiers. */
        -:        -: 4858:      }
        -:        -: 4859:
        8:        8: 4860:      apply_type_qualifier_to_variable(& this->type->qualifier, var, state,
        8:        8: 4861:                                       & loc, false);
        8:        8: 4862:      apply_layout_qualifier_to_variable(&this->type->qualifier, var, state,
        8:        8: 4863:                                         &loc);
        -:        -: 4864:
       19:       19: 4865:      if ((var->data.mode == ir_var_auto || var->data.mode == ir_var_temporary)
        5:        5: 4866:          && (var->type->is_numeric() || var->type->is_boolean())
       13:       13: 4867:          && state->zero_init) {
    #####:    #####: 4868:         const ir_constant_data data = { { 0 } };
    #####:    #####: 4869:         var->data.has_initializer = true;
    #####:    #####: 4870:         var->constant_initializer = new(var) ir_constant(var->type, &data);
        -:        -: 4871:      }
        -:        -: 4872:
        8:        8: 4873:      if (this->type->qualifier.flags.q.invariant) {
    #####:    #####: 4874:         if (!is_allowed_invariant(var, state)) {
    #####:    #####: 4875:            _mesa_glsl_error(&loc, state,
        -:        -: 4876:                             "`%s' cannot be marked invariant; interfaces between "
    #####:    #####: 4877:                             "shader stages only", var->name);
        -:        -: 4878:         }
        -:        -: 4879:      }
        -:        -: 4880:
        8:        8: 4881:      if (state->current_function != NULL) {
        5:        5: 4882:         const char *mode = NULL;
        5:        5: 4883:         const char *extra = "";
        -:        -: 4884:
        -:        -: 4885:         /* There is no need to check for 'inout' here because the parser will
        -:        -: 4886:          * only allow that in function parameter lists.
        -:        -: 4887:          */
        5:        5: 4888:         if (this->type->qualifier.flags.q.attribute) {
    #####:    #####: 4889:            mode = "attribute";
        5:        5: 4890:         } else if (this->type->qualifier.is_subroutine_decl()) {
    #####:    #####: 4891:            mode = "subroutine uniform";
        5:        5: 4892:         } else if (this->type->qualifier.flags.q.uniform) {
    #####:    #####: 4893:            mode = "uniform";
        5:        5: 4894:         } else if (this->type->qualifier.flags.q.varying) {
    #####:    #####: 4895:            mode = "varying";
        5:        5: 4896:         } else if (this->type->qualifier.flags.q.in) {
    #####:    #####: 4897:            mode = "in";
    #####:    #####: 4898:            extra = " or in function parameter list";
        5:        5: 4899:         } else if (this->type->qualifier.flags.q.out) {
    #####:    #####: 4900:            mode = "out";
    #####:    #####: 4901:            extra = " or in function parameter list";
        -:        -: 4902:         }
        -:        -: 4903:
        5:        5: 4904:         if (mode) {
    #####:    #####: 4905:            _mesa_glsl_error(& loc, state,
        -:        -: 4906:                             "%s variable `%s' must be declared at "
        -:        -: 4907:                             "global scope%s",
    #####:    #####: 4908:                             mode, var->name, extra);
        -:        -: 4909:         }
        3:        3: 4910:      } else if (var->data.mode == ir_var_shader_in) {
        1:        1: 4911:         var->data.read_only = true;
        -:        -: 4912:
        1:        1: 4913:         if (state->stage == MESA_SHADER_VERTEX) {
        1:        1: 4914:            bool error_emitted = false;
        -:        -: 4915:
        -:        -: 4916:            /* From page 31 (page 37 of the PDF) of the GLSL 1.50 spec:
        -:        -: 4917:             *
        -:        -: 4918:             *    "Vertex shader inputs can only be float, floating-point
        -:        -: 4919:             *    vectors, matrices, signed and unsigned integers and integer
        -:        -: 4920:             *    vectors. Vertex shader inputs can also form arrays of these
        -:        -: 4921:             *    types, but not structures."
        -:        -: 4922:             *
        -:        -: 4923:             * From page 31 (page 27 of the PDF) of the GLSL 1.30 spec:
        -:        -: 4924:             *
        -:        -: 4925:             *    "Vertex shader inputs can only be float, floating-point
        -:        -: 4926:             *    vectors, matrices, signed and unsigned integers and integer
        -:        -: 4927:             *    vectors. They cannot be arrays or structures."
        -:        -: 4928:             *
        -:        -: 4929:             * From page 23 (page 29 of the PDF) of the GLSL 1.20 spec:
        -:        -: 4930:             *
        -:        -: 4931:             *    "The attribute qualifier can be used only with float,
        -:        -: 4932:             *    floating-point vectors, and matrices. Attribute variables
        -:        -: 4933:             *    cannot be declared as arrays or structures."
        -:        -: 4934:             *
        -:        -: 4935:             * From page 33 (page 39 of the PDF) of the GLSL ES 3.00 spec:
        -:        -: 4936:             *
        -:        -: 4937:             *    "Vertex shader inputs can only be float, floating-point
        -:        -: 4938:             *    vectors, matrices, signed and unsigned integers and integer
        -:        -: 4939:             *    vectors. Vertex shader inputs cannot be arrays or
        -:        -: 4940:             *    structures."
        -:        -: 4941:             */
        1:        1: 4942:            const glsl_type *check_type = var->type->without_array();
        -:        -: 4943:
        1:        1: 4944:            switch (check_type->base_type) {
        -:        -: 4945:            case GLSL_TYPE_FLOAT:
        1:        1: 4946:            break;
        -:        -: 4947:            case GLSL_TYPE_UINT64:
        -:        -: 4948:            case GLSL_TYPE_INT64:
    #####:    #####: 4949:               break;
        -:        -: 4950:            case GLSL_TYPE_UINT:
        -:        -: 4951:            case GLSL_TYPE_INT:
    #####:    #####: 4952:               if (state->is_version(120, 300))
    #####:    #####: 4953:                  break;
        -:        -: 4954:            case GLSL_TYPE_DOUBLE:
    #####:    #####: 4955:               if (check_type->base_type == GLSL_TYPE_DOUBLE && (state->is_version(410, 0) || state->ARB_vertex_attrib_64bit_enable))
    #####:    #####: 4956:                  break;
        -:        -: 4957:            /* FALLTHROUGH */
        -:        -: 4958:            default:
    #####:    #####: 4959:               _mesa_glsl_error(& loc, state,
        -:        -: 4960:                                "vertex shader input / attribute cannot have "
        -:        -: 4961:                                "type %s`%s'",
    #####:    #####: 4962:                                var->type->is_array() ? "array of " : "",
    #####:    #####: 4963:                                check_type->name);
    #####:    #####: 4964:               error_emitted = true;
        -:        -: 4965:            }
        -:        -: 4966:
        1:        1: 4967:            if (!error_emitted && var->type->is_array() &&
    #####:    #####: 4968:                !state->check_version(150, 0, &loc,
        -:        -: 4969:                                      "vertex shader input / attribute "
    #####:    #####: 4970:                                      "cannot have array type")) {
    #####:    #####: 4971:               error_emitted = true;
        -:        -: 4972:            }
    #####:    #####: 4973:         } else if (state->stage == MESA_SHADER_GEOMETRY) {
        -:        -: 4974:            /* From section 4.3.4 (Inputs) of the GLSL 1.50 spec:
        -:        -: 4975:             *
        -:        -: 4976:             *     Geometry shader input variables get the per-vertex values
        -:        -: 4977:             *     written out by vertex shader output variables of the same
        -:        -: 4978:             *     names. Since a geometry shader operates on a set of
        -:        -: 4979:             *     vertices, each input varying variable (or input block, see
        -:        -: 4980:             *     interface blocks below) needs to be declared as an array.
        -:        -: 4981:             */
    #####:    #####: 4982:            if (!var->type->is_array()) {
        -:        -: 4983:               _mesa_glsl_error(&loc, state,
    #####:    #####: 4984:                                "geometry shader inputs must be arrays");
        -:        -: 4985:            }
        -:        -: 4986:
    #####:    #####: 4987:            handle_geometry_shader_input_decl(state, loc, var);
    #####:    #####: 4988:         } else if (state->stage == MESA_SHADER_FRAGMENT) {
        -:        -: 4989:            /* From section 4.3.4 (Input Variables) of the GLSL ES 3.10 spec:
        -:        -: 4990:             *
        -:        -: 4991:             *     It is a compile-time error to declare a fragment shader
        -:        -: 4992:             *     input with, or that contains, any of the following types:
        -:        -: 4993:             *
        -:        -: 4994:             *     * A boolean type
        -:        -: 4995:             *     * An opaque type
        -:        -: 4996:             *     * An array of arrays
        -:        -: 4997:             *     * An array of structures
        -:        -: 4998:             *     * A structure containing an array
        -:        -: 4999:             *     * A structure containing a structure
        -:        -: 5000:             */
    #####:    #####: 5001:            if (state->es_shader) {
    #####:    #####: 5002:               const glsl_type *check_type = var->type->without_array();
    #####:    #####: 5003:               if (check_type->is_boolean() ||
    #####:    #####: 5004:                   check_type->contains_opaque()) {
        -:        -: 5005:                  _mesa_glsl_error(&loc, state,
        -:        -: 5006:                                   "fragment shader input cannot have type %s",
    #####:    #####: 5007:                                   check_type->name);
        -:        -: 5008:               }
    #####:    #####: 5009:               if (var->type->is_array() &&
    #####:    #####: 5010:                   var->type->fields.array->is_array()) {
    #####:    #####: 5011:                  _mesa_glsl_error(&loc, state,
        -:        -: 5012:                                   "%s shader output "
        -:        -: 5013:                                   "cannot have an array of arrays",
    #####:    #####: 5014:                                   _mesa_shader_stage_to_string(state->stage));
        -:        -: 5015:               }
    #####:    #####: 5016:               if (var->type->is_array() &&
    #####:    #####: 5017:                   var->type->fields.array->is_record()) {
        -:        -: 5018:                  _mesa_glsl_error(&loc, state,
        -:        -: 5019:                                   "fragment shader input "
    #####:    #####: 5020:                                   "cannot have an array of structs");
        -:        -: 5021:               }
    #####:    #####: 5022:               if (var->type->is_record()) {
    #####:    #####: 5023:                  for (unsigned i = 0; i < var->type->length; i++) {
    #####:    #####: 5024:                     if (var->type->fields.structure[i].type->is_array() ||
    #####:    #####: 5025:                         var->type->fields.structure[i].type->is_record())
        -:        -: 5026:                        _mesa_glsl_error(&loc, state,
        -:        -: 5027:                                         "fragement shader input cannot have "
        -:        -: 5028:                                         "a struct that contains an "
    #####:    #####: 5029:                                         "array or struct");
        -:        -: 5030:                  }
        -:        -: 5031:               }
        -:        -: 5032:            }
    #####:    #####: 5033:         } else if (state->stage == MESA_SHADER_TESS_CTRL ||
    #####:    #####: 5034:                    state->stage == MESA_SHADER_TESS_EVAL) {
    #####:    #####: 5035:            handle_tess_shader_input_decl(state, loc, var);
        -:        -: 5036:         }
        2:        2: 5037:      } else if (var->data.mode == ir_var_shader_out) {
    #####:    #####: 5038:         const glsl_type *check_type = var->type->without_array();
        -:        -: 5039:
        -:        -: 5040:         /* From section 4.3.6 (Output variables) of the GLSL 4.40 spec:
        -:        -: 5041:          *
        -:        -: 5042:          *     It is a compile-time error to declare a vertex, tessellation
        -:        -: 5043:          *     evaluation, tessellation control, or geometry shader output
        -:        -: 5044:          *     that contains any of the following:
        -:        -: 5045:          *
        -:        -: 5046:          *     * A Boolean type (bool, bvec2 ...)
        -:        -: 5047:          *     * An opaque type
        -:        -: 5048:          */
    #####:    #####: 5049:         if (check_type->is_boolean() || check_type->contains_opaque())
    #####:    #####: 5050:            _mesa_glsl_error(&loc, state,
        -:        -: 5051:                             "%s shader output cannot have type %s",
    #####:    #####: 5052:                             _mesa_shader_stage_to_string(state->stage),
    #####:    #####: 5053:                             check_type->name);
        -:        -: 5054:
        -:        -: 5055:         /* From section 4.3.6 (Output variables) of the GLSL 4.40 spec:
        -:        -: 5056:          *
        -:        -: 5057:          *     It is a compile-time error to declare a fragment shader output
        -:        -: 5058:          *     that contains any of the following:
        -:        -: 5059:          *
        -:        -: 5060:          *     * A Boolean type (bool, bvec2 ...)
        -:        -: 5061:          *     * A double-precision scalar or vector (double, dvec2 ...)
        -:        -: 5062:          *     * An opaque type
        -:        -: 5063:          *     * Any matrix type
        -:        -: 5064:          *     * A structure
        -:        -: 5065:          */
    #####:    #####: 5066:         if (state->stage == MESA_SHADER_FRAGMENT) {
    #####:    #####: 5067:            if (check_type->is_record() || check_type->is_matrix())
        -:        -: 5068:               _mesa_glsl_error(&loc, state,
        -:        -: 5069:                                "fragment shader output "
    #####:    #####: 5070:                                "cannot have struct or matrix type");
    #####:    #####: 5071:            switch (check_type->base_type) {
        -:        -: 5072:            case GLSL_TYPE_UINT:
        -:        -: 5073:            case GLSL_TYPE_INT:
        -:        -: 5074:            case GLSL_TYPE_FLOAT:
    #####:    #####: 5075:               break;
        -:        -: 5076:            default:
        -:        -: 5077:               _mesa_glsl_error(&loc, state,
        -:        -: 5078:                                "fragment shader output cannot have "
    #####:    #####: 5079:                                "type %s", check_type->name);
        -:        -: 5080:            }
        -:        -: 5081:         }
        -:        -: 5082:
        -:        -: 5083:         /* From section 4.3.6 (Output Variables) of the GLSL ES 3.10 spec:
        -:        -: 5084:          *
        -:        -: 5085:          *     It is a compile-time error to declare a vertex shader output
        -:        -: 5086:          *     with, or that contains, any of the following types:
        -:        -: 5087:          *
        -:        -: 5088:          *     * A boolean type
        -:        -: 5089:          *     * An opaque type
        -:        -: 5090:          *     * An array of arrays
        -:        -: 5091:          *     * An array of structures
        -:        -: 5092:          *     * A structure containing an array
        -:        -: 5093:          *     * A structure containing a structure
        -:        -: 5094:          *
        -:        -: 5095:          *     It is a compile-time error to declare a fragment shader output
        -:        -: 5096:          *     with, or that contains, any of the following types:
        -:        -: 5097:          *
        -:        -: 5098:          *     * A boolean type
        -:        -: 5099:          *     * An opaque type
        -:        -: 5100:          *     * A matrix
        -:        -: 5101:          *     * A structure
        -:        -: 5102:          *     * An array of array
        -:        -: 5103:          *
        -:        -: 5104:          * ES 3.20 updates this to apply to tessellation and geometry shaders
        -:        -: 5105:          * as well.  Because there are per-vertex arrays in the new stages,
        -:        -: 5106:          * it strikes the "array of..." rules and replaces them with these:
        -:        -: 5107:          *
        -:        -: 5108:          *     * For per-vertex-arrayed variables (applies to tessellation
        -:        -: 5109:          *       control, tessellation evaluation and geometry shaders):
        -:        -: 5110:          *
        -:        -: 5111:          *       * Per-vertex-arrayed arrays of arrays
        -:        -: 5112:          *       * Per-vertex-arrayed arrays of structures
        -:        -: 5113:          *
        -:        -: 5114:          *     * For non-per-vertex-arrayed variables:
        -:        -: 5115:          *
        -:        -: 5116:          *       * An array of arrays
        -:        -: 5117:          *       * An array of structures
        -:        -: 5118:          *
        -:        -: 5119:          * which basically says to unwrap the per-vertex aspect and apply
        -:        -: 5120:          * the old rules.
        -:        -: 5121:          */
    #####:    #####: 5122:         if (state->es_shader) {
    #####:    #####: 5123:            if (var->type->is_array() &&
    #####:    #####: 5124:                var->type->fields.array->is_array()) {
    #####:    #####: 5125:               _mesa_glsl_error(&loc, state,
        -:        -: 5126:                                "%s shader output "
        -:        -: 5127:                                "cannot have an array of arrays",
    #####:    #####: 5128:                                _mesa_shader_stage_to_string(state->stage));
        -:        -: 5129:            }
    #####:    #####: 5130:            if (state->stage <= MESA_SHADER_GEOMETRY) {
    #####:    #####: 5131:               const glsl_type *type = var->type;
        -:        -: 5132:
    #####:    #####: 5133:               if (state->stage == MESA_SHADER_TESS_CTRL &&
    #####:    #####: 5134:                   !var->data.patch && var->type->is_array()) {
    #####:    #####: 5135:                  type = var->type->fields.array;
        -:        -: 5136:               }
        -:        -: 5137:
    #####:    #####: 5138:               if (type->is_array() && type->fields.array->is_record()) {
    #####:    #####: 5139:                  _mesa_glsl_error(&loc, state,
        -:        -: 5140:                                   "%s shader output cannot have "
        -:        -: 5141:                                   "an array of structs",
    #####:    #####: 5142:                                   _mesa_shader_stage_to_string(state->stage));
        -:        -: 5143:               }
    #####:    #####: 5144:               if (type->is_record()) {
    #####:    #####: 5145:                  for (unsigned i = 0; i < type->length; i++) {
    #####:    #####: 5146:                     if (type->fields.structure[i].type->is_array() ||
    #####:    #####: 5147:                         type->fields.structure[i].type->is_record())
    #####:    #####: 5148:                        _mesa_glsl_error(&loc, state,
        -:        -: 5149:                                         "%s shader output cannot have a "
        -:        -: 5150:                                         "struct that contains an "
        -:        -: 5151:                                         "array or struct",
    #####:    #####: 5152:                                         _mesa_shader_stage_to_string(state->stage));
        -:        -: 5153:                  }
        -:        -: 5154:               }
        -:        -: 5155:            }
        -:        -: 5156:         }
        -:        -: 5157:
    #####:    #####: 5158:         if (state->stage == MESA_SHADER_TESS_CTRL) {
    #####:    #####: 5159:            handle_tess_ctrl_shader_output_decl(state, loc, var);
        -:        -: 5160:         }
        2:        2: 5161:      } else if (var->type->contains_subroutine()) {
        -:        -: 5162:         /* declare subroutine uniforms as hidden */
    #####:    #####: 5163:         var->data.how_declared = ir_var_hidden;
        -:        -: 5164:      }
        -:        -: 5165:
        -:        -: 5166:      /* From section 4.3.4 of the GLSL 4.00 spec:
        -:        -: 5167:       *    "Input variables may not be declared using the patch in qualifier
        -:        -: 5168:       *    in tessellation control or geometry shaders."
        -:        -: 5169:       *
        -:        -: 5170:       * From section 4.3.6 of the GLSL 4.00 spec:
        -:        -: 5171:       *    "It is an error to use patch out in a vertex, tessellation
        -:        -: 5172:       *    evaluation, or geometry shader."
        -:        -: 5173:       *
        -:        -: 5174:       * This doesn't explicitly forbid using them in a fragment shader, but
        -:        -: 5175:       * that's probably just an oversight.
        -:        -: 5176:       */
        8:        8: 5177:      if (state->stage != MESA_SHADER_TESS_EVAL
        8:        8: 5178:          && this->type->qualifier.flags.q.patch
    #####:    #####: 5179:          && this->type->qualifier.flags.q.in) {
        -:        -: 5180:
        -:        -: 5181:         _mesa_glsl_error(&loc, state, "'patch in' can only be used in a "
    #####:    #####: 5182:                          "tessellation evaluation shader");
        -:        -: 5183:      }
        -:        -: 5184:
        8:        8: 5185:      if (state->stage != MESA_SHADER_TESS_CTRL
        8:        8: 5186:          && this->type->qualifier.flags.q.patch
    #####:    #####: 5187:          && this->type->qualifier.flags.q.out) {
        -:        -: 5188:
        -:        -: 5189:         _mesa_glsl_error(&loc, state, "'patch out' can only be used in a "
    #####:    #####: 5190:                          "tessellation control shader");
        -:        -: 5191:      }
        -:        -: 5192:
        -:        -: 5193:      /* Precision qualifiers exists only in GLSL versions 1.00 and >= 1.30.
        -:        -: 5194:       */
        8:        8: 5195:      if (this->type->qualifier.precision != ast_precision_none) {
    #####:    #####: 5196:         state->check_precision_qualifiers_allowed(&loc);
        -:        -: 5197:      }
        -:        -: 5198:
        8:        8: 5199:      if (this->type->qualifier.precision != ast_precision_none &&
    #####:    #####: 5200:          !precision_qualifier_allowed(var->type)) {
        -:        -: 5201:         _mesa_glsl_error(&loc, state,
        -:        -: 5202:                          "precision qualifiers apply only to floating point"
    #####:    #####: 5203:                          ", integer and opaque types");
        -:        -: 5204:      }
        -:        -: 5205:
        -:        -: 5206:      /* From section 4.1.7 of the GLSL 4.40 spec:
        -:        -: 5207:       *
        -:        -: 5208:       *    "[Opaque types] can only be declared as function
        -:        -: 5209:       *     parameters or uniform-qualified variables."
        -:        -: 5210:       */
        8:        8: 5211:      if (var_type->contains_opaque() &&
    #####:    #####: 5212:          !this->type->qualifier.flags.q.uniform) {
        -:        -: 5213:         _mesa_glsl_error(&loc, state,
    #####:    #####: 5214:                          "opaque variables must be declared uniform");
        -:        -: 5215:      }
        -:        -: 5216:
        -:        -: 5217:      /* Process the initializer and add its instructions to a temporary
        -:        -: 5218:       * list.  This list will be added to the instruction stream (below) after
        -:        -: 5219:       * the declaration is added.  This is done because in some cases (such as
        -:        -: 5220:       * redeclarations) the declaration may not actually be added to the
        -:        -: 5221:       * instruction stream.
        -:        -: 5222:       */
        8:        8: 5223:      exec_list initializer_instructions;
        -:        -: 5224:
        -:        -: 5225:      /* Examine var name here since var may get deleted in the next call */
        8:        8: 5226:      bool var_is_gl_id = is_gl_identifier(var->name);
        -:        -: 5227:
        -:        -: 5228:      bool is_redeclaration;
        -:        -: 5229:      ir_variable *declared_var =
        8:        8: 5230:         get_variable_being_redeclared(var, decl->get_location(), state,
        -:        -: 5231:                                       false /* allow_all_redeclarations */,
        8:        8: 5232:                                       &is_redeclaration);
        8:        8: 5233:      if (is_redeclaration) {
    #####:    #####: 5234:         if (var_is_gl_id &&
    #####:    #####: 5235:             declared_var->data.how_declared == ir_var_declared_in_block) {
    #####:    #####: 5236:            _mesa_glsl_error(&loc, state,
        -:        -: 5237:                             "`%s' has already been redeclared using "
    #####:    #####: 5238:                             "gl_PerVertex", declared_var->name);
        -:        -: 5239:         }
    #####:    #####: 5240:         declared_var->data.how_declared = ir_var_declared_normally;
        -:        -: 5241:      }
        -:        -: 5242:
        8:        8: 5243:      if (decl->initializer != NULL) {
        5:        5: 5244:         result = process_initializer(declared_var,
        -:        -: 5245:                                      decl, this->type,
        5:        5: 5246:                                      &initializer_instructions, state);
        -:        -: 5247:      } else {
        3:        3: 5248:         validate_array_dimensions(var_type, state, &loc);
        -:        -: 5249:      }
        -:        -: 5250:
        -:        -: 5251:      /* From page 23 (page 29 of the PDF) of the GLSL 1.10 spec:
        -:        -: 5252:       *
        -:        -: 5253:       *     "It is an error to write to a const variable outside of
        -:        -: 5254:       *      its declaration, so they must be initialized when
        -:        -: 5255:       *      declared."
        -:        -: 5256:       */
        8:        8: 5257:      if (this->type->qualifier.flags.q.constant && decl->initializer == NULL) {
    #####:    #####: 5258:         _mesa_glsl_error(& loc, state,
        -:        -: 5259:                          "const declaration of `%s' must be initialized",
    #####:    #####: 5260:                          decl->identifier);
        -:        -: 5261:      }
        -:        -: 5262:
        8:        8: 5263:      if (state->es_shader) {
    #####:    #####: 5264:         const glsl_type *const t = declared_var->type;
        -:        -: 5265:
        -:        -: 5266:         /* Skip the unsized array check for TCS/TES/GS inputs & TCS outputs.
        -:        -: 5267:          *
        -:        -: 5268:          * The GL_OES_tessellation_shader spec says about inputs:
        -:        -: 5269:          *
        -:        -: 5270:          *    "Declaring an array size is optional. If no size is specified,
        -:        -: 5271:          *     it will be taken from the implementation-dependent maximum
        -:        -: 5272:          *     patch size (gl_MaxPatchVertices)."
        -:        -: 5273:          *
        -:        -: 5274:          * and about TCS outputs:
        -:        -: 5275:          *
        -:        -: 5276:          *    "If no size is specified, it will be taken from output patch
        -:        -: 5277:          *     size declared in the shader."
        -:        -: 5278:          *
        -:        -: 5279:          * The GL_OES_geometry_shader spec says:
        -:        -: 5280:          *
        -:        -: 5281:          *    "All geometry shader input unsized array declarations will be
        -:        -: 5282:          *     sized by an earlier input primitive layout qualifier, when
        -:        -: 5283:          *     present, as per the following table."
        -:        -: 5284:          */
        -:        -: 5285:         const bool implicitly_sized =
    #####:    #####: 5286:            (declared_var->data.mode == ir_var_shader_in &&
    #####:    #####: 5287:             state->stage >= MESA_SHADER_TESS_CTRL &&
    #####:    #####: 5288:             state->stage <= MESA_SHADER_GEOMETRY) ||
    #####:    #####: 5289:            (declared_var->data.mode == ir_var_shader_out &&
    #####:    #####: 5290:             state->stage == MESA_SHADER_TESS_CTRL);
        -:        -: 5291:
    #####:    #####: 5292:         if (t->is_unsized_array() && !implicitly_sized)
        -:        -: 5293:            /* Section 10.17 of the GLSL ES 1.00 specification states that
        -:        -: 5294:             * unsized array declarations have been removed from the language.
        -:        -: 5295:             * Arrays that are sized using an initializer are still explicitly
        -:        -: 5296:             * sized.  However, GLSL ES 1.00 does not allow array
        -:        -: 5297:             * initializers.  That is only allowed in GLSL ES 3.00.
        -:        -: 5298:             *
        -:        -: 5299:             * Section 4.1.9 (Arrays) of the GLSL ES 3.00 spec says:
        -:        -: 5300:             *
        -:        -: 5301:             *     "An array type can also be formed without specifying a size
        -:        -: 5302:             *     if the definition includes an initializer:
        -:        -: 5303:             *
        -:        -: 5304:             *         float x[] = float[2] (1.0, 2.0);     // declares an array of size 2
        -:        -: 5305:             *         float y[] = float[] (1.0, 2.0, 3.0); // declares an array of size 3
        -:        -: 5306:             *
        -:        -: 5307:             *         float a[5];
        -:        -: 5308:             *         float b[] = a;"
        -:        -: 5309:             */
        -:        -: 5310:            _mesa_glsl_error(& loc, state,
        -:        -: 5311:                             "unsized array declarations are not allowed in "
    #####:    #####: 5312:                             "GLSL ES");
        -:        -: 5313:      }
        -:        -: 5314:
        -:        -: 5315:      /* If the declaration is not a redeclaration, there are a few additional
        -:        -: 5316:       * semantic checks that must be applied.  In addition, variable that was
        -:        -: 5317:       * created for the declaration should be added to the IR stream.
        -:        -: 5318:       */
        8:        8: 5319:      if (!is_redeclaration) {
        8:        8: 5320:         validate_identifier(decl->identifier, loc, state);
        -:        -: 5321:
        -:        -: 5322:         /* Add the variable to the symbol table.  Note that the initializer's
        -:        -: 5323:          * IR was already processed earlier (though it hasn't been emitted
        -:        -: 5324:          * yet), without the variable in scope.
        -:        -: 5325:          *
        -:        -: 5326:          * This differs from most C-like languages, but it follows the GLSL
        -:        -: 5327:          * specification.  From page 28 (page 34 of the PDF) of the GLSL 1.50
        -:        -: 5328:          * spec:
        -:        -: 5329:          *
        -:        -: 5330:          *     "Within a declaration, the scope of a name starts immediately
        -:        -: 5331:          *     after the initializer if present or immediately after the name
        -:        -: 5332:          *     being declared if not."
        -:        -: 5333:          */
        8:        8: 5334:         if (!state->symbols->add_variable(declared_var)) {
    #####:    #####: 5335:            YYLTYPE loc = this->get_location();
    #####:    #####: 5336:            _mesa_glsl_error(&loc, state, "name `%s' already taken in the "
    #####:    #####: 5337:                             "current scope", decl->identifier);
    #####:    #####: 5338:            continue;
        -:        -: 5339:         }
        -:        -: 5340:
        -:        -: 5341:         /* Push the variable declaration to the top.  It means that all the
        -:        -: 5342:          * variable declarations will appear in a funny last-to-first order,
        -:        -: 5343:          * but otherwise we run into trouble if a function is prototyped, a
        -:        -: 5344:          * global var is decled, then the function is defined with usage of
        -:        -: 5345:          * the global var.  See glslparsertest's CorrectModule.frag.
        -:        -: 5346:          */
        8:        8: 5347:         instructions->push_head(declared_var);
        -:        -: 5348:      }
        -:        -: 5349:
        8:        8: 5350:      instructions->append_list(&initializer_instructions);
        -:        -: 5351:   }
        -:        -: 5352:
        -:        -: 5353:
        -:        -: 5354:   /* Generally, variable declarations do not have r-values.  However,
        -:        -: 5355:    * one is used for the declaration in
        -:        -: 5356:    *
        -:        -: 5357:    * while (bool b = some_condition()) {
        -:        -: 5358:    *   ...
        -:        -: 5359:    * }
        -:        -: 5360:    *
        -:        -: 5361:    * so we return the rvalue from the last seen declaration here.
        -:        -: 5362:    */
        8:        8: 5363:   return result;
        -:        -: 5364:}
        -:        -: 5365:
        -:        -: 5366:
        -:        -: 5367:ir_rvalue *
        3:        3: 5368:ast_parameter_declarator::hir(exec_list *instructions,
        -:        -: 5369:                              struct _mesa_glsl_parse_state *state)
        -:        -: 5370:{
        3:        3: 5371:   void *ctx = state;
        -:        -: 5372:   const struct glsl_type *type;
        3:        3: 5373:   const char *name = NULL;
        3:        3: 5374:   YYLTYPE loc = this->get_location();
        -:        -: 5375:
        3:        3: 5376:   type = this->type->glsl_type(& name, state);
        -:        -: 5377:
        3:        3: 5378:   if (type == NULL) {
    #####:    #####: 5379:      if (name != NULL) {
    #####:    #####: 5380:         _mesa_glsl_error(& loc, state,
        -:        -: 5381:                          "invalid type `%s' in declaration of `%s'",
    #####:    #####: 5382:                          name, this->identifier);
        -:        -: 5383:      } else {
    #####:    #####: 5384:         _mesa_glsl_error(& loc, state,
        -:        -: 5385:                          "invalid type in declaration of `%s'",
    #####:    #####: 5386:                          this->identifier);
        -:        -: 5387:      }
        -:        -: 5388:
    #####:    #####: 5389:      type = glsl_type::error_type;
        -:        -: 5390:   }
        -:        -: 5391:
        -:        -: 5392:   /* From page 62 (page 68 of the PDF) of the GLSL 1.50 spec:
        -:        -: 5393:    *
        -:        -: 5394:    *    "Functions that accept no input arguments need not use void in the
        -:        -: 5395:    *    argument list because prototypes (or definitions) are required and
        -:        -: 5396:    *    therefore there is no ambiguity when an empty argument list "( )" is
        -:        -: 5397:    *    declared. The idiom "(void)" as a parameter list is provided for
        -:        -: 5398:    *    convenience."
        -:        -: 5399:    *
        -:        -: 5400:    * Placing this check here prevents a void parameter being set up
        -:        -: 5401:    * for a function, which avoids tripping up checks for main taking
        -:        -: 5402:    * parameters and lookups of an unnamed symbol.
        -:        -: 5403:    */
        3:        3: 5404:   if (type->is_void()) {
        1:        1: 5405:      if (this->identifier != NULL)
        -:        -: 5406:         _mesa_glsl_error(& loc, state,
    #####:    #####: 5407:                          "named parameter cannot have type `void'");
        -:        -: 5408:
        1:        1: 5409:      is_void = true;
        1:        1: 5410:      return NULL;
        -:        -: 5411:   }
        -:        -: 5412:
        2:        2: 5413:   if (formal_parameter && (this->identifier == NULL)) {
    #####:    #####: 5414:      _mesa_glsl_error(& loc, state, "formal parameter lacks a name");
    #####:    #####: 5415:      return NULL;
        -:        -: 5416:   }
        -:        -: 5417:
        -:        -: 5418:   /* This only handles "vec4 foo[..]".  The earlier specifier->glsl_type(...)
        -:        -: 5419:    * call already handled the "vec4[..] foo" case.
        -:        -: 5420:    */
        2:        2: 5421:   type = process_array_type(&loc, type, this->array_specifier, state);
        -:        -: 5422:
        2:        2: 5423:   if (!type->is_error() && type->is_unsized_array()) {
        -:        -: 5424:      _mesa_glsl_error(&loc, state, "arrays passed as parameters must have "
    #####:    #####: 5425:                       "a declared size");
    #####:    #####: 5426:      type = glsl_type::error_type;
        -:        -: 5427:   }
        -:        -: 5428:
        2:        2: 5429:   is_void = false;
        -:        -: 5430:   ir_variable *var = new(ctx)
        2:        2: 5431:      ir_variable(type, this->identifier, ir_var_function_in);
        -:        -: 5432:
        -:        -: 5433:   /* Apply any specified qualifiers to the parameter declaration.  Note that
        -:        -: 5434:    * for function parameters the default mode is 'in'.
        -:        -: 5435:    */
        2:        2: 5436:   apply_type_qualifier_to_variable(& this->type->qualifier, var, state, & loc,
        2:        2: 5437:                                    true);
        -:        -: 5438:
        -:        -: 5439:   /* From section 4.1.7 of the GLSL 4.40 spec:
        -:        -: 5440:    *
        -:        -: 5441:    *   "Opaque variables cannot be treated as l-values; hence cannot
        -:        -: 5442:    *    be used as out or inout function parameters, nor can they be
        -:        -: 5443:    *    assigned into."
        -:        -: 5444:    */
        6:        6: 5445:   if ((var->data.mode == ir_var_function_inout || var->data.mode == ir_var_function_out)
        2:        2: 5446:       && type->contains_opaque()) {
        -:        -: 5447:      _mesa_glsl_error(&loc, state, "out and inout parameters cannot "
    #####:    #####: 5448:                       "contain opaque variables");
    #####:    #####: 5449:      type = glsl_type::error_type;
        -:        -: 5450:   }
        -:        -: 5451:
        -:        -: 5452:   /* From page 39 (page 45 of the PDF) of the GLSL 1.10 spec:
        -:        -: 5453:    *
        -:        -: 5454:    *    "When calling a function, expressions that do not evaluate to
        -:        -: 5455:    *     l-values cannot be passed to parameters declared as out or inout."
        -:        -: 5456:    *
        -:        -: 5457:    * From page 32 (page 38 of the PDF) of the GLSL 1.10 spec:
        -:        -: 5458:    *
        -:        -: 5459:    *    "Other binary or unary expressions, non-dereferenced arrays,
        -:        -: 5460:    *     function names, swizzles with repeated fields, and constants
        -:        -: 5461:    *     cannot be l-values."
        -:        -: 5462:    *
        -:        -: 5463:    * So for GLSL 1.10, passing an array as an out or inout parameter is not
        -:        -: 5464:    * allowed.  This restriction is removed in GLSL 1.20, and in GLSL ES.
        -:        -: 5465:    */
        6:        6: 5466:   if ((var->data.mode == ir_var_function_inout || var->data.mode == ir_var_function_out)
    #####:    #####: 5467:       && type->is_array()
        2:        2: 5468:       && !state->check_version(120, 100, &loc,
    #####:    #####: 5469:                                "arrays cannot be out or inout parameters")) {
    #####:    #####: 5470:      type = glsl_type::error_type;
        -:        -: 5471:   }
        -:        -: 5472:
        2:        2: 5473:   instructions->push_tail(var);
        -:        -: 5474:
        -:        -: 5475:   /* Parameter declarations do not have r-values.
        -:        -: 5476:    */
        2:        2: 5477:   return NULL;
        -:        -: 5478:}
        -:        -: 5479:
        -:        -: 5480:
        -:        -: 5481:void
        3:        3: 5482:ast_parameter_declarator::parameters_to_hir(exec_list *ast_parameters,
        -:        -: 5483:                                            bool formal,
        -:        -: 5484:                                            exec_list *ir_parameters,
        -:        -: 5485:                                            _mesa_glsl_parse_state *state)
        -:        -: 5486:{
        3:        3: 5487:   ast_parameter_declarator *void_param = NULL;
        3:        3: 5488:   unsigned count = 0;
        -:        -: 5489:
        6:        6: 5490:   foreach_list_typed (ast_parameter_declarator, param, link, ast_parameters) {
        3:        3: 5491:      param->formal_parameter = formal;
        3:        3: 5492:      param->hir(ir_parameters, state);
        -:        -: 5493:
        3:        3: 5494:      if (param->is_void)
        1:        1: 5495:         void_param = param;
        -:        -: 5496:
        3:        3: 5497:      count++;
        -:        -: 5498:   }
        -:        -: 5499:
        3:        3: 5500:   if ((void_param != NULL) && (count > 1)) {
    #####:    #####: 5501:      YYLTYPE loc = void_param->get_location();
        -:        -: 5502:
        -:        -: 5503:      _mesa_glsl_error(& loc, state,
    #####:    #####: 5504:                       "`void' parameter must be only parameter");
        -:        -: 5505:   }
        3:        3: 5506:}
        -:        -: 5507:
        -:        -: 5508:
        -:        -: 5509:void
        3:        3: 5510:emit_function(_mesa_glsl_parse_state *state, ir_function *f)
        -:        -: 5511:{
        -:        -: 5512:   /* IR invariants disallow function declarations or definitions
        -:        -: 5513:    * nested within other function definitions.  But there is no
        -:        -: 5514:    * requirement about the relative order of function declarations
        -:        -: 5515:    * and definitions with respect to one another.  So simply insert
        -:        -: 5516:    * the new ir_function block at the end of the toplevel instruction
        -:        -: 5517:    * list.
        -:        -: 5518:    */
        3:        3: 5519:   state->toplevel_ir->push_tail(f);
        3:        3: 5520:}
        -:        -: 5521:
        -:        -: 5522:
        -:        -: 5523:ir_rvalue *
        3:        3: 5524:ast_function::hir(exec_list *instructions,
        -:        -: 5525:                  struct _mesa_glsl_parse_state *state)
        -:        -: 5526:{
        3:        3: 5527:   void *ctx = state;
        3:        3: 5528:   ir_function *f = NULL;
        3:        3: 5529:   ir_function_signature *sig = NULL;
        3:        3: 5530:   exec_list hir_parameters;
        3:        3: 5531:   YYLTYPE loc = this->get_location();
        -:        -: 5532:
        3:        3: 5533:   const char *const name = identifier;
        -:        -: 5534:
        -:        -: 5535:   /* New functions are always added to the top-level IR instruction stream,
        -:        -: 5536:    * so this instruction list pointer is ignored.  See also emit_function
        -:        -: 5537:    * (called below).
        -:        -: 5538:    */
        -:        -: 5539:   (void) instructions;
        -:        -: 5540:
        -:        -: 5541:   /* From page 21 (page 27 of the PDF) of the GLSL 1.20 spec,
        -:        -: 5542:    *
        -:        -: 5543:    *   "Function declarations (prototypes) cannot occur inside of functions;
        -:        -: 5544:    *   they must be at global scope, or for the built-in functions, outside
        -:        -: 5545:    *   the global scope."
        -:        -: 5546:    *
        -:        -: 5547:    * From page 27 (page 33 of the PDF) of the GLSL ES 1.00.16 spec,
        -:        -: 5548:    *
        -:        -: 5549:    *   "User defined functions may only be defined within the global scope."
        -:        -: 5550:    *
        -:        -: 5551:    * Note that this language does not appear in GLSL 1.10.
        -:        -: 5552:    */
        3:        3: 5553:   if ((state->current_function != NULL) &&
    #####:    #####: 5554:       state->is_version(120, 100)) {
    #####:    #####: 5555:      YYLTYPE loc = this->get_location();
        -:        -: 5556:      _mesa_glsl_error(&loc, state,
        -:        -: 5557:                       "declaration of function `%s' not allowed within "
    #####:    #####: 5558:                       "function body", name);
        -:        -: 5559:   }
        -:        -: 5560:
        3:        3: 5561:   validate_identifier(name, this->get_location(), state);
        -:        -: 5562:
        -:        -: 5563:   /* Convert the list of function parameters to HIR now so that they can be
        -:        -: 5564:    * used below to compare this function's signature with previously seen
        -:        -: 5565:    * signatures for functions with the same name.
        -:        -: 5566:    */
        3:        3: 5567:   ast_parameter_declarator::parameters_to_hir(& this->parameters,
        3:        3: 5568:                                               is_definition,
        3:        3: 5569:                                               & hir_parameters, state);
        -:        -: 5570:
        -:        -: 5571:   const char *return_type_name;
        -:        -: 5572:   const glsl_type *return_type =
        3:        3: 5573:      this->return_type->glsl_type(& return_type_name, state);
        -:        -: 5574:
        3:        3: 5575:   if (!return_type) {
    #####:    #####: 5576:      YYLTYPE loc = this->get_location();
        -:        -: 5577:      _mesa_glsl_error(&loc, state,
        -:        -: 5578:                       "function `%s' has undeclared return type `%s'",
    #####:    #####: 5579:                       name, return_type_name);
    #####:    #####: 5580:      return_type = glsl_type::error_type;
        -:        -: 5581:   }
        -:        -: 5582:
        -:        -: 5583:   /* ARB_shader_subroutine states:
        -:        -: 5584:    *  "Subroutine declarations cannot be prototyped. It is an error to prepend
        -:        -: 5585:    *   subroutine(...) to a function declaration."
        -:        -: 5586:    */
        3:        3: 5587:   if (this->return_type->qualifier.subroutine_list && !is_definition) {
    #####:    #####: 5588:      YYLTYPE loc = this->get_location();
        -:        -: 5589:      _mesa_glsl_error(&loc, state,
        -:        -: 5590:                       "function declaration `%s' cannot have subroutine prepended",
    #####:    #####: 5591:                       name);
        -:        -: 5592:   }
        -:        -: 5593:
        -:        -: 5594:   /* From page 56 (page 62 of the PDF) of the GLSL 1.30 spec:
        -:        -: 5595:    * "No qualifier is allowed on the return type of a function."
        -:        -: 5596:    */
        3:        3: 5597:   if (this->return_type->has_qualifiers(state)) {
    #####:    #####: 5598:      YYLTYPE loc = this->get_location();
        -:        -: 5599:      _mesa_glsl_error(& loc, state,
    #####:    #####: 5600:                       "function `%s' return type has qualifiers", name);
        -:        -: 5601:   }
        -:        -: 5602:
        -:        -: 5603:   /* Section 6.1 (Function Definitions) of the GLSL 1.20 spec says:
        -:        -: 5604:    *
        -:        -: 5605:    *     "Arrays are allowed as arguments and as the return type. In both
        -:        -: 5606:    *     cases, the array must be explicitly sized."
        -:        -: 5607:    */
        3:        3: 5608:   if (return_type->is_unsized_array()) {
    #####:    #####: 5609:      YYLTYPE loc = this->get_location();
        -:        -: 5610:      _mesa_glsl_error(& loc, state,
        -:        -: 5611:                       "function `%s' return type array must be explicitly "
    #####:    #####: 5612:                       "sized", name);
        -:        -: 5613:   }
        -:        -: 5614:
        -:        -: 5615:   /* From section 4.1.7 of the GLSL 4.40 spec:
        -:        -: 5616:    *
        -:        -: 5617:    *    "[Opaque types] can only be declared as function parameters
        -:        -: 5618:    *     or uniform-qualified variables."
        -:        -: 5619:    */
        3:        3: 5620:   if (return_type->contains_opaque()) {
    #####:    #####: 5621:      YYLTYPE loc = this->get_location();
        -:        -: 5622:      _mesa_glsl_error(&loc, state,
        -:        -: 5623:                       "function `%s' return type can't contain an opaque type",
    #####:    #####: 5624:                       name);
        -:        -: 5625:   }
        -:        -: 5626:
        -:        -: 5627:   /**/
        3:        3: 5628:   if (return_type->is_subroutine()) {
    #####:    #####: 5629:      YYLTYPE loc = this->get_location();
        -:        -: 5630:      _mesa_glsl_error(&loc, state,
        -:        -: 5631:                       "function `%s' return type can't be a subroutine type",
    #####:    #####: 5632:                       name);
        -:        -: 5633:   }
        -:        -: 5634:
        -:        -: 5635:
        -:        -: 5636:   /* Create an ir_function if one doesn't already exist. */
        3:        3: 5637:   f = state->symbols->get_function(name);
        3:        3: 5638:   if (f == NULL) {
        3:        3: 5639:      f = new(ctx) ir_function(name);
        3:        3: 5640:      if (!this->return_type->qualifier.is_subroutine_decl()) {
        3:        3: 5641:         if (!state->symbols->add_function(f)) {
        -:        -: 5642:            /* This function name shadows a non-function use of the same name. */
    #####:    #####: 5643:            YYLTYPE loc = this->get_location();
        -:        -: 5644:            _mesa_glsl_error(&loc, state, "function name `%s' conflicts with "
    #####:    #####: 5645:                             "non-function", name);
    #####:    #####: 5646:            return NULL;
        -:        -: 5647:         }
        -:        -: 5648:      }
        3:        3: 5649:      emit_function(state, f);
        -:        -: 5650:   }
        -:        -: 5651:
        -:        -: 5652:   /* From GLSL ES 3.0 spec, chapter 6.1 "Function Definitions", page 71:
        -:        -: 5653:    *
        -:        -: 5654:    * "A shader cannot redefine or overload built-in functions."
        -:        -: 5655:    *
        -:        -: 5656:    * While in GLSL ES 1.0 specification, chapter 8 "Built-in Functions":
        -:        -: 5657:    *
        -:        -: 5658:    * "User code can overload the built-in functions but cannot redefine
        -:        -: 5659:    * them."
        -:        -: 5660:    */
        3:        3: 5661:   if (state->es_shader && state->language_version >= 300) {
        -:        -: 5662:      /* Local shader has no exact candidates; check the built-ins. */
    #####:    #####: 5663:      _mesa_glsl_initialize_builtin_functions();
    #####:    #####: 5664:      if (_mesa_glsl_has_builtin_function(name)) {
    #####:    #####: 5665:         YYLTYPE loc = this->get_location();
        -:        -: 5666:         _mesa_glsl_error(& loc, state,
        -:        -: 5667:                          "A shader cannot redefine or overload built-in "
    #####:    #####: 5668:                          "function `%s' in GLSL ES 3.00", name);
    #####:    #####: 5669:         return NULL;
        -:        -: 5670:      }
        -:        -: 5671:   }
        -:        -: 5672:
        -:        -: 5673:   /* Verify that this function's signature either doesn't match a previously
        -:        -: 5674:    * seen signature for a function with the same name, or, if a match is found,
        -:        -: 5675:    * that the previously seen signature does not have an associated definition.
        -:        -: 5676:    */
        3:        3: 5677:   if (state->es_shader || f->has_user_signature()) {
    #####:    #####: 5678:      sig = f->exact_matching_signature(state, &hir_parameters);
    #####:    #####: 5679:      if (sig != NULL) {
    #####:    #####: 5680:         const char *badvar = sig->qualifiers_match(&hir_parameters);
    #####:    #####: 5681:         if (badvar != NULL) {
    #####:    #####: 5682:            YYLTYPE loc = this->get_location();
        -:        -: 5683:
        -:        -: 5684:            _mesa_glsl_error(&loc, state, "function `%s' parameter `%s' "
    #####:    #####: 5685:                             "qualifiers don't match prototype", name, badvar);
        -:        -: 5686:         }
        -:        -: 5687:
    #####:    #####: 5688:         if (sig->return_type != return_type) {
    #####:    #####: 5689:            YYLTYPE loc = this->get_location();
        -:        -: 5690:
        -:        -: 5691:            _mesa_glsl_error(&loc, state, "function `%s' return type doesn't "
    #####:    #####: 5692:                             "match prototype", name);
        -:        -: 5693:         }
        -:        -: 5694:
    #####:    #####: 5695:         if (sig->is_defined) {
    #####:    #####: 5696:            if (is_definition) {
    #####:    #####: 5697:               YYLTYPE loc = this->get_location();
    #####:    #####: 5698:               _mesa_glsl_error(& loc, state, "function `%s' redefined", name);
        -:        -: 5699:            } else {
        -:        -: 5700:               /* We just encountered a prototype that exactly matches a
        -:        -: 5701:                * function that's already been defined.  This is redundant,
        -:        -: 5702:                * and we should ignore it.
        -:        -: 5703:                */
    #####:    #####: 5704:               return NULL;
        -:        -: 5705:            }
        -:        -: 5706:         }
        -:        -: 5707:      }
        -:        -: 5708:   }
        -:        -: 5709:
        -:        -: 5710:   /* Verify the return type of main() */
        3:        3: 5711:   if (strcmp(name, "main") == 0) {
        2:        2: 5712:      if (! return_type->is_void()) {
    #####:    #####: 5713:         YYLTYPE loc = this->get_location();
        -:        -: 5714:
    #####:    #####: 5715:         _mesa_glsl_error(& loc, state, "main() must return void");
        -:        -: 5716:      }
        -:        -: 5717:
        2:        2: 5718:      if (!hir_parameters.is_empty()) {
    #####:    #####: 5719:         YYLTYPE loc = this->get_location();
        -:        -: 5720:
    #####:    #####: 5721:         _mesa_glsl_error(& loc, state, "main() must not take any parameters");
        -:        -: 5722:      }
        -:        -: 5723:   }
        -:        -: 5724:
        -:        -: 5725:   /* Finish storing the information about this new function in its signature.
        -:        -: 5726:    */
        3:        3: 5727:   if (sig == NULL) {
        3:        3: 5728:      sig = new(ctx) ir_function_signature(return_type);
        3:        3: 5729:      f->add_signature(sig);
        -:        -: 5730:   }
        -:        -: 5731:
        3:        3: 5732:   sig->replace_parameters(&hir_parameters);
        3:        3: 5733:   signature = sig;
        -:        -: 5734:
        3:        3: 5735:   if (this->return_type->qualifier.subroutine_list) {
        -:        -: 5736:      int idx;
        -:        -: 5737:
    #####:    #####: 5738:      if (this->return_type->qualifier.flags.q.explicit_index) {
        -:        -: 5739:         unsigned qual_index;
    #####:    #####: 5740:         if (process_qualifier_constant(state, &loc, "index",
    #####:    #####: 5741:                                        this->return_type->qualifier.index,
        -:        -: 5742:                                        &qual_index)) {
    #####:    #####: 5743:            if (!state->has_explicit_uniform_location()) {
        -:        -: 5744:               _mesa_glsl_error(&loc, state, "subroutine index requires "
        -:        -: 5745:                                "GL_ARB_explicit_uniform_location or "
    #####:    #####: 5746:                                "GLSL 4.30");
    #####:    #####: 5747:            } else if (qual_index >= MAX_SUBROUTINES) {
        -:        -: 5748:               _mesa_glsl_error(&loc, state,
        -:        -: 5749:                                "invalid subroutine index (%d) index must "
        -:        -: 5750:                                "be a number between 0 and "
        -:        -: 5751:                                "GL_MAX_SUBROUTINES - 1 (%d)", qual_index,
    #####:    #####: 5752:                                MAX_SUBROUTINES - 1);
        -:        -: 5753:            } else {
    #####:    #####: 5754:               f->subroutine_index = qual_index;
        -:        -: 5755:            }
        -:        -: 5756:         }
        -:        -: 5757:      }
        -:        -: 5758:
    #####:    #####: 5759:      f->num_subroutine_types = this->return_type->qualifier.subroutine_list->declarations.length();
    #####:    #####: 5760:      f->subroutine_types = ralloc_array(state, const struct glsl_type *,
    #####:    #####: 5761:                                         f->num_subroutine_types);
    #####:    #####: 5762:      idx = 0;
    #####:    #####: 5763:      foreach_list_typed(ast_declaration, decl, link, &this->return_type->qualifier.subroutine_list->declarations) {
        -:        -: 5764:         const struct glsl_type *type;
        -:        -: 5765:         /* the subroutine type must be already declared */
    #####:    #####: 5766:         type = state->symbols->get_type(decl->identifier);
    #####:    #####: 5767:         if (!type) {
    #####:    #####: 5768:            _mesa_glsl_error(& loc, state, "unknown type '%s' in subroutine function definition", decl->identifier);
        -:        -: 5769:         }
        -:        -: 5770:
    #####:    #####: 5771:         for (int i = 0; i < state->num_subroutine_types; i++) {
    #####:    #####: 5772:            ir_function *fn = state->subroutine_types[i];
    #####:    #####: 5773:            ir_function_signature *tsig = NULL;
        -:        -: 5774:
    #####:    #####: 5775:            if (strcmp(fn->name, decl->identifier))
    #####:    #####: 5776:               continue;
        -:        -: 5777:
    #####:    #####: 5778:            tsig = fn->matching_signature(state, &sig->parameters,
    #####:    #####: 5779:                                          false);
    #####:    #####: 5780:            if (!tsig) {
    #####:    #####: 5781:               _mesa_glsl_error(& loc, state, "subroutine type mismatch '%s' - signatures do not match\n", decl->identifier);
        -:        -: 5782:            } else {
    #####:    #####: 5783:               if (tsig->return_type != sig->return_type) {
    #####:    #####: 5784:                  _mesa_glsl_error(& loc, state, "subroutine type mismatch '%s' - return types do not match\n", decl->identifier);
        -:        -: 5785:               }
        -:        -: 5786:            }
        -:        -: 5787:         }
    #####:    #####: 5788:         f->subroutine_types[idx++] = type;
        -:        -: 5789:      }
    #####:    #####: 5790:      state->subroutines = (ir_function **)reralloc(state, state->subroutines,
        -:        -: 5791:                                                    ir_function *,
    #####:    #####: 5792:                                                    state->num_subroutines + 1);
    #####:    #####: 5793:      state->subroutines[state->num_subroutines] = f;
    #####:    #####: 5794:      state->num_subroutines++;
        -:        -: 5795:
        -:        -: 5796:   }
        -:        -: 5797:
        3:        3: 5798:   if (this->return_type->qualifier.is_subroutine_decl()) {
    #####:    #####: 5799:      if (!state->symbols->add_type(this->identifier, glsl_type::get_subroutine_instance(this->identifier))) {
    #####:    #####: 5800:         _mesa_glsl_error(& loc, state, "type '%s' previously defined", this->identifier);
    #####:    #####: 5801:         return NULL;
        -:        -: 5802:      }
    #####:    #####: 5803:      state->subroutine_types = (ir_function **)reralloc(state, state->subroutine_types,
        -:        -: 5804:                                                         ir_function *,
    #####:    #####: 5805:                                                         state->num_subroutine_types + 1);
    #####:    #####: 5806:      state->subroutine_types[state->num_subroutine_types] = f;
    #####:    #####: 5807:      state->num_subroutine_types++;
        -:        -: 5808:
    #####:    #####: 5809:      f->is_subroutine = true;
        -:        -: 5810:   }
        -:        -: 5811:
        -:        -: 5812:   /* Function declarations (prototypes) do not have r-values.
        -:        -: 5813:    */
        3:        3: 5814:   return NULL;
        -:        -: 5815:}
        -:        -: 5816:
        -:        -: 5817:
        -:        -: 5818:ir_rvalue *
        3:        3: 5819:ast_function_definition::hir(exec_list *instructions,
        -:        -: 5820:                             struct _mesa_glsl_parse_state *state)
        -:        -: 5821:{
        3:        3: 5822:   prototype->is_definition = true;
        3:        3: 5823:   prototype->hir(instructions, state);
        -:        -: 5824:
        3:        3: 5825:   ir_function_signature *signature = prototype->signature;
        3:        3: 5826:   if (signature == NULL)
    #####:    #####: 5827:      return NULL;
        -:        -: 5828:
        3:        3: 5829:   assert(state->current_function == NULL);
        3:        3: 5830:   state->current_function = signature;
        3:        3: 5831:   state->found_return = false;
        -:        -: 5832:
        -:        -: 5833:   /* Duplicate parameters declared in the prototype as concrete variables.
        -:        -: 5834:    * Add these to the symbol table.
        -:        -: 5835:    */
        3:        3: 5836:   state->symbols->push_scope();
        5:        5: 5837:   foreach_in_list(ir_variable, var, &signature->parameters) {
        2:        2: 5838:      assert(var->as_variable() != NULL);
        -:        -: 5839:
        -:        -: 5840:      /* The only way a parameter would "exist" is if two parameters have
        -:        -: 5841:       * the same name.
        -:        -: 5842:       */
        2:        2: 5843:      if (state->symbols->name_declared_this_scope(var->name)) {
    #####:    #####: 5844:         YYLTYPE loc = this->get_location();
        -:        -: 5845:
    #####:    #####: 5846:         _mesa_glsl_error(& loc, state, "parameter `%s' redeclared", var->name);
        -:        -: 5847:      } else {
        2:        2: 5848:         state->symbols->add_variable(var);
        -:        -: 5849:      }
        -:        -: 5850:   }
        -:        -: 5851:
        -:        -: 5852:   /* Convert the body of the function to HIR. */
        3:        3: 5853:   this->body->hir(&signature->body, state);
        3:        3: 5854:   signature->is_defined = true;
        -:        -: 5855:
        3:        3: 5856:   state->symbols->pop_scope();
        -:        -: 5857:
        3:        3: 5858:   assert(state->current_function == signature);
        3:        3: 5859:   state->current_function = NULL;
        -:        -: 5860:
        3:        3: 5861:   if (!signature->return_type->is_void() && !state->found_return) {
    #####:    #####: 5862:      YYLTYPE loc = this->get_location();
    #####:    #####: 5863:      _mesa_glsl_error(& loc, state, "function `%s' has non-void return type "
        -:        -: 5864:                       "%s, but no return statement",
        -:        -: 5865:                       signature->function_name(),
    #####:    #####: 5866:                       signature->return_type->name);
        -:        -: 5867:   }
        -:        -: 5868:
        -:        -: 5869:   /* Function definitions do not have r-values.
        -:        -: 5870:    */
        3:        3: 5871:   return NULL;
        -:        -: 5872:}
        -:        -: 5873:
        -:        -: 5874:
        -:        -: 5875:ir_rvalue *
        2:        2: 5876:ast_jump_statement::hir(exec_list *instructions,
        -:        -: 5877:                        struct _mesa_glsl_parse_state *state)
        -:        -: 5878:{
        2:        2: 5879:   void *ctx = state;
        -:        -: 5880:
        2:        2: 5881:   switch (mode) {
        -:        -: 5882:   case ast_return: {
        -:        -: 5883:      ir_return *inst;
        2:        2: 5884:      assert(state->current_function);
        -:        -: 5885:
        2:        2: 5886:      if (opt_return_value) {
        2:        2: 5887:         ir_rvalue *ret = opt_return_value->hir(instructions, state);
        -:        -: 5888:
        -:        -: 5889:         /* The value of the return type can be NULL if the shader says
        -:        -: 5890:          * 'return foo();' and foo() is a function that returns void.
        -:        -: 5891:          *
        -:        -: 5892:          * NOTE: The GLSL spec doesn't say that this is an error.  The type
        -:        -: 5893:          * of the return value is void.  If the return type of the function is
        -:        -: 5894:          * also void, then this should compile without error.  Seriously.
        -:        -: 5895:          */
        -:        -: 5896:         const glsl_type *const ret_type =
        2:        2: 5897:            (ret == NULL) ? glsl_type::void_type : ret->type;
        -:        -: 5898:
        -:        -: 5899:         /* Implicit conversions are not allowed for return values prior to
        -:        -: 5900:          * ARB_shading_language_420pack.
        -:        -: 5901:          */
        2:        2: 5902:         if (state->current_function->return_type != ret_type) {
    #####:    #####: 5903:            YYLTYPE loc = this->get_location();
        -:        -: 5904:
    #####:    #####: 5905:            if (state->has_420pack()) {
    #####:    #####: 5906:               if (!apply_implicit_conversion(state->current_function->return_type,
        -:        -: 5907:                                              ret, state)) {
    #####:    #####: 5908:                  _mesa_glsl_error(& loc, state,
        -:        -: 5909:                                   "could not implicitly convert return value "
        -:        -: 5910:                                   "to %s, in function `%s'",
    #####:    #####: 5911:                                   state->current_function->return_type->name,
    #####:    #####: 5912:                                   state->current_function->function_name());
        -:        -: 5913:               }
        -:        -: 5914:            } else {
    #####:    #####: 5915:               _mesa_glsl_error(& loc, state,
        -:        -: 5916:                                "`return' with wrong type %s, in function `%s' "
        -:        -: 5917:                                "returning %s",
    #####:    #####: 5918:                                ret_type->name,
    #####:    #####: 5919:                                state->current_function->function_name(),
    #####:    #####: 5920:                                state->current_function->return_type->name);
        -:        -: 5921:            }
        2:        2: 5922:         } else if (state->current_function->return_type->base_type ==
        -:        -: 5923:                    GLSL_TYPE_VOID) {
    #####:    #####: 5924:            YYLTYPE loc = this->get_location();
        -:        -: 5925:
        -:        -: 5926:            /* The ARB_shading_language_420pack, GLSL ES 3.0, and GLSL 4.20
        -:        -: 5927:             * specs add a clarification:
        -:        -: 5928:             *
        -:        -: 5929:             *    "A void function can only use return without a return argument, even if
        -:        -: 5930:             *     the return argument has void type. Return statements only accept values:
        -:        -: 5931:             *
        -:        -: 5932:             *         void func1() { }
        -:        -: 5933:             *         void func2() { return func1(); } // illegal return statement"
        -:        -: 5934:             */
        -:        -: 5935:            _mesa_glsl_error(& loc, state,
        -:        -: 5936:                             "void functions can only use `return' without a "
    #####:    #####: 5937:                             "return argument");
        -:        -: 5938:         }
        -:        -: 5939:
        2:        2: 5940:         inst = new(ctx) ir_return(ret);
        -:        -: 5941:      } else {
    #####:    #####: 5942:         if (state->current_function->return_type->base_type !=
        -:        -: 5943:             GLSL_TYPE_VOID) {
    #####:    #####: 5944:            YYLTYPE loc = this->get_location();
        -:        -: 5945:
    #####:    #####: 5946:            _mesa_glsl_error(& loc, state,
        -:        -: 5947:                             "`return' with no value, in function %s returning "
        -:        -: 5948:                             "non-void",
    #####:    #####: 5949:            state->current_function->function_name());
        -:        -: 5950:         }
    #####:    #####: 5951:         inst = new(ctx) ir_return;
        -:        -: 5952:      }
        -:        -: 5953:
        2:        2: 5954:      state->found_return = true;
        2:        2: 5955:      instructions->push_tail(inst);
        2:        2: 5956:      break;
        -:        -: 5957:   }
        -:        -: 5958:
        -:        -: 5959:   case ast_discard:
    #####:    #####: 5960:      if (state->stage != MESA_SHADER_FRAGMENT) {
    #####:    #####: 5961:         YYLTYPE loc = this->get_location();
        -:        -: 5962:
        -:        -: 5963:         _mesa_glsl_error(& loc, state,
    #####:    #####: 5964:                          "`discard' may only appear in a fragment shader");
        -:        -: 5965:      }
    #####:    #####: 5966:      instructions->push_tail(new(ctx) ir_discard);
    #####:    #####: 5967:      break;
        -:        -: 5968:
        -:        -: 5969:   case ast_break:
        -:        -: 5970:   case ast_continue:
    #####:    #####: 5971:      if (mode == ast_continue &&
    #####:    #####: 5972:          state->loop_nesting_ast == NULL) {
    #####:    #####: 5973:         YYLTYPE loc = this->get_location();
        -:        -: 5974:
    #####:    #####: 5975:         _mesa_glsl_error(& loc, state, "continue may only appear in a loop");
    #####:    #####: 5976:      } else if (mode == ast_break &&
    #####:    #####: 5977:         state->loop_nesting_ast == NULL &&
    #####:    #####: 5978:         state->switch_state.switch_nesting_ast == NULL) {
    #####:    #####: 5979:         YYLTYPE loc = this->get_location();
        -:        -: 5980:
        -:        -: 5981:         _mesa_glsl_error(& loc, state,
    #####:    #####: 5982:                          "break may only appear in a loop or a switch");
        -:        -: 5983:      } else {
        -:        -: 5984:         /* For a loop, inline the for loop expression again, since we don't
        -:        -: 5985:          * know where near the end of the loop body the normal copy of it is
        -:        -: 5986:          * going to be placed.  Same goes for the condition for a do-while
        -:        -: 5987:          * loop.
        -:        -: 5988:          */
    #####:    #####: 5989:         if (state->loop_nesting_ast != NULL &&
    #####:    #####: 5990:             mode == ast_continue && !state->switch_state.is_switch_innermost) {
    #####:    #####: 5991:            if (state->loop_nesting_ast->rest_expression) {
    #####:    #####: 5992:               state->loop_nesting_ast->rest_expression->hir(instructions,
    #####:    #####: 5993:                                                             state);
        -:        -: 5994:            }
    #####:    #####: 5995:            if (state->loop_nesting_ast->mode ==
        -:        -: 5996:                ast_iteration_statement::ast_do_while) {
    #####:    #####: 5997:               state->loop_nesting_ast->condition_to_hir(instructions, state);
        -:        -: 5998:            }
        -:        -: 5999:         }
        -:        -: 6000:
    #####:    #####: 6001:         if (state->switch_state.is_switch_innermost &&
    #####:    #####: 6002:             mode == ast_continue) {
        -:        -: 6003:            /* Set 'continue_inside' to true. */
    #####:    #####: 6004:            ir_rvalue *const true_val = new (ctx) ir_constant(true);
        -:        -: 6005:            ir_dereference_variable *deref_continue_inside_var =
    #####:    #####: 6006:               new(ctx) ir_dereference_variable(state->switch_state.continue_inside);
        -:        -: 6007:            instructions->push_tail(new(ctx) ir_assignment(deref_continue_inside_var,
    #####:    #####: 6008:                                                           true_val));
        -:        -: 6009:
        -:        -: 6010:            /* Break out from the switch, continue for the loop will
        -:        -: 6011:             * be called right after switch. */
        -:        -: 6012:            ir_loop_jump *const jump =
    #####:    #####: 6013:               new(ctx) ir_loop_jump(ir_loop_jump::jump_break);
    #####:    #####: 6014:            instructions->push_tail(jump);
        -:        -: 6015:
    #####:    #####: 6016:         } else if (state->switch_state.is_switch_innermost &&
    #####:    #####: 6017:             mode == ast_break) {
        -:        -: 6018:            /* Force break out of switch by inserting a break. */
        -:        -: 6019:            ir_loop_jump *const jump =
    #####:    #####: 6020:               new(ctx) ir_loop_jump(ir_loop_jump::jump_break);
    #####:    #####: 6021:            instructions->push_tail(jump);
        -:        -: 6022:         } else {
        -:        -: 6023:            ir_loop_jump *const jump =
    #####:    #####: 6024:               new(ctx) ir_loop_jump((mode == ast_break)
        -:        -: 6025:                  ? ir_loop_jump::jump_break
    #####:    #####: 6026:                  : ir_loop_jump::jump_continue);
    #####:    #####: 6027:            instructions->push_tail(jump);
        -:        -: 6028:         }
        -:        -: 6029:      }
        -:        -: 6030:
    #####:    #####: 6031:      break;
        -:        -: 6032:   }
        -:        -: 6033:
        -:        -: 6034:   /* Jump instructions do not have r-values.
        -:        -: 6035:    */
        2:        2: 6036:   return NULL;
        -:        -: 6037:}
        -:        -: 6038:
        -:        -: 6039:
        -:        -: 6040:ir_rvalue *
        3:        3: 6041:ast_selection_statement::hir(exec_list *instructions,
        -:        -: 6042:                             struct _mesa_glsl_parse_state *state)
        -:        -: 6043:{
        3:        3: 6044:   void *ctx = state;
        -:        -: 6045:
        3:        3: 6046:   ir_rvalue *const condition = this->condition->hir(instructions, state);
        -:        -: 6047:
        -:        -: 6048:   /* From page 66 (page 72 of the PDF) of the GLSL 1.50 spec:
        -:        -: 6049:    *
        -:        -: 6050:    *    "Any expression whose type evaluates to a Boolean can be used as the
        -:        -: 6051:    *    conditional expression bool-expression. Vector types are not accepted
        -:        -: 6052:    *    as the expression to if."
        -:        -: 6053:    *
        -:        -: 6054:    * The checks are separated so that higher quality diagnostics can be
        -:        -: 6055:    * generated for cases where both rules are violated.
        -:        -: 6056:    */
        3:        3: 6057:   if (!condition->type->is_boolean() || !condition->type->is_scalar()) {
    #####:    #####: 6058:      YYLTYPE loc = this->condition->get_location();
        -:        -: 6059:
        -:        -: 6060:      _mesa_glsl_error(& loc, state, "if-statement condition must be scalar "
    #####:    #####: 6061:                       "boolean");
        -:        -: 6062:   }
        -:        -: 6063:
        3:        3: 6064:   ir_if *const stmt = new(ctx) ir_if(condition);
        -:        -: 6065:
        3:        3: 6066:   if (then_statement != NULL) {
        3:        3: 6067:      state->symbols->push_scope();
        3:        3: 6068:      then_statement->hir(& stmt->then_instructions, state);
        3:        3: 6069:      state->symbols->pop_scope();
        -:        -: 6070:   }
        -:        -: 6071:
        3:        3: 6072:   if (else_statement != NULL) {
    #####:    #####: 6073:      state->symbols->push_scope();
    #####:    #####: 6074:      else_statement->hir(& stmt->else_instructions, state);
    #####:    #####: 6075:      state->symbols->pop_scope();
        -:        -: 6076:   }
        -:        -: 6077:
        3:        3: 6078:   instructions->push_tail(stmt);
        -:        -: 6079:
        -:        -: 6080:   /* if-statements do not have r-values.
        -:        -: 6081:    */
        3:        3: 6082:   return NULL;
        -:        -: 6083:}
        -:        -: 6084:
        -:        -: 6085:
        -:        -: 6086:/* Used for detection of duplicate case values, compare
        -:        -: 6087: * given contents directly.
        -:        -: 6088: */
        -:        -: 6089:static bool
    #####:    #####: 6090:compare_case_value(const void *a, const void *b)
        -:        -: 6091:{
    #####:    #####: 6092:   return *(unsigned *) a == *(unsigned *) b;
        -:        -: 6093:}
        -:        -: 6094:
        -:        -: 6095:
        -:        -: 6096:/* Used for detection of duplicate case values, just
        -:        -: 6097: * returns key contents as is.
        -:        -: 6098: */
        -:        -: 6099:static unsigned
    #####:    #####: 6100:key_contents(const void *key)
        -:        -: 6101:{
    #####:    #####: 6102:   return *(unsigned *) key;
        -:        -: 6103:}
        -:        -: 6104:
        -:        -: 6105:
        -:        -: 6106:ir_rvalue *
    #####:    #####: 6107:ast_switch_statement::hir(exec_list *instructions,
        -:        -: 6108:                          struct _mesa_glsl_parse_state *state)
        -:        -: 6109:{
    #####:    #####: 6110:   void *ctx = state;
        -:        -: 6111:
        -:        -: 6112:   ir_rvalue *const test_expression =
    #####:    #####: 6113:      this->test_expression->hir(instructions, state);
        -:        -: 6114:
        -:        -: 6115:   /* From page 66 (page 55 of the PDF) of the GLSL 1.50 spec:
        -:        -: 6116:    *
        -:        -: 6117:    *    "The type of init-expression in a switch statement must be a
        -:        -: 6118:    *     scalar integer."
        -:        -: 6119:    */
    #####:    #####: 6120:   if (!test_expression->type->is_scalar() ||
    #####:    #####: 6121:       !test_expression->type->is_integer()) {
    #####:    #####: 6122:      YYLTYPE loc = this->test_expression->get_location();
        -:        -: 6123:
        -:        -: 6124:      _mesa_glsl_error(& loc,
        -:        -: 6125:                       state,
        -:        -: 6126:                       "switch-statement expression must be scalar "
    #####:    #####: 6127:                       "integer");
        -:        -: 6128:   }
        -:        -: 6129:
        -:        -: 6130:   /* Track the switch-statement nesting in a stack-like manner.
        -:        -: 6131:    */
    #####:    #####: 6132:   struct glsl_switch_state saved = state->switch_state;
        -:        -: 6133:
    #####:    #####: 6134:   state->switch_state.is_switch_innermost = true;
    #####:    #####: 6135:   state->switch_state.switch_nesting_ast = this;
        -:        -: 6136:   state->switch_state.labels_ht =
    #####:    #####: 6137:         _mesa_hash_table_create(NULL, key_contents,
    #####:    #####: 6138:                                 compare_case_value);
    #####:    #####: 6139:   state->switch_state.previous_default = NULL;
        -:        -: 6140:
        -:        -: 6141:   /* Initalize is_fallthru state to false.
        -:        -: 6142:    */
    #####:    #####: 6143:   ir_rvalue *const is_fallthru_val = new (ctx) ir_constant(false);
        -:        -: 6144:   state->switch_state.is_fallthru_var =
        -:        -: 6145:      new(ctx) ir_variable(glsl_type::bool_type,
        -:        -: 6146:                           "switch_is_fallthru_tmp",
    #####:    #####: 6147:                           ir_var_temporary);
    #####:    #####: 6148:   instructions->push_tail(state->switch_state.is_fallthru_var);
        -:        -: 6149:
        -:        -: 6150:   ir_dereference_variable *deref_is_fallthru_var =
    #####:    #####: 6151:      new(ctx) ir_dereference_variable(state->switch_state.is_fallthru_var);
        -:        -: 6152:   instructions->push_tail(new(ctx) ir_assignment(deref_is_fallthru_var,
    #####:    #####: 6153:                                                  is_fallthru_val));
        -:        -: 6154:
        -:        -: 6155:   /* Initialize continue_inside state to false.
        -:        -: 6156:    */
        -:        -: 6157:   state->switch_state.continue_inside =
        -:        -: 6158:      new(ctx) ir_variable(glsl_type::bool_type,
        -:        -: 6159:                           "continue_inside_tmp",
    #####:    #####: 6160:                           ir_var_temporary);
    #####:    #####: 6161:   instructions->push_tail(state->switch_state.continue_inside);
        -:        -: 6162:
    #####:    #####: 6163:   ir_rvalue *const false_val = new (ctx) ir_constant(false);
        -:        -: 6164:   ir_dereference_variable *deref_continue_inside_var =
    #####:    #####: 6165:      new(ctx) ir_dereference_variable(state->switch_state.continue_inside);
        -:        -: 6166:   instructions->push_tail(new(ctx) ir_assignment(deref_continue_inside_var,
    #####:    #####: 6167:                                                  false_val));
        -:        -: 6168:
        -:        -: 6169:   state->switch_state.run_default =
        -:        -: 6170:      new(ctx) ir_variable(glsl_type::bool_type,
        -:        -: 6171:                             "run_default_tmp",
    #####:    #####: 6172:                             ir_var_temporary);
    #####:    #####: 6173:   instructions->push_tail(state->switch_state.run_default);
        -:        -: 6174:
        -:        -: 6175:   /* Loop around the switch is used for flow control. */
    #####:    #####: 6176:   ir_loop * loop = new(ctx) ir_loop();
    #####:    #####: 6177:   instructions->push_tail(loop);
        -:        -: 6178:
        -:        -: 6179:   /* Cache test expression.
        -:        -: 6180:    */
    #####:    #####: 6181:   test_to_hir(&loop->body_instructions, state);
        -:        -: 6182:
        -:        -: 6183:   /* Emit code for body of switch stmt.
        -:        -: 6184:    */
    #####:    #####: 6185:   body->hir(&loop->body_instructions, state);
        -:        -: 6186:
        -:        -: 6187:   /* Insert a break at the end to exit loop. */
    #####:    #####: 6188:   ir_loop_jump *jump = new(ctx) ir_loop_jump(ir_loop_jump::jump_break);
    #####:    #####: 6189:   loop->body_instructions.push_tail(jump);
        -:        -: 6190:
        -:        -: 6191:   /* If we are inside loop, check if continue got called inside switch. */
    #####:    #####: 6192:   if (state->loop_nesting_ast != NULL) {
        -:        -: 6193:      ir_dereference_variable *deref_continue_inside =
    #####:    #####: 6194:         new(ctx) ir_dereference_variable(state->switch_state.continue_inside);
    #####:    #####: 6195:      ir_if *irif = new(ctx) ir_if(deref_continue_inside);
    #####:    #####: 6196:      ir_loop_jump *jump = new(ctx) ir_loop_jump(ir_loop_jump::jump_continue);
        -:        -: 6197:
    #####:    #####: 6198:      if (state->loop_nesting_ast != NULL) {
    #####:    #####: 6199:         if (state->loop_nesting_ast->rest_expression) {
    #####:    #####: 6200:            state->loop_nesting_ast->rest_expression->hir(&irif->then_instructions,
    #####:    #####: 6201:                                                          state);
        -:        -: 6202:         }
    #####:    #####: 6203:         if (state->loop_nesting_ast->mode ==
        -:        -: 6204:             ast_iteration_statement::ast_do_while) {
    #####:    #####: 6205:            state->loop_nesting_ast->condition_to_hir(&irif->then_instructions, state);
        -:        -: 6206:         }
        -:        -: 6207:      }
    #####:    #####: 6208:      irif->then_instructions.push_tail(jump);
    #####:    #####: 6209:      instructions->push_tail(irif);
        -:        -: 6210:   }
        -:        -: 6211:
    #####:    #####: 6212:   _mesa_hash_table_destroy(state->switch_state.labels_ht, NULL);
        -:        -: 6213:
    #####:    #####: 6214:   state->switch_state = saved;
        -:        -: 6215:
        -:        -: 6216:   /* Switch statements do not have r-values. */
    #####:    #####: 6217:   return NULL;
        -:        -: 6218:}
        -:        -: 6219:
        -:        -: 6220:
        -:        -: 6221:void
    #####:    #####: 6222:ast_switch_statement::test_to_hir(exec_list *instructions,
        -:        -: 6223:                                  struct _mesa_glsl_parse_state *state)
        -:        -: 6224:{
    #####:    #####: 6225:   void *ctx = state;
        -:        -: 6226:
        -:        -: 6227:   /* set to true to avoid a duplicate "use of uninitialized variable" warning
        -:        -: 6228:    * on the switch test case. The first one would be already raised when
        -:        -: 6229:    * getting the test_expression at ast_switch_statement::hir
        -:        -: 6230:    */
    #####:    #####: 6231:   test_expression->set_is_lhs(true);
        -:        -: 6232:   /* Cache value of test expression. */
    #####:    #####: 6233:   ir_rvalue *const test_val = test_expression->hir(instructions, state);
        -:        -: 6234:
        -:        -: 6235:   state->switch_state.test_var = new(ctx) ir_variable(test_val->type,
        -:        -: 6236:                                                       "switch_test_tmp",
    #####:    #####: 6237:                                                       ir_var_temporary);
        -:        -: 6238:   ir_dereference_variable *deref_test_var =
    #####:    #####: 6239:      new(ctx) ir_dereference_variable(state->switch_state.test_var);
        -:        -: 6240:
    #####:    #####: 6241:   instructions->push_tail(state->switch_state.test_var);
    #####:    #####: 6242:   instructions->push_tail(new(ctx) ir_assignment(deref_test_var, test_val));
    #####:    #####: 6243:}
        -:        -: 6244:
        -:        -: 6245:
        -:        -: 6246:ir_rvalue *
    #####:    #####: 6247:ast_switch_body::hir(exec_list *instructions,
        -:        -: 6248:                     struct _mesa_glsl_parse_state *state)
        -:        -: 6249:{
    #####:    #####: 6250:   if (stmts != NULL)
    #####:    #####: 6251:      stmts->hir(instructions, state);
        -:        -: 6252:
        -:        -: 6253:   /* Switch bodies do not have r-values. */
    #####:    #####: 6254:   return NULL;
        -:        -: 6255:}
        -:        -: 6256:
        -:        -: 6257:ir_rvalue *
    #####:    #####: 6258:ast_case_statement_list::hir(exec_list *instructions,
        -:        -: 6259:                             struct _mesa_glsl_parse_state *state)
        -:        -: 6260:{
    #####:    #####: 6261:   exec_list default_case, after_default, tmp;
        -:        -: 6262:
    #####:    #####: 6263:   foreach_list_typed (ast_case_statement, case_stmt, link, & this->cases) {
    #####:    #####: 6264:      case_stmt->hir(&tmp, state);
        -:        -: 6265:
        -:        -: 6266:      /* Default case. */
    #####:    #####: 6267:      if (state->switch_state.previous_default && default_case.is_empty()) {
    #####:    #####: 6268:         default_case.append_list(&tmp);
    #####:    #####: 6269:         continue;
        -:        -: 6270:      }
        -:        -: 6271:
        -:        -: 6272:      /* If default case found, append 'after_default' list. */
    #####:    #####: 6273:      if (!default_case.is_empty())
    #####:    #####: 6274:         after_default.append_list(&tmp);
        -:        -: 6275:      else
    #####:    #####: 6276:         instructions->append_list(&tmp);
        -:        -: 6277:   }
        -:        -: 6278:
        -:        -: 6279:   /* Handle the default case. This is done here because default might not be
        -:        -: 6280:    * the last case. We need to add checks against following cases first to see
        -:        -: 6281:    * if default should be chosen or not.
        -:        -: 6282:    */
    #####:    #####: 6283:   if (!default_case.is_empty()) {
        -:        -: 6284:
    #####:    #####: 6285:      ir_rvalue *const true_val = new (state) ir_constant(true);
        -:        -: 6286:      ir_dereference_variable *deref_run_default_var =
    #####:    #####: 6287:         new(state) ir_dereference_variable(state->switch_state.run_default);
        -:        -: 6288:
        -:        -: 6289:      /* Choose to run default case initially, following conditional
        -:        -: 6290:       * assignments might change this.
        -:        -: 6291:       */
        -:        -: 6292:      ir_assignment *const init_var =
    #####:    #####: 6293:         new(state) ir_assignment(deref_run_default_var, true_val);
    #####:    #####: 6294:      instructions->push_tail(init_var);
        -:        -: 6295:
        -:        -: 6296:      /* Default case was the last one, no checks required. */
    #####:    #####: 6297:      if (after_default.is_empty()) {
    #####:    #####: 6298:         instructions->append_list(&default_case);
    #####:    #####: 6299:         return NULL;
        -:        -: 6300:      }
        -:        -: 6301:
    #####:    #####: 6302:      foreach_in_list(ir_instruction, ir, &after_default) {
    #####:    #####: 6303:         ir_assignment *assign = ir->as_assignment();
        -:        -: 6304:
    #####:    #####: 6305:         if (!assign)
    #####:    #####: 6306:            continue;
        -:        -: 6307:
        -:        -: 6308:         /* Clone the check between case label and init expression. */
    #####:    #####: 6309:         ir_expression *exp = (ir_expression*) assign->condition;
    #####:    #####: 6310:         ir_expression *clone = exp->clone(state, NULL);
        -:        -: 6311:
        -:        -: 6312:         ir_dereference_variable *deref_var =
    #####:    #####: 6313:            new(state) ir_dereference_variable(state->switch_state.run_default);
    #####:    #####: 6314:         ir_rvalue *const false_val = new (state) ir_constant(false);
        -:        -: 6315:
        -:        -: 6316:         ir_assignment *const set_false =
    #####:    #####: 6317:            new(state) ir_assignment(deref_var, false_val, clone);
        -:        -: 6318:
    #####:    #####: 6319:         instructions->push_tail(set_false);
        -:        -: 6320:      }
        -:        -: 6321:
        -:        -: 6322:      /* Append default case and all cases after it. */
    #####:    #####: 6323:      instructions->append_list(&default_case);
    #####:    #####: 6324:      instructions->append_list(&after_default);
        -:        -: 6325:   }
        -:        -: 6326:
        -:        -: 6327:   /* Case statements do not have r-values. */
    #####:    #####: 6328:   return NULL;
        -:        -: 6329:}
        -:        -: 6330:
        -:        -: 6331:ir_rvalue *
    #####:    #####: 6332:ast_case_statement::hir(exec_list *instructions,
        -:        -: 6333:                        struct _mesa_glsl_parse_state *state)
        -:        -: 6334:{
    #####:    #####: 6335:   labels->hir(instructions, state);
        -:        -: 6336:
        -:        -: 6337:   /* Guard case statements depending on fallthru state. */
        -:        -: 6338:   ir_dereference_variable *const deref_fallthru_guard =
    #####:    #####: 6339:      new(state) ir_dereference_variable(state->switch_state.is_fallthru_var);
    #####:    #####: 6340:   ir_if *const test_fallthru = new(state) ir_if(deref_fallthru_guard);
        -:        -: 6341:
    #####:    #####: 6342:   foreach_list_typed (ast_node, stmt, link, & this->stmts)
    #####:    #####: 6343:      stmt->hir(& test_fallthru->then_instructions, state);
        -:        -: 6344:
    #####:    #####: 6345:   instructions->push_tail(test_fallthru);
        -:        -: 6346:
        -:        -: 6347:   /* Case statements do not have r-values. */
    #####:    #####: 6348:   return NULL;
        -:        -: 6349:}
        -:        -: 6350:
        -:        -: 6351:
        -:        -: 6352:ir_rvalue *
    #####:    #####: 6353:ast_case_label_list::hir(exec_list *instructions,
        -:        -: 6354:                         struct _mesa_glsl_parse_state *state)
        -:        -: 6355:{
    #####:    #####: 6356:   foreach_list_typed (ast_case_label, label, link, & this->labels)
    #####:    #####: 6357:      label->hir(instructions, state);
        -:        -: 6358:
        -:        -: 6359:   /* Case labels do not have r-values. */
    #####:    #####: 6360:   return NULL;
        -:        -: 6361:}
        -:        -: 6362:
        -:        -: 6363:ir_rvalue *
    #####:    #####: 6364:ast_case_label::hir(exec_list *instructions,
        -:        -: 6365:                    struct _mesa_glsl_parse_state *state)
        -:        -: 6366:{
    #####:    #####: 6367:   void *ctx = state;
        -:        -: 6368:
        -:        -: 6369:   ir_dereference_variable *deref_fallthru_var =
    #####:    #####: 6370:      new(ctx) ir_dereference_variable(state->switch_state.is_fallthru_var);
        -:        -: 6371:
    #####:    #####: 6372:   ir_rvalue *const true_val = new(ctx) ir_constant(true);
        -:        -: 6373:
        -:        -: 6374:   /* If not default case, ... */
    #####:    #####: 6375:   if (this->test_value != NULL) {
        -:        -: 6376:      /* Conditionally set fallthru state based on
        -:        -: 6377:       * comparison of cached test expression value to case label.
        -:        -: 6378:       */
    #####:    #####: 6379:      ir_rvalue *const label_rval = this->test_value->hir(instructions, state);
    #####:    #####: 6380:      ir_constant *label_const = label_rval->constant_expression_value();
        -:        -: 6381:
    #####:    #####: 6382:      if (!label_const) {
    #####:    #####: 6383:         YYLTYPE loc = this->test_value->get_location();
        -:        -: 6384:
        -:        -: 6385:         _mesa_glsl_error(& loc, state,
        -:        -: 6386:                          "switch statement case label must be a "
    #####:    #####: 6387:                          "constant expression");
        -:        -: 6388:
        -:        -: 6389:         /* Stuff a dummy value in to allow processing to continue. */
    #####:    #####: 6390:         label_const = new(ctx) ir_constant(0);
        -:        -: 6391:      } else {
        -:        -: 6392:         hash_entry *entry =
    #####:    #####: 6393:               _mesa_hash_table_search(state->switch_state.labels_ht,
    #####:    #####: 6394:                     (void *)(uintptr_t)&label_const->value.u[0]);
        -:        -: 6395:
    #####:    #####: 6396:         if (entry) {
    #####:    #####: 6397:            ast_expression *previous_label = (ast_expression *) entry->data;
    #####:    #####: 6398:            YYLTYPE loc = this->test_value->get_location();
    #####:    #####: 6399:            _mesa_glsl_error(& loc, state, "duplicate case value");
        -:        -: 6400:
    #####:    #####: 6401:            loc = previous_label->get_location();
    #####:    #####: 6402:            _mesa_glsl_error(& loc, state, "this is the previous case label");
        -:        -: 6403:         } else {
    #####:    #####: 6404:            _mesa_hash_table_insert(state->switch_state.labels_ht,
        -:        -: 6405:                                    (void *)(uintptr_t)&label_const->value.u[0],
    #####:    #####: 6406:                                    this->test_value);
        -:        -: 6407:         }
        -:        -: 6408:      }
        -:        -: 6409:
        -:        -: 6410:      ir_dereference_variable *deref_test_var =
    #####:    #####: 6411:         new(ctx) ir_dereference_variable(state->switch_state.test_var);
        -:        -: 6412:
        -:        -: 6413:      ir_expression *test_cond = new(ctx) ir_expression(ir_binop_all_equal,
        -:        -: 6414:                                                        label_const,
    #####:    #####: 6415:                                                        deref_test_var);
        -:        -: 6416:
        -:        -: 6417:      /*
        -:        -: 6418:       * From GLSL 4.40 specification section 6.2 ("Selection"):
        -:        -: 6419:       *
        -:        -: 6420:       *     "The type of the init-expression value in a switch statement must
        -:        -: 6421:       *     be a scalar int or uint. The type of the constant-expression value
        -:        -: 6422:       *     in a case label also must be a scalar int or uint. When any pair
        -:        -: 6423:       *     of these values is tested for "equal value" and the types do not
        -:        -: 6424:       *     match, an implicit conversion will be done to convert the int to a
        -:        -: 6425:       *     uint (see section 4.1.10 “Implicit Conversions”) before the compare
        -:        -: 6426:       *     is done."
        -:        -: 6427:       */
    #####:    #####: 6428:      if (label_const->type != state->switch_state.test_var->type) {
    #####:    #####: 6429:         YYLTYPE loc = this->test_value->get_location();
        -:        -: 6430:
    #####:    #####: 6431:         const glsl_type *type_a = label_const->type;
    #####:    #####: 6432:         const glsl_type *type_b = state->switch_state.test_var->type;
        -:        -: 6433:
        -:        -: 6434:         /* Check if int->uint implicit conversion is supported. */
        -:        -: 6435:         bool integer_conversion_supported =
    #####:    #####: 6436:            glsl_type::int_type->can_implicitly_convert_to(glsl_type::uint_type,
    #####:    #####: 6437:                                                           state);
        -:        -: 6438:
    #####:    #####: 6439:         if ((!type_a->is_integer() || !type_b->is_integer()) ||
    #####:    #####: 6440:              !integer_conversion_supported) {
        -:        -: 6441:            _mesa_glsl_error(&loc, state, "type mismatch with switch "
        -:        -: 6442:                             "init-expression and case label (%s != %s)",
    #####:    #####: 6443:                             type_a->name, type_b->name);
        -:        -: 6444:         } else {
        -:        -: 6445:            /* Conversion of the case label. */
    #####:    #####: 6446:            if (type_a->base_type == GLSL_TYPE_INT) {
    #####:    #####: 6447:               if (!apply_implicit_conversion(glsl_type::uint_type,
        -:        -: 6448:                                              test_cond->operands[0], state))
    #####:    #####: 6449:                  _mesa_glsl_error(&loc, state, "implicit type conversion error");
        -:        -: 6450:            } else {
        -:        -: 6451:               /* Conversion of the init-expression value. */
    #####:    #####: 6452:               if (!apply_implicit_conversion(glsl_type::uint_type,
        -:        -: 6453:                                              test_cond->operands[1], state))
    #####:    #####: 6454:                  _mesa_glsl_error(&loc, state, "implicit type conversion error");
        -:        -: 6455:            }
        -:        -: 6456:         }
        -:        -: 6457:      }
        -:        -: 6458:
        -:        -: 6459:      ir_assignment *set_fallthru_on_test =
    #####:    #####: 6460:         new(ctx) ir_assignment(deref_fallthru_var, true_val, test_cond);
        -:        -: 6461:
    #####:    #####: 6462:      instructions->push_tail(set_fallthru_on_test);
        -:        -: 6463:   } else { /* default case */
    #####:    #####: 6464:      if (state->switch_state.previous_default) {
    #####:    #####: 6465:         YYLTYPE loc = this->get_location();
        -:        -: 6466:         _mesa_glsl_error(& loc, state,
    #####:    #####: 6467:                          "multiple default labels in one switch");
        -:        -: 6468:
    #####:    #####: 6469:         loc = state->switch_state.previous_default->get_location();
    #####:    #####: 6470:         _mesa_glsl_error(& loc, state, "this is the first default label");
        -:        -: 6471:      }
    #####:    #####: 6472:      state->switch_state.previous_default = this;
        -:        -: 6473:
        -:        -: 6474:      /* Set fallthru condition on 'run_default' bool. */
        -:        -: 6475:      ir_dereference_variable *deref_run_default =
    #####:    #####: 6476:         new(ctx) ir_dereference_variable(state->switch_state.run_default);
    #####:    #####: 6477:      ir_rvalue *const cond_true = new(ctx) ir_constant(true);
        -:        -: 6478:      ir_expression *test_cond = new(ctx) ir_expression(ir_binop_all_equal,
        -:        -: 6479:                                                        cond_true,
    #####:    #####: 6480:                                                        deref_run_default);
        -:        -: 6481:
        -:        -: 6482:      /* Set falltrhu state. */
        -:        -: 6483:      ir_assignment *set_fallthru =
    #####:    #####: 6484:         new(ctx) ir_assignment(deref_fallthru_var, true_val, test_cond);
        -:        -: 6485:
    #####:    #####: 6486:      instructions->push_tail(set_fallthru);
        -:        -: 6487:   }
        -:        -: 6488:
        -:        -: 6489:   /* Case statements do not have r-values. */
    #####:    #####: 6490:   return NULL;
        -:        -: 6491:}
        -:        -: 6492:
        -:        -: 6493:void
        2:        3: 6494:ast_iteration_statement::condition_to_hir(exec_list *instructions,
        -:        -: 6495:                                          struct _mesa_glsl_parse_state *state)
        -:        -: 6496:{
        2:        3: 6497:   void *ctx = state;
        -:        -: 6498:
        2:        3: 6499:   if (condition != NULL) {
        -:        -: 6500:      ir_rvalue *const cond =
        2:        3: 6501:         condition->hir(instructions, state);
        -:        -: 6502:
        2:        3: 6503:      if ((cond == NULL)
        2:        3: 6504:          || !cond->type->is_boolean() || !cond->type->is_scalar()) {
    #####:    #####: 6505:         YYLTYPE loc = condition->get_location();
        -:        -: 6506:
        -:        -: 6507:         _mesa_glsl_error(& loc, state,
    #####:    #####: 6508:                          "loop condition must be scalar boolean");
        -:        -: 6509:      } else {
        -:        -: 6510:         /* As the first code in the loop body, generate a block that looks
        -:        -: 6511:          * like 'if (!condition) break;' as the loop termination condition.
        -:        -: 6512:          */
        -:        -: 6513:         ir_rvalue *const not_cond =
        2:        3: 6514:            new(ctx) ir_expression(ir_unop_logic_not, cond);
        -:        -: 6515:
        2:        3: 6516:         ir_if *const if_stmt = new(ctx) ir_if(not_cond);
        -:        -: 6517:
        -:        -: 6518:         ir_jump *const break_stmt =
        2:        3: 6519:            new(ctx) ir_loop_jump(ir_loop_jump::jump_break);
        -:        -: 6520:
        2:        3: 6521:         if_stmt->then_instructions.push_tail(break_stmt);
        2:        3: 6522:         instructions->push_tail(if_stmt);
        -:        -: 6523:      }
        -:        -: 6524:   }
        2:        3: 6525:}
        -:        -: 6526:
        -:        -: 6527:
        -:        -: 6528:ir_rvalue *
        2:        3: 6529:ast_iteration_statement::hir(exec_list *instructions,
        -:        -: 6530:                             struct _mesa_glsl_parse_state *state)
        -:        -: 6531:{
        2:        3: 6532:   void *ctx = state;
        -:        -: 6533:
        -:        -: 6534:   /* For-loops and while-loops start a new scope, but do-while loops do not.
        -:        -: 6535:    */
        2:        3: 6536:   if (mode != ast_do_while)
        2:        2: 6537:      state->symbols->push_scope();
        -:        -: 6538:
        2:        3: 6539:   if (init_statement != NULL)
        2:        2: 6540:      init_statement->hir(instructions, state);
        -:        -: 6541:
        2:        3: 6542:   ir_loop *const stmt = new(ctx) ir_loop();
        2:        3: 6543:   instructions->push_tail(stmt);
        -:        -: 6544:
        -:        -: 6545:   /* Track the current loop nesting. */
        2:        3: 6546:   ast_iteration_statement *nesting_ast = state->loop_nesting_ast;
        -:        -: 6547:
        2:        3: 6548:   state->loop_nesting_ast = this;
        -:        -: 6549:
        -:        -: 6550:   /* Likewise, indicate that following code is closest to a loop,
        -:        -: 6551:    * NOT closest to a switch.
        -:        -: 6552:    */
        2:        3: 6553:   bool saved_is_switch_innermost = state->switch_state.is_switch_innermost;
        2:        3: 6554:   state->switch_state.is_switch_innermost = false;
        -:        -: 6555:
        2:        3: 6556:   if (mode != ast_do_while)
        2:        2: 6557:      condition_to_hir(&stmt->body_instructions, state);
        -:        -: 6558:
        2:        3: 6559:   if (body != NULL)
        2:        3: 6560:      body->hir(& stmt->body_instructions, state);
        -:        -: 6561:
        2:        3: 6562:   if (rest_expression != NULL)
        2:        2: 6563:      rest_expression->hir(& stmt->body_instructions, state);
        -:        -: 6564:
        2:        3: 6565:   if (mode == ast_do_while)
    #####:        1: 6566:      condition_to_hir(&stmt->body_instructions, state);
        -:        -: 6567:
        2:        3: 6568:   if (mode != ast_do_while)
        2:        2: 6569:      state->symbols->pop_scope();
        -:        -: 6570:
        -:        -: 6571:   /* Restore previous nesting before returning. */
        2:        3: 6572:   state->loop_nesting_ast = nesting_ast;
        2:        3: 6573:   state->switch_state.is_switch_innermost = saved_is_switch_innermost;
        -:        -: 6574:
        -:        -: 6575:   /* Loops do not have r-values.
        -:        -: 6576:    */
        2:        3: 6577:   return NULL;
        -:        -: 6578:}
        -:        -: 6579:
        -:        -: 6580:
        -:        -: 6581:/**
        -:        -: 6582: * Determine if the given type is valid for establishing a default precision
        -:        -: 6583: * qualifier.
        -:        -: 6584: *
        -:        -: 6585: * From GLSL ES 3.00 section 4.5.4 ("Default Precision Qualifiers"):
        -:        -: 6586: *
        -:        -: 6587: *     "The precision statement
        -:        -: 6588: *
        -:        -: 6589: *         precision precision-qualifier type;
        -:        -: 6590: *
        -:        -: 6591: *     can be used to establish a default precision qualifier. The type field
        -:        -: 6592: *     can be either int or float or any of the sampler types, and the
        -:        -: 6593: *     precision-qualifier can be lowp, mediump, or highp."
        -:        -: 6594: *
        -:        -: 6595: * GLSL ES 1.00 has similar language.  GLSL 1.30 doesn't allow precision
        -:        -: 6596: * qualifiers on sampler types, but this seems like an oversight (since the
        -:        -: 6597: * intention of including these in GLSL 1.30 is to allow compatibility with ES
        -:        -: 6598: * shaders).  So we allow int, float, and all sampler types regardless of GLSL
        -:        -: 6599: * version.
        -:        -: 6600: */
        -:        -: 6601:static bool
    #####:    #####: 6602:is_valid_default_precision_type(const struct glsl_type *const type)
        -:        -: 6603:{
    #####:    #####: 6604:   if (type == NULL)
    #####:    #####: 6605:      return false;
        -:        -: 6606:
    #####:    #####: 6607:   switch (type->base_type) {
        -:        -: 6608:   case GLSL_TYPE_INT:
        -:        -: 6609:   case GLSL_TYPE_FLOAT:
        -:        -: 6610:      /* "int" and "float" are valid, but vectors and matrices are not. */
    #####:    #####: 6611:      return type->vector_elements == 1 && type->matrix_columns == 1;
        -:        -: 6612:   case GLSL_TYPE_SAMPLER:
        -:        -: 6613:   case GLSL_TYPE_IMAGE:
        -:        -: 6614:   case GLSL_TYPE_ATOMIC_UINT:
    #####:    #####: 6615:      return true;
        -:        -: 6616:   default:
    #####:    #####: 6617:      return false;
        -:        -: 6618:   }
        -:        -: 6619:}
        -:        -: 6620:
        -:        -: 6621:
        -:        -: 6622:ir_rvalue *
        8:        8: 6623:ast_type_specifier::hir(exec_list *instructions,
        -:        -: 6624:                        struct _mesa_glsl_parse_state *state)
        -:        -: 6625:{
        8:        8: 6626:   if (this->default_precision == ast_precision_none && this->structure == NULL)
        8:        8: 6627:      return NULL;
        -:        -: 6628:
    #####:    #####: 6629:   YYLTYPE loc = this->get_location();
        -:        -: 6630:
        -:        -: 6631:   /* If this is a precision statement, check that the type to which it is
        -:        -: 6632:    * applied is either float or int.
        -:        -: 6633:    *
        -:        -: 6634:    * From section 4.5.3 of the GLSL 1.30 spec:
        -:        -: 6635:    *    "The precision statement
        -:        -: 6636:    *       precision precision-qualifier type;
        -:        -: 6637:    *    can be used to establish a default precision qualifier. The type
        -:        -: 6638:    *    field can be either int or float [...].  Any other types or
        -:        -: 6639:    *    qualifiers will result in an error.
        -:        -: 6640:    */
    #####:    #####: 6641:   if (this->default_precision != ast_precision_none) {
    #####:    #####: 6642:      if (!state->check_precision_qualifiers_allowed(&loc))
    #####:    #####: 6643:         return NULL;
        -:        -: 6644:
    #####:    #####: 6645:      if (this->structure != NULL) {
        -:        -: 6646:         _mesa_glsl_error(&loc, state,
    #####:    #####: 6647:                          "precision qualifiers do not apply to structures");
    #####:    #####: 6648:         return NULL;
        -:        -: 6649:      }
        -:        -: 6650:
    #####:    #####: 6651:      if (this->array_specifier != NULL) {
        -:        -: 6652:         _mesa_glsl_error(&loc, state,
        -:        -: 6653:                          "default precision statements do not apply to "
    #####:    #####: 6654:                          "arrays");
    #####:    #####: 6655:         return NULL;
        -:        -: 6656:      }
        -:        -: 6657:
        -:        -: 6658:      const struct glsl_type *const type =
    #####:    #####: 6659:         state->symbols->get_type(this->type_name);
    #####:    #####: 6660:      if (!is_valid_default_precision_type(type)) {
        -:        -: 6661:         _mesa_glsl_error(&loc, state,
        -:        -: 6662:                          "default precision statements apply only to "
    #####:    #####: 6663:                          "float, int, and opaque types");
    #####:    #####: 6664:         return NULL;
        -:        -: 6665:      }
        -:        -: 6666:
    #####:    #####: 6667:      if (state->es_shader) {
        -:        -: 6668:         /* Section 4.5.3 (Default Precision Qualifiers) of the GLSL ES 1.00
        -:        -: 6669:          * spec says:
        -:        -: 6670:          *
        -:        -: 6671:          *     "Non-precision qualified declarations will use the precision
        -:        -: 6672:          *     qualifier specified in the most recent precision statement
        -:        -: 6673:          *     that is still in scope. The precision statement has the same
        -:        -: 6674:          *     scoping rules as variable declarations. If it is declared
        -:        -: 6675:          *     inside a compound statement, its effect stops at the end of
        -:        -: 6676:          *     the innermost statement it was declared in. Precision
        -:        -: 6677:          *     statements in nested scopes override precision statements in
        -:        -: 6678:          *     outer scopes. Multiple precision statements for the same basic
        -:        -: 6679:          *     type can appear inside the same scope, with later statements
        -:        -: 6680:          *     overriding earlier statements within that scope."
        -:        -: 6681:          *
        -:        -: 6682:          * Default precision specifications follow the same scope rules as
        -:        -: 6683:          * variables.  So, we can track the state of the default precision
        -:        -: 6684:          * qualifiers in the symbol table, and the rules will just work.  This
        -:        -: 6685:          * is a slight abuse of the symbol table, but it has the semantics
        -:        -: 6686:          * that we want.
        -:        -: 6687:          */
    #####:    #####: 6688:         state->symbols->add_default_precision_qualifier(this->type_name,
    #####:    #####: 6689:                                                         this->default_precision);
        -:        -: 6690:      }
        -:        -: 6691:
        -:        -: 6692:      /* FINISHME: Translate precision statements into IR. */
    #####:    #####: 6693:      return NULL;
        -:        -: 6694:   }
        -:        -: 6695:
        -:        -: 6696:   /* _mesa_ast_set_aggregate_type() sets the <structure> field so that
        -:        -: 6697:    * process_record_constructor() can do type-checking on C-style initializer
        -:        -: 6698:    * expressions of structs, but ast_struct_specifier should only be translated
        -:        -: 6699:    * to HIR if it is declaring the type of a structure.
        -:        -: 6700:    *
        -:        -: 6701:    * The ->is_declaration field is false for initializers of variables
        -:        -: 6702:    * declared separately from the struct's type definition.
        -:        -: 6703:    *
        -:        -: 6704:    *    struct S { ... };              (is_declaration = true)
        -:        -: 6705:    *    struct T { ... } t = { ... };  (is_declaration = true)
        -:        -: 6706:    *    S s = { ... };                 (is_declaration = false)
        -:        -: 6707:    */
    #####:    #####: 6708:   if (this->structure != NULL && this->structure->is_declaration)
    #####:    #####: 6709:      return this->structure->hir(instructions, state);
        -:        -: 6710:
    #####:    #####: 6711:   return NULL;
        -:        -: 6712:}
        -:        -: 6713:
        -:        -: 6714:
        -:        -: 6715:/**
        -:        -: 6716: * Process a structure or interface block tree into an array of structure fields
        -:        -: 6717: *
        -:        -: 6718: * After parsing, where there are some syntax differnces, structures and
        -:        -: 6719: * interface blocks are almost identical.  They are similar enough that the
        -:        -: 6720: * AST for each can be processed the same way into a set of
        -:        -: 6721: * \c glsl_struct_field to describe the members.
        -:        -: 6722: *
        -:        -: 6723: * If we're processing an interface block, var_mode should be the type of the
        -:        -: 6724: * interface block (ir_var_shader_in, ir_var_shader_out, ir_var_uniform or
        -:        -: 6725: * ir_var_shader_storage).  If we're processing a structure, var_mode should be
        -:        -: 6726: * ir_var_auto.
        -:        -: 6727: *
        -:        -: 6728: * \return
        -:        -: 6729: * The number of fields processed.  A pointer to the array structure fields is
        -:        -: 6730: * stored in \c *fields_ret.
        -:        -: 6731: */
        -:        -: 6732:static unsigned
    #####:    #####: 6733:ast_process_struct_or_iface_block_members(exec_list *instructions,
        -:        -: 6734:                                          struct _mesa_glsl_parse_state *state,
        -:        -: 6735:                                          exec_list *declarations,
        -:        -: 6736:                                          glsl_struct_field **fields_ret,
        -:        -: 6737:                                          bool is_interface,
        -:        -: 6738:                                          enum glsl_matrix_layout matrix_layout,
        -:        -: 6739:                                          bool allow_reserved_names,
        -:        -: 6740:                                          ir_variable_mode var_mode,
        -:        -: 6741:                                          ast_type_qualifier *layout,
        -:        -: 6742:                                          unsigned block_stream,
        -:        -: 6743:                                          unsigned block_xfb_buffer,
        -:        -: 6744:                                          unsigned block_xfb_offset,
        -:        -: 6745:                                          unsigned expl_location,
        -:        -: 6746:                                          unsigned expl_align)
        -:        -: 6747:{
    #####:    #####: 6748:   unsigned decl_count = 0;
    #####:    #####: 6749:   unsigned next_offset = 0;
        -:        -: 6750:
        -:        -: 6751:   /* Make an initial pass over the list of fields to determine how
        -:        -: 6752:    * many there are.  Each element in this list is an ast_declarator_list.
        -:        -: 6753:    * This means that we actually need to count the number of elements in the
        -:        -: 6754:    * 'declarations' list in each of the elements.
        -:        -: 6755:    */
    #####:    #####: 6756:   foreach_list_typed (ast_declarator_list, decl_list, link, declarations) {
    #####:    #####: 6757:      decl_count += decl_list->declarations.length();
        -:        -: 6758:   }
        -:        -: 6759:
        -:        -: 6760:   /* Allocate storage for the fields and process the field
        -:        -: 6761:    * declarations.  As the declarations are processed, try to also convert
        -:        -: 6762:    * the types to HIR.  This ensures that structure definitions embedded in
        -:        -: 6763:    * other structure definitions or in interface blocks are processed.
        -:        -: 6764:    */
    #####:    #####: 6765:   glsl_struct_field *const fields = rzalloc_array(state, glsl_struct_field,
        -:        -: 6766:                                                   decl_count);
        -:        -: 6767:
    #####:    #####: 6768:   bool first_member = true;
    #####:    #####: 6769:   bool first_member_has_explicit_location = false;
        -:        -: 6770:
    #####:    #####: 6771:   unsigned i = 0;
    #####:    #####: 6772:   foreach_list_typed (ast_declarator_list, decl_list, link, declarations) {
        -:        -: 6773:      const char *type_name;
    #####:    #####: 6774:      YYLTYPE loc = decl_list->get_location();
        -:        -: 6775:
    #####:    #####: 6776:      decl_list->type->specifier->hir(instructions, state);
        -:        -: 6777:
        -:        -: 6778:      /* Section 4.1.8 (Structures) of the GLSL 1.10 spec says:
        -:        -: 6779:       *
        -:        -: 6780:       *    "Anonymous structures are not supported; so embedded structures
        -:        -: 6781:       *    must have a declarator. A name given to an embedded struct is
        -:        -: 6782:       *    scoped at the same level as the struct it is embedded in."
        -:        -: 6783:       *
        -:        -: 6784:       * The same section of the  GLSL 1.20 spec says:
        -:        -: 6785:       *
        -:        -: 6786:       *    "Anonymous structures are not supported. Embedded structures are
        -:        -: 6787:       *    not supported."
        -:        -: 6788:       *
        -:        -: 6789:       * The GLSL ES 1.00 and 3.00 specs have similar langauge. So, we allow
        -:        -: 6790:       * embedded structures in 1.10 only.
        -:        -: 6791:       */
    #####:    #####: 6792:      if (state->language_version != 110 &&
    #####:    #####: 6793:          decl_list->type->specifier->structure != NULL)
        -:        -: 6794:         _mesa_glsl_error(&loc, state,
    #####:    #####: 6795:                          "embedded structure declarations are not allowed");
        -:        -: 6796:
        -:        -: 6797:      const glsl_type *decl_type =
    #####:    #####: 6798:         decl_list->type->glsl_type(& type_name, state);
        -:        -: 6799:
        -:        -: 6800:      const struct ast_type_qualifier *const qual =
    #####:    #####: 6801:         &decl_list->type->qualifier;
        -:        -: 6802:
        -:        -: 6803:      /* From section 4.3.9 of the GLSL 4.40 spec:
        -:        -: 6804:       *
        -:        -: 6805:       *    "[In interface blocks] opaque types are not allowed."
        -:        -: 6806:       *
        -:        -: 6807:       * It should be impossible for decl_type to be NULL here.  Cases that
        -:        -: 6808:       * might naturally lead to decl_type being NULL, especially for the
        -:        -: 6809:       * is_interface case, will have resulted in compilation having
        -:        -: 6810:       * already halted due to a syntax error.
        -:        -: 6811:       */
    #####:    #####: 6812:      assert(decl_type);
        -:        -: 6813:
    #####:    #####: 6814:      if (is_interface) {
    #####:    #####: 6815:         if (decl_type->contains_opaque()) {
        -:        -: 6816:            _mesa_glsl_error(&loc, state, "uniform/buffer in non-default "
    #####:    #####: 6817:                             "interface block contains opaque variable");
        -:        -: 6818:         }
        -:        -: 6819:      } else {
    #####:    #####: 6820:         if (decl_type->contains_atomic()) {
        -:        -: 6821:            /* From section 4.1.7.3 of the GLSL 4.40 spec:
        -:        -: 6822:             *
        -:        -: 6823:             *    "Members of structures cannot be declared as atomic counter
        -:        -: 6824:             *     types."
        -:        -: 6825:             */
    #####:    #####: 6826:            _mesa_glsl_error(&loc, state, "atomic counter in structure");
        -:        -: 6827:         }
        -:        -: 6828:
    #####:    #####: 6829:         if (decl_type->contains_image()) {
        -:        -: 6830:            /* FINISHME: Same problem as with atomic counters.
        -:        -: 6831:             * FINISHME: Request clarification from Khronos and add
        -:        -: 6832:             * FINISHME: spec quotation here.
        -:        -: 6833:             */
    #####:    #####: 6834:            _mesa_glsl_error(&loc, state, "image in structure");
        -:        -: 6835:         }
        -:        -: 6836:      }
        -:        -: 6837:
    #####:    #####: 6838:      if (qual->flags.q.explicit_binding) {
        -:        -: 6839:         _mesa_glsl_error(&loc, state,
        -:        -: 6840:                          "binding layout qualifier cannot be applied "
    #####:    #####: 6841:                          "to struct or interface block members");
        -:        -: 6842:      }
        -:        -: 6843:
    #####:    #####: 6844:      if (is_interface) {
    #####:    #####: 6845:         if (!first_member) {
    #####:    #####: 6846:            if (!layout->flags.q.explicit_location &&
    #####:    #####: 6847:                ((first_member_has_explicit_location &&
    #####:    #####: 6848:                  !qual->flags.q.explicit_location) ||
    #####:    #####: 6849:                 (!first_member_has_explicit_location &&
        -:        -: 6850:                  qual->flags.q.explicit_location))) {
        -:        -: 6851:               _mesa_glsl_error(&loc, state,
        -:        -: 6852:                                "when block-level location layout qualifier "
        -:        -: 6853:                                "is not supplied either all members must "
        -:        -: 6854:                                "have a location layout qualifier or all "
        -:        -: 6855:                                "members must not have a location layout "
    #####:    #####: 6856:                                "qualifier");
        -:        -: 6857:            }
        -:        -: 6858:         } else {
    #####:    #####: 6859:            first_member = false;
        -:        -: 6860:            first_member_has_explicit_location =
    #####:    #####: 6861:               qual->flags.q.explicit_location;
        -:        -: 6862:         }
        -:        -: 6863:      }
        -:        -: 6864:
    #####:    #####: 6865:      if (qual->flags.q.std140 ||
    #####:    #####: 6866:          qual->flags.q.std430 ||
    #####:    #####: 6867:          qual->flags.q.packed ||
        -:        -: 6868:          qual->flags.q.shared) {
        -:        -: 6869:         _mesa_glsl_error(&loc, state,
        -:        -: 6870:                          "uniform/shader storage block layout qualifiers "
        -:        -: 6871:                          "std140, std430, packed, and shared can only be "
        -:        -: 6872:                          "applied to uniform/shader storage blocks, not "
    #####:    #####: 6873:                          "members");
        -:        -: 6874:      }
        -:        -: 6875:
    #####:    #####: 6876:      if (qual->flags.q.constant) {
        -:        -: 6877:         _mesa_glsl_error(&loc, state,
        -:        -: 6878:                          "const storage qualifier cannot be applied "
    #####:    #####: 6879:                          "to struct or interface block members");
        -:        -: 6880:      }
        -:        -: 6881:
        -:        -: 6882:      /* From Section 4.4.2.3 (Geometry Outputs) of the GLSL 4.50 spec:
        -:        -: 6883:       *
        -:        -: 6884:       *   "A block member may be declared with a stream identifier, but
        -:        -: 6885:       *   the specified stream must match the stream associated with the
        -:        -: 6886:       *   containing block."
        -:        -: 6887:       */
    #####:    #####: 6888:      if (qual->flags.q.explicit_stream) {
        -:        -: 6889:         unsigned qual_stream;
    #####:    #####: 6890:         if (process_qualifier_constant(state, &loc, "stream",
    #####:    #####: 6891:                                        qual->stream, &qual_stream) &&
    #####:    #####: 6892:             qual_stream != block_stream) {
        -:        -: 6893:            _mesa_glsl_error(&loc, state, "stream layout qualifier on "
        -:        -: 6894:                             "interface block member does not match "
        -:        -: 6895:                             "the interface block (%u vs %u)", qual_stream,
    #####:    #####: 6896:                             block_stream);
        -:        -: 6897:         }
        -:        -: 6898:      }
        -:        -: 6899:
        -:        -: 6900:      int xfb_buffer;
    #####:    #####: 6901:      unsigned explicit_xfb_buffer = 0;
    #####:    #####: 6902:      if (qual->flags.q.explicit_xfb_buffer) {
        -:        -: 6903:         unsigned qual_xfb_buffer;
    #####:    #####: 6904:         if (process_qualifier_constant(state, &loc, "xfb_buffer",
    #####:    #####: 6905:                                        qual->xfb_buffer, &qual_xfb_buffer)) {
    #####:    #####: 6906:            explicit_xfb_buffer = 1;
    #####:    #####: 6907:            if (qual_xfb_buffer != block_xfb_buffer)
        -:        -: 6908:               _mesa_glsl_error(&loc, state, "xfb_buffer layout qualifier on "
        -:        -: 6909:                                "interface block member does not match "
        -:        -: 6910:                                "the interface block (%u vs %u)",
    #####:    #####: 6911:                                qual_xfb_buffer, block_xfb_buffer);
        -:        -: 6912:         }
    #####:    #####: 6913:         xfb_buffer = (int) qual_xfb_buffer;
        -:        -: 6914:      } else {
    #####:    #####: 6915:         if (layout)
    #####:    #####: 6916:            explicit_xfb_buffer = layout->flags.q.explicit_xfb_buffer;
    #####:    #####: 6917:         xfb_buffer = (int) block_xfb_buffer;
        -:        -: 6918:      }
        -:        -: 6919:
    #####:    #####: 6920:      int xfb_stride = -1;
    #####:    #####: 6921:      if (qual->flags.q.explicit_xfb_stride) {
        -:        -: 6922:         unsigned qual_xfb_stride;
    #####:    #####: 6923:         if (process_qualifier_constant(state, &loc, "xfb_stride",
    #####:    #####: 6924:                                        qual->xfb_stride, &qual_xfb_stride)) {
    #####:    #####: 6925:            xfb_stride = (int) qual_xfb_stride;
        -:        -: 6926:         }
        -:        -: 6927:      }
        -:        -: 6928:
    #####:    #####: 6929:      if (qual->flags.q.uniform && qual->has_interpolation()) {
        -:        -: 6930:         _mesa_glsl_error(&loc, state,
        -:        -: 6931:                          "interpolation qualifiers cannot be used "
    #####:    #####: 6932:                          "with uniform interface blocks");
        -:        -: 6933:      }
        -:        -: 6934:
    #####:    #####: 6935:      if ((qual->flags.q.uniform || !is_interface) &&
    #####:    #####: 6936:          qual->has_auxiliary_storage()) {
        -:        -: 6937:         _mesa_glsl_error(&loc, state,
        -:        -: 6938:                          "auxiliary storage qualifiers cannot be used "
    #####:    #####: 6939:                          "in uniform blocks or structures.");
        -:        -: 6940:      }
        -:        -: 6941:
    #####:    #####: 6942:      if (qual->flags.q.row_major || qual->flags.q.column_major) {
    #####:    #####: 6943:         if (!qual->flags.q.uniform && !qual->flags.q.buffer) {
        -:        -: 6944:            _mesa_glsl_error(&loc, state,
        -:        -: 6945:                             "row_major and column_major can only be "
    #####:    #####: 6946:                             "applied to interface blocks");
        -:        -: 6947:         } else
    #####:    #####: 6948:            validate_matrix_layout_for_type(state, &loc, decl_type, NULL);
        -:        -: 6949:      }
        -:        -: 6950:
    #####:    #####: 6951:      if (qual->flags.q.read_only && qual->flags.q.write_only) {
        -:        -: 6952:         _mesa_glsl_error(&loc, state, "buffer variable can't be both "
    #####:    #####: 6953:                          "readonly and writeonly.");
        -:        -: 6954:      }
        -:        -: 6955:
    #####:    #####: 6956:      foreach_list_typed (ast_declaration, decl, link,
        -:        -: 6957:                          &decl_list->declarations) {
    #####:    #####: 6958:         YYLTYPE loc = decl->get_location();
        -:        -: 6959:
    #####:    #####: 6960:         if (!allow_reserved_names)
    #####:    #####: 6961:            validate_identifier(decl->identifier, loc, state);
        -:        -: 6962:
        -:        -: 6963:         const struct glsl_type *field_type =
    #####:    #####: 6964:            process_array_type(&loc, decl_type, decl->array_specifier, state);
    #####:    #####: 6965:         validate_array_dimensions(field_type, state, &loc);
    #####:    #####: 6966:         fields[i].type = field_type;
    #####:    #####: 6967:         fields[i].name = decl->identifier;
    #####:    #####: 6968:         fields[i].interpolation =
    #####:    #####: 6969:            interpret_interpolation_qualifier(qual, field_type,
    #####:    #####: 6970:                                              var_mode, state, &loc);
    #####:    #####: 6971:         fields[i].centroid = qual->flags.q.centroid ? 1 : 0;
    #####:    #####: 6972:         fields[i].sample = qual->flags.q.sample ? 1 : 0;
    #####:    #####: 6973:         fields[i].patch = qual->flags.q.patch ? 1 : 0;
    #####:    #####: 6974:         fields[i].precision = qual->precision;
    #####:    #####: 6975:         fields[i].offset = -1;
    #####:    #####: 6976:         fields[i].explicit_xfb_buffer = explicit_xfb_buffer;
    #####:    #####: 6977:         fields[i].xfb_buffer = xfb_buffer;
    #####:    #####: 6978:         fields[i].xfb_stride = xfb_stride;
        -:        -: 6979:
    #####:    #####: 6980:         if (qual->flags.q.explicit_location) {
        -:        -: 6981:            unsigned qual_location;
    #####:    #####: 6982:            if (process_qualifier_constant(state, &loc, "location",
    #####:    #####: 6983:                                           qual->location, &qual_location)) {
    #####:    #####: 6984:               fields[i].location = qual_location +
    #####:    #####: 6985:                  (fields[i].patch ? VARYING_SLOT_PATCH0 : VARYING_SLOT_VAR0);
    #####:    #####: 6986:               expl_location = fields[i].location +
    #####:    #####: 6987:                  fields[i].type->count_attribute_slots(false);
        -:        -: 6988:            }
        -:        -: 6989:         } else {
    #####:    #####: 6990:            if (layout && layout->flags.q.explicit_location) {
    #####:    #####: 6991:               fields[i].location = expl_location;
    #####:    #####: 6992:               expl_location += fields[i].type->count_attribute_slots(false);
        -:        -: 6993:            } else {
    #####:    #####: 6994:               fields[i].location = -1;
        -:        -: 6995:            }
        -:        -: 6996:         }
        -:        -: 6997:
        -:        -: 6998:         /* Offset can only be used with std430 and std140 layouts an initial
        -:        -: 6999:          * value of 0 is used for error detection.
        -:        -: 7000:          */
    #####:    #####: 7001:         unsigned align = 0;
    #####:    #####: 7002:         unsigned size = 0;
    #####:    #####: 7003:         if (layout) {
        -:        -: 7004:            bool row_major;
    #####:    #####: 7005:            if (qual->flags.q.row_major ||
        -:        -: 7006:                matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR) {
    #####:    #####: 7007:               row_major = true;
        -:        -: 7008:            } else {
    #####:    #####: 7009:               row_major = false;
        -:        -: 7010:            }
        -:        -: 7011:
    #####:    #####: 7012:            if(layout->flags.q.std140) {
    #####:    #####: 7013:               align = field_type->std140_base_alignment(row_major);
    #####:    #####: 7014:               size = field_type->std140_size(row_major);
    #####:    #####: 7015:            } else if (layout->flags.q.std430) {
    #####:    #####: 7016:               align = field_type->std430_base_alignment(row_major);
    #####:    #####: 7017:               size = field_type->std430_size(row_major);
        -:        -: 7018:            }
        -:        -: 7019:         }
        -:        -: 7020:
    #####:    #####: 7021:         if (qual->flags.q.explicit_offset) {
        -:        -: 7022:            unsigned qual_offset;
    #####:    #####: 7023:            if (process_qualifier_constant(state, &loc, "offset",
    #####:    #####: 7024:                                           qual->offset, &qual_offset)) {
    #####:    #####: 7025:               if (align != 0 && size != 0) {
    #####:    #####: 7026:                   if (next_offset > qual_offset)
        -:        -: 7027:                      _mesa_glsl_error(&loc, state, "layout qualifier "
    #####:    #####: 7028:                                       "offset overlaps previous member");
        -:        -: 7029:
    #####:    #####: 7030:                  if (qual_offset % align) {
        -:        -: 7031:                     _mesa_glsl_error(&loc, state, "layout qualifier offset "
        -:        -: 7032:                                      "must be a multiple of the base "
    #####:    #####: 7033:                                      "alignment of %s", field_type->name);
        -:        -: 7034:                  }
    #####:    #####: 7035:                  fields[i].offset = qual_offset;
    #####:    #####: 7036:                  next_offset = glsl_align(qual_offset + size, align);
        -:        -: 7037:               } else {
        -:        -: 7038:                  _mesa_glsl_error(&loc, state, "offset can only be used "
    #####:    #####: 7039:                                   "with std430 and std140 layouts");
        -:        -: 7040:               }
        -:        -: 7041:            }
        -:        -: 7042:         }
        -:        -: 7043:
    #####:    #####: 7044:         if (qual->flags.q.explicit_align || expl_align != 0) {
    #####:    #####: 7045:            unsigned offset = fields[i].offset != -1 ? fields[i].offset :
    #####:    #####: 7046:               next_offset;
    #####:    #####: 7047:            if (align == 0 || size == 0) {
        -:        -: 7048:               _mesa_glsl_error(&loc, state, "align can only be used with "
    #####:    #####: 7049:                                "std430 and std140 layouts");
    #####:    #####: 7050:            } else if (qual->flags.q.explicit_align) {
        -:        -: 7051:               unsigned member_align;
    #####:    #####: 7052:               if (process_qualifier_constant(state, &loc, "align",
    #####:    #####: 7053:                                              qual->align, &member_align)) {
    #####:    #####: 7054:                  if (member_align == 0 ||
    #####:    #####: 7055:                      member_align & (member_align - 1)) {
        -:        -: 7056:                     _mesa_glsl_error(&loc, state, "align layout qualifier "
    #####:    #####: 7057:                                      "in not a power of 2");
        -:        -: 7058:                  } else {
    #####:    #####: 7059:                     fields[i].offset = glsl_align(offset, member_align);
    #####:    #####: 7060:                     next_offset = glsl_align(fields[i].offset + size, align);
        -:        -: 7061:                  }
        -:        -: 7062:               }
        -:        -: 7063:            } else {
    #####:    #####: 7064:               fields[i].offset = glsl_align(offset, expl_align);
    #####:    #####: 7065:               next_offset = glsl_align(fields[i].offset + size, align);
    #####:    #####: 7066:            }
    #####:    #####: 7067:         } else if (!qual->flags.q.explicit_offset) {
    #####:    #####: 7068:            if (align != 0 && size != 0)
    #####:    #####: 7069:               next_offset = glsl_align(next_offset + size, align);
        -:        -: 7070:         }
        -:        -: 7071:
        -:        -: 7072:         /* From the ARB_enhanced_layouts spec:
        -:        -: 7073:          *
        -:        -: 7074:          *    "The given offset applies to the first component of the first
        -:        -: 7075:          *    member of the qualified entity.  Then, within the qualified
        -:        -: 7076:          *    entity, subsequent components are each assigned, in order, to
        -:        -: 7077:          *    the next available offset aligned to a multiple of that
        -:        -: 7078:          *    component's size.  Aggregate types are flattened down to the
        -:        -: 7079:          *    component level to get this sequence of components."
        -:        -: 7080:          */
    #####:    #####: 7081:         if (qual->flags.q.explicit_xfb_offset) {
        -:        -: 7082:            unsigned xfb_offset;
    #####:    #####: 7083:            if (process_qualifier_constant(state, &loc, "xfb_offset",
    #####:    #####: 7084:                                           qual->offset, &xfb_offset)) {
    #####:    #####: 7085:               fields[i].offset = xfb_offset;
    #####:    #####: 7086:               block_xfb_offset = fields[i].offset +
    #####:    #####: 7087:                  MAX2(xfb_stride, (int) (4 * field_type->component_slots()));
        -:        -: 7088:            }
        -:        -: 7089:         } else {
    #####:    #####: 7090:            if (layout && layout->flags.q.explicit_xfb_offset) {
    #####:    #####: 7091:               unsigned align = field_type->is_64bit() ? 8 : 4;
    #####:    #####: 7092:               fields[i].offset = glsl_align(block_xfb_offset, align);
        -:        -: 7093:               block_xfb_offset +=
    #####:    #####: 7094:                  MAX2(xfb_stride, (int) (4 * field_type->component_slots()));
        -:        -: 7095:            }
        -:        -: 7096:         }
        -:        -: 7097:
        -:        -: 7098:         /* Propogate row- / column-major information down the fields of the
        -:        -: 7099:          * structure or interface block.  Structures need this data because
        -:        -: 7100:          * the structure may contain a structure that contains ... a matrix
        -:        -: 7101:          * that need the proper layout.
        -:        -: 7102:          */
    #####:    #####: 7103:         if (is_interface && layout &&
    #####:    #####: 7104:             (layout->flags.q.uniform || layout->flags.q.buffer) &&
    #####:    #####: 7105:             (field_type->without_array()->is_matrix()
    #####:    #####: 7106:              || field_type->without_array()->is_record())) {
        -:        -: 7107:            /* If no layout is specified for the field, inherit the layout
        -:        -: 7108:             * from the block.
        -:        -: 7109:             */
    #####:    #####: 7110:            fields[i].matrix_layout = matrix_layout;
        -:        -: 7111:
    #####:    #####: 7112:            if (qual->flags.q.row_major)
    #####:    #####: 7113:               fields[i].matrix_layout = GLSL_MATRIX_LAYOUT_ROW_MAJOR;
    #####:    #####: 7114:            else if (qual->flags.q.column_major)
    #####:    #####: 7115:               fields[i].matrix_layout = GLSL_MATRIX_LAYOUT_COLUMN_MAJOR;
        -:        -: 7116:
        -:        -: 7117:            /* If we're processing an uniform or buffer block, the matrix
        -:        -: 7118:             * layout must be decided by this point.
        -:        -: 7119:             */
    #####:    #####: 7120:            assert(fields[i].matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR
    #####:    #####: 7121:                   || fields[i].matrix_layout == GLSL_MATRIX_LAYOUT_COLUMN_MAJOR);
        -:        -: 7122:         }
        -:        -: 7123:
        -:        -: 7124:         /* Image qualifiers are allowed on buffer variables, which can only
        -:        -: 7125:          * be defined inside shader storage buffer objects
        -:        -: 7126:          */
    #####:    #####: 7127:         if (layout && var_mode == ir_var_shader_storage) {
        -:        -: 7128:            /* For readonly and writeonly qualifiers the field definition,
        -:        -: 7129:             * if set, overwrites the layout qualifier.
        -:        -: 7130:             */
    #####:    #####: 7131:            if (qual->flags.q.read_only) {
    #####:    #####: 7132:               fields[i].image_read_only = true;
    #####:    #####: 7133:               fields[i].image_write_only = false;
    #####:    #####: 7134:            } else if (qual->flags.q.write_only) {
    #####:    #####: 7135:               fields[i].image_read_only = false;
    #####:    #####: 7136:               fields[i].image_write_only = true;
        -:        -: 7137:            } else {
    #####:    #####: 7138:               fields[i].image_read_only = layout->flags.q.read_only;
    #####:    #####: 7139:               fields[i].image_write_only = layout->flags.q.write_only;
        -:        -: 7140:            }
        -:        -: 7141:
        -:        -: 7142:            /* For other qualifiers, we set the flag if either the layout
        -:        -: 7143:             * qualifier or the field qualifier are set
        -:        -: 7144:             */
    #####:    #####: 7145:            fields[i].image_coherent = qual->flags.q.coherent ||
    #####:    #####: 7146:                                        layout->flags.q.coherent;
    #####:    #####: 7147:            fields[i].image_volatile = qual->flags.q._volatile ||
    #####:    #####: 7148:                                        layout->flags.q._volatile;
    #####:    #####: 7149:            fields[i].image_restrict = qual->flags.q.restrict_flag ||
    #####:    #####: 7150:                                        layout->flags.q.restrict_flag;
        -:        -: 7151:         }
        -:        -: 7152:
    #####:    #####: 7153:         i++;
        -:        -: 7154:      }
        -:        -: 7155:   }
        -:        -: 7156:
    #####:    #####: 7157:   assert(i == decl_count);
        -:        -: 7158:
    #####:    #####: 7159:   *fields_ret = fields;
    #####:    #####: 7160:   return decl_count;
        -:        -: 7161:}
        -:        -: 7162:
        -:        -: 7163:
        -:        -: 7164:ir_rvalue *
    #####:    #####: 7165:ast_struct_specifier::hir(exec_list *instructions,
        -:        -: 7166:                          struct _mesa_glsl_parse_state *state)
        -:        -: 7167:{
    #####:    #####: 7168:   YYLTYPE loc = this->get_location();
        -:        -: 7169:
    #####:    #####: 7170:   unsigned expl_location = 0;
    #####:    #####: 7171:   if (layout && layout->flags.q.explicit_location) {
    #####:    #####: 7172:      if (!process_qualifier_constant(state, &loc, "location",
    #####:    #####: 7173:                                      layout->location, &expl_location)) {
    #####:    #####: 7174:         return NULL;
        -:        -: 7175:      } else {
    #####:    #####: 7176:         expl_location = VARYING_SLOT_VAR0 + expl_location;
        -:        -: 7177:      }
        -:        -: 7178:   }
        -:        -: 7179:
        -:        -: 7180:   glsl_struct_field *fields;
        -:        -: 7181:   unsigned decl_count =
    #####:    #####: 7182:      ast_process_struct_or_iface_block_members(instructions,
        -:        -: 7183:                                                state,
        -:        -: 7184:                                                &this->declarations,
        -:        -: 7185:                                                &fields,
        -:        -: 7186:                                                false,
        -:        -: 7187:                                                GLSL_MATRIX_LAYOUT_INHERITED,
        -:        -: 7188:                                                false /* allow_reserved_names */,
        -:        -: 7189:                                                ir_var_auto,
        -:        -: 7190:                                                layout,
        -:        -: 7191:                                                0, /* for interface only */
        -:        -: 7192:                                                0, /* for interface only */
        -:        -: 7193:                                                0, /* for interface only */
        -:        -: 7194:                                                expl_location,
    #####:    #####: 7195:                                                0 /* for interface only */);
        -:        -: 7196:
    #####:    #####: 7197:   validate_identifier(this->name, loc, state);
        -:        -: 7198:
        -:        -: 7199:   const glsl_type *t =
    #####:    #####: 7200:      glsl_type::get_record_instance(fields, decl_count, this->name);
        -:        -: 7201:
    #####:    #####: 7202:   if (!state->symbols->add_type(name, t)) {
    #####:    #####: 7203:      const glsl_type *match = state->symbols->get_type(name);
        -:        -: 7204:      /* allow struct matching for desktop GL - older UE4 does this */
    #####:    #####: 7205:      if (match != NULL && state->is_version(130, 0) && match->record_compare(t, false))
    #####:    #####: 7206:         _mesa_glsl_warning(& loc, state, "struct `%s' previously defined", name);
        -:        -: 7207:      else
    #####:    #####: 7208:         _mesa_glsl_error(& loc, state, "struct `%s' previously defined", name);
        -:        -: 7209:   } else {
    #####:    #####: 7210:      const glsl_type **s = reralloc(state, state->user_structures,
        -:        -: 7211:                                     const glsl_type *,
        -:        -: 7212:                                     state->num_user_structures + 1);
    #####:    #####: 7213:      if (s != NULL) {
    #####:    #####: 7214:         s[state->num_user_structures] = t;
    #####:    #####: 7215:         state->user_structures = s;
    #####:    #####: 7216:         state->num_user_structures++;
        -:        -: 7217:      }
        -:        -: 7218:   }
        -:        -: 7219:
        -:        -: 7220:   /* Structure type definitions do not have r-values.
        -:        -: 7221:    */
    #####:    #####: 7222:   return NULL;
        -:        -: 7223:}
        -:        -: 7224:
        -:        -: 7225:
        -:        -: 7226:/**
        -:        -: 7227: * Visitor class which detects whether a given interface block has been used.
        -:        -: 7228: */
        -:        -: 7229:class interface_block_usage_visitor : public ir_hierarchical_visitor
        -:        -: 7230:{
        -:        -: 7231:public:
        1:        1: 7232:   interface_block_usage_visitor(ir_variable_mode mode, const glsl_type *block)
        1:        1: 7233:      : mode(mode), block(block), found(false)
        -:        -: 7234:   {
        1:        1: 7235:   }
        -:        -: 7236:
        4:        4: 7237:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -: 7238:   {
        4:        4: 7239:      if (ir->var->data.mode == mode && ir->var->get_interface_type() == block) {
        1:        1: 7240:         found = true;
        1:        1: 7241:         return visit_stop;
        -:        -: 7242:      }
        3:        3: 7243:      return visit_continue;
        -:        -: 7244:   }
        -:        -: 7245:
        1:        1: 7246:   bool usage_found() const
        -:        -: 7247:   {
        1:        1: 7248:      return this->found;
        -:        -: 7249:   }
        -:        -: 7250:
        -:        -: 7251:private:
        -:        -: 7252:   ir_variable_mode mode;
        -:        -: 7253:   const glsl_type *block;
        -:        -: 7254:   bool found;
        -:        -: 7255:};
        -:        -: 7256:
        -:        -: 7257:static bool
    #####:    #####: 7258:is_unsized_array_last_element(ir_variable *v)
        -:        -: 7259:{
    #####:    #####: 7260:   const glsl_type *interface_type = v->get_interface_type();
    #####:    #####: 7261:   int length = interface_type->length;
        -:        -: 7262:
    #####:    #####: 7263:   assert(v->type->is_unsized_array());
        -:        -: 7264:
        -:        -: 7265:   /* Check if it is the last element of the interface */
    #####:    #####: 7266:   if (strcmp(interface_type->fields.structure[length-1].name, v->name) == 0)
    #####:    #####: 7267:      return true;
    #####:    #####: 7268:   return false;
        -:        -: 7269:}
        -:        -: 7270:
        -:        -: 7271:static void
    #####:    #####: 7272:apply_memory_qualifiers(ir_variable *var, glsl_struct_field field)
        -:        -: 7273:{
    #####:    #####: 7274:   var->data.image_read_only = field.image_read_only;
    #####:    #####: 7275:   var->data.image_write_only = field.image_write_only;
    #####:    #####: 7276:   var->data.image_coherent = field.image_coherent;
    #####:    #####: 7277:   var->data.image_volatile = field.image_volatile;
    #####:    #####: 7278:   var->data.image_restrict = field.image_restrict;
    #####:    #####: 7279:}
        -:        -: 7280:
        -:        -: 7281:ir_rvalue *
    #####:    #####: 7282:ast_interface_block::hir(exec_list *instructions,
        -:        -: 7283:                         struct _mesa_glsl_parse_state *state)
        -:        -: 7284:{
    #####:    #####: 7285:   YYLTYPE loc = this->get_location();
        -:        -: 7286:
        -:        -: 7287:   /* Interface blocks must be declared at global scope */
    #####:    #####: 7288:   if (state->current_function != NULL) {
    #####:    #####: 7289:      _mesa_glsl_error(&loc, state,
        -:        -: 7290:                       "Interface block `%s' must be declared "
        -:        -: 7291:                       "at global scope",
    #####:    #####: 7292:                       this->block_name);
        -:        -: 7293:   }
        -:        -: 7294:
        -:        -: 7295:   /* Validate qualifiers:
        -:        -: 7296:    *
        -:        -: 7297:    * - Layout Qualifiers as per the table in Section 4.4
        -:        -: 7298:    *   ("Layout Qualifiers") of the GLSL 4.50 spec.
        -:        -: 7299:    *
        -:        -: 7300:    * - Memory Qualifiers as per Section 4.10 ("Memory Qualifiers") of the
        -:        -: 7301:    *   GLSL 4.50 spec:
        -:        -: 7302:    *
        -:        -: 7303:    *     "Additionally, memory qualifiers may also be used in the declaration
        -:        -: 7304:    *      of shader storage blocks"
        -:        -: 7305:    *
        -:        -: 7306:    * Note the table in Section 4.4 says std430 is allowed on both uniform and
        -:        -: 7307:    * buffer blocks however Section 4.4.5 (Uniform and Shader Storage Block
        -:        -: 7308:    * Layout Qualifiers) of the GLSL 4.50 spec says:
        -:        -: 7309:    *
        -:        -: 7310:    *    "The std430 qualifier is supported only for shader storage blocks;
        -:        -: 7311:    *    using std430 on a uniform block will result in a compile-time error."
        -:        -: 7312:    */
        -:        -: 7313:   ast_type_qualifier allowed_blk_qualifiers;
    #####:    #####: 7314:   allowed_blk_qualifiers.flags.i = 0;
    #####:    #####: 7315:   if (this->layout.flags.q.buffer || this->layout.flags.q.uniform) {
    #####:    #####: 7316:      allowed_blk_qualifiers.flags.q.shared = 1;
    #####:    #####: 7317:      allowed_blk_qualifiers.flags.q.packed = 1;
    #####:    #####: 7318:      allowed_blk_qualifiers.flags.q.std140 = 1;
    #####:    #####: 7319:      allowed_blk_qualifiers.flags.q.row_major = 1;
    #####:    #####: 7320:      allowed_blk_qualifiers.flags.q.column_major = 1;
    #####:    #####: 7321:      allowed_blk_qualifiers.flags.q.explicit_align = 1;
    #####:    #####: 7322:      allowed_blk_qualifiers.flags.q.explicit_binding = 1;
    #####:    #####: 7323:      if (this->layout.flags.q.buffer) {
    #####:    #####: 7324:         allowed_blk_qualifiers.flags.q.buffer = 1;
    #####:    #####: 7325:         allowed_blk_qualifiers.flags.q.std430 = 1;
    #####:    #####: 7326:         allowed_blk_qualifiers.flags.q.coherent = 1;
    #####:    #####: 7327:         allowed_blk_qualifiers.flags.q._volatile = 1;
    #####:    #####: 7328:         allowed_blk_qualifiers.flags.q.restrict_flag = 1;
    #####:    #####: 7329:         allowed_blk_qualifiers.flags.q.read_only = 1;
    #####:    #####: 7330:         allowed_blk_qualifiers.flags.q.write_only = 1;
        -:        -: 7331:      } else {
    #####:    #####: 7332:         allowed_blk_qualifiers.flags.q.uniform = 1;
        -:        -: 7333:      }
        -:        -: 7334:   } else {
        -:        -: 7335:      /* Interface block */
    #####:    #####: 7336:      assert(this->layout.flags.q.in || this->layout.flags.q.out);
        -:        -: 7337:
    #####:    #####: 7338:      allowed_blk_qualifiers.flags.q.explicit_location = 1;
    #####:    #####: 7339:      if (this->layout.flags.q.out) {
    #####:    #####: 7340:         allowed_blk_qualifiers.flags.q.out = 1;
    #####:    #####: 7341:         if (state->stage == MESA_SHADER_GEOMETRY ||
    #####:    #####: 7342:          state->stage == MESA_SHADER_TESS_CTRL ||
    #####:    #####: 7343:          state->stage == MESA_SHADER_TESS_EVAL ||
    #####:    #####: 7344:          state->stage == MESA_SHADER_VERTEX ) {
    #####:    #####: 7345:            allowed_blk_qualifiers.flags.q.explicit_xfb_offset = 1;
    #####:    #####: 7346:            allowed_blk_qualifiers.flags.q.explicit_xfb_buffer = 1;
    #####:    #####: 7347:            allowed_blk_qualifiers.flags.q.xfb_buffer = 1;
    #####:    #####: 7348:            allowed_blk_qualifiers.flags.q.explicit_xfb_stride = 1;
    #####:    #####: 7349:            allowed_blk_qualifiers.flags.q.xfb_stride = 1;
    #####:    #####: 7350:            if (state->stage == MESA_SHADER_GEOMETRY) {
    #####:    #####: 7351:               allowed_blk_qualifiers.flags.q.stream = 1;
    #####:    #####: 7352:               allowed_blk_qualifiers.flags.q.explicit_stream = 1;
        -:        -: 7353:            }
    #####:    #####: 7354:            if (state->stage == MESA_SHADER_TESS_CTRL) {
    #####:    #####: 7355:               allowed_blk_qualifiers.flags.q.patch = 1;
        -:        -: 7356:            }
        -:        -: 7357:         }
        -:        -: 7358:      } else {
    #####:    #####: 7359:         allowed_blk_qualifiers.flags.q.in = 1;
    #####:    #####: 7360:         if (state->stage == MESA_SHADER_TESS_EVAL) {
    #####:    #####: 7361:            allowed_blk_qualifiers.flags.q.patch = 1;
        -:        -: 7362:         }
        -:        -: 7363:      }
        -:        -: 7364:   }
        -:        -: 7365:
    #####:    #####: 7366:   this->layout.validate_flags(&loc, state, allowed_blk_qualifiers,
        -:        -: 7367:                               "invalid qualifier for block",
    #####:    #####: 7368:                               this->block_name);
        -:        -: 7369:
        -:        -: 7370:   /* The ast_interface_block has a list of ast_declarator_lists.  We
        -:        -: 7371:    * need to turn those into ir_variables with an association
        -:        -: 7372:    * with this uniform block.
        -:        -: 7373:    */
        -:        -: 7374:   enum glsl_interface_packing packing;
    #####:    #####: 7375:   if (this->layout.flags.q.shared) {
    #####:    #####: 7376:      packing = GLSL_INTERFACE_PACKING_SHARED;
    #####:    #####: 7377:   } else if (this->layout.flags.q.packed) {
    #####:    #####: 7378:      packing = GLSL_INTERFACE_PACKING_PACKED;
    #####:    #####: 7379:   } else if (this->layout.flags.q.std430) {
    #####:    #####: 7380:      packing = GLSL_INTERFACE_PACKING_STD430;
        -:        -: 7381:   } else {
        -:        -: 7382:      /* The default layout is std140.
        -:        -: 7383:       */
    #####:    #####: 7384:      packing = GLSL_INTERFACE_PACKING_STD140;
        -:        -: 7385:   }
        -:        -: 7386:
        -:        -: 7387:   ir_variable_mode var_mode;
        -:        -: 7388:   const char *iface_type_name;
    #####:    #####: 7389:   if (this->layout.flags.q.in) {
    #####:    #####: 7390:      var_mode = ir_var_shader_in;
    #####:    #####: 7391:      iface_type_name = "in";
    #####:    #####: 7392:   } else if (this->layout.flags.q.out) {
    #####:    #####: 7393:      var_mode = ir_var_shader_out;
    #####:    #####: 7394:      iface_type_name = "out";
    #####:    #####: 7395:   } else if (this->layout.flags.q.uniform) {
    #####:    #####: 7396:      var_mode = ir_var_uniform;
    #####:    #####: 7397:      iface_type_name = "uniform";
    #####:    #####: 7398:   } else if (this->layout.flags.q.buffer) {
    #####:    #####: 7399:      var_mode = ir_var_shader_storage;
    #####:    #####: 7400:      iface_type_name = "buffer";
        -:        -: 7401:   } else {
    #####:    #####: 7402:      var_mode = ir_var_auto;
    #####:    #####: 7403:      iface_type_name = "UNKNOWN";
    #####:    #####: 7404:      assert(!"interface block layout qualifier not found!");
        -:        -: 7405:   }
        -:        -: 7406:
    #####:    #####: 7407:   enum glsl_matrix_layout matrix_layout = GLSL_MATRIX_LAYOUT_INHERITED;
    #####:    #####: 7408:   if (this->layout.flags.q.row_major)
    #####:    #####: 7409:      matrix_layout = GLSL_MATRIX_LAYOUT_ROW_MAJOR;
    #####:    #####: 7410:   else if (this->layout.flags.q.column_major)
    #####:    #####: 7411:      matrix_layout = GLSL_MATRIX_LAYOUT_COLUMN_MAJOR;
        -:        -: 7412:
    #####:    #####: 7413:   bool redeclaring_per_vertex = strcmp(this->block_name, "gl_PerVertex") == 0;
    #####:    #####: 7414:   exec_list declared_variables;
        -:        -: 7415:   glsl_struct_field *fields;
        -:        -: 7416:
        -:        -: 7417:   /* For blocks that accept memory qualifiers (i.e. shader storage), verify
        -:        -: 7418:    * that we don't have incompatible qualifiers
        -:        -: 7419:    */
    #####:    #####: 7420:   if (this->layout.flags.q.read_only && this->layout.flags.q.write_only) {
        -:        -: 7421:      _mesa_glsl_error(&loc, state,
    #####:    #####: 7422:                       "Interface block sets both readonly and writeonly");
        -:        -: 7423:   }
        -:        -: 7424:
        -:        -: 7425:   unsigned qual_stream;
    #####:    #####: 7426:   if (!process_qualifier_constant(state, &loc, "stream", this->layout.stream,
    #####:    #####: 7427:                                   &qual_stream) ||
    #####:    #####: 7428:       !validate_stream_qualifier(&loc, state, qual_stream)) {
        -:        -: 7429:      /* If the stream qualifier is invalid it doesn't make sense to continue
        -:        -: 7430:       * on and try to compare stream layouts on member variables against it
        -:        -: 7431:       * so just return early.
        -:        -: 7432:       */
    #####:    #####: 7433:      return NULL;
        -:        -: 7434:   }
        -:        -: 7435:
        -:        -: 7436:   unsigned qual_xfb_buffer;
    #####:    #####: 7437:   if (!process_qualifier_constant(state, &loc, "xfb_buffer",
    #####:    #####: 7438:                                   layout.xfb_buffer, &qual_xfb_buffer) ||
    #####:    #####: 7439:       !validate_xfb_buffer_qualifier(&loc, state, qual_xfb_buffer)) {
    #####:    #####: 7440:      return NULL;
        -:        -: 7441:   }
        -:        -: 7442:
        -:        -: 7443:   unsigned qual_xfb_offset;
    #####:    #####: 7444:   if (layout.flags.q.explicit_xfb_offset) {
    #####:    #####: 7445:      if (!process_qualifier_constant(state, &loc, "xfb_offset",
        -:        -: 7446:                                      layout.offset, &qual_xfb_offset)) {
    #####:    #####: 7447:         return NULL;
        -:        -: 7448:      }
        -:        -: 7449:   }
        -:        -: 7450:
        -:        -: 7451:   unsigned qual_xfb_stride;
    #####:    #####: 7452:   if (layout.flags.q.explicit_xfb_stride) {
    #####:    #####: 7453:      if (!process_qualifier_constant(state, &loc, "xfb_stride",
        -:        -: 7454:                                      layout.xfb_stride, &qual_xfb_stride)) {
    #####:    #####: 7455:         return NULL;
        -:        -: 7456:      }
        -:        -: 7457:   }
        -:        -: 7458:
    #####:    #####: 7459:   unsigned expl_location = 0;
    #####:    #####: 7460:   if (layout.flags.q.explicit_location) {
    #####:    #####: 7461:      if (!process_qualifier_constant(state, &loc, "location",
        -:        -: 7462:                                      layout.location, &expl_location)) {
    #####:    #####: 7463:         return NULL;
        -:        -: 7464:      } else {
        -:        -: 7465:         expl_location += this->layout.flags.q.patch ? VARYING_SLOT_PATCH0
    #####:    #####: 7466:                                                     : VARYING_SLOT_VAR0;
        -:        -: 7467:      }
        -:        -: 7468:   }
        -:        -: 7469:
    #####:    #####: 7470:   unsigned expl_align = 0;
    #####:    #####: 7471:   if (layout.flags.q.explicit_align) {
    #####:    #####: 7472:      if (!process_qualifier_constant(state, &loc, "align",
        -:        -: 7473:                                      layout.align, &expl_align)) {
    #####:    #####: 7474:         return NULL;
        -:        -: 7475:      } else {
    #####:    #####: 7476:         if (expl_align == 0 || expl_align & (expl_align - 1)) {
        -:        -: 7477:            _mesa_glsl_error(&loc, state, "align layout qualifier in not a "
    #####:    #####: 7478:                             "power of 2.");
    #####:    #####: 7479:            return NULL;
        -:        -: 7480:         }
        -:        -: 7481:      }
        -:        -: 7482:   }
        -:        -: 7483:
        -:        -: 7484:   unsigned int num_variables =
    #####:    #####: 7485:      ast_process_struct_or_iface_block_members(&declared_variables,
        -:        -: 7486:                                                state,
        -:        -: 7487:                                                &this->declarations,
        -:        -: 7488:                                                &fields,
        -:        -: 7489:                                                true,
        -:        -: 7490:                                                matrix_layout,
        -:        -: 7491:                                                redeclaring_per_vertex,
        -:        -: 7492:                                                var_mode,
        -:        -: 7493:                                                &this->layout,
        -:        -: 7494:                                                qual_stream,
        -:        -: 7495:                                                qual_xfb_buffer,
        -:        -: 7496:                                                qual_xfb_offset,
        -:        -: 7497:                                                expl_location,
    #####:    #####: 7498:                                                expl_align);
        -:        -: 7499:
    #####:    #####: 7500:   if (!redeclaring_per_vertex) {
    #####:    #####: 7501:      validate_identifier(this->block_name, loc, state);
        -:        -: 7502:
        -:        -: 7503:      /* From section 4.3.9 ("Interface Blocks") of the GLSL 4.50 spec:
        -:        -: 7504:       *
        -:        -: 7505:       *     "Block names have no other use within a shader beyond interface
        -:        -: 7506:       *     matching; it is a compile-time error to use a block name at global
        -:        -: 7507:       *     scope for anything other than as a block name."
        -:        -: 7508:       */
    #####:    #####: 7509:      ir_variable *var = state->symbols->get_variable(this->block_name);
    #####:    #####: 7510:      if (var && !var->type->is_interface()) {
    #####:    #####: 7511:         _mesa_glsl_error(&loc, state, "Block name `%s' is "
        -:        -: 7512:                          "already used in the scope.",
    #####:    #####: 7513:                          this->block_name);
        -:        -: 7514:      }
        -:        -: 7515:   }
        -:        -: 7516:
    #####:    #####: 7517:   const glsl_type *earlier_per_vertex = NULL;
    #####:    #####: 7518:   if (redeclaring_per_vertex) {
        -:        -: 7519:      /* Find the previous declaration of gl_PerVertex.  If we're redeclaring
        -:        -: 7520:       * the named interface block gl_in, we can find it by looking at the
        -:        -: 7521:       * previous declaration of gl_in.  Otherwise we can find it by looking
        -:        -: 7522:       * at the previous decalartion of any of the built-in outputs,
        -:        -: 7523:       * e.g. gl_Position.
        -:        -: 7524:       *
        -:        -: 7525:       * Also check that the instance name and array-ness of the redeclaration
        -:        -: 7526:       * are correct.
        -:        -: 7527:       */
    #####:    #####: 7528:      switch (var_mode) {
        -:        -: 7529:      case ir_var_shader_in:
    #####:    #####: 7530:         if (ir_variable *earlier_gl_in =
    #####:    #####: 7531:             state->symbols->get_variable("gl_in")) {
    #####:    #####: 7532:            earlier_per_vertex = earlier_gl_in->get_interface_type();
        -:        -: 7533:         } else {
    #####:    #####: 7534:            _mesa_glsl_error(&loc, state,
        -:        -: 7535:                             "redeclaration of gl_PerVertex input not allowed "
        -:        -: 7536:                             "in the %s shader",
    #####:    #####: 7537:                             _mesa_shader_stage_to_string(state->stage));
        -:        -: 7538:         }
    #####:    #####: 7539:         if (this->instance_name == NULL ||
    #####:    #####: 7540:             strcmp(this->instance_name, "gl_in") != 0 || this->array_specifier == NULL ||
    #####:    #####: 7541:             !this->array_specifier->is_single_dimension()) {
        -:        -: 7542:            _mesa_glsl_error(&loc, state,
        -:        -: 7543:                             "gl_PerVertex input must be redeclared as "
    #####:    #####: 7544:                             "gl_in[]");
        -:        -: 7545:         }
    #####:    #####: 7546:         break;
        -:        -: 7547:      case ir_var_shader_out:
    #####:    #####: 7548:         if (ir_variable *earlier_gl_Position =
    #####:    #####: 7549:             state->symbols->get_variable("gl_Position")) {
    #####:    #####: 7550:            earlier_per_vertex = earlier_gl_Position->get_interface_type();
    #####:    #####: 7551:         } else if (ir_variable *earlier_gl_out =
    #####:    #####: 7552:               state->symbols->get_variable("gl_out")) {
    #####:    #####: 7553:            earlier_per_vertex = earlier_gl_out->get_interface_type();
        -:        -: 7554:         } else {
    #####:    #####: 7555:            _mesa_glsl_error(&loc, state,
        -:        -: 7556:                             "redeclaration of gl_PerVertex output not "
        -:        -: 7557:                             "allowed in the %s shader",
    #####:    #####: 7558:                             _mesa_shader_stage_to_string(state->stage));
        -:        -: 7559:         }
    #####:    #####: 7560:         if (state->stage == MESA_SHADER_TESS_CTRL) {
    #####:    #####: 7561:            if (this->instance_name == NULL ||
    #####:    #####: 7562:                strcmp(this->instance_name, "gl_out") != 0 || this->array_specifier == NULL) {
        -:        -: 7563:               _mesa_glsl_error(&loc, state,
        -:        -: 7564:                                "gl_PerVertex output must be redeclared as "
    #####:    #####: 7565:                                "gl_out[]");
        -:        -: 7566:            }
        -:        -: 7567:         } else {
    #####:    #####: 7568:            if (this->instance_name != NULL) {
        -:        -: 7569:               _mesa_glsl_error(&loc, state,
        -:        -: 7570:                                "gl_PerVertex output may not be redeclared with "
    #####:    #####: 7571:                                "an instance name");
        -:        -: 7572:            }
        -:        -: 7573:         }
    #####:    #####: 7574:         break;
        -:        -: 7575:      default:
        -:        -: 7576:         _mesa_glsl_error(&loc, state,
        -:        -: 7577:                          "gl_PerVertex must be declared as an input or an "
    #####:    #####: 7578:                          "output");
    #####:    #####: 7579:         break;
        -:        -: 7580:      }
        -:        -: 7581:
    #####:    #####: 7582:      if (earlier_per_vertex == NULL) {
        -:        -: 7583:         /* An error has already been reported.  Bail out to avoid null
        -:        -: 7584:          * dereferences later in this function.
        -:        -: 7585:          */
    #####:    #####: 7586:         return NULL;
        -:        -: 7587:      }
        -:        -: 7588:
        -:        -: 7589:      /* Copy locations from the old gl_PerVertex interface block. */
    #####:    #####: 7590:      for (unsigned i = 0; i < num_variables; i++) {
    #####:    #####: 7591:         int j = earlier_per_vertex->field_index(fields[i].name);
    #####:    #####: 7592:         if (j == -1) {
        -:        -: 7593:            _mesa_glsl_error(&loc, state,
        -:        -: 7594:                             "redeclaration of gl_PerVertex must be a subset "
    #####:    #####: 7595:                             "of the built-in members of gl_PerVertex");
        -:        -: 7596:         } else {
    #####:    #####: 7597:            fields[i].location =
    #####:    #####: 7598:               earlier_per_vertex->fields.structure[j].location;
    #####:    #####: 7599:            fields[i].offset =
    #####:    #####: 7600:               earlier_per_vertex->fields.structure[j].offset;
    #####:    #####: 7601:            fields[i].interpolation =
    #####:    #####: 7602:               earlier_per_vertex->fields.structure[j].interpolation;
    #####:    #####: 7603:            fields[i].centroid =
    #####:    #####: 7604:               earlier_per_vertex->fields.structure[j].centroid;
    #####:    #####: 7605:            fields[i].sample =
    #####:    #####: 7606:               earlier_per_vertex->fields.structure[j].sample;
    #####:    #####: 7607:            fields[i].patch =
    #####:    #####: 7608:               earlier_per_vertex->fields.structure[j].patch;
    #####:    #####: 7609:            fields[i].precision =
    #####:    #####: 7610:               earlier_per_vertex->fields.structure[j].precision;
    #####:    #####: 7611:            fields[i].explicit_xfb_buffer =
    #####:    #####: 7612:               earlier_per_vertex->fields.structure[j].explicit_xfb_buffer;
    #####:    #####: 7613:            fields[i].xfb_buffer =
    #####:    #####: 7614:               earlier_per_vertex->fields.structure[j].xfb_buffer;
    #####:    #####: 7615:            fields[i].xfb_stride =
    #####:    #####: 7616:               earlier_per_vertex->fields.structure[j].xfb_stride;
        -:        -: 7617:         }
        -:        -: 7618:      }
        -:        -: 7619:
        -:        -: 7620:      /* From section 7.1 ("Built-in Language Variables") of the GLSL 4.10
        -:        -: 7621:       * spec:
        -:        -: 7622:       *
        -:        -: 7623:       *     If a built-in interface block is redeclared, it must appear in
        -:        -: 7624:       *     the shader before any use of any member included in the built-in
        -:        -: 7625:       *     declaration, or a compilation error will result.
        -:        -: 7626:       *
        -:        -: 7627:       * This appears to be a clarification to the behaviour established for
        -:        -: 7628:       * gl_PerVertex by GLSL 1.50, therefore we implement this behaviour
        -:        -: 7629:       * regardless of GLSL version.
        -:        -: 7630:       */
    #####:    #####: 7631:      interface_block_usage_visitor v(var_mode, earlier_per_vertex);
    #####:    #####: 7632:      v.run(instructions);
    #####:    #####: 7633:      if (v.usage_found()) {
        -:        -: 7634:         _mesa_glsl_error(&loc, state,
        -:        -: 7635:                          "redeclaration of a built-in interface block must "
        -:        -: 7636:                          "appear before any use of any member of the "
    #####:    #####: 7637:                          "interface block");
        -:        -: 7638:      }
        -:        -: 7639:   }
        -:        -: 7640:
        -:        -: 7641:   const glsl_type *block_type =
    #####:    #####: 7642:      glsl_type::get_interface_instance(fields,
        -:        -: 7643:                                        num_variables,
        -:        -: 7644:                                        packing,
        -:        -: 7645:                                        matrix_layout ==
        -:        -: 7646:                                           GLSL_MATRIX_LAYOUT_ROW_MAJOR,
    #####:    #####: 7647:                                        this->block_name);
        -:        -: 7648:
    #####:    #####: 7649:   unsigned component_size = block_type->contains_double() ? 8 : 4;
        -:        -: 7650:   int xfb_offset =
    #####:    #####: 7651:      layout.flags.q.explicit_xfb_offset ? (int) qual_xfb_offset : -1;
        -:        -: 7652:   validate_xfb_offset_qualifier(&loc, state, xfb_offset, block_type,
    #####:    #####: 7653:                                 component_size);
        -:        -: 7654:
    #####:    #####: 7655:   if (!state->symbols->add_interface(block_type->name, block_type, var_mode)) {
    #####:    #####: 7656:      YYLTYPE loc = this->get_location();
    #####:    #####: 7657:      _mesa_glsl_error(&loc, state, "interface block `%s' with type `%s' "
        -:        -: 7658:                       "already taken in the current scope",
    #####:    #####: 7659:                       this->block_name, iface_type_name);
        -:        -: 7660:   }
        -:        -: 7661:
        -:        -: 7662:   /* Since interface blocks cannot contain statements, it should be
        -:        -: 7663:    * impossible for the block to generate any instructions.
        -:        -: 7664:    */
    #####:    #####: 7665:   assert(declared_variables.is_empty());
        -:        -: 7666:
        -:        -: 7667:   /* From section 4.3.4 (Inputs) of the GLSL 1.50 spec:
        -:        -: 7668:    *
        -:        -: 7669:    *     Geometry shader input variables get the per-vertex values written
        -:        -: 7670:    *     out by vertex shader output variables of the same names. Since a
        -:        -: 7671:    *     geometry shader operates on a set of vertices, each input varying
        -:        -: 7672:    *     variable (or input block, see interface blocks below) needs to be
        -:        -: 7673:    *     declared as an array.
        -:        -: 7674:    */
    #####:    #####: 7675:   if (state->stage == MESA_SHADER_GEOMETRY && this->array_specifier == NULL &&
        -:        -: 7676:       var_mode == ir_var_shader_in) {
    #####:    #####: 7677:      _mesa_glsl_error(&loc, state, "geometry shader inputs must be arrays");
    #####:    #####: 7678:   } else if ((state->stage == MESA_SHADER_TESS_CTRL ||
    #####:    #####: 7679:               state->stage == MESA_SHADER_TESS_EVAL) &&
    #####:    #####: 7680:              !this->layout.flags.q.patch &&
    #####:    #####: 7681:              this->array_specifier == NULL &&
        -:        -: 7682:              var_mode == ir_var_shader_in) {
    #####:    #####: 7683:      _mesa_glsl_error(&loc, state, "per-vertex tessellation shader inputs must be arrays");
    #####:    #####: 7684:   } else if (state->stage == MESA_SHADER_TESS_CTRL &&
    #####:    #####: 7685:              !this->layout.flags.q.patch &&
    #####:    #####: 7686:              this->array_specifier == NULL &&
        -:        -: 7687:              var_mode == ir_var_shader_out) {
    #####:    #####: 7688:      _mesa_glsl_error(&loc, state, "tessellation control shader outputs must be arrays");
        -:        -: 7689:   }
        -:        -: 7690:
        -:        -: 7691:
        -:        -: 7692:   /* Page 39 (page 45 of the PDF) of section 4.3.7 in the GLSL ES 3.00 spec
        -:        -: 7693:    * says:
        -:        -: 7694:    *
        -:        -: 7695:    *     "If an instance name (instance-name) is used, then it puts all the
        -:        -: 7696:    *     members inside a scope within its own name space, accessed with the
        -:        -: 7697:    *     field selector ( . ) operator (analogously to structures)."
        -:        -: 7698:    */
    #####:    #####: 7699:   if (this->instance_name) {
    #####:    #####: 7700:      if (redeclaring_per_vertex) {
        -:        -: 7701:         /* When a built-in in an unnamed interface block is redeclared,
        -:        -: 7702:          * get_variable_being_redeclared() calls
        -:        -: 7703:          * check_builtin_array_max_size() to make sure that built-in array
        -:        -: 7704:          * variables aren't redeclared to illegal sizes.  But we're looking
        -:        -: 7705:          * at a redeclaration of a named built-in interface block.  So we
        -:        -: 7706:          * have to manually call check_builtin_array_max_size() for all parts
        -:        -: 7707:          * of the interface that are arrays.
        -:        -: 7708:          */
    #####:    #####: 7709:         for (unsigned i = 0; i < num_variables; i++) {
    #####:    #####: 7710:            if (fields[i].type->is_array()) {
    #####:    #####: 7711:               const unsigned size = fields[i].type->array_size();
    #####:    #####: 7712:               check_builtin_array_max_size(fields[i].name, size, loc, state);
        -:        -: 7713:            }
        -:        -: 7714:         }
        -:        -: 7715:      } else {
    #####:    #####: 7716:         validate_identifier(this->instance_name, loc, state);
        -:        -: 7717:      }
        -:        -: 7718:
        -:        -: 7719:      ir_variable *var;
        -:        -: 7720:
    #####:    #####: 7721:      if (this->array_specifier != NULL) {
        -:        -: 7722:         const glsl_type *block_array_type =
    #####:    #####: 7723:            process_array_type(&loc, block_type, this->array_specifier, state);
        -:        -: 7724:
        -:        -: 7725:         /* Section 4.3.7 (Interface Blocks) of the GLSL 1.50 spec says:
        -:        -: 7726:          *
        -:        -: 7727:          *     For uniform blocks declared an array, each individual array
        -:        -: 7728:          *     element corresponds to a separate buffer object backing one
        -:        -: 7729:          *     instance of the block. As the array size indicates the number
        -:        -: 7730:          *     of buffer objects needed, uniform block array declarations
        -:        -: 7731:          *     must specify an array size.
        -:        -: 7732:          *
        -:        -: 7733:          * And a few paragraphs later:
        -:        -: 7734:          *
        -:        -: 7735:          *     Geometry shader input blocks must be declared as arrays and
        -:        -: 7736:          *     follow the array declaration and linking rules for all
        -:        -: 7737:          *     geometry shader inputs. All other input and output block
        -:        -: 7738:          *     arrays must specify an array size.
        -:        -: 7739:          *
        -:        -: 7740:          * The same applies to tessellation shaders.
        -:        -: 7741:          *
        -:        -: 7742:          * The upshot of this is that the only circumstance where an
        -:        -: 7743:          * interface array size *doesn't* need to be specified is on a
        -:        -: 7744:          * geometry shader input, tessellation control shader input,
        -:        -: 7745:          * tessellation control shader output, and tessellation evaluation
        -:        -: 7746:          * shader input.
        -:        -: 7747:          */
    #####:    #####: 7748:         if (block_array_type->is_unsized_array()) {
    #####:    #####: 7749:            bool allow_inputs = state->stage == MESA_SHADER_GEOMETRY ||
    #####:    #####: 7750:                                state->stage == MESA_SHADER_TESS_CTRL ||
    #####:    #####: 7751:                                state->stage == MESA_SHADER_TESS_EVAL;
    #####:    #####: 7752:            bool allow_outputs = state->stage == MESA_SHADER_TESS_CTRL;
        -:        -: 7753:
    #####:    #####: 7754:            if (this->layout.flags.q.in) {
    #####:    #####: 7755:               if (!allow_inputs)
    #####:    #####: 7756:                  _mesa_glsl_error(&loc, state,
        -:        -: 7757:                                   "unsized input block arrays not allowed in "
        -:        -: 7758:                                   "%s shader",
    #####:    #####: 7759:                                   _mesa_shader_stage_to_string(state->stage));
    #####:    #####: 7760:            } else if (this->layout.flags.q.out) {
    #####:    #####: 7761:               if (!allow_outputs)
    #####:    #####: 7762:                  _mesa_glsl_error(&loc, state,
        -:        -: 7763:                                   "unsized output block arrays not allowed in "
        -:        -: 7764:                                   "%s shader",
    #####:    #####: 7765:                                   _mesa_shader_stage_to_string(state->stage));
        -:        -: 7766:            } else {
        -:        -: 7767:               /* by elimination, this is a uniform block array */
    #####:    #####: 7768:               _mesa_glsl_error(&loc, state,
        -:        -: 7769:                                "unsized uniform block arrays not allowed in "
        -:        -: 7770:                                "%s shader",
    #####:    #####: 7771:                                _mesa_shader_stage_to_string(state->stage));
        -:        -: 7772:            }
        -:        -: 7773:         }
        -:        -: 7774:
        -:        -: 7775:         /* From section 4.3.9 (Interface Blocks) of the GLSL ES 3.10 spec:
        -:        -: 7776:          *
        -:        -: 7777:          *     * Arrays of arrays of blocks are not allowed
        -:        -: 7778:          */
    #####:    #####: 7779:         if (state->es_shader && block_array_type->is_array() &&
    #####:    #####: 7780:             block_array_type->fields.array->is_array()) {
        -:        -: 7781:            _mesa_glsl_error(&loc, state,
        -:        -: 7782:                             "arrays of arrays interface blocks are "
    #####:    #####: 7783:                             "not allowed");
        -:        -: 7784:         }
        -:        -: 7785:
        -:        -: 7786:         var = new(state) ir_variable(block_array_type,
        -:        -: 7787:                                      this->instance_name,
    #####:    #####: 7788:                                      var_mode);
        -:        -: 7789:      } else {
        -:        -: 7790:         var = new(state) ir_variable(block_type,
        -:        -: 7791:                                      this->instance_name,
    #####:    #####: 7792:                                      var_mode);
        -:        -: 7793:      }
        -:        -: 7794:
        -:        -: 7795:      var->data.matrix_layout = matrix_layout == GLSL_MATRIX_LAYOUT_INHERITED
    #####:    #####: 7796:         ? GLSL_MATRIX_LAYOUT_COLUMN_MAJOR : matrix_layout;
        -:        -: 7797:
    #####:    #####: 7798:      if (var_mode == ir_var_shader_in || var_mode == ir_var_uniform)
    #####:    #####: 7799:         var->data.read_only = true;
        -:        -: 7800:
    #####:    #####: 7801:      var->data.patch = this->layout.flags.q.patch;
        -:        -: 7802:
    #####:    #####: 7803:      if (state->stage == MESA_SHADER_GEOMETRY && var_mode == ir_var_shader_in)
    #####:    #####: 7804:         handle_geometry_shader_input_decl(state, loc, var);
    #####:    #####: 7805:      else if ((state->stage == MESA_SHADER_TESS_CTRL ||
    #####:    #####: 7806:           state->stage == MESA_SHADER_TESS_EVAL) && var_mode == ir_var_shader_in)
    #####:    #####: 7807:         handle_tess_shader_input_decl(state, loc, var);
    #####:    #####: 7808:      else if (state->stage == MESA_SHADER_TESS_CTRL && var_mode == ir_var_shader_out)
    #####:    #####: 7809:         handle_tess_ctrl_shader_output_decl(state, loc, var);
        -:        -: 7810:
    #####:    #####: 7811:      for (unsigned i = 0; i < num_variables; i++) {
    #####:    #####: 7812:         if (var->data.mode == ir_var_shader_storage)
    #####:    #####: 7813:            apply_memory_qualifiers(var, fields[i]);
        -:        -: 7814:      }
        -:        -: 7815:
    #####:    #####: 7816:      if (ir_variable *earlier =
    #####:    #####: 7817:          state->symbols->get_variable(this->instance_name)) {
    #####:    #####: 7818:         if (!redeclaring_per_vertex) {
    #####:    #####: 7819:            _mesa_glsl_error(&loc, state, "`%s' redeclared",
    #####:    #####: 7820:                             this->instance_name);
        -:        -: 7821:         }
    #####:    #####: 7822:         earlier->data.how_declared = ir_var_declared_normally;
    #####:    #####: 7823:         earlier->type = var->type;
    #####:    #####: 7824:         earlier->reinit_interface_type(block_type);
    #####:    #####: 7825:         delete var;
        -:        -: 7826:      } else {
    #####:    #####: 7827:         if (this->layout.flags.q.explicit_binding) {
    #####:    #####: 7828:            apply_explicit_binding(state, &loc, var, var->type,
    #####:    #####: 7829:                                   &this->layout);
        -:        -: 7830:         }
        -:        -: 7831:
    #####:    #####: 7832:         var->data.stream = qual_stream;
    #####:    #####: 7833:         if (layout.flags.q.explicit_location) {
    #####:    #####: 7834:            var->data.location = expl_location;
    #####:    #####: 7835:            var->data.explicit_location = true;
        -:        -: 7836:         }
        -:        -: 7837:
    #####:    #####: 7838:         state->symbols->add_variable(var);
    #####:    #####: 7839:         instructions->push_tail(var);
        -:        -: 7840:      }
        -:        -: 7841:   } else {
        -:        -: 7842:      /* In order to have an array size, the block must also be declared with
        -:        -: 7843:       * an instance name.
        -:        -: 7844:       */
    #####:    #####: 7845:      assert(this->array_specifier == NULL);
        -:        -: 7846:
    #####:    #####: 7847:      for (unsigned i = 0; i < num_variables; i++) {
        -:        -: 7848:         ir_variable *var =
    #####:    #####: 7849:            new(state) ir_variable(fields[i].type,
    #####:    #####: 7850:                                   ralloc_strdup(state, fields[i].name),
    #####:    #####: 7851:                                   var_mode);
    #####:    #####: 7852:         var->data.interpolation = fields[i].interpolation;
    #####:    #####: 7853:         var->data.centroid = fields[i].centroid;
    #####:    #####: 7854:         var->data.sample = fields[i].sample;
    #####:    #####: 7855:         var->data.patch = fields[i].patch;
    #####:    #####: 7856:         var->data.stream = qual_stream;
    #####:    #####: 7857:         var->data.location = fields[i].location;
        -:        -: 7858:
    #####:    #####: 7859:         if (fields[i].location != -1)
    #####:    #####: 7860:            var->data.explicit_location = true;
        -:        -: 7861:
    #####:    #####: 7862:         var->data.explicit_xfb_buffer = fields[i].explicit_xfb_buffer;
    #####:    #####: 7863:         var->data.xfb_buffer = fields[i].xfb_buffer;
        -:        -: 7864:
    #####:    #####: 7865:         if (fields[i].offset != -1)
    #####:    #####: 7866:            var->data.explicit_xfb_offset = true;
    #####:    #####: 7867:         var->data.offset = fields[i].offset;
        -:        -: 7868:
    #####:    #####: 7869:         var->init_interface_type(block_type);
        -:        -: 7870:
    #####:    #####: 7871:         if (var_mode == ir_var_shader_in || var_mode == ir_var_uniform)
    #####:    #####: 7872:            var->data.read_only = true;
        -:        -: 7873:
        -:        -: 7874:         /* Precision qualifiers do not have any meaning in Desktop GLSL */
    #####:    #####: 7875:         if (state->es_shader) {
        -:        -: 7876:            var->data.precision =
    #####:    #####: 7877:               select_gles_precision(fields[i].precision, fields[i].type,
    #####:    #####: 7878:                                     state, &loc);
        -:        -: 7879:         }
        -:        -: 7880:
    #####:    #####: 7881:         if (fields[i].matrix_layout == GLSL_MATRIX_LAYOUT_INHERITED) {
        -:        -: 7882:            var->data.matrix_layout = matrix_layout == GLSL_MATRIX_LAYOUT_INHERITED
    #####:    #####: 7883:               ? GLSL_MATRIX_LAYOUT_COLUMN_MAJOR : matrix_layout;
        -:        -: 7884:         } else {
    #####:    #####: 7885:            var->data.matrix_layout = fields[i].matrix_layout;
        -:        -: 7886:         }
        -:        -: 7887:
    #####:    #####: 7888:         if (var->data.mode == ir_var_shader_storage)
    #####:    #####: 7889:            apply_memory_qualifiers(var, fields[i]);
        -:        -: 7890:
        -:        -: 7891:         /* Examine var name here since var may get deleted in the next call */
    #####:    #####: 7892:         bool var_is_gl_id = is_gl_identifier(var->name);
        -:        -: 7893:
    #####:    #####: 7894:         if (redeclaring_per_vertex) {
        -:        -: 7895:            bool is_redeclaration;
        -:        -: 7896:            ir_variable *declared_var =
        -:        -: 7897:               get_variable_being_redeclared(var, loc, state,
        -:        -: 7898:                                             true /* allow_all_redeclarations */,
    #####:    #####: 7899:                                             &is_redeclaration);
    #####:    #####: 7900:            if (!var_is_gl_id || !is_redeclaration) {
        -:        -: 7901:               _mesa_glsl_error(&loc, state,
        -:        -: 7902:                                "redeclaration of gl_PerVertex can only "
    #####:    #####: 7903:                                "include built-in variables");
    #####:    #####: 7904:            } else if (declared_var->data.how_declared == ir_var_declared_normally) {
    #####:    #####: 7905:               _mesa_glsl_error(&loc, state,
        -:        -: 7906:                                "`%s' has already been redeclared",
    #####:    #####: 7907:                                declared_var->name);
        -:        -: 7908:            } else {
    #####:    #####: 7909:               declared_var->data.how_declared = ir_var_declared_in_block;
    #####:    #####: 7910:               declared_var->reinit_interface_type(block_type);
        -:        -: 7911:            }
    #####:    #####: 7912:            continue;
        -:        -: 7913:         }
        -:        -: 7914:
    #####:    #####: 7915:         if (state->symbols->get_variable(var->name) != NULL)
    #####:    #####: 7916:            _mesa_glsl_error(&loc, state, "`%s' redeclared", var->name);
        -:        -: 7917:
        -:        -: 7918:         /* Propagate the "binding" keyword into this UBO/SSBO's fields.
        -:        -: 7919:          * The UBO declaration itself doesn't get an ir_variable unless it
        -:        -: 7920:          * has an instance name.  This is ugly.
        -:        -: 7921:          */
    #####:    #####: 7922:         if (this->layout.flags.q.explicit_binding) {
    #####:    #####: 7923:            apply_explicit_binding(state, &loc, var,
    #####:    #####: 7924:                                   var->get_interface_type(), &this->layout);
        -:        -: 7925:         }
        -:        -: 7926:
    #####:    #####: 7927:         if (var->type->is_unsized_array()) {
    #####:    #####: 7928:            if (var->is_in_shader_storage_block() &&
    #####:    #####: 7929:                is_unsized_array_last_element(var)) {
    #####:    #####: 7930:               var->data.from_ssbo_unsized_array = true;
        -:        -: 7931:            } else {
        -:        -: 7932:               /* From GLSL ES 3.10 spec, section 4.1.9 "Arrays":
        -:        -: 7933:                *
        -:        -: 7934:                * "If an array is declared as the last member of a shader storage
        -:        -: 7935:                * block and the size is not specified at compile-time, it is
        -:        -: 7936:                * sized at run-time. In all other cases, arrays are sized only
        -:        -: 7937:                * at compile-time."
        -:        -: 7938:                *
        -:        -: 7939:                * In desktop GLSL it is allowed to have unsized-arrays that are
        -:        -: 7940:                * not last, as long as we can determine that they are implicitly
        -:        -: 7941:                * sized.
        -:        -: 7942:                */
    #####:    #####: 7943:               if (state->es_shader) {
    #####:    #####: 7944:                  _mesa_glsl_error(&loc, state, "unsized array `%s' "
        -:        -: 7945:                                   "definition: only last member of a shader "
        -:        -: 7946:                                   "storage block can be defined as unsized "
    #####:    #####: 7947:                                   "array", fields[i].name);
        -:        -: 7948:               }
        -:        -: 7949:            }
        -:        -: 7950:         }
        -:        -: 7951:
    #####:    #####: 7952:         state->symbols->add_variable(var);
    #####:    #####: 7953:         instructions->push_tail(var);
        -:        -: 7954:      }
        -:        -: 7955:
    #####:    #####: 7956:      if (redeclaring_per_vertex && block_type != earlier_per_vertex) {
        -:        -: 7957:         /* From section 7.1 ("Built-in Language Variables") of the GLSL 4.10 spec:
        -:        -: 7958:          *
        -:        -: 7959:          *     It is also a compilation error ... to redeclare a built-in
        -:        -: 7960:          *     block and then use a member from that built-in block that was
        -:        -: 7961:          *     not included in the redeclaration.
        -:        -: 7962:          *
        -:        -: 7963:          * This appears to be a clarification to the behaviour established
        -:        -: 7964:          * for gl_PerVertex by GLSL 1.50, therefore we implement this
        -:        -: 7965:          * behaviour regardless of GLSL version.
        -:        -: 7966:          *
        -:        -: 7967:          * To prevent the shader from using a member that was not included in
        -:        -: 7968:          * the redeclaration, we disable any ir_variables that are still
        -:        -: 7969:          * associated with the old declaration of gl_PerVertex (since we've
        -:        -: 7970:          * already updated all of the variables contained in the new
        -:        -: 7971:          * gl_PerVertex to point to it).
        -:        -: 7972:          *
        -:        -: 7973:          * As a side effect this will prevent
        -:        -: 7974:          * validate_intrastage_interface_blocks() from getting confused and
        -:        -: 7975:          * thinking there are conflicting definitions of gl_PerVertex in the
        -:        -: 7976:          * shader.
        -:        -: 7977:          */
    #####:    #####: 7978:         foreach_in_list_safe(ir_instruction, node, instructions) {
    #####:    #####: 7979:            ir_variable *const var = node->as_variable();
    #####:    #####: 7980:            if (var != NULL &&
    #####:    #####: 7981:                var->get_interface_type() == earlier_per_vertex &&
    #####:    #####: 7982:                var->data.mode == var_mode) {
    #####:    #####: 7983:               if (var->data.how_declared == ir_var_declared_normally) {
    #####:    #####: 7984:                  _mesa_glsl_error(&loc, state,
        -:        -: 7985:                                   "redeclaration of gl_PerVertex cannot "
        -:        -: 7986:                                   "follow a redeclaration of `%s'",
    #####:    #####: 7987:                                   var->name);
        -:        -: 7988:               }
    #####:    #####: 7989:               state->symbols->disable_variable(var->name);
    #####:    #####: 7990:               var->remove();
        -:        -: 7991:            }
        -:        -: 7992:         }
        -:        -: 7993:      }
        -:        -: 7994:   }
        -:        -: 7995:
    #####:    #####: 7996:   return NULL;
        -:        -: 7997:}
        -:        -: 7998:
        -:        -: 7999:
        -:        -: 8000:ir_rvalue *
    #####:    #####: 8001:ast_tcs_output_layout::hir(exec_list *instructions,
        -:        -: 8002:                           struct _mesa_glsl_parse_state *state)
        -:        -: 8003:{
    #####:    #####: 8004:   YYLTYPE loc = this->get_location();
        -:        -: 8005:
        -:        -: 8006:   unsigned num_vertices;
    #####:    #####: 8007:   if (!state->out_qualifier->vertices->
    #####:    #####: 8008:          process_qualifier_constant(state, "vertices", &num_vertices,
        -:        -: 8009:                                     false)) {
        -:        -: 8010:      /* return here to stop cascading incorrect error messages */
    #####:    #####: 8011:     return NULL;
        -:        -: 8012:   }
        -:        -: 8013:
        -:        -: 8014:   /* If any shader outputs occurred before this declaration and specified an
        -:        -: 8015:    * array size, make sure the size they specified is consistent with the
        -:        -: 8016:    * primitive type.
        -:        -: 8017:    */
    #####:    #####: 8018:   if (state->tcs_output_size != 0 && state->tcs_output_size != num_vertices) {
    #####:    #####: 8019:      _mesa_glsl_error(&loc, state,
        -:        -: 8020:                       "this tessellation control shader output layout "
        -:        -: 8021:                       "specifies %u vertices, but a previous output "
        -:        -: 8022:                       "is declared with size %u",
    #####:    #####: 8023:                       num_vertices, state->tcs_output_size);
    #####:    #####: 8024:      return NULL;
        -:        -: 8025:   }
        -:        -: 8026:
    #####:    #####: 8027:   state->tcs_output_vertices_specified = true;
        -:        -: 8028:
        -:        -: 8029:   /* If any shader outputs occurred before this declaration and did not
        -:        -: 8030:    * specify an array size, their size is determined now.
        -:        -: 8031:    */
    #####:    #####: 8032:   foreach_in_list (ir_instruction, node, instructions) {
    #####:    #####: 8033:      ir_variable *var = node->as_variable();
    #####:    #####: 8034:      if (var == NULL || var->data.mode != ir_var_shader_out)
    #####:    #####: 8035:         continue;
        -:        -: 8036:
        -:        -: 8037:      /* Note: Not all tessellation control shader output are arrays. */
    #####:    #####: 8038:      if (!var->type->is_unsized_array() || var->data.patch)
    #####:    #####: 8039:         continue;
        -:        -: 8040:
    #####:    #####: 8041:      if (var->data.max_array_access >= (int)num_vertices) {
    #####:    #####: 8042:         _mesa_glsl_error(&loc, state,
        -:        -: 8043:                          "this tessellation control shader output layout "
        -:        -: 8044:                          "specifies %u vertices, but an access to element "
        -:        -: 8045:                          "%u of output `%s' already exists", num_vertices,
    #####:    #####: 8046:                          var->data.max_array_access, var->name);
        -:        -: 8047:      } else {
    #####:    #####: 8048:         var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####: 8049:                                                   num_vertices);
        -:        -: 8050:      }
        -:        -: 8051:   }
        -:        -: 8052:
    #####:    #####: 8053:   return NULL;
        -:        -: 8054:}
        -:        -: 8055:
        -:        -: 8056:
        -:        -: 8057:ir_rvalue *
    #####:    #####: 8058:ast_gs_input_layout::hir(exec_list *instructions,
        -:        -: 8059:                         struct _mesa_glsl_parse_state *state)
        -:        -: 8060:{
    #####:    #####: 8061:   YYLTYPE loc = this->get_location();
        -:        -: 8062:
        -:        -: 8063:   /* Should have been prevented by the parser. */
    #####:    #####: 8064:   assert(!state->gs_input_prim_type_specified
    #####:    #####: 8065:          || state->in_qualifier->prim_type == this->prim_type);
        -:        -: 8066:
        -:        -: 8067:   /* If any shader inputs occurred before this declaration and specified an
        -:        -: 8068:    * array size, make sure the size they specified is consistent with the
        -:        -: 8069:    * primitive type.
        -:        -: 8070:    */
    #####:    #####: 8071:   unsigned num_vertices = vertices_per_prim(this->prim_type);
    #####:    #####: 8072:   if (state->gs_input_size != 0 && state->gs_input_size != num_vertices) {
    #####:    #####: 8073:      _mesa_glsl_error(&loc, state,
        -:        -: 8074:                       "this geometry shader input layout implies %u vertices"
        -:        -: 8075:                       " per primitive, but a previous input is declared"
    #####:    #####: 8076:                       " with size %u", num_vertices, state->gs_input_size);
    #####:    #####: 8077:      return NULL;
        -:        -: 8078:   }
        -:        -: 8079:
    #####:    #####: 8080:   state->gs_input_prim_type_specified = true;
        -:        -: 8081:
        -:        -: 8082:   /* If any shader inputs occurred before this declaration and did not
        -:        -: 8083:    * specify an array size, their size is determined now.
        -:        -: 8084:    */
    #####:    #####: 8085:   foreach_in_list(ir_instruction, node, instructions) {
    #####:    #####: 8086:      ir_variable *var = node->as_variable();
    #####:    #####: 8087:      if (var == NULL || var->data.mode != ir_var_shader_in)
    #####:    #####: 8088:         continue;
        -:        -: 8089:
        -:        -: 8090:      /* Note: gl_PrimitiveIDIn has mode ir_var_shader_in, but it's not an
        -:        -: 8091:       * array; skip it.
        -:        -: 8092:       */
        -:        -: 8093:
    #####:    #####: 8094:      if (var->type->is_unsized_array()) {
    #####:    #####: 8095:         if (var->data.max_array_access >= (int)num_vertices) {
    #####:    #####: 8096:            _mesa_glsl_error(&loc, state,
        -:        -: 8097:                             "this geometry shader input layout implies %u"
        -:        -: 8098:                             " vertices, but an access to element %u of input"
        -:        -: 8099:                             " `%s' already exists", num_vertices,
    #####:    #####: 8100:                             var->data.max_array_access, var->name);
        -:        -: 8101:         } else {
    #####:    #####: 8102:            var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####: 8103:                                                      num_vertices);
        -:        -: 8104:         }
        -:        -: 8105:      }
        -:        -: 8106:   }
        -:        -: 8107:
    #####:    #####: 8108:   return NULL;
        -:        -: 8109:}
        -:        -: 8110:
        -:        -: 8111:
        -:        -: 8112:ir_rvalue *
    #####:    #####: 8113:ast_cs_input_layout::hir(exec_list *instructions,
        -:        -: 8114:                         struct _mesa_glsl_parse_state *state)
        -:        -: 8115:{
    #####:    #####: 8116:   YYLTYPE loc = this->get_location();
        -:        -: 8117:
        -:        -: 8118:   /* From the ARB_compute_shader specification:
        -:        -: 8119:    *
        -:        -: 8120:    *     If the local size of the shader in any dimension is greater
        -:        -: 8121:    *     than the maximum size supported by the implementation for that
        -:        -: 8122:    *     dimension, a compile-time error results.
        -:        -: 8123:    *
        -:        -: 8124:    * It is not clear from the spec how the error should be reported if
        -:        -: 8125:    * the total size of the work group exceeds
        -:        -: 8126:    * MAX_COMPUTE_WORK_GROUP_INVOCATIONS, but it seems reasonable to
        -:        -: 8127:    * report it at compile time as well.
        -:        -: 8128:    */
    #####:    #####: 8129:   GLuint64 total_invocations = 1;
        -:        -: 8130:   unsigned qual_local_size[3];
    #####:    #####: 8131:   for (int i = 0; i < 3; i++) {
        -:        -: 8132:
    #####:    #####: 8133:      char *local_size_str = ralloc_asprintf(NULL, "invalid local_size_%c",
    #####:    #####: 8134:                                             'x' + i);
        -:        -: 8135:      /* Infer a local_size of 1 for unspecified dimensions */
    #####:    #####: 8136:      if (this->local_size[i] == NULL) {
    #####:    #####: 8137:         qual_local_size[i] = 1;
    #####:    #####: 8138:      } else if (!this->local_size[i]->
    #####:    #####: 8139:             process_qualifier_constant(state, local_size_str,
        -:        -: 8140:                                        &qual_local_size[i], false)) {
    #####:    #####: 8141:         ralloc_free(local_size_str);
    #####:    #####: 8142:         return NULL;
        -:        -: 8143:      }
    #####:    #####: 8144:      ralloc_free(local_size_str);
        -:        -: 8145:
    #####:    #####: 8146:      if (qual_local_size[i] > state->ctx->Const.MaxComputeWorkGroupSize[i]) {
    #####:    #####: 8147:         _mesa_glsl_error(&loc, state,
        -:        -: 8148:                          "local_size_%c exceeds MAX_COMPUTE_WORK_GROUP_SIZE"
        -:        -: 8149:                          " (%d)", 'x' + i,
    #####:    #####: 8150:                          state->ctx->Const.MaxComputeWorkGroupSize[i]);
    #####:    #####: 8151:         break;
        -:        -: 8152:      }
    #####:    #####: 8153:      total_invocations *= qual_local_size[i];
    #####:    #####: 8154:      if (total_invocations >
    #####:    #####: 8155:          state->ctx->Const.MaxComputeWorkGroupInvocations) {
    #####:    #####: 8156:         _mesa_glsl_error(&loc, state,
        -:        -: 8157:                          "product of local_sizes exceeds "
        -:        -: 8158:                          "MAX_COMPUTE_WORK_GROUP_INVOCATIONS (%d)",
    #####:    #####: 8159:                          state->ctx->Const.MaxComputeWorkGroupInvocations);
    #####:    #####: 8160:         break;
        -:        -: 8161:      }
        -:        -: 8162:   }
        -:        -: 8163:
        -:        -: 8164:   /* If any compute input layout declaration preceded this one, make sure it
        -:        -: 8165:    * was consistent with this one.
        -:        -: 8166:    */
    #####:    #####: 8167:   if (state->cs_input_local_size_specified) {
    #####:    #####: 8168:      for (int i = 0; i < 3; i++) {
    #####:    #####: 8169:         if (state->cs_input_local_size[i] != qual_local_size[i]) {
        -:        -: 8170:            _mesa_glsl_error(&loc, state,
        -:        -: 8171:                             "compute shader input layout does not match"
    #####:    #####: 8172:                             " previous declaration");
    #####:    #####: 8173:            return NULL;
        -:        -: 8174:         }
        -:        -: 8175:      }
        -:        -: 8176:   }
        -:        -: 8177:
        -:        -: 8178:   /* The ARB_compute_variable_group_size spec says:
        -:        -: 8179:    *
        -:        -: 8180:    *     If a compute shader including a *local_size_variable* qualifier also
        -:        -: 8181:    *     declares a fixed local group size using the *local_size_x*,
        -:        -: 8182:    *     *local_size_y*, or *local_size_z* qualifiers, a compile-time error
        -:        -: 8183:    *     results
        -:        -: 8184:    */
    #####:    #####: 8185:   if (state->cs_input_local_size_variable_specified) {
        -:        -: 8186:      _mesa_glsl_error(&loc, state,
        -:        -: 8187:                       "compute shader can't include both a variable and a "
    #####:    #####: 8188:                       "fixed local group size");
    #####:    #####: 8189:      return NULL;
        -:        -: 8190:   }
        -:        -: 8191:
    #####:    #####: 8192:   state->cs_input_local_size_specified = true;
    #####:    #####: 8193:   for (int i = 0; i < 3; i++)
    #####:    #####: 8194:      state->cs_input_local_size[i] = qual_local_size[i];
        -:        -: 8195:
        -:        -: 8196:   /* We may now declare the built-in constant gl_WorkGroupSize (see
        -:        -: 8197:    * builtin_variable_generator::generate_constants() for why we didn't
        -:        -: 8198:    * declare it earlier).
        -:        -: 8199:    */
        -:        -: 8200:   ir_variable *var = new(state->symbols)
    #####:    #####: 8201:      ir_variable(glsl_type::uvec3_type, "gl_WorkGroupSize", ir_var_auto);
    #####:    #####: 8202:   var->data.how_declared = ir_var_declared_implicitly;
    #####:    #####: 8203:   var->data.read_only = true;
    #####:    #####: 8204:   instructions->push_tail(var);
    #####:    #####: 8205:   state->symbols->add_variable(var);
        -:        -: 8206:   ir_constant_data data;
    #####:    #####: 8207:   memset(&data, 0, sizeof(data));
    #####:    #####: 8208:   for (int i = 0; i < 3; i++)
    #####:    #####: 8209:      data.u[i] = qual_local_size[i];
    #####:    #####: 8210:   var->constant_value = new(var) ir_constant(glsl_type::uvec3_type, &data);
        -:        -: 8211:   var->constant_initializer =
    #####:    #####: 8212:      new(var) ir_constant(glsl_type::uvec3_type, &data);
    #####:    #####: 8213:   var->data.has_initializer = true;
        -:        -: 8214:
    #####:    #####: 8215:   return NULL;
        -:        -: 8216:}
        -:        -: 8217:
        -:        -: 8218:
        -:        -: 8219:static void
        2:        2: 8220:detect_conflicting_assignments(struct _mesa_glsl_parse_state *state,
        -:        -: 8221:                               exec_list *instructions)
        -:        -: 8222:{
        2:        2: 8223:   bool gl_FragColor_assigned = false;
        2:        2: 8224:   bool gl_FragData_assigned = false;
        2:        2: 8225:   bool gl_FragSecondaryColor_assigned = false;
        2:        2: 8226:   bool gl_FragSecondaryData_assigned = false;
        2:        2: 8227:   bool user_defined_fs_output_assigned = false;
        2:        2: 8228:   ir_variable *user_defined_fs_output = NULL;
        -:        -: 8229:
        -:        -: 8230:   /* It would be nice to have proper location information. */
        -:        -: 8231:   YYLTYPE loc;
        2:        2: 8232:   memset(&loc, 0, sizeof(loc));
        -:        -: 8233:
      155:      155: 8234:   foreach_in_list(ir_instruction, node, instructions) {
      153:      153: 8235:      ir_variable *var = node->as_variable();
        -:        -: 8236:
      153:      153: 8237:      if (!var || !var->data.assigned)
      151:      151: 8238:         continue;
        -:        -: 8239:
        2:        2: 8240:      if (strcmp(var->name, "gl_FragColor") == 0)
        1:        1: 8241:         gl_FragColor_assigned = true;
        1:        1: 8242:      else if (strcmp(var->name, "gl_FragData") == 0)
    #####:    #####: 8243:         gl_FragData_assigned = true;
        1:        1: 8244:        else if (strcmp(var->name, "gl_SecondaryFragColorEXT") == 0)
    #####:    #####: 8245:         gl_FragSecondaryColor_assigned = true;
        1:        1: 8246:        else if (strcmp(var->name, "gl_SecondaryFragDataEXT") == 0)
    #####:    #####: 8247:         gl_FragSecondaryData_assigned = true;
        1:        1: 8248:      else if (!is_gl_identifier(var->name)) {
    #####:    #####: 8249:         if (state->stage == MESA_SHADER_FRAGMENT &&
    #####:    #####: 8250:             var->data.mode == ir_var_shader_out) {
    #####:    #####: 8251:            user_defined_fs_output_assigned = true;
    #####:    #####: 8252:            user_defined_fs_output = var;
        -:        -: 8253:         }
        -:        -: 8254:      }
        -:        -: 8255:   }
        -:        -: 8256:
        -:        -: 8257:   /* From the GLSL 1.30 spec:
        -:        -: 8258:    *
        -:        -: 8259:    *     "If a shader statically assigns a value to gl_FragColor, it
        -:        -: 8260:    *      may not assign a value to any element of gl_FragData. If a
        -:        -: 8261:    *      shader statically writes a value to any element of
        -:        -: 8262:    *      gl_FragData, it may not assign a value to
        -:        -: 8263:    *      gl_FragColor. That is, a shader may assign values to either
        -:        -: 8264:    *      gl_FragColor or gl_FragData, but not both. Multiple shaders
        -:        -: 8265:    *      linked together must also consistently write just one of
        -:        -: 8266:    *      these variables.  Similarly, if user declared output
        -:        -: 8267:    *      variables are in use (statically assigned to), then the
        -:        -: 8268:    *      built-in variables gl_FragColor and gl_FragData may not be
        -:        -: 8269:    *      assigned to. These incorrect usages all generate compile
        -:        -: 8270:    *      time errors."
        -:        -: 8271:    */
        2:        2: 8272:   if (gl_FragColor_assigned && gl_FragData_assigned) {
        -:        -: 8273:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
    #####:    #####: 8274:                       "`gl_FragColor' and `gl_FragData'");
        2:        2: 8275:   } else if (gl_FragColor_assigned && user_defined_fs_output_assigned) {
    #####:    #####: 8276:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
        -:        -: 8277:                       "`gl_FragColor' and `%s'",
    #####:    #####: 8278:                       user_defined_fs_output->name);
        2:        2: 8279:   } else if (gl_FragSecondaryColor_assigned && gl_FragSecondaryData_assigned) {
        -:        -: 8280:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
        -:        -: 8281:                       "`gl_FragSecondaryColorEXT' and"
    #####:    #####: 8282:                       " `gl_FragSecondaryDataEXT'");
        2:        2: 8283:   } else if (gl_FragColor_assigned && gl_FragSecondaryData_assigned) {
        -:        -: 8284:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
        -:        -: 8285:                       "`gl_FragColor' and"
    #####:    #####: 8286:                       " `gl_FragSecondaryDataEXT'");
        2:        2: 8287:   } else if (gl_FragData_assigned && gl_FragSecondaryColor_assigned) {
        -:        -: 8288:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
        -:        -: 8289:                       "`gl_FragData' and"
    #####:    #####: 8290:                       " `gl_FragSecondaryColorEXT'");
        2:        2: 8291:   } else if (gl_FragData_assigned && user_defined_fs_output_assigned) {
    #####:    #####: 8292:      _mesa_glsl_error(&loc, state, "fragment shader writes to both "
        -:        -: 8293:                       "`gl_FragData' and `%s'",
    #####:    #####: 8294:                       user_defined_fs_output->name);
        -:        -: 8295:   }
        -:        -: 8296:
        2:        2: 8297:   if ((gl_FragSecondaryColor_assigned || gl_FragSecondaryData_assigned) &&
    #####:    #####: 8298:       !state->EXT_blend_func_extended_enable) {
        -:        -: 8299:      _mesa_glsl_error(&loc, state,
    #####:    #####: 8300:                       "Dual source blending requires EXT_blend_func_extended");
        -:        -: 8301:   }
        2:        2: 8302:}
        -:        -: 8303:
        -:        -: 8304:
        -:        -: 8305:static void
        4:        4: 8306:remove_per_vertex_blocks(exec_list *instructions,
        -:        -: 8307:                         _mesa_glsl_parse_state *state, ir_variable_mode mode)
        -:        -: 8308:{
        -:        -: 8309:   /* Find the gl_PerVertex interface block of the appropriate (in/out) mode,
        -:        -: 8310:    * if it exists in this shader type.
        -:        -: 8311:    */
        4:        4: 8312:   const glsl_type *per_vertex = NULL;
        4:        4: 8313:   switch (mode) {
        -:        -: 8314:   case ir_var_shader_in:
        2:        2: 8315:      if (ir_variable *gl_in = state->symbols->get_variable("gl_in"))
    #####:    #####: 8316:         per_vertex = gl_in->get_interface_type();
        2:        2: 8317:      break;
        -:        -: 8318:   case ir_var_shader_out:
        2:        2: 8319:      if (ir_variable *gl_Position =
        2:        2: 8320:          state->symbols->get_variable("gl_Position")) {
        1:        1: 8321:         per_vertex = gl_Position->get_interface_type();
        -:        -: 8322:      }
        2:        2: 8323:      break;
        -:        -: 8324:   default:
    #####:    #####: 8325:      assert(!"Unexpected mode");
        -:        -: 8326:      break;
        -:        -: 8327:   }
        -:        -: 8328:
        -:        -: 8329:   /* If we didn't find a built-in gl_PerVertex interface block, then we don't
        -:        -: 8330:    * need to do anything.
        -:        -: 8331:    */
        4:        4: 8332:   if (per_vertex == NULL)
        7:        7: 8333:      return;
        -:        -: 8334:
        -:        -: 8335:   /* If the interface block is used by the shader, then we don't need to do
        -:        -: 8336:    * anything.
        -:        -: 8337:    */
        1:        1: 8338:   interface_block_usage_visitor v(mode, per_vertex);
        1:        1: 8339:   v.run(instructions);
        1:        1: 8340:   if (v.usage_found())
        1:        1: 8341:      return;
        -:        -: 8342:
        -:        -: 8343:   /* Remove any ir_variable declarations that refer to the interface block
        -:        -: 8344:    * we're removing.
        -:        -: 8345:    */
    #####:    #####: 8346:   foreach_in_list_safe(ir_instruction, node, instructions) {
    #####:    #####: 8347:      ir_variable *const var = node->as_variable();
    #####:    #####: 8348:      if (var != NULL && var->get_interface_type() == per_vertex &&
    #####:    #####: 8349:          var->data.mode == mode) {
    #####:    #####: 8350:         state->symbols->disable_variable(var->name);
    #####:    #####: 8351:         var->remove();
        -:        -: 8352:      }
        -:        -: 8353:   }
        -:        -: 8354:}

src/compiler/bitset.h.gcov

        -:        -:    0:Source:../../src/util/bitset.h
        -:        -:    0:Graph:nir/.libs/nir_phi_builder.gcno
        -:        -:    0:Data:nir/.libs/nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Mesa 3-D graphics library
        -:        -:    3: *
        -:        -:    4: * Copyright (C) 2006  Brian Paul   All Rights Reserved.
        -:        -:    5: *
        -:        -:    6: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    7: * copy of this software and associated documentation files (the "Software"),
        -:        -:    8: * to deal in the Software without restriction, including without limitation
        -:        -:    9: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:   10: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   11: * Software is furnished to do so, subject to the following conditions:
        -:        -:   12: *
        -:        -:   13: * The above copyright notice and this permission notice shall be included
        -:        -:   14: * in all copies or substantial portions of the Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
        -:        -:   17: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
        -:        -:   20: * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
        -:        -:   21: * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
        -:        -:   22: * OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:/**
        -:        -:   26: * \file bitset.h
        -:        -:   27: * \brief Bitset of arbitrary size definitions.
        -:        -:   28: * \author Michal Krol
        -:        -:   29: */
        -:        -:   30:
        -:        -:   31:#ifndef BITSET_H
        -:        -:   32:#define BITSET_H
        -:        -:   33:
        -:        -:   34:#include "util/u_math.h"
        -:        -:   35:
        -:        -:   36:/****************************************************************************
        -:        -:   37: * generic bitset implementation
        -:        -:   38: */
        -:        -:   39:
        -:        -:   40:#define BITSET_WORD unsigned int
        -:        -:   41:#define BITSET_WORDBITS (sizeof (BITSET_WORD) * 8)
        -:        -:   42:
        -:        -:   43:/* bitset declarations
        -:        -:   44: */
        -:        -:   45:#define BITSET_WORDS(bits) (((bits) + BITSET_WORDBITS - 1) / BITSET_WORDBITS)
        -:        -:   46:#define BITSET_DECLARE(name, bits) BITSET_WORD name[BITSET_WORDS(bits)]
        -:        -:   47:
        -:        -:   48:/* bitset operations
        -:        -:   49: */
        -:        -:   50:#define BITSET_COPY(x, y) memcpy( (x), (y), sizeof (x) )
        -:        -:   51:#define BITSET_EQUAL(x, y) (memcmp( (x), (y), sizeof (x) ) == 0)
        -:        -:   52:#define BITSET_ZERO(x) memset( (x), 0, sizeof (x) )
        -:        -:   53:#define BITSET_ONES(x) memset( (x), 0xff, sizeof (x) )
        -:        -:   54:
        -:        -:   55:#define BITSET_BITWORD(b) ((b) / BITSET_WORDBITS)
        -:        -:   56:#define BITSET_BIT(b) (1 << ((b) % BITSET_WORDBITS))
        -:        -:   57:
        -:        -:   58:/* single bit operations
        -:        -:   59: */
        -:        -:   60:#define BITSET_TEST(x, b) ((x)[BITSET_BITWORD(b)] & BITSET_BIT(b))
        -:        -:   61:#define BITSET_SET(x, b) ((x)[BITSET_BITWORD(b)] |= BITSET_BIT(b))
        -:        -:   62:#define BITSET_CLEAR(x, b) ((x)[BITSET_BITWORD(b)] &= ~BITSET_BIT(b))
        -:        -:   63:
        -:        -:   64:#define BITSET_MASK(b) ((b) == BITSET_WORDBITS ? ~0 : BITSET_BIT(b) - 1)
        -:        -:   65:#define BITSET_RANGE(b, e) (BITSET_MASK((e) + 1) & ~BITSET_MASK(b))
        -:        -:   66:
        -:        -:   67:/* bit range operations
        -:        -:   68: */
        -:        -:   69:#define BITSET_TEST_RANGE(x, b, e) \
        -:        -:   70:   (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \
        -:        -:   71:   ((x)[BITSET_BITWORD(b)] & BITSET_RANGE(b, e)) : \
        -:        -:   72:   (assert (!"BITSET_TEST_RANGE: bit range crosses word boundary"), 0))
        -:        -:   73:#define BITSET_SET_RANGE(x, b, e) \
        -:        -:   74:   (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \
        -:        -:   75:   ((x)[BITSET_BITWORD(b)] |= BITSET_RANGE(b, e)) : \
        -:        -:   76:   (assert (!"BITSET_SET_RANGE: bit range crosses word boundary"), 0))
        -:        -:   77:#define BITSET_CLEAR_RANGE(x, b, e) \
        -:        -:   78:   (BITSET_BITWORD(b) == BITSET_BITWORD(e) ? \
        -:        -:   79:   ((x)[BITSET_BITWORD(b)] &= ~BITSET_RANGE(b, e)) : \
        -:        -:   80:   (assert (!"BITSET_CLEAR_RANGE: bit range crosses word boundary"), 0))
        -:        -:   81:
        -:        -:   82:/* Get first bit set in a bitset.
        -:        -:   83: */
        -:        -:   84:static inline int
        -:        -:   85:__bitset_ffs(const BITSET_WORD *x, int n)
        -:        -:   86:{
        -:        -:   87:   int i;
        -:        -:   88:
        -:        -:   89:   for (i = 0; i < n; i++) {
        -:        -:   90:      if (x[i])
        -:        -:   91:	 return ffs(x[i]) + BITSET_WORDBITS * i;
        -:        -:   92:   }
        -:        -:   93:
        -:        -:   94:   return 0;
        -:        -:   95:}
        -:        -:   96:
        -:        -:   97:#define BITSET_FFS(x) __bitset_ffs(x, ARRAY_SIZE(x))
        -:        -:   98:
        -:        -:   99:static inline unsigned
      224:      228:  100:__bitset_next_set(unsigned i, BITSET_WORD *tmp,
        -:        -:  101:                  const BITSET_WORD *set, unsigned size)
        -:        -:  102:{
        -:        -:  103:   unsigned bit, word;
        -:        -:  104:
        -:        -:  105:   /* NOTE: The initial conditions for this function are very specific.  At
        -:        -:  106:    * the start of the loop, the tmp variable must be set to *set and the
        -:        -:  107:    * initial i value set to 0.  This way, if there is a bit set in the first
        -:        -:  108:    * word, we ignore the i-value and just grab that bit (so 0 is ok, even
        -:        -:  109:    * though 0 may be returned).  If the first word is 0, then the value of
        -:        -:  110:    * `word` will be 0 and we will go on to look at the second word.
        -:        -:  111:    */
      224:      228:  112:   word = BITSET_BITWORD(i);
      564:      648:  113:   while (*tmp == 0) {
      193:      271:  114:      word++;
        -:        -:  115:
      193:      271:  116:      if (word >= BITSET_WORDS(size))
       77:       79:  117:         return size;
        -:        -:  118:
      116:      192:  119:      *tmp = set[word];
        -:        -:  120:   }
        -:        -:  121:
        -:        -:  122:   /* Find the next set bit in the non-zero word */
      147:      149:  123:   bit = ffs(*tmp) - 1;
        -:        -:  124:
        -:        -:  125:   /* Unset the bit */
      147:      149:  126:   *tmp &= ~(1ull << bit);
        -:        -:  127:
      147:      149:  128:   return word * BITSET_WORDBITS + bit;
        -:        -:  129:}
        -:        -:  130:
        -:        -:  131:#define BITSET_FOREACH_SET(__i, __tmp, __set, __size) \
        -:        -:  132:   for (__tmp = *(__set), __i = 0; \
        -:        -:  133:        (__i = __bitset_next_set(__i, &__tmp, __set, __size)) < __size;)
        -:        -:  134:
        -:        -:  135:#endif

src/compiler/glcpp-lex.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.c
        -:        -:    0:Graph:glsl/glcpp/.libs/glcpp-lex.gcno
        -:        -:    0:Data:glsl/glcpp/.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:#line 2 "glsl/glcpp/glcpp-lex.c"
        -:        -:    2:
        -:        -:    3:#line 4 "glsl/glcpp/glcpp-lex.c"
        -:        -:    4:
        -:        -:    5:#define  YY_INT_ALIGNED short int
        -:        -:    6:
        -:        -:    7:/* A lexical scanner generated by flex */
        -:        -:    8:
        -:        -:    9:#define FLEX_SCANNER
        -:        -:   10:#define YY_FLEX_MAJOR_VERSION 2
        -:        -:   11:#define YY_FLEX_MINOR_VERSION 6
        -:        -:   12:#define YY_FLEX_SUBMINOR_VERSION 0
        -:        -:   13:#if YY_FLEX_SUBMINOR_VERSION > 0
        -:        -:   14:#define FLEX_BETA
        -:        -:   15:#endif
        -:        -:   16:
        -:        -:   17:/* First, we deal with  platform-specific or compiler-specific issues. */
        -:        -:   18:
        -:        -:   19:/* begin standard C headers. */
        -:        -:   20:#include <stdio.h>
        -:        -:   21:#include <string.h>
        -:        -:   22:#include <errno.h>
        -:        -:   23:#include <stdlib.h>
        -:        -:   24:
        -:        -:   25:/* end standard C headers. */
        -:        -:   26:
        -:        -:   27:/* flex integer type definitions */
        -:        -:   28:
        -:        -:   29:#ifndef FLEXINT_H
        -:        -:   30:#define FLEXINT_H
        -:        -:   31:
        -:        -:   32:/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
        -:        -:   33:
        -:        -:   34:#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
        -:        -:   35:
        -:        -:   36:/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
        -:        -:   37: * if you want the limit (max/min) macros for int types. 
        -:        -:   38: */
        -:        -:   39:#ifndef __STDC_LIMIT_MACROS
        -:        -:   40:#define __STDC_LIMIT_MACROS 1
        -:        -:   41:#endif
        -:        -:   42:
        -:        -:   43:#include <inttypes.h>
        -:        -:   44:typedef int8_t flex_int8_t;
        -:        -:   45:typedef uint8_t flex_uint8_t;
        -:        -:   46:typedef int16_t flex_int16_t;
        -:        -:   47:typedef uint16_t flex_uint16_t;
        -:        -:   48:typedef int32_t flex_int32_t;
        -:        -:   49:typedef uint32_t flex_uint32_t;
        -:        -:   50:#else
        -:        -:   51:typedef signed char flex_int8_t;
        -:        -:   52:typedef short int flex_int16_t;
        -:        -:   53:typedef int flex_int32_t;
        -:        -:   54:typedef unsigned char flex_uint8_t; 
        -:        -:   55:typedef unsigned short int flex_uint16_t;
        -:        -:   56:typedef unsigned int flex_uint32_t;
        -:        -:   57:
        -:        -:   58:/* Limits of integral types. */
        -:        -:   59:#ifndef INT8_MIN
        -:        -:   60:#define INT8_MIN               (-128)
        -:        -:   61:#endif
        -:        -:   62:#ifndef INT16_MIN
        -:        -:   63:#define INT16_MIN              (-32767-1)
        -:        -:   64:#endif
        -:        -:   65:#ifndef INT32_MIN
        -:        -:   66:#define INT32_MIN              (-2147483647-1)
        -:        -:   67:#endif
        -:        -:   68:#ifndef INT8_MAX
        -:        -:   69:#define INT8_MAX               (127)
        -:        -:   70:#endif
        -:        -:   71:#ifndef INT16_MAX
        -:        -:   72:#define INT16_MAX              (32767)
        -:        -:   73:#endif
        -:        -:   74:#ifndef INT32_MAX
        -:        -:   75:#define INT32_MAX              (2147483647)
        -:        -:   76:#endif
        -:        -:   77:#ifndef UINT8_MAX
        -:        -:   78:#define UINT8_MAX              (255U)
        -:        -:   79:#endif
        -:        -:   80:#ifndef UINT16_MAX
        -:        -:   81:#define UINT16_MAX             (65535U)
        -:        -:   82:#endif
        -:        -:   83:#ifndef UINT32_MAX
        -:        -:   84:#define UINT32_MAX             (4294967295U)
        -:        -:   85:#endif
        -:        -:   86:
        -:        -:   87:#endif /* ! C99 */
        -:        -:   88:
        -:        -:   89:#endif /* ! FLEXINT_H */
        -:        -:   90:
        -:        -:   91:#ifdef __cplusplus
        -:        -:   92:
        -:        -:   93:/* The "const" storage-class-modifier is valid. */
        -:        -:   94:#define YY_USE_CONST
        -:        -:   95:
        -:        -:   96:#else	/* ! __cplusplus */
        -:        -:   97:
        -:        -:   98:/* C99 requires __STDC__ to be defined as 1. */
        -:        -:   99:#if defined (__STDC__)
        -:        -:  100:
        -:        -:  101:#define YY_USE_CONST
        -:        -:  102:
        -:        -:  103:#endif	/* defined (__STDC__) */
        -:        -:  104:#endif	/* ! __cplusplus */
        -:        -:  105:
        -:        -:  106:#ifdef YY_USE_CONST
        -:        -:  107:#define yyconst const
        -:        -:  108:#else
        -:        -:  109:#define yyconst
        -:        -:  110:#endif
        -:        -:  111:
        -:        -:  112:/* Returned upon end-of-file. */
        -:        -:  113:#define YY_NULL 0
        -:        -:  114:
        -:        -:  115:/* Promotes a possibly negative, possibly signed char to an unsigned
        -:        -:  116: * integer for use as an array index.  If the signed char is negative,
        -:        -:  117: * we want to instead treat it as an 8-bit unsigned char, hence the
        -:        -:  118: * double cast.
        -:        -:  119: */
        -:        -:  120:#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
        -:        -:  121:
        -:        -:  122:/* An opaque pointer. */
        -:        -:  123:#ifndef YY_TYPEDEF_YY_SCANNER_T
        -:        -:  124:#define YY_TYPEDEF_YY_SCANNER_T
        -:        -:  125:typedef void* yyscan_t;
        -:        -:  126:#endif
        -:        -:  127:
        -:        -:  128:/* For convenience, these vars (plus the bison vars far below)
        -:        -:  129:   are macros in the reentrant scanner. */
        -:        -:  130:#define yyin yyg->yyin_r
        -:        -:  131:#define yyout yyg->yyout_r
        -:        -:  132:#define yyextra yyg->yyextra_r
        -:        -:  133:#define yyleng yyg->yyleng_r
        -:        -:  134:#define yytext yyg->yytext_r
        -:        -:  135:#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
        -:        -:  136:#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
        -:        -:  137:#define yy_flex_debug yyg->yy_flex_debug_r
        -:        -:  138:
        -:        -:  139:/* Enter a start condition.  This macro really ought to take a parameter,
        -:        -:  140: * but we do it the disgusting crufty way forced on us by the ()-less
        -:        -:  141: * definition of BEGIN.
        -:        -:  142: */
        -:        -:  143:#define BEGIN yyg->yy_start = 1 + 2 *
        -:        -:  144:
        -:        -:  145:/* Translate the current start state into a value that can be later handed
        -:        -:  146: * to BEGIN to return to the state.  The YYSTATE alias is for lex
        -:        -:  147: * compatibility.
        -:        -:  148: */
        -:        -:  149:#define YY_START ((yyg->yy_start - 1) / 2)
        -:        -:  150:#define YYSTATE YY_START
        -:        -:  151:
        -:        -:  152:/* Action number for EOF rule of a given start state. */
        -:        -:  153:#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
        -:        -:  154:
        -:        -:  155:/* Special action meaning "start processing a new file". */
        -:        -:  156:#define YY_NEW_FILE glcpp_restart(yyin ,yyscanner )
        -:        -:  157:
        -:        -:  158:#define YY_END_OF_BUFFER_CHAR 0
        -:        -:  159:
        -:        -:  160:/* Size of default input buffer. */
        -:        -:  161:#ifndef YY_BUF_SIZE
        -:        -:  162:#ifdef __ia64__
        -:        -:  163:/* On IA-64, the buffer size is 16k, not 8k.
        -:        -:  164: * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
        -:        -:  165: * Ditto for the __ia64__ case accordingly.
        -:        -:  166: */
        -:        -:  167:#define YY_BUF_SIZE 32768
        -:        -:  168:#else
        -:        -:  169:#define YY_BUF_SIZE 16384
        -:        -:  170:#endif /* __ia64__ */
        -:        -:  171:#endif
        -:        -:  172:
        -:        -:  173:/* The state buf must be large enough to hold one state per character in the main buffer.
        -:        -:  174: */
        -:        -:  175:#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
        -:        -:  176:
        -:        -:  177:#ifndef YY_TYPEDEF_YY_BUFFER_STATE
        -:        -:  178:#define YY_TYPEDEF_YY_BUFFER_STATE
        -:        -:  179:typedef struct yy_buffer_state *YY_BUFFER_STATE;
        -:        -:  180:#endif
        -:        -:  181:
        -:        -:  182:#ifndef YY_TYPEDEF_YY_SIZE_T
        -:        -:  183:#define YY_TYPEDEF_YY_SIZE_T
        -:        -:  184:typedef size_t yy_size_t;
        -:        -:  185:#endif
        -:        -:  186:
        -:        -:  187:#define EOB_ACT_CONTINUE_SCAN 0
        -:        -:  188:#define EOB_ACT_END_OF_FILE 1
        -:        -:  189:#define EOB_ACT_LAST_MATCH 2
        -:        -:  190:
        -:        -:  191:    #define YY_LESS_LINENO(n)
        -:        -:  192:    #define YY_LINENO_REWIND_TO(ptr)
        -:        -:  193:    
        -:        -:  194:/* Return all but the first "n" matched characters back to the input stream. */
        -:        -:  195:#define yyless(n) \
        -:        -:  196:	do \
        -:        -:  197:		{ \
        -:        -:  198:		/* Undo effects of setting up yytext. */ \
        -:        -:  199:        int yyless_macro_arg = (n); \
        -:        -:  200:        YY_LESS_LINENO(yyless_macro_arg);\
        -:        -:  201:		*yy_cp = yyg->yy_hold_char; \
        -:        -:  202:		YY_RESTORE_YY_MORE_OFFSET \
        -:        -:  203:		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
        -:        -:  204:		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
        -:        -:  205:		} \
        -:        -:  206:	while ( 0 )
        -:        -:  207:
        -:        -:  208:#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
        -:        -:  209:
        -:        -:  210:#ifndef YY_STRUCT_YY_BUFFER_STATE
        -:        -:  211:#define YY_STRUCT_YY_BUFFER_STATE
        -:        -:  212:struct yy_buffer_state
        -:        -:  213:	{
        -:        -:  214:	FILE *yy_input_file;
        -:        -:  215:
        -:        -:  216:	char *yy_ch_buf;		/* input buffer */
        -:        -:  217:	char *yy_buf_pos;		/* current position in input buffer */
        -:        -:  218:
        -:        -:  219:	/* Size of input buffer in bytes, not including room for EOB
        -:        -:  220:	 * characters.
        -:        -:  221:	 */
        -:        -:  222:	yy_size_t yy_buf_size;
        -:        -:  223:
        -:        -:  224:	/* Number of characters read into yy_ch_buf, not including EOB
        -:        -:  225:	 * characters.
        -:        -:  226:	 */
        -:        -:  227:	int yy_n_chars;
        -:        -:  228:
        -:        -:  229:	/* Whether we "own" the buffer - i.e., we know we created it,
        -:        -:  230:	 * and can realloc() it to grow it, and should free() it to
        -:        -:  231:	 * delete it.
        -:        -:  232:	 */
        -:        -:  233:	int yy_is_our_buffer;
        -:        -:  234:
        -:        -:  235:	/* Whether this is an "interactive" input source; if so, and
        -:        -:  236:	 * if we're using stdio for input, then we want to use getc()
        -:        -:  237:	 * instead of fread(), to make sure we stop fetching input after
        -:        -:  238:	 * each newline.
        -:        -:  239:	 */
        -:        -:  240:	int yy_is_interactive;
        -:        -:  241:
        -:        -:  242:	/* Whether we're considered to be at the beginning of a line.
        -:        -:  243:	 * If so, '^' rules will be active on the next match, otherwise
        -:        -:  244:	 * not.
        -:        -:  245:	 */
        -:        -:  246:	int yy_at_bol;
        -:        -:  247:
        -:        -:  248:    int yy_bs_lineno; /**< The line count. */
        -:        -:  249:    int yy_bs_column; /**< The column count. */
        -:        -:  250:    
        -:        -:  251:	/* Whether to try to fill the input buffer when we reach the
        -:        -:  252:	 * end of it.
        -:        -:  253:	 */
        -:        -:  254:	int yy_fill_buffer;
        -:        -:  255:
        -:        -:  256:	int yy_buffer_status;
        -:        -:  257:
        -:        -:  258:#define YY_BUFFER_NEW 0
        -:        -:  259:#define YY_BUFFER_NORMAL 1
        -:        -:  260:	/* When an EOF's been seen but there's still some text to process
        -:        -:  261:	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
        -:        -:  262:	 * shouldn't try reading from the input source any more.  We might
        -:        -:  263:	 * still have a bunch of tokens to match, though, because of
        -:        -:  264:	 * possible backing-up.
        -:        -:  265:	 *
        -:        -:  266:	 * When we actually see the EOF, we change the status to "new"
        -:        -:  267:	 * (via glcpp_restart()), so that the user can continue scanning by
        -:        -:  268:	 * just pointing yyin at a new input file.
        -:        -:  269:	 */
        -:        -:  270:#define YY_BUFFER_EOF_PENDING 2
        -:        -:  271:
        -:        -:  272:	};
        -:        -:  273:#endif /* !YY_STRUCT_YY_BUFFER_STATE */
        -:        -:  274:
        -:        -:  275:/* We provide macros for accessing buffer states in case in the
        -:        -:  276: * future we want to put the buffer states in a more general
        -:        -:  277: * "scanner state".
        -:        -:  278: *
        -:        -:  279: * Returns the top of the stack, or NULL.
        -:        -:  280: */
        -:        -:  281:#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
        -:        -:  282:                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
        -:        -:  283:                          : NULL)
        -:        -:  284:
        -:        -:  285:/* Same as previous macro, but useful when we know that the buffer stack is not
        -:        -:  286: * NULL or when we need an lvalue. For internal use only.
        -:        -:  287: */
        -:        -:  288:#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
        -:        -:  289:
        -:        -:  290:void glcpp_restart (FILE *input_file ,yyscan_t yyscanner );
        -:        -:  291:void glcpp__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
        -:        -:  292:YY_BUFFER_STATE glcpp__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
        -:        -:  293:void glcpp__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
        -:        -:  294:void glcpp__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
        -:        -:  295:void glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
        -:        -:  296:void glcpp_pop_buffer_state (yyscan_t yyscanner );
        -:        -:  297:
        -:        -:  298:static void glcpp_ensure_buffer_stack (yyscan_t yyscanner );
        -:        -:  299:static void glcpp__load_buffer_state (yyscan_t yyscanner );
        -:        -:  300:static void glcpp__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
        -:        -:  301:
        -:        -:  302:#define YY_FLUSH_BUFFER glcpp__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
        -:        -:  303:
        -:        -:  304:YY_BUFFER_STATE glcpp__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
        -:        -:  305:YY_BUFFER_STATE glcpp__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
        -:        -:  306:YY_BUFFER_STATE glcpp__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
        -:        -:  307:
        -:        -:  308:void *glcpp_alloc (yy_size_t ,yyscan_t yyscanner );
        -:        -:  309:void *glcpp_realloc (void *,yy_size_t ,yyscan_t yyscanner );
        -:        -:  310:void glcpp_free (void * ,yyscan_t yyscanner );
        -:        -:  311:
        -:        -:  312:#define yy_new_buffer glcpp__create_buffer
        -:        -:  313:
        -:        -:  314:#define yy_set_interactive(is_interactive) \
        -:        -:  315:	{ \
        -:        -:  316:	if ( ! YY_CURRENT_BUFFER ){ \
        -:        -:  317:        glcpp_ensure_buffer_stack (yyscanner); \
        -:        -:  318:		YY_CURRENT_BUFFER_LVALUE =    \
        -:        -:  319:            glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        -:        -:  320:	} \
        -:        -:  321:	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        -:        -:  322:	}
        -:        -:  323:
        -:        -:  324:#define yy_set_bol(at_bol) \
        -:        -:  325:	{ \
        -:        -:  326:	if ( ! YY_CURRENT_BUFFER ){\
        -:        -:  327:        glcpp_ensure_buffer_stack (yyscanner); \
        -:        -:  328:		YY_CURRENT_BUFFER_LVALUE =    \
        -:        -:  329:            glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        -:        -:  330:	} \
        -:        -:  331:	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        -:        -:  332:	}
        -:        -:  333:
        -:        -:  334:#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
        -:        -:  335:
        -:        -:  336:/* Begin user sect3 */
        -:        -:  337:
        -:        -:  338:#define glcpp_wrap(yyscanner) (/*CONSTCOND*/1)
        -:        -:  339:#define YY_SKIP_YYWRAP
        -:        -:  340:
        -:        -:  341:typedef unsigned char YY_CHAR;
        -:        -:  342:
        -:        -:  343:typedef int yy_state_type;
        -:        -:  344:
        -:        -:  345:#define yytext_ptr yytext_r
        -:        -:  346:
        -:        -:  347:static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
        -:        -:  348:static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
        -:        -:  349:static int yy_get_next_buffer (yyscan_t yyscanner );
        -:        -:  350:#if defined(__GNUC__) && __GNUC__ >= 3
        -:        -:  351:__attribute__((__noreturn__))
        -:        -:  352:#endif
        -:        -:  353:static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        -:        -:  354:
        -:        -:  355:/* Done after the current pattern has been matched and before the
        -:        -:  356: * corresponding action - sets up yytext.
        -:        -:  357: */
        -:        -:  358:#define YY_DO_BEFORE_ACTION \
        -:        -:  359:	yyg->yytext_ptr = yy_bp; \
        -:        -:  360:	yyleng = (size_t) (yy_cp - yy_bp); \
        -:        -:  361:	yyg->yy_hold_char = *yy_cp; \
        -:        -:  362:	*yy_cp = '\0'; \
        -:        -:  363:	yyg->yy_c_buf_p = yy_cp;
        -:        -:  364:
        -:        -:  365:#define YY_NUM_RULES 52
        -:        -:  366:#define YY_END_OF_BUFFER 53
        -:        -:  367:/* This struct is not used in this scanner,
        -:        -:  368:   but its presence is necessary. */
        -:        -:  369:struct yy_trans_info
        -:        -:  370:	{
        -:        -:  371:	flex_int32_t yy_verify;
        -:        -:  372:	flex_int32_t yy_nxt;
        -:        -:  373:	};
        -:        -:  374:static yyconst flex_int16_t yy_accept[174] =
        -:        -:  375:    {   0,
        -:        -:  376:        0,    0,    3,    3,    0,    0,    0,    0,    0,    0,
        -:        -:  377:        0,    0,    0,    0,   53,   48,   49,   50,   50,   47,
        -:        -:  378:        8,   47,   47,   47,   47,   47,   47,   31,   30,   47,
        -:        -:  379:       47,   47,   45,   45,   47,    3,    4,    4,    5,   29,
        -:        -:  380:       27,   51,   26,   51,   24,   23,   13,   13,   24,   24,
        -:        -:  381:       24,   24,   24,   24,   24,   24,   48,   50,   38,   43,
        -:        -:  382:       39,   41,   42,   46,    2,    1,   46,   31,   46,   31,
        -:        -:  383:       46,   30,   30,   33,   35,   37,   36,   34,   45,   45,
        -:        -:  384:       40,    3,    4,    4,    4,    5,    6,    6,    5,    7,
        -:        -:  385:       29,   27,   28,    1,   25,   26,   23,   13,    0,    0,
        -:        -:  386:
        -:        -:  387:        0,    0,    0,    0,    0,    0,    0,    0,    1,   32,
        -:        -:  388:       32,   45,    4,    6,   28,    1,    0,    0,    0,    0,
        -:        -:  389:        0,    0,   16,    0,    0,    0,    0,    0,    0,   32,
        -:        -:  390:       45,    0,    0,   18,    0,    0,    0,    0,    0,    0,
        -:        -:  391:        0,    0,    0,   45,    0,   17,   19,   20,    0,   14,
        -:        -:  392:        0,   12,    0,   22,    0,   45,   21,   20,    0,   15,
        -:        -:  393:       11,    0,   44,   21,    0,   11,   11,   10,    0,    0,
        -:        -:  394:        9,   11,    0
        -:        -:  395:    } ;
        -:        -:  396:
        -:        -:  397:static yyconst YY_CHAR yy_ec[256] =
        -:        -:  398:    {   0,
        -:        -:  399:        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        -:        -:  400:        2,    2,    4,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  401:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  402:        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
        -:        -:  403:        7,   10,   11,    7,   12,   13,   14,   15,   16,   16,
        -:        -:  404:       16,   16,   16,   16,   16,   17,   17,    1,    7,   18,
        -:        -:  405:       19,   20,    1,    1,   21,   21,   21,   21,   22,   21,
        -:        -:  406:       23,   23,   23,   23,   23,   23,   23,   23,   23,   24,
        -:        -:  407:       23,   23,   23,   23,   25,   23,   23,   26,   23,   23,
        -:        -:  408:        7,    1,    7,    7,   23,    1,   27,   21,   21,   28,
        -:        -:  409:
        -:        -:  410:       29,   30,   31,   23,   32,   23,   23,   33,   34,   35,
        -:        -:  411:       36,   37,   23,   38,   39,   40,   41,   42,   23,   43,
        -:        -:  412:       23,   23,    7,   44,    7,    7,    1,    1,    1,    1,
        -:        -:  413:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  414:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  415:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  416:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  417:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  418:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  419:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  420:
        -:        -:  421:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  422:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  423:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  424:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  425:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  426:        1,    1,    1,    1,    1
        -:        -:  427:    } ;
        -:        -:  428:
        -:        -:  429:static yyconst YY_CHAR yy_meta[45] =
        -:        -:  430:    {   0,
        -:        -:  431:        1,    2,    3,    3,    1,    1,    1,    1,    4,    5,
        -:        -:  432:        1,    1,    6,    1,    7,    7,    7,    1,    1,    1,
        -:        -:  433:        7,    7,    7,    7,    7,    7,    7,    8,    7,    7,
        -:        -:  434:        7,    7,    7,    7,    8,    7,    7,    7,    7,    7,
        -:        -:  435:        7,    7,    7,    1
        -:        -:  436:    } ;
        -:        -:  437:
        -:        -:  438:static yyconst flex_uint16_t yy_base[191] =
        -:        -:  439:    {   0,
        -:        -:  440:        0,    0,   42,   44,   54,    0,   46,   96,   99,  140,
        -:        -:  441:      101,  103,  105,  107,  429,  427,  430,  423,  423,  406,
        -:        -:  442:      418,  430,  415,  411,  409,   99,  107,  168,  197,  100,
        -:        -:  443:      401,  103,    0,  390,  374,  121,  413,  413,  135,    0,
        -:        -:  444:      413,  116,  405,  430,  430,  411,  408,  408,  119,  381,
        -:        -:  445:      113,  379,  376,  369,  371,  376,  403,  430,  430,  430,
        -:        -:  446:      430,  430,  430,  128,  430,    0,  137,  163,  196,  123,
        -:        -:  447:      228,    0,  151,  430,  430,  430,  430,  430,    0,  373,
        -:        -:  448:      430,  167,  398,  398,  430,  192,  396,  396,  213,  430,
        -:        -:  449:        0,  396,    0,  395,  430,  374,  371,  430,  331,  121,
        -:        -:  450:
        -:        -:  451:      325,  314,  305,  163,  305,  312,  296,  285,    0,  160,
        -:        -:  452:      235,  278,  430,  430,    0,  273,  242,  243,  243,  239,
        -:        -:  453:      234,  240,  430,  239,  239,  237,  234,  235,  224,  164,
        -:        -:  454:      227,  226,    0,  430,  229,  216,  218,  222,  222,  246,
        -:        -:  455:      208,  211,  200,  202,  195,  430,  430,    0,  176,  430,
        -:        -:  456:      180,  201,  162,  430,  131,  136,  156,    0,  123,  430,
        -:        -:  457:      226,  112,    0,  135,   84,  183,  233,  430,  110,   18,
        -:        -:  458:       49,  196,  430,  276,  284,  292,  295,  297,  305,  313,
        -:        -:  459:      321,  329,  334,  342,  350,  358,  366,  374,  380,  388
        -:        -:  460:    } ;
        -:        -:  461:
        -:        -:  462:static yyconst flex_int16_t yy_def[191] =
        -:        -:  463:    {   0,
        -:        -:  464:      173,    1,  174,  174,  173,    5,  175,  175,  176,  176,
        -:        -:  465:      175,  175,  175,  175,  173,  173,  173,  173,  173,  173,
        -:        -:  466:      173,  173,  173,  173,  173,  173,  173,  177,  177,  173,
        -:        -:  467:      173,  173,  178,  178,  173,  179,  173,  173,  180,  181,
        -:        -:  468:      173,  182,  183,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  469:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  470:      173,  173,  173,  177,  173,  184,  177,   29,  177,   69,
        -:        -:  471:       69,   29,   69,  173,  173,  173,  173,  173,  178,  178,
        -:        -:  472:      173,  179,  173,  173,  173,  180,  173,  173,  180,  173,
        -:        -:  473:      181,  173,  185,  186,  173,  183,  173,  173,  173,  173,
        -:        -:  474:
        -:        -:  475:      173,  173,  173,  187,  173,  173,  173,  173,  184,   71,
        -:        -:  476:       71,  178,  173,  173,  185,  186,  173,  173,  173,  173,
        -:        -:  477:      173,  173,  173,  173,  173,  173,  173,  173,  173,   69,
        -:        -:  478:      178,  173,  188,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  479:      173,  173,  173,  178,  173,  173,  173,  189,  173,  173,
        -:        -:  480:      173,  173,  173,  173,  173,  178,  173,  189,  173,  173,
        -:        -:  481:      190,  173,  178,  173,  173,  190,  190,  173,  173,  173,
        -:        -:  482:      173,  190,    0,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  483:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173
        -:        -:  484:    } ;
        -:        -:  485:
        -:        -:  486:static yyconst flex_uint16_t yy_nxt[475] =
        -:        -:  487:    {   0,
        -:        -:  488:       16,   17,   18,   19,   20,   21,   22,   23,   22,   22,
        -:        -:  489:       24,   25,   26,   27,   28,   29,   29,   30,   31,   32,
        -:        -:  490:       33,   33,   33,   33,   33,   33,   33,   34,   33,   33,
        -:        -:  491:       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
        -:        -:  492:       33,   33,   33,   35,   37,   38,   37,   38,   18,   19,
        -:        -:  493:      171,   39,  172,   39,   40,   41,   18,   19,   40,   40,
        -:        -:  494:       40,   40,   40,   40,   40,   40,   40,   42,   40,   40,
        -:        -:  495:       40,   40,   40,   40,   43,   43,   43,   43,   43,   43,
        -:        -:  496:       43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
        -:        -:  497:       43,   43,   43,   43,   43,   43,   43,   40,   18,   19,
        -:        -:  498:
        -:        -:  499:       46,   47,   48,   18,   19,   18,   19,   18,   19,   18,
        -:        -:  500:       19,  171,   49,   64,   64,   64,   65,   74,   75,  170,
        -:        -:  501:       66,   77,   78,   83,   84,   65,   50,   51,   65,   94,
        -:        -:  502:       52,   53,   66,  173,  173,   54,  164,   87,   88,   55,
        -:        -:  503:       56,   46,   47,   48,   89,  100,  169,  101,   90,   69,
        -:        -:  504:      102,   69,  118,   49,  165,  103,   69,  164,   69,  119,
        -:        -:  505:       69,  173,  173,  163,   69,   69,  162,   50,   51,   83,
        -:        -:  506:       84,   52,   53,   69,  173,  173,   54,   68,   68,   67,
        -:        -:  507:       55,   56,   68,   68,  130,  173,  173,   70,  161,   69,
        -:        -:  508:      124,   69,   70,   71,   87,   88,   69,  125,  173,  173,
        -:        -:  509:
        -:        -:  510:      130,  173,  152,   70,   69,  173,   67,   67,   70,  160,
        -:        -:  511:       71,   72,   72,   72,  159,   87,   88,   69,   69,   69,
        -:        -:  512:       69,   73,   89,  157,   69,   69,   90,  167,  168,  168,
        -:        -:  513:      156,  155,   69,   69,  167,  168,  168,   73,  173,  173,
        -:        -:  514:      154,  153,  110,  110,  110,   67,   67,  152,  110,  111,
        -:        -:  515:      151,  150,  149,  148,  110,  110,  111,  110,  147,  130,
        -:        -:  516:      145,  144,  143,  142,  141,  140,  139,  138,  137,  136,
        -:        -:  517:      135,  134,  133,  132,  109,  130,   36,   36,   36,   36,
        -:        -:  518:       36,   36,   36,   36,   44,   44,   44,   44,   44,   44,
        -:        -:  519:       44,   44,   45,   45,   45,   45,   45,   45,   45,   45,
        -:        -:  520:
        -:        -:  521:       67,   67,   67,   79,   79,   82,   82,   82,   82,  131,
        -:        -:  522:       82,   82,   82,   86,   86,   86,   86,   86,   86,   86,
        -:        -:  523:       86,   91,  129,  128,   91,   91,   91,   91,   91,   93,
        -:        -:  524:       93,   93,   93,   93,   93,   93,   93,   96,  127,  126,
        -:        -:  525:       96,   96,  109,  109,  122,  109,  109,  109,  109,  109,
        -:        -:  526:      115,  121,  120,  115,  115,  115,  115,  115,  116,  116,
        -:        -:  527:      117,  116,  116,  116,  116,  116,  123,  123,  123,  123,
        -:        -:  528:      123,  123,   97,  123,  146,  146,  146,  146,  146,  146,
        -:        -:  529:      158,  158,   95,  158,  158,  158,  158,  158,  166,  166,
        -:        -:  530:      166,  166,  166,  166,  166,  166,  109,   92,  114,  114,
        -:        -:  531:
        -:        -:  532:      113,  113,  112,   57,  108,  107,  106,  105,  104,   99,
        -:        -:  533:       98,   98,   97,   95,   92,   85,   85,   81,   80,   76,
        -:        -:  534:       63,   62,   61,   60,   59,   58,   58,   57,  173,   15,
        -:        -:  535:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  536:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  537:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  538:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  539:      173,  173,  173,  173
        -:        -:  540:    } ;
        -:        -:  541:
        -:        -:  542:static yyconst flex_int16_t yy_chk[475] =
        -:        -:  543:    {   0,
        -:        -:  544:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  545:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  546:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  547:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  548:        1,    1,    1,    1,    3,    3,    4,    4,    7,    7,
        -:        -:  549:      171,    3,  170,    4,    5,    5,    5,    5,    5,    5,
        -:        -:  550:        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        -:        -:  551:        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        -:        -:  552:        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        -:        -:  553:        5,    5,    5,    5,    5,    5,    5,    5,    8,    8,
        -:        -:  554:
        -:        -:  555:        9,    9,    9,   11,   11,   12,   12,   13,   13,   14,
        -:        -:  556:       14,  169,    9,   26,   26,   26,   27,   30,   30,  165,
        -:        -:  557:       27,   32,   32,   36,   36,   42,    9,    9,   49,   42,
        -:        -:  558:        9,    9,   49,   70,   70,    9,  164,   39,   39,    9,
        -:        -:  559:        9,   10,   10,   10,   39,   51,  162,   51,   39,   64,
        -:        -:  560:       51,   64,  100,   10,  159,   51,   64,  157,   67,  100,
        -:        -:  561:       67,   73,   73,  156,   64,   67,  155,   10,   10,   82,
        -:        -:  562:       82,   10,   10,   67,  130,  130,   10,   68,   68,   68,
        -:        -:  563:       10,   10,   28,   28,  110,  166,  166,   68,  153,   28,
        -:        -:  564:      104,   28,   28,   28,   86,   86,   28,  104,  172,  172,
        -:        -:  565:
        -:        -:  566:      110,   86,  152,   68,   28,   86,   69,   69,   28,  151,
        -:        -:  567:       28,   29,   29,   29,  149,   89,   89,   69,   29,   69,
        -:        -:  568:       29,   29,   89,  145,   69,   29,   89,  161,  161,  161,
        -:        -:  569:      144,  143,   69,   29,  167,  167,  167,   29,   71,   71,
        -:        -:  570:      142,  141,   71,   71,   71,  111,  111,  140,   71,   71,
        -:        -:  571:      139,  138,  137,  136,   71,   71,   71,   71,  135,  111,
        -:        -:  572:      132,  131,  129,  128,  127,  126,  125,  124,  122,  121,
        -:        -:  573:      120,  119,  118,  117,  116,  111,  174,  174,  174,  174,
        -:        -:  574:      174,  174,  174,  174,  175,  175,  175,  175,  175,  175,
        -:        -:  575:      175,  175,  176,  176,  176,  176,  176,  176,  176,  176,
        -:        -:  576:
        -:        -:  577:      177,  177,  177,  178,  178,  179,  179,  179,  179,  112,
        -:        -:  578:      179,  179,  179,  180,  180,  180,  180,  180,  180,  180,
        -:        -:  579:      180,  181,  108,  107,  181,  181,  181,  181,  181,  182,
        -:        -:  580:      182,  182,  182,  182,  182,  182,  182,  183,  106,  105,
        -:        -:  581:      183,  183,  184,  184,  103,  184,  184,  184,  184,  184,
        -:        -:  582:      185,  102,  101,  185,  185,  185,  185,  185,  186,  186,
        -:        -:  583:       99,  186,  186,  186,  186,  186,  187,  187,  187,  187,
        -:        -:  584:      187,  187,   97,  187,  188,  188,  188,  188,  188,  188,
        -:        -:  585:      189,  189,   96,  189,  189,  189,  189,  189,  190,  190,
        -:        -:  586:      190,  190,  190,  190,  190,  190,   94,   92,   88,   87,
        -:        -:  587:
        -:        -:  588:       84,   83,   80,   57,   56,   55,   54,   53,   52,   50,
        -:        -:  589:       48,   47,   46,   43,   41,   38,   37,   35,   34,   31,
        -:        -:  590:       25,   24,   23,   21,   20,   19,   18,   16,   15,  173,
        -:        -:  591:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  592:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  593:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  594:      173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
        -:        -:  595:      173,  173,  173,  173
        -:        -:  596:    } ;
        -:        -:  597:
        -:        -:  598:/* The intent behind this definition is that it'll catch
        -:        -:  599: * any uses of REJECT which flex missed.
        -:        -:  600: */
        -:        -:  601:#define REJECT reject_used_but_not_detected
        -:        -:  602:#define yymore() yymore_used_but_not_detected
        -:        -:  603:#define YY_MORE_ADJ 0
        -:        -:  604:#define YY_RESTORE_YY_MORE_OFFSET
        -:        -:  605:#line 1 "./glsl/glcpp/glcpp-lex.l"
        -:        -:  606:#line 2 "./glsl/glcpp/glcpp-lex.l"
        -:        -:  607:/*
        -:        -:  608: * Copyright © 2010 Intel Corporation
        -:        -:  609: *
        -:        -:  610: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:  611: * copy of this software and associated documentation files (the "Software"),
        -:        -:  612: * to deal in the Software without restriction, including without limitation
        -:        -:  613: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:  614: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:  615: * Software is furnished to do so, subject to the following conditions:
        -:        -:  616: *
        -:        -:  617: * The above copyright notice and this permission notice (including the next
        -:        -:  618: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:  619: * Software.
        -:        -:  620: *
        -:        -:  621: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:  622: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:  623: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:  624: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:  625: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:  626: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:  627: * DEALINGS IN THE SOFTWARE.
        -:        -:  628: */
        -:        -:  629:
        -:        -:  630:#include <stdio.h>
        -:        -:  631:#include <string.h>
        -:        -:  632:#include <ctype.h>
        -:        -:  633:
        -:        -:  634:#include "glcpp.h"
        -:        -:  635:#include "glcpp-parse.h"
        -:        -:  636:
        -:        -:  637:/* Flex annoyingly generates some functions without making them
        -:        -:  638: * static. Let's declare them here. */
        -:        -:  639:int glcpp_get_column  (yyscan_t yyscanner);
        -:        -:  640:void glcpp_set_column (int  column_no , yyscan_t yyscanner);
        -:        -:  641:
        -:        -:  642:#ifdef _MSC_VER
        -:        -:  643:#define YY_NO_UNISTD_H
        -:        -:  644:#endif
        -:        -:  645:
        -:        -:  646:#define YY_NO_INPUT
        -:        -:  647:
        -:        -:  648:#define YY_USER_ACTION							\
        -:        -:  649:	do {								\
        -:        -:  650:		if (parser->has_new_line_number)			\
        -:        -:  651:			yylineno = parser->new_line_number;		\
        -:        -:  652:		if (parser->has_new_source_number)			\
        -:        -:  653:			yylloc->source = parser->new_source_number;	\
        -:        -:  654:		yylloc->first_column = yycolumn + 1;			\
        -:        -:  655:		yylloc->first_line = yylloc->last_line = yylineno;	\
        -:        -:  656:		yycolumn += yyleng;					\
        -:        -:  657:		yylloc->last_column = yycolumn + 1;			\
        -:        -:  658:		parser->has_new_line_number = 0;			\
        -:        -:  659:		parser->has_new_source_number = 0;			\
        -:        -:  660:	} while(0);
        -:        -:  661:
        -:        -:  662:#define YY_USER_INIT			\
        -:        -:  663:	do {				\
        -:        -:  664:		yylineno = 1;		\
        -:        -:  665:		yycolumn = 0;		\
        -:        -:  666:		yylloc->source = 0;	\
        -:        -:  667:	} while(0)
        -:        -:  668:
        -:        -:  669:/* It's ugly to have macros that have return statements inside of
        -:        -:  670: * them, but flex-based lexer generation is all built around the
        -:        -:  671: * return statement.
        -:        -:  672: *
        -:        -:  673: * To mitigate the ugliness, we defer as much of the logic as possible
        -:        -:  674: * to an actual function, not a macro (see
        -:        -:  675: * glcpplex_update_state_per_token) and we make the word RETURN
        -:        -:  676: * prominent in all of the macros which may return.
        -:        -:  677: *
        -:        -:  678: * The most-commonly-used macro is RETURN_TOKEN which will perform all
        -:        -:  679: * necessary state updates based on the provided token,, then
        -:        -:  680: * conditionally return the token. It will not return a token if the
        -:        -:  681: * parser is currently skipping tokens, (such as within #if
        -:        -:  682: * 0...#else).
        -:        -:  683: *
        -:        -:  684: * The RETURN_TOKEN_NEVER_SKIP macro is a lower-level variant that
        -:        -:  685: * makes the token returning unconditional. This is needed for things
        -:        -:  686: * like #if and the tokens of its condition, (since these must be
        -:        -:  687: * evaluated by the parser even when otherwise skipping).
        -:        -:  688: *
        -:        -:  689: * Finally, RETURN_STRING_TOKEN is a simple convenience wrapper on top
        -:        -:  690: * of RETURN_TOKEN that performs a string copy of yytext before the
        -:        -:  691: * return.
        -:        -:  692: */
        -:        -:  693:#define RETURN_TOKEN_NEVER_SKIP(token)					\
        -:        -:  694:	do {								\
        -:        -:  695:		if (glcpp_lex_update_state_per_token (parser, token))	\
        -:        -:  696:			return token;					\
        -:        -:  697:	} while (0)
        -:        -:  698:
        -:        -:  699:#define RETURN_TOKEN(token)						\
        -:        -:  700:	do {								\
        -:        -:  701:		if (! parser->skipping) {				\
        -:        -:  702:			RETURN_TOKEN_NEVER_SKIP(token);			\
        -:        -:  703:		}							\
        -:        -:  704:	} while(0)
        -:        -:  705:
        -:        -:  706:#define RETURN_STRING_TOKEN(token)					\
        -:        -:  707:	do {								\
        -:        -:  708:		if (! parser->skipping) {				\
        -:        -:  709:			yylval->str = linear_strdup(yyextra->linalloc, yytext);	\
        -:        -:  710:			RETURN_TOKEN_NEVER_SKIP (token);		\
        -:        -:  711:		}							\
        -:        -:  712:	} while(0)
        -:        -:  713:
        -:        -:  714:
        -:        -:  715:/* Update all state necessary for each token being returned.
        -:        -:  716: *
        -:        -:  717: * Here we'll be tracking newlines and spaces so that the lexer can
        -:        -:  718: * alter its behavior as necessary, (for example, '#' has special
        -:        -:  719: * significance if it is the first non-whitespace, non-comment token
        -:        -:  720: * in a line, but does not otherwise).
        -:        -:  721: *
        -:        -:  722: * NOTE: If this function returns FALSE, then no token should be
        -:        -:  723: * returned at all. This is used to suprress duplicate SPACE tokens.
        -:        -:  724: */
        -:        -:  725:static int
        -:        -:  726:glcpp_lex_update_state_per_token (glcpp_parser_t *parser, int token)
        -:        -:  727:{
        -:        -:  728:	if (token != NEWLINE && token != SPACE && token != HASH_TOKEN &&
        -:        -:  729:	    !parser->lexing_version_directive) {
        -:        -:  730:		glcpp_parser_resolve_implicit_version(parser);
        -:        -:  731:	}
        -:        -:  732:
        -:        -:  733:	/* After the first non-space token in a line, we won't
        -:        -:  734:	 * allow any '#' to introduce a directive. */
        -:        -:  735:	if (token == NEWLINE) {
        -:        -:  736:		parser->first_non_space_token_this_line = 1;
        -:        -:  737:	} else if (token != SPACE) {
        -:        -:  738:		parser->first_non_space_token_this_line = 0;
        -:        -:  739:	}
        -:        -:  740:
        -:        -:  741:	/* Track newlines just to know whether a newline needs
        -:        -:  742:	 * to be inserted if end-of-file comes early. */
        -:        -:  743:	if (token == NEWLINE) {
        -:        -:  744:		parser->last_token_was_newline = 1;
        -:        -:  745:	} else {
        -:        -:  746:		parser->last_token_was_newline = 0;
        -:        -:  747:	}
        -:        -:  748:
        -:        -:  749:	/* Track spaces to avoid emitting multiple SPACE
        -:        -:  750:	 * tokens in a row. */
        -:        -:  751:	if (token == SPACE) {
        -:        -:  752:		if (! parser->last_token_was_space) {
        -:        -:  753:			parser->last_token_was_space = 1;
        -:        -:  754:			return 1;
        -:        -:  755:		} else {
        -:        -:  756:			parser->last_token_was_space = 1;
        -:        -:  757:			return 0;
        -:        -:  758:		}
        -:        -:  759:	} else {
        -:        -:  760:		parser->last_token_was_space = 0;
        -:        -:  761:		return 1;
        -:        -:  762:	}
        -:        -:  763:}
        -:        -:  764:
        -:        -:  765:
        -:        -:  766:/* Note: When adding any start conditions to this list, you must also
        -:        -:  767:* update the "Internal compiler error" catch-all rule near the end of
        -:        -:  768:* this file. */
        -:        -:  769:
        -:        -:  770:/* The OTHER class is simply a catch-all for things that the CPP
        -:        -:  771:parser just doesn't care about. Since flex regular expressions that
        -:        -:  772:match longer strings take priority over those matching shorter
        -:        -:  773:strings, we have to be careful to avoid OTHER matching and hiding
        -:        -:  774:something that CPP does care about. So we simply exclude all
        -:        -:  775:characters that appear in any other expressions. */
        -:        -:  776:#line 777 "glsl/glcpp/glcpp-lex.c"
        -:        -:  777:
        -:        -:  778:#define INITIAL 0
        -:        -:  779:#define COMMENT 1
        -:        -:  780:#define DEFINE 2
        -:        -:  781:#define DONE 3
        -:        -:  782:#define HASH 4
        -:        -:  783:#define NEWLINE_CATCHUP 5
        -:        -:  784:#define UNREACHABLE 6
        -:        -:  785:
        -:        -:  786:#ifndef YY_NO_UNISTD_H
        -:        -:  787:/* Special case for "unistd.h", since it is non-ANSI. We include it way
        -:        -:  788: * down here because we want the user's section 1 to have been scanned first.
        -:        -:  789: * The user has a chance to override it with an option.
        -:        -:  790: */
        -:        -:  791:#include <unistd.h>
        -:        -:  792:#endif
        -:        -:  793:
        -:        -:  794:#define YY_EXTRA_TYPE glcpp_parser_t *
        -:        -:  795:
        -:        -:  796:/* Holds the entire state of the reentrant scanner. */
        -:        -:  797:struct yyguts_t
        -:        -:  798:    {
        -:        -:  799:
        -:        -:  800:    /* User-defined. Not touched by flex. */
        -:        -:  801:    YY_EXTRA_TYPE yyextra_r;
        -:        -:  802:
        -:        -:  803:    /* The rest are the same as the globals declared in the non-reentrant scanner. */
        -:        -:  804:    FILE *yyin_r, *yyout_r;
        -:        -:  805:    size_t yy_buffer_stack_top; /**< index of top of stack. */
        -:        -:  806:    size_t yy_buffer_stack_max; /**< capacity of stack. */
        -:        -:  807:    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
        -:        -:  808:    char yy_hold_char;
        -:        -:  809:    int yy_n_chars;
        -:        -:  810:    yy_size_t yyleng_r;
        -:        -:  811:    char *yy_c_buf_p;
        -:        -:  812:    int yy_init;
        -:        -:  813:    int yy_start;
        -:        -:  814:    int yy_did_buffer_switch_on_eof;
        -:        -:  815:    int yy_start_stack_ptr;
        -:        -:  816:    int yy_start_stack_depth;
        -:        -:  817:    int *yy_start_stack;
        -:        -:  818:    yy_state_type yy_last_accepting_state;
        -:        -:  819:    char* yy_last_accepting_cpos;
        -:        -:  820:
        -:        -:  821:    int yylineno_r;
        -:        -:  822:    int yy_flex_debug_r;
        -:        -:  823:
        -:        -:  824:    char *yytext_r;
        -:        -:  825:    int yy_more_flag;
        -:        -:  826:    int yy_more_len;
        -:        -:  827:
        -:        -:  828:    YYSTYPE * yylval_r;
        -:        -:  829:
        -:        -:  830:    YYLTYPE * yylloc_r;
        -:        -:  831:
        -:        -:  832:    }; /* end struct yyguts_t */
        -:        -:  833:
        -:        -:  834:static int yy_init_globals (yyscan_t yyscanner );
        -:        -:  835:
        -:        -:  836:    /* This must go here because YYSTYPE and YYLTYPE are included
        -:        -:  837:     * from bison output in section 1.*/
        -:        -:  838:    #    define yylval yyg->yylval_r
        -:        -:  839:    
        -:        -:  840:    #    define yylloc yyg->yylloc_r
        -:        -:  841:    
        -:        -:  842:int glcpp_lex_init (yyscan_t* scanner);
        -:        -:  843:
        -:        -:  844:int glcpp_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
        -:        -:  845:
        -:        -:  846:/* Accessor methods to globals.
        -:        -:  847:   These are made visible to non-reentrant scanners for convenience. */
        -:        -:  848:
        -:        -:  849:int glcpp_lex_destroy (yyscan_t yyscanner );
        -:        -:  850:
        -:        -:  851:int glcpp_get_debug (yyscan_t yyscanner );
        -:        -:  852:
        -:        -:  853:void glcpp_set_debug (int debug_flag ,yyscan_t yyscanner );
        -:        -:  854:
        -:        -:  855:YY_EXTRA_TYPE glcpp_get_extra (yyscan_t yyscanner );
        -:        -:  856:
        -:        -:  857:void glcpp_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
        -:        -:  858:
        -:        -:  859:FILE *glcpp_get_in (yyscan_t yyscanner );
        -:        -:  860:
        -:        -:  861:void glcpp_set_in  (FILE * _in_str ,yyscan_t yyscanner );
        -:        -:  862:
        -:        -:  863:FILE *glcpp_get_out (yyscan_t yyscanner );
        -:        -:  864:
        -:        -:  865:void glcpp_set_out  (FILE * _out_str ,yyscan_t yyscanner );
        -:        -:  866:
        -:        -:  867:yy_size_t glcpp_get_leng (yyscan_t yyscanner );
        -:        -:  868:
        -:        -:  869:char *glcpp_get_text (yyscan_t yyscanner );
        -:        -:  870:
        -:        -:  871:int glcpp_get_lineno (yyscan_t yyscanner );
        -:        -:  872:
        -:        -:  873:void glcpp_set_lineno (int _line_number ,yyscan_t yyscanner );
        -:        -:  874:
        -:        -:  875:int glcpp_get_column  (yyscan_t yyscanner );
        -:        -:  876:
        -:        -:  877:void glcpp_set_column (int _column_no ,yyscan_t yyscanner );
        -:        -:  878:
        -:        -:  879:YYSTYPE * glcpp_get_lval (yyscan_t yyscanner );
        -:        -:  880:
        -:        -:  881:void glcpp_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
        -:        -:  882:
        -:        -:  883:       YYLTYPE *glcpp_get_lloc (yyscan_t yyscanner );
        -:        -:  884:    
        -:        -:  885:        void glcpp_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
        -:        -:  886:    
        -:        -:  887:/* Macros after this point can all be overridden by user definitions in
        -:        -:  888: * section 1.
        -:        -:  889: */
        -:        -:  890:
        -:        -:  891:#ifndef YY_SKIP_YYWRAP
        -:        -:  892:#ifdef __cplusplus
        -:        -:  893:extern "C" int glcpp_wrap (yyscan_t yyscanner );
        -:        -:  894:#else
        -:        -:  895:extern int glcpp_wrap (yyscan_t yyscanner );
        -:        -:  896:#endif
        -:        -:  897:#endif
        -:        -:  898:
        -:        -:  899:#ifndef YY_NO_UNPUT
        -:        -:  900:    
        -:        -:  901:    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
        -:        -:  902:    
        -:        -:  903:#endif
        -:        -:  904:
        -:        -:  905:#ifndef yytext_ptr
        -:        -:  906:static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
        -:        -:  907:#endif
        -:        -:  908:
        -:        -:  909:#ifdef YY_NEED_STRLEN
        -:        -:  910:static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
        -:        -:  911:#endif
        -:        -:  912:
        -:        -:  913:#ifndef YY_NO_INPUT
        -:        -:  914:
        -:        -:  915:#ifdef __cplusplus
        -:        -:  916:static int yyinput (yyscan_t yyscanner );
        -:        -:  917:#else
        -:        -:  918:static int input (yyscan_t yyscanner );
        -:        -:  919:#endif
        -:        -:  920:
        -:        -:  921:#endif
        -:        -:  922:
        -:        -:  923:    static void yy_push_state (int _new_state ,yyscan_t yyscanner);
        -:        -:  924:    
        -:        -:  925:    static void yy_pop_state (yyscan_t yyscanner );
        -:        -:  926:    
        -:        -:  927:    static int yy_top_state (yyscan_t yyscanner );
        -:        -:  928:    
        -:        -:  929:/* Amount of stuff to slurp up with each read. */
        -:        -:  930:#ifndef YY_READ_BUF_SIZE
        -:        -:  931:#ifdef __ia64__
        -:        -:  932:/* On IA-64, the buffer size is 16k, not 8k */
        -:        -:  933:#define YY_READ_BUF_SIZE 16384
        -:        -:  934:#else
        -:        -:  935:#define YY_READ_BUF_SIZE 8192
        -:        -:  936:#endif /* __ia64__ */
        -:        -:  937:#endif
        -:        -:  938:
        -:        -:  939:/* Copy whatever the last rule matched to the standard output. */
        -:        -:  940:#ifndef ECHO
        -:        -:  941:/* This used to be an fputs(), but since the string might contain NUL's,
        -:        -:  942: * we now use fwrite().
        -:        -:  943: */
        -:        -:  944:#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
        -:        -:  945:#endif
        -:        -:  946:
        -:        -:  947:/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
        -:        -:  948: * is returned in "result".
        -:        -:  949: */
        -:        -:  950:#ifndef YY_INPUT
        -:        -:  951:#define YY_INPUT(buf,result,max_size) \
        -:        -:  952:	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
        -:        -:  953:		{ \
        -:        -:  954:		int c = '*'; \
        -:        -:  955:		size_t n; \
        -:        -:  956:		for ( n = 0; n < max_size && \
        -:        -:  957:			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
        -:        -:  958:			buf[n] = (char) c; \
        -:        -:  959:		if ( c == '\n' ) \
        -:        -:  960:			buf[n++] = (char) c; \
        -:        -:  961:		if ( c == EOF && ferror( yyin ) ) \
        -:        -:  962:			YY_FATAL_ERROR( "input in flex scanner failed" ); \
        -:        -:  963:		result = n; \
        -:        -:  964:		} \
        -:        -:  965:	else \
        -:        -:  966:		{ \
        -:        -:  967:		errno=0; \
        -:        -:  968:		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
        -:        -:  969:			{ \
        -:        -:  970:			if( errno != EINTR) \
        -:        -:  971:				{ \
        -:        -:  972:				YY_FATAL_ERROR( "input in flex scanner failed" ); \
        -:        -:  973:				break; \
        -:        -:  974:				} \
        -:        -:  975:			errno=0; \
        -:        -:  976:			clearerr(yyin); \
        -:        -:  977:			} \
        -:        -:  978:		}\
        -:        -:  979:\
        -:        -:  980:
        -:        -:  981:#endif
        -:        -:  982:
        -:        -:  983:/* No semi-colon after return; correct usage is to write "yyterminate();" -
        -:        -:  984: * we don't want an extra ';' after the "return" because that will cause
        -:        -:  985: * some compilers to complain about unreachable statements.
        -:        -:  986: */
        -:        -:  987:#ifndef yyterminate
        -:        -:  988:#define yyterminate() return YY_NULL
        -:        -:  989:#endif
        -:        -:  990:
        -:        -:  991:/* Number of entries by which start-condition stack grows. */
        -:        -:  992:#ifndef YY_START_STACK_INCR
        -:        -:  993:#define YY_START_STACK_INCR 25
        -:        -:  994:#endif
        -:        -:  995:
        -:        -:  996:/* Report a fatal error. */
        -:        -:  997:#ifndef YY_FATAL_ERROR
        -:        -:  998:#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
        -:        -:  999:#endif
        -:        -: 1000:
        -:        -: 1001:/* end tables serialization structures and prototypes */
        -:        -: 1002:
        -:        -: 1003:/* Default declaration of generated scanner - a define so the user can
        -:        -: 1004: * easily add parameters.
        -:        -: 1005: */
        -:        -: 1006:#ifndef YY_DECL
        -:        -: 1007:#define YY_DECL_IS_OURS 1
        -:        -: 1008:
        -:        -: 1009:extern int glcpp_lex \
        -:        -: 1010:               (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
        -:        -: 1011:
        -:        -: 1012:#define YY_DECL int glcpp_lex \
        -:        -: 1013:               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
        -:        -: 1014:#endif /* !YY_DECL */
        -:        -: 1015:
        -:        -: 1016:/* Code executed at the beginning of each rule, after yytext and yyleng
        -:        -: 1017: * have been set up.
        -:        -: 1018: */
        -:        -: 1019:#ifndef YY_USER_ACTION
        -:        -: 1020:#define YY_USER_ACTION
        -:        -: 1021:#endif
        -:        -: 1022:
        -:        -: 1023:/* Code executed at the end of each rule. */
        -:        -: 1024:#ifndef YY_BREAK
        -:        -: 1025:#define YY_BREAK /*LINTED*/break;
        -:        -: 1026:#endif
        -:        -: 1027:
        -:        -: 1028:#define YY_RULE_SETUP \
        -:        -: 1029:	YY_USER_ACTION
        -:        -: 1030:
        -:        -: 1031:/** The main scanner function which does all the work.
        -:        -: 1032: */
      609:      629: 1033:YY_DECL
        -:        -: 1034:{
        -:        -: 1035:	yy_state_type yy_current_state;
        -:        -: 1036:	char *yy_cp, *yy_bp;
        -:        -: 1037:	int yy_act;
      609:      629: 1038:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 1039:
      609:      629: 1040:    yylval = yylval_param;
        -:        -: 1041:
      609:      629: 1042:    yylloc = yylloc_param;
        -:        -: 1043:
      609:      629: 1044:	if ( !yyg->yy_init )
        -:        -: 1045:		{
        2:        2: 1046:		yyg->yy_init = 1;
        -:        -: 1047:
        -:        -: 1048:#ifdef YY_USER_INIT
        2:        2: 1049:		YY_USER_INIT;
        -:        -: 1050:#endif
        -:        -: 1051:
        2:        2: 1052:		if ( ! yyg->yy_start )
        2:        2: 1053:			yyg->yy_start = 1;	/* first start state */
        -:        -: 1054:
        2:        2: 1055:		if ( ! yyin )
        2:        2: 1056:			yyin = stdin;
        -:        -: 1057:
        2:        2: 1058:		if ( ! yyout )
        2:        2: 1059:			yyout = stdout;
        -:        -: 1060:
        2:        2: 1061:		if ( ! YY_CURRENT_BUFFER ) {
    #####:    #####: 1062:			glcpp_ensure_buffer_stack (yyscanner);
    #####:    #####: 1063:			YY_CURRENT_BUFFER_LVALUE =
    #####:    #####: 1064:				glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
        -:        -: 1065:		}
        -:        -: 1066:
        2:        2: 1067:		glcpp__load_buffer_state(yyscanner );
        -:        -: 1068:		}
        -:        -: 1069:
        -:        -: 1070:	{
        -:        -: 1071:#line 199 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1072:
        -:        -: 1073:
        -:        -: 1074:	glcpp_parser_t *parser = yyextra;
        -:        -: 1075:
        -:        -: 1076:	/* When we lex a multi-line comment, we replace it (as
        -:        -: 1077:	 * specified) with a single space. But if the comment spanned
        -:        -: 1078:	 * multiple lines, then subsequent parsing stages will not
        -:        -: 1079:	 * count correct line numbers. To avoid this problem we keep
        -:        -: 1080:	 * track of all newlines that were commented out by a
        -:        -: 1081:	 * multi-line comment, and we emit a NEWLINE token for each at
        -:        -: 1082:	 * the next legal opportunity, (which is when the lexer would
        -:        -: 1083:	 * be emitting a NEWLINE token anyway).
        -:        -: 1084:	 */
        -:        -: 1085:	if (YY_START == NEWLINE_CATCHUP) {
        -:        -: 1086:		if (parser->commented_newlines)
        -:        -: 1087:			parser->commented_newlines--;
        -:        -: 1088:		if (parser->commented_newlines == 0)
        -:        -: 1089:			BEGIN INITIAL;
        -:        -: 1090:		RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -: 1091:	}
        -:        -: 1092:
        -:        -: 1093:	/* Set up the parser->skipping bit here before doing any lexing.
        -:        -: 1094:	 *
        -:        -: 1095:	 * This bit controls whether tokens are skipped, (as implemented by
        -:        -: 1096:         * RETURN_TOKEN), such as between "#if 0" and "#endif".
        -:        -: 1097:	 *
        -:        -: 1098:	 * The parser maintains a skip_stack indicating whether we should be
        -:        -: 1099:         * skipping, (and nested levels of #if/#ifdef/#ifndef/#endif) will
        -:        -: 1100:         * push and pop items from the stack.
        -:        -: 1101:	 *
        -:        -: 1102:	 * Here are the rules for determining whether we are skipping:
        -:        -: 1103:	 *
        -:        -: 1104:	 *	1. If the skip stack is NULL, we are outside of all #if blocks
        -:        -: 1105:	 *         and we are not skipping.
        -:        -: 1106:	 *
        -:        -: 1107:	 *	2. If the skip stack is non-NULL, the type of the top node in
        -:        -: 1108:	 *	   the stack determines whether to skip. A type of
        -:        -: 1109:	 *	   SKIP_NO_SKIP is used for blocks wheere we are emitting
        -:        -: 1110:	 *	   tokens, (such as between #if 1 and #endif, or after the
        -:        -: 1111:	 *	   #else of an #if 0, etc.).
        -:        -: 1112:	 *
        -:        -: 1113:	 *	3. The lexing_directive bit overrides the skip stack. This bit
        -:        -: 1114:	 *	   is set when we are actively lexing the expression for a
        -:        -: 1115:	 *	   pre-processor condition, (such as #if, #elif, or #else). In
        -:        -: 1116:	 *	   this case, even if otherwise skipping, we need to emit the
        -:        -: 1117:	 *	   tokens for this condition so that the parser can evaluate
        -:        -: 1118:	 *	   the expression. (For, #else, there's no expression, but we
        -:        -: 1119:	 *	   emit tokens so the parser can generate a nice error message
        -:        -: 1120:	 *	   if there are any tokens here).
        -:        -: 1121:	 */
        -:        -: 1122:	if (parser->skip_stack &&
        -:        -: 1123:	    parser->skip_stack->type != SKIP_NO_SKIP &&
        -:        -: 1124:	    ! parser->lexing_directive)
        -:        -: 1125:	{
        -:        -: 1126:		parser->skipping = 1;
        -:        -: 1127:	} else {
        -:        -: 1128:		parser->skipping = 0;
        -:        -: 1129:	}
        -:        -: 1130:
        -:        -: 1131:	/* Single-line comments */
        -:        -: 1132:#line 1133 "glsl/glcpp/glcpp-lex.c"
        -:        -: 1133:
        -:        -: 1134:	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
        -:        -: 1135:		{
     1020:     1062: 1136:		yy_cp = yyg->yy_c_buf_p;
        -:        -: 1137:
        -:        -: 1138:		/* Support of yytext. */
     1020:     1062: 1139:		*yy_cp = yyg->yy_hold_char;
        -:        -: 1140:
        -:        -: 1141:		/* yy_bp points to the position in yy_ch_buf of the start of
        -:        -: 1142:		 * the current run.
        -:        -: 1143:		 */
     1020:     1062: 1144:		yy_bp = yy_cp;
        -:        -: 1145:
     1020:     1062: 1146:		yy_current_state = yyg->yy_start;
        -:        -: 1147:yy_match:
        -:        -: 1148:		do
        -:        -: 1149:			{
     2798:     2900: 1150:			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
     2798:     2900: 1151:			if ( yy_accept[yy_current_state] )
        -:        -: 1152:				{
     1705:     1765: 1153:				yyg->yy_last_accepting_state = yy_current_state;
     1705:     1765: 1154:				yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 1155:				}
     7431:     7700: 1156:			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 1157:				{
     1835:     1900: 1158:				yy_current_state = (int) yy_def[yy_current_state];
     1835:     1900: 1159:				if ( yy_current_state >= 174 )
      809:      832: 1160:					yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 1161:				}
     2798:     2900: 1162:			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
     2798:     2900: 1163:			++yy_cp;
        -:        -: 1164:			}
     2798:     2900: 1165:		while ( yy_current_state != 173 );
     1020:     1062: 1166:		yy_cp = yyg->yy_last_accepting_cpos;
     1020:     1062: 1167:		yy_current_state = yyg->yy_last_accepting_state;
        -:        -: 1168:
        -:        -: 1169:yy_find_action:
     1022:     1064: 1170:		yy_act = yy_accept[yy_current_state];
        -:        -: 1171:
     1022:     1064: 1172:		YY_DO_BEFORE_ACTION;
        -:        -: 1173:
        -:        -: 1174:do_action:	/* This label is used only to access EOF actions. */
        -:        -: 1175:
     1026:     1068: 1176:		switch ( yy_act )
        -:        -: 1177:	{ /* beginning of action switch */
        -:        -: 1178:			case 0: /* must back up */
        -:        -: 1179:			/* undo the effects of YY_DO_BEFORE_ACTION */
    #####:    #####: 1180:			*yy_cp = yyg->yy_hold_char;
    #####:    #####: 1181:			yy_cp = yyg->yy_last_accepting_cpos;
    #####:    #####: 1182:			yy_current_state = yyg->yy_last_accepting_state;
    #####:    #####: 1183:			goto yy_find_action;
        -:        -: 1184:
        -:        -: 1185:case 1:
        1:        1: 1186:YY_RULE_SETUP
        -:        -: 1187:#line 259 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1188:{
        -:        -: 1189:}
        -:        -: 1190:	YY_BREAK
        -:        -: 1191:/* Multi-line comments */
        -:        -: 1192:case 2:
        -:        -: 1193:YY_RULE_SETUP
        -:        -: 1194:#line 263 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1195:{ yy_push_state(COMMENT, yyscanner); }
        -:        -: 1196:	YY_BREAK
        -:        -: 1197:case 3:
        -:        -: 1198:YY_RULE_SETUP
        -:        -: 1199:#line 264 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1200:
        -:        -: 1201:	YY_BREAK
        -:        -: 1202:case 4:
        -:        -: 1203:/* rule 4 can match eol */
        -:        -: 1204:YY_RULE_SETUP
        -:        -: 1205:#line 265 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1206:{ yylineno++; yycolumn = 0; parser->commented_newlines++; }
        -:        -: 1207:	YY_BREAK
        -:        -: 1208:case 5:
        -:        -: 1209:YY_RULE_SETUP
        -:        -: 1210:#line 266 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1211:
        -:        -: 1212:	YY_BREAK
        -:        -: 1213:case 6:
        -:        -: 1214:/* rule 6 can match eol */
        -:        -: 1215:YY_RULE_SETUP
        -:        -: 1216:#line 267 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1217:{ yylineno++; yycolumn = 0; parser->commented_newlines++; }
        -:        -: 1218:	YY_BREAK
        -:        -: 1219:case 7:
        -:        -: 1220:YY_RULE_SETUP
        -:        -: 1221:#line 268 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1222:{
        -:        -: 1223:	yy_pop_state(yyscanner);
        -:        -: 1224:	/* In the <HASH> start condition, we don't want any SPACE token. */
        -:        -: 1225:	if (yyextra->space_tokens && YY_START != HASH)
        -:        -: 1226:		RETURN_TOKEN (SPACE);
        -:        -: 1227:}
        -:        -: 1228:	YY_BREAK
        -:        -: 1229:case 8:
        -:        -: 1230:YY_RULE_SETUP
        -:        -: 1231:#line 275 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1232:{
        -:        -: 1233:
        -:        -: 1234:	/* If the '#' is the first non-whitespace, non-comment token on this
        -:        -: 1235:	 * line, then it introduces a directive, switch to the <HASH> start
        -:        -: 1236:	 * condition.
        -:        -: 1237:	 *
        -:        -: 1238:	 * Otherwise, this is just punctuation, so return the HASH_TOKEN
        -:        -: 1239:         * token. */
        -:        -: 1240:	if (parser->first_non_space_token_this_line) {
        -:        -: 1241:		BEGIN HASH;
        -:        -: 1242:	}
        -:        -: 1243:
        -:        -: 1244:	RETURN_TOKEN_NEVER_SKIP (HASH_TOKEN);
        -:        -: 1245:}
        -:        -: 1246:	YY_BREAK
        -:        -: 1247:case 9:
        -:        -: 1248:YY_RULE_SETUP
        -:        -: 1249:#line 290 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1250:{
        -:        -: 1251:	BEGIN INITIAL;
        -:        -: 1252:	yyextra->space_tokens = 0;
        -:        -: 1253:	yyextra->lexing_version_directive = 1;
        -:        -: 1254:	RETURN_STRING_TOKEN (VERSION_TOKEN);
        -:        -: 1255:}
        -:        -: 1256:	YY_BREAK
        -:        -: 1257:/* Swallow empty #pragma directives, (to avoid confusing the
        -:        -: 1258:	 * downstream compiler).
        -:        -: 1259:	 *
        -:        -: 1260:	 * Note: We use a simple regular expression for the lookahead
        -:        -: 1261:	 * here. Specifically, we cannot use the complete {NEWLINE} expression
        -:        -: 1262:	 * since it uses alternation and we've found that there's a flex bug
        -:        -: 1263:	 * where using alternation in the lookahead portion of a pattern
        -:        -: 1264:	 * triggers a buffer overrun. */
        -:        -: 1265:case 10:
        -:        -: 1266:/* rule 10 can match eol */
        -:        -: 1267:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1268:YY_LINENO_REWIND_TO(yy_cp - 1);
        -:        -: 1269:yyg->yy_c_buf_p = yy_cp -= 1;
        -:        -: 1270:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1271:YY_RULE_SETUP
        -:        -: 1272:#line 305 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1273:{
        -:        -: 1274:	BEGIN INITIAL;
        -:        -: 1275:}
        -:        -: 1276:	YY_BREAK
        -:        -: 1277:/* glcpp doesn't handle #extension, #version, or #pragma directives.
        -:        -: 1278:	 * Simply pass them through to the main compiler's lexer/parser. */
        -:        -: 1279:case 11:
        -:        -: 1280:YY_RULE_SETUP
        -:        -: 1281:#line 311 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1282:{
        -:        -: 1283:	BEGIN INITIAL;
        -:        -: 1284:	RETURN_STRING_TOKEN (PRAGMA);
        -:        -: 1285:}
        -:        -: 1286:	YY_BREAK
        -:        -: 1287:case 12:
        -:        -: 1288:YY_RULE_SETUP
        -:        -: 1289:#line 316 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1290:{
        -:        -: 1291:	BEGIN INITIAL;
        -:        -: 1292:	RETURN_TOKEN (LINE);
        -:        -: 1293:}
        -:        -: 1294:	YY_BREAK
        -:        -: 1295:case 13:
        -:        -: 1296:/* rule 13 can match eol */
        -:        -: 1297:YY_RULE_SETUP
        -:        -: 1298:#line 321 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1299:{
        -:        -: 1300:	BEGIN INITIAL;
        -:        -: 1301:	yyextra->space_tokens = 0;
        -:        -: 1302:	yylineno++;
        -:        -: 1303:	yycolumn = 0;
        -:        -: 1304:	RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -: 1305:}
        -:        -: 1306:	YY_BREAK
        -:        -: 1307:/* For the pre-processor directives, we return these tokens
        -:        -: 1308:	 * even when we are otherwise skipping. */
        -:        -: 1309:case 14:
        -:        -: 1310:YY_RULE_SETUP
        -:        -: 1311:#line 331 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1312:{
        -:        -: 1313:	BEGIN INITIAL;
        -:        -: 1314:	yyextra->lexing_directive = 1;
        -:        -: 1315:	yyextra->space_tokens = 0;
        -:        -: 1316:	RETURN_TOKEN_NEVER_SKIP (IFDEF);
        -:        -: 1317:}
        -:        -: 1318:	YY_BREAK
        -:        -: 1319:case 15:
        -:        -: 1320:YY_RULE_SETUP
        -:        -: 1321:#line 338 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1322:{
        -:        -: 1323:	BEGIN INITIAL;
        -:        -: 1324:	yyextra->lexing_directive = 1;
        -:        -: 1325:	yyextra->space_tokens = 0;
        -:        -: 1326:	RETURN_TOKEN_NEVER_SKIP (IFNDEF);
        -:        -: 1327:}
        -:        -: 1328:	YY_BREAK
        -:        -: 1329:case 16:
        -:        -: 1330:/* rule 16 can match eol */
        -:        -: 1331:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1332:YY_LINENO_REWIND_TO(yy_bp + 2);
        -:        -: 1333:yyg->yy_c_buf_p = yy_cp = yy_bp + 2;
        -:        -: 1334:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1335:YY_RULE_SETUP
        -:        -: 1336:#line 345 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1337:{
        -:        -: 1338:	BEGIN INITIAL;
        -:        -: 1339:	yyextra->lexing_directive = 1;
        -:        -: 1340:	yyextra->space_tokens = 0;
        -:        -: 1341:	RETURN_TOKEN_NEVER_SKIP (IF);
        -:        -: 1342:}
        -:        -: 1343:	YY_BREAK
        -:        -: 1344:case 17:
        -:        -: 1345:/* rule 17 can match eol */
        -:        -: 1346:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1347:YY_LINENO_REWIND_TO(yy_bp + 4);
        -:        -: 1348:yyg->yy_c_buf_p = yy_cp = yy_bp + 4;
        -:        -: 1349:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1350:YY_RULE_SETUP
        -:        -: 1351:#line 352 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1352:{
        -:        -: 1353:	BEGIN INITIAL;
        -:        -: 1354:	yyextra->lexing_directive = 1;
        -:        -: 1355:	yyextra->space_tokens = 0;
        -:        -: 1356:	RETURN_TOKEN_NEVER_SKIP (ELIF);
        -:        -: 1357:}
        -:        -: 1358:	YY_BREAK
        -:        -: 1359:case 18:
        -:        -: 1360:YY_RULE_SETUP
        -:        -: 1361:#line 359 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1362:{
        -:        -: 1363:	BEGIN INITIAL;
        -:        -: 1364:	yyextra->space_tokens = 0;
        -:        -: 1365:	RETURN_TOKEN_NEVER_SKIP (ELSE);
        -:        -: 1366:}
        -:        -: 1367:	YY_BREAK
        -:        -: 1368:case 19:
        -:        -: 1369:YY_RULE_SETUP
        -:        -: 1370:#line 365 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1371:{
        -:        -: 1372:	BEGIN INITIAL;
        -:        -: 1373:	yyextra->space_tokens = 0;
        -:        -: 1374:	RETURN_TOKEN_NEVER_SKIP (ENDIF);
        -:        -: 1375:}
        -:        -: 1376:	YY_BREAK
        -:        -: 1377:case 20:
        -:        -: 1378:YY_RULE_SETUP
        -:        -: 1379:#line 371 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1380:{
        -:        -: 1381:	BEGIN INITIAL;
        -:        -: 1382:	RETURN_STRING_TOKEN (ERROR_TOKEN);
        -:        -: 1383:}
        -:        -: 1384:	YY_BREAK
        -:        -: 1385:/* After we see a "#define" we enter the <DEFINE> start state
        -:        -: 1386:	 * for the lexer. Within <DEFINE> we are looking for the first
        -:        -: 1387:	 * identifier and specifically checking whether the identifier
        -:        -: 1388:	 * is followed by a '(' or not, (to lex either a
        -:        -: 1389:	 * FUNC_IDENTIFIER or an OBJ_IDENITIFIER token).
        -:        -: 1390:	 *
        -:        -: 1391:	 * While in the <DEFINE> state we also need to explicitly
        -:        -: 1392:	 * handle a few other things that may appear before the
        -:        -: 1393:	 * identifier:
        -:        -: 1394:	 * 
        -:        -: 1395:	 * 	* Comments, (handled above with the main support for
        -:        -: 1396:	 * 	  comments).
        -:        -: 1397:	 *
        -:        -: 1398:	 *	* Whitespace (simply ignored)
        -:        -: 1399:	 *
        -:        -: 1400:	 *	* Anything else, (not an identifier, not a comment,
        -:        -: 1401:	 *	  and not whitespace). This will generate an error.
        -:        -: 1402:	 */
        -:        -: 1403:case 21:
        -:        -: 1404:YY_RULE_SETUP
        -:        -: 1405:#line 394 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1406:{
        -:        -: 1407:	if (! parser->skipping) {
        -:        -: 1408:		BEGIN DEFINE;
        -:        -: 1409:		yyextra->space_tokens = 0;
        -:        -: 1410:		RETURN_TOKEN (DEFINE_TOKEN);
        -:        -: 1411:	}
        -:        -: 1412:}
        -:        -: 1413:	YY_BREAK
        -:        -: 1414:case 22:
        -:        -: 1415:YY_RULE_SETUP
        -:        -: 1416:#line 402 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1417:{
        -:        -: 1418:	BEGIN INITIAL;
        -:        -: 1419:	yyextra->space_tokens = 0;
        -:        -: 1420:	RETURN_TOKEN (UNDEF);
        -:        -: 1421:}
        -:        -: 1422:	YY_BREAK
        -:        -: 1423:case 23:
        -:        -: 1424:YY_RULE_SETUP
        -:        -: 1425:#line 408 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1426:{
        -:        -: 1427:	/* Nothing to do here. Importantly, don't leave the <HASH>
        -:        -: 1428:	 * start condition, since it's legal to have space between the
        -:        -: 1429:	 * '#' and the directive.. */
        -:        -: 1430:}
        -:        -: 1431:	YY_BREAK
        -:        -: 1432:/* This will catch any non-directive garbage after a HASH */
        -:        -: 1433:case 24:
        -:        -: 1434:YY_RULE_SETUP
        -:        -: 1435:#line 415 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1436:{
        -:        -: 1437:	BEGIN INITIAL;
        -:        -: 1438:	RETURN_TOKEN (GARBAGE);
        -:        -: 1439:}
        -:        -: 1440:	YY_BREAK
        -:        -: 1441:/* An identifier immediately followed by '(' */
        -:        -: 1442:case 25:
        -:        -: 1443:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1444:yyg->yy_c_buf_p = yy_cp -= 1;
        -:        -: 1445:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1446:YY_RULE_SETUP
        -:        -: 1447:#line 421 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1448:{
        -:        -: 1449:	BEGIN INITIAL;
        -:        -: 1450:	RETURN_STRING_TOKEN (FUNC_IDENTIFIER);
        -:        -: 1451:}
        -:        -: 1452:	YY_BREAK
        -:        -: 1453:/* An identifier not immediately followed by '(' */
        -:        -: 1454:case 26:
        -:        -: 1455:YY_RULE_SETUP
        -:        -: 1456:#line 427 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1457:{
        -:        -: 1458:	BEGIN INITIAL;
        -:        -: 1459:	RETURN_STRING_TOKEN (OBJ_IDENTIFIER);
        -:        -: 1460:}
        -:        -: 1461:	YY_BREAK
        -:        -: 1462:/* Whitespace */
        -:        -: 1463:case 27:
        -:        -: 1464:YY_RULE_SETUP
        -:        -: 1465:#line 433 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1466:{
        -:        -: 1467:	/* Just ignore it. Nothing to do here. */
        -:        -: 1468:}
        -:        -: 1469:	YY_BREAK
        -:        -: 1470:/* '/' not followed by '*', so not a comment. This is an error. */
        -:        -: 1471:case 28:
        -:        -: 1472:/* rule 28 can match eol */
        -:        -: 1473:YY_RULE_SETUP
        -:        -: 1474:#line 438 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1475:{
        -:        -: 1476:	BEGIN INITIAL;
        -:        -: 1477:	glcpp_error(yylloc, yyextra, "#define followed by a non-identifier: %s", yytext);
        -:        -: 1478:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -: 1479:}
        -:        -: 1480:	YY_BREAK
        -:        -: 1481:/* A character that can't start an identifier, comment, or
        -:        -: 1482:	 * space. This is an error. */
        -:        -: 1483:case 29:
        -:        -: 1484:YY_RULE_SETUP
        -:        -: 1485:#line 446 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1486:{
        -:        -: 1487:	BEGIN INITIAL;
        -:        -: 1488:	glcpp_error(yylloc, yyextra, "#define followed by a non-identifier: %s", yytext);
        -:        -: 1489:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -: 1490:}
        -:        -: 1491:	YY_BREAK
        -:        -: 1492:case 30:
        -:        -: 1493:YY_RULE_SETUP
        -:        -: 1494:#line 452 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1495:{
        -:        -: 1496:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -: 1497:}
        -:        -: 1498:	YY_BREAK
        -:        -: 1499:case 31:
        -:        -: 1500:YY_RULE_SETUP
        -:        -: 1501:#line 456 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1502:{
        -:        -: 1503:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -: 1504:}
        -:        -: 1505:	YY_BREAK
        -:        -: 1506:case 32:
        -:        -: 1507:YY_RULE_SETUP
        -:        -: 1508:#line 460 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1509:{
        -:        -: 1510:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -: 1511:}
        -:        -: 1512:	YY_BREAK
        -:        -: 1513:case 33:
        -:        -: 1514:YY_RULE_SETUP
        -:        -: 1515:#line 464 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1516:{
        -:        -: 1517:	RETURN_TOKEN (LEFT_SHIFT);
        -:        -: 1518:}
        -:        -: 1519:	YY_BREAK
        -:        -: 1520:case 34:
        -:        -: 1521:YY_RULE_SETUP
        -:        -: 1522:#line 468 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1523:{
        -:        -: 1524:	RETURN_TOKEN (RIGHT_SHIFT);
        -:        -: 1525:}
        -:        -: 1526:	YY_BREAK
        -:        -: 1527:case 35:
        -:        -: 1528:YY_RULE_SETUP
        -:        -: 1529:#line 472 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1530:{
        -:        -: 1531:	RETURN_TOKEN (LESS_OR_EQUAL);
        -:        -: 1532:}
        -:        -: 1533:	YY_BREAK
        -:        -: 1534:case 36:
        -:        -: 1535:YY_RULE_SETUP
        -:        -: 1536:#line 476 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1537:{
        -:        -: 1538:	RETURN_TOKEN (GREATER_OR_EQUAL);
        -:        -: 1539:}
        -:        -: 1540:	YY_BREAK
        -:        -: 1541:case 37:
        -:        -: 1542:YY_RULE_SETUP
        -:        -: 1543:#line 480 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1544:{
        -:        -: 1545:	RETURN_TOKEN (EQUAL);
        -:        -: 1546:}
        -:        -: 1547:	YY_BREAK
        -:        -: 1548:case 38:
        -:        -: 1549:YY_RULE_SETUP
        -:        -: 1550:#line 484 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1551:{
        -:        -: 1552:	RETURN_TOKEN (NOT_EQUAL);
        -:        -: 1553:}
        -:        -: 1554:	YY_BREAK
        -:        -: 1555:case 39:
        -:        -: 1556:YY_RULE_SETUP
        -:        -: 1557:#line 488 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1558:{
        -:        -: 1559:	RETURN_TOKEN (AND);
        -:        -: 1560:}
        -:        -: 1561:	YY_BREAK
        -:        -: 1562:case 40:
        -:        -: 1563:YY_RULE_SETUP
        -:        -: 1564:#line 492 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1565:{
        -:        -: 1566:	RETURN_TOKEN (OR);
        -:        -: 1567:}
        -:        -: 1568:	YY_BREAK
        -:        -: 1569:case 41:
        -:        -: 1570:YY_RULE_SETUP
        -:        -: 1571:#line 496 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1572:{
        -:        -: 1573:	RETURN_TOKEN (PLUS_PLUS);
        -:        -: 1574:}
        -:        -: 1575:	YY_BREAK
        -:        -: 1576:case 42:
        -:        -: 1577:YY_RULE_SETUP
        -:        -: 1578:#line 500 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1579:{
        -:        -: 1580:	RETURN_TOKEN (MINUS_MINUS);
        -:        -: 1581:}
        -:        -: 1582:	YY_BREAK
        -:        -: 1583:case 43:
        -:        -: 1584:YY_RULE_SETUP
        -:        -: 1585:#line 504 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1586:{
        -:        -: 1587:	if (! parser->skipping) {
        -:        -: 1588:		if (parser->is_gles)
        -:        -: 1589:			glcpp_error(yylloc, yyextra, "Token pasting (##) is illegal in GLES");
        -:        -: 1590:		RETURN_TOKEN (PASTE);
        -:        -: 1591:	}
        -:        -: 1592:}
        -:        -: 1593:	YY_BREAK
        -:        -: 1594:case 44:
        -:        -: 1595:YY_RULE_SETUP
        -:        -: 1596:#line 512 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1597:{
        -:        -: 1598:	RETURN_TOKEN (DEFINED);
        -:        -: 1599:}
        -:        -: 1600:	YY_BREAK
        -:        -: 1601:case 45:
        -:        -: 1602:YY_RULE_SETUP
        -:        -: 1603:#line 516 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1604:{
        -:        -: 1605:	RETURN_STRING_TOKEN (IDENTIFIER);
        -:        -: 1606:}
        -:        -: 1607:	YY_BREAK
        -:        -: 1608:case 46:
        -:        -: 1609:YY_RULE_SETUP
        -:        -: 1610:#line 520 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1611:{
        -:        -: 1612:	RETURN_STRING_TOKEN (OTHER);
        -:        -: 1613:}
        -:        -: 1614:	YY_BREAK
        -:        -: 1615:case 47:
        -:        -: 1616:YY_RULE_SETUP
        -:        -: 1617:#line 524 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1618:{
        -:        -: 1619:	RETURN_TOKEN (yytext[0]);
        -:        -: 1620:}
        -:        -: 1621:	YY_BREAK
        -:        -: 1622:case 48:
        -:        -: 1623:YY_RULE_SETUP
        -:        -: 1624:#line 528 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1625:{
        -:        -: 1626:	RETURN_STRING_TOKEN (OTHER);
        -:        -: 1627:}
        -:        -: 1628:	YY_BREAK
        -:        -: 1629:case 49:
        -:        -: 1630:YY_RULE_SETUP
        -:        -: 1631:#line 532 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1632:{
        -:        -: 1633:	if (yyextra->space_tokens) {
        -:        -: 1634:		RETURN_TOKEN (SPACE);
        -:        -: 1635:	}
        -:        -: 1636:}
        -:        -: 1637:	YY_BREAK
        -:        -: 1638:/* We preserve all newlines, even between #if 0..#endif, so no
        -:        -: 1639:	skipping.. */
        -:        -: 1640:case 50:
        -:        -: 1641:/* rule 50 can match eol */
        -:        -: 1642:YY_RULE_SETUP
        -:        -: 1643:#line 540 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1644:{
        -:        -: 1645:	if (parser->commented_newlines) {
        -:        -: 1646:		BEGIN NEWLINE_CATCHUP;
        -:        -: 1647:	} else {
        -:        -: 1648:		BEGIN INITIAL;
        -:        -: 1649:	}
        -:        -: 1650:	yyextra->space_tokens = 1;
        -:        -: 1651:	yyextra->lexing_directive = 0;
        -:        -: 1652:	yyextra->lexing_version_directive = 0;
        -:        -: 1653:	yylineno++;
        -:        -: 1654:	yycolumn = 0;
        -:        -: 1655:	RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -: 1656:}
        -:        -: 1657:	YY_BREAK
        -:        -: 1658:case YY_STATE_EOF(INITIAL):
        -:        -: 1659:case YY_STATE_EOF(COMMENT):
        -:        -: 1660:case YY_STATE_EOF(DEFINE):
        -:        -: 1661:case YY_STATE_EOF(HASH):
        -:        -: 1662:#line 554 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1663:{
        -:        -: 1664:	if (YY_START == COMMENT)
        -:        -: 1665:		glcpp_error(yylloc, yyextra, "Unterminated comment");
        -:        -: 1666:	BEGIN DONE; /* Don't keep matching this rule forever. */
        -:        -: 1667:	yyextra->lexing_directive = 0;
        -:        -: 1668:	yyextra->lexing_version_directive = 0;
        -:        -: 1669:	if (! parser->last_token_was_newline)
        -:        -: 1670:		RETURN_TOKEN (NEWLINE);
        -:        -: 1671:}
        -:        -: 1672:	YY_BREAK
        -:        -: 1673:/* This is a catch-all to avoid the annoying default flex action which
        -:        -: 1674:	 * matches any character and prints it. If any input ever matches this
        -:        -: 1675:	 * rule, then we have made a mistake above and need to fix one or more
        -:        -: 1676:	 * of the preceding patterns to match that input. */
        -:        -: 1677:case 51:
        -:        -: 1678:YY_RULE_SETUP
        -:        -: 1679:#line 569 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1680:{
        -:        -: 1681:	glcpp_error(yylloc, yyextra, "Internal compiler error: Unexpected character: %s", yytext);
        -:        -: 1682:
        -:        -: 1683:	/* We don't actually use the UNREACHABLE start condition. We
        -:        -: 1684:	only have this block here so that we can pretend to call some
        -:        -: 1685:	generated functions, (to avoid "defined but not used"
        -:        -: 1686:	warnings. */
        -:        -: 1687:        if (YY_START == UNREACHABLE) {
        -:        -: 1688:		unput('.');
        -:        -: 1689:		yy_top_state(yyextra);
        -:        -: 1690:	}
        -:        -: 1691:}
        -:        -: 1692:	YY_BREAK
        -:        -: 1693:case 52:
        -:        -: 1694:YY_RULE_SETUP
        -:        -: 1695:#line 582 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 1696:YY_FATAL_ERROR( "flex scanner jammed" );
        -:        -: 1697:	YY_BREAK
        -:        -: 1698:#line 1699 "glsl/glcpp/glcpp-lex.c"
        -:        -: 1699:case YY_STATE_EOF(DONE):
        -:        -: 1700:case YY_STATE_EOF(NEWLINE_CATCHUP):
        -:        -: 1701:case YY_STATE_EOF(UNREACHABLE):
        2:        2: 1702:	yyterminate();
        -:        -: 1703:
        -:        -: 1704:	case YY_END_OF_BUFFER:
        -:        -: 1705:		{
        -:        -: 1706:		/* Amount of text matched not including the EOB char. */
        6:        6: 1707:		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
        -:        -: 1708:
        -:        -: 1709:		/* Undo the effects of YY_DO_BEFORE_ACTION. */
        6:        6: 1710:		*yy_cp = yyg->yy_hold_char;
        -:        -: 1711:		YY_RESTORE_YY_MORE_OFFSET
        -:        -: 1712:
        6:        6: 1713:		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
        -:        -: 1714:			{
        -:        -: 1715:			/* We're scanning a new file or input source.  It's
        -:        -: 1716:			 * possible that this happened because the user
        -:        -: 1717:			 * just pointed yyin at a new source and called
        -:        -: 1718:			 * glcpp_lex().  If so, then we have to assure
        -:        -: 1719:			 * consistency between YY_CURRENT_BUFFER and our
        -:        -: 1720:			 * globals.  Here is the right place to do so, because
        -:        -: 1721:			 * this is the first action (other than possibly a
        -:        -: 1722:			 * back-up) that will match for the new input source.
        -:        -: 1723:			 */
        2:        2: 1724:			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        2:        2: 1725:			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
        2:        2: 1726:			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
        -:        -: 1727:			}
        -:        -: 1728:
        -:        -: 1729:		/* Note that here we test for yy_c_buf_p "<=" to the position
        -:        -: 1730:		 * of the first EOB in the buffer, since yy_c_buf_p will
        -:        -: 1731:		 * already have been incremented past the NUL character
        -:        -: 1732:		 * (since all states make transitions on EOB to the
        -:        -: 1733:		 * end-of-buffer state).  Contrast this with the test
        -:        -: 1734:		 * in input().
        -:        -: 1735:		 */
        6:        6: 1736:		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
        -:        -: 1737:			{ /* This was really a NUL. */
        -:        -: 1738:			yy_state_type yy_next_state;
        -:        -: 1739:
    #####:    #####: 1740:			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
        -:        -: 1741:
    #####:    #####: 1742:			yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 1743:
        -:        -: 1744:			/* Okay, we're now positioned to make the NUL
        -:        -: 1745:			 * transition.  We couldn't have
        -:        -: 1746:			 * yy_get_previous_state() go ahead and do it
        -:        -: 1747:			 * for us because it doesn't know how to deal
        -:        -: 1748:			 * with the possibility of jamming (and we don't
        -:        -: 1749:			 * want to build jamming into it because then it
        -:        -: 1750:			 * will run more slowly).
        -:        -: 1751:			 */
        -:        -: 1752:
    #####:    #####: 1753:			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
        -:        -: 1754:
    #####:    #####: 1755:			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
        -:        -: 1756:
    #####:    #####: 1757:			if ( yy_next_state )
        -:        -: 1758:				{
        -:        -: 1759:				/* Consume the NUL. */
    #####:    #####: 1760:				yy_cp = ++yyg->yy_c_buf_p;
    #####:    #####: 1761:				yy_current_state = yy_next_state;
    #####:    #####: 1762:				goto yy_match;
        -:        -: 1763:				}
        -:        -: 1764:
        -:        -: 1765:			else
        -:        -: 1766:				{
    #####:    #####: 1767:				yy_cp = yyg->yy_last_accepting_cpos;
    #####:    #####: 1768:				yy_current_state = yyg->yy_last_accepting_state;
    #####:    #####: 1769:				goto yy_find_action;
        -:        -: 1770:				}
        -:        -: 1771:			}
        -:        -: 1772:
        6:        6: 1773:		else switch ( yy_get_next_buffer( yyscanner ) )
        -:        -: 1774:			{
        -:        -: 1775:			case EOB_ACT_END_OF_FILE:
        -:        -: 1776:				{
        4:        4: 1777:				yyg->yy_did_buffer_switch_on_eof = 0;
        -:        -: 1778:
        -:        -: 1779:				if ( glcpp_wrap(yyscanner ) )
        -:        -: 1780:					{
        -:        -: 1781:					/* Note: because we've taken care in
        -:        -: 1782:					 * yy_get_next_buffer() to have set up
        -:        -: 1783:					 * yytext, we can now set up
        -:        -: 1784:					 * yy_c_buf_p so that if some total
        -:        -: 1785:					 * hoser (like flex itself) wants to
        -:        -: 1786:					 * call the scanner after we return the
        -:        -: 1787:					 * YY_NULL, it'll still work - another
        -:        -: 1788:					 * YY_NULL will get returned.
        -:        -: 1789:					 */
        4:        4: 1790:					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
        -:        -: 1791:
        4:        4: 1792:					yy_act = YY_STATE_EOF(YY_START);
        4:        4: 1793:					goto do_action;
        -:        -: 1794:					}
        -:        -: 1795:
        -:        -: 1796:				else
        -:        -: 1797:					{
        -:        -: 1798:					if ( ! yyg->yy_did_buffer_switch_on_eof )
        -:        -: 1799:						YY_NEW_FILE;
        -:        -: 1800:					}
        -:        -: 1801:				break;
        -:        -: 1802:				}
        -:        -: 1803:
        -:        -: 1804:			case EOB_ACT_CONTINUE_SCAN:
    #####:    #####: 1805:				yyg->yy_c_buf_p =
    #####:    #####: 1806:					yyg->yytext_ptr + yy_amount_of_matched_text;
        -:        -: 1807:
    #####:    #####: 1808:				yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 1809:
    #####:    #####: 1810:				yy_cp = yyg->yy_c_buf_p;
    #####:    #####: 1811:				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
    #####:    #####: 1812:				goto yy_match;
        -:        -: 1813:
        -:        -: 1814:			case EOB_ACT_LAST_MATCH:
        2:        2: 1815:				yyg->yy_c_buf_p =
        2:        2: 1816:				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
        -:        -: 1817:
        2:        2: 1818:				yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 1819:
        2:        2: 1820:				yy_cp = yyg->yy_c_buf_p;
        2:        2: 1821:				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
        2:        2: 1822:				goto yy_find_action;
        -:        -: 1823:			}
    #####:    #####: 1824:		break;
        -:        -: 1825:		}
        -:        -: 1826:
        -:        -: 1827:	default:
    #####:    #####: 1828:		YY_FATAL_ERROR(
        -:        -: 1829:			"fatal flex scanner internal error--no action found" );
        -:        -: 1830:	} /* end of action switch */
      411:      433: 1831:		} /* end of scanning one token */
        -:        -: 1832:	} /* end of user's declarations */
        -:        -: 1833:} /* end of glcpp_lex */
        -:        -: 1834:
        -:        -: 1835:/* yy_get_next_buffer - try to read in a new buffer
        -:        -: 1836: *
        -:        -: 1837: * Returns a code representing an action:
        -:        -: 1838: *	EOB_ACT_LAST_MATCH -
        -:        -: 1839: *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
        -:        -: 1840: *	EOB_ACT_END_OF_FILE - end of file
        -:        -: 1841: */
        6:        6: 1842:static int yy_get_next_buffer (yyscan_t yyscanner)
        -:        -: 1843:{
        6:        6: 1844:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        6:        6: 1845:	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
        6:        6: 1846:	char *source = yyg->yytext_ptr;
        -:        -: 1847:	yy_size_t number_to_move, i;
        -:        -: 1848:	int ret_val;
        -:        -: 1849:
        6:        6: 1850:	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
    #####:    #####: 1851:		YY_FATAL_ERROR(
        -:        -: 1852:		"fatal flex scanner internal error--end of buffer missed" );
        -:        -: 1853:
        6:        6: 1854:	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
        -:        -: 1855:		{ /* Don't try to fill the buffer, so this is an EOF. */
        6:        6: 1856:		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
        -:        -: 1857:			{
        -:        -: 1858:			/* We matched a single character, the EOB, so
        -:        -: 1859:			 * treat this as a final EOF.
        -:        -: 1860:			 */
        4:        4: 1861:			return EOB_ACT_END_OF_FILE;
        -:        -: 1862:			}
        -:        -: 1863:
        -:        -: 1864:		else
        -:        -: 1865:			{
        -:        -: 1866:			/* We matched some text prior to the EOB, first
        -:        -: 1867:			 * process it.
        -:        -: 1868:			 */
        2:        2: 1869:			return EOB_ACT_LAST_MATCH;
        -:        -: 1870:			}
        -:        -: 1871:		}
        -:        -: 1872:
        -:        -: 1873:	/* Try to read more data. */
        -:        -: 1874:
        -:        -: 1875:	/* First move last chars to start of buffer. */
    #####:    #####: 1876:	number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
        -:        -: 1877:
    #####:    #####: 1878:	for ( i = 0; i < number_to_move; ++i )
    #####:    #####: 1879:		*(dest++) = *(source++);
        -:        -: 1880:
    #####:    #####: 1881:	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
        -:        -: 1882:		/* don't do the read, it's not guaranteed to return an EOF,
        -:        -: 1883:		 * just force an EOF
        -:        -: 1884:		 */
    #####:    #####: 1885:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
        -:        -: 1886:
        -:        -: 1887:	else
        -:        -: 1888:		{
    #####:    #####: 1889:			yy_size_t num_to_read =
    #####:    #####: 1890:			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
        -:        -: 1891:
    #####:    #####: 1892:		while ( num_to_read <= 0 )
        -:        -: 1893:			{ /* Not enough room in the buffer - grow it. */
        -:        -: 1894:
        -:        -: 1895:			/* just a shorter name for the current buffer */
    #####:    #####: 1896:			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
        -:        -: 1897:
    #####:    #####: 1898:			int yy_c_buf_p_offset =
    #####:    #####: 1899:				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
        -:        -: 1900:
    #####:    #####: 1901:			if ( b->yy_is_our_buffer )
        -:        -: 1902:				{
    #####:    #####: 1903:				yy_size_t new_size = b->yy_buf_size * 2;
        -:        -: 1904:
    #####:    #####: 1905:				if ( new_size <= 0 )
    #####:    #####: 1906:					b->yy_buf_size += b->yy_buf_size / 8;
        -:        -: 1907:				else
    #####:    #####: 1908:					b->yy_buf_size *= 2;
        -:        -: 1909:
    #####:    #####: 1910:				b->yy_ch_buf = (char *)
        -:        -: 1911:					/* Include room in for 2 EOB chars. */
    #####:    #####: 1912:					glcpp_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
        -:        -: 1913:				}
        -:        -: 1914:			else
        -:        -: 1915:				/* Can't grow it, we don't own it. */
    #####:    #####: 1916:				b->yy_ch_buf = 0;
        -:        -: 1917:
    #####:    #####: 1918:			if ( ! b->yy_ch_buf )
    #####:    #####: 1919:				YY_FATAL_ERROR(
        -:        -: 1920:				"fatal error - scanner input buffer overflow" );
        -:        -: 1921:
    #####:    #####: 1922:			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
        -:        -: 1923:
    #####:    #####: 1924:			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
        -:        -: 1925:						number_to_move - 1;
        -:        -: 1926:
        -:        -: 1927:			}
        -:        -: 1928:
    #####:    #####: 1929:		if ( num_to_read > YY_READ_BUF_SIZE )
    #####:    #####: 1930:			num_to_read = YY_READ_BUF_SIZE;
        -:        -: 1931:
        -:        -: 1932:		/* Read in more data. */
    #####:    #####: 1933:		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
        -:        -: 1934:			yyg->yy_n_chars, num_to_read );
        -:        -: 1935:
    #####:    #####: 1936:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 1937:		}
        -:        -: 1938:
    #####:    #####: 1939:	if ( yyg->yy_n_chars == 0 )
        -:        -: 1940:		{
    #####:    #####: 1941:		if ( number_to_move == YY_MORE_ADJ )
        -:        -: 1942:			{
    #####:    #####: 1943:			ret_val = EOB_ACT_END_OF_FILE;
    #####:    #####: 1944:			glcpp_restart(yyin  ,yyscanner);
        -:        -: 1945:			}
        -:        -: 1946:
        -:        -: 1947:		else
        -:        -: 1948:			{
    #####:    #####: 1949:			ret_val = EOB_ACT_LAST_MATCH;
    #####:    #####: 1950:			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
        -:        -: 1951:				YY_BUFFER_EOF_PENDING;
        -:        -: 1952:			}
        -:        -: 1953:		}
        -:        -: 1954:
        -:        -: 1955:	else
    #####:    #####: 1956:		ret_val = EOB_ACT_CONTINUE_SCAN;
        -:        -: 1957:
    #####:    #####: 1958:	if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
        -:        -: 1959:		/* Extend the array by 50%, plus the number we really need. */
    #####:    #####: 1960:		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
    #####:    #####: 1961:		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) glcpp_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
    #####:    #####: 1962:		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    #####:    #####: 1963:			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
        -:        -: 1964:	}
        -:        -: 1965:
    #####:    #####: 1966:	yyg->yy_n_chars += number_to_move;
    #####:    #####: 1967:	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
    #####:    #####: 1968:	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 1969:
    #####:    #####: 1970:	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
        -:        -: 1971:
    #####:    #####: 1972:	return ret_val;
        -:        -: 1973:}
        -:        -: 1974:
        -:        -: 1975:/* yy_get_previous_state - get the state just before the EOB char was reached */
        -:        -: 1976:
        2:        2: 1977:    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
        -:        -: 1978:{
        -:        -: 1979:	yy_state_type yy_current_state;
        -:        -: 1980:	char *yy_cp;
        2:        2: 1981:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 1982:
        2:        2: 1983:	yy_current_state = yyg->yy_start;
        -:        -: 1984:
        4:        4: 1985:	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
        -:        -: 1986:		{
        2:        2: 1987:		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
        2:        2: 1988:		if ( yy_accept[yy_current_state] )
        -:        -: 1989:			{
    #####:    #####: 1990:			yyg->yy_last_accepting_state = yy_current_state;
    #####:    #####: 1991:			yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 1992:			}
        4:        4: 1993:		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 1994:			{
    #####:    #####: 1995:			yy_current_state = (int) yy_def[yy_current_state];
    #####:    #####: 1996:			if ( yy_current_state >= 174 )
    #####:    #####: 1997:				yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 1998:			}
        2:        2: 1999:		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
        -:        -: 2000:		}
        -:        -: 2001:
        2:        2: 2002:	return yy_current_state;
        -:        -: 2003:}
        -:        -: 2004:
        -:        -: 2005:/* yy_try_NUL_trans - try to make a transition on the NUL character
        -:        -: 2006: *
        -:        -: 2007: * synopsis
        -:        -: 2008: *	next_state = yy_try_NUL_trans( current_state );
        -:        -: 2009: */
    #####:    #####: 2010:    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
        -:        -: 2011:{
        -:        -: 2012:	int yy_is_jam;
    #####:    #####: 2013:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
    #####:    #####: 2014:	char *yy_cp = yyg->yy_c_buf_p;
        -:        -: 2015:
    #####:    #####: 2016:	YY_CHAR yy_c = 1;
    #####:    #####: 2017:	if ( yy_accept[yy_current_state] )
        -:        -: 2018:		{
    #####:    #####: 2019:		yyg->yy_last_accepting_state = yy_current_state;
    #####:    #####: 2020:		yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 2021:		}
    #####:    #####: 2022:	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 2023:		{
    #####:    #####: 2024:		yy_current_state = (int) yy_def[yy_current_state];
    #####:    #####: 2025:		if ( yy_current_state >= 174 )
    #####:    #####: 2026:			yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 2027:		}
    #####:    #####: 2028:	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    #####:    #####: 2029:	yy_is_jam = (yy_current_state == 173);
        -:        -: 2030:
        -:        -: 2031:	(void)yyg;
    #####:    #####: 2032:	return yy_is_jam ? 0 : yy_current_state;
        -:        -: 2033:}
        -:        -: 2034:
        -:        -: 2035:#ifndef YY_NO_UNPUT
        -:        -: 2036:
    #####:    #####: 2037:    static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
        -:        -: 2038:{
        -:        -: 2039:	char *yy_cp;
    #####:    #####: 2040:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2041:
    #####:    #####: 2042:    yy_cp = yyg->yy_c_buf_p;
        -:        -: 2043:
        -:        -: 2044:	/* undo effects of setting up yytext */
    #####:    #####: 2045:	*yy_cp = yyg->yy_hold_char;
        -:        -: 2046:
    #####:    #####: 2047:	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
        -:        -: 2048:		{ /* need to shift things up to make room */
        -:        -: 2049:		/* +2 for EOB chars. */
    #####:    #####: 2050:		yy_size_t number_to_move = yyg->yy_n_chars + 2;
    #####:    #####: 2051:		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
    #####:    #####: 2052:					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
    #####:    #####: 2053:		char *source =
    #####:    #####: 2054:				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
        -:        -: 2055:
    #####:    #####: 2056:		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    #####:    #####: 2057:			*--dest = *--source;
        -:        -: 2058:
    #####:    #####: 2059:		yy_cp += (int) (dest - source);
    #####:    #####: 2060:		yy_bp += (int) (dest - source);
    #####:    #####: 2061:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
    #####:    #####: 2062:			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
        -:        -: 2063:
    #####:    #####: 2064:		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
    #####:    #####: 2065:			YY_FATAL_ERROR( "flex scanner push-back overflow" );
        -:        -: 2066:		}
        -:        -: 2067:
    #####:    #####: 2068:	*--yy_cp = (char) c;
        -:        -: 2069:
    #####:    #####: 2070:	yyg->yytext_ptr = yy_bp;
    #####:    #####: 2071:	yyg->yy_hold_char = *yy_cp;
    #####:    #####: 2072:	yyg->yy_c_buf_p = yy_cp;
    #####:    #####: 2073:}
        -:        -: 2074:
        -:        -: 2075:#endif
        -:        -: 2076:
        -:        -: 2077:#ifndef YY_NO_INPUT
        -:        -: 2078:#ifdef __cplusplus
        -:        -: 2079:    static int yyinput (yyscan_t yyscanner)
        -:        -: 2080:#else
        -:        -: 2081:    static int input  (yyscan_t yyscanner)
        -:        -: 2082:#endif
        -:        -: 2083:
        -:        -: 2084:{
        -:        -: 2085:	int c;
        -:        -: 2086:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2087:
        -:        -: 2088:	*yyg->yy_c_buf_p = yyg->yy_hold_char;
        -:        -: 2089:
        -:        -: 2090:	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
        -:        -: 2091:		{
        -:        -: 2092:		/* yy_c_buf_p now points to the character we want to return.
        -:        -: 2093:		 * If this occurs *before* the EOB characters, then it's a
        -:        -: 2094:		 * valid NUL; if not, then we've hit the end of the buffer.
        -:        -: 2095:		 */
        -:        -: 2096:		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
        -:        -: 2097:			/* This was really a NUL. */
        -:        -: 2098:			*yyg->yy_c_buf_p = '\0';
        -:        -: 2099:
        -:        -: 2100:		else
        -:        -: 2101:			{ /* need more input */
        -:        -: 2102:			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
        -:        -: 2103:			++yyg->yy_c_buf_p;
        -:        -: 2104:
        -:        -: 2105:			switch ( yy_get_next_buffer( yyscanner ) )
        -:        -: 2106:				{
        -:        -: 2107:				case EOB_ACT_LAST_MATCH:
        -:        -: 2108:					/* This happens because yy_g_n_b()
        -:        -: 2109:					 * sees that we've accumulated a
        -:        -: 2110:					 * token and flags that we need to
        -:        -: 2111:					 * try matching the token before
        -:        -: 2112:					 * proceeding.  But for input(),
        -:        -: 2113:					 * there's no matching to consider.
        -:        -: 2114:					 * So convert the EOB_ACT_LAST_MATCH
        -:        -: 2115:					 * to EOB_ACT_END_OF_FILE.
        -:        -: 2116:					 */
        -:        -: 2117:
        -:        -: 2118:					/* Reset buffer status. */
        -:        -: 2119:					glcpp_restart(yyin ,yyscanner);
        -:        -: 2120:
        -:        -: 2121:					/*FALLTHROUGH*/
        -:        -: 2122:
        -:        -: 2123:				case EOB_ACT_END_OF_FILE:
        -:        -: 2124:					{
        -:        -: 2125:					if ( glcpp_wrap(yyscanner ) )
        -:        -: 2126:						return EOF;
        -:        -: 2127:
        -:        -: 2128:					if ( ! yyg->yy_did_buffer_switch_on_eof )
        -:        -: 2129:						YY_NEW_FILE;
        -:        -: 2130:#ifdef __cplusplus
        -:        -: 2131:					return yyinput(yyscanner);
        -:        -: 2132:#else
        -:        -: 2133:					return input(yyscanner);
        -:        -: 2134:#endif
        -:        -: 2135:					}
        -:        -: 2136:
        -:        -: 2137:				case EOB_ACT_CONTINUE_SCAN:
        -:        -: 2138:					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
        -:        -: 2139:					break;
        -:        -: 2140:				}
        -:        -: 2141:			}
        -:        -: 2142:		}
        -:        -: 2143:
        -:        -: 2144:	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
        -:        -: 2145:	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
        -:        -: 2146:	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
        -:        -: 2147:
        -:        -: 2148:	return c;
        -:        -: 2149:}
        -:        -: 2150:#endif	/* ifndef YY_NO_INPUT */
        -:        -: 2151:
        -:        -: 2152:/** Immediately switch to a different input stream.
        -:        -: 2153: * @param input_file A readable stream.
        -:        -: 2154: * @param yyscanner The scanner object.
        -:        -: 2155: * @note This function does not reset the start condition to @c INITIAL .
        -:        -: 2156: */
    #####:    #####: 2157:    void glcpp_restart  (FILE * input_file , yyscan_t yyscanner)
        -:        -: 2158:{
    #####:    #####: 2159:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2160:
    #####:    #####: 2161:	if ( ! YY_CURRENT_BUFFER ){
    #####:    #####: 2162:        glcpp_ensure_buffer_stack (yyscanner);
    #####:    #####: 2163:		YY_CURRENT_BUFFER_LVALUE =
    #####:    #####: 2164:            glcpp__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
        -:        -: 2165:	}
        -:        -: 2166:
    #####:    #####: 2167:	glcpp__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
    #####:    #####: 2168:	glcpp__load_buffer_state(yyscanner );
    #####:    #####: 2169:}
        -:        -: 2170:
        -:        -: 2171:/** Switch to a different input buffer.
        -:        -: 2172: * @param new_buffer The new input buffer.
        -:        -: 2173: * @param yyscanner The scanner object.
        -:        -: 2174: */
        2:        2: 2175:    void glcpp__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
        -:        -: 2176:{
        2:        2: 2177:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2178:
        -:        -: 2179:	/* TODO. We should be able to replace this entire function body
        -:        -: 2180:	 * with
        -:        -: 2181:	 *		glcpp_pop_buffer_state();
        -:        -: 2182:	 *		glcpp_push_buffer_state(new_buffer);
        -:        -: 2183:     */
        2:        2: 2184:	glcpp_ensure_buffer_stack (yyscanner);
        2:        2: 2185:	if ( YY_CURRENT_BUFFER == new_buffer )
    #####:    #####: 2186:		return;
        -:        -: 2187:
        2:        2: 2188:	if ( YY_CURRENT_BUFFER )
        -:        -: 2189:		{
        -:        -: 2190:		/* Flush out information for old buffer. */
    #####:    #####: 2191:		*yyg->yy_c_buf_p = yyg->yy_hold_char;
    #####:    #####: 2192:		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
    #####:    #####: 2193:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 2194:		}
        -:        -: 2195:
        2:        2: 2196:	YY_CURRENT_BUFFER_LVALUE = new_buffer;
        2:        2: 2197:	glcpp__load_buffer_state(yyscanner );
        -:        -: 2198:
        -:        -: 2199:	/* We don't actually know whether we did this switch during
        -:        -: 2200:	 * EOF (glcpp_wrap()) processing, but the only time this flag
        -:        -: 2201:	 * is looked at is after glcpp_wrap() is called, so it's safe
        -:        -: 2202:	 * to go ahead and always set it.
        -:        -: 2203:	 */
        2:        2: 2204:	yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 2205:}
        -:        -: 2206:
        4:        4: 2207:static void glcpp__load_buffer_state  (yyscan_t yyscanner)
        -:        -: 2208:{
        4:        4: 2209:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        4:        4: 2210:	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        4:        4: 2211:	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
        4:        4: 2212:	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
        4:        4: 2213:	yyg->yy_hold_char = *yyg->yy_c_buf_p;
        4:        4: 2214:}
        -:        -: 2215:
        -:        -: 2216:/** Allocate and initialize an input buffer state.
        -:        -: 2217: * @param file A readable stream.
        -:        -: 2218: * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
        -:        -: 2219: * @param yyscanner The scanner object.
        -:        -: 2220: * @return the allocated buffer state.
        -:        -: 2221: */
    #####:    #####: 2222:    YY_BUFFER_STATE glcpp__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
        -:        -: 2223:{
        -:        -: 2224:	YY_BUFFER_STATE b;
        -:        -: 2225:    
    #####:    #####: 2226:	b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
    #####:    #####: 2227:	if ( ! b )
    #####:    #####: 2228:		YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" );
        -:        -: 2229:
    #####:    #####: 2230:	b->yy_buf_size = (yy_size_t)size;
        -:        -: 2231:
        -:        -: 2232:	/* yy_ch_buf has to be 2 characters longer than the size given because
        -:        -: 2233:	 * we need to put in 2 end-of-buffer characters.
        -:        -: 2234:	 */
    #####:    #####: 2235:	b->yy_ch_buf = (char *) glcpp_alloc(b->yy_buf_size + 2 ,yyscanner );
    #####:    #####: 2236:	if ( ! b->yy_ch_buf )
    #####:    #####: 2237:		YY_FATAL_ERROR( "out of dynamic memory in glcpp__create_buffer()" );
        -:        -: 2238:
    #####:    #####: 2239:	b->yy_is_our_buffer = 1;
        -:        -: 2240:
    #####:    #####: 2241:	glcpp__init_buffer(b,file ,yyscanner);
        -:        -: 2242:
    #####:    #####: 2243:	return b;
        -:        -: 2244:}
        -:        -: 2245:
        -:        -: 2246:/** Destroy the buffer.
        -:        -: 2247: * @param b a buffer created with glcpp__create_buffer()
        -:        -: 2248: * @param yyscanner The scanner object.
        -:        -: 2249: */
        2:        2: 2250:    void glcpp__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
        -:        -: 2251:{
        2:        2: 2252:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2253:
        2:        2: 2254:	if ( ! b )
    #####:    #####: 2255:		return;
        -:        -: 2256:
        2:        2: 2257:	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
        2:        2: 2258:		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
        -:        -: 2259:
        2:        2: 2260:	if ( b->yy_is_our_buffer )
        2:        2: 2261:		glcpp_free((void *) b->yy_ch_buf ,yyscanner );
        -:        -: 2262:
        2:        2: 2263:	glcpp_free((void *) b ,yyscanner );
        -:        -: 2264:}
        -:        -: 2265:
        -:        -: 2266:/* Initializes or reinitializes a buffer.
        -:        -: 2267: * This function is sometimes called more than once on the same buffer,
        -:        -: 2268: * such as during a glcpp_restart() or at EOF.
        -:        -: 2269: */
    #####:    #####: 2270:    static void glcpp__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
        -:        -: 2271:
        -:        -: 2272:{
    #####:    #####: 2273:	int oerrno = errno;
    #####:    #####: 2274:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2275:
    #####:    #####: 2276:	glcpp__flush_buffer(b ,yyscanner);
        -:        -: 2277:
    #####:    #####: 2278:	b->yy_input_file = file;
    #####:    #####: 2279:	b->yy_fill_buffer = 1;
        -:        -: 2280:
        -:        -: 2281:    /* If b is the current buffer, then glcpp__init_buffer was _probably_
        -:        -: 2282:     * called from glcpp_restart() or through yy_get_next_buffer.
        -:        -: 2283:     * In that case, we don't want to reset the lineno or column.
        -:        -: 2284:     */
    #####:    #####: 2285:    if (b != YY_CURRENT_BUFFER){
    #####:    #####: 2286:        b->yy_bs_lineno = 1;
    #####:    #####: 2287:        b->yy_bs_column = 0;
        -:        -: 2288:    }
        -:        -: 2289:
    #####:    #####: 2290:        b->yy_is_interactive = 0;
        -:        -: 2291:    
    #####:    #####: 2292:	errno = oerrno;
    #####:    #####: 2293:}
        -:        -: 2294:
        -:        -: 2295:/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
        -:        -: 2296: * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
        -:        -: 2297: * @param yyscanner The scanner object.
        -:        -: 2298: */
    #####:    #####: 2299:    void glcpp__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
        -:        -: 2300:{
    #####:    #####: 2301:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2302:	if ( ! b )
    #####:    #####: 2303:		return;
        -:        -: 2304:
    #####:    #####: 2305:	b->yy_n_chars = 0;
        -:        -: 2306:
        -:        -: 2307:	/* We always need two end-of-buffer characters.  The first causes
        -:        -: 2308:	 * a transition to the end-of-buffer state.  The second causes
        -:        -: 2309:	 * a jam in that state.
        -:        -: 2310:	 */
    #####:    #####: 2311:	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    #####:    #####: 2312:	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 2313:
    #####:    #####: 2314:	b->yy_buf_pos = &b->yy_ch_buf[0];
        -:        -: 2315:
    #####:    #####: 2316:	b->yy_at_bol = 1;
    #####:    #####: 2317:	b->yy_buffer_status = YY_BUFFER_NEW;
        -:        -: 2318:
    #####:    #####: 2319:	if ( b == YY_CURRENT_BUFFER )
    #####:    #####: 2320:		glcpp__load_buffer_state(yyscanner );
        -:        -: 2321:}
        -:        -: 2322:
        -:        -: 2323:/** Pushes the new state onto the stack. The new state becomes
        -:        -: 2324: *  the current state. This function will allocate the stack
        -:        -: 2325: *  if necessary.
        -:        -: 2326: *  @param new_buffer The new state.
        -:        -: 2327: *  @param yyscanner The scanner object.
        -:        -: 2328: */
    #####:    #####: 2329:void glcpp_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
        -:        -: 2330:{
    #####:    #####: 2331:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2332:	if (new_buffer == NULL)
    #####:    #####: 2333:		return;
        -:        -: 2334:
    #####:    #####: 2335:	glcpp_ensure_buffer_stack(yyscanner);
        -:        -: 2336:
        -:        -: 2337:	/* This block is copied from glcpp__switch_to_buffer. */
    #####:    #####: 2338:	if ( YY_CURRENT_BUFFER )
        -:        -: 2339:		{
        -:        -: 2340:		/* Flush out information for old buffer. */
    #####:    #####: 2341:		*yyg->yy_c_buf_p = yyg->yy_hold_char;
    #####:    #####: 2342:		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
    #####:    #####: 2343:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 2344:		}
        -:        -: 2345:
        -:        -: 2346:	/* Only push if top exists. Otherwise, replace top. */
    #####:    #####: 2347:	if (YY_CURRENT_BUFFER)
    #####:    #####: 2348:		yyg->yy_buffer_stack_top++;
    #####:    #####: 2349:	YY_CURRENT_BUFFER_LVALUE = new_buffer;
        -:        -: 2350:
        -:        -: 2351:	/* copied from glcpp__switch_to_buffer. */
    #####:    #####: 2352:	glcpp__load_buffer_state(yyscanner );
    #####:    #####: 2353:	yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 2354:}
        -:        -: 2355:
        -:        -: 2356:/** Removes and deletes the top of the stack, if present.
        -:        -: 2357: *  The next element becomes the new top.
        -:        -: 2358: *  @param yyscanner The scanner object.
        -:        -: 2359: */
        2:        2: 2360:void glcpp_pop_buffer_state (yyscan_t yyscanner)
        -:        -: 2361:{
        2:        2: 2362:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        2:        2: 2363:	if (!YY_CURRENT_BUFFER)
        2:        2: 2364:		return;
        -:        -: 2365:
    #####:    #####: 2366:	glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
    #####:    #####: 2367:	YY_CURRENT_BUFFER_LVALUE = NULL;
    #####:    #####: 2368:	if (yyg->yy_buffer_stack_top > 0)
    #####:    #####: 2369:		--yyg->yy_buffer_stack_top;
        -:        -: 2370:
    #####:    #####: 2371:	if (YY_CURRENT_BUFFER) {
    #####:    #####: 2372:		glcpp__load_buffer_state(yyscanner );
    #####:    #####: 2373:		yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 2374:	}
        -:        -: 2375:}
        -:        -: 2376:
        -:        -: 2377:/* Allocates the stack if it does not exist.
        -:        -: 2378: *  Guarantees space for at least one push.
        -:        -: 2379: */
        2:        2: 2380:static void glcpp_ensure_buffer_stack (yyscan_t yyscanner)
        -:        -: 2381:{
        -:        -: 2382:	yy_size_t num_to_alloc;
        2:        2: 2383:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2384:
        2:        2: 2385:	if (!yyg->yy_buffer_stack) {
        -:        -: 2386:
        -:        -: 2387:		/* First allocation is just for 2 elements, since we don't know if this
        -:        -: 2388:		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
        -:        -: 2389:		 * immediate realloc on the next call.
        -:        -: 2390:         */
        2:        2: 2391:		num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
        2:        2: 2392:		yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_alloc
        -:        -: 2393:								(num_to_alloc * sizeof(struct yy_buffer_state*)
        -:        -: 2394:								, yyscanner);
        2:        2: 2395:		if ( ! yyg->yy_buffer_stack )
    #####:    #####: 2396:			YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" );
        -:        -: 2397:								  
        2:        2: 2398:		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
        -:        -: 2399:				
        2:        2: 2400:		yyg->yy_buffer_stack_max = num_to_alloc;
        2:        2: 2401:		yyg->yy_buffer_stack_top = 0;
        2:        2: 2402:		return;
        -:        -: 2403:	}
        -:        -: 2404:
    #####:    #####: 2405:	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
        -:        -: 2406:
        -:        -: 2407:		/* Increase the buffer to prepare for a possible push. */
    #####:    #####: 2408:		yy_size_t grow_size = 8 /* arbitrary grow size */;
        -:        -: 2409:
    #####:    #####: 2410:		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
    #####:    #####: 2411:		yyg->yy_buffer_stack = (struct yy_buffer_state**)glcpp_realloc
    #####:    #####: 2412:								(yyg->yy_buffer_stack,
        -:        -: 2413:								num_to_alloc * sizeof(struct yy_buffer_state*)
        -:        -: 2414:								, yyscanner);
    #####:    #####: 2415:		if ( ! yyg->yy_buffer_stack )
    #####:    #####: 2416:			YY_FATAL_ERROR( "out of dynamic memory in glcpp_ensure_buffer_stack()" );
        -:        -: 2417:
        -:        -: 2418:		/* zero only the new slots.*/
    #####:    #####: 2419:		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
    #####:    #####: 2420:		yyg->yy_buffer_stack_max = num_to_alloc;
        -:        -: 2421:	}
        -:        -: 2422:}
        -:        -: 2423:
        -:        -: 2424:/** Setup the input buffer state to scan directly from a user-specified character buffer.
        -:        -: 2425: * @param base the character buffer
        -:        -: 2426: * @param size the size in bytes of the character buffer
        -:        -: 2427: * @param yyscanner The scanner object.
        -:        -: 2428: * @return the newly allocated buffer state object. 
        -:        -: 2429: */
        2:        2: 2430:YY_BUFFER_STATE glcpp__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
        -:        -: 2431:{
        -:        -: 2432:	YY_BUFFER_STATE b;
        -:        -: 2433:    
        4:        4: 2434:	if ( size < 2 ||
        4:        4: 2435:	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
        2:        2: 2436:	     base[size-1] != YY_END_OF_BUFFER_CHAR )
        -:        -: 2437:		/* They forgot to leave room for the EOB's. */
    #####:    #####: 2438:		return 0;
        -:        -: 2439:
        2:        2: 2440:	b = (YY_BUFFER_STATE) glcpp_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
        2:        2: 2441:	if ( ! b )
    #####:    #####: 2442:		YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_buffer()" );
        -:        -: 2443:
        2:        2: 2444:	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
        2:        2: 2445:	b->yy_buf_pos = b->yy_ch_buf = base;
        2:        2: 2446:	b->yy_is_our_buffer = 0;
        2:        2: 2447:	b->yy_input_file = 0;
        2:        2: 2448:	b->yy_n_chars = b->yy_buf_size;
        2:        2: 2449:	b->yy_is_interactive = 0;
        2:        2: 2450:	b->yy_at_bol = 1;
        2:        2: 2451:	b->yy_fill_buffer = 0;
        2:        2: 2452:	b->yy_buffer_status = YY_BUFFER_NEW;
        -:        -: 2453:
        2:        2: 2454:	glcpp__switch_to_buffer(b ,yyscanner );
        -:        -: 2455:
        2:        2: 2456:	return b;
        -:        -: 2457:}
        -:        -: 2458:
        -:        -: 2459:/** Setup the input buffer state to scan a string. The next call to glcpp_lex() will
        -:        -: 2460: * scan from a @e copy of @a str.
        -:        -: 2461: * @param yystr a NUL-terminated string to scan
        -:        -: 2462: * @param yyscanner The scanner object.
        -:        -: 2463: * @return the newly allocated buffer state object.
        -:        -: 2464: * @note If you want to scan bytes that may contain NUL values, then use
        -:        -: 2465: *       glcpp__scan_bytes() instead.
        -:        -: 2466: */
        2:        2: 2467:YY_BUFFER_STATE glcpp__scan_string (yyconst char * yystr , yyscan_t yyscanner)
        -:        -: 2468:{
        -:        -: 2469:    
        2:        2: 2470:	return glcpp__scan_bytes(yystr,strlen(yystr) ,yyscanner);
        -:        -: 2471:}
        -:        -: 2472:
        -:        -: 2473:/** Setup the input buffer state to scan the given bytes. The next call to glcpp_lex() will
        -:        -: 2474: * scan from a @e copy of @a bytes.
        -:        -: 2475: * @param yybytes the byte buffer to scan
        -:        -: 2476: * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
        -:        -: 2477: * @param yyscanner The scanner object.
        -:        -: 2478: * @return the newly allocated buffer state object.
        -:        -: 2479: */
        2:        2: 2480:YY_BUFFER_STATE glcpp__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
        -:        -: 2481:{
        -:        -: 2482:	YY_BUFFER_STATE b;
        -:        -: 2483:	char *buf;
        -:        -: 2484:	yy_size_t n;
        -:        -: 2485:	yy_size_t i;
        -:        -: 2486:    
        -:        -: 2487:	/* Get memory for full buffer, including space for trailing EOB's. */
        2:        2: 2488:	n = _yybytes_len + 2;
        2:        2: 2489:	buf = (char *) glcpp_alloc(n ,yyscanner );
        2:        2: 2490:	if ( ! buf )
    #####:    #####: 2491:		YY_FATAL_ERROR( "out of dynamic memory in glcpp__scan_bytes()" );
        -:        -: 2492:
     1764:     1824: 2493:	for ( i = 0; i < _yybytes_len; ++i )
     1762:     1822: 2494:		buf[i] = yybytes[i];
        -:        -: 2495:
        2:        2: 2496:	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 2497:
        2:        2: 2498:	b = glcpp__scan_buffer(buf,n ,yyscanner);
        2:        2: 2499:	if ( ! b )
    #####:    #####: 2500:		YY_FATAL_ERROR( "bad buffer in glcpp__scan_bytes()" );
        -:        -: 2501:
        -:        -: 2502:	/* It's okay to grow etc. this buffer, and we should throw it
        -:        -: 2503:	 * away when we're done.
        -:        -: 2504:	 */
        2:        2: 2505:	b->yy_is_our_buffer = 1;
        -:        -: 2506:
        2:        2: 2507:	return b;
        -:        -: 2508:}
        -:        -: 2509:
    #####:    #####: 2510:    static void yy_push_state (int  _new_state , yyscan_t yyscanner)
        -:        -: 2511:{
    #####:    #####: 2512:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2513:	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
        -:        -: 2514:		{
        -:        -: 2515:		yy_size_t new_size;
        -:        -: 2516:
    #####:    #####: 2517:		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
    #####:    #####: 2518:		new_size = yyg->yy_start_stack_depth * sizeof( int );
        -:        -: 2519:
    #####:    #####: 2520:		if ( ! yyg->yy_start_stack )
    #####:    #####: 2521:			yyg->yy_start_stack = (int *) glcpp_alloc(new_size ,yyscanner );
        -:        -: 2522:
        -:        -: 2523:		else
    #####:    #####: 2524:			yyg->yy_start_stack = (int *) glcpp_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
        -:        -: 2525:
    #####:    #####: 2526:		if ( ! yyg->yy_start_stack )
    #####:    #####: 2527:			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
        -:        -: 2528:		}
        -:        -: 2529:
    #####:    #####: 2530:	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
        -:        -: 2531:
    #####:    #####: 2532:	BEGIN(_new_state);
    #####:    #####: 2533:}
        -:        -: 2534:
    #####:    #####: 2535:    static void yy_pop_state  (yyscan_t yyscanner)
        -:        -: 2536:{
    #####:    #####: 2537:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2538:	if ( --yyg->yy_start_stack_ptr < 0 )
    #####:    #####: 2539:		YY_FATAL_ERROR( "start-condition stack underflow" );
        -:        -: 2540:
    #####:    #####: 2541:	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
    #####:    #####: 2542:}
        -:        -: 2543:
    #####:    #####: 2544:    static int yy_top_state  (yyscan_t yyscanner)
        -:        -: 2545:{
    #####:    #####: 2546:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2547:	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
        -:        -: 2548:}
        -:        -: 2549:
        -:        -: 2550:#ifndef YY_EXIT_FAILURE
        -:        -: 2551:#define YY_EXIT_FAILURE 2
        -:        -: 2552:#endif
        -:        -: 2553:
    #####:    #####: 2554:static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
        -:        -: 2555:{
    #####:    #####: 2556:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2557:	(void)yyg;
    #####:    #####: 2558:	(void) fprintf( stderr, "%s\n", msg );
    #####:    #####: 2559:	exit( YY_EXIT_FAILURE );
        -:        -: 2560:}
        -:        -: 2561:
        -:        -: 2562:/* Redefine yyless() so it works in section 3 code. */
        -:        -: 2563:
        -:        -: 2564:#undef yyless
        -:        -: 2565:#define yyless(n) \
        -:        -: 2566:	do \
        -:        -: 2567:		{ \
        -:        -: 2568:		/* Undo effects of setting up yytext. */ \
        -:        -: 2569:        int yyless_macro_arg = (n); \
        -:        -: 2570:        YY_LESS_LINENO(yyless_macro_arg);\
        -:        -: 2571:		yytext[yyleng] = yyg->yy_hold_char; \
        -:        -: 2572:		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
        -:        -: 2573:		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
        -:        -: 2574:		*yyg->yy_c_buf_p = '\0'; \
        -:        -: 2575:		yyleng = yyless_macro_arg; \
        -:        -: 2576:		} \
        -:        -: 2577:	while ( 0 )
        -:        -: 2578:
        -:        -: 2579:/* Accessor  methods (get/set functions) to struct members. */
        -:        -: 2580:
        -:        -: 2581:/** Get the user-defined data for this scanner.
        -:        -: 2582: * @param yyscanner The scanner object.
        -:        -: 2583: */
    #####:    #####: 2584:YY_EXTRA_TYPE glcpp_get_extra  (yyscan_t yyscanner)
        -:        -: 2585:{
    #####:    #####: 2586:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2587:    return yyextra;
        -:        -: 2588:}
        -:        -: 2589:
        -:        -: 2590:/** Get the current line number.
        -:        -: 2591: * @param yyscanner The scanner object.
        -:        -: 2592: */
    #####:    #####: 2593:int glcpp_get_lineno  (yyscan_t yyscanner)
        -:        -: 2594:{
    #####:    #####: 2595:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2596:    
    #####:    #####: 2597:        if (! YY_CURRENT_BUFFER)
    #####:    #####: 2598:            return 0;
        -:        -: 2599:    
    #####:    #####: 2600:    return yylineno;
        -:        -: 2601:}
        -:        -: 2602:
        -:        -: 2603:/** Get the current column number.
        -:        -: 2604: * @param yyscanner The scanner object.
        -:        -: 2605: */
    #####:    #####: 2606:int glcpp_get_column  (yyscan_t yyscanner)
        -:        -: 2607:{
    #####:    #####: 2608:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2609:    
    #####:    #####: 2610:        if (! YY_CURRENT_BUFFER)
    #####:    #####: 2611:            return 0;
        -:        -: 2612:    
    #####:    #####: 2613:    return yycolumn;
        -:        -: 2614:}
        -:        -: 2615:
        -:        -: 2616:/** Get the input stream.
        -:        -: 2617: * @param yyscanner The scanner object.
        -:        -: 2618: */
    #####:    #####: 2619:FILE *glcpp_get_in  (yyscan_t yyscanner)
        -:        -: 2620:{
    #####:    #####: 2621:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2622:    return yyin;
        -:        -: 2623:}
        -:        -: 2624:
        -:        -: 2625:/** Get the output stream.
        -:        -: 2626: * @param yyscanner The scanner object.
        -:        -: 2627: */
    #####:    #####: 2628:FILE *glcpp_get_out  (yyscan_t yyscanner)
        -:        -: 2629:{
    #####:    #####: 2630:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2631:    return yyout;
        -:        -: 2632:}
        -:        -: 2633:
        -:        -: 2634:/** Get the length of the current token.
        -:        -: 2635: * @param yyscanner The scanner object.
        -:        -: 2636: */
    #####:    #####: 2637:yy_size_t glcpp_get_leng  (yyscan_t yyscanner)
        -:        -: 2638:{
    #####:    #####: 2639:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2640:    return yyleng;
        -:        -: 2641:}
        -:        -: 2642:
        -:        -: 2643:/** Get the current token.
        -:        -: 2644: * @param yyscanner The scanner object.
        -:        -: 2645: */
        -:        -: 2646:
    #####:    #####: 2647:char *glcpp_get_text  (yyscan_t yyscanner)
        -:        -: 2648:{
    #####:    #####: 2649:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2650:    return yytext;
        -:        -: 2651:}
        -:        -: 2652:
        -:        -: 2653:/** Set the user-defined data. This data is never touched by the scanner.
        -:        -: 2654: * @param user_defined The data to be associated with this scanner.
        -:        -: 2655: * @param yyscanner The scanner object.
        -:        -: 2656: */
        4:        4: 2657:void glcpp_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
        -:        -: 2658:{
        4:        4: 2659:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        4:        4: 2660:    yyextra = user_defined ;
        4:        4: 2661:}
        -:        -: 2662:
        -:        -: 2663:/** Set the current line number.
        -:        -: 2664: * @param _line_number line number
        -:        -: 2665: * @param yyscanner The scanner object.
        -:        -: 2666: */
    #####:    #####: 2667:void glcpp_set_lineno (int  _line_number , yyscan_t yyscanner)
        -:        -: 2668:{
    #####:    #####: 2669:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2670:
        -:        -: 2671:        /* lineno is only valid if an input buffer exists. */
    #####:    #####: 2672:        if (! YY_CURRENT_BUFFER )
    #####:    #####: 2673:           YY_FATAL_ERROR( "glcpp_set_lineno called with no buffer" );
        -:        -: 2674:    
    #####:    #####: 2675:    yylineno = _line_number;
    #####:    #####: 2676:}
        -:        -: 2677:
        -:        -: 2678:/** Set the current column.
        -:        -: 2679: * @param _column_no column number
        -:        -: 2680: * @param yyscanner The scanner object.
        -:        -: 2681: */
    #####:    #####: 2682:void glcpp_set_column (int  _column_no , yyscan_t yyscanner)
        -:        -: 2683:{
    #####:    #####: 2684:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2685:
        -:        -: 2686:        /* column is only valid if an input buffer exists. */
    #####:    #####: 2687:        if (! YY_CURRENT_BUFFER )
    #####:    #####: 2688:           YY_FATAL_ERROR( "glcpp_set_column called with no buffer" );
        -:        -: 2689:    
    #####:    #####: 2690:    yycolumn = _column_no;
    #####:    #####: 2691:}
        -:        -: 2692:
        -:        -: 2693:/** Set the input stream. This does not discard the current
        -:        -: 2694: * input buffer.
        -:        -: 2695: * @param _in_str A readable stream.
        -:        -: 2696: * @param yyscanner The scanner object.
        -:        -: 2697: * @see glcpp__switch_to_buffer
        -:        -: 2698: */
    #####:    #####: 2699:void glcpp_set_in (FILE *  _in_str , yyscan_t yyscanner)
        -:        -: 2700:{
    #####:    #####: 2701:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2702:    yyin = _in_str ;
    #####:    #####: 2703:}
        -:        -: 2704:
    #####:    #####: 2705:void glcpp_set_out (FILE *  _out_str , yyscan_t yyscanner)
        -:        -: 2706:{
    #####:    #####: 2707:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2708:    yyout = _out_str ;
    #####:    #####: 2709:}
        -:        -: 2710:
    #####:    #####: 2711:int glcpp_get_debug  (yyscan_t yyscanner)
        -:        -: 2712:{
    #####:    #####: 2713:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2714:    return yy_flex_debug;
        -:        -: 2715:}
        -:        -: 2716:
    #####:    #####: 2717:void glcpp_set_debug (int  _bdebug , yyscan_t yyscanner)
        -:        -: 2718:{
    #####:    #####: 2719:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2720:    yy_flex_debug = _bdebug ;
    #####:    #####: 2721:}
        -:        -: 2722:
        -:        -: 2723:/* Accessor methods for yylval and yylloc */
        -:        -: 2724:
    #####:    #####: 2725:YYSTYPE * glcpp_get_lval  (yyscan_t yyscanner)
        -:        -: 2726:{
    #####:    #####: 2727:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2728:    return yylval;
        -:        -: 2729:}
        -:        -: 2730:
    #####:    #####: 2731:void glcpp_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
        -:        -: 2732:{
    #####:    #####: 2733:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2734:    yylval = yylval_param;
    #####:    #####: 2735:}
        -:        -: 2736:
    #####:    #####: 2737:YYLTYPE *glcpp_get_lloc  (yyscan_t yyscanner)
        -:        -: 2738:{
    #####:    #####: 2739:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2740:    return yylloc;
        -:        -: 2741:}
        -:        -: 2742:    
    #####:    #####: 2743:void glcpp_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
        -:        -: 2744:{
    #####:    #####: 2745:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 2746:    yylloc = yylloc_param;
    #####:    #####: 2747:}
        -:        -: 2748:    
        -:        -: 2749:/* User-visible API */
        -:        -: 2750:
        -:        -: 2751:/* glcpp_lex_init is special because it creates the scanner itself, so it is
        -:        -: 2752: * the ONLY reentrant function that doesn't take the scanner as the last argument.
        -:        -: 2753: * That's why we explicitly handle the declaration, instead of using our macros.
        -:        -: 2754: */
        -:        -: 2755:
    #####:    #####: 2756:int glcpp_lex_init(yyscan_t* ptr_yy_globals)
        -:        -: 2757:
        -:        -: 2758:{
    #####:    #####: 2759:    if (ptr_yy_globals == NULL){
    #####:    #####: 2760:        errno = EINVAL;
    #####:    #####: 2761:        return 1;
        -:        -: 2762:    }
        -:        -: 2763:
    #####:    #####: 2764:    *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), NULL );
        -:        -: 2765:
    #####:    #####: 2766:    if (*ptr_yy_globals == NULL){
    #####:    #####: 2767:        errno = ENOMEM;
    #####:    #####: 2768:        return 1;
        -:        -: 2769:    }
        -:        -: 2770:
        -:        -: 2771:    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
    #####:    #####: 2772:    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
        -:        -: 2773:
    #####:    #####: 2774:    return yy_init_globals ( *ptr_yy_globals );
        -:        -: 2775:}
        -:        -: 2776:
        -:        -: 2777:/* glcpp_lex_init_extra has the same functionality as glcpp_lex_init, but follows the
        -:        -: 2778: * convention of taking the scanner as the last argument. Note however, that
        -:        -: 2779: * this is a *pointer* to a scanner, as it will be allocated by this call (and
        -:        -: 2780: * is the reason, too, why this function also must handle its own declaration).
        -:        -: 2781: * The user defined value in the first argument will be available to glcpp_alloc in
        -:        -: 2782: * the yyextra field.
        -:        -: 2783: */
        -:        -: 2784:
        2:        2: 2785:int glcpp_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
        -:        -: 2786:
        -:        -: 2787:{
        -:        -: 2788:    struct yyguts_t dummy_yyguts;
        -:        -: 2789:
        2:        2: 2790:    glcpp_set_extra (yy_user_defined, &dummy_yyguts);
        -:        -: 2791:
        2:        2: 2792:    if (ptr_yy_globals == NULL){
    #####:    #####: 2793:        errno = EINVAL;
    #####:    #####: 2794:        return 1;
        -:        -: 2795:    }
        -:        -: 2796:	
        2:        2: 2797:    *ptr_yy_globals = (yyscan_t) glcpp_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
        -:        -: 2798:	
        2:        2: 2799:    if (*ptr_yy_globals == NULL){
    #####:    #####: 2800:        errno = ENOMEM;
    #####:    #####: 2801:        return 1;
        -:        -: 2802:    }
        -:        -: 2803:    
        -:        -: 2804:    /* By setting to 0xAA, we expose bugs in
        -:        -: 2805:    yy_init_globals. Leave at 0x00 for releases. */
        2:        2: 2806:    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
        -:        -: 2807:    
        2:        2: 2808:    glcpp_set_extra (yy_user_defined, *ptr_yy_globals);
        -:        -: 2809:    
        2:        2: 2810:    return yy_init_globals ( *ptr_yy_globals );
        -:        -: 2811:}
        -:        -: 2812:
        4:        4: 2813:static int yy_init_globals (yyscan_t yyscanner)
        -:        -: 2814:{
        4:        4: 2815:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2816:    /* Initialization is the same as for the non-reentrant scanner.
        -:        -: 2817:     * This function is called from glcpp_lex_destroy(), so don't allocate here.
        -:        -: 2818:     */
        -:        -: 2819:
        4:        4: 2820:    yyg->yy_buffer_stack = 0;
        4:        4: 2821:    yyg->yy_buffer_stack_top = 0;
        4:        4: 2822:    yyg->yy_buffer_stack_max = 0;
        4:        4: 2823:    yyg->yy_c_buf_p = (char *) 0;
        4:        4: 2824:    yyg->yy_init = 0;
        4:        4: 2825:    yyg->yy_start = 0;
        -:        -: 2826:
        4:        4: 2827:    yyg->yy_start_stack_ptr = 0;
        4:        4: 2828:    yyg->yy_start_stack_depth = 0;
        4:        4: 2829:    yyg->yy_start_stack =  NULL;
        -:        -: 2830:
        -:        -: 2831:/* Defined in main.c */
        -:        -: 2832:#ifdef YY_STDINIT
        -:        -: 2833:    yyin = stdin;
        -:        -: 2834:    yyout = stdout;
        -:        -: 2835:#else
        4:        4: 2836:    yyin = (FILE *) 0;
        4:        4: 2837:    yyout = (FILE *) 0;
        -:        -: 2838:#endif
        -:        -: 2839:
        -:        -: 2840:    /* For future reference: Set errno on error, since we are called by
        -:        -: 2841:     * glcpp_lex_init()
        -:        -: 2842:     */
        4:        4: 2843:    return 0;
        -:        -: 2844:}
        -:        -: 2845:
        -:        -: 2846:/* glcpp_lex_destroy is for both reentrant and non-reentrant scanners. */
        2:        2: 2847:int glcpp_lex_destroy  (yyscan_t yyscanner)
        -:        -: 2848:{
        2:        2: 2849:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2850:
        -:        -: 2851:    /* Pop the buffer stack, destroying each element. */
        6:        6: 2852:	while(YY_CURRENT_BUFFER){
        2:        2: 2853:		glcpp__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
        2:        2: 2854:		YY_CURRENT_BUFFER_LVALUE = NULL;
        2:        2: 2855:		glcpp_pop_buffer_state(yyscanner);
        -:        -: 2856:	}
        -:        -: 2857:
        -:        -: 2858:	/* Destroy the stack itself. */
        2:        2: 2859:	glcpp_free(yyg->yy_buffer_stack ,yyscanner);
        2:        2: 2860:	yyg->yy_buffer_stack = NULL;
        -:        -: 2861:
        -:        -: 2862:    /* Destroy the start condition stack. */
        2:        2: 2863:        glcpp_free(yyg->yy_start_stack ,yyscanner );
        2:        2: 2864:        yyg->yy_start_stack = NULL;
        -:        -: 2865:
        -:        -: 2866:    /* Reset the globals. This is important in a non-reentrant scanner so the next time
        -:        -: 2867:     * glcpp_lex() is called, initialization will occur. */
        2:        2: 2868:    yy_init_globals( yyscanner);
        -:        -: 2869:
        -:        -: 2870:    /* Destroy the main struct (reentrant only). */
        2:        2: 2871:    glcpp_free ( yyscanner , yyscanner );
        2:        2: 2872:    yyscanner = NULL;
        2:        2: 2873:    return 0;
        -:        -: 2874:}
        -:        -: 2875:
        -:        -: 2876:/*
        -:        -: 2877: * Internal utility routines.
        -:        -: 2878: */
        -:        -: 2879:
        -:        -: 2880:#ifndef yytext_ptr
        -:        -: 2881:static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
        -:        -: 2882:{
        -:        -: 2883:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2884:	(void)yyg;
        -:        -: 2885:
        -:        -: 2886:	int i;
        -:        -: 2887:	for ( i = 0; i < n; ++i )
        -:        -: 2888:		s1[i] = s2[i];
        -:        -: 2889:}
        -:        -: 2890:#endif
        -:        -: 2891:
        -:        -: 2892:#ifdef YY_NEED_STRLEN
        -:        -: 2893:static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
        -:        -: 2894:{
        -:        -: 2895:	int n;
        -:        -: 2896:	for ( n = 0; s[n]; ++n )
        -:        -: 2897:		;
        -:        -: 2898:
        -:        -: 2899:	return n;
        -:        -: 2900:}
        -:        -: 2901:#endif
        -:        -: 2902:
        8:        8: 2903:void *glcpp_alloc (yy_size_t  size , yyscan_t yyscanner)
        -:        -: 2904:{
        8:        8: 2905:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2906:	(void)yyg;
        8:        8: 2907:	return (void *) malloc( size );
        -:        -: 2908:}
        -:        -: 2909:
    #####:    #####: 2910:void *glcpp_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
        -:        -: 2911:{
    #####:    #####: 2912:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2913:	(void)yyg;
        -:        -: 2914:
        -:        -: 2915:	/* The cast to (char *) in the following accommodates both
        -:        -: 2916:	 * implementations that use char* generic pointers, and those
        -:        -: 2917:	 * that use void* generic pointers.  It works with the latter
        -:        -: 2918:	 * because both ANSI C and C++ allow castless assignment from
        -:        -: 2919:	 * any pointer type to void*, and deal with argument conversions
        -:        -: 2920:	 * as though doing an assignment.
        -:        -: 2921:	 */
    #####:    #####: 2922:	return (void *) realloc( (char *) ptr, size );
        -:        -: 2923:}
        -:        -: 2924:
       10:       10: 2925:void glcpp_free (void * ptr , yyscan_t yyscanner)
        -:        -: 2926:{
       10:       10: 2927:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 2928:	(void)yyg;
       10:       10: 2929:	free( (char *) ptr );	/* see glcpp_realloc() for (char *) cast */
       10:       10: 2930:}
        -:        -: 2931:
        -:        -: 2932:#define YYTABLES_NAME "yytables"
        -:        -: 2933:
        -:        -: 2934:#line 582 "./glsl/glcpp/glcpp-lex.l"
        -:        -: 2935:
        -:        -: 2936:
        -:        -: 2937:
        -:        -: 2938:void
        -:        -: 2939:glcpp_lex_set_source_string(glcpp_parser_t *parser, const char *shader)
        -:        -: 2940:{
        -:        -: 2941:	glcpp__scan_string(shader,parser->scanner);
        -:        -: 2942:}
        -:        -: 2943:

src/compiler/glcpp-lex.l.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.l
        -:        -:    0:Graph:glsl/glcpp/.libs/glcpp-lex.gcno
        -:        -:    0:Data:glsl/glcpp/.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:%{
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2010 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#include <stdio.h>
        -:        -:   26:#include <string.h>
        -:        -:   27:#include <ctype.h>
        -:        -:   28:
        -:        -:   29:#include "glcpp.h"
        -:        -:   30:#include "glcpp-parse.h"
        -:        -:   31:
        -:        -:   32:/* Flex annoyingly generates some functions without making them
        -:        -:   33: * static. Let's declare them here. */
        -:        -:   34:int glcpp_get_column  (yyscan_t yyscanner);
        -:        -:   35:void glcpp_set_column (int  column_no , yyscan_t yyscanner);
        -:        -:   36:
        -:        -:   37:#ifdef _MSC_VER
        -:        -:   38:#define YY_NO_UNISTD_H
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:#define YY_NO_INPUT
        -:        -:   42:
        -:        -:   43:#define YY_USER_ACTION							\
        -:        -:   44:	do {								\
        -:        -:   45:		if (parser->has_new_line_number)			\
        -:        -:   46:			yylineno = parser->new_line_number;		\
        -:        -:   47:		if (parser->has_new_source_number)			\
        -:        -:   48:			yylloc->source = parser->new_source_number;	\
        -:        -:   49:		yylloc->first_column = yycolumn + 1;			\
        -:        -:   50:		yylloc->first_line = yylloc->last_line = yylineno;	\
        -:        -:   51:		yycolumn += yyleng;					\
        -:        -:   52:		yylloc->last_column = yycolumn + 1;			\
        -:        -:   53:		parser->has_new_line_number = 0;			\
        -:        -:   54:		parser->has_new_source_number = 0;			\
        -:        -:   55:	} while(0);
        -:        -:   56:
        -:        -:   57:#define YY_USER_INIT			\
        -:        -:   58:	do {				\
        -:        -:   59:		yylineno = 1;		\
        -:        -:   60:		yycolumn = 0;		\
        -:        -:   61:		yylloc->source = 0;	\
        -:        -:   62:	} while(0)
        -:        -:   63:
        -:        -:   64:/* It's ugly to have macros that have return statements inside of
        -:        -:   65: * them, but flex-based lexer generation is all built around the
        -:        -:   66: * return statement.
        -:        -:   67: *
        -:        -:   68: * To mitigate the ugliness, we defer as much of the logic as possible
        -:        -:   69: * to an actual function, not a macro (see
        -:        -:   70: * glcpplex_update_state_per_token) and we make the word RETURN
        -:        -:   71: * prominent in all of the macros which may return.
        -:        -:   72: *
        -:        -:   73: * The most-commonly-used macro is RETURN_TOKEN which will perform all
        -:        -:   74: * necessary state updates based on the provided token,, then
        -:        -:   75: * conditionally return the token. It will not return a token if the
        -:        -:   76: * parser is currently skipping tokens, (such as within #if
        -:        -:   77: * 0...#else).
        -:        -:   78: *
        -:        -:   79: * The RETURN_TOKEN_NEVER_SKIP macro is a lower-level variant that
        -:        -:   80: * makes the token returning unconditional. This is needed for things
        -:        -:   81: * like #if and the tokens of its condition, (since these must be
        -:        -:   82: * evaluated by the parser even when otherwise skipping).
        -:        -:   83: *
        -:        -:   84: * Finally, RETURN_STRING_TOKEN is a simple convenience wrapper on top
        -:        -:   85: * of RETURN_TOKEN that performs a string copy of yytext before the
        -:        -:   86: * return.
        -:        -:   87: */
        -:        -:   88:#define RETURN_TOKEN_NEVER_SKIP(token)					\
        -:        -:   89:	do {								\
        -:        -:   90:		if (glcpp_lex_update_state_per_token (parser, token))	\
        -:        -:   91:			return token;					\
        -:        -:   92:	} while (0)
        -:        -:   93:
        -:        -:   94:#define RETURN_TOKEN(token)						\
        -:        -:   95:	do {								\
        -:        -:   96:		if (! parser->skipping) {				\
        -:        -:   97:			RETURN_TOKEN_NEVER_SKIP(token);			\
        -:        -:   98:		}							\
        -:        -:   99:	} while(0)
        -:        -:  100:
        -:        -:  101:#define RETURN_STRING_TOKEN(token)					\
        -:        -:  102:	do {								\
        -:        -:  103:		if (! parser->skipping) {				\
        -:        -:  104:			yylval->str = linear_strdup(yyextra->linalloc, yytext);	\
        -:        -:  105:			RETURN_TOKEN_NEVER_SKIP (token);		\
        -:        -:  106:		}							\
        -:        -:  107:	} while(0)
        -:        -:  108:
        -:        -:  109:
        -:        -:  110:/* Update all state necessary for each token being returned.
        -:        -:  111: *
        -:        -:  112: * Here we'll be tracking newlines and spaces so that the lexer can
        -:        -:  113: * alter its behavior as necessary, (for example, '#' has special
        -:        -:  114: * significance if it is the first non-whitespace, non-comment token
        -:        -:  115: * in a line, but does not otherwise).
        -:        -:  116: *
        -:        -:  117: * NOTE: If this function returns FALSE, then no token should be
        -:        -:  118: * returned at all. This is used to suprress duplicate SPACE tokens.
        -:        -:  119: */
        -:        -:  120:static int
      905:      947:  121:glcpp_lex_update_state_per_token (glcpp_parser_t *parser, int token)
        -:        -:  122:{
     1297:     1351:  123:	if (token != NEWLINE && token != SPACE && token != HASH_TOKEN &&
      392:      404:  124:	    !parser->lexing_version_directive) {
      388:      400:  125:		glcpp_parser_resolve_implicit_version(parser);
        -:        -:  126:	}
        -:        -:  127:
        -:        -:  128:	/* After the first non-space token in a line, we won't
        -:        -:  129:	 * allow any '#' to introduce a directive. */
      905:      947:  130:	if (token == NEWLINE) {
       79:       81:  131:		parser->first_non_space_token_this_line = 1;
      826:      866:  132:	} else if (token != SPACE) {
      411:      423:  133:		parser->first_non_space_token_this_line = 0;
        -:        -:  134:	}
        -:        -:  135:
        -:        -:  136:	/* Track newlines just to know whether a newline needs
        -:        -:  137:	 * to be inserted if end-of-file comes early. */
      905:      947:  138:	if (token == NEWLINE) {
       79:       81:  139:		parser->last_token_was_newline = 1;
        -:        -:  140:	} else {
      826:      866:  141:		parser->last_token_was_newline = 0;
        -:        -:  142:	}
        -:        -:  143:
        -:        -:  144:	/* Track spaces to avoid emitting multiple SPACE
        -:        -:  145:	 * tokens in a row. */
      905:      947:  146:	if (token == SPACE) {
      415:      443:  147:		if (! parser->last_token_was_space) {
      117:      123:  148:			parser->last_token_was_space = 1;
      117:      123:  149:			return 1;
        -:        -:  150:		} else {
      298:      320:  151:			parser->last_token_was_space = 1;
      298:      320:  152:			return 0;
        -:        -:  153:		}
        -:        -:  154:	} else {
      490:      504:  155:		parser->last_token_was_space = 0;
      490:      504:  156:		return 1;
        -:        -:  157:	}
        -:        -:  158:}
        -:        -:  159:
        -:        -:  160:
        -:        -:  161:%}
        -:        -:  162:
        -:        -:  163:%option bison-bridge bison-locations reentrant noyywrap
        -:        -:  164:%option extra-type="glcpp_parser_t *"
        -:        -:  165:%option prefix="glcpp_"
        -:        -:  166:%option stack
        -:        -:  167:%option never-interactive
        -:        -:  168:%option warn nodefault
        -:        -:  169:
        -:        -:  170:	/* Note: When adding any start conditions to this list, you must also
        -:        -:  171:	 * update the "Internal compiler error" catch-all rule near the end of
        -:        -:  172:	 * this file. */
        -:        -:  173:
        -:        -:  174:%x COMMENT DEFINE DONE HASH NEWLINE_CATCHUP UNREACHABLE
        -:        -:  175:
        -:        -:  176:SPACE		[[:space:]]
        -:        -:  177:NONSPACE	[^[:space:]]
        -:        -:  178:HSPACE		[ \t\v\f]
        -:        -:  179:HASH		#
        -:        -:  180:NEWLINE		(\r\n|\n\r|\r|\n)
        -:        -:  181:IDENTIFIER	[_a-zA-Z][_a-zA-Z0-9]*
        -:        -:  182:PP_NUMBER	[.]?[0-9]([._a-zA-Z0-9]|[eEpP][-+])*
        -:        -:  183:PUNCTUATION	[][(){}.&*~!/%<>^|;,=+-]
        -:        -:  184:
        -:        -:  185:/* The OTHER class is simply a catch-all for things that the CPP
        -:        -:  186:parser just doesn't care about. Since flex regular expressions that
        -:        -:  187:match longer strings take priority over those matching shorter
        -:        -:  188:strings, we have to be careful to avoid OTHER matching and hiding
        -:        -:  189:something that CPP does care about. So we simply exclude all
        -:        -:  190:characters that appear in any other expressions. */
        -:        -:  191:
        -:        -:  192:OTHER		[^][_#[:space:]#a-zA-Z0-9(){}.&*~!/%<>^|;,=+-]
        -:        -:  193:
        -:        -:  194:DIGITS			[0-9][0-9]*
        -:        -:  195:DECIMAL_INTEGER		[1-9][0-9]*[uU]?
        -:        -:  196:OCTAL_INTEGER		0[0-7]*[uU]?
        -:        -:  197:HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
        -:        -:  198:
        -:        -:  199:%%
        -:        -:  200:
      609:      629:  201:	glcpp_parser_t *parser = yyextra;
        -:        -:  202:
        -:        -:  203:	/* When we lex a multi-line comment, we replace it (as
        -:        -:  204:	 * specified) with a single space. But if the comment spanned
        -:        -:  205:	 * multiple lines, then subsequent parsing stages will not
        -:        -:  206:	 * count correct line numbers. To avoid this problem we keep
        -:        -:  207:	 * track of all newlines that were commented out by a
        -:        -:  208:	 * multi-line comment, and we emit a NEWLINE token for each at
        -:        -:  209:	 * the next legal opportunity, (which is when the lexer would
        -:        -:  210:	 * be emitting a NEWLINE token anyway).
        -:        -:  211:	 */
      609:      629:  212:	if (YY_START == NEWLINE_CATCHUP) {
    #####:    #####:  213:		if (parser->commented_newlines)
    #####:    #####:  214:			parser->commented_newlines--;
    #####:    #####:  215:		if (parser->commented_newlines == 0)
    #####:    #####:  216:			BEGIN INITIAL;
    #####:    #####:  217:		RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -:  218:	}
        -:        -:  219:
        -:        -:  220:	/* Set up the parser->skipping bit here before doing any lexing.
        -:        -:  221:	 *
        -:        -:  222:	 * This bit controls whether tokens are skipped, (as implemented by
        -:        -:  223:         * RETURN_TOKEN), such as between "#if 0" and "#endif".
        -:        -:  224:	 *
        -:        -:  225:	 * The parser maintains a skip_stack indicating whether we should be
        -:        -:  226:         * skipping, (and nested levels of #if/#ifdef/#ifndef/#endif) will
        -:        -:  227:         * push and pop items from the stack.
        -:        -:  228:	 *
        -:        -:  229:	 * Here are the rules for determining whether we are skipping:
        -:        -:  230:	 *
        -:        -:  231:	 *	1. If the skip stack is NULL, we are outside of all #if blocks
        -:        -:  232:	 *         and we are not skipping.
        -:        -:  233:	 *
        -:        -:  234:	 *	2. If the skip stack is non-NULL, the type of the top node in
        -:        -:  235:	 *	   the stack determines whether to skip. A type of
        -:        -:  236:	 *	   SKIP_NO_SKIP is used for blocks wheere we are emitting
        -:        -:  237:	 *	   tokens, (such as between #if 1 and #endif, or after the
        -:        -:  238:	 *	   #else of an #if 0, etc.).
        -:        -:  239:	 *
        -:        -:  240:	 *	3. The lexing_directive bit overrides the skip stack. This bit
        -:        -:  241:	 *	   is set when we are actively lexing the expression for a
        -:        -:  242:	 *	   pre-processor condition, (such as #if, #elif, or #else). In
        -:        -:  243:	 *	   this case, even if otherwise skipping, we need to emit the
        -:        -:  244:	 *	   tokens for this condition so that the parser can evaluate
        -:        -:  245:	 *	   the expression. (For, #else, there's no expression, but we
        -:        -:  246:	 *	   emit tokens so the parser can generate a nice error message
        -:        -:  247:	 *	   if there are any tokens here).
        -:        -:  248:	 */
      731:      751:  249:	if (parser->skip_stack &&
      138:      138:  250:	    parser->skip_stack->type != SKIP_NO_SKIP &&
       16:       16:  251:	    ! parser->lexing_directive)
        -:        -:  252:	{
       13:       13:  253:		parser->skipping = 1;
        -:        -:  254:	} else {
      596:      616:  255:		parser->skipping = 0;
        -:        -:  256:	}
        -:        -:  257:
        -:        -:  258:	/* Single-line comments */
        -:        -:  259:<INITIAL,DEFINE,HASH>"//"[^\r\n]* {
        -:        -:  260:}
        1:        1:  261:
        -:        -:  262:	/* Multi-line comments */
    #####:    #####:  263:<INITIAL,DEFINE,HASH>"/*"   { yy_push_state(COMMENT, yyscanner); }
    #####:    #####:  264:<COMMENT>[^*\r\n]*
    #####:    #####:  265:<COMMENT>[^*\r\n]*{NEWLINE} { yylineno++; yycolumn = 0; parser->commented_newlines++; }
    #####:    #####:  266:<COMMENT>"*"+[^*/\r\n]*
    #####:    #####:  267:<COMMENT>"*"+[^*/\r\n]*{NEWLINE} { yylineno++; yycolumn = 0; parser->commented_newlines++; }
    #####:    #####:  268:<COMMENT>"*"+"/"        {
    #####:    #####:  269:	yy_pop_state(yyscanner);
    #####:    #####:  270:	/* In the <HASH> start condition, we don't want any SPACE token. */
    #####:    #####:  271:	if (yyextra->space_tokens && YY_START != HASH)
    #####:    #####:  272:		RETURN_TOKEN (SPACE);
        -:        -:  273:}
    #####:    #####:  274:
        -:        -:  275:{HASH} {
       19:       19:  276:
        -:        -:  277:	/* If the '#' is the first non-whitespace, non-comment token on this
        -:        -:  278:	 * line, then it introduces a directive, switch to the <HASH> start
        -:        -:  279:	 * condition.
        -:        -:  280:	 *
        -:        -:  281:	 * Otherwise, this is just punctuation, so return the HASH_TOKEN
        -:        -:  282:         * token. */
       19:       19:  283:	if (parser->first_non_space_token_this_line) {
       19:       19:  284:		BEGIN HASH;
        -:        -:  285:	}
        -:        -:  286:
       19:       19:  287:	RETURN_TOKEN_NEVER_SKIP (HASH_TOKEN);
        -:        -:  288:}
    #####:    #####:  289:
        -:        -:  290:<HASH>version{HSPACE}+ {
        2:        2:  291:	BEGIN INITIAL;
        2:        2:  292:	yyextra->space_tokens = 0;
        2:        2:  293:	yyextra->lexing_version_directive = 1;
        2:        2:  294:	RETURN_STRING_TOKEN (VERSION_TOKEN);
        -:        -:  295:}
    #####:    #####:  296:
        -:        -:  297:	/* Swallow empty #pragma directives, (to avoid confusing the
        -:        -:  298:	 * downstream compiler).
        -:        -:  299:	 *
        -:        -:  300:	 * Note: We use a simple regular expression for the lookahead
        -:        -:  301:	 * here. Specifically, we cannot use the complete {NEWLINE} expression
        -:        -:  302:	 * since it uses alternation and we've found that there's a flex bug
        -:        -:  303:	 * where using alternation in the lookahead portion of a pattern
        -:        -:  304:	 * triggers a buffer overrun. */
        -:        -:  305:<HASH>pragma{HSPACE}*/[\r\n] {
    #####:    #####:  306:	BEGIN INITIAL;
    #####:    #####:  307:}
    #####:    #####:  308:
    #####:    #####:  309:	/* glcpp doesn't handle #extension, #version, or #pragma directives.
    #####:    #####:  310:	 * Simply pass them through to the main compiler's lexer/parser. */
    #####:    #####:  311:<HASH>(extension|pragma)[^\r\n]* {
    #####:    #####:  312:	BEGIN INITIAL;
    #####:    #####:  313:	RETURN_STRING_TOKEN (PRAGMA);
        -:        -:  314:}
    #####:    #####:  315:
        -:        -:  316:<HASH>line{HSPACE}+ {
    #####:    #####:  317:	BEGIN INITIAL;
    #####:    #####:  318:	RETURN_TOKEN (LINE);
        -:        -:  319:}
    #####:    #####:  320:
        -:        -:  321:<HASH>{NEWLINE} {
    #####:    #####:  322:	BEGIN INITIAL;
    #####:    #####:  323:	yyextra->space_tokens = 0;
    #####:    #####:  324:	yylineno++;
    #####:    #####:  325:	yycolumn = 0;
    #####:    #####:  326:	RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -:  327:}
    #####:    #####:  328:
        -:        -:  329:	/* For the pre-processor directives, we return these tokens
        -:        -:  330:	 * even when we are otherwise skipping. */
        -:        -:  331:<HASH>ifdef {
        2:        2:  332:	BEGIN INITIAL;
        2:        2:  333:	yyextra->lexing_directive = 1;
        2:        2:  334:	yyextra->space_tokens = 0;
        2:        2:  335:	RETURN_TOKEN_NEVER_SKIP (IFDEF);
        -:        -:  336:}
    #####:    #####:  337:
        -:        -:  338:<HASH>ifndef {
        1:        1:  339:	BEGIN INITIAL;
        1:        1:  340:	yyextra->lexing_directive = 1;
        1:        1:  341:	yyextra->space_tokens = 0;
        1:        1:  342:	RETURN_TOKEN_NEVER_SKIP (IFNDEF);
        -:        -:  343:}
    #####:    #####:  344:
        -:        -:  345:<HASH>if/[^_a-zA-Z0-9] {
    #####:    #####:  346:	BEGIN INITIAL;
    #####:    #####:  347:	yyextra->lexing_directive = 1;
    #####:    #####:  348:	yyextra->space_tokens = 0;
    #####:    #####:  349:	RETURN_TOKEN_NEVER_SKIP (IF);
    #####:    #####:  350:}
    #####:    #####:  351:
        -:        -:  352:<HASH>elif/[^_a-zA-Z0-9] {
    #####:    #####:  353:	BEGIN INITIAL;
    #####:    #####:  354:	yyextra->lexing_directive = 1;
    #####:    #####:  355:	yyextra->space_tokens = 0;
    #####:    #####:  356:	RETURN_TOKEN_NEVER_SKIP (ELIF);
    #####:    #####:  357:}
    #####:    #####:  358:
        -:        -:  359:<HASH>else {
        1:        1:  360:	BEGIN INITIAL;
        1:        1:  361:	yyextra->space_tokens = 0;
        1:        1:  362:	RETURN_TOKEN_NEVER_SKIP (ELSE);
        -:        -:  363:}
    #####:    #####:  364:
        -:        -:  365:<HASH>endif {
        3:        3:  366:	BEGIN INITIAL;
        3:        3:  367:	yyextra->space_tokens = 0;
        3:        3:  368:	RETURN_TOKEN_NEVER_SKIP (ENDIF);
        -:        -:  369:}
    #####:    #####:  370:
        -:        -:  371:<HASH>error[^\r\n]* {
    #####:    #####:  372:	BEGIN INITIAL;
    #####:    #####:  373:	RETURN_STRING_TOKEN (ERROR_TOKEN);
        -:        -:  374:}
    #####:    #####:  375:
        -:        -:  376:	/* After we see a "#define" we enter the <DEFINE> start state
        -:        -:  377:	 * for the lexer. Within <DEFINE> we are looking for the first
        -:        -:  378:	 * identifier and specifically checking whether the identifier
        -:        -:  379:	 * is followed by a '(' or not, (to lex either a
        -:        -:  380:	 * FUNC_IDENTIFIER or an OBJ_IDENITIFIER token).
        -:        -:  381:	 *
        -:        -:  382:	 * While in the <DEFINE> state we also need to explicitly
        -:        -:  383:	 * handle a few other things that may appear before the
        -:        -:  384:	 * identifier:
        -:        -:  385:	 * 
        -:        -:  386:	 * 	* Comments, (handled above with the main support for
        -:        -:  387:	 * 	  comments).
        -:        -:  388:	 *
        -:        -:  389:	 *	* Whitespace (simply ignored)
        -:        -:  390:	 *
        -:        -:  391:	 *	* Anything else, (not an identifier, not a comment,
        -:        -:  392:	 *	  and not whitespace). This will generate an error.
        -:        -:  393:	 */
        -:        -:  394:<HASH>define{HSPACE}* {
       10:       10:  395:	if (! parser->skipping) {
       10:       10:  396:		BEGIN DEFINE;
       10:       10:  397:		yyextra->space_tokens = 0;
       10:       10:  398:		RETURN_TOKEN (DEFINE_TOKEN);
        -:        -:  399:	}
        -:        -:  400:}
    #####:    #####:  401:
        -:        -:  402:<HASH>undef {
    #####:    #####:  403:	BEGIN INITIAL;
    #####:    #####:  404:	yyextra->space_tokens = 0;
    #####:    #####:  405:	RETURN_TOKEN (UNDEF);
        -:        -:  406:}
    #####:    #####:  407:
        -:        -:  408:<HASH>{HSPACE}+ {
    #####:    #####:  409:	/* Nothing to do here. Importantly, don't leave the <HASH>
        -:        -:  410:	 * start condition, since it's legal to have space between the
        -:        -:  411:	 * '#' and the directive.. */
        -:        -:  412:}
    #####:    #####:  413:
        -:        -:  414:	/* This will catch any non-directive garbage after a HASH */
        -:        -:  415:<HASH>{NONSPACE} {
    #####:    #####:  416:	BEGIN INITIAL;
    #####:    #####:  417:	RETURN_TOKEN (GARBAGE);
        -:        -:  418:}
    #####:    #####:  419:
        -:        -:  420:	/* An identifier immediately followed by '(' */
        -:        -:  421:<DEFINE>{IDENTIFIER}/"(" {
       20:       20:  422:	BEGIN INITIAL;
       20:       20:  423:	RETURN_STRING_TOKEN (FUNC_IDENTIFIER);
       10:       10:  424:}
       10:       10:  425:
        -:        -:  426:	/* An identifier not immediately followed by '(' */
        -:        -:  427:<DEFINE>{IDENTIFIER} {
    #####:    #####:  428:	BEGIN INITIAL;
    #####:    #####:  429:	RETURN_STRING_TOKEN (OBJ_IDENTIFIER);
        -:        -:  430:}
    #####:    #####:  431:
        -:        -:  432:	/* Whitespace */
        -:        -:  433:<DEFINE>{HSPACE}+ {
    #####:    #####:  434:	/* Just ignore it. Nothing to do here. */
        -:        -:  435:}
    #####:    #####:  436:
        -:        -:  437:	/* '/' not followed by '*', so not a comment. This is an error. */
        -:        -:  438:<DEFINE>[/][^*]{NONSPACE}* {
    #####:    #####:  439:	BEGIN INITIAL;
    #####:    #####:  440:	glcpp_error(yylloc, yyextra, "#define followed by a non-identifier: %s", yytext);
    #####:    #####:  441:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -:  442:}
    #####:    #####:  443:
        -:        -:  444:	/* A character that can't start an identifier, comment, or
        -:        -:  445:	 * space. This is an error. */
        -:        -:  446:<DEFINE>[^_a-zA-Z/[:space:]]{NONSPACE}* {
    #####:    #####:  447:	BEGIN INITIAL;
    #####:    #####:  448:	glcpp_error(yylloc, yyextra, "#define followed by a non-identifier: %s", yytext);
    #####:    #####:  449:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -:  450:}
    #####:    #####:  451:
        -:        -:  452:{DECIMAL_INTEGER} {
       14:       14:  453:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -:  454:}
    #####:    #####:  455:
        -:        -:  456:{OCTAL_INTEGER} {
        5:        5:  457:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -:  458:}
    #####:    #####:  459:
        -:        -:  460:{HEXADECIMAL_INTEGER} {
    #####:    #####:  461:	RETURN_STRING_TOKEN (INTEGER_STRING);
        -:        -:  462:}
    #####:    #####:  463:
        -:        -:  464:"<<"  {
    #####:    #####:  465:	RETURN_TOKEN (LEFT_SHIFT);
        -:        -:  466:}
    #####:    #####:  467:
        -:        -:  468:">>" {
    #####:    #####:  469:	RETURN_TOKEN (RIGHT_SHIFT);
        -:        -:  470:}
    #####:    #####:  471:
        -:        -:  472:"<=" {
        1:        1:  473:	RETURN_TOKEN (LESS_OR_EQUAL);
        -:        -:  474:}
    #####:    #####:  475:
        -:        -:  476:">=" {
        2:        2:  477:	RETURN_TOKEN (GREATER_OR_EQUAL);
        -:        -:  478:}
    #####:    #####:  479:
        -:        -:  480:"==" {
    #####:    #####:  481:	RETURN_TOKEN (EQUAL);
        -:        -:  482:}
    #####:    #####:  483:
        -:        -:  484:"!=" {
    #####:    #####:  485:	RETURN_TOKEN (NOT_EQUAL);
        -:        -:  486:}
    #####:    #####:  487:
        -:        -:  488:"&&" {
    #####:    #####:  489:	RETURN_TOKEN (AND);
        -:        -:  490:}
    #####:    #####:  491:
        -:        -:  492:"||" {
    #####:    #####:  493:	RETURN_TOKEN (OR);
        -:        -:  494:}
    #####:    #####:  495:
        -:        -:  496:"++" {
        2:        2:  497:	RETURN_TOKEN (PLUS_PLUS);
        -:        -:  498:}
    #####:    #####:  499:
        -:        -:  500:"--" {
    #####:    #####:  501:	RETURN_TOKEN (MINUS_MINUS);
        -:        -:  502:}
    #####:    #####:  503:
        -:        -:  504:"##" {
    #####:    #####:  505:	if (! parser->skipping) {
    #####:    #####:  506:		if (parser->is_gles)
    #####:    #####:  507:			glcpp_error(yylloc, yyextra, "Token pasting (##) is illegal in GLES");
    #####:    #####:  508:		RETURN_TOKEN (PASTE);
        -:        -:  509:	}
        -:        -:  510:}
    #####:    #####:  511:
        -:        -:  512:"defined" {
    #####:    #####:  513:	RETURN_TOKEN (DEFINED);
        -:        -:  514:}
    #####:    #####:  515:
        -:        -:  516:{IDENTIFIER} {
      153:      157:  517:	RETURN_STRING_TOKEN (IDENTIFIER);
        -:        -:  518:}
       12:       12:  519:
        -:        -:  520:{PP_NUMBER} {
        2:        3:  521:	RETURN_STRING_TOKEN (OTHER);
        -:        -:  522:}
    #####:    #####:  523:
        -:        -:  524:{PUNCTUATION} {
      200:      207:  525:	RETURN_TOKEN (yytext[0]);
        -:        -:  526:}
        4:        4:  527:
        -:        -:  528:{OTHER}+ {
    #####:    #####:  529:	RETURN_STRING_TOKEN (OTHER);
        -:        -:  530:}
    #####:    #####:  531:
        -:        -:  532:{HSPACE} {
      509:      537:  533:	if (yyextra->space_tokens) {
      423:      451:  534:		RETURN_TOKEN (SPACE);
        -:        -:  535:	}
        -:        -:  536:}
      392:      414:  537:
        -:        -:  538:	/* We preserve all newlines, even between #if 0..#endif, so no
        -:        -:  539:	skipping.. */
        -:        -:  540:<*>{NEWLINE} {
       79:       81:  541:	if (parser->commented_newlines) {
       79:       81:  542:		BEGIN NEWLINE_CATCHUP;
        -:        -:  543:	} else {
       79:       81:  544:		BEGIN INITIAL;
        -:        -:  545:	}
       79:       81:  546:	yyextra->space_tokens = 1;
       79:       81:  547:	yyextra->lexing_directive = 0;
       79:       81:  548:	yyextra->lexing_version_directive = 0;
       79:       81:  549:	yylineno++;
       79:       81:  550:	yycolumn = 0;
       79:       81:  551:	RETURN_TOKEN_NEVER_SKIP (NEWLINE);
        -:        -:  552:}
    #####:    #####:  553:
        -:        -:  554:<INITIAL,COMMENT,DEFINE,HASH><<EOF>> {
        2:        2:  555:	if (YY_START == COMMENT)
    #####:    #####:  556:		glcpp_error(yylloc, yyextra, "Unterminated comment");
        2:        2:  557:	BEGIN DONE; /* Don't keep matching this rule forever. */
        2:        2:  558:	yyextra->lexing_directive = 0;
        2:        2:  559:	yyextra->lexing_version_directive = 0;
        2:        2:  560:	if (! parser->last_token_was_newline)
    #####:    #####:  561:		RETURN_TOKEN (NEWLINE);
        -:        -:  562:}
        2:        2:  563:
        -:        -:  564:	/* This is a catch-all to avoid the annoying default flex action which
        -:        -:  565:	 * matches any character and prints it. If any input ever matches this
        -:        -:  566:	 * rule, then we have made a mistake above and need to fix one or more
        -:        -:  567:	 * of the preceding patterns to match that input. */
        -:        -:  568:
    #####:    #####:  569:<*>. {
    #####:    #####:  570:	glcpp_error(yylloc, yyextra, "Internal compiler error: Unexpected character: %s", yytext);
        -:        -:  571:
        -:        -:  572:	/* We don't actually use the UNREACHABLE start condition. We
        -:        -:  573:	only have this block here so that we can pretend to call some
        -:        -:  574:	generated functions, (to avoid "defined but not used"
        -:        -:  575:	warnings. */
    #####:    #####:  576:        if (YY_START == UNREACHABLE) {
    #####:    #####:  577:		unput('.');
    #####:    #####:  578:		yy_top_state(yyextra);
        -:        -:  579:	}
        -:        -:  580:}
    #####:    #####:  581:
    #####:    #####:  582:%%
    #####:    #####:  583:
        -:        -:  584:void
        -:        -:  585:glcpp_lex_set_source_string(glcpp_parser_t *parser, const char *shader)
        2:        2:  586:{
        -:        -:  587:	yy_scan_string(shader, parser->scanner);
        2:        2:  588:}
        2:        2:  589:/*EOF*/

src/compiler/glcpp-parse.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.c
        -:        -:    0:Graph:glsl/glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glsl/glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/* A Bison parser, made by GNU Bison 3.0.4.  */
        -:        -:    2:
        -:        -:    3:/* Bison implementation for Yacc-like parsers in C
        -:        -:    4:
        -:        -:    5:   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
        -:        -:    6:
        -:        -:    7:   This program is free software: you can redistribute it and/or modify
        -:        -:    8:   it under the terms of the GNU General Public License as published by
        -:        -:    9:   the Free Software Foundation, either version 3 of the License, or
        -:        -:   10:   (at your option) any later version.
        -:        -:   11:
        -:        -:   12:   This program is distributed in the hope that it will be useful,
        -:        -:   13:   but WITHOUT ANY WARRANTY; without even the implied warranty of
        -:        -:   14:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        -:        -:   15:   GNU General Public License for more details.
        -:        -:   16:
        -:        -:   17:   You should have received a copy of the GNU General Public License
        -:        -:   18:   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
        -:        -:   19:
        -:        -:   20:/* As a special exception, you may create a larger work that contains
        -:        -:   21:   part or all of the Bison parser skeleton and distribute that work
        -:        -:   22:   under terms of your choice, so long as that work isn't itself a
        -:        -:   23:   parser generator using the skeleton or a modified version thereof
        -:        -:   24:   as a parser skeleton.  Alternatively, if you modify or redistribute
        -:        -:   25:   the parser skeleton itself, you may (at your option) remove this
        -:        -:   26:   special exception, which will cause the skeleton and the resulting
        -:        -:   27:   Bison output files to be licensed under the GNU General Public
        -:        -:   28:   License without this special exception.
        -:        -:   29:
        -:        -:   30:   This special exception was added by the Free Software Foundation in
        -:        -:   31:   version 2.2 of Bison.  */
        -:        -:   32:
        -:        -:   33:/* C LALR(1) parser skeleton written by Richard Stallman, by
        -:        -:   34:   simplifying the original so-called "semantic" parser.  */
        -:        -:   35:
        -:        -:   36:/* All symbols defined below should begin with yy or YY, to avoid
        -:        -:   37:   infringing on user name space.  This should be done even for local
        -:        -:   38:   variables, as they might otherwise be expanded by user macros.
        -:        -:   39:   There are some unavoidable exceptions within include files to
        -:        -:   40:   define necessary library symbols; they are noted "INFRINGES ON
        -:        -:   41:   USER NAME SPACE" below.  */
        -:        -:   42:
        -:        -:   43:/* Identify Bison output.  */
        -:        -:   44:#define YYBISON 1
        -:        -:   45:
        -:        -:   46:/* Bison version.  */
        -:        -:   47:#define YYBISON_VERSION "3.0.4"
        -:        -:   48:
        -:        -:   49:/* Skeleton name.  */
        -:        -:   50:#define YYSKELETON_NAME "yacc.c"
        -:        -:   51:
        -:        -:   52:/* Pure parsers.  */
        -:        -:   53:#define YYPURE 1
        -:        -:   54:
        -:        -:   55:/* Push parsers.  */
        -:        -:   56:#define YYPUSH 0
        -:        -:   57:
        -:        -:   58:/* Pull parsers.  */
        -:        -:   59:#define YYPULL 1
        -:        -:   60:
        -:        -:   61:
        -:        -:   62:/* Substitute the variable and function names.  */
        -:        -:   63:#define yyparse         glcpp_parser_parse
        -:        -:   64:#define yylex           glcpp_parser_lex
        -:        -:   65:#define yyerror         glcpp_parser_error
        -:        -:   66:#define yydebug         glcpp_parser_debug
        -:        -:   67:#define yynerrs         glcpp_parser_nerrs
        -:        -:   68:
        -:        -:   69:
        -:        -:   70:/* Copy the first part of user declarations.  */
        -:        -:   71:#line 1 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:339  */
        -:        -:   72:
        -:        -:   73:/*
        -:        -:   74: * Copyright © 2010 Intel Corporation
        -:        -:   75: *
        -:        -:   76: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:   77: * copy of this software and associated documentation files (the "Software"),
        -:        -:   78: * to deal in the Software without restriction, including without limitation
        -:        -:   79: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:   80: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   81: * Software is furnished to do so, subject to the following conditions:
        -:        -:   82: *
        -:        -:   83: * The above copyright notice and this permission notice (including the next
        -:        -:   84: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   85: * Software.
        -:        -:   86: *
        -:        -:   87: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   88: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   89: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   90: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   91: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   92: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   93: * DEALINGS IN THE SOFTWARE.
        -:        -:   94: */
        -:        -:   95:
        -:        -:   96:#include <stdio.h>
        -:        -:   97:#include <stdlib.h>
        -:        -:   98:#include <string.h>
        -:        -:   99:#include <assert.h>
        -:        -:  100:#include <inttypes.h>
        -:        -:  101:
        -:        -:  102:#include "glcpp.h"
        -:        -:  103:#include "main/core.h" /* for struct gl_extensions */
        -:        -:  104:#include "main/mtypes.h" /* for gl_api enum */
        -:        -:  105:
        -:        -:  106:static void
        -:        -:  107:yyerror(YYLTYPE *locp, glcpp_parser_t *parser, const char *error);
        -:        -:  108:
        -:        -:  109:static void
        -:        -:  110:_define_object_macro(glcpp_parser_t *parser,
        -:        -:  111:                     YYLTYPE *loc,
        -:        -:  112:                     const char *macro,
        -:        -:  113:                     token_list_t *replacements);
        -:        -:  114:
        -:        -:  115:static void
        -:        -:  116:_define_function_macro(glcpp_parser_t *parser,
        -:        -:  117:                       YYLTYPE *loc,
        -:        -:  118:                       const char *macro,
        -:        -:  119:                       string_list_t *parameters,
        -:        -:  120:                       token_list_t *replacements);
        -:        -:  121:
        -:        -:  122:static string_list_t *
        -:        -:  123:_string_list_create(glcpp_parser_t *parser);
        -:        -:  124:
        -:        -:  125:static void
        -:        -:  126:_string_list_append_item(glcpp_parser_t *parser, string_list_t *list,
        -:        -:  127:                         const char *str);
        -:        -:  128:
        -:        -:  129:static int
        -:        -:  130:_string_list_contains(string_list_t *list, const char *member, int *index);
        -:        -:  131:
        -:        -:  132:static const char *
        -:        -:  133:_string_list_has_duplicate(string_list_t *list);
        -:        -:  134:
        -:        -:  135:static int
        -:        -:  136:_string_list_length(string_list_t *list);
        -:        -:  137:
        -:        -:  138:static int
        -:        -:  139:_string_list_equal(string_list_t *a, string_list_t *b);
        -:        -:  140:
        -:        -:  141:static argument_list_t *
        -:        -:  142:_argument_list_create(glcpp_parser_t *parser);
        -:        -:  143:
        -:        -:  144:static void
        -:        -:  145:_argument_list_append(glcpp_parser_t *parser, argument_list_t *list,
        -:        -:  146:                      token_list_t *argument);
        -:        -:  147:
        -:        -:  148:static int
        -:        -:  149:_argument_list_length(argument_list_t *list);
        -:        -:  150:
        -:        -:  151:static token_list_t *
        -:        -:  152:_argument_list_member_at(argument_list_t *list, int index);
        -:        -:  153:
        -:        -:  154:static token_t *
        -:        -:  155:_token_create_str(glcpp_parser_t *parser, int type, char *str);
        -:        -:  156:
        -:        -:  157:static token_t *
        -:        -:  158:_token_create_ival(glcpp_parser_t *parser, int type, int ival);
        -:        -:  159:
        -:        -:  160:static token_list_t *
        -:        -:  161:_token_list_create(glcpp_parser_t *parser);
        -:        -:  162:
        -:        -:  163:static void
        -:        -:  164:_token_list_append(glcpp_parser_t *parser, token_list_t *list, token_t *token);
        -:        -:  165:
        -:        -:  166:static void
        -:        -:  167:_token_list_append_list(token_list_t *list, token_list_t *tail);
        -:        -:  168:
        -:        -:  169:static int
        -:        -:  170:_token_list_equal_ignoring_space(token_list_t *a, token_list_t *b);
        -:        -:  171:
        -:        -:  172:static void
        -:        -:  173:_parser_active_list_push(glcpp_parser_t *parser, const char *identifier,
        -:        -:  174:                         token_node_t *marker);
        -:        -:  175:
        -:        -:  176:static void
        -:        -:  177:_parser_active_list_pop(glcpp_parser_t *parser);
        -:        -:  178:
        -:        -:  179:static int
        -:        -:  180:_parser_active_list_contains(glcpp_parser_t *parser, const char *identifier);
        -:        -:  181:
        -:        -:  182:typedef enum {
        -:        -:  183:   EXPANSION_MODE_IGNORE_DEFINED,
        -:        -:  184:   EXPANSION_MODE_EVALUATE_DEFINED
        -:        -:  185:} expansion_mode_t;
        -:        -:  186:
        -:        -:  187:/* Expand list, and begin lexing from the result (after first
        -:        -:  188: * prefixing a token of type 'head_token_type').
        -:        -:  189: */
        -:        -:  190:static void
        -:        -:  191:_glcpp_parser_expand_and_lex_from(glcpp_parser_t *parser, int head_token_type,
        -:        -:  192:                                  token_list_t *list, expansion_mode_t mode);
        -:        -:  193:
        -:        -:  194:/* Perform macro expansion in-place on the given list. */
        -:        -:  195:static void
        -:        -:  196:_glcpp_parser_expand_token_list(glcpp_parser_t *parser, token_list_t *list,
        -:        -:  197:                                expansion_mode_t mode);
        -:        -:  198:
        -:        -:  199:static void
        -:        -:  200:_glcpp_parser_print_expanded_token_list(glcpp_parser_t *parser,
        -:        -:  201:                                        token_list_t *list);
        -:        -:  202:
        -:        -:  203:static void
        -:        -:  204:_glcpp_parser_skip_stack_push_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -:  205:                                 int condition);
        -:        -:  206:
        -:        -:  207:static void
        -:        -:  208:_glcpp_parser_skip_stack_change_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -:  209:                                   const char *type, int condition);
        -:        -:  210:
        -:        -:  211:static void
        -:        -:  212:_glcpp_parser_skip_stack_pop(glcpp_parser_t *parser, YYLTYPE *loc);
        -:        -:  213:
        -:        -:  214:static void
        -:        -:  215:_glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t version,
        -:        -:  216:                                         const char *ident, bool explicitly_set);
        -:        -:  217:
        -:        -:  218:static int
        -:        -:  219:glcpp_parser_lex(YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser);
        -:        -:  220:
        -:        -:  221:static void
        -:        -:  222:glcpp_parser_lex_from(glcpp_parser_t *parser, token_list_t *list);
        -:        -:  223:
        -:        -:  224:static void
        -:        -:  225:add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
        -:        -:  226:
        -:        -:  227:
        -:        -:  228:#line 229 "glsl/glcpp/glcpp-parse.c" /* yacc.c:339  */
        -:        -:  229:
        -:        -:  230:# ifndef YY_NULLPTR
        -:        -:  231:#  if defined __cplusplus && 201103L <= __cplusplus
        -:        -:  232:#   define YY_NULLPTR nullptr
        -:        -:  233:#  else
        -:        -:  234:#   define YY_NULLPTR 0
        -:        -:  235:#  endif
        -:        -:  236:# endif
        -:        -:  237:
        -:        -:  238:/* Enabling verbose error messages.  */
        -:        -:  239:#ifdef YYERROR_VERBOSE
        -:        -:  240:# undef YYERROR_VERBOSE
        -:        -:  241:# define YYERROR_VERBOSE 1
        -:        -:  242:#else
        -:        -:  243:# define YYERROR_VERBOSE 1
        -:        -:  244:#endif
        -:        -:  245:
        -:        -:  246:/* In a future release of Bison, this section will be replaced
        -:        -:  247:   by #include "glcpp-parse.h".  */
        -:        -:  248:#ifndef YY_GLCPP_PARSER_GLSL_GLCPP_GLCPP_PARSE_H_INCLUDED
        -:        -:  249:# define YY_GLCPP_PARSER_GLSL_GLCPP_GLCPP_PARSE_H_INCLUDED
        -:        -:  250:/* Debug traces.  */
        -:        -:  251:#ifndef YYDEBUG
        -:        -:  252:# define YYDEBUG 1
        -:        -:  253:#endif
        -:        -:  254:#if YYDEBUG
        -:        -:  255:extern int glcpp_parser_debug;
        -:        -:  256:#endif
        -:        -:  257:
        -:        -:  258:/* Token type.  */
        -:        -:  259:#ifndef YYTOKENTYPE
        -:        -:  260:# define YYTOKENTYPE
        -:        -:  261:  enum yytokentype
        -:        -:  262:  {
        -:        -:  263:    DEFINED = 258,
        -:        -:  264:    ELIF_EXPANDED = 259,
        -:        -:  265:    HASH_TOKEN = 260,
        -:        -:  266:    DEFINE_TOKEN = 261,
        -:        -:  267:    FUNC_IDENTIFIER = 262,
        -:        -:  268:    OBJ_IDENTIFIER = 263,
        -:        -:  269:    ELIF = 264,
        -:        -:  270:    ELSE = 265,
        -:        -:  271:    ENDIF = 266,
        -:        -:  272:    ERROR_TOKEN = 267,
        -:        -:  273:    IF = 268,
        -:        -:  274:    IFDEF = 269,
        -:        -:  275:    IFNDEF = 270,
        -:        -:  276:    LINE = 271,
        -:        -:  277:    PRAGMA = 272,
        -:        -:  278:    UNDEF = 273,
        -:        -:  279:    VERSION_TOKEN = 274,
        -:        -:  280:    GARBAGE = 275,
        -:        -:  281:    IDENTIFIER = 276,
        -:        -:  282:    IF_EXPANDED = 277,
        -:        -:  283:    INTEGER = 278,
        -:        -:  284:    INTEGER_STRING = 279,
        -:        -:  285:    LINE_EXPANDED = 280,
        -:        -:  286:    NEWLINE = 281,
        -:        -:  287:    OTHER = 282,
        -:        -:  288:    PLACEHOLDER = 283,
        -:        -:  289:    SPACE = 284,
        -:        -:  290:    PLUS_PLUS = 285,
        -:        -:  291:    MINUS_MINUS = 286,
        -:        -:  292:    PASTE = 287,
        -:        -:  293:    OR = 288,
        -:        -:  294:    AND = 289,
        -:        -:  295:    EQUAL = 290,
        -:        -:  296:    NOT_EQUAL = 291,
        -:        -:  297:    LESS_OR_EQUAL = 292,
        -:        -:  298:    GREATER_OR_EQUAL = 293,
        -:        -:  299:    LEFT_SHIFT = 294,
        -:        -:  300:    RIGHT_SHIFT = 295,
        -:        -:  301:    UNARY = 296
        -:        -:  302:  };
        -:        -:  303:#endif
        -:        -:  304:
        -:        -:  305:/* Value type.  */
        -:        -:  306:
        -:        -:  307:/* Location type.  */
        -:        -:  308:#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
        -:        -:  309:typedef struct YYLTYPE YYLTYPE;
        -:        -:  310:struct YYLTYPE
        -:        -:  311:{
        -:        -:  312:  int first_line;
        -:        -:  313:  int first_column;
        -:        -:  314:  int last_line;
        -:        -:  315:  int last_column;
        -:        -:  316:};
        -:        -:  317:# define YYLTYPE_IS_DECLARED 1
        -:        -:  318:# define YYLTYPE_IS_TRIVIAL 1
        -:        -:  319:#endif
        -:        -:  320:
        -:        -:  321:
        -:        -:  322:
        -:        -:  323:int glcpp_parser_parse (glcpp_parser_t *parser);
        -:        -:  324:
        -:        -:  325:#endif /* !YY_GLCPP_PARSER_GLSL_GLCPP_GLCPP_PARSE_H_INCLUDED  */
        -:        -:  326:
        -:        -:  327:/* Copy the second part of user declarations.  */
        -:        -:  328:
        -:        -:  329:#line 330 "glsl/glcpp/glcpp-parse.c" /* yacc.c:358  */
        -:        -:  330:
        -:        -:  331:#ifdef short
        -:        -:  332:# undef short
        -:        -:  333:#endif
        -:        -:  334:
        -:        -:  335:#ifdef YYTYPE_UINT8
        -:        -:  336:typedef YYTYPE_UINT8 yytype_uint8;
        -:        -:  337:#else
        -:        -:  338:typedef unsigned char yytype_uint8;
        -:        -:  339:#endif
        -:        -:  340:
        -:        -:  341:#ifdef YYTYPE_INT8
        -:        -:  342:typedef YYTYPE_INT8 yytype_int8;
        -:        -:  343:#else
        -:        -:  344:typedef signed char yytype_int8;
        -:        -:  345:#endif
        -:        -:  346:
        -:        -:  347:#ifdef YYTYPE_UINT16
        -:        -:  348:typedef YYTYPE_UINT16 yytype_uint16;
        -:        -:  349:#else
        -:        -:  350:typedef unsigned short int yytype_uint16;
        -:        -:  351:#endif
        -:        -:  352:
        -:        -:  353:#ifdef YYTYPE_INT16
        -:        -:  354:typedef YYTYPE_INT16 yytype_int16;
        -:        -:  355:#else
        -:        -:  356:typedef short int yytype_int16;
        -:        -:  357:#endif
        -:        -:  358:
        -:        -:  359:#ifndef YYSIZE_T
        -:        -:  360:# ifdef __SIZE_TYPE__
        -:        -:  361:#  define YYSIZE_T __SIZE_TYPE__
        -:        -:  362:# elif defined size_t
        -:        -:  363:#  define YYSIZE_T size_t
        -:        -:  364:# elif ! defined YYSIZE_T
        -:        -:  365:#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  366:#  define YYSIZE_T size_t
        -:        -:  367:# else
        -:        -:  368:#  define YYSIZE_T unsigned int
        -:        -:  369:# endif
        -:        -:  370:#endif
        -:        -:  371:
        -:        -:  372:#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
        -:        -:  373:
        -:        -:  374:#ifndef YY_
        -:        -:  375:# if defined YYENABLE_NLS && YYENABLE_NLS
        -:        -:  376:#  if ENABLE_NLS
        -:        -:  377:#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  378:#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
        -:        -:  379:#  endif
        -:        -:  380:# endif
        -:        -:  381:# ifndef YY_
        -:        -:  382:#  define YY_(Msgid) Msgid
        -:        -:  383:# endif
        -:        -:  384:#endif
        -:        -:  385:
        -:        -:  386:#ifndef YY_ATTRIBUTE
        -:        -:  387:# if (defined __GNUC__                                               \
        -:        -:  388:      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
        -:        -:  389:     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
        -:        -:  390:#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
        -:        -:  391:# else
        -:        -:  392:#  define YY_ATTRIBUTE(Spec) /* empty */
        -:        -:  393:# endif
        -:        -:  394:#endif
        -:        -:  395:
        -:        -:  396:#ifndef YY_ATTRIBUTE_PURE
        -:        -:  397:# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
        -:        -:  398:#endif
        -:        -:  399:
        -:        -:  400:#ifndef YY_ATTRIBUTE_UNUSED
        -:        -:  401:# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
        -:        -:  402:#endif
        -:        -:  403:
        -:        -:  404:#if !defined _Noreturn \
        -:        -:  405:     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
        -:        -:  406:# if defined _MSC_VER && 1200 <= _MSC_VER
        -:        -:  407:#  define _Noreturn __declspec (noreturn)
        -:        -:  408:# else
        -:        -:  409:#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
        -:        -:  410:# endif
        -:        -:  411:#endif
        -:        -:  412:
        -:        -:  413:/* Suppress unused-variable warnings by "using" E.  */
        -:        -:  414:#if ! defined lint || defined __GNUC__
        -:        -:  415:# define YYUSE(E) ((void) (E))
        -:        -:  416:#else
        -:        -:  417:# define YYUSE(E) /* empty */
        -:        -:  418:#endif
        -:        -:  419:
        -:        -:  420:#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
        -:        -:  421:/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
        -:        -:  422:# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
        -:        -:  423:    _Pragma ("GCC diagnostic push") \
        -:        -:  424:    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
        -:        -:  425:    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
        -:        -:  426:# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
        -:        -:  427:    _Pragma ("GCC diagnostic pop")
        -:        -:  428:#else
        -:        -:  429:# define YY_INITIAL_VALUE(Value) Value
        -:        -:  430:#endif
        -:        -:  431:#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -:  432:# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -:  433:# define YY_IGNORE_MAYBE_UNINITIALIZED_END
        -:        -:  434:#endif
        -:        -:  435:#ifndef YY_INITIAL_VALUE
        -:        -:  436:# define YY_INITIAL_VALUE(Value) /* Nothing. */
        -:        -:  437:#endif
        -:        -:  438:
        -:        -:  439:
        -:        -:  440:#if ! defined yyoverflow || YYERROR_VERBOSE
        -:        -:  441:
        -:        -:  442:/* The parser invokes alloca or malloc; define the necessary symbols.  */
        -:        -:  443:
        -:        -:  444:# ifdef YYSTACK_USE_ALLOCA
        -:        -:  445:#  if YYSTACK_USE_ALLOCA
        -:        -:  446:#   ifdef __GNUC__
        -:        -:  447:#    define YYSTACK_ALLOC __builtin_alloca
        -:        -:  448:#   elif defined __BUILTIN_VA_ARG_INCR
        -:        -:  449:#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  450:#   elif defined _AIX
        -:        -:  451:#    define YYSTACK_ALLOC __alloca
        -:        -:  452:#   elif defined _MSC_VER
        -:        -:  453:#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  454:#    define alloca _alloca
        -:        -:  455:#   else
        -:        -:  456:#    define YYSTACK_ALLOC alloca
        -:        -:  457:#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
        -:        -:  458:#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  459:      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
        -:        -:  460:#     ifndef EXIT_SUCCESS
        -:        -:  461:#      define EXIT_SUCCESS 0
        -:        -:  462:#     endif
        -:        -:  463:#    endif
        -:        -:  464:#   endif
        -:        -:  465:#  endif
        -:        -:  466:# endif
        -:        -:  467:
        -:        -:  468:# ifdef YYSTACK_ALLOC
        -:        -:  469:   /* Pacify GCC's 'empty if-body' warning.  */
        -:        -:  470:#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
        -:        -:  471:#  ifndef YYSTACK_ALLOC_MAXIMUM
        -:        -:  472:    /* The OS might guarantee only one guard page at the bottom of the stack,
        -:        -:  473:       and a page size can be as small as 4096 bytes.  So we cannot safely
        -:        -:  474:       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
        -:        -:  475:       to allow for a few compiler-allocated temporary stack slots.  */
        -:        -:  476:#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
        -:        -:  477:#  endif
        -:        -:  478:# else
        -:        -:  479:#  define YYSTACK_ALLOC YYMALLOC
        -:        -:  480:#  define YYSTACK_FREE YYFREE
        -:        -:  481:#  ifndef YYSTACK_ALLOC_MAXIMUM
        -:        -:  482:#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
        -:        -:  483:#  endif
        -:        -:  484:#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        -:        -:  485:       && ! ((defined YYMALLOC || defined malloc) \
        -:        -:  486:             && (defined YYFREE || defined free)))
        -:        -:  487:#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  488:#   ifndef EXIT_SUCCESS
        -:        -:  489:#    define EXIT_SUCCESS 0
        -:        -:  490:#   endif
        -:        -:  491:#  endif
        -:        -:  492:#  ifndef YYMALLOC
        -:        -:  493:#   define YYMALLOC malloc
        -:        -:  494:#   if ! defined malloc && ! defined EXIT_SUCCESS
        -:        -:  495:void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
        -:        -:  496:#   endif
        -:        -:  497:#  endif
        -:        -:  498:#  ifndef YYFREE
        -:        -:  499:#   define YYFREE free
        -:        -:  500:#   if ! defined free && ! defined EXIT_SUCCESS
        -:        -:  501:void free (void *); /* INFRINGES ON USER NAME SPACE */
        -:        -:  502:#   endif
        -:        -:  503:#  endif
        -:        -:  504:# endif
        -:        -:  505:#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
        -:        -:  506:
        -:        -:  507:
        -:        -:  508:#if (! defined yyoverflow \
        -:        -:  509:     && (! defined __cplusplus \
        -:        -:  510:         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
        -:        -:  511:             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
        -:        -:  512:
        -:        -:  513:/* A type that is properly aligned for any stack member.  */
        -:        -:  514:union yyalloc
        -:        -:  515:{
        -:        -:  516:  yytype_int16 yyss_alloc;
        -:        -:  517:  YYSTYPE yyvs_alloc;
        -:        -:  518:  YYLTYPE yyls_alloc;
        -:        -:  519:};
        -:        -:  520:
        -:        -:  521:/* The size of the maximum gap between one aligned stack and the next.  */
        -:        -:  522:# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
        -:        -:  523:
        -:        -:  524:/* The size of an array large to enough to hold all stacks, each with
        -:        -:  525:   N elements.  */
        -:        -:  526:# define YYSTACK_BYTES(N) \
        -:        -:  527:     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
        -:        -:  528:      + 2 * YYSTACK_GAP_MAXIMUM)
        -:        -:  529:
        -:        -:  530:# define YYCOPY_NEEDED 1
        -:        -:  531:
        -:        -:  532:/* Relocate STACK from its old location to the new one.  The
        -:        -:  533:   local variables YYSIZE and YYSTACKSIZE give the old and new number of
        -:        -:  534:   elements in the stack, and YYPTR gives the new location of the
        -:        -:  535:   stack.  Advance YYPTR to a properly aligned location for the next
        -:        -:  536:   stack.  */
        -:        -:  537:# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
        -:        -:  538:    do                                                                  \
        -:        -:  539:      {                                                                 \
        -:        -:  540:        YYSIZE_T yynewbytes;                                            \
        -:        -:  541:        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
        -:        -:  542:        Stack = &yyptr->Stack_alloc;                                    \
        -:        -:  543:        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        -:        -:  544:        yyptr += yynewbytes / sizeof (*yyptr);                          \
        -:        -:  545:      }                                                                 \
        -:        -:  546:    while (0)
        -:        -:  547:
        -:        -:  548:#endif
        -:        -:  549:
        -:        -:  550:#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
        -:        -:  551:/* Copy COUNT objects from SRC to DST.  The source and destination do
        -:        -:  552:   not overlap.  */
        -:        -:  553:# ifndef YYCOPY
        -:        -:  554:#  if defined __GNUC__ && 1 < __GNUC__
        -:        -:  555:#   define YYCOPY(Dst, Src, Count) \
        -:        -:  556:      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
        -:        -:  557:#  else
        -:        -:  558:#   define YYCOPY(Dst, Src, Count)              \
        -:        -:  559:      do                                        \
        -:        -:  560:        {                                       \
        -:        -:  561:          YYSIZE_T yyi;                         \
        -:        -:  562:          for (yyi = 0; yyi < (Count); yyi++)   \
        -:        -:  563:            (Dst)[yyi] = (Src)[yyi];            \
        -:        -:  564:        }                                       \
        -:        -:  565:      while (0)
        -:        -:  566:#  endif
        -:        -:  567:# endif
        -:        -:  568:#endif /* !YYCOPY_NEEDED */
        -:        -:  569:
        -:        -:  570:/* YYFINAL -- State number of the termination state.  */
        -:        -:  571:#define YYFINAL  2
        -:        -:  572:/* YYLAST -- Last index in YYTABLE.  */
        -:        -:  573:#define YYLAST   707
        -:        -:  574:
        -:        -:  575:/* YYNTOKENS -- Number of terminals.  */
        -:        -:  576:#define YYNTOKENS  64
        -:        -:  577:/* YYNNTS -- Number of nonterminals.  */
        -:        -:  578:#define YYNNTS  20
        -:        -:  579:/* YYNRULES -- Number of rules.  */
        -:        -:  580:#define YYNRULES  113
        -:        -:  581:/* YYNSTATES -- Number of states.  */
        -:        -:  582:#define YYNSTATES  180
        -:        -:  583:
        -:        -:  584:/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
        -:        -:  585:   by yylex, with out-of-bounds checking.  */
        -:        -:  586:#define YYUNDEFTOK  2
        -:        -:  587:#define YYMAXUTOK   296
        -:        -:  588:
        -:        -:  589:#define YYTRANSLATE(YYX)                                                \
        -:        -:  590:  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
        -:        -:  591:
        -:        -:  592:/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
        -:        -:  593:   as returned by yylex, without out-of-bounds checking.  */
        -:        -:  594:static const yytype_uint8 yytranslate[] =
        -:        -:  595:{
        -:        -:  596:       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  597:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  598:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  599:       2,     2,     2,    54,     2,     2,     2,    50,    37,     2,
        -:        -:  600:      52,    53,    48,    46,    56,    47,    61,    49,     2,     2,
        -:        -:  601:       2,     2,     2,     2,     2,     2,     2,     2,     2,    62,
        -:        -:  602:      40,    63,    41,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  603:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  604:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  605:       2,    57,     2,    58,    36,     2,     2,     2,     2,     2,
        -:        -:  606:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  607:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  608:       2,     2,     2,    59,    35,    60,    55,     2,     2,     2,
        -:        -:  609:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  610:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  611:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  612:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  613:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  614:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  615:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  616:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  617:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  618:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  619:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  620:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  621:       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        -:        -:  622:       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
        -:        -:  623:      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
        -:        -:  624:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -:  625:      38,    39,    42,    43,    44,    45,    51
        -:        -:  626:};
        -:        -:  627:
        -:        -:  628:#if YYDEBUG
        -:        -:  629:  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
        -:        -:  630:static const yytype_uint16 yyrline[] =
        -:        -:  631:{
        -:        -:  632:       0,   202,   202,   204,   208,   209,   210,   214,   218,   223,
        -:        -:  633:     228,   236,   249,   252,   255,   261,   264,   265,   278,   279,
        -:        -:  634:     317,   338,   348,   354,   360,   386,   406,   406,   419,   419,
        -:        -:  635:     422,   428,   434,   437,   443,   446,   449,   455,   464,   469,
        -:        -:  636:     480,   484,   491,   502,   513,   520,   527,   534,   541,   548,
        -:        -:  637:     555,   562,   569,   576,   583,   590,   597,   604,   616,   628,
        -:        -:  638:     635,   639,   643,   647,   651,   657,   661,   668,   669,   673,
        -:        -:  639:     674,   677,   679,   685,   690,   697,   701,   705,   709,   713,
        -:        -:  640:     717,   724,   725,   726,   727,   728,   729,   730,   731,   732,
        -:        -:  641:     733,   734,   735,   736,   737,   738,   739,   740,   741,   742,
        -:        -:  642:     743,   744,   745,   746,   747,   748,   749,   750,   751,   752,
        -:        -:  643:     753,   754,   755,   756
        -:        -:  644:};
        -:        -:  645:#endif
        -:        -:  646:
        -:        -:  647:#if YYDEBUG || YYERROR_VERBOSE || 1
        -:        -:  648:/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
        -:        -:  649:   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
        -:        -:  650:static const char *const yytname[] =
        -:        -:  651:{
        -:        -:  652:  "$end", "error", "$undefined", "DEFINED", "ELIF_EXPANDED", "HASH_TOKEN",
        -:        -:  653:  "DEFINE_TOKEN", "FUNC_IDENTIFIER", "OBJ_IDENTIFIER", "ELIF", "ELSE",
        -:        -:  654:  "ENDIF", "ERROR_TOKEN", "IF", "IFDEF", "IFNDEF", "LINE", "PRAGMA",
        -:        -:  655:  "UNDEF", "VERSION_TOKEN", "GARBAGE", "IDENTIFIER", "IF_EXPANDED",
        -:        -:  656:  "INTEGER", "INTEGER_STRING", "LINE_EXPANDED", "NEWLINE", "OTHER",
        -:        -:  657:  "PLACEHOLDER", "SPACE", "PLUS_PLUS", "MINUS_MINUS", "PASTE", "OR", "AND",
        -:        -:  658:  "'|'", "'^'", "'&'", "EQUAL", "NOT_EQUAL", "'<'", "'>'", "LESS_OR_EQUAL",
        -:        -:  659:  "GREATER_OR_EQUAL", "LEFT_SHIFT", "RIGHT_SHIFT", "'+'", "'-'", "'*'",
        -:        -:  660:  "'/'", "'%'", "UNARY", "'('", "')'", "'!'", "'~'", "','", "'['", "']'",
        -:        -:  661:  "'{'", "'}'", "'.'", "';'", "'='", "$accept", "input", "line",
        -:        -:  662:  "expanded_line", "define", "control_line", "control_line_success", "$@1",
        -:        -:  663:  "$@2", "control_line_error", "integer_constant", "version_constant",
        -:        -:  664:  "expression", "identifier_list", "text_line", "replacement_list", "junk",
        -:        -:  665:  "pp_tokens", "preprocessing_token", "operator", YY_NULLPTR
        -:        -:  666:};
        -:        -:  667:#endif
        -:        -:  668:
        -:        -:  669:# ifdef YYPRINT
        -:        -:  670:/* YYTOKNUM[NUM] -- (External) token number corresponding to the
        -:        -:  671:   (internal) symbol number NUM (which must be that of a token).  */
        -:        -:  672:static const yytype_uint16 yytoknum[] =
        -:        -:  673:{
        -:        -:  674:       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
        -:        -:  675:     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
        -:        -:  676:     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
        -:        -:  677:     285,   286,   287,   288,   289,   124,    94,    38,   290,   291,
        -:        -:  678:      60,    62,   292,   293,   294,   295,    43,    45,    42,    47,
        -:        -:  679:      37,   296,    40,    41,    33,   126,    44,    91,    93,   123,
        -:        -:  680:     125,    46,    59,    61
        -:        -:  681:};
        -:        -:  682:# endif
        -:        -:  683:
        -:        -:  684:#define YYPACT_NINF -135
        -:        -:  685:
        -:        -:  686:#define yypact_value_is_default(Yystate) \
        -:        -:  687:  (!!((Yystate) == (-135)))
        -:        -:  688:
        -:        -:  689:#define YYTABLE_NINF -1
        -:        -:  690:
        -:        -:  691:#define yytable_value_is_error(Yytable_value) \
        -:        -:  692:  0
        -:        -:  693:
        -:        -:  694:  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
        -:        -:  695:     STATE-NUM.  */
        -:        -:  696:static const yytype_int16 yypact[] =
        -:        -:  697:{
        -:        -:  698:    -135,   103,  -135,  -135,   -18,   595,  -135,   -18,  -135,   -15,
        -:        -:  699:    -135,  -135,    30,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
        -:        -:  700:    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
        -:        -:  701:    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
        -:        -:  702:    -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,  -135,
        -:        -:  703:    -135,  -135,   151,  -135,  -135,  -135,  -135,  -135,   -18,   -18,
        -:        -:  704:     -18,   -18,   -18,  -135,   525,    24,   199,  -135,  -135,    12,
        -:        -:  705:     247,    38,    39,   487,    37,    43,    44,   487,  -135,   550,
        -:        -:  706:      25,  -135,  -135,  -135,  -135,  -135,  -135,   -23,  -135,  -135,
        -:        -:  707:    -135,   -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,
        -:        -:  708:     -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,   -18,    15,
        -:        -:  709:     487,  -135,  -135,  -135,   295,    49,    51,  -135,  -135,   343,
        -:        -:  710:     487,   487,   391,  -135,    52,  -135,    36,   439,  -135,  -135,
        -:        -:  711:      79,  -135,   588,   604,   619,   633,   646,   657,   657,    -3,
        -:        -:  712:      -3,    -3,    -3,    34,    34,    63,    63,  -135,  -135,  -135,
        -:        -:  713:     -14,    83,   487,  -135,  -135,  -135,  -135,    88,   487,    89,
        -:        -:  714:    -135,  -135,    90,  -135,  -135,  -135,  -135,   487,     5,  -135,
        -:        -:  715:    -135,  -135,  -135,    91,   487,    97,  -135,    95,  -135,  -135
        -:        -:  716:};
        -:        -:  717:
        -:        -:  718:  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
        -:        -:  719:     Performed when YYTABLE does not specify something else to do.  Zero
        -:        -:  720:     means the default is an error.  */
        -:        -:  721:static const yytype_uint8 yydefact[] =
        -:        -:  722:{
        -:        -:  723:       2,     0,     1,    78,     0,     0,    75,     0,    76,     0,
        -:        -:  724:      67,    79,    80,   112,   113,   111,   107,   106,   105,   104,
        -:        -:  725:      88,   102,   103,    98,    99,   100,   101,    96,    97,    90,
        -:        -:  726:      91,    89,    94,    95,    83,    84,    93,    92,   109,    81,
        -:        -:  727:      82,    85,    86,    87,   108,   110,     3,     7,     4,    15,
        -:        -:  728:      16,     6,     0,    73,    77,    41,    38,    37,     0,     0,
        -:        -:  729:       0,     0,     0,    40,     0,     0,     0,    26,    28,     0,
        -:        -:  730:       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
        -:        -:  731:       0,     5,    68,    80,    74,    63,    62,     0,    60,    61,
        -:        -:  732:       9,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -:  733:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -:  734:      69,    35,    18,    25,     0,     0,     0,    34,    21,     0,
        -:        -:  735:      71,    71,     0,    33,     0,    39,     0,     0,     8,    10,
        -:        -:  736:       0,    64,    42,    43,    44,    45,    46,    48,    47,    52,
        -:        -:  737:      51,    50,    49,    54,    53,    56,    55,    59,    58,    57,
        -:        -:  738:       0,     0,    70,    24,    27,    29,    20,     0,    72,     0,
        -:        -:  739:      17,    19,     0,    30,    36,    11,    65,    69,     0,    12,
        -:        -:  740:      22,    23,    31,     0,    69,     0,    13,     0,    66,    14
        -:        -:  741:};
        -:        -:  742:
        -:        -:  743:  /* YYPGOTO[NTERM-NUM].  */
        -:        -:  744:static const yytype_int16 yypgoto[] =
        -:        -:  745:{
        -:        -:  746:    -135,  -135,  -135,  -135,  -135,    58,  -135,  -135,  -135,  -135,
        -:        -:  747:      -7,  -135,    -6,  -135,  -135,  -134,     1,    -1,   -48,  -135
        -:        -:  748:};
        -:        -:  749:
        -:        -:  750:  /* YYDEFGOTO[NTERM-NUM].  */
        -:        -:  751:static const yytype_int16 yydefgoto[] =
        -:        -:  752:{
        -:        -:  753:      -1,     1,    46,    47,   112,    48,    49,   115,   116,    50,
        -:        -:  754:      63,   126,    64,   168,    51,   151,   157,   152,    53,    54
        -:        -:  755:};
        -:        -:  756:
        -:        -:  757:  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
        -:        -:  758:     positive, shift that token.  If negative, reduce the rule whose
        -:        -:  759:     number is the opposite.  If YYTABLE_NINF, syntax error.  */
        -:        -:  760:static const yytype_uint8 yytable[] =
        -:        -:  761:{
        -:        -:  762:      52,    79,    80,    55,    84,    56,    57,   166,    56,    57,
        -:        -:  763:      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
        -:        -:  764:     101,   102,   103,   104,   105,   106,   107,   108,    58,    59,
        -:        -:  765:     131,   109,   110,   173,    60,     5,    61,    62,   117,   167,
        -:        -:  766:     177,   102,   103,   104,   105,   106,   107,   108,    56,    57,
        -:        -:  767:     111,   129,    85,    86,    87,    88,    89,   162,   174,   120,
        -:        -:  768:     121,   175,   163,   123,   124,   114,    84,   150,   125,   119,
        -:        -:  769:      81,    84,   122,   130,    84,   154,   127,   155,   161,    84,
        -:        -:  770:     104,   105,   106,   107,   108,   132,   133,   134,   135,   136,
        -:        -:  771:     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
        -:        -:  772:     147,   148,   149,     2,    84,   165,     3,     4,     5,   169,
        -:        -:  773:      84,   106,   107,   108,   170,   171,   172,   176,   178,   158,
        -:        -:  774:     158,   179,   159,     0,     6,     7,     0,     8,     9,    10,
        -:        -:  775:      11,     0,    12,    13,    14,    15,    16,    17,    18,    19,
        -:        -:  776:      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
        -:        -:  777:      30,    31,    32,    33,     3,    34,    35,    36,    37,    38,
        -:        -:  778:      39,    40,    41,    42,    43,    44,    45,     0,     0,     0,
        -:        -:  779:       0,     0,     6,     0,     0,     8,     0,    82,    11,     0,
        -:        -:  780:      83,    13,    14,    15,    16,    17,    18,    19,    20,    21,
        -:        -:  781:      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
        -:        -:  782:      32,    33,     3,    34,    35,    36,    37,    38,    39,    40,
        -:        -:  783:      41,    42,    43,    44,    45,     0,     0,     0,     0,     0,
        -:        -:  784:       6,     0,     0,     8,     0,   113,    11,     0,    83,    13,
        -:        -:  785:      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
        -:        -:  786:      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
        -:        -:  787:       3,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -:  788:      43,    44,    45,     0,     0,     0,     0,     0,     6,     0,
        -:        -:  789:       0,     8,     0,   118,    11,     0,    83,    13,    14,    15,
        -:        -:  790:      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
        -:        -:  791:      26,    27,    28,    29,    30,    31,    32,    33,     3,    34,
        -:        -:  792:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -:  793:      45,     0,     0,     0,     0,     0,     6,     0,     0,     8,
        -:        -:  794:       0,   153,    11,     0,    83,    13,    14,    15,    16,    17,
        -:        -:  795:      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
        -:        -:  796:      28,    29,    30,    31,    32,    33,     3,    34,    35,    36,
        -:        -:  797:      37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
        -:        -:  798:       0,     0,     0,     0,     6,     0,     0,     8,     0,   156,
        -:        -:  799:      11,     0,    83,    13,    14,    15,    16,    17,    18,    19,
        -:        -:  800:      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
        -:        -:  801:      30,    31,    32,    33,     3,    34,    35,    36,    37,    38,
        -:        -:  802:      39,    40,    41,    42,    43,    44,    45,     0,     0,     0,
        -:        -:  803:       0,     0,     6,     0,     0,     8,     0,   160,    11,     0,
        -:        -:  804:      83,    13,    14,    15,    16,    17,    18,    19,    20,    21,
        -:        -:  805:      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
        -:        -:  806:      32,    33,     3,    34,    35,    36,    37,    38,    39,    40,
        -:        -:  807:      41,    42,    43,    44,    45,     0,     0,     0,     0,     0,
        -:        -:  808:       6,     0,     0,     8,     0,   164,    11,     0,    83,    13,
        -:        -:  809:      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
        -:        -:  810:      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
        -:        -:  811:       3,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -:  812:      43,    44,    45,     0,     0,     0,     0,     0,     6,     0,
        -:        -:  813:       0,     8,     0,     0,    11,     0,    83,    13,    14,    15,
        -:        -:  814:      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
        -:        -:  815:      26,    27,    28,    29,    30,    31,    32,    33,     0,    34,
        -:        -:  816:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -:  817:      45,    90,     0,     0,     0,     0,     0,     0,    91,    92,
        -:        -:  818:      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
        -:        -:  819:     103,   104,   105,   106,   107,   108,   128,     0,     0,     0,
        -:        -:  820:       0,     0,     0,    91,    92,    93,    94,    95,    96,    97,
        -:        -:  821:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -:  822:     108,    65,     0,     0,    66,    67,    68,    69,    70,    71,
        -:        -:  823:      72,    73,    74,    75,    76,    77,     0,     0,     0,     0,
        -:        -:  824:       0,    78,    92,    93,    94,    95,    96,    97,    98,    99,
        -:        -:  825:     100,   101,   102,   103,   104,   105,   106,   107,   108,    93,
        -:        -:  826:      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
        -:        -:  827:     104,   105,   106,   107,   108,    94,    95,    96,    97,    98,
        -:        -:  828:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -:  829:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -:  830:     105,   106,   107,   108,    96,    97,    98,    99,   100,   101,
        -:        -:  831:     102,   103,   104,   105,   106,   107,   108,    98,    99,   100,
        -:        -:  832:     101,   102,   103,   104,   105,   106,   107,   108
        -:        -:  833:};
        -:        -:  834:
        -:        -:  835:static const yytype_int16 yycheck[] =
        -:        -:  836:{
        -:        -:  837:       1,     7,     9,    21,    52,    23,    24,    21,    23,    24,
        -:        -:  838:      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -:  839:      43,    44,    45,    46,    47,    48,    49,    50,    46,    47,
        -:        -:  840:      53,     7,     8,   167,    52,     5,    54,    55,    26,    53,
        -:        -:  841:     174,    44,    45,    46,    47,    48,    49,    50,    23,    24,
        -:        -:  842:      26,    26,    58,    59,    60,    61,    62,    21,    53,    21,
        -:        -:  843:      21,    56,    26,    26,    21,    66,   114,    52,    24,    70,
        -:        -:  844:      12,   119,    73,    80,   122,    26,    77,    26,    26,   127,
        -:        -:  845:      46,    47,    48,    49,    50,    91,    92,    93,    94,    95,
        -:        -:  846:      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
        -:        -:  847:     106,   107,   108,     0,   152,    26,     3,     4,     5,    26,
        -:        -:  848:     158,    48,    49,    50,    26,    26,    26,    26,    21,   120,
        -:        -:  849:     121,    26,   121,    -1,    21,    22,    -1,    24,    25,    26,
        -:        -:  850:      27,    -1,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -:  851:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -:  852:      47,    48,    49,    50,     3,    52,    53,    54,    55,    56,
        -:        -:  853:      57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
        -:        -:  854:      -1,    -1,    21,    -1,    -1,    24,    -1,    26,    27,    -1,
        -:        -:  855:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -:  856:      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
        -:        -:  857:      49,    50,     3,    52,    53,    54,    55,    56,    57,    58,
        -:        -:  858:      59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,
        -:        -:  859:      21,    -1,    -1,    24,    -1,    26,    27,    -1,    29,    30,
        -:        -:  860:      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
        -:        -:  861:      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
        -:        -:  862:       3,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        -:        -:  863:      61,    62,    63,    -1,    -1,    -1,    -1,    -1,    21,    -1,
        -:        -:  864:      -1,    24,    -1,    26,    27,    -1,    29,    30,    31,    32,
        -:        -:  865:      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -:  866:      43,    44,    45,    46,    47,    48,    49,    50,     3,    52,
        -:        -:  867:      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        -:        -:  868:      63,    -1,    -1,    -1,    -1,    -1,    21,    -1,    -1,    24,
        -:        -:  869:      -1,    26,    27,    -1,    29,    30,    31,    32,    33,    34,
        -:        -:  870:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -:  871:      45,    46,    47,    48,    49,    50,     3,    52,    53,    54,
        -:        -:  872:      55,    56,    57,    58,    59,    60,    61,    62,    63,    -1,
        -:        -:  873:      -1,    -1,    -1,    -1,    21,    -1,    -1,    24,    -1,    26,
        -:        -:  874:      27,    -1,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -:  875:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -:  876:      47,    48,    49,    50,     3,    52,    53,    54,    55,    56,
        -:        -:  877:      57,    58,    59,    60,    61,    62,    63,    -1,    -1,    -1,
        -:        -:  878:      -1,    -1,    21,    -1,    -1,    24,    -1,    26,    27,    -1,
        -:        -:  879:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -:  880:      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
        -:        -:  881:      49,    50,     3,    52,    53,    54,    55,    56,    57,    58,
        -:        -:  882:      59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,
        -:        -:  883:      21,    -1,    -1,    24,    -1,    26,    27,    -1,    29,    30,
        -:        -:  884:      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
        -:        -:  885:      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
        -:        -:  886:       3,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        -:        -:  887:      61,    62,    63,    -1,    -1,    -1,    -1,    -1,    21,    -1,
        -:        -:  888:      -1,    24,    -1,    -1,    27,    -1,    29,    30,    31,    32,
        -:        -:  889:      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -:  890:      43,    44,    45,    46,    47,    48,    49,    50,    -1,    52,
        -:        -:  891:      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        -:        -:  892:      63,    26,    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,
        -:        -:  893:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -:  894:      45,    46,    47,    48,    49,    50,    26,    -1,    -1,    -1,
        -:        -:  895:      -1,    -1,    -1,    33,    34,    35,    36,    37,    38,    39,
        -:        -:  896:      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
        -:        -:  897:      50,     6,    -1,    -1,     9,    10,    11,    12,    13,    14,
        -:        -:  898:      15,    16,    17,    18,    19,    20,    -1,    -1,    -1,    -1,
        -:        -:  899:      -1,    26,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -:  900:      42,    43,    44,    45,    46,    47,    48,    49,    50,    35,
        -:        -:  901:      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
        -:        -:  902:      46,    47,    48,    49,    50,    36,    37,    38,    39,    40,
        -:        -:  903:      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
        -:        -:  904:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -:  905:      47,    48,    49,    50,    38,    39,    40,    41,    42,    43,
        -:        -:  906:      44,    45,    46,    47,    48,    49,    50,    40,    41,    42,
        -:        -:  907:      43,    44,    45,    46,    47,    48,    49,    50
        -:        -:  908:};
        -:        -:  909:
        -:        -:  910:  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
        -:        -:  911:     symbol of state STATE-NUM.  */
        -:        -:  912:static const yytype_uint8 yystos[] =
        -:        -:  913:{
        -:        -:  914:       0,    65,     0,     3,     4,     5,    21,    22,    24,    25,
        -:        -:  915:      26,    27,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -:  916:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -:  917:      47,    48,    49,    50,    52,    53,    54,    55,    56,    57,
        -:        -:  918:      58,    59,    60,    61,    62,    63,    66,    67,    69,    70,
        -:        -:  919:      73,    78,    81,    82,    83,    21,    23,    24,    46,    47,
        -:        -:  920:      52,    54,    55,    74,    76,     6,     9,    10,    11,    12,
        -:        -:  921:      13,    14,    15,    16,    17,    18,    19,    20,    26,    76,
        -:        -:  922:      74,    69,    26,    29,    82,    76,    76,    76,    76,    76,
        -:        -:  923:      26,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -:  924:      42,    43,    44,    45,    46,    47,    48,    49,    50,     7,
        -:        -:  925:       8,    26,    68,    26,    81,    71,    72,    26,    26,    81,
        -:        -:  926:      21,    21,    81,    26,    21,    24,    75,    81,    26,    26,
        -:        -:  927:      74,    53,    76,    76,    76,    76,    76,    76,    76,    76,
        -:        -:  928:      76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
        -:        -:  929:      52,    79,    81,    26,    26,    26,    26,    80,    81,    80,
        -:        -:  930:      26,    26,    21,    26,    26,    26,    21,    53,    77,    26,
        -:        -:  931:      26,    26,    26,    79,    53,    56,    26,    79,    21,    26
        -:        -:  932:};
        -:        -:  933:
        -:        -:  934:  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
        -:        -:  935:static const yytype_uint8 yyr1[] =
        -:        -:  936:{
        -:        -:  937:       0,    64,    65,    65,    66,    66,    66,    66,    67,    67,
        -:        -:  938:      67,    67,    68,    68,    68,    69,    69,    69,    70,    70,
        -:        -:  939:      70,    70,    70,    70,    70,    70,    71,    70,    72,    70,
        -:        -:  940:      70,    70,    70,    70,    73,    73,    73,    74,    74,    75,
        -:        -:  941:      76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
        -:        -:  942:      76,    76,    76,    76,    76,    76,    76,    76,    76,    76,
        -:        -:  943:      76,    76,    76,    76,    76,    77,    77,    78,    78,    79,
        -:        -:  944:      79,    80,    80,    81,    81,    82,    82,    82,    82,    82,
        -:        -:  945:      82,    83,    83,    83,    83,    83,    83,    83,    83,    83,
        -:        -:  946:      83,    83,    83,    83,    83,    83,    83,    83,    83,    83,
        -:        -:  947:      83,    83,    83,    83,    83,    83,    83,    83,    83,    83,
        -:        -:  948:      83,    83,    83,    83
        -:        -:  949:};
        -:        -:  950:
        -:        -:  951:  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
        -:        -:  952:static const yytype_uint8 yyr2[] =
        -:        -:  953:{
        -:        -:  954:       0,     2,     0,     2,     1,     2,     1,     1,     3,     3,
        -:        -:  955:       3,     4,     3,     5,     6,     1,     1,     4,     3,     4,
        -:        -:  956:       4,     3,     5,     5,     4,     3,     0,     4,     0,     4,
        -:        -:  957:       4,     5,     2,     3,     3,     3,     4,     1,     1,     1,
        -:        -:  958:       1,     1,     3,     3,     3,     3,     3,     3,     3,     3,
        -:        -:  959:       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        -:        -:  960:       2,     2,     2,     2,     3,     1,     3,     1,     2,     0,
        -:        -:  961:       1,     0,     1,     1,     2,     1,     1,     1,     1,     1,
        -:        -:  962:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -:  963:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -:  964:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -:  965:       1,     1,     1,     1
        -:        -:  966:};
        -:        -:  967:
        -:        -:  968:
        -:        -:  969:#define yyerrok         (yyerrstatus = 0)
        -:        -:  970:#define yyclearin       (yychar = YYEMPTY)
        -:        -:  971:#define YYEMPTY         (-2)
        -:        -:  972:#define YYEOF           0
        -:        -:  973:
        -:        -:  974:#define YYACCEPT        goto yyacceptlab
        -:        -:  975:#define YYABORT         goto yyabortlab
        -:        -:  976:#define YYERROR         goto yyerrorlab
        -:        -:  977:
        -:        -:  978:
        -:        -:  979:#define YYRECOVERING()  (!!yyerrstatus)
        -:        -:  980:
        -:        -:  981:#define YYBACKUP(Token, Value)                                  \
        -:        -:  982:do                                                              \
        -:        -:  983:  if (yychar == YYEMPTY)                                        \
        -:        -:  984:    {                                                           \
        -:        -:  985:      yychar = (Token);                                         \
        -:        -:  986:      yylval = (Value);                                         \
        -:        -:  987:      YYPOPSTACK (yylen);                                       \
        -:        -:  988:      yystate = *yyssp;                                         \
        -:        -:  989:      goto yybackup;                                            \
        -:        -:  990:    }                                                           \
        -:        -:  991:  else                                                          \
        -:        -:  992:    {                                                           \
        -:        -:  993:      yyerror (&yylloc, parser, YY_("syntax error: cannot back up")); \
        -:        -:  994:      YYERROR;                                                  \
        -:        -:  995:    }                                                           \
        -:        -:  996:while (0)
        -:        -:  997:
        -:        -:  998:/* Error token number */
        -:        -:  999:#define YYTERROR        1
        -:        -: 1000:#define YYERRCODE       256
        -:        -: 1001:
        -:        -: 1002:
        -:        -: 1003:/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
        -:        -: 1004:   If N is 0, then set CURRENT to the empty location which ends
        -:        -: 1005:   the previous symbol: RHS[0] (always defined).  */
        -:        -: 1006:
        -:        -: 1007:#ifndef YYLLOC_DEFAULT
        -:        -: 1008:# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
        -:        -: 1009:    do                                                                  \
        -:        -: 1010:      if (N)                                                            \
        -:        -: 1011:        {                                                               \
        -:        -: 1012:          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
        -:        -: 1013:          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
        -:        -: 1014:          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
        -:        -: 1015:          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
        -:        -: 1016:        }                                                               \
        -:        -: 1017:      else                                                              \
        -:        -: 1018:        {                                                               \
        -:        -: 1019:          (Current).first_line   = (Current).last_line   =              \
        -:        -: 1020:            YYRHSLOC (Rhs, 0).last_line;                                \
        -:        -: 1021:          (Current).first_column = (Current).last_column =              \
        -:        -: 1022:            YYRHSLOC (Rhs, 0).last_column;                              \
        -:        -: 1023:        }                                                               \
        -:        -: 1024:    while (0)
        -:        -: 1025:#endif
        -:        -: 1026:
        -:        -: 1027:#define YYRHSLOC(Rhs, K) ((Rhs)[K])
        -:        -: 1028:
        -:        -: 1029:
        -:        -: 1030:/* Enable debugging if requested.  */
        -:        -: 1031:#if YYDEBUG
        -:        -: 1032:
        -:        -: 1033:# ifndef YYFPRINTF
        -:        -: 1034:#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
        -:        -: 1035:#  define YYFPRINTF fprintf
        -:        -: 1036:# endif
        -:        -: 1037:
        -:        -: 1038:# define YYDPRINTF(Args)                        \
        -:        -: 1039:do {                                            \
        -:        -: 1040:  if (yydebug)                                  \
        -:        -: 1041:    YYFPRINTF Args;                             \
        -:        -: 1042:} while (0)
        -:        -: 1043:
        -:        -: 1044:
        -:        -: 1045:/* YY_LOCATION_PRINT -- Print the location on the stream.
        -:        -: 1046:   This macro was not mandated originally: define only if we know
        -:        -: 1047:   we won't break user code: when these are the locations we know.  */
        -:        -: 1048:
        -:        -: 1049:#ifndef YY_LOCATION_PRINT
        -:        -: 1050:# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
        -:        -: 1051:
        -:        -: 1052:/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
        -:        -: 1053:
        -:        -: 1054:YY_ATTRIBUTE_UNUSED
        -:        -: 1055:static unsigned
    #####:    #####: 1056:yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
        -:        -: 1057:{
    #####:    #####: 1058:  unsigned res = 0;
    #####:    #####: 1059:  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
    #####:    #####: 1060:  if (0 <= yylocp->first_line)
        -:        -: 1061:    {
    #####:    #####: 1062:      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
    #####:    #####: 1063:      if (0 <= yylocp->first_column)
    #####:    #####: 1064:        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
        -:        -: 1065:    }
    #####:    #####: 1066:  if (0 <= yylocp->last_line)
        -:        -: 1067:    {
    #####:    #####: 1068:      if (yylocp->first_line < yylocp->last_line)
        -:        -: 1069:        {
    #####:    #####: 1070:          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
    #####:    #####: 1071:          if (0 <= end_col)
    #####:    #####: 1072:            res += YYFPRINTF (yyo, ".%d", end_col);
        -:        -: 1073:        }
    #####:    #####: 1074:      else if (0 <= end_col && yylocp->first_column < end_col)
    #####:    #####: 1075:        res += YYFPRINTF (yyo, "-%d", end_col);
        -:        -: 1076:    }
    #####:    #####: 1077:  return res;
        -:        -: 1078: }
        -:        -: 1079:
        -:        -: 1080:#  define YY_LOCATION_PRINT(File, Loc)          \
        -:        -: 1081:  yy_location_print_ (File, &(Loc))
        -:        -: 1082:
        -:        -: 1083:# else
        -:        -: 1084:#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
        -:        -: 1085:# endif
        -:        -: 1086:#endif
        -:        -: 1087:
        -:        -: 1088:
        -:        -: 1089:# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
        -:        -: 1090:do {                                                                      \
        -:        -: 1091:  if (yydebug)                                                            \
        -:        -: 1092:    {                                                                     \
        -:        -: 1093:      YYFPRINTF (stderr, "%s ", Title);                                   \
        -:        -: 1094:      yy_symbol_print (stderr,                                            \
        -:        -: 1095:                  Type, Value, Location, parser); \
        -:        -: 1096:      YYFPRINTF (stderr, "\n");                                           \
        -:        -: 1097:    }                                                                     \
        -:        -: 1098:} while (0)
        -:        -: 1099:
        -:        -: 1100:
        -:        -: 1101:/*----------------------------------------.
        -:        -: 1102:| Print this symbol's value on YYOUTPUT.  |
        -:        -: 1103:`----------------------------------------*/
        -:        -: 1104:
        -:        -: 1105:static void
    #####:    #####: 1106:yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, glcpp_parser_t *parser)
        -:        -: 1107:{
    #####:    #####: 1108:  FILE *yyo = yyoutput;
        -:        -: 1109:  YYUSE (yyo);
        -:        -: 1110:  YYUSE (yylocationp);
        -:        -: 1111:  YYUSE (parser);
    #####:    #####: 1112:  if (!yyvaluep)
    #####:    #####: 1113:    return;
        -:        -: 1114:# ifdef YYPRINT
        -:        -: 1115:  if (yytype < YYNTOKENS)
        -:        -: 1116:    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
        -:        -: 1117:# endif
        -:        -: 1118:  YYUSE (yytype);
        -:        -: 1119:}
        -:        -: 1120:
        -:        -: 1121:
        -:        -: 1122:/*--------------------------------.
        -:        -: 1123:| Print this symbol on YYOUTPUT.  |
        -:        -: 1124:`--------------------------------*/
        -:        -: 1125:
        -:        -: 1126:static void
    #####:    #####: 1127:yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, glcpp_parser_t *parser)
        -:        -: 1128:{
    #####:    #####: 1129:  YYFPRINTF (yyoutput, "%s %s (",
        -:        -: 1130:             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
        -:        -: 1131:
    #####:    #####: 1132:  YY_LOCATION_PRINT (yyoutput, *yylocationp);
    #####:    #####: 1133:  YYFPRINTF (yyoutput, ": ");
    #####:    #####: 1134:  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parser);
    #####:    #####: 1135:  YYFPRINTF (yyoutput, ")");
    #####:    #####: 1136:}
        -:        -: 1137:
        -:        -: 1138:/*------------------------------------------------------------------.
        -:        -: 1139:| yy_stack_print -- Print the state stack from its BOTTOM up to its |
        -:        -: 1140:| TOP (included).                                                   |
        -:        -: 1141:`------------------------------------------------------------------*/
        -:        -: 1142:
        -:        -: 1143:static void
    #####:    #####: 1144:yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
        -:        -: 1145:{
    #####:    #####: 1146:  YYFPRINTF (stderr, "Stack now");
    #####:    #####: 1147:  for (; yybottom <= yytop; yybottom++)
        -:        -: 1148:    {
    #####:    #####: 1149:      int yybot = *yybottom;
    #####:    #####: 1150:      YYFPRINTF (stderr, " %d", yybot);
        -:        -: 1151:    }
    #####:    #####: 1152:  YYFPRINTF (stderr, "\n");
    #####:    #####: 1153:}
        -:        -: 1154:
        -:        -: 1155:# define YY_STACK_PRINT(Bottom, Top)                            \
        -:        -: 1156:do {                                                            \
        -:        -: 1157:  if (yydebug)                                                  \
        -:        -: 1158:    yy_stack_print ((Bottom), (Top));                           \
        -:        -: 1159:} while (0)
        -:        -: 1160:
        -:        -: 1161:
        -:        -: 1162:/*------------------------------------------------.
        -:        -: 1163:| Report that the YYRULE is going to be reduced.  |
        -:        -: 1164:`------------------------------------------------*/
        -:        -: 1165:
        -:        -: 1166:static void
    #####:    #####: 1167:yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, glcpp_parser_t *parser)
        -:        -: 1168:{
    #####:    #####: 1169:  unsigned long int yylno = yyrline[yyrule];
    #####:    #####: 1170:  int yynrhs = yyr2[yyrule];
        -:        -: 1171:  int yyi;
    #####:    #####: 1172:  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
        -:        -: 1173:             yyrule - 1, yylno);
        -:        -: 1174:  /* The symbols being reduced.  */
    #####:    #####: 1175:  for (yyi = 0; yyi < yynrhs; yyi++)
        -:        -: 1176:    {
    #####:    #####: 1177:      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    #####:    #####: 1178:      yy_symbol_print (stderr,
    #####:    #####: 1179:                       yystos[yyssp[yyi + 1 - yynrhs]],
    #####:    #####: 1180:                       &(yyvsp[(yyi + 1) - (yynrhs)])
    #####:    #####: 1181:                       , &(yylsp[(yyi + 1) - (yynrhs)])                       , parser);
    #####:    #####: 1182:      YYFPRINTF (stderr, "\n");
        -:        -: 1183:    }
    #####:    #####: 1184:}
        -:        -: 1185:
        -:        -: 1186:# define YY_REDUCE_PRINT(Rule)          \
        -:        -: 1187:do {                                    \
        -:        -: 1188:  if (yydebug)                          \
        -:        -: 1189:    yy_reduce_print (yyssp, yyvsp, yylsp, Rule, parser); \
        -:        -: 1190:} while (0)
        -:        -: 1191:
        -:        -: 1192:/* Nonzero means print parse trace.  It is left uninitialized so that
        -:        -: 1193:   multiple parsers can coexist.  */
        -:        -: 1194:int yydebug;
        -:        -: 1195:#else /* !YYDEBUG */
        -:        -: 1196:# define YYDPRINTF(Args)
        -:        -: 1197:# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
        -:        -: 1198:# define YY_STACK_PRINT(Bottom, Top)
        -:        -: 1199:# define YY_REDUCE_PRINT(Rule)
        -:        -: 1200:#endif /* !YYDEBUG */
        -:        -: 1201:
        -:        -: 1202:
        -:        -: 1203:/* YYINITDEPTH -- initial size of the parser's stacks.  */
        -:        -: 1204:#ifndef YYINITDEPTH
        -:        -: 1205:# define YYINITDEPTH 200
        -:        -: 1206:#endif
        -:        -: 1207:
        -:        -: 1208:/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
        -:        -: 1209:   if the built-in stack extension method is used).
        -:        -: 1210:
        -:        -: 1211:   Do not make this value too large; the results are undefined if
        -:        -: 1212:   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
        -:        -: 1213:   evaluated with infinite-precision integer arithmetic.  */
        -:        -: 1214:
        -:        -: 1215:#ifndef YYMAXDEPTH
        -:        -: 1216:# define YYMAXDEPTH 10000
        -:        -: 1217:#endif
        -:        -: 1218:
        -:        -: 1219:
        -:        -: 1220:#if YYERROR_VERBOSE
        -:        -: 1221:
        -:        -: 1222:# ifndef yystrlen
        -:        -: 1223:#  if defined __GLIBC__ && defined _STRING_H
        -:        -: 1224:#   define yystrlen strlen
        -:        -: 1225:#  else
        -:        -: 1226:/* Return the length of YYSTR.  */
        -:        -: 1227:static YYSIZE_T
        -:        -: 1228:yystrlen (const char *yystr)
        -:        -: 1229:{
        -:        -: 1230:  YYSIZE_T yylen;
        -:        -: 1231:  for (yylen = 0; yystr[yylen]; yylen++)
        -:        -: 1232:    continue;
        -:        -: 1233:  return yylen;
        -:        -: 1234:}
        -:        -: 1235:#  endif
        -:        -: 1236:# endif
        -:        -: 1237:
        -:        -: 1238:# ifndef yystpcpy
        -:        -: 1239:#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
        -:        -: 1240:#   define yystpcpy stpcpy
        -:        -: 1241:#  else
        -:        -: 1242:/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
        -:        -: 1243:   YYDEST.  */
        -:        -: 1244:static char *
        -:        -: 1245:yystpcpy (char *yydest, const char *yysrc)
        -:        -: 1246:{
        -:        -: 1247:  char *yyd = yydest;
        -:        -: 1248:  const char *yys = yysrc;
        -:        -: 1249:
        -:        -: 1250:  while ((*yyd++ = *yys++) != '\0')
        -:        -: 1251:    continue;
        -:        -: 1252:
        -:        -: 1253:  return yyd - 1;
        -:        -: 1254:}
        -:        -: 1255:#  endif
        -:        -: 1256:# endif
        -:        -: 1257:
        -:        -: 1258:# ifndef yytnamerr
        -:        -: 1259:/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
        -:        -: 1260:   quotes and backslashes, so that it's suitable for yyerror.  The
        -:        -: 1261:   heuristic is that double-quoting is unnecessary unless the string
        -:        -: 1262:   contains an apostrophe, a comma, or backslash (other than
        -:        -: 1263:   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
        -:        -: 1264:   null, do not copy; instead, return the length of what the result
        -:        -: 1265:   would have been.  */
        -:        -: 1266:static YYSIZE_T
    #####:    #####: 1267:yytnamerr (char *yyres, const char *yystr)
        -:        -: 1268:{
    #####:    #####: 1269:  if (*yystr == '"')
        -:        -: 1270:    {
    #####:    #####: 1271:      YYSIZE_T yyn = 0;
    #####:    #####: 1272:      char const *yyp = yystr;
        -:        -: 1273:
        -:        -: 1274:      for (;;)
    #####:    #####: 1275:        switch (*++yyp)
        -:        -: 1276:          {
        -:        -: 1277:          case '\'':
        -:        -: 1278:          case ',':
    #####:    #####: 1279:            goto do_not_strip_quotes;
        -:        -: 1280:
        -:        -: 1281:          case '\\':
    #####:    #####: 1282:            if (*++yyp != '\\')
    #####:    #####: 1283:              goto do_not_strip_quotes;
        -:        -: 1284:            /* Fall through.  */
        -:        -: 1285:          default:
    #####:    #####: 1286:            if (yyres)
    #####:    #####: 1287:              yyres[yyn] = *yyp;
    #####:    #####: 1288:            yyn++;
    #####:    #####: 1289:            break;
        -:        -: 1290:
        -:        -: 1291:          case '"':
    #####:    #####: 1292:            if (yyres)
    #####:    #####: 1293:              yyres[yyn] = '\0';
    #####:    #####: 1294:            return yyn;
        -:        -: 1295:          }
    #####:    #####: 1296:    do_not_strip_quotes: ;
        -:        -: 1297:    }
        -:        -: 1298:
    #####:    #####: 1299:  if (! yyres)
    #####:    #####: 1300:    return yystrlen (yystr);
        -:        -: 1301:
    #####:    #####: 1302:  return yystpcpy (yyres, yystr) - yyres;
        -:        -: 1303:}
        -:        -: 1304:# endif
        -:        -: 1305:
        -:        -: 1306:/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
        -:        -: 1307:   about the unexpected token YYTOKEN for the state stack whose top is
        -:        -: 1308:   YYSSP.
        -:        -: 1309:
        -:        -: 1310:   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
        -:        -: 1311:   not large enough to hold the message.  In that case, also set
        -:        -: 1312:   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
        -:        -: 1313:   required number of bytes is too large to store.  */
        -:        -: 1314:static int
    #####:    #####: 1315:yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
        -:        -: 1316:                yytype_int16 *yyssp, int yytoken)
        -:        -: 1317:{
    #####:    #####: 1318:  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    #####:    #####: 1319:  YYSIZE_T yysize = yysize0;
        -:        -: 1320:  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
        -:        -: 1321:  /* Internationalized format string. */
    #####:    #####: 1322:  const char *yyformat = YY_NULLPTR;
        -:        -: 1323:  /* Arguments of yyformat. */
        -:        -: 1324:  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
        -:        -: 1325:  /* Number of reported tokens (one for the "unexpected", one per
        -:        -: 1326:     "expected"). */
    #####:    #####: 1327:  int yycount = 0;
        -:        -: 1328:
        -:        -: 1329:  /* There are many possibilities here to consider:
        -:        -: 1330:     - If this state is a consistent state with a default action, then
        -:        -: 1331:       the only way this function was invoked is if the default action
        -:        -: 1332:       is an error action.  In that case, don't check for expected
        -:        -: 1333:       tokens because there are none.
        -:        -: 1334:     - The only way there can be no lookahead present (in yychar) is if
        -:        -: 1335:       this state is a consistent state with a default action.  Thus,
        -:        -: 1336:       detecting the absence of a lookahead is sufficient to determine
        -:        -: 1337:       that there is no unexpected or expected token to report.  In that
        -:        -: 1338:       case, just report a simple "syntax error".
        -:        -: 1339:     - Don't assume there isn't a lookahead just because this state is a
        -:        -: 1340:       consistent state with a default action.  There might have been a
        -:        -: 1341:       previous inconsistent state, consistent state with a non-default
        -:        -: 1342:       action, or user semantic action that manipulated yychar.
        -:        -: 1343:     - Of course, the expected token list depends on states to have
        -:        -: 1344:       correct lookahead information, and it depends on the parser not
        -:        -: 1345:       to perform extra reductions after fetching a lookahead from the
        -:        -: 1346:       scanner and before detecting a syntax error.  Thus, state merging
        -:        -: 1347:       (from LALR or IELR) and default reductions corrupt the expected
        -:        -: 1348:       token list.  However, the list is correct for canonical LR with
        -:        -: 1349:       one exception: it will still contain any token that will not be
        -:        -: 1350:       accepted due to an error action in a later state.
        -:        -: 1351:  */
    #####:    #####: 1352:  if (yytoken != YYEMPTY)
        -:        -: 1353:    {
    #####:    #####: 1354:      int yyn = yypact[*yyssp];
    #####:    #####: 1355:      yyarg[yycount++] = yytname[yytoken];
    #####:    #####: 1356:      if (!yypact_value_is_default (yyn))
        -:        -: 1357:        {
        -:        -: 1358:          /* Start YYX at -YYN if negative to avoid negative indexes in
        -:        -: 1359:             YYCHECK.  In other words, skip the first -YYN actions for
        -:        -: 1360:             this state because they are default actions.  */
    #####:    #####: 1361:          int yyxbegin = yyn < 0 ? -yyn : 0;
        -:        -: 1362:          /* Stay within bounds of both yycheck and yytname.  */
    #####:    #####: 1363:          int yychecklim = YYLAST - yyn + 1;
    #####:    #####: 1364:          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
        -:        -: 1365:          int yyx;
        -:        -: 1366:
    #####:    #####: 1367:          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    #####:    #####: 1368:            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
    #####:    #####: 1369:                && !yytable_value_is_error (yytable[yyx + yyn]))
        -:        -: 1370:              {
    #####:    #####: 1371:                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
        -:        -: 1372:                  {
    #####:    #####: 1373:                    yycount = 1;
    #####:    #####: 1374:                    yysize = yysize0;
    #####:    #####: 1375:                    break;
        -:        -: 1376:                  }
    #####:    #####: 1377:                yyarg[yycount++] = yytname[yyx];
        -:        -: 1378:                {
    #####:    #####: 1379:                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
    #####:    #####: 1380:                  if (! (yysize <= yysize1
        -:        -: 1381:                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 1382:                    return 2;
    #####:    #####: 1383:                  yysize = yysize1;
        -:        -: 1384:                }
        -:        -: 1385:              }
        -:        -: 1386:        }
        -:        -: 1387:    }
        -:        -: 1388:
    #####:    #####: 1389:  switch (yycount)
        -:        -: 1390:    {
        -:        -: 1391:# define YYCASE_(N, S)                      \
        -:        -: 1392:      case N:                               \
        -:        -: 1393:        yyformat = S;                       \
        -:        -: 1394:      break
    #####:    #####: 1395:      YYCASE_(0, YY_("syntax error"));
    #####:    #####: 1396:      YYCASE_(1, YY_("syntax error, unexpected %s"));
    #####:    #####: 1397:      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
    #####:    #####: 1398:      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
    #####:    #####: 1399:      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
    #####:    #####: 1400:      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
        -:        -: 1401:# undef YYCASE_
        -:        -: 1402:    }
        -:        -: 1403:
        -:        -: 1404:  {
    #####:    #####: 1405:    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    #####:    #####: 1406:    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 1407:      return 2;
    #####:    #####: 1408:    yysize = yysize1;
        -:        -: 1409:  }
        -:        -: 1410:
    #####:    #####: 1411:  if (*yymsg_alloc < yysize)
        -:        -: 1412:    {
    #####:    #####: 1413:      *yymsg_alloc = 2 * yysize;
    #####:    #####: 1414:      if (! (yysize <= *yymsg_alloc
        -:        -: 1415:             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 1416:        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
    #####:    #####: 1417:      return 1;
        -:        -: 1418:    }
        -:        -: 1419:
        -:        -: 1420:  /* Avoid sprintf, as that infringes on the user's name space.
        -:        -: 1421:     Don't have undefined behavior even if the translation
        -:        -: 1422:     produced a string with the wrong number of "%s"s.  */
        -:        -: 1423:  {
    #####:    #####: 1424:    char *yyp = *yymsg;
    #####:    #####: 1425:    int yyi = 0;
    #####:    #####: 1426:    while ((*yyp = *yyformat) != '\0')
    #####:    #####: 1427:      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
        -:        -: 1428:        {
    #####:    #####: 1429:          yyp += yytnamerr (yyp, yyarg[yyi++]);
    #####:    #####: 1430:          yyformat += 2;
        -:        -: 1431:        }
        -:        -: 1432:      else
        -:        -: 1433:        {
    #####:    #####: 1434:          yyp++;
    #####:    #####: 1435:          yyformat++;
        -:        -: 1436:        }
        -:        -: 1437:  }
    #####:    #####: 1438:  return 0;
        -:        -: 1439:}
        -:        -: 1440:#endif /* YYERROR_VERBOSE */
        -:        -: 1441:
        -:        -: 1442:/*-----------------------------------------------.
        -:        -: 1443:| Release the memory associated to this symbol.  |
        -:        -: 1444:`-----------------------------------------------*/
        -:        -: 1445:
        -:        -: 1446:static void
        4:        4: 1447:yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, glcpp_parser_t *parser)
        -:        -: 1448:{
        -:        -: 1449:  YYUSE (yyvaluep);
        -:        -: 1450:  YYUSE (yylocationp);
        -:        -: 1451:  YYUSE (parser);
        4:        4: 1452:  if (!yymsg)
    #####:    #####: 1453:    yymsg = "Deleting";
        4:        4: 1454:  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
        -:        -: 1455:
        -:        -: 1456:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -: 1457:  YYUSE (yytype);
        -:        -: 1458:  YY_IGNORE_MAYBE_UNINITIALIZED_END
        4:        4: 1459:}
        -:        -: 1460:
        -:        -: 1461:
        -:        -: 1462:
        -:        -: 1463:
        -:        -: 1464:/*----------.
        -:        -: 1465:| yyparse.  |
        -:        -: 1466:`----------*/
        -:        -: 1467:
        -:        -: 1468:int
        2:        2: 1469:yyparse (glcpp_parser_t *parser)
        -:        -: 1470:{
        -:        -: 1471:/* The lookahead symbol.  */
        -:        -: 1472:int yychar;
        -:        -: 1473:
        -:        -: 1474:
        -:        -: 1475:/* The semantic value of the lookahead symbol.  */
        -:        -: 1476:/* Default value used for initialization, for pacifying older GCCs
        -:        -: 1477:   or non-GCC compilers.  */
        -:        -: 1478:YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
        -:        -: 1479:YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
        -:        -: 1480:
        -:        -: 1481:/* Location data for the lookahead symbol.  */
        -:        -: 1482:static YYLTYPE yyloc_default
        -:        -: 1483:# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
        -:        -: 1484:  = { 1, 1, 1, 1 }
        -:        -: 1485:# endif
        -:        -: 1486:;
        2:        2: 1487:YYLTYPE yylloc = yyloc_default;
        -:        -: 1488:
        -:        -: 1489:    /* Number of syntax errors so far.  */
        -:        -: 1490:    int yynerrs;
        -:        -: 1491:
        -:        -: 1492:    int yystate;
        -:        -: 1493:    /* Number of tokens to shift before error messages enabled.  */
        -:        -: 1494:    int yyerrstatus;
        -:        -: 1495:
        -:        -: 1496:    /* The stacks and their tools:
        -:        -: 1497:       'yyss': related to states.
        -:        -: 1498:       'yyvs': related to semantic values.
        -:        -: 1499:       'yyls': related to locations.
        -:        -: 1500:
        -:        -: 1501:       Refer to the stacks through separate pointers, to allow yyoverflow
        -:        -: 1502:       to reallocate them elsewhere.  */
        -:        -: 1503:
        -:        -: 1504:    /* The state stack.  */
        -:        -: 1505:    yytype_int16 yyssa[YYINITDEPTH];
        -:        -: 1506:    yytype_int16 *yyss;
        -:        -: 1507:    yytype_int16 *yyssp;
        -:        -: 1508:
        -:        -: 1509:    /* The semantic value stack.  */
        -:        -: 1510:    YYSTYPE yyvsa[YYINITDEPTH];
        -:        -: 1511:    YYSTYPE *yyvs;
        -:        -: 1512:    YYSTYPE *yyvsp;
        -:        -: 1513:
        -:        -: 1514:    /* The location stack.  */
        -:        -: 1515:    YYLTYPE yylsa[YYINITDEPTH];
        -:        -: 1516:    YYLTYPE *yyls;
        -:        -: 1517:    YYLTYPE *yylsp;
        -:        -: 1518:
        -:        -: 1519:    /* The locations where the error started and ended.  */
        -:        -: 1520:    YYLTYPE yyerror_range[3];
        -:        -: 1521:
        -:        -: 1522:    YYSIZE_T yystacksize;
        -:        -: 1523:
        -:        -: 1524:  int yyn;
        -:        -: 1525:  int yyresult;
        -:        -: 1526:  /* Lookahead token as an internal (translated) token number.  */
        2:        2: 1527:  int yytoken = 0;
        -:        -: 1528:  /* The variables used to return semantic value and location from the
        -:        -: 1529:     action routines.  */
        -:        -: 1530:  YYSTYPE yyval;
        -:        -: 1531:  YYLTYPE yyloc;
        -:        -: 1532:
        -:        -: 1533:#if YYERROR_VERBOSE
        -:        -: 1534:  /* Buffer for error messages, and its allocated size.  */
        -:        -: 1535:  char yymsgbuf[128];
        2:        2: 1536:  char *yymsg = yymsgbuf;
        2:        2: 1537:  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
        -:        -: 1538:#endif
        -:        -: 1539:
        -:        -: 1540:#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
        -:        -: 1541:
        -:        -: 1542:  /* The number of symbols on the RHS of the reduced rule.
        -:        -: 1543:     Keep to zero when no symbol should be popped.  */
        2:        2: 1544:  int yylen = 0;
        -:        -: 1545:
        2:        2: 1546:  yyssp = yyss = yyssa;
        2:        2: 1547:  yyvsp = yyvs = yyvsa;
        2:        2: 1548:  yylsp = yyls = yylsa;
        2:        2: 1549:  yystacksize = YYINITDEPTH;
        -:        -: 1550:
        2:        2: 1551:  YYDPRINTF ((stderr, "Starting parse\n"));
        -:        -: 1552:
        2:        2: 1553:  yystate = 0;
        2:        2: 1554:  yyerrstatus = 0;
        2:        2: 1555:  yynerrs = 0;
        2:        2: 1556:  yychar = YYEMPTY; /* Cause a token to be read.  */
        -:        -: 1557:
        -:        -: 1558:/* User initialization code.  */
        -:        -: 1559:#line 162 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1429  */
        -:        -: 1560:{
        -:        -: 1561:   yylloc.first_line = 1;
        -:        -: 1562:   yylloc.first_column = 1;
        -:        -: 1563:   yylloc.last_line = 1;
        -:        -: 1564:   yylloc.last_column = 1;
        -:        -: 1565:   yylloc.source = 0;
        -:        -: 1566:}
        -:        -: 1567:
        -:        -: 1568:#line 1569 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1429  */
        2:        2: 1569:  yylsp[0] = yylloc;
        2:        2: 1570:  goto yysetstate;
        -:        -: 1571:
        -:        -: 1572:/*------------------------------------------------------------.
        -:        -: 1573:| yynewstate -- Push a new state, which is found in yystate.  |
        -:        -: 1574:`------------------------------------------------------------*/
        -:        -: 1575: yynewstate:
        -:        -: 1576:  /* In all cases, when you get here, the value and location stacks
        -:        -: 1577:     have just been pushed.  So pushing a state here evens the stacks.  */
     1957:     2026: 1578:  yyssp++;
        -:        -: 1579:
        -:        -: 1580: yysetstate:
     1959:     2028: 1581:  *yyssp = yystate;
        -:        -: 1582:
     1959:     2028: 1583:  if (yyss + yystacksize - 1 <= yyssp)
        -:        -: 1584:    {
        -:        -: 1585:      /* Get the current used size of the three stacks, in elements.  */
    #####:    #####: 1586:      YYSIZE_T yysize = yyssp - yyss + 1;
        -:        -: 1587:
        -:        -: 1588:#ifdef yyoverflow
        -:        -: 1589:      {
        -:        -: 1590:        /* Give user a chance to reallocate the stack.  Use copies of
        -:        -: 1591:           these so that the &'s don't force the real ones into
        -:        -: 1592:           memory.  */
        -:        -: 1593:        YYSTYPE *yyvs1 = yyvs;
        -:        -: 1594:        yytype_int16 *yyss1 = yyss;
        -:        -: 1595:        YYLTYPE *yyls1 = yyls;
        -:        -: 1596:
        -:        -: 1597:        /* Each stack pointer address is followed by the size of the
        -:        -: 1598:           data in use in that stack, in bytes.  This used to be a
        -:        -: 1599:           conditional around just the two extra args, but that might
        -:        -: 1600:           be undefined if yyoverflow is a macro.  */
        -:        -: 1601:        yyoverflow (YY_("memory exhausted"),
        -:        -: 1602:                    &yyss1, yysize * sizeof (*yyssp),
        -:        -: 1603:                    &yyvs1, yysize * sizeof (*yyvsp),
        -:        -: 1604:                    &yyls1, yysize * sizeof (*yylsp),
        -:        -: 1605:                    &yystacksize);
        -:        -: 1606:
        -:        -: 1607:        yyls = yyls1;
        -:        -: 1608:        yyss = yyss1;
        -:        -: 1609:        yyvs = yyvs1;
        -:        -: 1610:      }
        -:        -: 1611:#else /* no yyoverflow */
        -:        -: 1612:# ifndef YYSTACK_RELOCATE
        -:        -: 1613:      goto yyexhaustedlab;
        -:        -: 1614:# else
        -:        -: 1615:      /* Extend the stack our own way.  */
    #####:    #####: 1616:      if (YYMAXDEPTH <= yystacksize)
    #####:    #####: 1617:        goto yyexhaustedlab;
    #####:    #####: 1618:      yystacksize *= 2;
    #####:    #####: 1619:      if (YYMAXDEPTH < yystacksize)
    #####:    #####: 1620:        yystacksize = YYMAXDEPTH;
        -:        -: 1621:
        -:        -: 1622:      {
    #####:    #####: 1623:        yytype_int16 *yyss1 = yyss;
    #####:    #####: 1624:        union yyalloc *yyptr =
    #####:    #####: 1625:          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    #####:    #####: 1626:        if (! yyptr)
    #####:    #####: 1627:          goto yyexhaustedlab;
    #####:    #####: 1628:        YYSTACK_RELOCATE (yyss_alloc, yyss);
    #####:    #####: 1629:        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    #####:    #####: 1630:        YYSTACK_RELOCATE (yyls_alloc, yyls);
        -:        -: 1631:#  undef YYSTACK_RELOCATE
    #####:    #####: 1632:        if (yyss1 != yyssa)
    #####:    #####: 1633:          YYSTACK_FREE (yyss1);
        -:        -: 1634:      }
        -:        -: 1635:# endif
        -:        -: 1636:#endif /* no yyoverflow */
        -:        -: 1637:
    #####:    #####: 1638:      yyssp = yyss + yysize - 1;
    #####:    #####: 1639:      yyvsp = yyvs + yysize - 1;
    #####:    #####: 1640:      yylsp = yyls + yysize - 1;
        -:        -: 1641:
    #####:    #####: 1642:      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
        -:        -: 1643:                  (unsigned long int) yystacksize));
        -:        -: 1644:
    #####:    #####: 1645:      if (yyss + yystacksize - 1 <= yyssp)
    #####:    #####: 1646:        YYABORT;
        -:        -: 1647:    }
        -:        -: 1648:
     1959:     2028: 1649:  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
        -:        -: 1650:
     1959:     2028: 1651:  if (yystate == YYFINAL)
        2:        2: 1652:    YYACCEPT;
        -:        -: 1653:
     1957:     2026: 1654:  goto yybackup;
        -:        -: 1655:
        -:        -: 1656:/*-----------.
        -:        -: 1657:| yybackup.  |
        -:        -: 1658:`-----------*/
        -:        -: 1659:yybackup:
        -:        -: 1660:
        -:        -: 1661:  /* Do appropriate processing given the current state.  Read a
        -:        -: 1662:     lookahead token if we need one and don't already have one.  */
        -:        -: 1663:
        -:        -: 1664:  /* First try to decide what to do without reference to lookahead token.  */
     1957:     2026: 1665:  yyn = yypact[yystate];
     1957:     2026: 1666:  if (yypact_value_is_default (yyn))
     1297:     1344: 1667:    goto yydefault;
        -:        -: 1668:
        -:        -: 1669:  /* Not known => get a lookahead token if don't already have one.  */
        -:        -: 1670:
        -:        -: 1671:  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
      660:      682: 1672:  if (yychar == YYEMPTY)
        -:        -: 1673:    {
      609:      629: 1674:      YYDPRINTF ((stderr, "Reading a token: "));
      609:      629: 1675:      yychar = yylex (&yylval, &yylloc, parser);
        -:        -: 1676:    }
        -:        -: 1677:
      660:      682: 1678:  if (yychar <= YYEOF)
        -:        -: 1679:    {
        2:        2: 1680:      yychar = yytoken = YYEOF;
        2:        2: 1681:      YYDPRINTF ((stderr, "Now at end of input.\n"));
        -:        -: 1682:    }
        -:        -: 1683:  else
        -:        -: 1684:    {
      658:      680: 1685:      yytoken = YYTRANSLATE (yychar);
      658:      680: 1686:      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
        -:        -: 1687:    }
        -:        -: 1688:
        -:        -: 1689:  /* If the proper action on seeing token YYTOKEN is to reduce or to
        -:        -: 1690:     detect an error, take that action.  */
      660:      682: 1691:  yyn += yytoken;
      660:      682: 1692:  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
        -:        -: 1693:    goto yydefault;
      609:      629: 1694:  yyn = yytable[yyn];
      609:      629: 1695:  if (yyn <= 0)
        -:        -: 1696:    {
        -:        -: 1697:      if (yytable_value_is_error (yyn))
        -:        -: 1698:        goto yyerrlab;
    #####:    #####: 1699:      yyn = -yyn;
    #####:    #####: 1700:      goto yyreduce;
        -:        -: 1701:    }
        -:        -: 1702:
        -:        -: 1703:  /* Count tokens shifted since error; after three, turn off error
        -:        -: 1704:     status.  */
      609:      629: 1705:  if (yyerrstatus)
    #####:    #####: 1706:    yyerrstatus--;
        -:        -: 1707:
        -:        -: 1708:  /* Shift the lookahead token.  */
      609:      629: 1709:  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
        -:        -: 1710:
        -:        -: 1711:  /* Discard the shifted token.  */
      609:      629: 1712:  yychar = YYEMPTY;
        -:        -: 1713:
      609:      629: 1714:  yystate = yyn;
        -:        -: 1715:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
      609:      629: 1716:  *++yyvsp = yylval;
        -:        -: 1717:  YY_IGNORE_MAYBE_UNINITIALIZED_END
      609:      629: 1718:  *++yylsp = yylloc;
      609:      629: 1719:  goto yynewstate;
        -:        -: 1720:
        -:        -: 1721:
        -:        -: 1722:/*-----------------------------------------------------------.
        -:        -: 1723:| yydefault -- do the default action for the current state.  |
        -:        -: 1724:`-----------------------------------------------------------*/
        -:        -: 1725:yydefault:
     1348:     1397: 1726:  yyn = yydefact[yystate];
     1348:     1397: 1727:  if (yyn == 0)
    #####:    #####: 1728:    goto yyerrlab;
     1348:     1397: 1729:  goto yyreduce;
        -:        -: 1730:
        -:        -: 1731:
        -:        -: 1732:/*-----------------------------.
        -:        -: 1733:| yyreduce -- Do a reduction.  |
        -:        -: 1734:`-----------------------------*/
        -:        -: 1735:yyreduce:
        -:        -: 1736:  /* yyn is the number of a rule to reduce with.  */
     1348:     1397: 1737:  yylen = yyr2[yyn];
        -:        -: 1738:
        -:        -: 1739:  /* If YYLEN is nonzero, implement the default value of the action:
        -:        -: 1740:     '$$ = $1'.
        -:        -: 1741:
        -:        -: 1742:     Otherwise, the following line sets YYVAL to garbage.
        -:        -: 1743:     This behavior is undocumented and Bison
        -:        -: 1744:     users should not rely upon it.  Assigning to YYVAL
        -:        -: 1745:     unconditionally makes the parser a bit smaller, and it avoids a
        -:        -: 1746:     GCC warning that YYVAL may be used uninitialized.  */
     1348:     1397: 1747:  yyval = yyvsp[1-yylen];
        -:        -: 1748:
        -:        -: 1749:  /* Default location.  */
     1348:     1397: 1750:  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
     1348:     1397: 1751:  YY_REDUCE_PRINT (yyn);
     1348:     1397: 1752:  switch (yyn)
        -:        -: 1753:    {
        -:        -: 1754:        case 6:
        -:        -: 1755:#line 210 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1756:    {
        -:        -: 1757:		_glcpp_parser_print_expanded_token_list (parser, (yyvsp[0].token_list));
        -:        -: 1758:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
        -:        -: 1759:	}
        -:        -: 1760:#line 1761 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       60:       62: 1761:    break;
        -:        -: 1762:
        -:        -: 1763:  case 8:
        -:        -: 1764:#line 218 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1765:    {
        -:        -: 1766:		if (parser->is_gles && (yyvsp[-1].expression_value).undefined_macro)
        -:        -: 1767:			glcpp_error(& (yylsp[-2]), parser, "undefined macro %s in expression (illegal in GLES)", (yyvsp[-1].expression_value).undefined_macro);
        -:        -: 1768:		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[-2]), (yyvsp[-1].expression_value).value);
        -:        -: 1769:	}
        -:        -: 1770:#line 1771 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1771:    break;
        -:        -: 1772:
        -:        -: 1773:  case 9:
        -:        -: 1774:#line 223 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1775:    {
        -:        -: 1776:		if (parser->is_gles && (yyvsp[-1].expression_value).undefined_macro)
        -:        -: 1777:			glcpp_error(& (yylsp[-2]), parser, "undefined macro %s in expression (illegal in GLES)", (yyvsp[-1].expression_value).undefined_macro);
        -:        -: 1778:		_glcpp_parser_skip_stack_change_if (parser, & (yylsp[-2]), "elif", (yyvsp[-1].expression_value).value);
        -:        -: 1779:	}
        -:        -: 1780:#line 1781 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1781:    break;
        -:        -: 1782:
        -:        -: 1783:  case 10:
        -:        -: 1784:#line 228 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1785:    {
        -:        -: 1786:		parser->has_new_line_number = 1;
        -:        -: 1787:		parser->new_line_number = (yyvsp[-1].ival);
        -:        -: 1788:		ralloc_asprintf_rewrite_tail (&parser->output,
        -:        -: 1789:					      &parser->output_length,
        -:        -: 1790:					      "#line %" PRIiMAX "\n",
        -:        -: 1791:					      (yyvsp[-1].ival));
        -:        -: 1792:	}
        -:        -: 1793:#line 1794 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1794:    break;
        -:        -: 1795:
        -:        -: 1796:  case 11:
        -:        -: 1797:#line 236 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1798:    {
        -:        -: 1799:		parser->has_new_line_number = 1;
        -:        -: 1800:		parser->new_line_number = (yyvsp[-2].ival);
        -:        -: 1801:		parser->has_new_source_number = 1;
        -:        -: 1802:		parser->new_source_number = (yyvsp[-1].ival);
        -:        -: 1803:		ralloc_asprintf_rewrite_tail (&parser->output,
        -:        -: 1804:					      &parser->output_length,
        -:        -: 1805:					      "#line %" PRIiMAX " %" PRIiMAX "\n",
        -:        -: 1806:					      (yyvsp[-2].ival), (yyvsp[-1].ival));
        -:        -: 1807:	}
        -:        -: 1808:#line 1809 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1809:    break;
        -:        -: 1810:
        -:        -: 1811:  case 12:
        -:        -: 1812:#line 249 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1813:    {
        -:        -: 1814:		_define_object_macro (parser, & (yylsp[-2]), (yyvsp[-2].str), (yyvsp[-1].token_list));
        -:        -: 1815:	}
        -:        -: 1816:#line 1817 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1817:    break;
        -:        -: 1818:
        -:        -: 1819:  case 13:
        -:        -: 1820:#line 252 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1821:    {
        -:        -: 1822:		_define_function_macro (parser, & (yylsp[-4]), (yyvsp[-4].str), NULL, (yyvsp[-1].token_list));
        -:        -: 1823:	}
        -:        -: 1824:#line 1825 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1825:    break;
        -:        -: 1826:
        -:        -: 1827:  case 14:
        -:        -: 1828:#line 255 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1829:    {
        -:        -: 1830:		_define_function_macro (parser, & (yylsp[-5]), (yyvsp[-5].str), (yyvsp[-3].string_list), (yyvsp[-1].token_list));
        -:        -: 1831:	}
        -:        -: 1832:#line 1833 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       10:       10: 1833:    break;
        -:        -: 1834:
        -:        -: 1835:  case 15:
        -:        -: 1836:#line 261 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1837:    {
        -:        -: 1838:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
        -:        -: 1839:	}
        -:        -: 1840:#line 1841 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       19:       19: 1841:    break;
        -:        -: 1842:
        -:        -: 1843:  case 17:
        -:        -: 1844:#line 265 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1845:    {
        -:        -: 1846:
        -:        -: 1847:		if (parser->skip_stack == NULL ||
        -:        -: 1848:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -: 1849:		{
        -:        -: 1850:			_glcpp_parser_expand_and_lex_from (parser,
        -:        -: 1851:							   LINE_EXPANDED, (yyvsp[-1].token_list),
        -:        -: 1852:							   EXPANSION_MODE_IGNORE_DEFINED);
        -:        -: 1853:		}
        -:        -: 1854:	}
        -:        -: 1855:#line 1856 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1856:    break;
        -:        -: 1857:
        -:        -: 1858:  case 19:
        -:        -: 1859:#line 279 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1860:    {
        -:        -: 1861:		struct hash_entry *entry;
        -:        -: 1862:
        -:        -: 1863:                /* Section 3.4 (Preprocessor) of the GLSL ES 3.00 spec says:
        -:        -: 1864:                 *
        -:        -: 1865:                 *    It is an error to undefine or to redefine a built-in
        -:        -: 1866:                 *    (pre-defined) macro name.
        -:        -: 1867:                 *
        -:        -: 1868:                 * The GLSL ES 1.00 spec does not contain this text.
        -:        -: 1869:                 *
        -:        -: 1870:                 * Section 3.3 (Preprocessor) of the GLSL 1.30 spec says:
        -:        -: 1871:                 *
        -:        -: 1872:                 *    #define and #undef functionality are defined as is
        -:        -: 1873:                 *    standard for C++ preprocessors for macro definitions
        -:        -: 1874:                 *    both with and without macro parameters.
        -:        -: 1875:                 *
        -:        -: 1876:                 * At least as far as I can tell GCC allow '#undef __FILE__'.
        -:        -: 1877:                 * Furthermore, there are desktop OpenGL conformance tests
        -:        -: 1878:                 * that expect '#undef __VERSION__' and '#undef
        -:        -: 1879:                 * GL_core_profile' to work.
        -:        -: 1880:                 *
        -:        -: 1881:                 * Only disallow #undef of pre-defined macros on GLSL ES >=
        -:        -: 1882:                 * 3.00 shaders.
        -:        -: 1883:                 */
        -:        -: 1884:		if (parser->is_gles &&
        -:        -: 1885:                    parser->version >= 300 &&
        -:        -: 1886:                    (strcmp("__LINE__", (yyvsp[-1].str)) == 0
        -:        -: 1887:                     || strcmp("__FILE__", (yyvsp[-1].str)) == 0
        -:        -: 1888:                     || strcmp("__VERSION__", (yyvsp[-1].str)) == 0
        -:        -: 1889:                     || strncmp("GL_", (yyvsp[-1].str), 3) == 0))
        -:        -: 1890:			glcpp_error(& (yylsp[-3]), parser, "Built-in (pre-defined)"
        -:        -: 1891:				    " macro names cannot be undefined.");
        -:        -: 1892:
        -:        -: 1893:		entry = _mesa_hash_table_search (parser->defines, (yyvsp[-1].str));
        -:        -: 1894:		if (entry) {
        -:        -: 1895:			_mesa_hash_table_remove (parser->defines, entry);
        -:        -: 1896:		}
        -:        -: 1897:	}
        -:        -: 1898:#line 1899 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1899:    break;
        -:        -: 1900:
        -:        -: 1901:  case 20:
        -:        -: 1902:#line 317 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1903:    {
        -:        -: 1904:		/* Be careful to only evaluate the 'if' expression if
        -:        -: 1905:		 * we are not skipping. When we are skipping, we
        -:        -: 1906:		 * simply push a new 0-valued 'if' onto the skip
        -:        -: 1907:		 * stack.
        -:        -: 1908:		 *
        -:        -: 1909:		 * This avoids generating diagnostics for invalid
        -:        -: 1910:		 * expressions that are being skipped. */
        -:        -: 1911:		if (parser->skip_stack == NULL ||
        -:        -: 1912:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -: 1913:		{
        -:        -: 1914:			_glcpp_parser_expand_and_lex_from (parser,
        -:        -: 1915:							   IF_EXPANDED, (yyvsp[-1].token_list),
        -:        -: 1916:							   EXPANSION_MODE_EVALUATE_DEFINED);
        -:        -: 1917:		}	
        -:        -: 1918:		else
        -:        -: 1919:		{
        -:        -: 1920:			_glcpp_parser_skip_stack_push_if (parser, & (yylsp[-3]), 0);
        -:        -: 1921:			parser->skip_stack->type = SKIP_TO_ENDIF;
        -:        -: 1922:		}
        -:        -: 1923:	}
        -:        -: 1924:#line 1925 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1925:    break;
        -:        -: 1926:
        -:        -: 1927:  case 21:
        -:        -: 1928:#line 338 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1929:    {
        -:        -: 1930:		/* #if without an expression is only an error if we
        -:        -: 1931:		 *  are not skipping */
        -:        -: 1932:		if (parser->skip_stack == NULL ||
        -:        -: 1933:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -: 1934:		{
        -:        -: 1935:			glcpp_error(& (yylsp[-2]), parser, "#if with no expression");
        -:        -: 1936:		}	
        -:        -: 1937:		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[-2]), 0);
        -:        -: 1938:	}
        -:        -: 1939:#line 1940 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1940:    break;
        -:        -: 1941:
        -:        -: 1942:  case 22:
        -:        -: 1943:#line 348 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1944:    {
        -:        -: 1945:		struct hash_entry *entry =
        -:        -: 1946:				_mesa_hash_table_search(parser->defines, (yyvsp[-2].str));
        -:        -: 1947:		macro_t *macro = entry ? entry->data : NULL;
        -:        -: 1948:		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[-4]), macro != NULL);
        -:        -: 1949:	}
        -:        -: 1950:#line 1951 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 1951:    break;
        -:        -: 1952:
        -:        -: 1953:  case 23:
        -:        -: 1954:#line 354 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1955:    {
        -:        -: 1956:		struct hash_entry *entry =
        -:        -: 1957:				_mesa_hash_table_search(parser->defines, (yyvsp[-2].str));
        -:        -: 1958:		macro_t *macro = entry ? entry->data : NULL;
        -:        -: 1959:		_glcpp_parser_skip_stack_push_if (parser, & (yylsp[-2]), macro == NULL);
        -:        -: 1960:	}
        -:        -: 1961:#line 1962 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 1962:    break;
        -:        -: 1963:
        -:        -: 1964:  case 24:
        -:        -: 1965:#line 360 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1966:    {
        -:        -: 1967:		/* Be careful to only evaluate the 'elif' expression
        -:        -: 1968:		 * if we are not skipping. When we are skipping, we
        -:        -: 1969:		 * simply change to a 0-valued 'elif' on the skip
        -:        -: 1970:		 * stack.
        -:        -: 1971:		 *
        -:        -: 1972:		 * This avoids generating diagnostics for invalid
        -:        -: 1973:		 * expressions that are being skipped. */
        -:        -: 1974:		if (parser->skip_stack &&
        -:        -: 1975:		    parser->skip_stack->type == SKIP_TO_ELSE)
        -:        -: 1976:		{
        -:        -: 1977:			_glcpp_parser_expand_and_lex_from (parser,
        -:        -: 1978:							   ELIF_EXPANDED, (yyvsp[-1].token_list),
        -:        -: 1979:							   EXPANSION_MODE_EVALUATE_DEFINED);
        -:        -: 1980:		}
        -:        -: 1981:		else if (parser->skip_stack &&
        -:        -: 1982:		    parser->skip_stack->has_else)
        -:        -: 1983:		{
        -:        -: 1984:			glcpp_error(& (yylsp[-3]), parser, "#elif after #else");
        -:        -: 1985:		}
        -:        -: 1986:		else
        -:        -: 1987:		{
        -:        -: 1988:			_glcpp_parser_skip_stack_change_if (parser, & (yylsp[-3]),
        -:        -: 1989:							    "elif", 0);
        -:        -: 1990:		}
        -:        -: 1991:	}
        -:        -: 1992:#line 1993 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 1993:    break;
        -:        -: 1994:
        -:        -: 1995:  case 25:
        -:        -: 1996:#line 386 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 1997:    {
        -:        -: 1998:		/* #elif without an expression is an error unless we
        -:        -: 1999:		 * are skipping. */
        -:        -: 2000:		if (parser->skip_stack &&
        -:        -: 2001:		    parser->skip_stack->type == SKIP_TO_ELSE)
        -:        -: 2002:		{
        -:        -: 2003:			glcpp_error(& (yylsp[-2]), parser, "#elif with no expression");
        -:        -: 2004:		}
        -:        -: 2005:		else if (parser->skip_stack &&
        -:        -: 2006:		    parser->skip_stack->has_else)
        -:        -: 2007:		{
        -:        -: 2008:			glcpp_error(& (yylsp[-2]), parser, "#elif after #else");
        -:        -: 2009:		}
        -:        -: 2010:		else
        -:        -: 2011:		{
        -:        -: 2012:			_glcpp_parser_skip_stack_change_if (parser, & (yylsp[-2]),
        -:        -: 2013:							    "elif", 0);
        -:        -: 2014:			glcpp_warning(& (yylsp[-2]), parser, "ignoring illegal #elif without expression");
        -:        -: 2015:		}
        -:        -: 2016:	}
        -:        -: 2017:#line 2018 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2018:    break;
        -:        -: 2019:
        -:        -: 2020:  case 26:
        -:        -: 2021:#line 406 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2022:    { parser->lexing_directive = 1; }
        -:        -: 2023:#line 2024 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 2024:    break;
        -:        -: 2025:
        -:        -: 2026:  case 27:
        -:        -: 2027:#line 406 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2028:    {
        -:        -: 2029:		if (parser->skip_stack &&
        -:        -: 2030:		    parser->skip_stack->has_else)
        -:        -: 2031:		{
        -:        -: 2032:			glcpp_error(& (yylsp[-3]), parser, "multiple #else");
        -:        -: 2033:		}
        -:        -: 2034:		else
        -:        -: 2035:		{
        -:        -: 2036:			_glcpp_parser_skip_stack_change_if (parser, & (yylsp[-3]), "else", 1);
        -:        -: 2037:			if (parser->skip_stack)
        -:        -: 2038:				parser->skip_stack->has_else = true;
        -:        -: 2039:		}
        -:        -: 2040:	}
        -:        -: 2041:#line 2042 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 2042:    break;
        -:        -: 2043:
        -:        -: 2044:  case 28:
        -:        -: 2045:#line 419 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2046:    {
        -:        -: 2047:		_glcpp_parser_skip_stack_pop (parser, & (yylsp[-1]));
        -:        -: 2048:	}
        -:        -: 2049:#line 2050 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        3:        3: 2050:    break;
        -:        -: 2051:
        -:        -: 2052:  case 30:
        -:        -: 2053:#line 422 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2054:    {
        -:        -: 2055:		if (parser->version_set) {
        -:        -: 2056:			glcpp_error(& (yylsp[-3]), parser, "#version must appear on the first line");
        -:        -: 2057:		}
        -:        -: 2058:		_glcpp_parser_handle_version_declaration(parser, (yyvsp[-1].ival), NULL, true);
        -:        -: 2059:	}
        -:        -: 2060:#line 2061 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 2061:    break;
        -:        -: 2062:
        -:        -: 2063:  case 31:
        -:        -: 2064:#line 428 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2065:    {
        -:        -: 2066:		if (parser->version_set) {
        -:        -: 2067:			glcpp_error(& (yylsp[-4]), parser, "#version must appear on the first line");
        -:        -: 2068:		}
        -:        -: 2069:		_glcpp_parser_handle_version_declaration(parser, (yyvsp[-2].ival), (yyvsp[-1].str), true);
        -:        -: 2070:	}
        -:        -: 2071:#line 2072 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2072:    break;
        -:        -: 2073:
        -:        -: 2074:  case 32:
        -:        -: 2075:#line 434 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2076:    {
        -:        -: 2077:		glcpp_parser_resolve_implicit_version(parser);
        -:        -: 2078:	}
        -:        -: 2079:#line 2080 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2080:    break;
        -:        -: 2081:
        -:        -: 2082:  case 33:
        -:        -: 2083:#line 437 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2084:    {
        -:        -: 2085:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "#%s", (yyvsp[-1].str));
        -:        -: 2086:	}
        -:        -: 2087:#line 2088 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2088:    break;
        -:        -: 2089:
        -:        -: 2090:  case 34:
        -:        -: 2091:#line 443 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2092:    {
        -:        -: 2093:		glcpp_error(& (yylsp[-2]), parser, "#%s", (yyvsp[-1].str));
        -:        -: 2094:	}
        -:        -: 2095:#line 2096 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2096:    break;
        -:        -: 2097:
        -:        -: 2098:  case 35:
        -:        -: 2099:#line 446 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2100:    {
        -:        -: 2101:		glcpp_error (& (yylsp[-2]), parser, "#define without macro name");
        -:        -: 2102:	}
        -:        -: 2103:#line 2104 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2104:    break;
        -:        -: 2105:
        -:        -: 2106:  case 36:
        -:        -: 2107:#line 449 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2108:    {
        -:        -: 2109:		glcpp_error (& (yylsp[-3]), parser, "Illegal non-directive after #");
        -:        -: 2110:	}
        -:        -: 2111:#line 2112 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2112:    break;
        -:        -: 2113:
        -:        -: 2114:  case 37:
        -:        -: 2115:#line 455 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2116:    {
        -:        -: 2117:		if (strlen ((yyvsp[0].str)) >= 3 && strncmp ((yyvsp[0].str), "0x", 2) == 0) {
        -:        -: 2118:			(yyval.ival) = strtoll ((yyvsp[0].str) + 2, NULL, 16);
        -:        -: 2119:		} else if ((yyvsp[0].str)[0] == '0') {
        -:        -: 2120:			(yyval.ival) = strtoll ((yyvsp[0].str), NULL, 8);
        -:        -: 2121:		} else {
        -:        -: 2122:			(yyval.ival) = strtoll ((yyvsp[0].str), NULL, 10);
        -:        -: 2123:		}
        -:        -: 2124:	}
        -:        -: 2125:#line 2126 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2126:    break;
        -:        -: 2127:
        -:        -: 2128:  case 38:
        -:        -: 2129:#line 464 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2130:    {
        -:        -: 2131:		(yyval.ival) = (yyvsp[0].ival);
        -:        -: 2132:	}
        -:        -: 2133:#line 2134 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2134:    break;
        -:        -: 2135:
        -:        -: 2136:  case 39:
        -:        -: 2137:#line 469 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2138:    {
        -:        -: 2139:	   /* Both octal and hexadecimal constants begin with 0. */
        -:        -: 2140:	   if ((yyvsp[0].str)[0] == '0' && (yyvsp[0].str)[1] != '\0') {
        -:        -: 2141:		glcpp_error(&(yylsp[0]), parser, "invalid #version \"%s\" (not a decimal constant)", (yyvsp[0].str));
        -:        -: 2142:		(yyval.ival) = 0;
        -:        -: 2143:	   } else {
        -:        -: 2144:		(yyval.ival) = strtoll((yyvsp[0].str), NULL, 10);
        -:        -: 2145:	   }
        -:        -: 2146:	}
        -:        -: 2147:#line 2148 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 2148:    break;
        -:        -: 2149:
        -:        -: 2150:  case 40:
        -:        -: 2151:#line 480 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2152:    {
        -:        -: 2153:		(yyval.expression_value).value = (yyvsp[0].ival);
        -:        -: 2154:		(yyval.expression_value).undefined_macro = NULL;
        -:        -: 2155:	}
        -:        -: 2156:#line 2157 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2157:    break;
        -:        -: 2158:
        -:        -: 2159:  case 41:
        -:        -: 2160:#line 484 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2161:    {
        -:        -: 2162:		(yyval.expression_value).value = 0;
        -:        -: 2163:		if (parser->is_gles)
        -:        -: 2164:			(yyval.expression_value).undefined_macro = linear_strdup(parser->linalloc, (yyvsp[0].str));
        -:        -: 2165:		else
        -:        -: 2166:			(yyval.expression_value).undefined_macro = NULL;
        -:        -: 2167:	}
        -:        -: 2168:#line 2169 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2169:    break;
        -:        -: 2170:
        -:        -: 2171:  case 42:
        -:        -: 2172:#line 491 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2173:    {
        -:        -: 2174:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value || (yyvsp[0].expression_value).value;
        -:        -: 2175:
        -:        -: 2176:		/* Short-circuit: Only flag undefined from right side
        -:        -: 2177:		 * if left side evaluates to false.
        -:        -: 2178:		 */
        -:        -: 2179:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2180:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2181:                else if (! (yyvsp[-2].expression_value).value)
        -:        -: 2182:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2183:	}
        -:        -: 2184:#line 2185 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2185:    break;
        -:        -: 2186:
        -:        -: 2187:  case 43:
        -:        -: 2188:#line 502 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2189:    {
        -:        -: 2190:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value && (yyvsp[0].expression_value).value;
        -:        -: 2191:
        -:        -: 2192:		/* Short-circuit: Only flag undefined from right-side
        -:        -: 2193:		 * if left side evaluates to true.
        -:        -: 2194:		 */
        -:        -: 2195:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2196:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2197:                else if ((yyvsp[-2].expression_value).value)
        -:        -: 2198:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2199:	}
        -:        -: 2200:#line 2201 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2201:    break;
        -:        -: 2202:
        -:        -: 2203:  case 44:
        -:        -: 2204:#line 513 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2205:    {
        -:        -: 2206:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value | (yyvsp[0].expression_value).value;
        -:        -: 2207:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2208:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2209:                else
        -:        -: 2210:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2211:	}
        -:        -: 2212:#line 2213 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2213:    break;
        -:        -: 2214:
        -:        -: 2215:  case 45:
        -:        -: 2216:#line 520 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2217:    {
        -:        -: 2218:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value ^ (yyvsp[0].expression_value).value;
        -:        -: 2219:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2220:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2221:                else
        -:        -: 2222:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2223:	}
        -:        -: 2224:#line 2225 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2225:    break;
        -:        -: 2226:
        -:        -: 2227:  case 46:
        -:        -: 2228:#line 527 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2229:    {
        -:        -: 2230:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value & (yyvsp[0].expression_value).value;
        -:        -: 2231:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2232:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2233:                else
        -:        -: 2234:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2235:	}
        -:        -: 2236:#line 2237 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2237:    break;
        -:        -: 2238:
        -:        -: 2239:  case 47:
        -:        -: 2240:#line 534 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2241:    {
        -:        -: 2242:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value != (yyvsp[0].expression_value).value;
        -:        -: 2243:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2244:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2245:                else
        -:        -: 2246:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2247:	}
        -:        -: 2248:#line 2249 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2249:    break;
        -:        -: 2250:
        -:        -: 2251:  case 48:
        -:        -: 2252:#line 541 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2253:    {
        -:        -: 2254:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value == (yyvsp[0].expression_value).value;
        -:        -: 2255:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2256:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2257:                else
        -:        -: 2258:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2259:	}
        -:        -: 2260:#line 2261 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2261:    break;
        -:        -: 2262:
        -:        -: 2263:  case 49:
        -:        -: 2264:#line 548 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2265:    {
        -:        -: 2266:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value >= (yyvsp[0].expression_value).value;
        -:        -: 2267:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2268:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2269:                else
        -:        -: 2270:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2271:	}
        -:        -: 2272:#line 2273 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2273:    break;
        -:        -: 2274:
        -:        -: 2275:  case 50:
        -:        -: 2276:#line 555 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2277:    {
        -:        -: 2278:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value <= (yyvsp[0].expression_value).value;
        -:        -: 2279:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2280:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2281:                else
        -:        -: 2282:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2283:	}
        -:        -: 2284:#line 2285 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2285:    break;
        -:        -: 2286:
        -:        -: 2287:  case 51:
        -:        -: 2288:#line 562 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2289:    {
        -:        -: 2290:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value > (yyvsp[0].expression_value).value;
        -:        -: 2291:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2292:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2293:                else
        -:        -: 2294:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2295:	}
        -:        -: 2296:#line 2297 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2297:    break;
        -:        -: 2298:
        -:        -: 2299:  case 52:
        -:        -: 2300:#line 569 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2301:    {
        -:        -: 2302:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value < (yyvsp[0].expression_value).value;
        -:        -: 2303:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2304:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2305:                else
        -:        -: 2306:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2307:	}
        -:        -: 2308:#line 2309 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2309:    break;
        -:        -: 2310:
        -:        -: 2311:  case 53:
        -:        -: 2312:#line 576 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2313:    {
        -:        -: 2314:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value >> (yyvsp[0].expression_value).value;
        -:        -: 2315:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2316:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2317:                else
        -:        -: 2318:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2319:	}
        -:        -: 2320:#line 2321 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2321:    break;
        -:        -: 2322:
        -:        -: 2323:  case 54:
        -:        -: 2324:#line 583 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2325:    {
        -:        -: 2326:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value << (yyvsp[0].expression_value).value;
        -:        -: 2327:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2328:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2329:                else
        -:        -: 2330:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2331:	}
        -:        -: 2332:#line 2333 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2333:    break;
        -:        -: 2334:
        -:        -: 2335:  case 55:
        -:        -: 2336:#line 590 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2337:    {
        -:        -: 2338:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value - (yyvsp[0].expression_value).value;
        -:        -: 2339:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2340:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2341:                else
        -:        -: 2342:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2343:	}
        -:        -: 2344:#line 2345 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2345:    break;
        -:        -: 2346:
        -:        -: 2347:  case 56:
        -:        -: 2348:#line 597 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2349:    {
        -:        -: 2350:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value + (yyvsp[0].expression_value).value;
        -:        -: 2351:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2352:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2353:                else
        -:        -: 2354:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2355:	}
        -:        -: 2356:#line 2357 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2357:    break;
        -:        -: 2358:
        -:        -: 2359:  case 57:
        -:        -: 2360:#line 604 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2361:    {
        -:        -: 2362:		if ((yyvsp[0].expression_value).value == 0) {
        -:        -: 2363:			yyerror (& (yylsp[-2]), parser,
        -:        -: 2364:				 "zero modulus in preprocessor directive");
        -:        -: 2365:		} else {
        -:        -: 2366:			(yyval.expression_value).value = (yyvsp[-2].expression_value).value % (yyvsp[0].expression_value).value;
        -:        -: 2367:		}
        -:        -: 2368:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2369:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2370:                else
        -:        -: 2371:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2372:	}
        -:        -: 2373:#line 2374 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2374:    break;
        -:        -: 2375:
        -:        -: 2376:  case 58:
        -:        -: 2377:#line 616 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2378:    {
        -:        -: 2379:		if ((yyvsp[0].expression_value).value == 0) {
        -:        -: 2380:			yyerror (& (yylsp[-2]), parser,
        -:        -: 2381:				 "division by 0 in preprocessor directive");
        -:        -: 2382:		} else {
        -:        -: 2383:			(yyval.expression_value).value = (yyvsp[-2].expression_value).value / (yyvsp[0].expression_value).value;
        -:        -: 2384:		}
        -:        -: 2385:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2386:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2387:                else
        -:        -: 2388:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2389:	}
        -:        -: 2390:#line 2391 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2391:    break;
        -:        -: 2392:
        -:        -: 2393:  case 59:
        -:        -: 2394:#line 628 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2395:    {
        -:        -: 2396:		(yyval.expression_value).value = (yyvsp[-2].expression_value).value * (yyvsp[0].expression_value).value;
        -:        -: 2397:		if ((yyvsp[-2].expression_value).undefined_macro)
        -:        -: 2398:			(yyval.expression_value).undefined_macro = (yyvsp[-2].expression_value).undefined_macro;
        -:        -: 2399:                else
        -:        -: 2400:			(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2401:	}
        -:        -: 2402:#line 2403 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2403:    break;
        -:        -: 2404:
        -:        -: 2405:  case 60:
        -:        -: 2406:#line 635 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2407:    {
        -:        -: 2408:		(yyval.expression_value).value = ! (yyvsp[0].expression_value).value;
        -:        -: 2409:		(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2410:	}
        -:        -: 2411:#line 2412 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2412:    break;
        -:        -: 2413:
        -:        -: 2414:  case 61:
        -:        -: 2415:#line 639 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2416:    {
        -:        -: 2417:		(yyval.expression_value).value = ~ (yyvsp[0].expression_value).value;
        -:        -: 2418:		(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2419:	}
        -:        -: 2420:#line 2421 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2421:    break;
        -:        -: 2422:
        -:        -: 2423:  case 62:
        -:        -: 2424:#line 643 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2425:    {
        -:        -: 2426:		(yyval.expression_value).value = - (yyvsp[0].expression_value).value;
        -:        -: 2427:		(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2428:	}
        -:        -: 2429:#line 2430 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2430:    break;
        -:        -: 2431:
        -:        -: 2432:  case 63:
        -:        -: 2433:#line 647 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2434:    {
        -:        -: 2435:		(yyval.expression_value).value = + (yyvsp[0].expression_value).value;
        -:        -: 2436:		(yyval.expression_value).undefined_macro = (yyvsp[0].expression_value).undefined_macro;
        -:        -: 2437:	}
        -:        -: 2438:#line 2439 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2439:    break;
        -:        -: 2440:
        -:        -: 2441:  case 64:
        -:        -: 2442:#line 651 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2443:    {
        -:        -: 2444:		(yyval.expression_value) = (yyvsp[-1].expression_value);
        -:        -: 2445:	}
        -:        -: 2446:#line 2447 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2447:    break;
        -:        -: 2448:
        -:        -: 2449:  case 65:
        -:        -: 2450:#line 657 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2451:    {
        -:        -: 2452:		(yyval.string_list) = _string_list_create (parser);
        -:        -: 2453:		_string_list_append_item (parser, (yyval.string_list), (yyvsp[0].str));
        -:        -: 2454:	}
        -:        -: 2455:#line 2456 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       10:       10: 2456:    break;
        -:        -: 2457:
        -:        -: 2458:  case 66:
        -:        -: 2459:#line 661 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2460:    {
        -:        -: 2461:		(yyval.string_list) = (yyvsp[-2].string_list);	
        -:        -: 2462:		_string_list_append_item (parser, (yyval.string_list), (yyvsp[0].str));
        -:        -: 2463:	}
        -:        -: 2464:#line 2465 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        5:        5: 2465:    break;
        -:        -: 2466:
        -:        -: 2467:  case 67:
        -:        -: 2468:#line 668 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2469:    { (yyval.token_list) = NULL; }
        -:        -: 2470:#line 2471 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       11:       11: 2471:    break;
        -:        -: 2472:
        -:        -: 2473:  case 69:
        -:        -: 2474:#line 673 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2475:    { (yyval.token_list) = NULL; }
        -:        -: 2476:#line 2477 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2477:    break;
        -:        -: 2478:
        -:        -: 2479:  case 72:
        -:        -: 2480:#line 679 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2481:    {
        -:        -: 2482:		glcpp_error(&(yylsp[0]), parser, "extra tokens at end of directive");
        -:        -: 2483:	}
        -:        -: 2484:#line 2485 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2485:    break;
        -:        -: 2486:
        -:        -: 2487:  case 73:
        -:        -: 2488:#line 685 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2489:    {
        -:        -: 2490:		parser->space_tokens = 1;
        -:        -: 2491:		(yyval.token_list) = _token_list_create (parser);
        -:        -: 2492:		_token_list_append (parser, (yyval.token_list), (yyvsp[0].token));
        -:        -: 2493:	}
        -:        -: 2494:#line 2495 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       59:       61: 2495:    break;
        -:        -: 2496:
        -:        -: 2497:  case 74:
        -:        -: 2498:#line 690 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2499:    {
        -:        -: 2500:		(yyval.token_list) = (yyvsp[-1].token_list);
        -:        -: 2501:		_token_list_append (parser, (yyval.token_list), (yyvsp[0].token));
        -:        -: 2502:	}
        -:        -: 2503:#line 2504 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
      376:      392: 2504:    break;
        -:        -: 2505:
        -:        -: 2506:  case 75:
        -:        -: 2507:#line 697 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2508:    {
        -:        -: 2509:		(yyval.token) = _token_create_str (parser, IDENTIFIER, (yyvsp[0].str));
        -:        -: 2510:		(yyval.token)->location = yylloc;
        -:        -: 2511:	}
        -:        -: 2512:#line 2513 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
      123:      127: 2513:    break;
        -:        -: 2514:
        -:        -: 2515:  case 76:
        -:        -: 2516:#line 701 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2517:    {
        -:        -: 2518:		(yyval.token) = _token_create_str (parser, INTEGER_STRING, (yyvsp[0].str));
        -:        -: 2519:		(yyval.token)->location = yylloc;
        -:        -: 2520:	}
        -:        -: 2521:#line 2522 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       17:       17: 2522:    break;
        -:        -: 2523:
        -:        -: 2524:  case 77:
        -:        -: 2525:#line 705 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2526:    {
        -:        -: 2527:		(yyval.token) = _token_create_ival (parser, (yyvsp[0].ival), (yyvsp[0].ival));
        -:        -: 2528:		(yyval.token)->location = yylloc;
        -:        -: 2529:	}
        -:        -: 2530:#line 2531 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
      176:      183: 2531:    break;
        -:        -: 2532:
        -:        -: 2533:  case 78:
        -:        -: 2534:#line 709 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2535:    {
        -:        -: 2536:		(yyval.token) = _token_create_ival (parser, DEFINED, DEFINED);
        -:        -: 2537:		(yyval.token)->location = yylloc;
        -:        -: 2538:	}
        -:        -: 2539:#line 2540 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2540:    break;
        -:        -: 2541:
        -:        -: 2542:  case 79:
        -:        -: 2543:#line 713 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2544:    {
        -:        -: 2545:		(yyval.token) = _token_create_str (parser, OTHER, (yyvsp[0].str));
        -:        -: 2546:		(yyval.token)->location = yylloc;
        -:        -: 2547:	}
        -:        -: 2548:#line 2549 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        3: 2549:    break;
        -:        -: 2550:
        -:        -: 2551:  case 80:
        -:        -: 2552:#line 717 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2553:    {
        -:        -: 2554:		(yyval.token) = _token_create_ival (parser, SPACE, SPACE);
        -:        -: 2555:		(yyval.token)->location = yylloc;
        -:        -: 2556:	}
        -:        -: 2557:#line 2558 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
      117:      123: 2558:    break;
        -:        -: 2559:
        -:        -: 2560:  case 81:
        -:        -: 2561:#line 724 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2562:    { (yyval.ival) = '['; }
        -:        -: 2563:#line 2564 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       17:       17: 2564:    break;
        -:        -: 2565:
        -:        -: 2566:  case 82:
        -:        -: 2567:#line 725 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2568:    { (yyval.ival) = ']'; }
        -:        -: 2569:#line 2570 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       17:       17: 2570:    break;
        -:        -: 2571:
        -:        -: 2572:  case 83:
        -:        -: 2573:#line 726 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2574:    { (yyval.ival) = '('; }
        -:        -: 2575:#line 2576 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       26:       27: 2576:    break;
        -:        -: 2577:
        -:        -: 2578:  case 84:
        -:        -: 2579:#line 727 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2580:    { (yyval.ival) = ')'; }
        -:        -: 2581:#line 2582 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       26:       27: 2582:    break;
        -:        -: 2583:
        -:        -: 2584:  case 85:
        -:        -: 2585:#line 728 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2586:    { (yyval.ival) = '{'; }
        -:        -: 2587:#line 2588 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        8:        9: 2588:    break;
        -:        -: 2589:
        -:        -: 2590:  case 86:
        -:        -: 2591:#line 729 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2592:    { (yyval.ival) = '}'; }
        -:        -: 2593:#line 2594 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        8:        9: 2594:    break;
        -:        -: 2595:
        -:        -: 2596:  case 87:
        -:        -: 2597:#line 730 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2598:    { (yyval.ival) = '.'; }
        -:        -: 2599:#line 2600 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       14:       15: 2600:    break;
        -:        -: 2601:
        -:        -: 2602:  case 88:
        -:        -: 2603:#line 731 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2604:    { (yyval.ival) = '&'; }
        -:        -: 2605:#line 2606 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2606:    break;
        -:        -: 2607:
        -:        -: 2608:  case 89:
        -:        -: 2609:#line 732 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2610:    { (yyval.ival) = '*'; }
        -:        -: 2611:#line 2612 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 2612:    break;
        -:        -: 2613:
        -:        -: 2614:  case 90:
        -:        -: 2615:#line 733 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2616:    { (yyval.ival) = '+'; }
        -:        -: 2617:#line 2618 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 2618:    break;
        -:        -: 2619:
        -:        -: 2620:  case 91:
        -:        -: 2621:#line 734 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2622:    { (yyval.ival) = '-'; }
        -:        -: 2623:#line 2624 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2624:    break;
        -:        -: 2625:
        -:        -: 2626:  case 92:
        -:        -: 2627:#line 735 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2628:    { (yyval.ival) = '~'; }
        -:        -: 2629:#line 2630 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2630:    break;
        -:        -: 2631:
        -:        -: 2632:  case 93:
        -:        -: 2633:#line 736 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2634:    { (yyval.ival) = '!'; }
        -:        -: 2635:#line 2636 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2636:    break;
        -:        -: 2637:
        -:        -: 2638:  case 94:
        -:        -: 2639:#line 737 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2640:    { (yyval.ival) = '/'; }
        -:        -: 2641:#line 2642 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 2642:    break;
        -:        -: 2643:
        -:        -: 2644:  case 95:
        -:        -: 2645:#line 738 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2646:    { (yyval.ival) = '%'; }
        -:        -: 2647:#line 2648 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2648:    break;
        -:        -: 2649:
        -:        -: 2650:  case 96:
        -:        -: 2651:#line 739 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2652:    { (yyval.ival) = LEFT_SHIFT; }
        -:        -: 2653:#line 2654 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2654:    break;
        -:        -: 2655:
        -:        -: 2656:  case 97:
        -:        -: 2657:#line 740 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2658:    { (yyval.ival) = RIGHT_SHIFT; }
        -:        -: 2659:#line 2660 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2660:    break;
        -:        -: 2661:
        -:        -: 2662:  case 98:
        -:        -: 2663:#line 741 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2664:    { (yyval.ival) = '<'; }
        -:        -: 2665:#line 2666 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        3: 2666:    break;
        -:        -: 2667:
        -:        -: 2668:  case 99:
        -:        -: 2669:#line 742 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2670:    { (yyval.ival) = '>'; }
        -:        -: 2671:#line 2672 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2672:    break;
        -:        -: 2673:
        -:        -: 2674:  case 100:
        -:        -: 2675:#line 743 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2676:    { (yyval.ival) = LESS_OR_EQUAL; }
        -:        -: 2677:#line 2678 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        1:        1: 2678:    break;
        -:        -: 2679:
        -:        -: 2680:  case 101:
        -:        -: 2681:#line 744 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2682:    { (yyval.ival) = GREATER_OR_EQUAL; }
        -:        -: 2683:#line 2684 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 2684:    break;
        -:        -: 2685:
        -:        -: 2686:  case 102:
        -:        -: 2687:#line 745 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2688:    { (yyval.ival) = EQUAL; }
        -:        -: 2689:#line 2690 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2690:    break;
        -:        -: 2691:
        -:        -: 2692:  case 103:
        -:        -: 2693:#line 746 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2694:    { (yyval.ival) = NOT_EQUAL; }
        -:        -: 2695:#line 2696 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2696:    break;
        -:        -: 2697:
        -:        -: 2698:  case 104:
        -:        -: 2699:#line 747 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2700:    { (yyval.ival) = '^'; }
        -:        -: 2701:#line 2702 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2702:    break;
        -:        -: 2703:
        -:        -: 2704:  case 105:
        -:        -: 2705:#line 748 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2706:    { (yyval.ival) = '|'; }
        -:        -: 2707:#line 2708 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2708:    break;
        -:        -: 2709:
        -:        -: 2710:  case 106:
        -:        -: 2711:#line 749 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2712:    { (yyval.ival) = AND; }
        -:        -: 2713:#line 2714 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2714:    break;
        -:        -: 2715:
        -:        -: 2716:  case 107:
        -:        -: 2717:#line 750 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2718:    { (yyval.ival) = OR; }
        -:        -: 2719:#line 2720 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2720:    break;
        -:        -: 2721:
        -:        -: 2722:  case 108:
        -:        -: 2723:#line 751 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2724:    { (yyval.ival) = ';'; }
        -:        -: 2725:#line 2726 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       22:       23: 2726:    break;
        -:        -: 2727:
        -:        -: 2728:  case 109:
        -:        -: 2729:#line 752 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2730:    { (yyval.ival) = ','; }
        -:        -: 2731:#line 2732 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       12:       12: 2732:    break;
        -:        -: 2733:
        -:        -: 2734:  case 110:
        -:        -: 2735:#line 753 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2736:    { (yyval.ival) = '='; }
        -:        -: 2737:#line 2738 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
       15:       15: 2738:    break;
        -:        -: 2739:
        -:        -: 2740:  case 111:
        -:        -: 2741:#line 754 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2742:    { (yyval.ival) = PASTE; }
        -:        -: 2743:#line 2744 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2744:    break;
        -:        -: 2745:
        -:        -: 2746:  case 112:
        -:        -: 2747:#line 755 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2748:    { (yyval.ival) = PLUS_PLUS; }
        -:        -: 2749:#line 2750 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
        2:        2: 2750:    break;
        -:        -: 2751:
        -:        -: 2752:  case 113:
        -:        -: 2753:#line 756 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1646  */
        -:        -: 2754:    { (yyval.ival) = MINUS_MINUS; }
        -:        -: 2755:#line 2756 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
    #####:    #####: 2756:    break;
        -:        -: 2757:
        -:        -: 2758:
        -:        -: 2759:#line 2760 "glsl/glcpp/glcpp-parse.c" /* yacc.c:1646  */
      175:      179: 2760:      default: break;
        -:        -: 2761:    }
        -:        -: 2762:  /* User semantic actions sometimes alter yychar, and that requires
        -:        -: 2763:     that yytoken be updated with the new translation.  We take the
        -:        -: 2764:     approach of translating immediately before every use of yytoken.
        -:        -: 2765:     One alternative is translating here after every semantic action,
        -:        -: 2766:     but that translation would be missed if the semantic action invokes
        -:        -: 2767:     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
        -:        -: 2768:     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
        -:        -: 2769:     incorrect destructor might then be invoked immediately.  In the
        -:        -: 2770:     case of YYERROR or YYBACKUP, subsequent parser actions might lead
        -:        -: 2771:     to an incorrect destructor call or verbose syntax error message
        -:        -: 2772:     before the lookahead is translated.  */
     1348:     1397: 2773:  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
        -:        -: 2774:
     1348:     1397: 2775:  YYPOPSTACK (yylen);
     1348:     1397: 2776:  yylen = 0;
     1348:     1397: 2777:  YY_STACK_PRINT (yyss, yyssp);
        -:        -: 2778:
     1348:     1397: 2779:  *++yyvsp = yyval;
     1348:     1397: 2780:  *++yylsp = yyloc;
        -:        -: 2781:
        -:        -: 2782:  /* Now 'shift' the result of the reduction.  Determine what state
        -:        -: 2783:     that goes to, based on the state we popped back to and the rule
        -:        -: 2784:     number reduced by.  */
        -:        -: 2785:
     1348:     1397: 2786:  yyn = yyr1[yyn];
        -:        -: 2787:
     1348:     1397: 2788:  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
     1348:     1397: 2789:  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
      798:      832: 2790:    yystate = yytable[yystate];
        -:        -: 2791:  else
      550:      565: 2792:    yystate = yydefgoto[yyn - YYNTOKENS];
        -:        -: 2793:
     1348:     1397: 2794:  goto yynewstate;
        -:        -: 2795:
        -:        -: 2796:
        -:        -: 2797:/*--------------------------------------.
        -:        -: 2798:| yyerrlab -- here on detecting error.  |
        -:        -: 2799:`--------------------------------------*/
        -:        -: 2800:yyerrlab:
        -:        -: 2801:  /* Make sure we have latest lookahead translation.  See comments at
        -:        -: 2802:     user semantic actions for why this is necessary.  */
    #####:    #####: 2803:  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
        -:        -: 2804:
        -:        -: 2805:  /* If not already recovering from an error, report this error.  */
    #####:    #####: 2806:  if (!yyerrstatus)
        -:        -: 2807:    {
    #####:    #####: 2808:      ++yynerrs;
        -:        -: 2809:#if ! YYERROR_VERBOSE
        -:        -: 2810:      yyerror (&yylloc, parser, YY_("syntax error"));
        -:        -: 2811:#else
        -:        -: 2812:# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
        -:        -: 2813:                                        yyssp, yytoken)
        -:        -: 2814:      {
    #####:    #####: 2815:        char const *yymsgp = YY_("syntax error");
        -:        -: 2816:        int yysyntax_error_status;
    #####:    #####: 2817:        yysyntax_error_status = YYSYNTAX_ERROR;
    #####:    #####: 2818:        if (yysyntax_error_status == 0)
    #####:    #####: 2819:          yymsgp = yymsg;
    #####:    #####: 2820:        else if (yysyntax_error_status == 1)
        -:        -: 2821:          {
    #####:    #####: 2822:            if (yymsg != yymsgbuf)
    #####:    #####: 2823:              YYSTACK_FREE (yymsg);
    #####:    #####: 2824:            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
    #####:    #####: 2825:            if (!yymsg)
        -:        -: 2826:              {
    #####:    #####: 2827:                yymsg = yymsgbuf;
    #####:    #####: 2828:                yymsg_alloc = sizeof yymsgbuf;
    #####:    #####: 2829:                yysyntax_error_status = 2;
        -:        -: 2830:              }
        -:        -: 2831:            else
        -:        -: 2832:              {
    #####:    #####: 2833:                yysyntax_error_status = YYSYNTAX_ERROR;
    #####:    #####: 2834:                yymsgp = yymsg;
        -:        -: 2835:              }
        -:        -: 2836:          }
    #####:    #####: 2837:        yyerror (&yylloc, parser, yymsgp);
    #####:    #####: 2838:        if (yysyntax_error_status == 2)
    #####:    #####: 2839:          goto yyexhaustedlab;
        -:        -: 2840:      }
        -:        -: 2841:# undef YYSYNTAX_ERROR
        -:        -: 2842:#endif
        -:        -: 2843:    }
        -:        -: 2844:
    #####:    #####: 2845:  yyerror_range[1] = yylloc;
        -:        -: 2846:
    #####:    #####: 2847:  if (yyerrstatus == 3)
        -:        -: 2848:    {
        -:        -: 2849:      /* If just tried and failed to reuse lookahead token after an
        -:        -: 2850:         error, discard it.  */
        -:        -: 2851:
    #####:    #####: 2852:      if (yychar <= YYEOF)
        -:        -: 2853:        {
        -:        -: 2854:          /* Return failure if at end of input.  */
    #####:    #####: 2855:          if (yychar == YYEOF)
    #####:    #####: 2856:            YYABORT;
        -:        -: 2857:        }
        -:        -: 2858:      else
        -:        -: 2859:        {
    #####:    #####: 2860:          yydestruct ("Error: discarding",
        -:        -: 2861:                      yytoken, &yylval, &yylloc, parser);
    #####:    #####: 2862:          yychar = YYEMPTY;
        -:        -: 2863:        }
        -:        -: 2864:    }
        -:        -: 2865:
        -:        -: 2866:  /* Else will try to reuse lookahead token after shifting the error
        -:        -: 2867:     token.  */
    #####:    #####: 2868:  goto yyerrlab1;
        -:        -: 2869:
        -:        -: 2870:
        -:        -: 2871:/*---------------------------------------------------.
        -:        -: 2872:| yyerrorlab -- error raised explicitly by YYERROR.  |
        -:        -: 2873:`---------------------------------------------------*/
        -:        -: 2874:yyerrorlab:
        -:        -: 2875:
        -:        -: 2876:  /* Pacify compilers like GCC when the user code never invokes
        -:        -: 2877:     YYERROR and the label yyerrorlab therefore never appears in user
        -:        -: 2878:     code.  */
        -:        -: 2879:  if (/*CONSTCOND*/ 0)
        -:        -: 2880:     goto yyerrorlab;
        -:        -: 2881:
        -:        -: 2882:  yyerror_range[1] = yylsp[1-yylen];
        -:        -: 2883:  /* Do not reclaim the symbols of the rule whose action triggered
        -:        -: 2884:     this YYERROR.  */
        -:        -: 2885:  YYPOPSTACK (yylen);
        -:        -: 2886:  yylen = 0;
        -:        -: 2887:  YY_STACK_PRINT (yyss, yyssp);
        -:        -: 2888:  yystate = *yyssp;
        -:        -: 2889:  goto yyerrlab1;
        -:        -: 2890:
        -:        -: 2891:
        -:        -: 2892:/*-------------------------------------------------------------.
        -:        -: 2893:| yyerrlab1 -- common code for both syntax error and YYERROR.  |
        -:        -: 2894:`-------------------------------------------------------------*/
        -:        -: 2895:yyerrlab1:
    #####:    #####: 2896:  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
        -:        -: 2897:
        -:        -: 2898:  for (;;)
        -:        -: 2899:    {
    #####:    #####: 2900:      yyn = yypact[yystate];
    #####:    #####: 2901:      if (!yypact_value_is_default (yyn))
        -:        -: 2902:        {
    #####:    #####: 2903:          yyn += YYTERROR;
    #####:    #####: 2904:          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
        -:        -: 2905:            {
    #####:    #####: 2906:              yyn = yytable[yyn];
    #####:    #####: 2907:              if (0 < yyn)
    #####:    #####: 2908:                break;
        -:        -: 2909:            }
        -:        -: 2910:        }
        -:        -: 2911:
        -:        -: 2912:      /* Pop the current state because it cannot handle the error token.  */
    #####:    #####: 2913:      if (yyssp == yyss)
    #####:    #####: 2914:        YYABORT;
        -:        -: 2915:
    #####:    #####: 2916:      yyerror_range[1] = *yylsp;
    #####:    #####: 2917:      yydestruct ("Error: popping",
    #####:    #####: 2918:                  yystos[yystate], yyvsp, yylsp, parser);
    #####:    #####: 2919:      YYPOPSTACK (1);
    #####:    #####: 2920:      yystate = *yyssp;
    #####:    #####: 2921:      YY_STACK_PRINT (yyss, yyssp);
    #####:    #####: 2922:    }
        -:        -: 2923:
        -:        -: 2924:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    #####:    #####: 2925:  *++yyvsp = yylval;
        -:        -: 2926:  YY_IGNORE_MAYBE_UNINITIALIZED_END
        -:        -: 2927:
    #####:    #####: 2928:  yyerror_range[2] = yylloc;
        -:        -: 2929:  /* Using YYLLOC is tempting, but would change the location of
        -:        -: 2930:     the lookahead.  YYLOC is available though.  */
    #####:    #####: 2931:  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
    #####:    #####: 2932:  *++yylsp = yyloc;
        -:        -: 2933:
        -:        -: 2934:  /* Shift the error token.  */
    #####:    #####: 2935:  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
        -:        -: 2936:
    #####:    #####: 2937:  yystate = yyn;
    #####:    #####: 2938:  goto yynewstate;
        -:        -: 2939:
        -:        -: 2940:
        -:        -: 2941:/*-------------------------------------.
        -:        -: 2942:| yyacceptlab -- YYACCEPT comes here.  |
        -:        -: 2943:`-------------------------------------*/
        -:        -: 2944:yyacceptlab:
        2:        2: 2945:  yyresult = 0;
        2:        2: 2946:  goto yyreturn;
        -:        -: 2947:
        -:        -: 2948:/*-----------------------------------.
        -:        -: 2949:| yyabortlab -- YYABORT comes here.  |
        -:        -: 2950:`-----------------------------------*/
        -:        -: 2951:yyabortlab:
    #####:    #####: 2952:  yyresult = 1;
    #####:    #####: 2953:  goto yyreturn;
        -:        -: 2954:
        -:        -: 2955:#if !defined yyoverflow || YYERROR_VERBOSE
        -:        -: 2956:/*-------------------------------------------------.
        -:        -: 2957:| yyexhaustedlab -- memory exhaustion comes here.  |
        -:        -: 2958:`-------------------------------------------------*/
        -:        -: 2959:yyexhaustedlab:
    #####:    #####: 2960:  yyerror (&yylloc, parser, YY_("memory exhausted"));
    #####:    #####: 2961:  yyresult = 2;
        -:        -: 2962:  /* Fall through.  */
        -:        -: 2963:#endif
        -:        -: 2964:
        -:        -: 2965:yyreturn:
        2:        2: 2966:  if (yychar != YYEMPTY)
        -:        -: 2967:    {
        -:        -: 2968:      /* Make sure we have latest lookahead translation.  See comments at
        -:        -: 2969:         user semantic actions for why this is necessary.  */
    #####:    #####: 2970:      yytoken = YYTRANSLATE (yychar);
    #####:    #####: 2971:      yydestruct ("Cleanup: discarding lookahead",
        -:        -: 2972:                  yytoken, &yylval, &yylloc, parser);
        -:        -: 2973:    }
        -:        -: 2974:  /* Do not reclaim the symbols of the rule whose action triggered
        -:        -: 2975:     this YYABORT or YYACCEPT.  */
        2:        2: 2976:  YYPOPSTACK (yylen);
        2:        2: 2977:  YY_STACK_PRINT (yyss, yyssp);
        8:        8: 2978:  while (yyssp != yyss)
        -:        -: 2979:    {
        4:        4: 2980:      yydestruct ("Cleanup: popping",
        4:        4: 2981:                  yystos[*yyssp], yyvsp, yylsp, parser);
        4:        4: 2982:      YYPOPSTACK (1);
        -:        -: 2983:    }
        -:        -: 2984:#ifndef yyoverflow
        2:        2: 2985:  if (yyss != yyssa)
    #####:    #####: 2986:    YYSTACK_FREE (yyss);
        -:        -: 2987:#endif
        -:        -: 2988:#if YYERROR_VERBOSE
        2:        2: 2989:  if (yymsg != yymsgbuf)
    #####:    #####: 2990:    YYSTACK_FREE (yymsg);
        -:        -: 2991:#endif
        2:        2: 2992:  return yyresult;
        -:        -: 2993:}
        -:        -: 2994:#line 759 "./glsl/glcpp/glcpp-parse.y" /* yacc.c:1906  */
        -:        -: 2995:
        -:        -: 2996:
        -:        -: 2997:string_list_t *
        -:        -: 2998:_string_list_create(glcpp_parser_t *parser)
        -:        -: 2999:{
        -:        -: 3000:   string_list_t *list;
        -:        -: 3001:
        -:        -: 3002:   list = linear_alloc_child(parser->linalloc, sizeof(string_list_t));
        -:        -: 3003:   list->head = NULL;
        -:        -: 3004:   list->tail = NULL;
        -:        -: 3005:
        -:        -: 3006:   return list;
        -:        -: 3007:}
        -:        -: 3008:
        -:        -: 3009:void
        -:        -: 3010:_string_list_append_item(glcpp_parser_t *parser, string_list_t *list,
        -:        -: 3011:                         const char *str)
        -:        -: 3012:{
        -:        -: 3013:   string_node_t *node;
        -:        -: 3014:
        -:        -: 3015:   node = linear_alloc_child(parser->linalloc, sizeof(string_node_t));
        -:        -: 3016:   node->str = linear_strdup(parser->linalloc, str);
        -:        -: 3017:
        -:        -: 3018:   node->next = NULL;
        -:        -: 3019:
        -:        -: 3020:   if (list->head == NULL) {
        -:        -: 3021:      list->head = node;
        -:        -: 3022:   } else {
        -:        -: 3023:      list->tail->next = node;
        -:        -: 3024:   }
        -:        -: 3025:
        -:        -: 3026:   list->tail = node;
        -:        -: 3027:}
        -:        -: 3028:
        -:        -: 3029:int
        -:        -: 3030:_string_list_contains(string_list_t *list, const char *member, int *index)
        -:        -: 3031:{
        -:        -: 3032:   string_node_t *node;
        -:        -: 3033:   int i;
        -:        -: 3034:
        -:        -: 3035:   if (list == NULL)
        -:        -: 3036:      return 0;
        -:        -: 3037:
        -:        -: 3038:   for (i = 0, node = list->head; node; i++, node = node->next) {
        -:        -: 3039:      if (strcmp (node->str, member) == 0) {
        -:        -: 3040:         if (index)
        -:        -: 3041:            *index = i;
        -:        -: 3042:         return 1;
        -:        -: 3043:      }
        -:        -: 3044:   }
        -:        -: 3045:
        -:        -: 3046:   return 0;
        -:        -: 3047:}
        -:        -: 3048:
        -:        -: 3049:/* Return duplicate string in list (if any), NULL otherwise. */
        -:        -: 3050:const char *
        -:        -: 3051:_string_list_has_duplicate(string_list_t *list)
        -:        -: 3052:{
        -:        -: 3053:   string_node_t *node, *dup;
        -:        -: 3054:
        -:        -: 3055:   if (list == NULL)
        -:        -: 3056:      return NULL;
        -:        -: 3057:
        -:        -: 3058:   for (node = list->head; node; node = node->next) {
        -:        -: 3059:      for (dup = node->next; dup; dup = dup->next) {
        -:        -: 3060:         if (strcmp (node->str, dup->str) == 0)
        -:        -: 3061:            return node->str;
        -:        -: 3062:      }
        -:        -: 3063:   }
        -:        -: 3064:
        -:        -: 3065:   return NULL;
        -:        -: 3066:}
        -:        -: 3067:
        -:        -: 3068:int
        -:        -: 3069:_string_list_length(string_list_t *list)
        -:        -: 3070:{
        -:        -: 3071:   int length = 0;
        -:        -: 3072:   string_node_t *node;
        -:        -: 3073:
        -:        -: 3074:   if (list == NULL)
        -:        -: 3075:      return 0;
        -:        -: 3076:
        -:        -: 3077:   for (node = list->head; node; node = node->next)
        -:        -: 3078:      length++;
        -:        -: 3079:
        -:        -: 3080:   return length;
        -:        -: 3081:}
        -:        -: 3082:
        -:        -: 3083:int
        -:        -: 3084:_string_list_equal(string_list_t *a, string_list_t *b)
        -:        -: 3085:{
        -:        -: 3086:   string_node_t *node_a, *node_b;
        -:        -: 3087:
        -:        -: 3088:   if (a == NULL && b == NULL)
        -:        -: 3089:      return 1;
        -:        -: 3090:
        -:        -: 3091:   if (a == NULL || b == NULL)
        -:        -: 3092:      return 0;
        -:        -: 3093:
        -:        -: 3094:   for (node_a = a->head, node_b = b->head;
        -:        -: 3095:        node_a && node_b;
        -:        -: 3096:        node_a = node_a->next, node_b = node_b->next)
        -:        -: 3097:   {
        -:        -: 3098:      if (strcmp (node_a->str, node_b->str))
        -:        -: 3099:         return 0;
        -:        -: 3100:   }
        -:        -: 3101:
        -:        -: 3102:   /* Catch the case of lists being different lengths, (which
        -:        -: 3103:    * would cause the loop above to terminate after the shorter
        -:        -: 3104:    * list). */
        -:        -: 3105:   return node_a == node_b;
        -:        -: 3106:}
        -:        -: 3107:
        -:        -: 3108:argument_list_t *
        -:        -: 3109:_argument_list_create(glcpp_parser_t *parser)
        -:        -: 3110:{
        -:        -: 3111:   argument_list_t *list;
        -:        -: 3112:
        -:        -: 3113:   list = linear_alloc_child(parser->linalloc, sizeof(argument_list_t));
        -:        -: 3114:   list->head = NULL;
        -:        -: 3115:   list->tail = NULL;
        -:        -: 3116:
        -:        -: 3117:   return list;
        -:        -: 3118:}
        -:        -: 3119:
        -:        -: 3120:void
        -:        -: 3121:_argument_list_append(glcpp_parser_t *parser,
        -:        -: 3122:                      argument_list_t *list, token_list_t *argument)
        -:        -: 3123:{
        -:        -: 3124:   argument_node_t *node;
        -:        -: 3125:
        -:        -: 3126:   node = linear_alloc_child(parser->linalloc, sizeof(argument_node_t));
        -:        -: 3127:   node->argument = argument;
        -:        -: 3128:
        -:        -: 3129:   node->next = NULL;
        -:        -: 3130:
        -:        -: 3131:   if (list->head == NULL) {
        -:        -: 3132:      list->head = node;
        -:        -: 3133:   } else {
        -:        -: 3134:      list->tail->next = node;
        -:        -: 3135:   }
        -:        -: 3136:
        -:        -: 3137:   list->tail = node;
        -:        -: 3138:}
        -:        -: 3139:
        -:        -: 3140:int
        -:        -: 3141:_argument_list_length(argument_list_t *list)
        -:        -: 3142:{
        -:        -: 3143:   int length = 0;
        -:        -: 3144:   argument_node_t *node;
        -:        -: 3145:
        -:        -: 3146:   if (list == NULL)
        -:        -: 3147:      return 0;
        -:        -: 3148:
        -:        -: 3149:   for (node = list->head; node; node = node->next)
        -:        -: 3150:      length++;
        -:        -: 3151:
        -:        -: 3152:   return length;
        -:        -: 3153:}
        -:        -: 3154:
        -:        -: 3155:token_list_t *
        -:        -: 3156:_argument_list_member_at(argument_list_t *list, int index)
        -:        -: 3157:{
        -:        -: 3158:   argument_node_t *node;
        -:        -: 3159:   int i;
        -:        -: 3160:
        -:        -: 3161:   if (list == NULL)
        -:        -: 3162:      return NULL;
        -:        -: 3163:
        -:        -: 3164:   node = list->head;
        -:        -: 3165:   for (i = 0; i < index; i++) {
        -:        -: 3166:      node = node->next;
        -:        -: 3167:      if (node == NULL)
        -:        -: 3168:         break;
        -:        -: 3169:   }
        -:        -: 3170:
        -:        -: 3171:   if (node)
        -:        -: 3172:      return node->argument;
        -:        -: 3173:
        -:        -: 3174:   return NULL;
        -:        -: 3175:}
        -:        -: 3176:
        -:        -: 3177:token_t *
        -:        -: 3178:_token_create_str(glcpp_parser_t *parser, int type, char *str)
        -:        -: 3179:{
        -:        -: 3180:   token_t *token;
        -:        -: 3181:
        -:        -: 3182:   token = linear_alloc_child(parser->linalloc, sizeof(token_t));
        -:        -: 3183:   token->type = type;
        -:        -: 3184:   token->value.str = str;
        -:        -: 3185:
        -:        -: 3186:   return token;
        -:        -: 3187:}
        -:        -: 3188:
        -:        -: 3189:token_t *
        -:        -: 3190:_token_create_ival(glcpp_parser_t *parser, int type, int ival)
        -:        -: 3191:{
        -:        -: 3192:   token_t *token;
        -:        -: 3193:
        -:        -: 3194:   token = linear_alloc_child(parser->linalloc, sizeof(token_t));
        -:        -: 3195:   token->type = type;
        -:        -: 3196:   token->value.ival = ival;
        -:        -: 3197:
        -:        -: 3198:   return token;
        -:        -: 3199:}
        -:        -: 3200:
        -:        -: 3201:token_list_t *
        -:        -: 3202:_token_list_create(glcpp_parser_t *parser)
        -:        -: 3203:{
        -:        -: 3204:   token_list_t *list;
        -:        -: 3205:
        -:        -: 3206:   list = linear_alloc_child(parser->linalloc, sizeof(token_list_t));
        -:        -: 3207:   list->head = NULL;
        -:        -: 3208:   list->tail = NULL;
        -:        -: 3209:   list->non_space_tail = NULL;
        -:        -: 3210:
        -:        -: 3211:   return list;
        -:        -: 3212:}
        -:        -: 3213:
        -:        -: 3214:void
        -:        -: 3215:_token_list_append(glcpp_parser_t *parser, token_list_t *list, token_t *token)
        -:        -: 3216:{
        -:        -: 3217:   token_node_t *node;
        -:        -: 3218:
        -:        -: 3219:   node = linear_alloc_child(parser->linalloc, sizeof(token_node_t));
        -:        -: 3220:   node->token = token;
        -:        -: 3221:   node->next = NULL;
        -:        -: 3222:
        -:        -: 3223:   if (list->head == NULL) {
        -:        -: 3224:      list->head = node;
        -:        -: 3225:   } else {
        -:        -: 3226:      list->tail->next = node;
        -:        -: 3227:   }
        -:        -: 3228:
        -:        -: 3229:   list->tail = node;
        -:        -: 3230:   if (token->type != SPACE)
        -:        -: 3231:      list->non_space_tail = node;
        -:        -: 3232:}
        -:        -: 3233:
        -:        -: 3234:void
        -:        -: 3235:_token_list_append_list(token_list_t *list, token_list_t *tail)
        -:        -: 3236:{
        -:        -: 3237:   if (tail == NULL || tail->head == NULL)
        -:        -: 3238:      return;
        -:        -: 3239:
        -:        -: 3240:   if (list->head == NULL) {
        -:        -: 3241:      list->head = tail->head;
        -:        -: 3242:   } else {
        -:        -: 3243:      list->tail->next = tail->head;
        -:        -: 3244:   }
        -:        -: 3245:
        -:        -: 3246:   list->tail = tail->tail;
        -:        -: 3247:   list->non_space_tail = tail->non_space_tail;
        -:        -: 3248:}
        -:        -: 3249:
        -:        -: 3250:static token_list_t *
        -:        -: 3251:_token_list_copy(glcpp_parser_t *parser, token_list_t *other)
        -:        -: 3252:{
        -:        -: 3253:   token_list_t *copy;
        -:        -: 3254:   token_node_t *node;
        -:        -: 3255:
        -:        -: 3256:   if (other == NULL)
        -:        -: 3257:      return NULL;
        -:        -: 3258:
        -:        -: 3259:   copy = _token_list_create (parser);
        -:        -: 3260:   for (node = other->head; node; node = node->next) {
        -:        -: 3261:      token_t *new_token = linear_alloc_child(parser->linalloc, sizeof(token_t));
        -:        -: 3262:      *new_token = *node->token;
        -:        -: 3263:      _token_list_append (parser, copy, new_token);
        -:        -: 3264:   }
        -:        -: 3265:
        -:        -: 3266:   return copy;
        -:        -: 3267:}
        -:        -: 3268:
        -:        -: 3269:static void
        -:        -: 3270:_token_list_trim_trailing_space(token_list_t *list)
        -:        -: 3271:{
        -:        -: 3272:   if (list->non_space_tail) {
        -:        -: 3273:      list->non_space_tail->next = NULL;
        -:        -: 3274:      list->tail = list->non_space_tail;
        -:        -: 3275:   }
        -:        -: 3276:}
        -:        -: 3277:
        -:        -: 3278:static int
        -:        -: 3279:_token_list_is_empty_ignoring_space(token_list_t *l)
        -:        -: 3280:{
        -:        -: 3281:   token_node_t *n;
        -:        -: 3282:
        -:        -: 3283:   if (l == NULL)
        -:        -: 3284:      return 1;
        -:        -: 3285:
        -:        -: 3286:   n = l->head;
        -:        -: 3287:   while (n != NULL && n->token->type == SPACE)
        -:        -: 3288:      n = n->next;
        -:        -: 3289:
        -:        -: 3290:   return n == NULL;
        -:        -: 3291:}
        -:        -: 3292:
        -:        -: 3293:int
        -:        -: 3294:_token_list_equal_ignoring_space(token_list_t *a, token_list_t *b)
        -:        -: 3295:{
        -:        -: 3296:   token_node_t *node_a, *node_b;
        -:        -: 3297:
        -:        -: 3298:   if (a == NULL || b == NULL) {
        -:        -: 3299:      int a_empty = _token_list_is_empty_ignoring_space(a);
        -:        -: 3300:      int b_empty = _token_list_is_empty_ignoring_space(b);
        -:        -: 3301:      return a_empty == b_empty;
        -:        -: 3302:   }
        -:        -: 3303:
        -:        -: 3304:   node_a = a->head;
        -:        -: 3305:   node_b = b->head;
        -:        -: 3306:
        -:        -: 3307:   while (1)
        -:        -: 3308:   {
        -:        -: 3309:      if (node_a == NULL && node_b == NULL)
        -:        -: 3310:         break;
        -:        -: 3311:
        -:        -: 3312:      if (node_a == NULL || node_b == NULL)
        -:        -: 3313:         return 0;
        -:        -: 3314:      /* Make sure whitespace appears in the same places in both.
        -:        -: 3315:       * It need not be exactly the same amount of whitespace,
        -:        -: 3316:       * though.
        -:        -: 3317:       */
        -:        -: 3318:      if (node_a->token->type == SPACE && node_b->token->type == SPACE) {
        -:        -: 3319:         while (node_a && node_a->token->type == SPACE)
        -:        -: 3320:            node_a = node_a->next;
        -:        -: 3321:         while (node_b && node_b->token->type == SPACE)
        -:        -: 3322:            node_b = node_b->next;
        -:        -: 3323:         continue;
        -:        -: 3324:      }
        -:        -: 3325:
        -:        -: 3326:      if (node_a->token->type != node_b->token->type)
        -:        -: 3327:         return 0;
        -:        -: 3328:
        -:        -: 3329:      switch (node_a->token->type) {
        -:        -: 3330:      case INTEGER:
        -:        -: 3331:         if (node_a->token->value.ival !=  node_b->token->value.ival) {
        -:        -: 3332:            return 0;
        -:        -: 3333:         }
        -:        -: 3334:         break;
        -:        -: 3335:      case IDENTIFIER:
        -:        -: 3336:      case INTEGER_STRING:
        -:        -: 3337:      case OTHER:
        -:        -: 3338:         if (strcmp(node_a->token->value.str, node_b->token->value.str)) {
        -:        -: 3339:            return 0;
        -:        -: 3340:         }
        -:        -: 3341:         break;
        -:        -: 3342:      }
        -:        -: 3343:
        -:        -: 3344:      node_a = node_a->next;
        -:        -: 3345:      node_b = node_b->next;
        -:        -: 3346:   }
        -:        -: 3347:
        -:        -: 3348:   return 1;
        -:        -: 3349:}
        -:        -: 3350:
        -:        -: 3351:static void
        -:        -: 3352:_token_print(char **out, size_t *len, token_t *token)
        -:        -: 3353:{
        -:        -: 3354:   if (token->type < 256) {
        -:        -: 3355:      ralloc_asprintf_rewrite_tail (out, len, "%c", token->type);
        -:        -: 3356:      return;
        -:        -: 3357:   }
        -:        -: 3358:
        -:        -: 3359:   switch (token->type) {
        -:        -: 3360:   case INTEGER:
        -:        -: 3361:      ralloc_asprintf_rewrite_tail (out, len, "%" PRIiMAX, token->value.ival);
        -:        -: 3362:      break;
        -:        -: 3363:   case IDENTIFIER:
        -:        -: 3364:   case INTEGER_STRING:
        -:        -: 3365:   case OTHER:
        -:        -: 3366:      ralloc_asprintf_rewrite_tail (out, len, "%s", token->value.str);
        -:        -: 3367:      break;
        -:        -: 3368:   case SPACE:
        -:        -: 3369:      ralloc_asprintf_rewrite_tail (out, len, " ");
        -:        -: 3370:      break;
        -:        -: 3371:   case LEFT_SHIFT:
        -:        -: 3372:      ralloc_asprintf_rewrite_tail (out, len, "<<");
        -:        -: 3373:      break;
        -:        -: 3374:   case RIGHT_SHIFT:
        -:        -: 3375:      ralloc_asprintf_rewrite_tail (out, len, ">>");
        -:        -: 3376:      break;
        -:        -: 3377:   case LESS_OR_EQUAL:
        -:        -: 3378:      ralloc_asprintf_rewrite_tail (out, len, "<=");
        -:        -: 3379:      break;
        -:        -: 3380:   case GREATER_OR_EQUAL:
        -:        -: 3381:      ralloc_asprintf_rewrite_tail (out, len, ">=");
        -:        -: 3382:      break;
        -:        -: 3383:   case EQUAL:
        -:        -: 3384:      ralloc_asprintf_rewrite_tail (out, len, "==");
        -:        -: 3385:      break;
        -:        -: 3386:   case NOT_EQUAL:
        -:        -: 3387:      ralloc_asprintf_rewrite_tail (out, len, "!=");
        -:        -: 3388:      break;
        -:        -: 3389:   case AND:
        -:        -: 3390:      ralloc_asprintf_rewrite_tail (out, len, "&&");
        -:        -: 3391:      break;
        -:        -: 3392:   case OR:
        -:        -: 3393:      ralloc_asprintf_rewrite_tail (out, len, "||");
        -:        -: 3394:      break;
        -:        -: 3395:   case PASTE:
        -:        -: 3396:      ralloc_asprintf_rewrite_tail (out, len, "##");
        -:        -: 3397:      break;
        -:        -: 3398:   case PLUS_PLUS:
        -:        -: 3399:      ralloc_asprintf_rewrite_tail (out, len, "++");
        -:        -: 3400:      break;
        -:        -: 3401:   case MINUS_MINUS:
        -:        -: 3402:      ralloc_asprintf_rewrite_tail (out, len, "--");
        -:        -: 3403:      break;
        -:        -: 3404:   case DEFINED:
        -:        -: 3405:      ralloc_asprintf_rewrite_tail (out, len, "defined");
        -:        -: 3406:      break;
        -:        -: 3407:   case PLACEHOLDER:
        -:        -: 3408:      /* Nothing to print. */
        -:        -: 3409:      break;
        -:        -: 3410:   default:
        -:        -: 3411:      assert(!"Error: Don't know how to print token.");
        -:        -: 3412:
        -:        -: 3413:      break;
        -:        -: 3414:   }
        -:        -: 3415:}
        -:        -: 3416:
        -:        -: 3417:/* Return a new token formed by pasting 'token' and 'other'. Note that this
        -:        -: 3418: * function may return 'token' or 'other' directly rather than allocating
        -:        -: 3419: * anything new.
        -:        -: 3420: *
        -:        -: 3421: * Caution: Only very cursory error-checking is performed to see if
        -:        -: 3422: * the final result is a valid single token. */
        -:        -: 3423:static token_t *
        -:        -: 3424:_token_paste(glcpp_parser_t *parser, token_t *token, token_t *other)
        -:        -: 3425:{
        -:        -: 3426:   token_t *combined = NULL;
        -:        -: 3427:
        -:        -: 3428:   /* Pasting a placeholder onto anything makes no change. */
        -:        -: 3429:   if (other->type == PLACEHOLDER)
        -:        -: 3430:      return token;
        -:        -: 3431:
        -:        -: 3432:   /* When 'token' is a placeholder, just return 'other'. */
        -:        -: 3433:   if (token->type == PLACEHOLDER)
        -:        -: 3434:      return other;
        -:        -: 3435:
        -:        -: 3436:   /* A very few single-character punctuators can be combined
        -:        -: 3437:    * with another to form a multi-character punctuator. */
        -:        -: 3438:   switch (token->type) {
        -:        -: 3439:   case '<':
        -:        -: 3440:      if (other->type == '<')
        -:        -: 3441:         combined = _token_create_ival (parser, LEFT_SHIFT, LEFT_SHIFT);
        -:        -: 3442:      else if (other->type == '=')
        -:        -: 3443:         combined = _token_create_ival (parser, LESS_OR_EQUAL, LESS_OR_EQUAL);
        -:        -: 3444:      break;
        -:        -: 3445:   case '>':
        -:        -: 3446:      if (other->type == '>')
        -:        -: 3447:         combined = _token_create_ival (parser, RIGHT_SHIFT, RIGHT_SHIFT);
        -:        -: 3448:      else if (other->type == '=')
        -:        -: 3449:         combined = _token_create_ival (parser, GREATER_OR_EQUAL, GREATER_OR_EQUAL);
        -:        -: 3450:      break;
        -:        -: 3451:   case '=':
        -:        -: 3452:      if (other->type == '=')
        -:        -: 3453:         combined = _token_create_ival (parser, EQUAL, EQUAL);
        -:        -: 3454:      break;
        -:        -: 3455:   case '!':
        -:        -: 3456:      if (other->type == '=')
        -:        -: 3457:         combined = _token_create_ival (parser, NOT_EQUAL, NOT_EQUAL);
        -:        -: 3458:      break;
        -:        -: 3459:   case '&':
        -:        -: 3460:      if (other->type == '&')
        -:        -: 3461:         combined = _token_create_ival (parser, AND, AND);
        -:        -: 3462:      break;
        -:        -: 3463:   case '|':
        -:        -: 3464:      if (other->type == '|')
        -:        -: 3465:         combined = _token_create_ival (parser, OR, OR);
        -:        -: 3466:      break;
        -:        -: 3467:   }
        -:        -: 3468:
        -:        -: 3469:   if (combined != NULL) {
        -:        -: 3470:      /* Inherit the location from the first token */
        -:        -: 3471:      combined->location = token->location;
        -:        -: 3472:      return combined;
        -:        -: 3473:   }
        -:        -: 3474:
        -:        -: 3475:   /* Two string-valued (or integer) tokens can usually just be
        -:        -: 3476:    * mashed together. (We also handle a string followed by an
        -:        -: 3477:    * integer here as well.)
        -:        -: 3478:    *
        -:        -: 3479:    * There are some exceptions here. Notably, if the first token
        -:        -: 3480:    * is an integer (or a string representing an integer), then
        -:        -: 3481:    * the second token must also be an integer or must be a
        -:        -: 3482:    * string representing an integer that begins with a digit.
        -:        -: 3483:    */
        -:        -: 3484:   if ((token->type == IDENTIFIER || token->type == OTHER || token->type == INTEGER_STRING || token->type == INTEGER) &&
        -:        -: 3485:       (other->type == IDENTIFIER || other->type == OTHER || other->type == INTEGER_STRING || other->type == INTEGER))
        -:        -: 3486:   {
        -:        -: 3487:      char *str;
        -:        -: 3488:      int combined_type;
        -:        -: 3489:
        -:        -: 3490:      /* Check that pasting onto an integer doesn't create a
        -:        -: 3491:       * non-integer, (that is, only digits can be
        -:        -: 3492:       * pasted. */
        -:        -: 3493:      if (token->type == INTEGER_STRING || token->type == INTEGER) {
        -:        -: 3494:         switch (other->type) {
        -:        -: 3495:         case INTEGER_STRING:
        -:        -: 3496:            if (other->value.str[0] < '0' || other->value.str[0] > '9')
        -:        -: 3497:               goto FAIL;
        -:        -: 3498:            break;
        -:        -: 3499:         case INTEGER:
        -:        -: 3500:            if (other->value.ival < 0)
        -:        -: 3501:               goto FAIL;
        -:        -: 3502:            break;
        -:        -: 3503:         default:
        -:        -: 3504:            goto FAIL;
        -:        -: 3505:         }
        -:        -: 3506:      }
        -:        -: 3507:
        -:        -: 3508:      if (token->type == INTEGER)
        -:        -: 3509:         str = linear_asprintf(parser->linalloc, "%" PRIiMAX, token->value.ival);
        -:        -: 3510:      else
        -:        -: 3511:         str = linear_strdup(parser->linalloc, token->value.str);
        -:        -: 3512:
        -:        -: 3513:      if (other->type == INTEGER)
        -:        -: 3514:         linear_asprintf_append(parser->linalloc, &str, "%" PRIiMAX, other->value.ival);
        -:        -: 3515:      else
        -:        -: 3516:         linear_strcat(parser->linalloc, &str, other->value.str);
        -:        -: 3517:
        -:        -: 3518:      /* New token is same type as original token, unless we
        -:        -: 3519:       * started with an integer, in which case we will be
        -:        -: 3520:       * creating an integer-string. */
        -:        -: 3521:      combined_type = token->type;
        -:        -: 3522:      if (combined_type == INTEGER)
        -:        -: 3523:         combined_type = INTEGER_STRING;
        -:        -: 3524:
        -:        -: 3525:      combined = _token_create_str (parser, combined_type, str);
        -:        -: 3526:      combined->location = token->location;
        -:        -: 3527:      return combined;
        -:        -: 3528:   }
        -:        -: 3529:
        -:        -: 3530:    FAIL:
        -:        -: 3531:   glcpp_error (&token->location, parser, "");
        -:        -: 3532:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "Pasting \"");
        -:        -: 3533:   _token_print (&parser->info_log, &parser->info_log_length, token);
        -:        -: 3534:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "\" and \"");
        -:        -: 3535:   _token_print (&parser->info_log, &parser->info_log_length, other);
        -:        -: 3536:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "\" does not give a valid preprocessing token.\n");
        -:        -: 3537:
        -:        -: 3538:   return token;
        -:        -: 3539:}
        -:        -: 3540:
        -:        -: 3541:static void
        -:        -: 3542:_token_list_print(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 3543:{
        -:        -: 3544:   token_node_t *node;
        -:        -: 3545:
        -:        -: 3546:   if (list == NULL)
        -:        -: 3547:      return;
        -:        -: 3548:
        -:        -: 3549:   for (node = list->head; node; node = node->next)
        -:        -: 3550:      _token_print (&parser->output, &parser->output_length, node->token);
        -:        -: 3551:}
        -:        -: 3552:
        -:        -: 3553:void
        -:        -: 3554:yyerror(YYLTYPE *locp, glcpp_parser_t *parser, const char *error)
        -:        -: 3555:{
        -:        -: 3556:   glcpp_error(locp, parser, "%s", error);
        -:        -: 3557:}
        -:        -: 3558:
        -:        -: 3559:static void
        -:        -: 3560:add_builtin_define(glcpp_parser_t *parser, const char *name, int value)
        -:        -: 3561:{
        -:        -: 3562:   token_t *tok;
        -:        -: 3563:   token_list_t *list;
        -:        -: 3564:
        -:        -: 3565:   tok = _token_create_ival (parser, INTEGER, value);
        -:        -: 3566:
        -:        -: 3567:   list = _token_list_create(parser);
        -:        -: 3568:   _token_list_append(parser, list, tok);
        -:        -: 3569:   _define_object_macro(parser, NULL, name, list);
        -:        -: 3570:}
        -:        -: 3571:
        -:        -: 3572:glcpp_parser_t *
        -:        -: 3573:glcpp_parser_create(const struct gl_extensions *extension_list,
        -:        -: 3574:                    glcpp_extension_iterator extensions, void *state, gl_api api)
        -:        -: 3575:{
        -:        -: 3576:   glcpp_parser_t *parser;
        -:        -: 3577:
        -:        -: 3578:   parser = ralloc (NULL, glcpp_parser_t);
        -:        -: 3579:
        -:        -: 3580:   glcpp_lex_init_extra (parser, &parser->scanner);
        -:        -: 3581:   parser->defines = _mesa_hash_table_create(NULL, _mesa_key_hash_string,
        -:        -: 3582:                                             _mesa_key_string_equal);
        -:        -: 3583:   parser->linalloc = linear_alloc_parent(parser, 0);
        -:        -: 3584:   parser->active = NULL;
        -:        -: 3585:   parser->lexing_directive = 0;
        -:        -: 3586:   parser->lexing_version_directive = 0;
        -:        -: 3587:   parser->space_tokens = 1;
        -:        -: 3588:   parser->last_token_was_newline = 0;
        -:        -: 3589:   parser->last_token_was_space = 0;
        -:        -: 3590:   parser->first_non_space_token_this_line = 1;
        -:        -: 3591:   parser->newline_as_space = 0;
        -:        -: 3592:   parser->in_control_line = 0;
        -:        -: 3593:   parser->paren_count = 0;
        -:        -: 3594:   parser->commented_newlines = 0;
        -:        -: 3595:
        -:        -: 3596:   parser->skip_stack = NULL;
        -:        -: 3597:   parser->skipping = 0;
        -:        -: 3598:
        -:        -: 3599:   parser->lex_from_list = NULL;
        -:        -: 3600:   parser->lex_from_node = NULL;
        -:        -: 3601:
        -:        -: 3602:   parser->output = ralloc_strdup(parser, "");
        -:        -: 3603:   parser->output_length = 0;
        -:        -: 3604:   parser->info_log = ralloc_strdup(parser, "");
        -:        -: 3605:   parser->info_log_length = 0;
        -:        -: 3606:   parser->error = 0;
        -:        -: 3607:
        -:        -: 3608:   parser->extensions = extensions;
        -:        -: 3609:   parser->extension_list = extension_list;
        -:        -: 3610:   parser->state = state;
        -:        -: 3611:   parser->api = api;
        -:        -: 3612:   parser->version = 0;
        -:        -: 3613:   parser->version_set = false;
        -:        -: 3614:
        -:        -: 3615:   parser->has_new_line_number = 0;
        -:        -: 3616:   parser->new_line_number = 1;
        -:        -: 3617:   parser->has_new_source_number = 0;
        -:        -: 3618:   parser->new_source_number = 0;
        -:        -: 3619:
        -:        -: 3620:   parser->is_gles = false;
        -:        -: 3621:
        -:        -: 3622:   return parser;
        -:        -: 3623:}
        -:        -: 3624:
        -:        -: 3625:void
        -:        -: 3626:glcpp_parser_destroy(glcpp_parser_t *parser)
        -:        -: 3627:{
        -:        -: 3628:   glcpp_lex_destroy (parser->scanner);
        -:        -: 3629:   _mesa_hash_table_destroy(parser->defines, NULL);
        -:        -: 3630:   ralloc_free (parser);
        -:        -: 3631:}
        -:        -: 3632:
        -:        -: 3633:typedef enum function_status
        -:        -: 3634:{
        -:        -: 3635:   FUNCTION_STATUS_SUCCESS,
        -:        -: 3636:   FUNCTION_NOT_A_FUNCTION,
        -:        -: 3637:   FUNCTION_UNBALANCED_PARENTHESES
        -:        -: 3638:} function_status_t;
        -:        -: 3639:
        -:        -: 3640:/* Find a set of function-like macro arguments by looking for a
        -:        -: 3641: * balanced set of parentheses.
        -:        -: 3642: *
        -:        -: 3643: * When called, 'node' should be the opening-parenthesis token, (or
        -:        -: 3644: * perhaps preceeding SPACE tokens). Upon successful return *last will
        -:        -: 3645: * be the last consumed node, (corresponding to the closing right
        -:        -: 3646: * parenthesis).
        -:        -: 3647: *
        -:        -: 3648: * Return values:
        -:        -: 3649: *
        -:        -: 3650: *   FUNCTION_STATUS_SUCCESS:
        -:        -: 3651: *
        -:        -: 3652: *      Successfully parsed a set of function arguments.
        -:        -: 3653: *
        -:        -: 3654: *   FUNCTION_NOT_A_FUNCTION:
        -:        -: 3655: *
        -:        -: 3656: *      Macro name not followed by a '('. This is not an error, but
        -:        -: 3657: *      simply that the macro name should be treated as a non-macro.
        -:        -: 3658: *
        -:        -: 3659: *   FUNCTION_UNBALANCED_PARENTHESES
        -:        -: 3660: *
        -:        -: 3661: *      Macro name is not followed by a balanced set of parentheses.
        -:        -: 3662: */
        -:        -: 3663:static function_status_t
        -:        -: 3664:_arguments_parse(glcpp_parser_t *parser,
        -:        -: 3665:                 argument_list_t *arguments, token_node_t *node,
        -:        -: 3666:                 token_node_t **last)
        -:        -: 3667:{
        -:        -: 3668:   token_list_t *argument;
        -:        -: 3669:   int paren_count;
        -:        -: 3670:
        -:        -: 3671:   node = node->next;
        -:        -: 3672:
        -:        -: 3673:   /* Ignore whitespace before first parenthesis. */
        -:        -: 3674:   while (node && node->token->type == SPACE)
        -:        -: 3675:      node = node->next;
        -:        -: 3676:
        -:        -: 3677:   if (node == NULL || node->token->type != '(')
        -:        -: 3678:      return FUNCTION_NOT_A_FUNCTION;
        -:        -: 3679:
        -:        -: 3680:   node = node->next;
        -:        -: 3681:
        -:        -: 3682:   argument = _token_list_create (parser);
        -:        -: 3683:   _argument_list_append (parser, arguments, argument);
        -:        -: 3684:
        -:        -: 3685:   for (paren_count = 1; node; node = node->next) {
        -:        -: 3686:      if (node->token->type == '(') {
        -:        -: 3687:         paren_count++;
        -:        -: 3688:      } else if (node->token->type == ')') {
        -:        -: 3689:         paren_count--;
        -:        -: 3690:         if (paren_count == 0)
        -:        -: 3691:            break;
        -:        -: 3692:      }
        -:        -: 3693:
        -:        -: 3694:      if (node->token->type == ',' && paren_count == 1) {
        -:        -: 3695:         _token_list_trim_trailing_space (argument);
        -:        -: 3696:         argument = _token_list_create (parser);
        -:        -: 3697:         _argument_list_append (parser, arguments, argument);
        -:        -: 3698:      } else {
        -:        -: 3699:         if (argument->head == NULL) {
        -:        -: 3700:            /* Don't treat initial whitespace as part of the argument. */
        -:        -: 3701:            if (node->token->type == SPACE)
        -:        -: 3702:               continue;
        -:        -: 3703:         }
        -:        -: 3704:         _token_list_append(parser, argument, node->token);
        -:        -: 3705:      }
        -:        -: 3706:   }
        -:        -: 3707:
        -:        -: 3708:   if (paren_count)
        -:        -: 3709:      return FUNCTION_UNBALANCED_PARENTHESES;
        -:        -: 3710:
        -:        -: 3711:   *last = node;
        -:        -: 3712:
        -:        -: 3713:   return FUNCTION_STATUS_SUCCESS;
        -:        -: 3714:}
        -:        -: 3715:
        -:        -: 3716:static token_list_t *
        -:        -: 3717:_token_list_create_with_one_ival(glcpp_parser_t *parser, int type, int ival)
        -:        -: 3718:{
        -:        -: 3719:   token_list_t *list;
        -:        -: 3720:   token_t *node;
        -:        -: 3721:
        -:        -: 3722:   list = _token_list_create(parser);
        -:        -: 3723:   node = _token_create_ival(parser, type, ival);
        -:        -: 3724:   _token_list_append(parser, list, node);
        -:        -: 3725:
        -:        -: 3726:   return list;
        -:        -: 3727:}
        -:        -: 3728:
        -:        -: 3729:static token_list_t *
        -:        -: 3730:_token_list_create_with_one_space(glcpp_parser_t *parser)
        -:        -: 3731:{
        -:        -: 3732:   return _token_list_create_with_one_ival(parser, SPACE, SPACE);
        -:        -: 3733:}
        -:        -: 3734:
        -:        -: 3735:static token_list_t *
        -:        -: 3736:_token_list_create_with_one_integer(glcpp_parser_t *parser, int ival)
        -:        -: 3737:{
        -:        -: 3738:   return _token_list_create_with_one_ival(parser, INTEGER, ival);
        -:        -: 3739:}
        -:        -: 3740:
        -:        -: 3741:/* Evaluate a DEFINED token node (based on subsequent tokens in the list).
        -:        -: 3742: *
        -:        -: 3743: * Note: This function must only be called when "node" is a DEFINED token,
        -:        -: 3744: * (and will abort with an assertion failure otherwise).
        -:        -: 3745: *
        -:        -: 3746: * If "node" is followed, (ignoring any SPACE tokens), by an IDENTIFIER token
        -:        -: 3747: * (optionally preceded and followed by '(' and ')' tokens) then the following
        -:        -: 3748: * occurs:
        -:        -: 3749: *
        -:        -: 3750: *   If the identifier is a defined macro, this function returns 1.
        -:        -: 3751: *
        -:        -: 3752: *   If the identifier is not a defined macro, this function returns 0.
        -:        -: 3753: *
        -:        -: 3754: *   In either case, *last will be updated to the last node in the list
        -:        -: 3755: *   consumed by the evaluation, (either the token of the identifier or the
        -:        -: 3756: *   token of the closing parenthesis).
        -:        -: 3757: *
        -:        -: 3758: * In all other cases, (such as "node is the final node of the list", or
        -:        -: 3759: * "missing closing parenthesis", etc.), this function generates a
        -:        -: 3760: * preprocessor error, returns -1 and *last will not be set.
        -:        -: 3761: */
        -:        -: 3762:static int
        -:        -: 3763:_glcpp_parser_evaluate_defined(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 3764:                               token_node_t **last)
        -:        -: 3765:{
        -:        -: 3766:   token_node_t *argument, *defined = node;
        -:        -: 3767:
        -:        -: 3768:   assert(node->token->type == DEFINED);
        -:        -: 3769:
        -:        -: 3770:   node = node->next;
        -:        -: 3771:
        -:        -: 3772:   /* Ignore whitespace after DEFINED token. */
        -:        -: 3773:   while (node && node->token->type == SPACE)
        -:        -: 3774:      node = node->next;
        -:        -: 3775:
        -:        -: 3776:   if (node == NULL)
        -:        -: 3777:      goto FAIL;
        -:        -: 3778:
        -:        -: 3779:   if (node->token->type == IDENTIFIER || node->token->type == OTHER) {
        -:        -: 3780:      argument = node;
        -:        -: 3781:   } else if (node->token->type == '(') {
        -:        -: 3782:      node = node->next;
        -:        -: 3783:
        -:        -: 3784:      /* Ignore whitespace after '(' token. */
        -:        -: 3785:      while (node && node->token->type == SPACE)
        -:        -: 3786:         node = node->next;
        -:        -: 3787:
        -:        -: 3788:      if (node == NULL || (node->token->type != IDENTIFIER &&
        -:        -: 3789:                           node->token->type != OTHER)) {
        -:        -: 3790:         goto FAIL;
        -:        -: 3791:      }
        -:        -: 3792:
        -:        -: 3793:      argument = node;
        -:        -: 3794:
        -:        -: 3795:      node = node->next;
        -:        -: 3796:
        -:        -: 3797:      /* Ignore whitespace after identifier, before ')' token. */
        -:        -: 3798:      while (node && node->token->type == SPACE)
        -:        -: 3799:         node = node->next;
        -:        -: 3800:
        -:        -: 3801:      if (node == NULL || node->token->type != ')')
        -:        -: 3802:         goto FAIL;
        -:        -: 3803:   } else {
        -:        -: 3804:      goto FAIL;
        -:        -: 3805:   }
        -:        -: 3806:
        -:        -: 3807:   *last = node;
        -:        -: 3808:
        -:        -: 3809:   return _mesa_hash_table_search(parser->defines,
        -:        -: 3810:                                  argument->token->value.str) ? 1 : 0;
        -:        -: 3811:
        -:        -: 3812:FAIL:
        -:        -: 3813:   glcpp_error (&defined->token->location, parser,
        -:        -: 3814:                "\"defined\" not followed by an identifier");
        -:        -: 3815:   return -1;
        -:        -: 3816:}
        -:        -: 3817:
        -:        -: 3818:/* Evaluate all DEFINED nodes in a given list, modifying the list in place.
        -:        -: 3819: */
        -:        -: 3820:static void
        -:        -: 3821:_glcpp_parser_evaluate_defined_in_list(glcpp_parser_t *parser,
        -:        -: 3822:                                       token_list_t *list)
        -:        -: 3823:{
        -:        -: 3824:   token_node_t *node, *node_prev, *replacement, *last = NULL;
        -:        -: 3825:   int value;
        -:        -: 3826:
        -:        -: 3827:   if (list == NULL)
        -:        -: 3828:      return;
        -:        -: 3829:
        -:        -: 3830:   node_prev = NULL;
        -:        -: 3831:   node = list->head;
        -:        -: 3832:
        -:        -: 3833:   while (node) {
        -:        -: 3834:
        -:        -: 3835:      if (node->token->type != DEFINED)
        -:        -: 3836:         goto NEXT;
        -:        -: 3837:
        -:        -: 3838:      value = _glcpp_parser_evaluate_defined (parser, node, &last);
        -:        -: 3839:      if (value == -1)
        -:        -: 3840:         goto NEXT;
        -:        -: 3841:
        -:        -: 3842:      replacement = linear_alloc_child(parser->linalloc, sizeof(token_node_t));
        -:        -: 3843:      replacement->token = _token_create_ival (parser, INTEGER, value);
        -:        -: 3844:
        -:        -: 3845:      /* Splice replacement node into list, replacing from "node"
        -:        -: 3846:       * through "last". */
        -:        -: 3847:      if (node_prev)
        -:        -: 3848:         node_prev->next = replacement;
        -:        -: 3849:      else
        -:        -: 3850:         list->head = replacement;
        -:        -: 3851:      replacement->next = last->next;
        -:        -: 3852:      if (last == list->tail)
        -:        -: 3853:         list->tail = replacement;
        -:        -: 3854:
        -:        -: 3855:      node = replacement;
        -:        -: 3856:
        -:        -: 3857:   NEXT:
        -:        -: 3858:      node_prev = node;
        -:        -: 3859:      node = node->next;
        -:        -: 3860:   }
        -:        -: 3861:}
        -:        -: 3862:
        -:        -: 3863:/* Perform macro expansion on 'list', placing the resulting tokens
        -:        -: 3864: * into a new list which is initialized with a first token of type
        -:        -: 3865: * 'head_token_type'. Then begin lexing from the resulting list,
        -:        -: 3866: * (return to the current lexing source when this list is exhausted).
        -:        -: 3867: *
        -:        -: 3868: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 3869: * of the "mode" parameter.
        -:        -: 3870: */
        -:        -: 3871:static void
        -:        -: 3872:_glcpp_parser_expand_and_lex_from(glcpp_parser_t *parser, int head_token_type,
        -:        -: 3873:                                  token_list_t *list, expansion_mode_t mode)
        -:        -: 3874:{
        -:        -: 3875:   token_list_t *expanded;
        -:        -: 3876:   token_t *token;
        -:        -: 3877:
        -:        -: 3878:   expanded = _token_list_create (parser);
        -:        -: 3879:   token = _token_create_ival (parser, head_token_type, head_token_type);
        -:        -: 3880:   _token_list_append (parser, expanded, token);
        -:        -: 3881:   _glcpp_parser_expand_token_list (parser, list, mode);
        -:        -: 3882:   _token_list_append_list (expanded, list);
        -:        -: 3883:   glcpp_parser_lex_from (parser, expanded);
        -:        -: 3884:}
        -:        -: 3885:
        -:        -: 3886:static void
        -:        -: 3887:_glcpp_parser_apply_pastes(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 3888:{
        -:        -: 3889:   token_node_t *node;
        -:        -: 3890:
        -:        -: 3891:   node = list->head;
        -:        -: 3892:   while (node) {
        -:        -: 3893:      token_node_t *next_non_space;
        -:        -: 3894:
        -:        -: 3895:      /* Look ahead for a PASTE token, skipping space. */
        -:        -: 3896:      next_non_space = node->next;
        -:        -: 3897:      while (next_non_space && next_non_space->token->type == SPACE)
        -:        -: 3898:         next_non_space = next_non_space->next;
        -:        -: 3899:
        -:        -: 3900:      if (next_non_space == NULL)
        -:        -: 3901:         break;
        -:        -: 3902:
        -:        -: 3903:      if (next_non_space->token->type != PASTE) {
        -:        -: 3904:         node = next_non_space;
        -:        -: 3905:         continue;
        -:        -: 3906:      }
        -:        -: 3907:
        -:        -: 3908:      /* Now find the next non-space token after the PASTE. */
        -:        -: 3909:      next_non_space = next_non_space->next;
        -:        -: 3910:      while (next_non_space && next_non_space->token->type == SPACE)
        -:        -: 3911:         next_non_space = next_non_space->next;
        -:        -: 3912:
        -:        -: 3913:      if (next_non_space == NULL) {
        -:        -: 3914:         yyerror(&node->token->location, parser, "'##' cannot appear at either end of a macro expansion\n");
        -:        -: 3915:         return;
        -:        -: 3916:      }
        -:        -: 3917:
        -:        -: 3918:      node->token = _token_paste(parser, node->token, next_non_space->token);
        -:        -: 3919:      node->next = next_non_space->next;
        -:        -: 3920:      if (next_non_space == list->tail)
        -:        -: 3921:         list->tail = node;
        -:        -: 3922:   }
        -:        -: 3923:
        -:        -: 3924:   list->non_space_tail = list->tail;
        -:        -: 3925:}
        -:        -: 3926:
        -:        -: 3927:/* This is a helper function that's essentially part of the
        -:        -: 3928: * implementation of _glcpp_parser_expand_node. It shouldn't be called
        -:        -: 3929: * except for by that function.
        -:        -: 3930: *
        -:        -: 3931: * Returns NULL if node is a simple token with no expansion, (that is,
        -:        -: 3932: * although 'node' corresponds to an identifier defined as a
        -:        -: 3933: * function-like macro, it is not followed with a parenthesized
        -:        -: 3934: * argument list).
        -:        -: 3935: *
        -:        -: 3936: * Compute the complete expansion of node (which is a function-like
        -:        -: 3937: * macro) and subsequent nodes which are arguments.
        -:        -: 3938: *
        -:        -: 3939: * Returns the token list that results from the expansion and sets
        -:        -: 3940: * *last to the last node in the list that was consumed by the
        -:        -: 3941: * expansion. Specifically, *last will be set as follows: as the
        -:        -: 3942: * token of the closing right parenthesis.
        -:        -: 3943: *
        -:        -: 3944: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 3945: * of the "mode" parameter.
        -:        -: 3946: */
        -:        -: 3947:static token_list_t *
        -:        -: 3948:_glcpp_parser_expand_function(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 3949:                              token_node_t **last, expansion_mode_t mode)
        -:        -: 3950:{
        -:        -: 3951:   struct hash_entry *entry;
        -:        -: 3952:   macro_t *macro;
        -:        -: 3953:   const char *identifier;
        -:        -: 3954:   argument_list_t *arguments;
        -:        -: 3955:   function_status_t status;
        -:        -: 3956:   token_list_t *substituted;
        -:        -: 3957:   int parameter_index;
        -:        -: 3958:
        -:        -: 3959:   identifier = node->token->value.str;
        -:        -: 3960:
        -:        -: 3961:   entry = _mesa_hash_table_search(parser->defines, identifier);
        -:        -: 3962:   macro = entry ? entry->data : NULL;
        -:        -: 3963:
        -:        -: 3964:   assert(macro->is_function);
        -:        -: 3965:
        -:        -: 3966:   arguments = _argument_list_create(parser);
        -:        -: 3967:   status = _arguments_parse(parser, arguments, node, last);
        -:        -: 3968:
        -:        -: 3969:   switch (status) {
        -:        -: 3970:   case FUNCTION_STATUS_SUCCESS:
        -:        -: 3971:      break;
        -:        -: 3972:   case FUNCTION_NOT_A_FUNCTION:
        -:        -: 3973:      return NULL;
        -:        -: 3974:   case FUNCTION_UNBALANCED_PARENTHESES:
        -:        -: 3975:      glcpp_error(&node->token->location, parser, "Macro %s call has unbalanced parentheses\n", identifier);
        -:        -: 3976:      return NULL;
        -:        -: 3977:   }
        -:        -: 3978:
        -:        -: 3979:   /* Replace a macro defined as empty with a SPACE token. */
        -:        -: 3980:   if (macro->replacements == NULL) {
        -:        -: 3981:      return _token_list_create_with_one_space(parser);
        -:        -: 3982:   }
        -:        -: 3983:
        -:        -: 3984:   if (!((_argument_list_length (arguments) ==
        -:        -: 3985:          _string_list_length (macro->parameters)) ||
        -:        -: 3986:         (_string_list_length (macro->parameters) == 0 &&
        -:        -: 3987:          _argument_list_length (arguments) == 1 &&
        -:        -: 3988:          arguments->head->argument->head == NULL))) {
        -:        -: 3989:      glcpp_error(&node->token->location, parser,
        -:        -: 3990:                  "Error: macro %s invoked with %d arguments (expected %d)\n",
        -:        -: 3991:                  identifier, _argument_list_length (arguments),
        -:        -: 3992:                  _string_list_length(macro->parameters));
        -:        -: 3993:      return NULL;
        -:        -: 3994:   }
        -:        -: 3995:
        -:        -: 3996:   /* Perform argument substitution on the replacement list. */
        -:        -: 3997:   substituted = _token_list_create(parser);
        -:        -: 3998:
        -:        -: 3999:   for (node = macro->replacements->head; node; node = node->next) {
        -:        -: 4000:      if (node->token->type == IDENTIFIER &&
        -:        -: 4001:          _string_list_contains(macro->parameters, node->token->value.str,
        -:        -: 4002:                                ¶meter_index)) {
        -:        -: 4003:         token_list_t *argument;
        -:        -: 4004:         argument = _argument_list_member_at(arguments, parameter_index);
        -:        -: 4005:         /* Before substituting, we expand the argument tokens, or append a
        -:        -: 4006:          * placeholder token for an empty argument. */
        -:        -: 4007:         if (argument->head) {
        -:        -: 4008:            token_list_t *expanded_argument;
        -:        -: 4009:            expanded_argument = _token_list_copy(parser, argument);
        -:        -: 4010:            _glcpp_parser_expand_token_list(parser, expanded_argument, mode);
        -:        -: 4011:            _token_list_append_list(substituted, expanded_argument);
        -:        -: 4012:         } else {
        -:        -: 4013:            token_t *new_token;
        -:        -: 4014:
        -:        -: 4015:            new_token = _token_create_ival(parser, PLACEHOLDER,
        -:        -: 4016:                                           PLACEHOLDER);
        -:        -: 4017:            _token_list_append(parser, substituted, new_token);
        -:        -: 4018:         }
        -:        -: 4019:      } else {
        -:        -: 4020:         _token_list_append(parser, substituted, node->token);
        -:        -: 4021:      }
        -:        -: 4022:   }
        -:        -: 4023:
        -:        -: 4024:   /* After argument substitution, and before further expansion
        -:        -: 4025:    * below, implement token pasting. */
        -:        -: 4026:
        -:        -: 4027:   _token_list_trim_trailing_space(substituted);
        -:        -: 4028:
        -:        -: 4029:   _glcpp_parser_apply_pastes(parser, substituted);
        -:        -: 4030:
        -:        -: 4031:   return substituted;
        -:        -: 4032:}
        -:        -: 4033:
        -:        -: 4034:/* Compute the complete expansion of node, (and subsequent nodes after
        -:        -: 4035: * 'node' in the case that 'node' is a function-like macro and
        -:        -: 4036: * subsequent nodes are arguments).
        -:        -: 4037: *
        -:        -: 4038: * Returns NULL if node is a simple token with no expansion.
        -:        -: 4039: *
        -:        -: 4040: * Otherwise, returns the token list that results from the expansion
        -:        -: 4041: * and sets *last to the last node in the list that was consumed by
        -:        -: 4042: * the expansion. Specifically, *last will be set as follows:
        -:        -: 4043: *
        -:        -: 4044: *   As 'node' in the case of object-like macro expansion.
        -:        -: 4045: *
        -:        -: 4046: *   As the token of the closing right parenthesis in the case of
        -:        -: 4047: *   function-like macro expansion.
        -:        -: 4048: *
        -:        -: 4049: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 4050: * of the "mode" parameter.
        -:        -: 4051: */
        -:        -: 4052:static token_list_t *
        -:        -: 4053:_glcpp_parser_expand_node(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 4054:                          token_node_t **last, expansion_mode_t mode)
        -:        -: 4055:{
        -:        -: 4056:   token_t *token = node->token;
        -:        -: 4057:   const char *identifier;
        -:        -: 4058:   struct hash_entry *entry;
        -:        -: 4059:   macro_t *macro;
        -:        -: 4060:
        -:        -: 4061:   /* We only expand identifiers */
        -:        -: 4062:   if (token->type != IDENTIFIER) {
        -:        -: 4063:      return NULL;
        -:        -: 4064:   }
        -:        -: 4065:
        -:        -: 4066:   *last = node;
        -:        -: 4067:   identifier = token->value.str;
        -:        -: 4068:
        -:        -: 4069:   /* Special handling for __LINE__ and __FILE__, (not through
        -:        -: 4070:    * the hash table). */
        -:        -: 4071:   if (strcmp(identifier, "__LINE__") == 0)
        -:        -: 4072:      return _token_list_create_with_one_integer(parser, node->token->location.first_line);
        -:        -: 4073:
        -:        -: 4074:   if (strcmp(identifier, "__FILE__") == 0)
        -:        -: 4075:      return _token_list_create_with_one_integer(parser, node->token->location.source);
        -:        -: 4076:
        -:        -: 4077:   /* Look up this identifier in the hash table. */
        -:        -: 4078:   entry = _mesa_hash_table_search(parser->defines, identifier);
        -:        -: 4079:   macro = entry ? entry->data : NULL;
        -:        -: 4080:
        -:        -: 4081:   /* Not a macro, so no expansion needed. */
        -:        -: 4082:   if (macro == NULL)
        -:        -: 4083:      return NULL;
        -:        -: 4084:
        -:        -: 4085:   /* Finally, don't expand this macro if we're already actively
        -:        -: 4086:    * expanding it, (to avoid infinite recursion). */
        -:        -: 4087:   if (_parser_active_list_contains (parser, identifier)) {
        -:        -: 4088:      /* We change the token type here from IDENTIFIER to OTHER to prevent any
        -:        -: 4089:       * future expansion of this unexpanded token. */
        -:        -: 4090:      char *str;
        -:        -: 4091:      token_list_t *expansion;
        -:        -: 4092:      token_t *final;
        -:        -: 4093:
        -:        -: 4094:      str = linear_strdup(parser->linalloc, token->value.str);
        -:        -: 4095:      final = _token_create_str(parser, OTHER, str);
        -:        -: 4096:      expansion = _token_list_create(parser);
        -:        -: 4097:      _token_list_append(parser, expansion, final);
        -:        -: 4098:      return expansion;
        -:        -: 4099:   }
        -:        -: 4100:
        -:        -: 4101:   if (! macro->is_function) {
        -:        -: 4102:      token_list_t *replacement;
        -:        -: 4103:
        -:        -: 4104:      /* Replace a macro defined as empty with a SPACE token. */
        -:        -: 4105:      if (macro->replacements == NULL)
        -:        -: 4106:         return _token_list_create_with_one_space(parser);
        -:        -: 4107:
        -:        -: 4108:      replacement = _token_list_copy(parser, macro->replacements);
        -:        -: 4109:      _glcpp_parser_apply_pastes(parser, replacement);
        -:        -: 4110:      return replacement;
        -:        -: 4111:   }
        -:        -: 4112:
        -:        -: 4113:   return _glcpp_parser_expand_function(parser, node, last, mode);
        -:        -: 4114:}
        -:        -: 4115:
        -:        -: 4116:/* Push a new identifier onto the parser's active list.
        -:        -: 4117: *
        -:        -: 4118: * Here, 'marker' is the token node that appears in the list after the
        -:        -: 4119: * expansion of 'identifier'. That is, when the list iterator begins
        -:        -: 4120: * examining 'marker', then it is time to pop this node from the
        -:        -: 4121: * active stack.
        -:        -: 4122: */
        -:        -: 4123:static void
        -:        -: 4124:_parser_active_list_push(glcpp_parser_t *parser, const char *identifier,
        -:        -: 4125:                         token_node_t *marker)
        -:        -: 4126:{
        -:        -: 4127:   active_list_t *node;
        -:        -: 4128:
        -:        -: 4129:   node = linear_alloc_child(parser->linalloc, sizeof(active_list_t));
        -:        -: 4130:   node->identifier = linear_strdup(parser->linalloc, identifier);
        -:        -: 4131:   node->marker = marker;
        -:        -: 4132:   node->next = parser->active;
        -:        -: 4133:
        -:        -: 4134:   parser->active = node;
        -:        -: 4135:}
        -:        -: 4136:
        -:        -: 4137:static void
        -:        -: 4138:_parser_active_list_pop(glcpp_parser_t *parser)
        -:        -: 4139:{
        -:        -: 4140:   active_list_t *node = parser->active;
        -:        -: 4141:
        -:        -: 4142:   if (node == NULL) {
        -:        -: 4143:      parser->active = NULL;
        -:        -: 4144:      return;
        -:        -: 4145:   }
        -:        -: 4146:
        -:        -: 4147:   node = parser->active->next;
        -:        -: 4148:   parser->active = node;
        -:        -: 4149:}
        -:        -: 4150:
        -:        -: 4151:static int
        -:        -: 4152:_parser_active_list_contains(glcpp_parser_t *parser, const char *identifier)
        -:        -: 4153:{
        -:        -: 4154:   active_list_t *node;
        -:        -: 4155:
        -:        -: 4156:   if (parser->active == NULL)
        -:        -: 4157:      return 0;
        -:        -: 4158:
        -:        -: 4159:   for (node = parser->active; node; node = node->next)
        -:        -: 4160:      if (strcmp(node->identifier, identifier) == 0)
        -:        -: 4161:         return 1;
        -:        -: 4162:
        -:        -: 4163:   return 0;
        -:        -: 4164:}
        -:        -: 4165:
        -:        -: 4166:/* Walk over the token list replacing nodes with their expansion.
        -:        -: 4167: * Whenever nodes are expanded the walking will walk over the new
        -:        -: 4168: * nodes, continuing to expand as necessary. The results are placed in
        -:        -: 4169: * 'list' itself.
        -:        -: 4170: *
        -:        -: 4171: * The "mode" argument controls the handling of any DEFINED tokens that
        -:        -: 4172: * result from expansion as follows:
        -:        -: 4173: *
        -:        -: 4174: *   EXPANSION_MODE_IGNORE_DEFINED: Any resulting DEFINED tokens will be
        -:        -: 4175: *      left in the final list, unevaluated. This is the correct mode
        -:        -: 4176: *      for expanding any list in any context other than a
        -:        -: 4177: *      preprocessor conditional, (#if or #elif).
        -:        -: 4178: *
        -:        -: 4179: *   EXPANSION_MODE_EVALUATE_DEFINED: Any resulting DEFINED tokens will be
        -:        -: 4180: *      evaluated to 0 or 1 tokens depending on whether the following
        -:        -: 4181: *      token is the name of a defined macro. If the DEFINED token is
        -:        -: 4182: *      not followed by an (optionally parenthesized) identifier, then
        -:        -: 4183: *      an error will be generated. This the correct mode for
        -:        -: 4184: *      expanding any list in the context of a preprocessor
        -:        -: 4185: *      conditional, (#if or #elif).
        -:        -: 4186: */
        -:        -: 4187:static void
        -:        -: 4188:_glcpp_parser_expand_token_list(glcpp_parser_t *parser, token_list_t *list,
        -:        -: 4189:                                expansion_mode_t mode)
        -:        -: 4190:{
        -:        -: 4191:   token_node_t *node_prev;
        -:        -: 4192:   token_node_t *node, *last = NULL;
        -:        -: 4193:   token_list_t *expansion;
        -:        -: 4194:   active_list_t *active_initial = parser->active;
        -:        -: 4195:
        -:        -: 4196:   if (list == NULL)
        -:        -: 4197:      return;
        -:        -: 4198:
        -:        -: 4199:   _token_list_trim_trailing_space (list);
        -:        -: 4200:
        -:        -: 4201:   node_prev = NULL;
        -:        -: 4202:   node = list->head;
        -:        -: 4203:
        -:        -: 4204:   if (mode == EXPANSION_MODE_EVALUATE_DEFINED)
        -:        -: 4205:      _glcpp_parser_evaluate_defined_in_list (parser, list);
        -:        -: 4206:
        -:        -: 4207:   while (node) {
        -:        -: 4208:
        -:        -: 4209:      while (parser->active && parser->active->marker == node)
        -:        -: 4210:         _parser_active_list_pop (parser);
        -:        -: 4211:
        -:        -: 4212:      expansion = _glcpp_parser_expand_node (parser, node, &last, mode);
        -:        -: 4213:      if (expansion) {
        -:        -: 4214:         token_node_t *n;
        -:        -: 4215:
        -:        -: 4216:         if (mode == EXPANSION_MODE_EVALUATE_DEFINED) {
        -:        -: 4217:            _glcpp_parser_evaluate_defined_in_list (parser, expansion);
        -:        -: 4218:         }
        -:        -: 4219:
        -:        -: 4220:         for (n = node; n != last->next; n = n->next)
        -:        -: 4221:            while (parser->active && parser->active->marker == n) {
        -:        -: 4222:               _parser_active_list_pop (parser);
        -:        -: 4223:            }
        -:        -: 4224:
        -:        -: 4225:         _parser_active_list_push(parser, node->token->value.str, last->next);
        -:        -: 4226:
        -:        -: 4227:         /* Splice expansion into list, supporting a simple deletion if the
        -:        -: 4228:          * expansion is empty.
        -:        -: 4229:          */
        -:        -: 4230:         if (expansion->head) {
        -:        -: 4231:            if (node_prev)
        -:        -: 4232:               node_prev->next = expansion->head;
        -:        -: 4233:            else
        -:        -: 4234:               list->head = expansion->head;
        -:        -: 4235:            expansion->tail->next = last->next;
        -:        -: 4236:            if (last == list->tail)
        -:        -: 4237:               list->tail = expansion->tail;
        -:        -: 4238:         } else {
        -:        -: 4239:            if (node_prev)
        -:        -: 4240:               node_prev->next = last->next;
        -:        -: 4241:            else
        -:        -: 4242:               list->head = last->next;
        -:        -: 4243:            if (last == list->tail)
        -:        -: 4244:               list->tail = NULL;
        -:        -: 4245:         }
        -:        -: 4246:      } else {
        -:        -: 4247:         node_prev = node;
        -:        -: 4248:      }
        -:        -: 4249:      node = node_prev ? node_prev->next : list->head;
        -:        -: 4250:   }
        -:        -: 4251:
        -:        -: 4252:   /* Remove any lingering effects of this invocation on the
        -:        -: 4253:    * active list. That is, pop until the list looks like it did
        -:        -: 4254:    * at the beginning of this function. */
        -:        -: 4255:   while (parser->active && parser->active != active_initial)
        -:        -: 4256:      _parser_active_list_pop (parser);
        -:        -: 4257:
        -:        -: 4258:   list->non_space_tail = list->tail;
        -:        -: 4259:}
        -:        -: 4260:
        -:        -: 4261:void
        -:        -: 4262:_glcpp_parser_print_expanded_token_list(glcpp_parser_t *parser,
        -:        -: 4263:                                        token_list_t *list)
        -:        -: 4264:{
        -:        -: 4265:   if (list == NULL)
        -:        -: 4266:      return;
        -:        -: 4267:
        -:        -: 4268:   _glcpp_parser_expand_token_list (parser, list, EXPANSION_MODE_IGNORE_DEFINED);
        -:        -: 4269:
        -:        -: 4270:   _token_list_trim_trailing_space (list);
        -:        -: 4271:
        -:        -: 4272:   _token_list_print (parser, list);
        -:        -: 4273:}
        -:        -: 4274:
        -:        -: 4275:static void
        -:        -: 4276:_check_for_reserved_macro_name(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 4277:                               const char *identifier)
        -:        -: 4278:{
        -:        -: 4279:   /* Section 3.3 (Preprocessor) of the GLSL 1.30 spec (and later) and
        -:        -: 4280:    * the GLSL ES spec (all versions) say:
        -:        -: 4281:    *
        -:        -: 4282:    *     "All macro names containing two consecutive underscores ( __ )
        -:        -: 4283:    *     are reserved for future use as predefined macro names. All
        -:        -: 4284:    *     macro names prefixed with "GL_" ("GL" followed by a single
        -:        -: 4285:    *     underscore) are also reserved."
        -:        -: 4286:    *
        -:        -: 4287:    * The intention is that names containing __ are reserved for internal
        -:        -: 4288:    * use by the implementation, and names prefixed with GL_ are reserved
        -:        -: 4289:    * for use by Khronos.  Since every extension adds a name prefixed
        -:        -: 4290:    * with GL_ (i.e., the name of the extension), that should be an
        -:        -: 4291:    * error.  Names simply containing __ are dangerous to use, but should
        -:        -: 4292:    * be allowed.
        -:        -: 4293:    *
        -:        -: 4294:    * A future version of the GLSL specification will clarify this.
        -:        -: 4295:    */
        -:        -: 4296:   if (strstr(identifier, "__")) {
        -:        -: 4297:      glcpp_warning(loc, parser, "Macro names containing \"__\" are reserved "
        -:        -: 4298:                    "for use by the implementation.\n");
        -:        -: 4299:   }
        -:        -: 4300:   if (strncmp(identifier, "GL_", 3) == 0) {
        -:        -: 4301:      glcpp_error (loc, parser, "Macro names starting with \"GL_\" are reserved.\n");
        -:        -: 4302:   }
        -:        -: 4303:   if (strcmp(identifier, "defined") == 0) {
        -:        -: 4304:      glcpp_error (loc, parser, "\"defined\" cannot be used as a macro name");
        -:        -: 4305:   }
        -:        -: 4306:}
        -:        -: 4307:
        -:        -: 4308:static int
        -:        -: 4309:_macro_equal(macro_t *a, macro_t *b)
        -:        -: 4310:{
        -:        -: 4311:   if (a->is_function != b->is_function)
        -:        -: 4312:      return 0;
        -:        -: 4313:
        -:        -: 4314:   if (a->is_function) {
        -:        -: 4315:      if (! _string_list_equal (a->parameters, b->parameters))
        -:        -: 4316:         return 0;
        -:        -: 4317:   }
        -:        -: 4318:
        -:        -: 4319:   return _token_list_equal_ignoring_space(a->replacements, b->replacements);
        -:        -: 4320:}
        -:        -: 4321:
        -:        -: 4322:void
        -:        -: 4323:_define_object_macro(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 4324:                     const char *identifier, token_list_t *replacements)
        -:        -: 4325:{
        -:        -: 4326:   macro_t *macro, *previous;
        -:        -: 4327:   struct hash_entry *entry;
        -:        -: 4328:
        -:        -: 4329:   /* We define pre-defined macros before we've started parsing the actual
        -:        -: 4330:    * file. So if there's no location defined yet, that's what were doing and
        -:        -: 4331:    * we don't want to generate an error for using the reserved names. */
        -:        -: 4332:   if (loc != NULL)
        -:        -: 4333:      _check_for_reserved_macro_name(parser, loc, identifier);
        -:        -: 4334:
        -:        -: 4335:   macro = linear_alloc_child(parser->linalloc, sizeof(macro_t));
        -:        -: 4336:
        -:        -: 4337:   macro->is_function = 0;
        -:        -: 4338:   macro->parameters = NULL;
        -:        -: 4339:   macro->identifier = linear_strdup(parser->linalloc, identifier);
        -:        -: 4340:   macro->replacements = replacements;
        -:        -: 4341:
        -:        -: 4342:   entry = _mesa_hash_table_search(parser->defines, identifier);
        -:        -: 4343:   previous = entry ? entry->data : NULL;
        -:        -: 4344:   if (previous) {
        -:        -: 4345:      if (_macro_equal (macro, previous)) {
        -:        -: 4346:         return;
        -:        -: 4347:      }
        -:        -: 4348:      glcpp_error (loc, parser, "Redefinition of macro %s\n",  identifier);
        -:        -: 4349:   }
        -:        -: 4350:
        -:        -: 4351:   _mesa_hash_table_insert (parser->defines, identifier, macro);
        -:        -: 4352:}
        -:        -: 4353:
        -:        -: 4354:void
        -:        -: 4355:_define_function_macro(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 4356:                       const char *identifier, string_list_t *parameters,
        -:        -: 4357:                       token_list_t *replacements)
        -:        -: 4358:{
        -:        -: 4359:   macro_t *macro, *previous;
        -:        -: 4360:   struct hash_entry *entry;
        -:        -: 4361:   const char *dup;
        -:        -: 4362:
        -:        -: 4363:   _check_for_reserved_macro_name(parser, loc, identifier);
        -:        -: 4364:
        -:        -: 4365:        /* Check for any duplicate parameter names. */
        -:        -: 4366:   if ((dup = _string_list_has_duplicate (parameters)) != NULL) {
        -:        -: 4367:      glcpp_error (loc, parser, "Duplicate macro parameter \"%s\"", dup);
        -:        -: 4368:   }
        -:        -: 4369:
        -:        -: 4370:   macro = linear_alloc_child(parser->linalloc, sizeof(macro_t));
        -:        -: 4371:
        -:        -: 4372:   macro->is_function = 1;
        -:        -: 4373:   macro->parameters = parameters;
        -:        -: 4374:   macro->identifier = linear_strdup(parser->linalloc, identifier);
        -:        -: 4375:   macro->replacements = replacements;
        -:        -: 4376:
        -:        -: 4377:   entry = _mesa_hash_table_search(parser->defines, identifier);
        -:        -: 4378:   previous = entry ? entry->data : NULL;
        -:        -: 4379:   if (previous) {
        -:        -: 4380:      if (_macro_equal (macro, previous)) {
        -:        -: 4381:         return;
        -:        -: 4382:      }
        -:        -: 4383:      glcpp_error (loc, parser, "Redefinition of macro %s\n", identifier);
        -:        -: 4384:   }
        -:        -: 4385:
        -:        -: 4386:   _mesa_hash_table_insert(parser->defines, identifier, macro);
        -:        -: 4387:}
        -:        -: 4388:
        -:        -: 4389:static int
        -:        -: 4390:glcpp_parser_lex(YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser)
        -:        -: 4391:{
        -:        -: 4392:   token_node_t *node;
        -:        -: 4393:   int ret;
        -:        -: 4394:
        -:        -: 4395:   if (parser->lex_from_list == NULL) {
        -:        -: 4396:      ret = glcpp_lex(yylval, yylloc, parser->scanner);
        -:        -: 4397:
        -:        -: 4398:      /* XXX: This ugly block of code exists for the sole
        -:        -: 4399:       * purpose of converting a NEWLINE token into a SPACE
        -:        -: 4400:       * token, but only in the case where we have seen a
        -:        -: 4401:       * function-like macro name, but have not yet seen its
        -:        -: 4402:       * closing parenthesis.
        -:        -: 4403:       *
        -:        -: 4404:       * There's perhaps a more compact way to do this with
        -:        -: 4405:       * mid-rule actions in the grammar.
        -:        -: 4406:       *
        -:        -: 4407:       * I'm definitely not pleased with the complexity of
        -:        -: 4408:       * this code here.
        -:        -: 4409:       */
        -:        -: 4410:      if (parser->newline_as_space) {
        -:        -: 4411:         if (ret == '(') {
        -:        -: 4412:            parser->paren_count++;
        -:        -: 4413:         } else if (ret == ')') {
        -:        -: 4414:            parser->paren_count--;
        -:        -: 4415:            if (parser->paren_count == 0)
        -:        -: 4416:               parser->newline_as_space = 0;
        -:        -: 4417:         } else if (ret == NEWLINE) {
        -:        -: 4418:            ret = SPACE;
        -:        -: 4419:         } else if (ret != SPACE) {
        -:        -: 4420:            if (parser->paren_count == 0)
        -:        -: 4421:               parser->newline_as_space = 0;
        -:        -: 4422:         }
        -:        -: 4423:      } else if (parser->in_control_line) {
        -:        -: 4424:         if (ret == NEWLINE)
        -:        -: 4425:            parser->in_control_line = 0;
        -:        -: 4426:      }
        -:        -: 4427:      else if (ret == DEFINE_TOKEN || ret == UNDEF || ret == IF ||
        -:        -: 4428:               ret == IFDEF || ret == IFNDEF || ret == ELIF || ret == ELSE ||
        -:        -: 4429:               ret == ENDIF || ret == HASH_TOKEN) {
        -:        -: 4430:         parser->in_control_line = 1;
        -:        -: 4431:      } else if (ret == IDENTIFIER) {
        -:        -: 4432:         struct hash_entry *entry = _mesa_hash_table_search(parser->defines,
        -:        -: 4433:                                                            yylval->str);
        -:        -: 4434:         macro_t *macro = entry ? entry->data : NULL;
        -:        -: 4435:         if (macro && macro->is_function) {
        -:        -: 4436:            parser->newline_as_space = 1;
        -:        -: 4437:            parser->paren_count = 0;
        -:        -: 4438:         }
        -:        -: 4439:      }
        -:        -: 4440:
        -:        -: 4441:      return ret;
        -:        -: 4442:   }
        -:        -: 4443:
        -:        -: 4444:   node = parser->lex_from_node;
        -:        -: 4445:
        -:        -: 4446:   if (node == NULL) {
        -:        -: 4447:      parser->lex_from_list = NULL;
        -:        -: 4448:      return NEWLINE;
        -:        -: 4449:   }
        -:        -: 4450:
        -:        -: 4451:   *yylval = node->token->value;
        -:        -: 4452:   ret = node->token->type;
        -:        -: 4453:
        -:        -: 4454:   parser->lex_from_node = node->next;
        -:        -: 4455:
        -:        -: 4456:   return ret;
        -:        -: 4457:}
        -:        -: 4458:
        -:        -: 4459:static void
        -:        -: 4460:glcpp_parser_lex_from(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 4461:{
        -:        -: 4462:   token_node_t *node;
        -:        -: 4463:
        -:        -: 4464:   assert (parser->lex_from_list == NULL);
        -:        -: 4465:
        -:        -: 4466:   /* Copy list, eliminating any space tokens. */
        -:        -: 4467:   parser->lex_from_list = _token_list_create (parser);
        -:        -: 4468:
        -:        -: 4469:   for (node = list->head; node; node = node->next) {
        -:        -: 4470:      if (node->token->type == SPACE)
        -:        -: 4471:         continue;
        -:        -: 4472:      _token_list_append (parser,  parser->lex_from_list, node->token);
        -:        -: 4473:   }
        -:        -: 4474:
        -:        -: 4475:   parser->lex_from_node = parser->lex_from_list->head;
        -:        -: 4476:
        -:        -: 4477:   /* It's possible the list consisted of nothing but whitespace. */
        -:        -: 4478:   if (parser->lex_from_node == NULL) {
        -:        -: 4479:      parser->lex_from_list = NULL;
        -:        -: 4480:   }
        -:        -: 4481:}
        -:        -: 4482:
        -:        -: 4483:static void
        -:        -: 4484:_glcpp_parser_skip_stack_push_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 4485:                                 int condition)
        -:        -: 4486:{
        -:        -: 4487:   skip_type_t current = SKIP_NO_SKIP;
        -:        -: 4488:   skip_node_t *node;
        -:        -: 4489:
        -:        -: 4490:   if (parser->skip_stack)
        -:        -: 4491:      current = parser->skip_stack->type;
        -:        -: 4492:
        -:        -: 4493:   node = linear_alloc_child(parser->linalloc, sizeof(skip_node_t));
        -:        -: 4494:   node->loc = *loc;
        -:        -: 4495:
        -:        -: 4496:   if (current == SKIP_NO_SKIP) {
        -:        -: 4497:      if (condition)
        -:        -: 4498:         node->type = SKIP_NO_SKIP;
        -:        -: 4499:      else
        -:        -: 4500:         node->type = SKIP_TO_ELSE;
        -:        -: 4501:   } else {
        -:        -: 4502:      node->type = SKIP_TO_ENDIF;
        -:        -: 4503:   }
        -:        -: 4504:
        -:        -: 4505:   node->has_else = false;
        -:        -: 4506:   node->next = parser->skip_stack;
        -:        -: 4507:   parser->skip_stack = node;
        -:        -: 4508:}
        -:        -: 4509:
        -:        -: 4510:static void
        -:        -: 4511:_glcpp_parser_skip_stack_change_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 4512:                                   const char *type, int condition)
        -:        -: 4513:{
        -:        -: 4514:   if (parser->skip_stack == NULL) {
        -:        -: 4515:      glcpp_error (loc, parser, "#%s without #if\n", type);
        -:        -: 4516:      return;
        -:        -: 4517:   }
        -:        -: 4518:
        -:        -: 4519:   if (parser->skip_stack->type == SKIP_TO_ELSE) {
        -:        -: 4520:      if (condition)
        -:        -: 4521:         parser->skip_stack->type = SKIP_NO_SKIP;
        -:        -: 4522:   } else {
        -:        -: 4523:      parser->skip_stack->type = SKIP_TO_ENDIF;
        -:        -: 4524:   }
        -:        -: 4525:}
        -:        -: 4526:
        -:        -: 4527:static void
        -:        -: 4528:_glcpp_parser_skip_stack_pop(glcpp_parser_t *parser, YYLTYPE *loc)
        -:        -: 4529:{
        -:        -: 4530:   skip_node_t *node;
        -:        -: 4531:
        -:        -: 4532:   if (parser->skip_stack == NULL) {
        -:        -: 4533:      glcpp_error (loc, parser, "#endif without #if\n");
        -:        -: 4534:      return;
        -:        -: 4535:   }
        -:        -: 4536:
        -:        -: 4537:   node = parser->skip_stack;
        -:        -: 4538:   parser->skip_stack = node->next;
        -:        -: 4539:}
        -:        -: 4540:
        -:        -: 4541:static void
        -:        -: 4542:_glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t version,
        -:        -: 4543:                                         const char *es_identifier,
        -:        -: 4544:                                         bool explicitly_set)
        -:        -: 4545:{
        -:        -: 4546:   if (parser->version_set)
        -:        -: 4547:      return;
        -:        -: 4548:
        -:        -: 4549:   parser->version = version;
        -:        -: 4550:   parser->version_set = true;
        -:        -: 4551:
        -:        -: 4552:   add_builtin_define (parser, "__VERSION__", version);
        -:        -: 4553:
        -:        -: 4554:   parser->is_gles = (version == 100) ||
        -:        -: 4555:                     (es_identifier && (strcmp(es_identifier, "es") == 0));
        -:        -: 4556:
        -:        -: 4557:   /* Add pre-defined macros. */
        -:        -: 4558:   if (parser->is_gles)
        -:        -: 4559:      add_builtin_define(parser, "GL_ES", 1);
        -:        -: 4560:   else if (version >= 150)
        -:        -: 4561:      add_builtin_define(parser, "GL_core_profile", 1);
        -:        -: 4562:
        -:        -: 4563:   /* Currently, all ES2/ES3 implementations support highp in the
        -:        -: 4564:    * fragment shader, so we always define this macro in ES2/ES3.
        -:        -: 4565:    * If we ever get a driver that doesn't support highp, we'll
        -:        -: 4566:    * need to add a flag to the gl_context and check that here.
        -:        -: 4567:    */
        -:        -: 4568:   if (version >= 130 || parser->is_gles)
        -:        -: 4569:      add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
        -:        -: 4570:
        -:        -: 4571:   /* Add all the extension macros available in this context */
        -:        -: 4572:   if (parser->extensions)
        -:        -: 4573:      parser->extensions(parser->state, add_builtin_define, parser,
        -:        -: 4574:                         version, parser->is_gles);
        -:        -: 4575:
        -:        -: 4576:   if (parser->extension_list) {
        -:        -: 4577:      /* If MESA_shader_integer_functions is supported, then the building
        -:        -: 4578:       * blocks required for the 64x64 => 64 multiply exist.  Add defines for
        -:        -: 4579:       * those functions so that they can be tested.
        -:        -: 4580:       */
        -:        -: 4581:      if (parser->extension_list->MESA_shader_integer_functions) {
        -:        -: 4582:         add_builtin_define(parser, "__have_builtin_builtin_sign64", 1);
        -:        -: 4583:         add_builtin_define(parser, "__have_builtin_builtin_umul64", 1);
        -:        -: 4584:         add_builtin_define(parser, "__have_builtin_builtin_udiv64", 1);
        -:        -: 4585:         add_builtin_define(parser, "__have_builtin_builtin_umod64", 1);
        -:        -: 4586:         add_builtin_define(parser, "__have_builtin_builtin_idiv64", 1);
        -:        -: 4587:         add_builtin_define(parser, "__have_builtin_builtin_imod64", 1);
        -:        -: 4588:      }
        -:        -: 4589:   }
        -:        -: 4590:
        -:        -: 4591:   if (explicitly_set) {
        -:        -: 4592:      ralloc_asprintf_rewrite_tail(&parser->output, &parser->output_length,
        -:        -: 4593:                                   "#version %" PRIiMAX "%s%s", version,
        -:        -: 4594:                                   es_identifier ? " " : "",
        -:        -: 4595:                                   es_identifier ? es_identifier : "");
        -:        -: 4596:   }
        -:        -: 4597:}
        -:        -: 4598:
        -:        -: 4599:/* GLSL version if no version is explicitly specified. */
        -:        -: 4600:#define IMPLICIT_GLSL_VERSION 110
        -:        -: 4601:
        -:        -: 4602:/* GLSL ES version if no version is explicitly specified. */
        -:        -: 4603:#define IMPLICIT_GLSL_ES_VERSION 100
        -:        -: 4604:
        -:        -: 4605:void
        -:        -: 4606:glcpp_parser_resolve_implicit_version(glcpp_parser_t *parser)
        -:        -: 4607:{
        -:        -: 4608:   int language_version = parser->api == API_OPENGLES2 ?
        -:        -: 4609:                          IMPLICIT_GLSL_ES_VERSION : IMPLICIT_GLSL_VERSION;
        -:        -: 4610:
        -:        -: 4611:   _glcpp_parser_handle_version_declaration(parser, language_version,
        -:        -: 4612:                                            NULL, false);
        -:        -: 4613:}

src/compiler/glcpp-parse.y.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.y
        -:        -:    0:Graph:glsl/glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glsl/glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:%{
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2010 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#include <stdio.h>
        -:        -:   26:#include <stdlib.h>
        -:        -:   27:#include <string.h>
        -:        -:   28:#include <assert.h>
        -:        -:   29:#include <inttypes.h>
        -:        -:   30:
        -:        -:   31:#include "glcpp.h"
        -:        -:   32:#include "main/core.h" /* for struct gl_extensions */
        -:        -:   33:#include "main/mtypes.h" /* for gl_api enum */
        -:        -:   34:
        -:        -:   35:static void
        -:        -:   36:yyerror(YYLTYPE *locp, glcpp_parser_t *parser, const char *error);
        -:        -:   37:
        -:        -:   38:static void
        -:        -:   39:_define_object_macro(glcpp_parser_t *parser,
        -:        -:   40:                     YYLTYPE *loc,
        -:        -:   41:                     const char *macro,
        -:        -:   42:                     token_list_t *replacements);
        -:        -:   43:
        -:        -:   44:static void
        -:        -:   45:_define_function_macro(glcpp_parser_t *parser,
        -:        -:   46:                       YYLTYPE *loc,
        -:        -:   47:                       const char *macro,
        -:        -:   48:                       string_list_t *parameters,
        -:        -:   49:                       token_list_t *replacements);
        -:        -:   50:
        -:        -:   51:static string_list_t *
        -:        -:   52:_string_list_create(glcpp_parser_t *parser);
        -:        -:   53:
        -:        -:   54:static void
        -:        -:   55:_string_list_append_item(glcpp_parser_t *parser, string_list_t *list,
        -:        -:   56:                         const char *str);
        -:        -:   57:
        -:        -:   58:static int
        -:        -:   59:_string_list_contains(string_list_t *list, const char *member, int *index);
        -:        -:   60:
        -:        -:   61:static const char *
        -:        -:   62:_string_list_has_duplicate(string_list_t *list);
        -:        -:   63:
        -:        -:   64:static int
        -:        -:   65:_string_list_length(string_list_t *list);
        -:        -:   66:
        -:        -:   67:static int
        -:        -:   68:_string_list_equal(string_list_t *a, string_list_t *b);
        -:        -:   69:
        -:        -:   70:static argument_list_t *
        -:        -:   71:_argument_list_create(glcpp_parser_t *parser);
        -:        -:   72:
        -:        -:   73:static void
        -:        -:   74:_argument_list_append(glcpp_parser_t *parser, argument_list_t *list,
        -:        -:   75:                      token_list_t *argument);
        -:        -:   76:
        -:        -:   77:static int
        -:        -:   78:_argument_list_length(argument_list_t *list);
        -:        -:   79:
        -:        -:   80:static token_list_t *
        -:        -:   81:_argument_list_member_at(argument_list_t *list, int index);
        -:        -:   82:
        -:        -:   83:static token_t *
        -:        -:   84:_token_create_str(glcpp_parser_t *parser, int type, char *str);
        -:        -:   85:
        -:        -:   86:static token_t *
        -:        -:   87:_token_create_ival(glcpp_parser_t *parser, int type, int ival);
        -:        -:   88:
        -:        -:   89:static token_list_t *
        -:        -:   90:_token_list_create(glcpp_parser_t *parser);
        -:        -:   91:
        -:        -:   92:static void
        -:        -:   93:_token_list_append(glcpp_parser_t *parser, token_list_t *list, token_t *token);
        -:        -:   94:
        -:        -:   95:static void
        -:        -:   96:_token_list_append_list(token_list_t *list, token_list_t *tail);
        -:        -:   97:
        -:        -:   98:static int
        -:        -:   99:_token_list_equal_ignoring_space(token_list_t *a, token_list_t *b);
        -:        -:  100:
        -:        -:  101:static void
        -:        -:  102:_parser_active_list_push(glcpp_parser_t *parser, const char *identifier,
        -:        -:  103:                         token_node_t *marker);
        -:        -:  104:
        -:        -:  105:static void
        -:        -:  106:_parser_active_list_pop(glcpp_parser_t *parser);
        -:        -:  107:
        -:        -:  108:static int
        -:        -:  109:_parser_active_list_contains(glcpp_parser_t *parser, const char *identifier);
        -:        -:  110:
        -:        -:  111:typedef enum {
        -:        -:  112:   EXPANSION_MODE_IGNORE_DEFINED,
        -:        -:  113:   EXPANSION_MODE_EVALUATE_DEFINED
        -:        -:  114:} expansion_mode_t;
        -:        -:  115:
        -:        -:  116:/* Expand list, and begin lexing from the result (after first
        -:        -:  117: * prefixing a token of type 'head_token_type').
        -:        -:  118: */
        -:        -:  119:static void
        -:        -:  120:_glcpp_parser_expand_and_lex_from(glcpp_parser_t *parser, int head_token_type,
        -:        -:  121:                                  token_list_t *list, expansion_mode_t mode);
        -:        -:  122:
        -:        -:  123:/* Perform macro expansion in-place on the given list. */
        -:        -:  124:static void
        -:        -:  125:_glcpp_parser_expand_token_list(glcpp_parser_t *parser, token_list_t *list,
        -:        -:  126:                                expansion_mode_t mode);
        -:        -:  127:
        -:        -:  128:static void
        -:        -:  129:_glcpp_parser_print_expanded_token_list(glcpp_parser_t *parser,
        -:        -:  130:                                        token_list_t *list);
        -:        -:  131:
        -:        -:  132:static void
        -:        -:  133:_glcpp_parser_skip_stack_push_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -:  134:                                 int condition);
        -:        -:  135:
        -:        -:  136:static void
        -:        -:  137:_glcpp_parser_skip_stack_change_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -:  138:                                   const char *type, int condition);
        -:        -:  139:
        -:        -:  140:static void
        -:        -:  141:_glcpp_parser_skip_stack_pop(glcpp_parser_t *parser, YYLTYPE *loc);
        -:        -:  142:
        -:        -:  143:static void
        -:        -:  144:_glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t version,
        -:        -:  145:                                         const char *ident, bool explicitly_set);
        -:        -:  146:
        -:        -:  147:static int
        -:        -:  148:glcpp_parser_lex(YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser);
        -:        -:  149:
        -:        -:  150:static void
        -:        -:  151:glcpp_parser_lex_from(glcpp_parser_t *parser, token_list_t *list);
        -:        -:  152:
        -:        -:  153:static void
        -:        -:  154:add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
        -:        -:  155:
        -:        -:  156:%}
        -:        -:  157:
        -:        -:  158:%pure-parser
        -:        -:  159:%error-verbose
        -:        -:  160:
        -:        -:  161:%locations
        -:        -:  162:%initial-action {
        2:        2:  163:   @$.first_line = 1;
        2:        2:  164:   @$.first_column = 1;
        2:        2:  165:   @$.last_line = 1;
        2:        2:  166:   @$.last_column = 1;
        2:        2:  167:   @$.source = 0;
        -:        -:  168:}
        -:        -:  169:
        -:        -:  170:%parse-param {glcpp_parser_t *parser}
        -:        -:  171:%lex-param {glcpp_parser_t *parser}
        -:        -:  172:
        -:        -:  173:%expect 0
        -:        -:  174:
        -:        -:  175:        /* We use HASH_TOKEN, DEFINE_TOKEN and VERSION_TOKEN (as opposed to
        -:        -:  176:         * HASH, DEFINE, and VERSION) to avoid conflicts with other symbols,
        -:        -:  177:         * (such as the <HASH> and <DEFINE> start conditions in the lexer). */
        -:        -:  178:%token DEFINED ELIF_EXPANDED HASH_TOKEN DEFINE_TOKEN FUNC_IDENTIFIER OBJ_IDENTIFIER ELIF ELSE ENDIF ERROR_TOKEN IF IFDEF IFNDEF LINE PRAGMA UNDEF VERSION_TOKEN GARBAGE IDENTIFIER IF_EXPANDED INTEGER INTEGER_STRING LINE_EXPANDED NEWLINE OTHER PLACEHOLDER SPACE PLUS_PLUS MINUS_MINUS
        -:        -:  179:%token PASTE
        -:        -:  180:%type <ival> INTEGER operator SPACE integer_constant version_constant
        -:        -:  181:%type <expression_value> expression
        -:        -:  182:%type <str> IDENTIFIER FUNC_IDENTIFIER OBJ_IDENTIFIER INTEGER_STRING OTHER ERROR_TOKEN PRAGMA
        -:        -:  183:%type <string_list> identifier_list
        -:        -:  184:%type <token> preprocessing_token
        -:        -:  185:%type <token_list> pp_tokens replacement_list text_line
        -:        -:  186:%left OR
        -:        -:  187:%left AND
        -:        -:  188:%left '|'
        -:        -:  189:%left '^'
        -:        -:  190:%left '&'
        -:        -:  191:%left EQUAL NOT_EQUAL
        -:        -:  192:%left '<' '>' LESS_OR_EQUAL GREATER_OR_EQUAL
        -:        -:  193:%left LEFT_SHIFT RIGHT_SHIFT
        -:        -:  194:%left '+' '-'
        -:        -:  195:%left '*' '/' '%'
        -:        -:  196:%right UNARY
        -:        -:  197:
        -:        -:  198:%debug
        -:        -:  199:
        -:        -:  200:%%
        -:        -:  201:
        -:        -:  202:input:
        -:        -:  203:	/* empty */
        -:        -:  204:|	input line
        -:        -:  205:;
        -:        -:  206:
        -:        -:  207:line:
        -:        -:  208:	control_line
        -:        -:  209:|	SPACE control_line
        -:        -:  210:|	text_line {
       60:       62:  211:		_glcpp_parser_print_expanded_token_list (parser, $1);
       60:       62:  212:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
        -:        -:  213:	}
        -:        -:  214:|	expanded_line
        -:        -:  215:;
        -:        -:  216:
        -:        -:  217:expanded_line:
        -:        -:  218:	IF_EXPANDED expression NEWLINE {
    #####:    #####:  219:		if (parser->is_gles && $2.undefined_macro)
    #####:    #####:  220:			glcpp_error(& @1, parser, "undefined macro %s in expression (illegal in GLES)", $2.undefined_macro);
    #####:    #####:  221:		_glcpp_parser_skip_stack_push_if (parser, & @1, $2.value);
        -:        -:  222:	}
        -:        -:  223:|	ELIF_EXPANDED expression NEWLINE {
    #####:    #####:  224:		if (parser->is_gles && $2.undefined_macro)
    #####:    #####:  225:			glcpp_error(& @1, parser, "undefined macro %s in expression (illegal in GLES)", $2.undefined_macro);
    #####:    #####:  226:		_glcpp_parser_skip_stack_change_if (parser, & @1, "elif", $2.value);
        -:        -:  227:	}
        -:        -:  228:|	LINE_EXPANDED integer_constant NEWLINE {
    #####:    #####:  229:		parser->has_new_line_number = 1;
    #####:    #####:  230:		parser->new_line_number = $2;
    #####:    #####:  231:		ralloc_asprintf_rewrite_tail (&parser->output,
        -:        -:  232:					      &parser->output_length,
        -:        -:  233:					      "#line %" PRIiMAX "\n",
    #####:    #####:  234:					      $2);
        -:        -:  235:	}
        -:        -:  236:|	LINE_EXPANDED integer_constant integer_constant NEWLINE {
    #####:    #####:  237:		parser->has_new_line_number = 1;
    #####:    #####:  238:		parser->new_line_number = $2;
    #####:    #####:  239:		parser->has_new_source_number = 1;
    #####:    #####:  240:		parser->new_source_number = $3;
    #####:    #####:  241:		ralloc_asprintf_rewrite_tail (&parser->output,
        -:        -:  242:					      &parser->output_length,
        -:        -:  243:					      "#line %" PRIiMAX " %" PRIiMAX "\n",
    #####:    #####:  244:					      $2, $3);
        -:        -:  245:	}
        -:        -:  246:;
        -:        -:  247:
        -:        -:  248:define:
        -:        -:  249:	OBJ_IDENTIFIER replacement_list NEWLINE {
    #####:    #####:  250:		_define_object_macro (parser, & @1, $1, $2);
        -:        -:  251:	}
        -:        -:  252:|	FUNC_IDENTIFIER '(' ')' replacement_list NEWLINE {
    #####:    #####:  253:		_define_function_macro (parser, & @1, $1, NULL, $4);
        -:        -:  254:	}
        -:        -:  255:|	FUNC_IDENTIFIER '(' identifier_list ')' replacement_list NEWLINE {
       10:       10:  256:		_define_function_macro (parser, & @1, $1, $3, $5);
        -:        -:  257:	}
        -:        -:  258:;
        -:        -:  259:
        -:        -:  260:control_line:
        -:        -:  261:	control_line_success {
       19:       19:  262:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "\n");
        -:        -:  263:	}
        -:        -:  264:|	control_line_error
        -:        -:  265:|	HASH_TOKEN LINE pp_tokens NEWLINE {
        -:        -:  266:
    #####:    #####:  267:		if (parser->skip_stack == NULL ||
    #####:    #####:  268:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -:  269:		{
    #####:    #####:  270:			_glcpp_parser_expand_and_lex_from (parser,
    #####:    #####:  271:							   LINE_EXPANDED, $3,
        -:        -:  272:							   EXPANSION_MODE_IGNORE_DEFINED);
        -:        -:  273:		}
        -:        -:  274:	}
        -:        -:  275:;
        -:        -:  276:
        -:        -:  277:control_line_success:
        -:        -:  278:	HASH_TOKEN DEFINE_TOKEN define
        -:        -:  279:|	HASH_TOKEN UNDEF IDENTIFIER NEWLINE {
        -:        -:  280:		struct hash_entry *entry;
        -:        -:  281:
        -:        -:  282:                /* Section 3.4 (Preprocessor) of the GLSL ES 3.00 spec says:
        -:        -:  283:                 *
        -:        -:  284:                 *    It is an error to undefine or to redefine a built-in
        -:        -:  285:                 *    (pre-defined) macro name.
        -:        -:  286:                 *
        -:        -:  287:                 * The GLSL ES 1.00 spec does not contain this text.
        -:        -:  288:                 *
        -:        -:  289:                 * Section 3.3 (Preprocessor) of the GLSL 1.30 spec says:
        -:        -:  290:                 *
        -:        -:  291:                 *    #define and #undef functionality are defined as is
        -:        -:  292:                 *    standard for C++ preprocessors for macro definitions
        -:        -:  293:                 *    both with and without macro parameters.
        -:        -:  294:                 *
        -:        -:  295:                 * At least as far as I can tell GCC allow '#undef __FILE__'.
        -:        -:  296:                 * Furthermore, there are desktop OpenGL conformance tests
        -:        -:  297:                 * that expect '#undef __VERSION__' and '#undef
        -:        -:  298:                 * GL_core_profile' to work.
        -:        -:  299:                 *
        -:        -:  300:                 * Only disallow #undef of pre-defined macros on GLSL ES >=
        -:        -:  301:                 * 3.00 shaders.
        -:        -:  302:                 */
    #####:    #####:  303:		if (parser->is_gles &&
    #####:    #####:  304:                    parser->version >= 300 &&
    #####:    #####:  305:                    (strcmp("__LINE__", $3) == 0
    #####:    #####:  306:                     || strcmp("__FILE__", $3) == 0
    #####:    #####:  307:                     || strcmp("__VERSION__", $3) == 0
    #####:    #####:  308:                     || strncmp("GL_", $3, 3) == 0))
    #####:    #####:  309:			glcpp_error(& @1, parser, "Built-in (pre-defined)"
        -:        -:  310:				    " macro names cannot be undefined.");
        -:        -:  311:
    #####:    #####:  312:		entry = _mesa_hash_table_search (parser->defines, $3);
    #####:    #####:  313:		if (entry) {
    #####:    #####:  314:			_mesa_hash_table_remove (parser->defines, entry);
        -:        -:  315:		}
        -:        -:  316:	}
        -:        -:  317:|	HASH_TOKEN IF pp_tokens NEWLINE {
        -:        -:  318:		/* Be careful to only evaluate the 'if' expression if
        -:        -:  319:		 * we are not skipping. When we are skipping, we
        -:        -:  320:		 * simply push a new 0-valued 'if' onto the skip
        -:        -:  321:		 * stack.
        -:        -:  322:		 *
        -:        -:  323:		 * This avoids generating diagnostics for invalid
        -:        -:  324:		 * expressions that are being skipped. */
    #####:    #####:  325:		if (parser->skip_stack == NULL ||
    #####:    #####:  326:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -:  327:		{
    #####:    #####:  328:			_glcpp_parser_expand_and_lex_from (parser,
    #####:    #####:  329:							   IF_EXPANDED, $3,
        -:        -:  330:							   EXPANSION_MODE_EVALUATE_DEFINED);
        -:        -:  331:		}	
        -:        -:  332:		else
        -:        -:  333:		{
    #####:    #####:  334:			_glcpp_parser_skip_stack_push_if (parser, & @1, 0);
    #####:    #####:  335:			parser->skip_stack->type = SKIP_TO_ENDIF;
        -:        -:  336:		}
        -:        -:  337:	}
        -:        -:  338:|	HASH_TOKEN IF NEWLINE {
        -:        -:  339:		/* #if without an expression is only an error if we
        -:        -:  340:		 *  are not skipping */
    #####:    #####:  341:		if (parser->skip_stack == NULL ||
    #####:    #####:  342:		    parser->skip_stack->type == SKIP_NO_SKIP)
        -:        -:  343:		{
    #####:    #####:  344:			glcpp_error(& @1, parser, "#if with no expression");
        -:        -:  345:		}	
    #####:    #####:  346:		_glcpp_parser_skip_stack_push_if (parser, & @1, 0);
        -:        -:  347:	}
        -:        -:  348:|	HASH_TOKEN IFDEF IDENTIFIER junk NEWLINE {
        2:        2:  349:		struct hash_entry *entry =
        2:        2:  350:				_mesa_hash_table_search(parser->defines, $3);
        2:        2:  351:		macro_t *macro = entry ? entry->data : NULL;
        2:        2:  352:		_glcpp_parser_skip_stack_push_if (parser, & @1, macro != NULL);
        -:        -:  353:	}
        -:        -:  354:|	HASH_TOKEN IFNDEF IDENTIFIER junk NEWLINE {
        1:        1:  355:		struct hash_entry *entry =
        1:        1:  356:				_mesa_hash_table_search(parser->defines, $3);
        1:        1:  357:		macro_t *macro = entry ? entry->data : NULL;
        1:        1:  358:		_glcpp_parser_skip_stack_push_if (parser, & @3, macro == NULL);
        -:        -:  359:	}
        -:        -:  360:|	HASH_TOKEN ELIF pp_tokens NEWLINE {
        -:        -:  361:		/* Be careful to only evaluate the 'elif' expression
        -:        -:  362:		 * if we are not skipping. When we are skipping, we
        -:        -:  363:		 * simply change to a 0-valued 'elif' on the skip
        -:        -:  364:		 * stack.
        -:        -:  365:		 *
        -:        -:  366:		 * This avoids generating diagnostics for invalid
        -:        -:  367:		 * expressions that are being skipped. */
    #####:    #####:  368:		if (parser->skip_stack &&
    #####:    #####:  369:		    parser->skip_stack->type == SKIP_TO_ELSE)
        -:        -:  370:		{
    #####:    #####:  371:			_glcpp_parser_expand_and_lex_from (parser,
    #####:    #####:  372:							   ELIF_EXPANDED, $3,
        -:        -:  373:							   EXPANSION_MODE_EVALUATE_DEFINED);
        -:        -:  374:		}
    #####:    #####:  375:		else if (parser->skip_stack &&
    #####:    #####:  376:		    parser->skip_stack->has_else)
        -:        -:  377:		{
    #####:    #####:  378:			glcpp_error(& @1, parser, "#elif after #else");
        -:        -:  379:		}
        -:        -:  380:		else
        -:        -:  381:		{
    #####:    #####:  382:			_glcpp_parser_skip_stack_change_if (parser, & @1,
        -:        -:  383:							    "elif", 0);
        -:        -:  384:		}
        -:        -:  385:	}
        -:        -:  386:|	HASH_TOKEN ELIF NEWLINE {
        -:        -:  387:		/* #elif without an expression is an error unless we
        -:        -:  388:		 * are skipping. */
    #####:    #####:  389:		if (parser->skip_stack &&
    #####:    #####:  390:		    parser->skip_stack->type == SKIP_TO_ELSE)
        -:        -:  391:		{
    #####:    #####:  392:			glcpp_error(& @1, parser, "#elif with no expression");
        -:        -:  393:		}
    #####:    #####:  394:		else if (parser->skip_stack &&
    #####:    #####:  395:		    parser->skip_stack->has_else)
        -:        -:  396:		{
    #####:    #####:  397:			glcpp_error(& @1, parser, "#elif after #else");
        -:        -:  398:		}
        -:        -:  399:		else
        -:        -:  400:		{
    #####:    #####:  401:			_glcpp_parser_skip_stack_change_if (parser, & @1,
        -:        -:  402:							    "elif", 0);
    #####:    #####:  403:			glcpp_warning(& @1, parser, "ignoring illegal #elif without expression");
        -:        -:  404:		}
        -:        -:  405:	}
        1:        1:  406:|	HASH_TOKEN ELSE { parser->lexing_directive = 1; } NEWLINE {
        2:        2:  407:		if (parser->skip_stack &&
        1:        1:  408:		    parser->skip_stack->has_else)
        -:        -:  409:		{
    #####:    #####:  410:			glcpp_error(& @1, parser, "multiple #else");
        -:        -:  411:		}
        -:        -:  412:		else
        -:        -:  413:		{
        1:        1:  414:			_glcpp_parser_skip_stack_change_if (parser, & @1, "else", 1);
        1:        1:  415:			if (parser->skip_stack)
        1:        1:  416:				parser->skip_stack->has_else = true;
        -:        -:  417:		}
        -:        -:  418:	}
        -:        -:  419:|	HASH_TOKEN ENDIF {
        3:        3:  420:		_glcpp_parser_skip_stack_pop (parser, & @1);
        -:        -:  421:	} NEWLINE
        -:        -:  422:|	HASH_TOKEN VERSION_TOKEN version_constant NEWLINE {
        2:        2:  423:		if (parser->version_set) {
    #####:    #####:  424:			glcpp_error(& @1, parser, "#version must appear on the first line");
        -:        -:  425:		}
        2:        2:  426:		_glcpp_parser_handle_version_declaration(parser, $3, NULL, true);
        -:        -:  427:	}
        -:        -:  428:|	HASH_TOKEN VERSION_TOKEN version_constant IDENTIFIER NEWLINE {
    #####:    #####:  429:		if (parser->version_set) {
    #####:    #####:  430:			glcpp_error(& @1, parser, "#version must appear on the first line");
        -:        -:  431:		}
    #####:    #####:  432:		_glcpp_parser_handle_version_declaration(parser, $3, $4, true);
        -:        -:  433:	}
        -:        -:  434:|	HASH_TOKEN NEWLINE {
    #####:    #####:  435:		glcpp_parser_resolve_implicit_version(parser);
        -:        -:  436:	}
        -:        -:  437:|	HASH_TOKEN PRAGMA NEWLINE {
    #####:    #####:  438:		ralloc_asprintf_rewrite_tail (&parser->output, &parser->output_length, "#%s", $2);
        -:        -:  439:	}
        -:        -:  440:;
        -:        -:  441:
        -:        -:  442:control_line_error:
        -:        -:  443:	HASH_TOKEN ERROR_TOKEN NEWLINE {
    #####:    #####:  444:		glcpp_error(& @1, parser, "#%s", $2);
        -:        -:  445:	}
        -:        -:  446:|	HASH_TOKEN DEFINE_TOKEN NEWLINE {
    #####:    #####:  447:		glcpp_error (& @1, parser, "#define without macro name");
        -:        -:  448:	}
        -:        -:  449:|	HASH_TOKEN GARBAGE pp_tokens NEWLINE  {
    #####:    #####:  450:		glcpp_error (& @1, parser, "Illegal non-directive after #");
        -:        -:  451:	}
        -:        -:  452:;
        -:        -:  453:
        -:        -:  454:integer_constant:
        -:        -:  455:	INTEGER_STRING {
    #####:    #####:  456:		if (strlen ($1) >= 3 && strncmp ($1, "0x", 2) == 0) {
    #####:    #####:  457:			$$ = strtoll ($1 + 2, NULL, 16);
    #####:    #####:  458:		} else if ($1[0] == '0') {
    #####:    #####:  459:			$$ = strtoll ($1, NULL, 8);
        -:        -:  460:		} else {
    #####:    #####:  461:			$$ = strtoll ($1, NULL, 10);
        -:        -:  462:		}
        -:        -:  463:	}
        -:        -:  464:|	INTEGER {
    #####:    #####:  465:		$$ = $1;
        -:        -:  466:	}
        -:        -:  467:
        -:        -:  468:version_constant:
        -:        -:  469:	INTEGER_STRING {
        -:        -:  470:	   /* Both octal and hexadecimal constants begin with 0. */
        2:        2:  471:	   if ($1[0] == '0' && $1[1] != '\0') {
    #####:    #####:  472:		glcpp_error(&@1, parser, "invalid #version \"%s\" (not a decimal constant)", $1);
    #####:    #####:  473:		$$ = 0;
        -:        -:  474:	   } else {
        2:        2:  475:		$$ = strtoll($1, NULL, 10);
        -:        -:  476:	   }
        -:        -:  477:	}
        -:        -:  478:
        -:        -:  479:expression:
        -:        -:  480:	integer_constant {
    #####:    #####:  481:		$$.value = $1;
    #####:    #####:  482:		$$.undefined_macro = NULL;
        -:        -:  483:	}
        -:        -:  484:|	IDENTIFIER {
    #####:    #####:  485:		$$.value = 0;
    #####:    #####:  486:		if (parser->is_gles)
    #####:    #####:  487:			$$.undefined_macro = linear_strdup(parser->linalloc, $1);
        -:        -:  488:		else
    #####:    #####:  489:			$$.undefined_macro = NULL;
        -:        -:  490:	}
        -:        -:  491:|	expression OR expression {
    #####:    #####:  492:		$$.value = $1.value || $3.value;
        -:        -:  493:
        -:        -:  494:		/* Short-circuit: Only flag undefined from right side
        -:        -:  495:		 * if left side evaluates to false.
        -:        -:  496:		 */
    #####:    #####:  497:		if ($1.undefined_macro)
    #####:    #####:  498:			$$.undefined_macro = $1.undefined_macro;
    #####:    #####:  499:                else if (! $1.value)
    #####:    #####:  500:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  501:	}
        -:        -:  502:|	expression AND expression {
    #####:    #####:  503:		$$.value = $1.value && $3.value;
        -:        -:  504:
        -:        -:  505:		/* Short-circuit: Only flag undefined from right-side
        -:        -:  506:		 * if left side evaluates to true.
        -:        -:  507:		 */
    #####:    #####:  508:		if ($1.undefined_macro)
    #####:    #####:  509:			$$.undefined_macro = $1.undefined_macro;
    #####:    #####:  510:                else if ($1.value)
    #####:    #####:  511:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  512:	}
        -:        -:  513:|	expression '|' expression {
    #####:    #####:  514:		$$.value = $1.value | $3.value;
    #####:    #####:  515:		if ($1.undefined_macro)
    #####:    #####:  516:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  517:                else
    #####:    #####:  518:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  519:	}
        -:        -:  520:|	expression '^' expression {
    #####:    #####:  521:		$$.value = $1.value ^ $3.value;
    #####:    #####:  522:		if ($1.undefined_macro)
    #####:    #####:  523:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  524:                else
    #####:    #####:  525:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  526:	}
        -:        -:  527:|	expression '&' expression {
    #####:    #####:  528:		$$.value = $1.value & $3.value;
    #####:    #####:  529:		if ($1.undefined_macro)
    #####:    #####:  530:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  531:                else
    #####:    #####:  532:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  533:	}
        -:        -:  534:|	expression NOT_EQUAL expression {
    #####:    #####:  535:		$$.value = $1.value != $3.value;
    #####:    #####:  536:		if ($1.undefined_macro)
    #####:    #####:  537:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  538:                else
    #####:    #####:  539:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  540:	}
        -:        -:  541:|	expression EQUAL expression {
    #####:    #####:  542:		$$.value = $1.value == $3.value;
    #####:    #####:  543:		if ($1.undefined_macro)
    #####:    #####:  544:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  545:                else
    #####:    #####:  546:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  547:	}
        -:        -:  548:|	expression GREATER_OR_EQUAL expression {
    #####:    #####:  549:		$$.value = $1.value >= $3.value;
    #####:    #####:  550:		if ($1.undefined_macro)
    #####:    #####:  551:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  552:                else
    #####:    #####:  553:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  554:	}
        -:        -:  555:|	expression LESS_OR_EQUAL expression {
    #####:    #####:  556:		$$.value = $1.value <= $3.value;
    #####:    #####:  557:		if ($1.undefined_macro)
    #####:    #####:  558:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  559:                else
    #####:    #####:  560:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  561:	}
        -:        -:  562:|	expression '>' expression {
    #####:    #####:  563:		$$.value = $1.value > $3.value;
    #####:    #####:  564:		if ($1.undefined_macro)
    #####:    #####:  565:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  566:                else
    #####:    #####:  567:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  568:	}
        -:        -:  569:|	expression '<' expression {
    #####:    #####:  570:		$$.value = $1.value < $3.value;
    #####:    #####:  571:		if ($1.undefined_macro)
    #####:    #####:  572:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  573:                else
    #####:    #####:  574:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  575:	}
        -:        -:  576:|	expression RIGHT_SHIFT expression {
    #####:    #####:  577:		$$.value = $1.value >> $3.value;
    #####:    #####:  578:		if ($1.undefined_macro)
    #####:    #####:  579:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  580:                else
    #####:    #####:  581:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  582:	}
        -:        -:  583:|	expression LEFT_SHIFT expression {
    #####:    #####:  584:		$$.value = $1.value << $3.value;
    #####:    #####:  585:		if ($1.undefined_macro)
    #####:    #####:  586:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  587:                else
    #####:    #####:  588:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  589:	}
        -:        -:  590:|	expression '-' expression {
    #####:    #####:  591:		$$.value = $1.value - $3.value;
    #####:    #####:  592:		if ($1.undefined_macro)
    #####:    #####:  593:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  594:                else
    #####:    #####:  595:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  596:	}
        -:        -:  597:|	expression '+' expression {
    #####:    #####:  598:		$$.value = $1.value + $3.value;
    #####:    #####:  599:		if ($1.undefined_macro)
    #####:    #####:  600:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  601:                else
    #####:    #####:  602:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  603:	}
        -:        -:  604:|	expression '%' expression {
    #####:    #####:  605:		if ($3.value == 0) {
    #####:    #####:  606:			yyerror (& @1, parser,
        -:        -:  607:				 "zero modulus in preprocessor directive");
        -:        -:  608:		} else {
    #####:    #####:  609:			$$.value = $1.value % $3.value;
        -:        -:  610:		}
    #####:    #####:  611:		if ($1.undefined_macro)
    #####:    #####:  612:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  613:                else
    #####:    #####:  614:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  615:	}
        -:        -:  616:|	expression '/' expression {
    #####:    #####:  617:		if ($3.value == 0) {
    #####:    #####:  618:			yyerror (& @1, parser,
        -:        -:  619:				 "division by 0 in preprocessor directive");
        -:        -:  620:		} else {
    #####:    #####:  621:			$$.value = $1.value / $3.value;
        -:        -:  622:		}
    #####:    #####:  623:		if ($1.undefined_macro)
    #####:    #####:  624:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  625:                else
    #####:    #####:  626:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  627:	}
        -:        -:  628:|	expression '*' expression {
    #####:    #####:  629:		$$.value = $1.value * $3.value;
    #####:    #####:  630:		if ($1.undefined_macro)
    #####:    #####:  631:			$$.undefined_macro = $1.undefined_macro;
        -:        -:  632:                else
    #####:    #####:  633:			$$.undefined_macro = $3.undefined_macro;
        -:        -:  634:	}
        -:        -:  635:|	'!' expression %prec UNARY {
    #####:    #####:  636:		$$.value = ! $2.value;
    #####:    #####:  637:		$$.undefined_macro = $2.undefined_macro;
        -:        -:  638:	}
        -:        -:  639:|	'~' expression %prec UNARY {
    #####:    #####:  640:		$$.value = ~ $2.value;
    #####:    #####:  641:		$$.undefined_macro = $2.undefined_macro;
        -:        -:  642:	}
        -:        -:  643:|	'-' expression %prec UNARY {
    #####:    #####:  644:		$$.value = - $2.value;
    #####:    #####:  645:		$$.undefined_macro = $2.undefined_macro;
        -:        -:  646:	}
        -:        -:  647:|	'+' expression %prec UNARY {
    #####:    #####:  648:		$$.value = + $2.value;
    #####:    #####:  649:		$$.undefined_macro = $2.undefined_macro;
        -:        -:  650:	}
        -:        -:  651:|	'(' expression ')' {
    #####:    #####:  652:		$$ = $2;
        -:        -:  653:	}
        -:        -:  654:;
        -:        -:  655:
        -:        -:  656:identifier_list:
        -:        -:  657:	IDENTIFIER {
       10:       10:  658:		$$ = _string_list_create (parser);
       10:       10:  659:		_string_list_append_item (parser, $$, $1);
        -:        -:  660:	}
        -:        -:  661:|	identifier_list ',' IDENTIFIER {
        5:        5:  662:		$$ = $1;	
        5:        5:  663:		_string_list_append_item (parser, $$, $3);
        -:        -:  664:	}
        -:        -:  665:;
        -:        -:  666:
        -:        -:  667:text_line:
       11:       11:  668:	NEWLINE { $$ = NULL; }
        -:        -:  669:|	pp_tokens NEWLINE
        -:        -:  670:;
        -:        -:  671:
        -:        -:  672:replacement_list:
    #####:    #####:  673:	/* empty */ { $$ = NULL; }
        -:        -:  674:|	pp_tokens
        -:        -:  675:;
        -:        -:  676:
        -:        -:  677:junk:
        -:        -:  678:	/* empty */
        -:        -:  679:|	pp_tokens {
    #####:    #####:  680:		glcpp_error(&@1, parser, "extra tokens at end of directive");
        -:        -:  681:	}
        -:        -:  682:;
        -:        -:  683:
        -:        -:  684:pp_tokens:
        -:        -:  685:	preprocessing_token {
       59:       61:  686:		parser->space_tokens = 1;
       59:       61:  687:		$$ = _token_list_create (parser);
       59:       61:  688:		_token_list_append (parser, $$, $1);
        -:        -:  689:	}
        -:        -:  690:|	pp_tokens preprocessing_token {
      376:      392:  691:		$$ = $1;
      376:      392:  692:		_token_list_append (parser, $$, $2);
        -:        -:  693:	}
        -:        -:  694:;
        -:        -:  695:
        -:        -:  696:preprocessing_token:
        -:        -:  697:	IDENTIFIER {
      123:      127:  698:		$$ = _token_create_str (parser, IDENTIFIER, $1);
      123:      127:  699:		$$->location = yylloc;
        -:        -:  700:	}
        -:        -:  701:|	INTEGER_STRING {
       17:       17:  702:		$$ = _token_create_str (parser, INTEGER_STRING, $1);
       17:       17:  703:		$$->location = yylloc;
        -:        -:  704:	}
        -:        -:  705:|	operator {
      176:      183:  706:		$$ = _token_create_ival (parser, $1, $1);
      176:      183:  707:		$$->location = yylloc;
        -:        -:  708:	}
        -:        -:  709:|	DEFINED {
    #####:    #####:  710:		$$ = _token_create_ival (parser, DEFINED, DEFINED);
    #####:    #####:  711:		$$->location = yylloc;
        -:        -:  712:	}
        -:        -:  713:|	OTHER {
        2:        3:  714:		$$ = _token_create_str (parser, OTHER, $1);
        2:        3:  715:		$$->location = yylloc;
        -:        -:  716:	}
        -:        -:  717:|	SPACE {
      117:      123:  718:		$$ = _token_create_ival (parser, SPACE, SPACE);
      117:      123:  719:		$$->location = yylloc;
        -:        -:  720:	}
        -:        -:  721:;
        -:        -:  722:
        -:        -:  723:operator:
       17:       17:  724:	'['			{ $$ = '['; }
       17:       17:  725:|	']'			{ $$ = ']'; }
       26:       27:  726:|	'('			{ $$ = '('; }
       26:       27:  727:|	')'			{ $$ = ')'; }
        8:        9:  728:|	'{'			{ $$ = '{'; }
        8:        9:  729:|	'}'			{ $$ = '}'; }
       14:       15:  730:|	'.'			{ $$ = '.'; }
    #####:    #####:  731:|	'&'			{ $$ = '&'; }
        1:        1:  732:|	'*'			{ $$ = '*'; }
        2:        2:  733:|	'+'			{ $$ = '+'; }
    #####:    #####:  734:|	'-'			{ $$ = '-'; }
    #####:    #####:  735:|	'~'			{ $$ = '~'; }
    #####:    #####:  736:|	'!'			{ $$ = '!'; }
        1:        1:  737:|	'/'			{ $$ = '/'; }
    #####:    #####:  738:|	'%'			{ $$ = '%'; }
    #####:    #####:  739:|	LEFT_SHIFT		{ $$ = LEFT_SHIFT; }
    #####:    #####:  740:|	RIGHT_SHIFT		{ $$ = RIGHT_SHIFT; }
        2:        3:  741:|	'<'			{ $$ = '<'; }
    #####:    #####:  742:|	'>'			{ $$ = '>'; }
        1:        1:  743:|	LESS_OR_EQUAL		{ $$ = LESS_OR_EQUAL; }
        2:        2:  744:|	GREATER_OR_EQUAL	{ $$ = GREATER_OR_EQUAL; }
    #####:    #####:  745:|	EQUAL			{ $$ = EQUAL; }
    #####:    #####:  746:|	NOT_EQUAL		{ $$ = NOT_EQUAL; }
    #####:    #####:  747:|	'^'			{ $$ = '^'; }
    #####:    #####:  748:|	'|'			{ $$ = '|'; }
    #####:    #####:  749:|	AND			{ $$ = AND; }
    #####:    #####:  750:|	OR			{ $$ = OR; }
       22:       23:  751:|	';'			{ $$ = ';'; }
       12:       12:  752:|	','			{ $$ = ','; }
       15:       15:  753:|	'='			{ $$ = '='; }
    #####:    #####:  754:|	PASTE			{ $$ = PASTE; }
        2:        2:  755:|	PLUS_PLUS		{ $$ = PLUS_PLUS; }
    #####:    #####:  756:|	MINUS_MINUS		{ $$ = MINUS_MINUS; }
        -:        -:  757:;
        -:        -:  758:
        -:        -:  759:%%
        -:        -:  760:
        -:        -:  761:string_list_t *
       10:       10:  762:_string_list_create(glcpp_parser_t *parser)
        -:        -:  763:{
        -:        -:  764:   string_list_t *list;
        -:        -:  765:
       10:       10:  766:   list = linear_alloc_child(parser->linalloc, sizeof(string_list_t));
       10:       10:  767:   list->head = NULL;
       10:       10:  768:   list->tail = NULL;
        -:        -:  769:
       10:       10:  770:   return list;
        -:        -:  771:}
        -:        -:  772:
        -:        -:  773:void
       15:       15:  774:_string_list_append_item(glcpp_parser_t *parser, string_list_t *list,
        -:        -:  775:                         const char *str)
        -:        -:  776:{
        -:        -:  777:   string_node_t *node;
        -:        -:  778:
       15:       15:  779:   node = linear_alloc_child(parser->linalloc, sizeof(string_node_t));
       15:       15:  780:   node->str = linear_strdup(parser->linalloc, str);
        -:        -:  781:
       15:       15:  782:   node->next = NULL;
        -:        -:  783:
       15:       15:  784:   if (list->head == NULL) {
       10:       10:  785:      list->head = node;
        -:        -:  786:   } else {
        5:        5:  787:      list->tail->next = node;
        -:        -:  788:   }
        -:        -:  789:
       15:       15:  790:   list->tail = node;
       15:       15:  791:}
        -:        -:  792:
        -:        -:  793:int
    #####:    #####:  794:_string_list_contains(string_list_t *list, const char *member, int *index)
        -:        -:  795:{
        -:        -:  796:   string_node_t *node;
        -:        -:  797:   int i;
        -:        -:  798:
    #####:    #####:  799:   if (list == NULL)
    #####:    #####:  800:      return 0;
        -:        -:  801:
    #####:    #####:  802:   for (i = 0, node = list->head; node; i++, node = node->next) {
    #####:    #####:  803:      if (strcmp (node->str, member) == 0) {
    #####:    #####:  804:         if (index)
    #####:    #####:  805:            *index = i;
    #####:    #####:  806:         return 1;
        -:        -:  807:      }
        -:        -:  808:   }
        -:        -:  809:
    #####:    #####:  810:   return 0;
        -:        -:  811:}
        -:        -:  812:
        -:        -:  813:/* Return duplicate string in list (if any), NULL otherwise. */
        -:        -:  814:const char *
       10:       10:  815:_string_list_has_duplicate(string_list_t *list)
        -:        -:  816:{
        -:        -:  817:   string_node_t *node, *dup;
        -:        -:  818:
       10:       10:  819:   if (list == NULL)
    #####:    #####:  820:      return NULL;
        -:        -:  821:
       25:       25:  822:   for (node = list->head; node; node = node->next) {
       20:       20:  823:      for (dup = node->next; dup; dup = dup->next) {
        5:        5:  824:         if (strcmp (node->str, dup->str) == 0)
    #####:    #####:  825:            return node->str;
        -:        -:  826:      }
        -:        -:  827:   }
        -:        -:  828:
       10:       10:  829:   return NULL;
        -:        -:  830:}
        -:        -:  831:
        -:        -:  832:int
    #####:    #####:  833:_string_list_length(string_list_t *list)
        -:        -:  834:{
    #####:    #####:  835:   int length = 0;
        -:        -:  836:   string_node_t *node;
        -:        -:  837:
    #####:    #####:  838:   if (list == NULL)
    #####:    #####:  839:      return 0;
        -:        -:  840:
    #####:    #####:  841:   for (node = list->head; node; node = node->next)
    #####:    #####:  842:      length++;
        -:        -:  843:
    #####:    #####:  844:   return length;
        -:        -:  845:}
        -:        -:  846:
        -:        -:  847:int
    #####:    #####:  848:_string_list_equal(string_list_t *a, string_list_t *b)
        -:        -:  849:{
        -:        -:  850:   string_node_t *node_a, *node_b;
        -:        -:  851:
    #####:    #####:  852:   if (a == NULL && b == NULL)
    #####:    #####:  853:      return 1;
        -:        -:  854:
    #####:    #####:  855:   if (a == NULL || b == NULL)
    #####:    #####:  856:      return 0;
        -:        -:  857:
    #####:    #####:  858:   for (node_a = a->head, node_b = b->head;
    #####:    #####:  859:        node_a && node_b;
    #####:    #####:  860:        node_a = node_a->next, node_b = node_b->next)
        -:        -:  861:   {
    #####:    #####:  862:      if (strcmp (node_a->str, node_b->str))
    #####:    #####:  863:         return 0;
        -:        -:  864:   }
        -:        -:  865:
        -:        -:  866:   /* Catch the case of lists being different lengths, (which
        -:        -:  867:    * would cause the loop above to terminate after the shorter
        -:        -:  868:    * list). */
    #####:    #####:  869:   return node_a == node_b;
        -:        -:  870:}
        -:        -:  871:
        -:        -:  872:argument_list_t *
    #####:    #####:  873:_argument_list_create(glcpp_parser_t *parser)
        -:        -:  874:{
        -:        -:  875:   argument_list_t *list;
        -:        -:  876:
    #####:    #####:  877:   list = linear_alloc_child(parser->linalloc, sizeof(argument_list_t));
    #####:    #####:  878:   list->head = NULL;
    #####:    #####:  879:   list->tail = NULL;
        -:        -:  880:
    #####:    #####:  881:   return list;
        -:        -:  882:}
        -:        -:  883:
        -:        -:  884:void
    #####:    #####:  885:_argument_list_append(glcpp_parser_t *parser,
        -:        -:  886:                      argument_list_t *list, token_list_t *argument)
        -:        -:  887:{
        -:        -:  888:   argument_node_t *node;
        -:        -:  889:
    #####:    #####:  890:   node = linear_alloc_child(parser->linalloc, sizeof(argument_node_t));
    #####:    #####:  891:   node->argument = argument;
        -:        -:  892:
    #####:    #####:  893:   node->next = NULL;
        -:        -:  894:
    #####:    #####:  895:   if (list->head == NULL) {
    #####:    #####:  896:      list->head = node;
        -:        -:  897:   } else {
    #####:    #####:  898:      list->tail->next = node;
        -:        -:  899:   }
        -:        -:  900:
    #####:    #####:  901:   list->tail = node;
    #####:    #####:  902:}
        -:        -:  903:
        -:        -:  904:int
    #####:    #####:  905:_argument_list_length(argument_list_t *list)
        -:        -:  906:{
    #####:    #####:  907:   int length = 0;
        -:        -:  908:   argument_node_t *node;
        -:        -:  909:
    #####:    #####:  910:   if (list == NULL)
    #####:    #####:  911:      return 0;
        -:        -:  912:
    #####:    #####:  913:   for (node = list->head; node; node = node->next)
    #####:    #####:  914:      length++;
        -:        -:  915:
    #####:    #####:  916:   return length;
        -:        -:  917:}
        -:        -:  918:
        -:        -:  919:token_list_t *
    #####:    #####:  920:_argument_list_member_at(argument_list_t *list, int index)
        -:        -:  921:{
        -:        -:  922:   argument_node_t *node;
        -:        -:  923:   int i;
        -:        -:  924:
    #####:    #####:  925:   if (list == NULL)
    #####:    #####:  926:      return NULL;
        -:        -:  927:
    #####:    #####:  928:   node = list->head;
    #####:    #####:  929:   for (i = 0; i < index; i++) {
    #####:    #####:  930:      node = node->next;
    #####:    #####:  931:      if (node == NULL)
    #####:    #####:  932:         break;
        -:        -:  933:   }
        -:        -:  934:
    #####:    #####:  935:   if (node)
    #####:    #####:  936:      return node->argument;
        -:        -:  937:
    #####:    #####:  938:   return NULL;
        -:        -:  939:}
        -:        -:  940:
        -:        -:  941:token_t *
      142:      147:  942:_token_create_str(glcpp_parser_t *parser, int type, char *str)
        -:        -:  943:{
        -:        -:  944:   token_t *token;
        -:        -:  945:
      142:      147:  946:   token = linear_alloc_child(parser->linalloc, sizeof(token_t));
      142:      147:  947:   token->type = type;
      142:      147:  948:   token->value.str = str;
        -:        -:  949:
      142:      147:  950:   return token;
        -:        -:  951:}
        -:        -:  952:
        -:        -:  953:token_t *
      361:      374:  954:_token_create_ival(glcpp_parser_t *parser, int type, int ival)
        -:        -:  955:{
        -:        -:  956:   token_t *token;
        -:        -:  957:
      361:      374:  958:   token = linear_alloc_child(parser->linalloc, sizeof(token_t));
      361:      374:  959:   token->type = type;
      361:      374:  960:   token->value.ival = ival;
        -:        -:  961:
      361:      374:  962:   return token;
        -:        -:  963:}
        -:        -:  964:
        -:        -:  965:token_list_t *
      127:      129:  966:_token_list_create(glcpp_parser_t *parser)
        -:        -:  967:{
        -:        -:  968:   token_list_t *list;
        -:        -:  969:
      127:      129:  970:   list = linear_alloc_child(parser->linalloc, sizeof(token_list_t));
      127:      129:  971:   list->head = NULL;
      127:      129:  972:   list->tail = NULL;
      127:      129:  973:   list->non_space_tail = NULL;
        -:        -:  974:
      127:      129:  975:   return list;
        -:        -:  976:}
        -:        -:  977:
        -:        -:  978:void
      503:      521:  979:_token_list_append(glcpp_parser_t *parser, token_list_t *list, token_t *token)
        -:        -:  980:{
        -:        -:  981:   token_node_t *node;
        -:        -:  982:
      503:      521:  983:   node = linear_alloc_child(parser->linalloc, sizeof(token_node_t));
      503:      521:  984:   node->token = token;
      503:      521:  985:   node->next = NULL;
        -:        -:  986:
      503:      521:  987:   if (list->head == NULL) {
      127:      129:  988:      list->head = node;
        -:        -:  989:   } else {
      376:      392:  990:      list->tail->next = node;
        -:        -:  991:   }
        -:        -:  992:
      503:      521:  993:   list->tail = node;
      503:      521:  994:   if (token->type != SPACE)
      386:      398:  995:      list->non_space_tail = node;
      503:      521:  996:}
        -:        -:  997:
        -:        -:  998:void
    #####:    #####:  999:_token_list_append_list(token_list_t *list, token_list_t *tail)
        -:        -: 1000:{
    #####:    #####: 1001:   if (tail == NULL || tail->head == NULL)
    #####:    #####: 1002:      return;
        -:        -: 1003:
    #####:    #####: 1004:   if (list->head == NULL) {
    #####:    #####: 1005:      list->head = tail->head;
        -:        -: 1006:   } else {
    #####:    #####: 1007:      list->tail->next = tail->head;
        -:        -: 1008:   }
        -:        -: 1009:
    #####:    #####: 1010:   list->tail = tail->tail;
    #####:    #####: 1011:   list->non_space_tail = tail->non_space_tail;
        -:        -: 1012:}
        -:        -: 1013:
        -:        -: 1014:static token_list_t *
    #####:    #####: 1015:_token_list_copy(glcpp_parser_t *parser, token_list_t *other)
        -:        -: 1016:{
        -:        -: 1017:   token_list_t *copy;
        -:        -: 1018:   token_node_t *node;
        -:        -: 1019:
    #####:    #####: 1020:   if (other == NULL)
    #####:    #####: 1021:      return NULL;
        -:        -: 1022:
    #####:    #####: 1023:   copy = _token_list_create (parser);
    #####:    #####: 1024:   for (node = other->head; node; node = node->next) {
    #####:    #####: 1025:      token_t *new_token = linear_alloc_child(parser->linalloc, sizeof(token_t));
    #####:    #####: 1026:      *new_token = *node->token;
    #####:    #####: 1027:      _token_list_append (parser, copy, new_token);
        -:        -: 1028:   }
        -:        -: 1029:
    #####:    #####: 1030:   return copy;
        -:        -: 1031:}
        -:        -: 1032:
        -:        -: 1033:static void
       98:      102: 1034:_token_list_trim_trailing_space(token_list_t *list)
        -:        -: 1035:{
       98:      102: 1036:   if (list->non_space_tail) {
       98:      102: 1037:      list->non_space_tail->next = NULL;
       98:      102: 1038:      list->tail = list->non_space_tail;
        -:        -: 1039:   }
       98:      102: 1040:}
        -:        -: 1041:
        -:        -: 1042:static int
    #####:    #####: 1043:_token_list_is_empty_ignoring_space(token_list_t *l)
        -:        -: 1044:{
        -:        -: 1045:   token_node_t *n;
        -:        -: 1046:
    #####:    #####: 1047:   if (l == NULL)
    #####:    #####: 1048:      return 1;
        -:        -: 1049:
    #####:    #####: 1050:   n = l->head;
    #####:    #####: 1051:   while (n != NULL && n->token->type == SPACE)
    #####:    #####: 1052:      n = n->next;
        -:        -: 1053:
    #####:    #####: 1054:   return n == NULL;
        -:        -: 1055:}
        -:        -: 1056:
        -:        -: 1057:int
    #####:    #####: 1058:_token_list_equal_ignoring_space(token_list_t *a, token_list_t *b)
        -:        -: 1059:{
        -:        -: 1060:   token_node_t *node_a, *node_b;
        -:        -: 1061:
    #####:    #####: 1062:   if (a == NULL || b == NULL) {
    #####:    #####: 1063:      int a_empty = _token_list_is_empty_ignoring_space(a);
    #####:    #####: 1064:      int b_empty = _token_list_is_empty_ignoring_space(b);
    #####:    #####: 1065:      return a_empty == b_empty;
        -:        -: 1066:   }
        -:        -: 1067:
    #####:    #####: 1068:   node_a = a->head;
    #####:    #####: 1069:   node_b = b->head;
        -:        -: 1070:
        -:        -: 1071:   while (1)
        -:        -: 1072:   {
    #####:    #####: 1073:      if (node_a == NULL && node_b == NULL)
    #####:    #####: 1074:         break;
        -:        -: 1075:
    #####:    #####: 1076:      if (node_a == NULL || node_b == NULL)
    #####:    #####: 1077:         return 0;
        -:        -: 1078:      /* Make sure whitespace appears in the same places in both.
        -:        -: 1079:       * It need not be exactly the same amount of whitespace,
        -:        -: 1080:       * though.
        -:        -: 1081:       */
    #####:    #####: 1082:      if (node_a->token->type == SPACE && node_b->token->type == SPACE) {
    #####:    #####: 1083:         while (node_a && node_a->token->type == SPACE)
    #####:    #####: 1084:            node_a = node_a->next;
    #####:    #####: 1085:         while (node_b && node_b->token->type == SPACE)
    #####:    #####: 1086:            node_b = node_b->next;
    #####:    #####: 1087:         continue;
        -:        -: 1088:      }
        -:        -: 1089:
    #####:    #####: 1090:      if (node_a->token->type != node_b->token->type)
    #####:    #####: 1091:         return 0;
        -:        -: 1092:
    #####:    #####: 1093:      switch (node_a->token->type) {
        -:        -: 1094:      case INTEGER:
    #####:    #####: 1095:         if (node_a->token->value.ival !=  node_b->token->value.ival) {
    #####:    #####: 1096:            return 0;
        -:        -: 1097:         }
    #####:    #####: 1098:         break;
        -:        -: 1099:      case IDENTIFIER:
        -:        -: 1100:      case INTEGER_STRING:
        -:        -: 1101:      case OTHER:
    #####:    #####: 1102:         if (strcmp(node_a->token->value.str, node_b->token->value.str)) {
    #####:    #####: 1103:            return 0;
        -:        -: 1104:         }
    #####:    #####: 1105:         break;
        -:        -: 1106:      }
        -:        -: 1107:
    #####:    #####: 1108:      node_a = node_a->next;
    #####:    #####: 1109:      node_b = node_b->next;
    #####:    #####: 1110:   }
        -:        -: 1111:
    #####:    #####: 1112:   return 1;
        -:        -: 1113:}
        -:        -: 1114:
        -:        -: 1115:static void
      411:      429: 1116:_token_print(char **out, size_t *len, token_t *token)
        -:        -: 1117:{
      411:      429: 1118:   if (token->type < 256) {
      157:      164: 1119:      ralloc_asprintf_rewrite_tail (out, len, "%c", token->type);
      157:      164: 1120:      return;
        -:        -: 1121:   }
        -:        -: 1122:
      254:      265: 1123:   switch (token->type) {
        -:        -: 1124:   case INTEGER:
    #####:    #####: 1125:      ralloc_asprintf_rewrite_tail (out, len, "%" PRIiMAX, token->value.ival);
    #####:    #####: 1126:      break;
        -:        -: 1127:   case IDENTIFIER:
        -:        -: 1128:   case INTEGER_STRING:
        -:        -: 1129:   case OTHER:
      132:      137: 1130:      ralloc_asprintf_rewrite_tail (out, len, "%s", token->value.str);
      132:      137: 1131:      break;
        -:        -: 1132:   case SPACE:
      117:      123: 1133:      ralloc_asprintf_rewrite_tail (out, len, " ");
      117:      123: 1134:      break;
        -:        -: 1135:   case LEFT_SHIFT:
    #####:    #####: 1136:      ralloc_asprintf_rewrite_tail (out, len, "<<");
    #####:    #####: 1137:      break;
        -:        -: 1138:   case RIGHT_SHIFT:
    #####:    #####: 1139:      ralloc_asprintf_rewrite_tail (out, len, ">>");
    #####:    #####: 1140:      break;
        -:        -: 1141:   case LESS_OR_EQUAL:
        1:        1: 1142:      ralloc_asprintf_rewrite_tail (out, len, "<=");
        1:        1: 1143:      break;
        -:        -: 1144:   case GREATER_OR_EQUAL:
        2:        2: 1145:      ralloc_asprintf_rewrite_tail (out, len, ">=");
        2:        2: 1146:      break;
        -:        -: 1147:   case EQUAL:
    #####:    #####: 1148:      ralloc_asprintf_rewrite_tail (out, len, "==");
    #####:    #####: 1149:      break;
        -:        -: 1150:   case NOT_EQUAL:
    #####:    #####: 1151:      ralloc_asprintf_rewrite_tail (out, len, "!=");
    #####:    #####: 1152:      break;
        -:        -: 1153:   case AND:
    #####:    #####: 1154:      ralloc_asprintf_rewrite_tail (out, len, "&&");
    #####:    #####: 1155:      break;
        -:        -: 1156:   case OR:
    #####:    #####: 1157:      ralloc_asprintf_rewrite_tail (out, len, "||");
    #####:    #####: 1158:      break;
        -:        -: 1159:   case PASTE:
    #####:    #####: 1160:      ralloc_asprintf_rewrite_tail (out, len, "##");
    #####:    #####: 1161:      break;
        -:        -: 1162:   case PLUS_PLUS:
        2:        2: 1163:      ralloc_asprintf_rewrite_tail (out, len, "++");
        2:        2: 1164:      break;
        -:        -: 1165:   case MINUS_MINUS:
    #####:    #####: 1166:      ralloc_asprintf_rewrite_tail (out, len, "--");
    #####:    #####: 1167:      break;
        -:        -: 1168:   case DEFINED:
    #####:    #####: 1169:      ralloc_asprintf_rewrite_tail (out, len, "defined");
    #####:    #####: 1170:      break;
        -:        -: 1171:   case PLACEHOLDER:
        -:        -: 1172:      /* Nothing to print. */
    #####:    #####: 1173:      break;
        -:        -: 1174:   default:
    #####:    #####: 1175:      assert(!"Error: Don't know how to print token.");
        -:        -: 1176:
        -:        -: 1177:      break;
        -:        -: 1178:   }
        -:        -: 1179:}
        -:        -: 1180:
        -:        -: 1181:/* Return a new token formed by pasting 'token' and 'other'. Note that this
        -:        -: 1182: * function may return 'token' or 'other' directly rather than allocating
        -:        -: 1183: * anything new.
        -:        -: 1184: *
        -:        -: 1185: * Caution: Only very cursory error-checking is performed to see if
        -:        -: 1186: * the final result is a valid single token. */
        -:        -: 1187:static token_t *
    #####:    #####: 1188:_token_paste(glcpp_parser_t *parser, token_t *token, token_t *other)
        -:        -: 1189:{
    #####:    #####: 1190:   token_t *combined = NULL;
        -:        -: 1191:
        -:        -: 1192:   /* Pasting a placeholder onto anything makes no change. */
    #####:    #####: 1193:   if (other->type == PLACEHOLDER)
    #####:    #####: 1194:      return token;
        -:        -: 1195:
        -:        -: 1196:   /* When 'token' is a placeholder, just return 'other'. */
    #####:    #####: 1197:   if (token->type == PLACEHOLDER)
    #####:    #####: 1198:      return other;
        -:        -: 1199:
        -:        -: 1200:   /* A very few single-character punctuators can be combined
        -:        -: 1201:    * with another to form a multi-character punctuator. */
    #####:    #####: 1202:   switch (token->type) {
        -:        -: 1203:   case '<':
    #####:    #####: 1204:      if (other->type == '<')
    #####:    #####: 1205:         combined = _token_create_ival (parser, LEFT_SHIFT, LEFT_SHIFT);
    #####:    #####: 1206:      else if (other->type == '=')
    #####:    #####: 1207:         combined = _token_create_ival (parser, LESS_OR_EQUAL, LESS_OR_EQUAL);
    #####:    #####: 1208:      break;
        -:        -: 1209:   case '>':
    #####:    #####: 1210:      if (other->type == '>')
    #####:    #####: 1211:         combined = _token_create_ival (parser, RIGHT_SHIFT, RIGHT_SHIFT);
    #####:    #####: 1212:      else if (other->type == '=')
    #####:    #####: 1213:         combined = _token_create_ival (parser, GREATER_OR_EQUAL, GREATER_OR_EQUAL);
    #####:    #####: 1214:      break;
        -:        -: 1215:   case '=':
    #####:    #####: 1216:      if (other->type == '=')
    #####:    #####: 1217:         combined = _token_create_ival (parser, EQUAL, EQUAL);
    #####:    #####: 1218:      break;
        -:        -: 1219:   case '!':
    #####:    #####: 1220:      if (other->type == '=')
    #####:    #####: 1221:         combined = _token_create_ival (parser, NOT_EQUAL, NOT_EQUAL);
    #####:    #####: 1222:      break;
        -:        -: 1223:   case '&':
    #####:    #####: 1224:      if (other->type == '&')
    #####:    #####: 1225:         combined = _token_create_ival (parser, AND, AND);
    #####:    #####: 1226:      break;
        -:        -: 1227:   case '|':
    #####:    #####: 1228:      if (other->type == '|')
    #####:    #####: 1229:         combined = _token_create_ival (parser, OR, OR);
    #####:    #####: 1230:      break;
        -:        -: 1231:   }
        -:        -: 1232:
    #####:    #####: 1233:   if (combined != NULL) {
        -:        -: 1234:      /* Inherit the location from the first token */
    #####:    #####: 1235:      combined->location = token->location;
    #####:    #####: 1236:      return combined;
        -:        -: 1237:   }
        -:        -: 1238:
        -:        -: 1239:   /* Two string-valued (or integer) tokens can usually just be
        -:        -: 1240:    * mashed together. (We also handle a string followed by an
        -:        -: 1241:    * integer here as well.)
        -:        -: 1242:    *
        -:        -: 1243:    * There are some exceptions here. Notably, if the first token
        -:        -: 1244:    * is an integer (or a string representing an integer), then
        -:        -: 1245:    * the second token must also be an integer or must be a
        -:        -: 1246:    * string representing an integer that begins with a digit.
        -:        -: 1247:    */
    #####:    #####: 1248:   if ((token->type == IDENTIFIER || token->type == OTHER || token->type == INTEGER_STRING || token->type == INTEGER) &&
    #####:    #####: 1249:       (other->type == IDENTIFIER || other->type == OTHER || other->type == INTEGER_STRING || other->type == INTEGER))
        -:        -: 1250:   {
        -:        -: 1251:      char *str;
        -:        -: 1252:      int combined_type;
        -:        -: 1253:
        -:        -: 1254:      /* Check that pasting onto an integer doesn't create a
        -:        -: 1255:       * non-integer, (that is, only digits can be
        -:        -: 1256:       * pasted. */
    #####:    #####: 1257:      if (token->type == INTEGER_STRING || token->type == INTEGER) {
    #####:    #####: 1258:         switch (other->type) {
        -:        -: 1259:         case INTEGER_STRING:
    #####:    #####: 1260:            if (other->value.str[0] < '0' || other->value.str[0] > '9')
        -:        -: 1261:               goto FAIL;
    #####:    #####: 1262:            break;
        -:        -: 1263:         case INTEGER:
    #####:    #####: 1264:            if (other->value.ival < 0)
    #####:    #####: 1265:               goto FAIL;
    #####:    #####: 1266:            break;
        -:        -: 1267:         default:
    #####:    #####: 1268:            goto FAIL;
        -:        -: 1269:         }
        -:        -: 1270:      }
        -:        -: 1271:
    #####:    #####: 1272:      if (token->type == INTEGER)
    #####:    #####: 1273:         str = linear_asprintf(parser->linalloc, "%" PRIiMAX, token->value.ival);
        -:        -: 1274:      else
    #####:    #####: 1275:         str = linear_strdup(parser->linalloc, token->value.str);
        -:        -: 1276:
    #####:    #####: 1277:      if (other->type == INTEGER)
    #####:    #####: 1278:         linear_asprintf_append(parser->linalloc, &str, "%" PRIiMAX, other->value.ival);
        -:        -: 1279:      else
    #####:    #####: 1280:         linear_strcat(parser->linalloc, &str, other->value.str);
        -:        -: 1281:
        -:        -: 1282:      /* New token is same type as original token, unless we
        -:        -: 1283:       * started with an integer, in which case we will be
        -:        -: 1284:       * creating an integer-string. */
    #####:    #####: 1285:      combined_type = token->type;
    #####:    #####: 1286:      if (combined_type == INTEGER)
    #####:    #####: 1287:         combined_type = INTEGER_STRING;
        -:        -: 1288:
    #####:    #####: 1289:      combined = _token_create_str (parser, combined_type, str);
    #####:    #####: 1290:      combined->location = token->location;
    #####:    #####: 1291:      return combined;
        -:        -: 1292:   }
        -:        -: 1293:
        -:        -: 1294:    FAIL:
    #####:    #####: 1295:   glcpp_error (&token->location, parser, "");
    #####:    #####: 1296:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "Pasting \"");
    #####:    #####: 1297:   _token_print (&parser->info_log, &parser->info_log_length, token);
    #####:    #####: 1298:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "\" and \"");
    #####:    #####: 1299:   _token_print (&parser->info_log, &parser->info_log_length, other);
    #####:    #####: 1300:   ralloc_asprintf_rewrite_tail (&parser->info_log, &parser->info_log_length, "\" does not give a valid preprocessing token.\n");
        -:        -: 1301:
    #####:    #####: 1302:   return token;
        -:        -: 1303:}
        -:        -: 1304:
        -:        -: 1305:static void
       49:       51: 1306:_token_list_print(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 1307:{
        -:        -: 1308:   token_node_t *node;
        -:        -: 1309:
       49:       51: 1310:   if (list == NULL)
    #####:    #####: 1311:      return;
        -:        -: 1312:
      460:      480: 1313:   for (node = list->head; node; node = node->next)
      411:      429: 1314:      _token_print (&parser->output, &parser->output_length, node->token);
        -:        -: 1315:}
        -:        -: 1316:
        -:        -: 1317:void
    #####:    #####: 1318:yyerror(YYLTYPE *locp, glcpp_parser_t *parser, const char *error)
        -:        -: 1319:{
    #####:    #####: 1320:   glcpp_error(locp, parser, "%s", error);
    #####:    #####: 1321:}
        -:        -: 1322:
        -:        -: 1323:static void
       68:       68: 1324:add_builtin_define(glcpp_parser_t *parser, const char *name, int value)
        -:        -: 1325:{
        -:        -: 1326:   token_t *tok;
        -:        -: 1327:   token_list_t *list;
        -:        -: 1328:
       68:       68: 1329:   tok = _token_create_ival (parser, INTEGER, value);
        -:        -: 1330:
       68:       68: 1331:   list = _token_list_create(parser);
       68:       68: 1332:   _token_list_append(parser, list, tok);
       68:       68: 1333:   _define_object_macro(parser, NULL, name, list);
       68:       68: 1334:}
        -:        -: 1335:
        -:        -: 1336:glcpp_parser_t *
        2:        2: 1337:glcpp_parser_create(const struct gl_extensions *extension_list,
        -:        -: 1338:                    glcpp_extension_iterator extensions, void *state, gl_api api)
        -:        -: 1339:{
        -:        -: 1340:   glcpp_parser_t *parser;
        -:        -: 1341:
        2:        2: 1342:   parser = ralloc (NULL, glcpp_parser_t);
        -:        -: 1343:
        2:        2: 1344:   glcpp_lex_init_extra (parser, &parser->scanner);
        2:        2: 1345:   parser->defines = _mesa_hash_table_create(NULL, _mesa_key_hash_string,
        -:        -: 1346:                                             _mesa_key_string_equal);
        2:        2: 1347:   parser->linalloc = linear_alloc_parent(parser, 0);
        2:        2: 1348:   parser->active = NULL;
        2:        2: 1349:   parser->lexing_directive = 0;
        2:        2: 1350:   parser->lexing_version_directive = 0;
        2:        2: 1351:   parser->space_tokens = 1;
        2:        2: 1352:   parser->last_token_was_newline = 0;
        2:        2: 1353:   parser->last_token_was_space = 0;
        2:        2: 1354:   parser->first_non_space_token_this_line = 1;
        2:        2: 1355:   parser->newline_as_space = 0;
        2:        2: 1356:   parser->in_control_line = 0;
        2:        2: 1357:   parser->paren_count = 0;
        2:        2: 1358:   parser->commented_newlines = 0;
        -:        -: 1359:
        2:        2: 1360:   parser->skip_stack = NULL;
        2:        2: 1361:   parser->skipping = 0;
        -:        -: 1362:
        2:        2: 1363:   parser->lex_from_list = NULL;
        2:        2: 1364:   parser->lex_from_node = NULL;
        -:        -: 1365:
        2:        2: 1366:   parser->output = ralloc_strdup(parser, "");
        2:        2: 1367:   parser->output_length = 0;
        2:        2: 1368:   parser->info_log = ralloc_strdup(parser, "");
        2:        2: 1369:   parser->info_log_length = 0;
        2:        2: 1370:   parser->error = 0;
        -:        -: 1371:
        2:        2: 1372:   parser->extensions = extensions;
        2:        2: 1373:   parser->extension_list = extension_list;
        2:        2: 1374:   parser->state = state;
        2:        2: 1375:   parser->api = api;
        2:        2: 1376:   parser->version = 0;
        2:        2: 1377:   parser->version_set = false;
        -:        -: 1378:
        2:        2: 1379:   parser->has_new_line_number = 0;
        2:        2: 1380:   parser->new_line_number = 1;
        2:        2: 1381:   parser->has_new_source_number = 0;
        2:        2: 1382:   parser->new_source_number = 0;
        -:        -: 1383:
        2:        2: 1384:   parser->is_gles = false;
        -:        -: 1385:
        2:        2: 1386:   return parser;
        -:        -: 1387:}
        -:        -: 1388:
        -:        -: 1389:void
        2:        2: 1390:glcpp_parser_destroy(glcpp_parser_t *parser)
        -:        -: 1391:{
        2:        2: 1392:   glcpp_lex_destroy (parser->scanner);
        2:        2: 1393:   _mesa_hash_table_destroy(parser->defines, NULL);
        2:        2: 1394:   ralloc_free (parser);
        2:        2: 1395:}
        -:        -: 1396:
        -:        -: 1397:typedef enum function_status
        -:        -: 1398:{
        -:        -: 1399:   FUNCTION_STATUS_SUCCESS,
        -:        -: 1400:   FUNCTION_NOT_A_FUNCTION,
        -:        -: 1401:   FUNCTION_UNBALANCED_PARENTHESES
        -:        -: 1402:} function_status_t;
        -:        -: 1403:
        -:        -: 1404:/* Find a set of function-like macro arguments by looking for a
        -:        -: 1405: * balanced set of parentheses.
        -:        -: 1406: *
        -:        -: 1407: * When called, 'node' should be the opening-parenthesis token, (or
        -:        -: 1408: * perhaps preceeding SPACE tokens). Upon successful return *last will
        -:        -: 1409: * be the last consumed node, (corresponding to the closing right
        -:        -: 1410: * parenthesis).
        -:        -: 1411: *
        -:        -: 1412: * Return values:
        -:        -: 1413: *
        -:        -: 1414: *   FUNCTION_STATUS_SUCCESS:
        -:        -: 1415: *
        -:        -: 1416: *      Successfully parsed a set of function arguments.
        -:        -: 1417: *
        -:        -: 1418: *   FUNCTION_NOT_A_FUNCTION:
        -:        -: 1419: *
        -:        -: 1420: *      Macro name not followed by a '('. This is not an error, but
        -:        -: 1421: *      simply that the macro name should be treated as a non-macro.
        -:        -: 1422: *
        -:        -: 1423: *   FUNCTION_UNBALANCED_PARENTHESES
        -:        -: 1424: *
        -:        -: 1425: *      Macro name is not followed by a balanced set of parentheses.
        -:        -: 1426: */
        -:        -: 1427:static function_status_t
    #####:    #####: 1428:_arguments_parse(glcpp_parser_t *parser,
        -:        -: 1429:                 argument_list_t *arguments, token_node_t *node,
        -:        -: 1430:                 token_node_t **last)
        -:        -: 1431:{
        -:        -: 1432:   token_list_t *argument;
        -:        -: 1433:   int paren_count;
        -:        -: 1434:
    #####:    #####: 1435:   node = node->next;
        -:        -: 1436:
        -:        -: 1437:   /* Ignore whitespace before first parenthesis. */
    #####:    #####: 1438:   while (node && node->token->type == SPACE)
    #####:    #####: 1439:      node = node->next;
        -:        -: 1440:
    #####:    #####: 1441:   if (node == NULL || node->token->type != '(')
    #####:    #####: 1442:      return FUNCTION_NOT_A_FUNCTION;
        -:        -: 1443:
    #####:    #####: 1444:   node = node->next;
        -:        -: 1445:
    #####:    #####: 1446:   argument = _token_list_create (parser);
    #####:    #####: 1447:   _argument_list_append (parser, arguments, argument);
        -:        -: 1448:
    #####:    #####: 1449:   for (paren_count = 1; node; node = node->next) {
    #####:    #####: 1450:      if (node->token->type == '(') {
    #####:    #####: 1451:         paren_count++;
    #####:    #####: 1452:      } else if (node->token->type == ')') {
    #####:    #####: 1453:         paren_count--;
    #####:    #####: 1454:         if (paren_count == 0)
    #####:    #####: 1455:            break;
        -:        -: 1456:      }
        -:        -: 1457:
    #####:    #####: 1458:      if (node->token->type == ',' && paren_count == 1) {
    #####:    #####: 1459:         _token_list_trim_trailing_space (argument);
    #####:    #####: 1460:         argument = _token_list_create (parser);
    #####:    #####: 1461:         _argument_list_append (parser, arguments, argument);
        -:        -: 1462:      } else {
    #####:    #####: 1463:         if (argument->head == NULL) {
        -:        -: 1464:            /* Don't treat initial whitespace as part of the argument. */
    #####:    #####: 1465:            if (node->token->type == SPACE)
    #####:    #####: 1466:               continue;
        -:        -: 1467:         }
    #####:    #####: 1468:         _token_list_append(parser, argument, node->token);
        -:        -: 1469:      }
        -:        -: 1470:   }
        -:        -: 1471:
    #####:    #####: 1472:   if (paren_count)
    #####:    #####: 1473:      return FUNCTION_UNBALANCED_PARENTHESES;
        -:        -: 1474:
    #####:    #####: 1475:   *last = node;
        -:        -: 1476:
    #####:    #####: 1477:   return FUNCTION_STATUS_SUCCESS;
        -:        -: 1478:}
        -:        -: 1479:
        -:        -: 1480:static token_list_t *
    #####:    #####: 1481:_token_list_create_with_one_ival(glcpp_parser_t *parser, int type, int ival)
        -:        -: 1482:{
        -:        -: 1483:   token_list_t *list;
        -:        -: 1484:   token_t *node;
        -:        -: 1485:
    #####:    #####: 1486:   list = _token_list_create(parser);
    #####:    #####: 1487:   node = _token_create_ival(parser, type, ival);
    #####:    #####: 1488:   _token_list_append(parser, list, node);
        -:        -: 1489:
    #####:    #####: 1490:   return list;
        -:        -: 1491:}
        -:        -: 1492:
        -:        -: 1493:static token_list_t *
    #####:    #####: 1494:_token_list_create_with_one_space(glcpp_parser_t *parser)
        -:        -: 1495:{
    #####:    #####: 1496:   return _token_list_create_with_one_ival(parser, SPACE, SPACE);
        -:        -: 1497:}
        -:        -: 1498:
        -:        -: 1499:static token_list_t *
    #####:    #####: 1500:_token_list_create_with_one_integer(glcpp_parser_t *parser, int ival)
        -:        -: 1501:{
    #####:    #####: 1502:   return _token_list_create_with_one_ival(parser, INTEGER, ival);
        -:        -: 1503:}
        -:        -: 1504:
        -:        -: 1505:/* Evaluate a DEFINED token node (based on subsequent tokens in the list).
        -:        -: 1506: *
        -:        -: 1507: * Note: This function must only be called when "node" is a DEFINED token,
        -:        -: 1508: * (and will abort with an assertion failure otherwise).
        -:        -: 1509: *
        -:        -: 1510: * If "node" is followed, (ignoring any SPACE tokens), by an IDENTIFIER token
        -:        -: 1511: * (optionally preceded and followed by '(' and ')' tokens) then the following
        -:        -: 1512: * occurs:
        -:        -: 1513: *
        -:        -: 1514: *   If the identifier is a defined macro, this function returns 1.
        -:        -: 1515: *
        -:        -: 1516: *   If the identifier is not a defined macro, this function returns 0.
        -:        -: 1517: *
        -:        -: 1518: *   In either case, *last will be updated to the last node in the list
        -:        -: 1519: *   consumed by the evaluation, (either the token of the identifier or the
        -:        -: 1520: *   token of the closing parenthesis).
        -:        -: 1521: *
        -:        -: 1522: * In all other cases, (such as "node is the final node of the list", or
        -:        -: 1523: * "missing closing parenthesis", etc.), this function generates a
        -:        -: 1524: * preprocessor error, returns -1 and *last will not be set.
        -:        -: 1525: */
        -:        -: 1526:static int
    #####:    #####: 1527:_glcpp_parser_evaluate_defined(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 1528:                               token_node_t **last)
        -:        -: 1529:{
    #####:    #####: 1530:   token_node_t *argument, *defined = node;
        -:        -: 1531:
    #####:    #####: 1532:   assert(node->token->type == DEFINED);
        -:        -: 1533:
    #####:    #####: 1534:   node = node->next;
        -:        -: 1535:
        -:        -: 1536:   /* Ignore whitespace after DEFINED token. */
    #####:    #####: 1537:   while (node && node->token->type == SPACE)
    #####:    #####: 1538:      node = node->next;
        -:        -: 1539:
    #####:    #####: 1540:   if (node == NULL)
    #####:    #####: 1541:      goto FAIL;
        -:        -: 1542:
    #####:    #####: 1543:   if (node->token->type == IDENTIFIER || node->token->type == OTHER) {
    #####:    #####: 1544:      argument = node;
    #####:    #####: 1545:   } else if (node->token->type == '(') {
    #####:    #####: 1546:      node = node->next;
        -:        -: 1547:
        -:        -: 1548:      /* Ignore whitespace after '(' token. */
    #####:    #####: 1549:      while (node && node->token->type == SPACE)
    #####:    #####: 1550:         node = node->next;
        -:        -: 1551:
    #####:    #####: 1552:      if (node == NULL || (node->token->type != IDENTIFIER &&
    #####:    #####: 1553:                           node->token->type != OTHER)) {
        -:        -: 1554:         goto FAIL;
        -:        -: 1555:      }
        -:        -: 1556:
    #####:    #####: 1557:      argument = node;
        -:        -: 1558:
    #####:    #####: 1559:      node = node->next;
        -:        -: 1560:
        -:        -: 1561:      /* Ignore whitespace after identifier, before ')' token. */
    #####:    #####: 1562:      while (node && node->token->type == SPACE)
    #####:    #####: 1563:         node = node->next;
        -:        -: 1564:
    #####:    #####: 1565:      if (node == NULL || node->token->type != ')')
        -:        -: 1566:         goto FAIL;
        -:        -: 1567:   } else {
    #####:    #####: 1568:      goto FAIL;
        -:        -: 1569:   }
        -:        -: 1570:
    #####:    #####: 1571:   *last = node;
        -:        -: 1572:
    #####:    #####: 1573:   return _mesa_hash_table_search(parser->defines,
    #####:    #####: 1574:                                  argument->token->value.str) ? 1 : 0;
        -:        -: 1575:
        -:        -: 1576:FAIL:
    #####:    #####: 1577:   glcpp_error (&defined->token->location, parser,
        -:        -: 1578:                "\"defined\" not followed by an identifier");
    #####:    #####: 1579:   return -1;
        -:        -: 1580:}
        -:        -: 1581:
        -:        -: 1582:/* Evaluate all DEFINED nodes in a given list, modifying the list in place.
        -:        -: 1583: */
        -:        -: 1584:static void
    #####:    #####: 1585:_glcpp_parser_evaluate_defined_in_list(glcpp_parser_t *parser,
        -:        -: 1586:                                       token_list_t *list)
        -:        -: 1587:{
    #####:    #####: 1588:   token_node_t *node, *node_prev, *replacement, *last = NULL;
        -:        -: 1589:   int value;
        -:        -: 1590:
    #####:    #####: 1591:   if (list == NULL)
    #####:    #####: 1592:      return;
        -:        -: 1593:
    #####:    #####: 1594:   node_prev = NULL;
    #####:    #####: 1595:   node = list->head;
        -:        -: 1596:
    #####:    #####: 1597:   while (node) {
        -:        -: 1598:
    #####:    #####: 1599:      if (node->token->type != DEFINED)
    #####:    #####: 1600:         goto NEXT;
        -:        -: 1601:
    #####:    #####: 1602:      value = _glcpp_parser_evaluate_defined (parser, node, &last);
    #####:    #####: 1603:      if (value == -1)
    #####:    #####: 1604:         goto NEXT;
        -:        -: 1605:
    #####:    #####: 1606:      replacement = linear_alloc_child(parser->linalloc, sizeof(token_node_t));
    #####:    #####: 1607:      replacement->token = _token_create_ival (parser, INTEGER, value);
        -:        -: 1608:
        -:        -: 1609:      /* Splice replacement node into list, replacing from "node"
        -:        -: 1610:       * through "last". */
    #####:    #####: 1611:      if (node_prev)
    #####:    #####: 1612:         node_prev->next = replacement;
        -:        -: 1613:      else
    #####:    #####: 1614:         list->head = replacement;
    #####:    #####: 1615:      replacement->next = last->next;
    #####:    #####: 1616:      if (last == list->tail)
    #####:    #####: 1617:         list->tail = replacement;
        -:        -: 1618:
    #####:    #####: 1619:      node = replacement;
        -:        -: 1620:
        -:        -: 1621:   NEXT:
    #####:    #####: 1622:      node_prev = node;
    #####:    #####: 1623:      node = node->next;
        -:        -: 1624:   }
        -:        -: 1625:}
        -:        -: 1626:
        -:        -: 1627:/* Perform macro expansion on 'list', placing the resulting tokens
        -:        -: 1628: * into a new list which is initialized with a first token of type
        -:        -: 1629: * 'head_token_type'. Then begin lexing from the resulting list,
        -:        -: 1630: * (return to the current lexing source when this list is exhausted).
        -:        -: 1631: *
        -:        -: 1632: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 1633: * of the "mode" parameter.
        -:        -: 1634: */
        -:        -: 1635:static void
    #####:    #####: 1636:_glcpp_parser_expand_and_lex_from(glcpp_parser_t *parser, int head_token_type,
        -:        -: 1637:                                  token_list_t *list, expansion_mode_t mode)
        -:        -: 1638:{
        -:        -: 1639:   token_list_t *expanded;
        -:        -: 1640:   token_t *token;
        -:        -: 1641:
    #####:    #####: 1642:   expanded = _token_list_create (parser);
    #####:    #####: 1643:   token = _token_create_ival (parser, head_token_type, head_token_type);
    #####:    #####: 1644:   _token_list_append (parser, expanded, token);
    #####:    #####: 1645:   _glcpp_parser_expand_token_list (parser, list, mode);
    #####:    #####: 1646:   _token_list_append_list (expanded, list);
    #####:    #####: 1647:   glcpp_parser_lex_from (parser, expanded);
    #####:    #####: 1648:}
        -:        -: 1649:
        -:        -: 1650:static void
    #####:    #####: 1651:_glcpp_parser_apply_pastes(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 1652:{
        -:        -: 1653:   token_node_t *node;
        -:        -: 1654:
    #####:    #####: 1655:   node = list->head;
    #####:    #####: 1656:   while (node) {
        -:        -: 1657:      token_node_t *next_non_space;
        -:        -: 1658:
        -:        -: 1659:      /* Look ahead for a PASTE token, skipping space. */
    #####:    #####: 1660:      next_non_space = node->next;
    #####:    #####: 1661:      while (next_non_space && next_non_space->token->type == SPACE)
    #####:    #####: 1662:         next_non_space = next_non_space->next;
        -:        -: 1663:
    #####:    #####: 1664:      if (next_non_space == NULL)
    #####:    #####: 1665:         break;
        -:        -: 1666:
    #####:    #####: 1667:      if (next_non_space->token->type != PASTE) {
    #####:    #####: 1668:         node = next_non_space;
    #####:    #####: 1669:         continue;
        -:        -: 1670:      }
        -:        -: 1671:
        -:        -: 1672:      /* Now find the next non-space token after the PASTE. */
    #####:    #####: 1673:      next_non_space = next_non_space->next;
    #####:    #####: 1674:      while (next_non_space && next_non_space->token->type == SPACE)
    #####:    #####: 1675:         next_non_space = next_non_space->next;
        -:        -: 1676:
    #####:    #####: 1677:      if (next_non_space == NULL) {
    #####:    #####: 1678:         yyerror(&node->token->location, parser, "'##' cannot appear at either end of a macro expansion\n");
    #####:    #####: 1679:         return;
        -:        -: 1680:      }
        -:        -: 1681:
    #####:    #####: 1682:      node->token = _token_paste(parser, node->token, next_non_space->token);
    #####:    #####: 1683:      node->next = next_non_space->next;
    #####:    #####: 1684:      if (next_non_space == list->tail)
    #####:    #####: 1685:         list->tail = node;
        -:        -: 1686:   }
        -:        -: 1687:
    #####:    #####: 1688:   list->non_space_tail = list->tail;
        -:        -: 1689:}
        -:        -: 1690:
        -:        -: 1691:/* This is a helper function that's essentially part of the
        -:        -: 1692: * implementation of _glcpp_parser_expand_node. It shouldn't be called
        -:        -: 1693: * except for by that function.
        -:        -: 1694: *
        -:        -: 1695: * Returns NULL if node is a simple token with no expansion, (that is,
        -:        -: 1696: * although 'node' corresponds to an identifier defined as a
        -:        -: 1697: * function-like macro, it is not followed with a parenthesized
        -:        -: 1698: * argument list).
        -:        -: 1699: *
        -:        -: 1700: * Compute the complete expansion of node (which is a function-like
        -:        -: 1701: * macro) and subsequent nodes which are arguments.
        -:        -: 1702: *
        -:        -: 1703: * Returns the token list that results from the expansion and sets
        -:        -: 1704: * *last to the last node in the list that was consumed by the
        -:        -: 1705: * expansion. Specifically, *last will be set as follows: as the
        -:        -: 1706: * token of the closing right parenthesis.
        -:        -: 1707: *
        -:        -: 1708: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 1709: * of the "mode" parameter.
        -:        -: 1710: */
        -:        -: 1711:static token_list_t *
    #####:    #####: 1712:_glcpp_parser_expand_function(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 1713:                              token_node_t **last, expansion_mode_t mode)
        -:        -: 1714:{
        -:        -: 1715:   struct hash_entry *entry;
        -:        -: 1716:   macro_t *macro;
        -:        -: 1717:   const char *identifier;
        -:        -: 1718:   argument_list_t *arguments;
        -:        -: 1719:   function_status_t status;
        -:        -: 1720:   token_list_t *substituted;
        -:        -: 1721:   int parameter_index;
        -:        -: 1722:
    #####:    #####: 1723:   identifier = node->token->value.str;
        -:        -: 1724:
    #####:    #####: 1725:   entry = _mesa_hash_table_search(parser->defines, identifier);
    #####:    #####: 1726:   macro = entry ? entry->data : NULL;
        -:        -: 1727:
    #####:    #####: 1728:   assert(macro->is_function);
        -:        -: 1729:
    #####:    #####: 1730:   arguments = _argument_list_create(parser);
    #####:    #####: 1731:   status = _arguments_parse(parser, arguments, node, last);
        -:        -: 1732:
    #####:    #####: 1733:   switch (status) {
        -:        -: 1734:   case FUNCTION_STATUS_SUCCESS:
    #####:    #####: 1735:      break;
        -:        -: 1736:   case FUNCTION_NOT_A_FUNCTION:
    #####:    #####: 1737:      return NULL;
        -:        -: 1738:   case FUNCTION_UNBALANCED_PARENTHESES:
    #####:    #####: 1739:      glcpp_error(&node->token->location, parser, "Macro %s call has unbalanced parentheses\n", identifier);
    #####:    #####: 1740:      return NULL;
        -:        -: 1741:   }
        -:        -: 1742:
        -:        -: 1743:   /* Replace a macro defined as empty with a SPACE token. */
    #####:    #####: 1744:   if (macro->replacements == NULL) {
    #####:    #####: 1745:      return _token_list_create_with_one_space(parser);
        -:        -: 1746:   }
        -:        -: 1747:
    #####:    #####: 1748:   if (!((_argument_list_length (arguments) ==
    #####:    #####: 1749:          _string_list_length (macro->parameters)) ||
    #####:    #####: 1750:         (_string_list_length (macro->parameters) == 0 &&
    #####:    #####: 1751:          _argument_list_length (arguments) == 1 &&
    #####:    #####: 1752:          arguments->head->argument->head == NULL))) {
    #####:    #####: 1753:      glcpp_error(&node->token->location, parser,
        -:        -: 1754:                  "Error: macro %s invoked with %d arguments (expected %d)\n",
        -:        -: 1755:                  identifier, _argument_list_length (arguments),
        -:        -: 1756:                  _string_list_length(macro->parameters));
    #####:    #####: 1757:      return NULL;
        -:        -: 1758:   }
        -:        -: 1759:
        -:        -: 1760:   /* Perform argument substitution on the replacement list. */
    #####:    #####: 1761:   substituted = _token_list_create(parser);
        -:        -: 1762:
    #####:    #####: 1763:   for (node = macro->replacements->head; node; node = node->next) {
    #####:    #####: 1764:      if (node->token->type == IDENTIFIER &&
    #####:    #####: 1765:          _string_list_contains(macro->parameters, node->token->value.str,
    #####:    #####: 1766:                                ¶meter_index)) {
        -:        -: 1767:         token_list_t *argument;
    #####:    #####: 1768:         argument = _argument_list_member_at(arguments, parameter_index);
        -:        -: 1769:         /* Before substituting, we expand the argument tokens, or append a
        -:        -: 1770:          * placeholder token for an empty argument. */
    #####:    #####: 1771:         if (argument->head) {
        -:        -: 1772:            token_list_t *expanded_argument;
    #####:    #####: 1773:            expanded_argument = _token_list_copy(parser, argument);
    #####:    #####: 1774:            _glcpp_parser_expand_token_list(parser, expanded_argument, mode);
    #####:    #####: 1775:            _token_list_append_list(substituted, expanded_argument);
        -:        -: 1776:         } else {
        -:        -: 1777:            token_t *new_token;
        -:        -: 1778:
    #####:    #####: 1779:            new_token = _token_create_ival(parser, PLACEHOLDER,
        -:        -: 1780:                                           PLACEHOLDER);
    #####:    #####: 1781:            _token_list_append(parser, substituted, new_token);
        -:        -: 1782:         }
        -:        -: 1783:      } else {
    #####:    #####: 1784:         _token_list_append(parser, substituted, node->token);
        -:        -: 1785:      }
        -:        -: 1786:   }
        -:        -: 1787:
        -:        -: 1788:   /* After argument substitution, and before further expansion
        -:        -: 1789:    * below, implement token pasting. */
        -:        -: 1790:
    #####:    #####: 1791:   _token_list_trim_trailing_space(substituted);
        -:        -: 1792:
    #####:    #####: 1793:   _glcpp_parser_apply_pastes(parser, substituted);
        -:        -: 1794:
    #####:    #####: 1795:   return substituted;
        -:        -: 1796:}
        -:        -: 1797:
        -:        -: 1798:/* Compute the complete expansion of node, (and subsequent nodes after
        -:        -: 1799: * 'node' in the case that 'node' is a function-like macro and
        -:        -: 1800: * subsequent nodes are arguments).
        -:        -: 1801: *
        -:        -: 1802: * Returns NULL if node is a simple token with no expansion.
        -:        -: 1803: *
        -:        -: 1804: * Otherwise, returns the token list that results from the expansion
        -:        -: 1805: * and sets *last to the last node in the list that was consumed by
        -:        -: 1806: * the expansion. Specifically, *last will be set as follows:
        -:        -: 1807: *
        -:        -: 1808: *   As 'node' in the case of object-like macro expansion.
        -:        -: 1809: *
        -:        -: 1810: *   As the token of the closing right parenthesis in the case of
        -:        -: 1811: *   function-like macro expansion.
        -:        -: 1812: *
        -:        -: 1813: * See the documentation of _glcpp_parser_expand_token_list for a description
        -:        -: 1814: * of the "mode" parameter.
        -:        -: 1815: */
        -:        -: 1816:static token_list_t *
      411:      429: 1817:_glcpp_parser_expand_node(glcpp_parser_t *parser, token_node_t *node,
        -:        -: 1818:                          token_node_t **last, expansion_mode_t mode)
        -:        -: 1819:{
      411:      429: 1820:   token_t *token = node->token;
        -:        -: 1821:   const char *identifier;
        -:        -: 1822:   struct hash_entry *entry;
        -:        -: 1823:   macro_t *macro;
        -:        -: 1824:
        -:        -: 1825:   /* We only expand identifiers */
      411:      429: 1826:   if (token->type != IDENTIFIER) {
      298:      312: 1827:      return NULL;
        -:        -: 1828:   }
        -:        -: 1829:
      113:      117: 1830:   *last = node;
      113:      117: 1831:   identifier = token->value.str;
        -:        -: 1832:
        -:        -: 1833:   /* Special handling for __LINE__ and __FILE__, (not through
        -:        -: 1834:    * the hash table). */
      113:      117: 1835:   if (strcmp(identifier, "__LINE__") == 0)
    #####:    #####: 1836:      return _token_list_create_with_one_integer(parser, node->token->location.first_line);
        -:        -: 1837:
      113:      117: 1838:   if (strcmp(identifier, "__FILE__") == 0)
    #####:    #####: 1839:      return _token_list_create_with_one_integer(parser, node->token->location.source);
        -:        -: 1840:
        -:        -: 1841:   /* Look up this identifier in the hash table. */
      113:      117: 1842:   entry = _mesa_hash_table_search(parser->defines, identifier);
      113:      117: 1843:   macro = entry ? entry->data : NULL;
        -:        -: 1844:
        -:        -: 1845:   /* Not a macro, so no expansion needed. */
      113:      117: 1846:   if (macro == NULL)
      113:      117: 1847:      return NULL;
        -:        -: 1848:
        -:        -: 1849:   /* Finally, don't expand this macro if we're already actively
        -:        -: 1850:    * expanding it, (to avoid infinite recursion). */
    #####:    #####: 1851:   if (_parser_active_list_contains (parser, identifier)) {
        -:        -: 1852:      /* We change the token type here from IDENTIFIER to OTHER to prevent any
        -:        -: 1853:       * future expansion of this unexpanded token. */
        -:        -: 1854:      char *str;
        -:        -: 1855:      token_list_t *expansion;
        -:        -: 1856:      token_t *final;
        -:        -: 1857:
    #####:    #####: 1858:      str = linear_strdup(parser->linalloc, token->value.str);
    #####:    #####: 1859:      final = _token_create_str(parser, OTHER, str);
    #####:    #####: 1860:      expansion = _token_list_create(parser);
    #####:    #####: 1861:      _token_list_append(parser, expansion, final);
    #####:    #####: 1862:      return expansion;
        -:        -: 1863:   }
        -:        -: 1864:
    #####:    #####: 1865:   if (! macro->is_function) {
        -:        -: 1866:      token_list_t *replacement;
        -:        -: 1867:
        -:        -: 1868:      /* Replace a macro defined as empty with a SPACE token. */
    #####:    #####: 1869:      if (macro->replacements == NULL)
    #####:    #####: 1870:         return _token_list_create_with_one_space(parser);
        -:        -: 1871:
    #####:    #####: 1872:      replacement = _token_list_copy(parser, macro->replacements);
    #####:    #####: 1873:      _glcpp_parser_apply_pastes(parser, replacement);
    #####:    #####: 1874:      return replacement;
        -:        -: 1875:   }
        -:        -: 1876:
    #####:    #####: 1877:   return _glcpp_parser_expand_function(parser, node, last, mode);
        -:        -: 1878:}
        -:        -: 1879:
        -:        -: 1880:/* Push a new identifier onto the parser's active list.
        -:        -: 1881: *
        -:        -: 1882: * Here, 'marker' is the token node that appears in the list after the
        -:        -: 1883: * expansion of 'identifier'. That is, when the list iterator begins
        -:        -: 1884: * examining 'marker', then it is time to pop this node from the
        -:        -: 1885: * active stack.
        -:        -: 1886: */
        -:        -: 1887:static void
    #####:    #####: 1888:_parser_active_list_push(glcpp_parser_t *parser, const char *identifier,
        -:        -: 1889:                         token_node_t *marker)
        -:        -: 1890:{
        -:        -: 1891:   active_list_t *node;
        -:        -: 1892:
    #####:    #####: 1893:   node = linear_alloc_child(parser->linalloc, sizeof(active_list_t));
    #####:    #####: 1894:   node->identifier = linear_strdup(parser->linalloc, identifier);
    #####:    #####: 1895:   node->marker = marker;
    #####:    #####: 1896:   node->next = parser->active;
        -:        -: 1897:
    #####:    #####: 1898:   parser->active = node;
    #####:    #####: 1899:}
        -:        -: 1900:
        -:        -: 1901:static void
    #####:    #####: 1902:_parser_active_list_pop(glcpp_parser_t *parser)
        -:        -: 1903:{
    #####:    #####: 1904:   active_list_t *node = parser->active;
        -:        -: 1905:
    #####:    #####: 1906:   if (node == NULL) {
    #####:    #####: 1907:      parser->active = NULL;
    #####:    #####: 1908:      return;
        -:        -: 1909:   }
        -:        -: 1910:
    #####:    #####: 1911:   node = parser->active->next;
    #####:    #####: 1912:   parser->active = node;
        -:        -: 1913:}
        -:        -: 1914:
        -:        -: 1915:static int
    #####:    #####: 1916:_parser_active_list_contains(glcpp_parser_t *parser, const char *identifier)
        -:        -: 1917:{
        -:        -: 1918:   active_list_t *node;
        -:        -: 1919:
    #####:    #####: 1920:   if (parser->active == NULL)
    #####:    #####: 1921:      return 0;
        -:        -: 1922:
    #####:    #####: 1923:   for (node = parser->active; node; node = node->next)
    #####:    #####: 1924:      if (strcmp(node->identifier, identifier) == 0)
    #####:    #####: 1925:         return 1;
        -:        -: 1926:
    #####:    #####: 1927:   return 0;
        -:        -: 1928:}
        -:        -: 1929:
        -:        -: 1930:/* Walk over the token list replacing nodes with their expansion.
        -:        -: 1931: * Whenever nodes are expanded the walking will walk over the new
        -:        -: 1932: * nodes, continuing to expand as necessary. The results are placed in
        -:        -: 1933: * 'list' itself.
        -:        -: 1934: *
        -:        -: 1935: * The "mode" argument controls the handling of any DEFINED tokens that
        -:        -: 1936: * result from expansion as follows:
        -:        -: 1937: *
        -:        -: 1938: *   EXPANSION_MODE_IGNORE_DEFINED: Any resulting DEFINED tokens will be
        -:        -: 1939: *      left in the final list, unevaluated. This is the correct mode
        -:        -: 1940: *      for expanding any list in any context other than a
        -:        -: 1941: *      preprocessor conditional, (#if or #elif).
        -:        -: 1942: *
        -:        -: 1943: *   EXPANSION_MODE_EVALUATE_DEFINED: Any resulting DEFINED tokens will be
        -:        -: 1944: *      evaluated to 0 or 1 tokens depending on whether the following
        -:        -: 1945: *      token is the name of a defined macro. If the DEFINED token is
        -:        -: 1946: *      not followed by an (optionally parenthesized) identifier, then
        -:        -: 1947: *      an error will be generated. This the correct mode for
        -:        -: 1948: *      expanding any list in the context of a preprocessor
        -:        -: 1949: *      conditional, (#if or #elif).
        -:        -: 1950: */
        -:        -: 1951:static void
       49:       51: 1952:_glcpp_parser_expand_token_list(glcpp_parser_t *parser, token_list_t *list,
        -:        -: 1953:                                expansion_mode_t mode)
        -:        -: 1954:{
        -:        -: 1955:   token_node_t *node_prev;
       49:       51: 1956:   token_node_t *node, *last = NULL;
        -:        -: 1957:   token_list_t *expansion;
       49:       51: 1958:   active_list_t *active_initial = parser->active;
        -:        -: 1959:
       49:       51: 1960:   if (list == NULL)
    #####:    #####: 1961:      return;
        -:        -: 1962:
       49:       51: 1963:   _token_list_trim_trailing_space (list);
        -:        -: 1964:
       49:       51: 1965:   node_prev = NULL;
       49:       51: 1966:   node = list->head;
        -:        -: 1967:
       49:       51: 1968:   if (mode == EXPANSION_MODE_EVALUATE_DEFINED)
    #####:    #####: 1969:      _glcpp_parser_evaluate_defined_in_list (parser, list);
        -:        -: 1970:
      509:      531: 1971:   while (node) {
        -:        -: 1972:
      822:      858: 1973:      while (parser->active && parser->active->marker == node)
    #####:    #####: 1974:         _parser_active_list_pop (parser);
        -:        -: 1975:
      411:      429: 1976:      expansion = _glcpp_parser_expand_node (parser, node, &last, mode);
      411:      429: 1977:      if (expansion) {
        -:        -: 1978:         token_node_t *n;
        -:        -: 1979:
    #####:    #####: 1980:         if (mode == EXPANSION_MODE_EVALUATE_DEFINED) {
    #####:    #####: 1981:            _glcpp_parser_evaluate_defined_in_list (parser, expansion);
        -:        -: 1982:         }
        -:        -: 1983:
    #####:    #####: 1984:         for (n = node; n != last->next; n = n->next)
    #####:    #####: 1985:            while (parser->active && parser->active->marker == n) {
    #####:    #####: 1986:               _parser_active_list_pop (parser);
        -:        -: 1987:            }
        -:        -: 1988:
    #####:    #####: 1989:         _parser_active_list_push(parser, node->token->value.str, last->next);
        -:        -: 1990:
        -:        -: 1991:         /* Splice expansion into list, supporting a simple deletion if the
        -:        -: 1992:          * expansion is empty.
        -:        -: 1993:          */
    #####:    #####: 1994:         if (expansion->head) {
    #####:    #####: 1995:            if (node_prev)
    #####:    #####: 1996:               node_prev->next = expansion->head;
        -:        -: 1997:            else
    #####:    #####: 1998:               list->head = expansion->head;
    #####:    #####: 1999:            expansion->tail->next = last->next;
    #####:    #####: 2000:            if (last == list->tail)
    #####:    #####: 2001:               list->tail = expansion->tail;
        -:        -: 2002:         } else {
    #####:    #####: 2003:            if (node_prev)
    #####:    #####: 2004:               node_prev->next = last->next;
        -:        -: 2005:            else
    #####:    #####: 2006:               list->head = last->next;
    #####:    #####: 2007:            if (last == list->tail)
    #####:    #####: 2008:               list->tail = NULL;
        -:        -: 2009:         }
        -:        -: 2010:      } else {
      411:      429: 2011:         node_prev = node;
        -:        -: 2012:      }
      411:      429: 2013:      node = node_prev ? node_prev->next : list->head;
        -:        -: 2014:   }
        -:        -: 2015:
        -:        -: 2016:   /* Remove any lingering effects of this invocation on the
        -:        -: 2017:    * active list. That is, pop until the list looks like it did
        -:        -: 2018:    * at the beginning of this function. */
       98:      102: 2019:   while (parser->active && parser->active != active_initial)
    #####:    #####: 2020:      _parser_active_list_pop (parser);
        -:        -: 2021:
       49:       51: 2022:   list->non_space_tail = list->tail;
        -:        -: 2023:}
        -:        -: 2024:
        -:        -: 2025:void
       60:       62: 2026:_glcpp_parser_print_expanded_token_list(glcpp_parser_t *parser,
        -:        -: 2027:                                        token_list_t *list)
        -:        -: 2028:{
       60:       62: 2029:   if (list == NULL)
       11:       11: 2030:      return;
        -:        -: 2031:
       49:       51: 2032:   _glcpp_parser_expand_token_list (parser, list, EXPANSION_MODE_IGNORE_DEFINED);
        -:        -: 2033:
       49:       51: 2034:   _token_list_trim_trailing_space (list);
        -:        -: 2035:
       49:       51: 2036:   _token_list_print (parser, list);
        -:        -: 2037:}
        -:        -: 2038:
        -:        -: 2039:static void
       10:       10: 2040:_check_for_reserved_macro_name(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 2041:                               const char *identifier)
        -:        -: 2042:{
        -:        -: 2043:   /* Section 3.3 (Preprocessor) of the GLSL 1.30 spec (and later) and
        -:        -: 2044:    * the GLSL ES spec (all versions) say:
        -:        -: 2045:    *
        -:        -: 2046:    *     "All macro names containing two consecutive underscores ( __ )
        -:        -: 2047:    *     are reserved for future use as predefined macro names. All
        -:        -: 2048:    *     macro names prefixed with "GL_" ("GL" followed by a single
        -:        -: 2049:    *     underscore) are also reserved."
        -:        -: 2050:    *
        -:        -: 2051:    * The intention is that names containing __ are reserved for internal
        -:        -: 2052:    * use by the implementation, and names prefixed with GL_ are reserved
        -:        -: 2053:    * for use by Khronos.  Since every extension adds a name prefixed
        -:        -: 2054:    * with GL_ (i.e., the name of the extension), that should be an
        -:        -: 2055:    * error.  Names simply containing __ are dangerous to use, but should
        -:        -: 2056:    * be allowed.
        -:        -: 2057:    *
        -:        -: 2058:    * A future version of the GLSL specification will clarify this.
        -:        -: 2059:    */
       10:       10: 2060:   if (strstr(identifier, "__")) {
    #####:    #####: 2061:      glcpp_warning(loc, parser, "Macro names containing \"__\" are reserved "
        -:        -: 2062:                    "for use by the implementation.\n");
        -:        -: 2063:   }
       10:       10: 2064:   if (strncmp(identifier, "GL_", 3) == 0) {
    #####:    #####: 2065:      glcpp_error (loc, parser, "Macro names starting with \"GL_\" are reserved.\n");
        -:        -: 2066:   }
       10:       10: 2067:   if (strcmp(identifier, "defined") == 0) {
    #####:    #####: 2068:      glcpp_error (loc, parser, "\"defined\" cannot be used as a macro name");
        -:        -: 2069:   }
       10:       10: 2070:}
        -:        -: 2071:
        -:        -: 2072:static int
    #####:    #####: 2073:_macro_equal(macro_t *a, macro_t *b)
        -:        -: 2074:{
    #####:    #####: 2075:   if (a->is_function != b->is_function)
    #####:    #####: 2076:      return 0;
        -:        -: 2077:
    #####:    #####: 2078:   if (a->is_function) {
    #####:    #####: 2079:      if (! _string_list_equal (a->parameters, b->parameters))
    #####:    #####: 2080:         return 0;
        -:        -: 2081:   }
        -:        -: 2082:
    #####:    #####: 2083:   return _token_list_equal_ignoring_space(a->replacements, b->replacements);
        -:        -: 2084:}
        -:        -: 2085:
        -:        -: 2086:void
       68:       68: 2087:_define_object_macro(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 2088:                     const char *identifier, token_list_t *replacements)
        -:        -: 2089:{
        -:        -: 2090:   macro_t *macro, *previous;
        -:        -: 2091:   struct hash_entry *entry;
        -:        -: 2092:
        -:        -: 2093:   /* We define pre-defined macros before we've started parsing the actual
        -:        -: 2094:    * file. So if there's no location defined yet, that's what were doing and
        -:        -: 2095:    * we don't want to generate an error for using the reserved names. */
       68:       68: 2096:   if (loc != NULL)
    #####:    #####: 2097:      _check_for_reserved_macro_name(parser, loc, identifier);
        -:        -: 2098:
       68:       68: 2099:   macro = linear_alloc_child(parser->linalloc, sizeof(macro_t));
        -:        -: 2100:
       68:       68: 2101:   macro->is_function = 0;
       68:       68: 2102:   macro->parameters = NULL;
       68:       68: 2103:   macro->identifier = linear_strdup(parser->linalloc, identifier);
       68:       68: 2104:   macro->replacements = replacements;
        -:        -: 2105:
       68:       68: 2106:   entry = _mesa_hash_table_search(parser->defines, identifier);
       68:       68: 2107:   previous = entry ? entry->data : NULL;
       68:       68: 2108:   if (previous) {
    #####:    #####: 2109:      if (_macro_equal (macro, previous)) {
    #####:    #####: 2110:         return;
        -:        -: 2111:      }
    #####:    #####: 2112:      glcpp_error (loc, parser, "Redefinition of macro %s\n",  identifier);
        -:        -: 2113:   }
        -:        -: 2114:
       68:       68: 2115:   _mesa_hash_table_insert (parser->defines, identifier, macro);
        -:        -: 2116:}
        -:        -: 2117:
        -:        -: 2118:void
       10:       10: 2119:_define_function_macro(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 2120:                       const char *identifier, string_list_t *parameters,
        -:        -: 2121:                       token_list_t *replacements)
        -:        -: 2122:{
        -:        -: 2123:   macro_t *macro, *previous;
        -:        -: 2124:   struct hash_entry *entry;
        -:        -: 2125:   const char *dup;
        -:        -: 2126:
       10:       10: 2127:   _check_for_reserved_macro_name(parser, loc, identifier);
        -:        -: 2128:
        -:        -: 2129:        /* Check for any duplicate parameter names. */
       10:       10: 2130:   if ((dup = _string_list_has_duplicate (parameters)) != NULL) {
    #####:    #####: 2131:      glcpp_error (loc, parser, "Duplicate macro parameter \"%s\"", dup);
        -:        -: 2132:   }
        -:        -: 2133:
       10:       10: 2134:   macro = linear_alloc_child(parser->linalloc, sizeof(macro_t));
        -:        -: 2135:
       10:       10: 2136:   macro->is_function = 1;
       10:       10: 2137:   macro->parameters = parameters;
       10:       10: 2138:   macro->identifier = linear_strdup(parser->linalloc, identifier);
       10:       10: 2139:   macro->replacements = replacements;
        -:        -: 2140:
       10:       10: 2141:   entry = _mesa_hash_table_search(parser->defines, identifier);
       10:       10: 2142:   previous = entry ? entry->data : NULL;
       10:       10: 2143:   if (previous) {
    #####:    #####: 2144:      if (_macro_equal (macro, previous)) {
    #####:    #####: 2145:         return;
        -:        -: 2146:      }
    #####:    #####: 2147:      glcpp_error (loc, parser, "Redefinition of macro %s\n", identifier);
        -:        -: 2148:   }
        -:        -: 2149:
       10:       10: 2150:   _mesa_hash_table_insert(parser->defines, identifier, macro);
        -:        -: 2151:}
        -:        -: 2152:
        -:        -: 2153:static int
      609:      629: 2154:glcpp_parser_lex(YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser)
        -:        -: 2155:{
        -:        -: 2156:   token_node_t *node;
        -:        -: 2157:   int ret;
        -:        -: 2158:
      609:      629: 2159:   if (parser->lex_from_list == NULL) {
      609:      629: 2160:      ret = glcpp_lex(yylval, yylloc, parser->scanner);
        -:        -: 2161:
        -:        -: 2162:      /* XXX: This ugly block of code exists for the sole
        -:        -: 2163:       * purpose of converting a NEWLINE token into a SPACE
        -:        -: 2164:       * token, but only in the case where we have seen a
        -:        -: 2165:       * function-like macro name, but have not yet seen its
        -:        -: 2166:       * closing parenthesis.
        -:        -: 2167:       *
        -:        -: 2168:       * There's perhaps a more compact way to do this with
        -:        -: 2169:       * mid-rule actions in the grammar.
        -:        -: 2170:       *
        -:        -: 2171:       * I'm definitely not pleased with the complexity of
        -:        -: 2172:       * this code here.
        -:        -: 2173:       */
      609:      629: 2174:      if (parser->newline_as_space) {
    #####:    #####: 2175:         if (ret == '(') {
    #####:    #####: 2176:            parser->paren_count++;
    #####:    #####: 2177:         } else if (ret == ')') {
    #####:    #####: 2178:            parser->paren_count--;
    #####:    #####: 2179:            if (parser->paren_count == 0)
    #####:    #####: 2180:               parser->newline_as_space = 0;
    #####:    #####: 2181:         } else if (ret == NEWLINE) {
    #####:    #####: 2182:            ret = SPACE;
    #####:    #####: 2183:         } else if (ret != SPACE) {
    #####:    #####: 2184:            if (parser->paren_count == 0)
    #####:    #####: 2185:               parser->newline_as_space = 0;
        -:        -: 2186:         }
      609:      629: 2187:      } else if (parser->in_control_line) {
      117:      117: 2188:         if (ret == NEWLINE)
       19:       19: 2189:            parser->in_control_line = 0;
        -:        -: 2190:      }
      492:      512: 2191:      else if (ret == DEFINE_TOKEN || ret == UNDEF || ret == IF ||
      492:      512: 2192:               ret == IFDEF || ret == IFNDEF || ret == ELIF || ret == ELSE ||
      492:      512: 2193:               ret == ENDIF || ret == HASH_TOKEN) {
       19:       19: 2194:         parser->in_control_line = 1;
      473:      493: 2195:      } else if (ret == IDENTIFIER) {
      113:      117: 2196:         struct hash_entry *entry = _mesa_hash_table_search(parser->defines,
      113:      117: 2197:                                                            yylval->str);
      113:      117: 2198:         macro_t *macro = entry ? entry->data : NULL;
      113:      117: 2199:         if (macro && macro->is_function) {
    #####:    #####: 2200:            parser->newline_as_space = 1;
    #####:    #####: 2201:            parser->paren_count = 0;
        -:        -: 2202:         }
        -:        -: 2203:      }
        -:        -: 2204:
      609:      629: 2205:      return ret;
        -:        -: 2206:   }
        -:        -: 2207:
    #####:    #####: 2208:   node = parser->lex_from_node;
        -:        -: 2209:
    #####:    #####: 2210:   if (node == NULL) {
    #####:    #####: 2211:      parser->lex_from_list = NULL;
    #####:    #####: 2212:      return NEWLINE;
        -:        -: 2213:   }
        -:        -: 2214:
    #####:    #####: 2215:   *yylval = node->token->value;
    #####:    #####: 2216:   ret = node->token->type;
        -:        -: 2217:
    #####:    #####: 2218:   parser->lex_from_node = node->next;
        -:        -: 2219:
    #####:    #####: 2220:   return ret;
        -:        -: 2221:}
        -:        -: 2222:
        -:        -: 2223:static void
    #####:    #####: 2224:glcpp_parser_lex_from(glcpp_parser_t *parser, token_list_t *list)
        -:        -: 2225:{
        -:        -: 2226:   token_node_t *node;
        -:        -: 2227:
    #####:    #####: 2228:   assert (parser->lex_from_list == NULL);
        -:        -: 2229:
        -:        -: 2230:   /* Copy list, eliminating any space tokens. */
    #####:    #####: 2231:   parser->lex_from_list = _token_list_create (parser);
        -:        -: 2232:
    #####:    #####: 2233:   for (node = list->head; node; node = node->next) {
    #####:    #####: 2234:      if (node->token->type == SPACE)
    #####:    #####: 2235:         continue;
    #####:    #####: 2236:      _token_list_append (parser,  parser->lex_from_list, node->token);
        -:        -: 2237:   }
        -:        -: 2238:
    #####:    #####: 2239:   parser->lex_from_node = parser->lex_from_list->head;
        -:        -: 2240:
        -:        -: 2241:   /* It's possible the list consisted of nothing but whitespace. */
    #####:    #####: 2242:   if (parser->lex_from_node == NULL) {
    #####:    #####: 2243:      parser->lex_from_list = NULL;
        -:        -: 2244:   }
    #####:    #####: 2245:}
        -:        -: 2246:
        -:        -: 2247:static void
        3:        3: 2248:_glcpp_parser_skip_stack_push_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 2249:                                 int condition)
        -:        -: 2250:{
        3:        3: 2251:   skip_type_t current = SKIP_NO_SKIP;
        -:        -: 2252:   skip_node_t *node;
        -:        -: 2253:
        3:        3: 2254:   if (parser->skip_stack)
        1:        1: 2255:      current = parser->skip_stack->type;
        -:        -: 2256:
        3:        3: 2257:   node = linear_alloc_child(parser->linalloc, sizeof(skip_node_t));
        3:        3: 2258:   node->loc = *loc;
        -:        -: 2259:
        3:        3: 2260:   if (current == SKIP_NO_SKIP) {
        2:        2: 2261:      if (condition)
        1:        1: 2262:         node->type = SKIP_NO_SKIP;
        -:        -: 2263:      else
        1:        1: 2264:         node->type = SKIP_TO_ELSE;
        -:        -: 2265:   } else {
        1:        1: 2266:      node->type = SKIP_TO_ENDIF;
        -:        -: 2267:   }
        -:        -: 2268:
        3:        3: 2269:   node->has_else = false;
        3:        3: 2270:   node->next = parser->skip_stack;
        3:        3: 2271:   parser->skip_stack = node;
        3:        3: 2272:}
        -:        -: 2273:
        -:        -: 2274:static void
        1:        1: 2275:_glcpp_parser_skip_stack_change_if(glcpp_parser_t *parser, YYLTYPE *loc,
        -:        -: 2276:                                   const char *type, int condition)
        -:        -: 2277:{
        1:        1: 2278:   if (parser->skip_stack == NULL) {
    #####:    #####: 2279:      glcpp_error (loc, parser, "#%s without #if\n", type);
    #####:    #####: 2280:      return;
        -:        -: 2281:   }
        -:        -: 2282:
        1:        1: 2283:   if (parser->skip_stack->type == SKIP_TO_ELSE) {
    #####:    #####: 2284:      if (condition)
    #####:    #####: 2285:         parser->skip_stack->type = SKIP_NO_SKIP;
        -:        -: 2286:   } else {
        1:        1: 2287:      parser->skip_stack->type = SKIP_TO_ENDIF;
        -:        -: 2288:   }
        -:        -: 2289:}
        -:        -: 2290:
        -:        -: 2291:static void
        3:        3: 2292:_glcpp_parser_skip_stack_pop(glcpp_parser_t *parser, YYLTYPE *loc)
        -:        -: 2293:{
        -:        -: 2294:   skip_node_t *node;
        -:        -: 2295:
        3:        3: 2296:   if (parser->skip_stack == NULL) {
    #####:    #####: 2297:      glcpp_error (loc, parser, "#endif without #if\n");
    #####:    #####: 2298:      return;
        -:        -: 2299:   }
        -:        -: 2300:
        3:        3: 2301:   node = parser->skip_stack;
        3:        3: 2302:   parser->skip_stack = node->next;
        -:        -: 2303:}
        -:        -: 2304:
        -:        -: 2305:static void
      392:      404: 2306:_glcpp_parser_handle_version_declaration(glcpp_parser_t *parser, intmax_t version,
        -:        -: 2307:                                         const char *es_identifier,
        -:        -: 2308:                                         bool explicitly_set)
        -:        -: 2309:{
      392:      404: 2310:   if (parser->version_set)
      390:      402: 2311:      return;
        -:        -: 2312:
        2:        2: 2313:   parser->version = version;
        2:        2: 2314:   parser->version_set = true;
        -:        -: 2315:
        2:        2: 2316:   add_builtin_define (parser, "__VERSION__", version);
        -:        -: 2317:
        2:        2: 2318:   parser->is_gles = (version == 100) ||
    #####:    #####: 2319:                     (es_identifier && (strcmp(es_identifier, "es") == 0));
        -:        -: 2320:
        -:        -: 2321:   /* Add pre-defined macros. */
        2:        2: 2322:   if (parser->is_gles)
    #####:    #####: 2323:      add_builtin_define(parser, "GL_ES", 1);
        2:        2: 2324:   else if (version >= 150)
    #####:    #####: 2325:      add_builtin_define(parser, "GL_core_profile", 1);
        -:        -: 2326:
        -:        -: 2327:   /* Currently, all ES2/ES3 implementations support highp in the
        -:        -: 2328:    * fragment shader, so we always define this macro in ES2/ES3.
        -:        -: 2329:    * If we ever get a driver that doesn't support highp, we'll
        -:        -: 2330:    * need to add a flag to the gl_context and check that here.
        -:        -: 2331:    */
        2:        2: 2332:   if (version >= 130 || parser->is_gles)
        2:        2: 2333:      add_builtin_define (parser, "GL_FRAGMENT_PRECISION_HIGH", 1);
        -:        -: 2334:
        -:        -: 2335:   /* Add all the extension macros available in this context */
        2:        2: 2336:   if (parser->extensions)
        4:        4: 2337:      parser->extensions(parser->state, add_builtin_define, parser,
        2:        2: 2338:                         version, parser->is_gles);
        -:        -: 2339:
        2:        2: 2340:   if (parser->extension_list) {
        -:        -: 2341:      /* If MESA_shader_integer_functions is supported, then the building
        -:        -: 2342:       * blocks required for the 64x64 => 64 multiply exist.  Add defines for
        -:        -: 2343:       * those functions so that they can be tested.
        -:        -: 2344:       */
        2:        2: 2345:      if (parser->extension_list->MESA_shader_integer_functions) {
        2:        2: 2346:         add_builtin_define(parser, "__have_builtin_builtin_sign64", 1);
        2:        2: 2347:         add_builtin_define(parser, "__have_builtin_builtin_umul64", 1);
        2:        2: 2348:         add_builtin_define(parser, "__have_builtin_builtin_udiv64", 1);
        2:        2: 2349:         add_builtin_define(parser, "__have_builtin_builtin_umod64", 1);
        2:        2: 2350:         add_builtin_define(parser, "__have_builtin_builtin_idiv64", 1);
        2:        2: 2351:         add_builtin_define(parser, "__have_builtin_builtin_imod64", 1);
        -:        -: 2352:      }
        -:        -: 2353:   }
        -:        -: 2354:
        2:        2: 2355:   if (explicitly_set) {
        2:        2: 2356:      ralloc_asprintf_rewrite_tail(&parser->output, &parser->output_length,
        -:        -: 2357:                                   "#version %" PRIiMAX "%s%s", version,
        -:        -: 2358:                                   es_identifier ? " " : "",
        -:        -: 2359:                                   es_identifier ? es_identifier : "");
        -:        -: 2360:   }
        -:        -: 2361:}
        -:        -: 2362:
        -:        -: 2363:/* GLSL version if no version is explicitly specified. */
        -:        -: 2364:#define IMPLICIT_GLSL_VERSION 110
        -:        -: 2365:
        -:        -: 2366:/* GLSL ES version if no version is explicitly specified. */
        -:        -: 2367:#define IMPLICIT_GLSL_ES_VERSION 100
        -:        -: 2368:
        -:        -: 2369:void
      390:      402: 2370:glcpp_parser_resolve_implicit_version(glcpp_parser_t *parser)
        -:        -: 2371:{
      780:      804: 2372:   int language_version = parser->api == API_OPENGLES2 ?
      390:      402: 2373:                          IMPLICIT_GLSL_ES_VERSION : IMPLICIT_GLSL_VERSION;
        -:        -: 2374:
      390:      402: 2375:   _glcpp_parser_handle_version_declaration(parser, language_version,
        -:        -: 2376:                                            NULL, false);
      390:      402: 2377:}

src/compiler/glsl/ast_expr.cpp.gcov

        -:        -:    0:Source:glsl/ast_expr.cpp
        -:        -:    0:Graph:.libs/ast_expr.gcno
        -:        -:    0:Data:.libs/ast_expr.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
    #####:    #####:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        8:        9:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        8:        9:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        8:        9:   85:/*EOF*/
        8:        9:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/

src/compiler/glsl/ast_to_hir.cpp.gcov

        -:        -:    0:Source:glsl/ast_to_hir.cpp
        -:        -:    0:Graph:.libs/ast_to_hir.gcno
        -:        -:    0:Data:.libs/ast_to_hir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        2:        2:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        2:        2:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      113:      114:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      113:      114:   85:/*EOF*/
       46:       46:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       67:       68:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       67:       68:   96:/*EOF*/
       67:       68:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        2:        2:  107:/*EOF*/
        2:        2:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       20:       22:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       20:       22:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       20:       22:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        2:        2:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        2:        2:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        2:        2:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        2:        2:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        2:        2:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        2:        2:  135:/*EOF*/
        2:        2:  136:/*EOF*/
        2:        2:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        2:        2:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        8:        8:  154:/*EOF*/
        6:        6:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        2:        2:  157:/*EOF*/
        2:        2:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        2:        2:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      155:      155:  170:/*EOF*/
      153:      153:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      153:      153:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      150:      150:  176:/*EOF*/
      150:      150:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        2:        2:  181:/*EOF*/
        2:        2:  182:/*EOF*/
        1:        1:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        2:        2:  216:/*EOF*/
        2:        2:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        2:        2:  220:/*EOF*/
        2:        2:  221:/*EOF*/
        2:        2:  222:/*EOF*/
        2:        2:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        2:        2:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       11:       12:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       11:       12:  308:/*EOF*/
       11:       12:  309:/*EOF*/
       11:       12:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        6:        6:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        6:        6:  351:/*EOF*/
        6:        6:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        6:        6:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       12:       12:  371:/*EOF*/
        6:        6:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        6:        6:  378:/*EOF*/
        6:        6:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        6:        6:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        6:        6:  404:/*EOF*/
        6:        6:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        5:        6:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        5:        6:  678:/*EOF*/
        5:        6:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       10:       12:  686:/*EOF*/
        5:        6:  687:/*EOF*/
        5:        6:  688:/*EOF*/
       10:       12:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
       10:       12:  700:/*EOF*/
        5:        6:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        5:        6:  707:/*EOF*/
        5:        6:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        5:        6:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        5:        6:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       17:       17:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
       17:       17:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
       17:       17:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
       17:       17:  861:/*EOF*/
       17:       17:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       17:       17:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
       17:       17:  937:/*EOF*/
       17:       17:  938:/*EOF*/
        -:        -:  939:/*EOF*/
       17:       17:  940:/*EOF*/
       17:       17:  941:/*EOF*/
       17:       17:  942:/*EOF*/
        -:        -:  943:/*EOF*/
       17:       17:  944:/*EOF*/
       17:       17:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
       34:       34:  950:/*EOF*/
       17:       17:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
        -:        -:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
       17:       17:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
       17:       17:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
       17:       17:  983:/*EOF*/
       17:       17:  984:/*EOF*/
       17:       17:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
       17:       17:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
       17:       17: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
       17:       17: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        5:        5: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        5:        5: 1028:/*EOF*/
        5:        5: 1029:/*EOF*/
        5:        5: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        5:        5: 1033:/*EOF*/
        5:        5: 1034:/*EOF*/
        5:        5: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        5:        5: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
       12:       12: 1041:/*EOF*/
       12:       12: 1042:/*EOF*/
       12:       12: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
       17:       17: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        2:        2: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        2:        2: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        2:        2: 1056:/*EOF*/
        2:        2: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        2:        2: 1059:/*EOF*/
        4:        4: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        2:        2: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        5:        5: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        5:        5: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        5:        5: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        5:        5: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        5:        5: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        2:        2: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        2:        2: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        2:        2: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
      110:      114: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
      110:      114: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
       10:       10: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
       10:       10: 1303:/*EOF*/
       10:       10: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
       50:       50: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
       50:       50: 1312:/*EOF*/
        6:        6: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
       44:       44: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
       44:       44: 1320:/*EOF*/
       11:       11: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
      120:      124: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
      120:      124: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
      120:      124: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
      120:      124: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
      120:      124: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
      120:      124: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        9:        9: 1400:/*EOF*/
        9:        9: 1401:/*EOF*/
        9:        9: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       18:       18: 1405:/*EOF*/
        9:        9: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
       18:       18: 1408:/*EOF*/
        9:        9: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
    #####:    #####: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
    #####:    #####: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        3:        3: 1437:/*EOF*/
        3:        3: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        3:        3: 1440:/*EOF*/
        3:        3: 1441:/*EOF*/
        3:        3: 1442:/*EOF*/
        3:        3: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        6:        6: 1445:/*EOF*/
        9:        9: 1446:/*EOF*/
        3:        3: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        5:        6: 1481:/*EOF*/
        5:        6: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        5:        6: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
       10:       12: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        5:        6: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
       10:       12: 1493:/*EOF*/
       15:       18: 1494:/*EOF*/
        5:        6: 1495:/*EOF*/
        5:        6: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
    #####:    #####: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        1:        1: 1674:/*EOF*/
        1:        1: 1675:/*EOF*/
        1:        1: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        1:        1: 1678:/*EOF*/
        1:        1: 1679:/*EOF*/
        1:        1: 1680:/*EOF*/
        1:        1: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        1:        1: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        2:        2: 1690:/*EOF*/
        3:        3: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        3:        3: 1694:/*EOF*/
        1:        1: 1695:/*EOF*/
        1:        1: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        2:        2: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        1:        1: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
    #####:    #####: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
    #####:    #####: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
    #####:    #####: 1882:/*EOF*/
    #####:    #####: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        2:        2: 1915:/*EOF*/
        2:        2: 1916:/*EOF*/
        2:        2: 1917:/*EOF*/
        2:        2: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        2:        2: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        2:        2: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        4:        4: 1925:/*EOF*/
        6:        6: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        2:        2: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        6:        6: 1935:/*EOF*/
        2:        2: 1936:/*EOF*/
        2:        2: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        4:        4: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        2:        2: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
       14:       15: 1945:/*EOF*/
       14:       15: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
       16:       16: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
       16:       16: 1955:/*EOF*/
       16:       16: 1956:/*EOF*/
       16:       16: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
       16:       16: 1959:/*EOF*/
       16:       16: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
       16:       16: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       16:       16: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
       51:       52: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
       51:       52: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
       51:       52: 1995:/*EOF*/
       51:       52: 1996:/*EOF*/
       51:       52: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
      122:      125: 1999:/*EOF*/
       33:       33: 2000:/*EOF*/
       15:       15: 2001:/*EOF*/
       51:       52: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
       51:       52: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
       17:       17: 2017:/*EOF*/
       17:       17: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        2:        3: 2025:/*EOF*/
        2:        3: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
    #####:    #####: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
      120:      124: 2098:/*EOF*/
      120:      124: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
      120:      124: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
      120:      124: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        1:        1: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        1:        1: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
    #####:    #####: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        1:        1: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
       10:       10: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
       10:       10: 2200:/*EOF*/
       10:       10: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
       10:       10: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        8:        9: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        8:        9: 2213:/*EOF*/
        3:        4: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
       28:       30: 2216:/*EOF*/
       20:       21: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        8:        9: 2219:/*EOF*/
        3:        4: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        8:        9: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        1:        1: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        1:        1: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        1:        1: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        1:        1: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        1:        1: 2246:/*EOF*/
        1:        1: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        1:        1: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        1:        1: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        1:        1: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        1:        1: 2267:/*EOF*/
        2:        2: 2268:/*EOF*/
        2:        2: 2269:/*EOF*/
        1:        1: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        1:        1: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        1:        1: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        1:        1: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        1:        1: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
       28:       28: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
       28:       28: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
       28:       28: 2301:/*EOF*/
        1:        1: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        4:        4: 2313:/*EOF*/
        2:        2: 2314:/*EOF*/
        1:        1: 2315:/*EOF*/
        1:        1: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
       28:       28: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
       18:       18: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
       18:       18: 2365:/*EOF*/
       18:       18: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
       18:       18: 2368:/*EOF*/
       18:       18: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
       18:       18: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
    #####:    #####: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
    #####:    #####: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
    #####:    #####: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
    #####:    #####: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
    #####:    #####: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
    #####:    #####: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
    #####:    #####: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
    #####:    #####: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
    #####:    #####: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
    #####:    #####: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
    #####:    #####: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
    #####:    #####: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
    #####:    #####: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
       14:       14: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
       14:       14: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        8:        8: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        8:        8: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        1:        1: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        7:        7: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
    #####:    #####: 2677:/*EOF*/
    #####:    #####: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
    #####:    #####: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
    #####:    #####: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
    #####:    #####: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
    #####:    #####: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
    #####:    #####: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
    #####:    #####: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
    #####:    #####: 2737:/*EOF*/
    #####:    #####: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
    #####:    #####: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
    #####:    #####: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
    #####:    #####: 2770:/*EOF*/
    #####:    #####: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
    #####:    #####: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
    #####:    #####: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
    #####:    #####: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
    #####:    #####: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
    #####:    #####: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
    #####:    #####: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
    #####:    #####: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
    #####:    #####: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
    #####:    #####: 2842:/*EOF*/
    #####:    #####: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
    #####:    #####: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
    #####:    #####: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
    #####:    #####: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
    #####:    #####: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
    #####:    #####: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
    #####:    #####: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
    #####:    #####: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
    #####:    #####: 2923:/*EOF*/
    #####:    #####: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
    #####:    #####: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
       10:       10: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
       10:       10: 2940:/*EOF*/
        9:        9: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
       10:       10: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
    #####:    #####: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
       10:       10: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
       20:       20: 3035:/*EOF*/
       10:       10: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
    #####:    #####: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
    #####:    #####: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
    #####:    #####: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
    #####:    #####: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
       20:       20: 3073:/*EOF*/
       10:       10: 3074:/*EOF*/
       10:       10: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
    #####:    #####: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
    #####:    #####: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
       10:       10: 3090:/*EOF*/
       10:       10: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
       10:       10: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
       10:       10: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
       10:       10: 3103:/*EOF*/
    #####:    #####: 3104:/*EOF*/
       10:       10: 3105:/*EOF*/
    #####:    #####: 3106:/*EOF*/
       10:       10: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
    #####:    #####: 3109:/*EOF*/
    #####:    #####: 3110:/*EOF*/
    #####:    #####: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
       10:       10: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
       10:       10: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
       10:       10: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
    #####:    #####: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
    #####:    #####: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
    #####:    #####: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
    #####:    #####: 3154:/*EOF*/
    #####:    #####: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
    #####:    #####: 3159:/*EOF*/
    #####:    #####: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
    #####:    #####: 3179:/*EOF*/
    #####:    #####: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
    #####:    #####: 3192:/*EOF*/
    #####:    #####: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
    #####:    #####: 3198:/*EOF*/
    #####:    #####: 3199:/*EOF*/
    #####:    #####: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
    #####:    #####: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
    #####:    #####: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
    #####:    #####: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
    #####:    #####: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
    #####:    #####: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
    #####:    #####: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
    #####:    #####: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
    #####:    #####: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
    #####:    #####: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
    #####:    #####: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
       10:       10: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
       10:       10: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
       10:       10: 3306:/*EOF*/
       10:       10: 3307:/*EOF*/
       10:       10: 3308:/*EOF*/
       10:       10: 3309:/*EOF*/
       10:       10: 3310:/*EOF*/
       10:       10: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
       10:       10: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
    #####:    #####: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
    #####:    #####: 3326:/*EOF*/
    #####:    #####: 3327:/*EOF*/
    #####:    #####: 3328:/*EOF*/
    #####:    #####: 3329:/*EOF*/
    #####:    #####: 3330:/*EOF*/
    #####:    #####: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
    #####:    #####: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
    #####:    #####: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
    #####:    #####: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
    #####:    #####: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
    #####:    #####: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
    #####:    #####: 3381:/*EOF*/
    #####:    #####: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
    #####:    #####: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
    #####:    #####: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
    #####:    #####: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        3:        3: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        3:        3: 3408:/*EOF*/
        1:        1: 3409:/*EOF*/
        1:        1: 3410:/*EOF*/
    #####:    #####: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        3:        3: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        8:        8: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        8:        8: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
    #####:    #####: 3457:/*EOF*/
    #####:    #####: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
    #####:    #####: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        8:        8: 3476:/*EOF*/
        8:        8: 3477:/*EOF*/
        8:        8: 3478:/*EOF*/
    #####:    #####: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        8:        8: 3489:/*EOF*/
    #####:    #####: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
    #####:    #####: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
    #####:    #####: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
    #####:    #####: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        8:        8: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        8:        8: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
    #####:    #####: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        8:        8: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        8:        8: 3533:/*EOF*/
    #####:    #####: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        8:        8: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
    #####:    #####: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        8:        8: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        8:        8: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
    #####:    #####: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
    #####:    #####: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        8:        8: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
    #####:    #####: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
    #####:    #####: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        8:        8: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
    #####:    #####: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        8:        8: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        8:        8: 3633:/*EOF*/
        8:        8: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
    #####:    #####: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        8:        8: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
    #####:    #####: 3651:/*EOF*/
        8:        8: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
    #####:    #####: 3656:/*EOF*/
        8:        8: 3657:/*EOF*/
    #####:    #####: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        8:        8: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        8:        8: 3678:/*EOF*/
        8:        8: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        8:        8: 3682:/*EOF*/
        8:        8: 3683:/*EOF*/
        8:        8: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
    #####:    #####: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        8:        8: 3693:/*EOF*/
    #####:    #####: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        8:        8: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
    #####:    #####: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        8:        8: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        8:        8: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        8:        8: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
       10:       10: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
       10:       10: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
       10:       10: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
    #####:    #####: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
       10:       10: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
       10:       10: 3759:/*EOF*/
        9:        9: 3760:/*EOF*/
        7:        7: 3761:/*EOF*/
        3:        3: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
       10:       10: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
       10:       10: 3767:/*EOF*/
    #####:    #####: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
       10:       10: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
    #####:    #####: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
       10:       10: 3776:/*EOF*/
    #####:    #####: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
       10:       10: 3779:/*EOF*/
    #####:    #####: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
    #####:    #####: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
       10:       10: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
    #####:    #####: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
       10:       10: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
    #####:    #####: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
       10:       10: 3812:/*EOF*/
       10:       10: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
       10:       10: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
       10:       10: 3817:/*EOF*/
        9:        9: 3818:/*EOF*/
        1:        1: 3819:/*EOF*/
        9:        9: 3820:/*EOF*/
    #####:    #####: 3821:/*EOF*/
        9:        9: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
        9:        9: 3824:/*EOF*/
        2:        2: 3825:/*EOF*/
        7:        7: 3826:/*EOF*/
    #####:    #####: 3827:/*EOF*/
        7:        7: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
       19:       19: 3831:/*EOF*/
       10:       10: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
       10:       10: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
    #####:    #####: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
    #####:    #####: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
    #####:    #####: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
    #####:    #####: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
    #####:    #####: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
    #####:    #####: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
    #####:    #####: 3888:/*EOF*/
    #####:    #####: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
       10:       10: 3893:/*EOF*/
    #####:    #####: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
    #####:    #####: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
    #####:    #####: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
    #####:    #####: 3902:/*EOF*/
    #####:    #####: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
    #####:    #####: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
       10:       10: 3917:/*EOF*/
       10:       10: 3918:/*EOF*/
       10:       10: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
       10:       10: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
       10:       10: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
    #####:    #####: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
       10:       10: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
       10:       10: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
    #####:    #####: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
       10:       10: 3962:/*EOF*/
       10:       10: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        8:        8: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        8:        8: 3991:/*EOF*/
       16:       16: 3992:/*EOF*/
    #####:    #####: 3993:/*EOF*/
    #####:    #####: 3994:/*EOF*/
        8:        8: 3995:/*EOF*/
        8:        8: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
    #####:    #####: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
    #####:    #####: 4028:/*EOF*/
    #####:    #####: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
    #####:    #####: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
    #####:    #####: 4048:/*EOF*/
    #####:    #####: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
    #####:    #####: 4062:/*EOF*/
    #####:    #####: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
    #####:    #####: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
    #####:    #####: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
    #####:    #####: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
    #####:    #####: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
    #####:    #####: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
    #####:    #####: 4105:/*EOF*/
    #####:    #####: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        5:        5: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        5:        5: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        5:        5: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        5:        5: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        5:        5: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
    #####:    #####: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        5:        5: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        5:        5: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
    #####:    #####: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
        5:        5: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
    #####:    #####: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        5:        5: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        5:        5: 4187:/*EOF*/
        5:        5: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        5:        5: 4202:/*EOF*/
        5:        5: 4203:/*EOF*/
        5:        5: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
    #####:    #####: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
    #####:    #####: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
    #####:    #####: 4269:/*EOF*/
    #####:    #####: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
    #####:    #####: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
    #####:    #####: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        5:        5: 4290:/*EOF*/
        5:        5: 4291:/*EOF*/
        5:        5: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        5:        5: 4298:/*EOF*/
        5:        5: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        5:        5: 4304:/*EOF*/
        5:        5: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
    #####:    #####: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        5:        5: 4309:/*EOF*/
        5:        5: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        5:        5: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        5:        5: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        5:        5: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
    #####:    #####: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
    #####:    #####: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
    #####:    #####: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
    #####:    #####: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
    #####:    #####: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
    #####:    #####: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
    #####:    #####: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
    #####:    #####: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
    #####:    #####: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
    #####:    #####: 4423:/*EOF*/
        -:        -: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
    #####:    #####: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
    #####:    #####: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
    #####:    #####: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
    #####:    #####: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
    #####:    #####: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
    #####:    #####: 4450:/*EOF*/
    #####:    #####: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
    #####:    #####: 4462:/*EOF*/
    #####:    #####: 4463:/*EOF*/
    #####:    #####: 4464:/*EOF*/
    #####:    #####: 4465:/*EOF*/
    #####:    #####: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
    #####:    #####: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
    #####:    #####: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
    #####:    #####: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
    #####:    #####: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
    #####:    #####: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
    #####:    #####: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
       11:       11: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
       11:       11: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
    #####:    #####: 4516:/*EOF*/
       11:       11: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
    #####:    #####: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
       11:       11: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        8:        8: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        8:        8: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        8:        8: 4544:/*EOF*/
        8:        8: 4545:/*EOF*/
        8:        8: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        8:        8: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
    #####:    #####: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
    #####:    #####: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
    #####:    #####: 4568:/*EOF*/
    #####:    #####: 4569:/*EOF*/
    #####:    #####: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
    #####:    #####: 4573:/*EOF*/
    #####:    #####: 4574:/*EOF*/
    #####:    #####: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
    #####:    #####: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
    #####:    #####: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
    #####:    #####: 4581:/*EOF*/
    #####:    #####: 4582:/*EOF*/
    #####:    #####: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
    #####:    #####: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
    #####:    #####: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        8:        8: 4597:/*EOF*/
    #####:    #####: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
    #####:    #####: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
    #####:    #####: 4605:/*EOF*/
    #####:    #####: 4606:/*EOF*/
    #####:    #####: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
    #####:    #####: 4610:/*EOF*/
    #####:    #####: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
    #####:    #####: 4618:/*EOF*/
    #####:    #####: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
    #####:    #####: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
    #####:    #####: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
    #####:    #####: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        8:        8: 4633:/*EOF*/
        8:        8: 4634:/*EOF*/
        8:        8: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        8:        8: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        8:        8: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        8:        8: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
    #####:    #####: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        8:        8: 4660:/*EOF*/
    #####:    #####: 4661:/*EOF*/
    #####:    #####: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
    #####:    #####: 4665:/*EOF*/
    #####:    #####: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
    #####:    #####: 4668:/*EOF*/
    #####:    #####: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
    #####:    #####: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
    #####:    #####: 4676:/*EOF*/
    #####:    #####: 4677:/*EOF*/
    #####:    #####: 4678:/*EOF*/
    #####:    #####: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
    #####:    #####: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        8:        8: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
    #####:    #####: 4708:/*EOF*/
    #####:    #####: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
    #####:    #####: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
    #####:    #####: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
    #####:    #####: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
    #####:    #####: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
    #####:    #####: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
    #####:    #####: 4742:/*EOF*/
    #####:    #####: 4743:/*EOF*/
    #####:    #####: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
    #####:    #####: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
    #####:    #####: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
    #####:    #####: 4761:/*EOF*/
    #####:    #####: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
    #####:    #####: 4764:/*EOF*/
    #####:    #####: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
       16:       16: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        8:        8: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        8:        8: 4778:/*EOF*/
    #####:    #####: 4779:/*EOF*/
    #####:    #####: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
    #####:    #####: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
    #####:    #####: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
    #####:    #####: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
    #####:    #####: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        8:        8: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
    #####:    #####: 4795:/*EOF*/
    #####:    #####: 4796:/*EOF*/
    #####:    #####: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
    #####:    #####: 4799:/*EOF*/
    #####:    #####: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
    #####:    #####: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        8:        8: 4805:/*EOF*/
        8:        8: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        8:        8: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        8:        8: 4814:/*EOF*/
    #####:    #####: 4815:/*EOF*/
    #####:    #####: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
    #####:    #####: 4820:/*EOF*/
    #####:    #####: 4821:/*EOF*/
    #####:    #####: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
    #####:    #####: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
       16:       16: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
    #####:    #####: 4843:/*EOF*/
        8:        8: 4844:/*EOF*/
    #####:    #####: 4845:/*EOF*/
    #####:    #####: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
    #####:    #####: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
    #####:    #####: 4851:/*EOF*/
    #####:    #####: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
    #####:    #####: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        8:        8: 4860:/*EOF*/
        8:        8: 4861:/*EOF*/
        8:        8: 4862:/*EOF*/
        8:        8: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
       19:       19: 4865:/*EOF*/
        5:        5: 4866:/*EOF*/
       13:       13: 4867:/*EOF*/
    #####:    #####: 4868:/*EOF*/
    #####:    #####: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        8:        8: 4873:/*EOF*/
    #####:    #####: 4874:/*EOF*/
    #####:    #####: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
    #####:    #####: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        8:        8: 4881:/*EOF*/
        5:        5: 4882:/*EOF*/
        5:        5: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        5:        5: 4888:/*EOF*/
    #####:    #####: 4889:/*EOF*/
        5:        5: 4890:/*EOF*/
    #####:    #####: 4891:/*EOF*/
        5:        5: 4892:/*EOF*/
    #####:    #####: 4893:/*EOF*/
        5:        5: 4894:/*EOF*/
    #####:    #####: 4895:/*EOF*/
        5:        5: 4896:/*EOF*/
    #####:    #####: 4897:/*EOF*/
    #####:    #####: 4898:/*EOF*/
        5:        5: 4899:/*EOF*/
    #####:    #####: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        5:        5: 4904:/*EOF*/
    #####:    #####: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
    #####:    #####: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        3:        3: 4910:/*EOF*/
        1:        1: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        1:        1: 4913:/*EOF*/
        1:        1: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        1:        1: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        1:        1: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        1:        1: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
    #####:    #####: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
    #####:    #####: 4952:/*EOF*/
    #####:    #####: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
    #####:    #####: 4955:/*EOF*/
    #####:    #####: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
    #####:    #####: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
    #####:    #####: 4962:/*EOF*/
    #####:    #####: 4963:/*EOF*/
    #####:    #####: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        1:        1: 4967:/*EOF*/
    #####:    #####: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
    #####:    #####: 4970:/*EOF*/
    #####:    #####: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
    #####:    #####: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
    #####:    #####: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
    #####:    #####: 4987:/*EOF*/
    #####:    #####: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
    #####:    #####: 5001:/*EOF*/
    #####:    #####: 5002:/*EOF*/
    #####:    #####: 5003:/*EOF*/
    #####:    #####: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
    #####:    #####: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
    #####:    #####: 5009:/*EOF*/
    #####:    #####: 5010:/*EOF*/
    #####:    #####: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
    #####:    #####: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
    #####:    #####: 5016:/*EOF*/
    #####:    #####: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
    #####:    #####: 5022:/*EOF*/
    #####:    #####: 5023:/*EOF*/
    #####:    #####: 5024:/*EOF*/
    #####:    #####: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
    #####:    #####: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
    #####:    #####: 5033:/*EOF*/
    #####:    #####: 5034:/*EOF*/
    #####:    #####: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        2:        2: 5037:/*EOF*/
    #####:    #####: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
    #####:    #####: 5049:/*EOF*/
    #####:    #####: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
    #####:    #####: 5052:/*EOF*/
    #####:    #####: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
        -:        -: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
    #####:    #####: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
    #####:    #####: 5070:/*EOF*/
    #####:    #####: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
    #####:    #####: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
        -:        -: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
    #####:    #####: 5122:/*EOF*/
    #####:    #####: 5123:/*EOF*/
    #####:    #####: 5124:/*EOF*/
    #####:    #####: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
    #####:    #####: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
    #####:    #####: 5130:/*EOF*/
    #####:    #####: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
    #####:    #####: 5133:/*EOF*/
    #####:    #####: 5134:/*EOF*/
    #####:    #####: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
    #####:    #####: 5138:/*EOF*/
    #####:    #####: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
    #####:    #####: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
    #####:    #####: 5144:/*EOF*/
    #####:    #####: 5145:/*EOF*/
    #####:    #####: 5146:/*EOF*/
    #####:    #####: 5147:/*EOF*/
    #####:    #####: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
    #####:    #####: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
    #####:    #####: 5158:/*EOF*/
    #####:    #####: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        2:        2: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
    #####:    #####: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        8:        8: 5177:/*EOF*/
        8:        8: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
    #####:    #####: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        8:        8: 5185:/*EOF*/
        8:        8: 5186:/*EOF*/
    #####:    #####: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        8:        8: 5195:/*EOF*/
    #####:    #####: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        8:        8: 5199:/*EOF*/
    #####:    #####: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
    #####:    #####: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        8:        8: 5211:/*EOF*/
    #####:    #####: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
        -:        -: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        8:        8: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        8:        8: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        8:        8: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        8:        8: 5232:/*EOF*/
        8:        8: 5233:/*EOF*/
    #####:    #####: 5234:/*EOF*/
    #####:    #####: 5235:/*EOF*/
    #####:    #####: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
    #####:    #####: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
    #####:    #####: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        8:        8: 5243:/*EOF*/
        5:        5: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        5:        5: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        3:        3: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        8:        8: 5257:/*EOF*/
    #####:    #####: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
    #####:    #####: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        8:        8: 5263:/*EOF*/
    #####:    #####: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
    #####:    #####: 5286:/*EOF*/
    #####:    #####: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
    #####:    #####: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
    #####:    #####: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
    #####:    #####: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        8:        8: 5319:/*EOF*/
        8:        8: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        8:        8: 5334:/*EOF*/
    #####:    #####: 5335:/*EOF*/
    #####:    #####: 5336:/*EOF*/
    #####:    #####: 5337:/*EOF*/
    #####:    #####: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        8:        8: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        8:        8: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        8:        8: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        3:        3: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        3:        3: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        3:        3: 5373:/*EOF*/
        3:        3: 5374:/*EOF*/
        -:        -: 5375:/*EOF*/
        3:        3: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        3:        3: 5378:/*EOF*/
    #####:    #####: 5379:/*EOF*/
    #####:    #####: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
    #####:    #####: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
    #####:    #####: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
    #####:    #####: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
        -:        -: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        3:        3: 5404:/*EOF*/
        1:        1: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
    #####:    #####: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        1:        1: 5409:/*EOF*/
        1:        1: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        2:        2: 5413:/*EOF*/
    #####:    #####: 5414:/*EOF*/
    #####:    #####: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        2:        2: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        2:        2: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
    #####:    #####: 5425:/*EOF*/
    #####:    #####: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        2:        2: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        2:        2: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        2:        2: 5436:/*EOF*/
        2:        2: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        6:        6: 5445:/*EOF*/
        2:        2: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
    #####:    #####: 5448:/*EOF*/
    #####:    #####: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        6:        6: 5466:/*EOF*/
    #####:    #####: 5467:/*EOF*/
        2:        2: 5468:/*EOF*/
    #####:    #####: 5469:/*EOF*/
    #####:    #####: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        2:        2: 5473:/*EOF*/
        -:        -: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        2:        2: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        3:        3: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        3:        3: 5487:/*EOF*/
        3:        3: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        6:        6: 5490:/*EOF*/
        3:        3: 5491:/*EOF*/
        3:        3: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        3:        3: 5494:/*EOF*/
        1:        1: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        3:        3: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        3:        3: 5500:/*EOF*/
    #####:    #####: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        3:        3: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        3:        3: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        3:        3: 5519:/*EOF*/
        3:        3: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        3:        3: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        3:        3: 5527:/*EOF*/
        3:        3: 5528:/*EOF*/
        3:        3: 5529:/*EOF*/
        3:        3: 5530:/*EOF*/
        3:        3: 5531:/*EOF*/
        -:        -: 5532:/*EOF*/
        3:        3: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        3:        3: 5553:/*EOF*/
    #####:    #####: 5554:/*EOF*/
    #####:    #####: 5555:/*EOF*/
        -:        -: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
    #####:    #####: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        3:        3: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        3:        3: 5567:/*EOF*/
        3:        3: 5568:/*EOF*/
        3:        3: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        3:        3: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        3:        3: 5575:/*EOF*/
    #####:    #####: 5576:/*EOF*/
        -:        -: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
    #####:    #####: 5579:/*EOF*/
    #####:    #####: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        3:        3: 5587:/*EOF*/
    #####:    #####: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
    #####:    #####: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        3:        3: 5597:/*EOF*/
    #####:    #####: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
    #####:    #####: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
        3:        3: 5608:/*EOF*/
    #####:    #####: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
    #####:    #####: 5612:/*EOF*/
        -:        -: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        3:        3: 5620:/*EOF*/
    #####:    #####: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
    #####:    #####: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        3:        3: 5628:/*EOF*/
    #####:    #####: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
    #####:    #####: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        3:        3: 5637:/*EOF*/
        3:        3: 5638:/*EOF*/
        3:        3: 5639:/*EOF*/
        3:        3: 5640:/*EOF*/
        3:        3: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
    #####:    #####: 5645:/*EOF*/
    #####:    #####: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        3:        3: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        3:        3: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
    #####:    #####: 5663:/*EOF*/
    #####:    #####: 5664:/*EOF*/
    #####:    #####: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
    #####:    #####: 5668:/*EOF*/
    #####:    #####: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        3:        3: 5677:/*EOF*/
    #####:    #####: 5678:/*EOF*/
    #####:    #####: 5679:/*EOF*/
    #####:    #####: 5680:/*EOF*/
    #####:    #####: 5681:/*EOF*/
    #####:    #####: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
    #####:    #####: 5688:/*EOF*/
    #####:    #####: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
    #####:    #####: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
    #####:    #####: 5695:/*EOF*/
    #####:    #####: 5696:/*EOF*/
    #####:    #####: 5697:/*EOF*/
    #####:    #####: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
    #####:    #####: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        -:        -: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        3:        3: 5711:/*EOF*/
        2:        2: 5712:/*EOF*/
    #####:    #####: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
    #####:    #####: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        2:        2: 5718:/*EOF*/
    #####:    #####: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
    #####:    #####: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        3:        3: 5727:/*EOF*/
        3:        3: 5728:/*EOF*/
        3:        3: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        3:        3: 5732:/*EOF*/
        3:        3: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        3:        3: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
    #####:    #####: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
    #####:    #####: 5740:/*EOF*/
    #####:    #####: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
    #####:    #####: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
    #####:    #####: 5746:/*EOF*/
    #####:    #####: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
    #####:    #####: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
    #####:    #####: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
        -:        -: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
    #####:    #####: 5760:/*EOF*/
    #####:    #####: 5761:/*EOF*/
    #####:    #####: 5762:/*EOF*/
    #####:    #####: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
    #####:    #####: 5766:/*EOF*/
    #####:    #####: 5767:/*EOF*/
    #####:    #####: 5768:/*EOF*/
        -:        -: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
    #####:    #####: 5771:/*EOF*/
    #####:    #####: 5772:/*EOF*/
    #####:    #####: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
    #####:    #####: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
    #####:    #####: 5778:/*EOF*/
    #####:    #####: 5779:/*EOF*/
    #####:    #####: 5780:/*EOF*/
    #####:    #####: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
    #####:    #####: 5783:/*EOF*/
    #####:    #####: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
        -:        -: 5787:/*EOF*/
    #####:    #####: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
    #####:    #####: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
    #####:    #####: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
    #####:    #####: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        3:        3: 5798:/*EOF*/
    #####:    #####: 5799:/*EOF*/
    #####:    #####: 5800:/*EOF*/
    #####:    #####: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
    #####:    #####: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
    #####:    #####: 5806:/*EOF*/
    #####:    #####: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
    #####:    #####: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        3:        3: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        3:        3: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        3:        3: 5822:/*EOF*/
        3:        3: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        3:        3: 5825:/*EOF*/
        3:        3: 5826:/*EOF*/
    #####:    #####: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        3:        3: 5829:/*EOF*/
        3:        3: 5830:/*EOF*/
        3:        3: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
        -:        -: 5835:/*EOF*/
        3:        3: 5836:/*EOF*/
        5:        5: 5837:/*EOF*/
        2:        2: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
        -:        -: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        2:        2: 5843:/*EOF*/
    #####:    #####: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
    #####:    #####: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        2:        2: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        3:        3: 5853:/*EOF*/
        3:        3: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        3:        3: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        3:        3: 5858:/*EOF*/
        3:        3: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        3:        3: 5861:/*EOF*/
    #####:    #####: 5862:/*EOF*/
    #####:    #####: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
    #####:    #####: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
        3:        3: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        2:        2: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        2:        2: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        2:        2: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
        -:        -: 5883:/*EOF*/
        2:        2: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        2:        2: 5886:/*EOF*/
        2:        2: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        2:        2: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        2:        2: 5902:/*EOF*/
    #####:    #####: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
    #####:    #####: 5905:/*EOF*/
    #####:    #####: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
    #####:    #####: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
    #####:    #####: 5912:/*EOF*/
        -:        -: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
    #####:    #####: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
    #####:    #####: 5918:/*EOF*/
    #####:    #####: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        2:        2: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
    #####:    #####: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        2:        2: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
    #####:    #####: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
    #####:    #####: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
    #####:    #####: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        2:        2: 5954:/*EOF*/
        2:        2: 5955:/*EOF*/
        2:        2: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
    #####:    #####: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
    #####:    #####: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
    #####:    #####: 5971:/*EOF*/
    #####:    #####: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
    #####:    #####: 5975:/*EOF*/
    #####:    #####: 5976:/*EOF*/
    #####:    #####: 5977:/*EOF*/
    #####:    #####: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
    #####:    #####: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
    #####:    #####: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
    #####:    #####: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
    #####:    #####: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
    #####:    #####: 6001:/*EOF*/
    #####:    #####: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
    #####:    #####: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
    #####:    #####: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
    #####:    #####: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
    #####:    #####: 6013:/*EOF*/
    #####:    #####: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
    #####:    #####: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
    #####:    #####: 6020:/*EOF*/
    #####:    #####: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
    #####:    #####: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
    #####:    #####: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
    #####:    #####: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        2:        2: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        3:        3: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        3:        3: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
        3:        3: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
        3:        3: 6057:/*EOF*/
    #####:    #####: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
    #####:    #####: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        3:        3: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        3:        3: 6066:/*EOF*/
        3:        3: 6067:/*EOF*/
        3:        3: 6068:/*EOF*/
        3:        3: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        3:        3: 6072:/*EOF*/
    #####:    #####: 6073:/*EOF*/
    #####:    #####: 6074:/*EOF*/
    #####:    #####: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        3:        3: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
        3:        3: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
    #####:    #####: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
    #####:    #####: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
    #####:    #####: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
    #####:    #####: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
    #####:    #####: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
    #####:    #####: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
    #####:    #####: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
    #####:    #####: 6120:/*EOF*/
    #####:    #####: 6121:/*EOF*/
    #####:    #####: 6122:/*EOF*/
        -:        -: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
    #####:    #####: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
    #####:    #####: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
    #####:    #####: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
    #####:    #####: 6137:/*EOF*/
    #####:    #####: 6138:/*EOF*/
    #####:    #####: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        -:        -: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
    #####:    #####: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
    #####:    #####: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
    #####:    #####: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
    #####:    #####: 6160:/*EOF*/
    #####:    #####: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
    #####:    #####: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
    #####:    #####: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
    #####:    #####: 6172:/*EOF*/
    #####:    #####: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
    #####:    #####: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
    #####:    #####: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
    #####:    #####: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
    #####:    #####: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
    #####:    #####: 6195:/*EOF*/
    #####:    #####: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
    #####:    #####: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
    #####:    #####: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
    #####:    #####: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
    #####:    #####: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
        -:        -: 6207:/*EOF*/
    #####:    #####: 6208:/*EOF*/
    #####:    #####: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
    #####:    #####: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
    #####:    #####: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
    #####:    #####: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
    #####:    #####: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
    #####:    #####: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
    #####:    #####: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
    #####:    #####: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
    #####:    #####: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
    #####:    #####: 6241:/*EOF*/
    #####:    #####: 6242:/*EOF*/
    #####:    #####: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
    #####:    #####: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
    #####:    #####: 6250:/*EOF*/
    #####:    #####: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
    #####:    #####: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
    #####:    #####: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
    #####:    #####: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
    #####:    #####: 6263:/*EOF*/
    #####:    #####: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
    #####:    #####: 6267:/*EOF*/
    #####:    #####: 6268:/*EOF*/
    #####:    #####: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
    #####:    #####: 6273:/*EOF*/
    #####:    #####: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
    #####:    #####: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        -:        -: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
    #####:    #####: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
    #####:    #####: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
    #####:    #####: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
        -:        -: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
    #####:    #####: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
    #####:    #####: 6298:/*EOF*/
    #####:    #####: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
    #####:    #####: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
    #####:    #####: 6305:/*EOF*/
    #####:    #####: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
    #####:    #####: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
    #####:    #####: 6313:/*EOF*/
    #####:    #####: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
    #####:    #####: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
    #####:    #####: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        -:        -: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
    #####:    #####: 6323:/*EOF*/
    #####:    #####: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
    #####:    #####: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
    #####:    #####: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
    #####:    #####: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
    #####:    #####: 6339:/*EOF*/
    #####:    #####: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
    #####:    #####: 6342:/*EOF*/
    #####:    #####: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
    #####:    #####: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
    #####:    #####: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
    #####:    #####: 6356:/*EOF*/
    #####:    #####: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
    #####:    #####: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
    #####:    #####: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
    #####:    #####: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
    #####:    #####: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
    #####:    #####: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
    #####:    #####: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
    #####:    #####: 6379:/*EOF*/
    #####:    #####: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
    #####:    #####: 6382:/*EOF*/
    #####:    #####: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
    #####:    #####: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
    #####:    #####: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
    #####:    #####: 6393:/*EOF*/
    #####:    #####: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
    #####:    #####: 6397:/*EOF*/
    #####:    #####: 6398:/*EOF*/
    #####:    #####: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
    #####:    #####: 6401:/*EOF*/
    #####:    #####: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
    #####:    #####: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
    #####:    #####: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
    #####:    #####: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
    #####:    #####: 6428:/*EOF*/
    #####:    #####: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
    #####:    #####: 6431:/*EOF*/
    #####:    #####: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
    #####:    #####: 6436:/*EOF*/
    #####:    #####: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
    #####:    #####: 6439:/*EOF*/
    #####:    #####: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
    #####:    #####: 6446:/*EOF*/
    #####:    #####: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
    #####:    #####: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
    #####:    #####: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
    #####:    #####: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
    #####:    #####: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
    #####:    #####: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
    #####:    #####: 6464:/*EOF*/
    #####:    #####: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
    #####:    #####: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
    #####:    #####: 6469:/*EOF*/
    #####:    #####: 6470:/*EOF*/
        -:        -: 6471:/*EOF*/
    #####:    #####: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
    #####:    #####: 6476:/*EOF*/
    #####:    #####: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
    #####:    #####: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
    #####:    #####: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
    #####:    #####: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        2:        3: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        2:        3: 6497:/*EOF*/
        -:        -: 6498:/*EOF*/
        2:        3: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        2:        3: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        2:        3: 6503:/*EOF*/
        2:        3: 6504:/*EOF*/
    #####:    #####: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
    #####:    #####: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        2:        3: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        2:        3: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        2:        3: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        2:        3: 6521:/*EOF*/
        2:        3: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        2:        3: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        2:        3: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        2:        3: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        2:        3: 6536:/*EOF*/
        2:        2: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        2:        3: 6539:/*EOF*/
        2:        2: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        2:        3: 6542:/*EOF*/
        2:        3: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        2:        3: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        2:        3: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        2:        3: 6553:/*EOF*/
        2:        3: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        2:        3: 6556:/*EOF*/
        2:        2: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        2:        3: 6559:/*EOF*/
        2:        3: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        2:        3: 6562:/*EOF*/
        2:        2: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        2:        3: 6565:/*EOF*/
    #####:        1: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        2:        3: 6568:/*EOF*/
        2:        2: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        2:        3: 6572:/*EOF*/
        2:        3: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        2:        3: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
    #####:    #####: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
    #####:    #####: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
    #####:    #####: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
    #####:    #####: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        8:        8: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        8:        8: 6626:/*EOF*/
        8:        8: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
    #####:    #####: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
    #####:    #####: 6641:/*EOF*/
    #####:    #####: 6642:/*EOF*/
    #####:    #####: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
    #####:    #####: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
    #####:    #####: 6647:/*EOF*/
    #####:    #####: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
    #####:    #####: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
    #####:    #####: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
    #####:    #####: 6659:/*EOF*/
    #####:    #####: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
    #####:    #####: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
        -:        -: 6666:/*EOF*/
    #####:    #####: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
    #####:    #####: 6688:/*EOF*/
    #####:    #####: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
    #####:    #####: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
    #####:    #####: 6708:/*EOF*/
    #####:    #####: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
        -:        -: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
    #####:    #####: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
        -:        -: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
    #####:    #####: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
    #####:    #####: 6756:/*EOF*/
    #####:    #####: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
    #####:    #####: 6768:/*EOF*/
    #####:    #####: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
    #####:    #####: 6771:/*EOF*/
    #####:    #####: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
    #####:    #####: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
        -:        -: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
    #####:    #####: 6792:/*EOF*/
    #####:    #####: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
    #####:    #####: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
    #####:    #####: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
    #####:    #####: 6814:/*EOF*/
    #####:    #####: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
    #####:    #####: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
    #####:    #####: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
    #####:    #####: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
    #####:    #####: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
    #####:    #####: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
    #####:    #####: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
    #####:    #####: 6844:/*EOF*/
    #####:    #####: 6845:/*EOF*/
    #####:    #####: 6846:/*EOF*/
    #####:    #####: 6847:/*EOF*/
    #####:    #####: 6848:/*EOF*/
    #####:    #####: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
    #####:    #####: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
    #####:    #####: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
    #####:    #####: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        -:        -: 6864:/*EOF*/
    #####:    #####: 6865:/*EOF*/
    #####:    #####: 6866:/*EOF*/
    #####:    #####: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
    #####:    #####: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
    #####:    #####: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
    #####:    #####: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
    #####:    #####: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
    #####:    #####: 6890:/*EOF*/
    #####:    #####: 6891:/*EOF*/
    #####:    #####: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
    #####:    #####: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
        -:        -: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
    #####:    #####: 6901:/*EOF*/
    #####:    #####: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
    #####:    #####: 6904:/*EOF*/
    #####:    #####: 6905:/*EOF*/
    #####:    #####: 6906:/*EOF*/
    #####:    #####: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
    #####:    #####: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
    #####:    #####: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
    #####:    #####: 6915:/*EOF*/
    #####:    #####: 6916:/*EOF*/
    #####:    #####: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
    #####:    #####: 6920:/*EOF*/
    #####:    #####: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
    #####:    #####: 6923:/*EOF*/
    #####:    #####: 6924:/*EOF*/
    #####:    #####: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
    #####:    #####: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
    #####:    #####: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
    #####:    #####: 6935:/*EOF*/
    #####:    #####: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
    #####:    #####: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
    #####:    #####: 6942:/*EOF*/
    #####:    #####: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
    #####:    #####: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
    #####:    #####: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
    #####:    #####: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
    #####:    #####: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
    #####:    #####: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
    #####:    #####: 6960:/*EOF*/
    #####:    #####: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
    #####:    #####: 6964:/*EOF*/
    #####:    #####: 6965:/*EOF*/
    #####:    #####: 6966:/*EOF*/
    #####:    #####: 6967:/*EOF*/
    #####:    #####: 6968:/*EOF*/
    #####:    #####: 6969:/*EOF*/
    #####:    #####: 6970:/*EOF*/
    #####:    #####: 6971:/*EOF*/
    #####:    #####: 6972:/*EOF*/
    #####:    #####: 6973:/*EOF*/
    #####:    #####: 6974:/*EOF*/
    #####:    #####: 6975:/*EOF*/
    #####:    #####: 6976:/*EOF*/
    #####:    #####: 6977:/*EOF*/
    #####:    #####: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
    #####:    #####: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
    #####:    #####: 6982:/*EOF*/
    #####:    #####: 6983:/*EOF*/
    #####:    #####: 6984:/*EOF*/
    #####:    #####: 6985:/*EOF*/
    #####:    #####: 6986:/*EOF*/
    #####:    #####: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
    #####:    #####: 6990:/*EOF*/
    #####:    #####: 6991:/*EOF*/
    #####:    #####: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
    #####:    #####: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
    #####:    #####: 7001:/*EOF*/
    #####:    #####: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
    #####:    #####: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
    #####:    #####: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
    #####:    #####: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
    #####:    #####: 7012:/*EOF*/
    #####:    #####: 7013:/*EOF*/
    #####:    #####: 7014:/*EOF*/
    #####:    #####: 7015:/*EOF*/
    #####:    #####: 7016:/*EOF*/
    #####:    #####: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
    #####:    #####: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
    #####:    #####: 7023:/*EOF*/
    #####:    #####: 7024:/*EOF*/
    #####:    #####: 7025:/*EOF*/
    #####:    #####: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
    #####:    #####: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
    #####:    #####: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
    #####:    #####: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
    #####:    #####: 7035:/*EOF*/
    #####:    #####: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
    #####:    #####: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
    #####:    #####: 7044:/*EOF*/
    #####:    #####: 7045:/*EOF*/
    #####:    #####: 7046:/*EOF*/
    #####:    #####: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
    #####:    #####: 7049:/*EOF*/
    #####:    #####: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
    #####:    #####: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
    #####:    #####: 7054:/*EOF*/
    #####:    #####: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
    #####:    #####: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
    #####:    #####: 7059:/*EOF*/
    #####:    #####: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
        -:        -: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
    #####:    #####: 7064:/*EOF*/
    #####:    #####: 7065:/*EOF*/
    #####:    #####: 7066:/*EOF*/
    #####:    #####: 7067:/*EOF*/
    #####:    #####: 7068:/*EOF*/
    #####:    #####: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
        -:        -: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
    #####:    #####: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
    #####:    #####: 7083:/*EOF*/
    #####:    #####: 7084:/*EOF*/
    #####:    #####: 7085:/*EOF*/
    #####:    #####: 7086:/*EOF*/
    #####:    #####: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
    #####:    #####: 7090:/*EOF*/
    #####:    #####: 7091:/*EOF*/
    #####:    #####: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
    #####:    #####: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
    #####:    #####: 7103:/*EOF*/
    #####:    #####: 7104:/*EOF*/
    #####:    #####: 7105:/*EOF*/
    #####:    #####: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
    #####:    #####: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
    #####:    #####: 7112:/*EOF*/
    #####:    #####: 7113:/*EOF*/
    #####:    #####: 7114:/*EOF*/
    #####:    #####: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
        -:        -: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
    #####:    #####: 7120:/*EOF*/
    #####:    #####: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
    #####:    #####: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
    #####:    #####: 7131:/*EOF*/
    #####:    #####: 7132:/*EOF*/
    #####:    #####: 7133:/*EOF*/
    #####:    #####: 7134:/*EOF*/
    #####:    #####: 7135:/*EOF*/
    #####:    #####: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
    #####:    #####: 7138:/*EOF*/
    #####:    #####: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
    #####:    #####: 7145:/*EOF*/
    #####:    #####: 7146:/*EOF*/
    #####:    #####: 7147:/*EOF*/
    #####:    #####: 7148:/*EOF*/
    #####:    #####: 7149:/*EOF*/
    #####:    #####: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
    #####:    #####: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
        -:        -: 7156:/*EOF*/
    #####:    #####: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
    #####:    #####: 7159:/*EOF*/
    #####:    #####: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
    #####:    #####: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
    #####:    #####: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
    #####:    #####: 7170:/*EOF*/
    #####:    #####: 7171:/*EOF*/
    #####:    #####: 7172:/*EOF*/
    #####:    #####: 7173:/*EOF*/
    #####:    #####: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
    #####:    #####: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
    #####:    #####: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
    #####:    #####: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
    #####:    #####: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
    #####:    #####: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
    #####:    #####: 7202:/*EOF*/
    #####:    #####: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
    #####:    #####: 7205:/*EOF*/
    #####:    #####: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
    #####:    #####: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
    #####:    #####: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
    #####:    #####: 7213:/*EOF*/
    #####:    #####: 7214:/*EOF*/
    #####:    #####: 7215:/*EOF*/
    #####:    #####: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
    #####:    #####: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        1:        1: 7232:/*EOF*/
        1:        1: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        1:        1: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        4:        4: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        4:        4: 7239:/*EOF*/
        1:        1: 7240:/*EOF*/
        1:        1: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        3:        3: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        1:        1: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        1:        1: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
    #####:    #####: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
    #####:    #####: 7260:/*EOF*/
    #####:    #####: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
    #####:    #####: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
    #####:    #####: 7266:/*EOF*/
    #####:    #####: 7267:/*EOF*/
    #####:    #####: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
    #####:    #####: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
    #####:    #####: 7274:/*EOF*/
    #####:    #####: 7275:/*EOF*/
    #####:    #####: 7276:/*EOF*/
    #####:    #####: 7277:/*EOF*/
    #####:    #####: 7278:/*EOF*/
    #####:    #####: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
    #####:    #####: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
    #####:    #####: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
    #####:    #####: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
    #####:    #####: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
        -:        -: 7303:/*EOF*/
        -:        -: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
        -:        -: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
        -:        -: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
    #####:    #####: 7314:/*EOF*/
    #####:    #####: 7315:/*EOF*/
    #####:    #####: 7316:/*EOF*/
    #####:    #####: 7317:/*EOF*/
    #####:    #####: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
    #####:    #####: 7320:/*EOF*/
    #####:    #####: 7321:/*EOF*/
    #####:    #####: 7322:/*EOF*/
    #####:    #####: 7323:/*EOF*/
    #####:    #####: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
    #####:    #####: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
    #####:    #####: 7328:/*EOF*/
    #####:    #####: 7329:/*EOF*/
    #####:    #####: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
    #####:    #####: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
        -:        -: 7335:/*EOF*/
    #####:    #####: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
    #####:    #####: 7338:/*EOF*/
    #####:    #####: 7339:/*EOF*/
    #####:    #####: 7340:/*EOF*/
    #####:    #####: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
    #####:    #####: 7343:/*EOF*/
    #####:    #####: 7344:/*EOF*/
    #####:    #####: 7345:/*EOF*/
    #####:    #####: 7346:/*EOF*/
    #####:    #####: 7347:/*EOF*/
    #####:    #####: 7348:/*EOF*/
    #####:    #####: 7349:/*EOF*/
    #####:    #####: 7350:/*EOF*/
    #####:    #####: 7351:/*EOF*/
    #####:    #####: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
    #####:    #####: 7354:/*EOF*/
    #####:    #####: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
    #####:    #####: 7359:/*EOF*/
    #####:    #####: 7360:/*EOF*/
    #####:    #####: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
        -:        -: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
    #####:    #####: 7368:/*EOF*/
        -:        -: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
    #####:    #####: 7375:/*EOF*/
    #####:    #####: 7376:/*EOF*/
    #####:    #####: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
    #####:    #####: 7379:/*EOF*/
    #####:    #####: 7380:/*EOF*/
        -:        -: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
        -:        -: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
    #####:    #####: 7389:/*EOF*/
    #####:    #####: 7390:/*EOF*/
    #####:    #####: 7391:/*EOF*/
    #####:    #####: 7392:/*EOF*/
    #####:    #####: 7393:/*EOF*/
    #####:    #####: 7394:/*EOF*/
    #####:    #####: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
    #####:    #####: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
    #####:    #####: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
    #####:    #####: 7402:/*EOF*/
    #####:    #####: 7403:/*EOF*/
    #####:    #####: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
    #####:    #####: 7407:/*EOF*/
    #####:    #####: 7408:/*EOF*/
    #####:    #####: 7409:/*EOF*/
    #####:    #####: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
        -:        -: 7412:/*EOF*/
    #####:    #####: 7413:/*EOF*/
    #####:    #####: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
        -:        -: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
    #####:    #####: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
    #####:    #####: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
    #####:    #####: 7426:/*EOF*/
    #####:    #####: 7427:/*EOF*/
    #####:    #####: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
    #####:    #####: 7437:/*EOF*/
    #####:    #####: 7438:/*EOF*/
    #####:    #####: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
    #####:    #####: 7444:/*EOF*/
    #####:    #####: 7445:/*EOF*/
        -:        -: 7446:/*EOF*/
    #####:    #####: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
    #####:    #####: 7452:/*EOF*/
    #####:    #####: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
    #####:    #####: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
        -:        -: 7458:/*EOF*/
    #####:    #####: 7459:/*EOF*/
    #####:    #####: 7460:/*EOF*/
    #####:    #####: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
    #####:    #####: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
    #####:    #####: 7470:/*EOF*/
    #####:    #####: 7471:/*EOF*/
    #####:    #####: 7472:/*EOF*/
        -:        -: 7473:/*EOF*/
    #####:    #####: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
    #####:    #####: 7476:/*EOF*/
        -:        -: 7477:/*EOF*/
    #####:    #####: 7478:/*EOF*/
    #####:    #####: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
        -:        -: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
    #####:    #####: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
        -:        -: 7489:/*EOF*/
        -:        -: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
        -:        -: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
        -:        -: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
    #####:    #####: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
    #####:    #####: 7500:/*EOF*/
    #####:    #####: 7501:/*EOF*/
        -:        -: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
        -:        -: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
        -:        -: 7508:/*EOF*/
    #####:    #####: 7509:/*EOF*/
    #####:    #####: 7510:/*EOF*/
    #####:    #####: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
    #####:    #####: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
    #####:    #####: 7517:/*EOF*/
    #####:    #####: 7518:/*EOF*/
        -:        -: 7519:/*EOF*/
        -:        -: 7520:/*EOF*/
        -:        -: 7521:/*EOF*/
        -:        -: 7522:/*EOF*/
        -:        -: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
        -:        -: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
        -:        -: 7527:/*EOF*/
    #####:    #####: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
    #####:    #####: 7530:/*EOF*/
    #####:    #####: 7531:/*EOF*/
    #####:    #####: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
    #####:    #####: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
    #####:    #####: 7537:/*EOF*/
        -:        -: 7538:/*EOF*/
    #####:    #####: 7539:/*EOF*/
    #####:    #####: 7540:/*EOF*/
    #####:    #####: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
        -:        -: 7543:/*EOF*/
    #####:    #####: 7544:/*EOF*/
        -:        -: 7545:/*EOF*/
    #####:    #####: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
    #####:    #####: 7548:/*EOF*/
    #####:    #####: 7549:/*EOF*/
    #####:    #####: 7550:/*EOF*/
    #####:    #####: 7551:/*EOF*/
    #####:    #####: 7552:/*EOF*/
    #####:    #####: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
    #####:    #####: 7555:/*EOF*/
        -:        -: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
    #####:    #####: 7558:/*EOF*/
        -:        -: 7559:/*EOF*/
    #####:    #####: 7560:/*EOF*/
    #####:    #####: 7561:/*EOF*/
    #####:    #####: 7562:/*EOF*/
        -:        -: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
    #####:    #####: 7565:/*EOF*/
        -:        -: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
    #####:    #####: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
        -:        -: 7570:/*EOF*/
    #####:    #####: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
        -:        -: 7573:/*EOF*/
    #####:    #####: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
        -:        -: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
    #####:    #####: 7578:/*EOF*/
    #####:    #####: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
        -:        -: 7581:/*EOF*/
    #####:    #####: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
    #####:    #####: 7586:/*EOF*/
        -:        -: 7587:/*EOF*/
        -:        -: 7588:/*EOF*/
        -:        -: 7589:/*EOF*/
    #####:    #####: 7590:/*EOF*/
    #####:    #####: 7591:/*EOF*/
    #####:    #####: 7592:/*EOF*/
        -:        -: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
    #####:    #####: 7595:/*EOF*/
        -:        -: 7596:/*EOF*/
    #####:    #####: 7597:/*EOF*/
    #####:    #####: 7598:/*EOF*/
    #####:    #####: 7599:/*EOF*/
    #####:    #####: 7600:/*EOF*/
    #####:    #####: 7601:/*EOF*/
    #####:    #####: 7602:/*EOF*/
    #####:    #####: 7603:/*EOF*/
    #####:    #####: 7604:/*EOF*/
    #####:    #####: 7605:/*EOF*/
    #####:    #####: 7606:/*EOF*/
    #####:    #####: 7607:/*EOF*/
    #####:    #####: 7608:/*EOF*/
    #####:    #####: 7609:/*EOF*/
    #####:    #####: 7610:/*EOF*/
    #####:    #####: 7611:/*EOF*/
    #####:    #####: 7612:/*EOF*/
    #####:    #####: 7613:/*EOF*/
    #####:    #####: 7614:/*EOF*/
    #####:    #####: 7615:/*EOF*/
    #####:    #####: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
        -:        -: 7619:/*EOF*/
        -:        -: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
        -:        -: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
        -:        -: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
        -:        -: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
    #####:    #####: 7631:/*EOF*/
    #####:    #####: 7632:/*EOF*/
    #####:    #####: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
        -:        -: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
    #####:    #####: 7637:/*EOF*/
        -:        -: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
        -:        -: 7641:/*EOF*/
    #####:    #####: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
    #####:    #####: 7647:/*EOF*/
        -:        -: 7648:/*EOF*/
    #####:    #####: 7649:/*EOF*/
        -:        -: 7650:/*EOF*/
    #####:    #####: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
    #####:    #####: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
    #####:    #####: 7655:/*EOF*/
    #####:    #####: 7656:/*EOF*/
    #####:    #####: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
    #####:    #####: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
        -:        -: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
    #####:    #####: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
        -:        -: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
        -:        -: 7673:/*EOF*/
        -:        -: 7674:/*EOF*/
    #####:    #####: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
    #####:    #####: 7677:/*EOF*/
    #####:    #####: 7678:/*EOF*/
    #####:    #####: 7679:/*EOF*/
    #####:    #####: 7680:/*EOF*/
    #####:    #####: 7681:/*EOF*/
        -:        -: 7682:/*EOF*/
    #####:    #####: 7683:/*EOF*/
    #####:    #####: 7684:/*EOF*/
    #####:    #####: 7685:/*EOF*/
    #####:    #####: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
    #####:    #####: 7688:/*EOF*/
        -:        -: 7689:/*EOF*/
        -:        -: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
        -:        -: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
        -:        -: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
        -:        -: 7698:/*EOF*/
    #####:    #####: 7699:/*EOF*/
    #####:    #####: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
        -:        -: 7705:/*EOF*/
        -:        -: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
    #####:    #####: 7709:/*EOF*/
    #####:    #####: 7710:/*EOF*/
    #####:    #####: 7711:/*EOF*/
    #####:    #####: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
        -:        -: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
    #####:    #####: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
    #####:    #####: 7721:/*EOF*/
        -:        -: 7722:/*EOF*/
    #####:    #####: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
        -:        -: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
        -:        -: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
        -:        -: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
        -:        -: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
        -:        -: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
        -:        -: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
        -:        -: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
        -:        -: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
    #####:    #####: 7748:/*EOF*/
    #####:    #####: 7749:/*EOF*/
    #####:    #####: 7750:/*EOF*/
    #####:    #####: 7751:/*EOF*/
    #####:    #####: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
    #####:    #####: 7754:/*EOF*/
    #####:    #####: 7755:/*EOF*/
    #####:    #####: 7756:/*EOF*/
        -:        -: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
    #####:    #####: 7759:/*EOF*/
    #####:    #####: 7760:/*EOF*/
    #####:    #####: 7761:/*EOF*/
    #####:    #####: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
    #####:    #####: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
        -:        -: 7767:/*EOF*/
    #####:    #####: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
    #####:    #####: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
        -:        -: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
        -:        -: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
    #####:    #####: 7779:/*EOF*/
    #####:    #####: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
    #####:    #####: 7783:/*EOF*/
        -:        -: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
        -:        -: 7787:/*EOF*/
    #####:    #####: 7788:/*EOF*/
        -:        -: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
    #####:    #####: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
    #####:    #####: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
    #####:    #####: 7798:/*EOF*/
    #####:    #####: 7799:/*EOF*/
        -:        -: 7800:/*EOF*/
    #####:    #####: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
    #####:    #####: 7803:/*EOF*/
    #####:    #####: 7804:/*EOF*/
    #####:    #####: 7805:/*EOF*/
    #####:    #####: 7806:/*EOF*/
    #####:    #####: 7807:/*EOF*/
    #####:    #####: 7808:/*EOF*/
    #####:    #####: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
    #####:    #####: 7811:/*EOF*/
    #####:    #####: 7812:/*EOF*/
    #####:    #####: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
        -:        -: 7815:/*EOF*/
    #####:    #####: 7816:/*EOF*/
    #####:    #####: 7817:/*EOF*/
    #####:    #####: 7818:/*EOF*/
    #####:    #####: 7819:/*EOF*/
    #####:    #####: 7820:/*EOF*/
        -:        -: 7821:/*EOF*/
    #####:    #####: 7822:/*EOF*/
    #####:    #####: 7823:/*EOF*/
    #####:    #####: 7824:/*EOF*/
    #####:    #####: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
    #####:    #####: 7827:/*EOF*/
    #####:    #####: 7828:/*EOF*/
    #####:    #####: 7829:/*EOF*/
        -:        -: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
    #####:    #####: 7832:/*EOF*/
    #####:    #####: 7833:/*EOF*/
    #####:    #####: 7834:/*EOF*/
    #####:    #####: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
    #####:    #####: 7838:/*EOF*/
    #####:    #####: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
    #####:    #####: 7845:/*EOF*/
        -:        -: 7846:/*EOF*/
    #####:    #####: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
    #####:    #####: 7849:/*EOF*/
    #####:    #####: 7850:/*EOF*/
    #####:    #####: 7851:/*EOF*/
    #####:    #####: 7852:/*EOF*/
    #####:    #####: 7853:/*EOF*/
    #####:    #####: 7854:/*EOF*/
    #####:    #####: 7855:/*EOF*/
    #####:    #####: 7856:/*EOF*/
    #####:    #####: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
    #####:    #####: 7859:/*EOF*/
    #####:    #####: 7860:/*EOF*/
        -:        -: 7861:/*EOF*/
    #####:    #####: 7862:/*EOF*/
    #####:    #####: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
    #####:    #####: 7865:/*EOF*/
    #####:    #####: 7866:/*EOF*/
    #####:    #####: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
    #####:    #####: 7869:/*EOF*/
        -:        -: 7870:/*EOF*/
    #####:    #####: 7871:/*EOF*/
    #####:    #####: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
    #####:    #####: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
    #####:    #####: 7877:/*EOF*/
    #####:    #####: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
    #####:    #####: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
    #####:    #####: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
    #####:    #####: 7885:/*EOF*/
        -:        -: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
    #####:    #####: 7888:/*EOF*/
    #####:    #####: 7889:/*EOF*/
        -:        -: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
    #####:    #####: 7892:/*EOF*/
        -:        -: 7893:/*EOF*/
    #####:    #####: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
        -:        -: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
    #####:    #####: 7899:/*EOF*/
    #####:    #####: 7900:/*EOF*/
        -:        -: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
    #####:    #####: 7903:/*EOF*/
    #####:    #####: 7904:/*EOF*/
    #####:    #####: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
    #####:    #####: 7907:/*EOF*/
        -:        -: 7908:/*EOF*/
    #####:    #####: 7909:/*EOF*/
    #####:    #####: 7910:/*EOF*/
        -:        -: 7911:/*EOF*/
    #####:    #####: 7912:/*EOF*/
        -:        -: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
    #####:    #####: 7915:/*EOF*/
    #####:    #####: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
    #####:    #####: 7922:/*EOF*/
    #####:    #####: 7923:/*EOF*/
    #####:    #####: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
    #####:    #####: 7927:/*EOF*/
    #####:    #####: 7928:/*EOF*/
    #####:    #####: 7929:/*EOF*/
    #####:    #####: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
        -:        -: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
        -:        -: 7939:/*EOF*/
        -:        -: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
    #####:    #####: 7943:/*EOF*/
    #####:    #####: 7944:/*EOF*/
        -:        -: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
    #####:    #####: 7947:/*EOF*/
        -:        -: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
    #####:    #####: 7952:/*EOF*/
    #####:    #####: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
        -:        -: 7955:/*EOF*/
    #####:    #####: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
        -:        -: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
        -:        -: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
        -:        -: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
        -:        -: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
        -:        -: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
        -:        -: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
        -:        -: 7977:/*EOF*/
    #####:    #####: 7978:/*EOF*/
    #####:    #####: 7979:/*EOF*/
    #####:    #####: 7980:/*EOF*/
    #####:    #####: 7981:/*EOF*/
    #####:    #####: 7982:/*EOF*/
    #####:    #####: 7983:/*EOF*/
    #####:    #####: 7984:/*EOF*/
        -:        -: 7985:/*EOF*/
        -:        -: 7986:/*EOF*/
    #####:    #####: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
    #####:    #####: 7989:/*EOF*/
    #####:    #####: 7990:/*EOF*/
        -:        -: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
        -:        -: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
    #####:    #####: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
    #####:    #####: 8001:/*EOF*/
        -:        -: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
    #####:    #####: 8004:/*EOF*/
        -:        -: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
    #####:    #####: 8007:/*EOF*/
    #####:    #####: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
        -:        -: 8010:/*EOF*/
    #####:    #####: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
        -:        -: 8017:/*EOF*/
    #####:    #####: 8018:/*EOF*/
    #####:    #####: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
        -:        -: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
    #####:    #####: 8023:/*EOF*/
    #####:    #####: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
        -:        -: 8026:/*EOF*/
    #####:    #####: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
    #####:    #####: 8032:/*EOF*/
    #####:    #####: 8033:/*EOF*/
    #####:    #####: 8034:/*EOF*/
    #####:    #####: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
        -:        -: 8037:/*EOF*/
    #####:    #####: 8038:/*EOF*/
    #####:    #####: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
    #####:    #####: 8041:/*EOF*/
    #####:    #####: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
    #####:    #####: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
    #####:    #####: 8048:/*EOF*/
    #####:    #####: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
        -:        -: 8052:/*EOF*/
    #####:    #####: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
        -:        -: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
        -:        -: 8057:/*EOF*/
    #####:    #####: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
    #####:    #####: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
        -:        -: 8063:/*EOF*/
    #####:    #####: 8064:/*EOF*/
    #####:    #####: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
        -:        -: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
        -:        -: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
    #####:    #####: 8071:/*EOF*/
    #####:    #####: 8072:/*EOF*/
    #####:    #####: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
    #####:    #####: 8076:/*EOF*/
    #####:    #####: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
        -:        -: 8079:/*EOF*/
    #####:    #####: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
        -:        -: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
    #####:    #####: 8085:/*EOF*/
    #####:    #####: 8086:/*EOF*/
    #####:    #####: 8087:/*EOF*/
    #####:    #####: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
    #####:    #####: 8094:/*EOF*/
    #####:    #####: 8095:/*EOF*/
    #####:    #####: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
        -:        -: 8099:/*EOF*/
    #####:    #####: 8100:/*EOF*/
        -:        -: 8101:/*EOF*/
    #####:    #####: 8102:/*EOF*/
    #####:    #####: 8103:/*EOF*/
        -:        -: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
    #####:    #####: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
        -:        -: 8111:/*EOF*/
        -:        -: 8112:/*EOF*/
    #####:    #####: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
        -:        -: 8115:/*EOF*/
    #####:    #####: 8116:/*EOF*/
        -:        -: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
        -:        -: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
        -:        -: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
        -:        -: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
    #####:    #####: 8129:/*EOF*/
        -:        -: 8130:/*EOF*/
    #####:    #####: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
    #####:    #####: 8133:/*EOF*/
    #####:    #####: 8134:/*EOF*/
        -:        -: 8135:/*EOF*/
    #####:    #####: 8136:/*EOF*/
    #####:    #####: 8137:/*EOF*/
    #####:    #####: 8138:/*EOF*/
    #####:    #####: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
    #####:    #####: 8141:/*EOF*/
    #####:    #####: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
    #####:    #####: 8144:/*EOF*/
        -:        -: 8145:/*EOF*/
    #####:    #####: 8146:/*EOF*/
    #####:    #####: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
    #####:    #####: 8150:/*EOF*/
    #####:    #####: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
    #####:    #####: 8153:/*EOF*/
    #####:    #####: 8154:/*EOF*/
    #####:    #####: 8155:/*EOF*/
    #####:    #####: 8156:/*EOF*/
        -:        -: 8157:/*EOF*/
        -:        -: 8158:/*EOF*/
    #####:    #####: 8159:/*EOF*/
    #####:    #####: 8160:/*EOF*/
        -:        -: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
        -:        -: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
        -:        -: 8166:/*EOF*/
    #####:    #####: 8167:/*EOF*/
    #####:    #####: 8168:/*EOF*/
    #####:    #####: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
    #####:    #####: 8172:/*EOF*/
    #####:    #####: 8173:/*EOF*/
        -:        -: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
        -:        -: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
        -:        -: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
        -:        -: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
    #####:    #####: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
    #####:    #####: 8188:/*EOF*/
    #####:    #####: 8189:/*EOF*/
        -:        -: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
    #####:    #####: 8192:/*EOF*/
    #####:    #####: 8193:/*EOF*/
    #####:    #####: 8194:/*EOF*/
        -:        -: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
        -:        -: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
    #####:    #####: 8201:/*EOF*/
    #####:    #####: 8202:/*EOF*/
    #####:    #####: 8203:/*EOF*/
    #####:    #####: 8204:/*EOF*/
    #####:    #####: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
    #####:    #####: 8207:/*EOF*/
    #####:    #####: 8208:/*EOF*/
    #####:    #####: 8209:/*EOF*/
    #####:    #####: 8210:/*EOF*/
        -:        -: 8211:/*EOF*/
    #####:    #####: 8212:/*EOF*/
    #####:    #####: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
    #####:    #####: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
        -:        -: 8219:/*EOF*/
        2:        2: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
        2:        2: 8223:/*EOF*/
        2:        2: 8224:/*EOF*/
        2:        2: 8225:/*EOF*/
        2:        2: 8226:/*EOF*/
        2:        2: 8227:/*EOF*/
        2:        2: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        2:        2: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
      155:      155: 8234:/*EOF*/
      153:      153: 8235:/*EOF*/
        -:        -: 8236:/*EOF*/
      153:      153: 8237:/*EOF*/
      151:      151: 8238:/*EOF*/
        -:        -: 8239:/*EOF*/
        2:        2: 8240:/*EOF*/
        1:        1: 8241:/*EOF*/
        1:        1: 8242:/*EOF*/
    #####:    #####: 8243:/*EOF*/
        1:        1: 8244:/*EOF*/
    #####:    #####: 8245:/*EOF*/
        1:        1: 8246:/*EOF*/
    #####:    #####: 8247:/*EOF*/
        1:        1: 8248:/*EOF*/
    #####:    #####: 8249:/*EOF*/
    #####:    #####: 8250:/*EOF*/
    #####:    #####: 8251:/*EOF*/
    #####:    #####: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
        -:        -: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
        -:        -: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
        -:        -: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
        -:        -: 8267:/*EOF*/
        -:        -: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
        -:        -: 8271:/*EOF*/
        2:        2: 8272:/*EOF*/
        -:        -: 8273:/*EOF*/
    #####:    #####: 8274:/*EOF*/
        2:        2: 8275:/*EOF*/
    #####:    #####: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
    #####:    #####: 8278:/*EOF*/
        2:        2: 8279:/*EOF*/
        -:        -: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
    #####:    #####: 8282:/*EOF*/
        2:        2: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
    #####:    #####: 8286:/*EOF*/
        2:        2: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
        -:        -: 8289:/*EOF*/
    #####:    #####: 8290:/*EOF*/
        2:        2: 8291:/*EOF*/
    #####:    #####: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
    #####:    #####: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
        2:        2: 8297:/*EOF*/
    #####:    #####: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
    #####:    #####: 8300:/*EOF*/
        -:        -: 8301:/*EOF*/
        2:        2: 8302:/*EOF*/
        -:        -: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
        4:        4: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        4:        4: 8312:/*EOF*/
        4:        4: 8313:/*EOF*/
        -:        -: 8314:/*EOF*/
        2:        2: 8315:/*EOF*/
    #####:    #####: 8316:/*EOF*/
        2:        2: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
        2:        2: 8319:/*EOF*/
        2:        2: 8320:/*EOF*/
        1:        1: 8321:/*EOF*/
        -:        -: 8322:/*EOF*/
        2:        2: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
    #####:    #####: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
        -:        -: 8329:/*EOF*/
        -:        -: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        4:        4: 8332:/*EOF*/
        7:        7: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
        -:        -: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
        1:        1: 8338:/*EOF*/
        1:        1: 8339:/*EOF*/
        1:        1: 8340:/*EOF*/
        1:        1: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
        -:        -: 8345:/*EOF*/
    #####:    #####: 8346:/*EOF*/
    #####:    #####: 8347:/*EOF*/
    #####:    #####: 8348:/*EOF*/
    #####:    #####: 8349:/*EOF*/
    #####:    #####: 8350:/*EOF*/
    #####:    #####: 8351:/*EOF*/

src/compiler/glsl/glcpp/glcpp-lex.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.c
        -:        -:    0:Graph:.libs/glcpp-lex.gcno
        -:        -:    0:Data:.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
      609:      629: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
      609:      629: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      609:      629: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
      609:      629: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
      609:      629: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        2:        2: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        2:        2: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        2:        2: 1052:/*EOF*/
        2:        2: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        2:        2: 1055:/*EOF*/
        2:        2: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        2:        2: 1058:/*EOF*/
        2:        2: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        2:        2: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        2:        2: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
     1020:     1062: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
     1020:     1062: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
     1020:     1062: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
     1020:     1062: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
     2798:     2900: 1150:/*EOF*/
     2798:     2900: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
     1705:     1765: 1153:/*EOF*/
     1705:     1765: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
     7431:     7700: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
     1835:     1900: 1158:/*EOF*/
     1835:     1900: 1159:/*EOF*/
      809:      832: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
     2798:     2900: 1162:/*EOF*/
     2798:     2900: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
     2798:     2900: 1165:/*EOF*/
     1020:     1062: 1166:/*EOF*/
     1020:     1062: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
     1022:     1064: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
     1022:     1064: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
     1026:     1068: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        1:        1: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        2:        2: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        6:        6: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        6:        6: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        6:        6: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        2:        2: 1724:/*EOF*/
        2:        2: 1725:/*EOF*/
        2:        2: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        6:        6: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        6:        6: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        4:        4: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        4:        4: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        4:        4: 1792:/*EOF*/
        4:        4: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
    #####:    #####: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        2:        2: 1815:/*EOF*/
        2:        2: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        2:        2: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        2:        2: 1820:/*EOF*/
        2:        2: 1821:/*EOF*/
        2:        2: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
      411:      433: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        6:        6: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        6:        6: 1844:/*EOF*/
        6:        6: 1845:/*EOF*/
        6:        6: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        6:        6: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        6:        6: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        6:        6: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        4:        4: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        2:        2: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        2:        2: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        2:        2: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        2:        2: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        4:        4: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        2:        2: 1987:/*EOF*/
        2:        2: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        4:        4: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        2:        2: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        2:        2: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        2:        2: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        2:        2: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        2:        2: 2184:/*EOF*/
        2:        2: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        2:        2: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
    #####:    #####: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        2:        2: 2196:/*EOF*/
        2:        2: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        2:        2: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        4:        4: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        4:        4: 2209:/*EOF*/
        4:        4: 2210:/*EOF*/
        4:        4: 2211:/*EOF*/
        4:        4: 2212:/*EOF*/
        4:        4: 2213:/*EOF*/
        4:        4: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        2:        2: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        2:        2: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        2:        2: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        2:        2: 2257:/*EOF*/
        2:        2: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        2:        2: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        2:        2: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
    #####:    #####: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
    #####:    #####: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
    #####:    #####: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
    #####:    #####: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
    #####:    #####: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
    #####:    #####: 2347:/*EOF*/
    #####:    #####: 2348:/*EOF*/
    #####:    #####: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
    #####:    #####: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        2:        2: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        2:        2: 2362:/*EOF*/
        2:        2: 2363:/*EOF*/
        2:        2: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
    #####:    #####: 2368:/*EOF*/
    #####:    #####: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        2:        2: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        2:        2: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        2:        2: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        2:        2: 2391:/*EOF*/
        2:        2: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        2:        2: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        2:        2: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        2:        2: 2400:/*EOF*/
        2:        2: 2401:/*EOF*/
        2:        2: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
    #####:    #####: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        2:        2: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        4:        4: 2434:/*EOF*/
        4:        4: 2435:/*EOF*/
        2:        2: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
    #####:    #####: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        2:        2: 2440:/*EOF*/
        2:        2: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        2:        2: 2444:/*EOF*/
        2:        2: 2445:/*EOF*/
        2:        2: 2446:/*EOF*/
        2:        2: 2447:/*EOF*/
        2:        2: 2448:/*EOF*/
        2:        2: 2449:/*EOF*/
        2:        2: 2450:/*EOF*/
        2:        2: 2451:/*EOF*/
        2:        2: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        2:        2: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        2:        2: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        2:        2: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        2:        2: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        2:        2: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        2:        2: 2488:/*EOF*/
        2:        2: 2489:/*EOF*/
        2:        2: 2490:/*EOF*/
    #####:    #####: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
     1764:     1824: 2493:/*EOF*/
     1762:     1822: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        2:        2: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        2:        2: 2498:/*EOF*/
        2:        2: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        2:        2: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        2:        2: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
    #####:    #####: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
    #####:    #####: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
    #####:    #####: 2520:/*EOF*/
    #####:    #####: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
    #####:    #####: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
    #####:    #####: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
    #####:    #####: 2537:/*EOF*/
    #####:    #####: 2538:/*EOF*/
    #####:    #####: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
    #####:    #####: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
    #####:    #####: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
    #####:    #####: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
    #####:    #####: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
    #####:    #####: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
    #####:    #####: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
    #####:    #####: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
    #####:    #####: 2597:/*EOF*/
    #####:    #####: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
    #####:    #####: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
    #####:    #####: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
    #####:    #####: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        4:        4: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        4:        4: 2659:/*EOF*/
        4:        4: 2660:/*EOF*/
        4:        4: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
    #####:    #####: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
    #####:    #####: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
    #####:    #####: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
    #####:    #####: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
    #####:    #####: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
    #####:    #####: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
    #####:    #####: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
    #####:    #####: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
    #####:    #####: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
    #####:    #####: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
    #####:    #####: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
    #####:    #####: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
    #####:    #####: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        2:        2: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        2:        2: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        2:        2: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        2:        2: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        2:        2: 2799:/*EOF*/
    #####:    #####: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        2:        2: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        2:        2: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        2:        2: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        4:        4: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        4:        4: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        4:        4: 2820:/*EOF*/
        4:        4: 2821:/*EOF*/
        4:        4: 2822:/*EOF*/
        4:        4: 2823:/*EOF*/
        4:        4: 2824:/*EOF*/
        4:        4: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        4:        4: 2827:/*EOF*/
        4:        4: 2828:/*EOF*/
        4:        4: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        4:        4: 2836:/*EOF*/
        4:        4: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        4:        4: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        2:        2: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        2:        2: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        6:        6: 2852:/*EOF*/
        2:        2: 2853:/*EOF*/
        2:        2: 2854:/*EOF*/
        2:        2: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        2:        2: 2859:/*EOF*/
        2:        2: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        2:        2: 2863:/*EOF*/
        2:        2: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        2:        2: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        2:        2: 2871:/*EOF*/
        2:        2: 2872:/*EOF*/
        2:        2: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        8:        8: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        8:        8: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        8:        8: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
       10:       10: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
       10:       10: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
       10:       10: 2929:/*EOF*/
       10:       10: 2930:/*EOF*/

src/compiler/glsl/glcpp/glcpp-lex.l.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.l
        -:        -:    0:Graph:.libs/glcpp-lex.gcno
        -:        -:    0:Data:.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      905:      947:  121:/*EOF*/
        -:        -:  122:/*EOF*/
     1297:     1351:  123:/*EOF*/
      392:      404:  124:/*EOF*/
      388:      400:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      905:      947:  130:/*EOF*/
       79:       81:  131:/*EOF*/
      826:      866:  132:/*EOF*/
      411:      423:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      905:      947:  138:/*EOF*/
       79:       81:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      826:      866:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      905:      947:  146:/*EOF*/
      415:      443:  147:/*EOF*/
      117:      123:  148:/*EOF*/
      117:      123:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      298:      320:  151:/*EOF*/
      298:      320:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      490:      504:  155:/*EOF*/
      490:      504:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      609:      629:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      609:      629:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      731:      751:  249:/*EOF*/
      138:      138:  250:/*EOF*/
       16:       16:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       13:       13:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      596:      616:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        1:        1:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       19:       19:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       19:       19:  283:/*EOF*/
       19:       19:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       19:       19:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        2:        2:  292:/*EOF*/
        2:        2:  293:/*EOF*/
        2:        2:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        2:        2:  332:/*EOF*/
        2:        2:  333:/*EOF*/
        2:        2:  334:/*EOF*/
        2:        2:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        1:        1:  339:/*EOF*/
        1:        1:  340:/*EOF*/
        1:        1:  341:/*EOF*/
        1:        1:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        1:        1:  360:/*EOF*/
        1:        1:  361:/*EOF*/
        1:        1:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        3:        3:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        3:        3:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       10:       10:  395:/*EOF*/
       10:       10:  396:/*EOF*/
       10:       10:  397:/*EOF*/
       10:       10:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       20:       20:  422:/*EOF*/
       20:       20:  423:/*EOF*/
       10:       10:  424:/*EOF*/
       10:       10:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       14:       14:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        5:        5:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        1:        1:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        2:        2:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        2:        2:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      153:      157:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       12:       12:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        2:        3:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      200:      207:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        4:        4:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      509:      537:  533:/*EOF*/
      423:      451:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
      392:      414:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
       79:       81:  541:/*EOF*/
       79:       81:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       79:       81:  544:/*EOF*/
        -:        -:  545:/*EOF*/
       79:       81:  546:/*EOF*/
       79:       81:  547:/*EOF*/
       79:       81:  548:/*EOF*/
       79:       81:  549:/*EOF*/
       79:       81:  550:/*EOF*/
       79:       81:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        2:        2:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        2:        2:  557:/*EOF*/
        2:        2:  558:/*EOF*/
        2:        2:  559:/*EOF*/
        2:        2:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        2:        2:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        2:        2:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        2:        2:  588:/*EOF*/
        2:        2:  589:/*EOF*/

src/compiler/glsl/glcpp/glcpp-parse.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.c
        -:        -:    0:Graph:.libs/glcpp-parse.gcno
        -:        -:    0:Data:.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
    #####:    #####: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        4:        4: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        4:        4: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
        4:        4: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        4:        4: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        2:        2: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        2:        2: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        2:        2: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        2:        2: 1536:/*EOF*/
        2:        2: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        2:        2: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        2:        2: 1546:/*EOF*/
        2:        2: 1547:/*EOF*/
        2:        2: 1548:/*EOF*/
        2:        2: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        2:        2: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        2:        2: 1553:/*EOF*/
        2:        2: 1554:/*EOF*/
        2:        2: 1555:/*EOF*/
        2:        2: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        2:        2: 1569:/*EOF*/
        2:        2: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
     1957:     2026: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
     1959:     2028: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
     1959:     2028: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
     1959:     2028: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
     1959:     2028: 1651:/*EOF*/
        2:        2: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
     1957:     2026: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
     1957:     2026: 1665:/*EOF*/
     1957:     2026: 1666:/*EOF*/
     1297:     1344: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
      660:      682: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
      609:      629: 1674:/*EOF*/
      609:      629: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
      660:      682: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        2:        2: 1680:/*EOF*/
        2:        2: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
      658:      680: 1685:/*EOF*/
      658:      680: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
      660:      682: 1691:/*EOF*/
      660:      682: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
      609:      629: 1694:/*EOF*/
      609:      629: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
      609:      629: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
      609:      629: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
      609:      629: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
      609:      629: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
      609:      629: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
      609:      629: 1718:/*EOF*/
      609:      629: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
     1348:     1397: 1726:/*EOF*/
     1348:     1397: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
     1348:     1397: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
     1348:     1397: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
     1348:     1397: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
     1348:     1397: 1750:/*EOF*/
     1348:     1397: 1751:/*EOF*/
     1348:     1397: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
       60:       62: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
       10:       10: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
       19:       19: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        2:        2: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        1:        1: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        1:        1: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        1:        1: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        3:        3: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        2:        2: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
    #####:    #####: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
    #####:    #####: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        2:        2: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
    #####:    #####: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
    #####:    #####: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
       10:       10: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        5:        5: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
       11:       11: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
    #####:    #####: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
       59:       61: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
      376:      392: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
      123:      127: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
       17:       17: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
      176:      183: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        2:        3: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
      117:      123: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
       17:       17: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
       17:       17: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
       26:       27: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
       26:       27: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        8:        9: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        8:        9: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
       14:       15: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        1:        1: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        2:        2: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
    #####:    #####: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        1:        1: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
    #####:    #####: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        2:        3: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        1:        1: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        2:        2: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
    #####:    #####: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
       22:       23: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
       12:       12: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
       15:       15: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
    #####:    #####: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        2:        2: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
      175:      179: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
     1348:     1397: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
     1348:     1397: 2775:/*EOF*/
     1348:     1397: 2776:/*EOF*/
     1348:     1397: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
     1348:     1397: 2779:/*EOF*/
     1348:     1397: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
     1348:     1397: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
     1348:     1397: 2788:/*EOF*/
     1348:     1397: 2789:/*EOF*/
      798:      832: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
      550:      565: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
     1348:     1397: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
    #####:    #####: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
    #####:    #####: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
    #####:    #####: 2819:/*EOF*/
    #####:    #####: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
    #####:    #####: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
    #####:    #####: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
    #####:    #####: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
    #####:    #####: 2833:/*EOF*/
    #####:    #####: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
    #####:    #####: 2838:/*EOF*/
    #####:    #####: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
    #####:    #####: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
    #####:    #####: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
    #####:    #####: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
    #####:    #####: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        2:        2: 2945:/*EOF*/
        2:        2: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
    #####:    #####: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        2:        2: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        2:        2: 2976:/*EOF*/
        2:        2: 2977:/*EOF*/
        8:        8: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        4:        4: 2980:/*EOF*/
        4:        4: 2981:/*EOF*/
        4:        4: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        2:        2: 2985:/*EOF*/
    #####:    #####: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        2:        2: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        2:        2: 2992:/*EOF*/

src/compiler/glsl/glcpp/glcpp-parse.y.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.y
        -:        -:    0:Graph:.libs/glcpp-parse.gcno
        -:        -:    0:Data:.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        2:        2:  163:/*EOF*/
        2:        2:  164:/*EOF*/
        2:        2:  165:/*EOF*/
        2:        2:  166:/*EOF*/
        2:        2:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       60:       62:  211:/*EOF*/
       60:       62:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       10:       10:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       19:       19:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        2:        2:  349:/*EOF*/
        2:        2:  350:/*EOF*/
        2:        2:  351:/*EOF*/
        2:        2:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        1:        1:  355:/*EOF*/
        1:        1:  356:/*EOF*/
        1:        1:  357:/*EOF*/
        1:        1:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        1:        1:  406:/*EOF*/
        2:        2:  407:/*EOF*/
        1:        1:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        1:        1:  414:/*EOF*/
        1:        1:  415:/*EOF*/
        1:        1:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        3:        3:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        2:        2:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        2:        2:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        2:        2:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        2:        2:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
       10:       10:  658:/*EOF*/
       10:       10:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        5:        5:  662:/*EOF*/
        5:        5:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       11:       11:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       59:       61:  686:/*EOF*/
       59:       61:  687:/*EOF*/
       59:       61:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
      376:      392:  691:/*EOF*/
      376:      392:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      123:      127:  698:/*EOF*/
      123:      127:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
       17:       17:  702:/*EOF*/
       17:       17:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
      176:      183:  706:/*EOF*/
      176:      183:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        2:        3:  714:/*EOF*/
        2:        3:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
      117:      123:  718:/*EOF*/
      117:      123:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       17:       17:  724:/*EOF*/
       17:       17:  725:/*EOF*/
       26:       27:  726:/*EOF*/
       26:       27:  727:/*EOF*/
        8:        9:  728:/*EOF*/
        8:        9:  729:/*EOF*/
       14:       15:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        1:        1:  732:/*EOF*/
        2:        2:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        1:        1:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        2:        3:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        1:        1:  743:/*EOF*/
        2:        2:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
       22:       23:  751:/*EOF*/
       12:       12:  752:/*EOF*/
       15:       15:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        2:        2:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
       10:       10:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
       10:       10:  766:/*EOF*/
       10:       10:  767:/*EOF*/
       10:       10:  768:/*EOF*/
        -:        -:  769:/*EOF*/
       10:       10:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
       15:       15:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
       15:       15:  779:/*EOF*/
       15:       15:  780:/*EOF*/
        -:        -:  781:/*EOF*/
       15:       15:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       15:       15:  784:/*EOF*/
       10:       10:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        5:        5:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
       15:       15:  790:/*EOF*/
       15:       15:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
       10:       10:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
       10:       10:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
       25:       25:  822:/*EOF*/
       20:       20:  823:/*EOF*/
        5:        5:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
       10:       10:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
      142:      147:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      142:      147:  946:/*EOF*/
      142:      147:  947:/*EOF*/
      142:      147:  948:/*EOF*/
        -:        -:  949:/*EOF*/
      142:      147:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
      361:      374:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
      361:      374:  958:/*EOF*/
      361:      374:  959:/*EOF*/
      361:      374:  960:/*EOF*/
        -:        -:  961:/*EOF*/
      361:      374:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
      127:      129:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
      127:      129:  970:/*EOF*/
      127:      129:  971:/*EOF*/
      127:      129:  972:/*EOF*/
      127:      129:  973:/*EOF*/
        -:        -:  974:/*EOF*/
      127:      129:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
      503:      521:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
      503:      521:  983:/*EOF*/
      503:      521:  984:/*EOF*/
      503:      521:  985:/*EOF*/
        -:        -:  986:/*EOF*/
      503:      521:  987:/*EOF*/
      127:      129:  988:/*EOF*/
        -:        -:  989:/*EOF*/
      376:      392:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
      503:      521:  993:/*EOF*/
      503:      521:  994:/*EOF*/
      386:      398:  995:/*EOF*/
      503:      521:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       98:      102: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
       98:      102: 1036:/*EOF*/
       98:      102: 1037:/*EOF*/
       98:      102: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
       98:      102: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
      411:      429: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
      411:      429: 1118:/*EOF*/
      157:      164: 1119:/*EOF*/
      157:      164: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
      254:      265: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
      132:      137: 1130:/*EOF*/
      132:      137: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      117:      123: 1133:/*EOF*/
      117:      123: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        1:        1: 1142:/*EOF*/
        1:        1: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        2:        2: 1145:/*EOF*/
        2:        2: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        2:        2: 1163:/*EOF*/
        2:        2: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
       49:       51: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
       49:       51: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
      460:      480: 1313:/*EOF*/
      411:      429: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
       68:       68: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
       68:       68: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
       68:       68: 1331:/*EOF*/
       68:       68: 1332:/*EOF*/
       68:       68: 1333:/*EOF*/
       68:       68: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        2:        2: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        2:        2: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        2:        2: 1344:/*EOF*/
        2:        2: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        2:        2: 1347:/*EOF*/
        2:        2: 1348:/*EOF*/
        2:        2: 1349:/*EOF*/
        2:        2: 1350:/*EOF*/
        2:        2: 1351:/*EOF*/
        2:        2: 1352:/*EOF*/
        2:        2: 1353:/*EOF*/
        2:        2: 1354:/*EOF*/
        2:        2: 1355:/*EOF*/
        2:        2: 1356:/*EOF*/
        2:        2: 1357:/*EOF*/
        2:        2: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        2:        2: 1360:/*EOF*/
        2:        2: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        2:        2: 1363:/*EOF*/
        2:        2: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        2:        2: 1366:/*EOF*/
        2:        2: 1367:/*EOF*/
        2:        2: 1368:/*EOF*/
        2:        2: 1369:/*EOF*/
        2:        2: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        2:        2: 1372:/*EOF*/
        2:        2: 1373:/*EOF*/
        2:        2: 1374:/*EOF*/
        2:        2: 1375:/*EOF*/
        2:        2: 1376:/*EOF*/
        2:        2: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        2:        2: 1379:/*EOF*/
        2:        2: 1380:/*EOF*/
        2:        2: 1381:/*EOF*/
        2:        2: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        2:        2: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        2:        2: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        2:        2: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        2:        2: 1392:/*EOF*/
        2:        2: 1393:/*EOF*/
        2:        2: 1394:/*EOF*/
        2:        2: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
    #####:    #####: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
    #####:    #####: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
      411:      429: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
      411:      429: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
      411:      429: 1826:/*EOF*/
      298:      312: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
      113:      117: 1830:/*EOF*/
      113:      117: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
      113:      117: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
      113:      117: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
      113:      117: 1842:/*EOF*/
      113:      117: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
      113:      117: 1846:/*EOF*/
      113:      117: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
       49:       51: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
       49:       51: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
       49:       51: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
       49:       51: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
       49:       51: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       49:       51: 1965:/*EOF*/
       49:       51: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
       49:       51: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
      509:      531: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
      822:      858: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
      411:      429: 1976:/*EOF*/
      411:      429: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
      411:      429: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
      411:      429: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
       98:      102: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
       49:       51: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
       60:       62: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
       60:       62: 2029:/*EOF*/
       11:       11: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
       49:       51: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
       49:       51: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
       49:       51: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
       10:       10: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
       10:       10: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
       10:       10: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
       10:       10: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
       10:       10: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
       68:       68: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
       68:       68: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
       68:       68: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
       68:       68: 2101:/*EOF*/
       68:       68: 2102:/*EOF*/
       68:       68: 2103:/*EOF*/
       68:       68: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
       68:       68: 2106:/*EOF*/
       68:       68: 2107:/*EOF*/
       68:       68: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
       68:       68: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
       10:       10: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
       10:       10: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
       10:       10: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
       10:       10: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       10:       10: 2136:/*EOF*/
       10:       10: 2137:/*EOF*/
       10:       10: 2138:/*EOF*/
       10:       10: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       10:       10: 2141:/*EOF*/
       10:       10: 2142:/*EOF*/
       10:       10: 2143:/*EOF*/
    #####:    #####: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
       10:       10: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
      609:      629: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
      609:      629: 2159:/*EOF*/
      609:      629: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
      609:      629: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
    #####:    #####: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
    #####:    #####: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
      609:      629: 2187:/*EOF*/
      117:      117: 2188:/*EOF*/
       19:       19: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
      492:      512: 2191:/*EOF*/
      492:      512: 2192:/*EOF*/
      492:      512: 2193:/*EOF*/
       19:       19: 2194:/*EOF*/
      473:      493: 2195:/*EOF*/
      113:      117: 2196:/*EOF*/
      113:      117: 2197:/*EOF*/
      113:      117: 2198:/*EOF*/
      113:      117: 2199:/*EOF*/
    #####:    #####: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
      609:      629: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
    #####:    #####: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        3:        3: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        3:        3: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        3:        3: 2254:/*EOF*/
        1:        1: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        3:        3: 2257:/*EOF*/
        3:        3: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        3:        3: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        1:        1: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        1:        1: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        1:        1: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        3:        3: 2269:/*EOF*/
        3:        3: 2270:/*EOF*/
        3:        3: 2271:/*EOF*/
        3:        3: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        1:        1: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        1:        1: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        1:        1: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        1:        1: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        3:        3: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        3:        3: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        3:        3: 2301:/*EOF*/
        3:        3: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
      392:      404: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
      392:      404: 2310:/*EOF*/
      390:      402: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        2:        2: 2313:/*EOF*/
        2:        2: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        2:        2: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        2:        2: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        2:        2: 2322:/*EOF*/
    #####:    #####: 2323:/*EOF*/
        2:        2: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        2:        2: 2332:/*EOF*/
        2:        2: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        2:        2: 2336:/*EOF*/
        4:        4: 2337:/*EOF*/
        2:        2: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        2:        2: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        2:        2: 2345:/*EOF*/
        2:        2: 2346:/*EOF*/
        2:        2: 2347:/*EOF*/
        2:        2: 2348:/*EOF*/
        2:        2: 2349:/*EOF*/
        2:        2: 2350:/*EOF*/
        2:        2: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        2:        2: 2355:/*EOF*/
        2:        2: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
      390:      402: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
      780:      804: 2372:/*EOF*/
      390:      402: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
      390:      402: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
      390:      402: 2377:/*EOF*/

src/compiler/glsl/glcpp/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:.libs/glcpp-parse.gcno
        -:        -:    0:Data:.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      385:      393:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      385:      393:  103:/*EOF*/

src/compiler/glsl/glcpp/.libs/glcpp-lex.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.c
        -:        -:    0:Graph:glcpp-lex.gcno
        -:        -:    0:Data:glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
      609:      629: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
      609:      629: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      609:      629: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
      609:      629: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
      609:      629: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        2:        2: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        2:        2: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        2:        2: 1052:/*EOF*/
        2:        2: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        2:        2: 1055:/*EOF*/
        2:        2: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        2:        2: 1058:/*EOF*/
        2:        2: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        2:        2: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        2:        2: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
     1020:     1062: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
     1020:     1062: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
     1020:     1062: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
     1020:     1062: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
     2798:     2900: 1150:/*EOF*/
     2798:     2900: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
     1705:     1765: 1153:/*EOF*/
     1705:     1765: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
     7431:     7700: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
     1835:     1900: 1158:/*EOF*/
     1835:     1900: 1159:/*EOF*/
      809:      832: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
     2798:     2900: 1162:/*EOF*/
     2798:     2900: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
     2798:     2900: 1165:/*EOF*/
     1020:     1062: 1166:/*EOF*/
     1020:     1062: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
     1022:     1064: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
     1022:     1064: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
     1026:     1068: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        1:        1: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        2:        2: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        6:        6: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        6:        6: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        6:        6: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        2:        2: 1724:/*EOF*/
        2:        2: 1725:/*EOF*/
        2:        2: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        6:        6: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        6:        6: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        4:        4: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        4:        4: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        4:        4: 1792:/*EOF*/
        4:        4: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
    #####:    #####: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        2:        2: 1815:/*EOF*/
        2:        2: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        2:        2: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        2:        2: 1820:/*EOF*/
        2:        2: 1821:/*EOF*/
        2:        2: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
      411:      433: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        6:        6: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        6:        6: 1844:/*EOF*/
        6:        6: 1845:/*EOF*/
        6:        6: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        6:        6: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        6:        6: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        6:        6: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        4:        4: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        2:        2: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        2:        2: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        2:        2: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        2:        2: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        4:        4: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        2:        2: 1987:/*EOF*/
        2:        2: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        4:        4: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        2:        2: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        2:        2: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        2:        2: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        2:        2: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        2:        2: 2184:/*EOF*/
        2:        2: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        2:        2: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
    #####:    #####: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        2:        2: 2196:/*EOF*/
        2:        2: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        2:        2: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        4:        4: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        4:        4: 2209:/*EOF*/
        4:        4: 2210:/*EOF*/
        4:        4: 2211:/*EOF*/
        4:        4: 2212:/*EOF*/
        4:        4: 2213:/*EOF*/
        4:        4: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        2:        2: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        2:        2: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        2:        2: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        2:        2: 2257:/*EOF*/
        2:        2: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        2:        2: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        2:        2: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
    #####:    #####: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
    #####:    #####: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
    #####:    #####: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
    #####:    #####: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
    #####:    #####: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
    #####:    #####: 2347:/*EOF*/
    #####:    #####: 2348:/*EOF*/
    #####:    #####: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
    #####:    #####: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        2:        2: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        2:        2: 2362:/*EOF*/
        2:        2: 2363:/*EOF*/
        2:        2: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
    #####:    #####: 2368:/*EOF*/
    #####:    #####: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        2:        2: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        2:        2: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        2:        2: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        2:        2: 2391:/*EOF*/
        2:        2: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        2:        2: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        2:        2: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        2:        2: 2400:/*EOF*/
        2:        2: 2401:/*EOF*/
        2:        2: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
    #####:    #####: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        2:        2: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        4:        4: 2434:/*EOF*/
        4:        4: 2435:/*EOF*/
        2:        2: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
    #####:    #####: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        2:        2: 2440:/*EOF*/
        2:        2: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        2:        2: 2444:/*EOF*/
        2:        2: 2445:/*EOF*/
        2:        2: 2446:/*EOF*/
        2:        2: 2447:/*EOF*/
        2:        2: 2448:/*EOF*/
        2:        2: 2449:/*EOF*/
        2:        2: 2450:/*EOF*/
        2:        2: 2451:/*EOF*/
        2:        2: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        2:        2: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        2:        2: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        2:        2: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        2:        2: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        2:        2: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        2:        2: 2488:/*EOF*/
        2:        2: 2489:/*EOF*/
        2:        2: 2490:/*EOF*/
    #####:    #####: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
     1764:     1824: 2493:/*EOF*/
     1762:     1822: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        2:        2: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        2:        2: 2498:/*EOF*/
        2:        2: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        2:        2: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        2:        2: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
    #####:    #####: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
    #####:    #####: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
    #####:    #####: 2520:/*EOF*/
    #####:    #####: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
    #####:    #####: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
    #####:    #####: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
    #####:    #####: 2537:/*EOF*/
    #####:    #####: 2538:/*EOF*/
    #####:    #####: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
    #####:    #####: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
    #####:    #####: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
    #####:    #####: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
    #####:    #####: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
    #####:    #####: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
    #####:    #####: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
    #####:    #####: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
    #####:    #####: 2597:/*EOF*/
    #####:    #####: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
    #####:    #####: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
    #####:    #####: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
    #####:    #####: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        4:        4: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        4:        4: 2659:/*EOF*/
        4:        4: 2660:/*EOF*/
        4:        4: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
    #####:    #####: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
    #####:    #####: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
    #####:    #####: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
    #####:    #####: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
    #####:    #####: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
    #####:    #####: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
    #####:    #####: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
    #####:    #####: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
    #####:    #####: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
    #####:    #####: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
    #####:    #####: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
    #####:    #####: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
    #####:    #####: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        2:        2: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        2:        2: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        2:        2: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        2:        2: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        2:        2: 2799:/*EOF*/
    #####:    #####: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        2:        2: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        2:        2: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        2:        2: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        4:        4: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        4:        4: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        4:        4: 2820:/*EOF*/
        4:        4: 2821:/*EOF*/
        4:        4: 2822:/*EOF*/
        4:        4: 2823:/*EOF*/
        4:        4: 2824:/*EOF*/
        4:        4: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        4:        4: 2827:/*EOF*/
        4:        4: 2828:/*EOF*/
        4:        4: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        4:        4: 2836:/*EOF*/
        4:        4: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        4:        4: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        2:        2: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        2:        2: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        6:        6: 2852:/*EOF*/
        2:        2: 2853:/*EOF*/
        2:        2: 2854:/*EOF*/
        2:        2: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        2:        2: 2859:/*EOF*/
        2:        2: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        2:        2: 2863:/*EOF*/
        2:        2: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        2:        2: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        2:        2: 2871:/*EOF*/
        2:        2: 2872:/*EOF*/
        2:        2: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        8:        8: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        8:        8: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        8:        8: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
       10:       10: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
       10:       10: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
       10:       10: 2929:/*EOF*/
       10:       10: 2930:/*EOF*/

src/compiler/glsl/glcpp/.libs/glcpp-lex.l.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.l
        -:        -:    0:Graph:glcpp-lex.gcno
        -:        -:    0:Data:glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      905:      947:  121:/*EOF*/
        -:        -:  122:/*EOF*/
     1297:     1351:  123:/*EOF*/
      392:      404:  124:/*EOF*/
      388:      400:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      905:      947:  130:/*EOF*/
       79:       81:  131:/*EOF*/
      826:      866:  132:/*EOF*/
      411:      423:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      905:      947:  138:/*EOF*/
       79:       81:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      826:      866:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      905:      947:  146:/*EOF*/
      415:      443:  147:/*EOF*/
      117:      123:  148:/*EOF*/
      117:      123:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      298:      320:  151:/*EOF*/
      298:      320:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      490:      504:  155:/*EOF*/
      490:      504:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      609:      629:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      609:      629:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      731:      751:  249:/*EOF*/
      138:      138:  250:/*EOF*/
       16:       16:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       13:       13:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      596:      616:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        1:        1:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       19:       19:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       19:       19:  283:/*EOF*/
       19:       19:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       19:       19:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        2:        2:  292:/*EOF*/
        2:        2:  293:/*EOF*/
        2:        2:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        2:        2:  332:/*EOF*/
        2:        2:  333:/*EOF*/
        2:        2:  334:/*EOF*/
        2:        2:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        1:        1:  339:/*EOF*/
        1:        1:  340:/*EOF*/
        1:        1:  341:/*EOF*/
        1:        1:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        1:        1:  360:/*EOF*/
        1:        1:  361:/*EOF*/
        1:        1:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        3:        3:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        3:        3:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       10:       10:  395:/*EOF*/
       10:       10:  396:/*EOF*/
       10:       10:  397:/*EOF*/
       10:       10:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       20:       20:  422:/*EOF*/
       20:       20:  423:/*EOF*/
       10:       10:  424:/*EOF*/
       10:       10:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       14:       14:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        5:        5:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        1:        1:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        2:        2:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        2:        2:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      153:      157:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       12:       12:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        2:        3:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      200:      207:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        4:        4:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      509:      537:  533:/*EOF*/
      423:      451:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
      392:      414:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
       79:       81:  541:/*EOF*/
       79:       81:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       79:       81:  544:/*EOF*/
        -:        -:  545:/*EOF*/
       79:       81:  546:/*EOF*/
       79:       81:  547:/*EOF*/
       79:       81:  548:/*EOF*/
       79:       81:  549:/*EOF*/
       79:       81:  550:/*EOF*/
       79:       81:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        2:        2:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        2:        2:  557:/*EOF*/
        2:        2:  558:/*EOF*/
        2:        2:  559:/*EOF*/
        2:        2:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        2:        2:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        2:        2:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        2:        2:  588:/*EOF*/
        2:        2:  589:/*EOF*/

src/compiler/glsl/glcpp/.libs/glcpp-parse.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.c
        -:        -:    0:Graph:glcpp-parse.gcno
        -:        -:    0:Data:glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
    #####:    #####: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        4:        4: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        4:        4: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
        4:        4: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        4:        4: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        2:        2: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        2:        2: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        2:        2: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        2:        2: 1536:/*EOF*/
        2:        2: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        2:        2: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        2:        2: 1546:/*EOF*/
        2:        2: 1547:/*EOF*/
        2:        2: 1548:/*EOF*/
        2:        2: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        2:        2: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        2:        2: 1553:/*EOF*/
        2:        2: 1554:/*EOF*/
        2:        2: 1555:/*EOF*/
        2:        2: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        2:        2: 1569:/*EOF*/
        2:        2: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
     1957:     2026: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
     1959:     2028: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
     1959:     2028: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
     1959:     2028: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
     1959:     2028: 1651:/*EOF*/
        2:        2: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
     1957:     2026: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
     1957:     2026: 1665:/*EOF*/
     1957:     2026: 1666:/*EOF*/
     1297:     1344: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
      660:      682: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
      609:      629: 1674:/*EOF*/
      609:      629: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
      660:      682: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        2:        2: 1680:/*EOF*/
        2:        2: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
      658:      680: 1685:/*EOF*/
      658:      680: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
      660:      682: 1691:/*EOF*/
      660:      682: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
      609:      629: 1694:/*EOF*/
      609:      629: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
      609:      629: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
      609:      629: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
      609:      629: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
      609:      629: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
      609:      629: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
      609:      629: 1718:/*EOF*/
      609:      629: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
     1348:     1397: 1726:/*EOF*/
     1348:     1397: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
     1348:     1397: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
     1348:     1397: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
     1348:     1397: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
     1348:     1397: 1750:/*EOF*/
     1348:     1397: 1751:/*EOF*/
     1348:     1397: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
       60:       62: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
       10:       10: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
       19:       19: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        2:        2: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        1:        1: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        1:        1: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        1:        1: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        3:        3: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        2:        2: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
    #####:    #####: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
    #####:    #####: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        2:        2: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
    #####:    #####: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
    #####:    #####: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
       10:       10: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        5:        5: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
       11:       11: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
    #####:    #####: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
       59:       61: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
      376:      392: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
      123:      127: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
       17:       17: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
      176:      183: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        2:        3: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
      117:      123: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
       17:       17: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
       17:       17: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
       26:       27: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
       26:       27: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        8:        9: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        8:        9: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
       14:       15: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        1:        1: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        2:        2: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
    #####:    #####: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        1:        1: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
    #####:    #####: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        2:        3: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        1:        1: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        2:        2: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
    #####:    #####: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
       22:       23: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
       12:       12: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
       15:       15: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
    #####:    #####: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        2:        2: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
      175:      179: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
     1348:     1397: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
     1348:     1397: 2775:/*EOF*/
     1348:     1397: 2776:/*EOF*/
     1348:     1397: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
     1348:     1397: 2779:/*EOF*/
     1348:     1397: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
     1348:     1397: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
     1348:     1397: 2788:/*EOF*/
     1348:     1397: 2789:/*EOF*/
      798:      832: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
      550:      565: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
     1348:     1397: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
    #####:    #####: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
    #####:    #####: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
    #####:    #####: 2819:/*EOF*/
    #####:    #####: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
    #####:    #####: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
    #####:    #####: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
    #####:    #####: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
    #####:    #####: 2833:/*EOF*/
    #####:    #####: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
    #####:    #####: 2838:/*EOF*/
    #####:    #####: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
    #####:    #####: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
    #####:    #####: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
    #####:    #####: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
    #####:    #####: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        2:        2: 2945:/*EOF*/
        2:        2: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
    #####:    #####: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        2:        2: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        2:        2: 2976:/*EOF*/
        2:        2: 2977:/*EOF*/
        8:        8: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        4:        4: 2980:/*EOF*/
        4:        4: 2981:/*EOF*/
        4:        4: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        2:        2: 2985:/*EOF*/
    #####:    #####: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        2:        2: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        2:        2: 2992:/*EOF*/

src/compiler/glsl/glcpp/.libs/glcpp-parse.y.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.y
        -:        -:    0:Graph:glcpp-parse.gcno
        -:        -:    0:Data:glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        2:        2:  163:/*EOF*/
        2:        2:  164:/*EOF*/
        2:        2:  165:/*EOF*/
        2:        2:  166:/*EOF*/
        2:        2:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       60:       62:  211:/*EOF*/
       60:       62:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       10:       10:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       19:       19:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        2:        2:  349:/*EOF*/
        2:        2:  350:/*EOF*/
        2:        2:  351:/*EOF*/
        2:        2:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        1:        1:  355:/*EOF*/
        1:        1:  356:/*EOF*/
        1:        1:  357:/*EOF*/
        1:        1:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        1:        1:  406:/*EOF*/
        2:        2:  407:/*EOF*/
        1:        1:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        1:        1:  414:/*EOF*/
        1:        1:  415:/*EOF*/
        1:        1:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        3:        3:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        2:        2:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        2:        2:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        2:        2:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        2:        2:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
       10:       10:  658:/*EOF*/
       10:       10:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        5:        5:  662:/*EOF*/
        5:        5:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       11:       11:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       59:       61:  686:/*EOF*/
       59:       61:  687:/*EOF*/
       59:       61:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
      376:      392:  691:/*EOF*/
      376:      392:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      123:      127:  698:/*EOF*/
      123:      127:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
       17:       17:  702:/*EOF*/
       17:       17:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
      176:      183:  706:/*EOF*/
      176:      183:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        2:        3:  714:/*EOF*/
        2:        3:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
      117:      123:  718:/*EOF*/
      117:      123:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       17:       17:  724:/*EOF*/
       17:       17:  725:/*EOF*/
       26:       27:  726:/*EOF*/
       26:       27:  727:/*EOF*/
        8:        9:  728:/*EOF*/
        8:        9:  729:/*EOF*/
       14:       15:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        1:        1:  732:/*EOF*/
        2:        2:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        1:        1:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        2:        3:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        1:        1:  743:/*EOF*/
        2:        2:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
       22:       23:  751:/*EOF*/
       12:       12:  752:/*EOF*/
       15:       15:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        2:        2:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
       10:       10:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
       10:       10:  766:/*EOF*/
       10:       10:  767:/*EOF*/
       10:       10:  768:/*EOF*/
        -:        -:  769:/*EOF*/
       10:       10:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
       15:       15:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
       15:       15:  779:/*EOF*/
       15:       15:  780:/*EOF*/
        -:        -:  781:/*EOF*/
       15:       15:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       15:       15:  784:/*EOF*/
       10:       10:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        5:        5:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
       15:       15:  790:/*EOF*/
       15:       15:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
       10:       10:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
       10:       10:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
       25:       25:  822:/*EOF*/
       20:       20:  823:/*EOF*/
        5:        5:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
       10:       10:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
      142:      147:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      142:      147:  946:/*EOF*/
      142:      147:  947:/*EOF*/
      142:      147:  948:/*EOF*/
        -:        -:  949:/*EOF*/
      142:      147:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
      361:      374:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
      361:      374:  958:/*EOF*/
      361:      374:  959:/*EOF*/
      361:      374:  960:/*EOF*/
        -:        -:  961:/*EOF*/
      361:      374:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
      127:      129:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
      127:      129:  970:/*EOF*/
      127:      129:  971:/*EOF*/
      127:      129:  972:/*EOF*/
      127:      129:  973:/*EOF*/
        -:        -:  974:/*EOF*/
      127:      129:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
      503:      521:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
      503:      521:  983:/*EOF*/
      503:      521:  984:/*EOF*/
      503:      521:  985:/*EOF*/
        -:        -:  986:/*EOF*/
      503:      521:  987:/*EOF*/
      127:      129:  988:/*EOF*/
        -:        -:  989:/*EOF*/
      376:      392:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
      503:      521:  993:/*EOF*/
      503:      521:  994:/*EOF*/
      386:      398:  995:/*EOF*/
      503:      521:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       98:      102: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
       98:      102: 1036:/*EOF*/
       98:      102: 1037:/*EOF*/
       98:      102: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
       98:      102: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
      411:      429: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
      411:      429: 1118:/*EOF*/
      157:      164: 1119:/*EOF*/
      157:      164: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
      254:      265: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
      132:      137: 1130:/*EOF*/
      132:      137: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      117:      123: 1133:/*EOF*/
      117:      123: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        1:        1: 1142:/*EOF*/
        1:        1: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        2:        2: 1145:/*EOF*/
        2:        2: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        2:        2: 1163:/*EOF*/
        2:        2: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
       49:       51: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
       49:       51: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
      460:      480: 1313:/*EOF*/
      411:      429: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
       68:       68: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
       68:       68: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
       68:       68: 1331:/*EOF*/
       68:       68: 1332:/*EOF*/
       68:       68: 1333:/*EOF*/
       68:       68: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        2:        2: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        2:        2: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        2:        2: 1344:/*EOF*/
        2:        2: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        2:        2: 1347:/*EOF*/
        2:        2: 1348:/*EOF*/
        2:        2: 1349:/*EOF*/
        2:        2: 1350:/*EOF*/
        2:        2: 1351:/*EOF*/
        2:        2: 1352:/*EOF*/
        2:        2: 1353:/*EOF*/
        2:        2: 1354:/*EOF*/
        2:        2: 1355:/*EOF*/
        2:        2: 1356:/*EOF*/
        2:        2: 1357:/*EOF*/
        2:        2: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        2:        2: 1360:/*EOF*/
        2:        2: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        2:        2: 1363:/*EOF*/
        2:        2: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        2:        2: 1366:/*EOF*/
        2:        2: 1367:/*EOF*/
        2:        2: 1368:/*EOF*/
        2:        2: 1369:/*EOF*/
        2:        2: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        2:        2: 1372:/*EOF*/
        2:        2: 1373:/*EOF*/
        2:        2: 1374:/*EOF*/
        2:        2: 1375:/*EOF*/
        2:        2: 1376:/*EOF*/
        2:        2: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        2:        2: 1379:/*EOF*/
        2:        2: 1380:/*EOF*/
        2:        2: 1381:/*EOF*/
        2:        2: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        2:        2: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        2:        2: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        2:        2: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        2:        2: 1392:/*EOF*/
        2:        2: 1393:/*EOF*/
        2:        2: 1394:/*EOF*/
        2:        2: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
    #####:    #####: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
    #####:    #####: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
      411:      429: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
      411:      429: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
      411:      429: 1826:/*EOF*/
      298:      312: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
      113:      117: 1830:/*EOF*/
      113:      117: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
      113:      117: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
      113:      117: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
      113:      117: 1842:/*EOF*/
      113:      117: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
      113:      117: 1846:/*EOF*/
      113:      117: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
       49:       51: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
       49:       51: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
       49:       51: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
       49:       51: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
       49:       51: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       49:       51: 1965:/*EOF*/
       49:       51: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
       49:       51: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
      509:      531: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
      822:      858: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
      411:      429: 1976:/*EOF*/
      411:      429: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
      411:      429: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
      411:      429: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
       98:      102: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
       49:       51: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
       60:       62: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
       60:       62: 2029:/*EOF*/
       11:       11: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
       49:       51: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
       49:       51: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
       49:       51: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
       10:       10: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
       10:       10: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
       10:       10: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
       10:       10: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
       10:       10: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
       68:       68: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
       68:       68: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
       68:       68: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
       68:       68: 2101:/*EOF*/
       68:       68: 2102:/*EOF*/
       68:       68: 2103:/*EOF*/
       68:       68: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
       68:       68: 2106:/*EOF*/
       68:       68: 2107:/*EOF*/
       68:       68: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
       68:       68: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
       10:       10: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
       10:       10: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
       10:       10: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
       10:       10: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       10:       10: 2136:/*EOF*/
       10:       10: 2137:/*EOF*/
       10:       10: 2138:/*EOF*/
       10:       10: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       10:       10: 2141:/*EOF*/
       10:       10: 2142:/*EOF*/
       10:       10: 2143:/*EOF*/
    #####:    #####: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
       10:       10: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
      609:      629: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
      609:      629: 2159:/*EOF*/
      609:      629: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
      609:      629: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
    #####:    #####: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
    #####:    #####: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
      609:      629: 2187:/*EOF*/
      117:      117: 2188:/*EOF*/
       19:       19: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
      492:      512: 2191:/*EOF*/
      492:      512: 2192:/*EOF*/
      492:      512: 2193:/*EOF*/
       19:       19: 2194:/*EOF*/
      473:      493: 2195:/*EOF*/
      113:      117: 2196:/*EOF*/
      113:      117: 2197:/*EOF*/
      113:      117: 2198:/*EOF*/
      113:      117: 2199:/*EOF*/
    #####:    #####: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
      609:      629: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
    #####:    #####: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        3:        3: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        3:        3: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        3:        3: 2254:/*EOF*/
        1:        1: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        3:        3: 2257:/*EOF*/
        3:        3: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        3:        3: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        1:        1: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        1:        1: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        1:        1: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        3:        3: 2269:/*EOF*/
        3:        3: 2270:/*EOF*/
        3:        3: 2271:/*EOF*/
        3:        3: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        1:        1: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        1:        1: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        1:        1: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        1:        1: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        3:        3: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        3:        3: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        3:        3: 2301:/*EOF*/
        3:        3: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
      392:      404: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
      392:      404: 2310:/*EOF*/
      390:      402: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        2:        2: 2313:/*EOF*/
        2:        2: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        2:        2: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        2:        2: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        2:        2: 2322:/*EOF*/
    #####:    #####: 2323:/*EOF*/
        2:        2: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        2:        2: 2332:/*EOF*/
        2:        2: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        2:        2: 2336:/*EOF*/
        4:        4: 2337:/*EOF*/
        2:        2: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        2:        2: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        2:        2: 2345:/*EOF*/
        2:        2: 2346:/*EOF*/
        2:        2: 2347:/*EOF*/
        2:        2: 2348:/*EOF*/
        2:        2: 2349:/*EOF*/
        2:        2: 2350:/*EOF*/
        2:        2: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        2:        2: 2355:/*EOF*/
        2:        2: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
      390:      402: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
      780:      804: 2372:/*EOF*/
      390:      402: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
      390:      402: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
      390:      402: 2377:/*EOF*/

src/compiler/glsl/glcpp/.libs/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:glcpp-parse.gcno
        -:        -:    0:Data:glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      385:      393:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      385:      393:  103:/*EOF*/

src/compiler/glsl/glcpp-lex.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.c
        -:        -:    0:Graph:glcpp/.libs/glcpp-lex.gcno
        -:        -:    0:Data:glcpp/.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
      609:      629: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
      609:      629: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      609:      629: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
      609:      629: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
      609:      629: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        2:        2: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        2:        2: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        2:        2: 1052:/*EOF*/
        2:        2: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        2:        2: 1055:/*EOF*/
        2:        2: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        2:        2: 1058:/*EOF*/
        2:        2: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        2:        2: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        2:        2: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
     1020:     1062: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
     1020:     1062: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
     1020:     1062: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
     1020:     1062: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
     2798:     2900: 1150:/*EOF*/
     2798:     2900: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
     1705:     1765: 1153:/*EOF*/
     1705:     1765: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
     7431:     7700: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
     1835:     1900: 1158:/*EOF*/
     1835:     1900: 1159:/*EOF*/
      809:      832: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
     2798:     2900: 1162:/*EOF*/
     2798:     2900: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
     2798:     2900: 1165:/*EOF*/
     1020:     1062: 1166:/*EOF*/
     1020:     1062: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
     1022:     1064: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
     1022:     1064: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
     1026:     1068: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        1:        1: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        2:        2: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        6:        6: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        6:        6: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        6:        6: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        2:        2: 1724:/*EOF*/
        2:        2: 1725:/*EOF*/
        2:        2: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        6:        6: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        6:        6: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        4:        4: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        4:        4: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        4:        4: 1792:/*EOF*/
        4:        4: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
    #####:    #####: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        2:        2: 1815:/*EOF*/
        2:        2: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        2:        2: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        2:        2: 1820:/*EOF*/
        2:        2: 1821:/*EOF*/
        2:        2: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
      411:      433: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        6:        6: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        6:        6: 1844:/*EOF*/
        6:        6: 1845:/*EOF*/
        6:        6: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        6:        6: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        6:        6: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        6:        6: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        4:        4: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        2:        2: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        2:        2: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        2:        2: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        2:        2: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        4:        4: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        2:        2: 1987:/*EOF*/
        2:        2: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        4:        4: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        2:        2: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        2:        2: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        2:        2: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        2:        2: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        2:        2: 2184:/*EOF*/
        2:        2: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        2:        2: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
    #####:    #####: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        2:        2: 2196:/*EOF*/
        2:        2: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        2:        2: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        4:        4: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        4:        4: 2209:/*EOF*/
        4:        4: 2210:/*EOF*/
        4:        4: 2211:/*EOF*/
        4:        4: 2212:/*EOF*/
        4:        4: 2213:/*EOF*/
        4:        4: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        2:        2: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        2:        2: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        2:        2: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        2:        2: 2257:/*EOF*/
        2:        2: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        2:        2: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        2:        2: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
    #####:    #####: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
    #####:    #####: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
    #####:    #####: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
    #####:    #####: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
    #####:    #####: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
    #####:    #####: 2347:/*EOF*/
    #####:    #####: 2348:/*EOF*/
    #####:    #####: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
    #####:    #####: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        2:        2: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        2:        2: 2362:/*EOF*/
        2:        2: 2363:/*EOF*/
        2:        2: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
    #####:    #####: 2368:/*EOF*/
    #####:    #####: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        2:        2: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        2:        2: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        2:        2: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        2:        2: 2391:/*EOF*/
        2:        2: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        2:        2: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        2:        2: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        2:        2: 2400:/*EOF*/
        2:        2: 2401:/*EOF*/
        2:        2: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
    #####:    #####: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        2:        2: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        4:        4: 2434:/*EOF*/
        4:        4: 2435:/*EOF*/
        2:        2: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
    #####:    #####: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        2:        2: 2440:/*EOF*/
        2:        2: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        2:        2: 2444:/*EOF*/
        2:        2: 2445:/*EOF*/
        2:        2: 2446:/*EOF*/
        2:        2: 2447:/*EOF*/
        2:        2: 2448:/*EOF*/
        2:        2: 2449:/*EOF*/
        2:        2: 2450:/*EOF*/
        2:        2: 2451:/*EOF*/
        2:        2: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        2:        2: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        2:        2: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        2:        2: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        2:        2: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        2:        2: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        2:        2: 2488:/*EOF*/
        2:        2: 2489:/*EOF*/
        2:        2: 2490:/*EOF*/
    #####:    #####: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
     1764:     1824: 2493:/*EOF*/
     1762:     1822: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        2:        2: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        2:        2: 2498:/*EOF*/
        2:        2: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        2:        2: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        2:        2: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
    #####:    #####: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
    #####:    #####: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
    #####:    #####: 2520:/*EOF*/
    #####:    #####: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
    #####:    #####: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
    #####:    #####: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
    #####:    #####: 2537:/*EOF*/
    #####:    #####: 2538:/*EOF*/
    #####:    #####: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
    #####:    #####: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
    #####:    #####: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
    #####:    #####: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
    #####:    #####: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
    #####:    #####: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
    #####:    #####: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
    #####:    #####: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
    #####:    #####: 2597:/*EOF*/
    #####:    #####: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
    #####:    #####: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
    #####:    #####: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
    #####:    #####: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        4:        4: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        4:        4: 2659:/*EOF*/
        4:        4: 2660:/*EOF*/
        4:        4: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
    #####:    #####: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
    #####:    #####: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
    #####:    #####: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
    #####:    #####: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
    #####:    #####: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
    #####:    #####: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
    #####:    #####: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
    #####:    #####: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
    #####:    #####: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
    #####:    #####: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
    #####:    #####: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
    #####:    #####: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
    #####:    #####: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        2:        2: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        2:        2: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        2:        2: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        2:        2: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        2:        2: 2799:/*EOF*/
    #####:    #####: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        2:        2: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        2:        2: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        2:        2: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        4:        4: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        4:        4: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        4:        4: 2820:/*EOF*/
        4:        4: 2821:/*EOF*/
        4:        4: 2822:/*EOF*/
        4:        4: 2823:/*EOF*/
        4:        4: 2824:/*EOF*/
        4:        4: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        4:        4: 2827:/*EOF*/
        4:        4: 2828:/*EOF*/
        4:        4: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        4:        4: 2836:/*EOF*/
        4:        4: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        4:        4: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        2:        2: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        2:        2: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        6:        6: 2852:/*EOF*/
        2:        2: 2853:/*EOF*/
        2:        2: 2854:/*EOF*/
        2:        2: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        2:        2: 2859:/*EOF*/
        2:        2: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        2:        2: 2863:/*EOF*/
        2:        2: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        2:        2: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        2:        2: 2871:/*EOF*/
        2:        2: 2872:/*EOF*/
        2:        2: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        8:        8: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        8:        8: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        8:        8: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
       10:       10: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
       10:       10: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
       10:       10: 2929:/*EOF*/
       10:       10: 2930:/*EOF*/

src/compiler/glsl/glcpp-lex.l.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-lex.l
        -:        -:    0:Graph:glcpp/.libs/glcpp-lex.gcno
        -:        -:    0:Data:glcpp/.libs/glcpp-lex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      905:      947:  121:/*EOF*/
        -:        -:  122:/*EOF*/
     1297:     1351:  123:/*EOF*/
      392:      404:  124:/*EOF*/
      388:      400:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      905:      947:  130:/*EOF*/
       79:       81:  131:/*EOF*/
      826:      866:  132:/*EOF*/
      411:      423:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      905:      947:  138:/*EOF*/
       79:       81:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      826:      866:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      905:      947:  146:/*EOF*/
      415:      443:  147:/*EOF*/
      117:      123:  148:/*EOF*/
      117:      123:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      298:      320:  151:/*EOF*/
      298:      320:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      490:      504:  155:/*EOF*/
      490:      504:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      609:      629:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      609:      629:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      731:      751:  249:/*EOF*/
      138:      138:  250:/*EOF*/
       16:       16:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       13:       13:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      596:      616:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        1:        1:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       19:       19:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       19:       19:  283:/*EOF*/
       19:       19:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       19:       19:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        2:        2:  292:/*EOF*/
        2:        2:  293:/*EOF*/
        2:        2:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        2:        2:  332:/*EOF*/
        2:        2:  333:/*EOF*/
        2:        2:  334:/*EOF*/
        2:        2:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        1:        1:  339:/*EOF*/
        1:        1:  340:/*EOF*/
        1:        1:  341:/*EOF*/
        1:        1:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        1:        1:  360:/*EOF*/
        1:        1:  361:/*EOF*/
        1:        1:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        3:        3:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        3:        3:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       10:       10:  395:/*EOF*/
       10:       10:  396:/*EOF*/
       10:       10:  397:/*EOF*/
       10:       10:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       20:       20:  422:/*EOF*/
       20:       20:  423:/*EOF*/
       10:       10:  424:/*EOF*/
       10:       10:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       14:       14:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        5:        5:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        1:        1:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        2:        2:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        2:        2:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      153:      157:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       12:       12:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        2:        3:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      200:      207:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        4:        4:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      509:      537:  533:/*EOF*/
      423:      451:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
      392:      414:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
       79:       81:  541:/*EOF*/
       79:       81:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       79:       81:  544:/*EOF*/
        -:        -:  545:/*EOF*/
       79:       81:  546:/*EOF*/
       79:       81:  547:/*EOF*/
       79:       81:  548:/*EOF*/
       79:       81:  549:/*EOF*/
       79:       81:  550:/*EOF*/
       79:       81:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        2:        2:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        2:        2:  557:/*EOF*/
        2:        2:  558:/*EOF*/
        2:        2:  559:/*EOF*/
        2:        2:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        2:        2:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        2:        2:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        2:        2:  588:/*EOF*/
        2:        2:  589:/*EOF*/

src/compiler/glsl/glcpp-parse.c.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.c
        -:        -:    0:Graph:glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
    #####:    #####: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        4:        4: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        4:        4: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
        4:        4: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        4:        4: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        2:        2: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        2:        2: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        2:        2: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        2:        2: 1536:/*EOF*/
        2:        2: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        2:        2: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        2:        2: 1546:/*EOF*/
        2:        2: 1547:/*EOF*/
        2:        2: 1548:/*EOF*/
        2:        2: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        2:        2: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        2:        2: 1553:/*EOF*/
        2:        2: 1554:/*EOF*/
        2:        2: 1555:/*EOF*/
        2:        2: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        2:        2: 1569:/*EOF*/
        2:        2: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
     1957:     2026: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
     1959:     2028: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
     1959:     2028: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
     1959:     2028: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
     1959:     2028: 1651:/*EOF*/
        2:        2: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
     1957:     2026: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
     1957:     2026: 1665:/*EOF*/
     1957:     2026: 1666:/*EOF*/
     1297:     1344: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
      660:      682: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
      609:      629: 1674:/*EOF*/
      609:      629: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
      660:      682: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        2:        2: 1680:/*EOF*/
        2:        2: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
      658:      680: 1685:/*EOF*/
      658:      680: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
      660:      682: 1691:/*EOF*/
      660:      682: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
      609:      629: 1694:/*EOF*/
      609:      629: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
      609:      629: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
      609:      629: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
      609:      629: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
      609:      629: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
      609:      629: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
      609:      629: 1718:/*EOF*/
      609:      629: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
     1348:     1397: 1726:/*EOF*/
     1348:     1397: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
     1348:     1397: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
     1348:     1397: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
     1348:     1397: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
     1348:     1397: 1750:/*EOF*/
     1348:     1397: 1751:/*EOF*/
     1348:     1397: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
       60:       62: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
       10:       10: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
       19:       19: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        2:        2: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        1:        1: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        1:        1: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        1:        1: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        3:        3: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        2:        2: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
    #####:    #####: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
    #####:    #####: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        2:        2: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
    #####:    #####: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
    #####:    #####: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
       10:       10: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        5:        5: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
       11:       11: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
    #####:    #####: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
       59:       61: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
      376:      392: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
      123:      127: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
       17:       17: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
      176:      183: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        2:        3: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
      117:      123: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
       17:       17: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
       17:       17: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
       26:       27: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
       26:       27: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        8:        9: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        8:        9: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
       14:       15: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        1:        1: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        2:        2: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
    #####:    #####: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        1:        1: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
    #####:    #####: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        2:        3: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        1:        1: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        2:        2: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
    #####:    #####: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
    #####:    #####: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
       22:       23: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
       12:       12: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
       15:       15: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
    #####:    #####: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        2:        2: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
      175:      179: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
     1348:     1397: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
     1348:     1397: 2775:/*EOF*/
     1348:     1397: 2776:/*EOF*/
     1348:     1397: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
     1348:     1397: 2779:/*EOF*/
     1348:     1397: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
     1348:     1397: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
     1348:     1397: 2788:/*EOF*/
     1348:     1397: 2789:/*EOF*/
      798:      832: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
      550:      565: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
     1348:     1397: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
    #####:    #####: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
    #####:    #####: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
    #####:    #####: 2819:/*EOF*/
    #####:    #####: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
    #####:    #####: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
    #####:    #####: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
    #####:    #####: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
    #####:    #####: 2833:/*EOF*/
    #####:    #####: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
    #####:    #####: 2838:/*EOF*/
    #####:    #####: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
    #####:    #####: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
    #####:    #####: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
    #####:    #####: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
    #####:    #####: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        2:        2: 2945:/*EOF*/
        2:        2: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
    #####:    #####: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        2:        2: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        2:        2: 2976:/*EOF*/
        2:        2: 2977:/*EOF*/
        8:        8: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        4:        4: 2980:/*EOF*/
        4:        4: 2981:/*EOF*/
        4:        4: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        2:        2: 2985:/*EOF*/
    #####:    #####: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        2:        2: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        2:        2: 2992:/*EOF*/

src/compiler/glsl/glcpp-parse.y.gcov

        -:        -:    0:Source:glsl/glcpp/glcpp-parse.y
        -:        -:    0:Graph:glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        2:        2:  163:/*EOF*/
        2:        2:  164:/*EOF*/
        2:        2:  165:/*EOF*/
        2:        2:  166:/*EOF*/
        2:        2:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       60:       62:  211:/*EOF*/
       60:       62:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       10:       10:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       19:       19:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        2:        2:  349:/*EOF*/
        2:        2:  350:/*EOF*/
        2:        2:  351:/*EOF*/
        2:        2:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        1:        1:  355:/*EOF*/
        1:        1:  356:/*EOF*/
        1:        1:  357:/*EOF*/
        1:        1:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        1:        1:  406:/*EOF*/
        2:        2:  407:/*EOF*/
        1:        1:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        1:        1:  414:/*EOF*/
        1:        1:  415:/*EOF*/
        1:        1:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        3:        3:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        2:        2:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        2:        2:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        2:        2:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        2:        2:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
       10:       10:  658:/*EOF*/
       10:       10:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        5:        5:  662:/*EOF*/
        5:        5:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       11:       11:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       59:       61:  686:/*EOF*/
       59:       61:  687:/*EOF*/
       59:       61:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
      376:      392:  691:/*EOF*/
      376:      392:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      123:      127:  698:/*EOF*/
      123:      127:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
       17:       17:  702:/*EOF*/
       17:       17:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
      176:      183:  706:/*EOF*/
      176:      183:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        2:        3:  714:/*EOF*/
        2:        3:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
      117:      123:  718:/*EOF*/
      117:      123:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       17:       17:  724:/*EOF*/
       17:       17:  725:/*EOF*/
       26:       27:  726:/*EOF*/
       26:       27:  727:/*EOF*/
        8:        9:  728:/*EOF*/
        8:        9:  729:/*EOF*/
       14:       15:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        1:        1:  732:/*EOF*/
        2:        2:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        1:        1:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        2:        3:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        1:        1:  743:/*EOF*/
        2:        2:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
       22:       23:  751:/*EOF*/
       12:       12:  752:/*EOF*/
       15:       15:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        2:        2:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
       10:       10:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
       10:       10:  766:/*EOF*/
       10:       10:  767:/*EOF*/
       10:       10:  768:/*EOF*/
        -:        -:  769:/*EOF*/
       10:       10:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
       15:       15:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
       15:       15:  779:/*EOF*/
       15:       15:  780:/*EOF*/
        -:        -:  781:/*EOF*/
       15:       15:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       15:       15:  784:/*EOF*/
       10:       10:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        5:        5:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
       15:       15:  790:/*EOF*/
       15:       15:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
       10:       10:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
       10:       10:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
       25:       25:  822:/*EOF*/
       20:       20:  823:/*EOF*/
        5:        5:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
       10:       10:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
      142:      147:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      142:      147:  946:/*EOF*/
      142:      147:  947:/*EOF*/
      142:      147:  948:/*EOF*/
        -:        -:  949:/*EOF*/
      142:      147:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
      361:      374:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
      361:      374:  958:/*EOF*/
      361:      374:  959:/*EOF*/
      361:      374:  960:/*EOF*/
        -:        -:  961:/*EOF*/
      361:      374:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
      127:      129:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
      127:      129:  970:/*EOF*/
      127:      129:  971:/*EOF*/
      127:      129:  972:/*EOF*/
      127:      129:  973:/*EOF*/
        -:        -:  974:/*EOF*/
      127:      129:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
      503:      521:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
      503:      521:  983:/*EOF*/
      503:      521:  984:/*EOF*/
      503:      521:  985:/*EOF*/
        -:        -:  986:/*EOF*/
      503:      521:  987:/*EOF*/
      127:      129:  988:/*EOF*/
        -:        -:  989:/*EOF*/
      376:      392:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
      503:      521:  993:/*EOF*/
      503:      521:  994:/*EOF*/
      386:      398:  995:/*EOF*/
      503:      521:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       98:      102: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
       98:      102: 1036:/*EOF*/
       98:      102: 1037:/*EOF*/
       98:      102: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
       98:      102: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
      411:      429: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
      411:      429: 1118:/*EOF*/
      157:      164: 1119:/*EOF*/
      157:      164: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
      254:      265: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
      132:      137: 1130:/*EOF*/
      132:      137: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      117:      123: 1133:/*EOF*/
      117:      123: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        1:        1: 1142:/*EOF*/
        1:        1: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        2:        2: 1145:/*EOF*/
        2:        2: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        2:        2: 1163:/*EOF*/
        2:        2: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
       49:       51: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
       49:       51: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
      460:      480: 1313:/*EOF*/
      411:      429: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
       68:       68: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
       68:       68: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
       68:       68: 1331:/*EOF*/
       68:       68: 1332:/*EOF*/
       68:       68: 1333:/*EOF*/
       68:       68: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        2:        2: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        2:        2: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        2:        2: 1344:/*EOF*/
        2:        2: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        2:        2: 1347:/*EOF*/
        2:        2: 1348:/*EOF*/
        2:        2: 1349:/*EOF*/
        2:        2: 1350:/*EOF*/
        2:        2: 1351:/*EOF*/
        2:        2: 1352:/*EOF*/
        2:        2: 1353:/*EOF*/
        2:        2: 1354:/*EOF*/
        2:        2: 1355:/*EOF*/
        2:        2: 1356:/*EOF*/
        2:        2: 1357:/*EOF*/
        2:        2: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        2:        2: 1360:/*EOF*/
        2:        2: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        2:        2: 1363:/*EOF*/
        2:        2: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        2:        2: 1366:/*EOF*/
        2:        2: 1367:/*EOF*/
        2:        2: 1368:/*EOF*/
        2:        2: 1369:/*EOF*/
        2:        2: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        2:        2: 1372:/*EOF*/
        2:        2: 1373:/*EOF*/
        2:        2: 1374:/*EOF*/
        2:        2: 1375:/*EOF*/
        2:        2: 1376:/*EOF*/
        2:        2: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        2:        2: 1379:/*EOF*/
        2:        2: 1380:/*EOF*/
        2:        2: 1381:/*EOF*/
        2:        2: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        2:        2: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        2:        2: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        2:        2: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        2:        2: 1392:/*EOF*/
        2:        2: 1393:/*EOF*/
        2:        2: 1394:/*EOF*/
        2:        2: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
    #####:    #####: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
    #####:    #####: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
      411:      429: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
      411:      429: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
      411:      429: 1826:/*EOF*/
      298:      312: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
      113:      117: 1830:/*EOF*/
      113:      117: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
      113:      117: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
      113:      117: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
      113:      117: 1842:/*EOF*/
      113:      117: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
      113:      117: 1846:/*EOF*/
      113:      117: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
       49:       51: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
       49:       51: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
       49:       51: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
       49:       51: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
       49:       51: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       49:       51: 1965:/*EOF*/
       49:       51: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
       49:       51: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
      509:      531: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
      822:      858: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
      411:      429: 1976:/*EOF*/
      411:      429: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
      411:      429: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
      411:      429: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
       98:      102: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
       49:       51: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
       60:       62: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
       60:       62: 2029:/*EOF*/
       11:       11: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
       49:       51: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
       49:       51: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
       49:       51: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
       10:       10: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
       10:       10: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
       10:       10: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
       10:       10: 2067:/*EOF*/
    #####:    #####: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
       10:       10: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
       68:       68: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
       68:       68: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
       68:       68: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
       68:       68: 2101:/*EOF*/
       68:       68: 2102:/*EOF*/
       68:       68: 2103:/*EOF*/
       68:       68: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
       68:       68: 2106:/*EOF*/
       68:       68: 2107:/*EOF*/
       68:       68: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
       68:       68: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
       10:       10: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
       10:       10: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
       10:       10: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
       10:       10: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       10:       10: 2136:/*EOF*/
       10:       10: 2137:/*EOF*/
       10:       10: 2138:/*EOF*/
       10:       10: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       10:       10: 2141:/*EOF*/
       10:       10: 2142:/*EOF*/
       10:       10: 2143:/*EOF*/
    #####:    #####: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
       10:       10: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
      609:      629: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
      609:      629: 2159:/*EOF*/
      609:      629: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
      609:      629: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
    #####:    #####: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
    #####:    #####: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
      609:      629: 2187:/*EOF*/
      117:      117: 2188:/*EOF*/
       19:       19: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
      492:      512: 2191:/*EOF*/
      492:      512: 2192:/*EOF*/
      492:      512: 2193:/*EOF*/
       19:       19: 2194:/*EOF*/
      473:      493: 2195:/*EOF*/
      113:      117: 2196:/*EOF*/
      113:      117: 2197:/*EOF*/
      113:      117: 2198:/*EOF*/
      113:      117: 2199:/*EOF*/
    #####:    #####: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
      609:      629: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
    #####:    #####: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        3:        3: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        3:        3: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        3:        3: 2254:/*EOF*/
        1:        1: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        3:        3: 2257:/*EOF*/
        3:        3: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        3:        3: 2260:/*EOF*/
        2:        2: 2261:/*EOF*/
        1:        1: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        1:        1: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        1:        1: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        3:        3: 2269:/*EOF*/
        3:        3: 2270:/*EOF*/
        3:        3: 2271:/*EOF*/
        3:        3: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        1:        1: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        1:        1: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        1:        1: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        1:        1: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        3:        3: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        3:        3: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        3:        3: 2301:/*EOF*/
        3:        3: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
      392:      404: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
      392:      404: 2310:/*EOF*/
      390:      402: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        2:        2: 2313:/*EOF*/
        2:        2: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        2:        2: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        2:        2: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        2:        2: 2322:/*EOF*/
    #####:    #####: 2323:/*EOF*/
        2:        2: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        2:        2: 2332:/*EOF*/
        2:        2: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        2:        2: 2336:/*EOF*/
        4:        4: 2337:/*EOF*/
        2:        2: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        2:        2: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        2:        2: 2345:/*EOF*/
        2:        2: 2346:/*EOF*/
        2:        2: 2347:/*EOF*/
        2:        2: 2348:/*EOF*/
        2:        2: 2349:/*EOF*/
        2:        2: 2350:/*EOF*/
        2:        2: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        2:        2: 2355:/*EOF*/
        2:        2: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
      390:      402: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
      780:      804: 2372:/*EOF*/
      390:      402: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
      390:      402: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
      390:      402: 2377:/*EOF*/

src/compiler/glsl/glsl_lexer.cpp.gcov

        -:        -:    0:Source:glsl/glsl_lexer.cpp
        -:        -:    0:Graph:.libs/glsl_lexer.gcno
        -:        -:    0:Data:.libs/glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
      301:      313: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
      301:      313: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
      301:      313: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
      301:      313: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
      301:      313: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        2:        2: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        2:        2: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        2:        2: 1587:/*EOF*/
        2:        2: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        2:        2: 1590:/*EOF*/
        2:        2: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        2:        2: 1593:/*EOF*/
        2:        2: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        2:        2: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        2:        2: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
      196:      204: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
      497:      517: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
      497:      517: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
      497:      517: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
      497:      517: 1623:/*EOF*/
      497:      517: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
      917:      955: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
     1414:     1472: 1628:/*EOF*/
     1414:     1472: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
      911:      949: 1631:/*EOF*/
      911:      949: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
     3276:     3406: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
      931:      967: 1636:/*EOF*/
      931:      967: 1637:/*EOF*/
      389:      404: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
     1414:     1472: 1640:/*EOF*/
     1414:     1472: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
     1414:     1472: 1643:/*EOF*/
      497:      517: 1644:/*EOF*/
      497:      517: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
      499:      519: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
      499:      519: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
      501:      521: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
      117:      123: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        2:        2: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        4:        4: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        4:        4: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        4:        4: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        2:        2: 3204:/*EOF*/
        2:        2: 3205:/*EOF*/
        2:        2: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        4:        4: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
    #####:    #####: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
    #####:    #####: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
        -:        -: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
    #####:    #####: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        4:        4: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        2:        2: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        2:        2: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        2:        2: 3272:/*EOF*/
        2:        2: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
        -:        -: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        2:        2: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        2:        2: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        2:        2: 3300:/*EOF*/
        2:        2: 3301:/*EOF*/
        2:        2: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
    #####:    #####: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        4:        4: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        4:        4: 3324:/*EOF*/
        4:        4: 3325:/*EOF*/
        4:        4: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        4:        4: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
    #####:    #####: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        4:        4: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        4:        4: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        2:        2: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        2:        2: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
    #####:    #####: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
    #####:    #####: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
    #####:    #####: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
    #####:    #####: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
    #####:    #####: 3404:/*EOF*/
    #####:    #####: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
    #####:    #####: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
    #####:    #####: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
    #####:    #####: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
    #####:    #####: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        2:        2: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        2:        2: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        2:        2: 3463:/*EOF*/
        2:        2: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        4:        4: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        2:        2: 3468:/*EOF*/
        2:        2: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        2:        2: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
    #####:    #####: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        2:        2: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        2:        2: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        -:        -: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
    #####:    #####: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
    #####:    #####: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
    #####:    #####: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
    #####:    #####: 3606:/*EOF*/
    #####:    #####: 3607:/*EOF*/
    #####:    #####: 3608:/*EOF*/
    #####:    #####: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
    #####:    #####: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
    #####:    #####: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        2:        2: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        2:        2: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        2:        2: 3629:/*EOF*/
        2:        2: 3630:/*EOF*/
    #####:    #####: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        2:        2: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        2:        2: 3641:/*EOF*/
        2:        2: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        2:        2: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        4:        4: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        4:        4: 3654:/*EOF*/
        4:        4: 3655:/*EOF*/
        4:        4: 3656:/*EOF*/
        4:        4: 3657:/*EOF*/
        4:        4: 3658:/*EOF*/
        4:        4: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
    #####:    #####: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        2:        2: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        2:        2: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        2:        2: 3699:/*EOF*/
    #####:    #####: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        2:        2: 3702:/*EOF*/
        2:        2: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        2:        2: 3705:/*EOF*/
        2:        2: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        2:        2: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
    #####:    #####: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
    #####:    #####: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
    #####:    #####: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
    #####:    #####: 3730:/*EOF*/
    #####:    #####: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
    #####:    #####: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
    #####:    #####: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
    #####:    #####: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
    #####:    #####: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
    #####:    #####: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
    #####:    #####: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
    #####:    #####: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
    #####:    #####: 3776:/*EOF*/
    #####:    #####: 3777:/*EOF*/
    #####:    #####: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
    #####:    #####: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
    #####:    #####: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
    #####:    #####: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
    #####:    #####: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        2:        2: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        2:        2: 3807:/*EOF*/
        2:        2: 3808:/*EOF*/
        2:        2: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
    #####:    #####: 3812:/*EOF*/
    #####:    #####: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        2:        2: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        2:        2: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        2:        2: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        2:        2: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        2:        2: 3838:/*EOF*/
        2:        2: 3839:/*EOF*/
        2:        2: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        2:        2: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        2:        2: 3845:/*EOF*/
        2:        2: 3846:/*EOF*/
        2:        2: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
    #####:    #####: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
    #####:    #####: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
    #####:    #####: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
    #####:    #####: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
    #####:    #####: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
    #####:    #####: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        2:        2: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        4:        4: 3879:/*EOF*/
        4:        4: 3880:/*EOF*/
        2:        2: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        2:        2: 3885:/*EOF*/
        2:        2: 3886:/*EOF*/
    #####:    #####: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        2:        2: 3889:/*EOF*/
        2:        2: 3890:/*EOF*/
        2:        2: 3891:/*EOF*/
        2:        2: 3892:/*EOF*/
        2:        2: 3893:/*EOF*/
        2:        2: 3894:/*EOF*/
        2:        2: 3895:/*EOF*/
        2:        2: 3896:/*EOF*/
        2:        2: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        2:        2: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        2:        2: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        2:        2: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        2:        2: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        2:        2: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        2:        2: 3933:/*EOF*/
        2:        2: 3934:/*EOF*/
        2:        2: 3935:/*EOF*/
    #####:    #####: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
      915:      953: 3938:/*EOF*/
      913:      951: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        2:        2: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        2:        2: 3943:/*EOF*/
        2:        2: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        2:        2: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        2:        2: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
    #####:    #####: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
    #####:    #####: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
    #####:    #####: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
    #####:    #####: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
    #####:    #####: 4002:/*EOF*/
    #####:    #####: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
    #####:    #####: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
    #####:    #####: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
    #####:    #####: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
    #####:    #####: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        4:        4: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        4:        4: 4064:/*EOF*/
        4:        4: 4065:/*EOF*/
        4:        4: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
    #####:    #####: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
    #####:    #####: 4095:/*EOF*/
    #####:    #####: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
    #####:    #####: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
    #####:    #####: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
    #####:    #####: 4124:/*EOF*/
    #####:    #####: 4125:/*EOF*/
    #####:    #####: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
    #####:    #####: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
    #####:    #####: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
    #####:    #####: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        2:        2: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        2:        2: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        2:        2: 4197:/*EOF*/
    #####:    #####: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        2:        2: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        2:        2: 4204:/*EOF*/
    #####:    #####: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        2:        2: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        2:        2: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        2:        2: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        4:        4: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        4:        4: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        4:        4: 4225:/*EOF*/
        4:        4: 4226:/*EOF*/
        4:        4: 4227:/*EOF*/
        4:        4: 4228:/*EOF*/
        4:        4: 4229:/*EOF*/
        4:        4: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        4:        4: 4232:/*EOF*/
        4:        4: 4233:/*EOF*/
        4:        4: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        4:        4: 4241:/*EOF*/
        4:        4: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        4:        4: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        2:        2: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        2:        2: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        6:        6: 4257:/*EOF*/
        2:        2: 4258:/*EOF*/
        2:        2: 4259:/*EOF*/
        2:        2: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        2:        2: 4264:/*EOF*/
        2:        2: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        2:        2: 4268:/*EOF*/
        2:        2: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        2:        2: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        2:        2: 4276:/*EOF*/
        2:        2: 4277:/*EOF*/
        2:        2: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        8:        8: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        8:        8: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        8:        8: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
    #####:    #####: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
    #####:    #####: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
    #####:    #####: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
       10:       10: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
       10:       10: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
       10:       10: 4334:/*EOF*/
       10:       10: 4335:/*EOF*/

src/compiler/glsl/glsl_lexer.ll.gcov

        -:        -:    0:Source:glsl/glsl_lexer.ll
        -:        -:    0:Graph:.libs/glsl_lexer.gcno
        -:        -:    0:Data:.libs/glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       17:       17:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       34:       34:  108:/*EOF*/
       34:       34:  109:/*EOF*/
       17:       17:  110:/*EOF*/
       17:       17:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       17:       17:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       17:       17:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       17:       17:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       17:       17:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       17:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       17:       17:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
       17:       17:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       17:       17:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       17:       17:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       17:       17:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      117:      123:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        2:        2:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        2:        2:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        2:        2:  261:/*EOF*/
        2:        2:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        2:        2:  268:/*EOF*/
        4:        4:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        2:        2:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       79:       81:  278:/*EOF*/
       77:       79:  279:/*EOF*/
       78:       80:  280:/*EOF*/
        1:        1:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        8:        8:  283:/*EOF*/
        2:        2:  284:/*EOF*/
        8:        8:  285:/*EOF*/
        2:        2:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:        1:  289:/*EOF*/
    #####:        1:  290:/*EOF*/
    #####:        1:  291:/*EOF*/
        2:        3:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        2:        2:  294:/*EOF*/
        5:        5:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        2:        2:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        2:        2:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        5:        5:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        3:        3:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        2:        2:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        2:        2:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        3:        3:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        3:        3:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        2:        2:  457:/*EOF*/
        2:        2:  458:/*EOF*/
        1:        1:  459:/*EOF*/
        2:        2:  460:/*EOF*/
        1:        1:  461:/*EOF*/
        2:        2:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        1:        1:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        1:        1:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
       12:       12:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        5:        5:  487:/*EOF*/
        5:        5:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        2:        3:  494:/*EOF*/
        2:        3:  495:/*EOF*/
        2:        3:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        2:        3:  501:/*EOF*/
        2:        3:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
       85:       87:  621:/*EOF*/
       85:       87:  622:/*EOF*/
       85:       87:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       85:       87:  628:/*EOF*/
        -:        -:  629:/*EOF*/
       85:       87:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
       14:       15:  633:/*EOF*/
       28:       30:  634:/*EOF*/
       14:       15:  635:/*EOF*/
        -:        -:  636:/*EOF*/
      141:      147:  637:/*EOF*/
      141:      147:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       85:       87:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       85:       87:  645:/*EOF*/
       14:       15:  646:/*EOF*/
       14:       15:  647:/*EOF*/
        -:        -:  648:/*EOF*/
       71:       72:  649:/*EOF*/
       49:       49:  650:/*EOF*/
       22:       23:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       22:       23:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        2:        2:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        2:        2:  660:/*EOF*/
        2:        2:  661:/*EOF*/
        2:        2:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        2:        2:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        2:        2:  667:/*EOF*/
        2:        2:  668:/*EOF*/

src/compiler/glsl/glsl_parser.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser.cpp
        -:        -:    0:Graph:.libs/glsl_parser.gcno
        -:        -:    0:Data:.libs/glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
    #####:    #####: 2887:/*EOF*/
    #####:    #####: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
    #####:    #####: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
    #####:    #####: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
    #####:    #####: 2949:/*EOF*/
    #####:    #####: 2950:/*EOF*/
    #####:    #####: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
    #####:    #####: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
    #####:    #####: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
    #####:    #####: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
    #####:    #####: 2977:/*EOF*/
    #####:    #####: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    #####:    #####: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
    #####:    #####: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
    #####:    #####: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
    #####:    #####: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
    #####:    #####: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
    #####:    #####: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
    #####:    #####: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        4:        4: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        4:        4: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        4:        4: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        2:        2: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        2:        2: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        2:        2: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        2:        2: 3131:/*EOF*/
        2:        2: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        2:        2: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        2:        2: 3141:/*EOF*/
        2:        2: 3142:/*EOF*/
        2:        2: 3143:/*EOF*/
        2:        2: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        2:        2: 3148:/*EOF*/
        2:        2: 3149:/*EOF*/
        2:        2: 3150:/*EOF*/
        2:        2: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        2:        2: 3164:/*EOF*/
        2:        2: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
     1895:     1940: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
     1897:     1942: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
     1897:     1942: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
    #####:    #####: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
    #####:    #####: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
     1897:     1942: 3246:/*EOF*/
        2:        2: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
     1895:     1940: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
     1895:     1940: 3260:/*EOF*/
     1895:     1940: 3261:/*EOF*/
      654:      669: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
     1241:     1271: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
      301:      313: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
     1241:     1271: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        4:        4: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
     1237:     1267: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
     1241:     1271: 3286:/*EOF*/
     1241:     1271: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
      312:      324: 3289:/*EOF*/
      312:      324: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
       11:       11: 3294:/*EOF*/
       11:       11: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
      301:      313: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
      301:      313: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
      301:      313: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
      301:      313: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
      301:      313: 3313:/*EOF*/
      301:      313: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
     1583:     1616: 3321:/*EOF*/
     1583:     1616: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
     1583:     1616: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
     1594:     1627: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
     1594:     1627: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
     1594:     1627: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
     1594:     1627: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        2:        2: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        2:        2: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        2:        2: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
    #####:    #####: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        2:        2: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        4:        4: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
       58:       59: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
       17:       17: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
    #####:    #####: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        2:        3: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
    #####:    #####: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
       16:       16: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
       11:       11: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
       14:       15: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        2:        2: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
       11:       11: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
       11:       11: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        4:        4: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        7:        7: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
    #####:    #####: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
    #####:    #####: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
    #####:    #####: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
    #####:    #####: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        1:        1: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        1:        1: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        1:        1: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        2:        3: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        1:        1: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        2:        2: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
    #####:    #####: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
    #####:    #####: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
       10:       10: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        9:        9: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
    #####:    #####: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        1:        1: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
    #####:    #####: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
       35:       36: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
    #####:    #####: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        8:        8: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        2:        2: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        1:        1: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        3:        3: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        2:        2: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
        -:        -: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
    #####:    #####: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        2:        2: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        1:        1: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        3:        3: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
    #####:    #####: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
    #####:    #####: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
    #####:    #####: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        2:        2: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        1:        1: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        5:        5: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
        -:        -: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
        -:        -: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
        8:        8: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        3:        3: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
    #####:    #####: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
    #####:    #####: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        -:        -: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        -:        -: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
    #####:    #####: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
        -:        -: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        -:        -: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
        -:        -: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
        -:        -: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
        -:        -: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
    #####:    #####: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        -:        -: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
    #####:    #####: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
    #####:    #####: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
    #####:    #####: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
    #####:    #####: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
    #####:    #####: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
    #####:    #####: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
    #####:    #####: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
        -:        -: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
    #####:    #####: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
        -:        -: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
    #####:    #####: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
    #####:    #####: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
    #####:    #####: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
    #####:    #####: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
        -:        -: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
        -:        -: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        -:        -: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
        -:        -: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        -:        -: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
    #####:    #####: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        -:        -: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
    #####:    #####: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
    #####:    #####: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
        -:        -: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
    #####:    #####: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        -:        -: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
    #####:    #####: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
    #####:    #####: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
    #####:    #####: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        -:        -: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
    #####:    #####: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
    #####:    #####: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        -:        -: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        1:        1: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
        -:        -: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
    #####:    #####: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        -:        -: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
    #####:    #####: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
    #####:    #####: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        2:        2: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
    #####:    #####: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
    #####:    #####: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        -:        -: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
    #####:    #####: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
    #####:    #####: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
    #####:    #####: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
        -:        -: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
    #####:    #####: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
    #####:    #####: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        -:        -: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        -:        -: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
        -:        -: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        1:        1: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        -:        -: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        -:        -: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
    #####:    #####: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
       18:       18: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
    #####:    #####: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
    #####:    #####: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
        3:        3: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        8:        8: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
    #####:    #####: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        2:        2: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
    #####:    #####: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
        -:        -: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        2:        2: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
    #####:    #####: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        3:        3: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
    #####:    #####: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
    #####:    #####: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
    #####:    #####: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
    #####:    #####: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
    #####:    #####: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
    #####:    #####: 5703:/*EOF*/
        -:        -: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
    #####:    #####: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        -:        -: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
    #####:    #####: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
    #####:    #####: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
    #####:    #####: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
    #####:    #####: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
    #####:    #####: 5739:/*EOF*/
        -:        -: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
    #####:    #####: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
    #####:    #####: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
        -:        -: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
        -:        -: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
    #####:    #####: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
    #####:    #####: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
        -:        -: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
    #####:    #####: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
    #####:    #####: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
    #####:    #####: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
    #####:    #####: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        -:        -: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
    #####:    #####: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        -:        -: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
    #####:    #####: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
    #####:    #####: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
    #####:    #####: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
    #####:    #####: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
    #####:    #####: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
    #####:    #####: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
    #####:    #####: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
    #####:    #####: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
    #####:    #####: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
    #####:    #####: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
    #####:    #####: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
        -:        -: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
    #####:    #####: 5919:/*EOF*/
        -:        -: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
    #####:    #####: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
    #####:    #####: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
    #####:    #####: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
        -:        -: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
    #####:    #####: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
        -:        -: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
    #####:    #####: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
        -:        -: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
        -:        -: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
    #####:    #####: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
    #####:    #####: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
    #####:    #####: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
        -:        -: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
    #####:    #####: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
    #####:    #####: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
    #####:    #####: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        -:        -: 6044:/*EOF*/
    #####:    #####: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
    #####:    #####: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
    #####:    #####: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
        -:        -: 6068:/*EOF*/
    #####:    #####: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
    #####:    #####: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
    #####:    #####: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
    #####:    #####: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
    #####:    #####: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
    #####:    #####: 6099:/*EOF*/
        -:        -: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
    #####:    #####: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
    #####:    #####: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
    #####:    #####: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
    #####:    #####: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
    #####:    #####: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        -:        -: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
    #####:    #####: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        -:        -: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
    #####:    #####: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
        -:        -: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
    #####:    #####: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
        -:        -: 6188:/*EOF*/
    #####:    #####: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
        -:        -: 6194:/*EOF*/
    #####:    #####: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
        -:        -: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
    #####:    #####: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
    #####:    #####: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
    #####:    #####: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
    #####:    #####: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
    #####:    #####: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        -:        -: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
    #####:    #####: 6249:/*EOF*/
        -:        -: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
    #####:    #####: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
    #####:    #####: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        -:        -: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
    #####:    #####: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
    #####:    #####: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
    #####:    #####: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
    #####:    #####: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
        -:        -: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
    #####:    #####: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        -:        -: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
    #####:    #####: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        -:        -: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
    #####:    #####: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
    #####:    #####: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
    #####:    #####: 6339:/*EOF*/
        -:        -: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
    #####:    #####: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
    #####:    #####: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
    #####:    #####: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
    #####:    #####: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
        -:        -: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
        -:        -: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
    #####:    #####: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
        -:        -: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
    #####:    #####: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
    #####:    #####: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        -:        -: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
        -:        -: 6452:/*EOF*/
    #####:    #####: 6453:/*EOF*/
        -:        -: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
    #####:    #####: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
        -:        -: 6469:/*EOF*/
        -:        -: 6470:/*EOF*/
    #####:    #####: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        -:        -: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
    #####:    #####: 6479:/*EOF*/
        -:        -: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
        -:        -: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
    #####:    #####: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
    #####:    #####: 6498:/*EOF*/
        -:        -: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        3:        4: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
    #####:    #####: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        3:        4: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        -:        -: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        3:        4: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        -:        -: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        2:        2: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
    #####:    #####: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        5:        5: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        8:        9: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
       12:       12: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
    #####:    #####: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
        -:        -: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
       10:       10: 6606:/*EOF*/
        -:        -: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        3:        3: 6616:/*EOF*/
        -:        -: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
    #####:    #####: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        3:        3: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        2:        2: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
        -:        -: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
    #####:    #####: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
        -:        -: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
    #####:    #####: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
    #####:    #####: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
    #####:    #####: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
    #####:    #####: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
        -:        -: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
    #####:    #####: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
    #####:    #####: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
        -:        -: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
    #####:    #####: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
    #####:        1: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
        -:        -: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        2:        2: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
        -:        -: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
    #####:    #####: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
    #####:    #####: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        2:        2: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
    #####:    #####: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
        -:        -: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
        -:        -: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
    #####:    #####: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
        -:        -: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        2:        2: 6864:/*EOF*/
        -:        -: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
        -:        -: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
        -:        -: 6873:/*EOF*/
    #####:    #####: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
        -:        -: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
        -:        -: 6879:/*EOF*/
        3:        3: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        3:        3: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
        -:        -: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
        -:        -: 6890:/*EOF*/
        -:        -: 6891:/*EOF*/
    #####:    #####: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
    #####:    #####: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
        -:        -: 6905:/*EOF*/
        -:        -: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
        -:        -: 6911:/*EOF*/
        3:        3: 6912:/*EOF*/
        -:        -: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
        -:        -: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
    #####:    #####: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
        -:        -: 6923:/*EOF*/
        -:        -: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
        -:        -: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
    #####:    #####: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
        -:        -: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
        -:        -: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
        -:        -: 6971:/*EOF*/
        -:        -: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
        -:        -: 6975:/*EOF*/
    #####:    #####: 6976:/*EOF*/
        -:        -: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
        -:        -: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
    #####:    #####: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
        -:        -: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
        -:        -: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
    #####:    #####: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
        -:        -: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
    #####:    #####: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
        -:        -: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
        -:        -: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
        -:        -: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
        -:        -: 7026:/*EOF*/
    #####:    #####: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
        -:        -: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
    #####:    #####: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
        -:        -: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
    #####:    #####: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
        -:        -: 7049:/*EOF*/
        -:        -: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
        -:        -: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
    #####:    #####: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
        -:        -: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
        -:        -: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
    #####:    #####: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
        -:        -: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
        -:        -: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
        -:        -: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
        -:        -: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
        -:        -: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
    #####:    #####: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
        -:        -: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
        -:        -: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
    #####:    #####: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
        -:        -: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
    #####:    #####: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
        -:        -: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
    #####:    #####: 7132:/*EOF*/
        -:        -: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
        -:        -: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
        -:        -: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
    #####:    #####: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
        -:        -: 7147:/*EOF*/
        -:        -: 7148:/*EOF*/
        -:        -: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
        -:        -: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
    #####:    #####: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
    #####:    #####: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
        -:        -: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
    #####:    #####: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
        -:        -: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
        -:        -: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
    #####:    #####: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
        -:        -: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
        -:        -: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
        -:        -: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
    #####:    #####: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
    #####:    #####: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
     1216:     1239: 7240:/*EOF*/
        -:        -: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
     1594:     1627: 7255:/*EOF*/
     1594:     1627: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
     1594:     1627: 7259:/*EOF*/
     1594:     1627: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
        -:        -: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
     1594:     1627: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
     1594:     1627: 7268:/*EOF*/
     1594:     1627: 7269:/*EOF*/
      144:      149: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
     1450:     1478: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
     1594:     1627: 7274:/*EOF*/
        -:        -: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
        -:        -: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
    #####:    #####: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
    #####:    #####: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
    #####:    #####: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
    #####:    #####: 7297:/*EOF*/
    #####:    #####: 7298:/*EOF*/
    #####:    #####: 7299:/*EOF*/
    #####:    #####: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
    #####:    #####: 7302:/*EOF*/
    #####:    #####: 7303:/*EOF*/
    #####:    #####: 7304:/*EOF*/
    #####:    #####: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
    #####:    #####: 7307:/*EOF*/
    #####:    #####: 7308:/*EOF*/
    #####:    #####: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
    #####:    #####: 7313:/*EOF*/
    #####:    #####: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
        -:        -: 7316:/*EOF*/
    #####:    #####: 7317:/*EOF*/
    #####:    #####: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
        -:        -: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
    #####:    #####: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
    #####:    #####: 7335:/*EOF*/
    #####:    #####: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
        -:        -: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
    #####:    #####: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
    #####:    #####: 7348:/*EOF*/
        -:        -: 7349:/*EOF*/
        -:        -: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
        -:        -: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
    #####:    #####: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
    #####:    #####: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
    #####:    #####: 7368:/*EOF*/
    #####:    #####: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
    #####:    #####: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
    #####:    #####: 7380:/*EOF*/
    #####:    #####: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
    #####:    #####: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
    #####:    #####: 7386:/*EOF*/
    #####:    #####: 7387:/*EOF*/
    #####:    #####: 7388:/*EOF*/
        -:        -: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
    #####:    #####: 7393:/*EOF*/
    #####:    #####: 7394:/*EOF*/
        -:        -: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
    #####:    #####: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
    #####:    #####: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
        -:        -: 7404:/*EOF*/
    #####:    #####: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
    #####:    #####: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
    #####:    #####: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
    #####:    #####: 7417:/*EOF*/
    #####:    #####: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
        -:        -: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        2:        2: 7425:/*EOF*/
        2:        2: 7426:/*EOF*/
        -:        -: 7427:/*EOF*/
        -:        -: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
    #####:    #####: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
    #####:    #####: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
        2:        2: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
    #####:    #####: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
    #####:    #####: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        2:        2: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
       10:       10: 7458:/*EOF*/
        -:        -: 7459:/*EOF*/
        4:        4: 7460:/*EOF*/
        8:        8: 7461:/*EOF*/
        4:        4: 7462:/*EOF*/
        -:        -: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        2:        2: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        2:        2: 7469:/*EOF*/
    #####:    #####: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        2:        2: 7472:/*EOF*/

src/compiler/glsl/glsl_parser_extras.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser_extras.cpp
        -:        -:    0:Graph:.libs/glsl_parser_extras.gcno
        -:        -:    0:Data:.libs/glsl_parser_extras.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        3:        3:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        3:        3:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        3:        3:   71:/*EOF*/
        3:        3:   72:/*EOF*/
        3:        3:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        3:        3:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        3:        3:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        3:        3:   85:/*EOF*/
        3:        3:   86:/*EOF*/
        3:        3:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        3:        3:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        3:        3:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        3:        3:  102:/*EOF*/
        3:        3:  103:/*EOF*/
        3:        3:  104:/*EOF*/
        3:        3:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        3:        3:  107:/*EOF*/
        3:        3:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        3:        3:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        3:        3:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        3:        3:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        3:        3:  121:/*EOF*/
        3:        3:  122:/*EOF*/
        3:        3:  123:/*EOF*/
        3:        3:  124:/*EOF*/
        3:        3:  125:/*EOF*/
        3:        3:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        3:        3:  128:/*EOF*/
        3:        3:  129:/*EOF*/
        3:        3:  130:/*EOF*/
        3:        3:  131:/*EOF*/
        3:        3:  132:/*EOF*/
        3:        3:  133:/*EOF*/
        3:        3:  134:/*EOF*/
        3:        3:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        3:        3:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        3:        3:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        3:        3:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        3:        3:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        3:        3:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        3:        3:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        3:        3:  154:/*EOF*/
        3:        3:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       12:       12:  158:/*EOF*/
        9:        9:  159:/*EOF*/
       12:       12:  160:/*EOF*/
        9:        9:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        3:        3:  163:/*EOF*/
        3:        3:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        3:        3:  166:/*EOF*/
        3:        3:  167:/*EOF*/
        3:        3:  168:/*EOF*/
        3:        3:  169:/*EOF*/
        3:        3:  170:/*EOF*/
        3:        3:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        3:        3:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        3:        3:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        3:        3:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        3:        3:  186:/*EOF*/
        3:        3:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        3:        3:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        3:        3:  200:/*EOF*/
        3:        3:  201:/*EOF*/
        3:        3:  202:/*EOF*/
        3:        3:  203:/*EOF*/
        3:        3:  204:/*EOF*/
        3:        3:  205:/*EOF*/
        3:        3:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        3:        3:  221:/*EOF*/
       39:       39:  222:/*EOF*/
       36:       36:  223:/*EOF*/
        9:        9:  224:/*EOF*/
        9:        9:  225:/*EOF*/
        9:        9:  226:/*EOF*/
        9:        9:  227:/*EOF*/
        9:        9:  228:/*EOF*/
        9:        9:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        3:        3:  233:/*EOF*/
        3:        3:  234:/*EOF*/
        3:        3:  235:/*EOF*/
        3:        3:  236:/*EOF*/
        3:        3:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        3:        3:  239:/*EOF*/
        3:        3:  240:/*EOF*/
        3:        3:  241:/*EOF*/
        3:        3:  242:/*EOF*/
        3:        3:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        3:        3:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        3:        3:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        3:        3:  262:/*EOF*/
       18:       18:  263:/*EOF*/
       15:       15:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       15:       15:  267:/*EOF*/
       15:       15:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       15:       15:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       15:       15:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        3:        3:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        3:        3:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        3:        3:  281:/*EOF*/
        3:        3:  282:/*EOF*/
        3:        3:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        3:        3:  285:/*EOF*/
        3:        3:  286:/*EOF*/
        3:        3:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        3:        3:  290:/*EOF*/
        3:        3:  291:/*EOF*/
        3:        3:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        3:        3:  295:/*EOF*/
        3:        3:  296:/*EOF*/
        3:        3:  297:/*EOF*/
        3:        3:  298:/*EOF*/
        3:        3:  299:/*EOF*/
        3:        3:  300:/*EOF*/
        3:        3:  301:/*EOF*/
        3:        3:  302:/*EOF*/
        3:        3:  303:/*EOF*/
        3:        3:  304:/*EOF*/
        3:        3:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        3:        3:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        3:        3:  309:/*EOF*/
        3:        3:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        2:        2:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        2:        2:  375:/*EOF*/
        2:        2:  376:/*EOF*/
        2:        2:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        2:        2:  403:/*EOF*/
        2:        2:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        2:        2:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        2:        2:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        2:        2:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        6:        6:  423:/*EOF*/
        6:        6:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        2:        2:  426:/*EOF*/
        6:        6:  427:/*EOF*/
        6:        6:  428:/*EOF*/
        2:        2:  429:/*EOF*/
        2:        2:  430:/*EOF*/
        2:        2:  431:/*EOF*/
        2:        2:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        2:        2:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        2:        2:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
      188:      188:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
      188:      188:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
        -:        -:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      221:      227: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
      221:      227: 1135:/*EOF*/
      221:      227: 1136:/*EOF*/
      221:      227: 1137:/*EOF*/
      221:      227: 1138:/*EOF*/
      221:      227: 1139:/*EOF*/
      221:      227: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        8:        9: 1164:/*EOF*/
        8:        9: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        8:        9: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        8:        9: 1169:/*EOF*/
        8:        9: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        8:        9: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
    #####:    #####: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
      138:      142: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
      138:      142: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
      138:      142: 1316:/*EOF*/
      138:      142: 1317:/*EOF*/
      138:      142: 1318:/*EOF*/
      138:      142: 1319:/*EOF*/
      138:      142: 1320:/*EOF*/
      138:      142: 1321:/*EOF*/
      138:      142: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
       10:       10: 1335:/*EOF*/
       10:       10: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
       10:       10: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        3:        3: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        3:        3: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        3:        3: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        8:        8: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        8:        8: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        8:        8: 1407:/*EOF*/
        8:        8: 1408:/*EOF*/
        8:        8: 1409:/*EOF*/
        8:        8: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
    #####:    #####: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
    #####:    #####: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
    #####:    #####: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        8:        8: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        8:        8: 1438:/*EOF*/
        8:        8: 1439:/*EOF*/
        8:        8: 1440:/*EOF*/
        8:        8: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        2:        2: 1467:/*EOF*/
        2:        2: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        2:        2: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        2:        2: 1472:/*EOF*/
        2:        2: 1473:/*EOF*/
        2:        2: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        3:        3: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        3:        3: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        3:        3: 1497:/*EOF*/
        3:        3: 1498:/*EOF*/
        3:        3: 1499:/*EOF*/
        3:        3: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        2:        3: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        2:        3: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        2:        3: 1647:/*EOF*/
        2:        3: 1648:/*EOF*/
        2:        3: 1649:/*EOF*/
        2:        3: 1650:/*EOF*/
        2:        3: 1651:/*EOF*/
        2:        3: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        2:        2: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        4:        4: 1700:/*EOF*/
        2:        2: 1701:/*EOF*/
        1:        1: 1702:/*EOF*/
        2:        2: 1703:/*EOF*/
        1:        1: 1704:/*EOF*/
        1:        1: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        2:        2: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        2:        2: 1710:/*EOF*/
        2:        2: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        2:        2: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        1:        1: 1716:/*EOF*/
        1:        1: 1717:/*EOF*/
        1:        1: 1718:/*EOF*/
        1:        1: 1719:/*EOF*/
        1:        1: 1720:/*EOF*/
        1:        1: 1721:/*EOF*/
        1:        1: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       10:       10: 1725:/*EOF*/
        8:        8: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        2:        2: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
    #####:    #####: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
    #####:    #####: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
    #####:    #####: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        1:        1: 1835:/*EOF*/
        1:        1: 1836:/*EOF*/
        1:        1: 1837:/*EOF*/
        1:        1: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        1:        1: 1840:/*EOF*/
        1:        1: 1841:/*EOF*/
        1:        1: 1842:/*EOF*/
        1:        1: 1843:/*EOF*/
        1:        1: 1844:/*EOF*/
        1:        1: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        1:        1: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        2:        2: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        2:        2: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        2:        2: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        2:        2: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        2:        2: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        2:        2: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        2:        2: 1883:/*EOF*/
        2:        2: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        2:        2: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        6:        6: 1888:/*EOF*/
        8:        8: 1889:/*EOF*/
        2:        2: 1890:/*EOF*/
        2:        2: 1891:/*EOF*/
        2:        2: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        2:        2: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        2:        2: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
      190:      190: 1903:/*EOF*/
      190:      190: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
      188:      188: 1906:/*EOF*/
      188:      188: 1907:/*EOF*/
       52:       52: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        2:        2: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        2:        2: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        2:        2: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        2:        2: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        4:        4: 1929:/*EOF*/
        2:        2: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        2:        2: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        2:        2: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        5:        5: 1944:/*EOF*/
        5:        5: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        2:        2: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        2:        2: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        1:        1: 1954:/*EOF*/
        1:        1: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        1:        1: 1957:/*EOF*/
        1:        1: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        2:        2: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        2:        2: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        2:        2: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
       46:       46: 1984:/*EOF*/
       44:       44: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        3:        3: 1987:/*EOF*/
        3:        3: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
       41:       41: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
       41:       41: 1992:/*EOF*/
       41:       41: 1993:/*EOF*/
       41:       41: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        2:        2: 2001:/*EOF*/
        2:        2: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        2:        2: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        2:        2: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        2:        2: 2011:/*EOF*/
        2:        2: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
    #####:    #####: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        2:        2: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        2:        2: 2047:/*EOF*/
        2:        2: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        2:        2: 2051:/*EOF*/
        2:        2: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        2:        2: 2054:/*EOF*/
        2:        2: 2055:/*EOF*/
        2:        2: 2056:/*EOF*/
        2:        2: 2057:/*EOF*/
        2:        2: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        2:        2: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
    #####:    #####: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        2:        2: 2068:/*EOF*/
        2:        2: 2069:/*EOF*/
        2:        2: 2070:/*EOF*/
        2:        2: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        2:        2: 2073:/*EOF*/
        2:        2: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        2:        2: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        2:        2: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        2:        2: 2085:/*EOF*/
        2:        2: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        2:        2: 2088:/*EOF*/
        2:        2: 2089:/*EOF*/
        2:        2: 2090:/*EOF*/
        2:        2: 2091:/*EOF*/
        2:        2: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        2:        2: 2094:/*EOF*/
        2:        2: 2095:/*EOF*/
        2:        2: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        2:        2: 2098:/*EOF*/
        2:        2: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
    #####:    #####: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        2:        2: 2106:/*EOF*/
        2:        2: 2107:/*EOF*/
        2:        2: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        2:        2: 2111:/*EOF*/
        2:        2: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       18:       18: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       18:       18: 2141:/*EOF*/
       18:       18: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
       18:       18: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
       18:       18: 2160:/*EOF*/
       12:       12: 2161:/*EOF*/
       12:       12: 2162:/*EOF*/
       12:       12: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
       18:       18: 2165:/*EOF*/
       18:       18: 2166:/*EOF*/
       18:       18: 2167:/*EOF*/
       18:       18: 2168:/*EOF*/
       18:       18: 2169:/*EOF*/
       18:       18: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
       18:       18: 2172:/*EOF*/
        2:        2: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
       18:       18: 2175:/*EOF*/
        3:        3: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
       18:       18: 2179:/*EOF*/
       12:       12: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        6:        6: 2182:/*EOF*/
       18:       18: 2183:/*EOF*/
       18:       18: 2184:/*EOF*/
       18:       18: 2185:/*EOF*/
       18:       18: 2186:/*EOF*/
       12:       12: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        6:        6: 2189:/*EOF*/
       18:       18: 2190:/*EOF*/
       18:       18: 2191:/*EOF*/
       18:       18: 2192:/*EOF*/
       18:       18: 2193:/*EOF*/
       18:       18: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
       18:       18: 2196:/*EOF*/
       18:       18: 2197:/*EOF*/
       18:       18: 2198:/*EOF*/
       18:       18: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
       18:       18: 2201:/*EOF*/
       18:       18: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
       18:       18: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
       18:       18: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        1:        1: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        1:        1: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        1:        1: 2232:/*EOF*/
        1:        1: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        1:        1: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        1:        1: 2243:/*EOF*/
        1:        1: 2244:/*EOF*/

src/compiler/glsl/glsl_parser.yy.gcov

        -:        -:    0:Source:glsl/glsl_parser.yy
        -:        -:    0:Graph:.libs/glsl_parser.gcno
        -:        -:    0:Data:.libs/glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      301:      313:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      301:      313:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        2:        2:   88:/*EOF*/
        2:        2:   89:/*EOF*/
        2:        2:   90:/*EOF*/
        2:        2:   91:/*EOF*/
        2:        2:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        2:        2:  319:/*EOF*/
        2:        2:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        2:        2:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        2:        2:  340:/*EOF*/
        2:        2:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        2:        2:  409:/*EOF*/
        2:        2:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        4:        4:  417:/*EOF*/
        4:        4:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       58:       59:  438:/*EOF*/
       58:       59:  439:/*EOF*/
       58:       59:  440:/*EOF*/
       58:       59:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       17:       17:  445:/*EOF*/
       17:       17:  446:/*EOF*/
       17:       17:  447:/*EOF*/
       17:       17:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        2:        3:  473:/*EOF*/
        2:        3:  474:/*EOF*/
        2:        3:  475:/*EOF*/
        2:        3:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       16:       16:  502:/*EOF*/
       16:       16:  503:/*EOF*/
       16:       16:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       11:       11:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       14:       15:  512:/*EOF*/
       14:       15:  513:/*EOF*/
       14:       15:  514:/*EOF*/
       14:       15:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        2:        2:  519:/*EOF*/
        2:        2:  520:/*EOF*/
        2:        2:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       11:       11:  556:/*EOF*/
       11:       11:  557:/*EOF*/
       11:       11:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       11:       11:  562:/*EOF*/
       11:       11:  563:/*EOF*/
       11:       11:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        4:        4:  578:/*EOF*/
        4:        4:  579:/*EOF*/
        4:        4:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        7:        7:  584:/*EOF*/
        7:        7:  585:/*EOF*/
        7:        7:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        1:        1:  629:/*EOF*/
        1:        1:  630:/*EOF*/
        1:        1:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        1:        1:  635:/*EOF*/
        1:        1:  636:/*EOF*/
        1:        1:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        1:        1:  651:/*EOF*/
        1:        1:  652:/*EOF*/
        1:        1:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        2:        3:  683:/*EOF*/
        2:        3:  684:/*EOF*/
        2:        3:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        1:        1:  695:/*EOF*/
        1:        1:  696:/*EOF*/
        1:        1:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        2:        2:  701:/*EOF*/
        2:        2:  702:/*EOF*/
        2:        2:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
       10:       10:  797:/*EOF*/
       10:       10:  798:/*EOF*/
       10:       10:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        9:        9:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        1:        1:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
       35:       36:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        8:        8:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        2:        2:  884:/*EOF*/
        2:        2:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        1:        1:  889:/*EOF*/
        1:        1:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        3:        3:  897:/*EOF*/
        3:        3:  898:/*EOF*/
        3:        3:  899:/*EOF*/
        3:        3:  900:/*EOF*/
        3:        3:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        3:        3:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        3:        3:  907:/*EOF*/
        3:        3:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        2:        2:  915:/*EOF*/
        2:        2:  916:/*EOF*/
        2:        2:  917:/*EOF*/
        2:        2:  918:/*EOF*/
        2:        2:  919:/*EOF*/
        2:        2:  920:/*EOF*/
        2:        2:  921:/*EOF*/
        2:        2:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        2:        2:  941:/*EOF*/
        2:        2:  942:/*EOF*/
        2:        2:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        1:        1:  949:/*EOF*/
        1:        1:  950:/*EOF*/
        1:        1:  951:/*EOF*/
        1:        1:  952:/*EOF*/
        1:        1:  953:/*EOF*/
        1:        1:  954:/*EOF*/
        1:        1:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        1:        1:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        3:        3:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
        -:        -:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        2:        2: 1091:/*EOF*/
        2:        2: 1092:/*EOF*/
        2:        2: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        2:        2: 1095:/*EOF*/
        2:        2: 1096:/*EOF*/
        2:        2: 1097:/*EOF*/
        2:        2: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        1:        1: 1102:/*EOF*/
        1:        1: 1103:/*EOF*/
        1:        1: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        1:        1: 1106:/*EOF*/
        1:        1: 1107:/*EOF*/
        1:        1: 1108:/*EOF*/
        1:        1: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        5:        5: 1124:/*EOF*/
        5:        5: 1125:/*EOF*/
        5:        5: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        5:        5: 1128:/*EOF*/
        5:        5: 1129:/*EOF*/
        5:        5: 1130:/*EOF*/
        5:        5: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        8:        8: 1162:/*EOF*/
        8:        8: 1163:/*EOF*/
        8:        8: 1164:/*EOF*/
        8:        8: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        3:        3: 1169:/*EOF*/
        3:        3: 1170:/*EOF*/
        3:        3: 1171:/*EOF*/
        3:        3: 1172:/*EOF*/
        3:        3: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        3:        3: 1176:/*EOF*/
        3:        3: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
    #####:    #####: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
    #####:    #####: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
    #####:    #####: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
    #####:    #####: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
    #####:    #####: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
    #####:    #####: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
    #####:    #####: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
    #####:    #####: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        1:        1: 2051:/*EOF*/
        1:        1: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
    #####:    #####: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        2:        2: 2103:/*EOF*/
        2:        2: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
    #####:    #####: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
    #####:    #####: 2113:/*EOF*/
    #####:    #####: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
    #####:    #####: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        1:        1: 2158:/*EOF*/
        1:        1: 2159:/*EOF*/
        1:        1: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
       18:       18: 2194:/*EOF*/
       18:       18: 2195:/*EOF*/
       18:       18: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
    #####:    #####: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
    #####:    #####: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        3:        3: 2213:/*EOF*/
        8:        8: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
        2:        2: 2216:/*EOF*/
    #####:    #####: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
        2:        2: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
        3:        3: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
    #####:    #####: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
    #####:    #####: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
    #####:    #####: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
    #####:    #####: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
    #####:    #####: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
    #####:    #####: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
    #####:    #####: 2267:/*EOF*/
    #####:    #####: 2268:/*EOF*/
    #####:    #####: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
    #####:    #####: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
    #####:    #####: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
    #####:    #####: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
    #####:    #####: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
    #####:    #####: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
    #####:    #####: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
    #####:    #####: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
    #####:    #####: 2322:/*EOF*/
    #####:    #####: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
    #####:    #####: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
    #####:    #####: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
    #####:    #####: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
    #####:    #####: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
    #####:    #####: 2388:/*EOF*/
    #####:    #####: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
    #####:    #####: 2391:/*EOF*/
    #####:    #####: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
    #####:    #####: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
    #####:    #####: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
    #####:    #####: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
    #####:    #####: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        3:        4: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
    #####:    #####: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        3:        4: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        3:        4: 2490:/*EOF*/
        3:        4: 2491:/*EOF*/
        3:        4: 2492:/*EOF*/
        3:        4: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        2:        2: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
    #####:    #####: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        5:        5: 2511:/*EOF*/
        5:        5: 2512:/*EOF*/
        5:        5: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        8:        9: 2520:/*EOF*/
    #####:    #####: 2521:/*EOF*/
    #####:    #####: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        8:        9: 2525:/*EOF*/
        8:        9: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
       12:       12: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
       12:       12: 2534:/*EOF*/
       12:       12: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
    #####:    #####: 2543:/*EOF*/
    #####:    #####: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
       10:       10: 2548:/*EOF*/
       10:       10: 2549:/*EOF*/
       10:       10: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        3:        3: 2557:/*EOF*/
        6:        6: 2558:/*EOF*/
        3:        3: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
    #####:    #####: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        3:        3: 2571:/*EOF*/
        3:        3: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        2:        2: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
    #####:    #####: 2583:/*EOF*/
    #####:    #####: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
    #####:    #####: 2601:/*EOF*/
    #####:    #####: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
    #####:    #####: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
    #####:    #####: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
    #####:    #####: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
    #####:    #####: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
    #####:    #####: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
    #####:    #####: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
    #####:    #####: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:        1: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
    #####:        1: 2692:/*EOF*/
    #####:        1: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        2:        2: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        2:        2: 2699:/*EOF*/
        2:        2: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
    #####:    #####: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        2:        2: 2725:/*EOF*/
        2:        2: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
    #####:    #####: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        2:        2: 2752:/*EOF*/
        2:        2: 2753:/*EOF*/
        2:        2: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
    #####:    #####: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        3:        3: 2765:/*EOF*/
        3:        3: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        3:        3: 2774:/*EOF*/
        3:        3: 2775:/*EOF*/
        3:        3: 2776:/*EOF*/
        3:        3: 2777:/*EOF*/
        3:        3: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        3:        3: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
    #####:    #####: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
    #####:    #####: 2807:/*EOF*/
    #####:    #####: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
    #####:    #####: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
    #####:    #####: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
    #####:    #####: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
    #####:    #####: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
    #####:    #####: 2842:/*EOF*/
    #####:    #####: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
    #####:    #####: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
    #####:    #####: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
    #####:    #####: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
    #####:    #####: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
    #####:    #####: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
    #####:    #####: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
    #####:    #####: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
    #####:    #####: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
    #####:    #####: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
    #####:    #####: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
    #####:    #####: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
    #####:    #####: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
    #####:    #####: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
    #####:    #####: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
    #####:    #####: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
    #####:    #####: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
    #####:    #####: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
    #####:    #####: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
    #####:    #####: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
    #####:    #####: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
    #####:    #####: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/

src/compiler/glsl/glsl_symbol_table.cpp.gcov

        -:        -:    0:Source:glsl/glsl_symbol_table.cpp
        -:        -:    0:Graph:.libs/glsl_symbol_table.gcno
        -:        -:    0:Data:.libs/glsl_symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
     1109:     1109:   30:/*EOF*/
        -:        -:   31:/*EOF*/
    #####:    #####:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      545:      545:   79:/*EOF*/
      545:      545:   80:/*EOF*/
      290:      290:   81:/*EOF*/
      290:      290:   82:/*EOF*/
      274:      274:   83:/*EOF*/
      274:      274:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       18:       18:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       18:       18:  106:/*EOF*/
       18:       18:  107:/*EOF*/
       18:       18:  108:/*EOF*/
       18:       18:  109:/*EOF*/
       18:       18:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       36:       36:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       18:       18:  114:/*EOF*/
       18:       18:  115:/*EOF*/
       18:       18:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       19:       21:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       19:       21:  120:/*EOF*/
       19:       21:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       17:       19:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       19:  125:/*EOF*/
       17:       19:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        2:        2:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        2:        2:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      545:      545:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      545:      545:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      545:      545:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      545:      545:  165:/*EOF*/
      545:      545:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      274:      274:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      274:      274:  171:/*EOF*/
      274:      274:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      290:      290:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      290:      290:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      290:      290:  202:/*EOF*/
      290:      290:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      320:      322:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      320:      322:  233:/*EOF*/
      320:      322:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       71:       72:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       71:       72:  239:/*EOF*/
       71:       72:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
      379:      380:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      379:      380:  252:/*EOF*/
      379:      380:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      770:      774:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      770:      774:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/

src/compiler/glsl/glsl_to_nir.cpp.gcov

        -:        -:    0:Source:glsl/glsl_to_nir.cpp
        -:        -:    0:Graph:.libs/glsl_to_nir.gcno
        -:        -:    0:Data:.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        3:        3:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        3:        3:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        1:        1:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        2:        2:  135:/*EOF*/
        1:        1:  136:/*EOF*/
        2:        2:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        1:        1:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        3:        3:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        3:        3:  152:/*EOF*/
        6:        6:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        6:        6:  155:/*EOF*/
        3:        3:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        3:        3:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        3:        3:  166:/*EOF*/
        1:        1:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        3:        3:  169:/*EOF*/
        3:        3:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        3:        3:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        6:        6:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        3:        3:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        3:        3:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        3:        3:  186:/*EOF*/
        3:        3:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        3:        3:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        6:        6:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       98:       98:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       98:       98:  204:/*EOF*/
       98:       98:  205:/*EOF*/
       98:       98:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       67:       69:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       67:       69:  212:/*EOF*/
       30:       30:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       37:       39:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       37:       39:  217:/*EOF*/
       37:       39:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       37:       39:  221:/*EOF*/
       37:       39:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
       28:       28:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       56:       56:  236:/*EOF*/
       28:       28:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       28:       28:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        2:        6:  242:/*EOF*/
        3:        7:  243:/*EOF*/
        2:        4:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        1:        3:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        8:        8:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       16:       16:  275:/*EOF*/
        8:        8:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        8:        8:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       37:       39:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       33:       33:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       33:       33:  311:/*EOF*/
       33:       33:  312:/*EOF*/
       33:       33:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       33:       33:  315:/*EOF*/
       33:       33:  316:/*EOF*/
       33:       33:  317:/*EOF*/
       33:       33:  318:/*EOF*/
       33:       33:  319:/*EOF*/
       33:       33:  320:/*EOF*/
       33:       33:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       33:       33:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       25:       25:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       25:       25:  329:/*EOF*/
       25:       25:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        5:        5:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        3:        3:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        3:        3:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        3:        3:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        3:        3:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        3:        3:  370:/*EOF*/
        3:        3:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        3:        3:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        2:        2:  379:/*EOF*/
        2:        2:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       33:       33:  394:/*EOF*/
       33:       33:  395:/*EOF*/
       33:       33:  396:/*EOF*/
       33:       33:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       33:       33:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       33:       33:  401:/*EOF*/
       33:       33:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
       33:       33:  419:/*EOF*/
       33:       33:  420:/*EOF*/
       33:       33:  421:/*EOF*/
       33:       33:  422:/*EOF*/
       33:       33:  423:/*EOF*/
       33:       33:  424:/*EOF*/
       33:       33:  425:/*EOF*/
       33:       33:  426:/*EOF*/
       33:       33:  427:/*EOF*/
       33:       33:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       33:       33:  430:/*EOF*/
       33:       33:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       33:       33:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       33:       33:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       33:       33:  447:/*EOF*/
        -:        -:  448:/*EOF*/
       33:       33:  449:/*EOF*/
       25:       25:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        8:        8:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       33:       33:  454:/*EOF*/
       33:       33:  455:/*EOF*/
       33:       33:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        3:        3:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        6:        6:  461:/*EOF*/
        3:        3:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        3:        3:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        3:        3:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        3:        3:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        3:        3:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        3:        3:  475:/*EOF*/
        3:        3:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        3:        3:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        3:        3:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        6:        6:  484:/*EOF*/
        3:        3:  485:/*EOF*/
        3:        3:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        3:        3:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        3:        3:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        3:        3:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        3:        3:  497:/*EOF*/
        3:        3:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        3:        3:  500:/*EOF*/
        3:        3:  501:/*EOF*/
        3:        3:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        3:        3:  504:/*EOF*/
        3:        3:  505:/*EOF*/
        3:        3:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        3:        3:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        3:        3:  510:/*EOF*/
        3:        3:  511:/*EOF*/
        3:        3:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        3:        3:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        3:        5:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        3:        5:  523:/*EOF*/
        3:        5:  524:/*EOF*/
        3:        5:  525:/*EOF*/
        3:        5:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       14:       18:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       14:       18:  531:/*EOF*/
       14:       18:  532:/*EOF*/
       14:       18:  533:/*EOF*/
       14:       18:  534:/*EOF*/
       14:       18:  535:/*EOF*/
       14:       18:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        5:        9:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        5:        9:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        5:        9:  585:/*EOF*/
        5:        9:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        5:        9:  594:/*EOF*/
        5:        9:  595:/*EOF*/
        5:        9:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
       68:       68: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
       68:       68: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
      136:      136: 1173:/*EOF*/
      136:      136: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
      172:      172: 1176:/*EOF*/
       61:       61: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
       49:       49: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
       49:       49: 1182:/*EOF*/
       49:       49: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
       49:       49: 1185:/*EOF*/
       12:       12: 1186:/*EOF*/
       12:       12: 1187:/*EOF*/
       12:       12: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
       37:       37: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
       49:       49: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
       19:       19: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
       19:       19: 1197:/*EOF*/
       19:       19: 1198:/*EOF*/
       19:       19: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
       19:       19: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        6:        6: 1208:/*EOF*/
       30:       30: 1209:/*EOF*/
       24:       24: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        6:        6: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
       19:       19: 1216:/*EOF*/
       19:       19: 1217:/*EOF*/
       19:       19: 1218:/*EOF*/
       19:       19: 1219:/*EOF*/
       19:       19: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
       19:       19: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
       19:       19: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
       82:       88: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
       82:       88: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
       82:       88: 1250:/*EOF*/
       82:       88: 1251:/*EOF*/
       82:       88: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
       82:       88: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
       82:       88: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
       82:       88: 1273:/*EOF*/
       82:       88: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
       82:       88: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
       82:       88: 1278:/*EOF*/
       82:       88: 1279:/*EOF*/
       82:       88: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
       82:       88: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
      128:      138: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
      128:      138: 1287:/*EOF*/
      128:      138: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
       82:       88: 1295:/*EOF*/
       82:       88: 1296:/*EOF*/
       82:       88: 1297:/*EOF*/
       82:       88: 1298:/*EOF*/
       82:       88: 1299:/*EOF*/
       82:       88: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
      128:      138: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
       37:       39: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       37:       39: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        3:        3: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        3:        3: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
       43:       45: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
       43:       45: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
    #####:    #####: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
       43:       45: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
      123:      129: 1415:/*EOF*/
       80:       84: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
      123:      129: 1419:/*EOF*/
       80:       84: 1420:/*EOF*/
       80:       84: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
       43:       45: 1426:/*EOF*/
       43:       45: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
       43:       45: 1431:/*EOF*/
    #####:    #####: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
        1:        1: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        4:        4: 1460:/*EOF*/
        4:        4: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        1:        1: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
    #####:    #####: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
    #####:    #####: 1649:/*EOF*/
    #####:    #####: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        9:        9: 1654:/*EOF*/
        9:        9: 1655:/*EOF*/
        6:        6: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        4:        4: 1662:/*EOF*/
        4:        4: 1663:/*EOF*/
        2:        2: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
       10:       10: 1674:/*EOF*/
       10:       10: 1675:/*EOF*/
        5:        5: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
    #####:    #####: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
    #####:    #####: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        2:        2: 1745:/*EOF*/
        2:        2: 1746:/*EOF*/
        2:        2: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        2:        2: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        6:        8: 1757:/*EOF*/
        6:        8: 1758:/*EOF*/
        3:        5: 1759:/*EOF*/
        3:        3: 1760:/*EOF*/
        3:        3: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        6:        8: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
       16:       16: 1769:/*EOF*/
       16:       16: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
       16:       16: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
       16:       16: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
    #####:    #####: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
    #####:    #####: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
    #####:    #####: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
    #####:    #####: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        3:        5: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        3:        5: 1895:/*EOF*/
        6:       10: 1896:/*EOF*/
        9:       15: 1897:/*EOF*/
        3:        5: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
    #####:    #####: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
    #####:    #####: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
    #####:    #####: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
       34:       36: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
       34:       36: 2100:/*EOF*/
       34:       36: 2101:/*EOF*/
       34:       36: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
       34:       36: 2104:/*EOF*/
       34:       36: 2105:/*EOF*/
       34:       36: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
      165:      169: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
      165:      169: 2112:/*EOF*/
      165:      169: 2113:/*EOF*/
      165:      169: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
      165:      169: 2116:/*EOF*/
      165:      169: 2117:/*EOF*/
      165:      169: 2118:/*EOF*/
      165:      169: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       15:       15: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
       15:       15: 2138:/*EOF*/
       15:       15: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       15:       15: 2141:/*EOF*/
       15:       15: 2142:/*EOF*/
       15:       15: 2143:/*EOF*/
       15:       15: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
       15:       15: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
       15:       15: 2153:/*EOF*/
       15:       15: 2154:/*EOF*/
       15:       15: 2155:/*EOF*/
       15:       15: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/

src/compiler/glsl/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      385:      393:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      385:      393:  103:/*EOF*/

src/compiler/glsl/hir_field_selection.cpp.gcov

        -:        -:    0:Source:glsl/hir_field_selection.cpp
        -:        -:    0:Graph:.libs/hir_field_selection.gcno
        -:        -:    0:Data:.libs/hir_field_selection.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       14:       15:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       14:       15:   34:/*EOF*/
       14:       15:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       14:       15:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       14:       15:   46:/*EOF*/
       14:       15:   47:/*EOF*/
        -:        -:   48:/*EOF*/
       14:       15:   49:/*EOF*/
       14:       15:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       28:       30:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
       14:       15:   61:/*EOF*/
       14:       15:   62:/*EOF*/
       28:       30:   63:/*EOF*/
       14:       15:   64:/*EOF*/
       14:       15:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       14:       15:   80:/*EOF*/

src/compiler/glsl/ir_array_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_array_refcount.cpp
        -:        -:    0:Graph:.libs/ir_array_refcount.gcno
        -:        -:    0:Data:.libs/ir_array_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        3:        3:   36:/*EOF*/
        3:        3:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        3:        3:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       23:       23:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       23:       23:   47:/*EOF*/
       23:       23:   48:/*EOF*/
       23:       23:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        6:        6:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        3:        3:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       23:       23:   57:/*EOF*/
       23:       23:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       23:       23:   60:/*EOF*/
       23:       23:   61:/*EOF*/
       23:       23:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       23:       23:   65:/*EOF*/
       24:       24:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       23:       23:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       46:       46:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       23:       23:   76:/*EOF*/
       23:       23:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       15:       15:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       15:       15:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       15:       15:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       15:       15:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       30:       30:  100:/*EOF*/
       15:       15:  101:/*EOF*/
       15:       15:  102:/*EOF*/
       15:       15:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       15:       15:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      116:      120:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      116:      120:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      116:      120:  132:/*EOF*/
      116:      120:  133:/*EOF*/
       93:       97:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       23:       23:  136:/*EOF*/
       23:       23:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       23:       23:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       15:       15:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       15:       15:  146:/*EOF*/
        1:        1:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        1:        1:  152:/*EOF*/
        1:        1:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
       15:       15:  156:/*EOF*/
       15:       15:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       15:       15:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       19:       19:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       19:       19:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       15:       15:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       15:       15:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       15:       15:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       15:       15:  186:/*EOF*/
       45:       45:  187:/*EOF*/
       15:       15:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       15:       15:  190:/*EOF*/
       15:       15:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       15:       15:  193:/*EOF*/
       15:       15:  194:/*EOF*/
       15:       15:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       15:       15:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       15:       15:  199:/*EOF*/
       15:       15:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       15:       15:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       15:       15:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       15:       15:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       15:       15:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       15:       15:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       15:       15:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       15:       15:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      101:      105:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      101:      105:  237:/*EOF*/
      101:      105:  238:/*EOF*/
        -:        -:  239:/*EOF*/
      101:      105:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      101:      105:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        3:        3:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        3:        3:  252:/*EOF*/
        3:        3:  253:/*EOF*/

src/compiler/glsl/ir_basic_block.cpp.gcov

        -:        -:    0:Source:glsl/ir_basic_block.cpp
        -:        -:    0:Graph:.libs/ir_basic_block.gcno
        -:        -:    0:Data:.libs/ir_basic_block.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      494:      648:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      494:      648:   56:/*EOF*/
      494:      648:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     3062:     3370:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
     2568:     2722:   64:/*EOF*/
      576:      730:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     2568:     2722:   67:/*EOF*/
      184:      246:   68:/*EOF*/
      184:      246:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      184:      246:   71:/*EOF*/
      184:      246:   72:/*EOF*/
     2384:     2476:   73:/*EOF*/
       48:       78:   74:/*EOF*/
       48:       78:   75:/*EOF*/
       48:       78:   76:/*EOF*/
     2336:     2398:   77:/*EOF*/
      102:      164:   78:/*EOF*/
      102:      164:   79:/*EOF*/
     2234:     2234:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       84:       84:   90:/*EOF*/
       42:       42:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
     2568:     2722:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      494:      648:   96:/*EOF*/
      242:      242:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      494:      648:   99:/*EOF*/

src/compiler/glsl/ir_clone.cpp.gcov

        -:        -:    0:Source:glsl/ir_clone.cpp
        -:        -:    0:Graph:.libs/ir_clone.gcno
        -:        -:    0:Data:.libs/ir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      263:      263:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      263:      263:   43:/*EOF*/
      526:      526:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      263:      263:   46:/*EOF*/
      263:      263:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      263:      263:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      263:      263:   56:/*EOF*/
       60:       60:   57:/*EOF*/
       60:       60:   58:/*EOF*/
      120:      120:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      263:      263:   62:/*EOF*/
       12:       12:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      263:      263:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       16:       16:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      263:      263:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      263:      263:   71:/*EOF*/
      263:      263:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      263:      263:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        7:       10:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        7:       10:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       72:       72:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       72:       72:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       72:       72:   88:/*EOF*/
       72:       72:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       72:       72:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        9:       17:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        9:       17:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       16:       24:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       16:       24:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       38:       54:  118:/*EOF*/
       22:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       22:       30:  122:/*EOF*/
        6:        6:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       16:       24:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        4:        7:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        4:        7:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       27:       41:  134:/*EOF*/
       23:       34:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        4:        7:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        2:        2:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        2:        2:  144:/*EOF*/
        2:        2:  145:/*EOF*/
        2:        2:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        2:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        4:        4:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        2:        2:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      103:      106:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      103:      106:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
      293:      302:  163:/*EOF*/
      190:      196:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      103:      106:  167:/*EOF*/
      206:      212:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      338:      346:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      338:      346:  176:/*EOF*/
      268:      276:  177:/*EOF*/
      268:      276:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       70:       70:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      338:      346:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       22:       22:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       22:       22:  189:/*EOF*/
       44:       44:  190:/*EOF*/
       66:       66:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       54:       54:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       54:       54:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       54:       54:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       54:       54:  258:/*EOF*/
       54:       54:  259:/*EOF*/
      108:      108:  260:/*EOF*/
       54:       54:  261:/*EOF*/
       54:       54:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        9:        9:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        9:        9:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        9:        9:  270:/*EOF*/
        9:        9:  271:/*EOF*/
        9:        9:  272:/*EOF*/
        9:        9:  273:/*EOF*/
        9:        9:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       77:       77:  277:/*EOF*/
       68:       68:  278:/*EOF*/
       68:       68:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       68:       68:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       68:       68:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        9:        9:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       68:       68:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       68:       68:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       68:       68:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
      172:      172:  299:/*EOF*/
      104:      104:  300:/*EOF*/
      104:      104:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       68:       68:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       68:       68:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       68:       68:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       68:       68:  313:/*EOF*/
       68:       68:  314:/*EOF*/
       68:       68:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
      190:      190:  319:/*EOF*/
      122:      122:  320:/*EOF*/
        -:        -:  321:/*EOF*/
      122:      122:  322:/*EOF*/
      122:      122:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       68:       68:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       74:       79:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       74:       79:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       74:       79:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        3:        3:  388:/*EOF*/
        3:        3:  389:/*EOF*/
        3:        3:  390:/*EOF*/
        3:        3:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        2:        2:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        2:        2:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        2:        2:  401:/*EOF*/
        2:        2:  402:/*EOF*/
        2:        2:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        2:        2:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        3:        3:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        3:        3:  420:/*EOF*/
        3:        3:  421:/*EOF*/
        3:        3:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        3:        3:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        3:        3:  429:/*EOF*/
        -:        -:  430:/*EOF*/
      112:      112:  431:/*EOF*/
      109:      109:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      109:      109:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        3:        3:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        3:        3:  444:/*EOF*/
        3:        3:  445:/*EOF*/

src/compiler/glsl/ir_constant_expression.cpp.gcov

        -:        -:    0:Source:glsl/ir_constant_expression.cpp
        -:        -:    0:Graph:.libs/ir_constant_expression.gcno
        -:        -:    0:Data:.libs/ir_constant_expression.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
        -:        -:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
      191:      208:  631:/*EOF*/
        -:        -:  632:/*EOF*/
      191:      208:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      191:      208:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
      191:      208:  639:/*EOF*/
        -:        -:  640:/*EOF*/
      191:      208:  641:/*EOF*/
      191:      208:  642:/*EOF*/
      191:      208:  643:/*EOF*/
      191:      208:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
       97:      128:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       97:      128:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       97:      128:  714:/*EOF*/
       12:       12:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       48:       48:  718:/*EOF*/
       48:       48:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       24:       24:  721:/*EOF*/
       12:       12:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       12:       12:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
       12:       12:  732:/*EOF*/
       12:       12:  733:/*EOF*/
        -:        -:  734:/*EOF*/
       85:      116:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
     1132:     1212:  740:/*EOF*/
        -:        -:  741:/*EOF*/
     1132:     1212:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
     1132:     1212:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
     1132:     1212:  755:/*EOF*/
      151:      151:  756:/*EOF*/
        -:        -:  757:/*EOF*/
      981:     1061:  758:/*EOF*/
      978:     1056:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        3:        5:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
      137:      137:  766:/*EOF*/
        -:        -:  767:/*EOF*/
      137:      137:  768:/*EOF*/
      137:      137:  769:/*EOF*/
        -:        -:  770:/*EOF*/
      137:      137:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
      137:      137:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
      280:      295:  844:/*EOF*/
        -:        -:  845:/*EOF*/
      280:      295:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        6:        6:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        6:        6:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
       13:       13:  965:/*EOF*/
        -:        -:  966:/*EOF*/
       13:       13:  967:/*EOF*/
       13:       13:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
       13:       13:  975:/*EOF*/
        8:        8:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        5:        5:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        5:        5:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        5:        5: 1000:/*EOF*/
        5:        5: 1001:/*EOF*/
        5:        5: 1002:/*EOF*/
        5:        5: 1003:/*EOF*/
        5:        5: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/

src/compiler/glsl/ir.cpp.gcov

        -:        -:    0:Source:glsl/ir.cpp
        -:        -:    0:Graph:.libs/ir.gcno
        -:        -:    0:Data:.libs/ir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    17530:    17557:   28:/*EOF*/
    17530:    17557:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    17530:    17557:   31:/*EOF*/
    17530:    17557:   32:/*EOF*/
        -:        -:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       12:       12:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       12:       12:   59:/*EOF*/
        8:        8:   60:/*EOF*/
        2:        2:   61:/*EOF*/
        2:        2:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       12:       12:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      135:      135:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      135:      135:   71:/*EOF*/
      135:      135:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      147:      147:   74:/*EOF*/
      141:      141:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      141:      141:   77:/*EOF*/
      135:      135:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        6:        6:   80:/*EOF*/
        6:        6:   81:/*EOF*/
        -:        -:   82:/*EOF*/
       12:       12:   83:/*EOF*/
        6:        6:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        6:        6:   86:/*EOF*/
        6:        6:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        6:        6:   94:/*EOF*/
        6:        6:   95:/*EOF*/
        6:        6:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        6:        6:   99:/*EOF*/
        6:        6:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        6:        6:  102:/*EOF*/
        6:        6:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      135:      135:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        6:        6:  110:/*EOF*/
        6:        6:  111:/*EOF*/
       30:       30:  112:/*EOF*/
       24:       24:  113:/*EOF*/
        6:        6:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        6:        6:  116:/*EOF*/
        6:        6:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      135:      135:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      135:      135:  122:/*EOF*/
      135:      135:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
     1243:     1299:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     1243:     1299:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     1243:     1299:  130:/*EOF*/
       24:       24:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     1219:     1275:  133:/*EOF*/
      953:     1009:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      266:      266:  136:/*EOF*/
      266:      266:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      266:      266:  139:/*EOF*/
      178:      178:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       88:       88:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      878:      878:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      878:      878:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      878:      878:  153:/*EOF*/
      878:      878:  154:/*EOF*/
      878:      878:  155:/*EOF*/
      878:      878:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      878:      878:  158:/*EOF*/
      878:      878:  159:/*EOF*/
     4390:     4390:  160:/*EOF*/
     3512:     3512:  161:/*EOF*/
     1369:     1369:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      878:      878:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      878:      878:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      134:      134:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      134:      134:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      134:      134:  173:/*EOF*/
      134:      134:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      134:      134:  183:/*EOF*/
       24:       24:  184:/*EOF*/
      110:      110:  185:/*EOF*/
      110:      110:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      134:      134:  190:/*EOF*/
      134:      134:  191:/*EOF*/
        -:        -:  192:/*EOF*/
      143:      148:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
      143:      148:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      143:      148:  198:/*EOF*/
      143:      148:  199:/*EOF*/
      143:      148:  200:/*EOF*/
      143:      148:  201:/*EOF*/
      143:      148:  202:/*EOF*/
      143:      148:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      143:      148:  205:/*EOF*/
      431:      446:  206:/*EOF*/
      288:      298:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      143:      148:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      765:      766:  212:/*EOF*/
      765:      766:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      765:      766:  215:/*EOF*/
      765:      766:  216:/*EOF*/
      765:      766:  217:/*EOF*/
      765:      766:  218:/*EOF*/
      765:      766:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      765:      766:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      765:      766:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      492:      493:  252:/*EOF*/
      492:      493:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       43:       43:  266:/*EOF*/
       86:       86:  267:/*EOF*/
       43:       43:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       62:       62:  278:/*EOF*/
      124:      124:  279:/*EOF*/
       62:       62:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       19:       19:  295:/*EOF*/
       38:       38:  296:/*EOF*/
       19:       19:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       24:       24:  305:/*EOF*/
       48:       48:  306:/*EOF*/
       24:       24:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        2:        2:  315:/*EOF*/
        4:        4:  316:/*EOF*/
        2:        2:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        4:        4:  324:/*EOF*/
        8:        8:  325:/*EOF*/
        4:        4:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       40:       40:  328:/*EOF*/
       40:       40:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        8:        8:  333:/*EOF*/
        8:        8:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        3:        3:  337:/*EOF*/
        3:        3:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        5:        5:  345:/*EOF*/
        5:        5:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        1:        1:  349:/*EOF*/
        1:        1:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        5:        5:  353:/*EOF*/
        5:        5:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       12:       12:  357:/*EOF*/
       12:       12:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        3:        3:  363:/*EOF*/
        3:        3:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        2:        2:  368:/*EOF*/
        2:        2:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        4:        4:  372:/*EOF*/
        4:        4:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        4:        4:  375:/*EOF*/
        8:        8:  376:/*EOF*/
        4:        4:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        1:        1:  385:/*EOF*/
        1:        1:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       12:       12:  389:/*EOF*/
       12:       12:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        3:        3:  395:/*EOF*/
        3:        3:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        8:        8:  400:/*EOF*/
       16:       16:  401:/*EOF*/
        8:        8:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        4:        4:  405:/*EOF*/
        8:        8:  406:/*EOF*/
        4:        4:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        4:        4:  409:/*EOF*/
        8:        8:  410:/*EOF*/
        4:        4:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
      765:      766:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     2123:     2123:  420:/*EOF*/
     2123:     2123:  421:/*EOF*/
        -:        -:  422:/*EOF*/
     2123:     2123:  423:/*EOF*/
     2123:     2123:  424:/*EOF*/
     2123:     2123:  425:/*EOF*/
     2123:     2123:  426:/*EOF*/
     2123:     2123:  427:/*EOF*/
        -:        -:  428:/*EOF*/
     2123:     2123:  429:/*EOF*/
        -:        -:  430:/*EOF*/
     2123:     2123:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        6:        6:  434:/*EOF*/
        6:        6:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
     1683:     1683:  445:/*EOF*/
      954:      954:  446:/*EOF*/
      729:      729:  447:/*EOF*/
      270:      270:  448:/*EOF*/
        -:        -:  449:/*EOF*/
      459:      459:  450:/*EOF*/
      178:      178:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      281:      281:  453:/*EOF*/
      281:      281:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
     1683:     1683:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
       38:       38:  465:/*EOF*/
       38:       38:  466:/*EOF*/
       38:       38:  467:/*EOF*/
       32:       32:  468:/*EOF*/
        6:        6:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        6:        6:  472:/*EOF*/
        6:        6:  473:/*EOF*/
        -:        -:  474:/*EOF*/
       38:       38:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      275:      275:  483:/*EOF*/
      275:      275:  484:/*EOF*/
      550:      550:  485:/*EOF*/
      275:      275:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
       44:       44:  489:/*EOF*/
       44:       44:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       62:       62:  500:/*EOF*/
       62:       62:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        3:        3:  504:/*EOF*/
        3:        3:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       12:       12:  508:/*EOF*/
       12:       12:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
     2123:     2123:  515:/*EOF*/
        -:        -:  516:/*EOF*/
       86:       86:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       86:       86:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       86:       86:  521:/*EOF*/
       86:       86:  522:/*EOF*/
       86:       86:  523:/*EOF*/
       86:       86:  524:/*EOF*/
       86:       86:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       86:       86:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       86:       86:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
       30:       30:  534:/*EOF*/
       30:       30:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
       56:       56:  538:/*EOF*/
       56:       56:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
       86:       86:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    34654:    37828:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    34654:    37828:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    34654:    37828:  552:/*EOF*/
     4098:     4392:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    30556:    33436:  555:/*EOF*/
    30467:    33347:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       89:       89:  558:/*EOF*/
       81:       81:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        8:        8:  561:/*EOF*/
        8:        8:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        2:        2:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        2:        2:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        2:        2:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
       16:       16:  612:/*EOF*/
       16:       16:  613:/*EOF*/
        -:        -:  614:/*EOF*/
       16:       16:  615:/*EOF*/
       16:       16:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      134:      139:  618:/*EOF*/
        -:        -:  619:/*EOF*/
      134:      139:  620:/*EOF*/
        -:        -:  621:/*EOF*/
      134:      139:  622:/*EOF*/
        -:        -:  623:/*EOF*/
      268:      278:  624:/*EOF*/
      134:      139:  625:/*EOF*/
        -:        -:  626:/*EOF*/
      134:      139:  627:/*EOF*/
      134:      139:  628:/*EOF*/
      134:      139:  629:/*EOF*/
        -:        -:  630:/*EOF*/
      278:      279:  631:/*EOF*/
      278:      279:  632:/*EOF*/
        -:        -:  633:/*EOF*/
      278:      279:  634:/*EOF*/
      278:      279:  635:/*EOF*/
      610:      612:  636:/*EOF*/
      332:      333:  637:/*EOF*/
        -:        -:  638:/*EOF*/
     4394:     4410:  639:/*EOF*/
     4116:     4131:  640:/*EOF*/
        -:        -:  641:/*EOF*/
      278:      279:  642:/*EOF*/
        -:        -:  643:/*EOF*/
       48:       48:  644:/*EOF*/
       48:       48:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       48:       48:  647:/*EOF*/
       48:       48:  648:/*EOF*/
       96:       96:  649:/*EOF*/
       48:       48:  650:/*EOF*/
        -:        -:  651:/*EOF*/
      768:      768:  652:/*EOF*/
      720:      720:  653:/*EOF*/
        -:        -:  654:/*EOF*/
       48:       48:  655:/*EOF*/
        -:        -:  656:/*EOF*/
       54:       54:  657:/*EOF*/
       54:       54:  658:/*EOF*/
        -:        -:  659:/*EOF*/
       54:       54:  660:/*EOF*/
       54:       54:  661:/*EOF*/
      126:      126:  662:/*EOF*/
       72:       72:  663:/*EOF*/
        -:        -:  664:/*EOF*/
      846:      846:  665:/*EOF*/
      792:      792:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       54:       54:  668:/*EOF*/
        -:        -:  669:/*EOF*/
     1379:     1379:  670:/*EOF*/
     1379:     1379:  671:/*EOF*/
        -:        -:  672:/*EOF*/
     1379:     1379:  673:/*EOF*/
     1379:     1379:  674:/*EOF*/
     2770:     2770:  675:/*EOF*/
     1391:     1391:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    22052:    22052:  678:/*EOF*/
    20673:    20673:  679:/*EOF*/
        -:        -:  680:/*EOF*/
     1379:     1379:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       15:       15:  709:/*EOF*/
       15:       15:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       15:       15:  712:/*EOF*/
       15:       15:  713:/*EOF*/
       42:       42:  714:/*EOF*/
       27:       27:  715:/*EOF*/
        -:        -:  716:/*EOF*/
      228:      228:  717:/*EOF*/
      213:      213:  718:/*EOF*/
        -:        -:  719:/*EOF*/
       15:       15:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
       16:       16:  903:/*EOF*/
        -:        -:  904:/*EOF*/
       26:       26:  905:/*EOF*/
       16:       16:  906:/*EOF*/
        -:        -:  907:/*EOF*/
       16:       16:  908:/*EOF*/
       16:       16:  909:/*EOF*/
       16:       16:  910:/*EOF*/
        -:        -:  911:/*EOF*/
       16:       16:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
       16:       16:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
       16:       16:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        2:        2:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        2:        2:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        2:        2:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
       15:       15:  990:/*EOF*/
        -:        -:  991:/*EOF*/
       15:       15:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
       15:       15:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
       24:       24: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
       24:       24: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
       24:       24: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       24:       24: 1309:/*EOF*/
       24:       24: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
       24:       24: 1316:/*EOF*/
       24:       24: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
       24:       24: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
       24:       24: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
       14:       18: 1379:/*EOF*/
       14:       18: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
       14:       18: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
     8964:     8975: 1385:/*EOF*/
     8964:     8975: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
     8964:     8975: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
     8964:     8975: 1390:/*EOF*/
     8964:     8975: 1391:/*EOF*/
     8964:     8975: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
       38:       38: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
       38:       38: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
       38:       38: 1399:/*EOF*/
       38:       38: 1400:/*EOF*/
       38:       38: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
     1172:     1172: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
     1172:     1172: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
     1172:     1172: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
     1172:     1172: 1410:/*EOF*/
     1172:     1172: 1411:/*EOF*/
     1172:     1172: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
     1210:     1210: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
     1210:     1210: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
     1210:     1210: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
     1210:     1210: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
     1210:     1210: 1424:/*EOF*/
       30:       30: 1425:/*EOF*/
     1180:     1180: 1426:/*EOF*/
     1172:     1172: 1427:/*EOF*/
        8:        8: 1428:/*EOF*/
        8:        8: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
     1210:     1210: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
       17:       17: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
       17:       17: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
       17:       17: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
       17:       17: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
       17:       17: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
      701:      701: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
      701:      701: 1503:/*EOF*/
      701:      701: 1504:/*EOF*/
      701:      701: 1505:/*EOF*/
      701:      701: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
     1335:     1335: 1508:/*EOF*/
      634:      634: 1509:/*EOF*/
       73:       73: 1510:/*EOF*/
      628:      628: 1511:/*EOF*/
       54:       54: 1512:/*EOF*/
       54:       54: 1513:/*EOF*/
      574:      574: 1514:/*EOF*/
        6:        6: 1515:/*EOF*/
        6:        6: 1516:/*EOF*/
        6:        6: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
      568:      568: 1519:/*EOF*/
      568:      568: 1520:/*EOF*/
       94:       94: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
      474:      474: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
      701:      701: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
     1592:     1593: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
     1592:     1593: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
     1592:     1593: 1533:/*EOF*/
     1592:     1593: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
     1592:     1593: 1536:/*EOF*/
     1592:     1593: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        8:        8: 1539:/*EOF*/
        8:        8: 1540:/*EOF*/
        8:        8: 1541:/*EOF*/
        8:        8: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
       61:       61: 1545:/*EOF*/
       61:       61: 1546:/*EOF*/
       61:       61: 1547:/*EOF*/
       61:       61: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
      206:      206: 1551:/*EOF*/
      206:      206: 1552:/*EOF*/
      206:      206: 1553:/*EOF*/
      206:      206: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
     1592:     1593: 1557:/*EOF*/
     1592:     1593: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
     1592:     1593: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
     1592:     1593: 1567:/*EOF*/
     1592:     1593: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
     1342:     1343: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
     1342:     1343: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
     1342:     1343: 1574:/*EOF*/
     1342:     1343: 1575:/*EOF*/
     1342:     1343: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
      250:      250: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
      250:      250: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
      250:      250: 1582:/*EOF*/
      250:      250: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
       22:       25: 1585:/*EOF*/
       22:       25: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
       22:       25: 1588:/*EOF*/
       22:       25: 1589:/*EOF*/
       22:       25: 1590:/*EOF*/
       44:       50: 1591:/*EOF*/
       22:       25: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
       14:       15: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
       14:       15: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
       14:       15: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
       14:       15: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
       14:       15: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
       28:       30: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
       14:       15: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
       14:       15: 1660:/*EOF*/
       14:       15: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
       14:       15: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       42:       45: 1668:/*EOF*/
       56:       60: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
       11:       11: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
       11:       11: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
     6810:     6810: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
     6810:     6810: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
     6810:     6810: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
     6810:     6810: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
     6810:     6810: 1704:/*EOF*/
    #####:    #####: 1705:/*EOF*/
     6810:     6810: 1706:/*EOF*/
     6810:     6810: 1707:/*EOF*/
      727:      727: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
    13620:    13620: 1710:/*EOF*/
     6810:     6810: 1711:/*EOF*/
     6585:     6585: 1712:/*EOF*/
     6585:     6585: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
      225:      225: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
     6810:     6810: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
     6810:     6810: 1720:/*EOF*/
     6810:     6810: 1721:/*EOF*/
     6810:     6810: 1722:/*EOF*/
     6810:     6810: 1723:/*EOF*/
     6810:     6810: 1724:/*EOF*/
     6810:     6810: 1725:/*EOF*/
     6810:     6810: 1726:/*EOF*/
     6810:     6810: 1727:/*EOF*/
     6810:     6810: 1728:/*EOF*/
     6810:     6810: 1729:/*EOF*/
     6810:     6810: 1730:/*EOF*/
     6810:     6810: 1731:/*EOF*/
     6810:     6810: 1732:/*EOF*/
     6810:     6810: 1733:/*EOF*/
     6810:     6810: 1734:/*EOF*/
     6810:     6810: 1735:/*EOF*/
     6810:     6810: 1736:/*EOF*/
     6810:     6810: 1737:/*EOF*/
     6810:     6810: 1738:/*EOF*/
     6810:     6810: 1739:/*EOF*/
     6810:     6810: 1740:/*EOF*/
     6810:     6810: 1741:/*EOF*/
     6810:     6810: 1742:/*EOF*/
     6810:     6810: 1743:/*EOF*/
     6810:     6810: 1744:/*EOF*/
     6810:     6810: 1745:/*EOF*/
     6810:     6810: 1746:/*EOF*/
     6810:     6810: 1747:/*EOF*/
     6810:     6810: 1748:/*EOF*/
     6810:     6810: 1749:/*EOF*/
     6810:     6810: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
     6810:     6810: 1752:/*EOF*/
     6800:     6800: 1753:/*EOF*/
      701:      701: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
     6800:     6800: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
     6800:     6800: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
     6810:     6810: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
    #####:    #####: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
     2374:     2374: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
     2374:     2374: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
     2374:     2374: 1811:/*EOF*/
     2374:     2374: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
     4488:     4488: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
     4488:     4488: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
     4108:     4108: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
     4108:     4108: 1831:/*EOF*/
     4098:     4098: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
       10:       10: 1834:/*EOF*/
       10:       10: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
    #####:    #####: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
    #####:    #####: 1846:/*EOF*/
    #####:    #####: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
     2305:     2305: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
     2305:     2305: 1889:/*EOF*/
     2305:     2305: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
      292:      292: 1893:/*EOF*/
      292:      292: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
      292:      292: 1896:/*EOF*/
      292:      292: 1897:/*EOF*/
      292:      292: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        5:        5: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        5:        5: 1904:/*EOF*/
        2:        2: 1905:/*EOF*/
        2:        2: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        3:        3: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
       56:       66: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
      744:      764: 1925:/*EOF*/
      688:      698: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
       56:       66: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
     1034:     1084: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
     1034:     1084: 1934:/*EOF*/
     1034:     1084: 1935:/*EOF*/
     1034:     1084: 1936:/*EOF*/
     1034:     1084: 1937:/*EOF*/
       12:       12: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
     1034:     1084: 1940:/*EOF*/
       20:       20: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
     1034:     1084: 1943:/*EOF*/
        6:        6: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
     1034:     1084: 1949:/*EOF*/
      137:      142: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
      137:      142: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
     1034:     1084: 1961:/*EOF*/
     1034:     1084: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        9:        9: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
      140:      140: 1968:/*EOF*/
      131:      131: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        9:        9: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/

src/compiler/glsl/ir_expression_flattening.cpp.gcov

        -:        -:    0:Source:glsl/ir_expression_flattening.cpp
        -:        -:    0:Graph:.libs/ir_expression_flattening.gcno
        -:        -:    0:Data:.libs/ir_expression_flattening.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        7:        7:   40:/*EOF*/
        7:        7:   41:/*EOF*/
        7:        7:   42:/*EOF*/
        7:        7:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        7:        7:   45:/*EOF*/
        7:        7:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        7:        7:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        7:        7:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       14:       14:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       36:       36:   60:/*EOF*/
       29:       29:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        7:        7:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      981:     1021:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      981:     1021:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      981:     1021:   72:/*EOF*/
      978:     1018:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        6:        6:   82:/*EOF*/
        3:        3:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        3:        3:   85:/*EOF*/

src/compiler/glsl/ir_function_detect_recursion.cpp.gcov

        -:        -:    0:Source:glsl/ir_function_detect_recursion.cpp
        -:        -:    0:Graph:.libs/ir_function_detect_recursion.gcno
        -:        -:    0:Data:.libs/ir_function_detect_recursion.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        8:        8:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        7:        7:  138:/*EOF*/
        7:        7:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        7:        7:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        7:        7:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        5:        5:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        5:        5:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        5:        5:  166:/*EOF*/
       10:       10:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        5:        5:  169:/*EOF*/
        5:        5:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       11:       11:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       11:       11:  175:/*EOF*/
       11:       11:  176:/*EOF*/
        7:        7:  177:/*EOF*/
        7:        7:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        4:        4:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       11:       11:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        7:        7:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        7:        7:  188:/*EOF*/
        7:        7:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        7:        7:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        7:        7:  195:/*EOF*/
        7:        7:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        4:        4:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        4:        4:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        4:        4:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        4:        4:  212:/*EOF*/
        4:        4:  213:/*EOF*/
        4:        4:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        4:        4:  218:/*EOF*/
        4:        4:  219:/*EOF*/
        4:        4:  220:/*EOF*/
        4:        4:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        4:        4:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        8:        8:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        4:        4:  240:/*EOF*/
        4:        4:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        4:        4:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        7:        7:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        7:        7:  252:/*EOF*/
        7:        7:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        7:        7:  255:/*EOF*/
       15:       11:  256:/*EOF*/
        4:        2:  257:/*EOF*/
        4:        2:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:        2:  261:/*EOF*/
    #####:        2:  262:/*EOF*/
    #####:        2:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        7:        7:  266:/*EOF*/
        7:        7:  267:/*EOF*/
        7:        7:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        7:        7:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        4:        4:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        2:        2:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        2:        2:  327:/*EOF*/
        4:        4:  328:/*EOF*/
        4:        4:  329:/*EOF*/
        4:        4:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        2:        2:  335:/*EOF*/
        2:        2:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        3:        3:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        6:        6:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        3:        3:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        3:        3:  353:/*EOF*/
        6:        6:  354:/*EOF*/
        6:        6:  355:/*EOF*/
        6:        6:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        3:        3:  361:/*EOF*/
        3:        3:  362:/*EOF*/

src/compiler/glsl/ir_hierarchical_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_hierarchical_visitor.cpp
        -:        -:    0:Graph:.libs/ir_hierarchical_visitor.gcno
        -:        -:    0:Data:.libs/ir_hierarchical_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
     3088:     3165:   27:/*EOF*/
        -:        -:   28:/*EOF*/
     3088:     3165:   29:/*EOF*/
     3088:     3165:   30:/*EOF*/
     3088:     3165:   31:/*EOF*/
     3088:     3165:   32:/*EOF*/
     3088:     3165:   33:/*EOF*/
     3088:     3165:   34:/*EOF*/
     3088:     3165:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    17477:    17477:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    17477:    17477:   49:/*EOF*/
      829:      829:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    17477:    17477:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     8774:     9432:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     8774:     9432:   58:/*EOF*/
      480:      503:   59:/*EOF*/
        -:        -:   60:/*EOF*/
     8774:     9432:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     1481:     2762:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     1481:     2762:   67:/*EOF*/
       61:      107:   68:/*EOF*/
        -:        -:   69:/*EOF*/
     1481:     2762:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    21537:    22436:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    21537:    22436:   76:/*EOF*/
     1143:     1174:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    21537:    22436:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      688:     1136:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      688:     1136:   94:/*EOF*/
       38:       61:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      688:     1136:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      666:     1100:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      666:     1100:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      666:     1100:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      479:      479:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      479:      479:  112:/*EOF*/
       30:       30:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      479:      479:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      510:      510:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      510:      510:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      510:      510:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      599:      599:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      599:      599:  130:/*EOF*/
       30:       30:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      599:      599:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      637:      637:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      637:      637:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      637:      637:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
     7329:     8057:  146:/*EOF*/
        -:        -:  147:/*EOF*/
     7329:     8057:  148:/*EOF*/
      449:      474:  149:/*EOF*/
        -:        -:  150:/*EOF*/
     7329:     8057:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     5066:     5564:  155:/*EOF*/
        -:        -:  156:/*EOF*/
     5066:     5564:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     5066:     5564:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
     2414:     2997:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     2414:     2997:  184:/*EOF*/
      203:      226:  185:/*EOF*/
        -:        -:  186:/*EOF*/
     2414:     2997:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
     1784:     2213:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1784:     2213:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
     1784:     2213:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
     3615:     3615:  200:/*EOF*/
        -:        -:  201:/*EOF*/
     3615:     3615:  202:/*EOF*/
      161:      161:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     3615:     3615:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     2804:     2804:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     2804:     2804:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
     2804:     2804:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
     9192:     9332:  236:/*EOF*/
        -:        -:  237:/*EOF*/
     9192:     9332:  238:/*EOF*/
      413:      413:  239:/*EOF*/
        -:        -:  240:/*EOF*/
     9192:     9332:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
     5528:     5556:  245:/*EOF*/
        -:        -:  246:/*EOF*/
     5528:     5556:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
     5528:     5556:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
      120:      120:  254:/*EOF*/
        -:        -:  255:/*EOF*/
      120:      120:  256:/*EOF*/
       10:       10:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      120:      120:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      129:      129:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      129:      129:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      129:      129:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      117:      122:  272:/*EOF*/
        -:        -:  273:/*EOF*/
      117:      122:  274:/*EOF*/
       18:       18:  275:/*EOF*/
        -:        -:  276:/*EOF*/
      117:      122:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      100:      103:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      100:      103:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      100:      103:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
     2492:     3378:  308:/*EOF*/
        -:        -:  309:/*EOF*/
     2492:     3378:  310:/*EOF*/
       87:      118:  311:/*EOF*/
        -:        -:  312:/*EOF*/
     2492:     3378:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
     1754:     2390:  317:/*EOF*/
        -:        -:  318:/*EOF*/
     1754:     2390:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
     1754:     2390:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      243:      243:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      243:      243:  364:/*EOF*/
      243:      243:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      757:      757:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      757:      757:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      757:      757:  377:/*EOF*/
      757:      757:  378:/*EOF*/
      757:      757:  379:/*EOF*/
      757:      757:  380:/*EOF*/
        -:        -:  381:/*EOF*/
      757:      757:  382:/*EOF*/
      757:      757:  383:/*EOF*/

src/compiler/glsl/ir_hv_accept.cpp.gcov

        -:        -:    0:Source:glsl/ir_hv_accept.cpp
        -:        -:    0:Graph:.libs/ir_hv_accept.gcno
        -:        -:    0:Data:.libs/ir_hv_accept.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
     9732:    12832:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
     9732:    12832:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    51037:    57271:   52:/*EOF*/
    41317:    44451:   53:/*EOF*/
    40338:    43472:   54:/*EOF*/
    41317:    44451:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    41317:    44451:   57:/*EOF*/
       12:       12:   58:/*EOF*/
        -:        -:   59:/*EOF*/
     9720:    12820:   60:/*EOF*/
     8904:    12004:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     9720:    12820:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    20991:    20991:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    20991:    20991:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      762:     1286:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      762:     1286:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      762:     1286:   86:/*EOF*/
       72:      147:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      690:     1139:   89:/*EOF*/
      690:     1139:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      690:     1139:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
     1486:     2770:   98:/*EOF*/
        -:        -:   99:/*EOF*/
     1486:     2770:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      661:      661:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      661:      661:  107:/*EOF*/
      661:      661:  108:/*EOF*/
      140:      140:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      521:      521:  111:/*EOF*/
      521:      521:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      521:      521:  115:/*EOF*/
      521:      521:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      664:      664:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      664:      664:  123:/*EOF*/
      664:      664:  124:/*EOF*/
        3:        3:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      661:      661:  127:/*EOF*/
      661:      661:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     8168:     8947:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     8168:     8947:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     8168:     8947:  137:/*EOF*/
      173:      184:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    22682:    24881:  140:/*EOF*/
    14687:    16118:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    14687:    16118:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     7995:     8763:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
     2839:     3479:  238:/*EOF*/
        -:        -:  239:/*EOF*/
     2839:     3479:  240:/*EOF*/
     2839:     3479:  241:/*EOF*/
       74:       80:  242:/*EOF*/
        -:        -:  243:/*EOF*/
     2765:     3399:  244:/*EOF*/
     2765:     3399:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    31349:    32880:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    31349:    32880:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
     4272:     4272:  257:/*EOF*/
        -:        -:  258:/*EOF*/
     4272:     4272:  259:/*EOF*/
     4272:     4272:  260:/*EOF*/
      126:      126:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
     4146:     4146:  266:/*EOF*/
     4146:     4146:  267:/*EOF*/
     4146:     4146:  268:/*EOF*/
     4146:     4146:  269:/*EOF*/
        -:        -:  270:/*EOF*/
     4146:     4146:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
     4146:     4146:  274:/*EOF*/
     4146:     4146:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    14592:    14732:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    14592:    14732:  294:/*EOF*/
    14592:    14732:  295:/*EOF*/
     2967:     2967:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    11625:    11765:  298:/*EOF*/
    11625:    11765:  299:/*EOF*/
    11625:    11765:  300:/*EOF*/
    11625:    11765:  301:/*EOF*/
        1:        1:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    11624:    11764:  304:/*EOF*/
    11624:    11764:  305:/*EOF*/
        8:        8:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    11616:    11756:  308:/*EOF*/
     1057:     1057:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    11616:    11756:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
     8774:     9432:  316:/*EOF*/
        -:        -:  317:/*EOF*/
     8774:     9432:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      187:      187:  323:/*EOF*/
        -:        -:  324:/*EOF*/
      187:      187:  325:/*EOF*/
      187:      187:  326:/*EOF*/
       28:       28:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      159:      159:  329:/*EOF*/
      159:      159:  330:/*EOF*/
      159:      159:  331:/*EOF*/
      159:      159:  332:/*EOF*/
      159:      159:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      159:      159:  337:/*EOF*/
      159:      159:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      159:      159:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      128:      133:  346:/*EOF*/
        -:        -:  347:/*EOF*/
      128:      133:  348:/*EOF*/
      128:      133:  349:/*EOF*/
        1:        1:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      127:      132:  352:/*EOF*/
      127:      132:  353:/*EOF*/
      127:      132:  354:/*EOF*/
      127:      132:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
      127:      132:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
     3204:     4462:  381:/*EOF*/
        -:        -:  382:/*EOF*/
     3204:     4462:  383:/*EOF*/
     3204:     4462:  384:/*EOF*/
      451:      734:  385:/*EOF*/
        -:        -:  386:/*EOF*/
     2753:     3728:  387:/*EOF*/
     2753:     3728:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
     2753:     3728:  391:/*EOF*/
     2753:     3728:  392:/*EOF*/
     2753:     3728:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
     2753:     3728:  397:/*EOF*/
     2753:     3728:  398:/*EOF*/
     2753:     3728:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     2753:     3728:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/

src/compiler/glsl/ir_rvalue_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_rvalue_visitor.cpp
        -:        -:    0:Graph:.libs/ir_rvalue_visitor.gcno
        -:        -:    0:Data:.libs/ir_rvalue_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     3079:     3359:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
     8734:     9535:   42:/*EOF*/
     5655:     6176:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     3079:     3359:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      965:     1116:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      965:     1116:   90:/*EOF*/
      965:     1116:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1660:     1660:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
     1660:     1660:  100:/*EOF*/
     1660:     1660:  101:/*EOF*/
     1660:     1660:  102:/*EOF*/
     1660:     1660:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1660:     1660:  105:/*EOF*/
     1660:     1660:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
     2832:     2832:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     2832:     2832:  119:/*EOF*/
     2832:     2832:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     2832:     2832:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       38:       38:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      114:      114:  128:/*EOF*/
       76:       76:  129:/*EOF*/
       76:       76:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       76:       76:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       38:       38:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       35:       37:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       35:       37:  149:/*EOF*/
       35:       37:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      831:     1113:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      831:     1113:  156:/*EOF*/
      831:     1113:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     2497:     2741:  175:/*EOF*/
        -:        -:  176:/*EOF*/
     2497:     2741:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
      781:      898:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      781:      898:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1326:     1326:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     1326:     1326:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     2309:     2309:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     2309:     2309:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       26:       26:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       26:       26:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       27:       29:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       27:       29:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
      627:      839:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      627:      839:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      556:      590:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      556:      590:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      184:      218:  259:/*EOF*/
        -:        -:  260:/*EOF*/
      184:      218:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      334:      334:  265:/*EOF*/
        -:        -:  266:/*EOF*/
      334:      334:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
      449:      449:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      449:      449:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       12:       12:  283:/*EOF*/
        -:        -:  284:/*EOF*/
       12:       12:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        8:        8:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        8:        8:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      204:      274:  301:/*EOF*/
        -:        -:  302:/*EOF*/
      204:      274:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/

src/compiler/glsl/ir_validate.cpp.gcov

        -:        -:    0:Source:glsl/ir_validate.cpp
        -:        -:    0:Graph:.libs/ir_validate.gcno
        -:        -:    0:Data:.libs/ir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       16:       16:   46:/*EOF*/
       16:       16:   47:/*EOF*/
       16:       16:   48:/*EOF*/
       16:       16:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       16:       16:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       16:       16:   53:/*EOF*/
       16:       16:   54:/*EOF*/
       16:       16:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       16:       16:   57:/*EOF*/
       32:       32:   58:/*EOF*/
       16:       16:   59:/*EOF*/
       16:       16:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      633:      648:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      633:      648:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      633:      648:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      633:      648:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      633:      648:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       94:       94:  111:/*EOF*/
        -:        -:  112:/*EOF*/
      110:      110:  113:/*EOF*/
       16:       16:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       94:       94:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       94:       94:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       94:       94:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       47:       62:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       47:       62:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       47:       62:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       20:       20:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       20:       20:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       20:       20:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       20:       20:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       40:       40:  192:/*EOF*/
       20:       20:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       20:       20:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       20:       20:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       20:       20:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       20:       20:  208:/*EOF*/
       20:       20:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       20:       20:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       20:       20:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       20:       20:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       20:       20:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       20:       20:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      147:      156:  237:/*EOF*/
        -:        -:  238:/*EOF*/
      147:      156:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        2:        3:  244:/*EOF*/
        2:        3:  245:/*EOF*/
        2:        3:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        1:        1:  264:/*EOF*/
        1:        1:  265:/*EOF*/
        1:        1:  266:/*EOF*/
        1:        1:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       16:       16:  287:/*EOF*/
       16:       16:  288:/*EOF*/
       16:       16:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        6:        6:  436:/*EOF*/
        6:        6:  437:/*EOF*/
        6:        6:  438:/*EOF*/
        6:        6:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
       66:       66:  616:/*EOF*/
       66:       66:  617:/*EOF*/
        -:        -:  618:/*EOF*/
       66:       66:  619:/*EOF*/
       66:       66:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       66:       66:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       52:       60:  654:/*EOF*/
       52:       60:  655:/*EOF*/
      104:      120:  656:/*EOF*/
       52:       60:  657:/*EOF*/
       52:       60:  658:/*EOF*/
       52:       60:  659:/*EOF*/
       52:       60:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        3:        3:  732:/*EOF*/
        6:        6:  733:/*EOF*/
        3:        3:  734:/*EOF*/
        3:        3:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        1:        1:  782:/*EOF*/
        1:        1:  783:/*EOF*/
        1:        1:  784:/*EOF*/
        2:        2:  785:/*EOF*/
        1:        1:  786:/*EOF*/
        1:        1:  787:/*EOF*/
        1:        1:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
      147:      156:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       55:       63:  848:/*EOF*/
        -:        -:  849:/*EOF*/
       55:       63:  850:/*EOF*/
        -:        -:  851:/*EOF*/
      129:      145:  852:/*EOF*/
       74:       82:  853:/*EOF*/
        -:        -:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
       55:       63:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
      643:      643:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
      643:      643:  872:/*EOF*/
      300:      300:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      643:      643:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
      643:      643:  881:/*EOF*/
      132:      132:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
      643:      643:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
      643:      643:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
     1286:     1286:  923:/*EOF*/
      300:      300:  924:/*EOF*/
      931:      931:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
      643:      643:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
      249:      249:  935:/*EOF*/
        -:        -:  936:/*EOF*/
      249:      249:  937:/*EOF*/
      249:      249:  938:/*EOF*/
      249:      249:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      249:      249:  946:/*EOF*/
     1245:     1245:  947:/*EOF*/
      996:      996:  948:/*EOF*/
      327:      327:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
      249:      249:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
      249:      249:  961:/*EOF*/
        -:        -:  962:/*EOF*/
      249:      249:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        8:        8:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        8:        8:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        8:        8:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        8:        8:  976:/*EOF*/
        8:        8:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        8:        8:  987:/*EOF*/
        8:        8:  988:/*EOF*/
       16:       16:  989:/*EOF*/
       48:       48:  990:/*EOF*/
       24:       24:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
       24:       24:  995:/*EOF*/
        8:        8:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
       16:       16:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
       16:       16: 1001:/*EOF*/
       16:       16: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
       16:       16: 1006:/*EOF*/
       16:       16: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
       16:       16: 1013:/*EOF*/
       16:       16: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        8:        8: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
     1334:     1397: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
     1334:     1397: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
     1334:     1397: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
     1334:     1397: 1038:/*EOF*/
     1334:     1397: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
     2126:     2204: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
     2126:     2204: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
     2126:     2204: 1050:/*EOF*/
     2126:     2204: 1051:/*EOF*/
     1099:     1139: 1052:/*EOF*/
     2126:     2204: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
       16:       16: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
       32:       32: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
       16:       16: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
      562:      562: 1067:/*EOF*/
      546:      546: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
       16:       16: 1071:/*EOF*/

src/compiler/glsl/ir_variable_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_variable_refcount.cpp
        -:        -:    0:Graph:.libs/ir_variable_refcount.gcno
        -:        -:    0:Data:.libs/ir_variable_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       43:       43:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       43:       43:   40:/*EOF*/
       43:       43:   41:/*EOF*/
       43:       43:   42:/*EOF*/
       43:       43:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     1134:     1137:   46:/*EOF*/
        -:        -:   47:/*EOF*/
     1134:     1137:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
     2534:     2537:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      700:      700:   54:/*EOF*/
      700:      700:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1134:     1137:   58:/*EOF*/
     1134:     1137:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       86:       86:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       43:       43:   63:/*EOF*/
       43:       43:   64:/*EOF*/
       43:       43:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
     1134:     1137:   68:/*EOF*/
        -:        -:   69:/*EOF*/
     1134:     1137:   70:/*EOF*/
     1134:     1137:   71:/*EOF*/
     1134:     1137:   72:/*EOF*/
     1134:     1137:   73:/*EOF*/
     1134:     1137:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
     4940:     5010:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     4940:     5010:   80:/*EOF*/
        -:        -:   81:/*EOF*/
     4940:     5010:   82:/*EOF*/
     4940:     5010:   83:/*EOF*/
     3806:     3873:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     1134:     1137:   86:/*EOF*/
     1134:     1137:   87:/*EOF*/
     1134:     1137:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     1134:     1137:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1101:     1101:   95:/*EOF*/
        -:        -:   96:/*EOF*/
     1101:     1101:   97:/*EOF*/
     1101:     1101:   98:/*EOF*/
     1101:     1101:   99:/*EOF*/
        -:        -:  100:/*EOF*/
     1101:     1101:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
     2491:     2561:  106:/*EOF*/
        -:        -:  107:/*EOF*/
     2491:     2561:  108:/*EOF*/
     2491:     2561:  109:/*EOF*/
        -:        -:  110:/*EOF*/
     2491:     2561:  111:/*EOF*/
     2491:     2561:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     2491:     2561:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       37:       37:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       37:       37:  124:/*EOF*/
       37:       37:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     1012:     1012:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     1012:     1012:  133:/*EOF*/
     1012:     1012:  134:/*EOF*/
     1012:     1012:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
     1012:     1012:  143:/*EOF*/
     1012:     1012:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      752:      752:  146:/*EOF*/
      752:      752:  147:/*EOF*/
      752:      752:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
     1012:     1012:  152:/*EOF*/

src/compiler/glsl/.libs/ast_expr.cpp.gcov

        -:        -:    0:Source:glsl/ast_expr.cpp
        -:        -:    0:Graph:ast_expr.gcno
        -:        -:    0:Data:ast_expr.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
    #####:    #####:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        8:        9:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        8:        9:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        8:        9:   85:/*EOF*/
        8:        9:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/

src/compiler/glsl/.libs/ast_to_hir.cpp.gcov

        -:        -:    0:Source:glsl/ast_to_hir.cpp
        -:        -:    0:Graph:ast_to_hir.gcno
        -:        -:    0:Data:ast_to_hir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        2:        2:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        2:        2:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      113:      114:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      113:      114:   85:/*EOF*/
       46:       46:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       67:       68:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       67:       68:   96:/*EOF*/
       67:       68:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        2:        2:  107:/*EOF*/
        2:        2:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       20:       22:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       20:       22:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       20:       22:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        2:        2:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        2:        2:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        2:        2:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        2:        2:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        2:        2:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        2:        2:  135:/*EOF*/
        2:        2:  136:/*EOF*/
        2:        2:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        2:        2:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        8:        8:  154:/*EOF*/
        6:        6:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        2:        2:  157:/*EOF*/
        2:        2:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        2:        2:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      155:      155:  170:/*EOF*/
      153:      153:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      153:      153:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      150:      150:  176:/*EOF*/
      150:      150:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        2:        2:  181:/*EOF*/
        2:        2:  182:/*EOF*/
        1:        1:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        2:        2:  216:/*EOF*/
        2:        2:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        2:        2:  220:/*EOF*/
        2:        2:  221:/*EOF*/
        2:        2:  222:/*EOF*/
        2:        2:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        2:        2:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       11:       12:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       11:       12:  308:/*EOF*/
       11:       12:  309:/*EOF*/
       11:       12:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        6:        6:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        6:        6:  351:/*EOF*/
        6:        6:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        6:        6:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       12:       12:  371:/*EOF*/
        6:        6:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        6:        6:  378:/*EOF*/
        6:        6:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        6:        6:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        6:        6:  404:/*EOF*/
        6:        6:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        5:        6:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        5:        6:  678:/*EOF*/
        5:        6:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       10:       12:  686:/*EOF*/
        5:        6:  687:/*EOF*/
        5:        6:  688:/*EOF*/
       10:       12:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
       10:       12:  700:/*EOF*/
        5:        6:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        5:        6:  707:/*EOF*/
        5:        6:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        5:        6:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        5:        6:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       17:       17:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
       17:       17:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
       17:       17:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
       17:       17:  861:/*EOF*/
       17:       17:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       17:       17:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
       17:       17:  937:/*EOF*/
       17:       17:  938:/*EOF*/
        -:        -:  939:/*EOF*/
       17:       17:  940:/*EOF*/
       17:       17:  941:/*EOF*/
       17:       17:  942:/*EOF*/
        -:        -:  943:/*EOF*/
       17:       17:  944:/*EOF*/
       17:       17:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
       34:       34:  950:/*EOF*/
       17:       17:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
        -:        -:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
       17:       17:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
       17:       17:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
       17:       17:  983:/*EOF*/
       17:       17:  984:/*EOF*/
       17:       17:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
       17:       17:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
       17:       17: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
       17:       17: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        5:        5: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        5:        5: 1028:/*EOF*/
        5:        5: 1029:/*EOF*/
        5:        5: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        5:        5: 1033:/*EOF*/
        5:        5: 1034:/*EOF*/
        5:        5: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        5:        5: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
       12:       12: 1041:/*EOF*/
       12:       12: 1042:/*EOF*/
       12:       12: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
       17:       17: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        2:        2: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        2:        2: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        2:        2: 1056:/*EOF*/
        2:        2: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        2:        2: 1059:/*EOF*/
        4:        4: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        2:        2: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        5:        5: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        5:        5: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        5:        5: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        5:        5: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        5:        5: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        2:        2: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        2:        2: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        2:        2: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
      110:      114: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
      110:      114: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
       10:       10: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
       10:       10: 1303:/*EOF*/
       10:       10: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
       50:       50: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
       50:       50: 1312:/*EOF*/
        6:        6: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
       44:       44: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
       44:       44: 1320:/*EOF*/
       11:       11: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
      120:      124: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
      120:      124: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
      120:      124: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
      120:      124: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
      120:      124: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
      120:      124: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        9:        9: 1400:/*EOF*/
        9:        9: 1401:/*EOF*/
        9:        9: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       18:       18: 1405:/*EOF*/
        9:        9: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
       18:       18: 1408:/*EOF*/
        9:        9: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
    #####:    #####: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
    #####:    #####: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        3:        3: 1437:/*EOF*/
        3:        3: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        3:        3: 1440:/*EOF*/
        3:        3: 1441:/*EOF*/
        3:        3: 1442:/*EOF*/
        3:        3: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        6:        6: 1445:/*EOF*/
        9:        9: 1446:/*EOF*/
        3:        3: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        5:        6: 1481:/*EOF*/
        5:        6: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        5:        6: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
       10:       12: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        5:        6: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
       10:       12: 1493:/*EOF*/
       15:       18: 1494:/*EOF*/
        5:        6: 1495:/*EOF*/
        5:        6: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
    #####:    #####: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        1:        1: 1674:/*EOF*/
        1:        1: 1675:/*EOF*/
        1:        1: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        1:        1: 1678:/*EOF*/
        1:        1: 1679:/*EOF*/
        1:        1: 1680:/*EOF*/
        1:        1: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        1:        1: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        2:        2: 1690:/*EOF*/
        3:        3: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        3:        3: 1694:/*EOF*/
        1:        1: 1695:/*EOF*/
        1:        1: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        2:        2: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        1:        1: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
    #####:    #####: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
    #####:    #####: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
    #####:    #####: 1882:/*EOF*/
    #####:    #####: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        2:        2: 1915:/*EOF*/
        2:        2: 1916:/*EOF*/
        2:        2: 1917:/*EOF*/
        2:        2: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        2:        2: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        2:        2: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        4:        4: 1925:/*EOF*/
        6:        6: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        2:        2: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        6:        6: 1935:/*EOF*/
        2:        2: 1936:/*EOF*/
        2:        2: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        4:        4: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        2:        2: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
       14:       15: 1945:/*EOF*/
       14:       15: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
       16:       16: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
       16:       16: 1955:/*EOF*/
       16:       16: 1956:/*EOF*/
       16:       16: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
       16:       16: 1959:/*EOF*/
       16:       16: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
       16:       16: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       16:       16: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
       51:       52: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
       51:       52: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
       51:       52: 1995:/*EOF*/
       51:       52: 1996:/*EOF*/
       51:       52: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
      122:      125: 1999:/*EOF*/
       33:       33: 2000:/*EOF*/
       15:       15: 2001:/*EOF*/
       51:       52: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
       51:       52: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
       17:       17: 2017:/*EOF*/
       17:       17: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        2:        3: 2025:/*EOF*/
        2:        3: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
    #####:    #####: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
      120:      124: 2098:/*EOF*/
      120:      124: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
      120:      124: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
      120:      124: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        1:        1: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        1:        1: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
    #####:    #####: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        1:        1: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
       10:       10: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
       10:       10: 2200:/*EOF*/
       10:       10: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
       10:       10: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        8:        9: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        8:        9: 2213:/*EOF*/
        3:        4: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
       28:       30: 2216:/*EOF*/
       20:       21: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        8:        9: 2219:/*EOF*/
        3:        4: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        8:        9: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        1:        1: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        1:        1: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        1:        1: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        1:        1: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        1:        1: 2246:/*EOF*/
        1:        1: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        1:        1: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        1:        1: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        1:        1: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        1:        1: 2267:/*EOF*/
        2:        2: 2268:/*EOF*/
        2:        2: 2269:/*EOF*/
        1:        1: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        1:        1: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        1:        1: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        1:        1: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        1:        1: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
       28:       28: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
       28:       28: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
       28:       28: 2301:/*EOF*/
        1:        1: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        4:        4: 2313:/*EOF*/
        2:        2: 2314:/*EOF*/
        1:        1: 2315:/*EOF*/
        1:        1: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
       28:       28: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
       18:       18: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
       18:       18: 2365:/*EOF*/
       18:       18: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
       18:       18: 2368:/*EOF*/
       18:       18: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
       18:       18: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
    #####:    #####: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
    #####:    #####: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
    #####:    #####: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
    #####:    #####: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
    #####:    #####: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
    #####:    #####: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
    #####:    #####: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
    #####:    #####: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
    #####:    #####: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
    #####:    #####: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
    #####:    #####: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
    #####:    #####: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
    #####:    #####: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
       14:       14: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
       14:       14: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        8:        8: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        8:        8: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        1:        1: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        7:        7: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
    #####:    #####: 2677:/*EOF*/
    #####:    #####: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
    #####:    #####: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
    #####:    #####: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
    #####:    #####: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
    #####:    #####: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
    #####:    #####: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
    #####:    #####: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
    #####:    #####: 2737:/*EOF*/
    #####:    #####: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
    #####:    #####: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
    #####:    #####: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
    #####:    #####: 2770:/*EOF*/
    #####:    #####: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
    #####:    #####: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
    #####:    #####: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
    #####:    #####: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
    #####:    #####: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
    #####:    #####: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
    #####:    #####: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
    #####:    #####: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
    #####:    #####: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
    #####:    #####: 2842:/*EOF*/
    #####:    #####: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
    #####:    #####: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
    #####:    #####: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
    #####:    #####: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
    #####:    #####: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
    #####:    #####: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
    #####:    #####: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
    #####:    #####: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
    #####:    #####: 2923:/*EOF*/
    #####:    #####: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
    #####:    #####: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
       10:       10: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
       10:       10: 2940:/*EOF*/
        9:        9: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
       10:       10: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
    #####:    #####: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
       10:       10: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
       20:       20: 3035:/*EOF*/
       10:       10: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
    #####:    #####: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
    #####:    #####: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
    #####:    #####: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
    #####:    #####: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
       20:       20: 3073:/*EOF*/
       10:       10: 3074:/*EOF*/
       10:       10: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
    #####:    #####: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
    #####:    #####: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
       10:       10: 3090:/*EOF*/
       10:       10: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
       10:       10: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
       10:       10: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
       10:       10: 3103:/*EOF*/
    #####:    #####: 3104:/*EOF*/
       10:       10: 3105:/*EOF*/
    #####:    #####: 3106:/*EOF*/
       10:       10: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
    #####:    #####: 3109:/*EOF*/
    #####:    #####: 3110:/*EOF*/
    #####:    #####: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
       10:       10: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
       10:       10: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
       10:       10: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
    #####:    #####: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
    #####:    #####: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
    #####:    #####: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
    #####:    #####: 3154:/*EOF*/
    #####:    #####: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
    #####:    #####: 3159:/*EOF*/
    #####:    #####: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
    #####:    #####: 3179:/*EOF*/
    #####:    #####: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
    #####:    #####: 3192:/*EOF*/
    #####:    #####: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
    #####:    #####: 3198:/*EOF*/
    #####:    #####: 3199:/*EOF*/
    #####:    #####: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
    #####:    #####: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
    #####:    #####: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
    #####:    #####: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
    #####:    #####: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
    #####:    #####: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
    #####:    #####: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
    #####:    #####: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
    #####:    #####: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
    #####:    #####: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
    #####:    #####: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
       10:       10: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
       10:       10: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
       10:       10: 3306:/*EOF*/
       10:       10: 3307:/*EOF*/
       10:       10: 3308:/*EOF*/
       10:       10: 3309:/*EOF*/
       10:       10: 3310:/*EOF*/
       10:       10: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
       10:       10: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
    #####:    #####: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
    #####:    #####: 3326:/*EOF*/
    #####:    #####: 3327:/*EOF*/
    #####:    #####: 3328:/*EOF*/
    #####:    #####: 3329:/*EOF*/
    #####:    #####: 3330:/*EOF*/
    #####:    #####: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
    #####:    #####: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
    #####:    #####: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
    #####:    #####: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
    #####:    #####: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
    #####:    #####: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
    #####:    #####: 3381:/*EOF*/
    #####:    #####: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
    #####:    #####: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
    #####:    #####: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
    #####:    #####: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        3:        3: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        3:        3: 3408:/*EOF*/
        1:        1: 3409:/*EOF*/
        1:        1: 3410:/*EOF*/
    #####:    #####: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        3:        3: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        8:        8: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        8:        8: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
    #####:    #####: 3457:/*EOF*/
    #####:    #####: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
    #####:    #####: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        8:        8: 3476:/*EOF*/
        8:        8: 3477:/*EOF*/
        8:        8: 3478:/*EOF*/
    #####:    #####: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        8:        8: 3489:/*EOF*/
    #####:    #####: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
    #####:    #####: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
    #####:    #####: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
    #####:    #####: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        8:        8: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        8:        8: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
    #####:    #####: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        8:        8: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        8:        8: 3533:/*EOF*/
    #####:    #####: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        8:        8: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
    #####:    #####: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        8:        8: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        8:        8: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
    #####:    #####: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
    #####:    #####: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        8:        8: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
    #####:    #####: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
    #####:    #####: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        8:        8: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
    #####:    #####: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        8:        8: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        8:        8: 3633:/*EOF*/
        8:        8: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
    #####:    #####: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        8:        8: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
    #####:    #####: 3651:/*EOF*/
        8:        8: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
    #####:    #####: 3656:/*EOF*/
        8:        8: 3657:/*EOF*/
    #####:    #####: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        8:        8: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        8:        8: 3678:/*EOF*/
        8:        8: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        8:        8: 3682:/*EOF*/
        8:        8: 3683:/*EOF*/
        8:        8: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
    #####:    #####: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        8:        8: 3693:/*EOF*/
    #####:    #####: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        8:        8: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
    #####:    #####: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        8:        8: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        8:        8: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        8:        8: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
       10:       10: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
       10:       10: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
       10:       10: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
    #####:    #####: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
       10:       10: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
       10:       10: 3759:/*EOF*/
        9:        9: 3760:/*EOF*/
        7:        7: 3761:/*EOF*/
        3:        3: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
       10:       10: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
       10:       10: 3767:/*EOF*/
    #####:    #####: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
       10:       10: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
    #####:    #####: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
       10:       10: 3776:/*EOF*/
    #####:    #####: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
       10:       10: 3779:/*EOF*/
    #####:    #####: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
    #####:    #####: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
       10:       10: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
    #####:    #####: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
       10:       10: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
    #####:    #####: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
       10:       10: 3812:/*EOF*/
       10:       10: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
       10:       10: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
       10:       10: 3817:/*EOF*/
        9:        9: 3818:/*EOF*/
        1:        1: 3819:/*EOF*/
        9:        9: 3820:/*EOF*/
    #####:    #####: 3821:/*EOF*/
        9:        9: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
        9:        9: 3824:/*EOF*/
        2:        2: 3825:/*EOF*/
        7:        7: 3826:/*EOF*/
    #####:    #####: 3827:/*EOF*/
        7:        7: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
       19:       19: 3831:/*EOF*/
       10:       10: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
       10:       10: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
    #####:    #####: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
    #####:    #####: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
    #####:    #####: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
    #####:    #####: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
    #####:    #####: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
    #####:    #####: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
    #####:    #####: 3888:/*EOF*/
    #####:    #####: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
       10:       10: 3893:/*EOF*/
    #####:    #####: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
    #####:    #####: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
    #####:    #####: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
    #####:    #####: 3902:/*EOF*/
    #####:    #####: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
    #####:    #####: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
       10:       10: 3917:/*EOF*/
       10:       10: 3918:/*EOF*/
       10:       10: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
       10:       10: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
       10:       10: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
    #####:    #####: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
       10:       10: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
       10:       10: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
    #####:    #####: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
       10:       10: 3962:/*EOF*/
       10:       10: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        8:        8: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        8:        8: 3991:/*EOF*/
       16:       16: 3992:/*EOF*/
    #####:    #####: 3993:/*EOF*/
    #####:    #####: 3994:/*EOF*/
        8:        8: 3995:/*EOF*/
        8:        8: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
    #####:    #####: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
    #####:    #####: 4028:/*EOF*/
    #####:    #####: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
    #####:    #####: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
    #####:    #####: 4048:/*EOF*/
    #####:    #####: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
    #####:    #####: 4062:/*EOF*/
    #####:    #####: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
    #####:    #####: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
    #####:    #####: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
    #####:    #####: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
    #####:    #####: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
    #####:    #####: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
    #####:    #####: 4105:/*EOF*/
    #####:    #####: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        5:        5: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        5:        5: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        5:        5: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        5:        5: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        5:        5: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
    #####:    #####: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        5:        5: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        5:        5: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
    #####:    #####: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
        5:        5: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
    #####:    #####: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        5:        5: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        5:        5: 4187:/*EOF*/
        5:        5: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        5:        5: 4202:/*EOF*/
        5:        5: 4203:/*EOF*/
        5:        5: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
    #####:    #####: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
    #####:    #####: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
    #####:    #####: 4269:/*EOF*/
    #####:    #####: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
    #####:    #####: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
    #####:    #####: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        5:        5: 4290:/*EOF*/
        5:        5: 4291:/*EOF*/
        5:        5: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        5:        5: 4298:/*EOF*/
        5:        5: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        5:        5: 4304:/*EOF*/
        5:        5: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
    #####:    #####: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        5:        5: 4309:/*EOF*/
        5:        5: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        5:        5: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        5:        5: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        5:        5: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
    #####:    #####: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
    #####:    #####: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
    #####:    #####: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
    #####:    #####: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
    #####:    #####: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
    #####:    #####: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
    #####:    #####: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
    #####:    #####: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
    #####:    #####: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
    #####:    #####: 4423:/*EOF*/
        -:        -: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
    #####:    #####: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
    #####:    #####: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
    #####:    #####: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
    #####:    #####: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
    #####:    #####: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
    #####:    #####: 4450:/*EOF*/
    #####:    #####: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
    #####:    #####: 4462:/*EOF*/
    #####:    #####: 4463:/*EOF*/
    #####:    #####: 4464:/*EOF*/
    #####:    #####: 4465:/*EOF*/
    #####:    #####: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
    #####:    #####: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
    #####:    #####: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
    #####:    #####: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
    #####:    #####: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
    #####:    #####: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
    #####:    #####: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
       11:       11: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
       11:       11: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
    #####:    #####: 4516:/*EOF*/
       11:       11: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
    #####:    #####: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
       11:       11: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        8:        8: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        8:        8: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        8:        8: 4544:/*EOF*/
        8:        8: 4545:/*EOF*/
        8:        8: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        8:        8: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
    #####:    #####: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
    #####:    #####: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
    #####:    #####: 4568:/*EOF*/
    #####:    #####: 4569:/*EOF*/
    #####:    #####: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
    #####:    #####: 4573:/*EOF*/
    #####:    #####: 4574:/*EOF*/
    #####:    #####: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
    #####:    #####: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
    #####:    #####: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
    #####:    #####: 4581:/*EOF*/
    #####:    #####: 4582:/*EOF*/
    #####:    #####: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
    #####:    #####: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
    #####:    #####: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        8:        8: 4597:/*EOF*/
    #####:    #####: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
    #####:    #####: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
    #####:    #####: 4605:/*EOF*/
    #####:    #####: 4606:/*EOF*/
    #####:    #####: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
    #####:    #####: 4610:/*EOF*/
    #####:    #####: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
    #####:    #####: 4618:/*EOF*/
    #####:    #####: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
    #####:    #####: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
    #####:    #####: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
    #####:    #####: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        8:        8: 4633:/*EOF*/
        8:        8: 4634:/*EOF*/
        8:        8: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        8:        8: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        8:        8: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        8:        8: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
    #####:    #####: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        8:        8: 4660:/*EOF*/
    #####:    #####: 4661:/*EOF*/
    #####:    #####: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
    #####:    #####: 4665:/*EOF*/
    #####:    #####: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
    #####:    #####: 4668:/*EOF*/
    #####:    #####: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
    #####:    #####: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
    #####:    #####: 4676:/*EOF*/
    #####:    #####: 4677:/*EOF*/
    #####:    #####: 4678:/*EOF*/
    #####:    #####: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
    #####:    #####: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        8:        8: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
    #####:    #####: 4708:/*EOF*/
    #####:    #####: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
    #####:    #####: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
    #####:    #####: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
    #####:    #####: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
    #####:    #####: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
    #####:    #####: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
    #####:    #####: 4742:/*EOF*/
    #####:    #####: 4743:/*EOF*/
    #####:    #####: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
    #####:    #####: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
    #####:    #####: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
    #####:    #####: 4761:/*EOF*/
    #####:    #####: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
    #####:    #####: 4764:/*EOF*/
    #####:    #####: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
       16:       16: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        8:        8: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        8:        8: 4778:/*EOF*/
    #####:    #####: 4779:/*EOF*/
    #####:    #####: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
    #####:    #####: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
    #####:    #####: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
    #####:    #####: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
    #####:    #####: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        8:        8: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
    #####:    #####: 4795:/*EOF*/
    #####:    #####: 4796:/*EOF*/
    #####:    #####: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
    #####:    #####: 4799:/*EOF*/
    #####:    #####: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
    #####:    #####: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        8:        8: 4805:/*EOF*/
        8:        8: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        8:        8: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        8:        8: 4814:/*EOF*/
    #####:    #####: 4815:/*EOF*/
    #####:    #####: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
    #####:    #####: 4820:/*EOF*/
    #####:    #####: 4821:/*EOF*/
    #####:    #####: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
    #####:    #####: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
       16:       16: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
    #####:    #####: 4843:/*EOF*/
        8:        8: 4844:/*EOF*/
    #####:    #####: 4845:/*EOF*/
    #####:    #####: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
    #####:    #####: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
    #####:    #####: 4851:/*EOF*/
    #####:    #####: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
    #####:    #####: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        8:        8: 4860:/*EOF*/
        8:        8: 4861:/*EOF*/
        8:        8: 4862:/*EOF*/
        8:        8: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
       19:       19: 4865:/*EOF*/
        5:        5: 4866:/*EOF*/
       13:       13: 4867:/*EOF*/
    #####:    #####: 4868:/*EOF*/
    #####:    #####: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        8:        8: 4873:/*EOF*/
    #####:    #####: 4874:/*EOF*/
    #####:    #####: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
    #####:    #####: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        8:        8: 4881:/*EOF*/
        5:        5: 4882:/*EOF*/
        5:        5: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        5:        5: 4888:/*EOF*/
    #####:    #####: 4889:/*EOF*/
        5:        5: 4890:/*EOF*/
    #####:    #####: 4891:/*EOF*/
        5:        5: 4892:/*EOF*/
    #####:    #####: 4893:/*EOF*/
        5:        5: 4894:/*EOF*/
    #####:    #####: 4895:/*EOF*/
        5:        5: 4896:/*EOF*/
    #####:    #####: 4897:/*EOF*/
    #####:    #####: 4898:/*EOF*/
        5:        5: 4899:/*EOF*/
    #####:    #####: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        5:        5: 4904:/*EOF*/
    #####:    #####: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
    #####:    #####: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        3:        3: 4910:/*EOF*/
        1:        1: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        1:        1: 4913:/*EOF*/
        1:        1: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        1:        1: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        1:        1: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        1:        1: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
    #####:    #####: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
    #####:    #####: 4952:/*EOF*/
    #####:    #####: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
    #####:    #####: 4955:/*EOF*/
    #####:    #####: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
    #####:    #####: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
    #####:    #####: 4962:/*EOF*/
    #####:    #####: 4963:/*EOF*/
    #####:    #####: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        1:        1: 4967:/*EOF*/
    #####:    #####: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
    #####:    #####: 4970:/*EOF*/
    #####:    #####: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
    #####:    #####: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
    #####:    #####: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
    #####:    #####: 4987:/*EOF*/
    #####:    #####: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
    #####:    #####: 5001:/*EOF*/
    #####:    #####: 5002:/*EOF*/
    #####:    #####: 5003:/*EOF*/
    #####:    #####: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
    #####:    #####: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
    #####:    #####: 5009:/*EOF*/
    #####:    #####: 5010:/*EOF*/
    #####:    #####: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
    #####:    #####: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
    #####:    #####: 5016:/*EOF*/
    #####:    #####: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
    #####:    #####: 5022:/*EOF*/
    #####:    #####: 5023:/*EOF*/
    #####:    #####: 5024:/*EOF*/
    #####:    #####: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
    #####:    #####: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
    #####:    #####: 5033:/*EOF*/
    #####:    #####: 5034:/*EOF*/
    #####:    #####: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        2:        2: 5037:/*EOF*/
    #####:    #####: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
    #####:    #####: 5049:/*EOF*/
    #####:    #####: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
    #####:    #####: 5052:/*EOF*/
    #####:    #####: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
        -:        -: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
    #####:    #####: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
    #####:    #####: 5070:/*EOF*/
    #####:    #####: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
    #####:    #####: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
        -:        -: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
    #####:    #####: 5122:/*EOF*/
    #####:    #####: 5123:/*EOF*/
    #####:    #####: 5124:/*EOF*/
    #####:    #####: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
    #####:    #####: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
    #####:    #####: 5130:/*EOF*/
    #####:    #####: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
    #####:    #####: 5133:/*EOF*/
    #####:    #####: 5134:/*EOF*/
    #####:    #####: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
    #####:    #####: 5138:/*EOF*/
    #####:    #####: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
    #####:    #####: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
    #####:    #####: 5144:/*EOF*/
    #####:    #####: 5145:/*EOF*/
    #####:    #####: 5146:/*EOF*/
    #####:    #####: 5147:/*EOF*/
    #####:    #####: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
    #####:    #####: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
    #####:    #####: 5158:/*EOF*/
    #####:    #####: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        2:        2: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
    #####:    #####: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        8:        8: 5177:/*EOF*/
        8:        8: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
    #####:    #####: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        8:        8: 5185:/*EOF*/
        8:        8: 5186:/*EOF*/
    #####:    #####: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        8:        8: 5195:/*EOF*/
    #####:    #####: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        8:        8: 5199:/*EOF*/
    #####:    #####: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
    #####:    #####: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        8:        8: 5211:/*EOF*/
    #####:    #####: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
        -:        -: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        8:        8: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        8:        8: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        8:        8: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        8:        8: 5232:/*EOF*/
        8:        8: 5233:/*EOF*/
    #####:    #####: 5234:/*EOF*/
    #####:    #####: 5235:/*EOF*/
    #####:    #####: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
    #####:    #####: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
    #####:    #####: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        8:        8: 5243:/*EOF*/
        5:        5: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        5:        5: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        3:        3: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        8:        8: 5257:/*EOF*/
    #####:    #####: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
    #####:    #####: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        8:        8: 5263:/*EOF*/
    #####:    #####: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
    #####:    #####: 5286:/*EOF*/
    #####:    #####: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
    #####:    #####: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
    #####:    #####: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
    #####:    #####: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        8:        8: 5319:/*EOF*/
        8:        8: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        8:        8: 5334:/*EOF*/
    #####:    #####: 5335:/*EOF*/
    #####:    #####: 5336:/*EOF*/
    #####:    #####: 5337:/*EOF*/
    #####:    #####: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        8:        8: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        8:        8: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        8:        8: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        3:        3: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        3:        3: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        3:        3: 5373:/*EOF*/
        3:        3: 5374:/*EOF*/
        -:        -: 5375:/*EOF*/
        3:        3: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        3:        3: 5378:/*EOF*/
    #####:    #####: 5379:/*EOF*/
    #####:    #####: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
    #####:    #####: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
    #####:    #####: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
    #####:    #####: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
        -:        -: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        3:        3: 5404:/*EOF*/
        1:        1: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
    #####:    #####: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        1:        1: 5409:/*EOF*/
        1:        1: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        2:        2: 5413:/*EOF*/
    #####:    #####: 5414:/*EOF*/
    #####:    #####: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        2:        2: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        2:        2: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
    #####:    #####: 5425:/*EOF*/
    #####:    #####: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        2:        2: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        2:        2: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        2:        2: 5436:/*EOF*/
        2:        2: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        6:        6: 5445:/*EOF*/
        2:        2: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
    #####:    #####: 5448:/*EOF*/
    #####:    #####: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        6:        6: 5466:/*EOF*/
    #####:    #####: 5467:/*EOF*/
        2:        2: 5468:/*EOF*/
    #####:    #####: 5469:/*EOF*/
    #####:    #####: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        2:        2: 5473:/*EOF*/
        -:        -: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        2:        2: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        3:        3: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        3:        3: 5487:/*EOF*/
        3:        3: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        6:        6: 5490:/*EOF*/
        3:        3: 5491:/*EOF*/
        3:        3: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        3:        3: 5494:/*EOF*/
        1:        1: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        3:        3: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        3:        3: 5500:/*EOF*/
    #####:    #####: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        3:        3: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        3:        3: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        3:        3: 5519:/*EOF*/
        3:        3: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        3:        3: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        3:        3: 5527:/*EOF*/
        3:        3: 5528:/*EOF*/
        3:        3: 5529:/*EOF*/
        3:        3: 5530:/*EOF*/
        3:        3: 5531:/*EOF*/
        -:        -: 5532:/*EOF*/
        3:        3: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        3:        3: 5553:/*EOF*/
    #####:    #####: 5554:/*EOF*/
    #####:    #####: 5555:/*EOF*/
        -:        -: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
    #####:    #####: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        3:        3: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        3:        3: 5567:/*EOF*/
        3:        3: 5568:/*EOF*/
        3:        3: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        3:        3: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        3:        3: 5575:/*EOF*/
    #####:    #####: 5576:/*EOF*/
        -:        -: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
    #####:    #####: 5579:/*EOF*/
    #####:    #####: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        3:        3: 5587:/*EOF*/
    #####:    #####: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
    #####:    #####: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        3:        3: 5597:/*EOF*/
    #####:    #####: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
    #####:    #####: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
        3:        3: 5608:/*EOF*/
    #####:    #####: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
    #####:    #####: 5612:/*EOF*/
        -:        -: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        3:        3: 5620:/*EOF*/
    #####:    #####: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
    #####:    #####: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        3:        3: 5628:/*EOF*/
    #####:    #####: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
    #####:    #####: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        3:        3: 5637:/*EOF*/
        3:        3: 5638:/*EOF*/
        3:        3: 5639:/*EOF*/
        3:        3: 5640:/*EOF*/
        3:        3: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
    #####:    #####: 5645:/*EOF*/
    #####:    #####: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        3:        3: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        3:        3: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
    #####:    #####: 5663:/*EOF*/
    #####:    #####: 5664:/*EOF*/
    #####:    #####: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
    #####:    #####: 5668:/*EOF*/
    #####:    #####: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        3:        3: 5677:/*EOF*/
    #####:    #####: 5678:/*EOF*/
    #####:    #####: 5679:/*EOF*/
    #####:    #####: 5680:/*EOF*/
    #####:    #####: 5681:/*EOF*/
    #####:    #####: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
    #####:    #####: 5688:/*EOF*/
    #####:    #####: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
    #####:    #####: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
    #####:    #####: 5695:/*EOF*/
    #####:    #####: 5696:/*EOF*/
    #####:    #####: 5697:/*EOF*/
    #####:    #####: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
    #####:    #####: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        -:        -: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        3:        3: 5711:/*EOF*/
        2:        2: 5712:/*EOF*/
    #####:    #####: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
    #####:    #####: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        2:        2: 5718:/*EOF*/
    #####:    #####: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
    #####:    #####: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        3:        3: 5727:/*EOF*/
        3:        3: 5728:/*EOF*/
        3:        3: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        3:        3: 5732:/*EOF*/
        3:        3: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        3:        3: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
    #####:    #####: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
    #####:    #####: 5740:/*EOF*/
    #####:    #####: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
    #####:    #####: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
    #####:    #####: 5746:/*EOF*/
    #####:    #####: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
    #####:    #####: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
    #####:    #####: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
        -:        -: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
    #####:    #####: 5760:/*EOF*/
    #####:    #####: 5761:/*EOF*/
    #####:    #####: 5762:/*EOF*/
    #####:    #####: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
    #####:    #####: 5766:/*EOF*/
    #####:    #####: 5767:/*EOF*/
    #####:    #####: 5768:/*EOF*/
        -:        -: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
    #####:    #####: 5771:/*EOF*/
    #####:    #####: 5772:/*EOF*/
    #####:    #####: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
    #####:    #####: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
    #####:    #####: 5778:/*EOF*/
    #####:    #####: 5779:/*EOF*/
    #####:    #####: 5780:/*EOF*/
    #####:    #####: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
    #####:    #####: 5783:/*EOF*/
    #####:    #####: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
        -:        -: 5787:/*EOF*/
    #####:    #####: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
    #####:    #####: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
    #####:    #####: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
    #####:    #####: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        3:        3: 5798:/*EOF*/
    #####:    #####: 5799:/*EOF*/
    #####:    #####: 5800:/*EOF*/
    #####:    #####: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
    #####:    #####: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
    #####:    #####: 5806:/*EOF*/
    #####:    #####: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
    #####:    #####: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        3:        3: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        3:        3: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        3:        3: 5822:/*EOF*/
        3:        3: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        3:        3: 5825:/*EOF*/
        3:        3: 5826:/*EOF*/
    #####:    #####: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        3:        3: 5829:/*EOF*/
        3:        3: 5830:/*EOF*/
        3:        3: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
        -:        -: 5835:/*EOF*/
        3:        3: 5836:/*EOF*/
        5:        5: 5837:/*EOF*/
        2:        2: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
        -:        -: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        2:        2: 5843:/*EOF*/
    #####:    #####: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
    #####:    #####: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        2:        2: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        3:        3: 5853:/*EOF*/
        3:        3: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        3:        3: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        3:        3: 5858:/*EOF*/
        3:        3: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        3:        3: 5861:/*EOF*/
    #####:    #####: 5862:/*EOF*/
    #####:    #####: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
    #####:    #####: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
        3:        3: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        2:        2: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        2:        2: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        2:        2: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
        -:        -: 5883:/*EOF*/
        2:        2: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        2:        2: 5886:/*EOF*/
        2:        2: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        2:        2: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        2:        2: 5902:/*EOF*/
    #####:    #####: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
    #####:    #####: 5905:/*EOF*/
    #####:    #####: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
    #####:    #####: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
    #####:    #####: 5912:/*EOF*/
        -:        -: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
    #####:    #####: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
    #####:    #####: 5918:/*EOF*/
    #####:    #####: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        2:        2: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
    #####:    #####: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        2:        2: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
    #####:    #####: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
    #####:    #####: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
    #####:    #####: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        2:        2: 5954:/*EOF*/
        2:        2: 5955:/*EOF*/
        2:        2: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
    #####:    #####: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
    #####:    #####: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
    #####:    #####: 5971:/*EOF*/
    #####:    #####: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
    #####:    #####: 5975:/*EOF*/
    #####:    #####: 5976:/*EOF*/
    #####:    #####: 5977:/*EOF*/
    #####:    #####: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
    #####:    #####: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
    #####:    #####: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
    #####:    #####: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
    #####:    #####: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
    #####:    #####: 6001:/*EOF*/
    #####:    #####: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
    #####:    #####: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
    #####:    #####: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
    #####:    #####: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
    #####:    #####: 6013:/*EOF*/
    #####:    #####: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
    #####:    #####: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
    #####:    #####: 6020:/*EOF*/
    #####:    #####: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
    #####:    #####: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
    #####:    #####: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
    #####:    #####: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        2:        2: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        3:        3: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        3:        3: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
        3:        3: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
        3:        3: 6057:/*EOF*/
    #####:    #####: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
    #####:    #####: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        3:        3: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        3:        3: 6066:/*EOF*/
        3:        3: 6067:/*EOF*/
        3:        3: 6068:/*EOF*/
        3:        3: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        3:        3: 6072:/*EOF*/
    #####:    #####: 6073:/*EOF*/
    #####:    #####: 6074:/*EOF*/
    #####:    #####: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        3:        3: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
        3:        3: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
    #####:    #####: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
    #####:    #####: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
    #####:    #####: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
    #####:    #####: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
    #####:    #####: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
    #####:    #####: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
    #####:    #####: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
    #####:    #####: 6120:/*EOF*/
    #####:    #####: 6121:/*EOF*/
    #####:    #####: 6122:/*EOF*/
        -:        -: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
    #####:    #####: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
    #####:    #####: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
    #####:    #####: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
    #####:    #####: 6137:/*EOF*/
    #####:    #####: 6138:/*EOF*/
    #####:    #####: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        -:        -: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
    #####:    #####: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
    #####:    #####: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
    #####:    #####: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
    #####:    #####: 6160:/*EOF*/
    #####:    #####: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
    #####:    #####: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
    #####:    #####: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
    #####:    #####: 6172:/*EOF*/
    #####:    #####: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
    #####:    #####: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
    #####:    #####: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
    #####:    #####: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
    #####:    #####: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
    #####:    #####: 6195:/*EOF*/
    #####:    #####: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
    #####:    #####: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
    #####:    #####: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
    #####:    #####: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
    #####:    #####: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
        -:        -: 6207:/*EOF*/
    #####:    #####: 6208:/*EOF*/
    #####:    #####: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
    #####:    #####: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
    #####:    #####: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
    #####:    #####: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
    #####:    #####: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
    #####:    #####: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
    #####:    #####: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
    #####:    #####: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
    #####:    #####: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
    #####:    #####: 6241:/*EOF*/
    #####:    #####: 6242:/*EOF*/
    #####:    #####: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
    #####:    #####: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
    #####:    #####: 6250:/*EOF*/
    #####:    #####: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
    #####:    #####: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
    #####:    #####: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
    #####:    #####: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
    #####:    #####: 6263:/*EOF*/
    #####:    #####: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
    #####:    #####: 6267:/*EOF*/
    #####:    #####: 6268:/*EOF*/
    #####:    #####: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
    #####:    #####: 6273:/*EOF*/
    #####:    #####: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
    #####:    #####: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        -:        -: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
    #####:    #####: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
    #####:    #####: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
    #####:    #####: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
        -:        -: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
    #####:    #####: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
    #####:    #####: 6298:/*EOF*/
    #####:    #####: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
    #####:    #####: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
    #####:    #####: 6305:/*EOF*/
    #####:    #####: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
    #####:    #####: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
    #####:    #####: 6313:/*EOF*/
    #####:    #####: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
    #####:    #####: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
    #####:    #####: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        -:        -: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
    #####:    #####: 6323:/*EOF*/
    #####:    #####: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
    #####:    #####: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
    #####:    #####: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
    #####:    #####: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
    #####:    #####: 6339:/*EOF*/
    #####:    #####: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
    #####:    #####: 6342:/*EOF*/
    #####:    #####: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
    #####:    #####: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
    #####:    #####: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
    #####:    #####: 6356:/*EOF*/
    #####:    #####: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
    #####:    #####: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
    #####:    #####: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
    #####:    #####: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
    #####:    #####: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
    #####:    #####: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
    #####:    #####: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
    #####:    #####: 6379:/*EOF*/
    #####:    #####: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
    #####:    #####: 6382:/*EOF*/
    #####:    #####: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
    #####:    #####: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
    #####:    #####: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
    #####:    #####: 6393:/*EOF*/
    #####:    #####: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
    #####:    #####: 6397:/*EOF*/
    #####:    #####: 6398:/*EOF*/
    #####:    #####: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
    #####:    #####: 6401:/*EOF*/
    #####:    #####: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
    #####:    #####: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
    #####:    #####: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
    #####:    #####: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
    #####:    #####: 6428:/*EOF*/
    #####:    #####: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
    #####:    #####: 6431:/*EOF*/
    #####:    #####: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
    #####:    #####: 6436:/*EOF*/
    #####:    #####: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
    #####:    #####: 6439:/*EOF*/
    #####:    #####: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
    #####:    #####: 6446:/*EOF*/
    #####:    #####: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
    #####:    #####: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
    #####:    #####: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
    #####:    #####: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
    #####:    #####: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
    #####:    #####: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
    #####:    #####: 6464:/*EOF*/
    #####:    #####: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
    #####:    #####: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
    #####:    #####: 6469:/*EOF*/
    #####:    #####: 6470:/*EOF*/
        -:        -: 6471:/*EOF*/
    #####:    #####: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
    #####:    #####: 6476:/*EOF*/
    #####:    #####: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
    #####:    #####: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
    #####:    #####: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
    #####:    #####: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        2:        3: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        2:        3: 6497:/*EOF*/
        -:        -: 6498:/*EOF*/
        2:        3: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        2:        3: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        2:        3: 6503:/*EOF*/
        2:        3: 6504:/*EOF*/
    #####:    #####: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
    #####:    #####: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        2:        3: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        2:        3: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        2:        3: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        2:        3: 6521:/*EOF*/
        2:        3: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        2:        3: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        2:        3: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        2:        3: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        2:        3: 6536:/*EOF*/
        2:        2: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        2:        3: 6539:/*EOF*/
        2:        2: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        2:        3: 6542:/*EOF*/
        2:        3: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        2:        3: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        2:        3: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        2:        3: 6553:/*EOF*/
        2:        3: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        2:        3: 6556:/*EOF*/
        2:        2: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        2:        3: 6559:/*EOF*/
        2:        3: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        2:        3: 6562:/*EOF*/
        2:        2: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        2:        3: 6565:/*EOF*/
    #####:        1: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        2:        3: 6568:/*EOF*/
        2:        2: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        2:        3: 6572:/*EOF*/
        2:        3: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        2:        3: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
    #####:    #####: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
    #####:    #####: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
    #####:    #####: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
    #####:    #####: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        8:        8: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        8:        8: 6626:/*EOF*/
        8:        8: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
    #####:    #####: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
    #####:    #####: 6641:/*EOF*/
    #####:    #####: 6642:/*EOF*/
    #####:    #####: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
    #####:    #####: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
    #####:    #####: 6647:/*EOF*/
    #####:    #####: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
    #####:    #####: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
    #####:    #####: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
    #####:    #####: 6659:/*EOF*/
    #####:    #####: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
    #####:    #####: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
        -:        -: 6666:/*EOF*/
    #####:    #####: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
    #####:    #####: 6688:/*EOF*/
    #####:    #####: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
    #####:    #####: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
    #####:    #####: 6708:/*EOF*/
    #####:    #####: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
        -:        -: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
    #####:    #####: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
        -:        -: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
    #####:    #####: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
    #####:    #####: 6756:/*EOF*/
    #####:    #####: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
    #####:    #####: 6768:/*EOF*/
    #####:    #####: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
    #####:    #####: 6771:/*EOF*/
    #####:    #####: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
    #####:    #####: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
        -:        -: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
    #####:    #####: 6792:/*EOF*/
    #####:    #####: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
    #####:    #####: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
    #####:    #####: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
    #####:    #####: 6814:/*EOF*/
    #####:    #####: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
    #####:    #####: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
    #####:    #####: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
    #####:    #####: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
    #####:    #####: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
    #####:    #####: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
    #####:    #####: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
    #####:    #####: 6844:/*EOF*/
    #####:    #####: 6845:/*EOF*/
    #####:    #####: 6846:/*EOF*/
    #####:    #####: 6847:/*EOF*/
    #####:    #####: 6848:/*EOF*/
    #####:    #####: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
    #####:    #####: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
    #####:    #####: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
    #####:    #####: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        -:        -: 6864:/*EOF*/
    #####:    #####: 6865:/*EOF*/
    #####:    #####: 6866:/*EOF*/
    #####:    #####: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
    #####:    #####: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
    #####:    #####: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
    #####:    #####: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
    #####:    #####: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
    #####:    #####: 6890:/*EOF*/
    #####:    #####: 6891:/*EOF*/
    #####:    #####: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
    #####:    #####: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
        -:        -: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
    #####:    #####: 6901:/*EOF*/
    #####:    #####: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
    #####:    #####: 6904:/*EOF*/
    #####:    #####: 6905:/*EOF*/
    #####:    #####: 6906:/*EOF*/
    #####:    #####: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
    #####:    #####: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
    #####:    #####: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
    #####:    #####: 6915:/*EOF*/
    #####:    #####: 6916:/*EOF*/
    #####:    #####: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
    #####:    #####: 6920:/*EOF*/
    #####:    #####: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
    #####:    #####: 6923:/*EOF*/
    #####:    #####: 6924:/*EOF*/
    #####:    #####: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
    #####:    #####: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
    #####:    #####: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
    #####:    #####: 6935:/*EOF*/
    #####:    #####: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
    #####:    #####: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
    #####:    #####: 6942:/*EOF*/
    #####:    #####: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
    #####:    #####: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
    #####:    #####: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
    #####:    #####: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
    #####:    #####: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
    #####:    #####: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
    #####:    #####: 6960:/*EOF*/
    #####:    #####: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
    #####:    #####: 6964:/*EOF*/
    #####:    #####: 6965:/*EOF*/
    #####:    #####: 6966:/*EOF*/
    #####:    #####: 6967:/*EOF*/
    #####:    #####: 6968:/*EOF*/
    #####:    #####: 6969:/*EOF*/
    #####:    #####: 6970:/*EOF*/
    #####:    #####: 6971:/*EOF*/
    #####:    #####: 6972:/*EOF*/
    #####:    #####: 6973:/*EOF*/
    #####:    #####: 6974:/*EOF*/
    #####:    #####: 6975:/*EOF*/
    #####:    #####: 6976:/*EOF*/
    #####:    #####: 6977:/*EOF*/
    #####:    #####: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
    #####:    #####: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
    #####:    #####: 6982:/*EOF*/
    #####:    #####: 6983:/*EOF*/
    #####:    #####: 6984:/*EOF*/
    #####:    #####: 6985:/*EOF*/
    #####:    #####: 6986:/*EOF*/
    #####:    #####: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
    #####:    #####: 6990:/*EOF*/
    #####:    #####: 6991:/*EOF*/
    #####:    #####: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
    #####:    #####: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
    #####:    #####: 7001:/*EOF*/
    #####:    #####: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
    #####:    #####: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
    #####:    #####: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
    #####:    #####: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
    #####:    #####: 7012:/*EOF*/
    #####:    #####: 7013:/*EOF*/
    #####:    #####: 7014:/*EOF*/
    #####:    #####: 7015:/*EOF*/
    #####:    #####: 7016:/*EOF*/
    #####:    #####: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
    #####:    #####: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
    #####:    #####: 7023:/*EOF*/
    #####:    #####: 7024:/*EOF*/
    #####:    #####: 7025:/*EOF*/
    #####:    #####: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
    #####:    #####: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
    #####:    #####: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
    #####:    #####: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
    #####:    #####: 7035:/*EOF*/
    #####:    #####: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
    #####:    #####: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
    #####:    #####: 7044:/*EOF*/
    #####:    #####: 7045:/*EOF*/
    #####:    #####: 7046:/*EOF*/
    #####:    #####: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
    #####:    #####: 7049:/*EOF*/
    #####:    #####: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
    #####:    #####: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
    #####:    #####: 7054:/*EOF*/
    #####:    #####: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
    #####:    #####: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
    #####:    #####: 7059:/*EOF*/
    #####:    #####: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
        -:        -: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
    #####:    #####: 7064:/*EOF*/
    #####:    #####: 7065:/*EOF*/
    #####:    #####: 7066:/*EOF*/
    #####:    #####: 7067:/*EOF*/
    #####:    #####: 7068:/*EOF*/
    #####:    #####: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
        -:        -: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
    #####:    #####: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
    #####:    #####: 7083:/*EOF*/
    #####:    #####: 7084:/*EOF*/
    #####:    #####: 7085:/*EOF*/
    #####:    #####: 7086:/*EOF*/
    #####:    #####: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
    #####:    #####: 7090:/*EOF*/
    #####:    #####: 7091:/*EOF*/
    #####:    #####: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
    #####:    #####: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
    #####:    #####: 7103:/*EOF*/
    #####:    #####: 7104:/*EOF*/
    #####:    #####: 7105:/*EOF*/
    #####:    #####: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
    #####:    #####: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
    #####:    #####: 7112:/*EOF*/
    #####:    #####: 7113:/*EOF*/
    #####:    #####: 7114:/*EOF*/
    #####:    #####: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
        -:        -: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
    #####:    #####: 7120:/*EOF*/
    #####:    #####: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
    #####:    #####: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
    #####:    #####: 7131:/*EOF*/
    #####:    #####: 7132:/*EOF*/
    #####:    #####: 7133:/*EOF*/
    #####:    #####: 7134:/*EOF*/
    #####:    #####: 7135:/*EOF*/
    #####:    #####: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
    #####:    #####: 7138:/*EOF*/
    #####:    #####: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
    #####:    #####: 7145:/*EOF*/
    #####:    #####: 7146:/*EOF*/
    #####:    #####: 7147:/*EOF*/
    #####:    #####: 7148:/*EOF*/
    #####:    #####: 7149:/*EOF*/
    #####:    #####: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
    #####:    #####: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
        -:        -: 7156:/*EOF*/
    #####:    #####: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
    #####:    #####: 7159:/*EOF*/
    #####:    #####: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
    #####:    #####: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
    #####:    #####: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
    #####:    #####: 7170:/*EOF*/
    #####:    #####: 7171:/*EOF*/
    #####:    #####: 7172:/*EOF*/
    #####:    #####: 7173:/*EOF*/
    #####:    #####: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
    #####:    #####: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
    #####:    #####: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
    #####:    #####: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
    #####:    #####: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
    #####:    #####: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
    #####:    #####: 7202:/*EOF*/
    #####:    #####: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
    #####:    #####: 7205:/*EOF*/
    #####:    #####: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
    #####:    #####: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
    #####:    #####: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
    #####:    #####: 7213:/*EOF*/
    #####:    #####: 7214:/*EOF*/
    #####:    #####: 7215:/*EOF*/
    #####:    #####: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
    #####:    #####: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        1:        1: 7232:/*EOF*/
        1:        1: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        1:        1: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        4:        4: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        4:        4: 7239:/*EOF*/
        1:        1: 7240:/*EOF*/
        1:        1: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        3:        3: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        1:        1: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        1:        1: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
    #####:    #####: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
    #####:    #####: 7260:/*EOF*/
    #####:    #####: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
    #####:    #####: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
    #####:    #####: 7266:/*EOF*/
    #####:    #####: 7267:/*EOF*/
    #####:    #####: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
    #####:    #####: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
    #####:    #####: 7274:/*EOF*/
    #####:    #####: 7275:/*EOF*/
    #####:    #####: 7276:/*EOF*/
    #####:    #####: 7277:/*EOF*/
    #####:    #####: 7278:/*EOF*/
    #####:    #####: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
    #####:    #####: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
    #####:    #####: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
    #####:    #####: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
    #####:    #####: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
        -:        -: 7303:/*EOF*/
        -:        -: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
        -:        -: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
        -:        -: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
    #####:    #####: 7314:/*EOF*/
    #####:    #####: 7315:/*EOF*/
    #####:    #####: 7316:/*EOF*/
    #####:    #####: 7317:/*EOF*/
    #####:    #####: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
    #####:    #####: 7320:/*EOF*/
    #####:    #####: 7321:/*EOF*/
    #####:    #####: 7322:/*EOF*/
    #####:    #####: 7323:/*EOF*/
    #####:    #####: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
    #####:    #####: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
    #####:    #####: 7328:/*EOF*/
    #####:    #####: 7329:/*EOF*/
    #####:    #####: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
    #####:    #####: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
        -:        -: 7335:/*EOF*/
    #####:    #####: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
    #####:    #####: 7338:/*EOF*/
    #####:    #####: 7339:/*EOF*/
    #####:    #####: 7340:/*EOF*/
    #####:    #####: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
    #####:    #####: 7343:/*EOF*/
    #####:    #####: 7344:/*EOF*/
    #####:    #####: 7345:/*EOF*/
    #####:    #####: 7346:/*EOF*/
    #####:    #####: 7347:/*EOF*/
    #####:    #####: 7348:/*EOF*/
    #####:    #####: 7349:/*EOF*/
    #####:    #####: 7350:/*EOF*/
    #####:    #####: 7351:/*EOF*/
    #####:    #####: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
    #####:    #####: 7354:/*EOF*/
    #####:    #####: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
    #####:    #####: 7359:/*EOF*/
    #####:    #####: 7360:/*EOF*/
    #####:    #####: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
        -:        -: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
    #####:    #####: 7368:/*EOF*/
        -:        -: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
    #####:    #####: 7375:/*EOF*/
    #####:    #####: 7376:/*EOF*/
    #####:    #####: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
    #####:    #####: 7379:/*EOF*/
    #####:    #####: 7380:/*EOF*/
        -:        -: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
        -:        -: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
    #####:    #####: 7389:/*EOF*/
    #####:    #####: 7390:/*EOF*/
    #####:    #####: 7391:/*EOF*/
    #####:    #####: 7392:/*EOF*/
    #####:    #####: 7393:/*EOF*/
    #####:    #####: 7394:/*EOF*/
    #####:    #####: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
    #####:    #####: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
    #####:    #####: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
    #####:    #####: 7402:/*EOF*/
    #####:    #####: 7403:/*EOF*/
    #####:    #####: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
    #####:    #####: 7407:/*EOF*/
    #####:    #####: 7408:/*EOF*/
    #####:    #####: 7409:/*EOF*/
    #####:    #####: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
        -:        -: 7412:/*EOF*/
    #####:    #####: 7413:/*EOF*/
    #####:    #####: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
        -:        -: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
    #####:    #####: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
    #####:    #####: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
    #####:    #####: 7426:/*EOF*/
    #####:    #####: 7427:/*EOF*/
    #####:    #####: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
    #####:    #####: 7437:/*EOF*/
    #####:    #####: 7438:/*EOF*/
    #####:    #####: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
    #####:    #####: 7444:/*EOF*/
    #####:    #####: 7445:/*EOF*/
        -:        -: 7446:/*EOF*/
    #####:    #####: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
    #####:    #####: 7452:/*EOF*/
    #####:    #####: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
    #####:    #####: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
        -:        -: 7458:/*EOF*/
    #####:    #####: 7459:/*EOF*/
    #####:    #####: 7460:/*EOF*/
    #####:    #####: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
    #####:    #####: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
    #####:    #####: 7470:/*EOF*/
    #####:    #####: 7471:/*EOF*/
    #####:    #####: 7472:/*EOF*/
        -:        -: 7473:/*EOF*/
    #####:    #####: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
    #####:    #####: 7476:/*EOF*/
        -:        -: 7477:/*EOF*/
    #####:    #####: 7478:/*EOF*/
    #####:    #####: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
        -:        -: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
    #####:    #####: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
        -:        -: 7489:/*EOF*/
        -:        -: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
        -:        -: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
        -:        -: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
    #####:    #####: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
    #####:    #####: 7500:/*EOF*/
    #####:    #####: 7501:/*EOF*/
        -:        -: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
        -:        -: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
        -:        -: 7508:/*EOF*/
    #####:    #####: 7509:/*EOF*/
    #####:    #####: 7510:/*EOF*/
    #####:    #####: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
    #####:    #####: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
    #####:    #####: 7517:/*EOF*/
    #####:    #####: 7518:/*EOF*/
        -:        -: 7519:/*EOF*/
        -:        -: 7520:/*EOF*/
        -:        -: 7521:/*EOF*/
        -:        -: 7522:/*EOF*/
        -:        -: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
        -:        -: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
        -:        -: 7527:/*EOF*/
    #####:    #####: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
    #####:    #####: 7530:/*EOF*/
    #####:    #####: 7531:/*EOF*/
    #####:    #####: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
    #####:    #####: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
    #####:    #####: 7537:/*EOF*/
        -:        -: 7538:/*EOF*/
    #####:    #####: 7539:/*EOF*/
    #####:    #####: 7540:/*EOF*/
    #####:    #####: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
        -:        -: 7543:/*EOF*/
    #####:    #####: 7544:/*EOF*/
        -:        -: 7545:/*EOF*/
    #####:    #####: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
    #####:    #####: 7548:/*EOF*/
    #####:    #####: 7549:/*EOF*/
    #####:    #####: 7550:/*EOF*/
    #####:    #####: 7551:/*EOF*/
    #####:    #####: 7552:/*EOF*/
    #####:    #####: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
    #####:    #####: 7555:/*EOF*/
        -:        -: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
    #####:    #####: 7558:/*EOF*/
        -:        -: 7559:/*EOF*/
    #####:    #####: 7560:/*EOF*/
    #####:    #####: 7561:/*EOF*/
    #####:    #####: 7562:/*EOF*/
        -:        -: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
    #####:    #####: 7565:/*EOF*/
        -:        -: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
    #####:    #####: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
        -:        -: 7570:/*EOF*/
    #####:    #####: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
        -:        -: 7573:/*EOF*/
    #####:    #####: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
        -:        -: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
    #####:    #####: 7578:/*EOF*/
    #####:    #####: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
        -:        -: 7581:/*EOF*/
    #####:    #####: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
    #####:    #####: 7586:/*EOF*/
        -:        -: 7587:/*EOF*/
        -:        -: 7588:/*EOF*/
        -:        -: 7589:/*EOF*/
    #####:    #####: 7590:/*EOF*/
    #####:    #####: 7591:/*EOF*/
    #####:    #####: 7592:/*EOF*/
        -:        -: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
    #####:    #####: 7595:/*EOF*/
        -:        -: 7596:/*EOF*/
    #####:    #####: 7597:/*EOF*/
    #####:    #####: 7598:/*EOF*/
    #####:    #####: 7599:/*EOF*/
    #####:    #####: 7600:/*EOF*/
    #####:    #####: 7601:/*EOF*/
    #####:    #####: 7602:/*EOF*/
    #####:    #####: 7603:/*EOF*/
    #####:    #####: 7604:/*EOF*/
    #####:    #####: 7605:/*EOF*/
    #####:    #####: 7606:/*EOF*/
    #####:    #####: 7607:/*EOF*/
    #####:    #####: 7608:/*EOF*/
    #####:    #####: 7609:/*EOF*/
    #####:    #####: 7610:/*EOF*/
    #####:    #####: 7611:/*EOF*/
    #####:    #####: 7612:/*EOF*/
    #####:    #####: 7613:/*EOF*/
    #####:    #####: 7614:/*EOF*/
    #####:    #####: 7615:/*EOF*/
    #####:    #####: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
        -:        -: 7619:/*EOF*/
        -:        -: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
        -:        -: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
        -:        -: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
        -:        -: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
    #####:    #####: 7631:/*EOF*/
    #####:    #####: 7632:/*EOF*/
    #####:    #####: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
        -:        -: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
    #####:    #####: 7637:/*EOF*/
        -:        -: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
        -:        -: 7641:/*EOF*/
    #####:    #####: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
    #####:    #####: 7647:/*EOF*/
        -:        -: 7648:/*EOF*/
    #####:    #####: 7649:/*EOF*/
        -:        -: 7650:/*EOF*/
    #####:    #####: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
    #####:    #####: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
    #####:    #####: 7655:/*EOF*/
    #####:    #####: 7656:/*EOF*/
    #####:    #####: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
    #####:    #####: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
        -:        -: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
    #####:    #####: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
        -:        -: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
        -:        -: 7673:/*EOF*/
        -:        -: 7674:/*EOF*/
    #####:    #####: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
    #####:    #####: 7677:/*EOF*/
    #####:    #####: 7678:/*EOF*/
    #####:    #####: 7679:/*EOF*/
    #####:    #####: 7680:/*EOF*/
    #####:    #####: 7681:/*EOF*/
        -:        -: 7682:/*EOF*/
    #####:    #####: 7683:/*EOF*/
    #####:    #####: 7684:/*EOF*/
    #####:    #####: 7685:/*EOF*/
    #####:    #####: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
    #####:    #####: 7688:/*EOF*/
        -:        -: 7689:/*EOF*/
        -:        -: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
        -:        -: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
        -:        -: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
        -:        -: 7698:/*EOF*/
    #####:    #####: 7699:/*EOF*/
    #####:    #####: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
        -:        -: 7705:/*EOF*/
        -:        -: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
    #####:    #####: 7709:/*EOF*/
    #####:    #####: 7710:/*EOF*/
    #####:    #####: 7711:/*EOF*/
    #####:    #####: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
        -:        -: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
    #####:    #####: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
    #####:    #####: 7721:/*EOF*/
        -:        -: 7722:/*EOF*/
    #####:    #####: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
        -:        -: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
        -:        -: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
        -:        -: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
        -:        -: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
        -:        -: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
        -:        -: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
        -:        -: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
        -:        -: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
    #####:    #####: 7748:/*EOF*/
    #####:    #####: 7749:/*EOF*/
    #####:    #####: 7750:/*EOF*/
    #####:    #####: 7751:/*EOF*/
    #####:    #####: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
    #####:    #####: 7754:/*EOF*/
    #####:    #####: 7755:/*EOF*/
    #####:    #####: 7756:/*EOF*/
        -:        -: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
    #####:    #####: 7759:/*EOF*/
    #####:    #####: 7760:/*EOF*/
    #####:    #####: 7761:/*EOF*/
    #####:    #####: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
    #####:    #####: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
        -:        -: 7767:/*EOF*/
    #####:    #####: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
    #####:    #####: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
        -:        -: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
        -:        -: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
    #####:    #####: 7779:/*EOF*/
    #####:    #####: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
    #####:    #####: 7783:/*EOF*/
        -:        -: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
        -:        -: 7787:/*EOF*/
    #####:    #####: 7788:/*EOF*/
        -:        -: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
    #####:    #####: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
    #####:    #####: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
    #####:    #####: 7798:/*EOF*/
    #####:    #####: 7799:/*EOF*/
        -:        -: 7800:/*EOF*/
    #####:    #####: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
    #####:    #####: 7803:/*EOF*/
    #####:    #####: 7804:/*EOF*/
    #####:    #####: 7805:/*EOF*/
    #####:    #####: 7806:/*EOF*/
    #####:    #####: 7807:/*EOF*/
    #####:    #####: 7808:/*EOF*/
    #####:    #####: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
    #####:    #####: 7811:/*EOF*/
    #####:    #####: 7812:/*EOF*/
    #####:    #####: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
        -:        -: 7815:/*EOF*/
    #####:    #####: 7816:/*EOF*/
    #####:    #####: 7817:/*EOF*/
    #####:    #####: 7818:/*EOF*/
    #####:    #####: 7819:/*EOF*/
    #####:    #####: 7820:/*EOF*/
        -:        -: 7821:/*EOF*/
    #####:    #####: 7822:/*EOF*/
    #####:    #####: 7823:/*EOF*/
    #####:    #####: 7824:/*EOF*/
    #####:    #####: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
    #####:    #####: 7827:/*EOF*/
    #####:    #####: 7828:/*EOF*/
    #####:    #####: 7829:/*EOF*/
        -:        -: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
    #####:    #####: 7832:/*EOF*/
    #####:    #####: 7833:/*EOF*/
    #####:    #####: 7834:/*EOF*/
    #####:    #####: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
    #####:    #####: 7838:/*EOF*/
    #####:    #####: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
    #####:    #####: 7845:/*EOF*/
        -:        -: 7846:/*EOF*/
    #####:    #####: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
    #####:    #####: 7849:/*EOF*/
    #####:    #####: 7850:/*EOF*/
    #####:    #####: 7851:/*EOF*/
    #####:    #####: 7852:/*EOF*/
    #####:    #####: 7853:/*EOF*/
    #####:    #####: 7854:/*EOF*/
    #####:    #####: 7855:/*EOF*/
    #####:    #####: 7856:/*EOF*/
    #####:    #####: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
    #####:    #####: 7859:/*EOF*/
    #####:    #####: 7860:/*EOF*/
        -:        -: 7861:/*EOF*/
    #####:    #####: 7862:/*EOF*/
    #####:    #####: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
    #####:    #####: 7865:/*EOF*/
    #####:    #####: 7866:/*EOF*/
    #####:    #####: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
    #####:    #####: 7869:/*EOF*/
        -:        -: 7870:/*EOF*/
    #####:    #####: 7871:/*EOF*/
    #####:    #####: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
    #####:    #####: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
    #####:    #####: 7877:/*EOF*/
    #####:    #####: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
    #####:    #####: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
    #####:    #####: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
    #####:    #####: 7885:/*EOF*/
        -:        -: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
    #####:    #####: 7888:/*EOF*/
    #####:    #####: 7889:/*EOF*/
        -:        -: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
    #####:    #####: 7892:/*EOF*/
        -:        -: 7893:/*EOF*/
    #####:    #####: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
        -:        -: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
    #####:    #####: 7899:/*EOF*/
    #####:    #####: 7900:/*EOF*/
        -:        -: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
    #####:    #####: 7903:/*EOF*/
    #####:    #####: 7904:/*EOF*/
    #####:    #####: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
    #####:    #####: 7907:/*EOF*/
        -:        -: 7908:/*EOF*/
    #####:    #####: 7909:/*EOF*/
    #####:    #####: 7910:/*EOF*/
        -:        -: 7911:/*EOF*/
    #####:    #####: 7912:/*EOF*/
        -:        -: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
    #####:    #####: 7915:/*EOF*/
    #####:    #####: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
    #####:    #####: 7922:/*EOF*/
    #####:    #####: 7923:/*EOF*/
    #####:    #####: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
    #####:    #####: 7927:/*EOF*/
    #####:    #####: 7928:/*EOF*/
    #####:    #####: 7929:/*EOF*/
    #####:    #####: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
        -:        -: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
        -:        -: 7939:/*EOF*/
        -:        -: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
    #####:    #####: 7943:/*EOF*/
    #####:    #####: 7944:/*EOF*/
        -:        -: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
    #####:    #####: 7947:/*EOF*/
        -:        -: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
    #####:    #####: 7952:/*EOF*/
    #####:    #####: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
        -:        -: 7955:/*EOF*/
    #####:    #####: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
        -:        -: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
        -:        -: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
        -:        -: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
        -:        -: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
        -:        -: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
        -:        -: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
        -:        -: 7977:/*EOF*/
    #####:    #####: 7978:/*EOF*/
    #####:    #####: 7979:/*EOF*/
    #####:    #####: 7980:/*EOF*/
    #####:    #####: 7981:/*EOF*/
    #####:    #####: 7982:/*EOF*/
    #####:    #####: 7983:/*EOF*/
    #####:    #####: 7984:/*EOF*/
        -:        -: 7985:/*EOF*/
        -:        -: 7986:/*EOF*/
    #####:    #####: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
    #####:    #####: 7989:/*EOF*/
    #####:    #####: 7990:/*EOF*/
        -:        -: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
        -:        -: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
    #####:    #####: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
    #####:    #####: 8001:/*EOF*/
        -:        -: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
    #####:    #####: 8004:/*EOF*/
        -:        -: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
    #####:    #####: 8007:/*EOF*/
    #####:    #####: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
        -:        -: 8010:/*EOF*/
    #####:    #####: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
        -:        -: 8017:/*EOF*/
    #####:    #####: 8018:/*EOF*/
    #####:    #####: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
        -:        -: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
    #####:    #####: 8023:/*EOF*/
    #####:    #####: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
        -:        -: 8026:/*EOF*/
    #####:    #####: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
    #####:    #####: 8032:/*EOF*/
    #####:    #####: 8033:/*EOF*/
    #####:    #####: 8034:/*EOF*/
    #####:    #####: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
        -:        -: 8037:/*EOF*/
    #####:    #####: 8038:/*EOF*/
    #####:    #####: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
    #####:    #####: 8041:/*EOF*/
    #####:    #####: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
    #####:    #####: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
    #####:    #####: 8048:/*EOF*/
    #####:    #####: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
        -:        -: 8052:/*EOF*/
    #####:    #####: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
        -:        -: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
        -:        -: 8057:/*EOF*/
    #####:    #####: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
    #####:    #####: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
        -:        -: 8063:/*EOF*/
    #####:    #####: 8064:/*EOF*/
    #####:    #####: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
        -:        -: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
        -:        -: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
    #####:    #####: 8071:/*EOF*/
    #####:    #####: 8072:/*EOF*/
    #####:    #####: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
    #####:    #####: 8076:/*EOF*/
    #####:    #####: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
        -:        -: 8079:/*EOF*/
    #####:    #####: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
        -:        -: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
    #####:    #####: 8085:/*EOF*/
    #####:    #####: 8086:/*EOF*/
    #####:    #####: 8087:/*EOF*/
    #####:    #####: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
    #####:    #####: 8094:/*EOF*/
    #####:    #####: 8095:/*EOF*/
    #####:    #####: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
        -:        -: 8099:/*EOF*/
    #####:    #####: 8100:/*EOF*/
        -:        -: 8101:/*EOF*/
    #####:    #####: 8102:/*EOF*/
    #####:    #####: 8103:/*EOF*/
        -:        -: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
    #####:    #####: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
        -:        -: 8111:/*EOF*/
        -:        -: 8112:/*EOF*/
    #####:    #####: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
        -:        -: 8115:/*EOF*/
    #####:    #####: 8116:/*EOF*/
        -:        -: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
        -:        -: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
        -:        -: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
        -:        -: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
    #####:    #####: 8129:/*EOF*/
        -:        -: 8130:/*EOF*/
    #####:    #####: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
    #####:    #####: 8133:/*EOF*/
    #####:    #####: 8134:/*EOF*/
        -:        -: 8135:/*EOF*/
    #####:    #####: 8136:/*EOF*/
    #####:    #####: 8137:/*EOF*/
    #####:    #####: 8138:/*EOF*/
    #####:    #####: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
    #####:    #####: 8141:/*EOF*/
    #####:    #####: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
    #####:    #####: 8144:/*EOF*/
        -:        -: 8145:/*EOF*/
    #####:    #####: 8146:/*EOF*/
    #####:    #####: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
    #####:    #####: 8150:/*EOF*/
    #####:    #####: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
    #####:    #####: 8153:/*EOF*/
    #####:    #####: 8154:/*EOF*/
    #####:    #####: 8155:/*EOF*/
    #####:    #####: 8156:/*EOF*/
        -:        -: 8157:/*EOF*/
        -:        -: 8158:/*EOF*/
    #####:    #####: 8159:/*EOF*/
    #####:    #####: 8160:/*EOF*/
        -:        -: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
        -:        -: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
        -:        -: 8166:/*EOF*/
    #####:    #####: 8167:/*EOF*/
    #####:    #####: 8168:/*EOF*/
    #####:    #####: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
    #####:    #####: 8172:/*EOF*/
    #####:    #####: 8173:/*EOF*/
        -:        -: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
        -:        -: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
        -:        -: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
        -:        -: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
    #####:    #####: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
    #####:    #####: 8188:/*EOF*/
    #####:    #####: 8189:/*EOF*/
        -:        -: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
    #####:    #####: 8192:/*EOF*/
    #####:    #####: 8193:/*EOF*/
    #####:    #####: 8194:/*EOF*/
        -:        -: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
        -:        -: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
    #####:    #####: 8201:/*EOF*/
    #####:    #####: 8202:/*EOF*/
    #####:    #####: 8203:/*EOF*/
    #####:    #####: 8204:/*EOF*/
    #####:    #####: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
    #####:    #####: 8207:/*EOF*/
    #####:    #####: 8208:/*EOF*/
    #####:    #####: 8209:/*EOF*/
    #####:    #####: 8210:/*EOF*/
        -:        -: 8211:/*EOF*/
    #####:    #####: 8212:/*EOF*/
    #####:    #####: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
    #####:    #####: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
        -:        -: 8219:/*EOF*/
        2:        2: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
        2:        2: 8223:/*EOF*/
        2:        2: 8224:/*EOF*/
        2:        2: 8225:/*EOF*/
        2:        2: 8226:/*EOF*/
        2:        2: 8227:/*EOF*/
        2:        2: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        2:        2: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
      155:      155: 8234:/*EOF*/
      153:      153: 8235:/*EOF*/
        -:        -: 8236:/*EOF*/
      153:      153: 8237:/*EOF*/
      151:      151: 8238:/*EOF*/
        -:        -: 8239:/*EOF*/
        2:        2: 8240:/*EOF*/
        1:        1: 8241:/*EOF*/
        1:        1: 8242:/*EOF*/
    #####:    #####: 8243:/*EOF*/
        1:        1: 8244:/*EOF*/
    #####:    #####: 8245:/*EOF*/
        1:        1: 8246:/*EOF*/
    #####:    #####: 8247:/*EOF*/
        1:        1: 8248:/*EOF*/
    #####:    #####: 8249:/*EOF*/
    #####:    #####: 8250:/*EOF*/
    #####:    #####: 8251:/*EOF*/
    #####:    #####: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
        -:        -: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
        -:        -: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
        -:        -: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
        -:        -: 8267:/*EOF*/
        -:        -: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
        -:        -: 8271:/*EOF*/
        2:        2: 8272:/*EOF*/
        -:        -: 8273:/*EOF*/
    #####:    #####: 8274:/*EOF*/
        2:        2: 8275:/*EOF*/
    #####:    #####: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
    #####:    #####: 8278:/*EOF*/
        2:        2: 8279:/*EOF*/
        -:        -: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
    #####:    #####: 8282:/*EOF*/
        2:        2: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
    #####:    #####: 8286:/*EOF*/
        2:        2: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
        -:        -: 8289:/*EOF*/
    #####:    #####: 8290:/*EOF*/
        2:        2: 8291:/*EOF*/
    #####:    #####: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
    #####:    #####: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
        2:        2: 8297:/*EOF*/
    #####:    #####: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
    #####:    #####: 8300:/*EOF*/
        -:        -: 8301:/*EOF*/
        2:        2: 8302:/*EOF*/
        -:        -: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
        4:        4: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        4:        4: 8312:/*EOF*/
        4:        4: 8313:/*EOF*/
        -:        -: 8314:/*EOF*/
        2:        2: 8315:/*EOF*/
    #####:    #####: 8316:/*EOF*/
        2:        2: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
        2:        2: 8319:/*EOF*/
        2:        2: 8320:/*EOF*/
        1:        1: 8321:/*EOF*/
        -:        -: 8322:/*EOF*/
        2:        2: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
    #####:    #####: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
        -:        -: 8329:/*EOF*/
        -:        -: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        4:        4: 8332:/*EOF*/
        7:        7: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
        -:        -: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
        1:        1: 8338:/*EOF*/
        1:        1: 8339:/*EOF*/
        1:        1: 8340:/*EOF*/
        1:        1: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
        -:        -: 8345:/*EOF*/
    #####:    #####: 8346:/*EOF*/
    #####:    #####: 8347:/*EOF*/
    #####:    #####: 8348:/*EOF*/
    #####:    #####: 8349:/*EOF*/
    #####:    #####: 8350:/*EOF*/
    #####:    #####: 8351:/*EOF*/

src/compiler/glsl/.libs/glsl_lexer.cpp.gcov

        -:        -:    0:Source:glsl/glsl_lexer.cpp
        -:        -:    0:Graph:glsl_lexer.gcno
        -:        -:    0:Data:glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
      301:      313: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
      301:      313: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
      301:      313: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
      301:      313: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
      301:      313: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        2:        2: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        2:        2: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        2:        2: 1587:/*EOF*/
        2:        2: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        2:        2: 1590:/*EOF*/
        2:        2: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        2:        2: 1593:/*EOF*/
        2:        2: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        2:        2: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        2:        2: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
      196:      204: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
      497:      517: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
      497:      517: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
      497:      517: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
      497:      517: 1623:/*EOF*/
      497:      517: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
      917:      955: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
     1414:     1472: 1628:/*EOF*/
     1414:     1472: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
      911:      949: 1631:/*EOF*/
      911:      949: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
     3276:     3406: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
      931:      967: 1636:/*EOF*/
      931:      967: 1637:/*EOF*/
      389:      404: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
     1414:     1472: 1640:/*EOF*/
     1414:     1472: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
     1414:     1472: 1643:/*EOF*/
      497:      517: 1644:/*EOF*/
      497:      517: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
      499:      519: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
      499:      519: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
      501:      521: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
      117:      123: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        2:        2: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        4:        4: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        4:        4: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        4:        4: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        2:        2: 3204:/*EOF*/
        2:        2: 3205:/*EOF*/
        2:        2: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        4:        4: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
    #####:    #####: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
    #####:    #####: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
        -:        -: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
    #####:    #####: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        4:        4: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        2:        2: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        2:        2: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        2:        2: 3272:/*EOF*/
        2:        2: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
        -:        -: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        2:        2: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        2:        2: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        2:        2: 3300:/*EOF*/
        2:        2: 3301:/*EOF*/
        2:        2: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
    #####:    #####: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        4:        4: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        4:        4: 3324:/*EOF*/
        4:        4: 3325:/*EOF*/
        4:        4: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        4:        4: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
    #####:    #####: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        4:        4: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        4:        4: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        2:        2: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        2:        2: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
    #####:    #####: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
    #####:    #####: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
    #####:    #####: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
    #####:    #####: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
    #####:    #####: 3404:/*EOF*/
    #####:    #####: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
    #####:    #####: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
    #####:    #####: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
    #####:    #####: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
    #####:    #####: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        2:        2: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        2:        2: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        2:        2: 3463:/*EOF*/
        2:        2: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        4:        4: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        2:        2: 3468:/*EOF*/
        2:        2: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        2:        2: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
    #####:    #####: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        2:        2: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        2:        2: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        -:        -: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
    #####:    #####: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
    #####:    #####: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
    #####:    #####: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
    #####:    #####: 3606:/*EOF*/
    #####:    #####: 3607:/*EOF*/
    #####:    #####: 3608:/*EOF*/
    #####:    #####: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
    #####:    #####: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
    #####:    #####: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        2:        2: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        2:        2: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        2:        2: 3629:/*EOF*/
        2:        2: 3630:/*EOF*/
    #####:    #####: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        2:        2: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        2:        2: 3641:/*EOF*/
        2:        2: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        2:        2: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        4:        4: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        4:        4: 3654:/*EOF*/
        4:        4: 3655:/*EOF*/
        4:        4: 3656:/*EOF*/
        4:        4: 3657:/*EOF*/
        4:        4: 3658:/*EOF*/
        4:        4: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
    #####:    #####: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        2:        2: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        2:        2: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        2:        2: 3699:/*EOF*/
    #####:    #####: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        2:        2: 3702:/*EOF*/
        2:        2: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        2:        2: 3705:/*EOF*/
        2:        2: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        2:        2: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
    #####:    #####: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
    #####:    #####: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
    #####:    #####: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
    #####:    #####: 3730:/*EOF*/
    #####:    #####: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
    #####:    #####: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
    #####:    #####: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
    #####:    #####: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
    #####:    #####: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
    #####:    #####: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
    #####:    #####: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
    #####:    #####: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
    #####:    #####: 3776:/*EOF*/
    #####:    #####: 3777:/*EOF*/
    #####:    #####: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
    #####:    #####: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
    #####:    #####: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
    #####:    #####: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
    #####:    #####: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        2:        2: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        2:        2: 3807:/*EOF*/
        2:        2: 3808:/*EOF*/
        2:        2: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
    #####:    #####: 3812:/*EOF*/
    #####:    #####: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        2:        2: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        2:        2: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        2:        2: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        2:        2: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        2:        2: 3838:/*EOF*/
        2:        2: 3839:/*EOF*/
        2:        2: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        2:        2: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        2:        2: 3845:/*EOF*/
        2:        2: 3846:/*EOF*/
        2:        2: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
    #####:    #####: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
    #####:    #####: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
    #####:    #####: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
    #####:    #####: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
    #####:    #####: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
    #####:    #####: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        2:        2: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        4:        4: 3879:/*EOF*/
        4:        4: 3880:/*EOF*/
        2:        2: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        2:        2: 3885:/*EOF*/
        2:        2: 3886:/*EOF*/
    #####:    #####: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        2:        2: 3889:/*EOF*/
        2:        2: 3890:/*EOF*/
        2:        2: 3891:/*EOF*/
        2:        2: 3892:/*EOF*/
        2:        2: 3893:/*EOF*/
        2:        2: 3894:/*EOF*/
        2:        2: 3895:/*EOF*/
        2:        2: 3896:/*EOF*/
        2:        2: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        2:        2: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        2:        2: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        2:        2: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        2:        2: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        2:        2: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        2:        2: 3933:/*EOF*/
        2:        2: 3934:/*EOF*/
        2:        2: 3935:/*EOF*/
    #####:    #####: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
      915:      953: 3938:/*EOF*/
      913:      951: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        2:        2: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        2:        2: 3943:/*EOF*/
        2:        2: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        2:        2: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        2:        2: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
    #####:    #####: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
    #####:    #####: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
    #####:    #####: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
    #####:    #####: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
    #####:    #####: 4002:/*EOF*/
    #####:    #####: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
    #####:    #####: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
    #####:    #####: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
    #####:    #####: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
    #####:    #####: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        4:        4: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        4:        4: 4064:/*EOF*/
        4:        4: 4065:/*EOF*/
        4:        4: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
    #####:    #####: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
    #####:    #####: 4095:/*EOF*/
    #####:    #####: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
    #####:    #####: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
    #####:    #####: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
    #####:    #####: 4124:/*EOF*/
    #####:    #####: 4125:/*EOF*/
    #####:    #####: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
    #####:    #####: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
    #####:    #####: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
    #####:    #####: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        2:        2: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        2:        2: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        2:        2: 4197:/*EOF*/
    #####:    #####: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        2:        2: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        2:        2: 4204:/*EOF*/
    #####:    #####: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        2:        2: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        2:        2: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        2:        2: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        4:        4: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        4:        4: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        4:        4: 4225:/*EOF*/
        4:        4: 4226:/*EOF*/
        4:        4: 4227:/*EOF*/
        4:        4: 4228:/*EOF*/
        4:        4: 4229:/*EOF*/
        4:        4: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        4:        4: 4232:/*EOF*/
        4:        4: 4233:/*EOF*/
        4:        4: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        4:        4: 4241:/*EOF*/
        4:        4: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        4:        4: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        2:        2: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        2:        2: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        6:        6: 4257:/*EOF*/
        2:        2: 4258:/*EOF*/
        2:        2: 4259:/*EOF*/
        2:        2: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        2:        2: 4264:/*EOF*/
        2:        2: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        2:        2: 4268:/*EOF*/
        2:        2: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        2:        2: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        2:        2: 4276:/*EOF*/
        2:        2: 4277:/*EOF*/
        2:        2: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        8:        8: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        8:        8: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        8:        8: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
    #####:    #####: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
    #####:    #####: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
    #####:    #####: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
       10:       10: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
       10:       10: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
       10:       10: 4334:/*EOF*/
       10:       10: 4335:/*EOF*/

src/compiler/glsl/.libs/glsl_lexer.ll.gcov

        -:        -:    0:Source:glsl/glsl_lexer.ll
        -:        -:    0:Graph:glsl_lexer.gcno
        -:        -:    0:Data:glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       17:       17:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       34:       34:  108:/*EOF*/
       34:       34:  109:/*EOF*/
       17:       17:  110:/*EOF*/
       17:       17:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       17:       17:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       17:       17:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       17:       17:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       17:       17:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       17:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       17:       17:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
       17:       17:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       17:       17:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       17:       17:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       17:       17:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      117:      123:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        2:        2:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        2:        2:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        2:        2:  261:/*EOF*/
        2:        2:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        2:        2:  268:/*EOF*/
        4:        4:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        2:        2:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       79:       81:  278:/*EOF*/
       77:       79:  279:/*EOF*/
       78:       80:  280:/*EOF*/
        1:        1:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        8:        8:  283:/*EOF*/
        2:        2:  284:/*EOF*/
        8:        8:  285:/*EOF*/
        2:        2:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:        1:  289:/*EOF*/
    #####:        1:  290:/*EOF*/
    #####:        1:  291:/*EOF*/
        2:        3:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        2:        2:  294:/*EOF*/
        5:        5:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        2:        2:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        2:        2:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        5:        5:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        3:        3:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        2:        2:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        2:        2:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        3:        3:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        3:        3:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        2:        2:  457:/*EOF*/
        2:        2:  458:/*EOF*/
        1:        1:  459:/*EOF*/
        2:        2:  460:/*EOF*/
        1:        1:  461:/*EOF*/
        2:        2:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        1:        1:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        1:        1:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
       12:       12:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        5:        5:  487:/*EOF*/
        5:        5:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        2:        3:  494:/*EOF*/
        2:        3:  495:/*EOF*/
        2:        3:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        2:        3:  501:/*EOF*/
        2:        3:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
       85:       87:  621:/*EOF*/
       85:       87:  622:/*EOF*/
       85:       87:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       85:       87:  628:/*EOF*/
        -:        -:  629:/*EOF*/
       85:       87:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
       14:       15:  633:/*EOF*/
       28:       30:  634:/*EOF*/
       14:       15:  635:/*EOF*/
        -:        -:  636:/*EOF*/
      141:      147:  637:/*EOF*/
      141:      147:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       85:       87:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       85:       87:  645:/*EOF*/
       14:       15:  646:/*EOF*/
       14:       15:  647:/*EOF*/
        -:        -:  648:/*EOF*/
       71:       72:  649:/*EOF*/
       49:       49:  650:/*EOF*/
       22:       23:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       22:       23:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        2:        2:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        2:        2:  660:/*EOF*/
        2:        2:  661:/*EOF*/
        2:        2:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        2:        2:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        2:        2:  667:/*EOF*/
        2:        2:  668:/*EOF*/

src/compiler/glsl/.libs/glsl_parser.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser.cpp
        -:        -:    0:Graph:glsl_parser.gcno
        -:        -:    0:Data:glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
    #####:    #####: 2887:/*EOF*/
    #####:    #####: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
    #####:    #####: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
    #####:    #####: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
    #####:    #####: 2949:/*EOF*/
    #####:    #####: 2950:/*EOF*/
    #####:    #####: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
    #####:    #####: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
    #####:    #####: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
    #####:    #####: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
    #####:    #####: 2977:/*EOF*/
    #####:    #####: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    #####:    #####: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
    #####:    #####: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
    #####:    #####: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
    #####:    #####: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
    #####:    #####: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
    #####:    #####: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
    #####:    #####: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        4:        4: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        4:        4: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        4:        4: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        2:        2: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        2:        2: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        2:        2: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        2:        2: 3131:/*EOF*/
        2:        2: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        2:        2: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        2:        2: 3141:/*EOF*/
        2:        2: 3142:/*EOF*/
        2:        2: 3143:/*EOF*/
        2:        2: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        2:        2: 3148:/*EOF*/
        2:        2: 3149:/*EOF*/
        2:        2: 3150:/*EOF*/
        2:        2: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        2:        2: 3164:/*EOF*/
        2:        2: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
     1895:     1940: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
     1897:     1942: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
     1897:     1942: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
    #####:    #####: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
    #####:    #####: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
     1897:     1942: 3246:/*EOF*/
        2:        2: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
     1895:     1940: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
     1895:     1940: 3260:/*EOF*/
     1895:     1940: 3261:/*EOF*/
      654:      669: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
     1241:     1271: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
      301:      313: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
     1241:     1271: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        4:        4: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
     1237:     1267: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
     1241:     1271: 3286:/*EOF*/
     1241:     1271: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
      312:      324: 3289:/*EOF*/
      312:      324: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
       11:       11: 3294:/*EOF*/
       11:       11: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
      301:      313: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
      301:      313: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
      301:      313: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
      301:      313: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
      301:      313: 3313:/*EOF*/
      301:      313: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
     1583:     1616: 3321:/*EOF*/
     1583:     1616: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
     1583:     1616: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
     1594:     1627: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
     1594:     1627: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
     1594:     1627: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
     1594:     1627: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        2:        2: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        2:        2: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        2:        2: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
    #####:    #####: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        2:        2: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        4:        4: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
       58:       59: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
       17:       17: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
    #####:    #####: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        2:        3: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
    #####:    #####: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
       16:       16: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
       11:       11: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
       14:       15: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        2:        2: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
       11:       11: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
       11:       11: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        4:        4: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        7:        7: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
    #####:    #####: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
    #####:    #####: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
    #####:    #####: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
    #####:    #####: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        1:        1: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        1:        1: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        1:        1: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        2:        3: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        1:        1: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        2:        2: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
    #####:    #####: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
    #####:    #####: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
       10:       10: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        9:        9: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
    #####:    #####: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        1:        1: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
    #####:    #####: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
       35:       36: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
    #####:    #####: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        8:        8: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        2:        2: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        1:        1: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        3:        3: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        2:        2: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
        -:        -: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
    #####:    #####: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        2:        2: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        1:        1: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        3:        3: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
    #####:    #####: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
    #####:    #####: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
    #####:    #####: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        2:        2: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        1:        1: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        5:        5: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
        -:        -: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
        -:        -: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
        8:        8: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        3:        3: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
    #####:    #####: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
    #####:    #####: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        -:        -: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        -:        -: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
    #####:    #####: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
        -:        -: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        -:        -: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
        -:        -: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
        -:        -: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
        -:        -: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
    #####:    #####: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        -:        -: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
    #####:    #####: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
    #####:    #####: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
    #####:    #####: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
    #####:    #####: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
    #####:    #####: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
    #####:    #####: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
    #####:    #####: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
        -:        -: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
    #####:    #####: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
        -:        -: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
    #####:    #####: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
    #####:    #####: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
    #####:    #####: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
    #####:    #####: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
        -:        -: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
        -:        -: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        -:        -: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
        -:        -: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        -:        -: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
    #####:    #####: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        -:        -: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
    #####:    #####: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
    #####:    #####: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
        -:        -: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
    #####:    #####: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        -:        -: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
    #####:    #####: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
    #####:    #####: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
    #####:    #####: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        -:        -: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
    #####:    #####: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
    #####:    #####: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        -:        -: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        1:        1: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
        -:        -: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
    #####:    #####: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        -:        -: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
    #####:    #####: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
    #####:    #####: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        2:        2: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
    #####:    #####: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
    #####:    #####: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        -:        -: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
    #####:    #####: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
    #####:    #####: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
    #####:    #####: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
        -:        -: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
    #####:    #####: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
    #####:    #####: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        -:        -: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        -:        -: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
        -:        -: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        1:        1: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        -:        -: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        -:        -: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
    #####:    #####: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
       18:       18: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
    #####:    #####: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
    #####:    #####: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
        3:        3: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        8:        8: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
    #####:    #####: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        2:        2: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
    #####:    #####: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
        -:        -: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        2:        2: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
    #####:    #####: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        3:        3: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
    #####:    #####: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
    #####:    #####: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
    #####:    #####: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
    #####:    #####: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
    #####:    #####: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
    #####:    #####: 5703:/*EOF*/
        -:        -: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
    #####:    #####: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        -:        -: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
    #####:    #####: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
    #####:    #####: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
    #####:    #####: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
    #####:    #####: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
    #####:    #####: 5739:/*EOF*/
        -:        -: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
    #####:    #####: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
    #####:    #####: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
        -:        -: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
        -:        -: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
    #####:    #####: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
    #####:    #####: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
        -:        -: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
    #####:    #####: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
    #####:    #####: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
    #####:    #####: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
    #####:    #####: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        -:        -: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
    #####:    #####: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        -:        -: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
    #####:    #####: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
    #####:    #####: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
    #####:    #####: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
    #####:    #####: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
    #####:    #####: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
    #####:    #####: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
    #####:    #####: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
    #####:    #####: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
    #####:    #####: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
    #####:    #####: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
    #####:    #####: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
        -:        -: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
    #####:    #####: 5919:/*EOF*/
        -:        -: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
    #####:    #####: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
    #####:    #####: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
    #####:    #####: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
        -:        -: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
    #####:    #####: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
        -:        -: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
    #####:    #####: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
        -:        -: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
        -:        -: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
    #####:    #####: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
    #####:    #####: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
    #####:    #####: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
        -:        -: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
    #####:    #####: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
    #####:    #####: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
    #####:    #####: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        -:        -: 6044:/*EOF*/
    #####:    #####: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
    #####:    #####: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
    #####:    #####: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
        -:        -: 6068:/*EOF*/
    #####:    #####: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
    #####:    #####: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
    #####:    #####: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
    #####:    #####: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
    #####:    #####: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
    #####:    #####: 6099:/*EOF*/
        -:        -: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
    #####:    #####: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
    #####:    #####: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
    #####:    #####: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
    #####:    #####: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
    #####:    #####: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        -:        -: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
    #####:    #####: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        -:        -: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
    #####:    #####: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
        -:        -: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
    #####:    #####: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
        -:        -: 6188:/*EOF*/
    #####:    #####: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
        -:        -: 6194:/*EOF*/
    #####:    #####: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
        -:        -: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
    #####:    #####: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
    #####:    #####: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
    #####:    #####: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
    #####:    #####: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
    #####:    #####: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        -:        -: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
    #####:    #####: 6249:/*EOF*/
        -:        -: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
    #####:    #####: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
    #####:    #####: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        -:        -: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
    #####:    #####: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
    #####:    #####: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
    #####:    #####: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
    #####:    #####: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
        -:        -: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
    #####:    #####: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        -:        -: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
    #####:    #####: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        -:        -: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
    #####:    #####: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
    #####:    #####: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
    #####:    #####: 6339:/*EOF*/
        -:        -: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
    #####:    #####: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
    #####:    #####: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
    #####:    #####: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
    #####:    #####: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
        -:        -: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
        -:        -: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
    #####:    #####: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
        -:        -: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
    #####:    #####: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
    #####:    #####: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        -:        -: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
        -:        -: 6452:/*EOF*/
    #####:    #####: 6453:/*EOF*/
        -:        -: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
    #####:    #####: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
        -:        -: 6469:/*EOF*/
        -:        -: 6470:/*EOF*/
    #####:    #####: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        -:        -: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
    #####:    #####: 6479:/*EOF*/
        -:        -: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
        -:        -: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
    #####:    #####: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
    #####:    #####: 6498:/*EOF*/
        -:        -: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        3:        4: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
    #####:    #####: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        3:        4: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        -:        -: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        3:        4: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        -:        -: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        2:        2: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
    #####:    #####: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        5:        5: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        8:        9: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
       12:       12: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
    #####:    #####: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
        -:        -: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
       10:       10: 6606:/*EOF*/
        -:        -: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        3:        3: 6616:/*EOF*/
        -:        -: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
    #####:    #####: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        3:        3: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        2:        2: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
        -:        -: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
    #####:    #####: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
        -:        -: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
    #####:    #####: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
    #####:    #####: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
    #####:    #####: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
    #####:    #####: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
        -:        -: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
    #####:    #####: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
    #####:    #####: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
        -:        -: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
    #####:    #####: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
    #####:        1: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
        -:        -: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        2:        2: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
        -:        -: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
    #####:    #####: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
    #####:    #####: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        2:        2: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
    #####:    #####: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
        -:        -: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
        -:        -: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
    #####:    #####: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
        -:        -: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        2:        2: 6864:/*EOF*/
        -:        -: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
        -:        -: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
        -:        -: 6873:/*EOF*/
    #####:    #####: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
        -:        -: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
        -:        -: 6879:/*EOF*/
        3:        3: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        3:        3: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
        -:        -: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
        -:        -: 6890:/*EOF*/
        -:        -: 6891:/*EOF*/
    #####:    #####: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
    #####:    #####: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
        -:        -: 6905:/*EOF*/
        -:        -: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
        -:        -: 6911:/*EOF*/
        3:        3: 6912:/*EOF*/
        -:        -: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
        -:        -: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
    #####:    #####: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
        -:        -: 6923:/*EOF*/
        -:        -: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
        -:        -: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
    #####:    #####: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
        -:        -: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
        -:        -: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
        -:        -: 6971:/*EOF*/
        -:        -: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
        -:        -: 6975:/*EOF*/
    #####:    #####: 6976:/*EOF*/
        -:        -: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
        -:        -: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
    #####:    #####: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
        -:        -: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
        -:        -: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
    #####:    #####: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
        -:        -: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
    #####:    #####: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
        -:        -: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
        -:        -: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
        -:        -: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
        -:        -: 7026:/*EOF*/
    #####:    #####: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
        -:        -: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
    #####:    #####: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
        -:        -: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
    #####:    #####: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
        -:        -: 7049:/*EOF*/
        -:        -: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
        -:        -: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
    #####:    #####: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
        -:        -: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
        -:        -: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
    #####:    #####: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
        -:        -: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
        -:        -: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
        -:        -: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
        -:        -: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
        -:        -: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
    #####:    #####: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
        -:        -: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
        -:        -: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
    #####:    #####: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
        -:        -: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
    #####:    #####: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
        -:        -: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
    #####:    #####: 7132:/*EOF*/
        -:        -: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
        -:        -: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
        -:        -: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
    #####:    #####: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
        -:        -: 7147:/*EOF*/
        -:        -: 7148:/*EOF*/
        -:        -: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
        -:        -: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
    #####:    #####: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
    #####:    #####: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
        -:        -: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
    #####:    #####: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
        -:        -: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
        -:        -: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
    #####:    #####: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
        -:        -: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
        -:        -: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
        -:        -: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
    #####:    #####: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
    #####:    #####: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
     1216:     1239: 7240:/*EOF*/
        -:        -: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
     1594:     1627: 7255:/*EOF*/
     1594:     1627: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
     1594:     1627: 7259:/*EOF*/
     1594:     1627: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
        -:        -: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
     1594:     1627: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
     1594:     1627: 7268:/*EOF*/
     1594:     1627: 7269:/*EOF*/
      144:      149: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
     1450:     1478: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
     1594:     1627: 7274:/*EOF*/
        -:        -: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
        -:        -: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
    #####:    #####: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
    #####:    #####: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
    #####:    #####: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
    #####:    #####: 7297:/*EOF*/
    #####:    #####: 7298:/*EOF*/
    #####:    #####: 7299:/*EOF*/
    #####:    #####: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
    #####:    #####: 7302:/*EOF*/
    #####:    #####: 7303:/*EOF*/
    #####:    #####: 7304:/*EOF*/
    #####:    #####: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
    #####:    #####: 7307:/*EOF*/
    #####:    #####: 7308:/*EOF*/
    #####:    #####: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
    #####:    #####: 7313:/*EOF*/
    #####:    #####: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
        -:        -: 7316:/*EOF*/
    #####:    #####: 7317:/*EOF*/
    #####:    #####: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
        -:        -: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
    #####:    #####: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
    #####:    #####: 7335:/*EOF*/
    #####:    #####: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
        -:        -: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
    #####:    #####: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
    #####:    #####: 7348:/*EOF*/
        -:        -: 7349:/*EOF*/
        -:        -: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
        -:        -: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
    #####:    #####: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
    #####:    #####: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
    #####:    #####: 7368:/*EOF*/
    #####:    #####: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
    #####:    #####: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
    #####:    #####: 7380:/*EOF*/
    #####:    #####: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
    #####:    #####: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
    #####:    #####: 7386:/*EOF*/
    #####:    #####: 7387:/*EOF*/
    #####:    #####: 7388:/*EOF*/
        -:        -: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
    #####:    #####: 7393:/*EOF*/
    #####:    #####: 7394:/*EOF*/
        -:        -: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
    #####:    #####: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
    #####:    #####: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
        -:        -: 7404:/*EOF*/
    #####:    #####: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
    #####:    #####: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
    #####:    #####: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
    #####:    #####: 7417:/*EOF*/
    #####:    #####: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
        -:        -: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        2:        2: 7425:/*EOF*/
        2:        2: 7426:/*EOF*/
        -:        -: 7427:/*EOF*/
        -:        -: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
    #####:    #####: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
    #####:    #####: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
        2:        2: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
    #####:    #####: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
    #####:    #####: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        2:        2: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
       10:       10: 7458:/*EOF*/
        -:        -: 7459:/*EOF*/
        4:        4: 7460:/*EOF*/
        8:        8: 7461:/*EOF*/
        4:        4: 7462:/*EOF*/
        -:        -: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        2:        2: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        2:        2: 7469:/*EOF*/
    #####:    #####: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        2:        2: 7472:/*EOF*/

src/compiler/glsl/.libs/glsl_parser_extras.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser_extras.cpp
        -:        -:    0:Graph:glsl_parser_extras.gcno
        -:        -:    0:Data:glsl_parser_extras.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        3:        3:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        3:        3:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        3:        3:   71:/*EOF*/
        3:        3:   72:/*EOF*/
        3:        3:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        3:        3:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        3:        3:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        3:        3:   85:/*EOF*/
        3:        3:   86:/*EOF*/
        3:        3:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        3:        3:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        3:        3:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        3:        3:  102:/*EOF*/
        3:        3:  103:/*EOF*/
        3:        3:  104:/*EOF*/
        3:        3:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        3:        3:  107:/*EOF*/
        3:        3:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        3:        3:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        3:        3:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        3:        3:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        3:        3:  121:/*EOF*/
        3:        3:  122:/*EOF*/
        3:        3:  123:/*EOF*/
        3:        3:  124:/*EOF*/
        3:        3:  125:/*EOF*/
        3:        3:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        3:        3:  128:/*EOF*/
        3:        3:  129:/*EOF*/
        3:        3:  130:/*EOF*/
        3:        3:  131:/*EOF*/
        3:        3:  132:/*EOF*/
        3:        3:  133:/*EOF*/
        3:        3:  134:/*EOF*/
        3:        3:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        3:        3:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        3:        3:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        3:        3:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        3:        3:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        3:        3:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        3:        3:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        3:        3:  154:/*EOF*/
        3:        3:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       12:       12:  158:/*EOF*/
        9:        9:  159:/*EOF*/
       12:       12:  160:/*EOF*/
        9:        9:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        3:        3:  163:/*EOF*/
        3:        3:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        3:        3:  166:/*EOF*/
        3:        3:  167:/*EOF*/
        3:        3:  168:/*EOF*/
        3:        3:  169:/*EOF*/
        3:        3:  170:/*EOF*/
        3:        3:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        3:        3:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        3:        3:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        3:        3:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        3:        3:  186:/*EOF*/
        3:        3:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        3:        3:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        3:        3:  200:/*EOF*/
        3:        3:  201:/*EOF*/
        3:        3:  202:/*EOF*/
        3:        3:  203:/*EOF*/
        3:        3:  204:/*EOF*/
        3:        3:  205:/*EOF*/
        3:        3:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        3:        3:  221:/*EOF*/
       39:       39:  222:/*EOF*/
       36:       36:  223:/*EOF*/
        9:        9:  224:/*EOF*/
        9:        9:  225:/*EOF*/
        9:        9:  226:/*EOF*/
        9:        9:  227:/*EOF*/
        9:        9:  228:/*EOF*/
        9:        9:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        3:        3:  233:/*EOF*/
        3:        3:  234:/*EOF*/
        3:        3:  235:/*EOF*/
        3:        3:  236:/*EOF*/
        3:        3:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        3:        3:  239:/*EOF*/
        3:        3:  240:/*EOF*/
        3:        3:  241:/*EOF*/
        3:        3:  242:/*EOF*/
        3:        3:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        3:        3:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        3:        3:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        3:        3:  262:/*EOF*/
       18:       18:  263:/*EOF*/
       15:       15:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       15:       15:  267:/*EOF*/
       15:       15:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       15:       15:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       15:       15:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        3:        3:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        3:        3:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        3:        3:  281:/*EOF*/
        3:        3:  282:/*EOF*/
        3:        3:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        3:        3:  285:/*EOF*/
        3:        3:  286:/*EOF*/
        3:        3:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        3:        3:  290:/*EOF*/
        3:        3:  291:/*EOF*/
        3:        3:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        3:        3:  295:/*EOF*/
        3:        3:  296:/*EOF*/
        3:        3:  297:/*EOF*/
        3:        3:  298:/*EOF*/
        3:        3:  299:/*EOF*/
        3:        3:  300:/*EOF*/
        3:        3:  301:/*EOF*/
        3:        3:  302:/*EOF*/
        3:        3:  303:/*EOF*/
        3:        3:  304:/*EOF*/
        3:        3:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        3:        3:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        3:        3:  309:/*EOF*/
        3:        3:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        2:        2:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        2:        2:  375:/*EOF*/
        2:        2:  376:/*EOF*/
        2:        2:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        2:        2:  403:/*EOF*/
        2:        2:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        2:        2:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        2:        2:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        2:        2:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        6:        6:  423:/*EOF*/
        6:        6:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        2:        2:  426:/*EOF*/
        6:        6:  427:/*EOF*/
        6:        6:  428:/*EOF*/
        2:        2:  429:/*EOF*/
        2:        2:  430:/*EOF*/
        2:        2:  431:/*EOF*/
        2:        2:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        2:        2:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        2:        2:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
      188:      188:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
      188:      188:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
        -:        -:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      221:      227: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
      221:      227: 1135:/*EOF*/
      221:      227: 1136:/*EOF*/
      221:      227: 1137:/*EOF*/
      221:      227: 1138:/*EOF*/
      221:      227: 1139:/*EOF*/
      221:      227: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        8:        9: 1164:/*EOF*/
        8:        9: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        8:        9: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        8:        9: 1169:/*EOF*/
        8:        9: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        8:        9: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
    #####:    #####: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
      138:      142: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
      138:      142: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
      138:      142: 1316:/*EOF*/
      138:      142: 1317:/*EOF*/
      138:      142: 1318:/*EOF*/
      138:      142: 1319:/*EOF*/
      138:      142: 1320:/*EOF*/
      138:      142: 1321:/*EOF*/
      138:      142: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
       10:       10: 1335:/*EOF*/
       10:       10: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
       10:       10: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        3:        3: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        3:        3: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        3:        3: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        8:        8: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        8:        8: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        8:        8: 1407:/*EOF*/
        8:        8: 1408:/*EOF*/
        8:        8: 1409:/*EOF*/
        8:        8: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
    #####:    #####: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
    #####:    #####: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
    #####:    #####: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        8:        8: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        8:        8: 1438:/*EOF*/
        8:        8: 1439:/*EOF*/
        8:        8: 1440:/*EOF*/
        8:        8: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        2:        2: 1467:/*EOF*/
        2:        2: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        2:        2: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        2:        2: 1472:/*EOF*/
        2:        2: 1473:/*EOF*/
        2:        2: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        3:        3: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        3:        3: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        3:        3: 1497:/*EOF*/
        3:        3: 1498:/*EOF*/
        3:        3: 1499:/*EOF*/
        3:        3: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        2:        3: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        2:        3: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        2:        3: 1647:/*EOF*/
        2:        3: 1648:/*EOF*/
        2:        3: 1649:/*EOF*/
        2:        3: 1650:/*EOF*/
        2:        3: 1651:/*EOF*/
        2:        3: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        2:        2: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        4:        4: 1700:/*EOF*/
        2:        2: 1701:/*EOF*/
        1:        1: 1702:/*EOF*/
        2:        2: 1703:/*EOF*/
        1:        1: 1704:/*EOF*/
        1:        1: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        2:        2: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        2:        2: 1710:/*EOF*/
        2:        2: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        2:        2: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        1:        1: 1716:/*EOF*/
        1:        1: 1717:/*EOF*/
        1:        1: 1718:/*EOF*/
        1:        1: 1719:/*EOF*/
        1:        1: 1720:/*EOF*/
        1:        1: 1721:/*EOF*/
        1:        1: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       10:       10: 1725:/*EOF*/
        8:        8: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        2:        2: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
    #####:    #####: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
    #####:    #####: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
    #####:    #####: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        1:        1: 1835:/*EOF*/
        1:        1: 1836:/*EOF*/
        1:        1: 1837:/*EOF*/
        1:        1: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        1:        1: 1840:/*EOF*/
        1:        1: 1841:/*EOF*/
        1:        1: 1842:/*EOF*/
        1:        1: 1843:/*EOF*/
        1:        1: 1844:/*EOF*/
        1:        1: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        1:        1: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        2:        2: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        2:        2: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        2:        2: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        2:        2: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        2:        2: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        2:        2: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        2:        2: 1883:/*EOF*/
        2:        2: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        2:        2: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        6:        6: 1888:/*EOF*/
        8:        8: 1889:/*EOF*/
        2:        2: 1890:/*EOF*/
        2:        2: 1891:/*EOF*/
        2:        2: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        2:        2: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        2:        2: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
      190:      190: 1903:/*EOF*/
      190:      190: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
      188:      188: 1906:/*EOF*/
      188:      188: 1907:/*EOF*/
       52:       52: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        2:        2: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        2:        2: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        2:        2: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        2:        2: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        4:        4: 1929:/*EOF*/
        2:        2: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        2:        2: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        2:        2: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        5:        5: 1944:/*EOF*/
        5:        5: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        2:        2: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        2:        2: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        1:        1: 1954:/*EOF*/
        1:        1: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        1:        1: 1957:/*EOF*/
        1:        1: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        2:        2: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        2:        2: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        2:        2: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
       46:       46: 1984:/*EOF*/
       44:       44: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        3:        3: 1987:/*EOF*/
        3:        3: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
       41:       41: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
       41:       41: 1992:/*EOF*/
       41:       41: 1993:/*EOF*/
       41:       41: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        2:        2: 2001:/*EOF*/
        2:        2: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        2:        2: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        2:        2: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        2:        2: 2011:/*EOF*/
        2:        2: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
    #####:    #####: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        2:        2: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        2:        2: 2047:/*EOF*/
        2:        2: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        2:        2: 2051:/*EOF*/
        2:        2: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        2:        2: 2054:/*EOF*/
        2:        2: 2055:/*EOF*/
        2:        2: 2056:/*EOF*/
        2:        2: 2057:/*EOF*/
        2:        2: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        2:        2: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
    #####:    #####: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        2:        2: 2068:/*EOF*/
        2:        2: 2069:/*EOF*/
        2:        2: 2070:/*EOF*/
        2:        2: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        2:        2: 2073:/*EOF*/
        2:        2: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        2:        2: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        2:        2: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        2:        2: 2085:/*EOF*/
        2:        2: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        2:        2: 2088:/*EOF*/
        2:        2: 2089:/*EOF*/
        2:        2: 2090:/*EOF*/
        2:        2: 2091:/*EOF*/
        2:        2: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        2:        2: 2094:/*EOF*/
        2:        2: 2095:/*EOF*/
        2:        2: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        2:        2: 2098:/*EOF*/
        2:        2: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
    #####:    #####: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        2:        2: 2106:/*EOF*/
        2:        2: 2107:/*EOF*/
        2:        2: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        2:        2: 2111:/*EOF*/
        2:        2: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       18:       18: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       18:       18: 2141:/*EOF*/
       18:       18: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
       18:       18: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
       18:       18: 2160:/*EOF*/
       12:       12: 2161:/*EOF*/
       12:       12: 2162:/*EOF*/
       12:       12: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
       18:       18: 2165:/*EOF*/
       18:       18: 2166:/*EOF*/
       18:       18: 2167:/*EOF*/
       18:       18: 2168:/*EOF*/
       18:       18: 2169:/*EOF*/
       18:       18: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
       18:       18: 2172:/*EOF*/
        2:        2: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
       18:       18: 2175:/*EOF*/
        3:        3: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
       18:       18: 2179:/*EOF*/
       12:       12: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        6:        6: 2182:/*EOF*/
       18:       18: 2183:/*EOF*/
       18:       18: 2184:/*EOF*/
       18:       18: 2185:/*EOF*/
       18:       18: 2186:/*EOF*/
       12:       12: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        6:        6: 2189:/*EOF*/
       18:       18: 2190:/*EOF*/
       18:       18: 2191:/*EOF*/
       18:       18: 2192:/*EOF*/
       18:       18: 2193:/*EOF*/
       18:       18: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
       18:       18: 2196:/*EOF*/
       18:       18: 2197:/*EOF*/
       18:       18: 2198:/*EOF*/
       18:       18: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
       18:       18: 2201:/*EOF*/
       18:       18: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
       18:       18: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
       18:       18: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        1:        1: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        1:        1: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        1:        1: 2232:/*EOF*/
        1:        1: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        1:        1: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        1:        1: 2243:/*EOF*/
        1:        1: 2244:/*EOF*/

src/compiler/glsl/.libs/glsl_parser.yy.gcov

        -:        -:    0:Source:glsl/glsl_parser.yy
        -:        -:    0:Graph:glsl_parser.gcno
        -:        -:    0:Data:glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      301:      313:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      301:      313:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        2:        2:   88:/*EOF*/
        2:        2:   89:/*EOF*/
        2:        2:   90:/*EOF*/
        2:        2:   91:/*EOF*/
        2:        2:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        2:        2:  319:/*EOF*/
        2:        2:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        2:        2:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        2:        2:  340:/*EOF*/
        2:        2:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        2:        2:  409:/*EOF*/
        2:        2:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        4:        4:  417:/*EOF*/
        4:        4:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       58:       59:  438:/*EOF*/
       58:       59:  439:/*EOF*/
       58:       59:  440:/*EOF*/
       58:       59:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       17:       17:  445:/*EOF*/
       17:       17:  446:/*EOF*/
       17:       17:  447:/*EOF*/
       17:       17:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        2:        3:  473:/*EOF*/
        2:        3:  474:/*EOF*/
        2:        3:  475:/*EOF*/
        2:        3:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       16:       16:  502:/*EOF*/
       16:       16:  503:/*EOF*/
       16:       16:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       11:       11:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       14:       15:  512:/*EOF*/
       14:       15:  513:/*EOF*/
       14:       15:  514:/*EOF*/
       14:       15:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        2:        2:  519:/*EOF*/
        2:        2:  520:/*EOF*/
        2:        2:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       11:       11:  556:/*EOF*/
       11:       11:  557:/*EOF*/
       11:       11:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       11:       11:  562:/*EOF*/
       11:       11:  563:/*EOF*/
       11:       11:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        4:        4:  578:/*EOF*/
        4:        4:  579:/*EOF*/
        4:        4:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        7:        7:  584:/*EOF*/
        7:        7:  585:/*EOF*/
        7:        7:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        1:        1:  629:/*EOF*/
        1:        1:  630:/*EOF*/
        1:        1:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        1:        1:  635:/*EOF*/
        1:        1:  636:/*EOF*/
        1:        1:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        1:        1:  651:/*EOF*/
        1:        1:  652:/*EOF*/
        1:        1:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        2:        3:  683:/*EOF*/
        2:        3:  684:/*EOF*/
        2:        3:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        1:        1:  695:/*EOF*/
        1:        1:  696:/*EOF*/
        1:        1:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        2:        2:  701:/*EOF*/
        2:        2:  702:/*EOF*/
        2:        2:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
       10:       10:  797:/*EOF*/
       10:       10:  798:/*EOF*/
       10:       10:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        9:        9:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        1:        1:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
       35:       36:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        8:        8:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        2:        2:  884:/*EOF*/
        2:        2:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        1:        1:  889:/*EOF*/
        1:        1:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        3:        3:  897:/*EOF*/
        3:        3:  898:/*EOF*/
        3:        3:  899:/*EOF*/
        3:        3:  900:/*EOF*/
        3:        3:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        3:        3:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        3:        3:  907:/*EOF*/
        3:        3:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        2:        2:  915:/*EOF*/
        2:        2:  916:/*EOF*/
        2:        2:  917:/*EOF*/
        2:        2:  918:/*EOF*/
        2:        2:  919:/*EOF*/
        2:        2:  920:/*EOF*/
        2:        2:  921:/*EOF*/
        2:        2:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        2:        2:  941:/*EOF*/
        2:        2:  942:/*EOF*/
        2:        2:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        1:        1:  949:/*EOF*/
        1:        1:  950:/*EOF*/
        1:        1:  951:/*EOF*/
        1:        1:  952:/*EOF*/
        1:        1:  953:/*EOF*/
        1:        1:  954:/*EOF*/
        1:        1:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        1:        1:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        3:        3:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
        -:        -:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        2:        2: 1091:/*EOF*/
        2:        2: 1092:/*EOF*/
        2:        2: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        2:        2: 1095:/*EOF*/
        2:        2: 1096:/*EOF*/
        2:        2: 1097:/*EOF*/
        2:        2: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        1:        1: 1102:/*EOF*/
        1:        1: 1103:/*EOF*/
        1:        1: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        1:        1: 1106:/*EOF*/
        1:        1: 1107:/*EOF*/
        1:        1: 1108:/*EOF*/
        1:        1: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        5:        5: 1124:/*EOF*/
        5:        5: 1125:/*EOF*/
        5:        5: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        5:        5: 1128:/*EOF*/
        5:        5: 1129:/*EOF*/
        5:        5: 1130:/*EOF*/
        5:        5: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        8:        8: 1162:/*EOF*/
        8:        8: 1163:/*EOF*/
        8:        8: 1164:/*EOF*/
        8:        8: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        3:        3: 1169:/*EOF*/
        3:        3: 1170:/*EOF*/
        3:        3: 1171:/*EOF*/
        3:        3: 1172:/*EOF*/
        3:        3: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        3:        3: 1176:/*EOF*/
        3:        3: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
    #####:    #####: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
    #####:    #####: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
    #####:    #####: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
    #####:    #####: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
    #####:    #####: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
    #####:    #####: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
    #####:    #####: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
    #####:    #####: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        1:        1: 2051:/*EOF*/
        1:        1: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
    #####:    #####: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        2:        2: 2103:/*EOF*/
        2:        2: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
    #####:    #####: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
    #####:    #####: 2113:/*EOF*/
    #####:    #####: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
    #####:    #####: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        1:        1: 2158:/*EOF*/
        1:        1: 2159:/*EOF*/
        1:        1: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
    #####:    #####: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
       18:       18: 2194:/*EOF*/
       18:       18: 2195:/*EOF*/
       18:       18: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
    #####:    #####: 2200:/*EOF*/
    #####:    #####: 2201:/*EOF*/
    #####:    #####: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        3:        3: 2213:/*EOF*/
        8:        8: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
        2:        2: 2216:/*EOF*/
    #####:    #####: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
        2:        2: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
        3:        3: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
    #####:    #####: 2228:/*EOF*/
    #####:    #####: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
    #####:    #####: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
    #####:    #####: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
    #####:    #####: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
    #####:    #####: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
    #####:    #####: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
    #####:    #####: 2267:/*EOF*/
    #####:    #####: 2268:/*EOF*/
    #####:    #####: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
    #####:    #####: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
    #####:    #####: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
    #####:    #####: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
    #####:    #####: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
    #####:    #####: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
    #####:    #####: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
    #####:    #####: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
    #####:    #####: 2322:/*EOF*/
    #####:    #####: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
    #####:    #####: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
    #####:    #####: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
    #####:    #####: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
    #####:    #####: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
    #####:    #####: 2388:/*EOF*/
    #####:    #####: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
    #####:    #####: 2391:/*EOF*/
    #####:    #####: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
    #####:    #####: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
    #####:    #####: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
    #####:    #####: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
    #####:    #####: 2447:/*EOF*/
    #####:    #####: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        3:        4: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
    #####:    #####: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        3:        4: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        3:        4: 2490:/*EOF*/
        3:        4: 2491:/*EOF*/
        3:        4: 2492:/*EOF*/
        3:        4: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        2:        2: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
    #####:    #####: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        5:        5: 2511:/*EOF*/
        5:        5: 2512:/*EOF*/
        5:        5: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        8:        9: 2520:/*EOF*/
    #####:    #####: 2521:/*EOF*/
    #####:    #####: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        8:        9: 2525:/*EOF*/
        8:        9: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
       12:       12: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
       12:       12: 2534:/*EOF*/
       12:       12: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
    #####:    #####: 2543:/*EOF*/
    #####:    #####: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
       10:       10: 2548:/*EOF*/
       10:       10: 2549:/*EOF*/
       10:       10: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        3:        3: 2557:/*EOF*/
        6:        6: 2558:/*EOF*/
        3:        3: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
    #####:    #####: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        3:        3: 2571:/*EOF*/
        3:        3: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        2:        2: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
    #####:    #####: 2583:/*EOF*/
    #####:    #####: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
    #####:    #####: 2601:/*EOF*/
    #####:    #####: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
    #####:    #####: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
    #####:    #####: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
    #####:    #####: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
    #####:    #####: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
    #####:    #####: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
    #####:    #####: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
    #####:    #####: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
    #####:    #####: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
    #####:    #####: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:        1: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
    #####:        1: 2692:/*EOF*/
    #####:        1: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        2:        2: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        2:        2: 2699:/*EOF*/
        2:        2: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
    #####:    #####: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        2:        2: 2725:/*EOF*/
        2:        2: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
    #####:    #####: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        2:        2: 2752:/*EOF*/
        2:        2: 2753:/*EOF*/
        2:        2: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
    #####:    #####: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        3:        3: 2765:/*EOF*/
        3:        3: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        3:        3: 2774:/*EOF*/
        3:        3: 2775:/*EOF*/
        3:        3: 2776:/*EOF*/
        3:        3: 2777:/*EOF*/
        3:        3: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        3:        3: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
    #####:    #####: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
    #####:    #####: 2807:/*EOF*/
    #####:    #####: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
    #####:    #####: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
    #####:    #####: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
    #####:    #####: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
    #####:    #####: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
    #####:    #####: 2842:/*EOF*/
    #####:    #####: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
    #####:    #####: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
    #####:    #####: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
    #####:    #####: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
    #####:    #####: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
    #####:    #####: 2910:/*EOF*/
    #####:    #####: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
    #####:    #####: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
    #####:    #####: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
    #####:    #####: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
    #####:    #####: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
    #####:    #####: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
    #####:    #####: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
    #####:    #####: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
    #####:    #####: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
    #####:    #####: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
    #####:    #####: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
    #####:    #####: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
    #####:    #####: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
    #####:    #####: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
    #####:    #####: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
    #####:    #####: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
    #####:    #####: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/

src/compiler/glsl/.libs/glsl_symbol_table.cpp.gcov

        -:        -:    0:Source:glsl/glsl_symbol_table.cpp
        -:        -:    0:Graph:glsl_symbol_table.gcno
        -:        -:    0:Data:glsl_symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
     1109:     1109:   30:/*EOF*/
        -:        -:   31:/*EOF*/
    #####:    #####:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      545:      545:   79:/*EOF*/
      545:      545:   80:/*EOF*/
      290:      290:   81:/*EOF*/
      290:      290:   82:/*EOF*/
      274:      274:   83:/*EOF*/
      274:      274:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       18:       18:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       18:       18:  106:/*EOF*/
       18:       18:  107:/*EOF*/
       18:       18:  108:/*EOF*/
       18:       18:  109:/*EOF*/
       18:       18:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       36:       36:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       18:       18:  114:/*EOF*/
       18:       18:  115:/*EOF*/
       18:       18:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       19:       21:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       19:       21:  120:/*EOF*/
       19:       21:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       17:       19:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       19:  125:/*EOF*/
       17:       19:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        2:        2:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        2:        2:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      545:      545:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      545:      545:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      545:      545:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      545:      545:  165:/*EOF*/
      545:      545:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      274:      274:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      274:      274:  171:/*EOF*/
      274:      274:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      290:      290:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      290:      290:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      290:      290:  202:/*EOF*/
      290:      290:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      320:      322:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      320:      322:  233:/*EOF*/
      320:      322:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       71:       72:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       71:       72:  239:/*EOF*/
       71:       72:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
      379:      380:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      379:      380:  252:/*EOF*/
      379:      380:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      770:      774:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      770:      774:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/

src/compiler/glsl/.libs/glsl_to_nir.cpp.gcov

        -:        -:    0:Source:glsl/glsl_to_nir.cpp
        -:        -:    0:Graph:glsl_to_nir.gcno
        -:        -:    0:Data:glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        3:        3:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        3:        3:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        1:        1:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        2:        2:  135:/*EOF*/
        1:        1:  136:/*EOF*/
        2:        2:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        1:        1:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        3:        3:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        3:        3:  152:/*EOF*/
        6:        6:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        6:        6:  155:/*EOF*/
        3:        3:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        3:        3:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        3:        3:  166:/*EOF*/
        1:        1:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        3:        3:  169:/*EOF*/
        3:        3:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        3:        3:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        6:        6:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        3:        3:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        3:        3:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        3:        3:  186:/*EOF*/
        3:        3:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        3:        3:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        6:        6:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       98:       98:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       98:       98:  204:/*EOF*/
       98:       98:  205:/*EOF*/
       98:       98:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       67:       69:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       67:       69:  212:/*EOF*/
       30:       30:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       37:       39:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       37:       39:  217:/*EOF*/
       37:       39:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       37:       39:  221:/*EOF*/
       37:       39:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
       28:       28:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       56:       56:  236:/*EOF*/
       28:       28:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       28:       28:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        2:        6:  242:/*EOF*/
        3:        7:  243:/*EOF*/
        2:        4:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        1:        3:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        8:        8:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       16:       16:  275:/*EOF*/
        8:        8:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        8:        8:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       37:       39:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       33:       33:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       33:       33:  311:/*EOF*/
       33:       33:  312:/*EOF*/
       33:       33:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       33:       33:  315:/*EOF*/
       33:       33:  316:/*EOF*/
       33:       33:  317:/*EOF*/
       33:       33:  318:/*EOF*/
       33:       33:  319:/*EOF*/
       33:       33:  320:/*EOF*/
       33:       33:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       33:       33:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       25:       25:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       25:       25:  329:/*EOF*/
       25:       25:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        5:        5:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        3:        3:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        3:        3:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        3:        3:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        3:        3:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        3:        3:  370:/*EOF*/
        3:        3:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        3:        3:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        2:        2:  379:/*EOF*/
        2:        2:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       33:       33:  394:/*EOF*/
       33:       33:  395:/*EOF*/
       33:       33:  396:/*EOF*/
       33:       33:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       33:       33:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       33:       33:  401:/*EOF*/
       33:       33:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
       33:       33:  419:/*EOF*/
       33:       33:  420:/*EOF*/
       33:       33:  421:/*EOF*/
       33:       33:  422:/*EOF*/
       33:       33:  423:/*EOF*/
       33:       33:  424:/*EOF*/
       33:       33:  425:/*EOF*/
       33:       33:  426:/*EOF*/
       33:       33:  427:/*EOF*/
       33:       33:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       33:       33:  430:/*EOF*/
       33:       33:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       33:       33:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       33:       33:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       33:       33:  447:/*EOF*/
        -:        -:  448:/*EOF*/
       33:       33:  449:/*EOF*/
       25:       25:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        8:        8:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       33:       33:  454:/*EOF*/
       33:       33:  455:/*EOF*/
       33:       33:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        3:        3:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        6:        6:  461:/*EOF*/
        3:        3:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        3:        3:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        3:        3:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        3:        3:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        3:        3:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        3:        3:  475:/*EOF*/
        3:        3:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        3:        3:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        3:        3:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        6:        6:  484:/*EOF*/
        3:        3:  485:/*EOF*/
        3:        3:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        3:        3:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        3:        3:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        3:        3:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        3:        3:  497:/*EOF*/
        3:        3:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        3:        3:  500:/*EOF*/
        3:        3:  501:/*EOF*/
        3:        3:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        3:        3:  504:/*EOF*/
        3:        3:  505:/*EOF*/
        3:        3:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        3:        3:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        3:        3:  510:/*EOF*/
        3:        3:  511:/*EOF*/
        3:        3:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        3:        3:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        3:        5:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        3:        5:  523:/*EOF*/
        3:        5:  524:/*EOF*/
        3:        5:  525:/*EOF*/
        3:        5:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       14:       18:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       14:       18:  531:/*EOF*/
       14:       18:  532:/*EOF*/
       14:       18:  533:/*EOF*/
       14:       18:  534:/*EOF*/
       14:       18:  535:/*EOF*/
       14:       18:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        5:        9:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        5:        9:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        5:        9:  585:/*EOF*/
        5:        9:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        5:        9:  594:/*EOF*/
        5:        9:  595:/*EOF*/
        5:        9:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
       68:       68: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
       68:       68: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
      136:      136: 1173:/*EOF*/
      136:      136: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
      172:      172: 1176:/*EOF*/
       61:       61: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
       49:       49: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
       49:       49: 1182:/*EOF*/
       49:       49: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
       49:       49: 1185:/*EOF*/
       12:       12: 1186:/*EOF*/
       12:       12: 1187:/*EOF*/
       12:       12: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
       37:       37: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
       49:       49: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
       19:       19: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
       19:       19: 1197:/*EOF*/
       19:       19: 1198:/*EOF*/
       19:       19: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
       19:       19: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        6:        6: 1208:/*EOF*/
       30:       30: 1209:/*EOF*/
       24:       24: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        6:        6: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
       19:       19: 1216:/*EOF*/
       19:       19: 1217:/*EOF*/
       19:       19: 1218:/*EOF*/
       19:       19: 1219:/*EOF*/
       19:       19: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
       19:       19: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
       19:       19: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
       82:       88: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
       82:       88: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
       82:       88: 1250:/*EOF*/
       82:       88: 1251:/*EOF*/
       82:       88: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
       82:       88: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
       82:       88: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
       82:       88: 1273:/*EOF*/
       82:       88: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
       82:       88: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
       82:       88: 1278:/*EOF*/
       82:       88: 1279:/*EOF*/
       82:       88: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
       82:       88: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
      128:      138: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
      128:      138: 1287:/*EOF*/
      128:      138: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
       82:       88: 1295:/*EOF*/
       82:       88: 1296:/*EOF*/
       82:       88: 1297:/*EOF*/
       82:       88: 1298:/*EOF*/
       82:       88: 1299:/*EOF*/
       82:       88: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
      128:      138: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
       37:       39: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       37:       39: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        3:        3: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        3:        3: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
       43:       45: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
       43:       45: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
    #####:    #####: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
       43:       45: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
      123:      129: 1415:/*EOF*/
       80:       84: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
      123:      129: 1419:/*EOF*/
       80:       84: 1420:/*EOF*/
       80:       84: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
       43:       45: 1426:/*EOF*/
       43:       45: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
       43:       45: 1431:/*EOF*/
    #####:    #####: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
        1:        1: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        4:        4: 1460:/*EOF*/
        4:        4: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        1:        1: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
    #####:    #####: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
    #####:    #####: 1649:/*EOF*/
    #####:    #####: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        9:        9: 1654:/*EOF*/
        9:        9: 1655:/*EOF*/
        6:        6: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        4:        4: 1662:/*EOF*/
        4:        4: 1663:/*EOF*/
        2:        2: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
       10:       10: 1674:/*EOF*/
       10:       10: 1675:/*EOF*/
        5:        5: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
    #####:    #####: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
    #####:    #####: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        2:        2: 1745:/*EOF*/
        2:        2: 1746:/*EOF*/
        2:        2: 1747:/*EOF*/
    #####:    #####: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        2:        2: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        6:        8: 1757:/*EOF*/
        6:        8: 1758:/*EOF*/
        3:        5: 1759:/*EOF*/
        3:        3: 1760:/*EOF*/
        3:        3: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        6:        8: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
       16:       16: 1769:/*EOF*/
       16:       16: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
       16:       16: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
       16:       16: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
    #####:    #####: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
    #####:    #####: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
    #####:    #####: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
    #####:    #####: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        3:        5: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        3:        5: 1895:/*EOF*/
        6:       10: 1896:/*EOF*/
        9:       15: 1897:/*EOF*/
        3:        5: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
    #####:    #####: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
    #####:    #####: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
    #####:    #####: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
    #####:    #####: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
    #####:    #####: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
       34:       36: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
       34:       36: 2100:/*EOF*/
       34:       36: 2101:/*EOF*/
       34:       36: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
       34:       36: 2104:/*EOF*/
       34:       36: 2105:/*EOF*/
       34:       36: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
      165:      169: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
      165:      169: 2112:/*EOF*/
      165:      169: 2113:/*EOF*/
      165:      169: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
      165:      169: 2116:/*EOF*/
      165:      169: 2117:/*EOF*/
      165:      169: 2118:/*EOF*/
      165:      169: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
       15:       15: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
       15:       15: 2138:/*EOF*/
       15:       15: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
       15:       15: 2141:/*EOF*/
       15:       15: 2142:/*EOF*/
       15:       15: 2143:/*EOF*/
       15:       15: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
       15:       15: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
       15:       15: 2153:/*EOF*/
       15:       15: 2154:/*EOF*/
       15:       15: 2155:/*EOF*/
       15:       15: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/

src/compiler/glsl/.libs/hir_field_selection.cpp.gcov

        -:        -:    0:Source:glsl/hir_field_selection.cpp
        -:        -:    0:Graph:hir_field_selection.gcno
        -:        -:    0:Data:hir_field_selection.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       14:       15:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       14:       15:   34:/*EOF*/
       14:       15:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       14:       15:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       14:       15:   46:/*EOF*/
       14:       15:   47:/*EOF*/
        -:        -:   48:/*EOF*/
       14:       15:   49:/*EOF*/
       14:       15:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       28:       30:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
       14:       15:   61:/*EOF*/
       14:       15:   62:/*EOF*/
       28:       30:   63:/*EOF*/
       14:       15:   64:/*EOF*/
       14:       15:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       14:       15:   80:/*EOF*/

src/compiler/glsl/.libs/ir_array_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_array_refcount.cpp
        -:        -:    0:Graph:ir_array_refcount.gcno
        -:        -:    0:Data:ir_array_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        3:        3:   36:/*EOF*/
        3:        3:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        3:        3:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       23:       23:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       23:       23:   47:/*EOF*/
       23:       23:   48:/*EOF*/
       23:       23:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        6:        6:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        3:        3:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       23:       23:   57:/*EOF*/
       23:       23:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       23:       23:   60:/*EOF*/
       23:       23:   61:/*EOF*/
       23:       23:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       23:       23:   65:/*EOF*/
       24:       24:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       23:       23:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       46:       46:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       23:       23:   76:/*EOF*/
       23:       23:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       15:       15:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       15:       15:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       15:       15:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       15:       15:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       30:       30:  100:/*EOF*/
       15:       15:  101:/*EOF*/
       15:       15:  102:/*EOF*/
       15:       15:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       15:       15:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      116:      120:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      116:      120:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      116:      120:  132:/*EOF*/
      116:      120:  133:/*EOF*/
       93:       97:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       23:       23:  136:/*EOF*/
       23:       23:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       23:       23:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       15:       15:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       15:       15:  146:/*EOF*/
        1:        1:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        1:        1:  152:/*EOF*/
        1:        1:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
       15:       15:  156:/*EOF*/
       15:       15:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       15:       15:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       19:       19:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       19:       19:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       15:       15:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       15:       15:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       15:       15:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       15:       15:  186:/*EOF*/
       45:       45:  187:/*EOF*/
       15:       15:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       15:       15:  190:/*EOF*/
       15:       15:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       15:       15:  193:/*EOF*/
       15:       15:  194:/*EOF*/
       15:       15:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       15:       15:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       15:       15:  199:/*EOF*/
       15:       15:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       15:       15:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       15:       15:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       15:       15:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       15:       15:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       15:       15:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       15:       15:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       15:       15:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      101:      105:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      101:      105:  237:/*EOF*/
      101:      105:  238:/*EOF*/
        -:        -:  239:/*EOF*/
      101:      105:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      101:      105:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        3:        3:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        3:        3:  252:/*EOF*/
        3:        3:  253:/*EOF*/

src/compiler/glsl/.libs/ir_basic_block.cpp.gcov

        -:        -:    0:Source:glsl/ir_basic_block.cpp
        -:        -:    0:Graph:ir_basic_block.gcno
        -:        -:    0:Data:ir_basic_block.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      494:      648:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      494:      648:   56:/*EOF*/
      494:      648:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     3062:     3370:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
     2568:     2722:   64:/*EOF*/
      576:      730:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     2568:     2722:   67:/*EOF*/
      184:      246:   68:/*EOF*/
      184:      246:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      184:      246:   71:/*EOF*/
      184:      246:   72:/*EOF*/
     2384:     2476:   73:/*EOF*/
       48:       78:   74:/*EOF*/
       48:       78:   75:/*EOF*/
       48:       78:   76:/*EOF*/
     2336:     2398:   77:/*EOF*/
      102:      164:   78:/*EOF*/
      102:      164:   79:/*EOF*/
     2234:     2234:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       84:       84:   90:/*EOF*/
       42:       42:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
     2568:     2722:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      494:      648:   96:/*EOF*/
      242:      242:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      494:      648:   99:/*EOF*/

src/compiler/glsl/.libs/ir_clone.cpp.gcov

        -:        -:    0:Source:glsl/ir_clone.cpp
        -:        -:    0:Graph:ir_clone.gcno
        -:        -:    0:Data:ir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      263:      263:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      263:      263:   43:/*EOF*/
      526:      526:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      263:      263:   46:/*EOF*/
      263:      263:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      263:      263:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      263:      263:   56:/*EOF*/
       60:       60:   57:/*EOF*/
       60:       60:   58:/*EOF*/
      120:      120:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      263:      263:   62:/*EOF*/
       12:       12:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      263:      263:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       16:       16:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      263:      263:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      263:      263:   71:/*EOF*/
      263:      263:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      263:      263:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        7:       10:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        7:       10:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       72:       72:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       72:       72:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       72:       72:   88:/*EOF*/
       72:       72:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       72:       72:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        9:       17:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        9:       17:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       16:       24:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       16:       24:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       38:       54:  118:/*EOF*/
       22:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       22:       30:  122:/*EOF*/
        6:        6:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       16:       24:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        4:        7:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        4:        7:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       27:       41:  134:/*EOF*/
       23:       34:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        4:        7:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        2:        2:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        2:        2:  144:/*EOF*/
        2:        2:  145:/*EOF*/
        2:        2:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        2:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        4:        4:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        2:        2:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      103:      106:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      103:      106:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
      293:      302:  163:/*EOF*/
      190:      196:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      103:      106:  167:/*EOF*/
      206:      212:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      338:      346:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      338:      346:  176:/*EOF*/
      268:      276:  177:/*EOF*/
      268:      276:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       70:       70:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      338:      346:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       22:       22:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       22:       22:  189:/*EOF*/
       44:       44:  190:/*EOF*/
       66:       66:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       54:       54:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       54:       54:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       54:       54:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       54:       54:  258:/*EOF*/
       54:       54:  259:/*EOF*/
      108:      108:  260:/*EOF*/
       54:       54:  261:/*EOF*/
       54:       54:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        9:        9:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        9:        9:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        9:        9:  270:/*EOF*/
        9:        9:  271:/*EOF*/
        9:        9:  272:/*EOF*/
        9:        9:  273:/*EOF*/
        9:        9:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       77:       77:  277:/*EOF*/
       68:       68:  278:/*EOF*/
       68:       68:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       68:       68:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       68:       68:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        9:        9:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       68:       68:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       68:       68:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       68:       68:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
      172:      172:  299:/*EOF*/
      104:      104:  300:/*EOF*/
      104:      104:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       68:       68:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       68:       68:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       68:       68:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       68:       68:  313:/*EOF*/
       68:       68:  314:/*EOF*/
       68:       68:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
      190:      190:  319:/*EOF*/
      122:      122:  320:/*EOF*/
        -:        -:  321:/*EOF*/
      122:      122:  322:/*EOF*/
      122:      122:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       68:       68:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       74:       79:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       74:       79:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       74:       79:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        3:        3:  388:/*EOF*/
        3:        3:  389:/*EOF*/
        3:        3:  390:/*EOF*/
        3:        3:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        2:        2:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        2:        2:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        2:        2:  401:/*EOF*/
        2:        2:  402:/*EOF*/
        2:        2:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        2:        2:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        3:        3:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        3:        3:  420:/*EOF*/
        3:        3:  421:/*EOF*/
        3:        3:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        3:        3:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        3:        3:  429:/*EOF*/
        -:        -:  430:/*EOF*/
      112:      112:  431:/*EOF*/
      109:      109:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      109:      109:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        3:        3:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        3:        3:  444:/*EOF*/
        3:        3:  445:/*EOF*/

src/compiler/glsl/.libs/ir_constant_expression.cpp.gcov

        -:        -:    0:Source:glsl/ir_constant_expression.cpp
        -:        -:    0:Graph:ir_constant_expression.gcno
        -:        -:    0:Data:ir_constant_expression.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
        -:        -:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
      191:      208:  631:/*EOF*/
        -:        -:  632:/*EOF*/
      191:      208:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      191:      208:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
      191:      208:  639:/*EOF*/
        -:        -:  640:/*EOF*/
      191:      208:  641:/*EOF*/
      191:      208:  642:/*EOF*/
      191:      208:  643:/*EOF*/
      191:      208:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
       97:      128:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       97:      128:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       97:      128:  714:/*EOF*/
       12:       12:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       48:       48:  718:/*EOF*/
       48:       48:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       24:       24:  721:/*EOF*/
       12:       12:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       12:       12:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
       12:       12:  732:/*EOF*/
       12:       12:  733:/*EOF*/
        -:        -:  734:/*EOF*/
       85:      116:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
     1132:     1212:  740:/*EOF*/
        -:        -:  741:/*EOF*/
     1132:     1212:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
     1132:     1212:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
     1132:     1212:  755:/*EOF*/
      151:      151:  756:/*EOF*/
        -:        -:  757:/*EOF*/
      981:     1061:  758:/*EOF*/
      978:     1056:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        3:        5:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
      137:      137:  766:/*EOF*/
        -:        -:  767:/*EOF*/
      137:      137:  768:/*EOF*/
      137:      137:  769:/*EOF*/
        -:        -:  770:/*EOF*/
      137:      137:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
      137:      137:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
      280:      295:  844:/*EOF*/
        -:        -:  845:/*EOF*/
      280:      295:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        6:        6:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        6:        6:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
       13:       13:  965:/*EOF*/
        -:        -:  966:/*EOF*/
       13:       13:  967:/*EOF*/
       13:       13:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
       13:       13:  975:/*EOF*/
        8:        8:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        5:        5:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        5:        5:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        5:        5: 1000:/*EOF*/
        5:        5: 1001:/*EOF*/
        5:        5: 1002:/*EOF*/
        5:        5: 1003:/*EOF*/
        5:        5: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/

src/compiler/glsl/.libs/ir.cpp.gcov

        -:        -:    0:Source:glsl/ir.cpp
        -:        -:    0:Graph:ir.gcno
        -:        -:    0:Data:ir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    17530:    17557:   28:/*EOF*/
    17530:    17557:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    17530:    17557:   31:/*EOF*/
    17530:    17557:   32:/*EOF*/
        -:        -:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       12:       12:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       12:       12:   59:/*EOF*/
        8:        8:   60:/*EOF*/
        2:        2:   61:/*EOF*/
        2:        2:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       12:       12:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      135:      135:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      135:      135:   71:/*EOF*/
      135:      135:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      147:      147:   74:/*EOF*/
      141:      141:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      141:      141:   77:/*EOF*/
      135:      135:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        6:        6:   80:/*EOF*/
        6:        6:   81:/*EOF*/
        -:        -:   82:/*EOF*/
       12:       12:   83:/*EOF*/
        6:        6:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        6:        6:   86:/*EOF*/
        6:        6:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        6:        6:   94:/*EOF*/
        6:        6:   95:/*EOF*/
        6:        6:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        6:        6:   99:/*EOF*/
        6:        6:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        6:        6:  102:/*EOF*/
        6:        6:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      135:      135:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        6:        6:  110:/*EOF*/
        6:        6:  111:/*EOF*/
       30:       30:  112:/*EOF*/
       24:       24:  113:/*EOF*/
        6:        6:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        6:        6:  116:/*EOF*/
        6:        6:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      135:      135:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      135:      135:  122:/*EOF*/
      135:      135:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
     1243:     1299:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     1243:     1299:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     1243:     1299:  130:/*EOF*/
       24:       24:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     1219:     1275:  133:/*EOF*/
      953:     1009:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      266:      266:  136:/*EOF*/
      266:      266:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      266:      266:  139:/*EOF*/
      178:      178:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       88:       88:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      878:      878:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      878:      878:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      878:      878:  153:/*EOF*/
      878:      878:  154:/*EOF*/
      878:      878:  155:/*EOF*/
      878:      878:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      878:      878:  158:/*EOF*/
      878:      878:  159:/*EOF*/
     4390:     4390:  160:/*EOF*/
     3512:     3512:  161:/*EOF*/
     1369:     1369:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      878:      878:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      878:      878:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      134:      134:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      134:      134:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      134:      134:  173:/*EOF*/
      134:      134:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      134:      134:  183:/*EOF*/
       24:       24:  184:/*EOF*/
      110:      110:  185:/*EOF*/
      110:      110:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      134:      134:  190:/*EOF*/
      134:      134:  191:/*EOF*/
        -:        -:  192:/*EOF*/
      143:      148:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
      143:      148:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      143:      148:  198:/*EOF*/
      143:      148:  199:/*EOF*/
      143:      148:  200:/*EOF*/
      143:      148:  201:/*EOF*/
      143:      148:  202:/*EOF*/
      143:      148:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      143:      148:  205:/*EOF*/
      431:      446:  206:/*EOF*/
      288:      298:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      143:      148:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      765:      766:  212:/*EOF*/
      765:      766:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      765:      766:  215:/*EOF*/
      765:      766:  216:/*EOF*/
      765:      766:  217:/*EOF*/
      765:      766:  218:/*EOF*/
      765:      766:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      765:      766:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      765:      766:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      492:      493:  252:/*EOF*/
      492:      493:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       43:       43:  266:/*EOF*/
       86:       86:  267:/*EOF*/
       43:       43:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       62:       62:  278:/*EOF*/
      124:      124:  279:/*EOF*/
       62:       62:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       19:       19:  295:/*EOF*/
       38:       38:  296:/*EOF*/
       19:       19:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       24:       24:  305:/*EOF*/
       48:       48:  306:/*EOF*/
       24:       24:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        2:        2:  315:/*EOF*/
        4:        4:  316:/*EOF*/
        2:        2:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        4:        4:  324:/*EOF*/
        8:        8:  325:/*EOF*/
        4:        4:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       40:       40:  328:/*EOF*/
       40:       40:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        8:        8:  333:/*EOF*/
        8:        8:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        3:        3:  337:/*EOF*/
        3:        3:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        5:        5:  345:/*EOF*/
        5:        5:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        1:        1:  349:/*EOF*/
        1:        1:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        5:        5:  353:/*EOF*/
        5:        5:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       12:       12:  357:/*EOF*/
       12:       12:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        3:        3:  363:/*EOF*/
        3:        3:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        2:        2:  368:/*EOF*/
        2:        2:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        4:        4:  372:/*EOF*/
        4:        4:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        4:        4:  375:/*EOF*/
        8:        8:  376:/*EOF*/
        4:        4:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        1:        1:  385:/*EOF*/
        1:        1:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       12:       12:  389:/*EOF*/
       12:       12:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        3:        3:  395:/*EOF*/
        3:        3:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        8:        8:  400:/*EOF*/
       16:       16:  401:/*EOF*/
        8:        8:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        4:        4:  405:/*EOF*/
        8:        8:  406:/*EOF*/
        4:        4:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        4:        4:  409:/*EOF*/
        8:        8:  410:/*EOF*/
        4:        4:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
      765:      766:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     2123:     2123:  420:/*EOF*/
     2123:     2123:  421:/*EOF*/
        -:        -:  422:/*EOF*/
     2123:     2123:  423:/*EOF*/
     2123:     2123:  424:/*EOF*/
     2123:     2123:  425:/*EOF*/
     2123:     2123:  426:/*EOF*/
     2123:     2123:  427:/*EOF*/
        -:        -:  428:/*EOF*/
     2123:     2123:  429:/*EOF*/
        -:        -:  430:/*EOF*/
     2123:     2123:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        6:        6:  434:/*EOF*/
        6:        6:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
     1683:     1683:  445:/*EOF*/
      954:      954:  446:/*EOF*/
      729:      729:  447:/*EOF*/
      270:      270:  448:/*EOF*/
        -:        -:  449:/*EOF*/
      459:      459:  450:/*EOF*/
      178:      178:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      281:      281:  453:/*EOF*/
      281:      281:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
     1683:     1683:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
       38:       38:  465:/*EOF*/
       38:       38:  466:/*EOF*/
       38:       38:  467:/*EOF*/
       32:       32:  468:/*EOF*/
        6:        6:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        6:        6:  472:/*EOF*/
        6:        6:  473:/*EOF*/
        -:        -:  474:/*EOF*/
       38:       38:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      275:      275:  483:/*EOF*/
      275:      275:  484:/*EOF*/
      550:      550:  485:/*EOF*/
      275:      275:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
       44:       44:  489:/*EOF*/
       44:       44:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       62:       62:  500:/*EOF*/
       62:       62:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        3:        3:  504:/*EOF*/
        3:        3:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       12:       12:  508:/*EOF*/
       12:       12:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
     2123:     2123:  515:/*EOF*/
        -:        -:  516:/*EOF*/
       86:       86:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       86:       86:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       86:       86:  521:/*EOF*/
       86:       86:  522:/*EOF*/
       86:       86:  523:/*EOF*/
       86:       86:  524:/*EOF*/
       86:       86:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       86:       86:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       86:       86:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
       30:       30:  534:/*EOF*/
       30:       30:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
       56:       56:  538:/*EOF*/
       56:       56:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
       86:       86:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    34654:    37828:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    34654:    37828:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    34654:    37828:  552:/*EOF*/
     4098:     4392:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    30556:    33436:  555:/*EOF*/
    30467:    33347:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       89:       89:  558:/*EOF*/
       81:       81:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        8:        8:  561:/*EOF*/
        8:        8:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        2:        2:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        2:        2:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        2:        2:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
       16:       16:  612:/*EOF*/
       16:       16:  613:/*EOF*/
        -:        -:  614:/*EOF*/
       16:       16:  615:/*EOF*/
       16:       16:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      134:      139:  618:/*EOF*/
        -:        -:  619:/*EOF*/
      134:      139:  620:/*EOF*/
        -:        -:  621:/*EOF*/
      134:      139:  622:/*EOF*/
        -:        -:  623:/*EOF*/
      268:      278:  624:/*EOF*/
      134:      139:  625:/*EOF*/
        -:        -:  626:/*EOF*/
      134:      139:  627:/*EOF*/
      134:      139:  628:/*EOF*/
      134:      139:  629:/*EOF*/
        -:        -:  630:/*EOF*/
      278:      279:  631:/*EOF*/
      278:      279:  632:/*EOF*/
        -:        -:  633:/*EOF*/
      278:      279:  634:/*EOF*/
      278:      279:  635:/*EOF*/
      610:      612:  636:/*EOF*/
      332:      333:  637:/*EOF*/
        -:        -:  638:/*EOF*/
     4394:     4410:  639:/*EOF*/
     4116:     4131:  640:/*EOF*/
        -:        -:  641:/*EOF*/
      278:      279:  642:/*EOF*/
        -:        -:  643:/*EOF*/
       48:       48:  644:/*EOF*/
       48:       48:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       48:       48:  647:/*EOF*/
       48:       48:  648:/*EOF*/
       96:       96:  649:/*EOF*/
       48:       48:  650:/*EOF*/
        -:        -:  651:/*EOF*/
      768:      768:  652:/*EOF*/
      720:      720:  653:/*EOF*/
        -:        -:  654:/*EOF*/
       48:       48:  655:/*EOF*/
        -:        -:  656:/*EOF*/
       54:       54:  657:/*EOF*/
       54:       54:  658:/*EOF*/
        -:        -:  659:/*EOF*/
       54:       54:  660:/*EOF*/
       54:       54:  661:/*EOF*/
      126:      126:  662:/*EOF*/
       72:       72:  663:/*EOF*/
        -:        -:  664:/*EOF*/
      846:      846:  665:/*EOF*/
      792:      792:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       54:       54:  668:/*EOF*/
        -:        -:  669:/*EOF*/
     1379:     1379:  670:/*EOF*/
     1379:     1379:  671:/*EOF*/
        -:        -:  672:/*EOF*/
     1379:     1379:  673:/*EOF*/
     1379:     1379:  674:/*EOF*/
     2770:     2770:  675:/*EOF*/
     1391:     1391:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    22052:    22052:  678:/*EOF*/
    20673:    20673:  679:/*EOF*/
        -:        -:  680:/*EOF*/
     1379:     1379:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       15:       15:  709:/*EOF*/
       15:       15:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       15:       15:  712:/*EOF*/
       15:       15:  713:/*EOF*/
       42:       42:  714:/*EOF*/
       27:       27:  715:/*EOF*/
        -:        -:  716:/*EOF*/
      228:      228:  717:/*EOF*/
      213:      213:  718:/*EOF*/
        -:        -:  719:/*EOF*/
       15:       15:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
       16:       16:  903:/*EOF*/
        -:        -:  904:/*EOF*/
       26:       26:  905:/*EOF*/
       16:       16:  906:/*EOF*/
        -:        -:  907:/*EOF*/
       16:       16:  908:/*EOF*/
       16:       16:  909:/*EOF*/
       16:       16:  910:/*EOF*/
        -:        -:  911:/*EOF*/
       16:       16:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
       16:       16:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
       16:       16:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        2:        2:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        2:        2:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        2:        2:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
       15:       15:  990:/*EOF*/
        -:        -:  991:/*EOF*/
       15:       15:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
       15:       15:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
    #####:    #####: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
       24:       24: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
       24:       24: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
       24:       24: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       24:       24: 1309:/*EOF*/
       24:       24: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
       24:       24: 1316:/*EOF*/
       24:       24: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
       24:       24: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
       24:       24: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
       14:       18: 1379:/*EOF*/
       14:       18: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
       14:       18: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
     8964:     8975: 1385:/*EOF*/
     8964:     8975: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
     8964:     8975: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
     8964:     8975: 1390:/*EOF*/
     8964:     8975: 1391:/*EOF*/
     8964:     8975: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
       38:       38: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
       38:       38: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
       38:       38: 1399:/*EOF*/
       38:       38: 1400:/*EOF*/
       38:       38: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
     1172:     1172: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
     1172:     1172: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
     1172:     1172: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
     1172:     1172: 1410:/*EOF*/
     1172:     1172: 1411:/*EOF*/
     1172:     1172: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
     1210:     1210: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
     1210:     1210: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
     1210:     1210: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
     1210:     1210: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
     1210:     1210: 1424:/*EOF*/
       30:       30: 1425:/*EOF*/
     1180:     1180: 1426:/*EOF*/
     1172:     1172: 1427:/*EOF*/
        8:        8: 1428:/*EOF*/
        8:        8: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
     1210:     1210: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
       17:       17: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
       17:       17: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
       17:       17: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
       17:       17: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
       17:       17: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
      701:      701: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
      701:      701: 1503:/*EOF*/
      701:      701: 1504:/*EOF*/
      701:      701: 1505:/*EOF*/
      701:      701: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
     1335:     1335: 1508:/*EOF*/
      634:      634: 1509:/*EOF*/
       73:       73: 1510:/*EOF*/
      628:      628: 1511:/*EOF*/
       54:       54: 1512:/*EOF*/
       54:       54: 1513:/*EOF*/
      574:      574: 1514:/*EOF*/
        6:        6: 1515:/*EOF*/
        6:        6: 1516:/*EOF*/
        6:        6: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
      568:      568: 1519:/*EOF*/
      568:      568: 1520:/*EOF*/
       94:       94: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
      474:      474: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
      701:      701: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
     1592:     1593: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
     1592:     1593: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
     1592:     1593: 1533:/*EOF*/
     1592:     1593: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
     1592:     1593: 1536:/*EOF*/
     1592:     1593: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        8:        8: 1539:/*EOF*/
        8:        8: 1540:/*EOF*/
        8:        8: 1541:/*EOF*/
        8:        8: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
       61:       61: 1545:/*EOF*/
       61:       61: 1546:/*EOF*/
       61:       61: 1547:/*EOF*/
       61:       61: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
      206:      206: 1551:/*EOF*/
      206:      206: 1552:/*EOF*/
      206:      206: 1553:/*EOF*/
      206:      206: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
     1592:     1593: 1557:/*EOF*/
     1592:     1593: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
     1592:     1593: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
     1592:     1593: 1567:/*EOF*/
     1592:     1593: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
     1342:     1343: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
     1342:     1343: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
     1342:     1343: 1574:/*EOF*/
     1342:     1343: 1575:/*EOF*/
     1342:     1343: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
      250:      250: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
      250:      250: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
      250:      250: 1582:/*EOF*/
      250:      250: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
       22:       25: 1585:/*EOF*/
       22:       25: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
       22:       25: 1588:/*EOF*/
       22:       25: 1589:/*EOF*/
       22:       25: 1590:/*EOF*/
       44:       50: 1591:/*EOF*/
       22:       25: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
       14:       15: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
       14:       15: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
       14:       15: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
       14:       15: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
       14:       15: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
       28:       30: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
       14:       15: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
       14:       15: 1660:/*EOF*/
       14:       15: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
       14:       15: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       42:       45: 1668:/*EOF*/
       56:       60: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
       11:       11: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
       11:       11: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
     6810:     6810: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
     6810:     6810: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
     6810:     6810: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
     6810:     6810: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
     6810:     6810: 1704:/*EOF*/
    #####:    #####: 1705:/*EOF*/
     6810:     6810: 1706:/*EOF*/
     6810:     6810: 1707:/*EOF*/
      727:      727: 1708:/*EOF*/
    #####:    #####: 1709:/*EOF*/
    13620:    13620: 1710:/*EOF*/
     6810:     6810: 1711:/*EOF*/
     6585:     6585: 1712:/*EOF*/
     6585:     6585: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
      225:      225: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
     6810:     6810: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
     6810:     6810: 1720:/*EOF*/
     6810:     6810: 1721:/*EOF*/
     6810:     6810: 1722:/*EOF*/
     6810:     6810: 1723:/*EOF*/
     6810:     6810: 1724:/*EOF*/
     6810:     6810: 1725:/*EOF*/
     6810:     6810: 1726:/*EOF*/
     6810:     6810: 1727:/*EOF*/
     6810:     6810: 1728:/*EOF*/
     6810:     6810: 1729:/*EOF*/
     6810:     6810: 1730:/*EOF*/
     6810:     6810: 1731:/*EOF*/
     6810:     6810: 1732:/*EOF*/
     6810:     6810: 1733:/*EOF*/
     6810:     6810: 1734:/*EOF*/
     6810:     6810: 1735:/*EOF*/
     6810:     6810: 1736:/*EOF*/
     6810:     6810: 1737:/*EOF*/
     6810:     6810: 1738:/*EOF*/
     6810:     6810: 1739:/*EOF*/
     6810:     6810: 1740:/*EOF*/
     6810:     6810: 1741:/*EOF*/
     6810:     6810: 1742:/*EOF*/
     6810:     6810: 1743:/*EOF*/
     6810:     6810: 1744:/*EOF*/
     6810:     6810: 1745:/*EOF*/
     6810:     6810: 1746:/*EOF*/
     6810:     6810: 1747:/*EOF*/
     6810:     6810: 1748:/*EOF*/
     6810:     6810: 1749:/*EOF*/
     6810:     6810: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
     6810:     6810: 1752:/*EOF*/
     6800:     6800: 1753:/*EOF*/
      701:      701: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
     6800:     6800: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
     6800:     6800: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
     6810:     6810: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
    #####:    #####: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
     2374:     2374: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
     2374:     2374: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
     2374:     2374: 1811:/*EOF*/
     2374:     2374: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
     4488:     4488: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
     4488:     4488: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
     4108:     4108: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
     4108:     4108: 1831:/*EOF*/
     4098:     4098: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
       10:       10: 1834:/*EOF*/
       10:       10: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
    #####:    #####: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
    #####:    #####: 1846:/*EOF*/
    #####:    #####: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
    #####:    #####: 1859:/*EOF*/
    #####:    #####: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
     2305:     2305: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
     2305:     2305: 1889:/*EOF*/
     2305:     2305: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
      292:      292: 1893:/*EOF*/
      292:      292: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
      292:      292: 1896:/*EOF*/
      292:      292: 1897:/*EOF*/
      292:      292: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        5:        5: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        5:        5: 1904:/*EOF*/
        2:        2: 1905:/*EOF*/
        2:        2: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        3:        3: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
       56:       66: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
      744:      764: 1925:/*EOF*/
      688:      698: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
       56:       66: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
     1034:     1084: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
     1034:     1084: 1934:/*EOF*/
     1034:     1084: 1935:/*EOF*/
     1034:     1084: 1936:/*EOF*/
     1034:     1084: 1937:/*EOF*/
       12:       12: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
     1034:     1084: 1940:/*EOF*/
       20:       20: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
     1034:     1084: 1943:/*EOF*/
        6:        6: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
     1034:     1084: 1949:/*EOF*/
      137:      142: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
      137:      142: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
     1034:     1084: 1961:/*EOF*/
     1034:     1084: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        9:        9: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
      140:      140: 1968:/*EOF*/
      131:      131: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        9:        9: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
    #####:    #####: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
    #####:    #####: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
    #####:    #####: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/

src/compiler/glsl/.libs/ir_expression_flattening.cpp.gcov

        -:        -:    0:Source:glsl/ir_expression_flattening.cpp
        -:        -:    0:Graph:ir_expression_flattening.gcno
        -:        -:    0:Data:ir_expression_flattening.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        7:        7:   40:/*EOF*/
        7:        7:   41:/*EOF*/
        7:        7:   42:/*EOF*/
        7:        7:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        7:        7:   45:/*EOF*/
        7:        7:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        7:        7:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        7:        7:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       14:       14:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       36:       36:   60:/*EOF*/
       29:       29:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        7:        7:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      981:     1021:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      981:     1021:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      981:     1021:   72:/*EOF*/
      978:     1018:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        6:        6:   82:/*EOF*/
        3:        3:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        3:        3:   85:/*EOF*/

src/compiler/glsl/.libs/ir_function_detect_recursion.cpp.gcov

        -:        -:    0:Source:glsl/ir_function_detect_recursion.cpp
        -:        -:    0:Graph:ir_function_detect_recursion.gcno
        -:        -:    0:Data:ir_function_detect_recursion.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        8:        8:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        7:        7:  138:/*EOF*/
        7:        7:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        7:        7:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        7:        7:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        5:        5:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        5:        5:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        5:        5:  166:/*EOF*/
       10:       10:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        5:        5:  169:/*EOF*/
        5:        5:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       11:       11:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       11:       11:  175:/*EOF*/
       11:       11:  176:/*EOF*/
        7:        7:  177:/*EOF*/
        7:        7:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        4:        4:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       11:       11:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        7:        7:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        7:        7:  188:/*EOF*/
        7:        7:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        7:        7:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        7:        7:  195:/*EOF*/
        7:        7:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        4:        4:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        4:        4:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        4:        4:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        4:        4:  212:/*EOF*/
        4:        4:  213:/*EOF*/
        4:        4:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        4:        4:  218:/*EOF*/
        4:        4:  219:/*EOF*/
        4:        4:  220:/*EOF*/
        4:        4:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        4:        4:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        8:        8:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        4:        4:  240:/*EOF*/
        4:        4:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        4:        4:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        7:        7:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        7:        7:  252:/*EOF*/
        7:        7:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        7:        7:  255:/*EOF*/
       15:       11:  256:/*EOF*/
        4:        2:  257:/*EOF*/
        4:        2:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:        2:  261:/*EOF*/
    #####:        2:  262:/*EOF*/
    #####:        2:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        7:        7:  266:/*EOF*/
        7:        7:  267:/*EOF*/
        7:        7:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        7:        7:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        4:        4:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        2:        2:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        2:        2:  327:/*EOF*/
        4:        4:  328:/*EOF*/
        4:        4:  329:/*EOF*/
        4:        4:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        2:        2:  335:/*EOF*/
        2:        2:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        3:        3:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        6:        6:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        3:        3:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        3:        3:  353:/*EOF*/
        6:        6:  354:/*EOF*/
        6:        6:  355:/*EOF*/
        6:        6:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        3:        3:  361:/*EOF*/
        3:        3:  362:/*EOF*/

src/compiler/glsl/.libs/ir_hierarchical_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_hierarchical_visitor.cpp
        -:        -:    0:Graph:ir_hierarchical_visitor.gcno
        -:        -:    0:Data:ir_hierarchical_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
     3088:     3165:   27:/*EOF*/
        -:        -:   28:/*EOF*/
     3088:     3165:   29:/*EOF*/
     3088:     3165:   30:/*EOF*/
     3088:     3165:   31:/*EOF*/
     3088:     3165:   32:/*EOF*/
     3088:     3165:   33:/*EOF*/
     3088:     3165:   34:/*EOF*/
     3088:     3165:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    17477:    17477:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    17477:    17477:   49:/*EOF*/
      829:      829:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    17477:    17477:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     8774:     9432:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     8774:     9432:   58:/*EOF*/
      480:      503:   59:/*EOF*/
        -:        -:   60:/*EOF*/
     8774:     9432:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     1481:     2762:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     1481:     2762:   67:/*EOF*/
       61:      107:   68:/*EOF*/
        -:        -:   69:/*EOF*/
     1481:     2762:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    21537:    22436:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    21537:    22436:   76:/*EOF*/
     1143:     1174:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    21537:    22436:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      688:     1136:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      688:     1136:   94:/*EOF*/
       38:       61:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      688:     1136:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      666:     1100:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      666:     1100:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      666:     1100:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      479:      479:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      479:      479:  112:/*EOF*/
       30:       30:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      479:      479:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      510:      510:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      510:      510:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      510:      510:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      599:      599:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      599:      599:  130:/*EOF*/
       30:       30:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      599:      599:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      637:      637:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      637:      637:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      637:      637:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
     7329:     8057:  146:/*EOF*/
        -:        -:  147:/*EOF*/
     7329:     8057:  148:/*EOF*/
      449:      474:  149:/*EOF*/
        -:        -:  150:/*EOF*/
     7329:     8057:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     5066:     5564:  155:/*EOF*/
        -:        -:  156:/*EOF*/
     5066:     5564:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     5066:     5564:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
     2414:     2997:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     2414:     2997:  184:/*EOF*/
      203:      226:  185:/*EOF*/
        -:        -:  186:/*EOF*/
     2414:     2997:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
     1784:     2213:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1784:     2213:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
     1784:     2213:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
     3615:     3615:  200:/*EOF*/
        -:        -:  201:/*EOF*/
     3615:     3615:  202:/*EOF*/
      161:      161:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     3615:     3615:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     2804:     2804:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     2804:     2804:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
     2804:     2804:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
     9192:     9332:  236:/*EOF*/
        -:        -:  237:/*EOF*/
     9192:     9332:  238:/*EOF*/
      413:      413:  239:/*EOF*/
        -:        -:  240:/*EOF*/
     9192:     9332:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
     5528:     5556:  245:/*EOF*/
        -:        -:  246:/*EOF*/
     5528:     5556:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
     5528:     5556:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
      120:      120:  254:/*EOF*/
        -:        -:  255:/*EOF*/
      120:      120:  256:/*EOF*/
       10:       10:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      120:      120:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      129:      129:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      129:      129:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      129:      129:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      117:      122:  272:/*EOF*/
        -:        -:  273:/*EOF*/
      117:      122:  274:/*EOF*/
       18:       18:  275:/*EOF*/
        -:        -:  276:/*EOF*/
      117:      122:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      100:      103:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      100:      103:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      100:      103:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
     2492:     3378:  308:/*EOF*/
        -:        -:  309:/*EOF*/
     2492:     3378:  310:/*EOF*/
       87:      118:  311:/*EOF*/
        -:        -:  312:/*EOF*/
     2492:     3378:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
     1754:     2390:  317:/*EOF*/
        -:        -:  318:/*EOF*/
     1754:     2390:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
     1754:     2390:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      243:      243:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      243:      243:  364:/*EOF*/
      243:      243:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      757:      757:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      757:      757:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      757:      757:  377:/*EOF*/
      757:      757:  378:/*EOF*/
      757:      757:  379:/*EOF*/
      757:      757:  380:/*EOF*/
        -:        -:  381:/*EOF*/
      757:      757:  382:/*EOF*/
      757:      757:  383:/*EOF*/

src/compiler/glsl/.libs/ir_hv_accept.cpp.gcov

        -:        -:    0:Source:glsl/ir_hv_accept.cpp
        -:        -:    0:Graph:ir_hv_accept.gcno
        -:        -:    0:Data:ir_hv_accept.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
     9732:    12832:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
     9732:    12832:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    51037:    57271:   52:/*EOF*/
    41317:    44451:   53:/*EOF*/
    40338:    43472:   54:/*EOF*/
    41317:    44451:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    41317:    44451:   57:/*EOF*/
       12:       12:   58:/*EOF*/
        -:        -:   59:/*EOF*/
     9720:    12820:   60:/*EOF*/
     8904:    12004:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     9720:    12820:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    20991:    20991:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    20991:    20991:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      762:     1286:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      762:     1286:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      762:     1286:   86:/*EOF*/
       72:      147:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      690:     1139:   89:/*EOF*/
      690:     1139:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      690:     1139:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
     1486:     2770:   98:/*EOF*/
        -:        -:   99:/*EOF*/
     1486:     2770:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      661:      661:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      661:      661:  107:/*EOF*/
      661:      661:  108:/*EOF*/
      140:      140:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      521:      521:  111:/*EOF*/
      521:      521:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      521:      521:  115:/*EOF*/
      521:      521:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      664:      664:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      664:      664:  123:/*EOF*/
      664:      664:  124:/*EOF*/
        3:        3:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      661:      661:  127:/*EOF*/
      661:      661:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     8168:     8947:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     8168:     8947:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     8168:     8947:  137:/*EOF*/
      173:      184:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    22682:    24881:  140:/*EOF*/
    14687:    16118:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    14687:    16118:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     7995:     8763:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
     2839:     3479:  238:/*EOF*/
        -:        -:  239:/*EOF*/
     2839:     3479:  240:/*EOF*/
     2839:     3479:  241:/*EOF*/
       74:       80:  242:/*EOF*/
        -:        -:  243:/*EOF*/
     2765:     3399:  244:/*EOF*/
     2765:     3399:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    31349:    32880:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    31349:    32880:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
     4272:     4272:  257:/*EOF*/
        -:        -:  258:/*EOF*/
     4272:     4272:  259:/*EOF*/
     4272:     4272:  260:/*EOF*/
      126:      126:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
     4146:     4146:  266:/*EOF*/
     4146:     4146:  267:/*EOF*/
     4146:     4146:  268:/*EOF*/
     4146:     4146:  269:/*EOF*/
        -:        -:  270:/*EOF*/
     4146:     4146:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
     4146:     4146:  274:/*EOF*/
     4146:     4146:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    14592:    14732:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    14592:    14732:  294:/*EOF*/
    14592:    14732:  295:/*EOF*/
     2967:     2967:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    11625:    11765:  298:/*EOF*/
    11625:    11765:  299:/*EOF*/
    11625:    11765:  300:/*EOF*/
    11625:    11765:  301:/*EOF*/
        1:        1:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    11624:    11764:  304:/*EOF*/
    11624:    11764:  305:/*EOF*/
        8:        8:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    11616:    11756:  308:/*EOF*/
     1057:     1057:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    11616:    11756:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
     8774:     9432:  316:/*EOF*/
        -:        -:  317:/*EOF*/
     8774:     9432:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      187:      187:  323:/*EOF*/
        -:        -:  324:/*EOF*/
      187:      187:  325:/*EOF*/
      187:      187:  326:/*EOF*/
       28:       28:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      159:      159:  329:/*EOF*/
      159:      159:  330:/*EOF*/
      159:      159:  331:/*EOF*/
      159:      159:  332:/*EOF*/
      159:      159:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      159:      159:  337:/*EOF*/
      159:      159:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      159:      159:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      128:      133:  346:/*EOF*/
        -:        -:  347:/*EOF*/
      128:      133:  348:/*EOF*/
      128:      133:  349:/*EOF*/
        1:        1:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      127:      132:  352:/*EOF*/
      127:      132:  353:/*EOF*/
      127:      132:  354:/*EOF*/
      127:      132:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
      127:      132:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
     3204:     4462:  381:/*EOF*/
        -:        -:  382:/*EOF*/
     3204:     4462:  383:/*EOF*/
     3204:     4462:  384:/*EOF*/
      451:      734:  385:/*EOF*/
        -:        -:  386:/*EOF*/
     2753:     3728:  387:/*EOF*/
     2753:     3728:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
     2753:     3728:  391:/*EOF*/
     2753:     3728:  392:/*EOF*/
     2753:     3728:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
     2753:     3728:  397:/*EOF*/
     2753:     3728:  398:/*EOF*/
     2753:     3728:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     2753:     3728:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/

src/compiler/glsl/.libs/ir_rvalue_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_rvalue_visitor.cpp
        -:        -:    0:Graph:ir_rvalue_visitor.gcno
        -:        -:    0:Data:ir_rvalue_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     3079:     3359:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
     8734:     9535:   42:/*EOF*/
     5655:     6176:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     3079:     3359:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      965:     1116:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      965:     1116:   90:/*EOF*/
      965:     1116:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1660:     1660:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
     1660:     1660:  100:/*EOF*/
     1660:     1660:  101:/*EOF*/
     1660:     1660:  102:/*EOF*/
     1660:     1660:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1660:     1660:  105:/*EOF*/
     1660:     1660:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
     2832:     2832:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     2832:     2832:  119:/*EOF*/
     2832:     2832:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     2832:     2832:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       38:       38:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      114:      114:  128:/*EOF*/
       76:       76:  129:/*EOF*/
       76:       76:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       76:       76:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       38:       38:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       35:       37:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       35:       37:  149:/*EOF*/
       35:       37:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      831:     1113:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      831:     1113:  156:/*EOF*/
      831:     1113:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     2497:     2741:  175:/*EOF*/
        -:        -:  176:/*EOF*/
     2497:     2741:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
      781:      898:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      781:      898:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1326:     1326:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     1326:     1326:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     2309:     2309:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     2309:     2309:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       26:       26:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       26:       26:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       27:       29:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       27:       29:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
      627:      839:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      627:      839:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      556:      590:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      556:      590:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      184:      218:  259:/*EOF*/
        -:        -:  260:/*EOF*/
      184:      218:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      334:      334:  265:/*EOF*/
        -:        -:  266:/*EOF*/
      334:      334:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
      449:      449:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      449:      449:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       12:       12:  283:/*EOF*/
        -:        -:  284:/*EOF*/
       12:       12:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        8:        8:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        8:        8:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      204:      274:  301:/*EOF*/
        -:        -:  302:/*EOF*/
      204:      274:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/

src/compiler/glsl/.libs/ir_validate.cpp.gcov

        -:        -:    0:Source:glsl/ir_validate.cpp
        -:        -:    0:Graph:ir_validate.gcno
        -:        -:    0:Data:ir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       16:       16:   46:/*EOF*/
       16:       16:   47:/*EOF*/
       16:       16:   48:/*EOF*/
       16:       16:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       16:       16:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       16:       16:   53:/*EOF*/
       16:       16:   54:/*EOF*/
       16:       16:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       16:       16:   57:/*EOF*/
       32:       32:   58:/*EOF*/
       16:       16:   59:/*EOF*/
       16:       16:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      633:      648:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      633:      648:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      633:      648:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      633:      648:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      633:      648:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       94:       94:  111:/*EOF*/
        -:        -:  112:/*EOF*/
      110:      110:  113:/*EOF*/
       16:       16:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       94:       94:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       94:       94:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       94:       94:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       47:       62:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       47:       62:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       47:       62:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       20:       20:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       20:       20:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       20:       20:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       20:       20:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       40:       40:  192:/*EOF*/
       20:       20:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       20:       20:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       20:       20:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       20:       20:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       20:       20:  208:/*EOF*/
       20:       20:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       20:       20:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       20:       20:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       20:       20:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       20:       20:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       20:       20:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      147:      156:  237:/*EOF*/
        -:        -:  238:/*EOF*/
      147:      156:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        2:        3:  244:/*EOF*/
        2:        3:  245:/*EOF*/
        2:        3:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        1:        1:  264:/*EOF*/
        1:        1:  265:/*EOF*/
        1:        1:  266:/*EOF*/
        1:        1:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       16:       16:  287:/*EOF*/
       16:       16:  288:/*EOF*/
       16:       16:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        6:        6:  436:/*EOF*/
        6:        6:  437:/*EOF*/
        6:        6:  438:/*EOF*/
        6:        6:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
       66:       66:  616:/*EOF*/
       66:       66:  617:/*EOF*/
        -:        -:  618:/*EOF*/
       66:       66:  619:/*EOF*/
       66:       66:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       66:       66:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       52:       60:  654:/*EOF*/
       52:       60:  655:/*EOF*/
      104:      120:  656:/*EOF*/
       52:       60:  657:/*EOF*/
       52:       60:  658:/*EOF*/
       52:       60:  659:/*EOF*/
       52:       60:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        3:        3:  732:/*EOF*/
        6:        6:  733:/*EOF*/
        3:        3:  734:/*EOF*/
        3:        3:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        1:        1:  782:/*EOF*/
        1:        1:  783:/*EOF*/
        1:        1:  784:/*EOF*/
        2:        2:  785:/*EOF*/
        1:        1:  786:/*EOF*/
        1:        1:  787:/*EOF*/
        1:        1:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
      147:      156:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       55:       63:  848:/*EOF*/
        -:        -:  849:/*EOF*/
       55:       63:  850:/*EOF*/
        -:        -:  851:/*EOF*/
      129:      145:  852:/*EOF*/
       74:       82:  853:/*EOF*/
        -:        -:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
       55:       63:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
      643:      643:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
      643:      643:  872:/*EOF*/
      300:      300:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      643:      643:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
      643:      643:  881:/*EOF*/
      132:      132:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
      643:      643:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
      643:      643:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
     1286:     1286:  923:/*EOF*/
      300:      300:  924:/*EOF*/
      931:      931:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
      643:      643:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
      249:      249:  935:/*EOF*/
        -:        -:  936:/*EOF*/
      249:      249:  937:/*EOF*/
      249:      249:  938:/*EOF*/
      249:      249:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      249:      249:  946:/*EOF*/
     1245:     1245:  947:/*EOF*/
      996:      996:  948:/*EOF*/
      327:      327:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
      249:      249:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
      249:      249:  961:/*EOF*/
        -:        -:  962:/*EOF*/
      249:      249:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        8:        8:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        8:        8:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        8:        8:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        8:        8:  976:/*EOF*/
        8:        8:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        8:        8:  987:/*EOF*/
        8:        8:  988:/*EOF*/
       16:       16:  989:/*EOF*/
       48:       48:  990:/*EOF*/
       24:       24:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
       24:       24:  995:/*EOF*/
        8:        8:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
       16:       16:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
       16:       16: 1001:/*EOF*/
       16:       16: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
       16:       16: 1006:/*EOF*/
       16:       16: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
       16:       16: 1013:/*EOF*/
       16:       16: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        8:        8: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
     1334:     1397: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
     1334:     1397: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
     1334:     1397: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
     1334:     1397: 1038:/*EOF*/
     1334:     1397: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
     2126:     2204: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
     2126:     2204: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
     2126:     2204: 1050:/*EOF*/
     2126:     2204: 1051:/*EOF*/
     1099:     1139: 1052:/*EOF*/
     2126:     2204: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
       16:       16: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
       32:       32: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
       16:       16: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
      562:      562: 1067:/*EOF*/
      546:      546: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
       16:       16: 1071:/*EOF*/

src/compiler/glsl/.libs/ir_variable_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_variable_refcount.cpp
        -:        -:    0:Graph:ir_variable_refcount.gcno
        -:        -:    0:Data:ir_variable_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       43:       43:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       43:       43:   40:/*EOF*/
       43:       43:   41:/*EOF*/
       43:       43:   42:/*EOF*/
       43:       43:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     1134:     1137:   46:/*EOF*/
        -:        -:   47:/*EOF*/
     1134:     1137:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
     2534:     2537:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      700:      700:   54:/*EOF*/
      700:      700:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1134:     1137:   58:/*EOF*/
     1134:     1137:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       86:       86:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       43:       43:   63:/*EOF*/
       43:       43:   64:/*EOF*/
       43:       43:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
     1134:     1137:   68:/*EOF*/
        -:        -:   69:/*EOF*/
     1134:     1137:   70:/*EOF*/
     1134:     1137:   71:/*EOF*/
     1134:     1137:   72:/*EOF*/
     1134:     1137:   73:/*EOF*/
     1134:     1137:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
     4940:     5010:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     4940:     5010:   80:/*EOF*/
        -:        -:   81:/*EOF*/
     4940:     5010:   82:/*EOF*/
     4940:     5010:   83:/*EOF*/
     3806:     3873:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     1134:     1137:   86:/*EOF*/
     1134:     1137:   87:/*EOF*/
     1134:     1137:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     1134:     1137:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1101:     1101:   95:/*EOF*/
        -:        -:   96:/*EOF*/
     1101:     1101:   97:/*EOF*/
     1101:     1101:   98:/*EOF*/
     1101:     1101:   99:/*EOF*/
        -:        -:  100:/*EOF*/
     1101:     1101:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
     2491:     2561:  106:/*EOF*/
        -:        -:  107:/*EOF*/
     2491:     2561:  108:/*EOF*/
     2491:     2561:  109:/*EOF*/
        -:        -:  110:/*EOF*/
     2491:     2561:  111:/*EOF*/
     2491:     2561:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     2491:     2561:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       37:       37:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       37:       37:  124:/*EOF*/
       37:       37:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     1012:     1012:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
     1012:     1012:  133:/*EOF*/
     1012:     1012:  134:/*EOF*/
     1012:     1012:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
     1012:     1012:  143:/*EOF*/
     1012:     1012:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      752:      752:  146:/*EOF*/
      752:      752:  147:/*EOF*/
      752:      752:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
     1012:     1012:  152:/*EOF*/

src/compiler/glsl/.libs/linker.cpp.gcov

        -:        -:    0:Source:glsl/linker.cpp
        -:        -:    0:Graph:linker.gcno
        -:        -:    0:Data:linker.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        8:        8:   98:/*EOF*/
        8:        8:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        8:        8:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       70:       70:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       70:       70:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       70:       70:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        3:        3:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       67:       67:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        4:        4:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       12:       12:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        8:        8:  120:/*EOF*/
        8:        8:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       16:       16:  123:/*EOF*/
        8:        8:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        4:        4:  133:/*EOF*/
        4:        4:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        4:        4:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        4:        4:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        9:        9:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        9:        9:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        1:        1:  161:/*EOF*/
        1:        1:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        5:        5:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        5:        5:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        5:        5:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        1:        1:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        1:        1:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       85:       87:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       85:       87:  197:/*EOF*/
       85:       87:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       16:       16:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       16:       16:  203:/*EOF*/
       16:       16:  204:/*EOF*/
       12:       12:  205:/*EOF*/
       16:       16:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        1:        1:  385:/*EOF*/
        1:        1:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        1:        1:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        1:        1:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        1:        1:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        3:        3:  507:/*EOF*/
        -:        -:  508:/*EOF*/
       14:       14:  509:/*EOF*/
       11:       11:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       11:       11:  512:/*EOF*/
        3:        3:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        8:        8:  520:/*EOF*/
        3:        3:  521:/*EOF*/
        3:        3:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
       13:       13:  528:/*EOF*/
        5:        5:  529:/*EOF*/
        5:        5:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        3:        3:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        3:        3:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        1:        1:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        1:        1:  556:/*EOF*/
        1:        1:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        1:        1:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        1:        1:  570:/*EOF*/
        1:        1:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        1:        1:  573:/*EOF*/
        1:        1:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        1:        1:  585:/*EOF*/
        1:        1:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        1:        1:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        1:        1:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        1:        1:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        1:        1:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        1:        1:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        2:        2:  623:/*EOF*/
        1:        1:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        1:        1:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        1:        1:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        1:        1:  678:/*EOF*/
        1:        1:  679:/*EOF*/
        1:        1:  680:/*EOF*/
        1:        1:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        2:        2:  694:/*EOF*/
        1:        1:  695:/*EOF*/
        2:        2:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        2:        2:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        2:        2:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        2:        2:  725:/*EOF*/
        2:        2:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        2:        2:  728:/*EOF*/
        2:        2:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        2:        2:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        2:        2:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        2:        2:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        2:        2:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        2:        2:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        6:        6:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      224:      224:  875:/*EOF*/
      218:      218:  876:/*EOF*/
        -:        -:  877:/*EOF*/
      218:      218:  878:/*EOF*/
        8:        8:  879:/*EOF*/
        -:        -:  880:/*EOF*/
      210:      210:  881:/*EOF*/
       43:       43:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
      167:      167:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
      167:      167:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
      167:      167:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
      167:      167:  905:/*EOF*/
      167:      167:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        9:        9:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        9:        9:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        9:        9:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        9:        9:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        9:        9:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        9:        9: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        9:        9: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        9:        9: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        9:        9: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        9:        9: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        9:        9: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        9:        9: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
       18:       18: 1101:/*EOF*/
        9:        9: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
      158:      158: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        2:        2: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        4:        4: 1121:/*EOF*/
       14:       14: 1122:/*EOF*/
       12:       12: 1123:/*EOF*/
        9:        9: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        3:        3: 1126:/*EOF*/
        3:        3: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        2:        2: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        4:        4: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        4:        4: 1140:/*EOF*/
        2:        2: 1141:/*EOF*/
        6:        6: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        4:        4: 1144:/*EOF*/
       28:       28: 1145:/*EOF*/
       24:       24: 1146:/*EOF*/
        6:        6: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        3:        3: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        3:        3: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
       28:       28: 1157:/*EOF*/
       24:       24: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
       24:       24: 1160:/*EOF*/
       24:       24: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
       24:       24: 1164:/*EOF*/
       18:       18: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        6:        6: 1169:/*EOF*/
        3:        3: 1170:/*EOF*/
        3:        3: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        3:        3: 1173:/*EOF*/
        3:        3: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        6:        6: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
       28:       28: 1204:/*EOF*/
       24:       24: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
       28:       28: 1221:/*EOF*/
       24:       24: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        4:        4: 1225:/*EOF*/
        2:        2: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        2:        2: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        4:        4: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        3:        3: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        3:        3: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
      112:      112: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
      109:      109: 1246:/*EOF*/
        4:        4: 1247:/*EOF*/
      105:      105: 1248:/*EOF*/
      105:      105: 1249:/*EOF*/
      105:      105: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        3:        3: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        3:        3: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        3:        3: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        3:        3: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
      112:      112: 1359:/*EOF*/
      109:      109: 1360:/*EOF*/
        4:        4: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
      105:      105: 1363:/*EOF*/
      105:      105: 1364:/*EOF*/
      105:      105: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        3:        3: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        3:        3: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        3:        3: 1401:/*EOF*/
        3:        3: 1402:/*EOF*/
        3:        3: 1403:/*EOF*/
        9:        9: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        3:        3: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        3:        3: 1408:/*EOF*/
        6:        6: 1409:/*EOF*/
        3:        3: 1410:/*EOF*/
        3:        3: 1411:/*EOF*/
        3:        3: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      120:      120: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
      120:      120: 1417:/*EOF*/
      120:      120: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
      120:      120: 1420:/*EOF*/
      120:      120: 1421:/*EOF*/
      120:      120: 1422:/*EOF*/
      120:      120: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
      120:      120: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
      120:      120: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
       10:       10: 1446:/*EOF*/
       10:       10: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
       10:       10: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
       10:       10: 1451:/*EOF*/
        1:        1: 1452:/*EOF*/
        1:        1: 1453:/*EOF*/
        1:        1: 1454:/*EOF*/
        1:        1: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
       10:       10: 1457:/*EOF*/
       10:       10: 1458:/*EOF*/
       10:       10: 1459:/*EOF*/
       10:       10: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
      120:      120: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        3:        3: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        3:        3: 1473:/*EOF*/
        3:        3: 1474:/*EOF*/
        3:        3: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
      120:      120: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
      120:      120: 1485:/*EOF*/
        5:        5: 1486:/*EOF*/
        5:        5: 1487:/*EOF*/
        5:        5: 1488:/*EOF*/
        5:        5: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
      120:      120: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        1:        1: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        1:        1: 1562:/*EOF*/
        1:        1: 1563:/*EOF*/
        1:        1: 1564:/*EOF*/
        1:        1: 1565:/*EOF*/
        1:        1: 1566:/*EOF*/
        1:        1: 1567:/*EOF*/
        1:        1: 1568:/*EOF*/
       11:       11: 1569:/*EOF*/
       20:       20: 1570:/*EOF*/
       10:       10: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        1:        1: 1576:/*EOF*/
        1:        1: 1577:/*EOF*/
        1:        1: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        3:        3: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
       15:       15: 1639:/*EOF*/
       12:       12: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        6:        6: 1643:/*EOF*/
        3:        3: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
       15:       15: 1646:/*EOF*/
       12:       12: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
    #####:    #####: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        3:        3: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        3:        3: 1678:/*EOF*/
        3:        3: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        3:        3: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        3:        3: 1735:/*EOF*/
        3:        3: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
    #####:    #####: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
    #####:    #####: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        3:        3: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        3:        3: 1843:/*EOF*/
        3:        3: 1844:/*EOF*/
        3:        3: 1845:/*EOF*/
        3:        3: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        5:        5: 1848:/*EOF*/
        4:        4: 1849:/*EOF*/
        2:        2: 1850:/*EOF*/
        3:        3: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
    #####:    #####: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        3:        3: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        3:        3: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        3:        3: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        3:        3: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        3:        3: 2030:/*EOF*/
        3:        3: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        3:        3: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        3:        3: 2111:/*EOF*/
        3:        3: 2112:/*EOF*/
        3:        3: 2113:/*EOF*/
        3:        3: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        6:        6: 2118:/*EOF*/
        6:        6: 2119:/*EOF*/
        3:        3: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        3:        3: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        3:        3: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        3:        3: 2131:/*EOF*/
        3:        3: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        3:        3: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
    #####:    #####: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        3:        3: 2179:/*EOF*/
        3:        3: 2180:/*EOF*/
        3:        3: 2181:/*EOF*/
        3:        3: 2182:/*EOF*/
        3:        3: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        3:        3: 2187:/*EOF*/
    #####:    #####: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        3:        3: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
    #####:    #####: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        3:        3: 2196:/*EOF*/
        3:        3: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        6:        6: 2201:/*EOF*/
        3:        3: 2202:/*EOF*/
        3:        3: 2203:/*EOF*/
        3:        3: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        3:        3: 2210:/*EOF*/
        3:        3: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        3:        3: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        3:        3: 2216:/*EOF*/
        3:        3: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        3:        3: 2219:/*EOF*/
        3:        3: 2220:/*EOF*/
        3:        3: 2221:/*EOF*/
        3:        3: 2222:/*EOF*/
        3:        3: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        3:        3: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        3:        3: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        3:        3: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        3:        3: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        3:        3: 2240:/*EOF*/
        3:        3: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        6:        6: 2243:/*EOF*/
        3:        3: 2244:/*EOF*/
        3:        3: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        3:        3: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        6:        6: 2261:/*EOF*/
        3:        3: 2262:/*EOF*/
        3:        3: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        3:        3: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        3:        3: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        3:        3: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        3:        3: 2276:/*EOF*/
        3:        3: 2277:/*EOF*/
        3:        3: 2278:/*EOF*/
        3:        3: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        3:        3: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        3:        3: 2285:/*EOF*/
        3:        3: 2286:/*EOF*/
        3:        3: 2287:/*EOF*/
        3:        3: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        3:        3: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        3:        3: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        3:        3: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        3:        3: 2310:/*EOF*/
        3:        3: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        3:        3: 2315:/*EOF*/
        6:        6: 2316:/*EOF*/
        3:        3: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        3:        3: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        3:        3: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        2:        2: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
       14:       14: 2344:/*EOF*/
       12:       12: 2345:/*EOF*/
        9:        9: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        3:        3: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
       14:       14: 2350:/*EOF*/
       11:       11: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
       13:       13: 2353:/*EOF*/
        2:        2: 2354:/*EOF*/
       10:       10: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        4:        4: 2367:/*EOF*/
        3:        3: 2368:/*EOF*/
    #####:    #####: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        1:        1: 2371:/*EOF*/
        7:        7: 2372:/*EOF*/
        6:        6: 2373:/*EOF*/
        4:        4: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
       10:       10: 2376:/*EOF*/
        8:        8: 2377:/*EOF*/
        8:        8: 2378:/*EOF*/
        2:        2: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        7:        7: 2381:/*EOF*/
        1:        1: 2382:/*EOF*/
    #####:    #####: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        1:        1: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
    #####:    #####: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        3:        3: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        2:        2: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        2:        2: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        2:        2: 2425:/*EOF*/
        2:        2: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
    #####:    #####: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
    #####:    #####: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
    #####:    #####: 2440:/*EOF*/
    #####:    #####: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
    #####:    #####: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
    #####:    #####: 2450:/*EOF*/
    #####:    #####: 2451:/*EOF*/
    #####:    #####: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
    #####:    #####: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
    #####:    #####: 2460:/*EOF*/
    #####:    #####: 2461:/*EOF*/
    #####:    #####: 2462:/*EOF*/
    #####:    #####: 2463:/*EOF*/
    #####:    #####: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
    #####:    #####: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        1:        1: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        1:        1: 2487:/*EOF*/
        1:        1: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        1:        1: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        1:        1: 2496:/*EOF*/
        1:        1: 2497:/*EOF*/
        1:        1: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        4:        4: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        4:        4: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        4:        4: 2538:/*EOF*/
        4:        4: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        2:        2: 2541:/*EOF*/
        4:        4: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        4:        4: 2544:/*EOF*/
        4:        4: 2545:/*EOF*/
        1:        1: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        3:        3: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        3:        3: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        3:        3: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        3:        3: 2594:/*EOF*/
        3:        3: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
       14:       14: 2597:/*EOF*/
       11:       11: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
       11:       11: 2600:/*EOF*/
        8:        8: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        3:        3: 2603:/*EOF*/
        2:        2: 2604:/*EOF*/
        2:        2: 2605:/*EOF*/
        2:        2: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
    #####:    #####: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        1:        1: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        1:        1: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
    #####:    #####: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
    #####:    #####: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
    #####:    #####: 2633:/*EOF*/
    #####:    #####: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
    #####:    #####: 2645:/*EOF*/
    #####:    #####: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        3:        3: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        3:        3: 2664:/*EOF*/
    #####:    #####: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        3:        3: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        3:        3: 2682:/*EOF*/
        2:        2: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
    #####:    #####: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
    #####:    #####: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
    #####:    #####: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
    #####:    #####: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
    #####:    #####: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
    #####:    #####: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
    #####:    #####: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
    #####:    #####: 2811:/*EOF*/
    #####:    #####: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
    #####:    #####: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
    #####:    #####: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
    #####:    #####: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
    #####:    #####: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        2:        2: 2860:/*EOF*/
        2:        2: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        2:        2: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        1:        1: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        1:        1: 2873:/*EOF*/
        1:        1: 2874:/*EOF*/
        1:        1: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        3:        3: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        2:        2: 2880:/*EOF*/
        2:        2: 2881:/*EOF*/
        1:        1: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        3:        3: 2894:/*EOF*/
        2:        2: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        1:        1: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        1:        1: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        1:        1: 2904:/*EOF*/
        1:        1: 2905:/*EOF*/
        1:        1: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        2:        2: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        1:        1: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        1:        1: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        1:        1: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
    #####:    #####: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        1:        1: 2929:/*EOF*/
        1:        1: 2930:/*EOF*/
        1:        1: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        1:        1: 2933:/*EOF*/
    #####:    #####: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        1:        1: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        2:        2: 2944:/*EOF*/
        2:        2: 2945:/*EOF*/
        1:        1: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
    #####:    #####: 2949:/*EOF*/
    #####:    #####: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        1:        1: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        1:        1: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        2:        2: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        1:        1: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        4:        4: 2971:/*EOF*/
        3:        3: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        3:        3: 2974:/*EOF*/
        2:        2: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        2:        2: 2977:/*EOF*/
        1:        1: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
    #####:    #####: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        6:        6: 2986:/*EOF*/
        5:        5: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        5:        5: 2989:/*EOF*/
        4:        4: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        1:        1: 2992:/*EOF*/
        1:        1: 2993:/*EOF*/
        1:        1: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
    #####:    #####: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        1:        1: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        2:        2: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        2:        2: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        2:        2: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
       10:       10: 3025:/*EOF*/
        8:        8: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        8:        8: 3028:/*EOF*/
        6:        6: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        2:        2: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
    #####:    #####: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
    #####:    #####: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
    #####:    #####: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        2:        2: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        2:        2: 3063:/*EOF*/
        2:        2: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
       14:       14: 3066:/*EOF*/
       12:       12: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
       12:       12: 3069:/*EOF*/
        9:        9: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        6:        6: 3072:/*EOF*/
        3:        3: 3073:/*EOF*/
    #####:    #####: 3074:/*EOF*/
    #####:    #####: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        6:        6: 3078:/*EOF*/
        3:        3: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
    #####:    #####: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        6:        6: 3093:/*EOF*/
        3:        3: 3094:/*EOF*/
    #####:    #####: 3095:/*EOF*/
    #####:    #####: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
    #####:    #####: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        3:        3: 3106:/*EOF*/
        3:        3: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        3:        3: 3110:/*EOF*/
        3:        3: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
    #####:    #####: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        3:        3: 3118:/*EOF*/
        3:        3: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        2:        2: 3126:/*EOF*/
    #####:    #####: 3127:/*EOF*/
    #####:    #####: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        2:        2: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        2:        2: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
    #####:    #####: 3141:/*EOF*/
    #####:    #####: 3142:/*EOF*/
    #####:    #####: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        2:        2: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
    #####:    #####: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        2:        2: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        2:        2: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        2:        2: 3161:/*EOF*/
        8:        8: 3162:/*EOF*/
        3:        3: 3163:/*EOF*/
        3:        3: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        3:        3: 3166:/*EOF*/
    #####:    #####: 3167:/*EOF*/
    #####:    #####: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
    #####:    #####: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
    #####:    #####: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
    #####:    #####: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
    #####:    #####: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        2:        2: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        2:        2: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        2:        2: 3197:/*EOF*/
        8:        8: 3198:/*EOF*/
        3:        3: 3199:/*EOF*/
        3:        3: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        3:        3: 3202:/*EOF*/
    #####:    #####: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        2:        2: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        2:        2: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        2:        2: 3214:/*EOF*/
        2:        2: 3215:/*EOF*/
        2:        2: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        2:        2: 3218:/*EOF*/
        2:        2: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
    #####:    #####: 3225:/*EOF*/
    #####:    #####: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
    #####:    #####: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
    #####:    #####: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
    #####:    #####: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
    #####:    #####: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
    #####:    #####: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
    #####:    #####: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
    #####:    #####: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
    #####:    #####: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
    #####:    #####: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
    #####:    #####: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
    #####:    #####: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
    #####:    #####: 3330:/*EOF*/
    #####:    #####: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
    #####:    #####: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
    #####:    #####: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
    #####:    #####: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
    #####:    #####: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
    #####:    #####: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
    #####:    #####: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        2:        2: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        2:        2: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        2:        2: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        2:        2: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        2:        2: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        2:        2: 3402:/*EOF*/
        2:        2: 3403:/*EOF*/
        8:        8: 3404:/*EOF*/
        3:        3: 3405:/*EOF*/
        3:        3: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
      112:      112: 3408:/*EOF*/
      109:      109: 3409:/*EOF*/
      109:      109: 3410:/*EOF*/
       47:       47: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
       62:       62: 3413:/*EOF*/
    #####:    #####: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
    #####:    #####: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
    #####:    #####: 3425:/*EOF*/
    #####:    #####: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        2:        2: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        2:        2: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
    #####:    #####: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        2:        2: 3451:/*EOF*/
        2:        2: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        2:        2: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        2:        2: 3459:/*EOF*/
        2:        2: 3460:/*EOF*/
        2:        2: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        2:        2: 3466:/*EOF*/
        2:        2: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
    #####:    #####: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
    #####:    #####: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
    #####:    #####: 3487:/*EOF*/
    #####:    #####: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
    #####:    #####: 3492:/*EOF*/
    #####:    #####: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
    #####:    #####: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
    #####:    #####: 3517:/*EOF*/
    #####:    #####: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
    #####:    #####: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        6:        6: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        6:        6: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        6:        6: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        6:        6: 3541:/*EOF*/
        6:        6: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        6:        6: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        6:        6: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        6:        6: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        6:        6: 3555:/*EOF*/
        6:        6: 3556:/*EOF*/
        6:        6: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        6:        6: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        6:        6: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        6:        6: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
       11:       11: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
       11:       11: 3575:/*EOF*/
       11:       11: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
    #####:    #####: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
    #####:    #####: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        2:        2: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        2:        2: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
       14:       14: 3609:/*EOF*/
       12:       12: 3610:/*EOF*/
       12:       12: 3611:/*EOF*/
        8:        8: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
       15:       15: 3617:/*EOF*/
       13:       13: 3618:/*EOF*/
       13:       13: 3619:/*EOF*/
       11:       11: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
       11:       11: 3622:/*EOF*/
    #####:    #####: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
       11:       11: 3630:/*EOF*/
        8:        8: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        3:        3: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        2:        2: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
    #####:    #####: 3639:/*EOF*/
        2:        2: 3640:/*EOF*/
        2:        2: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        2:        2: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        4:        4: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        4:        4: 3661:/*EOF*/
        4:        4: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        4:        4: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
        6:        6: 3671:/*EOF*/
        6:        6: 3672:/*EOF*/
        4:        4: 3673:/*EOF*/
    #####:    #####: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        6:        6: 3677:/*EOF*/
        6:        6: 3678:/*EOF*/
        4:        4: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        4:        4: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        4:        4: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
       12:       12: 3705:/*EOF*/
        8:        8: 3706:/*EOF*/
        2:        2: 3707:/*EOF*/
        3:        3: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        1:        1: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        4:        4: 3713:/*EOF*/
        4:        4: 3714:/*EOF*/
        4:        4: 3715:/*EOF*/
        4:        4: 3716:/*EOF*/
        4:        4: 3717:/*EOF*/
        4:        4: 3718:/*EOF*/
        4:        4: 3719:/*EOF*/
        4:        4: 3720:/*EOF*/
        4:        4: 3721:/*EOF*/
        4:        4: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        4:        4: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        4:        4: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        4:        4: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        4:        4: 3739:/*EOF*/
        4:        4: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
    #####:    #####: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
    #####:    #####: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        4:        4: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
    #####:    #####: 3789:/*EOF*/
    #####:    #####: 3790:/*EOF*/
    #####:    #####: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
    #####:    #####: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
    #####:    #####: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        4:        4: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        4:        4: 3815:/*EOF*/
        4:        4: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        4:        4: 3819:/*EOF*/
        4:        4: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        4:        4: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        4:        4: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
       18:       18: 3833:/*EOF*/
       14:       14: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
       14:       14: 3836:/*EOF*/
        4:        4: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
       10:       10: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        4:        4: 3844:/*EOF*/
        2:        2: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        2:        2: 3847:/*EOF*/
        2:        2: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        4:        4: 3850:/*EOF*/
        2:        2: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        2:        2: 3853:/*EOF*/
        2:        2: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        2:        2: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        4:        4: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        4:        4: 3865:/*EOF*/
    #####:    #####: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        4:        4: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        7:        7: 3875:/*EOF*/
        7:        7: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        8:        8: 3878:/*EOF*/
        4:        4: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
        4:        4: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        4:        4: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        2:        2: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        2:        2: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        2:        2: 3896:/*EOF*/
        2:        2: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
    #####:    #####: 3899:/*EOF*/
    #####:    #####: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
    #####:    #####: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
    #####:    #####: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
    #####:    #####: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        2:        2: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        2:        2: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        2:        2: 3934:/*EOF*/
        2:        2: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
    #####:    #####: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
    #####:    #####: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
    #####:    #####: 3955:/*EOF*/
    #####:    #####: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
    #####:    #####: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
    #####:    #####: 3973:/*EOF*/
    #####:    #####: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
    #####:    #####: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
    #####:    #####: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
    #####:    #####: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
    #####:    #####: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
    #####:    #####: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
    #####:    #####: 4029:/*EOF*/
    #####:    #####: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
    #####:    #####: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
    #####:    #####: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
    #####:    #####: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
    #####:    #####: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
    #####:    #####: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
    #####:    #####: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
    #####:    #####: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
    #####:    #####: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
    #####:    #####: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
    #####:    #####: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
    #####:    #####: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
    #####:    #####: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        2:        2: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        2:        2: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        2:        2: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
       14:       14: 4183:/*EOF*/
       12:       12: 4184:/*EOF*/
        9:        9: 4185:/*EOF*/
        3:        3: 4186:/*EOF*/
        2:        2: 4187:/*EOF*/
        3:        3: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        2:        2: 4192:/*EOF*/
    #####:    #####: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        2:        2: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        2:        2: 4200:/*EOF*/
        1:        1: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
    #####:    #####: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        1:        1: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        2:        2: 4210:/*EOF*/
    #####:    #####: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        2:        2: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        2:        2: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
    #####:    #####: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        2:        2: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        1:        1: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        1:        1: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
    #####:    #####: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
    #####:    #####: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        5:        5: 4237:/*EOF*/
        4:        4: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        4:        4: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        2:        2: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        2:        2: 4255:/*EOF*/
        2:        2: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        2:        2: 4260:/*EOF*/
        2:        2: 4261:/*EOF*/
        2:        2: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
    #####:    #####: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        2:        2: 4268:/*EOF*/
        2:        2: 4269:/*EOF*/
        2:        2: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        2:        2: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        4:        4: 4278:/*EOF*/
        2:        2: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        2:        2: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
    #####:    #####: 4286:/*EOF*/
    #####:    #####: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        2:        2: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        2:        2: 4298:/*EOF*/
    #####:    #####: 4299:/*EOF*/
    #####:    #####: 4300:/*EOF*/
    #####:    #####: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        4:        4: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        2:        2: 4306:/*EOF*/
        2:        2: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
    #####:    #####: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
    #####:    #####: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
    #####:    #####: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
    #####:    #####: 4317:/*EOF*/
    #####:    #####: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        2:        2: 4322:/*EOF*/
        8:        8: 4323:/*EOF*/
        3:        3: 4324:/*EOF*/
        3:        3: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        3:        3: 4327:/*EOF*/
        3:        3: 4328:/*EOF*/
    #####:    #####: 4329:/*EOF*/
    #####:    #####: 4330:/*EOF*/
    #####:    #####: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        2:        2: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        1:        1: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        1:        1: 4347:/*EOF*/
        7:        7: 4348:/*EOF*/
        6:        6: 4349:/*EOF*/
        5:        5: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        1:        1: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        1:        1: 4356:/*EOF*/
        1:        1: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
    #####:    #####: 4363:/*EOF*/
    #####:    #####: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        1:        1: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        2:        2: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        2:        2: 4377:/*EOF*/
        8:        8: 4378:/*EOF*/
        3:        3: 4379:/*EOF*/
        3:        3: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
        3:        3: 4382:/*EOF*/
      112:      112: 4383:/*EOF*/
      109:      109: 4384:/*EOF*/
      109:      109: 4385:/*EOF*/
      105:      105: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        4:        4: 4388:/*EOF*/
    #####:    #####: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        4:        4: 4391:/*EOF*/
        4:        4: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
    #####:    #####: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
    #####:    #####: 4403:/*EOF*/
    #####:    #####: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
    #####:    #####: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
    #####:    #####: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
    #####:    #####: 4420:/*EOF*/
    #####:    #####: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
    #####:    #####: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
    #####:    #####: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
    #####:    #####: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        1:        1: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        1:        1: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
       66:       66: 4442:/*EOF*/
       65:       65: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
       65:       65: 4445:/*EOF*/
       58:       58: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        7:        7: 4449:/*EOF*/
        7:        7: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
    #####:    #####: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        1:        1: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        1:        1: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        1:        1: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        1:        1: 4467:/*EOF*/
        1:        1: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        6:        6: 4471:/*EOF*/
        5:        5: 4472:/*EOF*/
        4:        4: 4473:/*EOF*/
        1:        1: 4474:/*EOF*/
        1:        1: 4475:/*EOF*/
        1:        1: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        1:        1: 4479:/*EOF*/
    #####:    #####: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        7:        7: 4482:/*EOF*/
        6:        6: 4483:/*EOF*/
        6:        6: 4484:/*EOF*/
        5:        5: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        1:        1: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        1:        1: 4491:/*EOF*/
        1:        1: 4492:/*EOF*/
        1:        1: 4493:/*EOF*/
    #####:    #####: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
    #####:    #####: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        2:        2: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        2:        2: 4512:/*EOF*/
        2:        2: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        2:        2: 4515:/*EOF*/
        2:        2: 4516:/*EOF*/
        2:        2: 4517:/*EOF*/
        2:        2: 4518:/*EOF*/
        2:        2: 4519:/*EOF*/
        2:        2: 4520:/*EOF*/
        2:        2: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        2:        2: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        2:        2: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
       12:       12: 4531:/*EOF*/
       10:       10: 4532:/*EOF*/
        3:        3: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        2:        2: 4537:/*EOF*/
        6:        6: 4538:/*EOF*/
        4:        4: 4539:/*EOF*/
        3:        3: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        1:        1: 4542:/*EOF*/
        1:        1: 4543:/*EOF*/
        1:        1: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        2:        2: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
    #####:    #####: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        2:        2: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
    #####:    #####: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        2:        2: 4557:/*EOF*/
        9:        9: 4558:/*EOF*/
        8:        8: 4559:/*EOF*/
        7:        7: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        1:        1: 4562:/*EOF*/
        1:        1: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        2:        2: 4566:/*EOF*/
    #####:    #####: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        2:        2: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        2:        2: 4571:/*EOF*/
    #####:    #####: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
       14:       14: 4574:/*EOF*/
       12:       12: 4575:/*EOF*/
        9:        9: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        3:        3: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        3:        3: 4581:/*EOF*/
        3:        3: 4582:/*EOF*/
        6:        6: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        3:        3: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
    #####:    #####: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        3:        3: 4589:/*EOF*/
        3:        3: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        2:        2: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        3:        3: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        3:        3: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
    #####:    #####: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        7:        7: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        7:        7: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        3:        3: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        2:        2: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        2:        2: 4617:/*EOF*/
        2:        2: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        2:        2: 4633:/*EOF*/
    #####:    #####: 4634:/*EOF*/
    #####:    #####: 4635:/*EOF*/
    #####:    #####: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        2:        2: 4641:/*EOF*/
        2:        2: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
    #####:    #####: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
    #####:    #####: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        2:        2: 4649:/*EOF*/
    #####:    #####: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        2:        2: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        2:        2: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
       14:       14: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
       12:       12: 4664:/*EOF*/
       12:       12: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        2:        2: 4668:/*EOF*/
        2:        2: 4669:/*EOF*/
        5:        5: 4670:/*EOF*/
        3:        3: 4671:/*EOF*/
        3:        3: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        3:        3: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
    #####:    #####: 4676:/*EOF*/
    #####:    #####: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        3:        3: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        3:        3: 4684:/*EOF*/
        3:        3: 4685:/*EOF*/
        3:        3: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        2:        2: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
    #####:    #####: 4694:/*EOF*/
    #####:    #####: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        2:        2: 4698:/*EOF*/
        2:        2: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        2:        2: 4703:/*EOF*/
        1:        1: 4704:/*EOF*/
    #####:    #####: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
    #####:    #####: 4707:/*EOF*/
    #####:    #####: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        1:        1: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
    #####:    #####: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        1:        1: 4716:/*EOF*/
    #####:    #####: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
    #####:    #####: 4719:/*EOF*/
    #####:    #####: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        1:        1: 4747:/*EOF*/
    #####:    #####: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
    #####:    #####: 4750:/*EOF*/
    #####:    #####: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        1:        1: 4754:/*EOF*/
    #####:    #####: 4755:/*EOF*/
    #####:    #####: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
    #####:    #####: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        2:        2: 4766:/*EOF*/
    #####:    #####: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
    #####:    #####: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
       14:       14: 4774:/*EOF*/
       12:       12: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        3:        3: 4777:/*EOF*/
        3:        3: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        3:        3: 4780:/*EOF*/
    #####:    #####: 4781:/*EOF*/
    #####:    #####: 4782:/*EOF*/
    #####:    #####: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        3:        3: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        1:        1: 4788:/*EOF*/
        1:        1: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
    #####:    #####: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
    #####:    #####: 4794:/*EOF*/
    #####:    #####: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
    #####:    #####: 4797:/*EOF*/
    #####:    #####: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        2:        2: 4800:/*EOF*/
        2:        2: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        3:        3: 4803:/*EOF*/
    #####:    #####: 4804:/*EOF*/
    #####:    #####: 4805:/*EOF*/
    #####:    #####: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        3:        3: 4809:/*EOF*/
        3:        3: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        2:        2: 4818:/*EOF*/
        2:        2: 4819:/*EOF*/
    #####:    #####: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        2:        2: 4824:/*EOF*/
        2:        2: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
       14:       14: 4828:/*EOF*/
       12:       12: 4829:/*EOF*/
        9:        9: 4830:/*EOF*/
        3:        3: 4831:/*EOF*/
        2:        2: 4832:/*EOF*/
        3:        3: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        2:        2: 4836:/*EOF*/
        2:        2: 4837:/*EOF*/
        2:        2: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        2:        2: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        2:        2: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        2:        2: 4849:/*EOF*/
        6:        6: 4850:/*EOF*/
        4:        4: 4851:/*EOF*/
        3:        3: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        1:        1: 4854:/*EOF*/
        2:        2: 4855:/*EOF*/
        1:        1: 4856:/*EOF*/
    #####:    #####: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        1:        1: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        1:        1: 4861:/*EOF*/
        1:        1: 4862:/*EOF*/
    #####:    #####: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        1:        1: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        2:        2: 4869:/*EOF*/
        2:        2: 4870:/*EOF*/
    #####:    #####: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
       14:       14: 4873:/*EOF*/
       12:       12: 4874:/*EOF*/
        3:        3: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        2:        2: 4884:/*EOF*/
        1:        1: 4885:/*EOF*/
        1:        1: 4886:/*EOF*/
        1:        1: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        2:        2: 4891:/*EOF*/
        1:        1: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        2:        2: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        2:        2: 4896:/*EOF*/
    #####:    #####: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        2:        2: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
       14:       14: 4908:/*EOF*/
       12:       12: 4909:/*EOF*/
        9:        9: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        3:        3: 4912:/*EOF*/
        3:        3: 4913:/*EOF*/
    #####:    #####: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        3:        3: 4916:/*EOF*/
    #####:    #####: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        3:        3: 4920:/*EOF*/
    #####:    #####: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        3:        3: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        3:        3: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        3:        3: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        3:        3: 4940:/*EOF*/
        1:        1: 4941:/*EOF*/
        1:        1: 4942:/*EOF*/
    #####:    #####: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        2:        2: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        2:        2: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        2:        2: 4951:/*EOF*/
    #####:    #####: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        2:        2: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
    #####:    #####: 4984:/*EOF*/
    #####:    #####: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
       14:       14: 4990:/*EOF*/
       12:       12: 4991:/*EOF*/
       12:       12: 4992:/*EOF*/
        9:        9: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        3:        3: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        3:        3: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        3:        3: 5008:/*EOF*/
        3:        3: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        2:        2: 5012:/*EOF*/

        -:        -:    0:Source:glsl/link_functions.cpp
        -:        -:    0:Graph:link_functions.gcno
        -:        -:    0:Data:link_functions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        3:        3:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        6:        6:   55:/*EOF*/
        3:        3:   56:/*EOF*/
        3:        3:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      120:      120:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      120:      120:   61:/*EOF*/
      120:      120:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        2:        2:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        2:        2:   73:/*EOF*/
        2:        2:   74:/*EOF*/
        2:        2:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        2:        2:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        2:        2:   85:/*EOF*/
        2:        2:   86:/*EOF*/
        2:        2:   87:/*EOF*/
        2:        2:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        2:        2:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        2:        2:  197:/*EOF*/
        2:        2:  198:/*EOF*/
        2:        2:  199:/*EOF*/
       10:       10:  200:/*EOF*/
        4:        4:  201:/*EOF*/
        4:        4:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        4:        4:  204:/*EOF*/
        4:        4:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        4:        4:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        2:        2:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
       85:       87:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       85:       87:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       85:       87:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        2:        2:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        2:        2:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        2:        2:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        2:        2:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        2:        2:  325:/*EOF*/
        2:        2:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        3:        3:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        6:        6:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        3:        3:  339:/*EOF*/
        6:        6:  340:/*EOF*/

        -:        -:    0:Source:glsl/link_uniform_block_active_visitor.cpp
        -:        -:    0:Graph:link_uniform_block_active_visitor.gcno
        -:        -:    0:Data:link_uniform_block_active_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    #####:    #####:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      120:      120:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      120:      120:  158:/*EOF*/
      120:      120:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       16:       16:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       16:       16:  216:/*EOF*/
       16:       16:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       16:       16:  221:/*EOF*/
       16:       16:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       16:       16:  232:/*EOF*/
       16:       16:  233:/*EOF*/
       16:       16:  234:/*EOF*/
       16:       16:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       85:       87:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       85:       87:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       85:       87:  270:/*EOF*/
       85:       87:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/

src/compiler/glsl/.libs/lower_const_arrays_to_uniforms.cpp.gcov

        -:        -:    0:Source:glsl/lower_const_arrays_to_uniforms.cpp
        -:        -:    0:Graph:lower_const_arrays_to_uniforms.gcno
        -:        -:    0:Data:lower_const_arrays_to_uniforms.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        3:        3:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        3:        3:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        3:        3:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      185:      195:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      185:      195:   81:/*EOF*/
       42:       42:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      143:      153:   84:/*EOF*/
      143:      153:   85:/*EOF*/
      143:      153:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        3:        3:  122:/*EOF*/
        3:        3:  123:/*EOF*/

src/compiler/glsl/.libs/lower_discard_flow.cpp.gcov

        -:        -:    0:Source:glsl/lower_discard_flow.cpp
        -:        -:    0:Graph:lower_discard_flow.gcno
        -:        -:    0:Data:lower_discard_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        1:        1:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        1:        1:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        1:        1:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        5:        8:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        5:        8:   80:/*EOF*/
        5:        8:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        2:        3:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        2:        3:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        2:        3:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        2:        2:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        2:        2:  117:/*EOF*/
        1:        1:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        1:        1:  120:/*EOF*/
        1:        1:  121:/*EOF*/
        1:        1:  122:/*EOF*/
        1:        1:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        1:        1:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        2:        3:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        2:        3:  131:/*EOF*/
        2:        3:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        2:        3:  134:/*EOF*/
        2:        3:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        2:        3:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        1:        1:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        1:        1:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        1:        1:  153:/*EOF*/
        1:        1:  154:/*EOF*/

src/compiler/glsl/.libs/lower_instructions.cpp.gcov

        -:        -:    0:Source:glsl/lower_instructions.cpp
        -:        -:    0:Graph:lower_instructions.gcno
        -:        -:    0:Data:lower_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       21:       21:  133:/*EOF*/
       21:       21:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       21:       21:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       21:       21:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       21:       21:  188:/*EOF*/
       21:       21:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        1:        1:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        1:        1:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        1:        1:  209:/*EOF*/
        2:        2:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        1:        1:  213:/*EOF*/
        1:        1:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        1:        1:  216:/*EOF*/
        1:        1:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
        -:        -:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
    #####:    #####: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
      285:      302: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
      285:      302: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        7:        7: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
       14:       14: 1613:/*EOF*/
        6:        6: 1614:/*EOF*/
        1:        1: 1615:/*EOF*/
        7:        7: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
       46:       46: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
       46:       46: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
       10:       10: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
       10:       10: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
      222:      239: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       63:       63: 1740:/*EOF*/

src/compiler/glsl/.libs/lower_jumps.cpp.gcov

        -:        -:    0:Source:glsl/lower_jumps.cpp
        -:        -:    0:Graph:lower_jumps.gcno
        -:        -:    0:Data:lower_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      486:      638:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      486:      638:  156:/*EOF*/
      486:      638:  157:/*EOF*/
      486:      638:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       67:       83:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       67:       83:  177:/*EOF*/
       67:       83:  178:/*EOF*/
       67:       83:  179:/*EOF*/
       67:       83:  180:/*EOF*/
       67:       83:  181:/*EOF*/
       67:       83:  182:/*EOF*/
       67:       83:  183:/*EOF*/
       67:       83:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        2:        2:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        2:        2:  189:/*EOF*/
        1:        1:  190:/*EOF*/
        1:        1:  191:/*EOF*/
        1:        1:  192:/*EOF*/
        1:        1:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        2:        2:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       41:       41:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       41:       41:  221:/*EOF*/
       41:       41:  222:/*EOF*/
       41:       41:  223:/*EOF*/
       41:       41:  224:/*EOF*/
       41:       41:  225:/*EOF*/
       41:       41:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        3:        3:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        3:        3:  230:/*EOF*/
        1:        1:  231:/*EOF*/
        1:        1:  232:/*EOF*/
        1:        1:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        3:        3:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        3:        3:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        3:        3:  240:/*EOF*/
        1:        1:  241:/*EOF*/
        1:        1:  242:/*EOF*/
        1:        1:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        3:        3:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       18:       18:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       18:       18:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
       18:       18:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       18:       18:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       51:       85:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       51:       85:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       51:       85:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        2:        2:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        3:        3:  306:/*EOF*/
        1:        1:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        1:        1:  309:/*EOF*/
        1:        1:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        1:        1:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        3:        3:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        3:        3:  320:/*EOF*/
        3:        3:  321:/*EOF*/
        3:        3:  322:/*EOF*/
        3:        3:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        3:        3:  325:/*EOF*/
        9:        9:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        3:        3:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        3:        3:  330:/*EOF*/
        9:        9:  331:/*EOF*/
        3:        3:  332:/*EOF*/
        3:        3:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        4:        8:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        4:        8:  344:/*EOF*/
        4:        8:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       44:       78:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       44:       78:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       44:       78:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       44:       78:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        6:        6:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        6:        6:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        6:        6:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        6:        6:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
      417:      573:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      417:      573:  453:/*EOF*/
      155:      189:  454:/*EOF*/
      262:      384:  455:/*EOF*/
      134:      236:  456:/*EOF*/
      134:      236:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
      128:      148:  460:/*EOF*/
       11:       11:  461:/*EOF*/
        -:        -:  462:/*EOF*/
      117:      137:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
      204:      272:  466:/*EOF*/
        -:        -:  467:/*EOF*/
      204:      272:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      204:      272:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
      155:      189:  473:/*EOF*/
      155:      189:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       45:       79:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       48:       98:  481:/*EOF*/
       45:       79:  482:/*EOF*/
        3:       19:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       42:       60:  485:/*EOF*/
       45:       79:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        4:        4:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        4:        4:  492:/*EOF*/
        4:        4:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      204:      272:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      270:      354:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
      270:      354:  509:/*EOF*/
      270:      354:  510:/*EOF*/
     1126:     1294:  511:/*EOF*/
      856:      940:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      270:      354:  514:/*EOF*/
      270:      354:  515:/*EOF*/
      270:      354:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       99:      133:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       99:      133:  521:/*EOF*/
        4:       20:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       99:      133:  524:/*EOF*/
       99:      133:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       99:      133:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
       99:      133:  535:/*EOF*/
       99:      133:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      297:      399:  543:/*EOF*/
      198:      266:  544:/*EOF*/
      198:      266:  545:/*EOF*/
      198:      266:  546:/*EOF*/
       47:       81:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        3:        3:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      306:      408:  560:/*EOF*/
      204:      272:  561:/*EOF*/
       49:       83:  562:/*EOF*/
       49:       83:  563:/*EOF*/
        -:        -:  564:/*EOF*/
      155:      189:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
      102:      136:  574:/*EOF*/
       55:       55:  575:/*EOF*/
       55:       55:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
       55:       55:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
       55:       55:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       55:       55:  584:/*EOF*/
        -:        -:  585:/*EOF*/
       55:       55:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
       99:      133:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
      306:      408:  612:/*EOF*/
      204:      272:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
      102:      136:  616:/*EOF*/
        1:        1:  617:/*EOF*/
      101:      135:  618:/*EOF*/
        1:        1:  619:/*EOF*/
      100:      134:  620:/*EOF*/
        1:        1:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       99:      133:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        3:        3:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        3:        3:  635:/*EOF*/
        3:        3:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        1:        1:  641:/*EOF*/
        1:        1:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        1:        1:  647:/*EOF*/
        1:        1:  648:/*EOF*/
        1:        1:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        2:        2:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        1:        1:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        2:        2:  683:/*EOF*/
        2:        2:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        2:        2:  689:/*EOF*/
        2:        2:  690:/*EOF*/
        2:        2:  691:/*EOF*/
        2:        2:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
       99:      133:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
       99:      133:  708:/*EOF*/
       99:      133:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
       99:      133:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       99:      133:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
       99:      133:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
       99:      133:  735:/*EOF*/
       99:      133:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
       99:      133:  745:/*EOF*/
        1:        1:  746:/*EOF*/
       98:      132:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
       99:      133:  831:/*EOF*/
       99:      133:  832:/*EOF*/
       99:      133:  833:/*EOF*/
        -:        -:  834:/*EOF*/
       26:       42:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       26:       42:  854:/*EOF*/
       26:       42:  855:/*EOF*/
       26:       42:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
       26:       42:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
       26:       42:  869:/*EOF*/
       26:       42:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
       26:       42:  877:/*EOF*/
        4:        8:  878:/*EOF*/
        -:        -:  879:/*EOF*/
       26:       42:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       26:       42:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
       26:       42:  918:/*EOF*/
        1:        2:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        1:        2:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        1:        2:  927:/*EOF*/
        1:        2:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:        1:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        1:        1:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        1:        1:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        1:        1:  949:/*EOF*/
        1:        1:  950:/*EOF*/
        1:        1:  951:/*EOF*/
        2:        2:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        1:        2:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
       26:       42:  959:/*EOF*/
       26:       42:  960:/*EOF*/
       26:       42:  961:/*EOF*/
        -:        -:  962:/*EOF*/
       23:       23:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
       23:       23:  966:/*EOF*/
       23:       23:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
       23:       23:  970:/*EOF*/
       19:       19:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        4:        4:  973:/*EOF*/
        -:        -:  974:/*EOF*/
       23:       23:  975:/*EOF*/
       23:       23:  976:/*EOF*/
       23:       23:  977:/*EOF*/
       23:       23:  978:/*EOF*/
        -:        -:  979:/*EOF*/
       23:       23:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
       23:       23:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
       42:       42:  995:/*EOF*/
       19:       19:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
       23:       23: 1002:/*EOF*/
        1:        1: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
       23:       23: 1005:/*EOF*/
       23:       23: 1006:/*EOF*/
       23:       23: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
       23:       23: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
       23:       23: 1011:/*EOF*/
       23:       23: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       18:       18: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       36:       36: 1020:/*EOF*/
       18:       18: 1021:/*EOF*/
       18:       18: 1022:/*EOF*/
       18:       18: 1023:/*EOF*/
       18:       18: 1024:/*EOF*/
       18:       18: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
       18:       18: 1027:/*EOF*/
        1:        1: 1028:/*EOF*/
       19:       19: 1029:/*EOF*/
       19:       19: 1030:/*EOF*/
       19:       19: 1031:/*EOF*/
       19:       19: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       36:       36: 1034:/*EOF*/

src/compiler/glsl/.libs/lower_mat_op_to_vec.cpp.gcov

        -:        -:    0:Source:glsl/lower_mat_op_to_vec.cpp
        -:        -:    0:Graph:lower_mat_op_to_vec.gcno
        -:        -:    0:Data:lower_mat_op_to_vec.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        3:        3:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      144:      154:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      144:      154:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      144:      154:   76:/*EOF*/
      114:      122:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       86:       92:   79:/*EOF*/
       56:       60:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       30:       32:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        3:        3:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       13:       13:  295:/*EOF*/
        -:        -:  296:/*EOF*/
       39:       39:  297:/*EOF*/
       26:       26:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       13:       13:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       42:       42:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       42:       42:  311:/*EOF*/
       42:       42:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       42:       42:  315:/*EOF*/
       29:       29:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       13:       13:  318:/*EOF*/
       13:       13:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/

src/compiler/glsl/.libs/lower_named_interface_blocks.cpp.gcov

        -:        -:    0:Source:glsl/lower_named_interface_blocks.cpp
        -:        -:    0:Graph:lower_named_interface_blocks.gcno
        -:        -:    0:Data:lower_named_interface_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        3:        3:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        3:        3:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        3:        3:  126:/*EOF*/
        3:        3:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      112:      112:  135:/*EOF*/
      109:      109:  136:/*EOF*/
      109:      109:  137:/*EOF*/
      109:      109:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        3:        3:  211:/*EOF*/
        3:        3:  212:/*EOF*/
        3:        3:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       32:       32:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       32:       32:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       32:       32:  221:/*EOF*/
       32:       32:  222:/*EOF*/
        1:        1:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       32:       32:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       32:       32:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      147:      152:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      147:      152:  244:/*EOF*/
       32:       32:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      115:      120:  247:/*EOF*/
      115:      120:  248:/*EOF*/
      115:      120:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        3:        3:  295:/*EOF*/
        3:        3:  296:/*EOF*/
        3:        3:  297:/*EOF*/

src/compiler/glsl/.libs/lower_noise.cpp.gcov

        -:        -:    0:Source:glsl/lower_noise.cpp
        -:        -:    0:Graph:lower_noise.gcno
        -:        -:    0:Data:lower_noise.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        3:        3:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      285:      295:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      285:      295:   43:/*EOF*/
       61:       61:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      224:      234:   46:/*EOF*/
      224:      234:   47:/*EOF*/
      190:      198:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       34:       36:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        3:        3:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        3:        3:   70:/*EOF*/

src/compiler/glsl/.libs/lower_offset_array.cpp.gcov

        -:        -:    0:Source:glsl/lower_offset_array.cpp
        -:        -:    0:Graph:lower_offset_array.gcno
        -:        -:    0:Data:lower_offset_array.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      285:      295:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      285:      295:   57:/*EOF*/
      285:      295:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        3:        3:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/

src/compiler/glsl/.libs/lower_packing_builtins.cpp.gcov

        -:        -:    0:Source:glsl/lower_packing_builtins.cpp
        -:        -:    0:Graph:lower_packing_builtins.gcno
        -:        -:    0:Data:lower_packing_builtins.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        3:        3:   49:/*EOF*/
        6:        6:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      186:      196:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      186:      196:   58:/*EOF*/
       42:       42:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      144:      154:   61:/*EOF*/
      144:      154:   62:/*EOF*/
      114:      122:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       30:       32:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       30:       32:   68:/*EOF*/
       30:       32:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       30:       32:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       30:       32:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       30:       32:  169:/*EOF*/
       30:       32:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       30:       32:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
        -:        -:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        3:        3: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        6:        6: 1308:/*EOF*/
        3:        3: 1309:/*EOF*/
        6:        6: 1310:/*EOF*/

src/compiler/glsl/.libs/lower_ubo_reference.cpp.gcov

        -:        -:    0:Source:glsl/lower_ubo_reference.cpp
        -:        -:    0:Graph:lower_ubo_reference.gcno
        -:        -:    0:Data:lower_ubo_reference.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      185:      195:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      185:      195:  330:/*EOF*/
      227:      237:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      143:      153:  333:/*EOF*/
      143:      153:  334:/*EOF*/
       65:       71:  335:/*EOF*/
        -:        -:  336:/*EOF*/
       78:       82:  337:/*EOF*/
       78:       82:  338:/*EOF*/
       78:       82:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       26:       28:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       26:       28:  591:/*EOF*/
       26:       28:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
       18:       18:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       18:       18:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       18:       18:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
       26:       28:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       26:       28:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
       73:       79:  629:/*EOF*/
       47:       51:  630:/*EOF*/
       42:       46:  631:/*EOF*/
        5:        5:  632:/*EOF*/
        5:        5:  633:/*EOF*/
        5:        5:  634:/*EOF*/
        5:        5:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       42:       42:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       42:       42:  645:/*EOF*/
       29:       29:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       13:       13:  648:/*EOF*/
       13:       13:  649:/*EOF*/
       13:       13:  650:/*EOF*/
       13:       13:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
       42:       42:  775:/*EOF*/
        -:        -:  776:/*EOF*/
       42:       42:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
       42:       42:  780:/*EOF*/
       42:       42:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       42:       42:  784:/*EOF*/
       42:       42:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
       42:       42:  788:/*EOF*/
       42:       42:  789:/*EOF*/
       42:       42:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
        -:        -:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       42:       42:  817:/*EOF*/
        -:        -:  818:/*EOF*/
       42:       42:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       42:       42:  825:/*EOF*/
       42:       42:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
       42:       42:  867:/*EOF*/
        -:        -:  868:/*EOF*/
       42:       42:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
       42:       42:  873:/*EOF*/
       42:       42:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
       42:       42:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
       42:       42:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
       42:       42:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       42:       42:  930:/*EOF*/
       42:       42:  931:/*EOF*/
       42:       42:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        3:        3: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        3:        3: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        3:        3: 1106:/*EOF*/
        3:        3: 1107:/*EOF*/
        3:        3: 1108:/*EOF*/
        3:        3: 1109:/*EOF*/

src/compiler/glsl/.libs/lower_vec_index_to_cond_assign.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_cond_assign.cpp
        -:        -:    0:Graph:lower_vec_index_to_cond_assign.gcno
        -:        -:    0:Data:lower_vec_index_to_cond_assign.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        3:        3:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        3:        3:   91:/*EOF*/
        3:        3:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        3:        3:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        3:        3:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        3:        3:  103:/*EOF*/
        3:        3:  104:/*EOF*/
        3:        3:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        3:        3:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        3:        3:  118:/*EOF*/
        3:        3:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       15:       15:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       12:       12:  125:/*EOF*/
       12:       12:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       12:       12:  132:/*EOF*/
       12:       12:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       12:       12:  135:/*EOF*/
       12:       12:  136:/*EOF*/
       12:       12:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      109:      119:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      109:      119:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      109:      119:  154:/*EOF*/
      106:      116:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       28:       30:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       79:       85:  168:/*EOF*/
       51:       55:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       28:       30:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        6:        8:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        6:        8:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        6:        8:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       42:       42:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       42:       42:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       42:       42:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       42:       42:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       10:       14:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       10:       14:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       10:       14:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        3:        3:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        3:        3:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        3:        3:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        3:        3:  238:/*EOF*/

src/compiler/glsl/.libs/lower_vec_index_to_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_swizzle.cpp
        -:        -:    0:Graph:lower_vec_index_to_swizzle.gcno
        -:        -:    0:Data:lower_vec_index_to_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       21:       21:   42:/*EOF*/
       21:       21:   43:/*EOF*/
       21:       21:   44:/*EOF*/
       21:       21:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
     1994:     2081:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     1994:     2081:   59:/*EOF*/
      423:      423:   60:/*EOF*/
        -:        -:   61:/*EOF*/
     1571:     1658:   62:/*EOF*/
     1571:     1658:   63:/*EOF*/
     1568:     1655:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        3:        3:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       21:       21:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       21:       21:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       21:       21:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       21:       21:  100:/*EOF*/

src/compiler/glsl/.libs/lower_vector.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector.cpp
        -:        -:    0:Graph:lower_vector.gcno
        -:        -:    0:Data:lower_vector.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        3:        3:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      285:      295:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      285:      295:  122:/*EOF*/
      346:      356:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      224:      234:  125:/*EOF*/
      224:      234:  126:/*EOF*/
      224:      234:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        3:        3:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        3:        3:  224:/*EOF*/
        3:        3:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        3:        3:  227:/*EOF*/

src/compiler/glsl/.libs/lower_vector_derefs.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_derefs.cpp
        -:        -:    0:Graph:lower_vector_derefs.gcno
        -:        -:    0:Data:lower_vector_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        3:        3:   34:/*EOF*/
        3:        3:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        3:        3:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        3:        3:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       42:       42:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       42:       42:   54:/*EOF*/
       41:       41:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        1:        1:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        1:        1:   64:/*EOF*/
        1:        1:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        1:        1:   71:/*EOF*/
        1:        1:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        1:        1:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      186:      196:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      186:      196:   83:/*EOF*/
      168:      178:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       18:       18:   86:/*EOF*/
       18:       18:   87:/*EOF*/
       15:       15:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        6:        6:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        6:        6:  103:/*EOF*/

src/compiler/glsl/.libs/lower_vector_insert.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_insert.cpp
        -:        -:    0:Graph:lower_vector_insert.gcno
        -:        -:    0:Data:lower_vector_insert.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       21:       21:   34:/*EOF*/
       21:       21:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       21:       21:   37:/*EOF*/
       21:       21:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       21:       21:   40:/*EOF*/
       42:       42:   41:/*EOF*/
       21:       21:   42:/*EOF*/
       21:       21:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     2064:     2151:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     2064:     2151:   58:/*EOF*/
     1772:     1842:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      292:      309:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      292:      309:   63:/*EOF*/
      291:      308:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        1:        1:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        1:        1:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        1:        1:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        1:        1:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        1:        1:  108:/*EOF*/
        1:        1:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        1:        1:  111:/*EOF*/
        1:        1:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        5:        5:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        4:        4:  116:/*EOF*/
        4:        4:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        4:        4:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        8:        8:  122:/*EOF*/
       12:       12:  123:/*EOF*/
        4:        4:  124:/*EOF*/
        4:        4:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        8:        8:  127:/*EOF*/
       12:       12:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        1:        1:  131:/*EOF*/
        1:        1:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        1:        1:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       21:       21:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       42:       42:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       21:       21:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       42:       42:  145:/*EOF*/

src/compiler/glsl/.libs/nir_builder.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder.h
        -:        -:    0:Graph:glsl_to_nir.gcno
        -:        -:    0:Data:glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      207:      221:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      207:      221:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      207:      221:   68:/*EOF*/
      207:      221:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       29:       35:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       29:       35:   81:/*EOF*/
       29:       35:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       26:       30:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       26:       30:   98:/*EOF*/
       26:       30:   99:/*EOF*/
       26:       30:  100:/*EOF*/
       26:       30:  101:/*EOF*/
       26:       30:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       14:       18:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       14:       18:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       14:       18:  111:/*EOF*/
       14:       18:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       14:       18:  114:/*EOF*/
       14:       18:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       26:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       26:       30:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       26:       30:  124:/*EOF*/
       26:       30:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       26:       30:  127:/*EOF*/
       26:       30:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        3:        5:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        3:        5:  161:/*EOF*/
        3:        5:  162:/*EOF*/
        3:        5:  163:/*EOF*/
        3:        5:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        3:        5:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        3:        5:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        3:        5:  173:/*EOF*/
        3:        5:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        5:  176:/*EOF*/
        3:        5:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       43:       45:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       43:       45:  284:/*EOF*/
       43:       45:  285:/*EOF*/
       43:       45:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
       43:       45:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       43:       45:  291:/*EOF*/
       43:       45:  292:/*EOF*/
       37:       39:  293:/*EOF*/
       43:       45:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
       43:       45:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
       43:       45:  302:/*EOF*/
       43:       45:  303:/*EOF*/
      123:      129:  304:/*EOF*/
       80:       84:  305:/*EOF*/
       80:       84:  306:/*EOF*/
       80:       84:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       43:       45:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       43:       45:  315:/*EOF*/
       43:       45:  316:/*EOF*/
       43:       43:  317:/*EOF*/
       28:       28:  318:/*EOF*/
       28:       28:  319:/*EOF*/
       28:       28:  320:/*EOF*/
       13:       13:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       15:       15:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       43:       45:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      123:      129:  338:/*EOF*/
      320:      336:  339:/*EOF*/
      240:      252:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       43:       45:  344:/*EOF*/
       43:       45:  345:/*EOF*/
       43:       45:  346:/*EOF*/
        -:        -:  347:/*EOF*/
       43:       45:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       43:       45:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        9:       11:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        9:       11:  393:/*EOF*/
        9:       11:  394:/*EOF*/
        9:       11:  395:/*EOF*/
        9:       11:  396:/*EOF*/
        9:       11:  397:/*EOF*/
        9:       11:  398:/*EOF*/
        9:       11:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        9:       11:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        9:       11:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        9:       11:  411:/*EOF*/
        9:       11:  412:/*EOF*/
       36:       40:  413:/*EOF*/
       27:       29:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        9:       11:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/

src/compiler/glsl/.libs/nir_builder_opcodes.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder_opcodes.h
        -:        -:    0:Graph:glsl_to_nir.gcno
        -:        -:    0:Data:glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
    #####:    #####:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        3:        3:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        1:        1:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        1:        1:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        5:        7:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        5:        7:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        5:        5:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        5:        5:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        2:        2:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        2:        2:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        1:        1:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        1:        1:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        4:        4:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        4:        4:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        3:        3:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        3:        3:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       16:       16:  654:/*EOF*/
        -:        -:  655:/*EOF*/
       16:       16:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        3:        3:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        3:        3:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/

src/compiler/glsl/.libs/nir.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir.h
        -:        -:    0:Graph:glsl_to_nir.gcno
        -:        -:    0:Data:glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
      143:      155:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      143:      155:  514:/*EOF*/
      143:      155:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      134:      144:  557:/*EOF*/
        -:        -:  558:/*EOF*/
      134:      144:  559:/*EOF*/
        -:        -:  560:/*EOF*/
      134:      144:  561:/*EOF*/
      134:      144:  562:/*EOF*/
        -:        -:  563:/*EOF*/
      134:      144:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        9:       11:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        9:       11:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
       71:       73:  676:/*EOF*/
        -:        -:  677:/*EOF*/
       71:       73:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
       19:       19: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
       82:       88: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
       29:       35: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
       29:       35: 1661:/*EOF*/
       29:       35: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
       29:       35: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
       75:       91: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
       40:       48: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        3:        5: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
       25:       25: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
       25:       25: 1921:/*EOF*/
       25:       25: 1922:/*EOF*/
       25:       25: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
       43:       53: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
       86:      106: 2017:/*EOF*/
       43:       53: 2018:/*EOF*/
       31:       35: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
       12:       18: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
       72:       88: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
       72:       88: 2031:/*EOF*/
       72:       88: 2032:/*EOF*/
       72:       88: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        3:        3: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        3:        3: 2040:/*EOF*/
        3:        3: 2041:/*EOF*/
        3:        3: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
      207:      221: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
      207:      221: 2058:/*EOF*/
      207:      221: 2059:/*EOF*/
      207:      221: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
       43:       53: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
       43:       53: 2077:/*EOF*/
       43:       53: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
       32:       38: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
       32:       38: 2086:/*EOF*/
        3:        3: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
       29:       35: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
       43:       53: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
       43:       53: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
       43:       53: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        3:        3: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        3:        3: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        3:        3: 2126:/*EOF*/

src/compiler/glsl/.libs/nir_types.h.gcov

        -:        -:    0:Source:../../src/compiler/nir_types.h
        -:        -:    0:Graph:glsl_to_nir.gcno
        -:        -:    0:Data:glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       82:       88:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       82:       88:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       82:       88:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/

src/compiler/glsl/.libs/opt_algebraic.cpp.gcov

        -:        -:    0:Source:glsl/opt_algebraic.cpp
        -:        -:    0:Graph:opt_algebraic.gcno
        -:        -:    0:Data:opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       18:       18:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       18:       18:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
       18:       18:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       18:       18:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       18:       18:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      407:      407:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      407:      407:   88:/*EOF*/
      407:      407:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      407:      407:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      120:      120:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      120:      120:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       36:       36:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       36:       36:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       24:       24:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       24:       24:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       24:       24:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       24:       24:  256:/*EOF*/
       24:       24:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        2:        3:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        2:        3:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        3:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      263:      279:  312:/*EOF*/
        -:        -:  313:/*EOF*/
      263:      279:  314:/*EOF*/
      263:      279:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
      538:      570:  318:/*EOF*/
      263:      279:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
      263:      279:  332:/*EOF*/
      745:      792:  333:/*EOF*/
      482:      513:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      482:      513:  337:/*EOF*/
      482:      513:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      263:      279:  341:/*EOF*/
        9:        9:  342:/*EOF*/
        -:        -:  343:/*EOF*/
      263:      279:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        2:        3:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        2:        3:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        2:        3:  437:/*EOF*/
        2:        3:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        2:        3:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        2:        3:  456:/*EOF*/
        4:        6:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       48:       48:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
       48:       48:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       48:       48:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
       48:       48:  514:/*EOF*/
       24:       24:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       48:       48:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      144:      144:  533:/*EOF*/
       96:       96:  534:/*EOF*/
        -:        -:  535:/*EOF*/
       96:       96:  536:/*EOF*/
       96:       96:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       48:       48:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
       12:       12:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
       12:       12:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       12:       12:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
       12:       12:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
       12:       12:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       12:       12:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       12:       12:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
       12:       12:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       36:       36:  621:/*EOF*/
       24:       24:  622:/*EOF*/
       24:       24:  623:/*EOF*/
        -:        -:  624:/*EOF*/
       24:       24:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
       24:       24:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       12:       12:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        6:        6:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        6:        6:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
        6:        6:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
      333:      378:  704:/*EOF*/
      222:      252:  705:/*EOF*/
        -:        -:  706:/*EOF*/
      222:      252:  707:/*EOF*/
      222:      252:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
        -:        -:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
      111:      126:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        3:        3:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        3:        3:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        3:        3:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        3:        3:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        3:        3:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
       81:       81: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
      261:      276: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
     1790:     1867: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
     1790:     1867: 1012:/*EOF*/
      371:      371: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
     1419:     1496: 1015:/*EOF*/
     1419:     1496: 1016:/*EOF*/
     1156:     1217: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
      263:      279: 1019:/*EOF*/
      263:      279: 1020:/*EOF*/
      261:      276: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        2:        3: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        2:        3: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
       18:       18: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
       36:       36: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
       18:       18: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
       36:       36: 1040:/*EOF*/

src/compiler/glsl/.libs/opt_array_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_array_splitting.cpp
        -:        -:    0:Graph:opt_array_splitting.gcno
        -:        -:    0:Data:opt_array_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
       18:       18:   92:/*EOF*/
       18:       18:   93:/*EOF*/
       18:       18:   94:/*EOF*/
       18:       18:   95:/*EOF*/
       18:       18:   96:/*EOF*/
       18:       18:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       18:       18:   99:/*EOF*/
       36:       36:  100:/*EOF*/
       18:       18:  101:/*EOF*/
       18:       18:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
     2152:     2184:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     2152:     2184:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     3695:     3759:  130:/*EOF*/
     1543:     1575:  131:/*EOF*/
      933:      948:  132:/*EOF*/
        -:        -:  133:/*EOF*/
     1219:     1236:  134:/*EOF*/
     1219:     1236:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      660:      660:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      660:      660:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      660:      660:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
      660:      660:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      417:      417:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      417:      417:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      417:      417:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      417:      417:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      417:      417:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      417:      417:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      909:      941:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      909:      941:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      909:      941:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      909:      941:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      909:      941:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      150:      150:  205:/*EOF*/
        -:        -:  206:/*EOF*/
      150:      150:  207:/*EOF*/
      150:      150:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      150:      150:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      150:      150:  216:/*EOF*/
       24:       24:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       24:       24:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      126:      126:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      126:      126:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       21:       21:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       21:       21:  243:/*EOF*/
       21:       21:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
       18:       18:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
       18:       18:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       18:       18:  256:/*EOF*/
      448:      448:  257:/*EOF*/
      442:      442:  258:/*EOF*/
      442:      442:  259:/*EOF*/
      433:      433:  260:/*EOF*/
      433:      433:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       18:       18:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       18:       18:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
       18:       18:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       36:       36:  427:/*EOF*/
       18:       18:  428:/*EOF*/
       18:       18:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/

src/compiler/glsl/.libs/opt_conditional_discard.cpp.gcov

        -:        -:    0:Source:glsl/opt_conditional_discard.cpp
        -:        -:    0:Graph:opt_conditional_discard.gcno
        -:        -:    0:Data:opt_conditional_discard.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
       18:       18:   45:/*EOF*/
       18:       18:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       18:       18:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       18:       18:   59:/*EOF*/
       18:       18:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       92:      123:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      276:      369:   67:/*EOF*/
      166:      228:   68:/*EOF*/
      166:      228:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
       92:      123:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/

src/compiler/glsl/.libs/opt_constant_folding.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_folding.cpp
        -:        -:    0:Graph:opt_constant_folding.gcno
        -:        -:    0:Data:opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
       18:       18:   45:/*EOF*/
       18:       18:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       18:       18:   48:/*EOF*/
       18:       18:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       18:       18:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     2793:     2947:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     2793:     2947:   67:/*EOF*/
      623:      653:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
     2170:     2294:   75:/*EOF*/
     2170:     2294:   76:/*EOF*/
      490:      522:   77:/*EOF*/
      490:      522:   78:/*EOF*/
      490:      522:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
     1680:     1772:   84:/*EOF*/
     1680:     1772:   85:/*EOF*/
      172:      202:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
     1508:     1570:   89:/*EOF*/
     1508:     1570:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
      288:      288:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
     1220:     1282:   99:/*EOF*/
     1220:     1282:  100:/*EOF*/
     1208:     1270:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       12:       12:  103:/*EOF*/
       12:       12:  104:/*EOF*/
       12:       12:  105:/*EOF*/
       12:       12:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
     1403:     1480:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     1403:     1480:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
     1403:     1480:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      408:      408:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      408:      408:  144:/*EOF*/
      408:      408:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      408:      408:  147:/*EOF*/
       37:       37:  148:/*EOF*/
       37:       37:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       37:       37:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       37:       37:  155:/*EOF*/
        1:        1:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        1:        1:  159:/*EOF*/
        1:        1:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      408:      408:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        6:        6:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       18:       18:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       12:       12:  177:/*EOF*/
       12:       12:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       12:       12:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
       12:       12:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       12:       12:  184:/*EOF*/
       12:       12:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        6:        6:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        6:        6:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        6:        6:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       18:       18:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       36:       36:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       18:       18:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       36:       36:  210:/*EOF*/

src/compiler/glsl/.libs/opt_constant_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_propagation.cpp
        -:        -:    0:Graph:opt_constant_propagation.gcno
        -:        -:    0:Data:opt_constant_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      119:      119:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       89:       89:   53:/*EOF*/
       89:       89:   54:/*EOF*/
       89:       89:   55:/*EOF*/
       89:       89:   56:/*EOF*/
       89:       89:   57:/*EOF*/
       89:       89:   58:/*EOF*/
       89:       89:   59:/*EOF*/
       89:       89:   60:/*EOF*/
       89:       89:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       30:       30:   63:/*EOF*/
       30:       30:   64:/*EOF*/
       30:       30:   65:/*EOF*/
       30:       30:   66:/*EOF*/
       30:       30:   67:/*EOF*/
       30:       30:   68:/*EOF*/
       30:       30:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      435:      463:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      435:      463:   86:/*EOF*/
      435:      463:   87:/*EOF*/
      435:      463:   88:/*EOF*/
      435:      463:   89:/*EOF*/
      435:      463:   90:/*EOF*/
      435:      463:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       18:       18:   99:/*EOF*/
       18:       18:  100:/*EOF*/
       18:       18:  101:/*EOF*/
       18:       18:  102:/*EOF*/
       18:       18:  103:/*EOF*/
       18:       18:  104:/*EOF*/
       18:       18:  105:/*EOF*/
       18:       18:  106:/*EOF*/
       18:       18:  107:/*EOF*/
       18:       18:  108:/*EOF*/
       18:       18:  109:/*EOF*/
       36:       36:  110:/*EOF*/
       18:       18:  111:/*EOF*/
       18:       18:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
     1396:     1473:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1396:     1473:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        -:        -:  151:/*EOF*/
     1390:     1467:  152:/*EOF*/
       12:       12:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     1390:     1467:  155:/*EOF*/
     1390:     1467:  156:/*EOF*/
      484:      515:  157:/*EOF*/
      484:      515:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      988:     1065:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      988:     1065:  168:/*EOF*/
      982:     1059:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      982:     1059:  171:/*EOF*/
      982:     1059:  172:/*EOF*/
      126:      126:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      856:      933:  175:/*EOF*/
      856:      933:  176:/*EOF*/
      856:      933:  177:/*EOF*/
      511:      557:  178:/*EOF*/
      511:      557:  179:/*EOF*/
      430:      461:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       81:       96:  182:/*EOF*/
       81:       96:  183:/*EOF*/
       16:       16:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
      410:      456:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      458:      504:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      446:      492:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      446:      492:  194:/*EOF*/
       65:       80:  195:/*EOF*/
       65:       80:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      381:      412:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      588:      634:  206:/*EOF*/
      190:      190:  207:/*EOF*/
       48:       48:  208:/*EOF*/
       48:       48:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
      446:      492:  213:/*EOF*/
      398:      444:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       48:       48:  216:/*EOF*/
      120:      120:  217:/*EOF*/
      120:      120:  218:/*EOF*/
       48:       48:  219:/*EOF*/
       72:       72:  220:/*EOF*/
       72:       72:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       48:       48:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       48:       48:  232:/*EOF*/
       48:       48:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
       12:       12:  246:/*EOF*/
       12:       12:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      988:     1065:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      988:     1065:  253:/*EOF*/
      988:     1065:  254:/*EOF*/
      988:     1065:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       21:       21:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       21:       21:  264:/*EOF*/
       21:       21:  265:/*EOF*/
       21:       21:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       21:       21:  268:/*EOF*/
       21:       21:  269:/*EOF*/
       21:       21:  270:/*EOF*/
       21:       21:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       21:       21:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       21:       21:  275:/*EOF*/
       21:       21:  276:/*EOF*/
       21:       21:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       21:       21:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      408:      408:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      408:      408:  285:/*EOF*/
        -:        -:  286:/*EOF*/
      408:      408:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
      408:      408:  290:/*EOF*/
      408:      408:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        6:        6:  307:/*EOF*/
        -:        -:  308:/*EOF*/
      408:      408:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      408:      408:  311:/*EOF*/
        -:        -:  312:/*EOF*/
      408:      408:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       21:       21:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       21:       21:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        6:        6:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
       18:       18:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       12:       12:  329:/*EOF*/
       12:       12:  330:/*EOF*/
       12:       12:  331:/*EOF*/
       12:       12:  332:/*EOF*/
       12:       12:  333:/*EOF*/
       12:       12:  334:/*EOF*/
       12:       12:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       12:       12:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        6:        6:  345:/*EOF*/
        6:        6:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        6:        6:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      184:      246:  352:/*EOF*/
        -:        -:  353:/*EOF*/
      184:      246:  354:/*EOF*/
      184:      246:  355:/*EOF*/
      184:      246:  356:/*EOF*/
        -:        -:  357:/*EOF*/
      184:      246:  358:/*EOF*/
      184:      246:  359:/*EOF*/
      184:      246:  360:/*EOF*/
      184:      246:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      214:      276:  364:/*EOF*/
       30:       30:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
      184:      246:  368:/*EOF*/
        -:        -:  369:/*EOF*/
      184:      246:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      184:      246:  374:/*EOF*/
      184:      246:  375:/*EOF*/
      184:      246:  376:/*EOF*/
      184:      246:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
      323:      385:  380:/*EOF*/
      139:      139:  381:/*EOF*/
      139:      139:  382:/*EOF*/
        -:        -:  383:/*EOF*/
      184:      246:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       92:      123:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       92:      123:  389:/*EOF*/
       92:      123:  390:/*EOF*/
        -:        -:  391:/*EOF*/
       92:      123:  392:/*EOF*/
       92:      123:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       92:      123:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       24:       39:  400:/*EOF*/
        -:        -:  401:/*EOF*/
       24:       39:  402:/*EOF*/
       24:       39:  403:/*EOF*/
       24:       39:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       24:       39:  410:/*EOF*/
       24:       39:  411:/*EOF*/
       24:       39:  412:/*EOF*/
       24:       39:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       24:       39:  415:/*EOF*/
        -:        -:  416:/*EOF*/
       24:       39:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
       24:       39:  421:/*EOF*/
       24:       39:  422:/*EOF*/
       24:       39:  423:/*EOF*/
       24:       39:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      151:      194:  427:/*EOF*/
      127:      155:  428:/*EOF*/
      127:      155:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       24:       39:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      674:      702:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      674:      702:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
      674:      702:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      957:      984:  446:/*EOF*/
      283:      282:  447:/*EOF*/
       43:       43:  448:/*EOF*/
       43:       43:  449:/*EOF*/
       38:       38:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
      674:      702:  457:/*EOF*/
      674:      702:  458:/*EOF*/
      239:      239:  459:/*EOF*/
      239:      239:  460:/*EOF*/
      239:      239:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      870:      926:  464:/*EOF*/
      870:      926:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
      408:      408:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
      408:      408:  477:/*EOF*/
       37:       37:  478:/*EOF*/
        -:        -:  479:/*EOF*/
      371:      371:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      371:      371:  483:/*EOF*/
      371:      371:  484:/*EOF*/
        -:        -:  485:/*EOF*/
      371:      371:  486:/*EOF*/
      282:      282:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
       89:       89:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      178:      178:  500:/*EOF*/
       89:       89:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       89:       89:  504:/*EOF*/
       89:       89:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       18:       18:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       36:       36:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       18:       18:  518:/*EOF*/
        -:        -:  519:/*EOF*/
       36:       36:  520:/*EOF*/

src/compiler/glsl/.libs/opt_copy_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation.cpp
        -:        -:    0:Graph:opt_copy_propagation.gcno
        -:        -:    0:Data:opt_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       18:       18:   47:/*EOF*/
       18:       18:   48:/*EOF*/
       18:       18:   49:/*EOF*/
       18:       18:   50:/*EOF*/
       18:       18:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
       18:       18:   55:/*EOF*/
       18:       18:   56:/*EOF*/
       18:       18:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       36:       36:   59:/*EOF*/
       18:       18:   60:/*EOF*/
       18:       18:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       21:       21:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       21:       21:  101:/*EOF*/
       21:       21:  102:/*EOF*/
       21:       21:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       21:       21:  105:/*EOF*/
       21:       21:  106:/*EOF*/
       21:       21:  107:/*EOF*/
       21:       21:  108:/*EOF*/
       21:       21:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       21:       21:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       21:       21:  113:/*EOF*/
       21:       21:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       21:       21:  116:/*EOF*/
       21:       21:  117:/*EOF*/
       21:       21:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       21:       21:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      710:      766:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      710:      766:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      710:      766:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      710:      766:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       21:       21:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       21:       21:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
     1836:     2078:  148:/*EOF*/
        -:        -:  149:/*EOF*/
     1836:     2078:  150:/*EOF*/
      710:      766:  151:/*EOF*/
        -:        -:  152:/*EOF*/
     1126:     1312:  153:/*EOF*/
     1126:     1312:  154:/*EOF*/
       37:       37:  155:/*EOF*/
       37:       37:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
     1126:     1312:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        6:        6:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       18:       18:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       12:       12:  169:/*EOF*/
       12:       12:  170:/*EOF*/
       12:       12:  171:/*EOF*/
       12:       12:  172:/*EOF*/
       12:       12:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        6:        6:  187:/*EOF*/
        6:        6:  188:/*EOF*/
        6:        6:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        6:        6:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      340:      592:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      340:      592:  212:/*EOF*/
      340:      592:  213:/*EOF*/
      340:      592:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      340:      592:  216:/*EOF*/
      340:      592:  217:/*EOF*/
      340:      592:  218:/*EOF*/
      340:      592:  219:/*EOF*/
      340:      592:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
     1092:     1434:  224:/*EOF*/
      752:      842:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
      340:      592:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      340:      592:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
      340:      592:  234:/*EOF*/
      340:      592:  235:/*EOF*/
      340:      592:  236:/*EOF*/
      340:      592:  237:/*EOF*/
      340:      592:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      645:      953:  241:/*EOF*/
      305:      361:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      340:      592:  245:/*EOF*/
      340:      592:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      170:      296:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      170:      296:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      170:      296:  253:/*EOF*/
      170:      296:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      170:      296:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       48:      108:  261:/*EOF*/
        -:        -:  262:/*EOF*/
       48:      108:  263:/*EOF*/
       48:      108:  264:/*EOF*/
       48:      108:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       48:      108:  267:/*EOF*/
       48:      108:  268:/*EOF*/
       48:      108:  269:/*EOF*/
       48:      108:  270:/*EOF*/
       48:      108:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       48:      108:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       47:       97:  275:/*EOF*/
       23:       43:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       48:      108:  280:/*EOF*/
        -:        -:  281:/*EOF*/
       48:      108:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       48:      108:  286:/*EOF*/
       48:      108:  287:/*EOF*/
       48:      108:  288:/*EOF*/
       48:      108:  289:/*EOF*/
       48:      108:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
      408:      580:  293:/*EOF*/
      360:      472:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
       48:      108:  297:/*EOF*/
       48:      108:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
       24:       54:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       24:       54:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       24:       54:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       24:       54:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
     1375:     1599:  318:/*EOF*/
        -:        -:  319:/*EOF*/
     1375:     1599:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
     1375:     1599:  323:/*EOF*/
     1375:     1599:  324:/*EOF*/
       62:       62:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
     5697:     5906:  328:/*EOF*/
     4322:     4307:  329:/*EOF*/
       38:       38:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
     1375:     1599:  335:/*EOF*/
     1375:     1599:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      710:      766:  343:/*EOF*/
        -:        -:  344:/*EOF*/
      710:      766:  345:/*EOF*/
       72:       72:  346:/*EOF*/
        -:        -:  347:/*EOF*/
      638:      694:  348:/*EOF*/
      638:      694:  349:/*EOF*/
        -:        -:  350:/*EOF*/
      638:      694:  351:/*EOF*/
      209:      237:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        1:        1:  358:/*EOF*/
        1:        1:  359:/*EOF*/
      416:      472:  360:/*EOF*/
      416:      472:  361:/*EOF*/
      208:      236:  362:/*EOF*/
      208:      236:  363:/*EOF*/
      208:      236:  364:/*EOF*/
      208:      236:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
       18:       18:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       36:       36:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       18:       18:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       36:       36:  380:/*EOF*/

src/compiler/glsl/.libs/opt_copy_propagation_elements.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation_elements.cpp
        -:        -:    0:Graph:opt_copy_propagation_elements.gcno
        -:        -:    0:Data:opt_copy_propagation_elements.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      256:      284:   63:/*EOF*/
      256:      284:   64:/*EOF*/
      256:      284:   65:/*EOF*/
      256:      284:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      256:      284:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      256:      284:   76:/*EOF*/
      256:      284:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      256:      284:   79:/*EOF*/
      256:      284:   80:/*EOF*/
      256:      284:   81:/*EOF*/
      256:      284:   82:/*EOF*/
      256:      284:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      710:      766:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      710:      766:   99:/*EOF*/
      710:      766:  100:/*EOF*/
      710:      766:  101:/*EOF*/
      710:      766:  102:/*EOF*/
      710:      766:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       18:       18:  111:/*EOF*/
       18:       18:  112:/*EOF*/
       18:       18:  113:/*EOF*/
       18:       18:  114:/*EOF*/
       18:       18:  115:/*EOF*/
       18:       18:  116:/*EOF*/
       18:       18:  117:/*EOF*/
       18:       18:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       18:       18:  120:/*EOF*/
       18:       18:  121:/*EOF*/
       18:       18:  122:/*EOF*/
       36:       36:  123:/*EOF*/
       18:       18:  124:/*EOF*/
       18:       18:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      427:      739:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      427:      739:  129:/*EOF*/
      427:      739:  130:/*EOF*/
      427:      739:  131:/*EOF*/
      427:      739:  132:/*EOF*/
      427:      739:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      409:      721:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      409:      721:  137:/*EOF*/
      409:      721:  138:/*EOF*/
      409:      721:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      364:      646:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
     1530:     1971:  145:/*EOF*/
     1166:     1325:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1262:     1690:  149:/*EOF*/
      898:     1044:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      364:      646:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       21:       21:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
       21:       21:  198:/*EOF*/
       21:       21:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       21:       21:  201:/*EOF*/
       21:       21:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       21:       21:  204:/*EOF*/
       21:       21:  205:/*EOF*/
        -:        -:  206:/*EOF*/
       21:       21:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       21:       21:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       21:       21:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       21:       21:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       21:       21:  215:/*EOF*/
       21:       21:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       21:       21:  218:/*EOF*/
       21:       21:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       21:       21:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      710:      766:  225:/*EOF*/
        -:        -:  226:/*EOF*/
      710:      766:  227:/*EOF*/
      710:      766:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      710:      766:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      710:      766:  233:/*EOF*/
      698:      754:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       12:       12:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      710:      766:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      710:      766:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      710:      766:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      142:      222:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      142:      222:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
     1293:     1509:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
     1293:     1509:  267:/*EOF*/
     1293:     1509:  268:/*EOF*/
        -:        -:  269:/*EOF*/
     1293:     1509:  270:/*EOF*/
        -:        -:  271:/*EOF*/
     1293:     1509:  272:/*EOF*/
     1274:     1490:  273:/*EOF*/
        -:        -:  274:/*EOF*/
     1293:     1509:  275:/*EOF*/
     1293:     1509:  276:/*EOF*/
       98:      178:  277:/*EOF*/
       98:      178:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       98:      178:  281:/*EOF*/
       98:      178:  282:/*EOF*/
       98:      178:  283:/*EOF*/
       98:      178:  284:/*EOF*/
       98:      178:  285:/*EOF*/
        -:        -:  286:/*EOF*/
     1195:     1331:  287:/*EOF*/
     1195:     1331:  288:/*EOF*/
      553:      647:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      642:      684:  291:/*EOF*/
      642:      684:  292:/*EOF*/
      642:      684:  293:/*EOF*/
      642:      684:  294:/*EOF*/
      642:      684:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      740:      862:  298:/*EOF*/
       12:       12:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      728:      850:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
      728:      850:  306:/*EOF*/
      728:      850:  307:/*EOF*/
       71:       71:  308:/*EOF*/
       94:       94:  309:/*EOF*/
       46:       46:  310:/*EOF*/
       23:       23:  311:/*EOF*/
       19:       19:  312:/*EOF*/
       19:       19:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       19:       19:  315:/*EOF*/
       13:       13:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      728:      850:  323:/*EOF*/
      709:      831:  324:/*EOF*/
       19:       19:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       19:       19:  330:/*EOF*/
        4:        4:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       19:       19:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
       19:       19:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       19:       19:  344:/*EOF*/
        -:        -:  345:/*EOF*/
       19:       19:  346:/*EOF*/
       19:       19:  347:/*EOF*/
       19:       19:  348:/*EOF*/
       19:       19:  349:/*EOF*/
       95:       95:  350:/*EOF*/
       19:       19:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       19:       19:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        6:        6:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
       18:       18:  365:/*EOF*/
        -:        -:  366:/*EOF*/
       12:       12:  367:/*EOF*/
       12:       12:  368:/*EOF*/
       12:       12:  369:/*EOF*/
       12:       12:  370:/*EOF*/
       12:       12:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        6:        6:  378:/*EOF*/
        6:        6:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        6:        6:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        6:        6:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
      340:      592:  387:/*EOF*/
        -:        -:  388:/*EOF*/
      340:      592:  389:/*EOF*/
      340:      592:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      340:      592:  392:/*EOF*/
      340:      592:  393:/*EOF*/
        -:        -:  394:/*EOF*/
      340:      592:  395:/*EOF*/
      340:      592:  396:/*EOF*/
        -:        -:  397:/*EOF*/
      340:      592:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      340:      592:  401:/*EOF*/
        -:        -:  402:/*EOF*/
      340:      592:  403:/*EOF*/
        -:        -:  404:/*EOF*/
      340:      592:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
      340:      592:  410:/*EOF*/
      340:      592:  411:/*EOF*/
      340:      592:  412:/*EOF*/
        -:        -:  413:/*EOF*/
      340:      592:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      340:      592:  416:/*EOF*/
      340:      592:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      705:     1013:  422:/*EOF*/
      365:      421:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
      340:      592:  426:/*EOF*/
      340:      592:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      170:      296:  430:/*EOF*/
        -:        -:  431:/*EOF*/
      170:      296:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      170:      296:  434:/*EOF*/
      170:      296:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
      170:      296:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       48:      108:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       48:      108:  444:/*EOF*/
       48:      108:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       48:      108:  447:/*EOF*/
       48:      108:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       48:      108:  454:/*EOF*/
       48:      108:  455:/*EOF*/
        -:        -:  456:/*EOF*/
       48:      108:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       48:      108:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       24:       54:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       48:      108:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       48:      108:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       48:      108:  471:/*EOF*/
       48:      108:  472:/*EOF*/
       48:      108:  473:/*EOF*/
        -:        -:  474:/*EOF*/
       48:      108:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       48:      108:  477:/*EOF*/
       48:      108:  478:/*EOF*/
        -:        -:  479:/*EOF*/
      486:      714:  480:/*EOF*/
      438:      606:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
       48:      108:  484:/*EOF*/
       48:      108:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       24:       54:  488:/*EOF*/
        -:        -:  489:/*EOF*/
       24:       54:  490:/*EOF*/
       24:       54:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       24:       54:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
     1513:     1793:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
     1513:     1793:  502:/*EOF*/
     1513:     1793:  503:/*EOF*/
      155:      155:  504:/*EOF*/
      273:      273:  505:/*EOF*/
      118:      118:  506:/*EOF*/
      118:      118:  507:/*EOF*/
       80:       80:  508:/*EOF*/
       80:       80:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
     1513:     1793:  515:/*EOF*/
     1513:     1793:  516:/*EOF*/
       41:       41:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
      175:      175:  520:/*EOF*/
       67:       67:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
       67:       67:  526:/*EOF*/
       43:       43:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
     1513:     1793:  532:/*EOF*/
      803:     1027:  533:/*EOF*/
        -:        -:  534:/*EOF*/
     1513:     1793:  535:/*EOF*/
     1513:     1793:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      710:      766:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
      710:      766:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
      710:      766:  549:/*EOF*/
      527:      555:  550:/*EOF*/
        -:        -:  551:/*EOF*/
      637:      693:  552:/*EOF*/
      637:      693:  553:/*EOF*/
       12:       12:  554:/*EOF*/
        -:        -:  555:/*EOF*/
      625:      681:  556:/*EOF*/
      625:      681:  557:/*EOF*/
      391:      419:  558:/*EOF*/
      391:      419:  559:/*EOF*/
      359:      387:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       32:       32:  562:/*EOF*/
       32:       32:  563:/*EOF*/
       10:       10:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       22:       22:  566:/*EOF*/
       22:       22:  567:/*EOF*/
       22:       22:  568:/*EOF*/
       22:       22:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
      256:      284:  576:/*EOF*/
     1280:     1420:  577:/*EOF*/
     1024:     1136:  578:/*EOF*/
      345:      373:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
      256:      284:  582:/*EOF*/
      256:      284:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      256:      284:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
      256:      284:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
      256:      284:  602:/*EOF*/
      256:      284:  603:/*EOF*/
       49:       49:  604:/*EOF*/
       49:       49:  605:/*EOF*/
        -:        -:  606:/*EOF*/
      207:      235:  607:/*EOF*/
      207:      235:  608:/*EOF*/
      207:      235:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
      256:      284:  613:/*EOF*/
      256:      284:  614:/*EOF*/
       44:       44:  615:/*EOF*/
       44:       44:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      212:      240:  618:/*EOF*/
      212:      240:  619:/*EOF*/
      212:      240:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
       18:       18:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       36:       36:  627:/*EOF*/
        -:        -:  628:/*EOF*/
       18:       18:  629:/*EOF*/
        -:        -:  630:/*EOF*/
       36:       36:  631:/*EOF*/

src/compiler/glsl/.libs/opt_dead_builtin_varyings.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_builtin_varyings.cpp
        -:        -:    0:Graph:opt_dead_builtin_varyings.gcno
        -:        -:    0:Data:opt_dead_builtin_varyings.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        8:        8:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        8:        8:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        8:        8:   80:/*EOF*/
        8:        8:   81:/*EOF*/
        8:        8:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       38:       38:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       38:       38:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       38:       38:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
       38:       38:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      199:      207:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      199:      207:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      199:      207:  147:/*EOF*/
      199:      207:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       45:       45:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       45:       45:  170:/*EOF*/
       39:       39:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        6:        6:  174:/*EOF*/
        2:        2:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        4:        4:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        1:        1:  180:/*EOF*/
        1:        1:  181:/*EOF*/
        1:        1:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        1:        1:  184:/*EOF*/
        1:        1:  185:/*EOF*/
        1:        1:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        4:        4:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        6:        6:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        6:        6:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        6:        6:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        6:        6:  238:/*EOF*/
        6:        6:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        6:        6:  241:/*EOF*/
        6:        6:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        6:        6:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        2:        2:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        2:        2:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        2:        2:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        2:        2:  286:/*EOF*/
        2:        2:  287:/*EOF*/
        2:        2:  288:/*EOF*/
        2:        2:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        2:        2:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        2:        2:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        2:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        6:        6:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        4:        4:  323:/*EOF*/
        4:        4:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        4:        4:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        4:        4:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        2:        2:  350:/*EOF*/
        2:        2:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
       20:       20:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
       20:       20:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
       20:       20:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       60:       60:  410:/*EOF*/
       40:       40:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
       40:       40:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
       20:       20:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
       20:       20:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      218:      228:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      218:      228:  429:/*EOF*/
       39:       39:  430:/*EOF*/
        -:        -:  431:/*EOF*/
      179:      189:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      179:      189:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
      179:      189:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      179:      189:  464:/*EOF*/
      179:      189:  465:/*EOF*/
       83:       89:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       96:      100:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      288:      300:  470:/*EOF*/
      192:      200:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
      192:      200:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
       96:      100:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       39:       39:  487:/*EOF*/
        -:        -:  488:/*EOF*/
       39:       39:  489:/*EOF*/
       39:       39:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       39:       39:  493:/*EOF*/
        -:        -:  494:/*EOF*/
       39:       39:  495:/*EOF*/
       39:       39:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       39:       39:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        2:        2:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        2:        2:  526:/*EOF*/
        2:        2:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        2:        2:  529:/*EOF*/
        2:        2:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        3:        3:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        3:        3:  541:/*EOF*/
        2:        2:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        6:        6:  548:/*EOF*/
        3:        3:  549:/*EOF*/
        2:        2:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        3:        3:  554:/*EOF*/
        3:        3:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        3:        3:  557:/*EOF*/
        2:        2:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        2:        2:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        1:        1:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        1:        1:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        2:        2:  569:/*EOF*/
        2:        2:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        2:        2:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        1:        1:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        1:        1:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        2:        2:  582:/*EOF*/
        2:        2:  583:/*EOF*/
        1:        1:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        1:        1:  598:/*EOF*/
        1:        1:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        2:        2:  603:/*EOF*/
        2:        2:  604:/*EOF*/
        1:        1:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/

src/compiler/glsl/.libs/opt_dead_code.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code.cpp
        -:        -:    0:Graph:opt_dead_code.gcno
        -:        -:    0:Data:opt_dead_code.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       25:       25:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       50:       50:   48:/*EOF*/
       25:       25:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       25:       25:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      496:      499:   54:/*EOF*/
      471:      474:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      471:      474:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      471:      474:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      471:      474:   74:/*EOF*/
      200:      200:   75:/*EOF*/
      277:      280:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      194:      194:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      194:      194:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      132:      132:   96:/*EOF*/
      132:      132:   97:/*EOF*/
      116:      116:   98:/*EOF*/
       50:       50:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      154:      154:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       52:       52:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       52:       52:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       52:       52:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       52:       52:  113:/*EOF*/
       52:       52:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       50:       50:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      194:      194:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      296:      296:  129:/*EOF*/
      118:      118:  130:/*EOF*/
       60:       60:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       60:       60:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       60:       60:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      178:      178:  156:/*EOF*/
      178:      178:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      178:      178:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       50:       50:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        6:        6:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        6:        6:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      448:      448:  181:/*EOF*/
      442:      442:  182:/*EOF*/
      442:      442:  183:/*EOF*/
       18:       18:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        9:        9:  190:/*EOF*/
        4:        4:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        6:        6:  196:/*EOF*/

src/compiler/glsl/.libs/opt_dead_code_local.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code_local.cpp
        -:        -:    0:Graph:opt_dead_code_local.gcno
        -:        -:    0:Data:opt_dead_code_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      439:      439:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      439:      439:   51:/*EOF*/
      439:      439:   52:/*EOF*/
      439:      439:   53:/*EOF*/
      439:      439:   54:/*EOF*/
      439:      439:   55:/*EOF*/
      439:      439:   56:/*EOF*/
      439:      439:   57:/*EOF*/
      439:      439:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     1284:     1361:   69:/*EOF*/
     1284:     1361:   70:/*EOF*/
     1284:     1361:   71:/*EOF*/
     1284:     1361:   72:/*EOF*/
        -:        -:   73:/*EOF*/
     2740:     2923:   74:/*EOF*/
        -:        -:   75:/*EOF*/
     4488:     4714:   76:/*EOF*/
     1748:     1791:   77:/*EOF*/
      233:      233:   78:/*EOF*/
      233:      233:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
      233:      233:   82:/*EOF*/
      233:      233:   83:/*EOF*/
      233:      233:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
     2740:     2923:   92:/*EOF*/
        -:        -:   93:/*EOF*/
     2740:     2923:   94:/*EOF*/
        -:        -:   95:/*EOF*/
     2740:     2923:   96:/*EOF*/
        -:        -:   97:/*EOF*/
     2740:     2923:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      439:      439:  143:/*EOF*/
      439:      439:  144:/*EOF*/
      439:      439:  145:/*EOF*/
      439:      439:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        6:        6:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        6:        6:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      439:      439:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      439:      439:  156:/*EOF*/
      439:      439:  157:/*EOF*/
      439:      439:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      439:      439:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      439:      439:  172:/*EOF*/
      439:      439:  173:/*EOF*/
      439:      439:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      439:      439:  177:/*EOF*/
      439:      439:  178:/*EOF*/
       37:       37:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      439:      439:  184:/*EOF*/
      439:      439:  185:/*EOF*/
      439:      439:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      439:      439:  189:/*EOF*/
      402:      402:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      508:      508:  195:/*EOF*/
      106:      106:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      396:      396:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      899:      899:  202:/*EOF*/
      503:      503:  203:/*EOF*/
      441:      441:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       62:       62:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       62:       62:  211:/*EOF*/
       62:       62:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       62:       62:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        6:        6:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      439:      439:  280:/*EOF*/
      439:      439:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      439:      439:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
      439:      439:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      288:      365:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
      288:      365:  302:/*EOF*/
      288:      365:  303:/*EOF*/
      288:      365:  304:/*EOF*/
        -:        -:  305:/*EOF*/
      288:      365:  306:/*EOF*/
      288:      365:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
     2280:     2357:  310:/*EOF*/
      996:      996:  311:/*EOF*/
     1284:     1361:  312:/*EOF*/
        -:        -:  313:/*EOF*/
     1284:     1361:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
     1284:     1361:  319:/*EOF*/
      439:      439:  320:/*EOF*/
      439:      439:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      845:      922:  323:/*EOF*/
      845:      922:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
     1284:     1361:  327:/*EOF*/
      288:      365:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      288:      365:  330:/*EOF*/
      288:      365:  331:/*EOF*/
      288:      365:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       18:       18:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       18:       18:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       18:       18:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       18:       18:  344:/*EOF*/

src/compiler/glsl/.libs/opt_flatten_nested_if_blocks.cpp.gcov

        -:        -:    0:Source:glsl/opt_flatten_nested_if_blocks.cpp
        -:        -:    0:Graph:opt_flatten_nested_if_blocks.gcno
        -:        -:    0:Data:opt_flatten_nested_if_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       18:       18:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      491:      491:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      491:      491:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       18:   79:/*EOF*/
       18:       18:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       92:      123:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       92:      123:   90:/*EOF*/
       14:       14:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       78:      109:   93:/*EOF*/
       78:      109:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
       78:      109:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/

src/compiler/glsl/.libs/opt_function_inlining.cpp.gcov

        -:        -:    0:Source:glsl/opt_function_inlining.cpp
        -:        -:    0:Graph:opt_function_inlining.gcno
        -:        -:    0:Data:opt_function_inlining.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       12:       12:   46:/*EOF*/
       12:       12:   47:/*EOF*/
       12:       12:   48:/*EOF*/
       12:       12:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       12:       12:   51:/*EOF*/
       12:       12:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       12:       12:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       12:       12:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       24:       24:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       12:       12:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       24:       24:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      167:      193:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      167:      193:   85:/*EOF*/
      167:      193:   86:/*EOF*/
      167:      193:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      167:      193:   89:/*EOF*/
        7:        7:   90:/*EOF*/
        7:        7:   91:/*EOF*/
        7:        7:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      167:      193:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        7:        7:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        7:        7:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        7:        7:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        7:        7:  145:/*EOF*/
        7:        7:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        7:        7:  151:/*EOF*/
       20:       20:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       13:       13:  154:/*EOF*/
       13:       13:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       13:       13:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       13:       13:  166:/*EOF*/
       13:       13:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       13:       13:  174:/*EOF*/
       13:       13:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       13:       13:  196:/*EOF*/
       13:       13:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       13:       13:  201:/*EOF*/
       26:       26:  202:/*EOF*/
       13:       13:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       13:       13:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        7:        7:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       32:       32:  230:/*EOF*/
       25:       25:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       25:       25:  233:/*EOF*/
       25:       25:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       20:       20:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       13:       13:  242:/*EOF*/
       13:       13:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       13:       13:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        7:        7:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        7:        7:  259:/*EOF*/
       20:       20:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       13:       13:  262:/*EOF*/
       13:       13:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       26:       26:  266:/*EOF*/
       13:       13:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       13:       13:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        7:        7:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        7:        7:  281:/*EOF*/
        7:        7:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      168:      179:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
      168:      179:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        1:        1:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        1:        1:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       11:       11:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       11:       11:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        2:        2:  320:/*EOF*/
        2:        2:  321:/*EOF*/
        2:        2:  322:/*EOF*/
        2:        2:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        2:        2:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/

src/compiler/glsl/.libs/opt_if_simplification.cpp.gcov

        -:        -:    0:Source:glsl/opt_if_simplification.cpp
        -:        -:    0:Graph:opt_if_simplification.gcno
        -:        -:    0:Data:opt_if_simplification.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       18:       18:   38:/*EOF*/
       18:       18:   39:/*EOF*/
       18:       18:   40:/*EOF*/
       18:       18:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      491:      491:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      491:      491:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       18:       18:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       18:       18:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       18:       18:   66:/*EOF*/
       18:       18:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       95:      128:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       95:      128:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       95:      128:   87:/*EOF*/
       95:      128:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        5:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        3:        5:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        5:   97:/*EOF*/
        3:        5:   98:/*EOF*/
        3:        5:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       92:      123:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       92:      123:  125:/*EOF*/

src/compiler/glsl/.libs/opt_minmax.cpp.gcov

        -:        -:    0:Source:glsl/opt_minmax.cpp
        -:        -:    0:Graph:opt_minmax.gcno
        -:        -:    0:Data:opt_minmax.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       18:       18:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
     1790:     1867:  456:/*EOF*/
        -:        -:  457:/*EOF*/
     1790:     1867:  458:/*EOF*/
      371:      371:  459:/*EOF*/
        -:        -:  460:/*EOF*/
     1419:     1496:  461:/*EOF*/
     1682:     1775:  462:/*EOF*/
      263:      279:  463:/*EOF*/
     1419:     1496:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       18:       18:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       18:       18:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       18:       18:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       18:       18:  487:/*EOF*/

src/compiler/glsl/.libs/opt_noop_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_noop_swizzle.cpp
        -:        -:    0:Graph:opt_noop_swizzle.gcno
        -:        -:    0:Data:opt_noop_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       18:       18:   41:/*EOF*/
       18:       18:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
     1802:     1879:   53:/*EOF*/
        -:        -:   54:/*EOF*/
     1802:     1879:   55:/*EOF*/
      381:      381:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1421:     1498:   58:/*EOF*/
     1421:     1498:   59:/*EOF*/
     1390:     1467:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       31:       31:   62:/*EOF*/
       31:       31:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
       31:       31:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
       31:       31:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
       31:       31:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       31:       31:   72:/*EOF*/
       31:       31:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       18:   79:/*EOF*/
       18:       18:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       18:       18:   82:/*EOF*/

src/compiler/glsl/.libs/opt_rebalance_tree.cpp.gcov

        -:        -:    0:Source:glsl/opt_rebalance_tree.cpp
        -:        -:    0:Graph:opt_rebalance_tree.gcno
        -:        -:    0:Data:opt_rebalance_tree.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       18:       18:  129:/*EOF*/
       18:       18:  130:/*EOF*/
       18:       18:  131:/*EOF*/
       18:       18:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      407:      407:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      407:      407:  154:/*EOF*/
      407:      407:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      407:      407:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      130:      146:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      130:      146:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        8:        8:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      122:      138:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       26:       26:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       26:       26:  204:/*EOF*/
       26:       26:  205:/*EOF*/
        9:        9:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       17:       17:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       34:       34:  222:/*EOF*/
       17:       17:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       17:       17:  228:/*EOF*/
       17:       17:  229:/*EOF*/
       10:       10:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       21:       21:  236:/*EOF*/
       14:       14:  237:/*EOF*/
       11:       11:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        7:        7:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        7:        7:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        7:        7:  249:/*EOF*/
        7:        7:  250:/*EOF*/
        4:        4:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        4:        4:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        3:        3:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        4:        4:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        4:        4:  263:/*EOF*/
        4:        4:  264:/*EOF*/
        4:        4:  265:/*EOF*/
        4:        4:  266:/*EOF*/
        4:        4:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        4:        4:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        4:        4:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        4:        4:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
      976:     1053:  300:/*EOF*/
        -:        -:  301:/*EOF*/
      976:     1053:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
      976:     1053:  305:/*EOF*/
      976:     1053:  306:/*EOF*/
      972:     1049:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        4:        4:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        4:        4:  320:/*EOF*/
        4:        4:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       18:       18:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       18:       18:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       18:       18:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       18:       18:  336:/*EOF*/

src/compiler/glsl/.libs/opt_redundant_jumps.cpp.gcov

        -:        -:    0:Source:glsl/opt_redundant_jumps.cpp
        -:        -:    0:Graph:opt_redundant_jumps.gcno
        -:        -:    0:Data:opt_redundant_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
       18:       18:   35:/*EOF*/
       18:       18:   36:/*EOF*/
       18:       18:   37:/*EOF*/
       18:       18:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      417:      417:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      417:      417:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       93:      125:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       93:      125:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       93:      125:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       93:      125:   70:/*EOF*/
       78:      110:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       15:       15:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
       15:       15:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       24:       39:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       24:       39:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       24:       39:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       24:       39:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       18:       18:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       18:       18:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       18:       18:  122:/*EOF*/
       18:       18:  123:/*EOF*/

src/compiler/glsl/.libs/opt_structure_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_structure_splitting.cpp
        -:        -:    0:Graph:opt_structure_splitting.gcno
        -:        -:    0:Data:opt_structure_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       12:       12:   76:/*EOF*/
       12:       12:   77:/*EOF*/
       12:       12:   78:/*EOF*/
       12:       12:   79:/*EOF*/
       12:       12:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       12:       12:   82:/*EOF*/
       24:       24:   83:/*EOF*/
       12:       12:   84:/*EOF*/
       12:       12:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      446:      474:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      446:      474:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      900:      956:  106:/*EOF*/
        8:        8:  107:/*EOF*/
      446:      474:  108:/*EOF*/
      446:      474:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      335:      335:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      335:      335:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      335:      335:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      335:      335:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      111:      139:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      111:      139:  136:/*EOF*/
      111:      139:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      111:      139:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      111:      139:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      383:      383:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      383:      383:  159:/*EOF*/
      383:      383:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       12:       12:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       12:       12:  180:/*EOF*/
       12:       12:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       12:       12:  310:/*EOF*/
        -:        -:  311:/*EOF*/
       24:       24:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       12:       12:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       12:       12:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       12:       12:  329:/*EOF*/
       12:       12:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/

src/compiler/glsl/.libs/opt_swizzle_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_swizzle_swizzle.cpp
        -:        -:    0:Graph:opt_swizzle_swizzle.gcno
        -:        -:    0:Data:opt_swizzle_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       18:       18:   39:/*EOF*/
       18:       18:   40:/*EOF*/
       18:       18:   41:/*EOF*/
       18:       18:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       80:       95:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       80:       95:   56:/*EOF*/
       80:       95:   57:/*EOF*/
       74:       89:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        6:        6:   60:/*EOF*/
        6:        6:   61:/*EOF*/
        6:        6:   62:/*EOF*/
        6:        6:   63:/*EOF*/
        6:        6:   64:/*EOF*/
        6:        6:   65:/*EOF*/
        6:        6:   66:/*EOF*/
        6:        6:   67:/*EOF*/
        6:        6:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        6:        6:   70:/*EOF*/
        6:        6:   71:/*EOF*/
        6:        6:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        6:        6:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        6:        6:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        6:        6:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        6:        6:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        6:        6:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       18:       18:   90:/*EOF*/
        -:        -:   91:/*EOF*/
       18:       18:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       18:       18:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       18:       18:   96:/*EOF*/

src/compiler/glsl/.libs/opt_tree_grafting.cpp.gcov

        -:        -:    0:Source:glsl/opt_tree_grafting.cpp
        -:        -:    0:Graph:opt_tree_grafting.gcno
        -:        -:    0:Data:opt_tree_grafting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       49:       49:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       49:       49:   65:/*EOF*/
       49:       49:   66:/*EOF*/
       49:       49:   67:/*EOF*/
       49:       49:   68:/*EOF*/
       49:       49:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      219:      219:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      219:      219:   98:/*EOF*/
      219:      219:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      219:      219:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
      219:      219:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       51:       51:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       51:       51:  110:/*EOF*/
       51:       51:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       51:       51:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       51:       51:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      313:      313:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      313:      313:  121:/*EOF*/
       30:       30:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      283:      283:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      283:      283:  126:/*EOF*/
      252:      252:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       31:       31:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       31:       31:  138:/*EOF*/
       31:       31:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       31:       31:  141:/*EOF*/
       31:       31:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       51:       51:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       51:       51:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       51:       51:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       67:       67:  178:/*EOF*/
        -:        -:  179:/*EOF*/
      127:      127:  180:/*EOF*/
       60:       60:  181:/*EOF*/
       19:       19:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       48:       48:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        3:        3:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        9:        9:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        6:        6:  209:/*EOF*/
        6:        6:  210:/*EOF*/
        6:        6:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        6:        6:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        6:        6:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        3:        3:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        3:        3:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       41:       41:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      116:      116:  235:/*EOF*/
       80:       80:  236:/*EOF*/
        5:        5:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       36:       36:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       19:       19:  244:/*EOF*/
        -:        -:  245:/*EOF*/
       19:       19:  246:/*EOF*/
        4:        4:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       15:       15:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       81:       81:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       81:       81:  258:/*EOF*/
        3:        3:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       78:       78:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       49:       49:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       49:       49:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       49:       49:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      118:      118:  326:/*EOF*/
      118:      118:  327:/*EOF*/
       69:       69:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      100:      100:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      100:      100:  336:/*EOF*/
      100:      100:  337:/*EOF*/
       31:       31:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
       18:       18:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
      288:      365:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
      288:      365:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
     2856:     3087:  352:/*EOF*/
     1572:     1726:  353:/*EOF*/
     1284:     1361:  354:/*EOF*/
     1284:     1361:  355:/*EOF*/
        -:        -:  356:/*EOF*/
     1284:     1361:  357:/*EOF*/
      845:      922:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      439:      439:  360:/*EOF*/
      439:      439:  361:/*EOF*/
       88:       88:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      702:      702:  364:/*EOF*/
      702:      702:  365:/*EOF*/
      687:      687:  366:/*EOF*/
      672:      672:  367:/*EOF*/
      336:      336:  368:/*EOF*/
       15:       15:  369:/*EOF*/
        -:        -:  370:/*EOF*/
      336:      336:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      336:      336:  374:/*EOF*/
        -:        -:  375:/*EOF*/
      672:      672:  376:/*EOF*/
      401:      401:  377:/*EOF*/
       65:       65:  378:/*EOF*/
      287:      287:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       49:       49:  385:/*EOF*/
        -:        -:  386:/*EOF*/
      288:      365:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       18:       18:  395:/*EOF*/
        -:        -:  396:/*EOF*/
       36:       36:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       18:       18:  400:/*EOF*/
       18:       18:  401:/*EOF*/
        -:        -:  402:/*EOF*/
       18:       18:  403:/*EOF*/
        -:        -:  404:/*EOF*/
       18:       18:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       36:       36:  407:/*EOF*/

src/compiler/glsl/.libs/propagate_invariance.cpp.gcov

        -:        -:    0:Source:glsl/propagate_invariance.cpp
        -:        -:    0:Graph:propagate_invariance.gcno
        -:        -:    0:Data:propagate_invariance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       21:       21:   51:/*EOF*/
       21:       21:   52:/*EOF*/
       21:       21:   53:/*EOF*/
       21:       21:   54:/*EOF*/
       21:       21:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       21:       21:   57:/*EOF*/
       21:       21:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       21:       21:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      533:      533:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      533:      533:   75:/*EOF*/
      533:      533:   76:/*EOF*/
      533:      533:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      533:      533:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      178:      215:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      178:      215:   96:/*EOF*/
      178:      215:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       21:       21:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       42:       42:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
       21:       21:  122:/*EOF*/
       21:       21:  123:/*EOF*/
       21:       21:  124:/*EOF*/
       21:       21:  125:/*EOF*/

src/compiler/glsl/linker.cpp.gcov

        -:        -:    0:Source:glsl/linker.cpp
        -:        -:    0:Graph:.libs/linker.gcno
        -:        -:    0:Data:.libs/linker.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        8:        8:   98:/*EOF*/
        8:        8:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        8:        8:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       70:       70:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       70:       70:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       70:       70:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        3:        3:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       67:       67:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        4:        4:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       12:       12:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        8:        8:  120:/*EOF*/
        8:        8:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       16:       16:  123:/*EOF*/
        8:        8:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        4:        4:  133:/*EOF*/
        4:        4:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        4:        4:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        4:        4:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        9:        9:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        9:        9:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        1:        1:  161:/*EOF*/
        1:        1:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        5:        5:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        5:        5:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        5:        5:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        1:        1:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        1:        1:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       85:       87:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       85:       87:  197:/*EOF*/
       85:       87:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       16:       16:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       16:       16:  203:/*EOF*/
       16:       16:  204:/*EOF*/
       12:       12:  205:/*EOF*/
       16:       16:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        1:        1:  385:/*EOF*/
        1:        1:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        1:        1:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        1:        1:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        1:        1:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        3:        3:  507:/*EOF*/
        -:        -:  508:/*EOF*/
       14:       14:  509:/*EOF*/
       11:       11:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       11:       11:  512:/*EOF*/
        3:        3:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        8:        8:  520:/*EOF*/
        3:        3:  521:/*EOF*/
        3:        3:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
       13:       13:  528:/*EOF*/
        5:        5:  529:/*EOF*/
        5:        5:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        3:        3:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        3:        3:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        1:        1:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        1:        1:  556:/*EOF*/
        1:        1:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        1:        1:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        1:        1:  570:/*EOF*/
        1:        1:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        1:        1:  573:/*EOF*/
        1:        1:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        1:        1:  585:/*EOF*/
        1:        1:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        1:        1:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        1:        1:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        1:        1:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        1:        1:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        1:        1:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        2:        2:  623:/*EOF*/
        1:        1:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        1:        1:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        1:        1:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        1:        1:  678:/*EOF*/
        1:        1:  679:/*EOF*/
        1:        1:  680:/*EOF*/
        1:        1:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        2:        2:  694:/*EOF*/
        1:        1:  695:/*EOF*/
        2:        2:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        2:        2:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        2:        2:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        2:        2:  725:/*EOF*/
        2:        2:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        2:        2:  728:/*EOF*/
        2:        2:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        2:        2:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        2:        2:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        2:        2:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        2:        2:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        2:        2:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        6:        6:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      224:      224:  875:/*EOF*/
      218:      218:  876:/*EOF*/
        -:        -:  877:/*EOF*/
      218:      218:  878:/*EOF*/
        8:        8:  879:/*EOF*/
        -:        -:  880:/*EOF*/
      210:      210:  881:/*EOF*/
       43:       43:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
      167:      167:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
      167:      167:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
      167:      167:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
      167:      167:  905:/*EOF*/
      167:      167:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        9:        9:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        9:        9:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        9:        9:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        9:        9:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        9:        9:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        9:        9: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        9:        9: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        9:        9: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        9:        9: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        9:        9: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        9:        9: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        9:        9: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
       18:       18: 1101:/*EOF*/
        9:        9: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
      158:      158: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        2:        2: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        4:        4: 1121:/*EOF*/
       14:       14: 1122:/*EOF*/
       12:       12: 1123:/*EOF*/
        9:        9: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        3:        3: 1126:/*EOF*/
        3:        3: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        2:        2: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        4:        4: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        4:        4: 1140:/*EOF*/
        2:        2: 1141:/*EOF*/
        6:        6: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        4:        4: 1144:/*EOF*/
       28:       28: 1145:/*EOF*/
       24:       24: 1146:/*EOF*/
        6:        6: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        3:        3: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        3:        3: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
       28:       28: 1157:/*EOF*/
       24:       24: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
       24:       24: 1160:/*EOF*/
       24:       24: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
       24:       24: 1164:/*EOF*/
       18:       18: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        6:        6: 1169:/*EOF*/
        3:        3: 1170:/*EOF*/
        3:        3: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        3:        3: 1173:/*EOF*/
        3:        3: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        6:        6: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
       28:       28: 1204:/*EOF*/
       24:       24: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
       28:       28: 1221:/*EOF*/
       24:       24: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        4:        4: 1225:/*EOF*/
        2:        2: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        2:        2: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        4:        4: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        3:        3: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        3:        3: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
      112:      112: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
      109:      109: 1246:/*EOF*/
        4:        4: 1247:/*EOF*/
      105:      105: 1248:/*EOF*/
      105:      105: 1249:/*EOF*/
      105:      105: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        3:        3: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        3:        3: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        3:        3: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        3:        3: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
      112:      112: 1359:/*EOF*/
      109:      109: 1360:/*EOF*/
        4:        4: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
      105:      105: 1363:/*EOF*/
      105:      105: 1364:/*EOF*/
      105:      105: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        3:        3: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        3:        3: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        3:        3: 1401:/*EOF*/
        3:        3: 1402:/*EOF*/
        3:        3: 1403:/*EOF*/
        9:        9: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        3:        3: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        3:        3: 1408:/*EOF*/
        6:        6: 1409:/*EOF*/
        3:        3: 1410:/*EOF*/
        3:        3: 1411:/*EOF*/
        3:        3: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      120:      120: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
      120:      120: 1417:/*EOF*/
      120:      120: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
      120:      120: 1420:/*EOF*/
      120:      120: 1421:/*EOF*/
      120:      120: 1422:/*EOF*/
      120:      120: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
      120:      120: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
      120:      120: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
       10:       10: 1446:/*EOF*/
       10:       10: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
       10:       10: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
       10:       10: 1451:/*EOF*/
        1:        1: 1452:/*EOF*/
        1:        1: 1453:/*EOF*/
        1:        1: 1454:/*EOF*/
        1:        1: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
       10:       10: 1457:/*EOF*/
       10:       10: 1458:/*EOF*/
       10:       10: 1459:/*EOF*/
       10:       10: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
      120:      120: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        3:        3: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        3:        3: 1473:/*EOF*/
        3:        3: 1474:/*EOF*/
        3:        3: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
      120:      120: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
      120:      120: 1485:/*EOF*/
        5:        5: 1486:/*EOF*/
        5:        5: 1487:/*EOF*/
        5:        5: 1488:/*EOF*/
        5:        5: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
      120:      120: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        1:        1: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        1:        1: 1562:/*EOF*/
        1:        1: 1563:/*EOF*/
        1:        1: 1564:/*EOF*/
        1:        1: 1565:/*EOF*/
        1:        1: 1566:/*EOF*/
        1:        1: 1567:/*EOF*/
        1:        1: 1568:/*EOF*/
       11:       11: 1569:/*EOF*/
       20:       20: 1570:/*EOF*/
       10:       10: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        1:        1: 1576:/*EOF*/
        1:        1: 1577:/*EOF*/
        1:        1: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        3:        3: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
       15:       15: 1639:/*EOF*/
       12:       12: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        6:        6: 1643:/*EOF*/
        3:        3: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
       15:       15: 1646:/*EOF*/
       12:       12: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
    #####:    #####: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        3:        3: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        3:        3: 1678:/*EOF*/
        3:        3: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        3:        3: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        3:        3: 1735:/*EOF*/
        3:        3: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
    #####:    #####: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
    #####:    #####: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
    #####:    #####: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        3:        3: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        3:        3: 1843:/*EOF*/
        3:        3: 1844:/*EOF*/
        3:        3: 1845:/*EOF*/
        3:        3: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        5:        5: 1848:/*EOF*/
        4:        4: 1849:/*EOF*/
        2:        2: 1850:/*EOF*/
        3:        3: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
    #####:    #####: 1853:/*EOF*/
    #####:    #####: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
    #####:    #####: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
    #####:    #####: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
    #####:    #####: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        3:        3: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        3:        3: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        3:        3: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
    #####:    #####: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
    #####:    #####: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
    #####:    #####: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
    #####:    #####: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        3:        3: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        3:        3: 2030:/*EOF*/
        3:        3: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
    #####:    #####: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        3:        3: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        3:        3: 2111:/*EOF*/
        3:        3: 2112:/*EOF*/
        3:        3: 2113:/*EOF*/
        3:        3: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        6:        6: 2118:/*EOF*/
        6:        6: 2119:/*EOF*/
        3:        3: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        3:        3: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        3:        3: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        3:        3: 2131:/*EOF*/
        3:        3: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        3:        3: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
    #####:    #####: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        3:        3: 2179:/*EOF*/
        3:        3: 2180:/*EOF*/
        3:        3: 2181:/*EOF*/
        3:        3: 2182:/*EOF*/
        3:        3: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        3:        3: 2187:/*EOF*/
    #####:    #####: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        3:        3: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
    #####:    #####: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        3:        3: 2196:/*EOF*/
        3:        3: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        6:        6: 2201:/*EOF*/
        3:        3: 2202:/*EOF*/
        3:        3: 2203:/*EOF*/
        3:        3: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        3:        3: 2210:/*EOF*/
        3:        3: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        3:        3: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        3:        3: 2216:/*EOF*/
        3:        3: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        3:        3: 2219:/*EOF*/
        3:        3: 2220:/*EOF*/
        3:        3: 2221:/*EOF*/
        3:        3: 2222:/*EOF*/
        3:        3: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        3:        3: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        3:        3: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        3:        3: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        3:        3: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        3:        3: 2240:/*EOF*/
        3:        3: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        6:        6: 2243:/*EOF*/
        3:        3: 2244:/*EOF*/
        3:        3: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        3:        3: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        6:        6: 2261:/*EOF*/
        3:        3: 2262:/*EOF*/
        3:        3: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        3:        3: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        3:        3: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        3:        3: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        3:        3: 2276:/*EOF*/
        3:        3: 2277:/*EOF*/
        3:        3: 2278:/*EOF*/
        3:        3: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        3:        3: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        3:        3: 2285:/*EOF*/
        3:        3: 2286:/*EOF*/
        3:        3: 2287:/*EOF*/
        3:        3: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        3:        3: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        3:        3: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        3:        3: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        3:        3: 2310:/*EOF*/
        3:        3: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        3:        3: 2315:/*EOF*/
        6:        6: 2316:/*EOF*/
        3:        3: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        3:        3: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        3:        3: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        2:        2: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
       14:       14: 2344:/*EOF*/
       12:       12: 2345:/*EOF*/
        9:        9: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        3:        3: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
       14:       14: 2350:/*EOF*/
       11:       11: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
       13:       13: 2353:/*EOF*/
        2:        2: 2354:/*EOF*/
       10:       10: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        4:        4: 2367:/*EOF*/
        3:        3: 2368:/*EOF*/
    #####:    #####: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        1:        1: 2371:/*EOF*/
        7:        7: 2372:/*EOF*/
        6:        6: 2373:/*EOF*/
        4:        4: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
       10:       10: 2376:/*EOF*/
        8:        8: 2377:/*EOF*/
        8:        8: 2378:/*EOF*/
        2:        2: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        7:        7: 2381:/*EOF*/
        1:        1: 2382:/*EOF*/
    #####:    #####: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        1:        1: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
    #####:    #####: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        3:        3: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        2:        2: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        2:        2: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        2:        2: 2425:/*EOF*/
        2:        2: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
    #####:    #####: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
    #####:    #####: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
    #####:    #####: 2440:/*EOF*/
    #####:    #####: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
    #####:    #####: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
    #####:    #####: 2450:/*EOF*/
    #####:    #####: 2451:/*EOF*/
    #####:    #####: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
    #####:    #####: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
    #####:    #####: 2460:/*EOF*/
    #####:    #####: 2461:/*EOF*/
    #####:    #####: 2462:/*EOF*/
    #####:    #####: 2463:/*EOF*/
    #####:    #####: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
    #####:    #####: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        1:        1: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        1:        1: 2487:/*EOF*/
        1:        1: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        1:        1: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        1:        1: 2496:/*EOF*/
        1:        1: 2497:/*EOF*/
        1:        1: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        4:        4: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        4:        4: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        4:        4: 2538:/*EOF*/
        4:        4: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        2:        2: 2541:/*EOF*/
        4:        4: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        4:        4: 2544:/*EOF*/
        4:        4: 2545:/*EOF*/
        1:        1: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        3:        3: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        3:        3: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        3:        3: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        3:        3: 2594:/*EOF*/
        3:        3: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
       14:       14: 2597:/*EOF*/
       11:       11: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
       11:       11: 2600:/*EOF*/
        8:        8: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        3:        3: 2603:/*EOF*/
        2:        2: 2604:/*EOF*/
        2:        2: 2605:/*EOF*/
        2:        2: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
    #####:    #####: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
    #####:    #####: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        1:        1: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        1:        1: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
    #####:    #####: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
    #####:    #####: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
    #####:    #####: 2633:/*EOF*/
    #####:    #####: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
    #####:    #####: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
    #####:    #####: 2645:/*EOF*/
    #####:    #####: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        3:        3: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        3:        3: 2664:/*EOF*/
    #####:    #####: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
    #####:    #####: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
    #####:    #####: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        3:        3: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        3:        3: 2682:/*EOF*/
        2:        2: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
    #####:    #####: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
    #####:    #####: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
    #####:    #####: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
    #####:    #####: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
    #####:    #####: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
    #####:    #####: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
    #####:    #####: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
    #####:    #####: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
    #####:    #####: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
    #####:    #####: 2810:/*EOF*/
    #####:    #####: 2811:/*EOF*/
    #####:    #####: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
    #####:    #####: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
    #####:    #####: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
    #####:    #####: 2822:/*EOF*/
    #####:    #####: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
    #####:    #####: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
    #####:    #####: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
    #####:    #####: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        2:        2: 2860:/*EOF*/
        2:        2: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        2:        2: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        1:        1: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        1:        1: 2873:/*EOF*/
        1:        1: 2874:/*EOF*/
        1:        1: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        3:        3: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        2:        2: 2880:/*EOF*/
        2:        2: 2881:/*EOF*/
        1:        1: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        3:        3: 2894:/*EOF*/
        2:        2: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        1:        1: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        1:        1: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        1:        1: 2904:/*EOF*/
        1:        1: 2905:/*EOF*/
        1:        1: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        2:        2: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        1:        1: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        1:        1: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        1:        1: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
    #####:    #####: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        1:        1: 2929:/*EOF*/
        1:        1: 2930:/*EOF*/
        1:        1: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        1:        1: 2933:/*EOF*/
    #####:    #####: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        1:        1: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        2:        2: 2944:/*EOF*/
        2:        2: 2945:/*EOF*/
        1:        1: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
    #####:    #####: 2949:/*EOF*/
    #####:    #####: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        1:        1: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        1:        1: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        2:        2: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        1:        1: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        4:        4: 2971:/*EOF*/
        3:        3: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        3:        3: 2974:/*EOF*/
        2:        2: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        2:        2: 2977:/*EOF*/
        1:        1: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
    #####:    #####: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        6:        6: 2986:/*EOF*/
        5:        5: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        5:        5: 2989:/*EOF*/
        4:        4: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        1:        1: 2992:/*EOF*/
        1:        1: 2993:/*EOF*/
        1:        1: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
    #####:    #####: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        1:        1: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        2:        2: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        2:        2: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        2:        2: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
       10:       10: 3025:/*EOF*/
        8:        8: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        8:        8: 3028:/*EOF*/
        6:        6: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        2:        2: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
    #####:    #####: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
    #####:    #####: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
    #####:    #####: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        2:        2: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        2:        2: 3063:/*EOF*/
        2:        2: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
       14:       14: 3066:/*EOF*/
       12:       12: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
       12:       12: 3069:/*EOF*/
        9:        9: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        6:        6: 3072:/*EOF*/
        3:        3: 3073:/*EOF*/
    #####:    #####: 3074:/*EOF*/
    #####:    #####: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        6:        6: 3078:/*EOF*/
        3:        3: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
    #####:    #####: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        6:        6: 3093:/*EOF*/
        3:        3: 3094:/*EOF*/
    #####:    #####: 3095:/*EOF*/
    #####:    #####: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
    #####:    #####: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        3:        3: 3106:/*EOF*/
        3:        3: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        3:        3: 3110:/*EOF*/
        3:        3: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
    #####:    #####: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        3:        3: 3118:/*EOF*/
        3:        3: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        2:        2: 3126:/*EOF*/
    #####:    #####: 3127:/*EOF*/
    #####:    #####: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        2:        2: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        2:        2: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
    #####:    #####: 3141:/*EOF*/
    #####:    #####: 3142:/*EOF*/
    #####:    #####: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        2:        2: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
    #####:    #####: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        2:        2: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        2:        2: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        2:        2: 3161:/*EOF*/
        8:        8: 3162:/*EOF*/
        3:        3: 3163:/*EOF*/
        3:        3: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        3:        3: 3166:/*EOF*/
    #####:    #####: 3167:/*EOF*/
    #####:    #####: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
    #####:    #####: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
    #####:    #####: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
    #####:    #####: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
    #####:    #####: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        2:        2: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        2:        2: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        2:        2: 3197:/*EOF*/
        8:        8: 3198:/*EOF*/
        3:        3: 3199:/*EOF*/
        3:        3: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        3:        3: 3202:/*EOF*/
    #####:    #####: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        2:        2: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        2:        2: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        2:        2: 3214:/*EOF*/
        2:        2: 3215:/*EOF*/
        2:        2: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        2:        2: 3218:/*EOF*/
        2:        2: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
    #####:    #####: 3224:/*EOF*/
    #####:    #####: 3225:/*EOF*/
    #####:    #####: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
    #####:    #####: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
    #####:    #####: 3236:/*EOF*/
    #####:    #####: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
    #####:    #####: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
    #####:    #####: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
    #####:    #####: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
    #####:    #####: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
    #####:    #####: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
    #####:    #####: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
    #####:    #####: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
    #####:    #####: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
    #####:    #####: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
    #####:    #####: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
    #####:    #####: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
    #####:    #####: 3330:/*EOF*/
    #####:    #####: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
    #####:    #####: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
    #####:    #####: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
    #####:    #####: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
    #####:    #####: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
    #####:    #####: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
    #####:    #####: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        2:        2: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        2:        2: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        2:        2: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        2:        2: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        2:        2: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        2:        2: 3402:/*EOF*/
        2:        2: 3403:/*EOF*/
        8:        8: 3404:/*EOF*/
        3:        3: 3405:/*EOF*/
        3:        3: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
      112:      112: 3408:/*EOF*/
      109:      109: 3409:/*EOF*/
      109:      109: 3410:/*EOF*/
       47:       47: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
       62:       62: 3413:/*EOF*/
    #####:    #####: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
    #####:    #####: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
    #####:    #####: 3425:/*EOF*/
    #####:    #####: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        2:        2: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        2:        2: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
    #####:    #####: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        2:        2: 3451:/*EOF*/
        2:        2: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        2:        2: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        2:        2: 3459:/*EOF*/
        2:        2: 3460:/*EOF*/
        2:        2: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        2:        2: 3466:/*EOF*/
        2:        2: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
    #####:    #####: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
    #####:    #####: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
    #####:    #####: 3487:/*EOF*/
    #####:    #####: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
    #####:    #####: 3492:/*EOF*/
    #####:    #####: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
    #####:    #####: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
    #####:    #####: 3517:/*EOF*/
    #####:    #####: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
    #####:    #####: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        6:        6: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        6:        6: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        6:        6: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        6:        6: 3541:/*EOF*/
        6:        6: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        6:        6: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        6:        6: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
    #####:    #####: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        6:        6: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        6:        6: 3555:/*EOF*/
        6:        6: 3556:/*EOF*/
        6:        6: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        6:        6: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        6:        6: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        6:        6: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
       11:       11: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
       11:       11: 3575:/*EOF*/
       11:       11: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
    #####:    #####: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
    #####:    #####: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        2:        2: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        2:        2: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
       14:       14: 3609:/*EOF*/
       12:       12: 3610:/*EOF*/
       12:       12: 3611:/*EOF*/
        8:        8: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
       15:       15: 3617:/*EOF*/
       13:       13: 3618:/*EOF*/
       13:       13: 3619:/*EOF*/
       11:       11: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
       11:       11: 3622:/*EOF*/
    #####:    #####: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
       11:       11: 3630:/*EOF*/
        8:        8: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        3:        3: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        2:        2: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
    #####:    #####: 3639:/*EOF*/
        2:        2: 3640:/*EOF*/
        2:        2: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        2:        2: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        4:        4: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        4:        4: 3661:/*EOF*/
        4:        4: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        4:        4: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
        6:        6: 3671:/*EOF*/
        6:        6: 3672:/*EOF*/
        4:        4: 3673:/*EOF*/
    #####:    #####: 3674:/*EOF*/
    #####:    #####: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        6:        6: 3677:/*EOF*/
        6:        6: 3678:/*EOF*/
        4:        4: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        4:        4: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        4:        4: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
       12:       12: 3705:/*EOF*/
        8:        8: 3706:/*EOF*/
        2:        2: 3707:/*EOF*/
        3:        3: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        1:        1: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        4:        4: 3713:/*EOF*/
        4:        4: 3714:/*EOF*/
        4:        4: 3715:/*EOF*/
        4:        4: 3716:/*EOF*/
        4:        4: 3717:/*EOF*/
        4:        4: 3718:/*EOF*/
        4:        4: 3719:/*EOF*/
        4:        4: 3720:/*EOF*/
        4:        4: 3721:/*EOF*/
        4:        4: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        4:        4: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        4:        4: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        4:        4: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        4:        4: 3739:/*EOF*/
        4:        4: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
    #####:    #####: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
    #####:    #####: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        4:        4: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
    #####:    #####: 3789:/*EOF*/
    #####:    #####: 3790:/*EOF*/
    #####:    #####: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
    #####:    #####: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
    #####:    #####: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        4:        4: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        4:        4: 3815:/*EOF*/
        4:        4: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        4:        4: 3819:/*EOF*/
        4:        4: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        4:        4: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        4:        4: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
       18:       18: 3833:/*EOF*/
       14:       14: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
       14:       14: 3836:/*EOF*/
        4:        4: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
       10:       10: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        4:        4: 3844:/*EOF*/
        2:        2: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        2:        2: 3847:/*EOF*/
        2:        2: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        4:        4: 3850:/*EOF*/
        2:        2: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        2:        2: 3853:/*EOF*/
        2:        2: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        2:        2: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        4:        4: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        4:        4: 3865:/*EOF*/
    #####:    #####: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        4:        4: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        7:        7: 3875:/*EOF*/
        7:        7: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        8:        8: 3878:/*EOF*/
        4:        4: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
        4:        4: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        4:        4: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        2:        2: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        2:        2: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        2:        2: 3896:/*EOF*/
        2:        2: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
    #####:    #####: 3899:/*EOF*/
    #####:    #####: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
    #####:    #####: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
    #####:    #####: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
    #####:    #####: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        2:        2: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        2:        2: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        2:        2: 3934:/*EOF*/
        2:        2: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
    #####:    #####: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
    #####:    #####: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
    #####:    #####: 3955:/*EOF*/
    #####:    #####: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
    #####:    #####: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
    #####:    #####: 3973:/*EOF*/
    #####:    #####: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
    #####:    #####: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
    #####:    #####: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
    #####:    #####: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
    #####:    #####: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
    #####:    #####: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
    #####:    #####: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
    #####:    #####: 4029:/*EOF*/
    #####:    #####: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
    #####:    #####: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
    #####:    #####: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
    #####:    #####: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
    #####:    #####: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
    #####:    #####: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
    #####:    #####: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
    #####:    #####: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
    #####:    #####: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
    #####:    #####: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
    #####:    #####: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
    #####:    #####: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
    #####:    #####: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        2:        2: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        2:        2: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        2:        2: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
       14:       14: 4183:/*EOF*/
       12:       12: 4184:/*EOF*/
        9:        9: 4185:/*EOF*/
        3:        3: 4186:/*EOF*/
        2:        2: 4187:/*EOF*/
        3:        3: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        2:        2: 4192:/*EOF*/
    #####:    #####: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        2:        2: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        2:        2: 4200:/*EOF*/
        1:        1: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
    #####:    #####: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        1:        1: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        2:        2: 4210:/*EOF*/
    #####:    #####: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        2:        2: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        2:        2: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
    #####:    #####: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        2:        2: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        1:        1: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        1:        1: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
    #####:    #####: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
    #####:    #####: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        5:        5: 4237:/*EOF*/
        4:        4: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        4:        4: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        2:        2: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        2:        2: 4255:/*EOF*/
        2:        2: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        2:        2: 4260:/*EOF*/
        2:        2: 4261:/*EOF*/
        2:        2: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
    #####:    #####: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        2:        2: 4268:/*EOF*/
        2:        2: 4269:/*EOF*/
        2:        2: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        2:        2: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        4:        4: 4278:/*EOF*/
        2:        2: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        2:        2: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
    #####:    #####: 4286:/*EOF*/
    #####:    #####: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        2:        2: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        2:        2: 4298:/*EOF*/
    #####:    #####: 4299:/*EOF*/
    #####:    #####: 4300:/*EOF*/
    #####:    #####: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        4:        4: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        2:        2: 4306:/*EOF*/
        2:        2: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
    #####:    #####: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
    #####:    #####: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
    #####:    #####: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
    #####:    #####: 4317:/*EOF*/
    #####:    #####: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        2:        2: 4322:/*EOF*/
        8:        8: 4323:/*EOF*/
        3:        3: 4324:/*EOF*/
        3:        3: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        3:        3: 4327:/*EOF*/
        3:        3: 4328:/*EOF*/
    #####:    #####: 4329:/*EOF*/
    #####:    #####: 4330:/*EOF*/
    #####:    #####: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        2:        2: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        1:        1: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        1:        1: 4347:/*EOF*/
        7:        7: 4348:/*EOF*/
        6:        6: 4349:/*EOF*/
        5:        5: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        1:        1: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        1:        1: 4356:/*EOF*/
        1:        1: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
    #####:    #####: 4363:/*EOF*/
    #####:    #####: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        1:        1: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        2:        2: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        2:        2: 4377:/*EOF*/
        8:        8: 4378:/*EOF*/
        3:        3: 4379:/*EOF*/
        3:        3: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
        3:        3: 4382:/*EOF*/
      112:      112: 4383:/*EOF*/
      109:      109: 4384:/*EOF*/
      109:      109: 4385:/*EOF*/
      105:      105: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        4:        4: 4388:/*EOF*/
    #####:    #####: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        4:        4: 4391:/*EOF*/
        4:        4: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
    #####:    #####: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
    #####:    #####: 4403:/*EOF*/
    #####:    #####: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
    #####:    #####: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
    #####:    #####: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
    #####:    #####: 4420:/*EOF*/
    #####:    #####: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
    #####:    #####: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
    #####:    #####: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
    #####:    #####: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        1:        1: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        1:        1: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
       66:       66: 4442:/*EOF*/
       65:       65: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
       65:       65: 4445:/*EOF*/
       58:       58: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        7:        7: 4449:/*EOF*/
        7:        7: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
    #####:    #####: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        1:        1: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        1:        1: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        1:        1: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        1:        1: 4467:/*EOF*/
        1:        1: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        6:        6: 4471:/*EOF*/
        5:        5: 4472:/*EOF*/
        4:        4: 4473:/*EOF*/
        1:        1: 4474:/*EOF*/
        1:        1: 4475:/*EOF*/
        1:        1: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        1:        1: 4479:/*EOF*/
    #####:    #####: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        7:        7: 4482:/*EOF*/
        6:        6: 4483:/*EOF*/
        6:        6: 4484:/*EOF*/
        5:        5: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        1:        1: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        1:        1: 4491:/*EOF*/
        1:        1: 4492:/*EOF*/
        1:        1: 4493:/*EOF*/
    #####:    #####: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
    #####:    #####: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        2:        2: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        2:        2: 4512:/*EOF*/
        2:        2: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        2:        2: 4515:/*EOF*/
        2:        2: 4516:/*EOF*/
        2:        2: 4517:/*EOF*/
        2:        2: 4518:/*EOF*/
        2:        2: 4519:/*EOF*/
        2:        2: 4520:/*EOF*/
        2:        2: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        2:        2: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        2:        2: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
       12:       12: 4531:/*EOF*/
       10:       10: 4532:/*EOF*/
        3:        3: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        2:        2: 4537:/*EOF*/
        6:        6: 4538:/*EOF*/
        4:        4: 4539:/*EOF*/
        3:        3: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        1:        1: 4542:/*EOF*/
        1:        1: 4543:/*EOF*/
        1:        1: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        2:        2: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
    #####:    #####: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        2:        2: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
    #####:    #####: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        2:        2: 4557:/*EOF*/
        9:        9: 4558:/*EOF*/
        8:        8: 4559:/*EOF*/
        7:        7: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        1:        1: 4562:/*EOF*/
        1:        1: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        2:        2: 4566:/*EOF*/
    #####:    #####: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        2:        2: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        2:        2: 4571:/*EOF*/
    #####:    #####: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
       14:       14: 4574:/*EOF*/
       12:       12: 4575:/*EOF*/
        9:        9: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        3:        3: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        3:        3: 4581:/*EOF*/
        3:        3: 4582:/*EOF*/
        6:        6: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        3:        3: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
    #####:    #####: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        3:        3: 4589:/*EOF*/
        3:        3: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        2:        2: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        3:        3: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        3:        3: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
    #####:    #####: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        7:        7: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        7:        7: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        3:        3: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        2:        2: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        2:        2: 4617:/*EOF*/
        2:        2: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        2:        2: 4633:/*EOF*/
    #####:    #####: 4634:/*EOF*/
    #####:    #####: 4635:/*EOF*/
    #####:    #####: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        2:        2: 4641:/*EOF*/
        2:        2: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
    #####:    #####: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
    #####:    #####: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        2:        2: 4649:/*EOF*/
    #####:    #####: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        2:        2: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        2:        2: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
       14:       14: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
       12:       12: 4664:/*EOF*/
       12:       12: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        2:        2: 4668:/*EOF*/
        2:        2: 4669:/*EOF*/
        5:        5: 4670:/*EOF*/
        3:        3: 4671:/*EOF*/
        3:        3: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        3:        3: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
    #####:    #####: 4676:/*EOF*/
    #####:    #####: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        3:        3: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        3:        3: 4684:/*EOF*/
        3:        3: 4685:/*EOF*/
        3:        3: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        2:        2: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
    #####:    #####: 4694:/*EOF*/
    #####:    #####: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        2:        2: 4698:/*EOF*/
        2:        2: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        2:        2: 4703:/*EOF*/
        1:        1: 4704:/*EOF*/
    #####:    #####: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
    #####:    #####: 4707:/*EOF*/
    #####:    #####: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        1:        1: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
    #####:    #####: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        1:        1: 4716:/*EOF*/
    #####:    #####: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
    #####:    #####: 4719:/*EOF*/
    #####:    #####: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        1:        1: 4747:/*EOF*/
    #####:    #####: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
    #####:    #####: 4750:/*EOF*/
    #####:    #####: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        1:        1: 4754:/*EOF*/
    #####:    #####: 4755:/*EOF*/
    #####:    #####: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
    #####:    #####: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        2:        2: 4766:/*EOF*/
    #####:    #####: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
    #####:    #####: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
       14:       14: 4774:/*EOF*/
       12:       12: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        3:        3: 4777:/*EOF*/
        3:        3: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        3:        3: 4780:/*EOF*/
    #####:    #####: 4781:/*EOF*/
    #####:    #####: 4782:/*EOF*/
    #####:    #####: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        3:        3: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        1:        1: 4788:/*EOF*/
        1:        1: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
    #####:    #####: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
    #####:    #####: 4794:/*EOF*/
    #####:    #####: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
    #####:    #####: 4797:/*EOF*/
    #####:    #####: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        2:        2: 4800:/*EOF*/
        2:        2: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        3:        3: 4803:/*EOF*/
    #####:    #####: 4804:/*EOF*/
    #####:    #####: 4805:/*EOF*/
    #####:    #####: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        3:        3: 4809:/*EOF*/
        3:        3: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        2:        2: 4818:/*EOF*/
        2:        2: 4819:/*EOF*/
    #####:    #####: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        2:        2: 4824:/*EOF*/
        2:        2: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
       14:       14: 4828:/*EOF*/
       12:       12: 4829:/*EOF*/
        9:        9: 4830:/*EOF*/
        3:        3: 4831:/*EOF*/
        2:        2: 4832:/*EOF*/
        3:        3: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        2:        2: 4836:/*EOF*/
        2:        2: 4837:/*EOF*/
        2:        2: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        2:        2: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        2:        2: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        2:        2: 4849:/*EOF*/
        6:        6: 4850:/*EOF*/
        4:        4: 4851:/*EOF*/
        3:        3: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        1:        1: 4854:/*EOF*/
        2:        2: 4855:/*EOF*/
        1:        1: 4856:/*EOF*/
    #####:    #####: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        1:        1: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        1:        1: 4861:/*EOF*/
        1:        1: 4862:/*EOF*/
    #####:    #####: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        1:        1: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        2:        2: 4869:/*EOF*/
        2:        2: 4870:/*EOF*/
    #####:    #####: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
       14:       14: 4873:/*EOF*/
       12:       12: 4874:/*EOF*/
        3:        3: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        2:        2: 4884:/*EOF*/
        1:        1: 4885:/*EOF*/
        1:        1: 4886:/*EOF*/
        1:        1: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        2:        2: 4891:/*EOF*/
        1:        1: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        2:        2: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        2:        2: 4896:/*EOF*/
    #####:    #####: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        2:        2: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
       14:       14: 4908:/*EOF*/
       12:       12: 4909:/*EOF*/
        9:        9: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        3:        3: 4912:/*EOF*/
        3:        3: 4913:/*EOF*/
    #####:    #####: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        3:        3: 4916:/*EOF*/
    #####:    #####: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        3:        3: 4920:/*EOF*/
    #####:    #####: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        3:        3: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        3:        3: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        3:        3: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        3:        3: 4940:/*EOF*/
        1:        1: 4941:/*EOF*/
        1:        1: 4942:/*EOF*/
    #####:    #####: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        2:        2: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        2:        2: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        2:        2: 4951:/*EOF*/
    #####:    #####: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        2:        2: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
    #####:    #####: 4984:/*EOF*/
    #####:    #####: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
       14:       14: 4990:/*EOF*/
       12:       12: 4991:/*EOF*/
       12:       12: 4992:/*EOF*/
        9:        9: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        3:        3: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        3:        3: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        3:        3: 5008:/*EOF*/
        3:        3: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        2:        2: 5012:/*EOF*/

        -:        -:    0:Source:glsl/link_functions.cpp
        -:        -:    0:Graph:.libs/link_functions.gcno
        -:        -:    0:Data:.libs/link_functions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        3:        3:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        6:        6:   55:/*EOF*/
        3:        3:   56:/*EOF*/
        3:        3:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      120:      120:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      120:      120:   61:/*EOF*/
      120:      120:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        2:        2:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        2:        2:   73:/*EOF*/
        2:        2:   74:/*EOF*/
        2:        2:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        2:        2:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        2:        2:   85:/*EOF*/
        2:        2:   86:/*EOF*/
        2:        2:   87:/*EOF*/
        2:        2:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        2:        2:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        2:        2:  197:/*EOF*/
        2:        2:  198:/*EOF*/
        2:        2:  199:/*EOF*/
       10:       10:  200:/*EOF*/
        4:        4:  201:/*EOF*/
        4:        4:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        4:        4:  204:/*EOF*/
        4:        4:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        4:        4:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        2:        2:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
       85:       87:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       85:       87:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       85:       87:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        2:        2:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        2:        2:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        2:        2:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        2:        2:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        2:        2:  325:/*EOF*/
        2:        2:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        3:        3:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        6:        6:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        3:        3:  339:/*EOF*/
        6:        6:  340:/*EOF*/

        -:        -:    0:Source:glsl/link_uniform_block_active_visitor.cpp
        -:        -:    0:Graph:.libs/link_uniform_block_active_visitor.gcno
        -:        -:    0:Data:.libs/link_uniform_block_active_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    #####:    #####:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      120:      120:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      120:      120:  158:/*EOF*/
      120:      120:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       16:       16:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       16:       16:  216:/*EOF*/
       16:       16:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       16:       16:  221:/*EOF*/
       16:       16:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       16:       16:  232:/*EOF*/
       16:       16:  233:/*EOF*/
       16:       16:  234:/*EOF*/
       16:       16:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       85:       87:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       85:       87:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       85:       87:  270:/*EOF*/
       85:       87:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/

src/compiler/glsl/lower_const_arrays_to_uniforms.cpp.gcov

        -:        -:    0:Source:glsl/lower_const_arrays_to_uniforms.cpp
        -:        -:    0:Graph:.libs/lower_const_arrays_to_uniforms.gcno
        -:        -:    0:Data:.libs/lower_const_arrays_to_uniforms.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        3:        3:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        3:        3:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        3:        3:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      185:      195:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      185:      195:   81:/*EOF*/
       42:       42:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      143:      153:   84:/*EOF*/
      143:      153:   85:/*EOF*/
      143:      153:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        3:        3:  122:/*EOF*/
        3:        3:  123:/*EOF*/

src/compiler/glsl/lower_discard_flow.cpp.gcov

        -:        -:    0:Source:glsl/lower_discard_flow.cpp
        -:        -:    0:Graph:.libs/lower_discard_flow.gcno
        -:        -:    0:Data:.libs/lower_discard_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        1:        1:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        1:        1:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        1:        1:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        5:        8:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        5:        8:   80:/*EOF*/
        5:        8:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        2:        3:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        2:        3:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        2:        3:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        2:        2:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        2:        2:  117:/*EOF*/
        1:        1:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        1:        1:  120:/*EOF*/
        1:        1:  121:/*EOF*/
        1:        1:  122:/*EOF*/
        1:        1:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        1:        1:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        2:        3:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        2:        3:  131:/*EOF*/
        2:        3:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        2:        3:  134:/*EOF*/
        2:        3:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        2:        3:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        1:        1:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        1:        1:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        1:        1:  153:/*EOF*/
        1:        1:  154:/*EOF*/

src/compiler/glsl/lower_instructions.cpp.gcov

        -:        -:    0:Source:glsl/lower_instructions.cpp
        -:        -:    0:Graph:.libs/lower_instructions.gcno
        -:        -:    0:Data:.libs/lower_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       21:       21:  133:/*EOF*/
       21:       21:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       21:       21:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       21:       21:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       21:       21:  188:/*EOF*/
       21:       21:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        1:        1:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        1:        1:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        1:        1:  209:/*EOF*/
        2:        2:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        1:        1:  213:/*EOF*/
        1:        1:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        1:        1:  216:/*EOF*/
        1:        1:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
        -:        -:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
    #####:    #####: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
    #####:    #####: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
      285:      302: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
      285:      302: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        7:        7: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
       14:       14: 1613:/*EOF*/
        6:        6: 1614:/*EOF*/
        1:        1: 1615:/*EOF*/
        7:        7: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
    #####:    #####: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
       46:       46: 1629:/*EOF*/
    #####:    #####: 1630:/*EOF*/
       46:       46: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
    #####:    #####: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
       10:       10: 1681:/*EOF*/
    #####:    #####: 1682:/*EOF*/
       10:       10: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
    #####:    #####: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
    #####:    #####: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
      222:      239: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       63:       63: 1740:/*EOF*/

src/compiler/glsl/lower_jumps.cpp.gcov

        -:        -:    0:Source:glsl/lower_jumps.cpp
        -:        -:    0:Graph:.libs/lower_jumps.gcno
        -:        -:    0:Data:.libs/lower_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      486:      638:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      486:      638:  156:/*EOF*/
      486:      638:  157:/*EOF*/
      486:      638:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       67:       83:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       67:       83:  177:/*EOF*/
       67:       83:  178:/*EOF*/
       67:       83:  179:/*EOF*/
       67:       83:  180:/*EOF*/
       67:       83:  181:/*EOF*/
       67:       83:  182:/*EOF*/
       67:       83:  183:/*EOF*/
       67:       83:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        2:        2:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        2:        2:  189:/*EOF*/
        1:        1:  190:/*EOF*/
        1:        1:  191:/*EOF*/
        1:        1:  192:/*EOF*/
        1:        1:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        2:        2:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       41:       41:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       41:       41:  221:/*EOF*/
       41:       41:  222:/*EOF*/
       41:       41:  223:/*EOF*/
       41:       41:  224:/*EOF*/
       41:       41:  225:/*EOF*/
       41:       41:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        3:        3:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        3:        3:  230:/*EOF*/
        1:        1:  231:/*EOF*/
        1:        1:  232:/*EOF*/
        1:        1:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        3:        3:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        3:        3:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        3:        3:  240:/*EOF*/
        1:        1:  241:/*EOF*/
        1:        1:  242:/*EOF*/
        1:        1:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        3:        3:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       18:       18:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       18:       18:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
       18:       18:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       18:       18:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       51:       85:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       51:       85:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       51:       85:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        2:        2:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        3:        3:  306:/*EOF*/
        1:        1:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        1:        1:  309:/*EOF*/
        1:        1:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        1:        1:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        3:        3:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        3:        3:  320:/*EOF*/
        3:        3:  321:/*EOF*/
        3:        3:  322:/*EOF*/
        3:        3:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        3:        3:  325:/*EOF*/
        9:        9:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        3:        3:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        3:        3:  330:/*EOF*/
        9:        9:  331:/*EOF*/
        3:        3:  332:/*EOF*/
        3:        3:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        4:        8:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        4:        8:  344:/*EOF*/
        4:        8:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       44:       78:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       44:       78:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       44:       78:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       44:       78:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        6:        6:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        6:        6:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        6:        6:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        6:        6:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
      417:      573:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      417:      573:  453:/*EOF*/
      155:      189:  454:/*EOF*/
      262:      384:  455:/*EOF*/
      134:      236:  456:/*EOF*/
      134:      236:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
      128:      148:  460:/*EOF*/
       11:       11:  461:/*EOF*/
        -:        -:  462:/*EOF*/
      117:      137:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
      204:      272:  466:/*EOF*/
        -:        -:  467:/*EOF*/
      204:      272:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      204:      272:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
      155:      189:  473:/*EOF*/
      155:      189:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       45:       79:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       48:       98:  481:/*EOF*/
       45:       79:  482:/*EOF*/
        3:       19:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       42:       60:  485:/*EOF*/
       45:       79:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        4:        4:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        4:        4:  492:/*EOF*/
        4:        4:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      204:      272:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      270:      354:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
      270:      354:  509:/*EOF*/
      270:      354:  510:/*EOF*/
     1126:     1294:  511:/*EOF*/
      856:      940:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      270:      354:  514:/*EOF*/
      270:      354:  515:/*EOF*/
      270:      354:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       99:      133:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       99:      133:  521:/*EOF*/
        4:       20:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       99:      133:  524:/*EOF*/
       99:      133:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       99:      133:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
       99:      133:  535:/*EOF*/
       99:      133:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      297:      399:  543:/*EOF*/
      198:      266:  544:/*EOF*/
      198:      266:  545:/*EOF*/
      198:      266:  546:/*EOF*/
       47:       81:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        3:        3:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      306:      408:  560:/*EOF*/
      204:      272:  561:/*EOF*/
       49:       83:  562:/*EOF*/
       49:       83:  563:/*EOF*/
        -:        -:  564:/*EOF*/
      155:      189:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
      102:      136:  574:/*EOF*/
       55:       55:  575:/*EOF*/
       55:       55:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
       55:       55:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
       55:       55:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       55:       55:  584:/*EOF*/
        -:        -:  585:/*EOF*/
       55:       55:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
       99:      133:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
      306:      408:  612:/*EOF*/
      204:      272:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
      102:      136:  616:/*EOF*/
        1:        1:  617:/*EOF*/
      101:      135:  618:/*EOF*/
        1:        1:  619:/*EOF*/
      100:      134:  620:/*EOF*/
        1:        1:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       99:      133:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        3:        3:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        3:        3:  635:/*EOF*/
        3:        3:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        1:        1:  641:/*EOF*/
        1:        1:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        1:        1:  647:/*EOF*/
        1:        1:  648:/*EOF*/
        1:        1:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        2:        2:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        1:        1:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        2:        2:  683:/*EOF*/
        2:        2:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        2:        2:  689:/*EOF*/
        2:        2:  690:/*EOF*/
        2:        2:  691:/*EOF*/
        2:        2:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
       99:      133:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
       99:      133:  708:/*EOF*/
       99:      133:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
       99:      133:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       99:      133:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
       99:      133:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
       99:      133:  735:/*EOF*/
       99:      133:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
       99:      133:  745:/*EOF*/
        1:        1:  746:/*EOF*/
       98:      132:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
       99:      133:  831:/*EOF*/
       99:      133:  832:/*EOF*/
       99:      133:  833:/*EOF*/
        -:        -:  834:/*EOF*/
       26:       42:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       26:       42:  854:/*EOF*/
       26:       42:  855:/*EOF*/
       26:       42:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
       26:       42:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
       26:       42:  869:/*EOF*/
       26:       42:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
       26:       42:  877:/*EOF*/
        4:        8:  878:/*EOF*/
        -:        -:  879:/*EOF*/
       26:       42:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       26:       42:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
       26:       42:  918:/*EOF*/
        1:        2:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        1:        2:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        1:        2:  927:/*EOF*/
        1:        2:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:        1:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        1:        1:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        1:        1:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        1:        1:  949:/*EOF*/
        1:        1:  950:/*EOF*/
        1:        1:  951:/*EOF*/
        2:        2:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        1:        2:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
       26:       42:  959:/*EOF*/
       26:       42:  960:/*EOF*/
       26:       42:  961:/*EOF*/
        -:        -:  962:/*EOF*/
       23:       23:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
       23:       23:  966:/*EOF*/
       23:       23:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
       23:       23:  970:/*EOF*/
       19:       19:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        4:        4:  973:/*EOF*/
        -:        -:  974:/*EOF*/
       23:       23:  975:/*EOF*/
       23:       23:  976:/*EOF*/
       23:       23:  977:/*EOF*/
       23:       23:  978:/*EOF*/
        -:        -:  979:/*EOF*/
       23:       23:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
       23:       23:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
       42:       42:  995:/*EOF*/
       19:       19:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
       23:       23: 1002:/*EOF*/
        1:        1: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
       23:       23: 1005:/*EOF*/
       23:       23: 1006:/*EOF*/
       23:       23: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
       23:       23: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
       23:       23: 1011:/*EOF*/
       23:       23: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       18:       18: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       36:       36: 1020:/*EOF*/
       18:       18: 1021:/*EOF*/
       18:       18: 1022:/*EOF*/
       18:       18: 1023:/*EOF*/
       18:       18: 1024:/*EOF*/
       18:       18: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
       18:       18: 1027:/*EOF*/
        1:        1: 1028:/*EOF*/
       19:       19: 1029:/*EOF*/
       19:       19: 1030:/*EOF*/
       19:       19: 1031:/*EOF*/
       19:       19: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       36:       36: 1034:/*EOF*/

src/compiler/glsl/lower_mat_op_to_vec.cpp.gcov

        -:        -:    0:Source:glsl/lower_mat_op_to_vec.cpp
        -:        -:    0:Graph:.libs/lower_mat_op_to_vec.gcno
        -:        -:    0:Data:.libs/lower_mat_op_to_vec.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        3:        3:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      144:      154:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      144:      154:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      144:      154:   76:/*EOF*/
      114:      122:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       86:       92:   79:/*EOF*/
       56:       60:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       30:       32:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        3:        3:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       13:       13:  295:/*EOF*/
        -:        -:  296:/*EOF*/
       39:       39:  297:/*EOF*/
       26:       26:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       13:       13:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       42:       42:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       42:       42:  311:/*EOF*/
       42:       42:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       42:       42:  315:/*EOF*/
       29:       29:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       13:       13:  318:/*EOF*/
       13:       13:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/

src/compiler/glsl/lower_named_interface_blocks.cpp.gcov

        -:        -:    0:Source:glsl/lower_named_interface_blocks.cpp
        -:        -:    0:Graph:.libs/lower_named_interface_blocks.gcno
        -:        -:    0:Data:.libs/lower_named_interface_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        3:        3:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        3:        3:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        3:        3:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        3:        3:  126:/*EOF*/
        3:        3:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      112:      112:  135:/*EOF*/
      109:      109:  136:/*EOF*/
      109:      109:  137:/*EOF*/
      109:      109:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        3:        3:  211:/*EOF*/
        3:        3:  212:/*EOF*/
        3:        3:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       32:       32:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       32:       32:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       32:       32:  221:/*EOF*/
       32:       32:  222:/*EOF*/
        1:        1:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       32:       32:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       32:       32:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      147:      152:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      147:      152:  244:/*EOF*/
       32:       32:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      115:      120:  247:/*EOF*/
      115:      120:  248:/*EOF*/
      115:      120:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        3:        3:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        3:        3:  295:/*EOF*/
        3:        3:  296:/*EOF*/
        3:        3:  297:/*EOF*/

src/compiler/glsl/lower_noise.cpp.gcov

        -:        -:    0:Source:glsl/lower_noise.cpp
        -:        -:    0:Graph:.libs/lower_noise.gcno
        -:        -:    0:Data:.libs/lower_noise.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        3:        3:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      285:      295:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      285:      295:   43:/*EOF*/
       61:       61:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      224:      234:   46:/*EOF*/
      224:      234:   47:/*EOF*/
      190:      198:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       34:       36:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        3:        3:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        3:        3:   70:/*EOF*/

src/compiler/glsl/lower_offset_array.cpp.gcov

        -:        -:    0:Source:glsl/lower_offset_array.cpp
        -:        -:    0:Graph:.libs/lower_offset_array.gcno
        -:        -:    0:Data:.libs/lower_offset_array.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      285:      295:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      285:      295:   57:/*EOF*/
      285:      295:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        3:        3:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/

src/compiler/glsl/lower_packing_builtins.cpp.gcov

        -:        -:    0:Source:glsl/lower_packing_builtins.cpp
        -:        -:    0:Graph:.libs/lower_packing_builtins.gcno
        -:        -:    0:Data:.libs/lower_packing_builtins.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        3:        3:   49:/*EOF*/
        6:        6:   50:/*EOF*/
        3:        3:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      186:      196:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      186:      196:   58:/*EOF*/
       42:       42:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      144:      154:   61:/*EOF*/
      144:      154:   62:/*EOF*/
      114:      122:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       30:       32:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       30:       32:   68:/*EOF*/
       30:       32:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       30:       32:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       30:       32:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       30:       32:  169:/*EOF*/
       30:       32:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       30:       32:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
        -:        -:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        3:        3: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        6:        6: 1308:/*EOF*/
        3:        3: 1309:/*EOF*/
        6:        6: 1310:/*EOF*/

src/compiler/glsl/lower_ubo_reference.cpp.gcov

        -:        -:    0:Source:glsl/lower_ubo_reference.cpp
        -:        -:    0:Graph:.libs/lower_ubo_reference.gcno
        -:        -:    0:Data:.libs/lower_ubo_reference.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        3:        3:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      185:      195:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      185:      195:  330:/*EOF*/
      227:      237:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      143:      153:  333:/*EOF*/
      143:      153:  334:/*EOF*/
       65:       71:  335:/*EOF*/
        -:        -:  336:/*EOF*/
       78:       82:  337:/*EOF*/
       78:       82:  338:/*EOF*/
       78:       82:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       26:       28:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       26:       28:  591:/*EOF*/
       26:       28:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
       18:       18:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       18:       18:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       18:       18:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
       26:       28:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       26:       28:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
       73:       79:  629:/*EOF*/
       47:       51:  630:/*EOF*/
       42:       46:  631:/*EOF*/
        5:        5:  632:/*EOF*/
        5:        5:  633:/*EOF*/
        5:        5:  634:/*EOF*/
        5:        5:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       42:       42:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       42:       42:  645:/*EOF*/
       29:       29:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       13:       13:  648:/*EOF*/
       13:       13:  649:/*EOF*/
       13:       13:  650:/*EOF*/
       13:       13:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
       42:       42:  775:/*EOF*/
        -:        -:  776:/*EOF*/
       42:       42:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
       42:       42:  780:/*EOF*/
       42:       42:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       42:       42:  784:/*EOF*/
       42:       42:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
       42:       42:  788:/*EOF*/
       42:       42:  789:/*EOF*/
       42:       42:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
        -:        -:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       42:       42:  817:/*EOF*/
        -:        -:  818:/*EOF*/
       42:       42:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       42:       42:  825:/*EOF*/
       42:       42:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
       42:       42:  867:/*EOF*/
        -:        -:  868:/*EOF*/
       42:       42:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
       42:       42:  873:/*EOF*/
       42:       42:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
       42:       42:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
       42:       42:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
       42:       42:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       42:       42:  930:/*EOF*/
       42:       42:  931:/*EOF*/
       42:       42:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
        -:        -:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
    #####:    #####:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        3:        3: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        3:        3: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        3:        3: 1106:/*EOF*/
        3:        3: 1107:/*EOF*/
        3:        3: 1108:/*EOF*/
        3:        3: 1109:/*EOF*/

src/compiler/glsl/lower_vec_index_to_cond_assign.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_cond_assign.cpp
        -:        -:    0:Graph:.libs/lower_vec_index_to_cond_assign.gcno
        -:        -:    0:Data:.libs/lower_vec_index_to_cond_assign.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        3:        3:   52:/*EOF*/
        3:        3:   53:/*EOF*/
        3:        3:   54:/*EOF*/
        3:        3:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        3:        3:   91:/*EOF*/
        3:        3:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        3:        3:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        3:        3:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        3:        3:  103:/*EOF*/
        3:        3:  104:/*EOF*/
        3:        3:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        3:        3:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        3:        3:  118:/*EOF*/
        3:        3:  119:/*EOF*/
        3:        3:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       15:       15:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       12:       12:  125:/*EOF*/
       12:       12:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       12:       12:  132:/*EOF*/
       12:       12:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       12:       12:  135:/*EOF*/
       12:       12:  136:/*EOF*/
       12:       12:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      109:      119:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      109:      119:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      109:      119:  154:/*EOF*/
      106:      116:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       28:       30:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       79:       85:  168:/*EOF*/
       51:       55:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       28:       30:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        6:        8:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        6:        8:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        6:        8:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       42:       42:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       42:       42:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       42:       42:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       42:       42:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       10:       14:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       10:       14:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       10:       14:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        3:        3:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        3:        3:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        3:        3:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        3:        3:  238:/*EOF*/

src/compiler/glsl/lower_vec_index_to_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_swizzle.cpp
        -:        -:    0:Graph:.libs/lower_vec_index_to_swizzle.gcno
        -:        -:    0:Data:.libs/lower_vec_index_to_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       21:       21:   42:/*EOF*/
       21:       21:   43:/*EOF*/
       21:       21:   44:/*EOF*/
       21:       21:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
     1994:     2081:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     1994:     2081:   59:/*EOF*/
      423:      423:   60:/*EOF*/
        -:        -:   61:/*EOF*/
     1571:     1658:   62:/*EOF*/
     1571:     1658:   63:/*EOF*/
     1568:     1655:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        3:        3:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       21:       21:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       21:       21:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       21:       21:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       21:       21:  100:/*EOF*/

src/compiler/glsl/lower_vector.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector.cpp
        -:        -:    0:Graph:.libs/lower_vector.gcno
        -:        -:    0:Data:.libs/lower_vector.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        3:        3:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      285:      295:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      285:      295:  122:/*EOF*/
      346:      356:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      224:      234:  125:/*EOF*/
      224:      234:  126:/*EOF*/
      224:      234:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        3:        3:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        3:        3:  224:/*EOF*/
        3:        3:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        3:        3:  227:/*EOF*/

src/compiler/glsl/lower_vector_derefs.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_derefs.cpp
        -:        -:    0:Graph:.libs/lower_vector_derefs.gcno
        -:        -:    0:Data:.libs/lower_vector_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        3:        3:   34:/*EOF*/
        3:        3:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        3:        3:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        3:        3:   39:/*EOF*/
        3:        3:   40:/*EOF*/
        3:        3:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       42:       42:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       42:       42:   54:/*EOF*/
       41:       41:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        1:        1:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        1:        1:   64:/*EOF*/
        1:        1:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        1:        1:   71:/*EOF*/
        1:        1:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        1:        1:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      186:      196:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      186:      196:   83:/*EOF*/
      168:      178:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       18:       18:   86:/*EOF*/
       18:       18:   87:/*EOF*/
       15:       15:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        3:        3:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        6:        6:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        6:        6:  103:/*EOF*/

src/compiler/glsl/lower_vector_insert.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_insert.cpp
        -:        -:    0:Graph:.libs/lower_vector_insert.gcno
        -:        -:    0:Data:.libs/lower_vector_insert.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       21:       21:   34:/*EOF*/
       21:       21:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       21:       21:   37:/*EOF*/
       21:       21:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       21:       21:   40:/*EOF*/
       42:       42:   41:/*EOF*/
       21:       21:   42:/*EOF*/
       21:       21:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     2064:     2151:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     2064:     2151:   58:/*EOF*/
     1772:     1842:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      292:      309:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      292:      309:   63:/*EOF*/
      291:      308:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        1:        1:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        1:        1:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        1:        1:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        1:        1:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        1:        1:  108:/*EOF*/
        1:        1:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        1:        1:  111:/*EOF*/
        1:        1:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        5:        5:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        4:        4:  116:/*EOF*/
        4:        4:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        4:        4:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        8:        8:  122:/*EOF*/
       12:       12:  123:/*EOF*/
        4:        4:  124:/*EOF*/
        4:        4:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        8:        8:  127:/*EOF*/
       12:       12:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        1:        1:  131:/*EOF*/
        1:        1:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        1:        1:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       21:       21:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       42:       42:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       21:       21:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       42:       42:  145:/*EOF*/

src/compiler/glsl/nir_builder.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder.h
        -:        -:    0:Graph:.libs/glsl_to_nir.gcno
        -:        -:    0:Data:.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        3:        3:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        3:        3:   44:/*EOF*/
        3:        3:   45:/*EOF*/
        3:        3:   46:/*EOF*/
        3:        3:   47:/*EOF*/
        3:        3:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      207:      221:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      207:      221:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      207:      221:   68:/*EOF*/
      207:      221:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       29:       35:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       29:       35:   81:/*EOF*/
       29:       35:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       26:       30:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       26:       30:   98:/*EOF*/
       26:       30:   99:/*EOF*/
       26:       30:  100:/*EOF*/
       26:       30:  101:/*EOF*/
       26:       30:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       14:       18:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       14:       18:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       14:       18:  111:/*EOF*/
       14:       18:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       14:       18:  114:/*EOF*/
       14:       18:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       26:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       26:       30:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       26:       30:  124:/*EOF*/
       26:       30:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       26:       30:  127:/*EOF*/
       26:       30:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        3:        5:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        3:        5:  161:/*EOF*/
        3:        5:  162:/*EOF*/
        3:        5:  163:/*EOF*/
        3:        5:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        3:        5:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        3:        5:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        3:        5:  173:/*EOF*/
        3:        5:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        5:  176:/*EOF*/
        3:        5:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       43:       45:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       43:       45:  284:/*EOF*/
       43:       45:  285:/*EOF*/
       43:       45:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
       43:       45:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       43:       45:  291:/*EOF*/
       43:       45:  292:/*EOF*/
       37:       39:  293:/*EOF*/
       43:       45:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
       43:       45:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
       43:       45:  302:/*EOF*/
       43:       45:  303:/*EOF*/
      123:      129:  304:/*EOF*/
       80:       84:  305:/*EOF*/
       80:       84:  306:/*EOF*/
       80:       84:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       43:       45:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       43:       45:  315:/*EOF*/
       43:       45:  316:/*EOF*/
       43:       43:  317:/*EOF*/
       28:       28:  318:/*EOF*/
       28:       28:  319:/*EOF*/
       28:       28:  320:/*EOF*/
       13:       13:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       15:       15:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       43:       45:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      123:      129:  338:/*EOF*/
      320:      336:  339:/*EOF*/
      240:      252:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       43:       45:  344:/*EOF*/
       43:       45:  345:/*EOF*/
       43:       45:  346:/*EOF*/
        -:        -:  347:/*EOF*/
       43:       45:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       43:       45:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        9:       11:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        9:       11:  393:/*EOF*/
        9:       11:  394:/*EOF*/
        9:       11:  395:/*EOF*/
        9:       11:  396:/*EOF*/
        9:       11:  397:/*EOF*/
        9:       11:  398:/*EOF*/
        9:       11:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        9:       11:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        9:       11:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        9:       11:  411:/*EOF*/
        9:       11:  412:/*EOF*/
       36:       40:  413:/*EOF*/
       27:       29:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        9:       11:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/

src/compiler/glsl/nir_builder_opcodes.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder_opcodes.h
        -:        -:    0:Graph:.libs/glsl_to_nir.gcno
        -:        -:    0:Data:.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
    #####:    #####:   29:/*EOF*/
        -:        -:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        3:        3:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        1:        1:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        1:        1:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        5:        7:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        5:        7:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        5:        5:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        5:        5:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        2:        2:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        2:        2:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        1:        1:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        1:        1:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        4:        4:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        4:        4:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        3:        3:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        3:        3:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
        -:        -:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
       16:       16:  654:/*EOF*/
        -:        -:  655:/*EOF*/
       16:       16:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        3:        3:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        3:        3:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
    #####:    #####:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/

src/compiler/glsl/nir.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir.h
        -:        -:    0:Graph:.libs/glsl_to_nir.gcno
        -:        -:    0:Data:.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
      143:      155:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      143:      155:  514:/*EOF*/
      143:      155:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      134:      144:  557:/*EOF*/
        -:        -:  558:/*EOF*/
      134:      144:  559:/*EOF*/
        -:        -:  560:/*EOF*/
      134:      144:  561:/*EOF*/
      134:      144:  562:/*EOF*/
        -:        -:  563:/*EOF*/
      134:      144:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        9:       11:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        9:       11:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
       71:       73:  676:/*EOF*/
        -:        -:  677:/*EOF*/
       71:       73:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
       19:       19: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
       82:       88: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
       29:       35: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
       29:       35: 1661:/*EOF*/
       29:       35: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
       29:       35: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
       75:       91: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
       40:       48: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        3:        5: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
       25:       25: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
       25:       25: 1921:/*EOF*/
       25:       25: 1922:/*EOF*/
       25:       25: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
       43:       53: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
       86:      106: 2017:/*EOF*/
       43:       53: 2018:/*EOF*/
       31:       35: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
       12:       18: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
       72:       88: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
       72:       88: 2031:/*EOF*/
       72:       88: 2032:/*EOF*/
       72:       88: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        3:        3: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        3:        3: 2040:/*EOF*/
        3:        3: 2041:/*EOF*/
        3:        3: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
      207:      221: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
      207:      221: 2058:/*EOF*/
      207:      221: 2059:/*EOF*/
      207:      221: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
       43:       53: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
       43:       53: 2077:/*EOF*/
       43:       53: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
       32:       38: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
       32:       38: 2086:/*EOF*/
        3:        3: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
       29:       35: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
       43:       53: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
       43:       53: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
       43:       53: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        3:        3: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        3:        3: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        3:        3: 2126:/*EOF*/

src/compiler/glsl/nir_types.h.gcov

        -:        -:    0:Source:../../src/compiler/nir_types.h
        -:        -:    0:Graph:.libs/glsl_to_nir.gcno
        -:        -:    0:Data:.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       82:       88:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       82:       88:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       82:       88:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/

src/compiler/glsl/opt_algebraic.cpp.gcov

        -:        -:    0:Source:glsl/opt_algebraic.cpp
        -:        -:    0:Graph:.libs/opt_algebraic.gcno
        -:        -:    0:Data:.libs/opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       18:       18:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       18:       18:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
       18:       18:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       18:       18:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       18:       18:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      407:      407:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      407:      407:   88:/*EOF*/
      407:      407:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      407:      407:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      120:      120:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      120:      120:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       36:       36:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       36:       36:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       24:       24:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       24:       24:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       24:       24:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       24:       24:  256:/*EOF*/
       24:       24:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        2:        3:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        2:        3:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        3:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      263:      279:  312:/*EOF*/
        -:        -:  313:/*EOF*/
      263:      279:  314:/*EOF*/
      263:      279:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
      538:      570:  318:/*EOF*/
      263:      279:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
      263:      279:  332:/*EOF*/
      745:      792:  333:/*EOF*/
      482:      513:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      482:      513:  337:/*EOF*/
      482:      513:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      263:      279:  341:/*EOF*/
        9:        9:  342:/*EOF*/
        -:        -:  343:/*EOF*/
      263:      279:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        2:        3:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        2:        3:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        2:        3:  437:/*EOF*/
        2:        3:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        2:        3:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        2:        3:  456:/*EOF*/
        4:        6:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       48:       48:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
       48:       48:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       48:       48:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
       48:       48:  514:/*EOF*/
       24:       24:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       48:       48:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      144:      144:  533:/*EOF*/
       96:       96:  534:/*EOF*/
        -:        -:  535:/*EOF*/
       96:       96:  536:/*EOF*/
       96:       96:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       48:       48:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
       12:       12:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
       12:       12:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       12:       12:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
       12:       12:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
       12:       12:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       12:       12:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       12:       12:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
       12:       12:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       36:       36:  621:/*EOF*/
       24:       24:  622:/*EOF*/
       24:       24:  623:/*EOF*/
        -:        -:  624:/*EOF*/
       24:       24:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
       24:       24:  627:/*EOF*/
        -:        -:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       12:       12:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        6:        6:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        6:        6:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
        6:        6:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
      333:      378:  704:/*EOF*/
      222:      252:  705:/*EOF*/
        -:        -:  706:/*EOF*/
      222:      252:  707:/*EOF*/
      222:      252:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
        -:        -:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
      111:      126:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        3:        3:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        3:        3:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        3:        3:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        3:        3:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        3:        3:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
        -:        -:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
        -:        -:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
    #####:    #####:  981:/*EOF*/
        -:        -:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
       81:       81: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
      261:      276: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
     1790:     1867: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
     1790:     1867: 1012:/*EOF*/
      371:      371: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
     1419:     1496: 1015:/*EOF*/
     1419:     1496: 1016:/*EOF*/
     1156:     1217: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
      263:      279: 1019:/*EOF*/
      263:      279: 1020:/*EOF*/
      261:      276: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        2:        3: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        2:        3: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
       18:       18: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
       36:       36: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
       18:       18: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
       36:       36: 1040:/*EOF*/

src/compiler/glsl/opt_array_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_array_splitting.cpp
        -:        -:    0:Graph:.libs/opt_array_splitting.gcno
        -:        -:    0:Data:.libs/opt_array_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
       18:       18:   92:/*EOF*/
       18:       18:   93:/*EOF*/
       18:       18:   94:/*EOF*/
       18:       18:   95:/*EOF*/
       18:       18:   96:/*EOF*/
       18:       18:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       18:       18:   99:/*EOF*/
       36:       36:  100:/*EOF*/
       18:       18:  101:/*EOF*/
       18:       18:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
     2152:     2184:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     2152:     2184:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     3695:     3759:  130:/*EOF*/
     1543:     1575:  131:/*EOF*/
      933:      948:  132:/*EOF*/
        -:        -:  133:/*EOF*/
     1219:     1236:  134:/*EOF*/
     1219:     1236:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      660:      660:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      660:      660:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      660:      660:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
      660:      660:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      417:      417:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      417:      417:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      417:      417:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      417:      417:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      417:      417:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      417:      417:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      909:      941:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      909:      941:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      909:      941:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      909:      941:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      909:      941:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      150:      150:  205:/*EOF*/
        -:        -:  206:/*EOF*/
      150:      150:  207:/*EOF*/
      150:      150:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      150:      150:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      150:      150:  216:/*EOF*/
       24:       24:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       24:       24:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      126:      126:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      126:      126:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       21:       21:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       21:       21:  243:/*EOF*/
       21:       21:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
       18:       18:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
       18:       18:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       18:       18:  256:/*EOF*/
      448:      448:  257:/*EOF*/
      442:      442:  258:/*EOF*/
      442:      442:  259:/*EOF*/
      433:      433:  260:/*EOF*/
      433:      433:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       18:       18:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       18:       18:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
       18:       18:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       36:       36:  427:/*EOF*/
       18:       18:  428:/*EOF*/
       18:       18:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
    #####:    #####:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/

src/compiler/glsl/opt_conditional_discard.cpp.gcov

        -:        -:    0:Source:glsl/opt_conditional_discard.cpp
        -:        -:    0:Graph:.libs/opt_conditional_discard.gcno
        -:        -:    0:Data:.libs/opt_conditional_discard.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
       18:       18:   45:/*EOF*/
       18:       18:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       18:       18:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       18:       18:   59:/*EOF*/
       18:       18:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       92:      123:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      276:      369:   67:/*EOF*/
      166:      228:   68:/*EOF*/
      166:      228:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
       92:      123:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/

src/compiler/glsl/opt_constant_folding.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_folding.cpp
        -:        -:    0:Graph:.libs/opt_constant_folding.gcno
        -:        -:    0:Data:.libs/opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
       18:       18:   45:/*EOF*/
       18:       18:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       18:       18:   48:/*EOF*/
       18:       18:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       18:       18:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     2793:     2947:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     2793:     2947:   67:/*EOF*/
      623:      653:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
     2170:     2294:   75:/*EOF*/
     2170:     2294:   76:/*EOF*/
      490:      522:   77:/*EOF*/
      490:      522:   78:/*EOF*/
      490:      522:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
     1680:     1772:   84:/*EOF*/
     1680:     1772:   85:/*EOF*/
      172:      202:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
     1508:     1570:   89:/*EOF*/
     1508:     1570:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
      288:      288:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
     1220:     1282:   99:/*EOF*/
     1220:     1282:  100:/*EOF*/
     1208:     1270:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       12:       12:  103:/*EOF*/
       12:       12:  104:/*EOF*/
       12:       12:  105:/*EOF*/
       12:       12:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
     1403:     1480:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     1403:     1480:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
     1403:     1480:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      408:      408:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      408:      408:  144:/*EOF*/
      408:      408:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      408:      408:  147:/*EOF*/
       37:       37:  148:/*EOF*/
       37:       37:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       37:       37:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       37:       37:  155:/*EOF*/
        1:        1:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        1:        1:  159:/*EOF*/
        1:        1:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      408:      408:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        6:        6:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       18:       18:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       12:       12:  177:/*EOF*/
       12:       12:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       12:       12:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
       12:       12:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       12:       12:  184:/*EOF*/
       12:       12:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        6:        6:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        6:        6:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        6:        6:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       18:       18:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       36:       36:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       18:       18:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       36:       36:  210:/*EOF*/

src/compiler/glsl/opt_constant_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_propagation.cpp
        -:        -:    0:Graph:.libs/opt_constant_propagation.gcno
        -:        -:    0:Data:.libs/opt_constant_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      119:      119:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       89:       89:   53:/*EOF*/
       89:       89:   54:/*EOF*/
       89:       89:   55:/*EOF*/
       89:       89:   56:/*EOF*/
       89:       89:   57:/*EOF*/
       89:       89:   58:/*EOF*/
       89:       89:   59:/*EOF*/
       89:       89:   60:/*EOF*/
       89:       89:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       30:       30:   63:/*EOF*/
       30:       30:   64:/*EOF*/
       30:       30:   65:/*EOF*/
       30:       30:   66:/*EOF*/
       30:       30:   67:/*EOF*/
       30:       30:   68:/*EOF*/
       30:       30:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      435:      463:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      435:      463:   86:/*EOF*/
      435:      463:   87:/*EOF*/
      435:      463:   88:/*EOF*/
      435:      463:   89:/*EOF*/
      435:      463:   90:/*EOF*/
      435:      463:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       18:       18:   99:/*EOF*/
       18:       18:  100:/*EOF*/
       18:       18:  101:/*EOF*/
       18:       18:  102:/*EOF*/
       18:       18:  103:/*EOF*/
       18:       18:  104:/*EOF*/
       18:       18:  105:/*EOF*/
       18:       18:  106:/*EOF*/
       18:       18:  107:/*EOF*/
       18:       18:  108:/*EOF*/
       18:       18:  109:/*EOF*/
       36:       36:  110:/*EOF*/
       18:       18:  111:/*EOF*/
       18:       18:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
     1396:     1473:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1396:     1473:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        -:        -:  151:/*EOF*/
     1390:     1467:  152:/*EOF*/
       12:       12:  153:/*EOF*/
        -:        -:  154:/*EOF*/
     1390:     1467:  155:/*EOF*/
     1390:     1467:  156:/*EOF*/
      484:      515:  157:/*EOF*/
      484:      515:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      988:     1065:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      988:     1065:  168:/*EOF*/
      982:     1059:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      982:     1059:  171:/*EOF*/
      982:     1059:  172:/*EOF*/
      126:      126:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      856:      933:  175:/*EOF*/
      856:      933:  176:/*EOF*/
      856:      933:  177:/*EOF*/
      511:      557:  178:/*EOF*/
      511:      557:  179:/*EOF*/
      430:      461:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       81:       96:  182:/*EOF*/
       81:       96:  183:/*EOF*/
       16:       16:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
      410:      456:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      458:      504:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      446:      492:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      446:      492:  194:/*EOF*/
       65:       80:  195:/*EOF*/
       65:       80:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      381:      412:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      588:      634:  206:/*EOF*/
      190:      190:  207:/*EOF*/
       48:       48:  208:/*EOF*/
       48:       48:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
      446:      492:  213:/*EOF*/
      398:      444:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       48:       48:  216:/*EOF*/
      120:      120:  217:/*EOF*/
      120:      120:  218:/*EOF*/
       48:       48:  219:/*EOF*/
       72:       72:  220:/*EOF*/
       72:       72:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       48:       48:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       48:       48:  232:/*EOF*/
       48:       48:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
       12:       12:  246:/*EOF*/
       12:       12:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      988:     1065:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      988:     1065:  253:/*EOF*/
      988:     1065:  254:/*EOF*/
      988:     1065:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       21:       21:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       21:       21:  264:/*EOF*/
       21:       21:  265:/*EOF*/
       21:       21:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       21:       21:  268:/*EOF*/
       21:       21:  269:/*EOF*/
       21:       21:  270:/*EOF*/
       21:       21:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       21:       21:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       21:       21:  275:/*EOF*/
       21:       21:  276:/*EOF*/
       21:       21:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       21:       21:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      408:      408:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      408:      408:  285:/*EOF*/
        -:        -:  286:/*EOF*/
      408:      408:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
      408:      408:  290:/*EOF*/
      408:      408:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        6:        6:  307:/*EOF*/
        -:        -:  308:/*EOF*/
      408:      408:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      408:      408:  311:/*EOF*/
        -:        -:  312:/*EOF*/
      408:      408:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       21:       21:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       21:       21:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        6:        6:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
       18:       18:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       12:       12:  329:/*EOF*/
       12:       12:  330:/*EOF*/
       12:       12:  331:/*EOF*/
       12:       12:  332:/*EOF*/
       12:       12:  333:/*EOF*/
       12:       12:  334:/*EOF*/
       12:       12:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       12:       12:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        6:        6:  345:/*EOF*/
        6:        6:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        6:        6:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      184:      246:  352:/*EOF*/
        -:        -:  353:/*EOF*/
      184:      246:  354:/*EOF*/
      184:      246:  355:/*EOF*/
      184:      246:  356:/*EOF*/
        -:        -:  357:/*EOF*/
      184:      246:  358:/*EOF*/
      184:      246:  359:/*EOF*/
      184:      246:  360:/*EOF*/
      184:      246:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      214:      276:  364:/*EOF*/
       30:       30:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
      184:      246:  368:/*EOF*/
        -:        -:  369:/*EOF*/
      184:      246:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      184:      246:  374:/*EOF*/
      184:      246:  375:/*EOF*/
      184:      246:  376:/*EOF*/
      184:      246:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
      323:      385:  380:/*EOF*/
      139:      139:  381:/*EOF*/
      139:      139:  382:/*EOF*/
        -:        -:  383:/*EOF*/
      184:      246:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       92:      123:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       92:      123:  389:/*EOF*/
       92:      123:  390:/*EOF*/
        -:        -:  391:/*EOF*/
       92:      123:  392:/*EOF*/
       92:      123:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       92:      123:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       24:       39:  400:/*EOF*/
        -:        -:  401:/*EOF*/
       24:       39:  402:/*EOF*/
       24:       39:  403:/*EOF*/
       24:       39:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       24:       39:  410:/*EOF*/
       24:       39:  411:/*EOF*/
       24:       39:  412:/*EOF*/
       24:       39:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       24:       39:  415:/*EOF*/
        -:        -:  416:/*EOF*/
       24:       39:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
       24:       39:  421:/*EOF*/
       24:       39:  422:/*EOF*/
       24:       39:  423:/*EOF*/
       24:       39:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      151:      194:  427:/*EOF*/
      127:      155:  428:/*EOF*/
      127:      155:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       24:       39:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      674:      702:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      674:      702:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
      674:      702:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      957:      984:  446:/*EOF*/
      283:      282:  447:/*EOF*/
       43:       43:  448:/*EOF*/
       43:       43:  449:/*EOF*/
       38:       38:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
      674:      702:  457:/*EOF*/
      674:      702:  458:/*EOF*/
      239:      239:  459:/*EOF*/
      239:      239:  460:/*EOF*/
      239:      239:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      870:      926:  464:/*EOF*/
      870:      926:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
      408:      408:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
      408:      408:  477:/*EOF*/
       37:       37:  478:/*EOF*/
        -:        -:  479:/*EOF*/
      371:      371:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      371:      371:  483:/*EOF*/
      371:      371:  484:/*EOF*/
        -:        -:  485:/*EOF*/
      371:      371:  486:/*EOF*/
      282:      282:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
       89:       89:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      178:      178:  500:/*EOF*/
       89:       89:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       89:       89:  504:/*EOF*/
       89:       89:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       18:       18:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       36:       36:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       18:       18:  518:/*EOF*/
        -:        -:  519:/*EOF*/
       36:       36:  520:/*EOF*/

src/compiler/glsl/opt_copy_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation.cpp
        -:        -:    0:Graph:.libs/opt_copy_propagation.gcno
        -:        -:    0:Data:.libs/opt_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       18:       18:   47:/*EOF*/
       18:       18:   48:/*EOF*/
       18:       18:   49:/*EOF*/
       18:       18:   50:/*EOF*/
       18:       18:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
       18:       18:   55:/*EOF*/
       18:       18:   56:/*EOF*/
       18:       18:   57:/*EOF*/
       18:       18:   58:/*EOF*/
       36:       36:   59:/*EOF*/
       18:       18:   60:/*EOF*/
       18:       18:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       21:       21:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       21:       21:  101:/*EOF*/
       21:       21:  102:/*EOF*/
       21:       21:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       21:       21:  105:/*EOF*/
       21:       21:  106:/*EOF*/
       21:       21:  107:/*EOF*/
       21:       21:  108:/*EOF*/
       21:       21:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       21:       21:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       21:       21:  113:/*EOF*/
       21:       21:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       21:       21:  116:/*EOF*/
       21:       21:  117:/*EOF*/
       21:       21:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       21:       21:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      710:      766:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      710:      766:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      710:      766:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      710:      766:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       21:       21:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       21:       21:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
     1836:     2078:  148:/*EOF*/
        -:        -:  149:/*EOF*/
     1836:     2078:  150:/*EOF*/
      710:      766:  151:/*EOF*/
        -:        -:  152:/*EOF*/
     1126:     1312:  153:/*EOF*/
     1126:     1312:  154:/*EOF*/
       37:       37:  155:/*EOF*/
       37:       37:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
     1126:     1312:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        6:        6:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       18:       18:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       12:       12:  169:/*EOF*/
       12:       12:  170:/*EOF*/
       12:       12:  171:/*EOF*/
       12:       12:  172:/*EOF*/
       12:       12:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        6:        6:  187:/*EOF*/
        6:        6:  188:/*EOF*/
        6:        6:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        6:        6:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      340:      592:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      340:      592:  212:/*EOF*/
      340:      592:  213:/*EOF*/
      340:      592:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      340:      592:  216:/*EOF*/
      340:      592:  217:/*EOF*/
      340:      592:  218:/*EOF*/
      340:      592:  219:/*EOF*/
      340:      592:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
     1092:     1434:  224:/*EOF*/
      752:      842:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
      340:      592:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      340:      592:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
      340:      592:  234:/*EOF*/
      340:      592:  235:/*EOF*/
      340:      592:  236:/*EOF*/
      340:      592:  237:/*EOF*/
      340:      592:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      645:      953:  241:/*EOF*/
      305:      361:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      340:      592:  245:/*EOF*/
      340:      592:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      170:      296:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      170:      296:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      170:      296:  253:/*EOF*/
      170:      296:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      170:      296:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       48:      108:  261:/*EOF*/
        -:        -:  262:/*EOF*/
       48:      108:  263:/*EOF*/
       48:      108:  264:/*EOF*/
       48:      108:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       48:      108:  267:/*EOF*/
       48:      108:  268:/*EOF*/
       48:      108:  269:/*EOF*/
       48:      108:  270:/*EOF*/
       48:      108:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       48:      108:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       47:       97:  275:/*EOF*/
       23:       43:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       48:      108:  280:/*EOF*/
        -:        -:  281:/*EOF*/
       48:      108:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       48:      108:  286:/*EOF*/
       48:      108:  287:/*EOF*/
       48:      108:  288:/*EOF*/
       48:      108:  289:/*EOF*/
       48:      108:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
      408:      580:  293:/*EOF*/
      360:      472:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
       48:      108:  297:/*EOF*/
       48:      108:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
       24:       54:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       24:       54:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       24:       54:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       24:       54:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
     1375:     1599:  318:/*EOF*/
        -:        -:  319:/*EOF*/
     1375:     1599:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
     1375:     1599:  323:/*EOF*/
     1375:     1599:  324:/*EOF*/
       62:       62:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
     5697:     5906:  328:/*EOF*/
     4322:     4307:  329:/*EOF*/
       38:       38:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
     1375:     1599:  335:/*EOF*/
     1375:     1599:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      710:      766:  343:/*EOF*/
        -:        -:  344:/*EOF*/
      710:      766:  345:/*EOF*/
       72:       72:  346:/*EOF*/
        -:        -:  347:/*EOF*/
      638:      694:  348:/*EOF*/
      638:      694:  349:/*EOF*/
        -:        -:  350:/*EOF*/
      638:      694:  351:/*EOF*/
      209:      237:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        1:        1:  358:/*EOF*/
        1:        1:  359:/*EOF*/
      416:      472:  360:/*EOF*/
      416:      472:  361:/*EOF*/
      208:      236:  362:/*EOF*/
      208:      236:  363:/*EOF*/
      208:      236:  364:/*EOF*/
      208:      236:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
       18:       18:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       36:       36:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       18:       18:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       36:       36:  380:/*EOF*/

src/compiler/glsl/opt_copy_propagation_elements.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation_elements.cpp
        -:        -:    0:Graph:.libs/opt_copy_propagation_elements.gcno
        -:        -:    0:Data:.libs/opt_copy_propagation_elements.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      256:      284:   63:/*EOF*/
      256:      284:   64:/*EOF*/
      256:      284:   65:/*EOF*/
      256:      284:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      256:      284:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      256:      284:   76:/*EOF*/
      256:      284:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      256:      284:   79:/*EOF*/
      256:      284:   80:/*EOF*/
      256:      284:   81:/*EOF*/
      256:      284:   82:/*EOF*/
      256:      284:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      710:      766:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      710:      766:   99:/*EOF*/
      710:      766:  100:/*EOF*/
      710:      766:  101:/*EOF*/
      710:      766:  102:/*EOF*/
      710:      766:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       18:       18:  111:/*EOF*/
       18:       18:  112:/*EOF*/
       18:       18:  113:/*EOF*/
       18:       18:  114:/*EOF*/
       18:       18:  115:/*EOF*/
       18:       18:  116:/*EOF*/
       18:       18:  117:/*EOF*/
       18:       18:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       18:       18:  120:/*EOF*/
       18:       18:  121:/*EOF*/
       18:       18:  122:/*EOF*/
       36:       36:  123:/*EOF*/
       18:       18:  124:/*EOF*/
       18:       18:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      427:      739:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      427:      739:  129:/*EOF*/
      427:      739:  130:/*EOF*/
      427:      739:  131:/*EOF*/
      427:      739:  132:/*EOF*/
      427:      739:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      409:      721:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      409:      721:  137:/*EOF*/
      409:      721:  138:/*EOF*/
      409:      721:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      364:      646:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
     1530:     1971:  145:/*EOF*/
     1166:     1325:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1262:     1690:  149:/*EOF*/
      898:     1044:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      364:      646:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       21:       21:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
       21:       21:  198:/*EOF*/
       21:       21:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       21:       21:  201:/*EOF*/
       21:       21:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       21:       21:  204:/*EOF*/
       21:       21:  205:/*EOF*/
        -:        -:  206:/*EOF*/
       21:       21:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       21:       21:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       21:       21:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       21:       21:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       21:       21:  215:/*EOF*/
       21:       21:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       21:       21:  218:/*EOF*/
       21:       21:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       21:       21:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      710:      766:  225:/*EOF*/
        -:        -:  226:/*EOF*/
      710:      766:  227:/*EOF*/
      710:      766:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      710:      766:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      710:      766:  233:/*EOF*/
      698:      754:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       12:       12:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      710:      766:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      710:      766:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      710:      766:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      142:      222:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
      142:      222:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
     1293:     1509:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
     1293:     1509:  267:/*EOF*/
     1293:     1509:  268:/*EOF*/
        -:        -:  269:/*EOF*/
     1293:     1509:  270:/*EOF*/
        -:        -:  271:/*EOF*/
     1293:     1509:  272:/*EOF*/
     1274:     1490:  273:/*EOF*/
        -:        -:  274:/*EOF*/
     1293:     1509:  275:/*EOF*/
     1293:     1509:  276:/*EOF*/
       98:      178:  277:/*EOF*/
       98:      178:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       98:      178:  281:/*EOF*/
       98:      178:  282:/*EOF*/
       98:      178:  283:/*EOF*/
       98:      178:  284:/*EOF*/
       98:      178:  285:/*EOF*/
        -:        -:  286:/*EOF*/
     1195:     1331:  287:/*EOF*/
     1195:     1331:  288:/*EOF*/
      553:      647:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      642:      684:  291:/*EOF*/
      642:      684:  292:/*EOF*/
      642:      684:  293:/*EOF*/
      642:      684:  294:/*EOF*/
      642:      684:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      740:      862:  298:/*EOF*/
       12:       12:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      728:      850:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
      728:      850:  306:/*EOF*/
      728:      850:  307:/*EOF*/
       71:       71:  308:/*EOF*/
       94:       94:  309:/*EOF*/
       46:       46:  310:/*EOF*/
       23:       23:  311:/*EOF*/
       19:       19:  312:/*EOF*/
       19:       19:  313:/*EOF*/
        -:        -:  314:/*EOF*/
       19:       19:  315:/*EOF*/
       13:       13:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      728:      850:  323:/*EOF*/
      709:      831:  324:/*EOF*/
       19:       19:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       19:       19:  330:/*EOF*/
        4:        4:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       19:       19:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
       19:       19:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       19:       19:  344:/*EOF*/
        -:        -:  345:/*EOF*/
       19:       19:  346:/*EOF*/
       19:       19:  347:/*EOF*/
       19:       19:  348:/*EOF*/
       19:       19:  349:/*EOF*/
       95:       95:  350:/*EOF*/
       19:       19:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       19:       19:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        6:        6:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
       18:       18:  365:/*EOF*/
        -:        -:  366:/*EOF*/
       12:       12:  367:/*EOF*/
       12:       12:  368:/*EOF*/
       12:       12:  369:/*EOF*/
       12:       12:  370:/*EOF*/
       12:       12:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        6:        6:  378:/*EOF*/
        6:        6:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        6:        6:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        6:        6:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
      340:      592:  387:/*EOF*/
        -:        -:  388:/*EOF*/
      340:      592:  389:/*EOF*/
      340:      592:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      340:      592:  392:/*EOF*/
      340:      592:  393:/*EOF*/
        -:        -:  394:/*EOF*/
      340:      592:  395:/*EOF*/
      340:      592:  396:/*EOF*/
        -:        -:  397:/*EOF*/
      340:      592:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      340:      592:  401:/*EOF*/
        -:        -:  402:/*EOF*/
      340:      592:  403:/*EOF*/
        -:        -:  404:/*EOF*/
      340:      592:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
      340:      592:  410:/*EOF*/
      340:      592:  411:/*EOF*/
      340:      592:  412:/*EOF*/
        -:        -:  413:/*EOF*/
      340:      592:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      340:      592:  416:/*EOF*/
      340:      592:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      705:     1013:  422:/*EOF*/
      365:      421:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
      340:      592:  426:/*EOF*/
      340:      592:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      170:      296:  430:/*EOF*/
        -:        -:  431:/*EOF*/
      170:      296:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      170:      296:  434:/*EOF*/
      170:      296:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
      170:      296:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       48:      108:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       48:      108:  444:/*EOF*/
       48:      108:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       48:      108:  447:/*EOF*/
       48:      108:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       48:      108:  454:/*EOF*/
       48:      108:  455:/*EOF*/
        -:        -:  456:/*EOF*/
       48:      108:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       48:      108:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       24:       54:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       48:      108:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       48:      108:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       48:      108:  471:/*EOF*/
       48:      108:  472:/*EOF*/
       48:      108:  473:/*EOF*/
        -:        -:  474:/*EOF*/
       48:      108:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       48:      108:  477:/*EOF*/
       48:      108:  478:/*EOF*/
        -:        -:  479:/*EOF*/
      486:      714:  480:/*EOF*/
      438:      606:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
       48:      108:  484:/*EOF*/
       48:      108:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       24:       54:  488:/*EOF*/
        -:        -:  489:/*EOF*/
       24:       54:  490:/*EOF*/
       24:       54:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       24:       54:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
     1513:     1793:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
     1513:     1793:  502:/*EOF*/
     1513:     1793:  503:/*EOF*/
      155:      155:  504:/*EOF*/
      273:      273:  505:/*EOF*/
      118:      118:  506:/*EOF*/
      118:      118:  507:/*EOF*/
       80:       80:  508:/*EOF*/
       80:       80:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
     1513:     1793:  515:/*EOF*/
     1513:     1793:  516:/*EOF*/
       41:       41:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
      175:      175:  520:/*EOF*/
       67:       67:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
       67:       67:  526:/*EOF*/
       43:       43:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
     1513:     1793:  532:/*EOF*/
      803:     1027:  533:/*EOF*/
        -:        -:  534:/*EOF*/
     1513:     1793:  535:/*EOF*/
     1513:     1793:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      710:      766:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
      710:      766:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
      710:      766:  549:/*EOF*/
      527:      555:  550:/*EOF*/
        -:        -:  551:/*EOF*/
      637:      693:  552:/*EOF*/
      637:      693:  553:/*EOF*/
       12:       12:  554:/*EOF*/
        -:        -:  555:/*EOF*/
      625:      681:  556:/*EOF*/
      625:      681:  557:/*EOF*/
      391:      419:  558:/*EOF*/
      391:      419:  559:/*EOF*/
      359:      387:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       32:       32:  562:/*EOF*/
       32:       32:  563:/*EOF*/
       10:       10:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       22:       22:  566:/*EOF*/
       22:       22:  567:/*EOF*/
       22:       22:  568:/*EOF*/
       22:       22:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
      256:      284:  576:/*EOF*/
     1280:     1420:  577:/*EOF*/
     1024:     1136:  578:/*EOF*/
      345:      373:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
      256:      284:  582:/*EOF*/
      256:      284:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      256:      284:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
      256:      284:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
      256:      284:  602:/*EOF*/
      256:      284:  603:/*EOF*/
       49:       49:  604:/*EOF*/
       49:       49:  605:/*EOF*/
        -:        -:  606:/*EOF*/
      207:      235:  607:/*EOF*/
      207:      235:  608:/*EOF*/
      207:      235:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
      256:      284:  613:/*EOF*/
      256:      284:  614:/*EOF*/
       44:       44:  615:/*EOF*/
       44:       44:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      212:      240:  618:/*EOF*/
      212:      240:  619:/*EOF*/
      212:      240:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
       18:       18:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       36:       36:  627:/*EOF*/
        -:        -:  628:/*EOF*/
       18:       18:  629:/*EOF*/
        -:        -:  630:/*EOF*/
       36:       36:  631:/*EOF*/

src/compiler/glsl/opt_dead_builtin_varyings.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_builtin_varyings.cpp
        -:        -:    0:Graph:.libs/opt_dead_builtin_varyings.gcno
        -:        -:    0:Data:.libs/opt_dead_builtin_varyings.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        8:        8:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        8:        8:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        8:        8:   80:/*EOF*/
        8:        8:   81:/*EOF*/
        8:        8:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       38:       38:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       38:       38:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       38:       38:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
       38:       38:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      199:      207:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      199:      207:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      199:      207:  147:/*EOF*/
      199:      207:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       45:       45:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       45:       45:  170:/*EOF*/
       39:       39:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        6:        6:  174:/*EOF*/
        2:        2:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        4:        4:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        1:        1:  180:/*EOF*/
        1:        1:  181:/*EOF*/
        1:        1:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        1:        1:  184:/*EOF*/
        1:        1:  185:/*EOF*/
        1:        1:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        4:        4:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        6:        6:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        6:        6:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        6:        6:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        6:        6:  238:/*EOF*/
        6:        6:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        6:        6:  241:/*EOF*/
        6:        6:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        6:        6:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        2:        2:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        2:        2:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        2:        2:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        2:        2:  286:/*EOF*/
        2:        2:  287:/*EOF*/
        2:        2:  288:/*EOF*/
        2:        2:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        2:        2:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        2:        2:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        2:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        6:        6:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        4:        4:  323:/*EOF*/
        4:        4:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        4:        4:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        4:        4:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        2:        2:  350:/*EOF*/
        2:        2:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
       20:       20:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
       20:       20:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
       20:       20:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       60:       60:  410:/*EOF*/
       40:       40:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
       40:       40:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
       20:       20:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
       20:       20:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      218:      228:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      218:      228:  429:/*EOF*/
       39:       39:  430:/*EOF*/
        -:        -:  431:/*EOF*/
      179:      189:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      179:      189:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
      179:      189:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      179:      189:  464:/*EOF*/
      179:      189:  465:/*EOF*/
       83:       89:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       96:      100:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      288:      300:  470:/*EOF*/
      192:      200:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
      192:      200:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
       96:      100:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       39:       39:  487:/*EOF*/
        -:        -:  488:/*EOF*/
       39:       39:  489:/*EOF*/
       39:       39:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       39:       39:  493:/*EOF*/
        -:        -:  494:/*EOF*/
       39:       39:  495:/*EOF*/
       39:       39:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       39:       39:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        2:        2:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        2:        2:  526:/*EOF*/
        2:        2:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        2:        2:  529:/*EOF*/
        2:        2:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        3:        3:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        3:        3:  541:/*EOF*/
        2:        2:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        6:        6:  548:/*EOF*/
        3:        3:  549:/*EOF*/
        2:        2:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        3:        3:  554:/*EOF*/
        3:        3:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        3:        3:  557:/*EOF*/
        2:        2:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        2:        2:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        1:        1:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        1:        1:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        2:        2:  569:/*EOF*/
        2:        2:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        2:        2:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        1:        1:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        1:        1:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        2:        2:  582:/*EOF*/
        2:        2:  583:/*EOF*/
        1:        1:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        1:        1:  598:/*EOF*/
        1:        1:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        2:        2:  603:/*EOF*/
        2:        2:  604:/*EOF*/
        1:        1:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/

src/compiler/glsl/opt_dead_code.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code.cpp
        -:        -:    0:Graph:.libs/opt_dead_code.gcno
        -:        -:    0:Data:.libs/opt_dead_code.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       25:       25:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       50:       50:   48:/*EOF*/
       25:       25:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       25:       25:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      496:      499:   54:/*EOF*/
      471:      474:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      471:      474:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      471:      474:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      471:      474:   74:/*EOF*/
      200:      200:   75:/*EOF*/
      277:      280:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      194:      194:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      194:      194:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      132:      132:   96:/*EOF*/
      132:      132:   97:/*EOF*/
      116:      116:   98:/*EOF*/
       50:       50:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      154:      154:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       52:       52:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       52:       52:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       52:       52:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       52:       52:  113:/*EOF*/
       52:       52:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       50:       50:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      194:      194:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      296:      296:  129:/*EOF*/
      118:      118:  130:/*EOF*/
       60:       60:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       60:       60:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       60:       60:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      178:      178:  156:/*EOF*/
      178:      178:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      178:      178:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       50:       50:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        6:        6:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        6:        6:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      448:      448:  181:/*EOF*/
      442:      442:  182:/*EOF*/
      442:      442:  183:/*EOF*/
       18:       18:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        9:        9:  190:/*EOF*/
        4:        4:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        6:        6:  196:/*EOF*/

src/compiler/glsl/opt_dead_code_local.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code_local.cpp
        -:        -:    0:Graph:.libs/opt_dead_code_local.gcno
        -:        -:    0:Data:.libs/opt_dead_code_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      439:      439:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      439:      439:   51:/*EOF*/
      439:      439:   52:/*EOF*/
      439:      439:   53:/*EOF*/
      439:      439:   54:/*EOF*/
      439:      439:   55:/*EOF*/
      439:      439:   56:/*EOF*/
      439:      439:   57:/*EOF*/
      439:      439:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     1284:     1361:   69:/*EOF*/
     1284:     1361:   70:/*EOF*/
     1284:     1361:   71:/*EOF*/
     1284:     1361:   72:/*EOF*/
        -:        -:   73:/*EOF*/
     2740:     2923:   74:/*EOF*/
        -:        -:   75:/*EOF*/
     4488:     4714:   76:/*EOF*/
     1748:     1791:   77:/*EOF*/
      233:      233:   78:/*EOF*/
      233:      233:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
      233:      233:   82:/*EOF*/
      233:      233:   83:/*EOF*/
      233:      233:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
     2740:     2923:   92:/*EOF*/
        -:        -:   93:/*EOF*/
     2740:     2923:   94:/*EOF*/
        -:        -:   95:/*EOF*/
     2740:     2923:   96:/*EOF*/
        -:        -:   97:/*EOF*/
     2740:     2923:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      439:      439:  143:/*EOF*/
      439:      439:  144:/*EOF*/
      439:      439:  145:/*EOF*/
      439:      439:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        6:        6:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        6:        6:  150:/*EOF*/
        6:        6:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      439:      439:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      439:      439:  156:/*EOF*/
      439:      439:  157:/*EOF*/
      439:      439:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      439:      439:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      439:      439:  172:/*EOF*/
      439:      439:  173:/*EOF*/
      439:      439:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      439:      439:  177:/*EOF*/
      439:      439:  178:/*EOF*/
       37:       37:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      439:      439:  184:/*EOF*/
      439:      439:  185:/*EOF*/
      439:      439:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      439:      439:  189:/*EOF*/
      402:      402:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      508:      508:  195:/*EOF*/
      106:      106:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      396:      396:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      899:      899:  202:/*EOF*/
      503:      503:  203:/*EOF*/
      441:      441:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       62:       62:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       62:       62:  211:/*EOF*/
       62:       62:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       62:       62:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        6:        6:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      439:      439:  280:/*EOF*/
      439:      439:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      439:      439:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
      439:      439:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      288:      365:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
      288:      365:  302:/*EOF*/
      288:      365:  303:/*EOF*/
      288:      365:  304:/*EOF*/
        -:        -:  305:/*EOF*/
      288:      365:  306:/*EOF*/
      288:      365:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
     2280:     2357:  310:/*EOF*/
      996:      996:  311:/*EOF*/
     1284:     1361:  312:/*EOF*/
        -:        -:  313:/*EOF*/
     1284:     1361:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
     1284:     1361:  319:/*EOF*/
      439:      439:  320:/*EOF*/
      439:      439:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      845:      922:  323:/*EOF*/
      845:      922:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
     1284:     1361:  327:/*EOF*/
      288:      365:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      288:      365:  330:/*EOF*/
      288:      365:  331:/*EOF*/
      288:      365:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       18:       18:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       18:       18:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       18:       18:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       18:       18:  344:/*EOF*/

src/compiler/glsl/opt_flatten_nested_if_blocks.cpp.gcov

        -:        -:    0:Source:glsl/opt_flatten_nested_if_blocks.cpp
        -:        -:    0:Graph:.libs/opt_flatten_nested_if_blocks.gcno
        -:        -:    0:Data:.libs/opt_flatten_nested_if_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       18:       18:   51:/*EOF*/
       18:       18:   52:/*EOF*/
       18:       18:   53:/*EOF*/
       18:       18:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      491:      491:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      491:      491:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       18:   79:/*EOF*/
       18:       18:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       92:      123:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       92:      123:   90:/*EOF*/
       14:       14:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       78:      109:   93:/*EOF*/
       78:      109:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
       78:      109:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/

src/compiler/glsl/opt_function_inlining.cpp.gcov

        -:        -:    0:Source:glsl/opt_function_inlining.cpp
        -:        -:    0:Graph:.libs/opt_function_inlining.gcno
        -:        -:    0:Data:.libs/opt_function_inlining.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       12:       12:   46:/*EOF*/
       12:       12:   47:/*EOF*/
       12:       12:   48:/*EOF*/
       12:       12:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       12:       12:   51:/*EOF*/
       12:       12:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       12:       12:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       12:       12:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       24:       24:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       12:       12:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       24:       24:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      167:      193:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      167:      193:   85:/*EOF*/
      167:      193:   86:/*EOF*/
      167:      193:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      167:      193:   89:/*EOF*/
        7:        7:   90:/*EOF*/
        7:        7:   91:/*EOF*/
        7:        7:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      167:      193:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        7:        7:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        7:        7:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        7:        7:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        7:        7:  145:/*EOF*/
        7:        7:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        7:        7:  151:/*EOF*/
       20:       20:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       13:       13:  154:/*EOF*/
       13:       13:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       13:       13:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       13:       13:  166:/*EOF*/
       13:       13:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       13:       13:  174:/*EOF*/
       13:       13:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       13:       13:  196:/*EOF*/
       13:       13:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       13:       13:  201:/*EOF*/
       26:       26:  202:/*EOF*/
       13:       13:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       13:       13:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        7:        7:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       32:       32:  230:/*EOF*/
       25:       25:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       25:       25:  233:/*EOF*/
       25:       25:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       20:       20:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       13:       13:  242:/*EOF*/
       13:       13:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       13:       13:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        7:        7:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        7:        7:  259:/*EOF*/
       20:       20:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       13:       13:  262:/*EOF*/
       13:       13:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
       26:       26:  266:/*EOF*/
       13:       13:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       13:       13:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        7:        7:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        7:        7:  281:/*EOF*/
        7:        7:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      168:      179:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
      168:      179:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        1:        1:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        1:        1:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       11:       11:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       11:       11:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        2:        2:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        2:        2:  320:/*EOF*/
        2:        2:  321:/*EOF*/
        2:        2:  322:/*EOF*/
        2:        2:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        2:        2:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/

src/compiler/glsl/opt_if_simplification.cpp.gcov

        -:        -:    0:Source:glsl/opt_if_simplification.cpp
        -:        -:    0:Graph:.libs/opt_if_simplification.gcno
        -:        -:    0:Data:.libs/opt_if_simplification.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       18:       18:   38:/*EOF*/
       18:       18:   39:/*EOF*/
       18:       18:   40:/*EOF*/
       18:       18:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      491:      491:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      491:      491:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       18:       18:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       18:       18:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       18:       18:   66:/*EOF*/
       18:       18:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       95:      128:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       95:      128:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       95:      128:   87:/*EOF*/
       95:      128:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        5:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        3:        5:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        5:   97:/*EOF*/
        3:        5:   98:/*EOF*/
        3:        5:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       92:      123:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       92:      123:  125:/*EOF*/

src/compiler/glsl/opt_minmax.cpp.gcov

        -:        -:    0:Source:glsl/opt_minmax.cpp
        -:        -:    0:Graph:.libs/opt_minmax.gcno
        -:        -:    0:Data:.libs/opt_minmax.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       18:       18:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
     1790:     1867:  456:/*EOF*/
        -:        -:  457:/*EOF*/
     1790:     1867:  458:/*EOF*/
      371:      371:  459:/*EOF*/
        -:        -:  460:/*EOF*/
     1419:     1496:  461:/*EOF*/
     1682:     1775:  462:/*EOF*/
      263:      279:  463:/*EOF*/
     1419:     1496:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       18:       18:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       18:       18:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       18:       18:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       18:       18:  487:/*EOF*/

src/compiler/glsl/opt_noop_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_noop_swizzle.cpp
        -:        -:    0:Graph:.libs/opt_noop_swizzle.gcno
        -:        -:    0:Data:.libs/opt_noop_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       18:       18:   41:/*EOF*/
       18:       18:   42:/*EOF*/
       18:       18:   43:/*EOF*/
       18:       18:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
     1802:     1879:   53:/*EOF*/
        -:        -:   54:/*EOF*/
     1802:     1879:   55:/*EOF*/
      381:      381:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1421:     1498:   58:/*EOF*/
     1421:     1498:   59:/*EOF*/
     1390:     1467:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       31:       31:   62:/*EOF*/
       31:       31:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
       31:       31:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
       31:       31:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
       31:       31:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       31:       31:   72:/*EOF*/
       31:       31:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       18:       18:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       18:   79:/*EOF*/
       18:       18:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       18:       18:   82:/*EOF*/

src/compiler/glsl/opt_rebalance_tree.cpp.gcov

        -:        -:    0:Source:glsl/opt_rebalance_tree.cpp
        -:        -:    0:Graph:.libs/opt_rebalance_tree.gcno
        -:        -:    0:Data:.libs/opt_rebalance_tree.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       18:       18:  129:/*EOF*/
       18:       18:  130:/*EOF*/
       18:       18:  131:/*EOF*/
       18:       18:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      407:      407:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      407:      407:  154:/*EOF*/
      407:      407:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      407:      407:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      130:      146:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      130:      146:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        8:        8:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      122:      138:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       26:       26:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       26:       26:  204:/*EOF*/
       26:       26:  205:/*EOF*/
        9:        9:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       17:       17:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       34:       34:  222:/*EOF*/
       17:       17:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       17:       17:  228:/*EOF*/
       17:       17:  229:/*EOF*/
       10:       10:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       21:       21:  236:/*EOF*/
       14:       14:  237:/*EOF*/
       11:       11:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        7:        7:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        7:        7:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        7:        7:  249:/*EOF*/
        7:        7:  250:/*EOF*/
        4:        4:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        4:        4:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        3:        3:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        4:        4:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        4:        4:  263:/*EOF*/
        4:        4:  264:/*EOF*/
        4:        4:  265:/*EOF*/
        4:        4:  266:/*EOF*/
        4:        4:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        4:        4:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        4:        4:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        4:        4:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
      976:     1053:  300:/*EOF*/
        -:        -:  301:/*EOF*/
      976:     1053:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
      976:     1053:  305:/*EOF*/
      976:     1053:  306:/*EOF*/
      972:     1049:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        4:        4:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        4:        4:  320:/*EOF*/
        4:        4:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       18:       18:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       18:       18:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       18:       18:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       18:       18:  336:/*EOF*/

src/compiler/glsl/opt_redundant_jumps.cpp.gcov

        -:        -:    0:Source:glsl/opt_redundant_jumps.cpp
        -:        -:    0:Graph:.libs/opt_redundant_jumps.gcno
        -:        -:    0:Data:.libs/opt_redundant_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
       18:       18:   35:/*EOF*/
       18:       18:   36:/*EOF*/
       18:       18:   37:/*EOF*/
       18:       18:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      417:      417:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      417:      417:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       93:      125:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       93:      125:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       93:      125:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       93:      125:   70:/*EOF*/
       78:      110:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       15:       15:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
       15:       15:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       24:       39:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       24:       39:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       24:       39:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       24:       39:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       18:       18:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       18:       18:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       18:       18:  122:/*EOF*/
       18:       18:  123:/*EOF*/

src/compiler/glsl/opt_structure_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_structure_splitting.cpp
        -:        -:    0:Graph:.libs/opt_structure_splitting.gcno
        -:        -:    0:Data:.libs/opt_structure_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       12:       12:   76:/*EOF*/
       12:       12:   77:/*EOF*/
       12:       12:   78:/*EOF*/
       12:       12:   79:/*EOF*/
       12:       12:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       12:       12:   82:/*EOF*/
       24:       24:   83:/*EOF*/
       12:       12:   84:/*EOF*/
       12:       12:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      446:      474:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      446:      474:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      900:      956:  106:/*EOF*/
        8:        8:  107:/*EOF*/
      446:      474:  108:/*EOF*/
      446:      474:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      335:      335:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      335:      335:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      335:      335:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      335:      335:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      111:      139:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      111:      139:  136:/*EOF*/
      111:      139:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      111:      139:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      111:      139:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      383:      383:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      383:      383:  159:/*EOF*/
      383:      383:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       12:       12:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       12:       12:  180:/*EOF*/
       12:       12:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       12:       12:  310:/*EOF*/
        -:        -:  311:/*EOF*/
       24:       24:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       12:       12:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       12:       12:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       12:       12:  329:/*EOF*/
       12:       12:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/

src/compiler/glsl/opt_swizzle_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_swizzle_swizzle.cpp
        -:        -:    0:Graph:.libs/opt_swizzle_swizzle.gcno
        -:        -:    0:Data:.libs/opt_swizzle_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       18:       18:   39:/*EOF*/
       18:       18:   40:/*EOF*/
       18:       18:   41:/*EOF*/
       18:       18:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       80:       95:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       80:       95:   56:/*EOF*/
       80:       95:   57:/*EOF*/
       74:       89:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        6:        6:   60:/*EOF*/
        6:        6:   61:/*EOF*/
        6:        6:   62:/*EOF*/
        6:        6:   63:/*EOF*/
        6:        6:   64:/*EOF*/
        6:        6:   65:/*EOF*/
        6:        6:   66:/*EOF*/
        6:        6:   67:/*EOF*/
        6:        6:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        6:        6:   70:/*EOF*/
        6:        6:   71:/*EOF*/
        6:        6:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        6:        6:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        6:        6:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        6:        6:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        6:        6:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        6:        6:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       18:       18:   90:/*EOF*/
        -:        -:   91:/*EOF*/
       18:       18:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       18:       18:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       18:       18:   96:/*EOF*/

src/compiler/glsl/opt_tree_grafting.cpp.gcov

        -:        -:    0:Source:glsl/opt_tree_grafting.cpp
        -:        -:    0:Graph:.libs/opt_tree_grafting.gcno
        -:        -:    0:Data:.libs/opt_tree_grafting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       49:       49:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       49:       49:   65:/*EOF*/
       49:       49:   66:/*EOF*/
       49:       49:   67:/*EOF*/
       49:       49:   68:/*EOF*/
       49:       49:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      219:      219:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      219:      219:   98:/*EOF*/
      219:      219:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      219:      219:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
      219:      219:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       51:       51:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       51:       51:  110:/*EOF*/
       51:       51:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       51:       51:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       51:       51:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      313:      313:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      313:      313:  121:/*EOF*/
       30:       30:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      283:      283:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      283:      283:  126:/*EOF*/
      252:      252:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       31:       31:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       31:       31:  138:/*EOF*/
       31:       31:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       31:       31:  141:/*EOF*/
       31:       31:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       51:       51:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       51:       51:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       51:       51:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       67:       67:  178:/*EOF*/
        -:        -:  179:/*EOF*/
      127:      127:  180:/*EOF*/
       60:       60:  181:/*EOF*/
       19:       19:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       48:       48:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        3:        3:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        9:        9:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        6:        6:  209:/*EOF*/
        6:        6:  210:/*EOF*/
        6:        6:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        6:        6:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        6:        6:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        3:        3:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        3:        3:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       41:       41:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      116:      116:  235:/*EOF*/
       80:       80:  236:/*EOF*/
        5:        5:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       36:       36:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       19:       19:  244:/*EOF*/
        -:        -:  245:/*EOF*/
       19:       19:  246:/*EOF*/
        4:        4:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       15:       15:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       81:       81:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       81:       81:  258:/*EOF*/
        3:        3:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       78:       78:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       49:       49:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       49:       49:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       49:       49:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      118:      118:  326:/*EOF*/
      118:      118:  327:/*EOF*/
       69:       69:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      100:      100:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      100:      100:  336:/*EOF*/
      100:      100:  337:/*EOF*/
       31:       31:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
       18:       18:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
      288:      365:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
      288:      365:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
     2856:     3087:  352:/*EOF*/
     1572:     1726:  353:/*EOF*/
     1284:     1361:  354:/*EOF*/
     1284:     1361:  355:/*EOF*/
        -:        -:  356:/*EOF*/
     1284:     1361:  357:/*EOF*/
      845:      922:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      439:      439:  360:/*EOF*/
      439:      439:  361:/*EOF*/
       88:       88:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      702:      702:  364:/*EOF*/
      702:      702:  365:/*EOF*/
      687:      687:  366:/*EOF*/
      672:      672:  367:/*EOF*/
      336:      336:  368:/*EOF*/
       15:       15:  369:/*EOF*/
        -:        -:  370:/*EOF*/
      336:      336:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      336:      336:  374:/*EOF*/
        -:        -:  375:/*EOF*/
      672:      672:  376:/*EOF*/
      401:      401:  377:/*EOF*/
       65:       65:  378:/*EOF*/
      287:      287:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       49:       49:  385:/*EOF*/
        -:        -:  386:/*EOF*/
      288:      365:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       18:       18:  395:/*EOF*/
        -:        -:  396:/*EOF*/
       36:       36:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       18:       18:  400:/*EOF*/
       18:       18:  401:/*EOF*/
        -:        -:  402:/*EOF*/
       18:       18:  403:/*EOF*/
        -:        -:  404:/*EOF*/
       18:       18:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       36:       36:  407:/*EOF*/

src/compiler/glsl/propagate_invariance.cpp.gcov

        -:        -:    0:Source:glsl/propagate_invariance.cpp
        -:        -:    0:Graph:.libs/propagate_invariance.gcno
        -:        -:    0:Data:.libs/propagate_invariance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       21:       21:   51:/*EOF*/
       21:       21:   52:/*EOF*/
       21:       21:   53:/*EOF*/
       21:       21:   54:/*EOF*/
       21:       21:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       21:       21:   57:/*EOF*/
       21:       21:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       21:       21:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      533:      533:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      533:      533:   75:/*EOF*/
      533:      533:   76:/*EOF*/
      533:      533:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      533:      533:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      178:      215:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      178:      215:   96:/*EOF*/
      178:      215:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       21:       21:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       42:       42:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
       21:       21:  122:/*EOF*/
       21:       21:  123:/*EOF*/
       21:       21:  124:/*EOF*/
       21:       21:  125:/*EOF*/

src/compiler/glsl_lexer.cpp.gcov

        -:        -:    0:Source:glsl/glsl_lexer.cpp
        -:        -:    0:Graph:glsl/.libs/glsl_lexer.gcno
        -:        -:    0:Data:glsl/.libs/glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:#line 2 "glsl/glsl_lexer.cpp"
        -:        -:    2:
        -:        -:    3:#line 4 "glsl/glsl_lexer.cpp"
        -:        -:    4:
        -:        -:    5:#define  YY_INT_ALIGNED short int
        -:        -:    6:
        -:        -:    7:/* A lexical scanner generated by flex */
        -:        -:    8:
        -:        -:    9:#define FLEX_SCANNER
        -:        -:   10:#define YY_FLEX_MAJOR_VERSION 2
        -:        -:   11:#define YY_FLEX_MINOR_VERSION 6
        -:        -:   12:#define YY_FLEX_SUBMINOR_VERSION 0
        -:        -:   13:#if YY_FLEX_SUBMINOR_VERSION > 0
        -:        -:   14:#define FLEX_BETA
        -:        -:   15:#endif
        -:        -:   16:
        -:        -:   17:/* First, we deal with  platform-specific or compiler-specific issues. */
        -:        -:   18:
        -:        -:   19:/* begin standard C headers. */
        -:        -:   20:#include <stdio.h>
        -:        -:   21:#include <string.h>
        -:        -:   22:#include <errno.h>
        -:        -:   23:#include <stdlib.h>
        -:        -:   24:
        -:        -:   25:/* end standard C headers. */
        -:        -:   26:
        -:        -:   27:/* flex integer type definitions */
        -:        -:   28:
        -:        -:   29:#ifndef FLEXINT_H
        -:        -:   30:#define FLEXINT_H
        -:        -:   31:
        -:        -:   32:/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
        -:        -:   33:
        -:        -:   34:#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
        -:        -:   35:
        -:        -:   36:/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
        -:        -:   37: * if you want the limit (max/min) macros for int types. 
        -:        -:   38: */
        -:        -:   39:#ifndef __STDC_LIMIT_MACROS
        -:        -:   40:#define __STDC_LIMIT_MACROS 1
        -:        -:   41:#endif
        -:        -:   42:
        -:        -:   43:#include <inttypes.h>
        -:        -:   44:typedef int8_t flex_int8_t;
        -:        -:   45:typedef uint8_t flex_uint8_t;
        -:        -:   46:typedef int16_t flex_int16_t;
        -:        -:   47:typedef uint16_t flex_uint16_t;
        -:        -:   48:typedef int32_t flex_int32_t;
        -:        -:   49:typedef uint32_t flex_uint32_t;
        -:        -:   50:#else
        -:        -:   51:typedef signed char flex_int8_t;
        -:        -:   52:typedef short int flex_int16_t;
        -:        -:   53:typedef int flex_int32_t;
        -:        -:   54:typedef unsigned char flex_uint8_t; 
        -:        -:   55:typedef unsigned short int flex_uint16_t;
        -:        -:   56:typedef unsigned int flex_uint32_t;
        -:        -:   57:
        -:        -:   58:/* Limits of integral types. */
        -:        -:   59:#ifndef INT8_MIN
        -:        -:   60:#define INT8_MIN               (-128)
        -:        -:   61:#endif
        -:        -:   62:#ifndef INT16_MIN
        -:        -:   63:#define INT16_MIN              (-32767-1)
        -:        -:   64:#endif
        -:        -:   65:#ifndef INT32_MIN
        -:        -:   66:#define INT32_MIN              (-2147483647-1)
        -:        -:   67:#endif
        -:        -:   68:#ifndef INT8_MAX
        -:        -:   69:#define INT8_MAX               (127)
        -:        -:   70:#endif
        -:        -:   71:#ifndef INT16_MAX
        -:        -:   72:#define INT16_MAX              (32767)
        -:        -:   73:#endif
        -:        -:   74:#ifndef INT32_MAX
        -:        -:   75:#define INT32_MAX              (2147483647)
        -:        -:   76:#endif
        -:        -:   77:#ifndef UINT8_MAX
        -:        -:   78:#define UINT8_MAX              (255U)
        -:        -:   79:#endif
        -:        -:   80:#ifndef UINT16_MAX
        -:        -:   81:#define UINT16_MAX             (65535U)
        -:        -:   82:#endif
        -:        -:   83:#ifndef UINT32_MAX
        -:        -:   84:#define UINT32_MAX             (4294967295U)
        -:        -:   85:#endif
        -:        -:   86:
        -:        -:   87:#endif /* ! C99 */
        -:        -:   88:
        -:        -:   89:#endif /* ! FLEXINT_H */
        -:        -:   90:
        -:        -:   91:#ifdef __cplusplus
        -:        -:   92:
        -:        -:   93:/* The "const" storage-class-modifier is valid. */
        -:        -:   94:#define YY_USE_CONST
        -:        -:   95:
        -:        -:   96:#else	/* ! __cplusplus */
        -:        -:   97:
        -:        -:   98:/* C99 requires __STDC__ to be defined as 1. */
        -:        -:   99:#if defined (__STDC__)
        -:        -:  100:
        -:        -:  101:#define YY_USE_CONST
        -:        -:  102:
        -:        -:  103:#endif	/* defined (__STDC__) */
        -:        -:  104:#endif	/* ! __cplusplus */
        -:        -:  105:
        -:        -:  106:#ifdef YY_USE_CONST
        -:        -:  107:#define yyconst const
        -:        -:  108:#else
        -:        -:  109:#define yyconst
        -:        -:  110:#endif
        -:        -:  111:
        -:        -:  112:/* Returned upon end-of-file. */
        -:        -:  113:#define YY_NULL 0
        -:        -:  114:
        -:        -:  115:/* Promotes a possibly negative, possibly signed char to an unsigned
        -:        -:  116: * integer for use as an array index.  If the signed char is negative,
        -:        -:  117: * we want to instead treat it as an 8-bit unsigned char, hence the
        -:        -:  118: * double cast.
        -:        -:  119: */
        -:        -:  120:#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
        -:        -:  121:
        -:        -:  122:/* An opaque pointer. */
        -:        -:  123:#ifndef YY_TYPEDEF_YY_SCANNER_T
        -:        -:  124:#define YY_TYPEDEF_YY_SCANNER_T
        -:        -:  125:typedef void* yyscan_t;
        -:        -:  126:#endif
        -:        -:  127:
        -:        -:  128:/* For convenience, these vars (plus the bison vars far below)
        -:        -:  129:   are macros in the reentrant scanner. */
        -:        -:  130:#define yyin yyg->yyin_r
        -:        -:  131:#define yyout yyg->yyout_r
        -:        -:  132:#define yyextra yyg->yyextra_r
        -:        -:  133:#define yyleng yyg->yyleng_r
        -:        -:  134:#define yytext yyg->yytext_r
        -:        -:  135:#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
        -:        -:  136:#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
        -:        -:  137:#define yy_flex_debug yyg->yy_flex_debug_r
        -:        -:  138:
        -:        -:  139:/* Enter a start condition.  This macro really ought to take a parameter,
        -:        -:  140: * but we do it the disgusting crufty way forced on us by the ()-less
        -:        -:  141: * definition of BEGIN.
        -:        -:  142: */
        -:        -:  143:#define BEGIN yyg->yy_start = 1 + 2 *
        -:        -:  144:
        -:        -:  145:/* Translate the current start state into a value that can be later handed
        -:        -:  146: * to BEGIN to return to the state.  The YYSTATE alias is for lex
        -:        -:  147: * compatibility.
        -:        -:  148: */
        -:        -:  149:#define YY_START ((yyg->yy_start - 1) / 2)
        -:        -:  150:#define YYSTATE YY_START
        -:        -:  151:
        -:        -:  152:/* Action number for EOF rule of a given start state. */
        -:        -:  153:#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
        -:        -:  154:
        -:        -:  155:/* Special action meaning "start processing a new file". */
        -:        -:  156:#define YY_NEW_FILE _mesa_glsl_lexer_restart(yyin ,yyscanner )
        -:        -:  157:
        -:        -:  158:#define YY_END_OF_BUFFER_CHAR 0
        -:        -:  159:
        -:        -:  160:/* Size of default input buffer. */
        -:        -:  161:#ifndef YY_BUF_SIZE
        -:        -:  162:#ifdef __ia64__
        -:        -:  163:/* On IA-64, the buffer size is 16k, not 8k.
        -:        -:  164: * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
        -:        -:  165: * Ditto for the __ia64__ case accordingly.
        -:        -:  166: */
        -:        -:  167:#define YY_BUF_SIZE 32768
        -:        -:  168:#else
        -:        -:  169:#define YY_BUF_SIZE 16384
        -:        -:  170:#endif /* __ia64__ */
        -:        -:  171:#endif
        -:        -:  172:
        -:        -:  173:/* The state buf must be large enough to hold one state per character in the main buffer.
        -:        -:  174: */
        -:        -:  175:#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
        -:        -:  176:
        -:        -:  177:#ifndef YY_TYPEDEF_YY_BUFFER_STATE
        -:        -:  178:#define YY_TYPEDEF_YY_BUFFER_STATE
        -:        -:  179:typedef struct yy_buffer_state *YY_BUFFER_STATE;
        -:        -:  180:#endif
        -:        -:  181:
        -:        -:  182:#ifndef YY_TYPEDEF_YY_SIZE_T
        -:        -:  183:#define YY_TYPEDEF_YY_SIZE_T
        -:        -:  184:typedef size_t yy_size_t;
        -:        -:  185:#endif
        -:        -:  186:
        -:        -:  187:#define EOB_ACT_CONTINUE_SCAN 0
        -:        -:  188:#define EOB_ACT_END_OF_FILE 1
        -:        -:  189:#define EOB_ACT_LAST_MATCH 2
        -:        -:  190:
        -:        -:  191:    #define YY_LESS_LINENO(n)
        -:        -:  192:    #define YY_LINENO_REWIND_TO(ptr)
        -:        -:  193:    
        -:        -:  194:/* Return all but the first "n" matched characters back to the input stream. */
        -:        -:  195:#define yyless(n) \
        -:        -:  196:	do \
        -:        -:  197:		{ \
        -:        -:  198:		/* Undo effects of setting up yytext. */ \
        -:        -:  199:        int yyless_macro_arg = (n); \
        -:        -:  200:        YY_LESS_LINENO(yyless_macro_arg);\
        -:        -:  201:		*yy_cp = yyg->yy_hold_char; \
        -:        -:  202:		YY_RESTORE_YY_MORE_OFFSET \
        -:        -:  203:		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
        -:        -:  204:		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
        -:        -:  205:		} \
        -:        -:  206:	while ( 0 )
        -:        -:  207:
        -:        -:  208:#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
        -:        -:  209:
        -:        -:  210:#ifndef YY_STRUCT_YY_BUFFER_STATE
        -:        -:  211:#define YY_STRUCT_YY_BUFFER_STATE
        -:        -:  212:struct yy_buffer_state
        -:        -:  213:	{
        -:        -:  214:	FILE *yy_input_file;
        -:        -:  215:
        -:        -:  216:	char *yy_ch_buf;		/* input buffer */
        -:        -:  217:	char *yy_buf_pos;		/* current position in input buffer */
        -:        -:  218:
        -:        -:  219:	/* Size of input buffer in bytes, not including room for EOB
        -:        -:  220:	 * characters.
        -:        -:  221:	 */
        -:        -:  222:	yy_size_t yy_buf_size;
        -:        -:  223:
        -:        -:  224:	/* Number of characters read into yy_ch_buf, not including EOB
        -:        -:  225:	 * characters.
        -:        -:  226:	 */
        -:        -:  227:	int yy_n_chars;
        -:        -:  228:
        -:        -:  229:	/* Whether we "own" the buffer - i.e., we know we created it,
        -:        -:  230:	 * and can realloc() it to grow it, and should free() it to
        -:        -:  231:	 * delete it.
        -:        -:  232:	 */
        -:        -:  233:	int yy_is_our_buffer;
        -:        -:  234:
        -:        -:  235:	/* Whether this is an "interactive" input source; if so, and
        -:        -:  236:	 * if we're using stdio for input, then we want to use getc()
        -:        -:  237:	 * instead of fread(), to make sure we stop fetching input after
        -:        -:  238:	 * each newline.
        -:        -:  239:	 */
        -:        -:  240:	int yy_is_interactive;
        -:        -:  241:
        -:        -:  242:	/* Whether we're considered to be at the beginning of a line.
        -:        -:  243:	 * If so, '^' rules will be active on the next match, otherwise
        -:        -:  244:	 * not.
        -:        -:  245:	 */
        -:        -:  246:	int yy_at_bol;
        -:        -:  247:
        -:        -:  248:    int yy_bs_lineno; /**< The line count. */
        -:        -:  249:    int yy_bs_column; /**< The column count. */
        -:        -:  250:    
        -:        -:  251:	/* Whether to try to fill the input buffer when we reach the
        -:        -:  252:	 * end of it.
        -:        -:  253:	 */
        -:        -:  254:	int yy_fill_buffer;
        -:        -:  255:
        -:        -:  256:	int yy_buffer_status;
        -:        -:  257:
        -:        -:  258:#define YY_BUFFER_NEW 0
        -:        -:  259:#define YY_BUFFER_NORMAL 1
        -:        -:  260:	/* When an EOF's been seen but there's still some text to process
        -:        -:  261:	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
        -:        -:  262:	 * shouldn't try reading from the input source any more.  We might
        -:        -:  263:	 * still have a bunch of tokens to match, though, because of
        -:        -:  264:	 * possible backing-up.
        -:        -:  265:	 *
        -:        -:  266:	 * When we actually see the EOF, we change the status to "new"
        -:        -:  267:	 * (via _mesa_glsl_lexer_restart()), so that the user can continue scanning by
        -:        -:  268:	 * just pointing yyin at a new input file.
        -:        -:  269:	 */
        -:        -:  270:#define YY_BUFFER_EOF_PENDING 2
        -:        -:  271:
        -:        -:  272:	};
        -:        -:  273:#endif /* !YY_STRUCT_YY_BUFFER_STATE */
        -:        -:  274:
        -:        -:  275:/* We provide macros for accessing buffer states in case in the
        -:        -:  276: * future we want to put the buffer states in a more general
        -:        -:  277: * "scanner state".
        -:        -:  278: *
        -:        -:  279: * Returns the top of the stack, or NULL.
        -:        -:  280: */
        -:        -:  281:#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
        -:        -:  282:                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
        -:        -:  283:                          : NULL)
        -:        -:  284:
        -:        -:  285:/* Same as previous macro, but useful when we know that the buffer stack is not
        -:        -:  286: * NULL or when we need an lvalue. For internal use only.
        -:        -:  287: */
        -:        -:  288:#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
        -:        -:  289:
        -:        -:  290:void _mesa_glsl_lexer_restart (FILE *input_file ,yyscan_t yyscanner );
        -:        -:  291:void _mesa_glsl_lexer__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
        -:        -:  292:YY_BUFFER_STATE _mesa_glsl_lexer__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
        -:        -:  293:void _mesa_glsl_lexer__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
        -:        -:  294:void _mesa_glsl_lexer__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
        -:        -:  295:void _mesa_glsl_lexer_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
        -:        -:  296:void _mesa_glsl_lexer_pop_buffer_state (yyscan_t yyscanner );
        -:        -:  297:
        -:        -:  298:static void _mesa_glsl_lexer_ensure_buffer_stack (yyscan_t yyscanner );
        -:        -:  299:static void _mesa_glsl_lexer__load_buffer_state (yyscan_t yyscanner );
        -:        -:  300:static void _mesa_glsl_lexer__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
        -:        -:  301:
        -:        -:  302:#define YY_FLUSH_BUFFER _mesa_glsl_lexer__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
        -:        -:  303:
        -:        -:  304:YY_BUFFER_STATE _mesa_glsl_lexer__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
        -:        -:  305:YY_BUFFER_STATE _mesa_glsl_lexer__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
        -:        -:  306:YY_BUFFER_STATE _mesa_glsl_lexer__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
        -:        -:  307:
        -:        -:  308:void *_mesa_glsl_lexer_alloc (yy_size_t ,yyscan_t yyscanner );
        -:        -:  309:void *_mesa_glsl_lexer_realloc (void *,yy_size_t ,yyscan_t yyscanner );
        -:        -:  310:void _mesa_glsl_lexer_free (void * ,yyscan_t yyscanner );
        -:        -:  311:
        -:        -:  312:#define yy_new_buffer _mesa_glsl_lexer__create_buffer
        -:        -:  313:
        -:        -:  314:#define yy_set_interactive(is_interactive) \
        -:        -:  315:	{ \
        -:        -:  316:	if ( ! YY_CURRENT_BUFFER ){ \
        -:        -:  317:        _mesa_glsl_lexer_ensure_buffer_stack (yyscanner); \
        -:        -:  318:		YY_CURRENT_BUFFER_LVALUE =    \
        -:        -:  319:            _mesa_glsl_lexer__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        -:        -:  320:	} \
        -:        -:  321:	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
        -:        -:  322:	}
        -:        -:  323:
        -:        -:  324:#define yy_set_bol(at_bol) \
        -:        -:  325:	{ \
        -:        -:  326:	if ( ! YY_CURRENT_BUFFER ){\
        -:        -:  327:        _mesa_glsl_lexer_ensure_buffer_stack (yyscanner); \
        -:        -:  328:		YY_CURRENT_BUFFER_LVALUE =    \
        -:        -:  329:            _mesa_glsl_lexer__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
        -:        -:  330:	} \
        -:        -:  331:	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
        -:        -:  332:	}
        -:        -:  333:
        -:        -:  334:#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
        -:        -:  335:
        -:        -:  336:/* Begin user sect3 */
        -:        -:  337:
        -:        -:  338:#define _mesa_glsl_lexer_wrap(yyscanner) (/*CONSTCOND*/1)
        -:        -:  339:#define YY_SKIP_YYWRAP
        -:        -:  340:
        -:        -:  341:typedef unsigned char YY_CHAR;
        -:        -:  342:
        -:        -:  343:typedef int yy_state_type;
        -:        -:  344:
        -:        -:  345:#define yytext_ptr yytext_r
        -:        -:  346:
        -:        -:  347:static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
        -:        -:  348:static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
        -:        -:  349:static int yy_get_next_buffer (yyscan_t yyscanner );
        -:        -:  350:#if defined(__GNUC__) && __GNUC__ >= 3
        -:        -:  351:__attribute__((__noreturn__))
        -:        -:  352:#endif
        -:        -:  353:static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
        -:        -:  354:
        -:        -:  355:/* Done after the current pattern has been matched and before the
        -:        -:  356: * corresponding action - sets up yytext.
        -:        -:  357: */
        -:        -:  358:#define YY_DO_BEFORE_ACTION \
        -:        -:  359:	yyg->yytext_ptr = yy_bp; \
        -:        -:  360:	yyleng = (size_t) (yy_cp - yy_bp); \
        -:        -:  361:	yyg->yy_hold_char = *yy_cp; \
        -:        -:  362:	*yy_cp = '\0'; \
        -:        -:  363:	yyg->yy_c_buf_p = yy_cp;
        -:        -:  364:
        -:        -:  365:#define YY_NUM_RULES 275
        -:        -:  366:#define YY_END_OF_BUFFER 276
        -:        -:  367:/* This struct is not used in this scanner,
        -:        -:  368:   but its presence is necessary. */
        -:        -:  369:struct yy_trans_info
        -:        -:  370:	{
        -:        -:  371:	flex_int32_t yy_verify;
        -:        -:  372:	flex_int32_t yy_nxt;
        -:        -:  373:	};
        -:        -:  374:static yyconst flex_int16_t yy_accept[1078] =
        -:        -:  375:    {   0,
        -:        -:  376:        0,    0,   16,   16,    0,    0,  276,  274,    1,   23,
        -:        -:  377:      274,  274,  274,  274,  274,  274,  273,  274,  180,  178,
        -:        -:  378:      274,  274,  274,  272,  274,  272,  272,  272,  272,  272,
        -:        -:  379:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  380:      272,  272,  272,  272,  272,  274,    1,  274,   22,   16,
        -:        -:  381:       21,   22,   20,   19,   17,   18,   14,   13,    1,  162,
        -:        -:  382:      171,  163,  174,  168,  157,  170,  158,  177,  182,  169,
        -:        -:  383:      183,  180,    0,    0,  180,  180,    0,  180,  178,  178,
        -:        -:  384:      178,  178,  166,  159,  161,  160,  167,  272,  175,  165,
        -:        -:  385:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  386:
        -:        -:  387:      272,  272,  272,  272,   32,  272,  272,  272,  272,  272,
        -:        -:  388:      272,  272,  272,  272,  272,  272,  272,  272,  272,   36,
        -:        -:  389:      272,  272,   63,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  390:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  391:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  392:      272,  272,  272,  272,  272,  272,  272,  272,  176,  164,
        -:        -:  393:        1,    0,    0,    2,    0,    0,    0,    0,   16,   15,
        -:        -:  394:       19,   18,    0,  182,    0,    0,  181,    0,  183,    0,
        -:        -:  395:        0,    0,  184,  179,  172,  173,  272,  191,  272,  272,
        -:        -:  396:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  397:
        -:        -:  398:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  399:      272,  272,  272,   35,  272,  272,  272,  272,  272,  272,
        -:        -:  400:      272,  272,  272,  272,  272,   28,  272,  272,  272,  272,
        -:        -:  401:      272,  272,  272,  272,  272,  272,  272,   64,  272,  272,
        -:        -:  402:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  403:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  404:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  405:      272,  272,  272,  272,  272,    0,    0,    0,    0,   15,
        -:        -:  406:        0,  182,  186,    0,  181,    0,    0,    0,  183,  187,
        -:        -:  407:      184,    0,    0,  179,  179,  179,  272,  272,  272,   26,
        -:        -:  408:
        -:        -:  409:      272,  272,  272,  249,  242,  272,  272,  272,  272,  272,
        -:        -:  410:      272,  272,  272,  272,  272,  272,   34,  194,  272,  272,
        -:        -:  411:      272,  272,   71,  272,  272,  199,  212,  272,  272,  272,
        -:        -:  412:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  413:      272,  209,  245,   51,   52,   53,  272,  272,  272,  272,
        -:        -:  414:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  415:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  416:      272,  272,  197,  189,  272,  272,  272,   29,  272,  272,
        -:        -:  417:      272,  272,  272,  272,  272,   48,   49,   50,  155,  272,
        -:        -:  418:      272,  272,    0,    0,    0,    0,    0,  181,  185,  188,
        -:        -:  419:
        -:        -:  420:      272,  272,  272,   30,  272,   39,   40,   41,  272,  192,
        -:        -:  421:      272,  272,   25,  272,  272,  272,  223,  224,  225,  272,
        -:        -:  422:      220,  221,  222,  272,  190,  272,  213,   27,  235,  236,
        -:        -:  423:      237,  247,  217,  218,  219,  272,  272,  272,  272,   65,
        -:        -:  424:      215,  272,  272,  272,  272,   42,   43,   44,  272,  272,
        -:        -:  425:      272,  272,  272,  272,  272,  272,  272,  272,  272,   74,
        -:        -:  426:      272,  272,  272,  272,  272,  272,  272,  272,  272,  210,
        -:        -:  427:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  428:      272,  272,  272,  193,  272,  272,  244,   45,   46,   47,
        -:        -:  429:      272,  272,   33,  272,    0,    0,    0,    0,  252,  272,
        -:        -:  430:
        -:        -:  431:      272,   67,  272,  272,  250,  272,  272,  272,  272,  272,
        -:        -:  432:      272,  211,  206,  255,  272,  272,  272,  272,  272,  272,
        -:        -:  433:      272,  202,  272,  272,  272,  272,  156,   54,   55,   56,
        -:        -:  434:       57,   58,   59,   60,   61,   62,  272,  272,  272,  272,
        -:        -:  435:      216,  198,  272,  272,  204,  272,  272,  272,   38,  272,
        -:        -:  436:      262,  153,  241,   72,  205,  154,  272,  253,  200,  272,
        -:        -:  437:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  438:        0,    0,    0,    0,  272,  272,  272,  272,  272,  201,
        -:        -:  439:       37,  226,  227,  228,  229,  230,  231,  232,  233,  234,
        -:        -:  440:      272,  265,  266,  267,  272,  272,  272,  272,  272,  110,
        -:        -:  441:
        -:        -:  442:      111,  112,  272,  272,  264,  272,  272,  272,  246,  272,
        -:        -:  443:      272,  272,  272,  109,  272,  272,  272,  272,  272,  272,
        -:        -:  444:      272,  272,  195,  269,  270,  271,  272,  272,  272,  272,
        -:        -:  445:      272,  272,   66,  272,  272,   68,  272,  272,    0,    0,
        -:        -:  446:        0,    0,    0,  272,  272,   69,  147,   31,  207,  121,
        -:        -:  447:      122,  123,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  448:      272,  272,  272,  272,  272,  272,  203,  272,  272,  272,
        -:        -:  449:      150,  261,  149,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  450:      272,  196,  132,  133,  134,  272,  272,  268,  214,  272,
        -:        -:  451:      148,  272,    0,    0,    6,    0,    0,    0,   12,    3,
        -:        -:  452:
        -:        -:  453:      272,   24,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  454:      272,  119,  272,  272,  272,  114,  208,   70,  272,  272,
        -:        -:  455:      272,  272,  272,  243,  272,  251,  248,  256,   75,   76,
        -:        -:  456:       77,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  457:      272,  272,  272,  272,  272,  272,  151,    0,    0,    0,
        -:        -:  458:        0,    0,    0,    0,  272,  272,  272,  130,  272,  272,
        -:        -:  459:      125,  272,  272,  272,  272,  272,  272,  272,  272,   86,
        -:        -:  460:       87,   88,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  461:      272,  272,  272,  272,  272,  263,  272,  272,  141,  272,
        -:        -:  462:      272,  136,   92,   93,   94,  272,  272,    4,    0,    5,
        -:        -:  463:
        -:        -:  464:        0,    0,    0,    0,    0,    0,  152,  272,  272,  272,
        -:        -:  465:      272,  272,  272,  272,  272,  272,  272,  113,  272,  115,
        -:        -:  466:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  467:      272,   98,  272,  272,  272,  272,   78,  272,  272,  272,
        -:        -:  468:      272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  469:        0,    0,    0,    0,  272,  272,  272,  124,  126,  272,
        -:        -:  470:      116,  272,  117,  272,  272,  272,  272,  272,   99,  272,
        -:        -:  471:      272,   89,  272,  272,  272,  272,  272,  272,  272,  272,
        -:        -:  472:      272,  272,  272,  272,  272,  272,  272,  135,  137,  272,
        -:        -:  473:      272,  272,  100,  272,  272,   95,    0,    0,    0,  127,
        -:        -:  474:
        -:        -:  475:      128,  272,  272,  272,  143,  272,  272,  144,  272,  272,
        -:        -:  476:      272,  272,  272,  272,  272,   73,  272,  272,  272,  272,
        -:        -:  477:      238,  272,  239,  254,  272,  272,  272,  138,  139,  272,
        -:        -:  478:      272,  272,  272,  272,  272,  272,  272,    0,    0,    0,
        -:        -:  479:      272,  272,  272,  272,  120,  118,  272,  272,  272,  257,
        -:        -:  480:      259,  272,   79,  272,   80,  272,  272,  272,  272,  272,
        -:        -:  481:      272,  272,  272,  272,  272,  272,  258,  260,  272,    0,
        -:        -:  482:        0,    0,    0,  131,  129,  272,  272,   90,   91,  272,
        -:        -:  483:      272,  272,   81,  272,  272,  272,   82,  272,  272,  272,
        -:        -:  484:      142,  140,   96,   97,  272,  272,    0,    0,    0,    0,
        -:        -:  485:
        -:        -:  486:      272,  272,  272,  272,  272,  272,  101,  272,  104,  272,
        -:        -:  487:      272,  272,  272,    0,    0,    0,    0,  272,  272,  102,
        -:        -:  488:      105,  272,  272,  272,  272,   83,  272,  103,  106,    0,
        -:        -:  489:        0,    0,    7,    0,    0,  145,  146,  272,  272,  272,
        -:        -:  490:      272,  108,    0,    0,    8,    0,    0,  272,  272,  240,
        -:        -:  491:      272,    0,    0,    0,   84,   85,  272,    0,    0,    0,
        -:        -:  492:        9,  272,    0,    0,   10,  107,    0,    0,    0,    0,
        -:        -:  493:        0,    0,    0,    0,    0,   11,    0
        -:        -:  494:    } ;
        -:        -:  495:
        -:        -:  496:static yyconst YY_CHAR yy_ec[256] =
        -:        -:  497:    {   0,
        -:        -:  498:        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        -:        -:  499:        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  500:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  501:        1,    2,    5,    1,    6,    1,    7,    8,    1,    9,
        -:        -:  502:       10,   11,   12,    1,   13,   14,   15,   16,   17,   18,
        -:        -:  503:       19,   20,   21,   22,   21,   23,   23,   24,    1,   25,
        -:        -:  504:       26,   27,    1,    1,   28,   29,   30,   31,   32,   33,
        -:        -:  505:       34,   35,   35,   35,   35,   36,   37,   35,   38,   35,
        -:        -:  506:       35,   39,   40,   41,   42,   35,   35,   43,   35,   35,
        -:        -:  507:        1,    1,    1,   44,   45,    1,   46,   47,   48,   49,
        -:        -:  508:
        -:        -:  509:       50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
        -:        -:  510:       60,   61,   35,   62,   63,   64,   65,   66,   67,   68,
        -:        -:  511:       69,   70,    1,   71,    1,    1,    1,    1,    1,    1,
        -:        -:  512:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  513:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  514:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  515:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  516:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  517:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  518:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  519:
        -:        -:  520:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  521:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  522:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  523:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  524:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  525:        1,    1,    1,    1,    1
        -:        -:  526:    } ;
        -:        -:  527:
        -:        -:  528:static yyconst YY_CHAR yy_meta[72] =
        -:        -:  529:    {   0,
        -:        -:  530:        1,    2,    3,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  531:        1,    1,    1,    4,    1,    5,    5,    5,    5,    5,
        -:        -:  532:        5,    5,    6,    1,    1,    1,    1,    7,    7,    7,
        -:        -:  533:        7,    8,    9,   10,   10,   11,   10,   10,   10,   10,
        -:        -:  534:       10,   10,   12,    1,   10,    7,    7,    7,    7,    8,
        -:        -:  535:        9,   10,   10,   10,   10,   10,   11,   10,   10,   10,
        -:        -:  536:       10,   10,   10,   10,   10,   10,   10,   12,   10,   10,
        -:        -:  537:        1
        -:        -:  538:    } ;
        -:        -:  539:
        -:        -:  540:static yyconst flex_uint16_t yy_base[1092] =
        -:        -:  541:    {   0,
        -:        -:  542:        0,   70,   76,    0, 1517, 1516, 1518, 1521,   71, 1521,
        -:        -:  543:     1491, 1490,  140, 1489,  137,  138,  136, 1488,  153,  208,
        -:        -:  544:      135, 1487,  151,    0,  124,  117,  122,  133,  147,  141,
        -:        -:  545:      188, 1452,  140,  198,  156,  158,  173, 1446,  197,  186,
        -:        -:  546:      214,  213,  217,  191,  161,  206,  282,  267, 1521,  213,
        -:        -:  547:     1521, 1495, 1521,  273, 1521,    0, 1521, 1521,  251, 1521,
        -:        -:  548:     1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,  318, 1521,
        -:        -:  549:      360,  231,  271,  288, 1521, 1473,    0, 1451,    0, 1521,
        -:        -:  550:     1471, 1449, 1479, 1521, 1521, 1521, 1478,    0, 1521, 1521,
        -:        -:  551:     1439, 1444,  238, 1441, 1450, 1448, 1448, 1434, 1437, 1449,
        -:        -:  552:
        -:        -:  553:      260, 1443, 1430, 1446, 1426, 1440, 1426, 1423, 1423, 1429,
        -:        -:  554:      255,  269, 1423, 1434, 1419, 1425, 1429, 1430, 1459,    0,
        -:        -:  555:     1420, 1431,  292, 1430, 1425, 1405,  132, 1409, 1423, 1413,
        -:        -:  556:      266, 1406,  268, 1419, 1421,  279, 1400, 1408,  285, 1395,
        -:        -:  557:     1404,  298,  300, 1409, 1404, 1407, 1395, 1398, 1438,  153,
        -:        -:  558:      184,  268, 1407, 1394, 1407,  305, 1400, 1399, 1521, 1521,
        -:        -:  559:      361,  368,  370, 1521, 1384, 1397, 1388, 1399,  344,    0,
        -:        -:  560:      368,    0,  382, 1521, 1415, 1396,  390,  432, 1521, 1413,
        -:        -:  561:     1394,  440,  373,  428, 1521, 1521, 1390,    0, 1385, 1380,
        -:        -:  562:     1384, 1394, 1388, 1390,  357, 1373, 1373, 1385, 1376,  349,
        -:        -:  563:
        -:        -:  564:     1387, 1384, 1367, 1383, 1381, 1378, 1369, 1376, 1362, 1360,
        -:        -:  565:     1373, 1358, 1375,    0, 1372, 1359, 1367, 1364, 1368, 1349,
        -:        -:  566:     1368, 1361, 1358, 1346, 1345,  392, 1363, 1350, 1359, 1346,
        -:        -:  567:     1353, 1343,  419, 1349, 1352, 1342, 1350, 1338, 1342, 1333,
        -:        -:  568:     1348, 1347, 1337, 1344,  355, 1327, 1346, 1329, 1327, 1326,
        -:        -:  569:     1337, 1326, 1321, 1319, 1321, 1332, 1317, 1319, 1316, 1328,
        -:        -:  570:     1327, 1310, 1329, 1310,  304, 1319, 1314, 1312, 1322, 1300,
        -:        -:  571:      447, 1319, 1321, 1309, 1301, 1300, 1304, 1316, 1299,    0,
        -:        -:  572:      455,  446, 1521,  488, 1521, 1327, 1308,  496,  487, 1521,
        -:        -:  573:     1521, 1325, 1306, 1521, 1320, 1298, 1288, 1299, 1298,    0,
        -:        -:  574:
        -:        -:  575:     1295, 1300,  468,    0,    0, 1287, 1285, 1285, 1286, 1281,
        -:        -:  576:     1290, 1278, 1296,  471, 1284,  476,    0,    0, 1278, 1289,
        -:        -:  577:     1288, 1288,    0, 1272,  506,    0,    0, 1274,  509, 1284,
        -:        -:  578:     1281, 1282, 1272, 1266, 1265, 1308, 1265, 1264, 1264,  512,
        -:        -:  579:     1259,    0,    0, 1255, 1254, 1253, 1255, 1256, 1261, 1255,
        -:        -:  580:     1251, 1265, 1260, 1260, 1258, 1257, 1250, 1244, 1246, 1245,
        -:        -:  581:     1248, 1248, 1254, 1239, 1242, 1237, 1246, 1251, 1238, 1235,
        -:        -:  582:     1248, 1238,    0,    0, 1245, 1243, 1240, 1269, 1230, 1230,
        -:        -:  583:     1236, 1226, 1234,  515, 1231,    0,    0,    0,    0, 1220,
        -:        -:  584:     1233, 1232, 1231, 1230, 1227, 1215,  529,  503, 1521, 1521,
        -:        -:  585:
        -:        -:  586:     1227, 1228, 1228,    0, 1212,    0,    0,    0, 1213,    0,
        -:        -:  587:     1222, 1212,    0, 1211, 1212, 1206, 1199, 1198, 1197, 1214,
        -:        -:  588:        0,    0,    0, 1204,    0, 1200,    0,    0,    0,    0,
        -:        -:  589:        0,    0,    0,    0,    0, 1213, 1210,  538, 1209,    0,
        -:        -:  590:        0, 1213, 1206, 1202, 1198,    0,    0,    0, 1190,  522,
        -:        -:  591:      543,  546, 1195, 1191, 1197, 1187, 1185, 1199, 1183,    0,
        -:        -:  592:     1183, 1197, 1185, 1181, 1188, 1182, 1194, 1189, 1189,    0,
        -:        -:  593:     1186, 1183, 1187, 1170, 1168, 1171, 1178, 1184, 1179, 1180,
        -:        -:  594:     1177, 1206, 1163,    0, 1165, 1166,    0,    0,    0,    0,
        -:        -:  595:     1163, 1167,    0, 1160, 1160, 1216, 1159, 1162,    0, 1170,
        -:        -:  596:
        -:        -:  597:     1149,    0, 1159, 1153,    0, 1146, 1146, 1160,  551,  554,
        -:        -:  598:      557,    0, 1162,    0,  560,  564, 1176, 1175, 1174, 1139,
        -:        -:  599:     1138,    0, 1138, 1155, 1154, 1149,    0,    0,    0,    0,
        -:        -:  600:        0,    0,    0,    0,    0,    0, 1137, 1151, 1137, 1134,
        -:        -:  601:        0,    0, 1140,  378,    0, 1136, 1144, 1143,    0, 1135,
        -:        -:  602:     1127,    0,    0,    0,    0,    0, 1124,    0,    0, 1123,
        -:        -:  603:     1135,  566,  570, 1140, 1126, 1133, 1132, 1129, 1123, 1120,
        -:        -:  604:     1115,  588, 1131, 1116, 1110, 1110, 1124, 1108, 1121,    0,
        -:        -:  605:        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        -:        -:  606:     1113,    0,    0,    0, 1138, 1137, 1136, 1101, 1100,  440,
        -:        -:  607:
        -:        -:  608:      575,    0, 1113, 1116,    0, 1114, 1102, 1098,    0, 1111,
        -:        -:  609:     1108, 1107, 1096,    0, 1095, 1085, 1103, 1088, 1091,  599,
        -:        -:  610:     1096, 1099,    0,    0,    0,    0, 1117, 1116, 1115, 1080,
        -:        -:  611:     1079, 1079,    0, 1093, 1079,    0, 1090, 1082, 1084,  589,
        -:        -:  612:      617, 1135, 1077, 1081, 1084,    0,    0,    0,    0, 1105,
        -:        -:  613:      585,    0, 1081, 1084, 1068, 1076, 1066, 1087, 1076, 1072,
        -:        -:  614:     1073, 1073, 1072, 1057,  624, 1070,    0, 1071, 1059, 1058,
        -:        -:  615:        0,    0,    0, 1054, 1084, 1083, 1082, 1047, 1046, 1042,
        -:        -:  616:     1050,    0, 1080,  619,    0, 1056, 1059,    0,    0,  631,
        -:        -:  617:        0, 1036, 1044,  649, 1521,  660,    0,  671,  657, 1521,
        -:        -:  618:
        -:        -:  619:     1044,    0, 1040, 1039, 1060, 1049, 1047, 1047, 1034, 1049,
        -:        -:  620:     1032, 1065, 1044, 1045, 1040, 1061,    0,    0, 1057, 1056,
        -:        -:  621:     1055, 1020, 1019,    0, 1019,    0,    0,    0,  441,  668,
        -:        -:  622:     1043, 1030, 1027, 1009, 1022, 1009, 1008, 1029, 1017, 1007,
        -:        -:  623:     1007, 1025, 1024, 1023,  988,  986,    0,  988,  642,  709,
        -:        -:  624:      481, 1004,  994,  979,  974,  975,  971, 1003,  982,  976,
        -:        -:  625:      996,  977,  962,  956,  906,  903,  917,  903,  902,  935,
        -:        -:  626:      647,    0,  911,  914,  906,  896,  904,  894,  915,  904,
        -:        -:  627:      900,  902,  900,  900,  899,    0,  886,  885,  917,  896,
        -:        -:  628:      893,  914,  911,  676,    0,  887,  890, 1521,  496, 1521,
        -:        -:  629:
        -:        -:  630:      717,    0,  738,  905,  888,  870,    0,   28,  116,  130,
        -:        -:  631:      171,  225,  235,  257,  297,  297,  312,    0,  337,    0,
        -:        -:  632:      346,  354,  371,  395,  393,  395,  442,  436,  459,  476,
        -:        -:  633:      475,  515,  505,  512,  511,  545,  655,  534,  551,  552,
        -:        -:  634:      539,  538,  559,  561,  563,  564,  587,  580,  595,  605,
        -:        -:  635:      696,  630,  635,  647,  633,  634,  647,    0,    0,  652,
        -:        -:  636:      676,  651,  681,  676,  656,  678,  680,  681,  716,  697,
        -:        -:  637:      696,  719,  698,  703,  701,  705,  690,  689,  713,  699,
        -:        -:  638:      702,  703,  713,  708,  699,  700,  708,    0,    0,  709,
        -:        -:  639:      710,  711,  746,  727,  726,  749,  742,  727,  722,    0,
        -:        -:  640:
        -:        -:  641:        0,  735,  736,  730,    0,  731,  716,    0,  717,  741,
        -:        -:  642:      742,  727,  726,  729,  730,    0,  724,  734,  726,  734,
        -:        -:  643:      757,  738,    0,    0,  737,  754,  755,    0,    0,  756,
        -:        -:  644:      757,  758,  759,  744,  743,  746,  747,  808,  809,  758,
        -:        -:  645:      744,  745,  769,  770,    0,    0,  748,  750,  758,    0,
        -:        -:  646:        0,  759,  782,  756,  784,  779,  773,  760,  782,  780,
        -:        -:  647:      773,  762,  763,  764,  765,  773,    0,    0,  774,  835,
        -:        -:  648:      836,  837,  770,    0,    0,  792,  793,    0,    0,  797,
        -:        -:  649:      798,  793,    0,  794,  779,  803,    0,  781,  791,  814,
        -:        -:  650:        0,    0,    0,    0,  807,  808,  796,  854,  806,  808,
        -:        -:  651:
        -:        -:  652:      799,  800,  792,  793,  817,  818,    0,  817,  827,  801,
        -:        -:  653:      837,  801,  802,  806,  822,  872,  874,  808,  810,    0,
        -:        -:  654:        0,  829,  830,  820,  828,    0,  844,    0,    0,  839,
        -:        -:  655:      884,  885, 1521,  889,  886,    0,    0,  830,  832,  826,
        -:        -:  656:      850,    0,  837,  898, 1521,  899,  851,  836,  837,    0,
        -:        -:  657:      856,  852,  856,  907,    0,    0,  851,  866,  911,  913,
        -:        -:  658:     1521,  849,  859,  917, 1521,    0,  856,  920,  922,  923,
        -:        -:  659:      924,  871,  873,  930,  931, 1521, 1521,  970,  978,  986,
        -:        -:  660:      995,  999, 1008, 1016, 1023, 1030, 1037, 1047, 1055, 1063,
        -:        -:  661:     1071
        -:        -:  662:
        -:        -:  663:    } ;
        -:        -:  664:
        -:        -:  665:static yyconst flex_int16_t yy_def[1092] =
        -:        -:  666:    {   0,
        -:        -:  667:     1077,    1, 1077,    3, 1078, 1078, 1077, 1077, 1077, 1077,
        -:        -:  668:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  669:     1077, 1077, 1077, 1079, 1077, 1079, 1079, 1079, 1079, 1079,
        -:        -:  670:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  671:     1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077, 1077, 1077,
        -:        -:  672:     1077, 1077, 1077, 1077, 1077, 1080, 1077, 1077, 1077, 1077,
        -:        -:  673:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  674:     1077,   19, 1081, 1077, 1077, 1077, 1082, 1077,   20, 1077,
        -:        -:  675:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1079, 1077, 1077,
        -:        -:  676:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  677:
        -:        -:  678:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  679:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  680:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  681:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  682:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  683:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077, 1077,
        -:        -:  684:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1083,
        -:        -:  685:     1077, 1080, 1077, 1077, 1077, 1077,   71, 1077, 1077, 1077,
        -:        -:  686:     1077, 1077, 1084, 1082, 1077, 1077, 1079, 1079, 1079, 1079,
        -:        -:  687:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  688:
        -:        -:  689:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  690:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  691:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  692:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  693:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  694:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  695:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  696:     1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077, 1077, 1083,
        -:        -:  697:     1077, 1085, 1077, 1077, 1077, 1077, 1077, 1077, 1086, 1077,
        -:        -:  698:     1077, 1077, 1077, 1077, 1077, 1077, 1079, 1079, 1079, 1079,
        -:        -:  699:
        -:        -:  700:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  701:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  702:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  703:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  704:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  705:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  706:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  707:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  708:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  709:     1079, 1079, 1077, 1077, 1077, 1077, 1077, 1087, 1077, 1077,
        -:        -:  710:
        -:        -:  711:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  712:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  713:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  714:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  715:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  716:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  717:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  718:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  719:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  720:     1079, 1079, 1079, 1079, 1077, 1077, 1077, 1077, 1079, 1079,
        -:        -:  721:
        -:        -:  722:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  723:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  724:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  725:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  726:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  727:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  728:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  729:     1077, 1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  730:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  731:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  732:
        -:        -:  733:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  734:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  735:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  736:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077, 1088,
        -:        -:  737:     1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  738:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  739:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  740:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  741:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  742:     1079, 1079, 1077, 1077, 1077, 1077, 1089, 1077, 1077, 1077,
        -:        -:  743:
        -:        -:  744:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  745:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  746:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  747:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  748:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077, 1090, 1077,
        -:        -:  749:     1089, 1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  750:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  751:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  752:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  753:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077,
        -:        -:  754:
        -:        -:  755:     1077, 1091, 1077, 1077, 1077, 1077, 1079, 1079, 1079, 1079,
        -:        -:  756:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  757:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  758:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  759:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  760:     1091, 1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  761:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  762:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  763:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  764:     1079, 1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077, 1079,
        -:        -:  765:
        -:        -:  766:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  767:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  768:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  769:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077,
        -:        -:  770:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  771:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  772:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077,
        -:        -:  773:     1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  774:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  775:     1079, 1079, 1079, 1079, 1079, 1079, 1077, 1077, 1077, 1077,
        -:        -:  776:
        -:        -:  777:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -:  778:     1079, 1079, 1079, 1077, 1077, 1077, 1077, 1079, 1079, 1079,
        -:        -:  779:     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1077,
        -:        -:  780:     1077, 1077, 1077, 1077, 1077, 1079, 1079, 1079, 1079, 1079,
        -:        -:  781:     1079, 1079, 1077, 1077, 1077, 1077, 1077, 1079, 1079, 1079,
        -:        -:  782:     1079, 1077, 1077, 1077, 1079, 1079, 1079, 1077, 1077, 1077,
        -:        -:  783:     1077, 1079, 1077, 1077, 1077, 1079, 1077, 1077, 1077, 1077,
        -:        -:  784:     1077, 1077, 1077, 1077, 1077, 1077,    0, 1077, 1077, 1077,
        -:        -:  785:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  786:     1077
        -:        -:  787:
        -:        -:  788:    } ;
        -:        -:  789:
        -:        -:  790:static yyconst flex_uint16_t yy_nxt[1593] =
        -:        -:  791:    {   0,
        -:        -:  792:        8,    9,   10,    9,   11,    8,   12,   13,    8,    8,
        -:        -:  793:       14,   15,   16,   17,   18,   19,   20,   20,   20,   20,
        -:        -:  794:       20,   20,   20,    8,   21,   22,   23,   24,   24,   24,
        -:        -:  795:       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
        -:        -:  796:       24,   24,   24,   25,   24,   26,   27,   28,   29,   30,
        -:        -:  797:       31,   32,   33,   34,   24,   24,   35,   36,   37,   38,
        -:        -:  798:       39,   40,   41,   42,   43,   44,   45,   24,   24,   24,
        -:        -:  799:       46,   47,   59,  855,   59,   48,   49,   50,   51,   50,
        -:        -:  800:       49,   49,   49,   49,   49,   49,   49,   49,   49,   49,
        -:        -:  801:       52,   53,   54,   54,   54,   54,   54,   54,   54,   55,
        -:        -:  802:
        -:        -:  803:       49,   49,   49,   56,   56,   56,   56,   56,   56,   56,
        -:        -:  804:       56,   56,   56,   56,   56,   56,   56,   56,   56,   49,
        -:        -:  805:       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
        -:        -:  806:       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
        -:        -:  807:       56,   56,   56,   56,   56,   56,   49,   62,   65,   89,
        -:        -:  808:       67,   69,   69,   69,   69,   69,   69,   69,   69,   83,
        -:        -:  809:       84,  856,   66,   68,   91,   63,   71,   90,   72,   72,
        -:        -:  810:       72,   72,   72,   72,   72,   73,   86,   87,   98,   92,
        -:        -:  811:       93,   94,   99,   95,   74,  116,   96,   97,   75,  100,
        -:        -:  812:      231,  857,  101,  117,   76,   77,  102,  107,  232,  108,
        -:        -:  813:
        -:        -:  814:      103,  126,   74,  128,  104,  118,  105,  129,  109,   75,
        -:        -:  815:      263,  264,  106,  157,  169,  127,  169,   78,  130,  119,
        -:        -:  816:       77,   71,  158,   79,   79,   79,   79,   79,   79,   79,
        -:        -:  817:       79,  159,  131,  110,  858,  136,  154,  265,  149,   74,
        -:        -:  818:      155,  111,  133,   80,  112,  137,  266,  113,  120,   81,
        -:        -:  819:      156,  121,   59,  114,   59,  122,  123,   74,  134,  138,
        -:        -:  820:      124,  135,  145,  125,   80,  146,  139,  140,  163,  164,
        -:        -:  821:      150,  141,   82, 1077,  147,  151,  160,  142,  143,  152,
        -:        -:  822:      144,  148,  153,  161,   71,   59,  859,  162,  171,  171,
        -:        -:  823:      171,  171,  171,  171,  171,  171,  860,  189, 1077,  182,
        -:        -:  824:
        -:        -:  825:      182,  190,   74,  183,  183,  183,  183,  183,  183,  183,
        -:        -:  826:      183,  210,  198,  267,  212,  239,  165,  199,  200,  236,
        -:        -:  827:       74,  268,  211,  166,  244,  861,  237,  167,  213,  240,
        -:        -:  828:      249,  241,  168,   69,   69,   69,   69,   69,   69,   69,
        -:        -:  829:       69,  245,  246,  253,  250,  169,  255,  169,  223,  173,
        -:        -:  830:      174,  224,  225,  175,  379,  226,  862,  227,  272,  254,
        -:        -:  831:      256,  273,  161,  380,   59,  863,  162,  173,  174,  163,
        -:        -:  832:      164,  163,  164,  864,  176,  177,  177,  177,  177,  177,
        -:        -:  833:      177,  177,  177,  171,  171,  171,  171,  171,  171,  171,
        -:        -:  834:      171,  178,  179,  281,  281,  180,  865,  282,  282,  282,
        -:        -:  835:
        -:        -:  836:      282,  282,  282,  282,  282,  291,  304,  866,  292,  178,
        -:        -:  837:      179,  310,  311,  336,  358,  867,  181,  165,  359,  165,
        -:        -:  838:      305,  284,  285,  291,  166,  286,  166,  614,  167,  293,
        -:        -:  839:      167,  615,  868,  168,  869,  168,  344,  345,  346,  284,
        -:        -:  840:      285,  337,  870,  288,  288,  871,  287,  289,  289,  289,
        -:        -:  841:      289,  289,  289,  289,  289,  183,  183,  183,  183,  183,
        -:        -:  842:      183,  183,  183,  294,  386,  387,  388,  655,  776,  295,
        -:        -:  843:      282,  282,  282,  282,  282,  282,  282,  282,  174,  656,
        -:        -:  844:      777,  175,  694,  695,  294,  406,  407,  408,  417,  418,
        -:        -:  845:      419,  872,  296,  421,  422,  423,  174,  799,  800,  397,
        -:        -:  846:
        -:        -:  847:      397,  873,  176,  398,  398,  398,  398,  398,  398,  398,
        -:        -:  848:      398,  289,  289,  289,  289,  289,  289,  289,  289,  179,
        -:        -:  849:      874,  875,  180,  429,  430,  431,  433,  434,  435,  446,
        -:        -:  850:      447,  448,  488,  489,  490,  285,  876,  179,  286,  528,
        -:        -:  851:      529,  530,  877,  181,  398,  398,  398,  398,  398,  398,
        -:        -:  852:      398,  398,  878,  285,  517,  518,  519,  879,  880,  287,
        -:        -:  853:      531,  532,  533,  534,  535,  536,  520,  521,  582,  583,
        -:        -:  854:      584,  585,  586,  587,  588,  589,  590,  592,  593,  594,
        -:        -:  855:      595,  596,  597,  624,  625,  626,  627,  628,  629,  572,
        -:        -:  856:      694,  695,  598,  599,  881,  884,  885,  886,  630,  631,
        -:        -:  857:
        -:        -:  858:      887,  888,  657,  640,  641,  641,  641,  641,  641,  641,
        -:        -:  859:      641,  658,  704,  659,  660,  675,  676,  677,  694,  695,
        -:        -:  860:      889,  705,  890,  706,  891,  892,  893,  678,  679,  894,
        -:        -:  861:      680,  697,  698,  698,  698,  698,  698,  698,  698,  698,
        -:        -:  862:      719,  720,  721,  799,  800,  895,  737,  742,  743,  744,
        -:        -:  863:      694,  695,  722,  723,  896,  738,  697,  739,  699,  745,
        -:        -:  864:      746,  694,  695,  897,  749,  750,  750,  750,  750,  750,
        -:        -:  865:      750,  750,  694,  695,  823,  696,  696,  696,  696,  696,
        -:        -:  866:      696,  696,  882,  824,  802,  825,  698,  698,  698,  698,
        -:        -:  867:      698,  698,  698,  698,  883,  778,  752,  799,  800,  898,
        -:        -:  868:
        -:        -:  869:      899,  900,  901,  846,  779,  753,  780,  781,  902,  802,
        -:        -:  870:      799,  800,  847,  903,  848,  904,  754,  905,  799,  800,
        -:        -:  871:      906,  907,  908,  909,  803,  803,  803,  803,  803,  803,
        -:        -:  872:      803,  803,  801,  801,  801,  801,  801,  801,  801,  799,
        -:        -:  873:      800,  910,  911,  912,  913,  914,  915,  916,  917,  918,
        -:        -:  874:      919,  920,  921,  803,  803,  803,  803,  803,  803,  803,
        -:        -:  875:      803,  922,  923,  924,  925,  926,  927,  928,  929,  930,
        -:        -:  876:      931,  932,  933,  934,  935,  936,  937,  938,  939,  940,
        -:        -:  877:      941,  942,  943,  944,  945,  946,  947,  948,  949,  950,
        -:        -:  878:      951,  952,  953,  954,  955,  956,  957,  958,  959,  960,
        -:        -:  879:
        -:        -:  880:      961,  962,  963,  964,  965,  966,  967,  968,  969,  970,
        -:        -:  881:      971,  973,  974,  975,  976,  977,  978,  972,  979,  980,
        -:        -:  882:      981,  982,  983,  984,  985,  986,  987,  988,  989,  990,
        -:        -:  883:      991,  992,  993,  994,  995,  996,  970,  971,  998, 1000,
        -:        -:  884:     1001, 1002, 1003, 1004,  972, 1005, 1006, 1007, 1008, 1009,
        -:        -:  885:     1010, 1011, 1012, 1013, 1014,  998, 1015, 1017, 1018, 1019,
        -:        -:  886:     1020, 1021, 1022, 1023, 1016, 1024, 1025, 1026, 1027, 1028,
        -:        -:  887:     1029, 1030, 1031, 1032, 1036, 1034, 1037, 1038, 1039, 1040,
        -:        -:  888:     1041, 1033, 1035, 1042, 1043, 1044, 1032, 1046,  997, 1048,
        -:        -:  889:     1034, 1049, 1050, 1045, 1033, 1051,  999, 1035, 1052, 1044,
        -:        -:  890:
        -:        -:  891:     1046, 1053, 1055, 1056, 1057, 1058, 1059, 1045, 1060, 1054,
        -:        -:  892:     1062, 1063, 1064,  999, 1060, 1066, 1061, 1067, 1064, 1068,
        -:        -:  893:     1065, 1069, 1061, 1069, 1071, 1071, 1065, 1073, 1070, 1074,
        -:        -:  894:     1070, 1075, 1075,  854,  853,  852,  850,  849,  845, 1076,
        -:        -:  895:     1076,  844,  843,  842,  841, 1047,  840,  839,  838,  837,
        -:        -:  896:      836,  835,  834,  833,  832,  831,  830,  829, 1047,  828,
        -:        -:  897:      827,  826,  822,  821,  820,  819,  818,  817, 1072, 1072,
        -:        -:  898:       57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
        -:        -:  899:       57,   57,   88,   88,   88,   88,   88,   88,   88,   88,
        -:        -:  900:      172,  172,  172,  172,  172,  172,  172,  172,   73,   73,
        -:        -:  901:
        -:        -:  902:       73,  816,   73,  184,  184,  184,  184,  184,  280,  280,
        -:        -:  903:      815,  280,  280,  280,  280,  280,  280,  280,  280,  280,
        -:        -:  904:      183,  183,  814,  813,  183,  812,  183,  282,  282,  811,
        -:        -:  905:      810,  282,  809,  282,  289,  289,  808,  807,  289,  806,
        -:        -:  906:      289,  398,  398,  805,  804,  398,  798,  398,  696,  696,
        -:        -:  907:      797,  696,  796,  795,  794,  793,  792,  791,  696,  751,
        -:        -:  908:      751,  751,  751,  751,  801,  801,  790,  801,  789,  788,
        -:        -:  909:      787,  786,  785,  784,  801,  851,  851,  851,  851,  851,
        -:        -:  910:      783,  782,  775,  774,  773,  772,  771,  770,  769,  768,
        -:        -:  911:      767,  766,  765,  764,  763,  762,  761,  760,  759,  758,
        -:        -:  912:
        -:        -:  913:      757,  756,  755,  748,  747,  741,  740,  736,  735,  734,
        -:        -:  914:      733,  732,  731,  730,  729,  728,  727,  726,  725,  724,
        -:        -:  915:      718,  717,  716,  715,  714,  713,  712,  711,  710,  709,
        -:        -:  916:      708,  707,  703,  702,  701,  700,  699,  693,  692,  691,
        -:        -:  917:      690,  689,  688,  687,  686,  685,  684,  683,  682,  681,
        -:        -:  918:      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
        -:        -:  919:      664,  663,  662,  661,  654,  653,  652,  651,  650,  649,
        -:        -:  920:      648,  647,  646,  645,  644,  643,  642,  639,  638,  637,
        -:        -:  921:      636,  635,  634,  633,  632,  623,  622,  621,  620,  619,
        -:        -:  922:      618,  617,  616,  613,  612,  611,  610,  609,  608,  607,
        -:        -:  923:
        -:        -:  924:      606,  605,  604,  603,  602,  601,  600,  591,  581,  580,
        -:        -:  925:      579,  578,  577,  576,  575,  574,  573,  572,  571,  570,
        -:        -:  926:      569,  568,  567,  566,  565,  564,  563,  562,  561,  560,
        -:        -:  927:      559,  558,  557,  556,  555,  554,  553,  552,  551,  550,
        -:        -:  928:      549,  548,  547,  546,  545,  544,  543,  542,  541,  540,
        -:        -:  929:      539,  538,  537,  527,  526,  525,  524,  523,  522,  516,
        -:        -:  930:      515,  514,  513,  512,  511,  510,  509,  508,  507,  506,
        -:        -:  931:      505,  504,  503,  502,  501,  500,  499,  498,  497,  496,
        -:        -:  932:      495,  494,  493,  492,  491,  487,  486,  485,  484,  483,
        -:        -:  933:      482,  481,  480,  479,  478,  477,  476,  475,  474,  473,
        -:        -:  934:
        -:        -:  935:      472,  471,  470,  469,  468,  467,  466,  465,  464,  463,
        -:        -:  936:      462,  461,  460,  459,  458,  457,  456,  455,  454,  453,
        -:        -:  937:      452,  451,  450,  449,  445,  444,  443,  442,  441,  440,
        -:        -:  938:      439,  438,  437,  436,  432,  428,  427,  426,  425,  424,
        -:        -:  939:      420,  416,  415,  414,  413,  412,  411,  410,  409,  405,
        -:        -:  940:      404,  403,  402,  401,  294,  294,  400,  400,  399,  399,
        -:        -:  941:      396,  395,  394,  393,  392,  391,  390,  389,  385,  384,
        -:        -:  942:      383,  382,  381,  378,  377,  376,  375,  374,  373,  372,
        -:        -:  943:      371,  370,  369,  368,  367,  366,  365,  364,  363,  362,
        -:        -:  944:      361,  360,  357,  356,  355,  354,  353,  352,  351,  350,
        -:        -:  945:
        -:        -:  946:      349,  348,  347,  343,  342,  341,  340,  339,  338,  335,
        -:        -:  947:      334,  333,  332,  331,  330,  329,  328,  327,  326,  325,
        -:        -:  948:      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
        -:        -:  949:      314,  313,  312,  309,  308,  307,  306,  303,  302,  301,
        -:        -:  950:      300,  299,  298,  297,  290,  290,  283,  283,  279,  278,
        -:        -:  951:      277,  276,  275,  274,  271,  270,  269,  262,  261,  260,
        -:        -:  952:      259,  258,  257,  252,  251,  248,  247,  243,  242,  238,
        -:        -:  953:      235,  234,  233,  230,  229,  228,  222,  221,  220,  219,
        -:        -:  954:      218,  217,  216,  215,  214,  209,  208,  207,  206,  205,
        -:        -:  955:      204,  203,  202,  201,  197,  196,  195,  194,  193,  192,
        -:        -:  956:
        -:        -:  957:      191,  188,  187,  186,  185,   80,   80,   75,   75,  170,
        -:        -:  958:      132,  115,   85,   70,   64,   61,   60, 1077,   58,   58,
        -:        -:  959:        7, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  960:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  961:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  962:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  963:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  964:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  965:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -:  966:     1077, 1077
        -:        -:  967:
        -:        -:  968:    } ;
        -:        -:  969:
        -:        -:  970:static yyconst flex_int16_t yy_chk[1593] =
        -:        -:  971:    {   0,
        -:        -:  972:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  973:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  974:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  975:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  976:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  977:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  978:        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        -:        -:  979:        1,    2,    9,  808,    9,    2,    3,    3,    3,    3,
        -:        -:  980:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  981:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  982:
        -:        -:  983:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  984:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  985:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  986:        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        -:        -:  987:        3,    3,    3,    3,    3,    3,    3,   13,   15,   25,
        -:        -:  988:       16,   17,   17,   17,   17,   17,   17,   17,   17,   21,
        -:        -:  989:       21,  809,   15,   16,   26,   13,   19,   25,   19,   19,
        -:        -:  990:       19,   19,   19,   19,   19,   19,   23,   23,   28,   26,
        -:        -:  991:       26,   27,   28,   27,   19,   33,   27,   27,   19,   28,
        -:        -:  992:      127,  810,   28,   33,   19,   19,   29,   30,  127,   30,
        -:        -:  993:
        -:        -:  994:       29,   35,   19,   36,   29,   33,   29,   36,   30,   19,
        -:        -:  995:      150,  150,   29,   45,   50,   35,   50,   19,   37,   34,
        -:        -:  996:       19,   20,   45,   20,   20,   20,   20,   20,   20,   20,
        -:        -:  997:       20,   46,   37,   31,  811,   40,   44,  151,   43,   20,
        -:        -:  998:       44,   31,   39,   20,   31,   40,  151,   31,   34,   20,
        -:        -:  999:       44,   34,   59,   31,   59,   34,   34,   20,   39,   41,
        -:        -: 1000:       34,   39,   42,   34,   20,   42,   41,   41,   48,   48,
        -:        -: 1001:       43,   41,   20,   72,   42,   43,   46,   41,   41,   43,
        -:        -: 1002:       41,   42,   43,   47,   73,   47,  812,   47,   54,   54,
        -:        -: 1003:       54,   54,   54,   54,   54,   54,  813,   93,   72,   74,
        -:        -: 1004:
        -:        -: 1005:       74,   93,   73,   74,   74,   74,   74,   74,   74,   74,
        -:        -: 1006:       74,  111,  101,  152,  112,  133,   48,  101,  101,  131,
        -:        -: 1007:       73,  152,  111,   48,  136,  814,  131,   48,  112,  133,
        -:        -: 1008:      139,  133,   48,   69,   69,   69,   69,   69,   69,   69,
        -:        -: 1009:       69,  136,  136,  142,  139,  169,  143,  169,  123,   69,
        -:        -: 1010:       69,  123,  123,   69,  265,  123,  815,  123,  156,  142,
        -:        -: 1011:      143,  156,  161,  265,  161,  816,  161,   69,   69,  162,
        -:        -: 1012:      162,  163,  163,  817,   69,   71,   71,   71,   71,   71,
        -:        -: 1013:       71,   71,   71,  171,  171,  171,  171,  171,  171,  171,
        -:        -: 1014:      171,   71,   71,  173,  173,   71,  819,  173,  173,  173,
        -:        -: 1015:
        -:        -: 1016:      173,  173,  173,  173,  173,  183,  195,  821,  183,   71,
        -:        -: 1017:       71,  200,  200,  226,  245,  822,   71,  162,  245,  163,
        -:        -: 1018:      195,  177,  177,  183,  162,  177,  163,  544,  162,  183,
        -:        -: 1019:      163,  544,  823,  162,  824,  163,  233,  233,  233,  177,
        -:        -: 1020:      177,  226,  825,  178,  178,  826,  177,  178,  178,  178,
        -:        -: 1021:      178,  178,  178,  178,  178,  182,  182,  182,  182,  182,
        -:        -: 1022:      182,  182,  182,  184,  271,  271,  271,  600,  729,  184,
        -:        -: 1023:      281,  281,  281,  281,  281,  281,  281,  281,  282,  600,
        -:        -: 1024:      729,  282,  751,  751,  184,  303,  303,  303,  314,  314,
        -:        -: 1025:      314,  827,  184,  316,  316,  316,  282,  799,  799,  284,
        -:        -: 1026:
        -:        -: 1027:      284,  828,  282,  284,  284,  284,  284,  284,  284,  284,
        -:        -: 1028:      284,  288,  288,  288,  288,  288,  288,  288,  288,  289,
        -:        -: 1029:      829,  830,  289,  325,  325,  325,  329,  329,  329,  340,
        -:        -: 1030:      340,  340,  384,  384,  384,  398,  831,  289,  398,  450,
        -:        -: 1031:      450,  450,  832,  289,  397,  397,  397,  397,  397,  397,
        -:        -: 1032:      397,  397,  833,  398,  438,  438,  438,  834,  835,  398,
        -:        -: 1033:      451,  451,  451,  452,  452,  452,  438,  438,  509,  509,
        -:        -: 1034:      509,  510,  510,  510,  511,  511,  511,  515,  515,  515,
        -:        -: 1035:      516,  516,  516,  562,  562,  562,  563,  563,  563,  572,
        -:        -: 1036:      640,  640,  516,  516,  836,  838,  839,  840,  563,  563,
        -:        -: 1037:
        -:        -: 1038:      841,  842,  601,  572,  572,  572,  572,  572,  572,  572,
        -:        -: 1039:      572,  601,  651,  601,  601,  620,  620,  620,  641,  641,
        -:        -: 1040:      843,  651,  844,  651,  845,  846,  847,  620,  620,  848,
        -:        -: 1041:      620,  640,  641,  641,  641,  641,  641,  641,  641,  641,
        -:        -: 1042:      665,  665,  665,  749,  749,  849,  684,  690,  690,  690,
        -:        -: 1043:      694,  694,  665,  665,  850,  684,  640,  684,  699,  690,
        -:        -: 1044:      690,  696,  696,  852,  694,  694,  694,  694,  694,  694,
        -:        -: 1045:      694,  694,  698,  698,  771,  696,  696,  696,  696,  696,
        -:        -: 1046:      696,  696,  837,  771,  749,  771,  698,  698,  698,  698,
        -:        -: 1047:      698,  698,  698,  698,  837,  730,  699,  851,  851,  853,
        -:        -: 1048:
        -:        -: 1049:      854,  855,  856,  794,  730,  699,  730,  730,  857,  749,
        -:        -: 1050:      750,  750,  794,  860,  794,  861,  699,  862,  801,  801,
        -:        -: 1051:      863,  864,  865,  866,  750,  750,  750,  750,  750,  750,
        -:        -: 1052:      750,  750,  801,  801,  801,  801,  801,  801,  801,  803,
        -:        -: 1053:      803,  867,  868,  869,  870,  871,  872,  873,  874,  875,
        -:        -: 1054:      876,  877,  878,  803,  803,  803,  803,  803,  803,  803,
        -:        -: 1055:      803,  879,  880,  881,  882,  883,  884,  885,  886,  887,
        -:        -: 1056:      890,  891,  892,  893,  894,  895,  896,  897,  898,  899,
        -:        -: 1057:      902,  903,  904,  906,  907,  909,  910,  911,  912,  913,
        -:        -: 1058:      914,  915,  917,  918,  919,  920,  921,  922,  925,  926,
        -:        -: 1059:
        -:        -: 1060:      927,  930,  931,  932,  933,  934,  935,  936,  937,  938,
        -:        -: 1061:      939,  940,  941,  942,  943,  944,  947,  939,  948,  949,
        -:        -: 1062:      952,  953,  954,  955,  956,  957,  958,  959,  960,  961,
        -:        -: 1063:      962,  963,  964,  965,  966,  969,  970,  971,  972,  973,
        -:        -: 1064:      976,  977,  980,  981,  971,  982,  984,  985,  986,  988,
        -:        -: 1065:      989,  990,  995,  996,  997,  998,  999, 1000, 1001, 1002,
        -:        -: 1066:     1003, 1004, 1005, 1006,  999, 1008, 1009, 1010, 1011, 1012,
        -:        -: 1067:     1013, 1014, 1015, 1016, 1018, 1017, 1019, 1022, 1023, 1024,
        -:        -: 1068:     1025, 1016, 1017, 1027, 1030, 1031, 1032, 1035,  970, 1038,
        -:        -: 1069:     1034, 1039, 1040, 1031, 1032, 1041,  972, 1034, 1043, 1044,
        -:        -: 1070:
        -:        -: 1071:     1046, 1047, 1048, 1049, 1051, 1052, 1053, 1044, 1054, 1047,
        -:        -: 1072:     1057, 1058, 1059,  998, 1060, 1062, 1054, 1063, 1064, 1067,
        -:        -: 1073:     1059, 1068, 1060, 1069, 1070, 1071, 1064, 1072, 1068, 1073,
        -:        -: 1074:     1069, 1074, 1075,  806,  805,  804,  797,  796,  793, 1074,
        -:        -: 1075:     1075,  792,  791,  790,  789, 1035,  788,  787,  785,  784,
        -:        -: 1076:      783,  782,  781,  780,  779,  778,  777,  776, 1046,  775,
        -:        -: 1077:      774,  773,  770,  769,  768,  767,  766,  765, 1070, 1071,
        -:        -: 1078:     1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
        -:        -: 1079:     1078, 1078, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
        -:        -: 1080:     1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, 1081,
        -:        -: 1081:
        -:        -: 1082:     1081,  764, 1081, 1082, 1082, 1082, 1082, 1082, 1083, 1083,
        -:        -: 1083:      763, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
        -:        -: 1084:     1084, 1084,  762,  761, 1084,  760, 1084, 1085, 1085,  759,
        -:        -: 1085:      758, 1085,  757, 1085, 1086, 1086,  756,  755, 1086,  754,
        -:        -: 1086:     1086, 1087, 1087,  753,  752, 1087,  748, 1087, 1088, 1088,
        -:        -: 1087:      746, 1088,  745,  744,  743,  742,  741,  740, 1088, 1089,
        -:        -: 1088:     1089, 1089, 1089, 1089, 1090, 1090,  739, 1090,  738,  737,
        -:        -: 1089:      736,  735,  734,  733, 1090, 1091, 1091, 1091, 1091, 1091,
        -:        -: 1090:      732,  731,  725,  723,  722,  721,  720,  719,  716,  715,
        -:        -: 1091:      714,  713,  712,  711,  710,  709,  708,  707,  706,  705,
        -:        -: 1092:
        -:        -: 1093:      704,  703,  701,  693,  692,  687,  686,  683,  681,  680,
        -:        -: 1094:      679,  678,  677,  676,  675,  674,  670,  669,  668,  666,
        -:        -: 1095:      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
        -:        -: 1096:      654,  653,  650,  645,  644,  643,  642,  639,  638,  637,
        -:        -: 1097:      635,  634,  632,  631,  630,  629,  628,  627,  622,  621,
        -:        -: 1098:      619,  618,  617,  616,  615,  613,  612,  611,  610,  608,
        -:        -: 1099:      607,  606,  604,  603,  599,  598,  597,  596,  595,  591,
        -:        -: 1100:      579,  578,  577,  576,  575,  574,  573,  571,  570,  569,
        -:        -: 1101:      568,  567,  566,  565,  564,  561,  560,  557,  551,  550,
        -:        -: 1102:      548,  547,  546,  543,  540,  539,  538,  537,  526,  525,
        -:        -: 1103:
        -:        -: 1104:      524,  523,  521,  520,  519,  518,  517,  513,  508,  507,
        -:        -: 1105:      506,  504,  503,  501,  500,  498,  497,  496,  495,  494,
        -:        -: 1106:      492,  491,  486,  485,  483,  482,  481,  480,  479,  478,
        -:        -: 1107:      477,  476,  475,  474,  473,  472,  471,  469,  468,  467,
        -:        -: 1108:      466,  465,  464,  463,  462,  461,  459,  458,  457,  456,
        -:        -: 1109:      455,  454,  453,  449,  445,  444,  443,  442,  439,  437,
        -:        -: 1110:      436,  426,  424,  420,  419,  418,  417,  416,  415,  414,
        -:        -: 1111:      412,  411,  409,  405,  403,  402,  401,  396,  395,  394,
        -:        -: 1112:      393,  392,  391,  390,  385,  383,  382,  381,  380,  379,
        -:        -: 1113:      378,  377,  376,  375,  372,  371,  370,  369,  368,  367,
        -:        -: 1114:
        -:        -: 1115:      366,  365,  364,  363,  362,  361,  360,  359,  358,  357,
        -:        -: 1116:      356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
        -:        -: 1117:      346,  345,  344,  341,  339,  338,  337,  336,  335,  334,
        -:        -: 1118:      333,  332,  331,  330,  328,  324,  322,  321,  320,  319,
        -:        -: 1119:      315,  313,  312,  311,  310,  309,  308,  307,  306,  302,
        -:        -: 1120:      301,  299,  298,  297,  296,  295,  293,  292,  287,  286,
        -:        -: 1121:      279,  278,  277,  276,  275,  274,  273,  272,  270,  269,
        -:        -: 1122:      268,  267,  266,  264,  263,  262,  261,  260,  259,  258,
        -:        -: 1123:      257,  256,  255,  254,  253,  252,  251,  250,  249,  248,
        -:        -: 1124:      247,  246,  244,  243,  242,  241,  240,  239,  238,  237,
        -:        -: 1125:
        -:        -: 1126:      236,  235,  234,  232,  231,  230,  229,  228,  227,  225,
        -:        -: 1127:      224,  223,  222,  221,  220,  219,  218,  217,  216,  215,
        -:        -: 1128:      213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
        -:        -: 1129:      203,  202,  201,  199,  198,  197,  196,  194,  193,  192,
        -:        -: 1130:      191,  190,  189,  187,  181,  180,  176,  175,  168,  167,
        -:        -: 1131:      166,  165,  158,  157,  155,  154,  153,  149,  148,  147,
        -:        -: 1132:      146,  145,  144,  141,  140,  138,  137,  135,  134,  132,
        -:        -: 1133:      130,  129,  128,  126,  125,  124,  122,  121,  119,  118,
        -:        -: 1134:      117,  116,  115,  114,  113,  110,  109,  108,  107,  106,
        -:        -: 1135:      105,  104,  103,  102,  100,   99,   98,   97,   96,   95,
        -:        -: 1136:
        -:        -: 1137:       94,   92,   91,   87,   83,   82,   81,   78,   76,   52,
        -:        -: 1138:       38,   32,   22,   18,   14,   12,   11,    7,    6,    5,
        -:        -: 1139:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1140:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1141:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1142:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1143:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1144:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1145:     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
        -:        -: 1146:     1077, 1077
        -:        -: 1147:
        -:        -: 1148:    } ;
        -:        -: 1149:
        -:        -: 1150:/* The intent behind this definition is that it'll catch
        -:        -: 1151: * any uses of REJECT which flex missed.
        -:        -: 1152: */
        -:        -: 1153:#define REJECT reject_used_but_not_detected
        -:        -: 1154:#define yymore() yymore_used_but_not_detected
        -:        -: 1155:#define YY_MORE_ADJ 0
        -:        -: 1156:#define YY_RESTORE_YY_MORE_OFFSET
        -:        -: 1157:#line 1 "./glsl/glsl_lexer.ll"
        -:        -: 1158:#line 2 "./glsl/glsl_lexer.ll"
        -:        -: 1159:/*
        -:        -: 1160: * Copyright © 2008, 2009 Intel Corporation
        -:        -: 1161: *
        -:        -: 1162: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -: 1163: * copy of this software and associated documentation files (the "Software"),
        -:        -: 1164: * to deal in the Software without restriction, including without limitation
        -:        -: 1165: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -: 1166: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -: 1167: * Software is furnished to do so, subject to the following conditions:
        -:        -: 1168: *
        -:        -: 1169: * The above copyright notice and this permission notice (including the next
        -:        -: 1170: * paragraph) shall be included in all copies or substantial portions of the
        -:        -: 1171: * Software.
        -:        -: 1172: *
        -:        -: 1173: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -: 1174: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -: 1175: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -: 1176: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -: 1177: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -: 1178: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -: 1179: * DEALINGS IN THE SOFTWARE.
        -:        -: 1180: */
        -:        -: 1181:#include <ctype.h>
        -:        -: 1182:#include <limits.h>
        -:        -: 1183:#include "util/strtod.h"
        -:        -: 1184:#include "ast.h"
        -:        -: 1185:#include "glsl_parser_extras.h"
        -:        -: 1186:#include "glsl_parser.h"
        -:        -: 1187:
        -:        -: 1188:static int classify_identifier(struct _mesa_glsl_parse_state *, const char *);
        -:        -: 1189:
        -:        -: 1190:#ifdef _MSC_VER
        -:        -: 1191:#define YY_NO_UNISTD_H
        -:        -: 1192:#endif
        -:        -: 1193:
        -:        -: 1194:#define YY_USER_ACTION						\
        -:        -: 1195:   do {								\
        -:        -: 1196:      yylloc->first_column = yycolumn + 1;			\
        -:        -: 1197:      yylloc->first_line = yylloc->last_line = yylineno + 1;	\
        -:        -: 1198:      yycolumn += yyleng;					\
        -:        -: 1199:      yylloc->last_column = yycolumn + 1;			\
        -:        -: 1200:   } while(0);
        -:        -: 1201:
        -:        -: 1202:#define YY_USER_INIT yylineno = 0; yycolumn = 0; yylloc->source = 0;
        -:        -: 1203:
        -:        -: 1204:/* A macro for handling reserved words and keywords across language versions.
        -:        -: 1205: *
        -:        -: 1206: * Certain words start out as identifiers, become reserved words in
        -:        -: 1207: * later language revisions, and finally become language keywords.
        -:        -: 1208: * This may happen at different times in desktop GLSL and GLSL ES.
        -:        -: 1209: *
        -:        -: 1210: * For example, consider the following lexer rule:
        -:        -: 1211: * samplerBuffer       KEYWORD(130, 0, 140, 0, SAMPLERBUFFER)
        -:        -: 1212: *
        -:        -: 1213: * This means that "samplerBuffer" will be treated as:
        -:        -: 1214: * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
        -:        -: 1215: * - a reserved word - error                 ...in GLSL >= 1.30
        -:        -: 1216: * - an identifier                           ...in GLSL <  1.30 or GLSL ES
        -:        -: 1217: */
        -:        -: 1218:#define KEYWORD(reserved_glsl, reserved_glsl_es,			\
        -:        -: 1219:                allowed_glsl, allowed_glsl_es, token)			\
        -:        -: 1220:   KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
        -:        -: 1221:                    allowed_glsl, allowed_glsl_es, false, token)
        -:        -: 1222:
        -:        -: 1223:/**
        -:        -: 1224: * Like the KEYWORD macro, but the word is also treated as a keyword
        -:        -: 1225: * if the given boolean expression is true.
        -:        -: 1226: */
        -:        -: 1227:#define KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,		\
        -:        -: 1228:                         allowed_glsl, allowed_glsl_es,			\
        -:        -: 1229:                         alt_expr, token)				\
        -:        -: 1230:   do {									\
        -:        -: 1231:      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
        -:        -: 1232:          || (alt_expr)) {						\
        -:        -: 1233:	 return token;							\
        -:        -: 1234:      } else if (yyextra->is_version(reserved_glsl,			\
        -:        -: 1235:                                     reserved_glsl_es)) {		\
        -:        -: 1236:	 _mesa_glsl_error(yylloc, yyextra,				\
        -:        -: 1237:			  "illegal use of reserved word `%s'", yytext);	\
        -:        -: 1238:	 return ERROR_TOK;						\
        -:        -: 1239:      } else {								\
        -:        -: 1240:	 void *mem_ctx = yyextra->linalloc;					\
        -:        -: 1241:	 yylval->identifier = linear_strdup(mem_ctx, yytext);		\
        -:        -: 1242:	 return classify_identifier(yyextra, yytext);			\
        -:        -: 1243:      }									\
        -:        -: 1244:   } while (0)
        -:        -: 1245:
        -:        -: 1246:/**
        -:        -: 1247: * A macro for handling keywords that have been present in GLSL since
        -:        -: 1248: * its origin, but were changed into reserved words in GLSL 3.00 ES.
        -:        -: 1249: */
        -:        -: 1250:#define DEPRECATED_ES_KEYWORD(token)					\
        -:        -: 1251:   do {									\
        -:        -: 1252:      if (yyextra->is_version(0, 300)) {				\
        -:        -: 1253:	 _mesa_glsl_error(yylloc, yyextra,				\
        -:        -: 1254:			  "illegal use of reserved word `%s'", yytext);	\
        -:        -: 1255:	 return ERROR_TOK;						\
        -:        -: 1256:      } else {								\
        -:        -: 1257:         return token;							\
        -:        -: 1258:      }									\
        -:        -: 1259:   } while (0)
        -:        -: 1260:
        -:        -: 1261:static int
        -:        -: 1262:literal_integer(char *text, int len, struct _mesa_glsl_parse_state *state,
        -:        -: 1263:		YYSTYPE *lval, YYLTYPE *lloc, int base)
        -:        -: 1264:{
        -:        -: 1265:   bool is_uint = (text[len - 1] == 'u' ||
        -:        -: 1266:		   text[len - 1] == 'U');
        -:        -: 1267:   bool is_long = (text[len - 1] == 'l' || text[len - 1] == 'L');
        -:        -: 1268:   const char *digits = text;
        -:        -: 1269:
        -:        -: 1270:   if (is_long)
        -:        -: 1271:      is_uint = (text[len - 2] == 'u' && text[len - 1] == 'l') ||
        -:        -: 1272:                (text[len - 2] == 'U' && text[len - 1] == 'L');
        -:        -: 1273:   /* Skip "0x" */
        -:        -: 1274:   if (base == 16)
        -:        -: 1275:      digits += 2;
        -:        -: 1276:
        -:        -: 1277:   unsigned long long value = strtoull(digits, NULL, base);
        -:        -: 1278:
        -:        -: 1279:   if (is_long)
        -:        -: 1280:      lval->n64 = (int64_t)value;
        -:        -: 1281:   else
        -:        -: 1282:      lval->n = (int)value;
        -:        -: 1283:
        -:        -: 1284:   if (is_long && !is_uint && base == 10 && value > (uint64_t)LLONG_MAX + 1) {
        -:        -: 1285:      /* Tries to catch unintentionally providing a negative value. */
        -:        -: 1286:      _mesa_glsl_warning(lloc, state,
        -:        -: 1287:                         "signed literal value `%s' is interpreted as %lld",
        -:        -: 1288:                         text, lval->n64);
        -:        -: 1289:   } else if (!is_long && value > UINT_MAX) {
        -:        -: 1290:      /* Note that signed 0xffffffff is valid, not out of range! */
        -:        -: 1291:      if (state->is_version(130, 300)) {
        -:        -: 1292:	 _mesa_glsl_error(lloc, state,
        -:        -: 1293:			  "literal value `%s' out of range", text);
        -:        -: 1294:      } else {
        -:        -: 1295:	 _mesa_glsl_warning(lloc, state,
        -:        -: 1296:			    "literal value `%s' out of range", text);
        -:        -: 1297:      }
        -:        -: 1298:   } else if (base == 10 && !is_uint && (unsigned)value > (unsigned)INT_MAX + 1) {
        -:        -: 1299:      /* Tries to catch unintentionally providing a negative value.
        -:        -: 1300:       * Note that -2147483648 is parsed as -(2147483648), so we don't
        -:        -: 1301:       * want to warn for INT_MAX.
        -:        -: 1302:       */
        -:        -: 1303:      _mesa_glsl_warning(lloc, state,
        -:        -: 1304:			 "signed literal value `%s' is interpreted as %d",
        -:        -: 1305:			 text, lval->n);
        -:        -: 1306:   }
        -:        -: 1307:   if (is_long)
        -:        -: 1308:      return is_uint ? UINT64CONSTANT : INT64CONSTANT;
        -:        -: 1309:   else
        -:        -: 1310:      return is_uint ? UINTCONSTANT : INTCONSTANT;
        -:        -: 1311:}
        -:        -: 1312:
        -:        -: 1313:#define LITERAL_INTEGER(base) \
        -:        -: 1314:   literal_integer(yytext, yyleng, yyextra, yylval, yylloc, base)
        -:        -: 1315:
        -:        -: 1316:/* Note: When adding any start conditions to this list, you must also
        -:        -: 1317:* update the "Internal compiler error" catch-all rule near the end of
        -:        -: 1318:* this file. */
        -:        -: 1319:
        -:        -: 1320:#line 1321 "glsl/glsl_lexer.cpp"
        -:        -: 1321:
        -:        -: 1322:#define INITIAL 0
        -:        -: 1323:#define PP 1
        -:        -: 1324:#define PRAGMA 2
        -:        -: 1325:
        -:        -: 1326:#ifndef YY_NO_UNISTD_H
        -:        -: 1327:/* Special case for "unistd.h", since it is non-ANSI. We include it way
        -:        -: 1328: * down here because we want the user's section 1 to have been scanned first.
        -:        -: 1329: * The user has a chance to override it with an option.
        -:        -: 1330: */
        -:        -: 1331:#include <unistd.h>
        -:        -: 1332:#endif
        -:        -: 1333:
        -:        -: 1334:#define YY_EXTRA_TYPE struct _mesa_glsl_parse_state *
        -:        -: 1335:
        -:        -: 1336:/* Holds the entire state of the reentrant scanner. */
        -:        -: 1337:struct yyguts_t
        -:        -: 1338:    {
        -:        -: 1339:
        -:        -: 1340:    /* User-defined. Not touched by flex. */
        -:        -: 1341:    YY_EXTRA_TYPE yyextra_r;
        -:        -: 1342:
        -:        -: 1343:    /* The rest are the same as the globals declared in the non-reentrant scanner. */
        -:        -: 1344:    FILE *yyin_r, *yyout_r;
        -:        -: 1345:    size_t yy_buffer_stack_top; /**< index of top of stack. */
        -:        -: 1346:    size_t yy_buffer_stack_max; /**< capacity of stack. */
        -:        -: 1347:    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
        -:        -: 1348:    char yy_hold_char;
        -:        -: 1349:    int yy_n_chars;
        -:        -: 1350:    yy_size_t yyleng_r;
        -:        -: 1351:    char *yy_c_buf_p;
        -:        -: 1352:    int yy_init;
        -:        -: 1353:    int yy_start;
        -:        -: 1354:    int yy_did_buffer_switch_on_eof;
        -:        -: 1355:    int yy_start_stack_ptr;
        -:        -: 1356:    int yy_start_stack_depth;
        -:        -: 1357:    int *yy_start_stack;
        -:        -: 1358:    yy_state_type yy_last_accepting_state;
        -:        -: 1359:    char* yy_last_accepting_cpos;
        -:        -: 1360:
        -:        -: 1361:    int yylineno_r;
        -:        -: 1362:    int yy_flex_debug_r;
        -:        -: 1363:
        -:        -: 1364:    char *yytext_r;
        -:        -: 1365:    int yy_more_flag;
        -:        -: 1366:    int yy_more_len;
        -:        -: 1367:
        -:        -: 1368:    YYSTYPE * yylval_r;
        -:        -: 1369:
        -:        -: 1370:    YYLTYPE * yylloc_r;
        -:        -: 1371:
        -:        -: 1372:    }; /* end struct yyguts_t */
        -:        -: 1373:
        -:        -: 1374:static int yy_init_globals (yyscan_t yyscanner );
        -:        -: 1375:
        -:        -: 1376:    /* This must go here because YYSTYPE and YYLTYPE are included
        -:        -: 1377:     * from bison output in section 1.*/
        -:        -: 1378:    #    define yylval yyg->yylval_r
        -:        -: 1379:    
        -:        -: 1380:    #    define yylloc yyg->yylloc_r
        -:        -: 1381:    
        -:        -: 1382:int _mesa_glsl_lexer_lex_init (yyscan_t* scanner);
        -:        -: 1383:
        -:        -: 1384:int _mesa_glsl_lexer_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
        -:        -: 1385:
        -:        -: 1386:/* Accessor methods to globals.
        -:        -: 1387:   These are made visible to non-reentrant scanners for convenience. */
        -:        -: 1388:
        -:        -: 1389:int _mesa_glsl_lexer_lex_destroy (yyscan_t yyscanner );
        -:        -: 1390:
        -:        -: 1391:int _mesa_glsl_lexer_get_debug (yyscan_t yyscanner );
        -:        -: 1392:
        -:        -: 1393:void _mesa_glsl_lexer_set_debug (int debug_flag ,yyscan_t yyscanner );
        -:        -: 1394:
        -:        -: 1395:YY_EXTRA_TYPE _mesa_glsl_lexer_get_extra (yyscan_t yyscanner );
        -:        -: 1396:
        -:        -: 1397:void _mesa_glsl_lexer_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
        -:        -: 1398:
        -:        -: 1399:FILE *_mesa_glsl_lexer_get_in (yyscan_t yyscanner );
        -:        -: 1400:
        -:        -: 1401:void _mesa_glsl_lexer_set_in  (FILE * _in_str ,yyscan_t yyscanner );
        -:        -: 1402:
        -:        -: 1403:FILE *_mesa_glsl_lexer_get_out (yyscan_t yyscanner );
        -:        -: 1404:
        -:        -: 1405:void _mesa_glsl_lexer_set_out  (FILE * _out_str ,yyscan_t yyscanner );
        -:        -: 1406:
        -:        -: 1407:yy_size_t _mesa_glsl_lexer_get_leng (yyscan_t yyscanner );
        -:        -: 1408:
        -:        -: 1409:char *_mesa_glsl_lexer_get_text (yyscan_t yyscanner );
        -:        -: 1410:
        -:        -: 1411:int _mesa_glsl_lexer_get_lineno (yyscan_t yyscanner );
        -:        -: 1412:
        -:        -: 1413:void _mesa_glsl_lexer_set_lineno (int _line_number ,yyscan_t yyscanner );
        -:        -: 1414:
        -:        -: 1415:int _mesa_glsl_lexer_get_column  (yyscan_t yyscanner );
        -:        -: 1416:
        -:        -: 1417:void _mesa_glsl_lexer_set_column (int _column_no ,yyscan_t yyscanner );
        -:        -: 1418:
        -:        -: 1419:YYSTYPE * _mesa_glsl_lexer_get_lval (yyscan_t yyscanner );
        -:        -: 1420:
        -:        -: 1421:void _mesa_glsl_lexer_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
        -:        -: 1422:
        -:        -: 1423:       YYLTYPE *_mesa_glsl_lexer_get_lloc (yyscan_t yyscanner );
        -:        -: 1424:    
        -:        -: 1425:        void _mesa_glsl_lexer_set_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
        -:        -: 1426:    
        -:        -: 1427:/* Macros after this point can all be overridden by user definitions in
        -:        -: 1428: * section 1.
        -:        -: 1429: */
        -:        -: 1430:
        -:        -: 1431:#ifndef YY_SKIP_YYWRAP
        -:        -: 1432:#ifdef __cplusplus
        -:        -: 1433:extern "C" int _mesa_glsl_lexer_wrap (yyscan_t yyscanner );
        -:        -: 1434:#else
        -:        -: 1435:extern int _mesa_glsl_lexer_wrap (yyscan_t yyscanner );
        -:        -: 1436:#endif
        -:        -: 1437:#endif
        -:        -: 1438:
        -:        -: 1439:#ifndef YY_NO_UNPUT
        -:        -: 1440:    
        -:        -: 1441:#endif
        -:        -: 1442:
        -:        -: 1443:#ifndef yytext_ptr
        -:        -: 1444:static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
        -:        -: 1445:#endif
        -:        -: 1446:
        -:        -: 1447:#ifdef YY_NEED_STRLEN
        -:        -: 1448:static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
        -:        -: 1449:#endif
        -:        -: 1450:
        -:        -: 1451:#ifndef YY_NO_INPUT
        -:        -: 1452:
        -:        -: 1453:#ifdef __cplusplus
        -:        -: 1454:static int yyinput (yyscan_t yyscanner );
        -:        -: 1455:#else
        -:        -: 1456:static int input (yyscan_t yyscanner );
        -:        -: 1457:#endif
        -:        -: 1458:
        -:        -: 1459:#endif
        -:        -: 1460:
        -:        -: 1461:/* Amount of stuff to slurp up with each read. */
        -:        -: 1462:#ifndef YY_READ_BUF_SIZE
        -:        -: 1463:#ifdef __ia64__
        -:        -: 1464:/* On IA-64, the buffer size is 16k, not 8k */
        -:        -: 1465:#define YY_READ_BUF_SIZE 16384
        -:        -: 1466:#else
        -:        -: 1467:#define YY_READ_BUF_SIZE 8192
        -:        -: 1468:#endif /* __ia64__ */
        -:        -: 1469:#endif
        -:        -: 1470:
        -:        -: 1471:/* Copy whatever the last rule matched to the standard output. */
        -:        -: 1472:#ifndef ECHO
        -:        -: 1473:/* This used to be an fputs(), but since the string might contain NUL's,
        -:        -: 1474: * we now use fwrite().
        -:        -: 1475: */
        -:        -: 1476:#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
        -:        -: 1477:#endif
        -:        -: 1478:
        -:        -: 1479:/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
        -:        -: 1480: * is returned in "result".
        -:        -: 1481: */
        -:        -: 1482:#ifndef YY_INPUT
        -:        -: 1483:#define YY_INPUT(buf,result,max_size) \
        -:        -: 1484:	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
        -:        -: 1485:		{ \
        -:        -: 1486:		int c = '*'; \
        -:        -: 1487:		size_t n; \
        -:        -: 1488:		for ( n = 0; n < max_size && \
        -:        -: 1489:			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
        -:        -: 1490:			buf[n] = (char) c; \
        -:        -: 1491:		if ( c == '\n' ) \
        -:        -: 1492:			buf[n++] = (char) c; \
        -:        -: 1493:		if ( c == EOF && ferror( yyin ) ) \
        -:        -: 1494:			YY_FATAL_ERROR( "input in flex scanner failed" ); \
        -:        -: 1495:		result = n; \
        -:        -: 1496:		} \
        -:        -: 1497:	else \
        -:        -: 1498:		{ \
        -:        -: 1499:		errno=0; \
        -:        -: 1500:		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
        -:        -: 1501:			{ \
        -:        -: 1502:			if( errno != EINTR) \
        -:        -: 1503:				{ \
        -:        -: 1504:				YY_FATAL_ERROR( "input in flex scanner failed" ); \
        -:        -: 1505:				break; \
        -:        -: 1506:				} \
        -:        -: 1507:			errno=0; \
        -:        -: 1508:			clearerr(yyin); \
        -:        -: 1509:			} \
        -:        -: 1510:		}\
        -:        -: 1511:\
        -:        -: 1512:
        -:        -: 1513:#endif
        -:        -: 1514:
        -:        -: 1515:/* No semi-colon after return; correct usage is to write "yyterminate();" -
        -:        -: 1516: * we don't want an extra ';' after the "return" because that will cause
        -:        -: 1517: * some compilers to complain about unreachable statements.
        -:        -: 1518: */
        -:        -: 1519:#ifndef yyterminate
        -:        -: 1520:#define yyterminate() return YY_NULL
        -:        -: 1521:#endif
        -:        -: 1522:
        -:        -: 1523:/* Number of entries by which start-condition stack grows. */
        -:        -: 1524:#ifndef YY_START_STACK_INCR
        -:        -: 1525:#define YY_START_STACK_INCR 25
        -:        -: 1526:#endif
        -:        -: 1527:
        -:        -: 1528:/* Report a fatal error. */
        -:        -: 1529:#ifndef YY_FATAL_ERROR
        -:        -: 1530:#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
        -:        -: 1531:#endif
        -:        -: 1532:
        -:        -: 1533:/* end tables serialization structures and prototypes */
        -:        -: 1534:
        -:        -: 1535:/* Default declaration of generated scanner - a define so the user can
        -:        -: 1536: * easily add parameters.
        -:        -: 1537: */
        -:        -: 1538:#ifndef YY_DECL
        -:        -: 1539:#define YY_DECL_IS_OURS 1
        -:        -: 1540:
        -:        -: 1541:extern int _mesa_glsl_lexer_lex \
        -:        -: 1542:               (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
        -:        -: 1543:
        -:        -: 1544:#define YY_DECL int _mesa_glsl_lexer_lex \
        -:        -: 1545:               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
        -:        -: 1546:#endif /* !YY_DECL */
        -:        -: 1547:
        -:        -: 1548:/* Code executed at the beginning of each rule, after yytext and yyleng
        -:        -: 1549: * have been set up.
        -:        -: 1550: */
        -:        -: 1551:#ifndef YY_USER_ACTION
        -:        -: 1552:#define YY_USER_ACTION
        -:        -: 1553:#endif
        -:        -: 1554:
        -:        -: 1555:/* Code executed at the end of each rule. */
        -:        -: 1556:#ifndef YY_BREAK
        -:        -: 1557:#define YY_BREAK /*LINTED*/break;
        -:        -: 1558:#endif
        -:        -: 1559:
        -:        -: 1560:#define YY_RULE_SETUP \
        -:        -: 1561:	if ( yyleng > 0 ) \
        -:        -: 1562:		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
        -:        -: 1563:				(yytext[yyleng - 1] == '\n'); \
        -:        -: 1564:	YY_USER_ACTION
        -:        -: 1565:
        -:        -: 1566:/** The main scanner function which does all the work.
        -:        -: 1567: */
      301:      313: 1568:YY_DECL
        -:        -: 1569:{
        -:        -: 1570:	yy_state_type yy_current_state;
        -:        -: 1571:	char *yy_cp, *yy_bp;
        -:        -: 1572:	int yy_act;
      301:      313: 1573:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 1574:
      301:      313: 1575:    yylval = yylval_param;
        -:        -: 1576:
      301:      313: 1577:    yylloc = yylloc_param;
        -:        -: 1578:
      301:      313: 1579:	if ( !yyg->yy_init )
        -:        -: 1580:		{
        2:        2: 1581:		yyg->yy_init = 1;
        -:        -: 1582:
        -:        -: 1583:#ifdef YY_USER_INIT
        2:        2: 1584:		YY_USER_INIT;
        -:        -: 1585:#endif
        -:        -: 1586:
        2:        2: 1587:		if ( ! yyg->yy_start )
        2:        2: 1588:			yyg->yy_start = 1;	/* first start state */
        -:        -: 1589:
        2:        2: 1590:		if ( ! yyin )
        2:        2: 1591:			yyin = stdin;
        -:        -: 1592:
        2:        2: 1593:		if ( ! yyout )
        2:        2: 1594:			yyout = stdout;
        -:        -: 1595:
        2:        2: 1596:		if ( ! YY_CURRENT_BUFFER ) {
    #####:    #####: 1597:			_mesa_glsl_lexer_ensure_buffer_stack (yyscanner);
    #####:    #####: 1598:			YY_CURRENT_BUFFER_LVALUE =
    #####:    #####: 1599:				_mesa_glsl_lexer__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
        -:        -: 1600:		}
        -:        -: 1601:
        2:        2: 1602:		_mesa_glsl_lexer__load_buffer_state(yyscanner );
        -:        -: 1603:		}
        -:        -: 1604:
        -:        -: 1605:	{
        -:        -: 1606:#line 180 "./glsl/glsl_lexer.ll"
        -:        -: 1607:
        -:        -: 1608:
        -:        -: 1609:#line 1610 "glsl/glsl_lexer.cpp"
        -:        -: 1610:
      196:      204: 1611:	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
        -:        -: 1612:		{
      497:      517: 1613:		yy_cp = yyg->yy_c_buf_p;
        -:        -: 1614:
        -:        -: 1615:		/* Support of yytext. */
      497:      517: 1616:		*yy_cp = yyg->yy_hold_char;
        -:        -: 1617:
        -:        -: 1618:		/* yy_bp points to the position in yy_ch_buf of the start of
        -:        -: 1619:		 * the current run.
        -:        -: 1620:		 */
      497:      517: 1621:		yy_bp = yy_cp;
        -:        -: 1622:
      497:      517: 1623:		yy_current_state = yyg->yy_start;
      497:      517: 1624:		yy_current_state += YY_AT_BOL();
        -:        -: 1625:yy_match:
      917:      955: 1626:		do
        -:        -: 1627:			{
     1414:     1472: 1628:			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
     1414:     1472: 1629:			if ( yy_accept[yy_current_state] )
        -:        -: 1630:				{
      911:      949: 1631:				yyg->yy_last_accepting_state = yy_current_state;
      911:      949: 1632:				yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 1633:				}
     3276:     3406: 1634:			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 1635:				{
      931:      967: 1636:				yy_current_state = (int) yy_def[yy_current_state];
      931:      967: 1637:				if ( yy_current_state >= 1078 )
      389:      404: 1638:					yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 1639:				}
     1414:     1472: 1640:			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
     1414:     1472: 1641:			++yy_cp;
        -:        -: 1642:			}
     1414:     1472: 1643:		while ( yy_current_state != 1077 );
      497:      517: 1644:		yy_cp = yyg->yy_last_accepting_cpos;
      497:      517: 1645:		yy_current_state = yyg->yy_last_accepting_state;
        -:        -: 1646:
        -:        -: 1647:yy_find_action:
      499:      519: 1648:		yy_act = yy_accept[yy_current_state];
        -:        -: 1649:
      499:      519: 1650:		YY_DO_BEFORE_ACTION;
        -:        -: 1651:
        -:        -: 1652:do_action:	/* This label is used only to access EOF actions. */
        -:        -: 1653:
      501:      521: 1654:		switch ( yy_act )
        -:        -: 1655:	{ /* beginning of action switch */
        -:        -: 1656:			case 0: /* must back up */
        -:        -: 1657:			/* undo the effects of YY_DO_BEFORE_ACTION */
    #####:    #####: 1658:			*yy_cp = yyg->yy_hold_char;
    #####:    #####: 1659:			yy_cp = yyg->yy_last_accepting_cpos;
    #####:    #####: 1660:			yy_current_state = yyg->yy_last_accepting_state;
    #####:    #####: 1661:			goto yy_find_action;
        -:        -: 1662:
        -:        -: 1663:case 1:
      117:      123: 1664:YY_RULE_SETUP
        -:        -: 1665:#line 182 "./glsl/glsl_lexer.ll"
        -:        -: 1666:;
        -:        -: 1667:	YY_BREAK
        -:        -: 1668:/* Preprocessor tokens. */ 
        -:        -: 1669:case 2:
        -:        -: 1670:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1671:yyg->yy_c_buf_p = yy_cp -= 1;
        -:        -: 1672:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1673:YY_RULE_SETUP
        -:        -: 1674:#line 185 "./glsl/glsl_lexer.ll"
        -:        -: 1675:;
        -:        -: 1676:	YY_BREAK
        -:        -: 1677:case 3:
        -:        -: 1678:YY_RULE_SETUP
        -:        -: 1679:#line 186 "./glsl/glsl_lexer.ll"
        -:        -: 1680:{ BEGIN PP; return VERSION_TOK; }
        -:        -: 1681:	YY_BREAK
        -:        -: 1682:case 4:
        -:        -: 1683:YY_RULE_SETUP
        -:        -: 1684:#line 187 "./glsl/glsl_lexer.ll"
        -:        -: 1685:{ BEGIN PP; return EXTENSION; }
        -:        -: 1686:	YY_BREAK
        -:        -: 1687:case 5:
        -:        -: 1688:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1689:yyg->yy_c_buf_p = yy_cp -= 1;
        -:        -: 1690:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1691:YY_RULE_SETUP
        -:        -: 1692:#line 188 "./glsl/glsl_lexer.ll"
        -:        -: 1693:{
        -:        -: 1694:				   /* Eat characters until the first digit is
        -:        -: 1695:				    * encountered
        -:        -: 1696:				    */
        -:        -: 1697:				   char *ptr = yytext;
        -:        -: 1698:				   while (!isdigit(*ptr))
        -:        -: 1699:				      ptr++;
        -:        -: 1700:
        -:        -: 1701:				   /* Subtract one from the line number because
        -:        -: 1702:				    * yylineno is zero-based instead of
        -:        -: 1703:				    * one-based.
        -:        -: 1704:				    */
        -:        -: 1705:				   yylineno = strtol(ptr, &ptr, 0) - 1;
        -:        -: 1706:
        -:        -: 1707:                                   /* From GLSL 3.30 and GLSL ES on, after processing the
        -:        -: 1708:                                    * line directive (including its new-line), the implementation
        -:        -: 1709:                                    * will behave as if it is compiling at the line number passed
        -:        -: 1710:                                    * as argument. It was line number + 1 in older specifications.
        -:        -: 1711:                                    */
        -:        -: 1712:                                   if (yyextra->is_version(330, 100))
        -:        -: 1713:                                      yylineno--;
        -:        -: 1714:
        -:        -: 1715:				   yylloc->source = strtol(ptr, NULL, 0);
        -:        -: 1716:				}
        -:        -: 1717:	YY_BREAK
        -:        -: 1718:case 6:
        -:        -: 1719:*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
        -:        -: 1720:yyg->yy_c_buf_p = yy_cp -= 1;
        -:        -: 1721:YY_DO_BEFORE_ACTION; /* set up yytext again */
        -:        -: 1722:YY_RULE_SETUP
        -:        -: 1723:#line 212 "./glsl/glsl_lexer.ll"
        -:        -: 1724:{
        -:        -: 1725:				   /* Eat characters until the first digit is
        -:        -: 1726:				    * encountered
        -:        -: 1727:				    */
        -:        -: 1728:				   char *ptr = yytext;
        -:        -: 1729:				   while (!isdigit(*ptr))
        -:        -: 1730:				      ptr++;
        -:        -: 1731:
        -:        -: 1732:				   /* Subtract one from the line number because
        -:        -: 1733:				    * yylineno is zero-based instead of
        -:        -: 1734:				    * one-based.
        -:        -: 1735:				    */
        -:        -: 1736:				   yylineno = strtol(ptr, &ptr, 0) - 1;
        -:        -: 1737:
        -:        -: 1738:                                   /* From GLSL 3.30 and GLSL ES on, after processing the
        -:        -: 1739:                                    * line directive (including its new-line), the implementation
        -:        -: 1740:                                    * will behave as if it is compiling at the line number passed
        -:        -: 1741:                                    * as argument. It was line number + 1 in older specifications.
        -:        -: 1742:                                    */
        -:        -: 1743:                                   if (yyextra->is_version(330, 100))
        -:        -: 1744:                                      yylineno--;
        -:        -: 1745:				}
        -:        -: 1746:	YY_BREAK
        -:        -: 1747:case 7:
        -:        -: 1748:YY_RULE_SETUP
        -:        -: 1749:#line 234 "./glsl/glsl_lexer.ll"
        -:        -: 1750:{
        -:        -: 1751:				  BEGIN PP;
        -:        -: 1752:				  return PRAGMA_DEBUG_ON;
        -:        -: 1753:				}
        -:        -: 1754:	YY_BREAK
        -:        -: 1755:case 8:
        -:        -: 1756:YY_RULE_SETUP
        -:        -: 1757:#line 238 "./glsl/glsl_lexer.ll"
        -:        -: 1758:{
        -:        -: 1759:				  BEGIN PP;
        -:        -: 1760:				  return PRAGMA_DEBUG_OFF;
        -:        -: 1761:				}
        -:        -: 1762:	YY_BREAK
        -:        -: 1763:case 9:
        -:        -: 1764:YY_RULE_SETUP
        -:        -: 1765:#line 242 "./glsl/glsl_lexer.ll"
        -:        -: 1766:{
        -:        -: 1767:				  BEGIN PP;
        -:        -: 1768:				  return PRAGMA_OPTIMIZE_ON;
        -:        -: 1769:				}
        -:        -: 1770:	YY_BREAK
        -:        -: 1771:case 10:
        -:        -: 1772:YY_RULE_SETUP
        -:        -: 1773:#line 246 "./glsl/glsl_lexer.ll"
        -:        -: 1774:{
        -:        -: 1775:				  BEGIN PP;
        -:        -: 1776:				  return PRAGMA_OPTIMIZE_OFF;
        -:        -: 1777:				}
        -:        -: 1778:	YY_BREAK
        -:        -: 1779:case 11:
        -:        -: 1780:YY_RULE_SETUP
        -:        -: 1781:#line 250 "./glsl/glsl_lexer.ll"
        -:        -: 1782:{
        -:        -: 1783:				  BEGIN PP;
        -:        -: 1784:				  return PRAGMA_INVARIANT_ALL;
        -:        -: 1785:				}
        -:        -: 1786:	YY_BREAK
        -:        -: 1787:case 12:
        -:        -: 1788:YY_RULE_SETUP
        -:        -: 1789:#line 254 "./glsl/glsl_lexer.ll"
        -:        -: 1790:{ BEGIN PRAGMA; }
        -:        -: 1791:	YY_BREAK
        -:        -: 1792:case 13:
        -:        -: 1793:/* rule 13 can match eol */
        -:        -: 1794:YY_RULE_SETUP
        -:        -: 1795:#line 256 "./glsl/glsl_lexer.ll"
        -:        -: 1796:{ BEGIN 0; yylineno++; yycolumn = 0; }
        -:        -: 1797:	YY_BREAK
        -:        -: 1798:case 14:
        -:        -: 1799:YY_RULE_SETUP
        -:        -: 1800:#line 257 "./glsl/glsl_lexer.ll"
        -:        -: 1801:{ }
        -:        -: 1802:	YY_BREAK
        -:        -: 1803:case 15:
        -:        -: 1804:YY_RULE_SETUP
        -:        -: 1805:#line 259 "./glsl/glsl_lexer.ll"
        -:        -: 1806:{ }
        -:        -: 1807:	YY_BREAK
        -:        -: 1808:case 16:
        -:        -: 1809:YY_RULE_SETUP
        -:        -: 1810:#line 260 "./glsl/glsl_lexer.ll"
        -:        -: 1811:{ }
        -:        -: 1812:	YY_BREAK
        -:        -: 1813:case 17:
        -:        -: 1814:YY_RULE_SETUP
        -:        -: 1815:#line 261 "./glsl/glsl_lexer.ll"
        -:        -: 1816:return COLON;
        -:        -: 1817:	YY_BREAK
        -:        -: 1818:case 18:
        -:        -: 1819:YY_RULE_SETUP
        -:        -: 1820:#line 262 "./glsl/glsl_lexer.ll"
        -:        -: 1821:{
        -:        -: 1822:				   void *mem_ctx = yyextra->linalloc;
        -:        -: 1823:				   yylval->identifier = linear_strdup(mem_ctx, yytext);
        -:        -: 1824:				   return IDENTIFIER;
        -:        -: 1825:				}
        -:        -: 1826:	YY_BREAK
        -:        -: 1827:case 19:
        -:        -: 1828:YY_RULE_SETUP
        -:        -: 1829:#line 267 "./glsl/glsl_lexer.ll"
        -:        -: 1830:{
        -:        -: 1831:				    yylval->n = strtol(yytext, NULL, 10);
        -:        -: 1832:				    return INTCONSTANT;
        -:        -: 1833:				}
        -:        -: 1834:	YY_BREAK
        -:        -: 1835:case 20:
        -:        -: 1836:YY_RULE_SETUP
        -:        -: 1837:#line 271 "./glsl/glsl_lexer.ll"
        -:        -: 1838:{
        -:        -: 1839:				    yylval->n = 0;
        -:        -: 1840:				    return INTCONSTANT;
        -:        -: 1841:				}
        -:        -: 1842:	YY_BREAK
        -:        -: 1843:case 21:
        -:        -: 1844:/* rule 21 can match eol */
        -:        -: 1845:YY_RULE_SETUP
        -:        -: 1846:#line 275 "./glsl/glsl_lexer.ll"
        -:        -: 1847:{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
        -:        -: 1848:	YY_BREAK
        -:        -: 1849:case 22:
        -:        -: 1850:YY_RULE_SETUP
        -:        -: 1851:#line 276 "./glsl/glsl_lexer.ll"
        -:        -: 1852:{ return yytext[0]; }
        -:        -: 1853:	YY_BREAK
        -:        -: 1854:case 23:
        -:        -: 1855:/* rule 23 can match eol */
        -:        -: 1856:YY_RULE_SETUP
        -:        -: 1857:#line 278 "./glsl/glsl_lexer.ll"
        -:        -: 1858:{ yylineno++; yycolumn = 0; }
        -:        -: 1859:	YY_BREAK
        -:        -: 1860:case 24:
        -:        -: 1861:YY_RULE_SETUP
        -:        -: 1862:#line 280 "./glsl/glsl_lexer.ll"
        -:        -: 1863:DEPRECATED_ES_KEYWORD(ATTRIBUTE);
        -:        -: 1864:	YY_BREAK
        -:        -: 1865:case 25:
        -:        -: 1866:YY_RULE_SETUP
        -:        -: 1867:#line 281 "./glsl/glsl_lexer.ll"
        -:        -: 1868:return CONST_TOK;
        -:        -: 1869:	YY_BREAK
        -:        -: 1870:case 26:
        -:        -: 1871:YY_RULE_SETUP
        -:        -: 1872:#line 282 "./glsl/glsl_lexer.ll"
        -:        -: 1873:return BOOL_TOK;
        -:        -: 1874:	YY_BREAK
        -:        -: 1875:case 27:
        -:        -: 1876:YY_RULE_SETUP
        -:        -: 1877:#line 283 "./glsl/glsl_lexer.ll"
        -:        -: 1878:return FLOAT_TOK;
        -:        -: 1879:	YY_BREAK
        -:        -: 1880:case 28:
        -:        -: 1881:YY_RULE_SETUP
        -:        -: 1882:#line 284 "./glsl/glsl_lexer.ll"
        -:        -: 1883:return INT_TOK;
        -:        -: 1884:	YY_BREAK
        -:        -: 1885:case 29:
        -:        -: 1886:YY_RULE_SETUP
        -:        -: 1887:#line 285 "./glsl/glsl_lexer.ll"
        -:        -: 1888:KEYWORD(130, 300, 130, 300, UINT_TOK);
        -:        -: 1889:	YY_BREAK
        -:        -: 1890:case 30:
        -:        -: 1891:YY_RULE_SETUP
        -:        -: 1892:#line 287 "./glsl/glsl_lexer.ll"
        -:        -: 1893:return BREAK;
        -:        -: 1894:	YY_BREAK
        -:        -: 1895:case 31:
        -:        -: 1896:YY_RULE_SETUP
        -:        -: 1897:#line 288 "./glsl/glsl_lexer.ll"
        -:        -: 1898:return CONTINUE;
        -:        -: 1899:	YY_BREAK
        -:        -: 1900:case 32:
        -:        -: 1901:YY_RULE_SETUP
        -:        -: 1902:#line 289 "./glsl/glsl_lexer.ll"
        -:        -: 1903:return DO;
        -:        -: 1904:	YY_BREAK
        -:        -: 1905:case 33:
        -:        -: 1906:YY_RULE_SETUP
        -:        -: 1907:#line 290 "./glsl/glsl_lexer.ll"
        -:        -: 1908:return WHILE;
        -:        -: 1909:	YY_BREAK
        -:        -: 1910:case 34:
        -:        -: 1911:YY_RULE_SETUP
        -:        -: 1912:#line 291 "./glsl/glsl_lexer.ll"
        -:        -: 1913:return ELSE;
        -:        -: 1914:	YY_BREAK
        -:        -: 1915:case 35:
        -:        -: 1916:YY_RULE_SETUP
        -:        -: 1917:#line 292 "./glsl/glsl_lexer.ll"
        -:        -: 1918:return FOR;
        -:        -: 1919:	YY_BREAK
        -:        -: 1920:case 36:
        -:        -: 1921:YY_RULE_SETUP
        -:        -: 1922:#line 293 "./glsl/glsl_lexer.ll"
        -:        -: 1923:return IF;
        -:        -: 1924:	YY_BREAK
        -:        -: 1925:case 37:
        -:        -: 1926:YY_RULE_SETUP
        -:        -: 1927:#line 294 "./glsl/glsl_lexer.ll"
        -:        -: 1928:return DISCARD;
        -:        -: 1929:	YY_BREAK
        -:        -: 1930:case 38:
        -:        -: 1931:YY_RULE_SETUP
        -:        -: 1932:#line 295 "./glsl/glsl_lexer.ll"
        -:        -: 1933:return RETURN;
        -:        -: 1934:	YY_BREAK
        -:        -: 1935:case 39:
        -:        -: 1936:YY_RULE_SETUP
        -:        -: 1937:#line 297 "./glsl/glsl_lexer.ll"
        -:        -: 1938:return BVEC2;
        -:        -: 1939:	YY_BREAK
        -:        -: 1940:case 40:
        -:        -: 1941:YY_RULE_SETUP
        -:        -: 1942:#line 298 "./glsl/glsl_lexer.ll"
        -:        -: 1943:return BVEC3;
        -:        -: 1944:	YY_BREAK
        -:        -: 1945:case 41:
        -:        -: 1946:YY_RULE_SETUP
        -:        -: 1947:#line 299 "./glsl/glsl_lexer.ll"
        -:        -: 1948:return BVEC4;
        -:        -: 1949:	YY_BREAK
        -:        -: 1950:case 42:
        -:        -: 1951:YY_RULE_SETUP
        -:        -: 1952:#line 300 "./glsl/glsl_lexer.ll"
        -:        -: 1953:return IVEC2;
        -:        -: 1954:	YY_BREAK
        -:        -: 1955:case 43:
        -:        -: 1956:YY_RULE_SETUP
        -:        -: 1957:#line 301 "./glsl/glsl_lexer.ll"
        -:        -: 1958:return IVEC3;
        -:        -: 1959:	YY_BREAK
        -:        -: 1960:case 44:
        -:        -: 1961:YY_RULE_SETUP
        -:        -: 1962:#line 302 "./glsl/glsl_lexer.ll"
        -:        -: 1963:return IVEC4;
        -:        -: 1964:	YY_BREAK
        -:        -: 1965:case 45:
        -:        -: 1966:YY_RULE_SETUP
        -:        -: 1967:#line 303 "./glsl/glsl_lexer.ll"
        -:        -: 1968:KEYWORD(130, 300, 130, 300, UVEC2);
        -:        -: 1969:	YY_BREAK
        -:        -: 1970:case 46:
        -:        -: 1971:YY_RULE_SETUP
        -:        -: 1972:#line 304 "./glsl/glsl_lexer.ll"
        -:        -: 1973:KEYWORD(130, 300, 130, 300, UVEC3);
        -:        -: 1974:	YY_BREAK
        -:        -: 1975:case 47:
        -:        -: 1976:YY_RULE_SETUP
        -:        -: 1977:#line 305 "./glsl/glsl_lexer.ll"
        -:        -: 1978:KEYWORD(130, 300, 130, 300, UVEC4);
        -:        -: 1979:	YY_BREAK
        -:        -: 1980:case 48:
        -:        -: 1981:YY_RULE_SETUP
        -:        -: 1982:#line 306 "./glsl/glsl_lexer.ll"
        -:        -: 1983:return VEC2;
        -:        -: 1984:	YY_BREAK
        -:        -: 1985:case 49:
        -:        -: 1986:YY_RULE_SETUP
        -:        -: 1987:#line 307 "./glsl/glsl_lexer.ll"
        -:        -: 1988:return VEC3;
        -:        -: 1989:	YY_BREAK
        -:        -: 1990:case 50:
        -:        -: 1991:YY_RULE_SETUP
        -:        -: 1992:#line 308 "./glsl/glsl_lexer.ll"
        -:        -: 1993:return VEC4;
        -:        -: 1994:	YY_BREAK
        -:        -: 1995:case 51:
        -:        -: 1996:YY_RULE_SETUP
        -:        -: 1997:#line 309 "./glsl/glsl_lexer.ll"
        -:        -: 1998:return MAT2X2;
        -:        -: 1999:	YY_BREAK
        -:        -: 2000:case 52:
        -:        -: 2001:YY_RULE_SETUP
        -:        -: 2002:#line 310 "./glsl/glsl_lexer.ll"
        -:        -: 2003:return MAT3X3;
        -:        -: 2004:	YY_BREAK
        -:        -: 2005:case 53:
        -:        -: 2006:YY_RULE_SETUP
        -:        -: 2007:#line 311 "./glsl/glsl_lexer.ll"
        -:        -: 2008:return MAT4X4;
        -:        -: 2009:	YY_BREAK
        -:        -: 2010:case 54:
        -:        -: 2011:YY_RULE_SETUP
        -:        -: 2012:#line 312 "./glsl/glsl_lexer.ll"
        -:        -: 2013:KEYWORD(120, 300, 120, 300, MAT2X2);
        -:        -: 2014:	YY_BREAK
        -:        -: 2015:case 55:
        -:        -: 2016:YY_RULE_SETUP
        -:        -: 2017:#line 313 "./glsl/glsl_lexer.ll"
        -:        -: 2018:KEYWORD(120, 300, 120, 300, MAT2X3);
        -:        -: 2019:	YY_BREAK
        -:        -: 2020:case 56:
        -:        -: 2021:YY_RULE_SETUP
        -:        -: 2022:#line 314 "./glsl/glsl_lexer.ll"
        -:        -: 2023:KEYWORD(120, 300, 120, 300, MAT2X4);
        -:        -: 2024:	YY_BREAK
        -:        -: 2025:case 57:
        -:        -: 2026:YY_RULE_SETUP
        -:        -: 2027:#line 315 "./glsl/glsl_lexer.ll"
        -:        -: 2028:KEYWORD(120, 300, 120, 300, MAT3X2);
        -:        -: 2029:	YY_BREAK
        -:        -: 2030:case 58:
        -:        -: 2031:YY_RULE_SETUP
        -:        -: 2032:#line 316 "./glsl/glsl_lexer.ll"
        -:        -: 2033:KEYWORD(120, 300, 120, 300, MAT3X3);
        -:        -: 2034:	YY_BREAK
        -:        -: 2035:case 59:
        -:        -: 2036:YY_RULE_SETUP
        -:        -: 2037:#line 317 "./glsl/glsl_lexer.ll"
        -:        -: 2038:KEYWORD(120, 300, 120, 300, MAT3X4);
        -:        -: 2039:	YY_BREAK
        -:        -: 2040:case 60:
        -:        -: 2041:YY_RULE_SETUP
        -:        -: 2042:#line 318 "./glsl/glsl_lexer.ll"
        -:        -: 2043:KEYWORD(120, 300, 120, 300, MAT4X2);
        -:        -: 2044:	YY_BREAK
        -:        -: 2045:case 61:
        -:        -: 2046:YY_RULE_SETUP
        -:        -: 2047:#line 319 "./glsl/glsl_lexer.ll"
        -:        -: 2048:KEYWORD(120, 300, 120, 300, MAT4X3);
        -:        -: 2049:	YY_BREAK
        -:        -: 2050:case 62:
        -:        -: 2051:YY_RULE_SETUP
        -:        -: 2052:#line 320 "./glsl/glsl_lexer.ll"
        -:        -: 2053:KEYWORD(120, 300, 120, 300, MAT4X4);
        -:        -: 2054:	YY_BREAK
        -:        -: 2055:case 63:
        -:        -: 2056:YY_RULE_SETUP
        -:        -: 2057:#line 322 "./glsl/glsl_lexer.ll"
        -:        -: 2058:return IN_TOK;
        -:        -: 2059:	YY_BREAK
        -:        -: 2060:case 64:
        -:        -: 2061:YY_RULE_SETUP
        -:        -: 2062:#line 323 "./glsl/glsl_lexer.ll"
        -:        -: 2063:return OUT_TOK;
        -:        -: 2064:	YY_BREAK
        -:        -: 2065:case 65:
        -:        -: 2066:YY_RULE_SETUP
        -:        -: 2067:#line 324 "./glsl/glsl_lexer.ll"
        -:        -: 2068:return INOUT_TOK;
        -:        -: 2069:	YY_BREAK
        -:        -: 2070:case 66:
        -:        -: 2071:YY_RULE_SETUP
        -:        -: 2072:#line 325 "./glsl/glsl_lexer.ll"
        -:        -: 2073:return UNIFORM;
        -:        -: 2074:	YY_BREAK
        -:        -: 2075:case 67:
        -:        -: 2076:YY_RULE_SETUP
        -:        -: 2077:#line 326 "./glsl/glsl_lexer.ll"
        -:        -: 2078:KEYWORD_WITH_ALT(0, 0, 430, 310, yyextra->ARB_shader_storage_buffer_object_enable, BUFFER);
        -:        -: 2079:	YY_BREAK
        -:        -: 2080:case 68:
        -:        -: 2081:YY_RULE_SETUP
        -:        -: 2082:#line 327 "./glsl/glsl_lexer.ll"
        -:        -: 2083:DEPRECATED_ES_KEYWORD(VARYING);
        -:        -: 2084:	YY_BREAK
        -:        -: 2085:case 69:
        -:        -: 2086:YY_RULE_SETUP
        -:        -: 2087:#line 328 "./glsl/glsl_lexer.ll"
        -:        -: 2088:KEYWORD(120, 300, 120, 300, CENTROID);
        -:        -: 2089:	YY_BREAK
        -:        -: 2090:case 70:
        -:        -: 2091:YY_RULE_SETUP
        -:        -: 2092:#line 329 "./glsl/glsl_lexer.ll"
        -:        -: 2093:KEYWORD(120, 100, 120, 100, INVARIANT);
        -:        -: 2094:	YY_BREAK
        -:        -: 2095:case 71:
        -:        -: 2096:YY_RULE_SETUP
        -:        -: 2097:#line 330 "./glsl/glsl_lexer.ll"
        -:        -: 2098:KEYWORD(130, 100, 130, 300, FLAT);
        -:        -: 2099:	YY_BREAK
        -:        -: 2100:case 72:
        -:        -: 2101:YY_RULE_SETUP
        -:        -: 2102:#line 331 "./glsl/glsl_lexer.ll"
        -:        -: 2103:KEYWORD(130, 300, 130, 300, SMOOTH);
        -:        -: 2104:	YY_BREAK
        -:        -: 2105:case 73:
        -:        -: 2106:YY_RULE_SETUP
        -:        -: 2107:#line 332 "./glsl/glsl_lexer.ll"
        -:        -: 2108:KEYWORD(130, 300, 130, 0, NOPERSPECTIVE);
        -:        -: 2109:	YY_BREAK
        -:        -: 2110:case 74:
        -:        -: 2111:YY_RULE_SETUP
        -:        -: 2112:#line 333 "./glsl/glsl_lexer.ll"
        -:        -: 2113:KEYWORD_WITH_ALT(0, 300, 400, 320, yyextra->has_tessellation_shader(), PATCH);
        -:        -: 2114:	YY_BREAK
        -:        -: 2115:case 75:
        -:        -: 2116:YY_RULE_SETUP
        -:        -: 2117:#line 335 "./glsl/glsl_lexer.ll"
        -:        -: 2118:DEPRECATED_ES_KEYWORD(SAMPLER1D);
        -:        -: 2119:	YY_BREAK
        -:        -: 2120:case 76:
        -:        -: 2121:YY_RULE_SETUP
        -:        -: 2122:#line 336 "./glsl/glsl_lexer.ll"
        -:        -: 2123:return SAMPLER2D;
        -:        -: 2124:	YY_BREAK
        -:        -: 2125:case 77:
        -:        -: 2126:YY_RULE_SETUP
        -:        -: 2127:#line 337 "./glsl/glsl_lexer.ll"
        -:        -: 2128:return SAMPLER3D;
        -:        -: 2129:	YY_BREAK
        -:        -: 2130:case 78:
        -:        -: 2131:YY_RULE_SETUP
        -:        -: 2132:#line 338 "./glsl/glsl_lexer.ll"
        -:        -: 2133:return SAMPLERCUBE;
        -:        -: 2134:	YY_BREAK
        -:        -: 2135:case 79:
        -:        -: 2136:YY_RULE_SETUP
        -:        -: 2137:#line 339 "./glsl/glsl_lexer.ll"
        -:        -: 2138:KEYWORD(130, 300, 130, 0, SAMPLER1DARRAY);
        -:        -: 2139:	YY_BREAK
        -:        -: 2140:case 80:
        -:        -: 2141:YY_RULE_SETUP
        -:        -: 2142:#line 340 "./glsl/glsl_lexer.ll"
        -:        -: 2143:KEYWORD(130, 300, 130, 300, SAMPLER2DARRAY);
        -:        -: 2144:	YY_BREAK
        -:        -: 2145:case 81:
        -:        -: 2146:YY_RULE_SETUP
        -:        -: 2147:#line 341 "./glsl/glsl_lexer.ll"
        -:        -: 2148:DEPRECATED_ES_KEYWORD(SAMPLER1DSHADOW);
        -:        -: 2149:	YY_BREAK
        -:        -: 2150:case 82:
        -:        -: 2151:YY_RULE_SETUP
        -:        -: 2152:#line 342 "./glsl/glsl_lexer.ll"
        -:        -: 2153:return SAMPLER2DSHADOW;
        -:        -: 2154:	YY_BREAK
        -:        -: 2155:case 83:
        -:        -: 2156:YY_RULE_SETUP
        -:        -: 2157:#line 343 "./glsl/glsl_lexer.ll"
        -:        -: 2158:KEYWORD(130, 300, 130, 300, SAMPLERCUBESHADOW);
        -:        -: 2159:	YY_BREAK
        -:        -: 2160:case 84:
        -:        -: 2161:YY_RULE_SETUP
        -:        -: 2162:#line 344 "./glsl/glsl_lexer.ll"
        -:        -: 2163:KEYWORD(130, 300, 130, 0, SAMPLER1DARRAYSHADOW);
        -:        -: 2164:	YY_BREAK
        -:        -: 2165:case 85:
        -:        -: 2166:YY_RULE_SETUP
        -:        -: 2167:#line 345 "./glsl/glsl_lexer.ll"
        -:        -: 2168:KEYWORD(130, 300, 130, 300, SAMPLER2DARRAYSHADOW);
        -:        -: 2169:	YY_BREAK
        -:        -: 2170:case 86:
        -:        -: 2171:YY_RULE_SETUP
        -:        -: 2172:#line 346 "./glsl/glsl_lexer.ll"
        -:        -: 2173:KEYWORD(130, 300, 130, 0, ISAMPLER1D);
        -:        -: 2174:	YY_BREAK
        -:        -: 2175:case 87:
        -:        -: 2176:YY_RULE_SETUP
        -:        -: 2177:#line 347 "./glsl/glsl_lexer.ll"
        -:        -: 2178:KEYWORD(130, 300, 130, 300, ISAMPLER2D);
        -:        -: 2179:	YY_BREAK
        -:        -: 2180:case 88:
        -:        -: 2181:YY_RULE_SETUP
        -:        -: 2182:#line 348 "./glsl/glsl_lexer.ll"
        -:        -: 2183:KEYWORD(130, 300, 130, 300, ISAMPLER3D);
        -:        -: 2184:	YY_BREAK
        -:        -: 2185:case 89:
        -:        -: 2186:YY_RULE_SETUP
        -:        -: 2187:#line 349 "./glsl/glsl_lexer.ll"
        -:        -: 2188:KEYWORD(130, 300, 130, 300, ISAMPLERCUBE);
        -:        -: 2189:	YY_BREAK
        -:        -: 2190:case 90:
        -:        -: 2191:YY_RULE_SETUP
        -:        -: 2192:#line 350 "./glsl/glsl_lexer.ll"
        -:        -: 2193:KEYWORD(130, 300, 130, 0, ISAMPLER1DARRAY);
        -:        -: 2194:	YY_BREAK
        -:        -: 2195:case 91:
        -:        -: 2196:YY_RULE_SETUP
        -:        -: 2197:#line 351 "./glsl/glsl_lexer.ll"
        -:        -: 2198:KEYWORD(130, 300, 130, 300, ISAMPLER2DARRAY);
        -:        -: 2199:	YY_BREAK
        -:        -: 2200:case 92:
        -:        -: 2201:YY_RULE_SETUP
        -:        -: 2202:#line 352 "./glsl/glsl_lexer.ll"
        -:        -: 2203:KEYWORD(130, 300, 130, 0, USAMPLER1D);
        -:        -: 2204:	YY_BREAK
        -:        -: 2205:case 93:
        -:        -: 2206:YY_RULE_SETUP
        -:        -: 2207:#line 353 "./glsl/glsl_lexer.ll"
        -:        -: 2208:KEYWORD(130, 300, 130, 300, USAMPLER2D);
        -:        -: 2209:	YY_BREAK
        -:        -: 2210:case 94:
        -:        -: 2211:YY_RULE_SETUP
        -:        -: 2212:#line 354 "./glsl/glsl_lexer.ll"
        -:        -: 2213:KEYWORD(130, 300, 130, 300, USAMPLER3D);
        -:        -: 2214:	YY_BREAK
        -:        -: 2215:case 95:
        -:        -: 2216:YY_RULE_SETUP
        -:        -: 2217:#line 355 "./glsl/glsl_lexer.ll"
        -:        -: 2218:KEYWORD(130, 300, 130, 300, USAMPLERCUBE);
        -:        -: 2219:	YY_BREAK
        -:        -: 2220:case 96:
        -:        -: 2221:YY_RULE_SETUP
        -:        -: 2222:#line 356 "./glsl/glsl_lexer.ll"
        -:        -: 2223:KEYWORD(130, 300, 130, 0, USAMPLER1DARRAY);
        -:        -: 2224:	YY_BREAK
        -:        -: 2225:case 97:
        -:        -: 2226:YY_RULE_SETUP
        -:        -: 2227:#line 357 "./glsl/glsl_lexer.ll"
        -:        -: 2228:KEYWORD(130, 300, 130, 300, USAMPLER2DARRAY);
        -:        -: 2229:	YY_BREAK
        -:        -: 2230:/* additional keywords in ARB_texture_multisample, included in GLSL 1.50 */
        -:        -: 2231:/* these are reserved but not defined in GLSL 3.00 */
        -:        -: 2232:/* [iu]sampler2DMS are defined in GLSL ES 3.10 */
        -:        -: 2233:case 98:
        -:        -: 2234:YY_RULE_SETUP
        -:        -: 2235:#line 362 "./glsl/glsl_lexer.ll"
        -:        -: 2236:KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, SAMPLER2DMS);
        -:        -: 2237:	YY_BREAK
        -:        -: 2238:case 99:
        -:        -: 2239:YY_RULE_SETUP
        -:        -: 2240:#line 363 "./glsl/glsl_lexer.ll"
        -:        -: 2241:KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMS);
        -:        -: 2242:	YY_BREAK
        -:        -: 2243:case 100:
        -:        -: 2244:YY_RULE_SETUP
        -:        -: 2245:#line 364 "./glsl/glsl_lexer.ll"
        -:        -: 2246:KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, USAMPLER2DMS);
        -:        -: 2247:	YY_BREAK
        -:        -: 2248:case 101:
        -:        -: 2249:YY_RULE_SETUP
        -:        -: 2250:#line 365 "./glsl/glsl_lexer.ll"
        -:        -: 2251:KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, SAMPLER2DMSARRAY);
        -:        -: 2252:	YY_BREAK
        -:        -: 2253:case 102:
        -:        -: 2254:YY_RULE_SETUP
        -:        -: 2255:#line 366 "./glsl/glsl_lexer.ll"
        -:        -: 2256:KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, ISAMPLER2DMSARRAY);
        -:        -: 2257:	YY_BREAK
        -:        -: 2258:case 103:
        -:        -: 2259:YY_RULE_SETUP
        -:        -: 2260:#line 367 "./glsl/glsl_lexer.ll"
        -:        -: 2261:KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, USAMPLER2DMSARRAY);
        -:        -: 2262:	YY_BREAK
        -:        -: 2263:/* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
        -:        -: 2264:case 104:
        -:        -: 2265:YY_RULE_SETUP
        -:        -: 2266:#line 370 "./glsl/glsl_lexer.ll"
        -:        -: 2267:KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
        -:        -: 2268:	YY_BREAK
        -:        -: 2269:case 105:
        -:        -: 2270:YY_RULE_SETUP
        -:        -: 2271:#line 371 "./glsl/glsl_lexer.ll"
        -:        -: 2272:KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, ISAMPLERCUBEARRAY);
        -:        -: 2273:	YY_BREAK
        -:        -: 2274:case 106:
        -:        -: 2275:YY_RULE_SETUP
        -:        -: 2276:#line 372 "./glsl/glsl_lexer.ll"
        -:        -: 2277:KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, USAMPLERCUBEARRAY);
        -:        -: 2278:	YY_BREAK
        -:        -: 2279:case 107:
        -:        -: 2280:YY_RULE_SETUP
        -:        -: 2281:#line 373 "./glsl/glsl_lexer.ll"
        -:        -: 2282:KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAYSHADOW);
        -:        -: 2283:	YY_BREAK
        -:        -: 2284:case 108:
        -:        -: 2285:YY_RULE_SETUP
        -:        -: 2286:#line 375 "./glsl/glsl_lexer.ll"
        -:        -: 2287:{
        -:        -: 2288:			  if (yyextra->OES_EGL_image_external_enable)
        -:        -: 2289:			     return SAMPLEREXTERNALOES;
        -:        -: 2290:			  else
        -:        -: 2291:			     return IDENTIFIER;
        -:        -: 2292:		}
        -:        -: 2293:	YY_BREAK
        -:        -: 2294:/* keywords available with ARB_gpu_shader5 */
        -:        -: 2295:case 109:
        -:        -: 2296:YY_RULE_SETUP
        -:        -: 2297:#line 383 "./glsl/glsl_lexer.ll"
        -:        -: 2298:KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->EXT_gpu_shader5_enable || yyextra->OES_gpu_shader5_enable, PRECISE);
        -:        -: 2299:	YY_BREAK
        -:        -: 2300:/* keywords available with ARB_shader_image_load_store */
        -:        -: 2301:case 110:
        -:        -: 2302:YY_RULE_SETUP
        -:        -: 2303:#line 386 "./glsl/glsl_lexer.ll"
        -:        -: 2304:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1D);
        -:        -: 2305:	YY_BREAK
        -:        -: 2306:case 111:
        -:        -: 2307:YY_RULE_SETUP
        -:        -: 2308:#line 387 "./glsl/glsl_lexer.ll"
        -:        -: 2309:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2D);
        -:        -: 2310:	YY_BREAK
        -:        -: 2311:case 112:
        -:        -: 2312:YY_RULE_SETUP
        -:        -: 2313:#line 388 "./glsl/glsl_lexer.ll"
        -:        -: 2314:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE3D);
        -:        -: 2315:	YY_BREAK
        -:        -: 2316:case 113:
        -:        -: 2317:YY_RULE_SETUP
        -:        -: 2318:#line 389 "./glsl/glsl_lexer.ll"
        -:        -: 2319:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DRECT);
        -:        -: 2320:	YY_BREAK
        -:        -: 2321:case 114:
        -:        -: 2322:YY_RULE_SETUP
        -:        -: 2323:#line 390 "./glsl/glsl_lexer.ll"
        -:        -: 2324:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGECUBE);
        -:        -: 2325:	YY_BREAK
        -:        -: 2326:case 115:
        -:        -: 2327:YY_RULE_SETUP
        -:        -: 2328:#line 391 "./glsl/glsl_lexer.ll"
        -:        -: 2329:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IMAGEBUFFER);
        -:        -: 2330:	YY_BREAK
        -:        -: 2331:case 116:
        -:        -: 2332:YY_RULE_SETUP
        -:        -: 2333:#line 392 "./glsl/glsl_lexer.ll"
        -:        -: 2334:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1DARRAY);
        -:        -: 2335:	YY_BREAK
        -:        -: 2336:case 117:
        -:        -: 2337:YY_RULE_SETUP
        -:        -: 2338:#line 393 "./glsl/glsl_lexer.ll"
        -:        -: 2339:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2DARRAY);
        -:        -: 2340:	YY_BREAK
        -:        -: 2341:case 118:
        -:        -: 2342:YY_RULE_SETUP
        -:        -: 2343:#line 394 "./glsl/glsl_lexer.ll"
        -:        -: 2344:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IMAGECUBEARRAY);
        -:        -: 2345:	YY_BREAK
        -:        -: 2346:case 119:
        -:        -: 2347:YY_RULE_SETUP
        -:        -: 2348:#line 395 "./glsl/glsl_lexer.ll"
        -:        -: 2349:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMS);
        -:        -: 2350:	YY_BREAK
        -:        -: 2351:case 120:
        -:        -: 2352:YY_RULE_SETUP
        -:        -: 2353:#line 396 "./glsl/glsl_lexer.ll"
        -:        -: 2354:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMSARRAY);
        -:        -: 2355:	YY_BREAK
        -:        -: 2356:case 121:
        -:        -: 2357:YY_RULE_SETUP
        -:        -: 2358:#line 397 "./glsl/glsl_lexer.ll"
        -:        -: 2359:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1D);
        -:        -: 2360:	YY_BREAK
        -:        -: 2361:case 122:
        -:        -: 2362:YY_RULE_SETUP
        -:        -: 2363:#line 398 "./glsl/glsl_lexer.ll"
        -:        -: 2364:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2D);
        -:        -: 2365:	YY_BREAK
        -:        -: 2366:case 123:
        -:        -: 2367:YY_RULE_SETUP
        -:        -: 2368:#line 399 "./glsl/glsl_lexer.ll"
        -:        -: 2369:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE3D);
        -:        -: 2370:	YY_BREAK
        -:        -: 2371:case 124:
        -:        -: 2372:YY_RULE_SETUP
        -:        -: 2373:#line 400 "./glsl/glsl_lexer.ll"
        -:        -: 2374:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DRECT);
        -:        -: 2375:	YY_BREAK
        -:        -: 2376:case 125:
        -:        -: 2377:YY_RULE_SETUP
        -:        -: 2378:#line 401 "./glsl/glsl_lexer.ll"
        -:        -: 2379:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGECUBE);
        -:        -: 2380:	YY_BREAK
        -:        -: 2381:case 126:
        -:        -: 2382:YY_RULE_SETUP
        -:        -: 2383:#line 402 "./glsl/glsl_lexer.ll"
        -:        -: 2384:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IIMAGEBUFFER);
        -:        -: 2385:	YY_BREAK
        -:        -: 2386:case 127:
        -:        -: 2387:YY_RULE_SETUP
        -:        -: 2388:#line 403 "./glsl/glsl_lexer.ll"
        -:        -: 2389:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1DARRAY);
        -:        -: 2390:	YY_BREAK
        -:        -: 2391:case 128:
        -:        -: 2392:YY_RULE_SETUP
        -:        -: 2393:#line 404 "./glsl/glsl_lexer.ll"
        -:        -: 2394:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DARRAY);
        -:        -: 2395:	YY_BREAK
        -:        -: 2396:case 129:
        -:        -: 2397:YY_RULE_SETUP
        -:        -: 2398:#line 405 "./glsl/glsl_lexer.ll"
        -:        -: 2399:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IIMAGECUBEARRAY);
        -:        -: 2400:	YY_BREAK
        -:        -: 2401:case 130:
        -:        -: 2402:YY_RULE_SETUP
        -:        -: 2403:#line 406 "./glsl/glsl_lexer.ll"
        -:        -: 2404:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMS);
        -:        -: 2405:	YY_BREAK
        -:        -: 2406:case 131:
        -:        -: 2407:YY_RULE_SETUP
        -:        -: 2408:#line 407 "./glsl/glsl_lexer.ll"
        -:        -: 2409:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMSARRAY);
        -:        -: 2410:	YY_BREAK
        -:        -: 2411:case 132:
        -:        -: 2412:YY_RULE_SETUP
        -:        -: 2413:#line 408 "./glsl/glsl_lexer.ll"
        -:        -: 2414:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1D);
        -:        -: 2415:	YY_BREAK
        -:        -: 2416:case 133:
        -:        -: 2417:YY_RULE_SETUP
        -:        -: 2418:#line 409 "./glsl/glsl_lexer.ll"
        -:        -: 2419:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2D);
        -:        -: 2420:	YY_BREAK
        -:        -: 2421:case 134:
        -:        -: 2422:YY_RULE_SETUP
        -:        -: 2423:#line 410 "./glsl/glsl_lexer.ll"
        -:        -: 2424:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE3D);
        -:        -: 2425:	YY_BREAK
        -:        -: 2426:case 135:
        -:        -: 2427:YY_RULE_SETUP
        -:        -: 2428:#line 411 "./glsl/glsl_lexer.ll"
        -:        -: 2429:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DRECT);
        -:        -: 2430:	YY_BREAK
        -:        -: 2431:case 136:
        -:        -: 2432:YY_RULE_SETUP
        -:        -: 2433:#line 412 "./glsl/glsl_lexer.ll"
        -:        -: 2434:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGECUBE);
        -:        -: 2435:	YY_BREAK
        -:        -: 2436:case 137:
        -:        -: 2437:YY_RULE_SETUP
        -:        -: 2438:#line 413 "./glsl/glsl_lexer.ll"
        -:        -: 2439:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, UIMAGEBUFFER);
        -:        -: 2440:	YY_BREAK
        -:        -: 2441:case 138:
        -:        -: 2442:YY_RULE_SETUP
        -:        -: 2443:#line 414 "./glsl/glsl_lexer.ll"
        -:        -: 2444:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1DARRAY);
        -:        -: 2445:	YY_BREAK
        -:        -: 2446:case 139:
        -:        -: 2447:YY_RULE_SETUP
        -:        -: 2448:#line 415 "./glsl/glsl_lexer.ll"
        -:        -: 2449:KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DARRAY);
        -:        -: 2450:	YY_BREAK
        -:        -: 2451:case 140:
        -:        -: 2452:YY_RULE_SETUP
        -:        -: 2453:#line 416 "./glsl/glsl_lexer.ll"
        -:        -: 2454:KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, UIMAGECUBEARRAY);
        -:        -: 2455:	YY_BREAK
        -:        -: 2456:case 141:
        -:        -: 2457:YY_RULE_SETUP
        -:        -: 2458:#line 417 "./glsl/glsl_lexer.ll"
        -:        -: 2459:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMS);
        -:        -: 2460:	YY_BREAK
        -:        -: 2461:case 142:
        -:        -: 2462:YY_RULE_SETUP
        -:        -: 2463:#line 418 "./glsl/glsl_lexer.ll"
        -:        -: 2464:KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMSARRAY);
        -:        -: 2465:	YY_BREAK
        -:        -: 2466:case 143:
        -:        -: 2467:YY_RULE_SETUP
        -:        -: 2468:#line 419 "./glsl/glsl_lexer.ll"
        -:        -: 2469:KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
        -:        -: 2470:	YY_BREAK
        -:        -: 2471:case 144:
        -:        -: 2472:YY_RULE_SETUP
        -:        -: 2473:#line 420 "./glsl/glsl_lexer.ll"
        -:        -: 2474:KEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
        -:        -: 2475:	YY_BREAK
        -:        -: 2476:case 145:
        -:        -: 2477:YY_RULE_SETUP
        -:        -: 2478:#line 421 "./glsl/glsl_lexer.ll"
        -:        -: 2479:KEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
        -:        -: 2480:	YY_BREAK
        -:        -: 2481:case 146:
        -:        -: 2482:YY_RULE_SETUP
        -:        -: 2483:#line 422 "./glsl/glsl_lexer.ll"
        -:        -: 2484:KEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
        -:        -: 2485:	YY_BREAK
        -:        -: 2486:case 147:
        -:        -: 2487:YY_RULE_SETUP
        -:        -: 2488:#line 424 "./glsl/glsl_lexer.ll"
        -:        -: 2489:KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, COHERENT);
        -:        -: 2490:	YY_BREAK
        -:        -: 2491:case 148:
        -:        -: 2492:YY_RULE_SETUP
        -:        -: 2493:#line 425 "./glsl/glsl_lexer.ll"
        -:        -: 2494:KEYWORD_WITH_ALT(110, 100, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, VOLATILE);
        -:        -: 2495:	YY_BREAK
        -:        -: 2496:case 149:
        -:        -: 2497:YY_RULE_SETUP
        -:        -: 2498:#line 426 "./glsl/glsl_lexer.ll"
        -:        -: 2499:KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, RESTRICT);
        -:        -: 2500:	YY_BREAK
        -:        -: 2501:case 150:
        -:        -: 2502:YY_RULE_SETUP
        -:        -: 2503:#line 427 "./glsl/glsl_lexer.ll"
        -:        -: 2504:KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, READONLY);
        -:        -: 2505:	YY_BREAK
        -:        -: 2506:case 151:
        -:        -: 2507:YY_RULE_SETUP
        -:        -: 2508:#line 428 "./glsl/glsl_lexer.ll"
        -:        -: 2509:KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, WRITEONLY);
        -:        -: 2510:	YY_BREAK
        -:        -: 2511:case 152:
        -:        -: 2512:YY_RULE_SETUP
        -:        -: 2513:#line 430 "./glsl/glsl_lexer.ll"
        -:        -: 2514:KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_atomic_counters_enable, ATOMIC_UINT);
        -:        -: 2515:	YY_BREAK
        -:        -: 2516:case 153:
        -:        -: 2517:YY_RULE_SETUP
        -:        -: 2518:#line 432 "./glsl/glsl_lexer.ll"
        -:        -: 2519:KEYWORD_WITH_ALT(430, 310, 430, 310, yyextra->ARB_compute_shader_enable, SHARED);
        -:        -: 2520:	YY_BREAK
        -:        -: 2521:case 154:
        -:        -: 2522:YY_RULE_SETUP
        -:        -: 2523:#line 434 "./glsl/glsl_lexer.ll"
        -:        -: 2524:return STRUCT;
        -:        -: 2525:	YY_BREAK
        -:        -: 2526:case 155:
        -:        -: 2527:YY_RULE_SETUP
        -:        -: 2528:#line 435 "./glsl/glsl_lexer.ll"
        -:        -: 2529:return VOID_TOK;
        -:        -: 2530:	YY_BREAK
        -:        -: 2531:case 156:
        -:        -: 2532:YY_RULE_SETUP
        -:        -: 2533:#line 437 "./glsl/glsl_lexer.ll"
        -:        -: 2534:{
        -:        -: 2535:		  if ((yyextra->is_version(140, 300))
        -:        -: 2536:		      || yyextra->AMD_conservative_depth_enable
        -:        -: 2537:		      || yyextra->ARB_conservative_depth_enable
        -:        -: 2538:		      || yyextra->ARB_explicit_attrib_location_enable
        -:        -: 2539:		      || yyextra->ARB_explicit_uniform_location_enable
        -:        -: 2540:                      || yyextra->has_separate_shader_objects()
        -:        -: 2541:		      || yyextra->ARB_uniform_buffer_object_enable
        -:        -: 2542:		      || yyextra->ARB_fragment_coord_conventions_enable
        -:        -: 2543:                      || yyextra->ARB_shading_language_420pack_enable
        -:        -: 2544:                      || yyextra->ARB_compute_shader_enable
        -:        -: 2545:                      || yyextra->ARB_tessellation_shader_enable) {
        -:        -: 2546:		      return LAYOUT_TOK;
        -:        -: 2547:		   } else {
        -:        -: 2548:		      void *mem_ctx = yyextra->linalloc;
        -:        -: 2549:		      yylval->identifier = linear_strdup(mem_ctx, yytext);
        -:        -: 2550:		      return classify_identifier(yyextra, yytext);
        -:        -: 2551:		   }
        -:        -: 2552:		}
        -:        -: 2553:	YY_BREAK
        -:        -: 2554:case 157:
        -:        -: 2555:YY_RULE_SETUP
        -:        -: 2556:#line 457 "./glsl/glsl_lexer.ll"
        -:        -: 2557:return INC_OP;
        -:        -: 2558:	YY_BREAK
        -:        -: 2559:case 158:
        -:        -: 2560:YY_RULE_SETUP
        -:        -: 2561:#line 458 "./glsl/glsl_lexer.ll"
        -:        -: 2562:return DEC_OP;
        -:        -: 2563:	YY_BREAK
        -:        -: 2564:case 159:
        -:        -: 2565:YY_RULE_SETUP
        -:        -: 2566:#line 459 "./glsl/glsl_lexer.ll"
        -:        -: 2567:return LE_OP;
        -:        -: 2568:	YY_BREAK
        -:        -: 2569:case 160:
        -:        -: 2570:YY_RULE_SETUP
        -:        -: 2571:#line 460 "./glsl/glsl_lexer.ll"
        -:        -: 2572:return GE_OP;
        -:        -: 2573:	YY_BREAK
        -:        -: 2574:case 161:
        -:        -: 2575:YY_RULE_SETUP
        -:        -: 2576:#line 461 "./glsl/glsl_lexer.ll"
        -:        -: 2577:return EQ_OP;
        -:        -: 2578:	YY_BREAK
        -:        -: 2579:case 162:
        -:        -: 2580:YY_RULE_SETUP
        -:        -: 2581:#line 462 "./glsl/glsl_lexer.ll"
        -:        -: 2582:return NE_OP;
        -:        -: 2583:	YY_BREAK
        -:        -: 2584:case 163:
        -:        -: 2585:YY_RULE_SETUP
        -:        -: 2586:#line 463 "./glsl/glsl_lexer.ll"
        -:        -: 2587:return AND_OP;
        -:        -: 2588:	YY_BREAK
        -:        -: 2589:case 164:
        -:        -: 2590:YY_RULE_SETUP
        -:        -: 2591:#line 464 "./glsl/glsl_lexer.ll"
        -:        -: 2592:return OR_OP;
        -:        -: 2593:	YY_BREAK
        -:        -: 2594:case 165:
        -:        -: 2595:YY_RULE_SETUP
        -:        -: 2596:#line 465 "./glsl/glsl_lexer.ll"
        -:        -: 2597:return XOR_OP;
        -:        -: 2598:	YY_BREAK
        -:        -: 2599:case 166:
        -:        -: 2600:YY_RULE_SETUP
        -:        -: 2601:#line 466 "./glsl/glsl_lexer.ll"
        -:        -: 2602:return LEFT_OP;
        -:        -: 2603:	YY_BREAK
        -:        -: 2604:case 167:
        -:        -: 2605:YY_RULE_SETUP
        -:        -: 2606:#line 467 "./glsl/glsl_lexer.ll"
        -:        -: 2607:return RIGHT_OP;
        -:        -: 2608:	YY_BREAK
        -:        -: 2609:case 168:
        -:        -: 2610:YY_RULE_SETUP
        -:        -: 2611:#line 469 "./glsl/glsl_lexer.ll"
        -:        -: 2612:return MUL_ASSIGN;
        -:        -: 2613:	YY_BREAK
        -:        -: 2614:case 169:
        -:        -: 2615:YY_RULE_SETUP
        -:        -: 2616:#line 470 "./glsl/glsl_lexer.ll"
        -:        -: 2617:return DIV_ASSIGN;
        -:        -: 2618:	YY_BREAK
        -:        -: 2619:case 170:
        -:        -: 2620:YY_RULE_SETUP
        -:        -: 2621:#line 471 "./glsl/glsl_lexer.ll"
        -:        -: 2622:return ADD_ASSIGN;
        -:        -: 2623:	YY_BREAK
        -:        -: 2624:case 171:
        -:        -: 2625:YY_RULE_SETUP
        -:        -: 2626:#line 472 "./glsl/glsl_lexer.ll"
        -:        -: 2627:return MOD_ASSIGN;
        -:        -: 2628:	YY_BREAK
        -:        -: 2629:case 172:
        -:        -: 2630:YY_RULE_SETUP
        -:        -: 2631:#line 473 "./glsl/glsl_lexer.ll"
        -:        -: 2632:return LEFT_ASSIGN;
        -:        -: 2633:	YY_BREAK
        -:        -: 2634:case 173:
        -:        -: 2635:YY_RULE_SETUP
        -:        -: 2636:#line 474 "./glsl/glsl_lexer.ll"
        -:        -: 2637:return RIGHT_ASSIGN;
        -:        -: 2638:	YY_BREAK
        -:        -: 2639:case 174:
        -:        -: 2640:YY_RULE_SETUP
        -:        -: 2641:#line 475 "./glsl/glsl_lexer.ll"
        -:        -: 2642:return AND_ASSIGN;
        -:        -: 2643:	YY_BREAK
        -:        -: 2644:case 175:
        -:        -: 2645:YY_RULE_SETUP
        -:        -: 2646:#line 476 "./glsl/glsl_lexer.ll"
        -:        -: 2647:return XOR_ASSIGN;
        -:        -: 2648:	YY_BREAK
        -:        -: 2649:case 176:
        -:        -: 2650:YY_RULE_SETUP
        -:        -: 2651:#line 477 "./glsl/glsl_lexer.ll"
        -:        -: 2652:return OR_ASSIGN;
        -:        -: 2653:	YY_BREAK
        -:        -: 2654:case 177:
        -:        -: 2655:YY_RULE_SETUP
        -:        -: 2656:#line 478 "./glsl/glsl_lexer.ll"
        -:        -: 2657:return SUB_ASSIGN;
        -:        -: 2658:	YY_BREAK
        -:        -: 2659:case 178:
        -:        -: 2660:YY_RULE_SETUP
        -:        -: 2661:#line 480 "./glsl/glsl_lexer.ll"
        -:        -: 2662:{
        -:        -: 2663:			    return LITERAL_INTEGER(10);
        -:        -: 2664:			}
        -:        -: 2665:	YY_BREAK
        -:        -: 2666:case 179:
        -:        -: 2667:YY_RULE_SETUP
        -:        -: 2668:#line 483 "./glsl/glsl_lexer.ll"
        -:        -: 2669:{
        -:        -: 2670:			    return LITERAL_INTEGER(16);
        -:        -: 2671:			}
        -:        -: 2672:	YY_BREAK
        -:        -: 2673:case 180:
        -:        -: 2674:YY_RULE_SETUP
        -:        -: 2675:#line 486 "./glsl/glsl_lexer.ll"
        -:        -: 2676:{
        -:        -: 2677:			    return LITERAL_INTEGER(8);
        -:        -: 2678:			}
        -:        -: 2679:	YY_BREAK
        -:        -: 2680:case 181:
        -:        -: 2681:#line 491 "./glsl/glsl_lexer.ll"
        -:        -: 2682:case 182:
        -:        -: 2683:#line 492 "./glsl/glsl_lexer.ll"
        -:        -: 2684:case 183:
        -:        -: 2685:#line 493 "./glsl/glsl_lexer.ll"
        -:        -: 2686:case 184:
        -:        -: 2687:YY_RULE_SETUP
        -:        -: 2688:#line 493 "./glsl/glsl_lexer.ll"
        -:        -: 2689:{
        -:        -: 2690:			    struct _mesa_glsl_parse_state *state = yyextra;
        -:        -: 2691:			    char suffix = yytext[strlen(yytext) - 1];
        -:        -: 2692:			    if (!state->is_version(120, 300) &&
        -:        -: 2693:			        (suffix == 'f' || suffix == 'F')) {
        -:        -: 2694:			        _mesa_glsl_warning(yylloc, state,
        -:        -: 2695:			                           "Float suffixes are invalid in GLSL 1.10");
        -:        -: 2696:			    }
        -:        -: 2697:			    yylval->real = _mesa_strtof(yytext, NULL);
        -:        -: 2698:			    return FLOATCONSTANT;
        -:        -: 2699:			}
        -:        -: 2700:	YY_BREAK
        -:        -: 2701:case 185:
        -:        -: 2702:#line 506 "./glsl/glsl_lexer.ll"
        -:        -: 2703:case 186:
        -:        -: 2704:#line 507 "./glsl/glsl_lexer.ll"
        -:        -: 2705:case 187:
        -:        -: 2706:#line 508 "./glsl/glsl_lexer.ll"
        -:        -: 2707:case 188:
        -:        -: 2708:YY_RULE_SETUP
        -:        -: 2709:#line 508 "./glsl/glsl_lexer.ll"
        -:        -: 2710:{
        -:        -: 2711:			    if (!yyextra->is_version(400, 0) &&
        -:        -: 2712:			        !yyextra->ARB_gpu_shader_fp64_enable)
        -:        -: 2713:			        return ERROR_TOK;
        -:        -: 2714:			    yylval->dreal = _mesa_strtod(yytext, NULL);
        -:        -: 2715:			    return DOUBLECONSTANT;
        -:        -: 2716:			}
        -:        -: 2717:	YY_BREAK
        -:        -: 2718:case 189:
        -:        -: 2719:YY_RULE_SETUP
        -:        -: 2720:#line 516 "./glsl/glsl_lexer.ll"
        -:        -: 2721:{
        -:        -: 2722:			    yylval->n = 1;
        -:        -: 2723:			    return BOOLCONSTANT;
        -:        -: 2724:			}
        -:        -: 2725:	YY_BREAK
        -:        -: 2726:case 190:
        -:        -: 2727:YY_RULE_SETUP
        -:        -: 2728:#line 520 "./glsl/glsl_lexer.ll"
        -:        -: 2729:{
        -:        -: 2730:			    yylval->n = 0;
        -:        -: 2731:			    return BOOLCONSTANT;
        -:        -: 2732:			}
        -:        -: 2733:	YY_BREAK
        -:        -: 2734:/* Reserved words in GLSL 1.10. */
        -:        -: 2735:case 191:
        -:        -: 2736:YY_RULE_SETUP
        -:        -: 2737:#line 527 "./glsl/glsl_lexer.ll"
        -:        -: 2738:KEYWORD(110, 100, 0, 0, ASM);
        -:        -: 2739:	YY_BREAK
        -:        -: 2740:case 192:
        -:        -: 2741:YY_RULE_SETUP
        -:        -: 2742:#line 528 "./glsl/glsl_lexer.ll"
        -:        -: 2743:KEYWORD(110, 100, 0, 0, CLASS);
        -:        -: 2744:	YY_BREAK
        -:        -: 2745:case 193:
        -:        -: 2746:YY_RULE_SETUP
        -:        -: 2747:#line 529 "./glsl/glsl_lexer.ll"
        -:        -: 2748:KEYWORD(110, 100, 0, 0, UNION);
        -:        -: 2749:	YY_BREAK
        -:        -: 2750:case 194:
        -:        -: 2751:YY_RULE_SETUP
        -:        -: 2752:#line 530 "./glsl/glsl_lexer.ll"
        -:        -: 2753:KEYWORD(110, 100, 0, 0, ENUM);
        -:        -: 2754:	YY_BREAK
        -:        -: 2755:case 195:
        -:        -: 2756:YY_RULE_SETUP
        -:        -: 2757:#line 531 "./glsl/glsl_lexer.ll"
        -:        -: 2758:KEYWORD(110, 100, 0, 0, TYPEDEF);
        -:        -: 2759:	YY_BREAK
        -:        -: 2760:case 196:
        -:        -: 2761:YY_RULE_SETUP
        -:        -: 2762:#line 532 "./glsl/glsl_lexer.ll"
        -:        -: 2763:KEYWORD(110, 100, 0, 0, TEMPLATE);
        -:        -: 2764:	YY_BREAK
        -:        -: 2765:case 197:
        -:        -: 2766:YY_RULE_SETUP
        -:        -: 2767:#line 533 "./glsl/glsl_lexer.ll"
        -:        -: 2768:KEYWORD(110, 100, 0, 0, THIS);
        -:        -: 2769:	YY_BREAK
        -:        -: 2770:case 198:
        -:        -: 2771:YY_RULE_SETUP
        -:        -: 2772:#line 534 "./glsl/glsl_lexer.ll"
        -:        -: 2773:KEYWORD_WITH_ALT(110, 100, 140, 300, yyextra->ARB_uniform_buffer_object_enable, PACKED_TOK);
        -:        -: 2774:	YY_BREAK
        -:        -: 2775:case 199:
        -:        -: 2776:YY_RULE_SETUP
        -:        -: 2777:#line 535 "./glsl/glsl_lexer.ll"
        -:        -: 2778:KEYWORD(110, 100, 0, 0, GOTO);
        -:        -: 2779:	YY_BREAK
        -:        -: 2780:case 200:
        -:        -: 2781:YY_RULE_SETUP
        -:        -: 2782:#line 536 "./glsl/glsl_lexer.ll"
        -:        -: 2783:KEYWORD(110, 100, 130, 300, SWITCH);
        -:        -: 2784:	YY_BREAK
        -:        -: 2785:case 201:
        -:        -: 2786:YY_RULE_SETUP
        -:        -: 2787:#line 537 "./glsl/glsl_lexer.ll"
        -:        -: 2788:KEYWORD(110, 100, 130, 300, DEFAULT);
        -:        -: 2789:	YY_BREAK
        -:        -: 2790:case 202:
        -:        -: 2791:YY_RULE_SETUP
        -:        -: 2792:#line 538 "./glsl/glsl_lexer.ll"
        -:        -: 2793:KEYWORD(110, 100, 0, 0, INLINE_TOK);
        -:        -: 2794:	YY_BREAK
        -:        -: 2795:case 203:
        -:        -: 2796:YY_RULE_SETUP
        -:        -: 2797:#line 539 "./glsl/glsl_lexer.ll"
        -:        -: 2798:KEYWORD(110, 100, 0, 0, NOINLINE);
        -:        -: 2799:	YY_BREAK
        -:        -: 2800:case 204:
        -:        -: 2801:YY_RULE_SETUP
        -:        -: 2802:#line 540 "./glsl/glsl_lexer.ll"
        -:        -: 2803:KEYWORD(110, 100, 0, 0, PUBLIC_TOK);
        -:        -: 2804:	YY_BREAK
        -:        -: 2805:case 205:
        -:        -: 2806:YY_RULE_SETUP
        -:        -: 2807:#line 541 "./glsl/glsl_lexer.ll"
        -:        -: 2808:KEYWORD(110, 100, 0, 0, STATIC);
        -:        -: 2809:	YY_BREAK
        -:        -: 2810:case 206:
        -:        -: 2811:YY_RULE_SETUP
        -:        -: 2812:#line 542 "./glsl/glsl_lexer.ll"
        -:        -: 2813:KEYWORD(110, 100, 0, 0, EXTERN);
        -:        -: 2814:	YY_BREAK
        -:        -: 2815:case 207:
        -:        -: 2816:YY_RULE_SETUP
        -:        -: 2817:#line 543 "./glsl/glsl_lexer.ll"
        -:        -: 2818:KEYWORD(110, 100, 0, 0, EXTERNAL);
        -:        -: 2819:	YY_BREAK
        -:        -: 2820:case 208:
        -:        -: 2821:YY_RULE_SETUP
        -:        -: 2822:#line 544 "./glsl/glsl_lexer.ll"
        -:        -: 2823:KEYWORD(110, 100, 0, 0, INTERFACE);
        -:        -: 2824:	YY_BREAK
        -:        -: 2825:case 209:
        -:        -: 2826:YY_RULE_SETUP
        -:        -: 2827:#line 545 "./glsl/glsl_lexer.ll"
        -:        -: 2828:KEYWORD(110, 100, 0, 0, LONG_TOK);
        -:        -: 2829:	YY_BREAK
        -:        -: 2830:case 210:
        -:        -: 2831:YY_RULE_SETUP
        -:        -: 2832:#line 546 "./glsl/glsl_lexer.ll"
        -:        -: 2833:KEYWORD(110, 100, 0, 0, SHORT_TOK);
        -:        -: 2834:	YY_BREAK
        -:        -: 2835:case 211:
        -:        -: 2836:YY_RULE_SETUP
        -:        -: 2837:#line 547 "./glsl/glsl_lexer.ll"
        -:        -: 2838:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DOUBLE_TOK);
        -:        -: 2839:	YY_BREAK
        -:        -: 2840:case 212:
        -:        -: 2841:YY_RULE_SETUP
        -:        -: 2842:#line 548 "./glsl/glsl_lexer.ll"
        -:        -: 2843:KEYWORD(110, 100, 0, 0, HALF);
        -:        -: 2844:	YY_BREAK
        -:        -: 2845:case 213:
        -:        -: 2846:YY_RULE_SETUP
        -:        -: 2847:#line 549 "./glsl/glsl_lexer.ll"
        -:        -: 2848:KEYWORD(110, 100, 0, 0, FIXED_TOK);
        -:        -: 2849:	YY_BREAK
        -:        -: 2850:case 214:
        -:        -: 2851:YY_RULE_SETUP
        -:        -: 2852:#line 550 "./glsl/glsl_lexer.ll"
        -:        -: 2853:KEYWORD(110, 100, 0, 0, UNSIGNED);
        -:        -: 2854:	YY_BREAK
        -:        -: 2855:case 215:
        -:        -: 2856:YY_RULE_SETUP
        -:        -: 2857:#line 551 "./glsl/glsl_lexer.ll"
        -:        -: 2858:KEYWORD(110, 100, 0, 0, INPUT_TOK);
        -:        -: 2859:	YY_BREAK
        -:        -: 2860:case 216:
        -:        -: 2861:YY_RULE_SETUP
        -:        -: 2862:#line 552 "./glsl/glsl_lexer.ll"
        -:        -: 2863:KEYWORD(110, 100, 0, 0, OUTPUT);
        -:        -: 2864:	YY_BREAK
        -:        -: 2865:case 217:
        -:        -: 2866:YY_RULE_SETUP
        -:        -: 2867:#line 553 "./glsl/glsl_lexer.ll"
        -:        -: 2868:KEYWORD(110, 100, 0, 0, HVEC2);
        -:        -: 2869:	YY_BREAK
        -:        -: 2870:case 218:
        -:        -: 2871:YY_RULE_SETUP
        -:        -: 2872:#line 554 "./glsl/glsl_lexer.ll"
        -:        -: 2873:KEYWORD(110, 100, 0, 0, HVEC3);
        -:        -: 2874:	YY_BREAK
        -:        -: 2875:case 219:
        -:        -: 2876:YY_RULE_SETUP
        -:        -: 2877:#line 555 "./glsl/glsl_lexer.ll"
        -:        -: 2878:KEYWORD(110, 100, 0, 0, HVEC4);
        -:        -: 2879:	YY_BREAK
        -:        -: 2880:case 220:
        -:        -: 2881:YY_RULE_SETUP
        -:        -: 2882:#line 556 "./glsl/glsl_lexer.ll"
        -:        -: 2883:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC2);
        -:        -: 2884:	YY_BREAK
        -:        -: 2885:case 221:
        -:        -: 2886:YY_RULE_SETUP
        -:        -: 2887:#line 557 "./glsl/glsl_lexer.ll"
        -:        -: 2888:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC3);
        -:        -: 2889:	YY_BREAK
        -:        -: 2890:case 222:
        -:        -: 2891:YY_RULE_SETUP
        -:        -: 2892:#line 558 "./glsl/glsl_lexer.ll"
        -:        -: 2893:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC4);
        -:        -: 2894:	YY_BREAK
        -:        -: 2895:case 223:
        -:        -: 2896:YY_RULE_SETUP
        -:        -: 2897:#line 559 "./glsl/glsl_lexer.ll"
        -:        -: 2898:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X2);
        -:        -: 2899:	YY_BREAK
        -:        -: 2900:case 224:
        -:        -: 2901:YY_RULE_SETUP
        -:        -: 2902:#line 560 "./glsl/glsl_lexer.ll"
        -:        -: 2903:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X3);
        -:        -: 2904:	YY_BREAK
        -:        -: 2905:case 225:
        -:        -: 2906:YY_RULE_SETUP
        -:        -: 2907:#line 561 "./glsl/glsl_lexer.ll"
        -:        -: 2908:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X4);
        -:        -: 2909:	YY_BREAK
        -:        -: 2910:case 226:
        -:        -: 2911:YY_RULE_SETUP
        -:        -: 2912:#line 562 "./glsl/glsl_lexer.ll"
        -:        -: 2913:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X2);
        -:        -: 2914:	YY_BREAK
        -:        -: 2915:case 227:
        -:        -: 2916:YY_RULE_SETUP
        -:        -: 2917:#line 563 "./glsl/glsl_lexer.ll"
        -:        -: 2918:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X3);
        -:        -: 2919:	YY_BREAK
        -:        -: 2920:case 228:
        -:        -: 2921:YY_RULE_SETUP
        -:        -: 2922:#line 564 "./glsl/glsl_lexer.ll"
        -:        -: 2923:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X4);
        -:        -: 2924:	YY_BREAK
        -:        -: 2925:case 229:
        -:        -: 2926:YY_RULE_SETUP
        -:        -: 2927:#line 565 "./glsl/glsl_lexer.ll"
        -:        -: 2928:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X2);
        -:        -: 2929:	YY_BREAK
        -:        -: 2930:case 230:
        -:        -: 2931:YY_RULE_SETUP
        -:        -: 2932:#line 566 "./glsl/glsl_lexer.ll"
        -:        -: 2933:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X3);
        -:        -: 2934:	YY_BREAK
        -:        -: 2935:case 231:
        -:        -: 2936:YY_RULE_SETUP
        -:        -: 2937:#line 567 "./glsl/glsl_lexer.ll"
        -:        -: 2938:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X4);
        -:        -: 2939:	YY_BREAK
        -:        -: 2940:case 232:
        -:        -: 2941:YY_RULE_SETUP
        -:        -: 2942:#line 568 "./glsl/glsl_lexer.ll"
        -:        -: 2943:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X2);
        -:        -: 2944:	YY_BREAK
        -:        -: 2945:case 233:
        -:        -: 2946:YY_RULE_SETUP
        -:        -: 2947:#line 569 "./glsl/glsl_lexer.ll"
        -:        -: 2948:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X3);
        -:        -: 2949:	YY_BREAK
        -:        -: 2950:case 234:
        -:        -: 2951:YY_RULE_SETUP
        -:        -: 2952:#line 570 "./glsl/glsl_lexer.ll"
        -:        -: 2953:KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X4);
        -:        -: 2954:	YY_BREAK
        -:        -: 2955:case 235:
        -:        -: 2956:YY_RULE_SETUP
        -:        -: 2957:#line 571 "./glsl/glsl_lexer.ll"
        -:        -: 2958:KEYWORD(110, 100, 0, 0, FVEC2);
        -:        -: 2959:	YY_BREAK
        -:        -: 2960:case 236:
        -:        -: 2961:YY_RULE_SETUP
        -:        -: 2962:#line 572 "./glsl/glsl_lexer.ll"
        -:        -: 2963:KEYWORD(110, 100, 0, 0, FVEC3);
        -:        -: 2964:	YY_BREAK
        -:        -: 2965:case 237:
        -:        -: 2966:YY_RULE_SETUP
        -:        -: 2967:#line 573 "./glsl/glsl_lexer.ll"
        -:        -: 2968:KEYWORD(110, 100, 0, 0, FVEC4);
        -:        -: 2969:	YY_BREAK
        -:        -: 2970:case 238:
        -:        -: 2971:YY_RULE_SETUP
        -:        -: 2972:#line 574 "./glsl/glsl_lexer.ll"
        -:        -: 2973:DEPRECATED_ES_KEYWORD(SAMPLER2DRECT);
        -:        -: 2974:	YY_BREAK
        -:        -: 2975:case 239:
        -:        -: 2976:YY_RULE_SETUP
        -:        -: 2977:#line 575 "./glsl/glsl_lexer.ll"
        -:        -: 2978:KEYWORD(110, 100, 0, 0, SAMPLER3DRECT);
        -:        -: 2979:	YY_BREAK
        -:        -: 2980:case 240:
        -:        -: 2981:YY_RULE_SETUP
        -:        -: 2982:#line 576 "./glsl/glsl_lexer.ll"
        -:        -: 2983:DEPRECATED_ES_KEYWORD(SAMPLER2DRECTSHADOW);
        -:        -: 2984:	YY_BREAK
        -:        -: 2985:case 241:
        -:        -: 2986:YY_RULE_SETUP
        -:        -: 2987:#line 577 "./glsl/glsl_lexer.ll"
        -:        -: 2988:KEYWORD(110, 100, 0, 0, SIZEOF);
        -:        -: 2989:	YY_BREAK
        -:        -: 2990:case 242:
        -:        -: 2991:YY_RULE_SETUP
        -:        -: 2992:#line 578 "./glsl/glsl_lexer.ll"
        -:        -: 2993:KEYWORD(110, 100, 0, 0, CAST);
        -:        -: 2994:	YY_BREAK
        -:        -: 2995:case 243:
        -:        -: 2996:YY_RULE_SETUP
        -:        -: 2997:#line 579 "./glsl/glsl_lexer.ll"
        -:        -: 2998:KEYWORD(110, 100, 0, 0, NAMESPACE);
        -:        -: 2999:	YY_BREAK
        -:        -: 3000:case 244:
        -:        -: 3001:YY_RULE_SETUP
        -:        -: 3002:#line 580 "./glsl/glsl_lexer.ll"
        -:        -: 3003:KEYWORD(110, 100, 0, 0, USING);
        -:        -: 3004:	YY_BREAK
        -:        -: 3005:/* Additional reserved words in GLSL 1.20. */
        -:        -: 3006:case 245:
        -:        -: 3007:YY_RULE_SETUP
        -:        -: 3008:#line 583 "./glsl/glsl_lexer.ll"
        -:        -: 3009:KEYWORD(120, 100, 130, 100, LOWP);
        -:        -: 3010:	YY_BREAK
        -:        -: 3011:case 246:
        -:        -: 3012:YY_RULE_SETUP
        -:        -: 3013:#line 584 "./glsl/glsl_lexer.ll"
        -:        -: 3014:KEYWORD(120, 100, 130, 100, MEDIUMP);
        -:        -: 3015:	YY_BREAK
        -:        -: 3016:case 247:
        -:        -: 3017:YY_RULE_SETUP
        -:        -: 3018:#line 585 "./glsl/glsl_lexer.ll"
        -:        -: 3019:KEYWORD(120, 100, 130, 100, HIGHP);
        -:        -: 3020:	YY_BREAK
        -:        -: 3021:case 248:
        -:        -: 3022:YY_RULE_SETUP
        -:        -: 3023:#line 586 "./glsl/glsl_lexer.ll"
        -:        -: 3024:KEYWORD(120, 100, 130, 100, PRECISION);
        -:        -: 3025:	YY_BREAK
        -:        -: 3026:/* Additional reserved words in GLSL 1.30. */
        -:        -: 3027:case 249:
        -:        -: 3028:YY_RULE_SETUP
        -:        -: 3029:#line 589 "./glsl/glsl_lexer.ll"
        -:        -: 3030:KEYWORD(130, 300, 130, 300, CASE);
        -:        -: 3031:	YY_BREAK
        -:        -: 3032:case 250:
        -:        -: 3033:YY_RULE_SETUP
        -:        -: 3034:#line 590 "./glsl/glsl_lexer.ll"
        -:        -: 3035:KEYWORD(130, 300, 0, 0, COMMON);
        -:        -: 3036:	YY_BREAK
        -:        -: 3037:case 251:
        -:        -: 3038:YY_RULE_SETUP
        -:        -: 3039:#line 591 "./glsl/glsl_lexer.ll"
        -:        -: 3040:KEYWORD(130, 300, 0, 0, PARTITION);
        -:        -: 3041:	YY_BREAK
        -:        -: 3042:case 252:
        -:        -: 3043:YY_RULE_SETUP
        -:        -: 3044:#line 592 "./glsl/glsl_lexer.ll"
        -:        -: 3045:KEYWORD(130, 300, 0, 0, ACTIVE);
        -:        -: 3046:	YY_BREAK
        -:        -: 3047:case 253:
        -:        -: 3048:YY_RULE_SETUP
        -:        -: 3049:#line 593 "./glsl/glsl_lexer.ll"
        -:        -: 3050:KEYWORD(130, 100, 0, 0, SUPERP);
        -:        -: 3051:	YY_BREAK
        -:        -: 3052:case 254:
        -:        -: 3053:YY_RULE_SETUP
        -:        -: 3054:#line 594 "./glsl/glsl_lexer.ll"
        -:        -: 3055:KEYWORD_WITH_ALT(130, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, SAMPLERBUFFER);
        -:        -: 3056:	YY_BREAK
        -:        -: 3057:case 255:
        -:        -: 3058:YY_RULE_SETUP
        -:        -: 3059:#line 595 "./glsl/glsl_lexer.ll"
        -:        -: 3060:KEYWORD(130, 300, 0, 0, FILTER);
        -:        -: 3061:	YY_BREAK
        -:        -: 3062:case 256:
        -:        -: 3063:YY_RULE_SETUP
        -:        -: 3064:#line 596 "./glsl/glsl_lexer.ll"
        -:        -: 3065:KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
        -:        -: 3066:	YY_BREAK
        -:        -: 3067:/* Additional reserved words in GLSL 1.40 */
        -:        -: 3068:case 257:
        -:        -: 3069:YY_RULE_SETUP
        -:        -: 3070:#line 599 "./glsl/glsl_lexer.ll"
        -:        -: 3071:KEYWORD(140, 300, 140, 0, ISAMPLER2DRECT);
        -:        -: 3072:	YY_BREAK
        -:        -: 3073:case 258:
        -:        -: 3074:YY_RULE_SETUP
        -:        -: 3075:#line 600 "./glsl/glsl_lexer.ll"
        -:        -: 3076:KEYWORD(140, 300, 140, 0, USAMPLER2DRECT);
        -:        -: 3077:	YY_BREAK
        -:        -: 3078:case 259:
        -:        -: 3079:YY_RULE_SETUP
        -:        -: 3080:#line 601 "./glsl/glsl_lexer.ll"
        -:        -: 3081:KEYWORD_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, ISAMPLERBUFFER);
        -:        -: 3082:	YY_BREAK
        -:        -: 3083:case 260:
        -:        -: 3084:YY_RULE_SETUP
        -:        -: 3085:#line 602 "./glsl/glsl_lexer.ll"
        -:        -: 3086:KEYWORD_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, USAMPLERBUFFER);
        -:        -: 3087:	YY_BREAK
        -:        -: 3088:/* Additional reserved words in GLSL ES 3.00 */
        -:        -: 3089:case 261:
        -:        -: 3090:YY_RULE_SETUP
        -:        -: 3091:#line 605 "./glsl/glsl_lexer.ll"
        -:        -: 3092:KEYWORD(420, 300, 0, 0, RESOURCE);
        -:        -: 3093:	YY_BREAK
        -:        -: 3094:case 262:
        -:        -: 3095:YY_RULE_SETUP
        -:        -: 3096:#line 606 "./glsl/glsl_lexer.ll"
        -:        -: 3097:KEYWORD_WITH_ALT(400, 300, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->OES_shader_multisample_interpolation_enable, SAMPLE);
        -:        -: 3098:	YY_BREAK
        -:        -: 3099:case 263:
        -:        -: 3100:YY_RULE_SETUP
        -:        -: 3101:#line 607 "./glsl/glsl_lexer.ll"
        -:        -: 3102:KEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_shader_subroutine_enable, SUBROUTINE);
        -:        -: 3103:	YY_BREAK
        -:        -: 3104:/* Additional words for ARB_gpu_shader_int64 */
        -:        -: 3105:case 264:
        -:        -: 3106:YY_RULE_SETUP
        -:        -: 3107:#line 610 "./glsl/glsl_lexer.ll"
        -:        -: 3108:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, INT64_TOK);
        -:        -: 3109:	YY_BREAK
        -:        -: 3110:case 265:
        -:        -: 3111:YY_RULE_SETUP
        -:        -: 3112:#line 611 "./glsl/glsl_lexer.ll"
        -:        -: 3113:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC2);
        -:        -: 3114:	YY_BREAK
        -:        -: 3115:case 266:
        -:        -: 3116:YY_RULE_SETUP
        -:        -: 3117:#line 612 "./glsl/glsl_lexer.ll"
        -:        -: 3118:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC3);
        -:        -: 3119:	YY_BREAK
        -:        -: 3120:case 267:
        -:        -: 3121:YY_RULE_SETUP
        -:        -: 3122:#line 613 "./glsl/glsl_lexer.ll"
        -:        -: 3123:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC4);
        -:        -: 3124:	YY_BREAK
        -:        -: 3125:case 268:
        -:        -: 3126:YY_RULE_SETUP
        -:        -: 3127:#line 615 "./glsl/glsl_lexer.ll"
        -:        -: 3128:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, UINT64_TOK);
        -:        -: 3129:	YY_BREAK
        -:        -: 3130:case 269:
        -:        -: 3131:YY_RULE_SETUP
        -:        -: 3132:#line 616 "./glsl/glsl_lexer.ll"
        -:        -: 3133:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC2);
        -:        -: 3134:	YY_BREAK
        -:        -: 3135:case 270:
        -:        -: 3136:YY_RULE_SETUP
        -:        -: 3137:#line 617 "./glsl/glsl_lexer.ll"
        -:        -: 3138:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC3);
        -:        -: 3139:	YY_BREAK
        -:        -: 3140:case 271:
        -:        -: 3141:YY_RULE_SETUP
        -:        -: 3142:#line 618 "./glsl/glsl_lexer.ll"
        -:        -: 3143:KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC4);
        -:        -: 3144:	YY_BREAK
        -:        -: 3145:case 272:
        -:        -: 3146:YY_RULE_SETUP
        -:        -: 3147:#line 620 "./glsl/glsl_lexer.ll"
        -:        -: 3148:{
        -:        -: 3149:			    struct _mesa_glsl_parse_state *state = yyextra;
        -:        -: 3150:			    void *ctx = state->linalloc;
        -:        -: 3151:			    if (state->es_shader && strlen(yytext) > 1024) {
        -:        -: 3152:			       _mesa_glsl_error(yylloc, state,
        -:        -: 3153:			                        "Identifier `%s' exceeds 1024 characters",
        -:        -: 3154:			                        yytext);
        -:        -: 3155:			    } else {
        -:        -: 3156:			      yylval->identifier = linear_strdup(ctx, yytext);
        -:        -: 3157:			    }
        -:        -: 3158:			    return classify_identifier(state, yytext);
        -:        -: 3159:			}
        -:        -: 3160:	YY_BREAK
        -:        -: 3161:case 273:
        -:        -: 3162:YY_RULE_SETUP
        -:        -: 3163:#line 633 "./glsl/glsl_lexer.ll"
        -:        -: 3164:{ struct _mesa_glsl_parse_state *state = yyextra;
        -:        -: 3165:			  state->is_field = true;
        -:        -: 3166:			  return DOT_TOK; }
        -:        -: 3167:	YY_BREAK
        -:        -: 3168:case 274:
        -:        -: 3169:YY_RULE_SETUP
        -:        -: 3170:#line 637 "./glsl/glsl_lexer.ll"
        -:        -: 3171:{ return yytext[0]; }
        -:        -: 3172:	YY_BREAK
        -:        -: 3173:case 275:
        -:        -: 3174:YY_RULE_SETUP
        -:        -: 3175:#line 639 "./glsl/glsl_lexer.ll"
        -:        -: 3176:YY_FATAL_ERROR( "flex scanner jammed" );
        -:        -: 3177:	YY_BREAK
        -:        -: 3178:#line 3179 "glsl/glsl_lexer.cpp"
        -:        -: 3179:case YY_STATE_EOF(INITIAL):
        -:        -: 3180:case YY_STATE_EOF(PP):
        -:        -: 3181:case YY_STATE_EOF(PRAGMA):
        2:        2: 3182:	yyterminate();
        -:        -: 3183:
        -:        -: 3184:	case YY_END_OF_BUFFER:
        -:        -: 3185:		{
        -:        -: 3186:		/* Amount of text matched not including the EOB char. */
        4:        4: 3187:		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
        -:        -: 3188:
        -:        -: 3189:		/* Undo the effects of YY_DO_BEFORE_ACTION. */
        4:        4: 3190:		*yy_cp = yyg->yy_hold_char;
        -:        -: 3191:		YY_RESTORE_YY_MORE_OFFSET
        -:        -: 3192:
        4:        4: 3193:		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
        -:        -: 3194:			{
        -:        -: 3195:			/* We're scanning a new file or input source.  It's
        -:        -: 3196:			 * possible that this happened because the user
        -:        -: 3197:			 * just pointed yyin at a new source and called
        -:        -: 3198:			 * _mesa_glsl_lexer_lex().  If so, then we have to assure
        -:        -: 3199:			 * consistency between YY_CURRENT_BUFFER and our
        -:        -: 3200:			 * globals.  Here is the right place to do so, because
        -:        -: 3201:			 * this is the first action (other than possibly a
        -:        -: 3202:			 * back-up) that will match for the new input source.
        -:        -: 3203:			 */
        2:        2: 3204:			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        2:        2: 3205:			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
        2:        2: 3206:			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
        -:        -: 3207:			}
        -:        -: 3208:
        -:        -: 3209:		/* Note that here we test for yy_c_buf_p "<=" to the position
        -:        -: 3210:		 * of the first EOB in the buffer, since yy_c_buf_p will
        -:        -: 3211:		 * already have been incremented past the NUL character
        -:        -: 3212:		 * (since all states make transitions on EOB to the
        -:        -: 3213:		 * end-of-buffer state).  Contrast this with the test
        -:        -: 3214:		 * in input().
        -:        -: 3215:		 */
        4:        4: 3216:		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
        -:        -: 3217:			{ /* This was really a NUL. */
        -:        -: 3218:			yy_state_type yy_next_state;
        -:        -: 3219:
    #####:    #####: 3220:			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
        -:        -: 3221:
    #####:    #####: 3222:			yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 3223:
        -:        -: 3224:			/* Okay, we're now positioned to make the NUL
        -:        -: 3225:			 * transition.  We couldn't have
        -:        -: 3226:			 * yy_get_previous_state() go ahead and do it
        -:        -: 3227:			 * for us because it doesn't know how to deal
        -:        -: 3228:			 * with the possibility of jamming (and we don't
        -:        -: 3229:			 * want to build jamming into it because then it
        -:        -: 3230:			 * will run more slowly).
        -:        -: 3231:			 */
        -:        -: 3232:
    #####:    #####: 3233:			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
        -:        -: 3234:
    #####:    #####: 3235:			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
        -:        -: 3236:
    #####:    #####: 3237:			if ( yy_next_state )
        -:        -: 3238:				{
        -:        -: 3239:				/* Consume the NUL. */
    #####:    #####: 3240:				yy_cp = ++yyg->yy_c_buf_p;
    #####:    #####: 3241:				yy_current_state = yy_next_state;
    #####:    #####: 3242:				goto yy_match;
        -:        -: 3243:				}
        -:        -: 3244:
        -:        -: 3245:			else
        -:        -: 3246:				{
    #####:    #####: 3247:				yy_cp = yyg->yy_last_accepting_cpos;
    #####:    #####: 3248:				yy_current_state = yyg->yy_last_accepting_state;
    #####:    #####: 3249:				goto yy_find_action;
        -:        -: 3250:				}
        -:        -: 3251:			}
        -:        -: 3252:
        4:        4: 3253:		else switch ( yy_get_next_buffer( yyscanner ) )
        -:        -: 3254:			{
        -:        -: 3255:			case EOB_ACT_END_OF_FILE:
        -:        -: 3256:				{
        2:        2: 3257:				yyg->yy_did_buffer_switch_on_eof = 0;
        -:        -: 3258:
        -:        -: 3259:				if ( _mesa_glsl_lexer_wrap(yyscanner ) )
        -:        -: 3260:					{
        -:        -: 3261:					/* Note: because we've taken care in
        -:        -: 3262:					 * yy_get_next_buffer() to have set up
        -:        -: 3263:					 * yytext, we can now set up
        -:        -: 3264:					 * yy_c_buf_p so that if some total
        -:        -: 3265:					 * hoser (like flex itself) wants to
        -:        -: 3266:					 * call the scanner after we return the
        -:        -: 3267:					 * YY_NULL, it'll still work - another
        -:        -: 3268:					 * YY_NULL will get returned.
        -:        -: 3269:					 */
        2:        2: 3270:					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
        -:        -: 3271:
        2:        2: 3272:					yy_act = YY_STATE_EOF(YY_START);
        2:        2: 3273:					goto do_action;
        -:        -: 3274:					}
        -:        -: 3275:
        -:        -: 3276:				else
        -:        -: 3277:					{
        -:        -: 3278:					if ( ! yyg->yy_did_buffer_switch_on_eof )
        -:        -: 3279:						YY_NEW_FILE;
        -:        -: 3280:					}
        -:        -: 3281:				break;
        -:        -: 3282:				}
        -:        -: 3283:
        -:        -: 3284:			case EOB_ACT_CONTINUE_SCAN:
        -:        -: 3285:				yyg->yy_c_buf_p =
    #####:    #####: 3286:					yyg->yytext_ptr + yy_amount_of_matched_text;
        -:        -: 3287:
    #####:    #####: 3288:				yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 3289:
    #####:    #####: 3290:				yy_cp = yyg->yy_c_buf_p;
    #####:    #####: 3291:				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
    #####:    #####: 3292:				goto yy_match;
        -:        -: 3293:
        -:        -: 3294:			case EOB_ACT_LAST_MATCH:
        -:        -: 3295:				yyg->yy_c_buf_p =
        2:        2: 3296:				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
        -:        -: 3297:
        2:        2: 3298:				yy_current_state = yy_get_previous_state( yyscanner );
        -:        -: 3299:
        2:        2: 3300:				yy_cp = yyg->yy_c_buf_p;
        2:        2: 3301:				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
        2:        2: 3302:				goto yy_find_action;
        -:        -: 3303:			}
    #####:    #####: 3304:		break;
        -:        -: 3305:		}
        -:        -: 3306:
        -:        -: 3307:	default:
        -:        -: 3308:		YY_FATAL_ERROR(
    #####:    #####: 3309:			"fatal flex scanner internal error--no action found" );
        -:        -: 3310:	} /* end of action switch */
        -:        -: 3311:		} /* end of scanning one token */
        -:        -: 3312:	} /* end of user's declarations */
        -:        -: 3313:} /* end of _mesa_glsl_lexer_lex */
        -:        -: 3314:
        -:        -: 3315:/* yy_get_next_buffer - try to read in a new buffer
        -:        -: 3316: *
        -:        -: 3317: * Returns a code representing an action:
        -:        -: 3318: *	EOB_ACT_LAST_MATCH -
        -:        -: 3319: *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
        -:        -: 3320: *	EOB_ACT_END_OF_FILE - end of file
        -:        -: 3321: */
        4:        4: 3322:static int yy_get_next_buffer (yyscan_t yyscanner)
        -:        -: 3323:{
        4:        4: 3324:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        4:        4: 3325:	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
        4:        4: 3326:	char *source = yyg->yytext_ptr;
        -:        -: 3327:	yy_size_t number_to_move, i;
        -:        -: 3328:	int ret_val;
        -:        -: 3329:
        4:        4: 3330:	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
        -:        -: 3331:		YY_FATAL_ERROR(
    #####:    #####: 3332:		"fatal flex scanner internal error--end of buffer missed" );
        -:        -: 3333:
        4:        4: 3334:	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
        -:        -: 3335:		{ /* Don't try to fill the buffer, so this is an EOF. */
        4:        4: 3336:		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
        -:        -: 3337:			{
        -:        -: 3338:			/* We matched a single character, the EOB, so
        -:        -: 3339:			 * treat this as a final EOF.
        -:        -: 3340:			 */
        2:        2: 3341:			return EOB_ACT_END_OF_FILE;
        -:        -: 3342:			}
        -:        -: 3343:
        -:        -: 3344:		else
        -:        -: 3345:			{
        -:        -: 3346:			/* We matched some text prior to the EOB, first
        -:        -: 3347:			 * process it.
        -:        -: 3348:			 */
        2:        2: 3349:			return EOB_ACT_LAST_MATCH;
        -:        -: 3350:			}
        -:        -: 3351:		}
        -:        -: 3352:
        -:        -: 3353:	/* Try to read more data. */
        -:        -: 3354:
        -:        -: 3355:	/* First move last chars to start of buffer. */
    #####:    #####: 3356:	number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
        -:        -: 3357:
    #####:    #####: 3358:	for ( i = 0; i < number_to_move; ++i )
    #####:    #####: 3359:		*(dest++) = *(source++);
        -:        -: 3360:
    #####:    #####: 3361:	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
        -:        -: 3362:		/* don't do the read, it's not guaranteed to return an EOF,
        -:        -: 3363:		 * just force an EOF
        -:        -: 3364:		 */
    #####:    #####: 3365:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
        -:        -: 3366:
        -:        -: 3367:	else
        -:        -: 3368:		{
        -:        -: 3369:			yy_size_t num_to_read =
    #####:    #####: 3370:			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
        -:        -: 3371:
    #####:    #####: 3372:		while ( num_to_read <= 0 )
        -:        -: 3373:			{ /* Not enough room in the buffer - grow it. */
        -:        -: 3374:
        -:        -: 3375:			/* just a shorter name for the current buffer */
    #####:    #####: 3376:			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
        -:        -: 3377:
        -:        -: 3378:			int yy_c_buf_p_offset =
    #####:    #####: 3379:				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
        -:        -: 3380:
    #####:    #####: 3381:			if ( b->yy_is_our_buffer )
        -:        -: 3382:				{
    #####:    #####: 3383:				yy_size_t new_size = b->yy_buf_size * 2;
        -:        -: 3384:
    #####:    #####: 3385:				if ( new_size <= 0 )
    #####:    #####: 3386:					b->yy_buf_size += b->yy_buf_size / 8;
        -:        -: 3387:				else
    #####:    #####: 3388:					b->yy_buf_size *= 2;
        -:        -: 3389:
        -:        -: 3390:				b->yy_ch_buf = (char *)
        -:        -: 3391:					/* Include room in for 2 EOB chars. */
    #####:    #####: 3392:					_mesa_glsl_lexer_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
        -:        -: 3393:				}
        -:        -: 3394:			else
        -:        -: 3395:				/* Can't grow it, we don't own it. */
    #####:    #####: 3396:				b->yy_ch_buf = 0;
        -:        -: 3397:
    #####:    #####: 3398:			if ( ! b->yy_ch_buf )
        -:        -: 3399:				YY_FATAL_ERROR(
    #####:    #####: 3400:				"fatal error - scanner input buffer overflow" );
        -:        -: 3401:
    #####:    #####: 3402:			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
        -:        -: 3403:
    #####:    #####: 3404:			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
    #####:    #####: 3405:						number_to_move - 1;
        -:        -: 3406:
        -:        -: 3407:			}
        -:        -: 3408:
    #####:    #####: 3409:		if ( num_to_read > YY_READ_BUF_SIZE )
    #####:    #####: 3410:			num_to_read = YY_READ_BUF_SIZE;
        -:        -: 3411:
        -:        -: 3412:		/* Read in more data. */
    #####:    #####: 3413:		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
        -:        -: 3414:			yyg->yy_n_chars, num_to_read );
        -:        -: 3415:
    #####:    #####: 3416:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 3417:		}
        -:        -: 3418:
    #####:    #####: 3419:	if ( yyg->yy_n_chars == 0 )
        -:        -: 3420:		{
    #####:    #####: 3421:		if ( number_to_move == YY_MORE_ADJ )
        -:        -: 3422:			{
    #####:    #####: 3423:			ret_val = EOB_ACT_END_OF_FILE;
    #####:    #####: 3424:			_mesa_glsl_lexer_restart(yyin  ,yyscanner);
        -:        -: 3425:			}
        -:        -: 3426:
        -:        -: 3427:		else
        -:        -: 3428:			{
    #####:    #####: 3429:			ret_val = EOB_ACT_LAST_MATCH;
    #####:    #####: 3430:			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
    #####:    #####: 3431:				YY_BUFFER_EOF_PENDING;
        -:        -: 3432:			}
        -:        -: 3433:		}
        -:        -: 3434:
        -:        -: 3435:	else
    #####:    #####: 3436:		ret_val = EOB_ACT_CONTINUE_SCAN;
        -:        -: 3437:
    #####:    #####: 3438:	if ((int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
        -:        -: 3439:		/* Extend the array by 50%, plus the number we really need. */
    #####:    #####: 3440:		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
    #####:    #####: 3441:		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) _mesa_glsl_lexer_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
    #####:    #####: 3442:		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
    #####:    #####: 3443:			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
        -:        -: 3444:	}
        -:        -: 3445:
    #####:    #####: 3446:	yyg->yy_n_chars += number_to_move;
    #####:    #####: 3447:	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
    #####:    #####: 3448:	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 3449:
    #####:    #####: 3450:	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
        -:        -: 3451:
    #####:    #####: 3452:	return ret_val;
        -:        -: 3453:}
        -:        -: 3454:
        -:        -: 3455:/* yy_get_previous_state - get the state just before the EOB char was reached */
        -:        -: 3456:
        2:        2: 3457:    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
        -:        -: 3458:{
        -:        -: 3459:	yy_state_type yy_current_state;
        -:        -: 3460:	char *yy_cp;
        2:        2: 3461:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3462:
        2:        2: 3463:	yy_current_state = yyg->yy_start;
        2:        2: 3464:	yy_current_state += YY_AT_BOL();
        -:        -: 3465:
        4:        4: 3466:	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
        -:        -: 3467:		{
        2:        2: 3468:		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
        2:        2: 3469:		if ( yy_accept[yy_current_state] )
        -:        -: 3470:			{
    #####:    #####: 3471:			yyg->yy_last_accepting_state = yy_current_state;
    #####:    #####: 3472:			yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 3473:			}
        2:        2: 3474:		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 3475:			{
    #####:    #####: 3476:			yy_current_state = (int) yy_def[yy_current_state];
    #####:    #####: 3477:			if ( yy_current_state >= 1078 )
    #####:    #####: 3478:				yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 3479:			}
        2:        2: 3480:		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
        -:        -: 3481:		}
        -:        -: 3482:
        2:        2: 3483:	return yy_current_state;
        -:        -: 3484:}
        -:        -: 3485:
        -:        -: 3486:/* yy_try_NUL_trans - try to make a transition on the NUL character
        -:        -: 3487: *
        -:        -: 3488: * synopsis
        -:        -: 3489: *	next_state = yy_try_NUL_trans( current_state );
        -:        -: 3490: */
    #####:    #####: 3491:    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
        -:        -: 3492:{
        -:        -: 3493:	int yy_is_jam;
    #####:    #####: 3494:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
    #####:    #####: 3495:	char *yy_cp = yyg->yy_c_buf_p;
        -:        -: 3496:
    #####:    #####: 3497:	YY_CHAR yy_c = 1;
    #####:    #####: 3498:	if ( yy_accept[yy_current_state] )
        -:        -: 3499:		{
    #####:    #####: 3500:		yyg->yy_last_accepting_state = yy_current_state;
    #####:    #####: 3501:		yyg->yy_last_accepting_cpos = yy_cp;
        -:        -: 3502:		}
    #####:    #####: 3503:	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
        -:        -: 3504:		{
    #####:    #####: 3505:		yy_current_state = (int) yy_def[yy_current_state];
    #####:    #####: 3506:		if ( yy_current_state >= 1078 )
    #####:    #####: 3507:			yy_c = yy_meta[(unsigned int) yy_c];
        -:        -: 3508:		}
    #####:    #####: 3509:	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    #####:    #####: 3510:	yy_is_jam = (yy_current_state == 1077);
        -:        -: 3511:
        -:        -: 3512:	(void)yyg;
    #####:    #####: 3513:	return yy_is_jam ? 0 : yy_current_state;
        -:        -: 3514:}
        -:        -: 3515:
        -:        -: 3516:#ifndef YY_NO_UNPUT
        -:        -: 3517:
        -:        -: 3518:#endif
        -:        -: 3519:
        -:        -: 3520:#ifndef YY_NO_INPUT
        -:        -: 3521:#ifdef __cplusplus
    #####:    #####: 3522:    static int yyinput (yyscan_t yyscanner)
        -:        -: 3523:#else
        -:        -: 3524:    static int input  (yyscan_t yyscanner)
        -:        -: 3525:#endif
        -:        -: 3526:
        -:        -: 3527:{
        -:        -: 3528:	int c;
    #####:    #####: 3529:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3530:
    #####:    #####: 3531:	*yyg->yy_c_buf_p = yyg->yy_hold_char;
        -:        -: 3532:
    #####:    #####: 3533:	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
        -:        -: 3534:		{
        -:        -: 3535:		/* yy_c_buf_p now points to the character we want to return.
        -:        -: 3536:		 * If this occurs *before* the EOB characters, then it's a
        -:        -: 3537:		 * valid NUL; if not, then we've hit the end of the buffer.
        -:        -: 3538:		 */
    #####:    #####: 3539:		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
        -:        -: 3540:			/* This was really a NUL. */
    #####:    #####: 3541:			*yyg->yy_c_buf_p = '\0';
        -:        -: 3542:
        -:        -: 3543:		else
        -:        -: 3544:			{ /* need more input */
    #####:    #####: 3545:			yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
    #####:    #####: 3546:			++yyg->yy_c_buf_p;
        -:        -: 3547:
    #####:    #####: 3548:			switch ( yy_get_next_buffer( yyscanner ) )
        -:        -: 3549:				{
        -:        -: 3550:				case EOB_ACT_LAST_MATCH:
        -:        -: 3551:					/* This happens because yy_g_n_b()
        -:        -: 3552:					 * sees that we've accumulated a
        -:        -: 3553:					 * token and flags that we need to
        -:        -: 3554:					 * try matching the token before
        -:        -: 3555:					 * proceeding.  But for input(),
        -:        -: 3556:					 * there's no matching to consider.
        -:        -: 3557:					 * So convert the EOB_ACT_LAST_MATCH
        -:        -: 3558:					 * to EOB_ACT_END_OF_FILE.
        -:        -: 3559:					 */
        -:        -: 3560:
        -:        -: 3561:					/* Reset buffer status. */
    #####:    #####: 3562:					_mesa_glsl_lexer_restart(yyin ,yyscanner);
        -:        -: 3563:
        -:        -: 3564:					/*FALLTHROUGH*/
        -:        -: 3565:
        -:        -: 3566:				case EOB_ACT_END_OF_FILE:
        -:        -: 3567:					{
        -:        -: 3568:					if ( _mesa_glsl_lexer_wrap(yyscanner ) )
    #####:    #####: 3569:						return EOF;
        -:        -: 3570:
        -:        -: 3571:					if ( ! yyg->yy_did_buffer_switch_on_eof )
        -:        -: 3572:						YY_NEW_FILE;
        -:        -: 3573:#ifdef __cplusplus
        -:        -: 3574:					return yyinput(yyscanner);
        -:        -: 3575:#else
        -:        -: 3576:					return input(yyscanner);
        -:        -: 3577:#endif
        -:        -: 3578:					}
        -:        -: 3579:
        -:        -: 3580:				case EOB_ACT_CONTINUE_SCAN:
    #####:    #####: 3581:					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
    #####:    #####: 3582:					break;
        -:        -: 3583:				}
        -:        -: 3584:			}
        -:        -: 3585:		}
        -:        -: 3586:
    #####:    #####: 3587:	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
    #####:    #####: 3588:	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
    #####:    #####: 3589:	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
        -:        -: 3590:
    #####:    #####: 3591:	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
        -:        -: 3592:
    #####:    #####: 3593:	return c;
        -:        -: 3594:}
        -:        -: 3595:#endif	/* ifndef YY_NO_INPUT */
        -:        -: 3596:
        -:        -: 3597:/** Immediately switch to a different input stream.
        -:        -: 3598: * @param input_file A readable stream.
        -:        -: 3599: * @param yyscanner The scanner object.
        -:        -: 3600: * @note This function does not reset the start condition to @c INITIAL .
        -:        -: 3601: */
    #####:    #####: 3602:    void _mesa_glsl_lexer_restart  (FILE * input_file , yyscan_t yyscanner)
        -:        -: 3603:{
    #####:    #####: 3604:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3605:
    #####:    #####: 3606:	if ( ! YY_CURRENT_BUFFER ){
    #####:    #####: 3607:        _mesa_glsl_lexer_ensure_buffer_stack (yyscanner);
    #####:    #####: 3608:		YY_CURRENT_BUFFER_LVALUE =
    #####:    #####: 3609:            _mesa_glsl_lexer__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
        -:        -: 3610:	}
        -:        -: 3611:
    #####:    #####: 3612:	_mesa_glsl_lexer__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
    #####:    #####: 3613:	_mesa_glsl_lexer__load_buffer_state(yyscanner );
    #####:    #####: 3614:}
        -:        -: 3615:
        -:        -: 3616:/** Switch to a different input buffer.
        -:        -: 3617: * @param new_buffer The new input buffer.
        -:        -: 3618: * @param yyscanner The scanner object.
        -:        -: 3619: */
        2:        2: 3620:    void _mesa_glsl_lexer__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
        -:        -: 3621:{
        2:        2: 3622:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3623:
        -:        -: 3624:	/* TODO. We should be able to replace this entire function body
        -:        -: 3625:	 * with
        -:        -: 3626:	 *		_mesa_glsl_lexer_pop_buffer_state();
        -:        -: 3627:	 *		_mesa_glsl_lexer_push_buffer_state(new_buffer);
        -:        -: 3628:     */
        2:        2: 3629:	_mesa_glsl_lexer_ensure_buffer_stack (yyscanner);
        2:        2: 3630:	if ( YY_CURRENT_BUFFER == new_buffer )
    #####:    #####: 3631:		return;
        -:        -: 3632:
        2:        2: 3633:	if ( YY_CURRENT_BUFFER )
        -:        -: 3634:		{
        -:        -: 3635:		/* Flush out information for old buffer. */
    #####:    #####: 3636:		*yyg->yy_c_buf_p = yyg->yy_hold_char;
    #####:    #####: 3637:		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
    #####:    #####: 3638:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 3639:		}
        -:        -: 3640:
        2:        2: 3641:	YY_CURRENT_BUFFER_LVALUE = new_buffer;
        2:        2: 3642:	_mesa_glsl_lexer__load_buffer_state(yyscanner );
        -:        -: 3643:
        -:        -: 3644:	/* We don't actually know whether we did this switch during
        -:        -: 3645:	 * EOF (_mesa_glsl_lexer_wrap()) processing, but the only time this flag
        -:        -: 3646:	 * is looked at is after _mesa_glsl_lexer_wrap() is called, so it's safe
        -:        -: 3647:	 * to go ahead and always set it.
        -:        -: 3648:	 */
        2:        2: 3649:	yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 3650:}
        -:        -: 3651:
        4:        4: 3652:static void _mesa_glsl_lexer__load_buffer_state  (yyscan_t yyscanner)
        -:        -: 3653:{
        4:        4: 3654:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        4:        4: 3655:	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
        4:        4: 3656:	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
        4:        4: 3657:	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
        4:        4: 3658:	yyg->yy_hold_char = *yyg->yy_c_buf_p;
        4:        4: 3659:}
        -:        -: 3660:
        -:        -: 3661:/** Allocate and initialize an input buffer state.
        -:        -: 3662: * @param file A readable stream.
        -:        -: 3663: * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
        -:        -: 3664: * @param yyscanner The scanner object.
        -:        -: 3665: * @return the allocated buffer state.
        -:        -: 3666: */
    #####:    #####: 3667:    YY_BUFFER_STATE _mesa_glsl_lexer__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
        -:        -: 3668:{
        -:        -: 3669:	YY_BUFFER_STATE b;
        -:        -: 3670:    
    #####:    #####: 3671:	b = (YY_BUFFER_STATE) _mesa_glsl_lexer_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
    #####:    #####: 3672:	if ( ! b )
    #####:    #####: 3673:		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer__create_buffer()" );
        -:        -: 3674:
    #####:    #####: 3675:	b->yy_buf_size = (yy_size_t)size;
        -:        -: 3676:
        -:        -: 3677:	/* yy_ch_buf has to be 2 characters longer than the size given because
        -:        -: 3678:	 * we need to put in 2 end-of-buffer characters.
        -:        -: 3679:	 */
    #####:    #####: 3680:	b->yy_ch_buf = (char *) _mesa_glsl_lexer_alloc(b->yy_buf_size + 2 ,yyscanner );
    #####:    #####: 3681:	if ( ! b->yy_ch_buf )
    #####:    #####: 3682:		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer__create_buffer()" );
        -:        -: 3683:
    #####:    #####: 3684:	b->yy_is_our_buffer = 1;
        -:        -: 3685:
    #####:    #####: 3686:	_mesa_glsl_lexer__init_buffer(b,file ,yyscanner);
        -:        -: 3687:
    #####:    #####: 3688:	return b;
        -:        -: 3689:}
        -:        -: 3690:
        -:        -: 3691:/** Destroy the buffer.
        -:        -: 3692: * @param b a buffer created with _mesa_glsl_lexer__create_buffer()
        -:        -: 3693: * @param yyscanner The scanner object.
        -:        -: 3694: */
        2:        2: 3695:    void _mesa_glsl_lexer__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
        -:        -: 3696:{
        2:        2: 3697:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3698:
        2:        2: 3699:	if ( ! b )
    #####:    #####: 3700:		return;
        -:        -: 3701:
        2:        2: 3702:	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
        2:        2: 3703:		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
        -:        -: 3704:
        2:        2: 3705:	if ( b->yy_is_our_buffer )
        2:        2: 3706:		_mesa_glsl_lexer_free((void *) b->yy_ch_buf ,yyscanner );
        -:        -: 3707:
        2:        2: 3708:	_mesa_glsl_lexer_free((void *) b ,yyscanner );
        -:        -: 3709:}
        -:        -: 3710:
        -:        -: 3711:/* Initializes or reinitializes a buffer.
        -:        -: 3712: * This function is sometimes called more than once on the same buffer,
        -:        -: 3713: * such as during a _mesa_glsl_lexer_restart() or at EOF.
        -:        -: 3714: */
    #####:    #####: 3715:    static void _mesa_glsl_lexer__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
        -:        -: 3716:
        -:        -: 3717:{
    #####:    #####: 3718:	int oerrno = errno;
    #####:    #####: 3719:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3720:
    #####:    #####: 3721:	_mesa_glsl_lexer__flush_buffer(b ,yyscanner);
        -:        -: 3722:
    #####:    #####: 3723:	b->yy_input_file = file;
    #####:    #####: 3724:	b->yy_fill_buffer = 1;
        -:        -: 3725:
        -:        -: 3726:    /* If b is the current buffer, then _mesa_glsl_lexer__init_buffer was _probably_
        -:        -: 3727:     * called from _mesa_glsl_lexer_restart() or through yy_get_next_buffer.
        -:        -: 3728:     * In that case, we don't want to reset the lineno or column.
        -:        -: 3729:     */
    #####:    #####: 3730:    if (b != YY_CURRENT_BUFFER){
    #####:    #####: 3731:        b->yy_bs_lineno = 1;
    #####:    #####: 3732:        b->yy_bs_column = 0;
        -:        -: 3733:    }
        -:        -: 3734:
    #####:    #####: 3735:        b->yy_is_interactive = 0;
        -:        -: 3736:    
    #####:    #####: 3737:	errno = oerrno;
    #####:    #####: 3738:}
        -:        -: 3739:
        -:        -: 3740:/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
        -:        -: 3741: * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
        -:        -: 3742: * @param yyscanner The scanner object.
        -:        -: 3743: */
    #####:    #####: 3744:    void _mesa_glsl_lexer__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
        -:        -: 3745:{
    #####:    #####: 3746:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 3747:	if ( ! b )
    #####:    #####: 3748:		return;
        -:        -: 3749:
    #####:    #####: 3750:	b->yy_n_chars = 0;
        -:        -: 3751:
        -:        -: 3752:	/* We always need two end-of-buffer characters.  The first causes
        -:        -: 3753:	 * a transition to the end-of-buffer state.  The second causes
        -:        -: 3754:	 * a jam in that state.
        -:        -: 3755:	 */
    #####:    #####: 3756:	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
    #####:    #####: 3757:	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 3758:
    #####:    #####: 3759:	b->yy_buf_pos = &b->yy_ch_buf[0];
        -:        -: 3760:
    #####:    #####: 3761:	b->yy_at_bol = 1;
    #####:    #####: 3762:	b->yy_buffer_status = YY_BUFFER_NEW;
        -:        -: 3763:
    #####:    #####: 3764:	if ( b == YY_CURRENT_BUFFER )
    #####:    #####: 3765:		_mesa_glsl_lexer__load_buffer_state(yyscanner );
        -:        -: 3766:}
        -:        -: 3767:
        -:        -: 3768:/** Pushes the new state onto the stack. The new state becomes
        -:        -: 3769: *  the current state. This function will allocate the stack
        -:        -: 3770: *  if necessary.
        -:        -: 3771: *  @param new_buffer The new state.
        -:        -: 3772: *  @param yyscanner The scanner object.
        -:        -: 3773: */
    #####:    #####: 3774:void _mesa_glsl_lexer_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
        -:        -: 3775:{
    #####:    #####: 3776:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 3777:	if (new_buffer == NULL)
    #####:    #####: 3778:		return;
        -:        -: 3779:
    #####:    #####: 3780:	_mesa_glsl_lexer_ensure_buffer_stack(yyscanner);
        -:        -: 3781:
        -:        -: 3782:	/* This block is copied from _mesa_glsl_lexer__switch_to_buffer. */
    #####:    #####: 3783:	if ( YY_CURRENT_BUFFER )
        -:        -: 3784:		{
        -:        -: 3785:		/* Flush out information for old buffer. */
    #####:    #####: 3786:		*yyg->yy_c_buf_p = yyg->yy_hold_char;
    #####:    #####: 3787:		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
    #####:    #####: 3788:		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
        -:        -: 3789:		}
        -:        -: 3790:
        -:        -: 3791:	/* Only push if top exists. Otherwise, replace top. */
    #####:    #####: 3792:	if (YY_CURRENT_BUFFER)
    #####:    #####: 3793:		yyg->yy_buffer_stack_top++;
    #####:    #####: 3794:	YY_CURRENT_BUFFER_LVALUE = new_buffer;
        -:        -: 3795:
        -:        -: 3796:	/* copied from _mesa_glsl_lexer__switch_to_buffer. */
    #####:    #####: 3797:	_mesa_glsl_lexer__load_buffer_state(yyscanner );
    #####:    #####: 3798:	yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 3799:}
        -:        -: 3800:
        -:        -: 3801:/** Removes and deletes the top of the stack, if present.
        -:        -: 3802: *  The next element becomes the new top.
        -:        -: 3803: *  @param yyscanner The scanner object.
        -:        -: 3804: */
        2:        2: 3805:void _mesa_glsl_lexer_pop_buffer_state (yyscan_t yyscanner)
        -:        -: 3806:{
        2:        2: 3807:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        2:        2: 3808:	if (!YY_CURRENT_BUFFER)
        2:        2: 3809:		return;
        -:        -: 3810:
    #####:    #####: 3811:	_mesa_glsl_lexer__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
    #####:    #####: 3812:	YY_CURRENT_BUFFER_LVALUE = NULL;
    #####:    #####: 3813:	if (yyg->yy_buffer_stack_top > 0)
    #####:    #####: 3814:		--yyg->yy_buffer_stack_top;
        -:        -: 3815:
    #####:    #####: 3816:	if (YY_CURRENT_BUFFER) {
    #####:    #####: 3817:		_mesa_glsl_lexer__load_buffer_state(yyscanner );
    #####:    #####: 3818:		yyg->yy_did_buffer_switch_on_eof = 1;
        -:        -: 3819:	}
        -:        -: 3820:}
        -:        -: 3821:
        -:        -: 3822:/* Allocates the stack if it does not exist.
        -:        -: 3823: *  Guarantees space for at least one push.
        -:        -: 3824: */
        2:        2: 3825:static void _mesa_glsl_lexer_ensure_buffer_stack (yyscan_t yyscanner)
        -:        -: 3826:{
        -:        -: 3827:	yy_size_t num_to_alloc;
        2:        2: 3828:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3829:
        2:        2: 3830:	if (!yyg->yy_buffer_stack) {
        -:        -: 3831:
        -:        -: 3832:		/* First allocation is just for 2 elements, since we don't know if this
        -:        -: 3833:		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
        -:        -: 3834:		 * immediate realloc on the next call.
        -:        -: 3835:         */
        2:        2: 3836:		num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
        -:        -: 3837:		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_lexer_alloc
        2:        2: 3838:								(num_to_alloc * sizeof(struct yy_buffer_state*)
        2:        2: 3839:								, yyscanner);
        2:        2: 3840:		if ( ! yyg->yy_buffer_stack )
    #####:    #####: 3841:			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer_ensure_buffer_stack()" );
        -:        -: 3842:								  
        2:        2: 3843:		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
        -:        -: 3844:				
        2:        2: 3845:		yyg->yy_buffer_stack_max = num_to_alloc;
        2:        2: 3846:		yyg->yy_buffer_stack_top = 0;
        2:        2: 3847:		return;
        -:        -: 3848:	}
        -:        -: 3849:
    #####:    #####: 3850:	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
        -:        -: 3851:
        -:        -: 3852:		/* Increase the buffer to prepare for a possible push. */
    #####:    #####: 3853:		yy_size_t grow_size = 8 /* arbitrary grow size */;
        -:        -: 3854:
    #####:    #####: 3855:		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
        -:        -: 3856:		yyg->yy_buffer_stack = (struct yy_buffer_state**)_mesa_glsl_lexer_realloc
    #####:    #####: 3857:								(yyg->yy_buffer_stack,
        -:        -: 3858:								num_to_alloc * sizeof(struct yy_buffer_state*)
    #####:    #####: 3859:								, yyscanner);
    #####:    #####: 3860:		if ( ! yyg->yy_buffer_stack )
    #####:    #####: 3861:			YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer_ensure_buffer_stack()" );
        -:        -: 3862:
        -:        -: 3863:		/* zero only the new slots.*/
    #####:    #####: 3864:		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
    #####:    #####: 3865:		yyg->yy_buffer_stack_max = num_to_alloc;
        -:        -: 3866:	}
        -:        -: 3867:}
        -:        -: 3868:
        -:        -: 3869:/** Setup the input buffer state to scan directly from a user-specified character buffer.
        -:        -: 3870: * @param base the character buffer
        -:        -: 3871: * @param size the size in bytes of the character buffer
        -:        -: 3872: * @param yyscanner The scanner object.
        -:        -: 3873: * @return the newly allocated buffer state object. 
        -:        -: 3874: */
        2:        2: 3875:YY_BUFFER_STATE _mesa_glsl_lexer__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
        -:        -: 3876:{
        -:        -: 3877:	YY_BUFFER_STATE b;
        -:        -: 3878:    
        4:        4: 3879:	if ( size < 2 ||
        4:        4: 3880:	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
        2:        2: 3881:	     base[size-1] != YY_END_OF_BUFFER_CHAR )
        -:        -: 3882:		/* They forgot to leave room for the EOB's. */
    #####:    #####: 3883:		return 0;
        -:        -: 3884:
        2:        2: 3885:	b = (YY_BUFFER_STATE) _mesa_glsl_lexer_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
        2:        2: 3886:	if ( ! b )
    #####:    #####: 3887:		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer__scan_buffer()" );
        -:        -: 3888:
        2:        2: 3889:	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
        2:        2: 3890:	b->yy_buf_pos = b->yy_ch_buf = base;
        2:        2: 3891:	b->yy_is_our_buffer = 0;
        2:        2: 3892:	b->yy_input_file = 0;
        2:        2: 3893:	b->yy_n_chars = b->yy_buf_size;
        2:        2: 3894:	b->yy_is_interactive = 0;
        2:        2: 3895:	b->yy_at_bol = 1;
        2:        2: 3896:	b->yy_fill_buffer = 0;
        2:        2: 3897:	b->yy_buffer_status = YY_BUFFER_NEW;
        -:        -: 3898:
        2:        2: 3899:	_mesa_glsl_lexer__switch_to_buffer(b ,yyscanner );
        -:        -: 3900:
        2:        2: 3901:	return b;
        -:        -: 3902:}
        -:        -: 3903:
        -:        -: 3904:/** Setup the input buffer state to scan a string. The next call to _mesa_glsl_lexer_lex() will
        -:        -: 3905: * scan from a @e copy of @a str.
        -:        -: 3906: * @param yystr a NUL-terminated string to scan
        -:        -: 3907: * @param yyscanner The scanner object.
        -:        -: 3908: * @return the newly allocated buffer state object.
        -:        -: 3909: * @note If you want to scan bytes that may contain NUL values, then use
        -:        -: 3910: *       _mesa_glsl_lexer__scan_bytes() instead.
        -:        -: 3911: */
        2:        2: 3912:YY_BUFFER_STATE _mesa_glsl_lexer__scan_string (yyconst char * yystr , yyscan_t yyscanner)
        -:        -: 3913:{
        -:        -: 3914:    
        2:        2: 3915:	return _mesa_glsl_lexer__scan_bytes(yystr,strlen(yystr) ,yyscanner);
        -:        -: 3916:}
        -:        -: 3917:
        -:        -: 3918:/** Setup the input buffer state to scan the given bytes. The next call to _mesa_glsl_lexer_lex() will
        -:        -: 3919: * scan from a @e copy of @a bytes.
        -:        -: 3920: * @param yybytes the byte buffer to scan
        -:        -: 3921: * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
        -:        -: 3922: * @param yyscanner The scanner object.
        -:        -: 3923: * @return the newly allocated buffer state object.
        -:        -: 3924: */
        2:        2: 3925:YY_BUFFER_STATE _mesa_glsl_lexer__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len , yyscan_t yyscanner)
        -:        -: 3926:{
        -:        -: 3927:	YY_BUFFER_STATE b;
        -:        -: 3928:	char *buf;
        -:        -: 3929:	yy_size_t n;
        -:        -: 3930:	yy_size_t i;
        -:        -: 3931:    
        -:        -: 3932:	/* Get memory for full buffer, including space for trailing EOB's. */
        2:        2: 3933:	n = _yybytes_len + 2;
        2:        2: 3934:	buf = (char *) _mesa_glsl_lexer_alloc(n ,yyscanner );
        2:        2: 3935:	if ( ! buf )
    #####:    #####: 3936:		YY_FATAL_ERROR( "out of dynamic memory in _mesa_glsl_lexer__scan_bytes()" );
        -:        -: 3937:
      915:      953: 3938:	for ( i = 0; i < _yybytes_len; ++i )
      913:      951: 3939:		buf[i] = yybytes[i];
        -:        -: 3940:
        2:        2: 3941:	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
        -:        -: 3942:
        2:        2: 3943:	b = _mesa_glsl_lexer__scan_buffer(buf,n ,yyscanner);
        2:        2: 3944:	if ( ! b )
    #####:    #####: 3945:		YY_FATAL_ERROR( "bad buffer in _mesa_glsl_lexer__scan_bytes()" );
        -:        -: 3946:
        -:        -: 3947:	/* It's okay to grow etc. this buffer, and we should throw it
        -:        -: 3948:	 * away when we're done.
        -:        -: 3949:	 */
        2:        2: 3950:	b->yy_is_our_buffer = 1;
        -:        -: 3951:
        2:        2: 3952:	return b;
        -:        -: 3953:}
        -:        -: 3954:
        -:        -: 3955:#ifndef YY_EXIT_FAILURE
        -:        -: 3956:#define YY_EXIT_FAILURE 2
        -:        -: 3957:#endif
        -:        -: 3958:
    #####:    #####: 3959:static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
        -:        -: 3960:{
    #####:    #####: 3961:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 3962:	(void)yyg;
    #####:    #####: 3963:	(void) fprintf( stderr, "%s\n", msg );
    #####:    #####: 3964:	exit( YY_EXIT_FAILURE );
        -:        -: 3965:}
        -:        -: 3966:
        -:        -: 3967:/* Redefine yyless() so it works in section 3 code. */
        -:        -: 3968:
        -:        -: 3969:#undef yyless
        -:        -: 3970:#define yyless(n) \
        -:        -: 3971:	do \
        -:        -: 3972:		{ \
        -:        -: 3973:		/* Undo effects of setting up yytext. */ \
        -:        -: 3974:        int yyless_macro_arg = (n); \
        -:        -: 3975:        YY_LESS_LINENO(yyless_macro_arg);\
        -:        -: 3976:		yytext[yyleng] = yyg->yy_hold_char; \
        -:        -: 3977:		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
        -:        -: 3978:		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
        -:        -: 3979:		*yyg->yy_c_buf_p = '\0'; \
        -:        -: 3980:		yyleng = yyless_macro_arg; \
        -:        -: 3981:		} \
        -:        -: 3982:	while ( 0 )
        -:        -: 3983:
        -:        -: 3984:/* Accessor  methods (get/set functions) to struct members. */
        -:        -: 3985:
        -:        -: 3986:/** Get the user-defined data for this scanner.
        -:        -: 3987: * @param yyscanner The scanner object.
        -:        -: 3988: */
    #####:    #####: 3989:YY_EXTRA_TYPE _mesa_glsl_lexer_get_extra  (yyscan_t yyscanner)
        -:        -: 3990:{
    #####:    #####: 3991:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 3992:    return yyextra;
        -:        -: 3993:}
        -:        -: 3994:
        -:        -: 3995:/** Get the current line number.
        -:        -: 3996: * @param yyscanner The scanner object.
        -:        -: 3997: */
    #####:    #####: 3998:int _mesa_glsl_lexer_get_lineno  (yyscan_t yyscanner)
        -:        -: 3999:{
    #####:    #####: 4000:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4001:    
    #####:    #####: 4002:        if (! YY_CURRENT_BUFFER)
    #####:    #####: 4003:            return 0;
        -:        -: 4004:    
    #####:    #####: 4005:    return yylineno;
        -:        -: 4006:}
        -:        -: 4007:
        -:        -: 4008:/** Get the current column number.
        -:        -: 4009: * @param yyscanner The scanner object.
        -:        -: 4010: */
    #####:    #####: 4011:int _mesa_glsl_lexer_get_column  (yyscan_t yyscanner)
        -:        -: 4012:{
    #####:    #####: 4013:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4014:    
    #####:    #####: 4015:        if (! YY_CURRENT_BUFFER)
    #####:    #####: 4016:            return 0;
        -:        -: 4017:    
    #####:    #####: 4018:    return yycolumn;
        -:        -: 4019:}
        -:        -: 4020:
        -:        -: 4021:/** Get the input stream.
        -:        -: 4022: * @param yyscanner The scanner object.
        -:        -: 4023: */
    #####:    #####: 4024:FILE *_mesa_glsl_lexer_get_in  (yyscan_t yyscanner)
        -:        -: 4025:{
    #####:    #####: 4026:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4027:    return yyin;
        -:        -: 4028:}
        -:        -: 4029:
        -:        -: 4030:/** Get the output stream.
        -:        -: 4031: * @param yyscanner The scanner object.
        -:        -: 4032: */
    #####:    #####: 4033:FILE *_mesa_glsl_lexer_get_out  (yyscan_t yyscanner)
        -:        -: 4034:{
    #####:    #####: 4035:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4036:    return yyout;
        -:        -: 4037:}
        -:        -: 4038:
        -:        -: 4039:/** Get the length of the current token.
        -:        -: 4040: * @param yyscanner The scanner object.
        -:        -: 4041: */
    #####:    #####: 4042:yy_size_t _mesa_glsl_lexer_get_leng  (yyscan_t yyscanner)
        -:        -: 4043:{
    #####:    #####: 4044:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4045:    return yyleng;
        -:        -: 4046:}
        -:        -: 4047:
        -:        -: 4048:/** Get the current token.
        -:        -: 4049: * @param yyscanner The scanner object.
        -:        -: 4050: */
        -:        -: 4051:
    #####:    #####: 4052:char *_mesa_glsl_lexer_get_text  (yyscan_t yyscanner)
        -:        -: 4053:{
    #####:    #####: 4054:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4055:    return yytext;
        -:        -: 4056:}
        -:        -: 4057:
        -:        -: 4058:/** Set the user-defined data. This data is never touched by the scanner.
        -:        -: 4059: * @param user_defined The data to be associated with this scanner.
        -:        -: 4060: * @param yyscanner The scanner object.
        -:        -: 4061: */
        4:        4: 4062:void _mesa_glsl_lexer_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
        -:        -: 4063:{
        4:        4: 4064:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        4:        4: 4065:    yyextra = user_defined ;
        4:        4: 4066:}
        -:        -: 4067:
        -:        -: 4068:/** Set the current line number.
        -:        -: 4069: * @param _line_number line number
        -:        -: 4070: * @param yyscanner The scanner object.
        -:        -: 4071: */
    #####:    #####: 4072:void _mesa_glsl_lexer_set_lineno (int  _line_number , yyscan_t yyscanner)
        -:        -: 4073:{
    #####:    #####: 4074:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4075:
        -:        -: 4076:        /* lineno is only valid if an input buffer exists. */
    #####:    #####: 4077:        if (! YY_CURRENT_BUFFER )
    #####:    #####: 4078:           YY_FATAL_ERROR( "_mesa_glsl_lexer_set_lineno called with no buffer" );
        -:        -: 4079:    
    #####:    #####: 4080:    yylineno = _line_number;
    #####:    #####: 4081:}
        -:        -: 4082:
        -:        -: 4083:/** Set the current column.
        -:        -: 4084: * @param _column_no column number
        -:        -: 4085: * @param yyscanner The scanner object.
        -:        -: 4086: */
    #####:    #####: 4087:void _mesa_glsl_lexer_set_column (int  _column_no , yyscan_t yyscanner)
        -:        -: 4088:{
    #####:    #####: 4089:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4090:
        -:        -: 4091:        /* column is only valid if an input buffer exists. */
    #####:    #####: 4092:        if (! YY_CURRENT_BUFFER )
    #####:    #####: 4093:           YY_FATAL_ERROR( "_mesa_glsl_lexer_set_column called with no buffer" );
        -:        -: 4094:    
    #####:    #####: 4095:    yycolumn = _column_no;
    #####:    #####: 4096:}
        -:        -: 4097:
        -:        -: 4098:/** Set the input stream. This does not discard the current
        -:        -: 4099: * input buffer.
        -:        -: 4100: * @param _in_str A readable stream.
        -:        -: 4101: * @param yyscanner The scanner object.
        -:        -: 4102: * @see _mesa_glsl_lexer__switch_to_buffer
        -:        -: 4103: */
    #####:    #####: 4104:void _mesa_glsl_lexer_set_in (FILE *  _in_str , yyscan_t yyscanner)
        -:        -: 4105:{
    #####:    #####: 4106:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4107:    yyin = _in_str ;
    #####:    #####: 4108:}
        -:        -: 4109:
    #####:    #####: 4110:void _mesa_glsl_lexer_set_out (FILE *  _out_str , yyscan_t yyscanner)
        -:        -: 4111:{
    #####:    #####: 4112:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4113:    yyout = _out_str ;
    #####:    #####: 4114:}
        -:        -: 4115:
    #####:    #####: 4116:int _mesa_glsl_lexer_get_debug  (yyscan_t yyscanner)
        -:        -: 4117:{
    #####:    #####: 4118:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4119:    return yy_flex_debug;
        -:        -: 4120:}
        -:        -: 4121:
    #####:    #####: 4122:void _mesa_glsl_lexer_set_debug (int  _bdebug , yyscan_t yyscanner)
        -:        -: 4123:{
    #####:    #####: 4124:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4125:    yy_flex_debug = _bdebug ;
    #####:    #####: 4126:}
        -:        -: 4127:
        -:        -: 4128:/* Accessor methods for yylval and yylloc */
        -:        -: 4129:
    #####:    #####: 4130:YYSTYPE * _mesa_glsl_lexer_get_lval  (yyscan_t yyscanner)
        -:        -: 4131:{
    #####:    #####: 4132:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4133:    return yylval;
        -:        -: 4134:}
        -:        -: 4135:
    #####:    #####: 4136:void _mesa_glsl_lexer_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
        -:        -: 4137:{
    #####:    #####: 4138:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4139:    yylval = yylval_param;
    #####:    #####: 4140:}
        -:        -: 4141:
    #####:    #####: 4142:YYLTYPE *_mesa_glsl_lexer_get_lloc  (yyscan_t yyscanner)
        -:        -: 4143:{
    #####:    #####: 4144:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4145:    return yylloc;
        -:        -: 4146:}
        -:        -: 4147:    
    #####:    #####: 4148:void _mesa_glsl_lexer_set_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
        -:        -: 4149:{
    #####:    #####: 4150:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
    #####:    #####: 4151:    yylloc = yylloc_param;
    #####:    #####: 4152:}
        -:        -: 4153:    
        -:        -: 4154:/* User-visible API */
        -:        -: 4155:
        -:        -: 4156:/* _mesa_glsl_lexer_lex_init is special because it creates the scanner itself, so it is
        -:        -: 4157: * the ONLY reentrant function that doesn't take the scanner as the last argument.
        -:        -: 4158: * That's why we explicitly handle the declaration, instead of using our macros.
        -:        -: 4159: */
        -:        -: 4160:
    #####:    #####: 4161:int _mesa_glsl_lexer_lex_init(yyscan_t* ptr_yy_globals)
        -:        -: 4162:
        -:        -: 4163:{
    #####:    #####: 4164:    if (ptr_yy_globals == NULL){
    #####:    #####: 4165:        errno = EINVAL;
    #####:    #####: 4166:        return 1;
        -:        -: 4167:    }
        -:        -: 4168:
    #####:    #####: 4169:    *ptr_yy_globals = (yyscan_t) _mesa_glsl_lexer_alloc ( sizeof( struct yyguts_t ), NULL );
        -:        -: 4170:
    #####:    #####: 4171:    if (*ptr_yy_globals == NULL){
    #####:    #####: 4172:        errno = ENOMEM;
    #####:    #####: 4173:        return 1;
        -:        -: 4174:    }
        -:        -: 4175:
        -:        -: 4176:    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
    #####:    #####: 4177:    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
        -:        -: 4178:
    #####:    #####: 4179:    return yy_init_globals ( *ptr_yy_globals );
        -:        -: 4180:}
        -:        -: 4181:
        -:        -: 4182:/* _mesa_glsl_lexer_lex_init_extra has the same functionality as _mesa_glsl_lexer_lex_init, but follows the
        -:        -: 4183: * convention of taking the scanner as the last argument. Note however, that
        -:        -: 4184: * this is a *pointer* to a scanner, as it will be allocated by this call (and
        -:        -: 4185: * is the reason, too, why this function also must handle its own declaration).
        -:        -: 4186: * The user defined value in the first argument will be available to _mesa_glsl_lexer_alloc in
        -:        -: 4187: * the yyextra field.
        -:        -: 4188: */
        -:        -: 4189:
        2:        2: 4190:int _mesa_glsl_lexer_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
        -:        -: 4191:
        -:        -: 4192:{
        -:        -: 4193:    struct yyguts_t dummy_yyguts;
        -:        -: 4194:
        2:        2: 4195:    _mesa_glsl_lexer_set_extra (yy_user_defined, &dummy_yyguts);
        -:        -: 4196:
        2:        2: 4197:    if (ptr_yy_globals == NULL){
    #####:    #####: 4198:        errno = EINVAL;
    #####:    #####: 4199:        return 1;
        -:        -: 4200:    }
        -:        -: 4201:	
        2:        2: 4202:    *ptr_yy_globals = (yyscan_t) _mesa_glsl_lexer_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
        -:        -: 4203:	
        2:        2: 4204:    if (*ptr_yy_globals == NULL){
    #####:    #####: 4205:        errno = ENOMEM;
    #####:    #####: 4206:        return 1;
        -:        -: 4207:    }
        -:        -: 4208:    
        -:        -: 4209:    /* By setting to 0xAA, we expose bugs in
        -:        -: 4210:    yy_init_globals. Leave at 0x00 for releases. */
        2:        2: 4211:    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
        -:        -: 4212:    
        2:        2: 4213:    _mesa_glsl_lexer_set_extra (yy_user_defined, *ptr_yy_globals);
        -:        -: 4214:    
        2:        2: 4215:    return yy_init_globals ( *ptr_yy_globals );
        -:        -: 4216:}
        -:        -: 4217:
        4:        4: 4218:static int yy_init_globals (yyscan_t yyscanner)
        -:        -: 4219:{
        4:        4: 4220:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4221:    /* Initialization is the same as for the non-reentrant scanner.
        -:        -: 4222:     * This function is called from _mesa_glsl_lexer_lex_destroy(), so don't allocate here.
        -:        -: 4223:     */
        -:        -: 4224:
        4:        4: 4225:    yyg->yy_buffer_stack = 0;
        4:        4: 4226:    yyg->yy_buffer_stack_top = 0;
        4:        4: 4227:    yyg->yy_buffer_stack_max = 0;
        4:        4: 4228:    yyg->yy_c_buf_p = (char *) 0;
        4:        4: 4229:    yyg->yy_init = 0;
        4:        4: 4230:    yyg->yy_start = 0;
        -:        -: 4231:
        4:        4: 4232:    yyg->yy_start_stack_ptr = 0;
        4:        4: 4233:    yyg->yy_start_stack_depth = 0;
        4:        4: 4234:    yyg->yy_start_stack =  NULL;
        -:        -: 4235:
        -:        -: 4236:/* Defined in main.c */
        -:        -: 4237:#ifdef YY_STDINIT
        -:        -: 4238:    yyin = stdin;
        -:        -: 4239:    yyout = stdout;
        -:        -: 4240:#else
        4:        4: 4241:    yyin = (FILE *) 0;
        4:        4: 4242:    yyout = (FILE *) 0;
        -:        -: 4243:#endif
        -:        -: 4244:
        -:        -: 4245:    /* For future reference: Set errno on error, since we are called by
        -:        -: 4246:     * _mesa_glsl_lexer_lex_init()
        -:        -: 4247:     */
        4:        4: 4248:    return 0;
        -:        -: 4249:}
        -:        -: 4250:
        -:        -: 4251:/* _mesa_glsl_lexer_lex_destroy is for both reentrant and non-reentrant scanners. */
        2:        2: 4252:int _mesa_glsl_lexer_lex_destroy  (yyscan_t yyscanner)
        -:        -: 4253:{
        2:        2: 4254:    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4255:
        -:        -: 4256:    /* Pop the buffer stack, destroying each element. */
        6:        6: 4257:	while(YY_CURRENT_BUFFER){
        2:        2: 4258:		_mesa_glsl_lexer__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
        2:        2: 4259:		YY_CURRENT_BUFFER_LVALUE = NULL;
        2:        2: 4260:		_mesa_glsl_lexer_pop_buffer_state(yyscanner);
        -:        -: 4261:	}
        -:        -: 4262:
        -:        -: 4263:	/* Destroy the stack itself. */
        2:        2: 4264:	_mesa_glsl_lexer_free(yyg->yy_buffer_stack ,yyscanner);
        2:        2: 4265:	yyg->yy_buffer_stack = NULL;
        -:        -: 4266:
        -:        -: 4267:    /* Destroy the start condition stack. */
        2:        2: 4268:        _mesa_glsl_lexer_free(yyg->yy_start_stack ,yyscanner );
        2:        2: 4269:        yyg->yy_start_stack = NULL;
        -:        -: 4270:
        -:        -: 4271:    /* Reset the globals. This is important in a non-reentrant scanner so the next time
        -:        -: 4272:     * _mesa_glsl_lexer_lex() is called, initialization will occur. */
        2:        2: 4273:    yy_init_globals( yyscanner);
        -:        -: 4274:
        -:        -: 4275:    /* Destroy the main struct (reentrant only). */
        2:        2: 4276:    _mesa_glsl_lexer_free ( yyscanner , yyscanner );
        2:        2: 4277:    yyscanner = NULL;
        2:        2: 4278:    return 0;
        -:        -: 4279:}
        -:        -: 4280:
        -:        -: 4281:/*
        -:        -: 4282: * Internal utility routines.
        -:        -: 4283: */
        -:        -: 4284:
        -:        -: 4285:#ifndef yytext_ptr
        -:        -: 4286:static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
        -:        -: 4287:{
        -:        -: 4288:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4289:	(void)yyg;
        -:        -: 4290:
        -:        -: 4291:	int i;
        -:        -: 4292:	for ( i = 0; i < n; ++i )
        -:        -: 4293:		s1[i] = s2[i];
        -:        -: 4294:}
        -:        -: 4295:#endif
        -:        -: 4296:
        -:        -: 4297:#ifdef YY_NEED_STRLEN
        -:        -: 4298:static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
        -:        -: 4299:{
        -:        -: 4300:	int n;
        -:        -: 4301:	for ( n = 0; s[n]; ++n )
        -:        -: 4302:		;
        -:        -: 4303:
        -:        -: 4304:	return n;
        -:        -: 4305:}
        -:        -: 4306:#endif
        -:        -: 4307:
        8:        8: 4308:void *_mesa_glsl_lexer_alloc (yy_size_t  size , yyscan_t yyscanner)
        -:        -: 4309:{
        8:        8: 4310:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4311:	(void)yyg;
        8:        8: 4312:	return (void *) malloc( size );
        -:        -: 4313:}
        -:        -: 4314:
    #####:    #####: 4315:void *_mesa_glsl_lexer_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
        -:        -: 4316:{
    #####:    #####: 4317:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4318:	(void)yyg;
        -:        -: 4319:
        -:        -: 4320:	/* The cast to (char *) in the following accommodates both
        -:        -: 4321:	 * implementations that use char* generic pointers, and those
        -:        -: 4322:	 * that use void* generic pointers.  It works with the latter
        -:        -: 4323:	 * because both ANSI C and C++ allow castless assignment from
        -:        -: 4324:	 * any pointer type to void*, and deal with argument conversions
        -:        -: 4325:	 * as though doing an assignment.
        -:        -: 4326:	 */
    #####:    #####: 4327:	return (void *) realloc( (char *) ptr, size );
        -:        -: 4328:}
        -:        -: 4329:
       10:       10: 4330:void _mesa_glsl_lexer_free (void * ptr , yyscan_t yyscanner)
        -:        -: 4331:{
       10:       10: 4332:	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
        -:        -: 4333:	(void)yyg;
       10:       10: 4334:	free( (char *) ptr );	/* see _mesa_glsl_lexer_realloc() for (char *) cast */
       10:       10: 4335:}
        -:        -: 4336:
        -:        -: 4337:#define YYTABLES_NAME "yytables"
        -:        -: 4338:
        -:        -: 4339:#line 639 "./glsl/glsl_lexer.ll"
        -:        -: 4340:
        -:        -: 4341:
        -:        -: 4342:
        -:        -: 4343:int
        -:        -: 4344:classify_identifier(struct _mesa_glsl_parse_state *state, const char *name)
        -:        -: 4345:{
        -:        -: 4346:   if (state->is_field) {
        -:        -: 4347:      state->is_field = false;
        -:        -: 4348:      return FIELD_SELECTION;
        -:        -: 4349:   }
        -:        -: 4350:   if (state->symbols->get_variable(name) || state->symbols->get_function(name))
        -:        -: 4351:      return IDENTIFIER;
        -:        -: 4352:   else if (state->symbols->get_type(name))
        -:        -: 4353:      return TYPE_IDENTIFIER;
        -:        -: 4354:   else
        -:        -: 4355:      return NEW_IDENTIFIER;
        -:        -: 4356:}
        -:        -: 4357:
        -:        -: 4358:void
        -:        -: 4359:_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
        -:        -: 4360:{
        -:        -: 4361:   _mesa_glsl_lexer_lex_init_extra(state,& state->scanner);
        -:        -: 4362:   _mesa_glsl_lexer__scan_string(string,state->scanner);
        -:        -: 4363:}
        -:        -: 4364:
        -:        -: 4365:void
        -:        -: 4366:_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
        -:        -: 4367:{
        -:        -: 4368:   _mesa_glsl_lexer_lex_destroy(state->scanner);
        -:        -: 4369:}
        -:        -: 4370:

src/compiler/glsl_lexer.ll.gcov

        -:        -:    0:Source:glsl/glsl_lexer.ll
        -:        -:    0:Graph:glsl/.libs/glsl_lexer.gcno
        -:        -:    0:Data:glsl/.libs/glsl_lexer.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:%{
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2008, 2009 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:#include <ctype.h>
        -:        -:   25:#include <limits.h>
        -:        -:   26:#include "util/strtod.h"
        -:        -:   27:#include "ast.h"
        -:        -:   28:#include "glsl_parser_extras.h"
        -:        -:   29:#include "glsl_parser.h"
        -:        -:   30:
        -:        -:   31:static int classify_identifier(struct _mesa_glsl_parse_state *, const char *);
        -:        -:   32:
        -:        -:   33:#ifdef _MSC_VER
        -:        -:   34:#define YY_NO_UNISTD_H
        -:        -:   35:#endif
        -:        -:   36:
        -:        -:   37:#define YY_USER_ACTION						\
        -:        -:   38:   do {								\
        -:        -:   39:      yylloc->first_column = yycolumn + 1;			\
        -:        -:   40:      yylloc->first_line = yylloc->last_line = yylineno + 1;	\
        -:        -:   41:      yycolumn += yyleng;					\
        -:        -:   42:      yylloc->last_column = yycolumn + 1;			\
        -:        -:   43:   } while(0);
        -:        -:   44:
        -:        -:   45:#define YY_USER_INIT yylineno = 0; yycolumn = 0; yylloc->source = 0;
        -:        -:   46:
        -:        -:   47:/* A macro for handling reserved words and keywords across language versions.
        -:        -:   48: *
        -:        -:   49: * Certain words start out as identifiers, become reserved words in
        -:        -:   50: * later language revisions, and finally become language keywords.
        -:        -:   51: * This may happen at different times in desktop GLSL and GLSL ES.
        -:        -:   52: *
        -:        -:   53: * For example, consider the following lexer rule:
        -:        -:   54: * samplerBuffer       KEYWORD(130, 0, 140, 0, SAMPLERBUFFER)
        -:        -:   55: *
        -:        -:   56: * This means that "samplerBuffer" will be treated as:
        -:        -:   57: * - a keyword (SAMPLERBUFFER token)         ...in GLSL >= 1.40
        -:        -:   58: * - a reserved word - error                 ...in GLSL >= 1.30
        -:        -:   59: * - an identifier                           ...in GLSL <  1.30 or GLSL ES
        -:        -:   60: */
        -:        -:   61:#define KEYWORD(reserved_glsl, reserved_glsl_es,			\
        -:        -:   62:                allowed_glsl, allowed_glsl_es, token)			\
        -:        -:   63:   KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,			\
        -:        -:   64:                    allowed_glsl, allowed_glsl_es, false, token)
        -:        -:   65:
        -:        -:   66:/**
        -:        -:   67: * Like the KEYWORD macro, but the word is also treated as a keyword
        -:        -:   68: * if the given boolean expression is true.
        -:        -:   69: */
        -:        -:   70:#define KEYWORD_WITH_ALT(reserved_glsl, reserved_glsl_es,		\
        -:        -:   71:                         allowed_glsl, allowed_glsl_es,			\
        -:        -:   72:                         alt_expr, token)				\
        -:        -:   73:   do {									\
        -:        -:   74:      if (yyextra->is_version(allowed_glsl, allowed_glsl_es)		\
        -:        -:   75:          || (alt_expr)) {						\
        -:        -:   76:	 return token;							\
        -:        -:   77:      } else if (yyextra->is_version(reserved_glsl,			\
        -:        -:   78:                                     reserved_glsl_es)) {		\
        -:        -:   79:	 _mesa_glsl_error(yylloc, yyextra,				\
        -:        -:   80:			  "illegal use of reserved word `%s'", yytext);	\
        -:        -:   81:	 return ERROR_TOK;						\
        -:        -:   82:      } else {								\
        -:        -:   83:	 void *mem_ctx = yyextra->linalloc;					\
        -:        -:   84:	 yylval->identifier = linear_strdup(mem_ctx, yytext);		\
        -:        -:   85:	 return classify_identifier(yyextra, yytext);			\
        -:        -:   86:      }									\
        -:        -:   87:   } while (0)
        -:        -:   88:
        -:        -:   89:/**
        -:        -:   90: * A macro for handling keywords that have been present in GLSL since
        -:        -:   91: * its origin, but were changed into reserved words in GLSL 3.00 ES.
        -:        -:   92: */
        -:        -:   93:#define DEPRECATED_ES_KEYWORD(token)					\
        -:        -:   94:   do {									\
        -:        -:   95:      if (yyextra->is_version(0, 300)) {				\
        -:        -:   96:	 _mesa_glsl_error(yylloc, yyextra,				\
        -:        -:   97:			  "illegal use of reserved word `%s'", yytext);	\
        -:        -:   98:	 return ERROR_TOK;						\
        -:        -:   99:      } else {								\
        -:        -:  100:         return token;							\
        -:        -:  101:      }									\
        -:        -:  102:   } while (0)
        -:        -:  103:
        -:        -:  104:static int
       17:       17:  105:literal_integer(char *text, int len, struct _mesa_glsl_parse_state *state,
        -:        -:  106:		YYSTYPE *lval, YYLTYPE *lloc, int base)
        -:        -:  107:{
       34:       34:  108:   bool is_uint = (text[len - 1] == 'u' ||
       34:       34:  109:		   text[len - 1] == 'U');
       17:       17:  110:   bool is_long = (text[len - 1] == 'l' || text[len - 1] == 'L');
       17:       17:  111:   const char *digits = text;
        -:        -:  112:
       17:       17:  113:   if (is_long)
    #####:    #####:  114:      is_uint = (text[len - 2] == 'u' && text[len - 1] == 'l') ||
    #####:    #####:  115:                (text[len - 2] == 'U' && text[len - 1] == 'L');
        -:        -:  116:   /* Skip "0x" */
       17:       17:  117:   if (base == 16)
    #####:    #####:  118:      digits += 2;
        -:        -:  119:
       17:       17:  120:   unsigned long long value = strtoull(digits, NULL, base);
        -:        -:  121:
       17:       17:  122:   if (is_long)
    #####:    #####:  123:      lval->n64 = (int64_t)value;
        -:        -:  124:   else
       17:       17:  125:      lval->n = (int)value;
        -:        -:  126:
       17:       17:  127:   if (is_long && !is_uint && base == 10 && value > (uint64_t)LLONG_MAX + 1) {
        -:        -:  128:      /* Tries to catch unintentionally providing a negative value. */
    #####:    #####:  129:      _mesa_glsl_warning(lloc, state,
        -:        -:  130:                         "signed literal value `%s' is interpreted as %lld",
    #####:    #####:  131:                         text, lval->n64);
       17:       17:  132:   } else if (!is_long && value > UINT_MAX) {
        -:        -:  133:      /* Note that signed 0xffffffff is valid, not out of range! */
    #####:    #####:  134:      if (state->is_version(130, 300)) {
        -:        -:  135:	 _mesa_glsl_error(lloc, state,
    #####:    #####:  136:			  "literal value `%s' out of range", text);
        -:        -:  137:      } else {
        -:        -:  138:	 _mesa_glsl_warning(lloc, state,
    #####:    #####:  139:			    "literal value `%s' out of range", text);
        -:        -:  140:      }
       17:       17:  141:   } else if (base == 10 && !is_uint && (unsigned)value > (unsigned)INT_MAX + 1) {
        -:        -:  142:      /* Tries to catch unintentionally providing a negative value.
        -:        -:  143:       * Note that -2147483648 is parsed as -(2147483648), so we don't
        -:        -:  144:       * want to warn for INT_MAX.
        -:        -:  145:       */
    #####:    #####:  146:      _mesa_glsl_warning(lloc, state,
        -:        -:  147:			 "signed literal value `%s' is interpreted as %d",
    #####:    #####:  148:			 text, lval->n);
        -:        -:  149:   }
       17:       17:  150:   if (is_long)
    #####:    #####:  151:      return is_uint ? UINT64CONSTANT : INT64CONSTANT;
        -:        -:  152:   else
       17:       17:  153:      return is_uint ? UINTCONSTANT : INTCONSTANT;
        -:        -:  154:}
        -:        -:  155:
        -:        -:  156:#define LITERAL_INTEGER(base) \
        -:        -:  157:   literal_integer(yytext, yyleng, yyextra, yylval, yylloc, base)
        -:        -:  158:
        -:        -:  159:%}
        -:        -:  160:
        -:        -:  161:%option bison-bridge bison-locations reentrant noyywrap
        -:        -:  162:%option nounput noyy_top_state
        -:        -:  163:%option never-interactive
        -:        -:  164:%option prefix="_mesa_glsl_lexer_"
        -:        -:  165:%option extra-type="struct _mesa_glsl_parse_state *"
        -:        -:  166:%option warn nodefault
        -:        -:  167:
        -:        -:  168:	/* Note: When adding any start conditions to this list, you must also
        -:        -:  169:	 * update the "Internal compiler error" catch-all rule near the end of
        -:        -:  170:	 * this file. */
        -:        -:  171:%x PP PRAGMA
        -:        -:  172:
        -:        -:  173:DEC_INT		[1-9][0-9]*
        -:        -:  174:HEX_INT		0[xX][0-9a-fA-F]+
        -:        -:  175:OCT_INT		0[0-7]*
        -:        -:  176:INT		({DEC_INT}|{HEX_INT}|{OCT_INT})
        -:        -:  177:SPC		[ \t]*
        -:        -:  178:SPCP		[ \t]+
        -:        -:  179:HASH		^{SPC}#{SPC}
        -:        -:  180:%%
        -:        -:  181:
        -:        -:  182:[ \r\t]+		;
      117:      123:  183:
        -:        -:  184:    /* Preprocessor tokens. */ 
        -:        -:  185:^[ \t]*#[ \t]*$			;
        2:        2:  186:^[ \t]*#[ \t]*version		{ BEGIN PP; return VERSION_TOK; }
    #####:    #####:  187:^[ \t]*#[ \t]*extension		{ BEGIN PP; return EXTENSION; }
        2:        2:  188:{HASH}line{SPCP}{INT}{SPCP}{INT}{SPC}$ {
    #####:    #####:  189:				   /* Eat characters until the first digit is
    #####:    #####:  190:				    * encountered
    #####:    #####:  191:				    */
    #####:    #####:  192:				   char *ptr = yytext;
    #####:    #####:  193:				   while (!isdigit(*ptr))
    #####:    #####:  194:				      ptr++;
        -:        -:  195:
        -:        -:  196:				   /* Subtract one from the line number because
        -:        -:  197:				    * yylineno is zero-based instead of
        -:        -:  198:				    * one-based.
        -:        -:  199:				    */
    #####:    #####:  200:				   yylineno = strtol(ptr, &ptr, 0) - 1;
        -:        -:  201:
        -:        -:  202:                                   /* From GLSL 3.30 and GLSL ES on, after processing the
        -:        -:  203:                                    * line directive (including its new-line), the implementation
        -:        -:  204:                                    * will behave as if it is compiling at the line number passed
        -:        -:  205:                                    * as argument. It was line number + 1 in older specifications.
        -:        -:  206:                                    */
    #####:    #####:  207:                                   if (yyextra->is_version(330, 100))
    #####:    #####:  208:                                      yylineno--;
        -:        -:  209:
    #####:    #####:  210:				   yylloc->source = strtol(ptr, NULL, 0);
        -:        -:  211:				}
    #####:    #####:  212:{HASH}line{SPCP}{INT}{SPC}$	{
        -:        -:  213:				   /* Eat characters until the first digit is
    #####:    #####:  214:				    * encountered
    #####:    #####:  215:				    */
    #####:    #####:  216:				   char *ptr = yytext;
    #####:    #####:  217:				   while (!isdigit(*ptr))
    #####:    #####:  218:				      ptr++;
        -:        -:  219:
        -:        -:  220:				   /* Subtract one from the line number because
        -:        -:  221:				    * yylineno is zero-based instead of
        -:        -:  222:				    * one-based.
        -:        -:  223:				    */
    #####:    #####:  224:				   yylineno = strtol(ptr, &ptr, 0) - 1;
        -:        -:  225:
        -:        -:  226:                                   /* From GLSL 3.30 and GLSL ES on, after processing the
        -:        -:  227:                                    * line directive (including its new-line), the implementation
        -:        -:  228:                                    * will behave as if it is compiling at the line number passed
        -:        -:  229:                                    * as argument. It was line number + 1 in older specifications.
        -:        -:  230:                                    */
    #####:    #####:  231:                                   if (yyextra->is_version(330, 100))
    #####:    #####:  232:                                      yylineno--;
        -:        -:  233:				}
    #####:    #####:  234:^{SPC}#{SPC}pragma{SPCP}debug{SPC}\({SPC}on{SPC}\) {
    #####:    #####:  235:				  BEGIN PP;
    #####:    #####:  236:				  return PRAGMA_DEBUG_ON;
        -:        -:  237:				}
        -:        -:  238:^{SPC}#{SPC}pragma{SPCP}debug{SPC}\({SPC}off{SPC}\) {
    #####:    #####:  239:				  BEGIN PP;
    #####:    #####:  240:				  return PRAGMA_DEBUG_OFF;
        -:        -:  241:				}
        -:        -:  242:^{SPC}#{SPC}pragma{SPCP}optimize{SPC}\({SPC}on{SPC}\) {
    #####:    #####:  243:				  BEGIN PP;
    #####:    #####:  244:				  return PRAGMA_OPTIMIZE_ON;
        -:        -:  245:				}
        -:        -:  246:^{SPC}#{SPC}pragma{SPCP}optimize{SPC}\({SPC}off{SPC}\) {
    #####:    #####:  247:				  BEGIN PP;
    #####:    #####:  248:				  return PRAGMA_OPTIMIZE_OFF;
        -:        -:  249:				}
        -:        -:  250:^{SPC}#{SPC}pragma{SPCP}STDGL{SPCP}invariant{SPC}\({SPC}all{SPC}\) {
    #####:    #####:  251:				  BEGIN PP;
    #####:    #####:  252:				  return PRAGMA_INVARIANT_ALL;
        -:        -:  253:				}
    #####:    #####:  254:^{SPC}#{SPC}pragma{SPCP}	{ BEGIN PRAGMA; }
    #####:    #####:  255:
    #####:    #####:  256:<PRAGMA>\n			{ BEGIN 0; yylineno++; yycolumn = 0; }
    #####:    #####:  257:<PRAGMA>.			{ }
    #####:    #####:  258:
    #####:    #####:  259:<PP>\/\/[^\n]*			{ }
    #####:    #####:  260:<PP>[ \t\r]*			{ }
        2:        2:  261:<PP>:				return COLON;
        2:        2:  262:<PP>[_a-zA-Z][_a-zA-Z0-9]*	{
    #####:    #####:  263:				   void *mem_ctx = yyextra->linalloc;
    #####:    #####:  264:				   yylval->identifier = linear_strdup(mem_ctx, yytext);
    #####:    #####:  265:				   return IDENTIFIER;
        -:        -:  266:				}
        -:        -:  267:<PP>[1-9][0-9]*			{
        2:        2:  268:				    yylval->n = strtol(yytext, NULL, 10);
        4:        4:  269:				    return INTCONSTANT;
        -:        -:  270:				}
        -:        -:  271:<PP>0				{
    #####:    #####:  272:				    yylval->n = 0;
    #####:    #####:  273:				    return INTCONSTANT;
        -:        -:  274:				}
        2:        2:  275:<PP>\n				{ BEGIN 0; yylineno++; yycolumn = 0; return EOL; }
    #####:    #####:  276:<PP>.				{ return yytext[0]; }
        -:        -:  277:
       79:       81:  278:\n		{ yylineno++; yycolumn = 0; }
       77:       79:  279:
       78:       80:  280:attribute	DEPRECATED_ES_KEYWORD(ATTRIBUTE);
        1:        1:  281:const		return CONST_TOK;
    #####:    #####:  282:bool		return BOOL_TOK;
        8:        8:  283:float		return FLOAT_TOK;
        2:        2:  284:int		return INT_TOK;
        8:        8:  285:uint		KEYWORD(130, 300, 130, 300, UINT_TOK);
        2:        2:  286:
    #####:    #####:  287:break		return BREAK;
    #####:    #####:  288:continue	return CONTINUE;
    #####:        1:  289:do		return DO;
    #####:        1:  290:while		return WHILE;
    #####:        1:  291:else		return ELSE;
        2:        3:  292:for		return FOR;
        3:        3:  293:if		return IF;
        2:        2:  294:discard		return DISCARD;
        5:        5:  295:return		return RETURN;
    #####:    #####:  296:
        2:        2:  297:bvec2		return BVEC2;
    #####:    #####:  298:bvec3		return BVEC3;
    #####:    #####:  299:bvec4		return BVEC4;
    #####:    #####:  300:ivec2		return IVEC2;
    #####:    #####:  301:ivec3		return IVEC3;
    #####:    #####:  302:ivec4		return IVEC4;
    #####:    #####:  303:uvec2		KEYWORD(130, 300, 130, 300, UVEC2);
    #####:    #####:  304:uvec3		KEYWORD(130, 300, 130, 300, UVEC3);
    #####:    #####:  305:uvec4		KEYWORD(130, 300, 130, 300, UVEC4);
        2:        2:  306:vec2		return VEC2;
    #####:    #####:  307:vec3		return VEC3;
        5:        5:  308:vec4		return VEC4;
    #####:    #####:  309:mat2		return MAT2X2;
        3:        3:  310:mat3		return MAT3X3;
    #####:    #####:  311:mat4		return MAT4X4;
    #####:    #####:  312:mat2x2		KEYWORD(120, 300, 120, 300, MAT2X2);
    #####:    #####:  313:mat2x3		KEYWORD(120, 300, 120, 300, MAT2X3);
    #####:    #####:  314:mat2x4		KEYWORD(120, 300, 120, 300, MAT2X4);
    #####:    #####:  315:mat3x2		KEYWORD(120, 300, 120, 300, MAT3X2);
    #####:    #####:  316:mat3x3		KEYWORD(120, 300, 120, 300, MAT3X3);
    #####:    #####:  317:mat3x4		KEYWORD(120, 300, 120, 300, MAT3X4);
    #####:    #####:  318:mat4x2		KEYWORD(120, 300, 120, 300, MAT4X2);
    #####:    #####:  319:mat4x3		KEYWORD(120, 300, 120, 300, MAT4X3);
    #####:    #####:  320:mat4x4		KEYWORD(120, 300, 120, 300, MAT4X4);
    #####:    #####:  321:
    #####:    #####:  322:in		return IN_TOK;
    #####:    #####:  323:out		return OUT_TOK;
    #####:    #####:  324:inout		return INOUT_TOK;
        2:        2:  325:uniform		return UNIFORM;
    #####:    #####:  326:buffer		KEYWORD_WITH_ALT(0, 0, 430, 310, yyextra->ARB_shader_storage_buffer_object_enable, BUFFER);
        2:        2:  327:varying		DEPRECATED_ES_KEYWORD(VARYING);
    #####:    #####:  328:centroid	KEYWORD(120, 300, 120, 300, CENTROID);
    #####:    #####:  329:invariant	KEYWORD(120, 100, 120, 100, INVARIANT);
    #####:    #####:  330:flat		KEYWORD(130, 100, 130, 300, FLAT);
    #####:    #####:  331:smooth		KEYWORD(130, 300, 130, 300, SMOOTH);
    #####:    #####:  332:noperspective	KEYWORD(130, 300, 130, 0, NOPERSPECTIVE);
    #####:    #####:  333:patch		KEYWORD_WITH_ALT(0, 300, 400, 320, yyextra->has_tessellation_shader(), PATCH);
    #####:    #####:  334:
    #####:    #####:  335:sampler1D	DEPRECATED_ES_KEYWORD(SAMPLER1D);
    #####:    #####:  336:sampler2D	return SAMPLER2D;
    #####:    #####:  337:sampler3D	return SAMPLER3D;
    #####:    #####:  338:samplerCube	return SAMPLERCUBE;
    #####:    #####:  339:sampler1DArray	KEYWORD(130, 300, 130, 0, SAMPLER1DARRAY);
    #####:    #####:  340:sampler2DArray	KEYWORD(130, 300, 130, 300, SAMPLER2DARRAY);
    #####:    #####:  341:sampler1DShadow	DEPRECATED_ES_KEYWORD(SAMPLER1DSHADOW);
    #####:    #####:  342:sampler2DShadow	return SAMPLER2DSHADOW;
    #####:    #####:  343:samplerCubeShadow	KEYWORD(130, 300, 130, 300, SAMPLERCUBESHADOW);
    #####:    #####:  344:sampler1DArrayShadow	KEYWORD(130, 300, 130, 0, SAMPLER1DARRAYSHADOW);
    #####:    #####:  345:sampler2DArrayShadow	KEYWORD(130, 300, 130, 300, SAMPLER2DARRAYSHADOW);
    #####:    #####:  346:isampler1D		KEYWORD(130, 300, 130, 0, ISAMPLER1D);
    #####:    #####:  347:isampler2D		KEYWORD(130, 300, 130, 300, ISAMPLER2D);
    #####:    #####:  348:isampler3D		KEYWORD(130, 300, 130, 300, ISAMPLER3D);
    #####:    #####:  349:isamplerCube		KEYWORD(130, 300, 130, 300, ISAMPLERCUBE);
    #####:    #####:  350:isampler1DArray		KEYWORD(130, 300, 130, 0, ISAMPLER1DARRAY);
    #####:    #####:  351:isampler2DArray		KEYWORD(130, 300, 130, 300, ISAMPLER2DARRAY);
    #####:    #####:  352:usampler1D		KEYWORD(130, 300, 130, 0, USAMPLER1D);
    #####:    #####:  353:usampler2D		KEYWORD(130, 300, 130, 300, USAMPLER2D);
    #####:    #####:  354:usampler3D		KEYWORD(130, 300, 130, 300, USAMPLER3D);
    #####:    #####:  355:usamplerCube		KEYWORD(130, 300, 130, 300, USAMPLERCUBE);
    #####:    #####:  356:usampler1DArray		KEYWORD(130, 300, 130, 0, USAMPLER1DARRAY);
    #####:    #####:  357:usampler2DArray		KEYWORD(130, 300, 130, 300, USAMPLER2DARRAY);
    #####:    #####:  358:
    #####:    #####:  359:   /* additional keywords in ARB_texture_multisample, included in GLSL 1.50 */
        -:        -:  360:   /* these are reserved but not defined in GLSL 3.00 */
        -:        -:  361:   /* [iu]sampler2DMS are defined in GLSL ES 3.10 */
    #####:    #####:  362:sampler2DMS        KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, SAMPLER2DMS);
    #####:    #####:  363:isampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, ISAMPLER2DMS);
    #####:    #####:  364:usampler2DMS       KEYWORD_WITH_ALT(150, 300, 150, 310, yyextra->ARB_texture_multisample_enable, USAMPLER2DMS);
    #####:    #####:  365:sampler2DMSArray   KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, SAMPLER2DMSARRAY);
    #####:    #####:  366:isampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, ISAMPLER2DMSARRAY);
    #####:    #####:  367:usampler2DMSArray  KEYWORD_WITH_ALT(150, 300, 150, 320, yyextra->ARB_texture_multisample_enable || yyextra->OES_texture_storage_multisample_2d_array_enable, USAMPLER2DMSARRAY);
    #####:    #####:  368:
    #####:    #####:  369:   /* keywords available with ARB_texture_cube_map_array_enable extension on desktop GLSL */
    #####:    #####:  370:samplerCubeArray   KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAY);
    #####:    #####:  371:isamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, ISAMPLERCUBEARRAY);
    #####:    #####:  372:usamplerCubeArray KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, USAMPLERCUBEARRAY);
    #####:    #####:  373:samplerCubeArrayShadow   KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_texture_cube_map_array_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, SAMPLERCUBEARRAYSHADOW);
    #####:    #####:  374:
    #####:    #####:  375:samplerExternalOES		{
    #####:    #####:  376:			  if (yyextra->OES_EGL_image_external_enable)
    #####:    #####:  377:			     return SAMPLEREXTERNALOES;
        -:        -:  378:			  else
    #####:    #####:  379:			     return IDENTIFIER;
        -:        -:  380:		}
        -:        -:  381:
        -:        -:  382:   /* keywords available with ARB_gpu_shader5 */
    #####:    #####:  383:precise		KEYWORD_WITH_ALT(400, 310, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->EXT_gpu_shader5_enable || yyextra->OES_gpu_shader5_enable, PRECISE);
    #####:    #####:  384:
        -:        -:  385:   /* keywords available with ARB_shader_image_load_store */
    #####:    #####:  386:image1D         KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1D);
    #####:    #####:  387:image2D         KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2D);
    #####:    #####:  388:image3D         KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE3D);
    #####:    #####:  389:image2DRect     KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DRECT);
    #####:    #####:  390:imageCube       KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGECUBE);
    #####:    #####:  391:imageBuffer     KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IMAGEBUFFER);
    #####:    #####:  392:image1DArray    KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE1DARRAY);
    #####:    #####:  393:image2DArray    KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IMAGE2DARRAY);
    #####:    #####:  394:imageCubeArray  KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IMAGECUBEARRAY);
    #####:    #####:  395:image2DMS       KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMS);
    #####:    #####:  396:image2DMSArray  KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IMAGE2DMSARRAY);
    #####:    #####:  397:iimage1D        KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1D);
    #####:    #####:  398:iimage2D        KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2D);
    #####:    #####:  399:iimage3D        KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE3D);
    #####:    #####:  400:iimage2DRect    KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DRECT);
    #####:    #####:  401:iimageCube      KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGECUBE);
    #####:    #####:  402:iimageBuffer    KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, IIMAGEBUFFER);
    #####:    #####:  403:iimage1DArray   KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE1DARRAY);
    #####:    #####:  404:iimage2DArray   KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DARRAY);
    #####:    #####:  405:iimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, IIMAGECUBEARRAY);
    #####:    #####:  406:iimage2DMS      KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMS);
    #####:    #####:  407:iimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, IIMAGE2DMSARRAY);
    #####:    #####:  408:uimage1D        KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1D);
    #####:    #####:  409:uimage2D        KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2D);
    #####:    #####:  410:uimage3D        KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE3D);
    #####:    #####:  411:uimage2DRect    KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DRECT);
    #####:    #####:  412:uimageCube      KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGECUBE);
    #####:    #####:  413:uimageBuffer    KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, UIMAGEBUFFER);
    #####:    #####:  414:uimage1DArray   KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE1DARRAY);
    #####:    #####:  415:uimage2DArray   KEYWORD_WITH_ALT(130, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DARRAY);
    #####:    #####:  416:uimageCubeArray KEYWORD_WITH_ALT(130, 300, 420, 320, yyextra->ARB_shader_image_load_store_enable || yyextra->OES_texture_cube_map_array_enable || yyextra->EXT_texture_cube_map_array_enable, UIMAGECUBEARRAY);
    #####:    #####:  417:uimage2DMS      KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMS);
    #####:    #####:  418:uimage2DMSArray KEYWORD_WITH_ALT(130, 300, 420, 0, yyextra->ARB_shader_image_load_store_enable, UIMAGE2DMSARRAY);
    #####:    #####:  419:image1DShadow           KEYWORD(130, 300, 0, 0, IMAGE1DSHADOW);
    #####:    #####:  420:image2DShadow           KEYWORD(130, 300, 0, 0, IMAGE2DSHADOW);
    #####:    #####:  421:image1DArrayShadow      KEYWORD(130, 300, 0, 0, IMAGE1DARRAYSHADOW);
    #####:    #####:  422:image2DArrayShadow      KEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
    #####:    #####:  423:
    #####:    #####:  424:coherent       KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, COHERENT);
    #####:    #####:  425:volatile       KEYWORD_WITH_ALT(110, 100, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, VOLATILE);
    #####:    #####:  426:restrict       KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, RESTRICT);
    #####:    #####:  427:readonly       KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, READONLY);
    #####:    #####:  428:writeonly      KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_image_load_store_enable || yyextra->ARB_shader_storage_buffer_object_enable, WRITEONLY);
    #####:    #####:  429:
    #####:    #####:  430:atomic_uint     KEYWORD_WITH_ALT(420, 300, 420, 310, yyextra->ARB_shader_atomic_counters_enable, ATOMIC_UINT);
    #####:    #####:  431:
    #####:    #####:  432:shared          KEYWORD_WITH_ALT(430, 310, 430, 310, yyextra->ARB_compute_shader_enable, SHARED);
    #####:    #####:  433:
    #####:    #####:  434:struct		return STRUCT;
        3:        3:  435:void		return VOID_TOK;
        -:        -:  436:
        3:        3:  437:layout		{
    #####:    #####:  438:		  if ((yyextra->is_version(140, 300))
    #####:    #####:  439:		      || yyextra->AMD_conservative_depth_enable
    #####:    #####:  440:		      || yyextra->ARB_conservative_depth_enable
    #####:    #####:  441:		      || yyextra->ARB_explicit_attrib_location_enable
    #####:    #####:  442:		      || yyextra->ARB_explicit_uniform_location_enable
    #####:    #####:  443:                      || yyextra->has_separate_shader_objects()
    #####:    #####:  444:		      || yyextra->ARB_uniform_buffer_object_enable
    #####:    #####:  445:		      || yyextra->ARB_fragment_coord_conventions_enable
    #####:    #####:  446:                      || yyextra->ARB_shading_language_420pack_enable
    #####:    #####:  447:                      || yyextra->ARB_compute_shader_enable
    #####:    #####:  448:                      || yyextra->ARB_tessellation_shader_enable) {
    #####:    #####:  449:		      return LAYOUT_TOK;
        -:        -:  450:		   } else {
    #####:    #####:  451:		      void *mem_ctx = yyextra->linalloc;
    #####:    #####:  452:		      yylval->identifier = linear_strdup(mem_ctx, yytext);
    #####:    #####:  453:		      return classify_identifier(yyextra, yytext);
        -:        -:  454:		   }
        -:        -:  455:		}
        -:        -:  456:
        2:        2:  457:\+\+		return INC_OP;
        2:        2:  458:--		return DEC_OP;
        1:        1:  459:\<=		return LE_OP;
        2:        2:  460:>=		return GE_OP;
        1:        1:  461:==		return EQ_OP;
        2:        2:  462:!=		return NE_OP;
    #####:    #####:  463:&&		return AND_OP;
    #####:    #####:  464:\|\|		return OR_OP;
    #####:    #####:  465:"^^"		return XOR_OP;
    #####:    #####:  466:"<<"		return LEFT_OP;
    #####:    #####:  467:">>"		return RIGHT_OP;
    #####:    #####:  468:
    #####:    #####:  469:\*=		return MUL_ASSIGN;
    #####:    #####:  470:\/=		return DIV_ASSIGN;
        1:        1:  471:\+=		return ADD_ASSIGN;
    #####:    #####:  472:\%=		return MOD_ASSIGN;
        1:        1:  473:\<\<=		return LEFT_ASSIGN;
    #####:    #####:  474:>>=		return RIGHT_ASSIGN;
    #####:    #####:  475:&=		return AND_ASSIGN;
    #####:    #####:  476:"^="		return XOR_ASSIGN;
    #####:    #####:  477:\|=		return OR_ASSIGN;
    #####:    #####:  478:-=		return SUB_ASSIGN;
    #####:    #####:  479:
    #####:    #####:  480:[1-9][0-9]*([uU]|[lL]|ul|UL)?	{
       12:       12:  481:			    return LITERAL_INTEGER(10);
        -:        -:  482:			}
        -:        -:  483:0[xX][0-9a-fA-F]+([uU]|[lL]|ul|UL)?	{
    #####:    #####:  484:			    return LITERAL_INTEGER(16);
    #####:    #####:  485:			}
        -:        -:  486:0[0-7]*([uU]|[lL]|ul|UL)?		{
        5:        5:  487:			    return LITERAL_INTEGER(8);
        5:        5:  488:			}
        -:        -:  489:
        -:        -:  490:[0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fF]?	|
        -:        -:  491:\.[0-9]+([eE][+-]?[0-9]+)?[fF]?		|
        -:        -:  492:[0-9]+\.([eE][+-]?[0-9]+)?[fF]?		|
        -:        -:  493:[0-9]+[eE][+-]?[0-9]+[fF]?		{
        2:        3:  494:			    struct _mesa_glsl_parse_state *state = yyextra;
        2:        3:  495:			    char suffix = yytext[strlen(yytext) - 1];
        2:        3:  496:			    if (!state->is_version(120, 300) &&
    #####:    #####:  497:			        (suffix == 'f' || suffix == 'F')) {
    #####:    #####:  498:			        _mesa_glsl_warning(yylloc, state,
    #####:    #####:  499:			                           "Float suffixes are invalid in GLSL 1.10");
        -:        -:  500:			    }
        2:        3:  501:			    yylval->real = _mesa_strtof(yytext, NULL);
        2:        3:  502:			    return FLOATCONSTANT;
        -:        -:  503:			}
        -:        -:  504:
        -:        -:  505:[0-9]+\.[0-9]+([eE][+-]?[0-9]+)?(lf|LF)	|
        -:        -:  506:\.[0-9]+([eE][+-]?[0-9]+)?(lf|LF)	|
        -:        -:  507:[0-9]+\.([eE][+-]?[0-9]+)?(lf|LF)	|
        -:        -:  508:[0-9]+[eE][+-]?[0-9]+(lf|LF)		{
    #####:    #####:  509:			    if (!yyextra->is_version(400, 0) &&
    #####:    #####:  510:			        !yyextra->ARB_gpu_shader_fp64_enable)
    #####:    #####:  511:			        return ERROR_TOK;
    #####:    #####:  512:			    yylval->dreal = _mesa_strtod(yytext, NULL);
    #####:    #####:  513:			    return DOUBLECONSTANT;
        -:        -:  514:			}
        -:        -:  515:
        -:        -:  516:true			{
    #####:    #####:  517:			    yylval->n = 1;
    #####:    #####:  518:			    return BOOLCONSTANT;
        -:        -:  519:			}
        -:        -:  520:false			{
    #####:    #####:  521:			    yylval->n = 0;
    #####:    #####:  522:			    return BOOLCONSTANT;
        -:        -:  523:			}
        -:        -:  524:
        -:        -:  525:
        -:        -:  526:    /* Reserved words in GLSL 1.10. */
    #####:    #####:  527:asm		KEYWORD(110, 100, 0, 0, ASM);
    #####:    #####:  528:class		KEYWORD(110, 100, 0, 0, CLASS);
    #####:    #####:  529:union		KEYWORD(110, 100, 0, 0, UNION);
    #####:    #####:  530:enum		KEYWORD(110, 100, 0, 0, ENUM);
    #####:    #####:  531:typedef		KEYWORD(110, 100, 0, 0, TYPEDEF);
    #####:    #####:  532:template	KEYWORD(110, 100, 0, 0, TEMPLATE);
    #####:    #####:  533:this		KEYWORD(110, 100, 0, 0, THIS);
    #####:    #####:  534:packed		KEYWORD_WITH_ALT(110, 100, 140, 300, yyextra->ARB_uniform_buffer_object_enable, PACKED_TOK);
    #####:    #####:  535:goto		KEYWORD(110, 100, 0, 0, GOTO);
    #####:    #####:  536:switch		KEYWORD(110, 100, 130, 300, SWITCH);
    #####:    #####:  537:default		KEYWORD(110, 100, 130, 300, DEFAULT);
    #####:    #####:  538:inline		KEYWORD(110, 100, 0, 0, INLINE_TOK);
    #####:    #####:  539:noinline	KEYWORD(110, 100, 0, 0, NOINLINE);
    #####:    #####:  540:public		KEYWORD(110, 100, 0, 0, PUBLIC_TOK);
    #####:    #####:  541:static		KEYWORD(110, 100, 0, 0, STATIC);
    #####:    #####:  542:extern		KEYWORD(110, 100, 0, 0, EXTERN);
    #####:    #####:  543:external	KEYWORD(110, 100, 0, 0, EXTERNAL);
    #####:    #####:  544:interface	KEYWORD(110, 100, 0, 0, INTERFACE);
    #####:    #####:  545:long		KEYWORD(110, 100, 0, 0, LONG_TOK);
    #####:    #####:  546:short		KEYWORD(110, 100, 0, 0, SHORT_TOK);
    #####:    #####:  547:double		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DOUBLE_TOK);
    #####:    #####:  548:half		KEYWORD(110, 100, 0, 0, HALF);
    #####:    #####:  549:fixed		KEYWORD(110, 100, 0, 0, FIXED_TOK);
    #####:    #####:  550:unsigned	KEYWORD(110, 100, 0, 0, UNSIGNED);
    #####:    #####:  551:input		KEYWORD(110, 100, 0, 0, INPUT_TOK);
    #####:    #####:  552:output		KEYWORD(110, 100, 0, 0, OUTPUT);
    #####:    #####:  553:hvec2		KEYWORD(110, 100, 0, 0, HVEC2);
    #####:    #####:  554:hvec3		KEYWORD(110, 100, 0, 0, HVEC3);
    #####:    #####:  555:hvec4		KEYWORD(110, 100, 0, 0, HVEC4);
    #####:    #####:  556:dvec2		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC2);
    #####:    #####:  557:dvec3		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC3);
    #####:    #####:  558:dvec4		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DVEC4);
    #####:    #####:  559:dmat2		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X2);
    #####:    #####:  560:dmat3		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X3);
    #####:    #####:  561:dmat4		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X4);
    #####:    #####:  562:dmat2x2		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X2);
    #####:    #####:  563:dmat2x3		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X3);
    #####:    #####:  564:dmat2x4		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT2X4);
    #####:    #####:  565:dmat3x2		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X2);
    #####:    #####:  566:dmat3x3		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X3);
    #####:    #####:  567:dmat3x4		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT3X4);
    #####:    #####:  568:dmat4x2		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X2);
    #####:    #####:  569:dmat4x3		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X3);
    #####:    #####:  570:dmat4x4		KEYWORD_WITH_ALT(110, 100, 400, 0, yyextra->ARB_gpu_shader_fp64_enable, DMAT4X4);
    #####:    #####:  571:fvec2		KEYWORD(110, 100, 0, 0, FVEC2);
    #####:    #####:  572:fvec3		KEYWORD(110, 100, 0, 0, FVEC3);
    #####:    #####:  573:fvec4		KEYWORD(110, 100, 0, 0, FVEC4);
    #####:    #####:  574:sampler2DRect		DEPRECATED_ES_KEYWORD(SAMPLER2DRECT);
    #####:    #####:  575:sampler3DRect		KEYWORD(110, 100, 0, 0, SAMPLER3DRECT);
    #####:    #####:  576:sampler2DRectShadow	DEPRECATED_ES_KEYWORD(SAMPLER2DRECTSHADOW);
    #####:    #####:  577:sizeof		KEYWORD(110, 100, 0, 0, SIZEOF);
    #####:    #####:  578:cast		KEYWORD(110, 100, 0, 0, CAST);
    #####:    #####:  579:namespace	KEYWORD(110, 100, 0, 0, NAMESPACE);
    #####:    #####:  580:using		KEYWORD(110, 100, 0, 0, USING);
    #####:    #####:  581:
    #####:    #####:  582:    /* Additional reserved words in GLSL 1.20. */
    #####:    #####:  583:lowp		KEYWORD(120, 100, 130, 100, LOWP);
    #####:    #####:  584:mediump		KEYWORD(120, 100, 130, 100, MEDIUMP);
    #####:    #####:  585:highp		KEYWORD(120, 100, 130, 100, HIGHP);
    #####:    #####:  586:precision	KEYWORD(120, 100, 130, 100, PRECISION);
    #####:    #####:  587:
    #####:    #####:  588:    /* Additional reserved words in GLSL 1.30. */
    #####:    #####:  589:case		KEYWORD(130, 300, 130, 300, CASE);
    #####:    #####:  590:common		KEYWORD(130, 300, 0, 0, COMMON);
    #####:    #####:  591:partition	KEYWORD(130, 300, 0, 0, PARTITION);
    #####:    #####:  592:active		KEYWORD(130, 300, 0, 0, ACTIVE);
    #####:    #####:  593:superp		KEYWORD(130, 100, 0, 0, SUPERP);
    #####:    #####:  594:samplerBuffer	KEYWORD_WITH_ALT(130, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, SAMPLERBUFFER);
    #####:    #####:  595:filter		KEYWORD(130, 300, 0, 0, FILTER);
    #####:    #####:  596:row_major	KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
    #####:    #####:  597:
    #####:    #####:  598:    /* Additional reserved words in GLSL 1.40 */
    #####:    #####:  599:isampler2DRect	KEYWORD(140, 300, 140, 0, ISAMPLER2DRECT);
    #####:    #####:  600:usampler2DRect	KEYWORD(140, 300, 140, 0, USAMPLER2DRECT);
    #####:    #####:  601:isamplerBuffer	KEYWORD_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, ISAMPLERBUFFER);
    #####:    #####:  602:usamplerBuffer	KEYWORD_WITH_ALT(140, 300, 140, 320, yyextra->EXT_texture_buffer_enable || yyextra->OES_texture_buffer_enable, USAMPLERBUFFER);
    #####:    #####:  603:
    #####:    #####:  604:    /* Additional reserved words in GLSL ES 3.00 */
    #####:    #####:  605:resource	KEYWORD(420, 300, 0, 0, RESOURCE);
    #####:    #####:  606:sample		KEYWORD_WITH_ALT(400, 300, 400, 320, yyextra->ARB_gpu_shader5_enable || yyextra->OES_shader_multisample_interpolation_enable, SAMPLE);
    #####:    #####:  607:subroutine	KEYWORD_WITH_ALT(400, 300, 400, 0, yyextra->ARB_shader_subroutine_enable, SUBROUTINE);
    #####:    #####:  608:
    #####:    #####:  609:    /* Additional words for ARB_gpu_shader_int64 */
    #####:    #####:  610:int64_t		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, INT64_TOK);
    #####:    #####:  611:i64vec2		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC2);
    #####:    #####:  612:i64vec3		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC3);
    #####:    #####:  613:i64vec4		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, I64VEC4);
    #####:    #####:  614:
    #####:    #####:  615:uint64_t	KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, UINT64_TOK);
    #####:    #####:  616:u64vec2		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC2);
    #####:    #####:  617:u64vec3		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC3);
    #####:    #####:  618:u64vec4		KEYWORD_WITH_ALT(0, 0, 0, 0, yyextra->ARB_gpu_shader_int64_enable, U64VEC4);
    #####:    #####:  619:
    #####:    #####:  620:[_a-zA-Z][_a-zA-Z0-9]*	{
       85:       87:  621:			    struct _mesa_glsl_parse_state *state = yyextra;
       85:       87:  622:			    void *ctx = state->linalloc;
       85:       87:  623:			    if (state->es_shader && strlen(yytext) > 1024) {
    #####:    #####:  624:			       _mesa_glsl_error(yylloc, state,
        -:        -:  625:			                        "Identifier `%s' exceeds 1024 characters",
    #####:    #####:  626:			                        yytext);
        -:        -:  627:			    } else {
       85:       87:  628:			      yylval->identifier = linear_strdup(ctx, yytext);
        -:        -:  629:			    }
       85:       87:  630:			    return classify_identifier(state, yytext);
        -:        -:  631:			}
        -:        -:  632:
       14:       15:  633:\.			{ struct _mesa_glsl_parse_state *state = yyextra;
       28:       30:  634:			  state->is_field = true;
       14:       15:  635:			  return DOT_TOK; }
        -:        -:  636:
      141:      147:  637:.			{ return yytext[0]; }
      141:      147:  638:
    #####:    #####:  639:%%
    #####:    #####:  640:
        -:        -:  641:int
        -:        -:  642:classify_identifier(struct _mesa_glsl_parse_state *state, const char *name)
       85:       87:  643:{
        -:        -:  644:   if (state->is_field) {
       85:       87:  645:      state->is_field = false;
       14:       15:  646:      return FIELD_SELECTION;
       14:       15:  647:   }
        -:        -:  648:   if (state->symbols->get_variable(name) || state->symbols->get_function(name))
       71:       72:  649:      return IDENTIFIER;
       49:       49:  650:   else if (state->symbols->get_type(name))
       22:       23:  651:      return TYPE_IDENTIFIER;
    #####:    #####:  652:   else
        -:        -:  653:      return NEW_IDENTIFIER;
       22:       23:  654:}
        -:        -:  655:
        -:        -:  656:void
        -:        -:  657:_mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string)
        2:        2:  658:{
        -:        -:  659:   yylex_init_extra(state, & state->scanner);
        2:        2:  660:   yy_scan_string(string, state->scanner);
        2:        2:  661:}
        2:        2:  662:
        -:        -:  663:void
        -:        -:  664:_mesa_glsl_lexer_dtor(struct _mesa_glsl_parse_state *state)
        2:        2:  665:{
        -:        -:  666:   yylex_destroy(state->scanner);
        2:        2:  667:}
        2:        2:  668:/*EOF*/

src/compiler/glsl_parser.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser.cpp
        -:        -:    0:Graph:glsl/.libs/glsl_parser.gcno
        -:        -:    0:Data:glsl/.libs/glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/* A Bison parser, made by GNU Bison 3.0.4.  */
        -:        -:    2:
        -:        -:    3:/* Bison implementation for Yacc-like parsers in C
        -:        -:    4:
        -:        -:    5:   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
        -:        -:    6:
        -:        -:    7:   This program is free software: you can redistribute it and/or modify
        -:        -:    8:   it under the terms of the GNU General Public License as published by
        -:        -:    9:   the Free Software Foundation, either version 3 of the License, or
        -:        -:   10:   (at your option) any later version.
        -:        -:   11:
        -:        -:   12:   This program is distributed in the hope that it will be useful,
        -:        -:   13:   but WITHOUT ANY WARRANTY; without even the implied warranty of
        -:        -:   14:   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        -:        -:   15:   GNU General Public License for more details.
        -:        -:   16:
        -:        -:   17:   You should have received a copy of the GNU General Public License
        -:        -:   18:   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
        -:        -:   19:
        -:        -:   20:/* As a special exception, you may create a larger work that contains
        -:        -:   21:   part or all of the Bison parser skeleton and distribute that work
        -:        -:   22:   under terms of your choice, so long as that work isn't itself a
        -:        -:   23:   parser generator using the skeleton or a modified version thereof
        -:        -:   24:   as a parser skeleton.  Alternatively, if you modify or redistribute
        -:        -:   25:   the parser skeleton itself, you may (at your option) remove this
        -:        -:   26:   special exception, which will cause the skeleton and the resulting
        -:        -:   27:   Bison output files to be licensed under the GNU General Public
        -:        -:   28:   License without this special exception.
        -:        -:   29:
        -:        -:   30:   This special exception was added by the Free Software Foundation in
        -:        -:   31:   version 2.2 of Bison.  */
        -:        -:   32:
        -:        -:   33:/* C LALR(1) parser skeleton written by Richard Stallman, by
        -:        -:   34:   simplifying the original so-called "semantic" parser.  */
        -:        -:   35:
        -:        -:   36:/* All symbols defined below should begin with yy or YY, to avoid
        -:        -:   37:   infringing on user name space.  This should be done even for local
        -:        -:   38:   variables, as they might otherwise be expanded by user macros.
        -:        -:   39:   There are some unavoidable exceptions within include files to
        -:        -:   40:   define necessary library symbols; they are noted "INFRINGES ON
        -:        -:   41:   USER NAME SPACE" below.  */
        -:        -:   42:
        -:        -:   43:/* Identify Bison output.  */
        -:        -:   44:#define YYBISON 1
        -:        -:   45:
        -:        -:   46:/* Bison version.  */
        -:        -:   47:#define YYBISON_VERSION "3.0.4"
        -:        -:   48:
        -:        -:   49:/* Skeleton name.  */
        -:        -:   50:#define YYSKELETON_NAME "yacc.c"
        -:        -:   51:
        -:        -:   52:/* Pure parsers.  */
        -:        -:   53:#define YYPURE 1
        -:        -:   54:
        -:        -:   55:/* Push parsers.  */
        -:        -:   56:#define YYPUSH 0
        -:        -:   57:
        -:        -:   58:/* Pull parsers.  */
        -:        -:   59:#define YYPULL 1
        -:        -:   60:
        -:        -:   61:
        -:        -:   62:/* Substitute the variable and function names.  */
        -:        -:   63:#define yyparse         _mesa_glsl_parse
        -:        -:   64:#define yylex           _mesa_glsl_lex
        -:        -:   65:#define yyerror         _mesa_glsl_error
        -:        -:   66:#define yydebug         _mesa_glsl_debug
        -:        -:   67:#define yynerrs         _mesa_glsl_nerrs
        -:        -:   68:
        -:        -:   69:
        -:        -:   70:/* Copy the first part of user declarations.  */
        -:        -:   71:#line 1 "./glsl/glsl_parser.yy" /* yacc.c:339  */
        -:        -:   72:
        -:        -:   73:/*
        -:        -:   74: * Copyright © 2008, 2009 Intel Corporation
        -:        -:   75: *
        -:        -:   76: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:   77: * copy of this software and associated documentation files (the "Software"),
        -:        -:   78: * to deal in the Software without restriction, including without limitation
        -:        -:   79: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:   80: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   81: * Software is furnished to do so, subject to the following conditions:
        -:        -:   82: *
        -:        -:   83: * The above copyright notice and this permission notice (including the next
        -:        -:   84: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   85: * Software.
        -:        -:   86: *
        -:        -:   87: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   88: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   89: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   90: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   91: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   92: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   93: * DEALINGS IN THE SOFTWARE.
        -:        -:   94: */
        -:        -:   95:#include <stdio.h>
        -:        -:   96:#include <stdlib.h>
        -:        -:   97:#include <string.h>
        -:        -:   98:#ifndef _MSC_VER
        -:        -:   99:#include <strings.h>
        -:        -:  100:#endif
        -:        -:  101:#include <assert.h>
        -:        -:  102:
        -:        -:  103:#include "ast.h"
        -:        -:  104:#include "glsl_parser_extras.h"
        -:        -:  105:#include "compiler/glsl_types.h"
        -:        -:  106:#include "main/context.h"
        -:        -:  107:
        -:        -:  108:#ifdef _MSC_VER
        -:        -:  109:#pragma warning( disable : 4065 ) // switch statement contains 'default' but no 'case' labels
        -:        -:  110:#endif
        -:        -:  111:
        -:        -:  112:#undef yyerror
        -:        -:  113:
        -:        -:  114:static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
        -:        -:  115:{
        -:        -:  116:   _mesa_glsl_error(loc, st, "%s", msg);
        -:        -:  117:}
        -:        -:  118:
        -:        -:  119:static int
        -:        -:  120:_mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, _mesa_glsl_parse_state *state)
        -:        -:  121:{
        -:        -:  122:   return _mesa_glsl_lexer_lex(val, loc, state->scanner);
        -:        -:  123:}
        -:        -:  124:
        -:        -:  125:static bool match_layout_qualifier(const char *s1, const char *s2,
        -:        -:  126:                                   _mesa_glsl_parse_state *state)
        -:        -:  127:{
        -:        -:  128:   /* From the GLSL 1.50 spec, section 4.3.8 (Layout Qualifiers):
        -:        -:  129:    *
        -:        -:  130:    *     "The tokens in any layout-qualifier-id-list ... are not case
        -:        -:  131:    *     sensitive, unless explicitly noted otherwise."
        -:        -:  132:    *
        -:        -:  133:    * The text "unless explicitly noted otherwise" appears to be
        -:        -:  134:    * vacuous--no desktop GLSL spec (up through GLSL 4.40) notes
        -:        -:  135:    * otherwise.
        -:        -:  136:    *
        -:        -:  137:    * However, the GLSL ES 3.00 spec says, in section 4.3.8 (Layout
        -:        -:  138:    * Qualifiers):
        -:        -:  139:    *
        -:        -:  140:    *     "As for other identifiers, they are case sensitive."
        -:        -:  141:    *
        -:        -:  142:    * So we need to do a case-sensitive or a case-insensitive match,
        -:        -:  143:    * depending on whether we are compiling for GLSL ES.
        -:        -:  144:    */
        -:        -:  145:   if (state->es_shader)
        -:        -:  146:      return strcmp(s1, s2);
        -:        -:  147:   else
        -:        -:  148:      return strcasecmp(s1, s2);
        -:        -:  149:}
        -:        -:  150:
        -:        -:  151:#line 152 "glsl/glsl_parser.cpp" /* yacc.c:339  */
        -:        -:  152:
        -:        -:  153:# ifndef YY_NULLPTR
        -:        -:  154:#  if defined __cplusplus && 201103L <= __cplusplus
        -:        -:  155:#   define YY_NULLPTR nullptr
        -:        -:  156:#  else
        -:        -:  157:#   define YY_NULLPTR 0
        -:        -:  158:#  endif
        -:        -:  159:# endif
        -:        -:  160:
        -:        -:  161:/* Enabling verbose error messages.  */
        -:        -:  162:#ifdef YYERROR_VERBOSE
        -:        -:  163:# undef YYERROR_VERBOSE
        -:        -:  164:# define YYERROR_VERBOSE 1
        -:        -:  165:#else
        -:        -:  166:# define YYERROR_VERBOSE 1
        -:        -:  167:#endif
        -:        -:  168:
        -:        -:  169:/* In a future release of Bison, this section will be replaced
        -:        -:  170:   by #include "glsl_parser.h".  */
        -:        -:  171:#ifndef YY__MESA_GLSL_GLSL_GLSL_PARSER_H_INCLUDED
        -:        -:  172:# define YY__MESA_GLSL_GLSL_GLSL_PARSER_H_INCLUDED
        -:        -:  173:/* Debug traces.  */
        -:        -:  174:#ifndef YYDEBUG
        -:        -:  175:# define YYDEBUG 0
        -:        -:  176:#endif
        -:        -:  177:#if YYDEBUG
        -:        -:  178:extern int _mesa_glsl_debug;
        -:        -:  179:#endif
        -:        -:  180:
        -:        -:  181:/* Token type.  */
        -:        -:  182:#ifndef YYTOKENTYPE
        -:        -:  183:# define YYTOKENTYPE
        -:        -:  184:  enum yytokentype
        -:        -:  185:  {
        -:        -:  186:    ATTRIBUTE = 258,
        -:        -:  187:    CONST_TOK = 259,
        -:        -:  188:    BOOL_TOK = 260,
        -:        -:  189:    FLOAT_TOK = 261,
        -:        -:  190:    INT_TOK = 262,
        -:        -:  191:    UINT_TOK = 263,
        -:        -:  192:    DOUBLE_TOK = 264,
        -:        -:  193:    BREAK = 265,
        -:        -:  194:    BUFFER = 266,
        -:        -:  195:    CONTINUE = 267,
        -:        -:  196:    DO = 268,
        -:        -:  197:    ELSE = 269,
        -:        -:  198:    FOR = 270,
        -:        -:  199:    IF = 271,
        -:        -:  200:    DISCARD = 272,
        -:        -:  201:    RETURN = 273,
        -:        -:  202:    SWITCH = 274,
        -:        -:  203:    CASE = 275,
        -:        -:  204:    DEFAULT = 276,
        -:        -:  205:    BVEC2 = 277,
        -:        -:  206:    BVEC3 = 278,
        -:        -:  207:    BVEC4 = 279,
        -:        -:  208:    IVEC2 = 280,
        -:        -:  209:    IVEC3 = 281,
        -:        -:  210:    IVEC4 = 282,
        -:        -:  211:    UVEC2 = 283,
        -:        -:  212:    UVEC3 = 284,
        -:        -:  213:    UVEC4 = 285,
        -:        -:  214:    VEC2 = 286,
        -:        -:  215:    VEC3 = 287,
        -:        -:  216:    VEC4 = 288,
        -:        -:  217:    DVEC2 = 289,
        -:        -:  218:    DVEC3 = 290,
        -:        -:  219:    DVEC4 = 291,
        -:        -:  220:    INT64_TOK = 292,
        -:        -:  221:    UINT64_TOK = 293,
        -:        -:  222:    I64VEC2 = 294,
        -:        -:  223:    I64VEC3 = 295,
        -:        -:  224:    I64VEC4 = 296,
        -:        -:  225:    U64VEC2 = 297,
        -:        -:  226:    U64VEC3 = 298,
        -:        -:  227:    U64VEC4 = 299,
        -:        -:  228:    CENTROID = 300,
        -:        -:  229:    IN_TOK = 301,
        -:        -:  230:    OUT_TOK = 302,
        -:        -:  231:    INOUT_TOK = 303,
        -:        -:  232:    UNIFORM = 304,
        -:        -:  233:    VARYING = 305,
        -:        -:  234:    SAMPLE = 306,
        -:        -:  235:    NOPERSPECTIVE = 307,
        -:        -:  236:    FLAT = 308,
        -:        -:  237:    SMOOTH = 309,
        -:        -:  238:    MAT2X2 = 310,
        -:        -:  239:    MAT2X3 = 311,
        -:        -:  240:    MAT2X4 = 312,
        -:        -:  241:    MAT3X2 = 313,
        -:        -:  242:    MAT3X3 = 314,
        -:        -:  243:    MAT3X4 = 315,
        -:        -:  244:    MAT4X2 = 316,
        -:        -:  245:    MAT4X3 = 317,
        -:        -:  246:    MAT4X4 = 318,
        -:        -:  247:    DMAT2X2 = 319,
        -:        -:  248:    DMAT2X3 = 320,
        -:        -:  249:    DMAT2X4 = 321,
        -:        -:  250:    DMAT3X2 = 322,
        -:        -:  251:    DMAT3X3 = 323,
        -:        -:  252:    DMAT3X4 = 324,
        -:        -:  253:    DMAT4X2 = 325,
        -:        -:  254:    DMAT4X3 = 326,
        -:        -:  255:    DMAT4X4 = 327,
        -:        -:  256:    SAMPLER1D = 328,
        -:        -:  257:    SAMPLER2D = 329,
        -:        -:  258:    SAMPLER3D = 330,
        -:        -:  259:    SAMPLERCUBE = 331,
        -:        -:  260:    SAMPLER1DSHADOW = 332,
        -:        -:  261:    SAMPLER2DSHADOW = 333,
        -:        -:  262:    SAMPLERCUBESHADOW = 334,
        -:        -:  263:    SAMPLER1DARRAY = 335,
        -:        -:  264:    SAMPLER2DARRAY = 336,
        -:        -:  265:    SAMPLER1DARRAYSHADOW = 337,
        -:        -:  266:    SAMPLER2DARRAYSHADOW = 338,
        -:        -:  267:    SAMPLERCUBEARRAY = 339,
        -:        -:  268:    SAMPLERCUBEARRAYSHADOW = 340,
        -:        -:  269:    ISAMPLER1D = 341,
        -:        -:  270:    ISAMPLER2D = 342,
        -:        -:  271:    ISAMPLER3D = 343,
        -:        -:  272:    ISAMPLERCUBE = 344,
        -:        -:  273:    ISAMPLER1DARRAY = 345,
        -:        -:  274:    ISAMPLER2DARRAY = 346,
        -:        -:  275:    ISAMPLERCUBEARRAY = 347,
        -:        -:  276:    USAMPLER1D = 348,
        -:        -:  277:    USAMPLER2D = 349,
        -:        -:  278:    USAMPLER3D = 350,
        -:        -:  279:    USAMPLERCUBE = 351,
        -:        -:  280:    USAMPLER1DARRAY = 352,
        -:        -:  281:    USAMPLER2DARRAY = 353,
        -:        -:  282:    USAMPLERCUBEARRAY = 354,
        -:        -:  283:    SAMPLER2DRECT = 355,
        -:        -:  284:    ISAMPLER2DRECT = 356,
        -:        -:  285:    USAMPLER2DRECT = 357,
        -:        -:  286:    SAMPLER2DRECTSHADOW = 358,
        -:        -:  287:    SAMPLERBUFFER = 359,
        -:        -:  288:    ISAMPLERBUFFER = 360,
        -:        -:  289:    USAMPLERBUFFER = 361,
        -:        -:  290:    SAMPLER2DMS = 362,
        -:        -:  291:    ISAMPLER2DMS = 363,
        -:        -:  292:    USAMPLER2DMS = 364,
        -:        -:  293:    SAMPLER2DMSARRAY = 365,
        -:        -:  294:    ISAMPLER2DMSARRAY = 366,
        -:        -:  295:    USAMPLER2DMSARRAY = 367,
        -:        -:  296:    SAMPLEREXTERNALOES = 368,
        -:        -:  297:    IMAGE1D = 369,
        -:        -:  298:    IMAGE2D = 370,
        -:        -:  299:    IMAGE3D = 371,
        -:        -:  300:    IMAGE2DRECT = 372,
        -:        -:  301:    IMAGECUBE = 373,
        -:        -:  302:    IMAGEBUFFER = 374,
        -:        -:  303:    IMAGE1DARRAY = 375,
        -:        -:  304:    IMAGE2DARRAY = 376,
        -:        -:  305:    IMAGECUBEARRAY = 377,
        -:        -:  306:    IMAGE2DMS = 378,
        -:        -:  307:    IMAGE2DMSARRAY = 379,
        -:        -:  308:    IIMAGE1D = 380,
        -:        -:  309:    IIMAGE2D = 381,
        -:        -:  310:    IIMAGE3D = 382,
        -:        -:  311:    IIMAGE2DRECT = 383,
        -:        -:  312:    IIMAGECUBE = 384,
        -:        -:  313:    IIMAGEBUFFER = 385,
        -:        -:  314:    IIMAGE1DARRAY = 386,
        -:        -:  315:    IIMAGE2DARRAY = 387,
        -:        -:  316:    IIMAGECUBEARRAY = 388,
        -:        -:  317:    IIMAGE2DMS = 389,
        -:        -:  318:    IIMAGE2DMSARRAY = 390,
        -:        -:  319:    UIMAGE1D = 391,
        -:        -:  320:    UIMAGE2D = 392,
        -:        -:  321:    UIMAGE3D = 393,
        -:        -:  322:    UIMAGE2DRECT = 394,
        -:        -:  323:    UIMAGECUBE = 395,
        -:        -:  324:    UIMAGEBUFFER = 396,
        -:        -:  325:    UIMAGE1DARRAY = 397,
        -:        -:  326:    UIMAGE2DARRAY = 398,
        -:        -:  327:    UIMAGECUBEARRAY = 399,
        -:        -:  328:    UIMAGE2DMS = 400,
        -:        -:  329:    UIMAGE2DMSARRAY = 401,
        -:        -:  330:    IMAGE1DSHADOW = 402,
        -:        -:  331:    IMAGE2DSHADOW = 403,
        -:        -:  332:    IMAGE1DARRAYSHADOW = 404,
        -:        -:  333:    IMAGE2DARRAYSHADOW = 405,
        -:        -:  334:    COHERENT = 406,
        -:        -:  335:    VOLATILE = 407,
        -:        -:  336:    RESTRICT = 408,
        -:        -:  337:    READONLY = 409,
        -:        -:  338:    WRITEONLY = 410,
        -:        -:  339:    ATOMIC_UINT = 411,
        -:        -:  340:    SHARED = 412,
        -:        -:  341:    STRUCT = 413,
        -:        -:  342:    VOID_TOK = 414,
        -:        -:  343:    WHILE = 415,
        -:        -:  344:    IDENTIFIER = 416,
        -:        -:  345:    TYPE_IDENTIFIER = 417,
        -:        -:  346:    NEW_IDENTIFIER = 418,
        -:        -:  347:    FLOATCONSTANT = 419,
        -:        -:  348:    DOUBLECONSTANT = 420,
        -:        -:  349:    INTCONSTANT = 421,
        -:        -:  350:    UINTCONSTANT = 422,
        -:        -:  351:    BOOLCONSTANT = 423,
        -:        -:  352:    INT64CONSTANT = 424,
        -:        -:  353:    UINT64CONSTANT = 425,
        -:        -:  354:    FIELD_SELECTION = 426,
        -:        -:  355:    LEFT_OP = 427,
        -:        -:  356:    RIGHT_OP = 428,
        -:        -:  357:    INC_OP = 429,
        -:        -:  358:    DEC_OP = 430,
        -:        -:  359:    LE_OP = 431,
        -:        -:  360:    GE_OP = 432,
        -:        -:  361:    EQ_OP = 433,
        -:        -:  362:    NE_OP = 434,
        -:        -:  363:    AND_OP = 435,
        -:        -:  364:    OR_OP = 436,
        -:        -:  365:    XOR_OP = 437,
        -:        -:  366:    MUL_ASSIGN = 438,
        -:        -:  367:    DIV_ASSIGN = 439,
        -:        -:  368:    ADD_ASSIGN = 440,
        -:        -:  369:    MOD_ASSIGN = 441,
        -:        -:  370:    LEFT_ASSIGN = 442,
        -:        -:  371:    RIGHT_ASSIGN = 443,
        -:        -:  372:    AND_ASSIGN = 444,
        -:        -:  373:    XOR_ASSIGN = 445,
        -:        -:  374:    OR_ASSIGN = 446,
        -:        -:  375:    SUB_ASSIGN = 447,
        -:        -:  376:    INVARIANT = 448,
        -:        -:  377:    PRECISE = 449,
        -:        -:  378:    LOWP = 450,
        -:        -:  379:    MEDIUMP = 451,
        -:        -:  380:    HIGHP = 452,
        -:        -:  381:    SUPERP = 453,
        -:        -:  382:    PRECISION = 454,
        -:        -:  383:    VERSION_TOK = 455,
        -:        -:  384:    EXTENSION = 456,
        -:        -:  385:    LINE = 457,
        -:        -:  386:    COLON = 458,
        -:        -:  387:    EOL = 459,
        -:        -:  388:    INTERFACE = 460,
        -:        -:  389:    OUTPUT = 461,
        -:        -:  390:    PRAGMA_DEBUG_ON = 462,
        -:        -:  391:    PRAGMA_DEBUG_OFF = 463,
        -:        -:  392:    PRAGMA_OPTIMIZE_ON = 464,
        -:        -:  393:    PRAGMA_OPTIMIZE_OFF = 465,
        -:        -:  394:    PRAGMA_INVARIANT_ALL = 466,
        -:        -:  395:    LAYOUT_TOK = 467,
        -:        -:  396:    DOT_TOK = 468,
        -:        -:  397:    ASM = 469,
        -:        -:  398:    CLASS = 470,
        -:        -:  399:    UNION = 471,
        -:        -:  400:    ENUM = 472,
        -:        -:  401:    TYPEDEF = 473,
        -:        -:  402:    TEMPLATE = 474,
        -:        -:  403:    THIS = 475,
        -:        -:  404:    PACKED_TOK = 476,
        -:        -:  405:    GOTO = 477,
        -:        -:  406:    INLINE_TOK = 478,
        -:        -:  407:    NOINLINE = 479,
        -:        -:  408:    PUBLIC_TOK = 480,
        -:        -:  409:    STATIC = 481,
        -:        -:  410:    EXTERN = 482,
        -:        -:  411:    EXTERNAL = 483,
        -:        -:  412:    LONG_TOK = 484,
        -:        -:  413:    SHORT_TOK = 485,
        -:        -:  414:    HALF = 486,
        -:        -:  415:    FIXED_TOK = 487,
        -:        -:  416:    UNSIGNED = 488,
        -:        -:  417:    INPUT_TOK = 489,
        -:        -:  418:    HVEC2 = 490,
        -:        -:  419:    HVEC3 = 491,
        -:        -:  420:    HVEC4 = 492,
        -:        -:  421:    FVEC2 = 493,
        -:        -:  422:    FVEC3 = 494,
        -:        -:  423:    FVEC4 = 495,
        -:        -:  424:    SAMPLER3DRECT = 496,
        -:        -:  425:    SIZEOF = 497,
        -:        -:  426:    CAST = 498,
        -:        -:  427:    NAMESPACE = 499,
        -:        -:  428:    USING = 500,
        -:        -:  429:    RESOURCE = 501,
        -:        -:  430:    PATCH = 502,
        -:        -:  431:    SUBROUTINE = 503,
        -:        -:  432:    ERROR_TOK = 504,
        -:        -:  433:    COMMON = 505,
        -:        -:  434:    PARTITION = 506,
        -:        -:  435:    ACTIVE = 507,
        -:        -:  436:    FILTER = 508,
        -:        -:  437:    ROW_MAJOR = 509,
        -:        -:  438:    THEN = 510
        -:        -:  439:  };
        -:        -:  440:#endif
        -:        -:  441:
        -:        -:  442:/* Value type.  */
        -:        -:  443:#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
        -:        -:  444:
        -:        -:  445:union YYSTYPE
        -:        -:  446:{
        -:        -:  447:#line 98 "./glsl/glsl_parser.yy" /* yacc.c:355  */
        -:        -:  448:
        -:        -:  449:   int n;
        -:        -:  450:   int64_t n64;
        -:        -:  451:   float real;
        -:        -:  452:   double dreal;
        -:        -:  453:   const char *identifier;
        -:        -:  454:
        -:        -:  455:   struct ast_type_qualifier type_qualifier;
        -:        -:  456:
        -:        -:  457:   ast_node *node;
        -:        -:  458:   ast_type_specifier *type_specifier;
        -:        -:  459:   ast_array_specifier *array_specifier;
        -:        -:  460:   ast_fully_specified_type *fully_specified_type;
        -:        -:  461:   ast_function *function;
        -:        -:  462:   ast_parameter_declarator *parameter_declarator;
        -:        -:  463:   ast_function_definition *function_definition;
        -:        -:  464:   ast_compound_statement *compound_statement;
        -:        -:  465:   ast_expression *expression;
        -:        -:  466:   ast_declarator_list *declarator_list;
        -:        -:  467:   ast_struct_specifier *struct_specifier;
        -:        -:  468:   ast_declaration *declaration;
        -:        -:  469:   ast_switch_body *switch_body;
        -:        -:  470:   ast_case_label *case_label;
        -:        -:  471:   ast_case_label_list *case_label_list;
        -:        -:  472:   ast_case_statement *case_statement;
        -:        -:  473:   ast_case_statement_list *case_statement_list;
        -:        -:  474:   ast_interface_block *interface_block;
        -:        -:  475:   ast_subroutine_list *subroutine_list;
        -:        -:  476:   struct {
        -:        -:  477:      ast_node *cond;
        -:        -:  478:      ast_expression *rest;
        -:        -:  479:   } for_rest_statement;
        -:        -:  480:
        -:        -:  481:   struct {
        -:        -:  482:      ast_node *then_statement;
        -:        -:  483:      ast_node *else_statement;
        -:        -:  484:   } selection_rest_statement;
        -:        -:  485:
        -:        -:  486:#line 487 "glsl/glsl_parser.cpp" /* yacc.c:355  */
        -:        -:  487:};
        -:        -:  488:
        -:        -:  489:typedef union YYSTYPE YYSTYPE;
        -:        -:  490:# define YYSTYPE_IS_TRIVIAL 1
        -:        -:  491:# define YYSTYPE_IS_DECLARED 1
        -:        -:  492:#endif
        -:        -:  493:
        -:        -:  494:/* Location type.  */
        -:        -:  495:#if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
        -:        -:  496:typedef struct YYLTYPE YYLTYPE;
        -:        -:  497:struct YYLTYPE
        -:        -:  498:{
        -:        -:  499:  int first_line;
        -:        -:  500:  int first_column;
        -:        -:  501:  int last_line;
        -:        -:  502:  int last_column;
        -:        -:  503:};
        -:        -:  504:# define YYLTYPE_IS_DECLARED 1
        -:        -:  505:# define YYLTYPE_IS_TRIVIAL 1
        -:        -:  506:#endif
        -:        -:  507:
        -:        -:  508:
        -:        -:  509:
        -:        -:  510:int _mesa_glsl_parse (struct _mesa_glsl_parse_state *state);
        -:        -:  511:
        -:        -:  512:#endif /* !YY__MESA_GLSL_GLSL_GLSL_PARSER_H_INCLUDED  */
        -:        -:  513:
        -:        -:  514:/* Copy the second part of user declarations.  */
        -:        -:  515:
        -:        -:  516:#line 517 "glsl/glsl_parser.cpp" /* yacc.c:358  */
        -:        -:  517:
        -:        -:  518:#ifdef short
        -:        -:  519:# undef short
        -:        -:  520:#endif
        -:        -:  521:
        -:        -:  522:#ifdef YYTYPE_UINT8
        -:        -:  523:typedef YYTYPE_UINT8 yytype_uint8;
        -:        -:  524:#else
        -:        -:  525:typedef unsigned char yytype_uint8;
        -:        -:  526:#endif
        -:        -:  527:
        -:        -:  528:#ifdef YYTYPE_INT8
        -:        -:  529:typedef YYTYPE_INT8 yytype_int8;
        -:        -:  530:#else
        -:        -:  531:typedef signed char yytype_int8;
        -:        -:  532:#endif
        -:        -:  533:
        -:        -:  534:#ifdef YYTYPE_UINT16
        -:        -:  535:typedef YYTYPE_UINT16 yytype_uint16;
        -:        -:  536:#else
        -:        -:  537:typedef unsigned short int yytype_uint16;
        -:        -:  538:#endif
        -:        -:  539:
        -:        -:  540:#ifdef YYTYPE_INT16
        -:        -:  541:typedef YYTYPE_INT16 yytype_int16;
        -:        -:  542:#else
        -:        -:  543:typedef short int yytype_int16;
        -:        -:  544:#endif
        -:        -:  545:
        -:        -:  546:#ifndef YYSIZE_T
        -:        -:  547:# ifdef __SIZE_TYPE__
        -:        -:  548:#  define YYSIZE_T __SIZE_TYPE__
        -:        -:  549:# elif defined size_t
        -:        -:  550:#  define YYSIZE_T size_t
        -:        -:  551:# elif ! defined YYSIZE_T
        -:        -:  552:#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  553:#  define YYSIZE_T size_t
        -:        -:  554:# else
        -:        -:  555:#  define YYSIZE_T unsigned int
        -:        -:  556:# endif
        -:        -:  557:#endif
        -:        -:  558:
        -:        -:  559:#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
        -:        -:  560:
        -:        -:  561:#ifndef YY_
        -:        -:  562:# if defined YYENABLE_NLS && YYENABLE_NLS
        -:        -:  563:#  if ENABLE_NLS
        -:        -:  564:#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  565:#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
        -:        -:  566:#  endif
        -:        -:  567:# endif
        -:        -:  568:# ifndef YY_
        -:        -:  569:#  define YY_(Msgid) Msgid
        -:        -:  570:# endif
        -:        -:  571:#endif
        -:        -:  572:
        -:        -:  573:#ifndef YY_ATTRIBUTE
        -:        -:  574:# if (defined __GNUC__                                               \
        -:        -:  575:      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
        -:        -:  576:     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
        -:        -:  577:#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
        -:        -:  578:# else
        -:        -:  579:#  define YY_ATTRIBUTE(Spec) /* empty */
        -:        -:  580:# endif
        -:        -:  581:#endif
        -:        -:  582:
        -:        -:  583:#ifndef YY_ATTRIBUTE_PURE
        -:        -:  584:# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
        -:        -:  585:#endif
        -:        -:  586:
        -:        -:  587:#ifndef YY_ATTRIBUTE_UNUSED
        -:        -:  588:# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
        -:        -:  589:#endif
        -:        -:  590:
        -:        -:  591:#if !defined _Noreturn \
        -:        -:  592:     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
        -:        -:  593:# if defined _MSC_VER && 1200 <= _MSC_VER
        -:        -:  594:#  define _Noreturn __declspec (noreturn)
        -:        -:  595:# else
        -:        -:  596:#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
        -:        -:  597:# endif
        -:        -:  598:#endif
        -:        -:  599:
        -:        -:  600:/* Suppress unused-variable warnings by "using" E.  */
        -:        -:  601:#if ! defined lint || defined __GNUC__
        -:        -:  602:# define YYUSE(E) ((void) (E))
        -:        -:  603:#else
        -:        -:  604:# define YYUSE(E) /* empty */
        -:        -:  605:#endif
        -:        -:  606:
        -:        -:  607:#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
        -:        -:  608:/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
        -:        -:  609:# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
        -:        -:  610:    _Pragma ("GCC diagnostic push") \
        -:        -:  611:    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
        -:        -:  612:    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
        -:        -:  613:# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
        -:        -:  614:    _Pragma ("GCC diagnostic pop")
        -:        -:  615:#else
        -:        -:  616:# define YY_INITIAL_VALUE(Value) Value
        -:        -:  617:#endif
        -:        -:  618:#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -:  619:# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -:  620:# define YY_IGNORE_MAYBE_UNINITIALIZED_END
        -:        -:  621:#endif
        -:        -:  622:#ifndef YY_INITIAL_VALUE
        -:        -:  623:# define YY_INITIAL_VALUE(Value) /* Nothing. */
        -:        -:  624:#endif
        -:        -:  625:
        -:        -:  626:
        -:        -:  627:#if ! defined yyoverflow || YYERROR_VERBOSE
        -:        -:  628:
        -:        -:  629:/* The parser invokes alloca or malloc; define the necessary symbols.  */
        -:        -:  630:
        -:        -:  631:# ifdef YYSTACK_USE_ALLOCA
        -:        -:  632:#  if YYSTACK_USE_ALLOCA
        -:        -:  633:#   ifdef __GNUC__
        -:        -:  634:#    define YYSTACK_ALLOC __builtin_alloca
        -:        -:  635:#   elif defined __BUILTIN_VA_ARG_INCR
        -:        -:  636:#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  637:#   elif defined _AIX
        -:        -:  638:#    define YYSTACK_ALLOC __alloca
        -:        -:  639:#   elif defined _MSC_VER
        -:        -:  640:#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  641:#    define alloca _alloca
        -:        -:  642:#   else
        -:        -:  643:#    define YYSTACK_ALLOC alloca
        -:        -:  644:#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
        -:        -:  645:#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  646:      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
        -:        -:  647:#     ifndef EXIT_SUCCESS
        -:        -:  648:#      define EXIT_SUCCESS 0
        -:        -:  649:#     endif
        -:        -:  650:#    endif
        -:        -:  651:#   endif
        -:        -:  652:#  endif
        -:        -:  653:# endif
        -:        -:  654:
        -:        -:  655:# ifdef YYSTACK_ALLOC
        -:        -:  656:   /* Pacify GCC's 'empty if-body' warning.  */
        -:        -:  657:#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
        -:        -:  658:#  ifndef YYSTACK_ALLOC_MAXIMUM
        -:        -:  659:    /* The OS might guarantee only one guard page at the bottom of the stack,
        -:        -:  660:       and a page size can be as small as 4096 bytes.  So we cannot safely
        -:        -:  661:       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
        -:        -:  662:       to allow for a few compiler-allocated temporary stack slots.  */
        -:        -:  663:#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
        -:        -:  664:#  endif
        -:        -:  665:# else
        -:        -:  666:#  define YYSTACK_ALLOC YYMALLOC
        -:        -:  667:#  define YYSTACK_FREE YYFREE
        -:        -:  668:#  ifndef YYSTACK_ALLOC_MAXIMUM
        -:        -:  669:#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
        -:        -:  670:#  endif
        -:        -:  671:#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        -:        -:  672:       && ! ((defined YYMALLOC || defined malloc) \
        -:        -:  673:             && (defined YYFREE || defined free)))
        -:        -:  674:#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
        -:        -:  675:#   ifndef EXIT_SUCCESS
        -:        -:  676:#    define EXIT_SUCCESS 0
        -:        -:  677:#   endif
        -:        -:  678:#  endif
        -:        -:  679:#  ifndef YYMALLOC
        -:        -:  680:#   define YYMALLOC malloc
        -:        -:  681:#   if ! defined malloc && ! defined EXIT_SUCCESS
        -:        -:  682:void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
        -:        -:  683:#   endif
        -:        -:  684:#  endif
        -:        -:  685:#  ifndef YYFREE
        -:        -:  686:#   define YYFREE free
        -:        -:  687:#   if ! defined free && ! defined EXIT_SUCCESS
        -:        -:  688:void free (void *); /* INFRINGES ON USER NAME SPACE */
        -:        -:  689:#   endif
        -:        -:  690:#  endif
        -:        -:  691:# endif
        -:        -:  692:#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
        -:        -:  693:
        -:        -:  694:
        -:        -:  695:#if (! defined yyoverflow \
        -:        -:  696:     && (! defined __cplusplus \
        -:        -:  697:         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
        -:        -:  698:             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
        -:        -:  699:
        -:        -:  700:/* A type that is properly aligned for any stack member.  */
        -:        -:  701:union yyalloc
        -:        -:  702:{
        -:        -:  703:  yytype_int16 yyss_alloc;
        -:        -:  704:  YYSTYPE yyvs_alloc;
        -:        -:  705:  YYLTYPE yyls_alloc;
        -:        -:  706:};
        -:        -:  707:
        -:        -:  708:/* The size of the maximum gap between one aligned stack and the next.  */
        -:        -:  709:# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
        -:        -:  710:
        -:        -:  711:/* The size of an array large to enough to hold all stacks, each with
        -:        -:  712:   N elements.  */
        -:        -:  713:# define YYSTACK_BYTES(N) \
        -:        -:  714:     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
        -:        -:  715:      + 2 * YYSTACK_GAP_MAXIMUM)
        -:        -:  716:
        -:        -:  717:# define YYCOPY_NEEDED 1
        -:        -:  718:
        -:        -:  719:/* Relocate STACK from its old location to the new one.  The
        -:        -:  720:   local variables YYSIZE and YYSTACKSIZE give the old and new number of
        -:        -:  721:   elements in the stack, and YYPTR gives the new location of the
        -:        -:  722:   stack.  Advance YYPTR to a properly aligned location for the next
        -:        -:  723:   stack.  */
        -:        -:  724:# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
        -:        -:  725:    do                                                                  \
        -:        -:  726:      {                                                                 \
        -:        -:  727:        YYSIZE_T yynewbytes;                                            \
        -:        -:  728:        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
        -:        -:  729:        Stack = &yyptr->Stack_alloc;                                    \
        -:        -:  730:        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        -:        -:  731:        yyptr += yynewbytes / sizeof (*yyptr);                          \
        -:        -:  732:      }                                                                 \
        -:        -:  733:    while (0)
        -:        -:  734:
        -:        -:  735:#endif
        -:        -:  736:
        -:        -:  737:#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
        -:        -:  738:/* Copy COUNT objects from SRC to DST.  The source and destination do
        -:        -:  739:   not overlap.  */
        -:        -:  740:# ifndef YYCOPY
        -:        -:  741:#  if defined __GNUC__ && 1 < __GNUC__
        -:        -:  742:#   define YYCOPY(Dst, Src, Count) \
        -:        -:  743:      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
        -:        -:  744:#  else
        -:        -:  745:#   define YYCOPY(Dst, Src, Count)              \
        -:        -:  746:      do                                        \
        -:        -:  747:        {                                       \
        -:        -:  748:          YYSIZE_T yyi;                         \
        -:        -:  749:          for (yyi = 0; yyi < (Count); yyi++)   \
        -:        -:  750:            (Dst)[yyi] = (Src)[yyi];            \
        -:        -:  751:        }                                       \
        -:        -:  752:      while (0)
        -:        -:  753:#  endif
        -:        -:  754:# endif
        -:        -:  755:#endif /* !YYCOPY_NEEDED */
        -:        -:  756:
        -:        -:  757:/* YYFINAL -- State number of the termination state.  */
        -:        -:  758:#define YYFINAL  5
        -:        -:  759:/* YYLAST -- Last index in YYTABLE.  */
        -:        -:  760:#define YYLAST   5966
        -:        -:  761:
        -:        -:  762:/* YYNTOKENS -- Number of terminals.  */
        -:        -:  763:#define YYNTOKENS  279
        -:        -:  764:/* YYNNTS -- Number of nonterminals.  */
        -:        -:  765:#define YYNNTS  110
        -:        -:  766:/* YYNRULES -- Number of rules.  */
        -:        -:  767:#define YYNRULES  424
        -:        -:  768:/* YYNSTATES -- Number of states.  */
        -:        -:  769:#define YYNSTATES  581
        -:        -:  770:
        -:        -:  771:/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
        -:        -:  772:   by yylex, with out-of-bounds checking.  */
        -:        -:  773:#define YYUNDEFTOK  2
        -:        -:  774:#define YYMAXUTOK   510
        -:        -:  775:
        -:        -:  776:#define YYTRANSLATE(YYX)                                                \
        -:        -:  777:  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
        -:        -:  778:
        -:        -:  779:/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
        -:        -:  780:   as returned by yylex, without out-of-bounds checking.  */
        -:        -:  781:static const yytype_uint16 yytranslate[] =
        -:        -:  782:{
        -:        -:  783:       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  784:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  785:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  786:       2,     2,     2,   263,     2,     2,     2,   267,   270,     2,
        -:        -:  787:     256,   257,   265,   261,   260,   262,     2,   266,     2,     2,
        -:        -:  788:       2,     2,     2,     2,     2,     2,     2,     2,   274,   276,
        -:        -:  789:     268,   275,   269,   273,     2,     2,     2,     2,     2,     2,
        -:        -:  790:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  791:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  792:       2,   258,     2,   259,   271,     2,     2,     2,     2,     2,
        -:        -:  793:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  794:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  795:       2,     2,     2,   277,   272,   278,   264,     2,     2,     2,
        -:        -:  796:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  797:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  798:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  799:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  800:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  801:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  802:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  803:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  804:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  805:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  806:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  807:       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        -:        -:  808:       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        -:        -:  809:       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
        -:        -:  810:      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
        -:        -:  811:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -:  812:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -:  813:      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        -:        -:  814:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -:  815:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -:  816:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -:  817:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -:  818:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -:  819:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -:  820:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -:  821:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -:  822:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -:  823:     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
        -:        -:  824:     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
        -:        -:  825:     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
        -:        -:  826:     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
        -:        -:  827:     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
        -:        -:  828:     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
        -:        -:  829:     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
        -:        -:  830:     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
        -:        -:  831:     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
        -:        -:  832:     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
        -:        -:  833:     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
        -:        -:  834:     255
        -:        -:  835:};
        -:        -:  836:
        -:        -:  837:#if YYDEBUG
        -:        -:  838:  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
        -:        -:  839:static const yytype_uint16 yyrline[] =
        -:        -:  840:{
        -:        -:  841:       0,   313,   313,   312,   336,   338,   345,   355,   356,   357,
        -:        -:  842:     358,   359,   383,   385,   389,   390,   391,   395,   404,   412,
        -:        -:  843:     420,   431,   432,   436,   443,   450,   457,   464,   471,   478,
        -:        -:  844:     485,   492,   499,   500,   506,   510,   517,   523,   532,   536,
        -:        -:  845:     540,   544,   545,   549,   550,   554,   560,   572,   576,   582,
        -:        -:  846:     596,   597,   603,   609,   619,   620,   621,   622,   626,   627,
        -:        -:  847:     633,   639,   648,   649,   655,   664,   665,   671,   680,   681,
        -:        -:  848:     687,   693,   699,   708,   709,   715,   724,   725,   734,   735,
        -:        -:  849:     744,   745,   754,   755,   764,   765,   774,   775,   784,   785,
        -:        -:  850:     794,   795,   804,   805,   806,   807,   808,   809,   810,   811,
        -:        -:  851:     812,   813,   814,   818,   822,   838,   842,   847,   851,   856,
        -:        -:  852:     873,   877,   878,   882,   887,   895,   913,   924,   939,   947,
        -:        -:  853:     964,   967,   975,   983,   995,  1007,  1014,  1019,  1024,  1033,
        -:        -:  854:    1037,  1038,  1048,  1058,  1068,  1082,  1089,  1100,  1111,  1122,
        -:        -:  855:    1133,  1145,  1160,  1167,  1185,  1192,  1193,  1203,  1598,  1763,
        -:        -:  856:    1789,  1794,  1799,  1807,  1812,  1821,  1830,  1842,  1847,  1852,
        -:        -:  857:    1861,  1866,  1871,  1872,  1873,  1874,  1875,  1876,  1877,  1895,
        -:        -:  858:    1903,  1928,  1952,  1966,  1971,  1987,  2007,  2019,  2027,  2032,
        -:        -:  859:    2037,  2044,  2049,  2054,  2059,  2064,  2089,  2101,  2106,  2111,
        -:        -:  860:    2119,  2124,  2129,  2135,  2140,  2148,  2156,  2162,  2172,  2183,
        -:        -:  861:    2184,  2192,  2198,  2204,  2213,  2214,  2215,  2216,  2217,  2218,
        -:        -:  862:    2219,  2220,  2221,  2222,  2223,  2224,  2225,  2226,  2227,  2228,
        -:        -:  863:    2229,  2230,  2231,  2232,  2233,  2234,  2235,  2236,  2237,  2238,
        -:        -:  864:    2239,  2240,  2241,  2242,  2243,  2244,  2245,  2246,  2247,  2248,
        -:        -:  865:    2249,  2250,  2251,  2252,  2253,  2254,  2255,  2256,  2257,  2258,
        -:        -:  866:    2259,  2260,  2261,  2262,  2263,  2264,  2265,  2266,  2267,  2268,
        -:        -:  867:    2269,  2270,  2271,  2272,  2273,  2274,  2275,  2276,  2277,  2278,
        -:        -:  868:    2279,  2280,  2281,  2282,  2283,  2284,  2285,  2286,  2287,  2288,
        -:        -:  869:    2289,  2290,  2291,  2292,  2293,  2294,  2295,  2296,  2297,  2298,
        -:        -:  870:    2299,  2300,  2301,  2302,  2303,  2304,  2305,  2306,  2307,  2308,
        -:        -:  871:    2309,  2310,  2311,  2312,  2313,  2314,  2315,  2316,  2317,  2318,
        -:        -:  872:    2319,  2320,  2321,  2322,  2323,  2324,  2325,  2326,  2327,  2328,
        -:        -:  873:    2329,  2330,  2331,  2332,  2333,  2334,  2338,  2343,  2348,  2356,
        -:        -:  874:    2363,  2372,  2377,  2385,  2404,  2409,  2417,  2423,  2432,  2433,
        -:        -:  875:    2437,  2444,  2451,  2458,  2464,  2465,  2469,  2470,  2471,  2472,
        -:        -:  876:    2473,  2474,  2478,  2485,  2484,  2498,  2499,  2503,  2509,  2518,
        -:        -:  877:    2528,  2540,  2546,  2555,  2564,  2569,  2577,  2581,  2599,  2607,
        -:        -:  878:    2612,  2620,  2625,  2633,  2641,  2649,  2657,  2665,  2673,  2681,
        -:        -:  879:    2688,  2695,  2705,  2706,  2710,  2712,  2718,  2723,  2732,  2738,
        -:        -:  880:    2744,  2750,  2756,  2765,  2766,  2767,  2768,  2772,  2786,  2790,
        -:        -:  881:    2803,  2821,  2840,  2845,  2850,  2855,  2860,  2875,  2878,  2883,
        -:        -:  882:    2891,  2896,  2904,  2928,  2935,  2939,  2946,  2950,  2960,  2969,
        -:        -:  883:    2979,  2988,  3000,  3022,  3032
        -:        -:  884:};
        -:        -:  885:#endif
        -:        -:  886:
        -:        -:  887:#if YYDEBUG || YYERROR_VERBOSE || 1
        -:        -:  888:/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
        -:        -:  889:   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
        -:        -:  890:static const char *const yytname[] =
        -:        -:  891:{
        -:        -:  892:  "$end", "error", "$undefined", "ATTRIBUTE", "CONST_TOK", "BOOL_TOK",
        -:        -:  893:  "FLOAT_TOK", "INT_TOK", "UINT_TOK", "DOUBLE_TOK", "BREAK", "BUFFER",
        -:        -:  894:  "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH",
        -:        -:  895:  "CASE", "DEFAULT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
        -:        -:  896:  "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "DVEC2", "DVEC3",
        -:        -:  897:  "DVEC4", "INT64_TOK", "UINT64_TOK", "I64VEC2", "I64VEC3", "I64VEC4",
        -:        -:  898:  "U64VEC2", "U64VEC3", "U64VEC4", "CENTROID", "IN_TOK", "OUT_TOK",
        -:        -:  899:  "INOUT_TOK", "UNIFORM", "VARYING", "SAMPLE", "NOPERSPECTIVE", "FLAT",
        -:        -:  900:  "SMOOTH", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
        -:        -:  901:  "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2",
        -:        -:  902:  "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", "SAMPLER1D",
        -:        -:  903:  "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW",
        -:        -:  904:  "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY",
        -:        -:  905:  "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW",
        -:        -:  906:  "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D",
        -:        -:  907:  "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY",
        -:        -:  908:  "ISAMPLERCUBEARRAY", "USAMPLER1D", "USAMPLER2D", "USAMPLER3D",
        -:        -:  909:  "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY",
        -:        -:  910:  "USAMPLERCUBEARRAY", "SAMPLER2DRECT", "ISAMPLER2DRECT", "USAMPLER2DRECT",
        -:        -:  911:  "SAMPLER2DRECTSHADOW", "SAMPLERBUFFER", "ISAMPLERBUFFER",
        -:        -:  912:  "USAMPLERBUFFER", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS",
        -:        -:  913:  "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY",
        -:        -:  914:  "SAMPLEREXTERNALOES", "IMAGE1D", "IMAGE2D", "IMAGE3D", "IMAGE2DRECT",
        -:        -:  915:  "IMAGECUBE", "IMAGEBUFFER", "IMAGE1DARRAY", "IMAGE2DARRAY",
        -:        -:  916:  "IMAGECUBEARRAY", "IMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE1D", "IIMAGE2D",
        -:        -:  917:  "IIMAGE3D", "IIMAGE2DRECT", "IIMAGECUBE", "IIMAGEBUFFER",
        -:        -:  918:  "IIMAGE1DARRAY", "IIMAGE2DARRAY", "IIMAGECUBEARRAY", "IIMAGE2DMS",
        -:        -:  919:  "IIMAGE2DMSARRAY", "UIMAGE1D", "UIMAGE2D", "UIMAGE3D", "UIMAGE2DRECT",
        -:        -:  920:  "UIMAGECUBE", "UIMAGEBUFFER", "UIMAGE1DARRAY", "UIMAGE2DARRAY",
        -:        -:  921:  "UIMAGECUBEARRAY", "UIMAGE2DMS", "UIMAGE2DMSARRAY", "IMAGE1DSHADOW",
        -:        -:  922:  "IMAGE2DSHADOW", "IMAGE1DARRAYSHADOW", "IMAGE2DARRAYSHADOW", "COHERENT",
        -:        -:  923:  "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "ATOMIC_UINT", "SHARED",
        -:        -:  924:  "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER", "TYPE_IDENTIFIER",
        -:        -:  925:  "NEW_IDENTIFIER", "FLOATCONSTANT", "DOUBLECONSTANT", "INTCONSTANT",
        -:        -:  926:  "UINTCONSTANT", "BOOLCONSTANT", "INT64CONSTANT", "UINT64CONSTANT",
        -:        -:  927:  "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
        -:        -:  928:  "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
        -:        -:  929:  "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
        -:        -:  930:  "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT",
        -:        -:  931:  "PRECISE", "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION",
        -:        -:  932:  "VERSION_TOK", "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE",
        -:        -:  933:  "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON",
        -:        -:  934:  "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "DOT_TOK",
        -:        -:  935:  "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS",
        -:        -:  936:  "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "PUBLIC_TOK", "STATIC",
        -:        -:  937:  "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", "HALF", "FIXED_TOK",
        -:        -:  938:  "UNSIGNED", "INPUT_TOK", "HVEC2", "HVEC3", "HVEC4", "FVEC2", "FVEC3",
        -:        -:  939:  "FVEC4", "SAMPLER3DRECT", "SIZEOF", "CAST", "NAMESPACE", "USING",
        -:        -:  940:  "RESOURCE", "PATCH", "SUBROUTINE", "ERROR_TOK", "COMMON", "PARTITION",
        -:        -:  941:  "ACTIVE", "FILTER", "ROW_MAJOR", "THEN", "'('", "')'", "'['", "']'",
        -:        -:  942:  "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'",
        -:        -:  943:  "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept",
        -:        -:  944:  "translation_unit", "$@1", "version_statement", "pragma_statement",
        -:        -:  945:  "extension_statement_list", "any_identifier", "extension_statement",
        -:        -:  946:  "external_declaration_list", "variable_identifier", "primary_expression",
        -:        -:  947:  "postfix_expression", "integer_expression", "function_call",
        -:        -:  948:  "function_call_or_method", "function_call_generic",
        -:        -:  949:  "function_call_header_no_parameters",
        -:        -:  950:  "function_call_header_with_parameters", "function_call_header",
        -:        -:  951:  "function_identifier", "unary_expression", "unary_operator",
        -:        -:  952:  "multiplicative_expression", "additive_expression", "shift_expression",
        -:        -:  953:  "relational_expression", "equality_expression", "and_expression",
        -:        -:  954:  "exclusive_or_expression", "inclusive_or_expression",
        -:        -:  955:  "logical_and_expression", "logical_xor_expression",
        -:        -:  956:  "logical_or_expression", "conditional_expression",
        -:        -:  957:  "assignment_expression", "assignment_operator", "expression",
        -:        -:  958:  "constant_expression", "declaration", "function_prototype",
        -:        -:  959:  "function_declarator", "function_header_with_parameters",
        -:        -:  960:  "function_header", "parameter_declarator", "parameter_declaration",
        -:        -:  961:  "parameter_qualifier", "parameter_direction_qualifier",
        -:        -:  962:  "parameter_type_specifier", "init_declarator_list", "single_declaration",
        -:        -:  963:  "fully_specified_type", "layout_qualifier", "layout_qualifier_id_list",
        -:        -:  964:  "layout_qualifier_id", "interface_block_layout_qualifier",
        -:        -:  965:  "subroutine_qualifier", "subroutine_type_list",
        -:        -:  966:  "interpolation_qualifier", "type_qualifier",
        -:        -:  967:  "auxiliary_storage_qualifier", "storage_qualifier", "memory_qualifier",
        -:        -:  968:  "array_specifier", "type_specifier", "type_specifier_nonarray",
        -:        -:  969:  "basic_type_specifier_nonarray", "precision_qualifier",
        -:        -:  970:  "struct_specifier", "struct_declaration_list", "struct_declaration",
        -:        -:  971:  "struct_declarator_list", "struct_declarator", "initializer",
        -:        -:  972:  "initializer_list", "declaration_statement", "statement",
        -:        -:  973:  "simple_statement", "compound_statement", "$@2",
        -:        -:  974:  "statement_no_new_scope", "compound_statement_no_new_scope",
        -:        -:  975:  "statement_list", "expression_statement", "selection_statement",
        -:        -:  976:  "selection_rest_statement", "condition", "switch_statement",
        -:        -:  977:  "switch_body", "case_label", "case_label_list", "case_statement",
        -:        -:  978:  "case_statement_list", "iteration_statement", "for_init_statement",
        -:        -:  979:  "conditionopt", "for_rest_statement", "jump_statement",
        -:        -:  980:  "external_declaration", "function_definition", "interface_block",
        -:        -:  981:  "basic_interface_block", "interface_qualifier", "instance_name_opt",
        -:        -:  982:  "member_list", "member_declaration", "layout_uniform_defaults",
        -:        -:  983:  "layout_buffer_defaults", "layout_in_defaults", "layout_out_defaults",
        -:        -:  984:  "layout_defaults", YY_NULLPTR
        -:        -:  985:};
        -:        -:  986:#endif
        -:        -:  987:
        -:        -:  988:# ifdef YYPRINT
        -:        -:  989:/* YYTOKNUM[NUM] -- (External) token number corresponding to the
        -:        -:  990:   (internal) symbol number NUM (which must be that of a token).  */
        -:        -:  991:static const yytype_uint16 yytoknum[] =
        -:        -:  992:{
        -:        -:  993:       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
        -:        -:  994:     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
        -:        -:  995:     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
        -:        -:  996:     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
        -:        -:  997:     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
        -:        -:  998:     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
        -:        -:  999:     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
        -:        -: 1000:     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
        -:        -: 1001:     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
        -:        -: 1002:     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
        -:        -: 1003:     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
        -:        -: 1004:     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
        -:        -: 1005:     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
        -:        -: 1006:     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
        -:        -: 1007:     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
        -:        -: 1008:     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
        -:        -: 1009:     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
        -:        -: 1010:     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
        -:        -: 1011:     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
        -:        -: 1012:     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
        -:        -: 1013:     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
        -:        -: 1014:     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
        -:        -: 1015:     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
        -:        -: 1016:     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
        -:        -: 1017:     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
        -:        -: 1018:     505,   506,   507,   508,   509,   510,    40,    41,    91,    93,
        -:        -: 1019:      44,    43,    45,    33,   126,    42,    47,    37,    60,    62,
        -:        -: 1020:      38,    94,   124,    63,    58,    61,    59,   123,   125
        -:        -: 1021:};
        -:        -: 1022:# endif
        -:        -: 1023:
        -:        -: 1024:#define YYPACT_NINF -486
        -:        -: 1025:
        -:        -: 1026:#define yypact_value_is_default(Yystate) \
        -:        -: 1027:  (!!((Yystate) == (-486)))
        -:        -: 1028:
        -:        -: 1029:#define YYTABLE_NINF -406
        -:        -: 1030:
        -:        -: 1031:#define yytable_value_is_error(Yytable_value) \
        -:        -: 1032:  0
        -:        -: 1033:
        -:        -: 1034:  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
        -:        -: 1035:     STATE-NUM.  */
        -:        -: 1036:static const yytype_int16 yypact[] =
        -:        -: 1037:{
        -:        -: 1038:    -163,  -131,    59,  -486,  -132,  -486,  -140,  -486,  -486,  -486,
        -:        -: 1039:    -486,  -112,    85,  5101,  -486,  -486,  -137,  -486,  -486,  -486,
        -:        -: 1040:    -486,  -486,  -486,  -486,   -64,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1041:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1042:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,   -46,
        -:        -: 1043:     -44,  -486,   -39,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1044:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1045:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1046:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1047:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1048:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1049:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1050:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1051:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1052:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1053:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -138,  -486,  -486,
        -:        -: 1054:    5485,  5485,  -486,  -486,  -486,    61,  -108,   -56,   -50,   -47,
        -:        -: 1055:     -36,   -86,  -486,   -80,  -486,  4874,  -486,   -89,  -114,   -82,
        -:        -: 1056:     155,  -126,  -486,   111,  5498,  5508,  5508,  5804,  5570,  5508,
        -:        -: 1057:    5570,  -486,   -68,  -486,  5508,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1058:      35,  -486,  -486,  -486,  -486,  -486,    85,  5328,   -71,  -486,
        -:        -: 1059:    -486,  -486,  -486,  -486,  -486,  5508,  5508,  -486,  5508,  -486,
        -:        -: 1060:    5508,  5508,  -486,  -486,  5804,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1061:    -119,    85,  -486,  -486,  -486,   568,  -486,  -486,   267,   267,
        -:        -: 1062:    -486,  -486,  -486,   267,  -486,  5804,   267,   267,   267,    85,
        -:        -: 1063:    -486,   -48,   -33,  -219,   -31,  -154,  -150,  -144,  -136,  -486,
        -:        -: 1064:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1065:    -486,  5570,  -486,  -486,  4001,   -43,  -486,   -35,    27,    85,
        -:        -: 1066:    1382,  -486,  5328,   -40,  -486,  -486,  -486,   -63,  -162,  -486,
        -:        -: 1067:    -486,  -486,  -105,   -32,   -26,  2178,   -23,    14,   -12,  3495,
        -:        -: 1068:      25,    29,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  4421,
        -:        -: 1069:    4421,  4421,  -486,  -486,  -486,  -486,  -486,    13,  -486,  -486,
        -:        -: 1070:    -486,   -67,  -486,  -486,  -486,     9,   -99,  4631,    32,  -103,
        -:        -: 1071:    4421,    12,   -41,   126,  -127,   122,    41,    34,    11,   138,
        -:        -: 1072:     143,  -164,  -486,  -486,  -123,  -486,    50,    72,  -486,  -486,
        -:        -: 1073:    -486,  -486,   844,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1074:    -486,  -486,  -486,    85,  -486,  -486,  -486,  -211,  3235,  -165,
        -:        -: 1075:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,    70,  -486,
        -:        -: 1076:    4211,  5328,  -486,   -68,  -116,  -486,  -486,  -486,  1639,  -486,
        -:        -: 1077:    4421,  -486,  -119,  -486,    85,  -486,  -486,   170,  2715,  4421,
        -:        -: 1078:    -486,  -486,  -113,  4421,  3757,  -486,  -486,   -75,  -486,  2178,
        -:        -: 1079:    -486,  -486,   160,  4421,  -486,  -486,  4421,    75,  -486,  -486,
        -:        -: 1080:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1081:    -486,  4421,  -486,  4421,  4421,  4421,  4421,  4421,  4421,  4421,
        -:        -: 1082:    4421,  4421,  4421,  4421,  4421,  4421,  4421,  4421,  4421,  4421,
        -:        -: 1083:    4421,  4421,  4421,  4421,  -486,  -486,  -486,   -68,  3235,  -161,
        -:        -: 1084:    3235,  -486,  -486,  3235,  -486,  -486,    74,    85,    56,  5328,
        -:        -: 1085:     -43,    85,  -486,  -486,  -486,  -486,  -486,    79,  -486,  -486,
        -:        -: 1086:    3757,   -65,  -486,   -61,    76,    85,    80,  -486,  1120,  -486,
        -:        -: 1087:      81,    76,  -486,  -486,  -486,  -486,  -486,    12,    12,   -41,
        -:        -: 1088:     -41,   126,   126,   126,   126,  -127,  -127,   122,    41,    34,
        -:        -: 1089:      11,   138,   143,  -234,  -486,   -43,  -486,  3235,  -486,  -226,
        -:        -: 1090:    -486,  -486,  -111,   175,  -486,  -486,  4421,  -486,    66,    87,
        -:        -: 1091:    2178,    68,    71,  2453,  -486,  -486,  4421,  -486,  2975,  -486,
        -:        -: 1092:    -486,   -68,    77,   -53,  4421,  2453,   333,  -486,   -15,  -486,
        -:        -: 1093:    3235,  -486,  -486,  -486,  -486,  -486,  -486,   -43,  -486,    78,
        -:        -: 1094:      76,  -486,  2178,  4421,    82,  -486,  -486,  1903,  2178,   -10,
        -:        -: 1095:    -486,  -486,  -486,  -149,  -486,  -486,  -486,  -486,  -486,  2178,
        -:        -: 1096:    -486
        -:        -: 1097:};
        -:        -: 1098:
        -:        -: 1099:  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
        -:        -: 1100:     Performed when YYTABLE does not specify something else to do.  Zero
        -:        -: 1101:     means the default is an error.  */
        -:        -: 1102:static const yytype_uint16 yydefact[] =
        -:        -: 1103:{
        -:        -: 1104:       4,     0,     0,    12,     0,     1,     2,    14,    15,    16,
        -:        -: 1105:       5,     0,     0,     0,    13,     6,     0,   182,   181,   209,
        -:        -: 1106:     205,   207,   208,   206,   188,   213,   214,   215,   216,   217,
        -:        -: 1107:     218,   219,   220,   221,   210,   211,   212,   222,   223,   224,
        -:        -: 1108:     318,   322,   319,   320,   321,   323,   324,   325,   178,   184,
        -:        -: 1109:     185,   186,   187,   183,   179,   159,   158,   157,   225,   226,
        -:        -: 1110:     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
        -:        -: 1111:     237,   238,   239,   240,   241,   242,   243,   244,   246,   247,
        -:        -: 1112:     249,   250,   252,   253,   254,   255,   256,   258,   259,   260,
        -:        -: 1113:     261,   263,   264,   265,   266,   268,   269,   270,   272,   273,
        -:        -: 1114:     274,   275,   277,   245,   262,   271,   251,   257,   267,   276,
        -:        -: 1115:     278,   279,   280,   281,   282,   283,   248,   284,   285,   286,
        -:        -: 1116:     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
        -:        -: 1117:     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
        -:        -: 1118:     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
        -:        -: 1119:     190,   191,   192,   193,   194,   317,   189,     0,   204,   203,
        -:        -: 1120:     160,   161,   328,   327,   326,     0,     0,     0,     0,     0,
        -:        -: 1121:       0,     0,   180,   153,   395,     3,   394,     0,     0,   112,
        -:        -: 1122:     120,     0,   130,   135,   165,   167,   164,     0,   162,   163,
        -:        -: 1123:     166,   142,   199,   201,   168,   202,    18,   393,   109,   398,
        -:        -: 1124:       0,   421,   422,   423,   424,   396,     0,     0,     0,   188,
        -:        -: 1125:     184,   185,   187,    21,    22,   160,   161,   140,   165,   170,
        -:        -: 1126:     162,   166,   141,   169,     0,     7,     8,     9,    10,    11,
        -:        -: 1127:       0,     0,    20,    19,   106,     0,   397,   110,   120,   120,
        -:        -: 1128:     126,   127,   128,   120,   113,     0,   120,   120,   120,     0,
        -:        -: 1129:     107,    14,    16,   136,     0,   188,   184,   185,   187,   172,
        -:        -: 1130:     399,   413,   415,   417,   419,   173,   171,   143,   174,   406,
        -:        -: 1131:     175,   165,   177,   400,     0,   200,   176,     0,     0,     0,
        -:        -: 1132:       0,   331,     0,     0,   152,   151,   150,   147,     0,   145,
        -:        -: 1133:     149,   155,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1134:       0,     0,    28,    29,    24,    25,    30,    26,    27,     0,
        -:        -: 1135:       0,     0,    54,    55,    56,    57,   361,   353,   357,    23,
        -:        -: 1136:      32,    50,    34,    39,    40,     0,     0,    44,     0,    58,
        -:        -: 1137:       0,    62,    65,    68,    73,    76,    78,    80,    82,    84,
        -:        -: 1138:      86,    88,    90,   103,     0,   343,     0,   142,   346,   359,
        -:        -: 1139:     345,   344,     0,   347,   348,   349,   350,   351,   114,   121,
        -:        -: 1140:     122,   118,   119,   129,   123,   125,   124,   131,     0,   137,
        -:        -: 1141:     115,   416,   418,   420,   414,   195,    58,   105,     0,    48,
        -:        -: 1142:       0,     0,    17,   336,     0,   334,   330,   332,     0,   108,
        -:        -: 1143:       0,   144,     0,   154,     0,   389,   388,     0,     0,     0,
        -:        -: 1144:     392,   390,     0,     0,     0,    51,    52,     0,   352,     0,
        -:        -: 1145:      36,    37,     0,     0,    42,    41,     0,   204,    45,    47,
        -:        -: 1146:      93,    94,    96,    95,    98,    99,   100,   101,   102,    97,
        -:        -: 1147:      92,     0,    53,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1148:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1149:       0,     0,     0,     0,   362,   358,   360,   116,     0,   132,
        -:        -: 1150:       0,   338,   139,     0,   196,   197,     0,     0,     0,   410,
        -:        -: 1151:     337,     0,   333,   329,   148,   146,   156,     0,   383,   382,
        -:        -: 1152:     385,     0,   391,     0,   366,     0,     0,    31,     0,    35,
        -:        -: 1153:       0,    38,    46,    91,    59,    60,    61,    63,    64,    66,
        -:        -: 1154:      67,    71,    72,    69,    70,    74,    75,    77,    79,    81,
        -:        -: 1155:      83,    85,    87,     0,   104,   117,   134,     0,   341,     0,
        -:        -: 1156:     138,   198,     0,   407,   411,   335,     0,   384,     0,     0,
        -:        -: 1157:       0,     0,     0,     0,   354,    33,     0,   133,     0,   339,
        -:        -: 1158:     412,   408,     0,     0,   386,     0,   365,   363,     0,   368,
        -:        -: 1159:       0,   356,   379,   355,    89,   340,   342,   409,   401,     0,
        -:        -: 1160:     387,   381,     0,     0,     0,   369,   373,     0,   377,     0,
        -:        -: 1161:     367,   380,   364,     0,   372,   375,   374,   376,   370,   378,
        -:        -: 1162:     371
        -:        -: 1163:};
        -:        -: 1164:
        -:        -: 1165:  /* YYPGOTO[NTERM-NUM].  */
        -:        -: 1166:static const yytype_int16 yypgoto[] =
        -:        -: 1167:{
        -:        -: 1168:    -486,  -486,  -486,  -486,  -486,  -486,    10,   173,  -486,   -70,
        -:        -: 1169:    -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,  -486,
        -:        -: 1170:    5357,  -486,  -134,  -118,  -146,  -121,   -91,   -90,   -88,   -87,
        -:        -: 1171:     -92,   -85,  -486,  -262,  -141,  -486,  -283,  -286,     5,     8,
        -:        -: 1172:    -486,  -486,  -486,  -486,   121,     6,  -486,  -486,  -486,  -486,
        -:        -: 1173:    -204,   -11,  -486,   -28,  -486,  -486,  -486,  -486,  -115,  -153,
        -:        -: 1174:    -486,    -9,  -252,   -13,  -486,  -486,   -29,  -486,    83,  -265,
        -:        -: 1175:    -106,  -104,  -405,  -486,   -27,  -275,  -485,  -486,  -486,  -182,
        -:        -: 1176:     192,   -37,   -24,  -486,  -486,  -110,  -486,  -486,  -190,  -486,
        -:        -: 1177:    -191,  -486,  -486,  -486,  -486,  -486,  -486,   204,  -486,  -133,
        -:        -: 1178:    -486,   193,  -486,   -83,  -486,   196,   198,   199,   200,  -486
        -:        -: 1179:};
        -:        -: 1180:
        -:        -: 1181:  /* YYDEFGOTO[NTERM-NUM].  */
        -:        -: 1182:static const yytype_int16 yydefgoto[] =
        -:        -: 1183:{
        -:        -: 1184:      -1,     2,    13,     3,   174,     6,   383,    14,   175,   319,
        -:        -: 1185:     320,   321,   490,   322,   323,   324,   325,   326,   327,   328,
        -:        -: 1186:     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
        -:        -: 1187:     339,   340,   341,   342,   343,   431,   344,   378,   345,   346,
        -:        -: 1188:     178,   179,   180,   361,   244,   245,   246,   362,   181,   182,
        -:        -: 1189:     183,   218,   288,   289,   290,   185,   292,   186,   187,   188,
        -:        -: 1190:     189,   221,   275,   379,   192,   193,   194,   195,   280,   281,
        -:        -: 1191:     384,   385,   462,   519,   348,   349,   350,   351,   409,   552,
        -:        -: 1192:     553,   352,   353,   354,   547,   486,   355,   549,   566,   567,
        -:        -: 1193:     568,   569,   356,   480,   528,   529,   357,   196,   197,   198,
        -:        -: 1194:     199,   200,   542,   468,   469,   201,   202,   203,   204,   205
        -:        -: 1195:};
        -:        -: 1196:
        -:        -: 1197:  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
        -:        -: 1198:     positive, shift that token.  If negative, reduce the rule whose
        -:        -: 1199:     number is the opposite.  If YYTABLE_NINF, syntax error.  */
        -:        -: 1200:static const yytype_int16 yytable[] =
        -:        -: 1201:{
        -:        -: 1202:     191,   369,   184,   279,   190,   563,   564,   220,   220,  -405,
        -:        -: 1203:     563,   564,   377,  -402,    11,   387,   402,   451,   176,  -403,
        -:        -: 1204:     397,   177,    16,     7,     8,     9,   453,  -404,   407,     7,
        -:        -: 1205:       8,     9,   220,   220,   538,     4,   220,     1,   284,   274,
        -:        -: 1206:     536,   220,     7,     8,     9,   219,   223,   274,   551,   440,
        -:        -: 1207:     441,   260,   539,   516,   220,   518,   368,   273,   520,     5,
        -:        -: 1208:     551,    12,   220,   220,   458,   220,   206,   220,   220,   259,
        -:        -: 1209:     265,   266,    10,   268,   270,   272,   279,   456,   279,   276,
        -:        -: 1210:     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
        -:        -: 1211:     217,   222,    15,   380,   466,   391,   225,   380,   392,  -405,
        -:        -: 1212:     219,   223,   285,   259,   474,   268,   272,   410,   411,   452,
        -:        -: 1213:     463,   453,   537,   254,   517,   459,   481,  -402,   377,  -403,
        -:        -: 1214:     483,   484,   371,   387,  -404,   580,   372,   220,   377,   220,
        -:        -: 1215:     491,   470,   373,   556,   249,   286,   224,   453,   260,   207,
        -:        -: 1216:     374,   442,   443,   237,   471,   570,   412,   453,   226,   471,
        -:        -: 1217:     250,   248,   393,   454,   227,   394,   259,   228,   415,   239,
        -:        -: 1218:     472,   416,   191,   482,   184,   540,   190,   208,   229,   513,
        -:        -: 1219:     230,   247,   430,   184,   267,   190,   231,   467,   238,   271,
        -:        -: 1220:     176,   190,   487,   177,   279,   453,   418,   234,   235,   -49,
        -:        -: 1221:     274,   413,   530,   253,   191,   453,   531,   484,   277,   453,
        -:        -: 1222:     485,   240,   241,   242,   559,   515,   282,   453,   -21,   248,
        -:        -: 1223:     248,   283,   390,   456,   248,   380,   278,   248,   248,   248,
        -:        -: 1224:     436,   437,   347,   -22,   271,   370,   190,   461,   220,   247,
        -:        -: 1225:     247,   382,   363,   398,   247,   220,   389,   247,   247,   247,
        -:        -: 1226:     287,   291,   381,   543,   395,   359,     7,     8,     9,   360,
        -:        -: 1227:     396,   220,   364,   365,   366,   546,   162,   163,   164,   367,
        -:        -: 1228:     271,   560,   190,   565,   400,   467,   414,   191,   578,   191,
        -:        -: 1229:     399,   239,   251,     8,   252,   492,   485,   433,   434,   435,
        -:        -: 1230:     573,   403,   347,   448,   271,   404,   190,   572,   419,   557,
        -:        -: 1231:     493,   408,   575,   577,   501,   502,   503,   504,   438,   439,
        -:        -: 1232:     444,   445,   497,   498,   577,   447,   150,   151,   152,   153,
        -:        -: 1233:     154,   446,   514,   240,   241,   242,   220,   461,   449,   461,
        -:        -: 1234:     499,   500,   461,   505,   506,   450,   234,   220,   -48,   464,
        -:        -: 1235:     477,   489,   -43,   521,   523,   526,   453,   533,   541,   347,
        -:        -: 1236:     535,   271,   544,   190,   545,   548,   550,   562,   232,   243,
        -:        -: 1237:     162,   163,   164,   558,   571,   507,   574,   508,   511,   358,
        -:        -: 1238:     509,   522,   510,   561,   475,   388,   512,   525,   191,   236,
        -:        -: 1239:     527,   478,   488,   457,   479,   191,   461,   576,   579,   233,
        -:        -: 1240:     261,   269,   262,   263,   264,   347,   524,   271,     0,   190,
        -:        -: 1241:       0,   347,     0,     0,     0,   554,   347,   461,   271,     0,
        -:        -: 1242:     190,     0,   287,     0,   476,     0,     0,     0,     0,   461,
        -:        -: 1243:       0,     0,  -111,     0,     0,     0,     0,     0,   150,   151,
        -:        -: 1244:     152,   153,   154,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1245:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1246:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1247:       0,     0,     0,     0,     0,     0,   191,     0,     0,     0,
        -:        -: 1248:       0,   243,   162,   163,   164,     0,     0,   347,     0,     0,
        -:        -: 1249:       0,     0,     0,     0,     0,   347,     0,   271,     0,   190,
        -:        -: 1250:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1251:       0,     0,     0,     0,     0,   532,     0,     0,     0,     0,
        -:        -: 1252:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1253:       0,     0,     0,     0,     0,     0,     0,   347,     0,   271,
        -:        -: 1254:     347,   190,   271,     0,   190,     0,     0,     0,     0,     0,
        -:        -: 1255:       0,     0,   347,     0,   271,     0,   190,     0,     0,     0,
        -:        -: 1256:       0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
        -:        -: 1257:       0,   271,     0,   190,   347,   347,   271,   271,   190,   190,
        -:        -: 1258:       0,     0,     0,     0,     0,     0,   347,     0,   271,     0,
        -:        -: 1259:     190,    17,    18,    19,    20,    21,    22,    23,   293,    24,
        -:        -: 1260:     294,   295,     0,   296,   297,   298,   299,   300,     0,     0,
        -:        -: 1261:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 1262:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 1263:      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        -:        -: 1264:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 1265:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 1266:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 1267:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 1268:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 1269:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 1270:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 1271:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 1272:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 1273:     145,   146,   147,   148,   149,     0,     0,     0,     0,   150,
        -:        -: 1274:     151,   152,   153,   154,   155,   156,   157,   158,   301,   213,
        -:        -: 1275:     159,   214,   302,   303,   304,   305,   306,   307,   308,     0,
        -:        -: 1276:       0,     0,   309,   310,     0,     0,     0,     0,     0,     0,
        -:        -: 1277:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1278:       0,   160,   161,   162,   163,   164,     0,   165,     0,     0,
        -:        -: 1279:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1280:     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1281:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1282:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1283:       0,     0,     0,     0,     0,   172,   173,     0,     0,     0,
        -:        -: 1284:       0,     0,     0,     0,   311,     0,     0,     0,     0,   312,
        -:        -: 1285:     313,   314,   315,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1286:       0,     0,     0,     0,   316,   317,   318,    17,    18,    19,
        -:        -: 1287:      20,    21,    22,    23,   293,    24,   294,   295,     0,   296,
        -:        -: 1288:     297,   298,   299,   300,     0,     0,    25,    26,    27,    28,
        -:        -: 1289:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 1290:      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
        -:        -: 1291:      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        -:        -: 1292:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 1293:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 1294:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 1295:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 1296:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 1297:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 1298:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 1299:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 1300:     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
        -:        -: 1301:     149,     0,     0,     0,     0,   150,   151,   152,   153,   154,
        -:        -: 1302:     155,   156,   157,   158,   301,   213,   159,   214,   302,   303,
        -:        -: 1303:     304,   305,   306,   307,   308,     0,     0,     0,   309,   310,
        -:        -: 1304:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1305:       0,     0,     0,     0,     0,     0,     0,   160,   161,   162,
        -:        -: 1306:     163,   164,     0,   165,     0,     0,     0,     0,     0,     0,
        -:        -: 1307:       0,     0,     0,     0,     0,     0,   171,     0,     0,     0,
        -:        -: 1308:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1309:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1310:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1311:       0,   172,   173,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1312:     311,     0,     0,     0,     0,   312,   313,   314,   315,     0,
        -:        -: 1313:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1314:     316,   317,   455,    17,    18,    19,    20,    21,    22,    23,
        -:        -: 1315:     293,    24,   294,   295,     0,   296,   297,   298,   299,   300,
        -:        -: 1316:       0,     0,    25,    26,    27,    28,    29,    30,    31,    32,
        -:        -: 1317:      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -: 1318:      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        -:        -: 1319:      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        -:        -: 1320:      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        -:        -: 1321:      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        -:        -: 1322:      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        -:        -: 1323:      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
        -:        -: 1324:     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
        -:        -: 1325:     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
        -:        -: 1326:     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
        -:        -: 1327:     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
        -:        -: 1328:     143,   144,   145,   146,   147,   148,   149,     0,     0,     0,
        -:        -: 1329:       0,   150,   151,   152,   153,   154,   155,   156,   157,   158,
        -:        -: 1330:     301,   213,   159,   214,   302,   303,   304,   305,   306,   307,
        -:        -: 1331:     308,     0,     0,     0,   309,   310,     0,     0,     0,     0,
        -:        -: 1332:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1333:       0,     0,     0,   160,   161,   162,   163,   164,     0,   165,
        -:        -: 1334:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1335:       0,     0,   171,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1336:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1337:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1338:       0,     0,     0,     0,     0,     0,     0,   172,   173,     0,
        -:        -: 1339:       0,     0,     0,     0,     0,     0,   311,     0,     0,     0,
        -:        -: 1340:       0,   312,   313,   314,   315,    17,    18,    19,    20,    21,
        -:        -: 1341:      22,    23,     0,   209,     0,     0,   316,   317,   534,     0,
        -:        -: 1342:       0,     0,     0,     0,    25,    26,    27,    28,    29,    30,
        -:        -: 1343:      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
        -:        -: 1344:      41,    42,    43,    44,    45,    46,    47,    48,   210,   211,
        -:        -: 1345:      51,   212,    53,    54,    55,    56,    57,    58,    59,    60,
        -:        -: 1346:      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        -:        -: 1347:      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        -:        -: 1348:      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        -:        -: 1349:      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
        -:        -: 1350:     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
        -:        -: 1351:     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
        -:        -: 1352:     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
        -:        -: 1353:     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
        -:        -: 1354:     141,   142,   143,   144,   145,   146,   147,   148,   149,     0,
        -:        -: 1355:       0,     0,     0,   150,   151,   152,   153,   154,   155,   156,
        -:        -: 1356:     157,   158,     0,     0,   159,     0,     0,     0,     0,     0,
        -:        -: 1357:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1358:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1359:       0,     0,     0,     0,     0,   215,   216,   162,   163,   164,
        -:        -: 1360:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1361:       0,     0,     0,     0,   171,     0,     0,     0,     0,     0,
        -:        -: 1362:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1363:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1364:       0,     0,     0,     0,     0,     0,     0,     0,     0,   172,
        -:        -: 1365:     173,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1366:       0,     0,    17,    18,    19,    20,    21,    22,    23,     0,
        -:        -: 1367:     209,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1368:     386,    25,    26,    27,    28,    29,    30,    31,    32,    33,
        -:        -: 1369:      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
        -:        -: 1370:      44,    45,    46,    47,    48,   210,   211,    51,   212,    53,
        -:        -: 1371:      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
        -:        -: 1372:      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
        -:        -: 1373:      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
        -:        -: 1374:      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
        -:        -: 1375:      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
        -:        -: 1376:     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
        -:        -: 1377:     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
        -:        -: 1378:     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
        -:        -: 1379:     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
        -:        -: 1380:     144,   145,   146,   147,   148,   149,     0,     0,     0,     0,
        -:        -: 1381:     150,   151,   152,   153,   154,   155,   156,   157,   158,     0,
        -:        -: 1382:       0,   159,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1383:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1384:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1385:       0,     0,   215,   216,   162,   163,   164,     0,     0,     0,
        -:        -: 1386:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1387:       0,   171,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1388:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1389:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1390:       0,     0,     0,     0,     0,     0,   172,   173,     0,     0,
        -:        -: 1391:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1392:       0,     0,     0,     0,     0,     0,    17,    18,    19,    20,
        -:        -: 1393:      21,    22,    23,   293,    24,   294,   295,   473,   296,   297,
        -:        -: 1394:     298,   299,   300,   563,   564,    25,    26,    27,    28,    29,
        -:        -: 1395:      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
        -:        -: 1396:      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
        -:        -: 1397:      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        -:        -: 1398:      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        -:        -: 1399:      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        -:        -: 1400:      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        -:        -: 1401:      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
        -:        -: 1402:     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
        -:        -: 1403:     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
        -:        -: 1404:     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
        -:        -: 1405:     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
        -:        -: 1406:     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
        -:        -: 1407:       0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
        -:        -: 1408:     156,   157,   158,   301,   213,   159,   214,   302,   303,   304,
        -:        -: 1409:     305,   306,   307,   308,     0,     0,     0,   309,   310,     0,
        -:        -: 1410:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1411:       0,     0,     0,     0,     0,     0,   160,   161,   162,   163,
        -:        -: 1412:     164,     0,   165,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1413:       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
        -:        -: 1414:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1415:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1416:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1417:     172,   173,     0,     0,     0,     0,     0,     0,     0,   311,
        -:        -: 1418:       0,     0,     0,     0,   312,   313,   314,   315,     0,     0,
        -:        -: 1419:       0,     0,     0,     0,     0,     0,     0,     0,     0,   316,
        -:        -: 1420:     317,    17,    18,    19,    20,    21,    22,    23,   293,    24,
        -:        -: 1421:     294,   295,     0,   296,   297,   298,   299,   300,     0,     0,
        -:        -: 1422:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 1423:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 1424:      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        -:        -: 1425:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 1426:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 1427:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 1428:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 1429:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 1430:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 1431:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 1432:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 1433:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 1434:     145,   146,   147,   148,   149,     0,     0,     0,     0,   150,
        -:        -: 1435:     151,   152,   153,   154,   155,   156,   157,   158,   301,   213,
        -:        -: 1436:     159,   214,   302,   303,   304,   305,   306,   307,   308,     0,
        -:        -: 1437:       0,     0,   309,   310,     0,     0,     0,     0,     0,     0,
        -:        -: 1438:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1439:       0,   160,   161,   162,   163,   164,     0,   165,     0,     0,
        -:        -: 1440:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1441:     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1442:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1443:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1444:       0,     0,     0,     0,     0,   172,   173,     0,     0,     0,
        -:        -: 1445:       0,     0,     0,     0,   311,     0,     0,     0,     0,   312,
        -:        -: 1446:     313,   314,   315,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1447:       0,     0,     0,     0,   316,   317,    17,    18,    19,    20,
        -:        -: 1448:      21,    22,    23,   293,    24,   294,   295,     0,   296,   297,
        -:        -: 1449:     298,   299,   300,     0,     0,    25,    26,    27,    28,    29,
        -:        -: 1450:      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
        -:        -: 1451:      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
        -:        -: 1452:      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        -:        -: 1453:      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        -:        -: 1454:      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        -:        -: 1455:      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        -:        -: 1456:      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
        -:        -: 1457:     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
        -:        -: 1458:     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
        -:        -: 1459:     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
        -:        -: 1460:     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
        -:        -: 1461:     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
        -:        -: 1462:       0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
        -:        -: 1463:     156,   157,   158,   301,   213,   159,   214,   302,   303,   304,
        -:        -: 1464:     305,   306,   307,   308,     0,     0,     0,   309,   310,     0,
        -:        -: 1465:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1466:       0,     0,     0,     0,     0,     0,   160,   161,   162,   163,
        -:        -: 1467:     164,     0,   165,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1468:       0,     0,     0,     0,     0,   171,     0,     0,     0,     0,
        -:        -: 1469:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1470:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1471:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1472:     172,   173,     0,     0,     0,     0,     0,     0,     0,   311,
        -:        -: 1473:       0,     0,     0,     0,   312,   313,   314,   315,    17,    18,
        -:        -: 1474:      19,    20,    21,    22,    23,     0,    24,     0,     0,   316,
        -:        -: 1475:     235,     0,     0,     0,     0,     0,     0,    25,    26,    27,
        -:        -: 1476:      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
        -:        -: 1477:      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
        -:        -: 1478:      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        -:        -: 1479:      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        -:        -: 1480:      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        -:        -: 1481:      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        -:        -: 1482:      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        -:        -: 1483:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -: 1484:     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
        -:        -: 1485:     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
        -:        -: 1486:     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
        -:        -: 1487:     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
        -:        -: 1488:     148,   149,     0,     0,     0,     0,   150,   151,   152,   153,
        -:        -: 1489:     154,   155,   156,   157,   158,     0,   213,   159,   214,   302,
        -:        -: 1490:     303,   304,   305,   306,   307,   308,     0,     0,     0,   309,
        -:        -: 1491:     310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1492:       0,     0,     0,     0,     0,     0,     0,     0,   160,   161,
        -:        -: 1493:     162,   163,   164,     0,   165,     0,     0,     0,     0,     0,
        -:        -: 1494:       0,     0,     0,     0,     0,     0,     0,   171,     0,     0,
        -:        -: 1495:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1496:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1497:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1498:       0,     0,   172,   173,     0,     0,     0,     0,     0,     0,
        -:        -: 1499:       0,   311,     0,     0,     0,     0,   312,   313,   314,   315,
        -:        -: 1500:      19,    20,    21,    22,    23,     0,     0,     0,     0,     0,
        -:        -: 1501:       0,   316,     0,     0,     0,     0,     0,    25,    26,    27,
        -:        -: 1502:      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
        -:        -: 1503:      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
        -:        -: 1504:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1505:      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        -:        -: 1506:      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        -:        -: 1507:      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        -:        -: 1508:      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        -:        -: 1509:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -: 1510:     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
        -:        -: 1511:     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
        -:        -: 1512:     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
        -:        -: 1513:     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
        -:        -: 1514:     148,   149,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1515:       0,   155,     0,   157,   158,     0,   213,   159,   214,   302,
        -:        -: 1516:     303,   304,   305,   306,   307,   308,     0,     0,     0,   309,
        -:        -: 1517:     310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1518:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1519:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1520:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1521:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1522:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1523:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1524:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1525:       0,   311,     0,     0,     0,     0,   312,   313,   314,   315,
        -:        -: 1526:      19,    20,    21,    22,    23,     0,     0,     0,     0,     0,
        -:        -: 1527:       0,     0,   460,   555,     0,     0,     0,    25,    26,    27,
        -:        -: 1528:      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
        -:        -: 1529:      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
        -:        -: 1530:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1531:      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        -:        -: 1532:      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        -:        -: 1533:      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        -:        -: 1534:      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        -:        -: 1535:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -: 1536:     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
        -:        -: 1537:     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
        -:        -: 1538:     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
        -:        -: 1539:     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
        -:        -: 1540:     148,   149,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1541:       0,   155,     0,   157,   158,     0,   213,   159,   214,   302,
        -:        -: 1542:     303,   304,   305,   306,   307,   308,     0,     0,     0,   309,
        -:        -: 1543:     310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1544:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1545:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1546:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1547:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1548:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1549:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1550:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1551:       0,   311,     0,     0,     0,     0,   312,   313,   314,   315,
        -:        -: 1552:      19,    20,    21,    22,    23,     0,     0,     0,     0,     0,
        -:        -: 1553:       0,     0,   460,     0,     0,     0,     0,    25,    26,    27,
        -:        -: 1554:      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
        -:        -: 1555:      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
        -:        -: 1556:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1557:      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        -:        -: 1558:      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        -:        -: 1559:      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        -:        -: 1560:      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        -:        -: 1561:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -: 1562:     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
        -:        -: 1563:     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
        -:        -: 1564:     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
        -:        -: 1565:     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
        -:        -: 1566:     148,   149,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1567:       0,   155,     0,   157,   158,     0,   213,   159,   214,   302,
        -:        -: 1568:     303,   304,   305,   306,   307,   308,     0,     0,     0,   309,
        -:        -: 1569:     310,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1570:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1571:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1572:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1573:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1574:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1575:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1576:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1577:       0,   311,     0,     0,     0,     0,   312,   313,   314,   315,
        -:        -: 1578:      17,    18,    19,    20,    21,    22,    23,     0,   209,     0,
        -:        -: 1579:       0,   401,     0,     0,     0,     0,     0,     0,     0,    25,
        -:        -: 1580:      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
        -:        -: 1581:      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
        -:        -: 1582:      46,    47,    48,   210,   211,    51,   212,    53,    54,    55,
        -:        -: 1583:      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        -:        -: 1584:      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        -:        -: 1585:      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        -:        -: 1586:      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        -:        -: 1587:      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
        -:        -: 1588:     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
        -:        -: 1589:     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
        -:        -: 1590:     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
        -:        -: 1591:     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
        -:        -: 1592:     146,   147,   148,   149,     0,     0,     0,     0,   150,   151,
        -:        -: 1593:     152,   153,   154,   155,   156,   157,   158,     0,   213,   159,
        -:        -: 1594:     214,   302,   303,   304,   305,   306,   307,   308,     0,     0,
        -:        -: 1595:       0,   309,   310,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1596:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1597:     215,   216,   162,   163,   164,     0,     0,     0,     0,     0,
        -:        -: 1598:       0,     0,     0,     0,     0,     0,     0,     0,     0,   171,
        -:        -: 1599:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1600:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1601:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1602:       0,     0,     0,     0,   172,   173,    19,    20,    21,    22,
        -:        -: 1603:      23,     0,     0,   311,     0,     0,     0,     0,   312,   313,
        -:        -: 1604:     314,   315,     0,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1605:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1606:      42,    43,    44,    45,    46,    47,     0,     0,     0,     0,
        -:        -: 1607:       0,     0,     0,     0,     0,     0,    58,    59,    60,    61,
        -:        -: 1608:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1609:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1610:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1611:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1612:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1613:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1614:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1615:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1616:     142,   143,   144,   145,   146,   147,   148,   149,     0,     0,
        -:        -: 1617:       0,     0,     0,     0,     0,     0,     0,   155,     0,   157,
        -:        -: 1618:     158,     0,   213,   159,   214,   302,   303,   304,   305,   306,
        -:        -: 1619:     307,   308,     0,     0,     0,   309,   310,     0,     0,     0,
        -:        -: 1620:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1621:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1622:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1623:       0,     0,     0,     0,     0,     0,    19,    20,    21,    22,
        -:        -: 1624:      23,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1625:       0,     0,     0,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1626:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1627:      42,    43,    44,    45,    46,    47,     0,   311,     0,     0,
        -:        -: 1628:     375,     0,   312,   313,   314,   315,    58,    59,    60,    61,
        -:        -: 1629:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1630:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1631:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1632:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1633:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1634:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1635:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1636:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1637:     142,   143,   144,   145,   146,   147,   148,   149,     0,     0,
        -:        -: 1638:       0,     0,     0,     0,     0,     0,     0,   155,     0,   157,
        -:        -: 1639:     158,     0,   213,   159,   214,   302,   303,   304,   305,   306,
        -:        -: 1640:     307,   308,     0,     0,     0,   309,   310,     0,     0,     0,
        -:        -: 1641:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1642:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1643:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1644:       0,     0,     0,     0,     0,     0,    19,    20,    21,    22,
        -:        -: 1645:      23,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1646:       0,     0,     0,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1647:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1648:      42,    43,    44,    45,    46,    47,     0,   311,     0,     0,
        -:        -: 1649:     465,     0,   312,   313,   314,   315,    58,    59,    60,    61,
        -:        -: 1650:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1651:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1652:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1653:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1654:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1655:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1656:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1657:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1658:     142,   143,   144,   145,   146,   147,   148,   149,     0,     0,
        -:        -: 1659:       0,     0,     0,     0,     0,     0,     0,   155,     0,   157,
        -:        -: 1660:     158,     0,   213,   159,   214,   302,   303,   304,   305,   306,
        -:        -: 1661:     307,   308,     0,     0,     0,   309,   310,     0,     0,     0,
        -:        -: 1662:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1663:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1664:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1665:       0,     0,     0,     0,     0,     0,    19,    20,    21,    22,
        -:        -: 1666:      23,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1667:       0,     0,     0,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1668:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1669:      42,    43,    44,    45,    46,    47,     0,   311,     0,     0,
        -:        -: 1670:       0,     0,   312,   313,   314,   315,    58,    59,    60,    61,
        -:        -: 1671:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1672:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1673:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1674:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1675:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1676:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1677:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1678:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1679:     142,   143,   144,   145,   146,   147,   148,   149,     0,     0,
        -:        -: 1680:       0,     0,     0,     0,     0,     0,     0,   155,     0,   157,
        -:        -: 1681:     417,     0,   213,   159,   214,   302,   303,   304,   305,   306,
        -:        -: 1682:     307,   308,     0,     0,     0,   309,   310,     0,     0,     0,
        -:        -: 1683:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1684:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1685:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1686:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1687:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1688:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1689:       0,     0,     0,     0,     0,     0,     0,    17,    18,    19,
        -:        -: 1690:      20,    21,    22,    23,     0,    24,     0,   311,     0,     0,
        -:        -: 1691:       0,     0,   312,   313,   314,   315,    25,    26,    27,    28,
        -:        -: 1692:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 1693:      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
        -:        -: 1694:      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        -:        -: 1695:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 1696:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 1697:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 1698:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 1699:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 1700:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 1701:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 1702:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 1703:     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
        -:        -: 1704:     149,     0,     0,     0,     0,   150,   151,   152,   153,   154,
        -:        -: 1705:     155,   156,   157,   158,     0,     0,   159,     0,     0,     0,
        -:        -: 1706:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1707:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1708:       0,     0,     0,     0,     0,     0,     0,   160,   161,   162,
        -:        -: 1709:     163,   164,     0,   165,     0,    12,     0,     0,     0,     0,
        -:        -: 1710:       0,   166,   167,   168,   169,   170,   171,     0,     0,     0,
        -:        -: 1711:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1712:       0,     0,     0,     0,    17,    18,    19,    20,    21,    22,
        -:        -: 1713:      23,     0,    24,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1714:       0,   172,   173,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1715:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1716:      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 1717:      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        -:        -: 1718:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1719:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1720:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1721:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1722:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1723:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1724:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1725:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1726:     142,   143,   144,   145,   146,   147,   148,   149,     0,     0,
        -:        -: 1727:       0,     0,   150,   151,   152,   153,   154,   155,   156,   157,
        -:        -: 1728:     158,     0,     0,   159,     0,     0,     0,     0,     0,     0,
        -:        -: 1729:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1730:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1731:       0,     0,     0,     0,   160,   161,   162,   163,   164,     0,
        -:        -: 1732:     165,     0,     0,     0,     0,     0,     0,     0,   166,   167,
        -:        -: 1733:     168,   169,   170,   171,     0,     0,     0,     0,     0,     0,
        -:        -: 1734:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1735:       0,    17,    18,    19,    20,    21,    22,    23,     0,   209,
        -:        -: 1736:       0,     0,     0,     0,     0,     0,     0,     0,   172,   173,
        -:        -: 1737:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 1738:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 1739:      45,    46,    47,    48,   210,   211,    51,   212,    53,    54,
        -:        -: 1740:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 1741:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 1742:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 1743:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 1744:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 1745:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 1746:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 1747:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 1748:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 1749:     145,   146,   147,   148,   149,     0,     0,     0,     0,   150,
        -:        -: 1750:     151,   152,   153,   154,   155,   156,   157,   158,    17,    18,
        -:        -: 1751:     159,     0,     0,     0,     0,     0,   209,     0,     0,     0,
        -:        -: 1752:       0,    17,    18,     0,     0,     0,     0,     0,     0,   255,
        -:        -: 1753:       0,    17,    18,     0,     0,     0,     0,     0,     0,   209,
        -:        -: 1754:       0,   215,   216,   162,   163,   164,     0,     0,     0,     0,
        -:        -: 1755:      48,   210,   211,    51,   212,    53,    54,    55,    56,    57,
        -:        -: 1756:     171,     0,     0,    48,   256,   257,    51,   258,    53,    54,
        -:        -: 1757:      55,    56,    57,    48,   210,   211,    51,   212,    53,    54,
        -:        -: 1758:      55,    56,    57,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1759:       0,     0,     0,    17,    18,   172,   173,     0,     0,     0,
        -:        -: 1760:       0,    24,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1761:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1762:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1763:       0,     0,     0,     0,     0,    48,    49,    50,    51,    52,
        -:        -: 1764:      53,    54,    55,    56,    57,     0,     0,     0,     0,     0,
        -:        -: 1765:       0,   376,     0,     0,     0,     0,   150,   151,   152,   153,
        -:        -: 1766:     154,     0,   156,     0,     0,     0,   213,     0,   214,   150,
        -:        -: 1767:     151,   152,   153,   154,     0,   156,     0,     0,     0,   150,
        -:        -: 1768:     151,   152,   153,   154,     0,   156,   405,   406,     0,     0,
        -:        -: 1769:       0,     0,     0,     0,     0,     0,     0,     0,   215,   216,
        -:        -: 1770:     162,   163,   164,     0,     0,     0,     0,   432,     0,     0,
        -:        -: 1771:       0,   215,   216,   162,   163,   164,     0,   171,     0,     0,
        -:        -: 1772:       0,   215,   216,   162,   163,   164,     0,     0,     0,     0,
        -:        -: 1773:     171,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1774:     171,   150,   151,   152,   153,   154,     0,   156,     0,     0,
        -:        -: 1775:       0,     0,   172,   173,     0,     0,     0,   376,     0,     0,
        -:        -: 1776:       0,     0,     0,     0,     0,   172,   173,   376,     0,     0,
        -:        -: 1777:       0,     0,     0,     0,     0,   172,   173,     0,     0,     0,
        -:        -: 1778:       0,     0,     0,   215,   216,   162,   163,   164,     0,     0,
        -:        -: 1779:       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1780:       0,     0,   171,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1781:     494,   495,   496,   376,   376,   376,   376,   376,   376,   376,
        -:        -: 1782:     376,   376,   376,   376,   376,   376,   376,   376,   376,    19,
        -:        -: 1783:      20,    21,    22,    23,     0,     0,     0,   172,   173,     0,
        -:        -: 1784:       0,     0,     0,     0,     0,     0,    25,    26,    27,    28,
        -:        -: 1785:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 1786:      39,    40,    41,    42,    43,    44,    45,    46,    47,     0,
        -:        -: 1787:       0,     0,     0,     0,     0,     0,     0,     0,     0,    58,
        -:        -: 1788:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 1789:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 1790:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 1791:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 1792:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 1793:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 1794:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 1795:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 1796:     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
        -:        -: 1797:     149,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        -:        -: 1798:     155,     0,   157,   158,     0,     0,   159
        -:        -: 1799:};
        -:        -: 1800:
        -:        -: 1801:static const yytype_int16 yycheck[] =
        -:        -: 1802:{
        -:        -: 1803:      13,   253,    13,   207,    13,    20,    21,   160,   161,   163,
        -:        -: 1804:      20,    21,   274,   163,     4,   280,   299,   181,    13,   163,
        -:        -: 1805:     295,    13,    12,   161,   162,   163,   260,   163,   311,   161,
        -:        -: 1806:     162,   163,   185,   186,   260,   166,   189,   200,   157,   258,
        -:        -: 1807:     274,   194,   161,   162,   163,   160,   161,   258,   533,   176,
        -:        -: 1808:     177,   184,   278,   458,   207,   460,   275,   190,   463,     0,
        -:        -: 1809:     545,   201,   215,   216,   275,   218,   203,   220,   221,   184,
        -:        -: 1810:     185,   186,   204,   188,   189,   190,   280,   352,   282,   194,
        -:        -: 1811:     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
        -:        -: 1812:     160,   161,   204,   258,   380,   257,   204,   258,   260,   163,
        -:        -: 1813:     215,   216,   221,   218,   390,   220,   221,   174,   175,   273,
        -:        -: 1814:     275,   260,   517,   183,   275,   367,   399,   163,   380,   163,
        -:        -: 1815:     403,   404,   276,   388,   163,   274,   276,   280,   390,   282,
        -:        -: 1816:     413,   383,   276,   538,   260,   254,   165,   260,   271,   277,
        -:        -: 1817:     276,   268,   269,   257,   260,   550,   213,   260,   204,   260,
        -:        -: 1818:     276,   180,   257,   276,   204,   260,   271,   204,   257,     4,
        -:        -: 1819:     276,   260,   175,   276,   175,   276,   175,   157,   204,   452,
        -:        -: 1820:     256,   180,   275,   184,   187,   184,   256,   381,   260,   190,
        -:        -: 1821:     175,   190,   257,   175,   388,   260,   327,   276,   277,   256,
        -:        -: 1822:     258,   258,   257,   183,   207,   260,   257,   480,   163,   260,
        -:        -: 1823:     404,    46,    47,    48,   257,   457,   277,   260,   256,   238,
        -:        -: 1824:     239,   224,   275,   488,   243,   258,   206,   246,   247,   248,
        -:        -: 1825:     261,   262,   235,   256,   235,   256,   235,   368,   381,   238,
        -:        -: 1826:     239,   204,   245,   256,   243,   388,   276,   246,   247,   248,
        -:        -: 1827:     230,   231,   277,   526,   276,   239,   161,   162,   163,   243,
        -:        -: 1828:     276,   404,   246,   247,   248,   530,   195,   196,   197,   249,
        -:        -: 1829:     271,   544,   271,   278,   276,   469,   257,   280,   278,   282,
        -:        -: 1830:     256,     4,   161,   162,   163,   416,   480,   265,   266,   267,
        -:        -: 1831:     563,   256,   295,   272,   295,   256,   295,   562,   256,   541,
        -:        -: 1832:     431,   278,   567,   568,   440,   441,   442,   443,   172,   173,
        -:        -: 1833:     178,   179,   436,   437,   579,   271,   151,   152,   153,   154,
        -:        -: 1834:     155,   270,   453,    46,    47,    48,   469,   458,   180,   460,
        -:        -: 1835:     438,   439,   463,   444,   445,   182,   276,   480,   256,   259,
        -:        -: 1836:     160,   171,   257,   259,   278,   256,   260,   257,   163,   352,
        -:        -: 1837:     259,   352,   276,   352,   257,   277,   275,    14,   175,   194,
        -:        -: 1838:     195,   196,   197,   276,   276,   446,   274,   447,   450,   238,
        -:        -: 1839:     448,   467,   449,   545,   392,   282,   451,   471,   381,   177,
        -:        -: 1840:     480,   398,   409,   363,   398,   388,   517,   567,   569,   175,
        -:        -: 1841:     184,   188,   184,   184,   184,   398,   469,   398,    -1,   398,
        -:        -: 1842:      -1,   404,    -1,    -1,    -1,   536,   409,   538,   409,    -1,
        -:        -: 1843:     409,    -1,   392,    -1,   394,    -1,    -1,    -1,    -1,   550,
        -:        -: 1844:      -1,    -1,   257,    -1,    -1,    -1,    -1,    -1,   151,   152,
        -:        -: 1845:     153,   154,   155,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1846:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1847:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1848:      -1,    -1,    -1,    -1,    -1,    -1,   469,    -1,    -1,    -1,
        -:        -: 1849:      -1,   194,   195,   196,   197,    -1,    -1,   480,    -1,    -1,
        -:        -: 1850:      -1,    -1,    -1,    -1,    -1,   488,    -1,   488,    -1,   488,
        -:        -: 1851:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1852:      -1,    -1,    -1,    -1,    -1,   485,    -1,    -1,    -1,    -1,
        -:        -: 1853:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1854:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,   530,
        -:        -: 1855:     533,   530,   533,    -1,   533,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1856:      -1,    -1,   545,    -1,   545,    -1,   545,    -1,    -1,    -1,
        -:        -: 1857:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   562,
        -:        -: 1858:      -1,   562,    -1,   562,   567,   568,   567,   568,   567,   568,
        -:        -: 1859:      -1,    -1,    -1,    -1,    -1,    -1,   579,    -1,   579,    -1,
        -:        -: 1860:     579,     3,     4,     5,     6,     7,     8,     9,    10,    11,
        -:        -: 1861:      12,    13,    -1,    15,    16,    17,    18,    19,    -1,    -1,
        -:        -: 1862:      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 1863:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 1864:      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 1865:      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        -:        -: 1866:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 1867:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 1868:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 1869:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 1870:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 1871:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 1872:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 1873:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 1874:     142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,   151,
        -:        -: 1875:     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
        -:        -: 1876:     162,   163,   164,   165,   166,   167,   168,   169,   170,    -1,
        -:        -: 1877:      -1,    -1,   174,   175,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1878:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1879:      -1,   193,   194,   195,   196,   197,    -1,   199,    -1,    -1,
        -:        -: 1880:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1881:     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1882:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1883:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1884:      -1,    -1,    -1,    -1,    -1,   247,   248,    -1,    -1,    -1,
        -:        -: 1885:      -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,   261,
        -:        -: 1886:     262,   263,   264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1887:      -1,    -1,    -1,    -1,   276,   277,   278,     3,     4,     5,
        -:        -: 1888:       6,     7,     8,     9,    10,    11,    12,    13,    -1,    15,
        -:        -: 1889:      16,    17,    18,    19,    -1,    -1,    22,    23,    24,    25,
        -:        -: 1890:      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
        -:        -: 1891:      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
        -:        -: 1892:      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        -:        -: 1893:      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        -:        -: 1894:      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        -:        -: 1895:      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        -:        -: 1896:      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        -:        -: 1897:      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
        -:        -: 1898:     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
        -:        -: 1899:     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
        -:        -: 1900:     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
        -:        -: 1901:     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
        -:        -: 1902:     146,    -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,
        -:        -: 1903:     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
        -:        -: 1904:     166,   167,   168,   169,   170,    -1,    -1,    -1,   174,   175,
        -:        -: 1905:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1906:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,   194,   195,
        -:        -: 1907:     196,   197,    -1,   199,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1908:      -1,    -1,    -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,
        -:        -: 1909:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1910:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1911:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1912:      -1,   247,   248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1913:     256,    -1,    -1,    -1,    -1,   261,   262,   263,   264,    -1,
        -:        -: 1914:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1915:     276,   277,   278,     3,     4,     5,     6,     7,     8,     9,
        -:        -: 1916:      10,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
        -:        -: 1917:      -1,    -1,    22,    23,    24,    25,    26,    27,    28,    29,
        -:        -: 1918:      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
        -:        -: 1919:      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
        -:        -: 1920:      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
        -:        -: 1921:      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
        -:        -: 1922:      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
        -:        -: 1923:      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
        -:        -: 1924:      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
        -:        -: 1925:     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
        -:        -: 1926:     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
        -:        -: 1927:     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
        -:        -: 1928:     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
        -:        -: 1929:     140,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
        -:        -: 1930:      -1,   151,   152,   153,   154,   155,   156,   157,   158,   159,
        -:        -: 1931:     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
        -:        -: 1932:     170,    -1,    -1,    -1,   174,   175,    -1,    -1,    -1,    -1,
        -:        -: 1933:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1934:      -1,    -1,    -1,   193,   194,   195,   196,   197,    -1,   199,
        -:        -: 1935:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1936:      -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1937:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1938:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1939:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,   248,    -1,
        -:        -: 1940:      -1,    -1,    -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,
        -:        -: 1941:      -1,   261,   262,   263,   264,     3,     4,     5,     6,     7,
        -:        -: 1942:       8,     9,    -1,    11,    -1,    -1,   276,   277,   278,    -1,
        -:        -: 1943:      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
        -:        -: 1944:      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
        -:        -: 1945:      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
        -:        -: 1946:      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
        -:        -: 1947:      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
        -:        -: 1948:      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
        -:        -: 1949:      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
        -:        -: 1950:      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
        -:        -: 1951:      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
        -:        -: 1952:     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
        -:        -: 1953:     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
        -:        -: 1954:     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
        -:        -: 1955:     138,   139,   140,   141,   142,   143,   144,   145,   146,    -1,
        -:        -: 1956:      -1,    -1,    -1,   151,   152,   153,   154,   155,   156,   157,
        -:        -: 1957:     158,   159,    -1,    -1,   162,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1958:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1959:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1960:      -1,    -1,    -1,    -1,    -1,   193,   194,   195,   196,   197,
        -:        -: 1961:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1962:      -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1963:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1964:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1965:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,
        -:        -: 1966:     248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1967:      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    -1,
        -:        -: 1968:      11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1969:     278,    22,    23,    24,    25,    26,    27,    28,    29,    30,
        -:        -: 1970:      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
        -:        -: 1971:      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
        -:        -: 1972:      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
        -:        -: 1973:      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
        -:        -: 1974:      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
        -:        -: 1975:      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
        -:        -: 1976:      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
        -:        -: 1977:     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
        -:        -: 1978:     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
        -:        -: 1979:     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
        -:        -: 1980:     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
        -:        -: 1981:     141,   142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,
        -:        -: 1982:     151,   152,   153,   154,   155,   156,   157,   158,   159,    -1,
        -:        -: 1983:      -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1984:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1985:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1986:      -1,    -1,   193,   194,   195,   196,   197,    -1,    -1,    -1,
        -:        -: 1987:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1988:      -1,   212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1989:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1990:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1991:      -1,    -1,    -1,    -1,    -1,    -1,   247,   248,    -1,    -1,
        -:        -: 1992:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 1993:      -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
        -:        -: 1994:       7,     8,     9,    10,    11,    12,    13,   278,    15,    16,
        -:        -: 1995:      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
        -:        -: 1996:      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -: 1997:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -: 1998:      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        -:        -: 1999:      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        -:        -: 2000:      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        -:        -: 2001:      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        -:        -: 2002:      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        -:        -: 2003:      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
        -:        -: 2004:     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
        -:        -: 2005:     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
        -:        -: 2006:     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
        -:        -: 2007:     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
        -:        -: 2008:      -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
        -:        -: 2009:     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
        -:        -: 2010:     167,   168,   169,   170,    -1,    -1,    -1,   174,   175,    -1,
        -:        -: 2011:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2012:      -1,    -1,    -1,    -1,    -1,    -1,   193,   194,   195,   196,
        -:        -: 2013:     197,    -1,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2014:      -1,    -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,
        -:        -: 2015:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2016:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2017:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2018:     247,   248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,
        -:        -: 2019:      -1,    -1,    -1,    -1,   261,   262,   263,   264,    -1,    -1,
        -:        -: 2020:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   276,
        -:        -: 2021:     277,     3,     4,     5,     6,     7,     8,     9,    10,    11,
        -:        -: 2022:      12,    13,    -1,    15,    16,    17,    18,    19,    -1,    -1,
        -:        -: 2023:      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 2024:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 2025:      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 2026:      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        -:        -: 2027:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 2028:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 2029:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 2030:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 2031:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 2032:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 2033:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 2034:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 2035:     142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,   151,
        -:        -: 2036:     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
        -:        -: 2037:     162,   163,   164,   165,   166,   167,   168,   169,   170,    -1,
        -:        -: 2038:      -1,    -1,   174,   175,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2039:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2040:      -1,   193,   194,   195,   196,   197,    -1,   199,    -1,    -1,
        -:        -: 2041:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2042:     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2043:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2044:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2045:      -1,    -1,    -1,    -1,    -1,   247,   248,    -1,    -1,    -1,
        -:        -: 2046:      -1,    -1,    -1,    -1,   256,    -1,    -1,    -1,    -1,   261,
        -:        -: 2047:     262,   263,   264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2048:      -1,    -1,    -1,    -1,   276,   277,     3,     4,     5,     6,
        -:        -: 2049:       7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
        -:        -: 2050:      17,    18,    19,    -1,    -1,    22,    23,    24,    25,    26,
        -:        -: 2051:      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -: 2052:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -: 2053:      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        -:        -: 2054:      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        -:        -: 2055:      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        -:        -: 2056:      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        -:        -: 2057:      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        -:        -: 2058:      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
        -:        -: 2059:     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
        -:        -: 2060:     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
        -:        -: 2061:     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
        -:        -: 2062:     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
        -:        -: 2063:      -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
        -:        -: 2064:     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
        -:        -: 2065:     167,   168,   169,   170,    -1,    -1,    -1,   174,   175,    -1,
        -:        -: 2066:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2067:      -1,    -1,    -1,    -1,    -1,    -1,   193,   194,   195,   196,
        -:        -: 2068:     197,    -1,   199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2069:      -1,    -1,    -1,    -1,    -1,   212,    -1,    -1,    -1,    -1,
        -:        -: 2070:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2071:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2072:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2073:     247,   248,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   256,
        -:        -: 2074:      -1,    -1,    -1,    -1,   261,   262,   263,   264,     3,     4,
        -:        -: 2075:       5,     6,     7,     8,     9,    -1,    11,    -1,    -1,   276,
        -:        -: 2076:     277,    -1,    -1,    -1,    -1,    -1,    -1,    22,    23,    24,
        -:        -: 2077:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 2078:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 2079:      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        -:        -: 2080:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 2081:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 2082:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 2083:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 2084:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 2085:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 2086:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 2087:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 2088:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 2089:     145,   146,    -1,    -1,    -1,    -1,   151,   152,   153,   154,
        -:        -: 2090:     155,   156,   157,   158,   159,    -1,   161,   162,   163,   164,
        -:        -: 2091:     165,   166,   167,   168,   169,   170,    -1,    -1,    -1,   174,
        -:        -: 2092:     175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2093:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,   194,
        -:        -: 2094:     195,   196,   197,    -1,   199,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2095:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,    -1,    -1,
        -:        -: 2096:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2097:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2098:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2099:      -1,    -1,   247,   248,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2100:      -1,   256,    -1,    -1,    -1,    -1,   261,   262,   263,   264,
        -:        -: 2101:       5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2102:      -1,   276,    -1,    -1,    -1,    -1,    -1,    22,    23,    24,
        -:        -: 2103:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 2104:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 2105:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2106:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 2107:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 2108:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 2109:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 2110:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 2111:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 2112:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 2113:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 2114:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 2115:     145,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2116:      -1,   156,    -1,   158,   159,    -1,   161,   162,   163,   164,
        -:        -: 2117:     165,   166,   167,   168,   169,   170,    -1,    -1,    -1,   174,
        -:        -: 2118:     175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2119:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2120:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2121:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2122:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2123:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2124:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2125:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2126:      -1,   256,    -1,    -1,    -1,    -1,   261,   262,   263,   264,
        -:        -: 2127:       5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2128:      -1,    -1,   277,   278,    -1,    -1,    -1,    22,    23,    24,
        -:        -: 2129:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 2130:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 2131:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2132:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 2133:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 2134:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 2135:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 2136:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 2137:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 2138:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 2139:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 2140:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 2141:     145,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2142:      -1,   156,    -1,   158,   159,    -1,   161,   162,   163,   164,
        -:        -: 2143:     165,   166,   167,   168,   169,   170,    -1,    -1,    -1,   174,
        -:        -: 2144:     175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2145:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2146:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2147:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2148:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2149:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2150:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2151:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2152:      -1,   256,    -1,    -1,    -1,    -1,   261,   262,   263,   264,
        -:        -: 2153:       5,     6,     7,     8,     9,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2154:      -1,    -1,   277,    -1,    -1,    -1,    -1,    22,    23,    24,
        -:        -: 2155:      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
        -:        -: 2156:      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
        -:        -: 2157:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2158:      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
        -:        -: 2159:      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
        -:        -: 2160:      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        -:        -: 2161:      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        -:        -: 2162:      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
        -:        -: 2163:     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
        -:        -: 2164:     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
        -:        -: 2165:     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
        -:        -: 2166:     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
        -:        -: 2167:     145,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2168:      -1,   156,    -1,   158,   159,    -1,   161,   162,   163,   164,
        -:        -: 2169:     165,   166,   167,   168,   169,   170,    -1,    -1,    -1,   174,
        -:        -: 2170:     175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2171:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2172:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2173:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2174:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2175:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2176:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2177:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2178:      -1,   256,    -1,    -1,    -1,    -1,   261,   262,   263,   264,
        -:        -: 2179:       3,     4,     5,     6,     7,     8,     9,    -1,    11,    -1,
        -:        -: 2180:      -1,   276,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    22,
        -:        -: 2181:      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
        -:        -: 2182:      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
        -:        -: 2183:      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
        -:        -: 2184:      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
        -:        -: 2185:      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
        -:        -: 2186:      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
        -:        -: 2187:      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
        -:        -: 2188:      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
        -:        -: 2189:     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
        -:        -: 2190:     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
        -:        -: 2191:     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
        -:        -: 2192:     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
        -:        -: 2193:     143,   144,   145,   146,    -1,    -1,    -1,    -1,   151,   152,
        -:        -: 2194:     153,   154,   155,   156,   157,   158,   159,    -1,   161,   162,
        -:        -: 2195:     163,   164,   165,   166,   167,   168,   169,   170,    -1,    -1,
        -:        -: 2196:      -1,   174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2197:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2198:     193,   194,   195,   196,   197,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2199:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   212,
        -:        -: 2200:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2201:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2202:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2203:      -1,    -1,    -1,    -1,   247,   248,     5,     6,     7,     8,
        -:        -: 2204:       9,    -1,    -1,   256,    -1,    -1,    -1,    -1,   261,   262,
        -:        -: 2205:     263,   264,    -1,    22,    23,    24,    25,    26,    27,    28,
        -:        -: 2206:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 2207:      39,    40,    41,    42,    43,    44,    -1,    -1,    -1,    -1,
        -:        -: 2208:      -1,    -1,    -1,    -1,    -1,    -1,    55,    56,    57,    58,
        -:        -: 2209:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 2210:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 2211:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 2212:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 2213:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 2214:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 2215:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 2216:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 2217:     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
        -:        -: 2218:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,   158,
        -:        -: 2219:     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
        -:        -: 2220:     169,   170,    -1,    -1,    -1,   174,   175,    -1,    -1,    -1,
        -:        -: 2221:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2222:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2223:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2224:      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
        -:        -: 2225:       9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2226:      -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    28,
        -:        -: 2227:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 2228:      39,    40,    41,    42,    43,    44,    -1,   256,    -1,    -1,
        -:        -: 2229:     259,    -1,   261,   262,   263,   264,    55,    56,    57,    58,
        -:        -: 2230:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 2231:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 2232:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 2233:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 2234:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 2235:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 2236:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 2237:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 2238:     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
        -:        -: 2239:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,   158,
        -:        -: 2240:     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
        -:        -: 2241:     169,   170,    -1,    -1,    -1,   174,   175,    -1,    -1,    -1,
        -:        -: 2242:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2243:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2244:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2245:      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
        -:        -: 2246:       9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2247:      -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    28,
        -:        -: 2248:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 2249:      39,    40,    41,    42,    43,    44,    -1,   256,    -1,    -1,
        -:        -: 2250:     259,    -1,   261,   262,   263,   264,    55,    56,    57,    58,
        -:        -: 2251:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 2252:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 2253:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 2254:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 2255:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 2256:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 2257:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 2258:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 2259:     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
        -:        -: 2260:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,   158,
        -:        -: 2261:     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
        -:        -: 2262:     169,   170,    -1,    -1,    -1,   174,   175,    -1,    -1,    -1,
        -:        -: 2263:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2264:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2265:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2266:      -1,    -1,    -1,    -1,    -1,    -1,     5,     6,     7,     8,
        -:        -: 2267:       9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2268:      -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    28,
        -:        -: 2269:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 2270:      39,    40,    41,    42,    43,    44,    -1,   256,    -1,    -1,
        -:        -: 2271:      -1,    -1,   261,   262,   263,   264,    55,    56,    57,    58,
        -:        -: 2272:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 2273:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 2274:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 2275:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 2276:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 2277:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 2278:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 2279:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 2280:     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
        -:        -: 2281:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,    -1,   158,
        -:        -: 2282:     159,    -1,   161,   162,   163,   164,   165,   166,   167,   168,
        -:        -: 2283:     169,   170,    -1,    -1,    -1,   174,   175,    -1,    -1,    -1,
        -:        -: 2284:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2285:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2286:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2287:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2288:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2289:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2290:      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,
        -:        -: 2291:       6,     7,     8,     9,    -1,    11,    -1,   256,    -1,    -1,
        -:        -: 2292:      -1,    -1,   261,   262,   263,   264,    22,    23,    24,    25,
        -:        -: 2293:      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
        -:        -: 2294:      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
        -:        -: 2295:      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
        -:        -: 2296:      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        -:        -: 2297:      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        -:        -: 2298:      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        -:        -: 2299:      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        -:        -: 2300:      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
        -:        -: 2301:     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
        -:        -: 2302:     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
        -:        -: 2303:     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
        -:        -: 2304:     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
        -:        -: 2305:     146,    -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,
        -:        -: 2306:     156,   157,   158,   159,    -1,    -1,   162,    -1,    -1,    -1,
        -:        -: 2307:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2308:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2309:      -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,   194,   195,
        -:        -: 2310:     196,   197,    -1,   199,    -1,   201,    -1,    -1,    -1,    -1,
        -:        -: 2311:      -1,   207,   208,   209,   210,   211,   212,    -1,    -1,    -1,
        -:        -: 2312:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2313:      -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
        -:        -: 2314:       9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2315:      -1,   247,   248,    22,    23,    24,    25,    26,    27,    28,
        -:        -: 2316:      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
        -:        -: 2317:      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
        -:        -: 2318:      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
        -:        -: 2319:      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
        -:        -: 2320:      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
        -:        -: 2321:      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
        -:        -: 2322:      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
        -:        -: 2323:      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
        -:        -: 2324:     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
        -:        -: 2325:     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
        -:        -: 2326:     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
        -:        -: 2327:     139,   140,   141,   142,   143,   144,   145,   146,    -1,    -1,
        -:        -: 2328:      -1,    -1,   151,   152,   153,   154,   155,   156,   157,   158,
        -:        -: 2329:     159,    -1,    -1,   162,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2330:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2331:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2332:      -1,    -1,    -1,    -1,   193,   194,   195,   196,   197,    -1,
        -:        -: 2333:     199,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   207,   208,
        -:        -: 2334:     209,   210,   211,   212,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2335:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2336:      -1,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
        -:        -: 2337:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   247,   248,
        -:        -: 2338:      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
        -:        -: 2339:      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
        -:        -: 2340:      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 2341:      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
        -:        -: 2342:      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
        -:        -: 2343:      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
        -:        -: 2344:      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
        -:        -: 2345:      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
        -:        -: 2346:     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
        -:        -: 2347:     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
        -:        -: 2348:     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
        -:        -: 2349:     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
        -:        -: 2350:     142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,   151,
        -:        -: 2351:     152,   153,   154,   155,   156,   157,   158,   159,     3,     4,
        -:        -: 2352:     162,    -1,    -1,    -1,    -1,    -1,    11,    -1,    -1,    -1,
        -:        -: 2353:      -1,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,    11,
        -:        -: 2354:      -1,     3,     4,    -1,    -1,    -1,    -1,    -1,    -1,    11,
        -:        -: 2355:      -1,   193,   194,   195,   196,   197,    -1,    -1,    -1,    -1,
        -:        -: 2356:      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
        -:        -: 2357:     212,    -1,    -1,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 2358:      52,    53,    54,    45,    46,    47,    48,    49,    50,    51,
        -:        -: 2359:      52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2360:      -1,    -1,    -1,     3,     4,   247,   248,    -1,    -1,    -1,
        -:        -: 2361:      -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2362:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2363:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2364:      -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
        -:        -: 2365:      50,    51,    52,    53,    54,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2366:      -1,   274,    -1,    -1,    -1,    -1,   151,   152,   153,   154,
        -:        -: 2367:     155,    -1,   157,    -1,    -1,    -1,   161,    -1,   163,   151,
        -:        -: 2368:     152,   153,   154,   155,    -1,   157,    -1,    -1,    -1,   151,
        -:        -: 2369:     152,   153,   154,   155,    -1,   157,   309,   310,    -1,    -1,
        -:        -: 2370:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   193,   194,
        -:        -: 2371:     195,   196,   197,    -1,    -1,    -1,    -1,   330,    -1,    -1,
        -:        -: 2372:      -1,   193,   194,   195,   196,   197,    -1,   212,    -1,    -1,
        -:        -: 2373:      -1,   193,   194,   195,   196,   197,    -1,    -1,    -1,    -1,
        -:        -: 2374:     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2375:     212,   151,   152,   153,   154,   155,    -1,   157,    -1,    -1,
        -:        -: 2376:      -1,    -1,   247,   248,    -1,    -1,    -1,   380,    -1,    -1,
        -:        -: 2377:      -1,    -1,    -1,    -1,    -1,   247,   248,   390,    -1,    -1,
        -:        -: 2378:      -1,    -1,    -1,    -1,    -1,   247,   248,    -1,    -1,    -1,
        -:        -: 2379:      -1,    -1,    -1,   193,   194,   195,   196,   197,    -1,    -1,
        -:        -: 2380:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2381:      -1,    -1,   212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2382:     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
        -:        -: 2383:     443,   444,   445,   446,   447,   448,   449,   450,   451,     5,
        -:        -: 2384:       6,     7,     8,     9,    -1,    -1,    -1,   247,   248,    -1,
        -:        -: 2385:      -1,    -1,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
        -:        -: 2386:      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
        -:        -: 2387:      36,    37,    38,    39,    40,    41,    42,    43,    44,    -1,
        -:        -: 2388:      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,
        -:        -: 2389:      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
        -:        -: 2390:      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
        -:        -: 2391:      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
        -:        -: 2392:      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
        -:        -: 2393:      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
        -:        -: 2394:     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
        -:        -: 2395:     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
        -:        -: 2396:     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
        -:        -: 2397:     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
        -:        -: 2398:     146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
        -:        -: 2399:     156,    -1,   158,   159,    -1,    -1,   162
        -:        -: 2400:};
        -:        -: 2401:
        -:        -: 2402:  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
        -:        -: 2403:     symbol of state STATE-NUM.  */
        -:        -: 2404:static const yytype_uint16 yystos[] =
        -:        -: 2405:{
        -:        -: 2406:       0,   200,   280,   282,   166,     0,   284,   161,   162,   163,
        -:        -: 2407:     204,   285,   201,   281,   286,   204,   285,     3,     4,     5,
        -:        -: 2408:       6,     7,     8,     9,    11,    22,    23,    24,    25,    26,
        -:        -: 2409:      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
        -:        -: 2410:      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
        -:        -: 2411:      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
        -:        -: 2412:      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
        -:        -: 2413:      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
        -:        -: 2414:      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
        -:        -: 2415:      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
        -:        -: 2416:      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
        -:        -: 2417:     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
        -:        -: 2418:     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
        -:        -: 2419:     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
        -:        -: 2420:     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
        -:        -: 2421:     151,   152,   153,   154,   155,   156,   157,   158,   159,   162,
        -:        -: 2422:     193,   194,   195,   196,   197,   199,   207,   208,   209,   210,
        -:        -: 2423:     211,   212,   247,   248,   283,   287,   317,   318,   319,   320,
        -:        -: 2424:     321,   327,   328,   329,   330,   334,   336,   337,   338,   339,
        -:        -: 2425:     340,   342,   343,   344,   345,   346,   376,   377,   378,   379,
        -:        -: 2426:     380,   384,   385,   386,   387,   388,   203,   277,   285,    11,
        -:        -: 2427:      46,    47,    49,   161,   163,   193,   194,   288,   330,   337,
        -:        -: 2428:     338,   340,   288,   337,   345,   204,   204,   204,   204,   204,
        -:        -: 2429:     256,   256,   286,   376,   276,   277,   359,   257,   260,     4,
        -:        -: 2430:      46,    47,    48,   194,   323,   324,   325,   340,   345,   260,
        -:        -: 2431:     276,   161,   163,   285,   288,    11,    46,    47,    49,   337,
        -:        -: 2432:     378,   384,   385,   386,   387,   337,   337,   342,   337,   380,
        -:        -: 2433:     337,   330,   337,   378,   258,   341,   337,   163,   285,   329,
        -:        -: 2434:     347,   348,   277,   342,   157,   221,   254,   285,   331,   332,
        -:        -: 2435:     333,   285,   335,    10,    12,    13,    15,    16,    17,    18,
        -:        -: 2436:      19,   160,   164,   165,   166,   167,   168,   169,   170,   174,
        -:        -: 2437:     175,   256,   261,   262,   263,   264,   276,   277,   278,   288,
        -:        -: 2438:     289,   290,   292,   293,   294,   295,   296,   297,   298,   299,
        -:        -: 2439:     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
        -:        -: 2440:     310,   311,   312,   313,   315,   317,   318,   342,   353,   354,
        -:        -: 2441:     355,   356,   360,   361,   362,   365,   371,   375,   323,   324,
        -:        -: 2442:     324,   322,   326,   342,   324,   324,   324,   285,   275,   341,
        -:        -: 2443:     256,   276,   276,   276,   276,   259,   299,   312,   316,   342,
        -:        -: 2444:     258,   277,   204,   285,   349,   350,   278,   348,   347,   276,
        -:        -: 2445:     275,   257,   260,   257,   260,   276,   276,   354,   256,   256,
        -:        -: 2446:     276,   276,   315,   256,   256,   299,   299,   315,   278,   357,
        -:        -: 2447:     174,   175,   213,   258,   257,   257,   260,   159,   313,   256,
        -:        -: 2448:     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
        -:        -: 2449:     275,   314,   299,   265,   266,   267,   261,   262,   172,   173,
        -:        -: 2450:     176,   177,   268,   269,   178,   179,   270,   271,   272,   180,
        -:        -: 2451:     182,   181,   273,   260,   276,   278,   354,   285,   275,   341,
        -:        -: 2452:     277,   313,   351,   275,   259,   259,   316,   329,   382,   383,
        -:        -: 2453:     341,   260,   276,   278,   316,   332,   285,   160,   353,   361,
        -:        -: 2454:     372,   315,   276,   315,   315,   329,   364,   257,   360,   171,
        -:        -: 2455:     291,   315,   313,   313,   299,   299,   299,   301,   301,   302,
        -:        -: 2456:     302,   303,   303,   303,   303,   304,   304,   305,   306,   307,
        -:        -: 2457:     308,   309,   310,   315,   313,   341,   351,   275,   351,   352,
        -:        -: 2458:     351,   259,   349,   278,   382,   350,   256,   364,   373,   374,
        -:        -: 2459:     257,   257,   285,   257,   278,   259,   274,   351,   260,   278,
        -:        -: 2460:     276,   163,   381,   315,   276,   257,   354,   363,   277,   366,
        -:        -: 2461:     275,   355,   358,   359,   313,   278,   351,   341,   276,   257,
        -:        -: 2462:     315,   358,    14,    20,    21,   278,   367,   368,   369,   370,
        -:        -: 2463:     351,   276,   354,   315,   274,   354,   367,   354,   278,   369,
        -:        -: 2464:     274
        -:        -: 2465:};
        -:        -: 2466:
        -:        -: 2467:  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
        -:        -: 2468:static const yytype_uint16 yyr1[] =
        -:        -: 2469:{
        -:        -: 2470:       0,   279,   281,   280,   282,   282,   282,   283,   283,   283,
        -:        -: 2471:     283,   283,   284,   284,   285,   285,   285,   286,   287,   287,
        -:        -: 2472:     287,   288,   288,   289,   289,   289,   289,   289,   289,   289,
        -:        -: 2473:     289,   289,   290,   290,   290,   290,   290,   290,   291,   292,
        -:        -: 2474:     293,   294,   294,   295,   295,   296,   296,   297,   298,   298,
        -:        -: 2475:     299,   299,   299,   299,   300,   300,   300,   300,   301,   301,
        -:        -: 2476:     301,   301,   302,   302,   302,   303,   303,   303,   304,   304,
        -:        -: 2477:     304,   304,   304,   305,   305,   305,   306,   306,   307,   307,
        -:        -: 2478:     308,   308,   309,   309,   310,   310,   311,   311,   312,   312,
        -:        -: 2479:     313,   313,   314,   314,   314,   314,   314,   314,   314,   314,
        -:        -: 2480:     314,   314,   314,   315,   315,   316,   317,   317,   317,   317,
        -:        -: 2481:     318,   319,   319,   320,   320,   321,   322,   322,   323,   323,
        -:        -: 2482:     324,   324,   324,   324,   324,   324,   325,   325,   325,   326,
        -:        -: 2483:     327,   327,   327,   327,   327,   328,   328,   328,   328,   328,
        -:        -: 2484:     328,   328,   329,   329,   330,   331,   331,   332,   332,   332,
        -:        -: 2485:     333,   333,   333,   334,   334,   335,   335,   336,   336,   336,
        -:        -: 2486:     337,   337,   337,   337,   337,   337,   337,   337,   337,   337,
        -:        -: 2487:     337,   337,   337,   337,   337,   337,   337,   337,   338,   338,
        -:        -: 2488:     338,   339,   339,   339,   339,   339,   339,   339,   339,   339,
        -:        -: 2489:     340,   340,   340,   340,   340,   341,   341,   341,   341,   342,
        -:        -: 2490:     342,   343,   343,   343,   344,   344,   344,   344,   344,   344,
        -:        -: 2491:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2492:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2493:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2494:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2495:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2496:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2497:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2498:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2499:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2500:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2501:     344,   344,   344,   344,   344,   344,   344,   344,   344,   344,
        -:        -: 2502:     344,   344,   344,   344,   344,   344,   345,   345,   345,   346,
        -:        -: 2503:     346,   347,   347,   348,   349,   349,   350,   350,   351,   351,
        -:        -: 2504:     351,   352,   352,   353,   354,   354,   355,   355,   355,   355,
        -:        -: 2505:     355,   355,   356,   357,   356,   358,   358,   359,   359,   360,
        -:        -: 2506:     360,   361,   361,   362,   363,   363,   364,   364,   365,   366,
        -:        -: 2507:     366,   367,   367,   368,   368,   369,   369,   370,   370,   371,
        -:        -: 2508:     371,   371,   372,   372,   373,   373,   374,   374,   375,   375,
        -:        -: 2509:     375,   375,   375,   376,   376,   376,   376,   377,   378,   378,
        -:        -: 2510:     378,   379,   380,   380,   380,   380,   380,   381,   381,   381,
        -:        -: 2511:     382,   382,   383,   384,   384,   385,   385,   386,   386,   387,
        -:        -: 2512:     387,   388,   388,   388,   388
        -:        -: 2513:};
        -:        -: 2514:
        -:        -: 2515:  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
        -:        -: 2516:static const yytype_uint8 yyr2[] =
        -:        -: 2517:{
        -:        -: 2518:       0,     2,     0,     4,     0,     3,     4,     2,     2,     2,
        -:        -: 2519:       2,     2,     0,     2,     1,     1,     1,     5,     1,     2,
        -:        -: 2520:       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2521:       1,     3,     1,     4,     1,     3,     2,     2,     1,     1,
        -:        -: 2522:       1,     2,     2,     2,     1,     2,     3,     2,     1,     1,
        -:        -: 2523:       1,     2,     2,     2,     1,     1,     1,     1,     1,     3,
        -:        -: 2524:       3,     3,     1,     3,     3,     1,     3,     3,     1,     3,
        -:        -: 2525:       3,     3,     3,     1,     3,     3,     1,     3,     1,     3,
        -:        -: 2526:       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
        -:        -: 2527:       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2528:       1,     1,     1,     1,     3,     1,     2,     2,     4,     1,
        -:        -: 2529:       2,     1,     1,     2,     3,     3,     2,     3,     2,     2,
        -:        -: 2530:       0,     2,     2,     2,     2,     2,     1,     1,     1,     1,
        -:        -: 2531:       1,     3,     4,     6,     5,     1,     2,     3,     5,     4,
        -:        -: 2532:       2,     2,     1,     2,     4,     1,     3,     1,     3,     1,
        -:        -: 2533:       1,     1,     1,     1,     4,     1,     3,     1,     1,     1,
        -:        -: 2534:       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
        -:        -: 2535:       2,     2,     2,     2,     2,     2,     2,     2,     1,     1,
        -:        -: 2536:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2537:       1,     1,     1,     1,     1,     2,     3,     3,     4,     1,
        -:        -: 2538:       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2539:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2540:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2541:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2542:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2543:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2544:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2545:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2546:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2547:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2548:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2549:       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2550:       1,     1,     1,     1,     1,     1,     1,     1,     1,     5,
        -:        -: 2551:       4,     1,     2,     3,     1,     3,     1,     2,     1,     3,
        -:        -: 2552:       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
        -:        -: 2553:       1,     1,     2,     0,     4,     1,     1,     2,     3,     1,
        -:        -: 2554:       2,     1,     2,     5,     3,     1,     1,     4,     5,     2,
        -:        -: 2555:       3,     3,     2,     1,     2,     2,     2,     1,     2,     5,
        -:        -: 2556:       7,     6,     1,     1,     1,     0,     2,     3,     2,     2,
        -:        -: 2557:       2,     3,     2,     1,     1,     1,     1,     2,     1,     2,
        -:        -: 2558:       2,     7,     1,     1,     1,     1,     2,     0,     1,     2,
        -:        -: 2559:       1,     2,     3,     2,     3,     2,     3,     2,     3,     2,
        -:        -: 2560:       3,     1,     1,     1,     1
        -:        -: 2561:};
        -:        -: 2562:
        -:        -: 2563:
        -:        -: 2564:#define yyerrok         (yyerrstatus = 0)
        -:        -: 2565:#define yyclearin       (yychar = YYEMPTY)
        -:        -: 2566:#define YYEMPTY         (-2)
        -:        -: 2567:#define YYEOF           0
        -:        -: 2568:
        -:        -: 2569:#define YYACCEPT        goto yyacceptlab
        -:        -: 2570:#define YYABORT         goto yyabortlab
        -:        -: 2571:#define YYERROR         goto yyerrorlab
        -:        -: 2572:
        -:        -: 2573:
        -:        -: 2574:#define YYRECOVERING()  (!!yyerrstatus)
        -:        -: 2575:
        -:        -: 2576:#define YYBACKUP(Token, Value)                                  \
        -:        -: 2577:do                                                              \
        -:        -: 2578:  if (yychar == YYEMPTY)                                        \
        -:        -: 2579:    {                                                           \
        -:        -: 2580:      yychar = (Token);                                         \
        -:        -: 2581:      yylval = (Value);                                         \
        -:        -: 2582:      YYPOPSTACK (yylen);                                       \
        -:        -: 2583:      yystate = *yyssp;                                         \
        -:        -: 2584:      goto yybackup;                                            \
        -:        -: 2585:    }                                                           \
        -:        -: 2586:  else                                                          \
        -:        -: 2587:    {                                                           \
        -:        -: 2588:      yyerror (&yylloc, state, YY_("syntax error: cannot back up")); \
        -:        -: 2589:      YYERROR;                                                  \
        -:        -: 2590:    }                                                           \
        -:        -: 2591:while (0)
        -:        -: 2592:
        -:        -: 2593:/* Error token number */
        -:        -: 2594:#define YYTERROR        1
        -:        -: 2595:#define YYERRCODE       256
        -:        -: 2596:
        -:        -: 2597:
        -:        -: 2598:/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
        -:        -: 2599:   If N is 0, then set CURRENT to the empty location which ends
        -:        -: 2600:   the previous symbol: RHS[0] (always defined).  */
        -:        -: 2601:
        -:        -: 2602:#ifndef YYLLOC_DEFAULT
        -:        -: 2603:# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
        -:        -: 2604:    do                                                                  \
        -:        -: 2605:      if (N)                                                            \
        -:        -: 2606:        {                                                               \
        -:        -: 2607:          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
        -:        -: 2608:          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
        -:        -: 2609:          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
        -:        -: 2610:          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
        -:        -: 2611:        }                                                               \
        -:        -: 2612:      else                                                              \
        -:        -: 2613:        {                                                               \
        -:        -: 2614:          (Current).first_line   = (Current).last_line   =              \
        -:        -: 2615:            YYRHSLOC (Rhs, 0).last_line;                                \
        -:        -: 2616:          (Current).first_column = (Current).last_column =              \
        -:        -: 2617:            YYRHSLOC (Rhs, 0).last_column;                              \
        -:        -: 2618:        }                                                               \
        -:        -: 2619:    while (0)
        -:        -: 2620:#endif
        -:        -: 2621:
        -:        -: 2622:#define YYRHSLOC(Rhs, K) ((Rhs)[K])
        -:        -: 2623:
        -:        -: 2624:
        -:        -: 2625:/* Enable debugging if requested.  */
        -:        -: 2626:#if YYDEBUG
        -:        -: 2627:
        -:        -: 2628:# ifndef YYFPRINTF
        -:        -: 2629:#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
        -:        -: 2630:#  define YYFPRINTF fprintf
        -:        -: 2631:# endif
        -:        -: 2632:
        -:        -: 2633:# define YYDPRINTF(Args)                        \
        -:        -: 2634:do {                                            \
        -:        -: 2635:  if (yydebug)                                  \
        -:        -: 2636:    YYFPRINTF Args;                             \
        -:        -: 2637:} while (0)
        -:        -: 2638:
        -:        -: 2639:
        -:        -: 2640:/* YY_LOCATION_PRINT -- Print the location on the stream.
        -:        -: 2641:   This macro was not mandated originally: define only if we know
        -:        -: 2642:   we won't break user code: when these are the locations we know.  */
        -:        -: 2643:
        -:        -: 2644:#ifndef YY_LOCATION_PRINT
        -:        -: 2645:# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
        -:        -: 2646:
        -:        -: 2647:/* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
        -:        -: 2648:
        -:        -: 2649:YY_ATTRIBUTE_UNUSED
        -:        -: 2650:static unsigned
        -:        -: 2651:yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
        -:        -: 2652:{
        -:        -: 2653:  unsigned res = 0;
        -:        -: 2654:  int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
        -:        -: 2655:  if (0 <= yylocp->first_line)
        -:        -: 2656:    {
        -:        -: 2657:      res += YYFPRINTF (yyo, "%d", yylocp->first_line);
        -:        -: 2658:      if (0 <= yylocp->first_column)
        -:        -: 2659:        res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
        -:        -: 2660:    }
        -:        -: 2661:  if (0 <= yylocp->last_line)
        -:        -: 2662:    {
        -:        -: 2663:      if (yylocp->first_line < yylocp->last_line)
        -:        -: 2664:        {
        -:        -: 2665:          res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
        -:        -: 2666:          if (0 <= end_col)
        -:        -: 2667:            res += YYFPRINTF (yyo, ".%d", end_col);
        -:        -: 2668:        }
        -:        -: 2669:      else if (0 <= end_col && yylocp->first_column < end_col)
        -:        -: 2670:        res += YYFPRINTF (yyo, "-%d", end_col);
        -:        -: 2671:    }
        -:        -: 2672:  return res;
        -:        -: 2673: }
        -:        -: 2674:
        -:        -: 2675:#  define YY_LOCATION_PRINT(File, Loc)          \
        -:        -: 2676:  yy_location_print_ (File, &(Loc))
        -:        -: 2677:
        -:        -: 2678:# else
        -:        -: 2679:#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
        -:        -: 2680:# endif
        -:        -: 2681:#endif
        -:        -: 2682:
        -:        -: 2683:
        -:        -: 2684:# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
        -:        -: 2685:do {                                                                      \
        -:        -: 2686:  if (yydebug)                                                            \
        -:        -: 2687:    {                                                                     \
        -:        -: 2688:      YYFPRINTF (stderr, "%s ", Title);                                   \
        -:        -: 2689:      yy_symbol_print (stderr,                                            \
        -:        -: 2690:                  Type, Value, Location, state); \
        -:        -: 2691:      YYFPRINTF (stderr, "\n");                                           \
        -:        -: 2692:    }                                                                     \
        -:        -: 2693:} while (0)
        -:        -: 2694:
        -:        -: 2695:
        -:        -: 2696:/*----------------------------------------.
        -:        -: 2697:| Print this symbol's value on YYOUTPUT.  |
        -:        -: 2698:`----------------------------------------*/
        -:        -: 2699:
        -:        -: 2700:static void
        -:        -: 2701:yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
        -:        -: 2702:{
        -:        -: 2703:  FILE *yyo = yyoutput;
        -:        -: 2704:  YYUSE (yyo);
        -:        -: 2705:  YYUSE (yylocationp);
        -:        -: 2706:  YYUSE (state);
        -:        -: 2707:  if (!yyvaluep)
        -:        -: 2708:    return;
        -:        -: 2709:# ifdef YYPRINT
        -:        -: 2710:  if (yytype < YYNTOKENS)
        -:        -: 2711:    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
        -:        -: 2712:# endif
        -:        -: 2713:  YYUSE (yytype);
        -:        -: 2714:}
        -:        -: 2715:
        -:        -: 2716:
        -:        -: 2717:/*--------------------------------.
        -:        -: 2718:| Print this symbol on YYOUTPUT.  |
        -:        -: 2719:`--------------------------------*/
        -:        -: 2720:
        -:        -: 2721:static void
        -:        -: 2722:yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, struct _mesa_glsl_parse_state *state)
        -:        -: 2723:{
        -:        -: 2724:  YYFPRINTF (yyoutput, "%s %s (",
        -:        -: 2725:             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
        -:        -: 2726:
        -:        -: 2727:  YY_LOCATION_PRINT (yyoutput, *yylocationp);
        -:        -: 2728:  YYFPRINTF (yyoutput, ": ");
        -:        -: 2729:  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, state);
        -:        -: 2730:  YYFPRINTF (yyoutput, ")");
        -:        -: 2731:}
        -:        -: 2732:
        -:        -: 2733:/*------------------------------------------------------------------.
        -:        -: 2734:| yy_stack_print -- Print the state stack from its BOTTOM up to its |
        -:        -: 2735:| TOP (included).                                                   |
        -:        -: 2736:`------------------------------------------------------------------*/
        -:        -: 2737:
        -:        -: 2738:static void
        -:        -: 2739:yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
        -:        -: 2740:{
        -:        -: 2741:  YYFPRINTF (stderr, "Stack now");
        -:        -: 2742:  for (; yybottom <= yytop; yybottom++)
        -:        -: 2743:    {
        -:        -: 2744:      int yybot = *yybottom;
        -:        -: 2745:      YYFPRINTF (stderr, " %d", yybot);
        -:        -: 2746:    }
        -:        -: 2747:  YYFPRINTF (stderr, "\n");
        -:        -: 2748:}
        -:        -: 2749:
        -:        -: 2750:# define YY_STACK_PRINT(Bottom, Top)                            \
        -:        -: 2751:do {                                                            \
        -:        -: 2752:  if (yydebug)                                                  \
        -:        -: 2753:    yy_stack_print ((Bottom), (Top));                           \
        -:        -: 2754:} while (0)
        -:        -: 2755:
        -:        -: 2756:
        -:        -: 2757:/*------------------------------------------------.
        -:        -: 2758:| Report that the YYRULE is going to be reduced.  |
        -:        -: 2759:`------------------------------------------------*/
        -:        -: 2760:
        -:        -: 2761:static void
        -:        -: 2762:yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule, struct _mesa_glsl_parse_state *state)
        -:        -: 2763:{
        -:        -: 2764:  unsigned long int yylno = yyrline[yyrule];
        -:        -: 2765:  int yynrhs = yyr2[yyrule];
        -:        -: 2766:  int yyi;
        -:        -: 2767:  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
        -:        -: 2768:             yyrule - 1, yylno);
        -:        -: 2769:  /* The symbols being reduced.  */
        -:        -: 2770:  for (yyi = 0; yyi < yynrhs; yyi++)
        -:        -: 2771:    {
        -:        -: 2772:      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
        -:        -: 2773:      yy_symbol_print (stderr,
        -:        -: 2774:                       yystos[yyssp[yyi + 1 - yynrhs]],
        -:        -: 2775:                       &(yyvsp[(yyi + 1) - (yynrhs)])
        -:        -: 2776:                       , &(yylsp[(yyi + 1) - (yynrhs)])                       , state);
        -:        -: 2777:      YYFPRINTF (stderr, "\n");
        -:        -: 2778:    }
        -:        -: 2779:}
        -:        -: 2780:
        -:        -: 2781:# define YY_REDUCE_PRINT(Rule)          \
        -:        -: 2782:do {                                    \
        -:        -: 2783:  if (yydebug)                          \
        -:        -: 2784:    yy_reduce_print (yyssp, yyvsp, yylsp, Rule, state); \
        -:        -: 2785:} while (0)
        -:        -: 2786:
        -:        -: 2787:/* Nonzero means print parse trace.  It is left uninitialized so that
        -:        -: 2788:   multiple parsers can coexist.  */
        -:        -: 2789:int yydebug;
        -:        -: 2790:#else /* !YYDEBUG */
        -:        -: 2791:# define YYDPRINTF(Args)
        -:        -: 2792:# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
        -:        -: 2793:# define YY_STACK_PRINT(Bottom, Top)
        -:        -: 2794:# define YY_REDUCE_PRINT(Rule)
        -:        -: 2795:#endif /* !YYDEBUG */
        -:        -: 2796:
        -:        -: 2797:
        -:        -: 2798:/* YYINITDEPTH -- initial size of the parser's stacks.  */
        -:        -: 2799:#ifndef YYINITDEPTH
        -:        -: 2800:# define YYINITDEPTH 200
        -:        -: 2801:#endif
        -:        -: 2802:
        -:        -: 2803:/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
        -:        -: 2804:   if the built-in stack extension method is used).
        -:        -: 2805:
        -:        -: 2806:   Do not make this value too large; the results are undefined if
        -:        -: 2807:   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
        -:        -: 2808:   evaluated with infinite-precision integer arithmetic.  */
        -:        -: 2809:
        -:        -: 2810:#ifndef YYMAXDEPTH
        -:        -: 2811:# define YYMAXDEPTH 10000
        -:        -: 2812:#endif
        -:        -: 2813:
        -:        -: 2814:
        -:        -: 2815:#if YYERROR_VERBOSE
        -:        -: 2816:
        -:        -: 2817:# ifndef yystrlen
        -:        -: 2818:#  if defined __GLIBC__ && defined _STRING_H
        -:        -: 2819:#   define yystrlen strlen
        -:        -: 2820:#  else
        -:        -: 2821:/* Return the length of YYSTR.  */
        -:        -: 2822:static YYSIZE_T
        -:        -: 2823:yystrlen (const char *yystr)
        -:        -: 2824:{
        -:        -: 2825:  YYSIZE_T yylen;
        -:        -: 2826:  for (yylen = 0; yystr[yylen]; yylen++)
        -:        -: 2827:    continue;
        -:        -: 2828:  return yylen;
        -:        -: 2829:}
        -:        -: 2830:#  endif
        -:        -: 2831:# endif
        -:        -: 2832:
        -:        -: 2833:# ifndef yystpcpy
        -:        -: 2834:#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
        -:        -: 2835:#   define yystpcpy stpcpy
        -:        -: 2836:#  else
        -:        -: 2837:/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
        -:        -: 2838:   YYDEST.  */
        -:        -: 2839:static char *
        -:        -: 2840:yystpcpy (char *yydest, const char *yysrc)
        -:        -: 2841:{
        -:        -: 2842:  char *yyd = yydest;
        -:        -: 2843:  const char *yys = yysrc;
        -:        -: 2844:
        -:        -: 2845:  while ((*yyd++ = *yys++) != '\0')
        -:        -: 2846:    continue;
        -:        -: 2847:
        -:        -: 2848:  return yyd - 1;
        -:        -: 2849:}
        -:        -: 2850:#  endif
        -:        -: 2851:# endif
        -:        -: 2852:
        -:        -: 2853:# ifndef yytnamerr
        -:        -: 2854:/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
        -:        -: 2855:   quotes and backslashes, so that it's suitable for yyerror.  The
        -:        -: 2856:   heuristic is that double-quoting is unnecessary unless the string
        -:        -: 2857:   contains an apostrophe, a comma, or backslash (other than
        -:        -: 2858:   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
        -:        -: 2859:   null, do not copy; instead, return the length of what the result
        -:        -: 2860:   would have been.  */
        -:        -: 2861:static YYSIZE_T
    #####:    #####: 2862:yytnamerr (char *yyres, const char *yystr)
        -:        -: 2863:{
    #####:    #####: 2864:  if (*yystr == '"')
        -:        -: 2865:    {
    #####:    #####: 2866:      YYSIZE_T yyn = 0;
    #####:    #####: 2867:      char const *yyp = yystr;
        -:        -: 2868:
    #####:    #####: 2869:      for (;;)
    #####:    #####: 2870:        switch (*++yyp)
        -:        -: 2871:          {
        -:        -: 2872:          case '\'':
        -:        -: 2873:          case ',':
    #####:    #####: 2874:            goto do_not_strip_quotes;
        -:        -: 2875:
        -:        -: 2876:          case '\\':
    #####:    #####: 2877:            if (*++yyp != '\\')
    #####:    #####: 2878:              goto do_not_strip_quotes;
        -:        -: 2879:            /* Fall through.  */
        -:        -: 2880:          default:
    #####:    #####: 2881:            if (yyres)
    #####:    #####: 2882:              yyres[yyn] = *yyp;
    #####:    #####: 2883:            yyn++;
    #####:    #####: 2884:            break;
        -:        -: 2885:
        -:        -: 2886:          case '"':
    #####:    #####: 2887:            if (yyres)
    #####:    #####: 2888:              yyres[yyn] = '\0';
    #####:    #####: 2889:            return yyn;
        -:        -: 2890:          }
        -:        -: 2891:    do_not_strip_quotes: ;
        -:        -: 2892:    }
        -:        -: 2893:
    #####:    #####: 2894:  if (! yyres)
    #####:    #####: 2895:    return yystrlen (yystr);
        -:        -: 2896:
    #####:    #####: 2897:  return yystpcpy (yyres, yystr) - yyres;
        -:        -: 2898:}
        -:        -: 2899:# endif
        -:        -: 2900:
        -:        -: 2901:/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
        -:        -: 2902:   about the unexpected token YYTOKEN for the state stack whose top is
        -:        -: 2903:   YYSSP.
        -:        -: 2904:
        -:        -: 2905:   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
        -:        -: 2906:   not large enough to hold the message.  In that case, also set
        -:        -: 2907:   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
        -:        -: 2908:   required number of bytes is too large to store.  */
        -:        -: 2909:static int
    #####:    #####: 2910:yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
        -:        -: 2911:                yytype_int16 *yyssp, int yytoken)
        -:        -: 2912:{
    #####:    #####: 2913:  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
    #####:    #####: 2914:  YYSIZE_T yysize = yysize0;
        -:        -: 2915:  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
        -:        -: 2916:  /* Internationalized format string. */
    #####:    #####: 2917:  const char *yyformat = YY_NULLPTR;
        -:        -: 2918:  /* Arguments of yyformat. */
        -:        -: 2919:  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
        -:        -: 2920:  /* Number of reported tokens (one for the "unexpected", one per
        -:        -: 2921:     "expected"). */
    #####:    #####: 2922:  int yycount = 0;
        -:        -: 2923:
        -:        -: 2924:  /* There are many possibilities here to consider:
        -:        -: 2925:     - If this state is a consistent state with a default action, then
        -:        -: 2926:       the only way this function was invoked is if the default action
        -:        -: 2927:       is an error action.  In that case, don't check for expected
        -:        -: 2928:       tokens because there are none.
        -:        -: 2929:     - The only way there can be no lookahead present (in yychar) is if
        -:        -: 2930:       this state is a consistent state with a default action.  Thus,
        -:        -: 2931:       detecting the absence of a lookahead is sufficient to determine
        -:        -: 2932:       that there is no unexpected or expected token to report.  In that
        -:        -: 2933:       case, just report a simple "syntax error".
        -:        -: 2934:     - Don't assume there isn't a lookahead just because this state is a
        -:        -: 2935:       consistent state with a default action.  There might have been a
        -:        -: 2936:       previous inconsistent state, consistent state with a non-default
        -:        -: 2937:       action, or user semantic action that manipulated yychar.
        -:        -: 2938:     - Of course, the expected token list depends on states to have
        -:        -: 2939:       correct lookahead information, and it depends on the parser not
        -:        -: 2940:       to perform extra reductions after fetching a lookahead from the
        -:        -: 2941:       scanner and before detecting a syntax error.  Thus, state merging
        -:        -: 2942:       (from LALR or IELR) and default reductions corrupt the expected
        -:        -: 2943:       token list.  However, the list is correct for canonical LR with
        -:        -: 2944:       one exception: it will still contain any token that will not be
        -:        -: 2945:       accepted due to an error action in a later state.
        -:        -: 2946:  */
    #####:    #####: 2947:  if (yytoken != YYEMPTY)
        -:        -: 2948:    {
    #####:    #####: 2949:      int yyn = yypact[*yyssp];
    #####:    #####: 2950:      yyarg[yycount++] = yytname[yytoken];
    #####:    #####: 2951:      if (!yypact_value_is_default (yyn))
        -:        -: 2952:        {
        -:        -: 2953:          /* Start YYX at -YYN if negative to avoid negative indexes in
        -:        -: 2954:             YYCHECK.  In other words, skip the first -YYN actions for
        -:        -: 2955:             this state because they are default actions.  */
    #####:    #####: 2956:          int yyxbegin = yyn < 0 ? -yyn : 0;
        -:        -: 2957:          /* Stay within bounds of both yycheck and yytname.  */
    #####:    #####: 2958:          int yychecklim = YYLAST - yyn + 1;
    #####:    #####: 2959:          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
        -:        -: 2960:          int yyx;
        -:        -: 2961:
    #####:    #####: 2962:          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    #####:    #####: 2963:            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
    #####:    #####: 2964:                && !yytable_value_is_error (yytable[yyx + yyn]))
        -:        -: 2965:              {
    #####:    #####: 2966:                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
        -:        -: 2967:                  {
    #####:    #####: 2968:                    yycount = 1;
    #####:    #####: 2969:                    yysize = yysize0;
    #####:    #####: 2970:                    break;
        -:        -: 2971:                  }
    #####:    #####: 2972:                yyarg[yycount++] = yytname[yyx];
        -:        -: 2973:                {
    #####:    #####: 2974:                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
    #####:    #####: 2975:                  if (! (yysize <= yysize1
        -:        -: 2976:                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 2977:                    return 2;
    #####:    #####: 2978:                  yysize = yysize1;
        -:        -: 2979:                }
        -:        -: 2980:              }
        -:        -: 2981:        }
        -:        -: 2982:    }
        -:        -: 2983:
    #####:    #####: 2984:  switch (yycount)
        -:        -: 2985:    {
        -:        -: 2986:# define YYCASE_(N, S)                      \
        -:        -: 2987:      case N:                               \
        -:        -: 2988:        yyformat = S;                       \
        -:        -: 2989:      break
    #####:    #####: 2990:      YYCASE_(0, YY_("syntax error"));
    #####:    #####: 2991:      YYCASE_(1, YY_("syntax error, unexpected %s"));
    #####:    #####: 2992:      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
    #####:    #####: 2993:      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
    #####:    #####: 2994:      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
    #####:    #####: 2995:      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
        -:        -: 2996:# undef YYCASE_
        -:        -: 2997:    }
        -:        -: 2998:
        -:        -: 2999:  {
    #####:    #####: 3000:    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    #####:    #####: 3001:    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 3002:      return 2;
    #####:    #####: 3003:    yysize = yysize1;
        -:        -: 3004:  }
        -:        -: 3005:
    #####:    #####: 3006:  if (*yymsg_alloc < yysize)
        -:        -: 3007:    {
    #####:    #####: 3008:      *yymsg_alloc = 2 * yysize;
    #####:    #####: 3009:      if (! (yysize <= *yymsg_alloc
    #####:    #####: 3010:             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
    #####:    #####: 3011:        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
    #####:    #####: 3012:      return 1;
        -:        -: 3013:    }
        -:        -: 3014:
        -:        -: 3015:  /* Avoid sprintf, as that infringes on the user's name space.
        -:        -: 3016:     Don't have undefined behavior even if the translation
        -:        -: 3017:     produced a string with the wrong number of "%s"s.  */
        -:        -: 3018:  {
    #####:    #####: 3019:    char *yyp = *yymsg;
    #####:    #####: 3020:    int yyi = 0;
    #####:    #####: 3021:    while ((*yyp = *yyformat) != '\0')
    #####:    #####: 3022:      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
        -:        -: 3023:        {
    #####:    #####: 3024:          yyp += yytnamerr (yyp, yyarg[yyi++]);
    #####:    #####: 3025:          yyformat += 2;
        -:        -: 3026:        }
        -:        -: 3027:      else
        -:        -: 3028:        {
    #####:    #####: 3029:          yyp++;
    #####:    #####: 3030:          yyformat++;
        -:        -: 3031:        }
        -:        -: 3032:  }
    #####:    #####: 3033:  return 0;
        -:        -: 3034:}
        -:        -: 3035:#endif /* YYERROR_VERBOSE */
        -:        -: 3036:
        -:        -: 3037:/*-----------------------------------------------.
        -:        -: 3038:| Release the memory associated to this symbol.  |
        -:        -: 3039:`-----------------------------------------------*/
        -:        -: 3040:
        -:        -: 3041:static void
        4:        4: 3042:yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, struct _mesa_glsl_parse_state *state)
        -:        -: 3043:{
        -:        -: 3044:  YYUSE (yyvaluep);
        -:        -: 3045:  YYUSE (yylocationp);
        -:        -: 3046:  YYUSE (state);
        4:        4: 3047:  if (!yymsg)
    #####:    #####: 3048:    yymsg = "Deleting";
        -:        -: 3049:  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
        -:        -: 3050:
        -:        -: 3051:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
        -:        -: 3052:  YYUSE (yytype);
        -:        -: 3053:  YY_IGNORE_MAYBE_UNINITIALIZED_END
        4:        4: 3054:}
        -:        -: 3055:
        -:        -: 3056:
        -:        -: 3057:
        -:        -: 3058:
        -:        -: 3059:/*----------.
        -:        -: 3060:| yyparse.  |
        -:        -: 3061:`----------*/
        -:        -: 3062:
        -:        -: 3063:int
        2:        2: 3064:yyparse (struct _mesa_glsl_parse_state *state)
        -:        -: 3065:{
        -:        -: 3066:/* The lookahead symbol.  */
        -:        -: 3067:int yychar;
        -:        -: 3068:
        -:        -: 3069:
        -:        -: 3070:/* The semantic value of the lookahead symbol.  */
        -:        -: 3071:/* Default value used for initialization, for pacifying older GCCs
        -:        -: 3072:   or non-GCC compilers.  */
        -:        -: 3073:YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
        -:        -: 3074:YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
        -:        -: 3075:
        -:        -: 3076:/* Location data for the lookahead symbol.  */
        -:        -: 3077:static YYLTYPE yyloc_default
        -:        -: 3078:# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
        -:        -: 3079:  = { 1, 1, 1, 1 }
        -:        -: 3080:# endif
        -:        -: 3081:;
        2:        2: 3082:YYLTYPE yylloc = yyloc_default;
        -:        -: 3083:
        -:        -: 3084:    /* Number of syntax errors so far.  */
        -:        -: 3085:    int yynerrs;
        -:        -: 3086:
        -:        -: 3087:    int yystate;
        -:        -: 3088:    /* Number of tokens to shift before error messages enabled.  */
        -:        -: 3089:    int yyerrstatus;
        -:        -: 3090:
        -:        -: 3091:    /* The stacks and their tools:
        -:        -: 3092:       'yyss': related to states.
        -:        -: 3093:       'yyvs': related to semantic values.
        -:        -: 3094:       'yyls': related to locations.
        -:        -: 3095:
        -:        -: 3096:       Refer to the stacks through separate pointers, to allow yyoverflow
        -:        -: 3097:       to reallocate them elsewhere.  */
        -:        -: 3098:
        -:        -: 3099:    /* The state stack.  */
        -:        -: 3100:    yytype_int16 yyssa[YYINITDEPTH];
        -:        -: 3101:    yytype_int16 *yyss;
        -:        -: 3102:    yytype_int16 *yyssp;
        -:        -: 3103:
        -:        -: 3104:    /* The semantic value stack.  */
        -:        -: 3105:    YYSTYPE yyvsa[YYINITDEPTH];
        -:        -: 3106:    YYSTYPE *yyvs;
        -:        -: 3107:    YYSTYPE *yyvsp;
        -:        -: 3108:
        -:        -: 3109:    /* The location stack.  */
        -:        -: 3110:    YYLTYPE yylsa[YYINITDEPTH];
        -:        -: 3111:    YYLTYPE *yyls;
        -:        -: 3112:    YYLTYPE *yylsp;
        -:        -: 3113:
        -:        -: 3114:    /* The locations where the error started and ended.  */
        -:        -: 3115:    YYLTYPE yyerror_range[3];
        -:        -: 3116:
        -:        -: 3117:    YYSIZE_T yystacksize;
        -:        -: 3118:
        -:        -: 3119:  int yyn;
        -:        -: 3120:  int yyresult;
        -:        -: 3121:  /* Lookahead token as an internal (translated) token number.  */
        2:        2: 3122:  int yytoken = 0;
        -:        -: 3123:  /* The variables used to return semantic value and location from the
        -:        -: 3124:     action routines.  */
        -:        -: 3125:  YYSTYPE yyval;
        -:        -: 3126:  YYLTYPE yyloc;
        -:        -: 3127:
        -:        -: 3128:#if YYERROR_VERBOSE
        -:        -: 3129:  /* Buffer for error messages, and its allocated size.  */
        -:        -: 3130:  char yymsgbuf[128];
        2:        2: 3131:  char *yymsg = yymsgbuf;
        2:        2: 3132:  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
        -:        -: 3133:#endif
        -:        -: 3134:
        -:        -: 3135:#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
        -:        -: 3136:
        -:        -: 3137:  /* The number of symbols on the RHS of the reduced rule.
        -:        -: 3138:     Keep to zero when no symbol should be popped.  */
        2:        2: 3139:  int yylen = 0;
        -:        -: 3140:
        2:        2: 3141:  yyssp = yyss = yyssa;
        2:        2: 3142:  yyvsp = yyvs = yyvsa;
        2:        2: 3143:  yylsp = yyls = yylsa;
        2:        2: 3144:  yystacksize = YYINITDEPTH;
        -:        -: 3145:
        -:        -: 3146:  YYDPRINTF ((stderr, "Starting parse\n"));
        -:        -: 3147:
        2:        2: 3148:  yystate = 0;
        2:        2: 3149:  yyerrstatus = 0;
        2:        2: 3150:  yynerrs = 0;
        2:        2: 3151:  yychar = YYEMPTY; /* Cause a token to be read.  */
        -:        -: 3152:
        -:        -: 3153:/* User initialization code.  */
        -:        -: 3154:#line 87 "./glsl/glsl_parser.yy" /* yacc.c:1429  */
        -:        -: 3155:{
        -:        -: 3156:   yylloc.first_line = 1;
        -:        -: 3157:   yylloc.first_column = 1;
        -:        -: 3158:   yylloc.last_line = 1;
        -:        -: 3159:   yylloc.last_column = 1;
        -:        -: 3160:   yylloc.source = 0;
        -:        -: 3161:}
        -:        -: 3162:
        -:        -: 3163:#line 3164 "glsl/glsl_parser.cpp" /* yacc.c:1429  */
        2:        2: 3164:  yylsp[0] = yylloc;
        2:        2: 3165:  goto yysetstate;
        -:        -: 3166:
        -:        -: 3167:/*------------------------------------------------------------.
        -:        -: 3168:| yynewstate -- Push a new state, which is found in yystate.  |
        -:        -: 3169:`------------------------------------------------------------*/
        -:        -: 3170: yynewstate:
        -:        -: 3171:  /* In all cases, when you get here, the value and location stacks
        -:        -: 3172:     have just been pushed.  So pushing a state here evens the stacks.  */
     1895:     1940: 3173:  yyssp++;
        -:        -: 3174:
        -:        -: 3175: yysetstate:
     1897:     1942: 3176:  *yyssp = yystate;
        -:        -: 3177:
     1897:     1942: 3178:  if (yyss + yystacksize - 1 <= yyssp)
        -:        -: 3179:    {
        -:        -: 3180:      /* Get the current used size of the three stacks, in elements.  */
    #####:    #####: 3181:      YYSIZE_T yysize = yyssp - yyss + 1;
        -:        -: 3182:
        -:        -: 3183:#ifdef yyoverflow
        -:        -: 3184:      {
        -:        -: 3185:        /* Give user a chance to reallocate the stack.  Use copies of
        -:        -: 3186:           these so that the &'s don't force the real ones into
        -:        -: 3187:           memory.  */
        -:        -: 3188:        YYSTYPE *yyvs1 = yyvs;
        -:        -: 3189:        yytype_int16 *yyss1 = yyss;
        -:        -: 3190:        YYLTYPE *yyls1 = yyls;
        -:        -: 3191:
        -:        -: 3192:        /* Each stack pointer address is followed by the size of the
        -:        -: 3193:           data in use in that stack, in bytes.  This used to be a
        -:        -: 3194:           conditional around just the two extra args, but that might
        -:        -: 3195:           be undefined if yyoverflow is a macro.  */
        -:        -: 3196:        yyoverflow (YY_("memory exhausted"),
        -:        -: 3197:                    &yyss1, yysize * sizeof (*yyssp),
        -:        -: 3198:                    &yyvs1, yysize * sizeof (*yyvsp),
        -:        -: 3199:                    &yyls1, yysize * sizeof (*yylsp),
        -:        -: 3200:                    &yystacksize);
        -:        -: 3201:
        -:        -: 3202:        yyls = yyls1;
        -:        -: 3203:        yyss = yyss1;
        -:        -: 3204:        yyvs = yyvs1;
        -:        -: 3205:      }
        -:        -: 3206:#else /* no yyoverflow */
        -:        -: 3207:# ifndef YYSTACK_RELOCATE
        -:        -: 3208:      goto yyexhaustedlab;
        -:        -: 3209:# else
        -:        -: 3210:      /* Extend the stack our own way.  */
    #####:    #####: 3211:      if (YYMAXDEPTH <= yystacksize)
    #####:    #####: 3212:        goto yyexhaustedlab;
    #####:    #####: 3213:      yystacksize *= 2;
    #####:    #####: 3214:      if (YYMAXDEPTH < yystacksize)
    #####:    #####: 3215:        yystacksize = YYMAXDEPTH;
        -:        -: 3216:
        -:        -: 3217:      {
    #####:    #####: 3218:        yytype_int16 *yyss1 = yyss;
        -:        -: 3219:        union yyalloc *yyptr =
    #####:    #####: 3220:          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    #####:    #####: 3221:        if (! yyptr)
    #####:    #####: 3222:          goto yyexhaustedlab;
    #####:    #####: 3223:        YYSTACK_RELOCATE (yyss_alloc, yyss);
    #####:    #####: 3224:        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    #####:    #####: 3225:        YYSTACK_RELOCATE (yyls_alloc, yyls);
        -:        -: 3226:#  undef YYSTACK_RELOCATE
    #####:    #####: 3227:        if (yyss1 != yyssa)
    #####:    #####: 3228:          YYSTACK_FREE (yyss1);
        -:        -: 3229:      }
        -:        -: 3230:# endif
        -:        -: 3231:#endif /* no yyoverflow */
        -:        -: 3232:
    #####:    #####: 3233:      yyssp = yyss + yysize - 1;
    #####:    #####: 3234:      yyvsp = yyvs + yysize - 1;
    #####:    #####: 3235:      yylsp = yyls + yysize - 1;
        -:        -: 3236:
        -:        -: 3237:      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
        -:        -: 3238:                  (unsigned long int) yystacksize));
        -:        -: 3239:
    #####:    #####: 3240:      if (yyss + yystacksize - 1 <= yyssp)
    #####:    #####: 3241:        YYABORT;
        -:        -: 3242:    }
        -:        -: 3243:
        -:        -: 3244:  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
        -:        -: 3245:
     1897:     1942: 3246:  if (yystate == YYFINAL)
        2:        2: 3247:    YYACCEPT;
        -:        -: 3248:
     1895:     1940: 3249:  goto yybackup;
        -:        -: 3250:
        -:        -: 3251:/*-----------.
        -:        -: 3252:| yybackup.  |
        -:        -: 3253:`-----------*/
        -:        -: 3254:yybackup:
        -:        -: 3255:
        -:        -: 3256:  /* Do appropriate processing given the current state.  Read a
        -:        -: 3257:     lookahead token if we need one and don't already have one.  */
        -:        -: 3258:
        -:        -: 3259:  /* First try to decide what to do without reference to lookahead token.  */
     1895:     1940: 3260:  yyn = yypact[yystate];
     1895:     1940: 3261:  if (yypact_value_is_default (yyn))
      654:      669: 3262:    goto yydefault;
        -:        -: 3263:
        -:        -: 3264:  /* Not known => get a lookahead token if don't already have one.  */
        -:        -: 3265:
        -:        -: 3266:  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
     1241:     1271: 3267:  if (yychar == YYEMPTY)
        -:        -: 3268:    {
        -:        -: 3269:      YYDPRINTF ((stderr, "Reading a token: "));
      301:      313: 3270:      yychar = yylex (&yylval, &yylloc, state);
        -:        -: 3271:    }
        -:        -: 3272:
     1241:     1271: 3273:  if (yychar <= YYEOF)
        -:        -: 3274:    {
        4:        4: 3275:      yychar = yytoken = YYEOF;
        -:        -: 3276:      YYDPRINTF ((stderr, "Now at end of input.\n"));
        -:        -: 3277:    }
        -:        -: 3278:  else
        -:        -: 3279:    {
     1237:     1267: 3280:      yytoken = YYTRANSLATE (yychar);
        -:        -: 3281:      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
        -:        -: 3282:    }
        -:        -: 3283:
        -:        -: 3284:  /* If the proper action on seeing token YYTOKEN is to reduce or to
        -:        -: 3285:     detect an error, take that action.  */
     1241:     1271: 3286:  yyn += yytoken;
     1241:     1271: 3287:  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
        -:        -: 3288:    goto yydefault;
      312:      324: 3289:  yyn = yytable[yyn];
      312:      324: 3290:  if (yyn <= 0)
        -:        -: 3291:    {
        -:        -: 3292:      if (yytable_value_is_error (yyn))
        -:        -: 3293:        goto yyerrlab;
       11:       11: 3294:      yyn = -yyn;
       11:       11: 3295:      goto yyreduce;
        -:        -: 3296:    }
        -:        -: 3297:
        -:        -: 3298:  /* Count tokens shifted since error; after three, turn off error
        -:        -: 3299:     status.  */
      301:      313: 3300:  if (yyerrstatus)
    #####:    #####: 3301:    yyerrstatus--;
        -:        -: 3302:
        -:        -: 3303:  /* Shift the lookahead token.  */
        -:        -: 3304:  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
        -:        -: 3305:
        -:        -: 3306:  /* Discard the shifted token.  */
      301:      313: 3307:  yychar = YYEMPTY;
        -:        -: 3308:
      301:      313: 3309:  yystate = yyn;
        -:        -: 3310:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
      301:      313: 3311:  *++yyvsp = yylval;
        -:        -: 3312:  YY_IGNORE_MAYBE_UNINITIALIZED_END
      301:      313: 3313:  *++yylsp = yylloc;
      301:      313: 3314:  goto yynewstate;
        -:        -: 3315:
        -:        -: 3316:
        -:        -: 3317:/*-----------------------------------------------------------.
        -:        -: 3318:| yydefault -- do the default action for the current state.  |
        -:        -: 3319:`-----------------------------------------------------------*/
        -:        -: 3320:yydefault:
     1583:     1616: 3321:  yyn = yydefact[yystate];
     1583:     1616: 3322:  if (yyn == 0)
    #####:    #####: 3323:    goto yyerrlab;
     1583:     1616: 3324:  goto yyreduce;
        -:        -: 3325:
        -:        -: 3326:
        -:        -: 3327:/*-----------------------------.
        -:        -: 3328:| yyreduce -- Do a reduction.  |
        -:        -: 3329:`-----------------------------*/
        -:        -: 3330:yyreduce:
        -:        -: 3331:  /* yyn is the number of a rule to reduce with.  */
     1594:     1627: 3332:  yylen = yyr2[yyn];
        -:        -: 3333:
        -:        -: 3334:  /* If YYLEN is nonzero, implement the default value of the action:
        -:        -: 3335:     '$$ = $1'.
        -:        -: 3336:
        -:        -: 3337:     Otherwise, the following line sets YYVAL to garbage.
        -:        -: 3338:     This behavior is undocumented and Bison
        -:        -: 3339:     users should not rely upon it.  Assigning to YYVAL
        -:        -: 3340:     unconditionally makes the parser a bit smaller, and it avoids a
        -:        -: 3341:     GCC warning that YYVAL may be used uninitialized.  */
     1594:     1627: 3342:  yyval = yyvsp[1-yylen];
        -:        -: 3343:
        -:        -: 3344:  /* Default location.  */
     1594:     1627: 3345:  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
        -:        -: 3346:  YY_REDUCE_PRINT (yyn);
     1594:     1627: 3347:  switch (yyn)
        -:        -: 3348:    {
        -:        -: 3349:        case 2:
        -:        -: 3350:#line 313 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3351:    {
        -:        -: 3352:      _mesa_glsl_initialize_types(state);
        -:        -: 3353:   }
        -:        -: 3354:#line 3355 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3355:    break;
        -:        -: 3356:
        -:        -: 3357:  case 3:
        -:        -: 3358:#line 317 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3359:    {
        -:        -: 3360:      delete state->symbols;
        -:        -: 3361:      state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
        -:        -: 3362:      if (state->es_shader) {
        -:        -: 3363:         if (state->stage == MESA_SHADER_FRAGMENT) {
        -:        -: 3364:            state->symbols->add_default_precision_qualifier("int", ast_precision_medium);
        -:        -: 3365:         } else {
        -:        -: 3366:            state->symbols->add_default_precision_qualifier("float", ast_precision_high);
        -:        -: 3367:            state->symbols->add_default_precision_qualifier("int", ast_precision_high);
        -:        -: 3368:         }
        -:        -: 3369:         state->symbols->add_default_precision_qualifier("sampler2D", ast_precision_low);
        -:        -: 3370:         state->symbols->add_default_precision_qualifier("samplerExternalOES", ast_precision_low);
        -:        -: 3371:         state->symbols->add_default_precision_qualifier("samplerCube", ast_precision_low);
        -:        -: 3372:         state->symbols->add_default_precision_qualifier("atomic_uint", ast_precision_high);
        -:        -: 3373:      }
        -:        -: 3374:      _mesa_glsl_initialize_types(state);
        -:        -: 3375:   }
        -:        -: 3376:#line 3377 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3377:    break;
        -:        -: 3378:
        -:        -: 3379:  case 5:
        -:        -: 3380:#line 339 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3381:    {
        -:        -: 3382:      state->process_version_directive(&(yylsp[-1]), (yyvsp[-1].n), NULL);
        -:        -: 3383:      if (state->error) {
        -:        -: 3384:         YYERROR;
        -:        -: 3385:      }
        -:        -: 3386:   }
        -:        -: 3387:#line 3388 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3388:    break;
        -:        -: 3389:
        -:        -: 3390:  case 6:
        -:        -: 3391:#line 346 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3392:    {
        -:        -: 3393:      state->process_version_directive(&(yylsp[-2]), (yyvsp[-2].n), (yyvsp[-1].identifier));
        -:        -: 3394:      if (state->error) {
        -:        -: 3395:         YYERROR;
        -:        -: 3396:      }
        -:        -: 3397:   }
        -:        -: 3398:#line 3399 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3399:    break;
        -:        -: 3400:
        -:        -: 3401:  case 11:
        -:        -: 3402:#line 360 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3403:    {
        -:        -: 3404:      /* Pragma invariant(all) cannot be used in a fragment shader.
        -:        -: 3405:       *
        -:        -: 3406:       * Page 27 of the GLSL 1.20 spec, Page 53 of the GLSL ES 3.00 spec:
        -:        -: 3407:       *
        -:        -: 3408:       *     "It is an error to use this pragma in a fragment shader."
        -:        -: 3409:       */
        -:        -: 3410:      if (state->is_version(120, 300) &&
        -:        -: 3411:          state->stage == MESA_SHADER_FRAGMENT) {
        -:        -: 3412:         _mesa_glsl_error(& (yylsp[-1]), state,
        -:        -: 3413:                          "pragma `invariant(all)' cannot be used "
        -:        -: 3414:                          "in a fragment shader.");
        -:        -: 3415:      } else if (!state->is_version(120, 100)) {
        -:        -: 3416:         _mesa_glsl_warning(& (yylsp[-1]), state,
        -:        -: 3417:                            "pragma `invariant(all)' not supported in %s "
        -:        -: 3418:                            "(GLSL ES 1.00 or GLSL 1.20 required)",
        -:        -: 3419:                            state->get_version_string());
        -:        -: 3420:      } else {
        -:        -: 3421:         state->all_invariant = true;
        -:        -: 3422:      }
        -:        -: 3423:   }
        -:        -: 3424:#line 3425 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3425:    break;
        -:        -: 3426:
        -:        -: 3427:  case 17:
        -:        -: 3428:#line 396 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3429:    {
        -:        -: 3430:      if (!_mesa_glsl_process_extension((yyvsp[-3].identifier), & (yylsp[-3]), (yyvsp[-1].identifier), & (yylsp[-1]), state)) {
        -:        -: 3431:         YYERROR;
        -:        -: 3432:      }
        -:        -: 3433:   }
        -:        -: 3434:#line 3435 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3435:    break;
        -:        -: 3436:
        -:        -: 3437:  case 18:
        -:        -: 3438:#line 405 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3439:    {
        -:        -: 3440:      /* FINISHME: The NULL test is required because pragmas are set to
        -:        -: 3441:       * FINISHME: NULL. (See production rule for external_declaration.)
        -:        -: 3442:       */
        -:        -: 3443:      if ((yyvsp[0].node) != NULL)
        -:        -: 3444:         state->translation_unit.push_tail(& (yyvsp[0].node)->link);
        -:        -: 3445:   }
        -:        -: 3446:#line 3447 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3447:    break;
        -:        -: 3448:
        -:        -: 3449:  case 19:
        -:        -: 3450:#line 413 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3451:    {
        -:        -: 3452:      /* FINISHME: The NULL test is required because pragmas are set to
        -:        -: 3453:       * FINISHME: NULL. (See production rule for external_declaration.)
        -:        -: 3454:       */
        -:        -: 3455:      if ((yyvsp[0].node) != NULL)
        -:        -: 3456:         state->translation_unit.push_tail(& (yyvsp[0].node)->link);
        -:        -: 3457:   }
        -:        -: 3458:#line 3459 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        4:        4: 3459:    break;
        -:        -: 3460:
        -:        -: 3461:  case 20:
        -:        -: 3462:#line 420 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3463:    {
        -:        -: 3464:      if (!state->allow_extension_directive_midshader) {
        -:        -: 3465:         _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 3466:                          "#extension directive is not allowed "
        -:        -: 3467:                          "in the middle of a shader");
        -:        -: 3468:         YYERROR;
        -:        -: 3469:      }
        -:        -: 3470:   }
        -:        -: 3471:#line 3472 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3472:    break;
        -:        -: 3473:
        -:        -: 3474:  case 23:
        -:        -: 3475:#line 437 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3476:    {
        -:        -: 3477:      void *ctx = state->linalloc;
        -:        -: 3478:      (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
        -:        -: 3479:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3480:      (yyval.expression)->primary_expression.identifier = (yyvsp[0].identifier);
        -:        -: 3481:   }
        -:        -: 3482:#line 3483 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       58:       59: 3483:    break;
        -:        -: 3484:
        -:        -: 3485:  case 24:
        -:        -: 3486:#line 444 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3487:    {
        -:        -: 3488:      void *ctx = state->linalloc;
        -:        -: 3489:      (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
        -:        -: 3490:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3491:      (yyval.expression)->primary_expression.int_constant = (yyvsp[0].n);
        -:        -: 3492:   }
        -:        -: 3493:#line 3494 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       17:       17: 3494:    break;
        -:        -: 3495:
        -:        -: 3496:  case 25:
        -:        -: 3497:#line 451 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3498:    {
        -:        -: 3499:      void *ctx = state->linalloc;
        -:        -: 3500:      (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
        -:        -: 3501:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3502:      (yyval.expression)->primary_expression.uint_constant = (yyvsp[0].n);
        -:        -: 3503:   }
        -:        -: 3504:#line 3505 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3505:    break;
        -:        -: 3506:
        -:        -: 3507:  case 26:
        -:        -: 3508:#line 458 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3509:    {
        -:        -: 3510:      void *ctx = state->linalloc;
        -:        -: 3511:      (yyval.expression) = new(ctx) ast_expression(ast_int64_constant, NULL, NULL, NULL);
        -:        -: 3512:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3513:      (yyval.expression)->primary_expression.int64_constant = (yyvsp[0].n64);
        -:        -: 3514:   }
        -:        -: 3515:#line 3516 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3516:    break;
        -:        -: 3517:
        -:        -: 3518:  case 27:
        -:        -: 3519:#line 465 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3520:    {
        -:        -: 3521:      void *ctx = state->linalloc;
        -:        -: 3522:      (yyval.expression) = new(ctx) ast_expression(ast_uint64_constant, NULL, NULL, NULL);
        -:        -: 3523:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3524:      (yyval.expression)->primary_expression.uint64_constant = (yyvsp[0].n64);
        -:        -: 3525:   }
        -:        -: 3526:#line 3527 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3527:    break;
        -:        -: 3528:
        -:        -: 3529:  case 28:
        -:        -: 3530:#line 472 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3531:    {
        -:        -: 3532:      void *ctx = state->linalloc;
        -:        -: 3533:      (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
        -:        -: 3534:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3535:      (yyval.expression)->primary_expression.float_constant = (yyvsp[0].real);
        -:        -: 3536:   }
        -:        -: 3537:#line 3538 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        3: 3538:    break;
        -:        -: 3539:
        -:        -: 3540:  case 29:
        -:        -: 3541:#line 479 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3542:    {
        -:        -: 3543:      void *ctx = state->linalloc;
        -:        -: 3544:      (yyval.expression) = new(ctx) ast_expression(ast_double_constant, NULL, NULL, NULL);
        -:        -: 3545:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3546:      (yyval.expression)->primary_expression.double_constant = (yyvsp[0].dreal);
        -:        -: 3547:   }
        -:        -: 3548:#line 3549 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3549:    break;
        -:        -: 3550:
        -:        -: 3551:  case 30:
        -:        -: 3552:#line 486 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3553:    {
        -:        -: 3554:      void *ctx = state->linalloc;
        -:        -: 3555:      (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
        -:        -: 3556:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3557:      (yyval.expression)->primary_expression.bool_constant = (yyvsp[0].n);
        -:        -: 3558:   }
        -:        -: 3559:#line 3560 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3560:    break;
        -:        -: 3561:
        -:        -: 3562:  case 31:
        -:        -: 3563:#line 493 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3564:    {
        -:        -: 3565:      (yyval.expression) = (yyvsp[-1].expression);
        -:        -: 3566:   }
        -:        -: 3567:#line 3568 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3568:    break;
        -:        -: 3569:
        -:        -: 3570:  case 33:
        -:        -: 3571:#line 501 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3572:    {
        -:        -: 3573:      void *ctx = state->linalloc;
        -:        -: 3574:      (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[-3].expression), (yyvsp[-1].expression), NULL);
        -:        -: 3575:      (yyval.expression)->set_location_range((yylsp[-3]), (yylsp[0]));
        -:        -: 3576:   }
        -:        -: 3577:#line 3578 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       16:       16: 3578:    break;
        -:        -: 3579:
        -:        -: 3580:  case 34:
        -:        -: 3581:#line 507 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3582:    {
        -:        -: 3583:      (yyval.expression) = (yyvsp[0].expression);
        -:        -: 3584:   }
        -:        -: 3585:#line 3586 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       11:       11: 3586:    break;
        -:        -: 3587:
        -:        -: 3588:  case 35:
        -:        -: 3589:#line 511 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3590:    {
        -:        -: 3591:      void *ctx = state->linalloc;
        -:        -: 3592:      (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[-2].expression), NULL, NULL);
        -:        -: 3593:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3594:      (yyval.expression)->primary_expression.identifier = (yyvsp[0].identifier);
        -:        -: 3595:   }
        -:        -: 3596:#line 3597 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       14:       15: 3597:    break;
        -:        -: 3598:
        -:        -: 3599:  case 36:
        -:        -: 3600:#line 518 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3601:    {
        -:        -: 3602:      void *ctx = state->linalloc;
        -:        -: 3603:      (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[-1].expression), NULL, NULL);
        -:        -: 3604:      (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 3605:   }
        -:        -: 3606:#line 3607 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3607:    break;
        -:        -: 3608:
        -:        -: 3609:  case 37:
        -:        -: 3610:#line 524 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3611:    {
        -:        -: 3612:      void *ctx = state->linalloc;
        -:        -: 3613:      (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[-1].expression), NULL, NULL);
        -:        -: 3614:      (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 3615:   }
        -:        -: 3616:#line 3617 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3617:    break;
        -:        -: 3618:
        -:        -: 3619:  case 45:
        -:        -: 3620:#line 555 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3621:    {
        -:        -: 3622:      (yyval.expression) = (yyvsp[-1].expression);
        -:        -: 3623:      (yyval.expression)->set_location((yylsp[-1]));
        -:        -: 3624:      (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
        -:        -: 3625:   }
        -:        -: 3626:#line 3627 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       11:       11: 3627:    break;
        -:        -: 3628:
        -:        -: 3629:  case 46:
        -:        -: 3630:#line 561 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3631:    {
        -:        -: 3632:      (yyval.expression) = (yyvsp[-2].expression);
        -:        -: 3633:      (yyval.expression)->set_location((yylsp[-2]));
        -:        -: 3634:      (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
        -:        -: 3635:   }
        -:        -: 3636:#line 3637 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       11:       11: 3637:    break;
        -:        -: 3638:
        -:        -: 3639:  case 48:
        -:        -: 3640:#line 577 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3641:    {
        -:        -: 3642:      void *ctx = state->linalloc;
        -:        -: 3643:      (yyval.expression) = new(ctx) ast_function_expression((yyvsp[0].type_specifier));
        -:        -: 3644:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3645:      }
        -:        -: 3646:#line 3647 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        4:        4: 3647:    break;
        -:        -: 3648:
        -:        -: 3649:  case 49:
        -:        -: 3650:#line 583 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3651:    {
        -:        -: 3652:      void *ctx = state->linalloc;
        -:        -: 3653:      (yyval.expression) = new(ctx) ast_function_expression((yyvsp[0].expression));
        -:        -: 3654:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 3655:      }
        -:        -: 3656:#line 3657 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        7:        7: 3657:    break;
        -:        -: 3658:
        -:        -: 3659:  case 51:
        -:        -: 3660:#line 598 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3661:    {
        -:        -: 3662:      void *ctx = state->linalloc;
        -:        -: 3663:      (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[0].expression), NULL, NULL);
        -:        -: 3664:      (yyval.expression)->set_location((yylsp[-1]));
        -:        -: 3665:   }
        -:        -: 3666:#line 3667 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3667:    break;
        -:        -: 3668:
        -:        -: 3669:  case 52:
        -:        -: 3670:#line 604 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3671:    {
        -:        -: 3672:      void *ctx = state->linalloc;
        -:        -: 3673:      (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[0].expression), NULL, NULL);
        -:        -: 3674:      (yyval.expression)->set_location((yylsp[-1]));
        -:        -: 3675:   }
        -:        -: 3676:#line 3677 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3677:    break;
        -:        -: 3678:
        -:        -: 3679:  case 53:
        -:        -: 3680:#line 610 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3681:    {
        -:        -: 3682:      void *ctx = state->linalloc;
        -:        -: 3683:      (yyval.expression) = new(ctx) ast_expression((yyvsp[-1].n), (yyvsp[0].expression), NULL, NULL);
        -:        -: 3684:      (yyval.expression)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 3685:   }
        -:        -: 3686:#line 3687 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3687:    break;
        -:        -: 3688:
        -:        -: 3689:  case 54:
        -:        -: 3690:#line 619 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3691:    { (yyval.n) = ast_plus; }
        -:        -: 3692:#line 3693 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3693:    break;
        -:        -: 3694:
        -:        -: 3695:  case 55:
        -:        -: 3696:#line 620 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3697:    { (yyval.n) = ast_neg; }
        -:        -: 3698:#line 3699 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3699:    break;
        -:        -: 3700:
        -:        -: 3701:  case 56:
        -:        -: 3702:#line 621 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3703:    { (yyval.n) = ast_logic_not; }
        -:        -: 3704:#line 3705 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3705:    break;
        -:        -: 3706:
        -:        -: 3707:  case 57:
        -:        -: 3708:#line 622 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3709:    { (yyval.n) = ast_bit_not; }
        -:        -: 3710:#line 3711 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3711:    break;
        -:        -: 3712:
        -:        -: 3713:  case 59:
        -:        -: 3714:#line 628 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3715:    {
        -:        -: 3716:      void *ctx = state->linalloc;
        -:        -: 3717:      (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3718:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3719:   }
        -:        -: 3720:#line 3721 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 3721:    break;
        -:        -: 3722:
        -:        -: 3723:  case 60:
        -:        -: 3724:#line 634 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3725:    {
        -:        -: 3726:      void *ctx = state->linalloc;
        -:        -: 3727:      (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3728:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3729:   }
        -:        -: 3730:#line 3731 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 3731:    break;
        -:        -: 3732:
        -:        -: 3733:  case 61:
        -:        -: 3734:#line 640 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3735:    {
        -:        -: 3736:      void *ctx = state->linalloc;
        -:        -: 3737:      (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3738:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3739:   }
        -:        -: 3740:#line 3741 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3741:    break;
        -:        -: 3742:
        -:        -: 3743:  case 63:
        -:        -: 3744:#line 650 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3745:    {
        -:        -: 3746:      void *ctx = state->linalloc;
        -:        -: 3747:      (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3748:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3749:   }
        -:        -: 3750:#line 3751 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 3751:    break;
        -:        -: 3752:
        -:        -: 3753:  case 64:
        -:        -: 3754:#line 656 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3755:    {
        -:        -: 3756:      void *ctx = state->linalloc;
        -:        -: 3757:      (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3758:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3759:   }
        -:        -: 3760:#line 3761 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3761:    break;
        -:        -: 3762:
        -:        -: 3763:  case 66:
        -:        -: 3764:#line 666 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3765:    {
        -:        -: 3766:      void *ctx = state->linalloc;
        -:        -: 3767:      (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3768:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3769:   }
        -:        -: 3770:#line 3771 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3771:    break;
        -:        -: 3772:
        -:        -: 3773:  case 67:
        -:        -: 3774:#line 672 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3775:    {
        -:        -: 3776:      void *ctx = state->linalloc;
        -:        -: 3777:      (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3778:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3779:   }
        -:        -: 3780:#line 3781 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3781:    break;
        -:        -: 3782:
        -:        -: 3783:  case 69:
        -:        -: 3784:#line 682 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3785:    {
        -:        -: 3786:      void *ctx = state->linalloc;
        -:        -: 3787:      (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3788:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3789:   }
        -:        -: 3790:#line 3791 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        3: 3791:    break;
        -:        -: 3792:
        -:        -: 3793:  case 70:
        -:        -: 3794:#line 688 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3795:    {
        -:        -: 3796:      void *ctx = state->linalloc;
        -:        -: 3797:      (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3798:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3799:   }
        -:        -: 3800:#line 3801 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3801:    break;
        -:        -: 3802:
        -:        -: 3803:  case 71:
        -:        -: 3804:#line 694 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3805:    {
        -:        -: 3806:      void *ctx = state->linalloc;
        -:        -: 3807:      (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3808:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3809:   }
        -:        -: 3810:#line 3811 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 3811:    break;
        -:        -: 3812:
        -:        -: 3813:  case 72:
        -:        -: 3814:#line 700 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3815:    {
        -:        -: 3816:      void *ctx = state->linalloc;
        -:        -: 3817:      (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3818:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3819:   }
        -:        -: 3820:#line 3821 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 3821:    break;
        -:        -: 3822:
        -:        -: 3823:  case 74:
        -:        -: 3824:#line 710 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3825:    {
        -:        -: 3826:      void *ctx = state->linalloc;
        -:        -: 3827:      (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3828:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3829:   }
        -:        -: 3830:#line 3831 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3831:    break;
        -:        -: 3832:
        -:        -: 3833:  case 75:
        -:        -: 3834:#line 716 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3835:    {
        -:        -: 3836:      void *ctx = state->linalloc;
        -:        -: 3837:      (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3838:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3839:   }
        -:        -: 3840:#line 3841 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3841:    break;
        -:        -: 3842:
        -:        -: 3843:  case 77:
        -:        -: 3844:#line 726 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3845:    {
        -:        -: 3846:      void *ctx = state->linalloc;
        -:        -: 3847:      (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_and, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3848:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3849:   }
        -:        -: 3850:#line 3851 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3851:    break;
        -:        -: 3852:
        -:        -: 3853:  case 79:
        -:        -: 3854:#line 736 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3855:    {
        -:        -: 3856:      void *ctx = state->linalloc;
        -:        -: 3857:      (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3858:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3859:   }
        -:        -: 3860:#line 3861 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3861:    break;
        -:        -: 3862:
        -:        -: 3863:  case 81:
        -:        -: 3864:#line 746 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3865:    {
        -:        -: 3866:      void *ctx = state->linalloc;
        -:        -: 3867:      (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3868:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3869:   }
        -:        -: 3870:#line 3871 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3871:    break;
        -:        -: 3872:
        -:        -: 3873:  case 83:
        -:        -: 3874:#line 756 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3875:    {
        -:        -: 3876:      void *ctx = state->linalloc;
        -:        -: 3877:      (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3878:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3879:   }
        -:        -: 3880:#line 3881 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3881:    break;
        -:        -: 3882:
        -:        -: 3883:  case 85:
        -:        -: 3884:#line 766 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3885:    {
        -:        -: 3886:      void *ctx = state->linalloc;
        -:        -: 3887:      (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3888:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3889:   }
        -:        -: 3890:#line 3891 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3891:    break;
        -:        -: 3892:
        -:        -: 3893:  case 87:
        -:        -: 3894:#line 776 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3895:    {
        -:        -: 3896:      void *ctx = state->linalloc;
        -:        -: 3897:      (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3898:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3899:   }
        -:        -: 3900:#line 3901 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3901:    break;
        -:        -: 3902:
        -:        -: 3903:  case 89:
        -:        -: 3904:#line 786 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3905:    {
        -:        -: 3906:      void *ctx = state->linalloc;
        -:        -: 3907:      (yyval.expression) = new(ctx) ast_expression(ast_conditional, (yyvsp[-4].expression), (yyvsp[-2].expression), (yyvsp[0].expression));
        -:        -: 3908:      (yyval.expression)->set_location_range((yylsp[-4]), (yylsp[0]));
        -:        -: 3909:   }
        -:        -: 3910:#line 3911 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3911:    break;
        -:        -: 3912:
        -:        -: 3913:  case 91:
        -:        -: 3914:#line 796 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3915:    {
        -:        -: 3916:      void *ctx = state->linalloc;
        -:        -: 3917:      (yyval.expression) = new(ctx) ast_expression((yyvsp[-1].n), (yyvsp[-2].expression), (yyvsp[0].expression), NULL);
        -:        -: 3918:      (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 3919:   }
        -:        -: 3920:#line 3921 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       10:       10: 3921:    break;
        -:        -: 3922:
        -:        -: 3923:  case 92:
        -:        -: 3924:#line 804 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3925:    { (yyval.n) = ast_assign; }
        -:        -: 3926:#line 3927 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        9:        9: 3927:    break;
        -:        -: 3928:
        -:        -: 3929:  case 93:
        -:        -: 3930:#line 805 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3931:    { (yyval.n) = ast_mul_assign; }
        -:        -: 3932:#line 3933 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3933:    break;
        -:        -: 3934:
        -:        -: 3935:  case 94:
        -:        -: 3936:#line 806 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3937:    { (yyval.n) = ast_div_assign; }
        -:        -: 3938:#line 3939 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3939:    break;
        -:        -: 3940:
        -:        -: 3941:  case 95:
        -:        -: 3942:#line 807 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3943:    { (yyval.n) = ast_mod_assign; }
        -:        -: 3944:#line 3945 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3945:    break;
        -:        -: 3946:
        -:        -: 3947:  case 96:
        -:        -: 3948:#line 808 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3949:    { (yyval.n) = ast_add_assign; }
        -:        -: 3950:#line 3951 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 3951:    break;
        -:        -: 3952:
        -:        -: 3953:  case 97:
        -:        -: 3954:#line 809 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3955:    { (yyval.n) = ast_sub_assign; }
        -:        -: 3956:#line 3957 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3957:    break;
        -:        -: 3958:
        -:        -: 3959:  case 98:
        -:        -: 3960:#line 810 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3961:    { (yyval.n) = ast_ls_assign; }
        -:        -: 3962:#line 3963 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3963:    break;
        -:        -: 3964:
        -:        -: 3965:  case 99:
        -:        -: 3966:#line 811 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3967:    { (yyval.n) = ast_rs_assign; }
        -:        -: 3968:#line 3969 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3969:    break;
        -:        -: 3970:
        -:        -: 3971:  case 100:
        -:        -: 3972:#line 812 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3973:    { (yyval.n) = ast_and_assign; }
        -:        -: 3974:#line 3975 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3975:    break;
        -:        -: 3976:
        -:        -: 3977:  case 101:
        -:        -: 3978:#line 813 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3979:    { (yyval.n) = ast_xor_assign; }
        -:        -: 3980:#line 3981 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3981:    break;
        -:        -: 3982:
        -:        -: 3983:  case 102:
        -:        -: 3984:#line 814 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3985:    { (yyval.n) = ast_or_assign; }
        -:        -: 3986:#line 3987 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 3987:    break;
        -:        -: 3988:
        -:        -: 3989:  case 103:
        -:        -: 3990:#line 819 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3991:    {
        -:        -: 3992:      (yyval.expression) = (yyvsp[0].expression);
        -:        -: 3993:   }
        -:        -: 3994:#line 3995 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       35:       36: 3995:    break;
        -:        -: 3996:
        -:        -: 3997:  case 104:
        -:        -: 3998:#line 823 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 3999:    {
        -:        -: 4000:      void *ctx = state->linalloc;
        -:        -: 4001:      if ((yyvsp[-2].expression)->oper != ast_sequence) {
        -:        -: 4002:         (yyval.expression) = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
        -:        -: 4003:         (yyval.expression)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 4004:         (yyval.expression)->expressions.push_tail(& (yyvsp[-2].expression)->link);
        -:        -: 4005:      } else {
        -:        -: 4006:         (yyval.expression) = (yyvsp[-2].expression);
        -:        -: 4007:      }
        -:        -: 4008:
        -:        -: 4009:      (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
        -:        -: 4010:   }
        -:        -: 4011:#line 4012 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4012:    break;
        -:        -: 4013:
        -:        -: 4014:  case 106:
        -:        -: 4015:#line 843 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4016:    {
        -:        -: 4017:      state->symbols->pop_scope();
        -:        -: 4018:      (yyval.node) = (yyvsp[-1].function);
        -:        -: 4019:   }
        -:        -: 4020:#line 4021 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4021:    break;
        -:        -: 4022:
        -:        -: 4023:  case 107:
        -:        -: 4024:#line 848 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4025:    {
        -:        -: 4026:      (yyval.node) = (yyvsp[-1].declarator_list);
        -:        -: 4027:   }
        -:        -: 4028:#line 4029 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        8:        8: 4029:    break;
        -:        -: 4030:
        -:        -: 4031:  case 108:
        -:        -: 4032:#line 852 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4033:    {
        -:        -: 4034:      (yyvsp[-1].type_specifier)->default_precision = (yyvsp[-2].n);
        -:        -: 4035:      (yyval.node) = (yyvsp[-1].type_specifier);
        -:        -: 4036:   }
        -:        -: 4037:#line 4038 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4038:    break;
        -:        -: 4039:
        -:        -: 4040:  case 109:
        -:        -: 4041:#line 857 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4042:    {
        -:        -: 4043:      ast_interface_block *block = (ast_interface_block *) (yyvsp[0].node);
        -:        -: 4044:      if (block->layout.has_layout() || block->layout.has_memory()) {
        -:        -: 4045:         if (!block->default_layout.merge_qualifier(& (yylsp[0]), state, block->layout, false)) {
        -:        -: 4046:            YYERROR;
        -:        -: 4047:         }
        -:        -: 4048:      }
        -:        -: 4049:      block->layout = block->default_layout;
        -:        -: 4050:      if (!block->layout.push_to_global(& (yylsp[0]), state)) {
        -:        -: 4051:         YYERROR;
        -:        -: 4052:      }
        -:        -: 4053:      (yyval.node) = (yyvsp[0].node);
        -:        -: 4054:   }
        -:        -: 4055:#line 4056 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4056:    break;
        -:        -: 4057:
        -:        -: 4058:  case 113:
        -:        -: 4059:#line 883 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4060:    {
        -:        -: 4061:      (yyval.function) = (yyvsp[-1].function);
        -:        -: 4062:      (yyval.function)->parameters.push_tail(& (yyvsp[0].parameter_declarator)->link);
        -:        -: 4063:   }
        -:        -: 4064:#line 4065 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 4065:    break;
        -:        -: 4066:
        -:        -: 4067:  case 114:
        -:        -: 4068:#line 888 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4069:    {
        -:        -: 4070:      (yyval.function) = (yyvsp[-2].function);
        -:        -: 4071:      (yyval.function)->parameters.push_tail(& (yyvsp[0].parameter_declarator)->link);
        -:        -: 4072:   }
        -:        -: 4073:#line 4074 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 4074:    break;
        -:        -: 4075:
        -:        -: 4076:  case 115:
        -:        -: 4077:#line 896 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4078:    {
        -:        -: 4079:      void *ctx = state->linalloc;
        -:        -: 4080:      (yyval.function) = new(ctx) ast_function();
        -:        -: 4081:      (yyval.function)->set_location((yylsp[-1]));
        -:        -: 4082:      (yyval.function)->return_type = (yyvsp[-2].fully_specified_type);
        -:        -: 4083:      (yyval.function)->identifier = (yyvsp[-1].identifier);
        -:        -: 4084:
        -:        -: 4085:      if ((yyvsp[-2].fully_specified_type)->qualifier.is_subroutine_decl()) {
        -:        -: 4086:         /* add type for IDENTIFIER search */
        -:        -: 4087:         state->symbols->add_type((yyvsp[-1].identifier), glsl_type::get_subroutine_instance((yyvsp[-1].identifier)));
        -:        -: 4088:      } else
        -:        -: 4089:         state->symbols->add_function(new(state) ir_function((yyvsp[-1].identifier)));
        -:        -: 4090:      state->symbols->push_scope();
        -:        -: 4091:   }
        -:        -: 4092:#line 4093 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 4093:    break;
        -:        -: 4094:
        -:        -: 4095:  case 116:
        -:        -: 4096:#line 914 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4097:    {
        -:        -: 4098:      void *ctx = state->linalloc;
        -:        -: 4099:      (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
        -:        -: 4100:      (yyval.parameter_declarator)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4101:      (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
        -:        -: 4102:      (yyval.parameter_declarator)->type->set_location((yylsp[-1]));
        -:        -: 4103:      (yyval.parameter_declarator)->type->specifier = (yyvsp[-1].type_specifier);
        -:        -: 4104:      (yyval.parameter_declarator)->identifier = (yyvsp[0].identifier);
        -:        -: 4105:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[0].identifier), ir_var_auto));
        -:        -: 4106:   }
        -:        -: 4107:#line 4108 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 4108:    break;
        -:        -: 4109:
        -:        -: 4110:  case 117:
        -:        -: 4111:#line 925 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4112:    {
        -:        -: 4113:      void *ctx = state->linalloc;
        -:        -: 4114:      (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
        -:        -: 4115:      (yyval.parameter_declarator)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 4116:      (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
        -:        -: 4117:      (yyval.parameter_declarator)->type->set_location((yylsp[-2]));
        -:        -: 4118:      (yyval.parameter_declarator)->type->specifier = (yyvsp[-2].type_specifier);
        -:        -: 4119:      (yyval.parameter_declarator)->identifier = (yyvsp[-1].identifier);
        -:        -: 4120:      (yyval.parameter_declarator)->array_specifier = (yyvsp[0].array_specifier);
        -:        -: 4121:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-1].identifier), ir_var_auto));
        -:        -: 4122:   }
        -:        -: 4123:#line 4124 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4124:    break;
        -:        -: 4125:
        -:        -: 4126:  case 118:
        -:        -: 4127:#line 940 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4128:    {
        -:        -: 4129:      (yyval.parameter_declarator) = (yyvsp[0].parameter_declarator);
        -:        -: 4130:      (yyval.parameter_declarator)->type->qualifier = (yyvsp[-1].type_qualifier);
        -:        -: 4131:      if (!(yyval.parameter_declarator)->type->qualifier.push_to_global(& (yylsp[-1]), state)) {
        -:        -: 4132:         YYERROR;
        -:        -: 4133:      }
        -:        -: 4134:   }
        -:        -: 4135:#line 4136 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 4136:    break;
        -:        -: 4137:
        -:        -: 4138:  case 119:
        -:        -: 4139:#line 948 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4140:    {
        -:        -: 4141:      void *ctx = state->linalloc;
        -:        -: 4142:      (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator();
        -:        -: 4143:      (yyval.parameter_declarator)->set_location((yylsp[0]));
        -:        -: 4144:      (yyval.parameter_declarator)->type = new(ctx) ast_fully_specified_type();
        -:        -: 4145:      (yyval.parameter_declarator)->type->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4146:      (yyval.parameter_declarator)->type->qualifier = (yyvsp[-1].type_qualifier);
        -:        -: 4147:      if (!(yyval.parameter_declarator)->type->qualifier.push_to_global(& (yylsp[-1]), state)) {
        -:        -: 4148:         YYERROR;
        -:        -: 4149:      }
        -:        -: 4150:      (yyval.parameter_declarator)->type->specifier = (yyvsp[0].type_specifier);
        -:        -: 4151:   }
        -:        -: 4152:#line 4153 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 4153:    break;
        -:        -: 4154:
        -:        -: 4155:  case 120:
        -:        -: 4156:#line 964 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4157:    {
        -:        -: 4158:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4159:   }
        -:        -: 4160:#line 4161 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 4161:    break;
        -:        -: 4162:
        -:        -: 4163:  case 121:
        -:        -: 4164:#line 968 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4165:    {
        -:        -: 4166:      if ((yyvsp[0].type_qualifier).flags.q.constant)
        -:        -: 4167:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate const qualifier");
        -:        -: 4168:
        -:        -: 4169:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 4170:      (yyval.type_qualifier).flags.q.constant = 1;
        -:        -: 4171:   }
        -:        -: 4172:#line 4173 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4173:    break;
        -:        -: 4174:
        -:        -: 4175:  case 122:
        -:        -: 4176:#line 976 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4177:    {
        -:        -: 4178:      if ((yyvsp[0].type_qualifier).flags.q.precise)
        -:        -: 4179:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precise qualifier");
        -:        -: 4180:
        -:        -: 4181:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 4182:      (yyval.type_qualifier).flags.q.precise = 1;
        -:        -: 4183:   }
        -:        -: 4184:#line 4185 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4185:    break;
        -:        -: 4186:
        -:        -: 4187:  case 123:
        -:        -: 4188:#line 984 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4189:    {
        -:        -: 4190:      if (((yyvsp[-1].type_qualifier).flags.q.in || (yyvsp[-1].type_qualifier).flags.q.out) && ((yyvsp[0].type_qualifier).flags.q.in || (yyvsp[0].type_qualifier).flags.q.out))
        -:        -: 4191:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate in/out/inout qualifier");
        -:        -: 4192:
        -:        -: 4193:      if (!state->has_420pack_or_es31() && (yyvsp[0].type_qualifier).flags.q.constant)
        -:        -: 4194:         _mesa_glsl_error(&(yylsp[-1]), state, "in/out/inout must come after const "
        -:        -: 4195:                                      "or precise");
        -:        -: 4196:
        -:        -: 4197:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 4198:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 4199:   }
        -:        -: 4200:#line 4201 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4201:    break;
        -:        -: 4202:
        -:        -: 4203:  case 124:
        -:        -: 4204:#line 996 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4205:    {
        -:        -: 4206:      if ((yyvsp[0].type_qualifier).precision != ast_precision_none)
        -:        -: 4207:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precision qualifier");
        -:        -: 4208:
        -:        -: 4209:      if (!state->has_420pack_or_es31() &&
        -:        -: 4210:          (yyvsp[0].type_qualifier).flags.i != 0)
        -:        -: 4211:         _mesa_glsl_error(&(yylsp[-1]), state, "precision qualifiers must come last");
        -:        -: 4212:
        -:        -: 4213:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 4214:      (yyval.type_qualifier).precision = (yyvsp[-1].n);
        -:        -: 4215:   }
        -:        -: 4216:#line 4217 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4217:    break;
        -:        -: 4218:
        -:        -: 4219:  case 125:
        -:        -: 4220:#line 1008 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4221:    {
        -:        -: 4222:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 4223:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 4224:   }
        -:        -: 4225:#line 4226 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4226:    break;
        -:        -: 4227:
        -:        -: 4228:  case 126:
        -:        -: 4229:#line 1015 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4230:    {
        -:        -: 4231:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4232:      (yyval.type_qualifier).flags.q.in = 1;
        -:        -: 4233:   }
        -:        -: 4234:#line 4235 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4235:    break;
        -:        -: 4236:
        -:        -: 4237:  case 127:
        -:        -: 4238:#line 1020 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4239:    {
        -:        -: 4240:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4241:      (yyval.type_qualifier).flags.q.out = 1;
        -:        -: 4242:   }
        -:        -: 4243:#line 4244 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4244:    break;
        -:        -: 4245:
        -:        -: 4246:  case 128:
        -:        -: 4247:#line 1025 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4248:    {
        -:        -: 4249:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4250:      (yyval.type_qualifier).flags.q.in = 1;
        -:        -: 4251:      (yyval.type_qualifier).flags.q.out = 1;
        -:        -: 4252:   }
        -:        -: 4253:#line 4254 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4254:    break;
        -:        -: 4255:
        -:        -: 4256:  case 131:
        -:        -: 4257:#line 1039 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4258:    {
        -:        -: 4259:      void *ctx = state->linalloc;
        -:        -: 4260:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 4261:      decl->set_location((yylsp[0]));
        -:        -: 4262:
        -:        -: 4263:      (yyval.declarator_list) = (yyvsp[-2].declarator_list);
        -:        -: 4264:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4265:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[0].identifier), ir_var_auto));
        -:        -: 4266:   }
        -:        -: 4267:#line 4268 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4268:    break;
        -:        -: 4269:
        -:        -: 4270:  case 132:
        -:        -: 4271:#line 1049 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4272:    {
        -:        -: 4273:      void *ctx = state->linalloc;
        -:        -: 4274:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
        -:        -: 4275:      decl->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4276:
        -:        -: 4277:      (yyval.declarator_list) = (yyvsp[-3].declarator_list);
        -:        -: 4278:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4279:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-1].identifier), ir_var_auto));
        -:        -: 4280:   }
        -:        -: 4281:#line 4282 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4282:    break;
        -:        -: 4283:
        -:        -: 4284:  case 133:
        -:        -: 4285:#line 1059 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4286:    {
        -:        -: 4287:      void *ctx = state->linalloc;
        -:        -: 4288:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-3].identifier), (yyvsp[-2].array_specifier), (yyvsp[0].expression));
        -:        -: 4289:      decl->set_location_range((yylsp[-3]), (yylsp[-2]));
        -:        -: 4290:
        -:        -: 4291:      (yyval.declarator_list) = (yyvsp[-5].declarator_list);
        -:        -: 4292:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4293:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-3].identifier), ir_var_auto));
        -:        -: 4294:   }
        -:        -: 4295:#line 4296 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4296:    break;
        -:        -: 4297:
        -:        -: 4298:  case 134:
        -:        -: 4299:#line 1069 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4300:    {
        -:        -: 4301:      void *ctx = state->linalloc;
        -:        -: 4302:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
        -:        -: 4303:      decl->set_location((yylsp[-2]));
        -:        -: 4304:
        -:        -: 4305:      (yyval.declarator_list) = (yyvsp[-4].declarator_list);
        -:        -: 4306:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4307:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-2].identifier), ir_var_auto));
        -:        -: 4308:   }
        -:        -: 4309:#line 4310 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4310:    break;
        -:        -: 4311:
        -:        -: 4312:  case 135:
        -:        -: 4313:#line 1083 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4314:    {
        -:        -: 4315:      void *ctx = state->linalloc;
        -:        -: 4316:      /* Empty declaration list is valid. */
        -:        -: 4317:      (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[0].fully_specified_type));
        -:        -: 4318:      (yyval.declarator_list)->set_location((yylsp[0]));
        -:        -: 4319:   }
        -:        -: 4320:#line 4321 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4321:    break;
        -:        -: 4322:
        -:        -: 4323:  case 136:
        -:        -: 4324:#line 1090 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4325:    {
        -:        -: 4326:      void *ctx = state->linalloc;
        -:        -: 4327:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 4328:      decl->set_location((yylsp[0]));
        -:        -: 4329:
        -:        -: 4330:      (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-1].fully_specified_type));
        -:        -: 4331:      (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4332:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4333:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[0].identifier), ir_var_auto));
        -:        -: 4334:   }
        -:        -: 4335:#line 4336 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 4336:    break;
        -:        -: 4337:
        -:        -: 4338:  case 137:
        -:        -: 4339:#line 1101 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4340:    {
        -:        -: 4341:      void *ctx = state->linalloc;
        -:        -: 4342:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
        -:        -: 4343:      decl->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4344:
        -:        -: 4345:      (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-2].fully_specified_type));
        -:        -: 4346:      (yyval.declarator_list)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 4347:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4348:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-1].identifier), ir_var_auto));
        -:        -: 4349:   }
        -:        -: 4350:#line 4351 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 4351:    break;
        -:        -: 4352:
        -:        -: 4353:  case 138:
        -:        -: 4354:#line 1112 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4355:    {
        -:        -: 4356:      void *ctx = state->linalloc;
        -:        -: 4357:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-3].identifier), (yyvsp[-2].array_specifier), (yyvsp[0].expression));
        -:        -: 4358:      decl->set_location_range((yylsp[-3]), (yylsp[-2]));
        -:        -: 4359:
        -:        -: 4360:      (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-4].fully_specified_type));
        -:        -: 4361:      (yyval.declarator_list)->set_location_range((yylsp[-4]), (yylsp[-2]));
        -:        -: 4362:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4363:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-3].identifier), ir_var_auto));
        -:        -: 4364:   }
        -:        -: 4365:#line 4366 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4366:    break;
        -:        -: 4367:
        -:        -: 4368:  case 139:
        -:        -: 4369:#line 1123 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4370:    {
        -:        -: 4371:      void *ctx = state->linalloc;
        -:        -: 4372:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
        -:        -: 4373:      decl->set_location((yylsp[-2]));
        -:        -: 4374:
        -:        -: 4375:      (yyval.declarator_list) = new(ctx) ast_declarator_list((yyvsp[-3].fully_specified_type));
        -:        -: 4376:      (yyval.declarator_list)->set_location_range((yylsp[-3]), (yylsp[-2]));
        -:        -: 4377:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4378:      state->symbols->add_variable(new(state) ir_variable(NULL, (yyvsp[-2].identifier), ir_var_auto));
        -:        -: 4379:   }
        -:        -: 4380:#line 4381 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        5:        5: 4381:    break;
        -:        -: 4382:
        -:        -: 4383:  case 140:
        -:        -: 4384:#line 1134 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4385:    {
        -:        -: 4386:      void *ctx = state->linalloc;
        -:        -: 4387:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 4388:      decl->set_location((yylsp[0]));
        -:        -: 4389:
        -:        -: 4390:      (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
        -:        -: 4391:      (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4392:      (yyval.declarator_list)->invariant = true;
        -:        -: 4393:
        -:        -: 4394:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4395:   }
        -:        -: 4396:#line 4397 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4397:    break;
        -:        -: 4398:
        -:        -: 4399:  case 141:
        -:        -: 4400:#line 1146 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4401:    {
        -:        -: 4402:      void *ctx = state->linalloc;
        -:        -: 4403:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 4404:      decl->set_location((yylsp[0]));
        -:        -: 4405:
        -:        -: 4406:      (yyval.declarator_list) = new(ctx) ast_declarator_list(NULL);
        -:        -: 4407:      (yyval.declarator_list)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4408:      (yyval.declarator_list)->precise = true;
        -:        -: 4409:
        -:        -: 4410:      (yyval.declarator_list)->declarations.push_tail(&decl->link);
        -:        -: 4411:   }
        -:        -: 4412:#line 4413 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4413:    break;
        -:        -: 4414:
        -:        -: 4415:  case 142:
        -:        -: 4416:#line 1161 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4417:    {
        -:        -: 4418:      void *ctx = state->linalloc;
        -:        -: 4419:      (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
        -:        -: 4420:      (yyval.fully_specified_type)->set_location((yylsp[0]));
        -:        -: 4421:      (yyval.fully_specified_type)->specifier = (yyvsp[0].type_specifier);
        -:        -: 4422:   }
        -:        -: 4423:#line 4424 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        8:        8: 4424:    break;
        -:        -: 4425:
        -:        -: 4426:  case 143:
        -:        -: 4427:#line 1168 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4428:    {
        -:        -: 4429:      void *ctx = state->linalloc;
        -:        -: 4430:      (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type();
        -:        -: 4431:      (yyval.fully_specified_type)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 4432:      (yyval.fully_specified_type)->qualifier = (yyvsp[-1].type_qualifier);
        -:        -: 4433:      if (!(yyval.fully_specified_type)->qualifier.push_to_global(& (yylsp[-1]), state)) {
        -:        -: 4434:         YYERROR;
        -:        -: 4435:      }
        -:        -: 4436:      (yyval.fully_specified_type)->specifier = (yyvsp[0].type_specifier);
        -:        -: 4437:      if ((yyval.fully_specified_type)->specifier->structure != NULL &&
        -:        -: 4438:          (yyval.fully_specified_type)->specifier->structure->is_declaration) {
        -:        -: 4439:            (yyval.fully_specified_type)->specifier->structure->layout = &(yyval.fully_specified_type)->qualifier;
        -:        -: 4440:      }
        -:        -: 4441:   }
        -:        -: 4442:#line 4443 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 4443:    break;
        -:        -: 4444:
        -:        -: 4445:  case 144:
        -:        -: 4446:#line 1186 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4447:    {
        -:        -: 4448:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 4449:   }
        -:        -: 4450:#line 4451 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4451:    break;
        -:        -: 4452:
        -:        -: 4453:  case 146:
        -:        -: 4454:#line 1194 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4455:    {
        -:        -: 4456:      (yyval.type_qualifier) = (yyvsp[-2].type_qualifier);
        -:        -: 4457:      if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[0]), state, (yyvsp[0].type_qualifier), true)) {
        -:        -: 4458:         YYERROR;
        -:        -: 4459:      }
        -:        -: 4460:   }
        -:        -: 4461:#line 4462 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4462:    break;
        -:        -: 4463:
        -:        -: 4464:  case 147:
        -:        -: 4465:#line 1204 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4466:    {
        -:        -: 4467:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4468:
        -:        -: 4469:      /* Layout qualifiers for ARB_fragment_coord_conventions. */
        -:        -: 4470:      if (!(yyval.type_qualifier).flags.i && (state->ARB_fragment_coord_conventions_enable ||
        -:        -: 4471:                          state->is_version(150, 0))) {
        -:        -: 4472:         if (match_layout_qualifier((yyvsp[0].identifier), "origin_upper_left", state) == 0) {
        -:        -: 4473:            (yyval.type_qualifier).flags.q.origin_upper_left = 1;
        -:        -: 4474:         } else if (match_layout_qualifier((yyvsp[0].identifier), "pixel_center_integer",
        -:        -: 4475:                                           state) == 0) {
        -:        -: 4476:            (yyval.type_qualifier).flags.q.pixel_center_integer = 1;
        -:        -: 4477:         }
        -:        -: 4478:
        -:        -: 4479:         if ((yyval.type_qualifier).flags.i && state->ARB_fragment_coord_conventions_warn) {
        -:        -: 4480:            _mesa_glsl_warning(& (yylsp[0]), state,
        -:        -: 4481:                               "GL_ARB_fragment_coord_conventions layout "
        -:        -: 4482:                               "identifier `%s' used", (yyvsp[0].identifier));
        -:        -: 4483:         }
        -:        -: 4484:      }
        -:        -: 4485:
        -:        -: 4486:      /* Layout qualifiers for AMD/ARB_conservative_depth. */
        -:        -: 4487:      if (!(yyval.type_qualifier).flags.i &&
        -:        -: 4488:          (state->AMD_conservative_depth_enable ||
        -:        -: 4489:           state->ARB_conservative_depth_enable ||
        -:        -: 4490:           state->is_version(420, 0))) {
        -:        -: 4491:         if (match_layout_qualifier((yyvsp[0].identifier), "depth_any", state) == 0) {
        -:        -: 4492:            (yyval.type_qualifier).flags.q.depth_type = 1;
        -:        -: 4493:            (yyval.type_qualifier).depth_type = ast_depth_any;
        -:        -: 4494:         } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_greater", state) == 0) {
        -:        -: 4495:            (yyval.type_qualifier).flags.q.depth_type = 1;
        -:        -: 4496:            (yyval.type_qualifier).depth_type = ast_depth_greater;
        -:        -: 4497:         } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_less", state) == 0) {
        -:        -: 4498:            (yyval.type_qualifier).flags.q.depth_type = 1;
        -:        -: 4499:            (yyval.type_qualifier).depth_type = ast_depth_less;
        -:        -: 4500:         } else if (match_layout_qualifier((yyvsp[0].identifier), "depth_unchanged",
        -:        -: 4501:                                           state) == 0) {
        -:        -: 4502:            (yyval.type_qualifier).flags.q.depth_type = 1;
        -:        -: 4503:            (yyval.type_qualifier).depth_type = ast_depth_unchanged;
        -:        -: 4504:         }
        -:        -: 4505:
        -:        -: 4506:         if ((yyval.type_qualifier).flags.i && state->AMD_conservative_depth_warn) {
        -:        -: 4507:            _mesa_glsl_warning(& (yylsp[0]), state,
        -:        -: 4508:                               "GL_AMD_conservative_depth "
        -:        -: 4509:                               "layout qualifier `%s' is used", (yyvsp[0].identifier));
        -:        -: 4510:         }
        -:        -: 4511:         if ((yyval.type_qualifier).flags.i && state->ARB_conservative_depth_warn) {
        -:        -: 4512:            _mesa_glsl_warning(& (yylsp[0]), state,
        -:        -: 4513:                               "GL_ARB_conservative_depth "
        -:        -: 4514:                               "layout qualifier `%s' is used", (yyvsp[0].identifier));
        -:        -: 4515:         }
        -:        -: 4516:      }
        -:        -: 4517:
        -:        -: 4518:      /* See also interface_block_layout_qualifier. */
        -:        -: 4519:      if (!(yyval.type_qualifier).flags.i && state->has_uniform_buffer_objects()) {
        -:        -: 4520:         if (match_layout_qualifier((yyvsp[0].identifier), "std140", state) == 0) {
        -:        -: 4521:            (yyval.type_qualifier).flags.q.std140 = 1;
        -:        -: 4522:         } else if (match_layout_qualifier((yyvsp[0].identifier), "shared", state) == 0) {
        -:        -: 4523:            (yyval.type_qualifier).flags.q.shared = 1;
        -:        -: 4524:         } else if (match_layout_qualifier((yyvsp[0].identifier), "std430", state) == 0) {
        -:        -: 4525:            (yyval.type_qualifier).flags.q.std430 = 1;
        -:        -: 4526:         } else if (match_layout_qualifier((yyvsp[0].identifier), "column_major", state) == 0) {
        -:        -: 4527:            (yyval.type_qualifier).flags.q.column_major = 1;
        -:        -: 4528:         /* "row_major" is a reserved word in GLSL 1.30+. Its token is parsed
        -:        -: 4529:          * below in the interface_block_layout_qualifier rule.
        -:        -: 4530:          *
        -:        -: 4531:          * It is not a reserved word in GLSL ES 3.00, so it's handled here as
        -:        -: 4532:          * an identifier.
        -:        -: 4533:          *
        -:        -: 4534:          * Also, this takes care of alternate capitalizations of
        -:        -: 4535:          * "row_major" (which is necessary because layout qualifiers
        -:        -: 4536:          * are case-insensitive in desktop GLSL).
        -:        -: 4537:          */
        -:        -: 4538:         } else if (match_layout_qualifier((yyvsp[0].identifier), "row_major", state) == 0) {
        -:        -: 4539:            (yyval.type_qualifier).flags.q.row_major = 1;
        -:        -: 4540:         /* "packed" is a reserved word in GLSL, and its token is
        -:        -: 4541:          * parsed below in the interface_block_layout_qualifier rule.
        -:        -: 4542:          * However, we must take care of alternate capitalizations of
        -:        -: 4543:          * "packed", because layout qualifiers are case-insensitive
        -:        -: 4544:          * in desktop GLSL.
        -:        -: 4545:          */
        -:        -: 4546:         } else if (match_layout_qualifier((yyvsp[0].identifier), "packed", state) == 0) {
        -:        -: 4547:           (yyval.type_qualifier).flags.q.packed = 1;
        -:        -: 4548:         }
        -:        -: 4549:
        -:        -: 4550:         if ((yyval.type_qualifier).flags.i && state->ARB_uniform_buffer_object_warn) {
        -:        -: 4551:            _mesa_glsl_warning(& (yylsp[0]), state,
        -:        -: 4552:                               "#version 140 / GL_ARB_uniform_buffer_object "
        -:        -: 4553:                               "layout qualifier `%s' is used", (yyvsp[0].identifier));
        -:        -: 4554:         }
        -:        -: 4555:      }
        -:        -: 4556:
        -:        -: 4557:      /* Layout qualifiers for GLSL 1.50 geometry shaders. */
        -:        -: 4558:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4559:         static const struct {
        -:        -: 4560:            const char *s;
        -:        -: 4561:            GLenum e;
        -:        -: 4562:         } map[] = {
        -:        -: 4563:                 { "points", GL_POINTS },
        -:        -: 4564:                 { "lines", GL_LINES },
        -:        -: 4565:                 { "lines_adjacency", GL_LINES_ADJACENCY },
        -:        -: 4566:                 { "line_strip", GL_LINE_STRIP },
        -:        -: 4567:                 { "triangles", GL_TRIANGLES },
        -:        -: 4568:                 { "triangles_adjacency", GL_TRIANGLES_ADJACENCY },
        -:        -: 4569:                 { "triangle_strip", GL_TRIANGLE_STRIP },
        -:        -: 4570:         };
        -:        -: 4571:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
        -:        -: 4572:            if (match_layout_qualifier((yyvsp[0].identifier), map[i].s, state) == 0) {
        -:        -: 4573:               (yyval.type_qualifier).flags.q.prim_type = 1;
        -:        -: 4574:               (yyval.type_qualifier).prim_type = map[i].e;
        -:        -: 4575:               break;
        -:        -: 4576:            }
        -:        -: 4577:         }
        -:        -: 4578:
        -:        -: 4579:         if ((yyval.type_qualifier).flags.i && !state->has_geometry_shader() &&
        -:        -: 4580:             !state->has_tessellation_shader()) {
        -:        -: 4581:            _mesa_glsl_error(& (yylsp[0]), state, "#version 150 layout "
        -:        -: 4582:                             "qualifier `%s' used", (yyvsp[0].identifier));
        -:        -: 4583:         }
        -:        -: 4584:      }
        -:        -: 4585:
        -:        -: 4586:      /* Layout qualifiers for ARB_shader_image_load_store. */
        -:        -: 4587:      if (state->has_shader_image_load_store()) {
        -:        -: 4588:         if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4589:            static const struct {
        -:        -: 4590:               const char *name;
        -:        -: 4591:               GLenum format;
        -:        -: 4592:               glsl_base_type base_type;
        -:        -: 4593:               /** Minimum desktop GLSL version required for the image
        -:        -: 4594:                * format.  Use 130 if already present in the original
        -:        -: 4595:                * ARB extension.
        -:        -: 4596:                */
        -:        -: 4597:               unsigned required_glsl;
        -:        -: 4598:               /** Minimum GLSL ES version required for the image format. */
        -:        -: 4599:               unsigned required_essl;
        -:        -: 4600:               /* NV_image_formats */
        -:        -: 4601:               bool nv_image_formats;
        -:        -: 4602:            } map[] = {
        -:        -: 4603:               { "rgba32f", GL_RGBA32F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 4604:               { "rgba16f", GL_RGBA16F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 4605:               { "rg32f", GL_RG32F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4606:               { "rg16f", GL_RG16F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4607:               { "r11f_g11f_b10f", GL_R11F_G11F_B10F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4608:               { "r32f", GL_R32F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 4609:               { "r16f", GL_R16F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4610:               { "rgba32ui", GL_RGBA32UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 4611:               { "rgba16ui", GL_RGBA16UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 4612:               { "rgb10_a2ui", GL_RGB10_A2UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4613:               { "rgba8ui", GL_RGBA8UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 4614:               { "rg32ui", GL_RG32UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4615:               { "rg16ui", GL_RG16UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4616:               { "rg8ui", GL_RG8UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4617:               { "r32ui", GL_R32UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 4618:               { "r16ui", GL_R16UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4619:               { "r8ui", GL_R8UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 4620:               { "rgba32i", GL_RGBA32I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 4621:               { "rgba16i", GL_RGBA16I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 4622:               { "rgba8i", GL_RGBA8I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 4623:               { "rg32i", GL_RG32I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 4624:               { "rg16i", GL_RG16I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 4625:               { "rg8i", GL_RG8I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 4626:               { "r32i", GL_R32I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 4627:               { "r16i", GL_R16I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 4628:               { "r8i", GL_R8I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 4629:               { "rgba16", GL_RGBA16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4630:               { "rgb10_a2", GL_RGB10_A2, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4631:               { "rgba8", GL_RGBA8, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 4632:               { "rg16", GL_RG16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4633:               { "rg8", GL_RG8, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4634:               { "r16", GL_R16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4635:               { "r8", GL_R8, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4636:               { "rgba16_snorm", GL_RGBA16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4637:               { "rgba8_snorm", GL_RGBA8_SNORM, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 4638:               { "rg16_snorm", GL_RG16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4639:               { "rg8_snorm", GL_RG8_SNORM, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 4640:               { "r16_snorm", GL_R16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 4641:               { "r8_snorm", GL_R8_SNORM, GLSL_TYPE_FLOAT, 130, 0, true }
        -:        -: 4642:            };
        -:        -: 4643:
        -:        -: 4644:            for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
        -:        -: 4645:               if ((state->is_version(map[i].required_glsl,
        -:        -: 4646:                                      map[i].required_essl) ||
        -:        -: 4647:                    (state->NV_image_formats_enable &&
        -:        -: 4648:                     map[i].nv_image_formats)) &&
        -:        -: 4649:                   match_layout_qualifier((yyvsp[0].identifier), map[i].name, state) == 0) {
        -:        -: 4650:                  (yyval.type_qualifier).flags.q.explicit_image_format = 1;
        -:        -: 4651:                  (yyval.type_qualifier).image_format = map[i].format;
        -:        -: 4652:                  (yyval.type_qualifier).image_base_type = map[i].base_type;
        -:        -: 4653:                  break;
        -:        -: 4654:               }
        -:        -: 4655:            }
        -:        -: 4656:         }
        -:        -: 4657:      }
        -:        -: 4658:
        -:        -: 4659:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4660:         if (match_layout_qualifier((yyvsp[0].identifier), "early_fragment_tests", state) == 0) {
        -:        -: 4661:            /* From section 4.4.1.3 of the GLSL 4.50 specification
        -:        -: 4662:             * (Fragment Shader Inputs):
        -:        -: 4663:             *
        -:        -: 4664:             *  "Fragment shaders also allow the following layout
        -:        -: 4665:             *   qualifier on in only (not with variable declarations)
        -:        -: 4666:             *     layout-qualifier-id
        -:        -: 4667:             *        early_fragment_tests
        -:        -: 4668:             *   [...]"
        -:        -: 4669:             */
        -:        -: 4670:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 4671:               _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4672:                                "early_fragment_tests layout qualifier only "
        -:        -: 4673:                                "valid in fragment shaders");
        -:        -: 4674:            }
        -:        -: 4675:
        -:        -: 4676:            (yyval.type_qualifier).flags.q.early_fragment_tests = 1;
        -:        -: 4677:         }
        -:        -: 4678:
        -:        -: 4679:         if (match_layout_qualifier((yyvsp[0].identifier), "inner_coverage", state) == 0) {
        -:        -: 4680:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 4681:               _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4682:                                "inner_coverage layout qualifier only "
        -:        -: 4683:                                "valid in fragment shaders");
        -:        -: 4684:            }
        -:        -: 4685:
        -:        -: 4686:	    if (state->INTEL_conservative_rasterization_enable) {
        -:        -: 4687:	       (yyval.type_qualifier).flags.q.inner_coverage = 1;
        -:        -: 4688:	    } else {
        -:        -: 4689:	       _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4690:                                "inner_coverage layout qualifier present, "
        -:        -: 4691:                                "but the INTEL_conservative_rasterization extension "
        -:        -: 4692:                                "is not enabled.");
        -:        -: 4693:            }
        -:        -: 4694:         }
        -:        -: 4695:
        -:        -: 4696:         if (match_layout_qualifier((yyvsp[0].identifier), "post_depth_coverage", state) == 0) {
        -:        -: 4697:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 4698:               _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4699:                                "post_depth_coverage layout qualifier only "
        -:        -: 4700:                                "valid in fragment shaders");
        -:        -: 4701:            }
        -:        -: 4702:
        -:        -: 4703:            if (state->ARB_post_depth_coverage_enable ||
        -:        -: 4704:		state->INTEL_conservative_rasterization_enable) {
        -:        -: 4705:               (yyval.type_qualifier).flags.q.post_depth_coverage = 1;
        -:        -: 4706:            } else {
        -:        -: 4707:               _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4708:                                "post_depth_coverage layout qualifier present, "
        -:        -: 4709:                                "but the GL_ARB_post_depth_coverage extension "
        -:        -: 4710:                                "is not enabled.");
        -:        -: 4711:            }
        -:        -: 4712:         }
        -:        -: 4713:
        -:        -: 4714:         if ((yyval.type_qualifier).flags.q.post_depth_coverage && (yyval.type_qualifier).flags.q.inner_coverage) {
        -:        -: 4715:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4716:                             "post_depth_coverage & inner_coverage layout qualifiers "
        -:        -: 4717:                             "are mutually exclusive");
        -:        -: 4718:         }
        -:        -: 4719:      }
        -:        -: 4720:
        -:        -: 4721:      /* Layout qualifiers for tessellation evaluation shaders. */
        -:        -: 4722:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4723:         static const struct {
        -:        -: 4724:            const char *s;
        -:        -: 4725:            GLenum e;
        -:        -: 4726:         } map[] = {
        -:        -: 4727:                 /* triangles already parsed by gs-specific code */
        -:        -: 4728:                 { "quads", GL_QUADS },
        -:        -: 4729:                 { "isolines", GL_ISOLINES },
        -:        -: 4730:         };
        -:        -: 4731:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
        -:        -: 4732:            if (match_layout_qualifier((yyvsp[0].identifier), map[i].s, state) == 0) {
        -:        -: 4733:               (yyval.type_qualifier).flags.q.prim_type = 1;
        -:        -: 4734:               (yyval.type_qualifier).prim_type = map[i].e;
        -:        -: 4735:               break;
        -:        -: 4736:            }
        -:        -: 4737:         }
        -:        -: 4738:
        -:        -: 4739:         if ((yyval.type_qualifier).flags.i && !state->has_tessellation_shader()) {
        -:        -: 4740:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4741:                             "primitive mode qualifier `%s' requires "
        -:        -: 4742:                             "GLSL 4.00 or ARB_tessellation_shader", (yyvsp[0].identifier));
        -:        -: 4743:         }
        -:        -: 4744:      }
        -:        -: 4745:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4746:         static const struct {
        -:        -: 4747:            const char *s;
        -:        -: 4748:            enum gl_tess_spacing e;
        -:        -: 4749:         } map[] = {
        -:        -: 4750:                 { "equal_spacing", TESS_SPACING_EQUAL },
        -:        -: 4751:                 { "fractional_odd_spacing", TESS_SPACING_FRACTIONAL_ODD },
        -:        -: 4752:                 { "fractional_even_spacing", TESS_SPACING_FRACTIONAL_EVEN },
        -:        -: 4753:         };
        -:        -: 4754:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
        -:        -: 4755:            if (match_layout_qualifier((yyvsp[0].identifier), map[i].s, state) == 0) {
        -:        -: 4756:               (yyval.type_qualifier).flags.q.vertex_spacing = 1;
        -:        -: 4757:               (yyval.type_qualifier).vertex_spacing = map[i].e;
        -:        -: 4758:               break;
        -:        -: 4759:            }
        -:        -: 4760:         }
        -:        -: 4761:
        -:        -: 4762:         if ((yyval.type_qualifier).flags.i && !state->has_tessellation_shader()) {
        -:        -: 4763:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4764:                             "vertex spacing qualifier `%s' requires "
        -:        -: 4765:                             "GLSL 4.00 or ARB_tessellation_shader", (yyvsp[0].identifier));
        -:        -: 4766:         }
        -:        -: 4767:      }
        -:        -: 4768:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4769:         if (match_layout_qualifier((yyvsp[0].identifier), "cw", state) == 0) {
        -:        -: 4770:            (yyval.type_qualifier).flags.q.ordering = 1;
        -:        -: 4771:            (yyval.type_qualifier).ordering = GL_CW;
        -:        -: 4772:         } else if (match_layout_qualifier((yyvsp[0].identifier), "ccw", state) == 0) {
        -:        -: 4773:            (yyval.type_qualifier).flags.q.ordering = 1;
        -:        -: 4774:            (yyval.type_qualifier).ordering = GL_CCW;
        -:        -: 4775:         }
        -:        -: 4776:
        -:        -: 4777:         if ((yyval.type_qualifier).flags.i && !state->has_tessellation_shader()) {
        -:        -: 4778:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4779:                             "ordering qualifier `%s' requires "
        -:        -: 4780:                             "GLSL 4.00 or ARB_tessellation_shader", (yyvsp[0].identifier));
        -:        -: 4781:         }
        -:        -: 4782:      }
        -:        -: 4783:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4784:         if (match_layout_qualifier((yyvsp[0].identifier), "point_mode", state) == 0) {
        -:        -: 4785:            (yyval.type_qualifier).flags.q.point_mode = 1;
        -:        -: 4786:            (yyval.type_qualifier).point_mode = true;
        -:        -: 4787:         }
        -:        -: 4788:
        -:        -: 4789:         if ((yyval.type_qualifier).flags.i && !state->has_tessellation_shader()) {
        -:        -: 4790:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4791:                             "qualifier `point_mode' requires "
        -:        -: 4792:                             "GLSL 4.00 or ARB_tessellation_shader");
        -:        -: 4793:         }
        -:        -: 4794:      }
        -:        -: 4795:
        -:        -: 4796:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4797:         static const struct {
        -:        -: 4798:            const char *s;
        -:        -: 4799:            uint32_t mask;
        -:        -: 4800:         } map[] = {
        -:        -: 4801:                 { "blend_support_multiply",       BLEND_MULTIPLY },
        -:        -: 4802:                 { "blend_support_screen",         BLEND_SCREEN },
        -:        -: 4803:                 { "blend_support_overlay",        BLEND_OVERLAY },
        -:        -: 4804:                 { "blend_support_darken",         BLEND_DARKEN },
        -:        -: 4805:                 { "blend_support_lighten",        BLEND_LIGHTEN },
        -:        -: 4806:                 { "blend_support_colordodge",     BLEND_COLORDODGE },
        -:        -: 4807:                 { "blend_support_colorburn",      BLEND_COLORBURN },
        -:        -: 4808:                 { "blend_support_hardlight",      BLEND_HARDLIGHT },
        -:        -: 4809:                 { "blend_support_softlight",      BLEND_SOFTLIGHT },
        -:        -: 4810:                 { "blend_support_difference",     BLEND_DIFFERENCE },
        -:        -: 4811:                 { "blend_support_exclusion",      BLEND_EXCLUSION },
        -:        -: 4812:                 { "blend_support_hsl_hue",        BLEND_HSL_HUE },
        -:        -: 4813:                 { "blend_support_hsl_saturation", BLEND_HSL_SATURATION },
        -:        -: 4814:                 { "blend_support_hsl_color",      BLEND_HSL_COLOR },
        -:        -: 4815:                 { "blend_support_hsl_luminosity", BLEND_HSL_LUMINOSITY },
        -:        -: 4816:                 { "blend_support_all_equations",  BLEND_ALL },
        -:        -: 4817:         };
        -:        -: 4818:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
        -:        -: 4819:            if (match_layout_qualifier((yyvsp[0].identifier), map[i].s, state) == 0) {
        -:        -: 4820:               (yyval.type_qualifier).flags.q.blend_support = 1;
        -:        -: 4821:               state->fs_blend_support |= map[i].mask;
        -:        -: 4822:               break;
        -:        -: 4823:            }
        -:        -: 4824:         }
        -:        -: 4825:
        -:        -: 4826:         if ((yyval.type_qualifier).flags.i &&
        -:        -: 4827:             !state->KHR_blend_equation_advanced_enable &&
        -:        -: 4828:             !state->is_version(0, 320)) {
        -:        -: 4829:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4830:                             "advanced blending layout qualifiers require "
        -:        -: 4831:                             "ESSL 3.20 or KHR_blend_equation_advanced");
        -:        -: 4832:         }
        -:        -: 4833:
        -:        -: 4834:         if ((yyval.type_qualifier).flags.i && state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 4835:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4836:                             "advanced blending layout qualifiers only "
        -:        -: 4837:                             "valid in fragment shaders");
        -:        -: 4838:         }
        -:        -: 4839:      }
        -:        -: 4840:
        -:        -: 4841:      /* Layout qualifiers for ARB_compute_variable_group_size. */
        -:        -: 4842:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4843:         if (match_layout_qualifier((yyvsp[0].identifier), "local_size_variable", state) == 0) {
        -:        -: 4844:            (yyval.type_qualifier).flags.q.local_size_variable = 1;
        -:        -: 4845:         }
        -:        -: 4846:
        -:        -: 4847:         if ((yyval.type_qualifier).flags.i && !state->ARB_compute_variable_group_size_enable) {
        -:        -: 4848:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4849:                             "qualifier `local_size_variable` requires "
        -:        -: 4850:                             "ARB_compute_variable_group_size");
        -:        -: 4851:         }
        -:        -: 4852:      }
        -:        -: 4853:
        -:        -: 4854:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 4855:         _mesa_glsl_error(& (yylsp[0]), state, "unrecognized layout identifier "
        -:        -: 4856:                          "`%s'", (yyvsp[0].identifier));
        -:        -: 4857:         YYERROR;
        -:        -: 4858:      }
        -:        -: 4859:   }
        -:        -: 4860:#line 4861 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 4861:    break;
        -:        -: 4862:
        -:        -: 4863:  case 148:
        -:        -: 4864:#line 1599 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 4865:    {
        -:        -: 4866:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 4867:      void *ctx = state->linalloc;
        -:        -: 4868:
        -:        -: 4869:      if ((yyvsp[0].expression)->oper != ast_int_constant &&
        -:        -: 4870:          (yyvsp[0].expression)->oper != ast_uint_constant &&
        -:        -: 4871:          !state->has_enhanced_layouts()) {
        -:        -: 4872:         _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 4873:                          "compile-time constant expressions require "
        -:        -: 4874:                          "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 4875:      }
        -:        -: 4876:
        -:        -: 4877:      if (match_layout_qualifier("align", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4878:         if (!state->has_enhanced_layouts()) {
        -:        -: 4879:            _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 4880:                             "align qualifier requires "
        -:        -: 4881:                             "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 4882:         } else {
        -:        -: 4883:            (yyval.type_qualifier).flags.q.explicit_align = 1;
        -:        -: 4884:            (yyval.type_qualifier).align = (yyvsp[0].expression);
        -:        -: 4885:         }
        -:        -: 4886:      }
        -:        -: 4887:
        -:        -: 4888:      if (match_layout_qualifier("location", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4889:         (yyval.type_qualifier).flags.q.explicit_location = 1;
        -:        -: 4890:
        -:        -: 4891:         if ((yyval.type_qualifier).flags.q.attribute == 1 &&
        -:        -: 4892:             state->ARB_explicit_attrib_location_warn) {
        -:        -: 4893:            _mesa_glsl_warning(& (yylsp[-2]), state,
        -:        -: 4894:                               "GL_ARB_explicit_attrib_location layout "
        -:        -: 4895:                               "identifier `%s' used", (yyvsp[-2].identifier));
        -:        -: 4896:         }
        -:        -: 4897:         (yyval.type_qualifier).location = (yyvsp[0].expression);
        -:        -: 4898:      }
        -:        -: 4899:
        -:        -: 4900:      if (match_layout_qualifier("component", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4901:         if (!state->has_enhanced_layouts()) {
        -:        -: 4902:            _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 4903:                             "component qualifier requires "
        -:        -: 4904:                             "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 4905:         } else {
        -:        -: 4906:            (yyval.type_qualifier).flags.q.explicit_component = 1;
        -:        -: 4907:            (yyval.type_qualifier).component = (yyvsp[0].expression);
        -:        -: 4908:         }
        -:        -: 4909:      }
        -:        -: 4910:
        -:        -: 4911:      if (match_layout_qualifier("index", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4912:         if (state->es_shader && !state->EXT_blend_func_extended_enable) {
        -:        -: 4913:            _mesa_glsl_error(& (yylsp[0]), state, "index layout qualifier requires EXT_blend_func_extended");
        -:        -: 4914:            YYERROR;
        -:        -: 4915:         }
        -:        -: 4916:
        -:        -: 4917:         (yyval.type_qualifier).flags.q.explicit_index = 1;
        -:        -: 4918:         (yyval.type_qualifier).index = (yyvsp[0].expression);
        -:        -: 4919:      }
        -:        -: 4920:
        -:        -: 4921:      if ((state->has_420pack_or_es31() ||
        -:        -: 4922:           state->has_atomic_counters() ||
        -:        -: 4923:           state->has_shader_storage_buffer_objects()) &&
        -:        -: 4924:          match_layout_qualifier("binding", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4925:         (yyval.type_qualifier).flags.q.explicit_binding = 1;
        -:        -: 4926:         (yyval.type_qualifier).binding = (yyvsp[0].expression);
        -:        -: 4927:      }
        -:        -: 4928:
        -:        -: 4929:      if ((state->has_atomic_counters() ||
        -:        -: 4930:           state->has_enhanced_layouts()) &&
        -:        -: 4931:          match_layout_qualifier("offset", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4932:         (yyval.type_qualifier).flags.q.explicit_offset = 1;
        -:        -: 4933:         (yyval.type_qualifier).offset = (yyvsp[0].expression);
        -:        -: 4934:      }
        -:        -: 4935:
        -:        -: 4936:      if (match_layout_qualifier("max_vertices", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4937:         (yyval.type_qualifier).flags.q.max_vertices = 1;
        -:        -: 4938:         (yyval.type_qualifier).max_vertices = new(ctx) ast_layout_expression((yylsp[-2]), (yyvsp[0].expression));
        -:        -: 4939:         if (!state->has_geometry_shader()) {
        -:        -: 4940:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4941:                             "#version 150 max_vertices qualifier "
        -:        -: 4942:                             "specified", (yyvsp[0].expression));
        -:        -: 4943:         }
        -:        -: 4944:      }
        -:        -: 4945:
        -:        -: 4946:      if (state->stage == MESA_SHADER_GEOMETRY) {
        -:        -: 4947:         if (match_layout_qualifier("stream", (yyvsp[-2].identifier), state) == 0 &&
        -:        -: 4948:             state->check_explicit_attrib_stream_allowed(& (yylsp[0]))) {
        -:        -: 4949:            (yyval.type_qualifier).flags.q.stream = 1;
        -:        -: 4950:            (yyval.type_qualifier).flags.q.explicit_stream = 1;
        -:        -: 4951:            (yyval.type_qualifier).stream = (yyvsp[0].expression);
        -:        -: 4952:         }
        -:        -: 4953:      }
        -:        -: 4954:
        -:        -: 4955:      if (state->has_enhanced_layouts()) {
        -:        -: 4956:         if (match_layout_qualifier("xfb_buffer", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4957:            (yyval.type_qualifier).flags.q.xfb_buffer = 1;
        -:        -: 4958:            (yyval.type_qualifier).flags.q.explicit_xfb_buffer = 1;
        -:        -: 4959:            (yyval.type_qualifier).xfb_buffer = (yyvsp[0].expression);
        -:        -: 4960:         }
        -:        -: 4961:
        -:        -: 4962:         if (match_layout_qualifier("xfb_offset", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4963:            (yyval.type_qualifier).flags.q.explicit_xfb_offset = 1;
        -:        -: 4964:            (yyval.type_qualifier).offset = (yyvsp[0].expression);
        -:        -: 4965:         }
        -:        -: 4966:
        -:        -: 4967:         if (match_layout_qualifier("xfb_stride", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4968:            (yyval.type_qualifier).flags.q.xfb_stride = 1;
        -:        -: 4969:            (yyval.type_qualifier).flags.q.explicit_xfb_stride = 1;
        -:        -: 4970:            (yyval.type_qualifier).xfb_stride = (yyvsp[0].expression);
        -:        -: 4971:         }
        -:        -: 4972:      }
        -:        -: 4973:
        -:        -: 4974:      static const char * const local_size_qualifiers[3] = {
        -:        -: 4975:         "local_size_x",
        -:        -: 4976:         "local_size_y",
        -:        -: 4977:         "local_size_z",
        -:        -: 4978:      };
        -:        -: 4979:      for (int i = 0; i < 3; i++) {
        -:        -: 4980:         if (match_layout_qualifier(local_size_qualifiers[i], (yyvsp[-2].identifier),
        -:        -: 4981:                                    state) == 0) {
        -:        -: 4982:            if (!state->has_compute_shader()) {
        -:        -: 4983:               _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 4984:                                "%s qualifier requires GLSL 4.30 or "
        -:        -: 4985:                                "GLSL ES 3.10 or ARB_compute_shader",
        -:        -: 4986:                                local_size_qualifiers[i]);
        -:        -: 4987:               YYERROR;
        -:        -: 4988:            } else {
        -:        -: 4989:               (yyval.type_qualifier).flags.q.local_size |= (1 << i);
        -:        -: 4990:               (yyval.type_qualifier).local_size[i] = new(ctx) ast_layout_expression((yylsp[-2]), (yyvsp[0].expression));
        -:        -: 4991:            }
        -:        -: 4992:            break;
        -:        -: 4993:         }
        -:        -: 4994:      }
        -:        -: 4995:
        -:        -: 4996:      if (match_layout_qualifier("invocations", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 4997:         (yyval.type_qualifier).flags.q.invocations = 1;
        -:        -: 4998:         (yyval.type_qualifier).invocations = new(ctx) ast_layout_expression((yylsp[-2]), (yyvsp[0].expression));
        -:        -: 4999:         if (!state->is_version(400, 320) &&
        -:        -: 5000:             !state->ARB_gpu_shader5_enable &&
        -:        -: 5001:             !state->OES_geometry_shader_enable &&
        -:        -: 5002:             !state->EXT_geometry_shader_enable) {
        -:        -: 5003:            _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 5004:                             "GL_ARB_gpu_shader5 invocations "
        -:        -: 5005:                             "qualifier specified", (yyvsp[0].expression));
        -:        -: 5006:         }
        -:        -: 5007:      }
        -:        -: 5008:
        -:        -: 5009:      /* Layout qualifiers for tessellation control shaders. */
        -:        -: 5010:      if (match_layout_qualifier("vertices", (yyvsp[-2].identifier), state) == 0) {
        -:        -: 5011:         (yyval.type_qualifier).flags.q.vertices = 1;
        -:        -: 5012:         (yyval.type_qualifier).vertices = new(ctx) ast_layout_expression((yylsp[-2]), (yyvsp[0].expression));
        -:        -: 5013:         if (!state->has_tessellation_shader()) {
        -:        -: 5014:            _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 5015:                             "vertices qualifier requires GLSL 4.00 or "
        -:        -: 5016:                             "ARB_tessellation_shader");
        -:        -: 5017:         }
        -:        -: 5018:      }
        -:        -: 5019:
        -:        -: 5020:      /* If the identifier didn't match any known layout identifiers,
        -:        -: 5021:       * emit an error.
        -:        -: 5022:       */
        -:        -: 5023:      if (!(yyval.type_qualifier).flags.i) {
        -:        -: 5024:         _mesa_glsl_error(& (yylsp[-2]), state, "unrecognized layout identifier "
        -:        -: 5025:                          "`%s'", (yyvsp[-2].identifier));
        -:        -: 5026:         YYERROR;
        -:        -: 5027:      }
        -:        -: 5028:   }
        -:        -: 5029:#line 5030 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5030:    break;
        -:        -: 5031:
        -:        -: 5032:  case 149:
        -:        -: 5033:#line 1764 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5034:    {
        -:        -: 5035:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 5036:      /* Layout qualifiers for ARB_uniform_buffer_object. */
        -:        -: 5037:      if ((yyval.type_qualifier).flags.q.uniform && !state->has_uniform_buffer_objects()) {
        -:        -: 5038:         _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 5039:                          "#version 140 / GL_ARB_uniform_buffer_object "
        -:        -: 5040:                          "layout qualifier `%s' is used", (yyvsp[0].type_qualifier));
        -:        -: 5041:      } else if ((yyval.type_qualifier).flags.q.uniform && state->ARB_uniform_buffer_object_warn) {
        -:        -: 5042:         _mesa_glsl_warning(& (yylsp[0]), state,
        -:        -: 5043:                            "#version 140 / GL_ARB_uniform_buffer_object "
        -:        -: 5044:                            "layout qualifier `%s' is used", (yyvsp[0].type_qualifier));
        -:        -: 5045:      }
        -:        -: 5046:   }
        -:        -: 5047:#line 5048 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5048:    break;
        -:        -: 5049:
        -:        -: 5050:  case 150:
        -:        -: 5051:#line 1790 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5052:    {
        -:        -: 5053:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5054:      (yyval.type_qualifier).flags.q.row_major = 1;
        -:        -: 5055:   }
        -:        -: 5056:#line 5057 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5057:    break;
        -:        -: 5058:
        -:        -: 5059:  case 151:
        -:        -: 5060:#line 1795 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5061:    {
        -:        -: 5062:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5063:      (yyval.type_qualifier).flags.q.packed = 1;
        -:        -: 5064:   }
        -:        -: 5065:#line 5066 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5066:    break;
        -:        -: 5067:
        -:        -: 5068:  case 152:
        -:        -: 5069:#line 1800 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5070:    {
        -:        -: 5071:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5072:      (yyval.type_qualifier).flags.q.shared = 1;
        -:        -: 5073:   }
        -:        -: 5074:#line 5075 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5075:    break;
        -:        -: 5076:
        -:        -: 5077:  case 153:
        -:        -: 5078:#line 1808 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5079:    {
        -:        -: 5080:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5081:      (yyval.type_qualifier).flags.q.subroutine = 1;
        -:        -: 5082:   }
        -:        -: 5083:#line 5084 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5084:    break;
        -:        -: 5085:
        -:        -: 5086:  case 154:
        -:        -: 5087:#line 1813 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5088:    {
        -:        -: 5089:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5090:      (yyval.type_qualifier).flags.q.subroutine = 1;
        -:        -: 5091:      (yyval.type_qualifier).subroutine_list = (yyvsp[-1].subroutine_list);
        -:        -: 5092:   }
        -:        -: 5093:#line 5094 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5094:    break;
        -:        -: 5095:
        -:        -: 5096:  case 155:
        -:        -: 5097:#line 1822 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5098:    {
        -:        -: 5099:        void *ctx = state->linalloc;
        -:        -: 5100:        ast_declaration *decl = new(ctx)  ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 5101:        decl->set_location((yylsp[0]));
        -:        -: 5102:
        -:        -: 5103:        (yyval.subroutine_list) = new(ctx) ast_subroutine_list();
        -:        -: 5104:        (yyval.subroutine_list)->declarations.push_tail(&decl->link);
        -:        -: 5105:   }
        -:        -: 5106:#line 5107 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5107:    break;
        -:        -: 5108:
        -:        -: 5109:  case 156:
        -:        -: 5110:#line 1831 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5111:    {
        -:        -: 5112:        void *ctx = state->linalloc;
        -:        -: 5113:        ast_declaration *decl = new(ctx)  ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 5114:        decl->set_location((yylsp[0]));
        -:        -: 5115:
        -:        -: 5116:        (yyval.subroutine_list) = (yyvsp[-2].subroutine_list);
        -:        -: 5117:        (yyval.subroutine_list)->declarations.push_tail(&decl->link);
        -:        -: 5118:   }
        -:        -: 5119:#line 5120 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5120:    break;
        -:        -: 5121:
        -:        -: 5122:  case 157:
        -:        -: 5123:#line 1843 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5124:    {
        -:        -: 5125:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5126:      (yyval.type_qualifier).flags.q.smooth = 1;
        -:        -: 5127:   }
        -:        -: 5128:#line 5129 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5129:    break;
        -:        -: 5130:
        -:        -: 5131:  case 158:
        -:        -: 5132:#line 1848 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5133:    {
        -:        -: 5134:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5135:      (yyval.type_qualifier).flags.q.flat = 1;
        -:        -: 5136:   }
        -:        -: 5137:#line 5138 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5138:    break;
        -:        -: 5139:
        -:        -: 5140:  case 159:
        -:        -: 5141:#line 1853 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5142:    {
        -:        -: 5143:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5144:      (yyval.type_qualifier).flags.q.noperspective = 1;
        -:        -: 5145:   }
        -:        -: 5146:#line 5147 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5147:    break;
        -:        -: 5148:
        -:        -: 5149:  case 160:
        -:        -: 5150:#line 1862 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5151:    {
        -:        -: 5152:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5153:      (yyval.type_qualifier).flags.q.invariant = 1;
        -:        -: 5154:   }
        -:        -: 5155:#line 5156 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5156:    break;
        -:        -: 5157:
        -:        -: 5158:  case 161:
        -:        -: 5159:#line 1867 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5160:    {
        -:        -: 5161:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5162:      (yyval.type_qualifier).flags.q.precise = 1;
        -:        -: 5163:   }
        -:        -: 5164:#line 5165 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5165:    break;
        -:        -: 5166:
        -:        -: 5167:  case 168:
        -:        -: 5168:#line 1878 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5169:    {
        -:        -: 5170:      memset(&(yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5171:      (yyval.type_qualifier).precision = (yyvsp[0].n);
        -:        -: 5172:   }
        -:        -: 5173:#line 5174 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5174:    break;
        -:        -: 5175:
        -:        -: 5176:  case 169:
        -:        -: 5177:#line 1896 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5178:    {
        -:        -: 5179:      if ((yyvsp[0].type_qualifier).flags.q.precise)
        -:        -: 5180:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate \"precise\" qualifier");
        -:        -: 5181:
        -:        -: 5182:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 5183:      (yyval.type_qualifier).flags.q.precise = 1;
        -:        -: 5184:   }
        -:        -: 5185:#line 5186 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5186:    break;
        -:        -: 5187:
        -:        -: 5188:  case 170:
        -:        -: 5189:#line 1904 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5190:    {
        -:        -: 5191:      if ((yyvsp[0].type_qualifier).flags.q.invariant)
        -:        -: 5192:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate \"invariant\" qualifier");
        -:        -: 5193:
        -:        -: 5194:      if (!state->has_420pack_or_es31() && (yyvsp[0].type_qualifier).flags.q.precise)
        -:        -: 5195:         _mesa_glsl_error(&(yylsp[-1]), state,
        -:        -: 5196:                          "\"invariant\" must come after \"precise\"");
        -:        -: 5197:
        -:        -: 5198:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 5199:      (yyval.type_qualifier).flags.q.invariant = 1;
        -:        -: 5200:
        -:        -: 5201:      /* GLSL ES 3.00 spec, section 4.6.1 "The Invariant Qualifier":
        -:        -: 5202:       *
        -:        -: 5203:       * "Only variables output from a shader can be candidates for invariance.
        -:        -: 5204:       * This includes user-defined output variables and the built-in output
        -:        -: 5205:       * variables. As only outputs can be declared as invariant, an invariant
        -:        -: 5206:       * output from one shader stage will still match an input of a subsequent
        -:        -: 5207:       * stage without the input being declared as invariant."
        -:        -: 5208:       *
        -:        -: 5209:       * On the desktop side, this text first appears in GLSL 4.30.
        -:        -: 5210:       */
        -:        -: 5211:      if (state->is_version(430, 300) && (yyval.type_qualifier).flags.q.in)
        -:        -: 5212:         _mesa_glsl_error(&(yylsp[-1]), state, "invariant qualifiers cannot be used with shader inputs");
        -:        -: 5213:   }
        -:        -: 5214:#line 5215 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5215:    break;
        -:        -: 5216:
        -:        -: 5217:  case 171:
        -:        -: 5218:#line 1929 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5219:    {
        -:        -: 5220:      /* Section 4.3 of the GLSL 1.40 specification states:
        -:        -: 5221:       * "...qualified with one of these interpolation qualifiers"
        -:        -: 5222:       *
        -:        -: 5223:       * GLSL 1.30 claims to allow "one or more", but insists that:
        -:        -: 5224:       * "These interpolation qualifiers may only precede the qualifiers in,
        -:        -: 5225:       *  centroid in, out, or centroid out in a declaration."
        -:        -: 5226:       *
        -:        -: 5227:       * ...which means that e.g. smooth can't precede smooth, so there can be
        -:        -: 5228:       * only one after all, and the 1.40 text is a clarification, not a change.
        -:        -: 5229:       */
        -:        -: 5230:      if ((yyvsp[0].type_qualifier).has_interpolation())
        -:        -: 5231:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate interpolation qualifier");
        -:        -: 5232:
        -:        -: 5233:      if (!state->has_420pack_or_es31() &&
        -:        -: 5234:          ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant)) {
        -:        -: 5235:         _mesa_glsl_error(&(yylsp[-1]), state, "interpolation qualifiers must come "
        -:        -: 5236:                          "after \"precise\" or \"invariant\"");
        -:        -: 5237:      }
        -:        -: 5238:
        -:        -: 5239:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5240:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 5241:   }
        -:        -: 5242:#line 5243 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5243:    break;
        -:        -: 5244:
        -:        -: 5245:  case 172:
        -:        -: 5246:#line 1953 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5247:    {
        -:        -: 5248:      /* In the absence of ARB_shading_language_420pack, layout qualifiers may
        -:        -: 5249:       * appear no later than auxiliary storage qualifiers. There is no
        -:        -: 5250:       * particularly clear spec language mandating this, but in all examples
        -:        -: 5251:       * the layout qualifier precedes the storage qualifier.
        -:        -: 5252:       *
        -:        -: 5253:       * We allow combinations of layout with interpolation, invariant or
        -:        -: 5254:       * precise qualifiers since these are useful in ARB_separate_shader_objects.
        -:        -: 5255:       * There is no clear spec guidance on this either.
        -:        -: 5256:       */
        -:        -: 5257:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5258:      (yyval.type_qualifier).merge_qualifier(& (yylsp[-1]), state, (yyvsp[0].type_qualifier), false, (yyvsp[0].type_qualifier).has_layout());
        -:        -: 5259:   }
        -:        -: 5260:#line 5261 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5261:    break;
        -:        -: 5262:
        -:        -: 5263:  case 173:
        -:        -: 5264:#line 1967 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5265:    {
        -:        -: 5266:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5267:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 5268:   }
        -:        -: 5269:#line 5270 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5270:    break;
        -:        -: 5271:
        -:        -: 5272:  case 174:
        -:        -: 5273:#line 1972 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5274:    {
        -:        -: 5275:      if ((yyvsp[0].type_qualifier).has_auxiliary_storage()) {
        -:        -: 5276:         _mesa_glsl_error(&(yylsp[-1]), state,
        -:        -: 5277:                          "duplicate auxiliary storage qualifier (centroid or sample)");
        -:        -: 5278:      }
        -:        -: 5279:
        -:        -: 5280:      if (!state->has_420pack_or_es31() &&
        -:        -: 5281:          ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant ||
        -:        -: 5282:           (yyvsp[0].type_qualifier).has_interpolation() || (yyvsp[0].type_qualifier).has_layout())) {
        -:        -: 5283:         _mesa_glsl_error(&(yylsp[-1]), state, "auxiliary storage qualifiers must come "
        -:        -: 5284:                          "just before storage qualifiers");
        -:        -: 5285:      }
        -:        -: 5286:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5287:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 5288:   }
        -:        -: 5289:#line 5290 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5290:    break;
        -:        -: 5291:
        -:        -: 5292:  case 175:
        -:        -: 5293:#line 1988 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5294:    {
        -:        -: 5295:      /* Section 4.3 of the GLSL 1.20 specification states:
        -:        -: 5296:       * "Variable declarations may have a storage qualifier specified..."
        -:        -: 5297:       *  1.30 clarifies this to "may have one storage qualifier".
        -:        -: 5298:       */
        -:        -: 5299:      if ((yyvsp[0].type_qualifier).has_storage())
        -:        -: 5300:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate storage qualifier");
        -:        -: 5301:
        -:        -: 5302:      if (!state->has_420pack_or_es31() &&
        -:        -: 5303:          ((yyvsp[0].type_qualifier).flags.q.precise || (yyvsp[0].type_qualifier).flags.q.invariant || (yyvsp[0].type_qualifier).has_interpolation() ||
        -:        -: 5304:           (yyvsp[0].type_qualifier).has_layout() || (yyvsp[0].type_qualifier).has_auxiliary_storage())) {
        -:        -: 5305:         _mesa_glsl_error(&(yylsp[-1]), state, "storage qualifiers must come after "
        -:        -: 5306:                          "precise, invariant, interpolation, layout and auxiliary "
        -:        -: 5307:                          "storage qualifiers");
        -:        -: 5308:      }
        -:        -: 5309:
        -:        -: 5310:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5311:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 5312:   }
        -:        -: 5313:#line 5314 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5314:    break;
        -:        -: 5315:
        -:        -: 5316:  case 176:
        -:        -: 5317:#line 2008 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5318:    {
        -:        -: 5319:      if ((yyvsp[0].type_qualifier).precision != ast_precision_none)
        -:        -: 5320:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate precision qualifier");
        -:        -: 5321:
        -:        -: 5322:      if (!(state->has_420pack_or_es31()) &&
        -:        -: 5323:          (yyvsp[0].type_qualifier).flags.i != 0)
        -:        -: 5324:         _mesa_glsl_error(&(yylsp[-1]), state, "precision qualifiers must come last");
        -:        -: 5325:
        -:        -: 5326:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 5327:      (yyval.type_qualifier).precision = (yyvsp[-1].n);
        -:        -: 5328:   }
        -:        -: 5329:#line 5330 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5330:    break;
        -:        -: 5331:
        -:        -: 5332:  case 177:
        -:        -: 5333:#line 2020 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5334:    {
        -:        -: 5335:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 5336:      (yyval.type_qualifier).merge_qualifier(&(yylsp[-1]), state, (yyvsp[0].type_qualifier), false);
        -:        -: 5337:   }
        -:        -: 5338:#line 5339 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5339:    break;
        -:        -: 5340:
        -:        -: 5341:  case 178:
        -:        -: 5342:#line 2028 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5343:    {
        -:        -: 5344:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5345:      (yyval.type_qualifier).flags.q.centroid = 1;
        -:        -: 5346:   }
        -:        -: 5347:#line 5348 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5348:    break;
        -:        -: 5349:
        -:        -: 5350:  case 179:
        -:        -: 5351:#line 2033 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5352:    {
        -:        -: 5353:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5354:      (yyval.type_qualifier).flags.q.sample = 1;
        -:        -: 5355:   }
        -:        -: 5356:#line 5357 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5357:    break;
        -:        -: 5358:
        -:        -: 5359:  case 180:
        -:        -: 5360:#line 2038 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5361:    {
        -:        -: 5362:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5363:      (yyval.type_qualifier).flags.q.patch = 1;
        -:        -: 5364:   }
        -:        -: 5365:#line 5366 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5366:    break;
        -:        -: 5367:
        -:        -: 5368:  case 181:
        -:        -: 5369:#line 2045 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5370:    {
        -:        -: 5371:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5372:      (yyval.type_qualifier).flags.q.constant = 1;
        -:        -: 5373:   }
        -:        -: 5374:#line 5375 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5375:    break;
        -:        -: 5376:
        -:        -: 5377:  case 182:
        -:        -: 5378:#line 2050 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5379:    {
        -:        -: 5380:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5381:      (yyval.type_qualifier).flags.q.attribute = 1;
        -:        -: 5382:   }
        -:        -: 5383:#line 5384 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 5384:    break;
        -:        -: 5385:
        -:        -: 5386:  case 183:
        -:        -: 5387:#line 2055 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5388:    {
        -:        -: 5389:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5390:      (yyval.type_qualifier).flags.q.varying = 1;
        -:        -: 5391:   }
        -:        -: 5392:#line 5393 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5393:    break;
        -:        -: 5394:
        -:        -: 5395:  case 184:
        -:        -: 5396:#line 2060 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5397:    {
        -:        -: 5398:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5399:      (yyval.type_qualifier).flags.q.in = 1;
        -:        -: 5400:   }
        -:        -: 5401:#line 5402 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5402:    break;
        -:        -: 5403:
        -:        -: 5404:  case 185:
        -:        -: 5405:#line 2065 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5406:    {
        -:        -: 5407:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5408:      (yyval.type_qualifier).flags.q.out = 1;
        -:        -: 5409:
        -:        -: 5410:      if (state->stage == MESA_SHADER_GEOMETRY &&
        -:        -: 5411:          state->has_explicit_attrib_stream()) {
        -:        -: 5412:         /* Section 4.3.8.2 (Output Layout Qualifiers) of the GLSL 4.00
        -:        -: 5413:          * spec says:
        -:        -: 5414:          *
        -:        -: 5415:          *     "If the block or variable is declared with the stream
        -:        -: 5416:          *     identifier, it is associated with the specified stream;
        -:        -: 5417:          *     otherwise, it is associated with the current default stream."
        -:        -: 5418:          */
        -:        -: 5419:          (yyval.type_qualifier).flags.q.stream = 1;
        -:        -: 5420:          (yyval.type_qualifier).flags.q.explicit_stream = 0;
        -:        -: 5421:          (yyval.type_qualifier).stream = state->out_qualifier->stream;
        -:        -: 5422:      }
        -:        -: 5423:
        -:        -: 5424:      if (state->has_enhanced_layouts()) {
        -:        -: 5425:          (yyval.type_qualifier).flags.q.xfb_buffer = 1;
        -:        -: 5426:          (yyval.type_qualifier).flags.q.explicit_xfb_buffer = 0;
        -:        -: 5427:          (yyval.type_qualifier).xfb_buffer = state->out_qualifier->xfb_buffer;
        -:        -: 5428:      }
        -:        -: 5429:   }
        -:        -: 5430:#line 5431 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5431:    break;
        -:        -: 5432:
        -:        -: 5433:  case 186:
        -:        -: 5434:#line 2090 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5435:    {
        -:        -: 5436:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5437:      (yyval.type_qualifier).flags.q.in = 1;
        -:        -: 5438:      (yyval.type_qualifier).flags.q.out = 1;
        -:        -: 5439:
        -:        -: 5440:      if (!state->has_framebuffer_fetch() ||
        -:        -: 5441:          !state->is_version(130, 300) ||
        -:        -: 5442:          state->stage != MESA_SHADER_FRAGMENT)
        -:        -: 5443:         _mesa_glsl_error(&(yylsp[0]), state, "A single interface variable cannot be "
        -:        -: 5444:                          "declared as both input and output");
        -:        -: 5445:   }
        -:        -: 5446:#line 5447 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5447:    break;
        -:        -: 5448:
        -:        -: 5449:  case 187:
        -:        -: 5450:#line 2102 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5451:    {
        -:        -: 5452:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5453:      (yyval.type_qualifier).flags.q.uniform = 1;
        -:        -: 5454:   }
        -:        -: 5455:#line 5456 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 5456:    break;
        -:        -: 5457:
        -:        -: 5458:  case 188:
        -:        -: 5459:#line 2107 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5460:    {
        -:        -: 5461:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5462:      (yyval.type_qualifier).flags.q.buffer = 1;
        -:        -: 5463:   }
        -:        -: 5464:#line 5465 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5465:    break;
        -:        -: 5466:
        -:        -: 5467:  case 189:
        -:        -: 5468:#line 2112 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5469:    {
        -:        -: 5470:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5471:      (yyval.type_qualifier).flags.q.shared_storage = 1;
        -:        -: 5472:   }
        -:        -: 5473:#line 5474 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5474:    break;
        -:        -: 5475:
        -:        -: 5476:  case 190:
        -:        -: 5477:#line 2120 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5478:    {
        -:        -: 5479:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5480:      (yyval.type_qualifier).flags.q.coherent = 1;
        -:        -: 5481:   }
        -:        -: 5482:#line 5483 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5483:    break;
        -:        -: 5484:
        -:        -: 5485:  case 191:
        -:        -: 5486:#line 2125 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5487:    {
        -:        -: 5488:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5489:      (yyval.type_qualifier).flags.q._volatile = 1;
        -:        -: 5490:   }
        -:        -: 5491:#line 5492 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5492:    break;
        -:        -: 5493:
        -:        -: 5494:  case 192:
        -:        -: 5495:#line 2130 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5496:    {
        -:        -: 5497:      STATIC_ASSERT(sizeof((yyval.type_qualifier).flags.q) <= sizeof((yyval.type_qualifier).flags.i));
        -:        -: 5498:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5499:      (yyval.type_qualifier).flags.q.restrict_flag = 1;
        -:        -: 5500:   }
        -:        -: 5501:#line 5502 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5502:    break;
        -:        -: 5503:
        -:        -: 5504:  case 193:
        -:        -: 5505:#line 2136 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5506:    {
        -:        -: 5507:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5508:      (yyval.type_qualifier).flags.q.read_only = 1;
        -:        -: 5509:   }
        -:        -: 5510:#line 5511 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5511:    break;
        -:        -: 5512:
        -:        -: 5513:  case 194:
        -:        -: 5514:#line 2141 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5515:    {
        -:        -: 5516:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 5517:      (yyval.type_qualifier).flags.q.write_only = 1;
        -:        -: 5518:   }
        -:        -: 5519:#line 5520 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5520:    break;
        -:        -: 5521:
        -:        -: 5522:  case 195:
        -:        -: 5523:#line 2149 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5524:    {
        -:        -: 5525:      void *ctx = state->linalloc;
        -:        -: 5526:      (yyval.array_specifier) = new(ctx) ast_array_specifier((yylsp[-1]), new(ctx) ast_expression(
        -:        -: 5527:                                                  ast_unsized_array_dim, NULL,
        -:        -: 5528:                                                  NULL, NULL));
        -:        -: 5529:      (yyval.array_specifier)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 5530:   }
        -:        -: 5531:#line 5532 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5532:    break;
        -:        -: 5533:
        -:        -: 5534:  case 196:
        -:        -: 5535:#line 2157 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5536:    {
        -:        -: 5537:      void *ctx = state->linalloc;
        -:        -: 5538:      (yyval.array_specifier) = new(ctx) ast_array_specifier((yylsp[-2]), (yyvsp[-1].expression));
        -:        -: 5539:      (yyval.array_specifier)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 5540:   }
        -:        -: 5541:#line 5542 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        1:        1: 5542:    break;
        -:        -: 5543:
        -:        -: 5544:  case 197:
        -:        -: 5545:#line 2163 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5546:    {
        -:        -: 5547:      void *ctx = state->linalloc;
        -:        -: 5548:      (yyval.array_specifier) = (yyvsp[-2].array_specifier);
        -:        -: 5549:
        -:        -: 5550:      if (state->check_arrays_of_arrays_allowed(& (yylsp[-2]))) {
        -:        -: 5551:         (yyval.array_specifier)->add_dimension(new(ctx) ast_expression(ast_unsized_array_dim, NULL,
        -:        -: 5552:                                                   NULL, NULL));
        -:        -: 5553:      }
        -:        -: 5554:   }
        -:        -: 5555:#line 5556 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5556:    break;
        -:        -: 5557:
        -:        -: 5558:  case 198:
        -:        -: 5559:#line 2173 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5560:    {
        -:        -: 5561:      (yyval.array_specifier) = (yyvsp[-3].array_specifier);
        -:        -: 5562:
        -:        -: 5563:      if (state->check_arrays_of_arrays_allowed(& (yylsp[-3]))) {
        -:        -: 5564:         (yyval.array_specifier)->add_dimension((yyvsp[-1].expression));
        -:        -: 5565:      }
        -:        -: 5566:   }
        -:        -: 5567:#line 5568 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5568:    break;
        -:        -: 5569:
        -:        -: 5570:  case 200:
        -:        -: 5571:#line 2185 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5572:    {
        -:        -: 5573:      (yyval.type_specifier) = (yyvsp[-1].type_specifier);
        -:        -: 5574:      (yyval.type_specifier)->array_specifier = (yyvsp[0].array_specifier);
        -:        -: 5575:   }
        -:        -: 5576:#line 5577 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5577:    break;
        -:        -: 5578:
        -:        -: 5579:  case 201:
        -:        -: 5580:#line 2193 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5581:    {
        -:        -: 5582:      void *ctx = state->linalloc;
        -:        -: 5583:      (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].identifier));
        -:        -: 5584:      (yyval.type_specifier)->set_location((yylsp[0]));
        -:        -: 5585:   }
        -:        -: 5586:#line 5587 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       18:       18: 5587:    break;
        -:        -: 5588:
        -:        -: 5589:  case 202:
        -:        -: 5590:#line 2199 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5591:    {
        -:        -: 5592:      void *ctx = state->linalloc;
        -:        -: 5593:      (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].struct_specifier));
        -:        -: 5594:      (yyval.type_specifier)->set_location((yylsp[0]));
        -:        -: 5595:   }
        -:        -: 5596:#line 5597 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5597:    break;
        -:        -: 5598:
        -:        -: 5599:  case 203:
        -:        -: 5600:#line 2205 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5601:    {
        -:        -: 5602:      void *ctx = state->linalloc;
        -:        -: 5603:      (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[0].identifier));
        -:        -: 5604:      (yyval.type_specifier)->set_location((yylsp[0]));
        -:        -: 5605:   }
        -:        -: 5606:#line 5607 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5607:    break;
        -:        -: 5608:
        -:        -: 5609:  case 204:
        -:        -: 5610:#line 2213 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5611:    { (yyval.identifier) = "void"; }
        -:        -: 5612:#line 5613 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 5613:    break;
        -:        -: 5614:
        -:        -: 5615:  case 205:
        -:        -: 5616:#line 2214 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5617:    { (yyval.identifier) = "float"; }
        -:        -: 5618:#line 5619 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        8:        8: 5619:    break;
        -:        -: 5620:
        -:        -: 5621:  case 206:
        -:        -: 5622:#line 2215 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5623:    { (yyval.identifier) = "double"; }
        -:        -: 5624:#line 5625 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5625:    break;
        -:        -: 5626:
        -:        -: 5627:  case 207:
        -:        -: 5628:#line 2216 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5629:    { (yyval.identifier) = "int"; }
        -:        -: 5630:#line 5631 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 5631:    break;
        -:        -: 5632:
        -:        -: 5633:  case 208:
        -:        -: 5634:#line 2217 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5635:    { (yyval.identifier) = "uint"; }
        -:        -: 5636:#line 5637 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5637:    break;
        -:        -: 5638:
        -:        -: 5639:  case 209:
        -:        -: 5640:#line 2218 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5641:    { (yyval.identifier) = "bool"; }
        -:        -: 5642:#line 5643 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5643:    break;
        -:        -: 5644:
        -:        -: 5645:  case 210:
        -:        -: 5646:#line 2219 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5647:    { (yyval.identifier) = "vec2"; }
        -:        -: 5648:#line 5649 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 5649:    break;
        -:        -: 5650:
        -:        -: 5651:  case 211:
        -:        -: 5652:#line 2220 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5653:    { (yyval.identifier) = "vec3"; }
        -:        -: 5654:#line 5655 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5655:    break;
        -:        -: 5656:
        -:        -: 5657:  case 212:
        -:        -: 5658:#line 2221 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5659:    { (yyval.identifier) = "vec4"; }
        -:        -: 5660:#line 5661 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 5661:    break;
        -:        -: 5662:
        -:        -: 5663:  case 213:
        -:        -: 5664:#line 2222 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5665:    { (yyval.identifier) = "bvec2"; }
        -:        -: 5666:#line 5667 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5667:    break;
        -:        -: 5668:
        -:        -: 5669:  case 214:
        -:        -: 5670:#line 2223 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5671:    { (yyval.identifier) = "bvec3"; }
        -:        -: 5672:#line 5673 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5673:    break;
        -:        -: 5674:
        -:        -: 5675:  case 215:
        -:        -: 5676:#line 2224 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5677:    { (yyval.identifier) = "bvec4"; }
        -:        -: 5678:#line 5679 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5679:    break;
        -:        -: 5680:
        -:        -: 5681:  case 216:
        -:        -: 5682:#line 2225 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5683:    { (yyval.identifier) = "ivec2"; }
        -:        -: 5684:#line 5685 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5685:    break;
        -:        -: 5686:
        -:        -: 5687:  case 217:
        -:        -: 5688:#line 2226 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5689:    { (yyval.identifier) = "ivec3"; }
        -:        -: 5690:#line 5691 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5691:    break;
        -:        -: 5692:
        -:        -: 5693:  case 218:
        -:        -: 5694:#line 2227 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5695:    { (yyval.identifier) = "ivec4"; }
        -:        -: 5696:#line 5697 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5697:    break;
        -:        -: 5698:
        -:        -: 5699:  case 219:
        -:        -: 5700:#line 2228 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5701:    { (yyval.identifier) = "uvec2"; }
        -:        -: 5702:#line 5703 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5703:    break;
        -:        -: 5704:
        -:        -: 5705:  case 220:
        -:        -: 5706:#line 2229 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5707:    { (yyval.identifier) = "uvec3"; }
        -:        -: 5708:#line 5709 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5709:    break;
        -:        -: 5710:
        -:        -: 5711:  case 221:
        -:        -: 5712:#line 2230 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5713:    { (yyval.identifier) = "uvec4"; }
        -:        -: 5714:#line 5715 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5715:    break;
        -:        -: 5716:
        -:        -: 5717:  case 222:
        -:        -: 5718:#line 2231 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5719:    { (yyval.identifier) = "dvec2"; }
        -:        -: 5720:#line 5721 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5721:    break;
        -:        -: 5722:
        -:        -: 5723:  case 223:
        -:        -: 5724:#line 2232 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5725:    { (yyval.identifier) = "dvec3"; }
        -:        -: 5726:#line 5727 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5727:    break;
        -:        -: 5728:
        -:        -: 5729:  case 224:
        -:        -: 5730:#line 2233 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5731:    { (yyval.identifier) = "dvec4"; }
        -:        -: 5732:#line 5733 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5733:    break;
        -:        -: 5734:
        -:        -: 5735:  case 225:
        -:        -: 5736:#line 2234 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5737:    { (yyval.identifier) = "mat2"; }
        -:        -: 5738:#line 5739 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5739:    break;
        -:        -: 5740:
        -:        -: 5741:  case 226:
        -:        -: 5742:#line 2235 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5743:    { (yyval.identifier) = "mat2x3"; }
        -:        -: 5744:#line 5745 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5745:    break;
        -:        -: 5746:
        -:        -: 5747:  case 227:
        -:        -: 5748:#line 2236 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5749:    { (yyval.identifier) = "mat2x4"; }
        -:        -: 5750:#line 5751 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5751:    break;
        -:        -: 5752:
        -:        -: 5753:  case 228:
        -:        -: 5754:#line 2237 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5755:    { (yyval.identifier) = "mat3x2"; }
        -:        -: 5756:#line 5757 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5757:    break;
        -:        -: 5758:
        -:        -: 5759:  case 229:
        -:        -: 5760:#line 2238 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5761:    { (yyval.identifier) = "mat3"; }
        -:        -: 5762:#line 5763 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5763:    break;
        -:        -: 5764:
        -:        -: 5765:  case 230:
        -:        -: 5766:#line 2239 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5767:    { (yyval.identifier) = "mat3x4"; }
        -:        -: 5768:#line 5769 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5769:    break;
        -:        -: 5770:
        -:        -: 5771:  case 231:
        -:        -: 5772:#line 2240 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5773:    { (yyval.identifier) = "mat4x2"; }
        -:        -: 5774:#line 5775 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5775:    break;
        -:        -: 5776:
        -:        -: 5777:  case 232:
        -:        -: 5778:#line 2241 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5779:    { (yyval.identifier) = "mat4x3"; }
        -:        -: 5780:#line 5781 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5781:    break;
        -:        -: 5782:
        -:        -: 5783:  case 233:
        -:        -: 5784:#line 2242 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5785:    { (yyval.identifier) = "mat4"; }
        -:        -: 5786:#line 5787 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5787:    break;
        -:        -: 5788:
        -:        -: 5789:  case 234:
        -:        -: 5790:#line 2243 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5791:    { (yyval.identifier) = "dmat2"; }
        -:        -: 5792:#line 5793 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5793:    break;
        -:        -: 5794:
        -:        -: 5795:  case 235:
        -:        -: 5796:#line 2244 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5797:    { (yyval.identifier) = "dmat2x3"; }
        -:        -: 5798:#line 5799 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5799:    break;
        -:        -: 5800:
        -:        -: 5801:  case 236:
        -:        -: 5802:#line 2245 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5803:    { (yyval.identifier) = "dmat2x4"; }
        -:        -: 5804:#line 5805 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5805:    break;
        -:        -: 5806:
        -:        -: 5807:  case 237:
        -:        -: 5808:#line 2246 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5809:    { (yyval.identifier) = "dmat3x2"; }
        -:        -: 5810:#line 5811 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5811:    break;
        -:        -: 5812:
        -:        -: 5813:  case 238:
        -:        -: 5814:#line 2247 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5815:    { (yyval.identifier) = "dmat3"; }
        -:        -: 5816:#line 5817 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5817:    break;
        -:        -: 5818:
        -:        -: 5819:  case 239:
        -:        -: 5820:#line 2248 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5821:    { (yyval.identifier) = "dmat3x4"; }
        -:        -: 5822:#line 5823 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5823:    break;
        -:        -: 5824:
        -:        -: 5825:  case 240:
        -:        -: 5826:#line 2249 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5827:    { (yyval.identifier) = "dmat4x2"; }
        -:        -: 5828:#line 5829 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5829:    break;
        -:        -: 5830:
        -:        -: 5831:  case 241:
        -:        -: 5832:#line 2250 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5833:    { (yyval.identifier) = "dmat4x3"; }
        -:        -: 5834:#line 5835 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5835:    break;
        -:        -: 5836:
        -:        -: 5837:  case 242:
        -:        -: 5838:#line 2251 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5839:    { (yyval.identifier) = "dmat4"; }
        -:        -: 5840:#line 5841 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5841:    break;
        -:        -: 5842:
        -:        -: 5843:  case 243:
        -:        -: 5844:#line 2252 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5845:    { (yyval.identifier) = "sampler1D"; }
        -:        -: 5846:#line 5847 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5847:    break;
        -:        -: 5848:
        -:        -: 5849:  case 244:
        -:        -: 5850:#line 2253 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5851:    { (yyval.identifier) = "sampler2D"; }
        -:        -: 5852:#line 5853 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5853:    break;
        -:        -: 5854:
        -:        -: 5855:  case 245:
        -:        -: 5856:#line 2254 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5857:    { (yyval.identifier) = "sampler2DRect"; }
        -:        -: 5858:#line 5859 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5859:    break;
        -:        -: 5860:
        -:        -: 5861:  case 246:
        -:        -: 5862:#line 2255 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5863:    { (yyval.identifier) = "sampler3D"; }
        -:        -: 5864:#line 5865 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5865:    break;
        -:        -: 5866:
        -:        -: 5867:  case 247:
        -:        -: 5868:#line 2256 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5869:    { (yyval.identifier) = "samplerCube"; }
        -:        -: 5870:#line 5871 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5871:    break;
        -:        -: 5872:
        -:        -: 5873:  case 248:
        -:        -: 5874:#line 2257 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5875:    { (yyval.identifier) = "samplerExternalOES"; }
        -:        -: 5876:#line 5877 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5877:    break;
        -:        -: 5878:
        -:        -: 5879:  case 249:
        -:        -: 5880:#line 2258 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5881:    { (yyval.identifier) = "sampler1DShadow"; }
        -:        -: 5882:#line 5883 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5883:    break;
        -:        -: 5884:
        -:        -: 5885:  case 250:
        -:        -: 5886:#line 2259 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5887:    { (yyval.identifier) = "sampler2DShadow"; }
        -:        -: 5888:#line 5889 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5889:    break;
        -:        -: 5890:
        -:        -: 5891:  case 251:
        -:        -: 5892:#line 2260 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5893:    { (yyval.identifier) = "sampler2DRectShadow"; }
        -:        -: 5894:#line 5895 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5895:    break;
        -:        -: 5896:
        -:        -: 5897:  case 252:
        -:        -: 5898:#line 2261 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5899:    { (yyval.identifier) = "samplerCubeShadow"; }
        -:        -: 5900:#line 5901 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5901:    break;
        -:        -: 5902:
        -:        -: 5903:  case 253:
        -:        -: 5904:#line 2262 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5905:    { (yyval.identifier) = "sampler1DArray"; }
        -:        -: 5906:#line 5907 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5907:    break;
        -:        -: 5908:
        -:        -: 5909:  case 254:
        -:        -: 5910:#line 2263 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5911:    { (yyval.identifier) = "sampler2DArray"; }
        -:        -: 5912:#line 5913 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5913:    break;
        -:        -: 5914:
        -:        -: 5915:  case 255:
        -:        -: 5916:#line 2264 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5917:    { (yyval.identifier) = "sampler1DArrayShadow"; }
        -:        -: 5918:#line 5919 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5919:    break;
        -:        -: 5920:
        -:        -: 5921:  case 256:
        -:        -: 5922:#line 2265 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5923:    { (yyval.identifier) = "sampler2DArrayShadow"; }
        -:        -: 5924:#line 5925 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5925:    break;
        -:        -: 5926:
        -:        -: 5927:  case 257:
        -:        -: 5928:#line 2266 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5929:    { (yyval.identifier) = "samplerBuffer"; }
        -:        -: 5930:#line 5931 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5931:    break;
        -:        -: 5932:
        -:        -: 5933:  case 258:
        -:        -: 5934:#line 2267 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5935:    { (yyval.identifier) = "samplerCubeArray"; }
        -:        -: 5936:#line 5937 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5937:    break;
        -:        -: 5938:
        -:        -: 5939:  case 259:
        -:        -: 5940:#line 2268 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5941:    { (yyval.identifier) = "samplerCubeArrayShadow"; }
        -:        -: 5942:#line 5943 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5943:    break;
        -:        -: 5944:
        -:        -: 5945:  case 260:
        -:        -: 5946:#line 2269 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5947:    { (yyval.identifier) = "isampler1D"; }
        -:        -: 5948:#line 5949 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5949:    break;
        -:        -: 5950:
        -:        -: 5951:  case 261:
        -:        -: 5952:#line 2270 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5953:    { (yyval.identifier) = "isampler2D"; }
        -:        -: 5954:#line 5955 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5955:    break;
        -:        -: 5956:
        -:        -: 5957:  case 262:
        -:        -: 5958:#line 2271 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5959:    { (yyval.identifier) = "isampler2DRect"; }
        -:        -: 5960:#line 5961 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5961:    break;
        -:        -: 5962:
        -:        -: 5963:  case 263:
        -:        -: 5964:#line 2272 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5965:    { (yyval.identifier) = "isampler3D"; }
        -:        -: 5966:#line 5967 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5967:    break;
        -:        -: 5968:
        -:        -: 5969:  case 264:
        -:        -: 5970:#line 2273 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5971:    { (yyval.identifier) = "isamplerCube"; }
        -:        -: 5972:#line 5973 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5973:    break;
        -:        -: 5974:
        -:        -: 5975:  case 265:
        -:        -: 5976:#line 2274 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5977:    { (yyval.identifier) = "isampler1DArray"; }
        -:        -: 5978:#line 5979 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5979:    break;
        -:        -: 5980:
        -:        -: 5981:  case 266:
        -:        -: 5982:#line 2275 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5983:    { (yyval.identifier) = "isampler2DArray"; }
        -:        -: 5984:#line 5985 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5985:    break;
        -:        -: 5986:
        -:        -: 5987:  case 267:
        -:        -: 5988:#line 2276 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5989:    { (yyval.identifier) = "isamplerBuffer"; }
        -:        -: 5990:#line 5991 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5991:    break;
        -:        -: 5992:
        -:        -: 5993:  case 268:
        -:        -: 5994:#line 2277 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 5995:    { (yyval.identifier) = "isamplerCubeArray"; }
        -:        -: 5996:#line 5997 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 5997:    break;
        -:        -: 5998:
        -:        -: 5999:  case 269:
        -:        -: 6000:#line 2278 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6001:    { (yyval.identifier) = "usampler1D"; }
        -:        -: 6002:#line 6003 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6003:    break;
        -:        -: 6004:
        -:        -: 6005:  case 270:
        -:        -: 6006:#line 2279 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6007:    { (yyval.identifier) = "usampler2D"; }
        -:        -: 6008:#line 6009 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6009:    break;
        -:        -: 6010:
        -:        -: 6011:  case 271:
        -:        -: 6012:#line 2280 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6013:    { (yyval.identifier) = "usampler2DRect"; }
        -:        -: 6014:#line 6015 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6015:    break;
        -:        -: 6016:
        -:        -: 6017:  case 272:
        -:        -: 6018:#line 2281 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6019:    { (yyval.identifier) = "usampler3D"; }
        -:        -: 6020:#line 6021 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6021:    break;
        -:        -: 6022:
        -:        -: 6023:  case 273:
        -:        -: 6024:#line 2282 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6025:    { (yyval.identifier) = "usamplerCube"; }
        -:        -: 6026:#line 6027 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6027:    break;
        -:        -: 6028:
        -:        -: 6029:  case 274:
        -:        -: 6030:#line 2283 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6031:    { (yyval.identifier) = "usampler1DArray"; }
        -:        -: 6032:#line 6033 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6033:    break;
        -:        -: 6034:
        -:        -: 6035:  case 275:
        -:        -: 6036:#line 2284 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6037:    { (yyval.identifier) = "usampler2DArray"; }
        -:        -: 6038:#line 6039 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6039:    break;
        -:        -: 6040:
        -:        -: 6041:  case 276:
        -:        -: 6042:#line 2285 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6043:    { (yyval.identifier) = "usamplerBuffer"; }
        -:        -: 6044:#line 6045 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6045:    break;
        -:        -: 6046:
        -:        -: 6047:  case 277:
        -:        -: 6048:#line 2286 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6049:    { (yyval.identifier) = "usamplerCubeArray"; }
        -:        -: 6050:#line 6051 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6051:    break;
        -:        -: 6052:
        -:        -: 6053:  case 278:
        -:        -: 6054:#line 2287 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6055:    { (yyval.identifier) = "sampler2DMS"; }
        -:        -: 6056:#line 6057 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6057:    break;
        -:        -: 6058:
        -:        -: 6059:  case 279:
        -:        -: 6060:#line 2288 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6061:    { (yyval.identifier) = "isampler2DMS"; }
        -:        -: 6062:#line 6063 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6063:    break;
        -:        -: 6064:
        -:        -: 6065:  case 280:
        -:        -: 6066:#line 2289 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6067:    { (yyval.identifier) = "usampler2DMS"; }
        -:        -: 6068:#line 6069 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6069:    break;
        -:        -: 6070:
        -:        -: 6071:  case 281:
        -:        -: 6072:#line 2290 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6073:    { (yyval.identifier) = "sampler2DMSArray"; }
        -:        -: 6074:#line 6075 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6075:    break;
        -:        -: 6076:
        -:        -: 6077:  case 282:
        -:        -: 6078:#line 2291 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6079:    { (yyval.identifier) = "isampler2DMSArray"; }
        -:        -: 6080:#line 6081 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6081:    break;
        -:        -: 6082:
        -:        -: 6083:  case 283:
        -:        -: 6084:#line 2292 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6085:    { (yyval.identifier) = "usampler2DMSArray"; }
        -:        -: 6086:#line 6087 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6087:    break;
        -:        -: 6088:
        -:        -: 6089:  case 284:
        -:        -: 6090:#line 2293 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6091:    { (yyval.identifier) = "image1D"; }
        -:        -: 6092:#line 6093 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6093:    break;
        -:        -: 6094:
        -:        -: 6095:  case 285:
        -:        -: 6096:#line 2294 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6097:    { (yyval.identifier) = "image2D"; }
        -:        -: 6098:#line 6099 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6099:    break;
        -:        -: 6100:
        -:        -: 6101:  case 286:
        -:        -: 6102:#line 2295 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6103:    { (yyval.identifier) = "image3D"; }
        -:        -: 6104:#line 6105 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6105:    break;
        -:        -: 6106:
        -:        -: 6107:  case 287:
        -:        -: 6108:#line 2296 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6109:    { (yyval.identifier) = "image2DRect"; }
        -:        -: 6110:#line 6111 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6111:    break;
        -:        -: 6112:
        -:        -: 6113:  case 288:
        -:        -: 6114:#line 2297 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6115:    { (yyval.identifier) = "imageCube"; }
        -:        -: 6116:#line 6117 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6117:    break;
        -:        -: 6118:
        -:        -: 6119:  case 289:
        -:        -: 6120:#line 2298 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6121:    { (yyval.identifier) = "imageBuffer"; }
        -:        -: 6122:#line 6123 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6123:    break;
        -:        -: 6124:
        -:        -: 6125:  case 290:
        -:        -: 6126:#line 2299 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6127:    { (yyval.identifier) = "image1DArray"; }
        -:        -: 6128:#line 6129 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6129:    break;
        -:        -: 6130:
        -:        -: 6131:  case 291:
        -:        -: 6132:#line 2300 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6133:    { (yyval.identifier) = "image2DArray"; }
        -:        -: 6134:#line 6135 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6135:    break;
        -:        -: 6136:
        -:        -: 6137:  case 292:
        -:        -: 6138:#line 2301 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6139:    { (yyval.identifier) = "imageCubeArray"; }
        -:        -: 6140:#line 6141 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6141:    break;
        -:        -: 6142:
        -:        -: 6143:  case 293:
        -:        -: 6144:#line 2302 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6145:    { (yyval.identifier) = "image2DMS"; }
        -:        -: 6146:#line 6147 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6147:    break;
        -:        -: 6148:
        -:        -: 6149:  case 294:
        -:        -: 6150:#line 2303 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6151:    { (yyval.identifier) = "image2DMSArray"; }
        -:        -: 6152:#line 6153 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6153:    break;
        -:        -: 6154:
        -:        -: 6155:  case 295:
        -:        -: 6156:#line 2304 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6157:    { (yyval.identifier) = "iimage1D"; }
        -:        -: 6158:#line 6159 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6159:    break;
        -:        -: 6160:
        -:        -: 6161:  case 296:
        -:        -: 6162:#line 2305 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6163:    { (yyval.identifier) = "iimage2D"; }
        -:        -: 6164:#line 6165 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6165:    break;
        -:        -: 6166:
        -:        -: 6167:  case 297:
        -:        -: 6168:#line 2306 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6169:    { (yyval.identifier) = "iimage3D"; }
        -:        -: 6170:#line 6171 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6171:    break;
        -:        -: 6172:
        -:        -: 6173:  case 298:
        -:        -: 6174:#line 2307 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6175:    { (yyval.identifier) = "iimage2DRect"; }
        -:        -: 6176:#line 6177 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6177:    break;
        -:        -: 6178:
        -:        -: 6179:  case 299:
        -:        -: 6180:#line 2308 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6181:    { (yyval.identifier) = "iimageCube"; }
        -:        -: 6182:#line 6183 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6183:    break;
        -:        -: 6184:
        -:        -: 6185:  case 300:
        -:        -: 6186:#line 2309 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6187:    { (yyval.identifier) = "iimageBuffer"; }
        -:        -: 6188:#line 6189 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6189:    break;
        -:        -: 6190:
        -:        -: 6191:  case 301:
        -:        -: 6192:#line 2310 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6193:    { (yyval.identifier) = "iimage1DArray"; }
        -:        -: 6194:#line 6195 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6195:    break;
        -:        -: 6196:
        -:        -: 6197:  case 302:
        -:        -: 6198:#line 2311 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6199:    { (yyval.identifier) = "iimage2DArray"; }
        -:        -: 6200:#line 6201 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6201:    break;
        -:        -: 6202:
        -:        -: 6203:  case 303:
        -:        -: 6204:#line 2312 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6205:    { (yyval.identifier) = "iimageCubeArray"; }
        -:        -: 6206:#line 6207 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6207:    break;
        -:        -: 6208:
        -:        -: 6209:  case 304:
        -:        -: 6210:#line 2313 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6211:    { (yyval.identifier) = "iimage2DMS"; }
        -:        -: 6212:#line 6213 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6213:    break;
        -:        -: 6214:
        -:        -: 6215:  case 305:
        -:        -: 6216:#line 2314 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6217:    { (yyval.identifier) = "iimage2DMSArray"; }
        -:        -: 6218:#line 6219 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6219:    break;
        -:        -: 6220:
        -:        -: 6221:  case 306:
        -:        -: 6222:#line 2315 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6223:    { (yyval.identifier) = "uimage1D"; }
        -:        -: 6224:#line 6225 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6225:    break;
        -:        -: 6226:
        -:        -: 6227:  case 307:
        -:        -: 6228:#line 2316 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6229:    { (yyval.identifier) = "uimage2D"; }
        -:        -: 6230:#line 6231 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6231:    break;
        -:        -: 6232:
        -:        -: 6233:  case 308:
        -:        -: 6234:#line 2317 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6235:    { (yyval.identifier) = "uimage3D"; }
        -:        -: 6236:#line 6237 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6237:    break;
        -:        -: 6238:
        -:        -: 6239:  case 309:
        -:        -: 6240:#line 2318 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6241:    { (yyval.identifier) = "uimage2DRect"; }
        -:        -: 6242:#line 6243 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6243:    break;
        -:        -: 6244:
        -:        -: 6245:  case 310:
        -:        -: 6246:#line 2319 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6247:    { (yyval.identifier) = "uimageCube"; }
        -:        -: 6248:#line 6249 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6249:    break;
        -:        -: 6250:
        -:        -: 6251:  case 311:
        -:        -: 6252:#line 2320 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6253:    { (yyval.identifier) = "uimageBuffer"; }
        -:        -: 6254:#line 6255 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6255:    break;
        -:        -: 6256:
        -:        -: 6257:  case 312:
        -:        -: 6258:#line 2321 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6259:    { (yyval.identifier) = "uimage1DArray"; }
        -:        -: 6260:#line 6261 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6261:    break;
        -:        -: 6262:
        -:        -: 6263:  case 313:
        -:        -: 6264:#line 2322 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6265:    { (yyval.identifier) = "uimage2DArray"; }
        -:        -: 6266:#line 6267 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6267:    break;
        -:        -: 6268:
        -:        -: 6269:  case 314:
        -:        -: 6270:#line 2323 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6271:    { (yyval.identifier) = "uimageCubeArray"; }
        -:        -: 6272:#line 6273 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6273:    break;
        -:        -: 6274:
        -:        -: 6275:  case 315:
        -:        -: 6276:#line 2324 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6277:    { (yyval.identifier) = "uimage2DMS"; }
        -:        -: 6278:#line 6279 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6279:    break;
        -:        -: 6280:
        -:        -: 6281:  case 316:
        -:        -: 6282:#line 2325 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6283:    { (yyval.identifier) = "uimage2DMSArray"; }
        -:        -: 6284:#line 6285 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6285:    break;
        -:        -: 6286:
        -:        -: 6287:  case 317:
        -:        -: 6288:#line 2326 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6289:    { (yyval.identifier) = "atomic_uint"; }
        -:        -: 6290:#line 6291 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6291:    break;
        -:        -: 6292:
        -:        -: 6293:  case 318:
        -:        -: 6294:#line 2327 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6295:    { (yyval.identifier) = "int64_t";	   }
        -:        -: 6296:#line 6297 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6297:    break;
        -:        -: 6298:
        -:        -: 6299:  case 319:
        -:        -: 6300:#line 2328 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6301:    { (yyval.identifier) = "i64vec2";	   }
        -:        -: 6302:#line 6303 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6303:    break;
        -:        -: 6304:
        -:        -: 6305:  case 320:
        -:        -: 6306:#line 2329 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6307:    { (yyval.identifier) = "i64vec3";	   }
        -:        -: 6308:#line 6309 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6309:    break;
        -:        -: 6310:
        -:        -: 6311:  case 321:
        -:        -: 6312:#line 2330 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6313:    { (yyval.identifier) = "i64vec4";	   }
        -:        -: 6314:#line 6315 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6315:    break;
        -:        -: 6316:
        -:        -: 6317:  case 322:
        -:        -: 6318:#line 2331 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6319:    { (yyval.identifier) = "uint64_t";	   }
        -:        -: 6320:#line 6321 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6321:    break;
        -:        -: 6322:
        -:        -: 6323:  case 323:
        -:        -: 6324:#line 2332 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6325:    { (yyval.identifier) = "u64vec2";	   }
        -:        -: 6326:#line 6327 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6327:    break;
        -:        -: 6328:
        -:        -: 6329:  case 324:
        -:        -: 6330:#line 2333 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6331:    { (yyval.identifier) = "u64vec3";	   }
        -:        -: 6332:#line 6333 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6333:    break;
        -:        -: 6334:
        -:        -: 6335:  case 325:
        -:        -: 6336:#line 2334 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6337:    { (yyval.identifier) = "u64vec4";	   }
        -:        -: 6338:#line 6339 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6339:    break;
        -:        -: 6340:
        -:        -: 6341:  case 326:
        -:        -: 6342:#line 2339 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6343:    {
        -:        -: 6344:      state->check_precision_qualifiers_allowed(&(yylsp[0]));
        -:        -: 6345:      (yyval.n) = ast_precision_high;
        -:        -: 6346:   }
        -:        -: 6347:#line 6348 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6348:    break;
        -:        -: 6349:
        -:        -: 6350:  case 327:
        -:        -: 6351:#line 2344 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6352:    {
        -:        -: 6353:      state->check_precision_qualifiers_allowed(&(yylsp[0]));
        -:        -: 6354:      (yyval.n) = ast_precision_medium;
        -:        -: 6355:   }
        -:        -: 6356:#line 6357 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6357:    break;
        -:        -: 6358:
        -:        -: 6359:  case 328:
        -:        -: 6360:#line 2349 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6361:    {
        -:        -: 6362:      state->check_precision_qualifiers_allowed(&(yylsp[0]));
        -:        -: 6363:      (yyval.n) = ast_precision_low;
        -:        -: 6364:   }
        -:        -: 6365:#line 6366 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6366:    break;
        -:        -: 6367:
        -:        -: 6368:  case 329:
        -:        -: 6369:#line 2357 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6370:    {
        -:        -: 6371:      void *ctx = state->linalloc;
        -:        -: 6372:      (yyval.struct_specifier) = new(ctx) ast_struct_specifier(ctx, (yyvsp[-3].identifier), (yyvsp[-1].declarator_list));
        -:        -: 6373:      (yyval.struct_specifier)->set_location_range((yylsp[-3]), (yylsp[0]));
        -:        -: 6374:      state->symbols->add_type((yyvsp[-3].identifier), glsl_type::void_type);
        -:        -: 6375:   }
        -:        -: 6376:#line 6377 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6377:    break;
        -:        -: 6378:
        -:        -: 6379:  case 330:
        -:        -: 6380:#line 2364 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6381:    {
        -:        -: 6382:      void *ctx = state->linalloc;
        -:        -: 6383:      (yyval.struct_specifier) = new(ctx) ast_struct_specifier(ctx, NULL, (yyvsp[-1].declarator_list));
        -:        -: 6384:      (yyval.struct_specifier)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 6385:   }
        -:        -: 6386:#line 6387 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6387:    break;
        -:        -: 6388:
        -:        -: 6389:  case 331:
        -:        -: 6390:#line 2373 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6391:    {
        -:        -: 6392:      (yyval.declarator_list) = (yyvsp[0].declarator_list);
        -:        -: 6393:      (yyvsp[0].declarator_list)->link.self_link();
        -:        -: 6394:   }
        -:        -: 6395:#line 6396 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6396:    break;
        -:        -: 6397:
        -:        -: 6398:  case 332:
        -:        -: 6399:#line 2378 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6400:    {
        -:        -: 6401:      (yyval.declarator_list) = (yyvsp[-1].declarator_list);
        -:        -: 6402:      (yyval.declarator_list)->link.insert_before(& (yyvsp[0].declarator_list)->link);
        -:        -: 6403:   }
        -:        -: 6404:#line 6405 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6405:    break;
        -:        -: 6406:
        -:        -: 6407:  case 333:
        -:        -: 6408:#line 2386 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6409:    {
        -:        -: 6410:      void *ctx = state->linalloc;
        -:        -: 6411:      ast_fully_specified_type *const type = (yyvsp[-2].fully_specified_type);
        -:        -: 6412:      type->set_location((yylsp[-2]));
        -:        -: 6413:
        -:        -: 6414:      if (type->qualifier.flags.i != 0)
        -:        -: 6415:         _mesa_glsl_error(&(yylsp[-2]), state,
        -:        -: 6416:			  "only precision qualifiers may be applied to "
        -:        -: 6417:			  "structure members");
        -:        -: 6418:
        -:        -: 6419:      (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
        -:        -: 6420:      (yyval.declarator_list)->set_location((yylsp[-1]));
        -:        -: 6421:
        -:        -: 6422:      (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[-1].declaration)->link);
        -:        -: 6423:   }
        -:        -: 6424:#line 6425 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6425:    break;
        -:        -: 6426:
        -:        -: 6427:  case 334:
        -:        -: 6428:#line 2405 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6429:    {
        -:        -: 6430:      (yyval.declaration) = (yyvsp[0].declaration);
        -:        -: 6431:      (yyvsp[0].declaration)->link.self_link();
        -:        -: 6432:   }
        -:        -: 6433:#line 6434 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6434:    break;
        -:        -: 6435:
        -:        -: 6436:  case 335:
        -:        -: 6437:#line 2410 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6438:    {
        -:        -: 6439:      (yyval.declaration) = (yyvsp[-2].declaration);
        -:        -: 6440:      (yyval.declaration)->link.insert_before(& (yyvsp[0].declaration)->link);
        -:        -: 6441:   }
        -:        -: 6442:#line 6443 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6443:    break;
        -:        -: 6444:
        -:        -: 6445:  case 336:
        -:        -: 6446:#line 2418 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6447:    {
        -:        -: 6448:      void *ctx = state->linalloc;
        -:        -: 6449:      (yyval.declaration) = new(ctx) ast_declaration((yyvsp[0].identifier), NULL, NULL);
        -:        -: 6450:      (yyval.declaration)->set_location((yylsp[0]));
        -:        -: 6451:   }
        -:        -: 6452:#line 6453 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6453:    break;
        -:        -: 6454:
        -:        -: 6455:  case 337:
        -:        -: 6456:#line 2424 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6457:    {
        -:        -: 6458:      void *ctx = state->linalloc;
        -:        -: 6459:      (yyval.declaration) = new(ctx) ast_declaration((yyvsp[-1].identifier), (yyvsp[0].array_specifier), NULL);
        -:        -: 6460:      (yyval.declaration)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 6461:   }
        -:        -: 6462:#line 6463 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6463:    break;
        -:        -: 6464:
        -:        -: 6465:  case 339:
        -:        -: 6466:#line 2434 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6467:    {
        -:        -: 6468:      (yyval.expression) = (yyvsp[-1].expression);
        -:        -: 6469:   }
        -:        -: 6470:#line 6471 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6471:    break;
        -:        -: 6472:
        -:        -: 6473:  case 340:
        -:        -: 6474:#line 2438 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6475:    {
        -:        -: 6476:      (yyval.expression) = (yyvsp[-2].expression);
        -:        -: 6477:   }
        -:        -: 6478:#line 6479 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6479:    break;
        -:        -: 6480:
        -:        -: 6481:  case 341:
        -:        -: 6482:#line 2445 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6483:    {
        -:        -: 6484:      void *ctx = state->linalloc;
        -:        -: 6485:      (yyval.expression) = new(ctx) ast_aggregate_initializer();
        -:        -: 6486:      (yyval.expression)->set_location((yylsp[0]));
        -:        -: 6487:      (yyval.expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
        -:        -: 6488:   }
        -:        -: 6489:#line 6490 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6490:    break;
        -:        -: 6491:
        -:        -: 6492:  case 342:
        -:        -: 6493:#line 2452 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6494:    {
        -:        -: 6495:      (yyvsp[-2].expression)->expressions.push_tail(& (yyvsp[0].expression)->link);
        -:        -: 6496:   }
        -:        -: 6497:#line 6498 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6498:    break;
        -:        -: 6499:
        -:        -: 6500:  case 344:
        -:        -: 6501:#line 2464 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6502:    { (yyval.node) = (ast_node *) (yyvsp[0].compound_statement); }
        -:        -: 6503:#line 6504 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        4: 6504:    break;
        -:        -: 6505:
        -:        -: 6506:  case 352:
        -:        -: 6507:#line 2479 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6508:    {
        -:        -: 6509:      void *ctx = state->linalloc;
        -:        -: 6510:      (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL);
        -:        -: 6511:      (yyval.compound_statement)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 6512:   }
        -:        -: 6513:#line 6514 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6514:    break;
        -:        -: 6515:
        -:        -: 6516:  case 353:
        -:        -: 6517:#line 2485 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6518:    {
        -:        -: 6519:      state->symbols->push_scope();
        -:        -: 6520:   }
        -:        -: 6521:#line 6522 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        4: 6522:    break;
        -:        -: 6523:
        -:        -: 6524:  case 354:
        -:        -: 6525:#line 2489 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6526:    {
        -:        -: 6527:      void *ctx = state->linalloc;
        -:        -: 6528:      (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[-1].node));
        -:        -: 6529:      (yyval.compound_statement)->set_location_range((yylsp[-3]), (yylsp[0]));
        -:        -: 6530:      state->symbols->pop_scope();
        -:        -: 6531:   }
        -:        -: 6532:#line 6533 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        4: 6533:    break;
        -:        -: 6534:
        -:        -: 6535:  case 355:
        -:        -: 6536:#line 2498 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6537:    { (yyval.node) = (ast_node *) (yyvsp[0].compound_statement); }
        -:        -: 6538:#line 6539 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 6539:    break;
        -:        -: 6540:
        -:        -: 6541:  case 357:
        -:        -: 6542:#line 2504 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6543:    {
        -:        -: 6544:      void *ctx = state->linalloc;
        -:        -: 6545:      (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL);
        -:        -: 6546:      (yyval.compound_statement)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 6547:   }
        -:        -: 6548:#line 6549 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6549:    break;
        -:        -: 6550:
        -:        -: 6551:  case 358:
        -:        -: 6552:#line 2510 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6553:    {
        -:        -: 6554:      void *ctx = state->linalloc;
        -:        -: 6555:      (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[-1].node));
        -:        -: 6556:      (yyval.compound_statement)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 6557:   }
        -:        -: 6558:#line 6559 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        5:        5: 6559:    break;
        -:        -: 6560:
        -:        -: 6561:  case 359:
        -:        -: 6562:#line 2519 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6563:    {
        -:        -: 6564:      if ((yyvsp[0].node) == NULL) {
        -:        -: 6565:         _mesa_glsl_error(& (yylsp[0]), state, "<nil> statement");
        -:        -: 6566:         assert((yyvsp[0].node) != NULL);
        -:        -: 6567:      }
        -:        -: 6568:
        -:        -: 6569:      (yyval.node) = (yyvsp[0].node);
        -:        -: 6570:      (yyval.node)->link.self_link();
        -:        -: 6571:   }
        -:        -: 6572:#line 6573 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        8:        9: 6573:    break;
        -:        -: 6574:
        -:        -: 6575:  case 360:
        -:        -: 6576:#line 2529 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6577:    {
        -:        -: 6578:      if ((yyvsp[0].node) == NULL) {
        -:        -: 6579:         _mesa_glsl_error(& (yylsp[0]), state, "<nil> statement");
        -:        -: 6580:         assert((yyvsp[0].node) != NULL);
        -:        -: 6581:      }
        -:        -: 6582:      (yyval.node) = (yyvsp[-1].node);
        -:        -: 6583:      (yyval.node)->link.insert_before(& (yyvsp[0].node)->link);
        -:        -: 6584:   }
        -:        -: 6585:#line 6586 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       12:       12: 6586:    break;
        -:        -: 6587:
        -:        -: 6588:  case 361:
        -:        -: 6589:#line 2541 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6590:    {
        -:        -: 6591:      void *ctx = state->linalloc;
        -:        -: 6592:      (yyval.node) = new(ctx) ast_expression_statement(NULL);
        -:        -: 6593:      (yyval.node)->set_location((yylsp[0]));
        -:        -: 6594:   }
        -:        -: 6595:#line 6596 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6596:    break;
        -:        -: 6597:
        -:        -: 6598:  case 362:
        -:        -: 6599:#line 2547 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6600:    {
        -:        -: 6601:      void *ctx = state->linalloc;
        -:        -: 6602:      (yyval.node) = new(ctx) ast_expression_statement((yyvsp[-1].expression));
        -:        -: 6603:      (yyval.node)->set_location((yylsp[-1]));
        -:        -: 6604:   }
        -:        -: 6605:#line 6606 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
       10:       10: 6606:    break;
        -:        -: 6607:
        -:        -: 6608:  case 363:
        -:        -: 6609:#line 2556 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6610:    {
        -:        -: 6611:      (yyval.node) = new(state->linalloc) ast_selection_statement((yyvsp[-2].expression), (yyvsp[0].selection_rest_statement).then_statement,
        -:        -: 6612:                                                        (yyvsp[0].selection_rest_statement).else_statement);
        -:        -: 6613:      (yyval.node)->set_location_range((yylsp[-4]), (yylsp[0]));
        -:        -: 6614:   }
        -:        -: 6615:#line 6616 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 6616:    break;
        -:        -: 6617:
        -:        -: 6618:  case 364:
        -:        -: 6619:#line 2565 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6620:    {
        -:        -: 6621:      (yyval.selection_rest_statement).then_statement = (yyvsp[-2].node);
        -:        -: 6622:      (yyval.selection_rest_statement).else_statement = (yyvsp[0].node);
        -:        -: 6623:   }
        -:        -: 6624:#line 6625 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6625:    break;
        -:        -: 6626:
        -:        -: 6627:  case 365:
        -:        -: 6628:#line 2570 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6629:    {
        -:        -: 6630:      (yyval.selection_rest_statement).then_statement = (yyvsp[0].node);
        -:        -: 6631:      (yyval.selection_rest_statement).else_statement = NULL;
        -:        -: 6632:   }
        -:        -: 6633:#line 6634 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 6634:    break;
        -:        -: 6635:
        -:        -: 6636:  case 366:
        -:        -: 6637:#line 2578 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6638:    {
        -:        -: 6639:      (yyval.node) = (ast_node *) (yyvsp[0].expression);
        -:        -: 6640:   }
        -:        -: 6641:#line 6642 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 6642:    break;
        -:        -: 6643:
        -:        -: 6644:  case 367:
        -:        -: 6645:#line 2582 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6646:    {
        -:        -: 6647:      void *ctx = state->linalloc;
        -:        -: 6648:      ast_declaration *decl = new(ctx) ast_declaration((yyvsp[-2].identifier), NULL, (yyvsp[0].expression));
        -:        -: 6649:      ast_declarator_list *declarator = new(ctx) ast_declarator_list((yyvsp[-3].fully_specified_type));
        -:        -: 6650:      decl->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 6651:      declarator->set_location((yylsp[-3]));
        -:        -: 6652:
        -:        -: 6653:      declarator->declarations.push_tail(&decl->link);
        -:        -: 6654:      (yyval.node) = declarator;
        -:        -: 6655:   }
        -:        -: 6656:#line 6657 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6657:    break;
        -:        -: 6658:
        -:        -: 6659:  case 368:
        -:        -: 6660:#line 2600 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6661:    {
        -:        -: 6662:      (yyval.node) = new(state->linalloc) ast_switch_statement((yyvsp[-2].expression), (yyvsp[0].switch_body));
        -:        -: 6663:      (yyval.node)->set_location_range((yylsp[-4]), (yylsp[0]));
        -:        -: 6664:   }
        -:        -: 6665:#line 6666 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6666:    break;
        -:        -: 6667:
        -:        -: 6668:  case 369:
        -:        -: 6669:#line 2608 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6670:    {
        -:        -: 6671:      (yyval.switch_body) = new(state->linalloc) ast_switch_body(NULL);
        -:        -: 6672:      (yyval.switch_body)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 6673:   }
        -:        -: 6674:#line 6675 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6675:    break;
        -:        -: 6676:
        -:        -: 6677:  case 370:
        -:        -: 6678:#line 2613 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6679:    {
        -:        -: 6680:      (yyval.switch_body) = new(state->linalloc) ast_switch_body((yyvsp[-1].case_statement_list));
        -:        -: 6681:      (yyval.switch_body)->set_location_range((yylsp[-2]), (yylsp[0]));
        -:        -: 6682:   }
        -:        -: 6683:#line 6684 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6684:    break;
        -:        -: 6685:
        -:        -: 6686:  case 371:
        -:        -: 6687:#line 2621 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6688:    {
        -:        -: 6689:      (yyval.case_label) = new(state->linalloc) ast_case_label((yyvsp[-1].expression));
        -:        -: 6690:      (yyval.case_label)->set_location((yylsp[-1]));
        -:        -: 6691:   }
        -:        -: 6692:#line 6693 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6693:    break;
        -:        -: 6694:
        -:        -: 6695:  case 372:
        -:        -: 6696:#line 2626 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6697:    {
        -:        -: 6698:      (yyval.case_label) = new(state->linalloc) ast_case_label(NULL);
        -:        -: 6699:      (yyval.case_label)->set_location((yylsp[0]));
        -:        -: 6700:   }
        -:        -: 6701:#line 6702 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6702:    break;
        -:        -: 6703:
        -:        -: 6704:  case 373:
        -:        -: 6705:#line 2634 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6706:    {
        -:        -: 6707:      ast_case_label_list *labels = new(state->linalloc) ast_case_label_list();
        -:        -: 6708:
        -:        -: 6709:      labels->labels.push_tail(& (yyvsp[0].case_label)->link);
        -:        -: 6710:      (yyval.case_label_list) = labels;
        -:        -: 6711:      (yyval.case_label_list)->set_location((yylsp[0]));
        -:        -: 6712:   }
        -:        -: 6713:#line 6714 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6714:    break;
        -:        -: 6715:
        -:        -: 6716:  case 374:
        -:        -: 6717:#line 2642 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6718:    {
        -:        -: 6719:      (yyval.case_label_list) = (yyvsp[-1].case_label_list);
        -:        -: 6720:      (yyval.case_label_list)->labels.push_tail(& (yyvsp[0].case_label)->link);
        -:        -: 6721:   }
        -:        -: 6722:#line 6723 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6723:    break;
        -:        -: 6724:
        -:        -: 6725:  case 375:
        -:        -: 6726:#line 2650 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6727:    {
        -:        -: 6728:      ast_case_statement *stmts = new(state->linalloc) ast_case_statement((yyvsp[-1].case_label_list));
        -:        -: 6729:      stmts->set_location((yylsp[0]));
        -:        -: 6730:
        -:        -: 6731:      stmts->stmts.push_tail(& (yyvsp[0].node)->link);
        -:        -: 6732:      (yyval.case_statement) = stmts;
        -:        -: 6733:   }
        -:        -: 6734:#line 6735 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6735:    break;
        -:        -: 6736:
        -:        -: 6737:  case 376:
        -:        -: 6738:#line 2658 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6739:    {
        -:        -: 6740:      (yyval.case_statement) = (yyvsp[-1].case_statement);
        -:        -: 6741:      (yyval.case_statement)->stmts.push_tail(& (yyvsp[0].node)->link);
        -:        -: 6742:   }
        -:        -: 6743:#line 6744 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6744:    break;
        -:        -: 6745:
        -:        -: 6746:  case 377:
        -:        -: 6747:#line 2666 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6748:    {
        -:        -: 6749:      ast_case_statement_list *cases= new(state->linalloc) ast_case_statement_list();
        -:        -: 6750:      cases->set_location((yylsp[0]));
        -:        -: 6751:
        -:        -: 6752:      cases->cases.push_tail(& (yyvsp[0].case_statement)->link);
        -:        -: 6753:      (yyval.case_statement_list) = cases;
        -:        -: 6754:   }
        -:        -: 6755:#line 6756 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6756:    break;
        -:        -: 6757:
        -:        -: 6758:  case 378:
        -:        -: 6759:#line 2674 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6760:    {
        -:        -: 6761:      (yyval.case_statement_list) = (yyvsp[-1].case_statement_list);
        -:        -: 6762:      (yyval.case_statement_list)->cases.push_tail(& (yyvsp[0].case_statement)->link);
        -:        -: 6763:   }
        -:        -: 6764:#line 6765 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6765:    break;
        -:        -: 6766:
        -:        -: 6767:  case 379:
        -:        -: 6768:#line 2682 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6769:    {
        -:        -: 6770:      void *ctx = state->linalloc;
        -:        -: 6771:      (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
        -:        -: 6772:                                            NULL, (yyvsp[-2].node), NULL, (yyvsp[0].node));
        -:        -: 6773:      (yyval.node)->set_location_range((yylsp[-4]), (yylsp[-1]));
        -:        -: 6774:   }
        -:        -: 6775:#line 6776 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6776:    break;
        -:        -: 6777:
        -:        -: 6778:  case 380:
        -:        -: 6779:#line 2689 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6780:    {
        -:        -: 6781:      void *ctx = state->linalloc;
        -:        -: 6782:      (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
        -:        -: 6783:                                            NULL, (yyvsp[-2].expression), NULL, (yyvsp[-5].node));
        -:        -: 6784:      (yyval.node)->set_location_range((yylsp[-6]), (yylsp[-1]));
        -:        -: 6785:   }
        -:        -: 6786:#line 6787 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:        1: 6787:    break;
        -:        -: 6788:
        -:        -: 6789:  case 381:
        -:        -: 6790:#line 2696 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6791:    {
        -:        -: 6792:      void *ctx = state->linalloc;
        -:        -: 6793:      (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
        -:        -: 6794:                                            (yyvsp[-3].node), (yyvsp[-2].for_rest_statement).cond, (yyvsp[-2].for_rest_statement).rest, (yyvsp[0].node));
        -:        -: 6795:      (yyval.node)->set_location_range((yylsp[-5]), (yylsp[0]));
        -:        -: 6796:   }
        -:        -: 6797:#line 6798 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 6798:    break;
        -:        -: 6799:
        -:        -: 6800:  case 385:
        -:        -: 6801:#line 2712 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6802:    {
        -:        -: 6803:      (yyval.node) = NULL;
        -:        -: 6804:   }
        -:        -: 6805:#line 6806 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6806:    break;
        -:        -: 6807:
        -:        -: 6808:  case 386:
        -:        -: 6809:#line 2719 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6810:    {
        -:        -: 6811:      (yyval.for_rest_statement).cond = (yyvsp[-1].node);
        -:        -: 6812:      (yyval.for_rest_statement).rest = NULL;
        -:        -: 6813:   }
        -:        -: 6814:#line 6815 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6815:    break;
        -:        -: 6816:
        -:        -: 6817:  case 387:
        -:        -: 6818:#line 2724 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6819:    {
        -:        -: 6820:      (yyval.for_rest_statement).cond = (yyvsp[-2].node);
        -:        -: 6821:      (yyval.for_rest_statement).rest = (yyvsp[0].expression);
        -:        -: 6822:   }
        -:        -: 6823:#line 6824 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 6824:    break;
        -:        -: 6825:
        -:        -: 6826:  case 388:
        -:        -: 6827:#line 2733 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6828:    {
        -:        -: 6829:      void *ctx = state->linalloc;
        -:        -: 6830:      (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
        -:        -: 6831:      (yyval.node)->set_location((yylsp[-1]));
        -:        -: 6832:   }
        -:        -: 6833:#line 6834 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6834:    break;
        -:        -: 6835:
        -:        -: 6836:  case 389:
        -:        -: 6837:#line 2739 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6838:    {
        -:        -: 6839:      void *ctx = state->linalloc;
        -:        -: 6840:      (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
        -:        -: 6841:      (yyval.node)->set_location((yylsp[-1]));
        -:        -: 6842:   }
        -:        -: 6843:#line 6844 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6844:    break;
        -:        -: 6845:
        -:        -: 6846:  case 390:
        -:        -: 6847:#line 2745 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6848:    {
        -:        -: 6849:      void *ctx = state->linalloc;
        -:        -: 6850:      (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
        -:        -: 6851:      (yyval.node)->set_location((yylsp[-1]));
        -:        -: 6852:   }
        -:        -: 6853:#line 6854 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6854:    break;
        -:        -: 6855:
        -:        -: 6856:  case 391:
        -:        -: 6857:#line 2751 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6858:    {
        -:        -: 6859:      void *ctx = state->linalloc;
        -:        -: 6860:      (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[-1].expression));
        -:        -: 6861:      (yyval.node)->set_location_range((yylsp[-2]), (yylsp[-1]));
        -:        -: 6862:   }
        -:        -: 6863:#line 6864 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        2:        2: 6864:    break;
        -:        -: 6865:
        -:        -: 6866:  case 392:
        -:        -: 6867:#line 2757 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6868:    {
        -:        -: 6869:      void *ctx = state->linalloc;
        -:        -: 6870:      (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
        -:        -: 6871:      (yyval.node)->set_location((yylsp[-1]));
        -:        -: 6872:   }
        -:        -: 6873:#line 6874 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6874:    break;
        -:        -: 6875:
        -:        -: 6876:  case 393:
        -:        -: 6877:#line 2765 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6878:    { (yyval.node) = (yyvsp[0].function_definition); }
        -:        -: 6879:#line 6880 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 6880:    break;
        -:        -: 6881:
        -:        -: 6882:  case 394:
        -:        -: 6883:#line 2766 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6884:    { (yyval.node) = (yyvsp[0].node); }
        -:        -: 6885:#line 6886 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 6886:    break;
        -:        -: 6887:
        -:        -: 6888:  case 395:
        -:        -: 6889:#line 2767 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6890:    { (yyval.node) = NULL; }
        -:        -: 6891:#line 6892 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6892:    break;
        -:        -: 6893:
        -:        -: 6894:  case 396:
        -:        -: 6895:#line 2768 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6896:    { (yyval.node) = (yyvsp[0].node); }
        -:        -: 6897:#line 6898 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6898:    break;
        -:        -: 6899:
        -:        -: 6900:  case 397:
        -:        -: 6901:#line 2773 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6902:    {
        -:        -: 6903:      void *ctx = state->linalloc;
        -:        -: 6904:      (yyval.function_definition) = new(ctx) ast_function_definition();
        -:        -: 6905:      (yyval.function_definition)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 6906:      (yyval.function_definition)->prototype = (yyvsp[-1].function);
        -:        -: 6907:      (yyval.function_definition)->body = (yyvsp[0].compound_statement);
        -:        -: 6908:
        -:        -: 6909:      state->symbols->pop_scope();
        -:        -: 6910:   }
        -:        -: 6911:#line 6912 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
        3:        3: 6912:    break;
        -:        -: 6913:
        -:        -: 6914:  case 398:
        -:        -: 6915:#line 2787 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6916:    {
        -:        -: 6917:      (yyval.node) = (yyvsp[0].interface_block);
        -:        -: 6918:   }
        -:        -: 6919:#line 6920 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6920:    break;
        -:        -: 6921:
        -:        -: 6922:  case 399:
        -:        -: 6923:#line 2791 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6924:    {
        -:        -: 6925:      ast_interface_block *block = (ast_interface_block *) (yyvsp[0].node);
        -:        -: 6926:
        -:        -: 6927:      if (!(yyvsp[-1].type_qualifier).merge_qualifier(& (yylsp[-1]), state, block->layout, false,
        -:        -: 6928:                              block->layout.has_layout())) {
        -:        -: 6929:         YYERROR;
        -:        -: 6930:      }
        -:        -: 6931:
        -:        -: 6932:      block->layout = (yyvsp[-1].type_qualifier);
        -:        -: 6933:
        -:        -: 6934:      (yyval.node) = block;
        -:        -: 6935:   }
        -:        -: 6936:#line 6937 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6937:    break;
        -:        -: 6938:
        -:        -: 6939:  case 400:
        -:        -: 6940:#line 2804 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6941:    {
        -:        -: 6942:      ast_interface_block *block = (ast_interface_block *)(yyvsp[0].node);
        -:        -: 6943:
        -:        -: 6944:      if (!block->default_layout.flags.q.buffer) {
        -:        -: 6945:            _mesa_glsl_error(& (yylsp[-1]), state,
        -:        -: 6946:                             "memory qualifiers can only be used in the "
        -:        -: 6947:                             "declaration of shader storage blocks");
        -:        -: 6948:      }
        -:        -: 6949:      if (!(yyvsp[-1].type_qualifier).merge_qualifier(& (yylsp[-1]), state, block->layout, false)) {
        -:        -: 6950:         YYERROR;
        -:        -: 6951:      }
        -:        -: 6952:      block->layout = (yyvsp[-1].type_qualifier);
        -:        -: 6953:      (yyval.node) = block;
        -:        -: 6954:   }
        -:        -: 6955:#line 6956 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6956:    break;
        -:        -: 6957:
        -:        -: 6958:  case 401:
        -:        -: 6959:#line 2822 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6960:    {
        -:        -: 6961:      ast_interface_block *const block = (yyvsp[-1].interface_block);
        -:        -: 6962:
        -:        -: 6963:      if ((yyvsp[-6].type_qualifier).flags.q.uniform) {
        -:        -: 6964:         block->default_layout = *state->default_uniform_qualifier;
        -:        -: 6965:      } else if ((yyvsp[-6].type_qualifier).flags.q.buffer) {
        -:        -: 6966:         block->default_layout = *state->default_shader_storage_qualifier;
        -:        -: 6967:      }
        -:        -: 6968:      block->block_name = (yyvsp[-5].identifier);
        -:        -: 6969:      block->declarations.push_degenerate_list_at_head(& (yyvsp[-3].declarator_list)->link);
        -:        -: 6970:
        -:        -: 6971:      _mesa_ast_process_interface_block(& (yylsp[-6]), state, block, (yyvsp[-6].type_qualifier));
        -:        -: 6972:
        -:        -: 6973:      (yyval.interface_block) = block;
        -:        -: 6974:   }
        -:        -: 6975:#line 6976 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6976:    break;
        -:        -: 6977:
        -:        -: 6978:  case 402:
        -:        -: 6979:#line 2841 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6980:    {
        -:        -: 6981:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 6982:      (yyval.type_qualifier).flags.q.in = 1;
        -:        -: 6983:   }
        -:        -: 6984:#line 6985 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6985:    break;
        -:        -: 6986:
        -:        -: 6987:  case 403:
        -:        -: 6988:#line 2846 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6989:    {
        -:        -: 6990:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 6991:      (yyval.type_qualifier).flags.q.out = 1;
        -:        -: 6992:   }
        -:        -: 6993:#line 6994 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 6994:    break;
        -:        -: 6995:
        -:        -: 6996:  case 404:
        -:        -: 6997:#line 2851 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 6998:    {
        -:        -: 6999:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 7000:      (yyval.type_qualifier).flags.q.uniform = 1;
        -:        -: 7001:   }
        -:        -: 7002:#line 7003 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7003:    break;
        -:        -: 7004:
        -:        -: 7005:  case 405:
        -:        -: 7006:#line 2856 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7007:    {
        -:        -: 7008:      memset(& (yyval.type_qualifier), 0, sizeof((yyval.type_qualifier)));
        -:        -: 7009:      (yyval.type_qualifier).flags.q.buffer = 1;
        -:        -: 7010:   }
        -:        -: 7011:#line 7012 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7012:    break;
        -:        -: 7013:
        -:        -: 7014:  case 406:
        -:        -: 7015:#line 2861 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7016:    {
        -:        -: 7017:      if (!(yyvsp[-1].type_qualifier).flags.q.patch) {
        -:        -: 7018:         _mesa_glsl_error(&(yylsp[-1]), state, "invalid interface qualifier");
        -:        -: 7019:      }
        -:        -: 7020:      if ((yyvsp[0].type_qualifier).has_auxiliary_storage()) {
        -:        -: 7021:         _mesa_glsl_error(&(yylsp[-1]), state, "duplicate patch qualifier");
        -:        -: 7022:      }
        -:        -: 7023:      (yyval.type_qualifier) = (yyvsp[0].type_qualifier);
        -:        -: 7024:      (yyval.type_qualifier).flags.q.patch = 1;
        -:        -: 7025:   }
        -:        -: 7026:#line 7027 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7027:    break;
        -:        -: 7028:
        -:        -: 7029:  case 407:
        -:        -: 7030:#line 2875 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7031:    {
        -:        -: 7032:      (yyval.interface_block) = new(state->linalloc) ast_interface_block(NULL, NULL);
        -:        -: 7033:   }
        -:        -: 7034:#line 7035 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7035:    break;
        -:        -: 7036:
        -:        -: 7037:  case 408:
        -:        -: 7038:#line 2879 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7039:    {
        -:        -: 7040:      (yyval.interface_block) = new(state->linalloc) ast_interface_block((yyvsp[0].identifier), NULL);
        -:        -: 7041:      (yyval.interface_block)->set_location((yylsp[0]));
        -:        -: 7042:   }
        -:        -: 7043:#line 7044 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7044:    break;
        -:        -: 7045:
        -:        -: 7046:  case 409:
        -:        -: 7047:#line 2884 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7048:    {
        -:        -: 7049:      (yyval.interface_block) = new(state->linalloc) ast_interface_block((yyvsp[-1].identifier), (yyvsp[0].array_specifier));
        -:        -: 7050:      (yyval.interface_block)->set_location_range((yylsp[-1]), (yylsp[0]));
        -:        -: 7051:   }
        -:        -: 7052:#line 7053 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7053:    break;
        -:        -: 7054:
        -:        -: 7055:  case 410:
        -:        -: 7056:#line 2892 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7057:    {
        -:        -: 7058:      (yyval.declarator_list) = (yyvsp[0].declarator_list);
        -:        -: 7059:      (yyvsp[0].declarator_list)->link.self_link();
        -:        -: 7060:   }
        -:        -: 7061:#line 7062 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7062:    break;
        -:        -: 7063:
        -:        -: 7064:  case 411:
        -:        -: 7065:#line 2897 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7066:    {
        -:        -: 7067:      (yyval.declarator_list) = (yyvsp[-1].declarator_list);
        -:        -: 7068:      (yyvsp[0].declarator_list)->link.insert_before(& (yyval.declarator_list)->link);
        -:        -: 7069:   }
        -:        -: 7070:#line 7071 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7071:    break;
        -:        -: 7072:
        -:        -: 7073:  case 412:
        -:        -: 7074:#line 2905 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7075:    {
        -:        -: 7076:      void *ctx = state->linalloc;
        -:        -: 7077:      ast_fully_specified_type *type = (yyvsp[-2].fully_specified_type);
        -:        -: 7078:      type->set_location((yylsp[-2]));
        -:        -: 7079:
        -:        -: 7080:      if (type->qualifier.flags.q.attribute) {
        -:        -: 7081:         _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 7082:                          "keyword 'attribute' cannot be used with "
        -:        -: 7083:                          "interface block member");
        -:        -: 7084:      } else if (type->qualifier.flags.q.varying) {
        -:        -: 7085:         _mesa_glsl_error(& (yylsp[-2]), state,
        -:        -: 7086:                          "keyword 'varying' cannot be used with "
        -:        -: 7087:                          "interface block member");
        -:        -: 7088:      }
        -:        -: 7089:
        -:        -: 7090:      (yyval.declarator_list) = new(ctx) ast_declarator_list(type);
        -:        -: 7091:      (yyval.declarator_list)->set_location((yylsp[-1]));
        -:        -: 7092:
        -:        -: 7093:      (yyval.declarator_list)->declarations.push_degenerate_list_at_head(& (yyvsp[-1].declaration)->link);
        -:        -: 7094:   }
        -:        -: 7095:#line 7096 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7096:    break;
        -:        -: 7097:
        -:        -: 7098:  case 413:
        -:        -: 7099:#line 2929 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7100:    {
        -:        -: 7101:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 7102:      if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[-1]), state, (yyvsp[0].type_qualifier), false, true)) {
        -:        -: 7103:         YYERROR;
        -:        -: 7104:      }
        -:        -: 7105:   }
        -:        -: 7106:#line 7107 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7107:    break;
        -:        -: 7108:
        -:        -: 7109:  case 415:
        -:        -: 7110:#line 2940 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7111:    {
        -:        -: 7112:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 7113:      if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[-1]), state, (yyvsp[0].type_qualifier), false, true)) {
        -:        -: 7114:         YYERROR;
        -:        -: 7115:      }
        -:        -: 7116:   }
        -:        -: 7117:#line 7118 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7118:    break;
        -:        -: 7119:
        -:        -: 7120:  case 417:
        -:        -: 7121:#line 2951 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7122:    {
        -:        -: 7123:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 7124:      if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[-1]), state, (yyvsp[0].type_qualifier), false, true)) {
        -:        -: 7125:         YYERROR;
        -:        -: 7126:      }
        -:        -: 7127:      if (!(yyval.type_qualifier).validate_in_qualifier(& (yylsp[-1]), state)) {
        -:        -: 7128:         YYERROR;
        -:        -: 7129:      }
        -:        -: 7130:   }
        -:        -: 7131:#line 7132 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7132:    break;
        -:        -: 7133:
        -:        -: 7134:  case 418:
        -:        -: 7135:#line 2961 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7136:    {
        -:        -: 7137:      if (!(yyvsp[-2].type_qualifier).validate_in_qualifier(& (yylsp[-2]), state)) {
        -:        -: 7138:         YYERROR;
        -:        -: 7139:      }
        -:        -: 7140:   }
        -:        -: 7141:#line 7142 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7142:    break;
        -:        -: 7143:
        -:        -: 7144:  case 419:
        -:        -: 7145:#line 2970 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7146:    {
        -:        -: 7147:      (yyval.type_qualifier) = (yyvsp[-1].type_qualifier);
        -:        -: 7148:      if (!(yyval.type_qualifier).merge_qualifier(& (yylsp[-1]), state, (yyvsp[0].type_qualifier), false, true)) {
        -:        -: 7149:         YYERROR;
        -:        -: 7150:      }
        -:        -: 7151:      if (!(yyval.type_qualifier).validate_out_qualifier(& (yylsp[-1]), state)) {
        -:        -: 7152:         YYERROR;
        -:        -: 7153:      }
        -:        -: 7154:   }
        -:        -: 7155:#line 7156 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7156:    break;
        -:        -: 7157:
        -:        -: 7158:  case 420:
        -:        -: 7159:#line 2980 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7160:    {
        -:        -: 7161:      if (!(yyvsp[-2].type_qualifier).validate_out_qualifier(& (yylsp[-2]), state)) {
        -:        -: 7162:         YYERROR;
        -:        -: 7163:      }
        -:        -: 7164:   }
        -:        -: 7165:#line 7166 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7166:    break;
        -:        -: 7167:
        -:        -: 7168:  case 421:
        -:        -: 7169:#line 2989 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7170:    {
        -:        -: 7171:      (yyval.node) = NULL;
        -:        -: 7172:      if (!state->default_uniform_qualifier->
        -:        -: 7173:             merge_qualifier(& (yylsp[0]), state, (yyvsp[0].type_qualifier), false)) {
        -:        -: 7174:         YYERROR;
        -:        -: 7175:      }
        -:        -: 7176:      if (!state->default_uniform_qualifier->
        -:        -: 7177:             push_to_global(& (yylsp[0]), state)) {
        -:        -: 7178:         YYERROR;
        -:        -: 7179:      }
        -:        -: 7180:   }
        -:        -: 7181:#line 7182 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7182:    break;
        -:        -: 7183:
        -:        -: 7184:  case 422:
        -:        -: 7185:#line 3001 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7186:    {
        -:        -: 7187:      (yyval.node) = NULL;
        -:        -: 7188:      if (!state->default_shader_storage_qualifier->
        -:        -: 7189:             merge_qualifier(& (yylsp[0]), state, (yyvsp[0].type_qualifier), false)) {
        -:        -: 7190:         YYERROR;
        -:        -: 7191:      }
        -:        -: 7192:      if (!state->default_shader_storage_qualifier->
        -:        -: 7193:             push_to_global(& (yylsp[0]), state)) {
        -:        -: 7194:         YYERROR;
        -:        -: 7195:      }
        -:        -: 7196:
        -:        -: 7197:      /* From the GLSL 4.50 spec, section 4.4.5:
        -:        -: 7198:       *
        -:        -: 7199:       *     "It is a compile-time error to specify the binding identifier for
        -:        -: 7200:       *     the global scope or for block member declarations."
        -:        -: 7201:       */
        -:        -: 7202:      if (state->default_shader_storage_qualifier->flags.q.explicit_binding) {
        -:        -: 7203:         _mesa_glsl_error(& (yylsp[0]), state,
        -:        -: 7204:                          "binding qualifier cannot be set for default layout");
        -:        -: 7205:      }
        -:        -: 7206:   }
        -:        -: 7207:#line 7208 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7208:    break;
        -:        -: 7209:
        -:        -: 7210:  case 423:
        -:        -: 7211:#line 3023 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7212:    {
        -:        -: 7213:      (yyval.node) = NULL;
        -:        -: 7214:      if (!(yyvsp[0].type_qualifier).merge_into_in_qualifier(& (yylsp[0]), state, (yyval.node))) {
        -:        -: 7215:         YYERROR;
        -:        -: 7216:      }
        -:        -: 7217:      if (!state->in_qualifier->push_to_global(& (yylsp[0]), state)) {
        -:        -: 7218:         YYERROR;
        -:        -: 7219:      }
        -:        -: 7220:   }
        -:        -: 7221:#line 7222 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7222:    break;
        -:        -: 7223:
        -:        -: 7224:  case 424:
        -:        -: 7225:#line 3033 "./glsl/glsl_parser.yy" /* yacc.c:1646  */
        -:        -: 7226:    {
        -:        -: 7227:      (yyval.node) = NULL;
        -:        -: 7228:      if (!(yyvsp[0].type_qualifier).merge_into_out_qualifier(& (yylsp[0]), state, (yyval.node))) {
        -:        -: 7229:         YYERROR;
        -:        -: 7230:      }
        -:        -: 7231:      if (!state->out_qualifier->push_to_global(& (yylsp[0]), state)) {
        -:        -: 7232:         YYERROR;
        -:        -: 7233:      }
        -:        -: 7234:   }
        -:        -: 7235:#line 7236 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
    #####:    #####: 7236:    break;
        -:        -: 7237:
        -:        -: 7238:
        -:        -: 7239:#line 7240 "glsl/glsl_parser.cpp" /* yacc.c:1646  */
     1216:     1239: 7240:      default: break;
        -:        -: 7241:    }
        -:        -: 7242:  /* User semantic actions sometimes alter yychar, and that requires
        -:        -: 7243:     that yytoken be updated with the new translation.  We take the
        -:        -: 7244:     approach of translating immediately before every use of yytoken.
        -:        -: 7245:     One alternative is translating here after every semantic action,
        -:        -: 7246:     but that translation would be missed if the semantic action invokes
        -:        -: 7247:     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
        -:        -: 7248:     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
        -:        -: 7249:     incorrect destructor might then be invoked immediately.  In the
        -:        -: 7250:     case of YYERROR or YYBACKUP, subsequent parser actions might lead
        -:        -: 7251:     to an incorrect destructor call or verbose syntax error message
        -:        -: 7252:     before the lookahead is translated.  */
        -:        -: 7253:  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
        -:        -: 7254:
     1594:     1627: 7255:  YYPOPSTACK (yylen);
     1594:     1627: 7256:  yylen = 0;
        -:        -: 7257:  YY_STACK_PRINT (yyss, yyssp);
        -:        -: 7258:
     1594:     1627: 7259:  *++yyvsp = yyval;
     1594:     1627: 7260:  *++yylsp = yyloc;
        -:        -: 7261:
        -:        -: 7262:  /* Now 'shift' the result of the reduction.  Determine what state
        -:        -: 7263:     that goes to, based on the state we popped back to and the rule
        -:        -: 7264:     number reduced by.  */
        -:        -: 7265:
     1594:     1627: 7266:  yyn = yyr1[yyn];
        -:        -: 7267:
     1594:     1627: 7268:  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
     1594:     1627: 7269:  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
      144:      149: 7270:    yystate = yytable[yystate];
        -:        -: 7271:  else
     1450:     1478: 7272:    yystate = yydefgoto[yyn - YYNTOKENS];
        -:        -: 7273:
     1594:     1627: 7274:  goto yynewstate;
        -:        -: 7275:
        -:        -: 7276:
        -:        -: 7277:/*--------------------------------------.
        -:        -: 7278:| yyerrlab -- here on detecting error.  |
        -:        -: 7279:`--------------------------------------*/
        -:        -: 7280:yyerrlab:
        -:        -: 7281:  /* Make sure we have latest lookahead translation.  See comments at
        -:        -: 7282:     user semantic actions for why this is necessary.  */
    #####:    #####: 7283:  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
        -:        -: 7284:
        -:        -: 7285:  /* If not already recovering from an error, report this error.  */
    #####:    #####: 7286:  if (!yyerrstatus)
        -:        -: 7287:    {
    #####:    #####: 7288:      ++yynerrs;
        -:        -: 7289:#if ! YYERROR_VERBOSE
        -:        -: 7290:      yyerror (&yylloc, state, YY_("syntax error"));
        -:        -: 7291:#else
        -:        -: 7292:# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
        -:        -: 7293:                                        yyssp, yytoken)
        -:        -: 7294:      {
    #####:    #####: 7295:        char const *yymsgp = YY_("syntax error");
        -:        -: 7296:        int yysyntax_error_status;
    #####:    #####: 7297:        yysyntax_error_status = YYSYNTAX_ERROR;
    #####:    #####: 7298:        if (yysyntax_error_status == 0)
    #####:    #####: 7299:          yymsgp = yymsg;
    #####:    #####: 7300:        else if (yysyntax_error_status == 1)
        -:        -: 7301:          {
    #####:    #####: 7302:            if (yymsg != yymsgbuf)
    #####:    #####: 7303:              YYSTACK_FREE (yymsg);
    #####:    #####: 7304:            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
    #####:    #####: 7305:            if (!yymsg)
        -:        -: 7306:              {
    #####:    #####: 7307:                yymsg = yymsgbuf;
    #####:    #####: 7308:                yymsg_alloc = sizeof yymsgbuf;
    #####:    #####: 7309:                yysyntax_error_status = 2;
        -:        -: 7310:              }
        -:        -: 7311:            else
        -:        -: 7312:              {
    #####:    #####: 7313:                yysyntax_error_status = YYSYNTAX_ERROR;
    #####:    #####: 7314:                yymsgp = yymsg;
        -:        -: 7315:              }
        -:        -: 7316:          }
    #####:    #####: 7317:        yyerror (&yylloc, state, yymsgp);
    #####:    #####: 7318:        if (yysyntax_error_status == 2)
    #####:    #####: 7319:          goto yyexhaustedlab;
        -:        -: 7320:      }
        -:        -: 7321:# undef YYSYNTAX_ERROR
        -:        -: 7322:#endif
        -:        -: 7323:    }
        -:        -: 7324:
    #####:    #####: 7325:  yyerror_range[1] = yylloc;
        -:        -: 7326:
    #####:    #####: 7327:  if (yyerrstatus == 3)
        -:        -: 7328:    {
        -:        -: 7329:      /* If just tried and failed to reuse lookahead token after an
        -:        -: 7330:         error, discard it.  */
        -:        -: 7331:
    #####:    #####: 7332:      if (yychar <= YYEOF)
        -:        -: 7333:        {
        -:        -: 7334:          /* Return failure if at end of input.  */
    #####:    #####: 7335:          if (yychar == YYEOF)
    #####:    #####: 7336:            YYABORT;
        -:        -: 7337:        }
        -:        -: 7338:      else
        -:        -: 7339:        {
        -:        -: 7340:          yydestruct ("Error: discarding",
    #####:    #####: 7341:                      yytoken, &yylval, &yylloc, state);
    #####:    #####: 7342:          yychar = YYEMPTY;
        -:        -: 7343:        }
        -:        -: 7344:    }
        -:        -: 7345:
        -:        -: 7346:  /* Else will try to reuse lookahead token after shifting the error
        -:        -: 7347:     token.  */
    #####:    #####: 7348:  goto yyerrlab1;
        -:        -: 7349:
        -:        -: 7350:
        -:        -: 7351:/*---------------------------------------------------.
        -:        -: 7352:| yyerrorlab -- error raised explicitly by YYERROR.  |
        -:        -: 7353:`---------------------------------------------------*/
        -:        -: 7354:yyerrorlab:
        -:        -: 7355:
        -:        -: 7356:  /* Pacify compilers like GCC when the user code never invokes
        -:        -: 7357:     YYERROR and the label yyerrorlab therefore never appears in user
        -:        -: 7358:     code.  */
        -:        -: 7359:  if (/*CONSTCOND*/ 0)
        -:        -: 7360:     goto yyerrorlab;
        -:        -: 7361:
    #####:    #####: 7362:  yyerror_range[1] = yylsp[1-yylen];
        -:        -: 7363:  /* Do not reclaim the symbols of the rule whose action triggered
        -:        -: 7364:     this YYERROR.  */
    #####:    #####: 7365:  YYPOPSTACK (yylen);
    #####:    #####: 7366:  yylen = 0;
        -:        -: 7367:  YY_STACK_PRINT (yyss, yyssp);
    #####:    #####: 7368:  yystate = *yyssp;
    #####:    #####: 7369:  goto yyerrlab1;
        -:        -: 7370:
        -:        -: 7371:
        -:        -: 7372:/*-------------------------------------------------------------.
        -:        -: 7373:| yyerrlab1 -- common code for both syntax error and YYERROR.  |
        -:        -: 7374:`-------------------------------------------------------------*/
        -:        -: 7375:yyerrlab1:
    #####:    #####: 7376:  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
        -:        -: 7377:
    #####:    #####: 7378:  for (;;)
        -:        -: 7379:    {
    #####:    #####: 7380:      yyn = yypact[yystate];
    #####:    #####: 7381:      if (!yypact_value_is_default (yyn))
        -:        -: 7382:        {
    #####:    #####: 7383:          yyn += YYTERROR;
    #####:    #####: 7384:          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
        -:        -: 7385:            {
    #####:    #####: 7386:              yyn = yytable[yyn];
    #####:    #####: 7387:              if (0 < yyn)
    #####:    #####: 7388:                break;
        -:        -: 7389:            }
        -:        -: 7390:        }
        -:        -: 7391:
        -:        -: 7392:      /* Pop the current state because it cannot handle the error token.  */
    #####:    #####: 7393:      if (yyssp == yyss)
    #####:    #####: 7394:        YYABORT;
        -:        -: 7395:
    #####:    #####: 7396:      yyerror_range[1] = *yylsp;
    #####:    #####: 7397:      yydestruct ("Error: popping",
    #####:    #####: 7398:                  yystos[yystate], yyvsp, yylsp, state);
    #####:    #####: 7399:      YYPOPSTACK (1);
    #####:    #####: 7400:      yystate = *yyssp;
        -:        -: 7401:      YY_STACK_PRINT (yyss, yyssp);
        -:        -: 7402:    }
        -:        -: 7403:
        -:        -: 7404:  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
    #####:    #####: 7405:  *++yyvsp = yylval;
        -:        -: 7406:  YY_IGNORE_MAYBE_UNINITIALIZED_END
        -:        -: 7407:
    #####:    #####: 7408:  yyerror_range[2] = yylloc;
        -:        -: 7409:  /* Using YYLLOC is tempting, but would change the location of
        -:        -: 7410:     the lookahead.  YYLOC is available though.  */
    #####:    #####: 7411:  YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
    #####:    #####: 7412:  *++yylsp = yyloc;
        -:        -: 7413:
        -:        -: 7414:  /* Shift the error token.  */
        -:        -: 7415:  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
        -:        -: 7416:
    #####:    #####: 7417:  yystate = yyn;
    #####:    #####: 7418:  goto yynewstate;
        -:        -: 7419:
        -:        -: 7420:
        -:        -: 7421:/*-------------------------------------.
        -:        -: 7422:| yyacceptlab -- YYACCEPT comes here.  |
        -:        -: 7423:`-------------------------------------*/
        -:        -: 7424:yyacceptlab:
        2:        2: 7425:  yyresult = 0;
        2:        2: 7426:  goto yyreturn;
        -:        -: 7427:
        -:        -: 7428:/*-----------------------------------.
        -:        -: 7429:| yyabortlab -- YYABORT comes here.  |
        -:        -: 7430:`-----------------------------------*/
        -:        -: 7431:yyabortlab:
    #####:    #####: 7432:  yyresult = 1;
    #####:    #####: 7433:  goto yyreturn;
        -:        -: 7434:
        -:        -: 7435:#if !defined yyoverflow || YYERROR_VERBOSE
        -:        -: 7436:/*-------------------------------------------------.
        -:        -: 7437:| yyexhaustedlab -- memory exhaustion comes here.  |
        -:        -: 7438:`-------------------------------------------------*/
        -:        -: 7439:yyexhaustedlab:
    #####:    #####: 7440:  yyerror (&yylloc, state, YY_("memory exhausted"));
    #####:    #####: 7441:  yyresult = 2;
        -:        -: 7442:  /* Fall through.  */
        -:        -: 7443:#endif
        -:        -: 7444:
        -:        -: 7445:yyreturn:
        2:        2: 7446:  if (yychar != YYEMPTY)
        -:        -: 7447:    {
        -:        -: 7448:      /* Make sure we have latest lookahead translation.  See comments at
        -:        -: 7449:         user semantic actions for why this is necessary.  */
    #####:    #####: 7450:      yytoken = YYTRANSLATE (yychar);
        -:        -: 7451:      yydestruct ("Cleanup: discarding lookahead",
    #####:    #####: 7452:                  yytoken, &yylval, &yylloc, state);
        -:        -: 7453:    }
        -:        -: 7454:  /* Do not reclaim the symbols of the rule whose action triggered
        -:        -: 7455:     this YYABORT or YYACCEPT.  */
        2:        2: 7456:  YYPOPSTACK (yylen);
        -:        -: 7457:  YY_STACK_PRINT (yyss, yyssp);
       10:       10: 7458:  while (yyssp != yyss)
        -:        -: 7459:    {
        4:        4: 7460:      yydestruct ("Cleanup: popping",
        8:        8: 7461:                  yystos[*yyssp], yyvsp, yylsp, state);
        4:        4: 7462:      YYPOPSTACK (1);
        -:        -: 7463:    }
        -:        -: 7464:#ifndef yyoverflow
        2:        2: 7465:  if (yyss != yyssa)
    #####:    #####: 7466:    YYSTACK_FREE (yyss);
        -:        -: 7467:#endif
        -:        -: 7468:#if YYERROR_VERBOSE
        2:        2: 7469:  if (yymsg != yymsgbuf)
    #####:    #####: 7470:    YYSTACK_FREE (yymsg);
        -:        -: 7471:#endif
        2:        2: 7472:  return yyresult;
        -:        -: 7473:}

src/compiler/glsl_parser_extras.cpp.gcov

        -:        -:    0:Source:glsl/glsl_parser_extras.cpp
        -:        -:    0:Graph:glsl/.libs/glsl_parser_extras.gcno
        -:        -:    0:Data:glsl/.libs/glsl_parser_extras.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2008, 2009 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:#include <inttypes.h> /* for PRIx64 macro */
        -:        -:   24:#include <stdio.h>
        -:        -:   25:#include <stdarg.h>
        -:        -:   26:#include <string.h>
        -:        -:   27:#include <assert.h>
        -:        -:   28:
        -:        -:   29:#include "main/core.h" /* for struct gl_context */
        -:        -:   30:#include "main/context.h"
        -:        -:   31:#include "main/debug_output.h"
        -:        -:   32:#include "main/formats.h"
        -:        -:   33:#include "main/shaderobj.h"
        -:        -:   34:#include "util/u_atomic.h" /* for p_atomic_cmpxchg */
        -:        -:   35:#include "util/ralloc.h"
        -:        -:   36:#include "util/disk_cache.h"
        -:        -:   37:#include "util/mesa-sha1.h"
        -:        -:   38:#include "ast.h"
        -:        -:   39:#include "glsl_parser_extras.h"
        -:        -:   40:#include "glsl_parser.h"
        -:        -:   41:#include "ir_optimization.h"
        -:        -:   42:#include "loop_analysis.h"
        -:        -:   43:#include "builtin_functions.h"
        -:        -:   44:
        -:        -:   45:/**
        -:        -:   46: * Format a short human-readable description of the given GLSL version.
        -:        -:   47: */
        -:        -:   48:const char *
    #####:    #####:   49:glsl_compute_version_string(void *mem_ctx, bool is_es, unsigned version)
        -:        -:   50:{
    #####:    #####:   51:   return ralloc_asprintf(mem_ctx, "GLSL%s %d.%02d", is_es ? " ES" : "",
    #####:    #####:   52:                          version / 100, version % 100);
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:
        -:        -:   56:static const unsigned known_desktop_glsl_versions[] =
        -:        -:   57:   { 110, 120, 130, 140, 150, 330, 400, 410, 420, 430, 440, 450 };
        -:        -:   58:static const unsigned known_desktop_gl_versions[] =
        -:        -:   59:   {  20,  21,  30,  31,  32,  33,  40,  41,  42,  43,  44,  45 };
        -:        -:   60:
        -:        -:   61:
        3:        3:   62:_mesa_glsl_parse_state::_mesa_glsl_parse_state(struct gl_context *_ctx,
        -:        -:   63:					       gl_shader_stage stage,
        -:        -:   64:                                               void *mem_ctx)
        -:        -:   65:   : ctx(_ctx), cs_input_local_size_specified(false), cs_input_local_size(),
        3:        3:   66:     switch_state()
        -:        -:   67:{
        3:        3:   68:   assert(stage < MESA_SHADER_STAGES);
        3:        3:   69:   this->stage = stage;
        -:        -:   70:
        3:        3:   71:   this->scanner = NULL;
        3:        3:   72:   this->translation_unit.make_empty();
        3:        3:   73:   this->symbols = new(mem_ctx) glsl_symbol_table;
        -:        -:   74:
        3:        3:   75:   this->linalloc = linear_alloc_parent(this, 0);
        -:        -:   76:
        3:        3:   77:   this->info_log = ralloc_strdup(mem_ctx, "");
        3:        3:   78:   this->error = false;
        3:        3:   79:   this->loop_nesting_ast = NULL;
        -:        -:   80:
        3:        3:   81:   this->uses_builtin_functions = false;
        -:        -:   82:
        -:        -:   83:   /* Set default language version and extensions */
        3:        3:   84:   this->language_version = 110;
        3:        3:   85:   this->forced_language_version = ctx->Const.ForceGLSLVersion;
        3:        3:   86:   this->zero_init = ctx->Const.GLSLZeroInit;
        3:        3:   87:   this->gl_version = 20;
        3:        3:   88:   this->compat_shader = true;
        3:        3:   89:   this->es_shader = false;
        3:        3:   90:   this->ARB_texture_rectangle_enable = true;
        -:        -:   91:
        -:        -:   92:   /* OpenGL ES 2.0 has different defaults from desktop GL. */
        3:        3:   93:   if (ctx->API == API_OPENGLES2) {
    #####:    #####:   94:      this->language_version = 100;
    #####:    #####:   95:      this->es_shader = true;
    #####:    #####:   96:      this->ARB_texture_rectangle_enable = false;
        -:        -:   97:   }
        -:        -:   98:
        3:        3:   99:   this->extensions = &ctx->Extensions;
        -:        -:  100:
        3:        3:  101:   this->Const.MaxLights = ctx->Const.MaxLights;
        3:        3:  102:   this->Const.MaxClipPlanes = ctx->Const.MaxClipPlanes;
        3:        3:  103:   this->Const.MaxTextureUnits = ctx->Const.MaxTextureUnits;
        3:        3:  104:   this->Const.MaxTextureCoords = ctx->Const.MaxTextureCoordUnits;
        3:        3:  105:   this->Const.MaxVertexAttribs = ctx->Const.Program[MESA_SHADER_VERTEX].MaxAttribs;
        3:        3:  106:   this->Const.MaxVertexUniformComponents = ctx->Const.Program[MESA_SHADER_VERTEX].MaxUniformComponents;
        3:        3:  107:   this->Const.MaxVertexTextureImageUnits = ctx->Const.Program[MESA_SHADER_VERTEX].MaxTextureImageUnits;
        3:        3:  108:   this->Const.MaxCombinedTextureImageUnits = ctx->Const.MaxCombinedTextureImageUnits;
        3:        3:  109:   this->Const.MaxTextureImageUnits = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits;
        3:        3:  110:   this->Const.MaxFragmentUniformComponents = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxUniformComponents;
        3:        3:  111:   this->Const.MinProgramTexelOffset = ctx->Const.MinProgramTexelOffset;
        3:        3:  112:   this->Const.MaxProgramTexelOffset = ctx->Const.MaxProgramTexelOffset;
        -:        -:  113:
        3:        3:  114:   this->Const.MaxDrawBuffers = ctx->Const.MaxDrawBuffers;
        -:        -:  115:
        3:        3:  116:   this->Const.MaxDualSourceDrawBuffers = ctx->Const.MaxDualSourceDrawBuffers;
        -:        -:  117:
        -:        -:  118:   /* 1.50 constants */
        3:        3:  119:   this->Const.MaxVertexOutputComponents = ctx->Const.Program[MESA_SHADER_VERTEX].MaxOutputComponents;
        3:        3:  120:   this->Const.MaxGeometryInputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxInputComponents;
        3:        3:  121:   this->Const.MaxGeometryOutputComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxOutputComponents;
        3:        3:  122:   this->Const.MaxFragmentInputComponents = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxInputComponents;
        3:        3:  123:   this->Const.MaxGeometryTextureImageUnits = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits;
        3:        3:  124:   this->Const.MaxGeometryOutputVertices = ctx->Const.MaxGeometryOutputVertices;
        3:        3:  125:   this->Const.MaxGeometryTotalOutputComponents = ctx->Const.MaxGeometryTotalOutputComponents;
        3:        3:  126:   this->Const.MaxGeometryUniformComponents = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxUniformComponents;
        -:        -:  127:
        3:        3:  128:   this->Const.MaxVertexAtomicCounters = ctx->Const.Program[MESA_SHADER_VERTEX].MaxAtomicCounters;
        3:        3:  129:   this->Const.MaxTessControlAtomicCounters = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxAtomicCounters;
        3:        3:  130:   this->Const.MaxTessEvaluationAtomicCounters = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxAtomicCounters;
        3:        3:  131:   this->Const.MaxGeometryAtomicCounters = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicCounters;
        3:        3:  132:   this->Const.MaxFragmentAtomicCounters = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicCounters;
        3:        3:  133:   this->Const.MaxComputeAtomicCounters = ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicCounters;
        3:        3:  134:   this->Const.MaxCombinedAtomicCounters = ctx->Const.MaxCombinedAtomicCounters;
        3:        3:  135:   this->Const.MaxAtomicBufferBindings = ctx->Const.MaxAtomicBufferBindings;
        -:        -:  136:   this->Const.MaxVertexAtomicCounterBuffers =
        3:        3:  137:      ctx->Const.Program[MESA_SHADER_VERTEX].MaxAtomicBuffers;
        -:        -:  138:   this->Const.MaxTessControlAtomicCounterBuffers =
        3:        3:  139:      ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxAtomicBuffers;
        -:        -:  140:   this->Const.MaxTessEvaluationAtomicCounterBuffers =
        3:        3:  141:      ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxAtomicBuffers;
        -:        -:  142:   this->Const.MaxGeometryAtomicCounterBuffers =
        3:        3:  143:      ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxAtomicBuffers;
        -:        -:  144:   this->Const.MaxFragmentAtomicCounterBuffers =
        3:        3:  145:      ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxAtomicBuffers;
        -:        -:  146:   this->Const.MaxComputeAtomicCounterBuffers =
        3:        3:  147:      ctx->Const.Program[MESA_SHADER_COMPUTE].MaxAtomicBuffers;
        -:        -:  148:   this->Const.MaxCombinedAtomicCounterBuffers =
        3:        3:  149:      ctx->Const.MaxCombinedAtomicBuffers;
        -:        -:  150:   this->Const.MaxAtomicCounterBufferSize =
        3:        3:  151:      ctx->Const.MaxAtomicBufferSize;
        -:        -:  152:
        -:        -:  153:   /* ARB_enhanced_layouts constants */
        3:        3:  154:   this->Const.MaxTransformFeedbackBuffers = ctx->Const.MaxTransformFeedbackBuffers;
        3:        3:  155:   this->Const.MaxTransformFeedbackInterleavedComponents = ctx->Const.MaxTransformFeedbackInterleavedComponents;
        -:        -:  156:
        -:        -:  157:   /* Compute shader constants */
       12:       12:  158:   for (unsigned i = 0; i < ARRAY_SIZE(this->Const.MaxComputeWorkGroupCount); i++)
        9:        9:  159:      this->Const.MaxComputeWorkGroupCount[i] = ctx->Const.MaxComputeWorkGroupCount[i];
       12:       12:  160:   for (unsigned i = 0; i < ARRAY_SIZE(this->Const.MaxComputeWorkGroupSize); i++)
        9:        9:  161:      this->Const.MaxComputeWorkGroupSize[i] = ctx->Const.MaxComputeWorkGroupSize[i];
        -:        -:  162:
        3:        3:  163:   this->Const.MaxComputeTextureImageUnits = ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits;
        3:        3:  164:   this->Const.MaxComputeUniformComponents = ctx->Const.Program[MESA_SHADER_COMPUTE].MaxUniformComponents;
        -:        -:  165:
        3:        3:  166:   this->Const.MaxImageUnits = ctx->Const.MaxImageUnits;
        3:        3:  167:   this->Const.MaxCombinedShaderOutputResources = ctx->Const.MaxCombinedShaderOutputResources;
        3:        3:  168:   this->Const.MaxImageSamples = ctx->Const.MaxImageSamples;
        3:        3:  169:   this->Const.MaxVertexImageUniforms = ctx->Const.Program[MESA_SHADER_VERTEX].MaxImageUniforms;
        3:        3:  170:   this->Const.MaxTessControlImageUniforms = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxImageUniforms;
        3:        3:  171:   this->Const.MaxTessEvaluationImageUniforms = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxImageUniforms;
        3:        3:  172:   this->Const.MaxGeometryImageUniforms = ctx->Const.Program[MESA_SHADER_GEOMETRY].MaxImageUniforms;
        3:        3:  173:   this->Const.MaxFragmentImageUniforms = ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxImageUniforms;
        3:        3:  174:   this->Const.MaxComputeImageUniforms = ctx->Const.Program[MESA_SHADER_COMPUTE].MaxImageUniforms;
        3:        3:  175:   this->Const.MaxCombinedImageUniforms = ctx->Const.MaxCombinedImageUniforms;
        -:        -:  176:
        -:        -:  177:   /* ARB_viewport_array */
        3:        3:  178:   this->Const.MaxViewports = ctx->Const.MaxViewports;
        -:        -:  179:
        -:        -:  180:   /* tessellation shader constants */
        3:        3:  181:   this->Const.MaxPatchVertices = ctx->Const.MaxPatchVertices;
        3:        3:  182:   this->Const.MaxTessGenLevel = ctx->Const.MaxTessGenLevel;
        3:        3:  183:   this->Const.MaxTessControlInputComponents = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxInputComponents;
        3:        3:  184:   this->Const.MaxTessControlOutputComponents = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxOutputComponents;
        3:        3:  185:   this->Const.MaxTessControlTextureImageUnits = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxTextureImageUnits;
        3:        3:  186:   this->Const.MaxTessEvaluationInputComponents = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxInputComponents;
        3:        3:  187:   this->Const.MaxTessEvaluationOutputComponents = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxOutputComponents;
        3:        3:  188:   this->Const.MaxTessEvaluationTextureImageUnits = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxTextureImageUnits;
        3:        3:  189:   this->Const.MaxTessPatchComponents = ctx->Const.MaxTessPatchComponents;
        3:        3:  190:   this->Const.MaxTessControlTotalOutputComponents = ctx->Const.MaxTessControlTotalOutputComponents;
        3:        3:  191:   this->Const.MaxTessControlUniformComponents = ctx->Const.Program[MESA_SHADER_TESS_CTRL].MaxUniformComponents;
        3:        3:  192:   this->Const.MaxTessEvaluationUniformComponents = ctx->Const.Program[MESA_SHADER_TESS_EVAL].MaxUniformComponents;
        -:        -:  193:
        -:        -:  194:   /* GL 4.5 / OES_sample_variables */
        3:        3:  195:   this->Const.MaxSamples = ctx->Const.MaxSamples;
        -:        -:  196:
        3:        3:  197:   this->current_function = NULL;
        3:        3:  198:   this->toplevel_ir = NULL;
        3:        3:  199:   this->found_return = false;
        3:        3:  200:   this->all_invariant = false;
        3:        3:  201:   this->user_structures = NULL;
        3:        3:  202:   this->num_user_structures = 0;
        3:        3:  203:   this->num_subroutines = 0;
        3:        3:  204:   this->subroutines = NULL;
        3:        3:  205:   this->num_subroutine_types = 0;
        3:        3:  206:   this->subroutine_types = NULL;
        -:        -:  207:
        -:        -:  208:   /* supported_versions should be large enough to support the known desktop
        -:        -:  209:    * GLSL versions plus 4 GLES versions (ES 1.00, ES 3.00, ES 3.10, ES 3.20)
        -:        -:  210:    */
        -:        -:  211:   STATIC_ASSERT((ARRAY_SIZE(known_desktop_glsl_versions) + 4) ==
        -:        -:  212:                 ARRAY_SIZE(this->supported_versions));
        -:        -:  213:
        -:        -:  214:   /* Populate the list of supported GLSL versions */
        -:        -:  215:   /* FINISHME: Once the OpenGL 3.0 'forward compatible' context or
        -:        -:  216:    * the OpenGL 3.2 Core context is supported, this logic will need
        -:        -:  217:    * change.  Older versions of GLSL are no longer supported
        -:        -:  218:    * outside the compatibility contexts of 3.x.
        -:        -:  219:    */
        3:        3:  220:   this->num_supported_versions = 0;
        3:        3:  221:   if (_mesa_is_desktop_gl(ctx)) {
       39:       39:  222:      for (unsigned i = 0; i < ARRAY_SIZE(known_desktop_glsl_versions); i++) {
       36:       36:  223:         if (known_desktop_glsl_versions[i] <= ctx->Const.GLSLVersion) {
        9:        9:  224:            this->supported_versions[this->num_supported_versions].ver
        9:        9:  225:               = known_desktop_glsl_versions[i];
        9:        9:  226:            this->supported_versions[this->num_supported_versions].gl_ver
        9:        9:  227:               = known_desktop_gl_versions[i];
        9:        9:  228:            this->supported_versions[this->num_supported_versions].es = false;
        9:        9:  229:            this->num_supported_versions++;
        -:        -:  230:         }
        -:        -:  231:      }
        -:        -:  232:   }
        3:        3:  233:   if (ctx->API == API_OPENGLES2 || ctx->Extensions.ARB_ES2_compatibility) {
        3:        3:  234:      this->supported_versions[this->num_supported_versions].ver = 100;
        3:        3:  235:      this->supported_versions[this->num_supported_versions].gl_ver = 20;
        3:        3:  236:      this->supported_versions[this->num_supported_versions].es = true;
        3:        3:  237:      this->num_supported_versions++;
        -:        -:  238:   }
        3:        3:  239:   if (_mesa_is_gles3(ctx) || ctx->Extensions.ARB_ES3_compatibility) {
        3:        3:  240:      this->supported_versions[this->num_supported_versions].ver = 300;
        3:        3:  241:      this->supported_versions[this->num_supported_versions].gl_ver = 30;
        3:        3:  242:      this->supported_versions[this->num_supported_versions].es = true;
        3:        3:  243:      this->num_supported_versions++;
        -:        -:  244:   }
        3:        3:  245:   if (_mesa_is_gles31(ctx) || ctx->Extensions.ARB_ES3_1_compatibility) {
    #####:    #####:  246:      this->supported_versions[this->num_supported_versions].ver = 310;
    #####:    #####:  247:      this->supported_versions[this->num_supported_versions].gl_ver = 31;
    #####:    #####:  248:      this->supported_versions[this->num_supported_versions].es = true;
    #####:    #####:  249:      this->num_supported_versions++;
        -:        -:  250:   }
        6:        6:  251:   if ((ctx->API == API_OPENGLES2 && ctx->Version >= 32) ||
        3:        3:  252:       ctx->Extensions.ARB_ES3_2_compatibility) {
    #####:    #####:  253:      this->supported_versions[this->num_supported_versions].ver = 320;
    #####:    #####:  254:      this->supported_versions[this->num_supported_versions].gl_ver = 32;
    #####:    #####:  255:      this->supported_versions[this->num_supported_versions].es = true;
    #####:    #####:  256:      this->num_supported_versions++;
        -:        -:  257:   }
        -:        -:  258:
        -:        -:  259:   /* Create a string for use in error messages to tell the user which GLSL
        -:        -:  260:    * versions are supported.
        -:        -:  261:    */
        3:        3:  262:   char *supported = ralloc_strdup(this, "");
       18:       18:  263:   for (unsigned i = 0; i < this->num_supported_versions; i++) {
       15:       15:  264:      unsigned ver = this->supported_versions[i].ver;
        -:        -:  265:      const char *const prefix = (i == 0)
        -:        -:  266:	 ? ""
       15:       15:  267:	 : ((i == this->num_supported_versions - 1) ? ", and " : ", ");
       15:       15:  268:      const char *const suffix = (this->supported_versions[i].es) ? " ES" : "";
        -:        -:  269:
       15:       15:  270:      ralloc_asprintf_append(& supported, "%s%u.%02u%s",
        -:        -:  271:			     prefix,
        -:        -:  272:			     ver / 100, ver % 100,
       15:       15:  273:			     suffix);
        -:        -:  274:   }
        -:        -:  275:
        3:        3:  276:   this->supported_version_string = supported;
        -:        -:  277:
        3:        3:  278:   if (ctx->Const.ForceGLSLExtensionsWarn)
    #####:    #####:  279:      _mesa_glsl_process_extension("all", NULL, "warn", NULL, this);
        -:        -:  280:
        3:        3:  281:   this->default_uniform_qualifier = new(this) ast_type_qualifier();
        3:        3:  282:   this->default_uniform_qualifier->flags.q.shared = 1;
        3:        3:  283:   this->default_uniform_qualifier->flags.q.column_major = 1;
        -:        -:  284:
        3:        3:  285:   this->default_shader_storage_qualifier = new(this) ast_type_qualifier();
        3:        3:  286:   this->default_shader_storage_qualifier->flags.q.shared = 1;
        3:        3:  287:   this->default_shader_storage_qualifier->flags.q.column_major = 1;
        -:        -:  288:
        3:        3:  289:   this->fs_uses_gl_fragcoord = false;
        3:        3:  290:   this->fs_redeclares_gl_fragcoord = false;
        3:        3:  291:   this->fs_origin_upper_left = false;
        3:        3:  292:   this->fs_pixel_center_integer = false;
        3:        3:  293:   this->fs_redeclares_gl_fragcoord_with_no_layout_qualifiers = false;
        -:        -:  294:
        3:        3:  295:   this->gs_input_prim_type_specified = false;
        3:        3:  296:   this->tcs_output_vertices_specified = false;
        3:        3:  297:   this->gs_input_size = 0;
        3:        3:  298:   this->in_qualifier = new(this) ast_type_qualifier();
        3:        3:  299:   this->out_qualifier = new(this) ast_type_qualifier();
        3:        3:  300:   this->fs_early_fragment_tests = false;
        3:        3:  301:   this->fs_inner_coverage = false;
        3:        3:  302:   this->fs_post_depth_coverage = false;
        3:        3:  303:   this->fs_blend_support = 0;
        3:        3:  304:   memset(this->atomic_counter_offsets, 0,
        3:        3:  305:          sizeof(this->atomic_counter_offsets));
        -:        -:  306:   this->allow_extension_directive_midshader =
        3:        3:  307:      ctx->Const.AllowGLSLExtensionDirectiveMidShader;
        -:        -:  308:
        3:        3:  309:   this->cs_input_local_size_variable_specified = false;
        3:        3:  310:}
        -:        -:  311:
        -:        -:  312:/**
        -:        -:  313: * Determine whether the current GLSL version is sufficiently high to support
        -:        -:  314: * a certain feature, and generate an error message if it isn't.
        -:        -:  315: *
        -:        -:  316: * \param required_glsl_version and \c required_glsl_es_version are
        -:        -:  317: * interpreted as they are in _mesa_glsl_parse_state::is_version().
        -:        -:  318: *
        -:        -:  319: * \param locp is the parser location where the error should be reported.
        -:        -:  320: *
        -:        -:  321: * \param fmt (and additional arguments) constitute a printf-style error
        -:        -:  322: * message to report if the version check fails.  Information about the
        -:        -:  323: * current and required GLSL versions will be appended.  So, for example, if
        -:        -:  324: * the GLSL version being compiled is 1.20, and check_version(130, 300, locp,
        -:        -:  325: * "foo unsupported") is called, the error message will be "foo unsupported in
        -:        -:  326: * GLSL 1.20 (GLSL 1.30 or GLSL 3.00 ES required)".
        -:        -:  327: */
        -:        -:  328:bool
    #####:    #####:  329:_mesa_glsl_parse_state::check_version(unsigned required_glsl_version,
        -:        -:  330:                                      unsigned required_glsl_es_version,
        -:        -:  331:                                      YYLTYPE *locp, const char *fmt, ...)
        -:        -:  332:{
    #####:    #####:  333:   if (this->is_version(required_glsl_version, required_glsl_es_version))
    #####:    #####:  334:      return true;
        -:        -:  335:
        -:        -:  336:   va_list args;
    #####:    #####:  337:   va_start(args, fmt);
    #####:    #####:  338:   char *problem = ralloc_vasprintf(this, fmt, args);
    #####:    #####:  339:   va_end(args);
        -:        -:  340:   const char *glsl_version_string
    #####:    #####:  341:      = glsl_compute_version_string(this, false, required_glsl_version);
        -:        -:  342:   const char *glsl_es_version_string
    #####:    #####:  343:      = glsl_compute_version_string(this, true, required_glsl_es_version);
    #####:    #####:  344:   const char *requirement_string = "";
    #####:    #####:  345:   if (required_glsl_version && required_glsl_es_version) {
        -:        -:  346:      requirement_string = ralloc_asprintf(this, " (%s or %s required)",
        -:        -:  347:                                           glsl_version_string,
    #####:    #####:  348:                                           glsl_es_version_string);
    #####:    #####:  349:   } else if (required_glsl_version) {
        -:        -:  350:      requirement_string = ralloc_asprintf(this, " (%s required)",
    #####:    #####:  351:                                           glsl_version_string);
    #####:    #####:  352:   } else if (required_glsl_es_version) {
        -:        -:  353:      requirement_string = ralloc_asprintf(this, " (%s required)",
    #####:    #####:  354:                                           glsl_es_version_string);
        -:        -:  355:   }
    #####:    #####:  356:   _mesa_glsl_error(locp, this, "%s in %s%s",
        -:        -:  357:                    problem, this->get_version_string(),
    #####:    #####:  358:                    requirement_string);
        -:        -:  359:
    #####:    #####:  360:   return false;
        -:        -:  361:}
        -:        -:  362:
        -:        -:  363:/**
        -:        -:  364: * Process a GLSL #version directive.
        -:        -:  365: *
        -:        -:  366: * \param version is the integer that follows the #version token.
        -:        -:  367: *
        -:        -:  368: * \param ident is a string identifier that follows the integer, if any is
        -:        -:  369: * present.  Otherwise NULL.
        -:        -:  370: */
        -:        -:  371:void
        2:        2:  372:_mesa_glsl_parse_state::process_version_directive(YYLTYPE *locp, int version,
        -:        -:  373:                                                  const char *ident)
        -:        -:  374:{
        2:        2:  375:   bool es_token_present = false;
        2:        2:  376:   bool compat_token_present = false;
        2:        2:  377:   if (ident) {
    #####:    #####:  378:      if (strcmp(ident, "es") == 0) {
    #####:    #####:  379:         es_token_present = true;
    #####:    #####:  380:      } else if (version >= 150) {
    #####:    #####:  381:         if (strcmp(ident, "core") == 0) {
        -:        -:  382:            /* Accept the token.  There's no need to record that this is
        -:        -:  383:             * a core profile shader since that's the only profile we support.
        -:        -:  384:             */
    #####:    #####:  385:         } else if (strcmp(ident, "compatibility") == 0) {
    #####:    #####:  386:            compat_token_present = true;
        -:        -:  387:
    #####:    #####:  388:            if (this->ctx->API != API_OPENGL_COMPAT) {
        -:        -:  389:               _mesa_glsl_error(locp, this,
    #####:    #####:  390:                                "the compatibility profile is not supported");
        -:        -:  391:            }
        -:        -:  392:         } else {
        -:        -:  393:            _mesa_glsl_error(locp, this,
        -:        -:  394:                             "\"%s\" is not a valid shading language profile; "
    #####:    #####:  395:                             "if present, it must be \"core\"", ident);
        -:        -:  396:         }
        -:        -:  397:      } else {
        -:        -:  398:         _mesa_glsl_error(locp, this,
    #####:    #####:  399:                          "illegal text following version number");
        -:        -:  400:      }
        -:        -:  401:   }
        -:        -:  402:
        2:        2:  403:   this->es_shader = es_token_present;
        2:        2:  404:   if (version == 100) {
    #####:    #####:  405:      if (es_token_present) {
        -:        -:  406:         _mesa_glsl_error(locp, this,
        -:        -:  407:                          "GLSL 1.00 ES should be selected using "
    #####:    #####:  408:                          "`#version 100'");
        -:        -:  409:      } else {
    #####:    #####:  410:         this->es_shader = true;
        -:        -:  411:      }
        -:        -:  412:   }
        -:        -:  413:
        2:        2:  414:   if (this->es_shader) {
    #####:    #####:  415:      this->ARB_texture_rectangle_enable = false;
        -:        -:  416:   }
        -:        -:  417:
        2:        2:  418:   if (this->forced_language_version)
    #####:    #####:  419:      this->language_version = this->forced_language_version;
        -:        -:  420:   else
        2:        2:  421:      this->language_version = version;
        -:        -:  422:
        6:        6:  423:   this->compat_shader = compat_token_present ||
        6:        6:  424:                         (!this->es_shader && this->language_version < 140);
        -:        -:  425:
        2:        2:  426:   bool supported = false;
        6:        6:  427:   for (unsigned i = 0; i < this->num_supported_versions; i++) {
        6:        6:  428:      if (this->supported_versions[i].ver == this->language_version
        2:        2:  429:          && this->supported_versions[i].es == this->es_shader) {
        2:        2:  430:         this->gl_version = this->supported_versions[i].gl_ver;
        2:        2:  431:         supported = true;
        2:        2:  432:         break;
        -:        -:  433:      }
        -:        -:  434:   }
        -:        -:  435:
        2:        2:  436:   if (!supported) {
    #####:    #####:  437:      _mesa_glsl_error(locp, this, "%s is not supported. "
        -:        -:  438:                       "Supported versions are: %s",
        -:        -:  439:                       this->get_version_string(),
    #####:    #####:  440:                       this->supported_version_string);
        -:        -:  441:
        -:        -:  442:      /* On exit, the language_version must be set to a valid value.
        -:        -:  443:       * Later calls to _mesa_glsl_initialize_types will misbehave if
        -:        -:  444:       * the version is invalid.
        -:        -:  445:       */
    #####:    #####:  446:      switch (this->ctx->API) {
        -:        -:  447:      case API_OPENGL_COMPAT:
        -:        -:  448:      case API_OPENGL_CORE:
    #####:    #####:  449:	 this->language_version = this->ctx->Const.GLSLVersion;
    #####:    #####:  450:	 break;
        -:        -:  451:
        -:        -:  452:      case API_OPENGLES:
    #####:    #####:  453:	 assert(!"Should not get here.");
        -:        -:  454:	 /* FALLTHROUGH */
        -:        -:  455:
        -:        -:  456:      case API_OPENGLES2:
    #####:    #####:  457:	 this->language_version = 100;
    #####:    #####:  458:	 break;
        -:        -:  459:      }
        -:        -:  460:   }
        2:        2:  461:}
        -:        -:  462:
        -:        -:  463:
        -:        -:  464:/* This helper function will append the given message to the shader's
        -:        -:  465:   info log and report it via GL_ARB_debug_output. Per that extension,
        -:        -:  466:   'type' is one of the enum values classifying the message, and
        -:        -:  467:   'id' is the implementation-defined ID of the given message. */
        -:        -:  468:static void
    #####:    #####:  469:_mesa_glsl_msg(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
        -:        -:  470:               GLenum type, const char *fmt, va_list ap)
        -:        -:  471:{
    #####:    #####:  472:   bool error = (type == MESA_DEBUG_TYPE_ERROR);
    #####:    #####:  473:   GLuint msg_id = 0;
        -:        -:  474:
    #####:    #####:  475:   assert(state->info_log != NULL);
        -:        -:  476:
        -:        -:  477:   /* Get the offset that the new message will be written to. */
    #####:    #####:  478:   int msg_offset = strlen(state->info_log);
        -:        -:  479:
    #####:    #####:  480:   ralloc_asprintf_append(&state->info_log, "%u:%u(%u): %s: ",
    #####:    #####:  481:					    locp->source,
    #####:    #####:  482:					    locp->first_line,
    #####:    #####:  483:					    locp->first_column,
    #####:    #####:  484:					    error ? "error" : "warning");
    #####:    #####:  485:   ralloc_vasprintf_append(&state->info_log, fmt, ap);
        -:        -:  486:
    #####:    #####:  487:   const char *const msg = &state->info_log[msg_offset];
    #####:    #####:  488:   struct gl_context *ctx = state->ctx;
        -:        -:  489:
        -:        -:  490:   /* Report the error via GL_ARB_debug_output. */
    #####:    #####:  491:   _mesa_shader_debug(ctx, type, &msg_id, msg);
        -:        -:  492:
    #####:    #####:  493:   ralloc_strcat(&state->info_log, "\n");
    #####:    #####:  494:}
        -:        -:  495:
        -:        -:  496:void
    #####:    #####:  497:_mesa_glsl_error(YYLTYPE *locp, _mesa_glsl_parse_state *state,
        -:        -:  498:		 const char *fmt, ...)
        -:        -:  499:{
        -:        -:  500:   va_list ap;
        -:        -:  501:
    #####:    #####:  502:   state->error = true;
        -:        -:  503:
    #####:    #####:  504:   va_start(ap, fmt);
    #####:    #####:  505:   _mesa_glsl_msg(locp, state, MESA_DEBUG_TYPE_ERROR, fmt, ap);
    #####:    #####:  506:   va_end(ap);
    #####:    #####:  507:}
        -:        -:  508:
        -:        -:  509:
        -:        -:  510:void
    #####:    #####:  511:_mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state,
        -:        -:  512:		   const char *fmt, ...)
        -:        -:  513:{
        -:        -:  514:   va_list ap;
        -:        -:  515:
    #####:    #####:  516:   va_start(ap, fmt);
    #####:    #####:  517:   _mesa_glsl_msg(locp, state, MESA_DEBUG_TYPE_OTHER, fmt, ap);
    #####:    #####:  518:   va_end(ap);
    #####:    #####:  519:}
        -:        -:  520:
        -:        -:  521:
        -:        -:  522:/**
        -:        -:  523: * Enum representing the possible behaviors that can be specified in
        -:        -:  524: * an #extension directive.
        -:        -:  525: */
        -:        -:  526:enum ext_behavior {
        -:        -:  527:   extension_disable,
        -:        -:  528:   extension_enable,
        -:        -:  529:   extension_require,
        -:        -:  530:   extension_warn
        -:        -:  531:};
        -:        -:  532:
        -:        -:  533:/**
        -:        -:  534: * Element type for _mesa_glsl_supported_extensions
        -:        -:  535: */
        -:        -:  536:struct _mesa_glsl_extension {
        -:        -:  537:   /**
        -:        -:  538:    * Name of the extension when referred to in a GLSL extension
        -:        -:  539:    * statement
        -:        -:  540:    */
        -:        -:  541:   const char *name;
        -:        -:  542:
        -:        -:  543:   /**
        -:        -:  544:    * Whether this extension is a part of AEP
        -:        -:  545:    */
        -:        -:  546:   bool aep;
        -:        -:  547:
        -:        -:  548:   /**
        -:        -:  549:    * Predicate that checks whether the relevant extension is available for
        -:        -:  550:    * this context.
        -:        -:  551:    */
        -:        -:  552:   bool (*available_pred)(const struct gl_context *,
        -:        -:  553:                          gl_api api, uint8_t version);
        -:        -:  554:
        -:        -:  555:   /**
        -:        -:  556:    * Flag in the _mesa_glsl_parse_state struct that should be set
        -:        -:  557:    * when this extension is enabled.
        -:        -:  558:    *
        -:        -:  559:    * See note in _mesa_glsl_extension::supported_flag about "pointer
        -:        -:  560:    * to member" types.
        -:        -:  561:    */
        -:        -:  562:   bool _mesa_glsl_parse_state::* enable_flag;
        -:        -:  563:
        -:        -:  564:   /**
        -:        -:  565:    * Flag in the _mesa_glsl_parse_state struct that should be set
        -:        -:  566:    * when the shader requests "warn" behavior for this extension.
        -:        -:  567:    *
        -:        -:  568:    * See note in _mesa_glsl_extension::supported_flag about "pointer
        -:        -:  569:    * to member" types.
        -:        -:  570:    */
        -:        -:  571:   bool _mesa_glsl_parse_state::* warn_flag;
        -:        -:  572:
        -:        -:  573:
        -:        -:  574:   bool compatible_with_state(const _mesa_glsl_parse_state *state,
        -:        -:  575:                              gl_api api, uint8_t gl_version) const;
        -:        -:  576:   void set_flags(_mesa_glsl_parse_state *state, ext_behavior behavior) const;
        -:        -:  577:};
        -:        -:  578:
        -:        -:  579:/** Checks if the context supports a user-facing extension */
        -:        -:  580:#define EXT(name_str, driver_cap, ...) \
        -:        -:  581:static MAYBE_UNUSED bool \
        -:        -:  582:has_##name_str(const struct gl_context *ctx, gl_api api, uint8_t version) \
        -:        -:  583:{ \
        -:        -:  584:   return ctx->Extensions.driver_cap && (version >= \
        -:        -:  585:          _mesa_extension_table[MESA_EXTENSION_##name_str].version[api]); \
        -:        -:  586:}
        -:        -:  587:#include "main/extensions_table.h"
        -:        -:  588:#undef EXT
        -:        -:  589:
        -:        -:  590:#define EXT(NAME)                                           \
        -:        -:  591:   { "GL_" #NAME, false, has_##NAME,                        \
        -:        -:  592:     &_mesa_glsl_parse_state::NAME##_enable,                \
        -:        -:  593:     &_mesa_glsl_parse_state::NAME##_warn }
        -:        -:  594:
        -:        -:  595:#define EXT_AEP(NAME)                                       \
        -:        -:  596:   { "GL_" #NAME, true, has_##NAME,                         \
        -:        -:  597:     &_mesa_glsl_parse_state::NAME##_enable,                \
        -:        -:  598:     &_mesa_glsl_parse_state::NAME##_warn }
        -:        -:  599:
        -:        -:  600:/**
        -:        -:  601: * Table of extensions that can be enabled/disabled within a shader,
        -:        -:  602: * and the conditions under which they are supported.
        -:        -:  603: */
        -:        -:  604:static const _mesa_glsl_extension _mesa_glsl_supported_extensions[] = {
        -:        -:  605:   /* ARB extensions go here, sorted alphabetically.
        -:        -:  606:    */
        -:        -:  607:   EXT(ARB_ES3_1_compatibility),
        -:        -:  608:   EXT(ARB_ES3_2_compatibility),
        -:        -:  609:   EXT(ARB_arrays_of_arrays),
        -:        -:  610:   EXT(ARB_compute_shader),
        -:        -:  611:   EXT(ARB_compute_variable_group_size),
        -:        -:  612:   EXT(ARB_conservative_depth),
        -:        -:  613:   EXT(ARB_cull_distance),
        -:        -:  614:   EXT(ARB_derivative_control),
        -:        -:  615:   EXT(ARB_draw_buffers),
        -:        -:  616:   EXT(ARB_draw_instanced),
        -:        -:  617:   EXT(ARB_enhanced_layouts),
        -:        -:  618:   EXT(ARB_explicit_attrib_location),
        -:        -:  619:   EXT(ARB_explicit_uniform_location),
        -:        -:  620:   EXT(ARB_fragment_coord_conventions),
        -:        -:  621:   EXT(ARB_fragment_layer_viewport),
        -:        -:  622:   EXT(ARB_gpu_shader5),
        -:        -:  623:   EXT(ARB_gpu_shader_fp64),
        -:        -:  624:   EXT(ARB_gpu_shader_int64),
        -:        -:  625:   EXT(ARB_post_depth_coverage),
        -:        -:  626:   EXT(ARB_sample_shading),
        -:        -:  627:   EXT(ARB_separate_shader_objects),
        -:        -:  628:   EXT(ARB_shader_atomic_counter_ops),
        -:        -:  629:   EXT(ARB_shader_atomic_counters),
        -:        -:  630:   EXT(ARB_shader_ballot),
        -:        -:  631:   EXT(ARB_shader_bit_encoding),
        -:        -:  632:   EXT(ARB_shader_clock),
        -:        -:  633:   EXT(ARB_shader_draw_parameters),
        -:        -:  634:   EXT(ARB_shader_group_vote),
        -:        -:  635:   EXT(ARB_shader_image_load_store),
        -:        -:  636:   EXT(ARB_shader_image_size),
        -:        -:  637:   EXT(ARB_shader_precision),
        -:        -:  638:   EXT(ARB_shader_stencil_export),
        -:        -:  639:   EXT(ARB_shader_storage_buffer_object),
        -:        -:  640:   EXT(ARB_shader_subroutine),
        -:        -:  641:   EXT(ARB_shader_texture_image_samples),
        -:        -:  642:   EXT(ARB_shader_texture_lod),
        -:        -:  643:   EXT(ARB_shader_viewport_layer_array),
        -:        -:  644:   EXT(ARB_shading_language_420pack),
        -:        -:  645:   EXT(ARB_shading_language_packing),
        -:        -:  646:   EXT(ARB_tessellation_shader),
        -:        -:  647:   EXT(ARB_texture_cube_map_array),
        -:        -:  648:   EXT(ARB_texture_gather),
        -:        -:  649:   EXT(ARB_texture_multisample),
        -:        -:  650:   EXT(ARB_texture_query_levels),
        -:        -:  651:   EXT(ARB_texture_query_lod),
        -:        -:  652:   EXT(ARB_texture_rectangle),
        -:        -:  653:   EXT(ARB_uniform_buffer_object),
        -:        -:  654:   EXT(ARB_vertex_attrib_64bit),
        -:        -:  655:   EXT(ARB_viewport_array),
        -:        -:  656:
        -:        -:  657:   /* KHR extensions go here, sorted alphabetically.
        -:        -:  658:    */
        -:        -:  659:   EXT_AEP(KHR_blend_equation_advanced),
        -:        -:  660:
        -:        -:  661:   /* OES extensions go here, sorted alphabetically.
        -:        -:  662:    */
        -:        -:  663:   EXT(OES_EGL_image_external),
        -:        -:  664:   EXT(OES_geometry_point_size),
        -:        -:  665:   EXT(OES_geometry_shader),
        -:        -:  666:   EXT(OES_gpu_shader5),
        -:        -:  667:   EXT(OES_primitive_bounding_box),
        -:        -:  668:   EXT_AEP(OES_sample_variables),
        -:        -:  669:   EXT_AEP(OES_shader_image_atomic),
        -:        -:  670:   EXT(OES_shader_io_blocks),
        -:        -:  671:   EXT_AEP(OES_shader_multisample_interpolation),
        -:        -:  672:   EXT(OES_standard_derivatives),
        -:        -:  673:   EXT(OES_tessellation_point_size),
        -:        -:  674:   EXT(OES_tessellation_shader),
        -:        -:  675:   EXT(OES_texture_3D),
        -:        -:  676:   EXT(OES_texture_buffer),
        -:        -:  677:   EXT(OES_texture_cube_map_array),
        -:        -:  678:   EXT_AEP(OES_texture_storage_multisample_2d_array),
        -:        -:  679:   EXT(OES_viewport_array),
        -:        -:  680:
        -:        -:  681:   /* All other extensions go here, sorted alphabetically.
        -:        -:  682:    */
        -:        -:  683:   EXT(AMD_conservative_depth),
        -:        -:  684:   EXT(AMD_shader_stencil_export),
        -:        -:  685:   EXT(AMD_shader_trinary_minmax),
        -:        -:  686:   EXT(AMD_vertex_shader_layer),
        -:        -:  687:   EXT(AMD_vertex_shader_viewport_index),
        -:        -:  688:   EXT(ANDROID_extension_pack_es31a),
        -:        -:  689:   EXT(EXT_blend_func_extended),
        -:        -:  690:   EXT(EXT_frag_depth),
        -:        -:  691:   EXT(EXT_draw_buffers),
        -:        -:  692:   EXT(EXT_clip_cull_distance),
        -:        -:  693:   EXT(EXT_geometry_point_size),
        -:        -:  694:   EXT_AEP(EXT_geometry_shader),
        -:        -:  695:   EXT_AEP(EXT_gpu_shader5),
        -:        -:  696:   EXT_AEP(EXT_primitive_bounding_box),
        -:        -:  697:   EXT(EXT_separate_shader_objects),
        -:        -:  698:   EXT(EXT_shader_framebuffer_fetch),
        -:        -:  699:   EXT(EXT_shader_integer_mix),
        -:        -:  700:   EXT_AEP(EXT_shader_io_blocks),
        -:        -:  701:   EXT(EXT_shader_samples_identical),
        -:        -:  702:   EXT(EXT_tessellation_point_size),
        -:        -:  703:   EXT_AEP(EXT_tessellation_shader),
        -:        -:  704:   EXT(EXT_texture_array),
        -:        -:  705:   EXT_AEP(EXT_texture_buffer),
        -:        -:  706:   EXT_AEP(EXT_texture_cube_map_array),
        -:        -:  707:   EXT(INTEL_conservative_rasterization),
        -:        -:  708:   EXT(MESA_shader_integer_functions),
        -:        -:  709:   EXT(NV_image_formats),
        -:        -:  710:};
        -:        -:  711:
        -:        -:  712:#undef EXT
        -:        -:  713:
        -:        -:  714:
        -:        -:  715:/**
        -:        -:  716: * Determine whether a given extension is compatible with the target,
        -:        -:  717: * API, and extension information in the current parser state.
        -:        -:  718: */
      188:      188:  719:bool _mesa_glsl_extension::compatible_with_state(
        -:        -:  720:      const _mesa_glsl_parse_state *state, gl_api api, uint8_t gl_version) const
        -:        -:  721:{
      188:      188:  722:   return this->available_pred(state->ctx, api, gl_version);
        -:        -:  723:}
        -:        -:  724:
        -:        -:  725:/**
        -:        -:  726: * Set the appropriate flags in the parser state to establish the
        -:        -:  727: * given behavior for this extension.
        -:        -:  728: */
    #####:    #####:  729:void _mesa_glsl_extension::set_flags(_mesa_glsl_parse_state *state,
        -:        -:  730:                                     ext_behavior behavior) const
        -:        -:  731:{
        -:        -:  732:   /* Note: the ->* operator indexes into state by the
        -:        -:  733:    * offsets this->enable_flag and this->warn_flag.  See
        -:        -:  734:    * _mesa_glsl_extension::supported_flag for more info.
        -:        -:  735:    */
    #####:    #####:  736:   state->*(this->enable_flag) = (behavior != extension_disable);
    #####:    #####:  737:   state->*(this->warn_flag)   = (behavior == extension_warn);
    #####:    #####:  738:}
        -:        -:  739:
        -:        -:  740:/**
        -:        -:  741: * Find an extension by name in _mesa_glsl_supported_extensions.  If
        -:        -:  742: * the name is not found, return NULL.
        -:        -:  743: */
    #####:    #####:  744:static const _mesa_glsl_extension *find_extension(const char *name)
        -:        -:  745:{
    #####:    #####:  746:   for (unsigned i = 0; i < ARRAY_SIZE(_mesa_glsl_supported_extensions); ++i) {
    #####:    #####:  747:      if (strcmp(name, _mesa_glsl_supported_extensions[i].name) == 0) {
    #####:    #####:  748:         return &_mesa_glsl_supported_extensions[i];
        -:        -:  749:      }
        -:        -:  750:   }
    #####:    #####:  751:   return NULL;
        -:        -:  752:}
        -:        -:  753:
        -:        -:  754:bool
    #####:    #####:  755:_mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp,
        -:        -:  756:			     const char *behavior_string, YYLTYPE *behavior_locp,
        -:        -:  757:			     _mesa_glsl_parse_state *state)
        -:        -:  758:{
    #####:    #####:  759:   uint8_t gl_version = state->ctx->Extensions.Version;
    #####:    #####:  760:   gl_api api = state->ctx->API;
        -:        -:  761:   ext_behavior behavior;
    #####:    #####:  762:   if (strcmp(behavior_string, "warn") == 0) {
    #####:    #####:  763:      behavior = extension_warn;
    #####:    #####:  764:   } else if (strcmp(behavior_string, "require") == 0) {
    #####:    #####:  765:      behavior = extension_require;
    #####:    #####:  766:   } else if (strcmp(behavior_string, "enable") == 0) {
    #####:    #####:  767:      behavior = extension_enable;
    #####:    #####:  768:   } else if (strcmp(behavior_string, "disable") == 0) {
    #####:    #####:  769:      behavior = extension_disable;
        -:        -:  770:   } else {
        -:        -:  771:      _mesa_glsl_error(behavior_locp, state,
        -:        -:  772:		       "unknown extension behavior `%s'",
    #####:    #####:  773:		       behavior_string);
    #####:    #####:  774:      return false;
        -:        -:  775:   }
        -:        -:  776:
        -:        -:  777:   /* If we're in a desktop context but with an ES shader, use an ES API enum
        -:        -:  778:    * to verify extension availability.
        -:        -:  779:    */
    #####:    #####:  780:   if (state->es_shader && api != API_OPENGLES2)
    #####:    #####:  781:      api = API_OPENGLES2;
        -:        -:  782:   /* Use the language-version derived GL version to extension checks, unless
        -:        -:  783:    * we're using meta, which sets the version to the max.
        -:        -:  784:    */
    #####:    #####:  785:   if (gl_version != 0xff)
    #####:    #####:  786:      gl_version = state->gl_version;
        -:        -:  787:
    #####:    #####:  788:   if (strcmp(name, "all") == 0) {
    #####:    #####:  789:      if ((behavior == extension_enable) || (behavior == extension_require)) {
    #####:    #####:  790:	 _mesa_glsl_error(name_locp, state, "cannot %s all extensions",
        -:        -:  791:			  (behavior == extension_enable)
    #####:    #####:  792:			  ? "enable" : "require");
    #####:    #####:  793:	 return false;
        -:        -:  794:      } else {
    #####:    #####:  795:         for (unsigned i = 0;
    #####:    #####:  796:              i < ARRAY_SIZE(_mesa_glsl_supported_extensions); ++i) {
        -:        -:  797:            const _mesa_glsl_extension *extension
    #####:    #####:  798:               = &_mesa_glsl_supported_extensions[i];
    #####:    #####:  799:            if (extension->compatible_with_state(state, api, gl_version)) {
    #####:    #####:  800:               _mesa_glsl_supported_extensions[i].set_flags(state, behavior);
        -:        -:  801:            }
        -:        -:  802:         }
        -:        -:  803:      }
        -:        -:  804:   } else {
    #####:    #####:  805:      const _mesa_glsl_extension *extension = find_extension(name);
    #####:    #####:  806:      if (extension && extension->compatible_with_state(state, api, gl_version)) {
    #####:    #####:  807:         extension->set_flags(state, behavior);
    #####:    #####:  808:         if (extension->available_pred == has_ANDROID_extension_pack_es31a) {
    #####:    #####:  809:            for (unsigned i = 0;
    #####:    #####:  810:                 i < ARRAY_SIZE(_mesa_glsl_supported_extensions); ++i) {
        -:        -:  811:               const _mesa_glsl_extension *extension =
    #####:    #####:  812:                  &_mesa_glsl_supported_extensions[i];
        -:        -:  813:
    #####:    #####:  814:               if (!extension->aep)
    #####:    #####:  815:                  continue;
        -:        -:  816:               /* AEP should not be enabled if all of the sub-extensions can't
        -:        -:  817:                * also be enabled. This is not the proper layer to do such
        -:        -:  818:                * error-checking though.
        -:        -:  819:                */
    #####:    #####:  820:               assert(extension->compatible_with_state(state, api, gl_version));
    #####:    #####:  821:               extension->set_flags(state, behavior);
        -:        -:  822:            }
        -:        -:  823:         }
        -:        -:  824:      } else {
        -:        -:  825:         static const char fmt[] = "extension `%s' unsupported in %s shader";
        -:        -:  826:
    #####:    #####:  827:         if (behavior == extension_require) {
    #####:    #####:  828:            _mesa_glsl_error(name_locp, state, fmt,
    #####:    #####:  829:                             name, _mesa_shader_stage_to_string(state->stage));
    #####:    #####:  830:            return false;
        -:        -:  831:         } else {
    #####:    #####:  832:            _mesa_glsl_warning(name_locp, state, fmt,
    #####:    #####:  833:                               name, _mesa_shader_stage_to_string(state->stage));
        -:        -:  834:         }
        -:        -:  835:      }
        -:        -:  836:   }
        -:        -:  837:
    #####:    #####:  838:   return true;
        -:        -:  839:}
        -:        -:  840:
        -:        -:  841:
        -:        -:  842:/**
        -:        -:  843: * Recurses through <type> and <expr> if <expr> is an aggregate initializer
        -:        -:  844: * and sets <expr>'s <constructor_type> field to <type>. Gives later functions
        -:        -:  845: * (process_array_constructor, et al) sufficient information to do type
        -:        -:  846: * checking.
        -:        -:  847: *
        -:        -:  848: * Operates on assignments involving an aggregate initializer. E.g.,
        -:        -:  849: *
        -:        -:  850: * vec4 pos = {1.0, -1.0, 0.0, 1.0};
        -:        -:  851: *
        -:        -:  852: * or more ridiculously,
        -:        -:  853: *
        -:        -:  854: * struct S {
        -:        -:  855: *     vec4 v[2];
        -:        -:  856: * };
        -:        -:  857: *
        -:        -:  858: * struct {
        -:        -:  859: *     S a[2], b;
        -:        -:  860: *     int c;
        -:        -:  861: * } aggregate = {
        -:        -:  862: *     {
        -:        -:  863: *         {
        -:        -:  864: *             {
        -:        -:  865: *                 {1.0, 2.0, 3.0, 4.0}, // a[0].v[0]
        -:        -:  866: *                 {5.0, 6.0, 7.0, 8.0}  // a[0].v[1]
        -:        -:  867: *             } // a[0].v
        -:        -:  868: *         }, // a[0]
        -:        -:  869: *         {
        -:        -:  870: *             {
        -:        -:  871: *                 {1.0, 2.0, 3.0, 4.0}, // a[1].v[0]
        -:        -:  872: *                 {5.0, 6.0, 7.0, 8.0}  // a[1].v[1]
        -:        -:  873: *             } // a[1].v
        -:        -:  874: *         } // a[1]
        -:        -:  875: *     }, // a
        -:        -:  876: *     {
        -:        -:  877: *         {
        -:        -:  878: *             {1.0, 2.0, 3.0, 4.0}, // b.v[0]
        -:        -:  879: *             {5.0, 6.0, 7.0, 8.0}  // b.v[1]
        -:        -:  880: *         } // b.v
        -:        -:  881: *     }, // b
        -:        -:  882: *     4 // c
        -:        -:  883: * };
        -:        -:  884: *
        -:        -:  885: * This pass is necessary because the right-hand side of <type> e = { ... }
        -:        -:  886: * doesn't contain sufficient information to determine if the types match.
        -:        -:  887: */
        -:        -:  888:void
    #####:    #####:  889:_mesa_ast_set_aggregate_type(const glsl_type *type,
        -:        -:  890:                             ast_expression *expr)
        -:        -:  891:{
    #####:    #####:  892:   ast_aggregate_initializer *ai = (ast_aggregate_initializer *)expr;
    #####:    #####:  893:   ai->constructor_type = type;
        -:        -:  894:
        -:        -:  895:   /* If the aggregate is an array, recursively set its elements' types. */
    #####:    #####:  896:   if (type->is_array()) {
        -:        -:  897:      /* Each array element has the type type->fields.array.
        -:        -:  898:       *
        -:        -:  899:       * E.g., if <type> if struct S[2] we want to set each element's type to
        -:        -:  900:       * struct S.
        -:        -:  901:       */
    #####:    #####:  902:      for (exec_node *expr_node = ai->expressions.get_head_raw();
    #####:    #####:  903:           !expr_node->is_tail_sentinel();
        -:        -:  904:           expr_node = expr_node->next) {
    #####:    #####:  905:         ast_expression *expr = exec_node_data(ast_expression, expr_node,
        -:        -:  906:                                               link);
        -:        -:  907:
    #####:    #####:  908:         if (expr->oper == ast_aggregate)
    #####:    #####:  909:            _mesa_ast_set_aggregate_type(type->fields.array, expr);
        -:        -:  910:      }
        -:        -:  911:
        -:        -:  912:   /* If the aggregate is a struct, recursively set its fields' types. */
    #####:    #####:  913:   } else if (type->is_record()) {
    #####:    #####:  914:      exec_node *expr_node = ai->expressions.get_head_raw();
        -:        -:  915:
        -:        -:  916:      /* Iterate through the struct's fields. */
    #####:    #####:  917:      for (unsigned i = 0; !expr_node->is_tail_sentinel() && i < type->length;
        -:        -:  918:           i++, expr_node = expr_node->next) {
    #####:    #####:  919:         ast_expression *expr = exec_node_data(ast_expression, expr_node,
        -:        -:  920:                                               link);
        -:        -:  921:
    #####:    #####:  922:         if (expr->oper == ast_aggregate) {
    #####:    #####:  923:            _mesa_ast_set_aggregate_type(type->fields.structure[i].type, expr);
        -:        -:  924:         }
        -:        -:  925:      }
        -:        -:  926:   /* If the aggregate is a matrix, set its columns' types. */
    #####:    #####:  927:   } else if (type->is_matrix()) {
    #####:    #####:  928:      for (exec_node *expr_node = ai->expressions.get_head_raw();
    #####:    #####:  929:           !expr_node->is_tail_sentinel();
        -:        -:  930:           expr_node = expr_node->next) {
    #####:    #####:  931:         ast_expression *expr = exec_node_data(ast_expression, expr_node,
        -:        -:  932:                                               link);
        -:        -:  933:
    #####:    #####:  934:         if (expr->oper == ast_aggregate)
    #####:    #####:  935:            _mesa_ast_set_aggregate_type(type->column_type(), expr);
        -:        -:  936:      }
        -:        -:  937:   }
    #####:    #####:  938:}
        -:        -:  939:
        -:        -:  940:void
    #####:    #####:  941:_mesa_ast_process_interface_block(YYLTYPE *locp,
        -:        -:  942:                                  _mesa_glsl_parse_state *state,
        -:        -:  943:                                  ast_interface_block *const block,
        -:        -:  944:                                  const struct ast_type_qualifier &q)
        -:        -:  945:{
    #####:    #####:  946:   if (q.flags.q.buffer) {
    #####:    #####:  947:      if (!state->has_shader_storage_buffer_objects()) {
        -:        -:  948:         _mesa_glsl_error(locp, state,
        -:        -:  949:                          "#version 430 / GL_ARB_shader_storage_buffer_object "
    #####:    #####:  950:                          "required for defining shader storage blocks");
    #####:    #####:  951:      } else if (state->ARB_shader_storage_buffer_object_warn) {
        -:        -:  952:         _mesa_glsl_warning(locp, state,
        -:        -:  953:                            "#version 430 / GL_ARB_shader_storage_buffer_object "
    #####:    #####:  954:                            "required for defining shader storage blocks");
        -:        -:  955:      }
    #####:    #####:  956:   } else if (q.flags.q.uniform) {
    #####:    #####:  957:      if (!state->has_uniform_buffer_objects()) {
        -:        -:  958:         _mesa_glsl_error(locp, state,
        -:        -:  959:                          "#version 140 / GL_ARB_uniform_buffer_object "
    #####:    #####:  960:                          "required for defining uniform blocks");
    #####:    #####:  961:      } else if (state->ARB_uniform_buffer_object_warn) {
        -:        -:  962:         _mesa_glsl_warning(locp, state,
        -:        -:  963:                            "#version 140 / GL_ARB_uniform_buffer_object "
    #####:    #####:  964:                            "required for defining uniform blocks");
        -:        -:  965:      }
        -:        -:  966:   } else {
    #####:    #####:  967:      if (!state->has_shader_io_blocks()) {
    #####:    #####:  968:         if (state->es_shader) {
        -:        -:  969:            _mesa_glsl_error(locp, state,
        -:        -:  970:                             "GL_OES_shader_io_blocks or #version 320 "
    #####:    #####:  971:                             "required for using interface blocks");
        -:        -:  972:         } else {
        -:        -:  973:            _mesa_glsl_error(locp, state,
        -:        -:  974:                             "#version 150 required for using "
    #####:    #####:  975:                             "interface blocks");
        -:        -:  976:         }
        -:        -:  977:      }
        -:        -:  978:   }
        -:        -:  979:
        -:        -:  980:   /* From the GLSL 1.50.11 spec, section 4.3.7 ("Interface Blocks"):
        -:        -:  981:    * "It is illegal to have an input block in a vertex shader
        -:        -:  982:    *  or an output block in a fragment shader"
        -:        -:  983:    */
    #####:    #####:  984:   if ((state->stage == MESA_SHADER_VERTEX) && q.flags.q.in) {
        -:        -:  985:      _mesa_glsl_error(locp, state,
        -:        -:  986:                       "`in' interface block is not allowed for "
    #####:    #####:  987:                       "a vertex shader");
    #####:    #####:  988:   } else if ((state->stage == MESA_SHADER_FRAGMENT) && q.flags.q.out) {
        -:        -:  989:      _mesa_glsl_error(locp, state,
        -:        -:  990:                       "`out' interface block is not allowed for "
    #####:    #####:  991:                       "a fragment shader");
        -:        -:  992:   }
        -:        -:  993:
        -:        -:  994:   /* Since block arrays require names, and both features are added in
        -:        -:  995:    * the same language versions, we don't have to explicitly
        -:        -:  996:    * version-check both things.
        -:        -:  997:    */
    #####:    #####:  998:   if (block->instance_name != NULL) {
        -:        -:  999:      state->check_version(150, 300, locp, "interface blocks with "
    #####:    #####: 1000:                           "an instance name are not allowed");
        -:        -: 1001:   }
        -:        -: 1002:
        -:        -: 1003:   uint64_t interface_type_mask;
        -:        -: 1004:   struct ast_type_qualifier temp_type_qualifier;
        -:        -: 1005:
        -:        -: 1006:   /* Get a bitmask containing only the in/out/uniform/buffer
        -:        -: 1007:    * flags, allowing us to ignore other irrelevant flags like
        -:        -: 1008:    * interpolation qualifiers.
        -:        -: 1009:    */
    #####:    #####: 1010:   temp_type_qualifier.flags.i = 0;
    #####:    #####: 1011:   temp_type_qualifier.flags.q.uniform = true;
    #####:    #####: 1012:   temp_type_qualifier.flags.q.in = true;
    #####:    #####: 1013:   temp_type_qualifier.flags.q.out = true;
    #####:    #####: 1014:   temp_type_qualifier.flags.q.buffer = true;
    #####:    #####: 1015:   temp_type_qualifier.flags.q.patch = true;
    #####:    #####: 1016:   interface_type_mask = temp_type_qualifier.flags.i;
        -:        -: 1017:
        -:        -: 1018:   /* Get the block's interface qualifier.  The interface_qualifier
        -:        -: 1019:    * production rule guarantees that only one bit will be set (and
        -:        -: 1020:    * it will be in/out/uniform).
        -:        -: 1021:    */
    #####:    #####: 1022:   uint64_t block_interface_qualifier = q.flags.i;
        -:        -: 1023:
    #####:    #####: 1024:   block->default_layout.flags.i |= block_interface_qualifier;
        -:        -: 1025:
    #####:    #####: 1026:   if (state->stage == MESA_SHADER_GEOMETRY &&
    #####:    #####: 1027:       state->has_explicit_attrib_stream() &&
        -:        -: 1028:       block->default_layout.flags.q.out) {
        -:        -: 1029:      /* Assign global layout's stream value. */
    #####:    #####: 1030:      block->default_layout.flags.q.stream = 1;
    #####:    #####: 1031:      block->default_layout.flags.q.explicit_stream = 0;
    #####:    #####: 1032:      block->default_layout.stream = state->out_qualifier->stream;
        -:        -: 1033:   }
        -:        -: 1034:
    #####:    #####: 1035:   if (state->has_enhanced_layouts() && block->default_layout.flags.q.out) {
        -:        -: 1036:      /* Assign global layout's xfb_buffer value. */
    #####:    #####: 1037:      block->default_layout.flags.q.xfb_buffer = 1;
    #####:    #####: 1038:      block->default_layout.flags.q.explicit_xfb_buffer = 0;
    #####:    #####: 1039:      block->default_layout.xfb_buffer = state->out_qualifier->xfb_buffer;
        -:        -: 1040:   }
        -:        -: 1041:
    #####:    #####: 1042:   foreach_list_typed (ast_declarator_list, member, link, &block->declarations) {
    #####:    #####: 1043:      ast_type_qualifier& qualifier = member->type->qualifier;
    #####:    #####: 1044:      if ((qualifier.flags.i & interface_type_mask) == 0) {
        -:        -: 1045:         /* GLSLangSpec.1.50.11, 4.3.7 (Interface Blocks):
        -:        -: 1046:          * "If no optional qualifier is used in a member declaration, the
        -:        -: 1047:          *  qualifier of the variable is just in, out, or uniform as declared
        -:        -: 1048:          *  by interface-qualifier."
        -:        -: 1049:          */
    #####:    #####: 1050:         qualifier.flags.i |= block_interface_qualifier;
    #####:    #####: 1051:      } else if ((qualifier.flags.i & interface_type_mask) !=
        -:        -: 1052:                 block_interface_qualifier) {
        -:        -: 1053:         /* GLSLangSpec.1.50.11, 4.3.7 (Interface Blocks):
        -:        -: 1054:          * "If optional qualifiers are used, they can include interpolation
        -:        -: 1055:          *  and storage qualifiers and they must declare an input, output,
        -:        -: 1056:          *  or uniform variable consistent with the interface qualifier of
        -:        -: 1057:          *  the block."
        -:        -: 1058:          */
        -:        -: 1059:         _mesa_glsl_error(locp, state,
        -:        -: 1060:                          "uniform/in/out qualifier on "
        -:        -: 1061:                          "interface block member does not match "
    #####:    #####: 1062:                          "the interface block");
        -:        -: 1063:      }
        -:        -: 1064:
    #####:    #####: 1065:      if (!(q.flags.q.in || q.flags.q.out) && qualifier.flags.q.invariant)
        -:        -: 1066:         _mesa_glsl_error(locp, state,
        -:        -: 1067:                          "invariant qualifiers can be used only "
        -:        -: 1068:                          "in interface block members for shader "
    #####:    #####: 1069:                          "inputs or outputs");
        -:        -: 1070:   }
    #####:    #####: 1071:}
        -:        -: 1072:
        -:        -: 1073:void
    #####:    #####: 1074:_mesa_ast_type_qualifier_print(const struct ast_type_qualifier *q)
        -:        -: 1075:{
    #####:    #####: 1076:   if (q->is_subroutine_decl())
    #####:    #####: 1077:      printf("subroutine ");
        -:        -: 1078:
    #####:    #####: 1079:   if (q->subroutine_list) {
    #####:    #####: 1080:      printf("subroutine (");
    #####:    #####: 1081:      q->subroutine_list->print();
    #####:    #####: 1082:      printf(")");
        -:        -: 1083:   }
        -:        -: 1084:
    #####:    #####: 1085:   if (q->flags.q.constant)
    #####:    #####: 1086:      printf("const ");
        -:        -: 1087:
    #####:    #####: 1088:   if (q->flags.q.invariant)
    #####:    #####: 1089:      printf("invariant ");
        -:        -: 1090:
    #####:    #####: 1091:   if (q->flags.q.attribute)
    #####:    #####: 1092:      printf("attribute ");
        -:        -: 1093:
    #####:    #####: 1094:   if (q->flags.q.varying)
    #####:    #####: 1095:      printf("varying ");
        -:        -: 1096:
    #####:    #####: 1097:   if (q->flags.q.in && q->flags.q.out)
    #####:    #####: 1098:      printf("inout ");
        -:        -: 1099:   else {
    #####:    #####: 1100:      if (q->flags.q.in)
    #####:    #####: 1101:	 printf("in ");
        -:        -: 1102:
    #####:    #####: 1103:      if (q->flags.q.out)
    #####:    #####: 1104:	 printf("out ");
        -:        -: 1105:   }
        -:        -: 1106:
    #####:    #####: 1107:   if (q->flags.q.centroid)
    #####:    #####: 1108:      printf("centroid ");
    #####:    #####: 1109:   if (q->flags.q.sample)
    #####:    #####: 1110:      printf("sample ");
    #####:    #####: 1111:   if (q->flags.q.patch)
    #####:    #####: 1112:      printf("patch ");
    #####:    #####: 1113:   if (q->flags.q.uniform)
    #####:    #####: 1114:      printf("uniform ");
    #####:    #####: 1115:   if (q->flags.q.buffer)
    #####:    #####: 1116:      printf("buffer ");
    #####:    #####: 1117:   if (q->flags.q.smooth)
    #####:    #####: 1118:      printf("smooth ");
    #####:    #####: 1119:   if (q->flags.q.flat)
    #####:    #####: 1120:      printf("flat ");
    #####:    #####: 1121:   if (q->flags.q.noperspective)
    #####:    #####: 1122:      printf("noperspective ");
    #####:    #####: 1123:}
        -:        -: 1124:
        -:        -: 1125:
        -:        -: 1126:void
    #####:    #####: 1127:ast_node::print(void) const
        -:        -: 1128:{
    #####:    #####: 1129:   printf("unhandled node ");
    #####:    #####: 1130:}
        -:        -: 1131:
        -:        -: 1132:
      221:      227: 1133:ast_node::ast_node(void)
        -:        -: 1134:{
      221:      227: 1135:   this->location.source = 0;
      221:      227: 1136:   this->location.first_line = 0;
      221:      227: 1137:   this->location.first_column = 0;
      221:      227: 1138:   this->location.last_line = 0;
      221:      227: 1139:   this->location.last_column = 0;
      221:      227: 1140:}
        -:        -: 1141:
        -:        -: 1142:
        -:        -: 1143:static void
    #####:    #####: 1144:ast_opt_array_dimensions_print(const ast_array_specifier *array_specifier)
        -:        -: 1145:{
    #####:    #####: 1146:   if (array_specifier)
    #####:    #####: 1147:      array_specifier->print();
    #####:    #####: 1148:}
        -:        -: 1149:
        -:        -: 1150:
        -:        -: 1151:void
    #####:    #####: 1152:ast_compound_statement::print(void) const
        -:        -: 1153:{
    #####:    #####: 1154:   printf("{\n");
        -:        -: 1155:
    #####:    #####: 1156:   foreach_list_typed(ast_node, ast, link, &this->statements) {
    #####:    #####: 1157:      ast->print();
        -:        -: 1158:   }
        -:        -: 1159:
    #####:    #####: 1160:   printf("}\n");
    #####:    #####: 1161:}
        -:        -: 1162:
        -:        -: 1163:
        8:        9: 1164:ast_compound_statement::ast_compound_statement(int new_scope,
        8:        9: 1165:					       ast_node *statements)
        -:        -: 1166:{
        8:        9: 1167:   this->new_scope = new_scope;
        -:        -: 1168:
        8:        9: 1169:   if (statements != NULL) {
        8:        9: 1170:      this->statements.push_degenerate_list_at_head(&statements->link);
        -:        -: 1171:   }
        8:        9: 1172:}
        -:        -: 1173:
        -:        -: 1174:
        -:        -: 1175:void
    #####:    #####: 1176:ast_expression::print(void) const
        -:        -: 1177:{
    #####:    #####: 1178:   switch (oper) {
        -:        -: 1179:   case ast_assign:
        -:        -: 1180:   case ast_mul_assign:
        -:        -: 1181:   case ast_div_assign:
        -:        -: 1182:   case ast_mod_assign:
        -:        -: 1183:   case ast_add_assign:
        -:        -: 1184:   case ast_sub_assign:
        -:        -: 1185:   case ast_ls_assign:
        -:        -: 1186:   case ast_rs_assign:
        -:        -: 1187:   case ast_and_assign:
        -:        -: 1188:   case ast_xor_assign:
        -:        -: 1189:   case ast_or_assign:
    #####:    #####: 1190:      subexpressions[0]->print();
    #####:    #####: 1191:      printf("%s ", operator_string(oper));
    #####:    #####: 1192:      subexpressions[1]->print();
    #####:    #####: 1193:      break;
        -:        -: 1194:
        -:        -: 1195:   case ast_field_selection:
    #####:    #####: 1196:      subexpressions[0]->print();
    #####:    #####: 1197:      printf(". %s ", primary_expression.identifier);
    #####:    #####: 1198:      break;
        -:        -: 1199:
        -:        -: 1200:   case ast_plus:
        -:        -: 1201:   case ast_neg:
        -:        -: 1202:   case ast_bit_not:
        -:        -: 1203:   case ast_logic_not:
        -:        -: 1204:   case ast_pre_inc:
        -:        -: 1205:   case ast_pre_dec:
    #####:    #####: 1206:      printf("%s ", operator_string(oper));
    #####:    #####: 1207:      subexpressions[0]->print();
    #####:    #####: 1208:      break;
        -:        -: 1209:
        -:        -: 1210:   case ast_post_inc:
        -:        -: 1211:   case ast_post_dec:
    #####:    #####: 1212:      subexpressions[0]->print();
    #####:    #####: 1213:      printf("%s ", operator_string(oper));
    #####:    #####: 1214:      break;
        -:        -: 1215:
        -:        -: 1216:   case ast_conditional:
    #####:    #####: 1217:      subexpressions[0]->print();
    #####:    #####: 1218:      printf("? ");
    #####:    #####: 1219:      subexpressions[1]->print();
    #####:    #####: 1220:      printf(": ");
    #####:    #####: 1221:      subexpressions[2]->print();
    #####:    #####: 1222:      break;
        -:        -: 1223:
        -:        -: 1224:   case ast_array_index:
    #####:    #####: 1225:      subexpressions[0]->print();
    #####:    #####: 1226:      printf("[ ");
    #####:    #####: 1227:      subexpressions[1]->print();
    #####:    #####: 1228:      printf("] ");
    #####:    #####: 1229:      break;
        -:        -: 1230:
        -:        -: 1231:   case ast_function_call: {
    #####:    #####: 1232:      subexpressions[0]->print();
    #####:    #####: 1233:      printf("( ");
        -:        -: 1234:
    #####:    #####: 1235:      foreach_list_typed (ast_node, ast, link, &this->expressions) {
    #####:    #####: 1236:	 if (&ast->link != this->expressions.get_head())
    #####:    #####: 1237:	    printf(", ");
        -:        -: 1238:
    #####:    #####: 1239:	 ast->print();
        -:        -: 1240:      }
        -:        -: 1241:
    #####:    #####: 1242:      printf(") ");
    #####:    #####: 1243:      break;
        -:        -: 1244:   }
        -:        -: 1245:
        -:        -: 1246:   case ast_identifier:
    #####:    #####: 1247:      printf("%s ", primary_expression.identifier);
    #####:    #####: 1248:      break;
        -:        -: 1249:
        -:        -: 1250:   case ast_int_constant:
    #####:    #####: 1251:      printf("%d ", primary_expression.int_constant);
    #####:    #####: 1252:      break;
        -:        -: 1253:
        -:        -: 1254:   case ast_uint_constant:
    #####:    #####: 1255:      printf("%u ", primary_expression.uint_constant);
    #####:    #####: 1256:      break;
        -:        -: 1257:
        -:        -: 1258:   case ast_float_constant:
    #####:    #####: 1259:      printf("%f ", primary_expression.float_constant);
    #####:    #####: 1260:      break;
        -:        -: 1261:
        -:        -: 1262:   case ast_double_constant:
    #####:    #####: 1263:      printf("%f ", primary_expression.double_constant);
    #####:    #####: 1264:      break;
        -:        -: 1265:
        -:        -: 1266:   case ast_int64_constant:
    #####:    #####: 1267:      printf("%" PRId64 " ", primary_expression.int64_constant);
    #####:    #####: 1268:      break;
        -:        -: 1269:
        -:        -: 1270:   case ast_uint64_constant:
    #####:    #####: 1271:      printf("%" PRIu64 " ", primary_expression.uint64_constant);
    #####:    #####: 1272:      break;
        -:        -: 1273:
        -:        -: 1274:   case ast_bool_constant:
    #####:    #####: 1275:      printf("%s ",
    #####:    #####: 1276:	     primary_expression.bool_constant
    #####:    #####: 1277:	     ? "true" : "false");
    #####:    #####: 1278:      break;
        -:        -: 1279:
        -:        -: 1280:   case ast_sequence: {
    #####:    #####: 1281:      printf("( ");
    #####:    #####: 1282:      foreach_list_typed (ast_node, ast, link, & this->expressions) {
    #####:    #####: 1283:	 if (&ast->link != this->expressions.get_head())
    #####:    #####: 1284:	    printf(", ");
        -:        -: 1285:
    #####:    #####: 1286:	 ast->print();
        -:        -: 1287:      }
    #####:    #####: 1288:      printf(") ");
    #####:    #####: 1289:      break;
        -:        -: 1290:   }
        -:        -: 1291:
        -:        -: 1292:   case ast_aggregate: {
    #####:    #####: 1293:      printf("{ ");
    #####:    #####: 1294:      foreach_list_typed (ast_node, ast, link, & this->expressions) {
    #####:    #####: 1295:	 if (&ast->link != this->expressions.get_head())
    #####:    #####: 1296:	    printf(", ");
        -:        -: 1297:
    #####:    #####: 1298:	 ast->print();
        -:        -: 1299:      }
    #####:    #####: 1300:      printf("} ");
    #####:    #####: 1301:      break;
        -:        -: 1302:   }
        -:        -: 1303:
        -:        -: 1304:   default:
    #####:    #####: 1305:      assert(0);
        -:        -: 1306:      break;
        -:        -: 1307:   }
    #####:    #####: 1308:}
        -:        -: 1309:
      138:      142: 1310:ast_expression::ast_expression(int oper,
        -:        -: 1311:			       ast_expression *ex0,
        -:        -: 1312:			       ast_expression *ex1,
        -:        -: 1313:			       ast_expression *ex2) :
      138:      142: 1314:   primary_expression()
        -:        -: 1315:{
      138:      142: 1316:   this->oper = ast_operators(oper);
      138:      142: 1317:   this->subexpressions[0] = ex0;
      138:      142: 1318:   this->subexpressions[1] = ex1;
      138:      142: 1319:   this->subexpressions[2] = ex2;
      138:      142: 1320:   this->non_lvalue_description = NULL;
      138:      142: 1321:   this->is_lhs = false;
      138:      142: 1322:}
        -:        -: 1323:
        -:        -: 1324:
        -:        -: 1325:void
    #####:    #####: 1326:ast_expression_statement::print(void) const
        -:        -: 1327:{
    #####:    #####: 1328:   if (expression)
    #####:    #####: 1329:      expression->print();
        -:        -: 1330:
    #####:    #####: 1331:   printf("; ");
    #####:    #####: 1332:}
        -:        -: 1333:
        -:        -: 1334:
       10:       10: 1335:ast_expression_statement::ast_expression_statement(ast_expression *ex) :
       10:       10: 1336:   expression(ex)
        -:        -: 1337:{
        -:        -: 1338:   /* empty */
       10:       10: 1339:}
        -:        -: 1340:
        -:        -: 1341:
        -:        -: 1342:void
    #####:    #####: 1343:ast_function::print(void) const
        -:        -: 1344:{
    #####:    #####: 1345:   return_type->print();
    #####:    #####: 1346:   printf(" %s (", identifier);
        -:        -: 1347:
    #####:    #####: 1348:   foreach_list_typed(ast_node, ast, link, & this->parameters) {
    #####:    #####: 1349:      ast->print();
        -:        -: 1350:   }
        -:        -: 1351:
    #####:    #####: 1352:   printf(")");
    #####:    #####: 1353:}
        -:        -: 1354:
        -:        -: 1355:
        3:        3: 1356:ast_function::ast_function(void)
        -:        -: 1357:   : return_type(NULL), identifier(NULL), is_definition(false),
        3:        3: 1358:     signature(NULL)
        -:        -: 1359:{
        -:        -: 1360:   /* empty */
        3:        3: 1361:}
        -:        -: 1362:
        -:        -: 1363:
        -:        -: 1364:void
    #####:    #####: 1365:ast_fully_specified_type::print(void) const
        -:        -: 1366:{
    #####:    #####: 1367:   _mesa_ast_type_qualifier_print(& qualifier);
    #####:    #####: 1368:   specifier->print();
    #####:    #####: 1369:}
        -:        -: 1370:
        -:        -: 1371:
        -:        -: 1372:void
    #####:    #####: 1373:ast_parameter_declarator::print(void) const
        -:        -: 1374:{
    #####:    #####: 1375:   type->print();
    #####:    #####: 1376:   if (identifier)
    #####:    #####: 1377:      printf("%s ", identifier);
    #####:    #####: 1378:   ast_opt_array_dimensions_print(array_specifier);
    #####:    #####: 1379:}
        -:        -: 1380:
        -:        -: 1381:
        -:        -: 1382:void
    #####:    #####: 1383:ast_function_definition::print(void) const
        -:        -: 1384:{
    #####:    #####: 1385:   prototype->print();
    #####:    #####: 1386:   body->print();
    #####:    #####: 1387:}
        -:        -: 1388:
        -:        -: 1389:
        -:        -: 1390:void
    #####:    #####: 1391:ast_declaration::print(void) const
        -:        -: 1392:{
    #####:    #####: 1393:   printf("%s ", identifier);
    #####:    #####: 1394:   ast_opt_array_dimensions_print(array_specifier);
        -:        -: 1395:
    #####:    #####: 1396:   if (initializer) {
    #####:    #####: 1397:      printf("= ");
    #####:    #####: 1398:      initializer->print();
        -:        -: 1399:   }
    #####:    #####: 1400:}
        -:        -: 1401:
        -:        -: 1402:
        8:        8: 1403:ast_declaration::ast_declaration(const char *identifier,
        -:        -: 1404:				 ast_array_specifier *array_specifier,
        8:        8: 1405:				 ast_expression *initializer)
        -:        -: 1406:{
        8:        8: 1407:   this->identifier = identifier;
        8:        8: 1408:   this->array_specifier = array_specifier;
        8:        8: 1409:   this->initializer = initializer;
        8:        8: 1410:}
        -:        -: 1411:
        -:        -: 1412:
        -:        -: 1413:void
    #####:    #####: 1414:ast_declarator_list::print(void) const
        -:        -: 1415:{
    #####:    #####: 1416:   assert(type || invariant);
        -:        -: 1417:
    #####:    #####: 1418:   if (type)
    #####:    #####: 1419:      type->print();
    #####:    #####: 1420:   else if (invariant)
    #####:    #####: 1421:      printf("invariant ");
        -:        -: 1422:   else
    #####:    #####: 1423:      printf("precise ");
        -:        -: 1424:
    #####:    #####: 1425:   foreach_list_typed (ast_node, ast, link, & this->declarations) {
    #####:    #####: 1426:      if (&ast->link != this->declarations.get_head())
    #####:    #####: 1427:	 printf(", ");
        -:        -: 1428:
    #####:    #####: 1429:      ast->print();
        -:        -: 1430:   }
        -:        -: 1431:
    #####:    #####: 1432:   printf("; ");
    #####:    #####: 1433:}
        -:        -: 1434:
        -:        -: 1435:
        8:        8: 1436:ast_declarator_list::ast_declarator_list(ast_fully_specified_type *type)
        -:        -: 1437:{
        8:        8: 1438:   this->type = type;
        8:        8: 1439:   this->invariant = false;
        8:        8: 1440:   this->precise = false;
        8:        8: 1441:}
        -:        -: 1442:
        -:        -: 1443:void
    #####:    #####: 1444:ast_jump_statement::print(void) const
        -:        -: 1445:{
    #####:    #####: 1446:   switch (mode) {
        -:        -: 1447:   case ast_continue:
    #####:    #####: 1448:      printf("continue; ");
    #####:    #####: 1449:      break;
        -:        -: 1450:   case ast_break:
    #####:    #####: 1451:      printf("break; ");
    #####:    #####: 1452:      break;
        -:        -: 1453:   case ast_return:
    #####:    #####: 1454:      printf("return ");
    #####:    #####: 1455:      if (opt_return_value)
    #####:    #####: 1456:	 opt_return_value->print();
        -:        -: 1457:
    #####:    #####: 1458:      printf("; ");
    #####:    #####: 1459:      break;
        -:        -: 1460:   case ast_discard:
    #####:    #####: 1461:      printf("discard; ");
    #####:    #####: 1462:      break;
        -:        -: 1463:   }
    #####:    #####: 1464:}
        -:        -: 1465:
        -:        -: 1466:
        2:        2: 1467:ast_jump_statement::ast_jump_statement(int mode, ast_expression *return_value)
        2:        2: 1468:   : opt_return_value(NULL)
        -:        -: 1469:{
        2:        2: 1470:   this->mode = ast_jump_modes(mode);
        -:        -: 1471:
        2:        2: 1472:   if (mode == ast_return)
        2:        2: 1473:      opt_return_value = return_value;
        2:        2: 1474:}
        -:        -: 1475:
        -:        -: 1476:
        -:        -: 1477:void
    #####:    #####: 1478:ast_selection_statement::print(void) const
        -:        -: 1479:{
    #####:    #####: 1480:   printf("if ( ");
    #####:    #####: 1481:   condition->print();
    #####:    #####: 1482:   printf(") ");
        -:        -: 1483:
    #####:    #####: 1484:   then_statement->print();
        -:        -: 1485:
    #####:    #####: 1486:   if (else_statement) {
    #####:    #####: 1487:      printf("else ");
    #####:    #####: 1488:      else_statement->print();
        -:        -: 1489:   }
    #####:    #####: 1490:}
        -:        -: 1491:
        -:        -: 1492:
        3:        3: 1493:ast_selection_statement::ast_selection_statement(ast_expression *condition,
        -:        -: 1494:						 ast_node *then_statement,
        3:        3: 1495:						 ast_node *else_statement)
        -:        -: 1496:{
        3:        3: 1497:   this->condition = condition;
        3:        3: 1498:   this->then_statement = then_statement;
        3:        3: 1499:   this->else_statement = else_statement;
        3:        3: 1500:}
        -:        -: 1501:
        -:        -: 1502:
        -:        -: 1503:void
    #####:    #####: 1504:ast_switch_statement::print(void) const
        -:        -: 1505:{
    #####:    #####: 1506:   printf("switch ( ");
    #####:    #####: 1507:   test_expression->print();
    #####:    #####: 1508:   printf(") ");
        -:        -: 1509:
    #####:    #####: 1510:   body->print();
    #####:    #####: 1511:}
        -:        -: 1512:
        -:        -: 1513:
    #####:    #####: 1514:ast_switch_statement::ast_switch_statement(ast_expression *test_expression,
    #####:    #####: 1515:					   ast_node *body)
        -:        -: 1516:{
    #####:    #####: 1517:   this->test_expression = test_expression;
    #####:    #####: 1518:   this->body = body;
    #####:    #####: 1519:}
        -:        -: 1520:
        -:        -: 1521:
        -:        -: 1522:void
    #####:    #####: 1523:ast_switch_body::print(void) const
        -:        -: 1524:{
    #####:    #####: 1525:   printf("{\n");
    #####:    #####: 1526:   if (stmts != NULL) {
    #####:    #####: 1527:      stmts->print();
        -:        -: 1528:   }
    #####:    #####: 1529:   printf("}\n");
    #####:    #####: 1530:}
        -:        -: 1531:
        -:        -: 1532:
    #####:    #####: 1533:ast_switch_body::ast_switch_body(ast_case_statement_list *stmts)
        -:        -: 1534:{
    #####:    #####: 1535:   this->stmts = stmts;
    #####:    #####: 1536:}
        -:        -: 1537:
        -:        -: 1538:
    #####:    #####: 1539:void ast_case_label::print(void) const
        -:        -: 1540:{
    #####:    #####: 1541:   if (test_value != NULL) {
    #####:    #####: 1542:      printf("case ");
    #####:    #####: 1543:      test_value->print();
    #####:    #####: 1544:      printf(": ");
        -:        -: 1545:   } else {
    #####:    #####: 1546:      printf("default: ");
        -:        -: 1547:   }
    #####:    #####: 1548:}
        -:        -: 1549:
        -:        -: 1550:
    #####:    #####: 1551:ast_case_label::ast_case_label(ast_expression *test_value)
        -:        -: 1552:{
    #####:    #####: 1553:   this->test_value = test_value;
    #####:    #####: 1554:}
        -:        -: 1555:
        -:        -: 1556:
    #####:    #####: 1557:void ast_case_label_list::print(void) const
        -:        -: 1558:{
    #####:    #####: 1559:   foreach_list_typed(ast_node, ast, link, & this->labels) {
    #####:    #####: 1560:      ast->print();
        -:        -: 1561:   }
    #####:    #####: 1562:   printf("\n");
    #####:    #####: 1563:}
        -:        -: 1564:
        -:        -: 1565:
    #####:    #####: 1566:ast_case_label_list::ast_case_label_list(void)
        -:        -: 1567:{
    #####:    #####: 1568:}
        -:        -: 1569:
        -:        -: 1570:
    #####:    #####: 1571:void ast_case_statement::print(void) const
        -:        -: 1572:{
    #####:    #####: 1573:   labels->print();
    #####:    #####: 1574:   foreach_list_typed(ast_node, ast, link, & this->stmts) {
    #####:    #####: 1575:      ast->print();
    #####:    #####: 1576:      printf("\n");
        -:        -: 1577:   }
    #####:    #####: 1578:}
        -:        -: 1579:
        -:        -: 1580:
    #####:    #####: 1581:ast_case_statement::ast_case_statement(ast_case_label_list *labels)
        -:        -: 1582:{
    #####:    #####: 1583:   this->labels = labels;
    #####:    #####: 1584:}
        -:        -: 1585:
        -:        -: 1586:
    #####:    #####: 1587:void ast_case_statement_list::print(void) const
        -:        -: 1588:{
    #####:    #####: 1589:   foreach_list_typed(ast_node, ast, link, & this->cases) {
    #####:    #####: 1590:      ast->print();
        -:        -: 1591:   }
    #####:    #####: 1592:}
        -:        -: 1593:
        -:        -: 1594:
    #####:    #####: 1595:ast_case_statement_list::ast_case_statement_list(void)
        -:        -: 1596:{
    #####:    #####: 1597:}
        -:        -: 1598:
        -:        -: 1599:
        -:        -: 1600:void
    #####:    #####: 1601:ast_iteration_statement::print(void) const
        -:        -: 1602:{
    #####:    #####: 1603:   switch (mode) {
        -:        -: 1604:   case ast_for:
    #####:    #####: 1605:      printf("for( ");
    #####:    #####: 1606:      if (init_statement)
    #####:    #####: 1607:	 init_statement->print();
    #####:    #####: 1608:      printf("; ");
        -:        -: 1609:
    #####:    #####: 1610:      if (condition)
    #####:    #####: 1611:	 condition->print();
    #####:    #####: 1612:      printf("; ");
        -:        -: 1613:
    #####:    #####: 1614:      if (rest_expression)
    #####:    #####: 1615:	 rest_expression->print();
    #####:    #####: 1616:      printf(") ");
        -:        -: 1617:
    #####:    #####: 1618:      body->print();
    #####:    #####: 1619:      break;
        -:        -: 1620:
        -:        -: 1621:   case ast_while:
    #####:    #####: 1622:      printf("while ( ");
    #####:    #####: 1623:      if (condition)
    #####:    #####: 1624:	 condition->print();
    #####:    #####: 1625:      printf(") ");
    #####:    #####: 1626:      body->print();
    #####:    #####: 1627:      break;
        -:        -: 1628:
        -:        -: 1629:   case ast_do_while:
    #####:    #####: 1630:      printf("do ");
    #####:    #####: 1631:      body->print();
    #####:    #####: 1632:      printf("while ( ");
    #####:    #####: 1633:      if (condition)
    #####:    #####: 1634:	 condition->print();
    #####:    #####: 1635:      printf("); ");
    #####:    #####: 1636:      break;
        -:        -: 1637:   }
    #####:    #####: 1638:}
        -:        -: 1639:
        -:        -: 1640:
        2:        3: 1641:ast_iteration_statement::ast_iteration_statement(int mode,
        -:        -: 1642:						 ast_node *init,
        -:        -: 1643:						 ast_node *condition,
        -:        -: 1644:						 ast_expression *rest_expression,
        2:        3: 1645:						 ast_node *body)
        -:        -: 1646:{
        2:        3: 1647:   this->mode = ast_iteration_modes(mode);
        2:        3: 1648:   this->init_statement = init;
        2:        3: 1649:   this->condition = condition;
        2:        3: 1650:   this->rest_expression = rest_expression;
        2:        3: 1651:   this->body = body;
        2:        3: 1652:}
        -:        -: 1653:
        -:        -: 1654:
        -:        -: 1655:void
    #####:    #####: 1656:ast_struct_specifier::print(void) const
        -:        -: 1657:{
    #####:    #####: 1658:   printf("struct %s { ", name);
    #####:    #####: 1659:   foreach_list_typed(ast_node, ast, link, &this->declarations) {
    #####:    #####: 1660:      ast->print();
        -:        -: 1661:   }
    #####:    #####: 1662:   printf("} ");
    #####:    #####: 1663:}
        -:        -: 1664:
        -:        -: 1665:
    #####:    #####: 1666:ast_struct_specifier::ast_struct_specifier(void *lin_ctx, const char *identifier,
    #####:    #####: 1667:					   ast_declarator_list *declarator_list)
        -:        -: 1668:{
    #####:    #####: 1669:   if (identifier == NULL) {
        -:        -: 1670:      static mtx_t mutex = _MTX_INITIALIZER_NP;
        -:        -: 1671:      static unsigned anon_count = 1;
        -:        -: 1672:      unsigned count;
        -:        -: 1673:
    #####:    #####: 1674:      mtx_lock(&mutex);
    #####:    #####: 1675:      count = anon_count++;
    #####:    #####: 1676:      mtx_unlock(&mutex);
        -:        -: 1677:
    #####:    #####: 1678:      identifier = linear_asprintf(lin_ctx, "#anon_struct_%04x", count);
        -:        -: 1679:   }
    #####:    #####: 1680:   name = identifier;
    #####:    #####: 1681:   this->declarations.push_degenerate_list_at_head(&declarator_list->link);
    #####:    #####: 1682:   is_declaration = true;
    #####:    #####: 1683:   layout = NULL;
    #####:    #####: 1684:}
        -:        -: 1685:
    #####:    #####: 1686:void ast_subroutine_list::print(void) const
        -:        -: 1687:{
    #####:    #####: 1688:   foreach_list_typed (ast_node, ast, link, & this->declarations) {
    #####:    #####: 1689:      if (&ast->link != this->declarations.get_head())
    #####:    #####: 1690:         printf(", ");
    #####:    #####: 1691:      ast->print();
        -:        -: 1692:   }
    #####:    #####: 1693:}
        -:        -: 1694:
        -:        -: 1695:static void
        2:        2: 1696:set_shader_inout_layout(struct gl_shader *shader,
        -:        -: 1697:		     struct _mesa_glsl_parse_state *state)
        -:        -: 1698:{
        -:        -: 1699:   /* Should have been prevented by the parser. */
        4:        4: 1700:   if (shader->Stage == MESA_SHADER_TESS_CTRL ||
        2:        2: 1701:       shader->Stage == MESA_SHADER_VERTEX) {
        1:        1: 1702:      assert(!state->in_qualifier->flags.i);
        2:        2: 1703:   } else if (shader->Stage != MESA_SHADER_GEOMETRY &&
        1:        1: 1704:              shader->Stage != MESA_SHADER_TESS_EVAL) {
        1:        1: 1705:      assert(!state->in_qualifier->flags.i);
        -:        -: 1706:   }
        -:        -: 1707:
        2:        2: 1708:   if (shader->Stage != MESA_SHADER_COMPUTE) {
        -:        -: 1709:      /* Should have been prevented by the parser. */
        2:        2: 1710:      assert(!state->cs_input_local_size_specified);
        2:        2: 1711:      assert(!state->cs_input_local_size_variable_specified);
        -:        -: 1712:   }
        -:        -: 1713:
        2:        2: 1714:   if (shader->Stage != MESA_SHADER_FRAGMENT) {
        -:        -: 1715:      /* Should have been prevented by the parser. */
        1:        1: 1716:      assert(!state->fs_uses_gl_fragcoord);
        1:        1: 1717:      assert(!state->fs_redeclares_gl_fragcoord);
        1:        1: 1718:      assert(!state->fs_pixel_center_integer);
        1:        1: 1719:      assert(!state->fs_origin_upper_left);
        1:        1: 1720:      assert(!state->fs_early_fragment_tests);
        1:        1: 1721:      assert(!state->fs_inner_coverage);
        1:        1: 1722:      assert(!state->fs_post_depth_coverage);
        -:        -: 1723:   }
        -:        -: 1724:
       10:       10: 1725:   for (unsigned i = 0; i < MAX_FEEDBACK_BUFFERS; i++) {
        8:        8: 1726:      if (state->out_qualifier->out_xfb_stride[i]) {
        -:        -: 1727:         unsigned xfb_stride;
    #####:    #####: 1728:         if (state->out_qualifier->out_xfb_stride[i]->
        -:        -: 1729:                process_qualifier_constant(state, "xfb_stride", &xfb_stride,
        -:        -: 1730:                true)) {
    #####:    #####: 1731:            shader->TransformFeedbackBufferStride[i] = xfb_stride;
        -:        -: 1732:         }
        -:        -: 1733:      }
        -:        -: 1734:   }
        -:        -: 1735:
        2:        2: 1736:   switch (shader->Stage) {
        -:        -: 1737:   case MESA_SHADER_TESS_CTRL:
    #####:    #####: 1738:      shader->info.TessCtrl.VerticesOut = 0;
    #####:    #####: 1739:      if (state->tcs_output_vertices_specified) {
        -:        -: 1740:         unsigned vertices;
    #####:    #####: 1741:         if (state->out_qualifier->vertices->
        -:        -: 1742:               process_qualifier_constant(state, "vertices", &vertices,
        -:        -: 1743:                                          false)) {
        -:        -: 1744:
    #####:    #####: 1745:            YYLTYPE loc = state->out_qualifier->vertices->get_location();
    #####:    #####: 1746:            if (vertices > state->Const.MaxPatchVertices) {
        -:        -: 1747:               _mesa_glsl_error(&loc, state, "vertices (%d) exceeds "
    #####:    #####: 1748:                                "GL_MAX_PATCH_VERTICES", vertices);
        -:        -: 1749:            }
    #####:    #####: 1750:            shader->info.TessCtrl.VerticesOut = vertices;
        -:        -: 1751:         }
        -:        -: 1752:      }
    #####:    #####: 1753:      break;
        -:        -: 1754:   case MESA_SHADER_TESS_EVAL:
    #####:    #####: 1755:      shader->info.TessEval.PrimitiveMode = PRIM_UNKNOWN;
    #####:    #####: 1756:      if (state->in_qualifier->flags.q.prim_type)
    #####:    #####: 1757:         shader->info.TessEval.PrimitiveMode = state->in_qualifier->prim_type;
        -:        -: 1758:
    #####:    #####: 1759:      shader->info.TessEval.Spacing = TESS_SPACING_UNSPECIFIED;
    #####:    #####: 1760:      if (state->in_qualifier->flags.q.vertex_spacing)
    #####:    #####: 1761:         shader->info.TessEval.Spacing = state->in_qualifier->vertex_spacing;
        -:        -: 1762:
    #####:    #####: 1763:      shader->info.TessEval.VertexOrder = 0;
    #####:    #####: 1764:      if (state->in_qualifier->flags.q.ordering)
    #####:    #####: 1765:         shader->info.TessEval.VertexOrder = state->in_qualifier->ordering;
        -:        -: 1766:
    #####:    #####: 1767:      shader->info.TessEval.PointMode = -1;
    #####:    #####: 1768:      if (state->in_qualifier->flags.q.point_mode)
    #####:    #####: 1769:         shader->info.TessEval.PointMode = state->in_qualifier->point_mode;
    #####:    #####: 1770:      break;
        -:        -: 1771:   case MESA_SHADER_GEOMETRY:
    #####:    #####: 1772:      shader->info.Geom.VerticesOut = -1;
    #####:    #####: 1773:      if (state->out_qualifier->flags.q.max_vertices) {
        -:        -: 1774:         unsigned qual_max_vertices;
    #####:    #####: 1775:         if (state->out_qualifier->max_vertices->
        -:        -: 1776:               process_qualifier_constant(state, "max_vertices",
        -:        -: 1777:                                          &qual_max_vertices, true)) {
        -:        -: 1778:
    #####:    #####: 1779:            if (qual_max_vertices > state->Const.MaxGeometryOutputVertices) {
    #####:    #####: 1780:               YYLTYPE loc = state->out_qualifier->max_vertices->get_location();
        -:        -: 1781:               _mesa_glsl_error(&loc, state,
        -:        -: 1782:                                "maximum output vertices (%d) exceeds "
        -:        -: 1783:                                "GL_MAX_GEOMETRY_OUTPUT_VERTICES",
    #####:    #####: 1784:                                qual_max_vertices);
        -:        -: 1785:            }
    #####:    #####: 1786:            shader->info.Geom.VerticesOut = qual_max_vertices;
        -:        -: 1787:         }
        -:        -: 1788:      }
        -:        -: 1789:
    #####:    #####: 1790:      if (state->gs_input_prim_type_specified) {
    #####:    #####: 1791:         shader->info.Geom.InputType = state->in_qualifier->prim_type;
        -:        -: 1792:      } else {
    #####:    #####: 1793:         shader->info.Geom.InputType = PRIM_UNKNOWN;
        -:        -: 1794:      }
        -:        -: 1795:
    #####:    #####: 1796:      if (state->out_qualifier->flags.q.prim_type) {
    #####:    #####: 1797:         shader->info.Geom.OutputType = state->out_qualifier->prim_type;
        -:        -: 1798:      } else {
    #####:    #####: 1799:         shader->info.Geom.OutputType = PRIM_UNKNOWN;
        -:        -: 1800:      }
        -:        -: 1801:
    #####:    #####: 1802:      shader->info.Geom.Invocations = 0;
    #####:    #####: 1803:      if (state->in_qualifier->flags.q.invocations) {
        -:        -: 1804:         unsigned invocations;
    #####:    #####: 1805:         if (state->in_qualifier->invocations->
        -:        -: 1806:               process_qualifier_constant(state, "invocations",
        -:        -: 1807:                                          &invocations, false)) {
        -:        -: 1808:
    #####:    #####: 1809:            YYLTYPE loc = state->in_qualifier->invocations->get_location();
    #####:    #####: 1810:            if (invocations > MAX_GEOMETRY_SHADER_INVOCATIONS) {
        -:        -: 1811:               _mesa_glsl_error(&loc, state,
        -:        -: 1812:                                "invocations (%d) exceeds "
        -:        -: 1813:                                "GL_MAX_GEOMETRY_SHADER_INVOCATIONS",
    #####:    #####: 1814:                                invocations);
        -:        -: 1815:            }
    #####:    #####: 1816:            shader->info.Geom.Invocations = invocations;
        -:        -: 1817:         }
        -:        -: 1818:      }
    #####:    #####: 1819:      break;
        -:        -: 1820:
        -:        -: 1821:   case MESA_SHADER_COMPUTE:
    #####:    #####: 1822:      if (state->cs_input_local_size_specified) {
    #####:    #####: 1823:         for (int i = 0; i < 3; i++)
    #####:    #####: 1824:            shader->info.Comp.LocalSize[i] = state->cs_input_local_size[i];
        -:        -: 1825:      } else {
    #####:    #####: 1826:         for (int i = 0; i < 3; i++)
    #####:    #####: 1827:            shader->info.Comp.LocalSize[i] = 0;
        -:        -: 1828:      }
        -:        -: 1829:
        -:        -: 1830:      shader->info.Comp.LocalSizeVariable =
    #####:    #####: 1831:         state->cs_input_local_size_variable_specified;
    #####:    #####: 1832:      break;
        -:        -: 1833:
        -:        -: 1834:   case MESA_SHADER_FRAGMENT:
        1:        1: 1835:      shader->redeclares_gl_fragcoord = state->fs_redeclares_gl_fragcoord;
        1:        1: 1836:      shader->uses_gl_fragcoord = state->fs_uses_gl_fragcoord;
        1:        1: 1837:      shader->pixel_center_integer = state->fs_pixel_center_integer;
        1:        1: 1838:      shader->origin_upper_left = state->fs_origin_upper_left;
        -:        -: 1839:      shader->ARB_fragment_coord_conventions_enable =
        1:        1: 1840:         state->ARB_fragment_coord_conventions_enable;
        1:        1: 1841:      shader->EarlyFragmentTests = state->fs_early_fragment_tests;
        1:        1: 1842:      shader->InnerCoverage = state->fs_inner_coverage;
        1:        1: 1843:      shader->PostDepthCoverage = state->fs_post_depth_coverage;
        1:        1: 1844:      shader->BlendSupport = state->fs_blend_support;
        1:        1: 1845:      break;
        -:        -: 1846:
        -:        -: 1847:   default:
        -:        -: 1848:      /* Nothing to do. */
        1:        1: 1849:      break;
        -:        -: 1850:   }
        2:        2: 1851:}
        -:        -: 1852:
        -:        -: 1853:extern "C" {
        -:        -: 1854:
        -:        -: 1855:static void
        2:        2: 1856:assign_subroutine_indexes(struct gl_shader *sh,
        -:        -: 1857:			  struct _mesa_glsl_parse_state *state)
        -:        -: 1858:{
        -:        -: 1859:   int j, k;
        2:        2: 1860:   int index = 0;
        -:        -: 1861:
        2:        2: 1862:   for (j = 0; j < state->num_subroutines; j++) {
    #####:    #####: 1863:      while (state->subroutines[j]->subroutine_index == -1) {
    #####:    #####: 1864:         for (k = 0; k < state->num_subroutines; k++) {
    #####:    #####: 1865:            if (state->subroutines[k]->subroutine_index == index)
    #####:    #####: 1866:               break;
    #####:    #####: 1867:            else if (k == state->num_subroutines - 1) {
    #####:    #####: 1868:               state->subroutines[j]->subroutine_index = index;
        -:        -: 1869:            }
        -:        -: 1870:         }
    #####:    #####: 1871:         index++;
        -:        -: 1872:      }
        -:        -: 1873:   }
        2:        2: 1874:}
        -:        -: 1875:
        -:        -: 1876:static void
        2:        2: 1877:add_builtin_defines(struct _mesa_glsl_parse_state *state,
        -:        -: 1878:                    void (*add_builtin_define)(struct glcpp_parser *, const char *, int),
        -:        -: 1879:                    struct glcpp_parser *data,
        -:        -: 1880:                    unsigned version,
        -:        -: 1881:                    bool es)
        -:        -: 1882:{
        2:        2: 1883:   unsigned gl_version = state->ctx->Extensions.Version;
        2:        2: 1884:   gl_api api = state->ctx->API;
        -:        -: 1885:
        2:        2: 1886:   if (gl_version != 0xff) {
        -:        -: 1887:      unsigned i;
        6:        6: 1888:      for (i = 0; i < state->num_supported_versions; i++) {
        8:        8: 1889:         if (state->supported_versions[i].ver == version &&
        2:        2: 1890:             state->supported_versions[i].es == es) {
        2:        2: 1891:            gl_version = state->supported_versions[i].gl_ver;
        2:        2: 1892:            break;
        -:        -: 1893:         }
        -:        -: 1894:      }
        -:        -: 1895:
        2:        2: 1896:      if (i == state->num_supported_versions)
    #####:    #####: 1897:         return;
        -:        -: 1898:   }
        -:        -: 1899:
        2:        2: 1900:   if (es)
    #####:    #####: 1901:      api = API_OPENGLES2;
        -:        -: 1902:
      190:      190: 1903:   for (unsigned i = 0;
      190:      190: 1904:        i < ARRAY_SIZE(_mesa_glsl_supported_extensions); ++i) {
        -:        -: 1905:      const _mesa_glsl_extension *extension
      188:      188: 1906:         = &_mesa_glsl_supported_extensions[i];
      188:      188: 1907:      if (extension->compatible_with_state(state, api, gl_version)) {
       52:       52: 1908:         add_builtin_define(data, extension->name, 1);
        -:        -: 1909:      }
        -:        -: 1910:   }
        -:        -: 1911:}
        -:        -: 1912:
        -:        -: 1913:/* Implements parsing checks that we can't do during parsing */
        -:        -: 1914:static void
        2:        2: 1915:do_late_parsing_checks(struct _mesa_glsl_parse_state *state)
        -:        -: 1916:{
        2:        2: 1917:   if (state->stage == MESA_SHADER_COMPUTE && !state->has_compute_shader()) {
        -:        -: 1918:      YYLTYPE loc;
    #####:    #####: 1919:      memset(&loc, 0, sizeof(loc));
        -:        -: 1920:      _mesa_glsl_error(&loc, state, "Compute shaders require "
    #####:    #####: 1921:                       "GLSL 4.30 or GLSL ES 3.10");
        -:        -: 1922:   }
        2:        2: 1923:}
        -:        -: 1924:
        -:        -: 1925:static void
        2:        2: 1926:opt_shader_and_create_symbol_table(struct gl_context *ctx,
        -:        -: 1927:                                   struct gl_shader *shader)
        -:        -: 1928:{
        4:        4: 1929:   assert(shader->CompileStatus != compile_failure &&
        2:        2: 1930:          !shader->ir->is_empty());
        -:        -: 1931:
        -:        -: 1932:   struct gl_shader_compiler_options *options =
        2:        2: 1933:      &ctx->Const.ShaderCompilerOptions[shader->Stage];
        -:        -: 1934:
        -:        -: 1935:   /* Do some optimization at compile time to reduce shader IR size
        -:        -: 1936:    * and reduce later work if the same shader is linked multiple times
        -:        -: 1937:    */
        2:        2: 1938:   if (ctx->Const.GLSLOptimizeConservatively) {
        -:        -: 1939:      /* Run it just once. */
    #####:    #####: 1940:      do_common_optimization(shader->ir, false, false, options,
    #####:    #####: 1941:                             ctx->Const.NativeIntegers);
        -:        -: 1942:   } else {
        -:        -: 1943:      /* Repeat it until it stops making changes. */
        5:        5: 1944:      while (do_common_optimization(shader->ir, false, false, options,
        5:        5: 1945:                                    ctx->Const.NativeIntegers))
        -:        -: 1946:         ;
        -:        -: 1947:   }
        -:        -: 1948:
        2:        2: 1949:   validate_ir_tree(shader->ir);
        -:        -: 1950:
        -:        -: 1951:   enum ir_variable_mode other;
        2:        2: 1952:   switch (shader->Stage) {
        -:        -: 1953:   case MESA_SHADER_VERTEX:
        1:        1: 1954:      other = ir_var_shader_in;
        1:        1: 1955:      break;
        -:        -: 1956:   case MESA_SHADER_FRAGMENT:
        1:        1: 1957:      other = ir_var_shader_out;
        1:        1: 1958:      break;
        -:        -: 1959:   default:
        -:        -: 1960:      /* Something invalid to ensure optimize_dead_builtin_uniforms
        -:        -: 1961:       * doesn't remove anything other than uniforms or constants.
        -:        -: 1962:       */
    #####:    #####: 1963:      other = ir_var_mode_count;
    #####:    #####: 1964:      break;
        -:        -: 1965:   }
        -:        -: 1966:
        2:        2: 1967:   optimize_dead_builtin_variables(shader->ir, other);
        -:        -: 1968:
        2:        2: 1969:   validate_ir_tree(shader->ir);
        -:        -: 1970:
        -:        -: 1971:   /* Retain any live IR, but trash the rest. */
        2:        2: 1972:   reparent_ir(shader->ir, shader->ir);
        -:        -: 1973:
        -:        -: 1974:   /* Destroy the symbol table.  Create a new symbol table that contains only
        -:        -: 1975:    * the variables and functions that still exist in the IR.  The symbol
        -:        -: 1976:    * table will be used later during linking.
        -:        -: 1977:    *
        -:        -: 1978:    * There must NOT be any freed objects still referenced by the symbol
        -:        -: 1979:    * table.  That could cause the linker to dereference freed memory.
        -:        -: 1980:    *
        -:        -: 1981:    * We don't have to worry about types or interface-types here because those
        -:        -: 1982:    * are fly-weights that are looked up by glsl_type.
        -:        -: 1983:    */
       46:       46: 1984:   foreach_in_list (ir_instruction, ir, shader->ir) {
       44:       44: 1985:      switch (ir->ir_type) {
        -:        -: 1986:      case ir_type_function:
        3:        3: 1987:         shader->symbols->add_function((ir_function *) ir);
        3:        3: 1988:         break;
        -:        -: 1989:      case ir_type_variable: {
       41:       41: 1990:         ir_variable *const var = (ir_variable *) ir;
        -:        -: 1991:
       41:       41: 1992:         if (var->data.mode != ir_var_temporary)
       41:       41: 1993:            shader->symbols->add_variable(var);
       41:       41: 1994:         break;
        -:        -: 1995:      }
        -:        -: 1996:      default:
    #####:    #####: 1997:         break;
        -:        -: 1998:      }
        -:        -: 1999:   }
        -:        -: 2000:
        2:        2: 2001:   _mesa_glsl_initialize_derived_variables(ctx, shader);
        2:        2: 2002:}
        -:        -: 2003:
        -:        -: 2004:void
        2:        2: 2005:_mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
        -:        -: 2006:                          bool dump_ast, bool dump_hir, bool force_recompile)
        -:        -: 2007:{
    #####:    #####: 2008:   const char *source = force_recompile && shader->FallbackSource ?
        2:        2: 2009:      shader->FallbackSource : shader->Source;
        -:        -: 2010:
        2:        2: 2011:   if (!force_recompile) {
        2:        2: 2012:      if (ctx->Cache) {
        -:        -: 2013:         char buf[41];
    #####:    #####: 2014:         disk_cache_compute_key(ctx->Cache, source, strlen(source),
    #####:    #####: 2015:                                shader->sha1);
    #####:    #####: 2016:         if (disk_cache_has_key(ctx->Cache, shader->sha1)) {
        -:        -: 2017:            /* We've seen this shader before and know it compiles */
    #####:    #####: 2018:            if (ctx->_Shader->Flags & GLSL_CACHE_INFO) {
    #####:    #####: 2019:               _mesa_sha1_format(buf, shader->sha1);
    #####:    #####: 2020:               fprintf(stderr, "deferring compile of shader: %s\n", buf);
        -:        -: 2021:            }
    #####:    #####: 2022:            shader->CompileStatus = compile_skipped;
        -:        -: 2023:
    #####:    #####: 2024:            free((void *)shader->FallbackSource);
    #####:    #####: 2025:            shader->FallbackSource = NULL;
    #####:    #####: 2026:            return;
        -:        -: 2027:         }
        -:        -: 2028:      }
        -:        -: 2029:   } else {
        -:        -: 2030:      /* We should only ever end up here if a re-compile has been forced by a
        -:        -: 2031:       * shader cache miss. In which case we can skip the compile if its
        -:        -: 2032:       * already be done by a previous fallback or the initial compile call.
        -:        -: 2033:       */
    #####:    #####: 2034:      if (shader->CompileStatus == compile_success)
    #####:    #####: 2035:         return;
        -:        -: 2036:
    #####:    #####: 2037:      if (shader->CompileStatus == compiled_no_opts) {
    #####:    #####: 2038:         opt_shader_and_create_symbol_table(ctx, shader);
    #####:    #####: 2039:         shader->CompileStatus = compile_success;
    #####:    #####: 2040:         return;
        -:        -: 2041:      }
        -:        -: 2042:   }
        -:        -: 2043:
        -:        -: 2044:   struct _mesa_glsl_parse_state *state =
        2:        2: 2045:      new(shader) _mesa_glsl_parse_state(ctx, shader->Stage, shader);
        -:        -: 2046:
        2:        2: 2047:   if (ctx->Const.GenerateTemporaryNames)
        2:        2: 2048:      (void) p_atomic_cmpxchg(&ir_variable::temporaries_allocate_names,
        -:        -: 2049:                              false, true);
        -:        -: 2050:
        2:        2: 2051:   state->error = glcpp_preprocess(state, &source, &state->info_log,
        2:        2: 2052:                                   add_builtin_defines, state, ctx);
        -:        -: 2053:
        2:        2: 2054:   if (!state->error) {
        2:        2: 2055:     _mesa_glsl_lexer_ctor(state, source);
        2:        2: 2056:     _mesa_glsl_parse(state);
        2:        2: 2057:     _mesa_glsl_lexer_dtor(state);
        2:        2: 2058:     do_late_parsing_checks(state);
        -:        -: 2059:   }
        -:        -: 2060:
        2:        2: 2061:   if (dump_ast) {
    #####:    #####: 2062:      foreach_list_typed(ast_node, ast, link, &state->translation_unit) {
    #####:    #####: 2063:         ast->print();
        -:        -: 2064:      }
    #####:    #####: 2065:      printf("\n\n");
        -:        -: 2066:   }
        -:        -: 2067:
        2:        2: 2068:   ralloc_free(shader->ir);
        2:        2: 2069:   shader->ir = new(shader) exec_list;
        2:        2: 2070:   if (!state->error && !state->translation_unit.is_empty())
        2:        2: 2071:      _mesa_ast_to_hir(shader->ir, state);
        -:        -: 2072:
        2:        2: 2073:   if (!state->error) {
        2:        2: 2074:      validate_ir_tree(shader->ir);
        -:        -: 2075:
        -:        -: 2076:      /* Print out the unoptimized IR. */
        2:        2: 2077:      if (dump_hir) {
    #####:    #####: 2078:         _mesa_print_ir(stdout, shader->ir, state);
        -:        -: 2079:      }
        -:        -: 2080:   }
        -:        -: 2081:
        2:        2: 2082:   if (shader->InfoLog)
    #####:    #####: 2083:      ralloc_free(shader->InfoLog);
        -:        -: 2084:
        2:        2: 2085:   if (!state->error)
        2:        2: 2086:      set_shader_inout_layout(shader, state);
        -:        -: 2087:
        2:        2: 2088:   shader->symbols = new(shader->ir) glsl_symbol_table;
        2:        2: 2089:   shader->CompileStatus = state->error ? compile_failure : compile_success;
        2:        2: 2090:   shader->InfoLog = state->info_log;
        2:        2: 2091:   shader->Version = state->language_version;
        2:        2: 2092:   shader->IsES = state->es_shader;
        -:        -: 2093:
        2:        2: 2094:   if (!state->error && !shader->ir->is_empty()) {
        2:        2: 2095:      assign_subroutine_indexes(shader, state);
        2:        2: 2096:      lower_subroutine(shader->ir, state);
        -:        -: 2097:
        2:        2: 2098:      if (!ctx->Cache || force_recompile)
        2:        2: 2099:         opt_shader_and_create_symbol_table(ctx, shader);
        -:        -: 2100:      else {
    #####:    #####: 2101:         reparent_ir(shader->ir, shader->ir);
    #####:    #####: 2102:         shader->CompileStatus = compiled_no_opts;
        -:        -: 2103:      }
        -:        -: 2104:   }
        -:        -: 2105:
        2:        2: 2106:   if (!force_recompile) {
        2:        2: 2107:      free((void *)shader->FallbackSource);
        2:        2: 2108:      shader->FallbackSource = NULL;
        -:        -: 2109:   }
        -:        -: 2110:
        2:        2: 2111:   delete state->symbols;
        2:        2: 2112:   ralloc_free(state);
        -:        -: 2113:}
        -:        -: 2114:
        -:        -: 2115:} /* extern "C" */
        -:        -: 2116:/**
        -:        -: 2117: * Do the set of common optimizations passes
        -:        -: 2118: *
        -:        -: 2119: * \param ir                          List of instructions to be optimized
        -:        -: 2120: * \param linked                      Is the shader linked?  This enables
        -:        -: 2121: *                                    optimizations passes that remove code at
        -:        -: 2122: *                                    global scope and could cause linking to
        -:        -: 2123: *                                    fail.
        -:        -: 2124: * \param uniform_locations_assigned  Have locations already been assigned for
        -:        -: 2125: *                                    uniforms?  This prevents the declarations
        -:        -: 2126: *                                    of unused uniforms from being removed.
        -:        -: 2127: *                                    The setting of this flag only matters if
        -:        -: 2128: *                                    \c linked is \c true.
        -:        -: 2129: * \param options                     The driver's preferred shader options.
        -:        -: 2130: * \param native_integers             Selects optimizations that depend on the
        -:        -: 2131: *                                    implementations supporting integers
        -:        -: 2132: *                                    natively (as opposed to supporting
        -:        -: 2133: *                                    integers in floating point registers).
        -:        -: 2134: */
        -:        -: 2135:bool
       18:       18: 2136:do_common_optimization(exec_list *ir, bool linked,
        -:        -: 2137:		       bool uniform_locations_assigned,
        -:        -: 2138:                       const struct gl_shader_compiler_options *options,
        -:        -: 2139:                       bool native_integers)
        -:        -: 2140:{
       18:       18: 2141:   const bool debug = false;
       18:       18: 2142:   GLboolean progress = GL_FALSE;
        -:        -: 2143:
        -:        -: 2144:#define OPT(PASS, ...) do {                                             \
        -:        -: 2145:      if (debug) {                                                      \
        -:        -: 2146:         fprintf(stderr, "START GLSL optimization %s\n", #PASS);        \
        -:        -: 2147:         const bool opt_progress = PASS(__VA_ARGS__);                   \
        -:        -: 2148:         progress = opt_progress || progress;                           \
        -:        -: 2149:         if (opt_progress)                                              \
        -:        -: 2150:            _mesa_print_ir(stderr, ir, NULL);                           \
        -:        -: 2151:         fprintf(stderr, "GLSL optimization %s: %s progress\n",         \
        -:        -: 2152:                 #PASS, opt_progress ? "made" : "no");                  \
        -:        -: 2153:      } else {                                                          \
        -:        -: 2154:         progress = PASS(__VA_ARGS__) || progress;                      \
        -:        -: 2155:      }                                                                 \
        -:        -: 2156:   } while (false)
        -:        -: 2157:
       18:       18: 2158:   OPT(lower_instructions, ir, SUB_TO_ADD_NEG);
        -:        -: 2159:
       18:       18: 2160:   if (linked) {
       12:       12: 2161:      OPT(do_function_inlining, ir);
       12:       12: 2162:      OPT(do_dead_functions, ir);
       12:       12: 2163:      OPT(do_structure_splitting, ir);
        -:        -: 2164:   }
       18:       18: 2165:   propagate_invariance(ir);
       18:       18: 2166:   OPT(do_if_simplification, ir);
       18:       18: 2167:   OPT(opt_flatten_nested_if_blocks, ir);
       18:       18: 2168:   OPT(opt_conditional_discard, ir);
       18:       18: 2169:   OPT(do_copy_propagation, ir);
       18:       18: 2170:   OPT(do_copy_propagation_elements, ir);
        -:        -: 2171:
       18:       18: 2172:   if (options->OptimizeForAOS && !linked)
        2:        2: 2173:      OPT(opt_flip_matrices, ir);
        -:        -: 2174:
       18:       18: 2175:   if (linked && options->OptimizeForAOS) {
        3:        3: 2176:      OPT(do_vectorize, ir);
        -:        -: 2177:   }
        -:        -: 2178:
       18:       18: 2179:   if (linked)
       12:       12: 2180:      OPT(do_dead_code, ir, uniform_locations_assigned);
        -:        -: 2181:   else
        6:        6: 2182:      OPT(do_dead_code_unlinked, ir);
       18:       18: 2183:   OPT(do_dead_code_local, ir);
       18:       18: 2184:   OPT(do_tree_grafting, ir);
       18:       18: 2185:   OPT(do_constant_propagation, ir);
       18:       18: 2186:   if (linked)
       12:       12: 2187:      OPT(do_constant_variable, ir);
        -:        -: 2188:   else
        6:        6: 2189:      OPT(do_constant_variable_unlinked, ir);
       18:       18: 2190:   OPT(do_constant_folding, ir);
       18:       18: 2191:   OPT(do_minmax_prune, ir);
       18:       18: 2192:   OPT(do_rebalance_tree, ir);
       18:       18: 2193:   OPT(do_algebraic, ir, native_integers, options);
       18:       18: 2194:   OPT(do_lower_jumps, ir, true, true, options->EmitNoMainReturn,
        -:        -: 2195:       options->EmitNoCont, options->EmitNoLoops);
       18:       18: 2196:   OPT(do_vec_index_to_swizzle, ir);
       18:       18: 2197:   OPT(lower_vector_insert, ir, false);
       18:       18: 2198:   OPT(do_swizzle_swizzle, ir);
       18:       18: 2199:   OPT(do_noop_swizzle, ir);
        -:        -: 2200:
       18:       18: 2201:   OPT(optimize_split_arrays, ir, linked);
       18:       18: 2202:   OPT(optimize_redundant_jumps, ir);
        -:        -: 2203:
       18:       18: 2204:   if (options->MaxUnrollIterations) {
    #####:    #####: 2205:      loop_state *ls = analyze_loop_variables(ir);
    #####:    #####: 2206:      if (ls->loop_found) {
    #####:    #####: 2207:         OPT(set_loop_controls, ir, ls);
    #####:    #####: 2208:         OPT(unroll_loops, ir, ls, options);
        -:        -: 2209:      }
    #####:    #####: 2210:      delete ls;
        -:        -: 2211:   }
        -:        -: 2212:
        -:        -: 2213:#undef OPT
        -:        -: 2214:
       18:       18: 2215:   return progress;
        -:        -: 2216:}
        -:        -: 2217:
        -:        -: 2218:extern "C" {
        -:        -: 2219:
        -:        -: 2220:/**
        -:        -: 2221: * To be called at GL teardown time, this frees compiler datastructures.
        -:        -: 2222: *
        -:        -: 2223: * After calling this, any previously compiled shaders and shader
        -:        -: 2224: * programs would be invalid.  So this should happen at approximately
        -:        -: 2225: * program exit.
        -:        -: 2226: */
        -:        -: 2227:void
        1:        1: 2228:_mesa_destroy_shader_compiler(void)
        -:        -: 2229:{
        1:        1: 2230:   _mesa_destroy_shader_compiler_caches();
        -:        -: 2231:
        1:        1: 2232:   _mesa_glsl_release_types();
        1:        1: 2233:}
        -:        -: 2234:
        -:        -: 2235:/**
        -:        -: 2236: * Releases compiler caches to trade off performance for memory.
        -:        -: 2237: *
        -:        -: 2238: * Intended to be used with glReleaseShaderCompiler().
        -:        -: 2239: */
        -:        -: 2240:void
        1:        1: 2241:_mesa_destroy_shader_compiler_caches(void)
        -:        -: 2242:{
        1:        1: 2243:   _mesa_glsl_release_builtin_functions();
        1:        1: 2244:}
        -:        -: 2245:
        -:        -: 2246:}

src/compiler/glsl_parser.yy.gcov

        -:        -:    0:Source:glsl/glsl_parser.yy
        -:        -:    0:Graph:glsl/.libs/glsl_parser.gcno
        -:        -:    0:Data:glsl/.libs/glsl_parser.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:%{
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2008, 2009 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:#include <stdio.h>
        -:        -:   25:#include <stdlib.h>
        -:        -:   26:#include <string.h>
        -:        -:   27:#ifndef _MSC_VER
        -:        -:   28:#include <strings.h>
        -:        -:   29:#endif
        -:        -:   30:#include <assert.h>
        -:        -:   31:
        -:        -:   32:#include "ast.h"
        -:        -:   33:#include "glsl_parser_extras.h"
        -:        -:   34:#include "compiler/glsl_types.h"
        -:        -:   35:#include "main/context.h"
        -:        -:   36:
        -:        -:   37:#ifdef _MSC_VER
        -:        -:   38:#pragma warning( disable : 4065 ) // switch statement contains 'default' but no 'case' labels
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:#undef yyerror
        -:        -:   42:
    #####:    #####:   43:static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state *st, const char *msg)
        -:        -:   44:{
    #####:    #####:   45:   _mesa_glsl_error(loc, st, "%s", msg);
    #####:    #####:   46:}
        -:        -:   47:
        -:        -:   48:static int
      301:      313:   49:_mesa_glsl_lex(YYSTYPE *val, YYLTYPE *loc, _mesa_glsl_parse_state *state)
        -:        -:   50:{
      301:      313:   51:   return _mesa_glsl_lexer_lex(val, loc, state->scanner);
        -:        -:   52:}
        -:        -:   53:
    #####:    #####:   54:static bool match_layout_qualifier(const char *s1, const char *s2,
        -:        -:   55:                                   _mesa_glsl_parse_state *state)
        -:        -:   56:{
        -:        -:   57:   /* From the GLSL 1.50 spec, section 4.3.8 (Layout Qualifiers):
        -:        -:   58:    *
        -:        -:   59:    *     "The tokens in any layout-qualifier-id-list ... are not case
        -:        -:   60:    *     sensitive, unless explicitly noted otherwise."
        -:        -:   61:    *
        -:        -:   62:    * The text "unless explicitly noted otherwise" appears to be
        -:        -:   63:    * vacuous--no desktop GLSL spec (up through GLSL 4.40) notes
        -:        -:   64:    * otherwise.
        -:        -:   65:    *
        -:        -:   66:    * However, the GLSL ES 3.00 spec says, in section 4.3.8 (Layout
        -:        -:   67:    * Qualifiers):
        -:        -:   68:    *
        -:        -:   69:    *     "As for other identifiers, they are case sensitive."
        -:        -:   70:    *
        -:        -:   71:    * So we need to do a case-sensitive or a case-insensitive match,
        -:        -:   72:    * depending on whether we are compiling for GLSL ES.
        -:        -:   73:    */
    #####:    #####:   74:   if (state->es_shader)
    #####:    #####:   75:      return strcmp(s1, s2);
        -:        -:   76:   else
    #####:    #####:   77:      return strcasecmp(s1, s2);
        -:        -:   78:}
        -:        -:   79:%}
        -:        -:   80:
        -:        -:   81:%expect 0
        -:        -:   82:
        -:        -:   83:%pure-parser
        -:        -:   84:%error-verbose
        -:        -:   85:
        -:        -:   86:%locations
        -:        -:   87:%initial-action {
        2:        2:   88:   @$.first_line = 1;
        2:        2:   89:   @$.first_column = 1;
        2:        2:   90:   @$.last_line = 1;
        2:        2:   91:   @$.last_column = 1;
        2:        2:   92:   @$.source = 0;
        -:        -:   93:}
        -:        -:   94:
        -:        -:   95:%lex-param   {struct _mesa_glsl_parse_state *state}
        -:        -:   96:%parse-param {struct _mesa_glsl_parse_state *state}
        -:        -:   97:
        -:        -:   98:%union {
        -:        -:   99:   int n;
        -:        -:  100:   int64_t n64;
        -:        -:  101:   float real;
        -:        -:  102:   double dreal;
        -:        -:  103:   const char *identifier;
        -:        -:  104:
        -:        -:  105:   struct ast_type_qualifier type_qualifier;
        -:        -:  106:
        -:        -:  107:   ast_node *node;
        -:        -:  108:   ast_type_specifier *type_specifier;
        -:        -:  109:   ast_array_specifier *array_specifier;
        -:        -:  110:   ast_fully_specified_type *fully_specified_type;
        -:        -:  111:   ast_function *function;
        -:        -:  112:   ast_parameter_declarator *parameter_declarator;
        -:        -:  113:   ast_function_definition *function_definition;
        -:        -:  114:   ast_compound_statement *compound_statement;
        -:        -:  115:   ast_expression *expression;
        -:        -:  116:   ast_declarator_list *declarator_list;
        -:        -:  117:   ast_struct_specifier *struct_specifier;
        -:        -:  118:   ast_declaration *declaration;
        -:        -:  119:   ast_switch_body *switch_body;
        -:        -:  120:   ast_case_label *case_label;
        -:        -:  121:   ast_case_label_list *case_label_list;
        -:        -:  122:   ast_case_statement *case_statement;
        -:        -:  123:   ast_case_statement_list *case_statement_list;
        -:        -:  124:   ast_interface_block *interface_block;
        -:        -:  125:   ast_subroutine_list *subroutine_list;
        -:        -:  126:   struct {
        -:        -:  127:      ast_node *cond;
        -:        -:  128:      ast_expression *rest;
        -:        -:  129:   } for_rest_statement;
        -:        -:  130:
        -:        -:  131:   struct {
        -:        -:  132:      ast_node *then_statement;
        -:        -:  133:      ast_node *else_statement;
        -:        -:  134:   } selection_rest_statement;
        -:        -:  135:}
        -:        -:  136:
        -:        -:  137:%token ATTRIBUTE CONST_TOK BOOL_TOK FLOAT_TOK INT_TOK UINT_TOK DOUBLE_TOK
        -:        -:  138:%token BREAK BUFFER CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT
        -:        -:  139:%token BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 UVEC2 UVEC3 UVEC4 VEC2 VEC3 VEC4 DVEC2 DVEC3 DVEC4
        -:        -:  140:%token INT64_TOK UINT64_TOK I64VEC2 I64VEC3 I64VEC4 U64VEC2 U64VEC3 U64VEC4
        -:        -:  141:%token CENTROID IN_TOK OUT_TOK INOUT_TOK UNIFORM VARYING SAMPLE
        -:        -:  142:%token NOPERSPECTIVE FLAT SMOOTH
        -:        -:  143:%token MAT2X2 MAT2X3 MAT2X4
        -:        -:  144:%token MAT3X2 MAT3X3 MAT3X4
        -:        -:  145:%token MAT4X2 MAT4X3 MAT4X4
        -:        -:  146:%token DMAT2X2 DMAT2X3 DMAT2X4
        -:        -:  147:%token DMAT3X2 DMAT3X3 DMAT3X4
        -:        -:  148:%token DMAT4X2 DMAT4X3 DMAT4X4
        -:        -:  149:%token SAMPLER1D SAMPLER2D SAMPLER3D SAMPLERCUBE SAMPLER1DSHADOW SAMPLER2DSHADOW
        -:        -:  150:%token SAMPLERCUBESHADOW SAMPLER1DARRAY SAMPLER2DARRAY SAMPLER1DARRAYSHADOW
        -:        -:  151:%token SAMPLER2DARRAYSHADOW SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
        -:        -:  152:%token ISAMPLER1D ISAMPLER2D ISAMPLER3D ISAMPLERCUBE
        -:        -:  153:%token ISAMPLER1DARRAY ISAMPLER2DARRAY ISAMPLERCUBEARRAY
        -:        -:  154:%token USAMPLER1D USAMPLER2D USAMPLER3D USAMPLERCUBE USAMPLER1DARRAY
        -:        -:  155:%token USAMPLER2DARRAY USAMPLERCUBEARRAY
        -:        -:  156:%token SAMPLER2DRECT ISAMPLER2DRECT USAMPLER2DRECT SAMPLER2DRECTSHADOW
        -:        -:  157:%token SAMPLERBUFFER ISAMPLERBUFFER USAMPLERBUFFER
        -:        -:  158:%token SAMPLER2DMS ISAMPLER2DMS USAMPLER2DMS
        -:        -:  159:%token SAMPLER2DMSARRAY ISAMPLER2DMSARRAY USAMPLER2DMSARRAY
        -:        -:  160:%token SAMPLEREXTERNALOES
        -:        -:  161:%token IMAGE1D IMAGE2D IMAGE3D IMAGE2DRECT IMAGECUBE IMAGEBUFFER
        -:        -:  162:%token IMAGE1DARRAY IMAGE2DARRAY IMAGECUBEARRAY IMAGE2DMS IMAGE2DMSARRAY
        -:        -:  163:%token IIMAGE1D IIMAGE2D IIMAGE3D IIMAGE2DRECT IIMAGECUBE IIMAGEBUFFER
        -:        -:  164:%token IIMAGE1DARRAY IIMAGE2DARRAY IIMAGECUBEARRAY IIMAGE2DMS IIMAGE2DMSARRAY
        -:        -:  165:%token UIMAGE1D UIMAGE2D UIMAGE3D UIMAGE2DRECT UIMAGECUBE UIMAGEBUFFER
        -:        -:  166:%token UIMAGE1DARRAY UIMAGE2DARRAY UIMAGECUBEARRAY UIMAGE2DMS UIMAGE2DMSARRAY
        -:        -:  167:%token IMAGE1DSHADOW IMAGE2DSHADOW IMAGE1DARRAYSHADOW IMAGE2DARRAYSHADOW
        -:        -:  168:%token COHERENT VOLATILE RESTRICT READONLY WRITEONLY
        -:        -:  169:%token ATOMIC_UINT
        -:        -:  170:%token SHARED
        -:        -:  171:%token STRUCT VOID_TOK WHILE
        -:        -:  172:%token <identifier> IDENTIFIER TYPE_IDENTIFIER NEW_IDENTIFIER
        -:        -:  173:%type <identifier> any_identifier
        -:        -:  174:%type <interface_block> instance_name_opt
        -:        -:  175:%token <real> FLOATCONSTANT
        -:        -:  176:%token <dreal> DOUBLECONSTANT
        -:        -:  177:%token <n> INTCONSTANT UINTCONSTANT BOOLCONSTANT
        -:        -:  178:%token <n64> INT64CONSTANT UINT64CONSTANT
        -:        -:  179:%token <identifier> FIELD_SELECTION
        -:        -:  180:%token LEFT_OP RIGHT_OP
        -:        -:  181:%token INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP
        -:        -:  182:%token AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN
        -:        -:  183:%token MOD_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN
        -:        -:  184:%token SUB_ASSIGN
        -:        -:  185:%token INVARIANT PRECISE
        -:        -:  186:%token LOWP MEDIUMP HIGHP SUPERP PRECISION
        -:        -:  187:
        -:        -:  188:%token VERSION_TOK EXTENSION LINE COLON EOL INTERFACE OUTPUT
        -:        -:  189:%token PRAGMA_DEBUG_ON PRAGMA_DEBUG_OFF
        -:        -:  190:%token PRAGMA_OPTIMIZE_ON PRAGMA_OPTIMIZE_OFF
        -:        -:  191:%token PRAGMA_INVARIANT_ALL
        -:        -:  192:%token LAYOUT_TOK
        -:        -:  193:%token DOT_TOK
        -:        -:  194:   /* Reserved words that are not actually used in the grammar.
        -:        -:  195:    */
        -:        -:  196:%token ASM CLASS UNION ENUM TYPEDEF TEMPLATE THIS PACKED_TOK GOTO
        -:        -:  197:%token INLINE_TOK NOINLINE PUBLIC_TOK STATIC EXTERN EXTERNAL
        -:        -:  198:%token LONG_TOK SHORT_TOK HALF FIXED_TOK UNSIGNED INPUT_TOK
        -:        -:  199:%token HVEC2 HVEC3 HVEC4 FVEC2 FVEC3 FVEC4
        -:        -:  200:%token SAMPLER3DRECT
        -:        -:  201:%token SIZEOF CAST NAMESPACE USING
        -:        -:  202:%token RESOURCE PATCH
        -:        -:  203:%token SUBROUTINE
        -:        -:  204:
        -:        -:  205:%token ERROR_TOK
        -:        -:  206:
        -:        -:  207:%token COMMON PARTITION ACTIVE FILTER ROW_MAJOR
        -:        -:  208:
        -:        -:  209:%type <identifier> variable_identifier
        -:        -:  210:%type <node> statement
        -:        -:  211:%type <node> statement_list
        -:        -:  212:%type <node> simple_statement
        -:        -:  213:%type <n> precision_qualifier
        -:        -:  214:%type <type_qualifier> type_qualifier
        -:        -:  215:%type <type_qualifier> auxiliary_storage_qualifier
        -:        -:  216:%type <type_qualifier> storage_qualifier
        -:        -:  217:%type <type_qualifier> interpolation_qualifier
        -:        -:  218:%type <type_qualifier> layout_qualifier
        -:        -:  219:%type <type_qualifier> layout_qualifier_id_list layout_qualifier_id
        -:        -:  220:%type <type_qualifier> interface_block_layout_qualifier
        -:        -:  221:%type <type_qualifier> memory_qualifier
        -:        -:  222:%type <type_qualifier> subroutine_qualifier
        -:        -:  223:%type <subroutine_list> subroutine_type_list
        -:        -:  224:%type <type_qualifier> interface_qualifier
        -:        -:  225:%type <type_specifier> type_specifier
        -:        -:  226:%type <type_specifier> type_specifier_nonarray
        -:        -:  227:%type <array_specifier> array_specifier
        -:        -:  228:%type <identifier> basic_type_specifier_nonarray
        -:        -:  229:%type <fully_specified_type> fully_specified_type
        -:        -:  230:%type <function> function_prototype
        -:        -:  231:%type <function> function_header
        -:        -:  232:%type <function> function_header_with_parameters
        -:        -:  233:%type <function> function_declarator
        -:        -:  234:%type <parameter_declarator> parameter_declarator
        -:        -:  235:%type <parameter_declarator> parameter_declaration
        -:        -:  236:%type <type_qualifier> parameter_qualifier
        -:        -:  237:%type <type_qualifier> parameter_direction_qualifier
        -:        -:  238:%type <type_specifier> parameter_type_specifier
        -:        -:  239:%type <function_definition> function_definition
        -:        -:  240:%type <compound_statement> compound_statement_no_new_scope
        -:        -:  241:%type <compound_statement> compound_statement
        -:        -:  242:%type <node> statement_no_new_scope
        -:        -:  243:%type <node> expression_statement
        -:        -:  244:%type <expression> expression
        -:        -:  245:%type <expression> primary_expression
        -:        -:  246:%type <expression> assignment_expression
        -:        -:  247:%type <expression> conditional_expression
        -:        -:  248:%type <expression> logical_or_expression
        -:        -:  249:%type <expression> logical_xor_expression
        -:        -:  250:%type <expression> logical_and_expression
        -:        -:  251:%type <expression> inclusive_or_expression
        -:        -:  252:%type <expression> exclusive_or_expression
        -:        -:  253:%type <expression> and_expression
        -:        -:  254:%type <expression> equality_expression
        -:        -:  255:%type <expression> relational_expression
        -:        -:  256:%type <expression> shift_expression
        -:        -:  257:%type <expression> additive_expression
        -:        -:  258:%type <expression> multiplicative_expression
        -:        -:  259:%type <expression> unary_expression
        -:        -:  260:%type <expression> constant_expression
        -:        -:  261:%type <expression> integer_expression
        -:        -:  262:%type <expression> postfix_expression
        -:        -:  263:%type <expression> function_call_header_with_parameters
        -:        -:  264:%type <expression> function_call_header_no_parameters
        -:        -:  265:%type <expression> function_call_header
        -:        -:  266:%type <expression> function_call_generic
        -:        -:  267:%type <expression> function_call_or_method
        -:        -:  268:%type <expression> function_call
        -:        -:  269:%type <n> assignment_operator
        -:        -:  270:%type <n> unary_operator
        -:        -:  271:%type <expression> function_identifier
        -:        -:  272:%type <node> external_declaration
        -:        -:  273:%type <declarator_list> init_declarator_list
        -:        -:  274:%type <declarator_list> single_declaration
        -:        -:  275:%type <expression> initializer
        -:        -:  276:%type <expression> initializer_list
        -:        -:  277:%type <node> declaration
        -:        -:  278:%type <node> declaration_statement
        -:        -:  279:%type <node> jump_statement
        -:        -:  280:%type <node> interface_block
        -:        -:  281:%type <interface_block> basic_interface_block
        -:        -:  282:%type <struct_specifier> struct_specifier
        -:        -:  283:%type <declarator_list> struct_declaration_list
        -:        -:  284:%type <declarator_list> struct_declaration
        -:        -:  285:%type <declaration> struct_declarator
        -:        -:  286:%type <declaration> struct_declarator_list
        -:        -:  287:%type <declarator_list> member_list
        -:        -:  288:%type <declarator_list> member_declaration
        -:        -:  289:%type <node> selection_statement
        -:        -:  290:%type <selection_rest_statement> selection_rest_statement
        -:        -:  291:%type <node> switch_statement
        -:        -:  292:%type <switch_body> switch_body
        -:        -:  293:%type <case_label_list> case_label_list
        -:        -:  294:%type <case_label> case_label
        -:        -:  295:%type <case_statement> case_statement
        -:        -:  296:%type <case_statement_list> case_statement_list
        -:        -:  297:%type <node> iteration_statement
        -:        -:  298:%type <node> condition
        -:        -:  299:%type <node> conditionopt
        -:        -:  300:%type <node> for_init_statement
        -:        -:  301:%type <for_rest_statement> for_rest_statement
        -:        -:  302:%type <node> layout_defaults
        -:        -:  303:%type <type_qualifier> layout_uniform_defaults
        -:        -:  304:%type <type_qualifier> layout_buffer_defaults
        -:        -:  305:%type <type_qualifier> layout_in_defaults
        -:        -:  306:%type <type_qualifier> layout_out_defaults
        -:        -:  307:
        -:        -:  308:%right THEN ELSE
        -:        -:  309:%%
        -:        -:  310:
        -:        -:  311:translation_unit:
        -:        -:  312:   version_statement extension_statement_list
        -:        -:  313:   {
        2:        2:  314:      _mesa_glsl_initialize_types(state);
        -:        -:  315:   }
        -:        -:  316:   external_declaration_list
        -:        -:  317:   {
        2:        2:  318:      delete state->symbols;
        2:        2:  319:      state->symbols = new(ralloc_parent(state)) glsl_symbol_table;
        2:        2:  320:      if (state->es_shader) {
    #####:    #####:  321:         if (state->stage == MESA_SHADER_FRAGMENT) {
    #####:    #####:  322:            state->symbols->add_default_precision_qualifier("int", ast_precision_medium);
        -:        -:  323:         } else {
    #####:    #####:  324:            state->symbols->add_default_precision_qualifier("float", ast_precision_high);
    #####:    #####:  325:            state->symbols->add_default_precision_qualifier("int", ast_precision_high);
        -:        -:  326:         }
    #####:    #####:  327:         state->symbols->add_default_precision_qualifier("sampler2D", ast_precision_low);
    #####:    #####:  328:         state->symbols->add_default_precision_qualifier("samplerExternalOES", ast_precision_low);
    #####:    #####:  329:         state->symbols->add_default_precision_qualifier("samplerCube", ast_precision_low);
    #####:    #####:  330:         state->symbols->add_default_precision_qualifier("atomic_uint", ast_precision_high);
        -:        -:  331:      }
        2:        2:  332:      _mesa_glsl_initialize_types(state);
        -:        -:  333:   }
        -:        -:  334:   ;
        -:        -:  335:
        -:        -:  336:version_statement:
        -:        -:  337:   /* blank - no #version specified: defaults are already set */
        -:        -:  338:   | VERSION_TOK INTCONSTANT EOL
        -:        -:  339:   {
        2:        2:  340:      state->process_version_directive(&@2, $2, NULL);
        2:        2:  341:      if (state->error) {
    #####:    #####:  342:         YYERROR;
        -:        -:  343:      }
        -:        -:  344:   }
        -:        -:  345:   | VERSION_TOK INTCONSTANT any_identifier EOL
        -:        -:  346:   {
    #####:    #####:  347:      state->process_version_directive(&@2, $2, $3);
    #####:    #####:  348:      if (state->error) {
    #####:    #####:  349:         YYERROR;
        -:        -:  350:      }
        -:        -:  351:   }
        -:        -:  352:   ;
        -:        -:  353:
        -:        -:  354:pragma_statement:
        -:        -:  355:   PRAGMA_DEBUG_ON EOL
        -:        -:  356:   | PRAGMA_DEBUG_OFF EOL
        -:        -:  357:   | PRAGMA_OPTIMIZE_ON EOL
        -:        -:  358:   | PRAGMA_OPTIMIZE_OFF EOL
        -:        -:  359:   | PRAGMA_INVARIANT_ALL EOL
        -:        -:  360:   {
        -:        -:  361:      /* Pragma invariant(all) cannot be used in a fragment shader.
        -:        -:  362:       *
        -:        -:  363:       * Page 27 of the GLSL 1.20 spec, Page 53 of the GLSL ES 3.00 spec:
        -:        -:  364:       *
        -:        -:  365:       *     "It is an error to use this pragma in a fragment shader."
        -:        -:  366:       */
    #####:    #####:  367:      if (state->is_version(120, 300) &&
    #####:    #####:  368:          state->stage == MESA_SHADER_FRAGMENT) {
    #####:    #####:  369:         _mesa_glsl_error(& @1, state,
        -:        -:  370:                          "pragma `invariant(all)' cannot be used "
    #####:    #####:  371:                          "in a fragment shader.");
    #####:    #####:  372:      } else if (!state->is_version(120, 100)) {
    #####:    #####:  373:         _mesa_glsl_warning(& @1, state,
        -:        -:  374:                            "pragma `invariant(all)' not supported in %s "
        -:        -:  375:                            "(GLSL ES 1.00 or GLSL 1.20 required)",
    #####:    #####:  376:                            state->get_version_string());
        -:        -:  377:      } else {
    #####:    #####:  378:         state->all_invariant = true;
        -:        -:  379:      }
        -:        -:  380:   }
        -:        -:  381:   ;
        -:        -:  382:
        -:        -:  383:extension_statement_list:
        -:        -:  384:
        -:        -:  385:   | extension_statement_list extension_statement
        -:        -:  386:   ;
        -:        -:  387:
        -:        -:  388:any_identifier:
        -:        -:  389:   IDENTIFIER
        -:        -:  390:   | TYPE_IDENTIFIER
        -:        -:  391:   | NEW_IDENTIFIER
        -:        -:  392:   ;
        -:        -:  393:
        -:        -:  394:extension_statement:
        -:        -:  395:   EXTENSION any_identifier COLON any_identifier EOL
        -:        -:  396:   {
    #####:    #####:  397:      if (!_mesa_glsl_process_extension($2, & @2, $4, & @4, state)) {
    #####:    #####:  398:         YYERROR;
        -:        -:  399:      }
        -:        -:  400:   }
        -:        -:  401:   ;
        -:        -:  402:
        -:        -:  403:external_declaration_list:
        -:        -:  404:   external_declaration
        -:        -:  405:   {
        -:        -:  406:      /* FINISHME: The NULL test is required because pragmas are set to
        -:        -:  407:       * FINISHME: NULL. (See production rule for external_declaration.)
        -:        -:  408:       */
        2:        2:  409:      if ($1 != NULL)
        2:        2:  410:         state->translation_unit.push_tail(& $1->link);
        -:        -:  411:   }
        -:        -:  412:   | external_declaration_list external_declaration
        -:        -:  413:   {
        -:        -:  414:      /* FINISHME: The NULL test is required because pragmas are set to
        -:        -:  415:       * FINISHME: NULL. (See production rule for external_declaration.)
        -:        -:  416:       */
        4:        4:  417:      if ($2 != NULL)
        4:        4:  418:         state->translation_unit.push_tail(& $2->link);
        -:        -:  419:   }
        -:        -:  420:   | external_declaration_list extension_statement {
    #####:    #####:  421:      if (!state->allow_extension_directive_midshader) {
        -:        -:  422:         _mesa_glsl_error(& @2, state,
        -:        -:  423:                          "#extension directive is not allowed "
    #####:    #####:  424:                          "in the middle of a shader");
    #####:    #####:  425:         YYERROR;
        -:        -:  426:      }
        -:        -:  427:   }
        -:        -:  428:   ;
        -:        -:  429:
        -:        -:  430:variable_identifier:
        -:        -:  431:   IDENTIFIER
        -:        -:  432:   | NEW_IDENTIFIER
        -:        -:  433:   ;
        -:        -:  434:
        -:        -:  435:primary_expression:
        -:        -:  436:   variable_identifier
        -:        -:  437:   {
       58:       59:  438:      void *ctx = state->linalloc;
       58:       59:  439:      $$ = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL);
       58:       59:  440:      $$->set_location(@1);
       58:       59:  441:      $$->primary_expression.identifier = $1;
        -:        -:  442:   }
        -:        -:  443:   | INTCONSTANT
        -:        -:  444:   {
       17:       17:  445:      void *ctx = state->linalloc;
       17:       17:  446:      $$ = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL);
       17:       17:  447:      $$->set_location(@1);
       17:       17:  448:      $$->primary_expression.int_constant = $1;
        -:        -:  449:   }
        -:        -:  450:   | UINTCONSTANT
        -:        -:  451:   {
    #####:    #####:  452:      void *ctx = state->linalloc;
    #####:    #####:  453:      $$ = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL);
    #####:    #####:  454:      $$->set_location(@1);
    #####:    #####:  455:      $$->primary_expression.uint_constant = $1;
        -:        -:  456:   }
        -:        -:  457:   | INT64CONSTANT
        -:        -:  458:   {
    #####:    #####:  459:      void *ctx = state->linalloc;
    #####:    #####:  460:      $$ = new(ctx) ast_expression(ast_int64_constant, NULL, NULL, NULL);
    #####:    #####:  461:      $$->set_location(@1);
    #####:    #####:  462:      $$->primary_expression.int64_constant = $1;
        -:        -:  463:   }
        -:        -:  464:   | UINT64CONSTANT
        -:        -:  465:   {
    #####:    #####:  466:      void *ctx = state->linalloc;
    #####:    #####:  467:      $$ = new(ctx) ast_expression(ast_uint64_constant, NULL, NULL, NULL);
    #####:    #####:  468:      $$->set_location(@1);
    #####:    #####:  469:      $$->primary_expression.uint64_constant = $1;
        -:        -:  470:   }
        -:        -:  471:   | FLOATCONSTANT
        -:        -:  472:   {
        2:        3:  473:      void *ctx = state->linalloc;
        2:        3:  474:      $$ = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL);
        2:        3:  475:      $$->set_location(@1);
        2:        3:  476:      $$->primary_expression.float_constant = $1;
        -:        -:  477:   }
        -:        -:  478:   | DOUBLECONSTANT
        -:        -:  479:   {
    #####:    #####:  480:      void *ctx = state->linalloc;
    #####:    #####:  481:      $$ = new(ctx) ast_expression(ast_double_constant, NULL, NULL, NULL);
    #####:    #####:  482:      $$->set_location(@1);
    #####:    #####:  483:      $$->primary_expression.double_constant = $1;
        -:        -:  484:   }
        -:        -:  485:   | BOOLCONSTANT
        -:        -:  486:   {
    #####:    #####:  487:      void *ctx = state->linalloc;
    #####:    #####:  488:      $$ = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL);
    #####:    #####:  489:      $$->set_location(@1);
    #####:    #####:  490:      $$->primary_expression.bool_constant = $1;
        -:        -:  491:   }
        -:        -:  492:   | '(' expression ')'
        -:        -:  493:   {
    #####:    #####:  494:      $$ = $2;
        -:        -:  495:   }
        -:        -:  496:   ;
        -:        -:  497:
        -:        -:  498:postfix_expression:
        -:        -:  499:   primary_expression
        -:        -:  500:   | postfix_expression '[' integer_expression ']'
        -:        -:  501:   {
       16:       16:  502:      void *ctx = state->linalloc;
       16:       16:  503:      $$ = new(ctx) ast_expression(ast_array_index, $1, $3, NULL);
       16:       16:  504:      $$->set_location_range(@1, @4);
        -:        -:  505:   }
        -:        -:  506:   | function_call
        -:        -:  507:   {
       11:       11:  508:      $$ = $1;
        -:        -:  509:   }
        -:        -:  510:   | postfix_expression DOT_TOK FIELD_SELECTION
        -:        -:  511:   {
       14:       15:  512:      void *ctx = state->linalloc;
       14:       15:  513:      $$ = new(ctx) ast_expression(ast_field_selection, $1, NULL, NULL);
       14:       15:  514:      $$->set_location_range(@1, @3);
       14:       15:  515:      $$->primary_expression.identifier = $3;
        -:        -:  516:   }
        -:        -:  517:   | postfix_expression INC_OP
        -:        -:  518:   {
        2:        2:  519:      void *ctx = state->linalloc;
        2:        2:  520:      $$ = new(ctx) ast_expression(ast_post_inc, $1, NULL, NULL);
        2:        2:  521:      $$->set_location_range(@1, @2);
        -:        -:  522:   }
        -:        -:  523:   | postfix_expression DEC_OP
        -:        -:  524:   {
    #####:    #####:  525:      void *ctx = state->linalloc;
    #####:    #####:  526:      $$ = new(ctx) ast_expression(ast_post_dec, $1, NULL, NULL);
    #####:    #####:  527:      $$->set_location_range(@1, @2);
        -:        -:  528:   }
        -:        -:  529:   ;
        -:        -:  530:
        -:        -:  531:integer_expression:
        -:        -:  532:   expression
        -:        -:  533:   ;
        -:        -:  534:
        -:        -:  535:function_call:
        -:        -:  536:   function_call_or_method
        -:        -:  537:   ;
        -:        -:  538:
        -:        -:  539:function_call_or_method:
        -:        -:  540:   function_call_generic
        -:        -:  541:   ;
        -:        -:  542:
        -:        -:  543:function_call_generic:
        -:        -:  544:   function_call_header_with_parameters ')'
        -:        -:  545:   | function_call_header_no_parameters ')'
        -:        -:  546:   ;
        -:        -:  547:
        -:        -:  548:function_call_header_no_parameters:
        -:        -:  549:   function_call_header VOID_TOK
        -:        -:  550:   | function_call_header
        -:        -:  551:   ;
        -:        -:  552:
        -:        -:  553:function_call_header_with_parameters:
        -:        -:  554:   function_call_header assignment_expression
        -:        -:  555:   {
       11:       11:  556:      $$ = $1;
       11:       11:  557:      $$->set_location(@1);
       11:       11:  558:      $$->expressions.push_tail(& $2->link);
        -:        -:  559:   }
        -:        -:  560:   | function_call_header_with_parameters ',' assignment_expression
        -:        -:  561:   {
       11:       11:  562:      $$ = $1;
       11:       11:  563:      $$->set_location(@1);
       11:       11:  564:      $$->expressions.push_tail(& $3->link);
        -:        -:  565:   }
        -:        -:  566:   ;
        -:        -:  567:
        -:        -:  568:   // Grammar Note: Constructors look like functions, but lexical
        -:        -:  569:   // analysis recognized most of them as keywords. They are now
        -:        -:  570:   // recognized through "type_specifier".
        -:        -:  571:function_call_header:
        -:        -:  572:   function_identifier '('
        -:        -:  573:   ;
        -:        -:  574:
        -:        -:  575:function_identifier:
        -:        -:  576:   type_specifier
        -:        -:  577:   {
        4:        4:  578:      void *ctx = state->linalloc;
        4:        4:  579:      $$ = new(ctx) ast_function_expression($1);
        4:        4:  580:      $$->set_location(@1);
        -:        -:  581:      }
        -:        -:  582:   | postfix_expression
        -:        -:  583:   {
        7:        7:  584:      void *ctx = state->linalloc;
        7:        7:  585:      $$ = new(ctx) ast_function_expression($1);
        7:        7:  586:      $$->set_location(@1);
        -:        -:  587:      }
        -:        -:  588:   ;
        -:        -:  589:
        -:        -:  590:   // Grammar Note: Constructors look like methods, but lexical
        -:        -:  591:   // analysis recognized most of them as keywords. They are now
        -:        -:  592:   // recognized through "type_specifier".
        -:        -:  593:
        -:        -:  594:   // Grammar Note: No traditional style type casts.
        -:        -:  595:unary_expression:
        -:        -:  596:   postfix_expression
        -:        -:  597:   | INC_OP unary_expression
        -:        -:  598:   {
    #####:    #####:  599:      void *ctx = state->linalloc;
    #####:    #####:  600:      $$ = new(ctx) ast_expression(ast_pre_inc, $2, NULL, NULL);
    #####:    #####:  601:      $$->set_location(@1);
        -:        -:  602:   }
        -:        -:  603:   | DEC_OP unary_expression
        -:        -:  604:   {
    #####:    #####:  605:      void *ctx = state->linalloc;
    #####:    #####:  606:      $$ = new(ctx) ast_expression(ast_pre_dec, $2, NULL, NULL);
    #####:    #####:  607:      $$->set_location(@1);
        -:        -:  608:   }
        -:        -:  609:   | unary_operator unary_expression
        -:        -:  610:   {
    #####:    #####:  611:      void *ctx = state->linalloc;
    #####:    #####:  612:      $$ = new(ctx) ast_expression($1, $2, NULL, NULL);
    #####:    #####:  613:      $$->set_location_range(@1, @2);
        -:        -:  614:   }
        -:        -:  615:   ;
        -:        -:  616:
        -:        -:  617:   // Grammar Note: No '*' or '&' unary ops. Pointers are not supported.
        -:        -:  618:unary_operator:
    #####:    #####:  619:   '+'   { $$ = ast_plus; }
    #####:    #####:  620:   | '-' { $$ = ast_neg; }
    #####:    #####:  621:   | '!' { $$ = ast_logic_not; }
    #####:    #####:  622:   | '~' { $$ = ast_bit_not; }
        -:        -:  623:   ;
        -:        -:  624:
        -:        -:  625:multiplicative_expression:
        -:        -:  626:   unary_expression
        -:        -:  627:   | multiplicative_expression '*' unary_expression
        -:        -:  628:   {
        1:        1:  629:      void *ctx = state->linalloc;
        1:        1:  630:      $$ = new(ctx) ast_expression_bin(ast_mul, $1, $3);
        1:        1:  631:      $$->set_location_range(@1, @3);
        -:        -:  632:   }
        -:        -:  633:   | multiplicative_expression '/' unary_expression
        -:        -:  634:   {
        1:        1:  635:      void *ctx = state->linalloc;
        1:        1:  636:      $$ = new(ctx) ast_expression_bin(ast_div, $1, $3);
        1:        1:  637:      $$->set_location_range(@1, @3);
        -:        -:  638:   }
        -:        -:  639:   | multiplicative_expression '%' unary_expression
        -:        -:  640:   {
    #####:    #####:  641:      void *ctx = state->linalloc;
    #####:    #####:  642:      $$ = new(ctx) ast_expression_bin(ast_mod, $1, $3);
    #####:    #####:  643:      $$->set_location_range(@1, @3);
        -:        -:  644:   }
        -:        -:  645:   ;
        -:        -:  646:
        -:        -:  647:additive_expression:
        -:        -:  648:   multiplicative_expression
        -:        -:  649:   | additive_expression '+' multiplicative_expression
        -:        -:  650:   {
        1:        1:  651:      void *ctx = state->linalloc;
        1:        1:  652:      $$ = new(ctx) ast_expression_bin(ast_add, $1, $3);
        1:        1:  653:      $$->set_location_range(@1, @3);
        -:        -:  654:   }
        -:        -:  655:   | additive_expression '-' multiplicative_expression
        -:        -:  656:   {
    #####:    #####:  657:      void *ctx = state->linalloc;
    #####:    #####:  658:      $$ = new(ctx) ast_expression_bin(ast_sub, $1, $3);
    #####:    #####:  659:      $$->set_location_range(@1, @3);
        -:        -:  660:   }
        -:        -:  661:   ;
        -:        -:  662:
        -:        -:  663:shift_expression:
        -:        -:  664:   additive_expression
        -:        -:  665:   | shift_expression LEFT_OP additive_expression
        -:        -:  666:   {
    #####:    #####:  667:      void *ctx = state->linalloc;
    #####:    #####:  668:      $$ = new(ctx) ast_expression_bin(ast_lshift, $1, $3);
    #####:    #####:  669:      $$->set_location_range(@1, @3);
        -:        -:  670:   }
        -:        -:  671:   | shift_expression RIGHT_OP additive_expression
        -:        -:  672:   {
    #####:    #####:  673:      void *ctx = state->linalloc;
    #####:    #####:  674:      $$ = new(ctx) ast_expression_bin(ast_rshift, $1, $3);
    #####:    #####:  675:      $$->set_location_range(@1, @3);
        -:        -:  676:   }
        -:        -:  677:   ;
        -:        -:  678:
        -:        -:  679:relational_expression:
        -:        -:  680:   shift_expression
        -:        -:  681:   | relational_expression '<' shift_expression
        -:        -:  682:   {
        2:        3:  683:      void *ctx = state->linalloc;
        2:        3:  684:      $$ = new(ctx) ast_expression_bin(ast_less, $1, $3);
        2:        3:  685:      $$->set_location_range(@1, @3);
        -:        -:  686:   }
        -:        -:  687:   | relational_expression '>' shift_expression
        -:        -:  688:   {
    #####:    #####:  689:      void *ctx = state->linalloc;
    #####:    #####:  690:      $$ = new(ctx) ast_expression_bin(ast_greater, $1, $3);
    #####:    #####:  691:      $$->set_location_range(@1, @3);
        -:        -:  692:   }
        -:        -:  693:   | relational_expression LE_OP shift_expression
        -:        -:  694:   {
        1:        1:  695:      void *ctx = state->linalloc;
        1:        1:  696:      $$ = new(ctx) ast_expression_bin(ast_lequal, $1, $3);
        1:        1:  697:      $$->set_location_range(@1, @3);
        -:        -:  698:   }
        -:        -:  699:   | relational_expression GE_OP shift_expression
        -:        -:  700:   {
        2:        2:  701:      void *ctx = state->linalloc;
        2:        2:  702:      $$ = new(ctx) ast_expression_bin(ast_gequal, $1, $3);
        2:        2:  703:      $$->set_location_range(@1, @3);
        -:        -:  704:   }
        -:        -:  705:   ;
        -:        -:  706:
        -:        -:  707:equality_expression:
        -:        -:  708:   relational_expression
        -:        -:  709:   | equality_expression EQ_OP relational_expression
        -:        -:  710:   {
    #####:    #####:  711:      void *ctx = state->linalloc;
    #####:    #####:  712:      $$ = new(ctx) ast_expression_bin(ast_equal, $1, $3);
    #####:    #####:  713:      $$->set_location_range(@1, @3);
        -:        -:  714:   }
        -:        -:  715:   | equality_expression NE_OP relational_expression
        -:        -:  716:   {
    #####:    #####:  717:      void *ctx = state->linalloc;
    #####:    #####:  718:      $$ = new(ctx) ast_expression_bin(ast_nequal, $1, $3);
    #####:    #####:  719:      $$->set_location_range(@1, @3);
        -:        -:  720:   }
        -:        -:  721:   ;
        -:        -:  722:
        -:        -:  723:and_expression:
        -:        -:  724:   equality_expression
        -:        -:  725:   | and_expression '&' equality_expression
        -:        -:  726:   {
    #####:    #####:  727:      void *ctx = state->linalloc;
    #####:    #####:  728:      $$ = new(ctx) ast_expression_bin(ast_bit_and, $1, $3);
    #####:    #####:  729:      $$->set_location_range(@1, @3);
        -:        -:  730:   }
        -:        -:  731:   ;
        -:        -:  732:
        -:        -:  733:exclusive_or_expression:
        -:        -:  734:   and_expression
        -:        -:  735:   | exclusive_or_expression '^' and_expression
        -:        -:  736:   {
    #####:    #####:  737:      void *ctx = state->linalloc;
    #####:    #####:  738:      $$ = new(ctx) ast_expression_bin(ast_bit_xor, $1, $3);
    #####:    #####:  739:      $$->set_location_range(@1, @3);
        -:        -:  740:   }
        -:        -:  741:   ;
        -:        -:  742:
        -:        -:  743:inclusive_or_expression:
        -:        -:  744:   exclusive_or_expression
        -:        -:  745:   | inclusive_or_expression '|' exclusive_or_expression
        -:        -:  746:   {
    #####:    #####:  747:      void *ctx = state->linalloc;
    #####:    #####:  748:      $$ = new(ctx) ast_expression_bin(ast_bit_or, $1, $3);
    #####:    #####:  749:      $$->set_location_range(@1, @3);
        -:        -:  750:   }
        -:        -:  751:   ;
        -:        -:  752:
        -:        -:  753:logical_and_expression:
        -:        -:  754:   inclusive_or_expression
        -:        -:  755:   | logical_and_expression AND_OP inclusive_or_expression
        -:        -:  756:   {
    #####:    #####:  757:      void *ctx = state->linalloc;
    #####:    #####:  758:      $$ = new(ctx) ast_expression_bin(ast_logic_and, $1, $3);
    #####:    #####:  759:      $$->set_location_range(@1, @3);
        -:        -:  760:   }
        -:        -:  761:   ;
        -:        -:  762:
        -:        -:  763:logical_xor_expression:
        -:        -:  764:   logical_and_expression
        -:        -:  765:   | logical_xor_expression XOR_OP logical_and_expression
        -:        -:  766:   {
    #####:    #####:  767:      void *ctx = state->linalloc;
    #####:    #####:  768:      $$ = new(ctx) ast_expression_bin(ast_logic_xor, $1, $3);
    #####:    #####:  769:      $$->set_location_range(@1, @3);
        -:        -:  770:   }
        -:        -:  771:   ;
        -:        -:  772:
        -:        -:  773:logical_or_expression:
        -:        -:  774:   logical_xor_expression
        -:        -:  775:   | logical_or_expression OR_OP logical_xor_expression
        -:        -:  776:   {
    #####:    #####:  777:      void *ctx = state->linalloc;
    #####:    #####:  778:      $$ = new(ctx) ast_expression_bin(ast_logic_or, $1, $3);
    #####:    #####:  779:      $$->set_location_range(@1, @3);
        -:        -:  780:   }
        -:        -:  781:   ;
        -:        -:  782:
        -:        -:  783:conditional_expression:
        -:        -:  784:   logical_or_expression
        -:        -:  785:   | logical_or_expression '?' expression ':' assignment_expression
        -:        -:  786:   {
    #####:    #####:  787:      void *ctx = state->linalloc;
    #####:    #####:  788:      $$ = new(ctx) ast_expression(ast_conditional, $1, $3, $5);
    #####:    #####:  789:      $$->set_location_range(@1, @5);
        -:        -:  790:   }
        -:        -:  791:   ;
        -:        -:  792:
        -:        -:  793:assignment_expression:
        -:        -:  794:   conditional_expression
        -:        -:  795:   | unary_expression assignment_operator assignment_expression
        -:        -:  796:   {
       10:       10:  797:      void *ctx = state->linalloc;
       10:       10:  798:      $$ = new(ctx) ast_expression($2, $1, $3, NULL);
       10:       10:  799:      $$->set_location_range(@1, @3);
        -:        -:  800:   }
        -:        -:  801:   ;
        -:        -:  802:
        -:        -:  803:assignment_operator:
        9:        9:  804:   '='                { $$ = ast_assign; }
    #####:    #####:  805:   | MUL_ASSIGN       { $$ = ast_mul_assign; }
    #####:    #####:  806:   | DIV_ASSIGN       { $$ = ast_div_assign; }
    #####:    #####:  807:   | MOD_ASSIGN       { $$ = ast_mod_assign; }
        1:        1:  808:   | ADD_ASSIGN       { $$ = ast_add_assign; }
    #####:    #####:  809:   | SUB_ASSIGN       { $$ = ast_sub_assign; }
    #####:    #####:  810:   | LEFT_ASSIGN      { $$ = ast_ls_assign; }
    #####:    #####:  811:   | RIGHT_ASSIGN     { $$ = ast_rs_assign; }
    #####:    #####:  812:   | AND_ASSIGN       { $$ = ast_and_assign; }
    #####:    #####:  813:   | XOR_ASSIGN       { $$ = ast_xor_assign; }
    #####:    #####:  814:   | OR_ASSIGN        { $$ = ast_or_assign; }
        -:        -:  815:   ;
        -:        -:  816:
        -:        -:  817:expression:
        -:        -:  818:   assignment_expression
        -:        -:  819:   {
       35:       36:  820:      $$ = $1;
        -:        -:  821:   }
        -:        -:  822:   | expression ',' assignment_expression
        -:        -:  823:   {
    #####:    #####:  824:      void *ctx = state->linalloc;
    #####:    #####:  825:      if ($1->oper != ast_sequence) {
    #####:    #####:  826:         $$ = new(ctx) ast_expression(ast_sequence, NULL, NULL, NULL);
    #####:    #####:  827:         $$->set_location_range(@1, @3);
    #####:    #####:  828:         $$->expressions.push_tail(& $1->link);
        -:        -:  829:      } else {
    #####:    #####:  830:         $$ = $1;
        -:        -:  831:      }
        -:        -:  832:
    #####:    #####:  833:      $$->expressions.push_tail(& $3->link);
        -:        -:  834:   }
        -:        -:  835:   ;
        -:        -:  836:
        -:        -:  837:constant_expression:
        -:        -:  838:   conditional_expression
        -:        -:  839:   ;
        -:        -:  840:
        -:        -:  841:declaration:
        -:        -:  842:   function_prototype ';'
        -:        -:  843:   {
    #####:    #####:  844:      state->symbols->pop_scope();
    #####:    #####:  845:      $$ = $1;
        -:        -:  846:   }
        -:        -:  847:   | init_declarator_list ';'
        -:        -:  848:   {
        8:        8:  849:      $$ = $1;
        -:        -:  850:   }
        -:        -:  851:   | PRECISION precision_qualifier type_specifier ';'
        -:        -:  852:   {
    #####:    #####:  853:      $3->default_precision = $2;
    #####:    #####:  854:      $$ = $3;
        -:        -:  855:   }
        -:        -:  856:   | interface_block
        -:        -:  857:   {
    #####:    #####:  858:      ast_interface_block *block = (ast_interface_block *) $1;
    #####:    #####:  859:      if (block->layout.has_layout() || block->layout.has_memory()) {
    #####:    #####:  860:         if (!block->default_layout.merge_qualifier(& @1, state, block->layout, false)) {
    #####:    #####:  861:            YYERROR;
        -:        -:  862:         }
        -:        -:  863:      }
    #####:    #####:  864:      block->layout = block->default_layout;
    #####:    #####:  865:      if (!block->layout.push_to_global(& @1, state)) {
    #####:    #####:  866:         YYERROR;
        -:        -:  867:      }
    #####:    #####:  868:      $$ = $1;
        -:        -:  869:   }
        -:        -:  870:   ;
        -:        -:  871:
        -:        -:  872:function_prototype:
        -:        -:  873:   function_declarator ')'
        -:        -:  874:   ;
        -:        -:  875:
        -:        -:  876:function_declarator:
        -:        -:  877:   function_header
        -:        -:  878:   | function_header_with_parameters
        -:        -:  879:   ;
        -:        -:  880:
        -:        -:  881:function_header_with_parameters:
        -:        -:  882:   function_header parameter_declaration
        -:        -:  883:   {
        2:        2:  884:      $$ = $1;
        2:        2:  885:      $$->parameters.push_tail(& $2->link);
        -:        -:  886:   }
        -:        -:  887:   | function_header_with_parameters ',' parameter_declaration
        -:        -:  888:   {
        1:        1:  889:      $$ = $1;
        1:        1:  890:      $$->parameters.push_tail(& $3->link);
        -:        -:  891:   }
        -:        -:  892:   ;
        -:        -:  893:
        -:        -:  894:function_header:
        -:        -:  895:   fully_specified_type variable_identifier '('
        -:        -:  896:   {
        3:        3:  897:      void *ctx = state->linalloc;
        3:        3:  898:      $$ = new(ctx) ast_function();
        3:        3:  899:      $$->set_location(@2);
        3:        3:  900:      $$->return_type = $1;
        3:        3:  901:      $$->identifier = $2;
        -:        -:  902:
        3:        3:  903:      if ($1->qualifier.is_subroutine_decl()) {
        -:        -:  904:         /* add type for IDENTIFIER search */
    #####:    #####:  905:         state->symbols->add_type($2, glsl_type::get_subroutine_instance($2));
        -:        -:  906:      } else
        3:        3:  907:         state->symbols->add_function(new(state) ir_function($2));
        3:        3:  908:      state->symbols->push_scope();
        -:        -:  909:   }
        -:        -:  910:   ;
        -:        -:  911:
        -:        -:  912:parameter_declarator:
        -:        -:  913:   type_specifier any_identifier
        -:        -:  914:   {
        2:        2:  915:      void *ctx = state->linalloc;
        2:        2:  916:      $$ = new(ctx) ast_parameter_declarator();
        2:        2:  917:      $$->set_location_range(@1, @2);
        2:        2:  918:      $$->type = new(ctx) ast_fully_specified_type();
        2:        2:  919:      $$->type->set_location(@1);
        2:        2:  920:      $$->type->specifier = $1;
        2:        2:  921:      $$->identifier = $2;
        2:        2:  922:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -:  923:   }
        -:        -:  924:   | type_specifier any_identifier array_specifier
        -:        -:  925:   {
    #####:    #####:  926:      void *ctx = state->linalloc;
    #####:    #####:  927:      $$ = new(ctx) ast_parameter_declarator();
    #####:    #####:  928:      $$->set_location_range(@1, @3);
    #####:    #####:  929:      $$->type = new(ctx) ast_fully_specified_type();
    #####:    #####:  930:      $$->type->set_location(@1);
    #####:    #####:  931:      $$->type->specifier = $1;
    #####:    #####:  932:      $$->identifier = $2;
    #####:    #####:  933:      $$->array_specifier = $3;
    #####:    #####:  934:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -:  935:   }
        -:        -:  936:   ;
        -:        -:  937:
        -:        -:  938:parameter_declaration:
        -:        -:  939:   parameter_qualifier parameter_declarator
        -:        -:  940:   {
        2:        2:  941:      $$ = $2;
        2:        2:  942:      $$->type->qualifier = $1;
        2:        2:  943:      if (!$$->type->qualifier.push_to_global(& @1, state)) {
    #####:    #####:  944:         YYERROR;
        -:        -:  945:      }
        -:        -:  946:   }
        -:        -:  947:   | parameter_qualifier parameter_type_specifier
        -:        -:  948:   {
        1:        1:  949:      void *ctx = state->linalloc;
        1:        1:  950:      $$ = new(ctx) ast_parameter_declarator();
        1:        1:  951:      $$->set_location(@2);
        1:        1:  952:      $$->type = new(ctx) ast_fully_specified_type();
        1:        1:  953:      $$->type->set_location_range(@1, @2);
        1:        1:  954:      $$->type->qualifier = $1;
        1:        1:  955:      if (!$$->type->qualifier.push_to_global(& @1, state)) {
    #####:    #####:  956:         YYERROR;
        -:        -:  957:      }
        1:        1:  958:      $$->type->specifier = $2;
        -:        -:  959:   }
        -:        -:  960:   ;
        -:        -:  961:
        -:        -:  962:parameter_qualifier:
        -:        -:  963:   /* empty */
        -:        -:  964:   {
        3:        3:  965:      memset(& $$, 0, sizeof($$));
        -:        -:  966:   }
        -:        -:  967:   | CONST_TOK parameter_qualifier
        -:        -:  968:   {
    #####:    #####:  969:      if ($2.flags.q.constant)
    #####:    #####:  970:         _mesa_glsl_error(&@1, state, "duplicate const qualifier");
        -:        -:  971:
    #####:    #####:  972:      $$ = $2;
    #####:    #####:  973:      $$.flags.q.constant = 1;
        -:        -:  974:   }
        -:        -:  975:   | PRECISE parameter_qualifier
        -:        -:  976:   {
    #####:    #####:  977:      if ($2.flags.q.precise)
    #####:    #####:  978:         _mesa_glsl_error(&@1, state, "duplicate precise qualifier");
        -:        -:  979:
    #####:    #####:  980:      $$ = $2;
    #####:    #####:  981:      $$.flags.q.precise = 1;
        -:        -:  982:   }
        -:        -:  983:   | parameter_direction_qualifier parameter_qualifier
        -:        -:  984:   {
    #####:    #####:  985:      if (($1.flags.q.in || $1.flags.q.out) && ($2.flags.q.in || $2.flags.q.out))
    #####:    #####:  986:         _mesa_glsl_error(&@1, state, "duplicate in/out/inout qualifier");
        -:        -:  987:
    #####:    #####:  988:      if (!state->has_420pack_or_es31() && $2.flags.q.constant)
    #####:    #####:  989:         _mesa_glsl_error(&@1, state, "in/out/inout must come after const "
    #####:    #####:  990:                                      "or precise");
        -:        -:  991:
    #####:    #####:  992:      $$ = $1;
    #####:    #####:  993:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -:  994:   }
        -:        -:  995:   | precision_qualifier parameter_qualifier
        -:        -:  996:   {
    #####:    #####:  997:      if ($2.precision != ast_precision_none)
    #####:    #####:  998:         _mesa_glsl_error(&@1, state, "duplicate precision qualifier");
        -:        -:  999:
    #####:    #####: 1000:      if (!state->has_420pack_or_es31() &&
    #####:    #####: 1001:          $2.flags.i != 0)
    #####:    #####: 1002:         _mesa_glsl_error(&@1, state, "precision qualifiers must come last");
        -:        -: 1003:
    #####:    #####: 1004:      $$ = $2;
    #####:    #####: 1005:      $$.precision = $1;
        -:        -: 1006:   }
        -:        -: 1007:   | memory_qualifier parameter_qualifier
        -:        -: 1008:   {
    #####:    #####: 1009:      $$ = $1;
    #####:    #####: 1010:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 1011:   }
        -:        -: 1012:
        -:        -: 1013:parameter_direction_qualifier:
        -:        -: 1014:   IN_TOK
        -:        -: 1015:   {
    #####:    #####: 1016:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1017:      $$.flags.q.in = 1;
        -:        -: 1018:   }
        -:        -: 1019:   | OUT_TOK
        -:        -: 1020:   {
    #####:    #####: 1021:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1022:      $$.flags.q.out = 1;
        -:        -: 1023:   }
        -:        -: 1024:   | INOUT_TOK
        -:        -: 1025:   {
    #####:    #####: 1026:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1027:      $$.flags.q.in = 1;
    #####:    #####: 1028:      $$.flags.q.out = 1;
        -:        -: 1029:   }
        -:        -: 1030:   ;
        -:        -: 1031:
        -:        -: 1032:parameter_type_specifier:
        -:        -: 1033:   type_specifier
        -:        -: 1034:   ;
        -:        -: 1035:
        -:        -: 1036:init_declarator_list:
        -:        -: 1037:   single_declaration
        -:        -: 1038:   | init_declarator_list ',' any_identifier
        -:        -: 1039:   {
    #####:    #####: 1040:      void *ctx = state->linalloc;
    #####:    #####: 1041:      ast_declaration *decl = new(ctx) ast_declaration($3, NULL, NULL);
    #####:    #####: 1042:      decl->set_location(@3);
        -:        -: 1043:
    #####:    #####: 1044:      $$ = $1;
    #####:    #####: 1045:      $$->declarations.push_tail(&decl->link);
    #####:    #####: 1046:      state->symbols->add_variable(new(state) ir_variable(NULL, $3, ir_var_auto));
        -:        -: 1047:   }
        -:        -: 1048:   | init_declarator_list ',' any_identifier array_specifier
        -:        -: 1049:   {
    #####:    #####: 1050:      void *ctx = state->linalloc;
    #####:    #####: 1051:      ast_declaration *decl = new(ctx) ast_declaration($3, $4, NULL);
    #####:    #####: 1052:      decl->set_location_range(@3, @4);
        -:        -: 1053:
    #####:    #####: 1054:      $$ = $1;
    #####:    #####: 1055:      $$->declarations.push_tail(&decl->link);
    #####:    #####: 1056:      state->symbols->add_variable(new(state) ir_variable(NULL, $3, ir_var_auto));
        -:        -: 1057:   }
        -:        -: 1058:   | init_declarator_list ',' any_identifier array_specifier '=' initializer
        -:        -: 1059:   {
    #####:    #####: 1060:      void *ctx = state->linalloc;
    #####:    #####: 1061:      ast_declaration *decl = new(ctx) ast_declaration($3, $4, $6);
    #####:    #####: 1062:      decl->set_location_range(@3, @4);
        -:        -: 1063:
    #####:    #####: 1064:      $$ = $1;
    #####:    #####: 1065:      $$->declarations.push_tail(&decl->link);
    #####:    #####: 1066:      state->symbols->add_variable(new(state) ir_variable(NULL, $3, ir_var_auto));
        -:        -: 1067:   }
        -:        -: 1068:   | init_declarator_list ',' any_identifier '=' initializer
        -:        -: 1069:   {
    #####:    #####: 1070:      void *ctx = state->linalloc;
    #####:    #####: 1071:      ast_declaration *decl = new(ctx) ast_declaration($3, NULL, $5);
    #####:    #####: 1072:      decl->set_location(@3);
        -:        -: 1073:
    #####:    #####: 1074:      $$ = $1;
    #####:    #####: 1075:      $$->declarations.push_tail(&decl->link);
    #####:    #####: 1076:      state->symbols->add_variable(new(state) ir_variable(NULL, $3, ir_var_auto));
        -:        -: 1077:   }
        -:        -: 1078:   ;
        -:        -: 1079:
        -:        -: 1080:   // Grammar Note: No 'enum', or 'typedef'.
        -:        -: 1081:single_declaration:
        -:        -: 1082:   fully_specified_type
        -:        -: 1083:   {
    #####:    #####: 1084:      void *ctx = state->linalloc;
        -:        -: 1085:      /* Empty declaration list is valid. */
    #####:    #####: 1086:      $$ = new(ctx) ast_declarator_list($1);
    #####:    #####: 1087:      $$->set_location(@1);
        -:        -: 1088:   }
        -:        -: 1089:   | fully_specified_type any_identifier
        -:        -: 1090:   {
        2:        2: 1091:      void *ctx = state->linalloc;
        2:        2: 1092:      ast_declaration *decl = new(ctx) ast_declaration($2, NULL, NULL);
        2:        2: 1093:      decl->set_location(@2);
        -:        -: 1094:
        2:        2: 1095:      $$ = new(ctx) ast_declarator_list($1);
        2:        2: 1096:      $$->set_location_range(@1, @2);
        2:        2: 1097:      $$->declarations.push_tail(&decl->link);
        2:        2: 1098:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -: 1099:   }
        -:        -: 1100:   | fully_specified_type any_identifier array_specifier
        -:        -: 1101:   {
        1:        1: 1102:      void *ctx = state->linalloc;
        1:        1: 1103:      ast_declaration *decl = new(ctx) ast_declaration($2, $3, NULL);
        1:        1: 1104:      decl->set_location_range(@2, @3);
        -:        -: 1105:
        1:        1: 1106:      $$ = new(ctx) ast_declarator_list($1);
        1:        1: 1107:      $$->set_location_range(@1, @3);
        1:        1: 1108:      $$->declarations.push_tail(&decl->link);
        1:        1: 1109:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -: 1110:   }
        -:        -: 1111:   | fully_specified_type any_identifier array_specifier '=' initializer
        -:        -: 1112:   {
    #####:    #####: 1113:      void *ctx = state->linalloc;
    #####:    #####: 1114:      ast_declaration *decl = new(ctx) ast_declaration($2, $3, $5);
    #####:    #####: 1115:      decl->set_location_range(@2, @3);
        -:        -: 1116:
    #####:    #####: 1117:      $$ = new(ctx) ast_declarator_list($1);
    #####:    #####: 1118:      $$->set_location_range(@1, @3);
    #####:    #####: 1119:      $$->declarations.push_tail(&decl->link);
    #####:    #####: 1120:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -: 1121:   }
        -:        -: 1122:   | fully_specified_type any_identifier '=' initializer
        -:        -: 1123:   {
        5:        5: 1124:      void *ctx = state->linalloc;
        5:        5: 1125:      ast_declaration *decl = new(ctx) ast_declaration($2, NULL, $4);
        5:        5: 1126:      decl->set_location(@2);
        -:        -: 1127:
        5:        5: 1128:      $$ = new(ctx) ast_declarator_list($1);
        5:        5: 1129:      $$->set_location_range(@1, @2);
        5:        5: 1130:      $$->declarations.push_tail(&decl->link);
        5:        5: 1131:      state->symbols->add_variable(new(state) ir_variable(NULL, $2, ir_var_auto));
        -:        -: 1132:   }
        -:        -: 1133:   | INVARIANT variable_identifier
        -:        -: 1134:   {
    #####:    #####: 1135:      void *ctx = state->linalloc;
    #####:    #####: 1136:      ast_declaration *decl = new(ctx) ast_declaration($2, NULL, NULL);
    #####:    #####: 1137:      decl->set_location(@2);
        -:        -: 1138:
    #####:    #####: 1139:      $$ = new(ctx) ast_declarator_list(NULL);
    #####:    #####: 1140:      $$->set_location_range(@1, @2);
    #####:    #####: 1141:      $$->invariant = true;
        -:        -: 1142:
    #####:    #####: 1143:      $$->declarations.push_tail(&decl->link);
        -:        -: 1144:   }
        -:        -: 1145:   | PRECISE variable_identifier
        -:        -: 1146:   {
    #####:    #####: 1147:      void *ctx = state->linalloc;
    #####:    #####: 1148:      ast_declaration *decl = new(ctx) ast_declaration($2, NULL, NULL);
    #####:    #####: 1149:      decl->set_location(@2);
        -:        -: 1150:
    #####:    #####: 1151:      $$ = new(ctx) ast_declarator_list(NULL);
    #####:    #####: 1152:      $$->set_location_range(@1, @2);
    #####:    #####: 1153:      $$->precise = true;
        -:        -: 1154:
    #####:    #####: 1155:      $$->declarations.push_tail(&decl->link);
        -:        -: 1156:   }
        -:        -: 1157:   ;
        -:        -: 1158:
        -:        -: 1159:fully_specified_type:
        -:        -: 1160:   type_specifier
        -:        -: 1161:   {
        8:        8: 1162:      void *ctx = state->linalloc;
        8:        8: 1163:      $$ = new(ctx) ast_fully_specified_type();
        8:        8: 1164:      $$->set_location(@1);
        8:        8: 1165:      $$->specifier = $1;
        -:        -: 1166:   }
        -:        -: 1167:   | type_qualifier type_specifier
        -:        -: 1168:   {
        3:        3: 1169:      void *ctx = state->linalloc;
        3:        3: 1170:      $$ = new(ctx) ast_fully_specified_type();
        3:        3: 1171:      $$->set_location_range(@1, @2);
        3:        3: 1172:      $$->qualifier = $1;
        3:        3: 1173:      if (!$$->qualifier.push_to_global(& @1, state)) {
    #####:    #####: 1174:         YYERROR;
        -:        -: 1175:      }
        3:        3: 1176:      $$->specifier = $2;
        3:        3: 1177:      if ($$->specifier->structure != NULL &&
    #####:    #####: 1178:          $$->specifier->structure->is_declaration) {
    #####:    #####: 1179:            $$->specifier->structure->layout = &$$->qualifier;
        -:        -: 1180:      }
        -:        -: 1181:   }
        -:        -: 1182:   ;
        -:        -: 1183:
        -:        -: 1184:layout_qualifier:
        -:        -: 1185:   LAYOUT_TOK '(' layout_qualifier_id_list ')'
        -:        -: 1186:   {
    #####:    #####: 1187:      $$ = $3;
        -:        -: 1188:   }
        -:        -: 1189:   ;
        -:        -: 1190:
        -:        -: 1191:layout_qualifier_id_list:
        -:        -: 1192:   layout_qualifier_id
        -:        -: 1193:   | layout_qualifier_id_list ',' layout_qualifier_id
        -:        -: 1194:   {
    #####:    #####: 1195:      $$ = $1;
    #####:    #####: 1196:      if (!$$.merge_qualifier(& @3, state, $3, true)) {
    #####:    #####: 1197:         YYERROR;
        -:        -: 1198:      }
        -:        -: 1199:   }
        -:        -: 1200:   ;
        -:        -: 1201:
        -:        -: 1202:layout_qualifier_id:
        -:        -: 1203:   any_identifier
        -:        -: 1204:   {
    #####:    #####: 1205:      memset(& $$, 0, sizeof($$));
        -:        -: 1206:
        -:        -: 1207:      /* Layout qualifiers for ARB_fragment_coord_conventions. */
    #####:    #####: 1208:      if (!$$.flags.i && (state->ARB_fragment_coord_conventions_enable ||
    #####:    #####: 1209:                          state->is_version(150, 0))) {
    #####:    #####: 1210:         if (match_layout_qualifier($1, "origin_upper_left", state) == 0) {
    #####:    #####: 1211:            $$.flags.q.origin_upper_left = 1;
    #####:    #####: 1212:         } else if (match_layout_qualifier($1, "pixel_center_integer",
        -:        -: 1213:                                           state) == 0) {
    #####:    #####: 1214:            $$.flags.q.pixel_center_integer = 1;
        -:        -: 1215:         }
        -:        -: 1216:
    #####:    #####: 1217:         if ($$.flags.i && state->ARB_fragment_coord_conventions_warn) {
    #####:    #####: 1218:            _mesa_glsl_warning(& @1, state,
        -:        -: 1219:                               "GL_ARB_fragment_coord_conventions layout "
    #####:    #####: 1220:                               "identifier `%s' used", $1);
        -:        -: 1221:         }
        -:        -: 1222:      }
        -:        -: 1223:
        -:        -: 1224:      /* Layout qualifiers for AMD/ARB_conservative_depth. */
    #####:    #####: 1225:      if (!$$.flags.i &&
    #####:    #####: 1226:          (state->AMD_conservative_depth_enable ||
    #####:    #####: 1227:           state->ARB_conservative_depth_enable ||
    #####:    #####: 1228:           state->is_version(420, 0))) {
    #####:    #####: 1229:         if (match_layout_qualifier($1, "depth_any", state) == 0) {
    #####:    #####: 1230:            $$.flags.q.depth_type = 1;
    #####:    #####: 1231:            $$.depth_type = ast_depth_any;
    #####:    #####: 1232:         } else if (match_layout_qualifier($1, "depth_greater", state) == 0) {
    #####:    #####: 1233:            $$.flags.q.depth_type = 1;
    #####:    #####: 1234:            $$.depth_type = ast_depth_greater;
    #####:    #####: 1235:         } else if (match_layout_qualifier($1, "depth_less", state) == 0) {
    #####:    #####: 1236:            $$.flags.q.depth_type = 1;
    #####:    #####: 1237:            $$.depth_type = ast_depth_less;
    #####:    #####: 1238:         } else if (match_layout_qualifier($1, "depth_unchanged",
        -:        -: 1239:                                           state) == 0) {
    #####:    #####: 1240:            $$.flags.q.depth_type = 1;
    #####:    #####: 1241:            $$.depth_type = ast_depth_unchanged;
        -:        -: 1242:         }
        -:        -: 1243:
    #####:    #####: 1244:         if ($$.flags.i && state->AMD_conservative_depth_warn) {
    #####:    #####: 1245:            _mesa_glsl_warning(& @1, state,
        -:        -: 1246:                               "GL_AMD_conservative_depth "
    #####:    #####: 1247:                               "layout qualifier `%s' is used", $1);
        -:        -: 1248:         }
    #####:    #####: 1249:         if ($$.flags.i && state->ARB_conservative_depth_warn) {
    #####:    #####: 1250:            _mesa_glsl_warning(& @1, state,
        -:        -: 1251:                               "GL_ARB_conservative_depth "
    #####:    #####: 1252:                               "layout qualifier `%s' is used", $1);
        -:        -: 1253:         }
        -:        -: 1254:      }
        -:        -: 1255:
        -:        -: 1256:      /* See also interface_block_layout_qualifier. */
    #####:    #####: 1257:      if (!$$.flags.i && state->has_uniform_buffer_objects()) {
    #####:    #####: 1258:         if (match_layout_qualifier($1, "std140", state) == 0) {
    #####:    #####: 1259:            $$.flags.q.std140 = 1;
    #####:    #####: 1260:         } else if (match_layout_qualifier($1, "shared", state) == 0) {
    #####:    #####: 1261:            $$.flags.q.shared = 1;
    #####:    #####: 1262:         } else if (match_layout_qualifier($1, "std430", state) == 0) {
    #####:    #####: 1263:            $$.flags.q.std430 = 1;
    #####:    #####: 1264:         } else if (match_layout_qualifier($1, "column_major", state) == 0) {
    #####:    #####: 1265:            $$.flags.q.column_major = 1;
        -:        -: 1266:         /* "row_major" is a reserved word in GLSL 1.30+. Its token is parsed
        -:        -: 1267:          * below in the interface_block_layout_qualifier rule.
        -:        -: 1268:          *
        -:        -: 1269:          * It is not a reserved word in GLSL ES 3.00, so it's handled here as
        -:        -: 1270:          * an identifier.
        -:        -: 1271:          *
        -:        -: 1272:          * Also, this takes care of alternate capitalizations of
        -:        -: 1273:          * "row_major" (which is necessary because layout qualifiers
        -:        -: 1274:          * are case-insensitive in desktop GLSL).
        -:        -: 1275:          */
    #####:    #####: 1276:         } else if (match_layout_qualifier($1, "row_major", state) == 0) {
    #####:    #####: 1277:            $$.flags.q.row_major = 1;
        -:        -: 1278:         /* "packed" is a reserved word in GLSL, and its token is
        -:        -: 1279:          * parsed below in the interface_block_layout_qualifier rule.
        -:        -: 1280:          * However, we must take care of alternate capitalizations of
        -:        -: 1281:          * "packed", because layout qualifiers are case-insensitive
        -:        -: 1282:          * in desktop GLSL.
        -:        -: 1283:          */
    #####:    #####: 1284:         } else if (match_layout_qualifier($1, "packed", state) == 0) {
    #####:    #####: 1285:           $$.flags.q.packed = 1;
        -:        -: 1286:         }
        -:        -: 1287:
    #####:    #####: 1288:         if ($$.flags.i && state->ARB_uniform_buffer_object_warn) {
    #####:    #####: 1289:            _mesa_glsl_warning(& @1, state,
        -:        -: 1290:                               "#version 140 / GL_ARB_uniform_buffer_object "
    #####:    #####: 1291:                               "layout qualifier `%s' is used", $1);
        -:        -: 1292:         }
        -:        -: 1293:      }
        -:        -: 1294:
        -:        -: 1295:      /* Layout qualifiers for GLSL 1.50 geometry shaders. */
    #####:    #####: 1296:      if (!$$.flags.i) {
        -:        -: 1297:         static const struct {
        -:        -: 1298:            const char *s;
        -:        -: 1299:            GLenum e;
        -:        -: 1300:         } map[] = {
        -:        -: 1301:                 { "points", GL_POINTS },
        -:        -: 1302:                 { "lines", GL_LINES },
        -:        -: 1303:                 { "lines_adjacency", GL_LINES_ADJACENCY },
        -:        -: 1304:                 { "line_strip", GL_LINE_STRIP },
        -:        -: 1305:                 { "triangles", GL_TRIANGLES },
        -:        -: 1306:                 { "triangles_adjacency", GL_TRIANGLES_ADJACENCY },
        -:        -: 1307:                 { "triangle_strip", GL_TRIANGLE_STRIP },
        -:        -: 1308:         };
    #####:    #####: 1309:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
    #####:    #####: 1310:            if (match_layout_qualifier($1, map[i].s, state) == 0) {
    #####:    #####: 1311:               $$.flags.q.prim_type = 1;
    #####:    #####: 1312:               $$.prim_type = map[i].e;
    #####:    #####: 1313:               break;
        -:        -: 1314:            }
        -:        -: 1315:         }
        -:        -: 1316:
    #####:    #####: 1317:         if ($$.flags.i && !state->has_geometry_shader() &&
    #####:    #####: 1318:             !state->has_tessellation_shader()) {
    #####:    #####: 1319:            _mesa_glsl_error(& @1, state, "#version 150 layout "
    #####:    #####: 1320:                             "qualifier `%s' used", $1);
        -:        -: 1321:         }
        -:        -: 1322:      }
        -:        -: 1323:
        -:        -: 1324:      /* Layout qualifiers for ARB_shader_image_load_store. */
    #####:    #####: 1325:      if (state->has_shader_image_load_store()) {
    #####:    #####: 1326:         if (!$$.flags.i) {
        -:        -: 1327:            static const struct {
        -:        -: 1328:               const char *name;
        -:        -: 1329:               GLenum format;
        -:        -: 1330:               glsl_base_type base_type;
        -:        -: 1331:               /** Minimum desktop GLSL version required for the image
        -:        -: 1332:                * format.  Use 130 if already present in the original
        -:        -: 1333:                * ARB extension.
        -:        -: 1334:                */
        -:        -: 1335:               unsigned required_glsl;
        -:        -: 1336:               /** Minimum GLSL ES version required for the image format. */
        -:        -: 1337:               unsigned required_essl;
        -:        -: 1338:               /* NV_image_formats */
        -:        -: 1339:               bool nv_image_formats;
        -:        -: 1340:            } map[] = {
        -:        -: 1341:               { "rgba32f", GL_RGBA32F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 1342:               { "rgba16f", GL_RGBA16F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 1343:               { "rg32f", GL_RG32F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1344:               { "rg16f", GL_RG16F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1345:               { "r11f_g11f_b10f", GL_R11F_G11F_B10F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1346:               { "r32f", GL_R32F, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 1347:               { "r16f", GL_R16F, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1348:               { "rgba32ui", GL_RGBA32UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 1349:               { "rgba16ui", GL_RGBA16UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 1350:               { "rgb10_a2ui", GL_RGB10_A2UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1351:               { "rgba8ui", GL_RGBA8UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 1352:               { "rg32ui", GL_RG32UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1353:               { "rg16ui", GL_RG16UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1354:               { "rg8ui", GL_RG8UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1355:               { "r32ui", GL_R32UI, GLSL_TYPE_UINT, 130, 310, false },
        -:        -: 1356:               { "r16ui", GL_R16UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1357:               { "r8ui", GL_R8UI, GLSL_TYPE_UINT, 130, 0, true },
        -:        -: 1358:               { "rgba32i", GL_RGBA32I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 1359:               { "rgba16i", GL_RGBA16I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 1360:               { "rgba8i", GL_RGBA8I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 1361:               { "rg32i", GL_RG32I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 1362:               { "rg16i", GL_RG16I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 1363:               { "rg8i", GL_RG8I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 1364:               { "r32i", GL_R32I, GLSL_TYPE_INT, 130, 310, false },
        -:        -: 1365:               { "r16i", GL_R16I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 1366:               { "r8i", GL_R8I, GLSL_TYPE_INT, 130, 0, true },
        -:        -: 1367:               { "rgba16", GL_RGBA16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1368:               { "rgb10_a2", GL_RGB10_A2, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1369:               { "rgba8", GL_RGBA8, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 1370:               { "rg16", GL_RG16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1371:               { "rg8", GL_RG8, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1372:               { "r16", GL_R16, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1373:               { "r8", GL_R8, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1374:               { "rgba16_snorm", GL_RGBA16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1375:               { "rgba8_snorm", GL_RGBA8_SNORM, GLSL_TYPE_FLOAT, 130, 310, false },
        -:        -: 1376:               { "rg16_snorm", GL_RG16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1377:               { "rg8_snorm", GL_RG8_SNORM, GLSL_TYPE_FLOAT, 130, 0, true },
        -:        -: 1378:               { "r16_snorm", GL_R16_SNORM, GLSL_TYPE_FLOAT, 130, 0, false },
        -:        -: 1379:               { "r8_snorm", GL_R8_SNORM, GLSL_TYPE_FLOAT, 130, 0, true }
        -:        -: 1380:            };
        -:        -: 1381:
    #####:    #####: 1382:            for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
    #####:    #####: 1383:               if ((state->is_version(map[i].required_glsl,
    #####:    #####: 1384:                                      map[i].required_essl) ||
    #####:    #####: 1385:                    (state->NV_image_formats_enable &&
    #####:    #####: 1386:                     map[i].nv_image_formats)) &&
    #####:    #####: 1387:                   match_layout_qualifier($1, map[i].name, state) == 0) {
    #####:    #####: 1388:                  $$.flags.q.explicit_image_format = 1;
    #####:    #####: 1389:                  $$.image_format = map[i].format;
    #####:    #####: 1390:                  $$.image_base_type = map[i].base_type;
    #####:    #####: 1391:                  break;
        -:        -: 1392:               }
        -:        -: 1393:            }
        -:        -: 1394:         }
        -:        -: 1395:      }
        -:        -: 1396:
    #####:    #####: 1397:      if (!$$.flags.i) {
    #####:    #####: 1398:         if (match_layout_qualifier($1, "early_fragment_tests", state) == 0) {
        -:        -: 1399:            /* From section 4.4.1.3 of the GLSL 4.50 specification
        -:        -: 1400:             * (Fragment Shader Inputs):
        -:        -: 1401:             *
        -:        -: 1402:             *  "Fragment shaders also allow the following layout
        -:        -: 1403:             *   qualifier on in only (not with variable declarations)
        -:        -: 1404:             *     layout-qualifier-id
        -:        -: 1405:             *        early_fragment_tests
        -:        -: 1406:             *   [...]"
        -:        -: 1407:             */
    #####:    #####: 1408:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 1409:               _mesa_glsl_error(& @1, state,
        -:        -: 1410:                                "early_fragment_tests layout qualifier only "
    #####:    #####: 1411:                                "valid in fragment shaders");
        -:        -: 1412:            }
        -:        -: 1413:
    #####:    #####: 1414:            $$.flags.q.early_fragment_tests = 1;
        -:        -: 1415:         }
        -:        -: 1416:
    #####:    #####: 1417:         if (match_layout_qualifier($1, "inner_coverage", state) == 0) {
    #####:    #####: 1418:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 1419:               _mesa_glsl_error(& @1, state,
        -:        -: 1420:                                "inner_coverage layout qualifier only "
    #####:    #####: 1421:                                "valid in fragment shaders");
        -:        -: 1422:            }
        -:        -: 1423:
    #####:    #####: 1424:	    if (state->INTEL_conservative_rasterization_enable) {
    #####:    #####: 1425:	       $$.flags.q.inner_coverage = 1;
        -:        -: 1426:	    } else {
        -:        -: 1427:	       _mesa_glsl_error(& @1, state,
        -:        -: 1428:                                "inner_coverage layout qualifier present, "
        -:        -: 1429:                                "but the INTEL_conservative_rasterization extension "
    #####:    #####: 1430:                                "is not enabled.");
        -:        -: 1431:            }
        -:        -: 1432:         }
        -:        -: 1433:
    #####:    #####: 1434:         if (match_layout_qualifier($1, "post_depth_coverage", state) == 0) {
    #####:    #####: 1435:            if (state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 1436:               _mesa_glsl_error(& @1, state,
        -:        -: 1437:                                "post_depth_coverage layout qualifier only "
    #####:    #####: 1438:                                "valid in fragment shaders");
        -:        -: 1439:            }
        -:        -: 1440:
    #####:    #####: 1441:            if (state->ARB_post_depth_coverage_enable ||
    #####:    #####: 1442:		state->INTEL_conservative_rasterization_enable) {
    #####:    #####: 1443:               $$.flags.q.post_depth_coverage = 1;
        -:        -: 1444:            } else {
        -:        -: 1445:               _mesa_glsl_error(& @1, state,
        -:        -: 1446:                                "post_depth_coverage layout qualifier present, "
        -:        -: 1447:                                "but the GL_ARB_post_depth_coverage extension "
    #####:    #####: 1448:                                "is not enabled.");
        -:        -: 1449:            }
        -:        -: 1450:         }
        -:        -: 1451:
    #####:    #####: 1452:         if ($$.flags.q.post_depth_coverage && $$.flags.q.inner_coverage) {
        -:        -: 1453:            _mesa_glsl_error(& @1, state,
        -:        -: 1454:                             "post_depth_coverage & inner_coverage layout qualifiers "
    #####:    #####: 1455:                             "are mutually exclusive");
        -:        -: 1456:         }
        -:        -: 1457:      }
        -:        -: 1458:
        -:        -: 1459:      /* Layout qualifiers for tessellation evaluation shaders. */
    #####:    #####: 1460:      if (!$$.flags.i) {
        -:        -: 1461:         static const struct {
        -:        -: 1462:            const char *s;
        -:        -: 1463:            GLenum e;
        -:        -: 1464:         } map[] = {
        -:        -: 1465:                 /* triangles already parsed by gs-specific code */
        -:        -: 1466:                 { "quads", GL_QUADS },
        -:        -: 1467:                 { "isolines", GL_ISOLINES },
        -:        -: 1468:         };
    #####:    #####: 1469:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
    #####:    #####: 1470:            if (match_layout_qualifier($1, map[i].s, state) == 0) {
    #####:    #####: 1471:               $$.flags.q.prim_type = 1;
    #####:    #####: 1472:               $$.prim_type = map[i].e;
    #####:    #####: 1473:               break;
        -:        -: 1474:            }
        -:        -: 1475:         }
        -:        -: 1476:
    #####:    #####: 1477:         if ($$.flags.i && !state->has_tessellation_shader()) {
    #####:    #####: 1478:            _mesa_glsl_error(& @1, state,
        -:        -: 1479:                             "primitive mode qualifier `%s' requires "
    #####:    #####: 1480:                             "GLSL 4.00 or ARB_tessellation_shader", $1);
        -:        -: 1481:         }
        -:        -: 1482:      }
    #####:    #####: 1483:      if (!$$.flags.i) {
        -:        -: 1484:         static const struct {
        -:        -: 1485:            const char *s;
        -:        -: 1486:            enum gl_tess_spacing e;
        -:        -: 1487:         } map[] = {
        -:        -: 1488:                 { "equal_spacing", TESS_SPACING_EQUAL },
        -:        -: 1489:                 { "fractional_odd_spacing", TESS_SPACING_FRACTIONAL_ODD },
        -:        -: 1490:                 { "fractional_even_spacing", TESS_SPACING_FRACTIONAL_EVEN },
        -:        -: 1491:         };
    #####:    #####: 1492:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
    #####:    #####: 1493:            if (match_layout_qualifier($1, map[i].s, state) == 0) {
    #####:    #####: 1494:               $$.flags.q.vertex_spacing = 1;
    #####:    #####: 1495:               $$.vertex_spacing = map[i].e;
    #####:    #####: 1496:               break;
        -:        -: 1497:            }
        -:        -: 1498:         }
        -:        -: 1499:
    #####:    #####: 1500:         if ($$.flags.i && !state->has_tessellation_shader()) {
    #####:    #####: 1501:            _mesa_glsl_error(& @1, state,
        -:        -: 1502:                             "vertex spacing qualifier `%s' requires "
    #####:    #####: 1503:                             "GLSL 4.00 or ARB_tessellation_shader", $1);
        -:        -: 1504:         }
        -:        -: 1505:      }
    #####:    #####: 1506:      if (!$$.flags.i) {
    #####:    #####: 1507:         if (match_layout_qualifier($1, "cw", state) == 0) {
    #####:    #####: 1508:            $$.flags.q.ordering = 1;
    #####:    #####: 1509:            $$.ordering = GL_CW;
    #####:    #####: 1510:         } else if (match_layout_qualifier($1, "ccw", state) == 0) {
    #####:    #####: 1511:            $$.flags.q.ordering = 1;
    #####:    #####: 1512:            $$.ordering = GL_CCW;
        -:        -: 1513:         }
        -:        -: 1514:
    #####:    #####: 1515:         if ($$.flags.i && !state->has_tessellation_shader()) {
    #####:    #####: 1516:            _mesa_glsl_error(& @1, state,
        -:        -: 1517:                             "ordering qualifier `%s' requires "
    #####:    #####: 1518:                             "GLSL 4.00 or ARB_tessellation_shader", $1);
        -:        -: 1519:         }
        -:        -: 1520:      }
    #####:    #####: 1521:      if (!$$.flags.i) {
    #####:    #####: 1522:         if (match_layout_qualifier($1, "point_mode", state) == 0) {
    #####:    #####: 1523:            $$.flags.q.point_mode = 1;
    #####:    #####: 1524:            $$.point_mode = true;
        -:        -: 1525:         }
        -:        -: 1526:
    #####:    #####: 1527:         if ($$.flags.i && !state->has_tessellation_shader()) {
        -:        -: 1528:            _mesa_glsl_error(& @1, state,
        -:        -: 1529:                             "qualifier `point_mode' requires "
    #####:    #####: 1530:                             "GLSL 4.00 or ARB_tessellation_shader");
        -:        -: 1531:         }
        -:        -: 1532:      }
        -:        -: 1533:
    #####:    #####: 1534:      if (!$$.flags.i) {
        -:        -: 1535:         static const struct {
        -:        -: 1536:            const char *s;
        -:        -: 1537:            uint32_t mask;
        -:        -: 1538:         } map[] = {
        -:        -: 1539:                 { "blend_support_multiply",       BLEND_MULTIPLY },
        -:        -: 1540:                 { "blend_support_screen",         BLEND_SCREEN },
        -:        -: 1541:                 { "blend_support_overlay",        BLEND_OVERLAY },
        -:        -: 1542:                 { "blend_support_darken",         BLEND_DARKEN },
        -:        -: 1543:                 { "blend_support_lighten",        BLEND_LIGHTEN },
        -:        -: 1544:                 { "blend_support_colordodge",     BLEND_COLORDODGE },
        -:        -: 1545:                 { "blend_support_colorburn",      BLEND_COLORBURN },
        -:        -: 1546:                 { "blend_support_hardlight",      BLEND_HARDLIGHT },
        -:        -: 1547:                 { "blend_support_softlight",      BLEND_SOFTLIGHT },
        -:        -: 1548:                 { "blend_support_difference",     BLEND_DIFFERENCE },
        -:        -: 1549:                 { "blend_support_exclusion",      BLEND_EXCLUSION },
        -:        -: 1550:                 { "blend_support_hsl_hue",        BLEND_HSL_HUE },
        -:        -: 1551:                 { "blend_support_hsl_saturation", BLEND_HSL_SATURATION },
        -:        -: 1552:                 { "blend_support_hsl_color",      BLEND_HSL_COLOR },
        -:        -: 1553:                 { "blend_support_hsl_luminosity", BLEND_HSL_LUMINOSITY },
        -:        -: 1554:                 { "blend_support_all_equations",  BLEND_ALL },
        -:        -: 1555:         };
    #####:    #####: 1556:         for (unsigned i = 0; i < ARRAY_SIZE(map); i++) {
    #####:    #####: 1557:            if (match_layout_qualifier($1, map[i].s, state) == 0) {
    #####:    #####: 1558:               $$.flags.q.blend_support = 1;
    #####:    #####: 1559:               state->fs_blend_support |= map[i].mask;
    #####:    #####: 1560:               break;
        -:        -: 1561:            }
        -:        -: 1562:         }
        -:        -: 1563:
    #####:    #####: 1564:         if ($$.flags.i &&
    #####:    #####: 1565:             !state->KHR_blend_equation_advanced_enable &&
    #####:    #####: 1566:             !state->is_version(0, 320)) {
        -:        -: 1567:            _mesa_glsl_error(& @1, state,
        -:        -: 1568:                             "advanced blending layout qualifiers require "
    #####:    #####: 1569:                             "ESSL 3.20 or KHR_blend_equation_advanced");
        -:        -: 1570:         }
        -:        -: 1571:
    #####:    #####: 1572:         if ($$.flags.i && state->stage != MESA_SHADER_FRAGMENT) {
        -:        -: 1573:            _mesa_glsl_error(& @1, state,
        -:        -: 1574:                             "advanced blending layout qualifiers only "
    #####:    #####: 1575:                             "valid in fragment shaders");
        -:        -: 1576:         }
        -:        -: 1577:      }
        -:        -: 1578:
        -:        -: 1579:      /* Layout qualifiers for ARB_compute_variable_group_size. */
    #####:    #####: 1580:      if (!$$.flags.i) {
    #####:    #####: 1581:         if (match_layout_qualifier($1, "local_size_variable", state) == 0) {
    #####:    #####: 1582:            $$.flags.q.local_size_variable = 1;
        -:        -: 1583:         }
        -:        -: 1584:
    #####:    #####: 1585:         if ($$.flags.i && !state->ARB_compute_variable_group_size_enable) {
        -:        -: 1586:            _mesa_glsl_error(& @1, state,
        -:        -: 1587:                             "qualifier `local_size_variable` requires "
    #####:    #####: 1588:                             "ARB_compute_variable_group_size");
        -:        -: 1589:         }
        -:        -: 1590:      }
        -:        -: 1591:
    #####:    #####: 1592:      if (!$$.flags.i) {
    #####:    #####: 1593:         _mesa_glsl_error(& @1, state, "unrecognized layout identifier "
    #####:    #####: 1594:                          "`%s'", $1);
    #####:    #####: 1595:         YYERROR;
        -:        -: 1596:      }
        -:        -: 1597:   }
        -:        -: 1598:   | any_identifier '=' constant_expression
        -:        -: 1599:   {
    #####:    #####: 1600:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1601:      void *ctx = state->linalloc;
        -:        -: 1602:
    #####:    #####: 1603:      if ($3->oper != ast_int_constant &&
    #####:    #####: 1604:          $3->oper != ast_uint_constant &&
    #####:    #####: 1605:          !state->has_enhanced_layouts()) {
    #####:    #####: 1606:         _mesa_glsl_error(& @1, state,
        -:        -: 1607:                          "compile-time constant expressions require "
    #####:    #####: 1608:                          "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 1609:      }
        -:        -: 1610:
    #####:    #####: 1611:      if (match_layout_qualifier("align", $1, state) == 0) {
    #####:    #####: 1612:         if (!state->has_enhanced_layouts()) {
    #####:    #####: 1613:            _mesa_glsl_error(& @1, state,
        -:        -: 1614:                             "align qualifier requires "
    #####:    #####: 1615:                             "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 1616:         } else {
    #####:    #####: 1617:            $$.flags.q.explicit_align = 1;
    #####:    #####: 1618:            $$.align = $3;
        -:        -: 1619:         }
        -:        -: 1620:      }
        -:        -: 1621:
    #####:    #####: 1622:      if (match_layout_qualifier("location", $1, state) == 0) {
    #####:    #####: 1623:         $$.flags.q.explicit_location = 1;
        -:        -: 1624:
    #####:    #####: 1625:         if ($$.flags.q.attribute == 1 &&
    #####:    #####: 1626:             state->ARB_explicit_attrib_location_warn) {
    #####:    #####: 1627:            _mesa_glsl_warning(& @1, state,
        -:        -: 1628:                               "GL_ARB_explicit_attrib_location layout "
    #####:    #####: 1629:                               "identifier `%s' used", $1);
        -:        -: 1630:         }
    #####:    #####: 1631:         $$.location = $3;
        -:        -: 1632:      }
        -:        -: 1633:
    #####:    #####: 1634:      if (match_layout_qualifier("component", $1, state) == 0) {
    #####:    #####: 1635:         if (!state->has_enhanced_layouts()) {
    #####:    #####: 1636:            _mesa_glsl_error(& @1, state,
        -:        -: 1637:                             "component qualifier requires "
    #####:    #####: 1638:                             "GLSL 4.40 or ARB_enhanced_layouts");
        -:        -: 1639:         } else {
    #####:    #####: 1640:            $$.flags.q.explicit_component = 1;
    #####:    #####: 1641:            $$.component = $3;
        -:        -: 1642:         }
        -:        -: 1643:      }
        -:        -: 1644:
    #####:    #####: 1645:      if (match_layout_qualifier("index", $1, state) == 0) {
    #####:    #####: 1646:         if (state->es_shader && !state->EXT_blend_func_extended_enable) {
    #####:    #####: 1647:            _mesa_glsl_error(& @3, state, "index layout qualifier requires EXT_blend_func_extended");
    #####:    #####: 1648:            YYERROR;
        -:        -: 1649:         }
        -:        -: 1650:
    #####:    #####: 1651:         $$.flags.q.explicit_index = 1;
    #####:    #####: 1652:         $$.index = $3;
        -:        -: 1653:      }
        -:        -: 1654:
    #####:    #####: 1655:      if ((state->has_420pack_or_es31() ||
    #####:    #####: 1656:           state->has_atomic_counters() ||
    #####:    #####: 1657:           state->has_shader_storage_buffer_objects()) &&
    #####:    #####: 1658:          match_layout_qualifier("binding", $1, state) == 0) {
    #####:    #####: 1659:         $$.flags.q.explicit_binding = 1;
    #####:    #####: 1660:         $$.binding = $3;
        -:        -: 1661:      }
        -:        -: 1662:
    #####:    #####: 1663:      if ((state->has_atomic_counters() ||
    #####:    #####: 1664:           state->has_enhanced_layouts()) &&
    #####:    #####: 1665:          match_layout_qualifier("offset", $1, state) == 0) {
    #####:    #####: 1666:         $$.flags.q.explicit_offset = 1;
    #####:    #####: 1667:         $$.offset = $3;
        -:        -: 1668:      }
        -:        -: 1669:
    #####:    #####: 1670:      if (match_layout_qualifier("max_vertices", $1, state) == 0) {
    #####:    #####: 1671:         $$.flags.q.max_vertices = 1;
    #####:    #####: 1672:         $$.max_vertices = new(ctx) ast_layout_expression(@1, $3);
    #####:    #####: 1673:         if (!state->has_geometry_shader()) {
    #####:    #####: 1674:            _mesa_glsl_error(& @3, state,
        -:        -: 1675:                             "#version 150 max_vertices qualifier "
    #####:    #####: 1676:                             "specified", $3);
        -:        -: 1677:         }
        -:        -: 1678:      }
        -:        -: 1679:
    #####:    #####: 1680:      if (state->stage == MESA_SHADER_GEOMETRY) {
    #####:    #####: 1681:         if (match_layout_qualifier("stream", $1, state) == 0 &&
    #####:    #####: 1682:             state->check_explicit_attrib_stream_allowed(& @3)) {
    #####:    #####: 1683:            $$.flags.q.stream = 1;
    #####:    #####: 1684:            $$.flags.q.explicit_stream = 1;
    #####:    #####: 1685:            $$.stream = $3;
        -:        -: 1686:         }
        -:        -: 1687:      }
        -:        -: 1688:
    #####:    #####: 1689:      if (state->has_enhanced_layouts()) {
    #####:    #####: 1690:         if (match_layout_qualifier("xfb_buffer", $1, state) == 0) {
    #####:    #####: 1691:            $$.flags.q.xfb_buffer = 1;
    #####:    #####: 1692:            $$.flags.q.explicit_xfb_buffer = 1;
    #####:    #####: 1693:            $$.xfb_buffer = $3;
        -:        -: 1694:         }
        -:        -: 1695:
    #####:    #####: 1696:         if (match_layout_qualifier("xfb_offset", $1, state) == 0) {
    #####:    #####: 1697:            $$.flags.q.explicit_xfb_offset = 1;
    #####:    #####: 1698:            $$.offset = $3;
        -:        -: 1699:         }
        -:        -: 1700:
    #####:    #####: 1701:         if (match_layout_qualifier("xfb_stride", $1, state) == 0) {
    #####:    #####: 1702:            $$.flags.q.xfb_stride = 1;
    #####:    #####: 1703:            $$.flags.q.explicit_xfb_stride = 1;
    #####:    #####: 1704:            $$.xfb_stride = $3;
        -:        -: 1705:         }
        -:        -: 1706:      }
        -:        -: 1707:
        -:        -: 1708:      static const char * const local_size_qualifiers[3] = {
        -:        -: 1709:         "local_size_x",
        -:        -: 1710:         "local_size_y",
        -:        -: 1711:         "local_size_z",
        -:        -: 1712:      };
    #####:    #####: 1713:      for (int i = 0; i < 3; i++) {
    #####:    #####: 1714:         if (match_layout_qualifier(local_size_qualifiers[i], $1,
        -:        -: 1715:                                    state) == 0) {
    #####:    #####: 1716:            if (!state->has_compute_shader()) {
        -:        -: 1717:               _mesa_glsl_error(& @3, state,
        -:        -: 1718:                                "%s qualifier requires GLSL 4.30 or "
        -:        -: 1719:                                "GLSL ES 3.10 or ARB_compute_shader",
    #####:    #####: 1720:                                local_size_qualifiers[i]);
    #####:    #####: 1721:               YYERROR;
        -:        -: 1722:            } else {
    #####:    #####: 1723:               $$.flags.q.local_size |= (1 << i);
    #####:    #####: 1724:               $$.local_size[i] = new(ctx) ast_layout_expression(@1, $3);
        -:        -: 1725:            }
    #####:    #####: 1726:            break;
        -:        -: 1727:         }
        -:        -: 1728:      }
        -:        -: 1729:
    #####:    #####: 1730:      if (match_layout_qualifier("invocations", $1, state) == 0) {
    #####:    #####: 1731:         $$.flags.q.invocations = 1;
    #####:    #####: 1732:         $$.invocations = new(ctx) ast_layout_expression(@1, $3);
    #####:    #####: 1733:         if (!state->is_version(400, 320) &&
    #####:    #####: 1734:             !state->ARB_gpu_shader5_enable &&
    #####:    #####: 1735:             !state->OES_geometry_shader_enable &&
    #####:    #####: 1736:             !state->EXT_geometry_shader_enable) {
    #####:    #####: 1737:            _mesa_glsl_error(& @3, state,
        -:        -: 1738:                             "GL_ARB_gpu_shader5 invocations "
    #####:    #####: 1739:                             "qualifier specified", $3);
        -:        -: 1740:         }
        -:        -: 1741:      }
        -:        -: 1742:
        -:        -: 1743:      /* Layout qualifiers for tessellation control shaders. */
    #####:    #####: 1744:      if (match_layout_qualifier("vertices", $1, state) == 0) {
    #####:    #####: 1745:         $$.flags.q.vertices = 1;
    #####:    #####: 1746:         $$.vertices = new(ctx) ast_layout_expression(@1, $3);
    #####:    #####: 1747:         if (!state->has_tessellation_shader()) {
    #####:    #####: 1748:            _mesa_glsl_error(& @1, state,
        -:        -: 1749:                             "vertices qualifier requires GLSL 4.00 or "
    #####:    #####: 1750:                             "ARB_tessellation_shader");
        -:        -: 1751:         }
        -:        -: 1752:      }
        -:        -: 1753:
        -:        -: 1754:      /* If the identifier didn't match any known layout identifiers,
        -:        -: 1755:       * emit an error.
        -:        -: 1756:       */
    #####:    #####: 1757:      if (!$$.flags.i) {
    #####:    #####: 1758:         _mesa_glsl_error(& @1, state, "unrecognized layout identifier "
    #####:    #####: 1759:                          "`%s'", $1);
    #####:    #####: 1760:         YYERROR;
        -:        -: 1761:      }
        -:        -: 1762:   }
        -:        -: 1763:   | interface_block_layout_qualifier
        -:        -: 1764:   {
    #####:    #####: 1765:      $$ = $1;
        -:        -: 1766:      /* Layout qualifiers for ARB_uniform_buffer_object. */
    #####:    #####: 1767:      if ($$.flags.q.uniform && !state->has_uniform_buffer_objects()) {
        -:        -: 1768:         _mesa_glsl_error(& @1, state,
        -:        -: 1769:                          "#version 140 / GL_ARB_uniform_buffer_object "
    #####:    #####: 1770:                          "layout qualifier `%s' is used", $1);
    #####:    #####: 1771:      } else if ($$.flags.q.uniform && state->ARB_uniform_buffer_object_warn) {
        -:        -: 1772:         _mesa_glsl_warning(& @1, state,
        -:        -: 1773:                            "#version 140 / GL_ARB_uniform_buffer_object "
    #####:    #####: 1774:                            "layout qualifier `%s' is used", $1);
        -:        -: 1775:      }
        -:        -: 1776:   }
        -:        -: 1777:   ;
        -:        -: 1778:
        -:        -: 1779:/* This is a separate language rule because we parse these as tokens
        -:        -: 1780: * (due to them being reserved keywords) instead of identifiers like
        -:        -: 1781: * most qualifiers.  See the any_identifier path of
        -:        -: 1782: * layout_qualifier_id for the others.
        -:        -: 1783: *
        -:        -: 1784: * Note that since layout qualifiers are case-insensitive in desktop
        -:        -: 1785: * GLSL, all of these qualifiers need to be handled as identifiers as
        -:        -: 1786: * well (by the any_identifier path of layout_qualifier_id).
        -:        -: 1787: */
        -:        -: 1788:interface_block_layout_qualifier:
        -:        -: 1789:   ROW_MAJOR
        -:        -: 1790:   {
    #####:    #####: 1791:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1792:      $$.flags.q.row_major = 1;
        -:        -: 1793:   }
        -:        -: 1794:   | PACKED_TOK
        -:        -: 1795:   {
    #####:    #####: 1796:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1797:      $$.flags.q.packed = 1;
        -:        -: 1798:   }
        -:        -: 1799:   | SHARED
        -:        -: 1800:   {
    #####:    #####: 1801:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1802:      $$.flags.q.shared = 1;
        -:        -: 1803:   }
        -:        -: 1804:   ;
        -:        -: 1805:
        -:        -: 1806:subroutine_qualifier:
        -:        -: 1807:   SUBROUTINE
        -:        -: 1808:   {
    #####:    #####: 1809:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1810:      $$.flags.q.subroutine = 1;
        -:        -: 1811:   }
        -:        -: 1812:   | SUBROUTINE '(' subroutine_type_list ')'
        -:        -: 1813:   {
    #####:    #####: 1814:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1815:      $$.flags.q.subroutine = 1;
    #####:    #####: 1816:      $$.subroutine_list = $3;
        -:        -: 1817:   }
        -:        -: 1818:   ;
        -:        -: 1819:
        -:        -: 1820:subroutine_type_list:
        -:        -: 1821:   any_identifier
        -:        -: 1822:   {
    #####:    #####: 1823:        void *ctx = state->linalloc;
    #####:    #####: 1824:        ast_declaration *decl = new(ctx)  ast_declaration($1, NULL, NULL);
    #####:    #####: 1825:        decl->set_location(@1);
        -:        -: 1826:
    #####:    #####: 1827:        $$ = new(ctx) ast_subroutine_list();
    #####:    #####: 1828:        $$->declarations.push_tail(&decl->link);
        -:        -: 1829:   }
        -:        -: 1830:   | subroutine_type_list ',' any_identifier
        -:        -: 1831:   {
    #####:    #####: 1832:        void *ctx = state->linalloc;
    #####:    #####: 1833:        ast_declaration *decl = new(ctx)  ast_declaration($3, NULL, NULL);
    #####:    #####: 1834:        decl->set_location(@3);
        -:        -: 1835:
    #####:    #####: 1836:        $$ = $1;
    #####:    #####: 1837:        $$->declarations.push_tail(&decl->link);
        -:        -: 1838:   }
        -:        -: 1839:   ;
        -:        -: 1840:
        -:        -: 1841:interpolation_qualifier:
        -:        -: 1842:   SMOOTH
        -:        -: 1843:   {
    #####:    #####: 1844:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1845:      $$.flags.q.smooth = 1;
        -:        -: 1846:   }
        -:        -: 1847:   | FLAT
        -:        -: 1848:   {
    #####:    #####: 1849:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1850:      $$.flags.q.flat = 1;
        -:        -: 1851:   }
        -:        -: 1852:   | NOPERSPECTIVE
        -:        -: 1853:   {
    #####:    #####: 1854:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1855:      $$.flags.q.noperspective = 1;
        -:        -: 1856:   }
        -:        -: 1857:   ;
        -:        -: 1858:
        -:        -: 1859:type_qualifier:
        -:        -: 1860:   /* Single qualifiers */
        -:        -: 1861:   INVARIANT
        -:        -: 1862:   {
    #####:    #####: 1863:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1864:      $$.flags.q.invariant = 1;
        -:        -: 1865:   }
        -:        -: 1866:   | PRECISE
        -:        -: 1867:   {
    #####:    #####: 1868:      memset(& $$, 0, sizeof($$));
    #####:    #####: 1869:      $$.flags.q.precise = 1;
        -:        -: 1870:   }
        -:        -: 1871:   | auxiliary_storage_qualifier
        -:        -: 1872:   | storage_qualifier
        -:        -: 1873:   | interpolation_qualifier
        -:        -: 1874:   | layout_qualifier
        -:        -: 1875:   | memory_qualifier
        -:        -: 1876:   | subroutine_qualifier
        -:        -: 1877:   | precision_qualifier
        -:        -: 1878:   {
    #####:    #####: 1879:      memset(&$$, 0, sizeof($$));
    #####:    #####: 1880:      $$.precision = $1;
        -:        -: 1881:   }
        -:        -: 1882:
        -:        -: 1883:   /* Multiple qualifiers:
        -:        -: 1884:    * In GLSL 4.20, these can be specified in any order.  In earlier versions,
        -:        -: 1885:    * they appear in this order (see GLSL 1.50 section 4.7 & comments below):
        -:        -: 1886:    *
        -:        -: 1887:    *    invariant interpolation auxiliary storage precision  ...or...
        -:        -: 1888:    *    layout storage precision
        -:        -: 1889:    *
        -:        -: 1890:    * Each qualifier's rule ensures that the accumulated qualifiers on the right
        -:        -: 1891:    * side don't contain any that must appear on the left hand side.
        -:        -: 1892:    * For example, when processing a storage qualifier, we check that there are
        -:        -: 1893:    * no auxiliary, interpolation, layout, invariant, or precise qualifiers to the right.
        -:        -: 1894:    */
        -:        -: 1895:   | PRECISE type_qualifier
        -:        -: 1896:   {
    #####:    #####: 1897:      if ($2.flags.q.precise)
    #####:    #####: 1898:         _mesa_glsl_error(&@1, state, "duplicate \"precise\" qualifier");
        -:        -: 1899:
    #####:    #####: 1900:      $$ = $2;
    #####:    #####: 1901:      $$.flags.q.precise = 1;
        -:        -: 1902:   }
        -:        -: 1903:   | INVARIANT type_qualifier
        -:        -: 1904:   {
    #####:    #####: 1905:      if ($2.flags.q.invariant)
    #####:    #####: 1906:         _mesa_glsl_error(&@1, state, "duplicate \"invariant\" qualifier");
        -:        -: 1907:
    #####:    #####: 1908:      if (!state->has_420pack_or_es31() && $2.flags.q.precise)
    #####:    #####: 1909:         _mesa_glsl_error(&@1, state,
    #####:    #####: 1910:                          "\"invariant\" must come after \"precise\"");
        -:        -: 1911:
    #####:    #####: 1912:      $$ = $2;
    #####:    #####: 1913:      $$.flags.q.invariant = 1;
        -:        -: 1914:
        -:        -: 1915:      /* GLSL ES 3.00 spec, section 4.6.1 "The Invariant Qualifier":
        -:        -: 1916:       *
        -:        -: 1917:       * "Only variables output from a shader can be candidates for invariance.
        -:        -: 1918:       * This includes user-defined output variables and the built-in output
        -:        -: 1919:       * variables. As only outputs can be declared as invariant, an invariant
        -:        -: 1920:       * output from one shader stage will still match an input of a subsequent
        -:        -: 1921:       * stage without the input being declared as invariant."
        -:        -: 1922:       *
        -:        -: 1923:       * On the desktop side, this text first appears in GLSL 4.30.
        -:        -: 1924:       */
    #####:    #####: 1925:      if (state->is_version(430, 300) && $$.flags.q.in)
    #####:    #####: 1926:         _mesa_glsl_error(&@1, state, "invariant qualifiers cannot be used with shader inputs");
        -:        -: 1927:   }
        -:        -: 1928:   | interpolation_qualifier type_qualifier
        -:        -: 1929:   {
        -:        -: 1930:      /* Section 4.3 of the GLSL 1.40 specification states:
        -:        -: 1931:       * "...qualified with one of these interpolation qualifiers"
        -:        -: 1932:       *
        -:        -: 1933:       * GLSL 1.30 claims to allow "one or more", but insists that:
        -:        -: 1934:       * "These interpolation qualifiers may only precede the qualifiers in,
        -:        -: 1935:       *  centroid in, out, or centroid out in a declaration."
        -:        -: 1936:       *
        -:        -: 1937:       * ...which means that e.g. smooth can't precede smooth, so there can be
        -:        -: 1938:       * only one after all, and the 1.40 text is a clarification, not a change.
        -:        -: 1939:       */
    #####:    #####: 1940:      if ($2.has_interpolation())
    #####:    #####: 1941:         _mesa_glsl_error(&@1, state, "duplicate interpolation qualifier");
        -:        -: 1942:
    #####:    #####: 1943:      if (!state->has_420pack_or_es31() &&
    #####:    #####: 1944:          ($2.flags.q.precise || $2.flags.q.invariant)) {
    #####:    #####: 1945:         _mesa_glsl_error(&@1, state, "interpolation qualifiers must come "
    #####:    #####: 1946:                          "after \"precise\" or \"invariant\"");
        -:        -: 1947:      }
        -:        -: 1948:
    #####:    #####: 1949:      $$ = $1;
    #####:    #####: 1950:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 1951:   }
        -:        -: 1952:   | layout_qualifier type_qualifier
        -:        -: 1953:   {
        -:        -: 1954:      /* In the absence of ARB_shading_language_420pack, layout qualifiers may
        -:        -: 1955:       * appear no later than auxiliary storage qualifiers. There is no
        -:        -: 1956:       * particularly clear spec language mandating this, but in all examples
        -:        -: 1957:       * the layout qualifier precedes the storage qualifier.
        -:        -: 1958:       *
        -:        -: 1959:       * We allow combinations of layout with interpolation, invariant or
        -:        -: 1960:       * precise qualifiers since these are useful in ARB_separate_shader_objects.
        -:        -: 1961:       * There is no clear spec guidance on this either.
        -:        -: 1962:       */
    #####:    #####: 1963:      $$ = $1;
    #####:    #####: 1964:      $$.merge_qualifier(& @1, state, $2, false, $2.has_layout());
        -:        -: 1965:   }
        -:        -: 1966:   | subroutine_qualifier type_qualifier
        -:        -: 1967:   {
    #####:    #####: 1968:      $$ = $1;
    #####:    #####: 1969:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 1970:   }
        -:        -: 1971:   | auxiliary_storage_qualifier type_qualifier
        -:        -: 1972:   {
    #####:    #####: 1973:      if ($2.has_auxiliary_storage()) {
    #####:    #####: 1974:         _mesa_glsl_error(&@1, state,
    #####:    #####: 1975:                          "duplicate auxiliary storage qualifier (centroid or sample)");
        -:        -: 1976:      }
        -:        -: 1977:
    #####:    #####: 1978:      if (!state->has_420pack_or_es31() &&
    #####:    #####: 1979:          ($2.flags.q.precise || $2.flags.q.invariant ||
    #####:    #####: 1980:           $2.has_interpolation() || $2.has_layout())) {
    #####:    #####: 1981:         _mesa_glsl_error(&@1, state, "auxiliary storage qualifiers must come "
    #####:    #####: 1982:                          "just before storage qualifiers");
        -:        -: 1983:      }
    #####:    #####: 1984:      $$ = $1;
    #####:    #####: 1985:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 1986:   }
        -:        -: 1987:   | storage_qualifier type_qualifier
        -:        -: 1988:   {
        -:        -: 1989:      /* Section 4.3 of the GLSL 1.20 specification states:
        -:        -: 1990:       * "Variable declarations may have a storage qualifier specified..."
        -:        -: 1991:       *  1.30 clarifies this to "may have one storage qualifier".
        -:        -: 1992:       */
    #####:    #####: 1993:      if ($2.has_storage())
    #####:    #####: 1994:         _mesa_glsl_error(&@1, state, "duplicate storage qualifier");
        -:        -: 1995:
    #####:    #####: 1996:      if (!state->has_420pack_or_es31() &&
    #####:    #####: 1997:          ($2.flags.q.precise || $2.flags.q.invariant || $2.has_interpolation() ||
    #####:    #####: 1998:           $2.has_layout() || $2.has_auxiliary_storage())) {
    #####:    #####: 1999:         _mesa_glsl_error(&@1, state, "storage qualifiers must come after "
        -:        -: 2000:                          "precise, invariant, interpolation, layout and auxiliary "
    #####:    #####: 2001:                          "storage qualifiers");
        -:        -: 2002:      }
        -:        -: 2003:
    #####:    #####: 2004:      $$ = $1;
    #####:    #####: 2005:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 2006:   }
        -:        -: 2007:   | precision_qualifier type_qualifier
        -:        -: 2008:   {
    #####:    #####: 2009:      if ($2.precision != ast_precision_none)
    #####:    #####: 2010:         _mesa_glsl_error(&@1, state, "duplicate precision qualifier");
        -:        -: 2011:
    #####:    #####: 2012:      if (!(state->has_420pack_or_es31()) &&
    #####:    #####: 2013:          $2.flags.i != 0)
    #####:    #####: 2014:         _mesa_glsl_error(&@1, state, "precision qualifiers must come last");
        -:        -: 2015:
    #####:    #####: 2016:      $$ = $2;
    #####:    #####: 2017:      $$.precision = $1;
        -:        -: 2018:   }
        -:        -: 2019:   | memory_qualifier type_qualifier
        -:        -: 2020:   {
    #####:    #####: 2021:      $$ = $1;
    #####:    #####: 2022:      $$.merge_qualifier(&@1, state, $2, false);
        -:        -: 2023:   }
        -:        -: 2024:   ;
        -:        -: 2025:
        -:        -: 2026:auxiliary_storage_qualifier:
        -:        -: 2027:   CENTROID
        -:        -: 2028:   {
    #####:    #####: 2029:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2030:      $$.flags.q.centroid = 1;
        -:        -: 2031:   }
        -:        -: 2032:   | SAMPLE
        -:        -: 2033:   {
    #####:    #####: 2034:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2035:      $$.flags.q.sample = 1;
        -:        -: 2036:   }
        -:        -: 2037:   | PATCH
        -:        -: 2038:   {
    #####:    #####: 2039:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2040:      $$.flags.q.patch = 1;
        -:        -: 2041:   }
        -:        -: 2042:
        -:        -: 2043:storage_qualifier:
        -:        -: 2044:   CONST_TOK
        -:        -: 2045:   {
    #####:    #####: 2046:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2047:      $$.flags.q.constant = 1;
        -:        -: 2048:   }
        -:        -: 2049:   | ATTRIBUTE
        -:        -: 2050:   {
        1:        1: 2051:      memset(& $$, 0, sizeof($$));
        1:        1: 2052:      $$.flags.q.attribute = 1;
        -:        -: 2053:   }
        -:        -: 2054:   | VARYING
        -:        -: 2055:   {
    #####:    #####: 2056:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2057:      $$.flags.q.varying = 1;
        -:        -: 2058:   }
        -:        -: 2059:   | IN_TOK
        -:        -: 2060:   {
    #####:    #####: 2061:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2062:      $$.flags.q.in = 1;
        -:        -: 2063:   }
        -:        -: 2064:   | OUT_TOK
        -:        -: 2065:   {
    #####:    #####: 2066:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2067:      $$.flags.q.out = 1;
        -:        -: 2068:
    #####:    #####: 2069:      if (state->stage == MESA_SHADER_GEOMETRY &&
    #####:    #####: 2070:          state->has_explicit_attrib_stream()) {
        -:        -: 2071:         /* Section 4.3.8.2 (Output Layout Qualifiers) of the GLSL 4.00
        -:        -: 2072:          * spec says:
        -:        -: 2073:          *
        -:        -: 2074:          *     "If the block or variable is declared with the stream
        -:        -: 2075:          *     identifier, it is associated with the specified stream;
        -:        -: 2076:          *     otherwise, it is associated with the current default stream."
        -:        -: 2077:          */
    #####:    #####: 2078:          $$.flags.q.stream = 1;
    #####:    #####: 2079:          $$.flags.q.explicit_stream = 0;
    #####:    #####: 2080:          $$.stream = state->out_qualifier->stream;
        -:        -: 2081:      }
        -:        -: 2082:
    #####:    #####: 2083:      if (state->has_enhanced_layouts()) {
    #####:    #####: 2084:          $$.flags.q.xfb_buffer = 1;
    #####:    #####: 2085:          $$.flags.q.explicit_xfb_buffer = 0;
    #####:    #####: 2086:          $$.xfb_buffer = state->out_qualifier->xfb_buffer;
        -:        -: 2087:      }
        -:        -: 2088:   }
        -:        -: 2089:   | INOUT_TOK
        -:        -: 2090:   {
    #####:    #####: 2091:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2092:      $$.flags.q.in = 1;
    #####:    #####: 2093:      $$.flags.q.out = 1;
        -:        -: 2094:
    #####:    #####: 2095:      if (!state->has_framebuffer_fetch() ||
    #####:    #####: 2096:          !state->is_version(130, 300) ||
    #####:    #####: 2097:          state->stage != MESA_SHADER_FRAGMENT)
        -:        -: 2098:         _mesa_glsl_error(&@1, state, "A single interface variable cannot be "
    #####:    #####: 2099:                          "declared as both input and output");
        -:        -: 2100:   }
        -:        -: 2101:   | UNIFORM
        -:        -: 2102:   {
        2:        2: 2103:      memset(& $$, 0, sizeof($$));
        2:        2: 2104:      $$.flags.q.uniform = 1;
        -:        -: 2105:   }
        -:        -: 2106:   | BUFFER
        -:        -: 2107:   {
    #####:    #####: 2108:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2109:      $$.flags.q.buffer = 1;
        -:        -: 2110:   }
        -:        -: 2111:   | SHARED
        -:        -: 2112:   {
    #####:    #####: 2113:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2114:      $$.flags.q.shared_storage = 1;
        -:        -: 2115:   }
        -:        -: 2116:   ;
        -:        -: 2117:
        -:        -: 2118:memory_qualifier:
        -:        -: 2119:   COHERENT
        -:        -: 2120:   {
    #####:    #####: 2121:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2122:      $$.flags.q.coherent = 1;
        -:        -: 2123:   }
        -:        -: 2124:   | VOLATILE
        -:        -: 2125:   {
    #####:    #####: 2126:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2127:      $$.flags.q._volatile = 1;
        -:        -: 2128:   }
        -:        -: 2129:   | RESTRICT
        -:        -: 2130:   {
        -:        -: 2131:      STATIC_ASSERT(sizeof($$.flags.q) <= sizeof($$.flags.i));
    #####:    #####: 2132:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2133:      $$.flags.q.restrict_flag = 1;
        -:        -: 2134:   }
        -:        -: 2135:   | READONLY
        -:        -: 2136:   {
    #####:    #####: 2137:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2138:      $$.flags.q.read_only = 1;
        -:        -: 2139:   }
        -:        -: 2140:   | WRITEONLY
        -:        -: 2141:   {
    #####:    #####: 2142:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2143:      $$.flags.q.write_only = 1;
        -:        -: 2144:   }
        -:        -: 2145:   ;
        -:        -: 2146:
        -:        -: 2147:array_specifier:
        -:        -: 2148:   '[' ']'
        -:        -: 2149:   {
    #####:    #####: 2150:      void *ctx = state->linalloc;
        -:        -: 2151:      $$ = new(ctx) ast_array_specifier(@1, new(ctx) ast_expression(
        -:        -: 2152:                                                  ast_unsized_array_dim, NULL,
    #####:    #####: 2153:                                                  NULL, NULL));
    #####:    #####: 2154:      $$->set_location_range(@1, @2);
        -:        -: 2155:   }
        -:        -: 2156:   | '[' constant_expression ']'
        -:        -: 2157:   {
        1:        1: 2158:      void *ctx = state->linalloc;
        1:        1: 2159:      $$ = new(ctx) ast_array_specifier(@1, $2);
        1:        1: 2160:      $$->set_location_range(@1, @3);
        -:        -: 2161:   }
        -:        -: 2162:   | array_specifier '[' ']'
        -:        -: 2163:   {
    #####:    #####: 2164:      void *ctx = state->linalloc;
    #####:    #####: 2165:      $$ = $1;
        -:        -: 2166:
    #####:    #####: 2167:      if (state->check_arrays_of_arrays_allowed(& @1)) {
    #####:    #####: 2168:         $$->add_dimension(new(ctx) ast_expression(ast_unsized_array_dim, NULL,
    #####:    #####: 2169:                                                   NULL, NULL));
        -:        -: 2170:      }
        -:        -: 2171:   }
        -:        -: 2172:   | array_specifier '[' constant_expression ']'
        -:        -: 2173:   {
    #####:    #####: 2174:      $$ = $1;
        -:        -: 2175:
    #####:    #####: 2176:      if (state->check_arrays_of_arrays_allowed(& @1)) {
    #####:    #####: 2177:         $$->add_dimension($3);
        -:        -: 2178:      }
        -:        -: 2179:   }
        -:        -: 2180:   ;
        -:        -: 2181:
        -:        -: 2182:type_specifier:
        -:        -: 2183:   type_specifier_nonarray
        -:        -: 2184:   | type_specifier_nonarray array_specifier
        -:        -: 2185:   {
    #####:    #####: 2186:      $$ = $1;
    #####:    #####: 2187:      $$->array_specifier = $2;
        -:        -: 2188:   }
        -:        -: 2189:   ;
        -:        -: 2190:
        -:        -: 2191:type_specifier_nonarray:
        -:        -: 2192:   basic_type_specifier_nonarray
        -:        -: 2193:   {
       18:       18: 2194:      void *ctx = state->linalloc;
       18:       18: 2195:      $$ = new(ctx) ast_type_specifier($1);
       18:       18: 2196:      $$->set_location(@1);
        -:        -: 2197:   }
        -:        -: 2198:   | struct_specifier
        -:        -: 2199:   {
    #####:    #####: 2200:      void *ctx = state->linalloc;
    #####:    #####: 2201:      $$ = new(ctx) ast_type_specifier($1);
    #####:    #####: 2202:      $$->set_location(@1);
        -:        -: 2203:   }
        -:        -: 2204:   | TYPE_IDENTIFIER
        -:        -: 2205:   {
    #####:    #####: 2206:      void *ctx = state->linalloc;
    #####:    #####: 2207:      $$ = new(ctx) ast_type_specifier($1);
    #####:    #####: 2208:      $$->set_location(@1);
        -:        -: 2209:   }
        -:        -: 2210:   ;
        -:        -: 2211:
        -:        -: 2212:basic_type_specifier_nonarray:
        3:        3: 2213:   VOID_TOK                 { $$ = "void"; }
        8:        8: 2214:   | FLOAT_TOK              { $$ = "float"; }
    #####:    #####: 2215:   | DOUBLE_TOK             { $$ = "double"; }
        2:        2: 2216:   | INT_TOK                { $$ = "int"; }
    #####:    #####: 2217:   | UINT_TOK               { $$ = "uint"; }
    #####:    #####: 2218:   | BOOL_TOK               { $$ = "bool"; }
        2:        2: 2219:   | VEC2                   { $$ = "vec2"; }
    #####:    #####: 2220:   | VEC3                   { $$ = "vec3"; }
        3:        3: 2221:   | VEC4                   { $$ = "vec4"; }
    #####:    #####: 2222:   | BVEC2                  { $$ = "bvec2"; }
    #####:    #####: 2223:   | BVEC3                  { $$ = "bvec3"; }
    #####:    #####: 2224:   | BVEC4                  { $$ = "bvec4"; }
    #####:    #####: 2225:   | IVEC2                  { $$ = "ivec2"; }
    #####:    #####: 2226:   | IVEC3                  { $$ = "ivec3"; }
    #####:    #####: 2227:   | IVEC4                  { $$ = "ivec4"; }
    #####:    #####: 2228:   | UVEC2                  { $$ = "uvec2"; }
    #####:    #####: 2229:   | UVEC3                  { $$ = "uvec3"; }
    #####:    #####: 2230:   | UVEC4                  { $$ = "uvec4"; }
    #####:    #####: 2231:   | DVEC2                  { $$ = "dvec2"; }
    #####:    #####: 2232:   | DVEC3                  { $$ = "dvec3"; }
    #####:    #####: 2233:   | DVEC4                  { $$ = "dvec4"; }
    #####:    #####: 2234:   | MAT2X2                 { $$ = "mat2"; }
    #####:    #####: 2235:   | MAT2X3                 { $$ = "mat2x3"; }
    #####:    #####: 2236:   | MAT2X4                 { $$ = "mat2x4"; }
    #####:    #####: 2237:   | MAT3X2                 { $$ = "mat3x2"; }
    #####:    #####: 2238:   | MAT3X3                 { $$ = "mat3"; }
    #####:    #####: 2239:   | MAT3X4                 { $$ = "mat3x4"; }
    #####:    #####: 2240:   | MAT4X2                 { $$ = "mat4x2"; }
    #####:    #####: 2241:   | MAT4X3                 { $$ = "mat4x3"; }
    #####:    #####: 2242:   | MAT4X4                 { $$ = "mat4"; }
    #####:    #####: 2243:   | DMAT2X2                { $$ = "dmat2"; }
    #####:    #####: 2244:   | DMAT2X3                { $$ = "dmat2x3"; }
    #####:    #####: 2245:   | DMAT2X4                { $$ = "dmat2x4"; }
    #####:    #####: 2246:   | DMAT3X2                { $$ = "dmat3x2"; }
    #####:    #####: 2247:   | DMAT3X3                { $$ = "dmat3"; }
    #####:    #####: 2248:   | DMAT3X4                { $$ = "dmat3x4"; }
    #####:    #####: 2249:   | DMAT4X2                { $$ = "dmat4x2"; }
    #####:    #####: 2250:   | DMAT4X3                { $$ = "dmat4x3"; }
    #####:    #####: 2251:   | DMAT4X4                { $$ = "dmat4"; }
    #####:    #####: 2252:   | SAMPLER1D              { $$ = "sampler1D"; }
    #####:    #####: 2253:   | SAMPLER2D              { $$ = "sampler2D"; }
    #####:    #####: 2254:   | SAMPLER2DRECT          { $$ = "sampler2DRect"; }
    #####:    #####: 2255:   | SAMPLER3D              { $$ = "sampler3D"; }
    #####:    #####: 2256:   | SAMPLERCUBE            { $$ = "samplerCube"; }
    #####:    #####: 2257:   | SAMPLEREXTERNALOES     { $$ = "samplerExternalOES"; }
    #####:    #####: 2258:   | SAMPLER1DSHADOW        { $$ = "sampler1DShadow"; }
    #####:    #####: 2259:   | SAMPLER2DSHADOW        { $$ = "sampler2DShadow"; }
    #####:    #####: 2260:   | SAMPLER2DRECTSHADOW    { $$ = "sampler2DRectShadow"; }
    #####:    #####: 2261:   | SAMPLERCUBESHADOW      { $$ = "samplerCubeShadow"; }
    #####:    #####: 2262:   | SAMPLER1DARRAY         { $$ = "sampler1DArray"; }
    #####:    #####: 2263:   | SAMPLER2DARRAY         { $$ = "sampler2DArray"; }
    #####:    #####: 2264:   | SAMPLER1DARRAYSHADOW   { $$ = "sampler1DArrayShadow"; }
    #####:    #####: 2265:   | SAMPLER2DARRAYSHADOW   { $$ = "sampler2DArrayShadow"; }
    #####:    #####: 2266:   | SAMPLERBUFFER          { $$ = "samplerBuffer"; }
    #####:    #####: 2267:   | SAMPLERCUBEARRAY       { $$ = "samplerCubeArray"; }
    #####:    #####: 2268:   | SAMPLERCUBEARRAYSHADOW { $$ = "samplerCubeArrayShadow"; }
    #####:    #####: 2269:   | ISAMPLER1D             { $$ = "isampler1D"; }
    #####:    #####: 2270:   | ISAMPLER2D             { $$ = "isampler2D"; }
    #####:    #####: 2271:   | ISAMPLER2DRECT         { $$ = "isampler2DRect"; }
    #####:    #####: 2272:   | ISAMPLER3D             { $$ = "isampler3D"; }
    #####:    #####: 2273:   | ISAMPLERCUBE           { $$ = "isamplerCube"; }
    #####:    #####: 2274:   | ISAMPLER1DARRAY        { $$ = "isampler1DArray"; }
    #####:    #####: 2275:   | ISAMPLER2DARRAY        { $$ = "isampler2DArray"; }
    #####:    #####: 2276:   | ISAMPLERBUFFER         { $$ = "isamplerBuffer"; }
    #####:    #####: 2277:   | ISAMPLERCUBEARRAY      { $$ = "isamplerCubeArray"; }
    #####:    #####: 2278:   | USAMPLER1D             { $$ = "usampler1D"; }
    #####:    #####: 2279:   | USAMPLER2D             { $$ = "usampler2D"; }
    #####:    #####: 2280:   | USAMPLER2DRECT         { $$ = "usampler2DRect"; }
    #####:    #####: 2281:   | USAMPLER3D             { $$ = "usampler3D"; }
    #####:    #####: 2282:   | USAMPLERCUBE           { $$ = "usamplerCube"; }
    #####:    #####: 2283:   | USAMPLER1DARRAY        { $$ = "usampler1DArray"; }
    #####:    #####: 2284:   | USAMPLER2DARRAY        { $$ = "usampler2DArray"; }
    #####:    #####: 2285:   | USAMPLERBUFFER         { $$ = "usamplerBuffer"; }
    #####:    #####: 2286:   | USAMPLERCUBEARRAY      { $$ = "usamplerCubeArray"; }
    #####:    #####: 2287:   | SAMPLER2DMS            { $$ = "sampler2DMS"; }
    #####:    #####: 2288:   | ISAMPLER2DMS           { $$ = "isampler2DMS"; }
    #####:    #####: 2289:   | USAMPLER2DMS           { $$ = "usampler2DMS"; }
    #####:    #####: 2290:   | SAMPLER2DMSARRAY       { $$ = "sampler2DMSArray"; }
    #####:    #####: 2291:   | ISAMPLER2DMSARRAY      { $$ = "isampler2DMSArray"; }
    #####:    #####: 2292:   | USAMPLER2DMSARRAY      { $$ = "usampler2DMSArray"; }
    #####:    #####: 2293:   | IMAGE1D                { $$ = "image1D"; }
    #####:    #####: 2294:   | IMAGE2D                { $$ = "image2D"; }
    #####:    #####: 2295:   | IMAGE3D                { $$ = "image3D"; }
    #####:    #####: 2296:   | IMAGE2DRECT            { $$ = "image2DRect"; }
    #####:    #####: 2297:   | IMAGECUBE              { $$ = "imageCube"; }
    #####:    #####: 2298:   | IMAGEBUFFER            { $$ = "imageBuffer"; }
    #####:    #####: 2299:   | IMAGE1DARRAY           { $$ = "image1DArray"; }
    #####:    #####: 2300:   | IMAGE2DARRAY           { $$ = "image2DArray"; }
    #####:    #####: 2301:   | IMAGECUBEARRAY         { $$ = "imageCubeArray"; }
    #####:    #####: 2302:   | IMAGE2DMS              { $$ = "image2DMS"; }
    #####:    #####: 2303:   | IMAGE2DMSARRAY         { $$ = "image2DMSArray"; }
    #####:    #####: 2304:   | IIMAGE1D               { $$ = "iimage1D"; }
    #####:    #####: 2305:   | IIMAGE2D               { $$ = "iimage2D"; }
    #####:    #####: 2306:   | IIMAGE3D               { $$ = "iimage3D"; }
    #####:    #####: 2307:   | IIMAGE2DRECT           { $$ = "iimage2DRect"; }
    #####:    #####: 2308:   | IIMAGECUBE             { $$ = "iimageCube"; }
    #####:    #####: 2309:   | IIMAGEBUFFER           { $$ = "iimageBuffer"; }
    #####:    #####: 2310:   | IIMAGE1DARRAY          { $$ = "iimage1DArray"; }
    #####:    #####: 2311:   | IIMAGE2DARRAY          { $$ = "iimage2DArray"; }
    #####:    #####: 2312:   | IIMAGECUBEARRAY        { $$ = "iimageCubeArray"; }
    #####:    #####: 2313:   | IIMAGE2DMS             { $$ = "iimage2DMS"; }
    #####:    #####: 2314:   | IIMAGE2DMSARRAY        { $$ = "iimage2DMSArray"; }
    #####:    #####: 2315:   | UIMAGE1D               { $$ = "uimage1D"; }
    #####:    #####: 2316:   | UIMAGE2D               { $$ = "uimage2D"; }
    #####:    #####: 2317:   | UIMAGE3D               { $$ = "uimage3D"; }
    #####:    #####: 2318:   | UIMAGE2DRECT           { $$ = "uimage2DRect"; }
    #####:    #####: 2319:   | UIMAGECUBE             { $$ = "uimageCube"; }
    #####:    #####: 2320:   | UIMAGEBUFFER           { $$ = "uimageBuffer"; }
    #####:    #####: 2321:   | UIMAGE1DARRAY          { $$ = "uimage1DArray"; }
    #####:    #####: 2322:   | UIMAGE2DARRAY          { $$ = "uimage2DArray"; }
    #####:    #####: 2323:   | UIMAGECUBEARRAY        { $$ = "uimageCubeArray"; }
    #####:    #####: 2324:   | UIMAGE2DMS             { $$ = "uimage2DMS"; }
    #####:    #####: 2325:   | UIMAGE2DMSARRAY        { $$ = "uimage2DMSArray"; }
    #####:    #####: 2326:   | ATOMIC_UINT            { $$ = "atomic_uint"; }
    #####:    #####: 2327:   | INT64_TOK              { $$ = "int64_t";	   }
    #####:    #####: 2328:   | I64VEC2                { $$ = "i64vec2";	   }
    #####:    #####: 2329:   | I64VEC3                { $$ = "i64vec3";	   }
    #####:    #####: 2330:   | I64VEC4                { $$ = "i64vec4";	   }
    #####:    #####: 2331:   | UINT64_TOK             { $$ = "uint64_t";	   }
    #####:    #####: 2332:   | U64VEC2                { $$ = "u64vec2";	   }
    #####:    #####: 2333:   | U64VEC3                { $$ = "u64vec3";	   }
    #####:    #####: 2334:   | U64VEC4                { $$ = "u64vec4";	   }
        -:        -: 2335:   ;
        -:        -: 2336:
        -:        -: 2337:precision_qualifier:
        -:        -: 2338:   HIGHP
        -:        -: 2339:   {
    #####:    #####: 2340:      state->check_precision_qualifiers_allowed(&@1);
    #####:    #####: 2341:      $$ = ast_precision_high;
        -:        -: 2342:   }
        -:        -: 2343:   | MEDIUMP
        -:        -: 2344:   {
    #####:    #####: 2345:      state->check_precision_qualifiers_allowed(&@1);
    #####:    #####: 2346:      $$ = ast_precision_medium;
        -:        -: 2347:   }
        -:        -: 2348:   | LOWP
        -:        -: 2349:   {
    #####:    #####: 2350:      state->check_precision_qualifiers_allowed(&@1);
    #####:    #####: 2351:      $$ = ast_precision_low;
        -:        -: 2352:   }
        -:        -: 2353:   ;
        -:        -: 2354:
        -:        -: 2355:struct_specifier:
        -:        -: 2356:   STRUCT any_identifier '{' struct_declaration_list '}'
        -:        -: 2357:   {
    #####:    #####: 2358:      void *ctx = state->linalloc;
    #####:    #####: 2359:      $$ = new(ctx) ast_struct_specifier(ctx, $2, $4);
    #####:    #####: 2360:      $$->set_location_range(@2, @5);
    #####:    #####: 2361:      state->symbols->add_type($2, glsl_type::void_type);
        -:        -: 2362:   }
        -:        -: 2363:   | STRUCT '{' struct_declaration_list '}'
        -:        -: 2364:   {
    #####:    #####: 2365:      void *ctx = state->linalloc;
    #####:    #####: 2366:      $$ = new(ctx) ast_struct_specifier(ctx, NULL, $3);
    #####:    #####: 2367:      $$->set_location_range(@2, @4);
        -:        -: 2368:   }
        -:        -: 2369:   ;
        -:        -: 2370:
        -:        -: 2371:struct_declaration_list:
        -:        -: 2372:   struct_declaration
        -:        -: 2373:   {
    #####:    #####: 2374:      $$ = $1;
    #####:    #####: 2375:      $1->link.self_link();
        -:        -: 2376:   }
        -:        -: 2377:   | struct_declaration_list struct_declaration
        -:        -: 2378:   {
    #####:    #####: 2379:      $$ = $1;
    #####:    #####: 2380:      $$->link.insert_before(& $2->link);
        -:        -: 2381:   }
        -:        -: 2382:   ;
        -:        -: 2383:
        -:        -: 2384:struct_declaration:
        -:        -: 2385:   fully_specified_type struct_declarator_list ';'
        -:        -: 2386:   {
    #####:    #####: 2387:      void *ctx = state->linalloc;
    #####:    #####: 2388:      ast_fully_specified_type *const type = $1;
    #####:    #####: 2389:      type->set_location(@1);
        -:        -: 2390:
    #####:    #####: 2391:      if (type->qualifier.flags.i != 0)
    #####:    #####: 2392:         _mesa_glsl_error(&@1, state,
        -:        -: 2393:			  "only precision qualifiers may be applied to "
    #####:    #####: 2394:			  "structure members");
        -:        -: 2395:
    #####:    #####: 2396:      $$ = new(ctx) ast_declarator_list(type);
    #####:    #####: 2397:      $$->set_location(@2);
        -:        -: 2398:
    #####:    #####: 2399:      $$->declarations.push_degenerate_list_at_head(& $2->link);
        -:        -: 2400:   }
        -:        -: 2401:   ;
        -:        -: 2402:
        -:        -: 2403:struct_declarator_list:
        -:        -: 2404:   struct_declarator
        -:        -: 2405:   {
    #####:    #####: 2406:      $$ = $1;
    #####:    #####: 2407:      $1->link.self_link();
        -:        -: 2408:   }
        -:        -: 2409:   | struct_declarator_list ',' struct_declarator
        -:        -: 2410:   {
    #####:    #####: 2411:      $$ = $1;
    #####:    #####: 2412:      $$->link.insert_before(& $3->link);
        -:        -: 2413:   }
        -:        -: 2414:   ;
        -:        -: 2415:
        -:        -: 2416:struct_declarator:
        -:        -: 2417:   any_identifier
        -:        -: 2418:   {
    #####:    #####: 2419:      void *ctx = state->linalloc;
    #####:    #####: 2420:      $$ = new(ctx) ast_declaration($1, NULL, NULL);
    #####:    #####: 2421:      $$->set_location(@1);
        -:        -: 2422:   }
        -:        -: 2423:   | any_identifier array_specifier
        -:        -: 2424:   {
    #####:    #####: 2425:      void *ctx = state->linalloc;
    #####:    #####: 2426:      $$ = new(ctx) ast_declaration($1, $2, NULL);
    #####:    #####: 2427:      $$->set_location_range(@1, @2);
        -:        -: 2428:   }
        -:        -: 2429:   ;
        -:        -: 2430:
        -:        -: 2431:initializer:
        -:        -: 2432:   assignment_expression
        -:        -: 2433:   | '{' initializer_list '}'
        -:        -: 2434:   {
    #####:    #####: 2435:      $$ = $2;
        -:        -: 2436:   }
        -:        -: 2437:   | '{' initializer_list ',' '}'
        -:        -: 2438:   {
    #####:    #####: 2439:      $$ = $2;
        -:        -: 2440:   }
        -:        -: 2441:   ;
        -:        -: 2442:
        -:        -: 2443:initializer_list:
        -:        -: 2444:   initializer
        -:        -: 2445:   {
    #####:    #####: 2446:      void *ctx = state->linalloc;
    #####:    #####: 2447:      $$ = new(ctx) ast_aggregate_initializer();
    #####:    #####: 2448:      $$->set_location(@1);
    #####:    #####: 2449:      $$->expressions.push_tail(& $1->link);
        -:        -: 2450:   }
        -:        -: 2451:   | initializer_list ',' initializer
        -:        -: 2452:   {
    #####:    #####: 2453:      $1->expressions.push_tail(& $3->link);
        -:        -: 2454:   }
        -:        -: 2455:   ;
        -:        -: 2456:
        -:        -: 2457:declaration_statement:
        -:        -: 2458:   declaration
        -:        -: 2459:   ;
        -:        -: 2460:
        -:        -: 2461:   // Grammar Note: labeled statements for SWITCH only; 'goto' is not
        -:        -: 2462:   // supported.
        -:        -: 2463:statement:
        3:        4: 2464:   compound_statement        { $$ = (ast_node *) $1; }
        -:        -: 2465:   | simple_statement
        -:        -: 2466:   ;
        -:        -: 2467:
        -:        -: 2468:simple_statement:
        -:        -: 2469:   declaration_statement
        -:        -: 2470:   | expression_statement
        -:        -: 2471:   | selection_statement
        -:        -: 2472:   | switch_statement
        -:        -: 2473:   | iteration_statement
        -:        -: 2474:   | jump_statement
        -:        -: 2475:   ;
        -:        -: 2476:
        -:        -: 2477:compound_statement:
        -:        -: 2478:   '{' '}'
        -:        -: 2479:   {
    #####:    #####: 2480:      void *ctx = state->linalloc;
    #####:    #####: 2481:      $$ = new(ctx) ast_compound_statement(true, NULL);
    #####:    #####: 2482:      $$->set_location_range(@1, @2);
        -:        -: 2483:   }
        -:        -: 2484:   | '{'
        -:        -: 2485:   {
        3:        4: 2486:      state->symbols->push_scope();
        -:        -: 2487:   }
        -:        -: 2488:   statement_list '}'
        -:        -: 2489:   {
        3:        4: 2490:      void *ctx = state->linalloc;
        3:        4: 2491:      $$ = new(ctx) ast_compound_statement(true, $3);
        3:        4: 2492:      $$->set_location_range(@1, @4);
        3:        4: 2493:      state->symbols->pop_scope();
        -:        -: 2494:   }
        -:        -: 2495:   ;
        -:        -: 2496:
        -:        -: 2497:statement_no_new_scope:
        2:        2: 2498:   compound_statement_no_new_scope { $$ = (ast_node *) $1; }
        -:        -: 2499:   | simple_statement
        -:        -: 2500:   ;
        -:        -: 2501:
        -:        -: 2502:compound_statement_no_new_scope:
        -:        -: 2503:   '{' '}'
        -:        -: 2504:   {
    #####:    #####: 2505:      void *ctx = state->linalloc;
    #####:    #####: 2506:      $$ = new(ctx) ast_compound_statement(false, NULL);
    #####:    #####: 2507:      $$->set_location_range(@1, @2);
        -:        -: 2508:   }
        -:        -: 2509:   | '{' statement_list '}'
        -:        -: 2510:   {
        5:        5: 2511:      void *ctx = state->linalloc;
        5:        5: 2512:      $$ = new(ctx) ast_compound_statement(false, $2);
        5:        5: 2513:      $$->set_location_range(@1, @3);
        -:        -: 2514:   }
        -:        -: 2515:   ;
        -:        -: 2516:
        -:        -: 2517:statement_list:
        -:        -: 2518:   statement
        -:        -: 2519:   {
        8:        9: 2520:      if ($1 == NULL) {
    #####:    #####: 2521:         _mesa_glsl_error(& @1, state, "<nil> statement");
    #####:    #####: 2522:         assert($1 != NULL);
        -:        -: 2523:      }
        -:        -: 2524:
        8:        9: 2525:      $$ = $1;
        8:        9: 2526:      $$->link.self_link();
        -:        -: 2527:   }
        -:        -: 2528:   | statement_list statement
        -:        -: 2529:   {
       12:       12: 2530:      if ($2 == NULL) {
    #####:    #####: 2531:         _mesa_glsl_error(& @2, state, "<nil> statement");
    #####:    #####: 2532:         assert($2 != NULL);
        -:        -: 2533:      }
       12:       12: 2534:      $$ = $1;
       12:       12: 2535:      $$->link.insert_before(& $2->link);
        -:        -: 2536:   }
        -:        -: 2537:   ;
        -:        -: 2538:
        -:        -: 2539:expression_statement:
        -:        -: 2540:   ';'
        -:        -: 2541:   {
    #####:    #####: 2542:      void *ctx = state->linalloc;
    #####:    #####: 2543:      $$ = new(ctx) ast_expression_statement(NULL);
    #####:    #####: 2544:      $$->set_location(@1);
        -:        -: 2545:   }
        -:        -: 2546:   | expression ';'
        -:        -: 2547:   {
       10:       10: 2548:      void *ctx = state->linalloc;
       10:       10: 2549:      $$ = new(ctx) ast_expression_statement($1);
       10:       10: 2550:      $$->set_location(@1);
        -:        -: 2551:   }
        -:        -: 2552:   ;
        -:        -: 2553:
        -:        -: 2554:selection_statement:
        -:        -: 2555:   IF '(' expression ')' selection_rest_statement
        -:        -: 2556:   {
        3:        3: 2557:      $$ = new(state->linalloc) ast_selection_statement($3, $5.then_statement,
        6:        6: 2558:                                                        $5.else_statement);
        3:        3: 2559:      $$->set_location_range(@1, @5);
        -:        -: 2560:   }
        -:        -: 2561:   ;
        -:        -: 2562:
        -:        -: 2563:selection_rest_statement:
        -:        -: 2564:   statement ELSE statement
        -:        -: 2565:   {
    #####:    #####: 2566:      $$.then_statement = $1;
    #####:    #####: 2567:      $$.else_statement = $3;
        -:        -: 2568:   }
        -:        -: 2569:   | statement %prec THEN
        -:        -: 2570:   {
        3:        3: 2571:      $$.then_statement = $1;
        3:        3: 2572:      $$.else_statement = NULL;
        -:        -: 2573:   }
        -:        -: 2574:   ;
        -:        -: 2575:
        -:        -: 2576:condition:
        -:        -: 2577:   expression
        -:        -: 2578:   {
        2:        2: 2579:      $$ = (ast_node *) $1;
        -:        -: 2580:   }
        -:        -: 2581:   | fully_specified_type any_identifier '=' initializer
        -:        -: 2582:   {
    #####:    #####: 2583:      void *ctx = state->linalloc;
    #####:    #####: 2584:      ast_declaration *decl = new(ctx) ast_declaration($2, NULL, $4);
    #####:    #####: 2585:      ast_declarator_list *declarator = new(ctx) ast_declarator_list($1);
    #####:    #####: 2586:      decl->set_location_range(@2, @4);
    #####:    #####: 2587:      declarator->set_location(@1);
        -:        -: 2588:
    #####:    #####: 2589:      declarator->declarations.push_tail(&decl->link);
    #####:    #####: 2590:      $$ = declarator;
        -:        -: 2591:   }
        -:        -: 2592:   ;
        -:        -: 2593:
        -:        -: 2594:/*
        -:        -: 2595: * switch_statement grammar is based on the syntax described in the body
        -:        -: 2596: * of the GLSL spec, not in it's appendix!!!
        -:        -: 2597: */
        -:        -: 2598:switch_statement:
        -:        -: 2599:   SWITCH '(' expression ')' switch_body
        -:        -: 2600:   {
    #####:    #####: 2601:      $$ = new(state->linalloc) ast_switch_statement($3, $5);
    #####:    #####: 2602:      $$->set_location_range(@1, @5);
        -:        -: 2603:   }
        -:        -: 2604:   ;
        -:        -: 2605:
        -:        -: 2606:switch_body:
        -:        -: 2607:   '{' '}'
        -:        -: 2608:   {
    #####:    #####: 2609:      $$ = new(state->linalloc) ast_switch_body(NULL);
    #####:    #####: 2610:      $$->set_location_range(@1, @2);
        -:        -: 2611:   }
        -:        -: 2612:   | '{' case_statement_list '}'
        -:        -: 2613:   {
    #####:    #####: 2614:      $$ = new(state->linalloc) ast_switch_body($2);
    #####:    #####: 2615:      $$->set_location_range(@1, @3);
        -:        -: 2616:   }
        -:        -: 2617:   ;
        -:        -: 2618:
        -:        -: 2619:case_label:
        -:        -: 2620:   CASE expression ':'
        -:        -: 2621:   {
    #####:    #####: 2622:      $$ = new(state->linalloc) ast_case_label($2);
    #####:    #####: 2623:      $$->set_location(@2);
        -:        -: 2624:   }
        -:        -: 2625:   | DEFAULT ':'
        -:        -: 2626:   {
    #####:    #####: 2627:      $$ = new(state->linalloc) ast_case_label(NULL);
    #####:    #####: 2628:      $$->set_location(@2);
        -:        -: 2629:   }
        -:        -: 2630:   ;
        -:        -: 2631:
        -:        -: 2632:case_label_list:
        -:        -: 2633:   case_label
        -:        -: 2634:   {
    #####:    #####: 2635:      ast_case_label_list *labels = new(state->linalloc) ast_case_label_list();
        -:        -: 2636:
    #####:    #####: 2637:      labels->labels.push_tail(& $1->link);
    #####:    #####: 2638:      $$ = labels;
    #####:    #####: 2639:      $$->set_location(@1);
        -:        -: 2640:   }
        -:        -: 2641:   | case_label_list case_label
        -:        -: 2642:   {
    #####:    #####: 2643:      $$ = $1;
    #####:    #####: 2644:      $$->labels.push_tail(& $2->link);
        -:        -: 2645:   }
        -:        -: 2646:   ;
        -:        -: 2647:
        -:        -: 2648:case_statement:
        -:        -: 2649:   case_label_list statement
        -:        -: 2650:   {
    #####:    #####: 2651:      ast_case_statement *stmts = new(state->linalloc) ast_case_statement($1);
    #####:    #####: 2652:      stmts->set_location(@2);
        -:        -: 2653:
    #####:    #####: 2654:      stmts->stmts.push_tail(& $2->link);
    #####:    #####: 2655:      $$ = stmts;
        -:        -: 2656:   }
        -:        -: 2657:   | case_statement statement
        -:        -: 2658:   {
    #####:    #####: 2659:      $$ = $1;
    #####:    #####: 2660:      $$->stmts.push_tail(& $2->link);
        -:        -: 2661:   }
        -:        -: 2662:   ;
        -:        -: 2663:
        -:        -: 2664:case_statement_list:
        -:        -: 2665:   case_statement
        -:        -: 2666:   {
    #####:    #####: 2667:      ast_case_statement_list *cases= new(state->linalloc) ast_case_statement_list();
    #####:    #####: 2668:      cases->set_location(@1);
        -:        -: 2669:
    #####:    #####: 2670:      cases->cases.push_tail(& $1->link);
    #####:    #####: 2671:      $$ = cases;
        -:        -: 2672:   }
        -:        -: 2673:   | case_statement_list case_statement
        -:        -: 2674:   {
    #####:    #####: 2675:      $$ = $1;
    #####:    #####: 2676:      $$->cases.push_tail(& $2->link);
        -:        -: 2677:   }
        -:        -: 2678:   ;
        -:        -: 2679:
        -:        -: 2680:iteration_statement:
        -:        -: 2681:   WHILE '(' condition ')' statement_no_new_scope
        -:        -: 2682:   {
    #####:    #####: 2683:      void *ctx = state->linalloc;
        -:        -: 2684:      $$ = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while,
    #####:    #####: 2685:                                            NULL, $3, NULL, $5);
    #####:    #####: 2686:      $$->set_location_range(@1, @4);
        -:        -: 2687:   }
        -:        -: 2688:   | DO statement WHILE '(' expression ')' ';'
        -:        -: 2689:   {
    #####:        1: 2690:      void *ctx = state->linalloc;
        -:        -: 2691:      $$ = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while,
    #####:        1: 2692:                                            NULL, $5, NULL, $2);
    #####:        1: 2693:      $$->set_location_range(@1, @6);
        -:        -: 2694:   }
        -:        -: 2695:   | FOR '(' for_init_statement for_rest_statement ')' statement_no_new_scope
        -:        -: 2696:   {
        2:        2: 2697:      void *ctx = state->linalloc;
        -:        -: 2698:      $$ = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for,
        2:        2: 2699:                                            $3, $4.cond, $4.rest, $6);
        2:        2: 2700:      $$->set_location_range(@1, @6);
        -:        -: 2701:   }
        -:        -: 2702:   ;
        -:        -: 2703:
        -:        -: 2704:for_init_statement:
        -:        -: 2705:   expression_statement
        -:        -: 2706:   | declaration_statement
        -:        -: 2707:   ;
        -:        -: 2708:
        -:        -: 2709:conditionopt:
        -:        -: 2710:   condition
        -:        -: 2711:   | /* empty */
        -:        -: 2712:   {
    #####:    #####: 2713:      $$ = NULL;
        -:        -: 2714:   }
        -:        -: 2715:   ;
        -:        -: 2716:
        -:        -: 2717:for_rest_statement:
        -:        -: 2718:   conditionopt ';'
        -:        -: 2719:   {
    #####:    #####: 2720:      $$.cond = $1;
    #####:    #####: 2721:      $$.rest = NULL;
        -:        -: 2722:   }
        -:        -: 2723:   | conditionopt ';' expression
        -:        -: 2724:   {
        2:        2: 2725:      $$.cond = $1;
        2:        2: 2726:      $$.rest = $3;
        -:        -: 2727:   }
        -:        -: 2728:   ;
        -:        -: 2729:
        -:        -: 2730:   // Grammar Note: No 'goto'. Gotos are not supported.
        -:        -: 2731:jump_statement:
        -:        -: 2732:   CONTINUE ';'
        -:        -: 2733:   {
    #####:    #####: 2734:      void *ctx = state->linalloc;
    #####:    #####: 2735:      $$ = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL);
    #####:    #####: 2736:      $$->set_location(@1);
        -:        -: 2737:   }
        -:        -: 2738:   | BREAK ';'
        -:        -: 2739:   {
    #####:    #####: 2740:      void *ctx = state->linalloc;
    #####:    #####: 2741:      $$ = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL);
    #####:    #####: 2742:      $$->set_location(@1);
        -:        -: 2743:   }
        -:        -: 2744:   | RETURN ';'
        -:        -: 2745:   {
    #####:    #####: 2746:      void *ctx = state->linalloc;
    #####:    #####: 2747:      $$ = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL);
    #####:    #####: 2748:      $$->set_location(@1);
        -:        -: 2749:   }
        -:        -: 2750:   | RETURN expression ';'
        -:        -: 2751:   {
        2:        2: 2752:      void *ctx = state->linalloc;
        2:        2: 2753:      $$ = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, $2);
        2:        2: 2754:      $$->set_location_range(@1, @2);
        -:        -: 2755:   }
        -:        -: 2756:   | DISCARD ';' // Fragment shader only.
        -:        -: 2757:   {
    #####:    #####: 2758:      void *ctx = state->linalloc;
    #####:    #####: 2759:      $$ = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL);
    #####:    #####: 2760:      $$->set_location(@1);
        -:        -: 2761:   }
        -:        -: 2762:   ;
        -:        -: 2763:
        -:        -: 2764:external_declaration:
        3:        3: 2765:   function_definition      { $$ = $1; }
        3:        3: 2766:   | declaration            { $$ = $1; }
    #####:    #####: 2767:   | pragma_statement       { $$ = NULL; }
    #####:    #####: 2768:   | layout_defaults        { $$ = $1; }
        -:        -: 2769:   ;
        -:        -: 2770:
        -:        -: 2771:function_definition:
        -:        -: 2772:   function_prototype compound_statement_no_new_scope
        -:        -: 2773:   {
        3:        3: 2774:      void *ctx = state->linalloc;
        3:        3: 2775:      $$ = new(ctx) ast_function_definition();
        3:        3: 2776:      $$->set_location_range(@1, @2);
        3:        3: 2777:      $$->prototype = $1;
        3:        3: 2778:      $$->body = $2;
        -:        -: 2779:
        3:        3: 2780:      state->symbols->pop_scope();
        -:        -: 2781:   }
        -:        -: 2782:   ;
        -:        -: 2783:
        -:        -: 2784:/* layout_qualifieropt is packed into this rule */
        -:        -: 2785:interface_block:
        -:        -: 2786:   basic_interface_block
        -:        -: 2787:   {
    #####:    #####: 2788:      $$ = $1;
        -:        -: 2789:   }
        -:        -: 2790:   | layout_qualifier interface_block
        -:        -: 2791:   {
    #####:    #####: 2792:      ast_interface_block *block = (ast_interface_block *) $2;
        -:        -: 2793:
    #####:    #####: 2794:      if (!$1.merge_qualifier(& @1, state, block->layout, false,
    #####:    #####: 2795:                              block->layout.has_layout())) {
    #####:    #####: 2796:         YYERROR;
        -:        -: 2797:      }
        -:        -: 2798:
    #####:    #####: 2799:      block->layout = $1;
        -:        -: 2800:
    #####:    #####: 2801:      $$ = block;
        -:        -: 2802:   }
        -:        -: 2803:   | memory_qualifier interface_block
        -:        -: 2804:   {
    #####:    #####: 2805:      ast_interface_block *block = (ast_interface_block *)$2;
        -:        -: 2806:
    #####:    #####: 2807:      if (!block->default_layout.flags.q.buffer) {
    #####:    #####: 2808:            _mesa_glsl_error(& @1, state,
        -:        -: 2809:                             "memory qualifiers can only be used in the "
    #####:    #####: 2810:                             "declaration of shader storage blocks");
        -:        -: 2811:      }
    #####:    #####: 2812:      if (!$1.merge_qualifier(& @1, state, block->layout, false)) {
    #####:    #####: 2813:         YYERROR;
        -:        -: 2814:      }
    #####:    #####: 2815:      block->layout = $1;
    #####:    #####: 2816:      $$ = block;
        -:        -: 2817:   }
        -:        -: 2818:   ;
        -:        -: 2819:
        -:        -: 2820:basic_interface_block:
        -:        -: 2821:   interface_qualifier NEW_IDENTIFIER '{' member_list '}' instance_name_opt ';'
        -:        -: 2822:   {
    #####:    #####: 2823:      ast_interface_block *const block = $6;
        -:        -: 2824:
    #####:    #####: 2825:      if ($1.flags.q.uniform) {
    #####:    #####: 2826:         block->default_layout = *state->default_uniform_qualifier;
    #####:    #####: 2827:      } else if ($1.flags.q.buffer) {
    #####:    #####: 2828:         block->default_layout = *state->default_shader_storage_qualifier;
        -:        -: 2829:      }
    #####:    #####: 2830:      block->block_name = $2;
    #####:    #####: 2831:      block->declarations.push_degenerate_list_at_head(& $4->link);
        -:        -: 2832:
    #####:    #####: 2833:      _mesa_ast_process_interface_block(& @1, state, block, $1);
        -:        -: 2834:
    #####:    #####: 2835:      $$ = block;
        -:        -: 2836:   }
        -:        -: 2837:   ;
        -:        -: 2838:
        -:        -: 2839:interface_qualifier:
        -:        -: 2840:   IN_TOK
        -:        -: 2841:   {
    #####:    #####: 2842:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2843:      $$.flags.q.in = 1;
        -:        -: 2844:   }
        -:        -: 2845:   | OUT_TOK
        -:        -: 2846:   {
    #####:    #####: 2847:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2848:      $$.flags.q.out = 1;
        -:        -: 2849:   }
        -:        -: 2850:   | UNIFORM
        -:        -: 2851:   {
    #####:    #####: 2852:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2853:      $$.flags.q.uniform = 1;
        -:        -: 2854:   }
        -:        -: 2855:   | BUFFER
        -:        -: 2856:   {
    #####:    #####: 2857:      memset(& $$, 0, sizeof($$));
    #####:    #####: 2858:      $$.flags.q.buffer = 1;
        -:        -: 2859:   }
        -:        -: 2860:   | auxiliary_storage_qualifier interface_qualifier
        -:        -: 2861:   {
    #####:    #####: 2862:      if (!$1.flags.q.patch) {
    #####:    #####: 2863:         _mesa_glsl_error(&@1, state, "invalid interface qualifier");
        -:        -: 2864:      }
    #####:    #####: 2865:      if ($2.has_auxiliary_storage()) {
    #####:    #####: 2866:         _mesa_glsl_error(&@1, state, "duplicate patch qualifier");
        -:        -: 2867:      }
    #####:    #####: 2868:      $$ = $2;
    #####:    #####: 2869:      $$.flags.q.patch = 1;
        -:        -: 2870:   }
        -:        -: 2871:   ;
        -:        -: 2872:
        -:        -: 2873:instance_name_opt:
        -:        -: 2874:   /* empty */
        -:        -: 2875:   {
    #####:    #####: 2876:      $$ = new(state->linalloc) ast_interface_block(NULL, NULL);
        -:        -: 2877:   }
        -:        -: 2878:   | NEW_IDENTIFIER
        -:        -: 2879:   {
    #####:    #####: 2880:      $$ = new(state->linalloc) ast_interface_block($1, NULL);
    #####:    #####: 2881:      $$->set_location(@1);
        -:        -: 2882:   }
        -:        -: 2883:   | NEW_IDENTIFIER array_specifier
        -:        -: 2884:   {
    #####:    #####: 2885:      $$ = new(state->linalloc) ast_interface_block($1, $2);
    #####:    #####: 2886:      $$->set_location_range(@1, @2);
        -:        -: 2887:   }
        -:        -: 2888:   ;
        -:        -: 2889:
        -:        -: 2890:member_list:
        -:        -: 2891:   member_declaration
        -:        -: 2892:   {
    #####:    #####: 2893:      $$ = $1;
    #####:    #####: 2894:      $1->link.self_link();
        -:        -: 2895:   }
        -:        -: 2896:   | member_declaration member_list
        -:        -: 2897:   {
    #####:    #####: 2898:      $$ = $1;
    #####:    #####: 2899:      $2->link.insert_before(& $$->link);
        -:        -: 2900:   }
        -:        -: 2901:   ;
        -:        -: 2902:
        -:        -: 2903:member_declaration:
        -:        -: 2904:   fully_specified_type struct_declarator_list ';'
        -:        -: 2905:   {
    #####:    #####: 2906:      void *ctx = state->linalloc;
    #####:    #####: 2907:      ast_fully_specified_type *type = $1;
    #####:    #####: 2908:      type->set_location(@1);
        -:        -: 2909:
    #####:    #####: 2910:      if (type->qualifier.flags.q.attribute) {
    #####:    #####: 2911:         _mesa_glsl_error(& @1, state,
        -:        -: 2912:                          "keyword 'attribute' cannot be used with "
    #####:    #####: 2913:                          "interface block member");
    #####:    #####: 2914:      } else if (type->qualifier.flags.q.varying) {
    #####:    #####: 2915:         _mesa_glsl_error(& @1, state,
        -:        -: 2916:                          "keyword 'varying' cannot be used with "
    #####:    #####: 2917:                          "interface block member");
        -:        -: 2918:      }
        -:        -: 2919:
    #####:    #####: 2920:      $$ = new(ctx) ast_declarator_list(type);
    #####:    #####: 2921:      $$->set_location(@2);
        -:        -: 2922:
    #####:    #####: 2923:      $$->declarations.push_degenerate_list_at_head(& $2->link);
        -:        -: 2924:   }
        -:        -: 2925:   ;
        -:        -: 2926:
        -:        -: 2927:layout_uniform_defaults:
        -:        -: 2928:   layout_qualifier layout_uniform_defaults
        -:        -: 2929:   {
    #####:    #####: 2930:      $$ = $1;
    #####:    #####: 2931:      if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
    #####:    #####: 2932:         YYERROR;
        -:        -: 2933:      }
        -:        -: 2934:   }
        -:        -: 2935:   | layout_qualifier UNIFORM ';'
        -:        -: 2936:   ;
        -:        -: 2937:
        -:        -: 2938:layout_buffer_defaults:
        -:        -: 2939:   layout_qualifier layout_buffer_defaults
        -:        -: 2940:   {
    #####:    #####: 2941:      $$ = $1;
    #####:    #####: 2942:      if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
    #####:    #####: 2943:         YYERROR;
        -:        -: 2944:      }
        -:        -: 2945:   }
        -:        -: 2946:   | layout_qualifier BUFFER ';'
        -:        -: 2947:   ;
        -:        -: 2948:
        -:        -: 2949:layout_in_defaults:
        -:        -: 2950:   layout_qualifier layout_in_defaults
        -:        -: 2951:   {
    #####:    #####: 2952:      $$ = $1;
    #####:    #####: 2953:      if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
    #####:    #####: 2954:         YYERROR;
        -:        -: 2955:      }
    #####:    #####: 2956:      if (!$$.validate_in_qualifier(& @1, state)) {
    #####:    #####: 2957:         YYERROR;
        -:        -: 2958:      }
        -:        -: 2959:   }
        -:        -: 2960:   | layout_qualifier IN_TOK ';'
        -:        -: 2961:   {
    #####:    #####: 2962:      if (!$1.validate_in_qualifier(& @1, state)) {
    #####:    #####: 2963:         YYERROR;
        -:        -: 2964:      }
        -:        -: 2965:   }
        -:        -: 2966:   ;
        -:        -: 2967:
        -:        -: 2968:layout_out_defaults:
        -:        -: 2969:   layout_qualifier layout_out_defaults
        -:        -: 2970:   {
    #####:    #####: 2971:      $$ = $1;
    #####:    #####: 2972:      if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
    #####:    #####: 2973:         YYERROR;
        -:        -: 2974:      }
    #####:    #####: 2975:      if (!$$.validate_out_qualifier(& @1, state)) {
    #####:    #####: 2976:         YYERROR;
        -:        -: 2977:      }
        -:        -: 2978:   }
        -:        -: 2979:   | layout_qualifier OUT_TOK ';'
        -:        -: 2980:   {
    #####:    #####: 2981:      if (!$1.validate_out_qualifier(& @1, state)) {
    #####:    #####: 2982:         YYERROR;
        -:        -: 2983:      }
        -:        -: 2984:   }
        -:        -: 2985:   ;
        -:        -: 2986:
        -:        -: 2987:layout_defaults:
        -:        -: 2988:   layout_uniform_defaults
        -:        -: 2989:   {
    #####:    #####: 2990:      $$ = NULL;
    #####:    #####: 2991:      if (!state->default_uniform_qualifier->
    #####:    #####: 2992:             merge_qualifier(& @1, state, $1, false)) {
    #####:    #####: 2993:         YYERROR;
        -:        -: 2994:      }
    #####:    #####: 2995:      if (!state->default_uniform_qualifier->
    #####:    #####: 2996:             push_to_global(& @1, state)) {
    #####:    #####: 2997:         YYERROR;
        -:        -: 2998:      }
        -:        -: 2999:   }
        -:        -: 3000:   | layout_buffer_defaults
        -:        -: 3001:   {
    #####:    #####: 3002:      $$ = NULL;
    #####:    #####: 3003:      if (!state->default_shader_storage_qualifier->
    #####:    #####: 3004:             merge_qualifier(& @1, state, $1, false)) {
    #####:    #####: 3005:         YYERROR;
        -:        -: 3006:      }
    #####:    #####: 3007:      if (!state->default_shader_storage_qualifier->
    #####:    #####: 3008:             push_to_global(& @1, state)) {
    #####:    #####: 3009:         YYERROR;
        -:        -: 3010:      }
        -:        -: 3011:
        -:        -: 3012:      /* From the GLSL 4.50 spec, section 4.4.5:
        -:        -: 3013:       *
        -:        -: 3014:       *     "It is a compile-time error to specify the binding identifier for
        -:        -: 3015:       *     the global scope or for block member declarations."
        -:        -: 3016:       */
    #####:    #####: 3017:      if (state->default_shader_storage_qualifier->flags.q.explicit_binding) {
        -:        -: 3018:         _mesa_glsl_error(& @1, state,
    #####:    #####: 3019:                          "binding qualifier cannot be set for default layout");
        -:        -: 3020:      }
        -:        -: 3021:   }
        -:        -: 3022:   | layout_in_defaults
        -:        -: 3023:   {
    #####:    #####: 3024:      $$ = NULL;
    #####:    #####: 3025:      if (!$1.merge_into_in_qualifier(& @1, state, $$)) {
    #####:    #####: 3026:         YYERROR;
        -:        -: 3027:      }
    #####:    #####: 3028:      if (!state->in_qualifier->push_to_global(& @1, state)) {
    #####:    #####: 3029:         YYERROR;
        -:        -: 3030:      }
        -:        -: 3031:   }
        -:        -: 3032:   | layout_out_defaults
        -:        -: 3033:   {
    #####:    #####: 3034:      $$ = NULL;
    #####:    #####: 3035:      if (!$1.merge_into_out_qualifier(& @1, state, $$)) {
    #####:    #####: 3036:         YYERROR;
        -:        -: 3037:      }
    #####:    #####: 3038:      if (!state->out_qualifier->push_to_global(& @1, state)) {
    #####:    #####: 3039:         YYERROR;
        -:        -: 3040:      }
        -:        -: 3041:   }
        -:        -: 3042:   ;

src/compiler/glsl_symbol_table.cpp.gcov

        -:        -:    0:Source:glsl/glsl_symbol_table.cpp
        -:        -:    0:Graph:glsl/.libs/glsl_symbol_table.gcno
        -:        -:    0:Data:glsl/.libs/glsl_symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/* -*- c++ -*- */
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2010 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#include "glsl_symbol_table.h"
        -:        -:   26:#include "ast.h"
        -:        -:   27:
        -:        -:   28:class symbol_table_entry {
        -:        -:   29:public:
     1109:     1109:   30:   DECLARE_LINEAR_ALLOC_CXX_OPERATORS(symbol_table_entry);
        -:        -:   31:
    #####:    #####:   32:   bool add_interface(const glsl_type *i, enum ir_variable_mode mode)
        -:        -:   33:   {
        -:        -:   34:      const glsl_type **dest;
        -:        -:   35:
    #####:    #####:   36:      switch (mode) {
        -:        -:   37:      case ir_var_uniform:
    #####:    #####:   38:         dest = &ibu;
    #####:    #####:   39:         break;
        -:        -:   40:      case ir_var_shader_storage:
    #####:    #####:   41:         dest = &iss;
    #####:    #####:   42:         break;
        -:        -:   43:      case ir_var_shader_in:
    #####:    #####:   44:         dest = &ibi;
    #####:    #####:   45:         break;
        -:        -:   46:      case ir_var_shader_out:
    #####:    #####:   47:         dest = &ibo;
    #####:    #####:   48:         break;
        -:        -:   49:      default:
    #####:    #####:   50:         assert(!"Unsupported interface variable mode!");
        -:        -:   51:         return false;
        -:        -:   52:      }
        -:        -:   53:
    #####:    #####:   54:      if (*dest != NULL) {
    #####:    #####:   55:         return false;
        -:        -:   56:      } else {
    #####:    #####:   57:         *dest = i;
    #####:    #####:   58:         return true;
        -:        -:   59:      }
        -:        -:   60:   }
        -:        -:   61:
    #####:    #####:   62:   const glsl_type *get_interface(enum ir_variable_mode mode)
        -:        -:   63:   {
    #####:    #####:   64:      switch (mode) {
        -:        -:   65:      case ir_var_uniform:
    #####:    #####:   66:         return ibu;
        -:        -:   67:      case ir_var_shader_storage:
    #####:    #####:   68:         return iss;
        -:        -:   69:      case ir_var_shader_in:
    #####:    #####:   70:         return ibi;
        -:        -:   71:      case ir_var_shader_out:
    #####:    #####:   72:         return ibo;
        -:        -:   73:      default:
    #####:    #####:   74:         assert(!"Unsupported interface variable mode!");
        -:        -:   75:         return NULL;
        -:        -:   76:      }
        -:        -:   77:   }
        -:        -:   78:
      545:      545:   79:   symbol_table_entry(ir_variable *v)               :
      545:      545:   80:      v(v), f(0), t(0), ibu(0), iss(0), ibi(0), ibo(0), a(0) {}
      290:      290:   81:   symbol_table_entry(ir_function *f)               :
      290:      290:   82:      v(0), f(f), t(0), ibu(0), iss(0), ibi(0), ibo(0), a(0) {}
      274:      274:   83:   symbol_table_entry(const glsl_type *t)           :
      274:      274:   84:      v(0), f(0), t(t), ibu(0), iss(0), ibi(0), ibo(0), a(0) {}
    #####:    #####:   85:   symbol_table_entry(const glsl_type *t, enum ir_variable_mode mode) :
    #####:    #####:   86:      v(0), f(0), t(0), ibu(0), iss(0), ibi(0), ibo(0), a(0)
        -:        -:   87:   {
    #####:    #####:   88:      assert(t->is_interface());
    #####:    #####:   89:      add_interface(t, mode);
    #####:    #####:   90:   }
    #####:    #####:   91:   symbol_table_entry(const class ast_type_specifier *a):
    #####:    #####:   92:      v(0), f(0), t(0), ibu(0), iss(0), ibi(0), ibo(0), a(a) {}
        -:        -:   93:
        -:        -:   94:   ir_variable *v;
        -:        -:   95:   ir_function *f;
        -:        -:   96:   const glsl_type *t;
        -:        -:   97:   const glsl_type *ibu;
        -:        -:   98:   const glsl_type *iss;
        -:        -:   99:   const glsl_type *ibi;
        -:        -:  100:   const glsl_type *ibo;
        -:        -:  101:   const class ast_type_specifier *a;
        -:        -:  102:};
        -:        -:  103:
       18:       18:  104:glsl_symbol_table::glsl_symbol_table()
        -:        -:  105:{
       18:       18:  106:   this->separate_function_namespace = false;
       18:       18:  107:   this->table = _mesa_symbol_table_ctor();
       18:       18:  108:   this->mem_ctx = ralloc_context(NULL);
       18:       18:  109:   this->linalloc = linear_alloc_parent(this->mem_ctx, 0);
       18:       18:  110:}
        -:        -:  111:
       36:       36:  112:glsl_symbol_table::~glsl_symbol_table()
        -:        -:  113:{
       18:       18:  114:   _mesa_symbol_table_dtor(table);
       18:       18:  115:   ralloc_free(mem_ctx);
       18:       18:  116:}
        -:        -:  117:
       19:       21:  118:void glsl_symbol_table::push_scope()
        -:        -:  119:{
       19:       21:  120:   _mesa_symbol_table_push_scope(table);
       19:       21:  121:}
        -:        -:  122:
       17:       19:  123:void glsl_symbol_table::pop_scope()
        -:        -:  124:{
       17:       19:  125:   _mesa_symbol_table_pop_scope(table);
       17:       19:  126:}
        -:        -:  127:
        2:        2:  128:bool glsl_symbol_table::name_declared_this_scope(const char *name)
        -:        -:  129:{
        2:        2:  130:   return _mesa_symbol_table_symbol_scope(table, name) == 0;
        -:        -:  131:}
        -:        -:  132:
      545:      545:  133:bool glsl_symbol_table::add_variable(ir_variable *v)
        -:        -:  134:{
      545:      545:  135:   assert(v->data.mode != ir_var_temporary);
        -:        -:  136:
      545:      545:  137:   if (this->separate_function_namespace) {
        -:        -:  138:      /* In 1.10, functions and variables have separate namespaces. */
    #####:    #####:  139:      symbol_table_entry *existing = get_entry(v->name);
    #####:    #####:  140:      if (name_declared_this_scope(v->name)) {
        -:        -:  141:	 /* If there's already an existing function (not a constructor!) in
        -:        -:  142:	  * the current scope, just update the existing entry to include 'v'.
        -:        -:  143:	  */
    #####:    #####:  144:	 if (existing->v == NULL && existing->t == NULL) {
    #####:    #####:  145:	    existing->v = v;
    #####:    #####:  146:	    return true;
        -:        -:  147:	 }
        -:        -:  148:      } else {
        -:        -:  149:	 /* If not declared at this scope, add a new entry.  But if an existing
        -:        -:  150:	  * entry includes a function, propagate that to this block - otherwise
        -:        -:  151:	  * the new variable declaration would shadow the function.
        -:        -:  152:	  */
    #####:    #####:  153:	 symbol_table_entry *entry = new(linalloc) symbol_table_entry(v);
    #####:    #####:  154:	 if (existing != NULL)
    #####:    #####:  155:	    entry->f = existing->f;
    #####:    #####:  156:	 int added = _mesa_symbol_table_add_symbol(table, v->name, entry);
    #####:    #####:  157:	 assert(added == 0);
        -:        -:  158:	 (void)added;
    #####:    #####:  159:	 return true;
        -:        -:  160:      }
    #####:    #####:  161:      return false;
        -:        -:  162:   }
        -:        -:  163:
        -:        -:  164:   /* 1.20+ rules: */
      545:      545:  165:   symbol_table_entry *entry = new(linalloc) symbol_table_entry(v);
      545:      545:  166:   return _mesa_symbol_table_add_symbol(table, v->name, entry) == 0;
        -:        -:  167:}
        -:        -:  168:
      274:      274:  169:bool glsl_symbol_table::add_type(const char *name, const glsl_type *t)
        -:        -:  170:{
      274:      274:  171:   symbol_table_entry *entry = new(linalloc) symbol_table_entry(t);
      274:      274:  172:   return _mesa_symbol_table_add_symbol(table, name, entry) == 0;
        -:        -:  173:}
        -:        -:  174:
    #####:    #####:  175:bool glsl_symbol_table::add_interface(const char *name, const glsl_type *i,
        -:        -:  176:                                      enum ir_variable_mode mode)
        -:        -:  177:{
    #####:    #####:  178:   assert(i->is_interface());
    #####:    #####:  179:   symbol_table_entry *entry = get_entry(name);
    #####:    #####:  180:   if (entry == NULL) {
        -:        -:  181:      symbol_table_entry *entry =
    #####:    #####:  182:         new(linalloc) symbol_table_entry(i, mode);
        -:        -:  183:      bool add_interface_symbol_result =
    #####:    #####:  184:         _mesa_symbol_table_add_symbol(table, name, entry) == 0;
    #####:    #####:  185:      assert(add_interface_symbol_result);
    #####:    #####:  186:      return add_interface_symbol_result;
        -:        -:  187:   } else {
    #####:    #####:  188:      return entry->add_interface(i, mode);
        -:        -:  189:   }
        -:        -:  190:}
        -:        -:  191:
      290:      290:  192:bool glsl_symbol_table::add_function(ir_function *f)
        -:        -:  193:{
      290:      290:  194:   if (this->separate_function_namespace && name_declared_this_scope(f->name)) {
        -:        -:  195:      /* In 1.10, functions and variables have separate namespaces. */
    #####:    #####:  196:      symbol_table_entry *existing = get_entry(f->name);
    #####:    #####:  197:      if ((existing->f == NULL) && (existing->t == NULL)) {
    #####:    #####:  198:	 existing->f = f;
    #####:    #####:  199:	 return true;
        -:        -:  200:      }
        -:        -:  201:   }
      290:      290:  202:   symbol_table_entry *entry = new(linalloc) symbol_table_entry(f);
      290:      290:  203:   return _mesa_symbol_table_add_symbol(table, f->name, entry) == 0;
        -:        -:  204:}
        -:        -:  205:
    #####:    #####:  206:bool glsl_symbol_table::add_default_precision_qualifier(const char *type_name,
        -:        -:  207:                                                        int precision)
        -:        -:  208:{
    #####:    #####:  209:   char *name = ralloc_asprintf(mem_ctx, "#default_precision_%s", type_name);
        -:        -:  210:
    #####:    #####:  211:   ast_type_specifier *default_specifier = new(linalloc) ast_type_specifier(name);
    #####:    #####:  212:   default_specifier->default_precision = precision;
        -:        -:  213:
        -:        -:  214:   symbol_table_entry *entry =
    #####:    #####:  215:      new(linalloc) symbol_table_entry(default_specifier);
        -:        -:  216:
    #####:    #####:  217:   if (!get_entry(name))
    #####:    #####:  218:      return _mesa_symbol_table_add_symbol(table, name, entry) == 0;
        -:        -:  219:
    #####:    #####:  220:   return _mesa_symbol_table_replace_symbol(table, name, entry) == 0;
        -:        -:  221:}
        -:        -:  222:
    #####:    #####:  223:void glsl_symbol_table::add_global_function(ir_function *f)
        -:        -:  224:{
    #####:    #####:  225:   symbol_table_entry *entry = new(linalloc) symbol_table_entry(f);
    #####:    #####:  226:   int added = _mesa_symbol_table_add_global_symbol(table, f->name, entry);
    #####:    #####:  227:   assert(added == 0);
        -:        -:  228:   (void)added;
    #####:    #####:  229:}
        -:        -:  230:
      320:      322:  231:ir_variable *glsl_symbol_table::get_variable(const char *name)
        -:        -:  232:{
      320:      322:  233:   symbol_table_entry *entry = get_entry(name);
      320:      322:  234:   return entry != NULL ? entry->v : NULL;
        -:        -:  235:}
        -:        -:  236:
       71:       72:  237:const glsl_type *glsl_symbol_table::get_type(const char *name)
        -:        -:  238:{
       71:       72:  239:   symbol_table_entry *entry = get_entry(name);
       71:       72:  240:   return entry != NULL ? entry->t : NULL;
        -:        -:  241:}
        -:        -:  242:
    #####:    #####:  243:const glsl_type *glsl_symbol_table::get_interface(const char *name,
        -:        -:  244:                                                  enum ir_variable_mode mode)
        -:        -:  245:{
    #####:    #####:  246:   symbol_table_entry *entry = get_entry(name);
    #####:    #####:  247:   return entry != NULL ? entry->get_interface(mode) : NULL;
        -:        -:  248:}
        -:        -:  249:
      379:      380:  250:ir_function *glsl_symbol_table::get_function(const char *name)
        -:        -:  251:{
      379:      380:  252:   symbol_table_entry *entry = get_entry(name);
      379:      380:  253:   return entry != NULL ? entry->f : NULL;
        -:        -:  254:}
        -:        -:  255:
    #####:    #####:  256:int glsl_symbol_table::get_default_precision_qualifier(const char *type_name)
        -:        -:  257:{
    #####:    #####:  258:   char *name = ralloc_asprintf(mem_ctx, "#default_precision_%s", type_name);
    #####:    #####:  259:   symbol_table_entry *entry = get_entry(name);
    #####:    #####:  260:   if (!entry)
    #####:    #####:  261:      return ast_precision_none;
    #####:    #####:  262:   return entry->a->default_precision;
        -:        -:  263:}
        -:        -:  264:
      770:      774:  265:symbol_table_entry *glsl_symbol_table::get_entry(const char *name)
        -:        -:  266:{
        -:        -:  267:   return (symbol_table_entry *)
      770:      774:  268:      _mesa_symbol_table_find_symbol(table, name);
        -:        -:  269:}
        -:        -:  270:
        -:        -:  271:void
    #####:    #####:  272:glsl_symbol_table::disable_variable(const char *name)
        -:        -:  273:{
        -:        -:  274:   /* Ideally we would remove the variable's entry from the symbol table, but
        -:        -:  275:    * that would be difficult.  Fortunately, since this is only used for
        -:        -:  276:    * built-in variables, it won't be possible for the shader to re-introduce
        -:        -:  277:    * the variable later, so all we really need to do is to make sure that
        -:        -:  278:    * further attempts to access it using get_variable() will return NULL.
        -:        -:  279:    */
    #####:    #####:  280:   symbol_table_entry *entry = get_entry(name);
    #####:    #####:  281:   if (entry != NULL) {
    #####:    #####:  282:      entry->v = NULL;
        -:        -:  283:   }
    #####:    #####:  284:}
        -:        -:  285:
        -:        -:  286:void
    #####:    #####:  287:glsl_symbol_table::replace_variable(const char *name,
        -:        -:  288:                                    ir_variable *v)
        -:        -:  289:{
    #####:    #####:  290:   symbol_table_entry *entry = get_entry(name);
    #####:    #####:  291:   if (entry != NULL) {
    #####:    #####:  292:      entry->v = v;
        -:        -:  293:   }
    #####:    #####:  294:}

src/compiler/glsl_to_nir.cpp.gcov

        -:        -:    0:Source:glsl/glsl_to_nir.cpp
        -:        -:    0:Graph:glsl/.libs/glsl_to_nir.gcno
        -:        -:    0:Data:glsl/.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "glsl_to_nir.h"
        -:        -:   29:#include "ir_visitor.h"
        -:        -:   30:#include "ir_hierarchical_visitor.h"
        -:        -:   31:#include "ir.h"
        -:        -:   32:#include "compiler/nir/nir_control_flow.h"
        -:        -:   33:#include "compiler/nir/nir_builder.h"
        -:        -:   34:#include "main/imports.h"
        -:        -:   35:
        -:        -:   36:/*
        -:        -:   37: * pass to lower GLSL IR to NIR
        -:        -:   38: *
        -:        -:   39: * This will lower variable dereferences to loads/stores of corresponding
        -:        -:   40: * variables in NIR - the variables will be converted to registers in a later
        -:        -:   41: * pass.
        -:        -:   42: */
        -:        -:   43:
        -:        -:   44:namespace {
        -:        -:   45:
        -:        -:   46:class nir_visitor : public ir_visitor
        -:        -:   47:{
        -:        -:   48:public:
        -:        -:   49:   nir_visitor(nir_shader *shader);
        -:        -:   50:   ~nir_visitor();
        -:        -:   51:
        -:        -:   52:   virtual void visit(ir_variable *);
        -:        -:   53:   virtual void visit(ir_function *);
        -:        -:   54:   virtual void visit(ir_function_signature *);
        -:        -:   55:   virtual void visit(ir_loop *);
        -:        -:   56:   virtual void visit(ir_if *);
        -:        -:   57:   virtual void visit(ir_discard *);
        -:        -:   58:   virtual void visit(ir_loop_jump *);
        -:        -:   59:   virtual void visit(ir_return *);
        -:        -:   60:   virtual void visit(ir_call *);
        -:        -:   61:   virtual void visit(ir_assignment *);
        -:        -:   62:   virtual void visit(ir_emit_vertex *);
        -:        -:   63:   virtual void visit(ir_end_primitive *);
        -:        -:   64:   virtual void visit(ir_expression *);
        -:        -:   65:   virtual void visit(ir_swizzle *);
        -:        -:   66:   virtual void visit(ir_texture *);
        -:        -:   67:   virtual void visit(ir_constant *);
        -:        -:   68:   virtual void visit(ir_dereference_variable *);
        -:        -:   69:   virtual void visit(ir_dereference_record *);
        -:        -:   70:   virtual void visit(ir_dereference_array *);
        -:        -:   71:   virtual void visit(ir_barrier *);
        -:        -:   72:
        -:        -:   73:   void create_function(ir_function_signature *ir);
        -:        -:   74:
        -:        -:   75:private:
        -:        -:   76:   void add_instr(nir_instr *instr, unsigned num_components, unsigned bit_size);
        -:        -:   77:   nir_ssa_def *evaluate_rvalue(ir_rvalue *ir);
        -:        -:   78:
        -:        -:   79:   nir_alu_instr *emit(nir_op op, unsigned dest_size, nir_ssa_def **srcs);
        -:        -:   80:   nir_alu_instr *emit(nir_op op, unsigned dest_size, nir_ssa_def *src1);
        -:        -:   81:   nir_alu_instr *emit(nir_op op, unsigned dest_size, nir_ssa_def *src1,
        -:        -:   82:                       nir_ssa_def *src2);
        -:        -:   83:   nir_alu_instr *emit(nir_op op, unsigned dest_size, nir_ssa_def *src1,
        -:        -:   84:                       nir_ssa_def *src2, nir_ssa_def *src3);
        -:        -:   85:
        -:        -:   86:   bool supports_ints;
        -:        -:   87:
        -:        -:   88:   nir_shader *shader;
        -:        -:   89:   nir_function_impl *impl;
        -:        -:   90:   nir_builder b;
        -:        -:   91:   nir_ssa_def *result; /* result of the expression tree last visited */
        -:        -:   92:
        -:        -:   93:   nir_deref_var *evaluate_deref(nir_instr *mem_ctx, ir_instruction *ir);
        -:        -:   94:
        -:        -:   95:   /* the head of the dereference chain we're creating */
        -:        -:   96:   nir_deref_var *deref_head;
        -:        -:   97:   /* the tail of the dereference chain we're creating */
        -:        -:   98:   nir_deref *deref_tail;
        -:        -:   99:
        -:        -:  100:   nir_variable *var; /* variable created by ir_variable visitor */
        -:        -:  101:
        -:        -:  102:   /* whether the IR we're operating on is per-function or global */
        -:        -:  103:   bool is_global;
        -:        -:  104:
        -:        -:  105:   /* map of ir_variable -> nir_variable */
        -:        -:  106:   struct hash_table *var_table;
        -:        -:  107:
        -:        -:  108:   /* map of ir_function_signature -> nir_function_overload */
        -:        -:  109:   struct hash_table *overload_table;
        -:        -:  110:};
        -:        -:  111:
        -:        -:  112:/*
        -:        -:  113: * This visitor runs before the main visitor, calling create_function() for
        -:        -:  114: * each function so that the main visitor can resolve forward references in
        -:        -:  115: * calls.
        -:        -:  116: */
        -:        -:  117:
        -:        -:  118:class nir_function_visitor : public ir_hierarchical_visitor
        -:        -:  119:{
        -:        -:  120:public:
        3:        3:  121:   nir_function_visitor(nir_visitor *v) : visitor(v)
        -:        -:  122:   {
        3:        3:  123:   }
        -:        -:  124:   virtual ir_visitor_status visit_enter(ir_function *);
        -:        -:  125:
        -:        -:  126:private:
        -:        -:  127:   nir_visitor *visitor;
        -:        -:  128:};
        -:        -:  129:
        -:        -:  130:} /* end of anonymous namespace */
        -:        -:  131:
        -:        -:  132:static void
        1:        1:  133:nir_remap_attributes(nir_shader *shader)
        -:        -:  134:{
        2:        2:  135:   nir_foreach_variable(var, &shader->inputs) {
        1:        1:  136:      var->data.location += _mesa_bitcount_64(shader->info->double_inputs_read &
        2:        2:  137:                                              BITFIELD64_MASK(var->data.location));
        -:        -:  138:   }
        -:        -:  139:
        -:        -:  140:   /* Once the remap is done, reset double_inputs_read, so later it will have
        -:        -:  141:    * which location/slots are doubles */
        1:        1:  142:   shader->info->double_inputs_read = 0;
        1:        1:  143:}
        -:        -:  144:
        -:        -:  145:nir_shader *
        3:        3:  146:glsl_to_nir(const struct gl_shader_program *shader_prog,
        -:        -:  147:            gl_shader_stage stage,
        -:        -:  148:            const nir_shader_compiler_options *options)
        -:        -:  149:{
        3:        3:  150:   struct gl_linked_shader *sh = shader_prog->_LinkedShaders[stage];
        -:        -:  151:
        3:        3:  152:   nir_shader *shader = nir_shader_create(NULL, stage, options,
        6:        6:  153:                                          &sh->Program->info);
        -:        -:  154:
        6:        6:  155:   nir_visitor v1(shader);
        3:        3:  156:   nir_function_visitor v2(&v1);
        3:        3:  157:   v2.run(sh->ir);
        3:        3:  158:   visit_exec_list(sh->ir, &v1);
        -:        -:  159:
        3:        3:  160:   nir_lower_constant_initializers(shader, (nir_variable_mode)~0);
        -:        -:  161:
        -:        -:  162:   /* Remap the locations to slots so those requiring two slots will occupy
        -:        -:  163:    * two locations. For instance, if we have in the IR code a dvec3 attr0 in
        -:        -:  164:    * location 0 and vec4 attr1 in location 1, in NIR attr0 will use
        -:        -:  165:    * locations/slots 0 and 1, and attr1 will use location/slot 2 */
        3:        3:  166:   if (shader->stage == MESA_SHADER_VERTEX)
        1:        1:  167:      nir_remap_attributes(shader);
        -:        -:  168:
        3:        3:  169:   shader->info->name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);
        3:        3:  170:   if (shader_prog->Label)
    #####:    #####:  171:      shader->info->label = ralloc_strdup(shader, shader_prog->Label);
        3:        3:  172:   shader->info->has_transform_feedback_varyings =
        3:        3:  173:      shader_prog->TransformFeedback.NumVarying > 0;
        -:        -:  174:
        6:        6:  175:   return shader;
        -:        -:  176:}
        -:        -:  177:
        3:        3:  178:nir_visitor::nir_visitor(nir_shader *shader)
        -:        -:  179:{
        3:        3:  180:   this->supports_ints = shader->options->native_integers;
        3:        3:  181:   this->shader = shader;
        3:        3:  182:   this->is_global = true;
        3:        3:  183:   this->var_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        3:        3:  184:                                             _mesa_key_pointer_equal);
        3:        3:  185:   this->overload_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        3:        3:  186:                                                  _mesa_key_pointer_equal);
        3:        3:  187:   this->result = NULL;
        3:        3:  188:   this->impl = NULL;
        3:        3:  189:   this->var = NULL;
        3:        3:  190:   this->deref_head = NULL;
        3:        3:  191:   this->deref_tail = NULL;
        3:        3:  192:   memset(&this->b, 0, sizeof(this->b));
        3:        3:  193:}
        -:        -:  194:
        6:        6:  195:nir_visitor::~nir_visitor()
        -:        -:  196:{
        3:        3:  197:   _mesa_hash_table_destroy(this->var_table, NULL);
        3:        3:  198:   _mesa_hash_table_destroy(this->overload_table, NULL);
        3:        3:  199:}
        -:        -:  200:
        -:        -:  201:nir_deref_var *
       98:       98:  202:nir_visitor::evaluate_deref(nir_instr *mem_ctx, ir_instruction *ir)
        -:        -:  203:{
       98:       98:  204:   ir->accept(this);
       98:       98:  205:   ralloc_steal(mem_ctx, this->deref_head);
       98:       98:  206:   return this->deref_head;
        -:        -:  207:}
        -:        -:  208:
        -:        -:  209:static nir_constant *
       67:       69:  210:constant_copy(ir_constant *ir, void *mem_ctx)
        -:        -:  211:{
       67:       69:  212:   if (ir == NULL)
       30:       30:  213:      return NULL;
        -:        -:  214:
       37:       39:  215:   nir_constant *ret = ralloc(mem_ctx, nir_constant);
        -:        -:  216:
       37:       39:  217:   const unsigned rows = ir->type->vector_elements;
       37:       39:  218:   const unsigned cols = ir->type->matrix_columns;
        -:        -:  219:   unsigned i;
        -:        -:  220:
       37:       39:  221:   ret->num_elements = 0;
       37:       39:  222:   switch (ir->type->base_type) {
        -:        -:  223:   case GLSL_TYPE_UINT:
        -:        -:  224:      /* Only float base types can be matrices. */
    #####:    #####:  225:      assert(cols == 1);
        -:        -:  226:
    #####:    #####:  227:      for (unsigned r = 0; r < rows; r++)
    #####:    #####:  228:         ret->values[0].u32[r] = ir->value.u[r];
        -:        -:  229:
    #####:    #####:  230:      break;
        -:        -:  231:
        -:        -:  232:   case GLSL_TYPE_INT:
        -:        -:  233:      /* Only float base types can be matrices. */
       28:       28:  234:      assert(cols == 1);
        -:        -:  235:
       56:       56:  236:      for (unsigned r = 0; r < rows; r++)
       28:       28:  237:         ret->values[0].i32[r] = ir->value.i[r];
        -:        -:  238:
       28:       28:  239:      break;
        -:        -:  240:
        -:        -:  241:   case GLSL_TYPE_FLOAT:
        2:        6:  242:      for (unsigned c = 0; c < cols; c++) {
        3:        7:  243:         for (unsigned r = 0; r < rows; r++)
        2:        4:  244:            ret->values[c].f32[r] = ir->value.f[c * rows + r];
        -:        -:  245:      }
        1:        3:  246:      break;
        -:        -:  247:
        -:        -:  248:   case GLSL_TYPE_DOUBLE:
    #####:    #####:  249:      for (unsigned c = 0; c < cols; c++) {
    #####:    #####:  250:         for (unsigned r = 0; r < rows; r++)
    #####:    #####:  251:            ret->values[c].f64[r] = ir->value.d[c * rows + r];
        -:        -:  252:      }
    #####:    #####:  253:      break;
        -:        -:  254:
        -:        -:  255:   case GLSL_TYPE_UINT64:
        -:        -:  256:      /* Only float base types can be matrices. */
    #####:    #####:  257:      assert(cols == 1);
        -:        -:  258:
    #####:    #####:  259:      for (unsigned r = 0; r < rows; r++)
    #####:    #####:  260:         ret->values[0].u64[r] = ir->value.u64[r];
    #####:    #####:  261:      break;
        -:        -:  262:
        -:        -:  263:   case GLSL_TYPE_INT64:
        -:        -:  264:      /* Only float base types can be matrices. */
    #####:    #####:  265:      assert(cols == 1);
        -:        -:  266:
    #####:    #####:  267:      for (unsigned r = 0; r < rows; r++)
    #####:    #####:  268:         ret->values[0].i64[r] = ir->value.i64[r];
    #####:    #####:  269:      break;
        -:        -:  270:
        -:        -:  271:   case GLSL_TYPE_BOOL:
        -:        -:  272:      /* Only float base types can be matrices. */
        8:        8:  273:      assert(cols == 1);
        -:        -:  274:
       16:       16:  275:      for (unsigned r = 0; r < rows; r++)
        8:        8:  276:         ret->values[0].u32[r] = ir->value.b[r] ? NIR_TRUE : NIR_FALSE;
        -:        -:  277:
        8:        8:  278:      break;
        -:        -:  279:
        -:        -:  280:   case GLSL_TYPE_STRUCT:
    #####:    #####:  281:      ret->elements = ralloc_array(mem_ctx, nir_constant *,
    #####:    #####:  282:                                   ir->type->length);
    #####:    #####:  283:      ret->num_elements = ir->type->length;
        -:        -:  284:
    #####:    #####:  285:      i = 0;
    #####:    #####:  286:      foreach_in_list(ir_constant, field, &ir->components) {
    #####:    #####:  287:         ret->elements[i] = constant_copy(field, mem_ctx);
    #####:    #####:  288:         i++;
        -:        -:  289:      }
    #####:    #####:  290:      break;
        -:        -:  291:
        -:        -:  292:   case GLSL_TYPE_ARRAY:
    #####:    #####:  293:      ret->elements = ralloc_array(mem_ctx, nir_constant *,
    #####:    #####:  294:                                   ir->type->length);
    #####:    #####:  295:      ret->num_elements = ir->type->length;
        -:        -:  296:
    #####:    #####:  297:      for (i = 0; i < ir->type->length; i++)
    #####:    #####:  298:         ret->elements[i] = constant_copy(ir->array_elements[i], mem_ctx);
    #####:    #####:  299:      break;
        -:        -:  300:
        -:        -:  301:   default:
    #####:    #####:  302:      unreachable("not reached");
        -:        -:  303:   }
        -:        -:  304:
       37:       39:  305:   return ret;
        -:        -:  306:}
        -:        -:  307:
        -:        -:  308:void
       33:       33:  309:nir_visitor::visit(ir_variable *ir)
        -:        -:  310:{
       33:       33:  311:   nir_variable *var = ralloc(shader, nir_variable);
       33:       33:  312:   var->type = ir->type;
       33:       33:  313:   var->name = ralloc_strdup(var, ir->name);
        -:        -:  314:
       33:       33:  315:   var->data.read_only = ir->data.read_only;
       33:       33:  316:   var->data.centroid = ir->data.centroid;
       33:       33:  317:   var->data.sample = ir->data.sample;
       33:       33:  318:   var->data.patch = ir->data.patch;
       33:       33:  319:   var->data.invariant = ir->data.invariant;
       33:       33:  320:   var->data.location = ir->data.location;
       33:       33:  321:   var->data.compact = false;
        -:        -:  322:
       33:       33:  323:   switch(ir->data.mode) {
        -:        -:  324:   case ir_var_auto:
        -:        -:  325:   case ir_var_temporary:
       25:       25:  326:      if (is_global)
    #####:    #####:  327:         var->data.mode = nir_var_global;
        -:        -:  328:      else
       25:       25:  329:         var->data.mode = nir_var_local;
       25:       25:  330:      break;
        -:        -:  331:
        -:        -:  332:   case ir_var_function_in:
        -:        -:  333:   case ir_var_function_out:
        -:        -:  334:   case ir_var_function_inout:
        -:        -:  335:   case ir_var_const_in:
    #####:    #####:  336:      var->data.mode = nir_var_local;
    #####:    #####:  337:      break;
        -:        -:  338:
        -:        -:  339:   case ir_var_shader_in:
        5:        5:  340:      if (shader->stage == MESA_SHADER_FRAGMENT &&
        2:        2:  341:          ir->data.location == VARYING_SLOT_FACE) {
        -:        -:  342:         /* For whatever reason, GLSL IR makes gl_FrontFacing an input */
    #####:    #####:  343:         var->data.location = SYSTEM_VALUE_FRONT_FACE;
    #####:    #####:  344:         var->data.mode = nir_var_system_value;
        3:        3:  345:      } else if (shader->stage == MESA_SHADER_GEOMETRY &&
    #####:    #####:  346:                 ir->data.location == VARYING_SLOT_PRIMITIVE_ID) {
        -:        -:  347:         /* For whatever reason, GLSL IR makes gl_PrimitiveIDIn an input */
    #####:    #####:  348:         var->data.location = SYSTEM_VALUE_PRIMITIVE_ID;
    #####:    #####:  349:         var->data.mode = nir_var_system_value;
        -:        -:  350:      } else {
        3:        3:  351:         var->data.mode = nir_var_shader_in;
        -:        -:  352:
        3:        3:  353:         if (shader->stage == MESA_SHADER_TESS_EVAL &&
    #####:    #####:  354:             (ir->data.location == VARYING_SLOT_TESS_LEVEL_INNER ||
    #####:    #####:  355:              ir->data.location == VARYING_SLOT_TESS_LEVEL_OUTER)) {
    #####:    #####:  356:            var->data.compact = ir->type->without_array()->is_scalar();
        -:        -:  357:         }
        -:        -:  358:      }
        -:        -:  359:
        -:        -:  360:      /* Mark all the locations that require two slots */
        3:        3:  361:      if (glsl_type_is_dual_slot(glsl_without_array(var->type))) {
    #####:    #####:  362:         for (uint i = 0; i < glsl_count_attribute_slots(var->type, true); i++) {
    #####:    #####:  363:            uint64_t bitfield = BITFIELD64_BIT(var->data.location + i);
    #####:    #####:  364:            shader->info->double_inputs_read |= bitfield;
        -:        -:  365:         }
        -:        -:  366:      }
        3:        3:  367:      break;
        -:        -:  368:
        -:        -:  369:   case ir_var_shader_out:
        3:        3:  370:      var->data.mode = nir_var_shader_out;
        3:        3:  371:      if (shader->stage == MESA_SHADER_TESS_CTRL &&
    #####:    #####:  372:          (ir->data.location == VARYING_SLOT_TESS_LEVEL_INNER ||
    #####:    #####:  373:           ir->data.location == VARYING_SLOT_TESS_LEVEL_OUTER)) {
    #####:    #####:  374:         var->data.compact = ir->type->without_array()->is_scalar();
        -:        -:  375:      }
        3:        3:  376:      break;
        -:        -:  377:
        -:        -:  378:   case ir_var_uniform:
        2:        2:  379:      var->data.mode = nir_var_uniform;
        2:        2:  380:      break;
        -:        -:  381:
        -:        -:  382:   case ir_var_shader_storage:
    #####:    #####:  383:      var->data.mode = nir_var_shader_storage;
    #####:    #####:  384:      break;
        -:        -:  385:
        -:        -:  386:   case ir_var_system_value:
    #####:    #####:  387:      var->data.mode = nir_var_system_value;
    #####:    #####:  388:      break;
        -:        -:  389:
        -:        -:  390:   default:
    #####:    #####:  391:      unreachable("not reached");
        -:        -:  392:   }
        -:        -:  393:
       33:       33:  394:   var->data.interpolation = ir->data.interpolation;
       33:       33:  395:   var->data.origin_upper_left = ir->data.origin_upper_left;
       33:       33:  396:   var->data.pixel_center_integer = ir->data.pixel_center_integer;
       33:       33:  397:   var->data.location_frac = ir->data.location_frac;
        -:        -:  398:
       33:       33:  399:   switch (ir->data.depth_layout) {
        -:        -:  400:   case ir_depth_layout_none:
       33:       33:  401:      var->data.depth_layout = nir_depth_layout_none;
       33:       33:  402:      break;
        -:        -:  403:   case ir_depth_layout_any:
    #####:    #####:  404:      var->data.depth_layout = nir_depth_layout_any;
    #####:    #####:  405:      break;
        -:        -:  406:   case ir_depth_layout_greater:
    #####:    #####:  407:      var->data.depth_layout = nir_depth_layout_greater;
    #####:    #####:  408:      break;
        -:        -:  409:   case ir_depth_layout_less:
    #####:    #####:  410:      var->data.depth_layout = nir_depth_layout_less;
    #####:    #####:  411:      break;
        -:        -:  412:   case ir_depth_layout_unchanged:
    #####:    #####:  413:      var->data.depth_layout = nir_depth_layout_unchanged;
    #####:    #####:  414:      break;
        -:        -:  415:   default:
    #####:    #####:  416:      unreachable("not reached");
        -:        -:  417:   }
        -:        -:  418:
       33:       33:  419:   var->data.index = ir->data.index;
       33:       33:  420:   var->data.binding = ir->data.binding;
       33:       33:  421:   var->data.offset = ir->data.offset;
       33:       33:  422:   var->data.image.read_only = ir->data.image_read_only;
       33:       33:  423:   var->data.image.write_only = ir->data.image_write_only;
       33:       33:  424:   var->data.image.coherent = ir->data.image_coherent;
       33:       33:  425:   var->data.image._volatile = ir->data.image_volatile;
       33:       33:  426:   var->data.image.restrict_flag = ir->data.image_restrict;
       33:       33:  427:   var->data.image.format = ir->data.image_format;
       33:       33:  428:   var->data.fb_fetch_output = ir->data.fb_fetch_output;
        -:        -:  429:
       33:       33:  430:   var->num_state_slots = ir->get_num_state_slots();
       33:       33:  431:   if (var->num_state_slots > 0) {
    #####:    #####:  432:      var->state_slots = ralloc_array(var, nir_state_slot,
    #####:    #####:  433:                                      var->num_state_slots);
        -:        -:  434:
    #####:    #####:  435:      ir_state_slot *state_slots = ir->get_state_slots();
    #####:    #####:  436:      for (unsigned i = 0; i < var->num_state_slots; i++) {
    #####:    #####:  437:         for (unsigned j = 0; j < 5; j++)
    #####:    #####:  438:            var->state_slots[i].tokens[j] = state_slots[i].tokens[j];
    #####:    #####:  439:         var->state_slots[i].swizzle = state_slots[i].swizzle;
        -:        -:  440:      }
        -:        -:  441:   } else {
       33:       33:  442:      var->state_slots = NULL;
        -:        -:  443:   }
        -:        -:  444:
       33:       33:  445:   var->constant_initializer = constant_copy(ir->constant_initializer, var);
        -:        -:  446:
       33:       33:  447:   var->interface_type = ir->get_interface_type();
        -:        -:  448:
       33:       33:  449:   if (var->data.mode == nir_var_local)
       25:       25:  450:      nir_function_impl_add_variable(impl, var);
        -:        -:  451:   else
        8:        8:  452:      nir_shader_add_variable(shader, var);
        -:        -:  453:
       33:       33:  454:   _mesa_hash_table_insert(var_table, ir, var);
       33:       33:  455:   this->var = var;
       33:       33:  456:}
        -:        -:  457:
        -:        -:  458:ir_visitor_status
        3:        3:  459:nir_function_visitor::visit_enter(ir_function *ir)
        -:        -:  460:{
        6:        6:  461:   foreach_in_list(ir_function_signature, sig, &ir->signatures) {
        3:        3:  462:      visitor->create_function(sig);
        -:        -:  463:   }
        3:        3:  464:   return visit_continue_with_parent;
        -:        -:  465:}
        -:        -:  466:
        -:        -:  467:void
        3:        3:  468:nir_visitor::create_function(ir_function_signature *ir)
        -:        -:  469:{
        3:        3:  470:   if (ir->is_intrinsic())
    #####:    #####:  471:      return;
        -:        -:  472:
        3:        3:  473:   nir_function *func = nir_function_create(shader, ir->function_name());
        -:        -:  474:
        3:        3:  475:   assert(ir->parameters.is_empty());
        3:        3:  476:   assert(ir->return_type == glsl_type::void_type);
        -:        -:  477:
        3:        3:  478:   _mesa_hash_table_insert(this->overload_table, ir, func);
        -:        -:  479:}
        -:        -:  480:
        -:        -:  481:void
        3:        3:  482:nir_visitor::visit(ir_function *ir)
        -:        -:  483:{
        6:        6:  484:   foreach_in_list(ir_function_signature, sig, &ir->signatures)
        3:        3:  485:      sig->accept(this);
        3:        3:  486:}
        -:        -:  487:
        -:        -:  488:void
        3:        3:  489:nir_visitor::visit(ir_function_signature *ir)
        -:        -:  490:{
        3:        3:  491:   if (ir->is_intrinsic())
    #####:    #####:  492:      return;
        -:        -:  493:
        -:        -:  494:   struct hash_entry *entry =
        3:        3:  495:      _mesa_hash_table_search(this->overload_table, ir);
        -:        -:  496:
        3:        3:  497:   assert(entry);
        3:        3:  498:   nir_function *func = (nir_function *) entry->data;
        -:        -:  499:
        3:        3:  500:   if (ir->is_defined) {
        3:        3:  501:      nir_function_impl *impl = nir_function_impl_create(func);
        3:        3:  502:      this->impl = impl;
        -:        -:  503:
        3:        3:  504:      assert(strcmp(func->name, "main") == 0);
        3:        3:  505:      assert(ir->parameters.is_empty());
        3:        3:  506:      assert(func->return_type == glsl_type::void_type);
        -:        -:  507:
        3:        3:  508:      this->is_global = false;
        -:        -:  509:
        3:        3:  510:      nir_builder_init(&b, impl);
        3:        3:  511:      b.cursor = nir_after_cf_list(&impl->body);
        3:        3:  512:      visit_exec_list(&ir->body, this);
        -:        -:  513:
        3:        3:  514:      this->is_global = true;
        -:        -:  515:   } else {
    #####:    #####:  516:      func->impl = NULL;
        -:        -:  517:   }
        -:        -:  518:}
        -:        -:  519:
        -:        -:  520:void
        3:        5:  521:nir_visitor::visit(ir_loop *ir)
        -:        -:  522:{
        3:        5:  523:   nir_push_loop(&b);
        3:        5:  524:   visit_exec_list(&ir->body_instructions, this);
        3:        5:  525:   nir_pop_loop(&b, NULL);
        3:        5:  526:}
        -:        -:  527:
        -:        -:  528:void
       14:       18:  529:nir_visitor::visit(ir_if *ir)
        -:        -:  530:{
       14:       18:  531:   nir_push_if(&b, evaluate_rvalue(ir->condition));
       14:       18:  532:   visit_exec_list(&ir->then_instructions, this);
       14:       18:  533:   nir_push_else(&b, NULL);
       14:       18:  534:   visit_exec_list(&ir->else_instructions, this);
       14:       18:  535:   nir_pop_if(&b, NULL);
       14:       18:  536:}
        -:        -:  537:
        -:        -:  538:void
    #####:    #####:  539:nir_visitor::visit(ir_discard *ir)
        -:        -:  540:{
        -:        -:  541:   /*
        -:        -:  542:    * discards aren't treated as control flow, because before we lower them
        -:        -:  543:    * they can appear anywhere in the shader and the stuff after them may still
        -:        -:  544:    * be executed (yay, crazy GLSL rules!). However, after lowering, all the
        -:        -:  545:    * discards will be immediately followed by a return.
        -:        -:  546:    */
        -:        -:  547:
        -:        -:  548:   nir_intrinsic_instr *discard;
    #####:    #####:  549:   if (ir->condition) {
    #####:    #####:  550:      discard = nir_intrinsic_instr_create(this->shader,
    #####:    #####:  551:                                           nir_intrinsic_discard_if);
        -:        -:  552:      discard->src[0] =
    #####:    #####:  553:         nir_src_for_ssa(evaluate_rvalue(ir->condition));
        -:        -:  554:   } else {
    #####:    #####:  555:      discard = nir_intrinsic_instr_create(this->shader, nir_intrinsic_discard);
        -:        -:  556:   }
        -:        -:  557:
    #####:    #####:  558:   nir_builder_instr_insert(&b, &discard->instr);
    #####:    #####:  559:}
        -:        -:  560:
        -:        -:  561:void
    #####:    #####:  562:nir_visitor::visit(ir_emit_vertex *ir)
        -:        -:  563:{
        -:        -:  564:   nir_intrinsic_instr *instr =
    #####:    #####:  565:      nir_intrinsic_instr_create(this->shader, nir_intrinsic_emit_vertex);
    #####:    #####:  566:   nir_intrinsic_set_stream_id(instr, ir->stream_id());
    #####:    #####:  567:   nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  568:}
        -:        -:  569:
        -:        -:  570:void
    #####:    #####:  571:nir_visitor::visit(ir_end_primitive *ir)
        -:        -:  572:{
        -:        -:  573:   nir_intrinsic_instr *instr =
    #####:    #####:  574:      nir_intrinsic_instr_create(this->shader, nir_intrinsic_end_primitive);
    #####:    #####:  575:   nir_intrinsic_set_stream_id(instr, ir->stream_id());
    #####:    #####:  576:   nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  577:}
        -:        -:  578:
        -:        -:  579:void
        5:        9:  580:nir_visitor::visit(ir_loop_jump *ir)
        -:        -:  581:{
        -:        -:  582:   nir_jump_type type;
        5:        9:  583:   switch (ir->mode) {
        -:        -:  584:   case ir_loop_jump::jump_break:
        5:        9:  585:      type = nir_jump_break;
        5:        9:  586:      break;
        -:        -:  587:   case ir_loop_jump::jump_continue:
    #####:    #####:  588:      type = nir_jump_continue;
    #####:    #####:  589:      break;
        -:        -:  590:   default:
    #####:    #####:  591:      unreachable("not reached");
        -:        -:  592:   }
        -:        -:  593:
        5:        9:  594:   nir_jump_instr *instr = nir_jump_instr_create(this->shader, type);
        5:        9:  595:   nir_builder_instr_insert(&b, &instr->instr);
        5:        9:  596:}
        -:        -:  597:
        -:        -:  598:void
    #####:    #####:  599:nir_visitor::visit(ir_return *ir)
        -:        -:  600:{
    #####:    #####:  601:   if (ir->value != NULL) {
        -:        -:  602:      nir_intrinsic_instr *copy =
    #####:    #####:  603:         nir_intrinsic_instr_create(this->shader, nir_intrinsic_copy_var);
        -:        -:  604:
    #####:    #####:  605:      copy->variables[0] = nir_deref_var_create(copy, this->impl->return_var);
    #####:    #####:  606:      copy->variables[1] = evaluate_deref(©->instr, ir->value);
        -:        -:  607:   }
        -:        -:  608:
    #####:    #####:  609:   nir_jump_instr *instr = nir_jump_instr_create(this->shader, nir_jump_return);
    #####:    #####:  610:   nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  611:}
        -:        -:  612:
        -:        -:  613:void
    #####:    #####:  614:nir_visitor::visit(ir_call *ir)
        -:        -:  615:{
    #####:    #####:  616:   if (ir->callee->is_intrinsic()) {
        -:        -:  617:      nir_intrinsic_op op;
        -:        -:  618:
    #####:    #####:  619:      switch (ir->callee->intrinsic_id) {
        -:        -:  620:      case ir_intrinsic_atomic_counter_read:
    #####:    #####:  621:         op = nir_intrinsic_atomic_counter_read_var;
    #####:    #####:  622:         break;
        -:        -:  623:      case ir_intrinsic_atomic_counter_increment:
    #####:    #####:  624:         op = nir_intrinsic_atomic_counter_inc_var;
    #####:    #####:  625:         break;
        -:        -:  626:      case ir_intrinsic_atomic_counter_predecrement:
    #####:    #####:  627:         op = nir_intrinsic_atomic_counter_dec_var;
    #####:    #####:  628:         break;
        -:        -:  629:      case ir_intrinsic_atomic_counter_add:
    #####:    #####:  630:         op = nir_intrinsic_atomic_counter_add_var;
    #####:    #####:  631:         break;
        -:        -:  632:      case ir_intrinsic_atomic_counter_and:
    #####:    #####:  633:         op = nir_intrinsic_atomic_counter_and_var;
    #####:    #####:  634:         break;
        -:        -:  635:      case ir_intrinsic_atomic_counter_or:
    #####:    #####:  636:         op = nir_intrinsic_atomic_counter_or_var;
    #####:    #####:  637:         break;
        -:        -:  638:      case ir_intrinsic_atomic_counter_xor:
    #####:    #####:  639:         op = nir_intrinsic_atomic_counter_xor_var;
    #####:    #####:  640:         break;
        -:        -:  641:      case ir_intrinsic_atomic_counter_min:
    #####:    #####:  642:         op = nir_intrinsic_atomic_counter_min_var;
    #####:    #####:  643:         break;
        -:        -:  644:      case ir_intrinsic_atomic_counter_max:
    #####:    #####:  645:         op = nir_intrinsic_atomic_counter_max_var;
    #####:    #####:  646:         break;
        -:        -:  647:      case ir_intrinsic_atomic_counter_exchange:
    #####:    #####:  648:         op = nir_intrinsic_atomic_counter_exchange_var;
    #####:    #####:  649:         break;
        -:        -:  650:      case ir_intrinsic_atomic_counter_comp_swap:
    #####:    #####:  651:         op = nir_intrinsic_atomic_counter_comp_swap_var;
    #####:    #####:  652:         break;
        -:        -:  653:      case ir_intrinsic_image_load:
    #####:    #####:  654:         op = nir_intrinsic_image_load;
    #####:    #####:  655:         break;
        -:        -:  656:      case ir_intrinsic_image_store:
    #####:    #####:  657:         op = nir_intrinsic_image_store;
    #####:    #####:  658:         break;
        -:        -:  659:      case ir_intrinsic_image_atomic_add:
    #####:    #####:  660:         op = nir_intrinsic_image_atomic_add;
    #####:    #####:  661:         break;
        -:        -:  662:      case ir_intrinsic_image_atomic_min:
    #####:    #####:  663:         op = nir_intrinsic_image_atomic_min;
    #####:    #####:  664:         break;
        -:        -:  665:      case ir_intrinsic_image_atomic_max:
    #####:    #####:  666:         op = nir_intrinsic_image_atomic_max;
    #####:    #####:  667:         break;
        -:        -:  668:      case ir_intrinsic_image_atomic_and:
    #####:    #####:  669:         op = nir_intrinsic_image_atomic_and;
    #####:    #####:  670:         break;
        -:        -:  671:      case ir_intrinsic_image_atomic_or:
    #####:    #####:  672:         op = nir_intrinsic_image_atomic_or;
    #####:    #####:  673:         break;
        -:        -:  674:      case ir_intrinsic_image_atomic_xor:
    #####:    #####:  675:         op = nir_intrinsic_image_atomic_xor;
    #####:    #####:  676:         break;
        -:        -:  677:      case ir_intrinsic_image_atomic_exchange:
    #####:    #####:  678:         op = nir_intrinsic_image_atomic_exchange;
    #####:    #####:  679:         break;
        -:        -:  680:      case ir_intrinsic_image_atomic_comp_swap:
    #####:    #####:  681:         op = nir_intrinsic_image_atomic_comp_swap;
    #####:    #####:  682:         break;
        -:        -:  683:      case ir_intrinsic_memory_barrier:
    #####:    #####:  684:         op = nir_intrinsic_memory_barrier;
    #####:    #####:  685:         break;
        -:        -:  686:      case ir_intrinsic_image_size:
    #####:    #####:  687:         op = nir_intrinsic_image_size;
    #####:    #####:  688:         break;
        -:        -:  689:      case ir_intrinsic_image_samples:
    #####:    #####:  690:         op = nir_intrinsic_image_samples;
    #####:    #####:  691:         break;
        -:        -:  692:      case ir_intrinsic_ssbo_store:
    #####:    #####:  693:         op = nir_intrinsic_store_ssbo;
    #####:    #####:  694:         break;
        -:        -:  695:      case ir_intrinsic_ssbo_load:
    #####:    #####:  696:         op = nir_intrinsic_load_ssbo;
    #####:    #####:  697:         break;
        -:        -:  698:      case ir_intrinsic_ssbo_atomic_add:
    #####:    #####:  699:         op = nir_intrinsic_ssbo_atomic_add;
    #####:    #####:  700:         break;
        -:        -:  701:      case ir_intrinsic_ssbo_atomic_and:
    #####:    #####:  702:         op = nir_intrinsic_ssbo_atomic_and;
    #####:    #####:  703:         break;
        -:        -:  704:      case ir_intrinsic_ssbo_atomic_or:
    #####:    #####:  705:         op = nir_intrinsic_ssbo_atomic_or;
    #####:    #####:  706:         break;
        -:        -:  707:      case ir_intrinsic_ssbo_atomic_xor:
    #####:    #####:  708:         op = nir_intrinsic_ssbo_atomic_xor;
    #####:    #####:  709:         break;
        -:        -:  710:      case ir_intrinsic_ssbo_atomic_min:
    #####:    #####:  711:         assert(ir->return_deref);
    #####:    #####:  712:         if (ir->return_deref->type == glsl_type::int_type)
    #####:    #####:  713:            op = nir_intrinsic_ssbo_atomic_imin;
    #####:    #####:  714:         else if (ir->return_deref->type == glsl_type::uint_type)
    #####:    #####:  715:            op = nir_intrinsic_ssbo_atomic_umin;
        -:        -:  716:         else
    #####:    #####:  717:            unreachable("Invalid type");
    #####:    #####:  718:         break;
        -:        -:  719:      case ir_intrinsic_ssbo_atomic_max:
    #####:    #####:  720:         assert(ir->return_deref);
    #####:    #####:  721:         if (ir->return_deref->type == glsl_type::int_type)
    #####:    #####:  722:            op = nir_intrinsic_ssbo_atomic_imax;
    #####:    #####:  723:         else if (ir->return_deref->type == glsl_type::uint_type)
    #####:    #####:  724:            op = nir_intrinsic_ssbo_atomic_umax;
        -:        -:  725:         else
    #####:    #####:  726:            unreachable("Invalid type");
    #####:    #####:  727:         break;
        -:        -:  728:      case ir_intrinsic_ssbo_atomic_exchange:
    #####:    #####:  729:         op = nir_intrinsic_ssbo_atomic_exchange;
    #####:    #####:  730:         break;
        -:        -:  731:      case ir_intrinsic_ssbo_atomic_comp_swap:
    #####:    #####:  732:         op = nir_intrinsic_ssbo_atomic_comp_swap;
    #####:    #####:  733:         break;
        -:        -:  734:      case ir_intrinsic_shader_clock:
    #####:    #####:  735:         op = nir_intrinsic_shader_clock;
    #####:    #####:  736:         break;
        -:        -:  737:      case ir_intrinsic_group_memory_barrier:
    #####:    #####:  738:         op = nir_intrinsic_group_memory_barrier;
    #####:    #####:  739:         break;
        -:        -:  740:      case ir_intrinsic_memory_barrier_atomic_counter:
    #####:    #####:  741:         op = nir_intrinsic_memory_barrier_atomic_counter;
    #####:    #####:  742:         break;
        -:        -:  743:      case ir_intrinsic_memory_barrier_buffer:
    #####:    #####:  744:         op = nir_intrinsic_memory_barrier_buffer;
    #####:    #####:  745:         break;
        -:        -:  746:      case ir_intrinsic_memory_barrier_image:
    #####:    #####:  747:         op = nir_intrinsic_memory_barrier_image;
    #####:    #####:  748:         break;
        -:        -:  749:      case ir_intrinsic_memory_barrier_shared:
    #####:    #####:  750:         op = nir_intrinsic_memory_barrier_shared;
    #####:    #####:  751:         break;
        -:        -:  752:      case ir_intrinsic_shared_load:
    #####:    #####:  753:         op = nir_intrinsic_load_shared;
    #####:    #####:  754:         break;
        -:        -:  755:      case ir_intrinsic_shared_store:
    #####:    #####:  756:         op = nir_intrinsic_store_shared;
    #####:    #####:  757:         break;
        -:        -:  758:      case ir_intrinsic_shared_atomic_add:
    #####:    #####:  759:         op = nir_intrinsic_shared_atomic_add;
    #####:    #####:  760:         break;
        -:        -:  761:      case ir_intrinsic_shared_atomic_and:
    #####:    #####:  762:         op = nir_intrinsic_shared_atomic_and;
    #####:    #####:  763:         break;
        -:        -:  764:      case ir_intrinsic_shared_atomic_or:
    #####:    #####:  765:         op = nir_intrinsic_shared_atomic_or;
    #####:    #####:  766:         break;
        -:        -:  767:      case ir_intrinsic_shared_atomic_xor:
    #####:    #####:  768:         op = nir_intrinsic_shared_atomic_xor;
    #####:    #####:  769:         break;
        -:        -:  770:      case ir_intrinsic_shared_atomic_min:
    #####:    #####:  771:         assert(ir->return_deref);
    #####:    #####:  772:         if (ir->return_deref->type == glsl_type::int_type)
    #####:    #####:  773:            op = nir_intrinsic_shared_atomic_imin;
    #####:    #####:  774:         else if (ir->return_deref->type == glsl_type::uint_type)
    #####:    #####:  775:            op = nir_intrinsic_shared_atomic_umin;
        -:        -:  776:         else
    #####:    #####:  777:            unreachable("Invalid type");
    #####:    #####:  778:         break;
        -:        -:  779:      case ir_intrinsic_shared_atomic_max:
    #####:    #####:  780:         assert(ir->return_deref);
    #####:    #####:  781:         if (ir->return_deref->type == glsl_type::int_type)
    #####:    #####:  782:            op = nir_intrinsic_shared_atomic_imax;
    #####:    #####:  783:         else if (ir->return_deref->type == glsl_type::uint_type)
    #####:    #####:  784:            op = nir_intrinsic_shared_atomic_umax;
        -:        -:  785:         else
    #####:    #####:  786:            unreachable("Invalid type");
    #####:    #####:  787:         break;
        -:        -:  788:      case ir_intrinsic_shared_atomic_exchange:
    #####:    #####:  789:         op = nir_intrinsic_shared_atomic_exchange;
    #####:    #####:  790:         break;
        -:        -:  791:      case ir_intrinsic_shared_atomic_comp_swap:
    #####:    #####:  792:         op = nir_intrinsic_shared_atomic_comp_swap;
    #####:    #####:  793:         break;
        -:        -:  794:      default:
    #####:    #####:  795:         unreachable("not reached");
        -:        -:  796:      }
        -:        -:  797:
    #####:    #####:  798:      nir_intrinsic_instr *instr = nir_intrinsic_instr_create(shader, op);
    #####:    #####:  799:      nir_dest *dest = &instr->dest;
        -:        -:  800:
    #####:    #####:  801:      switch (op) {
        -:        -:  802:      case nir_intrinsic_atomic_counter_read_var:
        -:        -:  803:      case nir_intrinsic_atomic_counter_inc_var:
        -:        -:  804:      case nir_intrinsic_atomic_counter_dec_var:
        -:        -:  805:      case nir_intrinsic_atomic_counter_add_var:
        -:        -:  806:      case nir_intrinsic_atomic_counter_min_var:
        -:        -:  807:      case nir_intrinsic_atomic_counter_max_var:
        -:        -:  808:      case nir_intrinsic_atomic_counter_and_var:
        -:        -:  809:      case nir_intrinsic_atomic_counter_or_var:
        -:        -:  810:      case nir_intrinsic_atomic_counter_xor_var:
        -:        -:  811:      case nir_intrinsic_atomic_counter_exchange_var:
        -:        -:  812:      case nir_intrinsic_atomic_counter_comp_swap_var: {
        -:        -:  813:         /* Set the counter variable dereference. */
    #####:    #####:  814:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####:  815:         ir_dereference *counter = (ir_dereference *)param;
        -:        -:  816:
    #####:    #####:  817:         instr->variables[0] = evaluate_deref(&instr->instr, counter);
    #####:    #####:  818:         param = param->get_next();
        -:        -:  819:
        -:        -:  820:         /* Set the intrinsic destination. */
    #####:    #####:  821:         if (ir->return_deref) {
    #####:    #####:  822:            nir_ssa_dest_init(&instr->instr, &instr->dest, 1, 32, NULL);
        -:        -:  823:         }
        -:        -:  824:
        -:        -:  825:         /* Set the intrinsic parameters. */
    #####:    #####:  826:         if (!param->is_tail_sentinel()) {
        -:        -:  827:            instr->src[0] =
    #####:    #####:  828:               nir_src_for_ssa(evaluate_rvalue((ir_dereference *)param));
    #####:    #####:  829:            param = param->get_next();
        -:        -:  830:         }
        -:        -:  831:
    #####:    #####:  832:         if (!param->is_tail_sentinel()) {
        -:        -:  833:            instr->src[1] =
    #####:    #####:  834:               nir_src_for_ssa(evaluate_rvalue((ir_dereference *)param));
    #####:    #####:  835:            param = param->get_next();
        -:        -:  836:         }
        -:        -:  837:
    #####:    #####:  838:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  839:         break;
        -:        -:  840:      }
        -:        -:  841:      case nir_intrinsic_image_load:
        -:        -:  842:      case nir_intrinsic_image_store:
        -:        -:  843:      case nir_intrinsic_image_atomic_add:
        -:        -:  844:      case nir_intrinsic_image_atomic_min:
        -:        -:  845:      case nir_intrinsic_image_atomic_max:
        -:        -:  846:      case nir_intrinsic_image_atomic_and:
        -:        -:  847:      case nir_intrinsic_image_atomic_or:
        -:        -:  848:      case nir_intrinsic_image_atomic_xor:
        -:        -:  849:      case nir_intrinsic_image_atomic_exchange:
        -:        -:  850:      case nir_intrinsic_image_atomic_comp_swap:
        -:        -:  851:      case nir_intrinsic_image_samples:
        -:        -:  852:      case nir_intrinsic_image_size: {
        -:        -:  853:         nir_ssa_undef_instr *instr_undef =
    #####:    #####:  854:            nir_ssa_undef_instr_create(shader, 1, 32);
    #####:    #####:  855:         nir_builder_instr_insert(&b, &instr_undef->instr);
        -:        -:  856:
        -:        -:  857:         /* Set the image variable dereference. */
    #####:    #####:  858:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####:  859:         ir_dereference *image = (ir_dereference *)param;
        -:        -:  860:         const glsl_type *type =
    #####:    #####:  861:            image->variable_referenced()->type->without_array();
        -:        -:  862:
    #####:    #####:  863:         instr->variables[0] = evaluate_deref(&instr->instr, image);
    #####:    #####:  864:         param = param->get_next();
        -:        -:  865:
        -:        -:  866:         /* Set the intrinsic destination. */
    #####:    #####:  867:         if (ir->return_deref) {
    #####:    #####:  868:            unsigned num_components = ir->return_deref->type->vector_elements;
    #####:    #####:  869:            if (instr->intrinsic == nir_intrinsic_image_size)
    #####:    #####:  870:               instr->num_components = num_components;
    #####:    #####:  871:            nir_ssa_dest_init(&instr->instr, &instr->dest,
    #####:    #####:  872:                              num_components, 32, NULL);
        -:        -:  873:         }
        -:        -:  874:
    #####:    #####:  875:         if (op == nir_intrinsic_image_size ||
        -:        -:  876:             op == nir_intrinsic_image_samples) {
    #####:    #####:  877:            nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  878:            break;
        -:        -:  879:         }
        -:        -:  880:
        -:        -:  881:         /* Set the address argument, extending the coordinate vector to four
        -:        -:  882:          * components.
        -:        -:  883:          */
        -:        -:  884:         nir_ssa_def *src_addr =
    #####:    #####:  885:            evaluate_rvalue((ir_dereference *)param);
        -:        -:  886:         nir_ssa_def *srcs[4];
        -:        -:  887:
    #####:    #####:  888:         for (int i = 0; i < 4; i++) {
    #####:    #####:  889:            if (i < type->coordinate_components())
    #####:    #####:  890:               srcs[i] = nir_channel(&b, src_addr, i);
        -:        -:  891:            else
    #####:    #####:  892:               srcs[i] = &instr_undef->def;
        -:        -:  893:         }
        -:        -:  894:
    #####:    #####:  895:         instr->src[0] = nir_src_for_ssa(nir_vec(&b, srcs, 4));
    #####:    #####:  896:         param = param->get_next();
        -:        -:  897:
        -:        -:  898:         /* Set the sample argument, which is undefined for single-sample
        -:        -:  899:          * images.
        -:        -:  900:          */
    #####:    #####:  901:         if (type->sampler_dimensionality == GLSL_SAMPLER_DIM_MS) {
        -:        -:  902:            instr->src[1] =
    #####:    #####:  903:               nir_src_for_ssa(evaluate_rvalue((ir_dereference *)param));
    #####:    #####:  904:            param = param->get_next();
        -:        -:  905:         } else {
    #####:    #####:  906:            instr->src[1] = nir_src_for_ssa(&instr_undef->def);
        -:        -:  907:         }
        -:        -:  908:
        -:        -:  909:         /* Set the intrinsic parameters. */
    #####:    #####:  910:         if (!param->is_tail_sentinel()) {
        -:        -:  911:            instr->src[2] =
    #####:    #####:  912:               nir_src_for_ssa(evaluate_rvalue((ir_dereference *)param));
    #####:    #####:  913:            param = param->get_next();
        -:        -:  914:         }
        -:        -:  915:
    #####:    #####:  916:         if (!param->is_tail_sentinel()) {
        -:        -:  917:            instr->src[3] =
    #####:    #####:  918:               nir_src_for_ssa(evaluate_rvalue((ir_dereference *)param));
    #####:    #####:  919:            param = param->get_next();
        -:        -:  920:         }
    #####:    #####:  921:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  922:         break;
        -:        -:  923:      }
        -:        -:  924:      case nir_intrinsic_memory_barrier:
        -:        -:  925:      case nir_intrinsic_group_memory_barrier:
        -:        -:  926:      case nir_intrinsic_memory_barrier_atomic_counter:
        -:        -:  927:      case nir_intrinsic_memory_barrier_buffer:
        -:        -:  928:      case nir_intrinsic_memory_barrier_image:
        -:        -:  929:      case nir_intrinsic_memory_barrier_shared:
    #####:    #####:  930:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  931:         break;
        -:        -:  932:      case nir_intrinsic_shader_clock:
    #####:    #####:  933:         nir_ssa_dest_init(&instr->instr, &instr->dest, 2, 32, NULL);
    #####:    #####:  934:         instr->num_components = 2;
    #####:    #####:  935:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  936:         break;
        -:        -:  937:      case nir_intrinsic_store_ssbo: {
    #####:    #####:  938:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####:  939:         ir_rvalue *block = ((ir_instruction *)param)->as_rvalue();
        -:        -:  940:
    #####:    #####:  941:         param = param->get_next();
    #####:    #####:  942:         ir_rvalue *offset = ((ir_instruction *)param)->as_rvalue();
        -:        -:  943:
    #####:    #####:  944:         param = param->get_next();
    #####:    #####:  945:         ir_rvalue *val = ((ir_instruction *)param)->as_rvalue();
        -:        -:  946:
    #####:    #####:  947:         param = param->get_next();
    #####:    #####:  948:         ir_constant *write_mask = ((ir_instruction *)param)->as_constant();
    #####:    #####:  949:         assert(write_mask);
        -:        -:  950:
    #####:    #####:  951:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(val));
    #####:    #####:  952:         instr->src[1] = nir_src_for_ssa(evaluate_rvalue(block));
    #####:    #####:  953:         instr->src[2] = nir_src_for_ssa(evaluate_rvalue(offset));
    #####:    #####:  954:         nir_intrinsic_set_write_mask(instr, write_mask->value.u[0]);
    #####:    #####:  955:         instr->num_components = val->type->vector_elements;
        -:        -:  956:
    #####:    #####:  957:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####:  958:         break;
        -:        -:  959:      }
        -:        -:  960:      case nir_intrinsic_load_ssbo: {
    #####:    #####:  961:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####:  962:         ir_rvalue *block = ((ir_instruction *)param)->as_rvalue();
        -:        -:  963:
    #####:    #####:  964:         param = param->get_next();
    #####:    #####:  965:         ir_rvalue *offset = ((ir_instruction *)param)->as_rvalue();
        -:        -:  966:
    #####:    #####:  967:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(block));
    #####:    #####:  968:         instr->src[1] = nir_src_for_ssa(evaluate_rvalue(offset));
        -:        -:  969:
    #####:    #####:  970:         const glsl_type *type = ir->return_deref->var->type;
    #####:    #####:  971:         instr->num_components = type->vector_elements;
        -:        -:  972:
        -:        -:  973:         /* Setup destination register */
    #####:    #####:  974:         unsigned bit_size = glsl_get_bit_size(type);
    #####:    #####:  975:         nir_ssa_dest_init(&instr->instr, &instr->dest,
    #####:    #####:  976:                           type->vector_elements, bit_size, NULL);
        -:        -:  977:
        -:        -:  978:         /* Insert the created nir instruction now since in the case of boolean
        -:        -:  979:          * result we will need to emit another instruction after it
        -:        -:  980:          */
    #####:    #####:  981:         nir_builder_instr_insert(&b, &instr->instr);
        -:        -:  982:
        -:        -:  983:         /*
        -:        -:  984:          * In SSBO/UBO's, a true boolean value is any non-zero value, but we
        -:        -:  985:          * consider a true boolean to be ~0. Fix this up with a != 0
        -:        -:  986:          * comparison.
        -:        -:  987:          */
    #####:    #####:  988:         if (type->base_type == GLSL_TYPE_BOOL) {
        -:        -:  989:            nir_alu_instr *load_ssbo_compare =
    #####:    #####:  990:               nir_alu_instr_create(shader, nir_op_ine);
    #####:    #####:  991:            load_ssbo_compare->src[0].src.is_ssa = true;
    #####:    #####:  992:            load_ssbo_compare->src[0].src.ssa = &instr->dest.ssa;
        -:        -:  993:            load_ssbo_compare->src[1].src =
    #####:    #####:  994:               nir_src_for_ssa(nir_imm_int(&b, 0));
    #####:    #####:  995:            for (unsigned i = 0; i < type->vector_elements; i++)
    #####:    #####:  996:               load_ssbo_compare->src[1].swizzle[i] = 0;
    #####:    #####:  997:            nir_ssa_dest_init(&load_ssbo_compare->instr,
        -:        -:  998:                              &load_ssbo_compare->dest.dest,
    #####:    #####:  999:                              type->vector_elements, bit_size, NULL);
    #####:    #####: 1000:            load_ssbo_compare->dest.write_mask = (1 << type->vector_elements) - 1;
    #####:    #####: 1001:            nir_builder_instr_insert(&b, &load_ssbo_compare->instr);
    #####:    #####: 1002:            dest = &load_ssbo_compare->dest.dest;
        -:        -: 1003:         }
    #####:    #####: 1004:         break;
        -:        -: 1005:      }
        -:        -: 1006:      case nir_intrinsic_ssbo_atomic_add:
        -:        -: 1007:      case nir_intrinsic_ssbo_atomic_imin:
        -:        -: 1008:      case nir_intrinsic_ssbo_atomic_umin:
        -:        -: 1009:      case nir_intrinsic_ssbo_atomic_imax:
        -:        -: 1010:      case nir_intrinsic_ssbo_atomic_umax:
        -:        -: 1011:      case nir_intrinsic_ssbo_atomic_and:
        -:        -: 1012:      case nir_intrinsic_ssbo_atomic_or:
        -:        -: 1013:      case nir_intrinsic_ssbo_atomic_xor:
        -:        -: 1014:      case nir_intrinsic_ssbo_atomic_exchange:
        -:        -: 1015:      case nir_intrinsic_ssbo_atomic_comp_swap: {
    #####:    #####: 1016:         int param_count = ir->actual_parameters.length();
    #####:    #####: 1017:         assert(param_count == 3 || param_count == 4);
        -:        -: 1018:
        -:        -: 1019:         /* Block index */
    #####:    #####: 1020:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####: 1021:         ir_instruction *inst = (ir_instruction *) param;
    #####:    #####: 1022:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1023:
        -:        -: 1024:         /* Offset */
    #####:    #####: 1025:         param = param->get_next();
    #####:    #####: 1026:         inst = (ir_instruction *) param;
    #####:    #####: 1027:         instr->src[1] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1028:
        -:        -: 1029:         /* data1 parameter (this is always present) */
    #####:    #####: 1030:         param = param->get_next();
    #####:    #####: 1031:         inst = (ir_instruction *) param;
    #####:    #####: 1032:         instr->src[2] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1033:
        -:        -: 1034:         /* data2 parameter (only with atomic_comp_swap) */
    #####:    #####: 1035:         if (param_count == 4) {
    #####:    #####: 1036:            assert(op == nir_intrinsic_ssbo_atomic_comp_swap);
    #####:    #####: 1037:            param = param->get_next();
    #####:    #####: 1038:            inst = (ir_instruction *) param;
    #####:    #####: 1039:            instr->src[3] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1040:         }
        -:        -: 1041:
        -:        -: 1042:         /* Atomic result */
    #####:    #####: 1043:         assert(ir->return_deref);
    #####:    #####: 1044:         nir_ssa_dest_init(&instr->instr, &instr->dest,
    #####:    #####: 1045:                           ir->return_deref->type->vector_elements, 32, NULL);
    #####:    #####: 1046:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####: 1047:         break;
        -:        -: 1048:      }
        -:        -: 1049:      case nir_intrinsic_load_shared: {
    #####:    #####: 1050:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####: 1051:         ir_rvalue *offset = ((ir_instruction *)param)->as_rvalue();
        -:        -: 1052:
    #####:    #####: 1053:         nir_intrinsic_set_base(instr, 0);
    #####:    #####: 1054:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(offset));
        -:        -: 1055:
    #####:    #####: 1056:         const glsl_type *type = ir->return_deref->var->type;
    #####:    #####: 1057:         instr->num_components = type->vector_elements;
        -:        -: 1058:
        -:        -: 1059:         /* Setup destination register */
    #####:    #####: 1060:         unsigned bit_size = glsl_get_bit_size(type);
    #####:    #####: 1061:         nir_ssa_dest_init(&instr->instr, &instr->dest,
    #####:    #####: 1062:                           type->vector_elements, bit_size, NULL);
        -:        -: 1063:
    #####:    #####: 1064:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####: 1065:         break;
        -:        -: 1066:      }
        -:        -: 1067:      case nir_intrinsic_store_shared: {
    #####:    #####: 1068:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####: 1069:         ir_rvalue *offset = ((ir_instruction *)param)->as_rvalue();
        -:        -: 1070:
    #####:    #####: 1071:         param = param->get_next();
    #####:    #####: 1072:         ir_rvalue *val = ((ir_instruction *)param)->as_rvalue();
        -:        -: 1073:
    #####:    #####: 1074:         param = param->get_next();
    #####:    #####: 1075:         ir_constant *write_mask = ((ir_instruction *)param)->as_constant();
    #####:    #####: 1076:         assert(write_mask);
        -:        -: 1077:
    #####:    #####: 1078:         nir_intrinsic_set_base(instr, 0);
    #####:    #####: 1079:         instr->src[1] = nir_src_for_ssa(evaluate_rvalue(offset));
        -:        -: 1080:
    #####:    #####: 1081:         nir_intrinsic_set_write_mask(instr, write_mask->value.u[0]);
        -:        -: 1082:
    #####:    #####: 1083:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(val));
    #####:    #####: 1084:         instr->num_components = val->type->vector_elements;
        -:        -: 1085:
    #####:    #####: 1086:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####: 1087:         break;
        -:        -: 1088:      }
        -:        -: 1089:      case nir_intrinsic_shared_atomic_add:
        -:        -: 1090:      case nir_intrinsic_shared_atomic_imin:
        -:        -: 1091:      case nir_intrinsic_shared_atomic_umin:
        -:        -: 1092:      case nir_intrinsic_shared_atomic_imax:
        -:        -: 1093:      case nir_intrinsic_shared_atomic_umax:
        -:        -: 1094:      case nir_intrinsic_shared_atomic_and:
        -:        -: 1095:      case nir_intrinsic_shared_atomic_or:
        -:        -: 1096:      case nir_intrinsic_shared_atomic_xor:
        -:        -: 1097:      case nir_intrinsic_shared_atomic_exchange:
        -:        -: 1098:      case nir_intrinsic_shared_atomic_comp_swap: {
    #####:    #####: 1099:         int param_count = ir->actual_parameters.length();
    #####:    #####: 1100:         assert(param_count == 2 || param_count == 3);
        -:        -: 1101:
        -:        -: 1102:         /* Offset */
    #####:    #####: 1103:         exec_node *param = ir->actual_parameters.get_head();
    #####:    #####: 1104:         ir_instruction *inst = (ir_instruction *) param;
    #####:    #####: 1105:         instr->src[0] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1106:
        -:        -: 1107:         /* data1 parameter (this is always present) */
    #####:    #####: 1108:         param = param->get_next();
    #####:    #####: 1109:         inst = (ir_instruction *) param;
    #####:    #####: 1110:         instr->src[1] = nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1111:
        -:        -: 1112:         /* data2 parameter (only with atomic_comp_swap) */
    #####:    #####: 1113:         if (param_count == 3) {
    #####:    #####: 1114:            assert(op == nir_intrinsic_shared_atomic_comp_swap);
    #####:    #####: 1115:            param = param->get_next();
    #####:    #####: 1116:            inst = (ir_instruction *) param;
        -:        -: 1117:            instr->src[2] =
    #####:    #####: 1118:               nir_src_for_ssa(evaluate_rvalue(inst->as_rvalue()));
        -:        -: 1119:         }
        -:        -: 1120:
        -:        -: 1121:         /* Atomic result */
    #####:    #####: 1122:         assert(ir->return_deref);
    #####:    #####: 1123:         unsigned bit_size = glsl_get_bit_size(ir->return_deref->type);
    #####:    #####: 1124:         nir_ssa_dest_init(&instr->instr, &instr->dest,
    #####:    #####: 1125:                           ir->return_deref->type->vector_elements,
    #####:    #####: 1126:                           bit_size, NULL);
    #####:    #####: 1127:         nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####: 1128:         break;
        -:        -: 1129:      }
        -:        -: 1130:      default:
    #####:    #####: 1131:         unreachable("not reached");
        -:        -: 1132:      }
        -:        -: 1133:
    #####:    #####: 1134:      if (ir->return_deref) {
        -:        -: 1135:         nir_intrinsic_instr *store_instr =
    #####:    #####: 1136:            nir_intrinsic_instr_create(shader, nir_intrinsic_store_var);
    #####:    #####: 1137:         store_instr->num_components = ir->return_deref->type->vector_elements;
    #####:    #####: 1138:         nir_intrinsic_set_write_mask(store_instr,
    #####:    #####: 1139:                                      (1 << store_instr->num_components) - 1);
        -:        -: 1140:
        -:        -: 1141:         store_instr->variables[0] =
    #####:    #####: 1142:            evaluate_deref(&store_instr->instr, ir->return_deref);
    #####:    #####: 1143:         store_instr->src[0] = nir_src_for_ssa(&dest->ssa);
        -:        -: 1144:
    #####:    #####: 1145:         nir_builder_instr_insert(&b, &store_instr->instr);
        -:        -: 1146:      }
        -:        -: 1147:
    #####:    #####: 1148:      return;
        -:        -: 1149:   }
        -:        -: 1150:
        -:        -: 1151:   struct hash_entry *entry =
    #####:    #####: 1152:      _mesa_hash_table_search(this->overload_table, ir->callee);
    #####:    #####: 1153:   assert(entry);
    #####:    #####: 1154:   nir_function *callee = (nir_function *) entry->data;
        -:        -: 1155:
    #####:    #####: 1156:   nir_call_instr *instr = nir_call_instr_create(this->shader, callee);
        -:        -: 1157:
    #####:    #####: 1158:   unsigned i = 0;
    #####:    #####: 1159:   foreach_in_list(ir_dereference, param, &ir->actual_parameters) {
    #####:    #####: 1160:      instr->params[i] = evaluate_deref(&instr->instr, param);
    #####:    #####: 1161:      i++;
        -:        -: 1162:   }
        -:        -: 1163:
    #####:    #####: 1164:   instr->return_deref = evaluate_deref(&instr->instr, ir->return_deref);
    #####:    #####: 1165:   nir_builder_instr_insert(&b, &instr->instr);
        -:        -: 1166:}
        -:        -: 1167:
        -:        -: 1168:void
       68:       68: 1169:nir_visitor::visit(ir_assignment *ir)
        -:        -: 1170:{
       68:       68: 1171:   unsigned num_components = ir->lhs->type->vector_elements;
        -:        -: 1172:
      136:      136: 1173:   b.exact = ir->lhs->variable_referenced()->data.invariant ||
      136:      136: 1174:             ir->lhs->variable_referenced()->data.precise;
        -:        -: 1175:
      172:      172: 1176:   if ((ir->rhs->as_dereference() || ir->rhs->as_constant()) &&
       61:       61: 1177:       (ir->write_mask == (1 << num_components) - 1 || ir->write_mask == 0)) {
        -:        -: 1178:      /* We're doing a plain-as-can-be copy, so emit a copy_var */
        -:        -: 1179:      nir_intrinsic_instr *copy =
       49:       49: 1180:         nir_intrinsic_instr_create(this->shader, nir_intrinsic_copy_var);
        -:        -: 1181:
       49:       49: 1182:      copy->variables[0] = evaluate_deref(©->instr, ir->lhs);
       49:       49: 1183:      copy->variables[1] = evaluate_deref(©->instr, ir->rhs);
        -:        -: 1184:
       49:       49: 1185:      if (ir->condition) {
       12:       12: 1186:         nir_push_if(&b, evaluate_rvalue(ir->condition));
       12:       12: 1187:         nir_builder_instr_insert(&b, ©->instr);
       12:       12: 1188:         nir_pop_if(&b, NULL);
        -:        -: 1189:      } else {
       37:       37: 1190:         nir_builder_instr_insert(&b, ©->instr);
        -:        -: 1191:      }
       49:       49: 1192:      return;
        -:        -: 1193:   }
        -:        -: 1194:
       19:       19: 1195:   assert(ir->rhs->type->is_scalar() || ir->rhs->type->is_vector());
        -:        -: 1196:
       19:       19: 1197:   ir->lhs->accept(this);
       19:       19: 1198:   nir_deref_var *lhs_deref = this->deref_head;
       19:       19: 1199:   nir_ssa_def *src = evaluate_rvalue(ir->rhs);
        -:        -: 1200:
       19:       19: 1201:   if (ir->write_mask != (1 << num_components) - 1 && ir->write_mask != 0) {
        -:        -: 1202:      /* GLSL IR will give us the input to the write-masked assignment in a
        -:        -: 1203:       * single packed vector.  So, for example, if the writemask is xzw, then
        -:        -: 1204:       * we have to swizzle x -> x, y -> z, and z -> w and get the y component
        -:        -: 1205:       * from the load.
        -:        -: 1206:       */
        -:        -: 1207:      unsigned swiz[4];
        6:        6: 1208:      unsigned component = 0;
       30:       30: 1209:      for (unsigned i = 0; i < 4; i++) {
       24:       24: 1210:         swiz[i] = ir->write_mask & (1 << i) ? component++ : 0;
        -:        -: 1211:      }
        6:        6: 1212:      src = nir_swizzle(&b, src, swiz, num_components, !supports_ints);
        -:        -: 1213:   }
        -:        -: 1214:
        -:        -: 1215:   nir_intrinsic_instr *store =
       19:       19: 1216:      nir_intrinsic_instr_create(this->shader, nir_intrinsic_store_var);
       19:       19: 1217:   store->num_components = ir->lhs->type->vector_elements;
       19:       19: 1218:   nir_intrinsic_set_write_mask(store, ir->write_mask);
       19:       19: 1219:   store->variables[0] = nir_deref_var_clone(lhs_deref, store);
       19:       19: 1220:   store->src[0] = nir_src_for_ssa(src);
        -:        -: 1221:
       19:       19: 1222:   if (ir->condition) {
    #####:    #####: 1223:      nir_push_if(&b, evaluate_rvalue(ir->condition));
    #####:    #####: 1224:      nir_builder_instr_insert(&b, &store->instr);
    #####:    #####: 1225:      nir_pop_if(&b, NULL);
        -:        -: 1226:   } else {
       19:       19: 1227:      nir_builder_instr_insert(&b, &store->instr);
        -:        -: 1228:   }
        -:        -: 1229:}
        -:        -: 1230:
        -:        -: 1231:/*
        -:        -: 1232: * Given an instruction, returns a pointer to its destination or NULL if there
        -:        -: 1233: * is no destination.
        -:        -: 1234: *
        -:        -: 1235: * Note that this only handles instructions we generate at this level.
        -:        -: 1236: */
        -:        -: 1237:static nir_dest *
       82:       88: 1238:get_instr_dest(nir_instr *instr)
        -:        -: 1239:{
        -:        -: 1240:   nir_alu_instr *alu_instr;
        -:        -: 1241:   nir_intrinsic_instr *intrinsic_instr;
        -:        -: 1242:   nir_tex_instr *tex_instr;
        -:        -: 1243:
       82:       88: 1244:   switch (instr->type) {
        -:        -: 1245:      case nir_instr_type_alu:
    #####:    #####: 1246:         alu_instr = nir_instr_as_alu(instr);
    #####:    #####: 1247:         return &alu_instr->dest.dest;
        -:        -: 1248:
        -:        -: 1249:      case nir_instr_type_intrinsic:
       82:       88: 1250:         intrinsic_instr = nir_instr_as_intrinsic(instr);
       82:       88: 1251:         if (nir_intrinsic_infos[intrinsic_instr->intrinsic].has_dest)
       82:       88: 1252:            return &intrinsic_instr->dest;
        -:        -: 1253:         else
    #####:    #####: 1254:            return NULL;
        -:        -: 1255:
        -:        -: 1256:      case nir_instr_type_tex:
    #####:    #####: 1257:         tex_instr = nir_instr_as_tex(instr);
    #####:    #####: 1258:         return &tex_instr->dest;
        -:        -: 1259:
        -:        -: 1260:      default:
    #####:    #####: 1261:         unreachable("not reached");
        -:        -: 1262:   }
        -:        -: 1263:
        -:        -: 1264:   return NULL;
        -:        -: 1265:}
        -:        -: 1266:
        -:        -: 1267:void
       82:       88: 1268:nir_visitor::add_instr(nir_instr *instr, unsigned num_components,
        -:        -: 1269:                       unsigned bit_size)
        -:        -: 1270:{
       82:       88: 1271:   nir_dest *dest = get_instr_dest(instr);
        -:        -: 1272:
       82:       88: 1273:   if (dest)
       82:       88: 1274:      nir_ssa_dest_init(instr, dest, num_components, bit_size, NULL);
        -:        -: 1275:
       82:       88: 1276:   nir_builder_instr_insert(&b, instr);
        -:        -: 1277:
       82:       88: 1278:   if (dest) {
       82:       88: 1279:      assert(dest->is_ssa);
       82:       88: 1280:      this->result = &dest->ssa;
        -:        -: 1281:   }
       82:       88: 1282:}
        -:        -: 1283:
        -:        -: 1284:nir_ssa_def *
      128:      138: 1285:nir_visitor::evaluate_rvalue(ir_rvalue* ir)
        -:        -: 1286:{
      128:      138: 1287:   ir->accept(this);
      128:      138: 1288:   if (ir->as_dereference() || ir->as_constant()) {
        -:        -: 1289:      /*
        -:        -: 1290:       * A dereference is being used on the right hand side, which means we
        -:        -: 1291:       * must emit a variable load.
        -:        -: 1292:       */
        -:        -: 1293:
        -:        -: 1294:      nir_intrinsic_instr *load_instr =
       82:       88: 1295:         nir_intrinsic_instr_create(this->shader, nir_intrinsic_load_var);
       82:       88: 1296:      load_instr->num_components = ir->type->vector_elements;
       82:       88: 1297:      load_instr->variables[0] = this->deref_head;
       82:       88: 1298:      ralloc_steal(load_instr, load_instr->variables[0]);
       82:       88: 1299:      unsigned bit_size = glsl_get_bit_size(ir->type);
       82:       88: 1300:      add_instr(&load_instr->instr, ir->type->vector_elements, bit_size);
        -:        -: 1301:   }
        -:        -: 1302:
      128:      138: 1303:   return this->result;
        -:        -: 1304:}
        -:        -: 1305:
        -:        -: 1306:static bool
       37:       39: 1307:type_is_float(glsl_base_type type)
        -:        -: 1308:{
       37:       39: 1309:   return type == GLSL_TYPE_FLOAT || type == GLSL_TYPE_DOUBLE;
        -:        -: 1310:}
        -:        -: 1311:
        -:        -: 1312:static bool
        3:        3: 1313:type_is_signed(glsl_base_type type)
        -:        -: 1314:{
        3:        3: 1315:   return type == GLSL_TYPE_INT || type == GLSL_TYPE_INT64;
        -:        -: 1316:}
        -:        -: 1317:
        -:        -: 1318:void
       43:       45: 1319:nir_visitor::visit(ir_expression *ir)
        -:        -: 1320:{
        -:        -: 1321:   /* Some special cases */
       43:       45: 1322:   switch (ir->operation) {
        -:        -: 1323:   case ir_binop_ubo_load: {
        -:        -: 1324:      nir_intrinsic_instr *load =
    #####:    #####: 1325:         nir_intrinsic_instr_create(this->shader, nir_intrinsic_load_ubo);
    #####:    #####: 1326:      unsigned bit_size = glsl_get_bit_size(ir->type);
    #####:    #####: 1327:      load->num_components = ir->type->vector_elements;
    #####:    #####: 1328:      load->src[0] = nir_src_for_ssa(evaluate_rvalue(ir->operands[0]));
    #####:    #####: 1329:      load->src[1] = nir_src_for_ssa(evaluate_rvalue(ir->operands[1]));
    #####:    #####: 1330:      add_instr(&load->instr, ir->type->vector_elements, bit_size);
        -:        -: 1331:
        -:        -: 1332:      /*
        -:        -: 1333:       * In UBO's, a true boolean value is any non-zero value, but we consider
        -:        -: 1334:       * a true boolean to be ~0. Fix this up with a != 0 comparison.
        -:        -: 1335:       */
        -:        -: 1336:
    #####:    #####: 1337:      if (ir->type->base_type == GLSL_TYPE_BOOL)
    #####:    #####: 1338:         this->result = nir_ine(&b, &load->dest.ssa, nir_imm_int(&b, 0));
        -:        -: 1339:
    #####:    #####: 1340:      return;
        -:        -: 1341:   }
        -:        -: 1342:
        -:        -: 1343:   case ir_unop_interpolate_at_centroid:
        -:        -: 1344:   case ir_binop_interpolate_at_offset:
        -:        -: 1345:   case ir_binop_interpolate_at_sample: {
    #####:    #####: 1346:      ir_dereference *deref = ir->operands[0]->as_dereference();
    #####:    #####: 1347:      ir_swizzle *swizzle = NULL;
    #####:    #####: 1348:      if (!deref) {
        -:        -: 1349:         /* the api does not allow a swizzle here, but the varying packing code
        -:        -: 1350:          * may have pushed one into here.
        -:        -: 1351:          */
    #####:    #####: 1352:         swizzle = ir->operands[0]->as_swizzle();
    #####:    #####: 1353:         assert(swizzle);
    #####:    #####: 1354:         deref = swizzle->val->as_dereference();
    #####:    #####: 1355:         assert(deref);
        -:        -: 1356:      }
        -:        -: 1357:
    #####:    #####: 1358:      deref->accept(this);
        -:        -: 1359:
        -:        -: 1360:      nir_intrinsic_op op;
    #####:    #####: 1361:      if (this->deref_head->var->data.mode == nir_var_shader_in) {
    #####:    #####: 1362:         switch (ir->operation) {
        -:        -: 1363:         case ir_unop_interpolate_at_centroid:
    #####:    #####: 1364:            op = nir_intrinsic_interp_var_at_centroid;
    #####:    #####: 1365:            break;
        -:        -: 1366:         case ir_binop_interpolate_at_offset:
    #####:    #####: 1367:            op = nir_intrinsic_interp_var_at_offset;
    #####:    #####: 1368:            break;
        -:        -: 1369:         case ir_binop_interpolate_at_sample:
    #####:    #####: 1370:            op = nir_intrinsic_interp_var_at_sample;
    #####:    #####: 1371:            break;
        -:        -: 1372:         default:
    #####:    #####: 1373:            unreachable("Invalid interpolation intrinsic");
        -:        -: 1374:         }
        -:        -: 1375:      } else {
        -:        -: 1376:         /* This case can happen if the vertex shader does not write the
        -:        -: 1377:          * given varying.  In this case, the linker will lower it to a
        -:        -: 1378:          * global variable.  Since interpolating a variable makes no
        -:        -: 1379:          * sense, we'll just turn it into a load which will probably
        -:        -: 1380:          * eventually end up as an SSA definition.
        -:        -: 1381:          */
    #####:    #####: 1382:         assert(this->deref_head->var->data.mode == nir_var_global);
    #####:    #####: 1383:         op = nir_intrinsic_load_var;
        -:        -: 1384:      }
        -:        -: 1385:
    #####:    #####: 1386:      nir_intrinsic_instr *intrin = nir_intrinsic_instr_create(shader, op);
    #####:    #####: 1387:      intrin->num_components = deref->type->vector_elements;
    #####:    #####: 1388:      intrin->variables[0] = this->deref_head;
    #####:    #####: 1389:      ralloc_steal(intrin, intrin->variables[0]);
        -:        -: 1390:
    #####:    #####: 1391:      if (intrin->intrinsic == nir_intrinsic_interp_var_at_offset ||
    #####:    #####: 1392:          intrin->intrinsic == nir_intrinsic_interp_var_at_sample)
    #####:    #####: 1393:         intrin->src[0] = nir_src_for_ssa(evaluate_rvalue(ir->operands[1]));
        -:        -: 1394:
    #####:    #####: 1395:      unsigned bit_size =  glsl_get_bit_size(deref->type);
    #####:    #####: 1396:      add_instr(&intrin->instr, deref->type->vector_elements, bit_size);
        -:        -: 1397:
    #####:    #####: 1398:      if (swizzle) {
        -:        -: 1399:         unsigned swiz[4] = {
    #####:    #####: 1400:            swizzle->mask.x, swizzle->mask.y, swizzle->mask.z, swizzle->mask.w
    #####:    #####: 1401:         };
        -:        -: 1402:
    #####:    #####: 1403:         result = nir_swizzle(&b, result, swiz,
    #####:    #####: 1404:                              swizzle->type->vector_elements, false);
        -:        -: 1405:      }
        -:        -: 1406:
    #####:    #####: 1407:      return;
        -:        -: 1408:   }
        -:        -: 1409:
        -:        -: 1410:   default:
       43:       45: 1411:      break;
        -:        -: 1412:   }
        -:        -: 1413:
        -:        -: 1414:   nir_ssa_def *srcs[4];
      123:      129: 1415:   for (unsigned i = 0; i < ir->get_num_operands(); i++)
       80:       84: 1416:      srcs[i] = evaluate_rvalue(ir->operands[i]);
        -:        -: 1417:
        -:        -: 1418:   glsl_base_type types[4];
      123:      129: 1419:   for (unsigned i = 0; i < ir->get_num_operands(); i++)
       80:       84: 1420:      if (supports_ints)
       80:       84: 1421:         types[i] = ir->operands[i]->type->base_type;
        -:        -: 1422:      else
    #####:    #####: 1423:         types[i] = GLSL_TYPE_FLOAT;
        -:        -: 1424:
        -:        -: 1425:   glsl_base_type out_type;
       43:       45: 1426:   if (supports_ints)
       43:       45: 1427:      out_type = ir->type->base_type;
        -:        -: 1428:   else
    #####:    #####: 1429:      out_type = GLSL_TYPE_FLOAT;
        -:        -: 1430:
       43:       45: 1431:   switch (ir->operation) {
    #####:    #####: 1432:   case ir_unop_bit_not: result = nir_inot(&b, srcs[0]); break;
        -:        -: 1433:   case ir_unop_logic_not:
    #####:    #####: 1434:      result = supports_ints ? nir_inot(&b, srcs[0]) : nir_fnot(&b, srcs[0]);
    #####:    #####: 1435:      break;
        -:        -: 1436:   case ir_unop_neg:
    #####:    #####: 1437:      result = type_is_float(types[0]) ? nir_fneg(&b, srcs[0])
    #####:    #####: 1438:                                       : nir_ineg(&b, srcs[0]);
    #####:    #####: 1439:      break;
        -:        -: 1440:   case ir_unop_abs:
    #####:    #####: 1441:      result = type_is_float(types[0]) ? nir_fabs(&b, srcs[0])
    #####:    #####: 1442:                                       : nir_iabs(&b, srcs[0]);
    #####:    #####: 1443:      break;
        -:        -: 1444:   case ir_unop_saturate:
    #####:    #####: 1445:      assert(type_is_float(types[0]));
    #####:    #####: 1446:      result = nir_fsat(&b, srcs[0]);
    #####:    #####: 1447:      break;
        -:        -: 1448:   case ir_unop_sign:
    #####:    #####: 1449:      result = type_is_float(types[0]) ? nir_fsign(&b, srcs[0])
    #####:    #####: 1450:                                       : nir_isign(&b, srcs[0]);
    #####:    #####: 1451:      break;
        1:        1: 1452:   case ir_unop_rcp:  result = nir_frcp(&b, srcs[0]);  break;
    #####:    #####: 1453:   case ir_unop_rsq:  result = nir_frsq(&b, srcs[0]);  break;
    #####:    #####: 1454:   case ir_unop_sqrt: result = nir_fsqrt(&b, srcs[0]); break;
    #####:    #####: 1455:   case ir_unop_exp:  unreachable("ir_unop_exp should have been lowered");
    #####:    #####: 1456:   case ir_unop_log:  unreachable("ir_unop_log should have been lowered");
    #####:    #####: 1457:   case ir_unop_exp2: result = nir_fexp2(&b, srcs[0]); break;
    #####:    #####: 1458:   case ir_unop_log2: result = nir_flog2(&b, srcs[0]); break;
        -:        -: 1459:   case ir_unop_i2f:
        4:        4: 1460:      result = supports_ints ? nir_i2f32(&b, srcs[0]) : nir_fmov(&b, srcs[0]);
        4:        4: 1461:      break;
        -:        -: 1462:   case ir_unop_u2f:
    #####:    #####: 1463:      result = supports_ints ? nir_u2f32(&b, srcs[0]) : nir_fmov(&b, srcs[0]);
    #####:    #####: 1464:      break;
        -:        -: 1465:   case ir_unop_b2f:
    #####:    #####: 1466:      result = supports_ints ? nir_b2f(&b, srcs[0]) : nir_fmov(&b, srcs[0]);
    #####:    #####: 1467:      break;
        -:        -: 1468:   case ir_unop_f2i:
        -:        -: 1469:   case ir_unop_f2u:
        -:        -: 1470:   case ir_unop_f2b:
        -:        -: 1471:   case ir_unop_i2b:
        -:        -: 1472:   case ir_unop_b2i:
        -:        -: 1473:   case ir_unop_b2i64:
        -:        -: 1474:   case ir_unop_d2f:
        -:        -: 1475:   case ir_unop_f2d:
        -:        -: 1476:   case ir_unop_d2i:
        -:        -: 1477:   case ir_unop_d2u:
        -:        -: 1478:   case ir_unop_d2b:
        -:        -: 1479:   case ir_unop_i2d:
        -:        -: 1480:   case ir_unop_u2d:
        -:        -: 1481:   case ir_unop_i642i:
        -:        -: 1482:   case ir_unop_i642u:
        -:        -: 1483:   case ir_unop_i642f:
        -:        -: 1484:   case ir_unop_i642b:
        -:        -: 1485:   case ir_unop_i642d:
        -:        -: 1486:   case ir_unop_u642i:
        -:        -: 1487:   case ir_unop_u642u:
        -:        -: 1488:   case ir_unop_u642f:
        -:        -: 1489:   case ir_unop_u642d:
        -:        -: 1490:   case ir_unop_i2i64:
        -:        -: 1491:   case ir_unop_u2i64:
        -:        -: 1492:   case ir_unop_f2i64:
        -:        -: 1493:   case ir_unop_d2i64:
        -:        -: 1494:   case ir_unop_i2u64:
        -:        -: 1495:   case ir_unop_u2u64:
        -:        -: 1496:   case ir_unop_f2u64:
        -:        -: 1497:   case ir_unop_d2u64:
        -:        -: 1498:   case ir_unop_i2u:
        -:        -: 1499:   case ir_unop_u2i:
        -:        -: 1500:   case ir_unop_i642u64:
        -:        -: 1501:   case ir_unop_u642i64: {
    #####:    #####: 1502:      nir_alu_type src_type = nir_get_nir_type_for_glsl_base_type(types[0]);
    #####:    #####: 1503:      nir_alu_type dst_type = nir_get_nir_type_for_glsl_base_type(out_type);
    #####:    #####: 1504:      result = nir_build_alu(&b, nir_type_conversion_op(src_type, dst_type),
    #####:    #####: 1505:                                 srcs[0], NULL, NULL, NULL);
        -:        -: 1506:      /* b2i and b2f don't have fixed bit-size versions so the builder will
        -:        -: 1507:       * just assume 32 and we have to fix it up here.
        -:        -: 1508:       */
    #####:    #####: 1509:      result->bit_size = nir_alu_type_get_type_size(dst_type);
    #####:    #####: 1510:      break;
        -:        -: 1511:   }
        -:        -: 1512:
        -:        -: 1513:   case ir_unop_bitcast_i2f:
        -:        -: 1514:   case ir_unop_bitcast_f2i:
        -:        -: 1515:   case ir_unop_bitcast_u2f:
        -:        -: 1516:   case ir_unop_bitcast_f2u:
        -:        -: 1517:   case ir_unop_bitcast_i642d:
        -:        -: 1518:   case ir_unop_bitcast_d2i64:
        -:        -: 1519:   case ir_unop_bitcast_u642d:
        -:        -: 1520:   case ir_unop_bitcast_d2u64:
        -:        -: 1521:   case ir_unop_subroutine_to_int:
        -:        -: 1522:      /* no-op */
    #####:    #####: 1523:      result = nir_imov(&b, srcs[0]);
    #####:    #####: 1524:      break;
    #####:    #####: 1525:   case ir_unop_trunc: result = nir_ftrunc(&b, srcs[0]); break;
    #####:    #####: 1526:   case ir_unop_ceil:  result = nir_fceil(&b, srcs[0]); break;
        1:        1: 1527:   case ir_unop_floor: result = nir_ffloor(&b, srcs[0]); break;
    #####:    #####: 1528:   case ir_unop_fract: result = nir_ffract(&b, srcs[0]); break;
    #####:    #####: 1529:   case ir_unop_round_even: result = nir_fround_even(&b, srcs[0]); break;
    #####:    #####: 1530:   case ir_unop_sin:   result = nir_fsin(&b, srcs[0]); break;
    #####:    #####: 1531:   case ir_unop_cos:   result = nir_fcos(&b, srcs[0]); break;
    #####:    #####: 1532:   case ir_unop_dFdx:        result = nir_fddx(&b, srcs[0]); break;
    #####:    #####: 1533:   case ir_unop_dFdy:        result = nir_fddy(&b, srcs[0]); break;
    #####:    #####: 1534:   case ir_unop_dFdx_fine:   result = nir_fddx_fine(&b, srcs[0]); break;
    #####:    #####: 1535:   case ir_unop_dFdy_fine:   result = nir_fddy_fine(&b, srcs[0]); break;
    #####:    #####: 1536:   case ir_unop_dFdx_coarse: result = nir_fddx_coarse(&b, srcs[0]); break;
    #####:    #####: 1537:   case ir_unop_dFdy_coarse: result = nir_fddy_coarse(&b, srcs[0]); break;
        -:        -: 1538:   case ir_unop_pack_snorm_2x16:
    #####:    #####: 1539:      result = nir_pack_snorm_2x16(&b, srcs[0]);
    #####:    #####: 1540:      break;
        -:        -: 1541:   case ir_unop_pack_snorm_4x8:
    #####:    #####: 1542:      result = nir_pack_snorm_4x8(&b, srcs[0]);
    #####:    #####: 1543:      break;
        -:        -: 1544:   case ir_unop_pack_unorm_2x16:
    #####:    #####: 1545:      result = nir_pack_unorm_2x16(&b, srcs[0]);
    #####:    #####: 1546:      break;
        -:        -: 1547:   case ir_unop_pack_unorm_4x8:
    #####:    #####: 1548:      result = nir_pack_unorm_4x8(&b, srcs[0]);
    #####:    #####: 1549:      break;
        -:        -: 1550:   case ir_unop_pack_half_2x16:
    #####:    #####: 1551:      result = nir_pack_half_2x16(&b, srcs[0]);
    #####:    #####: 1552:      break;
        -:        -: 1553:   case ir_unop_unpack_snorm_2x16:
    #####:    #####: 1554:      result = nir_unpack_snorm_2x16(&b, srcs[0]);
    #####:    #####: 1555:      break;
        -:        -: 1556:   case ir_unop_unpack_snorm_4x8:
    #####:    #####: 1557:      result = nir_unpack_snorm_4x8(&b, srcs[0]);
    #####:    #####: 1558:      break;
        -:        -: 1559:   case ir_unop_unpack_unorm_2x16:
    #####:    #####: 1560:      result = nir_unpack_unorm_2x16(&b, srcs[0]);
    #####:    #####: 1561:      break;
        -:        -: 1562:   case ir_unop_unpack_unorm_4x8:
    #####:    #####: 1563:      result = nir_unpack_unorm_4x8(&b, srcs[0]);
    #####:    #####: 1564:      break;
        -:        -: 1565:   case ir_unop_unpack_half_2x16:
    #####:    #####: 1566:      result = nir_unpack_half_2x16(&b, srcs[0]);
    #####:    #####: 1567:      break;
        -:        -: 1568:   case ir_unop_pack_double_2x32:
        -:        -: 1569:   case ir_unop_pack_int_2x32:
        -:        -: 1570:   case ir_unop_pack_uint_2x32:
    #####:    #####: 1571:      result = nir_pack_64_2x32(&b, srcs[0]);
    #####:    #####: 1572:      break;
        -:        -: 1573:   case ir_unop_unpack_double_2x32:
        -:        -: 1574:   case ir_unop_unpack_int_2x32:
        -:        -: 1575:   case ir_unop_unpack_uint_2x32:
    #####:    #####: 1576:      result = nir_unpack_64_2x32(&b, srcs[0]);
    #####:    #####: 1577:      break;
        -:        -: 1578:   case ir_unop_bitfield_reverse:
    #####:    #####: 1579:      result = nir_bitfield_reverse(&b, srcs[0]);
    #####:    #####: 1580:      break;
        -:        -: 1581:   case ir_unop_bit_count:
    #####:    #####: 1582:      result = nir_bit_count(&b, srcs[0]);
    #####:    #####: 1583:      break;
        -:        -: 1584:   case ir_unop_find_msb:
    #####:    #####: 1585:      switch (types[0]) {
        -:        -: 1586:      case GLSL_TYPE_UINT:
    #####:    #####: 1587:         result = nir_ufind_msb(&b, srcs[0]);
    #####:    #####: 1588:         break;
        -:        -: 1589:      case GLSL_TYPE_INT:
    #####:    #####: 1590:         result = nir_ifind_msb(&b, srcs[0]);
    #####:    #####: 1591:         break;
        -:        -: 1592:      default:
    #####:    #####: 1593:         unreachable("Invalid type for findMSB()");
        -:        -: 1594:      }
    #####:    #####: 1595:      break;
        -:        -: 1596:   case ir_unop_find_lsb:
    #####:    #####: 1597:      result = nir_find_lsb(&b, srcs[0]);
    #####:    #####: 1598:      break;
        -:        -: 1599:
        -:        -: 1600:   case ir_unop_noise:
    #####:    #####: 1601:      switch (ir->type->vector_elements) {
        -:        -: 1602:      case 1:
    #####:    #####: 1603:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1604:            case 1: result = nir_fnoise1_1(&b, srcs[0]); break;
    #####:    #####: 1605:            case 2: result = nir_fnoise1_2(&b, srcs[0]); break;
    #####:    #####: 1606:            case 3: result = nir_fnoise1_3(&b, srcs[0]); break;
    #####:    #####: 1607:            case 4: result = nir_fnoise1_4(&b, srcs[0]); break;
    #####:    #####: 1608:            default: unreachable("not reached");
        -:        -: 1609:         }
    #####:    #####: 1610:         break;
        -:        -: 1611:      case 2:
    #####:    #####: 1612:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1613:            case 1: result = nir_fnoise2_1(&b, srcs[0]); break;
    #####:    #####: 1614:            case 2: result = nir_fnoise2_2(&b, srcs[0]); break;
    #####:    #####: 1615:            case 3: result = nir_fnoise2_3(&b, srcs[0]); break;
    #####:    #####: 1616:            case 4: result = nir_fnoise2_4(&b, srcs[0]); break;
    #####:    #####: 1617:            default: unreachable("not reached");
        -:        -: 1618:         }
    #####:    #####: 1619:         break;
        -:        -: 1620:      case 3:
    #####:    #####: 1621:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1622:            case 1: result = nir_fnoise3_1(&b, srcs[0]); break;
    #####:    #####: 1623:            case 2: result = nir_fnoise3_2(&b, srcs[0]); break;
    #####:    #####: 1624:            case 3: result = nir_fnoise3_3(&b, srcs[0]); break;
    #####:    #####: 1625:            case 4: result = nir_fnoise3_4(&b, srcs[0]); break;
    #####:    #####: 1626:            default: unreachable("not reached");
        -:        -: 1627:         }
    #####:    #####: 1628:         break;
        -:        -: 1629:      case 4:
    #####:    #####: 1630:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1631:            case 1: result = nir_fnoise4_1(&b, srcs[0]); break;
    #####:    #####: 1632:            case 2: result = nir_fnoise4_2(&b, srcs[0]); break;
    #####:    #####: 1633:            case 3: result = nir_fnoise4_3(&b, srcs[0]); break;
    #####:    #####: 1634:            case 4: result = nir_fnoise4_4(&b, srcs[0]); break;
    #####:    #####: 1635:            default: unreachable("not reached");
        -:        -: 1636:         }
    #####:    #####: 1637:         break;
        -:        -: 1638:      default:
    #####:    #####: 1639:         unreachable("not reached");
        -:        -: 1640:      }
    #####:    #####: 1641:      break;
        -:        -: 1642:   case ir_unop_get_buffer_size: {
    #####:    #####: 1643:      nir_intrinsic_instr *load = nir_intrinsic_instr_create(
        -:        -: 1644:         this->shader,
    #####:    #####: 1645:         nir_intrinsic_get_buffer_size);
    #####:    #####: 1646:      load->num_components = ir->type->vector_elements;
    #####:    #####: 1647:      load->src[0] = nir_src_for_ssa(evaluate_rvalue(ir->operands[0]));
    #####:    #####: 1648:      unsigned bit_size = glsl_get_bit_size(ir->type);
    #####:    #####: 1649:      add_instr(&load->instr, ir->type->vector_elements, bit_size);
    #####:    #####: 1650:      return;
        -:        -: 1651:   }
        -:        -: 1652:
        -:        -: 1653:   case ir_binop_add:
        9:        9: 1654:      result = type_is_float(out_type) ? nir_fadd(&b, srcs[0], srcs[1])
        9:        9: 1655:                                       : nir_iadd(&b, srcs[0], srcs[1]);
        6:        6: 1656:      break;
        -:        -: 1657:   case ir_binop_sub:
    #####:    #####: 1658:      result = type_is_float(out_type) ? nir_fsub(&b, srcs[0], srcs[1])
    #####:    #####: 1659:                                       : nir_isub(&b, srcs[0], srcs[1]);
    #####:    #####: 1660:      break;
        -:        -: 1661:   case ir_binop_mul:
        4:        4: 1662:      result = type_is_float(out_type) ? nir_fmul(&b, srcs[0], srcs[1])
        4:        4: 1663:                                       : nir_imul(&b, srcs[0], srcs[1]);
        2:        2: 1664:      break;
        -:        -: 1665:   case ir_binop_div:
    #####:    #####: 1666:      if (type_is_float(out_type))
    #####:    #####: 1667:         result = nir_fdiv(&b, srcs[0], srcs[1]);
    #####:    #####: 1668:      else if (type_is_signed(out_type))
    #####:    #####: 1669:         result = nir_idiv(&b, srcs[0], srcs[1]);
        -:        -: 1670:      else
    #####:    #####: 1671:         result = nir_udiv(&b, srcs[0], srcs[1]);
    #####:    #####: 1672:      break;
        -:        -: 1673:   case ir_binop_mod:
       10:       10: 1674:      result = type_is_float(out_type) ? nir_fmod(&b, srcs[0], srcs[1])
       10:       10: 1675:                                       : nir_umod(&b, srcs[0], srcs[1]);
        5:        5: 1676:      break;
        -:        -: 1677:   case ir_binop_min:
    #####:    #####: 1678:      if (type_is_float(out_type))
    #####:    #####: 1679:         result = nir_fmin(&b, srcs[0], srcs[1]);
    #####:    #####: 1680:      else if (type_is_signed(out_type))
    #####:    #####: 1681:         result = nir_imin(&b, srcs[0], srcs[1]);
        -:        -: 1682:      else
    #####:    #####: 1683:         result = nir_umin(&b, srcs[0], srcs[1]);
    #####:    #####: 1684:      break;
        -:        -: 1685:   case ir_binop_max:
    #####:    #####: 1686:      if (type_is_float(out_type))
    #####:    #####: 1687:         result = nir_fmax(&b, srcs[0], srcs[1]);
    #####:    #####: 1688:      else if (type_is_signed(out_type))
    #####:    #####: 1689:         result = nir_imax(&b, srcs[0], srcs[1]);
        -:        -: 1690:      else
    #####:    #####: 1691:         result = nir_umax(&b, srcs[0], srcs[1]);
    #####:    #####: 1692:      break;
    #####:    #####: 1693:   case ir_binop_pow: result = nir_fpow(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1694:   case ir_binop_bit_and: result = nir_iand(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1695:   case ir_binop_bit_or: result = nir_ior(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1696:   case ir_binop_bit_xor: result = nir_ixor(&b, srcs[0], srcs[1]); break;
        -:        -: 1697:   case ir_binop_logic_and:
    #####:    #####: 1698:      result = supports_ints ? nir_iand(&b, srcs[0], srcs[1])
    #####:    #####: 1699:                             : nir_fand(&b, srcs[0], srcs[1]);
    #####:    #####: 1700:      break;
        -:        -: 1701:   case ir_binop_logic_or:
    #####:    #####: 1702:      result = supports_ints ? nir_ior(&b, srcs[0], srcs[1])
    #####:    #####: 1703:                             : nir_for(&b, srcs[0], srcs[1]);
    #####:    #####: 1704:      break;
        -:        -: 1705:   case ir_binop_logic_xor:
    #####:    #####: 1706:      result = supports_ints ? nir_ixor(&b, srcs[0], srcs[1])
    #####:    #####: 1707:                             : nir_fxor(&b, srcs[0], srcs[1]);
    #####:    #####: 1708:      break;
    #####:    #####: 1709:   case ir_binop_lshift: result = nir_ishl(&b, srcs[0], srcs[1]); break;
        -:        -: 1710:   case ir_binop_rshift:
    #####:    #####: 1711:      result = (type_is_signed(out_type)) ? nir_ishr(&b, srcs[0], srcs[1])
    #####:    #####: 1712:                                          : nir_ushr(&b, srcs[0], srcs[1]);
    #####:    #####: 1713:      break;
        -:        -: 1714:   case ir_binop_imul_high:
    #####:    #####: 1715:      result = (out_type == GLSL_TYPE_INT) ? nir_imul_high(&b, srcs[0], srcs[1])
    #####:    #####: 1716:                                           : nir_umul_high(&b, srcs[0], srcs[1]);
    #####:    #####: 1717:      break;
    #####:    #####: 1718:   case ir_binop_carry:  result = nir_uadd_carry(&b, srcs[0], srcs[1]);  break;
    #####:    #####: 1719:   case ir_binop_borrow: result = nir_usub_borrow(&b, srcs[0], srcs[1]); break;
        -:        -: 1720:   case ir_binop_less:
    #####:    #####: 1721:      if (supports_ints) {
    #####:    #####: 1722:         if (type_is_float(types[0]))
    #####:    #####: 1723:            result = nir_flt(&b, srcs[0], srcs[1]);
    #####:    #####: 1724:         else if (type_is_signed(types[0]))
    #####:    #####: 1725:            result = nir_ilt(&b, srcs[0], srcs[1]);
        -:        -: 1726:         else
    #####:    #####: 1727:            result = nir_ult(&b, srcs[0], srcs[1]);
        -:        -: 1728:      } else {
    #####:    #####: 1729:         result = nir_slt(&b, srcs[0], srcs[1]);
        -:        -: 1730:      }
    #####:    #####: 1731:      break;
        -:        -: 1732:   case ir_binop_greater:
    #####:    #####: 1733:      if (supports_ints) {
    #####:    #####: 1734:         if (type_is_float(types[0]))
    #####:    #####: 1735:            result = nir_flt(&b, srcs[1], srcs[0]);
    #####:    #####: 1736:         else if (type_is_signed(types[0]))
    #####:    #####: 1737:            result = nir_ilt(&b, srcs[1], srcs[0]);
        -:        -: 1738:         else
    #####:    #####: 1739:            result = nir_ult(&b, srcs[1], srcs[0]);
        -:        -: 1740:      } else {
    #####:    #####: 1741:         result = nir_slt(&b, srcs[1], srcs[0]);
        -:        -: 1742:      }
    #####:    #####: 1743:      break;
        -:        -: 1744:   case ir_binop_lequal:
        2:        2: 1745:      if (supports_ints) {
        2:        2: 1746:         if (type_is_float(types[0]))
        2:        2: 1747:            result = nir_fge(&b, srcs[1], srcs[0]);
    #####:    #####: 1748:         else if (type_is_signed(types[0]))
    #####:    #####: 1749:            result = nir_ige(&b, srcs[1], srcs[0]);
        -:        -: 1750:         else
    #####:    #####: 1751:            result = nir_uge(&b, srcs[1], srcs[0]);
        -:        -: 1752:      } else {
    #####:    #####: 1753:         result = nir_slt(&b, srcs[1], srcs[0]);
        -:        -: 1754:      }
        2:        2: 1755:      break;
        -:        -: 1756:   case ir_binop_gequal:
        6:        8: 1757:      if (supports_ints) {
        6:        8: 1758:         if (type_is_float(types[0]))
        3:        5: 1759:            result = nir_fge(&b, srcs[0], srcs[1]);
        3:        3: 1760:         else if (type_is_signed(types[0]))
        3:        3: 1761:            result = nir_ige(&b, srcs[0], srcs[1]);
        -:        -: 1762:         else
    #####:    #####: 1763:            result = nir_uge(&b, srcs[0], srcs[1]);
        -:        -: 1764:      } else {
    #####:    #####: 1765:         result = nir_slt(&b, srcs[0], srcs[1]);
        -:        -: 1766:      }
        6:        8: 1767:      break;
        -:        -: 1768:   case ir_binop_equal:
       16:       16: 1769:      if (supports_ints) {
       16:       16: 1770:         if (type_is_float(types[0]))
    #####:    #####: 1771:            result = nir_feq(&b, srcs[0], srcs[1]);
        -:        -: 1772:         else
       16:       16: 1773:            result = nir_ieq(&b, srcs[0], srcs[1]);
        -:        -: 1774:      } else {
    #####:    #####: 1775:         result = nir_seq(&b, srcs[0], srcs[1]);
        -:        -: 1776:      }
       16:       16: 1777:      break;
        -:        -: 1778:   case ir_binop_nequal:
    #####:    #####: 1779:      if (supports_ints) {
    #####:    #####: 1780:         if (type_is_float(types[0]))
    #####:    #####: 1781:            result = nir_fne(&b, srcs[0], srcs[1]);
        -:        -: 1782:         else
    #####:    #####: 1783:            result = nir_ine(&b, srcs[0], srcs[1]);
        -:        -: 1784:      } else {
    #####:    #####: 1785:         result = nir_sne(&b, srcs[0], srcs[1]);
        -:        -: 1786:      }
    #####:    #####: 1787:      break;
        -:        -: 1788:   case ir_binop_all_equal:
    #####:    #####: 1789:      if (supports_ints) {
    #####:    #####: 1790:         if (type_is_float(types[0])) {
    #####:    #####: 1791:            switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1792:               case 1: result = nir_feq(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1793:               case 2: result = nir_ball_fequal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1794:               case 3: result = nir_ball_fequal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1795:               case 4: result = nir_ball_fequal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1796:               default:
    #####:    #####: 1797:                  unreachable("not reached");
        -:        -: 1798:            }
        -:        -: 1799:         } else {
    #####:    #####: 1800:            switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1801:               case 1: result = nir_ieq(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1802:               case 2: result = nir_ball_iequal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1803:               case 3: result = nir_ball_iequal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1804:               case 4: result = nir_ball_iequal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1805:               default:
    #####:    #####: 1806:                  unreachable("not reached");
        -:        -: 1807:            }
        -:        -: 1808:         }
        -:        -: 1809:      } else {
    #####:    #####: 1810:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1811:            case 1: result = nir_seq(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1812:            case 2: result = nir_fall_equal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1813:            case 3: result = nir_fall_equal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1814:            case 4: result = nir_fall_equal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1815:            default:
    #####:    #####: 1816:               unreachable("not reached");
        -:        -: 1817:         }
        -:        -: 1818:      }
    #####:    #####: 1819:      break;
        -:        -: 1820:   case ir_binop_any_nequal:
    #####:    #####: 1821:      if (supports_ints) {
    #####:    #####: 1822:         if (type_is_float(types[0])) {
    #####:    #####: 1823:            switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1824:               case 1: result = nir_fne(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1825:               case 2: result = nir_bany_fnequal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1826:               case 3: result = nir_bany_fnequal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1827:               case 4: result = nir_bany_fnequal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1828:               default:
    #####:    #####: 1829:                  unreachable("not reached");
        -:        -: 1830:            }
        -:        -: 1831:         } else {
    #####:    #####: 1832:            switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1833:               case 1: result = nir_ine(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1834:               case 2: result = nir_bany_inequal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1835:               case 3: result = nir_bany_inequal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1836:               case 4: result = nir_bany_inequal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1837:               default:
    #####:    #####: 1838:                  unreachable("not reached");
        -:        -: 1839:            }
        -:        -: 1840:         }
        -:        -: 1841:      } else {
    #####:    #####: 1842:         switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1843:            case 1: result = nir_sne(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1844:            case 2: result = nir_fany_nequal2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1845:            case 3: result = nir_fany_nequal3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1846:            case 4: result = nir_fany_nequal4(&b, srcs[0], srcs[1]); break;
        -:        -: 1847:            default:
    #####:    #####: 1848:               unreachable("not reached");
        -:        -: 1849:         }
        -:        -: 1850:      }
    #####:    #####: 1851:      break;
        -:        -: 1852:   case ir_binop_dot:
    #####:    #####: 1853:      switch (ir->operands[0]->type->vector_elements) {
    #####:    #####: 1854:         case 2: result = nir_fdot2(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1855:         case 3: result = nir_fdot3(&b, srcs[0], srcs[1]); break;
    #####:    #####: 1856:         case 4: result = nir_fdot4(&b, srcs[0], srcs[1]); break;
        -:        -: 1857:         default:
    #####:    #####: 1858:            unreachable("not reached");
        -:        -: 1859:      }
    #####:    #####: 1860:      break;
        -:        -: 1861:
    #####:    #####: 1862:   case ir_binop_ldexp: result = nir_ldexp(&b, srcs[0], srcs[1]); break;
        -:        -: 1863:   case ir_triop_fma:
    #####:    #####: 1864:      result = nir_ffma(&b, srcs[0], srcs[1], srcs[2]);
    #####:    #####: 1865:      break;
        -:        -: 1866:   case ir_triop_lrp:
    #####:    #####: 1867:      result = nir_flrp(&b, srcs[0], srcs[1], srcs[2]);
    #####:    #####: 1868:      break;
        -:        -: 1869:   case ir_triop_csel:
    #####:    #####: 1870:      if (supports_ints)
    #####:    #####: 1871:         result = nir_bcsel(&b, srcs[0], srcs[1], srcs[2]);
        -:        -: 1872:      else
    #####:    #####: 1873:         result = nir_fcsel(&b, srcs[0], srcs[1], srcs[2]);
    #####:    #####: 1874:      break;
        -:        -: 1875:   case ir_triop_bitfield_extract:
        -:        -: 1876:      result = (out_type == GLSL_TYPE_INT) ?
    #####:    #####: 1877:         nir_ibitfield_extract(&b, srcs[0], srcs[1], srcs[2]) :
    #####:    #####: 1878:         nir_ubitfield_extract(&b, srcs[0], srcs[1], srcs[2]);
    #####:    #####: 1879:      break;
        -:        -: 1880:   case ir_quadop_bitfield_insert:
    #####:    #####: 1881:      result = nir_bitfield_insert(&b, srcs[0], srcs[1], srcs[2], srcs[3]);
    #####:    #####: 1882:      break;
        -:        -: 1883:   case ir_quadop_vector:
    #####:    #####: 1884:      result = nir_vec(&b, srcs, ir->type->vector_elements);
    #####:    #####: 1885:      break;
        -:        -: 1886:
        -:        -: 1887:   default:
    #####:    #####: 1888:      unreachable("not reached");
        -:        -: 1889:   }
        -:        -: 1890:}
        -:        -: 1891:
        -:        -: 1892:void
        3:        5: 1893:nir_visitor::visit(ir_swizzle *ir)
        -:        -: 1894:{
        3:        5: 1895:   unsigned swizzle[4] = { ir->mask.x, ir->mask.y, ir->mask.z, ir->mask.w };
        6:       10: 1896:   result = nir_swizzle(&b, evaluate_rvalue(ir->val), swizzle,
        9:       15: 1897:                        ir->type->vector_elements, !supports_ints);
        3:        5: 1898:}
        -:        -: 1899:
        -:        -: 1900:void
    #####:    #####: 1901:nir_visitor::visit(ir_texture *ir)
        -:        -: 1902:{
        -:        -: 1903:   unsigned num_srcs;
        -:        -: 1904:   nir_texop op;
    #####:    #####: 1905:   switch (ir->op) {
        -:        -: 1906:   case ir_tex:
    #####:    #####: 1907:      op = nir_texop_tex;
    #####:    #####: 1908:      num_srcs = 1; /* coordinate */
    #####:    #####: 1909:      break;
        -:        -: 1910:
        -:        -: 1911:   case ir_txb:
        -:        -: 1912:   case ir_txl:
    #####:    #####: 1913:      op = (ir->op == ir_txb) ? nir_texop_txb : nir_texop_txl;
    #####:    #####: 1914:      num_srcs = 2; /* coordinate, bias/lod */
    #####:    #####: 1915:      break;
        -:        -: 1916:
        -:        -: 1917:   case ir_txd:
    #####:    #####: 1918:      op = nir_texop_txd; /* coordinate, dPdx, dPdy */
    #####:    #####: 1919:      num_srcs = 3;
    #####:    #####: 1920:      break;
        -:        -: 1921:
        -:        -: 1922:   case ir_txf:
    #####:    #####: 1923:      op = nir_texop_txf;
    #####:    #####: 1924:      if (ir->lod_info.lod != NULL)
    #####:    #####: 1925:         num_srcs = 2; /* coordinate, lod */
        -:        -: 1926:      else
    #####:    #####: 1927:         num_srcs = 1; /* coordinate */
    #####:    #####: 1928:      break;
        -:        -: 1929:
        -:        -: 1930:   case ir_txf_ms:
    #####:    #####: 1931:      op = nir_texop_txf_ms;
    #####:    #####: 1932:      num_srcs = 2; /* coordinate, sample_index */
    #####:    #####: 1933:      break;
        -:        -: 1934:
        -:        -: 1935:   case ir_txs:
    #####:    #####: 1936:      op = nir_texop_txs;
    #####:    #####: 1937:      if (ir->lod_info.lod != NULL)
    #####:    #####: 1938:         num_srcs = 1; /* lod */
        -:        -: 1939:      else
    #####:    #####: 1940:         num_srcs = 0;
    #####:    #####: 1941:      break;
        -:        -: 1942:
        -:        -: 1943:   case ir_lod:
    #####:    #####: 1944:      op = nir_texop_lod;
    #####:    #####: 1945:      num_srcs = 1; /* coordinate */
    #####:    #####: 1946:      break;
        -:        -: 1947:
        -:        -: 1948:   case ir_tg4:
    #####:    #####: 1949:      op = nir_texop_tg4;
    #####:    #####: 1950:      num_srcs = 1; /* coordinate */
    #####:    #####: 1951:      break;
        -:        -: 1952:
        -:        -: 1953:   case ir_query_levels:
    #####:    #####: 1954:      op = nir_texop_query_levels;
    #####:    #####: 1955:      num_srcs = 0;
    #####:    #####: 1956:      break;
        -:        -: 1957:
        -:        -: 1958:   case ir_texture_samples:
    #####:    #####: 1959:      op = nir_texop_texture_samples;
    #####:    #####: 1960:      num_srcs = 0;
    #####:    #####: 1961:      break;
        -:        -: 1962:
        -:        -: 1963:   case ir_samples_identical:
    #####:    #####: 1964:      op = nir_texop_samples_identical;
    #####:    #####: 1965:      num_srcs = 1; /* coordinate */
    #####:    #####: 1966:      break;
        -:        -: 1967:
        -:        -: 1968:   default:
    #####:    #####: 1969:      unreachable("not reached");
        -:        -: 1970:   }
        -:        -: 1971:
    #####:    #####: 1972:   if (ir->projector != NULL)
    #####:    #####: 1973:      num_srcs++;
    #####:    #####: 1974:   if (ir->shadow_comparator != NULL)
    #####:    #####: 1975:      num_srcs++;
    #####:    #####: 1976:   if (ir->offset != NULL)
    #####:    #####: 1977:      num_srcs++;
        -:        -: 1978:
    #####:    #####: 1979:   nir_tex_instr *instr = nir_tex_instr_create(this->shader, num_srcs);
        -:        -: 1980:
    #####:    #####: 1981:   instr->op = op;
        -:        -: 1982:   instr->sampler_dim =
    #####:    #####: 1983:      (glsl_sampler_dim) ir->sampler->type->sampler_dimensionality;
    #####:    #####: 1984:   instr->is_array = ir->sampler->type->sampler_array;
    #####:    #####: 1985:   instr->is_shadow = ir->sampler->type->sampler_shadow;
    #####:    #####: 1986:   if (instr->is_shadow)
    #####:    #####: 1987:      instr->is_new_style_shadow = (ir->type->vector_elements == 1);
    #####:    #####: 1988:   switch (ir->type->base_type) {
        -:        -: 1989:   case GLSL_TYPE_FLOAT:
    #####:    #####: 1990:      instr->dest_type = nir_type_float;
    #####:    #####: 1991:      break;
        -:        -: 1992:   case GLSL_TYPE_INT:
    #####:    #####: 1993:      instr->dest_type = nir_type_int;
    #####:    #####: 1994:      break;
        -:        -: 1995:   case GLSL_TYPE_BOOL:
        -:        -: 1996:   case GLSL_TYPE_UINT:
    #####:    #####: 1997:      instr->dest_type = nir_type_uint;
    #####:    #####: 1998:      break;
        -:        -: 1999:   default:
    #####:    #####: 2000:      unreachable("not reached");
        -:        -: 2001:   }
        -:        -: 2002:
    #####:    #####: 2003:   instr->texture = evaluate_deref(&instr->instr, ir->sampler);
        -:        -: 2004:
    #####:    #####: 2005:   unsigned src_number = 0;
        -:        -: 2006:
    #####:    #####: 2007:   if (ir->coordinate != NULL) {
    #####:    #####: 2008:      instr->coord_components = ir->coordinate->type->vector_elements;
    #####:    #####: 2009:      instr->src[src_number].src =
    #####:    #####: 2010:         nir_src_for_ssa(evaluate_rvalue(ir->coordinate));
    #####:    #####: 2011:      instr->src[src_number].src_type = nir_tex_src_coord;
    #####:    #####: 2012:      src_number++;
        -:        -: 2013:   }
        -:        -: 2014:
    #####:    #####: 2015:   if (ir->projector != NULL) {
    #####:    #####: 2016:      instr->src[src_number].src =
    #####:    #####: 2017:         nir_src_for_ssa(evaluate_rvalue(ir->projector));
    #####:    #####: 2018:      instr->src[src_number].src_type = nir_tex_src_projector;
    #####:    #####: 2019:      src_number++;
        -:        -: 2020:   }
        -:        -: 2021:
    #####:    #####: 2022:   if (ir->shadow_comparator != NULL) {
    #####:    #####: 2023:      instr->src[src_number].src =
    #####:    #####: 2024:         nir_src_for_ssa(evaluate_rvalue(ir->shadow_comparator));
    #####:    #####: 2025:      instr->src[src_number].src_type = nir_tex_src_comparator;
    #####:    #####: 2026:      src_number++;
        -:        -: 2027:   }
        -:        -: 2028:
    #####:    #####: 2029:   if (ir->offset != NULL) {
        -:        -: 2030:      /* we don't support multiple offsets yet */
    #####:    #####: 2031:      assert(ir->offset->type->is_vector() || ir->offset->type->is_scalar());
        -:        -: 2032:
    #####:    #####: 2033:      instr->src[src_number].src =
    #####:    #####: 2034:         nir_src_for_ssa(evaluate_rvalue(ir->offset));
    #####:    #####: 2035:      instr->src[src_number].src_type = nir_tex_src_offset;
    #####:    #####: 2036:      src_number++;
        -:        -: 2037:   }
        -:        -: 2038:
    #####:    #####: 2039:   switch (ir->op) {
        -:        -: 2040:   case ir_txb:
    #####:    #####: 2041:      instr->src[src_number].src =
    #####:    #####: 2042:         nir_src_for_ssa(evaluate_rvalue(ir->lod_info.bias));
    #####:    #####: 2043:      instr->src[src_number].src_type = nir_tex_src_bias;
    #####:    #####: 2044:      src_number++;
    #####:    #####: 2045:      break;
        -:        -: 2046:
        -:        -: 2047:   case ir_txl:
        -:        -: 2048:   case ir_txf:
        -:        -: 2049:   case ir_txs:
    #####:    #####: 2050:      if (ir->lod_info.lod != NULL) {
    #####:    #####: 2051:         instr->src[src_number].src =
    #####:    #####: 2052:            nir_src_for_ssa(evaluate_rvalue(ir->lod_info.lod));
    #####:    #####: 2053:         instr->src[src_number].src_type = nir_tex_src_lod;
    #####:    #####: 2054:         src_number++;
        -:        -: 2055:      }
    #####:    #####: 2056:      break;
        -:        -: 2057:
        -:        -: 2058:   case ir_txd:
    #####:    #####: 2059:      instr->src[src_number].src =
    #####:    #####: 2060:         nir_src_for_ssa(evaluate_rvalue(ir->lod_info.grad.dPdx));
    #####:    #####: 2061:      instr->src[src_number].src_type = nir_tex_src_ddx;
    #####:    #####: 2062:      src_number++;
    #####:    #####: 2063:      instr->src[src_number].src =
    #####:    #####: 2064:         nir_src_for_ssa(evaluate_rvalue(ir->lod_info.grad.dPdy));
    #####:    #####: 2065:      instr->src[src_number].src_type = nir_tex_src_ddy;
    #####:    #####: 2066:      src_number++;
    #####:    #####: 2067:      break;
        -:        -: 2068:
        -:        -: 2069:   case ir_txf_ms:
    #####:    #####: 2070:      instr->src[src_number].src =
    #####:    #####: 2071:         nir_src_for_ssa(evaluate_rvalue(ir->lod_info.sample_index));
    #####:    #####: 2072:      instr->src[src_number].src_type = nir_tex_src_ms_index;
    #####:    #####: 2073:      src_number++;
    #####:    #####: 2074:      break;
        -:        -: 2075:
        -:        -: 2076:   case ir_tg4:
    #####:    #####: 2077:      instr->component = ir->lod_info.component->as_constant()->value.u[0];
    #####:    #####: 2078:      break;
        -:        -: 2079:
        -:        -: 2080:   default:
    #####:    #####: 2081:      break;
        -:        -: 2082:   }
        -:        -: 2083:
    #####:    #####: 2084:   assert(src_number == num_srcs);
        -:        -: 2085:
    #####:    #####: 2086:   unsigned bit_size = glsl_get_bit_size(ir->type);
    #####:    #####: 2087:   add_instr(&instr->instr, nir_tex_instr_dest_size(instr), bit_size);
    #####:    #####: 2088:}
        -:        -: 2089:
        -:        -: 2090:void
       34:       36: 2091:nir_visitor::visit(ir_constant *ir)
        -:        -: 2092:{
        -:        -: 2093:   /*
        -:        -: 2094:    * We don't know if this variable is an array or struct that gets
        -:        -: 2095:    * dereferenced, so do the safe thing an make it a variable with a
        -:        -: 2096:    * constant initializer and return a dereference.
        -:        -: 2097:    */
        -:        -: 2098:
        -:        -: 2099:   nir_variable *var =
       34:       36: 2100:      nir_local_variable_create(this->impl, ir->type, "const_temp");
       34:       36: 2101:   var->data.read_only = true;
       34:       36: 2102:   var->constant_initializer = constant_copy(ir, var);
        -:        -: 2103:
       34:       36: 2104:   this->deref_head = nir_deref_var_create(this->shader, var);
       34:       36: 2105:   this->deref_tail = &this->deref_head->deref;
       34:       36: 2106:}
        -:        -: 2107:
        -:        -: 2108:void
      165:      169: 2109:nir_visitor::visit(ir_dereference_variable *ir)
        -:        -: 2110:{
        -:        -: 2111:   struct hash_entry *entry =
      165:      169: 2112:      _mesa_hash_table_search(this->var_table, ir->var);
      165:      169: 2113:   assert(entry);
      165:      169: 2114:   nir_variable *var = (nir_variable *) entry->data;
        -:        -: 2115:
      165:      169: 2116:   nir_deref_var *deref = nir_deref_var_create(this->shader, var);
      165:      169: 2117:   this->deref_head = deref;
      165:      169: 2118:   this->deref_tail = &deref->deref;
      165:      169: 2119:}
        -:        -: 2120:
        -:        -: 2121:void
    #####:    #####: 2122:nir_visitor::visit(ir_dereference_record *ir)
        -:        -: 2123:{
    #####:    #####: 2124:   ir->record->accept(this);
        -:        -: 2125:
    #####:    #####: 2126:   int field_index = this->deref_tail->type->field_index(ir->field);
    #####:    #####: 2127:   assert(field_index >= 0);
        -:        -: 2128:
    #####:    #####: 2129:   nir_deref_struct *deref = nir_deref_struct_create(this->deref_tail, field_index);
    #####:    #####: 2130:   deref->deref.type = ir->type;
    #####:    #####: 2131:   this->deref_tail->child = &deref->deref;
    #####:    #####: 2132:   this->deref_tail = &deref->deref;
    #####:    #####: 2133:}
        -:        -: 2134:
        -:        -: 2135:void
       15:       15: 2136:nir_visitor::visit(ir_dereference_array *ir)
        -:        -: 2137:{
       15:       15: 2138:   nir_deref_array *deref = nir_deref_array_create(this->shader);
       15:       15: 2139:   deref->deref.type = ir->type;
        -:        -: 2140:
       15:       15: 2141:   ir_constant *const_index = ir->array_index->as_constant();
       15:       15: 2142:   if (const_index != NULL) {
       15:       15: 2143:      deref->deref_array_type = nir_deref_array_type_direct;
       15:       15: 2144:      deref->base_offset = const_index->value.u[0];
        -:        -: 2145:   } else {
    #####:    #####: 2146:      deref->deref_array_type = nir_deref_array_type_indirect;
        -:        -: 2147:      deref->indirect =
    #####:    #####: 2148:         nir_src_for_ssa(evaluate_rvalue(ir->array_index));
        -:        -: 2149:   }
        -:        -: 2150:
       15:       15: 2151:   ir->array->accept(this);
        -:        -: 2152:
       15:       15: 2153:   this->deref_tail->child = &deref->deref;
       15:       15: 2154:   ralloc_steal(this->deref_tail, deref);
       15:       15: 2155:   this->deref_tail = &deref->deref;
       15:       15: 2156:}
        -:        -: 2157:
        -:        -: 2158:void
    #####:    #####: 2159:nir_visitor::visit(ir_barrier *)
        -:        -: 2160:{
        -:        -: 2161:   nir_intrinsic_instr *instr =
    #####:    #####: 2162:      nir_intrinsic_instr_create(this->shader, nir_intrinsic_barrier);
    #####:    #####: 2163:   nir_builder_instr_insert(&b, &instr->instr);
    #####:    #####: 2164:}

src/compiler/glsl_types.cpp.gcov

        -:        -:    0:Source:glsl_types.cpp
        -:        -:    0:Graph:.libs/glsl_types.gcno
        -:        -:    0:Data:.libs/glsl_types.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include <stdio.h>
        -:        -:   25:#include "main/macros.h"
        -:        -:   26:#include "compiler/glsl/glsl_parser_extras.h"
        -:        -:   27:#include "glsl_types.h"
        -:        -:   28:#include "util/hash_table.h"
        -:        -:   29:
        -:        -:   30:
        -:        -:   31:mtx_t glsl_type::mutex = _MTX_INITIALIZER_NP;
        -:        -:   32:hash_table *glsl_type::array_types = NULL;
        -:        -:   33:hash_table *glsl_type::record_types = NULL;
        -:        -:   34:hash_table *glsl_type::interface_types = NULL;
        -:        -:   35:hash_table *glsl_type::function_types = NULL;
        -:        -:   36:hash_table *glsl_type::subroutine_types = NULL;
        -:        -:   37:void *glsl_type::mem_ctx = NULL;
        -:        -:   38:
        -:        -:   39:void
      140:      140:   40:glsl_type::init_ralloc_type_ctx(void)
        -:        -:   41:{
      140:      140:   42:   if (glsl_type::mem_ctx == NULL) {
        1:        1:   43:      glsl_type::mem_ctx = ralloc_context(NULL);
        1:        1:   44:      assert(glsl_type::mem_ctx != NULL);
        -:        -:   45:   }
      140:      140:   46:}
        -:        -:   47:
       49:       49:   48:glsl_type::glsl_type(GLenum gl_type,
        -:        -:   49:                     glsl_base_type base_type, unsigned vector_elements,
        -:        -:   50:                     unsigned matrix_columns, const char *name) :
        -:        -:   51:   gl_type(gl_type),
        -:        -:   52:   base_type(base_type),
        -:        -:   53:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:   54:   sampled_type(0), interface_packing(0), interface_row_major(0),
        -:        -:   55:   vector_elements(vector_elements), matrix_columns(matrix_columns),
       49:       49:   56:   length(0)
        -:        -:   57:{
        -:        -:   58:   /* Values of these types must fit in the two bits of
        -:        -:   59:    * glsl_type::sampled_type.
        -:        -:   60:    */
        -:        -:   61:   STATIC_ASSERT((unsigned(GLSL_TYPE_UINT)  & 3) == unsigned(GLSL_TYPE_UINT));
        -:        -:   62:   STATIC_ASSERT((unsigned(GLSL_TYPE_INT)   & 3) == unsigned(GLSL_TYPE_INT));
        -:        -:   63:   STATIC_ASSERT((unsigned(GLSL_TYPE_FLOAT) & 3) == unsigned(GLSL_TYPE_FLOAT));
        -:        -:   64:
       49:       49:   65:   mtx_lock(&glsl_type::mutex);
        -:        -:   66:
       49:       49:   67:   init_ralloc_type_ctx();
       49:       49:   68:   assert(name != NULL);
       49:       49:   69:   this->name = ralloc_strdup(this->mem_ctx, name);
        -:        -:   70:
       49:       49:   71:   mtx_unlock(&glsl_type::mutex);
        -:        -:   72:
        -:        -:   73:   /* Neither dimension is zero or both dimensions are zero.
        -:        -:   74:    */
       49:       49:   75:   assert((vector_elements == 0) == (matrix_columns == 0));
       49:       49:   76:   memset(& fields, 0, sizeof(fields));
       49:       49:   77:}
        -:        -:   78:
       81:       81:   79:glsl_type::glsl_type(GLenum gl_type, glsl_base_type base_type,
        -:        -:   80:                     enum glsl_sampler_dim dim, bool shadow, bool array,
        -:        -:   81:                     unsigned type, const char *name) :
        -:        -:   82:   gl_type(gl_type),
        -:        -:   83:   base_type(base_type),
        -:        -:   84:   sampler_dimensionality(dim), sampler_shadow(shadow),
        -:        -:   85:   sampler_array(array), sampled_type(type), interface_packing(0),
       81:       81:   86:   interface_row_major(0), length(0)
        -:        -:   87:{
       81:       81:   88:   mtx_lock(&glsl_type::mutex);
        -:        -:   89:
       81:       81:   90:   init_ralloc_type_ctx();
       81:       81:   91:   assert(name != NULL);
       81:       81:   92:   this->name = ralloc_strdup(this->mem_ctx, name);
        -:        -:   93:
       81:       81:   94:   mtx_unlock(&glsl_type::mutex);
        -:        -:   95:
       81:       81:   96:   memset(& fields, 0, sizeof(fields));
        -:        -:   97:
       81:       81:   98:   if (is_sampler()) {
        -:        -:   99:      /* Samplers take no storage whatsoever. */
       42:       42:  100:      matrix_columns = vector_elements = 0;
        -:        -:  101:   } else {
       39:       39:  102:      matrix_columns = vector_elements = 1;
        -:        -:  103:   }
       81:       81:  104:}
        -:        -:  105:
        8:        8:  106:glsl_type::glsl_type(const glsl_struct_field *fields, unsigned num_fields,
        -:        -:  107:                     const char *name) :
        -:        -:  108:   gl_type(0),
        -:        -:  109:   base_type(GLSL_TYPE_STRUCT),
        -:        -:  110:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:  111:   sampled_type(0), interface_packing(0), interface_row_major(0),
        -:        -:  112:   vector_elements(0), matrix_columns(0),
        8:        8:  113:   length(num_fields)
        -:        -:  114:{
        -:        -:  115:   unsigned int i;
        -:        -:  116:
        8:        8:  117:   mtx_lock(&glsl_type::mutex);
        -:        -:  118:
        8:        8:  119:   init_ralloc_type_ctx();
        8:        8:  120:   assert(name != NULL);
        8:        8:  121:   this->name = ralloc_strdup(this->mem_ctx, name);
        8:        8:  122:   this->fields.structure = ralloc_array(this->mem_ctx,
        8:        8:  123:                                         glsl_struct_field, length);
        -:        -:  124:
       45:       45:  125:   for (i = 0; i < length; i++) {
       37:       37:  126:      this->fields.structure[i] = fields[i];
       74:       74:  127:      this->fields.structure[i].name = ralloc_strdup(this->fields.structure,
       74:       74:  128:                                                     fields[i].name);
        -:        -:  129:   }
        -:        -:  130:
        8:        8:  131:   mtx_unlock(&glsl_type::mutex);
        8:        8:  132:}
        -:        -:  133:
        2:        2:  134:glsl_type::glsl_type(const glsl_struct_field *fields, unsigned num_fields,
        -:        -:  135:                     enum glsl_interface_packing packing,
        -:        -:  136:                     bool row_major, const char *name) :
        -:        -:  137:   gl_type(0),
        -:        -:  138:   base_type(GLSL_TYPE_INTERFACE),
        -:        -:  139:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:  140:   sampled_type(0), interface_packing((unsigned) packing),
        -:        -:  141:   interface_row_major((unsigned) row_major),
        -:        -:  142:   vector_elements(0), matrix_columns(0),
        2:        2:  143:   length(num_fields)
        -:        -:  144:{
        -:        -:  145:   unsigned int i;
        -:        -:  146:
        2:        2:  147:   mtx_lock(&glsl_type::mutex);
        -:        -:  148:
        2:        2:  149:   init_ralloc_type_ctx();
        2:        2:  150:   assert(name != NULL);
        2:        2:  151:   this->name = ralloc_strdup(this->mem_ctx, name);
        2:        2:  152:   this->fields.structure = rzalloc_array(this->mem_ctx,
        2:        2:  153:                                          glsl_struct_field, length);
       22:       22:  154:   for (i = 0; i < length; i++) {
       20:       20:  155:      this->fields.structure[i] = fields[i];
       40:       40:  156:      this->fields.structure[i].name = ralloc_strdup(this->fields.structure,
       40:       40:  157:                                                     fields[i].name);
        -:        -:  158:   }
        -:        -:  159:
        2:        2:  160:   mtx_unlock(&glsl_type::mutex);
        2:        2:  161:}
        -:        -:  162:
    #####:    #####:  163:glsl_type::glsl_type(const glsl_type *return_type,
        -:        -:  164:                     const glsl_function_param *params, unsigned num_params) :
        -:        -:  165:   gl_type(0),
        -:        -:  166:   base_type(GLSL_TYPE_FUNCTION),
        -:        -:  167:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:  168:   sampled_type(0), interface_packing(0), interface_row_major(0),
        -:        -:  169:   vector_elements(0), matrix_columns(0),
    #####:    #####:  170:   length(num_params)
        -:        -:  171:{
        -:        -:  172:   unsigned int i;
        -:        -:  173:
    #####:    #####:  174:   mtx_lock(&glsl_type::mutex);
        -:        -:  175:
    #####:    #####:  176:   init_ralloc_type_ctx();
        -:        -:  177:
    #####:    #####:  178:   this->fields.parameters = rzalloc_array(this->mem_ctx,
    #####:    #####:  179:                                           glsl_function_param, num_params + 1);
        -:        -:  180:
        -:        -:  181:   /* We store the return type as the first parameter */
    #####:    #####:  182:   this->fields.parameters[0].type = return_type;
    #####:    #####:  183:   this->fields.parameters[0].in = false;
    #####:    #####:  184:   this->fields.parameters[0].out = true;
        -:        -:  185:
        -:        -:  186:   /* We store the i'th parameter in slot i+1 */
    #####:    #####:  187:   for (i = 0; i < length; i++) {
    #####:    #####:  188:      this->fields.parameters[i + 1].type = params[i].type;
    #####:    #####:  189:      this->fields.parameters[i + 1].in = params[i].in;
    #####:    #####:  190:      this->fields.parameters[i + 1].out = params[i].out;
        -:        -:  191:   }
        -:        -:  192:
    #####:    #####:  193:   mtx_unlock(&glsl_type::mutex);
    #####:    #####:  194:}
        -:        -:  195:
    #####:    #####:  196:glsl_type::glsl_type(const char *subroutine_name) :
        -:        -:  197:   gl_type(0),
        -:        -:  198:   base_type(GLSL_TYPE_SUBROUTINE),
        -:        -:  199:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:  200:   sampled_type(0), interface_packing(0), interface_row_major(0),
        -:        -:  201:   vector_elements(1), matrix_columns(1),
    #####:    #####:  202:   length(0)
        -:        -:  203:{
    #####:    #####:  204:   mtx_lock(&glsl_type::mutex);
        -:        -:  205:
    #####:    #####:  206:   init_ralloc_type_ctx();
    #####:    #####:  207:   assert(subroutine_name != NULL);
    #####:    #####:  208:   this->name = ralloc_strdup(this->mem_ctx, subroutine_name);
    #####:    #####:  209:   mtx_unlock(&glsl_type::mutex);
    #####:    #####:  210:}
        -:        -:  211:
        -:        -:  212:bool
       12:       12:  213:glsl_type::contains_sampler() const
        -:        -:  214:{
       12:       12:  215:   if (this->is_array()) {
        2:        2:  216:      return this->fields.array->contains_sampler();
       10:       10:  217:   } else if (this->is_record() || this->is_interface()) {
    #####:    #####:  218:      for (unsigned int i = 0; i < this->length; i++) {
    #####:    #####:  219:         if (this->fields.structure[i].type->contains_sampler())
    #####:    #####:  220:            return true;
        -:        -:  221:      }
    #####:    #####:  222:      return false;
        -:        -:  223:   } else {
       10:       10:  224:      return this->is_sampler();
        -:        -:  225:   }
        -:        -:  226:}
        -:        -:  227:
        -:        -:  228:
        -:        -:  229:bool
    #####:    #####:  230:glsl_type::contains_integer() const
        -:        -:  231:{
    #####:    #####:  232:   if (this->is_array()) {
    #####:    #####:  233:      return this->fields.array->contains_integer();
    #####:    #####:  234:   } else if (this->is_record() || this->is_interface()) {
    #####:    #####:  235:      for (unsigned int i = 0; i < this->length; i++) {
    #####:    #####:  236:         if (this->fields.structure[i].type->contains_integer())
    #####:    #####:  237:            return true;
        -:        -:  238:      }
    #####:    #####:  239:      return false;
        -:        -:  240:   } else {
    #####:    #####:  241:      return this->is_integer();
        -:        -:  242:   }
        -:        -:  243:}
        -:        -:  244:
        -:        -:  245:bool
    #####:    #####:  246:glsl_type::contains_double() const
        -:        -:  247:{
    #####:    #####:  248:   if (this->is_array()) {
    #####:    #####:  249:      return this->fields.array->contains_double();
    #####:    #####:  250:   } else if (this->is_record() || this->is_interface()) {
    #####:    #####:  251:      for (unsigned int i = 0; i < this->length; i++) {
    #####:    #####:  252:         if (this->fields.structure[i].type->contains_double())
    #####:    #####:  253:            return true;
        -:        -:  254:      }
    #####:    #####:  255:      return false;
        -:        -:  256:   } else {
    #####:    #####:  257:      return this->is_double();
        -:        -:  258:   }
        -:        -:  259:}
        -:        -:  260:
        -:        -:  261:bool
       64:       64:  262:glsl_type::contains_opaque() const {
       64:       64:  263:   switch (base_type) {
        -:        -:  264:   case GLSL_TYPE_SAMPLER:
        -:        -:  265:   case GLSL_TYPE_IMAGE:
        -:        -:  266:   case GLSL_TYPE_ATOMIC_UINT:
    #####:    #####:  267:      return true;
        -:        -:  268:   case GLSL_TYPE_ARRAY:
        1:        1:  269:      return fields.array->contains_opaque();
        -:        -:  270:   case GLSL_TYPE_STRUCT:
        -:        -:  271:   case GLSL_TYPE_INTERFACE:
    #####:    #####:  272:      for (unsigned int i = 0; i < length; i++) {
    #####:    #####:  273:         if (fields.structure[i].type->contains_opaque())
    #####:    #####:  274:            return true;
        -:        -:  275:      }
    #####:    #####:  276:      return false;
        -:        -:  277:   default:
       63:       63:  278:      return false;
        -:        -:  279:   }
        -:        -:  280:}
        -:        -:  281:
        -:        -:  282:bool
      321:      321:  283:glsl_type::contains_subroutine() const
        -:        -:  284:{
      321:      321:  285:   if (this->is_array()) {
       57:       57:  286:      return this->fields.array->contains_subroutine();
      264:      264:  287:   } else if (this->is_record() || this->is_interface()) {
      114:      114:  288:      for (unsigned int i = 0; i < this->length; i++) {
       92:       92:  289:         if (this->fields.structure[i].type->contains_subroutine())
    #####:    #####:  290:            return true;
        -:        -:  291:      }
       22:       22:  292:      return false;
        -:        -:  293:   } else {
      242:      242:  294:      return this->is_subroutine();
        -:        -:  295:   }
        -:        -:  296:}
        -:        -:  297:
        -:        -:  298:gl_texture_index
    #####:    #####:  299:glsl_type::sampler_index() const
        -:        -:  300:{
    #####:    #####:  301:   const glsl_type *const t = (this->is_array()) ? this->fields.array : this;
        -:        -:  302:
    #####:    #####:  303:   assert(t->is_sampler() || t->is_image());
        -:        -:  304:
    #####:    #####:  305:   switch (t->sampler_dimensionality) {
        -:        -:  306:   case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  307:      return (t->sampler_array) ? TEXTURE_1D_ARRAY_INDEX : TEXTURE_1D_INDEX;
        -:        -:  308:   case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  309:      return (t->sampler_array) ? TEXTURE_2D_ARRAY_INDEX : TEXTURE_2D_INDEX;
        -:        -:  310:   case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  311:      return TEXTURE_3D_INDEX;
        -:        -:  312:   case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  313:      return (t->sampler_array) ? TEXTURE_CUBE_ARRAY_INDEX : TEXTURE_CUBE_INDEX;
        -:        -:  314:   case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  315:      return TEXTURE_RECT_INDEX;
        -:        -:  316:   case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  317:      return TEXTURE_BUFFER_INDEX;
        -:        -:  318:   case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  319:      return TEXTURE_EXTERNAL_INDEX;
        -:        -:  320:   case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  321:      return (t->sampler_array) ? TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX : TEXTURE_2D_MULTISAMPLE_INDEX;
        -:        -:  322:   default:
    #####:    #####:  323:      assert(!"Should not get here.");
        -:        -:  324:      return TEXTURE_BUFFER_INDEX;
        -:        -:  325:   }
        -:        -:  326:}
        -:        -:  327:
        -:        -:  328:bool
        3:        3:  329:glsl_type::contains_image() const
        -:        -:  330:{
        3:        3:  331:   if (this->is_array()) {
        1:        1:  332:      return this->fields.array->contains_image();
        2:        2:  333:   } else if (this->is_record() || this->is_interface()) {
    #####:    #####:  334:      for (unsigned int i = 0; i < this->length; i++) {
    #####:    #####:  335:         if (this->fields.structure[i].type->contains_image())
    #####:    #####:  336:            return true;
        -:        -:  337:      }
    #####:    #####:  338:      return false;
        -:        -:  339:   } else {
        2:        2:  340:      return this->is_image();
        -:        -:  341:   }
        -:        -:  342:}
        -:        -:  343:
      108:      108:  344:const glsl_type *glsl_type::get_base_type() const
        -:        -:  345:{
      108:      108:  346:   switch (base_type) {
        -:        -:  347:   case GLSL_TYPE_UINT:
    #####:    #####:  348:      return uint_type;
        -:        -:  349:   case GLSL_TYPE_INT:
    #####:    #####:  350:      return int_type;
        -:        -:  351:   case GLSL_TYPE_FLOAT:
       58:       58:  352:      return float_type;
        -:        -:  353:   case GLSL_TYPE_DOUBLE:
       50:       50:  354:      return double_type;
        -:        -:  355:   case GLSL_TYPE_BOOL:
    #####:    #####:  356:      return bool_type;
        -:        -:  357:   case GLSL_TYPE_UINT64:
    #####:    #####:  358:      return uint64_t_type;
        -:        -:  359:   case GLSL_TYPE_INT64:
    #####:    #####:  360:      return int64_t_type;
        -:        -:  361:   default:
    #####:    #####:  362:      return error_type;
        -:        -:  363:   }
        -:        -:  364:}
        -:        -:  365:
        -:        -:  366:
        3:        3:  367:const glsl_type *glsl_type::get_scalar_type() const
        -:        -:  368:{
        3:        3:  369:   const glsl_type *type = this;
        -:        -:  370:
        -:        -:  371:   /* Handle arrays */
        3:        3:  372:   while (type->base_type == GLSL_TYPE_ARRAY)
    #####:    #####:  373:      type = type->fields.array;
        -:        -:  374:
        -:        -:  375:   /* Handle vectors and matrices */
        3:        3:  376:   switch (type->base_type) {
        -:        -:  377:   case GLSL_TYPE_UINT:
    #####:    #####:  378:      return uint_type;
        -:        -:  379:   case GLSL_TYPE_INT:
    #####:    #####:  380:      return int_type;
        -:        -:  381:   case GLSL_TYPE_FLOAT:
        3:        3:  382:      return float_type;
        -:        -:  383:   case GLSL_TYPE_DOUBLE:
    #####:    #####:  384:      return double_type;
        -:        -:  385:   case GLSL_TYPE_BOOL:
    #####:    #####:  386:      return bool_type;
        -:        -:  387:   case GLSL_TYPE_UINT64:
    #####:    #####:  388:      return uint64_t_type;
        -:        -:  389:   case GLSL_TYPE_INT64:
    #####:    #####:  390:      return int64_t_type;
        -:        -:  391:   default:
        -:        -:  392:      /* Handle everything else */
    #####:    #####:  393:      return type;
        -:        -:  394:   }
        -:        -:  395:}
        -:        -:  396:
        -:        -:  397:
        -:        -:  398:void
        1:        1:  399:_mesa_glsl_release_types(void)
        -:        -:  400:{
        -:        -:  401:   /* Should only be called during atexit (either when unloading shared
        -:        -:  402:    * object, or if process terminates), so no mutex-locking should be
        -:        -:  403:    * necessary.
        -:        -:  404:    */
        1:        1:  405:   if (glsl_type::array_types != NULL) {
        1:        1:  406:      _mesa_hash_table_destroy(glsl_type::array_types, NULL);
        1:        1:  407:      glsl_type::array_types = NULL;
        -:        -:  408:   }
        -:        -:  409:
        1:        1:  410:   if (glsl_type::record_types != NULL) {
    #####:    #####:  411:      _mesa_hash_table_destroy(glsl_type::record_types, NULL);
    #####:    #####:  412:      glsl_type::record_types = NULL;
        -:        -:  413:   }
        -:        -:  414:
        1:        1:  415:   if (glsl_type::interface_types != NULL) {
        1:        1:  416:      _mesa_hash_table_destroy(glsl_type::interface_types, NULL);
        1:        1:  417:      glsl_type::interface_types = NULL;
        -:        -:  418:   }
        -:        -:  419:
        1:        1:  420:   ralloc_free(glsl_type::mem_ctx);
        1:        1:  421:   glsl_type::mem_ctx = NULL;
        1:        1:  422:}
        -:        -:  423:
        -:        -:  424:
       11:       11:  425:glsl_type::glsl_type(const glsl_type *array, unsigned length) :
        -:        -:  426:   base_type(GLSL_TYPE_ARRAY),
        -:        -:  427:   sampler_dimensionality(0), sampler_shadow(0), sampler_array(0),
        -:        -:  428:   sampled_type(0), interface_packing(0), interface_row_major(0),
        -:        -:  429:   vector_elements(0), matrix_columns(0),
       11:       11:  430:   length(length), name(NULL)
        -:        -:  431:{
       11:       11:  432:   this->fields.array = array;
        -:        -:  433:   /* Inherit the gl type of the base. The GL type is used for
        -:        -:  434:    * uniform/statevar handling in Mesa and the arrayness of the type
        -:        -:  435:    * is represented by the size rather than the type.
        -:        -:  436:    */
       11:       11:  437:   this->gl_type = array->gl_type;
        -:        -:  438:
        -:        -:  439:   /* Allow a maximum of 10 characters for the array size.  This is enough
        -:        -:  440:    * for 32-bits of ~0.  The extra 3 are for the '[', ']', and terminating
        -:        -:  441:    * NUL.
        -:        -:  442:    */
       11:       11:  443:   const unsigned name_length = strlen(array->name) + 10 + 3;
        -:        -:  444:
       11:       11:  445:   mtx_lock(&glsl_type::mutex);
       11:       11:  446:   char *const n = (char *) ralloc_size(this->mem_ctx, name_length);
       11:       11:  447:   mtx_unlock(&glsl_type::mutex);
        -:        -:  448:
       11:       11:  449:   if (length == 0)
        2:        2:  450:      snprintf(n, name_length, "%s[]", array->name);
        -:        -:  451:   else {
        -:        -:  452:      /* insert outermost dimensions in the correct spot
        -:        -:  453:       * otherwise the dimension order will be backwards
        -:        -:  454:       */
        9:        9:  455:      const char *pos = strchr(array->name, '[');
        9:        9:  456:      if (pos) {
    #####:    #####:  457:         int idx = pos - array->name;
    #####:    #####:  458:         snprintf(n, idx+1, "%s", array->name);
    #####:    #####:  459:         snprintf(n + idx, name_length - idx, "[%u]%s",
    #####:    #####:  460:                  length, array->name + idx);
        -:        -:  461:      } else {
        9:        9:  462:         snprintf(n, name_length, "%s[%u]", array->name, length);
        -:        -:  463:      }
        -:        -:  464:   }
        -:        -:  465:
       11:       11:  466:   this->name = n;
       11:       11:  467:}
        -:        -:  468:
        -:        -:  469:
        -:        -:  470:const glsl_type *
     2290:     2295:  471:glsl_type::vec(unsigned components)
        -:        -:  472:{
     2290:     2295:  473:   if (components == 0 || components > 4)
    #####:    #####:  474:      return error_type;
        -:        -:  475:
        -:        -:  476:   static const glsl_type *const ts[] = {
        -:        -:  477:      float_type, vec2_type, vec3_type, vec4_type
     2290:     2295:  478:   };
     2290:     2295:  479:   return ts[components - 1];
        -:        -:  480:}
        -:        -:  481:
        -:        -:  482:const glsl_type *
     1112:     1112:  483:glsl_type::dvec(unsigned components)
        -:        -:  484:{
     1112:     1112:  485:   if (components == 0 || components > 4)
    #####:    #####:  486:      return error_type;
        -:        -:  487:
        -:        -:  488:   static const glsl_type *const ts[] = {
        -:        -:  489:      double_type, dvec2_type, dvec3_type, dvec4_type
     1112:     1112:  490:   };
     1112:     1112:  491:   return ts[components - 1];
        -:        -:  492:}
        -:        -:  493:
        -:        -:  494:const glsl_type *
     2508:     2508:  495:glsl_type::ivec(unsigned components)
        -:        -:  496:{
     2508:     2508:  497:   if (components == 0 || components > 4)
    #####:    #####:  498:      return error_type;
        -:        -:  499:
        -:        -:  500:   static const glsl_type *const ts[] = {
        -:        -:  501:      int_type, ivec2_type, ivec3_type, ivec4_type
     2508:     2508:  502:   };
     2508:     2508:  503:   return ts[components - 1];
        -:        -:  504:}
        -:        -:  505:
        -:        -:  506:
        -:        -:  507:const glsl_type *
      402:      402:  508:glsl_type::uvec(unsigned components)
        -:        -:  509:{
      402:      402:  510:   if (components == 0 || components > 4)
    #####:    #####:  511:      return error_type;
        -:        -:  512:
        -:        -:  513:   static const glsl_type *const ts[] = {
        -:        -:  514:      uint_type, uvec2_type, uvec3_type, uvec4_type
      402:      402:  515:   };
      402:      402:  516:   return ts[components - 1];
        -:        -:  517:}
        -:        -:  518:
        -:        -:  519:
        -:        -:  520:const glsl_type *
      464:      464:  521:glsl_type::bvec(unsigned components)
        -:        -:  522:{
      464:      464:  523:   if (components == 0 || components > 4)
    #####:    #####:  524:      return error_type;
        -:        -:  525:
        -:        -:  526:   static const glsl_type *const ts[] = {
        -:        -:  527:      bool_type, bvec2_type, bvec3_type, bvec4_type
      464:      464:  528:   };
      464:      464:  529:   return ts[components - 1];
        -:        -:  530:}
        -:        -:  531:
        -:        -:  532:
        -:        -:  533:const glsl_type *
       10:       10:  534:glsl_type::i64vec(unsigned components)
        -:        -:  535:{
       10:       10:  536:   if (components == 0 || components > 4)
    #####:    #####:  537:      return error_type;
        -:        -:  538:
        -:        -:  539:   static const glsl_type *const ts[] = {
        -:        -:  540:      int64_t_type, i64vec2_type, i64vec3_type, i64vec4_type
       10:       10:  541:   };
       10:       10:  542:   return ts[components - 1];
        -:        -:  543:}
        -:        -:  544:
        -:        -:  545:
        -:        -:  546:const glsl_type *
       12:       12:  547:glsl_type::u64vec(unsigned components)
        -:        -:  548:{
       12:       12:  549:   if (components == 0 || components > 4)
    #####:    #####:  550:      return error_type;
        -:        -:  551:
        -:        -:  552:   static const glsl_type *const ts[] = {
        -:        -:  553:      uint64_t_type, u64vec2_type, u64vec3_type, u64vec4_type
       12:       12:  554:   };
       12:       12:  555:   return ts[components - 1];
        -:        -:  556:}
        -:        -:  557:
        -:        -:  558:const glsl_type *
     5632:     5637:  559:glsl_type::get_instance(unsigned base_type, unsigned rows, unsigned columns)
        -:        -:  560:{
     5632:     5637:  561:   if (base_type == GLSL_TYPE_VOID)
    #####:    #####:  562:      return void_type;
        -:        -:  563:
     5632:     5637:  564:   if ((rows < 1) || (rows > 4) || (columns < 1) || (columns > 4))
    #####:    #####:  565:      return error_type;
        -:        -:  566:
        -:        -:  567:   /* Treat GLSL vectors as Nx1 matrices.
        -:        -:  568:    */
     5632:     5637:  569:   if (columns == 1) {
     5614:     5619:  570:      switch (base_type) {
        -:        -:  571:      case GLSL_TYPE_UINT:
      398:      398:  572:         return uvec(rows);
        -:        -:  573:      case GLSL_TYPE_INT:
     1775:     1775:  574:         return ivec(rows);
        -:        -:  575:      case GLSL_TYPE_FLOAT:
     2026:     2031:  576:         return vec(rows);
        -:        -:  577:      case GLSL_TYPE_DOUBLE:
     1086:     1086:  578:         return dvec(rows);
        -:        -:  579:      case GLSL_TYPE_BOOL:
      315:      315:  580:         return bvec(rows);
        -:        -:  581:      case GLSL_TYPE_UINT64:
        8:        8:  582:         return u64vec(rows);
        -:        -:  583:      case GLSL_TYPE_INT64:
        6:        6:  584:         return i64vec(rows);
        -:        -:  585:      default:
    #####:    #####:  586:         return error_type;
        -:        -:  587:      }
        -:        -:  588:   } else {
       18:       18:  589:      if ((base_type != GLSL_TYPE_FLOAT && base_type != GLSL_TYPE_DOUBLE) || (rows == 1))
    #####:    #####:  590:         return error_type;
        -:        -:  591:
        -:        -:  592:      /* GLSL matrix types are named mat{COLUMNS}x{ROWS}.  Only the following
        -:        -:  593:       * combinations are valid:
        -:        -:  594:       *
        -:        -:  595:       *   1 2 3 4
        -:        -:  596:       * 1
        -:        -:  597:       * 2   x x x
        -:        -:  598:       * 3   x x x
        -:        -:  599:       * 4   x x x
        -:        -:  600:       */
        -:        -:  601:#define IDX(c,r) (((c-1)*3) + (r-1))
        -:        -:  602:
       18:       18:  603:      if (base_type == GLSL_TYPE_DOUBLE) {
        9:        9:  604:         switch (IDX(columns, rows)) {
        1:        1:  605:         case IDX(2,2): return dmat2_type;
        1:        1:  606:         case IDX(2,3): return dmat2x3_type;
        1:        1:  607:         case IDX(2,4): return dmat2x4_type;
        1:        1:  608:         case IDX(3,2): return dmat3x2_type;
        1:        1:  609:         case IDX(3,3): return dmat3_type;
        1:        1:  610:         case IDX(3,4): return dmat3x4_type;
        1:        1:  611:         case IDX(4,2): return dmat4x2_type;
        1:        1:  612:         case IDX(4,3): return dmat4x3_type;
        1:        1:  613:         case IDX(4,4): return dmat4_type;
    #####:    #####:  614:         default: return error_type;
        -:        -:  615:         }
        -:        -:  616:      } else {
        9:        9:  617:         switch (IDX(columns, rows)) {
        1:        1:  618:         case IDX(2,2): return mat2_type;
        1:        1:  619:         case IDX(2,3): return mat2x3_type;
        1:        1:  620:         case IDX(2,4): return mat2x4_type;
        1:        1:  621:         case IDX(3,2): return mat3x2_type;
        1:        1:  622:         case IDX(3,3): return mat3_type;
        1:        1:  623:         case IDX(3,4): return mat3x4_type;
        1:        1:  624:         case IDX(4,2): return mat4x2_type;
        1:        1:  625:         case IDX(4,3): return mat4x3_type;
        1:        1:  626:         case IDX(4,4): return mat4_type;
    #####:    #####:  627:         default: return error_type;
        -:        -:  628:         }
        -:        -:  629:      }
        -:        -:  630:   }
        -:        -:  631:
        -:        -:  632:   assert(!"Should not get here.");
        -:        -:  633:   return error_type;
        -:        -:  634:}
        -:        -:  635:
        -:        -:  636:const glsl_type *
    #####:    #####:  637:glsl_type::get_sampler_instance(enum glsl_sampler_dim dim,
        -:        -:  638:                                bool shadow,
        -:        -:  639:                                bool array,
        -:        -:  640:                                glsl_base_type type)
        -:        -:  641:{
    #####:    #####:  642:   switch (type) {
        -:        -:  643:   case GLSL_TYPE_FLOAT:
    #####:    #####:  644:      switch (dim) {
        -:        -:  645:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  646:         if (shadow)
    #####:    #####:  647:            return (array ? sampler1DArrayShadow_type : sampler1DShadow_type);
        -:        -:  648:         else
    #####:    #####:  649:            return (array ? sampler1DArray_type : sampler1D_type);
        -:        -:  650:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  651:         if (shadow)
    #####:    #####:  652:            return (array ? sampler2DArrayShadow_type : sampler2DShadow_type);
        -:        -:  653:         else
    #####:    #####:  654:            return (array ? sampler2DArray_type : sampler2D_type);
        -:        -:  655:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  656:         if (shadow || array)
    #####:    #####:  657:            return error_type;
        -:        -:  658:         else
    #####:    #####:  659:            return sampler3D_type;
        -:        -:  660:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  661:         if (shadow)
    #####:    #####:  662:            return (array ? samplerCubeArrayShadow_type : samplerCubeShadow_type);
        -:        -:  663:         else
    #####:    #####:  664:            return (array ? samplerCubeArray_type : samplerCube_type);
        -:        -:  665:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  666:         if (array)
    #####:    #####:  667:            return error_type;
    #####:    #####:  668:         if (shadow)
    #####:    #####:  669:            return sampler2DRectShadow_type;
        -:        -:  670:         else
    #####:    #####:  671:            return sampler2DRect_type;
        -:        -:  672:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  673:         if (shadow || array)
    #####:    #####:  674:            return error_type;
        -:        -:  675:         else
    #####:    #####:  676:            return samplerBuffer_type;
        -:        -:  677:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  678:         if (shadow)
    #####:    #####:  679:            return error_type;
    #####:    #####:  680:         return (array ? sampler2DMSArray_type : sampler2DMS_type);
        -:        -:  681:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  682:         if (shadow || array)
    #####:    #####:  683:            return error_type;
        -:        -:  684:         else
    #####:    #####:  685:            return samplerExternalOES_type;
        -:        -:  686:      case GLSL_SAMPLER_DIM_SUBPASS:
        -:        -:  687:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  688:         return error_type;
        -:        -:  689:      }
        -:        -:  690:   case GLSL_TYPE_INT:
    #####:    #####:  691:      if (shadow)
    #####:    #####:  692:         return error_type;
    #####:    #####:  693:      switch (dim) {
        -:        -:  694:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  695:         return (array ? isampler1DArray_type : isampler1D_type);
        -:        -:  696:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  697:         return (array ? isampler2DArray_type : isampler2D_type);
        -:        -:  698:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  699:         if (array)
    #####:    #####:  700:            return error_type;
    #####:    #####:  701:         return isampler3D_type;
        -:        -:  702:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  703:         return (array ? isamplerCubeArray_type : isamplerCube_type);
        -:        -:  704:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  705:         if (array)
    #####:    #####:  706:            return error_type;
    #####:    #####:  707:         return isampler2DRect_type;
        -:        -:  708:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  709:         if (array)
    #####:    #####:  710:            return error_type;
    #####:    #####:  711:         return isamplerBuffer_type;
        -:        -:  712:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  713:         return (array ? isampler2DMSArray_type : isampler2DMS_type);
        -:        -:  714:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  715:         return error_type;
        -:        -:  716:      case GLSL_SAMPLER_DIM_SUBPASS:
        -:        -:  717:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  718:         return error_type;
        -:        -:  719:      }
        -:        -:  720:   case GLSL_TYPE_UINT:
    #####:    #####:  721:      if (shadow)
    #####:    #####:  722:         return error_type;
    #####:    #####:  723:      switch (dim) {
        -:        -:  724:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  725:         return (array ? usampler1DArray_type : usampler1D_type);
        -:        -:  726:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  727:         return (array ? usampler2DArray_type : usampler2D_type);
        -:        -:  728:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  729:         if (array)
    #####:    #####:  730:            return error_type;
    #####:    #####:  731:         return usampler3D_type;
        -:        -:  732:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  733:         return (array ? usamplerCubeArray_type : usamplerCube_type);
        -:        -:  734:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  735:         if (array)
    #####:    #####:  736:            return error_type;
    #####:    #####:  737:         return usampler2DRect_type;
        -:        -:  738:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  739:         if (array)
    #####:    #####:  740:            return error_type;
    #####:    #####:  741:         return usamplerBuffer_type;
        -:        -:  742:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  743:         return (array ? usampler2DMSArray_type : usampler2DMS_type);
        -:        -:  744:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  745:         return error_type;
        -:        -:  746:      case GLSL_SAMPLER_DIM_SUBPASS:
        -:        -:  747:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  748:         return error_type;
        -:        -:  749:      }
        -:        -:  750:   default:
    #####:    #####:  751:      return error_type;
        -:        -:  752:   }
        -:        -:  753:
        -:        -:  754:   unreachable("switch statement above should be complete");
        -:        -:  755:}
        -:        -:  756:
        -:        -:  757:const glsl_type *
    #####:    #####:  758:glsl_type::get_image_instance(enum glsl_sampler_dim dim,
        -:        -:  759:                              bool array, glsl_base_type type)
        -:        -:  760:{
    #####:    #####:  761:   switch (type) {
        -:        -:  762:   case GLSL_TYPE_FLOAT:
    #####:    #####:  763:      switch (dim) {
        -:        -:  764:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  765:         return (array ? image1DArray_type : image1D_type);
        -:        -:  766:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  767:         return (array ? image2DArray_type : image2D_type);
        -:        -:  768:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  769:         return image3D_type;
        -:        -:  770:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  771:         return (array ? imageCubeArray_type : imageCube_type);
        -:        -:  772:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  773:         if (array)
    #####:    #####:  774:            return error_type;
        -:        -:  775:         else
    #####:    #####:  776:            return image2DRect_type;
        -:        -:  777:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  778:         if (array)
    #####:    #####:  779:            return error_type;
        -:        -:  780:         else
    #####:    #####:  781:            return imageBuffer_type;
        -:        -:  782:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  783:         return (array ? image2DMSArray_type : image2DMS_type);
        -:        -:  784:      case GLSL_SAMPLER_DIM_SUBPASS:
    #####:    #####:  785:         return subpassInput_type;
        -:        -:  786:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  787:         return subpassInputMS_type;
        -:        -:  788:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  789:         return error_type;
        -:        -:  790:      }
        -:        -:  791:   case GLSL_TYPE_INT:
    #####:    #####:  792:      switch (dim) {
        -:        -:  793:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  794:         return (array ? iimage1DArray_type : iimage1D_type);
        -:        -:  795:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  796:         return (array ? iimage2DArray_type : iimage2D_type);
        -:        -:  797:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  798:         if (array)
    #####:    #####:  799:            return error_type;
    #####:    #####:  800:         return iimage3D_type;
        -:        -:  801:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  802:         return (array ? iimageCubeArray_type : iimageCube_type);
        -:        -:  803:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  804:         if (array)
    #####:    #####:  805:            return error_type;
    #####:    #####:  806:         return iimage2DRect_type;
        -:        -:  807:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  808:         if (array)
    #####:    #####:  809:            return error_type;
    #####:    #####:  810:         return iimageBuffer_type;
        -:        -:  811:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  812:         return (array ? iimage2DMSArray_type : iimage2DMS_type);
        -:        -:  813:      case GLSL_SAMPLER_DIM_SUBPASS:
    #####:    #####:  814:         return isubpassInput_type;
        -:        -:  815:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  816:         return isubpassInputMS_type;
        -:        -:  817:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  818:         return error_type;
        -:        -:  819:      }
        -:        -:  820:   case GLSL_TYPE_UINT:
    #####:    #####:  821:      switch (dim) {
        -:        -:  822:      case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  823:         return (array ? uimage1DArray_type : uimage1D_type);
        -:        -:  824:      case GLSL_SAMPLER_DIM_2D:
    #####:    #####:  825:         return (array ? uimage2DArray_type : uimage2D_type);
        -:        -:  826:      case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  827:         if (array)
    #####:    #####:  828:            return error_type;
    #####:    #####:  829:         return uimage3D_type;
        -:        -:  830:      case GLSL_SAMPLER_DIM_CUBE:
    #####:    #####:  831:         return (array ? uimageCubeArray_type : uimageCube_type);
        -:        -:  832:      case GLSL_SAMPLER_DIM_RECT:
    #####:    #####:  833:         if (array)
    #####:    #####:  834:            return error_type;
    #####:    #####:  835:         return uimage2DRect_type;
        -:        -:  836:      case GLSL_SAMPLER_DIM_BUF:
    #####:    #####:  837:         if (array)
    #####:    #####:  838:            return error_type;
    #####:    #####:  839:         return uimageBuffer_type;
        -:        -:  840:      case GLSL_SAMPLER_DIM_MS:
    #####:    #####:  841:         return (array ? uimage2DMSArray_type : uimage2DMS_type);
        -:        -:  842:      case GLSL_SAMPLER_DIM_SUBPASS:
    #####:    #####:  843:         return usubpassInput_type;
        -:        -:  844:      case GLSL_SAMPLER_DIM_SUBPASS_MS:
    #####:    #####:  845:         return usubpassInputMS_type;
        -:        -:  846:      case GLSL_SAMPLER_DIM_EXTERNAL:
    #####:    #####:  847:         return error_type;
        -:        -:  848:      }
        -:        -:  849:   default:
    #####:    #####:  850:      return error_type;
        -:        -:  851:   }
        -:        -:  852:
        -:        -:  853:   unreachable("switch statement above should be complete");
        -:        -:  854:}
        -:        -:  855:
        -:        -:  856:const glsl_type *
       59:       59:  857:glsl_type::get_array_instance(const glsl_type *base, unsigned array_size)
        -:        -:  858:{
        -:        -:  859:   /* Generate a name using the base type pointer in the key.  This is
        -:        -:  860:    * done because the name of the base type may not be unique across
        -:        -:  861:    * shaders.  For example, two shaders may have different record types
        -:        -:  862:    * named 'foo'.
        -:        -:  863:    */
        -:        -:  864:   char key[128];
       59:       59:  865:   snprintf(key, sizeof(key), "%p[%u]", (void *) base, array_size);
        -:        -:  866:
       59:       59:  867:   mtx_lock(&glsl_type::mutex);
        -:        -:  868:
       59:       59:  869:   if (array_types == NULL) {
        1:        1:  870:      array_types = _mesa_hash_table_create(NULL, _mesa_key_hash_string,
        1:        1:  871:                                            _mesa_key_string_equal);
        -:        -:  872:   }
        -:        -:  873:
       59:       59:  874:   const struct hash_entry *entry = _mesa_hash_table_search(array_types, key);
       59:       59:  875:   if (entry == NULL) {
       11:       11:  876:      mtx_unlock(&glsl_type::mutex);
       11:       11:  877:      const glsl_type *t = new glsl_type(base, array_size);
       11:       11:  878:      mtx_lock(&glsl_type::mutex);
        -:        -:  879:
       11:       11:  880:      entry = _mesa_hash_table_insert(array_types,
       11:       11:  881:                                      ralloc_strdup(mem_ctx, key),
       11:       11:  882:                                      (void *) t);
        -:        -:  883:   }
        -:        -:  884:
       59:       59:  885:   assert(((glsl_type *) entry->data)->base_type == GLSL_TYPE_ARRAY);
       59:       59:  886:   assert(((glsl_type *) entry->data)->length == array_size);
       59:       59:  887:   assert(((glsl_type *) entry->data)->fields.array == base);
        -:        -:  888:
       59:       59:  889:   mtx_unlock(&glsl_type::mutex);
        -:        -:  890:
       59:       59:  891:   return (glsl_type *) entry->data;
        -:        -:  892:}
        -:        -:  893:
        -:        -:  894:
        -:        -:  895:bool
    #####:    #####:  896:glsl_type::record_compare(const glsl_type *b, bool match_locations) const
        -:        -:  897:{
    #####:    #####:  898:   if (this->length != b->length)
    #####:    #####:  899:      return false;
        -:        -:  900:
    #####:    #####:  901:   if (this->interface_packing != b->interface_packing)
    #####:    #####:  902:      return false;
        -:        -:  903:
    #####:    #####:  904:   if (this->interface_row_major != b->interface_row_major)
    #####:    #####:  905:      return false;
        -:        -:  906:
        -:        -:  907:   /* From the GLSL 4.20 specification (Sec 4.2):
        -:        -:  908:    *
        -:        -:  909:    *     "Structures must have the same name, sequence of type names, and
        -:        -:  910:    *     type definitions, and field names to be considered the same type."
        -:        -:  911:    *
        -:        -:  912:    * GLSL ES behaves the same (Ver 1.00 Sec 4.2.4, Ver 3.00 Sec 4.2.5).
        -:        -:  913:    *
        -:        -:  914:    * Note that we cannot force type name check when comparing unnamed
        -:        -:  915:    * structure types, these have a unique name assigned during parsing.
        -:        -:  916:    */
    #####:    #####:  917:   if (!this->is_anonymous() && !b->is_anonymous())
    #####:    #####:  918:      if (strcmp(this->name, b->name) != 0)
    #####:    #####:  919:         return false;
        -:        -:  920:
    #####:    #####:  921:   for (unsigned i = 0; i < this->length; i++) {
    #####:    #####:  922:      if (this->fields.structure[i].type != b->fields.structure[i].type)
    #####:    #####:  923:         return false;
    #####:    #####:  924:      if (strcmp(this->fields.structure[i].name,
    #####:    #####:  925:                 b->fields.structure[i].name) != 0)
    #####:    #####:  926:         return false;
    #####:    #####:  927:      if (this->fields.structure[i].matrix_layout
    #####:    #####:  928:         != b->fields.structure[i].matrix_layout)
    #####:    #####:  929:        return false;
    #####:    #####:  930:      if (match_locations && this->fields.structure[i].location
    #####:    #####:  931:          != b->fields.structure[i].location)
    #####:    #####:  932:         return false;
    #####:    #####:  933:      if (this->fields.structure[i].offset
    #####:    #####:  934:          != b->fields.structure[i].offset)
    #####:    #####:  935:         return false;
    #####:    #####:  936:      if (this->fields.structure[i].interpolation
    #####:    #####:  937:          != b->fields.structure[i].interpolation)
    #####:    #####:  938:         return false;
    #####:    #####:  939:      if (this->fields.structure[i].centroid
    #####:    #####:  940:          != b->fields.structure[i].centroid)
    #####:    #####:  941:         return false;
    #####:    #####:  942:      if (this->fields.structure[i].sample
    #####:    #####:  943:          != b->fields.structure[i].sample)
    #####:    #####:  944:         return false;
    #####:    #####:  945:      if (this->fields.structure[i].patch
    #####:    #####:  946:          != b->fields.structure[i].patch)
    #####:    #####:  947:         return false;
    #####:    #####:  948:      if (this->fields.structure[i].image_read_only
    #####:    #####:  949:          != b->fields.structure[i].image_read_only)
    #####:    #####:  950:         return false;
    #####:    #####:  951:      if (this->fields.structure[i].image_write_only
    #####:    #####:  952:          != b->fields.structure[i].image_write_only)
    #####:    #####:  953:         return false;
    #####:    #####:  954:      if (this->fields.structure[i].image_coherent
    #####:    #####:  955:          != b->fields.structure[i].image_coherent)
    #####:    #####:  956:         return false;
    #####:    #####:  957:      if (this->fields.structure[i].image_volatile
    #####:    #####:  958:          != b->fields.structure[i].image_volatile)
    #####:    #####:  959:         return false;
    #####:    #####:  960:      if (this->fields.structure[i].image_restrict
    #####:    #####:  961:          != b->fields.structure[i].image_restrict)
    #####:    #####:  962:         return false;
    #####:    #####:  963:      if (this->fields.structure[i].precision
    #####:    #####:  964:          != b->fields.structure[i].precision)
    #####:    #####:  965:         return false;
    #####:    #####:  966:      if (this->fields.structure[i].explicit_xfb_buffer
    #####:    #####:  967:          != b->fields.structure[i].explicit_xfb_buffer)
    #####:    #####:  968:         return false;
    #####:    #####:  969:      if (this->fields.structure[i].xfb_buffer
    #####:    #####:  970:          != b->fields.structure[i].xfb_buffer)
    #####:    #####:  971:         return false;
    #####:    #####:  972:      if (this->fields.structure[i].xfb_stride
    #####:    #####:  973:          != b->fields.structure[i].xfb_stride)
    #####:    #####:  974:         return false;
        -:        -:  975:   }
        -:        -:  976:
    #####:    #####:  977:   return true;
        -:        -:  978:}
        -:        -:  979:
        -:        -:  980:
        -:        -:  981:bool
    #####:    #####:  982:glsl_type::record_key_compare(const void *a, const void *b)
        -:        -:  983:{
    #####:    #####:  984:   const glsl_type *const key1 = (glsl_type *) a;
    #####:    #####:  985:   const glsl_type *const key2 = (glsl_type *) b;
        -:        -:  986:
    #####:    #####:  987:   return strcmp(key1->name, key2->name) == 0 && key1->record_compare(key2);
        -:        -:  988:}
        -:        -:  989:
        -:        -:  990:
        -:        -:  991:/**
        -:        -:  992: * Generate an integer hash value for a glsl_type structure type.
        -:        -:  993: */
        -:        -:  994:unsigned
        2:        2:  995:glsl_type::record_key_hash(const void *a)
        -:        -:  996:{
        2:        2:  997:   const glsl_type *const key = (glsl_type *) a;
        2:        2:  998:   uintptr_t hash = key->length;
        -:        -:  999:   unsigned retval;
        -:        -: 1000:
       22:       22: 1001:   for (unsigned i = 0; i < key->length; i++) {
        -:        -: 1002:      /* casting pointer to uintptr_t */
       20:       20: 1003:      hash = (hash * 13 ) + (uintptr_t) key->fields.structure[i].type;
        -:        -: 1004:   }
        -:        -: 1005:
        -:        -: 1006:   if (sizeof(hash) == 8)
        2:        2: 1007:      retval = (hash & 0xffffffff) ^ ((uint64_t) hash >> 32);
        -:        -: 1008:   else
        -:        -: 1009:      retval = hash;
        -:        -: 1010:
        2:        2: 1011:   return retval;
        -:        -: 1012:}
        -:        -: 1013:
        -:        -: 1014:
        -:        -: 1015:const glsl_type *
    #####:    #####: 1016:glsl_type::get_record_instance(const glsl_struct_field *fields,
        -:        -: 1017:                               unsigned num_fields,
        -:        -: 1018:                               const char *name)
        -:        -: 1019:{
    #####:    #####: 1020:   const glsl_type key(fields, num_fields, name);
        -:        -: 1021:
    #####:    #####: 1022:   mtx_lock(&glsl_type::mutex);
        -:        -: 1023:
    #####:    #####: 1024:   if (record_types == NULL) {
    #####:    #####: 1025:      record_types = _mesa_hash_table_create(NULL, record_key_hash,
    #####:    #####: 1026:                                             record_key_compare);
        -:        -: 1027:   }
        -:        -: 1028:
    #####:    #####: 1029:   const struct hash_entry *entry = _mesa_hash_table_search(record_types,
    #####:    #####: 1030:                                                            &key);
    #####:    #####: 1031:   if (entry == NULL) {
    #####:    #####: 1032:      mtx_unlock(&glsl_type::mutex);
    #####:    #####: 1033:      const glsl_type *t = new glsl_type(fields, num_fields, name);
    #####:    #####: 1034:      mtx_lock(&glsl_type::mutex);
        -:        -: 1035:
    #####:    #####: 1036:      entry = _mesa_hash_table_insert(record_types, t, (void *) t);
        -:        -: 1037:   }
        -:        -: 1038:
    #####:    #####: 1039:   assert(((glsl_type *) entry->data)->base_type == GLSL_TYPE_STRUCT);
    #####:    #####: 1040:   assert(((glsl_type *) entry->data)->length == num_fields);
    #####:    #####: 1041:   assert(strcmp(((glsl_type *) entry->data)->name, name) == 0);
        -:        -: 1042:
    #####:    #####: 1043:   mtx_unlock(&glsl_type::mutex);
        -:        -: 1044:
    #####:    #####: 1045:   return (glsl_type *) entry->data;
        -:        -: 1046:}
        -:        -: 1047:
        -:        -: 1048:
        -:        -: 1049:const glsl_type *
        1:        1: 1050:glsl_type::get_interface_instance(const glsl_struct_field *fields,
        -:        -: 1051:                                  unsigned num_fields,
        -:        -: 1052:                                  enum glsl_interface_packing packing,
        -:        -: 1053:                                  bool row_major,
        -:        -: 1054:                                  const char *block_name)
        -:        -: 1055:{
        1:        1: 1056:   const glsl_type key(fields, num_fields, packing, row_major, block_name);
        -:        -: 1057:
        1:        1: 1058:   mtx_lock(&glsl_type::mutex);
        -:        -: 1059:
        1:        1: 1060:   if (interface_types == NULL) {
        1:        1: 1061:      interface_types = _mesa_hash_table_create(NULL, record_key_hash,
        1:        1: 1062:                                                record_key_compare);
        -:        -: 1063:   }
        -:        -: 1064:
        1:        1: 1065:   const struct hash_entry *entry = _mesa_hash_table_search(interface_types,
        1:        1: 1066:                                                            &key);
        1:        1: 1067:   if (entry == NULL) {
        1:        1: 1068:      mtx_unlock(&glsl_type::mutex);
        -:        -: 1069:      const glsl_type *t = new glsl_type(fields, num_fields,
        1:        1: 1070:                                         packing, row_major, block_name);
        1:        1: 1071:      mtx_lock(&glsl_type::mutex);
        -:        -: 1072:
        1:        1: 1073:      entry = _mesa_hash_table_insert(interface_types, t, (void *) t);
        -:        -: 1074:   }
        -:        -: 1075:
        1:        1: 1076:   assert(((glsl_type *) entry->data)->base_type == GLSL_TYPE_INTERFACE);
        1:        1: 1077:   assert(((glsl_type *) entry->data)->length == num_fields);
        1:        1: 1078:   assert(strcmp(((glsl_type *) entry->data)->name, block_name) == 0);
        -:        -: 1079:
        1:        1: 1080:   mtx_unlock(&glsl_type::mutex);
        -:        -: 1081:
        1:        1: 1082:   return (glsl_type *) entry->data;
        -:        -: 1083:}
        -:        -: 1084:
        -:        -: 1085:const glsl_type *
    #####:    #####: 1086:glsl_type::get_subroutine_instance(const char *subroutine_name)
        -:        -: 1087:{
    #####:    #####: 1088:   const glsl_type key(subroutine_name);
        -:        -: 1089:
    #####:    #####: 1090:   mtx_lock(&glsl_type::mutex);
        -:        -: 1091:
    #####:    #####: 1092:   if (subroutine_types == NULL) {
    #####:    #####: 1093:      subroutine_types = _mesa_hash_table_create(NULL, record_key_hash,
    #####:    #####: 1094:                                                 record_key_compare);
        -:        -: 1095:   }
        -:        -: 1096:
    #####:    #####: 1097:   const struct hash_entry *entry = _mesa_hash_table_search(subroutine_types,
    #####:    #####: 1098:                                                            &key);
    #####:    #####: 1099:   if (entry == NULL) {
    #####:    #####: 1100:      mtx_unlock(&glsl_type::mutex);
    #####:    #####: 1101:      const glsl_type *t = new glsl_type(subroutine_name);
    #####:    #####: 1102:      mtx_lock(&glsl_type::mutex);
        -:        -: 1103:
    #####:    #####: 1104:      entry = _mesa_hash_table_insert(subroutine_types, t, (void *) t);
        -:        -: 1105:   }
        -:        -: 1106:
    #####:    #####: 1107:   assert(((glsl_type *) entry->data)->base_type == GLSL_TYPE_SUBROUTINE);
    #####:    #####: 1108:   assert(strcmp(((glsl_type *) entry->data)->name, subroutine_name) == 0);
        -:        -: 1109:
    #####:    #####: 1110:   mtx_unlock(&glsl_type::mutex);
        -:        -: 1111:
    #####:    #####: 1112:   return (glsl_type *) entry->data;
        -:        -: 1113:}
        -:        -: 1114:
        -:        -: 1115:
        -:        -: 1116:static bool
    #####:    #####: 1117:function_key_compare(const void *a, const void *b)
        -:        -: 1118:{
    #####:    #####: 1119:   const glsl_type *const key1 = (glsl_type *) a;
    #####:    #####: 1120:   const glsl_type *const key2 = (glsl_type *) b;
        -:        -: 1121:
    #####:    #####: 1122:   if (key1->length != key2->length)
    #####:    #####: 1123:      return false;
        -:        -: 1124:
    #####:    #####: 1125:   return memcmp(key1->fields.parameters, key2->fields.parameters,
    #####:    #####: 1126:                 (key1->length + 1) * sizeof(*key1->fields.parameters)) == 0;
        -:        -: 1127:}
        -:        -: 1128:
        -:        -: 1129:
        -:        -: 1130:static uint32_t
    #####:    #####: 1131:function_key_hash(const void *a)
        -:        -: 1132:{
    #####:    #####: 1133:   const glsl_type *const key = (glsl_type *) a;
    #####:    #####: 1134:   return _mesa_hash_data(key->fields.parameters,
    #####:    #####: 1135:                          (key->length + 1) * sizeof(*key->fields.parameters));
        -:        -: 1136:}
        -:        -: 1137:
        -:        -: 1138:const glsl_type *
    #####:    #####: 1139:glsl_type::get_function_instance(const glsl_type *return_type,
        -:        -: 1140:                                 const glsl_function_param *params,
        -:        -: 1141:                                 unsigned num_params)
        -:        -: 1142:{
    #####:    #####: 1143:   const glsl_type key(return_type, params, num_params);
        -:        -: 1144:
    #####:    #####: 1145:   mtx_lock(&glsl_type::mutex);
        -:        -: 1146:
    #####:    #####: 1147:   if (function_types == NULL) {
    #####:    #####: 1148:      function_types = _mesa_hash_table_create(NULL, function_key_hash,
    #####:    #####: 1149:                                               function_key_compare);
        -:        -: 1150:   }
        -:        -: 1151:
    #####:    #####: 1152:   struct hash_entry *entry = _mesa_hash_table_search(function_types, &key);
    #####:    #####: 1153:   if (entry == NULL) {
    #####:    #####: 1154:      mtx_unlock(&glsl_type::mutex);
    #####:    #####: 1155:      const glsl_type *t = new glsl_type(return_type, params, num_params);
    #####:    #####: 1156:      mtx_lock(&glsl_type::mutex);
        -:        -: 1157:
    #####:    #####: 1158:      entry = _mesa_hash_table_insert(function_types, t, (void *) t);
        -:        -: 1159:   }
        -:        -: 1160:
    #####:    #####: 1161:   const glsl_type *t = (const glsl_type *)entry->data;
        -:        -: 1162:
    #####:    #####: 1163:   assert(t->base_type == GLSL_TYPE_FUNCTION);
    #####:    #####: 1164:   assert(t->length == num_params);
        -:        -: 1165:
    #####:    #####: 1166:   mtx_unlock(&glsl_type::mutex);
        -:        -: 1167:
    #####:    #####: 1168:   return t;
        -:        -: 1169:}
        -:        -: 1170:
        -:        -: 1171:
        -:        -: 1172:const glsl_type *
      178:      178: 1173:glsl_type::get_mul_type(const glsl_type *type_a, const glsl_type *type_b)
        -:        -: 1174:{
      178:      178: 1175:   if (type_a == type_b) {
      178:      178: 1176:      return type_a;
    #####:    #####: 1177:   } else if (type_a->is_matrix() && type_b->is_matrix()) {
        -:        -: 1178:      /* Matrix multiply.  The columns of A must match the rows of B.  Given
        -:        -: 1179:       * the other previously tested constraints, this means the vector type
        -:        -: 1180:       * of a row from A must be the same as the vector type of a column from
        -:        -: 1181:       * B.
        -:        -: 1182:       */
    #####:    #####: 1183:      if (type_a->row_type() == type_b->column_type()) {
        -:        -: 1184:         /* The resulting matrix has the number of columns of matrix B and
        -:        -: 1185:          * the number of rows of matrix A.  We get the row count of A by
        -:        -: 1186:          * looking at the size of a vector that makes up a column.  The
        -:        -: 1187:          * transpose (size of a row) is done for B.
        -:        -: 1188:          */
        -:        -: 1189:         const glsl_type *const type =
    #####:    #####: 1190:            get_instance(type_a->base_type,
    #####:    #####: 1191:                         type_a->column_type()->vector_elements,
    #####:    #####: 1192:                         type_b->row_type()->vector_elements);
    #####:    #####: 1193:         assert(type != error_type);
        -:        -: 1194:
    #####:    #####: 1195:         return type;
        -:        -: 1196:      }
    #####:    #####: 1197:   } else if (type_a->is_matrix()) {
        -:        -: 1198:      /* A is a matrix and B is a column vector.  Columns of A must match
        -:        -: 1199:       * rows of B.  Given the other previously tested constraints, this
        -:        -: 1200:       * means the vector type of a row from A must be the same as the
        -:        -: 1201:       * vector the type of B.
        -:        -: 1202:       */
    #####:    #####: 1203:      if (type_a->row_type() == type_b) {
        -:        -: 1204:         /* The resulting vector has a number of elements equal to
        -:        -: 1205:          * the number of rows of matrix A. */
        -:        -: 1206:         const glsl_type *const type =
    #####:    #####: 1207:            get_instance(type_a->base_type,
    #####:    #####: 1208:                         type_a->column_type()->vector_elements,
    #####:    #####: 1209:                         1);
    #####:    #####: 1210:         assert(type != error_type);
        -:        -: 1211:
    #####:    #####: 1212:         return type;
        -:        -: 1213:      }
        -:        -: 1214:   } else {
    #####:    #####: 1215:      assert(type_b->is_matrix());
        -:        -: 1216:
        -:        -: 1217:      /* A is a row vector and B is a matrix.  Columns of A must match rows
        -:        -: 1218:       * of B.  Given the other previously tested constraints, this means
        -:        -: 1219:       * the type of A must be the same as the vector type of a column from
        -:        -: 1220:       * B.
        -:        -: 1221:       */
    #####:    #####: 1222:      if (type_a == type_b->column_type()) {
        -:        -: 1223:         /* The resulting vector has a number of elements equal to
        -:        -: 1224:          * the number of columns of matrix B. */
        -:        -: 1225:         const glsl_type *const type =
    #####:    #####: 1226:            get_instance(type_a->base_type,
    #####:    #####: 1227:                         type_b->row_type()->vector_elements,
    #####:    #####: 1228:                         1);
    #####:    #####: 1229:         assert(type != error_type);
        -:        -: 1230:
    #####:    #####: 1231:         return type;
        -:        -: 1232:      }
        -:        -: 1233:   }
        -:        -: 1234:
    #####:    #####: 1235:   return error_type;
        -:        -: 1236:}
        -:        -: 1237:
        -:        -: 1238:
        -:        -: 1239:const glsl_type *
    #####:    #####: 1240:glsl_type::field_type(const char *name) const
        -:        -: 1241:{
    #####:    #####: 1242:   if (this->base_type != GLSL_TYPE_STRUCT
    #####:    #####: 1243:       && this->base_type != GLSL_TYPE_INTERFACE)
    #####:    #####: 1244:      return error_type;
        -:        -: 1245:
    #####:    #####: 1246:   for (unsigned i = 0; i < this->length; i++) {
    #####:    #####: 1247:      if (strcmp(name, this->fields.structure[i].name) == 0)
    #####:    #####: 1248:         return this->fields.structure[i].type;
        -:        -: 1249:   }
        -:        -: 1250:
    #####:    #####: 1251:   return error_type;
        -:        -: 1252:}
        -:        -: 1253:
        -:        -: 1254:
        -:        -: 1255:int
       10:       10: 1256:glsl_type::field_index(const char *name) const
        -:        -: 1257:{
       10:       10: 1258:   if (this->base_type != GLSL_TYPE_STRUCT
       10:       10: 1259:       && this->base_type != GLSL_TYPE_INTERFACE)
    #####:    #####: 1260:      return -1;
        -:        -: 1261:
       55:       55: 1262:   for (unsigned i = 0; i < this->length; i++) {
       55:       55: 1263:      if (strcmp(name, this->fields.structure[i].name) == 0)
       10:       10: 1264:         return i;
        -:        -: 1265:   }
        -:        -: 1266:
    #####:    #####: 1267:   return -1;
        -:        -: 1268:}
        -:        -: 1269:
        -:        -: 1270:
        -:        -: 1271:unsigned
        6:        6: 1272:glsl_type::component_slots() const
        -:        -: 1273:{
        6:        6: 1274:   switch (this->base_type) {
        -:        -: 1275:   case GLSL_TYPE_UINT:
        -:        -: 1276:   case GLSL_TYPE_INT:
        -:        -: 1277:   case GLSL_TYPE_FLOAT:
        -:        -: 1278:   case GLSL_TYPE_BOOL:
        4:        4: 1279:      return this->components();
        -:        -: 1280:
        -:        -: 1281:   case GLSL_TYPE_DOUBLE:
        -:        -: 1282:   case GLSL_TYPE_UINT64:
        -:        -: 1283:   case GLSL_TYPE_INT64:
    #####:    #####: 1284:      return 2 * this->components();
        -:        -: 1285:
        -:        -: 1286:   case GLSL_TYPE_STRUCT:
        -:        -: 1287:   case GLSL_TYPE_INTERFACE: {
    #####:    #####: 1288:      unsigned size = 0;
        -:        -: 1289:
    #####:    #####: 1290:      for (unsigned i = 0; i < this->length; i++)
    #####:    #####: 1291:         size += this->fields.structure[i].type->component_slots();
        -:        -: 1292:
    #####:    #####: 1293:      return size;
        -:        -: 1294:   }
        -:        -: 1295:
        -:        -: 1296:   case GLSL_TYPE_ARRAY:
        2:        2: 1297:      return this->length * this->fields.array->component_slots();
        -:        -: 1298:
        -:        -: 1299:   case GLSL_TYPE_IMAGE:
    #####:    #####: 1300:      return 1;
        -:        -: 1301:   case GLSL_TYPE_SUBROUTINE:
    #####:    #####: 1302:     return 1;
        -:        -: 1303:
        -:        -: 1304:   case GLSL_TYPE_FUNCTION:
        -:        -: 1305:   case GLSL_TYPE_SAMPLER:
        -:        -: 1306:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -: 1307:   case GLSL_TYPE_VOID:
        -:        -: 1308:   case GLSL_TYPE_ERROR:
    #####:    #####: 1309:      break;
        -:        -: 1310:   }
        -:        -: 1311:
    #####:    #####: 1312:   return 0;
        -:        -: 1313:}
        -:        -: 1314:
        -:        -: 1315:unsigned
    #####:    #####: 1316:glsl_type::record_location_offset(unsigned length) const
        -:        -: 1317:{
    #####:    #####: 1318:   unsigned offset = 0;
    #####:    #####: 1319:   const glsl_type *t = this->without_array();
    #####:    #####: 1320:   if (t->is_record()) {
    #####:    #####: 1321:      assert(length <= t->length);
        -:        -: 1322:
    #####:    #####: 1323:      for (unsigned i = 0; i < length; i++) {
    #####:    #####: 1324:         const glsl_type *st = t->fields.structure[i].type;
    #####:    #####: 1325:         const glsl_type *wa = st->without_array();
    #####:    #####: 1326:         if (wa->is_record()) {
    #####:    #####: 1327:            unsigned r_offset = wa->record_location_offset(wa->length);
    #####:    #####: 1328:            offset += st->is_array() ?
    #####:    #####: 1329:               st->arrays_of_arrays_size() * r_offset : r_offset;
    #####:    #####: 1330:         } else if (st->is_array() && st->fields.array->is_array()) {
    #####:    #####: 1331:            unsigned outer_array_size = st->length;
    #####:    #####: 1332:            const glsl_type *base_type = st->fields.array;
        -:        -: 1333:
        -:        -: 1334:            /* For arrays of arrays the outer arrays take up a uniform
        -:        -: 1335:             * slot for each element. The innermost array elements share a
        -:        -: 1336:             * single slot so we ignore the innermost array when calculating
        -:        -: 1337:             * the offset.
        -:        -: 1338:             */
    #####:    #####: 1339:            while (base_type->fields.array->is_array()) {
    #####:    #####: 1340:               outer_array_size = outer_array_size * base_type->length;
    #####:    #####: 1341:               base_type = base_type->fields.array;
        -:        -: 1342:            }
    #####:    #####: 1343:            offset += outer_array_size;
        -:        -: 1344:         } else {
        -:        -: 1345:            /* We dont worry about arrays here because unless the array
        -:        -: 1346:             * contains a structure or another array it only takes up a single
        -:        -: 1347:             * uniform slot.
        -:        -: 1348:             */
    #####:    #####: 1349:            offset += 1;
        -:        -: 1350:         }
        -:        -: 1351:      }
        -:        -: 1352:   }
    #####:    #####: 1353:   return offset;
        -:        -: 1354:}
        -:        -: 1355:
        -:        -: 1356:unsigned
    #####:    #####: 1357:glsl_type::uniform_locations() const
        -:        -: 1358:{
    #####:    #####: 1359:   unsigned size = 0;
        -:        -: 1360:
    #####:    #####: 1361:   switch (this->base_type) {
        -:        -: 1362:   case GLSL_TYPE_UINT:
        -:        -: 1363:   case GLSL_TYPE_INT:
        -:        -: 1364:   case GLSL_TYPE_FLOAT:
        -:        -: 1365:   case GLSL_TYPE_DOUBLE:
        -:        -: 1366:   case GLSL_TYPE_UINT64:
        -:        -: 1367:   case GLSL_TYPE_INT64:
        -:        -: 1368:   case GLSL_TYPE_BOOL:
        -:        -: 1369:   case GLSL_TYPE_SAMPLER:
        -:        -: 1370:   case GLSL_TYPE_IMAGE:
        -:        -: 1371:   case GLSL_TYPE_SUBROUTINE:
    #####:    #####: 1372:      return 1;
        -:        -: 1373:
        -:        -: 1374:   case GLSL_TYPE_STRUCT:
        -:        -: 1375:   case GLSL_TYPE_INTERFACE:
    #####:    #####: 1376:      for (unsigned i = 0; i < this->length; i++)
    #####:    #####: 1377:         size += this->fields.structure[i].type->uniform_locations();
    #####:    #####: 1378:      return size;
        -:        -: 1379:   case GLSL_TYPE_ARRAY:
    #####:    #####: 1380:      return this->length * this->fields.array->uniform_locations();
        -:        -: 1381:   default:
    #####:    #####: 1382:      return 0;
        -:        -: 1383:   }
        -:        -: 1384:}
        -:        -: 1385:
        -:        -: 1386:unsigned
    #####:    #####: 1387:glsl_type::varying_count() const
        -:        -: 1388:{
    #####:    #####: 1389:   unsigned size = 0;
        -:        -: 1390:
    #####:    #####: 1391:   switch (this->base_type) {
        -:        -: 1392:   case GLSL_TYPE_UINT:
        -:        -: 1393:   case GLSL_TYPE_INT:
        -:        -: 1394:   case GLSL_TYPE_FLOAT:
        -:        -: 1395:   case GLSL_TYPE_DOUBLE:
        -:        -: 1396:   case GLSL_TYPE_BOOL:
        -:        -: 1397:   case GLSL_TYPE_UINT64:
        -:        -: 1398:   case GLSL_TYPE_INT64:
    #####:    #####: 1399:      return 1;
        -:        -: 1400:
        -:        -: 1401:   case GLSL_TYPE_STRUCT:
        -:        -: 1402:   case GLSL_TYPE_INTERFACE:
    #####:    #####: 1403:      for (unsigned i = 0; i < this->length; i++)
    #####:    #####: 1404:         size += this->fields.structure[i].type->varying_count();
    #####:    #####: 1405:      return size;
        -:        -: 1406:   case GLSL_TYPE_ARRAY:
        -:        -: 1407:      /* Don't count innermost array elements */
    #####:    #####: 1408:      if (this->without_array()->is_record() ||
    #####:    #####: 1409:          this->without_array()->is_interface() ||
    #####:    #####: 1410:          this->fields.array->is_array())
    #####:    #####: 1411:         return this->length * this->fields.array->varying_count();
        -:        -: 1412:      else
    #####:    #####: 1413:         return this->fields.array->varying_count();
        -:        -: 1414:   default:
    #####:    #####: 1415:      assert(!"unsupported varying type");
        -:        -: 1416:      return 0;
        -:        -: 1417:   }
        -:        -: 1418:}
        -:        -: 1419:
        -:        -: 1420:bool
    #####:    #####: 1421:glsl_type::can_implicitly_convert_to(const glsl_type *desired,
        -:        -: 1422:                                     _mesa_glsl_parse_state *state) const
        -:        -: 1423:{
    #####:    #####: 1424:   if (this == desired)
    #####:    #####: 1425:      return true;
        -:        -: 1426:
        -:        -: 1427:   /* GLSL 1.10 and ESSL do not allow implicit conversions. If there is no
        -:        -: 1428:    * state, we're doing intra-stage function linking where these checks have
        -:        -: 1429:    * already been done.
        -:        -: 1430:    */
    #####:    #####: 1431:   if (state && (state->es_shader || !state->is_version(120, 0)))
    #####:    #####: 1432:      return false;
        -:        -: 1433:
        -:        -: 1434:   /* There is no conversion among matrix types. */
    #####:    #####: 1435:   if (this->matrix_columns > 1 || desired->matrix_columns > 1)
    #####:    #####: 1436:      return false;
        -:        -: 1437:
        -:        -: 1438:   /* Vector size must match. */
    #####:    #####: 1439:   if (this->vector_elements != desired->vector_elements)
    #####:    #####: 1440:      return false;
        -:        -: 1441:
        -:        -: 1442:   /* int and uint can be converted to float. */
    #####:    #####: 1443:   if (desired->is_float() && this->is_integer())
    #####:    #####: 1444:      return true;
        -:        -: 1445:
        -:        -: 1446:   /* With GLSL 4.0, ARB_gpu_shader5, or MESA_shader_integer_functions, int
        -:        -: 1447:    * can be converted to uint.  Note that state may be NULL here, when
        -:        -: 1448:    * resolving function calls in the linker. By this time, all the
        -:        -: 1449:    * state-dependent checks have already happened though, so allow anything
        -:        -: 1450:    * that's allowed in any shader version.
        -:        -: 1451:    */
    #####:    #####: 1452:   if ((!state || state->is_version(400, 0) || state->ARB_gpu_shader5_enable ||
    #####:    #####: 1453:        state->MESA_shader_integer_functions_enable) &&
    #####:    #####: 1454:         desired->base_type == GLSL_TYPE_UINT && this->base_type == GLSL_TYPE_INT)
    #####:    #####: 1455:      return true;
        -:        -: 1456:
        -:        -: 1457:   /* No implicit conversions from double. */
    #####:    #####: 1458:   if ((!state || state->has_double()) && this->is_double())
    #####:    #####: 1459:      return false;
        -:        -: 1460:
        -:        -: 1461:   /* Conversions from different types to double. */
    #####:    #####: 1462:   if ((!state || state->has_double()) && desired->is_double()) {
    #####:    #####: 1463:      if (this->is_float())
    #####:    #####: 1464:         return true;
    #####:    #####: 1465:      if (this->is_integer())
    #####:    #####: 1466:         return true;
        -:        -: 1467:   }
        -:        -: 1468:
    #####:    #####: 1469:   return false;
        -:        -: 1470:}
        -:        -: 1471:
        -:        -: 1472:unsigned
    #####:    #####: 1473:glsl_type::std140_base_alignment(bool row_major) const
        -:        -: 1474:{
    #####:    #####: 1475:   unsigned N = is_64bit() ? 8 : 4;
        -:        -: 1476:
        -:        -: 1477:   /* (1) If the member is a scalar consuming <N> basic machine units, the
        -:        -: 1478:    *     base alignment is <N>.
        -:        -: 1479:    *
        -:        -: 1480:    * (2) If the member is a two- or four-component vector with components
        -:        -: 1481:    *     consuming <N> basic machine units, the base alignment is 2<N> or
        -:        -: 1482:    *     4<N>, respectively.
        -:        -: 1483:    *
        -:        -: 1484:    * (3) If the member is a three-component vector with components consuming
        -:        -: 1485:    *     <N> basic machine units, the base alignment is 4<N>.
        -:        -: 1486:    */
    #####:    #####: 1487:   if (this->is_scalar() || this->is_vector()) {
    #####:    #####: 1488:      switch (this->vector_elements) {
        -:        -: 1489:      case 1:
    #####:    #####: 1490:         return N;
        -:        -: 1491:      case 2:
    #####:    #####: 1492:         return 2 * N;
        -:        -: 1493:      case 3:
        -:        -: 1494:      case 4:
    #####:    #####: 1495:         return 4 * N;
        -:        -: 1496:      }
        -:        -: 1497:   }
        -:        -: 1498:
        -:        -: 1499:   /* (4) If the member is an array of scalars or vectors, the base alignment
        -:        -: 1500:    *     and array stride are set to match the base alignment of a single
        -:        -: 1501:    *     array element, according to rules (1), (2), and (3), and rounded up
        -:        -: 1502:    *     to the base alignment of a vec4. The array may have padding at the
        -:        -: 1503:    *     end; the base offset of the member following the array is rounded up
        -:        -: 1504:    *     to the next multiple of the base alignment.
        -:        -: 1505:    *
        -:        -: 1506:    * (6) If the member is an array of <S> column-major matrices with <C>
        -:        -: 1507:    *     columns and <R> rows, the matrix is stored identically to a row of
        -:        -: 1508:    *     <S>*<C> column vectors with <R> components each, according to rule
        -:        -: 1509:    *     (4).
        -:        -: 1510:    *
        -:        -: 1511:    * (8) If the member is an array of <S> row-major matrices with <C> columns
        -:        -: 1512:    *     and <R> rows, the matrix is stored identically to a row of <S>*<R>
        -:        -: 1513:    *     row vectors with <C> components each, according to rule (4).
        -:        -: 1514:    *
        -:        -: 1515:    * (10) If the member is an array of <S> structures, the <S> elements of
        -:        -: 1516:    *      the array are laid out in order, according to rule (9).
        -:        -: 1517:    */
    #####:    #####: 1518:   if (this->is_array()) {
    #####:    #####: 1519:      if (this->fields.array->is_scalar() ||
    #####:    #####: 1520:          this->fields.array->is_vector() ||
    #####:    #####: 1521:          this->fields.array->is_matrix()) {
    #####:    #####: 1522:         return MAX2(this->fields.array->std140_base_alignment(row_major), 16);
        -:        -: 1523:      } else {
    #####:    #####: 1524:         assert(this->fields.array->is_record() ||
    #####:    #####: 1525:                this->fields.array->is_array());
    #####:    #####: 1526:         return this->fields.array->std140_base_alignment(row_major);
        -:        -: 1527:      }
        -:        -: 1528:   }
        -:        -: 1529:
        -:        -: 1530:   /* (5) If the member is a column-major matrix with <C> columns and
        -:        -: 1531:    *     <R> rows, the matrix is stored identically to an array of
        -:        -: 1532:    *     <C> column vectors with <R> components each, according to
        -:        -: 1533:    *     rule (4).
        -:        -: 1534:    *
        -:        -: 1535:    * (7) If the member is a row-major matrix with <C> columns and <R>
        -:        -: 1536:    *     rows, the matrix is stored identically to an array of <R>
        -:        -: 1537:    *     row vectors with <C> components each, according to rule (4).
        -:        -: 1538:    */
    #####:    #####: 1539:   if (this->is_matrix()) {
        -:        -: 1540:      const struct glsl_type *vec_type, *array_type;
    #####:    #####: 1541:      int c = this->matrix_columns;
    #####:    #####: 1542:      int r = this->vector_elements;
        -:        -: 1543:
    #####:    #####: 1544:      if (row_major) {
    #####:    #####: 1545:         vec_type = get_instance(base_type, c, 1);
    #####:    #####: 1546:         array_type = glsl_type::get_array_instance(vec_type, r);
        -:        -: 1547:      } else {
    #####:    #####: 1548:         vec_type = get_instance(base_type, r, 1);
    #####:    #####: 1549:         array_type = glsl_type::get_array_instance(vec_type, c);
        -:        -: 1550:      }
        -:        -: 1551:
    #####:    #####: 1552:      return array_type->std140_base_alignment(false);
        -:        -: 1553:   }
        -:        -: 1554:
        -:        -: 1555:   /* (9) If the member is a structure, the base alignment of the
        -:        -: 1556:    *     structure is <N>, where <N> is the largest base alignment
        -:        -: 1557:    *     value of any of its members, and rounded up to the base
        -:        -: 1558:    *     alignment of a vec4. The individual members of this
        -:        -: 1559:    *     sub-structure are then assigned offsets by applying this set
        -:        -: 1560:    *     of rules recursively, where the base offset of the first
        -:        -: 1561:    *     member of the sub-structure is equal to the aligned offset
        -:        -: 1562:    *     of the structure. The structure may have padding at the end;
        -:        -: 1563:    *     the base offset of the member following the sub-structure is
        -:        -: 1564:    *     rounded up to the next multiple of the base alignment of the
        -:        -: 1565:    *     structure.
        -:        -: 1566:    */
    #####:    #####: 1567:   if (this->is_record()) {
    #####:    #####: 1568:      unsigned base_alignment = 16;
    #####:    #####: 1569:      for (unsigned i = 0; i < this->length; i++) {
    #####:    #####: 1570:         bool field_row_major = row_major;
        -:        -: 1571:         const enum glsl_matrix_layout matrix_layout =
    #####:    #####: 1572:            glsl_matrix_layout(this->fields.structure[i].matrix_layout);
    #####:    #####: 1573:         if (matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR) {
    #####:    #####: 1574:            field_row_major = true;
    #####:    #####: 1575:         } else if (matrix_layout == GLSL_MATRIX_LAYOUT_COLUMN_MAJOR) {
    #####:    #####: 1576:            field_row_major = false;
        -:        -: 1577:         }
        -:        -: 1578:
    #####:    #####: 1579:         const struct glsl_type *field_type = this->fields.structure[i].type;
    #####:    #####: 1580:         base_alignment = MAX2(base_alignment,
    #####:    #####: 1581:                               field_type->std140_base_alignment(field_row_major));
        -:        -: 1582:      }
    #####:    #####: 1583:      return base_alignment;
        -:        -: 1584:   }
        -:        -: 1585:
    #####:    #####: 1586:   assert(!"not reached");
        -:        -: 1587:   return -1;
        -:        -: 1588:}
        -:        -: 1589:
        -:        -: 1590:unsigned
    #####:    #####: 1591:glsl_type::std140_size(bool row_major) const
        -:        -: 1592:{
    #####:    #####: 1593:   unsigned N = is_64bit() ? 8 : 4;
        -:        -: 1594:
        -:        -: 1595:   /* (1) If the member is a scalar consuming <N> basic machine units, the
        -:        -: 1596:    *     base alignment is <N>.
        -:        -: 1597:    *
        -:        -: 1598:    * (2) If the member is a two- or four-component vector with components
        -:        -: 1599:    *     consuming <N> basic machine units, the base alignment is 2<N> or
        -:        -: 1600:    *     4<N>, respectively.
        -:        -: 1601:    *
        -:        -: 1602:    * (3) If the member is a three-component vector with components consuming
        -:        -: 1603:    *     <N> basic machine units, the base alignment is 4<N>.
        -:        -: 1604:    */
    #####:    #####: 1605:   if (this->is_scalar() || this->is_vector()) {
    #####:    #####: 1606:      return this->vector_elements * N;
        -:        -: 1607:   }
        -:        -: 1608:
        -:        -: 1609:   /* (5) If the member is a column-major matrix with <C> columns and
        -:        -: 1610:    *     <R> rows, the matrix is stored identically to an array of
        -:        -: 1611:    *     <C> column vectors with <R> components each, according to
        -:        -: 1612:    *     rule (4).
        -:        -: 1613:    *
        -:        -: 1614:    * (6) If the member is an array of <S> column-major matrices with <C>
        -:        -: 1615:    *     columns and <R> rows, the matrix is stored identically to a row of
        -:        -: 1616:    *     <S>*<C> column vectors with <R> components each, according to rule
        -:        -: 1617:    *     (4).
        -:        -: 1618:    *
        -:        -: 1619:    * (7) If the member is a row-major matrix with <C> columns and <R>
        -:        -: 1620:    *     rows, the matrix is stored identically to an array of <R>
        -:        -: 1621:    *     row vectors with <C> components each, according to rule (4).
        -:        -: 1622:    *
        -:        -: 1623:    * (8) If the member is an array of <S> row-major matrices with <C> columns
        -:        -: 1624:    *     and <R> rows, the matrix is stored identically to a row of <S>*<R>
        -:        -: 1625:    *     row vectors with <C> components each, according to rule (4).
        -:        -: 1626:    */
    #####:    #####: 1627:   if (this->without_array()->is_matrix()) {
        -:        -: 1628:      const struct glsl_type *element_type;
        -:        -: 1629:      const struct glsl_type *vec_type;
        -:        -: 1630:      unsigned int array_len;
        -:        -: 1631:
    #####:    #####: 1632:      if (this->is_array()) {
    #####:    #####: 1633:         element_type = this->without_array();
    #####:    #####: 1634:         array_len = this->arrays_of_arrays_size();
        -:        -: 1635:      } else {
    #####:    #####: 1636:         element_type = this;
    #####:    #####: 1637:         array_len = 1;
        -:        -: 1638:      }
        -:        -: 1639:
    #####:    #####: 1640:      if (row_major) {
    #####:    #####: 1641:         vec_type = get_instance(element_type->base_type,
    #####:    #####: 1642:                                 element_type->matrix_columns, 1);
        -:        -: 1643:
    #####:    #####: 1644:         array_len *= element_type->vector_elements;
        -:        -: 1645:      } else {
    #####:    #####: 1646:         vec_type = get_instance(element_type->base_type,
    #####:    #####: 1647:                                 element_type->vector_elements, 1);
    #####:    #####: 1648:         array_len *= element_type->matrix_columns;
        -:        -: 1649:      }
        -:        -: 1650:      const glsl_type *array_type = glsl_type::get_array_instance(vec_type,
    #####:    #####: 1651:                                                                  array_len);
        -:        -: 1652:
    #####:    #####: 1653:      return array_type->std140_size(false);
        -:        -: 1654:   }
        -:        -: 1655:
        -:        -: 1656:   /* (4) If the member is an array of scalars or vectors, the base alignment
        -:        -: 1657:    *     and array stride are set to match the base alignment of a single
        -:        -: 1658:    *     array element, according to rules (1), (2), and (3), and rounded up
        -:        -: 1659:    *     to the base alignment of a vec4. The array may have padding at the
        -:        -: 1660:    *     end; the base offset of the member following the array is rounded up
        -:        -: 1661:    *     to the next multiple of the base alignment.
        -:        -: 1662:    *
        -:        -: 1663:    * (10) If the member is an array of <S> structures, the <S> elements of
        -:        -: 1664:    *      the array are laid out in order, according to rule (9).
        -:        -: 1665:    */
    #####:    #####: 1666:   if (this->is_array()) {
    #####:    #####: 1667:      if (this->without_array()->is_record()) {
    #####:    #####: 1668:	 return this->arrays_of_arrays_size() *
    #####:    #####: 1669:            this->without_array()->std140_size(row_major);
        -:        -: 1670:      } else {
        -:        -: 1671:	 unsigned element_base_align =
    #####:    #####: 1672:	    this->without_array()->std140_base_alignment(row_major);
    #####:    #####: 1673:	 return this->arrays_of_arrays_size() * MAX2(element_base_align, 16);
        -:        -: 1674:      }
        -:        -: 1675:   }
        -:        -: 1676:
        -:        -: 1677:   /* (9) If the member is a structure, the base alignment of the
        -:        -: 1678:    *     structure is <N>, where <N> is the largest base alignment
        -:        -: 1679:    *     value of any of its members, and rounded up to the base
        -:        -: 1680:    *     alignment of a vec4. The individual members of this
        -:        -: 1681:    *     sub-structure are then assigned offsets by applying this set
        -:        -: 1682:    *     of rules recursively, where the base offset of the first
        -:        -: 1683:    *     member of the sub-structure is equal to the aligned offset
        -:        -: 1684:    *     of the structure. The structure may have padding at the end;
        -:        -: 1685:    *     the base offset of the member following the sub-structure is
        -:        -: 1686:    *     rounded up to the next multiple of the base alignment of the
        -:        -: 1687:    *     structure.
        -:        -: 1688:    */
    #####:    #####: 1689:   if (this->is_record() || this->is_interface()) {
    #####:    #####: 1690:      unsigned size = 0;
    #####:    #####: 1691:      unsigned max_align = 0;
        -:        -: 1692:
    #####:    #####: 1693:      for (unsigned i = 0; i < this->length; i++) {
    #####:    #####: 1694:         bool field_row_major = row_major;
        -:        -: 1695:         const enum glsl_matrix_layout matrix_layout =
    #####:    #####: 1696:            glsl_matrix_layout(this->fields.structure[i].matrix_layout);
    #####:    #####: 1697:         if (matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR) {
    #####:    #####: 1698:            field_row_major = true;
    #####:    #####: 1699:         } else if (matrix_layout == GLSL_MATRIX_LAYOUT_COLUMN_MAJOR) {
    #####:    #####: 1700:            field_row_major = false;
        -:        -: 1701:         }
        -:        -: 1702:
    #####:    #####: 1703:         const struct glsl_type *field_type = this->fields.structure[i].type;
    #####:    #####: 1704:         unsigned align = field_type->std140_base_alignment(field_row_major);
        -:        -: 1705:
        -:        -: 1706:         /* Ignore unsized arrays when calculating size */
    #####:    #####: 1707:         if (field_type->is_unsized_array())
    #####:    #####: 1708:            continue;
        -:        -: 1709:
    #####:    #####: 1710:         size = glsl_align(size, align);
    #####:    #####: 1711:         size += field_type->std140_size(field_row_major);
        -:        -: 1712:
    #####:    #####: 1713:         max_align = MAX2(align, max_align);
        -:        -: 1714:
    #####:    #####: 1715:         if (field_type->is_record() && (i + 1 < this->length))
    #####:    #####: 1716:            size = glsl_align(size, 16);
        -:        -: 1717:      }
    #####:    #####: 1718:      size = glsl_align(size, MAX2(max_align, 16));
    #####:    #####: 1719:      return size;
        -:        -: 1720:   }
        -:        -: 1721:
    #####:    #####: 1722:   assert(!"not reached");
        -:        -: 1723:   return -1;
        -:        -: 1724:}
        -:        -: 1725:
        -:        -: 1726:unsigned
    #####:    #####: 1727:glsl_type::std430_base_alignment(bool row_major) const
        -:        -: 1728:{
        -:        -: 1729:
    #####:    #####: 1730:   unsigned N = is_64bit() ? 8 : 4;
        -:        -: 1731:
        -:        -: 1732:   /* (1) If the member is a scalar consuming <N> basic machine units, the
        -:        -: 1733:    *     base alignment is <N>.
        -:        -: 1734:    *
        -:        -: 1735:    * (2) If the member is a two- or four-component vector with components
        -:        -: 1736:    *     consuming <N> basic machine units, the base alignment is 2<N> or
        -:        -: 1737:    *     4<N>, respectively.
        -:        -: 1738:    *
        -:        -: 1739:    * (3) If the member is a three-component vector with components consuming
        -:        -: 1740:    *     <N> basic machine units, the base alignment is 4<N>.
        -:        -: 1741:    */
    #####:    #####: 1742:   if (this->is_scalar() || this->is_vector()) {
    #####:    #####: 1743:      switch (this->vector_elements) {
        -:        -: 1744:      case 1:
    #####:    #####: 1745:         return N;
        -:        -: 1746:      case 2:
    #####:    #####: 1747:         return 2 * N;
        -:        -: 1748:      case 3:
        -:        -: 1749:      case 4:
    #####:    #####: 1750:         return 4 * N;
        -:        -: 1751:      }
        -:        -: 1752:   }
        -:        -: 1753:
        -:        -: 1754:   /* OpenGL 4.30 spec, section 7.6.2.2 "Standard Uniform Block Layout":
        -:        -: 1755:    *
        -:        -: 1756:    * "When using the std430 storage layout, shader storage blocks will be
        -:        -: 1757:    * laid out in buffer storage identically to uniform and shader storage
        -:        -: 1758:    * blocks using the std140 layout, except that the base alignment and
        -:        -: 1759:    * stride of arrays of scalars and vectors in rule 4 and of structures
        -:        -: 1760:    * in rule 9 are not rounded up a multiple of the base alignment of a vec4.
        -:        -: 1761:    */
        -:        -: 1762:
        -:        -: 1763:   /* (1) If the member is a scalar consuming <N> basic machine units, the
        -:        -: 1764:    *     base alignment is <N>.
        -:        -: 1765:    *
        -:        -: 1766:    * (2) If the member is a two- or four-component vector with components
        -:        -: 1767:    *     consuming <N> basic machine units, the base alignment is 2<N> or
        -:        -: 1768:    *     4<N>, respectively.
        -:        -: 1769:    *
        -:        -: 1770:    * (3) If the member is a three-component vector with components consuming
        -:        -: 1771:    *     <N> basic machine units, the base alignment is 4<N>.
        -:        -: 1772:    */
    #####:    #####: 1773:   if (this->is_array())
    #####:    #####: 1774:      return this->fields.array->std430_base_alignment(row_major);
        -:        -: 1775:
        -:        -: 1776:   /* (5) If the member is a column-major matrix with <C> columns and
        -:        -: 1777:    *     <R> rows, the matrix is stored identically to an array of
        -:        -: 1778:    *     <C> column vectors with <R> components each, according to
        -:        -: 1779:    *     rule (4).
        -:        -: 1780:    *
        -:        -: 1781:    * (7) If the member is a row-major matrix with <C> columns and <R>
        -:        -: 1782:    *     rows, the matrix is stored identically to an array of <R>
        -:        -: 1783:    *     row vectors with <C> components each, according to rule (4).
        -:        -: 1784:    */
    #####:    #####: 1785:   if (this->is_matrix()) {
        -:        -: 1786:      const struct glsl_type *vec_type, *array_type;
    #####:    #####: 1787:      int c = this->matrix_columns;
    #####:    #####: 1788:      int r = this->vector_elements;
        -:        -: 1789:
    #####:    #####: 1790:      if (row_major) {
    #####:    #####: 1791:         vec_type = get_instance(base_type, c, 1);
    #####:    #####: 1792:         array_type = glsl_type::get_array_instance(vec_type, r);
        -:        -: 1793:      } else {
    #####:    #####: 1794:         vec_type = get_instance(base_type, r, 1);
    #####:    #####: 1795:         array_type = glsl_type::get_array_instance(vec_type, c);
        -:        -: 1796:      }
        -:        -: 1797:
    #####:    #####: 1798:      return array_type->std430_base_alignment(false);
        -:        -: 1799:   }
        -:        -: 1800:
        -:        -: 1801:      /* (9) If the member is a structure, the base alignment of the
        -:        -: 1802:    *     structure is <N>, where <N> is the largest base alignment
        -:        -: 1803:    *     value of any of its members, and rounded up to the base
        -:        -: 1804:    *     alignment of a vec4. The individual members of this
        -:        -: 1805:    *     sub-structure are then assigned offsets by applying this set
        -:        -: 1806:    *     of rules recursively, where the base offset of the first
        -:        -: 1807:    *     member of the sub-structure is equal to the aligned offset
        -:        -: 1808:    *     of the structure. The structure may have padding at the end;
        -:        -: 1809:    *     the base offset of the member following the sub-structure is
        -:        -: 1810:    *     rounded up to the next multiple of the base alignment of the
        -:        -: 1811:    *     structure.
        -:        -: 1812:    */
    #####:    #####: 1813:   if (this->is_record()) {
    #####:    #####: 1814:      unsigned base_alignment = 0;
    #####:    #####: 1815:      for (unsigned i = 0; i < this->length; i++) {
    #####:    #####: 1816:         bool field_row_major = row_major;
        -:        -: 1817:         const enum glsl_matrix_layout matrix_layout =
    #####:    #####: 1818:            glsl_matrix_layout(this->fields.structure[i].matrix_layout);
    #####:    #####: 1819:         if (matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR) {
    #####:    #####: 1820:            field_row_major = true;
    #####:    #####: 1821:         } else if (matrix_layout == GLSL_MATRIX_LAYOUT_COLUMN_MAJOR) {
    #####:    #####: 1822:            field_row_major = false;
        -:        -: 1823:         }
        -:        -: 1824:
    #####:    #####: 1825:         const struct glsl_type *field_type = this->fields.structure[i].type;
    #####:    #####: 1826:         base_alignment = MAX2(base_alignment,
    #####:    #####: 1827:                               field_type->std430_base_alignment(field_row_major));
        -:        -: 1828:      }
    #####:    #####: 1829:      assert(base_alignment > 0);
    #####:    #####: 1830:      return base_alignment;
        -:        -: 1831:   }
    #####:    #####: 1832:   assert(!"not reached");
        -:        -: 1833:   return -1;
        -:        -: 1834:}
        -:        -: 1835:
        -:        -: 1836:unsigned
    #####:    #####: 1837:glsl_type::std430_array_stride(bool row_major) const
        -:        -: 1838:{
    #####:    #####: 1839:   unsigned N = is_64bit() ? 8 : 4;
        -:        -: 1840:
        -:        -: 1841:   /* Notice that the array stride of a vec3 is not 3 * N but 4 * N.
        -:        -: 1842:    * See OpenGL 4.30 spec, section 7.6.2.2 "Standard Uniform Block Layout"
        -:        -: 1843:    *
        -:        -: 1844:    * (3) If the member is a three-component vector with components consuming
        -:        -: 1845:    *     <N> basic machine units, the base alignment is 4<N>.
        -:        -: 1846:    */
    #####:    #####: 1847:   if (this->is_vector() && this->vector_elements == 3)
    #####:    #####: 1848:      return 4 * N;
        -:        -: 1849:
        -:        -: 1850:   /* By default use std430_size(row_major) */
    #####:    #####: 1851:   return this->std430_size(row_major);
        -:        -: 1852:}
        -:        -: 1853:
        -:        -: 1854:unsigned
    #####:    #####: 1855:glsl_type::std430_size(bool row_major) const
        -:        -: 1856:{
    #####:    #####: 1857:   unsigned N = is_64bit() ? 8 : 4;
        -:        -: 1858:
        -:        -: 1859:   /* OpenGL 4.30 spec, section 7.6.2.2 "Standard Uniform Block Layout":
        -:        -: 1860:    *
        -:        -: 1861:    * "When using the std430 storage layout, shader storage blocks will be
        -:        -: 1862:    * laid out in buffer storage identically to uniform and shader storage
        -:        -: 1863:    * blocks using the std140 layout, except that the base alignment and
        -:        -: 1864:    * stride of arrays of scalars and vectors in rule 4 and of structures
        -:        -: 1865:    * in rule 9 are not rounded up a multiple of the base alignment of a vec4.
        -:        -: 1866:    */
    #####:    #####: 1867:   if (this->is_scalar() || this->is_vector())
    #####:    #####: 1868:         return this->vector_elements * N;
        -:        -: 1869:
    #####:    #####: 1870:   if (this->without_array()->is_matrix()) {
        -:        -: 1871:      const struct glsl_type *element_type;
        -:        -: 1872:      const struct glsl_type *vec_type;
        -:        -: 1873:      unsigned int array_len;
        -:        -: 1874:
    #####:    #####: 1875:      if (this->is_array()) {
    #####:    #####: 1876:         element_type = this->without_array();
    #####:    #####: 1877:         array_len = this->arrays_of_arrays_size();
        -:        -: 1878:      } else {
    #####:    #####: 1879:         element_type = this;
    #####:    #####: 1880:         array_len = 1;
        -:        -: 1881:      }
        -:        -: 1882:
    #####:    #####: 1883:      if (row_major) {
    #####:    #####: 1884:         vec_type = get_instance(element_type->base_type,
    #####:    #####: 1885:                                 element_type->matrix_columns, 1);
        -:        -: 1886:
    #####:    #####: 1887:         array_len *= element_type->vector_elements;
        -:        -: 1888:      } else {
    #####:    #####: 1889:         vec_type = get_instance(element_type->base_type,
    #####:    #####: 1890:                                 element_type->vector_elements, 1);
    #####:    #####: 1891:         array_len *= element_type->matrix_columns;
        -:        -: 1892:      }
        -:        -: 1893:      const glsl_type *array_type = glsl_type::get_array_instance(vec_type,
    #####:    #####: 1894:                                                                  array_len);
        -:        -: 1895:
    #####:    #####: 1896:      return array_type->std430_size(false);
        -:        -: 1897:   }
        -:        -: 1898:
    #####:    #####: 1899:   if (this->is_array()) {
    #####:    #####: 1900:      if (this->without_array()->is_record())
    #####:    #####: 1901:         return this->arrays_of_arrays_size() *
    #####:    #####: 1902:            this->without_array()->std430_size(row_major);
        -:        -: 1903:      else
    #####:    #####: 1904:         return this->arrays_of_arrays_size() *
    #####:    #####: 1905:            this->without_array()->std430_base_alignment(row_major);
        -:        -: 1906:   }
        -:        -: 1907:
    #####:    #####: 1908:   if (this->is_record() || this->is_interface()) {
    #####:    #####: 1909:      unsigned size = 0;
    #####:    #####: 1910:      unsigned max_align = 0;
        -:        -: 1911:
    #####:    #####: 1912:      for (unsigned i = 0; i < this->length; i++) {
    #####:    #####: 1913:         bool field_row_major = row_major;
        -:        -: 1914:         const enum glsl_matrix_layout matrix_layout =
    #####:    #####: 1915:            glsl_matrix_layout(this->fields.structure[i].matrix_layout);
    #####:    #####: 1916:         if (matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR) {
    #####:    #####: 1917:            field_row_major = true;
    #####:    #####: 1918:         } else if (matrix_layout == GLSL_MATRIX_LAYOUT_COLUMN_MAJOR) {
    #####:    #####: 1919:            field_row_major = false;
        -:        -: 1920:         }
        -:        -: 1921:
    #####:    #####: 1922:         const struct glsl_type *field_type = this->fields.structure[i].type;
    #####:    #####: 1923:         unsigned align = field_type->std430_base_alignment(field_row_major);
    #####:    #####: 1924:         size = glsl_align(size, align);
    #####:    #####: 1925:         size += field_type->std430_size(field_row_major);
        -:        -: 1926:
    #####:    #####: 1927:         max_align = MAX2(align, max_align);
        -:        -: 1928:      }
    #####:    #####: 1929:      size = glsl_align(size, max_align);
    #####:    #####: 1930:      return size;
        -:        -: 1931:   }
        -:        -: 1932:
    #####:    #####: 1933:   assert(!"not reached");
        -:        -: 1934:   return -1;
        -:        -: 1935:}
        -:        -: 1936:
        -:        -: 1937:unsigned
       18:       22: 1938:glsl_type::count_attribute_slots(bool is_vertex_input) const
        -:        -: 1939:{
        -:        -: 1940:   /* From page 31 (page 37 of the PDF) of the GLSL 1.50 spec:
        -:        -: 1941:    *
        -:        -: 1942:    *     "A scalar input counts the same amount against this limit as a vec4,
        -:        -: 1943:    *     so applications may want to consider packing groups of four
        -:        -: 1944:    *     unrelated float inputs together into a vector to better utilize the
        -:        -: 1945:    *     capabilities of the underlying hardware. A matrix input will use up
        -:        -: 1946:    *     multiple locations.  The number of locations used will equal the
        -:        -: 1947:    *     number of columns in the matrix."
        -:        -: 1948:    *
        -:        -: 1949:    * The spec does not explicitly say how arrays are counted.  However, it
        -:        -: 1950:    * should be safe to assume the total number of slots consumed by an array
        -:        -: 1951:    * is the number of entries in the array multiplied by the number of slots
        -:        -: 1952:    * consumed by a single element of the array.
        -:        -: 1953:    *
        -:        -: 1954:    * The spec says nothing about how structs are counted, because vertex
        -:        -: 1955:    * attributes are not allowed to be (or contain) structs.  However, Mesa
        -:        -: 1956:    * allows varying structs, the number of varying slots taken up by a
        -:        -: 1957:    * varying struct is simply equal to the sum of the number of slots taken
        -:        -: 1958:    * up by each element.
        -:        -: 1959:    *
        -:        -: 1960:    * Doubles are counted different depending on whether they are vertex
        -:        -: 1961:    * inputs or everything else. Vertex inputs from ARB_vertex_attrib_64bit
        -:        -: 1962:    * take one location no matter what size they are, otherwise dvec3/4
        -:        -: 1963:    * take two locations.
        -:        -: 1964:    */
       18:       22: 1965:   switch (this->base_type) {
        -:        -: 1966:   case GLSL_TYPE_UINT:
        -:        -: 1967:   case GLSL_TYPE_INT:
        -:        -: 1968:   case GLSL_TYPE_FLOAT:
        -:        -: 1969:   case GLSL_TYPE_BOOL:
       18:       22: 1970:      return this->matrix_columns;
        -:        -: 1971:   case GLSL_TYPE_DOUBLE:
        -:        -: 1972:   case GLSL_TYPE_UINT64:
        -:        -: 1973:   case GLSL_TYPE_INT64:
    #####:    #####: 1974:      if (this->vector_elements > 2 && !is_vertex_input)
    #####:    #####: 1975:         return this->matrix_columns * 2;
        -:        -: 1976:      else
    #####:    #####: 1977:         return this->matrix_columns;
        -:        -: 1978:   case GLSL_TYPE_STRUCT:
        -:        -: 1979:   case GLSL_TYPE_INTERFACE: {
    #####:    #####: 1980:      unsigned size = 0;
        -:        -: 1981:
    #####:    #####: 1982:      for (unsigned i = 0; i < this->length; i++)
    #####:    #####: 1983:         size += this->fields.structure[i].type->count_attribute_slots(is_vertex_input);
        -:        -: 1984:
    #####:    #####: 1985:      return size;
        -:        -: 1986:   }
        -:        -: 1987:
        -:        -: 1988:   case GLSL_TYPE_ARRAY:
    #####:    #####: 1989:      return this->length * this->fields.array->count_attribute_slots(is_vertex_input);
        -:        -: 1990:
        -:        -: 1991:   case GLSL_TYPE_FUNCTION:
        -:        -: 1992:   case GLSL_TYPE_SAMPLER:
        -:        -: 1993:   case GLSL_TYPE_IMAGE:
        -:        -: 1994:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -: 1995:   case GLSL_TYPE_VOID:
        -:        -: 1996:   case GLSL_TYPE_SUBROUTINE:
        -:        -: 1997:   case GLSL_TYPE_ERROR:
    #####:    #####: 1998:      break;
        -:        -: 1999:   }
        -:        -: 2000:
    #####:    #####: 2001:   assert(!"Unexpected type in count_attribute_slots()");
        -:        -: 2002:
        -:        -: 2003:   return 0;
        -:        -: 2004:}
        -:        -: 2005:
        -:        -: 2006:int
     1094:     1094: 2007:glsl_type::coordinate_components() const
        -:        -: 2008:{
        -:        -: 2009:   int size;
        -:        -: 2010:
     1094:     1094: 2011:   switch (sampler_dimensionality) {
        -:        -: 2012:   case GLSL_SAMPLER_DIM_1D:
        -:        -: 2013:   case GLSL_SAMPLER_DIM_BUF:
      302:      302: 2014:      size = 1;
      302:      302: 2015:      break;
        -:        -: 2016:   case GLSL_SAMPLER_DIM_2D:
        -:        -: 2017:   case GLSL_SAMPLER_DIM_RECT:
        -:        -: 2018:   case GLSL_SAMPLER_DIM_MS:
        -:        -: 2019:   case GLSL_SAMPLER_DIM_EXTERNAL:
        -:        -: 2020:   case GLSL_SAMPLER_DIM_SUBPASS:
      535:      535: 2021:      size = 2;
      535:      535: 2022:      break;
        -:        -: 2023:   case GLSL_SAMPLER_DIM_3D:
        -:        -: 2024:   case GLSL_SAMPLER_DIM_CUBE:
      257:      257: 2025:      size = 3;
      257:      257: 2026:      break;
        -:        -: 2027:   default:
    #####:    #####: 2028:      assert(!"Should not get here.");
        -:        -: 2029:      size = 1;
        -:        -: 2030:      break;
        -:        -: 2031:   }
        -:        -: 2032:
        -:        -: 2033:   /* Array textures need an additional component for the array index, except
        -:        -: 2034:    * for cubemap array images that behave like a 2D array of interleaved
        -:        -: 2035:    * cubemap faces.
        -:        -: 2036:    */
     1694:     1694: 2037:   if (sampler_array &&
      534:      534: 2038:       !(is_image() && sampler_dimensionality == GLSL_SAMPLER_DIM_CUBE))
      274:      274: 2039:      size += 1;
        -:        -: 2040:
     1094:     1094: 2041:   return size;
        -:        -: 2042:}
        -:        -: 2043:
        -:        -: 2044:/**
        -:        -: 2045: * Declarations of type flyweights (glsl_type::_foo_type) and
        -:        -: 2046: * convenience pointers (glsl_type::foo_type).
        -:        -: 2047: * @{
        -:        -: 2048: */
        -:        -: 2049:#define DECL_TYPE(NAME, ...)                                    \
        -:        -: 2050:   const glsl_type glsl_type::_##NAME##_type = glsl_type(__VA_ARGS__, #NAME); \
        -:        -: 2051:   const glsl_type *const glsl_type::NAME##_type = &glsl_type::_##NAME##_type;
        -:        -: 2052:
        -:        -: 2053:#define STRUCT_TYPE(NAME)
        -:        -: 2054:
        -:        -: 2055:#include "compiler/builtin_type_macros.h"
        -:        -: 2056:/** @} */

src/compiler/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:glsl/glcpp/.libs/glcpp-parse.gcno
        -:        -:    0:Data:glsl/glcpp/.libs/glcpp-parse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009,2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef _HASH_TABLE_H
        -:        -:   29:#define _HASH_TABLE_H
        -:        -:   30:
        -:        -:   31:#include <stdlib.h>
        -:        -:   32:#include <inttypes.h>
        -:        -:   33:#include <stdbool.h>
        -:        -:   34:#include "c99_compat.h"
        -:        -:   35:#include "macros.h"
        -:        -:   36:
        -:        -:   37:#ifdef __cplusplus
        -:        -:   38:extern "C" {
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:struct hash_entry {
        -:        -:   42:   uint32_t hash;
        -:        -:   43:   const void *key;
        -:        -:   44:   void *data;
        -:        -:   45:};
        -:        -:   46:
        -:        -:   47:struct hash_table {
        -:        -:   48:   struct hash_entry *table;
        -:        -:   49:   uint32_t (*key_hash_function)(const void *key);
        -:        -:   50:   bool (*key_equals_function)(const void *a, const void *b);
        -:        -:   51:   const void *deleted_key;
        -:        -:   52:   uint32_t size;
        -:        -:   53:   uint32_t rehash;
        -:        -:   54:   uint32_t max_entries;
        -:        -:   55:   uint32_t size_index;
        -:        -:   56:   uint32_t entries;
        -:        -:   57:   uint32_t deleted_entries;
        -:        -:   58:};
        -:        -:   59:
        -:        -:   60:struct hash_table *
        -:        -:   61:_mesa_hash_table_create(void *mem_ctx,
        -:        -:   62:                        uint32_t (*key_hash_function)(const void *key),
        -:        -:   63:                        bool (*key_equals_function)(const void *a,
        -:        -:   64:                                                    const void *b));
        -:        -:   65:void _mesa_hash_table_destroy(struct hash_table *ht,
        -:        -:   66:                              void (*delete_function)(struct hash_entry *entry));
        -:        -:   67:void _mesa_hash_table_clear(struct hash_table *ht,
        -:        -:   68:                            void (*delete_function)(struct hash_entry *entry));
        -:        -:   69:void _mesa_hash_table_set_deleted_key(struct hash_table *ht,
        -:        -:   70:                                      const void *deleted_key);
        -:        -:   71:
        -:        -:   72:static inline uint32_t _mesa_hash_table_num_entries(struct hash_table *ht)
        -:        -:   73:{
        -:        -:   74:   return ht->entries;
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:struct hash_entry *
        -:        -:   78:_mesa_hash_table_insert(struct hash_table *ht, const void *key, void *data);
        -:        -:   79:struct hash_entry *
        -:        -:   80:_mesa_hash_table_insert_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   81:                                   const void *key, void *data);
        -:        -:   82:struct hash_entry *
        -:        -:   83:_mesa_hash_table_search(struct hash_table *ht, const void *key);
        -:        -:   84:struct hash_entry *
        -:        -:   85:_mesa_hash_table_search_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   86:                                  const void *key);
        -:        -:   87:void _mesa_hash_table_remove(struct hash_table *ht,
        -:        -:   88:                             struct hash_entry *entry);
        -:        -:   89:
        -:        -:   90:struct hash_entry *_mesa_hash_table_next_entry(struct hash_table *ht,
        -:        -:   91:                                               struct hash_entry *entry);
        -:        -:   92:struct hash_entry *
        -:        -:   93:_mesa_hash_table_random_entry(struct hash_table *ht,
        -:        -:   94:                              bool (*predicate)(struct hash_entry *entry));
        -:        -:   95:
        -:        -:   96:uint32_t _mesa_hash_data(const void *data, size_t size);
        -:        -:   97:uint32_t _mesa_hash_string(const char *key);
        -:        -:   98:bool _mesa_key_string_equal(const void *a, const void *b);
        -:        -:   99:bool _mesa_key_pointer_equal(const void *a, const void *b);
        -:        -:  100:
      385:      393:  101:static inline uint32_t _mesa_key_hash_string(const void *key)
        -:        -:  102:{
      385:      393:  103:   return _mesa_hash_string((const char *)key);
        -:        -:  104:}
        -:        -:  105:
        -:        -:  106:static inline uint32_t _mesa_hash_pointer(const void *pointer)
        -:        -:  107:{
        -:        -:  108:   return _mesa_hash_data(&pointer, sizeof(pointer));
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:enum {
        -:        -:  112:   _mesa_fnv32_1a_offset_bias = 2166136261u,
        -:        -:  113:};
        -:        -:  114:
        -:        -:  115:static inline uint32_t
        -:        -:  116:_mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size)
        -:        -:  117:{
        -:        -:  118:   const uint8_t *bytes = (const uint8_t *)data;
        -:        -:  119:
        -:        -:  120:   while (size-- != 0) {
        -:        -:  121:      hash ^= *bytes;
        -:        -:  122:      hash = hash * 0x01000193;
        -:        -:  123:      bytes++;
        -:        -:  124:   }
        -:        -:  125:
        -:        -:  126:   return hash;
        -:        -:  127:}
        -:        -:  128:
        -:        -:  129:#define _mesa_fnv32_1a_accumulate(hash, expr) \
        -:        -:  130:   _mesa_fnv32_1a_accumulate_block(hash, &(expr), sizeof(expr))
        -:        -:  131:
        -:        -:  132:/**
        -:        -:  133: * This foreach function is safe against deletion (which just replaces
        -:        -:  134: * an entry's data with the deleted marker), but not against insertion
        -:        -:  135: * (which may rehash the table, making entry a dangling pointer).
        -:        -:  136: */
        -:        -:  137:#define hash_table_foreach(ht, entry)                   \
        -:        -:  138:   for (entry = _mesa_hash_table_next_entry(ht, NULL);  \
        -:        -:  139:        entry != NULL;                                  \
        -:        -:  140:        entry = _mesa_hash_table_next_entry(ht, entry))
        -:        -:  141:
        -:        -:  142:static inline void
        -:        -:  143:hash_table_call_foreach(struct hash_table *ht,
        -:        -:  144:                        void (*callback)(const void *key,
        -:        -:  145:                                         void *data,
        -:        -:  146:                                         void *closure),
        -:        -:  147:                        void *closure)
        -:        -:  148:{
        -:        -:  149:   struct hash_entry *entry;
        -:        -:  150:
        -:        -:  151:   hash_table_foreach(ht, entry)
        -:        -:  152:      callback(entry->key, entry->data, closure);
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:#ifdef __cplusplus
        -:        -:  156:} /* extern C */
        -:        -:  157:#endif
        -:        -:  158:
        -:        -:  159:#endif /* _HASH_TABLE_H */

src/compiler/hir_field_selection.cpp.gcov

        -:        -:    0:Source:glsl/hir_field_selection.cpp
        -:        -:    0:Graph:glsl/.libs/hir_field_selection.gcno
        -:        -:    0:Data:glsl/.libs/hir_field_selection.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "ir.h"
        -:        -:   25:#include "glsl_parser_extras.h"
        -:        -:   26:#include "ast.h"
        -:        -:   27:#include "compiler/glsl_types.h"
        -:        -:   28:
        -:        -:   29:ir_rvalue *
       14:       15:   30:_mesa_ast_field_selection_to_hir(const ast_expression *expr,
        -:        -:   31:				 exec_list *instructions,
        -:        -:   32:				 struct _mesa_glsl_parse_state *state)
        -:        -:   33:{
       14:       15:   34:   void *ctx = state;
       14:       15:   35:   ir_rvalue *result = NULL;
        -:        -:   36:   ir_rvalue *op;
        -:        -:   37:
       14:       15:   38:   op = expr->subexpressions[0]->hir(instructions, state);
        -:        -:   39:
        -:        -:   40:   /* There are two kinds of field selection.  There is the selection of a
        -:        -:   41:    * specific field from a structure, and there is the selection of a
        -:        -:   42:    * swizzle / mask from a vector.  Which is which is determined entirely
        -:        -:   43:    * by the base type of the thing to which the field selection operator is
        -:        -:   44:    * being applied.
        -:        -:   45:    */
       14:       15:   46:   YYLTYPE loc = expr->get_location();
       14:       15:   47:   if (op->type->is_error()) {
        -:        -:   48:      /* silently propagate the error */
       14:       15:   49:   } else if (op->type->base_type == GLSL_TYPE_STRUCT
       14:       15:   50:              || op->type->base_type == GLSL_TYPE_INTERFACE) {
        -:        -:   51:      result = new(ctx) ir_dereference_record(op,
    #####:    #####:   52:					      expr->primary_expression.identifier);
        -:        -:   53:
    #####:    #####:   54:      if (result->type->is_error()) {
        -:        -:   55:	 _mesa_glsl_error(& loc, state, "cannot access field `%s' of "
        -:        -:   56:			  "structure",
    #####:    #####:   57:			  expr->primary_expression.identifier);
        -:        -:   58:      }
       28:       30:   59:   } else if (op->type->is_vector() ||
    #####:    #####:   60:              (state->has_420pack() && op->type->is_scalar())) {
       14:       15:   61:      ir_swizzle *swiz = ir_swizzle::create(op,
       14:       15:   62:					    expr->primary_expression.identifier,
       28:       30:   63:					    op->type->vector_elements);
       14:       15:   64:      if (swiz != NULL) {
       14:       15:   65:	 result = swiz;
        -:        -:   66:      } else {
        -:        -:   67:	 /* FINISHME: Logging of error messages should be moved into
        -:        -:   68:	  * FINISHME: ir_swizzle::create.  This allows the generation of more
        -:        -:   69:	  * FINISHME: specific error messages.
        -:        -:   70:	  */
        -:        -:   71:	 _mesa_glsl_error(& loc, state, "invalid swizzle / mask `%s'",
    #####:    #####:   72:			  expr->primary_expression.identifier);
        -:        -:   73:      }
        -:        -:   74:   } else {
        -:        -:   75:      _mesa_glsl_error(& loc, state, "cannot access field `%s' of "
        -:        -:   76:		       "non-structure / non-vector",
    #####:    #####:   77:		       expr->primary_expression.identifier);
        -:        -:   78:   }
        -:        -:   79:
       14:       15:   80:   return result ? result : ir_rvalue::error_value(ctx);
        -:        -:   81:}

src/compiler/ir_array_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_array_refcount.cpp
        -:        -:    0:Graph:glsl/.libs/ir_array_refcount.gcno
        -:        -:    0:Data:glsl/.libs/ir_array_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_array_refcount.cpp
        -:        -:   26: *
        -:        -:   27: * Provides a visitor which produces a list of variables referenced.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "ir.h"
        -:        -:   31:#include "ir_visitor.h"
        -:        -:   32:#include "ir_array_refcount.h"
        -:        -:   33:#include "compiler/glsl_types.h"
        -:        -:   34:#include "util/hash_table.h"
        -:        -:   35:
        3:        3:   36:ir_array_refcount_visitor::ir_array_refcount_visitor()
        3:        3:   37:   : last_array_deref(0), derefs(0), num_derefs(0), derefs_size(0)
        -:        -:   38:{
        3:        3:   39:   this->mem_ctx = ralloc_context(NULL);
        3:        3:   40:   this->ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        3:        3:   41:                                      _mesa_key_pointer_equal);
        3:        3:   42:}
        -:        -:   43:
        -:        -:   44:static void
       23:       23:   45:free_entry(struct hash_entry *entry)
        -:        -:   46:{
       23:       23:   47:   ir_array_refcount_entry *ivre = (ir_array_refcount_entry *) entry->data;
       23:       23:   48:   delete ivre;
       23:       23:   49:}
        -:        -:   50:
        6:        6:   51:ir_array_refcount_visitor::~ir_array_refcount_visitor()
        -:        -:   52:{
        3:        3:   53:   ralloc_free(this->mem_ctx);
        3:        3:   54:   _mesa_hash_table_destroy(this->ht, free_entry);
        3:        3:   55:}
        -:        -:   56:
       23:       23:   57:ir_array_refcount_entry::ir_array_refcount_entry(ir_variable *var)
       23:       23:   58:   : var(var), is_referenced(false)
        -:        -:   59:{
       23:       23:   60:   num_bits = MAX2(1, var->type->arrays_of_arrays_size());
       23:       23:   61:   bits = new BITSET_WORD[BITSET_WORDS(num_bits)];
       23:       23:   62:   memset(bits, 0, BITSET_WORDS(num_bits) * sizeof(bits[0]));
        -:        -:   63:
        -:        -:   64:   /* Count the "depth" of the arrays-of-arrays. */
       23:       23:   65:   array_depth = 0;
       24:       24:   66:   for (const glsl_type *type = var->type;
        -:        -:   67:        type->is_array();
        -:        -:   68:        type = type->fields.array) {
        1:        1:   69:      array_depth++;
        -:        -:   70:   }
       23:       23:   71:}
        -:        -:   72:
        -:        -:   73:
       46:       46:   74:ir_array_refcount_entry::~ir_array_refcount_entry()
        -:        -:   75:{
       23:       23:   76:   delete [] bits;
       23:       23:   77:}
        -:        -:   78:
        -:        -:   79:
        -:        -:   80:void
       15:       15:   81:ir_array_refcount_entry::mark_array_elements_referenced(const array_deref_range *dr,
        -:        -:   82:                                                        unsigned count)
        -:        -:   83:{
       15:       15:   84:   if (count != array_depth)
    #####:    #####:   85:      return;
        -:        -:   86:
       15:       15:   87:   mark_array_elements_referenced(dr, count, 1, 0);
        -:        -:   88:}
        -:        -:   89:
        -:        -:   90:void
       15:       15:   91:ir_array_refcount_entry::mark_array_elements_referenced(const array_deref_range *dr,
        -:        -:   92:                                                        unsigned count,
        -:        -:   93:                                                        unsigned scale,
        -:        -:   94:                                                        unsigned linearized_index)
        -:        -:   95:{
        -:        -:   96:   /* Walk through the list of array dereferences in least- to
        -:        -:   97:    * most-significant order.  Along the way, accumulate the current
        -:        -:   98:    * linearized offset and the scale factor for each array-of-.
        -:        -:   99:    */
       30:       30:  100:   for (unsigned i = 0; i < count; i++) {
       15:       15:  101:      if (dr[i].index < dr[i].size) {
       15:       15:  102:         linearized_index += dr[i].index * scale;
       15:       15:  103:         scale *= dr[i].size;
        -:        -:  104:      } else {
        -:        -:  105:         /* For each element in the current array, update the count and
        -:        -:  106:          * offset, then recurse to process the remaining arrays.
        -:        -:  107:          *
        -:        -:  108:          * There is some inefficency here if the last element in the
        -:        -:  109:          * array_deref_range list specifies the entire array.  In that case,
        -:        -:  110:          * the loop will make recursive calls with count == 0.  In the call,
        -:        -:  111:          * all that will happen is the bit will be set.
        -:        -:  112:          */
    #####:    #####:  113:         for (unsigned j = 0; j < dr[i].size; j++) {
    #####:    #####:  114:            mark_array_elements_referenced(&dr[i + 1],
        -:        -:  115:                                           count - (i + 1),
    #####:    #####:  116:                                           scale * dr[i].size,
    #####:    #####:  117:                                           linearized_index + (j * scale));
        -:        -:  118:         }
        -:        -:  119:
    #####:    #####:  120:         return;
        -:        -:  121:      }
        -:        -:  122:   }
        -:        -:  123:
       15:       15:  124:   BITSET_SET(bits, linearized_index);
        -:        -:  125:}
        -:        -:  126:
        -:        -:  127:ir_array_refcount_entry *
      116:      120:  128:ir_array_refcount_visitor::get_variable_entry(ir_variable *var)
        -:        -:  129:{
      116:      120:  130:   assert(var);
        -:        -:  131:
      116:      120:  132:   struct hash_entry *e = _mesa_hash_table_search(this->ht, var);
      116:      120:  133:   if (e)
       93:       97:  134:      return (ir_array_refcount_entry *)e->data;
        -:        -:  135:
       23:       23:  136:   ir_array_refcount_entry *entry = new ir_array_refcount_entry(var);
       23:       23:  137:   _mesa_hash_table_insert(this->ht, var, entry);
        -:        -:  138:
       23:       23:  139:   return entry;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:
        -:        -:  143:array_deref_range *
       15:       15:  144:ir_array_refcount_visitor::get_array_deref()
        -:        -:  145:{
       15:       15:  146:   if ((num_derefs + 1) * sizeof(array_deref_range) > derefs_size) {
        1:        1:  147:      void *ptr = reralloc_size(mem_ctx, derefs, derefs_size + 4096);
        -:        -:  148:
        1:        1:  149:      if (ptr == NULL)
    #####:    #####:  150:         return NULL;
        -:        -:  151:
        1:        1:  152:      derefs_size += 4096;
        1:        1:  153:      derefs = (array_deref_range *)ptr;
        -:        -:  154:   }
        -:        -:  155:
       15:       15:  156:   array_deref_range *d = &derefs[num_derefs];
       15:       15:  157:   num_derefs++;
        -:        -:  158:
       15:       15:  159:   return d;
        -:        -:  160:}
        -:        -:  161:
        -:        -:  162:ir_visitor_status
       19:       19:  163:ir_array_refcount_visitor::visit_enter(ir_dereference_array *ir)
        -:        -:  164:{
        -:        -:  165:   /* It could also be a vector or a matrix.  Individual elements of vectors
        -:        -:  166:    * are natrices are not tracked, so bail.
        -:        -:  167:    */
       19:       19:  168:   if (!ir->array->type->is_array())
        4:        4:  169:      return visit_continue;
        -:        -:  170:
        -:        -:  171:   /* If this array dereference is a child of an array dereference that was
        -:        -:  172:    * already visited, just continue on.  Otherwise, for an arrays-of-arrays
        -:        -:  173:    * dereference like x[1][2][3][4], we'd process the [1][2][3][4] sequence,
        -:        -:  174:    * the [1][2][3] sequence, the [1][2] sequence, and the [1] sequence.  This
        -:        -:  175:    * ensures that we only process the full sequence.
        -:        -:  176:    */
       15:       15:  177:   if (last_array_deref && last_array_deref->array == ir) {
    #####:    #####:  178:      last_array_deref = ir;
    #####:    #####:  179:      return visit_continue;
        -:        -:  180:   }
        -:        -:  181:
       15:       15:  182:   last_array_deref = ir;
        -:        -:  183:
       15:       15:  184:   num_derefs = 0;
        -:        -:  185:
       15:       15:  186:   ir_rvalue *rv = ir;
       45:       45:  187:   while (rv->ir_type == ir_type_dereference_array) {
       15:       15:  188:      ir_dereference_array *const deref = rv->as_dereference_array();
        -:        -:  189:
       15:       15:  190:      assert(deref != NULL);
       15:       15:  191:      assert(deref->array->type->is_array());
        -:        -:  192:
       15:       15:  193:      ir_rvalue *const array = deref->array;
       15:       15:  194:      const ir_constant *const idx = deref->array_index->as_constant();
       15:       15:  195:      array_deref_range *const dr = get_array_deref();
        -:        -:  196:
       15:       15:  197:      dr->size = array->type->array_size();
        -:        -:  198:
       15:       15:  199:      if (idx != NULL) {
       15:       15:  200:         dr->index = idx->get_int_component(0);
        -:        -:  201:      } else {
        -:        -:  202:         /* An unsized array can occur at the end of an SSBO.  We can't track
        -:        -:  203:          * accesses to such an array, so bail.
        -:        -:  204:          */
    #####:    #####:  205:         if (array->type->array_size() == 0)
    #####:    #####:  206:            return visit_continue;
        -:        -:  207:
    #####:    #####:  208:         dr->index = dr->size;
        -:        -:  209:      }
        -:        -:  210:
       15:       15:  211:      rv = array;
        -:        -:  212:   }
        -:        -:  213:
       15:       15:  214:   ir_dereference_variable *const var_deref = rv->as_dereference_variable();
        -:        -:  215:
        -:        -:  216:   /* If the array being dereferenced is not a variable, bail.  At the very
        -:        -:  217:    * least, ir_constant and ir_dereference_record are possible.
        -:        -:  218:    */
       15:       15:  219:   if (var_deref == NULL)
    #####:    #####:  220:      return visit_continue;
        -:        -:  221:
        -:        -:  222:   ir_array_refcount_entry *const entry =
       15:       15:  223:      this->get_variable_entry(var_deref->var);
        -:        -:  224:
       15:       15:  225:   if (entry == NULL)
    #####:    #####:  226:      return visit_stop;
        -:        -:  227:
       15:       15:  228:   entry->mark_array_elements_referenced(derefs, num_derefs);
        -:        -:  229:
       15:       15:  230:   return visit_continue;
        -:        -:  231:}
        -:        -:  232:
        -:        -:  233:
        -:        -:  234:ir_visitor_status
      101:      105:  235:ir_array_refcount_visitor::visit(ir_dereference_variable *ir)
        -:        -:  236:{
      101:      105:  237:   ir_variable *const var = ir->variable_referenced();
      101:      105:  238:   ir_array_refcount_entry *entry = this->get_variable_entry(var);
        -:        -:  239:
      101:      105:  240:   entry->is_referenced = true;
        -:        -:  241:
      101:      105:  242:   return visit_continue;
        -:        -:  243:}
        -:        -:  244:
        -:        -:  245:
        -:        -:  246:ir_visitor_status
        3:        3:  247:ir_array_refcount_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  248:{
        -:        -:  249:   /* We don't want to descend into the function parameters and
        -:        -:  250:    * dead-code eliminate them, so just accept the body here.
        -:        -:  251:    */
        3:        3:  252:   visit_list_elements(this, &ir->body);
        3:        3:  253:   return visit_continue_with_parent;
        -:        -:  254:}

src/compiler/ir_basic_block.cpp.gcov

        -:        -:    0:Source:glsl/ir_basic_block.cpp
        -:        -:    0:Graph:glsl/.libs/ir_basic_block.gcno
        -:        -:    0:Data:glsl/.libs/ir_basic_block.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_basic_block.cpp
        -:        -:   26: *
        -:        -:   27: * Basic block analysis of instruction streams.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "ir.h"
        -:        -:   31:#include "ir_basic_block.h"
        -:        -:   32:
        -:        -:   33:/**
        -:        -:   34: * Calls a user function for every basic block in the instruction stream.
        -:        -:   35: *
        -:        -:   36: * Basic block analysis is pretty easy in our IR thanks to the lack of
        -:        -:   37: * unstructured control flow.  We've got:
        -:        -:   38: *
        -:        -:   39: * ir_loop (for () {}, while () {}, do {} while ())
        -:        -:   40: * ir_loop_jump (
        -:        -:   41: * ir_if () {}
        -:        -:   42: * ir_return
        -:        -:   43: * ir_call()
        -:        -:   44: *
        -:        -:   45: * Note that the basic blocks returned by this don't encompass all
        -:        -:   46: * operations performed by the program -- for example, if conditions
        -:        -:   47: * don't get returned, nor do the assignments that will be generated
        -:        -:   48: * for ir_call parameters.
        -:        -:   49: */
      494:      648:   50:void call_for_basic_blocks(exec_list *instructions,
        -:        -:   51:			   void (*callback)(ir_instruction *first,
        -:        -:   52:					    ir_instruction *last,
        -:        -:   53:					    void *data),
        -:        -:   54:			   void *data)
        -:        -:   55:{
      494:      648:   56:   ir_instruction *leader = NULL;
      494:      648:   57:   ir_instruction *last = NULL;
        -:        -:   58:
     3062:     3370:   59:   foreach_in_list(ir_instruction, ir, instructions) {
        -:        -:   60:      ir_if *ir_if;
        -:        -:   61:      ir_loop *ir_loop;
        -:        -:   62:      ir_function *ir_function;
        -:        -:   63:
     2568:     2722:   64:      if (!leader)
      576:      730:   65:	 leader = ir;
        -:        -:   66:
     2568:     2722:   67:      if ((ir_if = ir->as_if())) {
      184:      246:   68:	 callback(leader, ir, data);
      184:      246:   69:	 leader = NULL;
        -:        -:   70:
      184:      246:   71:	 call_for_basic_blocks(&ir_if->then_instructions, callback, data);
      184:      246:   72:	 call_for_basic_blocks(&ir_if->else_instructions, callback, data);
     2384:     2476:   73:      } else if ((ir_loop = ir->as_loop())) {
       48:       78:   74:	 callback(leader, ir, data);
       48:       78:   75:	 leader = NULL;
       48:       78:   76:	 call_for_basic_blocks(&ir_loop->body_instructions, callback, data);
     2336:     2398:   77:      } else if (ir->as_jump() || ir->as_call()) {
      102:      164:   78:	 callback(leader, ir, data);
      102:      164:   79:	 leader = NULL;
     2234:     2234:   80:      } else if ((ir_function = ir->as_function())) {
        -:        -:   81:	 /* A function definition doesn't interrupt our basic block
        -:        -:   82:	  * since execution doesn't go into it.  We should process the
        -:        -:   83:	  * bodies of its signatures for BBs, though.
        -:        -:   84:	  *
        -:        -:   85:	  * Note that we miss an opportunity for producing more
        -:        -:   86:	  * maximal BBs between the instructions that precede main()
        -:        -:   87:	  * and the body of main().  Perhaps those instructions ought
        -:        -:   88:	  * to live inside of main().
        -:        -:   89:	  */
       84:       84:   90:	 foreach_in_list(ir_function_signature, ir_sig, &ir_function->signatures) {
       42:       42:   91:	    call_for_basic_blocks(&ir_sig->body, callback, data);
        -:        -:   92:	 }
        -:        -:   93:      }
     2568:     2722:   94:      last = ir;
        -:        -:   95:   }
      494:      648:   96:   if (leader) {
      242:      242:   97:      callback(leader, last, data);
        -:        -:   98:   }
      494:      648:   99:}

src/compiler/ir_clone.cpp.gcov

        -:        -:    0:Source:glsl/ir_clone.cpp
        -:        -:    0:Graph:glsl/.libs/ir_clone.gcno
        -:        -:    0:Data:glsl/.libs/ir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include <string.h>
        -:        -:   25:#include "main/compiler.h"
        -:        -:   26:#include "ir.h"
        -:        -:   27:#include "compiler/glsl_types.h"
        -:        -:   28:#include "util/hash_table.h"
        -:        -:   29:
        -:        -:   30:ir_rvalue *
    #####:    #####:   31:ir_rvalue::clone(void *mem_ctx, struct hash_table *) const
        -:        -:   32:{
        -:        -:   33:   /* The only possible instantiation is the generic error value. */
    #####:    #####:   34:   return error_value(mem_ctx);
        -:        -:   35:}
        -:        -:   36:
        -:        -:   37:/**
        -:        -:   38: * Duplicate an IR variable
        -:        -:   39: */
        -:        -:   40:ir_variable *
      263:      263:   41:ir_variable::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:   42:{
      263:      263:   43:   ir_variable *var = new(mem_ctx) ir_variable(this->type, this->name,
      526:      526:   44:					       (ir_variable_mode) this->data.mode);
        -:        -:   45:
      263:      263:   46:   var->data.max_array_access = this->data.max_array_access;
      263:      263:   47:   if (this->is_interface_instance()) {
        -:        -:   48:      var->u.max_ifc_array_access =
    #####:    #####:   49:         rzalloc_array(var, int, this->interface_type->length);
    #####:    #####:   50:      memcpy(var->u.max_ifc_array_access, this->u.max_ifc_array_access,
    #####:    #####:   51:             this->interface_type->length * sizeof(unsigned));
        -:        -:   52:   }
        -:        -:   53:
      263:      263:   54:   memcpy(&var->data, &this->data, sizeof(var->data));
        -:        -:   55:
      263:      263:   56:   if (this->get_state_slots()) {
       60:       60:   57:      ir_state_slot *s = var->allocate_state_slots(this->get_num_state_slots());
       60:       60:   58:      memcpy(s, this->get_state_slots(),
      120:      120:   59:             sizeof(s[0]) * var->get_num_state_slots());
        -:        -:   60:   }
        -:        -:   61:
      263:      263:   62:   if (this->constant_value)
       12:       12:   63:      var->constant_value = this->constant_value->clone(mem_ctx, ht);
        -:        -:   64:
      263:      263:   65:   if (this->constant_initializer)
        -:        -:   66:      var->constant_initializer =
       16:       16:   67:	 this->constant_initializer->clone(mem_ctx, ht);
        -:        -:   68:
      263:      263:   69:   var->interface_type = this->interface_type;
        -:        -:   70:
      263:      263:   71:   if (ht)
      263:      263:   72:      _mesa_hash_table_insert(ht, (void *)const_cast<ir_variable *>(this), var);
        -:        -:   73:
      263:      263:   74:   return var;
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:ir_swizzle *
        7:       10:   78:ir_swizzle::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:   79:{
        7:       10:   80:   return new(mem_ctx) ir_swizzle(this->val->clone(mem_ctx, ht), this->mask);
        -:        -:   81:}
        -:        -:   82:
        -:        -:   83:ir_return *
       72:       72:   84:ir_return::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:   85:{
       72:       72:   86:   ir_rvalue *new_value = NULL;
        -:        -:   87:
       72:       72:   88:   if (this->value)
       72:       72:   89:      new_value = this->value->clone(mem_ctx, ht);
        -:        -:   90:
       72:       72:   91:   return new(mem_ctx) ir_return(new_value);
        -:        -:   92:}
        -:        -:   93:
        -:        -:   94:ir_discard *
    #####:    #####:   95:ir_discard::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:   96:{
    #####:    #####:   97:   ir_rvalue *new_condition = NULL;
        -:        -:   98:
    #####:    #####:   99:   if (this->condition != NULL)
    #####:    #####:  100:      new_condition = this->condition->clone(mem_ctx, ht);
        -:        -:  101:
    #####:    #####:  102:   return new(mem_ctx) ir_discard(new_condition);
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:ir_loop_jump *
        9:       17:  106:ir_loop_jump::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  107:{
        -:        -:  108:   (void)ht;
        -:        -:  109:
        9:       17:  110:   return new(mem_ctx) ir_loop_jump(this->mode);
        -:        -:  111:}
        -:        -:  112:
        -:        -:  113:ir_if *
       16:       24:  114:ir_if::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  115:{
       16:       24:  116:   ir_if *new_if = new(mem_ctx) ir_if(this->condition->clone(mem_ctx, ht));
        -:        -:  117:
       38:       54:  118:   foreach_in_list(ir_instruction, ir, &this->then_instructions) {
       22:       30:  119:      new_if->then_instructions.push_tail(ir->clone(mem_ctx, ht));
        -:        -:  120:   }
        -:        -:  121:
       22:       30:  122:   foreach_in_list(ir_instruction, ir, &this->else_instructions) {
        6:        6:  123:      new_if->else_instructions.push_tail(ir->clone(mem_ctx, ht));
        -:        -:  124:   }
        -:        -:  125:
       16:       24:  126:   return new_if;
        -:        -:  127:}
        -:        -:  128:
        -:        -:  129:ir_loop *
        4:        7:  130:ir_loop::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  131:{
        4:        7:  132:   ir_loop *new_loop = new(mem_ctx) ir_loop();
        -:        -:  133:
       27:       41:  134:   foreach_in_list(ir_instruction, ir, &this->body_instructions) {
       23:       34:  135:      new_loop->body_instructions.push_tail(ir->clone(mem_ctx, ht));
        -:        -:  136:   }
        -:        -:  137:
        4:        7:  138:   return new_loop;
        -:        -:  139:}
        -:        -:  140:
        -:        -:  141:ir_call *
        2:        2:  142:ir_call::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  143:{
        2:        2:  144:   ir_dereference_variable *new_return_ref = NULL;
        2:        2:  145:   if (this->return_deref != NULL)
        2:        2:  146:      new_return_ref = this->return_deref->clone(mem_ctx, ht);
        -:        -:  147:
        2:        2:  148:   exec_list new_parameters;
        -:        -:  149:
        6:        6:  150:   foreach_in_list(ir_instruction, ir, &this->actual_parameters) {
        4:        4:  151:      new_parameters.push_tail(ir->clone(mem_ctx, ht));
        -:        -:  152:   }
        -:        -:  153:
        2:        2:  154:   return new(mem_ctx) ir_call(this->callee, new_return_ref, &new_parameters);
        -:        -:  155:}
        -:        -:  156:
        -:        -:  157:ir_expression *
      103:      106:  158:ir_expression::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  159:{
      103:      106:  160:   ir_rvalue *op[ARRAY_SIZE(this->operands)] = { NULL, };
        -:        -:  161:   unsigned int i;
        -:        -:  162:
      293:      302:  163:   for (i = 0; i < get_num_operands(); i++) {
      190:      196:  164:      op[i] = this->operands[i]->clone(mem_ctx, ht);
        -:        -:  165:   }
        -:        -:  166:
      103:      106:  167:   return new(mem_ctx) ir_expression(this->operation, this->type,
      206:      212:  168:				     op[0], op[1], op[2], op[3]);
        -:        -:  169:}
        -:        -:  170:
        -:        -:  171:ir_dereference_variable *
      338:      346:  172:ir_dereference_variable::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  173:{
        -:        -:  174:   ir_variable *new_var;
        -:        -:  175:
      338:      346:  176:   if (ht) {
      268:      276:  177:      hash_entry *entry = _mesa_hash_table_search(ht, this->var);
      268:      276:  178:      new_var = entry ? (ir_variable *) entry->data : this->var;
        -:        -:  179:   } else {
       70:       70:  180:      new_var = this->var;
        -:        -:  181:   }
        -:        -:  182:
      338:      346:  183:   return new(mem_ctx) ir_dereference_variable(new_var);
        -:        -:  184:}
        -:        -:  185:
        -:        -:  186:ir_dereference_array *
       22:       22:  187:ir_dereference_array::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  188:{
       22:       22:  189:   return new(mem_ctx) ir_dereference_array(this->array->clone(mem_ctx, ht),
       44:       44:  190:					    this->array_index->clone(mem_ctx,
       66:       66:  191:								     ht));
        -:        -:  192:}
        -:        -:  193:
        -:        -:  194:ir_dereference_record *
    #####:    #####:  195:ir_dereference_record::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  196:{
    #####:    #####:  197:   return new(mem_ctx) ir_dereference_record(this->record->clone(mem_ctx, ht),
    #####:    #####:  198:					     this->field);
        -:        -:  199:}
        -:        -:  200:
        -:        -:  201:ir_texture *
    #####:    #####:  202:ir_texture::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  203:{
    #####:    #####:  204:   ir_texture *new_tex = new(mem_ctx) ir_texture(this->op);
    #####:    #####:  205:   new_tex->type = this->type;
        -:        -:  206:
    #####:    #####:  207:   new_tex->sampler = this->sampler->clone(mem_ctx, ht);
    #####:    #####:  208:   if (this->coordinate)
    #####:    #####:  209:      new_tex->coordinate = this->coordinate->clone(mem_ctx, ht);
    #####:    #####:  210:   if (this->projector)
    #####:    #####:  211:      new_tex->projector = this->projector->clone(mem_ctx, ht);
    #####:    #####:  212:   if (this->shadow_comparator) {
    #####:    #####:  213:      new_tex->shadow_comparator = this->shadow_comparator->clone(mem_ctx, ht);
        -:        -:  214:   }
        -:        -:  215:
    #####:    #####:  216:   if (this->offset != NULL)
    #####:    #####:  217:      new_tex->offset = this->offset->clone(mem_ctx, ht);
        -:        -:  218:
    #####:    #####:  219:   switch (this->op) {
        -:        -:  220:   case ir_tex:
        -:        -:  221:   case ir_lod:
        -:        -:  222:   case ir_query_levels:
        -:        -:  223:   case ir_texture_samples:
        -:        -:  224:   case ir_samples_identical:
    #####:    #####:  225:      break;
        -:        -:  226:   case ir_txb:
    #####:    #####:  227:      new_tex->lod_info.bias = this->lod_info.bias->clone(mem_ctx, ht);
    #####:    #####:  228:      break;
        -:        -:  229:   case ir_txl:
        -:        -:  230:   case ir_txf:
        -:        -:  231:   case ir_txs:
    #####:    #####:  232:      new_tex->lod_info.lod = this->lod_info.lod->clone(mem_ctx, ht);
    #####:    #####:  233:      break;
        -:        -:  234:   case ir_txf_ms:
    #####:    #####:  235:      new_tex->lod_info.sample_index = this->lod_info.sample_index->clone(mem_ctx, ht);
    #####:    #####:  236:      break;
        -:        -:  237:   case ir_txd:
    #####:    #####:  238:      new_tex->lod_info.grad.dPdx = this->lod_info.grad.dPdx->clone(mem_ctx, ht);
    #####:    #####:  239:      new_tex->lod_info.grad.dPdy = this->lod_info.grad.dPdy->clone(mem_ctx, ht);
    #####:    #####:  240:      break;
        -:        -:  241:   case ir_tg4:
    #####:    #####:  242:      new_tex->lod_info.component = this->lod_info.component->clone(mem_ctx, ht);
    #####:    #####:  243:      break;
        -:        -:  244:   }
        -:        -:  245:
    #####:    #####:  246:   return new_tex;
        -:        -:  247:}
        -:        -:  248:
        -:        -:  249:ir_assignment *
       54:       54:  250:ir_assignment::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  251:{
       54:       54:  252:   ir_rvalue *new_condition = NULL;
        -:        -:  253:
       54:       54:  254:   if (this->condition)
    #####:    #####:  255:      new_condition = this->condition->clone(mem_ctx, ht);
        -:        -:  256:
        -:        -:  257:   ir_assignment *cloned =
       54:       54:  258:      new(mem_ctx) ir_assignment(this->lhs->clone(mem_ctx, ht),
       54:       54:  259:                                 this->rhs->clone(mem_ctx, ht),
      108:      108:  260:                                 new_condition);
       54:       54:  261:   cloned->write_mask = this->write_mask;
       54:       54:  262:   return cloned;
        -:        -:  263:}
        -:        -:  264:
        -:        -:  265:ir_function *
        9:        9:  266:ir_function::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  267:{
        9:        9:  268:   ir_function *copy = new(mem_ctx) ir_function(this->name);
        -:        -:  269:
        9:        9:  270:   copy->is_subroutine = this->is_subroutine;
        9:        9:  271:   copy->subroutine_index = this->subroutine_index;
        9:        9:  272:   copy->num_subroutine_types = this->num_subroutine_types;
        9:        9:  273:   copy->subroutine_types = ralloc_array(mem_ctx, const struct glsl_type *, copy->num_subroutine_types);
        9:        9:  274:   for (int i = 0; i < copy->num_subroutine_types; i++)
    #####:    #####:  275:     copy->subroutine_types[i] = this->subroutine_types[i];
        -:        -:  276:
       77:       77:  277:   foreach_in_list(const ir_function_signature, sig, &this->signatures) {
       68:       68:  278:      ir_function_signature *sig_copy = sig->clone(mem_ctx, ht);
       68:       68:  279:      copy->add_signature(sig_copy);
        -:        -:  280:
       68:       68:  281:      if (ht != NULL) {
        -:        -:  282:         _mesa_hash_table_insert(ht,
       68:       68:  283:               (void *)const_cast<ir_function_signature *>(sig), sig_copy);
        -:        -:  284:      }
        -:        -:  285:   }
        -:        -:  286:
        9:        9:  287:   return copy;
        -:        -:  288:}
        -:        -:  289:
        -:        -:  290:ir_function_signature *
       68:       68:  291:ir_function_signature::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  292:{
       68:       68:  293:   ir_function_signature *copy = this->clone_prototype(mem_ctx, ht);
        -:        -:  294:
       68:       68:  295:   copy->is_defined = this->is_defined;
        -:        -:  296:
        -:        -:  297:   /* Clone the instruction list.
        -:        -:  298:    */
      172:      172:  299:   foreach_in_list(const ir_instruction, inst, &this->body) {
      104:      104:  300:      ir_instruction *const inst_copy = inst->clone(mem_ctx, ht);
      104:      104:  301:      copy->body.push_tail(inst_copy);
        -:        -:  302:   }
        -:        -:  303:
       68:       68:  304:   return copy;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:ir_function_signature *
       68:       68:  308:ir_function_signature::clone_prototype(void *mem_ctx, struct hash_table *ht) const
        -:        -:  309:{
        -:        -:  310:   ir_function_signature *copy =
       68:       68:  311:      new(mem_ctx) ir_function_signature(this->return_type);
        -:        -:  312:
       68:       68:  313:   copy->is_defined = false;
       68:       68:  314:   copy->builtin_avail = this->builtin_avail;
       68:       68:  315:   copy->origin = this;
        -:        -:  316:
        -:        -:  317:   /* Clone the parameter list, but NOT the body.
        -:        -:  318:    */
      190:      190:  319:   foreach_in_list(const ir_variable, param, &this->parameters) {
      122:      122:  320:      assert(const_cast<ir_variable *>(param)->as_variable() != NULL);
        -:        -:  321:
      122:      122:  322:      ir_variable *const param_copy = param->clone(mem_ctx, ht);
      122:      122:  323:      copy->parameters.push_tail(param_copy);
        -:        -:  324:   }
        -:        -:  325:
       68:       68:  326:   return copy;
        -:        -:  327:}
        -:        -:  328:
        -:        -:  329:ir_constant *
       74:       79:  330:ir_constant::clone(void *mem_ctx, struct hash_table *ht) const
        -:        -:  331:{
        -:        -:  332:   (void)ht;
        -:        -:  333:
       74:       79:  334:   switch (this->type->base_type) {
        -:        -:  335:   case GLSL_TYPE_UINT:
        -:        -:  336:   case GLSL_TYPE_INT:
        -:        -:  337:   case GLSL_TYPE_FLOAT:
        -:        -:  338:   case GLSL_TYPE_DOUBLE:
        -:        -:  339:   case GLSL_TYPE_BOOL:
        -:        -:  340:   case GLSL_TYPE_UINT64:
        -:        -:  341:   case GLSL_TYPE_INT64:
       74:       79:  342:      return new(mem_ctx) ir_constant(this->type, &this->value);
        -:        -:  343:
        -:        -:  344:   case GLSL_TYPE_STRUCT: {
    #####:    #####:  345:      ir_constant *c = new(mem_ctx) ir_constant;
        -:        -:  346:
    #####:    #####:  347:      c->type = this->type;
    #####:    #####:  348:      for (const exec_node *node = this->components.get_head_raw()
    #####:    #####:  349:	      ; !node->is_tail_sentinel()
        -:        -:  350:	      ; node = node->next) {
    #####:    #####:  351:	 ir_constant *const orig = (ir_constant *) node;
        -:        -:  352:
    #####:    #####:  353:	 c->components.push_tail(orig->clone(mem_ctx, NULL));
        -:        -:  354:      }
        -:        -:  355:
    #####:    #####:  356:      return c;
        -:        -:  357:   }
        -:        -:  358:
        -:        -:  359:   case GLSL_TYPE_ARRAY: {
    #####:    #####:  360:      ir_constant *c = new(mem_ctx) ir_constant;
        -:        -:  361:
    #####:    #####:  362:      c->type = this->type;
    #####:    #####:  363:      c->array_elements = ralloc_array(c, ir_constant *, this->type->length);
    #####:    #####:  364:      for (unsigned i = 0; i < this->type->length; i++) {
    #####:    #####:  365:	 c->array_elements[i] = this->array_elements[i]->clone(mem_ctx, NULL);
        -:        -:  366:      }
    #####:    #####:  367:      return c;
        -:        -:  368:   }
        -:        -:  369:
        -:        -:  370:   case GLSL_TYPE_SAMPLER:
        -:        -:  371:   case GLSL_TYPE_IMAGE:
        -:        -:  372:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -:  373:   case GLSL_TYPE_VOID:
        -:        -:  374:   case GLSL_TYPE_ERROR:
        -:        -:  375:   case GLSL_TYPE_SUBROUTINE:
        -:        -:  376:   case GLSL_TYPE_INTERFACE:
        -:        -:  377:   case GLSL_TYPE_FUNCTION:
    #####:    #####:  378:      assert(!"Should not get here.");
        -:        -:  379:      break;
        -:        -:  380:   }
        -:        -:  381:
    #####:    #####:  382:   return NULL;
        -:        -:  383:}
        -:        -:  384:
        -:        -:  385:
        -:        -:  386:class fixup_ir_call_visitor : public ir_hierarchical_visitor {
        -:        -:  387:public:
        3:        3:  388:   fixup_ir_call_visitor(struct hash_table *ht)
        3:        3:  389:   {
        3:        3:  390:      this->ht = ht;
        3:        3:  391:   }
        -:        -:  392:
        2:        2:  393:   virtual ir_visitor_status visit_enter(ir_call *ir)
        -:        -:  394:   {
        -:        -:  395:      /* Try to find the function signature referenced by the ir_call in the
        -:        -:  396:       * table.  If it is found, replace it with the value from the table.
        -:        -:  397:       */
        -:        -:  398:      ir_function_signature *sig;
        2:        2:  399:      hash_entry *entry = _mesa_hash_table_search(this->ht, ir->callee);
        -:        -:  400:
        2:        2:  401:      if (entry != NULL) {
        2:        2:  402:         sig = (ir_function_signature *) entry->data;
        2:        2:  403:         ir->callee = sig;
        -:        -:  404:      }
        -:        -:  405:
        -:        -:  406:      /* Since this may be used before function call parameters are flattened,
        -:        -:  407:       * the children also need to be processed.
        -:        -:  408:       */
        2:        2:  409:      return visit_continue;
        -:        -:  410:   }
        -:        -:  411:
        -:        -:  412:private:
        -:        -:  413:   struct hash_table *ht;
        -:        -:  414:};
        -:        -:  415:
        -:        -:  416:
        -:        -:  417:static void
        3:        3:  418:fixup_function_calls(struct hash_table *ht, exec_list *instructions)
        -:        -:  419:{
        3:        3:  420:   fixup_ir_call_visitor v(ht);
        3:        3:  421:   v.run(instructions);
        3:        3:  422:}
        -:        -:  423:
        -:        -:  424:
        -:        -:  425:void
        3:        3:  426:clone_ir_list(void *mem_ctx, exec_list *out, const exec_list *in)
        -:        -:  427:{
        -:        -:  428:   struct hash_table *ht =
        3:        3:  429:         _mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
        -:        -:  430:
      112:      112:  431:   foreach_in_list(const ir_instruction, original, in) {
      109:      109:  432:      ir_instruction *copy = original->clone(mem_ctx, ht);
        -:        -:  433:
      109:      109:  434:      out->push_tail(copy);
        -:        -:  435:   }
        -:        -:  436:
        -:        -:  437:   /* Make a pass over the cloned tree to fix up ir_call nodes to point to the
        -:        -:  438:    * cloned ir_function_signature nodes.  This cannot be done automatically
        -:        -:  439:    * during cloning because the ir_call might be a forward reference (i.e.,
        -:        -:  440:    * the function signature that it references may not have been cloned yet).
        -:        -:  441:    */
        3:        3:  442:   fixup_function_calls(ht, out);
        -:        -:  443:
        3:        3:  444:   _mesa_hash_table_destroy(ht, NULL);
        3:        3:  445:}

src/compiler/ir_constant_expression.cpp.gcov

        -:        -:    0:Source:glsl/ir_constant_expression.cpp
        -:        -:    0:Graph:glsl/.libs/ir_constant_expression.gcno
        -:        -:    0:Data:glsl/.libs/ir_constant_expression.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_constant_expression.cpp
        -:        -:   26: * Evaluate and process constant valued expressions
        -:        -:   27: *
        -:        -:   28: * In GLSL, constant valued expressions are used in several places.  These
        -:        -:   29: * must be processed and evaluated very early in the compilation process.
        -:        -:   30: *
        -:        -:   31: *    * Sizes of arrays
        -:        -:   32: *    * Initializers for uniforms
        -:        -:   33: *    * Initializers for \c const variables
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include <math.h>
        -:        -:   37:#include "main/core.h" /* for MAX2, MIN2, CLAMP */
        -:        -:   38:#include "util/rounding.h" /* for _mesa_roundeven */
        -:        -:   39:#include "util/half_float.h"
        -:        -:   40:#include "ir.h"
        -:        -:   41:#include "compiler/glsl_types.h"
        -:        -:   42:#include "util/hash_table.h"
        -:        -:   43:
        -:        -:   44:static float
    #####:    #####:   45:dot_f(ir_constant *op0, ir_constant *op1)
        -:        -:   46:{
    #####:    #####:   47:   assert(op0->type->is_float() && op1->type->is_float());
        -:        -:   48:
    #####:    #####:   49:   float result = 0;
    #####:    #####:   50:   for (unsigned c = 0; c < op0->type->components(); c++)
    #####:    #####:   51:      result += op0->value.f[c] * op1->value.f[c];
        -:        -:   52:
    #####:    #####:   53:   return result;
        -:        -:   54:}
        -:        -:   55:
        -:        -:   56:static double
    #####:    #####:   57:dot_d(ir_constant *op0, ir_constant *op1)
        -:        -:   58:{
    #####:    #####:   59:   assert(op0->type->is_double() && op1->type->is_double());
        -:        -:   60:
    #####:    #####:   61:   double result = 0;
    #####:    #####:   62:   for (unsigned c = 0; c < op0->type->components(); c++)
    #####:    #####:   63:      result += op0->value.d[c] * op1->value.d[c];
        -:        -:   64:
    #####:    #####:   65:   return result;
        -:        -:   66:}
        -:        -:   67:
        -:        -:   68:/* This method is the only one supported by gcc.  Unions in particular
        -:        -:   69: * are iffy, and read-through-converted-pointer is killed by strict
        -:        -:   70: * aliasing.  OTOH, the compiler sees through the memcpy, so the
        -:        -:   71: * resulting asm is reasonable.
        -:        -:   72: */
        -:        -:   73:static float
    #####:    #####:   74:bitcast_u2f(unsigned int u)
        -:        -:   75:{
        -:        -:   76:   assert(sizeof(float) == sizeof(unsigned int));
        -:        -:   77:   float f;
    #####:    #####:   78:   memcpy(&f, &u, sizeof(f));
    #####:    #####:   79:   return f;
        -:        -:   80:}
        -:        -:   81:
        -:        -:   82:static unsigned int
    #####:    #####:   83:bitcast_f2u(float f)
        -:        -:   84:{
        -:        -:   85:   assert(sizeof(float) == sizeof(unsigned int));
        -:        -:   86:   unsigned int u;
    #####:    #####:   87:   memcpy(&u, &f, sizeof(f));
    #####:    #####:   88:   return u;
        -:        -:   89:}
        -:        -:   90:
        -:        -:   91:static double
    #####:    #####:   92:bitcast_u642d(uint64_t u)
        -:        -:   93:{
        -:        -:   94:   assert(sizeof(double) == sizeof(uint64_t));
        -:        -:   95:   double d;
    #####:    #####:   96:   memcpy(&d, &u, sizeof(d));
    #####:    #####:   97:   return d;
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:static double
    #####:    #####:  101:bitcast_i642d(int64_t i)
        -:        -:  102:{
        -:        -:  103:   assert(sizeof(double) == sizeof(int64_t));
        -:        -:  104:   double d;
    #####:    #####:  105:   memcpy(&d, &i, sizeof(d));
    #####:    #####:  106:   return d;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:static double
    #####:    #####:  110:bitcast_d2u64(double d)
        -:        -:  111:{
        -:        -:  112:   assert(sizeof(double) == sizeof(uint64_t));
        -:        -:  113:   uint64_t u;
    #####:    #####:  114:   memcpy(&u, &d, sizeof(d));
    #####:    #####:  115:   return u;
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:static double
    #####:    #####:  119:bitcast_d2i64(double d)
        -:        -:  120:{
        -:        -:  121:   assert(sizeof(double) == sizeof(int64_t));
        -:        -:  122:   int64_t i;
    #####:    #####:  123:   memcpy(&i, &d, sizeof(d));
    #####:    #####:  124:   return i;
        -:        -:  125:}
        -:        -:  126:
        -:        -:  127:/**
        -:        -:  128: * Evaluate one component of a floating-point 4x8 unpacking function.
        -:        -:  129: */
        -:        -:  130:typedef uint8_t
        -:        -:  131:(*pack_1x8_func_t)(float);
        -:        -:  132:
        -:        -:  133:/**
        -:        -:  134: * Evaluate one component of a floating-point 2x16 unpacking function.
        -:        -:  135: */
        -:        -:  136:typedef uint16_t
        -:        -:  137:(*pack_1x16_func_t)(float);
        -:        -:  138:
        -:        -:  139:/**
        -:        -:  140: * Evaluate one component of a floating-point 4x8 unpacking function.
        -:        -:  141: */
        -:        -:  142:typedef float
        -:        -:  143:(*unpack_1x8_func_t)(uint8_t);
        -:        -:  144:
        -:        -:  145:/**
        -:        -:  146: * Evaluate one component of a floating-point 2x16 unpacking function.
        -:        -:  147: */
        -:        -:  148:typedef float
        -:        -:  149:(*unpack_1x16_func_t)(uint16_t);
        -:        -:  150:
        -:        -:  151:/**
        -:        -:  152: * Evaluate a 2x16 floating-point packing function.
        -:        -:  153: */
        -:        -:  154:static uint32_t
    #####:    #####:  155:pack_2x16(pack_1x16_func_t pack_1x16,
        -:        -:  156:          float x, float y)
        -:        -:  157:{
        -:        -:  158:   /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  159:    *
        -:        -:  160:    *    packSnorm2x16
        -:        -:  161:    *    -------------
        -:        -:  162:    *    The first component of the vector will be written to the least
        -:        -:  163:    *    significant bits of the output; the last component will be written to
        -:        -:  164:    *    the most significant bits.
        -:        -:  165:    *
        -:        -:  166:    * The specifications for the other packing functions contain similar
        -:        -:  167:    * language.
        -:        -:  168:    */
    #####:    #####:  169:   uint32_t u = 0;
    #####:    #####:  170:   u |= ((uint32_t) pack_1x16(x) << 0);
    #####:    #####:  171:   u |= ((uint32_t) pack_1x16(y) << 16);
    #####:    #####:  172:   return u;
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:/**
        -:        -:  176: * Evaluate a 4x8 floating-point packing function.
        -:        -:  177: */
        -:        -:  178:static uint32_t
    #####:    #####:  179:pack_4x8(pack_1x8_func_t pack_1x8,
        -:        -:  180:         float x, float y, float z, float w)
        -:        -:  181:{
        -:        -:  182:   /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  183:    *
        -:        -:  184:    *    packSnorm4x8
        -:        -:  185:    *    ------------
        -:        -:  186:    *    The first component of the vector will be written to the least
        -:        -:  187:    *    significant bits of the output; the last component will be written to
        -:        -:  188:    *    the most significant bits.
        -:        -:  189:    *
        -:        -:  190:    * The specifications for the other packing functions contain similar
        -:        -:  191:    * language.
        -:        -:  192:    */
    #####:    #####:  193:   uint32_t u = 0;
    #####:    #####:  194:   u |= ((uint32_t) pack_1x8(x) << 0);
    #####:    #####:  195:   u |= ((uint32_t) pack_1x8(y) << 8);
    #####:    #####:  196:   u |= ((uint32_t) pack_1x8(z) << 16);
    #####:    #####:  197:   u |= ((uint32_t) pack_1x8(w) << 24);
    #####:    #####:  198:   return u;
        -:        -:  199:}
        -:        -:  200:
        -:        -:  201:/**
        -:        -:  202: * Evaluate a 2x16 floating-point unpacking function.
        -:        -:  203: */
        -:        -:  204:static void
    #####:    #####:  205:unpack_2x16(unpack_1x16_func_t unpack_1x16,
        -:        -:  206:            uint32_t u,
        -:        -:  207:            float *x, float *y)
        -:        -:  208:{
        -:        -:  209:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  210:     *
        -:        -:  211:     *    unpackSnorm2x16
        -:        -:  212:     *    ---------------
        -:        -:  213:     *    The first component of the returned vector will be extracted from
        -:        -:  214:     *    the least significant bits of the input; the last component will be
        -:        -:  215:     *    extracted from the most significant bits.
        -:        -:  216:     *
        -:        -:  217:     * The specifications for the other unpacking functions contain similar
        -:        -:  218:     * language.
        -:        -:  219:     */
    #####:    #####:  220:   *x = unpack_1x16((uint16_t) (u & 0xffff));
    #####:    #####:  221:   *y = unpack_1x16((uint16_t) (u >> 16));
    #####:    #####:  222:}
        -:        -:  223:
        -:        -:  224:/**
        -:        -:  225: * Evaluate a 4x8 floating-point unpacking function.
        -:        -:  226: */
        -:        -:  227:static void
    #####:    #####:  228:unpack_4x8(unpack_1x8_func_t unpack_1x8, uint32_t u,
        -:        -:  229:           float *x, float *y, float *z, float *w)
        -:        -:  230:{
        -:        -:  231:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  232:     *
        -:        -:  233:     *    unpackSnorm4x8
        -:        -:  234:     *    --------------
        -:        -:  235:     *    The first component of the returned vector will be extracted from
        -:        -:  236:     *    the least significant bits of the input; the last component will be
        -:        -:  237:     *    extracted from the most significant bits.
        -:        -:  238:     *
        -:        -:  239:     * The specifications for the other unpacking functions contain similar
        -:        -:  240:     * language.
        -:        -:  241:     */
    #####:    #####:  242:   *x = unpack_1x8((uint8_t) (u & 0xff));
    #####:    #####:  243:   *y = unpack_1x8((uint8_t) (u >> 8));
    #####:    #####:  244:   *z = unpack_1x8((uint8_t) (u >> 16));
    #####:    #####:  245:   *w = unpack_1x8((uint8_t) (u >> 24));
    #####:    #####:  246:}
        -:        -:  247:
        -:        -:  248:/**
        -:        -:  249: * Evaluate one component of packSnorm4x8.
        -:        -:  250: */
        -:        -:  251:static uint8_t
    #####:    #####:  252:pack_snorm_1x8(float x)
        -:        -:  253:{
        -:        -:  254:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  255:     *
        -:        -:  256:     *    packSnorm4x8
        -:        -:  257:     *    ------------
        -:        -:  258:     *    The conversion for component c of v to fixed point is done as
        -:        -:  259:     *    follows:
        -:        -:  260:     *
        -:        -:  261:     *      packSnorm4x8: round(clamp(c, -1, +1) * 127.0)
        -:        -:  262:     */
        -:        -:  263:   return (uint8_t)
    #####:    #####:  264:          _mesa_lroundevenf(CLAMP(x, -1.0f, +1.0f) * 127.0f);
        -:        -:  265:}
        -:        -:  266:
        -:        -:  267:/**
        -:        -:  268: * Evaluate one component of packSnorm2x16.
        -:        -:  269: */
        -:        -:  270:static uint16_t
    #####:    #####:  271:pack_snorm_1x16(float x)
        -:        -:  272:{
        -:        -:  273:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  274:     *
        -:        -:  275:     *    packSnorm2x16
        -:        -:  276:     *    -------------
        -:        -:  277:     *    The conversion for component c of v to fixed point is done as
        -:        -:  278:     *    follows:
        -:        -:  279:     *
        -:        -:  280:     *      packSnorm2x16: round(clamp(c, -1, +1) * 32767.0)
        -:        -:  281:     */
        -:        -:  282:   return (uint16_t)
    #####:    #####:  283:          _mesa_lroundevenf(CLAMP(x, -1.0f, +1.0f) * 32767.0f);
        -:        -:  284:}
        -:        -:  285:
        -:        -:  286:/**
        -:        -:  287: * Evaluate one component of unpackSnorm4x8.
        -:        -:  288: */
        -:        -:  289:static float
    #####:    #####:  290:unpack_snorm_1x8(uint8_t u)
        -:        -:  291:{
        -:        -:  292:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  293:     *
        -:        -:  294:     *    unpackSnorm4x8
        -:        -:  295:     *    --------------
        -:        -:  296:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  297:     *    done as follows:
        -:        -:  298:     *
        -:        -:  299:     *       unpackSnorm4x8: clamp(f / 127.0, -1, +1)
        -:        -:  300:     */
    #####:    #####:  301:   return CLAMP((int8_t) u / 127.0f, -1.0f, +1.0f);
        -:        -:  302:}
        -:        -:  303:
        -:        -:  304:/**
        -:        -:  305: * Evaluate one component of unpackSnorm2x16.
        -:        -:  306: */
        -:        -:  307:static float
    #####:    #####:  308:unpack_snorm_1x16(uint16_t u)
        -:        -:  309:{
        -:        -:  310:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  311:     *
        -:        -:  312:     *    unpackSnorm2x16
        -:        -:  313:     *    ---------------
        -:        -:  314:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  315:     *    done as follows:
        -:        -:  316:     *
        -:        -:  317:     *       unpackSnorm2x16: clamp(f / 32767.0, -1, +1)
        -:        -:  318:     */
    #####:    #####:  319:   return CLAMP((int16_t) u / 32767.0f, -1.0f, +1.0f);
        -:        -:  320:}
        -:        -:  321:
        -:        -:  322:/**
        -:        -:  323: * Evaluate one component packUnorm4x8.
        -:        -:  324: */
        -:        -:  325:static uint8_t
    #####:    #####:  326:pack_unorm_1x8(float x)
        -:        -:  327:{
        -:        -:  328:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  329:     *
        -:        -:  330:     *    packUnorm4x8
        -:        -:  331:     *    ------------
        -:        -:  332:     *    The conversion for component c of v to fixed point is done as
        -:        -:  333:     *    follows:
        -:        -:  334:     *
        -:        -:  335:     *       packUnorm4x8: round(clamp(c, 0, +1) * 255.0)
        -:        -:  336:     */
    #####:    #####:  337:   return (uint8_t) (int) _mesa_roundevenf(CLAMP(x, 0.0f, 1.0f) * 255.0f);
        -:        -:  338:}
        -:        -:  339:
        -:        -:  340:/**
        -:        -:  341: * Evaluate one component packUnorm2x16.
        -:        -:  342: */
        -:        -:  343:static uint16_t
    #####:    #####:  344:pack_unorm_1x16(float x)
        -:        -:  345:{
        -:        -:  346:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  347:     *
        -:        -:  348:     *    packUnorm2x16
        -:        -:  349:     *    -------------
        -:        -:  350:     *    The conversion for component c of v to fixed point is done as
        -:        -:  351:     *    follows:
        -:        -:  352:     *
        -:        -:  353:     *       packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)
        -:        -:  354:     */
        -:        -:  355:   return (uint16_t) (int)
    #####:    #####:  356:          _mesa_roundevenf(CLAMP(x, 0.0f, 1.0f) * 65535.0f);
        -:        -:  357:}
        -:        -:  358:
        -:        -:  359:/**
        -:        -:  360: * Evaluate one component of unpackUnorm4x8.
        -:        -:  361: */
        -:        -:  362:static float
    #####:    #####:  363:unpack_unorm_1x8(uint8_t u)
        -:        -:  364:{
        -:        -:  365:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  366:     *
        -:        -:  367:     *    unpackUnorm4x8
        -:        -:  368:     *    --------------
        -:        -:  369:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  370:     *    done as follows:
        -:        -:  371:     *
        -:        -:  372:     *       unpackUnorm4x8: f / 255.0
        -:        -:  373:     */
    #####:    #####:  374:   return (float) u / 255.0f;
        -:        -:  375:}
        -:        -:  376:
        -:        -:  377:/**
        -:        -:  378: * Evaluate one component of unpackUnorm2x16.
        -:        -:  379: */
        -:        -:  380:static float
    #####:    #####:  381:unpack_unorm_1x16(uint16_t u)
        -:        -:  382:{
        -:        -:  383:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  384:     *
        -:        -:  385:     *    unpackUnorm2x16
        -:        -:  386:     *    ---------------
        -:        -:  387:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  388:     *    done as follows:
        -:        -:  389:     *
        -:        -:  390:     *       unpackUnorm2x16: f / 65535.0
        -:        -:  391:     */
    #####:    #####:  392:   return (float) u / 65535.0f;
        -:        -:  393:}
        -:        -:  394:
        -:        -:  395:/**
        -:        -:  396: * Evaluate one component of packHalf2x16.
        -:        -:  397: */
        -:        -:  398:static uint16_t
    #####:    #####:  399:pack_half_1x16(float x)
        -:        -:  400:{
    #####:    #####:  401:   return _mesa_float_to_half(x);
        -:        -:  402:}
        -:        -:  403:
        -:        -:  404:/**
        -:        -:  405: * Evaluate one component of unpackHalf2x16.
        -:        -:  406: */
        -:        -:  407:static float
    #####:    #####:  408:unpack_half_1x16(uint16_t u)
        -:        -:  409:{
    #####:    #####:  410:   return _mesa_half_to_float(u);
        -:        -:  411:}
        -:        -:  412:
        -:        -:  413:/**
        -:        -:  414: * Get the constant that is ultimately referenced by an r-value, in a constant
        -:        -:  415: * expression evaluation context.
        -:        -:  416: *
        -:        -:  417: * The offset is used when the reference is to a specific column of a matrix.
        -:        -:  418: */
        -:        -:  419:static bool
    #####:    #####:  420:constant_referenced(const ir_dereference *deref,
        -:        -:  421:                    struct hash_table *variable_context,
        -:        -:  422:                    ir_constant *&store, int &offset)
        -:        -:  423:{
    #####:    #####:  424:   store = NULL;
    #####:    #####:  425:   offset = 0;
        -:        -:  426:
    #####:    #####:  427:   if (variable_context == NULL)
    #####:    #####:  428:      return false;
        -:        -:  429:
    #####:    #####:  430:   switch (deref->ir_type) {
        -:        -:  431:   case ir_type_dereference_array: {
        -:        -:  432:      const ir_dereference_array *const da =
    #####:    #####:  433:         (const ir_dereference_array *) deref;
        -:        -:  434:
        -:        -:  435:      ir_constant *const index_c =
    #####:    #####:  436:         da->array_index->constant_expression_value(variable_context);
        -:        -:  437:
    #####:    #####:  438:      if (!index_c || !index_c->type->is_scalar() || !index_c->type->is_integer())
    #####:    #####:  439:         break;
        -:        -:  440:
    #####:    #####:  441:      const int index = index_c->type->base_type == GLSL_TYPE_INT ?
        -:        -:  442:         index_c->get_int_component(0) :
    #####:    #####:  443:         index_c->get_uint_component(0);
        -:        -:  444:
        -:        -:  445:      ir_constant *substore;
        -:        -:  446:      int suboffset;
        -:        -:  447:
    #####:    #####:  448:      const ir_dereference *const deref = da->array->as_dereference();
    #####:    #####:  449:      if (!deref)
    #####:    #####:  450:         break;
        -:        -:  451:
    #####:    #####:  452:      if (!constant_referenced(deref, variable_context, substore, suboffset))
    #####:    #####:  453:         break;
        -:        -:  454:
    #####:    #####:  455:      const glsl_type *const vt = da->array->type;
    #####:    #####:  456:      if (vt->is_array()) {
    #####:    #####:  457:         store = substore->get_array_element(index);
    #####:    #####:  458:         offset = 0;
    #####:    #####:  459:      } else if (vt->is_matrix()) {
    #####:    #####:  460:         store = substore;
    #####:    #####:  461:         offset = index * vt->vector_elements;
    #####:    #####:  462:      } else if (vt->is_vector()) {
    #####:    #####:  463:         store = substore;
    #####:    #####:  464:         offset = suboffset + index;
        -:        -:  465:      }
        -:        -:  466:
    #####:    #####:  467:      break;
        -:        -:  468:   }
        -:        -:  469:
        -:        -:  470:   case ir_type_dereference_record: {
        -:        -:  471:      const ir_dereference_record *const dr =
    #####:    #####:  472:         (const ir_dereference_record *) deref;
        -:        -:  473:
    #####:    #####:  474:      const ir_dereference *const deref = dr->record->as_dereference();
    #####:    #####:  475:      if (!deref)
    #####:    #####:  476:         break;
        -:        -:  477:
        -:        -:  478:      ir_constant *substore;
        -:        -:  479:      int suboffset;
        -:        -:  480:
    #####:    #####:  481:      if (!constant_referenced(deref, variable_context, substore, suboffset))
    #####:    #####:  482:         break;
        -:        -:  483:
        -:        -:  484:      /* Since we're dropping it on the floor...
        -:        -:  485:       */
    #####:    #####:  486:      assert(suboffset == 0);
        -:        -:  487:
    #####:    #####:  488:      store = substore->get_record_field(dr->field);
    #####:    #####:  489:      break;
        -:        -:  490:   }
        -:        -:  491:
        -:        -:  492:   case ir_type_dereference_variable: {
        -:        -:  493:      const ir_dereference_variable *const dv =
    #####:    #####:  494:         (const ir_dereference_variable *) deref;
        -:        -:  495:
    #####:    #####:  496:      hash_entry *entry = _mesa_hash_table_search(variable_context, dv->var);
    #####:    #####:  497:      if (entry)
    #####:    #####:  498:         store = (ir_constant *) entry->data;
    #####:    #####:  499:      break;
        -:        -:  500:   }
        -:        -:  501:
        -:        -:  502:   default:
    #####:    #####:  503:      assert(!"Should not get here.");
        -:        -:  504:      break;
        -:        -:  505:   }
        -:        -:  506:
    #####:    #####:  507:   return store != NULL;
        -:        -:  508:}
        -:        -:  509:
        -:        -:  510:
        -:        -:  511:ir_constant *
    #####:    #####:  512:ir_rvalue::constant_expression_value(struct hash_table *)
        -:        -:  513:{
    #####:    #####:  514:   assert(this->type->is_error());
    #####:    #####:  515:   return NULL;
        -:        -:  516:}
        -:        -:  517:
        -:        -:  518:static uint32_t
    #####:    #####:  519:bitfield_reverse(uint32_t v)
        -:        -:  520:{
        -:        -:  521:   /* http://graphics.stanford.edu/~seander/bithacks.html#BitReverseObvious */
    #####:    #####:  522:   uint32_t r = v; // r will be reversed bits of v; first get LSB of v
    #####:    #####:  523:   int s = sizeof(v) * CHAR_BIT - 1; // extra shift needed at end
        -:        -:  524:
    #####:    #####:  525:   for (v >>= 1; v; v >>= 1) {
    #####:    #####:  526:      r <<= 1;
    #####:    #####:  527:      r |= v & 1;
    #####:    #####:  528:      s--;
        -:        -:  529:   }
    #####:    #####:  530:   r <<= s; // shift when v's highest bits are zero
        -:        -:  531:
    #####:    #####:  532:   return r;
        -:        -:  533:}
        -:        -:  534:
        -:        -:  535:static int
    #####:    #####:  536:find_msb_uint(uint32_t v)
        -:        -:  537:{
    #####:    #####:  538:   int count = 0;
        -:        -:  539:
        -:        -:  540:   /* If v == 0, then the loop will terminate when count == 32.  In that case
        -:        -:  541:    * 31-count will produce the -1 result required by GLSL findMSB().
        -:        -:  542:    */
    #####:    #####:  543:   while (((v & (1u << 31)) == 0) && count != 32) {
    #####:    #####:  544:      count++;
    #####:    #####:  545:      v <<= 1;
        -:        -:  546:   }
        -:        -:  547:
    #####:    #####:  548:   return 31 - count;
        -:        -:  549:}
        -:        -:  550:
        -:        -:  551:static int
    #####:    #####:  552:find_msb_int(int32_t v)
        -:        -:  553:{
        -:        -:  554:   /* If v is signed, findMSB() returns the position of the most significant
        -:        -:  555:    * zero bit.
        -:        -:  556:    */
    #####:    #####:  557:   return find_msb_uint(v < 0 ? ~v : v);
        -:        -:  558:}
        -:        -:  559:
        -:        -:  560:static float
    #####:    #####:  561:ldexpf_flush_subnormal(float x, int exp)
        -:        -:  562:{
    #####:    #####:  563:   const float result = ldexpf(x, exp);
        -:        -:  564:
        -:        -:  565:   /* Flush subnormal values to zero. */
    #####:    #####:  566:   return !isnormal(result) ? copysignf(0.0f, x) : result;
        -:        -:  567:}
        -:        -:  568:
        -:        -:  569:static double
    #####:    #####:  570:ldexp_flush_subnormal(double x, int exp)
        -:        -:  571:{
    #####:    #####:  572:   const double result = ldexp(x, exp);
        -:        -:  573:
        -:        -:  574:   /* Flush subnormal values to zero. */
    #####:    #####:  575:   return !isnormal(result) ? copysign(0.0, x) : result;
        -:        -:  576:}
        -:        -:  577:
        -:        -:  578:static uint32_t
    #####:    #####:  579:bitfield_extract_uint(uint32_t value, int offset, int bits)
        -:        -:  580:{
    #####:    #####:  581:   if (bits == 0)
    #####:    #####:  582:      return 0;
    #####:    #####:  583:   else if (offset < 0 || bits < 0)
    #####:    #####:  584:      return 0; /* Undefined, per spec. */
    #####:    #####:  585:   else if (offset + bits > 32)
    #####:    #####:  586:      return 0; /* Undefined, per spec. */
        -:        -:  587:   else {
    #####:    #####:  588:      value <<= 32 - bits - offset;
    #####:    #####:  589:      value >>= 32 - bits;
    #####:    #####:  590:      return value;
        -:        -:  591:   }
        -:        -:  592:}
        -:        -:  593:
        -:        -:  594:static int32_t
    #####:    #####:  595:bitfield_extract_int(int32_t value, int offset, int bits)
        -:        -:  596:{
    #####:    #####:  597:   if (bits == 0)
    #####:    #####:  598:      return 0;
    #####:    #####:  599:   else if (offset < 0 || bits < 0)
    #####:    #####:  600:      return 0; /* Undefined, per spec. */
    #####:    #####:  601:   else if (offset + bits > 32)
    #####:    #####:  602:      return 0; /* Undefined, per spec. */
        -:        -:  603:   else {
    #####:    #####:  604:      value <<= 32 - bits - offset;
    #####:    #####:  605:      value >>= 32 - bits;
    #####:    #####:  606:      return value;
        -:        -:  607:   }
        -:        -:  608:}
        -:        -:  609:
        -:        -:  610:static uint32_t
    #####:    #####:  611:bitfield_insert(uint32_t base, uint32_t insert, int offset, int bits)
        -:        -:  612:{
    #####:    #####:  613:   if (bits == 0)
    #####:    #####:  614:      return base;
    #####:    #####:  615:   else if (offset < 0 || bits < 0)
    #####:    #####:  616:      return 0; /* Undefined, per spec. */
    #####:    #####:  617:   else if (offset + bits > 32)
    #####:    #####:  618:      return 0; /* Undefined, per spec. */
        -:        -:  619:   else {
    #####:    #####:  620:      unsigned insert_mask = ((1ull << bits) - 1) << offset;
        -:        -:  621:
    #####:    #####:  622:      insert <<= offset;
    #####:    #####:  623:      insert &= insert_mask;
    #####:    #####:  624:      base &= ~insert_mask;
        -:        -:  625:
    #####:    #####:  626:      return base | insert;
        -:        -:  627:   }
        -:        -:  628:}
        -:        -:  629:
        -:        -:  630:ir_constant *
      191:      208:  631:ir_expression::constant_expression_value(struct hash_table *variable_context)
        -:        -:  632:{
      191:      208:  633:   if (this->type->is_error())
    #####:    #####:  634:      return NULL;
        -:        -:  635:
      191:      208:  636:   ir_constant *op[ARRAY_SIZE(this->operands)] = { NULL, };
        -:        -:  637:   ir_constant_data data;
        -:        -:  638:
      191:      208:  639:   memset(&data, 0, sizeof(data));
        -:        -:  640:
      191:      208:  641:   for (unsigned operand = 0; operand < this->get_num_operands(); operand++) {
      191:      208:  642:      op[operand] = this->operands[operand]->constant_expression_value(variable_context);
      191:      208:  643:      if (!op[operand])
      191:      208:  644:         return NULL;
        -:        -:  645:   }
        -:        -:  646:
    #####:    #####:  647:   if (op[1] != NULL)
    #####:    #####:  648:      switch (this->operation) {
        -:        -:  649:      case ir_binop_lshift:
        -:        -:  650:      case ir_binop_rshift:
        -:        -:  651:      case ir_binop_ldexp:
        -:        -:  652:      case ir_binop_interpolate_at_offset:
        -:        -:  653:      case ir_binop_interpolate_at_sample:
        -:        -:  654:      case ir_binop_vector_extract:
        -:        -:  655:      case ir_triop_csel:
        -:        -:  656:      case ir_triop_bitfield_extract:
    #####:    #####:  657:         break;
        -:        -:  658:
        -:        -:  659:      default:
    #####:    #####:  660:         assert(op[0]->type->base_type == op[1]->type->base_type);
    #####:    #####:  661:         break;
        -:        -:  662:      }
        -:        -:  663:
    #####:    #####:  664:   bool op0_scalar = op[0]->type->is_scalar();
    #####:    #####:  665:   bool op1_scalar = op[1] != NULL && op[1]->type->is_scalar();
        -:        -:  666:
        -:        -:  667:   /* When iterating over a vector or matrix's components, we want to increase
        -:        -:  668:    * the loop counter.  However, for scalars, we want to stay at 0.
        -:        -:  669:    */
    #####:    #####:  670:   unsigned c0_inc = op0_scalar ? 0 : 1;
    #####:    #####:  671:   unsigned c1_inc = op1_scalar ? 0 : 1;
        -:        -:  672:   unsigned components;
    #####:    #####:  673:   if (op1_scalar || !op[1]) {
    #####:    #####:  674:      components = op[0]->type->components();
        -:        -:  675:   } else {
    #####:    #####:  676:      components = op[1]->type->components();
        -:        -:  677:   }
        -:        -:  678:
    #####:    #####:  679:   void *ctx = ralloc_parent(this);
        -:        -:  680:
        -:        -:  681:   /* Handle array operations here, rather than below. */
    #####:    #####:  682:   if (op[0]->type->is_array()) {
    #####:    #####:  683:      assert(op[1] != NULL && op[1]->type->is_array());
    #####:    #####:  684:      switch (this->operation) {
        -:        -:  685:      case ir_binop_all_equal:
    #####:    #####:  686:         return new(ctx) ir_constant(op[0]->has_value(op[1]));
        -:        -:  687:      case ir_binop_any_nequal:
    #####:    #####:  688:         return new(ctx) ir_constant(!op[0]->has_value(op[1]));
        -:        -:  689:      default:
    #####:    #####:  690:         break;
        -:        -:  691:      }
    #####:    #####:  692:      return NULL;
        -:        -:  693:   }
        -:        -:  694:
        -:        -:  695:#include "ir_expression_operation_constant.h"
        -:        -:  696:
    #####:    #####:  697:   return new(ctx) ir_constant(this->type, &data);
        -:        -:  698:}
        -:        -:  699:
        -:        -:  700:
        -:        -:  701:ir_constant *
    #####:    #####:  702:ir_texture::constant_expression_value(struct hash_table *)
        -:        -:  703:{
        -:        -:  704:   /* texture lookups aren't constant expressions */
    #####:    #####:  705:   return NULL;
        -:        -:  706:}
        -:        -:  707:
        -:        -:  708:
        -:        -:  709:ir_constant *
       97:      128:  710:ir_swizzle::constant_expression_value(struct hash_table *variable_context)
        -:        -:  711:{
       97:      128:  712:   ir_constant *v = this->val->constant_expression_value(variable_context);
        -:        -:  713:
       97:      128:  714:   if (v != NULL) {
       12:       12:  715:      ir_constant_data data = { { 0 } };
        -:        -:  716:
        -:        -:  717:      const unsigned swiz_idx[4] = {
       48:       48:  718:         this->mask.x, this->mask.y, this->mask.z, this->mask.w
       48:       48:  719:      };
        -:        -:  720:
       24:       24:  721:      for (unsigned i = 0; i < this->mask.num_components; i++) {
       12:       12:  722:         switch (v->type->base_type) {
        -:        -:  723:         case GLSL_TYPE_UINT:
       12:       12:  724:         case GLSL_TYPE_INT:   data.u[i] = v->value.u[swiz_idx[i]]; break;
    #####:    #####:  725:         case GLSL_TYPE_FLOAT: data.f[i] = v->value.f[swiz_idx[i]]; break;
    #####:    #####:  726:         case GLSL_TYPE_BOOL:  data.b[i] = v->value.b[swiz_idx[i]]; break;
    #####:    #####:  727:         case GLSL_TYPE_DOUBLE:data.d[i] = v->value.d[swiz_idx[i]]; break;
    #####:    #####:  728:         default:              assert(!"Should not get here."); break;
        -:        -:  729:         }
        -:        -:  730:      }
        -:        -:  731:
       12:       12:  732:      void *ctx = ralloc_parent(this);
       12:       12:  733:      return new(ctx) ir_constant(this->type, &data);
        -:        -:  734:   }
       85:      116:  735:   return NULL;
        -:        -:  736:}
        -:        -:  737:
        -:        -:  738:
        -:        -:  739:ir_constant *
     1132:     1212:  740:ir_dereference_variable::constant_expression_value(struct hash_table *variable_context)
        -:        -:  741:{
     1132:     1212:  742:   assert(var);
        -:        -:  743:
        -:        -:  744:   /* Give priority to the context hashtable, if it exists */
     1132:     1212:  745:   if (variable_context) {
    #####:    #####:  746:      hash_entry *entry = _mesa_hash_table_search(variable_context, var);
        -:        -:  747:
    #####:    #####:  748:      if(entry)
    #####:    #####:  749:         return (ir_constant *) entry->data;
        -:        -:  750:   }
        -:        -:  751:
        -:        -:  752:   /* The constant_value of a uniform variable is its initializer,
        -:        -:  753:    * not the lifetime constant value of the uniform.
        -:        -:  754:    */
     1132:     1212:  755:   if (var->data.mode == ir_var_uniform)
      151:      151:  756:      return NULL;
        -:        -:  757:
      981:     1061:  758:   if (!var->constant_value)
      978:     1056:  759:      return NULL;
        -:        -:  760:
        3:        5:  761:   return var->constant_value->clone(ralloc_parent(var), NULL);
        -:        -:  762:}
        -:        -:  763:
        -:        -:  764:
        -:        -:  765:ir_constant *
      137:      137:  766:ir_dereference_array::constant_expression_value(struct hash_table *variable_context)
        -:        -:  767:{
      137:      137:  768:   ir_constant *array = this->array->constant_expression_value(variable_context);
      137:      137:  769:   ir_constant *idx = this->array_index->constant_expression_value(variable_context);
        -:        -:  770:
      137:      137:  771:   if ((array != NULL) && (idx != NULL)) {
    #####:    #####:  772:      void *ctx = ralloc_parent(this);
    #####:    #####:  773:      if (array->type->is_matrix()) {
        -:        -:  774:         /* Array access of a matrix results in a vector.
        -:        -:  775:          */
    #####:    #####:  776:         const unsigned column = idx->value.u[0];
        -:        -:  777:
    #####:    #####:  778:         const glsl_type *const column_type = array->type->column_type();
        -:        -:  779:
        -:        -:  780:         /* Offset in the constant matrix to the first element of the column
        -:        -:  781:          * to be extracted.
        -:        -:  782:          */
    #####:    #####:  783:         const unsigned mat_idx = column * column_type->vector_elements;
        -:        -:  784:
    #####:    #####:  785:         ir_constant_data data = { { 0 } };
        -:        -:  786:
    #####:    #####:  787:         switch (column_type->base_type) {
        -:        -:  788:         case GLSL_TYPE_UINT:
        -:        -:  789:         case GLSL_TYPE_INT:
    #####:    #####:  790:            for (unsigned i = 0; i < column_type->vector_elements; i++)
    #####:    #####:  791:               data.u[i] = array->value.u[mat_idx + i];
        -:        -:  792:
    #####:    #####:  793:            break;
        -:        -:  794:
        -:        -:  795:         case GLSL_TYPE_FLOAT:
    #####:    #####:  796:            for (unsigned i = 0; i < column_type->vector_elements; i++)
    #####:    #####:  797:               data.f[i] = array->value.f[mat_idx + i];
        -:        -:  798:
    #####:    #####:  799:            break;
        -:        -:  800:
        -:        -:  801:         case GLSL_TYPE_DOUBLE:
    #####:    #####:  802:            for (unsigned i = 0; i < column_type->vector_elements; i++)
    #####:    #####:  803:               data.d[i] = array->value.d[mat_idx + i];
        -:        -:  804:
    #####:    #####:  805:            break;
        -:        -:  806:
        -:        -:  807:         default:
    #####:    #####:  808:            assert(!"Should not get here.");
        -:        -:  809:            break;
        -:        -:  810:         }
        -:        -:  811:
    #####:    #####:  812:         return new(ctx) ir_constant(column_type, &data);
    #####:    #####:  813:      } else if (array->type->is_vector()) {
    #####:    #####:  814:         const unsigned component = idx->value.u[0];
        -:        -:  815:
    #####:    #####:  816:         return new(ctx) ir_constant(array, component);
        -:        -:  817:      } else {
    #####:    #####:  818:         const unsigned index = idx->value.u[0];
    #####:    #####:  819:         return array->get_array_element(index)->clone(ctx, NULL);
        -:        -:  820:      }
        -:        -:  821:   }
      137:      137:  822:   return NULL;
        -:        -:  823:}
        -:        -:  824:
        -:        -:  825:
        -:        -:  826:ir_constant *
    #####:    #####:  827:ir_dereference_record::constant_expression_value(struct hash_table *)
        -:        -:  828:{
    #####:    #####:  829:   ir_constant *v = this->record->constant_expression_value();
        -:        -:  830:
    #####:    #####:  831:   return (v != NULL) ? v->get_record_field(this->field) : NULL;
        -:        -:  832:}
        -:        -:  833:
        -:        -:  834:
        -:        -:  835:ir_constant *
    #####:    #####:  836:ir_assignment::constant_expression_value(struct hash_table *)
        -:        -:  837:{
        -:        -:  838:   /* FINISHME: Handle CEs involving assignment (return RHS) */
    #####:    #####:  839:   return NULL;
        -:        -:  840:}
        -:        -:  841:
        -:        -:  842:
        -:        -:  843:ir_constant *
      280:      295:  844:ir_constant::constant_expression_value(struct hash_table *)
        -:        -:  845:{
      280:      295:  846:   return this;
        -:        -:  847:}
        -:        -:  848:
        -:        -:  849:
        -:        -:  850:ir_constant *
        6:        6:  851:ir_call::constant_expression_value(struct hash_table *variable_context)
        -:        -:  852:{
        6:        6:  853:   return this->callee->constant_expression_value(&this->actual_parameters, variable_context);
        -:        -:  854:}
        -:        -:  855:
        -:        -:  856:
    #####:    #####:  857:bool ir_function_signature::constant_expression_evaluate_expression_list(const struct exec_list &body,
        -:        -:  858:                                                                         struct hash_table *variable_context,
        -:        -:  859:                                                                         ir_constant **result)
        -:        -:  860:{
    #####:    #####:  861:   foreach_in_list(ir_instruction, inst, &body) {
    #####:    #####:  862:      switch(inst->ir_type) {
        -:        -:  863:
        -:        -:  864:         /* (declare () type symbol) */
        -:        -:  865:      case ir_type_variable: {
    #####:    #####:  866:         ir_variable *var = inst->as_variable();
    #####:    #####:  867:         _mesa_hash_table_insert(variable_context, var, ir_constant::zero(this, var->type));
    #####:    #####:  868:         break;
        -:        -:  869:      }
        -:        -:  870:
        -:        -:  871:         /* (assign [condition] (write-mask) (ref) (value)) */
        -:        -:  872:      case ir_type_assignment: {
    #####:    #####:  873:         ir_assignment *asg = inst->as_assignment();
    #####:    #####:  874:         if (asg->condition) {
    #####:    #####:  875:            ir_constant *cond = asg->condition->constant_expression_value(variable_context);
    #####:    #####:  876:            if (!cond)
    #####:    #####:  877:               return false;
    #####:    #####:  878:            if (!cond->get_bool_component(0))
    #####:    #####:  879:               break;
        -:        -:  880:         }
        -:        -:  881:
    #####:    #####:  882:         ir_constant *store = NULL;
    #####:    #####:  883:         int offset = 0;
        -:        -:  884:
    #####:    #####:  885:         if (!constant_referenced(asg->lhs, variable_context, store, offset))
    #####:    #####:  886:            return false;
        -:        -:  887:
    #####:    #####:  888:         ir_constant *value = asg->rhs->constant_expression_value(variable_context);
        -:        -:  889:
    #####:    #####:  890:         if (!value)
    #####:    #####:  891:            return false;
        -:        -:  892:
    #####:    #####:  893:         store->copy_masked_offset(value, offset, asg->write_mask);
    #####:    #####:  894:         break;
        -:        -:  895:      }
        -:        -:  896:
        -:        -:  897:         /* (return (expression)) */
        -:        -:  898:      case ir_type_return:
    #####:    #####:  899:         assert (result);
    #####:    #####:  900:         *result = inst->as_return()->value->constant_expression_value(variable_context);
    #####:    #####:  901:         return *result != NULL;
        -:        -:  902:
        -:        -:  903:         /* (call name (ref) (params))*/
        -:        -:  904:      case ir_type_call: {
    #####:    #####:  905:         ir_call *call = inst->as_call();
        -:        -:  906:
        -:        -:  907:         /* Just say no to void functions in constant expressions.  We
        -:        -:  908:          * don't need them at that point.
        -:        -:  909:          */
        -:        -:  910:
    #####:    #####:  911:         if (!call->return_deref)
    #####:    #####:  912:            return false;
        -:        -:  913:
    #####:    #####:  914:         ir_constant *store = NULL;
    #####:    #####:  915:         int offset = 0;
        -:        -:  916:
    #####:    #####:  917:         if (!constant_referenced(call->return_deref, variable_context,
        -:        -:  918:                                  store, offset))
    #####:    #####:  919:            return false;
        -:        -:  920:
    #####:    #####:  921:         ir_constant *value = call->constant_expression_value(variable_context);
        -:        -:  922:
    #####:    #####:  923:         if(!value)
    #####:    #####:  924:            return false;
        -:        -:  925:
    #####:    #####:  926:         store->copy_offset(value, offset);
    #####:    #####:  927:         break;
        -:        -:  928:      }
        -:        -:  929:
        -:        -:  930:         /* (if condition (then-instructions) (else-instructions)) */
        -:        -:  931:      case ir_type_if: {
    #####:    #####:  932:         ir_if *iif = inst->as_if();
        -:        -:  933:
    #####:    #####:  934:         ir_constant *cond = iif->condition->constant_expression_value(variable_context);
    #####:    #####:  935:         if (!cond || !cond->type->is_boolean())
    #####:    #####:  936:            return false;
        -:        -:  937:
    #####:    #####:  938:         exec_list &branch = cond->get_bool_component(0) ? iif->then_instructions : iif->else_instructions;
        -:        -:  939:
    #####:    #####:  940:         *result = NULL;
    #####:    #####:  941:         if (!constant_expression_evaluate_expression_list(branch, variable_context, result))
    #####:    #####:  942:            return false;
        -:        -:  943:
        -:        -:  944:         /* If there was a return in the branch chosen, drop out now. */
    #####:    #####:  945:         if (*result)
    #####:    #####:  946:            return true;
        -:        -:  947:
    #####:    #####:  948:         break;
        -:        -:  949:      }
        -:        -:  950:
        -:        -:  951:         /* Every other expression type, we drop out. */
        -:        -:  952:      default:
    #####:    #####:  953:         return false;
        -:        -:  954:      }
        -:        -:  955:   }
        -:        -:  956:
        -:        -:  957:   /* Reaching the end of the block is not an error condition */
    #####:    #####:  958:   if (result)
    #####:    #####:  959:      *result = NULL;
        -:        -:  960:
    #####:    #####:  961:   return true;
        -:        -:  962:}
        -:        -:  963:
        -:        -:  964:ir_constant *
       13:       13:  965:ir_function_signature::constant_expression_value(exec_list *actual_parameters, struct hash_table *variable_context)
        -:        -:  966:{
       13:       13:  967:   const glsl_type *type = this->return_type;
       13:       13:  968:   if (type == glsl_type::void_type)
    #####:    #####:  969:      return NULL;
        -:        -:  970:
        -:        -:  971:   /* From the GLSL 1.20 spec, page 23:
        -:        -:  972:    * "Function calls to user-defined functions (non-built-in functions)
        -:        -:  973:    *  cannot be used to form constant expressions."
        -:        -:  974:    */
       13:       13:  975:   if (!this->is_builtin())
        8:        8:  976:      return NULL;
        -:        -:  977:
        -:        -:  978:   /*
        -:        -:  979:    * Of the builtin functions, only the texture lookups and the noise
        -:        -:  980:    * ones must not be used in constant expressions.  They all include
        -:        -:  981:    * specific opcodes so they don't need to be special-cased at this
        -:        -:  982:    * point.
        -:        -:  983:    */
        -:        -:  984:
        -:        -:  985:   /* Initialize the table of dereferencable names with the function
        -:        -:  986:    * parameters.  Verify their const-ness on the way.
        -:        -:  987:    *
        -:        -:  988:    * We expect the correctness of the number of parameters to have
        -:        -:  989:    * been checked earlier.
        -:        -:  990:    */
        -:        -:  991:   hash_table *deref_hash = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        5:        5:  992:                                                    _mesa_key_pointer_equal);
        -:        -:  993:
        -:        -:  994:   /* If "origin" is non-NULL, then the function body is there.  So we
        -:        -:  995:    * have to use the variable objects from the object with the body,
        -:        -:  996:    * but the parameter instanciation on the current object.
        -:        -:  997:    */
        5:        5:  998:   const exec_node *parameter_info = origin ? origin->parameters.get_head_raw() : parameters.get_head_raw();
        -:        -:  999:
        5:        5: 1000:   foreach_in_list(ir_rvalue, n, actual_parameters) {
        5:        5: 1001:      ir_constant *constant = n->constant_expression_value(variable_context);
        5:        5: 1002:      if (constant == NULL) {
        5:        5: 1003:         _mesa_hash_table_destroy(deref_hash, NULL);
        5:        5: 1004:         return NULL;
        -:        -: 1005:      }
        -:        -: 1006:
        -:        -: 1007:
    #####:    #####: 1008:      ir_variable *var = (ir_variable *)parameter_info;
    #####:    #####: 1009:      _mesa_hash_table_insert(deref_hash, var, constant);
        -:        -: 1010:
    #####:    #####: 1011:      parameter_info = parameter_info->next;
        -:        -: 1012:   }
        -:        -: 1013:
    #####:    #####: 1014:   ir_constant *result = NULL;
        -:        -: 1015:
        -:        -: 1016:   /* Now run the builtin function until something non-constant
        -:        -: 1017:    * happens or we get the result.
        -:        -: 1018:    */
    #####:    #####: 1019:   if (constant_expression_evaluate_expression_list(origin ? origin->body : body, deref_hash, &result) && result)
    #####:    #####: 1020:      result = result->clone(ralloc_parent(this), NULL);
        -:        -: 1021:
    #####:    #####: 1022:   _mesa_hash_table_destroy(deref_hash, NULL);
        -:        -: 1023:
    #####:    #####: 1024:   return result;
        -:        -: 1025:}

src/compiler/ir.cpp.gcov

        -:        -:    0:Source:glsl/ir.cpp
        -:        -:    0:Graph:glsl/.libs/ir.gcno
        -:        -:    0:Data:glsl/.libs/ir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:#include <string.h>
        -:        -:   24:#include "main/core.h" /* for MAX2 */
        -:        -:   25:#include "ir.h"
        -:        -:   26:#include "compiler/glsl_types.h"
        -:        -:   27:
    17530:    17557:   28:ir_rvalue::ir_rvalue(enum ir_node_type t)
    17530:    17557:   29:   : ir_instruction(t)
        -:        -:   30:{
    17530:    17557:   31:   this->type = glsl_type::error_type;
    17530:    17557:   32:}
        -:        -:   33:
    #####:    #####:   34:bool ir_rvalue::is_zero() const
        -:        -:   35:{
    #####:    #####:   36:   return false;
        -:        -:   37:}
        -:        -:   38:
    #####:    #####:   39:bool ir_rvalue::is_one() const
        -:        -:   40:{
    #####:    #####:   41:   return false;
        -:        -:   42:}
        -:        -:   43:
    #####:    #####:   44:bool ir_rvalue::is_negative_one() const
        -:        -:   45:{
    #####:    #####:   46:   return false;
        -:        -:   47:}
        -:        -:   48:
        -:        -:   49:/**
        -:        -:   50: * Modify the swizzle make to move one component to another
        -:        -:   51: *
        -:        -:   52: * \param m    IR swizzle to be modified
        -:        -:   53: * \param from Component in the RHS that is to be swizzled
        -:        -:   54: * \param to   Desired swizzle location of \c from
        -:        -:   55: */
        -:        -:   56:static void
       12:       12:   57:update_rhs_swizzle(ir_swizzle_mask &m, unsigned from, unsigned to)
        -:        -:   58:{
       12:       12:   59:   switch (to) {
        8:        8:   60:   case 0: m.x = from; break;
        2:        2:   61:   case 1: m.y = from; break;
        2:        2:   62:   case 2: m.z = from; break;
    #####:    #####:   63:   case 3: m.w = from; break;
    #####:    #####:   64:   default: assert(!"Should not get here.");
        -:        -:   65:   }
       12:       12:   66:}
        -:        -:   67:
        -:        -:   68:void
      135:      135:   69:ir_assignment::set_lhs(ir_rvalue *lhs)
        -:        -:   70:{
      135:      135:   71:   void *mem_ctx = this;
      135:      135:   72:   bool swizzled = false;
        -:        -:   73:
      147:      147:   74:   while (lhs != NULL) {
      141:      141:   75:      ir_swizzle *swiz = lhs->as_swizzle();
        -:        -:   76:
      141:      141:   77:      if (swiz == NULL)
      135:      135:   78:	 break;
        -:        -:   79:
        6:        6:   80:      unsigned write_mask = 0;
        6:        6:   81:      ir_swizzle_mask rhs_swiz = { 0, 0, 0, 0, 0, 0 };
        -:        -:   82:
       12:       12:   83:      for (unsigned i = 0; i < swiz->mask.num_components; i++) {
        6:        6:   84:	 unsigned c = 0;
        -:        -:   85:
        6:        6:   86:	 switch (i) {
        6:        6:   87:	 case 0: c = swiz->mask.x; break;
    #####:    #####:   88:	 case 1: c = swiz->mask.y; break;
    #####:    #####:   89:	 case 2: c = swiz->mask.z; break;
    #####:    #####:   90:	 case 3: c = swiz->mask.w; break;
    #####:    #####:   91:	 default: assert(!"Should not get here.");
        -:        -:   92:	 }
        -:        -:   93:
        6:        6:   94:	 write_mask |= (((this->write_mask >> i) & 1) << c);
        6:        6:   95:	 update_rhs_swizzle(rhs_swiz, i, c);
        6:        6:   96:         rhs_swiz.num_components = swiz->val->type->vector_elements;
        -:        -:   97:      }
        -:        -:   98:
        6:        6:   99:      this->write_mask = write_mask;
        6:        6:  100:      lhs = swiz->val;
        -:        -:  101:
        6:        6:  102:      this->rhs = new(mem_ctx) ir_swizzle(this->rhs, rhs_swiz);
        6:        6:  103:      swizzled = true;
        -:        -:  104:   }
        -:        -:  105:
      135:      135:  106:   if (swizzled) {
        -:        -:  107:      /* Now, RHS channels line up with the LHS writemask.  Collapse it
        -:        -:  108:       * to just the channels that will be written.
        -:        -:  109:       */
        6:        6:  110:      ir_swizzle_mask rhs_swiz = { 0, 0, 0, 0, 0, 0 };
        6:        6:  111:      int rhs_chan = 0;
       30:       30:  112:      for (int i = 0; i < 4; i++) {
       24:       24:  113:	 if (write_mask & (1 << i))
        6:        6:  114:	    update_rhs_swizzle(rhs_swiz, i, rhs_chan++);
        -:        -:  115:      }
        6:        6:  116:      rhs_swiz.num_components = rhs_chan;
        6:        6:  117:      this->rhs = new(mem_ctx) ir_swizzle(this->rhs, rhs_swiz);
        -:        -:  118:   }
        -:        -:  119:
      135:      135:  120:   assert((lhs == NULL) || lhs->as_dereference());
        -:        -:  121:
      135:      135:  122:   this->lhs = (ir_dereference *) lhs;
      135:      135:  123:}
        -:        -:  124:
        -:        -:  125:ir_variable *
     1243:     1299:  126:ir_assignment::whole_variable_written()
        -:        -:  127:{
     1243:     1299:  128:   ir_variable *v = this->lhs->whole_variable_referenced();
        -:        -:  129:
     1243:     1299:  130:   if (v == NULL)
       24:       24:  131:      return NULL;
        -:        -:  132:
     1219:     1275:  133:   if (v->type->is_scalar())
      953:     1009:  134:      return v;
        -:        -:  135:
      266:      266:  136:   if (v->type->is_vector()) {
      266:      266:  137:      const unsigned mask = (1U << v->type->vector_elements) - 1;
        -:        -:  138:
      266:      266:  139:      if (mask != this->write_mask)
      178:      178:  140:	 return NULL;
        -:        -:  141:   }
        -:        -:  142:
        -:        -:  143:   /* Either all the vector components are assigned or the variable is some
        -:        -:  144:    * composite type (and the whole thing is assigned.
        -:        -:  145:    */
       88:       88:  146:   return v;
        -:        -:  147:}
        -:        -:  148:
      878:      878:  149:ir_assignment::ir_assignment(ir_dereference *lhs, ir_rvalue *rhs,
        -:        -:  150:			     ir_rvalue *condition, unsigned write_mask)
      878:      878:  151:   : ir_instruction(ir_type_assignment)
        -:        -:  152:{
      878:      878:  153:   this->condition = condition;
      878:      878:  154:   this->rhs = rhs;
      878:      878:  155:   this->lhs = lhs;
      878:      878:  156:   this->write_mask = write_mask;
        -:        -:  157:
      878:      878:  158:   if (lhs->type->is_scalar() || lhs->type->is_vector()) {
      878:      878:  159:      int lhs_components = 0;
     4390:     4390:  160:      for (int i = 0; i < 4; i++) {
     3512:     3512:  161:	 if (write_mask & (1 << i))
     1369:     1369:  162:	    lhs_components++;
        -:        -:  163:      }
        -:        -:  164:
      878:      878:  165:      assert(lhs_components == this->rhs->type->vector_elements);
        -:        -:  166:   }
      878:      878:  167:}
        -:        -:  168:
      134:      134:  169:ir_assignment::ir_assignment(ir_rvalue *lhs, ir_rvalue *rhs,
        -:        -:  170:			     ir_rvalue *condition)
      134:      134:  171:   : ir_instruction(ir_type_assignment)
        -:        -:  172:{
      134:      134:  173:   this->condition = condition;
      134:      134:  174:   this->rhs = rhs;
        -:        -:  175:
        -:        -:  176:   /* If the RHS is a vector type, assume that all components of the vector
        -:        -:  177:    * type are being written to the LHS.  The write mask comes from the RHS
        -:        -:  178:    * because we can have a case where the LHS is a vec4 and the RHS is a
        -:        -:  179:    * vec3.  In that case, the assignment is:
        -:        -:  180:    *
        -:        -:  181:    *     (assign (...) (xyz) (var_ref lhs) (var_ref rhs))
        -:        -:  182:    */
      134:      134:  183:   if (rhs->type->is_vector())
       24:       24:  184:      this->write_mask = (1U << rhs->type->vector_elements) - 1;
      110:      110:  185:   else if (rhs->type->is_scalar())
      110:      110:  186:      this->write_mask = 1;
        -:        -:  187:   else
    #####:    #####:  188:      this->write_mask = 0;
        -:        -:  189:
      134:      134:  190:   this->set_lhs(lhs);
      134:      134:  191:}
        -:        -:  192:
      143:      148:  193:ir_expression::ir_expression(int op, const struct glsl_type *type,
        -:        -:  194:			     ir_rvalue *op0, ir_rvalue *op1,
        -:        -:  195:			     ir_rvalue *op2, ir_rvalue *op3)
      143:      148:  196:   : ir_rvalue(ir_type_expression)
        -:        -:  197:{
      143:      148:  198:   this->type = type;
      143:      148:  199:   this->operation = ir_expression_operation(op);
      143:      148:  200:   this->operands[0] = op0;
      143:      148:  201:   this->operands[1] = op1;
      143:      148:  202:   this->operands[2] = op2;
      143:      148:  203:   this->operands[3] = op3;
        -:        -:  204:#ifndef NDEBUG
      143:      148:  205:   int num_operands = get_num_operands(this->operation);
      431:      446:  206:   for (int i = num_operands; i < 4; i++) {
      288:      298:  207:      assert(this->operands[i] == NULL);
        -:        -:  208:   }
        -:        -:  209:#endif
      143:      148:  210:}
        -:        -:  211:
      765:      766:  212:ir_expression::ir_expression(int op, ir_rvalue *op0)
      765:      766:  213:   : ir_rvalue(ir_type_expression)
        -:        -:  214:{
      765:      766:  215:   this->operation = ir_expression_operation(op);
      765:      766:  216:   this->operands[0] = op0;
      765:      766:  217:   this->operands[1] = NULL;
      765:      766:  218:   this->operands[2] = NULL;
      765:      766:  219:   this->operands[3] = NULL;
        -:        -:  220:
      765:      766:  221:   assert(op <= ir_last_unop);
        -:        -:  222:
      765:      766:  223:   switch (this->operation) {
        -:        -:  224:   case ir_unop_bit_not:
        -:        -:  225:   case ir_unop_logic_not:
        -:        -:  226:   case ir_unop_neg:
        -:        -:  227:   case ir_unop_abs:
        -:        -:  228:   case ir_unop_sign:
        -:        -:  229:   case ir_unop_rcp:
        -:        -:  230:   case ir_unop_rsq:
        -:        -:  231:   case ir_unop_sqrt:
        -:        -:  232:   case ir_unop_exp:
        -:        -:  233:   case ir_unop_log:
        -:        -:  234:   case ir_unop_exp2:
        -:        -:  235:   case ir_unop_log2:
        -:        -:  236:   case ir_unop_trunc:
        -:        -:  237:   case ir_unop_ceil:
        -:        -:  238:   case ir_unop_floor:
        -:        -:  239:   case ir_unop_fract:
        -:        -:  240:   case ir_unop_round_even:
        -:        -:  241:   case ir_unop_sin:
        -:        -:  242:   case ir_unop_cos:
        -:        -:  243:   case ir_unop_dFdx:
        -:        -:  244:   case ir_unop_dFdx_coarse:
        -:        -:  245:   case ir_unop_dFdx_fine:
        -:        -:  246:   case ir_unop_dFdy:
        -:        -:  247:   case ir_unop_dFdy_coarse:
        -:        -:  248:   case ir_unop_dFdy_fine:
        -:        -:  249:   case ir_unop_bitfield_reverse:
        -:        -:  250:   case ir_unop_interpolate_at_centroid:
        -:        -:  251:   case ir_unop_saturate:
      492:      493:  252:      this->type = op0->type;
      492:      493:  253:      break;
        -:        -:  254:
        -:        -:  255:   case ir_unop_f2i:
        -:        -:  256:   case ir_unop_b2i:
        -:        -:  257:   case ir_unop_u2i:
        -:        -:  258:   case ir_unop_d2i:
        -:        -:  259:   case ir_unop_bitcast_f2i:
        -:        -:  260:   case ir_unop_bit_count:
        -:        -:  261:   case ir_unop_find_msb:
        -:        -:  262:   case ir_unop_find_lsb:
        -:        -:  263:   case ir_unop_subroutine_to_int:
        -:        -:  264:   case ir_unop_i642i:
        -:        -:  265:   case ir_unop_u642i:
       43:       43:  266:      this->type = glsl_type::get_instance(GLSL_TYPE_INT,
       86:       86:  267:					   op0->type->vector_elements, 1);
       43:       43:  268:      break;
        -:        -:  269:
        -:        -:  270:   case ir_unop_b2f:
        -:        -:  271:   case ir_unop_i2f:
        -:        -:  272:   case ir_unop_u2f:
        -:        -:  273:   case ir_unop_d2f:
        -:        -:  274:   case ir_unop_bitcast_i2f:
        -:        -:  275:   case ir_unop_bitcast_u2f:
        -:        -:  276:   case ir_unop_i642f:
        -:        -:  277:   case ir_unop_u642f:
       62:       62:  278:      this->type = glsl_type::get_instance(GLSL_TYPE_FLOAT,
      124:      124:  279:					   op0->type->vector_elements, 1);
       62:       62:  280:      break;
        -:        -:  281:
        -:        -:  282:   case ir_unop_f2b:
        -:        -:  283:   case ir_unop_i2b:
        -:        -:  284:   case ir_unop_d2b:
        -:        -:  285:   case ir_unop_i642b:
    #####:    #####:  286:      this->type = glsl_type::get_instance(GLSL_TYPE_BOOL,
    #####:    #####:  287:					   op0->type->vector_elements, 1);
    #####:    #####:  288:      break;
        -:        -:  289:
        -:        -:  290:   case ir_unop_f2d:
        -:        -:  291:   case ir_unop_i2d:
        -:        -:  292:   case ir_unop_u2d:
        -:        -:  293:   case ir_unop_i642d:
        -:        -:  294:   case ir_unop_u642d:
       19:       19:  295:      this->type = glsl_type::get_instance(GLSL_TYPE_DOUBLE,
       38:       38:  296:					   op0->type->vector_elements, 1);
       19:       19:  297:      break;
        -:        -:  298:
        -:        -:  299:   case ir_unop_i2u:
        -:        -:  300:   case ir_unop_f2u:
        -:        -:  301:   case ir_unop_d2u:
        -:        -:  302:   case ir_unop_bitcast_f2u:
        -:        -:  303:   case ir_unop_i642u:
        -:        -:  304:   case ir_unop_u642u:
       24:       24:  305:      this->type = glsl_type::get_instance(GLSL_TYPE_UINT,
       48:       48:  306:					   op0->type->vector_elements, 1);
       24:       24:  307:      break;
        -:        -:  308:
        -:        -:  309:   case ir_unop_i2i64:
        -:        -:  310:   case ir_unop_u2i64:
        -:        -:  311:   case ir_unop_b2i64:
        -:        -:  312:   case ir_unop_f2i64:
        -:        -:  313:   case ir_unop_d2i64:
        -:        -:  314:   case ir_unop_u642i64:
        2:        2:  315:      this->type = glsl_type::get_instance(GLSL_TYPE_INT64,
        4:        4:  316:					   op0->type->vector_elements, 1);
        2:        2:  317:      break;
        -:        -:  318:
        -:        -:  319:   case ir_unop_i2u64:
        -:        -:  320:   case ir_unop_u2u64:
        -:        -:  321:   case ir_unop_f2u64:
        -:        -:  322:   case ir_unop_d2u64:
        -:        -:  323:   case ir_unop_i642u64:
        4:        4:  324:      this->type = glsl_type::get_instance(GLSL_TYPE_UINT64,
        8:        8:  325:					   op0->type->vector_elements, 1);
        4:        4:  326:      break;
        -:        -:  327:   case ir_unop_noise:
       40:       40:  328:      this->type = glsl_type::float_type;
       40:       40:  329:      break;
        -:        -:  330:
        -:        -:  331:   case ir_unop_unpack_double_2x32:
        -:        -:  332:   case ir_unop_unpack_uint_2x32:
        8:        8:  333:      this->type = glsl_type::uvec2_type;
        8:        8:  334:      break;
        -:        -:  335:
        -:        -:  336:   case ir_unop_unpack_int_2x32:
        3:        3:  337:      this->type = glsl_type::ivec2_type;
        3:        3:  338:      break;
        -:        -:  339:
        -:        -:  340:   case ir_unop_pack_snorm_2x16:
        -:        -:  341:   case ir_unop_pack_snorm_4x8:
        -:        -:  342:   case ir_unop_pack_unorm_2x16:
        -:        -:  343:   case ir_unop_pack_unorm_4x8:
        -:        -:  344:   case ir_unop_pack_half_2x16:
        5:        5:  345:      this->type = glsl_type::uint_type;
        5:        5:  346:      break;
        -:        -:  347:
        -:        -:  348:   case ir_unop_pack_double_2x32:
        1:        1:  349:      this->type = glsl_type::double_type;
        1:        1:  350:      break;
        -:        -:  351:
        -:        -:  352:   case ir_unop_pack_int_2x32:
        5:        5:  353:      this->type = glsl_type::int64_t_type;
        5:        5:  354:      break;
        -:        -:  355:
        -:        -:  356:   case ir_unop_pack_uint_2x32:
       12:       12:  357:      this->type = glsl_type::uint64_t_type;
       12:       12:  358:      break;
        -:        -:  359:
        -:        -:  360:   case ir_unop_unpack_snorm_2x16:
        -:        -:  361:   case ir_unop_unpack_unorm_2x16:
        -:        -:  362:   case ir_unop_unpack_half_2x16:
        3:        3:  363:      this->type = glsl_type::vec2_type;
        3:        3:  364:      break;
        -:        -:  365:
        -:        -:  366:   case ir_unop_unpack_snorm_4x8:
        -:        -:  367:   case ir_unop_unpack_unorm_4x8:
        2:        2:  368:      this->type = glsl_type::vec4_type;
        2:        2:  369:      break;
        -:        -:  370:
        -:        -:  371:   case ir_unop_frexp_sig:
        4:        4:  372:      this->type = op0->type;
        4:        4:  373:      break;
        -:        -:  374:   case ir_unop_frexp_exp:
        4:        4:  375:      this->type = glsl_type::get_instance(GLSL_TYPE_INT,
        8:        8:  376:					   op0->type->vector_elements, 1);
        4:        4:  377:      break;
        -:        -:  378:
        -:        -:  379:   case ir_unop_get_buffer_size:
        -:        -:  380:   case ir_unop_ssbo_unsized_array_length:
    #####:    #####:  381:      this->type = glsl_type::int_type;
    #####:    #####:  382:      break;
        -:        -:  383:
        -:        -:  384:   case ir_unop_ballot:
        1:        1:  385:      this->type = glsl_type::uint64_t_type;
        1:        1:  386:      break;
        -:        -:  387:
        -:        -:  388:   case ir_unop_read_first_invocation:
       12:       12:  389:      this->type = op0->type;
       12:       12:  390:      break;
        -:        -:  391:
        -:        -:  392:   case ir_unop_vote_any:
        -:        -:  393:   case ir_unop_vote_all:
        -:        -:  394:   case ir_unop_vote_eq:
        3:        3:  395:      this->type = glsl_type::bool_type;
        3:        3:  396:      break;
        -:        -:  397:
        -:        -:  398:   case ir_unop_bitcast_i642d:
        -:        -:  399:   case ir_unop_bitcast_u642d:
        8:        8:  400:      this->type = glsl_type::get_instance(GLSL_TYPE_DOUBLE,
       16:       16:  401:                                           op0->type->vector_elements, 1);
        8:        8:  402:      break;
        -:        -:  403:
        -:        -:  404:   case ir_unop_bitcast_d2i64:
        4:        4:  405:      this->type = glsl_type::get_instance(GLSL_TYPE_INT64,
        8:        8:  406:                                           op0->type->vector_elements, 1);
        4:        4:  407:      break;
        -:        -:  408:   case ir_unop_bitcast_d2u64:
        4:        4:  409:      this->type = glsl_type::get_instance(GLSL_TYPE_UINT64,
        8:        8:  410:                                           op0->type->vector_elements, 1);
        4:        4:  411:      break;
        -:        -:  412:
        -:        -:  413:   default:
    #####:    #####:  414:      assert(!"not reached: missing automatic type setup for ir_expression");
        -:        -:  415:      this->type = op0->type;
        -:        -:  416:      break;
        -:        -:  417:   }
      765:      766:  418:}
        -:        -:  419:
     2123:     2123:  420:ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1)
     2123:     2123:  421:   : ir_rvalue(ir_type_expression)
        -:        -:  422:{
     2123:     2123:  423:   this->operation = ir_expression_operation(op);
     2123:     2123:  424:   this->operands[0] = op0;
     2123:     2123:  425:   this->operands[1] = op1;
     2123:     2123:  426:   this->operands[2] = NULL;
     2123:     2123:  427:   this->operands[3] = NULL;
        -:        -:  428:
     2123:     2123:  429:   assert(op > ir_last_unop);
        -:        -:  430:
     2123:     2123:  431:   switch (this->operation) {
        -:        -:  432:   case ir_binop_all_equal:
        -:        -:  433:   case ir_binop_any_nequal:
        6:        6:  434:      this->type = glsl_type::bool_type;
        6:        6:  435:      break;
        -:        -:  436:
        -:        -:  437:   case ir_binop_add:
        -:        -:  438:   case ir_binop_sub:
        -:        -:  439:   case ir_binop_min:
        -:        -:  440:   case ir_binop_max:
        -:        -:  441:   case ir_binop_pow:
        -:        -:  442:   case ir_binop_mul:
        -:        -:  443:   case ir_binop_div:
        -:        -:  444:   case ir_binop_mod:
     1683:     1683:  445:      if (op0->type->is_scalar()) {
      954:      954:  446:	 this->type = op1->type;
      729:      729:  447:      } else if (op1->type->is_scalar()) {
      270:      270:  448:	 this->type = op0->type;
        -:        -:  449:      } else {
      459:      459:  450:         if (this->operation == ir_binop_mul) {
      178:      178:  451:            this->type = glsl_type::get_mul_type(op0->type, op1->type);
        -:        -:  452:         } else {
      281:      281:  453:            assert(op0->type == op1->type);
      281:      281:  454:            this->type = op0->type;
        -:        -:  455:         }
        -:        -:  456:      }
     1683:     1683:  457:      break;
        -:        -:  458:
        -:        -:  459:   case ir_binop_logic_and:
        -:        -:  460:   case ir_binop_logic_xor:
        -:        -:  461:   case ir_binop_logic_or:
        -:        -:  462:   case ir_binop_bit_and:
        -:        -:  463:   case ir_binop_bit_xor:
        -:        -:  464:   case ir_binop_bit_or:
       38:       38:  465:       assert(!op0->type->is_matrix());
       38:       38:  466:       assert(!op1->type->is_matrix());
       38:       38:  467:      if (op0->type->is_scalar()) {
       32:       32:  468:         this->type = op1->type;
        6:        6:  469:      } else if (op1->type->is_scalar()) {
    #####:    #####:  470:         this->type = op0->type;
        -:        -:  471:      } else {
        6:        6:  472:          assert(op0->type->vector_elements == op1->type->vector_elements);
        6:        6:  473:          this->type = op0->type;
        -:        -:  474:      }
       38:       38:  475:      break;
        -:        -:  476:
        -:        -:  477:   case ir_binop_equal:
        -:        -:  478:   case ir_binop_nequal:
        -:        -:  479:   case ir_binop_lequal:
        -:        -:  480:   case ir_binop_gequal:
        -:        -:  481:   case ir_binop_less:
        -:        -:  482:   case ir_binop_greater:
      275:      275:  483:      assert(op0->type == op1->type);
      275:      275:  484:      this->type = glsl_type::get_instance(GLSL_TYPE_BOOL,
      550:      550:  485:					   op0->type->vector_elements, 1);
      275:      275:  486:      break;
        -:        -:  487:
        -:        -:  488:   case ir_binop_dot:
       44:       44:  489:      this->type = op0->type->get_base_type();
       44:       44:  490:      break;
        -:        -:  491:
        -:        -:  492:   case ir_binop_imul_high:
        -:        -:  493:   case ir_binop_carry:
        -:        -:  494:   case ir_binop_borrow:
        -:        -:  495:   case ir_binop_lshift:
        -:        -:  496:   case ir_binop_rshift:
        -:        -:  497:   case ir_binop_ldexp:
        -:        -:  498:   case ir_binop_interpolate_at_offset:
        -:        -:  499:   case ir_binop_interpolate_at_sample:
       62:       62:  500:      this->type = op0->type;
       62:       62:  501:      break;
        -:        -:  502:
        -:        -:  503:   case ir_binop_vector_extract:
        3:        3:  504:      this->type = op0->type->get_scalar_type();
        3:        3:  505:      break;
        -:        -:  506:
        -:        -:  507:   case ir_binop_read_invocation:
       12:       12:  508:      this->type = op0->type;
       12:       12:  509:      break;
        -:        -:  510:
        -:        -:  511:   default:
    #####:    #####:  512:      assert(!"not reached: missing automatic type setup for ir_expression");
        -:        -:  513:      this->type = glsl_type::float_type;
        -:        -:  514:   }
     2123:     2123:  515:}
        -:        -:  516:
       86:       86:  517:ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1,
        -:        -:  518:                             ir_rvalue *op2)
       86:       86:  519:   : ir_rvalue(ir_type_expression)
        -:        -:  520:{
       86:       86:  521:   this->operation = ir_expression_operation(op);
       86:       86:  522:   this->operands[0] = op0;
       86:       86:  523:   this->operands[1] = op1;
       86:       86:  524:   this->operands[2] = op2;
       86:       86:  525:   this->operands[3] = NULL;
        -:        -:  526:
       86:       86:  527:   assert(op > ir_last_binop && op <= ir_last_triop);
        -:        -:  528:
       86:       86:  529:   switch (this->operation) {
        -:        -:  530:   case ir_triop_fma:
        -:        -:  531:   case ir_triop_lrp:
        -:        -:  532:   case ir_triop_bitfield_extract:
        -:        -:  533:   case ir_triop_vector_insert:
       30:       30:  534:      this->type = op0->type;
       30:       30:  535:      break;
        -:        -:  536:
        -:        -:  537:   case ir_triop_csel:
       56:       56:  538:      this->type = op1->type;
       56:       56:  539:      break;
        -:        -:  540:
        -:        -:  541:   default:
    #####:    #####:  542:      assert(!"not reached: missing automatic type setup for ir_expression");
        -:        -:  543:      this->type = glsl_type::float_type;
        -:        -:  544:   }
       86:       86:  545:}
        -:        -:  546:
        -:        -:  547:unsigned int
    34654:    37828:  548:ir_expression::get_num_operands(ir_expression_operation op)
        -:        -:  549:{
    34654:    37828:  550:   assert(op <= ir_last_opcode);
        -:        -:  551:
    34654:    37828:  552:   if (op <= ir_last_unop)
     4098:     4392:  553:      return 1;
        -:        -:  554:
    30556:    33436:  555:   if (op <= ir_last_binop)
    30467:    33347:  556:      return 2;
        -:        -:  557:
       89:       89:  558:   if (op <= ir_last_triop)
       81:       81:  559:      return 3;
        -:        -:  560:
        8:        8:  561:   if (op <= ir_last_quadop)
        8:        8:  562:      return 4;
        -:        -:  563:
    #####:    #####:  564:   assert(false);
        -:        -:  565:   return 0;
        -:        -:  566:}
        -:        -:  567:
        -:        -:  568:#include "ir_expression_operation_strings.h"
        -:        -:  569:
        -:        -:  570:const char*
    #####:    #####:  571:depth_layout_string(ir_depth_layout layout)
        -:        -:  572:{
    #####:    #####:  573:   switch(layout) {
    #####:    #####:  574:   case ir_depth_layout_none:      return "";
    #####:    #####:  575:   case ir_depth_layout_any:       return "depth_any";
    #####:    #####:  576:   case ir_depth_layout_greater:   return "depth_greater";
    #####:    #####:  577:   case ir_depth_layout_less:      return "depth_less";
    #####:    #####:  578:   case ir_depth_layout_unchanged: return "depth_unchanged";
        -:        -:  579:
        -:        -:  580:   default:
    #####:    #####:  581:      assert(0);
        -:        -:  582:      return "";
        -:        -:  583:   }
        -:        -:  584:}
        -:        -:  585:
        -:        -:  586:ir_expression_operation
    #####:    #####:  587:ir_expression::get_operator(const char *str)
        -:        -:  588:{
    #####:    #####:  589:   for (int op = 0; op <= int(ir_last_opcode); op++) {
    #####:    #####:  590:      if (strcmp(str, ir_expression_operation_strings[op]) == 0)
    #####:    #####:  591:	 return (ir_expression_operation) op;
        -:        -:  592:   }
    #####:    #####:  593:   return (ir_expression_operation) -1;
        -:        -:  594:}
        -:        -:  595:
        -:        -:  596:ir_variable *
        2:        2:  597:ir_expression::variable_referenced() const
        -:        -:  598:{
        2:        2:  599:   switch (operation) {
        -:        -:  600:      case ir_binop_vector_extract:
        -:        -:  601:      case ir_triop_vector_insert:
        -:        -:  602:         /* We get these for things like a[0] where a is a vector type. In these
        -:        -:  603:          * cases we want variable_referenced() to return the actual vector
        -:        -:  604:          * variable this is wrapping.
        -:        -:  605:          */
    #####:    #####:  606:         return operands[0]->variable_referenced();
        -:        -:  607:      default:
        2:        2:  608:         return ir_rvalue::variable_referenced();
        -:        -:  609:   }
        -:        -:  610:}
        -:        -:  611:
       16:       16:  612:ir_constant::ir_constant()
       16:       16:  613:   : ir_rvalue(ir_type_constant)
        -:        -:  614:{
       16:       16:  615:   this->array_elements = NULL;
       16:       16:  616:}
        -:        -:  617:
      134:      139:  618:ir_constant::ir_constant(const struct glsl_type *type,
        -:        -:  619:			 const ir_constant_data *data)
      134:      139:  620:   : ir_rvalue(ir_type_constant)
        -:        -:  621:{
      134:      139:  622:   this->array_elements = NULL;
        -:        -:  623:
      268:      278:  624:   assert((type->base_type >= GLSL_TYPE_UINT)
      134:      139:  625:	  && (type->base_type <= GLSL_TYPE_BOOL));
        -:        -:  626:
      134:      139:  627:   this->type = type;
      134:      139:  628:   memcpy(& this->value, data, sizeof(this->value));
      134:      139:  629:}
        -:        -:  630:
      278:      279:  631:ir_constant::ir_constant(float f, unsigned vector_elements)
      278:      279:  632:   : ir_rvalue(ir_type_constant)
        -:        -:  633:{
      278:      279:  634:   assert(vector_elements <= 4);
      278:      279:  635:   this->type = glsl_type::get_instance(GLSL_TYPE_FLOAT, vector_elements, 1);
      610:      612:  636:   for (unsigned i = 0; i < vector_elements; i++) {
      332:      333:  637:      this->value.f[i] = f;
        -:        -:  638:   }
     4394:     4410:  639:   for (unsigned i = vector_elements; i < 16; i++)  {
     4116:     4131:  640:      this->value.f[i] = 0;
        -:        -:  641:   }
      278:      279:  642:}
        -:        -:  643:
       48:       48:  644:ir_constant::ir_constant(double d, unsigned vector_elements)
       48:       48:  645:   : ir_rvalue(ir_type_constant)
        -:        -:  646:{
       48:       48:  647:   assert(vector_elements <= 4);
       48:       48:  648:   this->type = glsl_type::get_instance(GLSL_TYPE_DOUBLE, vector_elements, 1);
       96:       96:  649:   for (unsigned i = 0; i < vector_elements; i++) {
       48:       48:  650:      this->value.d[i] = d;
        -:        -:  651:   }
      768:      768:  652:   for (unsigned i = vector_elements; i < 16; i++)  {
      720:      720:  653:      this->value.d[i] = 0.0;
        -:        -:  654:   }
       48:       48:  655:}
        -:        -:  656:
       54:       54:  657:ir_constant::ir_constant(unsigned int u, unsigned vector_elements)
       54:       54:  658:   : ir_rvalue(ir_type_constant)
        -:        -:  659:{
       54:       54:  660:   assert(vector_elements <= 4);
       54:       54:  661:   this->type = glsl_type::get_instance(GLSL_TYPE_UINT, vector_elements, 1);
      126:      126:  662:   for (unsigned i = 0; i < vector_elements; i++) {
       72:       72:  663:      this->value.u[i] = u;
        -:        -:  664:   }
      846:      846:  665:   for (unsigned i = vector_elements; i < 16; i++) {
      792:      792:  666:      this->value.u[i] = 0;
        -:        -:  667:   }
       54:       54:  668:}
        -:        -:  669:
     1379:     1379:  670:ir_constant::ir_constant(int integer, unsigned vector_elements)
     1379:     1379:  671:   : ir_rvalue(ir_type_constant)
        -:        -:  672:{
     1379:     1379:  673:   assert(vector_elements <= 4);
     1379:     1379:  674:   this->type = glsl_type::get_instance(GLSL_TYPE_INT, vector_elements, 1);
     2770:     2770:  675:   for (unsigned i = 0; i < vector_elements; i++) {
     1391:     1391:  676:      this->value.i[i] = integer;
        -:        -:  677:   }
    22052:    22052:  678:   for (unsigned i = vector_elements; i < 16; i++) {
    20673:    20673:  679:      this->value.i[i] = 0;
        -:        -:  680:   }
     1379:     1379:  681:}
        -:        -:  682:
    #####:    #####:  683:ir_constant::ir_constant(uint64_t u64, unsigned vector_elements)
    #####:    #####:  684:   : ir_rvalue(ir_type_constant)
        -:        -:  685:{
    #####:    #####:  686:   assert(vector_elements <= 4);
    #####:    #####:  687:   this->type = glsl_type::get_instance(GLSL_TYPE_UINT64, vector_elements, 1);
    #####:    #####:  688:   for (unsigned i = 0; i < vector_elements; i++) {
    #####:    #####:  689:      this->value.u64[i] = u64;
        -:        -:  690:   }
    #####:    #####:  691:   for (unsigned i = vector_elements; i < 16; i++) {
    #####:    #####:  692:      this->value.u64[i] = 0;
        -:        -:  693:   }
    #####:    #####:  694:}
        -:        -:  695:
    #####:    #####:  696:ir_constant::ir_constant(int64_t int64, unsigned vector_elements)
    #####:    #####:  697:   : ir_rvalue(ir_type_constant)
        -:        -:  698:{
    #####:    #####:  699:   assert(vector_elements <= 4);
    #####:    #####:  700:   this->type = glsl_type::get_instance(GLSL_TYPE_INT64, vector_elements, 1);
    #####:    #####:  701:   for (unsigned i = 0; i < vector_elements; i++) {
    #####:    #####:  702:      this->value.i64[i] = int64;
        -:        -:  703:   }
    #####:    #####:  704:   for (unsigned i = vector_elements; i < 16; i++) {
    #####:    #####:  705:      this->value.i64[i] = 0;
        -:        -:  706:   }
    #####:    #####:  707:}
        -:        -:  708:
       15:       15:  709:ir_constant::ir_constant(bool b, unsigned vector_elements)
       15:       15:  710:   : ir_rvalue(ir_type_constant)
        -:        -:  711:{
       15:       15:  712:   assert(vector_elements <= 4);
       15:       15:  713:   this->type = glsl_type::get_instance(GLSL_TYPE_BOOL, vector_elements, 1);
       42:       42:  714:   for (unsigned i = 0; i < vector_elements; i++) {
       27:       27:  715:      this->value.b[i] = b;
        -:        -:  716:   }
      228:      228:  717:   for (unsigned i = vector_elements; i < 16; i++) {
      213:      213:  718:      this->value.b[i] = false;
        -:        -:  719:   }
       15:       15:  720:}
        -:        -:  721:
    #####:    #####:  722:ir_constant::ir_constant(const ir_constant *c, unsigned i)
    #####:    #####:  723:   : ir_rvalue(ir_type_constant)
        -:        -:  724:{
    #####:    #####:  725:   this->array_elements = NULL;
    #####:    #####:  726:   this->type = c->type->get_base_type();
        -:        -:  727:
    #####:    #####:  728:   switch (this->type->base_type) {
    #####:    #####:  729:   case GLSL_TYPE_UINT:  this->value.u[0] = c->value.u[i]; break;
    #####:    #####:  730:   case GLSL_TYPE_INT:   this->value.i[0] = c->value.i[i]; break;
    #####:    #####:  731:   case GLSL_TYPE_FLOAT: this->value.f[0] = c->value.f[i]; break;
    #####:    #####:  732:   case GLSL_TYPE_BOOL:  this->value.b[0] = c->value.b[i]; break;
    #####:    #####:  733:   case GLSL_TYPE_DOUBLE: this->value.d[0] = c->value.d[i]; break;
    #####:    #####:  734:   default:              assert(!"Should not get here."); break;
        -:        -:  735:   }
    #####:    #####:  736:}
        -:        -:  737:
    #####:    #####:  738:ir_constant::ir_constant(const struct glsl_type *type, exec_list *value_list)
    #####:    #####:  739:   : ir_rvalue(ir_type_constant)
        -:        -:  740:{
    #####:    #####:  741:   this->array_elements = NULL;
    #####:    #####:  742:   this->type = type;
        -:        -:  743:
    #####:    #####:  744:   assert(type->is_scalar() || type->is_vector() || type->is_matrix()
    #####:    #####:  745:	  || type->is_record() || type->is_array());
        -:        -:  746:
    #####:    #####:  747:   if (type->is_array()) {
    #####:    #####:  748:      this->array_elements = ralloc_array(this, ir_constant *, type->length);
    #####:    #####:  749:      unsigned i = 0;
    #####:    #####:  750:      foreach_in_list(ir_constant, value, value_list) {
    #####:    #####:  751:	 assert(value->as_constant() != NULL);
        -:        -:  752:
    #####:    #####:  753:	 this->array_elements[i++] = value;
        -:        -:  754:      }
    #####:    #####:  755:      return;
        -:        -:  756:   }
        -:        -:  757:
        -:        -:  758:   /* If the constant is a record, the types of each of the entries in
        -:        -:  759:    * value_list must be a 1-for-1 match with the structure components.  Each
        -:        -:  760:    * entry must also be a constant.  Just move the nodes from the value_list
        -:        -:  761:    * to the list in the ir_constant.
        -:        -:  762:    */
        -:        -:  763:   /* FINISHME: Should there be some type checking and / or assertions here? */
        -:        -:  764:   /* FINISHME: Should the new constant take ownership of the nodes from
        -:        -:  765:    * FINISHME: value_list, or should it make copies?
        -:        -:  766:    */
    #####:    #####:  767:   if (type->is_record()) {
    #####:    #####:  768:      value_list->move_nodes_to(& this->components);
    #####:    #####:  769:      return;
        -:        -:  770:   }
        -:        -:  771:
    #####:    #####:  772:   for (unsigned i = 0; i < 16; i++) {
    #####:    #####:  773:      this->value.u[i] = 0;
        -:        -:  774:   }
        -:        -:  775:
    #####:    #####:  776:   ir_constant *value = (ir_constant *) (value_list->get_head_raw());
        -:        -:  777:
        -:        -:  778:   /* Constructors with exactly one scalar argument are special for vectors
        -:        -:  779:    * and matrices.  For vectors, the scalar value is replicated to fill all
        -:        -:  780:    * the components.  For matrices, the scalar fills the components of the
        -:        -:  781:    * diagonal while the rest is filled with 0.
        -:        -:  782:    */
    #####:    #####:  783:   if (value->type->is_scalar() && value->next->is_tail_sentinel()) {
    #####:    #####:  784:      if (type->is_matrix()) {
        -:        -:  785:	 /* Matrix - fill diagonal (rest is already set to 0) */
    #####:    #####:  786:         assert(type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  787:                type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  788:         for (unsigned i = 0; i < type->matrix_columns; i++) {
    #####:    #####:  789:            if (type->base_type == GLSL_TYPE_FLOAT)
    #####:    #####:  790:               this->value.f[i * type->vector_elements + i] =
    #####:    #####:  791:                  value->value.f[0];
        -:        -:  792:            else
    #####:    #####:  793:               this->value.d[i * type->vector_elements + i] =
    #####:    #####:  794:                  value->value.d[0];
        -:        -:  795:         }
        -:        -:  796:      } else {
        -:        -:  797:	 /* Vector or scalar - fill all components */
    #####:    #####:  798:	 switch (type->base_type) {
        -:        -:  799:	 case GLSL_TYPE_UINT:
        -:        -:  800:	 case GLSL_TYPE_INT:
    #####:    #####:  801:	    for (unsigned i = 0; i < type->components(); i++)
    #####:    #####:  802:	       this->value.u[i] = value->value.u[0];
    #####:    #####:  803:	    break;
        -:        -:  804:	 case GLSL_TYPE_FLOAT:
    #####:    #####:  805:	    for (unsigned i = 0; i < type->components(); i++)
    #####:    #####:  806:	       this->value.f[i] = value->value.f[0];
    #####:    #####:  807:	    break;
        -:        -:  808:	 case GLSL_TYPE_DOUBLE:
    #####:    #####:  809:	    for (unsigned i = 0; i < type->components(); i++)
    #####:    #####:  810:	       this->value.d[i] = value->value.d[0];
    #####:    #####:  811:	    break;
        -:        -:  812:	 case GLSL_TYPE_UINT64:
        -:        -:  813:	 case GLSL_TYPE_INT64:
    #####:    #####:  814:	    for (unsigned i = 0; i < type->components(); i++)
    #####:    #####:  815:	       this->value.u64[i] = value->value.u64[0];
    #####:    #####:  816:	    break;
        -:        -:  817:	 case GLSL_TYPE_BOOL:
    #####:    #####:  818:	    for (unsigned i = 0; i < type->components(); i++)
    #####:    #####:  819:	       this->value.b[i] = value->value.b[0];
    #####:    #####:  820:	    break;
        -:        -:  821:	 default:
    #####:    #####:  822:	    assert(!"Should not get here.");
        -:        -:  823:	    break;
        -:        -:  824:	 }
        -:        -:  825:      }
    #####:    #####:  826:      return;
        -:        -:  827:   }
        -:        -:  828:
    #####:    #####:  829:   if (type->is_matrix() && value->type->is_matrix()) {
    #####:    #####:  830:      assert(value->next->is_tail_sentinel());
        -:        -:  831:
        -:        -:  832:      /* From section 5.4.2 of the GLSL 1.20 spec:
        -:        -:  833:       * "If a matrix is constructed from a matrix, then each component
        -:        -:  834:       *  (column i, row j) in the result that has a corresponding component
        -:        -:  835:       *  (column i, row j) in the argument will be initialized from there."
        -:        -:  836:       */
    #####:    #####:  837:      unsigned cols = MIN2(type->matrix_columns, value->type->matrix_columns);
    #####:    #####:  838:      unsigned rows = MIN2(type->vector_elements, value->type->vector_elements);
    #####:    #####:  839:      for (unsigned i = 0; i < cols; i++) {
    #####:    #####:  840:	 for (unsigned j = 0; j < rows; j++) {
    #####:    #####:  841:	    const unsigned src = i * value->type->vector_elements + j;
    #####:    #####:  842:	    const unsigned dst = i * type->vector_elements + j;
    #####:    #####:  843:	    this->value.f[dst] = value->value.f[src];
        -:        -:  844:	 }
        -:        -:  845:      }
        -:        -:  846:
        -:        -:  847:      /* "All other components will be initialized to the identity matrix." */
    #####:    #####:  848:      for (unsigned i = cols; i < type->matrix_columns; i++)
    #####:    #####:  849:	 this->value.f[i * type->vector_elements + i] = 1.0;
        -:        -:  850:
    #####:    #####:  851:      return;
        -:        -:  852:   }
        -:        -:  853:
        -:        -:  854:   /* Use each component from each entry in the value_list to initialize one
        -:        -:  855:    * component of the constant being constructed.
        -:        -:  856:    */
    #####:    #####:  857:   unsigned i = 0;
    #####:    #####:  858:   for (;;) {
    #####:    #####:  859:      assert(value->as_constant() != NULL);
    #####:    #####:  860:      assert(!value->is_tail_sentinel());
        -:        -:  861:
    #####:    #####:  862:      for (unsigned j = 0; j < value->type->components(); j++) {
    #####:    #####:  863:	 switch (type->base_type) {
        -:        -:  864:	 case GLSL_TYPE_UINT:
    #####:    #####:  865:	    this->value.u[i] = value->get_uint_component(j);
    #####:    #####:  866:	    break;
        -:        -:  867:	 case GLSL_TYPE_INT:
    #####:    #####:  868:	    this->value.i[i] = value->get_int_component(j);
    #####:    #####:  869:	    break;
        -:        -:  870:	 case GLSL_TYPE_FLOAT:
    #####:    #####:  871:	    this->value.f[i] = value->get_float_component(j);
    #####:    #####:  872:	    break;
        -:        -:  873:	 case GLSL_TYPE_BOOL:
    #####:    #####:  874:	    this->value.b[i] = value->get_bool_component(j);
    #####:    #####:  875:	    break;
        -:        -:  876:	 case GLSL_TYPE_DOUBLE:
    #####:    #####:  877:	    this->value.d[i] = value->get_double_component(j);
    #####:    #####:  878:	    break;
        -:        -:  879:         case GLSL_TYPE_UINT64:
    #####:    #####:  880:	    this->value.u64[i] = value->get_uint64_component(j);
    #####:    #####:  881:	    break;
        -:        -:  882:	 case GLSL_TYPE_INT64:
    #####:    #####:  883:	    this->value.i64[i] = value->get_int64_component(j);
    #####:    #####:  884:	    break;
        -:        -:  885:	 default:
        -:        -:  886:	    /* FINISHME: What to do?  Exceptions are not the answer.
        -:        -:  887:	     */
    #####:    #####:  888:	    break;
        -:        -:  889:	 }
        -:        -:  890:
    #####:    #####:  891:	 i++;
    #####:    #####:  892:	 if (i >= type->components())
    #####:    #####:  893:	    break;
        -:        -:  894:      }
        -:        -:  895:
    #####:    #####:  896:      if (i >= type->components())
    #####:    #####:  897:	 break; /* avoid downcasting a list sentinel */
    #####:    #####:  898:      value = (ir_constant *) value->next;
        -:        -:  899:   }
        -:        -:  900:}
        -:        -:  901:
        -:        -:  902:ir_constant *
       16:       16:  903:ir_constant::zero(void *mem_ctx, const glsl_type *type)
        -:        -:  904:{
       26:       26:  905:   assert(type->is_scalar() || type->is_vector() || type->is_matrix()
       16:       16:  906:	  || type->is_record() || type->is_array());
        -:        -:  907:
       16:       16:  908:   ir_constant *c = new(mem_ctx) ir_constant;
       16:       16:  909:   c->type = type;
       16:       16:  910:   memset(&c->value, 0, sizeof(c->value));
        -:        -:  911:
       16:       16:  912:   if (type->is_array()) {
    #####:    #####:  913:      c->array_elements = ralloc_array(c, ir_constant *, type->length);
        -:        -:  914:
    #####:    #####:  915:      for (unsigned i = 0; i < type->length; i++)
    #####:    #####:  916:	 c->array_elements[i] = ir_constant::zero(c, type->fields.array);
        -:        -:  917:   }
        -:        -:  918:
       16:       16:  919:   if (type->is_record()) {
    #####:    #####:  920:      for (unsigned i = 0; i < type->length; i++) {
    #####:    #####:  921:	 ir_constant *comp = ir_constant::zero(mem_ctx, type->fields.structure[i].type);
    #####:    #####:  922:	 c->components.push_tail(comp);
        -:        -:  923:      }
        -:        -:  924:   }
        -:        -:  925:
       16:       16:  926:   return c;
        -:        -:  927:}
        -:        -:  928:
        -:        -:  929:bool
    #####:    #####:  930:ir_constant::get_bool_component(unsigned i) const
        -:        -:  931:{
    #####:    #####:  932:   switch (this->type->base_type) {
    #####:    #####:  933:   case GLSL_TYPE_UINT:  return this->value.u[i] != 0;
    #####:    #####:  934:   case GLSL_TYPE_INT:   return this->value.i[i] != 0;
    #####:    #####:  935:   case GLSL_TYPE_FLOAT: return ((int)this->value.f[i]) != 0;
    #####:    #####:  936:   case GLSL_TYPE_BOOL:  return this->value.b[i];
    #####:    #####:  937:   case GLSL_TYPE_DOUBLE: return this->value.d[i] != 0.0;
    #####:    #####:  938:   case GLSL_TYPE_UINT64: return this->value.u64[i] != 0;
    #####:    #####:  939:   case GLSL_TYPE_INT64:  return this->value.i64[i] != 0;
    #####:    #####:  940:   default:              assert(!"Should not get here."); break;
        -:        -:  941:   }
        -:        -:  942:
        -:        -:  943:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -:  944:    * error case.
        -:        -:  945:    */
        -:        -:  946:   return false;
        -:        -:  947:}
        -:        -:  948:
        -:        -:  949:float
        2:        2:  950:ir_constant::get_float_component(unsigned i) const
        -:        -:  951:{
        2:        2:  952:   switch (this->type->base_type) {
    #####:    #####:  953:   case GLSL_TYPE_UINT:  return (float) this->value.u[i];
    #####:    #####:  954:   case GLSL_TYPE_INT:   return (float) this->value.i[i];
        2:        2:  955:   case GLSL_TYPE_FLOAT: return this->value.f[i];
    #####:    #####:  956:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1.0f : 0.0f;
    #####:    #####:  957:   case GLSL_TYPE_DOUBLE: return (float) this->value.d[i];
    #####:    #####:  958:   case GLSL_TYPE_UINT64: return (float) this->value.u64[i];
    #####:    #####:  959:   case GLSL_TYPE_INT64:  return (float) this->value.i64[i];
    #####:    #####:  960:   default:              assert(!"Should not get here."); break;
        -:        -:  961:   }
        -:        -:  962:
        -:        -:  963:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -:  964:    * error case.
        -:        -:  965:    */
        -:        -:  966:   return 0.0;
        -:        -:  967:}
        -:        -:  968:
        -:        -:  969:double
    #####:    #####:  970:ir_constant::get_double_component(unsigned i) const
        -:        -:  971:{
    #####:    #####:  972:   switch (this->type->base_type) {
    #####:    #####:  973:   case GLSL_TYPE_UINT:  return (double) this->value.u[i];
    #####:    #####:  974:   case GLSL_TYPE_INT:   return (double) this->value.i[i];
    #####:    #####:  975:   case GLSL_TYPE_FLOAT: return (double) this->value.f[i];
    #####:    #####:  976:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1.0 : 0.0;
    #####:    #####:  977:   case GLSL_TYPE_DOUBLE: return this->value.d[i];
    #####:    #####:  978:   case GLSL_TYPE_UINT64: return (double) this->value.u64[i];
    #####:    #####:  979:   case GLSL_TYPE_INT64:  return (double) this->value.i64[i];
    #####:    #####:  980:   default:              assert(!"Should not get here."); break;
        -:        -:  981:   }
        -:        -:  982:
        -:        -:  983:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -:  984:    * error case.
        -:        -:  985:    */
        -:        -:  986:   return 0.0;
        -:        -:  987:}
        -:        -:  988:
        -:        -:  989:int
       15:       15:  990:ir_constant::get_int_component(unsigned i) const
        -:        -:  991:{
       15:       15:  992:   switch (this->type->base_type) {
    #####:    #####:  993:   case GLSL_TYPE_UINT:  return this->value.u[i];
       15:       15:  994:   case GLSL_TYPE_INT:   return this->value.i[i];
    #####:    #####:  995:   case GLSL_TYPE_FLOAT: return (int) this->value.f[i];
    #####:    #####:  996:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1 : 0;
    #####:    #####:  997:   case GLSL_TYPE_DOUBLE: return (int) this->value.d[i];
    #####:    #####:  998:   case GLSL_TYPE_UINT64: return (int) this->value.u64[i];
    #####:    #####:  999:   case GLSL_TYPE_INT64:  return (int) this->value.i64[i];
    #####:    #####: 1000:   default:              assert(!"Should not get here."); break;
        -:        -: 1001:   }
        -:        -: 1002:
        -:        -: 1003:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -: 1004:    * error case.
        -:        -: 1005:    */
        -:        -: 1006:   return 0;
        -:        -: 1007:}
        -:        -: 1008:
        -:        -: 1009:unsigned
    #####:    #####: 1010:ir_constant::get_uint_component(unsigned i) const
        -:        -: 1011:{
    #####:    #####: 1012:   switch (this->type->base_type) {
    #####:    #####: 1013:   case GLSL_TYPE_UINT:  return this->value.u[i];
    #####:    #####: 1014:   case GLSL_TYPE_INT:   return this->value.i[i];
    #####:    #####: 1015:   case GLSL_TYPE_FLOAT: return (unsigned) this->value.f[i];
    #####:    #####: 1016:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1 : 0;
    #####:    #####: 1017:   case GLSL_TYPE_DOUBLE: return (unsigned) this->value.d[i];
    #####:    #####: 1018:   case GLSL_TYPE_UINT64: return (unsigned) this->value.u64[i];
    #####:    #####: 1019:   case GLSL_TYPE_INT64:  return (unsigned) this->value.i64[i];
    #####:    #####: 1020:   default:              assert(!"Should not get here."); break;
        -:        -: 1021:   }
        -:        -: 1022:
        -:        -: 1023:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -: 1024:    * error case.
        -:        -: 1025:    */
        -:        -: 1026:   return 0;
        -:        -: 1027:}
        -:        -: 1028:
        -:        -: 1029:int64_t
    #####:    #####: 1030:ir_constant::get_int64_component(unsigned i) const
        -:        -: 1031:{
    #####:    #####: 1032:   switch (this->type->base_type) {
    #####:    #####: 1033:   case GLSL_TYPE_UINT:  return this->value.u[i];
    #####:    #####: 1034:   case GLSL_TYPE_INT:   return this->value.i[i];
    #####:    #####: 1035:   case GLSL_TYPE_FLOAT: return (int64_t) this->value.f[i];
    #####:    #####: 1036:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1 : 0;
    #####:    #####: 1037:   case GLSL_TYPE_DOUBLE: return (int64_t) this->value.d[i];
    #####:    #####: 1038:   case GLSL_TYPE_UINT64: return (int64_t) this->value.u64[i];
    #####:    #####: 1039:   case GLSL_TYPE_INT64:  return this->value.i64[i];
    #####:    #####: 1040:   default:              assert(!"Should not get here."); break;
        -:        -: 1041:   }
        -:        -: 1042:
        -:        -: 1043:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -: 1044:    * error case.
        -:        -: 1045:    */
        -:        -: 1046:   return 0;
        -:        -: 1047:}
        -:        -: 1048:
        -:        -: 1049:uint64_t
    #####:    #####: 1050:ir_constant::get_uint64_component(unsigned i) const
        -:        -: 1051:{
    #####:    #####: 1052:   switch (this->type->base_type) {
    #####:    #####: 1053:   case GLSL_TYPE_UINT:  return this->value.u[i];
    #####:    #####: 1054:   case GLSL_TYPE_INT:   return this->value.i[i];
    #####:    #####: 1055:   case GLSL_TYPE_FLOAT: return (uint64_t) this->value.f[i];
    #####:    #####: 1056:   case GLSL_TYPE_BOOL:  return this->value.b[i] ? 1 : 0;
    #####:    #####: 1057:   case GLSL_TYPE_DOUBLE: return (uint64_t) this->value.d[i];
    #####:    #####: 1058:   case GLSL_TYPE_UINT64: return this->value.u64[i];
    #####:    #####: 1059:   case GLSL_TYPE_INT64:  return (uint64_t) this->value.i64[i];
    #####:    #####: 1060:   default:              assert(!"Should not get here."); break;
        -:        -: 1061:   }
        -:        -: 1062:
        -:        -: 1063:   /* Must return something to make the compiler happy.  This is clearly an
        -:        -: 1064:    * error case.
        -:        -: 1065:    */
        -:        -: 1066:   return 0;
        -:        -: 1067:}
        -:        -: 1068:
        -:        -: 1069:ir_constant *
    #####:    #####: 1070:ir_constant::get_array_element(unsigned i) const
        -:        -: 1071:{
    #####:    #####: 1072:   assert(this->type->is_array());
        -:        -: 1073:
        -:        -: 1074:   /* From page 35 (page 41 of the PDF) of the GLSL 1.20 spec:
        -:        -: 1075:    *
        -:        -: 1076:    *     "Behavior is undefined if a shader subscripts an array with an index
        -:        -: 1077:    *     less than 0 or greater than or equal to the size the array was
        -:        -: 1078:    *     declared with."
        -:        -: 1079:    *
        -:        -: 1080:    * Most out-of-bounds accesses are removed before things could get this far.
        -:        -: 1081:    * There are cases where non-constant array index values can get constant
        -:        -: 1082:    * folded.
        -:        -: 1083:    */
    #####:    #####: 1084:   if (int(i) < 0)
    #####:    #####: 1085:      i = 0;
    #####:    #####: 1086:   else if (i >= this->type->length)
    #####:    #####: 1087:      i = this->type->length - 1;
        -:        -: 1088:
    #####:    #####: 1089:   return array_elements[i];
        -:        -: 1090:}
        -:        -: 1091:
        -:        -: 1092:ir_constant *
    #####:    #####: 1093:ir_constant::get_record_field(const char *name)
        -:        -: 1094:{
    #####:    #####: 1095:   int idx = this->type->field_index(name);
        -:        -: 1096:
    #####:    #####: 1097:   if (idx < 0)
    #####:    #####: 1098:      return NULL;
        -:        -: 1099:
    #####:    #####: 1100:   if (this->components.is_empty())
    #####:    #####: 1101:      return NULL;
        -:        -: 1102:
    #####:    #####: 1103:   exec_node *node = this->components.get_head_raw();
    #####:    #####: 1104:   for (int i = 0; i < idx; i++) {
    #####:    #####: 1105:      node = node->next;
        -:        -: 1106:
        -:        -: 1107:      /* If the end of the list is encountered before the element matching the
        -:        -: 1108:       * requested field is found, return NULL.
        -:        -: 1109:       */
    #####:    #####: 1110:      if (node->is_tail_sentinel())
    #####:    #####: 1111:	 return NULL;
        -:        -: 1112:   }
        -:        -: 1113:
    #####:    #####: 1114:   return (ir_constant *) node;
        -:        -: 1115:}
        -:        -: 1116:
        -:        -: 1117:void
    #####:    #####: 1118:ir_constant::copy_offset(ir_constant *src, int offset)
        -:        -: 1119:{
    #####:    #####: 1120:   switch (this->type->base_type) {
        -:        -: 1121:   case GLSL_TYPE_UINT:
        -:        -: 1122:   case GLSL_TYPE_INT:
        -:        -: 1123:   case GLSL_TYPE_FLOAT:
        -:        -: 1124:   case GLSL_TYPE_DOUBLE:
        -:        -: 1125:   case GLSL_TYPE_UINT64:
        -:        -: 1126:   case GLSL_TYPE_INT64:
        -:        -: 1127:   case GLSL_TYPE_BOOL: {
    #####:    #####: 1128:      unsigned int size = src->type->components();
    #####:    #####: 1129:      assert (size <= this->type->components() - offset);
    #####:    #####: 1130:      for (unsigned int i=0; i<size; i++) {
    #####:    #####: 1131:	 switch (this->type->base_type) {
        -:        -: 1132:	 case GLSL_TYPE_UINT:
    #####:    #####: 1133:	    value.u[i+offset] = src->get_uint_component(i);
    #####:    #####: 1134:	    break;
        -:        -: 1135:	 case GLSL_TYPE_INT:
    #####:    #####: 1136:	    value.i[i+offset] = src->get_int_component(i);
    #####:    #####: 1137:	    break;
        -:        -: 1138:	 case GLSL_TYPE_FLOAT:
    #####:    #####: 1139:	    value.f[i+offset] = src->get_float_component(i);
    #####:    #####: 1140:	    break;
        -:        -: 1141:	 case GLSL_TYPE_BOOL:
    #####:    #####: 1142:	    value.b[i+offset] = src->get_bool_component(i);
    #####:    #####: 1143:	    break;
        -:        -: 1144:	 case GLSL_TYPE_DOUBLE:
    #####:    #####: 1145:	    value.d[i+offset] = src->get_double_component(i);
    #####:    #####: 1146:	    break;
        -:        -: 1147:         case GLSL_TYPE_UINT64:
    #####:    #####: 1148:	    value.u64[i+offset] = src->get_uint64_component(i);
    #####:    #####: 1149:	    break;
        -:        -: 1150:	 case GLSL_TYPE_INT64:
    #####:    #####: 1151:	    value.i64[i+offset] = src->get_int64_component(i);
    #####:    #####: 1152:	    break;
        -:        -: 1153:	 default: // Shut up the compiler
    #####:    #####: 1154:	    break;
        -:        -: 1155:	 }
        -:        -: 1156:      }
    #####:    #####: 1157:      break;
        -:        -: 1158:   }
        -:        -: 1159:
        -:        -: 1160:   case GLSL_TYPE_STRUCT: {
    #####:    #####: 1161:      assert (src->type == this->type);
    #####:    #####: 1162:      this->components.make_empty();
    #####:    #####: 1163:      foreach_in_list(ir_constant, orig, &src->components) {
    #####:    #####: 1164:	 this->components.push_tail(orig->clone(this, NULL));
        -:        -: 1165:      }
    #####:    #####: 1166:      break;
        -:        -: 1167:   }
        -:        -: 1168:
        -:        -: 1169:   case GLSL_TYPE_ARRAY: {
    #####:    #####: 1170:      assert (src->type == this->type);
    #####:    #####: 1171:      for (unsigned i = 0; i < this->type->length; i++) {
    #####:    #####: 1172:	 this->array_elements[i] = src->array_elements[i]->clone(this, NULL);
        -:        -: 1173:      }
    #####:    #####: 1174:      break;
        -:        -: 1175:   }
        -:        -: 1176:
        -:        -: 1177:   default:
    #####:    #####: 1178:      assert(!"Should not get here.");
        -:        -: 1179:      break;
        -:        -: 1180:   }
    #####:    #####: 1181:}
        -:        -: 1182:
        -:        -: 1183:void
    #####:    #####: 1184:ir_constant::copy_masked_offset(ir_constant *src, int offset, unsigned int mask)
        -:        -: 1185:{
    #####:    #####: 1186:   assert (!type->is_array() && !type->is_record());
        -:        -: 1187:
    #####:    #####: 1188:   if (!type->is_vector() && !type->is_matrix()) {
    #####:    #####: 1189:      offset = 0;
    #####:    #####: 1190:      mask = 1;
        -:        -: 1191:   }
        -:        -: 1192:
    #####:    #####: 1193:   int id = 0;
    #####:    #####: 1194:   for (int i=0; i<4; i++) {
    #####:    #####: 1195:      if (mask & (1 << i)) {
    #####:    #####: 1196:	 switch (this->type->base_type) {
        -:        -: 1197:	 case GLSL_TYPE_UINT:
    #####:    #####: 1198:	    value.u[i+offset] = src->get_uint_component(id++);
    #####:    #####: 1199:	    break;
        -:        -: 1200:	 case GLSL_TYPE_INT:
    #####:    #####: 1201:	    value.i[i+offset] = src->get_int_component(id++);
    #####:    #####: 1202:	    break;
        -:        -: 1203:	 case GLSL_TYPE_FLOAT:
    #####:    #####: 1204:	    value.f[i+offset] = src->get_float_component(id++);
    #####:    #####: 1205:	    break;
        -:        -: 1206:	 case GLSL_TYPE_BOOL:
    #####:    #####: 1207:	    value.b[i+offset] = src->get_bool_component(id++);
    #####:    #####: 1208:	    break;
        -:        -: 1209:	 case GLSL_TYPE_DOUBLE:
    #####:    #####: 1210:	    value.d[i+offset] = src->get_double_component(id++);
    #####:    #####: 1211:	    break;
        -:        -: 1212:         case GLSL_TYPE_UINT64:
    #####:    #####: 1213:	    value.u64[i+offset] = src->get_uint64_component(id++);
    #####:    #####: 1214:	    break;
        -:        -: 1215:	 case GLSL_TYPE_INT64:
    #####:    #####: 1216:	    value.i64[i+offset] = src->get_int64_component(id++);
    #####:    #####: 1217:	    break;
        -:        -: 1218:	 default:
    #####:    #####: 1219:	    assert(!"Should not get here.");
        -:        -: 1220:	    return;
        -:        -: 1221:	 }
        -:        -: 1222:      }
        -:        -: 1223:   }
    #####:    #####: 1224:}
        -:        -: 1225:
        -:        -: 1226:bool
    #####:    #####: 1227:ir_constant::has_value(const ir_constant *c) const
        -:        -: 1228:{
    #####:    #####: 1229:   if (this->type != c->type)
    #####:    #####: 1230:      return false;
        -:        -: 1231:
    #####:    #####: 1232:   if (this->type->is_array()) {
    #####:    #####: 1233:      for (unsigned i = 0; i < this->type->length; i++) {
    #####:    #####: 1234:	 if (!this->array_elements[i]->has_value(c->array_elements[i]))
    #####:    #####: 1235:	    return false;
        -:        -: 1236:      }
    #####:    #####: 1237:      return true;
        -:        -: 1238:   }
        -:        -: 1239:
    #####:    #####: 1240:   if (this->type->base_type == GLSL_TYPE_STRUCT) {
    #####:    #####: 1241:      const exec_node *a_node = this->components.get_head_raw();
    #####:    #####: 1242:      const exec_node *b_node = c->components.get_head_raw();
        -:        -: 1243:
    #####:    #####: 1244:      while (!a_node->is_tail_sentinel()) {
    #####:    #####: 1245:	 assert(!b_node->is_tail_sentinel());
        -:        -: 1246:
    #####:    #####: 1247:	 const ir_constant *const a_field = (ir_constant *) a_node;
    #####:    #####: 1248:	 const ir_constant *const b_field = (ir_constant *) b_node;
        -:        -: 1249:
    #####:    #####: 1250:	 if (!a_field->has_value(b_field))
    #####:    #####: 1251:	    return false;
        -:        -: 1252:
    #####:    #####: 1253:	 a_node = a_node->next;
    #####:    #####: 1254:	 b_node = b_node->next;
        -:        -: 1255:      }
        -:        -: 1256:
    #####:    #####: 1257:      return true;
        -:        -: 1258:   }
        -:        -: 1259:
    #####:    #####: 1260:   for (unsigned i = 0; i < this->type->components(); i++) {
    #####:    #####: 1261:      switch (this->type->base_type) {
        -:        -: 1262:      case GLSL_TYPE_UINT:
    #####:    #####: 1263:	 if (this->value.u[i] != c->value.u[i])
    #####:    #####: 1264:	    return false;
    #####:    #####: 1265:	 break;
        -:        -: 1266:      case GLSL_TYPE_INT:
    #####:    #####: 1267:	 if (this->value.i[i] != c->value.i[i])
    #####:    #####: 1268:	    return false;
    #####:    #####: 1269:	 break;
        -:        -: 1270:      case GLSL_TYPE_FLOAT:
    #####:    #####: 1271:	 if (this->value.f[i] != c->value.f[i])
    #####:    #####: 1272:	    return false;
    #####:    #####: 1273:	 break;
        -:        -: 1274:      case GLSL_TYPE_BOOL:
    #####:    #####: 1275:	 if (this->value.b[i] != c->value.b[i])
    #####:    #####: 1276:	    return false;
    #####:    #####: 1277:	 break;
        -:        -: 1278:      case GLSL_TYPE_DOUBLE:
    #####:    #####: 1279:	 if (this->value.d[i] != c->value.d[i])
    #####:    #####: 1280:	    return false;
    #####:    #####: 1281:	 break;
        -:        -: 1282:      case GLSL_TYPE_UINT64:
    #####:    #####: 1283:	 if (this->value.u64[i] != c->value.u64[i])
    #####:    #####: 1284:	    return false;
    #####:    #####: 1285:	 break;
        -:        -: 1286:      case GLSL_TYPE_INT64:
    #####:    #####: 1287:	 if (this->value.i64[i] != c->value.i64[i])
    #####:    #####: 1288:	    return false;
    #####:    #####: 1289:	 break;
        -:        -: 1290:      default:
    #####:    #####: 1291:	 assert(!"Should not get here.");
        -:        -: 1292:	 return false;
        -:        -: 1293:      }
        -:        -: 1294:   }
        -:        -: 1295:
    #####:    #####: 1296:   return true;
        -:        -: 1297:}
        -:        -: 1298:
        -:        -: 1299:bool
       24:       24: 1300:ir_constant::is_value(float f, int i) const
        -:        -: 1301:{
       24:       24: 1302:   if (!this->type->is_scalar() && !this->type->is_vector())
    #####:    #####: 1303:      return false;
        -:        -: 1304:
        -:        -: 1305:   /* Only accept boolean values for 0/1. */
       24:       24: 1306:   if (int(bool(i)) != i && this->type->is_boolean())
    #####:    #####: 1307:      return false;
        -:        -: 1308:
       24:       24: 1309:   for (unsigned c = 0; c < this->type->vector_elements; c++) {
       24:       24: 1310:      switch (this->type->base_type) {
        -:        -: 1311:      case GLSL_TYPE_FLOAT:
    #####:    #####: 1312:	 if (this->value.f[c] != f)
    #####:    #####: 1313:	    return false;
    #####:    #####: 1314:	 break;
        -:        -: 1315:      case GLSL_TYPE_INT:
       24:       24: 1316:	 if (this->value.i[c] != i)
       24:       24: 1317:	    return false;
    #####:    #####: 1318:	 break;
        -:        -: 1319:      case GLSL_TYPE_UINT:
    #####:    #####: 1320:	 if (this->value.u[c] != unsigned(i))
    #####:    #####: 1321:	    return false;
    #####:    #####: 1322:	 break;
        -:        -: 1323:      case GLSL_TYPE_BOOL:
    #####:    #####: 1324:	 if (this->value.b[c] != bool(i))
    #####:    #####: 1325:	    return false;
    #####:    #####: 1326:	 break;
        -:        -: 1327:      case GLSL_TYPE_DOUBLE:
    #####:    #####: 1328:	 if (this->value.d[c] != double(f))
    #####:    #####: 1329:	    return false;
    #####:    #####: 1330:	 break;
        -:        -: 1331:      case GLSL_TYPE_UINT64:
    #####:    #####: 1332:	 if (this->value.u64[c] != uint64_t(i))
    #####:    #####: 1333:	    return false;
    #####:    #####: 1334:	 break;
        -:        -: 1335:      case GLSL_TYPE_INT64:
    #####:    #####: 1336:	 if (this->value.i64[c] != i)
    #####:    #####: 1337:	    return false;
    #####:    #####: 1338:	 break;
        -:        -: 1339:      default:
        -:        -: 1340:	 /* The only other base types are structures, arrays, and samplers.
        -:        -: 1341:	  * Samplers cannot be constants, and the others should have been
        -:        -: 1342:	  * filtered out above.
        -:        -: 1343:	  */
    #####:    #####: 1344:	 assert(!"Should not get here.");
        -:        -: 1345:	 return false;
        -:        -: 1346:      }
        -:        -: 1347:   }
        -:        -: 1348:
    #####:    #####: 1349:   return true;
        -:        -: 1350:}
        -:        -: 1351:
        -:        -: 1352:bool
       24:       24: 1353:ir_constant::is_zero() const
        -:        -: 1354:{
       24:       24: 1355:   return is_value(0.0, 0);
        -:        -: 1356:}
        -:        -: 1357:
        -:        -: 1358:bool
    #####:    #####: 1359:ir_constant::is_one() const
        -:        -: 1360:{
    #####:    #####: 1361:   return is_value(1.0, 1);
        -:        -: 1362:}
        -:        -: 1363:
        -:        -: 1364:bool
    #####:    #####: 1365:ir_constant::is_negative_one() const
        -:        -: 1366:{
    #####:    #####: 1367:   return is_value(-1.0, -1);
        -:        -: 1368:}
        -:        -: 1369:
        -:        -: 1370:bool
    #####:    #####: 1371:ir_constant::is_uint16_constant() const
        -:        -: 1372:{
    #####:    #####: 1373:   if (!type->is_integer())
    #####:    #####: 1374:      return false;
        -:        -: 1375:
    #####:    #####: 1376:   return value.u[0] < (1 << 16);
        -:        -: 1377:}
        -:        -: 1378:
       14:       18: 1379:ir_loop::ir_loop()
       14:       18: 1380:   : ir_instruction(ir_type_loop)
        -:        -: 1381:{
       14:       18: 1382:}
        -:        -: 1383:
        -:        -: 1384:
     8964:     8975: 1385:ir_dereference_variable::ir_dereference_variable(ir_variable *var)
     8964:     8975: 1386:   : ir_dereference(ir_type_dereference_variable)
        -:        -: 1387:{
     8964:     8975: 1388:   assert(var != NULL);
        -:        -: 1389:
     8964:     8975: 1390:   this->var = var;
     8964:     8975: 1391:   this->type = var->type;
     8964:     8975: 1392:}
        -:        -: 1393:
        -:        -: 1394:
       38:       38: 1395:ir_dereference_array::ir_dereference_array(ir_rvalue *value,
        -:        -: 1396:					   ir_rvalue *array_index)
       38:       38: 1397:   : ir_dereference(ir_type_dereference_array)
        -:        -: 1398:{
       38:       38: 1399:   this->array_index = array_index;
       38:       38: 1400:   this->set_array(value);
       38:       38: 1401:}
        -:        -: 1402:
        -:        -: 1403:
     1172:     1172: 1404:ir_dereference_array::ir_dereference_array(ir_variable *var,
        -:        -: 1405:					   ir_rvalue *array_index)
     1172:     1172: 1406:   : ir_dereference(ir_type_dereference_array)
        -:        -: 1407:{
     1172:     1172: 1408:   void *ctx = ralloc_parent(var);
        -:        -: 1409:
     1172:     1172: 1410:   this->array_index = array_index;
     1172:     1172: 1411:   this->set_array(new(ctx) ir_dereference_variable(var));
     1172:     1172: 1412:}
        -:        -: 1413:
        -:        -: 1414:
        -:        -: 1415:void
     1210:     1210: 1416:ir_dereference_array::set_array(ir_rvalue *value)
        -:        -: 1417:{
     1210:     1210: 1418:   assert(value != NULL);
        -:        -: 1419:
     1210:     1210: 1420:   this->array = value;
        -:        -: 1421:
     1210:     1210: 1422:   const glsl_type *const vt = this->array->type;
        -:        -: 1423:
     1210:     1210: 1424:   if (vt->is_array()) {
       30:       30: 1425:      type = vt->fields.array;
     1180:     1180: 1426:   } else if (vt->is_matrix()) {
     1172:     1172: 1427:      type = vt->column_type();
        8:        8: 1428:   } else if (vt->is_vector()) {
        8:        8: 1429:      type = vt->get_base_type();
        -:        -: 1430:   }
     1210:     1210: 1431:}
        -:        -: 1432:
        -:        -: 1433:
    #####:    #####: 1434:ir_dereference_record::ir_dereference_record(ir_rvalue *value,
        -:        -: 1435:					     const char *field)
    #####:    #####: 1436:   : ir_dereference(ir_type_dereference_record)
        -:        -: 1437:{
    #####:    #####: 1438:   assert(value != NULL);
        -:        -: 1439:
    #####:    #####: 1440:   this->record = value;
    #####:    #####: 1441:   this->field = ralloc_strdup(this, field);
    #####:    #####: 1442:   this->type = this->record->type->field_type(field);
    #####:    #####: 1443:}
        -:        -: 1444:
        -:        -: 1445:
    #####:    #####: 1446:ir_dereference_record::ir_dereference_record(ir_variable *var,
        -:        -: 1447:					     const char *field)
    #####:    #####: 1448:   : ir_dereference(ir_type_dereference_record)
        -:        -: 1449:{
    #####:    #####: 1450:   void *ctx = ralloc_parent(var);
        -:        -: 1451:
    #####:    #####: 1452:   this->record = new(ctx) ir_dereference_variable(var);
    #####:    #####: 1453:   this->field = ralloc_strdup(this, field);
    #####:    #####: 1454:   this->type = this->record->type->field_type(field);
    #####:    #####: 1455:}
        -:        -: 1456:
        -:        -: 1457:bool
       17:       17: 1458:ir_dereference::is_lvalue() const
        -:        -: 1459:{
       17:       17: 1460:   ir_variable *var = this->variable_referenced();
        -:        -: 1461:
        -:        -: 1462:   /* Every l-value derference chain eventually ends in a variable.
        -:        -: 1463:    */
       17:       17: 1464:   if ((var == NULL) || var->data.read_only)
    #####:    #####: 1465:      return false;
        -:        -: 1466:
        -:        -: 1467:   /* From section 4.1.7 of the GLSL 4.40 spec:
        -:        -: 1468:    *
        -:        -: 1469:    *   "Opaque variables cannot be treated as l-values; hence cannot
        -:        -: 1470:    *    be used as out or inout function parameters, nor can they be
        -:        -: 1471:    *    assigned into."
        -:        -: 1472:    */
       17:       17: 1473:   if (this->type->contains_opaque())
    #####:    #####: 1474:      return false;
        -:        -: 1475:
       17:       17: 1476:   return true;
        -:        -: 1477:}
        -:        -: 1478:
        -:        -: 1479:
        -:        -: 1480:static const char * const tex_opcode_strs[] = { "tex", "txb", "txl", "txd", "txf", "txf_ms", "txs", "lod", "tg4", "query_levels", "texture_samples", "samples_identical" };
        -:        -: 1481:
    #####:    #####: 1482:const char *ir_texture::opcode_string()
        -:        -: 1483:{
    #####:    #####: 1484:   assert((unsigned int) op < ARRAY_SIZE(tex_opcode_strs));
    #####:    #####: 1485:   return tex_opcode_strs[op];
        -:        -: 1486:}
        -:        -: 1487:
        -:        -: 1488:ir_texture_opcode
    #####:    #####: 1489:ir_texture::get_opcode(const char *str)
        -:        -: 1490:{
    #####:    #####: 1491:   const int count = sizeof(tex_opcode_strs) / sizeof(tex_opcode_strs[0]);
    #####:    #####: 1492:   for (int op = 0; op < count; op++) {
    #####:    #####: 1493:      if (strcmp(str, tex_opcode_strs[op]) == 0)
    #####:    #####: 1494:	 return (ir_texture_opcode) op;
        -:        -: 1495:   }
    #####:    #####: 1496:   return (ir_texture_opcode) -1;
        -:        -: 1497:}
        -:        -: 1498:
        -:        -: 1499:
        -:        -: 1500:void
      701:      701: 1501:ir_texture::set_sampler(ir_dereference *sampler, const glsl_type *type)
        -:        -: 1502:{
      701:      701: 1503:   assert(sampler != NULL);
      701:      701: 1504:   assert(type != NULL);
      701:      701: 1505:   this->sampler = sampler;
      701:      701: 1506:   this->type = type;
        -:        -: 1507:
     1335:     1335: 1508:   if (this->op == ir_txs || this->op == ir_query_levels ||
      634:      634: 1509:       this->op == ir_texture_samples) {
       73:       73: 1510:      assert(type->base_type == GLSL_TYPE_INT);
      628:      628: 1511:   } else if (this->op == ir_lod) {
       54:       54: 1512:      assert(type->vector_elements == 2);
       54:       54: 1513:      assert(type->base_type == GLSL_TYPE_FLOAT);
      574:      574: 1514:   } else if (this->op == ir_samples_identical) {
        6:        6: 1515:      assert(type == glsl_type::bool_type);
        6:        6: 1516:      assert(sampler->type->is_sampler());
        6:        6: 1517:      assert(sampler->type->sampler_dimensionality == GLSL_SAMPLER_DIM_MS);
        -:        -: 1518:   } else {
      568:      568: 1519:      assert(sampler->type->sampled_type == (int) type->base_type);
      568:      568: 1520:      if (sampler->type->sampler_shadow)
       94:       94: 1521:	 assert(type->vector_elements == 4 || type->vector_elements == 1);
        -:        -: 1522:      else
      474:      474: 1523:	 assert(type->vector_elements == 4);
        -:        -: 1524:   }
      701:      701: 1525:}
        -:        -: 1526:
        -:        -: 1527:
        -:        -: 1528:void
     1592:     1593: 1529:ir_swizzle::init_mask(const unsigned *comp, unsigned count)
        -:        -: 1530:{
     1592:     1593: 1531:   assert((count >= 1) && (count <= 4));
        -:        -: 1532:
     1592:     1593: 1533:   memset(&this->mask, 0, sizeof(this->mask));
     1592:     1593: 1534:   this->mask.num_components = count;
        -:        -: 1535:
     1592:     1593: 1536:   unsigned dup_mask = 0;
     1592:     1593: 1537:   switch (count) {
        -:        -: 1538:   case 4:
        8:        8: 1539:      assert(comp[3] <= 3);
        8:        8: 1540:      dup_mask |= (1U << comp[3])
        8:        8: 1541:	 & ((1U << comp[0]) | (1U << comp[1]) | (1U << comp[2]));
        8:        8: 1542:      this->mask.w = comp[3];
        -:        -: 1543:
        -:        -: 1544:   case 3:
       61:       61: 1545:      assert(comp[2] <= 3);
       61:       61: 1546:      dup_mask |= (1U << comp[2])
       61:       61: 1547:	 & ((1U << comp[0]) | (1U << comp[1]));
       61:       61: 1548:      this->mask.z = comp[2];
        -:        -: 1549:
        -:        -: 1550:   case 2:
      206:      206: 1551:      assert(comp[1] <= 3);
      206:      206: 1552:      dup_mask |= (1U << comp[1])
      206:      206: 1553:	 & ((1U << comp[0]));
      206:      206: 1554:      this->mask.y = comp[1];
        -:        -: 1555:
        -:        -: 1556:   case 1:
     1592:     1593: 1557:      assert(comp[0] <= 3);
     1592:     1593: 1558:      this->mask.x = comp[0];
        -:        -: 1559:   }
        -:        -: 1560:
     1592:     1593: 1561:   this->mask.has_duplicates = dup_mask != 0;
        -:        -: 1562:
        -:        -: 1563:   /* Based on the number of elements in the swizzle and the base type
        -:        -: 1564:    * (i.e., float, int, unsigned, or bool) of the vector being swizzled,
        -:        -: 1565:    * generate the type of the resulting value.
        -:        -: 1566:    */
     1592:     1593: 1567:   type = glsl_type::get_instance(val->type->base_type, mask.num_components, 1);
     1592:     1593: 1568:}
        -:        -: 1569:
     1342:     1343: 1570:ir_swizzle::ir_swizzle(ir_rvalue *val, unsigned x, unsigned y, unsigned z,
        -:        -: 1571:		       unsigned w, unsigned count)
     1342:     1343: 1572:   : ir_rvalue(ir_type_swizzle), val(val)
        -:        -: 1573:{
     1342:     1343: 1574:   const unsigned components[4] = { x, y, z, w };
     1342:     1343: 1575:   this->init_mask(components, count);
     1342:     1343: 1576:}
        -:        -: 1577:
      250:      250: 1578:ir_swizzle::ir_swizzle(ir_rvalue *val, const unsigned *comp,
        -:        -: 1579:		       unsigned count)
      250:      250: 1580:   : ir_rvalue(ir_type_swizzle), val(val)
        -:        -: 1581:{
      250:      250: 1582:   this->init_mask(comp, count);
      250:      250: 1583:}
        -:        -: 1584:
       22:       25: 1585:ir_swizzle::ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask)
       22:       25: 1586:   : ir_rvalue(ir_type_swizzle)
        -:        -: 1587:{
       22:       25: 1588:   this->val = val;
       22:       25: 1589:   this->mask = mask;
       22:       25: 1590:   this->type = glsl_type::get_instance(val->type->base_type,
       44:       50: 1591:					mask.num_components, 1);
       22:       25: 1592:}
        -:        -: 1593:
        -:        -: 1594:#define X 1
        -:        -: 1595:#define R 5
        -:        -: 1596:#define S 9
        -:        -: 1597:#define I 13
        -:        -: 1598:
        -:        -: 1599:ir_swizzle *
       14:       15: 1600:ir_swizzle::create(ir_rvalue *val, const char *str, unsigned vector_length)
        -:        -: 1601:{
       14:       15: 1602:   void *ctx = ralloc_parent(val);
        -:        -: 1603:
        -:        -: 1604:   /* For each possible swizzle character, this table encodes the value in
        -:        -: 1605:    * \c idx_map that represents the 0th element of the vector.  For invalid
        -:        -: 1606:    * swizzle characters (e.g., 'k'), a special value is used that will allow
        -:        -: 1607:    * detection of errors.
        -:        -: 1608:    */
        -:        -: 1609:   static const unsigned char base_idx[26] = {
        -:        -: 1610:   /* a  b  c  d  e  f  g  h  i  j  k  l  m */
        -:        -: 1611:      R, R, I, I, I, I, R, I, I, I, I, I, I,
        -:        -: 1612:   /* n  o  p  q  r  s  t  u  v  w  x  y  z */
        -:        -: 1613:      I, I, S, S, R, S, S, I, I, X, X, X, X
        -:        -: 1614:   };
        -:        -: 1615:
        -:        -: 1616:   /* Each valid swizzle character has an entry in the previous table.  This
        -:        -: 1617:    * table encodes the base index encoded in the previous table plus the actual
        -:        -: 1618:    * index of the swizzle character.  When processing swizzles, the first
        -:        -: 1619:    * character in the string is indexed in the previous table.  Each character
        -:        -: 1620:    * in the string is indexed in this table, and the value found there has the
        -:        -: 1621:    * value form the first table subtracted.  The result must be on the range
        -:        -: 1622:    * [0,3].
        -:        -: 1623:    *
        -:        -: 1624:    * For example, the string "wzyx" will get X from the first table.  Each of
        -:        -: 1625:    * the charcaters will get X+3, X+2, X+1, and X+0 from this table.  After
        -:        -: 1626:    * subtraction, the swizzle values are { 3, 2, 1, 0 }.
        -:        -: 1627:    *
        -:        -: 1628:    * The string "wzrg" will get X from the first table.  Each of the characters
        -:        -: 1629:    * will get X+3, X+2, R+0, and R+1 from this table.  After subtraction, the
        -:        -: 1630:    * swizzle values are { 3, 2, 4, 5 }.  Since 4 and 5 are outside the range
        -:        -: 1631:    * [0,3], the error is detected.
        -:        -: 1632:    */
        -:        -: 1633:   static const unsigned char idx_map[26] = {
        -:        -: 1634:   /* a    b    c    d    e    f    g    h    i    j    k    l    m */
        -:        -: 1635:      R+3, R+2, 0,   0,   0,   0,   R+1, 0,   0,   0,   0,   0,   0,
        -:        -: 1636:   /* n    o    p    q    r    s    t    u    v    w    x    y    z */
        -:        -: 1637:      0,   0,   S+2, S+3, R+0, S+0, S+1, 0,   0,   X+3, X+0, X+1, X+2
        -:        -: 1638:   };
        -:        -: 1639:
       14:       15: 1640:   int swiz_idx[4] = { 0, 0, 0, 0 };
        -:        -: 1641:   unsigned i;
        -:        -: 1642:
        -:        -: 1643:
        -:        -: 1644:   /* Validate the first character in the swizzle string and look up the base
        -:        -: 1645:    * index value as described above.
        -:        -: 1646:    */
       14:       15: 1647:   if ((str[0] < 'a') || (str[0] > 'z'))
    #####:    #####: 1648:      return NULL;
        -:        -: 1649:
       14:       15: 1650:   const unsigned base = base_idx[str[0] - 'a'];
        -:        -: 1651:
        -:        -: 1652:
       28:       30: 1653:   for (i = 0; (i < 4) && (str[i] != '\0'); i++) {
        -:        -: 1654:      /* Validate the next character, and, as described above, convert it to a
        -:        -: 1655:       * swizzle index.
        -:        -: 1656:       */
       14:       15: 1657:      if ((str[i] < 'a') || (str[i] > 'z'))
    #####:    #####: 1658:	 return NULL;
        -:        -: 1659:
       14:       15: 1660:      swiz_idx[i] = idx_map[str[i] - 'a'] - base;
       14:       15: 1661:      if ((swiz_idx[i] < 0) || (swiz_idx[i] >= (int) vector_length))
    #####:    #####: 1662:	 return NULL;
        -:        -: 1663:   }
        -:        -: 1664:
       14:       15: 1665:   if (str[i] != '\0')
    #####:    #####: 1666:	 return NULL;
        -:        -: 1667:
       42:       45: 1668:   return new(ctx) ir_swizzle(val, swiz_idx[0], swiz_idx[1], swiz_idx[2],
       56:       60: 1669:			      swiz_idx[3], i);
        -:        -: 1670:}
        -:        -: 1671:
        -:        -: 1672:#undef X
        -:        -: 1673:#undef R
        -:        -: 1674:#undef S
        -:        -: 1675:#undef I
        -:        -: 1676:
        -:        -: 1677:ir_variable *
       11:       11: 1678:ir_swizzle::variable_referenced() const
        -:        -: 1679:{
       11:       11: 1680:   return this->val->variable_referenced();
        -:        -: 1681:}
        -:        -: 1682:
        -:        -: 1683:
        -:        -: 1684:bool ir_variable::temporaries_allocate_names = false;
        -:        -: 1685:
        -:        -: 1686:const char ir_variable::tmp_name[] = "compiler_temp";
        -:        -: 1687:
     6810:     6810: 1688:ir_variable::ir_variable(const struct glsl_type *type, const char *name,
        -:        -: 1689:			 ir_variable_mode mode)
     6810:     6810: 1690:   : ir_instruction(ir_type_variable)
        -:        -: 1691:{
     6810:     6810: 1692:   this->type = type;
        -:        -: 1693:
     6810:     6810: 1694:   if (mode == ir_var_temporary && !ir_variable::temporaries_allocate_names)
    #####:    #####: 1695:      name = NULL;
        -:        -: 1696:
        -:        -: 1697:   /* The ir_variable clone method may call this constructor with name set to
        -:        -: 1698:    * tmp_name.
        -:        -: 1699:    */
    #####:    #####: 1700:   assert(name != NULL
        -:        -: 1701:          || mode == ir_var_temporary
        -:        -: 1702:          || mode == ir_var_function_in
        -:        -: 1703:          || mode == ir_var_function_out
     6810:     6810: 1704:          || mode == ir_var_function_inout);
    #####:    #####: 1705:   assert(name != ir_variable::tmp_name
     6810:     6810: 1706:          || mode == ir_var_temporary);
     6810:     6810: 1707:   if (mode == ir_var_temporary
      727:      727: 1708:       && (name == NULL || name == ir_variable::tmp_name)) {
    #####:    #####: 1709:      this->name = ir_variable::tmp_name;
    13620:    13620: 1710:   } else if (name == NULL ||
     6810:     6810: 1711:              strlen(name) < ARRAY_SIZE(this->name_storage)) {
     6585:     6585: 1712:      strcpy(this->name_storage, name ? name : "");
     6585:     6585: 1713:      this->name = this->name_storage;
        -:        -: 1714:   } else {
      225:      225: 1715:      this->name = ralloc_strdup(this, name);
        -:        -: 1716:   }
        -:        -: 1717:
     6810:     6810: 1718:   this->u.max_ifc_array_access = NULL;
        -:        -: 1719:
     6810:     6810: 1720:   this->data.explicit_location = false;
     6810:     6810: 1721:   this->data.has_initializer = false;
     6810:     6810: 1722:   this->data.location = -1;
     6810:     6810: 1723:   this->data.location_frac = 0;
     6810:     6810: 1724:   this->data.binding = 0;
     6810:     6810: 1725:   this->data.warn_extension_index = 0;
     6810:     6810: 1726:   this->constant_value = NULL;
     6810:     6810: 1727:   this->constant_initializer = NULL;
     6810:     6810: 1728:   this->data.origin_upper_left = false;
     6810:     6810: 1729:   this->data.pixel_center_integer = false;
     6810:     6810: 1730:   this->data.depth_layout = ir_depth_layout_none;
     6810:     6810: 1731:   this->data.used = false;
     6810:     6810: 1732:   this->data.always_active_io = false;
     6810:     6810: 1733:   this->data.read_only = false;
     6810:     6810: 1734:   this->data.centroid = false;
     6810:     6810: 1735:   this->data.sample = false;
     6810:     6810: 1736:   this->data.patch = false;
     6810:     6810: 1737:   this->data.invariant = false;
     6810:     6810: 1738:   this->data.how_declared = ir_var_declared_normally;
     6810:     6810: 1739:   this->data.mode = mode;
     6810:     6810: 1740:   this->data.interpolation = INTERP_MODE_NONE;
     6810:     6810: 1741:   this->data.max_array_access = -1;
     6810:     6810: 1742:   this->data.offset = 0;
     6810:     6810: 1743:   this->data.precision = GLSL_PRECISION_NONE;
     6810:     6810: 1744:   this->data.image_read_only = false;
     6810:     6810: 1745:   this->data.image_write_only = false;
     6810:     6810: 1746:   this->data.image_coherent = false;
     6810:     6810: 1747:   this->data.image_volatile = false;
     6810:     6810: 1748:   this->data.image_restrict = false;
     6810:     6810: 1749:   this->data.from_ssbo_unsized_array = false;
     6810:     6810: 1750:   this->data.fb_fetch_output = false;
        -:        -: 1751:
     6810:     6810: 1752:   if (type != NULL) {
     6800:     6800: 1753:      if (type->is_sampler())
      701:      701: 1754:         this->data.read_only = true;
        -:        -: 1755:
     6800:     6800: 1756:      if (type->is_interface())
    #####:    #####: 1757:         this->init_interface_type(type);
     6800:     6800: 1758:      else if (type->without_array()->is_interface())
    #####:    #####: 1759:         this->init_interface_type(type->without_array());
        -:        -: 1760:   }
     6810:     6810: 1761:}
        -:        -: 1762:
        -:        -: 1763:
        -:        -: 1764:const char *
    #####:    #####: 1765:interpolation_string(unsigned interpolation)
        -:        -: 1766:{
    #####:    #####: 1767:   switch (interpolation) {
    #####:    #####: 1768:   case INTERP_MODE_NONE:          return "no";
    #####:    #####: 1769:   case INTERP_MODE_SMOOTH:        return "smooth";
    #####:    #####: 1770:   case INTERP_MODE_FLAT:          return "flat";
    #####:    #####: 1771:   case INTERP_MODE_NOPERSPECTIVE: return "noperspective";
        -:        -: 1772:   }
        -:        -: 1773:
    #####:    #####: 1774:   assert(!"Should not get here.");
        -:        -: 1775:   return "";
        -:        -: 1776:}
        -:        -: 1777:
        -:        -: 1778:const char *const ir_variable::warn_extension_table[] = {
        -:        -: 1779:   "",
        -:        -: 1780:   "GL_ARB_shader_stencil_export",
        -:        -: 1781:   "GL_AMD_shader_stencil_export",
        -:        -: 1782:};
        -:        -: 1783:
        -:        -: 1784:void
    #####:    #####: 1785:ir_variable::enable_extension_warning(const char *extension)
        -:        -: 1786:{
    #####:    #####: 1787:   for (unsigned i = 0; i < ARRAY_SIZE(warn_extension_table); i++) {
    #####:    #####: 1788:      if (strcmp(warn_extension_table[i], extension) == 0) {
    #####:    #####: 1789:         this->data.warn_extension_index = i;
    #####:    #####: 1790:         return;
        -:        -: 1791:      }
        -:        -: 1792:   }
        -:        -: 1793:
    #####:    #####: 1794:   assert(!"Should not get here.");
        -:        -: 1795:   this->data.warn_extension_index = 0;
        -:        -: 1796:}
        -:        -: 1797:
        -:        -: 1798:const char *
    #####:    #####: 1799:ir_variable::get_extension_warning() const
        -:        -: 1800:{
    #####:    #####: 1801:   return this->data.warn_extension_index == 0
    #####:    #####: 1802:      ? NULL : warn_extension_table[this->data.warn_extension_index];
        -:        -: 1803:}
        -:        -: 1804:
     2374:     2374: 1805:ir_function_signature::ir_function_signature(const glsl_type *return_type,
        -:        -: 1806:                                             builtin_available_predicate b)
        -:        -: 1807:   : ir_instruction(ir_type_function_signature),
        -:        -: 1808:     return_type(return_type), is_defined(false),
     2374:     2374: 1809:     intrinsic_id(ir_intrinsic_invalid), builtin_avail(b), _function(NULL)
        -:        -: 1810:{
     2374:     2374: 1811:   this->origin = NULL;
     2374:     2374: 1812:}
        -:        -: 1813:
        -:        -: 1814:
        -:        -: 1815:bool
     4488:     4488: 1816:ir_function_signature::is_builtin() const
        -:        -: 1817:{
     4488:     4488: 1818:   return builtin_avail != NULL;
        -:        -: 1819:}
        -:        -: 1820:
        -:        -: 1821:
        -:        -: 1822:bool
     4108:     4108: 1823:ir_function_signature::is_builtin_available(const _mesa_glsl_parse_state *state) const
        -:        -: 1824:{
        -:        -: 1825:   /* We can't call the predicate without a state pointer, so just say that
        -:        -: 1826:    * the signature is available.  At compile time, we need the filtering,
        -:        -: 1827:    * but also receive a valid state pointer.  At link time, we're resolving
        -:        -: 1828:    * imported built-in prototypes to their definitions, which will always
        -:        -: 1829:    * be an exact match.  So we can skip the filtering.
        -:        -: 1830:    */
     4108:     4108: 1831:   if (state == NULL)
     4098:     4098: 1832:      return true;
        -:        -: 1833:
       10:       10: 1834:   assert(builtin_avail != NULL);
       10:       10: 1835:   return builtin_avail(state);
        -:        -: 1836:}
        -:        -: 1837:
        -:        -: 1838:
        -:        -: 1839:static bool
    #####:    #####: 1840:modes_match(unsigned a, unsigned b)
        -:        -: 1841:{
    #####:    #####: 1842:   if (a == b)
    #####:    #####: 1843:      return true;
        -:        -: 1844:
        -:        -: 1845:   /* Accept "in" vs. "const in" */
    #####:    #####: 1846:   if ((a == ir_var_const_in && b == ir_var_function_in) ||
    #####:    #####: 1847:       (b == ir_var_const_in && a == ir_var_function_in))
    #####:    #####: 1848:      return true;
        -:        -: 1849:
    #####:    #####: 1850:   return false;
        -:        -: 1851:}
        -:        -: 1852:
        -:        -: 1853:
        -:        -: 1854:const char *
    #####:    #####: 1855:ir_function_signature::qualifiers_match(exec_list *params)
        -:        -: 1856:{
        -:        -: 1857:   /* check that the qualifiers match. */
    #####:    #####: 1858:   foreach_two_lists(a_node, &this->parameters, b_node, params) {
    #####:    #####: 1859:      ir_variable *a = (ir_variable *) a_node;
    #####:    #####: 1860:      ir_variable *b = (ir_variable *) b_node;
        -:        -: 1861:
    #####:    #####: 1862:      if (a->data.read_only != b->data.read_only ||
    #####:    #####: 1863:	  !modes_match(a->data.mode, b->data.mode) ||
    #####:    #####: 1864:	  a->data.interpolation != b->data.interpolation ||
    #####:    #####: 1865:	  a->data.centroid != b->data.centroid ||
    #####:    #####: 1866:          a->data.sample != b->data.sample ||
    #####:    #####: 1867:          a->data.patch != b->data.patch ||
    #####:    #####: 1868:          a->data.image_read_only != b->data.image_read_only ||
    #####:    #####: 1869:          a->data.image_write_only != b->data.image_write_only ||
    #####:    #####: 1870:          a->data.image_coherent != b->data.image_coherent ||
    #####:    #####: 1871:          a->data.image_volatile != b->data.image_volatile ||
    #####:    #####: 1872:          a->data.image_restrict != b->data.image_restrict) {
        -:        -: 1873:
        -:        -: 1874:	 /* parameter a's qualifiers don't match */
    #####:    #####: 1875:	 return a->name;
        -:        -: 1876:      }
        -:        -: 1877:   }
    #####:    #####: 1878:   return NULL;
        -:        -: 1879:}
        -:        -: 1880:
        -:        -: 1881:
        -:        -: 1882:void
     2305:     2305: 1883:ir_function_signature::replace_parameters(exec_list *new_params)
        -:        -: 1884:{
        -:        -: 1885:   /* Destroy all of the previous parameter information.  If the previous
        -:        -: 1886:    * parameter information comes from the function prototype, it may either
        -:        -: 1887:    * specify incorrect parameter names or not have names at all.
        -:        -: 1888:    */
     2305:     2305: 1889:   new_params->move_nodes_to(¶meters);
     2305:     2305: 1890:}
        -:        -: 1891:
        -:        -: 1892:
      292:      292: 1893:ir_function::ir_function(const char *name)
      292:      292: 1894:   : ir_instruction(ir_type_function)
        -:        -: 1895:{
      292:      292: 1896:   this->subroutine_index = -1;
      292:      292: 1897:   this->name = ralloc_strdup(this, name);
      292:      292: 1898:}
        -:        -: 1899:
        -:        -: 1900:
        -:        -: 1901:bool
        5:        5: 1902:ir_function::has_user_signature()
        -:        -: 1903:{
        5:        5: 1904:   foreach_in_list(ir_function_signature, sig, &this->signatures) {
        2:        2: 1905:      if (!sig->is_builtin())
        2:        2: 1906:	 return true;
        -:        -: 1907:   }
        3:        3: 1908:   return false;
        -:        -: 1909:}
        -:        -: 1910:
        -:        -: 1911:
        -:        -: 1912:ir_rvalue *
    #####:    #####: 1913:ir_rvalue::error_value(void *mem_ctx)
        -:        -: 1914:{
    #####:    #####: 1915:   ir_rvalue *v = new(mem_ctx) ir_rvalue(ir_type_unset);
        -:        -: 1916:
    #####:    #####: 1917:   v->type = glsl_type::error_type;
    #####:    #####: 1918:   return v;
        -:        -: 1919:}
        -:        -: 1920:
        -:        -: 1921:
        -:        -: 1922:void
       56:       66: 1923:visit_exec_list(exec_list *list, ir_visitor *visitor)
        -:        -: 1924:{
      744:      764: 1925:   foreach_in_list_safe(ir_instruction, node, list) {
      688:      698: 1926:      node->accept(visitor);
        -:        -: 1927:   }
       56:       66: 1928:}
        -:        -: 1929:
        -:        -: 1930:
        -:        -: 1931:static void
     1034:     1084: 1932:steal_memory(ir_instruction *ir, void *new_ctx)
        -:        -: 1933:{
     1034:     1084: 1934:   ir_variable *var = ir->as_variable();
     1034:     1084: 1935:   ir_function *fn = ir->as_function();
     1034:     1084: 1936:   ir_constant *constant = ir->as_constant();
     1034:     1084: 1937:   if (var != NULL && var->constant_value != NULL)
       12:       12: 1938:      steal_memory(var->constant_value, ir);
        -:        -: 1939:
     1034:     1084: 1940:   if (var != NULL && var->constant_initializer != NULL)
       20:       20: 1941:      steal_memory(var->constant_initializer, ir);
        -:        -: 1942:
     1034:     1084: 1943:   if (fn != NULL && fn->subroutine_types)
        6:        6: 1944:      ralloc_steal(new_ctx, fn->subroutine_types);
        -:        -: 1945:
        -:        -: 1946:   /* The components of aggregate constants are not visited by the normal
        -:        -: 1947:    * visitor, so steal their values by hand.
        -:        -: 1948:    */
     1034:     1084: 1949:   if (constant != NULL) {
      137:      142: 1950:      if (constant->type->is_record()) {
    #####:    #####: 1951:	 foreach_in_list(ir_constant, field, &constant->components) {
    #####:    #####: 1952:	    steal_memory(field, ir);
        -:        -: 1953:	 }
      137:      142: 1954:      } else if (constant->type->is_array()) {
    #####:    #####: 1955:	 for (unsigned int i = 0; i < constant->type->length; i++) {
    #####:    #####: 1956:	    steal_memory(constant->array_elements[i], ir);
        -:        -: 1957:	 }
        -:        -: 1958:      }
        -:        -: 1959:   }
        -:        -: 1960:
     1034:     1084: 1961:   ralloc_steal(new_ctx, ir);
     1034:     1084: 1962:}
        -:        -: 1963:
        -:        -: 1964:
        -:        -: 1965:void
        9:        9: 1966:reparent_ir(exec_list *list, void *mem_ctx)
        -:        -: 1967:{
      140:      140: 1968:   foreach_in_list(ir_instruction, node, list) {
      131:      131: 1969:      visit_tree(node, steal_memory, mem_ctx);
        -:        -: 1970:   }
        9:        9: 1971:}
        -:        -: 1972:
        -:        -: 1973:
        -:        -: 1974:static ir_rvalue *
    #####:    #####: 1975:try_min_one(ir_rvalue *ir)
        -:        -: 1976:{
    #####:    #####: 1977:   ir_expression *expr = ir->as_expression();
        -:        -: 1978:
    #####:    #####: 1979:   if (!expr || expr->operation != ir_binop_min)
    #####:    #####: 1980:      return NULL;
        -:        -: 1981:
    #####:    #####: 1982:   if (expr->operands[0]->is_one())
    #####:    #####: 1983:      return expr->operands[1];
        -:        -: 1984:
    #####:    #####: 1985:   if (expr->operands[1]->is_one())
    #####:    #####: 1986:      return expr->operands[0];
        -:        -: 1987:
    #####:    #####: 1988:   return NULL;
        -:        -: 1989:}
        -:        -: 1990:
        -:        -: 1991:static ir_rvalue *
    #####:    #####: 1992:try_max_zero(ir_rvalue *ir)
        -:        -: 1993:{
    #####:    #####: 1994:   ir_expression *expr = ir->as_expression();
        -:        -: 1995:
    #####:    #####: 1996:   if (!expr || expr->operation != ir_binop_max)
    #####:    #####: 1997:      return NULL;
        -:        -: 1998:
    #####:    #####: 1999:   if (expr->operands[0]->is_zero())
    #####:    #####: 2000:      return expr->operands[1];
        -:        -: 2001:
    #####:    #####: 2002:   if (expr->operands[1]->is_zero())
    #####:    #####: 2003:      return expr->operands[0];
        -:        -: 2004:
    #####:    #####: 2005:   return NULL;
        -:        -: 2006:}
        -:        -: 2007:
        -:        -: 2008:ir_rvalue *
    #####:    #####: 2009:ir_rvalue::as_rvalue_to_saturate()
        -:        -: 2010:{
    #####:    #####: 2011:   ir_expression *expr = this->as_expression();
        -:        -: 2012:
    #####:    #####: 2013:   if (!expr)
    #####:    #####: 2014:      return NULL;
        -:        -: 2015:
    #####:    #####: 2016:   ir_rvalue *max_zero = try_max_zero(expr);
    #####:    #####: 2017:   if (max_zero) {
    #####:    #####: 2018:      return try_min_one(max_zero);
        -:        -: 2019:   } else {
    #####:    #####: 2020:      ir_rvalue *min_one = try_min_one(expr);
    #####:    #####: 2021:      if (min_one) {
    #####:    #####: 2022:	 return try_max_zero(min_one);
        -:        -: 2023:      }
        -:        -: 2024:   }
        -:        -: 2025:
    #####:    #####: 2026:   return NULL;
        -:        -: 2027:}
        -:        -: 2028:
        -:        -: 2029:
        -:        -: 2030:unsigned
    #####:    #####: 2031:vertices_per_prim(GLenum prim)
        -:        -: 2032:{
    #####:    #####: 2033:   switch (prim) {
        -:        -: 2034:   case GL_POINTS:
    #####:    #####: 2035:      return 1;
        -:        -: 2036:   case GL_LINES:
    #####:    #####: 2037:      return 2;
        -:        -: 2038:   case GL_TRIANGLES:
    #####:    #####: 2039:      return 3;
        -:        -: 2040:   case GL_LINES_ADJACENCY:
    #####:    #####: 2041:      return 4;
        -:        -: 2042:   case GL_TRIANGLES_ADJACENCY:
    #####:    #####: 2043:      return 6;
        -:        -: 2044:   default:
    #####:    #####: 2045:      assert(!"Bad primitive");
        -:        -: 2046:      return 3;
        -:        -: 2047:   }
        -:        -: 2048:}
        -:        -: 2049:
        -:        -: 2050:/**
        -:        -: 2051: * Generate a string describing the mode of a variable
        -:        -: 2052: */
        -:        -: 2053:const char *
    #####:    #####: 2054:mode_string(const ir_variable *var)
        -:        -: 2055:{
    #####:    #####: 2056:   switch (var->data.mode) {
        -:        -: 2057:   case ir_var_auto:
    #####:    #####: 2058:      return (var->data.read_only) ? "global constant" : "global variable";
        -:        -: 2059:
        -:        -: 2060:   case ir_var_uniform:
    #####:    #####: 2061:      return "uniform";
        -:        -: 2062:
        -:        -: 2063:   case ir_var_shader_storage:
    #####:    #####: 2064:      return "buffer";
        -:        -: 2065:
        -:        -: 2066:   case ir_var_shader_in:
    #####:    #####: 2067:      return "shader input";
        -:        -: 2068:
        -:        -: 2069:   case ir_var_shader_out:
    #####:    #####: 2070:      return "shader output";
        -:        -: 2071:
        -:        -: 2072:   case ir_var_function_in:
        -:        -: 2073:   case ir_var_const_in:
    #####:    #####: 2074:      return "function input";
        -:        -: 2075:
        -:        -: 2076:   case ir_var_function_out:
    #####:    #####: 2077:      return "function output";
        -:        -: 2078:
        -:        -: 2079:   case ir_var_function_inout:
    #####:    #####: 2080:      return "function inout";
        -:        -: 2081:
        -:        -: 2082:   case ir_var_system_value:
    #####:    #####: 2083:      return "shader input";
        -:        -: 2084:
        -:        -: 2085:   case ir_var_temporary:
    #####:    #####: 2086:      return "compiler temporary";
        -:        -: 2087:
        -:        -: 2088:   case ir_var_mode_count:
    #####:    #####: 2089:      break;
        -:        -: 2090:   }
        -:        -: 2091:
    #####:    #####: 2092:   assert(!"Should not get here.");
        -:        -: 2093:   return "invalid variable";
        -:        -: 2094:}

src/compiler/ir_expression_flattening.cpp.gcov

        -:        -:    0:Source:glsl/ir_expression_flattening.cpp
        -:        -:    0:Graph:glsl/.libs/ir_expression_flattening.gcno
        -:        -:    0:Data:glsl/.libs/ir_expression_flattening.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_expression_flattening.cpp
        -:        -:   26: *
        -:        -:   27: * Takes the leaves of expression trees and makes them dereferences of
        -:        -:   28: * assignments of the leaves to temporaries, according to a predicate.
        -:        -:   29: *
        -:        -:   30: * This is used for breaking down matrix operations, where it's easier to
        -:        -:   31: * create a temporary and work on each of its vector components individually.
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:#include "ir.h"
        -:        -:   35:#include "ir_rvalue_visitor.h"
        -:        -:   36:#include "ir_expression_flattening.h"
        -:        -:   37:
        -:        -:   38:class ir_expression_flattening_visitor : public ir_rvalue_visitor {
        -:        -:   39:public:
        7:        7:   40:   ir_expression_flattening_visitor(bool (*predicate)(ir_instruction *ir))
        7:        7:   41:   {
        7:        7:   42:      this->predicate = predicate;
        7:        7:   43:   }
        -:        -:   44:
        7:        7:   45:   virtual ~ir_expression_flattening_visitor()
        7:        7:   46:   {
        -:        -:   47:      /* empty */
        7:        7:   48:   }
        -:        -:   49:
        -:        -:   50:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   51:   bool (*predicate)(ir_instruction *ir);
        -:        -:   52:};
        -:        -:   53:
        -:        -:   54:void
        7:        7:   55:do_expression_flattening(exec_list *instructions,
        -:        -:   56:			 bool (*predicate)(ir_instruction *ir))
        -:        -:   57:{
       14:       14:   58:   ir_expression_flattening_visitor v(predicate);
        -:        -:   59:
       36:       36:   60:   foreach_in_list(ir_instruction, ir, instructions) {
       29:       29:   61:      ir->accept(&v);
        -:        -:   62:   }
        7:        7:   63:}
        -:        -:   64:
        -:        -:   65:void
      981:     1021:   66:ir_expression_flattening_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:   67:{
        -:        -:   68:   ir_variable *var;
        -:        -:   69:   ir_assignment *assign;
      981:     1021:   70:   ir_rvalue *ir = *rvalue;
        -:        -:   71:
      981:     1021:   72:   if (!ir || !this->predicate(ir))
      978:     1018:   73:      return;
        -:        -:   74:
        3:        3:   75:   void *ctx = ralloc_parent(ir);
        -:        -:   76:
        3:        3:   77:   var = new(ctx) ir_variable(ir->type, "flattening_tmp", ir_var_temporary);
        3:        3:   78:   base_ir->insert_before(var);
        -:        -:   79:
        3:        3:   80:   assign = new(ctx) ir_assignment(new(ctx) ir_dereference_variable(var),
        -:        -:   81:				   ir,
        6:        6:   82:				   NULL);
        3:        3:   83:   base_ir->insert_before(assign);
        -:        -:   84:
        3:        3:   85:   *rvalue = new(ctx) ir_dereference_variable(var);
        -:        -:   86:}

src/compiler/ir_function_detect_recursion.cpp.gcov

        -:        -:    0:Source:glsl/ir_function_detect_recursion.cpp
        -:        -:    0:Graph:glsl/.libs/ir_function_detect_recursion.gcno
        -:        -:    0:Data:glsl/.libs/ir_function_detect_recursion.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2011 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_function_detect_recursion.cpp
        -:        -:   26: * Determine whether a shader contains static recursion.
        -:        -:   27: *
        -:        -:   28: * Consider the (possibly disjoint) graph of function calls in a shader.  If a
        -:        -:   29: * program contains recursion, this graph will contain a cycle.  If a function
        -:        -:   30: * is part of a cycle, it will have a caller and it will have a callee (it
        -:        -:   31: * calls another function).
        -:        -:   32: *
        -:        -:   33: * To detect recursion, the function call graph is constructed.  The graph is
        -:        -:   34: * repeatedly reduced by removing any function that either has no callees
        -:        -:   35: * (leaf functions) or has no caller.  Eventually the only functions that
        -:        -:   36: * remain will be the functions in the cycles.
        -:        -:   37: *
        -:        -:   38: * The GLSL spec is a bit wishy-washy about recursion.
        -:        -:   39: *
        -:        -:   40: * From page 39 (page 45 of the PDF) of the GLSL 1.10 spec:
        -:        -:   41: *
        -:        -:   42: *     "Behavior is undefined if recursion is used. Recursion means having any
        -:        -:   43: *     function appearing more than once at any one time in the run-time stack
        -:        -:   44: *     of function calls. That is, a function may not call itself either
        -:        -:   45: *     directly or indirectly. Compilers may give diagnostic messages when
        -:        -:   46: *     this is detectable at compile time, but not all such cases can be
        -:        -:   47: *     detected at compile time."
        -:        -:   48: *
        -:        -:   49: * From page 79 (page 85 of the PDF):
        -:        -:   50: *
        -:        -:   51: *     "22) Should recursion be supported?
        -:        -:   52: *
        -:        -:   53: *      DISCUSSION: Probably not necessary, but another example of limiting
        -:        -:   54: *      the language based on how it would directly map to hardware. One
        -:        -:   55: *      thought is that recursion would benefit ray tracing shaders. On the
        -:        -:   56: *      other hand, many recursion operations can also be implemented with the
        -:        -:   57: *      user managing the recursion through arrays. RenderMan doesn't support
        -:        -:   58: *      recursion. This could be added at a later date, if it proved to be
        -:        -:   59: *      necessary.
        -:        -:   60: *
        -:        -:   61: *      RESOLVED on September 10, 2002: Implementations are not required to
        -:        -:   62: *      support recursion.
        -:        -:   63: *
        -:        -:   64: *      CLOSED on September 10, 2002."
        -:        -:   65: *
        -:        -:   66: * From page 79 (page 85 of the PDF):
        -:        -:   67: *
        -:        -:   68: *     "56) Is it an error for an implementation to support recursion if the
        -:        -:   69: *     specification says recursion is not supported?
        -:        -:   70: *
        -:        -:   71: *     ADDED on September 10, 2002.
        -:        -:   72: *
        -:        -:   73: *     DISCUSSION: This issues is related to Issue (22). If we say that
        -:        -:   74: *     recursion (or some other piece of functionality) is not supported, is
        -:        -:   75: *     it an error for an implementation to support it? Perhaps the
        -:        -:   76: *     specification should remain silent on these kind of things so that they
        -:        -:   77: *     could be gracefully added later as an extension or as part of the
        -:        -:   78: *     standard.
        -:        -:   79: *
        -:        -:   80: *     RESOLUTION: Languages, in general, have programs that are not
        -:        -:   81: *     well-formed in ways a compiler cannot detect. Portability is only
        -:        -:   82: *     ensured for well-formed programs. Detecting recursion is an example of
        -:        -:   83: *     this. The language will say a well-formed program may not recurse, but
        -:        -:   84: *     compilers are not forced to detect that recursion may happen.
        -:        -:   85: *
        -:        -:   86: *     CLOSED: November 29, 2002."
        -:        -:   87: *
        -:        -:   88: * In GLSL 1.10 the behavior of recursion is undefined.  Compilers don't have
        -:        -:   89: * to reject shaders (at compile-time or link-time) that contain recursion.
        -:        -:   90: * Instead they could work, or crash, or kill a kitten.
        -:        -:   91: *
        -:        -:   92: * From page 44 (page 50 of the PDF) of the GLSL 1.20 spec:
        -:        -:   93: *
        -:        -:   94: *     "Recursion is not allowed, not even statically. Static recursion is
        -:        -:   95: *     present if the static function call graph of the program contains
        -:        -:   96: *     cycles."
        -:        -:   97: *
        -:        -:   98: * This langauge clears things up a bit, but it still leaves a lot of
        -:        -:   99: * questions unanswered.
        -:        -:  100: *
        -:        -:  101: *     - Is the error generated at compile-time or link-time?
        -:        -:  102: *
        -:        -:  103: *     - Is it an error to have a recursive function that is never statically
        -:        -:  104: *       called by main or any function called directly or indirectly by main?
        -:        -:  105: *       Technically speaking, such a function is not in the "static function
        -:        -:  106: *       call graph of the program" at all.
        -:        -:  107: *
        -:        -:  108: * \bug
        -:        -:  109: * If a shader has multiple cycles, this algorithm may erroneously complain
        -:        -:  110: * about functions that aren't in any cycle, but are in the part of the call
        -:        -:  111: * tree that connects them.  For example, if the call graph consists of a
        -:        -:  112: * cycle between A and B, and a cycle between D and E, and B also calls C
        -:        -:  113: * which calls D, then this algorithm will report C as a function which "has
        -:        -:  114: * static recursion" even though it is not part of any cycle.
        -:        -:  115: *
        -:        -:  116: * A better algorithm for cycle detection that doesn't have this drawback can
        -:        -:  117: * be found here:
        -:        -:  118: *
        -:        -:  119: * http://en.wikipedia.org/wiki/Tarjan%E2%80%99s_strongly_connected_components_algorithm
        -:        -:  120: *
        -:        -:  121: * \author Ian Romanick <ian.d.romanick@intel.com>
        -:        -:  122: */
        -:        -:  123:#include "main/core.h"
        -:        -:  124:#include "ir.h"
        -:        -:  125:#include "glsl_parser_extras.h"
        -:        -:  126:#include "linker.h"
        -:        -:  127:#include "util/hash_table.h"
        -:        -:  128:#include "program.h"
        -:        -:  129:
        -:        -:  130:namespace {
        -:        -:  131:
        8:        8:  132:struct call_node : public exec_node {
        -:        -:  133:   class function *func;
        -:        -:  134:};
        -:        -:  135:
        -:        -:  136:class function {
        -:        -:  137:public:
        7:        7:  138:   function(ir_function_signature *sig)
        7:        7:  139:      : sig(sig)
        -:        -:  140:   {
        -:        -:  141:      /* empty */
        7:        7:  142:   }
        -:        -:  143:
        7:        7:  144:   DECLARE_RALLOC_CXX_OPERATORS(function)
        -:        -:  145:
        -:        -:  146:   ir_function_signature *sig;
        -:        -:  147:
        -:        -:  148:   /** List of functions called by this function. */
        -:        -:  149:   exec_list callees;
        -:        -:  150:
        -:        -:  151:   /** List of functions that call this function. */
        -:        -:  152:   exec_list callers;
        -:        -:  153:};
        -:        -:  154:
        -:        -:  155:class has_recursion_visitor : public ir_hierarchical_visitor {
        -:        -:  156:public:
        5:        5:  157:   has_recursion_visitor()
        5:        5:  158:      : current(NULL)
        -:        -:  159:   {
        5:        5:  160:      progress = false;
        5:        5:  161:      this->mem_ctx = ralloc_context(NULL);
        5:        5:  162:      this->function_hash = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        5:        5:  163:                                                    _mesa_key_pointer_equal);
        5:        5:  164:   }
        -:        -:  165:
        5:        5:  166:   ~has_recursion_visitor()
       10:       10:  167:   {
        5:        5:  168:      _mesa_hash_table_destroy(this->function_hash, NULL);
        5:        5:  169:      ralloc_free(this->mem_ctx);
        5:        5:  170:   }
        -:        -:  171:
       11:       11:  172:   function *get_function(ir_function_signature *sig)
        -:        -:  173:   {
        -:        -:  174:      function *f;
       11:       11:  175:      hash_entry *entry = _mesa_hash_table_search(this->function_hash, sig);
       11:       11:  176:      if (entry == NULL) {
        7:        7:  177:         f = new(mem_ctx) function(sig);
        7:        7:  178:         _mesa_hash_table_insert(this->function_hash, sig, f);
        -:        -:  179:      } else {
        4:        4:  180:         f = (function *) entry->data;
        -:        -:  181:      }
        -:        -:  182:
       11:       11:  183:      return f;
        -:        -:  184:   }
        -:        -:  185:
        7:        7:  186:   virtual ir_visitor_status visit_enter(ir_function_signature *sig)
        -:        -:  187:   {
        7:        7:  188:      this->current = this->get_function(sig);
        7:        7:  189:      return visit_continue;
        -:        -:  190:   }
        -:        -:  191:
        7:        7:  192:   virtual ir_visitor_status visit_leave(ir_function_signature *sig)
        -:        -:  193:   {
        -:        -:  194:      (void) sig;
        7:        7:  195:      this->current = NULL;
        7:        7:  196:      return visit_continue;
        -:        -:  197:   }
        -:        -:  198:
        4:        4:  199:   virtual ir_visitor_status visit_enter(ir_call *call)
        -:        -:  200:   {
        -:        -:  201:      /* At global scope this->current will be NULL.  Since there is no way to
        -:        -:  202:       * call global scope, it can never be part of a cycle.  Don't bother
        -:        -:  203:       * adding calls from global scope to the graph.
        -:        -:  204:       */
        4:        4:  205:      if (this->current == NULL)
    #####:    #####:  206:	 return visit_continue;
        -:        -:  207:
        4:        4:  208:      function *const target = this->get_function(call->callee);
        -:        -:  209:
        -:        -:  210:      /* Create a link from the caller to the callee.
        -:        -:  211:       */
        4:        4:  212:      call_node *node = new(mem_ctx) call_node;
        4:        4:  213:      node->func = target;
        4:        4:  214:      this->current->callees.push_tail(node);
        -:        -:  215:
        -:        -:  216:      /* Create a link from the callee to the caller.
        -:        -:  217:       */
        4:        4:  218:      node = new(mem_ctx) call_node;
        4:        4:  219:      node->func = this->current;
        4:        4:  220:      target->callers.push_tail(node);
        4:        4:  221:      return visit_continue;
        -:        -:  222:   }
        -:        -:  223:
        -:        -:  224:   function *current;
        -:        -:  225:   struct hash_table *function_hash;
        -:        -:  226:   void *mem_ctx;
        -:        -:  227:   bool progress;
        -:        -:  228:};
        -:        -:  229:
        -:        -:  230:} /* anonymous namespace */
        -:        -:  231:
        -:        -:  232:static void
        4:        4:  233:destroy_links(exec_list *list, function *f)
        -:        -:  234:{
        8:        8:  235:   foreach_in_list_safe(call_node, node, list) {
        -:        -:  236:      /* If this is the right function, remove it.  Note that the loop cannot
        -:        -:  237:       * terminate now.  There can be multiple links to a function if it is
        -:        -:  238:       * either called multiple times or calls multiple times.
        -:        -:  239:       */
        4:        4:  240:      if (node->func == f)
        4:        4:  241:	 node->remove();
        -:        -:  242:   }
        4:        4:  243:}
        -:        -:  244:
        -:        -:  245:
        -:        -:  246:/**
        -:        -:  247: * Remove a function if it has either no in or no out links
        -:        -:  248: */
        -:        -:  249:static void
        7:        7:  250:remove_unlinked_functions(const void *key, void *data, void *closure)
        -:        -:  251:{
        7:        7:  252:   has_recursion_visitor *visitor = (has_recursion_visitor *) closure;
        7:        7:  253:   function *f = (function *) data;
        -:        -:  254:
        7:        7:  255:   if (f->callers.is_empty() || f->callees.is_empty()) {
       15:       11:  256:      while (!f->callers.is_empty()) {
        4:        2:  257:         struct call_node *n = (struct call_node *) f->callers.pop_head();
        4:        2:  258:         destroy_links(& n->func->callees, f);
        -:        -:  259:      }
        -:        -:  260:
    #####:        2:  261:      while (!f->callees.is_empty()) {
    #####:        2:  262:         struct call_node *n = (struct call_node *) f->callees.pop_head();
    #####:        2:  263:         destroy_links(& n->func->callers, f);
        -:        -:  264:      }
        -:        -:  265:
        7:        7:  266:      hash_entry *entry = _mesa_hash_table_search(visitor->function_hash, key);
        7:        7:  267:      _mesa_hash_table_remove(visitor->function_hash, entry);
        7:        7:  268:      visitor->progress = true;
        -:        -:  269:   }
        7:        7:  270:}
        -:        -:  271:
        -:        -:  272:
        -:        -:  273:static void
    #####:    #####:  274:emit_errors_unlinked(const void *key, void *data, void *closure)
        -:        -:  275:{
        -:        -:  276:   struct _mesa_glsl_parse_state *state =
    #####:    #####:  277:      (struct _mesa_glsl_parse_state *) closure;
    #####:    #####:  278:   function *f = (function *) data;
        -:        -:  279:   YYLTYPE loc;
        -:        -:  280:
        -:        -:  281:   (void) key;
        -:        -:  282:
    #####:    #####:  283:   char *proto = prototype_string(f->sig->return_type,
    #####:    #####:  284:				  f->sig->function_name(),
    #####:    #####:  285:				  &f->sig->parameters);
        -:        -:  286:
    #####:    #####:  287:   memset(&loc, 0, sizeof(loc));
        -:        -:  288:   _mesa_glsl_error(&loc, state,
        -:        -:  289:		    "function `%s' has static recursion",
    #####:    #####:  290:		    proto);
    #####:    #####:  291:   ralloc_free(proto);
    #####:    #####:  292:}
        -:        -:  293:
        -:        -:  294:
        -:        -:  295:static void
    #####:    #####:  296:emit_errors_linked(const void *key, void *data, void *closure)
        -:        -:  297:{
        -:        -:  298:   struct gl_shader_program *prog =
    #####:    #####:  299:      (struct gl_shader_program *) closure;
    #####:    #####:  300:   function *f = (function *) data;
        -:        -:  301:
        -:        -:  302:   (void) key;
        -:        -:  303:
    #####:    #####:  304:   char *proto = prototype_string(f->sig->return_type,
    #####:    #####:  305:				  f->sig->function_name(),
    #####:    #####:  306:				  &f->sig->parameters);
        -:        -:  307:
    #####:    #####:  308:   linker_error(prog, "function `%s' has static recursion.\n", proto);
    #####:    #####:  309:   ralloc_free(proto);
    #####:    #####:  310:}
        -:        -:  311:
        -:        -:  312:
        -:        -:  313:void
        2:        2:  314:detect_recursion_unlinked(struct _mesa_glsl_parse_state *state,
        -:        -:  315:			  exec_list *instructions)
        -:        -:  316:{
        4:        4:  317:   has_recursion_visitor v;
        -:        -:  318:
        -:        -:  319:   /* Collect all of the information about which functions call which other
        -:        -:  320:    * functions.
        -:        -:  321:    */
        2:        2:  322:   v.run(instructions);
        -:        -:  323:
        -:        -:  324:   /* Remove from the set all of the functions that either have no caller or
        -:        -:  325:    * call no other functions.  Repeat until no functions are removed.
        -:        -:  326:    */
        2:        2:  327:   do {
        4:        4:  328:      v.progress = false;
        4:        4:  329:      hash_table_call_foreach(v.function_hash, remove_unlinked_functions, & v);
        4:        4:  330:   } while (v.progress);
        -:        -:  331:
        -:        -:  332:
        -:        -:  333:   /* At this point any functions still in the hash must be part of a cycle.
        -:        -:  334:    */
        2:        2:  335:   hash_table_call_foreach(v.function_hash, emit_errors_unlinked, state);
        2:        2:  336:}
        -:        -:  337:
        -:        -:  338:
        -:        -:  339:void
        3:        3:  340:detect_recursion_linked(struct gl_shader_program *prog,
        -:        -:  341:			exec_list *instructions)
        -:        -:  342:{
        6:        6:  343:   has_recursion_visitor v;
        -:        -:  344:
        -:        -:  345:   /* Collect all of the information about which functions call which other
        -:        -:  346:    * functions.
        -:        -:  347:    */
        3:        3:  348:   v.run(instructions);
        -:        -:  349:
        -:        -:  350:   /* Remove from the set all of the functions that either have no caller or
        -:        -:  351:    * call no other functions.  Repeat until no functions are removed.
        -:        -:  352:    */
        3:        3:  353:   do {
        6:        6:  354:      v.progress = false;
        6:        6:  355:      hash_table_call_foreach(v.function_hash, remove_unlinked_functions, & v);
        6:        6:  356:   } while (v.progress);
        -:        -:  357:
        -:        -:  358:
        -:        -:  359:   /* At this point any functions still in the hash must be part of a cycle.
        -:        -:  360:    */
        3:        3:  361:   hash_table_call_foreach(v.function_hash, emit_errors_linked, prog);
        3:        3:  362:}

src/compiler/ir_hierarchical_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_hierarchical_visitor.cpp
        -:        -:    0:Graph:glsl/.libs/ir_hierarchical_visitor.gcno
        -:        -:    0:Data:glsl/.libs/ir_hierarchical_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "ir.h"
        -:        -:   25:#include "ir_hierarchical_visitor.h"
        -:        -:   26:
     3088:     3165:   27:ir_hierarchical_visitor::ir_hierarchical_visitor()
        -:        -:   28:{
     3088:     3165:   29:   this->base_ir = NULL;
     3088:     3165:   30:   this->callback_enter = NULL;
     3088:     3165:   31:   this->callback_leave = NULL;
     3088:     3165:   32:   this->data_enter = NULL;
     3088:     3165:   33:   this->data_leave = NULL;
     3088:     3165:   34:   this->in_assignee = false;
     3088:     3165:   35:}
        -:        -:   36:
        -:        -:   37:ir_visitor_status
    #####:    #####:   38:ir_hierarchical_visitor::visit(ir_rvalue *ir)
        -:        -:   39:{
    #####:    #####:   40:   if (this->callback_enter != NULL)
    #####:    #####:   41:      this->callback_enter(ir, this->data_enter);
        -:        -:   42:
    #####:    #####:   43:   return visit_continue;
        -:        -:   44:}
        -:        -:   45:
        -:        -:   46:ir_visitor_status
    17477:    17477:   47:ir_hierarchical_visitor::visit(ir_variable *ir)
        -:        -:   48:{
    17477:    17477:   49:   if (this->callback_enter != NULL)
      829:      829:   50:      this->callback_enter(ir, this->data_enter);
        -:        -:   51:
    17477:    17477:   52:   return visit_continue;
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:ir_visitor_status
     8774:     9432:   56:ir_hierarchical_visitor::visit(ir_constant *ir)
        -:        -:   57:{
     8774:     9432:   58:   if (this->callback_enter != NULL)
      480:      503:   59:      this->callback_enter(ir, this->data_enter);
        -:        -:   60:
     8774:     9432:   61:   return visit_continue;
        -:        -:   62:}
        -:        -:   63:
        -:        -:   64:ir_visitor_status
     1481:     2762:   65:ir_hierarchical_visitor::visit(ir_loop_jump *ir)
        -:        -:   66:{
     1481:     2762:   67:   if (this->callback_enter != NULL)
       61:      107:   68:      this->callback_enter(ir, this->data_enter);
        -:        -:   69:
     1481:     2762:   70:   return visit_continue;
        -:        -:   71:}
        -:        -:   72:
        -:        -:   73:ir_visitor_status
    21537:    22436:   74:ir_hierarchical_visitor::visit(ir_dereference_variable *ir)
        -:        -:   75:{
    21537:    22436:   76:   if (this->callback_enter != NULL)
     1143:     1174:   77:      this->callback_enter(ir, this->data_enter);
        -:        -:   78:
    21537:    22436:   79:   return visit_continue;
        -:        -:   80:}
        -:        -:   81:
        -:        -:   82:ir_visitor_status
    #####:    #####:   83:ir_hierarchical_visitor::visit(ir_barrier *ir)
        -:        -:   84:{
    #####:    #####:   85:   if (this->callback_enter != NULL)
    #####:    #####:   86:      this->callback_enter(ir, this->data_enter);
        -:        -:   87:
    #####:    #####:   88:   return visit_continue;
        -:        -:   89:}
        -:        -:   90:
        -:        -:   91:ir_visitor_status
      688:     1136:   92:ir_hierarchical_visitor::visit_enter(ir_loop *ir)
        -:        -:   93:{
      688:     1136:   94:   if (this->callback_enter != NULL)
       38:       61:   95:      this->callback_enter(ir, this->data_enter);
        -:        -:   96:
      688:     1136:   97:   return visit_continue;
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:ir_visitor_status
      666:     1100:  101:ir_hierarchical_visitor::visit_leave(ir_loop *ir)
        -:        -:  102:{
      666:     1100:  103:   if (this->callback_leave != NULL)
    #####:    #####:  104:      this->callback_leave(ir, this->data_leave);
        -:        -:  105:
      666:     1100:  106:   return visit_continue;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:ir_visitor_status
      479:      479:  110:ir_hierarchical_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  111:{
      479:      479:  112:   if (this->callback_enter != NULL)
       30:       30:  113:      this->callback_enter(ir, this->data_enter);
        -:        -:  114:
      479:      479:  115:   return visit_continue;
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:ir_visitor_status
      510:      510:  119:ir_hierarchical_visitor::visit_leave(ir_function_signature *ir)
        -:        -:  120:{
      510:      510:  121:   if (this->callback_leave != NULL)
    #####:    #####:  122:      this->callback_leave(ir, this->data_leave);
        -:        -:  123:
      510:      510:  124:   return visit_continue;
        -:        -:  125:}
        -:        -:  126:
        -:        -:  127:ir_visitor_status
      599:      599:  128:ir_hierarchical_visitor::visit_enter(ir_function *ir)
        -:        -:  129:{
      599:      599:  130:   if (this->callback_enter != NULL)
       30:       30:  131:      this->callback_enter(ir, this->data_enter);
        -:        -:  132:
      599:      599:  133:   return visit_continue;
        -:        -:  134:}
        -:        -:  135:
        -:        -:  136:ir_visitor_status
      637:      637:  137:ir_hierarchical_visitor::visit_leave(ir_function *ir)
        -:        -:  138:{
      637:      637:  139:   if (this->callback_leave != NULL)
    #####:    #####:  140:      this->callback_leave(ir, this->data_leave);
        -:        -:  141:
      637:      637:  142:   return visit_continue;
        -:        -:  143:}
        -:        -:  144:
        -:        -:  145:ir_visitor_status
     7329:     8057:  146:ir_hierarchical_visitor::visit_enter(ir_expression *ir)
        -:        -:  147:{
     7329:     8057:  148:   if (this->callback_enter != NULL)
      449:      474:  149:      this->callback_enter(ir, this->data_enter);
        -:        -:  150:
     7329:     8057:  151:   return visit_continue;
        -:        -:  152:}
        -:        -:  153:
        -:        -:  154:ir_visitor_status
     5066:     5564:  155:ir_hierarchical_visitor::visit_leave(ir_expression *ir)
        -:        -:  156:{
     5066:     5564:  157:   if (this->callback_leave != NULL)
    #####:    #####:  158:      this->callback_leave(ir, this->data_leave);
        -:        -:  159:
     5066:     5564:  160:   return visit_continue;
        -:        -:  161:}
        -:        -:  162:
        -:        -:  163:ir_visitor_status
    #####:    #####:  164:ir_hierarchical_visitor::visit_enter(ir_texture *ir)
        -:        -:  165:{
    #####:    #####:  166:   if (this->callback_enter != NULL)
    #####:    #####:  167:      this->callback_enter(ir, this->data_enter);
        -:        -:  168:
    #####:    #####:  169:   return visit_continue;
        -:        -:  170:}
        -:        -:  171:
        -:        -:  172:ir_visitor_status
    #####:    #####:  173:ir_hierarchical_visitor::visit_leave(ir_texture *ir)
        -:        -:  174:{
    #####:    #####:  175:   if (this->callback_leave != NULL)
    #####:    #####:  176:      this->callback_leave(ir, this->data_leave);
        -:        -:  177:
    #####:    #####:  178:   return visit_continue;
        -:        -:  179:}
        -:        -:  180:
        -:        -:  181:ir_visitor_status
     2414:     2997:  182:ir_hierarchical_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  183:{
     2414:     2997:  184:   if (this->callback_enter != NULL)
      203:      226:  185:      this->callback_enter(ir, this->data_enter);
        -:        -:  186:
     2414:     2997:  187:   return visit_continue;
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:ir_visitor_status
     1784:     2213:  191:ir_hierarchical_visitor::visit_leave(ir_swizzle *ir)
        -:        -:  192:{
     1784:     2213:  193:   if (this->callback_leave != NULL)
    #####:    #####:  194:      this->callback_leave(ir, this->data_leave);
        -:        -:  195:
     1784:     2213:  196:   return visit_continue;
        -:        -:  197:}
        -:        -:  198:
        -:        -:  199:ir_visitor_status
     3615:     3615:  200:ir_hierarchical_visitor::visit_enter(ir_dereference_array *ir)
        -:        -:  201:{
     3615:     3615:  202:   if (this->callback_enter != NULL)
      161:      161:  203:      this->callback_enter(ir, this->data_enter);
        -:        -:  204:
     3615:     3615:  205:   return visit_continue;
        -:        -:  206:}
        -:        -:  207:
        -:        -:  208:ir_visitor_status
     2804:     2804:  209:ir_hierarchical_visitor::visit_leave(ir_dereference_array *ir)
        -:        -:  210:{
     2804:     2804:  211:   if (this->callback_leave != NULL)
    #####:    #####:  212:      this->callback_leave(ir, this->data_leave);
        -:        -:  213:
     2804:     2804:  214:   return visit_continue;
        -:        -:  215:}
        -:        -:  216:
        -:        -:  217:ir_visitor_status
    #####:    #####:  218:ir_hierarchical_visitor::visit_enter(ir_dereference_record *ir)
        -:        -:  219:{
    #####:    #####:  220:   if (this->callback_enter != NULL)
    #####:    #####:  221:      this->callback_enter(ir, this->data_enter);
        -:        -:  222:
    #####:    #####:  223:   return visit_continue;
        -:        -:  224:}
        -:        -:  225:
        -:        -:  226:ir_visitor_status
    #####:    #####:  227:ir_hierarchical_visitor::visit_leave(ir_dereference_record *ir)
        -:        -:  228:{
    #####:    #####:  229:   if (this->callback_leave != NULL)
    #####:    #####:  230:      this->callback_leave(ir, this->data_leave);
        -:        -:  231:
    #####:    #####:  232:   return visit_continue;
        -:        -:  233:}
        -:        -:  234:
        -:        -:  235:ir_visitor_status
     9192:     9332:  236:ir_hierarchical_visitor::visit_enter(ir_assignment *ir)
        -:        -:  237:{
     9192:     9332:  238:   if (this->callback_enter != NULL)
      413:      413:  239:      this->callback_enter(ir, this->data_enter);
        -:        -:  240:
     9192:     9332:  241:   return visit_continue;
        -:        -:  242:}
        -:        -:  243:
        -:        -:  244:ir_visitor_status
     5528:     5556:  245:ir_hierarchical_visitor::visit_leave(ir_assignment *ir)
        -:        -:  246:{
     5528:     5556:  247:   if (this->callback_leave != NULL)
    #####:    #####:  248:      this->callback_leave(ir, this->data_leave);
        -:        -:  249:
     5528:     5556:  250:   return visit_continue;
        -:        -:  251:}
        -:        -:  252:
        -:        -:  253:ir_visitor_status
      120:      120:  254:ir_hierarchical_visitor::visit_enter(ir_call *ir)
        -:        -:  255:{
      120:      120:  256:   if (this->callback_enter != NULL)
       10:       10:  257:      this->callback_enter(ir, this->data_enter);
        -:        -:  258:
      120:      120:  259:   return visit_continue;
        -:        -:  260:}
        -:        -:  261:
        -:        -:  262:ir_visitor_status
      129:      129:  263:ir_hierarchical_visitor::visit_leave(ir_call *ir)
        -:        -:  264:{
      129:      129:  265:   if (this->callback_leave != NULL)
    #####:    #####:  266:      this->callback_leave(ir, this->data_leave);
        -:        -:  267:
      129:      129:  268:   return visit_continue;
        -:        -:  269:}
        -:        -:  270:
        -:        -:  271:ir_visitor_status
      117:      122:  272:ir_hierarchical_visitor::visit_enter(ir_return *ir)
        -:        -:  273:{
      117:      122:  274:   if (this->callback_enter != NULL)
       18:       18:  275:      this->callback_enter(ir, this->data_enter);
        -:        -:  276:
      117:      122:  277:   return visit_continue;
        -:        -:  278:}
        -:        -:  279:
        -:        -:  280:ir_visitor_status
      100:      103:  281:ir_hierarchical_visitor::visit_leave(ir_return *ir)
        -:        -:  282:{
      100:      103:  283:   if (this->callback_leave != NULL)
    #####:    #####:  284:      this->callback_leave(ir, this->data_leave);
        -:        -:  285:
      100:      103:  286:   return visit_continue;
        -:        -:  287:}
        -:        -:  288:
        -:        -:  289:ir_visitor_status
    #####:    #####:  290:ir_hierarchical_visitor::visit_enter(ir_discard *ir)
        -:        -:  291:{
    #####:    #####:  292:   if (this->callback_enter != NULL)
    #####:    #####:  293:      this->callback_enter(ir, this->data_enter);
        -:        -:  294:
    #####:    #####:  295:   return visit_continue;
        -:        -:  296:}
        -:        -:  297:
        -:        -:  298:ir_visitor_status
    #####:    #####:  299:ir_hierarchical_visitor::visit_leave(ir_discard *ir)
        -:        -:  300:{
    #####:    #####:  301:   if (this->callback_leave != NULL)
    #####:    #####:  302:      this->callback_leave(ir, this->data_leave);
        -:        -:  303:
    #####:    #####:  304:   return visit_continue;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:ir_visitor_status
     2492:     3378:  308:ir_hierarchical_visitor::visit_enter(ir_if *ir)
        -:        -:  309:{
     2492:     3378:  310:   if (this->callback_enter != NULL)
       87:      118:  311:      this->callback_enter(ir, this->data_enter);
        -:        -:  312:
     2492:     3378:  313:   return visit_continue;
        -:        -:  314:}
        -:        -:  315:
        -:        -:  316:ir_visitor_status
     1754:     2390:  317:ir_hierarchical_visitor::visit_leave(ir_if *ir)
        -:        -:  318:{
     1754:     2390:  319:   if (this->callback_leave != NULL)
    #####:    #####:  320:      this->callback_leave(ir, this->data_leave);
        -:        -:  321:
     1754:     2390:  322:   return visit_continue;
        -:        -:  323:}
        -:        -:  324:
        -:        -:  325:ir_visitor_status
    #####:    #####:  326:ir_hierarchical_visitor::visit_enter(ir_emit_vertex *ir)
        -:        -:  327:{
    #####:    #####:  328:   if (this->callback_enter != NULL)
    #####:    #####:  329:      this->callback_enter(ir, this->data_enter);
        -:        -:  330:
    #####:    #####:  331:   return visit_continue;
        -:        -:  332:}
        -:        -:  333:
        -:        -:  334:ir_visitor_status
    #####:    #####:  335:ir_hierarchical_visitor::visit_leave(ir_emit_vertex *ir)
        -:        -:  336:{
    #####:    #####:  337:   if (this->callback_leave != NULL)
    #####:    #####:  338:      this->callback_leave(ir, this->data_leave);
        -:        -:  339:
    #####:    #####:  340:   return visit_continue;
        -:        -:  341:}
        -:        -:  342:
        -:        -:  343:ir_visitor_status
    #####:    #####:  344:ir_hierarchical_visitor::visit_enter(ir_end_primitive *ir)
        -:        -:  345:{
    #####:    #####:  346:   if (this->callback_enter != NULL)
    #####:    #####:  347:      this->callback_enter(ir, this->data_enter);
        -:        -:  348:
    #####:    #####:  349:   return visit_continue;
        -:        -:  350:}
        -:        -:  351:
        -:        -:  352:ir_visitor_status
    #####:    #####:  353:ir_hierarchical_visitor::visit_leave(ir_end_primitive *ir)
        -:        -:  354:{
    #####:    #####:  355:   if (this->callback_leave != NULL)
    #####:    #####:  356:      this->callback_leave(ir, this->data_leave);
        -:        -:  357:
    #####:    #####:  358:   return visit_continue;
        -:        -:  359:}
        -:        -:  360:
        -:        -:  361:void
      243:      243:  362:ir_hierarchical_visitor::run(exec_list *instructions)
        -:        -:  363:{
      243:      243:  364:   visit_list_elements(this, instructions);
      243:      243:  365:}
        -:        -:  366:
        -:        -:  367:
        -:        -:  368:void
      757:      757:  369:visit_tree(ir_instruction *ir,
        -:        -:  370:	   void (*callback_enter)(class ir_instruction *ir, void *data),
        -:        -:  371:	   void *data_enter,
        -:        -:  372:	   void (*callback_leave)(class ir_instruction *ir, void *data),
        -:        -:  373:           void *data_leave)
        -:        -:  374:{
      757:      757:  375:   ir_hierarchical_visitor v;
        -:        -:  376:
      757:      757:  377:   v.callback_enter = callback_enter;
      757:      757:  378:   v.callback_leave = callback_leave;
      757:      757:  379:   v.data_enter = data_enter;
      757:      757:  380:   v.data_leave = data_leave;
        -:        -:  381:
      757:      757:  382:   ir->accept(&v);
      757:      757:  383:}

src/compiler/ir_hv_accept.cpp.gcov

        -:        -:    0:Source:glsl/ir_hv_accept.cpp
        -:        -:    0:Graph:glsl/.libs/ir_hv_accept.gcno
        -:        -:    0:Data:glsl/.libs/ir_hv_accept.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "ir.h"
        -:        -:   25:
        -:        -:   26:/**
        -:        -:   27: * \file ir_hv_accept.cpp
        -:        -:   28: * Implementations of all hierarchical visitor accept methods for IR
        -:        -:   29: * instructions.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:/**
        -:        -:   33: * Process a list of nodes using a hierarchical vistor.
        -:        -:   34: *
        -:        -:   35: * If statement_list is true (the default), this is a list of statements, so
        -:        -:   36: * v->base_ir will be set to point to each statement just before iterating
        -:        -:   37: * over it, and restored after iteration is complete.  If statement_list is
        -:        -:   38: * false, this is a list that appears inside a statement (e.g. a parameter
        -:        -:   39: * list), so v->base_ir will be left alone.
        -:        -:   40: *
        -:        -:   41: * \warning
        -:        -:   42: * This function will operate correctly if a node being processed is removed
        -:        -:   43: * from the list.  However, if nodes are added to the list after the node being
        -:        -:   44: * processed, some of the added nodes may not be processed.
        -:        -:   45: */
        -:        -:   46:ir_visitor_status
     9732:    12832:   47:visit_list_elements(ir_hierarchical_visitor *v, exec_list *l,
        -:        -:   48:                    bool statement_list)
        -:        -:   49:{
     9732:    12832:   50:   ir_instruction *prev_base_ir = v->base_ir;
        -:        -:   51:
    51037:    57271:   52:   foreach_in_list_safe(ir_instruction, ir, l) {
    41317:    44451:   53:      if (statement_list)
    40338:    43472:   54:         v->base_ir = ir;
    41317:    44451:   55:      ir_visitor_status s = ir->accept(v);
        -:        -:   56:
    41317:    44451:   57:      if (s != visit_continue)
       12:       12:   58:	 return s;
        -:        -:   59:   }
     9720:    12820:   60:   if (statement_list)
     8904:    12004:   61:      v->base_ir = prev_base_ir;
        -:        -:   62:
     9720:    12820:   63:   return visit_continue;
        -:        -:   64:}
        -:        -:   65:
        -:        -:   66:
        -:        -:   67:ir_visitor_status
    #####:    #####:   68:ir_rvalue::accept(ir_hierarchical_visitor *v)
        -:        -:   69:{
    #####:    #####:   70:   return v->visit(this);
        -:        -:   71:}
        -:        -:   72:
        -:        -:   73:
        -:        -:   74:ir_visitor_status
    20991:    20991:   75:ir_variable::accept(ir_hierarchical_visitor *v)
        -:        -:   76:{
    20991:    20991:   77:   return v->visit(this);
        -:        -:   78:}
        -:        -:   79:
        -:        -:   80:
        -:        -:   81:ir_visitor_status
      762:     1286:   82:ir_loop::accept(ir_hierarchical_visitor *v)
        -:        -:   83:{
      762:     1286:   84:   ir_visitor_status s = v->visit_enter(this);
        -:        -:   85:
      762:     1286:   86:   if (s != visit_continue)
       72:      147:   87:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:   88:
      690:     1139:   89:   s = visit_list_elements(v, &this->body_instructions);
      690:     1139:   90:   if (s == visit_stop)
    #####:    #####:   91:      return s;
        -:        -:   92:
      690:     1139:   93:   return v->visit_leave(this);
        -:        -:   94:}
        -:        -:   95:
        -:        -:   96:
        -:        -:   97:ir_visitor_status
     1486:     2770:   98:ir_loop_jump::accept(ir_hierarchical_visitor *v)
        -:        -:   99:{
     1486:     2770:  100:   return v->visit(this);
        -:        -:  101:}
        -:        -:  102:
        -:        -:  103:
        -:        -:  104:ir_visitor_status
      661:      661:  105:ir_function_signature::accept(ir_hierarchical_visitor *v)
        -:        -:  106:{
      661:      661:  107:   ir_visitor_status s = v->visit_enter(this);
      661:      661:  108:   if (s != visit_continue)
      140:      140:  109:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  110:
      521:      521:  111:   s = visit_list_elements(v, &this->parameters);
      521:      521:  112:   if (s == visit_stop)
    #####:    #####:  113:      return s;
        -:        -:  114:
      521:      521:  115:   s = visit_list_elements(v, &this->body);
      521:      521:  116:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  117:}
        -:        -:  118:
        -:        -:  119:
        -:        -:  120:ir_visitor_status
      664:      664:  121:ir_function::accept(ir_hierarchical_visitor *v)
        -:        -:  122:{
      664:      664:  123:   ir_visitor_status s = v->visit_enter(this);
      664:      664:  124:   if (s != visit_continue)
        3:        3:  125:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  126:
      661:      661:  127:   s = visit_list_elements(v, &this->signatures, false);
      661:      661:  128:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  129:}
        -:        -:  130:
        -:        -:  131:
        -:        -:  132:ir_visitor_status
     8168:     8947:  133:ir_expression::accept(ir_hierarchical_visitor *v)
        -:        -:  134:{
     8168:     8947:  135:   ir_visitor_status s = v->visit_enter(this);
        -:        -:  136:
     8168:     8947:  137:   if (s != visit_continue)
      173:      184:  138:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  139:
    22682:    24881:  140:   for (unsigned i = 0; i < this->get_num_operands(); i++) {
    14687:    16118:  141:      switch (this->operands[i]->accept(v)) {
        -:        -:  142:      case visit_continue:
    14687:    16118:  143:	 break;
        -:        -:  144:
        -:        -:  145:      case visit_continue_with_parent:
        -:        -:  146:	 // I wish for Java's labeled break-statement here.
    #####:    #####:  147:	 goto done;
        -:        -:  148:
        -:        -:  149:      case visit_stop:
    #####:    #####:  150:	 return visit_stop;
        -:        -:  151:      }
        -:        -:  152:   }
        -:        -:  153:
        -:        -:  154:done:
     7995:     8763:  155:   return v->visit_leave(this);
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:ir_visitor_status
    #####:    #####:  159:ir_texture::accept(ir_hierarchical_visitor *v)
        -:        -:  160:{
    #####:    #####:  161:   ir_visitor_status s = v->visit_enter(this);
    #####:    #####:  162:   if (s != visit_continue)
    #####:    #####:  163:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  164:
    #####:    #####:  165:   s = this->sampler->accept(v);
    #####:    #####:  166:   if (s != visit_continue)
    #####:    #####:  167:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  168:
    #####:    #####:  169:   if (this->coordinate) {
    #####:    #####:  170:      s = this->coordinate->accept(v);
    #####:    #####:  171:      if (s != visit_continue)
    #####:    #####:  172:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  173:   }
        -:        -:  174:
    #####:    #####:  175:   if (this->projector) {
    #####:    #####:  176:      s = this->projector->accept(v);
    #####:    #####:  177:      if (s != visit_continue)
    #####:    #####:  178:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  179:   }
        -:        -:  180:
    #####:    #####:  181:   if (this->shadow_comparator) {
    #####:    #####:  182:      s = this->shadow_comparator->accept(v);
    #####:    #####:  183:      if (s != visit_continue)
    #####:    #####:  184:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  185:   }
        -:        -:  186:
    #####:    #####:  187:   if (this->offset) {
    #####:    #####:  188:      s = this->offset->accept(v);
    #####:    #####:  189:      if (s != visit_continue)
    #####:    #####:  190:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  191:   }
        -:        -:  192:
    #####:    #####:  193:   switch (this->op) {
        -:        -:  194:   case ir_tex:
        -:        -:  195:   case ir_lod:
        -:        -:  196:   case ir_query_levels:
        -:        -:  197:   case ir_texture_samples:
        -:        -:  198:   case ir_samples_identical:
    #####:    #####:  199:      break;
        -:        -:  200:   case ir_txb:
    #####:    #####:  201:      s = this->lod_info.bias->accept(v);
    #####:    #####:  202:      if (s != visit_continue)
    #####:    #####:  203:	 return (s == visit_continue_with_parent) ? visit_continue : s;
    #####:    #####:  204:      break;
        -:        -:  205:   case ir_txl:
        -:        -:  206:   case ir_txf:
        -:        -:  207:   case ir_txs:
    #####:    #####:  208:      s = this->lod_info.lod->accept(v);
    #####:    #####:  209:      if (s != visit_continue)
    #####:    #####:  210:	 return (s == visit_continue_with_parent) ? visit_continue : s;
    #####:    #####:  211:      break;
        -:        -:  212:   case ir_txf_ms:
    #####:    #####:  213:      s = this->lod_info.sample_index->accept(v);
    #####:    #####:  214:      if (s != visit_continue)
    #####:    #####:  215:         return (s == visit_continue_with_parent) ? visit_continue : s;
    #####:    #####:  216:      break;
        -:        -:  217:   case ir_txd:
    #####:    #####:  218:      s = this->lod_info.grad.dPdx->accept(v);
    #####:    #####:  219:      if (s != visit_continue)
    #####:    #####:  220:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  221:
    #####:    #####:  222:      s = this->lod_info.grad.dPdy->accept(v);
    #####:    #####:  223:      if (s != visit_continue)
    #####:    #####:  224:	 return (s == visit_continue_with_parent) ? visit_continue : s;
    #####:    #####:  225:      break;
        -:        -:  226:   case ir_tg4:
    #####:    #####:  227:      s = this->lod_info.component->accept(v);
    #####:    #####:  228:      if (s != visit_continue)
    #####:    #####:  229:         return (s == visit_continue_with_parent) ? visit_continue : s;
    #####:    #####:  230:      break;
        -:        -:  231:   }
        -:        -:  232:
    #####:    #####:  233:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  234:}
        -:        -:  235:
        -:        -:  236:
        -:        -:  237:ir_visitor_status
     2839:     3479:  238:ir_swizzle::accept(ir_hierarchical_visitor *v)
        -:        -:  239:{
     2839:     3479:  240:   ir_visitor_status s = v->visit_enter(this);
     2839:     3479:  241:   if (s != visit_continue)
       74:       80:  242:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  243:
     2765:     3399:  244:   s = this->val->accept(v);
     2765:     3399:  245:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  246:}
        -:        -:  247:
        -:        -:  248:
        -:        -:  249:ir_visitor_status
    31349:    32880:  250:ir_dereference_variable::accept(ir_hierarchical_visitor *v)
        -:        -:  251:{
    31349:    32880:  252:   return v->visit(this);
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:
        -:        -:  256:ir_visitor_status
     4272:     4272:  257:ir_dereference_array::accept(ir_hierarchical_visitor *v)
        -:        -:  258:{
     4272:     4272:  259:   ir_visitor_status s = v->visit_enter(this);
     4272:     4272:  260:   if (s != visit_continue)
      126:      126:  261:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  262:
        -:        -:  263:   /* The array index is not the target of the assignment, so clear the
        -:        -:  264:    * 'in_assignee' flag.  Restore it after returning from the array index.
        -:        -:  265:    */
     4146:     4146:  266:   const bool was_in_assignee = v->in_assignee;
     4146:     4146:  267:   v->in_assignee = false;
     4146:     4146:  268:   s = this->array_index->accept(v);
     4146:     4146:  269:   v->in_assignee = was_in_assignee;
        -:        -:  270:
     4146:     4146:  271:   if (s != visit_continue)
    #####:    #####:  272:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  273:
     4146:     4146:  274:   s = this->array->accept(v);
     4146:     4146:  275:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  276:}
        -:        -:  277:
        -:        -:  278:
        -:        -:  279:ir_visitor_status
    #####:    #####:  280:ir_dereference_record::accept(ir_hierarchical_visitor *v)
        -:        -:  281:{
    #####:    #####:  282:   ir_visitor_status s = v->visit_enter(this);
    #####:    #####:  283:   if (s != visit_continue)
    #####:    #####:  284:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  285:
    #####:    #####:  286:   s = this->record->accept(v);
    #####:    #####:  287:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  288:}
        -:        -:  289:
        -:        -:  290:
        -:        -:  291:ir_visitor_status
    14592:    14732:  292:ir_assignment::accept(ir_hierarchical_visitor *v)
        -:        -:  293:{
    14592:    14732:  294:   ir_visitor_status s = v->visit_enter(this);
    14592:    14732:  295:   if (s != visit_continue)
     2967:     2967:  296:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  297:
    11625:    11765:  298:   v->in_assignee = true;
    11625:    11765:  299:   s = this->lhs->accept(v);
    11625:    11765:  300:   v->in_assignee = false;
    11625:    11765:  301:   if (s != visit_continue)
        1:        1:  302:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  303:
    11624:    11764:  304:   s = this->rhs->accept(v);
    11624:    11764:  305:   if (s != visit_continue)
        8:        8:  306:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  307:
    11616:    11756:  308:   if (this->condition)
     1057:     1057:  309:      s = this->condition->accept(v);
        -:        -:  310:
    11616:    11756:  311:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  312:}
        -:        -:  313:
        -:        -:  314:
        -:        -:  315:ir_visitor_status
     8774:     9432:  316:ir_constant::accept(ir_hierarchical_visitor *v)
        -:        -:  317:{
     8774:     9432:  318:   return v->visit(this);
        -:        -:  319:}
        -:        -:  320:
        -:        -:  321:
        -:        -:  322:ir_visitor_status
      187:      187:  323:ir_call::accept(ir_hierarchical_visitor *v)
        -:        -:  324:{
      187:      187:  325:   ir_visitor_status s = v->visit_enter(this);
      187:      187:  326:   if (s != visit_continue)
       28:       28:  327:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  328:
      159:      159:  329:   if (this->return_deref != NULL) {
      159:      159:  330:      v->in_assignee = true;
      159:      159:  331:      s = this->return_deref->accept(v);
      159:      159:  332:      v->in_assignee = false;
      159:      159:  333:      if (s != visit_continue)
    #####:    #####:  334:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  335:   }
        -:        -:  336:
      159:      159:  337:   s = visit_list_elements(v, &this->actual_parameters, false);
      159:      159:  338:   if (s == visit_stop)
    #####:    #####:  339:      return s;
        -:        -:  340:
      159:      159:  341:   return v->visit_leave(this);
        -:        -:  342:}
        -:        -:  343:
        -:        -:  344:
        -:        -:  345:ir_visitor_status
      128:      133:  346:ir_return::accept(ir_hierarchical_visitor *v)
        -:        -:  347:{
      128:      133:  348:   ir_visitor_status s = v->visit_enter(this);
      128:      133:  349:   if (s != visit_continue)
        1:        1:  350:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  351:
      127:      132:  352:   ir_rvalue *val = this->get_value();
      127:      132:  353:   if (val) {
      127:      132:  354:      s = val->accept(v);
      127:      132:  355:      if (s != visit_continue)
    #####:    #####:  356:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  357:   }
        -:        -:  358:
      127:      132:  359:   return v->visit_leave(this);
        -:        -:  360:}
        -:        -:  361:
        -:        -:  362:
        -:        -:  363:ir_visitor_status
    #####:    #####:  364:ir_discard::accept(ir_hierarchical_visitor *v)
        -:        -:  365:{
    #####:    #####:  366:   ir_visitor_status s = v->visit_enter(this);
    #####:    #####:  367:   if (s != visit_continue)
    #####:    #####:  368:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  369:
    #####:    #####:  370:   if (this->condition != NULL) {
    #####:    #####:  371:      s = this->condition->accept(v);
    #####:    #####:  372:      if (s != visit_continue)
    #####:    #####:  373:	 return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  374:   }
        -:        -:  375:
    #####:    #####:  376:   return v->visit_leave(this);
        -:        -:  377:}
        -:        -:  378:
        -:        -:  379:
        -:        -:  380:ir_visitor_status
     3204:     4462:  381:ir_if::accept(ir_hierarchical_visitor *v)
        -:        -:  382:{
     3204:     4462:  383:   ir_visitor_status s = v->visit_enter(this);
     3204:     4462:  384:   if (s != visit_continue)
      451:      734:  385:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  386:
     2753:     3728:  387:   s = this->condition->accept(v);
     2753:     3728:  388:   if (s != visit_continue)
    #####:    #####:  389:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  390:
     2753:     3728:  391:   if (s != visit_continue_with_parent) {
     2753:     3728:  392:      s = visit_list_elements(v, &this->then_instructions);
     2753:     3728:  393:      if (s == visit_stop)
    #####:    #####:  394:	 return s;
        -:        -:  395:   }
        -:        -:  396:
     2753:     3728:  397:   if (s != visit_continue_with_parent) {
     2753:     3728:  398:      s = visit_list_elements(v, &this->else_instructions);
     2753:     3728:  399:      if (s == visit_stop)
    #####:    #####:  400:	 return s;
        -:        -:  401:   }
        -:        -:  402:
     2753:     3728:  403:   return v->visit_leave(this);
        -:        -:  404:}
        -:        -:  405:
        -:        -:  406:ir_visitor_status
    #####:    #####:  407:ir_emit_vertex::accept(ir_hierarchical_visitor *v)
        -:        -:  408:{
    #####:    #####:  409:   ir_visitor_status s = v->visit_enter(this);
    #####:    #####:  410:   if (s != visit_continue)
    #####:    #####:  411:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  412:
    #####:    #####:  413:   s = this->stream->accept(v);
    #####:    #####:  414:   if (s != visit_continue)
    #####:    #####:  415:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  416:
    #####:    #####:  417:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  418:}
        -:        -:  419:
        -:        -:  420:
        -:        -:  421:ir_visitor_status
    #####:    #####:  422:ir_end_primitive::accept(ir_hierarchical_visitor *v)
        -:        -:  423:{
    #####:    #####:  424:   ir_visitor_status s = v->visit_enter(this);
    #####:    #####:  425:   if (s != visit_continue)
    #####:    #####:  426:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  427:
    #####:    #####:  428:   s = this->stream->accept(v);
    #####:    #####:  429:   if (s != visit_continue)
    #####:    #####:  430:      return (s == visit_continue_with_parent) ? visit_continue : s;
        -:        -:  431:
    #####:    #####:  432:   return (s == visit_stop) ? s : v->visit_leave(this);
        -:        -:  433:}
        -:        -:  434:
        -:        -:  435:ir_visitor_status
    #####:    #####:  436:ir_barrier::accept(ir_hierarchical_visitor *v)
        -:        -:  437:{
    #####:    #####:  438:   return v->visit(this);
        -:        -:  439:}

src/compiler/ir_rvalue_visitor.cpp.gcov

        -:        -:    0:Source:glsl/ir_rvalue_visitor.cpp
        -:        -:    0:Graph:glsl/.libs/ir_rvalue_visitor.gcno
        -:        -:    0:Data:glsl/.libs/ir_rvalue_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_rvalue_visitor.cpp
        -:        -:   26: *
        -:        -:   27: * Generic class to implement the common pattern we have of wanting to
        -:        -:   28: * visit each ir_rvalue * and possibly change that node to a different
        -:        -:   29: * class.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:#include "ir.h"
        -:        -:   33:#include "ir_visitor.h"
        -:        -:   34:#include "ir_rvalue_visitor.h"
        -:        -:   35:#include "compiler/glsl_types.h"
        -:        -:   36:
        -:        -:   37:ir_visitor_status
     3079:     3359:   38:ir_rvalue_base_visitor::rvalue_visit(ir_expression *ir)
        -:        -:   39:{
        -:        -:   40:   unsigned int operand;
        -:        -:   41:
     8734:     9535:   42:   for (operand = 0; operand < ir->get_num_operands(); operand++) {
     5655:     6176:   43:      handle_rvalue(&ir->operands[operand]);
        -:        -:   44:   }
        -:        -:   45:
     3079:     3359:   46:   return visit_continue;
        -:        -:   47:}
        -:        -:   48:
        -:        -:   49:ir_visitor_status
    #####:    #####:   50:ir_rvalue_base_visitor::rvalue_visit(ir_texture *ir)
        -:        -:   51:{
    #####:    #####:   52:   handle_rvalue(&ir->coordinate);
    #####:    #####:   53:   handle_rvalue(&ir->projector);
    #####:    #####:   54:   handle_rvalue(&ir->shadow_comparator);
    #####:    #####:   55:   handle_rvalue(&ir->offset);
        -:        -:   56:
    #####:    #####:   57:   switch (ir->op) {
        -:        -:   58:   case ir_tex:
        -:        -:   59:   case ir_lod:
        -:        -:   60:   case ir_query_levels:
        -:        -:   61:   case ir_texture_samples:
        -:        -:   62:   case ir_samples_identical:
    #####:    #####:   63:      break;
        -:        -:   64:   case ir_txb:
    #####:    #####:   65:      handle_rvalue(&ir->lod_info.bias);
    #####:    #####:   66:      break;
        -:        -:   67:   case ir_txf:
        -:        -:   68:   case ir_txl:
        -:        -:   69:   case ir_txs:
    #####:    #####:   70:      handle_rvalue(&ir->lod_info.lod);
    #####:    #####:   71:      break;
        -:        -:   72:   case ir_txf_ms:
    #####:    #####:   73:      handle_rvalue(&ir->lod_info.sample_index);
    #####:    #####:   74:      break;
        -:        -:   75:   case ir_txd:
    #####:    #####:   76:      handle_rvalue(&ir->lod_info.grad.dPdx);
    #####:    #####:   77:      handle_rvalue(&ir->lod_info.grad.dPdy);
    #####:    #####:   78:      break;
        -:        -:   79:   case ir_tg4:
    #####:    #####:   80:      handle_rvalue(&ir->lod_info.component);
    #####:    #####:   81:      break;
        -:        -:   82:   }
        -:        -:   83:
    #####:    #####:   84:   return visit_continue;
        -:        -:   85:}
        -:        -:   86:
        -:        -:   87:ir_visitor_status
      965:     1116:   88:ir_rvalue_base_visitor::rvalue_visit(ir_swizzle *ir)
        -:        -:   89:{
      965:     1116:   90:   handle_rvalue(&ir->val);
      965:     1116:   91:   return visit_continue;
        -:        -:   92:}
        -:        -:   93:
        -:        -:   94:ir_visitor_status
     1660:     1660:   95:ir_rvalue_base_visitor::rvalue_visit(ir_dereference_array *ir)
        -:        -:   96:{
        -:        -:   97:   /* The array index is not the target of the assignment, so clear the
        -:        -:   98:    * 'in_assignee' flag.  Restore it after returning from the array index.
        -:        -:   99:    */
     1660:     1660:  100:   const bool was_in_assignee = this->in_assignee;
     1660:     1660:  101:   this->in_assignee = false;
     1660:     1660:  102:   handle_rvalue(&ir->array_index);
     1660:     1660:  103:   this->in_assignee = was_in_assignee;
        -:        -:  104:
     1660:     1660:  105:   handle_rvalue(&ir->array);
     1660:     1660:  106:   return visit_continue;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:ir_visitor_status
    #####:    #####:  110:ir_rvalue_base_visitor::rvalue_visit(ir_dereference_record *ir)
        -:        -:  111:{
    #####:    #####:  112:   handle_rvalue(&ir->record);
    #####:    #####:  113:   return visit_continue;
        -:        -:  114:}
        -:        -:  115:
        -:        -:  116:ir_visitor_status
     2832:     2832:  117:ir_rvalue_base_visitor::rvalue_visit(ir_assignment *ir)
        -:        -:  118:{
     2832:     2832:  119:   handle_rvalue(&ir->rhs);
     2832:     2832:  120:   handle_rvalue(&ir->condition);
        -:        -:  121:
     2832:     2832:  122:   return visit_continue;
        -:        -:  123:}
        -:        -:  124:
        -:        -:  125:ir_visitor_status
       38:       38:  126:ir_rvalue_base_visitor::rvalue_visit(ir_call *ir)
        -:        -:  127:{
      114:      114:  128:   foreach_in_list_safe(ir_rvalue, param, &ir->actual_parameters) {
       76:       76:  129:      ir_rvalue *new_param = param;
       76:       76:  130:      handle_rvalue(&new_param);
        -:        -:  131:
       76:       76:  132:      if (new_param != param) {
    #####:    #####:  133:	 param->replace_with(new_param);
        -:        -:  134:      }
        -:        -:  135:   }
       38:       38:  136:   return visit_continue;
        -:        -:  137:}
        -:        -:  138:
        -:        -:  139:ir_visitor_status
    #####:    #####:  140:ir_rvalue_base_visitor::rvalue_visit(ir_discard *ir)
        -:        -:  141:{
    #####:    #####:  142:   handle_rvalue(&ir->condition);
    #####:    #####:  143:   return visit_continue;
        -:        -:  144:}
        -:        -:  145:
        -:        -:  146:ir_visitor_status
       35:       37:  147:ir_rvalue_base_visitor::rvalue_visit(ir_return *ir)
        -:        -:  148:{
       35:       37:  149:   handle_rvalue(&ir->value);
       35:       37:  150:   return visit_continue;
        -:        -:  151:}
        -:        -:  152:
        -:        -:  153:ir_visitor_status
      831:     1113:  154:ir_rvalue_base_visitor::rvalue_visit(ir_if *ir)
        -:        -:  155:{
      831:     1113:  156:   handle_rvalue(&ir->condition);
      831:     1113:  157:   return visit_continue;
        -:        -:  158:}
        -:        -:  159:
        -:        -:  160:ir_visitor_status
    #####:    #####:  161:ir_rvalue_base_visitor::rvalue_visit(ir_emit_vertex *ir)
        -:        -:  162:{
    #####:    #####:  163:   handle_rvalue(&ir->stream);
    #####:    #####:  164:   return visit_continue;
        -:        -:  165:}
        -:        -:  166:
        -:        -:  167:ir_visitor_status
    #####:    #####:  168:ir_rvalue_base_visitor::rvalue_visit(ir_end_primitive *ir)
        -:        -:  169:{
    #####:    #####:  170:   handle_rvalue(&ir->stream);
    #####:    #####:  171:   return visit_continue;
        -:        -:  172:}
        -:        -:  173:
        -:        -:  174:ir_visitor_status
     2497:     2741:  175:ir_rvalue_visitor::visit_leave(ir_expression *ir)
        -:        -:  176:{
     2497:     2741:  177:   return rvalue_visit(ir);
        -:        -:  178:}
        -:        -:  179:
        -:        -:  180:ir_visitor_status
    #####:    #####:  181:ir_rvalue_visitor::visit_leave(ir_texture *ir)
        -:        -:  182:{
    #####:    #####:  183:   return rvalue_visit(ir);
        -:        -:  184:}
        -:        -:  185:
        -:        -:  186:ir_visitor_status
      781:      898:  187:ir_rvalue_visitor::visit_leave(ir_swizzle *ir)
        -:        -:  188:{
      781:      898:  189:   return rvalue_visit(ir);
        -:        -:  190:}
        -:        -:  191:
        -:        -:  192:ir_visitor_status
     1326:     1326:  193:ir_rvalue_visitor::visit_leave(ir_dereference_array *ir)
        -:        -:  194:{
     1326:     1326:  195:   return rvalue_visit(ir);
        -:        -:  196:}
        -:        -:  197:
        -:        -:  198:ir_visitor_status
    #####:    #####:  199:ir_rvalue_visitor::visit_leave(ir_dereference_record *ir)
        -:        -:  200:{
    #####:    #####:  201:   return rvalue_visit(ir);
        -:        -:  202:}
        -:        -:  203:
        -:        -:  204:ir_visitor_status
     2309:     2309:  205:ir_rvalue_visitor::visit_leave(ir_assignment *ir)
        -:        -:  206:{
     2309:     2309:  207:   return rvalue_visit(ir);
        -:        -:  208:}
        -:        -:  209:
        -:        -:  210:ir_visitor_status
       26:       26:  211:ir_rvalue_visitor::visit_leave(ir_call *ir)
        -:        -:  212:{
       26:       26:  213:   return rvalue_visit(ir);
        -:        -:  214:}
        -:        -:  215:
        -:        -:  216:ir_visitor_status
    #####:    #####:  217:ir_rvalue_visitor::visit_leave(ir_discard *ir)
        -:        -:  218:{
    #####:    #####:  219:   return rvalue_visit(ir);
        -:        -:  220:}
        -:        -:  221:
        -:        -:  222:ir_visitor_status
       27:       29:  223:ir_rvalue_visitor::visit_leave(ir_return *ir)
        -:        -:  224:{
       27:       29:  225:   return rvalue_visit(ir);
        -:        -:  226:}
        -:        -:  227:
        -:        -:  228:ir_visitor_status
      627:      839:  229:ir_rvalue_visitor::visit_leave(ir_if *ir)
        -:        -:  230:{
      627:      839:  231:   return rvalue_visit(ir);
        -:        -:  232:}
        -:        -:  233:
        -:        -:  234:ir_visitor_status
    #####:    #####:  235:ir_rvalue_visitor::visit_leave(ir_emit_vertex *ir)
        -:        -:  236:{
    #####:    #####:  237:   return rvalue_visit(ir);
        -:        -:  238:}
        -:        -:  239:
        -:        -:  240:ir_visitor_status
    #####:    #####:  241:ir_rvalue_visitor::visit_leave(ir_end_primitive *ir)
        -:        -:  242:{
    #####:    #####:  243:   return rvalue_visit(ir);
        -:        -:  244:}
        -:        -:  245:
        -:        -:  246:ir_visitor_status
      556:      590:  247:ir_rvalue_enter_visitor::visit_enter(ir_expression *ir)
        -:        -:  248:{
      556:      590:  249:   return rvalue_visit(ir);
        -:        -:  250:}
        -:        -:  251:
        -:        -:  252:ir_visitor_status
    #####:    #####:  253:ir_rvalue_enter_visitor::visit_enter(ir_texture *ir)
        -:        -:  254:{
    #####:    #####:  255:   return rvalue_visit(ir);
        -:        -:  256:}
        -:        -:  257:
        -:        -:  258:ir_visitor_status
      184:      218:  259:ir_rvalue_enter_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  260:{
      184:      218:  261:   return rvalue_visit(ir);
        -:        -:  262:}
        -:        -:  263:
        -:        -:  264:ir_visitor_status
      334:      334:  265:ir_rvalue_enter_visitor::visit_enter(ir_dereference_array *ir)
        -:        -:  266:{
      334:      334:  267:   return rvalue_visit(ir);
        -:        -:  268:}
        -:        -:  269:
        -:        -:  270:ir_visitor_status
    #####:    #####:  271:ir_rvalue_enter_visitor::visit_enter(ir_dereference_record *ir)
        -:        -:  272:{
    #####:    #####:  273:   return rvalue_visit(ir);
        -:        -:  274:}
        -:        -:  275:
        -:        -:  276:ir_visitor_status
      449:      449:  277:ir_rvalue_enter_visitor::visit_enter(ir_assignment *ir)
        -:        -:  278:{
      449:      449:  279:   return rvalue_visit(ir);
        -:        -:  280:}
        -:        -:  281:
        -:        -:  282:ir_visitor_status
       12:       12:  283:ir_rvalue_enter_visitor::visit_enter(ir_call *ir)
        -:        -:  284:{
       12:       12:  285:   return rvalue_visit(ir);
        -:        -:  286:}
        -:        -:  287:
        -:        -:  288:ir_visitor_status
    #####:    #####:  289:ir_rvalue_enter_visitor::visit_enter(ir_discard *ir)
        -:        -:  290:{
    #####:    #####:  291:   return rvalue_visit(ir);
        -:        -:  292:}
        -:        -:  293:
        -:        -:  294:ir_visitor_status
        8:        8:  295:ir_rvalue_enter_visitor::visit_enter(ir_return *ir)
        -:        -:  296:{
        8:        8:  297:   return rvalue_visit(ir);
        -:        -:  298:}
        -:        -:  299:
        -:        -:  300:ir_visitor_status
      204:      274:  301:ir_rvalue_enter_visitor::visit_enter(ir_if *ir)
        -:        -:  302:{
      204:      274:  303:   return rvalue_visit(ir);
        -:        -:  304:}
        -:        -:  305:
        -:        -:  306:ir_visitor_status
    #####:    #####:  307:ir_rvalue_enter_visitor::visit_enter(ir_emit_vertex *ir)
        -:        -:  308:{
    #####:    #####:  309:   return rvalue_visit(ir);
        -:        -:  310:}
        -:        -:  311:
        -:        -:  312:ir_visitor_status
    #####:    #####:  313:ir_rvalue_enter_visitor::visit_enter(ir_end_primitive *ir)
        -:        -:  314:{
    #####:    #####:  315:   return rvalue_visit(ir);
        -:        -:  316:}

src/compiler/ir_validate.cpp.gcov

        -:        -:    0:Source:glsl/ir_validate.cpp
        -:        -:    0:Graph:glsl/.libs/ir_validate.gcno
        -:        -:    0:Data:glsl/.libs/ir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_validate.cpp
        -:        -:   26: *
        -:        -:   27: * Attempts to verify that various invariants of the IR tree are true.
        -:        -:   28: *
        -:        -:   29: * In particular, at the moment it makes sure that no single
        -:        -:   30: * ir_instruction node except for ir_variable appears multiple times
        -:        -:   31: * in the ir tree.  ir_variable does appear multiple times: Once as a
        -:        -:   32: * declaration in an exec_list, and multiple times as the endpoint of
        -:        -:   33: * a dereference chain.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include "ir.h"
        -:        -:   37:#include "ir_hierarchical_visitor.h"
        -:        -:   38:#include "util/hash_table.h"
        -:        -:   39:#include "util/set.h"
        -:        -:   40:#include "compiler/glsl_types.h"
        -:        -:   41:
        -:        -:   42:namespace {
        -:        -:   43:
        -:        -:   44:class ir_validate : public ir_hierarchical_visitor {
        -:        -:   45:public:
       16:       16:   46:   ir_validate()
       16:       16:   47:   {
       16:       16:   48:      this->ir_set = _mesa_set_create(NULL, _mesa_hash_pointer,
       16:       16:   49:                                      _mesa_key_pointer_equal);
        -:        -:   50:
       16:       16:   51:      this->current_function = NULL;
        -:        -:   52:
       16:       16:   53:      this->callback_enter = ir_validate::validate_ir;
       16:       16:   54:      this->data_enter = ir_set;
       16:       16:   55:   }
        -:        -:   56:
       16:       16:   57:   ~ir_validate()
       32:       32:   58:   {
       16:       16:   59:      _mesa_set_destroy(this->ir_set, NULL);
       16:       16:   60:   }
        -:        -:   61:
        -:        -:   62:   virtual ir_visitor_status visit(ir_variable *v);
        -:        -:   63:   virtual ir_visitor_status visit(ir_dereference_variable *ir);
        -:        -:   64:
        -:        -:   65:   virtual ir_visitor_status visit_enter(ir_discard *ir);
        -:        -:   66:   virtual ir_visitor_status visit_enter(ir_if *ir);
        -:        -:   67:
        -:        -:   68:   virtual ir_visitor_status visit_enter(ir_function *ir);
        -:        -:   69:   virtual ir_visitor_status visit_leave(ir_function *ir);
        -:        -:   70:   virtual ir_visitor_status visit_enter(ir_function_signature *ir);
        -:        -:   71:
        -:        -:   72:   virtual ir_visitor_status visit_leave(ir_expression *ir);
        -:        -:   73:   virtual ir_visitor_status visit_leave(ir_swizzle *ir);
        -:        -:   74:
        -:        -:   75:   virtual ir_visitor_status visit_enter(class ir_dereference_array *);
        -:        -:   76:
        -:        -:   77:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   78:   virtual ir_visitor_status visit_enter(ir_call *ir);
        -:        -:   79:
        -:        -:   80:   static void validate_ir(ir_instruction *ir, void *data);
        -:        -:   81:
        -:        -:   82:   ir_function *current_function;
        -:        -:   83:
        -:        -:   84:   struct set *ir_set;
        -:        -:   85:};
        -:        -:   86:
        -:        -:   87:} /* anonymous namespace */
        -:        -:   88:
        -:        -:   89:ir_visitor_status
      633:      648:   90:ir_validate::visit(ir_dereference_variable *ir)
        -:        -:   91:{
      633:      648:   92:   if ((ir->var == NULL) || (ir->var->as_variable() == NULL)) {
        -:        -:   93:      printf("ir_dereference_variable @ %p does not specify a variable %p\n",
    #####:    #####:   94:	     (void *) ir, (void *) ir->var);
    #####:    #####:   95:      abort();
        -:        -:   96:   }
        -:        -:   97:
      633:      648:   98:   if (_mesa_set_search(ir_set, ir->var) == NULL) {
    #####:    #####:   99:      printf("ir_dereference_variable @ %p specifies undeclared variable "
        -:        -:  100:	     "`%s' @ %p\n",
    #####:    #####:  101:	     (void *) ir, ir->var->name, (void *) ir->var);
    #####:    #####:  102:      abort();
        -:        -:  103:   }
        -:        -:  104:
      633:      648:  105:   this->validate_ir(ir, this->data_enter);
        -:        -:  106:
      633:      648:  107:   return visit_continue;
        -:        -:  108:}
        -:        -:  109:
        -:        -:  110:ir_visitor_status
       94:       94:  111:ir_validate::visit_enter(class ir_dereference_array *ir)
        -:        -:  112:{
      110:      110:  113:   if (!ir->array->type->is_array() && !ir->array->type->is_matrix() &&
       16:       16:  114:      !ir->array->type->is_vector()) {
        -:        -:  115:      printf("ir_dereference_array @ %p does not specify an array, a vector "
        -:        -:  116:             "or a matrix\n",
    #####:    #####:  117:             (void *) ir);
    #####:    #####:  118:      ir->print();
    #####:    #####:  119:      printf("\n");
    #####:    #####:  120:      abort();
        -:        -:  121:   }
        -:        -:  122:
       94:       94:  123:   if (!ir->array_index->type->is_scalar()) {
        -:        -:  124:      printf("ir_dereference_array @ %p does not have scalar index: %s\n",
    #####:    #####:  125:             (void *) ir, ir->array_index->type->name);
    #####:    #####:  126:      abort();
        -:        -:  127:   }
        -:        -:  128:
       94:       94:  129:   if (!ir->array_index->type->is_integer()) {
        -:        -:  130:      printf("ir_dereference_array @ %p does not have integer index: %s\n",
    #####:    #####:  131:             (void *) ir, ir->array_index->type->name);
    #####:    #####:  132:      abort();
        -:        -:  133:   }
        -:        -:  134:
       94:       94:  135:   return visit_continue;
        -:        -:  136:}
        -:        -:  137:
        -:        -:  138:ir_visitor_status
    #####:    #####:  139:ir_validate::visit_enter(ir_discard *ir)
        -:        -:  140:{
    #####:    #####:  141:   if (ir->condition && ir->condition->type != glsl_type::bool_type) {
        -:        -:  142:      printf("ir_discard condition %s type instead of bool.\n",
    #####:    #####:  143:	     ir->condition->type->name);
    #####:    #####:  144:      ir->print();
    #####:    #####:  145:      printf("\n");
    #####:    #####:  146:      abort();
        -:        -:  147:   }
        -:        -:  148:
    #####:    #####:  149:   return visit_continue;
        -:        -:  150:}
        -:        -:  151:
        -:        -:  152:ir_visitor_status
       47:       62:  153:ir_validate::visit_enter(ir_if *ir)
        -:        -:  154:{
       47:       62:  155:   if (ir->condition->type != glsl_type::bool_type) {
        -:        -:  156:      printf("ir_if condition %s type instead of bool.\n",
    #####:    #####:  157:	     ir->condition->type->name);
    #####:    #####:  158:      ir->print();
    #####:    #####:  159:      printf("\n");
    #####:    #####:  160:      abort();
        -:        -:  161:   }
        -:        -:  162:
       47:       62:  163:   return visit_continue;
        -:        -:  164:}
        -:        -:  165:
        -:        -:  166:
        -:        -:  167:ir_visitor_status
       20:       20:  168:ir_validate::visit_enter(ir_function *ir)
        -:        -:  169:{
        -:        -:  170:   /* Function definitions cannot be nested.
        -:        -:  171:    */
       20:       20:  172:   if (this->current_function != NULL) {
        -:        -:  173:      printf("Function definition nested inside another function "
    #####:    #####:  174:	     "definition:\n");
    #####:    #####:  175:      printf("%s %p inside %s %p\n",
        -:        -:  176:	     ir->name, (void *) ir,
    #####:    #####:  177:	     this->current_function->name, (void *) this->current_function);
    #####:    #####:  178:      abort();
        -:        -:  179:   }
        -:        -:  180:
        -:        -:  181:   /* Store the current function hierarchy being traversed.  This is used
        -:        -:  182:    * by the function signature visitor to ensure that the signatures are
        -:        -:  183:    * linked with the correct functions.
        -:        -:  184:    */
       20:       20:  185:   this->current_function = ir;
        -:        -:  186:
       20:       20:  187:   this->validate_ir(ir, this->data_enter);
        -:        -:  188:
        -:        -:  189:   /* Verify that all of the things stored in the list of signatures are,
        -:        -:  190:    * in fact, function signatures.
        -:        -:  191:    */
       40:       40:  192:   foreach_in_list(ir_instruction, sig, &ir->signatures) {
       20:       20:  193:      if (sig->ir_type != ir_type_function_signature) {
    #####:    #####:  194:	 printf("Non-signature in signature list of function `%s'\n",
    #####:    #####:  195:		ir->name);
    #####:    #####:  196:	 abort();
        -:        -:  197:      }
        -:        -:  198:   }
        -:        -:  199:
       20:       20:  200:   return visit_continue;
        -:        -:  201:}
        -:        -:  202:
        -:        -:  203:ir_visitor_status
       20:       20:  204:ir_validate::visit_leave(ir_function *ir)
        -:        -:  205:{
       20:       20:  206:   assert(ralloc_parent(ir->name) == ir);
        -:        -:  207:
       20:       20:  208:   this->current_function = NULL;
       20:       20:  209:   return visit_continue;
        -:        -:  210:}
        -:        -:  211:
        -:        -:  212:ir_visitor_status
       20:       20:  213:ir_validate::visit_enter(ir_function_signature *ir)
        -:        -:  214:{
       20:       20:  215:   if (this->current_function != ir->function()) {
        -:        -:  216:      printf("Function signature nested inside wrong function "
    #####:    #####:  217:	     "definition:\n");
    #####:    #####:  218:      printf("%p inside %s %p instead of %s %p\n",
        -:        -:  219:	     (void *) ir,
    #####:    #####:  220:	     this->current_function->name, (void *) this->current_function,
    #####:    #####:  221:	     ir->function_name(), (void *) ir->function());
    #####:    #####:  222:      abort();
        -:        -:  223:   }
        -:        -:  224:
       20:       20:  225:   if (ir->return_type == NULL) {
    #####:    #####:  226:      printf("Function signature %p for function %s has NULL return type.\n",
    #####:    #####:  227:	     (void *) ir, ir->function_name());
    #####:    #####:  228:      abort();
        -:        -:  229:   }
        -:        -:  230:
       20:       20:  231:   this->validate_ir(ir, this->data_enter);
        -:        -:  232:
       20:       20:  233:   return visit_continue;
        -:        -:  234:}
        -:        -:  235:
        -:        -:  236:ir_visitor_status
      147:      156:  237:ir_validate::visit_leave(ir_expression *ir)
        -:        -:  238:{
      147:      156:  239:   switch (ir->operation) {
        -:        -:  240:   case ir_unop_bit_not:
    #####:    #####:  241:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  242:      break;
        -:        -:  243:   case ir_unop_logic_not:
        2:        3:  244:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
        2:        3:  245:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
        2:        3:  246:      break;
        -:        -:  247:
        -:        -:  248:   case ir_unop_neg:
    #####:    #####:  249:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  250:      break;
        -:        -:  251:
        -:        -:  252:   case ir_unop_abs:
        -:        -:  253:   case ir_unop_sign:
    #####:    #####:  254:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT ||
        -:        -:  255:             ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
        -:        -:  256:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE ||
    #####:    #####:  257:             ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  258:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  259:      break;
        -:        -:  260:
        -:        -:  261:   case ir_unop_rcp:
        -:        -:  262:   case ir_unop_rsq:
        -:        -:  263:   case ir_unop_sqrt:
        1:        1:  264:      assert(ir->type->base_type == GLSL_TYPE_FLOAT ||
        1:        1:  265:             ir->type->base_type == GLSL_TYPE_DOUBLE);
        1:        1:  266:      assert(ir->type == ir->operands[0]->type);
        1:        1:  267:      break;
        -:        -:  268:
        -:        -:  269:   case ir_unop_exp:
        -:        -:  270:   case ir_unop_log:
        -:        -:  271:   case ir_unop_exp2:
        -:        -:  272:   case ir_unop_log2:
        -:        -:  273:   case ir_unop_saturate:
    #####:    #####:  274:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  275:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  276:      break;
        -:        -:  277:
        -:        -:  278:   case ir_unop_f2i:
    #####:    #####:  279:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  280:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  281:      break;
        -:        -:  282:   case ir_unop_f2u:
    #####:    #####:  283:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  284:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  285:      break;
        -:        -:  286:   case ir_unop_i2f:
       16:       16:  287:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
       16:       16:  288:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
       16:       16:  289:      break;
        -:        -:  290:   case ir_unop_f2b:
    #####:    #####:  291:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  292:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  293:      break;
        -:        -:  294:   case ir_unop_b2f:
    #####:    #####:  295:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  296:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  297:      break;
        -:        -:  298:   case ir_unop_i2b:
    #####:    #####:  299:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  300:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  301:      break;
        -:        -:  302:   case ir_unop_b2i:
    #####:    #####:  303:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  304:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  305:      break;
        -:        -:  306:   case ir_unop_u2f:
    #####:    #####:  307:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  308:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  309:      break;
        -:        -:  310:   case ir_unop_i2u:
    #####:    #####:  311:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  312:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  313:      break;
        -:        -:  314:   case ir_unop_u2i:
    #####:    #####:  315:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  316:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  317:      break;
        -:        -:  318:   case ir_unop_bitcast_i2f:
    #####:    #####:  319:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  320:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  321:      break;
        -:        -:  322:   case ir_unop_bitcast_f2i:
    #####:    #####:  323:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  324:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  325:      break;
        -:        -:  326:   case ir_unop_bitcast_u2f:
    #####:    #####:  327:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  328:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  329:      break;
        -:        -:  330:   case ir_unop_bitcast_f2u:
    #####:    #####:  331:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  332:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  333:      break;
        -:        -:  334:
        -:        -:  335:   case ir_unop_bitcast_u642d:
    #####:    #####:  336:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  337:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  338:      break;
        -:        -:  339:   case ir_unop_bitcast_i642d:
    #####:    #####:  340:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  341:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  342:      break;
        -:        -:  343:   case ir_unop_bitcast_d2u64:
    #####:    #####:  344:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  345:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  346:      break;
        -:        -:  347:   case ir_unop_bitcast_d2i64:
    #####:    #####:  348:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  349:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  350:      break;
        -:        -:  351:   case ir_unop_i642i:
    #####:    #####:  352:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  353:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  354:      break;
        -:        -:  355:   case ir_unop_u642i:
    #####:    #####:  356:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  357:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  358:      break;
        -:        -:  359:   case ir_unop_i642u:
    #####:    #####:  360:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  361:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  362:      break;
        -:        -:  363:   case ir_unop_u642u:
    #####:    #####:  364:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  365:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  366:      break;
        -:        -:  367:   case ir_unop_i642b:
    #####:    #####:  368:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  369:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  370:      break;
        -:        -:  371:   case ir_unop_i642f:
    #####:    #####:  372:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  373:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  374:      break;
        -:        -:  375:   case ir_unop_u642f:
    #####:    #####:  376:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  377:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  378:      break;
        -:        -:  379:   case ir_unop_i642d:
    #####:    #####:  380:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  381:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  382:      break;
        -:        -:  383:   case ir_unop_u642d:
    #####:    #####:  384:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  385:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  386:      break;
        -:        -:  387:   case ir_unop_i2i64:
    #####:    #####:  388:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  389:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  390:      break;
        -:        -:  391:   case ir_unop_u2i64:
    #####:    #####:  392:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  393:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  394:      break;
        -:        -:  395:   case ir_unop_b2i64:
    #####:    #####:  396:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  397:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  398:      break;
        -:        -:  399:   case ir_unop_f2i64:
    #####:    #####:  400:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  401:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  402:      break;
        -:        -:  403:   case ir_unop_d2i64:
    #####:    #####:  404:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  405:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  406:      break;
        -:        -:  407:   case ir_unop_i2u64:
    #####:    #####:  408:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  409:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  410:      break;
        -:        -:  411:   case ir_unop_u2u64:
    #####:    #####:  412:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  413:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  414:      break;
        -:        -:  415:   case ir_unop_f2u64:
    #####:    #####:  416:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  417:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  418:      break;
        -:        -:  419:   case ir_unop_d2u64:
    #####:    #####:  420:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  421:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  422:      break;
        -:        -:  423:   case ir_unop_u642i64:
    #####:    #####:  424:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  425:      assert(ir->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  426:      break;
        -:        -:  427:   case ir_unop_i642u64:
    #####:    #####:  428:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT64);
    #####:    #####:  429:      assert(ir->type->base_type == GLSL_TYPE_UINT64);
    #####:    #####:  430:      break;
        -:        -:  431:   case ir_unop_trunc:
        -:        -:  432:   case ir_unop_round_even:
        -:        -:  433:   case ir_unop_ceil:
        -:        -:  434:   case ir_unop_floor:
        -:        -:  435:   case ir_unop_fract:
        6:        6:  436:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
        6:        6:  437:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
        6:        6:  438:      assert(ir->operands[0]->type == ir->type);
        6:        6:  439:      break;
        -:        -:  440:   case ir_unop_sin:
        -:        -:  441:   case ir_unop_cos:
        -:        -:  442:   case ir_unop_dFdx:
        -:        -:  443:   case ir_unop_dFdx_coarse:
        -:        -:  444:   case ir_unop_dFdx_fine:
        -:        -:  445:   case ir_unop_dFdy:
        -:        -:  446:   case ir_unop_dFdy_coarse:
        -:        -:  447:   case ir_unop_dFdy_fine:
    #####:    #####:  448:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  449:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  450:      break;
        -:        -:  451:
        -:        -:  452:   case ir_unop_pack_snorm_2x16:
        -:        -:  453:   case ir_unop_pack_unorm_2x16:
        -:        -:  454:   case ir_unop_pack_half_2x16:
    #####:    #####:  455:      assert(ir->type == glsl_type::uint_type);
    #####:    #####:  456:      assert(ir->operands[0]->type == glsl_type::vec2_type);
    #####:    #####:  457:      break;
        -:        -:  458:
        -:        -:  459:   case ir_unop_pack_snorm_4x8:
        -:        -:  460:   case ir_unop_pack_unorm_4x8:
    #####:    #####:  461:      assert(ir->type == glsl_type::uint_type);
    #####:    #####:  462:      assert(ir->operands[0]->type == glsl_type::vec4_type);
    #####:    #####:  463:      break;
        -:        -:  464:
        -:        -:  465:   case ir_unop_pack_double_2x32:
    #####:    #####:  466:      assert(ir->type == glsl_type::double_type);
    #####:    #####:  467:      assert(ir->operands[0]->type == glsl_type::uvec2_type);
    #####:    #####:  468:      break;
        -:        -:  469:
        -:        -:  470:   case ir_unop_pack_int_2x32:
    #####:    #####:  471:      assert(ir->type == glsl_type::int64_t_type);
    #####:    #####:  472:      assert(ir->operands[0]->type == glsl_type::ivec2_type);
    #####:    #####:  473:      break;
        -:        -:  474:
        -:        -:  475:   case ir_unop_pack_uint_2x32:
    #####:    #####:  476:      assert(ir->type == glsl_type::uint64_t_type);
    #####:    #####:  477:      assert(ir->operands[0]->type == glsl_type::uvec2_type);
    #####:    #####:  478:      break;
        -:        -:  479:
        -:        -:  480:   case ir_unop_unpack_snorm_2x16:
        -:        -:  481:   case ir_unop_unpack_unorm_2x16:
        -:        -:  482:   case ir_unop_unpack_half_2x16:
    #####:    #####:  483:      assert(ir->type == glsl_type::vec2_type);
    #####:    #####:  484:      assert(ir->operands[0]->type == glsl_type::uint_type);
    #####:    #####:  485:      break;
        -:        -:  486:
        -:        -:  487:   case ir_unop_unpack_snorm_4x8:
        -:        -:  488:   case ir_unop_unpack_unorm_4x8:
    #####:    #####:  489:      assert(ir->type == glsl_type::vec4_type);
    #####:    #####:  490:      assert(ir->operands[0]->type == glsl_type::uint_type);
    #####:    #####:  491:      break;
        -:        -:  492:
        -:        -:  493:   case ir_unop_unpack_double_2x32:
    #####:    #####:  494:      assert(ir->type == glsl_type::uvec2_type);
    #####:    #####:  495:      assert(ir->operands[0]->type == glsl_type::double_type);
    #####:    #####:  496:      break;
        -:        -:  497:
        -:        -:  498:   case ir_unop_unpack_int_2x32:
    #####:    #####:  499:      assert(ir->type == glsl_type::ivec2_type);
    #####:    #####:  500:      assert(ir->operands[0]->type == glsl_type::int64_t_type);
    #####:    #####:  501:      break;
        -:        -:  502:
        -:        -:  503:   case ir_unop_unpack_uint_2x32:
    #####:    #####:  504:      assert(ir->type == glsl_type::uvec2_type);
    #####:    #####:  505:      assert(ir->operands[0]->type == glsl_type::uint64_t_type);
    #####:    #####:  506:      break;
        -:        -:  507:
        -:        -:  508:   case ir_unop_bitfield_reverse:
    #####:    #####:  509:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  510:      assert(ir->type->is_integer());
    #####:    #####:  511:      break;
        -:        -:  512:
        -:        -:  513:   case ir_unop_bit_count:
        -:        -:  514:   case ir_unop_find_msb:
        -:        -:  515:   case ir_unop_find_lsb:
    #####:    #####:  516:      assert(ir->operands[0]->type->vector_elements == ir->type->vector_elements);
    #####:    #####:  517:      assert(ir->operands[0]->type->is_integer());
    #####:    #####:  518:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  519:      break;
        -:        -:  520:
        -:        -:  521:   case ir_unop_noise:
        -:        -:  522:      /* XXX what can we assert here? */
    #####:    #####:  523:      break;
        -:        -:  524:
        -:        -:  525:   case ir_unop_interpolate_at_centroid:
    #####:    #####:  526:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  527:      assert(ir->operands[0]->type->is_float());
    #####:    #####:  528:      break;
        -:        -:  529:
        -:        -:  530:   case ir_unop_get_buffer_size:
    #####:    #####:  531:      assert(ir->type == glsl_type::int_type);
    #####:    #####:  532:      assert(ir->operands[0]->type == glsl_type::uint_type);
    #####:    #####:  533:      break;
        -:        -:  534:
        -:        -:  535:   case ir_unop_ssbo_unsized_array_length:
    #####:    #####:  536:      assert(ir->type == glsl_type::int_type);
    #####:    #####:  537:      assert(ir->operands[0]->type->is_array());
    #####:    #####:  538:      assert(ir->operands[0]->type->is_unsized_array());
    #####:    #####:  539:      break;
        -:        -:  540:
        -:        -:  541:   case ir_unop_d2f:
    #####:    #####:  542:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  543:      assert(ir->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  544:      break;
        -:        -:  545:   case ir_unop_f2d:
    #####:    #####:  546:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT);
    #####:    #####:  547:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  548:      break;
        -:        -:  549:   case ir_unop_d2i:
    #####:    #####:  550:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  551:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  552:      break;
        -:        -:  553:   case ir_unop_i2d:
    #####:    #####:  554:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  555:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  556:      break;
        -:        -:  557:   case ir_unop_d2u:
    #####:    #####:  558:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  559:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  560:      break;
        -:        -:  561:   case ir_unop_u2d:
    #####:    #####:  562:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  563:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  564:      break;
        -:        -:  565:   case ir_unop_d2b:
    #####:    #####:  566:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  567:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  568:      break;
        -:        -:  569:
        -:        -:  570:   case ir_unop_frexp_sig:
    #####:    #####:  571:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  572:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  573:      assert(ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  574:      break;
        -:        -:  575:   case ir_unop_frexp_exp:
    #####:    #####:  576:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  577:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  578:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  579:      break;
        -:        -:  580:   case ir_unop_subroutine_to_int:
    #####:    #####:  581:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_SUBROUTINE);
    #####:    #####:  582:      assert(ir->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  583:      break;
        -:        -:  584:
        -:        -:  585:   case ir_unop_ballot:
    #####:    #####:  586:      assert(ir->type == glsl_type::uint64_t_type);
    #####:    #####:  587:      assert(ir->operands[0]->type == glsl_type::bool_type);
    #####:    #####:  588:      break;
        -:        -:  589:
        -:        -:  590:   case ir_binop_read_invocation:
    #####:    #####:  591:      assert(ir->operands[1]->type == glsl_type::uint_type);
        -:        -:  592:      /* fall-through */
        -:        -:  593:   case ir_unop_read_first_invocation:
    #####:    #####:  594:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  595:      assert(ir->type->is_scalar() || ir->type->is_vector());
    #####:    #####:  596:      assert(ir->type->base_type == GLSL_TYPE_FLOAT ||
        -:        -:  597:             ir->type->base_type == GLSL_TYPE_INT ||
    #####:    #####:  598:             ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  599:      break;
        -:        -:  600:
        -:        -:  601:   case ir_unop_vote_any:
        -:        -:  602:   case ir_unop_vote_all:
        -:        -:  603:   case ir_unop_vote_eq:
    #####:    #####:  604:      assert(ir->type == glsl_type::bool_type);
    #####:    #####:  605:      assert(ir->operands[0]->type == glsl_type::bool_type);
    #####:    #####:  606:      break;
        -:        -:  607:
        -:        -:  608:   case ir_binop_add:
        -:        -:  609:   case ir_binop_sub:
        -:        -:  610:   case ir_binop_mul:
        -:        -:  611:   case ir_binop_div:
        -:        -:  612:   case ir_binop_mod:
        -:        -:  613:   case ir_binop_min:
        -:        -:  614:   case ir_binop_max:
        -:        -:  615:   case ir_binop_pow:
       66:       66:  616:      assert(ir->operands[0]->type->base_type ==
       66:       66:  617:             ir->operands[1]->type->base_type);
        -:        -:  618:
       66:       66:  619:      if (ir->operands[0]->type->is_scalar())
       66:       66:  620:	 assert(ir->operands[1]->type == ir->type);
    #####:    #####:  621:      else if (ir->operands[1]->type->is_scalar())
    #####:    #####:  622:	 assert(ir->operands[0]->type == ir->type);
    #####:    #####:  623:      else if (ir->operands[0]->type->is_vector() &&
    #####:    #####:  624:	       ir->operands[1]->type->is_vector()) {
    #####:    #####:  625:	 assert(ir->operands[0]->type == ir->operands[1]->type);
    #####:    #####:  626:	 assert(ir->operands[0]->type == ir->type);
        -:        -:  627:      }
       66:       66:  628:      break;
        -:        -:  629:
        -:        -:  630:   case ir_binop_imul_high:
    #####:    #####:  631:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  632:      assert(ir->type == ir->operands[1]->type);
    #####:    #####:  633:      assert(ir->type->is_integer());
    #####:    #####:  634:      break;
        -:        -:  635:
        -:        -:  636:   case ir_binop_carry:
        -:        -:  637:   case ir_binop_borrow:
    #####:    #####:  638:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  639:      assert(ir->type == ir->operands[1]->type);
    #####:    #####:  640:      assert(ir->type->base_type == GLSL_TYPE_UINT);
    #####:    #####:  641:      break;
        -:        -:  642:
        -:        -:  643:   case ir_binop_less:
        -:        -:  644:   case ir_binop_greater:
        -:        -:  645:   case ir_binop_lequal:
        -:        -:  646:   case ir_binop_gequal:
        -:        -:  647:   case ir_binop_equal:
        -:        -:  648:   case ir_binop_nequal:
        -:        -:  649:      /* The semantics of the IR operators differ from the GLSL <, >, <=, >=,
        -:        -:  650:       * ==, and != operators.  The IR operators perform a component-wise
        -:        -:  651:       * comparison on scalar or vector types and return a boolean scalar or
        -:        -:  652:       * vector type of the same size.
        -:        -:  653:       */
       52:       60:  654:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
       52:       60:  655:      assert(ir->operands[0]->type == ir->operands[1]->type);
      104:      120:  656:      assert(ir->operands[0]->type->is_vector()
       52:       60:  657:	     || ir->operands[0]->type->is_scalar());
       52:       60:  658:      assert(ir->operands[0]->type->vector_elements
       52:       60:  659:	     == ir->type->vector_elements);
       52:       60:  660:      break;
        -:        -:  661:
        -:        -:  662:   case ir_binop_all_equal:
        -:        -:  663:   case ir_binop_any_nequal:
        -:        -:  664:      /* GLSL == and != operate on scalars, vectors, matrices and arrays, and
        -:        -:  665:       * return a scalar boolean.  The IR matches that.
        -:        -:  666:       */
    #####:    #####:  667:      assert(ir->type == glsl_type::bool_type);
    #####:    #####:  668:      assert(ir->operands[0]->type == ir->operands[1]->type);
    #####:    #####:  669:      break;
        -:        -:  670:
        -:        -:  671:   case ir_binop_lshift:
        -:        -:  672:   case ir_binop_rshift:
    #####:    #####:  673:      assert(ir->operands[0]->type->is_integer_32_64() &&
    #####:    #####:  674:             ir->operands[1]->type->is_integer());
    #####:    #####:  675:      if (ir->operands[0]->type->is_scalar()) {
    #####:    #####:  676:          assert(ir->operands[1]->type->is_scalar());
        -:        -:  677:      }
    #####:    #####:  678:      if (ir->operands[0]->type->is_vector() &&
    #####:    #####:  679:          ir->operands[1]->type->is_vector()) {
    #####:    #####:  680:          assert(ir->operands[0]->type->components() ==
    #####:    #####:  681:                 ir->operands[1]->type->components());
        -:        -:  682:      }
    #####:    #####:  683:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  684:      break;
        -:        -:  685:
        -:        -:  686:   case ir_binop_bit_and:
        -:        -:  687:   case ir_binop_bit_xor:
        -:        -:  688:   case ir_binop_bit_or:
    #####:    #####:  689:       assert(ir->operands[0]->type->base_type ==
    #####:    #####:  690:              ir->operands[1]->type->base_type);
    #####:    #####:  691:       assert(ir->type->is_integer_32_64());
    #####:    #####:  692:       if (ir->operands[0]->type->is_vector() &&
    #####:    #####:  693:           ir->operands[1]->type->is_vector()) {
    #####:    #####:  694:           assert(ir->operands[0]->type->vector_elements ==
    #####:    #####:  695:                  ir->operands[1]->type->vector_elements);
        -:        -:  696:       }
    #####:    #####:  697:       break;
        -:        -:  698:
        -:        -:  699:   case ir_binop_logic_and:
        -:        -:  700:   case ir_binop_logic_xor:
        -:        -:  701:   case ir_binop_logic_or:
    #####:    #####:  702:      assert(ir->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  703:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  704:      assert(ir->operands[1]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  705:      break;
        -:        -:  706:
        -:        -:  707:   case ir_binop_dot:
    #####:    #####:  708:      assert(ir->type == glsl_type::float_type ||
    #####:    #####:  709:             ir->type == glsl_type::double_type);
    #####:    #####:  710:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  711:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  712:      assert(ir->operands[0]->type->is_vector());
    #####:    #####:  713:      assert(ir->operands[0]->type == ir->operands[1]->type);
    #####:    #####:  714:      break;
        -:        -:  715:
        -:        -:  716:   case ir_binop_ubo_load:
    #####:    #####:  717:      assert(ir->operands[0]->type == glsl_type::uint_type);
        -:        -:  718:
    #####:    #####:  719:      assert(ir->operands[1]->type == glsl_type::uint_type);
    #####:    #####:  720:      break;
        -:        -:  721:
        -:        -:  722:   case ir_binop_ldexp:
    #####:    #####:  723:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  724:      assert(ir->operands[0]->type->is_float() ||
    #####:    #####:  725:             ir->operands[0]->type->is_double());
    #####:    #####:  726:      assert(ir->operands[1]->type->base_type == GLSL_TYPE_INT);
    #####:    #####:  727:      assert(ir->operands[0]->type->components() ==
    #####:    #####:  728:             ir->operands[1]->type->components());
    #####:    #####:  729:      break;
        -:        -:  730:
        -:        -:  731:   case ir_binop_vector_extract:
        3:        3:  732:      assert(ir->operands[0]->type->is_vector());
        6:        6:  733:      assert(ir->operands[1]->type->is_scalar()
        3:        3:  734:             && ir->operands[1]->type->is_integer());
        3:        3:  735:      break;
        -:        -:  736:
        -:        -:  737:   case ir_binop_interpolate_at_offset:
    #####:    #####:  738:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  739:      assert(ir->operands[0]->type->is_float());
    #####:    #####:  740:      assert(ir->operands[1]->type->components() == 2);
    #####:    #####:  741:      assert(ir->operands[1]->type->is_float());
    #####:    #####:  742:      break;
        -:        -:  743:
        -:        -:  744:   case ir_binop_interpolate_at_sample:
    #####:    #####:  745:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  746:      assert(ir->operands[0]->type->is_float());
    #####:    #####:  747:      assert(ir->operands[1]->type == glsl_type::int_type);
    #####:    #####:  748:      break;
        -:        -:  749:
        -:        -:  750:   case ir_triop_fma:
    #####:    #####:  751:      assert(ir->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  752:             ir->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  753:      assert(ir->type == ir->operands[0]->type);
    #####:    #####:  754:      assert(ir->type == ir->operands[1]->type);
    #####:    #####:  755:      assert(ir->type == ir->operands[2]->type);
    #####:    #####:  756:      break;
        -:        -:  757:
        -:        -:  758:   case ir_triop_lrp:
    #####:    #####:  759:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  760:             ir->operands[0]->type->base_type == GLSL_TYPE_DOUBLE);
    #####:    #####:  761:      assert(ir->operands[0]->type == ir->operands[1]->type);
    #####:    #####:  762:      assert(ir->operands[2]->type == ir->operands[0]->type ||
        -:        -:  763:             ir->operands[2]->type == glsl_type::float_type ||
    #####:    #####:  764:             ir->operands[2]->type == glsl_type::double_type);
    #####:    #####:  765:      break;
        -:        -:  766:
        -:        -:  767:   case ir_triop_csel:
    #####:    #####:  768:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_BOOL);
    #####:    #####:  769:      assert(ir->type->vector_elements == ir->operands[0]->type->vector_elements);
    #####:    #####:  770:      assert(ir->type == ir->operands[1]->type);
    #####:    #####:  771:      assert(ir->type == ir->operands[2]->type);
    #####:    #####:  772:      break;
        -:        -:  773:
        -:        -:  774:   case ir_triop_bitfield_extract:
    #####:    #####:  775:      assert(ir->type->is_integer());
    #####:    #####:  776:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  777:      assert(ir->operands[1]->type == ir->type);
    #####:    #####:  778:      assert(ir->operands[2]->type == ir->type);
    #####:    #####:  779:      break;
        -:        -:  780:
        -:        -:  781:   case ir_triop_vector_insert:
        1:        1:  782:      assert(ir->operands[0]->type->is_vector());
        1:        1:  783:      assert(ir->operands[1]->type->is_scalar());
        1:        1:  784:      assert(ir->operands[0]->type->base_type == ir->operands[1]->type->base_type);
        2:        2:  785:      assert(ir->operands[2]->type->is_scalar()
        1:        1:  786:             && ir->operands[2]->type->is_integer());
        1:        1:  787:      assert(ir->type == ir->operands[0]->type);
        1:        1:  788:      break;
        -:        -:  789:
        -:        -:  790:   case ir_quadop_bitfield_insert:
    #####:    #####:  791:      assert(ir->type->is_integer());
    #####:    #####:  792:      assert(ir->operands[0]->type == ir->type);
    #####:    #####:  793:      assert(ir->operands[1]->type == ir->type);
    #####:    #####:  794:      assert(ir->operands[2]->type == ir->type);
    #####:    #####:  795:      assert(ir->operands[3]->type == ir->type);
    #####:    #####:  796:      break;
        -:        -:  797:
        -:        -:  798:   case ir_quadop_vector:
        -:        -:  799:      /* The vector operator collects some number of scalars and generates a
        -:        -:  800:       * vector from them.
        -:        -:  801:       *
        -:        -:  802:       *  - All of the operands must be scalar.
        -:        -:  803:       *  - Number of operands must matche the size of the resulting vector.
        -:        -:  804:       *  - Base type of the operands must match the base type of the result.
        -:        -:  805:       */
    #####:    #####:  806:      assert(ir->type->is_vector());
    #####:    #####:  807:      switch (ir->type->vector_elements) {
        -:        -:  808:      case 2:
    #####:    #####:  809:	 assert(ir->operands[0]->type->is_scalar());
    #####:    #####:  810:	 assert(ir->operands[0]->type->base_type == ir->type->base_type);
    #####:    #####:  811:	 assert(ir->operands[1]->type->is_scalar());
    #####:    #####:  812:	 assert(ir->operands[1]->type->base_type == ir->type->base_type);
    #####:    #####:  813:	 assert(ir->operands[2] == NULL);
    #####:    #####:  814:	 assert(ir->operands[3] == NULL);
    #####:    #####:  815:	 break;
        -:        -:  816:      case 3:
    #####:    #####:  817:	 assert(ir->operands[0]->type->is_scalar());
    #####:    #####:  818:	 assert(ir->operands[0]->type->base_type == ir->type->base_type);
    #####:    #####:  819:	 assert(ir->operands[1]->type->is_scalar());
    #####:    #####:  820:	 assert(ir->operands[1]->type->base_type == ir->type->base_type);
    #####:    #####:  821:	 assert(ir->operands[2]->type->is_scalar());
    #####:    #####:  822:	 assert(ir->operands[2]->type->base_type == ir->type->base_type);
    #####:    #####:  823:	 assert(ir->operands[3] == NULL);
    #####:    #####:  824:	 break;
        -:        -:  825:      case 4:
    #####:    #####:  826:	 assert(ir->operands[0]->type->is_scalar());
    #####:    #####:  827:	 assert(ir->operands[0]->type->base_type == ir->type->base_type);
    #####:    #####:  828:	 assert(ir->operands[1]->type->is_scalar());
    #####:    #####:  829:	 assert(ir->operands[1]->type->base_type == ir->type->base_type);
    #####:    #####:  830:	 assert(ir->operands[2]->type->is_scalar());
    #####:    #####:  831:	 assert(ir->operands[2]->type->base_type == ir->type->base_type);
    #####:    #####:  832:	 assert(ir->operands[3]->type->is_scalar());
    #####:    #####:  833:	 assert(ir->operands[3]->type->base_type == ir->type->base_type);
    #####:    #####:  834:	 break;
        -:        -:  835:      default:
        -:        -:  836:	 /* The is_vector assertion above should prevent execution from ever
        -:        -:  837:	  * getting here.
        -:        -:  838:	  */
    #####:    #####:  839:	 assert(!"Should not get here.");
        -:        -:  840:	 break;
        -:        -:  841:      }
        -:        -:  842:   }
        -:        -:  843:
      147:      156:  844:   return visit_continue;
        -:        -:  845:}
        -:        -:  846:
        -:        -:  847:ir_visitor_status
       55:       63:  848:ir_validate::visit_leave(ir_swizzle *ir)
        -:        -:  849:{
       55:       63:  850:   unsigned int chans[4] = {ir->mask.x, ir->mask.y, ir->mask.z, ir->mask.w};
        -:        -:  851:
      129:      145:  852:   for (unsigned int i = 0; i < ir->type->vector_elements; i++) {
       74:       82:  853:      if (chans[i] >= ir->val->type->vector_elements) {
        -:        -:  854:	 printf("ir_swizzle @ %p specifies a channel not present "
    #####:    #####:  855:		"in the value.\n", (void *) ir);
    #####:    #####:  856:	 ir->print();
    #####:    #####:  857:	 abort();
        -:        -:  858:      }
        -:        -:  859:   }
        -:        -:  860:
       55:       63:  861:   return visit_continue;
        -:        -:  862:}
        -:        -:  863:
        -:        -:  864:ir_visitor_status
      643:      643:  865:ir_validate::visit(ir_variable *ir)
        -:        -:  866:{
        -:        -:  867:   /* An ir_variable is the one thing that can (and will) appear multiple times
        -:        -:  868:    * in an IR tree.  It is added to the hashtable so that it can be used
        -:        -:  869:    * in the ir_dereference_variable handler to ensure that a variable is
        -:        -:  870:    * declared before it is dereferenced.
        -:        -:  871:    */
      643:      643:  872:   if (ir->name && ir->is_name_ralloced())
      300:      300:  873:      assert(ralloc_parent(ir->name) == ir);
        -:        -:  874:
      643:      643:  875:   _mesa_set_add(ir_set, ir);
        -:        -:  876:
        -:        -:  877:   /* If a variable is an array, verify that the maximum array index is in
        -:        -:  878:    * bounds.  There was once an error in AST-to-HIR conversion that set this
        -:        -:  879:    * to be out of bounds.
        -:        -:  880:    */
      643:      643:  881:   if (ir->type->array_size() > 0) {
      132:      132:  882:      if (ir->data.max_array_access >= (int)ir->type->length) {
    #####:    #####:  883:	 printf("ir_variable has maximum access out of bounds (%d vs %d)\n",
    #####:    #####:  884:		ir->data.max_array_access, ir->type->length - 1);
    #####:    #####:  885:	 ir->print();
    #####:    #####:  886:	 abort();
        -:        -:  887:      }
        -:        -:  888:   }
        -:        -:  889:
        -:        -:  890:   /* If a variable is an interface block (or an array of interface blocks),
        -:        -:  891:    * verify that the maximum array index for each interface member is in
        -:        -:  892:    * bounds.
        -:        -:  893:    */
      643:      643:  894:   if (ir->is_interface_instance()) {
        -:        -:  895:      const glsl_struct_field *fields =
    #####:    #####:  896:         ir->get_interface_type()->fields.structure;
    #####:    #####:  897:      for (unsigned i = 0; i < ir->get_interface_type()->length; i++) {
    #####:    #####:  898:         if (fields[i].type->array_size() > 0 &&
    #####:    #####:  899:             !fields[i].implicit_sized_array) {
        -:        -:  900:            const int *const max_ifc_array_access =
    #####:    #####:  901:               ir->get_max_ifc_array_access();
        -:        -:  902:
    #####:    #####:  903:            assert(max_ifc_array_access != NULL);
        -:        -:  904:
    #####:    #####:  905:            if (max_ifc_array_access[i] >= (int)fields[i].type->length) {
    #####:    #####:  906:               printf("ir_variable has maximum access out of bounds for "
    #####:    #####:  907:                      "field %s (%d vs %d)\n", fields[i].name,
    #####:    #####:  908:                      max_ifc_array_access[i], fields[i].type->length);
    #####:    #####:  909:               ir->print();
    #####:    #####:  910:               abort();
        -:        -:  911:            }
        -:        -:  912:         }
        -:        -:  913:      }
        -:        -:  914:   }
        -:        -:  915:
      643:      643:  916:   if (ir->constant_initializer != NULL && !ir->data.has_initializer) {
        -:        -:  917:      printf("ir_variable didn't have an initializer, but has a constant "
    #####:    #####:  918:	     "initializer value.\n");
    #####:    #####:  919:      ir->print();
    #####:    #####:  920:      abort();
        -:        -:  921:   }
        -:        -:  922:
     1286:     1286:  923:   if (ir->data.mode == ir_var_uniform
      300:      300:  924:       && is_gl_identifier(ir->name)
      931:      931:  925:       && ir->get_state_slots() == NULL) {
    #####:    #####:  926:      printf("built-in uniform has no state\n");
    #####:    #####:  927:      ir->print();
    #####:    #####:  928:      abort();
        -:        -:  929:   }
        -:        -:  930:
      643:      643:  931:   return visit_continue;
        -:        -:  932:}
        -:        -:  933:
        -:        -:  934:ir_visitor_status
      249:      249:  935:ir_validate::visit_enter(ir_assignment *ir)
        -:        -:  936:{
      249:      249:  937:   const ir_dereference *const lhs = ir->lhs;
      249:      249:  938:   if (lhs->type->is_scalar() || lhs->type->is_vector()) {
      249:      249:  939:      if (ir->write_mask == 0) {
    #####:    #####:  940:	 printf("Assignment LHS is %s, but write mask is 0:\n",
    #####:    #####:  941:		lhs->type->is_scalar() ? "scalar" : "vector");
    #####:    #####:  942:	 ir->print();
    #####:    #####:  943:	 abort();
        -:        -:  944:      }
        -:        -:  945:
      249:      249:  946:      int lhs_components = 0;
     1245:     1245:  947:      for (int i = 0; i < 4; i++) {
      996:      996:  948:	 if (ir->write_mask & (1 << i))
      327:      327:  949:	    lhs_components++;
        -:        -:  950:      }
        -:        -:  951:
      249:      249:  952:      if (lhs_components != ir->rhs->type->vector_elements) {
    #####:    #####:  953:	 printf("Assignment count of LHS write mask channels enabled not\n"
        -:        -:  954:		"matching RHS vector size (%d LHS, %d RHS).\n",
    #####:    #####:  955:		lhs_components, ir->rhs->type->vector_elements);
    #####:    #####:  956:	 ir->print();
    #####:    #####:  957:	 abort();
        -:        -:  958:      }
        -:        -:  959:   }
        -:        -:  960:
      249:      249:  961:   this->validate_ir(ir, this->data_enter);
        -:        -:  962:
      249:      249:  963:   return visit_continue;
        -:        -:  964:}
        -:        -:  965:
        -:        -:  966:ir_visitor_status
        8:        8:  967:ir_validate::visit_enter(ir_call *ir)
        -:        -:  968:{
        8:        8:  969:   ir_function_signature *const callee = ir->callee;
        -:        -:  970:
        8:        8:  971:   if (callee->ir_type != ir_type_function_signature) {
    #####:    #####:  972:      printf("IR called by ir_call is not ir_function_signature!\n");
    #####:    #####:  973:      abort();
        -:        -:  974:   }
        -:        -:  975:
        8:        8:  976:   if (ir->return_deref) {
        8:        8:  977:      if (ir->return_deref->type != callee->return_type) {
        -:        -:  978:	 printf("callee type %s does not match return storage type %s\n",
    #####:    #####:  979:	        callee->return_type->name, ir->return_deref->type->name);
    #####:    #####:  980:	 abort();
        -:        -:  981:      }
    #####:    #####:  982:   } else if (callee->return_type != glsl_type::void_type) {
    #####:    #####:  983:      printf("ir_call has non-void callee but no return storage\n");
    #####:    #####:  984:      abort();
        -:        -:  985:   }
        -:        -:  986:
        8:        8:  987:   const exec_node *formal_param_node = callee->parameters.get_head_raw();
        8:        8:  988:   const exec_node *actual_param_node = ir->actual_parameters.get_head_raw();
       16:       16:  989:   while (true) {
       48:       48:  990:      if (formal_param_node->is_tail_sentinel()
       24:       24:  991:          != actual_param_node->is_tail_sentinel()) {
    #####:    #####:  992:         printf("ir_call has the wrong number of parameters:\n");
    #####:    #####:  993:         goto dump_ir;
        -:        -:  994:      }
       24:       24:  995:      if (formal_param_node->is_tail_sentinel()) {
        8:        8:  996:         break;
        -:        -:  997:      }
        -:        -:  998:      const ir_variable *formal_param
       16:       16:  999:         = (const ir_variable *) formal_param_node;
        -:        -: 1000:      const ir_rvalue *actual_param
       16:       16: 1001:         = (const ir_rvalue *) actual_param_node;
       16:       16: 1002:      if (formal_param->type != actual_param->type) {
    #####:    #####: 1003:         printf("ir_call parameter type mismatch:\n");
    #####:    #####: 1004:         goto dump_ir;
        -:        -: 1005:      }
       16:       16: 1006:      if (formal_param->data.mode == ir_var_function_out
       16:       16: 1007:          || formal_param->data.mode == ir_var_function_inout) {
    #####:    #####: 1008:         if (!actual_param->is_lvalue()) {
    #####:    #####: 1009:            printf("ir_call out/inout parameters must be lvalues:\n");
    #####:    #####: 1010:            goto dump_ir;
        -:        -: 1011:         }
        -:        -: 1012:      }
       16:       16: 1013:      formal_param_node = formal_param_node->next;
       16:       16: 1014:      actual_param_node = actual_param_node->next;
        -:        -: 1015:   }
        -:        -: 1016:
        8:        8: 1017:   return visit_continue;
        -:        -: 1018:
        -:        -: 1019:dump_ir:
    #####:    #####: 1020:   ir->print();
    #####:    #####: 1021:   printf("callee:\n");
    #####:    #####: 1022:   callee->print();
    #####:    #####: 1023:   abort();
        -:        -: 1024:   return visit_stop;
        -:        -: 1025:}
        -:        -: 1026:
        -:        -: 1027:void
     1334:     1397: 1028:ir_validate::validate_ir(ir_instruction *ir, void *data)
        -:        -: 1029:{
     1334:     1397: 1030:   struct set *ir_set = (struct set *) data;
        -:        -: 1031:
     1334:     1397: 1032:   if (_mesa_set_search(ir_set, ir)) {
    #####:    #####: 1033:      printf("Instruction node present twice in ir tree:\n");
    #####:    #####: 1034:      ir->print();
    #####:    #####: 1035:      printf("\n");
    #####:    #####: 1036:      abort();
        -:        -: 1037:   }
     1334:     1397: 1038:   _mesa_set_add(ir_set, ir);
     1334:     1397: 1039:}
        -:        -: 1040:
        -:        -: 1041:void
     2126:     2204: 1042:check_node_type(ir_instruction *ir, void *data)
        -:        -: 1043:{
        -:        -: 1044:   (void) data;
        -:        -: 1045:
     2126:     2204: 1046:   if (ir->ir_type >= ir_type_max) {
    #####:    #####: 1047:      printf("Instruction node with unset type\n");
    #####:    #####: 1048:      ir->print(); printf("\n");
        -:        -: 1049:   }
     2126:     2204: 1050:   ir_rvalue *value = ir->as_rvalue();
     2126:     2204: 1051:   if (value != NULL)
     1099:     1139: 1052:      assert(value->type != glsl_type::error_type);
     2126:     2204: 1053:}
        -:        -: 1054:
        -:        -: 1055:void
       16:       16: 1056:validate_ir_tree(exec_list *instructions)
        -:        -: 1057:{
        -:        -: 1058:   /* We shouldn't have any reason to validate IR in a release build,
        -:        -: 1059:    * and it's half composed of assert()s anyway which wouldn't do
        -:        -: 1060:    * anything.
        -:        -: 1061:    */
        -:        -: 1062:#ifdef DEBUG
       32:       32: 1063:   ir_validate v;
        -:        -: 1064:
       16:       16: 1065:   v.run(instructions);
        -:        -: 1066:
      562:      562: 1067:   foreach_in_list(ir_instruction, ir, instructions) {
      546:      546: 1068:      visit_tree(ir, check_node_type, NULL);
        -:        -: 1069:   }
        -:        -: 1070:#endif
       16:       16: 1071:}

src/compiler/ir_variable_refcount.cpp.gcov

        -:        -:    0:Source:glsl/ir_variable_refcount.cpp
        -:        -:    0:Graph:glsl/.libs/ir_variable_refcount.gcno
        -:        -:    0:Data:glsl/.libs/ir_variable_refcount.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file ir_variable_refcount.cpp
        -:        -:   26: *
        -:        -:   27: * Provides a visitor which produces a list of variables referenced,
        -:        -:   28: * how many times they were referenced and assigned, and whether they
        -:        -:   29: * were defined in the scope.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:#include "ir.h"
        -:        -:   33:#include "ir_visitor.h"
        -:        -:   34:#include "ir_variable_refcount.h"
        -:        -:   35:#include "compiler/glsl_types.h"
        -:        -:   36:#include "util/hash_table.h"
        -:        -:   37:
       43:       43:   38:ir_variable_refcount_visitor::ir_variable_refcount_visitor()
        -:        -:   39:{
       43:       43:   40:   this->mem_ctx = ralloc_context(NULL);
       43:       43:   41:   this->ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
       43:       43:   42:                                      _mesa_key_pointer_equal);
       43:       43:   43:}
        -:        -:   44:
        -:        -:   45:static void
     1134:     1137:   46:free_entry(struct hash_entry *entry)
        -:        -:   47:{
     1134:     1137:   48:   ir_variable_refcount_entry *ivre = (ir_variable_refcount_entry *) entry->data;
        -:        -:   49:
        -:        -:   50:   /* Free assignment list */
        -:        -:   51:   exec_node *n;
     2534:     2537:   52:   while ((n = ivre->assign_list.pop_head()) != NULL) {
        -:        -:   53:      struct assignment_entry *assignment_entry =
      700:      700:   54:         exec_node_data(struct assignment_entry, n, link);
      700:      700:   55:      free(assignment_entry);
        -:        -:   56:   }
        -:        -:   57:
     1134:     1137:   58:   delete ivre;
     1134:     1137:   59:}
        -:        -:   60:
       86:       86:   61:ir_variable_refcount_visitor::~ir_variable_refcount_visitor()
        -:        -:   62:{
       43:       43:   63:   ralloc_free(this->mem_ctx);
       43:       43:   64:   _mesa_hash_table_destroy(this->ht, free_entry);
       43:       43:   65:}
        -:        -:   66:
        -:        -:   67:// constructor
     1134:     1137:   68:ir_variable_refcount_entry::ir_variable_refcount_entry(ir_variable *var)
        -:        -:   69:{
     1134:     1137:   70:   this->var = var;
     1134:     1137:   71:   assigned_count = 0;
     1134:     1137:   72:   declaration = false;
     1134:     1137:   73:   referenced_count = 0;
     1134:     1137:   74:}
        -:        -:   75:
        -:        -:   76:
        -:        -:   77:ir_variable_refcount_entry *
     4940:     5010:   78:ir_variable_refcount_visitor::get_variable_entry(ir_variable *var)
        -:        -:   79:{
     4940:     5010:   80:   assert(var);
        -:        -:   81:
     4940:     5010:   82:   struct hash_entry *e = _mesa_hash_table_search(this->ht, var);
     4940:     5010:   83:   if (e)
     3806:     3873:   84:      return (ir_variable_refcount_entry *)e->data;
        -:        -:   85:
     1134:     1137:   86:   ir_variable_refcount_entry *entry = new ir_variable_refcount_entry(var);
     1134:     1137:   87:   assert(entry->referenced_count == 0);
     1134:     1137:   88:   _mesa_hash_table_insert(this->ht, var, entry);
        -:        -:   89:
     1134:     1137:   90:   return entry;
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:
        -:        -:   94:ir_visitor_status
     1101:     1101:   95:ir_variable_refcount_visitor::visit(ir_variable *ir)
        -:        -:   96:{
     1101:     1101:   97:   ir_variable_refcount_entry *entry = this->get_variable_entry(ir);
     1101:     1101:   98:   if (entry)
     1101:     1101:   99:      entry->declaration = true;
        -:        -:  100:
     1101:     1101:  101:   return visit_continue;
        -:        -:  102:}
        -:        -:  103:
        -:        -:  104:
        -:        -:  105:ir_visitor_status
     2491:     2561:  106:ir_variable_refcount_visitor::visit(ir_dereference_variable *ir)
        -:        -:  107:{
     2491:     2561:  108:   ir_variable *const var = ir->variable_referenced();
     2491:     2561:  109:   ir_variable_refcount_entry *entry = this->get_variable_entry(var);
        -:        -:  110:
     2491:     2561:  111:   if (entry)
     2491:     2561:  112:      entry->referenced_count++;
        -:        -:  113:
     2491:     2561:  114:   return visit_continue;
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:
        -:        -:  118:ir_visitor_status
       37:       37:  119:ir_variable_refcount_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  120:{
        -:        -:  121:   /* We don't want to descend into the function parameters and
        -:        -:  122:    * dead-code eliminate them, so just accept the body here.
        -:        -:  123:    */
       37:       37:  124:   visit_list_elements(this, &ir->body);
       37:       37:  125:   return visit_continue_with_parent;
        -:        -:  126:}
        -:        -:  127:
        -:        -:  128:
        -:        -:  129:ir_visitor_status
     1012:     1012:  130:ir_variable_refcount_visitor::visit_leave(ir_assignment *ir)
        -:        -:  131:{
        -:        -:  132:   ir_variable_refcount_entry *entry;
     1012:     1012:  133:   entry = this->get_variable_entry(ir->lhs->variable_referenced());
     1012:     1012:  134:   if (entry) {
     1012:     1012:  135:      entry->assigned_count++;
        -:        -:  136:
        -:        -:  137:      /* Build a list for dead code optimisation. Don't add assignment if it
        -:        -:  138:       * was declared out of scope (outside the instruction stream). Also don't
        -:        -:  139:       * bother adding any more to the list if there are more references than
        -:        -:  140:       * assignments as this means the variable is used and won't be optimised
        -:        -:  141:       * out.
        -:        -:  142:       */
     1012:     1012:  143:      assert(entry->referenced_count >= entry->assigned_count);
     1012:     1012:  144:      if (entry->referenced_count == entry->assigned_count) {
        -:        -:  145:         struct assignment_entry *assignment_entry =
      752:      752:  146:            (struct assignment_entry *)calloc(1, sizeof(*assignment_entry));
      752:      752:  147:         assignment_entry->assign = ir;
      752:      752:  148:         entry->assign_list.push_head(&assignment_entry->link);
        -:        -:  149:      }
        -:        -:  150:   }
        -:        -:  151:
     1012:     1012:  152:   return visit_continue;
        -:        -:  153:}

src/compiler/.libs/glsl_types.cpp.gcov

        -:        -:    0:Source:glsl_types.cpp
        -:        -:    0:Graph:glsl_types.gcno
        -:        -:    0:Data:glsl_types.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
      140:      140:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      140:      140:   42:/*EOF*/
        1:        1:   43:/*EOF*/
        1:        1:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      140:      140:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       49:       49:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       49:       49:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       49:       49:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       49:       49:   67:/*EOF*/
       49:       49:   68:/*EOF*/
       49:       49:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       49:       49:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       49:       49:   75:/*EOF*/
       49:       49:   76:/*EOF*/
       49:       49:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       81:       81:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       81:       81:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       81:       81:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       81:       81:   90:/*EOF*/
       81:       81:   91:/*EOF*/
       81:       81:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       81:       81:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       81:       81:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       81:       81:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       42:       42:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       39:       39:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       81:       81:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        8:        8:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        8:        8:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        8:        8:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        8:        8:  119:/*EOF*/
        8:        8:  120:/*EOF*/
        8:        8:  121:/*EOF*/
        8:        8:  122:/*EOF*/
        8:        8:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       45:       45:  125:/*EOF*/
       37:       37:  126:/*EOF*/
       74:       74:  127:/*EOF*/
       74:       74:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        8:        8:  131:/*EOF*/
        8:        8:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        2:        2:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        2:        2:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        2:        2:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        2:        2:  149:/*EOF*/
        2:        2:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        2:        2:  152:/*EOF*/
        2:        2:  153:/*EOF*/
       22:       22:  154:/*EOF*/
       20:       20:  155:/*EOF*/
       40:       40:  156:/*EOF*/
       40:       40:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        2:        2:  160:/*EOF*/
        2:        2:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       12:       12:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       12:       12:  215:/*EOF*/
        2:        2:  216:/*EOF*/
       10:       10:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       10:       10:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       64:       64:  262:/*EOF*/
       64:       64:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        1:        1:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       63:       63:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      321:      321:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      321:      321:  285:/*EOF*/
       57:       57:  286:/*EOF*/
      264:      264:  287:/*EOF*/
      114:      114:  288:/*EOF*/
       92:       92:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       22:       22:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      242:      242:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        3:        3:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        3:        3:  331:/*EOF*/
        1:        1:  332:/*EOF*/
        2:        2:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        2:        2:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
      108:      108:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      108:      108:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
       58:       58:  352:/*EOF*/
        -:        -:  353:/*EOF*/
       50:       50:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        3:        3:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        3:        3:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        3:        3:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        3:        3:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        3:        3:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        1:        1:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        1:        1:  405:/*EOF*/
        1:        1:  406:/*EOF*/
        1:        1:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        1:        1:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        1:        1:  415:/*EOF*/
        1:        1:  416:/*EOF*/
        1:        1:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        1:        1:  420:/*EOF*/
        1:        1:  421:/*EOF*/
        1:        1:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
       11:       11:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       11:       11:  430:/*EOF*/
        -:        -:  431:/*EOF*/
       11:       11:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
       11:       11:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
       11:       11:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       11:       11:  445:/*EOF*/
       11:       11:  446:/*EOF*/
       11:       11:  447:/*EOF*/
        -:        -:  448:/*EOF*/
       11:       11:  449:/*EOF*/
        2:        2:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        9:        9:  455:/*EOF*/
        9:        9:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        9:        9:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       11:       11:  466:/*EOF*/
       11:       11:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
     2290:     2295:  471:/*EOF*/
        -:        -:  472:/*EOF*/
     2290:     2295:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
     2290:     2295:  478:/*EOF*/
     2290:     2295:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
     1112:     1112:  483:/*EOF*/
        -:        -:  484:/*EOF*/
     1112:     1112:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
     1112:     1112:  490:/*EOF*/
     1112:     1112:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
     2508:     2508:  495:/*EOF*/
        -:        -:  496:/*EOF*/
     2508:     2508:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
     2508:     2508:  502:/*EOF*/
     2508:     2508:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
      402:      402:  508:/*EOF*/
        -:        -:  509:/*EOF*/
      402:      402:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
      402:      402:  515:/*EOF*/
      402:      402:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
      464:      464:  521:/*EOF*/
        -:        -:  522:/*EOF*/
      464:      464:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
      464:      464:  528:/*EOF*/
      464:      464:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
       10:       10:  534:/*EOF*/
        -:        -:  535:/*EOF*/
       10:       10:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
       10:       10:  541:/*EOF*/
       10:       10:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
       12:       12:  547:/*EOF*/
        -:        -:  548:/*EOF*/
       12:       12:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
       12:       12:  554:/*EOF*/
       12:       12:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
     5632:     5637:  559:/*EOF*/
        -:        -:  560:/*EOF*/
     5632:     5637:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
        -:        -:  563:/*EOF*/
     5632:     5637:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
     5632:     5637:  569:/*EOF*/
     5614:     5619:  570:/*EOF*/
        -:        -:  571:/*EOF*/
      398:      398:  572:/*EOF*/
        -:        -:  573:/*EOF*/
     1775:     1775:  574:/*EOF*/
        -:        -:  575:/*EOF*/
     2026:     2031:  576:/*EOF*/
        -:        -:  577:/*EOF*/
     1086:     1086:  578:/*EOF*/
        -:        -:  579:/*EOF*/
      315:      315:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        8:        8:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        6:        6:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       18:       18:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
       18:       18:  603:/*EOF*/
        9:        9:  604:/*EOF*/
        1:        1:  605:/*EOF*/
        1:        1:  606:/*EOF*/
        1:        1:  607:/*EOF*/
        1:        1:  608:/*EOF*/
        1:        1:  609:/*EOF*/
        1:        1:  610:/*EOF*/
        1:        1:  611:/*EOF*/
        1:        1:  612:/*EOF*/
        1:        1:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        9:        9:  617:/*EOF*/
        1:        1:  618:/*EOF*/
        1:        1:  619:/*EOF*/
        1:        1:  620:/*EOF*/
        1:        1:  621:/*EOF*/
        1:        1:  622:/*EOF*/
        1:        1:  623:/*EOF*/
        1:        1:  624:/*EOF*/
        1:        1:  625:/*EOF*/
        1:        1:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
        -:        -:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
        -:        -:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
        -:        -:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
       59:       59:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
       59:       59:  865:/*EOF*/
        -:        -:  866:/*EOF*/
       59:       59:  867:/*EOF*/
        -:        -:  868:/*EOF*/
       59:       59:  869:/*EOF*/
        1:        1:  870:/*EOF*/
        1:        1:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
       59:       59:  874:/*EOF*/
       59:       59:  875:/*EOF*/
       11:       11:  876:/*EOF*/
       11:       11:  877:/*EOF*/
       11:       11:  878:/*EOF*/
        -:        -:  879:/*EOF*/
       11:       11:  880:/*EOF*/
       11:       11:  881:/*EOF*/
       11:       11:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
       59:       59:  885:/*EOF*/
       59:       59:  886:/*EOF*/
       59:       59:  887:/*EOF*/
        -:        -:  888:/*EOF*/
       59:       59:  889:/*EOF*/
        -:        -:  890:/*EOF*/
       59:       59:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
    #####:    #####:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
    #####:    #####:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
        -:        -:  983:/*EOF*/
    #####:    #####:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        2:        2:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        2:        2:  997:/*EOF*/
        2:        2:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
       22:       22: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
       20:       20: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        2:        2: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        2:        2: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
    #####:    #####: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
    #####:    #####: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        1:        1: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        1:        1: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        1:        1: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        1:        1: 1060:/*EOF*/
        1:        1: 1061:/*EOF*/
        1:        1: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        1:        1: 1065:/*EOF*/
        1:        1: 1066:/*EOF*/
        1:        1: 1067:/*EOF*/
        1:        1: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        1:        1: 1070:/*EOF*/
        1:        1: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        1:        1: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        1:        1: 1076:/*EOF*/
        1:        1: 1077:/*EOF*/
        1:        1: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        1:        1: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        1:        1: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
      178:      178: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
      178:      178: 1175:/*EOF*/
      178:      178: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
       10:       10: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
       10:       10: 1258:/*EOF*/
       10:       10: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
       55:       55: 1262:/*EOF*/
       55:       55: 1263:/*EOF*/
       10:       10: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        6:        6: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        6:        6: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        4:        4: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        2:        2: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
    #####:    #####: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
    #####:    #####: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
    #####:    #####: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
    #####:    #####: 1404:/*EOF*/
    #####:    #####: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
    #####:    #####: 1409:/*EOF*/
    #####:    #####: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
    #####:    #####: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
    #####:    #####: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
    #####:    #####: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
    #####:    #####: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
    #####:    #####: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    #####:    #####: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
    #####:    #####: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
    #####:    #####: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
    #####:    #####: 1697:/*EOF*/
    #####:    #####: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
    #####:    #####: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
    #####:    #####: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
    #####:    #####: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
    #####:    #####: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
    #####:    #####: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
    #####:    #####: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
    #####:    #####: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
    #####:    #####: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
    #####:    #####: 1829:/*EOF*/
    #####:    #####: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
    #####:    #####: 1847:/*EOF*/
    #####:    #####: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
    #####:    #####: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
    #####:    #####: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
    #####:    #####: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
    #####:    #####: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
    #####:    #####: 1883:/*EOF*/
    #####:    #####: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
    #####:    #####: 1890:/*EOF*/
    #####:    #####: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
    #####:    #####: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
    #####:    #####: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
       18:       22: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
       18:       22: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
       18:       22: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
     1094:     1094: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
     1094:     1094: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
      302:      302: 2014:/*EOF*/
      302:      302: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
      535:      535: 2021:/*EOF*/
      535:      535: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
      257:      257: 2025:/*EOF*/
      257:      257: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
     1694:     1694: 2037:/*EOF*/
      534:      534: 2038:/*EOF*/
      274:      274: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
     1094:     1094: 2041:/*EOF*/

src/compiler/.libs/nir_types.cpp.gcov

        -:        -:    0:Source:nir_types.cpp
        -:        -:    0:Graph:nir_types.gcno
        -:        -:    0:Data:nir_types.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
    #####:    #####:   32:/*EOF*/
        -:        -:   33:/*EOF*/
    #####:    #####:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     1766:     1766:   38:/*EOF*/
        -:        -:   39:/*EOF*/
     1766:     1766:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
     1766:     1766:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        8:        8:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        8:        8:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
     4056:     4390:   76:/*EOF*/
        -:        -:   77:/*EOF*/
     4056:     4390:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
     3999:     4327:   82:/*EOF*/
        -:        -:   83:/*EOF*/
     3999:     4327:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      282:      284:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      282:      284:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        2:        2:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        2:        2:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       15:       19:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       15:       19:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      613:      613:  146:/*EOF*/
        -:        -:  147:/*EOF*/
      613:      613:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
     3728:     4046:  170:/*EOF*/
        -:        -:  171:/*EOF*/
     3728:     4046:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       68:       72:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       68:       72:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       83:      101:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       83:      101:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        4:        4:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        4:        4:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        4:        4:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        4:        4:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        6:        6:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        6:        6:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       21:       21:  244:/*EOF*/
        -:        -:  245:/*EOF*/
       21:       21:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
       12:       12:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       12:       12:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        1:        1:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        1:        1:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/

src/compiler/linker.cpp.gcov

        -:        -:    0:Source:glsl/linker.cpp
        -:        -:    0:Graph:glsl/.libs/linker.gcno
        -:        -:    0:Data:glsl/.libs/linker.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file linker.cpp
        -:        -:   26: * GLSL linker implementation
        -:        -:   27: *
        -:        -:   28: * Given a set of shaders that are to be linked to generate a final program,
        -:        -:   29: * there are three distinct stages.
        -:        -:   30: *
        -:        -:   31: * In the first stage shaders are partitioned into groups based on the shader
        -:        -:   32: * type.  All shaders of a particular type (e.g., vertex shaders) are linked
        -:        -:   33: * together.
        -:        -:   34: *
        -:        -:   35: *   - Undefined references in each shader are resolve to definitions in
        -:        -:   36: *     another shader.
        -:        -:   37: *   - Types and qualifiers of uniforms, outputs, and global variables defined
        -:        -:   38: *     in multiple shaders with the same name are verified to be the same.
        -:        -:   39: *   - Initializers for uniforms and global variables defined
        -:        -:   40: *     in multiple shaders with the same name are verified to be the same.
        -:        -:   41: *
        -:        -:   42: * The result, in the terminology of the GLSL spec, is a set of shader
        -:        -:   43: * executables for each processing unit.
        -:        -:   44: *
        -:        -:   45: * After the first stage is complete, a series of semantic checks are performed
        -:        -:   46: * on each of the shader executables.
        -:        -:   47: *
        -:        -:   48: *   - Each shader executable must define a \c main function.
        -:        -:   49: *   - Each vertex shader executable must write to \c gl_Position.
        -:        -:   50: *   - Each fragment shader executable must write to either \c gl_FragData or
        -:        -:   51: *     \c gl_FragColor.
        -:        -:   52: *
        -:        -:   53: * In the final stage individual shader executables are linked to create a
        -:        -:   54: * complete exectuable.
        -:        -:   55: *
        -:        -:   56: *   - Types of uniforms defined in multiple shader stages with the same name
        -:        -:   57: *     are verified to be the same.
        -:        -:   58: *   - Initializers for uniforms defined in multiple shader stages with the
        -:        -:   59: *     same name are verified to be the same.
        -:        -:   60: *   - Types and qualifiers of outputs defined in one stage are verified to
        -:        -:   61: *     be the same as the types and qualifiers of inputs defined with the same
        -:        -:   62: *     name in a later stage.
        -:        -:   63: *
        -:        -:   64: * \author Ian Romanick <ian.d.romanick@intel.com>
        -:        -:   65: */
        -:        -:   66:
        -:        -:   67:#include <ctype.h>
        -:        -:   68:#include "util/strndup.h"
        -:        -:   69:#include "main/core.h"
        -:        -:   70:#include "glsl_symbol_table.h"
        -:        -:   71:#include "glsl_parser_extras.h"
        -:        -:   72:#include "ir.h"
        -:        -:   73:#include "program.h"
        -:        -:   74:#include "program/prog_instruction.h"
        -:        -:   75:#include "program/program.h"
        -:        -:   76:#include "util/mesa-sha1.h"
        -:        -:   77:#include "util/set.h"
        -:        -:   78:#include "util/string_to_uint_map.h"
        -:        -:   79:#include "linker.h"
        -:        -:   80:#include "link_varyings.h"
        -:        -:   81:#include "ir_optimization.h"
        -:        -:   82:#include "ir_rvalue_visitor.h"
        -:        -:   83:#include "ir_uniform.h"
        -:        -:   84:#include "builtin_functions.h"
        -:        -:   85:#include "shader_cache.h"
        -:        -:   86:
        -:        -:   87:#include "main/shaderobj.h"
        -:        -:   88:#include "main/enums.h"
        -:        -:   89:
        -:        -:   90:
        -:        -:   91:namespace {
        -:        -:   92:
        -:        -:   93:/**
        -:        -:   94: * Visitor that determines whether or not a variable is ever written.
        -:        -:   95: */
        -:        -:   96:class find_assignment_visitor : public ir_hierarchical_visitor {
        -:        -:   97:public:
        8:        8:   98:   find_assignment_visitor(const char *name)
        8:        8:   99:      : name(name), found(false)
        -:        -:  100:   {
        -:        -:  101:      /* empty */
        8:        8:  102:   }
        -:        -:  103:
       70:       70:  104:   virtual ir_visitor_status visit_enter(ir_assignment *ir)
        -:        -:  105:   {
       70:       70:  106:      ir_variable *const var = ir->lhs->variable_referenced();
        -:        -:  107:
       70:       70:  108:      if (strcmp(name, var->name) == 0) {
        3:        3:  109:         found = true;
        3:        3:  110:         return visit_stop;
        -:        -:  111:      }
        -:        -:  112:
       67:       67:  113:      return visit_continue_with_parent;
        -:        -:  114:   }
        -:        -:  115:
        4:        4:  116:   virtual ir_visitor_status visit_enter(ir_call *ir)
        -:        -:  117:   {
       12:       12:  118:      foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  119:                        actual_node, &ir->actual_parameters) {
        8:        8:  120:         ir_rvalue *param_rval = (ir_rvalue *) actual_node;
        8:        8:  121:         ir_variable *sig_param = (ir_variable *) formal_node;
        -:        -:  122:
       16:       16:  123:         if (sig_param->data.mode == ir_var_function_out ||
        8:        8:  124:             sig_param->data.mode == ir_var_function_inout) {
    #####:    #####:  125:            ir_variable *var = param_rval->variable_referenced();
    #####:    #####:  126:            if (var && strcmp(name, var->name) == 0) {
    #####:    #####:  127:               found = true;
    #####:    #####:  128:               return visit_stop;
        -:        -:  129:            }
        -:        -:  130:         }
        -:        -:  131:      }
        -:        -:  132:
        4:        4:  133:      if (ir->return_deref != NULL) {
        4:        4:  134:         ir_variable *const var = ir->return_deref->variable_referenced();
        -:        -:  135:
        4:        4:  136:         if (strcmp(name, var->name) == 0) {
    #####:    #####:  137:            found = true;
    #####:    #####:  138:            return visit_stop;
        -:        -:  139:         }
        -:        -:  140:      }
        -:        -:  141:
        4:        4:  142:      return visit_continue_with_parent;
        -:        -:  143:   }
        -:        -:  144:
        9:        9:  145:   bool variable_found()
        -:        -:  146:   {
        9:        9:  147:      return found;
        -:        -:  148:   }
        -:        -:  149:
        -:        -:  150:private:
        -:        -:  151:   const char *name;       /**< Find writes to a variable with this name. */
        -:        -:  152:   bool found;             /**< Was a write to the variable found? */
        -:        -:  153:};
        -:        -:  154:
        -:        -:  155:
        -:        -:  156:/**
        -:        -:  157: * Visitor that determines whether or not a variable is ever read.
        -:        -:  158: */
        -:        -:  159:class find_deref_visitor : public ir_hierarchical_visitor {
        -:        -:  160:public:
        1:        1:  161:   find_deref_visitor(const char *name)
        1:        1:  162:      : name(name), found(false)
        -:        -:  163:   {
        -:        -:  164:      /* empty */
        1:        1:  165:   }
        -:        -:  166:
        5:        5:  167:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:  168:   {
        5:        5:  169:      if (strcmp(this->name, ir->var->name) == 0) {
    #####:    #####:  170:         this->found = true;
    #####:    #####:  171:         return visit_stop;
        -:        -:  172:      }
        -:        -:  173:
        5:        5:  174:      return visit_continue;
        -:        -:  175:   }
        -:        -:  176:
        1:        1:  177:   bool variable_found() const
        -:        -:  178:   {
        1:        1:  179:      return this->found;
        -:        -:  180:   }
        -:        -:  181:
        -:        -:  182:private:
        -:        -:  183:   const char *name;       /**< Find writes to a variable with this name. */
        -:        -:  184:   bool found;             /**< Was a write to the variable found? */
        -:        -:  185:};
        -:        -:  186:
        -:        -:  187:
        -:        -:  188:/**
        -:        -:  189: * A visitor helper that provides methods for updating the types of
        -:        -:  190: * ir_dereferences.  Classes that update variable types (say, updating
        -:        -:  191: * array sizes) will want to use this so that dereference types stay in sync.
        -:        -:  192: */
        3:        3:  193:class deref_type_updater : public ir_hierarchical_visitor {
        -:        -:  194:public:
       85:       87:  195:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:  196:   {
       85:       87:  197:      ir->type = ir->var->type;
       85:       87:  198:      return visit_continue;
        -:        -:  199:   }
        -:        -:  200:
       16:       16:  201:   virtual ir_visitor_status visit_leave(ir_dereference_array *ir)
        -:        -:  202:   {
       16:       16:  203:      const glsl_type *const vt = ir->array->type;
       16:       16:  204:      if (vt->is_array())
       12:       12:  205:         ir->type = vt->fields.array;
       16:       16:  206:      return visit_continue;
        -:        -:  207:   }
        -:        -:  208:
    #####:    #####:  209:   virtual ir_visitor_status visit_leave(ir_dereference_record *ir)
        -:        -:  210:   {
    #####:    #####:  211:      for (unsigned i = 0; i < ir->record->type->length; i++) {
        -:        -:  212:         const struct glsl_struct_field *field =
    #####:    #####:  213:            &ir->record->type->fields.structure[i];
    #####:    #####:  214:         if (strcmp(field->name, ir->field) == 0) {
    #####:    #####:  215:            ir->type = field->type;
    #####:    #####:  216:            break;
        -:        -:  217:         }
        -:        -:  218:      }
    #####:    #####:  219:      return visit_continue;
        -:        -:  220:   }
        -:        -:  221:};
        -:        -:  222:
        -:        -:  223:
        -:        -:  224:class array_resize_visitor : public deref_type_updater {
        -:        -:  225:public:
        -:        -:  226:   unsigned num_vertices;
        -:        -:  227:   gl_shader_program *prog;
        -:        -:  228:   gl_shader_stage stage;
        -:        -:  229:
    #####:    #####:  230:   array_resize_visitor(unsigned num_vertices,
        -:        -:  231:                        gl_shader_program *prog,
        -:        -:  232:                        gl_shader_stage stage)
    #####:    #####:  233:   {
    #####:    #####:  234:      this->num_vertices = num_vertices;
    #####:    #####:  235:      this->prog = prog;
    #####:    #####:  236:      this->stage = stage;
    #####:    #####:  237:   }
        -:        -:  238:
    #####:    #####:  239:   virtual ~array_resize_visitor()
    #####:    #####:  240:   {
        -:        -:  241:      /* empty */
    #####:    #####:  242:   }
        -:        -:  243:
    #####:    #####:  244:   virtual ir_visitor_status visit(ir_variable *var)
        -:        -:  245:   {
    #####:    #####:  246:      if (!var->type->is_array() || var->data.mode != ir_var_shader_in ||
        -:        -:  247:          var->data.patch)
    #####:    #####:  248:         return visit_continue;
        -:        -:  249:
    #####:    #####:  250:      unsigned size = var->type->length;
        -:        -:  251:
    #####:    #####:  252:      if (stage == MESA_SHADER_GEOMETRY) {
        -:        -:  253:         /* Generate a link error if the shader has declared this array with
        -:        -:  254:          * an incorrect size.
        -:        -:  255:          */
    #####:    #####:  256:         if (!var->data.implicit_sized_array &&
    #####:    #####:  257:             size && size != this->num_vertices) {
    #####:    #####:  258:            linker_error(this->prog, "size of array %s declared as %u, "
        -:        -:  259:                         "but number of input vertices is %u\n",
    #####:    #####:  260:                         var->name, size, this->num_vertices);
    #####:    #####:  261:            return visit_continue;
        -:        -:  262:         }
        -:        -:  263:
        -:        -:  264:         /* Generate a link error if the shader attempts to access an input
        -:        -:  265:          * array using an index too large for its actual size assigned at
        -:        -:  266:          * link time.
        -:        -:  267:          */
    #####:    #####:  268:         if (var->data.max_array_access >= (int)this->num_vertices) {
    #####:    #####:  269:            linker_error(this->prog, "%s shader accesses element %i of "
        -:        -:  270:                         "%s, but only %i input vertices\n",
    #####:    #####:  271:                         _mesa_shader_stage_to_string(this->stage),
    #####:    #####:  272:                         var->data.max_array_access, var->name, this->num_vertices);
    #####:    #####:  273:            return visit_continue;
        -:        -:  274:         }
        -:        -:  275:      }
        -:        -:  276:
    #####:    #####:  277:      var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####:  278:                                                this->num_vertices);
    #####:    #####:  279:      var->data.max_array_access = this->num_vertices - 1;
        -:        -:  280:
    #####:    #####:  281:      return visit_continue;
        -:        -:  282:   }
        -:        -:  283:};
        -:        -:  284:
        -:        -:  285:/**
        -:        -:  286: * Visitor that determines the highest stream id to which a (geometry) shader
        -:        -:  287: * emits vertices. It also checks whether End{Stream}Primitive is ever called.
        -:        -:  288: */
        -:        -:  289:class find_emit_vertex_visitor : public ir_hierarchical_visitor {
        -:        -:  290:public:
    #####:    #####:  291:   find_emit_vertex_visitor(int max_allowed)
        -:        -:  292:      : max_stream_allowed(max_allowed),
        -:        -:  293:        invalid_stream_id(0),
        -:        -:  294:        invalid_stream_id_from_emit_vertex(false),
        -:        -:  295:        end_primitive_found(false),
    #####:    #####:  296:        uses_non_zero_stream(false)
        -:        -:  297:   {
        -:        -:  298:      /* empty */
    #####:    #####:  299:   }
        -:        -:  300:
    #####:    #####:  301:   virtual ir_visitor_status visit_leave(ir_emit_vertex *ir)
        -:        -:  302:   {
    #####:    #####:  303:      int stream_id = ir->stream_id();
        -:        -:  304:
    #####:    #####:  305:      if (stream_id < 0) {
    #####:    #####:  306:         invalid_stream_id = stream_id;
    #####:    #####:  307:         invalid_stream_id_from_emit_vertex = true;
    #####:    #####:  308:         return visit_stop;
        -:        -:  309:      }
        -:        -:  310:
    #####:    #####:  311:      if (stream_id > max_stream_allowed) {
    #####:    #####:  312:         invalid_stream_id = stream_id;
    #####:    #####:  313:         invalid_stream_id_from_emit_vertex = true;
    #####:    #####:  314:         return visit_stop;
        -:        -:  315:      }
        -:        -:  316:
    #####:    #####:  317:      if (stream_id != 0)
    #####:    #####:  318:         uses_non_zero_stream = true;
        -:        -:  319:
    #####:    #####:  320:      return visit_continue;
        -:        -:  321:   }
        -:        -:  322:
    #####:    #####:  323:   virtual ir_visitor_status visit_leave(ir_end_primitive *ir)
        -:        -:  324:   {
    #####:    #####:  325:      end_primitive_found = true;
        -:        -:  326:
    #####:    #####:  327:      int stream_id = ir->stream_id();
        -:        -:  328:
    #####:    #####:  329:      if (stream_id < 0) {
    #####:    #####:  330:         invalid_stream_id = stream_id;
    #####:    #####:  331:         invalid_stream_id_from_emit_vertex = false;
    #####:    #####:  332:         return visit_stop;
        -:        -:  333:      }
        -:        -:  334:
    #####:    #####:  335:      if (stream_id > max_stream_allowed) {
    #####:    #####:  336:         invalid_stream_id = stream_id;
    #####:    #####:  337:         invalid_stream_id_from_emit_vertex = false;
    #####:    #####:  338:         return visit_stop;
        -:        -:  339:      }
        -:        -:  340:
    #####:    #####:  341:      if (stream_id != 0)
    #####:    #####:  342:         uses_non_zero_stream = true;
        -:        -:  343:
    #####:    #####:  344:      return visit_continue;
        -:        -:  345:   }
        -:        -:  346:
    #####:    #####:  347:   bool error()
        -:        -:  348:   {
    #####:    #####:  349:      return invalid_stream_id != 0;
        -:        -:  350:   }
        -:        -:  351:
    #####:    #####:  352:   const char *error_func()
        -:        -:  353:   {
    #####:    #####:  354:      return invalid_stream_id_from_emit_vertex ?
    #####:    #####:  355:         "EmitStreamVertex" : "EndStreamPrimitive";
        -:        -:  356:   }
        -:        -:  357:
    #####:    #####:  358:   int error_stream()
        -:        -:  359:   {
    #####:    #####:  360:      return invalid_stream_id;
        -:        -:  361:   }
        -:        -:  362:
    #####:    #####:  363:   bool uses_streams()
        -:        -:  364:   {
    #####:    #####:  365:      return uses_non_zero_stream;
        -:        -:  366:   }
        -:        -:  367:
    #####:    #####:  368:   bool uses_end_primitive()
        -:        -:  369:   {
    #####:    #####:  370:      return end_primitive_found;
        -:        -:  371:   }
        -:        -:  372:
        -:        -:  373:private:
        -:        -:  374:   int max_stream_allowed;
        -:        -:  375:   int invalid_stream_id;
        -:        -:  376:   bool invalid_stream_id_from_emit_vertex;
        -:        -:  377:   bool end_primitive_found;
        -:        -:  378:   bool uses_non_zero_stream;
        -:        -:  379:};
        -:        -:  380:
        -:        -:  381:/* Class that finds array derefs and check if indexes are dynamic. */
        -:        -:  382:class dynamic_sampler_array_indexing_visitor : public ir_hierarchical_visitor
        -:        -:  383:{
        -:        -:  384:public:
        1:        1:  385:   dynamic_sampler_array_indexing_visitor() :
        1:        1:  386:      dynamic_sampler_array_indexing(false)
        -:        -:  387:   {
        1:        1:  388:   }
        -:        -:  389:
    #####:    #####:  390:   ir_visitor_status visit_enter(ir_dereference_array *ir)
        -:        -:  391:   {
    #####:    #####:  392:      if (!ir->variable_referenced())
    #####:    #####:  393:         return visit_continue;
        -:        -:  394:
    #####:    #####:  395:      if (!ir->variable_referenced()->type->contains_sampler())
    #####:    #####:  396:         return visit_continue;
        -:        -:  397:
    #####:    #####:  398:      if (!ir->array_index->constant_expression_value()) {
    #####:    #####:  399:         dynamic_sampler_array_indexing = true;
    #####:    #####:  400:         return visit_stop;
        -:        -:  401:      }
    #####:    #####:  402:      return visit_continue;
        -:        -:  403:   }
        -:        -:  404:
        1:        1:  405:   bool uses_dynamic_sampler_array_indexing()
        -:        -:  406:   {
        1:        1:  407:      return dynamic_sampler_array_indexing;
        -:        -:  408:   }
        -:        -:  409:
        -:        -:  410:private:
        -:        -:  411:   bool dynamic_sampler_array_indexing;
        -:        -:  412:};
        -:        -:  413:
        -:        -:  414:} /* anonymous namespace */
        -:        -:  415:
        -:        -:  416:void
    #####:    #####:  417:linker_error(gl_shader_program *prog, const char *fmt, ...)
        -:        -:  418:{
        -:        -:  419:   va_list ap;
        -:        -:  420:
    #####:    #####:  421:   ralloc_strcat(&prog->data->InfoLog, "error: ");
    #####:    #####:  422:   va_start(ap, fmt);
    #####:    #####:  423:   ralloc_vasprintf_append(&prog->data->InfoLog, fmt, ap);
    #####:    #####:  424:   va_end(ap);
        -:        -:  425:
    #####:    #####:  426:   prog->data->LinkStatus = linking_failure;
    #####:    #####:  427:}
        -:        -:  428:
        -:        -:  429:
        -:        -:  430:void
    #####:    #####:  431:linker_warning(gl_shader_program *prog, const char *fmt, ...)
        -:        -:  432:{
        -:        -:  433:   va_list ap;
        -:        -:  434:
    #####:    #####:  435:   ralloc_strcat(&prog->data->InfoLog, "warning: ");
    #####:    #####:  436:   va_start(ap, fmt);
    #####:    #####:  437:   ralloc_vasprintf_append(&prog->data->InfoLog, fmt, ap);
    #####:    #####:  438:   va_end(ap);
        -:        -:  439:
    #####:    #####:  440:}
        -:        -:  441:
        -:        -:  442:
        -:        -:  443:/**
        -:        -:  444: * Given a string identifying a program resource, break it into a base name
        -:        -:  445: * and an optional array index in square brackets.
        -:        -:  446: *
        -:        -:  447: * If an array index is present, \c out_base_name_end is set to point to the
        -:        -:  448: * "[" that precedes the array index, and the array index itself is returned
        -:        -:  449: * as a long.
        -:        -:  450: *
        -:        -:  451: * If no array index is present (or if the array index is negative or
        -:        -:  452: * mal-formed), \c out_base_name_end, is set to point to the null terminator
        -:        -:  453: * at the end of the input string, and -1 is returned.
        -:        -:  454: *
        -:        -:  455: * Only the final array index is parsed; if the string contains other array
        -:        -:  456: * indices (or structure field accesses), they are left in the base name.
        -:        -:  457: *
        -:        -:  458: * No attempt is made to check that the base name is properly formed;
        -:        -:  459: * typically the caller will look up the base name in a hash table, so
        -:        -:  460: * ill-formed base names simply turn into hash table lookup failures.
        -:        -:  461: */
        -:        -:  462:long
    #####:    #####:  463:parse_program_resource_name(const GLchar *name,
        -:        -:  464:                            const GLchar **out_base_name_end)
        -:        -:  465:{
        -:        -:  466:   /* Section 7.3.1 ("Program Interfaces") of the OpenGL 4.3 spec says:
        -:        -:  467:    *
        -:        -:  468:    *     "When an integer array element or block instance number is part of
        -:        -:  469:    *     the name string, it will be specified in decimal form without a "+"
        -:        -:  470:    *     or "-" sign or any extra leading zeroes. Additionally, the name
        -:        -:  471:    *     string will not include white space anywhere in the string."
        -:        -:  472:    */
        -:        -:  473:
    #####:    #####:  474:   const size_t len = strlen(name);
    #####:    #####:  475:   *out_base_name_end = name + len;
        -:        -:  476:
    #####:    #####:  477:   if (len == 0 || name[len-1] != ']')
    #####:    #####:  478:      return -1;
        -:        -:  479:
        -:        -:  480:   /* Walk backwards over the string looking for a non-digit character.  This
        -:        -:  481:    * had better be the opening bracket for an array index.
        -:        -:  482:    *
        -:        -:  483:    * Initially, i specifies the location of the ']'.  Since the string may
        -:        -:  484:    * contain only the ']' charcater, walk backwards very carefully.
        -:        -:  485:    */
        -:        -:  486:   unsigned i;
    #####:    #####:  487:   for (i = len - 1; (i > 0) && isdigit(name[i-1]); --i)
        -:        -:  488:      /* empty */ ;
        -:        -:  489:
    #####:    #####:  490:   if ((i == 0) || name[i-1] != '[')
    #####:    #####:  491:      return -1;
        -:        -:  492:
    #####:    #####:  493:   long array_index = strtol(&name[i], NULL, 10);
    #####:    #####:  494:   if (array_index < 0)
    #####:    #####:  495:      return -1;
        -:        -:  496:
        -:        -:  497:   /* Check for leading zero */
    #####:    #####:  498:   if (name[i] == '0' && name[i+1] != ']')
    #####:    #####:  499:      return -1;
        -:        -:  500:
    #####:    #####:  501:   *out_base_name_end = name + (i - 1);
    #####:    #####:  502:   return array_index;
        -:        -:  503:}
        -:        -:  504:
        -:        -:  505:
        -:        -:  506:void
        3:        3:  507:link_invalidate_variable_locations(exec_list *ir)
        -:        -:  508:{
       14:       14:  509:   foreach_in_list(ir_instruction, node, ir) {
       11:       11:  510:      ir_variable *const var = node->as_variable();
        -:        -:  511:
       11:       11:  512:      if (var == NULL)
        3:        3:  513:         continue;
        -:        -:  514:
        -:        -:  515:      /* Only assign locations for variables that lack an explicit location.
        -:        -:  516:       * Explicit locations are set for all built-in variables, generic vertex
        -:        -:  517:       * shader inputs (via layout(location=...)), and generic fragment shader
        -:        -:  518:       * outputs (also via layout(location=...)).
        -:        -:  519:       */
        8:        8:  520:      if (!var->data.explicit_location) {
        3:        3:  521:         var->data.location = -1;
        3:        3:  522:         var->data.location_frac = 0;
        -:        -:  523:      }
        -:        -:  524:
        -:        -:  525:      /* ir_variable::is_unmatched_generic_inout is used by the linker while
        -:        -:  526:       * connecting outputs from one stage to inputs of the next stage.
        -:        -:  527:       */
       13:       13:  528:      if (var->data.explicit_location &&
        5:        5:  529:          var->data.location < VARYING_SLOT_VAR0) {
        5:        5:  530:         var->data.is_unmatched_generic_inout = 0;
        -:        -:  531:      } else {
        3:        3:  532:         var->data.is_unmatched_generic_inout = 1;
        -:        -:  533:      }
        -:        -:  534:   }
        3:        3:  535:}
        -:        -:  536:
        -:        -:  537:
        -:        -:  538:/**
        -:        -:  539: * Set clip_distance_array_size based and cull_distance_array_size on the given
        -:        -:  540: * shader.
        -:        -:  541: *
        -:        -:  542: * Also check for errors based on incorrect usage of gl_ClipVertex and
        -:        -:  543: * gl_ClipDistance and gl_CullDistance.
        -:        -:  544: * Additionally test whether the arrays gl_ClipDistance and gl_CullDistance
        -:        -:  545: * exceed the maximum size defined by gl_MaxCombinedClipAndCullDistances.
        -:        -:  546: *
        -:        -:  547: * Return false if an error was reported.
        -:        -:  548: */
        -:        -:  549:static void
        1:        1:  550:analyze_clip_cull_usage(struct gl_shader_program *prog,
        -:        -:  551:                        struct gl_linked_shader *shader,
        -:        -:  552:                        struct gl_context *ctx,
        -:        -:  553:                        GLuint *clip_distance_array_size,
        -:        -:  554:                        GLuint *cull_distance_array_size)
        -:        -:  555:{
        1:        1:  556:   *clip_distance_array_size = 0;
        1:        1:  557:   *cull_distance_array_size = 0;
        -:        -:  558:
        1:        1:  559:   if (prog->data->Version >= (prog->IsES ? 300 : 130)) {
        -:        -:  560:      /* From section 7.1 (Vertex Shader Special Variables) of the
        -:        -:  561:       * GLSL 1.30 spec:
        -:        -:  562:       *
        -:        -:  563:       *   "It is an error for a shader to statically write both
        -:        -:  564:       *   gl_ClipVertex and gl_ClipDistance."
        -:        -:  565:       *
        -:        -:  566:       * This does not apply to GLSL ES shaders, since GLSL ES defines neither
        -:        -:  567:       * gl_ClipVertex nor gl_ClipDistance. However with
        -:        -:  568:       * GL_EXT_clip_cull_distance, this functionality is exposed in ES 3.0.
        -:        -:  569:       */
        1:        1:  570:      find_assignment_visitor clip_distance("gl_ClipDistance");
        1:        1:  571:      find_assignment_visitor cull_distance("gl_CullDistance");
        -:        -:  572:
        1:        1:  573:      clip_distance.run(shader->ir);
        1:        1:  574:      cull_distance.run(shader->ir);
        -:        -:  575:
        -:        -:  576:      /* From the ARB_cull_distance spec:
        -:        -:  577:       *
        -:        -:  578:       * It is a compile-time or link-time error for the set of shaders forming
        -:        -:  579:       * a program to statically read or write both gl_ClipVertex and either
        -:        -:  580:       * gl_ClipDistance or gl_CullDistance.
        -:        -:  581:       *
        -:        -:  582:       * This does not apply to GLSL ES shaders, since GLSL ES doesn't define
        -:        -:  583:       * gl_ClipVertex.
        -:        -:  584:       */
        1:        1:  585:      if (!prog->IsES) {
        1:        1:  586:         find_assignment_visitor clip_vertex("gl_ClipVertex");
        -:        -:  587:
        1:        1:  588:         clip_vertex.run(shader->ir);
        -:        -:  589:
        1:        1:  590:         if (clip_vertex.variable_found() && clip_distance.variable_found()) {
    #####:    #####:  591:            linker_error(prog, "%s shader writes to both `gl_ClipVertex' "
        -:        -:  592:                         "and `gl_ClipDistance'\n",
    #####:    #####:  593:                         _mesa_shader_stage_to_string(shader->Stage));
    #####:    #####:  594:            return;
        -:        -:  595:         }
        1:        1:  596:         if (clip_vertex.variable_found() && cull_distance.variable_found()) {
    #####:    #####:  597:            linker_error(prog, "%s shader writes to both `gl_ClipVertex' "
        -:        -:  598:                         "and `gl_CullDistance'\n",
    #####:    #####:  599:                         _mesa_shader_stage_to_string(shader->Stage));
    #####:    #####:  600:            return;
        -:        -:  601:         }
        -:        -:  602:      }
        -:        -:  603:
        1:        1:  604:      if (clip_distance.variable_found()) {
        -:        -:  605:         ir_variable *clip_distance_var =
    #####:    #####:  606:                shader->symbols->get_variable("gl_ClipDistance");
    #####:    #####:  607:         assert(clip_distance_var);
    #####:    #####:  608:         *clip_distance_array_size = clip_distance_var->type->length;
        -:        -:  609:      }
        1:        1:  610:      if (cull_distance.variable_found()) {
        -:        -:  611:         ir_variable *cull_distance_var =
    #####:    #####:  612:                shader->symbols->get_variable("gl_CullDistance");
    #####:    #####:  613:         assert(cull_distance_var);
    #####:    #####:  614:         *cull_distance_array_size = cull_distance_var->type->length;
        -:        -:  615:      }
        -:        -:  616:      /* From the ARB_cull_distance spec:
        -:        -:  617:       *
        -:        -:  618:       * It is a compile-time or link-time error for the set of shaders forming
        -:        -:  619:       * a program to have the sum of the sizes of the gl_ClipDistance and
        -:        -:  620:       * gl_CullDistance arrays to be larger than
        -:        -:  621:       * gl_MaxCombinedClipAndCullDistances.
        -:        -:  622:       */
        2:        2:  623:      if ((*clip_distance_array_size + *cull_distance_array_size) >
        1:        1:  624:          ctx->Const.MaxClipPlanes) {
    #####:    #####:  625:          linker_error(prog, "%s shader: the combined size of "
        -:        -:  626:                       "'gl_ClipDistance' and 'gl_CullDistance' size cannot "
        -:        -:  627:                       "be larger than "
        -:        -:  628:                       "gl_MaxCombinedClipAndCullDistances (%u)",
    #####:    #####:  629:                       _mesa_shader_stage_to_string(shader->Stage),
    #####:    #####:  630:                       ctx->Const.MaxClipPlanes);
        -:        -:  631:      }
        -:        -:  632:   }
        -:        -:  633:}
        -:        -:  634:
        -:        -:  635:
        -:        -:  636:/**
        -:        -:  637: * Verify that a vertex shader executable meets all semantic requirements.
        -:        -:  638: *
        -:        -:  639: * Also sets info.clip_distance_array_size and
        -:        -:  640: * info.cull_distance_array_size as a side effect.
        -:        -:  641: *
        -:        -:  642: * \param shader  Vertex shader executable to be verified
        -:        -:  643: */
        -:        -:  644:void
        1:        1:  645:validate_vertex_shader_executable(struct gl_shader_program *prog,
        -:        -:  646:                                  struct gl_linked_shader *shader,
        -:        -:  647:                                  struct gl_context *ctx)
        -:        -:  648:{
        1:        1:  649:   if (shader == NULL)
    #####:    #####:  650:      return;
        -:        -:  651:
        -:        -:  652:   /* From the GLSL 1.10 spec, page 48:
        -:        -:  653:    *
        -:        -:  654:    *     "The variable gl_Position is available only in the vertex
        -:        -:  655:    *      language and is intended for writing the homogeneous vertex
        -:        -:  656:    *      position. All executions of a well-formed vertex shader
        -:        -:  657:    *      executable must write a value into this variable. [...] The
        -:        -:  658:    *      variable gl_Position is available only in the vertex
        -:        -:  659:    *      language and is intended for writing the homogeneous vertex
        -:        -:  660:    *      position. All executions of a well-formed vertex shader
        -:        -:  661:    *      executable must write a value into this variable."
        -:        -:  662:    *
        -:        -:  663:    * while in GLSL 1.40 this text is changed to:
        -:        -:  664:    *
        -:        -:  665:    *     "The variable gl_Position is available only in the vertex
        -:        -:  666:    *      language and is intended for writing the homogeneous vertex
        -:        -:  667:    *      position. It can be written at any time during shader
        -:        -:  668:    *      execution. It may also be read back by a vertex shader
        -:        -:  669:    *      after being written. This value will be used by primitive
        -:        -:  670:    *      assembly, clipping, culling, and other fixed functionality
        -:        -:  671:    *      operations, if present, that operate on primitives after
        -:        -:  672:    *      vertex processing has occurred. Its value is undefined if
        -:        -:  673:    *      the vertex shader executable does not write gl_Position."
        -:        -:  674:    *
        -:        -:  675:    * All GLSL ES Versions are similar to GLSL 1.40--failing to write to
        -:        -:  676:    * gl_Position is not an error.
        -:        -:  677:    */
        1:        1:  678:   if (prog->data->Version < (prog->IsES ? 300 : 140)) {
        1:        1:  679:      find_assignment_visitor find("gl_Position");
        1:        1:  680:      find.run(shader->ir);
        1:        1:  681:      if (!find.variable_found()) {
    #####:    #####:  682:        if (prog->IsES) {
        -:        -:  683:          linker_warning(prog,
        -:        -:  684:                         "vertex shader does not write to `gl_Position'. "
    #####:    #####:  685:                         "Its value is undefined. \n");
        -:        -:  686:        } else {
        -:        -:  687:          linker_error(prog,
    #####:    #####:  688:                       "vertex shader does not write to `gl_Position'. \n");
        -:        -:  689:        }
    #####:    #####:  690:         return;
        -:        -:  691:      }
        -:        -:  692:   }
        -:        -:  693:
        2:        2:  694:   analyze_clip_cull_usage(prog, shader, ctx,
        1:        1:  695:                           &shader->Program->info.clip_distance_array_size,
        2:        2:  696:                           &shader->Program->info.cull_distance_array_size);
        -:        -:  697:}
        -:        -:  698:
        -:        -:  699:void
    #####:    #####:  700:validate_tess_eval_shader_executable(struct gl_shader_program *prog,
        -:        -:  701:                                     struct gl_linked_shader *shader,
        -:        -:  702:                                     struct gl_context *ctx)
        -:        -:  703:{
    #####:    #####:  704:   if (shader == NULL)
    #####:    #####:  705:      return;
        -:        -:  706:
    #####:    #####:  707:   analyze_clip_cull_usage(prog, shader, ctx,
    #####:    #####:  708:                           &shader->Program->info.clip_distance_array_size,
    #####:    #####:  709:                           &shader->Program->info.cull_distance_array_size);
        -:        -:  710:}
        -:        -:  711:
        -:        -:  712:
        -:        -:  713:/**
        -:        -:  714: * Verify that a fragment shader executable meets all semantic requirements
        -:        -:  715: *
        -:        -:  716: * \param shader  Fragment shader executable to be verified
        -:        -:  717: */
        -:        -:  718:void
        2:        2:  719:validate_fragment_shader_executable(struct gl_shader_program *prog,
        -:        -:  720:                                    struct gl_linked_shader *shader)
        -:        -:  721:{
        2:        2:  722:   if (shader == NULL)
    #####:    #####:  723:      return;
        -:        -:  724:
        2:        2:  725:   find_assignment_visitor frag_color("gl_FragColor");
        2:        2:  726:   find_assignment_visitor frag_data("gl_FragData");
        -:        -:  727:
        2:        2:  728:   frag_color.run(shader->ir);
        2:        2:  729:   frag_data.run(shader->ir);
        -:        -:  730:
        2:        2:  731:   if (frag_color.variable_found() && frag_data.variable_found()) {
        -:        -:  732:      linker_error(prog,  "fragment shader writes to both "
    #####:    #####:  733:                   "`gl_FragColor' and `gl_FragData'\n");
        -:        -:  734:   }
        -:        -:  735:}
        -:        -:  736:
        -:        -:  737:/**
        -:        -:  738: * Verify that a geometry shader executable meets all semantic requirements
        -:        -:  739: *
        -:        -:  740: * Also sets prog->Geom.VerticesIn, and info.clip_distance_array_sizeand
        -:        -:  741: * info.cull_distance_array_size as a side effect.
        -:        -:  742: *
        -:        -:  743: * \param shader Geometry shader executable to be verified
        -:        -:  744: */
        -:        -:  745:void
    #####:    #####:  746:validate_geometry_shader_executable(struct gl_shader_program *prog,
        -:        -:  747:                                    struct gl_linked_shader *shader,
        -:        -:  748:                                    struct gl_context *ctx)
        -:        -:  749:{
    #####:    #####:  750:   if (shader == NULL)
    #####:    #####:  751:      return;
        -:        -:  752:
        -:        -:  753:   unsigned num_vertices =
    #####:    #####:  754:      vertices_per_prim(shader->Program->info.gs.input_primitive);
    #####:    #####:  755:   prog->Geom.VerticesIn = num_vertices;
        -:        -:  756:
    #####:    #####:  757:   analyze_clip_cull_usage(prog, shader, ctx,
    #####:    #####:  758:                           &shader->Program->info.clip_distance_array_size,
    #####:    #####:  759:                           &shader->Program->info.cull_distance_array_size);
        -:        -:  760:}
        -:        -:  761:
        -:        -:  762:/**
        -:        -:  763: * Check if geometry shaders emit to non-zero streams and do corresponding
        -:        -:  764: * validations.
        -:        -:  765: */
        -:        -:  766:static void
        2:        2:  767:validate_geometry_shader_emissions(struct gl_context *ctx,
        -:        -:  768:                                   struct gl_shader_program *prog)
        -:        -:  769:{
        2:        2:  770:   struct gl_linked_shader *sh = prog->_LinkedShaders[MESA_SHADER_GEOMETRY];
        -:        -:  771:
        2:        2:  772:   if (sh != NULL) {
    #####:    #####:  773:      find_emit_vertex_visitor emit_vertex(ctx->Const.MaxVertexStreams - 1);
    #####:    #####:  774:      emit_vertex.run(sh->ir);
    #####:    #####:  775:      if (emit_vertex.error()) {
    #####:    #####:  776:         linker_error(prog, "Invalid call %s(%d). Accepted values for the "
        -:        -:  777:                      "stream parameter are in the range [0, %d].\n",
        -:        -:  778:                      emit_vertex.error_func(),
        -:        -:  779:                      emit_vertex.error_stream(),
    #####:    #####:  780:                      ctx->Const.MaxVertexStreams - 1);
        -:        -:  781:      }
    #####:    #####:  782:      prog->Geom.UsesStreams = emit_vertex.uses_streams();
    #####:    #####:  783:      prog->Geom.UsesEndPrimitive = emit_vertex.uses_end_primitive();
        -:        -:  784:
        -:        -:  785:      /* From the ARB_gpu_shader5 spec:
        -:        -:  786:       *
        -:        -:  787:       *   "Multiple vertex streams are supported only if the output primitive
        -:        -:  788:       *    type is declared to be "points".  A program will fail to link if it
        -:        -:  789:       *    contains a geometry shader calling EmitStreamVertex() or
        -:        -:  790:       *    EndStreamPrimitive() if its output primitive type is not "points".
        -:        -:  791:       *
        -:        -:  792:       * However, in the same spec:
        -:        -:  793:       *
        -:        -:  794:       *   "The function EmitVertex() is equivalent to calling EmitStreamVertex()
        -:        -:  795:       *    with <stream> set to zero."
        -:        -:  796:       *
        -:        -:  797:       * And:
        -:        -:  798:       *
        -:        -:  799:       *   "The function EndPrimitive() is equivalent to calling
        -:        -:  800:       *    EndStreamPrimitive() with <stream> set to zero."
        -:        -:  801:       *
        -:        -:  802:       * Since we can call EmitVertex() and EndPrimitive() when we output
        -:        -:  803:       * primitives other than points, calling EmitStreamVertex(0) or
        -:        -:  804:       * EmitEndPrimitive(0) should not produce errors. This it also what Nvidia
        -:        -:  805:       * does. Currently we only set prog->Geom.UsesStreams to TRUE when
        -:        -:  806:       * EmitStreamVertex() or EmitEndPrimitive() are called with a non-zero
        -:        -:  807:       * stream.
        -:        -:  808:       */
    #####:    #####:  809:      if (prog->Geom.UsesStreams &&
    #####:    #####:  810:          sh->Program->info.gs.output_primitive != GL_POINTS) {
        -:        -:  811:         linker_error(prog, "EmitStreamVertex(n) and EndStreamPrimitive(n) "
    #####:    #####:  812:                      "with n>0 requires point output\n");
        -:        -:  813:      }
        -:        -:  814:   }
        2:        2:  815:}
        -:        -:  816:
        -:        -:  817:bool
    #####:    #####:  818:validate_intrastage_arrays(struct gl_shader_program *prog,
        -:        -:  819:                           ir_variable *const var,
        -:        -:  820:                           ir_variable *const existing)
        -:        -:  821:{
        -:        -:  822:   /* Consider the types to be "the same" if both types are arrays
        -:        -:  823:    * of the same type and one of the arrays is implicitly sized.
        -:        -:  824:    * In addition, set the type of the linked variable to the
        -:        -:  825:    * explicitly sized array.
        -:        -:  826:    */
    #####:    #####:  827:   if (var->type->is_array() && existing->type->is_array()) {
    #####:    #####:  828:      if ((var->type->fields.array == existing->type->fields.array) &&
    #####:    #####:  829:          ((var->type->length == 0)|| (existing->type->length == 0))) {
    #####:    #####:  830:         if (var->type->length != 0) {
    #####:    #####:  831:            if ((int)var->type->length <= existing->data.max_array_access) {
    #####:    #####:  832:               linker_error(prog, "%s `%s' declared as type "
        -:        -:  833:                           "`%s' but outermost dimension has an index"
        -:        -:  834:                           " of `%i'\n",
        -:        -:  835:                           mode_string(var),
    #####:    #####:  836:                           var->name, var->type->name,
    #####:    #####:  837:                           existing->data.max_array_access);
        -:        -:  838:            }
    #####:    #####:  839:            existing->type = var->type;
    #####:    #####:  840:            return true;
    #####:    #####:  841:         } else if (existing->type->length != 0) {
    #####:    #####:  842:            if((int)existing->type->length <= var->data.max_array_access &&
    #####:    #####:  843:               !existing->data.from_ssbo_unsized_array) {
    #####:    #####:  844:               linker_error(prog, "%s `%s' declared as type "
        -:        -:  845:                           "`%s' but outermost dimension has an index"
        -:        -:  846:                           " of `%i'\n",
        -:        -:  847:                           mode_string(var),
    #####:    #####:  848:                           var->name, existing->type->name,
    #####:    #####:  849:                           var->data.max_array_access);
        -:        -:  850:            }
    #####:    #####:  851:            return true;
        -:        -:  852:         }
        -:        -:  853:      } else {
        -:        -:  854:         /* The arrays of structs could have different glsl_type pointers but
        -:        -:  855:          * they are actually the same type. Use record_compare() to check that.
        -:        -:  856:          */
    #####:    #####:  857:         if (existing->type->fields.array->is_record() &&
    #####:    #####:  858:             var->type->fields.array->is_record() &&
    #####:    #####:  859:             existing->type->fields.array->record_compare(var->type->fields.array))
    #####:    #####:  860:            return true;
        -:        -:  861:      }
        -:        -:  862:   }
    #####:    #####:  863:   return false;
        -:        -:  864:}
        -:        -:  865:
        -:        -:  866:
        -:        -:  867:/**
        -:        -:  868: * Perform validation of global variables used across multiple shaders
        -:        -:  869: */
        -:        -:  870:void
        6:        6:  871:cross_validate_globals(struct gl_shader_program *prog,
        -:        -:  872:                       struct exec_list *ir, glsl_symbol_table *variables,
        -:        -:  873:                       bool uniforms_only)
        -:        -:  874:{
      224:      224:  875:   foreach_in_list(ir_instruction, node, ir) {
      218:      218:  876:      ir_variable *const var = node->as_variable();
        -:        -:  877:
      218:      218:  878:      if (var == NULL)
        8:        8:  879:         continue;
        -:        -:  880:
      210:      210:  881:      if (uniforms_only && (var->data.mode != ir_var_uniform && var->data.mode != ir_var_shader_storage))
       43:       43:  882:         continue;
        -:        -:  883:
        -:        -:  884:      /* don't cross validate subroutine uniforms */
      167:      167:  885:      if (var->type->contains_subroutine())
    #####:    #####:  886:         continue;
        -:        -:  887:
        -:        -:  888:      /* Don't cross validate interface instances. These are only relevant
        -:        -:  889:       * inside a shader. The cross validation is done at the Interface Block
        -:        -:  890:       * name level.
        -:        -:  891:       */
      167:      167:  892:      if (var->is_interface_instance())
    #####:    #####:  893:         continue;
        -:        -:  894:
        -:        -:  895:      /* Don't cross validate temporaries that are at global scope.  These
        -:        -:  896:       * will eventually get pulled into the shaders 'main'.
        -:        -:  897:       */
      167:      167:  898:      if (var->data.mode == ir_var_temporary)
    #####:    #####:  899:         continue;
        -:        -:  900:
        -:        -:  901:      /* If a global with this name has already been seen, verify that the
        -:        -:  902:       * new instance has the same type.  In addition, if the globals have
        -:        -:  903:       * initializers, the values of the initializers must be the same.
        -:        -:  904:       */
      167:      167:  905:      ir_variable *const existing = variables->get_variable(var->name);
      167:      167:  906:      if (existing != NULL) {
        -:        -:  907:         /* Check if types match. */
        9:        9:  908:         if (var->type != existing->type) {
    #####:    #####:  909:            if (!validate_intrastage_arrays(prog, var, existing)) {
    #####:    #####:  910:               if (var->type->is_record() && existing->type->is_record()
    #####:    #####:  911:                   && existing->type->record_compare(var->type)) {
    #####:    #####:  912:                   existing->type = var->type;
        -:        -:  913:               } else {
        -:        -:  914:                  /* If it is an unsized array in a Shader Storage Block,
        -:        -:  915:                   * two different shaders can access to different elements.
        -:        -:  916:                   * Because of that, they might be converted to different
        -:        -:  917:                   * sized arrays, then check that they are compatible but
        -:        -:  918:                   * ignore the array size.
        -:        -:  919:                   */
    #####:    #####:  920:                  if (!(var->data.mode == ir_var_shader_storage &&
    #####:    #####:  921:                        var->data.from_ssbo_unsized_array &&
    #####:    #####:  922:                        existing->data.mode == ir_var_shader_storage &&
        -:        -:  923:                        existing->data.from_ssbo_unsized_array &&
    #####:    #####:  924:                        var->type->gl_type == existing->type->gl_type)) {
    #####:    #####:  925:                     linker_error(prog, "%s `%s' declared as type "
        -:        -:  926:                                  "`%s' and type `%s'\n",
        -:        -:  927:                                  mode_string(var),
    #####:    #####:  928:                                  var->name, var->type->name,
    #####:    #####:  929:                                  existing->type->name);
    #####:    #####:  930:                     return;
        -:        -:  931:                  }
        -:        -:  932:               }
        -:        -:  933:            }
        -:        -:  934:         }
        -:        -:  935:
        9:        9:  936:         if (var->data.explicit_location) {
    #####:    #####:  937:            if (existing->data.explicit_location
    #####:    #####:  938:                && (var->data.location != existing->data.location)) {
    #####:    #####:  939:               linker_error(prog, "explicit locations for %s "
        -:        -:  940:                            "`%s' have differing values\n",
    #####:    #####:  941:                            mode_string(var), var->name);
    #####:    #####:  942:               return;
        -:        -:  943:            }
        -:        -:  944:
    #####:    #####:  945:            if (var->data.location_frac != existing->data.location_frac) {
    #####:    #####:  946:               linker_error(prog, "explicit components for %s `%s' have "
    #####:    #####:  947:                            "differing values\n", mode_string(var), var->name);
    #####:    #####:  948:               return;
        -:        -:  949:            }
        -:        -:  950:
    #####:    #####:  951:            existing->data.location = var->data.location;
    #####:    #####:  952:            existing->data.explicit_location = true;
        -:        -:  953:         } else {
        -:        -:  954:            /* Check if uniform with implicit location was marked explicit
        -:        -:  955:             * by earlier shader stage. If so, mark it explicit in this stage
        -:        -:  956:             * too to make sure later processing does not treat it as
        -:        -:  957:             * implicit one.
        -:        -:  958:             */
        9:        9:  959:            if (existing->data.explicit_location) {
    #####:    #####:  960:               var->data.location = existing->data.location;
    #####:    #####:  961:               var->data.explicit_location = true;
        -:        -:  962:            }
        -:        -:  963:         }
        -:        -:  964:
        -:        -:  965:         /* From the GLSL 4.20 specification:
        -:        -:  966:          * "A link error will result if two compilation units in a program
        -:        -:  967:          *  specify different integer-constant bindings for the same
        -:        -:  968:          *  opaque-uniform name.  However, it is not an error to specify a
        -:        -:  969:          *  binding on some but not all declarations for the same name"
        -:        -:  970:          */
        9:        9:  971:         if (var->data.explicit_binding) {
    #####:    #####:  972:            if (existing->data.explicit_binding &&
    #####:    #####:  973:                var->data.binding != existing->data.binding) {
    #####:    #####:  974:               linker_error(prog, "explicit bindings for %s "
        -:        -:  975:                            "`%s' have differing values\n",
    #####:    #####:  976:                            mode_string(var), var->name);
    #####:    #####:  977:               return;
        -:        -:  978:            }
        -:        -:  979:
    #####:    #####:  980:            existing->data.binding = var->data.binding;
    #####:    #####:  981:            existing->data.explicit_binding = true;
        -:        -:  982:         }
        -:        -:  983:
        9:        9:  984:         if (var->type->contains_atomic() &&
    #####:    #####:  985:             var->data.offset != existing->data.offset) {
    #####:    #####:  986:            linker_error(prog, "offset specifications for %s "
        -:        -:  987:                         "`%s' have differing values\n",
    #####:    #####:  988:                         mode_string(var), var->name);
    #####:    #####:  989:            return;
        -:        -:  990:         }
        -:        -:  991:
        -:        -:  992:         /* Validate layout qualifiers for gl_FragDepth.
        -:        -:  993:          *
        -:        -:  994:          * From the AMD/ARB_conservative_depth specs:
        -:        -:  995:          *
        -:        -:  996:          *    "If gl_FragDepth is redeclared in any fragment shader in a
        -:        -:  997:          *    program, it must be redeclared in all fragment shaders in
        -:        -:  998:          *    that program that have static assignments to
        -:        -:  999:          *    gl_FragDepth. All redeclarations of gl_FragDepth in all
        -:        -: 1000:          *    fragment shaders in a single program must have the same set
        -:        -: 1001:          *    of qualifiers."
        -:        -: 1002:          */
        9:        9: 1003:         if (strcmp(var->name, "gl_FragDepth") == 0) {
    #####:    #####: 1004:            bool layout_declared = var->data.depth_layout != ir_depth_layout_none;
        -:        -: 1005:            bool layout_differs =
    #####:    #####: 1006:               var->data.depth_layout != existing->data.depth_layout;
        -:        -: 1007:
    #####:    #####: 1008:            if (layout_declared && layout_differs) {
        -:        -: 1009:               linker_error(prog,
        -:        -: 1010:                            "All redeclarations of gl_FragDepth in all "
        -:        -: 1011:                            "fragment shaders in a single program must have "
    #####:    #####: 1012:                            "the same set of qualifiers.\n");
        -:        -: 1013:            }
        -:        -: 1014:
    #####:    #####: 1015:            if (var->data.used && layout_differs) {
        -:        -: 1016:               linker_error(prog,
        -:        -: 1017:                            "If gl_FragDepth is redeclared with a layout "
        -:        -: 1018:                            "qualifier in any fragment shader, it must be "
        -:        -: 1019:                            "redeclared with the same layout qualifier in "
        -:        -: 1020:                            "all fragment shaders that have assignments to "
    #####:    #####: 1021:                            "gl_FragDepth\n");
        -:        -: 1022:            }
        -:        -: 1023:         }
        -:        -: 1024:
        -:        -: 1025:         /* Page 35 (page 41 of the PDF) of the GLSL 4.20 spec says:
        -:        -: 1026:          *
        -:        -: 1027:          *     "If a shared global has multiple initializers, the
        -:        -: 1028:          *     initializers must all be constant expressions, and they
        -:        -: 1029:          *     must all have the same value. Otherwise, a link error will
        -:        -: 1030:          *     result. (A shared global having only one initializer does
        -:        -: 1031:          *     not require that initializer to be a constant expression.)"
        -:        -: 1032:          *
        -:        -: 1033:          * Previous to 4.20 the GLSL spec simply said that initializers
        -:        -: 1034:          * must have the same value.  In this case of non-constant
        -:        -: 1035:          * initializers, this was impossible to determine.  As a result,
        -:        -: 1036:          * no vendor actually implemented that behavior.  The 4.20
        -:        -: 1037:          * behavior matches the implemented behavior of at least one other
        -:        -: 1038:          * vendor, so we'll implement that for all GLSL versions.
        -:        -: 1039:          */
        9:        9: 1040:         if (var->constant_initializer != NULL) {
    #####:    #####: 1041:            if (existing->constant_initializer != NULL) {
    #####:    #####: 1042:               if (!var->constant_initializer->has_value(existing->constant_initializer)) {
    #####:    #####: 1043:                  linker_error(prog, "initializers for %s "
        -:        -: 1044:                               "`%s' have differing values\n",
    #####:    #####: 1045:                               mode_string(var), var->name);
    #####:    #####: 1046:                  return;
        -:        -: 1047:               }
        -:        -: 1048:            } else {
        -:        -: 1049:               /* If the first-seen instance of a particular uniform did
        -:        -: 1050:                * not have an initializer but a later instance does,
        -:        -: 1051:                * replace the former with the later.
        -:        -: 1052:                */
    #####:    #####: 1053:               variables->replace_variable(existing->name, var);
        -:        -: 1054:            }
        -:        -: 1055:         }
        -:        -: 1056:
        9:        9: 1057:         if (var->data.has_initializer) {
    #####:    #####: 1058:            if (existing->data.has_initializer
    #####:    #####: 1059:                && (var->constant_initializer == NULL
    #####:    #####: 1060:                    || existing->constant_initializer == NULL)) {
    #####:    #####: 1061:               linker_error(prog,
        -:        -: 1062:                            "shared global variable `%s' has multiple "
        -:        -: 1063:                            "non-constant initializers.\n",
    #####:    #####: 1064:                            var->name);
    #####:    #####: 1065:               return;
        -:        -: 1066:            }
        -:        -: 1067:         }
        -:        -: 1068:
        9:        9: 1069:         if (existing->data.invariant != var->data.invariant) {
    #####:    #####: 1070:            linker_error(prog, "declarations for %s `%s' have "
        -:        -: 1071:                         "mismatching invariant qualifiers\n",
    #####:    #####: 1072:                         mode_string(var), var->name);
    #####:    #####: 1073:            return;
        -:        -: 1074:         }
        9:        9: 1075:         if (existing->data.centroid != var->data.centroid) {
    #####:    #####: 1076:            linker_error(prog, "declarations for %s `%s' have "
        -:        -: 1077:                         "mismatching centroid qualifiers\n",
    #####:    #####: 1078:                         mode_string(var), var->name);
    #####:    #####: 1079:            return;
        -:        -: 1080:         }
        9:        9: 1081:         if (existing->data.sample != var->data.sample) {
    #####:    #####: 1082:            linker_error(prog, "declarations for %s `%s` have "
        -:        -: 1083:                         "mismatching sample qualifiers\n",
    #####:    #####: 1084:                         mode_string(var), var->name);
    #####:    #####: 1085:            return;
        -:        -: 1086:         }
        9:        9: 1087:         if (existing->data.image_format != var->data.image_format) {
    #####:    #####: 1088:            linker_error(prog, "declarations for %s `%s` have "
        -:        -: 1089:                         "mismatching image format qualifiers\n",
    #####:    #####: 1090:                         mode_string(var), var->name);
    #####:    #####: 1091:            return;
        -:        -: 1092:         }
        -:        -: 1093:
        -:        -: 1094:         /* Only in GLSL ES 3.10, the precision qualifier should not match
        -:        -: 1095:          * between block members defined in matched block names within a
        -:        -: 1096:          * shader interface.
        -:        -: 1097:          *
        -:        -: 1098:          * In GLSL ES 3.00 and ES 3.20, precision qualifier for each block
        -:        -: 1099:          * member should match.
        -:        -: 1100:          */
       18:       18: 1101:         if (prog->IsES && (prog->data->Version != 310 ||
        9:        9: 1102:                            !var->get_interface_type()) &&
    #####:    #####: 1103:             existing->data.precision != var->data.precision) {
    #####:    #####: 1104:            linker_error(prog, "declarations for %s `%s` have "
        -:        -: 1105:                         "mismatching precision qualifiers\n",
    #####:    #####: 1106:                         mode_string(var), var->name);
    #####:    #####: 1107:            return;
        -:        -: 1108:         }
        -:        -: 1109:      } else
      158:      158: 1110:         variables->add_variable(var);
        -:        -: 1111:   }
        -:        -: 1112:}
        -:        -: 1113:
        -:        -: 1114:
        -:        -: 1115:/**
        -:        -: 1116: * Perform validation of uniforms used across multiple shader stages
        -:        -: 1117: */
        -:        -: 1118:void
        2:        2: 1119:cross_validate_uniforms(struct gl_shader_program *prog)
        -:        -: 1120:{
        4:        4: 1121:   glsl_symbol_table variables;
       14:       14: 1122:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 1123:      if (prog->_LinkedShaders[i] == NULL)
        9:        9: 1124:         continue;
        -:        -: 1125:
        3:        3: 1126:      cross_validate_globals(prog, prog->_LinkedShaders[i]->ir, &variables,
        3:        3: 1127:                             true);
        -:        -: 1128:   }
        2:        2: 1129:}
        -:        -: 1130:
        -:        -: 1131:/**
        -:        -: 1132: * Accumulates the array of buffer blocks and checks that all definitions of
        -:        -: 1133: * blocks agree on their contents.
        -:        -: 1134: */
        -:        -: 1135:static bool
        4:        4: 1136:interstage_cross_validate_uniform_blocks(struct gl_shader_program *prog,
        -:        -: 1137:                                         bool validate_ssbo)
        -:        -: 1138:{
        -:        -: 1139:   int *InterfaceBlockStageIndex[MESA_SHADER_STAGES];
        4:        4: 1140:   struct gl_uniform_block *blks = NULL;
        2:        2: 1141:   unsigned *num_blks = validate_ssbo ? &prog->data->NumShaderStorageBlocks :
        6:        6: 1142:      &prog->data->NumUniformBlocks;
        -:        -: 1143:
        4:        4: 1144:   unsigned max_num_buffer_blocks = 0;
       28:       28: 1145:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       24:       24: 1146:      if (prog->_LinkedShaders[i]) {
        6:        6: 1147:         if (validate_ssbo) {
        -:        -: 1148:            max_num_buffer_blocks +=
        3:        3: 1149:               prog->_LinkedShaders[i]->Program->info.num_ssbos;
        -:        -: 1150:         } else {
        -:        -: 1151:            max_num_buffer_blocks +=
        3:        3: 1152:               prog->_LinkedShaders[i]->Program->info.num_ubos;
        -:        -: 1153:         }
        -:        -: 1154:      }
        -:        -: 1155:   }
        -:        -: 1156:
       28:       28: 1157:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       24:       24: 1158:      struct gl_linked_shader *sh = prog->_LinkedShaders[i];
        -:        -: 1159:
       24:       24: 1160:      InterfaceBlockStageIndex[i] = new int[max_num_buffer_blocks];
       24:       24: 1161:      for (unsigned int j = 0; j < max_num_buffer_blocks; j++)
    #####:    #####: 1162:         InterfaceBlockStageIndex[i][j] = -1;
        -:        -: 1163:
       24:       24: 1164:      if (sh == NULL)
       18:       18: 1165:         continue;
        -:        -: 1166:
        -:        -: 1167:      unsigned sh_num_blocks;
        -:        -: 1168:      struct gl_uniform_block **sh_blks;
        6:        6: 1169:      if (validate_ssbo) {
        3:        3: 1170:         sh_num_blocks = prog->_LinkedShaders[i]->Program->info.num_ssbos;
        3:        3: 1171:         sh_blks = sh->Program->sh.ShaderStorageBlocks;
        -:        -: 1172:      } else {
        3:        3: 1173:         sh_num_blocks = prog->_LinkedShaders[i]->Program->info.num_ubos;
        3:        3: 1174:         sh_blks = sh->Program->sh.UniformBlocks;
        -:        -: 1175:      }
        -:        -: 1176:
        6:        6: 1177:      for (unsigned int j = 0; j < sh_num_blocks; j++) {
    #####:    #####: 1178:         int index = link_cross_validate_uniform_block(prog, &blks, num_blks,
    #####:    #####: 1179:                                                       sh_blks[j]);
        -:        -: 1180:
    #####:    #####: 1181:         if (index == -1) {
    #####:    #####: 1182:            linker_error(prog, "buffer block `%s' has mismatching "
    #####:    #####: 1183:                         "definitions\n", sh_blks[j]->Name);
        -:        -: 1184:
    #####:    #####: 1185:            for (unsigned k = 0; k <= i; k++) {
    #####:    #####: 1186:               delete[] InterfaceBlockStageIndex[k];
        -:        -: 1187:            }
        -:        -: 1188:
        -:        -: 1189:            /* Reset the block count. This will help avoid various segfaults
        -:        -: 1190:             * from api calls that assume the array exists due to the count
        -:        -: 1191:             * being non-zero.
        -:        -: 1192:             */
    #####:    #####: 1193:            *num_blks = 0;
    #####:    #####: 1194:            return false;
        -:        -: 1195:         }
        -:        -: 1196:
    #####:    #####: 1197:         InterfaceBlockStageIndex[i][index] = j;
        -:        -: 1198:      }
        -:        -: 1199:   }
        -:        -: 1200:
        -:        -: 1201:   /* Update per stage block pointers to point to the program list.
        -:        -: 1202:    * FIXME: We should be able to free the per stage blocks here.
        -:        -: 1203:    */
       28:       28: 1204:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       24:       24: 1205:      for (unsigned j = 0; j < *num_blks; j++) {
    #####:    #####: 1206:         int stage_index = InterfaceBlockStageIndex[i][j];
        -:        -: 1207:
    #####:    #####: 1208:         if (stage_index != -1) {
    #####:    #####: 1209:            struct gl_linked_shader *sh = prog->_LinkedShaders[i];
        -:        -: 1210:
        -:        -: 1211:            struct gl_uniform_block **sh_blks = validate_ssbo ?
    #####:    #####: 1212:               sh->Program->sh.ShaderStorageBlocks :
    #####:    #####: 1213:               sh->Program->sh.UniformBlocks;
        -:        -: 1214:
    #####:    #####: 1215:            blks[j].stageref |= sh_blks[stage_index]->stageref;
    #####:    #####: 1216:            sh_blks[stage_index] = &blks[j];
        -:        -: 1217:         }
        -:        -: 1218:      }
        -:        -: 1219:   }
        -:        -: 1220:
       28:       28: 1221:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       24:       24: 1222:      delete[] InterfaceBlockStageIndex[i];
        -:        -: 1223:   }
        -:        -: 1224:
        4:        4: 1225:   if (validate_ssbo)
        2:        2: 1226:      prog->data->ShaderStorageBlocks = blks;
        -:        -: 1227:   else
        2:        2: 1228:      prog->data->UniformBlocks = blks;
        -:        -: 1229:
        4:        4: 1230:   return true;
        -:        -: 1231:}
        -:        -: 1232:
        -:        -: 1233:
        -:        -: 1234:/**
        -:        -: 1235: * Populates a shaders symbol table with all global declarations
        -:        -: 1236: */
        -:        -: 1237:static void
        3:        3: 1238:populate_symbol_table(gl_linked_shader *sh)
        -:        -: 1239:{
        3:        3: 1240:   sh->symbols = new(sh) glsl_symbol_table;
        -:        -: 1241:
      112:      112: 1242:   foreach_in_list(ir_instruction, inst, sh->ir) {
        -:        -: 1243:      ir_variable *var;
        -:        -: 1244:      ir_function *func;
        -:        -: 1245:
      109:      109: 1246:      if ((func = inst->as_function()) != NULL) {
        4:        4: 1247:         sh->symbols->add_function(func);
      105:      105: 1248:      } else if ((var = inst->as_variable()) != NULL) {
      105:      105: 1249:         if (var->data.mode != ir_var_temporary)
      105:      105: 1250:            sh->symbols->add_variable(var);
        -:        -: 1251:      }
        -:        -: 1252:   }
        3:        3: 1253:}
        -:        -: 1254:
        -:        -: 1255:
        -:        -: 1256:/**
        -:        -: 1257: * Remap variables referenced in an instruction tree
        -:        -: 1258: *
        -:        -: 1259: * This is used when instruction trees are cloned from one shader and placed in
        -:        -: 1260: * another.  These trees will contain references to \c ir_variable nodes that
        -:        -: 1261: * do not exist in the target shader.  This function finds these \c ir_variable
        -:        -: 1262: * references and replaces the references with matching variables in the target
        -:        -: 1263: * shader.
        -:        -: 1264: *
        -:        -: 1265: * If there is no matching variable in the target shader, a clone of the
        -:        -: 1266: * \c ir_variable is made and added to the target shader.  The new variable is
        -:        -: 1267: * added to \b both the instruction stream and the symbol table.
        -:        -: 1268: *
        -:        -: 1269: * \param inst         IR tree that is to be processed.
        -:        -: 1270: * \param symbols      Symbol table containing global scope symbols in the
        -:        -: 1271: *                     linked shader.
        -:        -: 1272: * \param instructions Instruction stream where new variable declarations
        -:        -: 1273: *                     should be added.
        -:        -: 1274: */
        -:        -: 1275:void
    #####:    #####: 1276:remap_variables(ir_instruction *inst, struct gl_linked_shader *target,
        -:        -: 1277:                hash_table *temps)
        -:        -: 1278:{
        -:        -: 1279:   class remap_visitor : public ir_hierarchical_visitor {
        -:        -: 1280:   public:
    #####:    #####: 1281:         remap_visitor(struct gl_linked_shader *target, hash_table *temps)
    #####:    #####: 1282:      {
    #####:    #####: 1283:         this->target = target;
    #####:    #####: 1284:         this->symbols = target->symbols;
    #####:    #####: 1285:         this->instructions = target->ir;
    #####:    #####: 1286:         this->temps = temps;
    #####:    #####: 1287:      }
        -:        -: 1288:
    #####:    #####: 1289:      virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -: 1290:      {
    #####:    #####: 1291:         if (ir->var->data.mode == ir_var_temporary) {
    #####:    #####: 1292:            hash_entry *entry = _mesa_hash_table_search(temps, ir->var);
    #####:    #####: 1293:            ir_variable *var = entry ? (ir_variable *) entry->data : NULL;
        -:        -: 1294:
    #####:    #####: 1295:            assert(var != NULL);
    #####:    #####: 1296:            ir->var = var;
    #####:    #####: 1297:            return visit_continue;
        -:        -: 1298:         }
        -:        -: 1299:
        -:        -: 1300:         ir_variable *const existing =
    #####:    #####: 1301:            this->symbols->get_variable(ir->var->name);
    #####:    #####: 1302:         if (existing != NULL)
    #####:    #####: 1303:            ir->var = existing;
        -:        -: 1304:         else {
    #####:    #####: 1305:            ir_variable *copy = ir->var->clone(this->target, NULL);
        -:        -: 1306:
    #####:    #####: 1307:            this->symbols->add_variable(copy);
    #####:    #####: 1308:            this->instructions->push_head(copy);
    #####:    #####: 1309:            ir->var = copy;
        -:        -: 1310:         }
        -:        -: 1311:
    #####:    #####: 1312:         return visit_continue;
        -:        -: 1313:      }
        -:        -: 1314:
        -:        -: 1315:   private:
        -:        -: 1316:      struct gl_linked_shader *target;
        -:        -: 1317:      glsl_symbol_table *symbols;
        -:        -: 1318:      exec_list *instructions;
        -:        -: 1319:      hash_table *temps;
        -:        -: 1320:   };
        -:        -: 1321:
    #####:    #####: 1322:   remap_visitor v(target, temps);
        -:        -: 1323:
    #####:    #####: 1324:   inst->accept(&v);
    #####:    #####: 1325:}
        -:        -: 1326:
        -:        -: 1327:
        -:        -: 1328:/**
        -:        -: 1329: * Move non-declarations from one instruction stream to another
        -:        -: 1330: *
        -:        -: 1331: * The intended usage pattern of this function is to pass the pointer to the
        -:        -: 1332: * head sentinel of a list (i.e., a pointer to the list cast to an \c exec_node
        -:        -: 1333: * pointer) for \c last and \c false for \c make_copies on the first
        -:        -: 1334: * call.  Successive calls pass the return value of the previous call for
        -:        -: 1335: * \c last and \c true for \c make_copies.
        -:        -: 1336: *
        -:        -: 1337: * \param instructions Source instruction stream
        -:        -: 1338: * \param last         Instruction after which new instructions should be
        -:        -: 1339: *                     inserted in the target instruction stream
        -:        -: 1340: * \param make_copies  Flag selecting whether instructions in \c instructions
        -:        -: 1341: *                     should be copied (via \c ir_instruction::clone) into the
        -:        -: 1342: *                     target list or moved.
        -:        -: 1343: *
        -:        -: 1344: * \return
        -:        -: 1345: * The new "last" instruction in the target instruction stream.  This pointer
        -:        -: 1346: * is suitable for use as the \c last parameter of a later call to this
        -:        -: 1347: * function.
        -:        -: 1348: */
        -:        -: 1349:exec_node *
        3:        3: 1350:move_non_declarations(exec_list *instructions, exec_node *last,
        -:        -: 1351:                      bool make_copies, gl_linked_shader *target)
        -:        -: 1352:{
        3:        3: 1353:   hash_table *temps = NULL;
        -:        -: 1354:
        3:        3: 1355:   if (make_copies)
        -:        -: 1356:      temps = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
    #####:    #####: 1357:                                      _mesa_key_pointer_equal);
        -:        -: 1358:
      112:      112: 1359:   foreach_in_list_safe(ir_instruction, inst, instructions) {
      109:      109: 1360:      if (inst->as_function())
        4:        4: 1361:         continue;
        -:        -: 1362:
      105:      105: 1363:      ir_variable *var = inst->as_variable();
      105:      105: 1364:      if ((var != NULL) && (var->data.mode != ir_var_temporary))
      105:      105: 1365:         continue;
        -:        -: 1366:
    #####:    #####: 1367:      assert(inst->as_assignment()
        -:        -: 1368:             || inst->as_call()
        -:        -: 1369:             || inst->as_if() /* for initializers with the ?: operator */
    #####:    #####: 1370:             || ((var != NULL) && (var->data.mode == ir_var_temporary)));
        -:        -: 1371:
    #####:    #####: 1372:      if (make_copies) {
    #####:    #####: 1373:         inst = inst->clone(target, NULL);
        -:        -: 1374:
    #####:    #####: 1375:         if (var != NULL)
    #####:    #####: 1376:            _mesa_hash_table_insert(temps, var, inst);
        -:        -: 1377:         else
    #####:    #####: 1378:            remap_variables(inst, target, temps);
        -:        -: 1379:      } else {
    #####:    #####: 1380:         inst->remove();
        -:        -: 1381:      }
        -:        -: 1382:
    #####:    #####: 1383:      last->insert_after(inst);
    #####:    #####: 1384:      last = inst;
        -:        -: 1385:   }
        -:        -: 1386:
        3:        3: 1387:   if (make_copies)
    #####:    #####: 1388:      _mesa_hash_table_destroy(temps, NULL);
        -:        -: 1389:
        3:        3: 1390:   return last;
        -:        -: 1391:}
        -:        -: 1392:
        -:        -: 1393:
        -:        -: 1394:/**
        -:        -: 1395: * This class is only used in link_intrastage_shaders() below but declaring
        -:        -: 1396: * it inside that function leads to compiler warnings with some versions of
        -:        -: 1397: * gcc.
        -:        -: 1398: */
        -:        -: 1399:class array_sizing_visitor : public deref_type_updater {
        -:        -: 1400:public:
        3:        3: 1401:   array_sizing_visitor()
        3:        3: 1402:      : mem_ctx(ralloc_context(NULL)),
        3:        3: 1403:        unnamed_interfaces(_mesa_hash_table_create(NULL, _mesa_hash_pointer,
        9:        9: 1404:                                                   _mesa_key_pointer_equal))
        -:        -: 1405:   {
        3:        3: 1406:   }
        -:        -: 1407:
        3:        3: 1408:   ~array_sizing_visitor()
        6:        6: 1409:   {
        3:        3: 1410:      _mesa_hash_table_destroy(this->unnamed_interfaces, NULL);
        3:        3: 1411:      ralloc_free(this->mem_ctx);
        3:        3: 1412:   }
        -:        -: 1413:
      120:      120: 1414:   virtual ir_visitor_status visit(ir_variable *var)
        -:        -: 1415:   {
        -:        -: 1416:      const glsl_type *type_without_array;
      120:      120: 1417:      bool implicit_sized_array = var->data.implicit_sized_array;
      120:      120: 1418:      fixup_type(&var->type, var->data.max_array_access,
        -:        -: 1419:                 var->data.from_ssbo_unsized_array,
      120:      120: 1420:                 &implicit_sized_array);
      120:      120: 1421:      var->data.implicit_sized_array = implicit_sized_array;
      120:      120: 1422:      type_without_array = var->type->without_array();
      120:      120: 1423:      if (var->type->is_interface()) {
    #####:    #####: 1424:         if (interface_contains_unsized_arrays(var->type)) {
        -:        -: 1425:            const glsl_type *new_type =
    #####:    #####: 1426:               resize_interface_members(var->type,
    #####:    #####: 1427:                                        var->get_max_ifc_array_access(),
    #####:    #####: 1428:                                        var->is_in_shader_storage_block());
    #####:    #####: 1429:            var->type = new_type;
    #####:    #####: 1430:            var->change_interface_type(new_type);
        -:        -: 1431:         }
      120:      120: 1432:      } else if (type_without_array->is_interface()) {
    #####:    #####: 1433:         if (interface_contains_unsized_arrays(type_without_array)) {
        -:        -: 1434:            const glsl_type *new_type =
    #####:    #####: 1435:               resize_interface_members(type_without_array,
    #####:    #####: 1436:                                        var->get_max_ifc_array_access(),
    #####:    #####: 1437:                                        var->is_in_shader_storage_block());
    #####:    #####: 1438:            var->change_interface_type(new_type);
    #####:    #####: 1439:            var->type = update_interface_members_array(var->type, new_type);
        -:        -: 1440:         }
      120:      120: 1441:      } else if (const glsl_type *ifc_type = var->get_interface_type()) {
        -:        -: 1442:         /* Store a pointer to the variable in the unnamed_interfaces
        -:        -: 1443:          * hashtable.
        -:        -: 1444:          */
        -:        -: 1445:         hash_entry *entry =
       10:       10: 1446:               _mesa_hash_table_search(this->unnamed_interfaces,
       10:       10: 1447:                                       ifc_type);
        -:        -: 1448:
       10:       10: 1449:         ir_variable **interface_vars = entry ? (ir_variable **) entry->data : NULL;
        -:        -: 1450:
       10:       10: 1451:         if (interface_vars == NULL) {
        1:        1: 1452:            interface_vars = rzalloc_array(mem_ctx, ir_variable *,
        1:        1: 1453:                                           ifc_type->length);
        1:        1: 1454:            _mesa_hash_table_insert(this->unnamed_interfaces, ifc_type,
        1:        1: 1455:                                    interface_vars);
        -:        -: 1456:         }
       10:       10: 1457:         unsigned index = ifc_type->field_index(var->name);
       10:       10: 1458:         assert(index < ifc_type->length);
       10:       10: 1459:         assert(interface_vars[index] == NULL);
       10:       10: 1460:         interface_vars[index] = var;
        -:        -: 1461:      }
      120:      120: 1462:      return visit_continue;
        -:        -: 1463:   }
        -:        -: 1464:
        -:        -: 1465:   /**
        -:        -: 1466:    * For each unnamed interface block that was discovered while running the
        -:        -: 1467:    * visitor, adjust the interface type to reflect the newly assigned array
        -:        -: 1468:    * sizes, and fix up the ir_variable nodes to point to the new interface
        -:        -: 1469:    * type.
        -:        -: 1470:    */
        3:        3: 1471:   void fixup_unnamed_interface_types()
        -:        -: 1472:   {
        3:        3: 1473:      hash_table_call_foreach(this->unnamed_interfaces,
        3:        3: 1474:                              fixup_unnamed_interface_type, NULL);
        3:        3: 1475:   }
        -:        -: 1476:
        -:        -: 1477:private:
        -:        -: 1478:   /**
        -:        -: 1479:    * If the type pointed to by \c type represents an unsized array, replace
        -:        -: 1480:    * it with a sized array whose size is determined by max_array_access.
        -:        -: 1481:    */
      120:      120: 1482:   static void fixup_type(const glsl_type **type, unsigned max_array_access,
        -:        -: 1483:                          bool from_ssbo_unsized_array, bool *implicit_sized)
        -:        -: 1484:   {
      120:      120: 1485:      if (!from_ssbo_unsized_array && (*type)->is_unsized_array()) {
        5:        5: 1486:         *type = glsl_type::get_array_instance((*type)->fields.array,
        5:        5: 1487:                                               max_array_access + 1);
        5:        5: 1488:         *implicit_sized = true;
        5:        5: 1489:         assert(*type != NULL);
        -:        -: 1490:      }
      120:      120: 1491:   }
        -:        -: 1492:
        -:        -: 1493:   static const glsl_type *
    #####:    #####: 1494:   update_interface_members_array(const glsl_type *type,
        -:        -: 1495:                                  const glsl_type *new_interface_type)
        -:        -: 1496:   {
    #####:    #####: 1497:      const glsl_type *element_type = type->fields.array;
    #####:    #####: 1498:      if (element_type->is_array()) {
        -:        -: 1499:         const glsl_type *new_array_type =
    #####:    #####: 1500:            update_interface_members_array(element_type, new_interface_type);
    #####:    #####: 1501:         return glsl_type::get_array_instance(new_array_type, type->length);
        -:        -: 1502:      } else {
        -:        -: 1503:         return glsl_type::get_array_instance(new_interface_type,
    #####:    #####: 1504:                                              type->length);
        -:        -: 1505:      }
        -:        -: 1506:   }
        -:        -: 1507:
        -:        -: 1508:   /**
        -:        -: 1509:    * Determine whether the given interface type contains unsized arrays (if
        -:        -: 1510:    * it doesn't, array_sizing_visitor doesn't need to process it).
        -:        -: 1511:    */
    #####:    #####: 1512:   static bool interface_contains_unsized_arrays(const glsl_type *type)
        -:        -: 1513:   {
    #####:    #####: 1514:      for (unsigned i = 0; i < type->length; i++) {
    #####:    #####: 1515:         const glsl_type *elem_type = type->fields.structure[i].type;
    #####:    #####: 1516:         if (elem_type->is_unsized_array())
    #####:    #####: 1517:            return true;
        -:        -: 1518:      }
    #####:    #####: 1519:      return false;
        -:        -: 1520:   }
        -:        -: 1521:
        -:        -: 1522:   /**
        -:        -: 1523:    * Create a new interface type based on the given type, with unsized arrays
        -:        -: 1524:    * replaced by sized arrays whose size is determined by
        -:        -: 1525:    * max_ifc_array_access.
        -:        -: 1526:    */
        -:        -: 1527:   static const glsl_type *
    #####:    #####: 1528:   resize_interface_members(const glsl_type *type,
        -:        -: 1529:                            const int *max_ifc_array_access,
        -:        -: 1530:                            bool is_ssbo)
        -:        -: 1531:   {
    #####:    #####: 1532:      unsigned num_fields = type->length;
    #####:    #####: 1533:      glsl_struct_field *fields = new glsl_struct_field[num_fields];
    #####:    #####: 1534:      memcpy(fields, type->fields.structure,
    #####:    #####: 1535:             num_fields * sizeof(*fields));
    #####:    #####: 1536:      for (unsigned i = 0; i < num_fields; i++) {
    #####:    #####: 1537:         bool implicit_sized_array = fields[i].implicit_sized_array;
        -:        -: 1538:         /* If SSBO last member is unsized array, we don't replace it by a sized
        -:        -: 1539:          * array.
        -:        -: 1540:          */
    #####:    #####: 1541:         if (is_ssbo && i == (num_fields - 1))
    #####:    #####: 1542:            fixup_type(&fields[i].type, max_ifc_array_access[i],
    #####:    #####: 1543:                       true, &implicit_sized_array);
        -:        -: 1544:         else
    #####:    #####: 1545:            fixup_type(&fields[i].type, max_ifc_array_access[i],
    #####:    #####: 1546:                       false, &implicit_sized_array);
    #####:    #####: 1547:         fields[i].implicit_sized_array = implicit_sized_array;
        -:        -: 1548:      }
        -:        -: 1549:      glsl_interface_packing packing =
    #####:    #####: 1550:         (glsl_interface_packing) type->interface_packing;
    #####:    #####: 1551:      bool row_major = (bool) type->interface_row_major;
        -:        -: 1552:      const glsl_type *new_ifc_type =
    #####:    #####: 1553:         glsl_type::get_interface_instance(fields, num_fields,
    #####:    #####: 1554:                                           packing, row_major, type->name);
    #####:    #####: 1555:      delete [] fields;
    #####:    #####: 1556:      return new_ifc_type;
        -:        -: 1557:   }
        -:        -: 1558:
        1:        1: 1559:   static void fixup_unnamed_interface_type(const void *key, void *data,
        -:        -: 1560:                                            void *)
        -:        -: 1561:   {
        1:        1: 1562:      const glsl_type *ifc_type = (const glsl_type *) key;
        1:        1: 1563:      ir_variable **interface_vars = (ir_variable **) data;
        1:        1: 1564:      unsigned num_fields = ifc_type->length;
        1:        1: 1565:      glsl_struct_field *fields = new glsl_struct_field[num_fields];
        1:        1: 1566:      memcpy(fields, ifc_type->fields.structure,
        1:        1: 1567:             num_fields * sizeof(*fields));
        1:        1: 1568:      bool interface_type_changed = false;
       11:       11: 1569:      for (unsigned i = 0; i < num_fields; i++) {
       20:       20: 1570:         if (interface_vars[i] != NULL &&
       10:       10: 1571:             fields[i].type != interface_vars[i]->type) {
    #####:    #####: 1572:            fields[i].type = interface_vars[i]->type;
    #####:    #####: 1573:            interface_type_changed = true;
        -:        -: 1574:         }
        -:        -: 1575:      }
        1:        1: 1576:      if (!interface_type_changed) {
        1:        1: 1577:         delete [] fields;
        1:        1: 1578:         return;
        -:        -: 1579:      }
        -:        -: 1580:      glsl_interface_packing packing =
    #####:    #####: 1581:         (glsl_interface_packing) ifc_type->interface_packing;
    #####:    #####: 1582:      bool row_major = (bool) ifc_type->interface_row_major;
        -:        -: 1583:      const glsl_type *new_ifc_type =
    #####:    #####: 1584:         glsl_type::get_interface_instance(fields, num_fields, packing,
    #####:    #####: 1585:                                           row_major, ifc_type->name);
    #####:    #####: 1586:      delete [] fields;
    #####:    #####: 1587:      for (unsigned i = 0; i < num_fields; i++) {
    #####:    #####: 1588:         if (interface_vars[i] != NULL)
    #####:    #####: 1589:            interface_vars[i]->change_interface_type(new_ifc_type);
        -:        -: 1590:      }
        -:        -: 1591:   }
        -:        -: 1592:
        -:        -: 1593:   /**
        -:        -: 1594:    * Memory context used to allocate the data in \c unnamed_interfaces.
        -:        -: 1595:    */
        -:        -: 1596:   void *mem_ctx;
        -:        -: 1597:
        -:        -: 1598:   /**
        -:        -: 1599:    * Hash table from const glsl_type * to an array of ir_variable *'s
        -:        -: 1600:    * pointing to the ir_variables constituting each unnamed interface block.
        -:        -: 1601:    */
        -:        -: 1602:   hash_table *unnamed_interfaces;
        -:        -: 1603:};
        -:        -: 1604:
        -:        -: 1605:static bool
    #####:    #####: 1606:validate_xfb_buffer_stride(struct gl_context *ctx, unsigned idx,
        -:        -: 1607:                           struct gl_shader_program *prog)
        -:        -: 1608:{
        -:        -: 1609:   /* We will validate doubles at a later stage */
    #####:    #####: 1610:   if (prog->TransformFeedback.BufferStride[idx] % 4) {
    #####:    #####: 1611:      linker_error(prog, "invalid qualifier xfb_stride=%d must be a "
        -:        -: 1612:                   "multiple of 4 or if its applied to a type that is "
        -:        -: 1613:                   "or contains a double a multiple of 8.",
    #####:    #####: 1614:                   prog->TransformFeedback.BufferStride[idx]);
    #####:    #####: 1615:      return false;
        -:        -: 1616:   }
        -:        -: 1617:
    #####:    #####: 1618:   if (prog->TransformFeedback.BufferStride[idx] / 4 >
    #####:    #####: 1619:       ctx->Const.MaxTransformFeedbackInterleavedComponents) {
        -:        -: 1620:      linker_error(prog, "The MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS "
    #####:    #####: 1621:                   "limit has been exceeded.");
    #####:    #####: 1622:      return false;
        -:        -: 1623:   }
        -:        -: 1624:
    #####:    #####: 1625:   return true;
        -:        -: 1626:}
        -:        -: 1627:
        -:        -: 1628:/**
        -:        -: 1629: * Check for conflicting xfb_stride default qualifiers and store buffer stride
        -:        -: 1630: * for later use.
        -:        -: 1631: */
        -:        -: 1632:static void
        3:        3: 1633:link_xfb_stride_layout_qualifiers(struct gl_context *ctx,
        -:        -: 1634:                                  struct gl_shader_program *prog,
        -:        -: 1635:                                  struct gl_linked_shader *linked_shader,
        -:        -: 1636:                                  struct gl_shader **shader_list,
        -:        -: 1637:                                  unsigned num_shaders)
        -:        -: 1638:{
       15:       15: 1639:   for (unsigned i = 0; i < MAX_FEEDBACK_BUFFERS; i++) {
       12:       12: 1640:      prog->TransformFeedback.BufferStride[i] = 0;
        -:        -: 1641:   }
        -:        -: 1642:
        6:        6: 1643:   for (unsigned i = 0; i < num_shaders; i++) {
        3:        3: 1644:      struct gl_shader *shader = shader_list[i];
        -:        -: 1645:
       15:       15: 1646:      for (unsigned j = 0; j < MAX_FEEDBACK_BUFFERS; j++) {
       12:       12: 1647:         if (shader->TransformFeedbackBufferStride[j]) {
    #####:    #####: 1648:            if (prog->TransformFeedback.BufferStride[j] == 0) {
        -:        -: 1649:               prog->TransformFeedback.BufferStride[j] =
    #####:    #####: 1650:                  shader->TransformFeedbackBufferStride[j];
    #####:    #####: 1651:               if (!validate_xfb_buffer_stride(ctx, j, prog))
    #####:    #####: 1652:                  return;
    #####:    #####: 1653:            } else if (prog->TransformFeedback.BufferStride[j] !=
    #####:    #####: 1654:                       shader->TransformFeedbackBufferStride[j]){
    #####:    #####: 1655:               linker_error(prog,
        -:        -: 1656:                            "intrastage shaders defined with conflicting "
        -:        -: 1657:                            "xfb_stride for buffer %d (%d and %d)\n", j,
        -:        -: 1658:                            prog->TransformFeedback.BufferStride[j],
    #####:    #####: 1659:                            shader->TransformFeedbackBufferStride[j]);
    #####:    #####: 1660:               return;
        -:        -: 1661:            }
        -:        -: 1662:         }
        -:        -: 1663:      }
        -:        -: 1664:   }
        -:        -: 1665:}
        -:        -: 1666:
        -:        -: 1667:/**
        -:        -: 1668: * Performs the cross-validation of tessellation control shader vertices and
        -:        -: 1669: * layout qualifiers for the attached tessellation control shaders,
        -:        -: 1670: * and propagates them to the linked TCS and linked shader program.
        -:        -: 1671: */
        -:        -: 1672:static void
        3:        3: 1673:link_tcs_out_layout_qualifiers(struct gl_shader_program *prog,
        -:        -: 1674:                               struct gl_program *gl_prog,
        -:        -: 1675:                               struct gl_shader **shader_list,
        -:        -: 1676:                               unsigned num_shaders)
        -:        -: 1677:{
        3:        3: 1678:   if (gl_prog->info.stage != MESA_SHADER_TESS_CTRL)
        3:        3: 1679:      return;
        -:        -: 1680:
    #####:    #####: 1681:   gl_prog->info.tess.tcs_vertices_out = 0;
        -:        -: 1682:
        -:        -: 1683:   /* From the GLSL 4.0 spec (chapter 4.3.8.2):
        -:        -: 1684:    *
        -:        -: 1685:    *     "All tessellation control shader layout declarations in a program
        -:        -: 1686:    *      must specify the same output patch vertex count.  There must be at
        -:        -: 1687:    *      least one layout qualifier specifying an output patch vertex count
        -:        -: 1688:    *      in any program containing tessellation control shaders; however,
        -:        -: 1689:    *      such a declaration is not required in all tessellation control
        -:        -: 1690:    *      shaders."
        -:        -: 1691:    */
        -:        -: 1692:
    #####:    #####: 1693:   for (unsigned i = 0; i < num_shaders; i++) {
    #####:    #####: 1694:      struct gl_shader *shader = shader_list[i];
        -:        -: 1695:
    #####:    #####: 1696:      if (shader->info.TessCtrl.VerticesOut != 0) {
    #####:    #####: 1697:         if (gl_prog->info.tess.tcs_vertices_out != 0 &&
    #####:    #####: 1698:             gl_prog->info.tess.tcs_vertices_out !=
    #####:    #####: 1699:             (unsigned) shader->info.TessCtrl.VerticesOut) {
    #####:    #####: 1700:            linker_error(prog, "tessellation control shader defined with "
        -:        -: 1701:                         "conflicting output vertex count (%d and %d)\n",
        -:        -: 1702:                         gl_prog->info.tess.tcs_vertices_out,
    #####:    #####: 1703:                         shader->info.TessCtrl.VerticesOut);
    #####:    #####: 1704:            return;
        -:        -: 1705:         }
        -:        -: 1706:         gl_prog->info.tess.tcs_vertices_out =
    #####:    #####: 1707:            shader->info.TessCtrl.VerticesOut;
        -:        -: 1708:      }
        -:        -: 1709:   }
        -:        -: 1710:
        -:        -: 1711:   /* Just do the intrastage -> interstage propagation right now,
        -:        -: 1712:    * since we already know we're in the right type of shader program
        -:        -: 1713:    * for doing it.
        -:        -: 1714:    */
    #####:    #####: 1715:   if (gl_prog->info.tess.tcs_vertices_out == 0) {
        -:        -: 1716:      linker_error(prog, "tessellation control shader didn't declare "
    #####:    #####: 1717:                   "vertices out layout qualifier\n");
    #####:    #####: 1718:      return;
        -:        -: 1719:   }
        -:        -: 1720:}
        -:        -: 1721:
        -:        -: 1722:
        -:        -: 1723:/**
        -:        -: 1724: * Performs the cross-validation of tessellation evaluation shader
        -:        -: 1725: * primitive type, vertex spacing, ordering and point_mode layout qualifiers
        -:        -: 1726: * for the attached tessellation evaluation shaders, and propagates them
        -:        -: 1727: * to the linked TES and linked shader program.
        -:        -: 1728: */
        -:        -: 1729:static void
        3:        3: 1730:link_tes_in_layout_qualifiers(struct gl_shader_program *prog,
        -:        -: 1731:                              struct gl_program *gl_prog,
        -:        -: 1732:                              struct gl_shader **shader_list,
        -:        -: 1733:                              unsigned num_shaders)
        -:        -: 1734:{
        3:        3: 1735:   if (gl_prog->info.stage != MESA_SHADER_TESS_EVAL)
        3:        3: 1736:      return;
        -:        -: 1737:
    #####:    #####: 1738:   int point_mode = -1;
    #####:    #####: 1739:   unsigned vertex_order = 0;
        -:        -: 1740:
    #####:    #####: 1741:   gl_prog->info.tess.primitive_mode = PRIM_UNKNOWN;
    #####:    #####: 1742:   gl_prog->info.tess.spacing = TESS_SPACING_UNSPECIFIED;
        -:        -: 1743:
        -:        -: 1744:   /* From the GLSL 4.0 spec (chapter 4.3.8.1):
        -:        -: 1745:    *
        -:        -: 1746:    *     "At least one tessellation evaluation shader (compilation unit) in
        -:        -: 1747:    *      a program must declare a primitive mode in its input layout.
        -:        -: 1748:    *      Declaration vertex spacing, ordering, and point mode identifiers is
        -:        -: 1749:    *      optional.  It is not required that all tessellation evaluation
        -:        -: 1750:    *      shaders in a program declare a primitive mode.  If spacing or
        -:        -: 1751:    *      vertex ordering declarations are omitted, the tessellation
        -:        -: 1752:    *      primitive generator will use equal spacing or counter-clockwise
        -:        -: 1753:    *      vertex ordering, respectively.  If a point mode declaration is
        -:        -: 1754:    *      omitted, the tessellation primitive generator will produce lines or
        -:        -: 1755:    *      triangles according to the primitive mode."
        -:        -: 1756:    */
        -:        -: 1757:
    #####:    #####: 1758:   for (unsigned i = 0; i < num_shaders; i++) {
    #####:    #####: 1759:      struct gl_shader *shader = shader_list[i];
        -:        -: 1760:
    #####:    #####: 1761:      if (shader->info.TessEval.PrimitiveMode != PRIM_UNKNOWN) {
    #####:    #####: 1762:         if (gl_prog->info.tess.primitive_mode != PRIM_UNKNOWN &&
    #####:    #####: 1763:             gl_prog->info.tess.primitive_mode !=
    #####:    #####: 1764:             shader->info.TessEval.PrimitiveMode) {
        -:        -: 1765:            linker_error(prog, "tessellation evaluation shader defined with "
    #####:    #####: 1766:                         "conflicting input primitive modes.\n");
    #####:    #####: 1767:            return;
        -:        -: 1768:         }
        -:        -: 1769:         gl_prog->info.tess.primitive_mode =
    #####:    #####: 1770:            shader->info.TessEval.PrimitiveMode;
        -:        -: 1771:      }
        -:        -: 1772:
    #####:    #####: 1773:      if (shader->info.TessEval.Spacing != 0) {
    #####:    #####: 1774:         if (gl_prog->info.tess.spacing != 0 && gl_prog->info.tess.spacing !=
    #####:    #####: 1775:             shader->info.TessEval.Spacing) {
        -:        -: 1776:            linker_error(prog, "tessellation evaluation shader defined with "
    #####:    #####: 1777:                         "conflicting vertex spacing.\n");
    #####:    #####: 1778:            return;
        -:        -: 1779:         }
    #####:    #####: 1780:         gl_prog->info.tess.spacing = shader->info.TessEval.Spacing;
        -:        -: 1781:      }
        -:        -: 1782:
    #####:    #####: 1783:      if (shader->info.TessEval.VertexOrder != 0) {
    #####:    #####: 1784:         if (vertex_order != 0 &&
    #####:    #####: 1785:             vertex_order != shader->info.TessEval.VertexOrder) {
        -:        -: 1786:            linker_error(prog, "tessellation evaluation shader defined with "
    #####:    #####: 1787:                         "conflicting ordering.\n");
    #####:    #####: 1788:            return;
        -:        -: 1789:         }
    #####:    #####: 1790:         vertex_order = shader->info.TessEval.VertexOrder;
        -:        -: 1791:      }
        -:        -: 1792:
    #####:    #####: 1793:      if (shader->info.TessEval.PointMode != -1) {
    #####:    #####: 1794:         if (point_mode != -1 &&
    #####:    #####: 1795:             point_mode != shader->info.TessEval.PointMode) {
        -:        -: 1796:            linker_error(prog, "tessellation evaluation shader defined with "
    #####:    #####: 1797:                         "conflicting point modes.\n");
    #####:    #####: 1798:            return;
        -:        -: 1799:         }
    #####:    #####: 1800:         point_mode = shader->info.TessEval.PointMode;
        -:        -: 1801:      }
        -:        -: 1802:
        -:        -: 1803:   }
        -:        -: 1804:
        -:        -: 1805:   /* Just do the intrastage -> interstage propagation right now,
        -:        -: 1806:    * since we already know we're in the right type of shader program
        -:        -: 1807:    * for doing it.
        -:        -: 1808:    */
    #####:    #####: 1809:   if (gl_prog->info.tess.primitive_mode == PRIM_UNKNOWN) {
        -:        -: 1810:      linker_error(prog,
        -:        -: 1811:                   "tessellation evaluation shader didn't declare input "
    #####:    #####: 1812:                   "primitive modes.\n");
    #####:    #####: 1813:      return;
        -:        -: 1814:   }
        -:        -: 1815:
    #####:    #####: 1816:   if (gl_prog->info.tess.spacing == TESS_SPACING_UNSPECIFIED)
    #####:    #####: 1817:      gl_prog->info.tess.spacing = TESS_SPACING_EQUAL;
        -:        -: 1818:
    #####:    #####: 1819:   if (vertex_order == 0 || vertex_order == GL_CCW)
    #####:    #####: 1820:      gl_prog->info.tess.ccw = true;
        -:        -: 1821:   else
    #####:    #####: 1822:      gl_prog->info.tess.ccw = false;
        -:        -: 1823:
        -:        -: 1824:
    #####:    #####: 1825:   if (point_mode == -1 || point_mode == GL_FALSE)
    #####:    #####: 1826:      gl_prog->info.tess.point_mode = false;
        -:        -: 1827:   else
    #####:    #####: 1828:      gl_prog->info.tess.point_mode = true;
        -:        -: 1829:}
        -:        -: 1830:
        -:        -: 1831:
        -:        -: 1832:/**
        -:        -: 1833: * Performs the cross-validation of layout qualifiers specified in
        -:        -: 1834: * redeclaration of gl_FragCoord for the attached fragment shaders,
        -:        -: 1835: * and propagates them to the linked FS and linked shader program.
        -:        -: 1836: */
        -:        -: 1837:static void
        3:        3: 1838:link_fs_inout_layout_qualifiers(struct gl_shader_program *prog,
        -:        -: 1839:                                struct gl_linked_shader *linked_shader,
        -:        -: 1840:                                struct gl_shader **shader_list,
        -:        -: 1841:                                unsigned num_shaders)
        -:        -: 1842:{
        3:        3: 1843:   bool redeclares_gl_fragcoord = false;
        3:        3: 1844:   bool uses_gl_fragcoord = false;
        3:        3: 1845:   bool origin_upper_left = false;
        3:        3: 1846:   bool pixel_center_integer = false;
        -:        -: 1847:
        5:        5: 1848:   if (linked_shader->Stage != MESA_SHADER_FRAGMENT ||
        4:        4: 1849:       (prog->data->Version < 150 &&
        2:        2: 1850:        !prog->ARB_fragment_coord_conventions_enable))
        3:        3: 1851:      return;
        -:        -: 1852:
    #####:    #####: 1853:   for (unsigned i = 0; i < num_shaders; i++) {
    #####:    #####: 1854:      struct gl_shader *shader = shader_list[i];
        -:        -: 1855:      /* From the GLSL 1.50 spec, page 39:
        -:        -: 1856:       *
        -:        -: 1857:       *   "If gl_FragCoord is redeclared in any fragment shader in a program,
        -:        -: 1858:       *    it must be redeclared in all the fragment shaders in that program
        -:        -: 1859:       *    that have a static use gl_FragCoord."
        -:        -: 1860:       */
    #####:    #####: 1861:      if ((redeclares_gl_fragcoord && !shader->redeclares_gl_fragcoord &&
    #####:    #####: 1862:           shader->uses_gl_fragcoord)
    #####:    #####: 1863:          || (shader->redeclares_gl_fragcoord && !redeclares_gl_fragcoord &&
        -:        -: 1864:              uses_gl_fragcoord)) {
        -:        -: 1865:             linker_error(prog, "fragment shader defined with conflicting "
    #####:    #####: 1866:                         "layout qualifiers for gl_FragCoord\n");
        -:        -: 1867:      }
        -:        -: 1868:
        -:        -: 1869:      /* From the GLSL 1.50 spec, page 39:
        -:        -: 1870:       *
        -:        -: 1871:       *   "All redeclarations of gl_FragCoord in all fragment shaders in a
        -:        -: 1872:       *    single program must have the same set of qualifiers."
        -:        -: 1873:       */
    #####:    #####: 1874:      if (redeclares_gl_fragcoord && shader->redeclares_gl_fragcoord &&
    #####:    #####: 1875:          (shader->origin_upper_left != origin_upper_left ||
    #####:    #####: 1876:           shader->pixel_center_integer != pixel_center_integer)) {
        -:        -: 1877:         linker_error(prog, "fragment shader defined with conflicting "
    #####:    #####: 1878:                      "layout qualifiers for gl_FragCoord\n");
        -:        -: 1879:      }
        -:        -: 1880:
        -:        -: 1881:      /* Update the linked shader state.  Note that uses_gl_fragcoord should
        -:        -: 1882:       * accumulate the results.  The other values should replace.  If there
        -:        -: 1883:       * are multiple redeclarations, all the fields except uses_gl_fragcoord
        -:        -: 1884:       * are already known to be the same.
        -:        -: 1885:       */
    #####:    #####: 1886:      if (shader->redeclares_gl_fragcoord || shader->uses_gl_fragcoord) {
    #####:    #####: 1887:         redeclares_gl_fragcoord = shader->redeclares_gl_fragcoord;
    #####:    #####: 1888:         uses_gl_fragcoord |= shader->uses_gl_fragcoord;
    #####:    #####: 1889:         origin_upper_left = shader->origin_upper_left;
    #####:    #####: 1890:         pixel_center_integer = shader->pixel_center_integer;
        -:        -: 1891:      }
        -:        -: 1892:
    #####:    #####: 1893:      linked_shader->Program->info.fs.early_fragment_tests |=
    #####:    #####: 1894:         shader->EarlyFragmentTests || shader->PostDepthCoverage;
    #####:    #####: 1895:      linked_shader->Program->info.fs.inner_coverage |= shader->InnerCoverage;
    #####:    #####: 1896:      linked_shader->Program->info.fs.post_depth_coverage |=
    #####:    #####: 1897:         shader->PostDepthCoverage;
        -:        -: 1898:
    #####:    #####: 1899:      linked_shader->Program->sh.fs.BlendSupport |= shader->BlendSupport;
        -:        -: 1900:   }
        -:        -: 1901:}
        -:        -: 1902:
        -:        -: 1903:/**
        -:        -: 1904: * Performs the cross-validation of geometry shader max_vertices and
        -:        -: 1905: * primitive type layout qualifiers for the attached geometry shaders,
        -:        -: 1906: * and propagates them to the linked GS and linked shader program.
        -:        -: 1907: */
        -:        -: 1908:static void
        3:        3: 1909:link_gs_inout_layout_qualifiers(struct gl_shader_program *prog,
        -:        -: 1910:                                struct gl_program *gl_prog,
        -:        -: 1911:                                struct gl_shader **shader_list,
        -:        -: 1912:                                unsigned num_shaders)
        -:        -: 1913:{
        -:        -: 1914:   /* No in/out qualifiers defined for anything but GLSL 1.50+
        -:        -: 1915:    * geometry shaders so far.
        -:        -: 1916:    */
        3:        3: 1917:   if (gl_prog->info.stage != MESA_SHADER_GEOMETRY ||
    #####:    #####: 1918:       prog->data->Version < 150)
        3:        3: 1919:      return;
        -:        -: 1920:
    #####:    #####: 1921:   int vertices_out = -1;
        -:        -: 1922:
    #####:    #####: 1923:   gl_prog->info.gs.invocations = 0;
    #####:    #####: 1924:   gl_prog->info.gs.input_primitive = PRIM_UNKNOWN;
    #####:    #####: 1925:   gl_prog->info.gs.output_primitive = PRIM_UNKNOWN;
        -:        -: 1926:
        -:        -: 1927:   /* From the GLSL 1.50 spec, page 46:
        -:        -: 1928:    *
        -:        -: 1929:    *     "All geometry shader output layout declarations in a program
        -:        -: 1930:    *      must declare the same layout and same value for
        -:        -: 1931:    *      max_vertices. There must be at least one geometry output
        -:        -: 1932:    *      layout declaration somewhere in a program, but not all
        -:        -: 1933:    *      geometry shaders (compilation units) are required to
        -:        -: 1934:    *      declare it."
        -:        -: 1935:    */
        -:        -: 1936:
    #####:    #####: 1937:   for (unsigned i = 0; i < num_shaders; i++) {
    #####:    #####: 1938:      struct gl_shader *shader = shader_list[i];
        -:        -: 1939:
    #####:    #####: 1940:      if (shader->info.Geom.InputType != PRIM_UNKNOWN) {
    #####:    #####: 1941:         if (gl_prog->info.gs.input_primitive != PRIM_UNKNOWN &&
    #####:    #####: 1942:             gl_prog->info.gs.input_primitive !=
    #####:    #####: 1943:             shader->info.Geom.InputType) {
        -:        -: 1944:            linker_error(prog, "geometry shader defined with conflicting "
    #####:    #####: 1945:                         "input types\n");
    #####:    #####: 1946:            return;
        -:        -: 1947:         }
    #####:    #####: 1948:         gl_prog->info.gs.input_primitive = shader->info.Geom.InputType;
        -:        -: 1949:      }
        -:        -: 1950:
    #####:    #####: 1951:      if (shader->info.Geom.OutputType != PRIM_UNKNOWN) {
    #####:    #####: 1952:         if (gl_prog->info.gs.output_primitive != PRIM_UNKNOWN &&
    #####:    #####: 1953:             gl_prog->info.gs.output_primitive !=
    #####:    #####: 1954:             shader->info.Geom.OutputType) {
        -:        -: 1955:            linker_error(prog, "geometry shader defined with conflicting "
    #####:    #####: 1956:                         "output types\n");
    #####:    #####: 1957:            return;
        -:        -: 1958:         }
    #####:    #####: 1959:         gl_prog->info.gs.output_primitive = shader->info.Geom.OutputType;
        -:        -: 1960:      }
        -:        -: 1961:
    #####:    #####: 1962:      if (shader->info.Geom.VerticesOut != -1) {
    #####:    #####: 1963:         if (vertices_out != -1 &&
    #####:    #####: 1964:             vertices_out != shader->info.Geom.VerticesOut) {
    #####:    #####: 1965:            linker_error(prog, "geometry shader defined with conflicting "
        -:        -: 1966:                         "output vertex count (%d and %d)\n",
    #####:    #####: 1967:                         vertices_out, shader->info.Geom.VerticesOut);
    #####:    #####: 1968:            return;
        -:        -: 1969:         }
    #####:    #####: 1970:         vertices_out = shader->info.Geom.VerticesOut;
        -:        -: 1971:      }
        -:        -: 1972:
    #####:    #####: 1973:      if (shader->info.Geom.Invocations != 0) {
    #####:    #####: 1974:         if (gl_prog->info.gs.invocations != 0 &&
    #####:    #####: 1975:             gl_prog->info.gs.invocations !=
    #####:    #####: 1976:             (unsigned) shader->info.Geom.Invocations) {
    #####:    #####: 1977:            linker_error(prog, "geometry shader defined with conflicting "
        -:        -: 1978:                         "invocation count (%d and %d)\n",
        -:        -: 1979:                         gl_prog->info.gs.invocations,
    #####:    #####: 1980:                         shader->info.Geom.Invocations);
    #####:    #####: 1981:            return;
        -:        -: 1982:         }
    #####:    #####: 1983:         gl_prog->info.gs.invocations = shader->info.Geom.Invocations;
        -:        -: 1984:      }
        -:        -: 1985:   }
        -:        -: 1986:
        -:        -: 1987:   /* Just do the intrastage -> interstage propagation right now,
        -:        -: 1988:    * since we already know we're in the right type of shader program
        -:        -: 1989:    * for doing it.
        -:        -: 1990:    */
    #####:    #####: 1991:   if (gl_prog->info.gs.input_primitive == PRIM_UNKNOWN) {
        -:        -: 1992:      linker_error(prog,
    #####:    #####: 1993:                   "geometry shader didn't declare primitive input type\n");
    #####:    #####: 1994:      return;
        -:        -: 1995:   }
        -:        -: 1996:
    #####:    #####: 1997:   if (gl_prog->info.gs.output_primitive == PRIM_UNKNOWN) {
        -:        -: 1998:      linker_error(prog,
    #####:    #####: 1999:                   "geometry shader didn't declare primitive output type\n");
    #####:    #####: 2000:      return;
        -:        -: 2001:   }
        -:        -: 2002:
    #####:    #####: 2003:   if (vertices_out == -1) {
        -:        -: 2004:      linker_error(prog,
    #####:    #####: 2005:                   "geometry shader didn't declare max_vertices\n");
    #####:    #####: 2006:      return;
        -:        -: 2007:   } else {
    #####:    #####: 2008:      gl_prog->info.gs.vertices_out = vertices_out;
        -:        -: 2009:   }
        -:        -: 2010:
    #####:    #####: 2011:   if (gl_prog->info.gs.invocations == 0)
    #####:    #####: 2012:      gl_prog->info.gs.invocations = 1;
        -:        -: 2013:}
        -:        -: 2014:
        -:        -: 2015:
        -:        -: 2016:/**
        -:        -: 2017: * Perform cross-validation of compute shader local_size_{x,y,z} layout
        -:        -: 2018: * qualifiers for the attached compute shaders, and propagate them to the
        -:        -: 2019: * linked CS and linked shader program.
        -:        -: 2020: */
        -:        -: 2021:static void
        3:        3: 2022:link_cs_input_layout_qualifiers(struct gl_shader_program *prog,
        -:        -: 2023:                                struct gl_program *gl_prog,
        -:        -: 2024:                                struct gl_shader **shader_list,
        -:        -: 2025:                                unsigned num_shaders)
        -:        -: 2026:{
        -:        -: 2027:   /* This function is called for all shader stages, but it only has an effect
        -:        -: 2028:    * for compute shaders.
        -:        -: 2029:    */
        3:        3: 2030:   if (gl_prog->info.stage != MESA_SHADER_COMPUTE)
        3:        3: 2031:      return;
        -:        -: 2032:
    #####:    #####: 2033:   for (int i = 0; i < 3; i++)
    #####:    #####: 2034:      gl_prog->info.cs.local_size[i] = 0;
        -:        -: 2035:
    #####:    #####: 2036:   gl_prog->info.cs.local_size_variable = false;
        -:        -: 2037:
        -:        -: 2038:   /* From the ARB_compute_shader spec, in the section describing local size
        -:        -: 2039:    * declarations:
        -:        -: 2040:    *
        -:        -: 2041:    *     If multiple compute shaders attached to a single program object
        -:        -: 2042:    *     declare local work-group size, the declarations must be identical;
        -:        -: 2043:    *     otherwise a link-time error results. Furthermore, if a program
        -:        -: 2044:    *     object contains any compute shaders, at least one must contain an
        -:        -: 2045:    *     input layout qualifier specifying the local work sizes of the
        -:        -: 2046:    *     program, or a link-time error will occur.
        -:        -: 2047:    */
    #####:    #####: 2048:   for (unsigned sh = 0; sh < num_shaders; sh++) {
    #####:    #####: 2049:      struct gl_shader *shader = shader_list[sh];
        -:        -: 2050:
    #####:    #####: 2051:      if (shader->info.Comp.LocalSize[0] != 0) {
    #####:    #####: 2052:         if (gl_prog->info.cs.local_size[0] != 0) {
    #####:    #####: 2053:            for (int i = 0; i < 3; i++) {
    #####:    #####: 2054:               if (gl_prog->info.cs.local_size[i] !=
    #####:    #####: 2055:                   shader->info.Comp.LocalSize[i]) {
        -:        -: 2056:                  linker_error(prog, "compute shader defined with conflicting "
    #####:    #####: 2057:                               "local sizes\n");
    #####:    #####: 2058:                  return;
        -:        -: 2059:               }
        -:        -: 2060:            }
        -:        -: 2061:         }
    #####:    #####: 2062:         for (int i = 0; i < 3; i++) {
        -:        -: 2063:            gl_prog->info.cs.local_size[i] =
    #####:    #####: 2064:               shader->info.Comp.LocalSize[i];
        -:        -: 2065:         }
    #####:    #####: 2066:      } else if (shader->info.Comp.LocalSizeVariable) {
    #####:    #####: 2067:         if (gl_prog->info.cs.local_size[0] != 0) {
        -:        -: 2068:            /* The ARB_compute_variable_group_size spec says:
        -:        -: 2069:             *
        -:        -: 2070:             *     If one compute shader attached to a program declares a
        -:        -: 2071:             *     variable local group size and a second compute shader
        -:        -: 2072:             *     attached to the same program declares a fixed local group
        -:        -: 2073:             *     size, a link-time error results.
        -:        -: 2074:             */
        -:        -: 2075:            linker_error(prog, "compute shader defined with both fixed and "
    #####:    #####: 2076:                         "variable local group size\n");
    #####:    #####: 2077:            return;
        -:        -: 2078:         }
    #####:    #####: 2079:         gl_prog->info.cs.local_size_variable = true;
        -:        -: 2080:      }
        -:        -: 2081:   }
        -:        -: 2082:
        -:        -: 2083:   /* Just do the intrastage -> interstage propagation right now,
        -:        -: 2084:    * since we already know we're in the right type of shader program
        -:        -: 2085:    * for doing it.
        -:        -: 2086:    */
    #####:    #####: 2087:   if (gl_prog->info.cs.local_size[0] == 0 &&
    #####:    #####: 2088:       !gl_prog->info.cs.local_size_variable) {
        -:        -: 2089:      linker_error(prog, "compute shader must contain a fixed or a variable "
    #####:    #####: 2090:                         "local group size\n");
    #####:    #####: 2091:      return;
        -:        -: 2092:   }
        -:        -: 2093:}
        -:        -: 2094:
        -:        -: 2095:
        -:        -: 2096:/**
        -:        -: 2097: * Combine a group of shaders for a single stage to generate a linked shader
        -:        -: 2098: *
        -:        -: 2099: * \note
        -:        -: 2100: * If this function is supplied a single shader, it is cloned, and the new
        -:        -: 2101: * shader is returned.
        -:        -: 2102: */
        -:        -: 2103:struct gl_linked_shader *
        3:        3: 2104:link_intrastage_shaders(void *mem_ctx,
        -:        -: 2105:                        struct gl_context *ctx,
        -:        -: 2106:                        struct gl_shader_program *prog,
        -:        -: 2107:                        struct gl_shader **shader_list,
        -:        -: 2108:                        unsigned num_shaders,
        -:        -: 2109:                        bool allow_missing_main)
        -:        -: 2110:{
        3:        3: 2111:   struct gl_uniform_block *ubo_blocks = NULL;
        3:        3: 2112:   struct gl_uniform_block *ssbo_blocks = NULL;
        3:        3: 2113:   unsigned num_ubo_blocks = 0;
        3:        3: 2114:   unsigned num_ssbo_blocks = 0;
        -:        -: 2115:
        -:        -: 2116:   /* Check that global variables defined in multiple shaders are consistent.
        -:        -: 2117:    */
        6:        6: 2118:   glsl_symbol_table variables;
        6:        6: 2119:   for (unsigned i = 0; i < num_shaders; i++) {
        3:        3: 2120:      if (shader_list[i] == NULL)
    #####:    #####: 2121:         continue;
        3:        3: 2122:      cross_validate_globals(prog, shader_list[i]->ir, &variables, false);
        -:        -: 2123:   }
        -:        -: 2124:
        3:        3: 2125:   if (!prog->data->LinkStatus)
    #####:    #####: 2126:      return NULL;
        -:        -: 2127:
        -:        -: 2128:   /* Check that interface blocks defined in multiple shaders are consistent.
        -:        -: 2129:    */
        -:        -: 2130:   validate_intrastage_interface_blocks(prog, (const gl_shader **)shader_list,
        3:        3: 2131:                                        num_shaders);
        3:        3: 2132:   if (!prog->data->LinkStatus)
    #####:    #####: 2133:      return NULL;
        -:        -: 2134:
        -:        -: 2135:   /* Check that there is only a single definition of each function signature
        -:        -: 2136:    * across all shaders.
        -:        -: 2137:    */
        3:        3: 2138:   for (unsigned i = 0; i < (num_shaders - 1); i++) {
    #####:    #####: 2139:      foreach_in_list(ir_instruction, node, shader_list[i]->ir) {
    #####:    #####: 2140:         ir_function *const f = node->as_function();
        -:        -: 2141:
    #####:    #####: 2142:         if (f == NULL)
    #####:    #####: 2143:            continue;
        -:        -: 2144:
    #####:    #####: 2145:         for (unsigned j = i + 1; j < num_shaders; j++) {
        -:        -: 2146:            ir_function *const other =
    #####:    #####: 2147:               shader_list[j]->symbols->get_function(f->name);
        -:        -: 2148:
        -:        -: 2149:            /* If the other shader has no function (and therefore no function
        -:        -: 2150:             * signatures) with the same name, skip to the next shader.
        -:        -: 2151:             */
    #####:    #####: 2152:            if (other == NULL)
    #####:    #####: 2153:               continue;
        -:        -: 2154:
    #####:    #####: 2155:            foreach_in_list(ir_function_signature, sig, &f->signatures) {
    #####:    #####: 2156:               if (!sig->is_defined)
    #####:    #####: 2157:                  continue;
        -:        -: 2158:
        -:        -: 2159:               ir_function_signature *other_sig =
    #####:    #####: 2160:                  other->exact_matching_signature(NULL, &sig->parameters);
        -:        -: 2161:
    #####:    #####: 2162:               if (other_sig != NULL && other_sig->is_defined) {
    #####:    #####: 2163:                  linker_error(prog, "function `%s' is multiply defined\n",
    #####:    #####: 2164:                               f->name);
    #####:    #####: 2165:                  return NULL;
        -:        -: 2166:               }
        -:        -: 2167:            }
        -:        -: 2168:         }
        -:        -: 2169:      }
        -:        -: 2170:   }
        -:        -: 2171:
        -:        -: 2172:   /* Find the shader that defines main, and make a clone of it.
        -:        -: 2173:    *
        -:        -: 2174:    * Starting with the clone, search for undefined references.  If one is
        -:        -: 2175:    * found, find the shader that defines it.  Clone the reference and add
        -:        -: 2176:    * it to the shader.  Repeat until there are no undefined references or
        -:        -: 2177:    * until a reference cannot be resolved.
        -:        -: 2178:    */
        3:        3: 2179:   gl_shader *main = NULL;
        3:        3: 2180:   for (unsigned i = 0; i < num_shaders; i++) {
        3:        3: 2181:      if (_mesa_get_main_function_signature(shader_list[i]->symbols)) {
        3:        3: 2182:         main = shader_list[i];
        3:        3: 2183:         break;
        -:        -: 2184:      }
        -:        -: 2185:   }
        -:        -: 2186:
        3:        3: 2187:   if (main == NULL && allow_missing_main)
    #####:    #####: 2188:      main = shader_list[0];
        -:        -: 2189:
        3:        3: 2190:   if (main == NULL) {
    #####:    #####: 2191:      linker_error(prog, "%s shader lacks `main'\n",
    #####:    #####: 2192:                   _mesa_shader_stage_to_string(shader_list[0]->Stage));
    #####:    #####: 2193:      return NULL;
        -:        -: 2194:   }
        -:        -: 2195:
        3:        3: 2196:   gl_linked_shader *linked = rzalloc(NULL, struct gl_linked_shader);
        3:        3: 2197:   linked->Stage = shader_list[0]->Stage;
        -:        -: 2198:
        -:        -: 2199:   /* Create program and attach it to the linked shader */
        -:        -: 2200:   struct gl_program *gl_prog =
        6:        6: 2201:      ctx->Driver.NewProgram(ctx,
        3:        3: 2202:                             _mesa_shader_stage_to_program(shader_list[0]->Stage),
        3:        3: 2203:                             prog->Name, false);
        3:        3: 2204:   if (!gl_prog) {
    #####:    #####: 2205:      prog->data->LinkStatus = linking_failure;
    #####:    #####: 2206:      _mesa_delete_linked_shader(ctx, linked);
    #####:    #####: 2207:      return NULL;
        -:        -: 2208:   }
        -:        -: 2209:
        3:        3: 2210:   if (!prog->data->cache_fallback)
        3:        3: 2211:      _mesa_reference_shader_program_data(ctx, &gl_prog->sh.data, prog->data);
        -:        -: 2212:
        -:        -: 2213:   /* Don't use _mesa_reference_program() just take ownership */
        3:        3: 2214:   linked->Program = gl_prog;
        -:        -: 2215:
        3:        3: 2216:   linked->ir = new(linked) exec_list;
        3:        3: 2217:   clone_ir_list(mem_ctx, linked->ir, main->ir);
        -:        -: 2218:
        3:        3: 2219:   link_fs_inout_layout_qualifiers(prog, linked, shader_list, num_shaders);
        3:        3: 2220:   link_tcs_out_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
        3:        3: 2221:   link_tes_in_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
        3:        3: 2222:   link_gs_inout_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
        3:        3: 2223:   link_cs_input_layout_qualifiers(prog, gl_prog, shader_list, num_shaders);
        -:        -: 2224:   link_xfb_stride_layout_qualifiers(ctx, prog, linked, shader_list,
        3:        3: 2225:                                     num_shaders);
        -:        -: 2226:
        3:        3: 2227:   populate_symbol_table(linked);
        -:        -: 2228:
        -:        -: 2229:   /* The pointer to the main function in the final linked shader (i.e., the
        -:        -: 2230:    * copy of the original shader that contained the main function).
        -:        -: 2231:    */
        -:        -: 2232:   ir_function_signature *const main_sig =
        3:        3: 2233:      _mesa_get_main_function_signature(linked->symbols);
        -:        -: 2234:
        -:        -: 2235:   /* Move any instructions other than variable declarations or function
        -:        -: 2236:    * declarations into main.
        -:        -: 2237:    */
        3:        3: 2238:   if (main_sig != NULL) {
        -:        -: 2239:      exec_node *insertion_point =
        3:        3: 2240:         move_non_declarations(linked->ir, (exec_node *) &main_sig->body, false,
        3:        3: 2241:                               linked);
        -:        -: 2242:
        6:        6: 2243:      for (unsigned i = 0; i < num_shaders; i++) {
        3:        3: 2244:         if (shader_list[i] == main)
        3:        3: 2245:            continue;
        -:        -: 2246:
    #####:    #####: 2247:         insertion_point = move_non_declarations(shader_list[i]->ir,
    #####:    #####: 2248:                                                 insertion_point, true, linked);
        -:        -: 2249:      }
        -:        -: 2250:   }
        -:        -: 2251:
        3:        3: 2252:   if (!link_function_calls(prog, linked, shader_list, num_shaders)) {
    #####:    #####: 2253:      _mesa_delete_linked_shader(ctx, linked);
    #####:    #####: 2254:      return NULL;
        -:        -: 2255:   }
        -:        -: 2256:
        -:        -: 2257:   /* Make a pass over all variable declarations to ensure that arrays with
        -:        -: 2258:    * unspecified sizes have a size specified.  The size is inferred from the
        -:        -: 2259:    * max_array_access field.
        -:        -: 2260:    */
        6:        6: 2261:   array_sizing_visitor v;
        3:        3: 2262:   v.run(linked->ir);
        3:        3: 2263:   v.fixup_unnamed_interface_types();
        -:        -: 2264:
        3:        3: 2265:   if (!prog->data->cache_fallback) {
        -:        -: 2266:      /* Link up uniform blocks defined within this stage. */
        -:        -: 2267:      link_uniform_blocks(mem_ctx, ctx, prog, linked, &ubo_blocks,
        3:        3: 2268:                          &num_ubo_blocks, &ssbo_blocks, &num_ssbo_blocks);
        -:        -: 2269:
        3:        3: 2270:      if (!prog->data->LinkStatus) {
    #####:    #####: 2271:         _mesa_delete_linked_shader(ctx, linked);
    #####:    #####: 2272:         return NULL;
        -:        -: 2273:      }
        -:        -: 2274:
        -:        -: 2275:      /* Copy ubo blocks to linked shader list */
        3:        3: 2276:      linked->Program->sh.UniformBlocks =
        3:        3: 2277:         ralloc_array(linked, gl_uniform_block *, num_ubo_blocks);
        3:        3: 2278:      ralloc_steal(linked, ubo_blocks);
        3:        3: 2279:      for (unsigned i = 0; i < num_ubo_blocks; i++) {
    #####:    #####: 2280:         linked->Program->sh.UniformBlocks[i] = &ubo_blocks[i];
        -:        -: 2281:      }
        3:        3: 2282:      linked->Program->info.num_ubos = num_ubo_blocks;
        -:        -: 2283:
        -:        -: 2284:      /* Copy ssbo blocks to linked shader list */
        3:        3: 2285:      linked->Program->sh.ShaderStorageBlocks =
        3:        3: 2286:         ralloc_array(linked, gl_uniform_block *, num_ssbo_blocks);
        3:        3: 2287:      ralloc_steal(linked, ssbo_blocks);
        3:        3: 2288:      for (unsigned i = 0; i < num_ssbo_blocks; i++) {
    #####:    #####: 2289:         linked->Program->sh.ShaderStorageBlocks[i] = &ssbo_blocks[i];
        -:        -: 2290:      }
        3:        3: 2291:      linked->Program->info.num_ssbos = num_ssbo_blocks;
        -:        -: 2292:   }
        -:        -: 2293:
        -:        -: 2294:   /* At this point linked should contain all of the linked IR, so
        -:        -: 2295:    * validate it to make sure nothing went wrong.
        -:        -: 2296:    */
        3:        3: 2297:   validate_ir_tree(linked->ir);
        -:        -: 2298:
        -:        -: 2299:   /* Set the size of geometry shader input arrays */
        3:        3: 2300:   if (linked->Stage == MESA_SHADER_GEOMETRY) {
        -:        -: 2301:      unsigned num_vertices =
    #####:    #####: 2302:         vertices_per_prim(gl_prog->info.gs.input_primitive);
        -:        -: 2303:      array_resize_visitor input_resize_visitor(num_vertices, prog,
    #####:    #####: 2304:                                                MESA_SHADER_GEOMETRY);
    #####:    #####: 2305:      foreach_in_list(ir_instruction, ir, linked->ir) {
    #####:    #####: 2306:         ir->accept(&input_resize_visitor);
        -:        -: 2307:      }
        -:        -: 2308:   }
        -:        -: 2309:
        3:        3: 2310:   if (ctx->Const.VertexID_is_zero_based)
        3:        3: 2311:      lower_vertex_id(linked);
        -:        -: 2312:
        -:        -: 2313:#ifdef DEBUG
        -:        -: 2314:   /* Compute the source checksum. */
        3:        3: 2315:   linked->SourceChecksum = 0;
        6:        6: 2316:   for (unsigned i = 0; i < num_shaders; i++) {
        3:        3: 2317:      if (shader_list[i] == NULL)
    #####:    #####: 2318:         continue;
        3:        3: 2319:      linked->SourceChecksum ^= shader_list[i]->SourceChecksum;
        -:        -: 2320:   }
        -:        -: 2321:#endif
        -:        -: 2322:
        3:        3: 2323:   return linked;
        -:        -: 2324:}
        -:        -: 2325:
        -:        -: 2326:/**
        -:        -: 2327: * Update the sizes of linked shader uniform arrays to the maximum
        -:        -: 2328: * array index used.
        -:        -: 2329: *
        -:        -: 2330: * From page 81 (page 95 of the PDF) of the OpenGL 2.1 spec:
        -:        -: 2331: *
        -:        -: 2332: *     If one or more elements of an array are active,
        -:        -: 2333: *     GetActiveUniform will return the name of the array in name,
        -:        -: 2334: *     subject to the restrictions listed above. The type of the array
        -:        -: 2335: *     is returned in type. The size parameter contains the highest
        -:        -: 2336: *     array element index used, plus one. The compiler or linker
        -:        -: 2337: *     determines the highest index used.  There will be only one
        -:        -: 2338: *     active uniform reported by the GL per uniform array.
        -:        -: 2339:
        -:        -: 2340: */
        -:        -: 2341:static void
        2:        2: 2342:update_array_sizes(struct gl_shader_program *prog)
        -:        -: 2343:{
       14:       14: 2344:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 2345:         if (prog->_LinkedShaders[i] == NULL)
        9:        9: 2346:            continue;
        -:        -: 2347:
        3:        3: 2348:      bool types_were_updated = false;
        -:        -: 2349:
       14:       14: 2350:      foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) {
       11:       11: 2351:         ir_variable *const var = node->as_variable();
        -:        -: 2352:
       13:       13: 2353:         if ((var == NULL) || (var->data.mode != ir_var_uniform) ||
        2:        2: 2354:             !var->type->is_array())
       10:       10: 2355:            continue;
        -:        -: 2356:
        -:        -: 2357:         /* GL_ARB_uniform_buffer_object says that std140 uniforms
        -:        -: 2358:          * will not be eliminated.  Since we always do std140, just
        -:        -: 2359:          * don't resize arrays in UBOs.
        -:        -: 2360:          *
        -:        -: 2361:          * Atomic counters are supposed to get deterministic
        -:        -: 2362:          * locations assigned based on the declaration ordering and
        -:        -: 2363:          * sizes, array compaction would mess that up.
        -:        -: 2364:          *
        -:        -: 2365:          * Subroutine uniforms are not removed.
        -:        -: 2366:          */
        4:        4: 2367:         if (var->is_in_buffer_block() || var->type->contains_atomic() ||
        3:        3: 2368:             var->type->contains_subroutine() || var->constant_initializer)
    #####:    #####: 2369:            continue;
        -:        -: 2370:
        1:        1: 2371:         int size = var->data.max_array_access;
        7:        7: 2372:         for (unsigned j = 0; j < MESA_SHADER_STAGES; j++) {
        6:        6: 2373:               if (prog->_LinkedShaders[j] == NULL)
        4:        4: 2374:                  continue;
        -:        -: 2375:
       10:       10: 2376:            foreach_in_list(ir_instruction, node2, prog->_LinkedShaders[j]->ir) {
        8:        8: 2377:               ir_variable *other_var = node2->as_variable();
        8:        8: 2378:               if (!other_var)
        2:        2: 2379:                  continue;
        -:        -: 2380:
        7:        7: 2381:               if (strcmp(var->name, other_var->name) == 0 &&
        1:        1: 2382:                   other_var->data.max_array_access > size) {
    #####:    #####: 2383:                  size = other_var->data.max_array_access;
        -:        -: 2384:               }
        -:        -: 2385:            }
        -:        -: 2386:         }
        -:        -: 2387:
        1:        1: 2388:         if (size + 1 != (int)var->type->length) {
        -:        -: 2389:            /* If this is a built-in uniform (i.e., it's backed by some
        -:        -: 2390:             * fixed-function state), adjust the number of state slots to
        -:        -: 2391:             * match the new array size.  The number of slots per array entry
        -:        -: 2392:             * is not known.  It seems safe to assume that the total number of
        -:        -: 2393:             * slots is an integer multiple of the number of array elements.
        -:        -: 2394:             * Determine the number of slots per array element by dividing by
        -:        -: 2395:             * the old (total) size.
        -:        -: 2396:             */
    #####:    #####: 2397:            const unsigned num_slots = var->get_num_state_slots();
    #####:    #####: 2398:            if (num_slots > 0) {
    #####:    #####: 2399:               var->set_num_state_slots((size + 1)
    #####:    #####: 2400:                                        * (num_slots / var->type->length));
        -:        -: 2401:            }
        -:        -: 2402:
    #####:    #####: 2403:            var->type = glsl_type::get_array_instance(var->type->fields.array,
    #####:    #####: 2404:                                                      size + 1);
    #####:    #####: 2405:            types_were_updated = true;
        -:        -: 2406:         }
        -:        -: 2407:      }
        -:        -: 2408:
        -:        -: 2409:      /* Update the types of dereferences in case we changed any. */
        3:        3: 2410:      if (types_were_updated) {
    #####:    #####: 2411:         deref_type_updater v;
    #####:    #####: 2412:         v.run(prog->_LinkedShaders[i]->ir);
        -:        -: 2413:      }
        -:        -: 2414:   }
        2:        2: 2415:}
        -:        -: 2416:
        -:        -: 2417:/**
        -:        -: 2418: * Resize tessellation evaluation per-vertex inputs to the size of
        -:        -: 2419: * tessellation control per-vertex outputs.
        -:        -: 2420: */
        -:        -: 2421:static void
        2:        2: 2422:resize_tes_inputs(struct gl_context *ctx,
        -:        -: 2423:                  struct gl_shader_program *prog)
        -:        -: 2424:{
        2:        2: 2425:   if (prog->_LinkedShaders[MESA_SHADER_TESS_EVAL] == NULL)
        2:        2: 2426:      return;
        -:        -: 2427:
    #####:    #####: 2428:   gl_linked_shader *const tcs = prog->_LinkedShaders[MESA_SHADER_TESS_CTRL];
    #####:    #####: 2429:   gl_linked_shader *const tes = prog->_LinkedShaders[MESA_SHADER_TESS_EVAL];
        -:        -: 2430:
        -:        -: 2431:   /* If no control shader is present, then the TES inputs are statically
        -:        -: 2432:    * sized to MaxPatchVertices; the actual size of the arrays won't be
        -:        -: 2433:    * known until draw time.
        -:        -: 2434:    */
        -:        -: 2435:   const int num_vertices = tcs
    #####:    #####: 2436:      ? tcs->Program->info.tess.tcs_vertices_out
    #####:    #####: 2437:      : ctx->Const.MaxPatchVertices;
        -:        -: 2438:
        -:        -: 2439:   array_resize_visitor input_resize_visitor(num_vertices, prog,
    #####:    #####: 2440:                                             MESA_SHADER_TESS_EVAL);
    #####:    #####: 2441:   foreach_in_list(ir_instruction, ir, tes->ir) {
    #####:    #####: 2442:      ir->accept(&input_resize_visitor);
        -:        -: 2443:   }
        -:        -: 2444:
    #####:    #####: 2445:   if (tcs || ctx->Const.LowerTESPatchVerticesIn) {
        -:        -: 2446:      /* Convert the gl_PatchVerticesIn system value into a constant, since
        -:        -: 2447:       * the value is known at this point.
        -:        -: 2448:       */
    #####:    #####: 2449:      foreach_in_list(ir_instruction, ir, tes->ir) {
    #####:    #####: 2450:         ir_variable *var = ir->as_variable();
    #####:    #####: 2451:         if (var && var->data.mode == ir_var_system_value &&
    #####:    #####: 2452:             var->data.location == SYSTEM_VALUE_VERTICES_IN) {
    #####:    #####: 2453:            void *mem_ctx = ralloc_parent(var);
    #####:    #####: 2454:            var->data.location = 0;
    #####:    #####: 2455:            var->data.explicit_location = false;
    #####:    #####: 2456:            if (tcs) {
    #####:    #####: 2457:               var->data.mode = ir_var_auto;
    #####:    #####: 2458:               var->constant_value = new(mem_ctx) ir_constant(num_vertices);
        -:        -: 2459:            } else {
    #####:    #####: 2460:               var->data.mode = ir_var_uniform;
    #####:    #####: 2461:               var->data.how_declared = ir_var_hidden;
    #####:    #####: 2462:               var->allocate_state_slots(1);
    #####:    #####: 2463:               ir_state_slot *slot0 = &var->get_state_slots()[0];
    #####:    #####: 2464:               slot0->swizzle = SWIZZLE_XXXX;
    #####:    #####: 2465:               slot0->tokens[0] = STATE_INTERNAL;
    #####:    #####: 2466:               slot0->tokens[1] = STATE_TES_PATCH_VERTICES_IN;
    #####:    #####: 2467:               for (int i = 2; i < STATE_LENGTH; i++)
    #####:    #####: 2468:                  slot0->tokens[i] = 0;
        -:        -: 2469:            }
        -:        -: 2470:         }
        -:        -: 2471:      }
        -:        -: 2472:   }
        -:        -: 2473:}
        -:        -: 2474:
        -:        -: 2475:/**
        -:        -: 2476: * Find a contiguous set of available bits in a bitmask.
        -:        -: 2477: *
        -:        -: 2478: * \param used_mask     Bits representing used (1) and unused (0) locations
        -:        -: 2479: * \param needed_count  Number of contiguous bits needed.
        -:        -: 2480: *
        -:        -: 2481: * \return
        -:        -: 2482: * Base location of the available bits on success or -1 on failure.
        -:        -: 2483: */
        -:        -: 2484:int
        1:        1: 2485:find_available_slots(unsigned used_mask, unsigned needed_count)
        -:        -: 2486:{
        1:        1: 2487:   unsigned needed_mask = (1 << needed_count) - 1;
        1:        1: 2488:   const int max_bit_to_test = (8 * sizeof(used_mask)) - needed_count;
        -:        -: 2489:
        -:        -: 2490:   /* The comparison to 32 is redundant, but without it GCC emits "warning:
        -:        -: 2491:    * cannot optimize possibly infinite loops" for the loop below.
        -:        -: 2492:    */
        1:        1: 2493:   if ((needed_count == 0) || (max_bit_to_test < 0) || (max_bit_to_test > 32))
    #####:    #####: 2494:      return -1;
        -:        -: 2495:
        1:        1: 2496:   for (int i = 0; i <= max_bit_to_test; i++) {
        1:        1: 2497:      if ((needed_mask & ~used_mask) == needed_mask)
        1:        1: 2498:         return i;
        -:        -: 2499:
    #####:    #####: 2500:      needed_mask <<= 1;
        -:        -: 2501:   }
        -:        -: 2502:
    #####:    #####: 2503:   return -1;
        -:        -: 2504:}
        -:        -: 2505:
        -:        -: 2506:
        -:        -: 2507:/**
        -:        -: 2508: * Assign locations for either VS inputs or FS outputs
        -:        -: 2509: *
        -:        -: 2510: * \param mem_ctx       Temporary ralloc context used for linking
        -:        -: 2511: * \param prog          Shader program whose variables need locations assigned
        -:        -: 2512: * \param constants     Driver specific constant values for the program.
        -:        -: 2513: * \param target_index  Selector for the program target to receive location
        -:        -: 2514: *                      assignmnets.  Must be either \c MESA_SHADER_VERTEX or
        -:        -: 2515: *                      \c MESA_SHADER_FRAGMENT.
        -:        -: 2516: *
        -:        -: 2517: * \return
        -:        -: 2518: * If locations are successfully assigned, true is returned.  Otherwise an
        -:        -: 2519: * error is emitted to the shader link log and false is returned.
        -:        -: 2520: */
        -:        -: 2521:bool
        4:        4: 2522:assign_attribute_or_color_locations(void *mem_ctx,
        -:        -: 2523:                                    gl_shader_program *prog,
        -:        -: 2524:                                    struct gl_constants *constants,
        -:        -: 2525:                                    unsigned target_index)
        -:        -: 2526:{
        -:        -: 2527:   /* Maximum number of generic locations.  This corresponds to either the
        -:        -: 2528:    * maximum number of draw buffers or the maximum number of generic
        -:        -: 2529:    * attributes.
        -:        -: 2530:    */
        -:        -: 2531:   unsigned max_index = (target_index == MESA_SHADER_VERTEX) ?
        -:        -: 2532:      constants->Program[target_index].MaxAttribs :
        4:        4: 2533:      MAX2(constants->MaxDrawBuffers, constants->MaxDualSourceDrawBuffers);
        -:        -: 2534:
        -:        -: 2535:   /* Mark invalid locations as being used.
        -:        -: 2536:    */
        -:        -: 2537:   unsigned used_locations = (max_index >= 32)
        4:        4: 2538:      ? ~0 : ~((1 << max_index) - 1);
        4:        4: 2539:   unsigned double_storage_locations = 0;
        -:        -: 2540:
        2:        2: 2541:   assert((target_index == MESA_SHADER_VERTEX)
        4:        4: 2542:          || (target_index == MESA_SHADER_FRAGMENT));
        -:        -: 2543:
        4:        4: 2544:   gl_linked_shader *const sh = prog->_LinkedShaders[target_index];
        4:        4: 2545:   if (sh == NULL)
        1:        1: 2546:      return true;
        -:        -: 2547:
        -:        -: 2548:   /* Operate in a total of four passes.
        -:        -: 2549:    *
        -:        -: 2550:    * 1. Invalidate the location assignments for all vertex shader inputs.
        -:        -: 2551:    *
        -:        -: 2552:    * 2. Assign locations for inputs that have user-defined (via
        -:        -: 2553:    *    glBindVertexAttribLocation) locations and outputs that have
        -:        -: 2554:    *    user-defined locations (via glBindFragDataLocation).
        -:        -: 2555:    *
        -:        -: 2556:    * 3. Sort the attributes without assigned locations by number of slots
        -:        -: 2557:    *    required in decreasing order.  Fragmentation caused by attribute
        -:        -: 2558:    *    locations assigned by the application may prevent large attributes
        -:        -: 2559:    *    from having enough contiguous space.
        -:        -: 2560:    *
        -:        -: 2561:    * 4. Assign locations to any inputs without assigned locations.
        -:        -: 2562:    */
        -:        -: 2563:
        -:        -: 2564:   const int generic_base = (target_index == MESA_SHADER_VERTEX)
        3:        3: 2565:      ? (int) VERT_ATTRIB_GENERIC0 : (int) FRAG_RESULT_DATA0;
        -:        -: 2566:
        -:        -: 2567:   const enum ir_variable_mode direction =
        -:        -: 2568:      (target_index == MESA_SHADER_VERTEX)
        3:        3: 2569:      ? ir_var_shader_in : ir_var_shader_out;
        -:        -: 2570:
        -:        -: 2571:
        -:        -: 2572:   /* Temporary storage for the set of attributes that need locations assigned.
        -:        -: 2573:    */
        -:        -: 2574:   struct temp_attr {
        -:        -: 2575:      unsigned slots;
        -:        -: 2576:      ir_variable *var;
        -:        -: 2577:
        -:        -: 2578:      /* Used below in the call to qsort. */
    #####:    #####: 2579:      static int compare(const void *a, const void *b)
        -:        -: 2580:      {
    #####:    #####: 2581:         const temp_attr *const l = (const temp_attr *) a;
    #####:    #####: 2582:         const temp_attr *const r = (const temp_attr *) b;
        -:        -: 2583:
        -:        -: 2584:         /* Reversed because we want a descending order sort below. */
    #####:    #####: 2585:         return r->slots - l->slots;
        -:        -: 2586:      }
        -:        -: 2587:   } to_assign[32];
        3:        3: 2588:   assert(max_index <= 32);
        -:        -: 2589:
        -:        -: 2590:   /* Temporary array for the set of attributes that have locations assigned.
        -:        -: 2591:    */
        -:        -: 2592:   ir_variable *assigned[16];
        -:        -: 2593:
        3:        3: 2594:   unsigned num_attr = 0;
        3:        3: 2595:   unsigned assigned_attr = 0;
        -:        -: 2596:
       14:       14: 2597:   foreach_in_list(ir_instruction, node, sh->ir) {
       11:       11: 2598:      ir_variable *const var = node->as_variable();
        -:        -: 2599:
       11:       11: 2600:      if ((var == NULL) || (var->data.mode != (unsigned) direction))
        8:        8: 2601:         continue;
        -:        -: 2602:
        3:        3: 2603:      if (var->data.explicit_location) {
        2:        2: 2604:         var->data.is_unmatched_generic_inout = 0;
        2:        2: 2605:         if ((var->data.location >= (int)(max_index + generic_base))
        2:        2: 2606:             || (var->data.location < 0)) {
    #####:    #####: 2607:            linker_error(prog,
        -:        -: 2608:                         "invalid explicit location %d specified for `%s'\n",
    #####:    #####: 2609:                         (var->data.location < 0)
        -:        -: 2610:                         ? var->data.location
    #####:    #####: 2611:                         : var->data.location - generic_base,
    #####:    #####: 2612:                         var->name);
    #####:    #####: 2613:            return false;
        -:        -: 2614:         }
        1:        1: 2615:      } else if (target_index == MESA_SHADER_VERTEX) {
        -:        -: 2616:         unsigned binding;
        -:        -: 2617:
        1:        1: 2618:         if (prog->AttributeBindings->get(binding, var->name)) {
    #####:    #####: 2619:            assert(binding >= VERT_ATTRIB_GENERIC0);
    #####:    #####: 2620:            var->data.location = binding;
    #####:    #####: 2621:            var->data.is_unmatched_generic_inout = 0;
        -:        -: 2622:         }
    #####:    #####: 2623:      } else if (target_index == MESA_SHADER_FRAGMENT) {
        -:        -: 2624:         unsigned binding;
        -:        -: 2625:         unsigned index;
    #####:    #####: 2626:         const char *name = var->name;
    #####:    #####: 2627:         const glsl_type *type = var->type;
        -:        -: 2628:
    #####:    #####: 2629:         while (type) {
        -:        -: 2630:            /* Check if there's a binding for the variable name */
    #####:    #####: 2631:            if (prog->FragDataBindings->get(binding, name)) {
    #####:    #####: 2632:               assert(binding >= FRAG_RESULT_DATA0);
    #####:    #####: 2633:               var->data.location = binding;
    #####:    #####: 2634:               var->data.is_unmatched_generic_inout = 0;
        -:        -: 2635:
    #####:    #####: 2636:               if (prog->FragDataIndexBindings->get(index, name)) {
    #####:    #####: 2637:                  var->data.index = index;
        -:        -: 2638:               }
    #####:    #####: 2639:               break;
        -:        -: 2640:            }
        -:        -: 2641:
        -:        -: 2642:            /* If not, but it's an array type, look for name[0] */
    #####:    #####: 2643:            if (type->is_array()) {
    #####:    #####: 2644:               name = ralloc_asprintf(mem_ctx, "%s[0]", name);
    #####:    #####: 2645:               type = type->fields.array;
    #####:    #####: 2646:               continue;
        -:        -: 2647:            }
        -:        -: 2648:
    #####:    #####: 2649:            break;
        -:        -: 2650:         }
        -:        -: 2651:      }
        -:        -: 2652:
        3:        3: 2653:      if (strcmp(var->name, "gl_LastFragData") == 0)
    #####:    #####: 2654:         continue;
        -:        -: 2655:
        -:        -: 2656:      /* From GL4.5 core spec, section 15.2 (Shader Execution):
        -:        -: 2657:       *
        -:        -: 2658:       *     "Output binding assignments will cause LinkProgram to fail:
        -:        -: 2659:       *     ...
        -:        -: 2660:       *     If the program has an active output assigned to a location greater
        -:        -: 2661:       *     than or equal to the value of MAX_DUAL_SOURCE_DRAW_BUFFERS and has
        -:        -: 2662:       *     an active output assigned an index greater than or equal to one;"
        -:        -: 2663:       */
        3:        3: 2664:      if (target_index == MESA_SHADER_FRAGMENT && var->data.index >= 1 &&
    #####:    #####: 2665:          var->data.location - generic_base >=
    #####:    #####: 2666:          (int) constants->MaxDualSourceDrawBuffers) {
    #####:    #####: 2667:         linker_error(prog,
        -:        -: 2668:                      "output location %d >= GL_MAX_DUAL_SOURCE_DRAW_BUFFERS "
        -:        -: 2669:                      "with index %u for %s\n",
    #####:    #####: 2670:                      var->data.location - generic_base, var->data.index,
    #####:    #####: 2671:                      var->name);
    #####:    #####: 2672:         return false;
        -:        -: 2673:      }
        -:        -: 2674:
        3:        3: 2675:      const unsigned slots = var->type->count_attribute_slots(target_index == MESA_SHADER_VERTEX);
        -:        -: 2676:
        -:        -: 2677:      /* If the variable is not a built-in and has a location statically
        -:        -: 2678:       * assigned in the shader (presumably via a layout qualifier), make sure
        -:        -: 2679:       * that it doesn't collide with other assigned locations.  Otherwise,
        -:        -: 2680:       * add it to the list of variables that need linker-assigned locations.
        -:        -: 2681:       */
        3:        3: 2682:      if (var->data.location != -1) {
        2:        2: 2683:         if (var->data.location >= generic_base && var->data.index < 1) {
        -:        -: 2684:            /* From page 61 of the OpenGL 4.0 spec:
        -:        -: 2685:             *
        -:        -: 2686:             *     "LinkProgram will fail if the attribute bindings assigned
        -:        -: 2687:             *     by BindAttribLocation do not leave not enough space to
        -:        -: 2688:             *     assign a location for an active matrix attribute or an
        -:        -: 2689:             *     active attribute array, both of which require multiple
        -:        -: 2690:             *     contiguous generic attributes."
        -:        -: 2691:             *
        -:        -: 2692:             * I think above text prohibits the aliasing of explicit and
        -:        -: 2693:             * automatic assignments. But, aliasing is allowed in manual
        -:        -: 2694:             * assignments of attribute locations. See below comments for
        -:        -: 2695:             * the details.
        -:        -: 2696:             *
        -:        -: 2697:             * From OpenGL 4.0 spec, page 61:
        -:        -: 2698:             *
        -:        -: 2699:             *     "It is possible for an application to bind more than one
        -:        -: 2700:             *     attribute name to the same location. This is referred to as
        -:        -: 2701:             *     aliasing. This will only work if only one of the aliased
        -:        -: 2702:             *     attributes is active in the executable program, or if no
        -:        -: 2703:             *     path through the shader consumes more than one attribute of
        -:        -: 2704:             *     a set of attributes aliased to the same location. A link
        -:        -: 2705:             *     error can occur if the linker determines that every path
        -:        -: 2706:             *     through the shader consumes multiple aliased attributes,
        -:        -: 2707:             *     but implementations are not required to generate an error
        -:        -: 2708:             *     in this case."
        -:        -: 2709:             *
        -:        -: 2710:             * From GLSL 4.30 spec, page 54:
        -:        -: 2711:             *
        -:        -: 2712:             *    "A program will fail to link if any two non-vertex shader
        -:        -: 2713:             *     input variables are assigned to the same location. For
        -:        -: 2714:             *     vertex shaders, multiple input variables may be assigned
        -:        -: 2715:             *     to the same location using either layout qualifiers or via
        -:        -: 2716:             *     the OpenGL API. However, such aliasing is intended only to
        -:        -: 2717:             *     support vertex shaders where each execution path accesses
        -:        -: 2718:             *     at most one input per each location. Implementations are
        -:        -: 2719:             *     permitted, but not required, to generate link-time errors
        -:        -: 2720:             *     if they detect that every path through the vertex shader
        -:        -: 2721:             *     executable accesses multiple inputs assigned to any single
        -:        -: 2722:             *     location. For all shader types, a program will fail to link
        -:        -: 2723:             *     if explicit location assignments leave the linker unable
        -:        -: 2724:             *     to find space for other variables without explicit
        -:        -: 2725:             *     assignments."
        -:        -: 2726:             *
        -:        -: 2727:             * From OpenGL ES 3.0 spec, page 56:
        -:        -: 2728:             *
        -:        -: 2729:             *    "Binding more than one attribute name to the same location
        -:        -: 2730:             *     is referred to as aliasing, and is not permitted in OpenGL
        -:        -: 2731:             *     ES Shading Language 3.00 vertex shaders. LinkProgram will
        -:        -: 2732:             *     fail when this condition exists. However, aliasing is
        -:        -: 2733:             *     possible in OpenGL ES Shading Language 1.00 vertex shaders.
        -:        -: 2734:             *     This will only work if only one of the aliased attributes
        -:        -: 2735:             *     is active in the executable program, or if no path through
        -:        -: 2736:             *     the shader consumes more than one attribute of a set of
        -:        -: 2737:             *     attributes aliased to the same location. A link error can
        -:        -: 2738:             *     occur if the linker determines that every path through the
        -:        -: 2739:             *     shader consumes multiple aliased attributes, but implemen-
        -:        -: 2740:             *     tations are not required to generate an error in this case."
        -:        -: 2741:             *
        -:        -: 2742:             * After looking at above references from OpenGL, OpenGL ES and
        -:        -: 2743:             * GLSL specifications, we allow aliasing of vertex input variables
        -:        -: 2744:             * in: OpenGL 2.0 (and above) and OpenGL ES 2.0.
        -:        -: 2745:             *
        -:        -: 2746:             * NOTE: This is not required by the spec but its worth mentioning
        -:        -: 2747:             * here that we're not doing anything to make sure that no path
        -:        -: 2748:             * through the vertex shader executable accesses multiple inputs
        -:        -: 2749:             * assigned to any single location.
        -:        -: 2750:             */
        -:        -: 2751:
        -:        -: 2752:            /* Mask representing the contiguous slots that will be used by
        -:        -: 2753:             * this attribute.
        -:        -: 2754:             */
    #####:    #####: 2755:            const unsigned attr = var->data.location - generic_base;
    #####:    #####: 2756:            const unsigned use_mask = (1 << slots) - 1;
        -:        -: 2757:            const char *const string = (target_index == MESA_SHADER_VERTEX)
    #####:    #####: 2758:               ? "vertex shader input" : "fragment shader output";
        -:        -: 2759:
        -:        -: 2760:            /* Generate a link error if the requested locations for this
        -:        -: 2761:             * attribute exceed the maximum allowed attribute location.
        -:        -: 2762:             */
    #####:    #####: 2763:            if (attr + slots > max_index) {
    #####:    #####: 2764:               linker_error(prog,
        -:        -: 2765:                           "insufficient contiguous locations "
        -:        -: 2766:                           "available for %s `%s' %d %d %d\n", string,
    #####:    #####: 2767:                           var->name, used_locations, use_mask, attr);
    #####:    #####: 2768:               return false;
        -:        -: 2769:            }
        -:        -: 2770:
        -:        -: 2771:            /* Generate a link error if the set of bits requested for this
        -:        -: 2772:             * attribute overlaps any previously allocated bits.
        -:        -: 2773:             */
    #####:    #####: 2774:            if ((~(use_mask << attr) & used_locations) != used_locations) {
    #####:    #####: 2775:               if (target_index == MESA_SHADER_FRAGMENT && !prog->IsES) {
        -:        -: 2776:                  /* From section 4.4.2 (Output Layout Qualifiers) of the GLSL
        -:        -: 2777:                   * 4.40 spec:
        -:        -: 2778:                   *
        -:        -: 2779:                   *    "Additionally, for fragment shader outputs, if two
        -:        -: 2780:                   *    variables are placed within the same location, they
        -:        -: 2781:                   *    must have the same underlying type (floating-point or
        -:        -: 2782:                   *    integer). No component aliasing of output variables or
        -:        -: 2783:                   *    members is allowed.
        -:        -: 2784:                   */
    #####:    #####: 2785:                  for (unsigned i = 0; i < assigned_attr; i++) {
        -:        -: 2786:                     unsigned assigned_slots =
    #####:    #####: 2787:                        assigned[i]->type->count_attribute_slots(false);
        -:        -: 2788:                     unsigned assig_attr =
    #####:    #####: 2789:                        assigned[i]->data.location - generic_base;
    #####:    #####: 2790:                     unsigned assigned_use_mask = (1 << assigned_slots) - 1;
        -:        -: 2791:
    #####:    #####: 2792:                     if ((assigned_use_mask << assig_attr) &
    #####:    #####: 2793:                         (use_mask << attr)) {
        -:        -: 2794:
        -:        -: 2795:                        const glsl_type *assigned_type =
    #####:    #####: 2796:                           assigned[i]->type->without_array();
    #####:    #####: 2797:                        const glsl_type *type = var->type->without_array();
    #####:    #####: 2798:                        if (assigned_type->base_type != type->base_type) {
    #####:    #####: 2799:                           linker_error(prog, "types do not match for aliased"
        -:        -: 2800:                                        " %ss %s and %s\n", string,
    #####:    #####: 2801:                                        assigned[i]->name, var->name);
    #####:    #####: 2802:                           return false;
        -:        -: 2803:                        }
        -:        -: 2804:
        -:        -: 2805:                        unsigned assigned_component_mask =
    #####:    #####: 2806:                           ((1 << assigned_type->vector_elements) - 1) <<
    #####:    #####: 2807:                           assigned[i]->data.location_frac;
        -:        -: 2808:                        unsigned component_mask =
    #####:    #####: 2809:                           ((1 << type->vector_elements) - 1) <<
    #####:    #####: 2810:                           var->data.location_frac;
    #####:    #####: 2811:                        if (assigned_component_mask & component_mask) {
    #####:    #####: 2812:                           linker_error(prog, "overlapping component is "
        -:        -: 2813:                                        "assigned to %ss %s and %s "
        -:        -: 2814:                                        "(component=%d)\n",
    #####:    #####: 2815:                                        string, assigned[i]->name, var->name,
    #####:    #####: 2816:                                        var->data.location_frac);
    #####:    #####: 2817:                           return false;
        -:        -: 2818:                        }
        -:        -: 2819:                     }
    #####:    #####: 2820:                  }
    #####:    #####: 2821:               } else if (target_index == MESA_SHADER_FRAGMENT ||
    #####:    #####: 2822:                          (prog->IsES && prog->data->Version >= 300)) {
    #####:    #####: 2823:                  linker_error(prog, "overlapping location is assigned "
        -:        -: 2824:                               "to %s `%s' %d %d %d\n", string, var->name,
    #####:    #####: 2825:                               used_locations, use_mask, attr);
    #####:    #####: 2826:                  return false;
        -:        -: 2827:               } else {
    #####:    #####: 2828:                  linker_warning(prog, "overlapping location is assigned "
        -:        -: 2829:                                 "to %s `%s' %d %d %d\n", string, var->name,
    #####:    #####: 2830:                                 used_locations, use_mask, attr);
        -:        -: 2831:               }
        -:        -: 2832:            }
        -:        -: 2833:
    #####:    #####: 2834:            used_locations |= (use_mask << attr);
        -:        -: 2835:
        -:        -: 2836:            /* From the GL 4.5 core spec, section 11.1.1 (Vertex Attributes):
        -:        -: 2837:             *
        -:        -: 2838:             * "A program with more than the value of MAX_VERTEX_ATTRIBS
        -:        -: 2839:             *  active attribute variables may fail to link, unless
        -:        -: 2840:             *  device-dependent optimizations are able to make the program
        -:        -: 2841:             *  fit within available hardware resources. For the purposes
        -:        -: 2842:             *  of this test, attribute variables of the type dvec3, dvec4,
        -:        -: 2843:             *  dmat2x3, dmat2x4, dmat3, dmat3x4, dmat4x3, and dmat4 may
        -:        -: 2844:             *  count as consuming twice as many attributes as equivalent
        -:        -: 2845:             *  single-precision types. While these types use the same number
        -:        -: 2846:             *  of generic attributes as their single-precision equivalents,
        -:        -: 2847:             *  implementations are permitted to consume two single-precision
        -:        -: 2848:             *  vectors of internal storage for each three- or four-component
        -:        -: 2849:             *  double-precision vector."
        -:        -: 2850:             *
        -:        -: 2851:             * Mark this attribute slot as taking up twice as much space
        -:        -: 2852:             * so we can count it properly against limits.  According to
        -:        -: 2853:             * issue (3) of the GL_ARB_vertex_attrib_64bit behavior, this
        -:        -: 2854:             * is optional behavior, but it seems preferable.
        -:        -: 2855:             */
    #####:    #####: 2856:            if (var->type->without_array()->is_dual_slot())
    #####:    #####: 2857:               double_storage_locations |= (use_mask << attr);
        -:        -: 2858:         }
        -:        -: 2859:
        2:        2: 2860:         assigned[assigned_attr] = var;
        2:        2: 2861:         assigned_attr++;
        -:        -: 2862:
        2:        2: 2863:         continue;
        -:        -: 2864:      }
        -:        -: 2865:
        1:        1: 2866:      if (num_attr >= max_index) {
    #####:    #####: 2867:         linker_error(prog, "too many %s (max %u)",
        -:        -: 2868:                      target_index == MESA_SHADER_VERTEX ?
        -:        -: 2869:                      "vertex shader inputs" : "fragment shader outputs",
    #####:    #####: 2870:                      max_index);
    #####:    #####: 2871:         return false;
        -:        -: 2872:      }
        1:        1: 2873:      to_assign[num_attr].slots = slots;
        1:        1: 2874:      to_assign[num_attr].var = var;
        1:        1: 2875:      num_attr++;
        -:        -: 2876:   }
        -:        -: 2877:
        3:        3: 2878:   if (target_index == MESA_SHADER_VERTEX) {
        -:        -: 2879:      unsigned total_attribs_size =
        2:        2: 2880:         _mesa_bitcount(used_locations & ((1 << max_index) - 1)) +
        2:        2: 2881:         _mesa_bitcount(double_storage_locations);
        1:        1: 2882:      if (total_attribs_size > max_index) {
        -:        -: 2883:         linker_error(prog,
        -:        -: 2884:                      "attempt to use %d vertex attribute slots only %d available ",
    #####:    #####: 2885:                      total_attribs_size, max_index);
    #####:    #####: 2886:         return false;
        -:        -: 2887:      }
        -:        -: 2888:   }
        -:        -: 2889:
        -:        -: 2890:   /* If all of the attributes were assigned locations by the application (or
        -:        -: 2891:    * are built-in attributes with fixed locations), return early.  This should
        -:        -: 2892:    * be the common case.
        -:        -: 2893:    */
        3:        3: 2894:   if (num_attr == 0)
        2:        2: 2895:      return true;
        -:        -: 2896:
        1:        1: 2897:   qsort(to_assign, num_attr, sizeof(to_assign[0]), temp_attr::compare);
        -:        -: 2898:
        1:        1: 2899:   if (target_index == MESA_SHADER_VERTEX) {
        -:        -: 2900:      /* VERT_ATTRIB_GENERIC0 is a pseudo-alias for VERT_ATTRIB_POS.  It can
        -:        -: 2901:       * only be explicitly assigned by via glBindAttribLocation.  Mark it as
        -:        -: 2902:       * reserved to prevent it from being automatically allocated below.
        -:        -: 2903:       */
        1:        1: 2904:      find_deref_visitor find("gl_Vertex");
        1:        1: 2905:      find.run(sh->ir);
        1:        1: 2906:      if (find.variable_found())
    #####:    #####: 2907:         used_locations |= (1 << 0);
        -:        -: 2908:   }
        -:        -: 2909:
        2:        2: 2910:   for (unsigned i = 0; i < num_attr; i++) {
        -:        -: 2911:      /* Mask representing the contiguous slots that will be used by this
        -:        -: 2912:       * attribute.
        -:        -: 2913:       */
        1:        1: 2914:      const unsigned use_mask = (1 << to_assign[i].slots) - 1;
        -:        -: 2915:
        1:        1: 2916:      int location = find_available_slots(used_locations, to_assign[i].slots);
        -:        -: 2917:
        1:        1: 2918:      if (location < 0) {
        -:        -: 2919:         const char *const string = (target_index == MESA_SHADER_VERTEX)
    #####:    #####: 2920:            ? "vertex shader input" : "fragment shader output";
        -:        -: 2921:
    #####:    #####: 2922:         linker_error(prog,
        -:        -: 2923:                      "insufficient contiguous locations "
        -:        -: 2924:                      "available for %s `%s'\n",
    #####:    #####: 2925:                      string, to_assign[i].var->name);
    #####:    #####: 2926:         return false;
        -:        -: 2927:      }
        -:        -: 2928:
        1:        1: 2929:      to_assign[i].var->data.location = generic_base + location;
        1:        1: 2930:      to_assign[i].var->data.is_unmatched_generic_inout = 0;
        1:        1: 2931:      used_locations |= (use_mask << location);
        -:        -: 2932:
        1:        1: 2933:      if (to_assign[i].var->type->without_array()->is_dual_slot())
    #####:    #####: 2934:         double_storage_locations |= (use_mask << location);
        -:        -: 2935:   }
        -:        -: 2936:
        -:        -: 2937:   /* Now that we have all the locations, from the GL 4.5 core spec, section
        -:        -: 2938:    * 11.1.1 (Vertex Attributes), dvec3, dvec4, dmat2x3, dmat2x4, dmat3,
        -:        -: 2939:    * dmat3x4, dmat4x3, and dmat4 count as consuming twice as many attributes
        -:        -: 2940:    * as equivalent single-precision types.
        -:        -: 2941:    */
        1:        1: 2942:   if (target_index == MESA_SHADER_VERTEX) {
        -:        -: 2943:      unsigned total_attribs_size =
        2:        2: 2944:         _mesa_bitcount(used_locations & ((1 << max_index) - 1)) +
        2:        2: 2945:         _mesa_bitcount(double_storage_locations);
        1:        1: 2946:      if (total_attribs_size > max_index) {
        -:        -: 2947:         linker_error(prog,
        -:        -: 2948:                      "attempt to use %d vertex attribute slots only %d available ",
    #####:    #####: 2949:                      total_attribs_size, max_index);
    #####:    #####: 2950:         return false;
        -:        -: 2951:      }
        -:        -: 2952:   }
        -:        -: 2953:
        1:        1: 2954:   return true;
        -:        -: 2955:}
        -:        -: 2956:
        -:        -: 2957:/**
        -:        -: 2958: * Match explicit locations of outputs to inputs and deactivate the
        -:        -: 2959: * unmatch flag if found so we don't optimise them away.
        -:        -: 2960: */
        -:        -: 2961:static void
        1:        1: 2962:match_explicit_outputs_to_inputs(gl_linked_shader *producer,
        -:        -: 2963:                                 gl_linked_shader *consumer)
        -:        -: 2964:{
        2:        2: 2965:   glsl_symbol_table parameters;
        -:        -: 2966:   ir_variable *explicit_locations[MAX_VARYINGS_INCL_PATCH][4] =
        1:        1: 2967:      { {NULL, NULL} };
        -:        -: 2968:
        -:        -: 2969:   /* Find all shader outputs in the "producer" stage.
        -:        -: 2970:    */
        4:        4: 2971:   foreach_in_list(ir_instruction, node, producer->ir) {
        3:        3: 2972:      ir_variable *const var = node->as_variable();
        -:        -: 2973:
        3:        3: 2974:      if ((var == NULL) || (var->data.mode != ir_var_shader_out))
        2:        2: 2975:         continue;
        -:        -: 2976:
        2:        2: 2977:      if (var->data.explicit_location &&
        1:        1: 2978:          var->data.location >= VARYING_SLOT_VAR0) {
    #####:    #####: 2979:         const unsigned idx = var->data.location - VARYING_SLOT_VAR0;
    #####:    #####: 2980:         if (explicit_locations[idx][var->data.location_frac] == NULL)
    #####:    #####: 2981:            explicit_locations[idx][var->data.location_frac] = var;
        -:        -: 2982:      }
        -:        -: 2983:   }
        -:        -: 2984:
        -:        -: 2985:   /* Match inputs to outputs */
        6:        6: 2986:   foreach_in_list(ir_instruction, node, consumer->ir) {
        5:        5: 2987:      ir_variable *const input = node->as_variable();
        -:        -: 2988:
        5:        5: 2989:      if ((input == NULL) || (input->data.mode != ir_var_shader_in))
        4:        4: 2990:         continue;
        -:        -: 2991:
        1:        1: 2992:      ir_variable *output = NULL;
        1:        1: 2993:      if (input->data.explicit_location
        1:        1: 2994:          && input->data.location >= VARYING_SLOT_VAR0) {
    #####:    #####: 2995:         output = explicit_locations[input->data.location - VARYING_SLOT_VAR0]
    #####:    #####: 2996:            [input->data.location_frac];
        -:        -: 2997:
    #####:    #####: 2998:         if (output != NULL){
    #####:    #####: 2999:            input->data.is_unmatched_generic_inout = 0;
    #####:    #####: 3000:            output->data.is_unmatched_generic_inout = 0;
        -:        -: 3001:         }
        -:        -: 3002:      }
        -:        -: 3003:   }
        1:        1: 3004:}
        -:        -: 3005:
        -:        -: 3006:/**
        -:        -: 3007: * Store the gl_FragDepth layout in the gl_shader_program struct.
        -:        -: 3008: */
        -:        -: 3009:static void
        2:        2: 3010:store_fragdepth_layout(struct gl_shader_program *prog)
        -:        -: 3011:{
        2:        2: 3012:   if (prog->_LinkedShaders[MESA_SHADER_FRAGMENT] == NULL) {
    #####:    #####: 3013:      return;
        -:        -: 3014:   }
        -:        -: 3015:
        2:        2: 3016:   struct exec_list *ir = prog->_LinkedShaders[MESA_SHADER_FRAGMENT]->ir;
        -:        -: 3017:
        -:        -: 3018:   /* We don't look up the gl_FragDepth symbol directly because if
        -:        -: 3019:    * gl_FragDepth is not used in the shader, it's removed from the IR.
        -:        -: 3020:    * However, the symbol won't be removed from the symbol table.
        -:        -: 3021:    *
        -:        -: 3022:    * We're only interested in the cases where the variable is NOT removed
        -:        -: 3023:    * from the IR.
        -:        -: 3024:    */
       10:       10: 3025:   foreach_in_list(ir_instruction, node, ir) {
        8:        8: 3026:      ir_variable *const var = node->as_variable();
        -:        -: 3027:
        8:        8: 3028:      if (var == NULL || var->data.mode != ir_var_shader_out) {
        6:        6: 3029:         continue;
        -:        -: 3030:      }
        -:        -: 3031:
        2:        2: 3032:      if (strcmp(var->name, "gl_FragDepth") == 0) {
    #####:    #####: 3033:         switch (var->data.depth_layout) {
        -:        -: 3034:         case ir_depth_layout_none:
    #####:    #####: 3035:            prog->FragDepthLayout = FRAG_DEPTH_LAYOUT_NONE;
    #####:    #####: 3036:            return;
        -:        -: 3037:         case ir_depth_layout_any:
    #####:    #####: 3038:            prog->FragDepthLayout = FRAG_DEPTH_LAYOUT_ANY;
    #####:    #####: 3039:            return;
        -:        -: 3040:         case ir_depth_layout_greater:
    #####:    #####: 3041:            prog->FragDepthLayout = FRAG_DEPTH_LAYOUT_GREATER;
    #####:    #####: 3042:            return;
        -:        -: 3043:         case ir_depth_layout_less:
    #####:    #####: 3044:            prog->FragDepthLayout = FRAG_DEPTH_LAYOUT_LESS;
    #####:    #####: 3045:            return;
        -:        -: 3046:         case ir_depth_layout_unchanged:
    #####:    #####: 3047:            prog->FragDepthLayout = FRAG_DEPTH_LAYOUT_UNCHANGED;
    #####:    #####: 3048:            return;
        -:        -: 3049:         default:
    #####:    #####: 3050:            assert(0);
        -:        -: 3051:            return;
        -:        -: 3052:         }
        -:        -: 3053:      }
        -:        -: 3054:   }
        -:        -: 3055:}
        -:        -: 3056:
        -:        -: 3057:/**
        -:        -: 3058: * Validate the resources used by a program versus the implementation limits
        -:        -: 3059: */
        -:        -: 3060:static void
        2:        2: 3061:check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
        -:        -: 3062:{
        2:        2: 3063:   unsigned total_uniform_blocks = 0;
        2:        2: 3064:   unsigned total_shader_storage_blocks = 0;
        -:        -: 3065:
       14:       14: 3066:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 3067:      struct gl_linked_shader *sh = prog->_LinkedShaders[i];
        -:        -: 3068:
       12:       12: 3069:      if (sh == NULL)
        9:        9: 3070:         continue;
        -:        -: 3071:
        6:        6: 3072:      if (sh->Program->info.num_textures >
        3:        3: 3073:          ctx->Const.Program[i].MaxTextureImageUnits) {
    #####:    #####: 3074:         linker_error(prog, "Too many %s shader texture samplers\n",
    #####:    #####: 3075:                      _mesa_shader_stage_to_string(i));
        -:        -: 3076:      }
        -:        -: 3077:
        6:        6: 3078:      if (sh->num_uniform_components >
        3:        3: 3079:          ctx->Const.Program[i].MaxUniformComponents) {
    #####:    #####: 3080:         if (ctx->Const.GLSLSkipStrictMaxUniformLimitCheck) {
    #####:    #####: 3081:            linker_warning(prog, "Too many %s shader default uniform block "
        -:        -: 3082:                           "components, but the driver will try to optimize "
        -:        -: 3083:                           "them out; this is non-portable out-of-spec "
        -:        -: 3084:                           "behavior\n",
    #####:    #####: 3085:                           _mesa_shader_stage_to_string(i));
        -:        -: 3086:         } else {
    #####:    #####: 3087:            linker_error(prog, "Too many %s shader default uniform block "
        -:        -: 3088:                         "components\n",
    #####:    #####: 3089:                         _mesa_shader_stage_to_string(i));
        -:        -: 3090:         }
        -:        -: 3091:      }
        -:        -: 3092:
        6:        6: 3093:      if (sh->num_combined_uniform_components >
        3:        3: 3094:          ctx->Const.Program[i].MaxCombinedUniformComponents) {
    #####:    #####: 3095:         if (ctx->Const.GLSLSkipStrictMaxUniformLimitCheck) {
    #####:    #####: 3096:            linker_warning(prog, "Too many %s shader uniform components, "
        -:        -: 3097:                           "but the driver will try to optimize them out; "
        -:        -: 3098:                           "this is non-portable out-of-spec behavior\n",
    #####:    #####: 3099:                           _mesa_shader_stage_to_string(i));
        -:        -: 3100:         } else {
    #####:    #####: 3101:            linker_error(prog, "Too many %s shader uniform components\n",
    #####:    #####: 3102:                         _mesa_shader_stage_to_string(i));
        -:        -: 3103:         }
        -:        -: 3104:      }
        -:        -: 3105:
        3:        3: 3106:      total_shader_storage_blocks += sh->Program->info.num_ssbos;
        3:        3: 3107:      total_uniform_blocks += sh->Program->info.num_ubos;
        -:        -: 3108:
        -:        -: 3109:      const unsigned max_uniform_blocks =
        3:        3: 3110:         ctx->Const.Program[i].MaxUniformBlocks;
        3:        3: 3111:      if (max_uniform_blocks < sh->Program->info.num_ubos) {
    #####:    #####: 3112:         linker_error(prog, "Too many %s uniform blocks (%d/%d)\n",
        -:        -: 3113:                      _mesa_shader_stage_to_string(i),
    #####:    #####: 3114:                      sh->Program->info.num_ubos, max_uniform_blocks);
        -:        -: 3115:      }
        -:        -: 3116:
        -:        -: 3117:      const unsigned max_shader_storage_blocks =
        3:        3: 3118:         ctx->Const.Program[i].MaxShaderStorageBlocks;
        3:        3: 3119:      if (max_shader_storage_blocks < sh->Program->info.num_ssbos) {
    #####:    #####: 3120:         linker_error(prog, "Too many %s shader storage blocks (%d/%d)\n",
        -:        -: 3121:                      _mesa_shader_stage_to_string(i),
    #####:    #####: 3122:                      sh->Program->info.num_ssbos, max_shader_storage_blocks);
        -:        -: 3123:      }
        -:        -: 3124:   }
        -:        -: 3125:
        2:        2: 3126:   if (total_uniform_blocks > ctx->Const.MaxCombinedUniformBlocks) {
    #####:    #####: 3127:      linker_error(prog, "Too many combined uniform blocks (%d/%d)\n",
    #####:    #####: 3128:                   total_uniform_blocks, ctx->Const.MaxCombinedUniformBlocks);
        -:        -: 3129:   }
        -:        -: 3130:
        2:        2: 3131:   if (total_shader_storage_blocks > ctx->Const.MaxCombinedShaderStorageBlocks) {
    #####:    #####: 3132:      linker_error(prog, "Too many combined shader storage blocks (%d/%d)\n",
        -:        -: 3133:                   total_shader_storage_blocks,
    #####:    #####: 3134:                   ctx->Const.MaxCombinedShaderStorageBlocks);
        -:        -: 3135:   }
        -:        -: 3136:
        2:        2: 3137:   for (unsigned i = 0; i < prog->data->NumUniformBlocks; i++) {
    #####:    #####: 3138:      if (prog->data->UniformBlocks[i].UniformBufferSize >
    #####:    #####: 3139:          ctx->Const.MaxUniformBlockSize) {
    #####:    #####: 3140:         linker_error(prog, "Uniform block %s too big (%d/%d)\n",
    #####:    #####: 3141:                      prog->data->UniformBlocks[i].Name,
    #####:    #####: 3142:                      prog->data->UniformBlocks[i].UniformBufferSize,
    #####:    #####: 3143:                      ctx->Const.MaxUniformBlockSize);
        -:        -: 3144:      }
        -:        -: 3145:   }
        -:        -: 3146:
        2:        2: 3147:   for (unsigned i = 0; i < prog->data->NumShaderStorageBlocks; i++) {
    #####:    #####: 3148:      if (prog->data->ShaderStorageBlocks[i].UniformBufferSize >
    #####:    #####: 3149:          ctx->Const.MaxShaderStorageBlockSize) {
    #####:    #####: 3150:         linker_error(prog, "Shader storage block %s too big (%d/%d)\n",
    #####:    #####: 3151:                      prog->data->ShaderStorageBlocks[i].Name,
    #####:    #####: 3152:                      prog->data->ShaderStorageBlocks[i].UniformBufferSize,
    #####:    #####: 3153:                      ctx->Const.MaxShaderStorageBlockSize);
        -:        -: 3154:      }
        -:        -: 3155:   }
        2:        2: 3156:}
        -:        -: 3157:
        -:        -: 3158:static void
        2:        2: 3159:link_calculate_subroutine_compat(struct gl_shader_program *prog)
        -:        -: 3160:{
        2:        2: 3161:   unsigned mask = prog->data->linked_stages;
        8:        8: 3162:   while (mask) {
        3:        3: 3163:      const int i = u_bit_scan(&mask);
        3:        3: 3164:      struct gl_program *p = prog->_LinkedShaders[i]->Program;
        -:        -: 3165:
        3:        3: 3166:      for (unsigned j = 0; j < p->sh.NumSubroutineUniformRemapTable; j++) {
    #####:    #####: 3167:         if (p->sh.SubroutineUniformRemapTable[j] == INACTIVE_UNIFORM_EXPLICIT_LOCATION)
    #####:    #####: 3168:            continue;
        -:        -: 3169:
    #####:    #####: 3170:         struct gl_uniform_storage *uni = p->sh.SubroutineUniformRemapTable[j];
        -:        -: 3171:
    #####:    #####: 3172:         if (!uni)
    #####:    #####: 3173:            continue;
        -:        -: 3174:
    #####:    #####: 3175:         int count = 0;
    #####:    #####: 3176:         if (p->sh.NumSubroutineFunctions == 0) {
    #####:    #####: 3177:            linker_error(prog, "subroutine uniform %s defined but no valid functions found\n", uni->type->name);
    #####:    #####: 3178:            continue;
        -:        -: 3179:         }
    #####:    #####: 3180:         for (unsigned f = 0; f < p->sh.NumSubroutineFunctions; f++) {
    #####:    #####: 3181:            struct gl_subroutine_function *fn = &p->sh.SubroutineFunctions[f];
    #####:    #####: 3182:            for (int k = 0; k < fn->num_compat_types; k++) {
    #####:    #####: 3183:               if (fn->types[k] == uni->type) {
    #####:    #####: 3184:                  count++;
    #####:    #####: 3185:                  break;
        -:        -: 3186:               }
        -:        -: 3187:            }
        -:        -: 3188:         }
    #####:    #####: 3189:         uni->num_compatible_subroutines = count;
        -:        -: 3190:      }
        -:        -: 3191:   }
        2:        2: 3192:}
        -:        -: 3193:
        -:        -: 3194:static void
        2:        2: 3195:check_subroutine_resources(struct gl_shader_program *prog)
        -:        -: 3196:{
        2:        2: 3197:   unsigned mask = prog->data->linked_stages;
        8:        8: 3198:   while (mask) {
        3:        3: 3199:      const int i = u_bit_scan(&mask);
        3:        3: 3200:      struct gl_program *p = prog->_LinkedShaders[i]->Program;
        -:        -: 3201:
        3:        3: 3202:      if (p->sh.NumSubroutineUniformRemapTable > MAX_SUBROUTINE_UNIFORM_LOCATIONS) {
    #####:    #####: 3203:         linker_error(prog, "Too many %s shader subroutine uniforms\n",
    #####:    #####: 3204:                      _mesa_shader_stage_to_string(i));
        -:        -: 3205:      }
        -:        -: 3206:   }
        2:        2: 3207:}
        -:        -: 3208:/**
        -:        -: 3209: * Validate shader image resources.
        -:        -: 3210: */
        -:        -: 3211:static void
        2:        2: 3212:check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog)
        -:        -: 3213:{
        2:        2: 3214:   unsigned total_image_units = 0;
        2:        2: 3215:   unsigned fragment_outputs = 0;
        2:        2: 3216:   unsigned total_shader_storage_blocks = 0;
        -:        -: 3217:
        2:        2: 3218:   if (!ctx->Extensions.ARB_shader_image_load_store)
        2:        2: 3219:      return;
        -:        -: 3220:
    #####:    #####: 3221:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
    #####:    #####: 3222:      struct gl_linked_shader *sh = prog->_LinkedShaders[i];
        -:        -: 3223:
    #####:    #####: 3224:      if (sh) {
    #####:    #####: 3225:         if (sh->Program->info.num_images > ctx->Const.Program[i].MaxImageUniforms)
    #####:    #####: 3226:            linker_error(prog, "Too many %s shader image uniforms (%u > %u)\n",
        -:        -: 3227:                         _mesa_shader_stage_to_string(i),
    #####:    #####: 3228:                         sh->Program->info.num_images,
    #####:    #####: 3229:                         ctx->Const.Program[i].MaxImageUniforms);
        -:        -: 3230:
    #####:    #####: 3231:         total_image_units += sh->Program->info.num_images;
    #####:    #####: 3232:         total_shader_storage_blocks += sh->Program->info.num_ssbos;
        -:        -: 3233:
    #####:    #####: 3234:         if (i == MESA_SHADER_FRAGMENT) {
    #####:    #####: 3235:            foreach_in_list(ir_instruction, node, sh->ir) {
    #####:    #####: 3236:               ir_variable *var = node->as_variable();
    #####:    #####: 3237:               if (var && var->data.mode == ir_var_shader_out)
        -:        -: 3238:                  /* since there are no double fs outputs - pass false */
    #####:    #####: 3239:                  fragment_outputs += var->type->count_attribute_slots(false);
        -:        -: 3240:            }
        -:        -: 3241:         }
        -:        -: 3242:      }
        -:        -: 3243:   }
        -:        -: 3244:
    #####:    #####: 3245:   if (total_image_units > ctx->Const.MaxCombinedImageUniforms)
    #####:    #####: 3246:      linker_error(prog, "Too many combined image uniforms\n");
        -:        -: 3247:
    #####:    #####: 3248:   if (total_image_units + fragment_outputs + total_shader_storage_blocks >
    #####:    #####: 3249:       ctx->Const.MaxCombinedShaderOutputResources)
        -:        -: 3250:      linker_error(prog, "Too many combined image uniforms, shader storage "
    #####:    #####: 3251:                         " buffers and fragment outputs\n");
        -:        -: 3252:}
        -:        -: 3253:
        -:        -: 3254:
        -:        -: 3255:/**
        -:        -: 3256: * Initializes explicit location slots to INACTIVE_UNIFORM_EXPLICIT_LOCATION
        -:        -: 3257: * for a variable, checks for overlaps between other uniforms using explicit
        -:        -: 3258: * locations.
        -:        -: 3259: */
        -:        -: 3260:static int
    #####:    #####: 3261:reserve_explicit_locations(struct gl_shader_program *prog,
        -:        -: 3262:                           string_to_uint_map *map, ir_variable *var)
        -:        -: 3263:{
    #####:    #####: 3264:   unsigned slots = var->type->uniform_locations();
    #####:    #####: 3265:   unsigned max_loc = var->data.location + slots - 1;
    #####:    #####: 3266:   unsigned return_value = slots;
        -:        -: 3267:
        -:        -: 3268:   /* Resize remap table if locations do not fit in the current one. */
    #####:    #####: 3269:   if (max_loc + 1 > prog->NumUniformRemapTable) {
        -:        -: 3270:      prog->UniformRemapTable =
    #####:    #####: 3271:         reralloc(prog, prog->UniformRemapTable,
        -:        -: 3272:                  gl_uniform_storage *,
    #####:    #####: 3273:                  max_loc + 1);
        -:        -: 3274:
    #####:    #####: 3275:      if (!prog->UniformRemapTable) {
    #####:    #####: 3276:         linker_error(prog, "Out of memory during linking.\n");
    #####:    #####: 3277:         return -1;
        -:        -: 3278:      }
        -:        -: 3279:
        -:        -: 3280:      /* Initialize allocated space. */
    #####:    #####: 3281:      for (unsigned i = prog->NumUniformRemapTable; i < max_loc + 1; i++)
    #####:    #####: 3282:         prog->UniformRemapTable[i] = NULL;
        -:        -: 3283:
    #####:    #####: 3284:      prog->NumUniformRemapTable = max_loc + 1;
        -:        -: 3285:   }
        -:        -: 3286:
    #####:    #####: 3287:   for (unsigned i = 0; i < slots; i++) {
    #####:    #####: 3288:      unsigned loc = var->data.location + i;
        -:        -: 3289:
        -:        -: 3290:      /* Check if location is already used. */
    #####:    #####: 3291:      if (prog->UniformRemapTable[loc] == INACTIVE_UNIFORM_EXPLICIT_LOCATION) {
        -:        -: 3292:
        -:        -: 3293:         /* Possibly same uniform from a different stage, this is ok. */
        -:        -: 3294:         unsigned hash_loc;
    #####:    #####: 3295:         if (map->get(hash_loc, var->name) && hash_loc == loc - i) {
    #####:    #####: 3296:            return_value = 0;
    #####:    #####: 3297:            continue;
        -:        -: 3298:         }
        -:        -: 3299:
        -:        -: 3300:         /* ARB_explicit_uniform_location specification states:
        -:        -: 3301:          *
        -:        -: 3302:          *     "No two default-block uniform variables in the program can have
        -:        -: 3303:          *     the same location, even if they are unused, otherwise a compiler
        -:        -: 3304:          *     or linker error will be generated."
        -:        -: 3305:          */
    #####:    #####: 3306:         linker_error(prog,
        -:        -: 3307:                      "location qualifier for uniform %s overlaps "
        -:        -: 3308:                      "previously used location\n",
    #####:    #####: 3309:                      var->name);
    #####:    #####: 3310:         return -1;
        -:        -: 3311:      }
        -:        -: 3312:
        -:        -: 3313:      /* Initialize location as inactive before optimization
        -:        -: 3314:       * rounds and location assignment.
        -:        -: 3315:       */
    #####:    #####: 3316:      prog->UniformRemapTable[loc] = INACTIVE_UNIFORM_EXPLICIT_LOCATION;
        -:        -: 3317:   }
        -:        -: 3318:
        -:        -: 3319:   /* Note, base location used for arrays. */
    #####:    #####: 3320:   map->put(var->data.location, var->name);
        -:        -: 3321:
    #####:    #####: 3322:   return return_value;
        -:        -: 3323:}
        -:        -: 3324:
        -:        -: 3325:static bool
    #####:    #####: 3326:reserve_subroutine_explicit_locations(struct gl_shader_program *prog,
        -:        -: 3327:                                      struct gl_program *p,
        -:        -: 3328:                                      ir_variable *var)
        -:        -: 3329:{
    #####:    #####: 3330:   unsigned slots = var->type->uniform_locations();
    #####:    #####: 3331:   unsigned max_loc = var->data.location + slots - 1;
        -:        -: 3332:
        -:        -: 3333:   /* Resize remap table if locations do not fit in the current one. */
    #####:    #####: 3334:   if (max_loc + 1 > p->sh.NumSubroutineUniformRemapTable) {
        -:        -: 3335:      p->sh.SubroutineUniformRemapTable =
    #####:    #####: 3336:         reralloc(p, p->sh.SubroutineUniformRemapTable,
        -:        -: 3337:                  gl_uniform_storage *,
    #####:    #####: 3338:                  max_loc + 1);
        -:        -: 3339:
    #####:    #####: 3340:      if (!p->sh.SubroutineUniformRemapTable) {
    #####:    #####: 3341:         linker_error(prog, "Out of memory during linking.\n");
    #####:    #####: 3342:         return false;
        -:        -: 3343:      }
        -:        -: 3344:
        -:        -: 3345:      /* Initialize allocated space. */
    #####:    #####: 3346:      for (unsigned i = p->sh.NumSubroutineUniformRemapTable; i < max_loc + 1; i++)
    #####:    #####: 3347:         p->sh.SubroutineUniformRemapTable[i] = NULL;
        -:        -: 3348:
    #####:    #####: 3349:      p->sh.NumSubroutineUniformRemapTable = max_loc + 1;
        -:        -: 3350:   }
        -:        -: 3351:
    #####:    #####: 3352:   for (unsigned i = 0; i < slots; i++) {
    #####:    #####: 3353:      unsigned loc = var->data.location + i;
        -:        -: 3354:
        -:        -: 3355:      /* Check if location is already used. */
    #####:    #####: 3356:      if (p->sh.SubroutineUniformRemapTable[loc] == INACTIVE_UNIFORM_EXPLICIT_LOCATION) {
        -:        -: 3357:
        -:        -: 3358:         /* ARB_explicit_uniform_location specification states:
        -:        -: 3359:          *     "No two subroutine uniform variables can have the same location
        -:        -: 3360:          *     in the same shader stage, otherwise a compiler or linker error
        -:        -: 3361:          *     will be generated."
        -:        -: 3362:          */
    #####:    #####: 3363:         linker_error(prog,
        -:        -: 3364:                      "location qualifier for uniform %s overlaps "
        -:        -: 3365:                      "previously used location\n",
    #####:    #####: 3366:                      var->name);
    #####:    #####: 3367:         return false;
        -:        -: 3368:      }
        -:        -: 3369:
        -:        -: 3370:      /* Initialize location as inactive before optimization
        -:        -: 3371:       * rounds and location assignment.
        -:        -: 3372:       */
    #####:    #####: 3373:      p->sh.SubroutineUniformRemapTable[loc] = INACTIVE_UNIFORM_EXPLICIT_LOCATION;
        -:        -: 3374:   }
        -:        -: 3375:
    #####:    #####: 3376:   return true;
        -:        -: 3377:}
        -:        -: 3378:/**
        -:        -: 3379: * Check and reserve all explicit uniform locations, called before
        -:        -: 3380: * any optimizations happen to handle also inactive uniforms and
        -:        -: 3381: * inactive array elements that may get trimmed away.
        -:        -: 3382: */
        -:        -: 3383:static void
        2:        2: 3384:check_explicit_uniform_locations(struct gl_context *ctx,
        -:        -: 3385:                                 struct gl_shader_program *prog)
        -:        -: 3386:{
        2:        2: 3387:   prog->NumExplicitUniformLocations = 0;
        -:        -: 3388:
        2:        2: 3389:   if (!ctx->Extensions.ARB_explicit_uniform_location)
    #####:    #####: 3390:      return;
        -:        -: 3391:
        -:        -: 3392:   /* This map is used to detect if overlapping explicit locations
        -:        -: 3393:    * occur with the same uniform (from different stage) or a different one.
        -:        -: 3394:    */
        2:        2: 3395:   string_to_uint_map *uniform_map = new string_to_uint_map;
        -:        -: 3396:
        2:        2: 3397:   if (!uniform_map) {
    #####:    #####: 3398:      linker_error(prog, "Out of memory during linking.\n");
    #####:    #####: 3399:      return;
        -:        -: 3400:   }
        -:        -: 3401:
        2:        2: 3402:   unsigned entries_total = 0;
        2:        2: 3403:   unsigned mask = prog->data->linked_stages;
        8:        8: 3404:   while (mask) {
        3:        3: 3405:      const int i = u_bit_scan(&mask);
        3:        3: 3406:      struct gl_program *p = prog->_LinkedShaders[i]->Program;
        -:        -: 3407:
      112:      112: 3408:      foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) {
      109:      109: 3409:         ir_variable *var = node->as_variable();
      109:      109: 3410:         if (!var || var->data.mode != ir_var_uniform)
       47:       47: 3411:            continue;
        -:        -: 3412:
       62:       62: 3413:         if (var->data.explicit_location) {
    #####:    #####: 3414:            bool ret = false;
    #####:    #####: 3415:            if (var->type->without_array()->is_subroutine())
    #####:    #####: 3416:               ret = reserve_subroutine_explicit_locations(prog, p, var);
        -:        -: 3417:            else {
        -:        -: 3418:               int slots = reserve_explicit_locations(prog, uniform_map,
    #####:    #####: 3419:                                                      var);
    #####:    #####: 3420:               if (slots != -1) {
    #####:    #####: 3421:                  ret = true;
    #####:    #####: 3422:                  entries_total += slots;
        -:        -: 3423:               }
        -:        -: 3424:            }
    #####:    #####: 3425:            if (!ret) {
    #####:    #####: 3426:               delete uniform_map;
    #####:    #####: 3427:               return;
        -:        -: 3428:            }
        -:        -: 3429:         }
        -:        -: 3430:      }
        -:        -: 3431:   }
        -:        -: 3432:
        2:        2: 3433:   struct empty_uniform_block *current_block = NULL;
        -:        -: 3434:
        2:        2: 3435:   for (unsigned i = 0; i < prog->NumUniformRemapTable; i++) {
        -:        -: 3436:      /* We found empty space in UniformRemapTable. */
    #####:    #####: 3437:      if (prog->UniformRemapTable[i] == NULL) {
        -:        -: 3438:         /* We've found the beginning of a new continous block of empty slots */
    #####:    #####: 3439:         if (!current_block || current_block->start + current_block->slots != i) {
    #####:    #####: 3440:            current_block = rzalloc(prog, struct empty_uniform_block);
    #####:    #####: 3441:            current_block->start = i;
    #####:    #####: 3442:            exec_list_push_tail(&prog->EmptyUniformLocations,
    #####:    #####: 3443:                                ¤t_block->link);
        -:        -: 3444:         }
        -:        -: 3445:
        -:        -: 3446:         /* The current block continues, so we simply increment its slots */
    #####:    #####: 3447:         current_block->slots++;
        -:        -: 3448:      }
        -:        -: 3449:   }
        -:        -: 3450:
        2:        2: 3451:   delete uniform_map;
        2:        2: 3452:   prog->NumExplicitUniformLocations = entries_total;
        -:        -: 3453:}
        -:        -: 3454:
        -:        -: 3455:static bool
        2:        2: 3456:should_add_buffer_variable(struct gl_shader_program *shProg,
        -:        -: 3457:                           GLenum type, const char *name)
        -:        -: 3458:{
        2:        2: 3459:   bool found_interface = false;
        2:        2: 3460:   unsigned block_name_len = 0;
        2:        2: 3461:   const char *block_name_dot = strchr(name, '.');
        -:        -: 3462:
        -:        -: 3463:   /* These rules only apply to buffer variables. So we return
        -:        -: 3464:    * true for the rest of types.
        -:        -: 3465:    */
        2:        2: 3466:   if (type != GL_BUFFER_VARIABLE)
        2:        2: 3467:      return true;
        -:        -: 3468:
    #####:    #####: 3469:   for (unsigned i = 0; i < shProg->data->NumShaderStorageBlocks; i++) {
    #####:    #####: 3470:      const char *block_name = shProg->data->ShaderStorageBlocks[i].Name;
    #####:    #####: 3471:      block_name_len = strlen(block_name);
        -:        -: 3472:
    #####:    #####: 3473:      const char *block_square_bracket = strchr(block_name, '[');
    #####:    #####: 3474:      if (block_square_bracket) {
        -:        -: 3475:         /* The block is part of an array of named interfaces,
        -:        -: 3476:          * for the name comparison we ignore the "[x]" part.
        -:        -: 3477:          */
    #####:    #####: 3478:         block_name_len -= strlen(block_square_bracket);
        -:        -: 3479:      }
        -:        -: 3480:
    #####:    #####: 3481:      if (block_name_dot) {
        -:        -: 3482:         /* Check if the variable name starts with the interface
        -:        -: 3483:          * name. The interface name (if present) should have the
        -:        -: 3484:          * length than the interface block name we are comparing to.
        -:        -: 3485:          */
    #####:    #####: 3486:         unsigned len = strlen(name) - strlen(block_name_dot);
    #####:    #####: 3487:         if (len != block_name_len)
    #####:    #####: 3488:            continue;
        -:        -: 3489:      }
        -:        -: 3490:
    #####:    #####: 3491:      if (strncmp(block_name, name, block_name_len) == 0) {
    #####:    #####: 3492:         found_interface = true;
    #####:    #####: 3493:         break;
        -:        -: 3494:      }
        -:        -: 3495:   }
        -:        -: 3496:
        -:        -: 3497:   /* We remove the interface name from the buffer variable name,
        -:        -: 3498:    * including the dot that follows it.
        -:        -: 3499:    */
    #####:    #####: 3500:   if (found_interface)
    #####:    #####: 3501:      name = name + block_name_len + 1;
        -:        -: 3502:
        -:        -: 3503:   /* The ARB_program_interface_query spec says:
        -:        -: 3504:    *
        -:        -: 3505:    *     "For an active shader storage block member declared as an array, an
        -:        -: 3506:    *     entry will be generated only for the first array element, regardless
        -:        -: 3507:    *     of its type.  For arrays of aggregate types, the enumeration rules
        -:        -: 3508:    *     are applied recursively for the single enumerated array element."
        -:        -: 3509:    */
    #####:    #####: 3510:   const char *struct_first_dot = strchr(name, '.');
    #####:    #####: 3511:   const char *first_square_bracket = strchr(name, '[');
        -:        -: 3512:
        -:        -: 3513:   /* The buffer variable is on top level and it is not an array */
    #####:    #####: 3514:   if (!first_square_bracket) {
    #####:    #####: 3515:      return true;
        -:        -: 3516:   /* The shader storage block member is a struct, then generate the entry */
    #####:    #####: 3517:   } else if (struct_first_dot && struct_first_dot < first_square_bracket) {
    #####:    #####: 3518:      return true;
        -:        -: 3519:   } else {
        -:        -: 3520:      /* Shader storage block member is an array, only generate an entry for the
        -:        -: 3521:       * first array element.
        -:        -: 3522:       */
    #####:    #####: 3523:      if (strncmp(first_square_bracket, "[0]", 3) == 0)
    #####:    #####: 3524:         return true;
        -:        -: 3525:   }
        -:        -: 3526:
    #####:    #####: 3527:   return false;
        -:        -: 3528:}
        -:        -: 3529:
        -:        -: 3530:static bool
        6:        6: 3531:add_program_resource(struct gl_shader_program *prog,
        -:        -: 3532:                     struct set *resource_set,
        -:        -: 3533:                     GLenum type, const void *data, uint8_t stages)
        -:        -: 3534:{
        6:        6: 3535:   assert(data);
        -:        -: 3536:
        -:        -: 3537:   /* If resource already exists, do not add it again. */
        6:        6: 3538:   if (_mesa_set_search(resource_set, data))
    #####:    #####: 3539:      return true;
        -:        -: 3540:
        6:        6: 3541:   prog->data->ProgramResourceList =
        6:        6: 3542:      reralloc(prog,
        -:        -: 3543:               prog->data->ProgramResourceList,
        -:        -: 3544:               gl_program_resource,
        6:        6: 3545:               prog->data->NumProgramResourceList + 1);
        -:        -: 3546:
        6:        6: 3547:   if (!prog->data->ProgramResourceList) {
    #####:    #####: 3548:      linker_error(prog, "Out of memory during linking.\n");
    #####:    #####: 3549:      return false;
        -:        -: 3550:   }
        -:        -: 3551:
        -:        -: 3552:   struct gl_program_resource *res =
        6:        6: 3553:      &prog->data->ProgramResourceList[prog->data->NumProgramResourceList];
        -:        -: 3554:
        6:        6: 3555:   res->Type = type;
        6:        6: 3556:   res->Data = data;
        6:        6: 3557:   res->StageReferences = stages;
        -:        -: 3558:
        6:        6: 3559:   prog->data->NumProgramResourceList++;
        -:        -: 3560:
        6:        6: 3561:   _mesa_set_add(resource_set, data);
        -:        -: 3562:
        6:        6: 3563:   return true;
        -:        -: 3564:}
        -:        -: 3565:
        -:        -: 3566:/* Function checks if a variable var is a packed varying and
        -:        -: 3567: * if given name is part of packed varying's list.
        -:        -: 3568: *
        -:        -: 3569: * If a variable is a packed varying, it has a name like
        -:        -: 3570: * 'packed:a,b,c' where a, b and c are separate variables.
        -:        -: 3571: */
        -:        -: 3572:static bool
       11:       11: 3573:included_in_packed_varying(ir_variable *var, const char *name)
        -:        -: 3574:{
       11:       11: 3575:   if (strncmp(var->name, "packed:", 7) != 0)
       11:       11: 3576:      return false;
        -:        -: 3577:
    #####:    #####: 3578:   char *list = strdup(var->name + 7);
    #####:    #####: 3579:   assert(list);
        -:        -: 3580:
    #####:    #####: 3581:   bool found = false;
        -:        -: 3582:   char *saveptr;
    #####:    #####: 3583:   char *token = strtok_r(list, ",", &saveptr);
    #####:    #####: 3584:   while (token) {
    #####:    #####: 3585:      if (strcmp(token, name) == 0) {
    #####:    #####: 3586:         found = true;
    #####:    #####: 3587:         break;
        -:        -: 3588:      }
    #####:    #####: 3589:      token = strtok_r(NULL, ",", &saveptr);
        -:        -: 3590:   }
    #####:    #####: 3591:   free(list);
    #####:    #####: 3592:   return found;
        -:        -: 3593:}
        -:        -: 3594:
        -:        -: 3595:/**
        -:        -: 3596: * Function builds a stage reference bitmask from variable name.
        -:        -: 3597: */
        -:        -: 3598:static uint8_t
        2:        2: 3599:build_stageref(struct gl_shader_program *shProg, const char *name,
        -:        -: 3600:               unsigned mode)
        -:        -: 3601:{
        2:        2: 3602:   uint8_t stages = 0;
        -:        -: 3603:
        -:        -: 3604:   /* Note, that we assume MAX 8 stages, if there will be more stages, type
        -:        -: 3605:    * used for reference mask in gl_program_resource will need to be changed.
        -:        -: 3606:    */
        -:        -: 3607:   assert(MESA_SHADER_STAGES < 8);
        -:        -: 3608:
       14:       14: 3609:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 3610:      struct gl_linked_shader *sh = shProg->_LinkedShaders[i];
       12:       12: 3611:      if (!sh)
        8:        8: 3612:         continue;
        -:        -: 3613:
        -:        -: 3614:      /* Shader symbol table may contain variables that have
        -:        -: 3615:       * been optimized away. Search IR for the variable instead.
        -:        -: 3616:       */
       15:       15: 3617:      foreach_in_list(ir_instruction, node, sh->ir) {
       13:       13: 3618:         ir_variable *var = node->as_variable();
       13:       13: 3619:         if (var) {
       11:       11: 3620:            unsigned baselen = strlen(var->name);
        -:        -: 3621:
       11:       11: 3622:            if (included_in_packed_varying(var, name)) {
    #####:    #####: 3623:                  stages |= (1 << i);
    #####:    #####: 3624:                  break;
        -:        -: 3625:            }
        -:        -: 3626:
        -:        -: 3627:            /* Type needs to match if specified, otherwise we might
        -:        -: 3628:             * pick a variable with same name but different interface.
        -:        -: 3629:             */
       11:       11: 3630:            if (var->data.mode != mode)
        8:        8: 3631:               continue;
        -:        -: 3632:
        3:        3: 3633:            if (strncmp(var->name, name, baselen) == 0) {
        -:        -: 3634:               /* Check for exact name matches but also check for arrays and
        -:        -: 3635:                * structs.
        -:        -: 3636:                */
        2:        2: 3637:               if (name[baselen] == '\0' ||
    #####:    #####: 3638:                   name[baselen] == '[' ||
    #####:    #####: 3639:                   name[baselen] == '.') {
        2:        2: 3640:                  stages |= (1 << i);
        2:        2: 3641:                  break;
        -:        -: 3642:               }
        -:        -: 3643:            }
        -:        -: 3644:         }
        -:        -: 3645:      }
        -:        -: 3646:   }
        2:        2: 3647:   return stages;
        -:        -: 3648:}
        -:        -: 3649:
        -:        -: 3650:/**
        -:        -: 3651: * Create gl_shader_variable from ir_variable class.
        -:        -: 3652: */
        -:        -: 3653:static gl_shader_variable *
        4:        4: 3654:create_shader_variable(struct gl_shader_program *shProg,
        -:        -: 3655:                       const ir_variable *in,
        -:        -: 3656:                       const char *name, const glsl_type *type,
        -:        -: 3657:                       const glsl_type *interface_type,
        -:        -: 3658:                       bool use_implicit_location, int location,
        -:        -: 3659:                       const glsl_type *outermost_struct_type)
        -:        -: 3660:{
        4:        4: 3661:   gl_shader_variable *out = ralloc(shProg, struct gl_shader_variable);
        4:        4: 3662:   if (!out)
    #####:    #####: 3663:      return NULL;
        -:        -: 3664:
        -:        -: 3665:   /* Since gl_VertexID may be lowered to gl_VertexIDMESA, but applications
        -:        -: 3666:    * expect to see gl_VertexID in the program resource list.  Pretend.
        -:        -: 3667:    */
        4:        4: 3668:   if (in->data.mode == ir_var_system_value &&
    #####:    #####: 3669:       in->data.location == SYSTEM_VALUE_VERTEX_ID_ZERO_BASE) {
    #####:    #####: 3670:      out->name = ralloc_strdup(shProg, "gl_VertexID");
        6:        6: 3671:   } else if ((in->data.mode == ir_var_shader_out &&
        6:        6: 3672:               in->data.location == VARYING_SLOT_TESS_LEVEL_OUTER) ||
        4:        4: 3673:              (in->data.mode == ir_var_system_value &&
    #####:    #####: 3674:               in->data.location == SYSTEM_VALUE_TESS_LEVEL_OUTER)) {
    #####:    #####: 3675:      out->name = ralloc_strdup(shProg, "gl_TessLevelOuter");
    #####:    #####: 3676:      type = glsl_type::get_array_instance(glsl_type::float_type, 4);
        6:        6: 3677:   } else if ((in->data.mode == ir_var_shader_out &&
        6:        6: 3678:               in->data.location == VARYING_SLOT_TESS_LEVEL_INNER) ||
        4:        4: 3679:              (in->data.mode == ir_var_system_value &&
    #####:    #####: 3680:               in->data.location == SYSTEM_VALUE_TESS_LEVEL_INNER)) {
    #####:    #####: 3681:      out->name = ralloc_strdup(shProg, "gl_TessLevelInner");
    #####:    #####: 3682:      type = glsl_type::get_array_instance(glsl_type::float_type, 2);
        -:        -: 3683:   } else {
        4:        4: 3684:      out->name = ralloc_strdup(shProg, name);
        -:        -: 3685:   }
        -:        -: 3686:
        4:        4: 3687:   if (!out->name)
    #####:    #####: 3688:      return NULL;
        -:        -: 3689:
        -:        -: 3690:   /* The ARB_program_interface_query spec says:
        -:        -: 3691:    *
        -:        -: 3692:    *     "Not all active variables are assigned valid locations; the
        -:        -: 3693:    *     following variables will have an effective location of -1:
        -:        -: 3694:    *
        -:        -: 3695:    *      * uniforms declared as atomic counters;
        -:        -: 3696:    *
        -:        -: 3697:    *      * members of a uniform block;
        -:        -: 3698:    *
        -:        -: 3699:    *      * built-in inputs, outputs, and uniforms (starting with "gl_"); and
        -:        -: 3700:    *
        -:        -: 3701:    *      * inputs or outputs not declared with a "location" layout
        -:        -: 3702:    *        qualifier, except for vertex shader inputs and fragment shader
        -:        -: 3703:    *        outputs."
        -:        -: 3704:    */
       12:       12: 3705:   if (in->type->base_type == GLSL_TYPE_ATOMIC_UINT ||
        8:        8: 3706:       is_gl_identifier(in->name) ||
        2:        2: 3707:       !(in->data.explicit_location || use_implicit_location)) {
        3:        3: 3708:      out->location = -1;
        -:        -: 3709:   } else {
        1:        1: 3710:      out->location = location;
        -:        -: 3711:   }
        -:        -: 3712:
        4:        4: 3713:   out->type = type;
        4:        4: 3714:   out->outermost_struct_type = outermost_struct_type;
        4:        4: 3715:   out->interface_type = interface_type;
        4:        4: 3716:   out->component = in->data.location_frac;
        4:        4: 3717:   out->index = in->data.index;
        4:        4: 3718:   out->patch = in->data.patch;
        4:        4: 3719:   out->mode = in->data.mode;
        4:        4: 3720:   out->interpolation = in->data.interpolation;
        4:        4: 3721:   out->explicit_location = in->data.explicit_location;
        4:        4: 3722:   out->precision = in->data.precision;
        -:        -: 3723:
        4:        4: 3724:   return out;
        -:        -: 3725:}
        -:        -: 3726:
        -:        -: 3727:static bool
        4:        4: 3728:add_shader_variable(const struct gl_context *ctx,
        -:        -: 3729:                    struct gl_shader_program *shProg,
        -:        -: 3730:                    struct set *resource_set,
        -:        -: 3731:                    unsigned stage_mask,
        -:        -: 3732:                    GLenum programInterface, ir_variable *var,
        -:        -: 3733:                    const char *name, const glsl_type *type,
        -:        -: 3734:                    bool use_implicit_location, int location,
        -:        -: 3735:                    const glsl_type *outermost_struct_type = NULL)
        -:        -: 3736:{
        4:        4: 3737:   const glsl_type *interface_type = var->get_interface_type();
        -:        -: 3738:
        4:        4: 3739:   if (outermost_struct_type == NULL) {
        4:        4: 3740:      if (var->data.from_named_ifc_block) {
    #####:    #####: 3741:         const char *interface_name = interface_type->name;
        -:        -: 3742:
    #####:    #####: 3743:         if (interface_type->is_array()) {
        -:        -: 3744:            /* Issue #16 of the ARB_program_interface_query spec says:
        -:        -: 3745:             *
        -:        -: 3746:             * "* If a variable is a member of an interface block without an
        -:        -: 3747:             *    instance name, it is enumerated using just the variable name.
        -:        -: 3748:             *
        -:        -: 3749:             *  * If a variable is a member of an interface block with an
        -:        -: 3750:             *    instance name, it is enumerated as "BlockName.Member", where
        -:        -: 3751:             *    "BlockName" is the name of the interface block (not the
        -:        -: 3752:             *    instance name) and "Member" is the name of the variable."
        -:        -: 3753:             *
        -:        -: 3754:             * In particular, it indicates that it should be "BlockName",
        -:        -: 3755:             * not "BlockName[array length]".  The conformance suite and
        -:        -: 3756:             * dEQP both require this behavior.
        -:        -: 3757:             *
        -:        -: 3758:             * Here, we unwrap the extra array level added by named interface
        -:        -: 3759:             * block array lowering so we have the correct variable type.  We
        -:        -: 3760:             * also unwrap the interface type when constructing the name.
        -:        -: 3761:             *
        -:        -: 3762:             * We leave interface_type the same so that ES 3.x SSO pipeline
        -:        -: 3763:             * validation can enforce the rules requiring array length to
        -:        -: 3764:             * match on interface blocks.
        -:        -: 3765:             */
    #####:    #####: 3766:            type = type->fields.array;
        -:        -: 3767:
    #####:    #####: 3768:            interface_name = interface_type->fields.array->name;
        -:        -: 3769:         }
        -:        -: 3770:
    #####:    #####: 3771:         name = ralloc_asprintf(shProg, "%s.%s", interface_name, name);
        -:        -: 3772:      }
        -:        -: 3773:   }
        -:        -: 3774:
        4:        4: 3775:   switch (type->base_type) {
        -:        -: 3776:   case GLSL_TYPE_STRUCT: {
        -:        -: 3777:      /* The ARB_program_interface_query spec says:
        -:        -: 3778:       *
        -:        -: 3779:       *     "For an active variable declared as a structure, a separate entry
        -:        -: 3780:       *     will be generated for each active structure member.  The name of
        -:        -: 3781:       *     each entry is formed by concatenating the name of the structure,
        -:        -: 3782:       *     the "."  character, and the name of the structure member.  If a
        -:        -: 3783:       *     structure member to enumerate is itself a structure or array,
        -:        -: 3784:       *     these enumeration rules are applied recursively."
        -:        -: 3785:       */
    #####:    #####: 3786:      if (outermost_struct_type == NULL)
    #####:    #####: 3787:         outermost_struct_type = type;
        -:        -: 3788:
    #####:    #####: 3789:      unsigned field_location = location;
    #####:    #####: 3790:      for (unsigned i = 0; i < type->length; i++) {
    #####:    #####: 3791:         const struct glsl_struct_field *field = &type->fields.structure[i];
    #####:    #####: 3792:         char *field_name = ralloc_asprintf(shProg, "%s.%s", name, field->name);
    #####:    #####: 3793:         if (!add_shader_variable(ctx, shProg, resource_set,
        -:        -: 3794:                                  stage_mask, programInterface,
    #####:    #####: 3795:                                  var, field_name, field->type,
        -:        -: 3796:                                  use_implicit_location, field_location,
        -:        -: 3797:                                  outermost_struct_type))
    #####:    #####: 3798:            return false;
        -:        -: 3799:
    #####:    #####: 3800:         field_location += field->type->count_attribute_slots(false);
        -:        -: 3801:      }
    #####:    #####: 3802:      return true;
        -:        -: 3803:   }
        -:        -: 3804:
        -:        -: 3805:   default: {
        -:        -: 3806:      /* The ARB_program_interface_query spec says:
        -:        -: 3807:       *
        -:        -: 3808:       *     "For an active variable declared as a single instance of a basic
        -:        -: 3809:       *     type, a single entry will be generated, using the variable name
        -:        -: 3810:       *     from the shader source."
        -:        -: 3811:       */
        -:        -: 3812:      gl_shader_variable *sha_v =
        4:        4: 3813:         create_shader_variable(shProg, var, name, type, interface_type,
        -:        -: 3814:                                use_implicit_location, location,
        4:        4: 3815:                                outermost_struct_type);
        4:        4: 3816:      if (!sha_v)
    #####:    #####: 3817:         return false;
        -:        -: 3818:
        4:        4: 3819:      return add_program_resource(shProg, resource_set,
        4:        4: 3820:                                  programInterface, sha_v, stage_mask);
        -:        -: 3821:   }
        -:        -: 3822:   }
        -:        -: 3823:}
        -:        -: 3824:
        -:        -: 3825:static bool
        4:        4: 3826:add_interface_variables(const struct gl_context *ctx,
        -:        -: 3827:                        struct gl_shader_program *shProg,
        -:        -: 3828:                        struct set *resource_set,
        -:        -: 3829:                        unsigned stage, GLenum programInterface)
        -:        -: 3830:{
        4:        4: 3831:   exec_list *ir = shProg->_LinkedShaders[stage]->ir;
        -:        -: 3832:
       18:       18: 3833:   foreach_in_list(ir_instruction, node, ir) {
       14:       14: 3834:      ir_variable *var = node->as_variable();
        -:        -: 3835:
       14:       14: 3836:      if (!var || var->data.how_declared == ir_var_hidden)
        4:        4: 3837:         continue;
        -:        -: 3838:
        -:        -: 3839:      int loc_bias;
        -:        -: 3840:
       10:       10: 3841:      switch (var->data.mode) {
        -:        -: 3842:      case ir_var_system_value:
        -:        -: 3843:      case ir_var_shader_in:
        4:        4: 3844:         if (programInterface != GL_PROGRAM_INPUT)
        2:        2: 3845:            continue;
        -:        -: 3846:         loc_bias = (stage == MESA_SHADER_VERTEX) ? int(VERT_ATTRIB_GENERIC0)
        2:        2: 3847:                                                  : int(VARYING_SLOT_VAR0);
        2:        2: 3848:         break;
        -:        -: 3849:      case ir_var_shader_out:
        4:        4: 3850:         if (programInterface != GL_PROGRAM_OUTPUT)
        2:        2: 3851:            continue;
        -:        -: 3852:         loc_bias = (stage == MESA_SHADER_FRAGMENT) ? int(FRAG_RESULT_DATA0)
        2:        2: 3853:                                                    : int(VARYING_SLOT_VAR0);
        2:        2: 3854:         break;
        -:        -: 3855:      default:
        2:        2: 3856:         continue;
        -:        -: 3857:      };
        -:        -: 3858:
        4:        4: 3859:      if (var->data.patch)
    #####:    #####: 3860:         loc_bias = int(VARYING_SLOT_PATCH0);
        -:        -: 3861:
        -:        -: 3862:      /* Skip packed varyings, packed varyings are handled separately
        -:        -: 3863:       * by add_packed_varyings.
        -:        -: 3864:       */
        4:        4: 3865:      if (strncmp(var->name, "packed:", 7) == 0)
    #####:    #####: 3866:         continue;
        -:        -: 3867:
        -:        -: 3868:      /* Skip fragdata arrays, these are handled separately
        -:        -: 3869:       * by add_fragdata_arrays.
        -:        -: 3870:       */
        4:        4: 3871:      if (strncmp(var->name, "gl_out_FragData", 15) == 0)
    #####:    #####: 3872:         continue;
        -:        -: 3873:
        -:        -: 3874:      const bool vs_input_or_fs_output =
        7:        7: 3875:         (stage == MESA_SHADER_VERTEX && var->data.mode == ir_var_shader_in) ||
        7:        7: 3876:         (stage == MESA_SHADER_FRAGMENT && var->data.mode == ir_var_shader_out);
        -:        -: 3877:
        8:        8: 3878:      if (!add_shader_variable(ctx, shProg, resource_set,
        4:        4: 3879:                               1 << stage, programInterface,
        -:        -: 3880:                               var, var->name, var->type, vs_input_or_fs_output,
        4:        4: 3881:                               var->data.location - loc_bias))
    #####:    #####: 3882:         return false;
        -:        -: 3883:   }
        4:        4: 3884:   return true;
        -:        -: 3885:}
        -:        -: 3886:
        -:        -: 3887:static bool
        2:        2: 3888:add_packed_varyings(const struct gl_context *ctx,
        -:        -: 3889:                    struct gl_shader_program *shProg,
        -:        -: 3890:                    struct set *resource_set,
        -:        -: 3891:                    int stage, GLenum type)
        -:        -: 3892:{
        2:        2: 3893:   struct gl_linked_shader *sh = shProg->_LinkedShaders[stage];
        -:        -: 3894:   GLenum iface;
        -:        -: 3895:
        2:        2: 3896:   if (!sh || !sh->packed_varyings)
        2:        2: 3897:      return true;
        -:        -: 3898:
    #####:    #####: 3899:   foreach_in_list(ir_instruction, node, sh->packed_varyings) {
    #####:    #####: 3900:      ir_variable *var = node->as_variable();
    #####:    #####: 3901:      if (var) {
    #####:    #####: 3902:         switch (var->data.mode) {
        -:        -: 3903:         case ir_var_shader_in:
    #####:    #####: 3904:            iface = GL_PROGRAM_INPUT;
    #####:    #####: 3905:            break;
        -:        -: 3906:         case ir_var_shader_out:
    #####:    #####: 3907:            iface = GL_PROGRAM_OUTPUT;
    #####:    #####: 3908:            break;
        -:        -: 3909:         default:
    #####:    #####: 3910:            unreachable("unexpected type");
        -:        -: 3911:         }
        -:        -: 3912:
    #####:    #####: 3913:         if (type == iface) {
        -:        -: 3914:            const int stage_mask =
    #####:    #####: 3915:               build_stageref(shProg, var->name, var->data.mode);
    #####:    #####: 3916:            if (!add_shader_variable(ctx, shProg, resource_set,
        -:        -: 3917:                                     stage_mask,
        -:        -: 3918:                                     iface, var, var->name, var->type, false,
    #####:    #####: 3919:                                     var->data.location - VARYING_SLOT_VAR0))
    #####:    #####: 3920:               return false;
        -:        -: 3921:         }
        -:        -: 3922:      }
        -:        -: 3923:   }
    #####:    #####: 3924:   return true;
        -:        -: 3925:}
        -:        -: 3926:
        -:        -: 3927:static bool
        2:        2: 3928:add_fragdata_arrays(const struct gl_context *ctx,
        -:        -: 3929:                    struct gl_shader_program *shProg,
        -:        -: 3930:                    struct set *resource_set)
        -:        -: 3931:{
        2:        2: 3932:   struct gl_linked_shader *sh = shProg->_LinkedShaders[MESA_SHADER_FRAGMENT];
        -:        -: 3933:
        2:        2: 3934:   if (!sh || !sh->fragdata_arrays)
        2:        2: 3935:      return true;
        -:        -: 3936:
    #####:    #####: 3937:   foreach_in_list(ir_instruction, node, sh->fragdata_arrays) {
    #####:    #####: 3938:      ir_variable *var = node->as_variable();
    #####:    #####: 3939:      if (var) {
    #####:    #####: 3940:         assert(var->data.mode == ir_var_shader_out);
        -:        -: 3941:
    #####:    #####: 3942:         if (!add_shader_variable(ctx, shProg, resource_set,
        -:        -: 3943:                                  1 << MESA_SHADER_FRAGMENT,
        -:        -: 3944:                                  GL_PROGRAM_OUTPUT, var, var->name, var->type,
    #####:    #####: 3945:                                  true, var->data.location - FRAG_RESULT_DATA0))
    #####:    #####: 3946:            return false;
        -:        -: 3947:      }
        -:        -: 3948:   }
    #####:    #####: 3949:   return true;
        -:        -: 3950:}
        -:        -: 3951:
        -:        -: 3952:static char*
    #####:    #####: 3953:get_top_level_name(const char *name)
        -:        -: 3954:{
    #####:    #####: 3955:   const char *first_dot = strchr(name, '.');
    #####:    #####: 3956:   const char *first_square_bracket = strchr(name, '[');
    #####:    #####: 3957:   int name_size = 0;
        -:        -: 3958:
        -:        -: 3959:   /* The ARB_program_interface_query spec says:
        -:        -: 3960:    *
        -:        -: 3961:    *     "For the property TOP_LEVEL_ARRAY_SIZE, a single integer identifying
        -:        -: 3962:    *     the number of active array elements of the top-level shader storage
        -:        -: 3963:    *     block member containing to the active variable is written to
        -:        -: 3964:    *     <params>.  If the top-level block member is not declared as an
        -:        -: 3965:    *     array, the value one is written to <params>.  If the top-level block
        -:        -: 3966:    *     member is an array with no declared size, the value zero is written
        -:        -: 3967:    *     to <params>."
        -:        -: 3968:    */
        -:        -: 3969:
        -:        -: 3970:   /* The buffer variable is on top level.*/
    #####:    #####: 3971:   if (!first_square_bracket && !first_dot)
    #####:    #####: 3972:      name_size = strlen(name);
    #####:    #####: 3973:   else if ((!first_square_bracket ||
    #####:    #####: 3974:            (first_dot && first_dot < first_square_bracket)))
    #####:    #####: 3975:      name_size = first_dot - name;
        -:        -: 3976:   else
    #####:    #####: 3977:      name_size = first_square_bracket - name;
        -:        -: 3978:
    #####:    #####: 3979:   return strndup(name, name_size);
        -:        -: 3980:}
        -:        -: 3981:
        -:        -: 3982:static char*
    #####:    #####: 3983:get_var_name(const char *name)
        -:        -: 3984:{
    #####:    #####: 3985:   const char *first_dot = strchr(name, '.');
        -:        -: 3986:
    #####:    #####: 3987:   if (!first_dot)
    #####:    #####: 3988:      return strdup(name);
        -:        -: 3989:
    #####:    #####: 3990:   return strndup(first_dot+1, strlen(first_dot) - 1);
        -:        -: 3991:}
        -:        -: 3992:
        -:        -: 3993:static bool
    #####:    #####: 3994:is_top_level_shader_storage_block_member(const char* name,
        -:        -: 3995:                                         const char* interface_name,
        -:        -: 3996:                                         const char* field_name)
        -:        -: 3997:{
    #####:    #####: 3998:   bool result = false;
        -:        -: 3999:
        -:        -: 4000:   /* If the given variable is already a top-level shader storage
        -:        -: 4001:    * block member, then return array_size = 1.
        -:        -: 4002:    * We could have two possibilities: if we have an instanced
        -:        -: 4003:    * shader storage block or not instanced.
        -:        -: 4004:    *
        -:        -: 4005:    * For the first, we check create a name as it was in top level and
        -:        -: 4006:    * compare it with the real name. If they are the same, then
        -:        -: 4007:    * the variable is already at top-level.
        -:        -: 4008:    *
        -:        -: 4009:    * Full instanced name is: interface name + '.' + var name +
        -:        -: 4010:    *    NULL character
        -:        -: 4011:    */
    #####:    #####: 4012:   int name_length = strlen(interface_name) + 1 + strlen(field_name) + 1;
    #####:    #####: 4013:   char *full_instanced_name = (char *) calloc(name_length, sizeof(char));
    #####:    #####: 4014:   if (!full_instanced_name) {
    #####:    #####: 4015:      fprintf(stderr, "%s: Cannot allocate space for name\n", __func__);
    #####:    #####: 4016:      return false;
        -:        -: 4017:   }
        -:        -: 4018:
    #####:    #####: 4019:   snprintf(full_instanced_name, name_length, "%s.%s",
    #####:    #####: 4020:            interface_name, field_name);
        -:        -: 4021:
        -:        -: 4022:   /* Check if its top-level shader storage block member of an
        -:        -: 4023:    * instanced interface block, or of a unnamed interface block.
        -:        -: 4024:    */
    #####:    #####: 4025:   if (strcmp(name, full_instanced_name) == 0 ||
    #####:    #####: 4026:       strcmp(name, field_name) == 0)
    #####:    #####: 4027:      result = true;
        -:        -: 4028:
    #####:    #####: 4029:   free(full_instanced_name);
    #####:    #####: 4030:   return result;
        -:        -: 4031:}
        -:        -: 4032:
        -:        -: 4033:static int
    #####:    #####: 4034:get_array_size(struct gl_uniform_storage *uni, const glsl_struct_field *field,
        -:        -: 4035:               char *interface_name, char *var_name)
        -:        -: 4036:{
        -:        -: 4037:   /* The ARB_program_interface_query spec says:
        -:        -: 4038:    *
        -:        -: 4039:    *     "For the property TOP_LEVEL_ARRAY_SIZE, a single integer identifying
        -:        -: 4040:    *     the number of active array elements of the top-level shader storage
        -:        -: 4041:    *     block member containing to the active variable is written to
        -:        -: 4042:    *     <params>.  If the top-level block member is not declared as an
        -:        -: 4043:    *     array, the value one is written to <params>.  If the top-level block
        -:        -: 4044:    *     member is an array with no declared size, the value zero is written
        -:        -: 4045:    *     to <params>."
        -:        -: 4046:    */
    #####:    #####: 4047:   if (is_top_level_shader_storage_block_member(uni->name,
        -:        -: 4048:                                                interface_name,
        -:        -: 4049:                                                var_name))
    #####:    #####: 4050:      return  1;
    #####:    #####: 4051:   else if (field->type->is_unsized_array())
    #####:    #####: 4052:      return 0;
    #####:    #####: 4053:   else if (field->type->is_array())
    #####:    #####: 4054:      return field->type->length;
        -:        -: 4055:
    #####:    #####: 4056:   return 1;
        -:        -: 4057:}
        -:        -: 4058:
        -:        -: 4059:static int
    #####:    #####: 4060:get_array_stride(struct gl_uniform_storage *uni, const glsl_type *interface,
        -:        -: 4061:                 const glsl_struct_field *field, char *interface_name,
        -:        -: 4062:                 char *var_name)
        -:        -: 4063:{
        -:        -: 4064:   /* The ARB_program_interface_query spec says:
        -:        -: 4065:    *
        -:        -: 4066:    *     "For the property TOP_LEVEL_ARRAY_STRIDE, a single integer
        -:        -: 4067:    *     identifying the stride between array elements of the top-level
        -:        -: 4068:    *     shader storage block member containing the active variable is
        -:        -: 4069:    *     written to <params>.  For top-level block members declared as
        -:        -: 4070:    *     arrays, the value written is the difference, in basic machine units,
        -:        -: 4071:    *     between the offsets of the active variable for consecutive elements
        -:        -: 4072:    *     in the top-level array.  For top-level block members not declared as
        -:        -: 4073:    *     an array, zero is written to <params>."
        -:        -: 4074:    */
    #####:    #####: 4075:   if (field->type->is_array()) {
        -:        -: 4076:      const enum glsl_matrix_layout matrix_layout =
    #####:    #####: 4077:         glsl_matrix_layout(field->matrix_layout);
    #####:    #####: 4078:      bool row_major = matrix_layout == GLSL_MATRIX_LAYOUT_ROW_MAJOR;
    #####:    #####: 4079:      const glsl_type *array_type = field->type->fields.array;
        -:        -: 4080:
    #####:    #####: 4081:      if (is_top_level_shader_storage_block_member(uni->name,
        -:        -: 4082:                                                   interface_name,
        -:        -: 4083:                                                   var_name))
    #####:    #####: 4084:         return 0;
        -:        -: 4085:
    #####:    #####: 4086:      if (interface->interface_packing != GLSL_INTERFACE_PACKING_STD430) {
    #####:    #####: 4087:         if (array_type->is_record() || array_type->is_array())
    #####:    #####: 4088:            return glsl_align(array_type->std140_size(row_major), 16);
        -:        -: 4089:         else
    #####:    #####: 4090:            return MAX2(array_type->std140_base_alignment(row_major), 16);
        -:        -: 4091:      } else {
    #####:    #####: 4092:         return array_type->std430_array_stride(row_major);
        -:        -: 4093:      }
        -:        -: 4094:   }
    #####:    #####: 4095:   return 0;
        -:        -: 4096:}
        -:        -: 4097:
        -:        -: 4098:static void
    #####:    #####: 4099:calculate_array_size_and_stride(struct gl_shader_program *shProg,
        -:        -: 4100:                                struct gl_uniform_storage *uni)
        -:        -: 4101:{
    #####:    #####: 4102:   int block_index = uni->block_index;
    #####:    #####: 4103:   int array_size = -1;
    #####:    #####: 4104:   int array_stride = -1;
    #####:    #####: 4105:   char *var_name = get_top_level_name(uni->name);
        -:        -: 4106:   char *interface_name =
    #####:    #####: 4107:      get_top_level_name(uni->is_shader_storage ?
    #####:    #####: 4108:                         shProg->data->ShaderStorageBlocks[block_index].Name :
    #####:    #####: 4109:                         shProg->data->UniformBlocks[block_index].Name);
        -:        -: 4110:
    #####:    #####: 4111:   if (strcmp(var_name, interface_name) == 0) {
        -:        -: 4112:      /* Deal with instanced array of SSBOs */
    #####:    #####: 4113:      char *temp_name = get_var_name(uni->name);
    #####:    #####: 4114:      if (!temp_name) {
    #####:    #####: 4115:         linker_error(shProg, "Out of memory during linking.\n");
    #####:    #####: 4116:         goto write_top_level_array_size_and_stride;
        -:        -: 4117:      }
    #####:    #####: 4118:      free(var_name);
    #####:    #####: 4119:      var_name = get_top_level_name(temp_name);
    #####:    #####: 4120:      free(temp_name);
    #####:    #####: 4121:      if (!var_name) {
    #####:    #####: 4122:         linker_error(shProg, "Out of memory during linking.\n");
    #####:    #####: 4123:         goto write_top_level_array_size_and_stride;
        -:        -: 4124:      }
        -:        -: 4125:   }
        -:        -: 4126:
    #####:    #####: 4127:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
    #####:    #####: 4128:      const gl_linked_shader *sh = shProg->_LinkedShaders[i];
    #####:    #####: 4129:      if (sh == NULL)
    #####:    #####: 4130:         continue;
        -:        -: 4131:
    #####:    #####: 4132:      foreach_in_list(ir_instruction, node, sh->ir) {
    #####:    #####: 4133:         ir_variable *var = node->as_variable();
    #####:    #####: 4134:         if (!var || !var->get_interface_type() ||
    #####:    #####: 4135:             var->data.mode != ir_var_shader_storage)
    #####:    #####: 4136:            continue;
        -:        -: 4137:
    #####:    #####: 4138:         const glsl_type *interface = var->get_interface_type();
        -:        -: 4139:
    #####:    #####: 4140:         if (strcmp(interface_name, interface->name) != 0)
    #####:    #####: 4141:            continue;
        -:        -: 4142:
    #####:    #####: 4143:         for (unsigned i = 0; i < interface->length; i++) {
    #####:    #####: 4144:            const glsl_struct_field *field = &interface->fields.structure[i];
    #####:    #####: 4145:            if (strcmp(field->name, var_name) != 0)
    #####:    #####: 4146:               continue;
        -:        -: 4147:
        -:        -: 4148:            array_stride = get_array_stride(uni, interface, field,
    #####:    #####: 4149:                                            interface_name, var_name);
    #####:    #####: 4150:            array_size = get_array_size(uni, field, interface_name, var_name);
    #####:    #####: 4151:            goto write_top_level_array_size_and_stride;
        -:        -: 4152:         }
        -:        -: 4153:      }
        -:        -: 4154:   }
        -:        -: 4155:write_top_level_array_size_and_stride:
    #####:    #####: 4156:   free(interface_name);
    #####:    #####: 4157:   free(var_name);
    #####:    #####: 4158:   uni->top_level_array_stride = array_stride;
    #####:    #####: 4159:   uni->top_level_array_size = array_size;
    #####:    #####: 4160:}
        -:        -: 4161:
        -:        -: 4162:/**
        -:        -: 4163: * Builds up a list of program resources that point to existing
        -:        -: 4164: * resource data.
        -:        -: 4165: */
        -:        -: 4166:void
        2:        2: 4167:build_program_resource_list(struct gl_context *ctx,
        -:        -: 4168:                            struct gl_shader_program *shProg)
        -:        -: 4169:{
        -:        -: 4170:   /* Rebuild resource list. */
        2:        2: 4171:   if (shProg->data->ProgramResourceList) {
    #####:    #####: 4172:      ralloc_free(shProg->data->ProgramResourceList);
    #####:    #####: 4173:      shProg->data->ProgramResourceList = NULL;
    #####:    #####: 4174:      shProg->data->NumProgramResourceList = 0;
        -:        -: 4175:   }
        -:        -: 4176:
        2:        2: 4177:   int input_stage = MESA_SHADER_STAGES, output_stage = 0;
        -:        -: 4178:
        -:        -: 4179:   /* Determine first input and final output stage. These are used to
        -:        -: 4180:    * detect which variables should be enumerated in the resource list
        -:        -: 4181:    * for GL_PROGRAM_INPUT and GL_PROGRAM_OUTPUT.
        -:        -: 4182:    */
       14:       14: 4183:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4184:      if (!shProg->_LinkedShaders[i])
        9:        9: 4185:         continue;
        3:        3: 4186:      if (input_stage == MESA_SHADER_STAGES)
        2:        2: 4187:         input_stage = i;
        3:        3: 4188:      output_stage = i;
        -:        -: 4189:   }
        -:        -: 4190:
        -:        -: 4191:   /* Empty shader, no resources. */
        2:        2: 4192:   if (input_stage == MESA_SHADER_STAGES && output_stage == 0)
    #####:    #####: 4193:      return;
        -:        -: 4194:
        -:        -: 4195:   struct set *resource_set = _mesa_set_create(NULL,
        -:        -: 4196:                                               _mesa_hash_pointer,
        2:        2: 4197:                                               _mesa_key_pointer_equal);
        -:        -: 4198:
        -:        -: 4199:   /* Program interface needs to expose varyings in case of SSO. */
        2:        2: 4200:   if (shProg->SeparateShader) {
        1:        1: 4201:      if (!add_packed_varyings(ctx, shProg, resource_set,
        -:        -: 4202:                               input_stage, GL_PROGRAM_INPUT))
    #####:    #####: 4203:         return;
        -:        -: 4204:
        1:        1: 4205:      if (!add_packed_varyings(ctx, shProg, resource_set,
        -:        -: 4206:                               output_stage, GL_PROGRAM_OUTPUT))
    #####:    #####: 4207:         return;
        -:        -: 4208:   }
        -:        -: 4209:
        2:        2: 4210:   if (!add_fragdata_arrays(ctx, shProg, resource_set))
    #####:    #####: 4211:      return;
        -:        -: 4212:
        -:        -: 4213:   /* Add inputs and outputs to the resource list. */
        2:        2: 4214:   if (!add_interface_variables(ctx, shProg, resource_set,
        -:        -: 4215:                                input_stage, GL_PROGRAM_INPUT))
    #####:    #####: 4216:      return;
        -:        -: 4217:
        2:        2: 4218:   if (!add_interface_variables(ctx, shProg, resource_set,
        -:        -: 4219:                                output_stage, GL_PROGRAM_OUTPUT))
    #####:    #####: 4220:      return;
        -:        -: 4221:
        2:        2: 4222:   if (shProg->last_vert_prog) {
        -:        -: 4223:      struct gl_transform_feedback_info *linked_xfb =
        1:        1: 4224:         shProg->last_vert_prog->sh.LinkedTransformFeedback;
        -:        -: 4225:
        -:        -: 4226:      /* Add transform feedback varyings. */
        1:        1: 4227:      if (linked_xfb->NumVarying > 0) {
    #####:    #####: 4228:         for (int i = 0; i < linked_xfb->NumVarying; i++) {
    #####:    #####: 4229:            if (!add_program_resource(shProg, resource_set,
        -:        -: 4230:                                      GL_TRANSFORM_FEEDBACK_VARYING,
    #####:    #####: 4231:                                      &linked_xfb->Varyings[i], 0))
    #####:    #####: 4232:            return;
        -:        -: 4233:         }
        -:        -: 4234:      }
        -:        -: 4235:
        -:        -: 4236:      /* Add transform feedback buffers. */
        5:        5: 4237:      for (unsigned i = 0; i < ctx->Const.MaxTransformFeedbackBuffers; i++) {
        4:        4: 4238:         if ((linked_xfb->ActiveBuffers >> i) & 1) {
    #####:    #####: 4239:            linked_xfb->Buffers[i].Binding = i;
    #####:    #####: 4240:            if (!add_program_resource(shProg, resource_set,
        -:        -: 4241:                                      GL_TRANSFORM_FEEDBACK_BUFFER,
        -:        -: 4242:                                      &linked_xfb->Buffers[i], 0))
    #####:    #####: 4243:            return;
        -:        -: 4244:         }
        -:        -: 4245:      }
        -:        -: 4246:   }
        -:        -: 4247:
        -:        -: 4248:   /* Add uniforms from uniform storage. */
        4:        4: 4249:   for (unsigned i = 0; i < shProg->data->NumUniformStorage; i++) {
        -:        -: 4250:      /* Do not add uniforms internally used by Mesa. */
        2:        2: 4251:      if (shProg->data->UniformStorage[i].hidden)
    #####:    #####: 4252:         continue;
        -:        -: 4253:
        -:        -: 4254:      uint8_t stageref =
        2:        2: 4255:         build_stageref(shProg, shProg->data->UniformStorage[i].name,
        2:        2: 4256:                        ir_var_uniform);
        -:        -: 4257:
        -:        -: 4258:      /* Add stagereferences for uniforms in a uniform block. */
        -:        -: 4259:      bool is_shader_storage =
        2:        2: 4260:        shProg->data->UniformStorage[i].is_shader_storage;
        2:        2: 4261:      int block_index = shProg->data->UniformStorage[i].block_index;
        2:        2: 4262:      if (block_index != -1) {
        -:        -: 4263:         stageref |= is_shader_storage ?
    #####:    #####: 4264:            shProg->data->ShaderStorageBlocks[block_index].stageref :
    #####:    #####: 4265:            shProg->data->UniformBlocks[block_index].stageref;
        -:        -: 4266:      }
        -:        -: 4267:
        2:        2: 4268:      GLenum type = is_shader_storage ? GL_BUFFER_VARIABLE : GL_UNIFORM;
        2:        2: 4269:      if (!should_add_buffer_variable(shProg, type,
        2:        2: 4270:                                      shProg->data->UniformStorage[i].name))
    #####:    #####: 4271:         continue;
        -:        -: 4272:
        2:        2: 4273:      if (is_shader_storage) {
    #####:    #####: 4274:         calculate_array_size_and_stride(shProg,
    #####:    #####: 4275:                                         &shProg->data->UniformStorage[i]);
        -:        -: 4276:      }
        -:        -: 4277:
        4:        4: 4278:      if (!add_program_resource(shProg, resource_set, type,
        2:        2: 4279:                                &shProg->data->UniformStorage[i], stageref))
    #####:    #####: 4280:         return;
        -:        -: 4281:   }
        -:        -: 4282:
        -:        -: 4283:   /* Add program uniform blocks. */
        2:        2: 4284:   for (unsigned i = 0; i < shProg->data->NumUniformBlocks; i++) {
    #####:    #####: 4285:      if (!add_program_resource(shProg, resource_set, GL_UNIFORM_BLOCK,
    #####:    #####: 4286:          &shProg->data->UniformBlocks[i], 0))
    #####:    #####: 4287:         return;
        -:        -: 4288:   }
        -:        -: 4289:
        -:        -: 4290:   /* Add program shader storage blocks. */
        2:        2: 4291:   for (unsigned i = 0; i < shProg->data->NumShaderStorageBlocks; i++) {
    #####:    #####: 4292:      if (!add_program_resource(shProg, resource_set, GL_SHADER_STORAGE_BLOCK,
    #####:    #####: 4293:          &shProg->data->ShaderStorageBlocks[i], 0))
    #####:    #####: 4294:         return;
        -:        -: 4295:   }
        -:        -: 4296:
        -:        -: 4297:   /* Add atomic counter buffers. */
        2:        2: 4298:   for (unsigned i = 0; i < shProg->data->NumAtomicBuffers; i++) {
    #####:    #####: 4299:      if (!add_program_resource(shProg, resource_set, GL_ATOMIC_COUNTER_BUFFER,
    #####:    #####: 4300:                                &shProg->data->AtomicBuffers[i], 0))
    #####:    #####: 4301:         return;
        -:        -: 4302:   }
        -:        -: 4303:
        4:        4: 4304:   for (unsigned i = 0; i < shProg->data->NumUniformStorage; i++) {
        -:        -: 4305:      GLenum type;
        2:        2: 4306:      if (!shProg->data->UniformStorage[i].hidden)
        2:        2: 4307:         continue;
        -:        -: 4308:
    #####:    #####: 4309:      for (int j = MESA_SHADER_VERTEX; j < MESA_SHADER_STAGES; j++) {
    #####:    #####: 4310:         if (!shProg->data->UniformStorage[i].opaque[j].active ||
    #####:    #####: 4311:             !shProg->data->UniformStorage[i].type->is_subroutine())
    #####:    #####: 4312:            continue;
        -:        -: 4313:
    #####:    #####: 4314:         type = _mesa_shader_stage_to_subroutine_uniform((gl_shader_stage)j);
        -:        -: 4315:         /* add shader subroutines */
    #####:    #####: 4316:         if (!add_program_resource(shProg, resource_set,
    #####:    #####: 4317:                                   type, &shProg->data->UniformStorage[i], 0))
    #####:    #####: 4318:            return;
        -:        -: 4319:      }
        -:        -: 4320:   }
        -:        -: 4321:
        2:        2: 4322:   unsigned mask = shProg->data->linked_stages;
        8:        8: 4323:   while (mask) {
        3:        3: 4324:      const int i = u_bit_scan(&mask);
        3:        3: 4325:      struct gl_program *p = shProg->_LinkedShaders[i]->Program;
        -:        -: 4326:
        3:        3: 4327:      GLuint type = _mesa_shader_stage_to_subroutine((gl_shader_stage)i);
        3:        3: 4328:      for (unsigned j = 0; j < p->sh.NumSubroutineFunctions; j++) {
    #####:    #####: 4329:         if (!add_program_resource(shProg, resource_set,
    #####:    #####: 4330:                                   type, &p->sh.SubroutineFunctions[j], 0))
    #####:    #####: 4331:            return;
        -:        -: 4332:      }
        -:        -: 4333:   }
        -:        -: 4334:
        2:        2: 4335:   _mesa_set_destroy(resource_set, NULL);
        -:        -: 4336:}
        -:        -: 4337:
        -:        -: 4338:/**
        -:        -: 4339: * This check is done to make sure we allow only constant expression
        -:        -: 4340: * indexing and "constant-index-expression" (indexing with an expression
        -:        -: 4341: * that includes loop induction variable).
        -:        -: 4342: */
        -:        -: 4343:static bool
        1:        1: 4344:validate_sampler_array_indexing(struct gl_context *ctx,
        -:        -: 4345:                                struct gl_shader_program *prog)
        -:        -: 4346:{
        1:        1: 4347:   dynamic_sampler_array_indexing_visitor v;
        7:        7: 4348:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
        6:        6: 4349:      if (prog->_LinkedShaders[i] == NULL)
        5:        5: 4350:         continue;
        -:        -: 4351:
        -:        -: 4352:      bool no_dynamic_indexing =
        1:        1: 4353:         ctx->Const.ShaderCompilerOptions[i].EmitNoIndirectSampler;
        -:        -: 4354:
        -:        -: 4355:      /* Search for array derefs in shader. */
        1:        1: 4356:      v.run(prog->_LinkedShaders[i]->ir);
        1:        1: 4357:      if (v.uses_dynamic_sampler_array_indexing()) {
        -:        -: 4358:         const char *msg = "sampler arrays indexed with non-constant "
    #####:    #####: 4359:                           "expressions is forbidden in GLSL %s %u";
        -:        -: 4360:         /* Backend has indicated that it has no dynamic indexing support. */
    #####:    #####: 4361:         if (no_dynamic_indexing) {
    #####:    #####: 4362:            linker_error(prog, msg, prog->IsES ? "ES" : "",
    #####:    #####: 4363:                         prog->data->Version);
    #####:    #####: 4364:            return false;
        -:        -: 4365:         } else {
    #####:    #####: 4366:            linker_warning(prog, msg, prog->IsES ? "ES" : "",
    #####:    #####: 4367:                           prog->data->Version);
        -:        -: 4368:         }
        -:        -: 4369:      }
        -:        -: 4370:   }
        1:        1: 4371:   return true;
        -:        -: 4372:}
        -:        -: 4373:
        -:        -: 4374:static void
        2:        2: 4375:link_assign_subroutine_types(struct gl_shader_program *prog)
        -:        -: 4376:{
        2:        2: 4377:   unsigned mask = prog->data->linked_stages;
        8:        8: 4378:   while (mask) {
        3:        3: 4379:      const int i = u_bit_scan(&mask);
        3:        3: 4380:      gl_program *p = prog->_LinkedShaders[i]->Program;
        -:        -: 4381:
        3:        3: 4382:      p->sh.MaxSubroutineFunctionIndex = 0;
      112:      112: 4383:      foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) {
      109:      109: 4384:         ir_function *fn = node->as_function();
      109:      109: 4385:         if (!fn)
      105:      105: 4386:            continue;
        -:        -: 4387:
        4:        4: 4388:         if (fn->is_subroutine)
    #####:    #####: 4389:            p->sh.NumSubroutineUniformTypes++;
        -:        -: 4390:
        4:        4: 4391:         if (!fn->num_subroutine_types)
        4:        4: 4392:            continue;
        -:        -: 4393:
        -:        -: 4394:         /* these should have been calculated earlier. */
    #####:    #####: 4395:         assert(fn->subroutine_index != -1);
    #####:    #####: 4396:         if (p->sh.NumSubroutineFunctions + 1 > MAX_SUBROUTINES) {
    #####:    #####: 4397:            linker_error(prog, "Too many subroutine functions declared.\n");
    #####:    #####: 4398:            return;
        -:        -: 4399:         }
    #####:    #####: 4400:         p->sh.SubroutineFunctions = reralloc(p, p->sh.SubroutineFunctions,
        -:        -: 4401:                                            struct gl_subroutine_function,
    #####:    #####: 4402:                                            p->sh.NumSubroutineFunctions + 1);
    #####:    #####: 4403:         p->sh.SubroutineFunctions[p->sh.NumSubroutineFunctions].name = ralloc_strdup(p, fn->name);
    #####:    #####: 4404:         p->sh.SubroutineFunctions[p->sh.NumSubroutineFunctions].num_compat_types = fn->num_subroutine_types;
    #####:    #####: 4405:         p->sh.SubroutineFunctions[p->sh.NumSubroutineFunctions].types =
    #####:    #####: 4406:            ralloc_array(p, const struct glsl_type *,
    #####:    #####: 4407:                         fn->num_subroutine_types);
        -:        -: 4408:
        -:        -: 4409:         /* From Section 4.4.4(Subroutine Function Layout Qualifiers) of the
        -:        -: 4410:          * GLSL 4.5 spec:
        -:        -: 4411:          *
        -:        -: 4412:          *    "Each subroutine with an index qualifier in the shader must be
        -:        -: 4413:          *    given a unique index, otherwise a compile or link error will be
        -:        -: 4414:          *    generated."
        -:        -: 4415:          */
    #####:    #####: 4416:         for (unsigned j = 0; j < p->sh.NumSubroutineFunctions; j++) {
    #####:    #####: 4417:            if (p->sh.SubroutineFunctions[j].index != -1 &&
    #####:    #####: 4418:                p->sh.SubroutineFunctions[j].index == fn->subroutine_index) {
        -:        -: 4419:               linker_error(prog, "each subroutine index qualifier in the "
    #####:    #####: 4420:                            "shader must be unique\n");
    #####:    #####: 4421:               return;
        -:        -: 4422:            }
        -:        -: 4423:         }
    #####:    #####: 4424:         p->sh.SubroutineFunctions[p->sh.NumSubroutineFunctions].index =
    #####:    #####: 4425:            fn->subroutine_index;
        -:        -: 4426:
    #####:    #####: 4427:         if (fn->subroutine_index > (int)p->sh.MaxSubroutineFunctionIndex)
    #####:    #####: 4428:            p->sh.MaxSubroutineFunctionIndex = fn->subroutine_index;
        -:        -: 4429:
    #####:    #####: 4430:         for (int j = 0; j < fn->num_subroutine_types; j++)
    #####:    #####: 4431:            p->sh.SubroutineFunctions[p->sh.NumSubroutineFunctions].types[j] = fn->subroutine_types[j];
    #####:    #####: 4432:         p->sh.NumSubroutineFunctions++;
        -:        -: 4433:      }
        -:        -: 4434:   }
        -:        -: 4435:}
        -:        -: 4436:
        -:        -: 4437:static void
        1:        1: 4438:set_always_active_io(exec_list *ir, ir_variable_mode io_mode)
        -:        -: 4439:{
        1:        1: 4440:   assert(io_mode == ir_var_shader_in || io_mode == ir_var_shader_out);
        -:        -: 4441:
       66:       66: 4442:   foreach_in_list(ir_instruction, node, ir) {
       65:       65: 4443:      ir_variable *const var = node->as_variable();
        -:        -: 4444:
       65:       65: 4445:      if (var == NULL || var->data.mode != io_mode)
       58:       58: 4446:         continue;
        -:        -: 4447:
        -:        -: 4448:      /* Don't set always active on builtins that haven't been redeclared */
        7:        7: 4449:      if (var->data.how_declared == ir_var_declared_implicitly)
        7:        7: 4450:         continue;
        -:        -: 4451:
    #####:    #####: 4452:      var->data.always_active_io = true;
        -:        -: 4453:   }
        1:        1: 4454:}
        -:        -: 4455:
        -:        -: 4456:/**
        -:        -: 4457: * When separate shader programs are enabled, only input/outputs between
        -:        -: 4458: * the stages of a multi-stage separate program can be safely removed
        -:        -: 4459: * from the shader interface. Other inputs/outputs must remain active.
        -:        -: 4460: */
        -:        -: 4461:static void
        1:        1: 4462:disable_varying_optimizations_for_sso(struct gl_shader_program *prog)
        -:        -: 4463:{
        -:        -: 4464:   unsigned first, last;
        1:        1: 4465:   assert(prog->SeparateShader);
        -:        -: 4466:
        1:        1: 4467:   first = MESA_SHADER_STAGES;
        1:        1: 4468:   last = 0;
        -:        -: 4469:
        -:        -: 4470:   /* Determine first and last stage. Excluding the compute stage */
        6:        6: 4471:   for (unsigned i = 0; i < MESA_SHADER_COMPUTE; i++) {
        5:        5: 4472:      if (!prog->_LinkedShaders[i])
        4:        4: 4473:         continue;
        1:        1: 4474:      if (first == MESA_SHADER_STAGES)
        1:        1: 4475:         first = i;
        1:        1: 4476:      last = i;
        -:        -: 4477:   }
        -:        -: 4478:
        1:        1: 4479:   if (first == MESA_SHADER_STAGES)
    #####:    #####: 4480:      return;
        -:        -: 4481:
        7:        7: 4482:   for (unsigned stage = 0; stage < MESA_SHADER_STAGES; stage++) {
        6:        6: 4483:      gl_linked_shader *sh = prog->_LinkedShaders[stage];
        6:        6: 4484:      if (!sh)
        5:        5: 4485:         continue;
        -:        -: 4486:
        1:        1: 4487:      if (first == last) {
        -:        -: 4488:         /* For a single shader program only allow inputs to the vertex shader
        -:        -: 4489:          * and outputs from the fragment shader to be removed.
        -:        -: 4490:          */
        1:        1: 4491:         if (stage != MESA_SHADER_VERTEX)
        1:        1: 4492:            set_always_active_io(sh->ir, ir_var_shader_in);
        1:        1: 4493:         if (stage != MESA_SHADER_FRAGMENT)
    #####:    #####: 4494:            set_always_active_io(sh->ir, ir_var_shader_out);
        -:        -: 4495:      } else {
        -:        -: 4496:         /* For multi-stage separate shader programs only allow inputs and
        -:        -: 4497:          * outputs between the shader stages to be removed as well as inputs
        -:        -: 4498:          * to the vertex shader and outputs from the fragment shader.
        -:        -: 4499:          */
    #####:    #####: 4500:         if (stage == first && stage != MESA_SHADER_VERTEX)
    #####:    #####: 4501:            set_always_active_io(sh->ir, ir_var_shader_in);
    #####:    #####: 4502:         else if (stage == last && stage != MESA_SHADER_FRAGMENT)
    #####:    #####: 4503:            set_always_active_io(sh->ir, ir_var_shader_out);
        -:        -: 4504:      }
        -:        -: 4505:   }
        -:        -: 4506:}
        -:        -: 4507:
        -:        -: 4508:static void
        2:        2: 4509:link_and_validate_uniforms(struct gl_context *ctx,
        -:        -: 4510:                           struct gl_shader_program *prog)
        -:        -: 4511:{
        2:        2: 4512:   update_array_sizes(prog);
        2:        2: 4513:   link_assign_uniform_locations(prog, ctx);
        -:        -: 4514:
        2:        2: 4515:   if (!prog->data->cache_fallback) {
        2:        2: 4516:      link_assign_atomic_counter_resources(ctx, prog);
        2:        2: 4517:      link_calculate_subroutine_compat(prog);
        2:        2: 4518:      check_resources(ctx, prog);
        2:        2: 4519:      check_subroutine_resources(prog);
        2:        2: 4520:      check_image_resources(ctx, prog);
        2:        2: 4521:      link_check_atomic_counter_resources(ctx, prog);
        -:        -: 4522:   }
        2:        2: 4523:}
        -:        -: 4524:
        -:        -: 4525:static bool
        2:        2: 4526:link_varyings_and_uniforms(unsigned first, unsigned last,
        -:        -: 4527:                           struct gl_context *ctx,
        -:        -: 4528:                           struct gl_shader_program *prog, void *mem_ctx)
        -:        -: 4529:{
        -:        -: 4530:   /* Mark all generic shader inputs and outputs as unpaired. */
       12:       12: 4531:   for (unsigned i = MESA_SHADER_VERTEX; i <= MESA_SHADER_FRAGMENT; i++) {
       10:       10: 4532:      if (prog->_LinkedShaders[i] != NULL) {
        3:        3: 4533:         link_invalidate_variable_locations(prog->_LinkedShaders[i]->ir);
        -:        -: 4534:      }
        -:        -: 4535:   }
        -:        -: 4536:
        2:        2: 4537:   unsigned prev = first;
        6:        6: 4538:   for (unsigned i = prev + 1; i <= MESA_SHADER_FRAGMENT; i++) {
        4:        4: 4539:      if (prog->_LinkedShaders[i] == NULL)
        3:        3: 4540:         continue;
        -:        -: 4541:
        1:        1: 4542:      match_explicit_outputs_to_inputs(prog->_LinkedShaders[prev],
        1:        1: 4543:                                       prog->_LinkedShaders[i]);
        1:        1: 4544:      prev = i;
        -:        -: 4545:   }
        -:        -: 4546:
        2:        2: 4547:   if (!assign_attribute_or_color_locations(mem_ctx, prog, &ctx->Const,
        -:        -: 4548:                                            MESA_SHADER_VERTEX)) {
    #####:    #####: 4549:      return false;
        -:        -: 4550:   }
        -:        -: 4551:
        2:        2: 4552:   if (!assign_attribute_or_color_locations(mem_ctx, prog, &ctx->Const,
        -:        -: 4553:                                            MESA_SHADER_FRAGMENT)) {
    #####:    #####: 4554:      return false;
        -:        -: 4555:   }
        -:        -: 4556:
        2:        2: 4557:   prog->last_vert_prog = NULL;
        9:        9: 4558:   for (int i = MESA_SHADER_GEOMETRY; i >= MESA_SHADER_VERTEX; i--) {
        8:        8: 4559:      if (prog->_LinkedShaders[i] == NULL)
        7:        7: 4560:         continue;
        -:        -: 4561:
        1:        1: 4562:      prog->last_vert_prog = prog->_LinkedShaders[i]->Program;
        1:        1: 4563:      break;
        -:        -: 4564:   }
        -:        -: 4565:
        2:        2: 4566:   if (!link_varyings(prog, first, last, ctx, mem_ctx))
    #####:    #####: 4567:      return false;
        -:        -: 4568:
        2:        2: 4569:   link_and_validate_uniforms(ctx, prog);
        -:        -: 4570:
        2:        2: 4571:   if (!prog->data->LinkStatus)
    #####:    #####: 4572:      return false;
        -:        -: 4573:
       14:       14: 4574:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4575:      if (prog->_LinkedShaders[i] == NULL)
        9:        9: 4576:         continue;
        -:        -: 4577:
        -:        -: 4578:      const struct gl_shader_compiler_options *options =
        3:        3: 4579:         &ctx->Const.ShaderCompilerOptions[i];
        -:        -: 4580:
        3:        3: 4581:      if (options->LowerBufferInterfaceBlocks)
        3:        3: 4582:         lower_ubo_reference(prog->_LinkedShaders[i],
        6:        6: 4583:                             options->ClampBlockIndicesToArrayBounds);
        -:        -: 4584:
        3:        3: 4585:      if (i == MESA_SHADER_COMPUTE)
    #####:    #####: 4586:         lower_shared_reference(prog->_LinkedShaders[i],
    #####:    #####: 4587:                                &prog->Comp.SharedSize);
        -:        -: 4588:
        3:        3: 4589:      lower_vector_derefs(prog->_LinkedShaders[i]);
        3:        3: 4590:      do_vec_index_to_swizzle(prog->_LinkedShaders[i]->ir);
        -:        -: 4591:   }
        -:        -: 4592:
        2:        2: 4593:   return true;
        -:        -: 4594:}
        -:        -: 4595:
        -:        -: 4596:static void
        3:        3: 4597:linker_optimisation_loop(struct gl_context *ctx, exec_list *ir,
        -:        -: 4598:                         unsigned stage)
        -:        -: 4599:{
        3:        3: 4600:      if (ctx->Const.GLSLOptimizeConservatively) {
        -:        -: 4601:         /* Run it just once. */
    #####:    #####: 4602:         do_common_optimization(ir, true, false,
        -:        -: 4603:                                &ctx->Const.ShaderCompilerOptions[stage],
    #####:    #####: 4604:                                ctx->Const.NativeIntegers);
        -:        -: 4605:      } else {
        -:        -: 4606:         /* Repeat it until it stops making changes. */
        7:        7: 4607:         while (do_common_optimization(ir, true, false,
        -:        -: 4608:                                       &ctx->Const.ShaderCompilerOptions[stage],
        7:        7: 4609:                                       ctx->Const.NativeIntegers))
        -:        -: 4610:            ;
        -:        -: 4611:      }
        3:        3: 4612:}
        -:        -: 4613:
        -:        -: 4614:void
        2:        2: 4615:link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
        -:        -: 4616:{
        2:        2: 4617:   prog->data->LinkStatus = linking_success; /* All error paths will set this to false */
        2:        2: 4618:   prog->data->Validated = false;
        -:        -: 4619:
        -:        -: 4620:   /* Section 7.3 (Program Objects) of the OpenGL 4.5 Core Profile spec says:
        -:        -: 4621:    *
        -:        -: 4622:    *     "Linking can fail for a variety of reasons as specified in the
        -:        -: 4623:    *     OpenGL Shading Language Specification, as well as any of the
        -:        -: 4624:    *     following reasons:
        -:        -: 4625:    *
        -:        -: 4626:    *     - No shader objects are attached to program."
        -:        -: 4627:    *
        -:        -: 4628:    * The Compatibility Profile specification does not list the error.  In
        -:        -: 4629:    * Compatibility Profile missing shader stages are replaced by
        -:        -: 4630:    * fixed-function.  This applies to the case where all stages are
        -:        -: 4631:    * missing.
        -:        -: 4632:    */
        2:        2: 4633:   if (prog->NumShaders == 0) {
    #####:    #####: 4634:      if (ctx->API != API_OPENGL_COMPAT)
    #####:    #####: 4635:         linker_error(prog, "no shaders attached to the program\n");
    #####:    #####: 4636:      return;
        -:        -: 4637:   }
        -:        -: 4638:
        -:        -: 4639:#ifdef ENABLE_SHADER_CACHE
        -:        -: 4640:   /* If transform feedback used on the program then compile all shaders. */
        2:        2: 4641:   bool skip_cache = false;
        2:        2: 4642:   if (prog->TransformFeedback.NumVarying > 0) {
    #####:    #####: 4643:      for (unsigned i = 0; i < prog->NumShaders; i++) {
    #####:    #####: 4644:         _mesa_glsl_compile_shader(ctx, prog->Shaders[i], false, false, true);
        -:        -: 4645:      }
    #####:    #####: 4646:      skip_cache = true;
        -:        -: 4647:   }
        -:        -: 4648:
        2:        2: 4649:   if (!skip_cache && shader_cache_read_program_metadata(ctx, prog))
    #####:    #####: 4650:      return;
        -:        -: 4651:#endif
        -:        -: 4652:
        2:        2: 4653:   void *mem_ctx = ralloc_context(NULL); // temporary linker context
        -:        -: 4654:
        2:        2: 4655:   prog->ARB_fragment_coord_conventions_enable = false;
        -:        -: 4656:
        -:        -: 4657:   /* Separate the shaders into groups based on their type.
        -:        -: 4658:    */
        -:        -: 4659:   struct gl_shader **shader_list[MESA_SHADER_STAGES];
        -:        -: 4660:   unsigned num_shaders[MESA_SHADER_STAGES];
        -:        -: 4661:
       14:       14: 4662:   for (int i = 0; i < MESA_SHADER_STAGES; i++) {
        -:        -: 4663:      shader_list[i] = (struct gl_shader **)
       12:       12: 4664:         calloc(prog->NumShaders, sizeof(struct gl_shader *));
       12:       12: 4665:      num_shaders[i] = 0;
        -:        -: 4666:   }
        -:        -: 4667:
        2:        2: 4668:   unsigned min_version = UINT_MAX;
        2:        2: 4669:   unsigned max_version = 0;
        5:        5: 4670:   for (unsigned i = 0; i < prog->NumShaders; i++) {
        3:        3: 4671:      min_version = MIN2(min_version, prog->Shaders[i]->Version);
        3:        3: 4672:      max_version = MAX2(max_version, prog->Shaders[i]->Version);
        -:        -: 4673:
        3:        3: 4674:      if (prog->Shaders[i]->IsES != prog->Shaders[0]->IsES) {
        -:        -: 4675:         linker_error(prog, "all shaders must use same shading "
    #####:    #####: 4676:                      "language version\n");
    #####:    #####: 4677:         goto done;
        -:        -: 4678:      }
        -:        -: 4679:
        3:        3: 4680:      if (prog->Shaders[i]->ARB_fragment_coord_conventions_enable) {
    #####:    #####: 4681:         prog->ARB_fragment_coord_conventions_enable = true;
        -:        -: 4682:      }
        -:        -: 4683:
        3:        3: 4684:      gl_shader_stage shader_type = prog->Shaders[i]->Stage;
        3:        3: 4685:      shader_list[shader_type][num_shaders[shader_type]] = prog->Shaders[i];
        3:        3: 4686:      num_shaders[shader_type]++;
        -:        -: 4687:   }
        -:        -: 4688:
        -:        -: 4689:   /* In desktop GLSL, different shader versions may be linked together.  In
        -:        -: 4690:    * GLSL ES, all shader versions must be the same.
        -:        -: 4691:    */
        2:        2: 4692:   if (prog->Shaders[0]->IsES && min_version != max_version) {
        -:        -: 4693:      linker_error(prog, "all shaders must use same shading "
    #####:    #####: 4694:                   "language version\n");
    #####:    #####: 4695:      goto done;
        -:        -: 4696:   }
        -:        -: 4697:
        2:        2: 4698:   prog->data->Version = max_version;
        2:        2: 4699:   prog->IsES = prog->Shaders[0]->IsES;
        -:        -: 4700:
        -:        -: 4701:   /* Some shaders have to be linked with some other shaders present.
        -:        -: 4702:    */
        2:        2: 4703:   if (!prog->SeparateShader) {
        1:        1: 4704:      if (num_shaders[MESA_SHADER_GEOMETRY] > 0 &&
    #####:    #####: 4705:          num_shaders[MESA_SHADER_VERTEX] == 0) {
        -:        -: 4706:         linker_error(prog, "Geometry shader must be linked with "
    #####:    #####: 4707:                      "vertex shader\n");
    #####:    #####: 4708:         goto done;
        -:        -: 4709:      }
        1:        1: 4710:      if (num_shaders[MESA_SHADER_TESS_EVAL] > 0 &&
    #####:    #####: 4711:          num_shaders[MESA_SHADER_VERTEX] == 0) {
        -:        -: 4712:         linker_error(prog, "Tessellation evaluation shader must be linked "
    #####:    #####: 4713:                      "with vertex shader\n");
    #####:    #####: 4714:         goto done;
        -:        -: 4715:      }
        1:        1: 4716:      if (num_shaders[MESA_SHADER_TESS_CTRL] > 0 &&
    #####:    #####: 4717:          num_shaders[MESA_SHADER_VERTEX] == 0) {
        -:        -: 4718:         linker_error(prog, "Tessellation control shader must be linked with "
    #####:    #####: 4719:                      "vertex shader\n");
    #####:    #####: 4720:         goto done;
        -:        -: 4721:      }
        -:        -: 4722:
        -:        -: 4723:      /* Section 7.3 of the OpenGL ES 3.2 specification says:
        -:        -: 4724:       *
        -:        -: 4725:       *    "Linking can fail for [...] any of the following reasons:
        -:        -: 4726:       *
        -:        -: 4727:       *     * program contains an object to form a tessellation control
        -:        -: 4728:       *       shader [...] and [...] the program is not separable and
        -:        -: 4729:       *       contains no object to form a tessellation evaluation shader"
        -:        -: 4730:       *
        -:        -: 4731:       * The OpenGL spec is contradictory. It allows linking without a tess
        -:        -: 4732:       * eval shader, but that can only be used with transform feedback and
        -:        -: 4733:       * rasterization disabled. However, transform feedback isn't allowed
        -:        -: 4734:       * with GL_PATCHES, so it can't be used.
        -:        -: 4735:       *
        -:        -: 4736:       * More investigation showed that the idea of transform feedback after
        -:        -: 4737:       * a tess control shader was dropped, because some hw vendors couldn't
        -:        -: 4738:       * support tessellation without a tess eval shader, but the linker
        -:        -: 4739:       * section wasn't updated to reflect that.
        -:        -: 4740:       *
        -:        -: 4741:       * All specifications (ARB_tessellation_shader, GL 4.0-4.5) have this
        -:        -: 4742:       * spec bug.
        -:        -: 4743:       *
        -:        -: 4744:       * Do what's reasonable and always require a tess eval shader if a tess
        -:        -: 4745:       * control shader is present.
        -:        -: 4746:       */
        1:        1: 4747:      if (num_shaders[MESA_SHADER_TESS_CTRL] > 0 &&
    #####:    #####: 4748:          num_shaders[MESA_SHADER_TESS_EVAL] == 0) {
        -:        -: 4749:         linker_error(prog, "Tessellation control shader must be linked with "
    #####:    #####: 4750:                      "tessellation evaluation shader\n");
    #####:    #####: 4751:         goto done;
        -:        -: 4752:      }
        -:        -: 4753:
        1:        1: 4754:      if (prog->IsES) {
    #####:    #####: 4755:         if (num_shaders[MESA_SHADER_TESS_EVAL] > 0 &&
    #####:    #####: 4756:             num_shaders[MESA_SHADER_TESS_CTRL] == 0) {
        -:        -: 4757:            linker_error(prog, "GLSL ES requires non-separable programs "
        -:        -: 4758:                         "containing a tessellation evaluation shader to also "
    #####:    #####: 4759:                         "be linked with a tessellation control shader\n");
    #####:    #####: 4760:            goto done;
        -:        -: 4761:         }
        -:        -: 4762:      }
        -:        -: 4763:   }
        -:        -: 4764:
        -:        -: 4765:   /* Compute shaders have additional restrictions. */
        2:        2: 4766:   if (num_shaders[MESA_SHADER_COMPUTE] > 0 &&
    #####:    #####: 4767:       num_shaders[MESA_SHADER_COMPUTE] != prog->NumShaders) {
        -:        -: 4768:      linker_error(prog, "Compute shaders may not be linked with any other "
    #####:    #####: 4769:                   "type of shader\n");
        -:        -: 4770:   }
        -:        -: 4771:
        -:        -: 4772:   /* Link all shaders for a particular stage and validate the result.
        -:        -: 4773:    */
       14:       14: 4774:   for (int stage = 0; stage < MESA_SHADER_STAGES; stage++) {
       12:       12: 4775:      if (num_shaders[stage] > 0) {
        -:        -: 4776:         gl_linked_shader *const sh =
        3:        3: 4777:            link_intrastage_shaders(mem_ctx, ctx, prog, shader_list[stage],
        3:        3: 4778:                                    num_shaders[stage], false);
        -:        -: 4779:
        3:        3: 4780:         if (!prog->data->LinkStatus) {
    #####:    #####: 4781:            if (sh)
    #####:    #####: 4782:               _mesa_delete_linked_shader(ctx, sh);
    #####:    #####: 4783:            goto done;
        -:        -: 4784:         }
        -:        -: 4785:
        3:        3: 4786:         switch (stage) {
        -:        -: 4787:         case MESA_SHADER_VERTEX:
        1:        1: 4788:            validate_vertex_shader_executable(prog, sh, ctx);
        1:        1: 4789:            break;
        -:        -: 4790:         case MESA_SHADER_TESS_CTRL:
        -:        -: 4791:            /* nothing to be done */
    #####:    #####: 4792:            break;
        -:        -: 4793:         case MESA_SHADER_TESS_EVAL:
    #####:    #####: 4794:            validate_tess_eval_shader_executable(prog, sh, ctx);
    #####:    #####: 4795:            break;
        -:        -: 4796:         case MESA_SHADER_GEOMETRY:
    #####:    #####: 4797:            validate_geometry_shader_executable(prog, sh, ctx);
    #####:    #####: 4798:            break;
        -:        -: 4799:         case MESA_SHADER_FRAGMENT:
        2:        2: 4800:            validate_fragment_shader_executable(prog, sh);
        2:        2: 4801:            break;
        -:        -: 4802:         }
        3:        3: 4803:         if (!prog->data->LinkStatus) {
    #####:    #####: 4804:            if (sh)
    #####:    #####: 4805:               _mesa_delete_linked_shader(ctx, sh);
    #####:    #####: 4806:            goto done;
        -:        -: 4807:         }
        -:        -: 4808:
        3:        3: 4809:         prog->_LinkedShaders[stage] = sh;
        3:        3: 4810:         prog->data->linked_stages |= 1 << stage;
        -:        -: 4811:      }
        -:        -: 4812:   }
        -:        -: 4813:
        -:        -: 4814:   /* Here begins the inter-stage linking phase.  Some initial validation is
        -:        -: 4815:    * performed, then locations are assigned for uniforms, attributes, and
        -:        -: 4816:    * varyings.
        -:        -: 4817:    */
        2:        2: 4818:   cross_validate_uniforms(prog);
        2:        2: 4819:   if (!prog->data->LinkStatus)
    #####:    #####: 4820:      goto done;
        -:        -: 4821:
        -:        -: 4822:   unsigned first, last, prev;
        -:        -: 4823:
        2:        2: 4824:   first = MESA_SHADER_STAGES;
        2:        2: 4825:   last = 0;
        -:        -: 4826:
        -:        -: 4827:   /* Determine first and last stage. */
       14:       14: 4828:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4829:      if (!prog->_LinkedShaders[i])
        9:        9: 4830:         continue;
        3:        3: 4831:      if (first == MESA_SHADER_STAGES)
        2:        2: 4832:         first = i;
        3:        3: 4833:      last = i;
        -:        -: 4834:   }
        -:        -: 4835:
        2:        2: 4836:   if (!prog->data->cache_fallback) {
        2:        2: 4837:      check_explicit_uniform_locations(ctx, prog);
        2:        2: 4838:      link_assign_subroutine_types(prog);
        -:        -: 4839:   }
        -:        -: 4840:
        2:        2: 4841:   if (!prog->data->LinkStatus)
    #####:    #####: 4842:      goto done;
        -:        -: 4843:
        2:        2: 4844:   resize_tes_inputs(ctx, prog);
        -:        -: 4845:
        -:        -: 4846:   /* Validate the inputs of each stage with the output of the preceding
        -:        -: 4847:    * stage.
        -:        -: 4848:    */
        2:        2: 4849:   prev = first;
        6:        6: 4850:   for (unsigned i = prev + 1; i <= MESA_SHADER_FRAGMENT; i++) {
        4:        4: 4851:      if (prog->_LinkedShaders[i] == NULL)
        3:        3: 4852:         continue;
        -:        -: 4853:
        1:        1: 4854:      validate_interstage_inout_blocks(prog, prog->_LinkedShaders[prev],
        2:        2: 4855:                                       prog->_LinkedShaders[i]);
        1:        1: 4856:      if (!prog->data->LinkStatus)
    #####:    #####: 4857:         goto done;
        -:        -: 4858:
        1:        1: 4859:      cross_validate_outputs_to_inputs(prog,
        -:        -: 4860:                                       prog->_LinkedShaders[prev],
        1:        1: 4861:                                       prog->_LinkedShaders[i]);
        1:        1: 4862:      if (!prog->data->LinkStatus)
    #####:    #####: 4863:         goto done;
        -:        -: 4864:
        1:        1: 4865:      prev = i;
        -:        -: 4866:   }
        -:        -: 4867:
        -:        -: 4868:   /* Cross-validate uniform blocks between shader stages */
        2:        2: 4869:   validate_interstage_uniform_blocks(prog, prog->_LinkedShaders);
        2:        2: 4870:   if (!prog->data->LinkStatus)
    #####:    #####: 4871:      goto done;
        -:        -: 4872:
       14:       14: 4873:   for (unsigned int i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4874:      if (prog->_LinkedShaders[i] != NULL)
        3:        3: 4875:         lower_named_interface_blocks(mem_ctx, prog->_LinkedShaders[i]);
        -:        -: 4876:   }
        -:        -: 4877:
        -:        -: 4878:   /* Implement the GLSL 1.30+ rule for discard vs infinite loops Do
        -:        -: 4879:    * it before optimization because we want most of the checks to get
        -:        -: 4880:    * dropped thanks to constant propagation.
        -:        -: 4881:    *
        -:        -: 4882:    * This rule also applies to GLSL ES 3.00.
        -:        -: 4883:    */
        2:        2: 4884:   if (max_version >= (prog->IsES ? 300 : 130)) {
        1:        1: 4885:      struct gl_linked_shader *sh = prog->_LinkedShaders[MESA_SHADER_FRAGMENT];
        1:        1: 4886:      if (sh) {
        1:        1: 4887:         lower_discard_flow(sh->ir);
        -:        -: 4888:      }
        -:        -: 4889:   }
        -:        -: 4890:
        2:        2: 4891:   if (prog->SeparateShader)
        1:        1: 4892:      disable_varying_optimizations_for_sso(prog);
        -:        -: 4893:
        2:        2: 4894:   if (!prog->data->cache_fallback) {
        -:        -: 4895:      /* Process UBOs */
        2:        2: 4896:      if (!interstage_cross_validate_uniform_blocks(prog, false))
    #####:    #####: 4897:         goto done;
        -:        -: 4898:
        -:        -: 4899:      /* Process SSBOs */
        2:        2: 4900:      if (!interstage_cross_validate_uniform_blocks(prog, true))
    #####:    #####: 4901:         goto done;
        -:        -: 4902:   }
        -:        -: 4903:
        -:        -: 4904:   /* Do common optimization before assigning storage for attributes,
        -:        -: 4905:    * uniforms, and varyings.  Later optimization could possibly make
        -:        -: 4906:    * some of that unused.
        -:        -: 4907:    */
       14:       14: 4908:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4909:      if (prog->_LinkedShaders[i] == NULL)
        9:        9: 4910:         continue;
        -:        -: 4911:
        3:        3: 4912:      detect_recursion_linked(prog, prog->_LinkedShaders[i]->ir);
        3:        3: 4913:      if (!prog->data->LinkStatus)
    #####:    #####: 4914:         goto done;
        -:        -: 4915:
        3:        3: 4916:      if (ctx->Const.ShaderCompilerOptions[i].LowerCombinedClipCullDistance) {
    #####:    #####: 4917:         lower_clip_cull_distance(prog, prog->_LinkedShaders[i]);
        -:        -: 4918:      }
        -:        -: 4919:
        3:        3: 4920:      if (ctx->Const.LowerTessLevel) {
    #####:    #####: 4921:         lower_tess_level(prog->_LinkedShaders[i]);
        -:        -: 4922:      }
        -:        -: 4923:
        -:        -: 4924:      /* Call opts before lowering const arrays to uniforms so we can const
        -:        -: 4925:       * propagate any elements accessed directly.
        -:        -: 4926:       */
        3:        3: 4927:      linker_optimisation_loop(ctx, prog->_LinkedShaders[i]->ir, i);
        -:        -: 4928:
        -:        -: 4929:      /* Call opts after lowering const arrays to copy propagate things. */
        3:        3: 4930:      if (lower_const_arrays_to_uniforms(prog->_LinkedShaders[i]->ir, i))
    #####:    #####: 4931:         linker_optimisation_loop(ctx, prog->_LinkedShaders[i]->ir, i);
        -:        -: 4932:
        3:        3: 4933:      propagate_invariance(prog->_LinkedShaders[i]->ir);
        -:        -: 4934:   }
        -:        -: 4935:
        -:        -: 4936:   /* Validation for special cases where we allow sampler array indexing
        -:        -: 4937:    * with loop induction variable. This check emits a warning or error
        -:        -: 4938:    * depending if backend can handle dynamic indexing.
        -:        -: 4939:    */
        3:        3: 4940:   if ((!prog->IsES && prog->data->Version < 130) ||
        1:        1: 4941:       (prog->IsES && prog->data->Version < 300)) {
        1:        1: 4942:      if (!validate_sampler_array_indexing(ctx, prog))
    #####:    #####: 4943:         goto done;
        -:        -: 4944:   }
        -:        -: 4945:
        -:        -: 4946:   /* Check and validate stream emissions in geometry shaders */
        2:        2: 4947:   validate_geometry_shader_emissions(ctx, prog);
        -:        -: 4948:
        2:        2: 4949:   store_fragdepth_layout(prog);
        -:        -: 4950:
        2:        2: 4951:   if(!link_varyings_and_uniforms(first, last, ctx, prog, mem_ctx))
    #####:    #####: 4952:      goto done;
        -:        -: 4953:
        -:        -: 4954:   /* OpenGL ES < 3.1 requires that a vertex shader and a fragment shader both
        -:        -: 4955:    * be present in a linked program. GL_ARB_ES2_compatibility doesn't say
        -:        -: 4956:    * anything about shader linking when one of the shaders (vertex or
        -:        -: 4957:    * fragment shader) is absent. So, the extension shouldn't change the
        -:        -: 4958:    * behavior specified in GLSL specification.
        -:        -: 4959:    *
        -:        -: 4960:    * From OpenGL ES 3.1 specification (7.3 Program Objects):
        -:        -: 4961:    *     "Linking can fail for a variety of reasons as specified in the
        -:        -: 4962:    *     OpenGL ES Shading Language Specification, as well as any of the
        -:        -: 4963:    *     following reasons:
        -:        -: 4964:    *
        -:        -: 4965:    *     ...
        -:        -: 4966:    *
        -:        -: 4967:    *     * program contains objects to form either a vertex shader or
        -:        -: 4968:    *       fragment shader, and program is not separable, and does not
        -:        -: 4969:    *       contain objects to form both a vertex shader and fragment
        -:        -: 4970:    *       shader."
        -:        -: 4971:    *
        -:        -: 4972:    * However, the only scenario in 3.1+ where we don't require them both is
        -:        -: 4973:    * when we have a compute shader. For example:
        -:        -: 4974:    *
        -:        -: 4975:    * - No shaders is a link error.
        -:        -: 4976:    * - Geom or Tess without a Vertex shader is a link error which means we
        -:        -: 4977:    *   always require a Vertex shader and hence a Fragment shader.
        -:        -: 4978:    * - Finally a Compute shader linked with any other stage is a link error.
        -:        -: 4979:    */
        2:        2: 4980:   if (!prog->SeparateShader && ctx->API == API_OPENGLES2 &&
    #####:    #####: 4981:       num_shaders[MESA_SHADER_COMPUTE] == 0) {
    #####:    #####: 4982:      if (prog->_LinkedShaders[MESA_SHADER_VERTEX] == NULL) {
    #####:    #####: 4983:         linker_error(prog, "program lacks a vertex shader\n");
    #####:    #####: 4984:      } else if (prog->_LinkedShaders[MESA_SHADER_FRAGMENT] == NULL) {
    #####:    #####: 4985:         linker_error(prog, "program lacks a fragment shader\n");
        -:        -: 4986:      }
        -:        -: 4987:   }
        -:        -: 4988:
        -:        -: 4989:done:
       14:       14: 4990:   for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
       12:       12: 4991:      free(shader_list[i]);
       12:       12: 4992:      if (prog->_LinkedShaders[i] == NULL)
        9:        9: 4993:         continue;
        -:        -: 4994:
        -:        -: 4995:      /* Do a final validation step to make sure that the IR wasn't
        -:        -: 4996:       * invalidated by any modifications performed after intrastage linking.
        -:        -: 4997:       */
        3:        3: 4998:      validate_ir_tree(prog->_LinkedShaders[i]->ir);
        -:        -: 4999:
        -:        -: 5000:      /* Retain any live IR, but trash the rest. */
        3:        3: 5001:      reparent_ir(prog->_LinkedShaders[i]->ir, prog->_LinkedShaders[i]->ir);
        -:        -: 5002:
        -:        -: 5003:      /* The symbol table in the linked shaders may contain references to
        -:        -: 5004:       * variables that were removed (e.g., unused uniforms).  Since it may
        -:        -: 5005:       * contain junk, there is no possible valid use.  Delete it and set the
        -:        -: 5006:       * pointer to NULL.
        -:        -: 5007:       */
        3:        3: 5008:      delete prog->_LinkedShaders[i]->symbols;
        3:        3: 5009:      prog->_LinkedShaders[i]->symbols = NULL;
        -:        -: 5010:   }
        -:        -: 5011:
        2:        2: 5012:   ralloc_free(mem_ctx);
        -:        -: 5013:}

        -:        -:    0:Source:glsl/link_functions.cpp
        -:        -:    0:Graph:glsl/.libs/link_functions.gcno
        -:        -:    0:Data:glsl/.libs/link_functions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "main/core.h"
        -:        -:   25:#include "glsl_symbol_table.h"
        -:        -:   26:#include "glsl_parser_extras.h"
        -:        -:   27:#include "ir.h"
        -:        -:   28:#include "program.h"
        -:        -:   29:#include "util/set.h"
        -:        -:   30:#include "util/hash_table.h"
        -:        -:   31:#include "linker.h"
        -:        -:   32:
        -:        -:   33:static ir_function_signature *
        -:        -:   34:find_matching_signature(const char *name, const exec_list *actual_parameters,
        -:        -:   35:                        glsl_symbol_table *symbols);
        -:        -:   36:
        -:        -:   37:namespace {
        -:        -:   38:
        -:        -:   39:class call_link_visitor : public ir_hierarchical_visitor {
        -:        -:   40:public:
        3:        3:   41:   call_link_visitor(gl_shader_program *prog, gl_linked_shader *linked,
        -:        -:   42:		     gl_shader **shader_list, unsigned num_shaders)
        3:        3:   43:   {
        3:        3:   44:      this->prog = prog;
        3:        3:   45:      this->shader_list = shader_list;
        3:        3:   46:      this->num_shaders = num_shaders;
        3:        3:   47:      this->success = true;
        3:        3:   48:      this->linked = linked;
        -:        -:   49:
        3:        3:   50:      this->locals = _mesa_set_create(NULL, _mesa_hash_pointer,
        3:        3:   51:                                      _mesa_key_pointer_equal);
        3:        3:   52:   }
        -:        -:   53:
        3:        3:   54:   ~call_link_visitor()
        6:        6:   55:   {
        3:        3:   56:      _mesa_set_destroy(this->locals, NULL);
        3:        3:   57:   }
        -:        -:   58:
      120:      120:   59:   virtual ir_visitor_status visit(ir_variable *ir)
        -:        -:   60:   {
      120:      120:   61:      _mesa_set_add(locals, ir);
      120:      120:   62:      return visit_continue;
        -:        -:   63:   }
        -:        -:   64:
        2:        2:   65:   virtual ir_visitor_status visit_enter(ir_call *ir)
        -:        -:   66:   {
        -:        -:   67:      /* If ir is an ir_call from a function that was imported from another
        -:        -:   68:       * shader callee will point to an ir_function_signature in the original
        -:        -:   69:       * shader.  In this case the function signature MUST NOT BE MODIFIED.
        -:        -:   70:       * Doing so will modify the original shader.  This may prevent that
        -:        -:   71:       * shader from being linkable in other programs.
        -:        -:   72:       */
        2:        2:   73:      const ir_function_signature *const callee = ir->callee;
        2:        2:   74:      assert(callee != NULL);
        2:        2:   75:      const char *const name = callee->function_name();
        -:        -:   76:
        -:        -:   77:      /* We don't actually need to find intrinsics; they're not real */
        2:        2:   78:      if (callee->is_intrinsic())
    #####:    #####:   79:         return visit_continue;
        -:        -:   80:
        -:        -:   81:      /* Determine if the requested function signature already exists in the
        -:        -:   82:       * final linked shader.  If it does, use it as the target of the call.
        -:        -:   83:       */
        -:        -:   84:      ir_function_signature *sig =
        2:        2:   85:         find_matching_signature(name, &callee->parameters, linked->symbols);
        2:        2:   86:      if (sig != NULL) {
        2:        2:   87:	 ir->callee = sig;
        2:        2:   88:	 return visit_continue;
        -:        -:   89:      }
        -:        -:   90:
        -:        -:   91:      /* Try to find the signature in one of the other shaders that is being
        -:        -:   92:       * linked.  If it's not found there, return an error.
        -:        -:   93:       */
    #####:    #####:   94:      for (unsigned i = 0; i < num_shaders; i++) {
    #####:    #####:   95:         sig = find_matching_signature(name, &ir->actual_parameters,
    #####:    #####:   96:                                       shader_list[i]->symbols);
    #####:    #####:   97:         if (sig)
    #####:    #####:   98:            break;
        -:        -:   99:      }
        -:        -:  100:
    #####:    #####:  101:      if (sig == NULL) {
        -:        -:  102:	 /* FINISHME: Log the full signature of unresolved function.
        -:        -:  103:	  */
    #####:    #####:  104:	 linker_error(this->prog, "unresolved reference to function `%s'\n",
    #####:    #####:  105:		      name);
    #####:    #####:  106:	 this->success = false;
    #####:    #####:  107:	 return visit_stop;
        -:        -:  108:      }
        -:        -:  109:
        -:        -:  110:      /* Find the prototype information in the linked shader.  Generate any
        -:        -:  111:       * details that may be missing.
        -:        -:  112:       */
    #####:    #####:  113:      ir_function *f = linked->symbols->get_function(name);
    #####:    #####:  114:      if (f == NULL) {
    #####:    #####:  115:	 f = new(linked) ir_function(name);
        -:        -:  116:
        -:        -:  117:	 /* Add the new function to the linked IR.  Put it at the end
        -:        -:  118:          * so that it comes after any global variable declarations
        -:        -:  119:          * that it refers to.
        -:        -:  120:	  */
    #####:    #####:  121:	 linked->symbols->add_function(f);
    #####:    #####:  122:	 linked->ir->push_tail(f);
        -:        -:  123:      }
        -:        -:  124:
        -:        -:  125:      ir_function_signature *linked_sig =
    #####:    #####:  126:	 f->exact_matching_signature(NULL, &callee->parameters);
    #####:    #####:  127:      if (linked_sig == NULL) {
    #####:    #####:  128:	 linked_sig = new(linked) ir_function_signature(callee->return_type);
    #####:    #####:  129:	 f->add_signature(linked_sig);
        -:        -:  130:      }
        -:        -:  131:
        -:        -:  132:      /* At this point linked_sig and called may be the same.  If ir is an
        -:        -:  133:       * ir_call from linked then linked_sig and callee will be
        -:        -:  134:       * ir_function_signatures that have no definitions (is_defined is false).
        -:        -:  135:       */
    #####:    #####:  136:      assert(!linked_sig->is_defined);
    #####:    #####:  137:      assert(linked_sig->body.is_empty());
        -:        -:  138:
        -:        -:  139:      /* Create an in-place clone of the function definition.  This multistep
        -:        -:  140:       * process introduces some complexity here, but it has some advantages.
        -:        -:  141:       * The parameter list and the and function body are cloned separately.
        -:        -:  142:       * The clone of the parameter list is used to prime the hashtable used
        -:        -:  143:       * to replace variable references in the cloned body.
        -:        -:  144:       *
        -:        -:  145:       * The big advantage is that the ir_function_signature does not change.
        -:        -:  146:       * This means that we don't have to process the rest of the IR tree to
        -:        -:  147:       * patch ir_call nodes.  In addition, there is no way to remove or
        -:        -:  148:       * replace signature stored in a function.  One could easily be added,
        -:        -:  149:       * but this avoids the need.
        -:        -:  150:       */
        -:        -:  151:      struct hash_table *ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
    #####:    #####:  152:                                                      _mesa_key_pointer_equal);
        -:        -:  153:
    #####:    #####:  154:      exec_list formal_parameters;
    #####:    #####:  155:      foreach_in_list(const ir_instruction, original, &sig->parameters) {
    #####:    #####:  156:         assert(const_cast<ir_instruction *>(original)->as_variable());
        -:        -:  157:
    #####:    #####:  158:         ir_instruction *copy = original->clone(linked, ht);
    #####:    #####:  159:         formal_parameters.push_tail(copy);
        -:        -:  160:      }
        -:        -:  161:
    #####:    #####:  162:      linked_sig->replace_parameters(&formal_parameters);
        -:        -:  163:
    #####:    #####:  164:      linked_sig->intrinsic_id = sig->intrinsic_id;
        -:        -:  165:
    #####:    #####:  166:      if (sig->is_defined) {
    #####:    #####:  167:         foreach_in_list(const ir_instruction, original, &sig->body) {
    #####:    #####:  168:            ir_instruction *copy = original->clone(linked, ht);
    #####:    #####:  169:            linked_sig->body.push_tail(copy);
        -:        -:  170:         }
        -:        -:  171:
    #####:    #####:  172:         linked_sig->is_defined = true;
        -:        -:  173:      }
        -:        -:  174:
    #####:    #####:  175:      _mesa_hash_table_destroy(ht, NULL);
        -:        -:  176:
        -:        -:  177:      /* Patch references inside the function to things outside the function
        -:        -:  178:       * (i.e., function calls and global variables).
        -:        -:  179:       */
    #####:    #####:  180:      linked_sig->accept(this);
        -:        -:  181:
    #####:    #####:  182:      ir->callee = linked_sig;
        -:        -:  183:
    #####:    #####:  184:      return visit_continue;
        -:        -:  185:   }
        -:        -:  186:
        2:        2:  187:   virtual ir_visitor_status visit_leave(ir_call *ir)
        -:        -:  188:   {
        -:        -:  189:      /* Traverse list of function parameters, and for array parameters
        -:        -:  190:       * propagate max_array_access. Otherwise arrays that are only referenced
        -:        -:  191:       * from inside functions via function parameters will be incorrectly
        -:        -:  192:       * optimized. This will lead to incorrect code being generated (or worse).
        -:        -:  193:       * Do it when leaving the node so the children would propagate their
        -:        -:  194:       * array accesses first.
        -:        -:  195:       */
        -:        -:  196:
        2:        2:  197:      const exec_node *formal_param_node = ir->callee->parameters.get_head();
        2:        2:  198:      if (formal_param_node) {
        2:        2:  199:         const exec_node *actual_param_node = ir->actual_parameters.get_head();
       10:       10:  200:         while (!actual_param_node->is_tail_sentinel()) {
        4:        4:  201:            ir_variable *formal_param = (ir_variable *) formal_param_node;
        4:        4:  202:            ir_rvalue *actual_param = (ir_rvalue *) actual_param_node;
        -:        -:  203:
        4:        4:  204:            formal_param_node = formal_param_node->get_next();
        4:        4:  205:            actual_param_node = actual_param_node->get_next();
        -:        -:  206:
        4:        4:  207:            if (formal_param->type->is_array()) {
    #####:    #####:  208:               ir_dereference_variable *deref = actual_param->as_dereference_variable();
    #####:    #####:  209:               if (deref && deref->var && deref->var->type->is_array()) {
    #####:    #####:  210:                  deref->var->data.max_array_access =
    #####:    #####:  211:                     MAX2(formal_param->data.max_array_access,
    #####:    #####:  212:                         deref->var->data.max_array_access);
        -:        -:  213:               }
        -:        -:  214:            }
        -:        -:  215:         }
        -:        -:  216:      }
        2:        2:  217:      return visit_continue;
        -:        -:  218:   }
        -:        -:  219:
       85:       87:  220:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:  221:   {
       85:       87:  222:      if (_mesa_set_search(locals, ir->var) == NULL) {
        -:        -:  223:	 /* The non-function variable must be a global, so try to find the
        -:        -:  224:	  * variable in the shader's symbol table.  If the variable is not
        -:        -:  225:	  * found, then it's a global that *MUST* be defined in the original
        -:        -:  226:	  * shader.
        -:        -:  227:	  */
    #####:    #####:  228:	 ir_variable *var = linked->symbols->get_variable(ir->var->name);
    #####:    #####:  229:	 if (var == NULL) {
        -:        -:  230:	    /* Clone the ir_variable that the dereference already has and add
        -:        -:  231:	     * it to the linked shader.
        -:        -:  232:	     */
    #####:    #####:  233:	    var = ir->var->clone(linked, NULL);
    #####:    #####:  234:	    linked->symbols->add_variable(var);
    #####:    #####:  235:	    linked->ir->push_head(var);
        -:        -:  236:	 } else {
    #####:    #####:  237:            if (var->type->is_array()) {
        -:        -:  238:               /* It is possible to have a global array declared in multiple
        -:        -:  239:                * shaders without a size.  The array is implicitly sized by
        -:        -:  240:                * the maximal access to it in *any* shader.  Because of this,
        -:        -:  241:                * we need to track the maximal access to the array as linking
        -:        -:  242:                * pulls more functions in that access the array.
        -:        -:  243:                */
        -:        -:  244:               var->data.max_array_access =
    #####:    #####:  245:                  MAX2(var->data.max_array_access,
    #####:    #####:  246:                       ir->var->data.max_array_access);
        -:        -:  247:
    #####:    #####:  248:               if (var->type->length == 0 && ir->var->type->length != 0)
    #####:    #####:  249:                  var->type = ir->var->type;
        -:        -:  250:            }
    #####:    #####:  251:            if (var->is_interface_instance()) {
        -:        -:  252:               /* Similarly, we need implicit sizes of arrays within interface
        -:        -:  253:                * blocks to be sized by the maximal access in *any* shader.
        -:        -:  254:                */
        -:        -:  255:               int *const linked_max_ifc_array_access =
    #####:    #####:  256:                  var->get_max_ifc_array_access();
        -:        -:  257:               int *const ir_max_ifc_array_access =
    #####:    #####:  258:                  ir->var->get_max_ifc_array_access();
        -:        -:  259:
    #####:    #####:  260:               assert(linked_max_ifc_array_access != NULL);
    #####:    #####:  261:               assert(ir_max_ifc_array_access != NULL);
        -:        -:  262:
    #####:    #####:  263:               for (unsigned i = 0; i < var->get_interface_type()->length;
        -:        -:  264:                    i++) {
    #####:    #####:  265:                  linked_max_ifc_array_access[i] =
    #####:    #####:  266:                     MAX2(linked_max_ifc_array_access[i],
    #####:    #####:  267:                          ir_max_ifc_array_access[i]);
        -:        -:  268:               }
        -:        -:  269:            }
        -:        -:  270:	 }
        -:        -:  271:
    #####:    #####:  272:	 ir->var = var;
        -:        -:  273:      }
        -:        -:  274:
       85:       87:  275:      return visit_continue;
        -:        -:  276:   }
        -:        -:  277:
        -:        -:  278:   /** Was function linking successful? */
        -:        -:  279:   bool success;
        -:        -:  280:
        -:        -:  281:private:
        -:        -:  282:   /**
        -:        -:  283:    * Shader program being linked
        -:        -:  284:    *
        -:        -:  285:    * This is only used for logging error messages.
        -:        -:  286:    */
        -:        -:  287:   gl_shader_program *prog;
        -:        -:  288:
        -:        -:  289:   /** List of shaders available for linking. */
        -:        -:  290:   gl_shader **shader_list;
        -:        -:  291:
        -:        -:  292:   /** Number of shaders available for linking. */
        -:        -:  293:   unsigned num_shaders;
        -:        -:  294:
        -:        -:  295:   /**
        -:        -:  296:    * Final linked shader
        -:        -:  297:    *
        -:        -:  298:    * This is used two ways.  It is used to find global variables in the
        -:        -:  299:    * linked shader that are accessed by the function.  It is also used to add
        -:        -:  300:    * global variables from the shader where the function originated.
        -:        -:  301:    */
        -:        -:  302:   gl_linked_shader *linked;
        -:        -:  303:
        -:        -:  304:   /**
        -:        -:  305:    * Table of variables local to the function.
        -:        -:  306:    */
        -:        -:  307:   set *locals;
        -:        -:  308:};
        -:        -:  309:
        -:        -:  310:} /* anonymous namespace */
        -:        -:  311:
        -:        -:  312:/**
        -:        -:  313: * Searches a list of shaders for a particular function definition
        -:        -:  314: */
        -:        -:  315:ir_function_signature *
        2:        2:  316:find_matching_signature(const char *name, const exec_list *actual_parameters,
        -:        -:  317:                        glsl_symbol_table *symbols)
        -:        -:  318:{
        2:        2:  319:   ir_function *const f = symbols->get_function(name);
        -:        -:  320:
        2:        2:  321:   if (f) {
        -:        -:  322:      ir_function_signature *sig =
        2:        2:  323:         f->matching_signature(NULL, actual_parameters, false);
        -:        -:  324:
        2:        2:  325:      if (sig && (sig->is_defined || sig->is_intrinsic()))
        2:        2:  326:         return sig;
        -:        -:  327:   }
        -:        -:  328:
    #####:    #####:  329:   return NULL;
        -:        -:  330:}
        -:        -:  331:
        -:        -:  332:
        -:        -:  333:bool
        3:        3:  334:link_function_calls(gl_shader_program *prog, gl_linked_shader *main,
        -:        -:  335:		    gl_shader **shader_list, unsigned num_shaders)
        -:        -:  336:{
        6:        6:  337:   call_link_visitor v(prog, main, shader_list, num_shaders);
        -:        -:  338:
        3:        3:  339:   v.run(main->ir);
        6:        6:  340:   return v.success;
        -:        -:  341:}

        -:        -:    0:Source:glsl/link_uniform_block_active_visitor.cpp
        -:        -:    0:Graph:glsl/.libs/link_uniform_block_active_visitor.gcno
        -:        -:    0:Data:glsl/.libs/link_uniform_block_active_visitor.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "link_uniform_block_active_visitor.h"
        -:        -:   25:#include "program.h"
        -:        -:   26:
        -:        -:   27:static link_uniform_block_active *
    #####:    #####:   28:process_block(void *mem_ctx, struct hash_table *ht, ir_variable *var)
        -:        -:   29:{
        -:        -:   30:   const hash_entry *const existing_block =
    #####:    #####:   31:      _mesa_hash_table_search(ht, var->get_interface_type()->name);
        -:        -:   32:
    #####:    #####:   33:   const glsl_type *const block_type = var->is_interface_instance()
    #####:    #####:   34:      ? var->type : var->get_interface_type();
        -:        -:   35:
        -:        -:   36:
        -:        -:   37:   /* If a block with this block-name has not previously been seen, add it.
        -:        -:   38:    * If a block with this block-name has been seen, it must be identical to
        -:        -:   39:    * the block currently being examined.
        -:        -:   40:    */
    #####:    #####:   41:   if (existing_block == NULL) {
        -:        -:   42:      link_uniform_block_active *const b =
    #####:    #####:   43:         rzalloc(mem_ctx, struct link_uniform_block_active);
        -:        -:   44:
    #####:    #####:   45:      b->type = block_type;
    #####:    #####:   46:      b->has_instance_name = var->is_interface_instance();
    #####:    #####:   47:      b->is_shader_storage = var->data.mode == ir_var_shader_storage;
        -:        -:   48:
    #####:    #####:   49:      if (var->data.explicit_binding) {
    #####:    #####:   50:         b->has_binding = true;
    #####:    #####:   51:         b->binding = var->data.binding;
        -:        -:   52:      } else {
    #####:    #####:   53:         b->has_binding = false;
    #####:    #####:   54:         b->binding = 0;
        -:        -:   55:      }
        -:        -:   56:
    #####:    #####:   57:      _mesa_hash_table_insert(ht, var->get_interface_type()->name, (void *) b);
    #####:    #####:   58:      return b;
        -:        -:   59:   } else {
        -:        -:   60:      link_uniform_block_active *const b =
    #####:    #####:   61:         (link_uniform_block_active *) existing_block->data;
        -:        -:   62:
    #####:    #####:   63:      if (b->type != block_type
    #####:    #####:   64:          || b->has_instance_name != var->is_interface_instance())
    #####:    #####:   65:         return NULL;
        -:        -:   66:      else
    #####:    #####:   67:         return b;
        -:        -:   68:   }
        -:        -:   69:
        -:        -:   70:   assert(!"Should not get here.");
        -:        -:   71:   return NULL;
        -:        -:   72:}
        -:        -:   73:
        -:        -:   74:/* For arrays of arrays this function will give us a middle ground between
        -:        -:   75: * detecting inactive uniform blocks and structuring them in a way that makes
        -:        -:   76: * it easy to calculate the offset for indirect indexing.
        -:        -:   77: *
        -:        -:   78: * For example given the shader:
        -:        -:   79: *
        -:        -:   80: *   uniform ArraysOfArraysBlock
        -:        -:   81: *   {
        -:        -:   82: *      vec4 a;
        -:        -:   83: *   } i[3][4][5];
        -:        -:   84: *
        -:        -:   85: *   void main()
        -:        -:   86: *   {
        -:        -:   87: *      vec4 b = i[0][1][1].a;
        -:        -:   88: *      gl_Position = i[2][2][3].a + b;
        -:        -:   89: *   }
        -:        -:   90: *
        -:        -:   91: * There are only 2 active blocks above but for the sake of indirect indexing
        -:        -:   92: * and not over complicating the code we will end up with a count of 8.  Here
        -:        -:   93: * each dimension has 2 different indices counted so we end up with 2*2*2
        -:        -:   94: */
        -:        -:   95:static struct uniform_block_array_elements **
    #####:    #####:   96:process_arrays(void *mem_ctx, ir_dereference_array *ir,
        -:        -:   97:               struct link_uniform_block_active *block)
        -:        -:   98:{
    #####:    #####:   99:   if (ir) {
        -:        -:  100:      struct uniform_block_array_elements **ub_array_ptr =
    #####:    #####:  101:         process_arrays(mem_ctx, ir->array->as_dereference_array(), block);
    #####:    #####:  102:      if (*ub_array_ptr == NULL) {
    #####:    #####:  103:         *ub_array_ptr = rzalloc(mem_ctx, struct uniform_block_array_elements);
    #####:    #####:  104:         (*ub_array_ptr)->ir = ir;
        -:        -:  105:      }
        -:        -:  106:
    #####:    #####:  107:      struct uniform_block_array_elements *ub_array = *ub_array_ptr;
    #####:    #####:  108:      ir_constant *c = ir->array_index->as_constant();
    #####:    #####:  109:      if (c) {
        -:        -:  110:         /* Index is a constant, so mark just that element used, if not
        -:        -:  111:          * already.
        -:        -:  112:          */
    #####:    #####:  113:         const unsigned idx = c->get_uint_component(0);
        -:        -:  114:
        -:        -:  115:         unsigned i;
    #####:    #####:  116:         for (i = 0; i < ub_array->num_array_elements; i++) {
    #####:    #####:  117:            if (ub_array->array_elements[i] == idx)
    #####:    #####:  118:               break;
        -:        -:  119:         }
        -:        -:  120:
    #####:    #####:  121:         assert(i <= ub_array->num_array_elements);
        -:        -:  122:
    #####:    #####:  123:         if (i == ub_array->num_array_elements) {
    #####:    #####:  124:            ub_array->array_elements = reralloc(mem_ctx,
        -:        -:  125:                                                ub_array->array_elements,
        -:        -:  126:                                                unsigned,
    #####:    #####:  127:                                                ub_array->num_array_elements + 1);
        -:        -:  128:
    #####:    #####:  129:            ub_array->array_elements[ub_array->num_array_elements] = idx;
        -:        -:  130:
    #####:    #####:  131:            ub_array->num_array_elements++;
        -:        -:  132:         }
        -:        -:  133:      } else {
        -:        -:  134:         /* The array index is not a constant, so mark the entire array used. */
    #####:    #####:  135:         assert(ir->array->type->is_array());
    #####:    #####:  136:         if (ub_array->num_array_elements < ir->array->type->length) {
    #####:    #####:  137:            ub_array->num_array_elements = ir->array->type->length;
    #####:    #####:  138:            ub_array->array_elements = reralloc(mem_ctx,
        -:        -:  139:                                                ub_array->array_elements,
        -:        -:  140:                                                unsigned,
    #####:    #####:  141:                                                ub_array->num_array_elements);
        -:        -:  142:
    #####:    #####:  143:            for (unsigned i = 0; i < ub_array->num_array_elements; i++) {
    #####:    #####:  144:               ub_array->array_elements[i] = i;
        -:        -:  145:            }
        -:        -:  146:         }
        -:        -:  147:      }
        -:        -:  148:
    #####:    #####:  149:      return &ub_array->array;
        -:        -:  150:   } else {
    #####:    #####:  151:      return &block->array;
        -:        -:  152:   }
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:ir_visitor_status
      120:      120:  156:link_uniform_block_active_visitor::visit(ir_variable *var)
        -:        -:  157:{
      120:      120:  158:   if (!var->is_in_buffer_block())
      120:      120:  159:      return visit_continue;
        -:        -:  160:
        -:        -:  161:   /* Section 2.11.6 (Uniform Variables) of the OpenGL ES 3.0.3 spec says:
        -:        -:  162:    *
        -:        -:  163:    *     "All members of a named uniform block declared with a shared or
        -:        -:  164:    *     std140 layout qualifier are considered active, even if they are not
        -:        -:  165:    *     referenced in any shader in the program. The uniform block itself is
        -:        -:  166:    *     also considered active, even if no member of the block is
        -:        -:  167:    *     referenced."
        -:        -:  168:    */
    #####:    #####:  169:   if (var->get_interface_type_packing() == GLSL_INTERFACE_PACKING_PACKED)
    #####:    #####:  170:      return visit_continue;
        -:        -:  171:
        -:        -:  172:   /* Process the block.  Bail if there was an error. */
        -:        -:  173:   link_uniform_block_active *const b =
    #####:    #####:  174:      process_block(this->mem_ctx, this->ht, var);
    #####:    #####:  175:   if (b == NULL) {
    #####:    #####:  176:      linker_error(this->prog,
        -:        -:  177:                   "uniform block `%s' has mismatching definitions",
    #####:    #####:  178:                   var->get_interface_type()->name);
    #####:    #####:  179:      this->success = false;
    #####:    #####:  180:      return visit_stop;
        -:        -:  181:   }
        -:        -:  182:
    #####:    #####:  183:   assert(b->array == NULL);
    #####:    #####:  184:   assert(b->type != NULL);
    #####:    #####:  185:   assert(!b->type->is_array() || b->has_instance_name);
        -:        -:  186:
        -:        -:  187:   /* For uniform block arrays declared with a shared or std140 layout
        -:        -:  188:    * qualifier, mark all its instances as used.
        -:        -:  189:    */
    #####:    #####:  190:   const glsl_type *type = b->type;
    #####:    #####:  191:   struct uniform_block_array_elements **ub_array = &b->array;
    #####:    #####:  192:   while (type->is_array()) {
    #####:    #####:  193:      assert(b->type->length > 0);
        -:        -:  194:
    #####:    #####:  195:      *ub_array = rzalloc(this->mem_ctx, struct uniform_block_array_elements);
    #####:    #####:  196:      (*ub_array)->num_array_elements = type->length;
    #####:    #####:  197:      (*ub_array)->array_elements = reralloc(this->mem_ctx,
        -:        -:  198:                                             (*ub_array)->array_elements,
        -:        -:  199:                                             unsigned,
    #####:    #####:  200:                                             (*ub_array)->num_array_elements);
        -:        -:  201:
    #####:    #####:  202:      for (unsigned i = 0; i < (*ub_array)->num_array_elements; i++) {
    #####:    #####:  203:         (*ub_array)->array_elements[i] = i;
        -:        -:  204:      }
    #####:    #####:  205:      ub_array = &(*ub_array)->array;
    #####:    #####:  206:      type = type->fields.array;
        -:        -:  207:   }
        -:        -:  208:
    #####:    #####:  209:   return visit_continue;
        -:        -:  210:}
        -:        -:  211:
        -:        -:  212:ir_visitor_status
       16:       16:  213:link_uniform_block_active_visitor::visit_enter(ir_dereference_array *ir)
        -:        -:  214:{
        -:        -:  215:   /* cycle through arrays of arrays */
       16:       16:  216:   ir_dereference_array *base_ir = ir;
       16:       16:  217:   while (base_ir->array->ir_type == ir_type_dereference_array)
    #####:    #####:  218:      base_ir = base_ir->array->as_dereference_array();
        -:        -:  219:
        -:        -:  220:   ir_dereference_variable *const d =
       16:       16:  221:      base_ir->array->as_dereference_variable();
       16:       16:  222:   ir_variable *const var = (d == NULL) ? NULL : d->var;
        -:        -:  223:
        -:        -:  224:   /* If the r-value being dereferenced is not a variable (e.g., a field of a
        -:        -:  225:    * structure) or is not a uniform block instance, continue.
        -:        -:  226:    *
        -:        -:  227:    * WARNING: It is not enough for the variable to be part of uniform block.
        -:        -:  228:    * It must represent the entire block.  Arrays (or matrices) inside blocks
        -:        -:  229:    * that lack an instance name are handled by the ir_dereference_variable
        -:        -:  230:    * function.
        -:        -:  231:    */
       16:       16:  232:   if (var == NULL
       16:       16:  233:       || !var->is_in_buffer_block()
       16:       16:  234:       || !var->is_interface_instance())
       16:       16:  235:      return visit_continue;
        -:        -:  236:
        -:        -:  237:   /* Process the block.  Bail if there was an error. */
        -:        -:  238:   link_uniform_block_active *const b =
    #####:    #####:  239:      process_block(this->mem_ctx, this->ht, var);
    #####:    #####:  240:   if (b == NULL) {
    #####:    #####:  241:      linker_error(prog,
        -:        -:  242:                   "uniform block `%s' has mismatching definitions",
    #####:    #####:  243:                   var->get_interface_type()->name);
    #####:    #####:  244:      this->success = false;
    #####:    #####:  245:      return visit_stop;
        -:        -:  246:   }
        -:        -:  247:
        -:        -:  248:   /* Block arrays must be declared with an instance name.
        -:        -:  249:    */
    #####:    #####:  250:   assert(b->has_instance_name);
    #####:    #####:  251:   assert(b->type != NULL);
        -:        -:  252:
        -:        -:  253:   /* If the block array was declared with a shared or std140 layout
        -:        -:  254:    * qualifier, all its instances have been already marked as used in
        -:        -:  255:    * link_uniform_block_active_visitor::visit(ir_variable *).
        -:        -:  256:    */
    #####:    #####:  257:   if (var->get_interface_type_packing() == GLSL_INTERFACE_PACKING_PACKED) {
    #####:    #####:  258:      b->var = var;
    #####:    #####:  259:      process_arrays(this->mem_ctx, ir, b);
        -:        -:  260:   }
        -:        -:  261:
    #####:    #####:  262:   return visit_continue_with_parent;
        -:        -:  263:}
        -:        -:  264:
        -:        -:  265:ir_visitor_status
       85:       87:  266:link_uniform_block_active_visitor::visit(ir_dereference_variable *ir)
        -:        -:  267:{
       85:       87:  268:   ir_variable *var = ir->var;
        -:        -:  269:
       85:       87:  270:   if (!var->is_in_buffer_block())
       85:       87:  271:      return visit_continue;
        -:        -:  272:
    #####:    #####:  273:   assert(!var->is_interface_instance() || !var->type->is_array());
        -:        -:  274:
        -:        -:  275:   /* Process the block.  Bail if there was an error. */
        -:        -:  276:   link_uniform_block_active *const b =
    #####:    #####:  277:      process_block(this->mem_ctx, this->ht, var);
    #####:    #####:  278:   if (b == NULL) {
    #####:    #####:  279:      linker_error(this->prog,
        -:        -:  280:                   "uniform block `%s' has mismatching definitions",
    #####:    #####:  281:                   var->get_interface_type()->name);
    #####:    #####:  282:      this->success = false;
    #####:    #####:  283:      return visit_stop;
        -:        -:  284:   }
        -:        -:  285:
    #####:    #####:  286:   assert(b->array == NULL);
    #####:    #####:  287:   assert(b->type != NULL);
        -:        -:  288:
    #####:    #####:  289:   return visit_continue;
        -:        -:  290:}

src/compiler/lower_const_arrays_to_uniforms.cpp.gcov

        -:        -:    0:Source:glsl/lower_const_arrays_to_uniforms.cpp
        -:        -:    0:Graph:glsl/.libs/lower_const_arrays_to_uniforms.gcno
        -:        -:    0:Data:glsl/.libs/lower_const_arrays_to_uniforms.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_const_arrays_to_uniforms.cpp
        -:        -:   26: *
        -:        -:   27: * Lower constant arrays to uniform arrays.
        -:        -:   28: *
        -:        -:   29: * Some driver backends (such as i965 and nouveau) don't handle constant arrays
        -:        -:   30: * gracefully, instead treating them as ordinary writable temporary arrays.
        -:        -:   31: * Since arrays can be large, this often means spilling them to scratch memory,
        -:        -:   32: * which usually involves a large number of instructions.
        -:        -:   33: *
        -:        -:   34: * This must be called prior to link_set_uniform_initializers(); we need the
        -:        -:   35: * linker to process our new uniform's constant initializer.
        -:        -:   36: *
        -:        -:   37: * This should be called after optimizations, since those can result in
        -:        -:   38: * splitting and removing arrays that are indexed by constant expressions.
        -:        -:   39: */
        -:        -:   40:#include "ir.h"
        -:        -:   41:#include "ir_visitor.h"
        -:        -:   42:#include "ir_rvalue_visitor.h"
        -:        -:   43:#include "compiler/glsl_types.h"
        -:        -:   44:
        -:        -:   45:namespace {
        -:        -:   46:class lower_const_array_visitor : public ir_rvalue_visitor {
        -:        -:   47:public:
        3:        3:   48:   lower_const_array_visitor(exec_list *insts, unsigned s)
        3:        3:   49:   {
        3:        3:   50:      instructions = insts;
        3:        3:   51:      stage = s;
        3:        3:   52:      const_count = 0;
        3:        3:   53:      progress = false;
        3:        3:   54:   }
        -:        -:   55:
        3:        3:   56:   bool run()
        -:        -:   57:   {
        3:        3:   58:      visit_list_elements(this, instructions);
        3:        3:   59:      return progress;
        -:        -:   60:   }
        -:        -:   61:
        -:        -:   62:   ir_visitor_status visit_enter(ir_texture *);
        -:        -:   63:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   64:
        -:        -:   65:private:
        -:        -:   66:   exec_list *instructions;
        -:        -:   67:   unsigned stage;
        -:        -:   68:   unsigned const_count;
        -:        -:   69:   bool progress;
        -:        -:   70:};
        -:        -:   71:
        -:        -:   72:ir_visitor_status
    #####:    #####:   73:lower_const_array_visitor::visit_enter(ir_texture *)
        -:        -:   74:{
    #####:    #####:   75:   return visit_continue_with_parent;
        -:        -:   76:}
        -:        -:   77:
        -:        -:   78:void
      185:      195:   79:lower_const_array_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:   80:{
      185:      195:   81:   if (!*rvalue)
       42:       42:   82:      return;
        -:        -:   83:
      143:      153:   84:   ir_constant *con = (*rvalue)->as_constant();
      143:      153:   85:   if (!con || !con->type->is_array())
      143:      153:   86:      return;
        -:        -:   87:
    #####:    #####:   88:   void *mem_ctx = ralloc_parent(con);
        -:        -:   89:
        -:        -:   90:   /* In the very unlikely event of 4294967295 constant arrays in a single
        -:        -:   91:    * shader, don't promote this to a uniform.
        -:        -:   92:    */
    #####:    #####:   93:   unsigned limit = ~0;
    #####:    #####:   94:   if (const_count == limit)
    #####:    #####:   95:      return;
        -:        -:   96:
    #####:    #####:   97:   char *uniform_name = ralloc_asprintf(mem_ctx, "constarray_%x_%u",
    #####:    #####:   98:                                        const_count, stage);
    #####:    #####:   99:   const_count++;
        -:        -:  100:
        -:        -:  101:   ir_variable *uni =
    #####:    #####:  102:      new(mem_ctx) ir_variable(con->type, uniform_name, ir_var_uniform);
    #####:    #####:  103:   uni->constant_initializer = con;
    #####:    #####:  104:   uni->constant_value = con;
    #####:    #####:  105:   uni->data.has_initializer = true;
    #####:    #####:  106:   uni->data.how_declared = ir_var_hidden;
    #####:    #####:  107:   uni->data.read_only = true;
        -:        -:  108:   /* Assume the whole thing is accessed. */
    #####:    #####:  109:   uni->data.max_array_access = uni->type->length - 1;
    #####:    #####:  110:   instructions->push_head(uni);
        -:        -:  111:
    #####:    #####:  112:   *rvalue = new(mem_ctx) ir_dereference_variable(uni);
        -:        -:  113:
    #####:    #####:  114:   progress = true;
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:} /* anonymous namespace */
        -:        -:  118:
        -:        -:  119:bool
        3:        3:  120:lower_const_arrays_to_uniforms(exec_list *instructions, unsigned stage)
        -:        -:  121:{
        3:        3:  122:   lower_const_array_visitor v(instructions, stage);
        3:        3:  123:   return v.run();
        -:        -:  124:}

src/compiler/lower_discard_flow.cpp.gcov

        -:        -:    0:Source:glsl/lower_discard_flow.cpp
        -:        -:    0:Graph:glsl/.libs/lower_discard_flow.gcno
        -:        -:    0:Data:glsl/.libs/lower_discard_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file lower_discard_flow.cpp
        -:        -:   25: *
        -:        -:   26: * Implements the GLSL 1.30 revision 9 rule for fragment shader
        -:        -:   27: * discard handling:
        -:        -:   28: *
        -:        -:   29: *     "Control flow exits the shader, and subsequent implicit or
        -:        -:   30: *      explicit derivatives are undefined when this control flow is
        -:        -:   31: *      non-uniform (meaning different fragments within the primitive
        -:        -:   32: *      take different control paths)."
        -:        -:   33: *
        -:        -:   34: * There seem to be two conflicting things here.  "Control flow exits
        -:        -:   35: * the shader" sounds like the discarded fragments should effectively
        -:        -:   36: * jump to the end of the shader, but that breaks derivatives in the
        -:        -:   37: * case of uniform control flow and causes rendering failure in the
        -:        -:   38: * bushes in Unigine Tropics.
        -:        -:   39: *
        -:        -:   40: * The question, then, is whether the intent was "loops stop at the
        -:        -:   41: * point that the only active channels left are discarded pixels" or
        -:        -:   42: * "discarded pixels become inactive at the point that control flow
        -:        -:   43: * returns to the top of a loop".  This implements the second
        -:        -:   44: * interpretation.
        -:        -:   45: */
        -:        -:   46:
        -:        -:   47:#include "compiler/glsl_types.h"
        -:        -:   48:#include "ir.h"
        -:        -:   49:
        -:        -:   50:namespace {
        -:        -:   51:
        -:        -:   52:class lower_discard_flow_visitor : public ir_hierarchical_visitor {
        -:        -:   53:public:
        1:        1:   54:   lower_discard_flow_visitor(ir_variable *discarded)
        1:        1:   55:   : discarded(discarded)
        -:        -:   56:   {
        1:        1:   57:      mem_ctx = ralloc_parent(discarded);
        1:        1:   58:   }
        -:        -:   59:
        1:        1:   60:   ~lower_discard_flow_visitor()
        1:        1:   61:   {
        1:        1:   62:   }
        -:        -:   63:
        -:        -:   64:   ir_visitor_status visit(ir_loop_jump *ir);
        -:        -:   65:   ir_visitor_status visit_enter(ir_discard *ir);
        -:        -:   66:   ir_visitor_status visit_enter(ir_loop *ir);
        -:        -:   67:   ir_visitor_status visit_enter(ir_function_signature *ir);
        -:        -:   68:
        -:        -:   69:   ir_if *generate_discard_break();
        -:        -:   70:
        -:        -:   71:   ir_variable *discarded;
        -:        -:   72:   void *mem_ctx;
        -:        -:   73:};
        -:        -:   74:
        -:        -:   75:} /* anonymous namespace */
        -:        -:   76:
        -:        -:   77:ir_visitor_status
        5:        8:   78:lower_discard_flow_visitor::visit(ir_loop_jump *ir)
        -:        -:   79:{
        5:        8:   80:   if (ir->mode != ir_loop_jump::jump_continue)
        5:        8:   81:      return visit_continue;
        -:        -:   82:
    #####:    #####:   83:   ir->insert_before(generate_discard_break());
        -:        -:   84:
    #####:    #####:   85:   return visit_continue;
        -:        -:   86:}
        -:        -:   87:
        -:        -:   88:ir_visitor_status
    #####:    #####:   89:lower_discard_flow_visitor::visit_enter(ir_discard *ir)
        -:        -:   90:{
    #####:    #####:   91:   ir_dereference *lhs = new(mem_ctx) ir_dereference_variable(discarded);
        -:        -:   92:   ir_rvalue *rhs;
    #####:    #####:   93:   if (ir->condition) {
        -:        -:   94:      /* discarded <- condition, use (var_ref discarded) as the condition */
    #####:    #####:   95:      rhs = ir->condition;
    #####:    #####:   96:      ir->condition = new(mem_ctx) ir_dereference_variable(discarded);
        -:        -:   97:   } else {
    #####:    #####:   98:      rhs = new(mem_ctx) ir_constant(true);
        -:        -:   99:   }
    #####:    #####:  100:   ir_assignment *assign = new(mem_ctx) ir_assignment(lhs, rhs);
    #####:    #####:  101:   ir->insert_before(assign);
        -:        -:  102:
    #####:    #####:  103:   return visit_continue;
        -:        -:  104:}
        -:        -:  105:
        -:        -:  106:ir_visitor_status
        2:        3:  107:lower_discard_flow_visitor::visit_enter(ir_loop *ir)
        -:        -:  108:{
        2:        3:  109:   ir->body_instructions.push_tail(generate_discard_break());
        -:        -:  110:
        2:        3:  111:   return visit_continue;
        -:        -:  112:}
        -:        -:  113:
        -:        -:  114:ir_visitor_status
        2:        2:  115:lower_discard_flow_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  116:{
        2:        2:  117:   if (strcmp(ir->function_name(), "main") != 0)
        1:        1:  118:      return visit_continue;
        -:        -:  119:
        1:        1:  120:   ir_dereference *lhs = new(mem_ctx) ir_dereference_variable(discarded);
        1:        1:  121:   ir_rvalue *rhs = new(mem_ctx) ir_constant(false);
        1:        1:  122:   ir_assignment *assign = new(mem_ctx) ir_assignment(lhs, rhs);
        1:        1:  123:   ir->body.push_head(assign);
        -:        -:  124:
        1:        1:  125:   return visit_continue;
        -:        -:  126:}
        -:        -:  127:
        -:        -:  128:ir_if *
        2:        3:  129:lower_discard_flow_visitor::generate_discard_break()
        -:        -:  130:{
        2:        3:  131:   ir_rvalue *if_condition = new(mem_ctx) ir_dereference_variable(discarded);
        2:        3:  132:   ir_if *if_inst = new(mem_ctx) ir_if(if_condition);
        -:        -:  133:
        2:        3:  134:   ir_instruction *br = new(mem_ctx) ir_loop_jump(ir_loop_jump::jump_break);
        2:        3:  135:   if_inst->then_instructions.push_tail(br);
        -:        -:  136:
        2:        3:  137:   return if_inst;
        -:        -:  138:}
        -:        -:  139:
        -:        -:  140:void
        1:        1:  141:lower_discard_flow(exec_list *ir)
        -:        -:  142:{
        1:        1:  143:   void *mem_ctx = ir;
        -:        -:  144:
        -:        -:  145:   ir_variable *var = new(mem_ctx) ir_variable(glsl_type::bool_type,
        -:        -:  146:					       "discarded",
        1:        1:  147:					       ir_var_temporary);
        -:        -:  148:
        1:        1:  149:   ir->push_head(var);
        -:        -:  150:
        2:        2:  151:   lower_discard_flow_visitor v(var);
        -:        -:  152:
        1:        1:  153:   visit_list_elements(&v, ir);
        1:        1:  154:}

src/compiler/lower_instructions.cpp.gcov

        -:        -:    0:Source:glsl/lower_instructions.cpp
        -:        -:    0:Graph:glsl/.libs/lower_instructions.gcno
        -:        -:    0:Data:glsl/.libs/lower_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_instructions.cpp
        -:        -:   26: *
        -:        -:   27: * Many GPUs lack native instructions for certain expression operations, and
        -:        -:   28: * must replace them with some other expression tree.  This pass lowers some
        -:        -:   29: * of the most common cases, allowing the lowering code to be implemented once
        -:        -:   30: * rather than in each driver backend.
        -:        -:   31: *
        -:        -:   32: * Currently supported transformations:
        -:        -:   33: * - SUB_TO_ADD_NEG
        -:        -:   34: * - DIV_TO_MUL_RCP
        -:        -:   35: * - INT_DIV_TO_MUL_RCP
        -:        -:   36: * - EXP_TO_EXP2
        -:        -:   37: * - POW_TO_EXP2
        -:        -:   38: * - LOG_TO_LOG2
        -:        -:   39: * - MOD_TO_FLOOR
        -:        -:   40: * - LDEXP_TO_ARITH
        -:        -:   41: * - DFREXP_TO_ARITH
        -:        -:   42: * - CARRY_TO_ARITH
        -:        -:   43: * - BORROW_TO_ARITH
        -:        -:   44: * - SAT_TO_CLAMP
        -:        -:   45: * - DOPS_TO_DFRAC
        -:        -:   46: *
        -:        -:   47: * SUB_TO_ADD_NEG:
        -:        -:   48: * ---------------
        -:        -:   49: * Breaks an ir_binop_sub expression down to add(op0, neg(op1))
        -:        -:   50: *
        -:        -:   51: * This simplifies expression reassociation, and for many backends
        -:        -:   52: * there is no subtract operation separate from adding the negation.
        -:        -:   53: * For backends with native subtract operations, they will probably
        -:        -:   54: * want to recognize add(op0, neg(op1)) or the other way around to
        -:        -:   55: * produce a subtract anyway.
        -:        -:   56: *
        -:        -:   57: * FDIV_TO_MUL_RCP, DDIV_TO_MUL_RCP, and INT_DIV_TO_MUL_RCP:
        -:        -:   58: * ---------------------------------------------------------
        -:        -:   59: * Breaks an ir_binop_div expression down to op0 * (rcp(op1)).
        -:        -:   60: *
        -:        -:   61: * Many GPUs don't have a divide instruction (945 and 965 included),
        -:        -:   62: * but they do have an RCP instruction to compute an approximate
        -:        -:   63: * reciprocal.  By breaking the operation down, constant reciprocals
        -:        -:   64: * can get constant folded.
        -:        -:   65: *
        -:        -:   66: * FDIV_TO_MUL_RCP only lowers single-precision floating point division;
        -:        -:   67: * DDIV_TO_MUL_RCP only lowers double-precision floating point division.
        -:        -:   68: * DIV_TO_MUL_RCP is a convenience macro that sets both flags.
        -:        -:   69: * INT_DIV_TO_MUL_RCP handles the integer case, converting to and from floating
        -:        -:   70: * point so that RCP is possible.
        -:        -:   71: *
        -:        -:   72: * EXP_TO_EXP2 and LOG_TO_LOG2:
        -:        -:   73: * ----------------------------
        -:        -:   74: * Many GPUs don't have a base e log or exponent instruction, but they
        -:        -:   75: * do have base 2 versions, so this pass converts exp and log to exp2
        -:        -:   76: * and log2 operations.
        -:        -:   77: *
        -:        -:   78: * POW_TO_EXP2:
        -:        -:   79: * -----------
        -:        -:   80: * Many older GPUs don't have an x**y instruction.  For these GPUs, convert
        -:        -:   81: * x**y to 2**(y * log2(x)).
        -:        -:   82: *
        -:        -:   83: * MOD_TO_FLOOR:
        -:        -:   84: * -------------
        -:        -:   85: * Breaks an ir_binop_mod expression down to (op0 - op1 * floor(op0 / op1))
        -:        -:   86: *
        -:        -:   87: * Many GPUs don't have a MOD instruction (945 and 965 included), and
        -:        -:   88: * if we have to break it down like this anyway, it gives an
        -:        -:   89: * opportunity to do things like constant fold the (1.0 / op1) easily.
        -:        -:   90: *
        -:        -:   91: * Note: before we used to implement this as op1 * fract(op / op1) but this
        -:        -:   92: * implementation had significant precision errors.
        -:        -:   93: *
        -:        -:   94: * LDEXP_TO_ARITH:
        -:        -:   95: * -------------
        -:        -:   96: * Converts ir_binop_ldexp to arithmetic and bit operations for float sources.
        -:        -:   97: *
        -:        -:   98: * DFREXP_DLDEXP_TO_ARITH:
        -:        -:   99: * ---------------
        -:        -:  100: * Converts ir_binop_ldexp, ir_unop_frexp_sig, and ir_unop_frexp_exp to
        -:        -:  101: * arithmetic and bit ops for double arguments.
        -:        -:  102: *
        -:        -:  103: * CARRY_TO_ARITH:
        -:        -:  104: * ---------------
        -:        -:  105: * Converts ir_carry into (x + y) < x.
        -:        -:  106: *
        -:        -:  107: * BORROW_TO_ARITH:
        -:        -:  108: * ----------------
        -:        -:  109: * Converts ir_borrow into (x < y).
        -:        -:  110: *
        -:        -:  111: * SAT_TO_CLAMP:
        -:        -:  112: * -------------
        -:        -:  113: * Converts ir_unop_saturate into min(max(x, 0.0), 1.0)
        -:        -:  114: *
        -:        -:  115: * DOPS_TO_DFRAC:
        -:        -:  116: * --------------
        -:        -:  117: * Converts double trunc, ceil, floor, round to fract
        -:        -:  118: */
        -:        -:  119:
        -:        -:  120:#include "c99_math.h"
        -:        -:  121:#include "program/prog_instruction.h" /* for swizzle */
        -:        -:  122:#include "compiler/glsl_types.h"
        -:        -:  123:#include "ir.h"
        -:        -:  124:#include "ir_builder.h"
        -:        -:  125:#include "ir_optimization.h"
        -:        -:  126:
        -:        -:  127:using namespace ir_builder;
        -:        -:  128:
        -:        -:  129:namespace {
        -:        -:  130:
        -:        -:  131:class lower_instructions_visitor : public ir_hierarchical_visitor {
        -:        -:  132:public:
       21:       21:  133:   lower_instructions_visitor(unsigned lower)
       21:       21:  134:      : progress(false), lower(lower) { }
        -:        -:  135:
        -:        -:  136:   ir_visitor_status visit_leave(ir_expression *);
        -:        -:  137:
        -:        -:  138:   bool progress;
        -:        -:  139:
        -:        -:  140:private:
        -:        -:  141:   unsigned lower; /** Bitfield of which operations to lower */
        -:        -:  142:
        -:        -:  143:   void sub_to_add_neg(ir_expression *);
        -:        -:  144:   void div_to_mul_rcp(ir_expression *);
        -:        -:  145:   void int_div_to_mul_rcp(ir_expression *);
        -:        -:  146:   void mod_to_floor(ir_expression *);
        -:        -:  147:   void exp_to_exp2(ir_expression *);
        -:        -:  148:   void pow_to_exp2(ir_expression *);
        -:        -:  149:   void log_to_log2(ir_expression *);
        -:        -:  150:   void ldexp_to_arith(ir_expression *);
        -:        -:  151:   void dldexp_to_arith(ir_expression *);
        -:        -:  152:   void dfrexp_sig_to_arith(ir_expression *);
        -:        -:  153:   void dfrexp_exp_to_arith(ir_expression *);
        -:        -:  154:   void carry_to_arith(ir_expression *);
        -:        -:  155:   void borrow_to_arith(ir_expression *);
        -:        -:  156:   void sat_to_clamp(ir_expression *);
        -:        -:  157:   void double_dot_to_fma(ir_expression *);
        -:        -:  158:   void double_lrp(ir_expression *);
        -:        -:  159:   void dceil_to_dfrac(ir_expression *);
        -:        -:  160:   void dfloor_to_dfrac(ir_expression *);
        -:        -:  161:   void dround_even_to_dfrac(ir_expression *);
        -:        -:  162:   void dtrunc_to_dfrac(ir_expression *);
        -:        -:  163:   void dsign_to_csel(ir_expression *);
        -:        -:  164:   void bit_count_to_math(ir_expression *);
        -:        -:  165:   void extract_to_shifts(ir_expression *);
        -:        -:  166:   void insert_to_shifts(ir_expression *);
        -:        -:  167:   void reverse_to_shifts(ir_expression *ir);
        -:        -:  168:   void find_lsb_to_float_cast(ir_expression *ir);
        -:        -:  169:   void find_msb_to_float_cast(ir_expression *ir);
        -:        -:  170:   void imul_high_to_mul(ir_expression *ir);
        -:        -:  171:   void sqrt_to_abs_sqrt(ir_expression *ir);
        -:        -:  172:
        -:        -:  173:   ir_expression *_carry(operand a, operand b);
        -:        -:  174:};
        -:        -:  175:
        -:        -:  176:} /* anonymous namespace */
        -:        -:  177:
        -:        -:  178:/**
        -:        -:  179: * Determine if a particular type of lowering should occur
        -:        -:  180: */
        -:        -:  181:#define lowering(x) (this->lower & x)
        -:        -:  182:
        -:        -:  183:bool
       21:       21:  184:lower_instructions(exec_list *instructions, unsigned what_to_lower)
        -:        -:  185:{
       21:       21:  186:   lower_instructions_visitor v(what_to_lower);
        -:        -:  187:
       21:       21:  188:   visit_list_elements(&v, instructions);
       21:       21:  189:   return v.progress;
        -:        -:  190:}
        -:        -:  191:
        -:        -:  192:void
    #####:    #####:  193:lower_instructions_visitor::sub_to_add_neg(ir_expression *ir)
        -:        -:  194:{
    #####:    #####:  195:   ir->operation = ir_binop_add;
    #####:    #####:  196:   ir->operands[1] = new(ir) ir_expression(ir_unop_neg, ir->operands[1]->type,
    #####:    #####:  197:					   ir->operands[1], NULL);
    #####:    #####:  198:   this->progress = true;
    #####:    #####:  199:}
        -:        -:  200:
        -:        -:  201:void
        1:        1:  202:lower_instructions_visitor::div_to_mul_rcp(ir_expression *ir)
        -:        -:  203:{
        1:        1:  204:   assert(ir->operands[1]->type->is_float() || ir->operands[1]->type->is_double());
        -:        -:  205:
        -:        -:  206:   /* New expression for the 1.0 / op1 */
        -:        -:  207:   ir_rvalue *expr;
        -:        -:  208:   expr = new(ir) ir_expression(ir_unop_rcp,
        1:        1:  209:				ir->operands[1]->type,
        2:        2:  210:				ir->operands[1]);
        -:        -:  211:
        -:        -:  212:   /* op0 / op1 -> op0 * (1.0 / op1) */
        1:        1:  213:   ir->operation = ir_binop_mul;
        1:        1:  214:   ir->operands[1] = expr;
        -:        -:  215:
        1:        1:  216:   this->progress = true;
        1:        1:  217:}
        -:        -:  218:
        -:        -:  219:void
    #####:    #####:  220:lower_instructions_visitor::int_div_to_mul_rcp(ir_expression *ir)
        -:        -:  221:{
    #####:    #####:  222:   assert(ir->operands[1]->type->is_integer());
        -:        -:  223:
        -:        -:  224:   /* Be careful with integer division -- we need to do it as a
        -:        -:  225:    * float and re-truncate, since rcp(n > 1) of an integer would
        -:        -:  226:    * just be 0.
        -:        -:  227:    */
        -:        -:  228:   ir_rvalue *op0, *op1;
        -:        -:  229:   const struct glsl_type *vec_type;
        -:        -:  230:
    #####:    #####:  231:   vec_type = glsl_type::get_instance(GLSL_TYPE_FLOAT,
    #####:    #####:  232:				      ir->operands[1]->type->vector_elements,
    #####:    #####:  233:				      ir->operands[1]->type->matrix_columns);
        -:        -:  234:
    #####:    #####:  235:   if (ir->operands[1]->type->base_type == GLSL_TYPE_INT)
    #####:    #####:  236:      op1 = new(ir) ir_expression(ir_unop_i2f, vec_type, ir->operands[1], NULL);
        -:        -:  237:   else
    #####:    #####:  238:      op1 = new(ir) ir_expression(ir_unop_u2f, vec_type, ir->operands[1], NULL);
        -:        -:  239:
    #####:    #####:  240:   op1 = new(ir) ir_expression(ir_unop_rcp, op1->type, op1, NULL);
        -:        -:  241:
    #####:    #####:  242:   vec_type = glsl_type::get_instance(GLSL_TYPE_FLOAT,
    #####:    #####:  243:				      ir->operands[0]->type->vector_elements,
    #####:    #####:  244:				      ir->operands[0]->type->matrix_columns);
        -:        -:  245:
    #####:    #####:  246:   if (ir->operands[0]->type->base_type == GLSL_TYPE_INT)
    #####:    #####:  247:      op0 = new(ir) ir_expression(ir_unop_i2f, vec_type, ir->operands[0], NULL);
        -:        -:  248:   else
    #####:    #####:  249:      op0 = new(ir) ir_expression(ir_unop_u2f, vec_type, ir->operands[0], NULL);
        -:        -:  250:
    #####:    #####:  251:   vec_type = glsl_type::get_instance(GLSL_TYPE_FLOAT,
    #####:    #####:  252:				      ir->type->vector_elements,
    #####:    #####:  253:				      ir->type->matrix_columns);
        -:        -:  254:
    #####:    #####:  255:   op0 = new(ir) ir_expression(ir_binop_mul, vec_type, op0, op1);
        -:        -:  256:
    #####:    #####:  257:   if (ir->operands[1]->type->base_type == GLSL_TYPE_INT) {
    #####:    #####:  258:      ir->operation = ir_unop_f2i;
    #####:    #####:  259:      ir->operands[0] = op0;
        -:        -:  260:   } else {
    #####:    #####:  261:      ir->operation = ir_unop_i2u;
    #####:    #####:  262:      ir->operands[0] = new(ir) ir_expression(ir_unop_f2i, op0);
        -:        -:  263:   }
    #####:    #####:  264:   ir->operands[1] = NULL;
        -:        -:  265:
    #####:    #####:  266:   this->progress = true;
    #####:    #####:  267:}
        -:        -:  268:
        -:        -:  269:void
    #####:    #####:  270:lower_instructions_visitor::exp_to_exp2(ir_expression *ir)
        -:        -:  271:{
    #####:    #####:  272:   ir_constant *log2_e = new(ir) ir_constant(float(M_LOG2E));
        -:        -:  273:
    #####:    #####:  274:   ir->operation = ir_unop_exp2;
    #####:    #####:  275:   ir->operands[0] = new(ir) ir_expression(ir_binop_mul, ir->operands[0]->type,
    #####:    #####:  276:					   ir->operands[0], log2_e);
    #####:    #####:  277:   this->progress = true;
    #####:    #####:  278:}
        -:        -:  279:
        -:        -:  280:void
    #####:    #####:  281:lower_instructions_visitor::pow_to_exp2(ir_expression *ir)
        -:        -:  282:{
        -:        -:  283:   ir_expression *const log2_x =
    #####:    #####:  284:      new(ir) ir_expression(ir_unop_log2, ir->operands[0]->type,
    #####:    #####:  285:			    ir->operands[0]);
        -:        -:  286:
    #####:    #####:  287:   ir->operation = ir_unop_exp2;
    #####:    #####:  288:   ir->operands[0] = new(ir) ir_expression(ir_binop_mul, ir->operands[1]->type,
    #####:    #####:  289:					   ir->operands[1], log2_x);
    #####:    #####:  290:   ir->operands[1] = NULL;
    #####:    #####:  291:   this->progress = true;
    #####:    #####:  292:}
        -:        -:  293:
        -:        -:  294:void
    #####:    #####:  295:lower_instructions_visitor::log_to_log2(ir_expression *ir)
        -:        -:  296:{
    #####:    #####:  297:   ir->operation = ir_binop_mul;
    #####:    #####:  298:   ir->operands[0] = new(ir) ir_expression(ir_unop_log2, ir->operands[0]->type,
    #####:    #####:  299:					   ir->operands[0], NULL);
    #####:    #####:  300:   ir->operands[1] = new(ir) ir_constant(float(1.0 / M_LOG2E));
    #####:    #####:  301:   this->progress = true;
    #####:    #####:  302:}
        -:        -:  303:
        -:        -:  304:void
    #####:    #####:  305:lower_instructions_visitor::mod_to_floor(ir_expression *ir)
        -:        -:  306:{
    #####:    #####:  307:   ir_variable *x = new(ir) ir_variable(ir->operands[0]->type, "mod_x",
    #####:    #####:  308:                                         ir_var_temporary);
    #####:    #####:  309:   ir_variable *y = new(ir) ir_variable(ir->operands[1]->type, "mod_y",
    #####:    #####:  310:                                         ir_var_temporary);
    #####:    #####:  311:   this->base_ir->insert_before(x);
    #####:    #####:  312:   this->base_ir->insert_before(y);
        -:        -:  313:
        -:        -:  314:   ir_assignment *const assign_x =
    #####:    #####:  315:      new(ir) ir_assignment(new(ir) ir_dereference_variable(x),
    #####:    #####:  316:                            ir->operands[0], NULL);
        -:        -:  317:   ir_assignment *const assign_y =
    #####:    #####:  318:      new(ir) ir_assignment(new(ir) ir_dereference_variable(y),
    #####:    #####:  319:                            ir->operands[1], NULL);
        -:        -:  320:
    #####:    #####:  321:   this->base_ir->insert_before(assign_x);
    #####:    #####:  322:   this->base_ir->insert_before(assign_y);
        -:        -:  323:
        -:        -:  324:   ir_expression *const div_expr =
        -:        -:  325:      new(ir) ir_expression(ir_binop_div, x->type,
    #####:    #####:  326:                            new(ir) ir_dereference_variable(x),
    #####:    #####:  327:                            new(ir) ir_dereference_variable(y));
        -:        -:  328:
        -:        -:  329:   /* Don't generate new IR that would need to be lowered in an additional
        -:        -:  330:    * pass.
        -:        -:  331:    */
    #####:    #####:  332:   if ((lowering(FDIV_TO_MUL_RCP) && ir->type->is_float()) ||
    #####:    #####:  333:       (lowering(DDIV_TO_MUL_RCP) && ir->type->is_double()))
    #####:    #####:  334:      div_to_mul_rcp(div_expr);
        -:        -:  335:
        -:        -:  336:   ir_expression *const floor_expr =
    #####:    #####:  337:      new(ir) ir_expression(ir_unop_floor, x->type, div_expr);
        -:        -:  338:
    #####:    #####:  339:   if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####:  340:      dfloor_to_dfrac(floor_expr);
        -:        -:  341:
        -:        -:  342:   ir_expression *const mul_expr =
        -:        -:  343:      new(ir) ir_expression(ir_binop_mul,
    #####:    #####:  344:                            new(ir) ir_dereference_variable(y),
    #####:    #####:  345:                            floor_expr);
        -:        -:  346:
    #####:    #####:  347:   ir->operation = ir_binop_sub;
    #####:    #####:  348:   ir->operands[0] = new(ir) ir_dereference_variable(x);
    #####:    #####:  349:   ir->operands[1] = mul_expr;
    #####:    #####:  350:   this->progress = true;
    #####:    #####:  351:}
        -:        -:  352:
        -:        -:  353:void
    #####:    #####:  354:lower_instructions_visitor::ldexp_to_arith(ir_expression *ir)
        -:        -:  355:{
        -:        -:  356:   /* Translates
        -:        -:  357:    *    ir_binop_ldexp x exp
        -:        -:  358:    * into
        -:        -:  359:    *
        -:        -:  360:    *    extracted_biased_exp = rshift(bitcast_f2i(abs(x)), exp_shift);
        -:        -:  361:    *    resulting_biased_exp = extracted_biased_exp + exp;
        -:        -:  362:    *
        -:        -:  363:    *    if (resulting_biased_exp < 1 || x == 0.0f) {
        -:        -:  364:    *       return copysign(0.0, x);
        -:        -:  365:    *    }
        -:        -:  366:    *
        -:        -:  367:    *    return bitcast_u2f((bitcast_f2u(x) & sign_mantissa_mask) |
        -:        -:  368:    *                       lshift(i2u(resulting_biased_exp), exp_shift));
        -:        -:  369:    *
        -:        -:  370:    * which we can't actually implement as such, since the GLSL IR doesn't
        -:        -:  371:    * have vectorized if-statements. We actually implement it without branches
        -:        -:  372:    * using conditional-select:
        -:        -:  373:    *
        -:        -:  374:    *    extracted_biased_exp = rshift(bitcast_f2i(abs(x)), exp_shift);
        -:        -:  375:    *    resulting_biased_exp = extracted_biased_exp + exp;
        -:        -:  376:    *
        -:        -:  377:    *    is_not_zero_or_underflow = logic_and(nequal(x, 0.0f),
        -:        -:  378:    *                                         gequal(resulting_biased_exp, 1);
        -:        -:  379:    *    x = csel(is_not_zero_or_underflow, x, copysign(0.0f, x));
        -:        -:  380:    *    resulting_biased_exp = csel(is_not_zero_or_underflow,
        -:        -:  381:    *                                resulting_biased_exp, 0);
        -:        -:  382:    *
        -:        -:  383:    *    return bitcast_u2f((bitcast_f2u(x) & sign_mantissa_mask) |
        -:        -:  384:    *                       lshift(i2u(resulting_biased_exp), exp_shift));
        -:        -:  385:    */
        -:        -:  386:
    #####:    #####:  387:   const unsigned vec_elem = ir->type->vector_elements;
        -:        -:  388:
        -:        -:  389:   /* Types */
    #####:    #####:  390:   const glsl_type *ivec = glsl_type::get_instance(GLSL_TYPE_INT, vec_elem, 1);
    #####:    #####:  391:   const glsl_type *bvec = glsl_type::get_instance(GLSL_TYPE_BOOL, vec_elem, 1);
        -:        -:  392:
        -:        -:  393:   /* Constants */
    #####:    #####:  394:   ir_constant *zeroi = ir_constant::zero(ir, ivec);
        -:        -:  395:
    #####:    #####:  396:   ir_constant *sign_mask = new(ir) ir_constant(0x80000000u, vec_elem);
        -:        -:  397:
    #####:    #####:  398:   ir_constant *exp_shift = new(ir) ir_constant(23, vec_elem);
        -:        -:  399:
        -:        -:  400:   /* Temporary variables */
    #####:    #####:  401:   ir_variable *x = new(ir) ir_variable(ir->type, "x", ir_var_temporary);
    #####:    #####:  402:   ir_variable *exp = new(ir) ir_variable(ivec, "exp", ir_var_temporary);
        -:        -:  403:
        -:        -:  404:   ir_variable *zero_sign_x = new(ir) ir_variable(ir->type, "zero_sign_x",
    #####:    #####:  405:                                                  ir_var_temporary);
        -:        -:  406:
        -:        -:  407:   ir_variable *extracted_biased_exp =
    #####:    #####:  408:      new(ir) ir_variable(ivec, "extracted_biased_exp", ir_var_temporary);
        -:        -:  409:   ir_variable *resulting_biased_exp =
    #####:    #####:  410:      new(ir) ir_variable(ivec, "resulting_biased_exp", ir_var_temporary);
        -:        -:  411:
        -:        -:  412:   ir_variable *is_not_zero_or_underflow =
    #####:    #####:  413:      new(ir) ir_variable(bvec, "is_not_zero_or_underflow", ir_var_temporary);
        -:        -:  414:
    #####:    #####:  415:   ir_instruction &i = *base_ir;
        -:        -:  416:
        -:        -:  417:   /* Copy <x> and <exp> arguments. */
    #####:    #####:  418:   i.insert_before(x);
    #####:    #####:  419:   i.insert_before(assign(x, ir->operands[0]));
    #####:    #####:  420:   i.insert_before(exp);
    #####:    #####:  421:   i.insert_before(assign(exp, ir->operands[1]));
        -:        -:  422:
        -:        -:  423:   /* Extract the biased exponent from <x>. */
    #####:    #####:  424:   i.insert_before(extracted_biased_exp);
    #####:    #####:  425:   i.insert_before(assign(extracted_biased_exp,
    #####:    #####:  426:                          rshift(bitcast_f2i(abs(x)), exp_shift)));
        -:        -:  427:
    #####:    #####:  428:   i.insert_before(resulting_biased_exp);
    #####:    #####:  429:   i.insert_before(assign(resulting_biased_exp,
    #####:    #####:  430:                          add(extracted_biased_exp, exp)));
        -:        -:  431:
        -:        -:  432:   /* Test if result is ±0.0, subnormal, or underflow by checking if the
        -:        -:  433:    * resulting biased exponent would be less than 0x1. If so, the result is
        -:        -:  434:    * 0.0 with the sign of x. (Actually, invert the conditions so that
        -:        -:  435:    * immediate values are the second arguments, which is better for i965)
        -:        -:  436:    */
    #####:    #####:  437:   i.insert_before(zero_sign_x);
    #####:    #####:  438:   i.insert_before(assign(zero_sign_x,
    #####:    #####:  439:                          bitcast_u2f(bit_and(bitcast_f2u(x), sign_mask))));
        -:        -:  440:
    #####:    #####:  441:   i.insert_before(is_not_zero_or_underflow);
    #####:    #####:  442:   i.insert_before(assign(is_not_zero_or_underflow,
    #####:    #####:  443:                          logic_and(nequal(x, new(ir) ir_constant(0.0f, vec_elem)),
    #####:    #####:  444:                                    gequal(resulting_biased_exp,
    #####:    #####:  445:                                           new(ir) ir_constant(0x1, vec_elem)))));
    #####:    #####:  446:   i.insert_before(assign(x, csel(is_not_zero_or_underflow,
    #####:    #####:  447:                                  x, zero_sign_x)));
    #####:    #####:  448:   i.insert_before(assign(resulting_biased_exp,
    #####:    #####:  449:                          csel(is_not_zero_or_underflow,
    #####:    #####:  450:                               resulting_biased_exp, zeroi)));
        -:        -:  451:
        -:        -:  452:   /* We could test for overflows by checking if the resulting biased exponent
        -:        -:  453:    * would be greater than 0xFE. Turns out we don't need to because the GLSL
        -:        -:  454:    * spec says:
        -:        -:  455:    *
        -:        -:  456:    *    "If this product is too large to be represented in the
        -:        -:  457:    *     floating-point type, the result is undefined."
        -:        -:  458:    */
        -:        -:  459:
    #####:    #####:  460:   ir_constant *exp_shift_clone = exp_shift->clone(ir, NULL);
        -:        -:  461:
        -:        -:  462:   /* Don't generate new IR that would need to be lowered in an additional
        -:        -:  463:    * pass.
        -:        -:  464:    */
    #####:    #####:  465:   if (!lowering(INSERT_TO_SHIFTS)) {
    #####:    #####:  466:      ir_constant *exp_width = new(ir) ir_constant(8, vec_elem);
    #####:    #####:  467:      ir->operation = ir_unop_bitcast_i2f;
    #####:    #####:  468:      ir->operands[0] = bitfield_insert(bitcast_f2i(x), resulting_biased_exp,
    #####:    #####:  469:                                        exp_shift_clone, exp_width);
    #####:    #####:  470:      ir->operands[1] = NULL;
        -:        -:  471:   } else {
    #####:    #####:  472:      ir_constant *sign_mantissa_mask = new(ir) ir_constant(0x807fffffu, vec_elem);
    #####:    #####:  473:      ir->operation = ir_unop_bitcast_u2f;
    #####:    #####:  474:      ir->operands[0] = bit_or(bit_and(bitcast_f2u(x), sign_mantissa_mask),
    #####:    #####:  475:                               lshift(i2u(resulting_biased_exp), exp_shift_clone));
        -:        -:  476:   }
        -:        -:  477:
    #####:    #####:  478:   this->progress = true;
    #####:    #####:  479:}
        -:        -:  480:
        -:        -:  481:void
    #####:    #####:  482:lower_instructions_visitor::dldexp_to_arith(ir_expression *ir)
        -:        -:  483:{
        -:        -:  484:   /* See ldexp_to_arith for structure. Uses frexp_exp to extract the exponent
        -:        -:  485:    * from the significand.
        -:        -:  486:    */
        -:        -:  487:
    #####:    #####:  488:   const unsigned vec_elem = ir->type->vector_elements;
        -:        -:  489:
        -:        -:  490:   /* Types */
    #####:    #####:  491:   const glsl_type *ivec = glsl_type::get_instance(GLSL_TYPE_INT, vec_elem, 1);
    #####:    #####:  492:   const glsl_type *bvec = glsl_type::get_instance(GLSL_TYPE_BOOL, vec_elem, 1);
        -:        -:  493:
        -:        -:  494:   /* Constants */
    #####:    #####:  495:   ir_constant *zeroi = ir_constant::zero(ir, ivec);
        -:        -:  496:
    #####:    #####:  497:   ir_constant *sign_mask = new(ir) ir_constant(0x80000000u);
        -:        -:  498:
    #####:    #####:  499:   ir_constant *exp_shift = new(ir) ir_constant(20u);
    #####:    #####:  500:   ir_constant *exp_width = new(ir) ir_constant(11u);
    #####:    #####:  501:   ir_constant *exp_bias = new(ir) ir_constant(1022, vec_elem);
        -:        -:  502:
        -:        -:  503:   /* Temporary variables */
    #####:    #####:  504:   ir_variable *x = new(ir) ir_variable(ir->type, "x", ir_var_temporary);
    #####:    #####:  505:   ir_variable *exp = new(ir) ir_variable(ivec, "exp", ir_var_temporary);
        -:        -:  506:
        -:        -:  507:   ir_variable *zero_sign_x = new(ir) ir_variable(ir->type, "zero_sign_x",
    #####:    #####:  508:                                                  ir_var_temporary);
        -:        -:  509:
        -:        -:  510:   ir_variable *extracted_biased_exp =
    #####:    #####:  511:      new(ir) ir_variable(ivec, "extracted_biased_exp", ir_var_temporary);
        -:        -:  512:   ir_variable *resulting_biased_exp =
    #####:    #####:  513:      new(ir) ir_variable(ivec, "resulting_biased_exp", ir_var_temporary);
        -:        -:  514:
        -:        -:  515:   ir_variable *is_not_zero_or_underflow =
    #####:    #####:  516:      new(ir) ir_variable(bvec, "is_not_zero_or_underflow", ir_var_temporary);
        -:        -:  517:
    #####:    #####:  518:   ir_instruction &i = *base_ir;
        -:        -:  519:
        -:        -:  520:   /* Copy <x> and <exp> arguments. */
    #####:    #####:  521:   i.insert_before(x);
    #####:    #####:  522:   i.insert_before(assign(x, ir->operands[0]));
    #####:    #####:  523:   i.insert_before(exp);
    #####:    #####:  524:   i.insert_before(assign(exp, ir->operands[1]));
        -:        -:  525:
    #####:    #####:  526:   ir_expression *frexp_exp = expr(ir_unop_frexp_exp, x);
    #####:    #####:  527:   if (lowering(DFREXP_DLDEXP_TO_ARITH))
    #####:    #####:  528:      dfrexp_exp_to_arith(frexp_exp);
        -:        -:  529:
        -:        -:  530:   /* Extract the biased exponent from <x>. */
    #####:    #####:  531:   i.insert_before(extracted_biased_exp);
    #####:    #####:  532:   i.insert_before(assign(extracted_biased_exp, add(frexp_exp, exp_bias)));
        -:        -:  533:
    #####:    #####:  534:   i.insert_before(resulting_biased_exp);
    #####:    #####:  535:   i.insert_before(assign(resulting_biased_exp,
    #####:    #####:  536:                          add(extracted_biased_exp, exp)));
        -:        -:  537:
        -:        -:  538:   /* Test if result is ±0.0, subnormal, or underflow by checking if the
        -:        -:  539:    * resulting biased exponent would be less than 0x1. If so, the result is
        -:        -:  540:    * 0.0 with the sign of x. (Actually, invert the conditions so that
        -:        -:  541:    * immediate values are the second arguments, which is better for i965)
        -:        -:  542:    * TODO: Implement in a vector fashion.
        -:        -:  543:    */
    #####:    #####:  544:   i.insert_before(zero_sign_x);
    #####:    #####:  545:   for (unsigned elem = 0; elem < vec_elem; elem++) {
        -:        -:  546:      ir_variable *unpacked =
    #####:    #####:  547:         new(ir) ir_variable(glsl_type::uvec2_type, "unpacked", ir_var_temporary);
    #####:    #####:  548:      i.insert_before(unpacked);
    #####:    #####:  549:      i.insert_before(
    #####:    #####:  550:            assign(unpacked,
    #####:    #####:  551:                   expr(ir_unop_unpack_double_2x32, swizzle(x, elem, 1))));
    #####:    #####:  552:      i.insert_before(assign(unpacked, bit_and(swizzle_y(unpacked), sign_mask->clone(ir, NULL)),
    #####:    #####:  553:                             WRITEMASK_Y));
    #####:    #####:  554:      i.insert_before(assign(unpacked, ir_constant::zero(ir, glsl_type::uint_type), WRITEMASK_X));
    #####:    #####:  555:      i.insert_before(assign(zero_sign_x,
    #####:    #####:  556:                             expr(ir_unop_pack_double_2x32, unpacked),
    #####:    #####:  557:                             1 << elem));
        -:        -:  558:   }
    #####:    #####:  559:   i.insert_before(is_not_zero_or_underflow);
    #####:    #####:  560:   i.insert_before(assign(is_not_zero_or_underflow,
    #####:    #####:  561:                          gequal(resulting_biased_exp,
    #####:    #####:  562:                                  new(ir) ir_constant(0x1, vec_elem))));
    #####:    #####:  563:   i.insert_before(assign(x, csel(is_not_zero_or_underflow,
    #####:    #####:  564:                                  x, zero_sign_x)));
    #####:    #####:  565:   i.insert_before(assign(resulting_biased_exp,
    #####:    #####:  566:                          csel(is_not_zero_or_underflow,
    #####:    #####:  567:                               resulting_biased_exp, zeroi)));
        -:        -:  568:
        -:        -:  569:   /* We could test for overflows by checking if the resulting biased exponent
        -:        -:  570:    * would be greater than 0xFE. Turns out we don't need to because the GLSL
        -:        -:  571:    * spec says:
        -:        -:  572:    *
        -:        -:  573:    *    "If this product is too large to be represented in the
        -:        -:  574:    *     floating-point type, the result is undefined."
        -:        -:  575:    */
        -:        -:  576:
    #####:    #####:  577:   ir_rvalue *results[4] = {NULL};
    #####:    #####:  578:   for (unsigned elem = 0; elem < vec_elem; elem++) {
        -:        -:  579:      ir_variable *unpacked =
    #####:    #####:  580:         new(ir) ir_variable(glsl_type::uvec2_type, "unpacked", ir_var_temporary);
    #####:    #####:  581:      i.insert_before(unpacked);
    #####:    #####:  582:      i.insert_before(
    #####:    #####:  583:            assign(unpacked,
    #####:    #####:  584:                   expr(ir_unop_unpack_double_2x32, swizzle(x, elem, 1))));
        -:        -:  585:
    #####:    #####:  586:      ir_expression *bfi = bitfield_insert(
    #####:    #####:  587:            swizzle_y(unpacked),
    #####:    #####:  588:            i2u(swizzle(resulting_biased_exp, elem, 1)),
    #####:    #####:  589:            exp_shift->clone(ir, NULL),
    #####:    #####:  590:            exp_width->clone(ir, NULL));
        -:        -:  591:
    #####:    #####:  592:      i.insert_before(assign(unpacked, bfi, WRITEMASK_Y));
        -:        -:  593:
    #####:    #####:  594:      results[elem] = expr(ir_unop_pack_double_2x32, unpacked);
        -:        -:  595:   }
        -:        -:  596:
    #####:    #####:  597:   ir->operation = ir_quadop_vector;
    #####:    #####:  598:   ir->operands[0] = results[0];
    #####:    #####:  599:   ir->operands[1] = results[1];
    #####:    #####:  600:   ir->operands[2] = results[2];
    #####:    #####:  601:   ir->operands[3] = results[3];
        -:        -:  602:
        -:        -:  603:   /* Don't generate new IR that would need to be lowered in an additional
        -:        -:  604:    * pass.
        -:        -:  605:    */
        -:        -:  606:
    #####:    #####:  607:   this->progress = true;
    #####:    #####:  608:}
        -:        -:  609:
        -:        -:  610:void
    #####:    #####:  611:lower_instructions_visitor::dfrexp_sig_to_arith(ir_expression *ir)
        -:        -:  612:{
    #####:    #####:  613:   const unsigned vec_elem = ir->type->vector_elements;
    #####:    #####:  614:   const glsl_type *bvec = glsl_type::get_instance(GLSL_TYPE_BOOL, vec_elem, 1);
        -:        -:  615:
        -:        -:  616:   /* Double-precision floating-point values are stored as
        -:        -:  617:    *   1 sign bit;
        -:        -:  618:    *   11 exponent bits;
        -:        -:  619:    *   52 mantissa bits.
        -:        -:  620:    *
        -:        -:  621:    * We're just extracting the significand here, so we only need to modify
        -:        -:  622:    * the upper 32-bit uint. Unfortunately we must extract each double
        -:        -:  623:    * independently as there is no vector version of unpackDouble.
        -:        -:  624:    */
        -:        -:  625:
    #####:    #####:  626:   ir_instruction &i = *base_ir;
        -:        -:  627:
        -:        -:  628:   ir_variable *is_not_zero =
    #####:    #####:  629:      new(ir) ir_variable(bvec, "is_not_zero", ir_var_temporary);
    #####:    #####:  630:   ir_rvalue *results[4] = {NULL};
        -:        -:  631:
    #####:    #####:  632:   ir_constant *dzero = new(ir) ir_constant(0.0, vec_elem);
    #####:    #####:  633:   i.insert_before(is_not_zero);
    #####:    #####:  634:   i.insert_before(
    #####:    #####:  635:         assign(is_not_zero,
    #####:    #####:  636:                nequal(abs(ir->operands[0]->clone(ir, NULL)), dzero)));
        -:        -:  637:
        -:        -:  638:   /* TODO: Remake this as more vector-friendly when int64 support is
        -:        -:  639:    * available.
        -:        -:  640:    */
    #####:    #####:  641:   for (unsigned elem = 0; elem < vec_elem; elem++) {
    #####:    #####:  642:      ir_constant *zero = new(ir) ir_constant(0u, 1);
    #####:    #####:  643:      ir_constant *sign_mantissa_mask = new(ir) ir_constant(0x800fffffu, 1);
        -:        -:  644:
        -:        -:  645:      /* Exponent of double floating-point values in the range [0.5, 1.0). */
    #####:    #####:  646:      ir_constant *exponent_value = new(ir) ir_constant(0x3fe00000u, 1);
        -:        -:  647:
        -:        -:  648:      ir_variable *bits =
    #####:    #####:  649:         new(ir) ir_variable(glsl_type::uint_type, "bits", ir_var_temporary);
        -:        -:  650:      ir_variable *unpacked =
    #####:    #####:  651:         new(ir) ir_variable(glsl_type::uvec2_type, "unpacked", ir_var_temporary);
        -:        -:  652:
    #####:    #####:  653:      ir_rvalue *x = swizzle(ir->operands[0]->clone(ir, NULL), elem, 1);
        -:        -:  654:
    #####:    #####:  655:      i.insert_before(bits);
    #####:    #####:  656:      i.insert_before(unpacked);
    #####:    #####:  657:      i.insert_before(assign(unpacked, expr(ir_unop_unpack_double_2x32, x)));
        -:        -:  658:
        -:        -:  659:      /* Manipulate the high uint to remove the exponent and replace it with
        -:        -:  660:       * either the default exponent or zero.
        -:        -:  661:       */
    #####:    #####:  662:      i.insert_before(assign(bits, swizzle_y(unpacked)));
    #####:    #####:  663:      i.insert_before(assign(bits, bit_and(bits, sign_mantissa_mask)));
    #####:    #####:  664:      i.insert_before(assign(bits, bit_or(bits,
    #####:    #####:  665:                                          csel(swizzle(is_not_zero, elem, 1),
        -:        -:  666:                                               exponent_value,
    #####:    #####:  667:                                               zero))));
    #####:    #####:  668:      i.insert_before(assign(unpacked, bits, WRITEMASK_Y));
    #####:    #####:  669:      results[elem] = expr(ir_unop_pack_double_2x32, unpacked);
        -:        -:  670:   }
        -:        -:  671:
        -:        -:  672:   /* Put the dvec back together */
    #####:    #####:  673:   ir->operation = ir_quadop_vector;
    #####:    #####:  674:   ir->operands[0] = results[0];
    #####:    #####:  675:   ir->operands[1] = results[1];
    #####:    #####:  676:   ir->operands[2] = results[2];
    #####:    #####:  677:   ir->operands[3] = results[3];
        -:        -:  678:
    #####:    #####:  679:   this->progress = true;
    #####:    #####:  680:}
        -:        -:  681:
        -:        -:  682:void
    #####:    #####:  683:lower_instructions_visitor::dfrexp_exp_to_arith(ir_expression *ir)
        -:        -:  684:{
    #####:    #####:  685:   const unsigned vec_elem = ir->type->vector_elements;
    #####:    #####:  686:   const glsl_type *bvec = glsl_type::get_instance(GLSL_TYPE_BOOL, vec_elem, 1);
    #####:    #####:  687:   const glsl_type *uvec = glsl_type::get_instance(GLSL_TYPE_UINT, vec_elem, 1);
        -:        -:  688:
        -:        -:  689:   /* Double-precision floating-point values are stored as
        -:        -:  690:    *   1 sign bit;
        -:        -:  691:    *   11 exponent bits;
        -:        -:  692:    *   52 mantissa bits.
        -:        -:  693:    *
        -:        -:  694:    * We're just extracting the exponent here, so we only care about the upper
        -:        -:  695:    * 32-bit uint.
        -:        -:  696:    */
        -:        -:  697:
    #####:    #####:  698:   ir_instruction &i = *base_ir;
        -:        -:  699:
        -:        -:  700:   ir_variable *is_not_zero =
    #####:    #####:  701:      new(ir) ir_variable(bvec, "is_not_zero", ir_var_temporary);
        -:        -:  702:   ir_variable *high_words =
    #####:    #####:  703:      new(ir) ir_variable(uvec, "high_words", ir_var_temporary);
    #####:    #####:  704:   ir_constant *dzero = new(ir) ir_constant(0.0, vec_elem);
    #####:    #####:  705:   ir_constant *izero = new(ir) ir_constant(0, vec_elem);
        -:        -:  706:
    #####:    #####:  707:   ir_rvalue *absval = abs(ir->operands[0]);
        -:        -:  708:
    #####:    #####:  709:   i.insert_before(is_not_zero);
    #####:    #####:  710:   i.insert_before(high_words);
    #####:    #####:  711:   i.insert_before(assign(is_not_zero, nequal(absval->clone(ir, NULL), dzero)));
        -:        -:  712:
        -:        -:  713:   /* Extract all of the upper uints. */
    #####:    #####:  714:   for (unsigned elem = 0; elem < vec_elem; elem++) {
    #####:    #####:  715:      ir_rvalue *x = swizzle(absval->clone(ir, NULL), elem, 1);
        -:        -:  716:
    #####:    #####:  717:      i.insert_before(assign(high_words,
    #####:    #####:  718:                             swizzle_y(expr(ir_unop_unpack_double_2x32, x)),
    #####:    #####:  719:                             1 << elem));
        -:        -:  720:
        -:        -:  721:   }
    #####:    #####:  722:   ir_constant *exponent_shift = new(ir) ir_constant(20, vec_elem);
    #####:    #####:  723:   ir_constant *exponent_bias = new(ir) ir_constant(-1022, vec_elem);
        -:        -:  724:
        -:        -:  725:   /* For non-zero inputs, shift the exponent down and apply bias. */
    #####:    #####:  726:   ir->operation = ir_triop_csel;
    #####:    #####:  727:   ir->operands[0] = new(ir) ir_dereference_variable(is_not_zero);
    #####:    #####:  728:   ir->operands[1] = add(exponent_bias, u2i(rshift(high_words, exponent_shift)));
    #####:    #####:  729:   ir->operands[2] = izero;
        -:        -:  730:
    #####:    #####:  731:   this->progress = true;
    #####:    #####:  732:}
        -:        -:  733:
        -:        -:  734:void
    #####:    #####:  735:lower_instructions_visitor::carry_to_arith(ir_expression *ir)
        -:        -:  736:{
        -:        -:  737:   /* Translates
        -:        -:  738:    *   ir_binop_carry x y
        -:        -:  739:    * into
        -:        -:  740:    *   sum = ir_binop_add x y
        -:        -:  741:    *   bcarry = ir_binop_less sum x
        -:        -:  742:    *   carry = ir_unop_b2i bcarry
        -:        -:  743:    */
        -:        -:  744:
    #####:    #####:  745:   ir_rvalue *x_clone = ir->operands[0]->clone(ir, NULL);
    #####:    #####:  746:   ir->operation = ir_unop_i2u;
    #####:    #####:  747:   ir->operands[0] = b2i(less(add(ir->operands[0], ir->operands[1]), x_clone));
    #####:    #####:  748:   ir->operands[1] = NULL;
        -:        -:  749:
    #####:    #####:  750:   this->progress = true;
    #####:    #####:  751:}
        -:        -:  752:
        -:        -:  753:void
    #####:    #####:  754:lower_instructions_visitor::borrow_to_arith(ir_expression *ir)
        -:        -:  755:{
        -:        -:  756:   /* Translates
        -:        -:  757:    *   ir_binop_borrow x y
        -:        -:  758:    * into
        -:        -:  759:    *   bcarry = ir_binop_less x y
        -:        -:  760:    *   carry = ir_unop_b2i bcarry
        -:        -:  761:    */
        -:        -:  762:
    #####:    #####:  763:   ir->operation = ir_unop_i2u;
    #####:    #####:  764:   ir->operands[0] = b2i(less(ir->operands[0], ir->operands[1]));
    #####:    #####:  765:   ir->operands[1] = NULL;
        -:        -:  766:
    #####:    #####:  767:   this->progress = true;
    #####:    #####:  768:}
        -:        -:  769:
        -:        -:  770:void
    #####:    #####:  771:lower_instructions_visitor::sat_to_clamp(ir_expression *ir)
        -:        -:  772:{
        -:        -:  773:   /* Translates
        -:        -:  774:    *   ir_unop_saturate x
        -:        -:  775:    * into
        -:        -:  776:    *   ir_binop_min (ir_binop_max(x, 0.0), 1.0)
        -:        -:  777:    */
        -:        -:  778:
    #####:    #####:  779:   ir->operation = ir_binop_min;
    #####:    #####:  780:   ir->operands[0] = new(ir) ir_expression(ir_binop_max, ir->operands[0]->type,
        -:        -:  781:                                           ir->operands[0],
    #####:    #####:  782:                                           new(ir) ir_constant(0.0f));
    #####:    #####:  783:   ir->operands[1] = new(ir) ir_constant(1.0f);
        -:        -:  784:
    #####:    #####:  785:   this->progress = true;
    #####:    #####:  786:}
        -:        -:  787:
        -:        -:  788:void
    #####:    #####:  789:lower_instructions_visitor::double_dot_to_fma(ir_expression *ir)
        -:        -:  790:{
    #####:    #####:  791:   ir_variable *temp = new(ir) ir_variable(ir->operands[0]->type->get_base_type(), "dot_res",
    #####:    #####:  792:					   ir_var_temporary);
    #####:    #####:  793:   this->base_ir->insert_before(temp);
        -:        -:  794:
    #####:    #####:  795:   int nc = ir->operands[0]->type->components();
    #####:    #####:  796:   for (int i = nc - 1; i >= 1; i--) {
        -:        -:  797:      ir_assignment *assig;
    #####:    #####:  798:      if (i == (nc - 1)) {
    #####:    #####:  799:         assig = assign(temp, mul(swizzle(ir->operands[0]->clone(ir, NULL), i, 1),
    #####:    #####:  800:                                  swizzle(ir->operands[1]->clone(ir, NULL), i, 1)));
        -:        -:  801:      } else {
    #####:    #####:  802:         assig = assign(temp, fma(swizzle(ir->operands[0]->clone(ir, NULL), i, 1),
    #####:    #####:  803:                                  swizzle(ir->operands[1]->clone(ir, NULL), i, 1),
    #####:    #####:  804:                                  temp));
        -:        -:  805:      }
    #####:    #####:  806:      this->base_ir->insert_before(assig);
        -:        -:  807:   }
        -:        -:  808:
    #####:    #####:  809:   ir->operation = ir_triop_fma;
    #####:    #####:  810:   ir->operands[0] = swizzle(ir->operands[0], 0, 1);
    #####:    #####:  811:   ir->operands[1] = swizzle(ir->operands[1], 0, 1);
    #####:    #####:  812:   ir->operands[2] = new(ir) ir_dereference_variable(temp);
        -:        -:  813:
    #####:    #####:  814:   this->progress = true;
        -:        -:  815:
    #####:    #####:  816:}
        -:        -:  817:
        -:        -:  818:void
    #####:    #####:  819:lower_instructions_visitor::double_lrp(ir_expression *ir)
        -:        -:  820:{
        -:        -:  821:   int swizval;
    #####:    #####:  822:   ir_rvalue *op0 = ir->operands[0], *op2 = ir->operands[2];
    #####:    #####:  823:   ir_constant *one = new(ir) ir_constant(1.0, op2->type->vector_elements);
        -:        -:  824:
    #####:    #####:  825:   switch (op2->type->vector_elements) {
        -:        -:  826:   case 1:
    #####:    #####:  827:      swizval = SWIZZLE_XXXX;
    #####:    #####:  828:      break;
        -:        -:  829:   default:
    #####:    #####:  830:      assert(op0->type->vector_elements == op2->type->vector_elements);
    #####:    #####:  831:      swizval = SWIZZLE_XYZW;
    #####:    #####:  832:      break;
        -:        -:  833:   }
        -:        -:  834:
    #####:    #####:  835:   ir->operation = ir_triop_fma;
    #####:    #####:  836:   ir->operands[0] = swizzle(op2, swizval, op0->type->vector_elements);
    #####:    #####:  837:   ir->operands[2] = mul(sub(one, op2->clone(ir, NULL)), op0);
        -:        -:  838:
    #####:    #####:  839:   this->progress = true;
    #####:    #####:  840:}
        -:        -:  841:
        -:        -:  842:void
    #####:    #####:  843:lower_instructions_visitor::dceil_to_dfrac(ir_expression *ir)
        -:        -:  844:{
        -:        -:  845:   /*
        -:        -:  846:    * frtemp = frac(x);
        -:        -:  847:    * temp = sub(x, frtemp);
        -:        -:  848:    * result = temp + ((frtemp != 0.0) ? 1.0 : 0.0);
        -:        -:  849:    */
    #####:    #####:  850:   ir_instruction &i = *base_ir;
    #####:    #####:  851:   ir_constant *zero = new(ir) ir_constant(0.0, ir->operands[0]->type->vector_elements);
    #####:    #####:  852:   ir_constant *one = new(ir) ir_constant(1.0, ir->operands[0]->type->vector_elements);
    #####:    #####:  853:   ir_variable *frtemp = new(ir) ir_variable(ir->operands[0]->type, "frtemp",
    #####:    #####:  854:                                             ir_var_temporary);
        -:        -:  855:
    #####:    #####:  856:   i.insert_before(frtemp);
    #####:    #####:  857:   i.insert_before(assign(frtemp, fract(ir->operands[0])));
        -:        -:  858:
    #####:    #####:  859:   ir->operation = ir_binop_add;
    #####:    #####:  860:   ir->operands[0] = sub(ir->operands[0]->clone(ir, NULL), frtemp);
    #####:    #####:  861:   ir->operands[1] = csel(nequal(frtemp, zero), one, zero->clone(ir, NULL));
        -:        -:  862:
    #####:    #####:  863:   this->progress = true;
    #####:    #####:  864:}
        -:        -:  865:
        -:        -:  866:void
    #####:    #####:  867:lower_instructions_visitor::dfloor_to_dfrac(ir_expression *ir)
        -:        -:  868:{
        -:        -:  869:   /*
        -:        -:  870:    * frtemp = frac(x);
        -:        -:  871:    * result = sub(x, frtemp);
        -:        -:  872:    */
    #####:    #####:  873:   ir->operation = ir_binop_sub;
    #####:    #####:  874:   ir->operands[1] = fract(ir->operands[0]->clone(ir, NULL));
        -:        -:  875:
    #####:    #####:  876:   this->progress = true;
    #####:    #####:  877:}
        -:        -:  878:void
    #####:    #####:  879:lower_instructions_visitor::dround_even_to_dfrac(ir_expression *ir)
        -:        -:  880:{
        -:        -:  881:   /*
        -:        -:  882:    * insane but works
        -:        -:  883:    * temp = x + 0.5;
        -:        -:  884:    * frtemp = frac(temp);
        -:        -:  885:    * t2 = sub(temp, frtemp);
        -:        -:  886:    * if (frac(x) == 0.5)
        -:        -:  887:    *     result = frac(t2 * 0.5) == 0 ? t2 : t2 - 1;
        -:        -:  888:    *  else
        -:        -:  889:    *     result = t2;
        -:        -:  890:
        -:        -:  891:    */
    #####:    #####:  892:   ir_instruction &i = *base_ir;
    #####:    #####:  893:   ir_variable *frtemp = new(ir) ir_variable(ir->operands[0]->type, "frtemp",
    #####:    #####:  894:                                             ir_var_temporary);
    #####:    #####:  895:   ir_variable *temp = new(ir) ir_variable(ir->operands[0]->type, "temp",
    #####:    #####:  896:                                           ir_var_temporary);
    #####:    #####:  897:   ir_variable *t2 = new(ir) ir_variable(ir->operands[0]->type, "t2",
    #####:    #####:  898:                                           ir_var_temporary);
    #####:    #####:  899:   ir_constant *p5 = new(ir) ir_constant(0.5, ir->operands[0]->type->vector_elements);
    #####:    #####:  900:   ir_constant *one = new(ir) ir_constant(1.0, ir->operands[0]->type->vector_elements);
    #####:    #####:  901:   ir_constant *zero = new(ir) ir_constant(0.0, ir->operands[0]->type->vector_elements);
        -:        -:  902:
    #####:    #####:  903:   i.insert_before(temp);
    #####:    #####:  904:   i.insert_before(assign(temp, add(ir->operands[0], p5)));
        -:        -:  905:
    #####:    #####:  906:   i.insert_before(frtemp);
    #####:    #####:  907:   i.insert_before(assign(frtemp, fract(temp)));
        -:        -:  908:
    #####:    #####:  909:   i.insert_before(t2);
    #####:    #####:  910:   i.insert_before(assign(t2, sub(temp, frtemp)));
        -:        -:  911:
    #####:    #####:  912:   ir->operation = ir_triop_csel;
    #####:    #####:  913:   ir->operands[0] = equal(fract(ir->operands[0]->clone(ir, NULL)),
    #####:    #####:  914:                           p5->clone(ir, NULL));
    #####:    #####:  915:   ir->operands[1] = csel(equal(fract(mul(t2, p5->clone(ir, NULL))),
        -:        -:  916:                                zero),
        -:        -:  917:                          t2,
    #####:    #####:  918:                          sub(t2, one));
    #####:    #####:  919:   ir->operands[2] = new(ir) ir_dereference_variable(t2);
        -:        -:  920:
    #####:    #####:  921:   this->progress = true;
    #####:    #####:  922:}
        -:        -:  923:
        -:        -:  924:void
    #####:    #####:  925:lower_instructions_visitor::dtrunc_to_dfrac(ir_expression *ir)
        -:        -:  926:{
        -:        -:  927:   /*
        -:        -:  928:    * frtemp = frac(x);
        -:        -:  929:    * temp = sub(x, frtemp);
        -:        -:  930:    * result = x >= 0 ? temp : temp + (frtemp == 0.0) ? 0 : 1;
        -:        -:  931:    */
    #####:    #####:  932:   ir_rvalue *arg = ir->operands[0];
    #####:    #####:  933:   ir_instruction &i = *base_ir;
        -:        -:  934:
    #####:    #####:  935:   ir_constant *zero = new(ir) ir_constant(0.0, arg->type->vector_elements);
    #####:    #####:  936:   ir_constant *one = new(ir) ir_constant(1.0, arg->type->vector_elements);
        -:        -:  937:   ir_variable *frtemp = new(ir) ir_variable(arg->type, "frtemp",
    #####:    #####:  938:                                             ir_var_temporary);
    #####:    #####:  939:   ir_variable *temp = new(ir) ir_variable(ir->operands[0]->type, "temp",
    #####:    #####:  940:                                           ir_var_temporary);
        -:        -:  941:
    #####:    #####:  942:   i.insert_before(frtemp);
    #####:    #####:  943:   i.insert_before(assign(frtemp, fract(arg)));
    #####:    #####:  944:   i.insert_before(temp);
    #####:    #####:  945:   i.insert_before(assign(temp, sub(arg->clone(ir, NULL), frtemp)));
        -:        -:  946:
    #####:    #####:  947:   ir->operation = ir_triop_csel;
    #####:    #####:  948:   ir->operands[0] = gequal(arg->clone(ir, NULL), zero);
    #####:    #####:  949:   ir->operands[1] = new (ir) ir_dereference_variable(temp);
    #####:    #####:  950:   ir->operands[2] = add(temp,
    #####:    #####:  951:                         csel(equal(frtemp, zero->clone(ir, NULL)),
    #####:    #####:  952:                              zero->clone(ir, NULL),
    #####:    #####:  953:                              one));
        -:        -:  954:
    #####:    #####:  955:   this->progress = true;
    #####:    #####:  956:}
        -:        -:  957:
        -:        -:  958:void
    #####:    #####:  959:lower_instructions_visitor::dsign_to_csel(ir_expression *ir)
        -:        -:  960:{
        -:        -:  961:   /*
        -:        -:  962:    * temp = x > 0.0 ? 1.0 : 0.0;
        -:        -:  963:    * result = x < 0.0 ? -1.0 : temp;
        -:        -:  964:    */
    #####:    #####:  965:   ir_rvalue *arg = ir->operands[0];
    #####:    #####:  966:   ir_constant *zero = new(ir) ir_constant(0.0, arg->type->vector_elements);
    #####:    #####:  967:   ir_constant *one = new(ir) ir_constant(1.0, arg->type->vector_elements);
    #####:    #####:  968:   ir_constant *neg_one = new(ir) ir_constant(-1.0, arg->type->vector_elements);
        -:        -:  969:
    #####:    #####:  970:   ir->operation = ir_triop_csel;
    #####:    #####:  971:   ir->operands[0] = less(arg->clone(ir, NULL),
    #####:    #####:  972:                          zero->clone(ir, NULL));
    #####:    #####:  973:   ir->operands[1] = neg_one;
    #####:    #####:  974:   ir->operands[2] = csel(greater(arg, zero),
        -:        -:  975:                          one,
    #####:    #####:  976:                          zero->clone(ir, NULL));
        -:        -:  977:
    #####:    #####:  978:   this->progress = true;
    #####:    #####:  979:}
        -:        -:  980:
        -:        -:  981:void
    #####:    #####:  982:lower_instructions_visitor::bit_count_to_math(ir_expression *ir)
        -:        -:  983:{
        -:        -:  984:   /* For more details, see:
        -:        -:  985:    *
        -:        -:  986:    * http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetPaallel
        -:        -:  987:    */
    #####:    #####:  988:   const unsigned elements = ir->operands[0]->type->vector_elements;
        -:        -:  989:   ir_variable *temp = new(ir) ir_variable(glsl_type::uvec(elements), "temp",
    #####:    #####:  990:                                           ir_var_temporary);
    #####:    #####:  991:   ir_constant *c55555555 = new(ir) ir_constant(0x55555555u);
    #####:    #####:  992:   ir_constant *c33333333 = new(ir) ir_constant(0x33333333u);
    #####:    #####:  993:   ir_constant *c0F0F0F0F = new(ir) ir_constant(0x0F0F0F0Fu);
    #####:    #####:  994:   ir_constant *c01010101 = new(ir) ir_constant(0x01010101u);
    #####:    #####:  995:   ir_constant *c1 = new(ir) ir_constant(1u);
    #####:    #####:  996:   ir_constant *c2 = new(ir) ir_constant(2u);
    #####:    #####:  997:   ir_constant *c4 = new(ir) ir_constant(4u);
    #####:    #####:  998:   ir_constant *c24 = new(ir) ir_constant(24u);
        -:        -:  999:
    #####:    #####: 1000:   base_ir->insert_before(temp);
        -:        -: 1001:
    #####:    #####: 1002:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
    #####:    #####: 1003:      base_ir->insert_before(assign(temp, ir->operands[0]));
        -:        -: 1004:   } else {
    #####:    #####: 1005:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####: 1006:      base_ir->insert_before(assign(temp, i2u(ir->operands[0])));
        -:        -: 1007:   }
        -:        -: 1008:
        -:        -: 1009:   /* temp = temp - ((temp >> 1) & 0x55555555u); */
    #####:    #####: 1010:   base_ir->insert_before(assign(temp, sub(temp, bit_and(rshift(temp, c1),
    #####:    #####: 1011:                                                         c55555555))));
        -:        -: 1012:
        -:        -: 1013:   /* temp = (temp & 0x33333333u) + ((temp >> 2) & 0x33333333u); */
    #####:    #####: 1014:   base_ir->insert_before(assign(temp, add(bit_and(temp, c33333333),
    #####:    #####: 1015:                                           bit_and(rshift(temp, c2),
    #####:    #####: 1016:                                                   c33333333->clone(ir, NULL)))));
        -:        -: 1017:
        -:        -: 1018:   /* int(((temp + (temp >> 4) & 0xF0F0F0Fu) * 0x1010101u) >> 24); */
    #####:    #####: 1019:   ir->operation = ir_unop_u2i;
    #####:    #####: 1020:   ir->operands[0] = rshift(mul(bit_and(add(temp, rshift(temp, c4)), c0F0F0F0F),
        -:        -: 1021:                                c01010101),
    #####:    #####: 1022:                            c24);
        -:        -: 1023:
    #####:    #####: 1024:   this->progress = true;
    #####:    #####: 1025:}
        -:        -: 1026:
        -:        -: 1027:void
    #####:    #####: 1028:lower_instructions_visitor::extract_to_shifts(ir_expression *ir)
        -:        -: 1029:{
        -:        -: 1030:   ir_variable *bits =
    #####:    #####: 1031:      new(ir) ir_variable(ir->operands[0]->type, "bits", ir_var_temporary);
        -:        -: 1032:
    #####:    #####: 1033:   base_ir->insert_before(bits);
    #####:    #####: 1034:   base_ir->insert_before(assign(bits, ir->operands[2]));
        -:        -: 1035:
    #####:    #####: 1036:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
        -:        -: 1037:      ir_constant *c1 =
    #####:    #####: 1038:         new(ir) ir_constant(1u, ir->operands[0]->type->vector_elements);
        -:        -: 1039:      ir_constant *c32 =
    #####:    #####: 1040:         new(ir) ir_constant(32u, ir->operands[0]->type->vector_elements);
        -:        -: 1041:      ir_constant *cFFFFFFFF =
    #####:    #####: 1042:         new(ir) ir_constant(0xFFFFFFFFu, ir->operands[0]->type->vector_elements);
        -:        -: 1043:
        -:        -: 1044:      /* At least some hardware treats (x << y) as (x << (y%32)).  This means
        -:        -: 1045:       * we'd get a mask of 0 when bits is 32.  Special case it.
        -:        -: 1046:       *
        -:        -: 1047:       * mask = bits == 32 ? 0xffffffff : (1u << bits) - 1u;
        -:        -: 1048:       */
    #####:    #####: 1049:      ir_expression *mask = csel(equal(bits, c32),
        -:        -: 1050:                                 cFFFFFFFF,
    #####:    #####: 1051:                                 sub(lshift(c1, bits), c1->clone(ir, NULL)));
        -:        -: 1052:
        -:        -: 1053:      /* Section 8.8 (Integer Functions) of the GLSL 4.50 spec says:
        -:        -: 1054:       *
        -:        -: 1055:       *    If bits is zero, the result will be zero.
        -:        -: 1056:       *
        -:        -: 1057:       * Since (1 << 0) - 1 == 0, we don't need to bother with the conditional
        -:        -: 1058:       * select as in the signed integer case.
        -:        -: 1059:       *
        -:        -: 1060:       * (value >> offset) & mask;
        -:        -: 1061:       */
    #####:    #####: 1062:      ir->operation = ir_binop_bit_and;
    #####:    #####: 1063:      ir->operands[0] = rshift(ir->operands[0], ir->operands[1]);
    #####:    #####: 1064:      ir->operands[1] = mask;
    #####:    #####: 1065:      ir->operands[2] = NULL;
        -:        -: 1066:   } else {
        -:        -: 1067:      ir_constant *c0 =
    #####:    #####: 1068:         new(ir) ir_constant(int(0), ir->operands[0]->type->vector_elements);
        -:        -: 1069:      ir_constant *c32 =
    #####:    #####: 1070:         new(ir) ir_constant(int(32), ir->operands[0]->type->vector_elements);
        -:        -: 1071:      ir_variable *temp =
    #####:    #####: 1072:         new(ir) ir_variable(ir->operands[0]->type, "temp", ir_var_temporary);
        -:        -: 1073:
        -:        -: 1074:      /* temp = 32 - bits; */
    #####:    #####: 1075:      base_ir->insert_before(temp);
    #####:    #####: 1076:      base_ir->insert_before(assign(temp, sub(c32, bits)));
        -:        -: 1077:
        -:        -: 1078:      /* expr = value << (temp - offset)) >> temp; */
        -:        -: 1079:      ir_expression *expr =
    #####:    #####: 1080:         rshift(lshift(ir->operands[0], sub(temp, ir->operands[1])), temp);
        -:        -: 1081:
        -:        -: 1082:      /* Section 8.8 (Integer Functions) of the GLSL 4.50 spec says:
        -:        -: 1083:       *
        -:        -: 1084:       *    If bits is zero, the result will be zero.
        -:        -: 1085:       *
        -:        -: 1086:       * Due to the (x << (y%32)) behavior mentioned before, the (value <<
        -:        -: 1087:       * (32-0)) doesn't "erase" all of the data as we would like, so finish
        -:        -: 1088:       * up with:
        -:        -: 1089:       *
        -:        -: 1090:       * (bits == 0) ? 0 : e;
        -:        -: 1091:       */
    #####:    #####: 1092:      ir->operation = ir_triop_csel;
    #####:    #####: 1093:      ir->operands[0] = equal(c0, bits);
    #####:    #####: 1094:      ir->operands[1] = c0->clone(ir, NULL);
    #####:    #####: 1095:      ir->operands[2] = expr;
        -:        -: 1096:   }
        -:        -: 1097:
    #####:    #####: 1098:   this->progress = true;
    #####:    #####: 1099:}
        -:        -: 1100:
        -:        -: 1101:void
    #####:    #####: 1102:lower_instructions_visitor::insert_to_shifts(ir_expression *ir)
        -:        -: 1103:{
        -:        -: 1104:   ir_constant *c1;
        -:        -: 1105:   ir_constant *c32;
        -:        -: 1106:   ir_constant *cFFFFFFFF;
        -:        -: 1107:   ir_variable *offset =
    #####:    #####: 1108:      new(ir) ir_variable(ir->operands[0]->type, "offset", ir_var_temporary);
        -:        -: 1109:   ir_variable *bits =
    #####:    #####: 1110:      new(ir) ir_variable(ir->operands[0]->type, "bits", ir_var_temporary);
        -:        -: 1111:   ir_variable *mask =
    #####:    #####: 1112:      new(ir) ir_variable(ir->operands[0]->type, "mask", ir_var_temporary);
        -:        -: 1113:
    #####:    #####: 1114:   if (ir->operands[0]->type->base_type == GLSL_TYPE_INT) {
    #####:    #####: 1115:      c1 = new(ir) ir_constant(int(1), ir->operands[0]->type->vector_elements);
    #####:    #####: 1116:      c32 = new(ir) ir_constant(int(32), ir->operands[0]->type->vector_elements);
    #####:    #####: 1117:      cFFFFFFFF = new(ir) ir_constant(int(0xFFFFFFFF), ir->operands[0]->type->vector_elements);
        -:        -: 1118:   } else {
    #####:    #####: 1119:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
        -:        -: 1120:
    #####:    #####: 1121:      c1 = new(ir) ir_constant(1u, ir->operands[0]->type->vector_elements);
    #####:    #####: 1122:      c32 = new(ir) ir_constant(32u, ir->operands[0]->type->vector_elements);
    #####:    #####: 1123:      cFFFFFFFF = new(ir) ir_constant(0xFFFFFFFFu, ir->operands[0]->type->vector_elements);
        -:        -: 1124:   }
        -:        -: 1125:
    #####:    #####: 1126:   base_ir->insert_before(offset);
    #####:    #####: 1127:   base_ir->insert_before(assign(offset, ir->operands[2]));
        -:        -: 1128:
    #####:    #####: 1129:   base_ir->insert_before(bits);
    #####:    #####: 1130:   base_ir->insert_before(assign(bits, ir->operands[3]));
        -:        -: 1131:
        -:        -: 1132:   /* At least some hardware treats (x << y) as (x << (y%32)).  This means
        -:        -: 1133:    * we'd get a mask of 0 when bits is 32.  Special case it.
        -:        -: 1134:    *
        -:        -: 1135:    * mask = (bits == 32 ? 0xffffffff : (1u << bits) - 1u) << offset;
        -:        -: 1136:    *
        -:        -: 1137:    * Section 8.8 (Integer Functions) of the GLSL 4.50 spec says:
        -:        -: 1138:    *
        -:        -: 1139:    *    The result will be undefined if offset or bits is negative, or if the
        -:        -: 1140:    *    sum of offset and bits is greater than the number of bits used to
        -:        -: 1141:    *    store the operand.
        -:        -: 1142:    *
        -:        -: 1143:    * Since it's undefined, there are a couple other ways this could be
        -:        -: 1144:    * implemented.  The other way that was considered was to put the csel
        -:        -: 1145:    * around the whole thing:
        -:        -: 1146:    *
        -:        -: 1147:    *    final_result = bits == 32 ? insert : ... ;
        -:        -: 1148:    */
    #####:    #####: 1149:   base_ir->insert_before(mask);
        -:        -: 1150:
    #####:    #####: 1151:   base_ir->insert_before(assign(mask, csel(equal(bits, c32),
        -:        -: 1152:                                            cFFFFFFFF,
    #####:    #####: 1153:                                            lshift(sub(lshift(c1, bits),
    #####:    #####: 1154:                                                       c1->clone(ir, NULL)),
    #####:    #####: 1155:                                                   offset))));
        -:        -: 1156:
        -:        -: 1157:   /* (base & ~mask) | ((insert << offset) & mask) */
    #####:    #####: 1158:   ir->operation = ir_binop_bit_or;
    #####:    #####: 1159:   ir->operands[0] = bit_and(ir->operands[0], bit_not(mask));
    #####:    #####: 1160:   ir->operands[1] = bit_and(lshift(ir->operands[1], offset), mask);
    #####:    #####: 1161:   ir->operands[2] = NULL;
    #####:    #####: 1162:   ir->operands[3] = NULL;
        -:        -: 1163:
    #####:    #####: 1164:   this->progress = true;
    #####:    #####: 1165:}
        -:        -: 1166:
        -:        -: 1167:void
    #####:    #####: 1168:lower_instructions_visitor::reverse_to_shifts(ir_expression *ir)
        -:        -: 1169:{
        -:        -: 1170:   /* For more details, see:
        -:        -: 1171:    *
        -:        -: 1172:    * http://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel
        -:        -: 1173:    */
        -:        -: 1174:   ir_constant *c1 =
    #####:    #####: 1175:      new(ir) ir_constant(1u, ir->operands[0]->type->vector_elements);
        -:        -: 1176:   ir_constant *c2 =
    #####:    #####: 1177:      new(ir) ir_constant(2u, ir->operands[0]->type->vector_elements);
        -:        -: 1178:   ir_constant *c4 =
    #####:    #####: 1179:      new(ir) ir_constant(4u, ir->operands[0]->type->vector_elements);
        -:        -: 1180:   ir_constant *c8 =
    #####:    #####: 1181:      new(ir) ir_constant(8u, ir->operands[0]->type->vector_elements);
        -:        -: 1182:   ir_constant *c16 =
    #####:    #####: 1183:      new(ir) ir_constant(16u, ir->operands[0]->type->vector_elements);
        -:        -: 1184:   ir_constant *c33333333 =
    #####:    #####: 1185:      new(ir) ir_constant(0x33333333u, ir->operands[0]->type->vector_elements);
        -:        -: 1186:   ir_constant *c55555555 =
    #####:    #####: 1187:      new(ir) ir_constant(0x55555555u, ir->operands[0]->type->vector_elements);
        -:        -: 1188:   ir_constant *c0F0F0F0F =
    #####:    #####: 1189:      new(ir) ir_constant(0x0F0F0F0Fu, ir->operands[0]->type->vector_elements);
        -:        -: 1190:   ir_constant *c00FF00FF =
    #####:    #####: 1191:      new(ir) ir_constant(0x00FF00FFu, ir->operands[0]->type->vector_elements);
        -:        -: 1192:   ir_variable *temp =
    #####:    #####: 1193:      new(ir) ir_variable(glsl_type::uvec(ir->operands[0]->type->vector_elements),
    #####:    #####: 1194:                          "temp", ir_var_temporary);
    #####:    #####: 1195:   ir_instruction &i = *base_ir;
        -:        -: 1196:
    #####:    #####: 1197:   i.insert_before(temp);
        -:        -: 1198:
    #####:    #####: 1199:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
    #####:    #####: 1200:      i.insert_before(assign(temp, ir->operands[0]));
        -:        -: 1201:   } else {
    #####:    #####: 1202:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
    #####:    #####: 1203:      i.insert_before(assign(temp, i2u(ir->operands[0])));
        -:        -: 1204:   }
        -:        -: 1205:
        -:        -: 1206:   /* Swap odd and even bits.
        -:        -: 1207:    *
        -:        -: 1208:    * temp = ((temp >> 1) & 0x55555555u) | ((temp & 0x55555555u) << 1);
        -:        -: 1209:    */
    #####:    #####: 1210:   i.insert_before(assign(temp, bit_or(bit_and(rshift(temp, c1), c55555555),
    #####:    #####: 1211:                                       lshift(bit_and(temp, c55555555->clone(ir, NULL)),
    #####:    #####: 1212:                                              c1->clone(ir, NULL)))));
        -:        -: 1213:   /* Swap consecutive pairs.
        -:        -: 1214:    *
        -:        -: 1215:    * temp = ((temp >> 2) & 0x33333333u) | ((temp & 0x33333333u) << 2);
        -:        -: 1216:    */
    #####:    #####: 1217:   i.insert_before(assign(temp, bit_or(bit_and(rshift(temp, c2), c33333333),
    #####:    #####: 1218:                                       lshift(bit_and(temp, c33333333->clone(ir, NULL)),
    #####:    #####: 1219:                                              c2->clone(ir, NULL)))));
        -:        -: 1220:
        -:        -: 1221:   /* Swap nibbles.
        -:        -: 1222:    *
        -:        -: 1223:    * temp = ((temp >> 4) & 0x0F0F0F0Fu) | ((temp & 0x0F0F0F0Fu) << 4);
        -:        -: 1224:    */
    #####:    #####: 1225:   i.insert_before(assign(temp, bit_or(bit_and(rshift(temp, c4), c0F0F0F0F),
    #####:    #####: 1226:                                       lshift(bit_and(temp, c0F0F0F0F->clone(ir, NULL)),
    #####:    #####: 1227:                                              c4->clone(ir, NULL)))));
        -:        -: 1228:
        -:        -: 1229:   /* The last step is, basically, bswap.  Swap the bytes, then swap the
        -:        -: 1230:    * words.  When this code is run through GCC on x86, it does generate a
        -:        -: 1231:    * bswap instruction.
        -:        -: 1232:    *
        -:        -: 1233:    * temp = ((temp >> 8) & 0x00FF00FFu) | ((temp & 0x00FF00FFu) << 8);
        -:        -: 1234:    * temp = ( temp >> 16              ) | ( temp                << 16);
        -:        -: 1235:    */
    #####:    #####: 1236:   i.insert_before(assign(temp, bit_or(bit_and(rshift(temp, c8), c00FF00FF),
    #####:    #####: 1237:                                       lshift(bit_and(temp, c00FF00FF->clone(ir, NULL)),
    #####:    #####: 1238:                                              c8->clone(ir, NULL)))));
        -:        -: 1239:
    #####:    #####: 1240:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
    #####:    #####: 1241:      ir->operation = ir_binop_bit_or;
    #####:    #####: 1242:      ir->operands[0] = rshift(temp, c16);
    #####:    #####: 1243:      ir->operands[1] = lshift(temp, c16->clone(ir, NULL));
        -:        -: 1244:   } else {
    #####:    #####: 1245:      ir->operation = ir_unop_u2i;
    #####:    #####: 1246:      ir->operands[0] = bit_or(rshift(temp, c16),
    #####:    #####: 1247:                               lshift(temp, c16->clone(ir, NULL)));
        -:        -: 1248:   }
        -:        -: 1249:
    #####:    #####: 1250:   this->progress = true;
    #####:    #####: 1251:}
        -:        -: 1252:
        -:        -: 1253:void
    #####:    #####: 1254:lower_instructions_visitor::find_lsb_to_float_cast(ir_expression *ir)
        -:        -: 1255:{
        -:        -: 1256:   /* For more details, see:
        -:        -: 1257:    *
        -:        -: 1258:    * http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightFloatCast
        -:        -: 1259:    */
    #####:    #####: 1260:   const unsigned elements = ir->operands[0]->type->vector_elements;
    #####:    #####: 1261:   ir_constant *c0 = new(ir) ir_constant(unsigned(0), elements);
    #####:    #####: 1262:   ir_constant *cminus1 = new(ir) ir_constant(int(-1), elements);
    #####:    #####: 1263:   ir_constant *c23 = new(ir) ir_constant(int(23), elements);
    #####:    #####: 1264:   ir_constant *c7F = new(ir) ir_constant(int(0x7F), elements);
        -:        -: 1265:   ir_variable *temp =
    #####:    #####: 1266:      new(ir) ir_variable(glsl_type::ivec(elements), "temp", ir_var_temporary);
        -:        -: 1267:   ir_variable *lsb_only =
    #####:    #####: 1268:      new(ir) ir_variable(glsl_type::uvec(elements), "lsb_only", ir_var_temporary);
        -:        -: 1269:   ir_variable *as_float =
    #####:    #####: 1270:      new(ir) ir_variable(glsl_type::vec(elements), "as_float", ir_var_temporary);
        -:        -: 1271:   ir_variable *lsb =
    #####:    #####: 1272:      new(ir) ir_variable(glsl_type::ivec(elements), "lsb", ir_var_temporary);
        -:        -: 1273:
    #####:    #####: 1274:   ir_instruction &i = *base_ir;
        -:        -: 1275:
    #####:    #####: 1276:   i.insert_before(temp);
        -:        -: 1277:
    #####:    #####: 1278:   if (ir->operands[0]->type->base_type == GLSL_TYPE_INT) {
    #####:    #####: 1279:      i.insert_before(assign(temp, ir->operands[0]));
        -:        -: 1280:   } else {
    #####:    #####: 1281:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
    #####:    #####: 1282:      i.insert_before(assign(temp, u2i(ir->operands[0])));
        -:        -: 1283:   }
        -:        -: 1284:
        -:        -: 1285:   /* The int-to-float conversion is lossless because (value & -value) is
        -:        -: 1286:    * either a power of two or zero.  We don't use the result in the zero
        -:        -: 1287:    * case.  The uint() cast is necessary so that 0x80000000 does not
        -:        -: 1288:    * generate a negative value.
        -:        -: 1289:    *
        -:        -: 1290:    * uint lsb_only = uint(value & -value);
        -:        -: 1291:    * float as_float = float(lsb_only);
        -:        -: 1292:    */
    #####:    #####: 1293:   i.insert_before(lsb_only);
    #####:    #####: 1294:   i.insert_before(assign(lsb_only, i2u(bit_and(temp, neg(temp)))));
        -:        -: 1295:
    #####:    #####: 1296:   i.insert_before(as_float);
    #####:    #####: 1297:   i.insert_before(assign(as_float, u2f(lsb_only)));
        -:        -: 1298:
        -:        -: 1299:   /* This is basically an open-coded frexp.  Implementations that have a
        -:        -: 1300:    * native frexp instruction would be better served by that.  This is
        -:        -: 1301:    * optimized versus a full-featured open-coded implementation in two ways:
        -:        -: 1302:    *
        -:        -: 1303:    * - We don't care about a correct result from subnormal numbers (including
        -:        -: 1304:    *   0.0), so the raw exponent can always be safely unbiased.
        -:        -: 1305:    *
        -:        -: 1306:    * - The value cannot be negative, so it does not need to be masked off to
        -:        -: 1307:    *   extract the exponent.
        -:        -: 1308:    *
        -:        -: 1309:    * int lsb = (floatBitsToInt(as_float) >> 23) - 0x7f;
        -:        -: 1310:    */
    #####:    #####: 1311:   i.insert_before(lsb);
    #####:    #####: 1312:   i.insert_before(assign(lsb, sub(rshift(bitcast_f2i(as_float), c23), c7F)));
        -:        -: 1313:
        -:        -: 1314:   /* Use lsb_only in the comparison instead of temp so that the & (far above)
        -:        -: 1315:    * can possibly generate the result without an explicit comparison.
        -:        -: 1316:    *
        -:        -: 1317:    * (lsb_only == 0) ? -1 : lsb;
        -:        -: 1318:    *
        -:        -: 1319:    * Since our input values are all integers, the unbiased exponent must not
        -:        -: 1320:    * be negative.  It will only be negative (-0x7f, in fact) if lsb_only is
        -:        -: 1321:    * 0.  Instead of using (lsb_only == 0), we could use (lsb >= 0).  Which is
        -:        -: 1322:    * better is likely GPU dependent.  Either way, the difference should be
        -:        -: 1323:    * small.
        -:        -: 1324:    */
    #####:    #####: 1325:   ir->operation = ir_triop_csel;
    #####:    #####: 1326:   ir->operands[0] = equal(lsb_only, c0);
    #####:    #####: 1327:   ir->operands[1] = cminus1;
    #####:    #####: 1328:   ir->operands[2] = new(ir) ir_dereference_variable(lsb);
        -:        -: 1329:
    #####:    #####: 1330:   this->progress = true;
    #####:    #####: 1331:}
        -:        -: 1332:
        -:        -: 1333:void
    #####:    #####: 1334:lower_instructions_visitor::find_msb_to_float_cast(ir_expression *ir)
        -:        -: 1335:{
        -:        -: 1336:   /* For more details, see:
        -:        -: 1337:    *
        -:        -: 1338:    * http://graphics.stanford.edu/~seander/bithacks.html#ZerosOnRightFloatCast
        -:        -: 1339:    */
    #####:    #####: 1340:   const unsigned elements = ir->operands[0]->type->vector_elements;
    #####:    #####: 1341:   ir_constant *c0 = new(ir) ir_constant(int(0), elements);
    #####:    #####: 1342:   ir_constant *cminus1 = new(ir) ir_constant(int(-1), elements);
    #####:    #####: 1343:   ir_constant *c23 = new(ir) ir_constant(int(23), elements);
    #####:    #####: 1344:   ir_constant *c7F = new(ir) ir_constant(int(0x7F), elements);
    #####:    #####: 1345:   ir_constant *c000000FF = new(ir) ir_constant(0x000000FFu, elements);
    #####:    #####: 1346:   ir_constant *cFFFFFF00 = new(ir) ir_constant(0xFFFFFF00u, elements);
        -:        -: 1347:   ir_variable *temp =
    #####:    #####: 1348:      new(ir) ir_variable(glsl_type::uvec(elements), "temp", ir_var_temporary);
        -:        -: 1349:   ir_variable *as_float =
    #####:    #####: 1350:      new(ir) ir_variable(glsl_type::vec(elements), "as_float", ir_var_temporary);
        -:        -: 1351:   ir_variable *msb =
    #####:    #####: 1352:      new(ir) ir_variable(glsl_type::ivec(elements), "msb", ir_var_temporary);
        -:        -: 1353:
    #####:    #####: 1354:   ir_instruction &i = *base_ir;
        -:        -: 1355:
    #####:    #####: 1356:   i.insert_before(temp);
        -:        -: 1357:
    #####:    #####: 1358:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
    #####:    #####: 1359:      i.insert_before(assign(temp, ir->operands[0]));
        -:        -: 1360:   } else {
    #####:    #####: 1361:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
        -:        -: 1362:
        -:        -: 1363:      /* findMSB(uint(abs(some_int))) almost always does the right thing.
        -:        -: 1364:       * There are two problem values:
        -:        -: 1365:       *
        -:        -: 1366:       * * 0x80000000.  Since abs(0x80000000) == 0x80000000, findMSB returns
        -:        -: 1367:       *   31.  However, findMSB(int(0x80000000)) == 30.
        -:        -: 1368:       *
        -:        -: 1369:       * * 0xffffffff.  Since abs(0xffffffff) == 1, findMSB returns
        -:        -: 1370:       *   31.  Section 8.8 (Integer Functions) of the GLSL 4.50 spec says:
        -:        -: 1371:       *
        -:        -: 1372:       *    For a value of zero or negative one, -1 will be returned.
        -:        -: 1373:       *
        -:        -: 1374:       * For all negative number cases, including 0x80000000 and 0xffffffff,
        -:        -: 1375:       * the correct value is obtained from findMSB if instead of negating the
        -:        -: 1376:       * (already negative) value the logical-not is used.  A conditonal
        -:        -: 1377:       * logical-not can be achieved in two instructions.
        -:        -: 1378:       */
        -:        -: 1379:      ir_variable *as_int =
    #####:    #####: 1380:         new(ir) ir_variable(glsl_type::ivec(elements), "as_int", ir_var_temporary);
    #####:    #####: 1381:      ir_constant *c31 = new(ir) ir_constant(int(31), elements);
        -:        -: 1382:
    #####:    #####: 1383:      i.insert_before(as_int);
    #####:    #####: 1384:      i.insert_before(assign(as_int, ir->operands[0]));
    #####:    #####: 1385:      i.insert_before(assign(temp, i2u(expr(ir_binop_bit_xor,
        -:        -: 1386:                                            as_int,
    #####:    #####: 1387:                                            rshift(as_int, c31)))));
        -:        -: 1388:   }
        -:        -: 1389:
        -:        -: 1390:   /* The int-to-float conversion is lossless because bits are conditionally
        -:        -: 1391:    * masked off the bottom of temp to ensure the value has at most 24 bits of
        -:        -: 1392:    * data or is zero.  We don't use the result in the zero case.  The uint()
        -:        -: 1393:    * cast is necessary so that 0x80000000 does not generate a negative value.
        -:        -: 1394:    *
        -:        -: 1395:    * float as_float = float(temp > 255 ? temp & ~255 : temp);
        -:        -: 1396:    */
    #####:    #####: 1397:   i.insert_before(as_float);
    #####:    #####: 1398:   i.insert_before(assign(as_float, u2f(csel(greater(temp, c000000FF),
    #####:    #####: 1399:                                             bit_and(temp, cFFFFFF00),
    #####:    #####: 1400:                                             temp))));
        -:        -: 1401:
        -:        -: 1402:   /* This is basically an open-coded frexp.  Implementations that have a
        -:        -: 1403:    * native frexp instruction would be better served by that.  This is
        -:        -: 1404:    * optimized versus a full-featured open-coded implementation in two ways:
        -:        -: 1405:    *
        -:        -: 1406:    * - We don't care about a correct result from subnormal numbers (including
        -:        -: 1407:    *   0.0), so the raw exponent can always be safely unbiased.
        -:        -: 1408:    *
        -:        -: 1409:    * - The value cannot be negative, so it does not need to be masked off to
        -:        -: 1410:    *   extract the exponent.
        -:        -: 1411:    *
        -:        -: 1412:    * int msb = (floatBitsToInt(as_float) >> 23) - 0x7f;
        -:        -: 1413:    */
    #####:    #####: 1414:   i.insert_before(msb);
    #####:    #####: 1415:   i.insert_before(assign(msb, sub(rshift(bitcast_f2i(as_float), c23), c7F)));
        -:        -: 1416:
        -:        -: 1417:   /* Use msb in the comparison instead of temp so that the subtract can
        -:        -: 1418:    * possibly generate the result without an explicit comparison.
        -:        -: 1419:    *
        -:        -: 1420:    * (msb < 0) ? -1 : msb;
        -:        -: 1421:    *
        -:        -: 1422:    * Since our input values are all integers, the unbiased exponent must not
        -:        -: 1423:    * be negative.  It will only be negative (-0x7f, in fact) if temp is 0.
        -:        -: 1424:    */
    #####:    #####: 1425:   ir->operation = ir_triop_csel;
    #####:    #####: 1426:   ir->operands[0] = less(msb, c0);
    #####:    #####: 1427:   ir->operands[1] = cminus1;
    #####:    #####: 1428:   ir->operands[2] = new(ir) ir_dereference_variable(msb);
        -:        -: 1429:
    #####:    #####: 1430:   this->progress = true;
    #####:    #####: 1431:}
        -:        -: 1432:
        -:        -: 1433:ir_expression *
    #####:    #####: 1434:lower_instructions_visitor::_carry(operand a, operand b)
        -:        -: 1435:{
    #####:    #####: 1436:   if (lowering(CARRY_TO_ARITH))
    #####:    #####: 1437:      return i2u(b2i(less(add(a, b),
    #####:    #####: 1438:                          a.val->clone(ralloc_parent(a.val), NULL))));
        -:        -: 1439:   else
    #####:    #####: 1440:      return carry(a, b);
        -:        -: 1441:}
        -:        -: 1442:
        -:        -: 1443:void
    #####:    #####: 1444:lower_instructions_visitor::imul_high_to_mul(ir_expression *ir)
        -:        -: 1445:{
        -:        -: 1446:   /*   ABCD
        -:        -: 1447:    * * EFGH
        -:        -: 1448:    * ======
        -:        -: 1449:    * (GH * CD) + (GH * AB) << 16 + (EF * CD) << 16 + (EF * AB) << 32
        -:        -: 1450:    *
        -:        -: 1451:    * In GLSL, (a * b) becomes
        -:        -: 1452:    *
        -:        -: 1453:    * uint m1 = (a & 0x0000ffffu) * (b & 0x0000ffffu);
        -:        -: 1454:    * uint m2 = (a & 0x0000ffffu) * (b >> 16);
        -:        -: 1455:    * uint m3 = (a >> 16)         * (b & 0x0000ffffu);
        -:        -: 1456:    * uint m4 = (a >> 16)         * (b >> 16);
        -:        -: 1457:    *
        -:        -: 1458:    * uint c1;
        -:        -: 1459:    * uint c2;
        -:        -: 1460:    * uint lo_result;
        -:        -: 1461:    * uint hi_result;
        -:        -: 1462:    *
        -:        -: 1463:    * lo_result = uaddCarry(m1, m2 << 16, c1);
        -:        -: 1464:    * hi_result = m4 + c1;
        -:        -: 1465:    * lo_result = uaddCarry(lo_result, m3 << 16, c2);
        -:        -: 1466:    * hi_result = hi_result + c2;
        -:        -: 1467:    * hi_result = hi_result + (m2 >> 16) + (m3 >> 16);
        -:        -: 1468:    */
    #####:    #####: 1469:   const unsigned elements = ir->operands[0]->type->vector_elements;
        -:        -: 1470:   ir_variable *src1 =
    #####:    #####: 1471:      new(ir) ir_variable(glsl_type::uvec(elements), "src1", ir_var_temporary);
        -:        -: 1472:   ir_variable *src1h =
    #####:    #####: 1473:      new(ir) ir_variable(glsl_type::uvec(elements), "src1h", ir_var_temporary);
        -:        -: 1474:   ir_variable *src1l =
    #####:    #####: 1475:      new(ir) ir_variable(glsl_type::uvec(elements), "src1l", ir_var_temporary);
        -:        -: 1476:   ir_variable *src2 =
    #####:    #####: 1477:      new(ir) ir_variable(glsl_type::uvec(elements), "src2", ir_var_temporary);
        -:        -: 1478:   ir_variable *src2h =
    #####:    #####: 1479:      new(ir) ir_variable(glsl_type::uvec(elements), "src2h", ir_var_temporary);
        -:        -: 1480:   ir_variable *src2l =
    #####:    #####: 1481:      new(ir) ir_variable(glsl_type::uvec(elements), "src2l", ir_var_temporary);
        -:        -: 1482:   ir_variable *t1 =
    #####:    #####: 1483:      new(ir) ir_variable(glsl_type::uvec(elements), "t1", ir_var_temporary);
        -:        -: 1484:   ir_variable *t2 =
    #####:    #####: 1485:      new(ir) ir_variable(glsl_type::uvec(elements), "t2", ir_var_temporary);
        -:        -: 1486:   ir_variable *lo =
    #####:    #####: 1487:      new(ir) ir_variable(glsl_type::uvec(elements), "lo", ir_var_temporary);
        -:        -: 1488:   ir_variable *hi =
    #####:    #####: 1489:      new(ir) ir_variable(glsl_type::uvec(elements), "hi", ir_var_temporary);
    #####:    #####: 1490:   ir_variable *different_signs = NULL;
    #####:    #####: 1491:   ir_constant *c0000FFFF = new(ir) ir_constant(0x0000FFFFu, elements);
    #####:    #####: 1492:   ir_constant *c16 = new(ir) ir_constant(16u, elements);
        -:        -: 1493:
    #####:    #####: 1494:   ir_instruction &i = *base_ir;
        -:        -: 1495:
    #####:    #####: 1496:   i.insert_before(src1);
    #####:    #####: 1497:   i.insert_before(src2);
    #####:    #####: 1498:   i.insert_before(src1h);
    #####:    #####: 1499:   i.insert_before(src2h);
    #####:    #####: 1500:   i.insert_before(src1l);
    #####:    #####: 1501:   i.insert_before(src2l);
        -:        -: 1502:
    #####:    #####: 1503:   if (ir->operands[0]->type->base_type == GLSL_TYPE_UINT) {
    #####:    #####: 1504:      i.insert_before(assign(src1, ir->operands[0]));
    #####:    #####: 1505:      i.insert_before(assign(src2, ir->operands[1]));
        -:        -: 1506:   } else {
    #####:    #####: 1507:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
        -:        -: 1508:
        -:        -: 1509:      ir_variable *itmp1 =
    #####:    #####: 1510:         new(ir) ir_variable(glsl_type::ivec(elements), "itmp1", ir_var_temporary);
        -:        -: 1511:      ir_variable *itmp2 =
    #####:    #####: 1512:         new(ir) ir_variable(glsl_type::ivec(elements), "itmp2", ir_var_temporary);
    #####:    #####: 1513:      ir_constant *c0 = new(ir) ir_constant(int(0), elements);
        -:        -: 1514:
    #####:    #####: 1515:      i.insert_before(itmp1);
    #####:    #####: 1516:      i.insert_before(itmp2);
    #####:    #####: 1517:      i.insert_before(assign(itmp1, ir->operands[0]));
    #####:    #####: 1518:      i.insert_before(assign(itmp2, ir->operands[1]));
        -:        -: 1519:
        -:        -: 1520:      different_signs =
        -:        -: 1521:         new(ir) ir_variable(glsl_type::bvec(elements), "different_signs",
    #####:    #####: 1522:                             ir_var_temporary);
        -:        -: 1523:
    #####:    #####: 1524:      i.insert_before(different_signs);
    #####:    #####: 1525:      i.insert_before(assign(different_signs, expr(ir_binop_logic_xor,
    #####:    #####: 1526:                                                   less(itmp1, c0),
    #####:    #####: 1527:                                                   less(itmp2, c0->clone(ir, NULL)))));
        -:        -: 1528:
    #####:    #####: 1529:      i.insert_before(assign(src1, i2u(abs(itmp1))));
    #####:    #####: 1530:      i.insert_before(assign(src2, i2u(abs(itmp2))));
        -:        -: 1531:   }
        -:        -: 1532:
    #####:    #####: 1533:   i.insert_before(assign(src1l, bit_and(src1, c0000FFFF)));
    #####:    #####: 1534:   i.insert_before(assign(src2l, bit_and(src2, c0000FFFF->clone(ir, NULL))));
    #####:    #####: 1535:   i.insert_before(assign(src1h, rshift(src1, c16)));
    #####:    #####: 1536:   i.insert_before(assign(src2h, rshift(src2, c16->clone(ir, NULL))));
        -:        -: 1537:
    #####:    #####: 1538:   i.insert_before(lo);
    #####:    #####: 1539:   i.insert_before(hi);
    #####:    #####: 1540:   i.insert_before(t1);
    #####:    #####: 1541:   i.insert_before(t2);
        -:        -: 1542:
    #####:    #####: 1543:   i.insert_before(assign(lo, mul(src1l, src2l)));
    #####:    #####: 1544:   i.insert_before(assign(t1, mul(src1l, src2h)));
    #####:    #####: 1545:   i.insert_before(assign(t2, mul(src1h, src2l)));
    #####:    #####: 1546:   i.insert_before(assign(hi, mul(src1h, src2h)));
        -:        -: 1547:
    #####:    #####: 1548:   i.insert_before(assign(hi, add(hi, _carry(lo, lshift(t1, c16->clone(ir, NULL))))));
    #####:    #####: 1549:   i.insert_before(assign(lo,            add(lo, lshift(t1, c16->clone(ir, NULL)))));
        -:        -: 1550:
    #####:    #####: 1551:   i.insert_before(assign(hi, add(hi, _carry(lo, lshift(t2, c16->clone(ir, NULL))))));
    #####:    #####: 1552:   i.insert_before(assign(lo,            add(lo, lshift(t2, c16->clone(ir, NULL)))));
        -:        -: 1553:
    #####:    #####: 1554:   if (different_signs == NULL) {
    #####:    #####: 1555:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_UINT);
        -:        -: 1556:
    #####:    #####: 1557:      ir->operation = ir_binop_add;
    #####:    #####: 1558:      ir->operands[0] = add(hi, rshift(t1, c16->clone(ir, NULL)));
    #####:    #####: 1559:      ir->operands[1] = rshift(t2, c16->clone(ir, NULL));
        -:        -: 1560:   } else {
    #####:    #####: 1561:      assert(ir->operands[0]->type->base_type == GLSL_TYPE_INT);
        -:        -: 1562:
    #####:    #####: 1563:      i.insert_before(assign(hi, add(add(hi, rshift(t1, c16->clone(ir, NULL))),
    #####:    #####: 1564:                                     rshift(t2, c16->clone(ir, NULL)))));
        -:        -: 1565:
        -:        -: 1566:      /* For channels where different_signs is set we have to perform a 64-bit
        -:        -: 1567:       * negation.  This is *not* the same as just negating the high 32-bits.
        -:        -: 1568:       * Consider -3 * 2.  The high 32-bits is 0, but the desired result is
        -:        -: 1569:       * -1, not -0!  Recall -x == ~x + 1.
        -:        -: 1570:       */
        -:        -: 1571:      ir_variable *neg_hi =
    #####:    #####: 1572:         new(ir) ir_variable(glsl_type::ivec(elements), "neg_hi", ir_var_temporary);
    #####:    #####: 1573:      ir_constant *c1 = new(ir) ir_constant(1u, elements);
        -:        -: 1574:
    #####:    #####: 1575:      i.insert_before(neg_hi);
    #####:    #####: 1576:      i.insert_before(assign(neg_hi, add(bit_not(u2i(hi)),
    #####:    #####: 1577:                                         u2i(_carry(bit_not(lo), c1)))));
        -:        -: 1578:
    #####:    #####: 1579:      ir->operation = ir_triop_csel;
    #####:    #####: 1580:      ir->operands[0] = new(ir) ir_dereference_variable(different_signs);
    #####:    #####: 1581:      ir->operands[1] = new(ir) ir_dereference_variable(neg_hi);
    #####:    #####: 1582:      ir->operands[2] = u2i(hi);
        -:        -: 1583:   }
    #####:    #####: 1584:}
        -:        -: 1585:
        -:        -: 1586:void
    #####:    #####: 1587:lower_instructions_visitor::sqrt_to_abs_sqrt(ir_expression *ir)
        -:        -: 1588:{
    #####:    #####: 1589:   ir->operands[0] = new(ir) ir_expression(ir_unop_abs, ir->operands[0]);
    #####:    #####: 1590:   this->progress = true;
    #####:    #####: 1591:}
        -:        -: 1592:
        -:        -: 1593:ir_visitor_status
      285:      302: 1594:lower_instructions_visitor::visit_leave(ir_expression *ir)
        -:        -: 1595:{
      285:      302: 1596:   switch (ir->operation) {
        -:        -: 1597:   case ir_binop_dot:
    #####:    #####: 1598:      if (ir->operands[0]->type->is_double())
    #####:    #####: 1599:         double_dot_to_fma(ir);
    #####:    #####: 1600:      break;
        -:        -: 1601:   case ir_triop_lrp:
    #####:    #####: 1602:      if (ir->operands[0]->type->is_double())
    #####:    #####: 1603:         double_lrp(ir);
    #####:    #####: 1604:      break;
        -:        -: 1605:   case ir_binop_sub:
    #####:    #####: 1606:      if (lowering(SUB_TO_ADD_NEG))
    #####:    #####: 1607:	 sub_to_add_neg(ir);
    #####:    #####: 1608:      break;
        -:        -: 1609:
        -:        -: 1610:   case ir_binop_div:
        7:        7: 1611:      if (ir->operands[1]->type->is_integer() && lowering(INT_DIV_TO_MUL_RCP))
    #####:    #####: 1612:	 int_div_to_mul_rcp(ir);
       14:       14: 1613:      else if ((ir->operands[1]->type->is_float() && lowering(FDIV_TO_MUL_RCP)) ||
        6:        6: 1614:               (ir->operands[1]->type->is_double() && lowering(DDIV_TO_MUL_RCP)))
        1:        1: 1615:	 div_to_mul_rcp(ir);
        7:        7: 1616:      break;
        -:        -: 1617:
        -:        -: 1618:   case ir_unop_exp:
    #####:    #####: 1619:      if (lowering(EXP_TO_EXP2))
    #####:    #####: 1620:	 exp_to_exp2(ir);
    #####:    #####: 1621:      break;
        -:        -: 1622:
        -:        -: 1623:   case ir_unop_log:
    #####:    #####: 1624:      if (lowering(LOG_TO_LOG2))
    #####:    #####: 1625:	 log_to_log2(ir);
    #####:    #####: 1626:      break;
        -:        -: 1627:
        -:        -: 1628:   case ir_binop_mod:
       46:       46: 1629:      if (lowering(MOD_TO_FLOOR) && (ir->type->is_float() || ir->type->is_double()))
    #####:    #####: 1630:	 mod_to_floor(ir);
       46:       46: 1631:      break;
        -:        -: 1632:
        -:        -: 1633:   case ir_binop_pow:
    #####:    #####: 1634:      if (lowering(POW_TO_EXP2))
    #####:    #####: 1635:	 pow_to_exp2(ir);
    #####:    #####: 1636:      break;
        -:        -: 1637:
        -:        -: 1638:   case ir_binop_ldexp:
    #####:    #####: 1639:      if (lowering(LDEXP_TO_ARITH) && ir->type->is_float())
    #####:    #####: 1640:         ldexp_to_arith(ir);
    #####:    #####: 1641:      if (lowering(DFREXP_DLDEXP_TO_ARITH) && ir->type->is_double())
    #####:    #####: 1642:         dldexp_to_arith(ir);
    #####:    #####: 1643:      break;
        -:        -: 1644:
        -:        -: 1645:   case ir_unop_frexp_exp:
    #####:    #####: 1646:      if (lowering(DFREXP_DLDEXP_TO_ARITH) && ir->operands[0]->type->is_double())
    #####:    #####: 1647:         dfrexp_exp_to_arith(ir);
    #####:    #####: 1648:      break;
        -:        -: 1649:
        -:        -: 1650:   case ir_unop_frexp_sig:
    #####:    #####: 1651:      if (lowering(DFREXP_DLDEXP_TO_ARITH) && ir->operands[0]->type->is_double())
    #####:    #####: 1652:         dfrexp_sig_to_arith(ir);
    #####:    #####: 1653:      break;
        -:        -: 1654:
        -:        -: 1655:   case ir_binop_carry:
    #####:    #####: 1656:      if (lowering(CARRY_TO_ARITH))
    #####:    #####: 1657:         carry_to_arith(ir);
    #####:    #####: 1658:      break;
        -:        -: 1659:
        -:        -: 1660:   case ir_binop_borrow:
    #####:    #####: 1661:      if (lowering(BORROW_TO_ARITH))
    #####:    #####: 1662:         borrow_to_arith(ir);
    #####:    #####: 1663:      break;
        -:        -: 1664:
        -:        -: 1665:   case ir_unop_saturate:
    #####:    #####: 1666:      if (lowering(SAT_TO_CLAMP))
    #####:    #####: 1667:         sat_to_clamp(ir);
    #####:    #####: 1668:      break;
        -:        -: 1669:
        -:        -: 1670:   case ir_unop_trunc:
    #####:    #####: 1671:      if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####: 1672:         dtrunc_to_dfrac(ir);
    #####:    #####: 1673:      break;
        -:        -: 1674:
        -:        -: 1675:   case ir_unop_ceil:
    #####:    #####: 1676:      if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####: 1677:         dceil_to_dfrac(ir);
    #####:    #####: 1678:      break;
        -:        -: 1679:
        -:        -: 1680:   case ir_unop_floor:
       10:       10: 1681:      if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####: 1682:         dfloor_to_dfrac(ir);
       10:       10: 1683:      break;
        -:        -: 1684:
        -:        -: 1685:   case ir_unop_round_even:
    #####:    #####: 1686:      if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####: 1687:         dround_even_to_dfrac(ir);
    #####:    #####: 1688:      break;
        -:        -: 1689:
        -:        -: 1690:   case ir_unop_sign:
    #####:    #####: 1691:      if (lowering(DOPS_TO_DFRAC) && ir->type->is_double())
    #####:    #####: 1692:         dsign_to_csel(ir);
    #####:    #####: 1693:      break;
        -:        -: 1694:
        -:        -: 1695:   case ir_unop_bit_count:
    #####:    #####: 1696:      if (lowering(BIT_COUNT_TO_MATH))
    #####:    #####: 1697:         bit_count_to_math(ir);
    #####:    #####: 1698:      break;
        -:        -: 1699:
        -:        -: 1700:   case ir_triop_bitfield_extract:
    #####:    #####: 1701:      if (lowering(EXTRACT_TO_SHIFTS))
    #####:    #####: 1702:         extract_to_shifts(ir);
    #####:    #####: 1703:      break;
        -:        -: 1704:
        -:        -: 1705:   case ir_quadop_bitfield_insert:
    #####:    #####: 1706:      if (lowering(INSERT_TO_SHIFTS))
    #####:    #####: 1707:         insert_to_shifts(ir);
    #####:    #####: 1708:      break;
        -:        -: 1709:
        -:        -: 1710:   case ir_unop_bitfield_reverse:
    #####:    #####: 1711:      if (lowering(REVERSE_TO_SHIFTS))
    #####:    #####: 1712:         reverse_to_shifts(ir);
    #####:    #####: 1713:      break;
        -:        -: 1714:
        -:        -: 1715:   case ir_unop_find_lsb:
    #####:    #####: 1716:      if (lowering(FIND_LSB_TO_FLOAT_CAST))
    #####:    #####: 1717:         find_lsb_to_float_cast(ir);
    #####:    #####: 1718:      break;
        -:        -: 1719:
        -:        -: 1720:   case ir_unop_find_msb:
    #####:    #####: 1721:      if (lowering(FIND_MSB_TO_FLOAT_CAST))
    #####:    #####: 1722:         find_msb_to_float_cast(ir);
    #####:    #####: 1723:      break;
        -:        -: 1724:
        -:        -: 1725:   case ir_binop_imul_high:
    #####:    #####: 1726:      if (lowering(IMUL_HIGH_TO_MUL))
    #####:    #####: 1727:         imul_high_to_mul(ir);
    #####:    #####: 1728:      break;
        -:        -: 1729:
        -:        -: 1730:   case ir_unop_rsq:
        -:        -: 1731:   case ir_unop_sqrt:
    #####:    #####: 1732:      if (lowering(SQRT_TO_ABS_SQRT))
    #####:    #####: 1733:         sqrt_to_abs_sqrt(ir);
    #####:    #####: 1734:      break;
        -:        -: 1735:
        -:        -: 1736:   default:
      222:      239: 1737:      return visit_continue;
        -:        -: 1738:   }
        -:        -: 1739:
       63:       63: 1740:   return visit_continue;
        -:        -: 1741:}

src/compiler/lower_jumps.cpp.gcov

        -:        -:    0:Source:glsl/lower_jumps.cpp
        -:        -:    0:Graph:glsl/.libs/lower_jumps.gcno
        -:        -:    0:Data:glsl/.libs/lower_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Luca Barbieri
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_jumps.cpp
        -:        -:   26: *
        -:        -:   27: * This pass lowers jumps (break, continue, and return) to if/else structures.
        -:        -:   28: *
        -:        -:   29: * It can be asked to:
        -:        -:   30: * 1. Pull jumps out of ifs where possible
        -:        -:   31: * 2. Remove all "continue"s, replacing them with an "execute flag"
        -:        -:   32: * 3. Replace all "break" with a single conditional one at the end of the loop
        -:        -:   33: * 4. Replace all "return"s with a single return at the end of the function,
        -:        -:   34: *    for the main function and/or other functions
        -:        -:   35: *
        -:        -:   36: * Applying this pass gives several benefits:
        -:        -:   37: * 1. All functions can be inlined.
        -:        -:   38: * 2. nv40 and other pre-DX10 chips without "continue" can be supported
        -:        -:   39: * 3. nv30 and other pre-DX10 chips with no control flow at all are better
        -:        -:   40: *    supported
        -:        -:   41: *
        -:        -:   42: * Continues are lowered by adding a per-loop "execute flag", initialized to
        -:        -:   43: * true, that when cleared inhibits all execution until the end of the loop.
        -:        -:   44: *
        -:        -:   45: * Breaks are lowered to continues, plus setting a "break flag" that is checked
        -:        -:   46: * at the end of the loop, and trigger the unique "break".
        -:        -:   47: *
        -:        -:   48: * Returns are lowered to breaks/continues, plus adding a "return flag" that
        -:        -:   49: * causes loops to break again out of their enclosing loops until all the
        -:        -:   50: * loops are exited: then the "execute flag" logic will ignore everything
        -:        -:   51: * until the end of the function.
        -:        -:   52: *
        -:        -:   53: * Note that "continue" and "return" can also be implemented by adding
        -:        -:   54: * a dummy loop and using break.
        -:        -:   55: * However, this is bad for hardware with limited nesting depth, and
        -:        -:   56: * prevents further optimization, and thus is not currently performed.
        -:        -:   57: */
        -:        -:   58:
        -:        -:   59:#include "compiler/glsl_types.h"
        -:        -:   60:#include <string.h>
        -:        -:   61:#include "ir.h"
        -:        -:   62:
        -:        -:   63:/**
        -:        -:   64: * Enum recording the result of analyzing how control flow might exit
        -:        -:   65: * an IR node.
        -:        -:   66: *
        -:        -:   67: * Each possible value of jump_strength indicates a strictly stronger
        -:        -:   68: * guarantee on control flow than the previous value.
        -:        -:   69: *
        -:        -:   70: * The ordering of strengths roughly reflects the way jumps are
        -:        -:   71: * lowered: jumps with higher strength tend to be lowered to jumps of
        -:        -:   72: * lower strength.  Accordingly, strength is used as a heuristic to
        -:        -:   73: * determine which lowering to perform first.
        -:        -:   74: *
        -:        -:   75: * This enum is also used by get_jump_strength() to categorize
        -:        -:   76: * instructions as either break, continue, return, or other.  When
        -:        -:   77: * used in this fashion, strength_always_clears_execute_flag is not
        -:        -:   78: * used.
        -:        -:   79: *
        -:        -:   80: * The control flow analysis made by this optimization pass makes two
        -:        -:   81: * simplifying assumptions:
        -:        -:   82: *
        -:        -:   83: * - It ignores discard instructions, since they are lowered by a
        -:        -:   84: *   separate pass (lower_discard.cpp).
        -:        -:   85: *
        -:        -:   86: * - It assumes it is always possible for control to flow from a loop
        -:        -:   87: *   to the instruction immediately following it.  Technically, this
        -:        -:   88: *   is not true (since all execution paths through the loop might
        -:        -:   89: *   jump back to the top, or return from the function).
        -:        -:   90: *
        -:        -:   91: * Both of these simplifying assumtions are safe, since they can never
        -:        -:   92: * cause reachable code to be incorrectly classified as unreachable;
        -:        -:   93: * they can only do the opposite.
        -:        -:   94: */
        -:        -:   95:enum jump_strength
        -:        -:   96:{
        -:        -:   97:   /**
        -:        -:   98:    * Analysis has produced no guarantee on how control flow might
        -:        -:   99:    * exit this IR node.  It might fall out the bottom (with or
        -:        -:  100:    * without clearing the execute flag, if present), or it might
        -:        -:  101:    * continue to the top of the innermost enclosing loop, break out
        -:        -:  102:    * of it, or return from the function.
        -:        -:  103:    */
        -:        -:  104:   strength_none,
        -:        -:  105:
        -:        -:  106:   /**
        -:        -:  107:    * The only way control can fall out the bottom of this node is
        -:        -:  108:    * through a code path that clears the execute flag.  It might also
        -:        -:  109:    * continue to the top of the innermost enclosing loop, break out
        -:        -:  110:    * of it, or return from the function.
        -:        -:  111:    */
        -:        -:  112:   strength_always_clears_execute_flag,
        -:        -:  113:
        -:        -:  114:   /**
        -:        -:  115:    * Control cannot fall out the bottom of this node.  It might
        -:        -:  116:    * continue to the top of the innermost enclosing loop, break out
        -:        -:  117:    * of it, or return from the function.
        -:        -:  118:    */
        -:        -:  119:   strength_continue,
        -:        -:  120:
        -:        -:  121:   /**
        -:        -:  122:    * Control cannot fall out the bottom of this node, or continue the
        -:        -:  123:    * top of the innermost enclosing loop.  It can only break out of
        -:        -:  124:    * it or return from the function.
        -:        -:  125:    */
        -:        -:  126:   strength_break,
        -:        -:  127:
        -:        -:  128:   /**
        -:        -:  129:    * Control cannot fall out the bottom of this node, continue to the
        -:        -:  130:    * top of the innermost enclosing loop, or break out of it.  It can
        -:        -:  131:    * only return from the function.
        -:        -:  132:    */
        -:        -:  133:   strength_return
        -:        -:  134:};
        -:        -:  135:
        -:        -:  136:namespace {
        -:        -:  137:
        -:        -:  138:struct block_record
        -:        -:  139:{
        -:        -:  140:   /* minimum jump strength (of lowered IR, not pre-lowering IR)
        -:        -:  141:    *
        -:        -:  142:    * If the block ends with a jump, must be the strength of the jump.
        -:        -:  143:    * Otherwise, the jump would be dead and have been deleted before)
        -:        -:  144:    *
        -:        -:  145:    * If the block doesn't end with a jump, it can be different than strength_none if all paths before it lead to some jump
        -:        -:  146:    * (e.g. an if with a return in one branch, and a break in the other, while not lowering them)
        -:        -:  147:    * Note that identical jumps are usually unified though.
        -:        -:  148:    */
        -:        -:  149:   jump_strength min_strength;
        -:        -:  150:
        -:        -:  151:   /* can anything clear the execute flag? */
        -:        -:  152:   bool may_clear_execute_flag;
        -:        -:  153:
      486:      638:  154:   block_record()
        -:        -:  155:   {
      486:      638:  156:      this->min_strength = strength_none;
      486:      638:  157:      this->may_clear_execute_flag = false;
      486:      638:  158:   }
        -:        -:  159:};
        -:        -:  160:
        -:        -:  161:struct loop_record
        -:        -:  162:{
        -:        -:  163:   ir_function_signature* signature;
        -:        -:  164:   ir_loop* loop;
        -:        -:  165:
        -:        -:  166:   /* used to avoid lowering the break used to represent lowered breaks */
        -:        -:  167:   unsigned nesting_depth;
        -:        -:  168:   bool in_if_at_the_end_of_the_loop;
        -:        -:  169:
        -:        -:  170:   bool may_set_return_flag;
        -:        -:  171:
        -:        -:  172:   ir_variable* break_flag;
        -:        -:  173:   ir_variable* execute_flag; /* cleared to emulate continue */
        -:        -:  174:
       67:       83:  175:   loop_record(ir_function_signature* p_signature = 0, ir_loop* p_loop = 0)
        -:        -:  176:   {
       67:       83:  177:      this->signature = p_signature;
       67:       83:  178:      this->loop = p_loop;
       67:       83:  179:      this->nesting_depth = 0;
       67:       83:  180:      this->in_if_at_the_end_of_the_loop = false;
       67:       83:  181:      this->may_set_return_flag = false;
       67:       83:  182:      this->break_flag = 0;
       67:       83:  183:      this->execute_flag = 0;
       67:       83:  184:   }
        -:        -:  185:
        2:        2:  186:   ir_variable* get_execute_flag()
        -:        -:  187:   {
        -:        -:  188:      /* also supported for the "function loop" */
        2:        2:  189:      if(!this->execute_flag) {
        1:        1:  190:         exec_list& list = this->loop ? this->loop->body_instructions : signature->body;
        1:        1:  191:         this->execute_flag = new(this->signature) ir_variable(glsl_type::bool_type, "execute_flag", ir_var_temporary);
        1:        1:  192:         list.push_head(new(this->signature) ir_assignment(new(this->signature) ir_dereference_variable(execute_flag), new(this->signature) ir_constant(true), 0));
        1:        1:  193:         list.push_head(this->execute_flag);
        -:        -:  194:      }
        2:        2:  195:      return this->execute_flag;
        -:        -:  196:   }
        -:        -:  197:
    #####:    #####:  198:   ir_variable* get_break_flag()
        -:        -:  199:   {
    #####:    #####:  200:      assert(this->loop);
    #####:    #####:  201:      if(!this->break_flag) {
    #####:    #####:  202:         this->break_flag = new(this->signature) ir_variable(glsl_type::bool_type, "break_flag", ir_var_temporary);
    #####:    #####:  203:         this->loop->insert_before(this->break_flag);
    #####:    #####:  204:         this->loop->insert_before(new(this->signature) ir_assignment(new(this->signature) ir_dereference_variable(break_flag), new(this->signature) ir_constant(false), 0));
        -:        -:  205:      }
    #####:    #####:  206:      return this->break_flag;
        -:        -:  207:   }
        -:        -:  208:};
        -:        -:  209:
        -:        -:  210:struct function_record
        -:        -:  211:{
        -:        -:  212:   ir_function_signature* signature;
        -:        -:  213:   ir_variable* return_flag; /* used to break out of all loops and then jump to the return instruction */
        -:        -:  214:   ir_variable* return_value;
        -:        -:  215:   bool lower_return;
        -:        -:  216:   unsigned nesting_depth;
        -:        -:  217:
       41:       41:  218:   function_record(ir_function_signature* p_signature = 0,
        -:        -:  219:                   bool lower_return = false)
        -:        -:  220:   {
       41:       41:  221:      this->signature = p_signature;
       41:       41:  222:      this->return_flag = 0;
       41:       41:  223:      this->return_value = 0;
       41:       41:  224:      this->nesting_depth = 0;
       41:       41:  225:      this->lower_return = lower_return;
       41:       41:  226:   }
        -:        -:  227:
        3:        3:  228:   ir_variable* get_return_flag()
        -:        -:  229:   {
        3:        3:  230:      if(!this->return_flag) {
        1:        1:  231:         this->return_flag = new(this->signature) ir_variable(glsl_type::bool_type, "return_flag", ir_var_temporary);
        1:        1:  232:         this->signature->body.push_head(new(this->signature) ir_assignment(new(this->signature) ir_dereference_variable(return_flag), new(this->signature) ir_constant(false), 0));
        1:        1:  233:         this->signature->body.push_head(this->return_flag);
        -:        -:  234:      }
        3:        3:  235:      return this->return_flag;
        -:        -:  236:   }
        -:        -:  237:
        3:        3:  238:   ir_variable* get_return_value()
        -:        -:  239:   {
        3:        3:  240:      if(!this->return_value) {
        1:        1:  241:         assert(!this->signature->return_type->is_void());
        1:        1:  242:         return_value = new(this->signature) ir_variable(this->signature->return_type, "return_value", ir_var_temporary);
        1:        1:  243:         this->signature->body.push_head(this->return_value);
        -:        -:  244:      }
        3:        3:  245:      return this->return_value;
        -:        -:  246:   }
        -:        -:  247:};
        -:        -:  248:
       18:       18:  249:struct ir_lower_jumps_visitor : public ir_control_flow_visitor {
        -:        -:  250:   /* Postconditions: on exit of any visit() function:
        -:        -:  251:    *
        -:        -:  252:    * ANALYSIS: this->block.min_strength,
        -:        -:  253:    * this->block.may_clear_execute_flag, and
        -:        -:  254:    * this->loop.may_set_return_flag are updated to reflect the
        -:        -:  255:    * characteristics of the visited statement.
        -:        -:  256:    *
        -:        -:  257:    * DEAD_CODE_ELIMINATION: If this->block.min_strength is not
        -:        -:  258:    * strength_none, the visited node is at the end of its exec_list.
        -:        -:  259:    * In other words, any unreachable statements that follow the
        -:        -:  260:    * visited statement in its exec_list have been removed.
        -:        -:  261:    *
        -:        -:  262:    * CONTAINED_JUMPS_LOWERED: If the visited statement contains other
        -:        -:  263:    * statements, then should_lower_jump() is false for all of the
        -:        -:  264:    * return, break, or continue statements it contains.
        -:        -:  265:    *
        -:        -:  266:    * Note that visiting a jump does not lower it.  That is the
        -:        -:  267:    * responsibility of the statement (or function signature) that
        -:        -:  268:    * contains the jump.
        -:        -:  269:    */
        -:        -:  270:
        -:        -:  271:   bool progress;
        -:        -:  272:
        -:        -:  273:   struct function_record function;
        -:        -:  274:   struct loop_record loop;
        -:        -:  275:   struct block_record block;
        -:        -:  276:
        -:        -:  277:   bool pull_out_jumps;
        -:        -:  278:   bool lower_continue;
        -:        -:  279:   bool lower_break;
        -:        -:  280:   bool lower_sub_return;
        -:        -:  281:   bool lower_main_return;
        -:        -:  282:
       18:       18:  283:   ir_lower_jumps_visitor()
        -:        -:  284:      : progress(false),
        -:        -:  285:        pull_out_jumps(false),
        -:        -:  286:        lower_continue(false),
        -:        -:  287:        lower_break(false),
        -:        -:  288:        lower_sub_return(false),
       18:       18:  289:        lower_main_return(false)
        -:        -:  290:   {
       18:       18:  291:   }
        -:        -:  292:
       51:       85:  293:   void truncate_after_instruction(exec_node *ir)
        -:        -:  294:   {
       51:       85:  295:      if (!ir)
    #####:    #####:  296:         return;
        -:        -:  297:
       51:       85:  298:      while (!ir->get_next()->is_tail_sentinel()) {
    #####:    #####:  299:         ((ir_instruction *)ir->get_next())->remove();
    #####:    #####:  300:         this->progress = true;
        -:        -:  301:      }
        -:        -:  302:   }
        -:        -:  303:
        2:        2:  304:   void move_outer_block_inside(ir_instruction *ir, exec_list *inner_block)
        -:        -:  305:   {
        3:        3:  306:      while (!ir->get_next()->is_tail_sentinel()) {
        1:        1:  307:         ir_instruction *move_ir = (ir_instruction *)ir->get_next();
        -:        -:  308:
        1:        1:  309:         move_ir->remove();
        1:        1:  310:         inner_block->push_tail(move_ir);
        -:        -:  311:      }
        1:        1:  312:   }
        -:        -:  313:
        -:        -:  314:   /**
        -:        -:  315:    * Insert the instructions necessary to lower a return statement,
        -:        -:  316:    * before the given return instruction.
        -:        -:  317:    */
        3:        3:  318:   void insert_lowered_return(ir_return *ir)
        -:        -:  319:   {
        3:        3:  320:      ir_variable* return_flag = this->function.get_return_flag();
        3:        3:  321:      if(!this->function.signature->return_type->is_void()) {
        3:        3:  322:         ir_variable* return_value = this->function.get_return_value();
        3:        3:  323:         ir->insert_before(
        -:        -:  324:            new(ir) ir_assignment(
        3:        3:  325:               new (ir) ir_dereference_variable(return_value),
        9:        9:  326:               ir->value));
        -:        -:  327:      }
        3:        3:  328:      ir->insert_before(
        -:        -:  329:         new(ir) ir_assignment(
        3:        3:  330:            new (ir) ir_dereference_variable(return_flag),
        9:        9:  331:            new (ir) ir_constant(true)));
        3:        3:  332:      this->loop.may_set_return_flag = true;
        3:        3:  333:   }
        -:        -:  334:
        -:        -:  335:   /**
        -:        -:  336:    * If the given instruction is a return, lower it to instructions
        -:        -:  337:    * that store the return value (if there is one), set the return
        -:        -:  338:    * flag, and then break.
        -:        -:  339:    *
        -:        -:  340:    * It is safe to pass NULL to this function.
        -:        -:  341:    */
        4:        8:  342:   void lower_return_unconditionally(ir_instruction *ir)
        -:        -:  343:   {
        4:        8:  344:      if (get_jump_strength(ir) != strength_return) {
        4:        8:  345:         return;
        -:        -:  346:      }
    #####:    #####:  347:      insert_lowered_return((ir_return*)ir);
    #####:    #####:  348:      ir->replace_with(new(ir) ir_loop_jump(ir_loop_jump::jump_break));
        -:        -:  349:   }
        -:        -:  350:
        -:        -:  351:   /**
        -:        -:  352:    * Create the necessary instruction to replace a break instruction.
        -:        -:  353:    */
    #####:    #####:  354:   ir_instruction *create_lowered_break()
        -:        -:  355:   {
    #####:    #####:  356:      void *ctx = this->function.signature;
        -:        -:  357:      return new(ctx) ir_assignment(
    #####:    #####:  358:          new(ctx) ir_dereference_variable(this->loop.get_break_flag()),
    #####:    #####:  359:          new(ctx) ir_constant(true),
    #####:    #####:  360:          0);
        -:        -:  361:   }
        -:        -:  362:
        -:        -:  363:   /**
        -:        -:  364:    * If the given instruction is a break, lower it to an instruction
        -:        -:  365:    * that sets the break flag, without consulting
        -:        -:  366:    * should_lower_jump().
        -:        -:  367:    *
        -:        -:  368:    * It is safe to pass NULL to this function.
        -:        -:  369:    */
    #####:    #####:  370:   void lower_break_unconditionally(ir_instruction *ir)
        -:        -:  371:   {
    #####:    #####:  372:      if (get_jump_strength(ir) != strength_break) {
    #####:    #####:  373:         return;
        -:        -:  374:      }
    #####:    #####:  375:      ir->replace_with(create_lowered_break());
        -:        -:  376:   }
        -:        -:  377:
        -:        -:  378:   /**
        -:        -:  379:    * If the block ends in a conditional or unconditional break, lower
        -:        -:  380:    * it, even though should_lower_jump() says it needn't be lowered.
        -:        -:  381:    */
    #####:    #####:  382:   void lower_final_breaks(exec_list *block)
        -:        -:  383:   {
    #####:    #####:  384:      ir_instruction *ir = (ir_instruction *) block->get_tail();
    #####:    #####:  385:      lower_break_unconditionally(ir);
    #####:    #####:  386:      ir_if *ir_if = ir->as_if();
    #####:    #####:  387:      if (ir_if) {
    #####:    #####:  388:          lower_break_unconditionally(
    #####:    #####:  389:              (ir_instruction *) ir_if->then_instructions.get_tail());
    #####:    #####:  390:          lower_break_unconditionally(
    #####:    #####:  391:              (ir_instruction *) ir_if->else_instructions.get_tail());
        -:        -:  392:      }
    #####:    #####:  393:   }
        -:        -:  394:
       44:       78:  395:   virtual void visit(class ir_loop_jump * ir)
        -:        -:  396:   {
        -:        -:  397:      /* Eliminate all instructions after each one, since they are
        -:        -:  398:       * unreachable.  This satisfies the DEAD_CODE_ELIMINATION
        -:        -:  399:       * postcondition.
        -:        -:  400:       */
       44:       78:  401:      truncate_after_instruction(ir);
        -:        -:  402:
        -:        -:  403:      /* Set this->block.min_strength based on this instruction.  This
        -:        -:  404:       * satisfies the ANALYSIS postcondition.  It is not necessary to
        -:        -:  405:       * update this->block.may_clear_execute_flag or
        -:        -:  406:       * this->loop.may_set_return_flag, because an unlowered jump
        -:        -:  407:       * instruction can't change any flags.
        -:        -:  408:       */
       44:       78:  409:      this->block.min_strength = ir->is_break() ? strength_break : strength_continue;
        -:        -:  410:
        -:        -:  411:      /* The CONTAINED_JUMPS_LOWERED postcondition is already
        -:        -:  412:       * satisfied, because jump statements can't contain other
        -:        -:  413:       * statements.
        -:        -:  414:       */
       44:       78:  415:   }
        -:        -:  416:
        6:        6:  417:   virtual void visit(class ir_return * ir)
        -:        -:  418:   {
        -:        -:  419:      /* Eliminate all instructions after each one, since they are
        -:        -:  420:       * unreachable.  This satisfies the DEAD_CODE_ELIMINATION
        -:        -:  421:       * postcondition.
        -:        -:  422:       */
        6:        6:  423:      truncate_after_instruction(ir);
        -:        -:  424:
        -:        -:  425:      /* Set this->block.min_strength based on this instruction.  This
        -:        -:  426:       * satisfies the ANALYSIS postcondition.  It is not necessary to
        -:        -:  427:       * update this->block.may_clear_execute_flag or
        -:        -:  428:       * this->loop.may_set_return_flag, because an unlowered return
        -:        -:  429:       * instruction can't change any flags.
        -:        -:  430:       */
        6:        6:  431:      this->block.min_strength = strength_return;
        -:        -:  432:
        -:        -:  433:      /* The CONTAINED_JUMPS_LOWERED postcondition is already
        -:        -:  434:       * satisfied, because jump statements can't contain other
        -:        -:  435:       * statements.
        -:        -:  436:       */
        6:        6:  437:   }
        -:        -:  438:
    #####:    #####:  439:   virtual void visit(class ir_discard * ir)
        -:        -:  440:   {
        -:        -:  441:      /* Nothing needs to be done.  The ANALYSIS and
        -:        -:  442:       * DEAD_CODE_ELIMINATION postconditions are already satisfied,
        -:        -:  443:       * because discard statements are ignored by this optimization
        -:        -:  444:       * pass.  The CONTAINED_JUMPS_LOWERED postcondition is already
        -:        -:  445:       * satisfied, because discard statements can't contain other
        -:        -:  446:       * statements.
        -:        -:  447:       */
        -:        -:  448:      (void) ir;
    #####:    #####:  449:   }
        -:        -:  450:
      417:      573:  451:   enum jump_strength get_jump_strength(ir_instruction* ir)
        -:        -:  452:   {
      417:      573:  453:      if(!ir)
      155:      189:  454:         return strength_none;
      262:      384:  455:      else if(ir->ir_type == ir_type_loop_jump) {
      134:      236:  456:         if(((ir_loop_jump*)ir)->is_break())
      134:      236:  457:            return strength_break;
        -:        -:  458:         else
    #####:    #####:  459:            return strength_continue;
      128:      148:  460:      } else if(ir->ir_type == ir_type_return)
       11:       11:  461:         return strength_return;
        -:        -:  462:      else
      117:      137:  463:         return strength_none;
        -:        -:  464:   }
        -:        -:  465:
      204:      272:  466:   bool should_lower_jump(ir_jump* ir)
        -:        -:  467:   {
      204:      272:  468:      unsigned strength = get_jump_strength(ir);
        -:        -:  469:      bool lower;
      204:      272:  470:      switch(strength)
        -:        -:  471:      {
        -:        -:  472:      case strength_none:
      155:      189:  473:         lower = false; /* don't change this, code relies on it */
      155:      189:  474:         break;
        -:        -:  475:      case strength_continue:
    #####:    #####:  476:         lower = lower_continue;
    #####:    #####:  477:         break;
        -:        -:  478:      case strength_break:
       45:       79:  479:         assert(this->loop.loop);
        -:        -:  480:         /* never lower "canonical break" */
       48:       98:  481:         if(ir->get_next()->is_tail_sentinel() && (this->loop.nesting_depth == 0
       45:       79:  482:               || (this->loop.nesting_depth == 1 && this->loop.in_if_at_the_end_of_the_loop)))
        3:       19:  483:            lower = false;
        -:        -:  484:         else
       42:       60:  485:            lower = lower_break;
       45:       79:  486:         break;
        -:        -:  487:      case strength_return:
        -:        -:  488:         /* never lower return at the end of a this->function */
        4:        4:  489:         if(this->function.nesting_depth == 0 && ir->get_next()->is_tail_sentinel())
    #####:    #####:  490:            lower = false;
        -:        -:  491:         else
        4:        4:  492:            lower = this->function.lower_return;
        4:        4:  493:         break;
        -:        -:  494:      }
      204:      272:  495:      return lower;
        -:        -:  496:   }
        -:        -:  497:
      270:      354:  498:   block_record visit_block(exec_list* list)
        -:        -:  499:   {
        -:        -:  500:      /* Note: since visiting a node may change that node's next
        -:        -:  501:       * pointer, we can't use visit_exec_list(), because
        -:        -:  502:       * visit_exec_list() caches the node's next pointer before
        -:        -:  503:       * visiting it.  So we use foreach_in_list() instead.
        -:        -:  504:       *
        -:        -:  505:       * foreach_in_list() isn't safe if the node being visited gets
        -:        -:  506:       * removed, but fortunately this visitor doesn't do that.
        -:        -:  507:       */
        -:        -:  508:
      270:      354:  509:      block_record saved_block = this->block;
      270:      354:  510:      this->block = block_record();
     1126:     1294:  511:      foreach_in_list(ir_instruction, node, list) {
      856:      940:  512:         node->accept(this);
        -:        -:  513:      }
      270:      354:  514:      block_record ret = this->block;
      270:      354:  515:      this->block = saved_block;
      270:      354:  516:      return ret;
        -:        -:  517:   }
        -:        -:  518:
       99:      133:  519:   virtual void visit(ir_if *ir)
        -:        -:  520:   {
       99:      133:  521:      if(this->loop.nesting_depth == 0 && ir->get_next()->is_tail_sentinel())
        4:       20:  522:         this->loop.in_if_at_the_end_of_the_loop = true;
        -:        -:  523:
       99:      133:  524:      ++this->function.nesting_depth;
       99:      133:  525:      ++this->loop.nesting_depth;
        -:        -:  526:
       99:      133:  527:      block_record block_records[2];
        -:        -:  528:      ir_jump* jumps[2];
        -:        -:  529:
        -:        -:  530:      /* Recursively lower nested jumps.  This satisfies the
        -:        -:  531:       * CONTAINED_JUMPS_LOWERED postcondition, except in the case of
        -:        -:  532:       * unconditional jumps at the end of ir->then_instructions and
        -:        -:  533:       * ir->else_instructions, which are handled below.
        -:        -:  534:       */
       99:      133:  535:      block_records[0] = visit_block(&ir->then_instructions);
       99:      133:  536:      block_records[1] = visit_block(&ir->else_instructions);
        -:        -:  537:
        -:        -:  538:retry: /* we get here if we put code after the if inside a branch */
        -:        -:  539:
        -:        -:  540:      /* Determine which of ir->then_instructions and
        -:        -:  541:       * ir->else_instructions end with an unconditional jump.
        -:        -:  542:       */
      297:      399:  543:      for(unsigned i = 0; i < 2; ++i) {
      198:      266:  544:         exec_list& list = i ? ir->else_instructions : ir->then_instructions;
      198:      266:  545:         jumps[i] = 0;
      198:      266:  546:         if(!list.is_empty() && get_jump_strength((ir_instruction*)list.get_tail()))
       47:       81:  547:            jumps[i] = (ir_jump*)list.get_tail();
        -:        -:  548:      }
        -:        -:  549:
        -:        -:  550:      /* Loop until we have satisfied the CONTAINED_JUMPS_LOWERED
        -:        -:  551:       * postcondition by lowering jumps in both then_instructions and
        -:        -:  552:       * else_instructions.
        -:        -:  553:       */
        3:        3:  554:      for(;;) {
        -:        -:  555:         /* Determine the types of the jumps that terminate
        -:        -:  556:          * ir->then_instructions and ir->else_instructions.
        -:        -:  557:          */
        -:        -:  558:         jump_strength jump_strengths[2];
        -:        -:  559:
      306:      408:  560:         for(unsigned i = 0; i < 2; ++i) {
      204:      272:  561:            if(jumps[i]) {
       49:       83:  562:               jump_strengths[i] = block_records[i].min_strength;
       49:       83:  563:               assert(jump_strengths[i] == get_jump_strength(jumps[i]));
        -:        -:  564:            } else
      155:      189:  565:               jump_strengths[i] = strength_none;
        -:        -:  566:         }
        -:        -:  567:
        -:        -:  568:         /* If both code paths end in a jump, and the jumps are the
        -:        -:  569:          * same, and we are pulling out jumps, replace them with a
        -:        -:  570:          * single jump that comes after the if instruction.  The new
        -:        -:  571:          * jump will be visited next, and it will be lowered if
        -:        -:  572:          * necessary by the loop or conditional that encloses it.
        -:        -:  573:          */
      102:      136:  574:         if(pull_out_jumps && jump_strengths[0] == jump_strengths[1]) {
       55:       55:  575:            bool unify = true;
       55:       55:  576:            if(jump_strengths[0] == strength_continue)
    #####:    #####:  577:               ir->insert_after(new(ir) ir_loop_jump(ir_loop_jump::jump_continue));
       55:       55:  578:            else if(jump_strengths[0] == strength_break)
    #####:    #####:  579:               ir->insert_after(new(ir) ir_loop_jump(ir_loop_jump::jump_break));
        -:        -:  580:            /* FINISHME: unify returns with identical expressions */
       55:       55:  581:            else if(jump_strengths[0] == strength_return && this->function.signature->return_type->is_void())
    #####:    #####:  582:               ir->insert_after(new(ir) ir_return(NULL));
        -:        -:  583:	    else
       55:       55:  584:	       unify = false;
        -:        -:  585:
       55:       55:  586:            if(unify) {
    #####:    #####:  587:               jumps[0]->remove();
    #####:    #####:  588:               jumps[1]->remove();
    #####:    #####:  589:               this->progress = true;
        -:        -:  590:
        -:        -:  591:               /* Update jumps[] to reflect the fact that the jumps
        -:        -:  592:                * are gone, and update block_records[] to reflect the
        -:        -:  593:                * fact that control can now flow to the next
        -:        -:  594:                * instruction.
        -:        -:  595:                */
    #####:    #####:  596:               jumps[0] = 0;
    #####:    #####:  597:               jumps[1] = 0;
    #####:    #####:  598:               block_records[0].min_strength = strength_none;
    #####:    #####:  599:               block_records[1].min_strength = strength_none;
        -:        -:  600:
        -:        -:  601:               /* The CONTAINED_JUMPS_LOWERED postcondition is now
        -:        -:  602:                * satisfied, so we can break out of the loop.
        -:        -:  603:                */
       99:      133:  604:               break;
        -:        -:  605:            }
        -:        -:  606:         }
        -:        -:  607:
        -:        -:  608:         /* lower a jump: if both need to lowered, start with the strongest one, so that
        -:        -:  609:          * we might later unify the lowered version with the other one
        -:        -:  610:          */
        -:        -:  611:         bool should_lower[2];
      306:      408:  612:         for(unsigned i = 0; i < 2; ++i)
      204:      272:  613:            should_lower[i] = should_lower_jump(jumps[i]);
        -:        -:  614:
        -:        -:  615:         int lower;
      102:      136:  616:         if(should_lower[1] && should_lower[0])
        1:        1:  617:            lower = jump_strengths[1] > jump_strengths[0];
      101:      135:  618:         else if(should_lower[0])
        1:        1:  619:            lower = 0;
      100:      134:  620:         else if(should_lower[1])
        1:        1:  621:            lower = 1;
        -:        -:  622:         else
        -:        -:  623:            /* Neither code path ends in a jump that needs to be
        -:        -:  624:             * lowered, so the CONTAINED_JUMPS_LOWERED postcondition
        -:        -:  625:             * is satisfied and we can break out of the loop.
        -:        -:  626:             */
       99:      133:  627:            break;
        -:        -:  628:
        3:        3:  629:         if(jump_strengths[lower] == strength_return) {
        -:        -:  630:            /* To lower a return, we create a return flag (if the
        -:        -:  631:             * function doesn't have one already) and add instructions
        -:        -:  632:             * that: 1. store the return value (if this function has a
        -:        -:  633:             * non-void return) and 2. set the return flag
        -:        -:  634:             */
        3:        3:  635:            insert_lowered_return((ir_return*)jumps[lower]);
        3:        3:  636:            if(this->loop.loop) {
        -:        -:  637:               /* If we are in a loop, replace the return instruction
        -:        -:  638:                * with a break instruction, and then loop so that the
        -:        -:  639:                * break instruction can be lowered if necessary.
        -:        -:  640:                */
        1:        1:  641:               ir_loop_jump* lowered = 0;
        1:        1:  642:               lowered = new(ir) ir_loop_jump(ir_loop_jump::jump_break);
        -:        -:  643:               /* Note: we must update block_records and jumps to
        -:        -:  644:                * reflect the fact that the control path has been
        -:        -:  645:                * altered from a return to a break.
        -:        -:  646:                */
        1:        1:  647:               block_records[lower].min_strength = strength_break;
        1:        1:  648:               jumps[lower]->replace_with(lowered);
        1:        1:  649:               jumps[lower] = lowered;
        -:        -:  650:            } else {
        -:        -:  651:               /* If we are not in a loop, we then proceed as we would
        -:        -:  652:                * for a continue statement (set the execute flag to
        -:        -:  653:                * false to prevent the rest of the function from
        -:        -:  654:                * executing).
        -:        -:  655:                */
        2:        2:  656:               goto lower_continue;
        -:        -:  657:            }
        1:        1:  658:            this->progress = true;
    #####:    #####:  659:         } else if(jump_strengths[lower] == strength_break) {
        -:        -:  660:            /* To lower a break, we create a break flag (if the loop
        -:        -:  661:             * doesn't have one already) and add an instruction that
        -:        -:  662:             * sets it.
        -:        -:  663:             *
        -:        -:  664:             * Then we proceed as we would for a continue statement
        -:        -:  665:             * (set the execute flag to false to prevent the rest of
        -:        -:  666:             * the loop body from executing).
        -:        -:  667:             *
        -:        -:  668:             * The visit() function for the loop will ensure that the
        -:        -:  669:             * break flag is checked after executing the loop body.
        -:        -:  670:             */
    #####:    #####:  671:            jumps[lower]->insert_before(create_lowered_break());
    #####:    #####:  672:            goto lower_continue;
    #####:    #####:  673:         } else if(jump_strengths[lower] == strength_continue) {
        -:        -:  674:lower_continue:
        -:        -:  675:            /* To lower a continue, we create an execute flag (if the
        -:        -:  676:             * loop doesn't have one already) and replace the continue
        -:        -:  677:             * with an instruction that clears it.
        -:        -:  678:             *
        -:        -:  679:             * Note that this code path gets exercised when lowering
        -:        -:  680:             * return statements that are not inside a loop, so
        -:        -:  681:             * this->loop must be initialized even outside of loops.
        -:        -:  682:             */
        2:        2:  683:            ir_variable* execute_flag = this->loop.get_execute_flag();
        2:        2:  684:            jumps[lower]->replace_with(new(ir) ir_assignment(new (ir) ir_dereference_variable(execute_flag), new (ir) ir_constant(false), 0));
        -:        -:  685:            /* Note: we must update block_records and jumps to reflect
        -:        -:  686:             * the fact that the control path has been altered to an
        -:        -:  687:             * instruction that clears the execute flag.
        -:        -:  688:             */
        2:        2:  689:            jumps[lower] = 0;
        2:        2:  690:            block_records[lower].min_strength = strength_always_clears_execute_flag;
        2:        2:  691:            block_records[lower].may_clear_execute_flag = true;
        2:        2:  692:            this->progress = true;
        -:        -:  693:
        -:        -:  694:            /* Let the loop run again, in case the other branch of the
        -:        -:  695:             * if needs to be lowered too.
        -:        -:  696:             */
        -:        -:  697:         }
        -:        -:  698:      }
        -:        -:  699:
        -:        -:  700:      /* move out a jump out if possible */
       99:      133:  701:      if(pull_out_jumps) {
        -:        -:  702:         /* If one of the branches ends in a jump, and control cannot
        -:        -:  703:          * fall out the bottom of the other branch, then we can move
        -:        -:  704:          * the jump after the if.
        -:        -:  705:          *
        -:        -:  706:          * Set move_out to the branch we are moving a jump out of.
        -:        -:  707:          */
       99:      133:  708:         int move_out = -1;
       99:      133:  709:         if(jumps[0] && block_records[1].min_strength >= strength_continue)
    #####:    #####:  710:            move_out = 0;
       99:      133:  711:         else if(jumps[1] && block_records[0].min_strength >= strength_continue)
    #####:    #####:  712:            move_out = 1;
        -:        -:  713:
       99:      133:  714:         if(move_out >= 0)
        -:        -:  715:         {
    #####:    #####:  716:            jumps[move_out]->remove();
    #####:    #####:  717:            ir->insert_after(jumps[move_out]);
        -:        -:  718:            /* Note: we must update block_records and jumps to reflect
        -:        -:  719:             * the fact that the jump has been moved out of the if.
        -:        -:  720:             */
    #####:    #####:  721:            jumps[move_out] = 0;
    #####:    #####:  722:            block_records[move_out].min_strength = strength_none;
    #####:    #####:  723:            this->progress = true;
        -:        -:  724:         }
        -:        -:  725:      }
        -:        -:  726:
        -:        -:  727:      /* Now satisfy the ANALYSIS postcondition by setting
        -:        -:  728:       * this->block.min_strength and
        -:        -:  729:       * this->block.may_clear_execute_flag based on the
        -:        -:  730:       * characteristics of the two branches.
        -:        -:  731:       */
       99:      133:  732:      if(block_records[0].min_strength < block_records[1].min_strength)
    #####:    #####:  733:         this->block.min_strength = block_records[0].min_strength;
        -:        -:  734:      else
       99:      133:  735:         this->block.min_strength = block_records[1].min_strength;
       99:      133:  736:      this->block.may_clear_execute_flag = this->block.may_clear_execute_flag || block_records[0].may_clear_execute_flag || block_records[1].may_clear_execute_flag;
        -:        -:  737:
        -:        -:  738:      /* Now we need to clean up the instructions that follow the
        -:        -:  739:       * if.
        -:        -:  740:       *
        -:        -:  741:       * If those instructions are unreachable, then satisfy the
        -:        -:  742:       * DEAD_CODE_ELIMINATION postcondition by eliminating them.
        -:        -:  743:       * Otherwise that postcondition is already satisfied.
        -:        -:  744:       */
       99:      133:  745:      if(this->block.min_strength)
        1:        1:  746:         truncate_after_instruction(ir);
       98:      132:  747:      else if(this->block.may_clear_execute_flag)
        -:        -:  748:      {
        -:        -:  749:         /* If the "if" instruction might clear the execute flag, then
        -:        -:  750:          * we need to guard any instructions that follow so that they
        -:        -:  751:          * are only executed if the execute flag is set.
        -:        -:  752:          *
        -:        -:  753:          * If one of the branches of the "if" always clears the
        -:        -:  754:          * execute flag, and the other branch never clears it, then
        -:        -:  755:          * this is easy: just move all the instructions following the
        -:        -:  756:          * "if" into the branch that never clears it.
        -:        -:  757:          */
    #####:    #####:  758:         int move_into = -1;
    #####:    #####:  759:         if(block_records[0].min_strength && !block_records[1].may_clear_execute_flag)
    #####:    #####:  760:            move_into = 1;
    #####:    #####:  761:         else if(block_records[1].min_strength && !block_records[0].may_clear_execute_flag)
    #####:    #####:  762:            move_into = 0;
        -:        -:  763:
    #####:    #####:  764:         if(move_into >= 0) {
    #####:    #####:  765:            assert(!block_records[move_into].min_strength && !block_records[move_into].may_clear_execute_flag); /* otherwise, we just truncated */
        -:        -:  766:
    #####:    #####:  767:            exec_list* list = move_into ? &ir->else_instructions : &ir->then_instructions;
    #####:    #####:  768:            exec_node* next = ir->get_next();
    #####:    #####:  769:            if(!next->is_tail_sentinel()) {
    #####:    #####:  770:               move_outer_block_inside(ir, list);
        -:        -:  771:
        -:        -:  772:               /* If any instructions moved, then we need to visit
        -:        -:  773:                * them (since they are now inside the "if").  Since
        -:        -:  774:                * block_records[move_into] is in its default state
        -:        -:  775:                * (see assertion above), we can safely replace
        -:        -:  776:                * block_records[move_into] with the result of this
        -:        -:  777:                * analysis.
        -:        -:  778:                */
    #####:    #####:  779:               exec_list list;
    #####:    #####:  780:               list.head_sentinel.next = next;
    #####:    #####:  781:               block_records[move_into] = visit_block(&list);
        -:        -:  782:
        -:        -:  783:               /*
        -:        -:  784:                * Then we need to re-start our jump lowering, since one
        -:        -:  785:                * of the instructions we moved might be a jump that
        -:        -:  786:                * needs to be lowered.
        -:        -:  787:                */
    #####:    #####:  788:               this->progress = true;
    #####:    #####:  789:               goto retry;
        -:        -:  790:            }
        -:        -:  791:         } else {
        -:        -:  792:            /* If we get here, then the simple case didn't apply; we
        -:        -:  793:             * need to actually guard the instructions that follow.
        -:        -:  794:             *
        -:        -:  795:             * To avoid creating unnecessarily-deep nesting, first
        -:        -:  796:             * look through the instructions that follow and unwrap
        -:        -:  797:             * any instructions that that are already wrapped in the
        -:        -:  798:             * appropriate guard.
        -:        -:  799:             */
        -:        -:  800:            ir_instruction* ir_after;
    #####:    #####:  801:            for(ir_after = (ir_instruction*)ir->get_next(); !ir_after->is_tail_sentinel();)
        -:        -:  802:            {
    #####:    #####:  803:               ir_if* ir_if = ir_after->as_if();
    #####:    #####:  804:               if(ir_if && ir_if->else_instructions.is_empty()) {
    #####:    #####:  805:                  ir_dereference_variable* ir_if_cond_deref = ir_if->condition->as_dereference_variable();
    #####:    #####:  806:                  if(ir_if_cond_deref && ir_if_cond_deref->var == this->loop.execute_flag) {
    #####:    #####:  807:                     ir_instruction* ir_next = (ir_instruction*)ir_after->get_next();
    #####:    #####:  808:                     ir_after->insert_before(&ir_if->then_instructions);
    #####:    #####:  809:                     ir_after->remove();
    #####:    #####:  810:                     ir_after = ir_next;
    #####:    #####:  811:                     continue;
        -:        -:  812:                  }
        -:        -:  813:               }
    #####:    #####:  814:               ir_after = (ir_instruction*)ir_after->get_next();
        -:        -:  815:
        -:        -:  816:               /* only set this if we find any unprotected instruction */
    #####:    #####:  817:               this->progress = true;
        -:        -:  818:            }
        -:        -:  819:
        -:        -:  820:            /* Then, wrap all the instructions that follow in a single
        -:        -:  821:             * guard.
        -:        -:  822:             */
    #####:    #####:  823:            if(!ir->get_next()->is_tail_sentinel()) {
    #####:    #####:  824:               assert(this->loop.execute_flag);
    #####:    #####:  825:               ir_if* if_execute = new(ir) ir_if(new(ir) ir_dereference_variable(this->loop.execute_flag));
    #####:    #####:  826:               move_outer_block_inside(ir, &if_execute->then_instructions);
    #####:    #####:  827:               ir->insert_after(if_execute);
        -:        -:  828:            }
        -:        -:  829:         }
        -:        -:  830:      }
       99:      133:  831:      --this->loop.nesting_depth;
       99:      133:  832:      --this->function.nesting_depth;
       99:      133:  833:   }
        -:        -:  834:
       26:       42:  835:   virtual void visit(ir_loop *ir)
        -:        -:  836:   {
        -:        -:  837:      /* Visit the body of the loop, with a fresh data structure in
        -:        -:  838:       * this->loop so that the analysis we do here won't bleed into
        -:        -:  839:       * enclosing loops.
        -:        -:  840:       *
        -:        -:  841:       * We assume that all code after a loop is reachable from the
        -:        -:  842:       * loop (see comments on enum jump_strength), so the
        -:        -:  843:       * DEAD_CODE_ELIMINATION postcondition is automatically
        -:        -:  844:       * satisfied, as is the block.min_strength portion of the
        -:        -:  845:       * ANALYSIS postcondition.
        -:        -:  846:       *
        -:        -:  847:       * The block.may_clear_execute_flag portion of the ANALYSIS
        -:        -:  848:       * postcondition is automatically satisfied because execute
        -:        -:  849:       * flags do not propagate outside of loops.
        -:        -:  850:       *
        -:        -:  851:       * The loop.may_set_return_flag portion of the ANALYSIS
        -:        -:  852:       * postcondition is handled below.
        -:        -:  853:       */
       26:       42:  854:      ++this->function.nesting_depth;
       26:       42:  855:      loop_record saved_loop = this->loop;
       26:       42:  856:      this->loop = loop_record(this->function.signature, ir);
        -:        -:  857:
        -:        -:  858:      /* Recursively lower nested jumps.  This satisfies the
        -:        -:  859:       * CONTAINED_JUMPS_LOWERED postcondition, except in the case of
        -:        -:  860:       * an unconditional continue or return at the bottom of the
        -:        -:  861:       * loop, which are handled below.
        -:        -:  862:       */
       26:       42:  863:      block_record body = visit_block(&ir->body_instructions);
        -:        -:  864:
        -:        -:  865:      /* If the loop ends in an unconditional continue, eliminate it
        -:        -:  866:       * because it is redundant.
        -:        -:  867:       */
        -:        -:  868:      ir_instruction *ir_last
       26:       42:  869:         = (ir_instruction *) ir->body_instructions.get_tail();
       26:       42:  870:      if (get_jump_strength(ir_last) == strength_continue) {
    #####:    #####:  871:         ir_last->remove();
        -:        -:  872:      }
        -:        -:  873:
        -:        -:  874:      /* If the loop ends in an unconditional return, and we are
        -:        -:  875:       * lowering returns, lower it.
        -:        -:  876:       */
       26:       42:  877:      if (this->function.lower_return)
        4:        8:  878:         lower_return_unconditionally(ir_last);
        -:        -:  879:
       26:       42:  880:      if(body.min_strength >= strength_break) {
        -:        -:  881:         /* FINISHME: If the min_strength of the loop body is
        -:        -:  882:          * strength_break or strength_return, that means that it
        -:        -:  883:          * isn't a loop at all, since control flow always leaves the
        -:        -:  884:          * body of the loop via break or return.  In principle the
        -:        -:  885:          * loop could be eliminated in this case.  This optimization
        -:        -:  886:          * is not implemented yet.
        -:        -:  887:          */
        -:        -:  888:      }
        -:        -:  889:
       26:       42:  890:      if(this->loop.break_flag) {
        -:        -:  891:         /* We only get here if we are lowering breaks */
    #####:    #####:  892:         assert (lower_break);
        -:        -:  893:
        -:        -:  894:         /* If a break flag was generated while visiting the body of
        -:        -:  895:          * the loop, then at least one break was lowered, so we need
        -:        -:  896:          * to generate an if statement at the end of the loop that
        -:        -:  897:          * does a "break" if the break flag is set.  The break we
        -:        -:  898:          * generate won't violate the CONTAINED_JUMPS_LOWERED
        -:        -:  899:          * postcondition, because should_lower_jump() always returns
        -:        -:  900:          * false for a break that happens at the end of a loop.
        -:        -:  901:          *
        -:        -:  902:          * However, if the loop already ends in a conditional or
        -:        -:  903:          * unconditional break, then we need to lower that break,
        -:        -:  904:          * because it won't be at the end of the loop anymore.
        -:        -:  905:          */
    #####:    #####:  906:         lower_final_breaks(&ir->body_instructions);
        -:        -:  907:
    #####:    #####:  908:         ir_if* break_if = new(ir) ir_if(new(ir) ir_dereference_variable(this->loop.break_flag));
    #####:    #####:  909:         break_if->then_instructions.push_tail(new(ir) ir_loop_jump(ir_loop_jump::jump_break));
    #####:    #####:  910:         ir->body_instructions.push_tail(break_if);
        -:        -:  911:      }
        -:        -:  912:
        -:        -:  913:      /* If the body of the loop may set the return flag, then at
        -:        -:  914:       * least one return was lowered to a break, so we need to ensure
        -:        -:  915:       * that the return flag is checked after the body of the loop is
        -:        -:  916:       * executed.
        -:        -:  917:       */
       26:       42:  918:      if(this->loop.may_set_return_flag) {
        1:        2:  919:         assert(this->function.return_flag);
        -:        -:  920:         /* Generate the if statement to check the return flag */
        1:        2:  921:         ir_if* return_if = new(ir) ir_if(new(ir) ir_dereference_variable(this->function.return_flag));
        -:        -:  922:         /* Note: we also need to propagate the knowledge that the
        -:        -:  923:          * return flag may get set to the outer context.  This
        -:        -:  924:          * satisfies the loop.may_set_return_flag part of the
        -:        -:  925:          * ANALYSIS postcondition.
        -:        -:  926:          */
        1:        2:  927:         saved_loop.may_set_return_flag = true;
        1:        2:  928:         if(saved_loop.loop)
        -:        -:  929:            /* If this loop is nested inside another one, then the if
        -:        -:  930:             * statement that we generated should break out of that
        -:        -:  931:             * loop if the return flag is set.  Caller will lower that
        -:        -:  932:             * break statement if necessary.
        -:        -:  933:             */
    #####:        1:  934:            return_if->then_instructions.push_tail(new(ir) ir_loop_jump(ir_loop_jump::jump_break));
        -:        -:  935:         else {
        -:        -:  936:            /* Otherwise, ensure that the instructions that follow are only
        -:        -:  937:             * executed if the return flag is clear.  We can do that by moving
        -:        -:  938:             * those instructions into the else clause of the generated if
        -:        -:  939:             * statement.
        -:        -:  940:             */
        1:        1:  941:            move_outer_block_inside(ir, &return_if->else_instructions);
        -:        -:  942:
        -:        -:  943:            /* In case the loop is embedded inside an if add a new return to
        -:        -:  944:             * the return flag then branch and let a future pass tidy it up.
        -:        -:  945:             */
        1:        1:  946:            if (this->function.signature->return_type->is_void())
    #####:    #####:  947:               return_if->then_instructions.push_tail(new(ir) ir_return(NULL));
        -:        -:  948:            else {
        1:        1:  949:               assert(this->function.return_value);
        1:        1:  950:               ir_variable* return_value = this->function.return_value;
        1:        1:  951:               return_if->then_instructions.push_tail(
        2:        2:  952:                  new(ir) ir_return(new(ir) ir_dereference_variable(return_value)));
        -:        -:  953:            }
        -:        -:  954:         }
        -:        -:  955:
        1:        2:  956:         ir->insert_after(return_if);
        -:        -:  957:      }
        -:        -:  958:
       26:       42:  959:      this->loop = saved_loop;
       26:       42:  960:      --this->function.nesting_depth;
       26:       42:  961:   }
        -:        -:  962:
       23:       23:  963:   virtual void visit(ir_function_signature *ir)
        -:        -:  964:   {
        -:        -:  965:      /* these are not strictly necessary */
       23:       23:  966:      assert(!this->function.signature);
       23:       23:  967:      assert(!this->loop.loop);
        -:        -:  968:
        -:        -:  969:      bool lower_return;
       23:       23:  970:      if (strcmp(ir->function_name(), "main") == 0)
       19:       19:  971:         lower_return = lower_main_return;
        -:        -:  972:      else
        4:        4:  973:         lower_return = lower_sub_return;
        -:        -:  974:
       23:       23:  975:      function_record saved_function = this->function;
       23:       23:  976:      loop_record saved_loop = this->loop;
       23:       23:  977:      this->function = function_record(ir, lower_return);
       23:       23:  978:      this->loop = loop_record(ir);
        -:        -:  979:
       23:       23:  980:      assert(!this->loop.loop);
        -:        -:  981:
        -:        -:  982:      /* Visit the body of the function to lower any jumps that occur
        -:        -:  983:       * in it, except possibly an unconditional return statement at
        -:        -:  984:       * the end of it.
        -:        -:  985:       */
       23:       23:  986:      visit_block(&ir->body);
        -:        -:  987:
        -:        -:  988:      /* If the body ended in an unconditional return of non-void,
        -:        -:  989:       * then we don't need to lower it because it's the one canonical
        -:        -:  990:       * return.
        -:        -:  991:       *
        -:        -:  992:       * If the body ended in a return of void, eliminate it because
        -:        -:  993:       * it is redundant.
        -:        -:  994:       */
       42:       42:  995:      if (ir->return_type->is_void() &&
       19:       19:  996:          get_jump_strength((ir_instruction *) ir->body.get_tail())) {
    #####:    #####:  997:         ir_jump *jump = (ir_jump *) ir->body.get_tail();
    #####:    #####:  998:         assert (jump->ir_type == ir_type_return);
    #####:    #####:  999:         jump->remove();
        -:        -: 1000:      }
        -:        -: 1001:
       23:       23: 1002:      if(this->function.return_value)
        1:        1: 1003:         ir->body.push_tail(new(ir) ir_return(new (ir) ir_dereference_variable(this->function.return_value)));
        -:        -: 1004:
       23:       23: 1005:      this->loop = saved_loop;
       23:       23: 1006:      this->function = saved_function;
       23:       23: 1007:   }
        -:        -: 1008:
       23:       23: 1009:   virtual void visit(class ir_function * ir)
        -:        -: 1010:   {
       23:       23: 1011:      visit_block(&ir->signatures);
       23:       23: 1012:   }
        -:        -: 1013:};
        -:        -: 1014:
        -:        -: 1015:} /* anonymous namespace */
        -:        -: 1016:
        -:        -: 1017:bool
       18:       18: 1018:do_lower_jumps(exec_list *instructions, bool pull_out_jumps, bool lower_sub_return, bool lower_main_return, bool lower_continue, bool lower_break)
        -:        -: 1019:{
       36:       36: 1020:   ir_lower_jumps_visitor v;
       18:       18: 1021:   v.pull_out_jumps = pull_out_jumps;
       18:       18: 1022:   v.lower_continue = lower_continue;
       18:       18: 1023:   v.lower_break = lower_break;
       18:       18: 1024:   v.lower_sub_return = lower_sub_return;
       18:       18: 1025:   v.lower_main_return = lower_main_return;
        -:        -: 1026:
       18:       18: 1027:   bool progress_ever = false;
        1:        1: 1028:   do {
       19:       19: 1029:      v.progress = false;
       19:       19: 1030:      visit_exec_list(instructions, &v);
       19:       19: 1031:      progress_ever = v.progress || progress_ever;
       19:       19: 1032:   } while (v.progress);
        -:        -: 1033:
       36:       36: 1034:   return progress_ever;
        -:        -: 1035:}

src/compiler/lower_mat_op_to_vec.cpp.gcov

        -:        -:    0:Source:glsl/lower_mat_op_to_vec.cpp
        -:        -:    0:Graph:glsl/.libs/lower_mat_op_to_vec.gcno
        -:        -:    0:Data:glsl/.libs/lower_mat_op_to_vec.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_mat_op_to_vec.cpp
        -:        -:   26: *
        -:        -:   27: * Breaks matrix operation expressions down to a series of vector operations.
        -:        -:   28: *
        -:        -:   29: * Generally this is how we have to codegen matrix operations for a
        -:        -:   30: * GPU, so this gives us the chance to constant fold operations on a
        -:        -:   31: * column or row.
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:#include "ir.h"
        -:        -:   35:#include "ir_expression_flattening.h"
        -:        -:   36:#include "compiler/glsl_types.h"
        -:        -:   37:
        -:        -:   38:namespace {
        -:        -:   39:
        -:        -:   40:class ir_mat_op_to_vec_visitor : public ir_hierarchical_visitor {
        -:        -:   41:public:
        3:        3:   42:   ir_mat_op_to_vec_visitor()
        3:        3:   43:   {
        3:        3:   44:      this->made_progress = false;
        3:        3:   45:      this->mem_ctx = NULL;
        3:        3:   46:   }
        -:        -:   47:
        -:        -:   48:   ir_visitor_status visit_leave(ir_assignment *);
        -:        -:   49:
        -:        -:   50:   ir_dereference *get_column(ir_dereference *val, int col);
        -:        -:   51:   ir_rvalue *get_element(ir_dereference *val, int col, int row);
        -:        -:   52:
        -:        -:   53:   void do_mul_mat_mat(ir_dereference *result,
        -:        -:   54:		       ir_dereference *a, ir_dereference *b);
        -:        -:   55:   void do_mul_mat_vec(ir_dereference *result,
        -:        -:   56:		       ir_dereference *a, ir_dereference *b);
        -:        -:   57:   void do_mul_vec_mat(ir_dereference *result,
        -:        -:   58:		       ir_dereference *a, ir_dereference *b);
        -:        -:   59:   void do_mul_mat_scalar(ir_dereference *result,
        -:        -:   60:			  ir_dereference *a, ir_dereference *b);
        -:        -:   61:   void do_equal_mat_mat(ir_dereference *result, ir_dereference *a,
        -:        -:   62:			 ir_dereference *b, bool test_equal);
        -:        -:   63:
        -:        -:   64:   void *mem_ctx;
        -:        -:   65:   bool made_progress;
        -:        -:   66:};
        -:        -:   67:
        -:        -:   68:} /* anonymous namespace */
        -:        -:   69:
        -:        -:   70:static bool
      144:      154:   71:mat_op_to_vec_predicate(ir_instruction *ir)
        -:        -:   72:{
      144:      154:   73:   ir_expression *expr = ir->as_expression();
        -:        -:   74:   unsigned int i;
        -:        -:   75:
      144:      154:   76:   if (!expr)
      114:      122:   77:      return false;
        -:        -:   78:
       86:       92:   79:   for (i = 0; i < expr->get_num_operands(); i++) {
       56:       60:   80:      if (expr->operands[i]->type->is_matrix())
    #####:    #####:   81:	 return true;
        -:        -:   82:   }
        -:        -:   83:
       30:       32:   84:   return false;
        -:        -:   85:}
        -:        -:   86:
        -:        -:   87:bool
        3:        3:   88:do_mat_op_to_vec(exec_list *instructions)
        -:        -:   89:{
        3:        3:   90:   ir_mat_op_to_vec_visitor v;
        -:        -:   91:
        -:        -:   92:   /* Pull out any matrix expression to a separate assignment to a
        -:        -:   93:    * temp.  This will make our handling of the breakdown to
        -:        -:   94:    * operations on the matrix's vector components much easier.
        -:        -:   95:    */
        3:        3:   96:   do_expression_flattening(instructions, mat_op_to_vec_predicate);
        -:        -:   97:
        3:        3:   98:   visit_list_elements(&v, instructions);
        -:        -:   99:
        3:        3:  100:   return v.made_progress;
        -:        -:  101:}
        -:        -:  102:
        -:        -:  103:ir_rvalue *
    #####:    #####:  104:ir_mat_op_to_vec_visitor::get_element(ir_dereference *val, int col, int row)
        -:        -:  105:{
    #####:    #####:  106:   val = get_column(val, col);
        -:        -:  107:
    #####:    #####:  108:   return new(mem_ctx) ir_swizzle(val, row, 0, 0, 0, 1);
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:ir_dereference *
    #####:    #####:  112:ir_mat_op_to_vec_visitor::get_column(ir_dereference *val, int row)
        -:        -:  113:{
    #####:    #####:  114:   val = val->clone(mem_ctx, NULL);
        -:        -:  115:
    #####:    #####:  116:   if (val->type->is_matrix()) {
        -:        -:  117:      val = new(mem_ctx) ir_dereference_array(val,
    #####:    #####:  118:					      new(mem_ctx) ir_constant(row));
        -:        -:  119:   }
        -:        -:  120:
    #####:    #####:  121:   return val;
        -:        -:  122:}
        -:        -:  123:
        -:        -:  124:void
    #####:    #####:  125:ir_mat_op_to_vec_visitor::do_mul_mat_mat(ir_dereference *result,
        -:        -:  126:					 ir_dereference *a,
        -:        -:  127:					 ir_dereference *b)
        -:        -:  128:{
        -:        -:  129:   unsigned b_col, i;
        -:        -:  130:   ir_assignment *assign;
        -:        -:  131:   ir_expression *expr;
        -:        -:  132:
    #####:    #####:  133:   for (b_col = 0; b_col < b->type->matrix_columns; b_col++) {
        -:        -:  134:      /* first column */
        -:        -:  135:      expr = new(mem_ctx) ir_expression(ir_binop_mul,
        -:        -:  136:					get_column(a, 0),
    #####:    #####:  137:					get_element(b, b_col, 0));
        -:        -:  138:
        -:        -:  139:      /* following columns */
    #####:    #####:  140:      for (i = 1; i < a->type->matrix_columns; i++) {
        -:        -:  141:	 ir_expression *mul_expr;
        -:        -:  142:
        -:        -:  143:	 mul_expr = new(mem_ctx) ir_expression(ir_binop_mul,
    #####:    #####:  144:					       get_column(a, i),
    #####:    #####:  145:					       get_element(b, b_col, i));
        -:        -:  146:	 expr = new(mem_ctx) ir_expression(ir_binop_add,
        -:        -:  147:					   expr,
    #####:    #####:  148:					   mul_expr);
        -:        -:  149:      }
        -:        -:  150:
    #####:    #####:  151:      assign = new(mem_ctx) ir_assignment(get_column(result, b_col), expr);
    #####:    #####:  152:      base_ir->insert_before(assign);
        -:        -:  153:   }
    #####:    #####:  154:}
        -:        -:  155:
        -:        -:  156:void
    #####:    #####:  157:ir_mat_op_to_vec_visitor::do_mul_mat_vec(ir_dereference *result,
        -:        -:  158:					 ir_dereference *a,
        -:        -:  159:					 ir_dereference *b)
        -:        -:  160:{
        -:        -:  161:   unsigned i;
        -:        -:  162:   ir_assignment *assign;
        -:        -:  163:   ir_expression *expr;
        -:        -:  164:
        -:        -:  165:   /* first column */
        -:        -:  166:   expr = new(mem_ctx) ir_expression(ir_binop_mul,
        -:        -:  167:				     get_column(a, 0),
    #####:    #####:  168:				     get_element(b, 0, 0));
        -:        -:  169:
        -:        -:  170:   /* following columns */
    #####:    #####:  171:   for (i = 1; i < a->type->matrix_columns; i++) {
        -:        -:  172:      ir_expression *mul_expr;
        -:        -:  173:
        -:        -:  174:      mul_expr = new(mem_ctx) ir_expression(ir_binop_mul,
    #####:    #####:  175:					    get_column(a, i),
    #####:    #####:  176:					    get_element(b, 0, i));
    #####:    #####:  177:      expr = new(mem_ctx) ir_expression(ir_binop_add, expr, mul_expr);
        -:        -:  178:   }
        -:        -:  179:
    #####:    #####:  180:   result = result->clone(mem_ctx, NULL);
    #####:    #####:  181:   assign = new(mem_ctx) ir_assignment(result, expr);
    #####:    #####:  182:   base_ir->insert_before(assign);
    #####:    #####:  183:}
        -:        -:  184:
        -:        -:  185:void
    #####:    #####:  186:ir_mat_op_to_vec_visitor::do_mul_vec_mat(ir_dereference *result,
        -:        -:  187:					 ir_dereference *a,
        -:        -:  188:					 ir_dereference *b)
        -:        -:  189:{
        -:        -:  190:   unsigned i;
        -:        -:  191:
    #####:    #####:  192:   for (i = 0; i < b->type->matrix_columns; i++) {
        -:        -:  193:      ir_rvalue *column_result;
        -:        -:  194:      ir_expression *column_expr;
        -:        -:  195:      ir_assignment *column_assign;
        -:        -:  196:
    #####:    #####:  197:      column_result = result->clone(mem_ctx, NULL);
    #####:    #####:  198:      column_result = new(mem_ctx) ir_swizzle(column_result, i, 0, 0, 0, 1);
        -:        -:  199:
        -:        -:  200:      column_expr = new(mem_ctx) ir_expression(ir_binop_dot,
    #####:    #####:  201:					       a->clone(mem_ctx, NULL),
    #####:    #####:  202:					       get_column(b, i));
        -:        -:  203:
        -:        -:  204:      column_assign = new(mem_ctx) ir_assignment(column_result,
    #####:    #####:  205:						 column_expr);
    #####:    #####:  206:      base_ir->insert_before(column_assign);
        -:        -:  207:   }
    #####:    #####:  208:}
        -:        -:  209:
        -:        -:  210:void
    #####:    #####:  211:ir_mat_op_to_vec_visitor::do_mul_mat_scalar(ir_dereference *result,
        -:        -:  212:					    ir_dereference *a,
        -:        -:  213:					    ir_dereference *b)
        -:        -:  214:{
        -:        -:  215:   unsigned i;
        -:        -:  216:
    #####:    #####:  217:   for (i = 0; i < a->type->matrix_columns; i++) {
        -:        -:  218:      ir_expression *column_expr;
        -:        -:  219:      ir_assignment *column_assign;
        -:        -:  220:
        -:        -:  221:      column_expr = new(mem_ctx) ir_expression(ir_binop_mul,
    #####:    #####:  222:					       get_column(a, i),
    #####:    #####:  223:					       b->clone(mem_ctx, NULL));
        -:        -:  224:
    #####:    #####:  225:      column_assign = new(mem_ctx) ir_assignment(get_column(result, i),
    #####:    #####:  226:						 column_expr);
    #####:    #####:  227:      base_ir->insert_before(column_assign);
        -:        -:  228:   }
    #####:    #####:  229:}
        -:        -:  230:
        -:        -:  231:void
    #####:    #####:  232:ir_mat_op_to_vec_visitor::do_equal_mat_mat(ir_dereference *result,
        -:        -:  233:					   ir_dereference *a,
        -:        -:  234:					   ir_dereference *b,
        -:        -:  235:					   bool test_equal)
        -:        -:  236:{
        -:        -:  237:   /* This essentially implements the following GLSL:
        -:        -:  238:    *
        -:        -:  239:    * bool equal(mat4 a, mat4 b)
        -:        -:  240:    * {
        -:        -:  241:    *   return !any(bvec4(a[0] != b[0],
        -:        -:  242:    *                     a[1] != b[1],
        -:        -:  243:    *                     a[2] != b[2],
        -:        -:  244:    *                     a[3] != b[3]);
        -:        -:  245:    * }
        -:        -:  246:    *
        -:        -:  247:    * bool nequal(mat4 a, mat4 b)
        -:        -:  248:    * {
        -:        -:  249:    *   return any(bvec4(a[0] != b[0],
        -:        -:  250:    *                    a[1] != b[1],
        -:        -:  251:    *                    a[2] != b[2],
        -:        -:  252:    *                    a[3] != b[3]);
        -:        -:  253:    * }
        -:        -:  254:    */
    #####:    #####:  255:   const unsigned columns = a->type->matrix_columns;
        -:        -:  256:   const glsl_type *const bvec_type =
    #####:    #####:  257:      glsl_type::get_instance(GLSL_TYPE_BOOL, columns, 1);
        -:        -:  258:
        -:        -:  259:   ir_variable *const tmp_bvec =
        -:        -:  260:      new(this->mem_ctx) ir_variable(bvec_type, "mat_cmp_bvec",
    #####:    #####:  261:				     ir_var_temporary);
    #####:    #####:  262:   this->base_ir->insert_before(tmp_bvec);
        -:        -:  263:
    #####:    #####:  264:   for (unsigned i = 0; i < columns; i++) {
        -:        -:  265:      ir_expression *const cmp =
        -:        -:  266:	 new(this->mem_ctx) ir_expression(ir_binop_any_nequal,
    #####:    #####:  267:					  get_column(a, i),
    #####:    #####:  268:					  get_column(b, i));
        -:        -:  269:
        -:        -:  270:      ir_dereference *const lhs =
    #####:    #####:  271:	 new(this->mem_ctx) ir_dereference_variable(tmp_bvec);
        -:        -:  272:
        -:        -:  273:      ir_assignment *const assign =
    #####:    #####:  274:	 new(this->mem_ctx) ir_assignment(lhs, cmp, NULL, (1U << i));
        -:        -:  275:
    #####:    #####:  276:      this->base_ir->insert_before(assign);
        -:        -:  277:   }
        -:        -:  278:
    #####:    #####:  279:   ir_rvalue *const val = new(this->mem_ctx) ir_dereference_variable(tmp_bvec);
    #####:    #####:  280:   uint8_t vec_elems = val->type->vector_elements;
        -:        -:  281:   ir_expression *any =
        -:        -:  282:      new(this->mem_ctx) ir_expression(ir_binop_any_nequal, val,
        -:        -:  283:                                       new(this->mem_ctx) ir_constant(false,
    #####:    #####:  284:                                                                      vec_elems));
        -:        -:  285:
    #####:    #####:  286:   if (test_equal)
    #####:    #####:  287:      any = new(this->mem_ctx) ir_expression(ir_unop_logic_not, any);
        -:        -:  288:
        -:        -:  289:   ir_assignment *const assign =
    #####:    #####:  290:      new(mem_ctx) ir_assignment(result->clone(mem_ctx, NULL), any);
    #####:    #####:  291:   base_ir->insert_before(assign);
    #####:    #####:  292:}
        -:        -:  293:
        -:        -:  294:static bool
       13:       13:  295:has_matrix_operand(const ir_expression *expr, unsigned &columns)
        -:        -:  296:{
       39:       39:  297:   for (unsigned i = 0; i < expr->get_num_operands(); i++) {
       26:       26:  298:      if (expr->operands[i]->type->is_matrix()) {
    #####:    #####:  299:	 columns = expr->operands[i]->type->matrix_columns;
    #####:    #####:  300:	 return true;
        -:        -:  301:      }
        -:        -:  302:   }
        -:        -:  303:
       13:       13:  304:   return false;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:
        -:        -:  308:ir_visitor_status
       42:       42:  309:ir_mat_op_to_vec_visitor::visit_leave(ir_assignment *orig_assign)
        -:        -:  310:{
       42:       42:  311:   ir_expression *orig_expr = orig_assign->rhs->as_expression();
       42:       42:  312:   unsigned int i, matrix_columns = 1;
        -:        -:  313:   ir_dereference *op[2];
        -:        -:  314:
       42:       42:  315:   if (!orig_expr)
       29:       29:  316:      return visit_continue;
        -:        -:  317:
       13:       13:  318:   if (!has_matrix_operand(orig_expr, matrix_columns))
       13:       13:  319:      return visit_continue;
        -:        -:  320:
    #####:    #####:  321:   assert(orig_expr->get_num_operands() <= 2);
        -:        -:  322:
    #####:    #####:  323:   mem_ctx = ralloc_parent(orig_assign);
        -:        -:  324:
        -:        -:  325:   ir_dereference_variable *result =
    #####:    #####:  326:      orig_assign->lhs->as_dereference_variable();
    #####:    #####:  327:   assert(result);
        -:        -:  328:
        -:        -:  329:   /* Store the expression operands in temps so we can use them
        -:        -:  330:    * multiple times.
        -:        -:  331:    */
    #####:    #####:  332:   for (i = 0; i < orig_expr->get_num_operands(); i++) {
        -:        -:  333:      ir_assignment *assign;
    #####:    #####:  334:      ir_dereference *deref = orig_expr->operands[i]->as_dereference();
        -:        -:  335:
        -:        -:  336:      /* Avoid making a temporary if we don't need to to avoid aliasing. */
    #####:    #####:  337:      if (deref &&
    #####:    #####:  338:	  deref->variable_referenced() != result->variable_referenced()) {
    #####:    #####:  339:	 op[i] = deref;
    #####:    #####:  340:	 continue;
        -:        -:  341:      }
        -:        -:  342:
        -:        -:  343:      /* Otherwise, store the operand in a temporary generally if it's
        -:        -:  344:       * not a dereference.
        -:        -:  345:       */
    #####:    #####:  346:      ir_variable *var = new(mem_ctx) ir_variable(orig_expr->operands[i]->type,
        -:        -:  347:						  "mat_op_to_vec",
    #####:    #####:  348:						  ir_var_temporary);
    #####:    #####:  349:      base_ir->insert_before(var);
        -:        -:  350:
        -:        -:  351:      /* Note that we use this dereference for the assignment.  That means
        -:        -:  352:       * that others that want to use op[i] have to clone the deref.
        -:        -:  353:       */
    #####:    #####:  354:      op[i] = new(mem_ctx) ir_dereference_variable(var);
    #####:    #####:  355:      assign = new(mem_ctx) ir_assignment(op[i], orig_expr->operands[i]);
    #####:    #####:  356:      base_ir->insert_before(assign);
        -:        -:  357:   }
        -:        -:  358:
        -:        -:  359:   /* OK, time to break down this matrix operation. */
    #####:    #####:  360:   switch (orig_expr->operation) {
        -:        -:  361:   case ir_unop_d2f:
        -:        -:  362:   case ir_unop_f2d:
        -:        -:  363:   case ir_unop_neg: {
        -:        -:  364:      /* Apply the operation to each column.*/
    #####:    #####:  365:      for (i = 0; i < matrix_columns; i++) {
        -:        -:  366:	 ir_expression *column_expr;
        -:        -:  367:	 ir_assignment *column_assign;
        -:        -:  368:
    #####:    #####:  369:	 column_expr = new(mem_ctx) ir_expression(orig_expr->operation,
    #####:    #####:  370:						  get_column(op[0], i));
        -:        -:  371:
    #####:    #####:  372:	 column_assign = new(mem_ctx) ir_assignment(get_column(result, i),
    #####:    #####:  373:						    column_expr);
    #####:    #####:  374:	 assert(column_assign->write_mask != 0);
    #####:    #####:  375:	 base_ir->insert_before(column_assign);
        -:        -:  376:      }
    #####:    #####:  377:      break;
        -:        -:  378:   }
        -:        -:  379:   case ir_binop_add:
        -:        -:  380:   case ir_binop_sub:
        -:        -:  381:   case ir_binop_div:
        -:        -:  382:   case ir_binop_mod: {
        -:        -:  383:      /* For most operations, the matrix version is just going
        -:        -:  384:       * column-wise through and applying the operation to each column
        -:        -:  385:       * if available.
        -:        -:  386:       */
    #####:    #####:  387:      for (i = 0; i < matrix_columns; i++) {
        -:        -:  388:	 ir_expression *column_expr;
        -:        -:  389:	 ir_assignment *column_assign;
        -:        -:  390:
    #####:    #####:  391:	 column_expr = new(mem_ctx) ir_expression(orig_expr->operation,
    #####:    #####:  392:						  get_column(op[0], i),
    #####:    #####:  393:						  get_column(op[1], i));
        -:        -:  394:
    #####:    #####:  395:	 column_assign = new(mem_ctx) ir_assignment(get_column(result, i),
    #####:    #####:  396:						    column_expr);
    #####:    #####:  397:	 assert(column_assign->write_mask != 0);
    #####:    #####:  398:	 base_ir->insert_before(column_assign);
        -:        -:  399:      }
    #####:    #####:  400:      break;
        -:        -:  401:   }
        -:        -:  402:   case ir_binop_mul:
    #####:    #####:  403:      if (op[0]->type->is_matrix()) {
    #####:    #####:  404:	 if (op[1]->type->is_matrix()) {
    #####:    #####:  405:	    do_mul_mat_mat(result, op[0], op[1]);
    #####:    #####:  406:	 } else if (op[1]->type->is_vector()) {
    #####:    #####:  407:	    do_mul_mat_vec(result, op[0], op[1]);
        -:        -:  408:	 } else {
    #####:    #####:  409:	    assert(op[1]->type->is_scalar());
    #####:    #####:  410:	    do_mul_mat_scalar(result, op[0], op[1]);
        -:        -:  411:	 }
        -:        -:  412:      } else {
    #####:    #####:  413:	 assert(op[1]->type->is_matrix());
    #####:    #####:  414:	 if (op[0]->type->is_vector()) {
    #####:    #####:  415:	    do_mul_vec_mat(result, op[0], op[1]);
        -:        -:  416:	 } else {
    #####:    #####:  417:	    assert(op[0]->type->is_scalar());
    #####:    #####:  418:	    do_mul_mat_scalar(result, op[1], op[0]);
        -:        -:  419:	 }
        -:        -:  420:      }
    #####:    #####:  421:      break;
        -:        -:  422:
        -:        -:  423:   case ir_binop_all_equal:
        -:        -:  424:   case ir_binop_any_nequal:
    #####:    #####:  425:      do_equal_mat_mat(result, op[1], op[0],
    #####:    #####:  426:		       (orig_expr->operation == ir_binop_all_equal));
    #####:    #####:  427:      break;
        -:        -:  428:
        -:        -:  429:   default:
    #####:    #####:  430:      printf("FINISHME: Handle matrix operation for %s\n",
    #####:    #####:  431:	     ir_expression_operation_strings[orig_expr->operation]);
    #####:    #####:  432:      abort();
        -:        -:  433:   }
    #####:    #####:  434:   orig_assign->remove();
    #####:    #####:  435:   this->made_progress = true;
        -:        -:  436:
    #####:    #####:  437:   return visit_continue;
        -:        -:  438:}

src/compiler/lower_named_interface_blocks.cpp.gcov

        -:        -:    0:Source:glsl/lower_named_interface_blocks.cpp
        -:        -:    0:Graph:glsl/.libs/lower_named_interface_blocks.gcno
        -:        -:    0:Data:glsl/.libs/lower_named_interface_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright (c) 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_named_interface_blocks.cpp
        -:        -:   26: *
        -:        -:   27: * This lowering pass converts all interface blocks with instance names
        -:        -:   28: * into interface blocks without an instance name.
        -:        -:   29: *
        -:        -:   30: * For example, the following shader:
        -:        -:   31: *
        -:        -:   32: *   out block {
        -:        -:   33: *     float block_var;
        -:        -:   34: *   } inst_name;
        -:        -:   35: *
        -:        -:   36: *   main()
        -:        -:   37: *   {
        -:        -:   38: *     inst_name.block_var = 0.0;
        -:        -:   39: *   }
        -:        -:   40: *
        -:        -:   41: * Is rewritten to:
        -:        -:   42: *
        -:        -:   43: *   out block {
        -:        -:   44: *     float block_var;
        -:        -:   45: *   };
        -:        -:   46: *
        -:        -:   47: *   main()
        -:        -:   48: *   {
        -:        -:   49: *     block_var = 0.0;
        -:        -:   50: *   }
        -:        -:   51: *
        -:        -:   52: * This takes place after the shader code has already been verified with
        -:        -:   53: * the interface name in place.
        -:        -:   54: *
        -:        -:   55: * The linking phase will use the interface block name rather than the
        -:        -:   56: * interface's instance name when linking interfaces.
        -:        -:   57: *
        -:        -:   58: * This modification to the ir allows our currently existing dead code
        -:        -:   59: * elimination to work with interface blocks without changes.
        -:        -:   60: */
        -:        -:   61:
        -:        -:   62:#include "glsl_symbol_table.h"
        -:        -:   63:#include "ir.h"
        -:        -:   64:#include "ir_optimization.h"
        -:        -:   65:#include "ir_rvalue_visitor.h"
        -:        -:   66:#include "util/hash_table.h"
        -:        -:   67:
        -:        -:   68:static const glsl_type *
    #####:    #####:   69:process_array_type(const glsl_type *type, unsigned idx)
        -:        -:   70:{
    #####:    #####:   71:   const glsl_type *element_type = type->fields.array;
    #####:    #####:   72:   if (element_type->is_array()) {
    #####:    #####:   73:      const glsl_type *new_array_type = process_array_type(element_type, idx);
    #####:    #####:   74:      return glsl_type::get_array_instance(new_array_type, type->length);
        -:        -:   75:   } else {
    #####:    #####:   76:      return glsl_type::get_array_instance(
    #####:    #####:   77:         element_type->fields.structure[idx].type, type->length);
        -:        -:   78:   }
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:static ir_rvalue *
    #####:    #####:   82:process_array_ir(void * const mem_ctx,
        -:        -:   83:                 ir_dereference_array *deref_array_prev,
        -:        -:   84:                 ir_rvalue *deref_var)
        -:        -:   85:{
        -:        -:   86:   ir_dereference_array *deref_array =
    #####:    #####:   87:      deref_array_prev->array->as_dereference_array();
        -:        -:   88:
    #####:    #####:   89:   if (deref_array == NULL) {
        -:        -:   90:      return new(mem_ctx) ir_dereference_array(deref_var,
    #####:    #####:   91:                                               deref_array_prev->array_index);
        -:        -:   92:   } else {
        -:        -:   93:      deref_array = (ir_dereference_array *) process_array_ir(mem_ctx,
        -:        -:   94:                                                              deref_array,
    #####:    #####:   95:                                                              deref_var);
        -:        -:   96:      return new(mem_ctx) ir_dereference_array(deref_array,
    #####:    #####:   97:                                               deref_array_prev->array_index);
        -:        -:   98:   }
        -:        -:   99:}
        -:        -:  100:
        -:        -:  101:namespace {
        -:        -:  102:
        -:        -:  103:class flatten_named_interface_blocks_declarations : public ir_rvalue_visitor
        -:        -:  104:{
        -:        -:  105:public:
        -:        -:  106:   void * const mem_ctx;
        -:        -:  107:   hash_table *interface_namespace;
        -:        -:  108:
        3:        3:  109:   flatten_named_interface_blocks_declarations(void *mem_ctx)
        -:        -:  110:      : mem_ctx(mem_ctx),
        3:        3:  111:        interface_namespace(NULL)
        -:        -:  112:   {
        3:        3:  113:   }
        -:        -:  114:
        -:        -:  115:   void run(exec_list *instructions);
        -:        -:  116:
        -:        -:  117:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:  118:   virtual void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  119:};
        -:        -:  120:
        -:        -:  121:} /* anonymous namespace */
        -:        -:  122:
        -:        -:  123:void
        3:        3:  124:flatten_named_interface_blocks_declarations::run(exec_list *instructions)
        -:        -:  125:{
        3:        3:  126:   interface_namespace = _mesa_hash_table_create(NULL, _mesa_key_hash_string,
        3:        3:  127:                                                 _mesa_key_string_equal);
        -:        -:  128:
        -:        -:  129:   /* First pass: adjust instance block variables with an instance name
        -:        -:  130:    * to not have an instance name.
        -:        -:  131:    *
        -:        -:  132:    * The interface block variables are stored in the interface_namespace
        -:        -:  133:    * hash table so they can be used in the second pass.
        -:        -:  134:    */
      112:      112:  135:   foreach_in_list_safe(ir_instruction, node, instructions) {
      109:      109:  136:      ir_variable *var = node->as_variable();
      109:      109:  137:      if (!var || !var->is_interface_instance())
      109:      109:  138:         continue;
        -:        -:  139:
        -:        -:  140:      /* It should be possible to handle uniforms during this pass,
        -:        -:  141:       * but, this will require changes to the other uniform block
        -:        -:  142:       * support code.
        -:        -:  143:       */
    #####:    #####:  144:      if (var->data.mode == ir_var_uniform ||
    #####:    #####:  145:          var->data.mode == ir_var_shader_storage)
    #####:    #####:  146:         continue;
        -:        -:  147:
    #####:    #####:  148:      const glsl_type * iface_t = var->type->without_array();
    #####:    #####:  149:      exec_node *insert_pos = var;
        -:        -:  150:
    #####:    #####:  151:      assert (iface_t->is_interface());
        -:        -:  152:
    #####:    #####:  153:      for (unsigned i = 0; i < iface_t->length; i++) {
    #####:    #####:  154:         const char * field_name = iface_t->fields.structure[i].name;
        -:        -:  155:         char *iface_field_name =
    #####:    #####:  156:            ralloc_asprintf(mem_ctx, "%s %s.%s.%s",
    #####:    #####:  157:                            var->data.mode == ir_var_shader_in ? "in" : "out",
    #####:    #####:  158:                            iface_t->name, var->name, field_name);
        -:        -:  159:
    #####:    #####:  160:         hash_entry *entry = _mesa_hash_table_search(interface_namespace,
    #####:    #####:  161:                                                     iface_field_name);
    #####:    #####:  162:         ir_variable *found_var = entry ? (ir_variable *) entry->data : NULL;
    #####:    #####:  163:         if (!found_var) {
        -:        -:  164:            ir_variable *new_var;
        -:        -:  165:            char *var_name =
    #####:    #####:  166:               ralloc_strdup(mem_ctx, iface_t->fields.structure[i].name);
    #####:    #####:  167:            if (!var->type->is_array()) {
        -:        -:  168:               new_var =
    #####:    #####:  169:                  new(mem_ctx) ir_variable(iface_t->fields.structure[i].type,
        -:        -:  170:                                           var_name,
    #####:    #####:  171:                                           (ir_variable_mode) var->data.mode);
        -:        -:  172:            } else {
        -:        -:  173:               const glsl_type *new_array_type =
    #####:    #####:  174:                  process_array_type(var->type, i);
        -:        -:  175:               new_var =
        -:        -:  176:                  new(mem_ctx) ir_variable(new_array_type,
        -:        -:  177:                                           var_name,
    #####:    #####:  178:                                           (ir_variable_mode) var->data.mode);
        -:        -:  179:            }
    #####:    #####:  180:            new_var->data.location = iface_t->fields.structure[i].location;
    #####:    #####:  181:            new_var->data.explicit_location = (new_var->data.location >= 0);
    #####:    #####:  182:            new_var->data.offset = iface_t->fields.structure[i].offset;
        -:        -:  183:            new_var->data.explicit_xfb_offset =
    #####:    #####:  184:               (iface_t->fields.structure[i].offset >= 0);
        -:        -:  185:            new_var->data.xfb_buffer =
    #####:    #####:  186:               iface_t->fields.structure[i].xfb_buffer;
        -:        -:  187:            new_var->data.explicit_xfb_buffer =
    #####:    #####:  188:               iface_t->fields.structure[i].explicit_xfb_buffer;
        -:        -:  189:            new_var->data.interpolation =
    #####:    #####:  190:               iface_t->fields.structure[i].interpolation;
    #####:    #####:  191:            new_var->data.centroid = iface_t->fields.structure[i].centroid;
    #####:    #####:  192:            new_var->data.sample = iface_t->fields.structure[i].sample;
    #####:    #####:  193:            new_var->data.patch = iface_t->fields.structure[i].patch;
    #####:    #####:  194:            new_var->data.stream = var->data.stream;
    #####:    #####:  195:            new_var->data.how_declared = var->data.how_declared;
    #####:    #####:  196:            new_var->data.from_named_ifc_block = 1;
        -:        -:  197:
    #####:    #####:  198:            new_var->init_interface_type(var->type);
    #####:    #####:  199:            _mesa_hash_table_insert(interface_namespace, iface_field_name,
    #####:    #####:  200:                                    new_var);
    #####:    #####:  201:            insert_pos->insert_after(new_var);
    #####:    #####:  202:            insert_pos = new_var;
        -:        -:  203:         }
        -:        -:  204:      }
    #####:    #####:  205:      var->remove();
        -:        -:  206:   }
        -:        -:  207:
        -:        -:  208:   /* Second pass: visit all ir_dereference_record instances, and if they
        -:        -:  209:    * reference an interface block, then flatten the refererence out.
        -:        -:  210:    */
        3:        3:  211:   visit_list_elements(this, instructions);
        3:        3:  212:   _mesa_hash_table_destroy(interface_namespace, NULL);
        3:        3:  213:   interface_namespace = NULL;
        3:        3:  214:}
        -:        -:  215:
        -:        -:  216:ir_visitor_status
       32:       32:  217:flatten_named_interface_blocks_declarations::visit_leave(ir_assignment *ir)
        -:        -:  218:{
       32:       32:  219:   ir_dereference_record *lhs_rec = ir->lhs->as_dereference_record();
        -:        -:  220:
       32:       32:  221:   ir_variable *lhs_var =  ir->lhs->variable_referenced();
       32:       32:  222:   if (lhs_var && lhs_var->get_interface_type()) {
        1:        1:  223:      lhs_var->data.assigned = 1;
        -:        -:  224:   }
        -:        -:  225:
       32:       32:  226:   if (lhs_rec) {
    #####:    #####:  227:      ir_rvalue *lhs_rec_tmp = lhs_rec;
    #####:    #####:  228:      handle_rvalue(&lhs_rec_tmp);
    #####:    #####:  229:      if (lhs_rec_tmp != lhs_rec) {
    #####:    #####:  230:         ir->set_lhs(lhs_rec_tmp);
        -:        -:  231:      }
        -:        -:  232:
    #####:    #####:  233:      ir_variable *lhs_var =  lhs_rec_tmp->variable_referenced();
    #####:    #####:  234:      if (lhs_var) {
    #####:    #####:  235:         lhs_var->data.assigned = 1;
        -:        -:  236:      }
        -:        -:  237:   }
       32:       32:  238:   return rvalue_visit(ir);
        -:        -:  239:}
        -:        -:  240:
        -:        -:  241:void
      147:      152:  242:flatten_named_interface_blocks_declarations::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  243:{
      147:      152:  244:   if (*rvalue == NULL)
       32:       32:  245:      return;
        -:        -:  246:
      115:      120:  247:   ir_dereference_record *ir = (*rvalue)->as_dereference_record();
      115:      120:  248:   if (ir == NULL)
      115:      120:  249:      return;
        -:        -:  250:
    #####:    #####:  251:   ir_variable *var = ir->variable_referenced();
    #####:    #####:  252:   if (var == NULL)
    #####:    #####:  253:      return;
        -:        -:  254:
    #####:    #####:  255:   if (!var->is_interface_instance())
    #####:    #####:  256:      return;
        -:        -:  257:
        -:        -:  258:   /* It should be possible to handle uniforms during this pass,
        -:        -:  259:    * but, this will require changes to the other uniform block
        -:        -:  260:    * support code.
        -:        -:  261:    */
    #####:    #####:  262:   if (var->data.mode == ir_var_uniform || var->data.mode == ir_var_shader_storage)
    #####:    #####:  263:      return;
        -:        -:  264:
    #####:    #####:  265:   if (var->get_interface_type() != NULL) {
        -:        -:  266:      char *iface_field_name =
    #####:    #####:  267:         ralloc_asprintf(mem_ctx, "%s %s.%s.%s",
    #####:    #####:  268:                         var->data.mode == ir_var_shader_in ? "in" : "out",
    #####:    #####:  269:                         var->get_interface_type()->name,
    #####:    #####:  270:                         var->name, ir->field);
        -:        -:  271:
        -:        -:  272:      /* Find the variable in the set of flattened interface blocks */
    #####:    #####:  273:      hash_entry *entry = _mesa_hash_table_search(interface_namespace,
    #####:    #####:  274:                                                  iface_field_name);
    #####:    #####:  275:      assert(entry);
    #####:    #####:  276:      ir_variable *found_var = (ir_variable *) entry->data;
        -:        -:  277:
        -:        -:  278:      ir_dereference_variable *deref_var =
    #####:    #####:  279:         new(mem_ctx) ir_dereference_variable(found_var);
        -:        -:  280:
        -:        -:  281:      ir_dereference_array *deref_array =
    #####:    #####:  282:         ir->record->as_dereference_array();
    #####:    #####:  283:      if (deref_array != NULL) {
    #####:    #####:  284:         *rvalue = process_array_ir(mem_ctx, deref_array,
    #####:    #####:  285:                                    (ir_rvalue *)deref_var);
        -:        -:  286:      } else {
    #####:    #####:  287:         *rvalue = deref_var;
        -:        -:  288:      }
        -:        -:  289:   }
        -:        -:  290:}
        -:        -:  291:
        -:        -:  292:void
        3:        3:  293:lower_named_interface_blocks(void *mem_ctx, gl_linked_shader *shader)
        -:        -:  294:{
        3:        3:  295:   flatten_named_interface_blocks_declarations v_decl(mem_ctx);
        3:        3:  296:   v_decl.run(shader->ir);
        3:        3:  297:}
        -:        -:  298:

src/compiler/lower_noise.cpp.gcov

        -:        -:    0:Source:glsl/lower_noise.cpp
        -:        -:    0:Graph:glsl/.libs/lower_noise.gcno
        -:        -:    0:Data:glsl/.libs/lower_noise.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_noise.cpp
        -:        -:   26: * IR lower pass to remove noise opcodes.
        -:        -:   27: *
        -:        -:   28: * \author Ian Romanick <ian.d.romanick@intel.com>
        -:        -:   29: */
        -:        -:   30:
        -:        -:   31:#include "ir.h"
        -:        -:   32:#include "ir_rvalue_visitor.h"
        -:        -:   33:
        -:        -:   34:class lower_noise_visitor : public ir_rvalue_visitor {
        -:        -:   35:public:
        3:        3:   36:   lower_noise_visitor() : progress(false)
        -:        -:   37:   {
        -:        -:   38:      /* empty */
        3:        3:   39:   }
        -:        -:   40:
      285:      295:   41:   void handle_rvalue(ir_rvalue **rvalue)
        -:        -:   42:   {
      285:      295:   43:      if (!*rvalue)
       61:       61:   44:	 return;
        -:        -:   45:
      224:      234:   46:      ir_expression *expr = (*rvalue)->as_expression();
      224:      234:   47:      if (!expr)
      190:      198:   48:	 return;
        -:        -:   49:
        -:        -:   50:      /* In the future, ir_unop_noise may be replaced by a call to a function
        -:        -:   51:       * that implements noise.  No hardware has a noise instruction.
        -:        -:   52:       */
       34:       36:   53:      if (expr->operation == ir_unop_noise) {
    #####:    #####:   54:	 *rvalue = ir_constant::zero(ralloc_parent(expr), expr->type);
    #####:    #####:   55:	 this->progress = true;
        -:        -:   56:      }
        -:        -:   57:   }
        -:        -:   58:
        -:        -:   59:   bool progress;
        -:        -:   60:};
        -:        -:   61:
        -:        -:   62:
        -:        -:   63:bool
        3:        3:   64:lower_noise(exec_list *instructions)
        -:        -:   65:{
        3:        3:   66:   lower_noise_visitor v;
        -:        -:   67:
        3:        3:   68:   visit_list_elements(&v, instructions);
        -:        -:   69:
        3:        3:   70:   return v.progress;
        -:        -:   71:}

src/compiler/lower_offset_array.cpp.gcov

        -:        -:    0:Source:glsl/lower_offset_array.cpp
        -:        -:    0:Graph:glsl/.libs/lower_offset_array.gcno
        -:        -:    0:Data:glsl/.libs/lower_offset_array.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_offset_array.cpp
        -:        -:   26: *
        -:        -:   27: * IR lower pass to decompose ir_texture ir_tg4 with an array of offsets
        -:        -:   28: * into four ir_tg4s with a single ivec2 offset, select the .w component of each,
        -:        -:   29: * and return those four values packed into a gvec4.
        -:        -:   30: *
        -:        -:   31: * \author Chris Forbes <chrisf@ijw.co.nz>
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:#include "compiler/glsl_types.h"
        -:        -:   35:#include "ir.h"
        -:        -:   36:#include "ir_builder.h"
        -:        -:   37:#include "ir_optimization.h"
        -:        -:   38:#include "ir_rvalue_visitor.h"
        -:        -:   39:
        -:        -:   40:using namespace ir_builder;
        -:        -:   41:
        -:        -:   42:class lower_offset_array_visitor : public ir_rvalue_visitor {
        -:        -:   43:public:
        3:        3:   44:   lower_offset_array_visitor()
        3:        3:   45:   {
        3:        3:   46:      progress = false;
        3:        3:   47:   }
        -:        -:   48:
        -:        -:   49:   void handle_rvalue(ir_rvalue **rv);
        -:        -:   50:
        -:        -:   51:   bool progress;
        -:        -:   52:};
        -:        -:   53:
        -:        -:   54:void
      285:      295:   55:lower_offset_array_visitor::handle_rvalue(ir_rvalue **rv)
        -:        -:   56:{
      285:      295:   57:   if (*rv == NULL || (*rv)->ir_type != ir_type_texture)
      285:      295:   58:      return;
        -:        -:   59:
    #####:    #####:   60:   ir_texture *ir = (ir_texture *) *rv;
    #####:    #####:   61:   if (ir->op != ir_tg4 || !ir->offset || !ir->offset->type->is_array())
    #####:    #####:   62:      return;
        -:        -:   63:
    #####:    #####:   64:   void *mem_ctx = ralloc_parent(ir);
        -:        -:   65:
        -:        -:   66:   ir_variable *var =
    #####:    #####:   67:      new (mem_ctx) ir_variable(ir->type, "result", ir_var_temporary);
    #####:    #####:   68:   base_ir->insert_before(var);
        -:        -:   69:
    #####:    #####:   70:   for (int i = 0; i < 4; i++) {
    #####:    #####:   71:      ir_texture *tex = ir->clone(mem_ctx, NULL);
        -:        -:   72:      tex->offset = new (mem_ctx) ir_dereference_array(tex->offset,
    #####:    #####:   73:            new (mem_ctx) ir_constant(i));
        -:        -:   74:
    #####:    #####:   75:      base_ir->insert_before(assign(var, swizzle_w(tex), 1 << i));
        -:        -:   76:   }
        -:        -:   77:
    #####:    #####:   78:   *rv = new (mem_ctx) ir_dereference_variable(var);
        -:        -:   79:
    #####:    #####:   80:   progress = true;
        -:        -:   81:}
        -:        -:   82:
        -:        -:   83:bool
        3:        3:   84:lower_offset_arrays(exec_list *instructions)
        -:        -:   85:{
        3:        3:   86:   lower_offset_array_visitor v;
        -:        -:   87:
        3:        3:   88:   visit_list_elements(&v, instructions);
        -:        -:   89:
        3:        3:   90:   return v.progress;
        -:        -:   91:}

src/compiler/lower_packing_builtins.cpp.gcov

        -:        -:    0:Source:glsl/lower_packing_builtins.cpp
        -:        -:    0:Graph:glsl/.libs/lower_packing_builtins.gcno
        -:        -:    0:Data:glsl/.libs/lower_packing_builtins.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "ir.h"
        -:        -:   25:#include "ir_builder.h"
        -:        -:   26:#include "ir_optimization.h"
        -:        -:   27:#include "ir_rvalue_visitor.h"
        -:        -:   28:
        -:        -:   29:namespace {
        -:        -:   30:
        -:        -:   31:using namespace ir_builder;
        -:        -:   32:
        -:        -:   33:/**
        -:        -:   34: * A visitor that lowers built-in floating-point pack/unpack expressions
        -:        -:   35: * such packSnorm2x16.
        -:        -:   36: */
        -:        -:   37:class lower_packing_builtins_visitor : public ir_rvalue_visitor {
        -:        -:   38:public:
        -:        -:   39:   /**
        -:        -:   40:    * \param op_mask is a bitmask of `enum lower_packing_builtins_op`
        -:        -:   41:    */
        3:        3:   42:   explicit lower_packing_builtins_visitor(int op_mask)
        -:        -:   43:      : op_mask(op_mask),
        3:        3:   44:        progress(false)
        -:        -:   45:   {
        3:        3:   46:      factory.instructions = &factory_instructions;
        3:        3:   47:   }
        -:        -:   48:
        3:        3:   49:   virtual ~lower_packing_builtins_visitor()
        6:        6:   50:   {
        3:        3:   51:      assert(factory_instructions.is_empty());
        3:        3:   52:   }
        -:        -:   53:
        3:        3:   54:   bool get_progress() { return progress; }
        -:        -:   55:
      186:      196:   56:   void handle_rvalue(ir_rvalue **rvalue)
        -:        -:   57:   {
      186:      196:   58:      if (!*rvalue)
       42:       42:   59:	 return;
        -:        -:   60:
      144:      154:   61:      ir_expression *expr = (*rvalue)->as_expression();
      144:      154:   62:      if (!expr)
      114:      122:   63:	 return;
        -:        -:   64:
        -:        -:   65:      enum lower_packing_builtins_op lowering_op =
       30:       32:   66:         choose_lowering_op(expr->operation);
        -:        -:   67:
       30:       32:   68:      if (lowering_op == LOWER_PACK_UNPACK_NONE)
       30:       32:   69:         return;
        -:        -:   70:
    #####:    #####:   71:      setup_factory(ralloc_parent(expr));
        -:        -:   72:
    #####:    #####:   73:      ir_rvalue *op0 = expr->operands[0];
    #####:    #####:   74:      ralloc_steal(factory.mem_ctx, op0);
        -:        -:   75:
    #####:    #####:   76:      switch (lowering_op) {
        -:        -:   77:      case LOWER_PACK_SNORM_2x16:
    #####:    #####:   78:         *rvalue = lower_pack_snorm_2x16(op0);
    #####:    #####:   79:         break;
        -:        -:   80:      case LOWER_PACK_SNORM_4x8:
    #####:    #####:   81:         *rvalue = lower_pack_snorm_4x8(op0);
    #####:    #####:   82:         break;
        -:        -:   83:      case LOWER_PACK_UNORM_2x16:
    #####:    #####:   84:         *rvalue = lower_pack_unorm_2x16(op0);
    #####:    #####:   85:         break;
        -:        -:   86:      case LOWER_PACK_UNORM_4x8:
    #####:    #####:   87:         *rvalue = lower_pack_unorm_4x8(op0);
    #####:    #####:   88:         break;
        -:        -:   89:      case LOWER_PACK_HALF_2x16:
    #####:    #####:   90:         *rvalue = lower_pack_half_2x16(op0);
    #####:    #####:   91:         break;
        -:        -:   92:      case LOWER_UNPACK_SNORM_2x16:
    #####:    #####:   93:         *rvalue = lower_unpack_snorm_2x16(op0);
    #####:    #####:   94:         break;
        -:        -:   95:      case LOWER_UNPACK_SNORM_4x8:
    #####:    #####:   96:         *rvalue = lower_unpack_snorm_4x8(op0);
    #####:    #####:   97:         break;
        -:        -:   98:      case LOWER_UNPACK_UNORM_2x16:
    #####:    #####:   99:         *rvalue = lower_unpack_unorm_2x16(op0);
    #####:    #####:  100:         break;
        -:        -:  101:      case LOWER_UNPACK_UNORM_4x8:
    #####:    #####:  102:         *rvalue = lower_unpack_unorm_4x8(op0);
    #####:    #####:  103:         break;
        -:        -:  104:      case LOWER_UNPACK_HALF_2x16:
    #####:    #####:  105:         *rvalue = lower_unpack_half_2x16(op0);
    #####:    #####:  106:         break;
        -:        -:  107:      case LOWER_PACK_UNPACK_NONE:
        -:        -:  108:      case LOWER_PACK_USE_BFI:
        -:        -:  109:      case LOWER_PACK_USE_BFE:
    #####:    #####:  110:         assert(!"not reached");
        -:        -:  111:         break;
        -:        -:  112:      }
        -:        -:  113:
    #####:    #####:  114:      teardown_factory();
    #####:    #####:  115:      progress = true;
        -:        -:  116:   }
        -:        -:  117:
        -:        -:  118:private:
        -:        -:  119:   const int op_mask;
        -:        -:  120:   bool progress;
        -:        -:  121:   ir_factory factory;
        -:        -:  122:   exec_list factory_instructions;
        -:        -:  123:
        -:        -:  124:   /**
        -:        -:  125:    * Determine the needed lowering operation by filtering \a expr_op
        -:        -:  126:    * through \ref op_mask.
        -:        -:  127:    */
        -:        -:  128:   enum lower_packing_builtins_op
       30:       32:  129:   choose_lowering_op(ir_expression_operation expr_op)
        -:        -:  130:   {
        -:        -:  131:      /* C++ regards int and enum as fundamentally different types.
        -:        -:  132:       * So, we can't simply return from each case; we must cast the return
        -:        -:  133:       * value.
        -:        -:  134:       */
        -:        -:  135:      int result;
        -:        -:  136:
       30:       32:  137:      switch (expr_op) {
        -:        -:  138:      case ir_unop_pack_snorm_2x16:
    #####:    #####:  139:         result = op_mask & LOWER_PACK_SNORM_2x16;
    #####:    #####:  140:         break;
        -:        -:  141:      case ir_unop_pack_snorm_4x8:
    #####:    #####:  142:         result = op_mask & LOWER_PACK_SNORM_4x8;
    #####:    #####:  143:         break;
        -:        -:  144:      case ir_unop_pack_unorm_2x16:
    #####:    #####:  145:         result = op_mask & LOWER_PACK_UNORM_2x16;
    #####:    #####:  146:         break;
        -:        -:  147:      case ir_unop_pack_unorm_4x8:
    #####:    #####:  148:         result = op_mask & LOWER_PACK_UNORM_4x8;
    #####:    #####:  149:         break;
        -:        -:  150:      case ir_unop_pack_half_2x16:
    #####:    #####:  151:         result = op_mask & LOWER_PACK_HALF_2x16;
    #####:    #####:  152:         break;
        -:        -:  153:      case ir_unop_unpack_snorm_2x16:
    #####:    #####:  154:         result = op_mask & LOWER_UNPACK_SNORM_2x16;
    #####:    #####:  155:         break;
        -:        -:  156:      case ir_unop_unpack_snorm_4x8:
    #####:    #####:  157:         result = op_mask & LOWER_UNPACK_SNORM_4x8;
    #####:    #####:  158:         break;
        -:        -:  159:      case ir_unop_unpack_unorm_2x16:
    #####:    #####:  160:         result = op_mask & LOWER_UNPACK_UNORM_2x16;
    #####:    #####:  161:         break;
        -:        -:  162:      case ir_unop_unpack_unorm_4x8:
    #####:    #####:  163:         result = op_mask & LOWER_UNPACK_UNORM_4x8;
    #####:    #####:  164:         break;
        -:        -:  165:      case ir_unop_unpack_half_2x16:
    #####:    #####:  166:         result = op_mask & LOWER_UNPACK_HALF_2x16;
    #####:    #####:  167:         break;
        -:        -:  168:      default:
       30:       32:  169:         result = LOWER_PACK_UNPACK_NONE;
       30:       32:  170:         break;
        -:        -:  171:      }
        -:        -:  172:
       30:       32:  173:      return static_cast<enum lower_packing_builtins_op>(result);
        -:        -:  174:   }
        -:        -:  175:
        -:        -:  176:   void
    #####:    #####:  177:   setup_factory(void *mem_ctx)
        -:        -:  178:   {
    #####:    #####:  179:      assert(factory.mem_ctx == NULL);
    #####:    #####:  180:      assert(factory.instructions->is_empty());
        -:        -:  181:
    #####:    #####:  182:      factory.mem_ctx = mem_ctx;
    #####:    #####:  183:   }
        -:        -:  184:
        -:        -:  185:   void
    #####:    #####:  186:   teardown_factory()
        -:        -:  187:   {
    #####:    #####:  188:      base_ir->insert_before(factory.instructions);
    #####:    #####:  189:      assert(factory.instructions->is_empty());
    #####:    #####:  190:      factory.mem_ctx = NULL;
    #####:    #####:  191:   }
        -:        -:  192:
        -:        -:  193:   template <typename T>
        -:        -:  194:   ir_constant*
    #####:    #####:  195:   constant(T x)
        -:        -:  196:   {
    #####:    #####:  197:      return factory.constant(x);
        -:        -:  198:   }
        -:        -:  199:
        -:        -:  200:   /**
        -:        -:  201:    * \brief Pack two uint16's into a single uint32.
        -:        -:  202:    *
        -:        -:  203:    * Interpret the given uvec2 as a uint16 pair. Pack the pair into a uint32
        -:        -:  204:    * where the least significant bits specify the first element of the pair.
        -:        -:  205:    * Return the uint32.
        -:        -:  206:    */
        -:        -:  207:   ir_rvalue*
    #####:    #####:  208:   pack_uvec2_to_uint(ir_rvalue *uvec2_rval)
        -:        -:  209:   {
    #####:    #####:  210:      assert(uvec2_rval->type == glsl_type::uvec2_type);
        -:        -:  211:
        -:        -:  212:      /* uvec2 u = UVEC2_RVAL; */
    #####:    #####:  213:      ir_variable *u = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####:  214:                                         "tmp_pack_uvec2_to_uint");
    #####:    #####:  215:      factory.emit(assign(u, uvec2_rval));
        -:        -:  216:
    #####:    #####:  217:      if (op_mask & LOWER_PACK_USE_BFI) {
    #####:    #####:  218:         return bitfield_insert(bit_and(swizzle_x(u), constant(0xffffu)),
    #####:    #####:  219:                                swizzle_y(u),
    #####:    #####:  220:                                constant(16u),
    #####:    #####:  221:                                constant(16u));
        -:        -:  222:      }
        -:        -:  223:
        -:        -:  224:      /* return (u.y << 16) | (u.x & 0xffff); */
    #####:    #####:  225:      return bit_or(lshift(swizzle_y(u), constant(16u)),
    #####:    #####:  226:                    bit_and(swizzle_x(u), constant(0xffffu)));
        -:        -:  227:   }
        -:        -:  228:
        -:        -:  229:   /**
        -:        -:  230:    * \brief Pack four uint8's into a single uint32.
        -:        -:  231:    *
        -:        -:  232:    * Interpret the given uvec4 as a uint32 4-typle. Pack the 4-tuple into a
        -:        -:  233:    * uint32 where the least significant bits specify the first element of the
        -:        -:  234:    * 4-tuple. Return the uint32.
        -:        -:  235:    */
        -:        -:  236:   ir_rvalue*
    #####:    #####:  237:   pack_uvec4_to_uint(ir_rvalue *uvec4_rval)
        -:        -:  238:   {
    #####:    #####:  239:      assert(uvec4_rval->type == glsl_type::uvec4_type);
        -:        -:  240:
    #####:    #####:  241:      ir_variable *u = factory.make_temp(glsl_type::uvec4_type,
    #####:    #####:  242:                                         "tmp_pack_uvec4_to_uint");
        -:        -:  243:
    #####:    #####:  244:      if (op_mask & LOWER_PACK_USE_BFI) {
        -:        -:  245:         /* uvec4 u = UVEC4_RVAL; */
    #####:    #####:  246:         factory.emit(assign(u, uvec4_rval));
        -:        -:  247:
    #####:    #####:  248:         return bitfield_insert(bitfield_insert(
    #####:    #####:  249:                                   bitfield_insert(
    #####:    #####:  250:                                      bit_and(swizzle_x(u), constant(0xffu)),
    #####:    #####:  251:                                      swizzle_y(u), constant(8u), constant(8u)),
    #####:    #####:  252:                                   swizzle_z(u), constant(16u), constant(8u)),
    #####:    #####:  253:                                swizzle_w(u), constant(24u), constant(8u));
        -:        -:  254:      }
        -:        -:  255:
        -:        -:  256:      /* uvec4 u = UVEC4_RVAL & 0xff */
    #####:    #####:  257:      factory.emit(assign(u, bit_and(uvec4_rval, constant(0xffu))));
        -:        -:  258:
        -:        -:  259:      /* return (u.w << 24) | (u.z << 16) | (u.y << 8) | u.x; */
    #####:    #####:  260:      return bit_or(bit_or(lshift(swizzle_w(u), constant(24u)),
    #####:    #####:  261:                           lshift(swizzle_z(u), constant(16u))),
    #####:    #####:  262:                    bit_or(lshift(swizzle_y(u), constant(8u)),
    #####:    #####:  263:                           swizzle_x(u)));
        -:        -:  264:   }
        -:        -:  265:
        -:        -:  266:   /**
        -:        -:  267:    * \brief Unpack a uint32 into two uint16's.
        -:        -:  268:    *
        -:        -:  269:    * Interpret the given uint32 as a uint16 pair where the uint32's least
        -:        -:  270:    * significant bits specify the pair's first element. Return the uint16
        -:        -:  271:    * pair as a uvec2.
        -:        -:  272:    */
        -:        -:  273:   ir_rvalue*
    #####:    #####:  274:   unpack_uint_to_uvec2(ir_rvalue *uint_rval)
        -:        -:  275:   {
    #####:    #####:  276:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  277:
        -:        -:  278:      /* uint u = UINT_RVAL; */
    #####:    #####:  279:      ir_variable *u = factory.make_temp(glsl_type::uint_type,
    #####:    #####:  280:                                          "tmp_unpack_uint_to_uvec2_u");
    #####:    #####:  281:      factory.emit(assign(u, uint_rval));
        -:        -:  282:
        -:        -:  283:      /* uvec2 u2; */
    #####:    #####:  284:      ir_variable *u2 = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####:  285:                                           "tmp_unpack_uint_to_uvec2_u2");
        -:        -:  286:
        -:        -:  287:      /* u2.x = u & 0xffffu; */
    #####:    #####:  288:      factory.emit(assign(u2, bit_and(u, constant(0xffffu)), WRITEMASK_X));
        -:        -:  289:
        -:        -:  290:      /* u2.y = u >> 16u; */
    #####:    #####:  291:      factory.emit(assign(u2, rshift(u, constant(16u)), WRITEMASK_Y));
        -:        -:  292:
    #####:    #####:  293:      return deref(u2).val;
        -:        -:  294:   }
        -:        -:  295:
        -:        -:  296:   /**
        -:        -:  297:    * \brief Unpack a uint32 into two int16's.
        -:        -:  298:    *
        -:        -:  299:    * Specifically each 16-bit value is sign-extended to the full width of an
        -:        -:  300:    * int32 on return.
        -:        -:  301:    */
        -:        -:  302:   ir_rvalue *
    #####:    #####:  303:   unpack_uint_to_ivec2(ir_rvalue *uint_rval)
        -:        -:  304:   {
    #####:    #####:  305:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  306:
    #####:    #####:  307:      if (!(op_mask & LOWER_PACK_USE_BFE)) {
    #####:    #####:  308:         return rshift(lshift(u2i(unpack_uint_to_uvec2(uint_rval)),
    #####:    #####:  309:                              constant(16u)),
    #####:    #####:  310:                       constant(16u));
        -:        -:  311:      }
        -:        -:  312:
    #####:    #####:  313:      ir_variable *i = factory.make_temp(glsl_type::int_type,
    #####:    #####:  314:                                         "tmp_unpack_uint_to_ivec2_i");
    #####:    #####:  315:      factory.emit(assign(i, u2i(uint_rval)));
        -:        -:  316:
        -:        -:  317:      /* ivec2 i2; */
    #####:    #####:  318:      ir_variable *i2 = factory.make_temp(glsl_type::ivec2_type,
    #####:    #####:  319:                                          "tmp_unpack_uint_to_ivec2_i2");
        -:        -:  320:
    #####:    #####:  321:      factory.emit(assign(i2, bitfield_extract(i, constant(0), constant(16)),
    #####:    #####:  322:                          WRITEMASK_X));
    #####:    #####:  323:      factory.emit(assign(i2, bitfield_extract(i, constant(16), constant(16)),
    #####:    #####:  324:                          WRITEMASK_Y));
        -:        -:  325:
    #####:    #####:  326:      return deref(i2).val;
        -:        -:  327:   }
        -:        -:  328:
        -:        -:  329:   /**
        -:        -:  330:    * \brief Unpack a uint32 into four uint8's.
        -:        -:  331:    *
        -:        -:  332:    * Interpret the given uint32 as a uint8 4-tuple where the uint32's least
        -:        -:  333:    * significant bits specify the 4-tuple's first element. Return the uint8
        -:        -:  334:    * 4-tuple as a uvec4.
        -:        -:  335:    */
        -:        -:  336:   ir_rvalue*
    #####:    #####:  337:   unpack_uint_to_uvec4(ir_rvalue *uint_rval)
        -:        -:  338:   {
    #####:    #####:  339:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  340:
        -:        -:  341:      /* uint u = UINT_RVAL; */
    #####:    #####:  342:      ir_variable *u = factory.make_temp(glsl_type::uint_type,
    #####:    #####:  343:                                          "tmp_unpack_uint_to_uvec4_u");
    #####:    #####:  344:      factory.emit(assign(u, uint_rval));
        -:        -:  345:
        -:        -:  346:      /* uvec4 u4; */
    #####:    #####:  347:      ir_variable *u4 = factory.make_temp(glsl_type::uvec4_type,
    #####:    #####:  348:                                           "tmp_unpack_uint_to_uvec4_u4");
        -:        -:  349:
        -:        -:  350:      /* u4.x = u & 0xffu; */
    #####:    #####:  351:      factory.emit(assign(u4, bit_and(u, constant(0xffu)), WRITEMASK_X));
        -:        -:  352:
    #####:    #####:  353:      if (op_mask & LOWER_PACK_USE_BFE) {
        -:        -:  354:         /* u4.y = bitfield_extract(u, 8, 8); */
    #####:    #####:  355:         factory.emit(assign(u4, bitfield_extract(u, constant(8u), constant(8u)),
    #####:    #####:  356:                             WRITEMASK_Y));
        -:        -:  357:
        -:        -:  358:         /* u4.z = bitfield_extract(u, 16, 8); */
    #####:    #####:  359:         factory.emit(assign(u4, bitfield_extract(u, constant(16u), constant(8u)),
    #####:    #####:  360:                             WRITEMASK_Z));
        -:        -:  361:      } else {
        -:        -:  362:         /* u4.y = (u >> 8u) & 0xffu; */
    #####:    #####:  363:         factory.emit(assign(u4, bit_and(rshift(u, constant(8u)),
    #####:    #####:  364:                                         constant(0xffu)), WRITEMASK_Y));
        -:        -:  365:
        -:        -:  366:         /* u4.z = (u >> 16u) & 0xffu; */
    #####:    #####:  367:         factory.emit(assign(u4, bit_and(rshift(u, constant(16u)),
    #####:    #####:  368:                                         constant(0xffu)), WRITEMASK_Z));
        -:        -:  369:      }
        -:        -:  370:
        -:        -:  371:      /* u4.w = (u >> 24u) */
    #####:    #####:  372:      factory.emit(assign(u4, rshift(u, constant(24u)), WRITEMASK_W));
        -:        -:  373:
    #####:    #####:  374:      return deref(u4).val;
        -:        -:  375:   }
        -:        -:  376:
        -:        -:  377:   /**
        -:        -:  378:    * \brief Unpack a uint32 into four int8's.
        -:        -:  379:    *
        -:        -:  380:    * Specifically each 8-bit value is sign-extended to the full width of an
        -:        -:  381:    * int32 on return.
        -:        -:  382:    */
        -:        -:  383:   ir_rvalue *
    #####:    #####:  384:   unpack_uint_to_ivec4(ir_rvalue *uint_rval)
        -:        -:  385:   {
    #####:    #####:  386:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  387:
    #####:    #####:  388:      if (!(op_mask & LOWER_PACK_USE_BFE)) {
    #####:    #####:  389:         return rshift(lshift(u2i(unpack_uint_to_uvec4(uint_rval)),
    #####:    #####:  390:                              constant(24u)),
    #####:    #####:  391:                       constant(24u));
        -:        -:  392:      }
        -:        -:  393:
    #####:    #####:  394:      ir_variable *i = factory.make_temp(glsl_type::int_type,
    #####:    #####:  395:                                         "tmp_unpack_uint_to_ivec4_i");
    #####:    #####:  396:      factory.emit(assign(i, u2i(uint_rval)));
        -:        -:  397:
        -:        -:  398:      /* ivec4 i4; */
    #####:    #####:  399:      ir_variable *i4 = factory.make_temp(glsl_type::ivec4_type,
    #####:    #####:  400:                                          "tmp_unpack_uint_to_ivec4_i4");
        -:        -:  401:
    #####:    #####:  402:      factory.emit(assign(i4, bitfield_extract(i, constant(0), constant(8)),
    #####:    #####:  403:                          WRITEMASK_X));
    #####:    #####:  404:      factory.emit(assign(i4, bitfield_extract(i, constant(8), constant(8)),
    #####:    #####:  405:                          WRITEMASK_Y));
    #####:    #####:  406:      factory.emit(assign(i4, bitfield_extract(i, constant(16), constant(8)),
    #####:    #####:  407:                          WRITEMASK_Z));
    #####:    #####:  408:      factory.emit(assign(i4, bitfield_extract(i, constant(24), constant(8)),
    #####:    #####:  409:                          WRITEMASK_W));
        -:        -:  410:
    #####:    #####:  411:      return deref(i4).val;
        -:        -:  412:   }
        -:        -:  413:
        -:        -:  414:   /**
        -:        -:  415:    * \brief Lower a packSnorm2x16 expression.
        -:        -:  416:    *
        -:        -:  417:    * \param vec2_rval is packSnorm2x16's input
        -:        -:  418:    * \return packSnorm2x16's output as a uint rvalue
        -:        -:  419:    */
        -:        -:  420:   ir_rvalue*
    #####:    #####:  421:   lower_pack_snorm_2x16(ir_rvalue *vec2_rval)
        -:        -:  422:   {
        -:        -:  423:      /* From page 88 (94 of pdf) of the GLSL ES 3.00 spec:
        -:        -:  424:       *
        -:        -:  425:       *    highp uint packSnorm2x16(vec2 v)
        -:        -:  426:       *    --------------------------------
        -:        -:  427:       *    First, converts each component of the normalized floating-point value
        -:        -:  428:       *    v into 16-bit integer values. Then, the results are packed into the
        -:        -:  429:       *    returned 32-bit unsigned integer.
        -:        -:  430:       *
        -:        -:  431:       *    The conversion for component c of v to fixed point is done as
        -:        -:  432:       *    follows:
        -:        -:  433:       *
        -:        -:  434:       *       packSnorm2x16: round(clamp(c, -1, +1) * 32767.0)
        -:        -:  435:       *
        -:        -:  436:       *    The first component of the vector will be written to the least
        -:        -:  437:       *    significant bits of the output; the last component will be written to
        -:        -:  438:       *    the most significant bits.
        -:        -:  439:       *
        -:        -:  440:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  441:       *
        -:        -:  442:       *     return pack_uvec2_to_uint(
        -:        -:  443:       *         uvec2(ivec2(
        -:        -:  444:       *           round(clamp(VEC2_RVALUE, -1.0f, 1.0f) * 32767.0f))));
        -:        -:  445:       *
        -:        -:  446:       * It is necessary to first convert the vec2 to ivec2 rather than directly
        -:        -:  447:       * converting vec2 to uvec2 because the latter conversion is undefined.
        -:        -:  448:       * From page 56 (62 of pdf) of the GLSL ES 3.00 spec: "It is undefined to
        -:        -:  449:       * convert a negative floating point value to an uint".
        -:        -:  450:       */
    #####:    #####:  451:      assert(vec2_rval->type == glsl_type::vec2_type);
        -:        -:  452:
        -:        -:  453:      ir_rvalue *result = pack_uvec2_to_uint(
    #####:    #####:  454:            i2u(f2i(round_even(mul(clamp(vec2_rval,
    #####:    #####:  455:                                         constant(-1.0f),
    #####:    #####:  456:                                         constant(1.0f)),
    #####:    #####:  457:                                   constant(32767.0f))))));
        -:        -:  458:
    #####:    #####:  459:      assert(result->type == glsl_type::uint_type);
    #####:    #####:  460:      return result;
        -:        -:  461:   }
        -:        -:  462:
        -:        -:  463:   /**
        -:        -:  464:    * \brief Lower a packSnorm4x8 expression.
        -:        -:  465:    *
        -:        -:  466:    * \param vec4_rval is packSnorm4x8's input
        -:        -:  467:    * \return packSnorm4x8's output as a uint rvalue
        -:        -:  468:    */
        -:        -:  469:   ir_rvalue*
    #####:    #####:  470:   lower_pack_snorm_4x8(ir_rvalue *vec4_rval)
        -:        -:  471:   {
        -:        -:  472:      /* From page 137 (143 of pdf) of the GLSL 4.30 spec:
        -:        -:  473:       *
        -:        -:  474:       *    highp uint packSnorm4x8(vec4 v)
        -:        -:  475:       *    -------------------------------
        -:        -:  476:       *    First, converts each component of the normalized floating-point value
        -:        -:  477:       *    v into 8-bit integer values. Then, the results are packed into the
        -:        -:  478:       *    returned 32-bit unsigned integer.
        -:        -:  479:       *
        -:        -:  480:       *    The conversion for component c of v to fixed point is done as
        -:        -:  481:       *    follows:
        -:        -:  482:       *
        -:        -:  483:       *       packSnorm4x8: round(clamp(c, -1, +1) * 127.0)
        -:        -:  484:       *
        -:        -:  485:       *    The first component of the vector will be written to the least
        -:        -:  486:       *    significant bits of the output; the last component will be written to
        -:        -:  487:       *    the most significant bits.
        -:        -:  488:       *
        -:        -:  489:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  490:       *
        -:        -:  491:       *     return pack_uvec4_to_uint(
        -:        -:  492:       *         uvec4(ivec4(
        -:        -:  493:       *           round(clamp(VEC4_RVALUE, -1.0f, 1.0f) * 127.0f))));
        -:        -:  494:       *
        -:        -:  495:       * It is necessary to first convert the vec4 to ivec4 rather than directly
        -:        -:  496:       * converting vec4 to uvec4 because the latter conversion is undefined.
        -:        -:  497:       * From page 87 (93 of pdf) of the GLSL 4.30 spec: "It is undefined to
        -:        -:  498:       * convert a negative floating point value to an uint".
        -:        -:  499:       */
    #####:    #####:  500:      assert(vec4_rval->type == glsl_type::vec4_type);
        -:        -:  501:
        -:        -:  502:      ir_rvalue *result = pack_uvec4_to_uint(
    #####:    #####:  503:            i2u(f2i(round_even(mul(clamp(vec4_rval,
    #####:    #####:  504:                                         constant(-1.0f),
    #####:    #####:  505:                                         constant(1.0f)),
    #####:    #####:  506:                                   constant(127.0f))))));
        -:        -:  507:
    #####:    #####:  508:      assert(result->type == glsl_type::uint_type);
    #####:    #####:  509:      return result;
        -:        -:  510:   }
        -:        -:  511:
        -:        -:  512:   /**
        -:        -:  513:    * \brief Lower an unpackSnorm2x16 expression.
        -:        -:  514:    *
        -:        -:  515:    * \param uint_rval is unpackSnorm2x16's input
        -:        -:  516:    * \return unpackSnorm2x16's output as a vec2 rvalue
        -:        -:  517:    */
        -:        -:  518:   ir_rvalue*
    #####:    #####:  519:   lower_unpack_snorm_2x16(ir_rvalue *uint_rval)
        -:        -:  520:   {
        -:        -:  521:      /* From page 88 (94 of pdf) of the GLSL ES 3.00 spec:
        -:        -:  522:       *
        -:        -:  523:       *    highp vec2 unpackSnorm2x16 (highp uint p)
        -:        -:  524:       *    -----------------------------------------
        -:        -:  525:       *    First, unpacks a single 32-bit unsigned integer p into a pair of
        -:        -:  526:       *    16-bit unsigned integers. Then, each component is converted to
        -:        -:  527:       *    a normalized floating-point value to generate the returned
        -:        -:  528:       *    two-component vector.
        -:        -:  529:       *
        -:        -:  530:       *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  531:       *    done as follows:
        -:        -:  532:       *
        -:        -:  533:       *       unpackSnorm2x16: clamp(f / 32767.0, -1,+1)
        -:        -:  534:       *
        -:        -:  535:       *    The first component of the returned vector will be extracted from the
        -:        -:  536:       *    least significant bits of the input; the last component will be
        -:        -:  537:       *    extracted from the most significant bits.
        -:        -:  538:       *
        -:        -:  539:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  540:       *
        -:        -:  541:       *    return clamp(
        -:        -:  542:       *       ((ivec2(unpack_uint_to_uvec2(UINT_RVALUE)) << 16) >> 16) / 32767.0f,
        -:        -:  543:       *       -1.0f, 1.0f);
        -:        -:  544:       *
        -:        -:  545:       * The above IR may appear unnecessarily complex, but the intermediate
        -:        -:  546:       * conversion to ivec2 and the bit shifts are necessary to correctly unpack
        -:        -:  547:       * negative floats.
        -:        -:  548:       *
        -:        -:  549:       * To see why, consider packing and then unpacking vec2(-1.0, 0.0).
        -:        -:  550:       * packSnorm2x16 encodes -1.0 as the int16 0xffff. During unpacking, we
        -:        -:  551:       * place that int16 into an int32, which results in the *positive* integer
        -:        -:  552:       * 0x0000ffff.  The int16's sign bit becomes, in the int32, the rather
        -:        -:  553:       * unimportant bit 16. We must now extend the int16's sign bit into bits
        -:        -:  554:       * 17-32, which is accomplished by left-shifting then right-shifting.
        -:        -:  555:       */
        -:        -:  556:
    #####:    #####:  557:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  558:
        -:        -:  559:      ir_rvalue *result =
    #####:    #####:  560:        clamp(div(i2f(unpack_uint_to_ivec2(uint_rval)),
    #####:    #####:  561:                  constant(32767.0f)),
    #####:    #####:  562:              constant(-1.0f),
    #####:    #####:  563:              constant(1.0f));
        -:        -:  564:
    #####:    #####:  565:      assert(result->type == glsl_type::vec2_type);
    #####:    #####:  566:      return result;
        -:        -:  567:   }
        -:        -:  568:
        -:        -:  569:   /**
        -:        -:  570:    * \brief Lower an unpackSnorm4x8 expression.
        -:        -:  571:    *
        -:        -:  572:    * \param uint_rval is unpackSnorm4x8's input
        -:        -:  573:    * \return unpackSnorm4x8's output as a vec4 rvalue
        -:        -:  574:    */
        -:        -:  575:   ir_rvalue*
    #####:    #####:  576:   lower_unpack_snorm_4x8(ir_rvalue *uint_rval)
        -:        -:  577:   {
        -:        -:  578:      /* From page 137 (143 of pdf) of the GLSL 4.30 spec:
        -:        -:  579:       *
        -:        -:  580:       *    highp vec4 unpackSnorm4x8 (highp uint p)
        -:        -:  581:       *    ----------------------------------------
        -:        -:  582:       *    First, unpacks a single 32-bit unsigned integer p into four
        -:        -:  583:       *    8-bit unsigned integers. Then, each component is converted to
        -:        -:  584:       *    a normalized floating-point value to generate the returned
        -:        -:  585:       *    four-component vector.
        -:        -:  586:       *
        -:        -:  587:       *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  588:       *    done as follows:
        -:        -:  589:       *
        -:        -:  590:       *       unpackSnorm4x8: clamp(f / 127.0, -1, +1)
        -:        -:  591:       *
        -:        -:  592:       *    The first component of the returned vector will be extracted from the
        -:        -:  593:       *    least significant bits of the input; the last component will be
        -:        -:  594:       *    extracted from the most significant bits.
        -:        -:  595:       *
        -:        -:  596:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  597:       *
        -:        -:  598:       *    return clamp(
        -:        -:  599:       *       ((ivec4(unpack_uint_to_uvec4(UINT_RVALUE)) << 24) >> 24) / 127.0f,
        -:        -:  600:       *       -1.0f, 1.0f);
        -:        -:  601:       *
        -:        -:  602:       * The above IR may appear unnecessarily complex, but the intermediate
        -:        -:  603:       * conversion to ivec4 and the bit shifts are necessary to correctly unpack
        -:        -:  604:       * negative floats.
        -:        -:  605:       *
        -:        -:  606:       * To see why, consider packing and then unpacking vec4(-1.0, 0.0, 0.0,
        -:        -:  607:       * 0.0). packSnorm4x8 encodes -1.0 as the int8 0xff. During unpacking, we
        -:        -:  608:       * place that int8 into an int32, which results in the *positive* integer
        -:        -:  609:       * 0x000000ff.  The int8's sign bit becomes, in the int32, the rather
        -:        -:  610:       * unimportant bit 8. We must now extend the int8's sign bit into bits
        -:        -:  611:       * 9-32, which is accomplished by left-shifting then right-shifting.
        -:        -:  612:       */
        -:        -:  613:
    #####:    #####:  614:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  615:
        -:        -:  616:      ir_rvalue *result =
    #####:    #####:  617:        clamp(div(i2f(unpack_uint_to_ivec4(uint_rval)),
    #####:    #####:  618:                  constant(127.0f)),
    #####:    #####:  619:              constant(-1.0f),
    #####:    #####:  620:              constant(1.0f));
        -:        -:  621:
    #####:    #####:  622:      assert(result->type == glsl_type::vec4_type);
    #####:    #####:  623:      return result;
        -:        -:  624:   }
        -:        -:  625:
        -:        -:  626:   /**
        -:        -:  627:    * \brief Lower a packUnorm2x16 expression.
        -:        -:  628:    *
        -:        -:  629:    * \param vec2_rval is packUnorm2x16's input
        -:        -:  630:    * \return packUnorm2x16's output as a uint rvalue
        -:        -:  631:    */
        -:        -:  632:   ir_rvalue*
    #####:    #####:  633:   lower_pack_unorm_2x16(ir_rvalue *vec2_rval)
        -:        -:  634:   {
        -:        -:  635:      /* From page 88 (94 of pdf) of the GLSL ES 3.00 spec:
        -:        -:  636:       *
        -:        -:  637:       *    highp uint packUnorm2x16 (vec2 v)
        -:        -:  638:       *    ---------------------------------
        -:        -:  639:       *    First, converts each component of the normalized floating-point value
        -:        -:  640:       *    v into 16-bit integer values. Then, the results are packed into the
        -:        -:  641:       *    returned 32-bit unsigned integer.
        -:        -:  642:       *
        -:        -:  643:       *    The conversion for component c of v to fixed point is done as
        -:        -:  644:       *    follows:
        -:        -:  645:       *
        -:        -:  646:       *       packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)
        -:        -:  647:       *
        -:        -:  648:       *    The first component of the vector will be written to the least
        -:        -:  649:       *    significant bits of the output; the last component will be written to
        -:        -:  650:       *    the most significant bits.
        -:        -:  651:       *
        -:        -:  652:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  653:       *
        -:        -:  654:       *     return pack_uvec2_to_uint(uvec2(
        -:        -:  655:       *                round(clamp(VEC2_RVALUE, 0.0f, 1.0f) * 65535.0f)));
        -:        -:  656:       *
        -:        -:  657:       * Here it is safe to directly convert the vec2 to uvec2 because the vec2
        -:        -:  658:       * has been clamped to a non-negative range.
        -:        -:  659:       */
        -:        -:  660:
    #####:    #####:  661:      assert(vec2_rval->type == glsl_type::vec2_type);
        -:        -:  662:
        -:        -:  663:      ir_rvalue *result = pack_uvec2_to_uint(
    #####:    #####:  664:         f2u(round_even(mul(saturate(vec2_rval), constant(65535.0f)))));
        -:        -:  665:
    #####:    #####:  666:      assert(result->type == glsl_type::uint_type);
    #####:    #####:  667:      return result;
        -:        -:  668:   }
        -:        -:  669:
        -:        -:  670:   /**
        -:        -:  671:    * \brief Lower a packUnorm4x8 expression.
        -:        -:  672:    *
        -:        -:  673:    * \param vec4_rval is packUnorm4x8's input
        -:        -:  674:    * \return packUnorm4x8's output as a uint rvalue
        -:        -:  675:    */
        -:        -:  676:   ir_rvalue*
    #####:    #####:  677:   lower_pack_unorm_4x8(ir_rvalue *vec4_rval)
        -:        -:  678:   {
        -:        -:  679:      /* From page 137 (143 of pdf) of the GLSL 4.30 spec:
        -:        -:  680:       *
        -:        -:  681:       *    highp uint packUnorm4x8 (vec4 v)
        -:        -:  682:       *    --------------------------------
        -:        -:  683:       *    First, converts each component of the normalized floating-point value
        -:        -:  684:       *    v into 8-bit integer values. Then, the results are packed into the
        -:        -:  685:       *    returned 32-bit unsigned integer.
        -:        -:  686:       *
        -:        -:  687:       *    The conversion for component c of v to fixed point is done as
        -:        -:  688:       *    follows:
        -:        -:  689:       *
        -:        -:  690:       *       packUnorm4x8: round(clamp(c, 0, +1) * 255.0)
        -:        -:  691:       *
        -:        -:  692:       *    The first component of the vector will be written to the least
        -:        -:  693:       *    significant bits of the output; the last component will be written to
        -:        -:  694:       *    the most significant bits.
        -:        -:  695:       *
        -:        -:  696:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  697:       *
        -:        -:  698:       *     return pack_uvec4_to_uint(uvec4(
        -:        -:  699:       *                round(clamp(VEC2_RVALUE, 0.0f, 1.0f) * 255.0f)));
        -:        -:  700:       *
        -:        -:  701:       * Here it is safe to directly convert the vec4 to uvec4 because the vec4
        -:        -:  702:       * has been clamped to a non-negative range.
        -:        -:  703:       */
        -:        -:  704:
    #####:    #####:  705:      assert(vec4_rval->type == glsl_type::vec4_type);
        -:        -:  706:
        -:        -:  707:      ir_rvalue *result = pack_uvec4_to_uint(
    #####:    #####:  708:         f2u(round_even(mul(saturate(vec4_rval), constant(255.0f)))));
        -:        -:  709:
    #####:    #####:  710:      assert(result->type == glsl_type::uint_type);
    #####:    #####:  711:      return result;
        -:        -:  712:   }
        -:        -:  713:
        -:        -:  714:   /**
        -:        -:  715:    * \brief Lower an unpackUnorm2x16 expression.
        -:        -:  716:    *
        -:        -:  717:    * \param uint_rval is unpackUnorm2x16's input
        -:        -:  718:    * \return unpackUnorm2x16's output as a vec2 rvalue
        -:        -:  719:    */
        -:        -:  720:   ir_rvalue*
    #####:    #####:  721:   lower_unpack_unorm_2x16(ir_rvalue *uint_rval)
        -:        -:  722:   {
        -:        -:  723:      /* From page 89 (95 of pdf) of the GLSL ES 3.00 spec:
        -:        -:  724:       *
        -:        -:  725:       *    highp vec2 unpackUnorm2x16 (highp uint p)
        -:        -:  726:       *    -----------------------------------------
        -:        -:  727:       *    First, unpacks a single 32-bit unsigned integer p into a pair of
        -:        -:  728:       *    16-bit unsigned integers. Then, each component is converted to
        -:        -:  729:       *    a normalized floating-point value to generate the returned
        -:        -:  730:       *    two-component vector.
        -:        -:  731:       *
        -:        -:  732:       *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  733:       *    done as follows:
        -:        -:  734:       *
        -:        -:  735:       *       unpackUnorm2x16: f / 65535.0
        -:        -:  736:       *
        -:        -:  737:       *    The first component of the returned vector will be extracted from the
        -:        -:  738:       *    least significant bits of the input; the last component will be
        -:        -:  739:       *    extracted from the most significant bits.
        -:        -:  740:       *
        -:        -:  741:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  742:       *
        -:        -:  743:       *     return vec2(unpack_uint_to_uvec2(UINT_RVALUE)) / 65535.0;
        -:        -:  744:       */
        -:        -:  745:
    #####:    #####:  746:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  747:
    #####:    #####:  748:      ir_rvalue *result = div(u2f(unpack_uint_to_uvec2(uint_rval)),
    #####:    #####:  749:                              constant(65535.0f));
        -:        -:  750:
    #####:    #####:  751:      assert(result->type == glsl_type::vec2_type);
    #####:    #####:  752:      return result;
        -:        -:  753:   }
        -:        -:  754:
        -:        -:  755:   /**
        -:        -:  756:    * \brief Lower an unpackUnorm4x8 expression.
        -:        -:  757:    *
        -:        -:  758:    * \param uint_rval is unpackUnorm4x8's input
        -:        -:  759:    * \return unpackUnorm4x8's output as a vec4 rvalue
        -:        -:  760:    */
        -:        -:  761:   ir_rvalue*
    #####:    #####:  762:   lower_unpack_unorm_4x8(ir_rvalue *uint_rval)
        -:        -:  763:   {
        -:        -:  764:      /* From page 137 (143 of pdf) of the GLSL 4.30 spec:
        -:        -:  765:       *
        -:        -:  766:       *    highp vec4 unpackUnorm4x8 (highp uint p)
        -:        -:  767:       *    ----------------------------------------
        -:        -:  768:       *    First, unpacks a single 32-bit unsigned integer p into four
        -:        -:  769:       *    8-bit unsigned integers. Then, each component is converted to
        -:        -:  770:       *    a normalized floating-point value to generate the returned
        -:        -:  771:       *    two-component vector.
        -:        -:  772:       *
        -:        -:  773:       *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  774:       *    done as follows:
        -:        -:  775:       *
        -:        -:  776:       *       unpackUnorm4x8: f / 255.0
        -:        -:  777:       *
        -:        -:  778:       *    The first component of the returned vector will be extracted from the
        -:        -:  779:       *    least significant bits of the input; the last component will be
        -:        -:  780:       *    extracted from the most significant bits.
        -:        -:  781:       *
        -:        -:  782:       * This function generates IR that approximates the following pseudo-GLSL:
        -:        -:  783:       *
        -:        -:  784:       *     return vec4(unpack_uint_to_uvec4(UINT_RVALUE)) / 255.0;
        -:        -:  785:       */
        -:        -:  786:
    #####:    #####:  787:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -:  788:
    #####:    #####:  789:      ir_rvalue *result = div(u2f(unpack_uint_to_uvec4(uint_rval)),
    #####:    #####:  790:                              constant(255.0f));
        -:        -:  791:
    #####:    #####:  792:      assert(result->type == glsl_type::vec4_type);
    #####:    #####:  793:      return result;
        -:        -:  794:   }
        -:        -:  795:
        -:        -:  796:   /**
        -:        -:  797:    * \brief Lower the component-wise calculation of packHalf2x16.
        -:        -:  798:    *
        -:        -:  799:    * \param f_rval is one component of packHafl2x16's input
        -:        -:  800:    * \param e_rval is the unshifted exponent bits of f_rval
        -:        -:  801:    * \param m_rval is the unshifted mantissa bits of f_rval
        -:        -:  802:    *
        -:        -:  803:    * \return a uint rvalue that encodes a float16 in its lower 16 bits
        -:        -:  804:    */
        -:        -:  805:   ir_rvalue*
    #####:    #####:  806:   pack_half_1x16_nosign(ir_rvalue *f_rval,
        -:        -:  807:                         ir_rvalue *e_rval,
        -:        -:  808:                         ir_rvalue *m_rval)
        -:        -:  809:   {
    #####:    #####:  810:      assert(e_rval->type == glsl_type::uint_type);
    #####:    #####:  811:      assert(m_rval->type == glsl_type::uint_type);
        -:        -:  812:
        -:        -:  813:      /* uint u16; */
    #####:    #####:  814:      ir_variable *u16 = factory.make_temp(glsl_type::uint_type,
    #####:    #####:  815:                                           "tmp_pack_half_1x16_u16");
        -:        -:  816:
        -:        -:  817:      /* float f = FLOAT_RVAL; */
    #####:    #####:  818:      ir_variable *f = factory.make_temp(glsl_type::float_type,
    #####:    #####:  819:                                          "tmp_pack_half_1x16_f");
    #####:    #####:  820:      factory.emit(assign(f, f_rval));
        -:        -:  821:
        -:        -:  822:      /* uint e = E_RVAL; */
    #####:    #####:  823:      ir_variable *e = factory.make_temp(glsl_type::uint_type,
    #####:    #####:  824:                                          "tmp_pack_half_1x16_e");
    #####:    #####:  825:      factory.emit(assign(e, e_rval));
        -:        -:  826:
        -:        -:  827:      /* uint m = M_RVAL; */
    #####:    #####:  828:      ir_variable *m = factory.make_temp(glsl_type::uint_type,
    #####:    #####:  829:                                          "tmp_pack_half_1x16_m");
    #####:    #####:  830:      factory.emit(assign(m, m_rval));
        -:        -:  831:
        -:        -:  832:      /* Preliminaries
        -:        -:  833:       * -------------
        -:        -:  834:       *
        -:        -:  835:       * For a float16, the bit layout is:
        -:        -:  836:       *
        -:        -:  837:       *   sign:     15
        -:        -:  838:       *   exponent: 10:14
        -:        -:  839:       *   mantissa: 0:9
        -:        -:  840:       *
        -:        -:  841:       * Let f16 be a float16 value. The sign, exponent, and mantissa
        -:        -:  842:       * determine its value thus:
        -:        -:  843:       *
        -:        -:  844:       *   if e16 = 0 and m16 = 0, then zero:       (-1)^s16 * 0                               (1)
        -:        -:  845:       *   if e16 = 0 and m16!= 0, then subnormal:  (-1)^s16 * 2^(e16 - 14) * (m16 / 2^10)     (2)
        -:        -:  846:       *   if 0 < e16 < 31, then normal:            (-1)^s16 * 2^(e16 - 15) * (1 + m16 / 2^10) (3)
        -:        -:  847:       *   if e16 = 31 and m16 = 0, then infinite:  (-1)^s16 * inf                             (4)
        -:        -:  848:       *   if e16 = 31 and m16 != 0, then           NaN                                        (5)
        -:        -:  849:       *
        -:        -:  850:       * where 0 <= m16 < 2^10.
        -:        -:  851:       *
        -:        -:  852:       * For a float32, the bit layout is:
        -:        -:  853:       *
        -:        -:  854:       *   sign:     31
        -:        -:  855:       *   exponent: 23:30
        -:        -:  856:       *   mantissa: 0:22
        -:        -:  857:       *
        -:        -:  858:       * Let f32 be a float32 value. The sign, exponent, and mantissa
        -:        -:  859:       * determine its value thus:
        -:        -:  860:       *
        -:        -:  861:       *   if e32 = 0 and m32 = 0, then zero:        (-1)^s * 0                                (10)
        -:        -:  862:       *   if e32 = 0 and m32 != 0, then subnormal:  (-1)^s * 2^(e32 - 126) * (m32 / 2^23)     (11)
        -:        -:  863:       *   if 0 < e32 < 255, then normal:            (-1)^s * 2^(e32 - 127) * (1 + m32 / 2^23) (12)
        -:        -:  864:       *   if e32 = 255 and m32 = 0, then infinite:  (-1)^s * inf                              (13)
        -:        -:  865:       *   if e32 = 255 and m32 != 0, then           NaN                                       (14)
        -:        -:  866:       *
        -:        -:  867:       * where 0 <= m32 < 2^23.
        -:        -:  868:       *
        -:        -:  869:       * The minimum and maximum normal float16 values are
        -:        -:  870:       *
        -:        -:  871:       *   min_norm16 = 2^(1 - 15) * (1 + 0 / 2^10) = 2^(-14)   (20)
        -:        -:  872:       *   max_norm16 = 2^(30 - 15) * (1 + 1023 / 2^10)         (21)
        -:        -:  873:       *
        -:        -:  874:       * The step at max_norm16 is
        -:        -:  875:       *
        -:        -:  876:       *   max_step16 = 2^5                                     (22)
        -:        -:  877:       *
        -:        -:  878:       * Observe that the float16 boundary values in equations 20-21 lie in the
        -:        -:  879:       * range of normal float32 values.
        -:        -:  880:       *
        -:        -:  881:       *
        -:        -:  882:       * Rounding Behavior
        -:        -:  883:       * -----------------
        -:        -:  884:       * Not all float32 values can be exactly represented as a float16. We
        -:        -:  885:       * round all such intermediate float32 values to the nearest float16; if
        -:        -:  886:       * the float32 is exactly between to float16 values, we round to the one
        -:        -:  887:       * with an even mantissa. This rounding behavior has several benefits:
        -:        -:  888:       *
        -:        -:  889:       *   - It has no sign bias.
        -:        -:  890:       *
        -:        -:  891:       *   - It reproduces the behavior of real hardware: opcode F32TO16 in Intel's
        -:        -:  892:       *     GPU ISA.
        -:        -:  893:       *
        -:        -:  894:       *   - By reproducing the behavior of the GPU (at least on Intel hardware),
        -:        -:  895:       *     compile-time evaluation of constant packHalf2x16 GLSL expressions will
        -:        -:  896:       *     result in the same value as if the expression were executed on the
        -:        -:  897:       *     GPU.
        -:        -:  898:       *
        -:        -:  899:       * Calculation
        -:        -:  900:       * -----------
        -:        -:  901:       * Our task is to compute s16, e16, m16 given f32.  Since this function
        -:        -:  902:       * ignores the sign bit, assume that s32 = s16 = 0.  There are several
        -:        -:  903:       * cases consider.
        -:        -:  904:       */
        -:        -:  905:
    #####:    #####:  906:      factory.emit(
        -:        -:  907:
        -:        -:  908:         /* Case 1) f32 is NaN
        -:        -:  909:          *
        -:        -:  910:          *   The resultant f16 will also be NaN.
        -:        -:  911:          */
        -:        -:  912:
        -:        -:  913:         /* if (e32 == 255 && m32 != 0) { */
    #####:    #####:  914:         if_tree(logic_and(equal(e, constant(0xffu << 23u)),
    #####:    #####:  915:                           logic_not(equal(m, constant(0u)))),
        -:        -:  916:
    #####:    #####:  917:            assign(u16, constant(0x7fffu)),
        -:        -:  918:
        -:        -:  919:         /* Case 2) f32 lies in the range [0, min_norm16).
        -:        -:  920:          *
        -:        -:  921:          *   The resultant float16 will be either zero, subnormal, or normal.
        -:        -:  922:          *
        -:        -:  923:          *   Solving
        -:        -:  924:          *
        -:        -:  925:          *     f32 = min_norm16       (30)
        -:        -:  926:          *
        -:        -:  927:          *   gives
        -:        -:  928:          *
        -:        -:  929:          *     e32 = 113 and m32 = 0  (31)
        -:        -:  930:          *
        -:        -:  931:          *   Therefore this case occurs if and only if
        -:        -:  932:          *
        -:        -:  933:          *     e32 < 113              (32)
        -:        -:  934:          */
        -:        -:  935:
        -:        -:  936:         /* } else if (e32 < 113) { */
    #####:    #####:  937:         if_tree(less(e, constant(113u << 23u)),
        -:        -:  938:
        -:        -:  939:            /* u16 = uint(round_to_even(abs(f32) * float(1u << 24u))); */
    #####:    #####:  940:            assign(u16, f2u(round_even(mul(expr(ir_unop_abs, f),
    #####:    #####:  941:                                           constant((float) (1 << 24)))))),
        -:        -:  942:
        -:        -:  943:         /* Case 3) f32 lies in the range
        -:        -:  944:          *         [min_norm16, max_norm16 + max_step16).
        -:        -:  945:          *
        -:        -:  946:          *   The resultant float16 will be either normal or infinite.
        -:        -:  947:          *
        -:        -:  948:          *   Solving
        -:        -:  949:          *
        -:        -:  950:          *     f32 = max_norm16 + max_step16           (40)
        -:        -:  951:          *         = 2^15 * (1 + 1023 / 2^10) + 2^5    (41)
        -:        -:  952:          *         = 2^16                              (42)
        -:        -:  953:          *   gives
        -:        -:  954:          *
        -:        -:  955:          *     e32 = 143 and m32 = 0                   (43)
        -:        -:  956:          *
        -:        -:  957:          *   We already solved the boundary condition f32 = min_norm16 above
        -:        -:  958:          *   in equation 31. Therefore this case occurs if and only if
        -:        -:  959:          *
        -:        -:  960:          *     113 <= e32 and e32 < 143
        -:        -:  961:          */
        -:        -:  962:
        -:        -:  963:         /* } else if (e32 < 143) { */
    #####:    #####:  964:         if_tree(less(e, constant(143u << 23u)),
        -:        -:  965:
        -:        -:  966:            /* The addition below handles the case where the mantissa rounds
        -:        -:  967:             * up to 1024 and bumps the exponent.
        -:        -:  968:             *
        -:        -:  969:             * u16 = ((e - (112u << 23u)) >> 13u)
        -:        -:  970:             *     + round_to_even((float(m) / (1u << 13u));
        -:        -:  971:             */
    #####:    #####:  972:            assign(u16, add(rshift(sub(e, constant(112u << 23u)),
    #####:    #####:  973:                                   constant(13u)),
    #####:    #####:  974:                            f2u(round_even(
    #####:    #####:  975:                                  div(u2f(m), constant((float) (1 << 13))))))),
        -:        -:  976:
        -:        -:  977:         /* Case 4) f32 lies in the range [max_norm16 + max_step16, inf].
        -:        -:  978:          *
        -:        -:  979:          *   The resultant float16 will be infinite.
        -:        -:  980:          *
        -:        -:  981:          *   The cases above caught all float32 values in the range
        -:        -:  982:          *   [0, max_norm16 + max_step16), so this is the fall-through case.
        -:        -:  983:          */
        -:        -:  984:
        -:        -:  985:         /* } else { */
        -:        -:  986:
    #####:    #####:  987:            assign(u16, constant(31u << 10u))))));
        -:        -:  988:
        -:        -:  989:         /* } */
        -:        -:  990:
    #####:    #####:  991:       return deref(u16).val;
        -:        -:  992:   }
        -:        -:  993:
        -:        -:  994:   /**
        -:        -:  995:    * \brief Lower a packHalf2x16 expression.
        -:        -:  996:    *
        -:        -:  997:    * \param vec2_rval is packHalf2x16's input
        -:        -:  998:    * \return packHalf2x16's output as a uint rvalue
        -:        -:  999:    */
        -:        -: 1000:   ir_rvalue*
    #####:    #####: 1001:   lower_pack_half_2x16(ir_rvalue *vec2_rval)
        -:        -: 1002:   {
        -:        -: 1003:      /* From page 89 (95 of pdf) of the GLSL ES 3.00 spec:
        -:        -: 1004:       *
        -:        -: 1005:       *    highp uint packHalf2x16 (mediump vec2 v)
        -:        -: 1006:       *    ----------------------------------------
        -:        -: 1007:       *    Returns an unsigned integer obtained by converting the components of
        -:        -: 1008:       *    a two-component floating-point vector to the 16-bit floating-point
        -:        -: 1009:       *    representation found in the OpenGL ES Specification, and then packing
        -:        -: 1010:       *    these two 16-bit integers into a 32-bit unsigned integer.
        -:        -: 1011:       *
        -:        -: 1012:       *    The first vector component specifies the 16 least- significant bits
        -:        -: 1013:       *    of the result; the second component specifies the 16 most-significant
        -:        -: 1014:       *    bits.
        -:        -: 1015:       */
        -:        -: 1016:
    #####:    #####: 1017:      assert(vec2_rval->type == glsl_type::vec2_type);
        -:        -: 1018:
        -:        -: 1019:      /* vec2 f = VEC2_RVAL; */
    #####:    #####: 1020:      ir_variable *f = factory.make_temp(glsl_type::vec2_type,
    #####:    #####: 1021:                                         "tmp_pack_half_2x16_f");
    #####:    #####: 1022:      factory.emit(assign(f, vec2_rval));
        -:        -: 1023:
        -:        -: 1024:      /* uvec2 f32 = bitcast_f2u(f); */
    #####:    #####: 1025:      ir_variable *f32 = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1026:                                            "tmp_pack_half_2x16_f32");
    #####:    #####: 1027:      factory.emit(assign(f32, expr(ir_unop_bitcast_f2u, f)));
        -:        -: 1028:
        -:        -: 1029:      /* uvec2 f16; */
    #####:    #####: 1030:      ir_variable *f16 = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1031:                                        "tmp_pack_half_2x16_f16");
        -:        -: 1032:
        -:        -: 1033:      /* Get f32's unshifted exponent bits.
        -:        -: 1034:       *
        -:        -: 1035:       *   uvec2 e = f32 & 0x7f800000u;
        -:        -: 1036:       */
    #####:    #####: 1037:      ir_variable *e = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1038:                                          "tmp_pack_half_2x16_e");
    #####:    #####: 1039:      factory.emit(assign(e, bit_and(f32, constant(0x7f800000u))));
        -:        -: 1040:
        -:        -: 1041:      /* Get f32's unshifted mantissa bits.
        -:        -: 1042:       *
        -:        -: 1043:       *   uvec2 m = f32 & 0x007fffffu;
        -:        -: 1044:       */
    #####:    #####: 1045:      ir_variable *m = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1046:                                          "tmp_pack_half_2x16_m");
    #####:    #####: 1047:      factory.emit(assign(m, bit_and(f32, constant(0x007fffffu))));
        -:        -: 1048:
        -:        -: 1049:      /* Set f16's exponent and mantissa bits.
        -:        -: 1050:       *
        -:        -: 1051:       *   f16.x = pack_half_1x16_nosign(e.x, m.x);
        -:        -: 1052:       *   f16.y = pack_half_1y16_nosign(e.y, m.y);
        -:        -: 1053:       */
    #####:    #####: 1054:      factory.emit(assign(f16, pack_half_1x16_nosign(swizzle_x(f),
    #####:    #####: 1055:                                                     swizzle_x(e),
    #####:    #####: 1056:                                                     swizzle_x(m)),
    #####:    #####: 1057:                           WRITEMASK_X));
    #####:    #####: 1058:      factory.emit(assign(f16, pack_half_1x16_nosign(swizzle_y(f),
    #####:    #####: 1059:                                                     swizzle_y(e),
    #####:    #####: 1060:                                                     swizzle_y(m)),
    #####:    #####: 1061:                           WRITEMASK_Y));
        -:        -: 1062:
        -:        -: 1063:      /* Set f16's sign bits.
        -:        -: 1064:       *
        -:        -: 1065:       *   f16 |= (f32 & (1u << 31u) >> 16u;
        -:        -: 1066:       */
    #####:    #####: 1067:      factory.emit(
    #####:    #####: 1068:         assign(f16, bit_or(f16,
    #####:    #####: 1069:                            rshift(bit_and(f32, constant(1u << 31u)),
    #####:    #####: 1070:                                   constant(16u)))));
        -:        -: 1071:
        -:        -: 1072:
        -:        -: 1073:      /* return (f16.y << 16u) | f16.x; */
    #####:    #####: 1074:      ir_rvalue *result = bit_or(lshift(swizzle_y(f16),
    #####:    #####: 1075:                                        constant(16u)),
    #####:    #####: 1076:                                 swizzle_x(f16));
        -:        -: 1077:
    #####:    #####: 1078:      assert(result->type == glsl_type::uint_type);
    #####:    #####: 1079:      return result;
        -:        -: 1080:   }
        -:        -: 1081:
        -:        -: 1082:   /**
        -:        -: 1083:    * \brief Lower the component-wise calculation of unpackHalf2x16.
        -:        -: 1084:    *
        -:        -: 1085:    * Given a uint that encodes a float16 in its lower 16 bits, this function
        -:        -: 1086:    * returns a uint that encodes a float32 with the same value. The sign bit
        -:        -: 1087:    * of the float16 is ignored.
        -:        -: 1088:    *
        -:        -: 1089:    * \param e_rval is the unshifted exponent bits of a float16
        -:        -: 1090:    * \param m_rval is the unshifted mantissa bits of a float16
        -:        -: 1091:    * \param a uint rvalue that encodes a float32
        -:        -: 1092:    */
        -:        -: 1093:   ir_rvalue*
    #####:    #####: 1094:   unpack_half_1x16_nosign(ir_rvalue *e_rval, ir_rvalue *m_rval)
        -:        -: 1095:   {
    #####:    #####: 1096:      assert(e_rval->type == glsl_type::uint_type);
    #####:    #####: 1097:      assert(m_rval->type == glsl_type::uint_type);
        -:        -: 1098:
        -:        -: 1099:      /* uint u32; */
    #####:    #####: 1100:      ir_variable *u32 = factory.make_temp(glsl_type::uint_type,
    #####:    #####: 1101:                                           "tmp_unpack_half_1x16_u32");
        -:        -: 1102:
        -:        -: 1103:      /* uint e = E_RVAL; */
    #####:    #####: 1104:      ir_variable *e = factory.make_temp(glsl_type::uint_type,
    #####:    #####: 1105:                                          "tmp_unpack_half_1x16_e");
    #####:    #####: 1106:      factory.emit(assign(e, e_rval));
        -:        -: 1107:
        -:        -: 1108:      /* uint m = M_RVAL; */
    #####:    #####: 1109:      ir_variable *m = factory.make_temp(glsl_type::uint_type,
    #####:    #####: 1110:                                          "tmp_unpack_half_1x16_m");
    #####:    #####: 1111:      factory.emit(assign(m, m_rval));
        -:        -: 1112:
        -:        -: 1113:      /* Preliminaries
        -:        -: 1114:       * -------------
        -:        -: 1115:       *
        -:        -: 1116:       * For a float16, the bit layout is:
        -:        -: 1117:       *
        -:        -: 1118:       *   sign:     15
        -:        -: 1119:       *   exponent: 10:14
        -:        -: 1120:       *   mantissa: 0:9
        -:        -: 1121:       *
        -:        -: 1122:       * Let f16 be a float16 value. The sign, exponent, and mantissa
        -:        -: 1123:       * determine its value thus:
        -:        -: 1124:       *
        -:        -: 1125:       *   if e16 = 0 and m16 = 0, then zero:       (-1)^s16 * 0                               (1)
        -:        -: 1126:       *   if e16 = 0 and m16!= 0, then subnormal:  (-1)^s16 * 2^(e16 - 14) * (m16 / 2^10)     (2)
        -:        -: 1127:       *   if 0 < e16 < 31, then normal:            (-1)^s16 * 2^(e16 - 15) * (1 + m16 / 2^10) (3)
        -:        -: 1128:       *   if e16 = 31 and m16 = 0, then infinite:  (-1)^s16 * inf                             (4)
        -:        -: 1129:       *   if e16 = 31 and m16 != 0, then           NaN                                        (5)
        -:        -: 1130:       *
        -:        -: 1131:       * where 0 <= m16 < 2^10.
        -:        -: 1132:       *
        -:        -: 1133:       * For a float32, the bit layout is:
        -:        -: 1134:       *
        -:        -: 1135:       *   sign: 31
        -:        -: 1136:       *   exponent: 23:30
        -:        -: 1137:       *   mantissa: 0:22
        -:        -: 1138:       *
        -:        -: 1139:       * Let f32 be a float32 value. The sign, exponent, and mantissa
        -:        -: 1140:       * determine its value thus:
        -:        -: 1141:       *
        -:        -: 1142:       *   if e32 = 0 and m32 = 0, then zero:        (-1)^s * 0                                (10)
        -:        -: 1143:       *   if e32 = 0 and m32 != 0, then subnormal:  (-1)^s * 2^(e32 - 126) * (m32 / 2^23)     (11)
        -:        -: 1144:       *   if 0 < e32 < 255, then normal:            (-1)^s * 2^(e32 - 127) * (1 + m32 / 2^23) (12)
        -:        -: 1145:       *   if e32 = 255 and m32 = 0, then infinite:  (-1)^s * inf                              (13)
        -:        -: 1146:       *   if e32 = 255 and m32 != 0, then           NaN                                       (14)
        -:        -: 1147:       *
        -:        -: 1148:       * where 0 <= m32 < 2^23.
        -:        -: 1149:       *
        -:        -: 1150:       * Calculation
        -:        -: 1151:       * -----------
        -:        -: 1152:       * Our task is to compute s32, e32, m32 given f16.  Since this function
        -:        -: 1153:       * ignores the sign bit, assume that s32 = s16 = 0.  There are several
        -:        -: 1154:       * cases consider.
        -:        -: 1155:       */
        -:        -: 1156:
    #####:    #####: 1157:      factory.emit(
        -:        -: 1158:
        -:        -: 1159:         /* Case 1) f16 is zero or subnormal.
        -:        -: 1160:          *
        -:        -: 1161:          *   The simplest method of calcuating f32 in this case is
        -:        -: 1162:          *
        -:        -: 1163:          *     f32 = f16                       (20)
        -:        -: 1164:          *         = 2^(-14) * (m16 / 2^10)    (21)
        -:        -: 1165:          *         = m16 / 2^(-24)             (22)
        -:        -: 1166:          */
        -:        -: 1167:
        -:        -: 1168:         /* if (e16 == 0) { */
    #####:    #####: 1169:         if_tree(equal(e, constant(0u)),
        -:        -: 1170:
        -:        -: 1171:            /* u32 = bitcast_f2u(float(m) / float(1 << 24)); */
    #####:    #####: 1172:            assign(u32, expr(ir_unop_bitcast_f2u,
    #####:    #####: 1173:                                div(u2f(m), constant((float)(1 << 24))))),
        -:        -: 1174:
        -:        -: 1175:         /* Case 2) f16 is normal.
        -:        -: 1176:          *
        -:        -: 1177:          *   The equation
        -:        -: 1178:          *
        -:        -: 1179:          *     f32 = f16                              (30)
        -:        -: 1180:          *     2^(e32 - 127) * (1 + m32 / 2^23) =     (31)
        -:        -: 1181:          *       2^(e16 - 15) * (1 + m16 / 2^10)
        -:        -: 1182:          *
        -:        -: 1183:          *   can be decomposed into two
        -:        -: 1184:          *
        -:        -: 1185:          *     2^(e32 - 127) = 2^(e16 - 15)           (32)
        -:        -: 1186:          *     1 + m32 / 2^23 = 1 + m16 / 2^10        (33)
        -:        -: 1187:          *
        -:        -: 1188:          *   which solve to
        -:        -: 1189:          *
        -:        -: 1190:          *     e32 = e16 + 112                        (34)
        -:        -: 1191:          *     m32 = m16 * 2^13                       (35)
        -:        -: 1192:          */
        -:        -: 1193:
        -:        -: 1194:         /* } else if (e16 < 31)) { */
    #####:    #####: 1195:         if_tree(less(e, constant(31u << 10u)),
        -:        -: 1196:
        -:        -: 1197:              /* u32 = ((e + (112 << 10)) | m) << 13;
        -:        -: 1198:               */
    #####:    #####: 1199:              assign(u32, lshift(bit_or(add(e, constant(112u << 10u)), m),
    #####:    #####: 1200:                                 constant(13u))),
        -:        -: 1201:
        -:        -: 1202:
        -:        -: 1203:         /* Case 3) f16 is infinite. */
    #####:    #####: 1204:         if_tree(equal(m, constant(0u)),
        -:        -: 1205:
    #####:    #####: 1206:                 assign(u32, constant(255u << 23u)),
        -:        -: 1207:
        -:        -: 1208:         /* Case 4) f16 is NaN. */
        -:        -: 1209:         /* } else { */
        -:        -: 1210:
    #####:    #####: 1211:            assign(u32, constant(0x7fffffffu))))));
        -:        -: 1212:
        -:        -: 1213:         /* } */
        -:        -: 1214:
    #####:    #####: 1215:      return deref(u32).val;
        -:        -: 1216:   }
        -:        -: 1217:
        -:        -: 1218:   /**
        -:        -: 1219:    * \brief Lower an unpackHalf2x16 expression.
        -:        -: 1220:    *
        -:        -: 1221:    * \param uint_rval is unpackHalf2x16's input
        -:        -: 1222:    * \return unpackHalf2x16's output as a vec2 rvalue
        -:        -: 1223:    */
        -:        -: 1224:   ir_rvalue*
    #####:    #####: 1225:   lower_unpack_half_2x16(ir_rvalue *uint_rval)
        -:        -: 1226:   {
        -:        -: 1227:      /* From page 89 (95 of pdf) of the GLSL ES 3.00 spec:
        -:        -: 1228:       *
        -:        -: 1229:       *    mediump vec2 unpackHalf2x16 (highp uint v)
        -:        -: 1230:       *    ------------------------------------------
        -:        -: 1231:       *    Returns a two-component floating-point vector with components
        -:        -: 1232:       *    obtained by unpacking a 32-bit unsigned integer into a pair of 16-bit
        -:        -: 1233:       *    values, interpreting those values as 16-bit floating-point numbers
        -:        -: 1234:       *    according to the OpenGL ES Specification, and converting them to
        -:        -: 1235:       *    32-bit floating-point values.
        -:        -: 1236:       *
        -:        -: 1237:       *    The first component of the vector is obtained from the
        -:        -: 1238:       *    16 least-significant bits of v; the second component is obtained
        -:        -: 1239:       *    from the 16 most-significant bits of v.
        -:        -: 1240:       */
    #####:    #####: 1241:      assert(uint_rval->type == glsl_type::uint_type);
        -:        -: 1242:
        -:        -: 1243:      /* uint u = RVALUE;
        -:        -: 1244:       * uvec2 f16 = uvec2(u.x & 0xffff, u.y >> 16);
        -:        -: 1245:       */
    #####:    #####: 1246:      ir_variable *f16 = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1247:                                            "tmp_unpack_half_2x16_f16");
    #####:    #####: 1248:      factory.emit(assign(f16, unpack_uint_to_uvec2(uint_rval)));
        -:        -: 1249:
        -:        -: 1250:      /* uvec2 f32; */
    #####:    #####: 1251:      ir_variable *f32 = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1252:                                            "tmp_unpack_half_2x16_f32");
        -:        -: 1253:
        -:        -: 1254:      /* Get f16's unshifted exponent bits.
        -:        -: 1255:       *
        -:        -: 1256:       *    uvec2 e = f16 & 0x7c00u;
        -:        -: 1257:       */
    #####:    #####: 1258:      ir_variable *e = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1259:                                          "tmp_unpack_half_2x16_e");
    #####:    #####: 1260:      factory.emit(assign(e, bit_and(f16, constant(0x7c00u))));
        -:        -: 1261:
        -:        -: 1262:      /* Get f16's unshifted mantissa bits.
        -:        -: 1263:       *
        -:        -: 1264:       *    uvec2 m = f16 & 0x03ffu;
        -:        -: 1265:       */
    #####:    #####: 1266:      ir_variable *m = factory.make_temp(glsl_type::uvec2_type,
    #####:    #####: 1267:                                          "tmp_unpack_half_2x16_m");
    #####:    #####: 1268:      factory.emit(assign(m, bit_and(f16, constant(0x03ffu))));
        -:        -: 1269:
        -:        -: 1270:      /* Set f32's exponent and mantissa bits.
        -:        -: 1271:       *
        -:        -: 1272:       *   f32.x = unpack_half_1x16_nosign(e.x, m.x);
        -:        -: 1273:       *   f32.y = unpack_half_1x16_nosign(e.y, m.y);
        -:        -: 1274:       */
    #####:    #####: 1275:      factory.emit(assign(f32, unpack_half_1x16_nosign(swizzle_x(e),
    #####:    #####: 1276:                                                       swizzle_x(m)),
    #####:    #####: 1277:                           WRITEMASK_X));
    #####:    #####: 1278:      factory.emit(assign(f32, unpack_half_1x16_nosign(swizzle_y(e),
    #####:    #####: 1279:                                                       swizzle_y(m)),
    #####:    #####: 1280:                           WRITEMASK_Y));
        -:        -: 1281:
        -:        -: 1282:      /* Set f32's sign bit.
        -:        -: 1283:       *
        -:        -: 1284:       *    f32 |= (f16 & 0x8000u) << 16u;
        -:        -: 1285:       */
    #####:    #####: 1286:      factory.emit(assign(f32, bit_or(f32,
    #####:    #####: 1287:                                       lshift(bit_and(f16,
    #####:    #####: 1288:                                                      constant(0x8000u)),
    #####:    #####: 1289:                                              constant(16u)))));
        -:        -: 1290:
        -:        -: 1291:      /* return bitcast_u2f(f32); */
    #####:    #####: 1292:      ir_rvalue *result = expr(ir_unop_bitcast_u2f, f32);
    #####:    #####: 1293:      assert(result->type == glsl_type::vec2_type);
    #####:    #####: 1294:      return result;
        -:        -: 1295:   }
        -:        -: 1296:};
        -:        -: 1297:
        -:        -: 1298:} // namespace anonymous
        -:        -: 1299:
        -:        -: 1300:/**
        -:        -: 1301: * \brief Lower the builtin packing functions.
        -:        -: 1302: *
        -:        -: 1303: * \param op_mask is a bitmask of `enum lower_packing_builtins_op`.
        -:        -: 1304: */
        -:        -: 1305:bool
        3:        3: 1306:lower_packing_builtins(exec_list *instructions, int op_mask)
        -:        -: 1307:{
        6:        6: 1308:   lower_packing_builtins_visitor v(op_mask);
        3:        3: 1309:   visit_list_elements(&v, instructions, true);
        6:        6: 1310:   return v.get_progress();
        -:        -: 1311:}

src/compiler/lower_ubo_reference.cpp.gcov

        -:        -:    0:Source:glsl/lower_ubo_reference.cpp
        -:        -:    0:Graph:glsl/.libs/lower_ubo_reference.gcno
        -:        -:    0:Data:glsl/.libs/lower_ubo_reference.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_ubo_reference.cpp
        -:        -:   26: *
        -:        -:   27: * IR lower pass to replace dereferences of variables in a uniform
        -:        -:   28: * buffer object with usage of ir_binop_ubo_load expressions, each of
        -:        -:   29: * which can read data up to the size of a vec4.
        -:        -:   30: *
        -:        -:   31: * This relieves drivers of the responsibility to deal with tricky UBO
        -:        -:   32: * layout issues like std140 structures and row_major matrices on
        -:        -:   33: * their own.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include "lower_buffer_access.h"
        -:        -:   37:#include "ir_builder.h"
        -:        -:   38:#include "main/macros.h"
        -:        -:   39:#include "glsl_parser_extras.h"
        -:        -:   40:
        -:        -:   41:using namespace ir_builder;
        -:        -:   42:
        -:        -:   43:namespace {
        -:        -:   44:class lower_ubo_reference_visitor :
        -:        -:   45:      public lower_buffer_access::lower_buffer_access {
        -:        -:   46:public:
        3:        3:   47:   lower_ubo_reference_visitor(struct gl_linked_shader *shader,
        -:        -:   48:                               bool clamp_block_indices)
        -:        -:   49:   : shader(shader), clamp_block_indices(clamp_block_indices),
        3:        3:   50:     struct_field(NULL), variable(NULL)
        -:        -:   51:   {
        3:        3:   52:   }
        -:        -:   53:
        -:        -:   54:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   55:   ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   56:
        -:        -:   57:   void setup_for_load_or_store(void *mem_ctx,
        -:        -:   58:                                ir_variable *var,
        -:        -:   59:                                ir_rvalue *deref,
        -:        -:   60:                                ir_rvalue **offset,
        -:        -:   61:                                unsigned *const_offset,
        -:        -:   62:                                bool *row_major,
        -:        -:   63:                                int *matrix_columns,
        -:        -:   64:                                enum glsl_interface_packing packing);
        -:        -:   65:   uint32_t ssbo_access_params();
        -:        -:   66:   ir_expression *ubo_load(void *mem_ctx, const struct glsl_type *type,
        -:        -:   67:			   ir_rvalue *offset);
        -:        -:   68:   ir_call *ssbo_load(void *mem_ctx, const struct glsl_type *type,
        -:        -:   69:                      ir_rvalue *offset);
        -:        -:   70:
        -:        -:   71:   bool check_for_buffer_array_copy(ir_assignment *ir);
        -:        -:   72:   bool check_for_buffer_struct_copy(ir_assignment *ir);
        -:        -:   73:   void check_for_ssbo_store(ir_assignment *ir);
        -:        -:   74:   void write_to_memory(void *mem_ctx, ir_dereference *deref, ir_variable *var,
        -:        -:   75:                        ir_variable *write_var, unsigned write_mask);
        -:        -:   76:   ir_call *ssbo_store(void *mem_ctx, ir_rvalue *deref, ir_rvalue *offset,
        -:        -:   77:                       unsigned write_mask);
        -:        -:   78:
        -:        -:   79:   enum {
        -:        -:   80:      ubo_load_access,
        -:        -:   81:      ssbo_load_access,
        -:        -:   82:      ssbo_store_access,
        -:        -:   83:      ssbo_unsized_array_length_access,
        -:        -:   84:      ssbo_atomic_access,
        -:        -:   85:   } buffer_access_type;
        -:        -:   86:
        -:        -:   87:   void insert_buffer_access(void *mem_ctx, ir_dereference *deref,
        -:        -:   88:                             const glsl_type *type, ir_rvalue *offset,
        -:        -:   89:                             unsigned mask, int channel);
        -:        -:   90:
        -:        -:   91:   ir_visitor_status visit_enter(class ir_expression *);
        -:        -:   92:   ir_expression *calculate_ssbo_unsized_array_length(ir_expression *expr);
        -:        -:   93:   void check_ssbo_unsized_array_length_expression(class ir_expression *);
        -:        -:   94:   void check_ssbo_unsized_array_length_assignment(ir_assignment *ir);
        -:        -:   95:
        -:        -:   96:   ir_expression *process_ssbo_unsized_array_length(ir_rvalue **,
        -:        -:   97:                                                    ir_dereference *,
        -:        -:   98:                                                    ir_variable *);
        -:        -:   99:   ir_expression *emit_ssbo_get_buffer_size(void *mem_ctx);
        -:        -:  100:
        -:        -:  101:   unsigned calculate_unsized_array_stride(ir_dereference *deref,
        -:        -:  102:                                           enum glsl_interface_packing packing);
        -:        -:  103:
        -:        -:  104:   ir_call *lower_ssbo_atomic_intrinsic(ir_call *ir);
        -:        -:  105:   ir_call *check_for_ssbo_atomic_intrinsic(ir_call *ir);
        -:        -:  106:   ir_visitor_status visit_enter(ir_call *ir);
        -:        -:  107:
        -:        -:  108:   struct gl_linked_shader *shader;
        -:        -:  109:   bool clamp_block_indices;
        -:        -:  110:   const struct glsl_struct_field *struct_field;
        -:        -:  111:   ir_variable *variable;
        -:        -:  112:   ir_rvalue *uniform_block;
        -:        -:  113:   bool progress;
        -:        -:  114:};
        -:        -:  115:
        -:        -:  116:/**
        -:        -:  117: * Determine the name of the interface block field
        -:        -:  118: *
        -:        -:  119: * This is the name of the specific member as it would appear in the
        -:        -:  120: * \c gl_uniform_buffer_variable::Name field in the shader's
        -:        -:  121: * \c UniformBlocks array.
        -:        -:  122: */
        -:        -:  123:static const char *
    #####:    #####:  124:interface_field_name(void *mem_ctx, char *base_name, ir_rvalue *d,
        -:        -:  125:                     ir_rvalue **nonconst_block_index)
        -:        -:  126:{
    #####:    #####:  127:   *nonconst_block_index = NULL;
    #####:    #####:  128:   char *name_copy = NULL;
    #####:    #####:  129:   size_t base_length = 0;
        -:        -:  130:
        -:        -:  131:   /* Loop back through the IR until we find the uniform block */
    #####:    #####:  132:   ir_rvalue *ir = d;
    #####:    #####:  133:   while (ir != NULL) {
    #####:    #####:  134:      switch (ir->ir_type) {
        -:        -:  135:      case ir_type_dereference_variable: {
        -:        -:  136:         /* Exit loop */
    #####:    #####:  137:         ir = NULL;
    #####:    #####:  138:         break;
        -:        -:  139:      }
        -:        -:  140:
        -:        -:  141:      case ir_type_dereference_record: {
    #####:    #####:  142:         ir_dereference_record *r = (ir_dereference_record *) ir;
    #####:    #####:  143:         ir = r->record->as_dereference();
        -:        -:  144:
        -:        -:  145:         /* If we got here it means any previous array subscripts belong to
        -:        -:  146:          * block members and not the block itself so skip over them in the
        -:        -:  147:          * next pass.
        -:        -:  148:          */
    #####:    #####:  149:         d = ir;
    #####:    #####:  150:         break;
        -:        -:  151:      }
        -:        -:  152:
        -:        -:  153:      case ir_type_dereference_array: {
    #####:    #####:  154:         ir_dereference_array *a = (ir_dereference_array *) ir;
    #####:    #####:  155:         ir = a->array->as_dereference();
    #####:    #####:  156:         break;
        -:        -:  157:      }
        -:        -:  158:
        -:        -:  159:      case ir_type_swizzle: {
    #####:    #####:  160:         ir_swizzle *s = (ir_swizzle *) ir;
    #####:    #####:  161:         ir = s->val->as_dereference();
        -:        -:  162:         /* Skip swizzle in the next pass */
    #####:    #####:  163:         d = ir;
    #####:    #####:  164:         break;
        -:        -:  165:      }
        -:        -:  166:
        -:        -:  167:      default:
    #####:    #####:  168:         assert(!"Should not get here.");
        -:        -:  169:         break;
        -:        -:  170:      }
        -:        -:  171:   }
        -:        -:  172:
    #####:    #####:  173:   while (d != NULL) {
    #####:    #####:  174:      switch (d->ir_type) {
        -:        -:  175:      case ir_type_dereference_variable: {
    #####:    #####:  176:         ir_dereference_variable *v = (ir_dereference_variable *) d;
    #####:    #####:  177:         if (name_copy != NULL &&
    #####:    #####:  178:             v->var->is_interface_instance() &&
    #####:    #####:  179:             v->var->type->is_array()) {
    #####:    #####:  180:            return name_copy;
        -:        -:  181:         } else {
    #####:    #####:  182:            *nonconst_block_index = NULL;
    #####:    #####:  183:            return base_name;
        -:        -:  184:         }
        -:        -:  185:
        -:        -:  186:         break;
        -:        -:  187:      }
        -:        -:  188:
        -:        -:  189:      case ir_type_dereference_array: {
    #####:    #####:  190:         ir_dereference_array *a = (ir_dereference_array *) d;
        -:        -:  191:         size_t new_length;
        -:        -:  192:
    #####:    #####:  193:         if (name_copy == NULL) {
    #####:    #####:  194:            name_copy = ralloc_strdup(mem_ctx, base_name);
    #####:    #####:  195:            base_length = strlen(name_copy);
        -:        -:  196:         }
        -:        -:  197:
        -:        -:  198:         /* For arrays of arrays we start at the innermost array and work our
        -:        -:  199:          * way out so we need to insert the subscript at the base of the
        -:        -:  200:          * name string rather than just attaching it to the end.
        -:        -:  201:          */
    #####:    #####:  202:         new_length = base_length;
    #####:    #####:  203:         ir_constant *const_index = a->array_index->as_constant();
    #####:    #####:  204:         char *end = ralloc_strdup(NULL, &name_copy[new_length]);
    #####:    #####:  205:         if (!const_index) {
    #####:    #####:  206:            ir_rvalue *array_index = a->array_index;
    #####:    #####:  207:            if (array_index->type != glsl_type::uint_type)
    #####:    #####:  208:               array_index = i2u(array_index);
        -:        -:  209:
    #####:    #####:  210:            if (a->array->type->is_array() &&
    #####:    #####:  211:                a->array->type->fields.array->is_array()) {
        -:        -:  212:               ir_constant *base_size = new(mem_ctx)
    #####:    #####:  213:                  ir_constant(a->array->type->fields.array->arrays_of_arrays_size());
    #####:    #####:  214:               array_index = mul(array_index, base_size);
        -:        -:  215:            }
        -:        -:  216:
    #####:    #####:  217:            if (*nonconst_block_index) {
    #####:    #####:  218:               *nonconst_block_index = add(*nonconst_block_index, array_index);
        -:        -:  219:            } else {
    #####:    #####:  220:               *nonconst_block_index = array_index;
        -:        -:  221:            }
        -:        -:  222:
        -:        -:  223:            ralloc_asprintf_rewrite_tail(&name_copy, &new_length, "[0]%s",
    #####:    #####:  224:                                         end);
        -:        -:  225:         } else {
    #####:    #####:  226:            ralloc_asprintf_rewrite_tail(&name_copy, &new_length, "[%d]%s",
        -:        -:  227:                                         const_index->get_uint_component(0),
    #####:    #####:  228:                                         end);
        -:        -:  229:         }
    #####:    #####:  230:         ralloc_free(end);
        -:        -:  231:
    #####:    #####:  232:         d = a->array->as_dereference();
        -:        -:  233:
    #####:    #####:  234:         break;
        -:        -:  235:      }
        -:        -:  236:
        -:        -:  237:      default:
    #####:    #####:  238:         assert(!"Should not get here.");
        -:        -:  239:         break;
        -:        -:  240:      }
        -:        -:  241:   }
        -:        -:  242:
    #####:    #####:  243:   assert(!"Should not get here.");
        -:        -:  244:   return NULL;
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:static ir_rvalue *
    #####:    #####:  248:clamp_to_array_bounds(void *mem_ctx, ir_rvalue *index, const glsl_type *type)
        -:        -:  249:{
    #####:    #####:  250:   assert(type->is_array());
        -:        -:  251:
    #####:    #####:  252:   const unsigned array_size = type->arrays_of_arrays_size();
        -:        -:  253:
    #####:    #####:  254:   ir_constant *max_index = new(mem_ctx) ir_constant(array_size - 1);
    #####:    #####:  255:   max_index->type = index->type;
        -:        -:  256:
    #####:    #####:  257:   ir_constant *zero = new(mem_ctx) ir_constant(0);
    #####:    #####:  258:   zero->type = index->type;
        -:        -:  259:
    #####:    #####:  260:   if (index->type->base_type == GLSL_TYPE_INT)
    #####:    #####:  261:      index = max2(index, zero);
    #####:    #####:  262:   index = min2(index, max_index);
        -:        -:  263:
    #####:    #####:  264:   return index;
        -:        -:  265:}
        -:        -:  266:
        -:        -:  267:void
    #####:    #####:  268:lower_ubo_reference_visitor::setup_for_load_or_store(void *mem_ctx,
        -:        -:  269:                                                     ir_variable *var,
        -:        -:  270:                                                     ir_rvalue *deref,
        -:        -:  271:                                                     ir_rvalue **offset,
        -:        -:  272:                                                     unsigned *const_offset,
        -:        -:  273:                                                     bool *row_major,
        -:        -:  274:                                                     int *matrix_columns,
        -:        -:  275:                                                     enum glsl_interface_packing packing)
        -:        -:  276:{
        -:        -:  277:   /* Determine the name of the interface block */
        -:        -:  278:   ir_rvalue *nonconst_block_index;
        -:        -:  279:   const char *const field_name =
    #####:    #####:  280:      interface_field_name(mem_ctx, (char *) var->get_interface_type()->name,
    #####:    #####:  281:                           deref, &nonconst_block_index);
        -:        -:  282:
    #####:    #####:  283:   if (nonconst_block_index && clamp_block_indices) {
        -:        -:  284:      nonconst_block_index =
    #####:    #####:  285:         clamp_to_array_bounds(mem_ctx, nonconst_block_index, var->type);
        -:        -:  286:   }
        -:        -:  287:
        -:        -:  288:   /* Locate the block by interface name */
        -:        -:  289:   unsigned num_blocks;
        -:        -:  290:   struct gl_uniform_block **blocks;
    #####:    #####:  291:   if (this->buffer_access_type != ubo_load_access) {
    #####:    #####:  292:      num_blocks = shader->Program->info.num_ssbos;
    #####:    #####:  293:      blocks = shader->Program->sh.ShaderStorageBlocks;
        -:        -:  294:   } else {
    #####:    #####:  295:      num_blocks = shader->Program->info.num_ubos;
    #####:    #####:  296:      blocks = shader->Program->sh.UniformBlocks;
        -:        -:  297:   }
    #####:    #####:  298:   this->uniform_block = NULL;
    #####:    #####:  299:   for (unsigned i = 0; i < num_blocks; i++) {
    #####:    #####:  300:      if (strcmp(field_name, blocks[i]->Name) == 0) {
        -:        -:  301:
    #####:    #####:  302:         ir_constant *index = new(mem_ctx) ir_constant(i);
        -:        -:  303:
    #####:    #####:  304:         if (nonconst_block_index) {
    #####:    #####:  305:            this->uniform_block = add(nonconst_block_index, index);
        -:        -:  306:         } else {
    #####:    #####:  307:            this->uniform_block = index;
        -:        -:  308:         }
        -:        -:  309:
    #####:    #####:  310:         if (var->is_interface_instance()) {
    #####:    #####:  311:            *const_offset = 0;
        -:        -:  312:         } else {
    #####:    #####:  313:            *const_offset = blocks[i]->Uniforms[var->data.location].Offset;
        -:        -:  314:         }
        -:        -:  315:
    #####:    #####:  316:         break;
        -:        -:  317:      }
        -:        -:  318:   }
        -:        -:  319:
    #####:    #####:  320:   assert(this->uniform_block);
        -:        -:  321:
    #####:    #####:  322:   this->struct_field = NULL;
    #####:    #####:  323:   setup_buffer_access(mem_ctx, deref, offset, const_offset, row_major,
    #####:    #####:  324:                       matrix_columns, &this->struct_field, packing);
    #####:    #####:  325:}
        -:        -:  326:
        -:        -:  327:void
      185:      195:  328:lower_ubo_reference_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  329:{
      185:      195:  330:   if (!*rvalue)
      227:      237:  331:      return;
        -:        -:  332:
      143:      153:  333:   ir_dereference *deref = (*rvalue)->as_dereference();
      143:      153:  334:   if (!deref)
       65:       71:  335:      return;
        -:        -:  336:
       78:       82:  337:   ir_variable *var = deref->variable_referenced();
       78:       82:  338:   if (!var || !var->is_in_buffer_block())
       78:       82:  339:      return;
        -:        -:  340:
    #####:    #####:  341:   void *mem_ctx = ralloc_parent(shader->ir);
        -:        -:  342:
    #####:    #####:  343:   ir_rvalue *offset = NULL;
        -:        -:  344:   unsigned const_offset;
        -:        -:  345:   bool row_major;
        -:        -:  346:   int matrix_columns;
    #####:    #####:  347:   enum glsl_interface_packing packing = var->get_interface_type_packing();
        -:        -:  348:
        -:        -:  349:   this->buffer_access_type =
    #####:    #####:  350:      var->is_in_shader_storage_block() ?
    #####:    #####:  351:      ssbo_load_access : ubo_load_access;
    #####:    #####:  352:   this->variable = var;
        -:        -:  353:
        -:        -:  354:   /* Compute the offset to the start if the dereference as well as other
        -:        -:  355:    * information we need to configure the write
        -:        -:  356:    */
        -:        -:  357:   setup_for_load_or_store(mem_ctx, var, deref,
        -:        -:  358:                           &offset, &const_offset,
        -:        -:  359:                           &row_major, &matrix_columns,
    #####:    #####:  360:                           packing);
    #####:    #####:  361:   assert(offset);
        -:        -:  362:
        -:        -:  363:   /* Now that we've calculated the offset to the start of the
        -:        -:  364:    * dereference, walk over the type and emit loads into a temporary.
        -:        -:  365:    */
    #####:    #####:  366:   const glsl_type *type = (*rvalue)->type;
        -:        -:  367:   ir_variable *load_var = new(mem_ctx) ir_variable(type,
        -:        -:  368:						    "ubo_load_temp",
    #####:    #####:  369:						    ir_var_temporary);
    #####:    #####:  370:   base_ir->insert_before(load_var);
        -:        -:  371:
        -:        -:  372:   ir_variable *load_offset = new(mem_ctx) ir_variable(glsl_type::uint_type,
        -:        -:  373:						       "ubo_load_temp_offset",
    #####:    #####:  374:						       ir_var_temporary);
    #####:    #####:  375:   base_ir->insert_before(load_offset);
    #####:    #####:  376:   base_ir->insert_before(assign(load_offset, offset));
        -:        -:  377:
    #####:    #####:  378:   deref = new(mem_ctx) ir_dereference_variable(load_var);
    #####:    #####:  379:   emit_access(mem_ctx, false, deref, load_offset, const_offset,
    #####:    #####:  380:               row_major, matrix_columns, packing, 0);
    #####:    #####:  381:   *rvalue = deref;
        -:        -:  382:
    #####:    #####:  383:   progress = true;
        -:        -:  384:}
        -:        -:  385:
        -:        -:  386:ir_expression *
    #####:    #####:  387:lower_ubo_reference_visitor::ubo_load(void *mem_ctx,
        -:        -:  388:                                      const glsl_type *type,
        -:        -:  389:				      ir_rvalue *offset)
        -:        -:  390:{
    #####:    #####:  391:   ir_rvalue *block_ref = this->uniform_block->clone(mem_ctx, NULL);
        -:        -:  392:   return new(mem_ctx)
        -:        -:  393:      ir_expression(ir_binop_ubo_load,
        -:        -:  394:                    type,
        -:        -:  395:                    block_ref,
    #####:    #####:  396:                    offset);
        -:        -:  397:
        -:        -:  398:}
        -:        -:  399:
        -:        -:  400:static bool
    #####:    #####:  401:shader_storage_buffer_object(const _mesa_glsl_parse_state *state)
        -:        -:  402:{
    #####:    #####:  403:   return state->has_shader_storage_buffer_objects();
        -:        -:  404:}
        -:        -:  405:
        -:        -:  406:uint32_t
    #####:    #####:  407:lower_ubo_reference_visitor::ssbo_access_params()
        -:        -:  408:{
    #####:    #####:  409:   assert(variable);
        -:        -:  410:
    #####:    #####:  411:   if (variable->is_interface_instance()) {
    #####:    #####:  412:      assert(struct_field);
        -:        -:  413:
    #####:    #####:  414:      return ((struct_field->image_coherent ? ACCESS_COHERENT : 0) |
    #####:    #####:  415:              (struct_field->image_restrict ? ACCESS_RESTRICT : 0) |
    #####:    #####:  416:              (struct_field->image_volatile ? ACCESS_VOLATILE : 0));
        -:        -:  417:   } else {
    #####:    #####:  418:      return ((variable->data.image_coherent ? ACCESS_COHERENT : 0) |
    #####:    #####:  419:              (variable->data.image_restrict ? ACCESS_RESTRICT : 0) |
    #####:    #####:  420:              (variable->data.image_volatile ? ACCESS_VOLATILE : 0));
        -:        -:  421:   }
        -:        -:  422:}
        -:        -:  423:
        -:        -:  424:ir_call *
    #####:    #####:  425:lower_ubo_reference_visitor::ssbo_store(void *mem_ctx,
        -:        -:  426:                                        ir_rvalue *deref,
        -:        -:  427:                                        ir_rvalue *offset,
        -:        -:  428:                                        unsigned write_mask)
        -:        -:  429:{
    #####:    #####:  430:   exec_list sig_params;
        -:        -:  431:
        -:        -:  432:   ir_variable *block_ref = new(mem_ctx)
    #####:    #####:  433:      ir_variable(glsl_type::uint_type, "block_ref" , ir_var_function_in);
    #####:    #####:  434:   sig_params.push_tail(block_ref);
        -:        -:  435:
        -:        -:  436:   ir_variable *offset_ref = new(mem_ctx)
    #####:    #####:  437:      ir_variable(glsl_type::uint_type, "offset" , ir_var_function_in);
    #####:    #####:  438:   sig_params.push_tail(offset_ref);
        -:        -:  439:
        -:        -:  440:   ir_variable *val_ref = new(mem_ctx)
    #####:    #####:  441:      ir_variable(deref->type, "value" , ir_var_function_in);
    #####:    #####:  442:   sig_params.push_tail(val_ref);
        -:        -:  443:
        -:        -:  444:   ir_variable *writemask_ref = new(mem_ctx)
    #####:    #####:  445:      ir_variable(glsl_type::uint_type, "write_mask" , ir_var_function_in);
    #####:    #####:  446:   sig_params.push_tail(writemask_ref);
        -:        -:  447:
        -:        -:  448:   ir_variable *access_ref = new(mem_ctx)
    #####:    #####:  449:      ir_variable(glsl_type::uint_type, "access" , ir_var_function_in);
    #####:    #####:  450:   sig_params.push_tail(access_ref);
        -:        -:  451:
        -:        -:  452:   ir_function_signature *sig = new(mem_ctx)
    #####:    #####:  453:      ir_function_signature(glsl_type::void_type, shader_storage_buffer_object);
    #####:    #####:  454:   assert(sig);
    #####:    #####:  455:   sig->replace_parameters(&sig_params);
    #####:    #####:  456:   sig->intrinsic_id = ir_intrinsic_ssbo_store;
        -:        -:  457:
    #####:    #####:  458:   ir_function *f = new(mem_ctx) ir_function("__intrinsic_store_ssbo");
    #####:    #####:  459:   f->add_signature(sig);
        -:        -:  460:
    #####:    #####:  461:   exec_list call_params;
    #####:    #####:  462:   call_params.push_tail(this->uniform_block->clone(mem_ctx, NULL));
    #####:    #####:  463:   call_params.push_tail(offset->clone(mem_ctx, NULL));
    #####:    #####:  464:   call_params.push_tail(deref->clone(mem_ctx, NULL));
    #####:    #####:  465:   call_params.push_tail(new(mem_ctx) ir_constant(write_mask));
    #####:    #####:  466:   call_params.push_tail(new(mem_ctx) ir_constant(ssbo_access_params()));
    #####:    #####:  467:   return new(mem_ctx) ir_call(sig, NULL, &call_params);
        -:        -:  468:}
        -:        -:  469:
        -:        -:  470:ir_call *
    #####:    #####:  471:lower_ubo_reference_visitor::ssbo_load(void *mem_ctx,
        -:        -:  472:                                       const struct glsl_type *type,
        -:        -:  473:                                       ir_rvalue *offset)
        -:        -:  474:{
    #####:    #####:  475:   exec_list sig_params;
        -:        -:  476:
        -:        -:  477:   ir_variable *block_ref = new(mem_ctx)
    #####:    #####:  478:      ir_variable(glsl_type::uint_type, "block_ref" , ir_var_function_in);
    #####:    #####:  479:   sig_params.push_tail(block_ref);
        -:        -:  480:
        -:        -:  481:   ir_variable *offset_ref = new(mem_ctx)
    #####:    #####:  482:      ir_variable(glsl_type::uint_type, "offset_ref" , ir_var_function_in);
    #####:    #####:  483:   sig_params.push_tail(offset_ref);
        -:        -:  484:
        -:        -:  485:   ir_variable *access_ref = new(mem_ctx)
    #####:    #####:  486:      ir_variable(glsl_type::uint_type, "access" , ir_var_function_in);
    #####:    #####:  487:   sig_params.push_tail(access_ref);
        -:        -:  488:
        -:        -:  489:   ir_function_signature *sig =
    #####:    #####:  490:      new(mem_ctx) ir_function_signature(type, shader_storage_buffer_object);
    #####:    #####:  491:   assert(sig);
    #####:    #####:  492:   sig->replace_parameters(&sig_params);
    #####:    #####:  493:   sig->intrinsic_id = ir_intrinsic_ssbo_load;
        -:        -:  494:
    #####:    #####:  495:   ir_function *f = new(mem_ctx) ir_function("__intrinsic_load_ssbo");
    #####:    #####:  496:   f->add_signature(sig);
        -:        -:  497:
        -:        -:  498:   ir_variable *result = new(mem_ctx)
    #####:    #####:  499:      ir_variable(type, "ssbo_load_result", ir_var_temporary);
    #####:    #####:  500:   base_ir->insert_before(result);
        -:        -:  501:   ir_dereference_variable *deref_result = new(mem_ctx)
    #####:    #####:  502:      ir_dereference_variable(result);
        -:        -:  503:
    #####:    #####:  504:   exec_list call_params;
    #####:    #####:  505:   call_params.push_tail(this->uniform_block->clone(mem_ctx, NULL));
    #####:    #####:  506:   call_params.push_tail(offset->clone(mem_ctx, NULL));
    #####:    #####:  507:   call_params.push_tail(new(mem_ctx) ir_constant(ssbo_access_params()));
        -:        -:  508:
    #####:    #####:  509:   return new(mem_ctx) ir_call(sig, deref_result, &call_params);
        -:        -:  510:}
        -:        -:  511:
        -:        -:  512:void
    #####:    #####:  513:lower_ubo_reference_visitor::insert_buffer_access(void *mem_ctx,
        -:        -:  514:                                                  ir_dereference *deref,
        -:        -:  515:                                                  const glsl_type *type,
        -:        -:  516:                                                  ir_rvalue *offset,
        -:        -:  517:                                                  unsigned mask,
        -:        -:  518:                                                  int channel)
        -:        -:  519:{
    #####:    #####:  520:   switch (this->buffer_access_type) {
        -:        -:  521:   case ubo_load_access:
    #####:    #####:  522:      base_ir->insert_before(assign(deref->clone(mem_ctx, NULL),
    #####:    #####:  523:                                    ubo_load(mem_ctx, type, offset),
    #####:    #####:  524:                                    mask));
    #####:    #####:  525:      break;
        -:        -:  526:   case ssbo_load_access: {
    #####:    #####:  527:      ir_call *load_ssbo = ssbo_load(mem_ctx, type, offset);
    #####:    #####:  528:      base_ir->insert_before(load_ssbo);
    #####:    #####:  529:      ir_rvalue *value = load_ssbo->return_deref->as_rvalue()->clone(mem_ctx, NULL);
        -:        -:  530:      ir_assignment *assignment =
    #####:    #####:  531:         assign(deref->clone(mem_ctx, NULL), value, mask);
    #####:    #####:  532:      base_ir->insert_before(assignment);
    #####:    #####:  533:      break;
        -:        -:  534:   }
        -:        -:  535:   case ssbo_store_access:
    #####:    #####:  536:      if (channel >= 0) {
    #####:    #####:  537:         base_ir->insert_after(ssbo_store(mem_ctx,
    #####:    #####:  538:                                          swizzle(deref, channel, 1),
    #####:    #####:  539:                                          offset, 1));
        -:        -:  540:      } else {
    #####:    #####:  541:         base_ir->insert_after(ssbo_store(mem_ctx, deref, offset, mask));
        -:        -:  542:      }
    #####:    #####:  543:      break;
        -:        -:  544:   default:
    #####:    #####:  545:      unreachable("invalid buffer_access_type in insert_buffer_access");
        -:        -:  546:   }
    #####:    #####:  547:}
        -:        -:  548:
        -:        -:  549:void
    #####:    #####:  550:lower_ubo_reference_visitor::write_to_memory(void *mem_ctx,
        -:        -:  551:                                             ir_dereference *deref,
        -:        -:  552:                                             ir_variable *var,
        -:        -:  553:                                             ir_variable *write_var,
        -:        -:  554:                                             unsigned write_mask)
        -:        -:  555:{
    #####:    #####:  556:   ir_rvalue *offset = NULL;
        -:        -:  557:   unsigned const_offset;
        -:        -:  558:   bool row_major;
        -:        -:  559:   int matrix_columns;
    #####:    #####:  560:   enum glsl_interface_packing packing = var->get_interface_type_packing();
        -:        -:  561:
    #####:    #####:  562:   this->buffer_access_type = ssbo_store_access;
    #####:    #####:  563:   this->variable = var;
        -:        -:  564:
        -:        -:  565:   /* Compute the offset to the start if the dereference as well as other
        -:        -:  566:    * information we need to configure the write
        -:        -:  567:    */
        -:        -:  568:   setup_for_load_or_store(mem_ctx, var, deref,
        -:        -:  569:                           &offset, &const_offset,
        -:        -:  570:                           &row_major, &matrix_columns,
    #####:    #####:  571:                           packing);
    #####:    #####:  572:   assert(offset);
        -:        -:  573:
        -:        -:  574:   /* Now emit writes from the temporary to memory */
        -:        -:  575:   ir_variable *write_offset =
        -:        -:  576:      new(mem_ctx) ir_variable(glsl_type::uint_type,
        -:        -:  577:                               "ssbo_store_temp_offset",
    #####:    #####:  578:                               ir_var_temporary);
        -:        -:  579:
    #####:    #####:  580:   base_ir->insert_before(write_offset);
    #####:    #####:  581:   base_ir->insert_before(assign(write_offset, offset));
        -:        -:  582:
    #####:    #####:  583:   deref = new(mem_ctx) ir_dereference_variable(write_var);
    #####:    #####:  584:   emit_access(mem_ctx, true, deref, write_offset, const_offset,
    #####:    #####:  585:               row_major, matrix_columns, packing, write_mask);
    #####:    #####:  586:}
        -:        -:  587:
        -:        -:  588:ir_visitor_status
       26:       28:  589:lower_ubo_reference_visitor::visit_enter(ir_expression *ir)
        -:        -:  590:{
       26:       28:  591:   check_ssbo_unsized_array_length_expression(ir);
       26:       28:  592:   return rvalue_visit(ir);
        -:        -:  593:}
        -:        -:  594:
        -:        -:  595:ir_expression *
       18:       18:  596:lower_ubo_reference_visitor::calculate_ssbo_unsized_array_length(ir_expression *expr)
        -:        -:  597:{
       18:       18:  598:   if (expr->operation !=
        -:        -:  599:       ir_expression_operation(ir_unop_ssbo_unsized_array_length))
       18:       18:  600:      return NULL;
        -:        -:  601:
    #####:    #####:  602:   ir_rvalue *rvalue = expr->operands[0]->as_rvalue();
    #####:    #####:  603:   if (!rvalue ||
    #####:    #####:  604:       !rvalue->type->is_array() || !rvalue->type->is_unsized_array())
    #####:    #####:  605:      return NULL;
        -:        -:  606:
    #####:    #####:  607:   ir_dereference *deref = expr->operands[0]->as_dereference();
    #####:    #####:  608:   if (!deref)
    #####:    #####:  609:      return NULL;
        -:        -:  610:
    #####:    #####:  611:   ir_variable *var = expr->operands[0]->variable_referenced();
    #####:    #####:  612:   if (!var || !var->is_in_shader_storage_block())
    #####:    #####:  613:      return NULL;
    #####:    #####:  614:   return process_ssbo_unsized_array_length(&rvalue, deref, var);
        -:        -:  615:}
        -:        -:  616:
        -:        -:  617:void
       26:       28:  618:lower_ubo_reference_visitor::check_ssbo_unsized_array_length_expression(ir_expression *ir)
        -:        -:  619:{
       26:       28:  620:   if (ir->operation ==
        -:        -:  621:       ir_expression_operation(ir_unop_ssbo_unsized_array_length)) {
        -:        -:  622:         /* Don't replace this unop if it is found alone. It is going to be
        -:        -:  623:          * removed by the optimization passes or replaced if it is part of
        -:        -:  624:          * an ir_assignment or another ir_expression.
        -:        -:  625:          */
    #####:    #####:  626:         return;
        -:        -:  627:   }
        -:        -:  628:
       73:       79:  629:   for (unsigned i = 0; i < ir->get_num_operands(); i++) {
       47:       51:  630:      if (ir->operands[i]->ir_type != ir_type_expression)
       42:       46:  631:         continue;
        5:        5:  632:      ir_expression *expr = (ir_expression *) ir->operands[i];
        5:        5:  633:      ir_expression *temp = calculate_ssbo_unsized_array_length(expr);
        5:        5:  634:      if (!temp)
        5:        5:  635:         continue;
        -:        -:  636:
    #####:    #####:  637:      delete expr;
    #####:    #####:  638:      ir->operands[i] = temp;
        -:        -:  639:   }
        -:        -:  640:}
        -:        -:  641:
        -:        -:  642:void
       42:       42:  643:lower_ubo_reference_visitor::check_ssbo_unsized_array_length_assignment(ir_assignment *ir)
        -:        -:  644:{
       42:       42:  645:   if (!ir->rhs || ir->rhs->ir_type != ir_type_expression)
       29:       29:  646:      return;
        -:        -:  647:
       13:       13:  648:   ir_expression *expr = (ir_expression *) ir->rhs;
       13:       13:  649:   ir_expression *temp = calculate_ssbo_unsized_array_length(expr);
       13:       13:  650:   if (!temp)
       13:       13:  651:      return;
        -:        -:  652:
    #####:    #####:  653:   delete expr;
    #####:    #####:  654:   ir->rhs = temp;
    #####:    #####:  655:   return;
        -:        -:  656:}
        -:        -:  657:
        -:        -:  658:ir_expression *
    #####:    #####:  659:lower_ubo_reference_visitor::emit_ssbo_get_buffer_size(void *mem_ctx)
        -:        -:  660:{
    #####:    #####:  661:   ir_rvalue *block_ref = this->uniform_block->clone(mem_ctx, NULL);
        -:        -:  662:   return new(mem_ctx) ir_expression(ir_unop_get_buffer_size,
        -:        -:  663:                                     glsl_type::int_type,
    #####:    #####:  664:                                     block_ref);
        -:        -:  665:}
        -:        -:  666:
        -:        -:  667:unsigned
    #####:    #####:  668:lower_ubo_reference_visitor::calculate_unsized_array_stride(ir_dereference *deref,
        -:        -:  669:                                                            enum glsl_interface_packing packing)
        -:        -:  670:{
    #####:    #####:  671:   unsigned array_stride = 0;
        -:        -:  672:
    #####:    #####:  673:   switch (deref->ir_type) {
        -:        -:  674:   case ir_type_dereference_variable:
        -:        -:  675:   {
    #####:    #####:  676:      ir_dereference_variable *deref_var = (ir_dereference_variable *)deref;
    #####:    #####:  677:      const struct glsl_type *unsized_array_type = NULL;
        -:        -:  678:      /* An unsized array can be sized by other lowering passes, so pick
        -:        -:  679:       * the first field of the array which has the data type of the unsized
        -:        -:  680:       * array.
        -:        -:  681:       */
    #####:    #####:  682:      unsized_array_type = deref_var->var->type->fields.array;
        -:        -:  683:
        -:        -:  684:      /* Whether or not the field is row-major (because it might be a
        -:        -:  685:       * bvec2 or something) does not affect the array itself. We need
        -:        -:  686:       * to know whether an array element in its entirety is row-major.
        -:        -:  687:       */
        -:        -:  688:      const bool array_row_major =
    #####:    #####:  689:         is_dereferenced_thing_row_major(deref_var);
        -:        -:  690:
    #####:    #####:  691:      if (packing == GLSL_INTERFACE_PACKING_STD430) {
    #####:    #####:  692:         array_stride = unsized_array_type->std430_array_stride(array_row_major);
        -:        -:  693:      } else {
    #####:    #####:  694:         array_stride = unsized_array_type->std140_size(array_row_major);
    #####:    #####:  695:         array_stride = glsl_align(array_stride, 16);
        -:        -:  696:      }
    #####:    #####:  697:      break;
        -:        -:  698:   }
        -:        -:  699:   case ir_type_dereference_record:
        -:        -:  700:   {
    #####:    #####:  701:      ir_dereference_record *deref_record = (ir_dereference_record *) deref;
        -:        -:  702:      ir_dereference *interface_deref =
    #####:    #####:  703:         deref_record->record->as_dereference();
    #####:    #####:  704:      assert(interface_deref != NULL);
    #####:    #####:  705:      const struct glsl_type *interface_type = interface_deref->type;
    #####:    #####:  706:      unsigned record_length = interface_type->length;
        -:        -:  707:      /* Unsized array is always the last element of the interface */
        -:        -:  708:      const struct glsl_type *unsized_array_type =
    #####:    #####:  709:         interface_type->fields.structure[record_length - 1].type->fields.array;
        -:        -:  710:
        -:        -:  711:      const bool array_row_major =
    #####:    #####:  712:         is_dereferenced_thing_row_major(deref_record);
        -:        -:  713:
    #####:    #####:  714:      if (packing == GLSL_INTERFACE_PACKING_STD430) {
    #####:    #####:  715:         array_stride = unsized_array_type->std430_array_stride(array_row_major);
        -:        -:  716:      } else {
    #####:    #####:  717:         array_stride = unsized_array_type->std140_size(array_row_major);
    #####:    #####:  718:         array_stride = glsl_align(array_stride, 16);
        -:        -:  719:      }
    #####:    #####:  720:      break;
        -:        -:  721:   }
        -:        -:  722:   default:
    #####:    #####:  723:      unreachable("Unsupported dereference type");
        -:        -:  724:   }
    #####:    #####:  725:   return array_stride;
        -:        -:  726:}
        -:        -:  727:
        -:        -:  728:ir_expression *
    #####:    #####:  729:lower_ubo_reference_visitor::process_ssbo_unsized_array_length(ir_rvalue **rvalue,
        -:        -:  730:                                                               ir_dereference *deref,
        -:        -:  731:                                                               ir_variable *var)
        -:        -:  732:{
    #####:    #####:  733:   void *mem_ctx = ralloc_parent(*rvalue);
        -:        -:  734:
    #####:    #####:  735:   ir_rvalue *base_offset = NULL;
        -:        -:  736:   unsigned const_offset;
        -:        -:  737:   bool row_major;
        -:        -:  738:   int matrix_columns;
    #####:    #####:  739:   enum glsl_interface_packing packing = var->get_interface_type_packing();
    #####:    #####:  740:   int unsized_array_stride = calculate_unsized_array_stride(deref, packing);
        -:        -:  741:
    #####:    #####:  742:   this->buffer_access_type = ssbo_unsized_array_length_access;
    #####:    #####:  743:   this->variable = var;
        -:        -:  744:
        -:        -:  745:   /* Compute the offset to the start if the dereference as well as other
        -:        -:  746:    * information we need to calculate the length.
        -:        -:  747:    */
        -:        -:  748:   setup_for_load_or_store(mem_ctx, var, deref,
        -:        -:  749:                           &base_offset, &const_offset,
        -:        -:  750:                           &row_major, &matrix_columns,
    #####:    #####:  751:                           packing);
        -:        -:  752:   /* array.length() =
        -:        -:  753:    *  max((buffer_object_size - offset_of_array) / stride_of_array, 0)
        -:        -:  754:    */
    #####:    #####:  755:   ir_expression *buffer_size = emit_ssbo_get_buffer_size(mem_ctx);
        -:        -:  756:
        -:        -:  757:   ir_expression *offset_of_array = new(mem_ctx)
        -:        -:  758:      ir_expression(ir_binop_add, base_offset,
    #####:    #####:  759:                    new(mem_ctx) ir_constant(const_offset));
        -:        -:  760:   ir_expression *offset_of_array_int = new(mem_ctx)
    #####:    #####:  761:      ir_expression(ir_unop_u2i, offset_of_array);
        -:        -:  762:
        -:        -:  763:   ir_expression *sub = new(mem_ctx)
    #####:    #####:  764:      ir_expression(ir_binop_sub, buffer_size, offset_of_array_int);
        -:        -:  765:   ir_expression *div =  new(mem_ctx)
        -:        -:  766:      ir_expression(ir_binop_div, sub,
    #####:    #####:  767:                    new(mem_ctx) ir_constant(unsized_array_stride));
        -:        -:  768:   ir_expression *max = new(mem_ctx)
    #####:    #####:  769:      ir_expression(ir_binop_max, div, new(mem_ctx) ir_constant(0));
        -:        -:  770:
    #####:    #####:  771:   return max;
        -:        -:  772:}
        -:        -:  773:
        -:        -:  774:void
       42:       42:  775:lower_ubo_reference_visitor::check_for_ssbo_store(ir_assignment *ir)
        -:        -:  776:{
       42:       42:  777:   if (!ir || !ir->lhs)
    #####:    #####:  778:      return;
        -:        -:  779:
       42:       42:  780:   ir_rvalue *rvalue = ir->lhs->as_rvalue();
       42:       42:  781:   if (!rvalue)
    #####:    #####:  782:      return;
        -:        -:  783:
       42:       42:  784:   ir_dereference *deref = ir->lhs->as_dereference();
       42:       42:  785:   if (!deref)
    #####:    #####:  786:      return;
        -:        -:  787:
       42:       42:  788:   ir_variable *var = ir->lhs->variable_referenced();
       42:       42:  789:   if (!var || !var->is_in_shader_storage_block())
       42:       42:  790:      return;
        -:        -:  791:
        -:        -:  792:   /* We have a write to a buffer variable, so declare a temporary and rewrite
        -:        -:  793:    * the assignment so that the temporary is the LHS.
        -:        -:  794:    */
    #####:    #####:  795:   void *mem_ctx = ralloc_parent(shader->ir);
        -:        -:  796:
    #####:    #####:  797:   const glsl_type *type = rvalue->type;
        -:        -:  798:   ir_variable *write_var = new(mem_ctx) ir_variable(type,
        -:        -:  799:                                                     "ssbo_store_temp",
    #####:    #####:  800:                                                     ir_var_temporary);
    #####:    #####:  801:   base_ir->insert_before(write_var);
    #####:    #####:  802:   ir->lhs = new(mem_ctx) ir_dereference_variable(write_var);
        -:        -:  803:
        -:        -:  804:   /* Now we have to write the value assigned to the temporary back to memory */
    #####:    #####:  805:   write_to_memory(mem_ctx, deref, var, write_var, ir->write_mask);
    #####:    #####:  806:   progress = true;
        -:        -:  807:}
        -:        -:  808:
        -:        -:  809:static bool
    #####:    #####:  810:is_buffer_backed_variable(ir_variable *var)
        -:        -:  811:{
    #####:    #####:  812:   return var->is_in_buffer_block() ||
    #####:    #####:  813:          var->data.mode == ir_var_shader_shared;
        -:        -:  814:}
        -:        -:  815:
        -:        -:  816:bool
       42:       42:  817:lower_ubo_reference_visitor::check_for_buffer_array_copy(ir_assignment *ir)
        -:        -:  818:{
       42:       42:  819:   if (!ir || !ir->lhs || !ir->rhs)
    #####:    #####:  820:      return false;
        -:        -:  821:
        -:        -:  822:   /* LHS and RHS must be arrays
        -:        -:  823:    * FIXME: arrays of arrays?
        -:        -:  824:    */
       42:       42:  825:   if (!ir->lhs->type->is_array() || !ir->rhs->type->is_array())
       42:       42:  826:      return false;
        -:        -:  827:
        -:        -:  828:   /* RHS must be a buffer-backed variable. This is what can cause the problem
        -:        -:  829:    * since it would lead to a series of loads that need to live until we
        -:        -:  830:    * see the writes to the LHS.
        -:        -:  831:    */
    #####:    #####:  832:   ir_variable *rhs_var = ir->rhs->variable_referenced();
    #####:    #####:  833:   if (!rhs_var || !is_buffer_backed_variable(rhs_var))
    #####:    #####:  834:      return false;
        -:        -:  835:
        -:        -:  836:   /* Split the array copy into individual element copies to reduce
        -:        -:  837:    * register pressure
        -:        -:  838:    */
    #####:    #####:  839:   ir_dereference *rhs_deref = ir->rhs->as_dereference();
    #####:    #####:  840:   if (!rhs_deref)
    #####:    #####:  841:      return false;
        -:        -:  842:
    #####:    #####:  843:   ir_dereference *lhs_deref = ir->lhs->as_dereference();
    #####:    #####:  844:   if (!lhs_deref)
    #####:    #####:  845:      return false;
        -:        -:  846:
    #####:    #####:  847:   assert(lhs_deref->type->length == rhs_deref->type->length);
    #####:    #####:  848:   void *mem_ctx = ralloc_parent(shader->ir);
        -:        -:  849:
    #####:    #####:  850:   for (unsigned i = 0; i < lhs_deref->type->length; i++) {
        -:        -:  851:      ir_dereference *lhs_i =
    #####:    #####:  852:         new(mem_ctx) ir_dereference_array(lhs_deref->clone(mem_ctx, NULL),
    #####:    #####:  853:                                           new(mem_ctx) ir_constant(i));
        -:        -:  854:
        -:        -:  855:      ir_dereference *rhs_i =
    #####:    #####:  856:         new(mem_ctx) ir_dereference_array(rhs_deref->clone(mem_ctx, NULL),
    #####:    #####:  857:                                           new(mem_ctx) ir_constant(i));
    #####:    #####:  858:      ir->insert_after(assign(lhs_i, rhs_i));
        -:        -:  859:   }
        -:        -:  860:
    #####:    #####:  861:   ir->remove();
    #####:    #####:  862:   progress = true;
    #####:    #####:  863:   return true;
        -:        -:  864:}
        -:        -:  865:
        -:        -:  866:bool
       42:       42:  867:lower_ubo_reference_visitor::check_for_buffer_struct_copy(ir_assignment *ir)
        -:        -:  868:{
       42:       42:  869:   if (!ir || !ir->lhs || !ir->rhs)
    #####:    #####:  870:      return false;
        -:        -:  871:
        -:        -:  872:   /* LHS and RHS must be records */
       42:       42:  873:   if (!ir->lhs->type->is_record() || !ir->rhs->type->is_record())
       42:       42:  874:      return false;
        -:        -:  875:
        -:        -:  876:   /* RHS must be a buffer-backed variable. This is what can cause the problem
        -:        -:  877:    * since it would lead to a series of loads that need to live until we
        -:        -:  878:    * see the writes to the LHS.
        -:        -:  879:    */
    #####:    #####:  880:   ir_variable *rhs_var = ir->rhs->variable_referenced();
    #####:    #####:  881:   if (!rhs_var || !is_buffer_backed_variable(rhs_var))
    #####:    #####:  882:      return false;
        -:        -:  883:
        -:        -:  884:   /* Split the struct copy into individual element copies to reduce
        -:        -:  885:    * register pressure
        -:        -:  886:    */
    #####:    #####:  887:   ir_dereference *rhs_deref = ir->rhs->as_dereference();
    #####:    #####:  888:   if (!rhs_deref)
    #####:    #####:  889:      return false;
        -:        -:  890:
    #####:    #####:  891:   ir_dereference *lhs_deref = ir->lhs->as_dereference();
    #####:    #####:  892:   if (!lhs_deref)
    #####:    #####:  893:      return false;
        -:        -:  894:
    #####:    #####:  895:   assert(lhs_deref->type->record_compare(rhs_deref->type));
    #####:    #####:  896:   void *mem_ctx = ralloc_parent(shader->ir);
        -:        -:  897:
    #####:    #####:  898:   for (unsigned i = 0; i < lhs_deref->type->length; i++) {
    #####:    #####:  899:      const char *field_name = lhs_deref->type->fields.structure[i].name;
        -:        -:  900:      ir_dereference *lhs_field =
    #####:    #####:  901:         new(mem_ctx) ir_dereference_record(lhs_deref->clone(mem_ctx, NULL),
    #####:    #####:  902:                                            field_name);
        -:        -:  903:      ir_dereference *rhs_field =
    #####:    #####:  904:         new(mem_ctx) ir_dereference_record(rhs_deref->clone(mem_ctx, NULL),
    #####:    #####:  905:                                            field_name);
    #####:    #####:  906:      ir->insert_after(assign(lhs_field, rhs_field));
        -:        -:  907:   }
        -:        -:  908:
    #####:    #####:  909:   ir->remove();
    #####:    #####:  910:   progress = true;
    #####:    #####:  911:   return true;
        -:        -:  912:}
        -:        -:  913:
        -:        -:  914:ir_visitor_status
       42:       42:  915:lower_ubo_reference_visitor::visit_enter(ir_assignment *ir)
        -:        -:  916:{
        -:        -:  917:   /* Array and struct copies could involve large amounts of load/store
        -:        -:  918:    * operations. To improve register pressure we want to special-case
        -:        -:  919:    * these and split them into individual element copies.
        -:        -:  920:    * This way we avoid emitting all the loads for the RHS first and
        -:        -:  921:    * all the writes for the LHS second and register usage is more
        -:        -:  922:    * efficient.
        -:        -:  923:    */
       42:       42:  924:   if (check_for_buffer_array_copy(ir))
    #####:    #####:  925:      return visit_continue_with_parent;
        -:        -:  926:
       42:       42:  927:   if (check_for_buffer_struct_copy(ir))
    #####:    #####:  928:      return visit_continue_with_parent;
        -:        -:  929:
       42:       42:  930:   check_ssbo_unsized_array_length_assignment(ir);
       42:       42:  931:   check_for_ssbo_store(ir);
       42:       42:  932:   return rvalue_visit(ir);
        -:        -:  933:}
        -:        -:  934:
        -:        -:  935:/* Lowers the intrinsic call to a new internal intrinsic that swaps the
        -:        -:  936: * access to the buffer variable in the first parameter by an offset
        -:        -:  937: * and block index. This involves creating the new internal intrinsic
        -:        -:  938: * (i.e. the new function signature).
        -:        -:  939: */
        -:        -:  940:ir_call *
    #####:    #####:  941:lower_ubo_reference_visitor::lower_ssbo_atomic_intrinsic(ir_call *ir)
        -:        -:  942:{
        -:        -:  943:   /* SSBO atomics usually have 2 parameters, the buffer variable and an
        -:        -:  944:    * integer argument. The exception is CompSwap, that has an additional
        -:        -:  945:    * integer parameter.
        -:        -:  946:    */
    #####:    #####:  947:   int param_count = ir->actual_parameters.length();
    #####:    #####:  948:   assert(param_count == 2 || param_count == 3);
        -:        -:  949:
        -:        -:  950:   /* First argument must be a scalar integer buffer variable */
    #####:    #####:  951:   exec_node *param = ir->actual_parameters.get_head();
    #####:    #####:  952:   ir_instruction *inst = (ir_instruction *) param;
    #####:    #####:  953:   assert(inst->ir_type == ir_type_dereference_variable ||
        -:        -:  954:          inst->ir_type == ir_type_dereference_array ||
        -:        -:  955:          inst->ir_type == ir_type_dereference_record ||
    #####:    #####:  956:          inst->ir_type == ir_type_swizzle);
        -:        -:  957:
    #####:    #####:  958:   ir_rvalue *deref = (ir_rvalue *) inst;
    #####:    #####:  959:   assert(deref->type->is_scalar() && deref->type->is_integer());
        -:        -:  960:
    #####:    #####:  961:   ir_variable *var = deref->variable_referenced();
    #####:    #####:  962:   assert(var);
        -:        -:  963:
        -:        -:  964:   /* Compute the offset to the start if the dereference and the
        -:        -:  965:    * block index
        -:        -:  966:    */
    #####:    #####:  967:   void *mem_ctx = ralloc_parent(shader->ir);
        -:        -:  968:
    #####:    #####:  969:   ir_rvalue *offset = NULL;
        -:        -:  970:   unsigned const_offset;
        -:        -:  971:   bool row_major;
        -:        -:  972:   int matrix_columns;
    #####:    #####:  973:   enum glsl_interface_packing packing = var->get_interface_type_packing();
        -:        -:  974:
    #####:    #####:  975:   this->buffer_access_type = ssbo_atomic_access;
    #####:    #####:  976:   this->variable = var;
        -:        -:  977:
        -:        -:  978:   setup_for_load_or_store(mem_ctx, var, deref,
        -:        -:  979:                           &offset, &const_offset,
        -:        -:  980:                           &row_major, &matrix_columns,
    #####:    #####:  981:                           packing);
    #####:    #####:  982:   assert(offset);
    #####:    #####:  983:   assert(!row_major);
    #####:    #####:  984:   assert(matrix_columns == 1);
        -:        -:  985:
        -:        -:  986:   ir_rvalue *deref_offset =
    #####:    #####:  987:      add(offset, new(mem_ctx) ir_constant(const_offset));
    #####:    #####:  988:   ir_rvalue *block_index = this->uniform_block->clone(mem_ctx, NULL);
        -:        -:  989:
        -:        -:  990:   /* Create the new internal function signature that will take a block
        -:        -:  991:    * index and offset instead of a buffer variable
        -:        -:  992:    */
    #####:    #####:  993:   exec_list sig_params;
        -:        -:  994:   ir_variable *sig_param = new(mem_ctx)
    #####:    #####:  995:      ir_variable(glsl_type::uint_type, "block_ref" , ir_var_function_in);
    #####:    #####:  996:   sig_params.push_tail(sig_param);
        -:        -:  997:
        -:        -:  998:   sig_param = new(mem_ctx)
    #####:    #####:  999:      ir_variable(glsl_type::uint_type, "offset" , ir_var_function_in);
    #####:    #####: 1000:   sig_params.push_tail(sig_param);
        -:        -: 1001:
    #####:    #####: 1002:   const glsl_type *type = deref->type->base_type == GLSL_TYPE_INT ?
    #####:    #####: 1003:      glsl_type::int_type : glsl_type::uint_type;
        -:        -: 1004:   sig_param = new(mem_ctx)
    #####:    #####: 1005:         ir_variable(type, "data1", ir_var_function_in);
    #####:    #####: 1006:   sig_params.push_tail(sig_param);
        -:        -: 1007:
    #####:    #####: 1008:   if (param_count == 3) {
        -:        -: 1009:      sig_param = new(mem_ctx)
    #####:    #####: 1010:            ir_variable(type, "data2", ir_var_function_in);
    #####:    #####: 1011:      sig_params.push_tail(sig_param);
        -:        -: 1012:   }
        -:        -: 1013:
        -:        -: 1014:   ir_function_signature *sig =
        -:        -: 1015:      new(mem_ctx) ir_function_signature(deref->type,
    #####:    #####: 1016:                                         shader_storage_buffer_object);
    #####:    #####: 1017:   assert(sig);
    #####:    #####: 1018:   sig->replace_parameters(&sig_params);
        -:        -: 1019:
    #####:    #####: 1020:   assert(ir->callee->intrinsic_id >= ir_intrinsic_generic_load);
    #####:    #####: 1021:   assert(ir->callee->intrinsic_id <= ir_intrinsic_generic_atomic_comp_swap);
    #####:    #####: 1022:   sig->intrinsic_id = MAP_INTRINSIC_TO_TYPE(ir->callee->intrinsic_id, ssbo);
        -:        -: 1023:
        -:        -: 1024:   char func_name[64];
    #####:    #####: 1025:   sprintf(func_name, "%s_ssbo", ir->callee_name());
    #####:    #####: 1026:   ir_function *f = new(mem_ctx) ir_function(func_name);
    #####:    #####: 1027:   f->add_signature(sig);
        -:        -: 1028:
        -:        -: 1029:   /* Now, create the call to the internal intrinsic */
    #####:    #####: 1030:   exec_list call_params;
    #####:    #####: 1031:   call_params.push_tail(block_index);
    #####:    #####: 1032:   call_params.push_tail(deref_offset);
    #####:    #####: 1033:   param = ir->actual_parameters.get_head()->get_next();
    #####:    #####: 1034:   ir_rvalue *param_as_rvalue = ((ir_instruction *) param)->as_rvalue();
    #####:    #####: 1035:   call_params.push_tail(param_as_rvalue->clone(mem_ctx, NULL));
    #####:    #####: 1036:   if (param_count == 3) {
    #####:    #####: 1037:      param = param->get_next();
    #####:    #####: 1038:      param_as_rvalue = ((ir_instruction *) param)->as_rvalue();
    #####:    #####: 1039:      call_params.push_tail(param_as_rvalue->clone(mem_ctx, NULL));
        -:        -: 1040:   }
        -:        -: 1041:   ir_dereference_variable *return_deref =
    #####:    #####: 1042:      ir->return_deref->clone(mem_ctx, NULL);
    #####:    #####: 1043:   return new(mem_ctx) ir_call(sig, return_deref, &call_params);
        -:        -: 1044:}
        -:        -: 1045:
        -:        -: 1046:ir_call *
    #####:    #####: 1047:lower_ubo_reference_visitor::check_for_ssbo_atomic_intrinsic(ir_call *ir)
        -:        -: 1048:{
    #####:    #####: 1049:   exec_list& params = ir->actual_parameters;
        -:        -: 1050:
    #####:    #####: 1051:   if (params.length() < 2 || params.length() > 3)
    #####:    #####: 1052:      return ir;
        -:        -: 1053:
        -:        -: 1054:   ir_rvalue *rvalue =
    #####:    #####: 1055:      ((ir_instruction *) params.get_head())->as_rvalue();
    #####:    #####: 1056:   if (!rvalue)
    #####:    #####: 1057:      return ir;
        -:        -: 1058:
    #####:    #####: 1059:   ir_variable *var = rvalue->variable_referenced();
    #####:    #####: 1060:   if (!var || !var->is_in_shader_storage_block())
    #####:    #####: 1061:      return ir;
        -:        -: 1062:
    #####:    #####: 1063:   const enum ir_intrinsic_id id = ir->callee->intrinsic_id;
    #####:    #####: 1064:   if (id == ir_intrinsic_generic_atomic_add ||
    #####:    #####: 1065:       id == ir_intrinsic_generic_atomic_min ||
    #####:    #####: 1066:       id == ir_intrinsic_generic_atomic_max ||
    #####:    #####: 1067:       id == ir_intrinsic_generic_atomic_and ||
    #####:    #####: 1068:       id == ir_intrinsic_generic_atomic_or ||
    #####:    #####: 1069:       id == ir_intrinsic_generic_atomic_xor ||
    #####:    #####: 1070:       id == ir_intrinsic_generic_atomic_exchange ||
        -:        -: 1071:       id == ir_intrinsic_generic_atomic_comp_swap) {
    #####:    #####: 1072:      return lower_ssbo_atomic_intrinsic(ir);
        -:        -: 1073:   }
        -:        -: 1074:
    #####:    #####: 1075:   return ir;
        -:        -: 1076:}
        -:        -: 1077:
        -:        -: 1078:
        -:        -: 1079:ir_visitor_status
    #####:    #####: 1080:lower_ubo_reference_visitor::visit_enter(ir_call *ir)
        -:        -: 1081:{
    #####:    #####: 1082:   ir_call *new_ir = check_for_ssbo_atomic_intrinsic(ir);
    #####:    #####: 1083:   if (new_ir != ir) {
    #####:    #####: 1084:      progress = true;
    #####:    #####: 1085:      base_ir->replace_with(new_ir);
    #####:    #####: 1086:      return visit_continue_with_parent;
        -:        -: 1087:   }
        -:        -: 1088:
    #####:    #####: 1089:   return rvalue_visit(ir);
        -:        -: 1090:}
        -:        -: 1091:
        -:        -: 1092:
        -:        -: 1093:} /* unnamed namespace */
        -:        -: 1094:
        -:        -: 1095:void
        3:        3: 1096:lower_ubo_reference(struct gl_linked_shader *shader, bool clamp_block_indices)
        -:        -: 1097:{
        3:        3: 1098:   lower_ubo_reference_visitor v(shader, clamp_block_indices);
        -:        -: 1099:
        -:        -: 1100:   /* Loop over the instructions lowering references, because we take
        -:        -: 1101:    * a deref of a UBO array using a UBO dereference as the index will
        -:        -: 1102:    * produce a collection of instructions all of which have cloned
        -:        -: 1103:    * UBO dereferences for that array index.
        -:        -: 1104:    */
    #####:    #####: 1105:   do {
        3:        3: 1106:      v.progress = false;
        3:        3: 1107:      visit_list_elements(&v, shader->ir);
        3:        3: 1108:   } while (v.progress);
        3:        3: 1109:}

src/compiler/lower_vec_index_to_cond_assign.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_cond_assign.cpp
        -:        -:    0:Graph:glsl/.libs/lower_vec_index_to_cond_assign.gcno
        -:        -:    0:Data:glsl/.libs/lower_vec_index_to_cond_assign.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_vec_index_to_cond_assign.cpp
        -:        -:   26: *
        -:        -:   27: * Turns indexing into vector types to a series of conditional moves
        -:        -:   28: * of each channel's swizzle into a temporary.
        -:        -:   29: *
        -:        -:   30: * Most GPUs don't have a native way to do this operation, and this
        -:        -:   31: * works around that.  For drivers using both this pass and
        -:        -:   32: * ir_vec_index_to_swizzle, there's a risk that this pass will happen
        -:        -:   33: * before sufficient constant folding to find that the array index is
        -:        -:   34: * constant.  However, we hope that other optimization passes,
        -:        -:   35: * particularly constant folding of assignment conditions and copy
        -:        -:   36: * propagation, will result in the same code in the end.
        -:        -:   37: */
        -:        -:   38:
        -:        -:   39:#include "ir.h"
        -:        -:   40:#include "ir_visitor.h"
        -:        -:   41:#include "ir_optimization.h"
        -:        -:   42:#include "compiler/glsl_types.h"
        -:        -:   43:
        -:        -:   44:namespace {
        -:        -:   45:
        -:        -:   46:/**
        -:        -:   47: * Visitor class for replacing expressions with ir_constant values.
        -:        -:   48: */
        -:        -:   49:
        -:        -:   50:class ir_vec_index_to_cond_assign_visitor : public ir_hierarchical_visitor {
        -:        -:   51:public:
        3:        3:   52:   ir_vec_index_to_cond_assign_visitor()
        3:        3:   53:   {
        3:        3:   54:      progress = false;
        3:        3:   55:   }
        -:        -:   56:
        -:        -:   57:   ir_rvalue *convert_vec_index_to_cond_assign(void *mem_ctx,
        -:        -:   58:                                               ir_rvalue *orig_vector,
        -:        -:   59:                                               ir_rvalue *orig_index,
        -:        -:   60:                                               const glsl_type *type);
        -:        -:   61:
        -:        -:   62:   ir_rvalue *convert_vector_extract_to_cond_assign(ir_rvalue *ir);
        -:        -:   63:
        -:        -:   64:   virtual ir_visitor_status visit_enter(ir_expression *);
        -:        -:   65:   virtual ir_visitor_status visit_enter(ir_swizzle *);
        -:        -:   66:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:   67:   virtual ir_visitor_status visit_enter(ir_return *);
        -:        -:   68:   virtual ir_visitor_status visit_enter(ir_call *);
        -:        -:   69:   virtual ir_visitor_status visit_enter(ir_if *);
        -:        -:   70:
        -:        -:   71:   bool progress;
        -:        -:   72:};
        -:        -:   73:
        -:        -:   74:} /* anonymous namespace */
        -:        -:   75:
        -:        -:   76:ir_rvalue *
        3:        3:   77:ir_vec_index_to_cond_assign_visitor::convert_vec_index_to_cond_assign(void *mem_ctx,
        -:        -:   78:                                                                      ir_rvalue *orig_vector,
        -:        -:   79:                                                                      ir_rvalue *orig_index,
        -:        -:   80:                                                                      const glsl_type *type)
        -:        -:   81:{
        -:        -:   82:   ir_assignment *assign, *value_assign;
        -:        -:   83:   ir_variable *index, *var, *value;
        -:        -:   84:   ir_dereference *deref, *deref_value;
        -:        -:   85:   unsigned i;
        -:        -:   86:
        -:        -:   87:
        3:        3:   88:   exec_list list;
        -:        -:   89:
        -:        -:   90:   /* Store the index to a temporary to avoid reusing its tree. */
        3:        3:   91:   assert(orig_index->type == glsl_type::int_type ||
        3:        3:   92:          orig_index->type == glsl_type::uint_type);
        -:        -:   93:   index = new(base_ir) ir_variable(orig_index->type,
        -:        -:   94:				    "vec_index_tmp_i",
        3:        3:   95:				    ir_var_temporary);
        3:        3:   96:   list.push_tail(index);
        3:        3:   97:   deref = new(base_ir) ir_dereference_variable(index);
        3:        3:   98:   assign = new(base_ir) ir_assignment(deref, orig_index, NULL);
        3:        3:   99:   list.push_tail(assign);
        -:        -:  100:
        -:        -:  101:   /* Store the value inside a temp, thus avoiding matrixes duplication */
        -:        -:  102:   value = new(base_ir) ir_variable(orig_vector->type, "vec_value_tmp",
        3:        3:  103:                                    ir_var_temporary);
        3:        3:  104:   list.push_tail(value);
        3:        3:  105:   deref_value = new(base_ir) ir_dereference_variable(value);
        3:        3:  106:   value_assign = new(base_ir) ir_assignment(deref_value, orig_vector);
        3:        3:  107:   list.push_tail(value_assign);
        -:        -:  108:
        -:        -:  109:   /* Temporary where we store whichever value we swizzle out. */
        -:        -:  110:   var = new(base_ir) ir_variable(type, "vec_index_tmp_v",
        3:        3:  111:				  ir_var_temporary);
        3:        3:  112:   list.push_tail(var);
        -:        -:  113:
        -:        -:  114:   /* Generate a single comparison condition "mask" for all of the components
        -:        -:  115:    * in the vector.
        -:        -:  116:    */
        -:        -:  117:   ir_rvalue *const cond_deref =
        3:        3:  118:      compare_index_block(&list, index, 0,
        3:        3:  119:                          orig_vector->type->vector_elements,
        3:        3:  120:			  mem_ctx);
        -:        -:  121:
        -:        -:  122:   /* Generate a conditional move of each vector element to the temp. */
       15:       15:  123:   for (i = 0; i < orig_vector->type->vector_elements; i++) {
        -:        -:  124:      ir_rvalue *condition_swizzle =
       12:       12:  125:         new(base_ir) ir_swizzle(cond_deref->clone(mem_ctx, NULL),
       12:       12:  126:                                 i, 0, 0, 0, 1);
        -:        -:  127:
        -:        -:  128:      /* Just clone the rest of the deref chain when trying to get at the
        -:        -:  129:       * underlying variable.
        -:        -:  130:       */
        -:        -:  131:      ir_rvalue *swizzle =
       12:       12:  132:	 new(base_ir) ir_swizzle(deref_value->clone(mem_ctx, NULL),
       12:       12:  133:				 i, 0, 0, 0, 1);
        -:        -:  134:
       12:       12:  135:      deref = new(base_ir) ir_dereference_variable(var);
       12:       12:  136:      assign = new(base_ir) ir_assignment(deref, swizzle, condition_swizzle);
       12:       12:  137:      list.push_tail(assign);
        -:        -:  138:   }
        -:        -:  139:
        -:        -:  140:   /* Put all of the new instructions in the IR stream before the old
        -:        -:  141:    * instruction.
        -:        -:  142:    */
        3:        3:  143:   base_ir->insert_before(&list);
        -:        -:  144:
        3:        3:  145:   this->progress = true;
        3:        3:  146:   return new(base_ir) ir_dereference_variable(var);
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:ir_rvalue *
      109:      119:  150:ir_vec_index_to_cond_assign_visitor::convert_vector_extract_to_cond_assign(ir_rvalue *ir)
        -:        -:  151:{
      109:      119:  152:   ir_expression *const expr = ir->as_expression();
        -:        -:  153:
      109:      119:  154:   if (expr == NULL || expr->operation != ir_binop_vector_extract)
      106:      116:  155:      return ir;
        -:        -:  156:
        3:        3:  157:   return convert_vec_index_to_cond_assign(ralloc_parent(ir),
        -:        -:  158:                                           expr->operands[0],
        -:        -:  159:                                           expr->operands[1],
        3:        3:  160:                                           ir->type);
        -:        -:  161:}
        -:        -:  162:
        -:        -:  163:ir_visitor_status
       28:       30:  164:ir_vec_index_to_cond_assign_visitor::visit_enter(ir_expression *ir)
        -:        -:  165:{
        -:        -:  166:   unsigned int i;
        -:        -:  167:
       79:       85:  168:   for (i = 0; i < ir->get_num_operands(); i++) {
       51:       55:  169:      ir->operands[i] = convert_vector_extract_to_cond_assign(ir->operands[i]);
        -:        -:  170:   }
        -:        -:  171:
       28:       30:  172:   return visit_continue;
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:ir_visitor_status
        6:        8:  176:ir_vec_index_to_cond_assign_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  177:{
        -:        -:  178:   /* Can't be hit from normal GLSL, since you can't swizzle a scalar (which
        -:        -:  179:    * the result of indexing a vector is.  But maybe at some point we'll end up
        -:        -:  180:    * using swizzling of scalars for vector construction.
        -:        -:  181:    */
        6:        8:  182:   ir->val = convert_vector_extract_to_cond_assign(ir->val);
        -:        -:  183:
        6:        8:  184:   return visit_continue;
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:ir_visitor_status
       42:       42:  188:ir_vec_index_to_cond_assign_visitor::visit_leave(ir_assignment *ir)
        -:        -:  189:{
       42:       42:  190:   ir->rhs = convert_vector_extract_to_cond_assign(ir->rhs);
        -:        -:  191:
       42:       42:  192:   if (ir->condition) {
    #####:    #####:  193:      ir->condition = convert_vector_extract_to_cond_assign(ir->condition);
        -:        -:  194:   }
        -:        -:  195:
       42:       42:  196:   return visit_continue;
        -:        -:  197:}
        -:        -:  198:
        -:        -:  199:ir_visitor_status
    #####:    #####:  200:ir_vec_index_to_cond_assign_visitor::visit_enter(ir_call *ir)
        -:        -:  201:{
    #####:    #####:  202:   foreach_in_list_safe(ir_rvalue, param, &ir->actual_parameters) {
    #####:    #####:  203:      ir_rvalue *new_param = convert_vector_extract_to_cond_assign(param);
        -:        -:  204:
    #####:    #####:  205:      if (new_param != param) {
    #####:    #####:  206:	 param->replace_with(new_param);
        -:        -:  207:      }
        -:        -:  208:   }
        -:        -:  209:
    #####:    #####:  210:   return visit_continue;
        -:        -:  211:}
        -:        -:  212:
        -:        -:  213:ir_visitor_status
    #####:    #####:  214:ir_vec_index_to_cond_assign_visitor::visit_enter(ir_return *ir)
        -:        -:  215:{
    #####:    #####:  216:   if (ir->value) {
    #####:    #####:  217:      ir->value = convert_vector_extract_to_cond_assign(ir->value);
        -:        -:  218:   }
        -:        -:  219:
    #####:    #####:  220:   return visit_continue;
        -:        -:  221:}
        -:        -:  222:
        -:        -:  223:ir_visitor_status
       10:       14:  224:ir_vec_index_to_cond_assign_visitor::visit_enter(ir_if *ir)
        -:        -:  225:{
       10:       14:  226:   ir->condition = convert_vector_extract_to_cond_assign(ir->condition);
        -:        -:  227:
       10:       14:  228:   return visit_continue;
        -:        -:  229:}
        -:        -:  230:
        -:        -:  231:bool
        3:        3:  232:do_vec_index_to_cond_assign(exec_list *instructions)
        -:        -:  233:{
        3:        3:  234:   ir_vec_index_to_cond_assign_visitor v;
        -:        -:  235:
        3:        3:  236:   visit_list_elements(&v, instructions);
        -:        -:  237:
        3:        3:  238:   return v.progress;
        -:        -:  239:}

src/compiler/lower_vec_index_to_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/lower_vec_index_to_swizzle.cpp
        -:        -:    0:Graph:glsl/.libs/lower_vec_index_to_swizzle.gcno
        -:        -:    0:Data:glsl/.libs/lower_vec_index_to_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_vec_index_to_swizzle.cpp
        -:        -:   26: *
        -:        -:   27: * Turns constant indexing into vector types to swizzles.  This will
        -:        -:   28: * let other swizzle-aware optimization passes catch these constructs,
        -:        -:   29: * and codegen backends not have to worry about this case.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:#include "ir.h"
        -:        -:   33:#include "ir_rvalue_visitor.h"
        -:        -:   34:#include "ir_optimization.h"
        -:        -:   35:#include "compiler/glsl_types.h"
        -:        -:   36:#include "main/macros.h"
        -:        -:   37:
        -:        -:   38:namespace {
        -:        -:   39:
        -:        -:   40:class ir_vec_index_to_swizzle_visitor : public ir_rvalue_visitor {
        -:        -:   41:public:
       21:       21:   42:   ir_vec_index_to_swizzle_visitor()
       21:       21:   43:   {
       21:       21:   44:      progress = false;
       21:       21:   45:   }
        -:        -:   46:
        -:        -:   47:   ir_rvalue *convert_vector_extract_to_swizzle(ir_rvalue *val);
        -:        -:   48:
        -:        -:   49:   virtual void handle_rvalue(ir_rvalue **);
        -:        -:   50:
        -:        -:   51:   bool progress;
        -:        -:   52:};
        -:        -:   53:
        -:        -:   54:} /* anonymous namespace */
        -:        -:   55:
        -:        -:   56:void
     1994:     2081:   57:ir_vec_index_to_swizzle_visitor::handle_rvalue(ir_rvalue **rv)
        -:        -:   58:{
     1994:     2081:   59:   if (*rv == NULL)
      423:      423:   60:      return;
        -:        -:   61:
     1571:     1658:   62:   ir_expression *const expr = (*rv)->as_expression();
     1571:     1658:   63:   if (expr == NULL || expr->operation != ir_binop_vector_extract)
     1568:     1655:   64:      return;
        -:        -:   65:
        3:        3:   66:   ir_constant *const idx = expr->operands[1]->constant_expression_value();
        3:        3:   67:   if (idx == NULL)
        3:        3:   68:      return;
        -:        -:   69:
    #####:    #####:   70:   void *ctx = ralloc_parent(expr);
    #####:    #####:   71:   this->progress = true;
        -:        -:   72:
        -:        -:   73:   /* Page 40 of the GLSL 1.20 spec says:
        -:        -:   74:    *
        -:        -:   75:    *     "When indexing with non-constant expressions, behavior is undefined
        -:        -:   76:    *     if the index is negative, or greater than or equal to the size of
        -:        -:   77:    *     the vector."
        -:        -:   78:    *
        -:        -:   79:    * The quoted spec text mentions non-constant expressions, but this code
        -:        -:   80:    * operates on constants.  These constants are the result of non-constant
        -:        -:   81:    * expressions that have been optimized to constants.  The common case here
        -:        -:   82:    * is a loop counter from an unrolled loop that is used to index a vector.
        -:        -:   83:    *
        -:        -:   84:    * The ir_swizzle constructor gets angry if the index is negative or too
        -:        -:   85:    * large.  For simplicity sake, just clamp the index to [0, size-1].
        -:        -:   86:    */
    #####:    #####:   87:   const int i = CLAMP(idx->value.i[0], 0,
        -:        -:   88:                       (int) expr->operands[0]->type->vector_elements - 1);
        -:        -:   89:
    #####:    #####:   90:   *rv = new(ctx) ir_swizzle(expr->operands[0], i, 0, 0, 0, 1);
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:bool
       21:       21:   94:do_vec_index_to_swizzle(exec_list *instructions)
        -:        -:   95:{
       21:       21:   96:   ir_vec_index_to_swizzle_visitor v;
        -:        -:   97:
       21:       21:   98:   v.run(instructions);
        -:        -:   99:
       21:       21:  100:   return v.progress;
        -:        -:  101:}

src/compiler/lower_vector.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector.cpp
        -:        -:    0:Graph:glsl/.libs/lower_vector.gcno
        -:        -:    0:Data:glsl/.libs/lower_vector.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file lower_vector.cpp
        -:        -:   26: * IR lowering pass to remove some types of ir_quadop_vector
        -:        -:   27: *
        -:        -:   28: * \author Ian Romanick <ian.d.romanick@intel.com>
        -:        -:   29: */
        -:        -:   30:
        -:        -:   31:#include "ir.h"
        -:        -:   32:#include "ir_rvalue_visitor.h"
        -:        -:   33:
        -:        -:   34:namespace {
        -:        -:   35:
        -:        -:   36:class lower_vector_visitor : public ir_rvalue_visitor {
        -:        -:   37:public:
        3:        3:   38:   lower_vector_visitor() : dont_lower_swz(false), progress(false)
        -:        -:   39:   {
        -:        -:   40:      /* empty */
        3:        3:   41:   }
        -:        -:   42:
        -:        -:   43:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   44:
        -:        -:   45:   /**
        -:        -:   46:    * Should SWZ-like expressions be lowered?
        -:        -:   47:    */
        -:        -:   48:   bool dont_lower_swz;
        -:        -:   49:
        -:        -:   50:   bool progress;
        -:        -:   51:};
        -:        -:   52:
        -:        -:   53:} /* anonymous namespace */
        -:        -:   54:
        -:        -:   55:/**
        -:        -:   56: * Determine if an IR expression tree looks like an extended swizzle
        -:        -:   57: *
        -:        -:   58: * Extended swizzles consist of access of a single vector source (with possible
        -:        -:   59: * per component negation) and the constants -1, 0, or 1.
        -:        -:   60: */
        -:        -:   61:bool
    #####:    #####:   62:is_extended_swizzle(ir_expression *ir)
        -:        -:   63:{
        -:        -:   64:   /* Track any variables that are accessed by this expression.
        -:        -:   65:    */
    #####:    #####:   66:   ir_variable *var = NULL;
        -:        -:   67:
    #####:    #####:   68:   assert(ir->operation == ir_quadop_vector);
        -:        -:   69:
    #####:    #####:   70:   for (unsigned i = 0; i < ir->type->vector_elements; i++) {
    #####:    #####:   71:      ir_rvalue *op = ir->operands[i];
        -:        -:   72:
    #####:    #####:   73:      while (op != NULL) {
    #####:    #####:   74:	 switch (op->ir_type) {
        -:        -:   75:	 case ir_type_constant: {
    #####:    #####:   76:	    const ir_constant *const c = op->as_constant();
        -:        -:   77:
    #####:    #####:   78:	    if (!c->is_one() && !c->is_zero() && !c->is_negative_one())
    #####:    #####:   79:	       return false;
        -:        -:   80:
    #####:    #####:   81:	    op = NULL;
    #####:    #####:   82:	    break;
        -:        -:   83:	 }
        -:        -:   84:
        -:        -:   85:	 case ir_type_dereference_variable: {
    #####:    #####:   86:	    ir_dereference_variable *const d = (ir_dereference_variable *) op;
        -:        -:   87:
    #####:    #####:   88:	    if ((var != NULL) && (var != d->var))
    #####:    #####:   89:	       return false;
        -:        -:   90:
    #####:    #####:   91:	    var = d->var;
    #####:    #####:   92:	    op = NULL;
    #####:    #####:   93:	    break;
        -:        -:   94:	 }
        -:        -:   95:
        -:        -:   96:	 case ir_type_expression: {
    #####:    #####:   97:	    ir_expression *const ex = (ir_expression *) op;
        -:        -:   98:
    #####:    #####:   99:	    if (ex->operation != ir_unop_neg)
    #####:    #####:  100:	       return false;
        -:        -:  101:
    #####:    #####:  102:	    op = ex->operands[0];
    #####:    #####:  103:	    break;
        -:        -:  104:	 }
        -:        -:  105:
        -:        -:  106:	 case ir_type_swizzle:
    #####:    #####:  107:	    op = ((ir_swizzle *) op)->val;
    #####:    #####:  108:	    break;
        -:        -:  109:
        -:        -:  110:	 default:
    #####:    #####:  111:	    return false;
        -:        -:  112:	 }
        -:        -:  113:      }
        -:        -:  114:   }
        -:        -:  115:
    #####:    #####:  116:   return true;
        -:        -:  117:}
        -:        -:  118:
        -:        -:  119:void
      285:      295:  120:lower_vector_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  121:{
      285:      295:  122:   if (!*rvalue)
      346:      356:  123:      return;
        -:        -:  124:
      224:      234:  125:   ir_expression *expr = (*rvalue)->as_expression();
      224:      234:  126:   if ((expr == NULL) || (expr->operation != ir_quadop_vector))
      224:      234:  127:      return;
        -:        -:  128:
    #####:    #####:  129:   if (this->dont_lower_swz && is_extended_swizzle(expr))
    #####:    #####:  130:      return;
        -:        -:  131:
        -:        -:  132:   /* FINISHME: Is this the right thing to use for the ralloc context?
        -:        -:  133:    */
    #####:    #####:  134:   void *const mem_ctx = expr;
        -:        -:  135:
    #####:    #####:  136:   assert(expr->type->vector_elements == expr->get_num_operands());
        -:        -:  137:
        -:        -:  138:   /* Generate a temporary with the same type as the ir_quadop_operation.
        -:        -:  139:    */
        -:        -:  140:   ir_variable *const temp =
    #####:    #####:  141:      new(mem_ctx) ir_variable(expr->type, "vecop_tmp", ir_var_temporary);
        -:        -:  142:
    #####:    #####:  143:   this->base_ir->insert_before(temp);
        -:        -:  144:
        -:        -:  145:   /* Counter of the number of components collected so far.
        -:        -:  146:    */
        -:        -:  147:   unsigned assigned;
        -:        -:  148:
        -:        -:  149:   /* Write-mask in the destination that receives counted by 'assigned'.
        -:        -:  150:    */
        -:        -:  151:   unsigned write_mask;
        -:        -:  152:
        -:        -:  153:
        -:        -:  154:   /* Generate upto four assignments to that variable.  Try to group component
        -:        -:  155:    * assignments together:
        -:        -:  156:    *
        -:        -:  157:    * - All constant components can be assigned at once.
        -:        -:  158:    * - All assigments of components from a single variable with the same
        -:        -:  159:    *   unary operator can be assigned at once.
        -:        -:  160:    */
    #####:    #####:  161:   ir_constant_data d = { { 0 } };
        -:        -:  162:
    #####:    #####:  163:   assigned = 0;
    #####:    #####:  164:   write_mask = 0;
    #####:    #####:  165:   for (unsigned i = 0; i < expr->type->vector_elements; i++) {
    #####:    #####:  166:      const ir_constant *const c = expr->operands[i]->as_constant();
        -:        -:  167:
    #####:    #####:  168:      if (c == NULL)
    #####:    #####:  169:	 continue;
        -:        -:  170:
    #####:    #####:  171:      switch (expr->type->base_type) {
    #####:    #####:  172:      case GLSL_TYPE_UINT:  d.u[assigned] = c->value.u[0]; break;
    #####:    #####:  173:      case GLSL_TYPE_INT:   d.i[assigned] = c->value.i[0]; break;
    #####:    #####:  174:      case GLSL_TYPE_FLOAT: d.f[assigned] = c->value.f[0]; break;
    #####:    #####:  175:      case GLSL_TYPE_BOOL:  d.b[assigned] = c->value.b[0]; break;
    #####:    #####:  176:      default:              assert(!"Should not get here."); break;
        -:        -:  177:      }
        -:        -:  178:
    #####:    #####:  179:      write_mask |= (1U << i);
    #####:    #####:  180:      assigned++;
        -:        -:  181:   }
        -:        -:  182:
    #####:    #####:  183:   assert((write_mask == 0) == (assigned == 0));
        -:        -:  184:
        -:        -:  185:   /* If there were constant values, generate an assignment.
        -:        -:  186:    */
    #####:    #####:  187:   if (assigned > 0) {
        -:        -:  188:      ir_constant *const c =
    #####:    #####:  189:	 new(mem_ctx) ir_constant(glsl_type::get_instance(expr->type->base_type,
        -:        -:  190:							  assigned, 1),
    #####:    #####:  191:				  &d);
    #####:    #####:  192:      ir_dereference *const lhs = new(mem_ctx) ir_dereference_variable(temp);
        -:        -:  193:      ir_assignment *const assign =
    #####:    #####:  194:	 new(mem_ctx) ir_assignment(lhs, c, NULL, write_mask);
        -:        -:  195:
    #####:    #####:  196:      this->base_ir->insert_before(assign);
        -:        -:  197:   }
        -:        -:  198:
        -:        -:  199:   /* FINISHME: This should try to coalesce assignments.
        -:        -:  200:    */
    #####:    #####:  201:   for (unsigned i = 0; i < expr->type->vector_elements; i++) {
    #####:    #####:  202:      if (expr->operands[i]->ir_type == ir_type_constant)
    #####:    #####:  203:	 continue;
        -:        -:  204:
    #####:    #####:  205:      ir_dereference *const lhs = new(mem_ctx) ir_dereference_variable(temp);
        -:        -:  206:      ir_assignment *const assign =
    #####:    #####:  207:	 new(mem_ctx) ir_assignment(lhs, expr->operands[i], NULL, (1U << i));
        -:        -:  208:
    #####:    #####:  209:      this->base_ir->insert_before(assign);
    #####:    #####:  210:      assigned++;
        -:        -:  211:   }
        -:        -:  212:
    #####:    #####:  213:   assert(assigned == expr->type->vector_elements);
        -:        -:  214:
    #####:    #####:  215:   *rvalue = new(mem_ctx) ir_dereference_variable(temp);
    #####:    #####:  216:   this->progress = true;
        -:        -:  217:}
        -:        -:  218:
        -:        -:  219:bool
        3:        3:  220:lower_quadop_vector(exec_list *instructions, bool dont_lower_swz)
        -:        -:  221:{
        3:        3:  222:   lower_vector_visitor v;
        -:        -:  223:
        3:        3:  224:   v.dont_lower_swz = dont_lower_swz;
        3:        3:  225:   visit_list_elements(&v, instructions);
        -:        -:  226:
        3:        3:  227:   return v.progress;
        -:        -:  228:}

src/compiler/lower_vector_derefs.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_derefs.cpp
        -:        -:    0:Graph:glsl/.libs/lower_vector_derefs.gcno
        -:        -:    0:Data:glsl/.libs/lower_vector_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:#include "ir.h"
        -:        -:   24:#include "ir_builder.h"
        -:        -:   25:#include "ir_rvalue_visitor.h"
        -:        -:   26:#include "ir_optimization.h"
        -:        -:   27:
        -:        -:   28:using namespace ir_builder;
        -:        -:   29:
        -:        -:   30:namespace {
        -:        -:   31:
        -:        -:   32:class vector_deref_visitor : public ir_rvalue_enter_visitor {
        -:        -:   33:public:
        3:        3:   34:   vector_deref_visitor()
        3:        3:   35:      : progress(false)
        -:        -:   36:   {
        3:        3:   37:   }
        -:        -:   38:
        3:        3:   39:   virtual ~vector_deref_visitor()
        3:        3:   40:   {
        3:        3:   41:   }
        -:        -:   42:
        -:        -:   43:   virtual void handle_rvalue(ir_rvalue **rv);
        -:        -:   44:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   45:
        -:        -:   46:   bool progress;
        -:        -:   47:};
        -:        -:   48:
        -:        -:   49:} /* anonymous namespace */
        -:        -:   50:
        -:        -:   51:ir_visitor_status
       42:       42:   52:vector_deref_visitor::visit_enter(ir_assignment *ir)
        -:        -:   53:{
       42:       42:   54:   if (!ir->lhs || ir->lhs->ir_type != ir_type_dereference_array)
       41:       41:   55:      return ir_rvalue_enter_visitor::visit_enter(ir);
        -:        -:   56:
        1:        1:   57:   ir_dereference_array *const deref = (ir_dereference_array *) ir->lhs;
        1:        1:   58:   if (!deref->array->type->is_vector())
    #####:    #####:   59:      return ir_rvalue_enter_visitor::visit_enter(ir);
        -:        -:   60:
        1:        1:   61:   ir_dereference *const new_lhs = (ir_dereference *) deref->array;
        1:        1:   62:   ir->set_lhs(new_lhs);
        -:        -:   63:
        1:        1:   64:   ir_constant *old_index_constant = deref->array_index->constant_expression_value();
        1:        1:   65:   void *mem_ctx = ralloc_parent(ir);
        1:        1:   66:   if (!old_index_constant) {
        -:        -:   67:      ir->rhs = new(mem_ctx) ir_expression(ir_triop_vector_insert,
        -:        -:   68:                                           new_lhs->type,
        1:        1:   69:                                           new_lhs->clone(mem_ctx, NULL),
        -:        -:   70:                                           ir->rhs,
        1:        1:   71:                                           deref->array_index);
        1:        1:   72:      ir->write_mask = (1 << new_lhs->type->vector_elements) - 1;
        -:        -:   73:   } else {
    #####:    #####:   74:      ir->write_mask = 1 << old_index_constant->get_int_component(0);
        -:        -:   75:   }
        -:        -:   76:
        1:        1:   77:   return ir_rvalue_enter_visitor::visit_enter(ir);
        -:        -:   78:}
        -:        -:   79:
        -:        -:   80:void
      186:      196:   81:vector_deref_visitor::handle_rvalue(ir_rvalue **rv)
        -:        -:   82:{
      186:      196:   83:   if (*rv == NULL || (*rv)->ir_type != ir_type_dereference_array)
      168:      178:   84:      return;
        -:        -:   85:
       18:       18:   86:   ir_dereference_array *const deref = (ir_dereference_array *) *rv;
       18:       18:   87:   if (!deref->array->type->is_vector())
       15:       15:   88:      return;
        -:        -:   89:
        3:        3:   90:   void *mem_ctx = ralloc_parent(deref);
        -:        -:   91:   *rv = new(mem_ctx) ir_expression(ir_binop_vector_extract,
        -:        -:   92:                                    deref->array,
        3:        3:   93:                                    deref->array_index);
        -:        -:   94:}
        -:        -:   95:
        -:        -:   96:bool
        3:        3:   97:lower_vector_derefs(gl_linked_shader *shader)
        -:        -:   98:{
        6:        6:   99:   vector_deref_visitor v;
        -:        -:  100:
        3:        3:  101:   visit_list_elements(&v, shader->ir);
        -:        -:  102:
        6:        6:  103:   return v.progress;
        -:        -:  104:}

src/compiler/lower_vector_insert.cpp.gcov

        -:        -:    0:Source:glsl/lower_vector_insert.cpp
        -:        -:    0:Graph:glsl/.libs/lower_vector_insert.gcno
        -:        -:    0:Data:glsl/.libs/lower_vector_insert.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:#include "ir.h"
        -:        -:   24:#include "ir_builder.h"
        -:        -:   25:#include "ir_rvalue_visitor.h"
        -:        -:   26:#include "ir_optimization.h"
        -:        -:   27:
        -:        -:   28:using namespace ir_builder;
        -:        -:   29:
        -:        -:   30:namespace {
        -:        -:   31:
        -:        -:   32:class vector_insert_visitor : public ir_rvalue_visitor {
        -:        -:   33:public:
       21:       21:   34:   vector_insert_visitor(bool lower_nonconstant_index)
       21:       21:   35:      : progress(false), lower_nonconstant_index(lower_nonconstant_index)
        -:        -:   36:   {
       21:       21:   37:      factory.instructions = &factory_instructions;
       21:       21:   38:   }
        -:        -:   39:
       21:       21:   40:   virtual ~vector_insert_visitor()
       42:       42:   41:   {
       21:       21:   42:      assert(factory_instructions.is_empty());
       21:       21:   43:   }
        -:        -:   44:
        -:        -:   45:   virtual void handle_rvalue(ir_rvalue **rv);
        -:        -:   46:
        -:        -:   47:   ir_factory factory;
        -:        -:   48:   exec_list factory_instructions;
        -:        -:   49:   bool progress;
        -:        -:   50:   bool lower_nonconstant_index;
        -:        -:   51:};
        -:        -:   52:
        -:        -:   53:} /* anonymous namespace */
        -:        -:   54:
        -:        -:   55:void
     2064:     2151:   56:vector_insert_visitor::handle_rvalue(ir_rvalue **rv)
        -:        -:   57:{
     2064:     2151:   58:   if (*rv == NULL || (*rv)->ir_type != ir_type_expression)
     1772:     1842:   59:      return;
        -:        -:   60:
      292:      309:   61:   ir_expression *const expr = (ir_expression *) *rv;
        -:        -:   62:
      292:      309:   63:   if (likely(expr->operation != ir_triop_vector_insert))
      291:      308:   64:      return;
        -:        -:   65:
        1:        1:   66:   factory.mem_ctx = ralloc_parent(expr);
        -:        -:   67:
        1:        1:   68:   ir_constant *const idx = expr->operands[2]->constant_expression_value();
        1:        1:   69:   if (idx != NULL) {
        -:        -:   70:      /* Replace (vector_insert (vec) (scalar) (index)) with a dereference of
        -:        -:   71:       * a new temporary.  The new temporary gets assigned as
        -:        -:   72:       *
        -:        -:   73:       *     t = vec
        -:        -:   74:       *     t.mask = scalar
        -:        -:   75:       *
        -:        -:   76:       * where mask is the component selected by index.
        -:        -:   77:       */
        -:        -:   78:      ir_variable *const temp =
    #####:    #####:   79:         factory.make_temp(expr->operands[0]->type, "vec_tmp");
        -:        -:   80:
    #####:    #####:   81:      const int mask = 1 << idx->value.i[0];
        -:        -:   82:
    #####:    #####:   83:      factory.emit(assign(temp, expr->operands[0]));
    #####:    #####:   84:      factory.emit(assign(temp, expr->operands[1], mask));
        -:        -:   85:
    #####:    #####:   86:      this->progress = true;
    #####:    #####:   87:      *rv = new(factory.mem_ctx) ir_dereference_variable(temp);
        1:        1:   88:   } else if (this->lower_nonconstant_index) {
        -:        -:   89:      /* Replace (vector_insert (vec) (scalar) (index)) with a dereference of
        -:        -:   90:       * a new temporary.  The new temporary gets assigned as
        -:        -:   91:       *
        -:        -:   92:       *     t = vec
        -:        -:   93:       *     if (index == 0)
        -:        -:   94:       *         t.x = scalar
        -:        -:   95:       *     if (index == 1)
        -:        -:   96:       *         t.y = scalar
        -:        -:   97:       *     if (index == 2)
        -:        -:   98:       *         t.z = scalar
        -:        -:   99:       *     if (index == 3)
        -:        -:  100:       *         t.w = scalar
        -:        -:  101:       */
        -:        -:  102:      ir_variable *const temp =
        1:        1:  103:         factory.make_temp(expr->operands[0]->type, "vec_tmp");
        -:        -:  104:
        -:        -:  105:      ir_variable *const src_temp =
        1:        1:  106:         factory.make_temp(expr->operands[1]->type, "src_temp");
        -:        -:  107:
        1:        1:  108:      factory.emit(assign(temp, expr->operands[0]));
        1:        1:  109:      factory.emit(assign(src_temp, expr->operands[1]));
        -:        -:  110:
        1:        1:  111:      assert(expr->operands[2]->type == glsl_type::int_type ||
        1:        1:  112:             expr->operands[2]->type == glsl_type::uint_type);
        -:        -:  113:
        5:        5:  114:      for (unsigned i = 0; i < expr->type->vector_elements; i++) {
        -:        -:  115:         ir_constant *const cmp_index =
        4:        4:  116:            ir_constant::zero(factory.mem_ctx, expr->operands[2]->type);
        4:        4:  117:         cmp_index->value.u[0] = i;
        -:        -:  118:
        -:        -:  119:         ir_variable *const cmp_result =
        4:        4:  120:            factory.make_temp(glsl_type::bool_type, "index_condition");
        -:        -:  121:
        8:        8:  122:         factory.emit(assign(cmp_result,
       12:       12:  123:                             equal(expr->operands[2]->clone(factory.mem_ctx,
        4:        4:  124:                                                            NULL),
        4:        4:  125:                                   cmp_index)));
        -:        -:  126:
        8:        8:  127:         factory.emit(if_tree(cmp_result,
       12:       12:  128:                              assign(temp, src_temp, WRITEMASK_X << i)));
        -:        -:  129:      }
        -:        -:  130:
        1:        1:  131:      this->progress = true;
        1:        1:  132:      *rv = new(factory.mem_ctx) ir_dereference_variable(temp);
        -:        -:  133:   }
        -:        -:  134:
        1:        1:  135:   base_ir->insert_before(factory.instructions);
        -:        -:  136:}
        -:        -:  137:
        -:        -:  138:bool
       21:       21:  139:lower_vector_insert(exec_list *instructions, bool lower_nonconstant_index)
        -:        -:  140:{
       42:       42:  141:   vector_insert_visitor v(lower_nonconstant_index);
        -:        -:  142:
       21:       21:  143:   visit_list_elements(&v, instructions);
        -:        -:  144:
       42:       42:  145:   return v.progress;
        -:        -:  146:}

src/compiler/nir/bitset.h.gcov

        -:        -:    0:Source:../../src/util/bitset.h
        -:        -:    0:Graph:.libs/nir_phi_builder.gcno
        -:        -:    0:Data:.libs/nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      224:      228:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      224:      228:  112:/*EOF*/
      564:      648:  113:/*EOF*/
      193:      271:  114:/*EOF*/
        -:        -:  115:/*EOF*/
      193:      271:  116:/*EOF*/
       77:       79:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      116:      192:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      147:      149:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      147:      149:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      147:      149:  128:/*EOF*/

src/compiler/nir/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:.libs/nir_validate.gcno
        -:        -:    0:Data:.libs/nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      608:      608:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      608:      608:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
   181018:   201274:  106:/*EOF*/
        -:        -:  107:/*EOF*/
   181018:   201274:  108:/*EOF*/

src/compiler/nir/.libs/bitset.h.gcov

        -:        -:    0:Source:../../src/util/bitset.h
        -:        -:    0:Graph:nir_phi_builder.gcno
        -:        -:    0:Data:nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      224:      228:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      224:      228:  112:/*EOF*/
      564:      648:  113:/*EOF*/
      193:      271:  114:/*EOF*/
        -:        -:  115:/*EOF*/
      193:      271:  116:/*EOF*/
       77:       79:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      116:      192:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      147:      149:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      147:      149:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      147:      149:  128:/*EOF*/

src/compiler/nir/.libs/hash_table.h.gcov

        -:        -:    0:Source:../../src/util/hash_table.h
        -:        -:    0:Graph:nir_validate.gcno
        -:        -:    0:Data:nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      608:      608:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      608:      608:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
   181018:   201274:  106:/*EOF*/
        -:        -:  107:/*EOF*/
   181018:   201274:  108:/*EOF*/

src/compiler/nir/.libs/nir.c.gcov

        -:        -:    0:Source:nir/nir.c
        -:        -:    0:Graph:nir.gcno
        -:        -:    0:Data:nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
       10:       10:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       10:       10:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       10:       10:   40:/*EOF*/
       10:       10:   41:/*EOF*/
       10:       10:   42:/*EOF*/
       10:       10:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       10:       10:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       10:       10:   47:/*EOF*/
        -:        -:   48:/*EOF*/
       10:       10:   49:/*EOF*/
       10:       10:   50:/*EOF*/
       10:       10:   51:/*EOF*/
       10:       10:   52:/*EOF*/
       10:       10:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       10:       10:   55:/*EOF*/
       10:       10:   56:/*EOF*/
       10:       10:   57:/*EOF*/
       10:       10:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       10:       10:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       10:       10:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       28:       28:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       28:       28:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       28:       28:   70:/*EOF*/
       28:       28:   71:/*EOF*/
       28:       28:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       28:       28:   74:/*EOF*/
       28:       28:   75:/*EOF*/
       28:       28:   76:/*EOF*/
       28:       28:   77:/*EOF*/
       28:       28:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       28:       28:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       28:       28:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       28:       28:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       28:       28:   98:/*EOF*/
       28:       28:   99:/*EOF*/
       28:       28:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       28:       28:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       13:       13:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       13:       13:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        6:        6:  132:/*EOF*/
        6:        6:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        4:        4:  136:/*EOF*/
        4:        4:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        3:        3:  141:/*EOF*/
        3:        3:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       13:       13:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        5:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        1:        1:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        5:        5:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        5:        5:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       34:       36:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       34:       36:  180:/*EOF*/
       34:       36:  181:/*EOF*/
       34:       36:  182:/*EOF*/
       34:       36:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       34:       36:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       34:       36:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
       10:       10:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       10:       10:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       10:       10:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       10:       10:  197:/*EOF*/
       10:       10:  198:/*EOF*/
       10:       10:  199:/*EOF*/
       10:       10:  200:/*EOF*/
       10:       10:  201:/*EOF*/
       10:       10:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       10:       10:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
      215:      235:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      215:      235:  209:/*EOF*/
      215:      235:  210:/*EOF*/
      212:      232:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        3:        3:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        3:        3:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        3:        3:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      215:      235:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       79:      111:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       79:      111:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       79:      111:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       79:      111:  231:/*EOF*/
       79:      111:  232:/*EOF*/
       79:      111:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       79:      111:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       79:      111:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      146:      166:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      146:      166:  245:/*EOF*/
      146:      166:  246:/*EOF*/
      146:      166:  247:/*EOF*/
      730:      830:  248:/*EOF*/
      584:      664:  249:/*EOF*/
      146:      166:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        2:        2:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        2:        2:  256:/*EOF*/
        2:        2:  257:/*EOF*/
        2:        2:  258:/*EOF*/
        2:        2:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      257:      301:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      257:      301:  265:/*EOF*/
      257:      301:  266:/*EOF*/
      257:      301:  267:/*EOF*/
      257:      301:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       10:       10:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       10:       10:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       10:       10:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       10:       10:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       10:       10:  279:/*EOF*/
       10:       10:  280:/*EOF*/
       10:       10:  281:/*EOF*/
       10:       10:  282:/*EOF*/
       10:       10:  283:/*EOF*/
       10:       10:  284:/*EOF*/
       10:       10:  285:/*EOF*/
       10:       10:  286:/*EOF*/
       10:       10:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       10:       10:  290:/*EOF*/
       10:       10:  291:/*EOF*/
       10:       10:  292:/*EOF*/
       10:       10:  293:/*EOF*/
       10:       10:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       10:       10:  298:/*EOF*/
       10:       10:  299:/*EOF*/
       10:       10:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        5:        5:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        5:        5:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        5:        5:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        5:        5:  310:/*EOF*/
        5:        5:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        5:        5:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        5:        5:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        5:        5:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        5:        5:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        5:        5:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      204:      236:  337:/*EOF*/
        -:        -:  338:/*EOF*/
      204:      236:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      204:      236:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      204:      236:  343:/*EOF*/
      204:      236:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      204:      236:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
      204:      236:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
      204:      236:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      204:      236:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
     1483:     1617:  364:/*EOF*/
        -:        -:  365:/*EOF*/
     1483:     1617:  366:/*EOF*/
     1483:     1617:  367:/*EOF*/
     1483:     1617:  368:/*EOF*/
     1483:     1617:  369:/*EOF*/
     1483:     1617:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
       38:       46:  373:/*EOF*/
        -:        -:  374:/*EOF*/
       38:       46:  375:/*EOF*/
        -:        -:  376:/*EOF*/
       38:       46:  377:/*EOF*/
       38:       46:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       38:       46:  380:/*EOF*/
       38:       46:  381:/*EOF*/
       38:       46:  382:/*EOF*/
       38:       46:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       38:       46:  385:/*EOF*/
       38:       46:  386:/*EOF*/
       38:       46:  387:/*EOF*/
       38:       46:  388:/*EOF*/
        -:        -:  389:/*EOF*/
       38:       46:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        5:        9:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        5:        9:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        5:        9:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        5:        9:  400:/*EOF*/
        5:        9:  401:/*EOF*/
        5:        9:  402:/*EOF*/
        5:        9:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        5:        9:  405:/*EOF*/
        5:        9:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        5:        9:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
     1578:     1722:  412:/*EOF*/
        -:        -:  413:/*EOF*/
     1578:     1722:  414:/*EOF*/
     1578:     1722:  415:/*EOF*/
     1578:     1722:  416:/*EOF*/
     1578:     1722:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     1126:     1236:  420:/*EOF*/
        -:        -:  421:/*EOF*/
     1126:     1236:  422:/*EOF*/
     1126:     1236:  423:/*EOF*/
     1126:     1236:  424:/*EOF*/
     1126:     1236:  425:/*EOF*/
     1126:     1236:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      824:      892:  429:/*EOF*/
        -:        -:  430:/*EOF*/
      824:      892:  431:/*EOF*/
      824:      892:  432:/*EOF*/
      824:      892:  433:/*EOF*/
      824:      892:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     1236:     1348:  437:/*EOF*/
        -:        -:  438:/*EOF*/
     1236:     1348:  439:/*EOF*/
     1236:     1348:  440:/*EOF*/
     1236:     1348:  441:/*EOF*/
     1236:     1348:  442:/*EOF*/
     1236:     1348:  443:/*EOF*/
     1236:     1348:  444:/*EOF*/
     1236:     1348:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
      824:      892:  448:/*EOF*/
        -:        -:  449:/*EOF*/
      824:      892:  450:/*EOF*/
        -:        -:  451:/*EOF*/
      824:      892:  452:/*EOF*/
      824:      892:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
      824:      892:  456:/*EOF*/
      824:      892:  457:/*EOF*/
      824:      892:  458:/*EOF*/
     2060:     2240:  459:/*EOF*/
     1236:     1348:  460:/*EOF*/
        -:        -:  461:/*EOF*/
      824:      892:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        9:       17:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        9:       17:  468:/*EOF*/
        9:       17:  469:/*EOF*/
        9:       17:  470:/*EOF*/
        9:       17:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
      179:      197:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      179:      197:  478:/*EOF*/
      179:      197:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      179:      197:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      179:      197:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
      388:      416:  487:/*EOF*/
        -:        -:  488:/*EOF*/
      388:      416:  489:/*EOF*/
        -:        -:  490:/*EOF*/
      388:      416:  491:/*EOF*/
      388:      416:  492:/*EOF*/
      388:      416:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      388:      416:  495:/*EOF*/
      388:      416:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      388:      416:  498:/*EOF*/
      212:      238:  499:/*EOF*/
        -:        -:  500:/*EOF*/
      569:      611:  501:/*EOF*/
      181:      195:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      388:      416:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
       90:      106:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       90:      106:  562:/*EOF*/
       90:      106:  563:/*EOF*/
        -:        -:  564:/*EOF*/
       90:      106:  565:/*EOF*/
       90:      106:  566:/*EOF*/
       90:      106:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       27:       33:  571:/*EOF*/
        -:        -:  572:/*EOF*/
       27:       33:  573:/*EOF*/
       27:       33:  574:/*EOF*/
        -:        -:  575:/*EOF*/
       27:       33:  576:/*EOF*/
        -:        -:  577:/*EOF*/
       27:       33:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
       61:       61:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
       61:       61:  586:/*EOF*/
       61:       61:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       61:       61:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       61:       61:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      402:      418:  595:/*EOF*/
        -:        -:  596:/*EOF*/
      402:      418:  597:/*EOF*/
      402:      418:  598:/*EOF*/
      402:      418:  599:/*EOF*/
      402:      418:  600:/*EOF*/
      402:      418:  601:/*EOF*/
      402:      418:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
       28:       28:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       28:       28:  608:/*EOF*/
       28:       28:  609:/*EOF*/
       28:       28:  610:/*EOF*/
       28:       28:  611:/*EOF*/
       28:       28:  612:/*EOF*/
       28:       28:  613:/*EOF*/
       28:       28:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
      162:      164:  628:/*EOF*/
        -:        -:  629:/*EOF*/
      162:      164:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
      162:      164:  633:/*EOF*/
      162:      164:  634:/*EOF*/
      162:      164:  635:/*EOF*/
        6:        6:  636:/*EOF*/
      162:      164:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        6:        6:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        6:        6:  643:/*EOF*/
        6:        6:  644:/*EOF*/
        6:        6:  645:/*EOF*/
        6:        6:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        6:        6:  649:/*EOF*/
        6:        6:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        6:        6:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        6:        6:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        6:        6:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        6:        6:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        6:        6:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
       37:       39:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       37:       39:  699:/*EOF*/
       37:       39:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
       37:       39:  708:/*EOF*/
       37:       39:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
       37:       39:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
       37:       39:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
       37:       39:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
       37:       39:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       37:       39:  799:/*EOF*/
       37:       39:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
       37:       39:  808:/*EOF*/
        -:        -:  809:/*EOF*/
       37:       39:  810:/*EOF*/
       37:       39:  811:/*EOF*/
        -:        -:  812:/*EOF*/
       37:       39:  813:/*EOF*/
       37:       39:  814:/*EOF*/
       74:       78:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
       37:       39:  841:/*EOF*/
       37:       39:  842:/*EOF*/
       37:       39:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
       37:       39:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       37:       39:  854:/*EOF*/
       37:       39:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
       37:       39:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
     2034:     2882:  864:/*EOF*/
        -:        -:  865:/*EOF*/
     7671:    11506:  866:/*EOF*/
     3603:     5742:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
     2034:     2882:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
       46:       46:  877:/*EOF*/
        -:        -:  878:/*EOF*/
       46:       46:  879:/*EOF*/
        -:        -:  880:/*EOF*/
       23:       23:  881:/*EOF*/
        -:        -:  882:/*EOF*/
       23:       23:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        1:        1:  885:/*EOF*/
        -:        -:  886:/*EOF*/
       23:       23:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       23:       23:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
       23:       23:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
       23:       23:  923:/*EOF*/
       23:       23:  924:/*EOF*/
        -:        -:  925:/*EOF*/
       23:       23:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
     1527:     1669:  930:/*EOF*/
        -:        -:  931:/*EOF*/
     1527:     1669:  932:/*EOF*/
        -:        -:  933:/*EOF*/
     1527:     1669:  934:/*EOF*/
     3054:     3338:  935:/*EOF*/
     3054:     3338:  936:/*EOF*/
        -:        -:  937:/*EOF*/
     1527:     1669:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
     1292:     1420:  942:/*EOF*/
        -:        -:  943:/*EOF*/
     1292:     1420:  944:/*EOF*/
        -:        -:  945:/*EOF*/
     1292:     1420:  946:/*EOF*/
     1292:     1420:  947:/*EOF*/
     1292:     1420:  948:/*EOF*/
        -:        -:  949:/*EOF*/
     1292:     1420:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
     1292:     1420:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
     1126:     1236:  957:/*EOF*/
        -:        -:  958:/*EOF*/
     1126:     1236:  959:/*EOF*/
        -:        -:  960:/*EOF*/
     1126:     1236:  961:/*EOF*/
       74:       74:  962:/*EOF*/
       74:       74:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
     1126:     1236:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
     1578:     1722:  970:/*EOF*/
        -:        -:  971:/*EOF*/
     1578:     1722:  972:/*EOF*/
     1578:     1722:  973:/*EOF*/
     1578:     1722:  974:/*EOF*/
     1578:     1722:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
     1578:     1722:  978:/*EOF*/
        -:        -:  979:/*EOF*/
     1578:     1722:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
      178:      194:  983:/*EOF*/
        3:        7:  984:/*EOF*/
        -:        -:  985:/*EOF*/
      178:      194:  986:/*EOF*/
      178:      194:  987:/*EOF*/
      178:      194:  988:/*EOF*/
      178:      194:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
      382:      426:  992:/*EOF*/
      382:      426:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
      382:      426:  996:/*EOF*/
      382:      426:  997:/*EOF*/
      382:      426:  998:/*EOF*/
      382:      426:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      614:      648: 1002:/*EOF*/
      614:      648: 1003:/*EOF*/
      614:      648: 1004:/*EOF*/
      614:      648: 1005:/*EOF*/
      614:      648: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
      404:      454: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
      404:      454: 1012:/*EOF*/
        2:        2: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
      404:      454: 1015:/*EOF*/
      404:      454: 1016:/*EOF*/
      404:      454: 1017:/*EOF*/
      404:      454: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
     1578:     1722: 1021:/*EOF*/
        9:       17: 1022:/*EOF*/
     1578:     1722: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
     5555:     6186: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
     5555:     6186: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
     1262:     1386: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
     1262:     1386: 1036:/*EOF*/
     1258:     1382: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
     1262:     1386: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
      951:     1047: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
      951:     1047: 1047:/*EOF*/
       75:      107: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
      951:     1047: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
     1274:     1368: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
     1274:     1368: 1056:/*EOF*/
     1274:     1368: 1057:/*EOF*/
     1274:     1368: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
     1274:     1368: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
     1274:     1368: 1062:/*EOF*/
     1274:     1368: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
     1274:     1368: 1065:/*EOF*/
        1:        1: 1066:/*EOF*/
        1:        1: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
     1274:     1368: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        2:        2: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        2:        2: 1076:/*EOF*/
       17:       17: 1077:/*EOF*/
       15:       15: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        2:        2: 1080:/*EOF*/
        2:        2: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    25101:    27517: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    25101:    27517: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
     9043:    10001: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
     9043:    10001: 1103:/*EOF*/
     6483:     7401: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
     2560:     2600: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
     5678:     8194: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
     5678:     8194: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
      272:      334: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
      582:      824: 1126:/*EOF*/
      310:      490: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
      272:      334: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
    41631:    47742: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
    41631:    47742: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    25101:    27517: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
     9043:    10001: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
     5678:     8194: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
      272:      334: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
     1537:     1696: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
     1537:     1696: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    28082:    33104: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    28082:    33104: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    28082:    33104: 1174:/*EOF*/
    27969:    32991: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
      113:      113: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    35239:    41625: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    35239:    41625: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    29734:    34731: 1189:/*EOF*/
    29734:    34731: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
     3403:     3708: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
     1199:     1245: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
      903:     1941: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
     8813:     9717: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
     8813:     9717: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
     8813:     9717: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
     8813:     9717: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
      331:      331: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
      331:      331: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
      331:      331: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
     1198:     1270: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
     1198:     1270: 1227:/*EOF*/
     3925:     4141: 1228:/*EOF*/
     1529:     1601: 1229:/*EOF*/
      331:      331: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
     1529:     1601: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
     1198:     1270: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
     3657:     3854: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    10183:    10732: 1243:/*EOF*/
     6526:     6878: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
     3657:     3854: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
     1449:     1549: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
     1449:     1549: 1275:/*EOF*/
     2165:     2297: 1276:/*EOF*/
      716:      748: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
     1449:     1549: 1281:/*EOF*/
     1449:     1549: 1282:/*EOF*/
     2647:     2819: 1283:/*EOF*/
     1198:     1270: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
     1449:     1549: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
      762:      994: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
     2212:     2892: 1294:/*EOF*/
     1450:     1898: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
      762:      994: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
      104:      127: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
      225:      320: 1306:/*EOF*/
      121:      193: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
      104:      127: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
     5524:     6121: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
     5524:     6121: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
     5524:     6121: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
     5524:     6121: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
     7084:     7845: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
     7084:     7845: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
     3657:     3854: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
     3657:     3854: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
     1449:     1549: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
     1449:     1549: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
      720:      761: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
      762:      994: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
      762:      994: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
      104:      127: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
      104:      127: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
      392:      560: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
     6692:     7285: 1371:/*EOF*/
     6692:     7285: 1372:/*EOF*/
     6692:     7285: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
      113:      149: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
      113:      149: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
      113:      149: 1382:/*EOF*/
       71:      103: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
       42:       46: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
       42:       46: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
    #####:    #####: 1409:/*EOF*/
    #####:    #####: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
     1431:     1600: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
     2862:     3200: 1422:/*EOF*/
     1431:     1600: 1423:/*EOF*/
       45:       69: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
     1386:     1531: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
     1431:     1600: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
     1431:     1600: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
     2862:     3200: 1433:/*EOF*/
     1431:     1600: 1434:/*EOF*/
       10:       10: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
     1421:     1590: 1437:/*EOF*/
     1404:     1561: 1438:/*EOF*/
     1404:     1561: 1439:/*EOF*/
     1306:     1427: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
       98:      134: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
       17:       29: 1444:/*EOF*/
       17:       29: 1445:/*EOF*/
       17:       29: 1446:/*EOF*/
       17:       27: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:        2: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
     1431:     1600: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
     1414:     1571: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
     1414:     1571: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
     1414:     1571: 1459:/*EOF*/
     1414:     1571: 1460:/*EOF*/
     1414:     1571: 1461:/*EOF*/
     1414:     1571: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
       17:       29: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
       17:       29: 1479:/*EOF*/
       17:       29: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
       17:       29: 1482:/*EOF*/
       17:       29: 1483:/*EOF*/
       17:       29: 1484:/*EOF*/
       17:       29: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
       77:      109: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
       77:      109: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
       77:      109: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
       77:      109: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
       77:      109: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
       77:      109: 1504:/*EOF*/
       77:      109: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
       77:      109: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
       77:      109: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
     1387:     1539: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
     1387:     1539: 1517:/*EOF*/
     1387:     1539: 1518:/*EOF*/
     1387:     1539: 1519:/*EOF*/
     1387:     1539: 1520:/*EOF*/
     1387:     1539: 1521:/*EOF*/
     1387:     1539: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
     1387:     1539: 1524:/*EOF*/
       95:      119: 1525:/*EOF*/
       95:      119: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
       95:      119: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
     1292:     1420: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
     1387:     1539: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
     1147:     1281: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
     1147:     1281: 1540:/*EOF*/
     1147:     1281: 1541:/*EOF*/
     1147:     1281: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
      531:      598: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
      531:      598: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
     1260:     1410: 1549:/*EOF*/
      729:      812: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
      546:      621: 1552:/*EOF*/
       15:       23: 1553:/*EOF*/
      531:      598: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
      121:      133: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
      121:      133: 1609:/*EOF*/
      256:      280: 1610:/*EOF*/
      152:      164: 1611:/*EOF*/
      135:      147: 1612:/*EOF*/
      135:      147: 1613:/*EOF*/
      135:      147: 1614:/*EOF*/
      135:      147: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
      675:      735: 1617:/*EOF*/
      540:      588: 1618:/*EOF*/
      324:      360: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
      216:      228: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
       17:       17: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
      104:      116: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    15949:    23147: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    15949:    23147: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
       32:       32: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    15917:    23115: 1642:/*EOF*/
    15917:    23115: 1643:/*EOF*/
     5089:     7775: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    10828:    15340: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
    10828:    15340: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
     8668:    12288: 1651:/*EOF*/
     8668:    12288: 1652:/*EOF*/
     4334:     6144: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
     4334:     6144: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
     5190:     7876: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
     1304:     1320: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
      310:      454: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
      310:      454: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
      310:      454: 1678:/*EOF*/
      310:      454: 1679:/*EOF*/
       99:      153: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
      211:      301: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
      211:      301: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
      160:      232: 1687:/*EOF*/
      160:      232: 1688:/*EOF*/
       80:      116: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
       80:      116: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
       99:      153: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
       32:       32: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
     5190:     7876: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
     5190:     7876: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
     4334:     6144: 1715:/*EOF*/
     4334:     6144: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
      856:     1732: 1720:/*EOF*/
      856:     1732: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
    #####:    #####: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
       99:      153: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
       99:      153: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
       80:      116: 1742:/*EOF*/
       80:      116: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
       19:       37: 1747:/*EOF*/
       19:       37: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
      308:      388: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
      308:      388: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
      308:      388: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
      308:      388: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
     1490:     2132: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
     1490:     2132: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
     1490:     2132: 1776:/*EOF*/
     1011:     1413: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
      479:      719: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
      479:      719: 1781:/*EOF*/
       81:      159: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
      398:      560: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
      203:      299: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
      203:      299: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
      203:      299: 1793:/*EOF*/
      186:      266: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
       17:       33: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
       17:       33: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
       17:       33: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
       14:       14: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
       14:       14: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
       14:       14: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
      235:      315: 1812:/*EOF*/
      221:      301: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
       14:       14: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
      952:     1046: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
      952:     1046: 1822:/*EOF*/
      952:     1046: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
      952:     1046: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
       21:       21: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
       21:       21: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
      289:      417: 1837:/*EOF*/
     1276:     1530: 1838:/*EOF*/
     1008:     1134: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
       21:       21: 1842:/*EOF*/
       21:       21: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        2:        2: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        2:        2: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        4:        4: 1854:/*EOF*/
       24:       24: 1855:/*EOF*/
       22:       22: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        2:        2: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
    #####:    #####: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
    #####:    #####: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
    #####:    #####: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/

src/compiler/nir/.libs/nir_clone.c.gcov

        -:        -:    0:Source:nir/nir_clone.c
        -:        -:    0:Graph:nir_clone.gcno
        -:        -:    0:Data:nir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       13:       13:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       13:       13:   59:/*EOF*/
       13:       13:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       13:       13:   62:/*EOF*/
        8:        8:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        5:        5:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       13:       13:   69:/*EOF*/
       13:       13:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        5:        5:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        5:        5:   75:/*EOF*/
        5:        5:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      653:      731:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      653:      731:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      653:      731:   86:/*EOF*/
        3:        3:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      650:      728:   89:/*EOF*/
      650:      728:   90:/*EOF*/
       82:       82:   91:/*EOF*/
       82:       82:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      568:      646:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      382:      438:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      382:      438:  101:/*EOF*/
      382:      438:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      567:      641:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      567:      641:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        5:        5:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        5:        5:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       63:       63:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       63:       63:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       18:       22:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       18:       22:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       16:       16:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       16:       16:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       16:       16:  151:/*EOF*/
       16:       16:  152:/*EOF*/
       16:       16:  153:/*EOF*/
       16:       16:  154:/*EOF*/
       16:       16:  155:/*EOF*/
       16:       16:  156:/*EOF*/
       16:       16:  157:/*EOF*/
       16:       16:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       16:       16:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       16:       16:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       16:       16:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       16:       16:  170:/*EOF*/
       16:       16:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       16:       16:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       35:       35:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
       35:       35:  181:/*EOF*/
       51:       51:  182:/*EOF*/
       16:       16:  183:/*EOF*/
       16:       16:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       35:       35:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       10:       10:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       10:       10:  218:/*EOF*/
       10:       10:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       10:       10:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
      467:      509:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
      467:      509:  229:/*EOF*/
      467:      509:  230:/*EOF*/
      435:      477:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       32:       32:  233:/*EOF*/
       32:       32:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       32:       32:  238:/*EOF*/
        -:        -:  239:/*EOF*/
      467:      509:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      295:      331:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      295:      331:  246:/*EOF*/
      295:      331:  247:/*EOF*/
      528:      600:  248:/*EOF*/
      264:      300:  249:/*EOF*/
      264:      300:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       31:       31:  252:/*EOF*/
       31:       31:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       31:       31:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      295:      331:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       18:       22:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       18:       22:  268:/*EOF*/
       18:       22:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       18:       22:  271:/*EOF*/
        3:        3:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       18:       22:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        3:        3:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        3:        3:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        3:        3:  284:/*EOF*/
        3:        3:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        3:        3:  290:/*EOF*/
        3:        3:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        3:        3:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        3:        3:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        3:        3:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        3:        3:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      231:      253:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      231:      253:  331:/*EOF*/
      231:      253:  332:/*EOF*/
        -:        -:  333:/*EOF*/
      231:      253:  334:/*EOF*/
      231:      253:  335:/*EOF*/
      231:      253:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      661:      719:  338:/*EOF*/
      430:      466:  339:/*EOF*/
      430:      466:  340:/*EOF*/
      430:      466:  341:/*EOF*/
      430:      466:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      231:      253:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       37:       43:  350:/*EOF*/
        -:        -:  351:/*EOF*/
       37:       43:  352:/*EOF*/
       37:       43:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       37:       43:  355:/*EOF*/
       37:       43:  356:/*EOF*/
        -:        -:  357:/*EOF*/
       37:       43:  358:/*EOF*/
       31:       37:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       37:       43:  361:/*EOF*/
       37:       43:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       55:       65:  364:/*EOF*/
       18:       22:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
       62:       70:  369:/*EOF*/
       25:       27:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       37:       43:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       42:       46:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       42:       46:  378:/*EOF*/
       42:       46:  379:/*EOF*/
       42:       46:  380:/*EOF*/
        -:        -:  381:/*EOF*/
       42:       46:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       42:       46:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       42:       46:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        2:        2:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        2:        2:  392:/*EOF*/
        2:        2:  393:/*EOF*/
        2:        2:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        2:        2:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        2:        2:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       33:       41:  433:/*EOF*/
        -:        -:  434:/*EOF*/
       33:       41:  435:/*EOF*/
        -:        -:  436:/*EOF*/
       33:       41:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       33:       41:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       99:      123:  453:/*EOF*/
       66:       82:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
       66:       82:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
       66:       82:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       66:       82:  468:/*EOF*/
        -:        -:  469:/*EOF*/
       66:       82:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
       33:       41:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        4:        8:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        4:        8:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        4:        8:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      316:      352:  500:/*EOF*/
        -:        -:  501:/*EOF*/
      316:      352:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      231:      253:  504:/*EOF*/
        -:        -:  505:/*EOF*/
       37:       43:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       42:       46:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        2:        2:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        4:        8:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
       53:       69:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
       53:       69:  534:/*EOF*/
        -:        -:  535:/*EOF*/
       53:       69:  536:/*EOF*/
       53:       69:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
       53:       69:  540:/*EOF*/
        -:        -:  541:/*EOF*/
      402:      462:  542:/*EOF*/
      349:      393:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
       33:       41:  549:/*EOF*/
        -:        -:  550:/*EOF*/
      316:      352:  551:/*EOF*/
      316:      352:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       53:       69:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
       12:       16:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       12:       16:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       12:       16:  568:/*EOF*/
        -:        -:  569:/*EOF*/
       12:       16:  570:/*EOF*/
        -:        -:  571:/*EOF*/
       12:       16:  572:/*EOF*/
       12:       16:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       12:       16:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        2:        4:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        2:        4:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        2:        4:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        2:        4:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        2:        4:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       39:       49:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      106:      138:  595:/*EOF*/
       67:       89:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       53:       69:  598:/*EOF*/
       53:       69:  599:/*EOF*/
        -:        -:  600:/*EOF*/
       12:       16:  601:/*EOF*/
       12:       16:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        2:        4:  604:/*EOF*/
        2:        4:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
       39:       49:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
       13:       13:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       79:       95:  620:/*EOF*/
       66:       82:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
       66:       82:  624:/*EOF*/
        -:        -:  625:/*EOF*/
       66:       82:  626:/*EOF*/
       66:       82:  627:/*EOF*/
       66:       82:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
       13:       13:  634:/*EOF*/
       13:       13:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        8:        8:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        8:        8:  641:/*EOF*/
        8:        8:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        8:        8:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        8:        8:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        8:        8:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        8:        8:  656:/*EOF*/
        8:        8:  657:/*EOF*/
        8:        8:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        8:        8:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        8:        8:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        5:        5:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        5:        5:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        5:        5:  670:/*EOF*/
        5:        5:  671:/*EOF*/
        5:        5:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        5:        5:  674:/*EOF*/
        5:        5:  675:/*EOF*/
        5:        5:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        5:        5:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        5:        5:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        5:        5:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        5:        5:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        5:        5:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        5:        5:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        5:        5:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        5:        5:  713:/*EOF*/
        5:        5:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        5:        5:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        5:        5:  719:/*EOF*/
        5:        5:  720:/*EOF*/
        5:        5:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        5:        5:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        5:        5:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        5:        5:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        5:        5:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        5:        5:  740:/*EOF*/
        5:        5:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        5:        5:  743:/*EOF*/
        5:        5:  744:/*EOF*/
        5:        5:  745:/*EOF*/
        5:        5:  746:/*EOF*/
        5:        5:  747:/*EOF*/
        5:        5:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
       10:       10:  751:/*EOF*/
        5:        5:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
       10:       10:  759:/*EOF*/
        5:        5:  760:/*EOF*/
        5:        5:  761:/*EOF*/
        5:        5:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        5:        5:  765:/*EOF*/
        5:        5:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        5:        5:  768:/*EOF*/
        5:        5:  769:/*EOF*/
        5:        5:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        5:        5:  773:/*EOF*/
        5:        5:  774:/*EOF*/
        5:        5:  775:/*EOF*/
        5:        5:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        5:        5:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        5:        5:  780:/*EOF*/

src/compiler/nir/.libs/nir_constant_expressions.c.gcov

        -:        -:    0:Source:nir/nir_constant_expressions.c
        -:        -:    0:Graph:nir_constant_expressions.gcno
        -:        -:    0:Data:nir_constant_expressions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
    #####:    #####:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
        -:        -:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
    #####:    #####: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
    #####:    #####: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
    #####:    #####: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
    #####:    #####: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
    #####:    #####: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
    #####:    #####: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
    #####:    #####: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
    #####:    #####: 2081:/*EOF*/
    #####:    #####: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
    #####:    #####: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
    #####:    #####: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
    #####:    #####: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
    #####:    #####: 2117:/*EOF*/
    #####:    #####: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
    #####:    #####: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
    #####:    #####: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
    #####:    #####: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
    #####:    #####: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
    #####:    #####: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
    #####:    #####: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
    #####:    #####: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
    #####:    #####: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
    #####:    #####: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
    #####:    #####: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
    #####:    #####: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
    #####:    #####: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
    #####:    #####: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
    #####:    #####: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
    #####:    #####: 2433:/*EOF*/
    #####:    #####: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
    #####:    #####: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
    #####:    #####: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
    #####:    #####: 2463:/*EOF*/
    #####:    #####: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
    #####:    #####: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
    #####:    #####: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
    #####:    #####: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
    #####:    #####: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
    #####:    #####: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
    #####:    #####: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
    #####:    #####: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
    #####:    #####: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
    #####:    #####: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
    #####:    #####: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
    #####:    #####: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
    #####:    #####: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
    #####:    #####: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
    #####:    #####: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
    #####:    #####: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
    #####:    #####: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
    #####:    #####: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
    #####:    #####: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
    #####:    #####: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
    #####:    #####: 2603:/*EOF*/
    #####:    #####: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
    #####:    #####: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
    #####:    #####: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
    #####:    #####: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
    #####:    #####: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
    #####:    #####: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
    #####:    #####: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
    #####:    #####: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
    #####:    #####: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
    #####:    #####: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
    #####:    #####: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
    #####:    #####: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
    #####:    #####: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
    #####:    #####: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
    #####:    #####: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
    #####:    #####: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
    #####:    #####: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
    #####:    #####: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
    #####:    #####: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
    #####:    #####: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
    #####:    #####: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
    #####:    #####: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
    #####:    #####: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
    #####:    #####: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
    #####:    #####: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
    #####:    #####: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
    #####:    #####: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
    #####:    #####: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
    #####:    #####: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
    #####:    #####: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    #####:    #####: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
    #####:    #####: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
    #####:    #####: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
    #####:    #####: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    #####:    #####: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
    #####:    #####: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
    #####:    #####: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
    #####:    #####: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
    #####:    #####: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
    #####:    #####: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
    #####:    #####: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
    #####:    #####: 3053:/*EOF*/
    #####:    #####: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
    #####:    #####: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
    #####:    #####: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
    #####:    #####: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
    #####:    #####: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
    #####:    #####: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
    #####:    #####: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
    #####:    #####: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
    #####:    #####: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
    #####:    #####: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
    #####:    #####: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
    #####:    #####: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
    #####:    #####: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
    #####:    #####: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
    #####:    #####: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
    #####:    #####: 3166:/*EOF*/
    #####:    #####: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
    #####:    #####: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
    #####:    #####: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
    #####:    #####: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
    #####:    #####: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
    #####:    #####: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
    #####:    #####: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
    #####:    #####: 3252:/*EOF*/
    #####:    #####: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
    #####:    #####: 3278:/*EOF*/
    #####:    #####: 3279:/*EOF*/
    #####:    #####: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
    #####:    #####: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
    #####:    #####: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
    #####:    #####: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
    #####:    #####: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
    #####:    #####: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
    #####:    #####: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
    #####:    #####: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
    #####:    #####: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
    #####:    #####: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
    #####:    #####: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
    #####:    #####: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
    #####:    #####: 3374:/*EOF*/
    #####:    #####: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
    #####:    #####: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
    #####:    #####: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
    #####:    #####: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
    #####:    #####: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
    #####:    #####: 3403:/*EOF*/
    #####:    #####: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
    #####:    #####: 3407:/*EOF*/
    #####:    #####: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
    #####:    #####: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
    #####:    #####: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
    #####:    #####: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
    #####:    #####: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
    #####:    #####: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
    #####:    #####: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
    #####:    #####: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
    #####:    #####: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
    #####:    #####: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
    #####:    #####: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
    #####:    #####: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
    #####:    #####: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
    #####:    #####: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
    #####:    #####: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
    #####:    #####: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
    #####:    #####: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
    #####:    #####: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
    #####:    #####: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
    #####:    #####: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
    #####:    #####: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
    #####:    #####: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
    #####:    #####: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
    #####:    #####: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
    #####:    #####: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
    #####:    #####: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
    #####:    #####: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
    #####:    #####: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
    #####:    #####: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
    #####:    #####: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
    #####:    #####: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
    #####:    #####: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
    #####:    #####: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
    #####:    #####: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
    #####:    #####: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
    #####:    #####: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
    #####:    #####: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
    #####:    #####: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
    #####:    #####: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
    #####:    #####: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
    #####:    #####: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
    #####:    #####: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
    #####:    #####: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
    #####:    #####: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
    #####:    #####: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
    #####:    #####: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
    #####:    #####: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
    #####:    #####: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
    #####:    #####: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
    #####:    #####: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
    #####:    #####: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
    #####:    #####: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
    #####:    #####: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
    #####:    #####: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
    #####:    #####: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
    #####:    #####: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
    #####:    #####: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
    #####:    #####: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
    #####:    #####: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
    #####:    #####: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
    #####:    #####: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
    #####:    #####: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
    #####:    #####: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
    #####:    #####: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
    #####:    #####: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
    #####:    #####: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
    #####:    #####: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
    #####:    #####: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
    #####:    #####: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
    #####:    #####: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
    #####:    #####: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
    #####:    #####: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
    #####:    #####: 3989:/*EOF*/
    #####:    #####: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
    #####:    #####: 3996:/*EOF*/
    #####:    #####: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
    #####:    #####: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
    #####:    #####: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
    #####:    #####: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
    #####:    #####: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
    #####:    #####: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
    #####:    #####: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
    #####:    #####: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
    #####:    #####: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
    #####:    #####: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
    #####:    #####: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
    #####:    #####: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
    #####:    #####: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
    #####:    #####: 4182:/*EOF*/
    #####:    #####: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
    #####:    #####: 4186:/*EOF*/
    #####:    #####: 4187:/*EOF*/
    #####:    #####: 4188:/*EOF*/
    #####:    #####: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
    #####:    #####: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
    #####:    #####: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
    #####:    #####: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
    #####:    #####: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
    #####:    #####: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
    #####:    #####: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
    #####:    #####: 4233:/*EOF*/
    #####:    #####: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
    #####:    #####: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
    #####:    #####: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
    #####:    #####: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
    #####:    #####: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
    #####:    #####: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
    #####:    #####: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
    #####:    #####: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
    #####:    #####: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
    #####:    #####: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
    #####:    #####: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
    #####:    #####: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
    #####:    #####: 4304:/*EOF*/
    #####:    #####: 4305:/*EOF*/
    #####:    #####: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        -:        -: 4310:/*EOF*/
    #####:    #####: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
    #####:    #####: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
    #####:    #####: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
    #####:    #####: 4322:/*EOF*/
    #####:    #####: 4323:/*EOF*/
    #####:    #####: 4324:/*EOF*/
    #####:    #####: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
    #####:    #####: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
    #####:    #####: 4334:/*EOF*/
    #####:    #####: 4335:/*EOF*/
    #####:    #####: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
    #####:    #####: 4341:/*EOF*/
    #####:    #####: 4342:/*EOF*/
    #####:    #####: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
    #####:    #####: 4352:/*EOF*/
    #####:    #####: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
    #####:    #####: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
    #####:    #####: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
    #####:    #####: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
    #####:    #####: 4378:/*EOF*/
    #####:    #####: 4379:/*EOF*/
    #####:    #####: 4380:/*EOF*/
    #####:    #####: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
    #####:    #####: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
    #####:    #####: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
    #####:    #####: 4409:/*EOF*/
    #####:    #####: 4410:/*EOF*/
    #####:    #####: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
    #####:    #####: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
    #####:    #####: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
    #####:    #####: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
    #####:    #####: 4428:/*EOF*/
    #####:    #####: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
    #####:    #####: 4438:/*EOF*/
    #####:    #####: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
    #####:    #####: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
    #####:    #####: 4445:/*EOF*/
    #####:    #####: 4446:/*EOF*/
    #####:    #####: 4447:/*EOF*/
    #####:    #####: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
    #####:    #####: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
    #####:    #####: 4456:/*EOF*/
    #####:    #####: 4457:/*EOF*/
    #####:    #####: 4458:/*EOF*/
    #####:    #####: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
    #####:    #####: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
    #####:    #####: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
    #####:    #####: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
    #####:    #####: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
    #####:    #####: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
    #####:    #####: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
    #####:    #####: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
    #####:    #####: 4485:/*EOF*/
    #####:    #####: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
    #####:    #####: 4489:/*EOF*/
    #####:    #####: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
    #####:    #####: 4492:/*EOF*/
    #####:    #####: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
    #####:    #####: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
    #####:    #####: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
    #####:    #####: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
    #####:    #####: 4512:/*EOF*/
    #####:    #####: 4513:/*EOF*/
    #####:    #####: 4514:/*EOF*/
    #####:    #####: 4515:/*EOF*/
    #####:    #####: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
    #####:    #####: 4519:/*EOF*/
    #####:    #####: 4520:/*EOF*/
    #####:    #####: 4521:/*EOF*/
    #####:    #####: 4522:/*EOF*/
    #####:    #####: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
    #####:    #####: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
    #####:    #####: 4530:/*EOF*/
    #####:    #####: 4531:/*EOF*/
    #####:    #####: 4532:/*EOF*/
    #####:    #####: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
    #####:    #####: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
    #####:    #####: 4542:/*EOF*/
    #####:    #####: 4543:/*EOF*/
    #####:    #####: 4544:/*EOF*/
    #####:    #####: 4545:/*EOF*/
    #####:    #####: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
    #####:    #####: 4549:/*EOF*/
    #####:    #####: 4550:/*EOF*/
    #####:    #####: 4551:/*EOF*/
    #####:    #####: 4552:/*EOF*/
    #####:    #####: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
    #####:    #####: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
    #####:    #####: 4561:/*EOF*/
    #####:    #####: 4562:/*EOF*/
    #####:    #####: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
    #####:    #####: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
    #####:    #####: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
    #####:    #####: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
    #####:    #####: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
    #####:    #####: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
    #####:    #####: 4587:/*EOF*/
    #####:    #####: 4588:/*EOF*/
    #####:    #####: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
    #####:    #####: 4593:/*EOF*/
    #####:    #####: 4594:/*EOF*/
    #####:    #####: 4595:/*EOF*/
    #####:    #####: 4596:/*EOF*/
    #####:    #####: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
    #####:    #####: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
    #####:    #####: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
    #####:    #####: 4613:/*EOF*/
    #####:    #####: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
    #####:    #####: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
    #####:    #####: 4621:/*EOF*/
    #####:    #####: 4622:/*EOF*/
    #####:    #####: 4623:/*EOF*/
    #####:    #####: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
    #####:    #####: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
    #####:    #####: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
    #####:    #####: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
    #####:    #####: 4640:/*EOF*/
    #####:    #####: 4641:/*EOF*/
    #####:    #####: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
    #####:    #####: 4647:/*EOF*/
    #####:    #####: 4648:/*EOF*/
    #####:    #####: 4649:/*EOF*/
    #####:    #####: 4650:/*EOF*/
    #####:    #####: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
    #####:    #####: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
    #####:    #####: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
    #####:    #####: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
    #####:    #####: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
    #####:    #####: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
    #####:    #####: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
    #####:    #####: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
    #####:    #####: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
    #####:    #####: 4682:/*EOF*/
    #####:    #####: 4683:/*EOF*/
    #####:    #####: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
    #####:    #####: 4688:/*EOF*/
    #####:    #####: 4689:/*EOF*/
    #####:    #####: 4690:/*EOF*/
    #####:    #####: 4691:/*EOF*/
    #####:    #####: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
    #####:    #####: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
    #####:    #####: 4699:/*EOF*/
    #####:    #####: 4700:/*EOF*/
    #####:    #####: 4701:/*EOF*/
    #####:    #####: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
    #####:    #####: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
    #####:    #####: 4712:/*EOF*/
    #####:    #####: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
    #####:    #####: 4718:/*EOF*/
    #####:    #####: 4719:/*EOF*/
    #####:    #####: 4720:/*EOF*/
    #####:    #####: 4721:/*EOF*/
    #####:    #####: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
    #####:    #####: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
    #####:    #####: 4729:/*EOF*/
    #####:    #####: 4730:/*EOF*/
    #####:    #####: 4731:/*EOF*/
    #####:    #####: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
    #####:    #####: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
    #####:    #####: 4741:/*EOF*/
    #####:    #####: 4742:/*EOF*/
    #####:    #####: 4743:/*EOF*/
    #####:    #####: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
    #####:    #####: 4748:/*EOF*/
    #####:    #####: 4749:/*EOF*/
    #####:    #####: 4750:/*EOF*/
    #####:    #####: 4751:/*EOF*/
    #####:    #####: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
    #####:    #####: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
    #####:    #####: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
    #####:    #####: 4761:/*EOF*/
    #####:    #####: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
    #####:    #####: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
    #####:    #####: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
    #####:    #####: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
    #####:    #####: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
    #####:    #####: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
    #####:    #####: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
    #####:    #####: 4785:/*EOF*/
    #####:    #####: 4786:/*EOF*/
    #####:    #####: 4787:/*EOF*/
    #####:    #####: 4788:/*EOF*/
    #####:    #####: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
    #####:    #####: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
    #####:    #####: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
    #####:    #####: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
    #####:    #####: 4803:/*EOF*/
    #####:    #####: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
    #####:    #####: 4806:/*EOF*/
    #####:    #####: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
    #####:    #####: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
    #####:    #####: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
    #####:    #####: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
    #####:    #####: 4821:/*EOF*/
    #####:    #####: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
    #####:    #####: 4824:/*EOF*/
    #####:    #####: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
    #####:    #####: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
    #####:    #####: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
    #####:    #####: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
    #####:    #####: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
    #####:    #####: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
    #####:    #####: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
    #####:    #####: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
    #####:    #####: 4853:/*EOF*/
    #####:    #####: 4854:/*EOF*/
    #####:    #####: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
    #####:    #####: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
    #####:    #####: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
    #####:    #####: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
    #####:    #####: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
    #####:    #####: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
    #####:    #####: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
    #####:    #####: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
    #####:    #####: 4885:/*EOF*/
    #####:    #####: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
    #####:    #####: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
    #####:    #####: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
    #####:    #####: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
    #####:    #####: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
    #####:    #####: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
    #####:    #####: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
    #####:    #####: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
    #####:    #####: 4915:/*EOF*/
    #####:    #####: 4916:/*EOF*/
    #####:    #####: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
    #####:    #####: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
    #####:    #####: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
    #####:    #####: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
    #####:    #####: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
    #####:    #####: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
    #####:    #####: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
    #####:    #####: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
    #####:    #####: 4947:/*EOF*/
    #####:    #####: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
    #####:    #####: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
    #####:    #####: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
    #####:    #####: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
    #####:    #####: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
    #####:    #####: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
    #####:    #####: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
    #####:    #####: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
    #####:    #####: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
    #####:    #####: 4977:/*EOF*/
    #####:    #####: 4978:/*EOF*/
    #####:    #####: 4979:/*EOF*/
    #####:    #####: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
    #####:    #####: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
    #####:    #####: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
    #####:    #####: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
    #####:    #####: 4997:/*EOF*/
    #####:    #####: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
    #####:    #####: 5000:/*EOF*/
    #####:    #####: 5001:/*EOF*/
    #####:    #####: 5002:/*EOF*/
    #####:    #####: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
    #####:    #####: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
    #####:    #####: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
    #####:    #####: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
    #####:    #####: 5017:/*EOF*/
    #####:    #####: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
    #####:    #####: 5021:/*EOF*/
    #####:    #####: 5022:/*EOF*/
    #####:    #####: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
    #####:    #####: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
    #####:    #####: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
    #####:    #####: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
    #####:    #####: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
    #####:    #####: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
    #####:    #####: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
    #####:    #####: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
    #####:    #####: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
    #####:    #####: 5051:/*EOF*/
    #####:    #####: 5052:/*EOF*/
    #####:    #####: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
    #####:    #####: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
    #####:    #####: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
    #####:    #####: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
        -:        -: 5066:/*EOF*/
    #####:    #####: 5067:/*EOF*/
    #####:    #####: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
    #####:    #####: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
    #####:    #####: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
        -:        -: 5075:/*EOF*/
    #####:    #####: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
    #####:    #####: 5083:/*EOF*/
    #####:    #####: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
    #####:    #####: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
    #####:    #####: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
    #####:    #####: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
    #####:    #####: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
    #####:    #####: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
    #####:    #####: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
    #####:    #####: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
    #####:    #####: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
    #####:    #####: 5113:/*EOF*/
    #####:    #####: 5114:/*EOF*/
    #####:    #####: 5115:/*EOF*/
    #####:    #####: 5116:/*EOF*/
    #####:    #####: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
    #####:    #####: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
    #####:    #####: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
    #####:    #####: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
    #####:    #####: 5131:/*EOF*/
    #####:    #####: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
    #####:    #####: 5134:/*EOF*/
    #####:    #####: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
    #####:    #####: 5137:/*EOF*/
        -:        -: 5138:/*EOF*/
    #####:    #####: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
    #####:    #####: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
    #####:    #####: 5149:/*EOF*/
    #####:    #####: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
    #####:    #####: 5152:/*EOF*/
    #####:    #####: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
    #####:    #####: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
    #####:    #####: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
    #####:    #####: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
    #####:    #####: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
    #####:    #####: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
    #####:    #####: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
    #####:    #####: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
    #####:    #####: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
    #####:    #####: 5187:/*EOF*/
    #####:    #####: 5188:/*EOF*/
    #####:    #####: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
    #####:    #####: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
    #####:    #####: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
    #####:    #####: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
    #####:    #####: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
    #####:    #####: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
    #####:    #####: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
    #####:    #####: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
    #####:    #####: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
    #####:    #####: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
    #####:    #####: 5229:/*EOF*/
    #####:    #####: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
    #####:    #####: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
    #####:    #####: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
    #####:    #####: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        -:        -: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
    #####:    #####: 5245:/*EOF*/
    #####:    #####: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
    #####:    #####: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
    #####:    #####: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
    #####:    #####: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
    #####:    #####: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
    #####:    #####: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
    #####:    #####: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
    #####:    #####: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
    #####:    #####: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
    #####:    #####: 5275:/*EOF*/
    #####:    #####: 5276:/*EOF*/
    #####:    #####: 5277:/*EOF*/
    #####:    #####: 5278:/*EOF*/
    #####:    #####: 5279:/*EOF*/
    #####:    #####: 5280:/*EOF*/
    #####:    #####: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
    #####:    #####: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
    #####:    #####: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
        -:        -: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
    #####:    #####: 5295:/*EOF*/
    #####:    #####: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
    #####:    #####: 5298:/*EOF*/
    #####:    #####: 5299:/*EOF*/
    #####:    #####: 5300:/*EOF*/
    #####:    #####: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
    #####:    #####: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
    #####:    #####: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
    #####:    #####: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
    #####:    #####: 5315:/*EOF*/
    #####:    #####: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
    #####:    #####: 5318:/*EOF*/
    #####:    #####: 5319:/*EOF*/
    #####:    #####: 5320:/*EOF*/
    #####:    #####: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
    #####:    #####: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
    #####:    #####: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
    #####:    #####: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
    #####:    #####: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
    #####:    #####: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
    #####:    #####: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
    #####:    #####: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
    #####:    #####: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
    #####:    #####: 5349:/*EOF*/
    #####:    #####: 5350:/*EOF*/
    #####:    #####: 5351:/*EOF*/
    #####:    #####: 5352:/*EOF*/
    #####:    #####: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
    #####:    #####: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
    #####:    #####: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
    #####:    #####: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
    #####:    #####: 5367:/*EOF*/
    #####:    #####: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
    #####:    #####: 5370:/*EOF*/
    #####:    #####: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
    #####:    #####: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
    #####:    #####: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
    #####:    #####: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
    #####:    #####: 5388:/*EOF*/
    #####:    #####: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
    #####:    #####: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
    #####:    #####: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
    #####:    #####: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
    #####:    #####: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
    #####:    #####: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
    #####:    #####: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
    #####:    #####: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
    #####:    #####: 5417:/*EOF*/
    #####:    #####: 5418:/*EOF*/
    #####:    #####: 5419:/*EOF*/
    #####:    #####: 5420:/*EOF*/
    #####:    #####: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
    #####:    #####: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
    #####:    #####: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
    #####:    #####: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        -:        -: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
    #####:    #####: 5435:/*EOF*/
    #####:    #####: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
    #####:    #####: 5438:/*EOF*/
    #####:    #####: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
    #####:    #####: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
    #####:    #####: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
    #####:    #####: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
    #####:    #####: 5453:/*EOF*/
    #####:    #####: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
    #####:    #####: 5456:/*EOF*/
    #####:    #####: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
    #####:    #####: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
    #####:    #####: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
    #####:    #####: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
    #####:    #####: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
    #####:    #####: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
    #####:    #####: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
    #####:    #####: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
    #####:    #####: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
    #####:    #####: 5485:/*EOF*/
    #####:    #####: 5486:/*EOF*/
    #####:    #####: 5487:/*EOF*/
    #####:    #####: 5488:/*EOF*/
    #####:    #####: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
    #####:    #####: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
    #####:    #####: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
    #####:    #####: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
    #####:    #####: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
    #####:    #####: 5506:/*EOF*/
    #####:    #####: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
    #####:    #####: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
    #####:    #####: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
    #####:    #####: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
        -:        -: 5520:/*EOF*/
    #####:    #####: 5521:/*EOF*/
    #####:    #####: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
    #####:    #####: 5524:/*EOF*/
    #####:    #####: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
    #####:    #####: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
    #####:    #####: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
    #####:    #####: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
    #####:    #####: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
    #####:    #####: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
    #####:    #####: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
    #####:    #####: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
    #####:    #####: 5553:/*EOF*/
    #####:    #####: 5554:/*EOF*/
    #####:    #####: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
    #####:    #####: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
    #####:    #####: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
    #####:    #####: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
    #####:    #####: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
        -:        -: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
    #####:    #####: 5571:/*EOF*/
    #####:    #####: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
    #####:    #####: 5574:/*EOF*/
    #####:    #####: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
    #####:    #####: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
    #####:    #####: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
    #####:    #####: 5589:/*EOF*/
    #####:    #####: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
    #####:    #####: 5592:/*EOF*/
    #####:    #####: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
    #####:    #####: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
    #####:    #####: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
    #####:    #####: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
    #####:    #####: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
    #####:    #####: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
    #####:    #####: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
    #####:    #####: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
    #####:    #####: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
    #####:    #####: 5621:/*EOF*/
    #####:    #####: 5622:/*EOF*/
    #####:    #####: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
    #####:    #####: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
    #####:    #####: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
    #####:    #####: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
    #####:    #####: 5637:/*EOF*/
    #####:    #####: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
    #####:    #####: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
    #####:    #####: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
    #####:    #####: 5653:/*EOF*/
    #####:    #####: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
    #####:    #####: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
    #####:    #####: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
    #####:    #####: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
    #####:    #####: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
    #####:    #####: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
    #####:    #####: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
    #####:    #####: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
    #####:    #####: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        -:        -: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
    #####:    #####: 5683:/*EOF*/
    #####:    #####: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
    #####:    #####: 5686:/*EOF*/
    #####:    #####: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
    #####:    #####: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
    #####:    #####: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
    #####:    #####: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
        -:        -: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
    #####:    #####: 5701:/*EOF*/
    #####:    #####: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
    #####:    #####: 5704:/*EOF*/
    #####:    #####: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
    #####:    #####: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
    #####:    #####: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
    #####:    #####: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
    #####:    #####: 5719:/*EOF*/
    #####:    #####: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
    #####:    #####: 5722:/*EOF*/
    #####:    #####: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
    #####:    #####: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
    #####:    #####: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
    #####:    #####: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
    #####:    #####: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
    #####:    #####: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
    #####:    #####: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
    #####:    #####: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
    #####:    #####: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
    #####:    #####: 5751:/*EOF*/
    #####:    #####: 5752:/*EOF*/
    #####:    #####: 5753:/*EOF*/
    #####:    #####: 5754:/*EOF*/
    #####:    #####: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
    #####:    #####: 5762:/*EOF*/
        -:        -: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
    #####:    #####: 5769:/*EOF*/
    #####:    #####: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
    #####:    #####: 5772:/*EOF*/
    #####:    #####: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
    #####:    #####: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
    #####:    #####: 5780:/*EOF*/
        -:        -: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
    #####:    #####: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
    #####:    #####: 5790:/*EOF*/
    #####:    #####: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
    #####:    #####: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
    #####:    #####: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
    #####:    #####: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
    #####:    #####: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
    #####:    #####: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
    #####:    #####: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
    #####:    #####: 5819:/*EOF*/
    #####:    #####: 5820:/*EOF*/
    #####:    #####: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
    #####:    #####: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
    #####:    #####: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
    #####:    #####: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
    #####:    #####: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
    #####:    #####: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
    #####:    #####: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
    #####:    #####: 5851:/*EOF*/
    #####:    #####: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
    #####:    #####: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
    #####:    #####: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        -:        -: 5859:/*EOF*/
    #####:    #####: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
    #####:    #####: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
    #####:    #####: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
    #####:    #####: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
    #####:    #####: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
    #####:    #####: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
    #####:    #####: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
    #####:    #####: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
    #####:    #####: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
    #####:    #####: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
    #####:    #####: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
    #####:    #####: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
    #####:    #####: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
    #####:    #####: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
    #####:    #####: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
    #####:    #####: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
    #####:    #####: 5936:/*EOF*/
        -:        -: 5937:/*EOF*/
    #####:    #####: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
    #####:    #####: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
    #####:    #####: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
        -:        -: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
        -:        -: 5961:/*EOF*/
    #####:    #####: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
    #####:    #####: 5966:/*EOF*/
        -:        -: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
    #####:    #####: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
    #####:    #####: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
    #####:    #####: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
        -:        -: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
    #####:    #####: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
    #####:    #####: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
    #####:    #####: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
    #####:    #####: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
    #####:    #####: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
    #####:    #####: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
    #####:    #####: 6026:/*EOF*/
        -:        -: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
    #####:    #####: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
    #####:    #####: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
    #####:    #####: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
    #####:    #####: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
    #####:    #####: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
    #####:    #####: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
    #####:    #####: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
    #####:    #####: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
    #####:    #####: 6068:/*EOF*/
        -:        -: 6069:/*EOF*/
    #####:    #####: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
    #####:    #####: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
    #####:    #####: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
    #####:    #####: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
    #####:    #####: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
    #####:    #####: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
    #####:    #####: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
    #####:    #####: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
    #####:    #####: 6097:/*EOF*/
    #####:    #####: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
    #####:    #####: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
    #####:    #####: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
    #####:    #####: 6111:/*EOF*/
    #####:    #####: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
    #####:    #####: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
    #####:    #####: 6125:/*EOF*/
    #####:    #####: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
    #####:    #####: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
    #####:    #####: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
    #####:    #####: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
    #####:    #####: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
    #####:    #####: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
        -:        -: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
    #####:    #####: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
    #####:    #####: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
    #####:    #####: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
    #####:    #####: 6167:/*EOF*/
    #####:    #####: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
    #####:    #####: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
        -:        -: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
    #####:    #####: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
    #####:    #####: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
    #####:    #####: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
    #####:    #####: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
    #####:    #####: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
        -:        -: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
    #####:    #####: 6209:/*EOF*/
    #####:    #####: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
    #####:    #####: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
    #####:    #####: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
    #####:    #####: 6223:/*EOF*/
    #####:    #####: 6224:/*EOF*/
        -:        -: 6225:/*EOF*/
    #####:    #####: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
        -:        -: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
    #####:    #####: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
    #####:    #####: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
    #####:    #####: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
    #####:    #####: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
    #####:    #####: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
    #####:    #####: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
    #####:    #####: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
    #####:    #####: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
    #####:    #####: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
    #####:    #####: 6265:/*EOF*/
    #####:    #####: 6266:/*EOF*/
        -:        -: 6267:/*EOF*/
    #####:    #####: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
        -:        -: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
    #####:    #####: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
    #####:    #####: 6279:/*EOF*/
    #####:    #####: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
    #####:    #####: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        -:        -: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
    #####:    #####: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
    #####:    #####: 6296:/*EOF*/
        -:        -: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
    #####:    #####: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
    #####:    #####: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
    #####:    #####: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
    #####:    #####: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
    #####:    #####: 6321:/*EOF*/
    #####:    #####: 6322:/*EOF*/
    #####:    #####: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
    #####:    #####: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
    #####:    #####: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
    #####:    #####: 6336:/*EOF*/
    #####:    #####: 6337:/*EOF*/
    #####:    #####: 6338:/*EOF*/
        -:        -: 6339:/*EOF*/
    #####:    #####: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
        -:        -: 6348:/*EOF*/
    #####:    #####: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
    #####:    #####: 6351:/*EOF*/
    #####:    #####: 6352:/*EOF*/
    #####:    #####: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
    #####:    #####: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
        -:        -: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
    #####:    #####: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
    #####:    #####: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
    #####:    #####: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
    #####:    #####: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
    #####:    #####: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
    #####:    #####: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
    #####:    #####: 6380:/*EOF*/
    #####:    #####: 6381:/*EOF*/
    #####:    #####: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
    #####:    #####: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        -:        -: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
    #####:    #####: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
    #####:    #####: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
    #####:    #####: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
    #####:    #####: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
    #####:    #####: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
    #####:    #####: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
    #####:    #####: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
    #####:    #####: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
    #####:    #####: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
    #####:    #####: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
    #####:    #####: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
    #####:    #####: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
    #####:    #####: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
    #####:    #####: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
    #####:    #####: 6439:/*EOF*/
    #####:    #####: 6440:/*EOF*/
    #####:    #####: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
    #####:    #####: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
    #####:    #####: 6454:/*EOF*/
    #####:    #####: 6455:/*EOF*/
    #####:    #####: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
    #####:    #####: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
    #####:    #####: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
    #####:    #####: 6469:/*EOF*/
    #####:    #####: 6470:/*EOF*/
    #####:    #####: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
    #####:    #####: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
    #####:    #####: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
    #####:    #####: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
    #####:    #####: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
    #####:    #####: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
    #####:    #####: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
    #####:    #####: 6498:/*EOF*/
    #####:    #####: 6499:/*EOF*/
    #####:    #####: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
    #####:    #####: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        -:        -: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
    #####:    #####: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
    #####:    #####: 6513:/*EOF*/
    #####:    #####: 6514:/*EOF*/
    #####:    #####: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
    #####:    #####: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        -:        -: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
    #####:    #####: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
    #####:    #####: 6528:/*EOF*/
    #####:    #####: 6529:/*EOF*/
    #####:    #####: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
    #####:    #####: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
    #####:    #####: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
    #####:    #####: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
    #####:    #####: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
    #####:    #####: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
    #####:    #####: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
    #####:    #####: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
    #####:    #####: 6557:/*EOF*/
    #####:    #####: 6558:/*EOF*/
    #####:    #####: 6559:/*EOF*/
    #####:    #####: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
    #####:    #####: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
    #####:    #####: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
    #####:    #####: 6573:/*EOF*/
    #####:    #####: 6574:/*EOF*/
    #####:    #####: 6575:/*EOF*/
    #####:    #####: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
    #####:    #####: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
    #####:    #####: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
    #####:    #####: 6589:/*EOF*/
    #####:    #####: 6590:/*EOF*/
    #####:    #####: 6591:/*EOF*/
    #####:    #####: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
    #####:    #####: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
    #####:    #####: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
    #####:    #####: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
    #####:    #####: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
    #####:    #####: 6619:/*EOF*/
    #####:    #####: 6620:/*EOF*/
    #####:    #####: 6621:/*EOF*/
    #####:    #####: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
    #####:    #####: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
    #####:    #####: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
    #####:    #####: 6635:/*EOF*/
    #####:    #####: 6636:/*EOF*/
    #####:    #####: 6637:/*EOF*/
    #####:    #####: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
    #####:    #####: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        -:        -: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
    #####:    #####: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
    #####:    #####: 6651:/*EOF*/
    #####:    #####: 6652:/*EOF*/
    #####:    #####: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
    #####:    #####: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
    #####:    #####: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
    #####:    #####: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
    #####:    #####: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
    #####:    #####: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
    #####:    #####: 6681:/*EOF*/
    #####:    #####: 6682:/*EOF*/
    #####:    #####: 6683:/*EOF*/
    #####:    #####: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
    #####:    #####: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
    #####:    #####: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
    #####:    #####: 6697:/*EOF*/
    #####:    #####: 6698:/*EOF*/
    #####:    #####: 6699:/*EOF*/
    #####:    #####: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
    #####:    #####: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
    #####:    #####: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
    #####:    #####: 6715:/*EOF*/
    #####:    #####: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
    #####:    #####: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
    #####:    #####: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
    #####:    #####: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
    #####:    #####: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
    #####:    #####: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
    #####:    #####: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
    #####:    #####: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
    #####:    #####: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
    #####:    #####: 6745:/*EOF*/
    #####:    #####: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
    #####:    #####: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
    #####:    #####: 6759:/*EOF*/
    #####:    #####: 6760:/*EOF*/
    #####:    #####: 6761:/*EOF*/
    #####:    #####: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
    #####:    #####: 6764:/*EOF*/
        -:        -: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
    #####:    #####: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
    #####:    #####: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
    #####:    #####: 6777:/*EOF*/
    #####:    #####: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
    #####:    #####: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
    #####:    #####: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
    #####:    #####: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
    #####:    #####: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
    #####:    #####: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        -:        -: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
    #####:    #####: 6802:/*EOF*/
    #####:    #####: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
    #####:    #####: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
    #####:    #####: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
    #####:    #####: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
    #####:    #####: 6817:/*EOF*/
    #####:    #####: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
    #####:    #####: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
    #####:    #####: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
    #####:    #####: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
    #####:    #####: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
    #####:    #####: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
    #####:    #####: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
    #####:    #####: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
        -:        -: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
    #####:    #####: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
    #####:    #####: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
    #####:    #####: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
    #####:    #####: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
    #####:    #####: 6861:/*EOF*/
    #####:    #####: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
    #####:    #####: 6864:/*EOF*/
    #####:    #####: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
    #####:    #####: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
    #####:    #####: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
    #####:    #####: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
    #####:    #####: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
    #####:    #####: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
    #####:    #####: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
    #####:    #####: 6887:/*EOF*/
    #####:    #####: 6888:/*EOF*/
    #####:    #####: 6889:/*EOF*/
    #####:    #####: 6890:/*EOF*/
    #####:    #####: 6891:/*EOF*/
        -:        -: 6892:/*EOF*/
    #####:    #####: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
    #####:    #####: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
    #####:    #####: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
    #####:    #####: 6905:/*EOF*/
    #####:    #####: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
    #####:    #####: 6908:/*EOF*/
    #####:    #####: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
    #####:    #####: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
    #####:    #####: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
    #####:    #####: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
        -:        -: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
    #####:    #####: 6923:/*EOF*/
    #####:    #####: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
    #####:    #####: 6926:/*EOF*/
    #####:    #####: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
    #####:    #####: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
    #####:    #####: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
    #####:    #####: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
    #####:    #####: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
    #####:    #####: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
    #####:    #####: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
    #####:    #####: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
    #####:    #####: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
    #####:    #####: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
    #####:    #####: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
    #####:    #####: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
    #####:    #####: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
    #####:    #####: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
    #####:    #####: 6971:/*EOF*/
    #####:    #####: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
    #####:    #####: 6975:/*EOF*/
        -:        -: 6976:/*EOF*/
    #####:    #####: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
    #####:    #####: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
        -:        -: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
    #####:    #####: 6987:/*EOF*/
    #####:    #####: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
    #####:    #####: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
    #####:    #####: 6993:/*EOF*/
        -:        -: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
    #####:    #####: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
    #####:    #####: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
    #####:    #####: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
    #####:    #####: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
    #####:    #####: 7011:/*EOF*/
        -:        -: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
    #####:    #####: 7017:/*EOF*/
    #####:    #####: 7018:/*EOF*/
    #####:    #####: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
    #####:    #####: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
    #####:    #####: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
    #####:    #####: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
    #####:    #####: 7033:/*EOF*/
    #####:    #####: 7034:/*EOF*/
        -:        -: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
    #####:    #####: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
    #####:    #####: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
    #####:    #####: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
        -:        -: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
    #####:    #####: 7049:/*EOF*/
    #####:    #####: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
    #####:    #####: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
    #####:    #####: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
    #####:    #####: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
    #####:    #####: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
    #####:    #####: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
    #####:    #####: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
    #####:    #####: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
    #####:    #####: 7079:/*EOF*/
    #####:    #####: 7080:/*EOF*/
    #####:    #####: 7081:/*EOF*/
    #####:    #####: 7082:/*EOF*/
    #####:    #####: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
    #####:    #####: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
    #####:    #####: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
    #####:    #####: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
    #####:    #####: 7097:/*EOF*/
    #####:    #####: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
    #####:    #####: 7100:/*EOF*/
    #####:    #####: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
    #####:    #####: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
    #####:    #####: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
    #####:    #####: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
    #####:    #####: 7115:/*EOF*/
    #####:    #####: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
    #####:    #####: 7118:/*EOF*/
    #####:    #####: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
    #####:    #####: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
    #####:    #####: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
    #####:    #####: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
    #####:    #####: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
        -:        -: 7132:/*EOF*/
    #####:    #####: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
    #####:    #####: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
    #####:    #####: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
    #####:    #####: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
    #####:    #####: 7147:/*EOF*/
    #####:    #####: 7148:/*EOF*/
    #####:    #####: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
    #####:    #####: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
    #####:    #####: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
    #####:    #####: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
    #####:    #####: 7163:/*EOF*/
    #####:    #####: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
    #####:    #####: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
    #####:    #####: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
    #####:    #####: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
    #####:    #####: 7179:/*EOF*/
    #####:    #####: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
        -:        -: 7182:/*EOF*/
    #####:    #####: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
    #####:    #####: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
    #####:    #####: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
    #####:    #####: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
    #####:    #####: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
    #####:    #####: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
    #####:    #####: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
    #####:    #####: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
        -:        -: 7208:/*EOF*/
    #####:    #####: 7209:/*EOF*/
    #####:    #####: 7210:/*EOF*/
    #####:    #####: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
    #####:    #####: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
    #####:    #####: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
    #####:    #####: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
        -:        -: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
    #####:    #####: 7225:/*EOF*/
    #####:    #####: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
    #####:    #####: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
    #####:    #####: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
    #####:    #####: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
        -:        -: 7240:/*EOF*/
    #####:    #####: 7241:/*EOF*/
    #####:    #####: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
    #####:    #####: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
    #####:    #####: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
    #####:    #####: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
    #####:    #####: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
    #####:    #####: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
    #####:    #####: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
    #####:    #####: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
    #####:    #####: 7265:/*EOF*/
        -:        -: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
        -:        -: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
    #####:    #####: 7271:/*EOF*/
    #####:    #####: 7272:/*EOF*/
    #####:    #####: 7273:/*EOF*/
        -:        -: 7274:/*EOF*/
    #####:    #####: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
    #####:    #####: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
    #####:    #####: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
    #####:    #####: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
    #####:    #####: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
    #####:    #####: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
    #####:    #####: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
    #####:    #####: 7303:/*EOF*/
    #####:    #####: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
    #####:    #####: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
    #####:    #####: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
    #####:    #####: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
        -:        -: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
    #####:    #####: 7316:/*EOF*/
        -:        -: 7317:/*EOF*/
        -:        -: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
    #####:    #####: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
        -:        -: 7332:/*EOF*/
    #####:    #####: 7333:/*EOF*/
    #####:    #####: 7334:/*EOF*/
    #####:    #####: 7335:/*EOF*/
        -:        -: 7336:/*EOF*/
    #####:    #####: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
    #####:    #####: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
        -:        -: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
        -:        -: 7348:/*EOF*/
    #####:    #####: 7349:/*EOF*/
    #####:    #####: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
    #####:    #####: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
    #####:    #####: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
    #####:    #####: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
    #####:    #####: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
        -:        -: 7368:/*EOF*/
    #####:    #####: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
    #####:    #####: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
    #####:    #####: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
        -:        -: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
        -:        -: 7380:/*EOF*/
    #####:    #####: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
    #####:    #####: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
    #####:    #####: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
        -:        -: 7393:/*EOF*/
        -:        -: 7394:/*EOF*/
    #####:    #####: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
        -:        -: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
        -:        -: 7400:/*EOF*/
    #####:    #####: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
    #####:    #####: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
        -:        -: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
    #####:    #####: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
    #####:    #####: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
    #####:    #####: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
    #####:    #####: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
        -:        -: 7426:/*EOF*/
    #####:    #####: 7427:/*EOF*/
    #####:    #####: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
    #####:    #####: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
    #####:    #####: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
    #####:    #####: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
    #####:    #####: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
    #####:    #####: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
    #####:    #####: 7451:/*EOF*/
        -:        -: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
    #####:    #####: 7457:/*EOF*/
    #####:    #####: 7458:/*EOF*/
    #####:    #####: 7459:/*EOF*/
        -:        -: 7460:/*EOF*/
    #####:    #####: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
    #####:    #####: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
        -:        -: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        -:        -: 7472:/*EOF*/
    #####:    #####: 7473:/*EOF*/
    #####:    #####: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
        -:        -: 7476:/*EOF*/
    #####:    #####: 7477:/*EOF*/
        -:        -: 7478:/*EOF*/
    #####:    #####: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
    #####:    #####: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
        -:        -: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
    #####:    #####: 7489:/*EOF*/
    #####:    #####: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
    #####:    #####: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
    #####:    #####: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
    #####:    #####: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
        -:        -: 7500:/*EOF*/
        -:        -: 7501:/*EOF*/
    #####:    #####: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
    #####:    #####: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
    #####:    #####: 7508:/*EOF*/
        -:        -: 7509:/*EOF*/
        -:        -: 7510:/*EOF*/
    #####:    #####: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
    #####:    #####: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
        -:        -: 7517:/*EOF*/
        -:        -: 7518:/*EOF*/
    #####:    #####: 7519:/*EOF*/
    #####:    #####: 7520:/*EOF*/
    #####:    #####: 7521:/*EOF*/
    #####:    #####: 7522:/*EOF*/
    #####:    #####: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
    #####:    #####: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
    #####:    #####: 7527:/*EOF*/
        -:        -: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
    #####:    #####: 7530:/*EOF*/
        -:        -: 7531:/*EOF*/
        -:        -: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
        -:        -: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
    #####:    #####: 7537:/*EOF*/
    #####:    #####: 7538:/*EOF*/
        -:        -: 7539:/*EOF*/
    #####:    #####: 7540:/*EOF*/
    #####:    #####: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
    #####:    #####: 7543:/*EOF*/
        -:        -: 7544:/*EOF*/
    #####:    #####: 7545:/*EOF*/
        -:        -: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
    #####:    #####: 7548:/*EOF*/
        -:        -: 7549:/*EOF*/
        -:        -: 7550:/*EOF*/
        -:        -: 7551:/*EOF*/
        -:        -: 7552:/*EOF*/
        -:        -: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
    #####:    #####: 7555:/*EOF*/
    #####:    #####: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
    #####:    #####: 7558:/*EOF*/
    #####:    #####: 7559:/*EOF*/
        -:        -: 7560:/*EOF*/
    #####:    #####: 7561:/*EOF*/
        -:        -: 7562:/*EOF*/
    #####:    #####: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
        -:        -: 7565:/*EOF*/
    #####:    #####: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
        -:        -: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
    #####:    #####: 7570:/*EOF*/
        -:        -: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
    #####:    #####: 7573:/*EOF*/
        -:        -: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
    #####:    #####: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
        -:        -: 7578:/*EOF*/
    #####:    #####: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
    #####:    #####: 7581:/*EOF*/
        -:        -: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
        -:        -: 7586:/*EOF*/
    #####:    #####: 7587:/*EOF*/
    #####:    #####: 7588:/*EOF*/
    #####:    #####: 7589:/*EOF*/
        -:        -: 7590:/*EOF*/
    #####:    #####: 7591:/*EOF*/
        -:        -: 7592:/*EOF*/
    #####:    #####: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
        -:        -: 7595:/*EOF*/
    #####:    #####: 7596:/*EOF*/
        -:        -: 7597:/*EOF*/
        -:        -: 7598:/*EOF*/
        -:        -: 7599:/*EOF*/
        -:        -: 7600:/*EOF*/
        -:        -: 7601:/*EOF*/
        -:        -: 7602:/*EOF*/
    #####:    #####: 7603:/*EOF*/
    #####:    #####: 7604:/*EOF*/
        -:        -: 7605:/*EOF*/
        -:        -: 7606:/*EOF*/
    #####:    #####: 7607:/*EOF*/
        -:        -: 7608:/*EOF*/
    #####:    #####: 7609:/*EOF*/
        -:        -: 7610:/*EOF*/
        -:        -: 7611:/*EOF*/
    #####:    #####: 7612:/*EOF*/
        -:        -: 7613:/*EOF*/
        -:        -: 7614:/*EOF*/
        -:        -: 7615:/*EOF*/
        -:        -: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
    #####:    #####: 7619:/*EOF*/
    #####:    #####: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
    #####:    #####: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
    #####:    #####: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
    #####:    #####: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
        -:        -: 7631:/*EOF*/
    #####:    #####: 7632:/*EOF*/
        -:        -: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
    #####:    #####: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
        -:        -: 7637:/*EOF*/
    #####:    #####: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
    #####:    #####: 7641:/*EOF*/
        -:        -: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
    #####:    #####: 7647:/*EOF*/
    #####:    #####: 7648:/*EOF*/
        -:        -: 7649:/*EOF*/
    #####:    #####: 7650:/*EOF*/
    #####:    #####: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
    #####:    #####: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
    #####:    #####: 7655:/*EOF*/
        -:        -: 7656:/*EOF*/
        -:        -: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
    #####:    #####: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
    #####:    #####: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
    #####:    #####: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
    #####:    #####: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
    #####:    #####: 7673:/*EOF*/
    #####:    #####: 7674:/*EOF*/
        -:        -: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
    #####:    #####: 7677:/*EOF*/
        -:        -: 7678:/*EOF*/
    #####:    #####: 7679:/*EOF*/
        -:        -: 7680:/*EOF*/
        -:        -: 7681:/*EOF*/
    #####:    #####: 7682:/*EOF*/
        -:        -: 7683:/*EOF*/
        -:        -: 7684:/*EOF*/
        -:        -: 7685:/*EOF*/
        -:        -: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
        -:        -: 7688:/*EOF*/
    #####:    #####: 7689:/*EOF*/
    #####:    #####: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
    #####:    #####: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
    #####:    #####: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
    #####:    #####: 7698:/*EOF*/
        -:        -: 7699:/*EOF*/
        -:        -: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
    #####:    #####: 7705:/*EOF*/
    #####:    #####: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
    #####:    #####: 7709:/*EOF*/
        -:        -: 7710:/*EOF*/
    #####:    #####: 7711:/*EOF*/
        -:        -: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
    #####:    #####: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
        -:        -: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
    #####:    #####: 7721:/*EOF*/
    #####:    #####: 7722:/*EOF*/
        -:        -: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
    #####:    #####: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
    #####:    #####: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
    #####:    #####: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
    #####:    #####: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
    #####:    #####: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
    #####:    #####: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
    #####:    #####: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
    #####:    #####: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
        -:        -: 7748:/*EOF*/
        -:        -: 7749:/*EOF*/
        -:        -: 7750:/*EOF*/
    #####:    #####: 7751:/*EOF*/
    #####:    #####: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
        -:        -: 7754:/*EOF*/
    #####:    #####: 7755:/*EOF*/
        -:        -: 7756:/*EOF*/
    #####:    #####: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
        -:        -: 7759:/*EOF*/
    #####:    #####: 7760:/*EOF*/
        -:        -: 7761:/*EOF*/
        -:        -: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
        -:        -: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
    #####:    #####: 7767:/*EOF*/
    #####:    #####: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
    #####:    #####: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
    #####:    #####: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
    #####:    #####: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
        -:        -: 7779:/*EOF*/
        -:        -: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
    #####:    #####: 7783:/*EOF*/
    #####:    #####: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
    #####:    #####: 7787:/*EOF*/
        -:        -: 7788:/*EOF*/
    #####:    #####: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
    #####:    #####: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
        -:        -: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
        -:        -: 7798:/*EOF*/
    #####:    #####: 7799:/*EOF*/
    #####:    #####: 7800:/*EOF*/
        -:        -: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
    #####:    #####: 7803:/*EOF*/
        -:        -: 7804:/*EOF*/
    #####:    #####: 7805:/*EOF*/
        -:        -: 7806:/*EOF*/
        -:        -: 7807:/*EOF*/
    #####:    #####: 7808:/*EOF*/
        -:        -: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
        -:        -: 7811:/*EOF*/
    #####:    #####: 7812:/*EOF*/
        -:        -: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
    #####:    #####: 7815:/*EOF*/
        -:        -: 7816:/*EOF*/
        -:        -: 7817:/*EOF*/
    #####:    #####: 7818:/*EOF*/
        -:        -: 7819:/*EOF*/
        -:        -: 7820:/*EOF*/
    #####:    #####: 7821:/*EOF*/
        -:        -: 7822:/*EOF*/
    #####:    #####: 7823:/*EOF*/
        -:        -: 7824:/*EOF*/
        -:        -: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
        -:        -: 7827:/*EOF*/
        -:        -: 7828:/*EOF*/
    #####:    #####: 7829:/*EOF*/
    #####:    #####: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
        -:        -: 7832:/*EOF*/
    #####:    #####: 7833:/*EOF*/
        -:        -: 7834:/*EOF*/
    #####:    #####: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
    #####:    #####: 7838:/*EOF*/
        -:        -: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
    #####:    #####: 7845:/*EOF*/
    #####:    #####: 7846:/*EOF*/
        -:        -: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
    #####:    #####: 7849:/*EOF*/
        -:        -: 7850:/*EOF*/
    #####:    #####: 7851:/*EOF*/
        -:        -: 7852:/*EOF*/
        -:        -: 7853:/*EOF*/
    #####:    #####: 7854:/*EOF*/
        -:        -: 7855:/*EOF*/
        -:        -: 7856:/*EOF*/
        -:        -: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
        -:        -: 7859:/*EOF*/
        -:        -: 7860:/*EOF*/
    #####:    #####: 7861:/*EOF*/
    #####:    #####: 7862:/*EOF*/
        -:        -: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
    #####:    #####: 7865:/*EOF*/
        -:        -: 7866:/*EOF*/
    #####:    #####: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
        -:        -: 7869:/*EOF*/
    #####:    #####: 7870:/*EOF*/
        -:        -: 7871:/*EOF*/
        -:        -: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
        -:        -: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
    #####:    #####: 7877:/*EOF*/
    #####:    #####: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
    #####:    #####: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
    #####:    #####: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
        -:        -: 7885:/*EOF*/
    #####:    #####: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
        -:        -: 7888:/*EOF*/
        -:        -: 7889:/*EOF*/
    #####:    #####: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
        -:        -: 7892:/*EOF*/
    #####:    #####: 7893:/*EOF*/
        -:        -: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
    #####:    #####: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
    #####:    #####: 7899:/*EOF*/
        -:        -: 7900:/*EOF*/
    #####:    #####: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
        -:        -: 7903:/*EOF*/
        -:        -: 7904:/*EOF*/
        -:        -: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
    #####:    #####: 7907:/*EOF*/
    #####:    #####: 7908:/*EOF*/
        -:        -: 7909:/*EOF*/
        -:        -: 7910:/*EOF*/
    #####:    #####: 7911:/*EOF*/
        -:        -: 7912:/*EOF*/
    #####:    #####: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
        -:        -: 7915:/*EOF*/
    #####:    #####: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
        -:        -: 7922:/*EOF*/
    #####:    #####: 7923:/*EOF*/
    #####:    #####: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
    #####:    #####: 7927:/*EOF*/
        -:        -: 7928:/*EOF*/
    #####:    #####: 7929:/*EOF*/
        -:        -: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
    #####:    #####: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
    #####:    #####: 7939:/*EOF*/
    #####:    #####: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
    #####:    #####: 7943:/*EOF*/
        -:        -: 7944:/*EOF*/
    #####:    #####: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
        -:        -: 7947:/*EOF*/
    #####:    #####: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
        -:        -: 7952:/*EOF*/
        -:        -: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
    #####:    #####: 7955:/*EOF*/
    #####:    #####: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
    #####:    #####: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
    #####:    #####: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
    #####:    #####: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
    #####:    #####: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
    #####:    #####: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
    #####:    #####: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
    #####:    #####: 7977:/*EOF*/
        -:        -: 7978:/*EOF*/
    #####:    #####: 7979:/*EOF*/
        -:        -: 7980:/*EOF*/
        -:        -: 7981:/*EOF*/
        -:        -: 7982:/*EOF*/
        -:        -: 7983:/*EOF*/
        -:        -: 7984:/*EOF*/
    #####:    #####: 7985:/*EOF*/
    #####:    #####: 7986:/*EOF*/
        -:        -: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
    #####:    #####: 7989:/*EOF*/
        -:        -: 7990:/*EOF*/
    #####:    #####: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
    #####:    #####: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
        -:        -: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
    #####:    #####: 8001:/*EOF*/
    #####:    #####: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
        -:        -: 8004:/*EOF*/
    #####:    #####: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
    #####:    #####: 8007:/*EOF*/
        -:        -: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
    #####:    #####: 8010:/*EOF*/
        -:        -: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
    #####:    #####: 8017:/*EOF*/
    #####:    #####: 8018:/*EOF*/
        -:        -: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
    #####:    #####: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
    #####:    #####: 8023:/*EOF*/
        -:        -: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
    #####:    #####: 8026:/*EOF*/
        -:        -: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
        -:        -: 8032:/*EOF*/
    #####:    #####: 8033:/*EOF*/
    #####:    #####: 8034:/*EOF*/
        -:        -: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
    #####:    #####: 8037:/*EOF*/
        -:        -: 8038:/*EOF*/
    #####:    #####: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
        -:        -: 8041:/*EOF*/
    #####:    #####: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
    #####:    #####: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
        -:        -: 8048:/*EOF*/
    #####:    #####: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
    #####:    #####: 8052:/*EOF*/
        -:        -: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
    #####:    #####: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
    #####:    #####: 8057:/*EOF*/
        -:        -: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
        -:        -: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
    #####:    #####: 8063:/*EOF*/
    #####:    #####: 8064:/*EOF*/
        -:        -: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
    #####:    #####: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
    #####:    #####: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
        -:        -: 8071:/*EOF*/
    #####:    #####: 8072:/*EOF*/
        -:        -: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
        -:        -: 8076:/*EOF*/
        -:        -: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
    #####:    #####: 8079:/*EOF*/
    #####:    #####: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
    #####:    #####: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
    #####:    #####: 8085:/*EOF*/
        -:        -: 8086:/*EOF*/
        -:        -: 8087:/*EOF*/
    #####:    #####: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
        -:        -: 8094:/*EOF*/
    #####:    #####: 8095:/*EOF*/
    #####:    #####: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
    #####:    #####: 8099:/*EOF*/
        -:        -: 8100:/*EOF*/
    #####:    #####: 8101:/*EOF*/
        -:        -: 8102:/*EOF*/
        -:        -: 8103:/*EOF*/
    #####:    #####: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
        -:        -: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
    #####:    #####: 8111:/*EOF*/
    #####:    #####: 8112:/*EOF*/
        -:        -: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
    #####:    #####: 8115:/*EOF*/
        -:        -: 8116:/*EOF*/
    #####:    #####: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
    #####:    #####: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
    #####:    #####: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
    #####:    #####: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
        -:        -: 8129:/*EOF*/
    #####:    #####: 8130:/*EOF*/
        -:        -: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
    #####:    #####: 8133:/*EOF*/
        -:        -: 8134:/*EOF*/
    #####:    #####: 8135:/*EOF*/
        -:        -: 8136:/*EOF*/
        -:        -: 8137:/*EOF*/
        -:        -: 8138:/*EOF*/
        -:        -: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
    #####:    #####: 8141:/*EOF*/
    #####:    #####: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
        -:        -: 8144:/*EOF*/
    #####:    #####: 8145:/*EOF*/
        -:        -: 8146:/*EOF*/
    #####:    #####: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
    #####:    #####: 8150:/*EOF*/
        -:        -: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
        -:        -: 8153:/*EOF*/
        -:        -: 8154:/*EOF*/
        -:        -: 8155:/*EOF*/
        -:        -: 8156:/*EOF*/
    #####:    #####: 8157:/*EOF*/
    #####:    #####: 8158:/*EOF*/
        -:        -: 8159:/*EOF*/
        -:        -: 8160:/*EOF*/
    #####:    #####: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
    #####:    #####: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
    #####:    #####: 8166:/*EOF*/
        -:        -: 8167:/*EOF*/
        -:        -: 8168:/*EOF*/
        -:        -: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
        -:        -: 8172:/*EOF*/
    #####:    #####: 8173:/*EOF*/
    #####:    #####: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
    #####:    #####: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
    #####:    #####: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
    #####:    #####: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
        -:        -: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
        -:        -: 8188:/*EOF*/
    #####:    #####: 8189:/*EOF*/
    #####:    #####: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
        -:        -: 8192:/*EOF*/
    #####:    #####: 8193:/*EOF*/
        -:        -: 8194:/*EOF*/
    #####:    #####: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
    #####:    #####: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
        -:        -: 8201:/*EOF*/
    #####:    #####: 8202:/*EOF*/
        -:        -: 8203:/*EOF*/
        -:        -: 8204:/*EOF*/
    #####:    #####: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
        -:        -: 8207:/*EOF*/
    #####:    #####: 8208:/*EOF*/
        -:        -: 8209:/*EOF*/
        -:        -: 8210:/*EOF*/
    #####:    #####: 8211:/*EOF*/
        -:        -: 8212:/*EOF*/
    #####:    #####: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
        -:        -: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
    #####:    #####: 8219:/*EOF*/
    #####:    #####: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
    #####:    #####: 8223:/*EOF*/
        -:        -: 8224:/*EOF*/
    #####:    #####: 8225:/*EOF*/
        -:        -: 8226:/*EOF*/
        -:        -: 8227:/*EOF*/
    #####:    #####: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        -:        -: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
        -:        -: 8234:/*EOF*/
    #####:    #####: 8235:/*EOF*/
    #####:    #####: 8236:/*EOF*/
        -:        -: 8237:/*EOF*/
        -:        -: 8238:/*EOF*/
    #####:    #####: 8239:/*EOF*/
        -:        -: 8240:/*EOF*/
    #####:    #####: 8241:/*EOF*/
        -:        -: 8242:/*EOF*/
        -:        -: 8243:/*EOF*/
    #####:    #####: 8244:/*EOF*/
        -:        -: 8245:/*EOF*/
        -:        -: 8246:/*EOF*/
        -:        -: 8247:/*EOF*/
        -:        -: 8248:/*EOF*/
        -:        -: 8249:/*EOF*/
        -:        -: 8250:/*EOF*/
    #####:    #####: 8251:/*EOF*/
    #####:    #####: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
    #####:    #####: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
    #####:    #####: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
    #####:    #####: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
    #####:    #####: 8267:/*EOF*/
    #####:    #####: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
    #####:    #####: 8271:/*EOF*/
        -:        -: 8272:/*EOF*/
    #####:    #####: 8273:/*EOF*/
        -:        -: 8274:/*EOF*/
        -:        -: 8275:/*EOF*/
    #####:    #####: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
        -:        -: 8278:/*EOF*/
        -:        -: 8279:/*EOF*/
    #####:    #####: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
        -:        -: 8282:/*EOF*/
    #####:    #####: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
    #####:    #####: 8286:/*EOF*/
        -:        -: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
    #####:    #####: 8289:/*EOF*/
        -:        -: 8290:/*EOF*/
    #####:    #####: 8291:/*EOF*/
        -:        -: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
        -:        -: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
    #####:    #####: 8297:/*EOF*/
    #####:    #####: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
        -:        -: 8300:/*EOF*/
    #####:    #####: 8301:/*EOF*/
        -:        -: 8302:/*EOF*/
    #####:    #####: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
    #####:    #####: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        -:        -: 8312:/*EOF*/
    #####:    #####: 8313:/*EOF*/
    #####:    #####: 8314:/*EOF*/
        -:        -: 8315:/*EOF*/
        -:        -: 8316:/*EOF*/
    #####:    #####: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
    #####:    #####: 8319:/*EOF*/
        -:        -: 8320:/*EOF*/
        -:        -: 8321:/*EOF*/
    #####:    #####: 8322:/*EOF*/
        -:        -: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
        -:        -: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
    #####:    #####: 8329:/*EOF*/
    #####:    #####: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        -:        -: 8332:/*EOF*/
    #####:    #####: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
    #####:    #####: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
    #####:    #####: 8338:/*EOF*/
        -:        -: 8339:/*EOF*/
        -:        -: 8340:/*EOF*/
        -:        -: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
    #####:    #####: 8345:/*EOF*/
    #####:    #####: 8346:/*EOF*/
        -:        -: 8347:/*EOF*/
        -:        -: 8348:/*EOF*/
    #####:    #####: 8349:/*EOF*/
        -:        -: 8350:/*EOF*/
    #####:    #####: 8351:/*EOF*/
        -:        -: 8352:/*EOF*/
        -:        -: 8353:/*EOF*/
    #####:    #####: 8354:/*EOF*/
        -:        -: 8355:/*EOF*/
        -:        -: 8356:/*EOF*/
        -:        -: 8357:/*EOF*/
    #####:    #####: 8358:/*EOF*/
        -:        -: 8359:/*EOF*/
        -:        -: 8360:/*EOF*/
    #####:    #####: 8361:/*EOF*/
        -:        -: 8362:/*EOF*/
        -:        -: 8363:/*EOF*/
       52:       20: 8364:/*EOF*/
        -:        -: 8365:/*EOF*/
        -:        -: 8366:/*EOF*/
       52:       20: 8367:/*EOF*/
        -:        -: 8368:/*EOF*/
       52:       20: 8369:/*EOF*/
        -:        -: 8370:/*EOF*/
        -:        -: 8371:/*EOF*/
        -:        -: 8372:/*EOF*/
        -:        -: 8373:/*EOF*/
        -:        -: 8374:/*EOF*/
    #####:    #####: 8375:/*EOF*/
    #####:    #####: 8376:/*EOF*/
        -:        -: 8377:/*EOF*/
    #####:    #####: 8378:/*EOF*/
    #####:    #####: 8379:/*EOF*/
        -:        -: 8380:/*EOF*/
    #####:    #####: 8381:/*EOF*/
        -:        -: 8382:/*EOF*/
    #####:    #####: 8383:/*EOF*/
        -:        -: 8384:/*EOF*/
        -:        -: 8385:/*EOF*/
    #####:    #####: 8386:/*EOF*/
        -:        -: 8387:/*EOF*/
        -:        -: 8388:/*EOF*/
        -:        -: 8389:/*EOF*/
        -:        -: 8390:/*EOF*/
        -:        -: 8391:/*EOF*/
        -:        -: 8392:/*EOF*/
    #####:    #####: 8393:/*EOF*/
    #####:    #####: 8394:/*EOF*/
        -:        -: 8395:/*EOF*/
    #####:    #####: 8396:/*EOF*/
    #####:    #####: 8397:/*EOF*/
        -:        -: 8398:/*EOF*/
    #####:    #####: 8399:/*EOF*/
        -:        -: 8400:/*EOF*/
    #####:    #####: 8401:/*EOF*/
        -:        -: 8402:/*EOF*/
        -:        -: 8403:/*EOF*/
    #####:    #####: 8404:/*EOF*/
        -:        -: 8405:/*EOF*/
        -:        -: 8406:/*EOF*/
        -:        -: 8407:/*EOF*/
        -:        -: 8408:/*EOF*/
        -:        -: 8409:/*EOF*/
        -:        -: 8410:/*EOF*/
      104:       40: 8411:/*EOF*/
       52:       20: 8412:/*EOF*/
        -:        -: 8413:/*EOF*/
       52:       20: 8414:/*EOF*/
       52:       20: 8415:/*EOF*/
        -:        -: 8416:/*EOF*/
       52:       20: 8417:/*EOF*/
        -:        -: 8418:/*EOF*/
       52:       20: 8419:/*EOF*/
        -:        -: 8420:/*EOF*/
        -:        -: 8421:/*EOF*/
       52:       20: 8422:/*EOF*/
        -:        -: 8423:/*EOF*/
        -:        -: 8424:/*EOF*/
        -:        -: 8425:/*EOF*/
        -:        -: 8426:/*EOF*/
        -:        -: 8427:/*EOF*/
        -:        -: 8428:/*EOF*/
    #####:    #####: 8429:/*EOF*/
    #####:    #####: 8430:/*EOF*/
        -:        -: 8431:/*EOF*/
    #####:    #####: 8432:/*EOF*/
    #####:    #####: 8433:/*EOF*/
        -:        -: 8434:/*EOF*/
    #####:    #####: 8435:/*EOF*/
        -:        -: 8436:/*EOF*/
    #####:    #####: 8437:/*EOF*/
        -:        -: 8438:/*EOF*/
        -:        -: 8439:/*EOF*/
    #####:    #####: 8440:/*EOF*/
        -:        -: 8441:/*EOF*/
        -:        -: 8442:/*EOF*/
        -:        -: 8443:/*EOF*/
    #####:    #####: 8444:/*EOF*/
        -:        -: 8445:/*EOF*/
        -:        -: 8446:/*EOF*/
       52:       20: 8447:/*EOF*/
        -:        -: 8448:/*EOF*/
        -:        -: 8449:/*EOF*/
    #####:    #####: 8450:/*EOF*/
        -:        -: 8451:/*EOF*/
        -:        -: 8452:/*EOF*/
    #####:    #####: 8453:/*EOF*/
        -:        -: 8454:/*EOF*/
    #####:    #####: 8455:/*EOF*/
        -:        -: 8456:/*EOF*/
        -:        -: 8457:/*EOF*/
        -:        -: 8458:/*EOF*/
        -:        -: 8459:/*EOF*/
        -:        -: 8460:/*EOF*/
    #####:    #####: 8461:/*EOF*/
    #####:    #####: 8462:/*EOF*/
        -:        -: 8463:/*EOF*/
    #####:    #####: 8464:/*EOF*/
    #####:    #####: 8465:/*EOF*/
        -:        -: 8466:/*EOF*/
    #####:    #####: 8467:/*EOF*/
        -:        -: 8468:/*EOF*/
    #####:    #####: 8469:/*EOF*/
        -:        -: 8470:/*EOF*/
        -:        -: 8471:/*EOF*/
    #####:    #####: 8472:/*EOF*/
        -:        -: 8473:/*EOF*/
        -:        -: 8474:/*EOF*/
        -:        -: 8475:/*EOF*/
        -:        -: 8476:/*EOF*/
        -:        -: 8477:/*EOF*/
        -:        -: 8478:/*EOF*/
    #####:    #####: 8479:/*EOF*/
    #####:    #####: 8480:/*EOF*/
        -:        -: 8481:/*EOF*/
    #####:    #####: 8482:/*EOF*/
    #####:    #####: 8483:/*EOF*/
        -:        -: 8484:/*EOF*/
    #####:    #####: 8485:/*EOF*/
        -:        -: 8486:/*EOF*/
    #####:    #####: 8487:/*EOF*/
        -:        -: 8488:/*EOF*/
        -:        -: 8489:/*EOF*/
    #####:    #####: 8490:/*EOF*/
        -:        -: 8491:/*EOF*/
        -:        -: 8492:/*EOF*/
        -:        -: 8493:/*EOF*/
        -:        -: 8494:/*EOF*/
        -:        -: 8495:/*EOF*/
        -:        -: 8496:/*EOF*/
    #####:    #####: 8497:/*EOF*/
    #####:    #####: 8498:/*EOF*/
        -:        -: 8499:/*EOF*/
    #####:    #####: 8500:/*EOF*/
    #####:    #####: 8501:/*EOF*/
        -:        -: 8502:/*EOF*/
    #####:    #####: 8503:/*EOF*/
        -:        -: 8504:/*EOF*/
    #####:    #####: 8505:/*EOF*/
        -:        -: 8506:/*EOF*/
        -:        -: 8507:/*EOF*/
    #####:    #####: 8508:/*EOF*/
        -:        -: 8509:/*EOF*/
        -:        -: 8510:/*EOF*/
        -:        -: 8511:/*EOF*/
        -:        -: 8512:/*EOF*/
        -:        -: 8513:/*EOF*/
        -:        -: 8514:/*EOF*/
    #####:    #####: 8515:/*EOF*/
    #####:    #####: 8516:/*EOF*/
        -:        -: 8517:/*EOF*/
    #####:    #####: 8518:/*EOF*/
    #####:    #####: 8519:/*EOF*/
        -:        -: 8520:/*EOF*/
    #####:    #####: 8521:/*EOF*/
        -:        -: 8522:/*EOF*/
    #####:    #####: 8523:/*EOF*/
        -:        -: 8524:/*EOF*/
        -:        -: 8525:/*EOF*/
    #####:    #####: 8526:/*EOF*/
        -:        -: 8527:/*EOF*/
        -:        -: 8528:/*EOF*/
        -:        -: 8529:/*EOF*/
    #####:    #####: 8530:/*EOF*/
        -:        -: 8531:/*EOF*/
        -:        -: 8532:/*EOF*/
    #####:    #####: 8533:/*EOF*/
        -:        -: 8534:/*EOF*/
        -:        -: 8535:/*EOF*/
    #####:    #####: 8536:/*EOF*/
        -:        -: 8537:/*EOF*/
        -:        -: 8538:/*EOF*/
    #####:    #####: 8539:/*EOF*/
        -:        -: 8540:/*EOF*/
        -:        -: 8541:/*EOF*/
        -:        -: 8542:/*EOF*/
        -:        -: 8543:/*EOF*/
        -:        -: 8544:/*EOF*/
    #####:    #####: 8545:/*EOF*/
    #####:    #####: 8546:/*EOF*/
        -:        -: 8547:/*EOF*/
    #####:    #####: 8548:/*EOF*/
    #####:    #####: 8549:/*EOF*/
    #####:    #####: 8550:/*EOF*/
    #####:    #####: 8551:/*EOF*/
        -:        -: 8552:/*EOF*/
        -:        -: 8553:/*EOF*/
        -:        -: 8554:/*EOF*/
        -:        -: 8555:/*EOF*/
    #####:    #####: 8556:/*EOF*/
    #####:    #####: 8557:/*EOF*/
    #####:    #####: 8558:/*EOF*/
    #####:    #####: 8559:/*EOF*/
    #####:    #####: 8560:/*EOF*/
    #####:    #####: 8561:/*EOF*/
    #####:    #####: 8562:/*EOF*/
    #####:    #####: 8563:/*EOF*/
        -:        -: 8564:/*EOF*/
    #####:    #####: 8565:/*EOF*/
        -:        -: 8566:/*EOF*/
        -:        -: 8567:/*EOF*/
        -:        -: 8568:/*EOF*/
    #####:    #####: 8569:/*EOF*/
        -:        -: 8570:/*EOF*/
        -:        -: 8571:/*EOF*/
        -:        -: 8572:/*EOF*/
    #####:    #####: 8573:/*EOF*/
        -:        -: 8574:/*EOF*/
        -:        -: 8575:/*EOF*/
    #####:    #####: 8576:/*EOF*/
        -:        -: 8577:/*EOF*/
        -:        -: 8578:/*EOF*/
    #####:    #####: 8579:/*EOF*/
        -:        -: 8580:/*EOF*/
        -:        -: 8581:/*EOF*/
        -:        -: 8582:/*EOF*/
        -:        -: 8583:/*EOF*/
        -:        -: 8584:/*EOF*/
    #####:    #####: 8585:/*EOF*/
    #####:    #####: 8586:/*EOF*/
        -:        -: 8587:/*EOF*/
    #####:    #####: 8588:/*EOF*/
    #####:    #####: 8589:/*EOF*/
    #####:    #####: 8590:/*EOF*/
    #####:    #####: 8591:/*EOF*/
        -:        -: 8592:/*EOF*/
        -:        -: 8593:/*EOF*/
        -:        -: 8594:/*EOF*/
        -:        -: 8595:/*EOF*/
    #####:    #####: 8596:/*EOF*/
    #####:    #####: 8597:/*EOF*/
    #####:    #####: 8598:/*EOF*/
    #####:    #####: 8599:/*EOF*/
    #####:    #####: 8600:/*EOF*/
    #####:    #####: 8601:/*EOF*/
        -:        -: 8602:/*EOF*/
    #####:    #####: 8603:/*EOF*/
        -:        -: 8604:/*EOF*/
        -:        -: 8605:/*EOF*/
        -:        -: 8606:/*EOF*/
    #####:    #####: 8607:/*EOF*/
        -:        -: 8608:/*EOF*/
        -:        -: 8609:/*EOF*/
        -:        -: 8610:/*EOF*/
    #####:    #####: 8611:/*EOF*/
        -:        -: 8612:/*EOF*/
        -:        -: 8613:/*EOF*/
    #####:    #####: 8614:/*EOF*/
        -:        -: 8615:/*EOF*/
        -:        -: 8616:/*EOF*/
    #####:    #####: 8617:/*EOF*/
        -:        -: 8618:/*EOF*/
    #####:    #####: 8619:/*EOF*/
        -:        -: 8620:/*EOF*/
        -:        -: 8621:/*EOF*/
        -:        -: 8622:/*EOF*/
        -:        -: 8623:/*EOF*/
        -:        -: 8624:/*EOF*/
    #####:    #####: 8625:/*EOF*/
    #####:    #####: 8626:/*EOF*/
        -:        -: 8627:/*EOF*/
    #####:    #####: 8628:/*EOF*/
    #####:    #####: 8629:/*EOF*/
        -:        -: 8630:/*EOF*/
    #####:    #####: 8631:/*EOF*/
        -:        -: 8632:/*EOF*/
    #####:    #####: 8633:/*EOF*/
        -:        -: 8634:/*EOF*/
        -:        -: 8635:/*EOF*/
    #####:    #####: 8636:/*EOF*/
        -:        -: 8637:/*EOF*/
        -:        -: 8638:/*EOF*/
        -:        -: 8639:/*EOF*/
        -:        -: 8640:/*EOF*/
        -:        -: 8641:/*EOF*/
        -:        -: 8642:/*EOF*/
    #####:    #####: 8643:/*EOF*/
    #####:    #####: 8644:/*EOF*/
        -:        -: 8645:/*EOF*/
    #####:    #####: 8646:/*EOF*/
    #####:    #####: 8647:/*EOF*/
        -:        -: 8648:/*EOF*/
    #####:    #####: 8649:/*EOF*/
        -:        -: 8650:/*EOF*/
    #####:    #####: 8651:/*EOF*/
        -:        -: 8652:/*EOF*/
        -:        -: 8653:/*EOF*/
    #####:    #####: 8654:/*EOF*/
        -:        -: 8655:/*EOF*/
        -:        -: 8656:/*EOF*/
        -:        -: 8657:/*EOF*/
        -:        -: 8658:/*EOF*/
        -:        -: 8659:/*EOF*/
        -:        -: 8660:/*EOF*/
    #####:    #####: 8661:/*EOF*/
    #####:    #####: 8662:/*EOF*/
        -:        -: 8663:/*EOF*/
    #####:    #####: 8664:/*EOF*/
    #####:    #####: 8665:/*EOF*/
        -:        -: 8666:/*EOF*/
    #####:    #####: 8667:/*EOF*/
        -:        -: 8668:/*EOF*/
    #####:    #####: 8669:/*EOF*/
        -:        -: 8670:/*EOF*/
        -:        -: 8671:/*EOF*/
    #####:    #####: 8672:/*EOF*/
        -:        -: 8673:/*EOF*/
        -:        -: 8674:/*EOF*/
        -:        -: 8675:/*EOF*/
        -:        -: 8676:/*EOF*/
        -:        -: 8677:/*EOF*/
        -:        -: 8678:/*EOF*/
    #####:    #####: 8679:/*EOF*/
    #####:    #####: 8680:/*EOF*/
        -:        -: 8681:/*EOF*/
    #####:    #####: 8682:/*EOF*/
    #####:    #####: 8683:/*EOF*/
        -:        -: 8684:/*EOF*/
    #####:    #####: 8685:/*EOF*/
        -:        -: 8686:/*EOF*/
    #####:    #####: 8687:/*EOF*/
        -:        -: 8688:/*EOF*/
        -:        -: 8689:/*EOF*/
    #####:    #####: 8690:/*EOF*/
        -:        -: 8691:/*EOF*/
        -:        -: 8692:/*EOF*/
        -:        -: 8693:/*EOF*/
    #####:    #####: 8694:/*EOF*/
        -:        -: 8695:/*EOF*/
        -:        -: 8696:/*EOF*/
    #####:    #####: 8697:/*EOF*/
        -:        -: 8698:/*EOF*/
        -:        -: 8699:/*EOF*/
       11:       11: 8700:/*EOF*/
        -:        -: 8701:/*EOF*/
        -:        -: 8702:/*EOF*/
       11:       11: 8703:/*EOF*/
        -:        -: 8704:/*EOF*/
       11:       11: 8705:/*EOF*/
        -:        -: 8706:/*EOF*/
        -:        -: 8707:/*EOF*/
        -:        -: 8708:/*EOF*/
        -:        -: 8709:/*EOF*/
        -:        -: 8710:/*EOF*/
    #####:    #####: 8711:/*EOF*/
    #####:    #####: 8712:/*EOF*/
        -:        -: 8713:/*EOF*/
    #####:    #####: 8714:/*EOF*/
    #####:    #####: 8715:/*EOF*/
        -:        -: 8716:/*EOF*/
    #####:    #####: 8717:/*EOF*/
        -:        -: 8718:/*EOF*/
    #####:    #####: 8719:/*EOF*/
        -:        -: 8720:/*EOF*/
        -:        -: 8721:/*EOF*/
    #####:    #####: 8722:/*EOF*/
        -:        -: 8723:/*EOF*/
        -:        -: 8724:/*EOF*/
        -:        -: 8725:/*EOF*/
        -:        -: 8726:/*EOF*/
        -:        -: 8727:/*EOF*/
        -:        -: 8728:/*EOF*/
    #####:    #####: 8729:/*EOF*/
    #####:    #####: 8730:/*EOF*/
        -:        -: 8731:/*EOF*/
    #####:    #####: 8732:/*EOF*/
    #####:    #####: 8733:/*EOF*/
        -:        -: 8734:/*EOF*/
    #####:    #####: 8735:/*EOF*/
        -:        -: 8736:/*EOF*/
    #####:    #####: 8737:/*EOF*/
        -:        -: 8738:/*EOF*/
        -:        -: 8739:/*EOF*/
    #####:    #####: 8740:/*EOF*/
        -:        -: 8741:/*EOF*/
        -:        -: 8742:/*EOF*/
        -:        -: 8743:/*EOF*/
        -:        -: 8744:/*EOF*/
        -:        -: 8745:/*EOF*/
        -:        -: 8746:/*EOF*/
       22:       22: 8747:/*EOF*/
       11:       11: 8748:/*EOF*/
        -:        -: 8749:/*EOF*/
       11:       11: 8750:/*EOF*/
       11:       11: 8751:/*EOF*/
        -:        -: 8752:/*EOF*/
       11:       11: 8753:/*EOF*/
        -:        -: 8754:/*EOF*/
       11:       11: 8755:/*EOF*/
        -:        -: 8756:/*EOF*/
        -:        -: 8757:/*EOF*/
       11:       11: 8758:/*EOF*/
        -:        -: 8759:/*EOF*/
        -:        -: 8760:/*EOF*/
        -:        -: 8761:/*EOF*/
        -:        -: 8762:/*EOF*/
        -:        -: 8763:/*EOF*/
        -:        -: 8764:/*EOF*/
    #####:    #####: 8765:/*EOF*/
    #####:    #####: 8766:/*EOF*/
        -:        -: 8767:/*EOF*/
    #####:    #####: 8768:/*EOF*/
    #####:    #####: 8769:/*EOF*/
        -:        -: 8770:/*EOF*/
    #####:    #####: 8771:/*EOF*/
        -:        -: 8772:/*EOF*/
    #####:    #####: 8773:/*EOF*/
        -:        -: 8774:/*EOF*/
        -:        -: 8775:/*EOF*/
    #####:    #####: 8776:/*EOF*/
        -:        -: 8777:/*EOF*/
        -:        -: 8778:/*EOF*/
        -:        -: 8779:/*EOF*/
    #####:    #####: 8780:/*EOF*/
        -:        -: 8781:/*EOF*/
        -:        -: 8782:/*EOF*/
       11:       11: 8783:/*EOF*/
        -:        -: 8784:/*EOF*/
        -:        -: 8785:/*EOF*/
    #####:    #####: 8786:/*EOF*/
        -:        -: 8787:/*EOF*/
        -:        -: 8788:/*EOF*/
    #####:    #####: 8789:/*EOF*/
        -:        -: 8790:/*EOF*/
        -:        -: 8791:/*EOF*/
        -:        -: 8792:/*EOF*/
        -:        -: 8793:/*EOF*/
        -:        -: 8794:/*EOF*/
    #####:    #####: 8795:/*EOF*/
    #####:    #####: 8796:/*EOF*/
        -:        -: 8797:/*EOF*/
        -:        -: 8798:/*EOF*/
        -:        -: 8799:/*EOF*/
        -:        -: 8800:/*EOF*/
        -:        -: 8801:/*EOF*/
    #####:    #####: 8802:/*EOF*/
    #####:    #####: 8803:/*EOF*/
        -:        -: 8804:/*EOF*/
        -:        -: 8805:/*EOF*/
        -:        -: 8806:/*EOF*/
    #####:    #####: 8807:/*EOF*/
    #####:    #####: 8808:/*EOF*/
    #####:    #####: 8809:/*EOF*/
    #####:    #####: 8810:/*EOF*/
        -:        -: 8811:/*EOF*/
        -:        -: 8812:/*EOF*/
        -:        -: 8813:/*EOF*/
        -:        -: 8814:/*EOF*/
    #####:    #####: 8815:/*EOF*/
        -:        -: 8816:/*EOF*/
        -:        -: 8817:/*EOF*/
        -:        -: 8818:/*EOF*/
    #####:    #####: 8819:/*EOF*/
        -:        -: 8820:/*EOF*/
        -:        -: 8821:/*EOF*/
       34:        2: 8822:/*EOF*/
        -:        -: 8823:/*EOF*/
        -:        -: 8824:/*EOF*/
       34:        2: 8825:/*EOF*/
        -:        -: 8826:/*EOF*/
       34:        2: 8827:/*EOF*/
        -:        -: 8828:/*EOF*/
        -:        -: 8829:/*EOF*/
        -:        -: 8830:/*EOF*/
        -:        -: 8831:/*EOF*/
        -:        -: 8832:/*EOF*/
    #####:    #####: 8833:/*EOF*/
    #####:    #####: 8834:/*EOF*/
        -:        -: 8835:/*EOF*/
    #####:    #####: 8836:/*EOF*/
    #####:    #####: 8837:/*EOF*/
        -:        -: 8838:/*EOF*/
    #####:    #####: 8839:/*EOF*/
        -:        -: 8840:/*EOF*/
    #####:    #####: 8841:/*EOF*/
        -:        -: 8842:/*EOF*/
        -:        -: 8843:/*EOF*/
    #####:    #####: 8844:/*EOF*/
        -:        -: 8845:/*EOF*/
        -:        -: 8846:/*EOF*/
        -:        -: 8847:/*EOF*/
        -:        -: 8848:/*EOF*/
        -:        -: 8849:/*EOF*/
        -:        -: 8850:/*EOF*/
    #####:    #####: 8851:/*EOF*/
    #####:    #####: 8852:/*EOF*/
        -:        -: 8853:/*EOF*/
    #####:    #####: 8854:/*EOF*/
    #####:    #####: 8855:/*EOF*/
        -:        -: 8856:/*EOF*/
    #####:    #####: 8857:/*EOF*/
        -:        -: 8858:/*EOF*/
    #####:    #####: 8859:/*EOF*/
        -:        -: 8860:/*EOF*/
        -:        -: 8861:/*EOF*/
    #####:    #####: 8862:/*EOF*/
        -:        -: 8863:/*EOF*/
        -:        -: 8864:/*EOF*/
        -:        -: 8865:/*EOF*/
        -:        -: 8866:/*EOF*/
        -:        -: 8867:/*EOF*/
        -:        -: 8868:/*EOF*/
       68:        4: 8869:/*EOF*/
       34:        2: 8870:/*EOF*/
        -:        -: 8871:/*EOF*/
       34:        2: 8872:/*EOF*/
       34:        2: 8873:/*EOF*/
        -:        -: 8874:/*EOF*/
       34:        2: 8875:/*EOF*/
        -:        -: 8876:/*EOF*/
       34:        2: 8877:/*EOF*/
        -:        -: 8878:/*EOF*/
        -:        -: 8879:/*EOF*/
       34:        2: 8880:/*EOF*/
        -:        -: 8881:/*EOF*/
        -:        -: 8882:/*EOF*/
        -:        -: 8883:/*EOF*/
        -:        -: 8884:/*EOF*/
        -:        -: 8885:/*EOF*/
        -:        -: 8886:/*EOF*/
    #####:    #####: 8887:/*EOF*/
    #####:    #####: 8888:/*EOF*/
        -:        -: 8889:/*EOF*/
    #####:    #####: 8890:/*EOF*/
    #####:    #####: 8891:/*EOF*/
        -:        -: 8892:/*EOF*/
    #####:    #####: 8893:/*EOF*/
        -:        -: 8894:/*EOF*/
    #####:    #####: 8895:/*EOF*/
        -:        -: 8896:/*EOF*/
        -:        -: 8897:/*EOF*/
    #####:    #####: 8898:/*EOF*/
        -:        -: 8899:/*EOF*/
        -:        -: 8900:/*EOF*/
        -:        -: 8901:/*EOF*/
    #####:    #####: 8902:/*EOF*/
        -:        -: 8903:/*EOF*/
        -:        -: 8904:/*EOF*/
       34:        2: 8905:/*EOF*/
        -:        -: 8906:/*EOF*/
        -:        -: 8907:/*EOF*/
    #####:    #####: 8908:/*EOF*/
        -:        -: 8909:/*EOF*/
        -:        -: 8910:/*EOF*/
    #####:    #####: 8911:/*EOF*/
        -:        -: 8912:/*EOF*/
    #####:    #####: 8913:/*EOF*/
        -:        -: 8914:/*EOF*/
        -:        -: 8915:/*EOF*/
        -:        -: 8916:/*EOF*/
        -:        -: 8917:/*EOF*/
        -:        -: 8918:/*EOF*/
    #####:    #####: 8919:/*EOF*/
    #####:    #####: 8920:/*EOF*/
        -:        -: 8921:/*EOF*/
    #####:    #####: 8922:/*EOF*/
    #####:    #####: 8923:/*EOF*/
        -:        -: 8924:/*EOF*/
    #####:    #####: 8925:/*EOF*/
        -:        -: 8926:/*EOF*/
    #####:    #####: 8927:/*EOF*/
        -:        -: 8928:/*EOF*/
        -:        -: 8929:/*EOF*/
    #####:    #####: 8930:/*EOF*/
        -:        -: 8931:/*EOF*/
        -:        -: 8932:/*EOF*/
        -:        -: 8933:/*EOF*/
        -:        -: 8934:/*EOF*/
        -:        -: 8935:/*EOF*/
        -:        -: 8936:/*EOF*/
    #####:    #####: 8937:/*EOF*/
    #####:    #####: 8938:/*EOF*/
        -:        -: 8939:/*EOF*/
    #####:    #####: 8940:/*EOF*/
    #####:    #####: 8941:/*EOF*/
        -:        -: 8942:/*EOF*/
    #####:    #####: 8943:/*EOF*/
        -:        -: 8944:/*EOF*/
    #####:    #####: 8945:/*EOF*/
        -:        -: 8946:/*EOF*/
        -:        -: 8947:/*EOF*/
    #####:    #####: 8948:/*EOF*/
        -:        -: 8949:/*EOF*/
        -:        -: 8950:/*EOF*/
        -:        -: 8951:/*EOF*/
        -:        -: 8952:/*EOF*/
        -:        -: 8953:/*EOF*/
        -:        -: 8954:/*EOF*/
    #####:    #####: 8955:/*EOF*/
    #####:    #####: 8956:/*EOF*/
        -:        -: 8957:/*EOF*/
    #####:    #####: 8958:/*EOF*/
    #####:    #####: 8959:/*EOF*/
        -:        -: 8960:/*EOF*/
    #####:    #####: 8961:/*EOF*/
        -:        -: 8962:/*EOF*/
    #####:    #####: 8963:/*EOF*/
        -:        -: 8964:/*EOF*/
        -:        -: 8965:/*EOF*/
    #####:    #####: 8966:/*EOF*/
        -:        -: 8967:/*EOF*/
        -:        -: 8968:/*EOF*/
        -:        -: 8969:/*EOF*/
        -:        -: 8970:/*EOF*/
        -:        -: 8971:/*EOF*/
        -:        -: 8972:/*EOF*/
    #####:    #####: 8973:/*EOF*/
    #####:    #####: 8974:/*EOF*/
        -:        -: 8975:/*EOF*/
    #####:    #####: 8976:/*EOF*/
    #####:    #####: 8977:/*EOF*/
        -:        -: 8978:/*EOF*/
    #####:    #####: 8979:/*EOF*/
        -:        -: 8980:/*EOF*/
    #####:    #####: 8981:/*EOF*/
        -:        -: 8982:/*EOF*/
        -:        -: 8983:/*EOF*/
    #####:    #####: 8984:/*EOF*/
        -:        -: 8985:/*EOF*/
        -:        -: 8986:/*EOF*/
        -:        -: 8987:/*EOF*/
    #####:    #####: 8988:/*EOF*/
        -:        -: 8989:/*EOF*/
        -:        -: 8990:/*EOF*/
    #####:    #####: 8991:/*EOF*/
        -:        -: 8992:/*EOF*/
        -:        -: 8993:/*EOF*/
    #####:    #####: 8994:/*EOF*/
        -:        -: 8995:/*EOF*/
        -:        -: 8996:/*EOF*/
    #####:    #####: 8997:/*EOF*/
        -:        -: 8998:/*EOF*/
    #####:    #####: 8999:/*EOF*/
        -:        -: 9000:/*EOF*/
        -:        -: 9001:/*EOF*/
        -:        -: 9002:/*EOF*/
        -:        -: 9003:/*EOF*/
        -:        -: 9004:/*EOF*/
    #####:    #####: 9005:/*EOF*/
    #####:    #####: 9006:/*EOF*/
        -:        -: 9007:/*EOF*/
    #####:    #####: 9008:/*EOF*/
    #####:    #####: 9009:/*EOF*/
        -:        -: 9010:/*EOF*/
    #####:    #####: 9011:/*EOF*/
        -:        -: 9012:/*EOF*/
    #####:    #####: 9013:/*EOF*/
        -:        -: 9014:/*EOF*/
        -:        -: 9015:/*EOF*/
    #####:    #####: 9016:/*EOF*/
        -:        -: 9017:/*EOF*/
        -:        -: 9018:/*EOF*/
        -:        -: 9019:/*EOF*/
        -:        -: 9020:/*EOF*/
        -:        -: 9021:/*EOF*/
        -:        -: 9022:/*EOF*/
    #####:    #####: 9023:/*EOF*/
    #####:    #####: 9024:/*EOF*/
        -:        -: 9025:/*EOF*/
    #####:    #####: 9026:/*EOF*/
    #####:    #####: 9027:/*EOF*/
        -:        -: 9028:/*EOF*/
    #####:    #####: 9029:/*EOF*/
        -:        -: 9030:/*EOF*/
    #####:    #####: 9031:/*EOF*/
        -:        -: 9032:/*EOF*/
        -:        -: 9033:/*EOF*/
    #####:    #####: 9034:/*EOF*/
        -:        -: 9035:/*EOF*/
        -:        -: 9036:/*EOF*/
        -:        -: 9037:/*EOF*/
        -:        -: 9038:/*EOF*/
        -:        -: 9039:/*EOF*/
        -:        -: 9040:/*EOF*/
    #####:    #####: 9041:/*EOF*/
    #####:    #####: 9042:/*EOF*/
        -:        -: 9043:/*EOF*/
    #####:    #####: 9044:/*EOF*/
    #####:    #####: 9045:/*EOF*/
        -:        -: 9046:/*EOF*/
    #####:    #####: 9047:/*EOF*/
        -:        -: 9048:/*EOF*/
    #####:    #####: 9049:/*EOF*/
        -:        -: 9050:/*EOF*/
        -:        -: 9051:/*EOF*/
    #####:    #####: 9052:/*EOF*/
        -:        -: 9053:/*EOF*/
        -:        -: 9054:/*EOF*/
        -:        -: 9055:/*EOF*/
        -:        -: 9056:/*EOF*/
        -:        -: 9057:/*EOF*/
        -:        -: 9058:/*EOF*/
    #####:    #####: 9059:/*EOF*/
    #####:    #####: 9060:/*EOF*/
        -:        -: 9061:/*EOF*/
    #####:    #####: 9062:/*EOF*/
    #####:    #####: 9063:/*EOF*/
        -:        -: 9064:/*EOF*/
    #####:    #####: 9065:/*EOF*/
        -:        -: 9066:/*EOF*/
    #####:    #####: 9067:/*EOF*/
        -:        -: 9068:/*EOF*/
        -:        -: 9069:/*EOF*/
    #####:    #####: 9070:/*EOF*/
        -:        -: 9071:/*EOF*/
        -:        -: 9072:/*EOF*/
        -:        -: 9073:/*EOF*/
    #####:    #####: 9074:/*EOF*/
        -:        -: 9075:/*EOF*/
        -:        -: 9076:/*EOF*/
    #####:    #####: 9077:/*EOF*/
        -:        -: 9078:/*EOF*/
        -:        -: 9079:/*EOF*/
    #####:    #####: 9080:/*EOF*/
        -:        -: 9081:/*EOF*/
        -:        -: 9082:/*EOF*/
    #####:    #####: 9083:/*EOF*/
        -:        -: 9084:/*EOF*/
    #####:    #####: 9085:/*EOF*/
        -:        -: 9086:/*EOF*/
        -:        -: 9087:/*EOF*/
        -:        -: 9088:/*EOF*/
        -:        -: 9089:/*EOF*/
        -:        -: 9090:/*EOF*/
    #####:    #####: 9091:/*EOF*/
    #####:    #####: 9092:/*EOF*/
        -:        -: 9093:/*EOF*/
    #####:    #####: 9094:/*EOF*/
    #####:    #####: 9095:/*EOF*/
        -:        -: 9096:/*EOF*/
    #####:    #####: 9097:/*EOF*/
        -:        -: 9098:/*EOF*/
    #####:    #####: 9099:/*EOF*/
        -:        -: 9100:/*EOF*/
        -:        -: 9101:/*EOF*/
    #####:    #####: 9102:/*EOF*/
        -:        -: 9103:/*EOF*/
        -:        -: 9104:/*EOF*/
        -:        -: 9105:/*EOF*/
        -:        -: 9106:/*EOF*/
        -:        -: 9107:/*EOF*/
        -:        -: 9108:/*EOF*/
    #####:    #####: 9109:/*EOF*/
    #####:    #####: 9110:/*EOF*/
        -:        -: 9111:/*EOF*/
    #####:    #####: 9112:/*EOF*/
    #####:    #####: 9113:/*EOF*/
        -:        -: 9114:/*EOF*/
    #####:    #####: 9115:/*EOF*/
        -:        -: 9116:/*EOF*/
    #####:    #####: 9117:/*EOF*/
        -:        -: 9118:/*EOF*/
        -:        -: 9119:/*EOF*/
    #####:    #####: 9120:/*EOF*/
        -:        -: 9121:/*EOF*/
        -:        -: 9122:/*EOF*/
        -:        -: 9123:/*EOF*/
        -:        -: 9124:/*EOF*/
        -:        -: 9125:/*EOF*/
        -:        -: 9126:/*EOF*/
    #####:    #####: 9127:/*EOF*/
    #####:    #####: 9128:/*EOF*/
        -:        -: 9129:/*EOF*/
    #####:    #####: 9130:/*EOF*/
    #####:    #####: 9131:/*EOF*/
        -:        -: 9132:/*EOF*/
    #####:    #####: 9133:/*EOF*/
        -:        -: 9134:/*EOF*/
    #####:    #####: 9135:/*EOF*/
        -:        -: 9136:/*EOF*/
        -:        -: 9137:/*EOF*/
    #####:    #####: 9138:/*EOF*/
        -:        -: 9139:/*EOF*/
        -:        -: 9140:/*EOF*/
        -:        -: 9141:/*EOF*/
        -:        -: 9142:/*EOF*/
        -:        -: 9143:/*EOF*/
        -:        -: 9144:/*EOF*/
    #####:    #####: 9145:/*EOF*/
    #####:    #####: 9146:/*EOF*/
        -:        -: 9147:/*EOF*/
    #####:    #####: 9148:/*EOF*/
    #####:    #####: 9149:/*EOF*/
        -:        -: 9150:/*EOF*/
    #####:    #####: 9151:/*EOF*/
        -:        -: 9152:/*EOF*/
    #####:    #####: 9153:/*EOF*/
        -:        -: 9154:/*EOF*/
        -:        -: 9155:/*EOF*/
    #####:    #####: 9156:/*EOF*/
        -:        -: 9157:/*EOF*/
        -:        -: 9158:/*EOF*/
        -:        -: 9159:/*EOF*/
    #####:    #####: 9160:/*EOF*/
        -:        -: 9161:/*EOF*/
        -:        -: 9162:/*EOF*/
    #####:    #####: 9163:/*EOF*/
        -:        -: 9164:/*EOF*/
        -:        -: 9165:/*EOF*/
    #####:    #####: 9166:/*EOF*/
        -:        -: 9167:/*EOF*/
        -:        -: 9168:/*EOF*/
    #####:    #####: 9169:/*EOF*/
        -:        -: 9170:/*EOF*/
    #####:    #####: 9171:/*EOF*/
        -:        -: 9172:/*EOF*/
        -:        -: 9173:/*EOF*/
        -:        -: 9174:/*EOF*/
        -:        -: 9175:/*EOF*/
        -:        -: 9176:/*EOF*/
    #####:    #####: 9177:/*EOF*/
    #####:    #####: 9178:/*EOF*/
        -:        -: 9179:/*EOF*/
    #####:    #####: 9180:/*EOF*/
    #####:    #####: 9181:/*EOF*/
        -:        -: 9182:/*EOF*/
    #####:    #####: 9183:/*EOF*/
        -:        -: 9184:/*EOF*/
    #####:    #####: 9185:/*EOF*/
        -:        -: 9186:/*EOF*/
        -:        -: 9187:/*EOF*/
    #####:    #####: 9188:/*EOF*/
        -:        -: 9189:/*EOF*/
        -:        -: 9190:/*EOF*/
        -:        -: 9191:/*EOF*/
        -:        -: 9192:/*EOF*/
        -:        -: 9193:/*EOF*/
        -:        -: 9194:/*EOF*/
    #####:    #####: 9195:/*EOF*/
    #####:    #####: 9196:/*EOF*/
        -:        -: 9197:/*EOF*/
    #####:    #####: 9198:/*EOF*/
    #####:    #####: 9199:/*EOF*/
        -:        -: 9200:/*EOF*/
    #####:    #####: 9201:/*EOF*/
        -:        -: 9202:/*EOF*/
    #####:    #####: 9203:/*EOF*/
        -:        -: 9204:/*EOF*/
        -:        -: 9205:/*EOF*/
    #####:    #####: 9206:/*EOF*/
        -:        -: 9207:/*EOF*/
        -:        -: 9208:/*EOF*/
        -:        -: 9209:/*EOF*/
        -:        -: 9210:/*EOF*/
        -:        -: 9211:/*EOF*/
        -:        -: 9212:/*EOF*/
    #####:    #####: 9213:/*EOF*/
    #####:    #####: 9214:/*EOF*/
        -:        -: 9215:/*EOF*/
    #####:    #####: 9216:/*EOF*/
    #####:    #####: 9217:/*EOF*/
        -:        -: 9218:/*EOF*/
    #####:    #####: 9219:/*EOF*/
        -:        -: 9220:/*EOF*/
    #####:    #####: 9221:/*EOF*/
        -:        -: 9222:/*EOF*/
        -:        -: 9223:/*EOF*/
    #####:    #####: 9224:/*EOF*/
        -:        -: 9225:/*EOF*/
        -:        -: 9226:/*EOF*/
        -:        -: 9227:/*EOF*/
        -:        -: 9228:/*EOF*/
        -:        -: 9229:/*EOF*/
        -:        -: 9230:/*EOF*/
    #####:    #####: 9231:/*EOF*/
    #####:    #####: 9232:/*EOF*/
        -:        -: 9233:/*EOF*/
    #####:    #####: 9234:/*EOF*/
    #####:    #####: 9235:/*EOF*/
        -:        -: 9236:/*EOF*/
    #####:    #####: 9237:/*EOF*/
        -:        -: 9238:/*EOF*/
    #####:    #####: 9239:/*EOF*/
        -:        -: 9240:/*EOF*/
        -:        -: 9241:/*EOF*/
    #####:    #####: 9242:/*EOF*/
        -:        -: 9243:/*EOF*/
        -:        -: 9244:/*EOF*/
        -:        -: 9245:/*EOF*/
    #####:    #####: 9246:/*EOF*/
        -:        -: 9247:/*EOF*/
        -:        -: 9248:/*EOF*/
    #####:    #####: 9249:/*EOF*/
        -:        -: 9250:/*EOF*/
        -:        -: 9251:/*EOF*/
        3:        3: 9252:/*EOF*/
        -:        -: 9253:/*EOF*/
        -:        -: 9254:/*EOF*/
        3:        3: 9255:/*EOF*/
        -:        -: 9256:/*EOF*/
        3:        3: 9257:/*EOF*/
        -:        -: 9258:/*EOF*/
        -:        -: 9259:/*EOF*/
        -:        -: 9260:/*EOF*/
        -:        -: 9261:/*EOF*/
        -:        -: 9262:/*EOF*/
    #####:    #####: 9263:/*EOF*/
    #####:    #####: 9264:/*EOF*/
        -:        -: 9265:/*EOF*/
        -:        -: 9266:/*EOF*/
    #####:    #####: 9267:/*EOF*/
        -:        -: 9268:/*EOF*/
    #####:    #####: 9269:/*EOF*/
        -:        -: 9270:/*EOF*/
        -:        -: 9271:/*EOF*/
    #####:    #####: 9272:/*EOF*/
        -:        -: 9273:/*EOF*/
        -:        -: 9274:/*EOF*/
        -:        -: 9275:/*EOF*/
        -:        -: 9276:/*EOF*/
        -:        -: 9277:/*EOF*/
        -:        -: 9278:/*EOF*/
    #####:    #####: 9279:/*EOF*/
    #####:    #####: 9280:/*EOF*/
        -:        -: 9281:/*EOF*/
        -:        -: 9282:/*EOF*/
    #####:    #####: 9283:/*EOF*/
        -:        -: 9284:/*EOF*/
    #####:    #####: 9285:/*EOF*/
        -:        -: 9286:/*EOF*/
        -:        -: 9287:/*EOF*/
    #####:    #####: 9288:/*EOF*/
        -:        -: 9289:/*EOF*/
        -:        -: 9290:/*EOF*/
        -:        -: 9291:/*EOF*/
        -:        -: 9292:/*EOF*/
        -:        -: 9293:/*EOF*/
        -:        -: 9294:/*EOF*/
        6:        6: 9295:/*EOF*/
        3:        3: 9296:/*EOF*/
        -:        -: 9297:/*EOF*/
        -:        -: 9298:/*EOF*/
        3:        3: 9299:/*EOF*/
        -:        -: 9300:/*EOF*/
        3:        3: 9301:/*EOF*/
        -:        -: 9302:/*EOF*/
        -:        -: 9303:/*EOF*/
        3:        3: 9304:/*EOF*/
        -:        -: 9305:/*EOF*/
        -:        -: 9306:/*EOF*/
        -:        -: 9307:/*EOF*/
        -:        -: 9308:/*EOF*/
        -:        -: 9309:/*EOF*/
        -:        -: 9310:/*EOF*/
    #####:    #####: 9311:/*EOF*/
    #####:    #####: 9312:/*EOF*/
        -:        -: 9313:/*EOF*/
        -:        -: 9314:/*EOF*/
    #####:    #####: 9315:/*EOF*/
        -:        -: 9316:/*EOF*/
    #####:    #####: 9317:/*EOF*/
        -:        -: 9318:/*EOF*/
        -:        -: 9319:/*EOF*/
    #####:    #####: 9320:/*EOF*/
        -:        -: 9321:/*EOF*/
        -:        -: 9322:/*EOF*/
        -:        -: 9323:/*EOF*/
    #####:    #####: 9324:/*EOF*/
        -:        -: 9325:/*EOF*/
        -:        -: 9326:/*EOF*/
        3:        3: 9327:/*EOF*/
        -:        -: 9328:/*EOF*/
        -:        -: 9329:/*EOF*/
       34:        2: 9330:/*EOF*/
        -:        -: 9331:/*EOF*/
        -:        -: 9332:/*EOF*/
       34:        2: 9333:/*EOF*/
        -:        -: 9334:/*EOF*/
       34:        2: 9335:/*EOF*/
        -:        -: 9336:/*EOF*/
        -:        -: 9337:/*EOF*/
        -:        -: 9338:/*EOF*/
        -:        -: 9339:/*EOF*/
        -:        -: 9340:/*EOF*/
    #####:    #####: 9341:/*EOF*/
    #####:    #####: 9342:/*EOF*/
        -:        -: 9343:/*EOF*/
    #####:    #####: 9344:/*EOF*/
    #####:    #####: 9345:/*EOF*/
        -:        -: 9346:/*EOF*/
    #####:    #####: 9347:/*EOF*/
        -:        -: 9348:/*EOF*/
    #####:    #####: 9349:/*EOF*/
        -:        -: 9350:/*EOF*/
        -:        -: 9351:/*EOF*/
    #####:    #####: 9352:/*EOF*/
        -:        -: 9353:/*EOF*/
        -:        -: 9354:/*EOF*/
        -:        -: 9355:/*EOF*/
        -:        -: 9356:/*EOF*/
        -:        -: 9357:/*EOF*/
        -:        -: 9358:/*EOF*/
    #####:    #####: 9359:/*EOF*/
    #####:    #####: 9360:/*EOF*/
        -:        -: 9361:/*EOF*/
    #####:    #####: 9362:/*EOF*/
    #####:    #####: 9363:/*EOF*/
        -:        -: 9364:/*EOF*/
    #####:    #####: 9365:/*EOF*/
        -:        -: 9366:/*EOF*/
    #####:    #####: 9367:/*EOF*/
        -:        -: 9368:/*EOF*/
        -:        -: 9369:/*EOF*/
    #####:    #####: 9370:/*EOF*/
        -:        -: 9371:/*EOF*/
        -:        -: 9372:/*EOF*/
        -:        -: 9373:/*EOF*/
        -:        -: 9374:/*EOF*/
        -:        -: 9375:/*EOF*/
        -:        -: 9376:/*EOF*/
       68:        4: 9377:/*EOF*/
       34:        2: 9378:/*EOF*/
        -:        -: 9379:/*EOF*/
       34:        2: 9380:/*EOF*/
       34:        2: 9381:/*EOF*/
        -:        -: 9382:/*EOF*/
       34:        2: 9383:/*EOF*/
        -:        -: 9384:/*EOF*/
       34:        2: 9385:/*EOF*/
        -:        -: 9386:/*EOF*/
        -:        -: 9387:/*EOF*/
       34:        2: 9388:/*EOF*/
        -:        -: 9389:/*EOF*/
        -:        -: 9390:/*EOF*/
        -:        -: 9391:/*EOF*/
        -:        -: 9392:/*EOF*/
        -:        -: 9393:/*EOF*/
        -:        -: 9394:/*EOF*/
    #####:    #####: 9395:/*EOF*/
    #####:    #####: 9396:/*EOF*/
        -:        -: 9397:/*EOF*/
    #####:    #####: 9398:/*EOF*/
    #####:    #####: 9399:/*EOF*/
        -:        -: 9400:/*EOF*/
    #####:    #####: 9401:/*EOF*/
        -:        -: 9402:/*EOF*/
    #####:    #####: 9403:/*EOF*/
        -:        -: 9404:/*EOF*/
        -:        -: 9405:/*EOF*/
    #####:    #####: 9406:/*EOF*/
        -:        -: 9407:/*EOF*/
        -:        -: 9408:/*EOF*/
        -:        -: 9409:/*EOF*/
    #####:    #####: 9410:/*EOF*/
        -:        -: 9411:/*EOF*/
        -:        -: 9412:/*EOF*/
       34:        2: 9413:/*EOF*/
        -:        -: 9414:/*EOF*/
        -:        -: 9415:/*EOF*/
    #####:    #####: 9416:/*EOF*/
        -:        -: 9417:/*EOF*/
        -:        -: 9418:/*EOF*/
    #####:    #####: 9419:/*EOF*/
        -:        -: 9420:/*EOF*/
        -:        -: 9421:/*EOF*/
        -:        -: 9422:/*EOF*/
        -:        -: 9423:/*EOF*/
        -:        -: 9424:/*EOF*/
    #####:    #####: 9425:/*EOF*/
    #####:    #####: 9426:/*EOF*/
        -:        -: 9427:/*EOF*/
    #####:    #####: 9428:/*EOF*/
    #####:    #####: 9429:/*EOF*/
        -:        -: 9430:/*EOF*/
    #####:    #####: 9431:/*EOF*/
        -:        -: 9432:/*EOF*/
    #####:    #####: 9433:/*EOF*/
        -:        -: 9434:/*EOF*/
        -:        -: 9435:/*EOF*/
        -:        -: 9436:/*EOF*/
    #####:    #####: 9437:/*EOF*/
        -:        -: 9438:/*EOF*/
        -:        -: 9439:/*EOF*/
    #####:    #####: 9440:/*EOF*/
        -:        -: 9441:/*EOF*/
        -:        -: 9442:/*EOF*/
    #####:    #####: 9443:/*EOF*/
        -:        -: 9444:/*EOF*/
    #####:    #####: 9445:/*EOF*/
        -:        -: 9446:/*EOF*/
        -:        -: 9447:/*EOF*/
        -:        -: 9448:/*EOF*/
        -:        -: 9449:/*EOF*/
        -:        -: 9450:/*EOF*/
    #####:    #####: 9451:/*EOF*/
    #####:    #####: 9452:/*EOF*/
        -:        -: 9453:/*EOF*/
    #####:    #####: 9454:/*EOF*/
    #####:    #####: 9455:/*EOF*/
        -:        -: 9456:/*EOF*/
    #####:    #####: 9457:/*EOF*/
        -:        -: 9458:/*EOF*/
    #####:    #####: 9459:/*EOF*/
        -:        -: 9460:/*EOF*/
        -:        -: 9461:/*EOF*/
    #####:    #####: 9462:/*EOF*/
        -:        -: 9463:/*EOF*/
        -:        -: 9464:/*EOF*/
        -:        -: 9465:/*EOF*/
        -:        -: 9466:/*EOF*/
        -:        -: 9467:/*EOF*/
        -:        -: 9468:/*EOF*/
    #####:    #####: 9469:/*EOF*/
    #####:    #####: 9470:/*EOF*/
        -:        -: 9471:/*EOF*/
    #####:    #####: 9472:/*EOF*/
    #####:    #####: 9473:/*EOF*/
        -:        -: 9474:/*EOF*/
    #####:    #####: 9475:/*EOF*/
        -:        -: 9476:/*EOF*/
    #####:    #####: 9477:/*EOF*/
        -:        -: 9478:/*EOF*/
        -:        -: 9479:/*EOF*/
    #####:    #####: 9480:/*EOF*/
        -:        -: 9481:/*EOF*/
        -:        -: 9482:/*EOF*/
        -:        -: 9483:/*EOF*/
        -:        -: 9484:/*EOF*/
        -:        -: 9485:/*EOF*/
        -:        -: 9486:/*EOF*/
    #####:    #####: 9487:/*EOF*/
    #####:    #####: 9488:/*EOF*/
        -:        -: 9489:/*EOF*/
    #####:    #####: 9490:/*EOF*/
    #####:    #####: 9491:/*EOF*/
        -:        -: 9492:/*EOF*/
    #####:    #####: 9493:/*EOF*/
        -:        -: 9494:/*EOF*/
    #####:    #####: 9495:/*EOF*/
        -:        -: 9496:/*EOF*/
        -:        -: 9497:/*EOF*/
    #####:    #####: 9498:/*EOF*/
        -:        -: 9499:/*EOF*/
        -:        -: 9500:/*EOF*/
        -:        -: 9501:/*EOF*/
        -:        -: 9502:/*EOF*/
        -:        -: 9503:/*EOF*/
        -:        -: 9504:/*EOF*/
    #####:    #####: 9505:/*EOF*/
    #####:    #####: 9506:/*EOF*/
        -:        -: 9507:/*EOF*/
    #####:    #####: 9508:/*EOF*/
    #####:    #####: 9509:/*EOF*/
        -:        -: 9510:/*EOF*/
    #####:    #####: 9511:/*EOF*/
        -:        -: 9512:/*EOF*/
    #####:    #####: 9513:/*EOF*/
        -:        -: 9514:/*EOF*/
        -:        -: 9515:/*EOF*/
    #####:    #####: 9516:/*EOF*/
        -:        -: 9517:/*EOF*/
        -:        -: 9518:/*EOF*/
        -:        -: 9519:/*EOF*/
    #####:    #####: 9520:/*EOF*/
        -:        -: 9521:/*EOF*/
        -:        -: 9522:/*EOF*/
    #####:    #####: 9523:/*EOF*/
        -:        -: 9524:/*EOF*/
        -:        -: 9525:/*EOF*/
    #####:    #####: 9526:/*EOF*/
        -:        -: 9527:/*EOF*/
        -:        -: 9528:/*EOF*/
    #####:    #####: 9529:/*EOF*/
        -:        -: 9530:/*EOF*/
    #####:    #####: 9531:/*EOF*/
        -:        -: 9532:/*EOF*/
        -:        -: 9533:/*EOF*/
        -:        -: 9534:/*EOF*/
        -:        -: 9535:/*EOF*/
        -:        -: 9536:/*EOF*/
    #####:    #####: 9537:/*EOF*/
    #####:    #####: 9538:/*EOF*/
        -:        -: 9539:/*EOF*/
        -:        -: 9540:/*EOF*/
    #####:    #####: 9541:/*EOF*/
        -:        -: 9542:/*EOF*/
    #####:    #####: 9543:/*EOF*/
        -:        -: 9544:/*EOF*/
        -:        -: 9545:/*EOF*/
    #####:    #####: 9546:/*EOF*/
        -:        -: 9547:/*EOF*/
        -:        -: 9548:/*EOF*/
        -:        -: 9549:/*EOF*/
        -:        -: 9550:/*EOF*/
        -:        -: 9551:/*EOF*/
        -:        -: 9552:/*EOF*/
    #####:    #####: 9553:/*EOF*/
    #####:    #####: 9554:/*EOF*/
        -:        -: 9555:/*EOF*/
        -:        -: 9556:/*EOF*/
    #####:    #####: 9557:/*EOF*/
        -:        -: 9558:/*EOF*/
    #####:    #####: 9559:/*EOF*/
        -:        -: 9560:/*EOF*/
        -:        -: 9561:/*EOF*/
    #####:    #####: 9562:/*EOF*/
        -:        -: 9563:/*EOF*/
        -:        -: 9564:/*EOF*/
        -:        -: 9565:/*EOF*/
        -:        -: 9566:/*EOF*/
        -:        -: 9567:/*EOF*/
        -:        -: 9568:/*EOF*/
    #####:    #####: 9569:/*EOF*/
    #####:    #####: 9570:/*EOF*/
        -:        -: 9571:/*EOF*/
        -:        -: 9572:/*EOF*/
    #####:    #####: 9573:/*EOF*/
        -:        -: 9574:/*EOF*/
    #####:    #####: 9575:/*EOF*/
        -:        -: 9576:/*EOF*/
        -:        -: 9577:/*EOF*/
    #####:    #####: 9578:/*EOF*/
        -:        -: 9579:/*EOF*/
        -:        -: 9580:/*EOF*/
        -:        -: 9581:/*EOF*/
        -:        -: 9582:/*EOF*/
        -:        -: 9583:/*EOF*/
        -:        -: 9584:/*EOF*/
    #####:    #####: 9585:/*EOF*/
    #####:    #####: 9586:/*EOF*/
        -:        -: 9587:/*EOF*/
        -:        -: 9588:/*EOF*/
    #####:    #####: 9589:/*EOF*/
        -:        -: 9590:/*EOF*/
    #####:    #####: 9591:/*EOF*/
        -:        -: 9592:/*EOF*/
        -:        -: 9593:/*EOF*/
    #####:    #####: 9594:/*EOF*/
        -:        -: 9595:/*EOF*/
        -:        -: 9596:/*EOF*/
        -:        -: 9597:/*EOF*/
    #####:    #####: 9598:/*EOF*/
        -:        -: 9599:/*EOF*/
        -:        -: 9600:/*EOF*/
    #####:    #####: 9601:/*EOF*/
        -:        -: 9602:/*EOF*/
        -:        -: 9603:/*EOF*/
    #####:    #####: 9604:/*EOF*/
        -:        -: 9605:/*EOF*/
        -:        -: 9606:/*EOF*/
    #####:    #####: 9607:/*EOF*/
        -:        -: 9608:/*EOF*/
    #####:    #####: 9609:/*EOF*/
        -:        -: 9610:/*EOF*/
        -:        -: 9611:/*EOF*/
        -:        -: 9612:/*EOF*/
        -:        -: 9613:/*EOF*/
        -:        -: 9614:/*EOF*/
    #####:    #####: 9615:/*EOF*/
    #####:    #####: 9616:/*EOF*/
        -:        -: 9617:/*EOF*/
        -:        -: 9618:/*EOF*/
    #####:    #####: 9619:/*EOF*/
        -:        -: 9620:/*EOF*/
    #####:    #####: 9621:/*EOF*/
        -:        -: 9622:/*EOF*/
        -:        -: 9623:/*EOF*/
    #####:    #####: 9624:/*EOF*/
        -:        -: 9625:/*EOF*/
        -:        -: 9626:/*EOF*/
        -:        -: 9627:/*EOF*/
        -:        -: 9628:/*EOF*/
        -:        -: 9629:/*EOF*/
        -:        -: 9630:/*EOF*/
    #####:    #####: 9631:/*EOF*/
    #####:    #####: 9632:/*EOF*/
        -:        -: 9633:/*EOF*/
        -:        -: 9634:/*EOF*/
    #####:    #####: 9635:/*EOF*/
        -:        -: 9636:/*EOF*/
    #####:    #####: 9637:/*EOF*/
        -:        -: 9638:/*EOF*/
        -:        -: 9639:/*EOF*/
    #####:    #####: 9640:/*EOF*/
        -:        -: 9641:/*EOF*/
        -:        -: 9642:/*EOF*/
        -:        -: 9643:/*EOF*/
        -:        -: 9644:/*EOF*/
        -:        -: 9645:/*EOF*/
        -:        -: 9646:/*EOF*/
    #####:    #####: 9647:/*EOF*/
    #####:    #####: 9648:/*EOF*/
        -:        -: 9649:/*EOF*/
        -:        -: 9650:/*EOF*/
    #####:    #####: 9651:/*EOF*/
        -:        -: 9652:/*EOF*/
    #####:    #####: 9653:/*EOF*/
        -:        -: 9654:/*EOF*/
        -:        -: 9655:/*EOF*/
    #####:    #####: 9656:/*EOF*/
        -:        -: 9657:/*EOF*/
        -:        -: 9658:/*EOF*/
        -:        -: 9659:/*EOF*/
        -:        -: 9660:/*EOF*/
        -:        -: 9661:/*EOF*/
        -:        -: 9662:/*EOF*/
    #####:    #####: 9663:/*EOF*/
    #####:    #####: 9664:/*EOF*/
        -:        -: 9665:/*EOF*/
        -:        -: 9666:/*EOF*/
    #####:    #####: 9667:/*EOF*/
        -:        -: 9668:/*EOF*/
    #####:    #####: 9669:/*EOF*/
        -:        -: 9670:/*EOF*/
        -:        -: 9671:/*EOF*/
    #####:    #####: 9672:/*EOF*/
        -:        -: 9673:/*EOF*/
        -:        -: 9674:/*EOF*/
        -:        -: 9675:/*EOF*/
    #####:    #####: 9676:/*EOF*/
        -:        -: 9677:/*EOF*/
        -:        -: 9678:/*EOF*/
    #####:    #####: 9679:/*EOF*/
        -:        -: 9680:/*EOF*/
        -:        -: 9681:/*EOF*/
    #####:    #####: 9682:/*EOF*/
        -:        -: 9683:/*EOF*/
        -:        -: 9684:/*EOF*/
    #####:    #####: 9685:/*EOF*/
        -:        -: 9686:/*EOF*/
    #####:    #####: 9687:/*EOF*/
        -:        -: 9688:/*EOF*/
        -:        -: 9689:/*EOF*/
        -:        -: 9690:/*EOF*/
        -:        -: 9691:/*EOF*/
        -:        -: 9692:/*EOF*/
    #####:    #####: 9693:/*EOF*/
    #####:    #####: 9694:/*EOF*/
        -:        -: 9695:/*EOF*/
    #####:    #####: 9696:/*EOF*/
    #####:    #####: 9697:/*EOF*/
        -:        -: 9698:/*EOF*/
    #####:    #####: 9699:/*EOF*/
        -:        -: 9700:/*EOF*/
    #####:    #####: 9701:/*EOF*/
        -:        -: 9702:/*EOF*/
        -:        -: 9703:/*EOF*/
    #####:    #####: 9704:/*EOF*/
        -:        -: 9705:/*EOF*/
        -:        -: 9706:/*EOF*/
        -:        -: 9707:/*EOF*/
        -:        -: 9708:/*EOF*/
        -:        -: 9709:/*EOF*/
        -:        -: 9710:/*EOF*/
    #####:    #####: 9711:/*EOF*/
    #####:    #####: 9712:/*EOF*/
        -:        -: 9713:/*EOF*/
    #####:    #####: 9714:/*EOF*/
    #####:    #####: 9715:/*EOF*/
        -:        -: 9716:/*EOF*/
    #####:    #####: 9717:/*EOF*/
        -:        -: 9718:/*EOF*/
    #####:    #####: 9719:/*EOF*/
        -:        -: 9720:/*EOF*/
        -:        -: 9721:/*EOF*/
    #####:    #####: 9722:/*EOF*/
        -:        -: 9723:/*EOF*/
        -:        -: 9724:/*EOF*/
        -:        -: 9725:/*EOF*/
        -:        -: 9726:/*EOF*/
        -:        -: 9727:/*EOF*/
        -:        -: 9728:/*EOF*/
    #####:    #####: 9729:/*EOF*/
    #####:    #####: 9730:/*EOF*/
        -:        -: 9731:/*EOF*/
    #####:    #####: 9732:/*EOF*/
    #####:    #####: 9733:/*EOF*/
        -:        -: 9734:/*EOF*/
    #####:    #####: 9735:/*EOF*/
        -:        -: 9736:/*EOF*/
    #####:    #####: 9737:/*EOF*/
        -:        -: 9738:/*EOF*/
        -:        -: 9739:/*EOF*/
    #####:    #####: 9740:/*EOF*/
        -:        -: 9741:/*EOF*/
        -:        -: 9742:/*EOF*/
        -:        -: 9743:/*EOF*/
        -:        -: 9744:/*EOF*/
        -:        -: 9745:/*EOF*/
        -:        -: 9746:/*EOF*/
    #####:    #####: 9747:/*EOF*/
    #####:    #####: 9748:/*EOF*/
        -:        -: 9749:/*EOF*/
    #####:    #####: 9750:/*EOF*/
    #####:    #####: 9751:/*EOF*/
        -:        -: 9752:/*EOF*/
    #####:    #####: 9753:/*EOF*/
        -:        -: 9754:/*EOF*/
    #####:    #####: 9755:/*EOF*/
        -:        -: 9756:/*EOF*/
        -:        -: 9757:/*EOF*/
    #####:    #####: 9758:/*EOF*/
        -:        -: 9759:/*EOF*/
        -:        -: 9760:/*EOF*/
        -:        -: 9761:/*EOF*/
    #####:    #####: 9762:/*EOF*/
        -:        -: 9763:/*EOF*/
        -:        -: 9764:/*EOF*/
    #####:    #####: 9765:/*EOF*/
        -:        -: 9766:/*EOF*/
        -:        -: 9767:/*EOF*/
    #####:    #####: 9768:/*EOF*/
        -:        -: 9769:/*EOF*/
        -:        -: 9770:/*EOF*/
    #####:    #####: 9771:/*EOF*/
        -:        -: 9772:/*EOF*/
    #####:    #####: 9773:/*EOF*/
        -:        -: 9774:/*EOF*/
        -:        -: 9775:/*EOF*/
        -:        -: 9776:/*EOF*/
        -:        -: 9777:/*EOF*/
        -:        -: 9778:/*EOF*/
    #####:    #####: 9779:/*EOF*/
    #####:    #####: 9780:/*EOF*/
        -:        -: 9781:/*EOF*/
    #####:    #####: 9782:/*EOF*/
    #####:    #####: 9783:/*EOF*/
        -:        -: 9784:/*EOF*/
    #####:    #####: 9785:/*EOF*/
        -:        -: 9786:/*EOF*/
    #####:    #####: 9787:/*EOF*/
        -:        -: 9788:/*EOF*/
        -:        -: 9789:/*EOF*/
    #####:    #####: 9790:/*EOF*/
        -:        -: 9791:/*EOF*/
        -:        -: 9792:/*EOF*/
        -:        -: 9793:/*EOF*/
        -:        -: 9794:/*EOF*/
        -:        -: 9795:/*EOF*/
        -:        -: 9796:/*EOF*/
    #####:    #####: 9797:/*EOF*/
    #####:    #####: 9798:/*EOF*/
        -:        -: 9799:/*EOF*/
    #####:    #####: 9800:/*EOF*/
    #####:    #####: 9801:/*EOF*/
        -:        -: 9802:/*EOF*/
    #####:    #####: 9803:/*EOF*/
        -:        -: 9804:/*EOF*/
    #####:    #####: 9805:/*EOF*/
        -:        -: 9806:/*EOF*/
        -:        -: 9807:/*EOF*/
    #####:    #####: 9808:/*EOF*/
        -:        -: 9809:/*EOF*/
        -:        -: 9810:/*EOF*/
        -:        -: 9811:/*EOF*/
        -:        -: 9812:/*EOF*/
        -:        -: 9813:/*EOF*/
        -:        -: 9814:/*EOF*/
    #####:    #####: 9815:/*EOF*/
    #####:    #####: 9816:/*EOF*/
        -:        -: 9817:/*EOF*/
    #####:    #####: 9818:/*EOF*/
    #####:    #####: 9819:/*EOF*/
        -:        -: 9820:/*EOF*/
    #####:    #####: 9821:/*EOF*/
        -:        -: 9822:/*EOF*/
    #####:    #####: 9823:/*EOF*/
        -:        -: 9824:/*EOF*/
        -:        -: 9825:/*EOF*/
    #####:    #####: 9826:/*EOF*/
        -:        -: 9827:/*EOF*/
        -:        -: 9828:/*EOF*/
        -:        -: 9829:/*EOF*/
        -:        -: 9830:/*EOF*/
        -:        -: 9831:/*EOF*/
        -:        -: 9832:/*EOF*/
    #####:    #####: 9833:/*EOF*/
    #####:    #####: 9834:/*EOF*/
        -:        -: 9835:/*EOF*/
    #####:    #####: 9836:/*EOF*/
    #####:    #####: 9837:/*EOF*/
        -:        -: 9838:/*EOF*/
    #####:    #####: 9839:/*EOF*/
        -:        -: 9840:/*EOF*/
    #####:    #####: 9841:/*EOF*/
        -:        -: 9842:/*EOF*/
        -:        -: 9843:/*EOF*/
    #####:    #####: 9844:/*EOF*/
        -:        -: 9845:/*EOF*/
        -:        -: 9846:/*EOF*/
        -:        -: 9847:/*EOF*/
    #####:    #####: 9848:/*EOF*/
        -:        -: 9849:/*EOF*/
        -:        -: 9850:/*EOF*/
    #####:    #####: 9851:/*EOF*/
        -:        -: 9852:/*EOF*/
        -:        -: 9853:/*EOF*/
    #####:    #####: 9854:/*EOF*/
        -:        -: 9855:/*EOF*/
        -:        -: 9856:/*EOF*/
    #####:    #####: 9857:/*EOF*/
        -:        -: 9858:/*EOF*/
    #####:    #####: 9859:/*EOF*/
        -:        -: 9860:/*EOF*/
        -:        -: 9861:/*EOF*/
        -:        -: 9862:/*EOF*/
        -:        -: 9863:/*EOF*/
        -:        -: 9864:/*EOF*/
    #####:    #####: 9865:/*EOF*/
    #####:    #####: 9866:/*EOF*/
        -:        -: 9867:/*EOF*/
    #####:    #####: 9868:/*EOF*/
    #####:    #####: 9869:/*EOF*/
        -:        -: 9870:/*EOF*/
    #####:    #####: 9871:/*EOF*/
        -:        -: 9872:/*EOF*/
    #####:    #####: 9873:/*EOF*/
        -:        -: 9874:/*EOF*/
        -:        -: 9875:/*EOF*/
    #####:    #####: 9876:/*EOF*/
        -:        -: 9877:/*EOF*/
        -:        -: 9878:/*EOF*/
        -:        -: 9879:/*EOF*/
        -:        -: 9880:/*EOF*/
        -:        -: 9881:/*EOF*/
        -:        -: 9882:/*EOF*/
    #####:    #####: 9883:/*EOF*/
    #####:    #####: 9884:/*EOF*/
        -:        -: 9885:/*EOF*/
    #####:    #####: 9886:/*EOF*/
    #####:    #####: 9887:/*EOF*/
        -:        -: 9888:/*EOF*/
    #####:    #####: 9889:/*EOF*/
        -:        -: 9890:/*EOF*/
    #####:    #####: 9891:/*EOF*/
        -:        -: 9892:/*EOF*/
        -:        -: 9893:/*EOF*/
    #####:    #####: 9894:/*EOF*/
        -:        -: 9895:/*EOF*/
        -:        -: 9896:/*EOF*/
        -:        -: 9897:/*EOF*/
        -:        -: 9898:/*EOF*/
        -:        -: 9899:/*EOF*/
        -:        -: 9900:/*EOF*/
    #####:    #####: 9901:/*EOF*/
    #####:    #####: 9902:/*EOF*/
        -:        -: 9903:/*EOF*/
    #####:    #####: 9904:/*EOF*/
    #####:    #####: 9905:/*EOF*/
        -:        -: 9906:/*EOF*/
    #####:    #####: 9907:/*EOF*/
        -:        -: 9908:/*EOF*/
    #####:    #####: 9909:/*EOF*/
        -:        -: 9910:/*EOF*/
        -:        -: 9911:/*EOF*/
    #####:    #####: 9912:/*EOF*/
        -:        -: 9913:/*EOF*/
        -:        -: 9914:/*EOF*/
        -:        -: 9915:/*EOF*/
        -:        -: 9916:/*EOF*/
        -:        -: 9917:/*EOF*/
        -:        -: 9918:/*EOF*/
    #####:    #####: 9919:/*EOF*/
    #####:    #####: 9920:/*EOF*/
        -:        -: 9921:/*EOF*/
    #####:    #####: 9922:/*EOF*/
    #####:    #####: 9923:/*EOF*/
        -:        -: 9924:/*EOF*/
    #####:    #####: 9925:/*EOF*/
        -:        -: 9926:/*EOF*/
    #####:    #####: 9927:/*EOF*/
        -:        -: 9928:/*EOF*/
        -:        -: 9929:/*EOF*/
    #####:    #####: 9930:/*EOF*/
        -:        -: 9931:/*EOF*/
        -:        -: 9932:/*EOF*/
        -:        -: 9933:/*EOF*/
    #####:    #####: 9934:/*EOF*/
        -:        -: 9935:/*EOF*/
        -:        -: 9936:/*EOF*/
    #####:    #####: 9937:/*EOF*/
        -:        -: 9938:/*EOF*/
        -:        -: 9939:/*EOF*/
    #####:    #####: 9940:/*EOF*/
        -:        -: 9941:/*EOF*/
        -:        -: 9942:/*EOF*/
    #####:    #####: 9943:/*EOF*/
        -:        -: 9944:/*EOF*/
    #####:    #####: 9945:/*EOF*/
        -:        -: 9946:/*EOF*/
        -:        -: 9947:/*EOF*/
        -:        -: 9948:/*EOF*/
        -:        -: 9949:/*EOF*/
        -:        -: 9950:/*EOF*/
    #####:    #####: 9951:/*EOF*/
    #####:    #####: 9952:/*EOF*/
        -:        -: 9953:/*EOF*/
    #####:    #####: 9954:/*EOF*/
    #####:    #####: 9955:/*EOF*/
        -:        -: 9956:/*EOF*/
    #####:    #####: 9957:/*EOF*/
        -:        -: 9958:/*EOF*/
    #####:    #####: 9959:/*EOF*/
        -:        -: 9960:/*EOF*/
        -:        -: 9961:/*EOF*/
    #####:    #####: 9962:/*EOF*/
        -:        -: 9963:/*EOF*/
        -:        -: 9964:/*EOF*/
        -:        -: 9965:/*EOF*/
        -:        -: 9966:/*EOF*/
        -:        -: 9967:/*EOF*/
        -:        -: 9968:/*EOF*/
    #####:    #####: 9969:/*EOF*/
    #####:    #####: 9970:/*EOF*/
        -:        -: 9971:/*EOF*/
    #####:    #####: 9972:/*EOF*/
    #####:    #####: 9973:/*EOF*/
        -:        -: 9974:/*EOF*/
    #####:    #####: 9975:/*EOF*/
        -:        -: 9976:/*EOF*/
    #####:    #####: 9977:/*EOF*/
        -:        -: 9978:/*EOF*/
        -:        -: 9979:/*EOF*/
    #####:    #####: 9980:/*EOF*/
        -:        -: 9981:/*EOF*/
        -:        -: 9982:/*EOF*/
        -:        -: 9983:/*EOF*/
        -:        -: 9984:/*EOF*/
        -:        -: 9985:/*EOF*/
        -:        -: 9986:/*EOF*/
    #####:    #####: 9987:/*EOF*/
    #####:    #####: 9988:/*EOF*/
        -:        -: 9989:/*EOF*/
    #####:    #####: 9990:/*EOF*/
    #####:    #####: 9991:/*EOF*/
        -:        -: 9992:/*EOF*/
    #####:    #####: 9993:/*EOF*/
        -:        -: 9994:/*EOF*/
    #####:    #####: 9995:/*EOF*/
        -:        -: 9996:/*EOF*/
        -:        -: 9997:/*EOF*/
    #####:    #####: 9998:/*EOF*/
        -:        -: 9999:/*EOF*/
        -:        -:10000:/*EOF*/
        -:        -:10001:/*EOF*/
        -:        -:10002:/*EOF*/
        -:        -:10003:/*EOF*/
        -:        -:10004:/*EOF*/
    #####:    #####:10005:/*EOF*/
    #####:    #####:10006:/*EOF*/
        -:        -:10007:/*EOF*/
    #####:    #####:10008:/*EOF*/
    #####:    #####:10009:/*EOF*/
        -:        -:10010:/*EOF*/
    #####:    #####:10011:/*EOF*/
        -:        -:10012:/*EOF*/
    #####:    #####:10013:/*EOF*/
        -:        -:10014:/*EOF*/
        -:        -:10015:/*EOF*/
    #####:    #####:10016:/*EOF*/
        -:        -:10017:/*EOF*/
        -:        -:10018:/*EOF*/
        -:        -:10019:/*EOF*/
    #####:    #####:10020:/*EOF*/
        -:        -:10021:/*EOF*/
        -:        -:10022:/*EOF*/
    #####:    #####:10023:/*EOF*/
        -:        -:10024:/*EOF*/
        -:        -:10025:/*EOF*/
    #####:    #####:10026:/*EOF*/
        -:        -:10027:/*EOF*/
        -:        -:10028:/*EOF*/
    #####:    #####:10029:/*EOF*/
        -:        -:10030:/*EOF*/
    #####:    #####:10031:/*EOF*/
        -:        -:10032:/*EOF*/
        -:        -:10033:/*EOF*/
        -:        -:10034:/*EOF*/
        -:        -:10035:/*EOF*/
        -:        -:10036:/*EOF*/
    #####:    #####:10037:/*EOF*/
    #####:    #####:10038:/*EOF*/
        -:        -:10039:/*EOF*/
        -:        -:10040:/*EOF*/
    #####:    #####:10041:/*EOF*/
        -:        -:10042:/*EOF*/
    #####:    #####:10043:/*EOF*/
        -:        -:10044:/*EOF*/
        -:        -:10045:/*EOF*/
    #####:    #####:10046:/*EOF*/
        -:        -:10047:/*EOF*/
        -:        -:10048:/*EOF*/
        -:        -:10049:/*EOF*/
        -:        -:10050:/*EOF*/
        -:        -:10051:/*EOF*/
        -:        -:10052:/*EOF*/
    #####:    #####:10053:/*EOF*/
    #####:    #####:10054:/*EOF*/
        -:        -:10055:/*EOF*/
        -:        -:10056:/*EOF*/
    #####:    #####:10057:/*EOF*/
        -:        -:10058:/*EOF*/
    #####:    #####:10059:/*EOF*/
        -:        -:10060:/*EOF*/
        -:        -:10061:/*EOF*/
    #####:    #####:10062:/*EOF*/
        -:        -:10063:/*EOF*/
        -:        -:10064:/*EOF*/
        -:        -:10065:/*EOF*/
        -:        -:10066:/*EOF*/
        -:        -:10067:/*EOF*/
        -:        -:10068:/*EOF*/
    #####:    #####:10069:/*EOF*/
    #####:    #####:10070:/*EOF*/
        -:        -:10071:/*EOF*/
        -:        -:10072:/*EOF*/
    #####:    #####:10073:/*EOF*/
        -:        -:10074:/*EOF*/
    #####:    #####:10075:/*EOF*/
        -:        -:10076:/*EOF*/
        -:        -:10077:/*EOF*/
    #####:    #####:10078:/*EOF*/
        -:        -:10079:/*EOF*/
        -:        -:10080:/*EOF*/
        -:        -:10081:/*EOF*/
        -:        -:10082:/*EOF*/
        -:        -:10083:/*EOF*/
        -:        -:10084:/*EOF*/
    #####:    #####:10085:/*EOF*/
    #####:    #####:10086:/*EOF*/
        -:        -:10087:/*EOF*/
        -:        -:10088:/*EOF*/
    #####:    #####:10089:/*EOF*/
        -:        -:10090:/*EOF*/
    #####:    #####:10091:/*EOF*/
        -:        -:10092:/*EOF*/
        -:        -:10093:/*EOF*/
    #####:    #####:10094:/*EOF*/
        -:        -:10095:/*EOF*/
        -:        -:10096:/*EOF*/
        -:        -:10097:/*EOF*/
    #####:    #####:10098:/*EOF*/
        -:        -:10099:/*EOF*/
        -:        -:10100:/*EOF*/
    #####:    #####:10101:/*EOF*/
        -:        -:10102:/*EOF*/
        -:        -:10103:/*EOF*/
    #####:    #####:10104:/*EOF*/
        -:        -:10105:/*EOF*/
        -:        -:10106:/*EOF*/
    #####:    #####:10107:/*EOF*/
        -:        -:10108:/*EOF*/
    #####:    #####:10109:/*EOF*/
        -:        -:10110:/*EOF*/
        -:        -:10111:/*EOF*/
        -:        -:10112:/*EOF*/
        -:        -:10113:/*EOF*/
        -:        -:10114:/*EOF*/
    #####:    #####:10115:/*EOF*/
    #####:    #####:10116:/*EOF*/
        -:        -:10117:/*EOF*/
    #####:    #####:10118:/*EOF*/
    #####:    #####:10119:/*EOF*/
        -:        -:10120:/*EOF*/
    #####:    #####:10121:/*EOF*/
        -:        -:10122:/*EOF*/
    #####:    #####:10123:/*EOF*/
        -:        -:10124:/*EOF*/
        -:        -:10125:/*EOF*/
    #####:    #####:10126:/*EOF*/
        -:        -:10127:/*EOF*/
        -:        -:10128:/*EOF*/
        -:        -:10129:/*EOF*/
        -:        -:10130:/*EOF*/
        -:        -:10131:/*EOF*/
        -:        -:10132:/*EOF*/
    #####:    #####:10133:/*EOF*/
    #####:    #####:10134:/*EOF*/
        -:        -:10135:/*EOF*/
    #####:    #####:10136:/*EOF*/
    #####:    #####:10137:/*EOF*/
        -:        -:10138:/*EOF*/
    #####:    #####:10139:/*EOF*/
        -:        -:10140:/*EOF*/
    #####:    #####:10141:/*EOF*/
        -:        -:10142:/*EOF*/
        -:        -:10143:/*EOF*/
    #####:    #####:10144:/*EOF*/
        -:        -:10145:/*EOF*/
        -:        -:10146:/*EOF*/
        -:        -:10147:/*EOF*/
        -:        -:10148:/*EOF*/
        -:        -:10149:/*EOF*/
        -:        -:10150:/*EOF*/
    #####:    #####:10151:/*EOF*/
    #####:    #####:10152:/*EOF*/
        -:        -:10153:/*EOF*/
    #####:    #####:10154:/*EOF*/
    #####:    #####:10155:/*EOF*/
        -:        -:10156:/*EOF*/
    #####:    #####:10157:/*EOF*/
        -:        -:10158:/*EOF*/
    #####:    #####:10159:/*EOF*/
        -:        -:10160:/*EOF*/
        -:        -:10161:/*EOF*/
    #####:    #####:10162:/*EOF*/
        -:        -:10163:/*EOF*/
        -:        -:10164:/*EOF*/
        -:        -:10165:/*EOF*/
        -:        -:10166:/*EOF*/
        -:        -:10167:/*EOF*/
        -:        -:10168:/*EOF*/
    #####:    #####:10169:/*EOF*/
    #####:    #####:10170:/*EOF*/
        -:        -:10171:/*EOF*/
    #####:    #####:10172:/*EOF*/
    #####:    #####:10173:/*EOF*/
        -:        -:10174:/*EOF*/
    #####:    #####:10175:/*EOF*/
        -:        -:10176:/*EOF*/
    #####:    #####:10177:/*EOF*/
        -:        -:10178:/*EOF*/
        -:        -:10179:/*EOF*/
    #####:    #####:10180:/*EOF*/
        -:        -:10181:/*EOF*/
        -:        -:10182:/*EOF*/
        -:        -:10183:/*EOF*/
    #####:    #####:10184:/*EOF*/
        -:        -:10185:/*EOF*/
        -:        -:10186:/*EOF*/
    #####:    #####:10187:/*EOF*/
        -:        -:10188:/*EOF*/
        -:        -:10189:/*EOF*/
    #####:    #####:10190:/*EOF*/
        -:        -:10191:/*EOF*/
        -:        -:10192:/*EOF*/
    #####:    #####:10193:/*EOF*/
        -:        -:10194:/*EOF*/
    #####:    #####:10195:/*EOF*/
        -:        -:10196:/*EOF*/
        -:        -:10197:/*EOF*/
        -:        -:10198:/*EOF*/
        -:        -:10199:/*EOF*/
        -:        -:10200:/*EOF*/
    #####:    #####:10201:/*EOF*/
    #####:    #####:10202:/*EOF*/
        -:        -:10203:/*EOF*/
    #####:    #####:10204:/*EOF*/
    #####:    #####:10205:/*EOF*/
        -:        -:10206:/*EOF*/
    #####:    #####:10207:/*EOF*/
        -:        -:10208:/*EOF*/
    #####:    #####:10209:/*EOF*/
        -:        -:10210:/*EOF*/
        -:        -:10211:/*EOF*/
    #####:    #####:10212:/*EOF*/
        -:        -:10213:/*EOF*/
        -:        -:10214:/*EOF*/
        -:        -:10215:/*EOF*/
        -:        -:10216:/*EOF*/
        -:        -:10217:/*EOF*/
        -:        -:10218:/*EOF*/
    #####:    #####:10219:/*EOF*/
    #####:    #####:10220:/*EOF*/
        -:        -:10221:/*EOF*/
    #####:    #####:10222:/*EOF*/
    #####:    #####:10223:/*EOF*/
        -:        -:10224:/*EOF*/
    #####:    #####:10225:/*EOF*/
        -:        -:10226:/*EOF*/
    #####:    #####:10227:/*EOF*/
        -:        -:10228:/*EOF*/
        -:        -:10229:/*EOF*/
    #####:    #####:10230:/*EOF*/
        -:        -:10231:/*EOF*/
        -:        -:10232:/*EOF*/
        -:        -:10233:/*EOF*/
        -:        -:10234:/*EOF*/
        -:        -:10235:/*EOF*/
        -:        -:10236:/*EOF*/
    #####:    #####:10237:/*EOF*/
    #####:    #####:10238:/*EOF*/
        -:        -:10239:/*EOF*/
    #####:    #####:10240:/*EOF*/
    #####:    #####:10241:/*EOF*/
        -:        -:10242:/*EOF*/
    #####:    #####:10243:/*EOF*/
        -:        -:10244:/*EOF*/
    #####:    #####:10245:/*EOF*/
        -:        -:10246:/*EOF*/
        -:        -:10247:/*EOF*/
    #####:    #####:10248:/*EOF*/
        -:        -:10249:/*EOF*/
        -:        -:10250:/*EOF*/
        -:        -:10251:/*EOF*/
        -:        -:10252:/*EOF*/
        -:        -:10253:/*EOF*/
        -:        -:10254:/*EOF*/
    #####:    #####:10255:/*EOF*/
    #####:    #####:10256:/*EOF*/
        -:        -:10257:/*EOF*/
    #####:    #####:10258:/*EOF*/
    #####:    #####:10259:/*EOF*/
        -:        -:10260:/*EOF*/
    #####:    #####:10261:/*EOF*/
        -:        -:10262:/*EOF*/
    #####:    #####:10263:/*EOF*/
        -:        -:10264:/*EOF*/
        -:        -:10265:/*EOF*/
    #####:    #####:10266:/*EOF*/
        -:        -:10267:/*EOF*/
        -:        -:10268:/*EOF*/
        -:        -:10269:/*EOF*/
    #####:    #####:10270:/*EOF*/
        -:        -:10271:/*EOF*/
        -:        -:10272:/*EOF*/
    #####:    #####:10273:/*EOF*/
        -:        -:10274:/*EOF*/
        -:        -:10275:/*EOF*/
    #####:    #####:10276:/*EOF*/
        -:        -:10277:/*EOF*/
        -:        -:10278:/*EOF*/
    #####:    #####:10279:/*EOF*/
        -:        -:10280:/*EOF*/
    #####:    #####:10281:/*EOF*/
        -:        -:10282:/*EOF*/
        -:        -:10283:/*EOF*/
        -:        -:10284:/*EOF*/
        -:        -:10285:/*EOF*/
        -:        -:10286:/*EOF*/
    #####:    #####:10287:/*EOF*/
    #####:    #####:10288:/*EOF*/
    #####:    #####:10289:/*EOF*/
    #####:    #####:10290:/*EOF*/
    #####:    #####:10291:/*EOF*/
        -:        -:10292:/*EOF*/
        -:        -:10293:/*EOF*/
        -:        -:10294:/*EOF*/
        -:        -:10295:/*EOF*/
    #####:    #####:10296:/*EOF*/
        -:        -:10297:/*EOF*/
    #####:    #####:10298:/*EOF*/
    #####:    #####:10299:/*EOF*/
        -:        -:10300:/*EOF*/
        -:        -:10301:/*EOF*/
    #####:    #####:10302:/*EOF*/
        -:        -:10303:/*EOF*/
        -:        -:10304:/*EOF*/
    #####:    #####:10305:/*EOF*/
        -:        -:10306:/*EOF*/
        -:        -:10307:/*EOF*/
        -:        -:10308:/*EOF*/
        -:        -:10309:/*EOF*/
        -:        -:10310:/*EOF*/
        -:        -:10311:/*EOF*/
    #####:    #####:10312:/*EOF*/
    #####:    #####:10313:/*EOF*/
        -:        -:10314:/*EOF*/
    #####:    #####:10315:/*EOF*/
    #####:    #####:10316:/*EOF*/
        -:        -:10317:/*EOF*/
        -:        -:10318:/*EOF*/
        -:        -:10319:/*EOF*/
        -:        -:10320:/*EOF*/
    #####:    #####:10321:/*EOF*/
        -:        -:10322:/*EOF*/
    #####:    #####:10323:/*EOF*/
    #####:    #####:10324:/*EOF*/
        -:        -:10325:/*EOF*/
        -:        -:10326:/*EOF*/
    #####:    #####:10327:/*EOF*/
        -:        -:10328:/*EOF*/
        -:        -:10329:/*EOF*/
    #####:    #####:10330:/*EOF*/
        -:        -:10331:/*EOF*/
        -:        -:10332:/*EOF*/
        -:        -:10333:/*EOF*/
        -:        -:10334:/*EOF*/
        -:        -:10335:/*EOF*/
        -:        -:10336:/*EOF*/
    #####:    #####:10337:/*EOF*/
    #####:    #####:10338:/*EOF*/
        -:        -:10339:/*EOF*/
    #####:    #####:10340:/*EOF*/
    #####:    #####:10341:/*EOF*/
        -:        -:10342:/*EOF*/
        -:        -:10343:/*EOF*/
        -:        -:10344:/*EOF*/
        -:        -:10345:/*EOF*/
    #####:    #####:10346:/*EOF*/
        -:        -:10347:/*EOF*/
    #####:    #####:10348:/*EOF*/
    #####:    #####:10349:/*EOF*/
        -:        -:10350:/*EOF*/
        -:        -:10351:/*EOF*/
    #####:    #####:10352:/*EOF*/
        -:        -:10353:/*EOF*/
        -:        -:10354:/*EOF*/
    #####:    #####:10355:/*EOF*/
        -:        -:10356:/*EOF*/
        -:        -:10357:/*EOF*/
        -:        -:10358:/*EOF*/
    #####:    #####:10359:/*EOF*/
        -:        -:10360:/*EOF*/
        -:        -:10361:/*EOF*/
    #####:    #####:10362:/*EOF*/
        -:        -:10363:/*EOF*/
        -:        -:10364:/*EOF*/
    #####:    #####:10365:/*EOF*/
        -:        -:10366:/*EOF*/
        -:        -:10367:/*EOF*/
    #####:    #####:10368:/*EOF*/
        -:        -:10369:/*EOF*/
        -:        -:10370:/*EOF*/
        -:        -:10371:/*EOF*/
        -:        -:10372:/*EOF*/
        -:        -:10373:/*EOF*/
    #####:    #####:10374:/*EOF*/
    #####:    #####:10375:/*EOF*/
    #####:    #####:10376:/*EOF*/
        -:        -:10377:/*EOF*/
        -:        -:10378:/*EOF*/
        -:        -:10379:/*EOF*/
        -:        -:10380:/*EOF*/
        -:        -:10381:/*EOF*/
        -:        -:10382:/*EOF*/
    #####:    #####:10383:/*EOF*/
        -:        -:10384:/*EOF*/
    #####:    #####:10385:/*EOF*/
        -:        -:10386:/*EOF*/
        -:        -:10387:/*EOF*/
    #####:    #####:10388:/*EOF*/
        -:        -:10389:/*EOF*/
        -:        -:10390:/*EOF*/
    #####:    #####:10391:/*EOF*/
        -:        -:10392:/*EOF*/
        -:        -:10393:/*EOF*/
    #####:    #####:10394:/*EOF*/
        -:        -:10395:/*EOF*/
        -:        -:10396:/*EOF*/
        -:        -:10397:/*EOF*/
        -:        -:10398:/*EOF*/
        -:        -:10399:/*EOF*/
    #####:    #####:10400:/*EOF*/
    #####:    #####:10401:/*EOF*/
        -:        -:10402:/*EOF*/
    #####:    #####:10403:/*EOF*/
    #####:    #####:10404:/*EOF*/
        -:        -:10405:/*EOF*/
    #####:    #####:10406:/*EOF*/
        -:        -:10407:/*EOF*/
    #####:    #####:10408:/*EOF*/
        -:        -:10409:/*EOF*/
        -:        -:10410:/*EOF*/
        -:        -:10411:/*EOF*/
    #####:    #####:10412:/*EOF*/
        -:        -:10413:/*EOF*/
        -:        -:10414:/*EOF*/
    #####:    #####:10415:/*EOF*/
        -:        -:10416:/*EOF*/
        -:        -:10417:/*EOF*/
    #####:    #####:10418:/*EOF*/
        -:        -:10419:/*EOF*/
        -:        -:10420:/*EOF*/
        -:        -:10421:/*EOF*/
        -:        -:10422:/*EOF*/
        -:        -:10423:/*EOF*/
    #####:    #####:10424:/*EOF*/
    #####:    #####:10425:/*EOF*/
    #####:    #####:10426:/*EOF*/
        -:        -:10427:/*EOF*/
        -:        -:10428:/*EOF*/
        -:        -:10429:/*EOF*/
        -:        -:10430:/*EOF*/
        -:        -:10431:/*EOF*/
        -:        -:10432:/*EOF*/
        -:        -:10433:/*EOF*/
    #####:    #####:10434:/*EOF*/
    #####:    #####:10435:/*EOF*/
        -:        -:10436:/*EOF*/
        -:        -:10437:/*EOF*/
    #####:    #####:10438:/*EOF*/
        -:        -:10439:/*EOF*/
        -:        -:10440:/*EOF*/
    #####:    #####:10441:/*EOF*/
        -:        -:10442:/*EOF*/
        -:        -:10443:/*EOF*/
    #####:    #####:10444:/*EOF*/
        -:        -:10445:/*EOF*/
        -:        -:10446:/*EOF*/
    #####:    #####:10447:/*EOF*/
        -:        -:10448:/*EOF*/
        -:        -:10449:/*EOF*/
        -:        -:10450:/*EOF*/
        -:        -:10451:/*EOF*/
        -:        -:10452:/*EOF*/
    #####:    #####:10453:/*EOF*/
    #####:    #####:10454:/*EOF*/
        -:        -:10455:/*EOF*/
        -:        -:10456:/*EOF*/
        -:        -:10457:/*EOF*/
        -:        -:10458:/*EOF*/
        -:        -:10459:/*EOF*/
    #####:    #####:10460:/*EOF*/
    #####:    #####:10461:/*EOF*/
        -:        -:10462:/*EOF*/
        -:        -:10463:/*EOF*/
        -:        -:10464:/*EOF*/
        -:        -:10465:/*EOF*/
        -:        -:10466:/*EOF*/
        -:        -:10467:/*EOF*/
        -:        -:10468:/*EOF*/
    #####:    #####:10469:/*EOF*/
        -:        -:10470:/*EOF*/
    #####:    #####:10471:/*EOF*/
        -:        -:10472:/*EOF*/
        -:        -:10473:/*EOF*/
    #####:    #####:10474:/*EOF*/
        -:        -:10475:/*EOF*/
        -:        -:10476:/*EOF*/
    #####:    #####:10477:/*EOF*/
        -:        -:10478:/*EOF*/
        -:        -:10479:/*EOF*/
    #####:    #####:10480:/*EOF*/
        -:        -:10481:/*EOF*/
        -:        -:10482:/*EOF*/
        -:        -:10483:/*EOF*/
        -:        -:10484:/*EOF*/
        -:        -:10485:/*EOF*/
    #####:    #####:10486:/*EOF*/
    #####:    #####:10487:/*EOF*/
    #####:    #####:10488:/*EOF*/
        -:        -:10489:/*EOF*/
        -:        -:10490:/*EOF*/
        -:        -:10491:/*EOF*/
        -:        -:10492:/*EOF*/
        -:        -:10493:/*EOF*/
        -:        -:10494:/*EOF*/
        -:        -:10495:/*EOF*/
    #####:    #####:10496:/*EOF*/
    #####:    #####:10497:/*EOF*/
        -:        -:10498:/*EOF*/
        -:        -:10499:/*EOF*/
    #####:    #####:10500:/*EOF*/
        -:        -:10501:/*EOF*/
        -:        -:10502:/*EOF*/
    #####:    #####:10503:/*EOF*/
        -:        -:10504:/*EOF*/
        -:        -:10505:/*EOF*/
    #####:    #####:10506:/*EOF*/
        -:        -:10507:/*EOF*/
        -:        -:10508:/*EOF*/
    #####:    #####:10509:/*EOF*/
        -:        -:10510:/*EOF*/
        -:        -:10511:/*EOF*/
        -:        -:10512:/*EOF*/
        -:        -:10513:/*EOF*/
        -:        -:10514:/*EOF*/
    #####:    #####:10515:/*EOF*/
    #####:    #####:10516:/*EOF*/
    #####:    #####:10517:/*EOF*/
    #####:    #####:10518:/*EOF*/
    #####:    #####:10519:/*EOF*/
        -:        -:10520:/*EOF*/
        -:        -:10521:/*EOF*/
        -:        -:10522:/*EOF*/
        -:        -:10523:/*EOF*/
        -:        -:10524:/*EOF*/
    #####:    #####:10525:/*EOF*/
    #####:    #####:10526:/*EOF*/
    #####:    #####:10527:/*EOF*/
    #####:    #####:10528:/*EOF*/
        -:        -:10529:/*EOF*/
        -:        -:10530:/*EOF*/
    #####:    #####:10531:/*EOF*/
        -:        -:10532:/*EOF*/
        -:        -:10533:/*EOF*/
    #####:    #####:10534:/*EOF*/
        -:        -:10535:/*EOF*/
        -:        -:10536:/*EOF*/
    #####:    #####:10537:/*EOF*/
        -:        -:10538:/*EOF*/
        -:        -:10539:/*EOF*/
    #####:    #####:10540:/*EOF*/
        -:        -:10541:/*EOF*/
        -:        -:10542:/*EOF*/
        -:        -:10543:/*EOF*/
        -:        -:10544:/*EOF*/
        -:        -:10545:/*EOF*/
    #####:    #####:10546:/*EOF*/
    #####:    #####:10547:/*EOF*/
    #####:    #####:10548:/*EOF*/
        -:        -:10549:/*EOF*/
        -:        -:10550:/*EOF*/
        -:        -:10551:/*EOF*/
        -:        -:10552:/*EOF*/
        -:        -:10553:/*EOF*/
        -:        -:10554:/*EOF*/
        -:        -:10555:/*EOF*/
    #####:    #####:10556:/*EOF*/
    #####:    #####:10557:/*EOF*/
        -:        -:10558:/*EOF*/
        -:        -:10559:/*EOF*/
    #####:    #####:10560:/*EOF*/
        -:        -:10561:/*EOF*/
        -:        -:10562:/*EOF*/
    #####:    #####:10563:/*EOF*/
        -:        -:10564:/*EOF*/
        -:        -:10565:/*EOF*/
    #####:    #####:10566:/*EOF*/
        -:        -:10567:/*EOF*/
        -:        -:10568:/*EOF*/
    #####:    #####:10569:/*EOF*/
        -:        -:10570:/*EOF*/
        -:        -:10571:/*EOF*/
        -:        -:10572:/*EOF*/
        -:        -:10573:/*EOF*/
        -:        -:10574:/*EOF*/
    #####:    #####:10575:/*EOF*/
    #####:    #####:10576:/*EOF*/
    #####:    #####:10577:/*EOF*/
    #####:    #####:10578:/*EOF*/
    #####:    #####:10579:/*EOF*/
        -:        -:10580:/*EOF*/
        -:        -:10581:/*EOF*/
        -:        -:10582:/*EOF*/
        -:        -:10583:/*EOF*/
        -:        -:10584:/*EOF*/
    #####:    #####:10585:/*EOF*/
    #####:    #####:10586:/*EOF*/
    #####:    #####:10587:/*EOF*/
    #####:    #####:10588:/*EOF*/
        -:        -:10589:/*EOF*/
        -:        -:10590:/*EOF*/
    #####:    #####:10591:/*EOF*/
        -:        -:10592:/*EOF*/
        -:        -:10593:/*EOF*/
    #####:    #####:10594:/*EOF*/
        -:        -:10595:/*EOF*/
        -:        -:10596:/*EOF*/
    #####:    #####:10597:/*EOF*/
        -:        -:10598:/*EOF*/
        -:        -:10599:/*EOF*/
    #####:    #####:10600:/*EOF*/
        -:        -:10601:/*EOF*/
        -:        -:10602:/*EOF*/
        -:        -:10603:/*EOF*/
        -:        -:10604:/*EOF*/
        -:        -:10605:/*EOF*/
    #####:    #####:10606:/*EOF*/
    #####:    #####:10607:/*EOF*/
    #####:    #####:10608:/*EOF*/
        -:        -:10609:/*EOF*/
        -:        -:10610:/*EOF*/
        -:        -:10611:/*EOF*/
        -:        -:10612:/*EOF*/
        -:        -:10613:/*EOF*/
        -:        -:10614:/*EOF*/
        -:        -:10615:/*EOF*/
    #####:    #####:10616:/*EOF*/
        -:        -:10617:/*EOF*/
        -:        -:10618:/*EOF*/
    #####:    #####:10619:/*EOF*/
        -:        -:10620:/*EOF*/
        -:        -:10621:/*EOF*/
    #####:    #####:10622:/*EOF*/
        -:        -:10623:/*EOF*/
        -:        -:10624:/*EOF*/
    #####:    #####:10625:/*EOF*/
        -:        -:10626:/*EOF*/
        -:        -:10627:/*EOF*/
    #####:    #####:10628:/*EOF*/
        -:        -:10629:/*EOF*/
        -:        -:10630:/*EOF*/
        -:        -:10631:/*EOF*/
        -:        -:10632:/*EOF*/
        -:        -:10633:/*EOF*/
    #####:    #####:10634:/*EOF*/
    #####:    #####:10635:/*EOF*/
    #####:    #####:10636:/*EOF*/
    #####:    #####:10637:/*EOF*/
    #####:    #####:10638:/*EOF*/
        -:        -:10639:/*EOF*/
        -:        -:10640:/*EOF*/
        -:        -:10641:/*EOF*/
        -:        -:10642:/*EOF*/
        -:        -:10643:/*EOF*/
    #####:    #####:10644:/*EOF*/
    #####:    #####:10645:/*EOF*/
    #####:    #####:10646:/*EOF*/
    #####:    #####:10647:/*EOF*/
        -:        -:10648:/*EOF*/
        -:        -:10649:/*EOF*/
    #####:    #####:10650:/*EOF*/
        -:        -:10651:/*EOF*/
        -:        -:10652:/*EOF*/
    #####:    #####:10653:/*EOF*/
        -:        -:10654:/*EOF*/
        -:        -:10655:/*EOF*/
    #####:    #####:10656:/*EOF*/
        -:        -:10657:/*EOF*/
        -:        -:10658:/*EOF*/
    #####:    #####:10659:/*EOF*/
        -:        -:10660:/*EOF*/
        -:        -:10661:/*EOF*/
        -:        -:10662:/*EOF*/
        -:        -:10663:/*EOF*/
        -:        -:10664:/*EOF*/
    #####:    #####:10665:/*EOF*/
    #####:    #####:10666:/*EOF*/
        -:        -:10667:/*EOF*/
    #####:    #####:10668:/*EOF*/
    #####:    #####:10669:/*EOF*/
        -:        -:10670:/*EOF*/
    #####:    #####:10671:/*EOF*/
        -:        -:10672:/*EOF*/
    #####:    #####:10673:/*EOF*/
        -:        -:10674:/*EOF*/
        -:        -:10675:/*EOF*/
        -:        -:10676:/*EOF*/
    #####:    #####:10677:/*EOF*/
        -:        -:10678:/*EOF*/
        -:        -:10679:/*EOF*/
    #####:    #####:10680:/*EOF*/
        -:        -:10681:/*EOF*/
        -:        -:10682:/*EOF*/
    #####:    #####:10683:/*EOF*/
        -:        -:10684:/*EOF*/
        -:        -:10685:/*EOF*/
        -:        -:10686:/*EOF*/
        -:        -:10687:/*EOF*/
        -:        -:10688:/*EOF*/
    #####:    #####:10689:/*EOF*/
    #####:    #####:10690:/*EOF*/
        -:        -:10691:/*EOF*/
    #####:    #####:10692:/*EOF*/
    #####:    #####:10693:/*EOF*/
        -:        -:10694:/*EOF*/
    #####:    #####:10695:/*EOF*/
        -:        -:10696:/*EOF*/
    #####:    #####:10697:/*EOF*/
        -:        -:10698:/*EOF*/
        -:        -:10699:/*EOF*/
        -:        -:10700:/*EOF*/
    #####:    #####:10701:/*EOF*/
        -:        -:10702:/*EOF*/
        -:        -:10703:/*EOF*/
    #####:    #####:10704:/*EOF*/
        -:        -:10705:/*EOF*/
        -:        -:10706:/*EOF*/
    #####:    #####:10707:/*EOF*/
        -:        -:10708:/*EOF*/
        -:        -:10709:/*EOF*/
        -:        -:10710:/*EOF*/
        -:        -:10711:/*EOF*/
        -:        -:10712:/*EOF*/
    #####:    #####:10713:/*EOF*/
    #####:    #####:10714:/*EOF*/
        -:        -:10715:/*EOF*/
    #####:    #####:10716:/*EOF*/
    #####:    #####:10717:/*EOF*/
        -:        -:10718:/*EOF*/
    #####:    #####:10719:/*EOF*/
        -:        -:10720:/*EOF*/
    #####:    #####:10721:/*EOF*/
        -:        -:10722:/*EOF*/
        -:        -:10723:/*EOF*/
        -:        -:10724:/*EOF*/
    #####:    #####:10725:/*EOF*/
        -:        -:10726:/*EOF*/
        -:        -:10727:/*EOF*/
    #####:    #####:10728:/*EOF*/
        -:        -:10729:/*EOF*/
        -:        -:10730:/*EOF*/
    #####:    #####:10731:/*EOF*/
        -:        -:10732:/*EOF*/
        -:        -:10733:/*EOF*/
        -:        -:10734:/*EOF*/
        -:        -:10735:/*EOF*/
        -:        -:10736:/*EOF*/
    #####:    #####:10737:/*EOF*/
    #####:    #####:10738:/*EOF*/
        -:        -:10739:/*EOF*/
    #####:    #####:10740:/*EOF*/
    #####:    #####:10741:/*EOF*/
        -:        -:10742:/*EOF*/
    #####:    #####:10743:/*EOF*/
        -:        -:10744:/*EOF*/
    #####:    #####:10745:/*EOF*/
        -:        -:10746:/*EOF*/
        -:        -:10747:/*EOF*/
        -:        -:10748:/*EOF*/
    #####:    #####:10749:/*EOF*/
        -:        -:10750:/*EOF*/
        -:        -:10751:/*EOF*/
    #####:    #####:10752:/*EOF*/
        -:        -:10753:/*EOF*/
        -:        -:10754:/*EOF*/
    #####:    #####:10755:/*EOF*/
        -:        -:10756:/*EOF*/
    #####:    #####:10757:/*EOF*/
        -:        -:10758:/*EOF*/
        -:        -:10759:/*EOF*/
        -:        -:10760:/*EOF*/
        -:        -:10761:/*EOF*/
        -:        -:10762:/*EOF*/
    #####:    #####:10763:/*EOF*/
    #####:    #####:10764:/*EOF*/
        -:        -:10765:/*EOF*/
        -:        -:10766:/*EOF*/
    #####:    #####:10767:/*EOF*/
        -:        -:10768:/*EOF*/
    #####:    #####:10769:/*EOF*/
        -:        -:10770:/*EOF*/
        -:        -:10771:/*EOF*/
    #####:    #####:10772:/*EOF*/
        -:        -:10773:/*EOF*/
        -:        -:10774:/*EOF*/
        -:        -:10775:/*EOF*/
        -:        -:10776:/*EOF*/
        -:        -:10777:/*EOF*/
        -:        -:10778:/*EOF*/
    #####:    #####:10779:/*EOF*/
    #####:    #####:10780:/*EOF*/
        -:        -:10781:/*EOF*/
        -:        -:10782:/*EOF*/
    #####:    #####:10783:/*EOF*/
        -:        -:10784:/*EOF*/
    #####:    #####:10785:/*EOF*/
        -:        -:10786:/*EOF*/
        -:        -:10787:/*EOF*/
    #####:    #####:10788:/*EOF*/
        -:        -:10789:/*EOF*/
        -:        -:10790:/*EOF*/
        -:        -:10791:/*EOF*/
        -:        -:10792:/*EOF*/
        -:        -:10793:/*EOF*/
        -:        -:10794:/*EOF*/
    #####:    #####:10795:/*EOF*/
    #####:    #####:10796:/*EOF*/
        -:        -:10797:/*EOF*/
        -:        -:10798:/*EOF*/
    #####:    #####:10799:/*EOF*/
        -:        -:10800:/*EOF*/
    #####:    #####:10801:/*EOF*/
        -:        -:10802:/*EOF*/
        -:        -:10803:/*EOF*/
    #####:    #####:10804:/*EOF*/
        -:        -:10805:/*EOF*/
        -:        -:10806:/*EOF*/
        -:        -:10807:/*EOF*/
        -:        -:10808:/*EOF*/
        -:        -:10809:/*EOF*/
        -:        -:10810:/*EOF*/
    #####:    #####:10811:/*EOF*/
    #####:    #####:10812:/*EOF*/
        -:        -:10813:/*EOF*/
        -:        -:10814:/*EOF*/
    #####:    #####:10815:/*EOF*/
        -:        -:10816:/*EOF*/
    #####:    #####:10817:/*EOF*/
        -:        -:10818:/*EOF*/
        -:        -:10819:/*EOF*/
    #####:    #####:10820:/*EOF*/
        -:        -:10821:/*EOF*/
        -:        -:10822:/*EOF*/
        -:        -:10823:/*EOF*/
    #####:    #####:10824:/*EOF*/
        -:        -:10825:/*EOF*/
        -:        -:10826:/*EOF*/
    #####:    #####:10827:/*EOF*/
        -:        -:10828:/*EOF*/
        -:        -:10829:/*EOF*/
    #####:    #####:10830:/*EOF*/
        -:        -:10831:/*EOF*/
        -:        -:10832:/*EOF*/
    #####:    #####:10833:/*EOF*/
        -:        -:10834:/*EOF*/
    #####:    #####:10835:/*EOF*/
        -:        -:10836:/*EOF*/
        -:        -:10837:/*EOF*/
        -:        -:10838:/*EOF*/
        -:        -:10839:/*EOF*/
        -:        -:10840:/*EOF*/
    #####:    #####:10841:/*EOF*/
    #####:    #####:10842:/*EOF*/
        -:        -:10843:/*EOF*/
        -:        -:10844:/*EOF*/
    #####:    #####:10845:/*EOF*/
        -:        -:10846:/*EOF*/
    #####:    #####:10847:/*EOF*/
        -:        -:10848:/*EOF*/
        -:        -:10849:/*EOF*/
    #####:    #####:10850:/*EOF*/
        -:        -:10851:/*EOF*/
        -:        -:10852:/*EOF*/
        -:        -:10853:/*EOF*/
        -:        -:10854:/*EOF*/
        -:        -:10855:/*EOF*/
        -:        -:10856:/*EOF*/
    #####:    #####:10857:/*EOF*/
    #####:    #####:10858:/*EOF*/
        -:        -:10859:/*EOF*/
        -:        -:10860:/*EOF*/
    #####:    #####:10861:/*EOF*/
        -:        -:10862:/*EOF*/
    #####:    #####:10863:/*EOF*/
        -:        -:10864:/*EOF*/
        -:        -:10865:/*EOF*/
    #####:    #####:10866:/*EOF*/
        -:        -:10867:/*EOF*/
        -:        -:10868:/*EOF*/
        -:        -:10869:/*EOF*/
        -:        -:10870:/*EOF*/
        -:        -:10871:/*EOF*/
        -:        -:10872:/*EOF*/
    #####:    #####:10873:/*EOF*/
    #####:    #####:10874:/*EOF*/
        -:        -:10875:/*EOF*/
        -:        -:10876:/*EOF*/
    #####:    #####:10877:/*EOF*/
        -:        -:10878:/*EOF*/
    #####:    #####:10879:/*EOF*/
        -:        -:10880:/*EOF*/
        -:        -:10881:/*EOF*/
    #####:    #####:10882:/*EOF*/
        -:        -:10883:/*EOF*/
        -:        -:10884:/*EOF*/
        -:        -:10885:/*EOF*/
        -:        -:10886:/*EOF*/
        -:        -:10887:/*EOF*/
        -:        -:10888:/*EOF*/
    #####:    #####:10889:/*EOF*/
    #####:    #####:10890:/*EOF*/
        -:        -:10891:/*EOF*/
        -:        -:10892:/*EOF*/
    #####:    #####:10893:/*EOF*/
        -:        -:10894:/*EOF*/
    #####:    #####:10895:/*EOF*/
        -:        -:10896:/*EOF*/
        -:        -:10897:/*EOF*/
    #####:    #####:10898:/*EOF*/
        -:        -:10899:/*EOF*/
        -:        -:10900:/*EOF*/
        -:        -:10901:/*EOF*/
    #####:    #####:10902:/*EOF*/
        -:        -:10903:/*EOF*/
        -:        -:10904:/*EOF*/
    #####:    #####:10905:/*EOF*/
        -:        -:10906:/*EOF*/
        -:        -:10907:/*EOF*/
    #####:    #####:10908:/*EOF*/
        -:        -:10909:/*EOF*/
        -:        -:10910:/*EOF*/
    #####:    #####:10911:/*EOF*/
        -:        -:10912:/*EOF*/
    #####:    #####:10913:/*EOF*/
        -:        -:10914:/*EOF*/
        -:        -:10915:/*EOF*/
        -:        -:10916:/*EOF*/
        -:        -:10917:/*EOF*/
        -:        -:10918:/*EOF*/
    #####:    #####:10919:/*EOF*/
    #####:    #####:10920:/*EOF*/
        -:        -:10921:/*EOF*/
        -:        -:10922:/*EOF*/
    #####:    #####:10923:/*EOF*/
        -:        -:10924:/*EOF*/
    #####:    #####:10925:/*EOF*/
        -:        -:10926:/*EOF*/
        -:        -:10927:/*EOF*/
    #####:    #####:10928:/*EOF*/
        -:        -:10929:/*EOF*/
        -:        -:10930:/*EOF*/
        -:        -:10931:/*EOF*/
        -:        -:10932:/*EOF*/
        -:        -:10933:/*EOF*/
        -:        -:10934:/*EOF*/
    #####:    #####:10935:/*EOF*/
    #####:    #####:10936:/*EOF*/
        -:        -:10937:/*EOF*/
        -:        -:10938:/*EOF*/
    #####:    #####:10939:/*EOF*/
        -:        -:10940:/*EOF*/
    #####:    #####:10941:/*EOF*/
        -:        -:10942:/*EOF*/
        -:        -:10943:/*EOF*/
    #####:    #####:10944:/*EOF*/
        -:        -:10945:/*EOF*/
        -:        -:10946:/*EOF*/
        -:        -:10947:/*EOF*/
        -:        -:10948:/*EOF*/
        -:        -:10949:/*EOF*/
        -:        -:10950:/*EOF*/
    #####:    #####:10951:/*EOF*/
    #####:    #####:10952:/*EOF*/
        -:        -:10953:/*EOF*/
        -:        -:10954:/*EOF*/
    #####:    #####:10955:/*EOF*/
        -:        -:10956:/*EOF*/
    #####:    #####:10957:/*EOF*/
        -:        -:10958:/*EOF*/
        -:        -:10959:/*EOF*/
    #####:    #####:10960:/*EOF*/
        -:        -:10961:/*EOF*/
        -:        -:10962:/*EOF*/
        -:        -:10963:/*EOF*/
        -:        -:10964:/*EOF*/
        -:        -:10965:/*EOF*/
        -:        -:10966:/*EOF*/
    #####:    #####:10967:/*EOF*/
    #####:    #####:10968:/*EOF*/
        -:        -:10969:/*EOF*/
        -:        -:10970:/*EOF*/
    #####:    #####:10971:/*EOF*/
        -:        -:10972:/*EOF*/
    #####:    #####:10973:/*EOF*/
        -:        -:10974:/*EOF*/
        -:        -:10975:/*EOF*/
    #####:    #####:10976:/*EOF*/
        -:        -:10977:/*EOF*/
        -:        -:10978:/*EOF*/
        -:        -:10979:/*EOF*/
    #####:    #####:10980:/*EOF*/
        -:        -:10981:/*EOF*/
        -:        -:10982:/*EOF*/
    #####:    #####:10983:/*EOF*/
        -:        -:10984:/*EOF*/
        -:        -:10985:/*EOF*/
    #####:    #####:10986:/*EOF*/
        -:        -:10987:/*EOF*/
        -:        -:10988:/*EOF*/
    #####:    #####:10989:/*EOF*/
        -:        -:10990:/*EOF*/
    #####:    #####:10991:/*EOF*/
        -:        -:10992:/*EOF*/
        -:        -:10993:/*EOF*/
        -:        -:10994:/*EOF*/
        -:        -:10995:/*EOF*/
        -:        -:10996:/*EOF*/
    #####:    #####:10997:/*EOF*/
    #####:    #####:10998:/*EOF*/
        -:        -:10999:/*EOF*/
        -:        -:11000:/*EOF*/
    #####:    #####:11001:/*EOF*/
        -:        -:11002:/*EOF*/
    #####:    #####:11003:/*EOF*/
        -:        -:11004:/*EOF*/
        -:        -:11005:/*EOF*/
    #####:    #####:11006:/*EOF*/
        -:        -:11007:/*EOF*/
        -:        -:11008:/*EOF*/
        -:        -:11009:/*EOF*/
        -:        -:11010:/*EOF*/
        -:        -:11011:/*EOF*/
        -:        -:11012:/*EOF*/
    #####:    #####:11013:/*EOF*/
    #####:    #####:11014:/*EOF*/
        -:        -:11015:/*EOF*/
        -:        -:11016:/*EOF*/
    #####:    #####:11017:/*EOF*/
        -:        -:11018:/*EOF*/
    #####:    #####:11019:/*EOF*/
        -:        -:11020:/*EOF*/
        -:        -:11021:/*EOF*/
    #####:    #####:11022:/*EOF*/
        -:        -:11023:/*EOF*/
        -:        -:11024:/*EOF*/
        -:        -:11025:/*EOF*/
        -:        -:11026:/*EOF*/
        -:        -:11027:/*EOF*/
        -:        -:11028:/*EOF*/
    #####:    #####:11029:/*EOF*/
    #####:    #####:11030:/*EOF*/
        -:        -:11031:/*EOF*/
        -:        -:11032:/*EOF*/
    #####:    #####:11033:/*EOF*/
        -:        -:11034:/*EOF*/
    #####:    #####:11035:/*EOF*/
        -:        -:11036:/*EOF*/
        -:        -:11037:/*EOF*/
    #####:    #####:11038:/*EOF*/
        -:        -:11039:/*EOF*/
        -:        -:11040:/*EOF*/
        -:        -:11041:/*EOF*/
        -:        -:11042:/*EOF*/
        -:        -:11043:/*EOF*/
        -:        -:11044:/*EOF*/
    #####:    #####:11045:/*EOF*/
    #####:    #####:11046:/*EOF*/
        -:        -:11047:/*EOF*/
        -:        -:11048:/*EOF*/
    #####:    #####:11049:/*EOF*/
        -:        -:11050:/*EOF*/
    #####:    #####:11051:/*EOF*/
        -:        -:11052:/*EOF*/
        -:        -:11053:/*EOF*/
    #####:    #####:11054:/*EOF*/
        -:        -:11055:/*EOF*/
        -:        -:11056:/*EOF*/
        -:        -:11057:/*EOF*/
    #####:    #####:11058:/*EOF*/
        -:        -:11059:/*EOF*/
        -:        -:11060:/*EOF*/
    #####:    #####:11061:/*EOF*/
        -:        -:11062:/*EOF*/
        -:        -:11063:/*EOF*/
    #####:    #####:11064:/*EOF*/
        -:        -:11065:/*EOF*/
        -:        -:11066:/*EOF*/
    #####:    #####:11067:/*EOF*/
        -:        -:11068:/*EOF*/
    #####:    #####:11069:/*EOF*/
        -:        -:11070:/*EOF*/
        -:        -:11071:/*EOF*/
        -:        -:11072:/*EOF*/
        -:        -:11073:/*EOF*/
        -:        -:11074:/*EOF*/
    #####:    #####:11075:/*EOF*/
    #####:    #####:11076:/*EOF*/
        -:        -:11077:/*EOF*/
        -:        -:11078:/*EOF*/
    #####:    #####:11079:/*EOF*/
        -:        -:11080:/*EOF*/
    #####:    #####:11081:/*EOF*/
        -:        -:11082:/*EOF*/
        -:        -:11083:/*EOF*/
    #####:    #####:11084:/*EOF*/
        -:        -:11085:/*EOF*/
        -:        -:11086:/*EOF*/
        -:        -:11087:/*EOF*/
        -:        -:11088:/*EOF*/
        -:        -:11089:/*EOF*/
        -:        -:11090:/*EOF*/
    #####:    #####:11091:/*EOF*/
    #####:    #####:11092:/*EOF*/
        -:        -:11093:/*EOF*/
        -:        -:11094:/*EOF*/
    #####:    #####:11095:/*EOF*/
        -:        -:11096:/*EOF*/
    #####:    #####:11097:/*EOF*/
        -:        -:11098:/*EOF*/
        -:        -:11099:/*EOF*/
    #####:    #####:11100:/*EOF*/
        -:        -:11101:/*EOF*/
        -:        -:11102:/*EOF*/
        -:        -:11103:/*EOF*/
        -:        -:11104:/*EOF*/
        -:        -:11105:/*EOF*/
        -:        -:11106:/*EOF*/
    #####:    #####:11107:/*EOF*/
    #####:    #####:11108:/*EOF*/
        -:        -:11109:/*EOF*/
        -:        -:11110:/*EOF*/
    #####:    #####:11111:/*EOF*/
        -:        -:11112:/*EOF*/
    #####:    #####:11113:/*EOF*/
        -:        -:11114:/*EOF*/
        -:        -:11115:/*EOF*/
    #####:    #####:11116:/*EOF*/
        -:        -:11117:/*EOF*/
        -:        -:11118:/*EOF*/
        -:        -:11119:/*EOF*/
        -:        -:11120:/*EOF*/
        -:        -:11121:/*EOF*/
        -:        -:11122:/*EOF*/
    #####:    #####:11123:/*EOF*/
    #####:    #####:11124:/*EOF*/
        -:        -:11125:/*EOF*/
        -:        -:11126:/*EOF*/
    #####:    #####:11127:/*EOF*/
        -:        -:11128:/*EOF*/
    #####:    #####:11129:/*EOF*/
        -:        -:11130:/*EOF*/
        -:        -:11131:/*EOF*/
    #####:    #####:11132:/*EOF*/
        -:        -:11133:/*EOF*/
        -:        -:11134:/*EOF*/
        -:        -:11135:/*EOF*/
    #####:    #####:11136:/*EOF*/
        -:        -:11137:/*EOF*/
        -:        -:11138:/*EOF*/
    #####:    #####:11139:/*EOF*/
        -:        -:11140:/*EOF*/
        -:        -:11141:/*EOF*/
    #####:    #####:11142:/*EOF*/
        -:        -:11143:/*EOF*/
        -:        -:11144:/*EOF*/
    #####:    #####:11145:/*EOF*/
        -:        -:11146:/*EOF*/
    #####:    #####:11147:/*EOF*/
        -:        -:11148:/*EOF*/
        -:        -:11149:/*EOF*/
        -:        -:11150:/*EOF*/
        -:        -:11151:/*EOF*/
        -:        -:11152:/*EOF*/
    #####:    #####:11153:/*EOF*/
    #####:    #####:11154:/*EOF*/
        -:        -:11155:/*EOF*/
        -:        -:11156:/*EOF*/
    #####:    #####:11157:/*EOF*/
        -:        -:11158:/*EOF*/
    #####:    #####:11159:/*EOF*/
        -:        -:11160:/*EOF*/
        -:        -:11161:/*EOF*/
    #####:    #####:11162:/*EOF*/
        -:        -:11163:/*EOF*/
        -:        -:11164:/*EOF*/
        -:        -:11165:/*EOF*/
        -:        -:11166:/*EOF*/
        -:        -:11167:/*EOF*/
        -:        -:11168:/*EOF*/
    #####:    #####:11169:/*EOF*/
    #####:    #####:11170:/*EOF*/
        -:        -:11171:/*EOF*/
        -:        -:11172:/*EOF*/
    #####:    #####:11173:/*EOF*/
        -:        -:11174:/*EOF*/
    #####:    #####:11175:/*EOF*/
        -:        -:11176:/*EOF*/
        -:        -:11177:/*EOF*/
    #####:    #####:11178:/*EOF*/
        -:        -:11179:/*EOF*/
        -:        -:11180:/*EOF*/
        -:        -:11181:/*EOF*/
        -:        -:11182:/*EOF*/
        -:        -:11183:/*EOF*/
        -:        -:11184:/*EOF*/
    #####:    #####:11185:/*EOF*/
    #####:    #####:11186:/*EOF*/
        -:        -:11187:/*EOF*/
        -:        -:11188:/*EOF*/
    #####:    #####:11189:/*EOF*/
        -:        -:11190:/*EOF*/
    #####:    #####:11191:/*EOF*/
        -:        -:11192:/*EOF*/
        -:        -:11193:/*EOF*/
    #####:    #####:11194:/*EOF*/
        -:        -:11195:/*EOF*/
        -:        -:11196:/*EOF*/
        -:        -:11197:/*EOF*/
        -:        -:11198:/*EOF*/
        -:        -:11199:/*EOF*/
        -:        -:11200:/*EOF*/
    #####:    #####:11201:/*EOF*/
    #####:    #####:11202:/*EOF*/
        -:        -:11203:/*EOF*/
        -:        -:11204:/*EOF*/
    #####:    #####:11205:/*EOF*/
        -:        -:11206:/*EOF*/
    #####:    #####:11207:/*EOF*/
        -:        -:11208:/*EOF*/
        -:        -:11209:/*EOF*/
    #####:    #####:11210:/*EOF*/
        -:        -:11211:/*EOF*/
        -:        -:11212:/*EOF*/
        -:        -:11213:/*EOF*/
    #####:    #####:11214:/*EOF*/
        -:        -:11215:/*EOF*/
        -:        -:11216:/*EOF*/
    #####:    #####:11217:/*EOF*/
        -:        -:11218:/*EOF*/
        -:        -:11219:/*EOF*/
    #####:    #####:11220:/*EOF*/
        -:        -:11221:/*EOF*/
        -:        -:11222:/*EOF*/
    #####:    #####:11223:/*EOF*/
        -:        -:11224:/*EOF*/
    #####:    #####:11225:/*EOF*/
        -:        -:11226:/*EOF*/
        -:        -:11227:/*EOF*/
        -:        -:11228:/*EOF*/
        -:        -:11229:/*EOF*/
        -:        -:11230:/*EOF*/
    #####:    #####:11231:/*EOF*/
    #####:    #####:11232:/*EOF*/
        -:        -:11233:/*EOF*/
        -:        -:11234:/*EOF*/
    #####:    #####:11235:/*EOF*/
        -:        -:11236:/*EOF*/
    #####:    #####:11237:/*EOF*/
        -:        -:11238:/*EOF*/
        -:        -:11239:/*EOF*/
    #####:    #####:11240:/*EOF*/
        -:        -:11241:/*EOF*/
        -:        -:11242:/*EOF*/
        -:        -:11243:/*EOF*/
        -:        -:11244:/*EOF*/
        -:        -:11245:/*EOF*/
        -:        -:11246:/*EOF*/
    #####:    #####:11247:/*EOF*/
    #####:    #####:11248:/*EOF*/
        -:        -:11249:/*EOF*/
        -:        -:11250:/*EOF*/
    #####:    #####:11251:/*EOF*/
        -:        -:11252:/*EOF*/
    #####:    #####:11253:/*EOF*/
        -:        -:11254:/*EOF*/
        -:        -:11255:/*EOF*/
    #####:    #####:11256:/*EOF*/
        -:        -:11257:/*EOF*/
        -:        -:11258:/*EOF*/
        -:        -:11259:/*EOF*/
        -:        -:11260:/*EOF*/
        -:        -:11261:/*EOF*/
        -:        -:11262:/*EOF*/
    #####:    #####:11263:/*EOF*/
    #####:    #####:11264:/*EOF*/
        -:        -:11265:/*EOF*/
        -:        -:11266:/*EOF*/
    #####:    #####:11267:/*EOF*/
        -:        -:11268:/*EOF*/
    #####:    #####:11269:/*EOF*/
        -:        -:11270:/*EOF*/
        -:        -:11271:/*EOF*/
    #####:    #####:11272:/*EOF*/
        -:        -:11273:/*EOF*/
        -:        -:11274:/*EOF*/
        -:        -:11275:/*EOF*/
        -:        -:11276:/*EOF*/
        -:        -:11277:/*EOF*/
        -:        -:11278:/*EOF*/
    #####:    #####:11279:/*EOF*/
    #####:    #####:11280:/*EOF*/
        -:        -:11281:/*EOF*/
        -:        -:11282:/*EOF*/
    #####:    #####:11283:/*EOF*/
        -:        -:11284:/*EOF*/
    #####:    #####:11285:/*EOF*/
        -:        -:11286:/*EOF*/
        -:        -:11287:/*EOF*/
    #####:    #####:11288:/*EOF*/
        -:        -:11289:/*EOF*/
        -:        -:11290:/*EOF*/
        -:        -:11291:/*EOF*/
    #####:    #####:11292:/*EOF*/
        -:        -:11293:/*EOF*/
        -:        -:11294:/*EOF*/
    #####:    #####:11295:/*EOF*/
        -:        -:11296:/*EOF*/
        -:        -:11297:/*EOF*/
    #####:    #####:11298:/*EOF*/
        -:        -:11299:/*EOF*/
        -:        -:11300:/*EOF*/
    #####:    #####:11301:/*EOF*/
        -:        -:11302:/*EOF*/
    #####:    #####:11303:/*EOF*/
        -:        -:11304:/*EOF*/
        -:        -:11305:/*EOF*/
        -:        -:11306:/*EOF*/
        -:        -:11307:/*EOF*/
        -:        -:11308:/*EOF*/
    #####:    #####:11309:/*EOF*/
    #####:    #####:11310:/*EOF*/
        -:        -:11311:/*EOF*/
    #####:    #####:11312:/*EOF*/
    #####:    #####:11313:/*EOF*/
        -:        -:11314:/*EOF*/
    #####:    #####:11315:/*EOF*/
        -:        -:11316:/*EOF*/
    #####:    #####:11317:/*EOF*/
        -:        -:11318:/*EOF*/
        -:        -:11319:/*EOF*/
    #####:    #####:11320:/*EOF*/
        -:        -:11321:/*EOF*/
        -:        -:11322:/*EOF*/
        -:        -:11323:/*EOF*/
        -:        -:11324:/*EOF*/
        -:        -:11325:/*EOF*/
        -:        -:11326:/*EOF*/
    #####:    #####:11327:/*EOF*/
    #####:    #####:11328:/*EOF*/
        -:        -:11329:/*EOF*/
    #####:    #####:11330:/*EOF*/
    #####:    #####:11331:/*EOF*/
        -:        -:11332:/*EOF*/
    #####:    #####:11333:/*EOF*/
        -:        -:11334:/*EOF*/
    #####:    #####:11335:/*EOF*/
        -:        -:11336:/*EOF*/
        -:        -:11337:/*EOF*/
    #####:    #####:11338:/*EOF*/
        -:        -:11339:/*EOF*/
        -:        -:11340:/*EOF*/
        -:        -:11341:/*EOF*/
        -:        -:11342:/*EOF*/
        -:        -:11343:/*EOF*/
        -:        -:11344:/*EOF*/
    #####:    #####:11345:/*EOF*/
    #####:    #####:11346:/*EOF*/
        -:        -:11347:/*EOF*/
    #####:    #####:11348:/*EOF*/
    #####:    #####:11349:/*EOF*/
        -:        -:11350:/*EOF*/
    #####:    #####:11351:/*EOF*/
        -:        -:11352:/*EOF*/
    #####:    #####:11353:/*EOF*/
        -:        -:11354:/*EOF*/
        -:        -:11355:/*EOF*/
    #####:    #####:11356:/*EOF*/
        -:        -:11357:/*EOF*/
        -:        -:11358:/*EOF*/
        -:        -:11359:/*EOF*/
        -:        -:11360:/*EOF*/
        -:        -:11361:/*EOF*/
        -:        -:11362:/*EOF*/
    #####:    #####:11363:/*EOF*/
    #####:    #####:11364:/*EOF*/
        -:        -:11365:/*EOF*/
    #####:    #####:11366:/*EOF*/
    #####:    #####:11367:/*EOF*/
        -:        -:11368:/*EOF*/
    #####:    #####:11369:/*EOF*/
        -:        -:11370:/*EOF*/
    #####:    #####:11371:/*EOF*/
        -:        -:11372:/*EOF*/
        -:        -:11373:/*EOF*/
    #####:    #####:11374:/*EOF*/
        -:        -:11375:/*EOF*/
        -:        -:11376:/*EOF*/
        -:        -:11377:/*EOF*/
    #####:    #####:11378:/*EOF*/
        -:        -:11379:/*EOF*/
        -:        -:11380:/*EOF*/
    #####:    #####:11381:/*EOF*/
        -:        -:11382:/*EOF*/
        -:        -:11383:/*EOF*/
    #####:    #####:11384:/*EOF*/
        -:        -:11385:/*EOF*/
        -:        -:11386:/*EOF*/
    #####:    #####:11387:/*EOF*/
        -:        -:11388:/*EOF*/
        -:        -:11389:/*EOF*/
        -:        -:11390:/*EOF*/
        -:        -:11391:/*EOF*/
        -:        -:11392:/*EOF*/
    #####:    #####:11393:/*EOF*/
    #####:    #####:11394:/*EOF*/
        -:        -:11395:/*EOF*/
    #####:    #####:11396:/*EOF*/
    #####:    #####:11397:/*EOF*/
    #####:    #####:11398:/*EOF*/
    #####:    #####:11399:/*EOF*/
        -:        -:11400:/*EOF*/
        -:        -:11401:/*EOF*/
        -:        -:11402:/*EOF*/
        -:        -:11403:/*EOF*/
    #####:    #####:11404:/*EOF*/
    #####:    #####:11405:/*EOF*/
    #####:    #####:11406:/*EOF*/
    #####:    #####:11407:/*EOF*/
    #####:    #####:11408:/*EOF*/
    #####:    #####:11409:/*EOF*/
    #####:    #####:11410:/*EOF*/
    #####:    #####:11411:/*EOF*/
        -:        -:11412:/*EOF*/
    #####:    #####:11413:/*EOF*/
        -:        -:11414:/*EOF*/
        -:        -:11415:/*EOF*/
        -:        -:11416:/*EOF*/
    #####:    #####:11417:/*EOF*/
        -:        -:11418:/*EOF*/
        -:        -:11419:/*EOF*/
        -:        -:11420:/*EOF*/
    #####:    #####:11421:/*EOF*/
        -:        -:11422:/*EOF*/
        -:        -:11423:/*EOF*/
    #####:    #####:11424:/*EOF*/
        -:        -:11425:/*EOF*/
        -:        -:11426:/*EOF*/
    #####:    #####:11427:/*EOF*/
        -:        -:11428:/*EOF*/
        -:        -:11429:/*EOF*/
        -:        -:11430:/*EOF*/
        -:        -:11431:/*EOF*/
        -:        -:11432:/*EOF*/
    #####:    #####:11433:/*EOF*/
    #####:    #####:11434:/*EOF*/
        -:        -:11435:/*EOF*/
    #####:    #####:11436:/*EOF*/
    #####:    #####:11437:/*EOF*/
    #####:    #####:11438:/*EOF*/
    #####:    #####:11439:/*EOF*/
        -:        -:11440:/*EOF*/
        -:        -:11441:/*EOF*/
        -:        -:11442:/*EOF*/
        -:        -:11443:/*EOF*/
    #####:    #####:11444:/*EOF*/
    #####:    #####:11445:/*EOF*/
    #####:    #####:11446:/*EOF*/
    #####:    #####:11447:/*EOF*/
    #####:    #####:11448:/*EOF*/
    #####:    #####:11449:/*EOF*/
        -:        -:11450:/*EOF*/
    #####:    #####:11451:/*EOF*/
        -:        -:11452:/*EOF*/
        -:        -:11453:/*EOF*/
        -:        -:11454:/*EOF*/
    #####:    #####:11455:/*EOF*/
        -:        -:11456:/*EOF*/
        -:        -:11457:/*EOF*/
        -:        -:11458:/*EOF*/
    #####:    #####:11459:/*EOF*/
        -:        -:11460:/*EOF*/
        -:        -:11461:/*EOF*/
    #####:    #####:11462:/*EOF*/
        -:        -:11463:/*EOF*/
        -:        -:11464:/*EOF*/
    #####:    #####:11465:/*EOF*/
        -:        -:11466:/*EOF*/
    #####:    #####:11467:/*EOF*/
        -:        -:11468:/*EOF*/
        -:        -:11469:/*EOF*/
        -:        -:11470:/*EOF*/
        -:        -:11471:/*EOF*/
        -:        -:11472:/*EOF*/
    #####:    #####:11473:/*EOF*/
    #####:    #####:11474:/*EOF*/
        -:        -:11475:/*EOF*/
    #####:    #####:11476:/*EOF*/
    #####:    #####:11477:/*EOF*/
        -:        -:11478:/*EOF*/
    #####:    #####:11479:/*EOF*/
        -:        -:11480:/*EOF*/
    #####:    #####:11481:/*EOF*/
        -:        -:11482:/*EOF*/
        -:        -:11483:/*EOF*/
    #####:    #####:11484:/*EOF*/
        -:        -:11485:/*EOF*/
        -:        -:11486:/*EOF*/
        -:        -:11487:/*EOF*/
        -:        -:11488:/*EOF*/
        -:        -:11489:/*EOF*/
        -:        -:11490:/*EOF*/
    #####:    #####:11491:/*EOF*/
    #####:    #####:11492:/*EOF*/
        -:        -:11493:/*EOF*/
    #####:    #####:11494:/*EOF*/
    #####:    #####:11495:/*EOF*/
        -:        -:11496:/*EOF*/
    #####:    #####:11497:/*EOF*/
        -:        -:11498:/*EOF*/
    #####:    #####:11499:/*EOF*/
        -:        -:11500:/*EOF*/
        -:        -:11501:/*EOF*/
    #####:    #####:11502:/*EOF*/
        -:        -:11503:/*EOF*/
        -:        -:11504:/*EOF*/
        -:        -:11505:/*EOF*/
        -:        -:11506:/*EOF*/
        -:        -:11507:/*EOF*/
        -:        -:11508:/*EOF*/
    #####:    #####:11509:/*EOF*/
    #####:    #####:11510:/*EOF*/
        -:        -:11511:/*EOF*/
    #####:    #####:11512:/*EOF*/
    #####:    #####:11513:/*EOF*/
        -:        -:11514:/*EOF*/
    #####:    #####:11515:/*EOF*/
        -:        -:11516:/*EOF*/
    #####:    #####:11517:/*EOF*/
        -:        -:11518:/*EOF*/
        -:        -:11519:/*EOF*/
    #####:    #####:11520:/*EOF*/
        -:        -:11521:/*EOF*/
        -:        -:11522:/*EOF*/
        -:        -:11523:/*EOF*/
        -:        -:11524:/*EOF*/
        -:        -:11525:/*EOF*/
        -:        -:11526:/*EOF*/
    #####:    #####:11527:/*EOF*/
    #####:    #####:11528:/*EOF*/
        -:        -:11529:/*EOF*/
    #####:    #####:11530:/*EOF*/
    #####:    #####:11531:/*EOF*/
        -:        -:11532:/*EOF*/
    #####:    #####:11533:/*EOF*/
        -:        -:11534:/*EOF*/
    #####:    #####:11535:/*EOF*/
        -:        -:11536:/*EOF*/
        -:        -:11537:/*EOF*/
    #####:    #####:11538:/*EOF*/
        -:        -:11539:/*EOF*/
        -:        -:11540:/*EOF*/
        -:        -:11541:/*EOF*/
    #####:    #####:11542:/*EOF*/
        -:        -:11543:/*EOF*/
        -:        -:11544:/*EOF*/
    #####:    #####:11545:/*EOF*/
        -:        -:11546:/*EOF*/
        -:        -:11547:/*EOF*/
    #####:    #####:11548:/*EOF*/
        -:        -:11549:/*EOF*/
        -:        -:11550:/*EOF*/
    #####:    #####:11551:/*EOF*/
        -:        -:11552:/*EOF*/
        -:        -:11553:/*EOF*/
        -:        -:11554:/*EOF*/
        -:        -:11555:/*EOF*/
        -:        -:11556:/*EOF*/
    #####:    #####:11557:/*EOF*/
    #####:    #####:11558:/*EOF*/
        -:        -:11559:/*EOF*/
        -:        -:11560:/*EOF*/
        -:        -:11561:/*EOF*/
        -:        -:11562:/*EOF*/
        -:        -:11563:/*EOF*/
    #####:    #####:11564:/*EOF*/
    #####:    #####:11565:/*EOF*/
    #####:    #####:11566:/*EOF*/
    #####:    #####:11567:/*EOF*/
    #####:    #####:11568:/*EOF*/
        -:        -:11569:/*EOF*/
        -:        -:11570:/*EOF*/
        -:        -:11571:/*EOF*/
        -:        -:11572:/*EOF*/
    #####:    #####:11573:/*EOF*/
        -:        -:11574:/*EOF*/
        -:        -:11575:/*EOF*/
        -:        -:11576:/*EOF*/
    #####:    #####:11577:/*EOF*/
        -:        -:11578:/*EOF*/
        -:        -:11579:/*EOF*/
    #####:    #####:11580:/*EOF*/
        -:        -:11581:/*EOF*/
        -:        -:11582:/*EOF*/
    #####:    #####:11583:/*EOF*/
        -:        -:11584:/*EOF*/
    #####:    #####:11585:/*EOF*/
        -:        -:11586:/*EOF*/
        -:        -:11587:/*EOF*/
        -:        -:11588:/*EOF*/
        -:        -:11589:/*EOF*/
        -:        -:11590:/*EOF*/
    #####:    #####:11591:/*EOF*/
    #####:    #####:11592:/*EOF*/
        -:        -:11593:/*EOF*/
    #####:    #####:11594:/*EOF*/
    #####:    #####:11595:/*EOF*/
        -:        -:11596:/*EOF*/
    #####:    #####:11597:/*EOF*/
        -:        -:11598:/*EOF*/
    #####:    #####:11599:/*EOF*/
        -:        -:11600:/*EOF*/
        -:        -:11601:/*EOF*/
    #####:    #####:11602:/*EOF*/
        -:        -:11603:/*EOF*/
        -:        -:11604:/*EOF*/
        -:        -:11605:/*EOF*/
        -:        -:11606:/*EOF*/
        -:        -:11607:/*EOF*/
        -:        -:11608:/*EOF*/
    #####:    #####:11609:/*EOF*/
    #####:    #####:11610:/*EOF*/
        -:        -:11611:/*EOF*/
    #####:    #####:11612:/*EOF*/
    #####:    #####:11613:/*EOF*/
        -:        -:11614:/*EOF*/
    #####:    #####:11615:/*EOF*/
        -:        -:11616:/*EOF*/
    #####:    #####:11617:/*EOF*/
        -:        -:11618:/*EOF*/
        -:        -:11619:/*EOF*/
    #####:    #####:11620:/*EOF*/
        -:        -:11621:/*EOF*/
        -:        -:11622:/*EOF*/
        -:        -:11623:/*EOF*/
        -:        -:11624:/*EOF*/
        -:        -:11625:/*EOF*/
        -:        -:11626:/*EOF*/
    #####:    #####:11627:/*EOF*/
    #####:    #####:11628:/*EOF*/
        -:        -:11629:/*EOF*/
    #####:    #####:11630:/*EOF*/
    #####:    #####:11631:/*EOF*/
        -:        -:11632:/*EOF*/
    #####:    #####:11633:/*EOF*/
        -:        -:11634:/*EOF*/
    #####:    #####:11635:/*EOF*/
        -:        -:11636:/*EOF*/
        -:        -:11637:/*EOF*/
    #####:    #####:11638:/*EOF*/
        -:        -:11639:/*EOF*/
        -:        -:11640:/*EOF*/
        -:        -:11641:/*EOF*/
        -:        -:11642:/*EOF*/
        -:        -:11643:/*EOF*/
        -:        -:11644:/*EOF*/
    #####:    #####:11645:/*EOF*/
    #####:    #####:11646:/*EOF*/
        -:        -:11647:/*EOF*/
    #####:    #####:11648:/*EOF*/
    #####:    #####:11649:/*EOF*/
        -:        -:11650:/*EOF*/
    #####:    #####:11651:/*EOF*/
        -:        -:11652:/*EOF*/
    #####:    #####:11653:/*EOF*/
        -:        -:11654:/*EOF*/
        -:        -:11655:/*EOF*/
    #####:    #####:11656:/*EOF*/
        -:        -:11657:/*EOF*/
        -:        -:11658:/*EOF*/
        -:        -:11659:/*EOF*/
    #####:    #####:11660:/*EOF*/
        -:        -:11661:/*EOF*/
        -:        -:11662:/*EOF*/
    #####:    #####:11663:/*EOF*/
        -:        -:11664:/*EOF*/
        -:        -:11665:/*EOF*/
    #####:    #####:11666:/*EOF*/
        -:        -:11667:/*EOF*/
        -:        -:11668:/*EOF*/
    #####:    #####:11669:/*EOF*/
        -:        -:11670:/*EOF*/
    #####:    #####:11671:/*EOF*/
        -:        -:11672:/*EOF*/
        -:        -:11673:/*EOF*/
        -:        -:11674:/*EOF*/
        -:        -:11675:/*EOF*/
        -:        -:11676:/*EOF*/
    #####:    #####:11677:/*EOF*/
    #####:    #####:11678:/*EOF*/
        -:        -:11679:/*EOF*/
    #####:    #####:11680:/*EOF*/
    #####:    #####:11681:/*EOF*/
        -:        -:11682:/*EOF*/
    #####:    #####:11683:/*EOF*/
        -:        -:11684:/*EOF*/
    #####:    #####:11685:/*EOF*/
        -:        -:11686:/*EOF*/
        -:        -:11687:/*EOF*/
    #####:    #####:11688:/*EOF*/
        -:        -:11689:/*EOF*/
        -:        -:11690:/*EOF*/
        -:        -:11691:/*EOF*/
        -:        -:11692:/*EOF*/
        -:        -:11693:/*EOF*/
        -:        -:11694:/*EOF*/
    #####:    #####:11695:/*EOF*/
    #####:    #####:11696:/*EOF*/
        -:        -:11697:/*EOF*/
    #####:    #####:11698:/*EOF*/
    #####:    #####:11699:/*EOF*/
        -:        -:11700:/*EOF*/
    #####:    #####:11701:/*EOF*/
        -:        -:11702:/*EOF*/
    #####:    #####:11703:/*EOF*/
        -:        -:11704:/*EOF*/
        -:        -:11705:/*EOF*/
    #####:    #####:11706:/*EOF*/
        -:        -:11707:/*EOF*/
        -:        -:11708:/*EOF*/
        -:        -:11709:/*EOF*/
        -:        -:11710:/*EOF*/
        -:        -:11711:/*EOF*/
        -:        -:11712:/*EOF*/
    #####:    #####:11713:/*EOF*/
    #####:    #####:11714:/*EOF*/
        -:        -:11715:/*EOF*/
    #####:    #####:11716:/*EOF*/
    #####:    #####:11717:/*EOF*/
        -:        -:11718:/*EOF*/
    #####:    #####:11719:/*EOF*/
        -:        -:11720:/*EOF*/
    #####:    #####:11721:/*EOF*/
        -:        -:11722:/*EOF*/
        -:        -:11723:/*EOF*/
    #####:    #####:11724:/*EOF*/
        -:        -:11725:/*EOF*/
        -:        -:11726:/*EOF*/
        -:        -:11727:/*EOF*/
        -:        -:11728:/*EOF*/
        -:        -:11729:/*EOF*/
        -:        -:11730:/*EOF*/
    #####:    #####:11731:/*EOF*/
    #####:    #####:11732:/*EOF*/
        -:        -:11733:/*EOF*/
    #####:    #####:11734:/*EOF*/
    #####:    #####:11735:/*EOF*/
        -:        -:11736:/*EOF*/
    #####:    #####:11737:/*EOF*/
        -:        -:11738:/*EOF*/
    #####:    #####:11739:/*EOF*/
        -:        -:11740:/*EOF*/
        -:        -:11741:/*EOF*/
    #####:    #####:11742:/*EOF*/
        -:        -:11743:/*EOF*/
        -:        -:11744:/*EOF*/
        -:        -:11745:/*EOF*/
    #####:    #####:11746:/*EOF*/
        -:        -:11747:/*EOF*/
        -:        -:11748:/*EOF*/
    #####:    #####:11749:/*EOF*/
        -:        -:11750:/*EOF*/
        -:        -:11751:/*EOF*/
    #####:    #####:11752:/*EOF*/
        -:        -:11753:/*EOF*/
        -:        -:11754:/*EOF*/
    #####:    #####:11755:/*EOF*/
        -:        -:11756:/*EOF*/
    #####:    #####:11757:/*EOF*/
        -:        -:11758:/*EOF*/
        -:        -:11759:/*EOF*/
        -:        -:11760:/*EOF*/
        -:        -:11761:/*EOF*/
        -:        -:11762:/*EOF*/
    #####:    #####:11763:/*EOF*/
    #####:    #####:11764:/*EOF*/
        -:        -:11765:/*EOF*/
    #####:    #####:11766:/*EOF*/
    #####:    #####:11767:/*EOF*/
        -:        -:11768:/*EOF*/
    #####:    #####:11769:/*EOF*/
        -:        -:11770:/*EOF*/
    #####:    #####:11771:/*EOF*/
        -:        -:11772:/*EOF*/
        -:        -:11773:/*EOF*/
    #####:    #####:11774:/*EOF*/
        -:        -:11775:/*EOF*/
        -:        -:11776:/*EOF*/
        -:        -:11777:/*EOF*/
        -:        -:11778:/*EOF*/
        -:        -:11779:/*EOF*/
        -:        -:11780:/*EOF*/
    #####:    #####:11781:/*EOF*/
    #####:    #####:11782:/*EOF*/
        -:        -:11783:/*EOF*/
    #####:    #####:11784:/*EOF*/
    #####:    #####:11785:/*EOF*/
        -:        -:11786:/*EOF*/
    #####:    #####:11787:/*EOF*/
        -:        -:11788:/*EOF*/
    #####:    #####:11789:/*EOF*/
        -:        -:11790:/*EOF*/
        -:        -:11791:/*EOF*/
    #####:    #####:11792:/*EOF*/
        -:        -:11793:/*EOF*/
        -:        -:11794:/*EOF*/
        -:        -:11795:/*EOF*/
        -:        -:11796:/*EOF*/
        -:        -:11797:/*EOF*/
        -:        -:11798:/*EOF*/
    #####:    #####:11799:/*EOF*/
    #####:    #####:11800:/*EOF*/
        -:        -:11801:/*EOF*/
    #####:    #####:11802:/*EOF*/
    #####:    #####:11803:/*EOF*/
        -:        -:11804:/*EOF*/
    #####:    #####:11805:/*EOF*/
        -:        -:11806:/*EOF*/
    #####:    #####:11807:/*EOF*/
        -:        -:11808:/*EOF*/
        -:        -:11809:/*EOF*/
    #####:    #####:11810:/*EOF*/
        -:        -:11811:/*EOF*/
        -:        -:11812:/*EOF*/
        -:        -:11813:/*EOF*/
        -:        -:11814:/*EOF*/
        -:        -:11815:/*EOF*/
        -:        -:11816:/*EOF*/
    #####:    #####:11817:/*EOF*/
    #####:    #####:11818:/*EOF*/
        -:        -:11819:/*EOF*/
    #####:    #####:11820:/*EOF*/
    #####:    #####:11821:/*EOF*/
        -:        -:11822:/*EOF*/
    #####:    #####:11823:/*EOF*/
        -:        -:11824:/*EOF*/
    #####:    #####:11825:/*EOF*/
        -:        -:11826:/*EOF*/
        -:        -:11827:/*EOF*/
    #####:    #####:11828:/*EOF*/
        -:        -:11829:/*EOF*/
        -:        -:11830:/*EOF*/
        -:        -:11831:/*EOF*/
    #####:    #####:11832:/*EOF*/
        -:        -:11833:/*EOF*/
        -:        -:11834:/*EOF*/
    #####:    #####:11835:/*EOF*/
        -:        -:11836:/*EOF*/
        -:        -:11837:/*EOF*/
    #####:    #####:11838:/*EOF*/
        -:        -:11839:/*EOF*/
        -:        -:11840:/*EOF*/
    #####:    #####:11841:/*EOF*/
        -:        -:11842:/*EOF*/
        -:        -:11843:/*EOF*/
        -:        -:11844:/*EOF*/
        -:        -:11845:/*EOF*/
        -:        -:11846:/*EOF*/
    #####:    #####:11847:/*EOF*/
    #####:    #####:11848:/*EOF*/
        -:        -:11849:/*EOF*/
    #####:    #####:11850:/*EOF*/
    #####:    #####:11851:/*EOF*/
        -:        -:11852:/*EOF*/
        -:        -:11853:/*EOF*/
        -:        -:11854:/*EOF*/
        -:        -:11855:/*EOF*/
    #####:    #####:11856:/*EOF*/
    #####:    #####:11857:/*EOF*/
    #####:    #####:11858:/*EOF*/
        -:        -:11859:/*EOF*/
        -:        -:11860:/*EOF*/
        -:        -:11861:/*EOF*/
    #####:    #####:11862:/*EOF*/
        -:        -:11863:/*EOF*/
        -:        -:11864:/*EOF*/
        -:        -:11865:/*EOF*/
    #####:    #####:11866:/*EOF*/
        -:        -:11867:/*EOF*/
        -:        -:11868:/*EOF*/
    #####:    #####:11869:/*EOF*/
        -:        -:11870:/*EOF*/
        -:        -:11871:/*EOF*/
    #####:    #####:11872:/*EOF*/
        -:        -:11873:/*EOF*/
    #####:    #####:11874:/*EOF*/
        -:        -:11875:/*EOF*/
        -:        -:11876:/*EOF*/
        -:        -:11877:/*EOF*/
        -:        -:11878:/*EOF*/
        -:        -:11879:/*EOF*/
    #####:    #####:11880:/*EOF*/
    #####:    #####:11881:/*EOF*/
        -:        -:11882:/*EOF*/
    #####:    #####:11883:/*EOF*/
    #####:    #####:11884:/*EOF*/
        -:        -:11885:/*EOF*/
    #####:    #####:11886:/*EOF*/
        -:        -:11887:/*EOF*/
    #####:    #####:11888:/*EOF*/
        -:        -:11889:/*EOF*/
        -:        -:11890:/*EOF*/
    #####:    #####:11891:/*EOF*/
        -:        -:11892:/*EOF*/
        -:        -:11893:/*EOF*/
        -:        -:11894:/*EOF*/
        -:        -:11895:/*EOF*/
        -:        -:11896:/*EOF*/
        -:        -:11897:/*EOF*/
    #####:    #####:11898:/*EOF*/
    #####:    #####:11899:/*EOF*/
        -:        -:11900:/*EOF*/
    #####:    #####:11901:/*EOF*/
    #####:    #####:11902:/*EOF*/
        -:        -:11903:/*EOF*/
    #####:    #####:11904:/*EOF*/
        -:        -:11905:/*EOF*/
    #####:    #####:11906:/*EOF*/
        -:        -:11907:/*EOF*/
        -:        -:11908:/*EOF*/
    #####:    #####:11909:/*EOF*/
        -:        -:11910:/*EOF*/
        -:        -:11911:/*EOF*/
        -:        -:11912:/*EOF*/
        -:        -:11913:/*EOF*/
        -:        -:11914:/*EOF*/
        -:        -:11915:/*EOF*/
    #####:    #####:11916:/*EOF*/
    #####:    #####:11917:/*EOF*/
        -:        -:11918:/*EOF*/
    #####:    #####:11919:/*EOF*/
    #####:    #####:11920:/*EOF*/
        -:        -:11921:/*EOF*/
    #####:    #####:11922:/*EOF*/
        -:        -:11923:/*EOF*/
    #####:    #####:11924:/*EOF*/
        -:        -:11925:/*EOF*/
        -:        -:11926:/*EOF*/
    #####:    #####:11927:/*EOF*/
        -:        -:11928:/*EOF*/
        -:        -:11929:/*EOF*/
        -:        -:11930:/*EOF*/
        -:        -:11931:/*EOF*/
        -:        -:11932:/*EOF*/
        -:        -:11933:/*EOF*/
    #####:    #####:11934:/*EOF*/
    #####:    #####:11935:/*EOF*/
        -:        -:11936:/*EOF*/
    #####:    #####:11937:/*EOF*/
    #####:    #####:11938:/*EOF*/
        -:        -:11939:/*EOF*/
    #####:    #####:11940:/*EOF*/
        -:        -:11941:/*EOF*/
    #####:    #####:11942:/*EOF*/
        -:        -:11943:/*EOF*/
        -:        -:11944:/*EOF*/
    #####:    #####:11945:/*EOF*/
        -:        -:11946:/*EOF*/
        -:        -:11947:/*EOF*/
        -:        -:11948:/*EOF*/
    #####:    #####:11949:/*EOF*/
        -:        -:11950:/*EOF*/
        -:        -:11951:/*EOF*/
    #####:    #####:11952:/*EOF*/
        -:        -:11953:/*EOF*/
        -:        -:11954:/*EOF*/
    #####:    #####:11955:/*EOF*/
        -:        -:11956:/*EOF*/
        -:        -:11957:/*EOF*/
    #####:    #####:11958:/*EOF*/
        -:        -:11959:/*EOF*/
        -:        -:11960:/*EOF*/
        -:        -:11961:/*EOF*/
        -:        -:11962:/*EOF*/
        -:        -:11963:/*EOF*/
    #####:    #####:11964:/*EOF*/
    #####:    #####:11965:/*EOF*/
        -:        -:11966:/*EOF*/
    #####:    #####:11967:/*EOF*/
    #####:    #####:11968:/*EOF*/
        -:        -:11969:/*EOF*/
        -:        -:11970:/*EOF*/
        -:        -:11971:/*EOF*/
        -:        -:11972:/*EOF*/
    #####:    #####:11973:/*EOF*/
    #####:    #####:11974:/*EOF*/
    #####:    #####:11975:/*EOF*/
        -:        -:11976:/*EOF*/
        -:        -:11977:/*EOF*/
        -:        -:11978:/*EOF*/
    #####:    #####:11979:/*EOF*/
        -:        -:11980:/*EOF*/
        -:        -:11981:/*EOF*/
        -:        -:11982:/*EOF*/
    #####:    #####:11983:/*EOF*/
        -:        -:11984:/*EOF*/
        -:        -:11985:/*EOF*/
    #####:    #####:11986:/*EOF*/
        -:        -:11987:/*EOF*/
        -:        -:11988:/*EOF*/
    #####:    #####:11989:/*EOF*/
        -:        -:11990:/*EOF*/
    #####:    #####:11991:/*EOF*/
        -:        -:11992:/*EOF*/
        -:        -:11993:/*EOF*/
        -:        -:11994:/*EOF*/
        -:        -:11995:/*EOF*/
        -:        -:11996:/*EOF*/
    #####:    #####:11997:/*EOF*/
    #####:    #####:11998:/*EOF*/
        -:        -:11999:/*EOF*/
    #####:    #####:12000:/*EOF*/
    #####:    #####:12001:/*EOF*/
        -:        -:12002:/*EOF*/
    #####:    #####:12003:/*EOF*/
        -:        -:12004:/*EOF*/
    #####:    #####:12005:/*EOF*/
        -:        -:12006:/*EOF*/
        -:        -:12007:/*EOF*/
    #####:    #####:12008:/*EOF*/
        -:        -:12009:/*EOF*/
        -:        -:12010:/*EOF*/
        -:        -:12011:/*EOF*/
        -:        -:12012:/*EOF*/
        -:        -:12013:/*EOF*/
        -:        -:12014:/*EOF*/
    #####:    #####:12015:/*EOF*/
    #####:    #####:12016:/*EOF*/
        -:        -:12017:/*EOF*/
    #####:    #####:12018:/*EOF*/
    #####:    #####:12019:/*EOF*/
        -:        -:12020:/*EOF*/
    #####:    #####:12021:/*EOF*/
        -:        -:12022:/*EOF*/
    #####:    #####:12023:/*EOF*/
        -:        -:12024:/*EOF*/
        -:        -:12025:/*EOF*/
    #####:    #####:12026:/*EOF*/
        -:        -:12027:/*EOF*/
        -:        -:12028:/*EOF*/
        -:        -:12029:/*EOF*/
        -:        -:12030:/*EOF*/
        -:        -:12031:/*EOF*/
        -:        -:12032:/*EOF*/
    #####:    #####:12033:/*EOF*/
    #####:    #####:12034:/*EOF*/
        -:        -:12035:/*EOF*/
    #####:    #####:12036:/*EOF*/
    #####:    #####:12037:/*EOF*/
        -:        -:12038:/*EOF*/
    #####:    #####:12039:/*EOF*/
        -:        -:12040:/*EOF*/
    #####:    #####:12041:/*EOF*/
        -:        -:12042:/*EOF*/
        -:        -:12043:/*EOF*/
    #####:    #####:12044:/*EOF*/
        -:        -:12045:/*EOF*/
        -:        -:12046:/*EOF*/
        -:        -:12047:/*EOF*/
        -:        -:12048:/*EOF*/
        -:        -:12049:/*EOF*/
        -:        -:12050:/*EOF*/
    #####:    #####:12051:/*EOF*/
    #####:    #####:12052:/*EOF*/
        -:        -:12053:/*EOF*/
    #####:    #####:12054:/*EOF*/
    #####:    #####:12055:/*EOF*/
        -:        -:12056:/*EOF*/
    #####:    #####:12057:/*EOF*/
        -:        -:12058:/*EOF*/
    #####:    #####:12059:/*EOF*/
        -:        -:12060:/*EOF*/
        -:        -:12061:/*EOF*/
    #####:    #####:12062:/*EOF*/
        -:        -:12063:/*EOF*/
        -:        -:12064:/*EOF*/
        -:        -:12065:/*EOF*/
    #####:    #####:12066:/*EOF*/
        -:        -:12067:/*EOF*/
        -:        -:12068:/*EOF*/
    #####:    #####:12069:/*EOF*/
        -:        -:12070:/*EOF*/
        -:        -:12071:/*EOF*/
    #####:    #####:12072:/*EOF*/
        -:        -:12073:/*EOF*/
        -:        -:12074:/*EOF*/
    #####:    #####:12075:/*EOF*/
        -:        -:12076:/*EOF*/
        -:        -:12077:/*EOF*/
        -:        -:12078:/*EOF*/
        -:        -:12079:/*EOF*/
        -:        -:12080:/*EOF*/
    #####:    #####:12081:/*EOF*/
    #####:    #####:12082:/*EOF*/
        -:        -:12083:/*EOF*/
    #####:    #####:12084:/*EOF*/
    #####:    #####:12085:/*EOF*/
        -:        -:12086:/*EOF*/
    #####:    #####:12087:/*EOF*/
        -:        -:12088:/*EOF*/
    #####:    #####:12089:/*EOF*/
        -:        -:12090:/*EOF*/
        -:        -:12091:/*EOF*/
        -:        -:12092:/*EOF*/
    #####:    #####:12093:/*EOF*/
        -:        -:12094:/*EOF*/
        -:        -:12095:/*EOF*/
    #####:    #####:12096:/*EOF*/
        -:        -:12097:/*EOF*/
        -:        -:12098:/*EOF*/
    #####:    #####:12099:/*EOF*/
        -:        -:12100:/*EOF*/
        -:        -:12101:/*EOF*/
        -:        -:12102:/*EOF*/
        -:        -:12103:/*EOF*/
        -:        -:12104:/*EOF*/
    #####:    #####:12105:/*EOF*/
    #####:    #####:12106:/*EOF*/
        -:        -:12107:/*EOF*/
    #####:    #####:12108:/*EOF*/
    #####:    #####:12109:/*EOF*/
        -:        -:12110:/*EOF*/
        -:        -:12111:/*EOF*/
        -:        -:12112:/*EOF*/
        -:        -:12113:/*EOF*/
    #####:    #####:12114:/*EOF*/
    #####:    #####:12115:/*EOF*/
    #####:    #####:12116:/*EOF*/
    #####:    #####:12117:/*EOF*/
    #####:    #####:12118:/*EOF*/
        -:        -:12119:/*EOF*/
        -:        -:12120:/*EOF*/
        -:        -:12121:/*EOF*/
    #####:    #####:12122:/*EOF*/
        -:        -:12123:/*EOF*/
        -:        -:12124:/*EOF*/
        -:        -:12125:/*EOF*/
    #####:    #####:12126:/*EOF*/
        -:        -:12127:/*EOF*/
        -:        -:12128:/*EOF*/
    #####:    #####:12129:/*EOF*/
        -:        -:12130:/*EOF*/
        -:        -:12131:/*EOF*/
    #####:    #####:12132:/*EOF*/
        -:        -:12133:/*EOF*/
        -:        -:12134:/*EOF*/
        -:        -:12135:/*EOF*/
        -:        -:12136:/*EOF*/
        -:        -:12137:/*EOF*/
    #####:    #####:12138:/*EOF*/
    #####:    #####:12139:/*EOF*/
        -:        -:12140:/*EOF*/
        -:        -:12141:/*EOF*/
        -:        -:12142:/*EOF*/
        -:        -:12143:/*EOF*/
        -:        -:12144:/*EOF*/
        -:        -:12145:/*EOF*/
        -:        -:12146:/*EOF*/
    #####:    #####:12147:/*EOF*/
        -:        -:12148:/*EOF*/
    #####:    #####:12149:/*EOF*/
    #####:    #####:12150:/*EOF*/
        -:        -:12151:/*EOF*/
        -:        -:12152:/*EOF*/
    #####:    #####:12153:/*EOF*/
        -:        -:12154:/*EOF*/
        -:        -:12155:/*EOF*/
    #####:    #####:12156:/*EOF*/
        -:        -:12157:/*EOF*/
        -:        -:12158:/*EOF*/
    #####:    #####:12159:/*EOF*/
        -:        -:12160:/*EOF*/
        -:        -:12161:/*EOF*/
        -:        -:12162:/*EOF*/
        -:        -:12163:/*EOF*/
        -:        -:12164:/*EOF*/
    #####:    #####:12165:/*EOF*/
    #####:    #####:12166:/*EOF*/
        -:        -:12167:/*EOF*/
        -:        -:12168:/*EOF*/
    #####:    #####:12169:/*EOF*/
        -:        -:12170:/*EOF*/
    #####:    #####:12171:/*EOF*/
        -:        -:12172:/*EOF*/
        -:        -:12173:/*EOF*/
        -:        -:12174:/*EOF*/
    #####:    #####:12175:/*EOF*/
        -:        -:12176:/*EOF*/
        -:        -:12177:/*EOF*/
    #####:    #####:12178:/*EOF*/
        -:        -:12179:/*EOF*/
        -:        -:12180:/*EOF*/
    #####:    #####:12181:/*EOF*/
        -:        -:12182:/*EOF*/
        -:        -:12183:/*EOF*/
        -:        -:12184:/*EOF*/
        -:        -:12185:/*EOF*/
        -:        -:12186:/*EOF*/
    #####:    #####:12187:/*EOF*/
    #####:    #####:12188:/*EOF*/
        -:        -:12189:/*EOF*/
        -:        -:12190:/*EOF*/
    #####:    #####:12191:/*EOF*/
        -:        -:12192:/*EOF*/
    #####:    #####:12193:/*EOF*/
        -:        -:12194:/*EOF*/
        -:        -:12195:/*EOF*/
        -:        -:12196:/*EOF*/
    #####:    #####:12197:/*EOF*/
        -:        -:12198:/*EOF*/
        -:        -:12199:/*EOF*/
    #####:    #####:12200:/*EOF*/
        -:        -:12201:/*EOF*/
        -:        -:12202:/*EOF*/
    #####:    #####:12203:/*EOF*/
        -:        -:12204:/*EOF*/
        -:        -:12205:/*EOF*/
        -:        -:12206:/*EOF*/
        -:        -:12207:/*EOF*/
        -:        -:12208:/*EOF*/
    #####:    #####:12209:/*EOF*/
    #####:    #####:12210:/*EOF*/
        -:        -:12211:/*EOF*/
        -:        -:12212:/*EOF*/
        -:        -:12213:/*EOF*/
        -:        -:12214:/*EOF*/
        -:        -:12215:/*EOF*/
        -:        -:12216:/*EOF*/
        -:        -:12217:/*EOF*/
        -:        -:12218:/*EOF*/
    #####:    #####:12219:/*EOF*/
    #####:    #####:12220:/*EOF*/
        -:        -:12221:/*EOF*/
        -:        -:12222:/*EOF*/
    #####:    #####:12223:/*EOF*/
    #####:    #####:12224:/*EOF*/
        -:        -:12225:/*EOF*/
        -:        -:12226:/*EOF*/
    #####:    #####:12227:/*EOF*/
        -:        -:12228:/*EOF*/
        -:        -:12229:/*EOF*/
    #####:    #####:12230:/*EOF*/
        -:        -:12231:/*EOF*/
        -:        -:12232:/*EOF*/
    #####:    #####:12233:/*EOF*/
        -:        -:12234:/*EOF*/
        -:        -:12235:/*EOF*/
        -:        -:12236:/*EOF*/
        -:        -:12237:/*EOF*/
        -:        -:12238:/*EOF*/
    #####:    #####:12239:/*EOF*/
    #####:    #####:12240:/*EOF*/
        -:        -:12241:/*EOF*/
        -:        -:12242:/*EOF*/
        -:        -:12243:/*EOF*/
        -:        -:12244:/*EOF*/
        -:        -:12245:/*EOF*/
        -:        -:12246:/*EOF*/
        -:        -:12247:/*EOF*/
    #####:    #####:12248:/*EOF*/
        -:        -:12249:/*EOF*/
    #####:    #####:12250:/*EOF*/
        -:        -:12251:/*EOF*/
        -:        -:12252:/*EOF*/
    #####:    #####:12253:/*EOF*/
        -:        -:12254:/*EOF*/
        -:        -:12255:/*EOF*/
    #####:    #####:12256:/*EOF*/
        -:        -:12257:/*EOF*/
        -:        -:12258:/*EOF*/
    #####:    #####:12259:/*EOF*/
        -:        -:12260:/*EOF*/
        -:        -:12261:/*EOF*/
        -:        -:12262:/*EOF*/
        -:        -:12263:/*EOF*/
        -:        -:12264:/*EOF*/
    #####:    #####:12265:/*EOF*/
    #####:    #####:12266:/*EOF*/
        -:        -:12267:/*EOF*/
        -:        -:12268:/*EOF*/
        -:        -:12269:/*EOF*/
        -:        -:12270:/*EOF*/
        -:        -:12271:/*EOF*/
        -:        -:12272:/*EOF*/
        -:        -:12273:/*EOF*/
    #####:    #####:12274:/*EOF*/
        -:        -:12275:/*EOF*/
    #####:    #####:12276:/*EOF*/
        -:        -:12277:/*EOF*/
        -:        -:12278:/*EOF*/
    #####:    #####:12279:/*EOF*/
        -:        -:12280:/*EOF*/
        -:        -:12281:/*EOF*/
    #####:    #####:12282:/*EOF*/
        -:        -:12283:/*EOF*/
        -:        -:12284:/*EOF*/
    #####:    #####:12285:/*EOF*/
        -:        -:12286:/*EOF*/
        -:        -:12287:/*EOF*/
        -:        -:12288:/*EOF*/
        -:        -:12289:/*EOF*/
        -:        -:12290:/*EOF*/
    #####:    #####:12291:/*EOF*/
    #####:    #####:12292:/*EOF*/
        -:        -:12293:/*EOF*/
        -:        -:12294:/*EOF*/
        -:        -:12295:/*EOF*/
        -:        -:12296:/*EOF*/
        -:        -:12297:/*EOF*/
        -:        -:12298:/*EOF*/
        -:        -:12299:/*EOF*/
        -:        -:12300:/*EOF*/
    #####:    #####:12301:/*EOF*/
    #####:    #####:12302:/*EOF*/
        -:        -:12303:/*EOF*/
        -:        -:12304:/*EOF*/
    #####:    #####:12305:/*EOF*/
    #####:    #####:12306:/*EOF*/
        -:        -:12307:/*EOF*/
        -:        -:12308:/*EOF*/
    #####:    #####:12309:/*EOF*/
        -:        -:12310:/*EOF*/
        -:        -:12311:/*EOF*/
    #####:    #####:12312:/*EOF*/
        -:        -:12313:/*EOF*/
        -:        -:12314:/*EOF*/
    #####:    #####:12315:/*EOF*/
        -:        -:12316:/*EOF*/
        -:        -:12317:/*EOF*/
        -:        -:12318:/*EOF*/
        -:        -:12319:/*EOF*/
        -:        -:12320:/*EOF*/
    #####:    #####:12321:/*EOF*/
    #####:    #####:12322:/*EOF*/
        -:        -:12323:/*EOF*/
        -:        -:12324:/*EOF*/
        -:        -:12325:/*EOF*/
        -:        -:12326:/*EOF*/
        -:        -:12327:/*EOF*/
        -:        -:12328:/*EOF*/
        -:        -:12329:/*EOF*/
        -:        -:12330:/*EOF*/
    #####:    #####:12331:/*EOF*/
    #####:    #####:12332:/*EOF*/
    #####:    #####:12333:/*EOF*/
    #####:    #####:12334:/*EOF*/
        -:        -:12335:/*EOF*/
        -:        -:12336:/*EOF*/
    #####:    #####:12337:/*EOF*/
    #####:    #####:12338:/*EOF*/
    #####:    #####:12339:/*EOF*/
    #####:    #####:12340:/*EOF*/
        -:        -:12341:/*EOF*/
        -:        -:12342:/*EOF*/
    #####:    #####:12343:/*EOF*/
        -:        -:12344:/*EOF*/
        -:        -:12345:/*EOF*/
    #####:    #####:12346:/*EOF*/
        -:        -:12347:/*EOF*/
        -:        -:12348:/*EOF*/
    #####:    #####:12349:/*EOF*/
        -:        -:12350:/*EOF*/
        -:        -:12351:/*EOF*/
        -:        -:12352:/*EOF*/
        -:        -:12353:/*EOF*/
        -:        -:12354:/*EOF*/
    #####:    #####:12355:/*EOF*/
    #####:    #####:12356:/*EOF*/
        -:        -:12357:/*EOF*/
        -:        -:12358:/*EOF*/
        -:        -:12359:/*EOF*/
        -:        -:12360:/*EOF*/
        -:        -:12361:/*EOF*/
        -:        -:12362:/*EOF*/
        -:        -:12363:/*EOF*/
        -:        -:12364:/*EOF*/
    #####:    #####:12365:/*EOF*/
    #####:    #####:12366:/*EOF*/
        -:        -:12367:/*EOF*/
        -:        -:12368:/*EOF*/
    #####:    #####:12369:/*EOF*/
    #####:    #####:12370:/*EOF*/
        -:        -:12371:/*EOF*/
        -:        -:12372:/*EOF*/
    #####:    #####:12373:/*EOF*/
        -:        -:12374:/*EOF*/
        -:        -:12375:/*EOF*/
    #####:    #####:12376:/*EOF*/
        -:        -:12377:/*EOF*/
        -:        -:12378:/*EOF*/
    #####:    #####:12379:/*EOF*/
        -:        -:12380:/*EOF*/
        -:        -:12381:/*EOF*/
        -:        -:12382:/*EOF*/
        -:        -:12383:/*EOF*/
        -:        -:12384:/*EOF*/
    #####:    #####:12385:/*EOF*/
    #####:    #####:12386:/*EOF*/
        -:        -:12387:/*EOF*/
        -:        -:12388:/*EOF*/
        -:        -:12389:/*EOF*/
        -:        -:12390:/*EOF*/
        -:        -:12391:/*EOF*/
        -:        -:12392:/*EOF*/
        -:        -:12393:/*EOF*/
        -:        -:12394:/*EOF*/
    #####:    #####:12395:/*EOF*/
    #####:    #####:12396:/*EOF*/
    #####:    #####:12397:/*EOF*/
    #####:    #####:12398:/*EOF*/
        -:        -:12399:/*EOF*/
        -:        -:12400:/*EOF*/
    #####:    #####:12401:/*EOF*/
    #####:    #####:12402:/*EOF*/
    #####:    #####:12403:/*EOF*/
    #####:    #####:12404:/*EOF*/
        -:        -:12405:/*EOF*/
        -:        -:12406:/*EOF*/
    #####:    #####:12407:/*EOF*/
        -:        -:12408:/*EOF*/
        -:        -:12409:/*EOF*/
    #####:    #####:12410:/*EOF*/
        -:        -:12411:/*EOF*/
        -:        -:12412:/*EOF*/
    #####:    #####:12413:/*EOF*/
        -:        -:12414:/*EOF*/
        -:        -:12415:/*EOF*/
        -:        -:12416:/*EOF*/
        -:        -:12417:/*EOF*/
        -:        -:12418:/*EOF*/
    #####:    #####:12419:/*EOF*/
    #####:    #####:12420:/*EOF*/
        -:        -:12421:/*EOF*/
    #####:    #####:12422:/*EOF*/
    #####:    #####:12423:/*EOF*/
        -:        -:12424:/*EOF*/
        -:        -:12425:/*EOF*/
        -:        -:12426:/*EOF*/
        -:        -:12427:/*EOF*/
    #####:    #####:12428:/*EOF*/
    #####:    #####:12429:/*EOF*/
    #####:    #####:12430:/*EOF*/
        -:        -:12431:/*EOF*/
        -:        -:12432:/*EOF*/
        -:        -:12433:/*EOF*/
    #####:    #####:12434:/*EOF*/
        -:        -:12435:/*EOF*/
        -:        -:12436:/*EOF*/
        -:        -:12437:/*EOF*/
    #####:    #####:12438:/*EOF*/
        -:        -:12439:/*EOF*/
        -:        -:12440:/*EOF*/
    #####:    #####:12441:/*EOF*/
        -:        -:12442:/*EOF*/
        -:        -:12443:/*EOF*/
    #####:    #####:12444:/*EOF*/
        -:        -:12445:/*EOF*/
    #####:    #####:12446:/*EOF*/
        -:        -:12447:/*EOF*/
        -:        -:12448:/*EOF*/
        -:        -:12449:/*EOF*/
        -:        -:12450:/*EOF*/
        -:        -:12451:/*EOF*/
    #####:    #####:12452:/*EOF*/
    #####:    #####:12453:/*EOF*/
        -:        -:12454:/*EOF*/
    #####:    #####:12455:/*EOF*/
    #####:    #####:12456:/*EOF*/
        -:        -:12457:/*EOF*/
    #####:    #####:12458:/*EOF*/
        -:        -:12459:/*EOF*/
    #####:    #####:12460:/*EOF*/
        -:        -:12461:/*EOF*/
        -:        -:12462:/*EOF*/
    #####:    #####:12463:/*EOF*/
        -:        -:12464:/*EOF*/
        -:        -:12465:/*EOF*/
        -:        -:12466:/*EOF*/
        -:        -:12467:/*EOF*/
        -:        -:12468:/*EOF*/
        -:        -:12469:/*EOF*/
    #####:    #####:12470:/*EOF*/
    #####:    #####:12471:/*EOF*/
        -:        -:12472:/*EOF*/
    #####:    #####:12473:/*EOF*/
    #####:    #####:12474:/*EOF*/
        -:        -:12475:/*EOF*/
    #####:    #####:12476:/*EOF*/
        -:        -:12477:/*EOF*/
    #####:    #####:12478:/*EOF*/
        -:        -:12479:/*EOF*/
        -:        -:12480:/*EOF*/
    #####:    #####:12481:/*EOF*/
        -:        -:12482:/*EOF*/
        -:        -:12483:/*EOF*/
        -:        -:12484:/*EOF*/
        -:        -:12485:/*EOF*/
        -:        -:12486:/*EOF*/
        -:        -:12487:/*EOF*/
    #####:    #####:12488:/*EOF*/
    #####:    #####:12489:/*EOF*/
        -:        -:12490:/*EOF*/
    #####:    #####:12491:/*EOF*/
    #####:    #####:12492:/*EOF*/
        -:        -:12493:/*EOF*/
    #####:    #####:12494:/*EOF*/
        -:        -:12495:/*EOF*/
    #####:    #####:12496:/*EOF*/
        -:        -:12497:/*EOF*/
        -:        -:12498:/*EOF*/
    #####:    #####:12499:/*EOF*/
        -:        -:12500:/*EOF*/
        -:        -:12501:/*EOF*/
        -:        -:12502:/*EOF*/
        -:        -:12503:/*EOF*/
        -:        -:12504:/*EOF*/
        -:        -:12505:/*EOF*/
    #####:    #####:12506:/*EOF*/
    #####:    #####:12507:/*EOF*/
        -:        -:12508:/*EOF*/
    #####:    #####:12509:/*EOF*/
    #####:    #####:12510:/*EOF*/
        -:        -:12511:/*EOF*/
    #####:    #####:12512:/*EOF*/
        -:        -:12513:/*EOF*/
    #####:    #####:12514:/*EOF*/
        -:        -:12515:/*EOF*/
        -:        -:12516:/*EOF*/
    #####:    #####:12517:/*EOF*/
        -:        -:12518:/*EOF*/
        -:        -:12519:/*EOF*/
        -:        -:12520:/*EOF*/
    #####:    #####:12521:/*EOF*/
        -:        -:12522:/*EOF*/
        -:        -:12523:/*EOF*/
    #####:    #####:12524:/*EOF*/
        -:        -:12525:/*EOF*/
        -:        -:12526:/*EOF*/
    #####:    #####:12527:/*EOF*/
        -:        -:12528:/*EOF*/
        -:        -:12529:/*EOF*/
    #####:    #####:12530:/*EOF*/
        -:        -:12531:/*EOF*/
        -:        -:12532:/*EOF*/
        -:        -:12533:/*EOF*/
        -:        -:12534:/*EOF*/
        -:        -:12535:/*EOF*/
    #####:    #####:12536:/*EOF*/
    #####:    #####:12537:/*EOF*/
        -:        -:12538:/*EOF*/
    #####:    #####:12539:/*EOF*/
    #####:    #####:12540:/*EOF*/
        -:        -:12541:/*EOF*/
        -:        -:12542:/*EOF*/
        -:        -:12543:/*EOF*/
        -:        -:12544:/*EOF*/
    #####:    #####:12545:/*EOF*/
    #####:    #####:12546:/*EOF*/
    #####:    #####:12547:/*EOF*/
    #####:    #####:12548:/*EOF*/
    #####:    #####:12549:/*EOF*/
    #####:    #####:12550:/*EOF*/
        -:        -:12551:/*EOF*/
        -:        -:12552:/*EOF*/
        -:        -:12553:/*EOF*/
    #####:    #####:12554:/*EOF*/
        -:        -:12555:/*EOF*/
        -:        -:12556:/*EOF*/
        -:        -:12557:/*EOF*/
    #####:    #####:12558:/*EOF*/
        -:        -:12559:/*EOF*/
        -:        -:12560:/*EOF*/
    #####:    #####:12561:/*EOF*/
        -:        -:12562:/*EOF*/
        -:        -:12563:/*EOF*/
    #####:    #####:12564:/*EOF*/
        -:        -:12565:/*EOF*/
    #####:    #####:12566:/*EOF*/
        -:        -:12567:/*EOF*/
        -:        -:12568:/*EOF*/
        -:        -:12569:/*EOF*/
        -:        -:12570:/*EOF*/
        -:        -:12571:/*EOF*/
    #####:    #####:12572:/*EOF*/
    #####:    #####:12573:/*EOF*/
        -:        -:12574:/*EOF*/
    #####:    #####:12575:/*EOF*/
    #####:    #####:12576:/*EOF*/
        -:        -:12577:/*EOF*/
    #####:    #####:12578:/*EOF*/
        -:        -:12579:/*EOF*/
    #####:    #####:12580:/*EOF*/
        -:        -:12581:/*EOF*/
        -:        -:12582:/*EOF*/
    #####:    #####:12583:/*EOF*/
        -:        -:12584:/*EOF*/
        -:        -:12585:/*EOF*/
        -:        -:12586:/*EOF*/
        -:        -:12587:/*EOF*/
        -:        -:12588:/*EOF*/
        -:        -:12589:/*EOF*/
    #####:    #####:12590:/*EOF*/
    #####:    #####:12591:/*EOF*/
        -:        -:12592:/*EOF*/
    #####:    #####:12593:/*EOF*/
    #####:    #####:12594:/*EOF*/
        -:        -:12595:/*EOF*/
    #####:    #####:12596:/*EOF*/
        -:        -:12597:/*EOF*/
    #####:    #####:12598:/*EOF*/
        -:        -:12599:/*EOF*/
        -:        -:12600:/*EOF*/
    #####:    #####:12601:/*EOF*/
        -:        -:12602:/*EOF*/
        -:        -:12603:/*EOF*/
        -:        -:12604:/*EOF*/
        -:        -:12605:/*EOF*/
        -:        -:12606:/*EOF*/
        -:        -:12607:/*EOF*/
    #####:    #####:12608:/*EOF*/
    #####:    #####:12609:/*EOF*/
        -:        -:12610:/*EOF*/
    #####:    #####:12611:/*EOF*/
    #####:    #####:12612:/*EOF*/
        -:        -:12613:/*EOF*/
    #####:    #####:12614:/*EOF*/
        -:        -:12615:/*EOF*/
    #####:    #####:12616:/*EOF*/
        -:        -:12617:/*EOF*/
        -:        -:12618:/*EOF*/
    #####:    #####:12619:/*EOF*/
        -:        -:12620:/*EOF*/
        -:        -:12621:/*EOF*/
        -:        -:12622:/*EOF*/
        -:        -:12623:/*EOF*/
        -:        -:12624:/*EOF*/
        -:        -:12625:/*EOF*/
    #####:    #####:12626:/*EOF*/
    #####:    #####:12627:/*EOF*/
        -:        -:12628:/*EOF*/
    #####:    #####:12629:/*EOF*/
    #####:    #####:12630:/*EOF*/
        -:        -:12631:/*EOF*/
    #####:    #####:12632:/*EOF*/
        -:        -:12633:/*EOF*/
    #####:    #####:12634:/*EOF*/
        -:        -:12635:/*EOF*/
        -:        -:12636:/*EOF*/
    #####:    #####:12637:/*EOF*/
        -:        -:12638:/*EOF*/
        -:        -:12639:/*EOF*/
        -:        -:12640:/*EOF*/
    #####:    #####:12641:/*EOF*/
        -:        -:12642:/*EOF*/
        -:        -:12643:/*EOF*/
    #####:    #####:12644:/*EOF*/
        -:        -:12645:/*EOF*/
        -:        -:12646:/*EOF*/
    #####:    #####:12647:/*EOF*/
        -:        -:12648:/*EOF*/
        -:        -:12649:/*EOF*/
    #####:    #####:12650:/*EOF*/
        -:        -:12651:/*EOF*/
    #####:    #####:12652:/*EOF*/
        -:        -:12653:/*EOF*/
        -:        -:12654:/*EOF*/
        -:        -:12655:/*EOF*/
        -:        -:12656:/*EOF*/
        -:        -:12657:/*EOF*/
    #####:    #####:12658:/*EOF*/
    #####:    #####:12659:/*EOF*/
        -:        -:12660:/*EOF*/
        -:        -:12661:/*EOF*/
        -:        -:12662:/*EOF*/
        -:        -:12663:/*EOF*/
        -:        -:12664:/*EOF*/
    #####:    #####:12665:/*EOF*/
    #####:    #####:12666:/*EOF*/
        -:        -:12667:/*EOF*/
        -:        -:12668:/*EOF*/
        -:        -:12669:/*EOF*/
        -:        -:12670:/*EOF*/
        -:        -:12671:/*EOF*/
        -:        -:12672:/*EOF*/
        -:        -:12673:/*EOF*/
        -:        -:12674:/*EOF*/
    #####:    #####:12675:/*EOF*/
    #####:    #####:12676:/*EOF*/
        -:        -:12677:/*EOF*/
        -:        -:12678:/*EOF*/
    #####:    #####:12679:/*EOF*/
    #####:    #####:12680:/*EOF*/
        -:        -:12681:/*EOF*/
    #####:    #####:12682:/*EOF*/
        -:        -:12683:/*EOF*/
        -:        -:12684:/*EOF*/
        -:        -:12685:/*EOF*/
        -:        -:12686:/*EOF*/
        -:        -:12687:/*EOF*/
        -:        -:12688:/*EOF*/
    #####:    #####:12689:/*EOF*/
    #####:    #####:12690:/*EOF*/
        -:        -:12691:/*EOF*/
        -:        -:12692:/*EOF*/
        -:        -:12693:/*EOF*/
        -:        -:12694:/*EOF*/
        -:        -:12695:/*EOF*/
    #####:    #####:12696:/*EOF*/
    #####:    #####:12697:/*EOF*/
        -:        -:12698:/*EOF*/
        -:        -:12699:/*EOF*/
        -:        -:12700:/*EOF*/
        -:        -:12701:/*EOF*/
        -:        -:12702:/*EOF*/
        -:        -:12703:/*EOF*/
        -:        -:12704:/*EOF*/
        -:        -:12705:/*EOF*/
    #####:    #####:12706:/*EOF*/
    #####:    #####:12707:/*EOF*/
        -:        -:12708:/*EOF*/
        -:        -:12709:/*EOF*/
    #####:    #####:12710:/*EOF*/
    #####:    #####:12711:/*EOF*/
        -:        -:12712:/*EOF*/
    #####:    #####:12713:/*EOF*/
        -:        -:12714:/*EOF*/
        -:        -:12715:/*EOF*/
        -:        -:12716:/*EOF*/
        -:        -:12717:/*EOF*/
        -:        -:12718:/*EOF*/
        -:        -:12719:/*EOF*/
    #####:    #####:12720:/*EOF*/
    #####:    #####:12721:/*EOF*/
        -:        -:12722:/*EOF*/
        -:        -:12723:/*EOF*/
        -:        -:12724:/*EOF*/
        -:        -:12725:/*EOF*/
        -:        -:12726:/*EOF*/
    #####:    #####:12727:/*EOF*/
    #####:    #####:12728:/*EOF*/
        -:        -:12729:/*EOF*/
        -:        -:12730:/*EOF*/
        -:        -:12731:/*EOF*/
        -:        -:12732:/*EOF*/
        -:        -:12733:/*EOF*/
        -:        -:12734:/*EOF*/
        -:        -:12735:/*EOF*/
        -:        -:12736:/*EOF*/
    #####:    #####:12737:/*EOF*/
    #####:    #####:12738:/*EOF*/
        -:        -:12739:/*EOF*/
        -:        -:12740:/*EOF*/
    #####:    #####:12741:/*EOF*/
    #####:    #####:12742:/*EOF*/
        -:        -:12743:/*EOF*/
    #####:    #####:12744:/*EOF*/
        -:        -:12745:/*EOF*/
        -:        -:12746:/*EOF*/
        -:        -:12747:/*EOF*/
        -:        -:12748:/*EOF*/
        -:        -:12749:/*EOF*/
        -:        -:12750:/*EOF*/
    #####:    #####:12751:/*EOF*/
    #####:    #####:12752:/*EOF*/
        -:        -:12753:/*EOF*/
        -:        -:12754:/*EOF*/
        -:        -:12755:/*EOF*/
        -:        -:12756:/*EOF*/
        -:        -:12757:/*EOF*/
    #####:    #####:12758:/*EOF*/
    #####:    #####:12759:/*EOF*/
        -:        -:12760:/*EOF*/
        -:        -:12761:/*EOF*/
        -:        -:12762:/*EOF*/
        -:        -:12763:/*EOF*/
        -:        -:12764:/*EOF*/
        -:        -:12765:/*EOF*/
        -:        -:12766:/*EOF*/
        -:        -:12767:/*EOF*/
    #####:    #####:12768:/*EOF*/
    #####:    #####:12769:/*EOF*/
        -:        -:12770:/*EOF*/
        -:        -:12771:/*EOF*/
    #####:    #####:12772:/*EOF*/
    #####:    #####:12773:/*EOF*/
        -:        -:12774:/*EOF*/
    #####:    #####:12775:/*EOF*/
        -:        -:12776:/*EOF*/
        -:        -:12777:/*EOF*/
        -:        -:12778:/*EOF*/
    #####:    #####:12779:/*EOF*/
        -:        -:12780:/*EOF*/
        -:        -:12781:/*EOF*/
    #####:    #####:12782:/*EOF*/
        -:        -:12783:/*EOF*/
        -:        -:12784:/*EOF*/
    #####:    #####:12785:/*EOF*/
        -:        -:12786:/*EOF*/
        -:        -:12787:/*EOF*/
    #####:    #####:12788:/*EOF*/
        -:        -:12789:/*EOF*/
    #####:    #####:12790:/*EOF*/
        -:        -:12791:/*EOF*/
        -:        -:12792:/*EOF*/
        -:        -:12793:/*EOF*/
        -:        -:12794:/*EOF*/
        -:        -:12795:/*EOF*/
    #####:    #####:12796:/*EOF*/
    #####:    #####:12797:/*EOF*/
        -:        -:12798:/*EOF*/
        -:        -:12799:/*EOF*/
        -:        -:12800:/*EOF*/
        -:        -:12801:/*EOF*/
        -:        -:12802:/*EOF*/
    #####:    #####:12803:/*EOF*/
    #####:    #####:12804:/*EOF*/
        -:        -:12805:/*EOF*/
        -:        -:12806:/*EOF*/
        -:        -:12807:/*EOF*/
        -:        -:12808:/*EOF*/
        -:        -:12809:/*EOF*/
    #####:    #####:12810:/*EOF*/
    #####:    #####:12811:/*EOF*/
        -:        -:12812:/*EOF*/
        -:        -:12813:/*EOF*/
        -:        -:12814:/*EOF*/
        -:        -:12815:/*EOF*/
        -:        -:12816:/*EOF*/
        -:        -:12817:/*EOF*/
        -:        -:12818:/*EOF*/
        -:        -:12819:/*EOF*/
    #####:    #####:12820:/*EOF*/
    #####:    #####:12821:/*EOF*/
    #####:    #####:12822:/*EOF*/
        -:        -:12823:/*EOF*/
        -:        -:12824:/*EOF*/
    #####:    #####:12825:/*EOF*/
    #####:    #####:12826:/*EOF*/
    #####:    #####:12827:/*EOF*/
        -:        -:12828:/*EOF*/
    #####:    #####:12829:/*EOF*/
        -:        -:12830:/*EOF*/
        -:        -:12831:/*EOF*/
        -:        -:12832:/*EOF*/
        -:        -:12833:/*EOF*/
        -:        -:12834:/*EOF*/
        -:        -:12835:/*EOF*/
    #####:    #####:12836:/*EOF*/
    #####:    #####:12837:/*EOF*/
        -:        -:12838:/*EOF*/
        -:        -:12839:/*EOF*/
        -:        -:12840:/*EOF*/
        -:        -:12841:/*EOF*/
        -:        -:12842:/*EOF*/
    #####:    #####:12843:/*EOF*/
    #####:    #####:12844:/*EOF*/
        -:        -:12845:/*EOF*/
        -:        -:12846:/*EOF*/
        -:        -:12847:/*EOF*/
        -:        -:12848:/*EOF*/
        -:        -:12849:/*EOF*/
    #####:    #####:12850:/*EOF*/
    #####:    #####:12851:/*EOF*/
        -:        -:12852:/*EOF*/
        -:        -:12853:/*EOF*/
        -:        -:12854:/*EOF*/
        -:        -:12855:/*EOF*/
        -:        -:12856:/*EOF*/
        -:        -:12857:/*EOF*/
        -:        -:12858:/*EOF*/
        -:        -:12859:/*EOF*/
    #####:    #####:12860:/*EOF*/
    #####:    #####:12861:/*EOF*/
    #####:    #####:12862:/*EOF*/
        -:        -:12863:/*EOF*/
        -:        -:12864:/*EOF*/
    #####:    #####:12865:/*EOF*/
    #####:    #####:12866:/*EOF*/
    #####:    #####:12867:/*EOF*/
        -:        -:12868:/*EOF*/
    #####:    #####:12869:/*EOF*/
        -:        -:12870:/*EOF*/
        -:        -:12871:/*EOF*/
        -:        -:12872:/*EOF*/
        -:        -:12873:/*EOF*/
        -:        -:12874:/*EOF*/
        -:        -:12875:/*EOF*/
    #####:    #####:12876:/*EOF*/
    #####:    #####:12877:/*EOF*/
        -:        -:12878:/*EOF*/
        -:        -:12879:/*EOF*/
        -:        -:12880:/*EOF*/
        -:        -:12881:/*EOF*/
        -:        -:12882:/*EOF*/
    #####:    #####:12883:/*EOF*/
    #####:    #####:12884:/*EOF*/
        -:        -:12885:/*EOF*/
        -:        -:12886:/*EOF*/
        -:        -:12887:/*EOF*/
        -:        -:12888:/*EOF*/
        -:        -:12889:/*EOF*/
    #####:    #####:12890:/*EOF*/
    #####:    #####:12891:/*EOF*/
        -:        -:12892:/*EOF*/
        -:        -:12893:/*EOF*/
        -:        -:12894:/*EOF*/
        -:        -:12895:/*EOF*/
        -:        -:12896:/*EOF*/
        -:        -:12897:/*EOF*/
        -:        -:12898:/*EOF*/
        -:        -:12899:/*EOF*/
    #####:    #####:12900:/*EOF*/
    #####:    #####:12901:/*EOF*/
    #####:    #####:12902:/*EOF*/
        -:        -:12903:/*EOF*/
        -:        -:12904:/*EOF*/
    #####:    #####:12905:/*EOF*/
    #####:    #####:12906:/*EOF*/
    #####:    #####:12907:/*EOF*/
        -:        -:12908:/*EOF*/
    #####:    #####:12909:/*EOF*/
        -:        -:12910:/*EOF*/
        -:        -:12911:/*EOF*/
        -:        -:12912:/*EOF*/
        -:        -:12913:/*EOF*/
        -:        -:12914:/*EOF*/
        -:        -:12915:/*EOF*/
    #####:    #####:12916:/*EOF*/
    #####:    #####:12917:/*EOF*/
        -:        -:12918:/*EOF*/
        -:        -:12919:/*EOF*/
        -:        -:12920:/*EOF*/
        -:        -:12921:/*EOF*/
        -:        -:12922:/*EOF*/
    #####:    #####:12923:/*EOF*/
    #####:    #####:12924:/*EOF*/
        -:        -:12925:/*EOF*/
        -:        -:12926:/*EOF*/
        -:        -:12927:/*EOF*/
        -:        -:12928:/*EOF*/
        -:        -:12929:/*EOF*/
    #####:    #####:12930:/*EOF*/
    #####:    #####:12931:/*EOF*/
        -:        -:12932:/*EOF*/
        -:        -:12933:/*EOF*/
        -:        -:12934:/*EOF*/
        -:        -:12935:/*EOF*/
        -:        -:12936:/*EOF*/
        -:        -:12937:/*EOF*/
        -:        -:12938:/*EOF*/
        -:        -:12939:/*EOF*/
    #####:    #####:12940:/*EOF*/
    #####:    #####:12941:/*EOF*/
    #####:    #####:12942:/*EOF*/
        -:        -:12943:/*EOF*/
        -:        -:12944:/*EOF*/
    #####:    #####:12945:/*EOF*/
    #####:    #####:12946:/*EOF*/
    #####:    #####:12947:/*EOF*/
        -:        -:12948:/*EOF*/
    #####:    #####:12949:/*EOF*/
        -:        -:12950:/*EOF*/
        -:        -:12951:/*EOF*/
        -:        -:12952:/*EOF*/
    #####:    #####:12953:/*EOF*/
        -:        -:12954:/*EOF*/
        -:        -:12955:/*EOF*/
    #####:    #####:12956:/*EOF*/
        -:        -:12957:/*EOF*/
        -:        -:12958:/*EOF*/
    #####:    #####:12959:/*EOF*/
        -:        -:12960:/*EOF*/
        -:        -:12961:/*EOF*/
    #####:    #####:12962:/*EOF*/
        -:        -:12963:/*EOF*/
    #####:    #####:12964:/*EOF*/
        -:        -:12965:/*EOF*/
        -:        -:12966:/*EOF*/
        -:        -:12967:/*EOF*/
        -:        -:12968:/*EOF*/
        -:        -:12969:/*EOF*/
    #####:    #####:12970:/*EOF*/
    #####:    #####:12971:/*EOF*/
        -:        -:12972:/*EOF*/
        -:        -:12973:/*EOF*/
        -:        -:12974:/*EOF*/
        -:        -:12975:/*EOF*/
        -:        -:12976:/*EOF*/
    #####:    #####:12977:/*EOF*/
    #####:    #####:12978:/*EOF*/
        -:        -:12979:/*EOF*/
        -:        -:12980:/*EOF*/
        -:        -:12981:/*EOF*/
        -:        -:12982:/*EOF*/
        -:        -:12983:/*EOF*/
    #####:    #####:12984:/*EOF*/
    #####:    #####:12985:/*EOF*/
        -:        -:12986:/*EOF*/
        -:        -:12987:/*EOF*/
        -:        -:12988:/*EOF*/
        -:        -:12989:/*EOF*/
        -:        -:12990:/*EOF*/
    #####:    #####:12991:/*EOF*/
    #####:    #####:12992:/*EOF*/
        -:        -:12993:/*EOF*/
        -:        -:12994:/*EOF*/
        -:        -:12995:/*EOF*/
        -:        -:12996:/*EOF*/
        -:        -:12997:/*EOF*/
        -:        -:12998:/*EOF*/
        -:        -:12999:/*EOF*/
        -:        -:13000:/*EOF*/
    #####:    #####:13001:/*EOF*/
    #####:    #####:13002:/*EOF*/
    #####:    #####:13003:/*EOF*/
    #####:    #####:13004:/*EOF*/
        -:        -:13005:/*EOF*/
        -:        -:13006:/*EOF*/
    #####:    #####:13007:/*EOF*/
    #####:    #####:13008:/*EOF*/
    #####:    #####:13009:/*EOF*/
    #####:    #####:13010:/*EOF*/
        -:        -:13011:/*EOF*/
    #####:    #####:13012:/*EOF*/
        -:        -:13013:/*EOF*/
        -:        -:13014:/*EOF*/
        -:        -:13015:/*EOF*/
        -:        -:13016:/*EOF*/
        -:        -:13017:/*EOF*/
        -:        -:13018:/*EOF*/
    #####:    #####:13019:/*EOF*/
    #####:    #####:13020:/*EOF*/
        -:        -:13021:/*EOF*/
        -:        -:13022:/*EOF*/
        -:        -:13023:/*EOF*/
        -:        -:13024:/*EOF*/
        -:        -:13025:/*EOF*/
    #####:    #####:13026:/*EOF*/
    #####:    #####:13027:/*EOF*/
        -:        -:13028:/*EOF*/
        -:        -:13029:/*EOF*/
        -:        -:13030:/*EOF*/
        -:        -:13031:/*EOF*/
        -:        -:13032:/*EOF*/
    #####:    #####:13033:/*EOF*/
    #####:    #####:13034:/*EOF*/
        -:        -:13035:/*EOF*/
        -:        -:13036:/*EOF*/
        -:        -:13037:/*EOF*/
        -:        -:13038:/*EOF*/
        -:        -:13039:/*EOF*/
    #####:    #####:13040:/*EOF*/
    #####:    #####:13041:/*EOF*/
        -:        -:13042:/*EOF*/
        -:        -:13043:/*EOF*/
        -:        -:13044:/*EOF*/
        -:        -:13045:/*EOF*/
        -:        -:13046:/*EOF*/
        -:        -:13047:/*EOF*/
        -:        -:13048:/*EOF*/
        -:        -:13049:/*EOF*/
    #####:    #####:13050:/*EOF*/
    #####:    #####:13051:/*EOF*/
    #####:    #####:13052:/*EOF*/
    #####:    #####:13053:/*EOF*/
        -:        -:13054:/*EOF*/
        -:        -:13055:/*EOF*/
    #####:    #####:13056:/*EOF*/
    #####:    #####:13057:/*EOF*/
    #####:    #####:13058:/*EOF*/
    #####:    #####:13059:/*EOF*/
        -:        -:13060:/*EOF*/
    #####:    #####:13061:/*EOF*/
        -:        -:13062:/*EOF*/
        -:        -:13063:/*EOF*/
        -:        -:13064:/*EOF*/
        -:        -:13065:/*EOF*/
        -:        -:13066:/*EOF*/
        -:        -:13067:/*EOF*/
    #####:    #####:13068:/*EOF*/
    #####:    #####:13069:/*EOF*/
        -:        -:13070:/*EOF*/
        -:        -:13071:/*EOF*/
        -:        -:13072:/*EOF*/
        -:        -:13073:/*EOF*/
        -:        -:13074:/*EOF*/
    #####:    #####:13075:/*EOF*/
    #####:    #####:13076:/*EOF*/
        -:        -:13077:/*EOF*/
        -:        -:13078:/*EOF*/
        -:        -:13079:/*EOF*/
        -:        -:13080:/*EOF*/
        -:        -:13081:/*EOF*/
    #####:    #####:13082:/*EOF*/
    #####:    #####:13083:/*EOF*/
        -:        -:13084:/*EOF*/
        -:        -:13085:/*EOF*/
        -:        -:13086:/*EOF*/
        -:        -:13087:/*EOF*/
        -:        -:13088:/*EOF*/
    #####:    #####:13089:/*EOF*/
    #####:    #####:13090:/*EOF*/
        -:        -:13091:/*EOF*/
        -:        -:13092:/*EOF*/
        -:        -:13093:/*EOF*/
        -:        -:13094:/*EOF*/
        -:        -:13095:/*EOF*/
        -:        -:13096:/*EOF*/
        -:        -:13097:/*EOF*/
        -:        -:13098:/*EOF*/
    #####:    #####:13099:/*EOF*/
    #####:    #####:13100:/*EOF*/
    #####:    #####:13101:/*EOF*/
    #####:    #####:13102:/*EOF*/
        -:        -:13103:/*EOF*/
        -:        -:13104:/*EOF*/
    #####:    #####:13105:/*EOF*/
    #####:    #####:13106:/*EOF*/
    #####:    #####:13107:/*EOF*/
    #####:    #####:13108:/*EOF*/
        -:        -:13109:/*EOF*/
    #####:    #####:13110:/*EOF*/
        -:        -:13111:/*EOF*/
        -:        -:13112:/*EOF*/
        -:        -:13113:/*EOF*/
        -:        -:13114:/*EOF*/
        -:        -:13115:/*EOF*/
        -:        -:13116:/*EOF*/
    #####:    #####:13117:/*EOF*/
    #####:    #####:13118:/*EOF*/
        -:        -:13119:/*EOF*/
        -:        -:13120:/*EOF*/
        -:        -:13121:/*EOF*/
        -:        -:13122:/*EOF*/
        -:        -:13123:/*EOF*/
    #####:    #####:13124:/*EOF*/
    #####:    #####:13125:/*EOF*/
        -:        -:13126:/*EOF*/
        -:        -:13127:/*EOF*/
        -:        -:13128:/*EOF*/
        -:        -:13129:/*EOF*/
        -:        -:13130:/*EOF*/
    #####:    #####:13131:/*EOF*/
    #####:    #####:13132:/*EOF*/
        -:        -:13133:/*EOF*/
        -:        -:13134:/*EOF*/
        -:        -:13135:/*EOF*/
        -:        -:13136:/*EOF*/
        -:        -:13137:/*EOF*/
    #####:    #####:13138:/*EOF*/
    #####:    #####:13139:/*EOF*/
        -:        -:13140:/*EOF*/
        -:        -:13141:/*EOF*/
        -:        -:13142:/*EOF*/
        -:        -:13143:/*EOF*/
        -:        -:13144:/*EOF*/
        -:        -:13145:/*EOF*/
        -:        -:13146:/*EOF*/
        -:        -:13147:/*EOF*/
    #####:    #####:13148:/*EOF*/
    #####:    #####:13149:/*EOF*/
    #####:    #####:13150:/*EOF*/
    #####:    #####:13151:/*EOF*/
        -:        -:13152:/*EOF*/
        -:        -:13153:/*EOF*/
    #####:    #####:13154:/*EOF*/
    #####:    #####:13155:/*EOF*/
    #####:    #####:13156:/*EOF*/
    #####:    #####:13157:/*EOF*/
        -:        -:13158:/*EOF*/
    #####:    #####:13159:/*EOF*/
        -:        -:13160:/*EOF*/
        -:        -:13161:/*EOF*/
        -:        -:13162:/*EOF*/
    #####:    #####:13163:/*EOF*/
        -:        -:13164:/*EOF*/
        -:        -:13165:/*EOF*/
    #####:    #####:13166:/*EOF*/
        -:        -:13167:/*EOF*/
        -:        -:13168:/*EOF*/
        -:        -:13169:/*EOF*/
      134:       38:13170:/*EOF*/
        -:        -:13171:/*EOF*/
        -:        -:13172:/*EOF*/
      134:       38:13173:/*EOF*/
        -:        -:13174:/*EOF*/
    #####:    #####:13175:/*EOF*/
        -:        -:13176:/*EOF*/
    #####:    #####:13177:/*EOF*/
        -:        -:13178:/*EOF*/
    #####:    #####:13179:/*EOF*/
        -:        -:13180:/*EOF*/
    #####:    #####:13181:/*EOF*/
        -:        -:13182:/*EOF*/
    #####:    #####:13183:/*EOF*/
        -:        -:13184:/*EOF*/
    #####:    #####:13185:/*EOF*/
        -:        -:13186:/*EOF*/
    #####:    #####:13187:/*EOF*/
        -:        -:13188:/*EOF*/
    #####:    #####:13189:/*EOF*/
        -:        -:13190:/*EOF*/
    #####:    #####:13191:/*EOF*/
        -:        -:13192:/*EOF*/
    #####:    #####:13193:/*EOF*/
        -:        -:13194:/*EOF*/
    #####:    #####:13195:/*EOF*/
        -:        -:13196:/*EOF*/
    #####:    #####:13197:/*EOF*/
        -:        -:13198:/*EOF*/
    #####:    #####:13199:/*EOF*/
        -:        -:13200:/*EOF*/
    #####:    #####:13201:/*EOF*/
        -:        -:13202:/*EOF*/
    #####:    #####:13203:/*EOF*/
        -:        -:13204:/*EOF*/
    #####:    #####:13205:/*EOF*/
        -:        -:13206:/*EOF*/
    #####:    #####:13207:/*EOF*/
        -:        -:13208:/*EOF*/
    #####:    #####:13209:/*EOF*/
        -:        -:13210:/*EOF*/
    #####:    #####:13211:/*EOF*/
        -:        -:13212:/*EOF*/
    #####:    #####:13213:/*EOF*/
        -:        -:13214:/*EOF*/
    #####:    #####:13215:/*EOF*/
        -:        -:13216:/*EOF*/
    #####:    #####:13217:/*EOF*/
        -:        -:13218:/*EOF*/
    #####:    #####:13219:/*EOF*/
        -:        -:13220:/*EOF*/
    #####:    #####:13221:/*EOF*/
        -:        -:13222:/*EOF*/
    #####:    #####:13223:/*EOF*/
        -:        -:13224:/*EOF*/
    #####:    #####:13225:/*EOF*/
        -:        -:13226:/*EOF*/
    #####:    #####:13227:/*EOF*/
        -:        -:13228:/*EOF*/
    #####:    #####:13229:/*EOF*/
        -:        -:13230:/*EOF*/
    #####:    #####:13231:/*EOF*/
        -:        -:13232:/*EOF*/
    #####:    #####:13233:/*EOF*/
        -:        -:13234:/*EOF*/
    #####:    #####:13235:/*EOF*/
        -:        -:13236:/*EOF*/
    #####:    #####:13237:/*EOF*/
        -:        -:13238:/*EOF*/
    #####:    #####:13239:/*EOF*/
        -:        -:13240:/*EOF*/
    #####:    #####:13241:/*EOF*/
        -:        -:13242:/*EOF*/
    #####:    #####:13243:/*EOF*/
        -:        -:13244:/*EOF*/
    #####:    #####:13245:/*EOF*/
        -:        -:13246:/*EOF*/
    #####:    #####:13247:/*EOF*/
        -:        -:13248:/*EOF*/
    #####:    #####:13249:/*EOF*/
        -:        -:13250:/*EOF*/
    #####:    #####:13251:/*EOF*/
        -:        -:13252:/*EOF*/
    #####:    #####:13253:/*EOF*/
        -:        -:13254:/*EOF*/
    #####:    #####:13255:/*EOF*/
        -:        -:13256:/*EOF*/
    #####:    #####:13257:/*EOF*/
        -:        -:13258:/*EOF*/
    #####:    #####:13259:/*EOF*/
        -:        -:13260:/*EOF*/
    #####:    #####:13261:/*EOF*/
        -:        -:13262:/*EOF*/
    #####:    #####:13263:/*EOF*/
        -:        -:13264:/*EOF*/
    #####:    #####:13265:/*EOF*/
        -:        -:13266:/*EOF*/
    #####:    #####:13267:/*EOF*/
        -:        -:13268:/*EOF*/
    #####:    #####:13269:/*EOF*/
        -:        -:13270:/*EOF*/
    #####:    #####:13271:/*EOF*/
        -:        -:13272:/*EOF*/
    #####:    #####:13273:/*EOF*/
        -:        -:13274:/*EOF*/
    #####:    #####:13275:/*EOF*/
        -:        -:13276:/*EOF*/
    #####:    #####:13277:/*EOF*/
        -:        -:13278:/*EOF*/
    #####:    #####:13279:/*EOF*/
        -:        -:13280:/*EOF*/
    #####:    #####:13281:/*EOF*/
        -:        -:13282:/*EOF*/
    #####:    #####:13283:/*EOF*/
        -:        -:13284:/*EOF*/
    #####:    #####:13285:/*EOF*/
        -:        -:13286:/*EOF*/
    #####:    #####:13287:/*EOF*/
        -:        -:13288:/*EOF*/
    #####:    #####:13289:/*EOF*/
        -:        -:13290:/*EOF*/
    #####:    #####:13291:/*EOF*/
        -:        -:13292:/*EOF*/
    #####:    #####:13293:/*EOF*/
        -:        -:13294:/*EOF*/
    #####:    #####:13295:/*EOF*/
        -:        -:13296:/*EOF*/
    #####:    #####:13297:/*EOF*/
        -:        -:13298:/*EOF*/
    #####:    #####:13299:/*EOF*/
        -:        -:13300:/*EOF*/
    #####:    #####:13301:/*EOF*/
        -:        -:13302:/*EOF*/
    #####:    #####:13303:/*EOF*/
        -:        -:13304:/*EOF*/
    #####:    #####:13305:/*EOF*/
        -:        -:13306:/*EOF*/
    #####:    #####:13307:/*EOF*/
        -:        -:13308:/*EOF*/
    #####:    #####:13309:/*EOF*/
        -:        -:13310:/*EOF*/
    #####:    #####:13311:/*EOF*/
        -:        -:13312:/*EOF*/
    #####:    #####:13313:/*EOF*/
        -:        -:13314:/*EOF*/
    #####:    #####:13315:/*EOF*/
        -:        -:13316:/*EOF*/
    #####:    #####:13317:/*EOF*/
        -:        -:13318:/*EOF*/
    #####:    #####:13319:/*EOF*/
        -:        -:13320:/*EOF*/
    #####:    #####:13321:/*EOF*/
        -:        -:13322:/*EOF*/
    #####:    #####:13323:/*EOF*/
        -:        -:13324:/*EOF*/
    #####:    #####:13325:/*EOF*/
        -:        -:13326:/*EOF*/
    #####:    #####:13327:/*EOF*/
        -:        -:13328:/*EOF*/
    #####:    #####:13329:/*EOF*/
        -:        -:13330:/*EOF*/
    #####:    #####:13331:/*EOF*/
        -:        -:13332:/*EOF*/
    #####:    #####:13333:/*EOF*/
        -:        -:13334:/*EOF*/
    #####:    #####:13335:/*EOF*/
        -:        -:13336:/*EOF*/
    #####:    #####:13337:/*EOF*/
        -:        -:13338:/*EOF*/
    #####:    #####:13339:/*EOF*/
        -:        -:13340:/*EOF*/
    #####:    #####:13341:/*EOF*/
        -:        -:13342:/*EOF*/
    #####:    #####:13343:/*EOF*/
        -:        -:13344:/*EOF*/
    #####:    #####:13345:/*EOF*/
        -:        -:13346:/*EOF*/
    #####:    #####:13347:/*EOF*/
        -:        -:13348:/*EOF*/
    #####:    #####:13349:/*EOF*/
        -:        -:13350:/*EOF*/
    #####:    #####:13351:/*EOF*/
        -:        -:13352:/*EOF*/
    #####:    #####:13353:/*EOF*/
        -:        -:13354:/*EOF*/
    #####:    #####:13355:/*EOF*/
        -:        -:13356:/*EOF*/
    #####:    #####:13357:/*EOF*/
        -:        -:13358:/*EOF*/
    #####:    #####:13359:/*EOF*/
        -:        -:13360:/*EOF*/
    #####:    #####:13361:/*EOF*/
        -:        -:13362:/*EOF*/
    #####:    #####:13363:/*EOF*/
        -:        -:13364:/*EOF*/
    #####:    #####:13365:/*EOF*/
        -:        -:13366:/*EOF*/
    #####:    #####:13367:/*EOF*/
        -:        -:13368:/*EOF*/
    #####:    #####:13369:/*EOF*/
        -:        -:13370:/*EOF*/
    #####:    #####:13371:/*EOF*/
        -:        -:13372:/*EOF*/
    #####:    #####:13373:/*EOF*/
        -:        -:13374:/*EOF*/
    #####:    #####:13375:/*EOF*/
        -:        -:13376:/*EOF*/
    #####:    #####:13377:/*EOF*/
        -:        -:13378:/*EOF*/
    #####:    #####:13379:/*EOF*/
        -:        -:13380:/*EOF*/
    #####:    #####:13381:/*EOF*/
        -:        -:13382:/*EOF*/
    #####:    #####:13383:/*EOF*/
        -:        -:13384:/*EOF*/
    #####:    #####:13385:/*EOF*/
        -:        -:13386:/*EOF*/
    #####:    #####:13387:/*EOF*/
        -:        -:13388:/*EOF*/
    #####:    #####:13389:/*EOF*/
        -:        -:13390:/*EOF*/
    #####:    #####:13391:/*EOF*/
        -:        -:13392:/*EOF*/
    #####:    #####:13393:/*EOF*/
        -:        -:13394:/*EOF*/
    #####:    #####:13395:/*EOF*/
        -:        -:13396:/*EOF*/
    #####:    #####:13397:/*EOF*/
        -:        -:13398:/*EOF*/
    #####:    #####:13399:/*EOF*/
        -:        -:13400:/*EOF*/
    #####:    #####:13401:/*EOF*/
        -:        -:13402:/*EOF*/
    #####:    #####:13403:/*EOF*/
        -:        -:13404:/*EOF*/
    #####:    #####:13405:/*EOF*/
        -:        -:13406:/*EOF*/
    #####:    #####:13407:/*EOF*/
        -:        -:13408:/*EOF*/
    #####:    #####:13409:/*EOF*/
        -:        -:13410:/*EOF*/
    #####:    #####:13411:/*EOF*/
        -:        -:13412:/*EOF*/
    #####:    #####:13413:/*EOF*/
        -:        -:13414:/*EOF*/
       52:       20:13415:/*EOF*/
        -:        -:13416:/*EOF*/
    #####:    #####:13417:/*EOF*/
        -:        -:13418:/*EOF*/
    #####:    #####:13419:/*EOF*/
        -:        -:13420:/*EOF*/
    #####:    #####:13421:/*EOF*/
        -:        -:13422:/*EOF*/
    #####:    #####:13423:/*EOF*/
        -:        -:13424:/*EOF*/
       11:       11:13425:/*EOF*/
        -:        -:13426:/*EOF*/
    #####:    #####:13427:/*EOF*/
        -:        -:13428:/*EOF*/
       34:        2:13429:/*EOF*/
        -:        -:13430:/*EOF*/
    #####:    #####:13431:/*EOF*/
        -:        -:13432:/*EOF*/
    #####:    #####:13433:/*EOF*/
        -:        -:13434:/*EOF*/
    #####:    #####:13435:/*EOF*/
        -:        -:13436:/*EOF*/
    #####:    #####:13437:/*EOF*/
        -:        -:13438:/*EOF*/
        3:        3:13439:/*EOF*/
        -:        -:13440:/*EOF*/
       34:        2:13441:/*EOF*/
        -:        -:13442:/*EOF*/
    #####:    #####:13443:/*EOF*/
        -:        -:13444:/*EOF*/
    #####:    #####:13445:/*EOF*/
        -:        -:13446:/*EOF*/
    #####:    #####:13447:/*EOF*/
        -:        -:13448:/*EOF*/
    #####:    #####:13449:/*EOF*/
        -:        -:13450:/*EOF*/
    #####:    #####:13451:/*EOF*/
        -:        -:13452:/*EOF*/
    #####:    #####:13453:/*EOF*/
        -:        -:13454:/*EOF*/
    #####:    #####:13455:/*EOF*/
        -:        -:13456:/*EOF*/
    #####:    #####:13457:/*EOF*/
        -:        -:13458:/*EOF*/
    #####:    #####:13459:/*EOF*/
        -:        -:13460:/*EOF*/
    #####:    #####:13461:/*EOF*/
        -:        -:13462:/*EOF*/
    #####:    #####:13463:/*EOF*/
        -:        -:13464:/*EOF*/
    #####:    #####:13465:/*EOF*/
        -:        -:13466:/*EOF*/
    #####:    #####:13467:/*EOF*/
        -:        -:13468:/*EOF*/
    #####:    #####:13469:/*EOF*/
        -:        -:13470:/*EOF*/
    #####:    #####:13471:/*EOF*/
        -:        -:13472:/*EOF*/
    #####:    #####:13473:/*EOF*/
        -:        -:13474:/*EOF*/
    #####:    #####:13475:/*EOF*/
        -:        -:13476:/*EOF*/
    #####:    #####:13477:/*EOF*/
        -:        -:13478:/*EOF*/
    #####:    #####:13479:/*EOF*/
        -:        -:13480:/*EOF*/
    #####:    #####:13481:/*EOF*/
        -:        -:13482:/*EOF*/
    #####:    #####:13483:/*EOF*/
        -:        -:13484:/*EOF*/
    #####:    #####:13485:/*EOF*/
        -:        -:13486:/*EOF*/
    #####:    #####:13487:/*EOF*/
        -:        -:13488:/*EOF*/
    #####:    #####:13489:/*EOF*/
        -:        -:13490:/*EOF*/
    #####:    #####:13491:/*EOF*/
        -:        -:13492:/*EOF*/
    #####:    #####:13493:/*EOF*/
        -:        -:13494:/*EOF*/
    #####:    #####:13495:/*EOF*/
        -:        -:13496:/*EOF*/
    #####:    #####:13497:/*EOF*/
        -:        -:13498:/*EOF*/
    #####:    #####:13499:/*EOF*/
        -:        -:13500:/*EOF*/
    #####:    #####:13501:/*EOF*/
        -:        -:13502:/*EOF*/
    #####:    #####:13503:/*EOF*/
        -:        -:13504:/*EOF*/
    #####:    #####:13505:/*EOF*/
        -:        -:13506:/*EOF*/
    #####:    #####:13507:/*EOF*/
        -:        -:13508:/*EOF*/
    #####:    #####:13509:/*EOF*/
        -:        -:13510:/*EOF*/
    #####:    #####:13511:/*EOF*/
        -:        -:13512:/*EOF*/
    #####:    #####:13513:/*EOF*/
        -:        -:13514:/*EOF*/
    #####:    #####:13515:/*EOF*/
        -:        -:13516:/*EOF*/
    #####:    #####:13517:/*EOF*/
        -:        -:13518:/*EOF*/
    #####:    #####:13519:/*EOF*/
        -:        -:13520:/*EOF*/
    #####:    #####:13521:/*EOF*/
        -:        -:13522:/*EOF*/
    #####:    #####:13523:/*EOF*/
        -:        -:13524:/*EOF*/
    #####:    #####:13525:/*EOF*/
        -:        -:13526:/*EOF*/
    #####:    #####:13527:/*EOF*/
        -:        -:13528:/*EOF*/
    #####:    #####:13529:/*EOF*/
        -:        -:13530:/*EOF*/
    #####:    #####:13531:/*EOF*/
        -:        -:13532:/*EOF*/
    #####:    #####:13533:/*EOF*/
        -:        -:13534:/*EOF*/
    #####:    #####:13535:/*EOF*/
        -:        -:13536:/*EOF*/
    #####:    #####:13537:/*EOF*/
        -:        -:13538:/*EOF*/
    #####:    #####:13539:/*EOF*/
        -:        -:13540:/*EOF*/
    #####:    #####:13541:/*EOF*/
        -:        -:13542:/*EOF*/
    #####:    #####:13543:/*EOF*/
        -:        -:13544:/*EOF*/
    #####:    #####:13545:/*EOF*/
        -:        -:13546:/*EOF*/
    #####:    #####:13547:/*EOF*/
        -:        -:13548:/*EOF*/
    #####:    #####:13549:/*EOF*/
        -:        -:13550:/*EOF*/
    #####:    #####:13551:/*EOF*/
        -:        -:13552:/*EOF*/
    #####:    #####:13553:/*EOF*/
        -:        -:13554:/*EOF*/
    #####:    #####:13555:/*EOF*/
        -:        -:13556:/*EOF*/
    #####:    #####:13557:/*EOF*/
        -:        -:13558:/*EOF*/
    #####:    #####:13559:/*EOF*/
        -:        -:13560:/*EOF*/
    #####:    #####:13561:/*EOF*/
        -:        -:13562:/*EOF*/
    #####:    #####:13563:/*EOF*/
        -:        -:13564:/*EOF*/
    #####:    #####:13565:/*EOF*/
        -:        -:13566:/*EOF*/
    #####:    #####:13567:/*EOF*/
        -:        -:13568:/*EOF*/
    #####:    #####:13569:/*EOF*/
        -:        -:13570:/*EOF*/
    #####:    #####:13571:/*EOF*/

src/compiler/nir/.libs/nir_control_flow.c.gcov

        -:        -:    0:Source:nir/nir_control_flow.c
        -:        -:    0:Graph:nir_control_flow.gcno
        -:        -:    0:Data:nir_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      187:      213:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      293:      329:   51:/*EOF*/
      106:      116:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      348:      406:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      348:      406:   58:/*EOF*/
      348:      406:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      191:      213:   62:/*EOF*/
        -:        -:   63:/*EOF*/
      191:      213:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      191:      213:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      191:      213:   68:/*EOF*/
      191:      213:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      240:      286:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      240:      286:   74:/*EOF*/
      240:      286:   75:/*EOF*/
      232:      278:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      240:      286:   78:/*EOF*/
      240:      286:   79:/*EOF*/
       76:       84:   80:/*EOF*/
      240:      286:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      151:      169:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      151:      169:   86:/*EOF*/
      151:      169:   87:/*EOF*/
      151:      169:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      151:      169:   94:/*EOF*/
      151:      169:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      240:      286:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      240:      286:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
      240:      286:  102:/*EOF*/
       10:       18:  103:/*EOF*/
      240:      286:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       43:       55:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       43:       55:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       38:       46:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       38:       46:  117:/*EOF*/
       38:       46:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       38:       46:  120:/*EOF*/
       38:       46:  121:/*EOF*/
       38:       46:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       38:       46:  125:/*EOF*/
       38:       46:  126:/*EOF*/
       38:       46:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        5:        9:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       43:       55:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       43:       55:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       43:       55:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       38:       46:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       38:       46:  145:/*EOF*/
       38:       46:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       38:       46:  148:/*EOF*/
       38:       46:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        5:        9:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        9:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        5:        9:  161:/*EOF*/
        5:        9:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       43:       55:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       40:       44:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       40:       44:  173:/*EOF*/
       40:       44:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       40:       44:  180:/*EOF*/
       40:       44:  181:/*EOF*/
       40:       44:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       22:       24:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       22:       24:  195:/*EOF*/
       22:       24:  196:/*EOF*/
       22:       24:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       62:       68:  200:/*EOF*/
       40:       44:  201:/*EOF*/
       40:       44:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       22:       24:  209:/*EOF*/
       22:       22:  210:/*EOF*/
       22:       22:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       22:       24:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      141:      151:  222:/*EOF*/
        -:        -:  223:/*EOF*/
      169:      201:  224:/*EOF*/
       57:       89:  225:/*EOF*/
       29:       39:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       28:       50:  228:/*EOF*/
       52:      114:  229:/*EOF*/
       40:       82:  230:/*EOF*/
       16:       18:  231:/*EOF*/
       16:       18:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
      141:      151:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      111:      121:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      111:      121:  272:/*EOF*/
      111:      121:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      111:      121:  275:/*EOF*/
      103:      113:  276:/*EOF*/
      103:      113:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      111:      121:  280:/*EOF*/
       38:       38:  281:/*EOF*/
       38:       38:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      111:      121:  285:/*EOF*/
      111:      121:  286:/*EOF*/
      111:      121:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        1:        1:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        1:        1:  297:/*EOF*/
        1:        1:  298:/*EOF*/
        1:        1:  299:/*EOF*/
        1:        1:  300:/*EOF*/
        1:        1:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        1:        1:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        1:        1:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       73:       83:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       73:       83:  338:/*EOF*/
       73:       83:  339:/*EOF*/
       73:       83:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       73:       83:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
       73:       83:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
       73:       83:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       95:      107:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       95:      107:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       22:       24:  386:/*EOF*/
       22:       24:  387:/*EOF*/
       22:       24:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
       44:       50:  391:/*EOF*/
       44:       50:  392:/*EOF*/
       44:       50:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
       29:       33:  404:/*EOF*/
       29:       33:  405:/*EOF*/
       29:       33:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
       29:       33:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
       95:      107:  417:/*EOF*/
       95:      107:  418:/*EOF*/
       95:      107:  419:/*EOF*/
       95:      107:  420:/*EOF*/
       95:      107:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
       43:       55:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       43:       55:  430:/*EOF*/
       43:       55:  431:/*EOF*/
       43:       55:  432:/*EOF*/
       43:       55:  433:/*EOF*/
       43:       55:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        9:       17:  438:/*EOF*/
        -:        -:  439:/*EOF*/
       36:       68:  440:/*EOF*/
       18:       34:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        9:       17:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        9:       17:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        9:       17:  454:/*EOF*/
        9:       17:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        9:       17:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        9:       17:  459:/*EOF*/
        9:       17:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        9:       17:  462:/*EOF*/
        9:       17:  463:/*EOF*/
        9:       17:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        9:       17:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        9:       17:  470:/*EOF*/
        9:       17:  471:/*EOF*/
        9:       17:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        9:       17:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        1:        1:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        1:        1:  483:/*EOF*/
        1:        1:  484:/*EOF*/
        1:        1:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        1:        1:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        1:        1:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        1:        1:  504:/*EOF*/
        1:        1:  505:/*EOF*/
        1:        1:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        1:        1:  509:/*EOF*/
        1:        1:  510:/*EOF*/
        1:        1:  511:/*EOF*/
        1:        1:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        1:        1:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        1:        1:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        1:        1:  519:/*EOF*/
        1:        1:  520:/*EOF*/
        1:        1:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       43:       55:  524:/*EOF*/
        -:        -:  525:/*EOF*/
       43:       55:  526:/*EOF*/
        5:        9:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       38:       46:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       38:       46:  531:/*EOF*/
       38:       46:  532:/*EOF*/
       38:       46:  533:/*EOF*/
       38:       46:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
       38:       38:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       38:       38:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
       38:       38:  565:/*EOF*/
        -:        -:  566:/*EOF*/
      156:      156:  567:/*EOF*/
      118:      118:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       38:       38:  571:/*EOF*/
       38:       38:  572:/*EOF*/
        -:        -:  573:/*EOF*/
       38:       38:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       43:       55:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
       43:       55:  581:/*EOF*/
        -:        -:  582:/*EOF*/
       43:       55:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       43:       55:  597:/*EOF*/
       43:       55:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       43:       55:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
       39:       39:  603:/*EOF*/
        -:        -:  604:/*EOF*/
       39:       39:  605:/*EOF*/
       39:       39:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       39:       39:  608:/*EOF*/
       39:       39:  609:/*EOF*/
       39:       39:  610:/*EOF*/
       39:       39:  611:/*EOF*/
       39:       39:  612:/*EOF*/
       39:       39:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
      105:      105:  617:/*EOF*/
        -:        -:  618:/*EOF*/
      105:      105:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       84:       84:  621:/*EOF*/
        -:        -:  622:/*EOF*/
      136:      136:  623:/*EOF*/
       52:       52:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       52:       52:  628:/*EOF*/
       52:       52:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
       84:       84:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
       20:       20:  636:/*EOF*/
       40:       40:  637:/*EOF*/
       20:       20:  638:/*EOF*/
       40:       40:  639:/*EOF*/
       20:       20:  640:/*EOF*/
        -:        -:  641:/*EOF*/
       20:       20:  642:/*EOF*/
       20:       20:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        1:        1:  647:/*EOF*/
        4:        4:  648:/*EOF*/
        3:        3:  649:/*EOF*/
        1:        1:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
      105:      105:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
       23:       23:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       23:       23:  668:/*EOF*/
        1:        1:  669:/*EOF*/
        1:        1:  670:/*EOF*/
        1:        1:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       22:       22:  681:/*EOF*/
       22:       22:  682:/*EOF*/
        -:        -:  683:/*EOF*/
       22:       22:  684:/*EOF*/
       22:       22:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
       22:       22:  688:/*EOF*/
        -:        -:  689:/*EOF*/
       22:       22:  690:/*EOF*/
       22:       22:  691:/*EOF*/
        -:        -:  692:/*EOF*/
       62:       62:  693:/*EOF*/
        -:        -:  694:/*EOF*/
       62:       62:  695:/*EOF*/
       62:       62:  696:/*EOF*/
       62:       62:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       62:       62:  699:/*EOF*/
       22:       22:  700:/*EOF*/
        -:        -:  701:/*EOF*/
       40:       40:  702:/*EOF*/
       40:       40:  703:/*EOF*/
        -:        -:  704:/*EOF*/
       22:       22:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        9:        9:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        9:        9:  713:/*EOF*/
        1:        1:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        8:        8:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       22:       22:  718:/*EOF*/
       14:       14:  719:/*EOF*/
       14:       14:  720:/*EOF*/
       14:       14:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        8:        8:  724:/*EOF*/
        8:        8:  725:/*EOF*/
        8:        8:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
       22:       22:  731:/*EOF*/
        -:        -:  732:/*EOF*/
       84:       84:  733:/*EOF*/
       62:       62:  734:/*EOF*/
        -:        -:  735:/*EOF*/
       22:       22:  736:/*EOF*/

src/compiler/nir/.libs/nir_dominance.c.gcov

        -:        -:    0:Source:nir/nir_dominance.c
        -:        -:    0:Graph:nir_dominance.gcno
        -:        -:    0:Data:nir_dominance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      188:      252:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      188:      252:   39:/*EOF*/
       12:       12:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      176:      240:   42:/*EOF*/
      188:      252:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      246:      362:   46:/*EOF*/
       58:      110:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      188:      252:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       94:      118:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      316:      376:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      388:      506:   62:/*EOF*/
      132:      226:   63:/*EOF*/
      424:      506:   64:/*EOF*/
      168:      226:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       94:      118:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      352:      480:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      352:      480:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      808:     1096:   76:/*EOF*/
      456:      616:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      456:      616:   79:/*EOF*/
      446:      598:   80:/*EOF*/
       94:      118:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      352:      480:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      352:      480:   87:/*EOF*/
      176:      240:   88:/*EOF*/
      176:      240:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      176:      240:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      188:      252:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      188:      252:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      156:      204:  100:/*EOF*/
      104:      136:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      104:      136:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      388:      556:  107:/*EOF*/
      180:      284:  108:/*EOF*/
      180:      284:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
      188:      252:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       12:       12:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       12:       12:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      200:      264:  133:/*EOF*/
      188:      252:  134:/*EOF*/
      176:      240:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      200:      264:  138:/*EOF*/
      188:      252:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      188:      252:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      200:      264:  144:/*EOF*/
      188:      252:  145:/*EOF*/
      176:      240:  146:/*EOF*/
      176:      240:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       12:       12:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      188:      252:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      188:      252:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      364:      492:  157:/*EOF*/
      176:      240:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      188:      252:  160:/*EOF*/
      188:      252:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       12:       12:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       12:       12:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       12:       12:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      200:      264:  172:/*EOF*/
      188:      252:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       12:       12:  176:/*EOF*/
       40:       40:  177:/*EOF*/
       16:       16:  178:/*EOF*/
      384:      512:  179:/*EOF*/
      368:      496:  180:/*EOF*/
      352:      480:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      200:      264:  185:/*EOF*/
      188:      252:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       12:       12:  189:/*EOF*/
       12:       12:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       12:       12:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       12:       12:  194:/*EOF*/
       12:       12:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      198:      422:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      198:      422:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      198:      422:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      396:      844:  241:/*EOF*/
      198:      422:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/

src/compiler/nir/.libs/nir_from_ssa.c.gcov

        -:        -:    0:Source:nir/nir_from_ssa.c
        -:        -:    0:Graph:nir_from_ssa.gcno
        -:        -:    0:Data:nir_from_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      263:      515:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      263:      515:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       14:       12:   53:/*EOF*/
      249:      503:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
      249:      503:   56:/*EOF*/
       51:       81:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      198:      422:   59:/*EOF*/
      198:      422:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      123:      195:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      123:      195:  123:/*EOF*/
      123:      195:  124:/*EOF*/
      123:      195:  125:/*EOF*/
       50:       90:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       73:      105:  128:/*EOF*/
       73:      105:  129:/*EOF*/
       73:      105:  130:/*EOF*/
       73:      105:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       73:      105:  133:/*EOF*/
       73:      105:  134:/*EOF*/
       73:      105:  135:/*EOF*/
       73:      105:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       73:      105:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       73:      105:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      166:      330:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      166:      330:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       62:       94:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       62:       94:  153:/*EOF*/
       62:       94:  154:/*EOF*/
      357:      589:  155:/*EOF*/
      233:      401:  156:/*EOF*/
      233:      401:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      413:      741:  159:/*EOF*/
      283:      491:  160:/*EOF*/
      103:      151:  161:/*EOF*/
      103:      151:  162:/*EOF*/
      103:      151:  163:/*EOF*/
      103:      151:  164:/*EOF*/
      103:      151:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      130:      250:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       62:       94:  171:/*EOF*/
       62:       94:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       62:       94:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       35:       51:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       35:       51:  186:/*EOF*/
       35:       51:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       35:       51:  189:/*EOF*/
       35:       51:  190:/*EOF*/
      364:      592:  191:/*EOF*/
       82:      102:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      215:      391:  195:/*EOF*/
       50:       54:  196:/*EOF*/
       50:       54:  197:/*EOF*/
      165:      337:  198:/*EOF*/
       16:       44:  199:/*EOF*/
       16:       44:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      149:      293:  202:/*EOF*/
      149:      293:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      149:      293:  205:/*EOF*/
      121:      239:  206:/*EOF*/
      121:      239:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       28:       54:  209:/*EOF*/
       28:       54:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
      790:     1482:  214:/*EOF*/
      263:      515:  215:/*EOF*/
       97:      185:  216:/*EOF*/
        -:        -:  217:/*EOF*/
      215:      391:  218:/*EOF*/
        3:        3:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      212:      388:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       32:       48:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       36:       52:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       36:       52:  231:/*EOF*/
       36:       52:  232:/*EOF*/
       36:       52:  233:/*EOF*/
       36:       52:  234:/*EOF*/
       18:       22:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       36:       52:  238:/*EOF*/
        9:       13:  239:/*EOF*/
        9:       13:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       36:       52:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       18:       22:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       18:       22:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       36:       52:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       98:      140:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       98:      140:  261:/*EOF*/
       98:      140:  262:/*EOF*/
        9:       19:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       89:      121:  268:/*EOF*/
       20:       36:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       89:      121:  271:/*EOF*/
       57:       81:  272:/*EOF*/
        -:        -:  273:/*EOF*/
       32:       40:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       36:       52:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       36:       52:  308:/*EOF*/
       51:       75:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       47:       61:  311:/*EOF*/
       32:       38:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       15:       23:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       36:       52:  318:/*EOF*/
       27:       41:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        9:       11:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        9:       11:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       24:       34:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       24:       34:  330:/*EOF*/
        9:       11:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       15:       23:  333:/*EOF*/
       15:       23:  334:/*EOF*/
       45:       69:  335:/*EOF*/
       30:       46:  336:/*EOF*/
       30:       46:  337:/*EOF*/
       30:       46:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       30:       46:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       90:      138:  342:/*EOF*/
       30:       46:  343:/*EOF*/
       60:       92:  344:/*EOF*/
       30:       46:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       30:       46:  347:/*EOF*/
       30:       46:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       30:       46:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
       15:       23:  354:/*EOF*/
        -:        -:  355:/*EOF*/
       45:       69:  356:/*EOF*/
       30:       46:  357:/*EOF*/
        -:        -:  358:/*EOF*/
       15:       23:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       15:       23:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       15:       23:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        9:       11:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       36:       52:  372:/*EOF*/
        -:        -:  373:/*EOF*/
       51:       75:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       47:       65:  376:/*EOF*/
       32:       42:  377:/*EOF*/
        -:        -:  378:/*EOF*/
       15:       23:  379:/*EOF*/
        -:        -:  380:/*EOF*/
       15:       23:  381:/*EOF*/
       15:       23:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       45:       69:  384:/*EOF*/
       30:       46:  385:/*EOF*/
       30:       46:  386:/*EOF*/
       30:       46:  387:/*EOF*/
       30:       46:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
       36:       52:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       27:       33:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       72:      102:  399:/*EOF*/
       45:       69:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
       45:       69:  406:/*EOF*/
        6:        6:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       39:       63:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
       39:       63:  413:/*EOF*/
       39:       63:  414:/*EOF*/
        -:        -:  415:/*EOF*/
       39:       63:  416:/*EOF*/
        4:       12:  417:/*EOF*/
        -:        -:  418:/*EOF*/
       35:       51:  419:/*EOF*/
       32:       48:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       27:       33:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
       36:       52:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       36:       52:  427:/*EOF*/
       51:       75:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       47:       65:  430:/*EOF*/
       32:       42:  431:/*EOF*/
       14:       18:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       18:       24:  434:/*EOF*/
        -:        -:  435:/*EOF*/
       18:       24:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       18:       24:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       36:       52:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       36:       52:  445:/*EOF*/
        9:        9:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       36:       52:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
       23:       23:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       23:       23:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       23:       23:  456:/*EOF*/
       23:       23:  457:/*EOF*/
       23:       23:  458:/*EOF*/
       23:       23:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       23:       23:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      155:      189:  465:/*EOF*/
        -:        -:  466:/*EOF*/
      155:      189:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      155:      189:  470:/*EOF*/
      155:      189:  471:/*EOF*/
      155:      189:  472:/*EOF*/
        -:        -:  473:/*EOF*/
       73:      105:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
       73:      105:  480:/*EOF*/
       11:       11:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       73:      105:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       82:       84:  485:/*EOF*/
       82:       84:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
       73:      105:  497:/*EOF*/
       73:      105:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       73:      105:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        2:        2:  504:/*EOF*/
        2:        2:  505:/*EOF*/
        2:        2:  506:/*EOF*/
        2:        2:  507:/*EOF*/
        2:        2:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
       71:      103:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       71:      103:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       71:      103:  518:/*EOF*/
       71:      103:  519:/*EOF*/
       71:      103:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       36:       52:  527:/*EOF*/
        -:        -:  528:/*EOF*/
      183:      219:  529:/*EOF*/
      147:      167:  530:/*EOF*/
      147:      167:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      147:      167:  533:/*EOF*/
       15:       23:  534:/*EOF*/
       15:       23:  535:/*EOF*/
       15:       23:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       36:       52:  539:/*EOF*/
       36:       52:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        9:        9:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        9:        9:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        9:        9:  549:/*EOF*/
        6:        6:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        3:        3:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        9:        9:  554:/*EOF*/
        9:        9:  555:/*EOF*/
        9:        9:  556:/*EOF*/
        9:        9:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        9:        9:  559:/*EOF*/
        9:        9:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
       27:       33:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
       27:       33:  588:/*EOF*/
       72:      102:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       45:       69:  591:/*EOF*/
       36:       60:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        9:        9:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       27:       33:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       21:       29:  599:/*EOF*/
       21:       29:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        6:        4:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        6:        4:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        6:        4:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        6:        4:  613:/*EOF*/
        6:        4:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        6:        4:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        6:        4:  623:/*EOF*/
       22:       16:  624:/*EOF*/
        -:        -:  625:/*EOF*/
       16:       12:  626:/*EOF*/
        7:        3:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        9:        9:  629:/*EOF*/
       15:       21:  630:/*EOF*/
        6:       12:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        9:        9:  634:/*EOF*/
        9:        9:  635:/*EOF*/
        9:        9:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        9:        9:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        9:        9:  641:/*EOF*/
       24:       30:  642:/*EOF*/
       15:       21:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        9:        9:  653:/*EOF*/
        9:        9:  654:/*EOF*/
        9:        9:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        9:        9:  658:/*EOF*/
        9:        9:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        9:        9:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        6:        4:  665:/*EOF*/
        6:        4:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
       24:       22:  672:/*EOF*/
       18:       18:  673:/*EOF*/
        9:        9:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
       21:       17:  677:/*EOF*/
       27:       27:  678:/*EOF*/
        9:        9:  679:/*EOF*/
        9:        9:  680:/*EOF*/
        9:        9:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        9:        9:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        9:        9:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        9:        9:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        9:        9:  693:/*EOF*/
        9:        9:  694:/*EOF*/
        9:        9:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        6:        4:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
       36:       52:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
       36:       52:  737:/*EOF*/
       36:       52:  738:/*EOF*/
        4:       10:  739:/*EOF*/
        -:        -:  740:/*EOF*/
       32:       42:  741:/*EOF*/
       18:       24:  742:/*EOF*/
        -:        -:  743:/*EOF*/
       18:       24:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
       32:       42:  752:/*EOF*/
        -:        -:  753:/*EOF*/
       32:       42:  754:/*EOF*/
        9:        9:  755:/*EOF*/
        -:        -:  756:/*EOF*/
       32:       42:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        5:        5:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        5:        5:  765:/*EOF*/
        5:        5:  766:/*EOF*/
        5:        5:  767:/*EOF*/
        5:        5:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        5:        5:  770:/*EOF*/
        -:        -:  771:/*EOF*/
       41:       57:  772:/*EOF*/
       36:       52:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
       41:       57:  776:/*EOF*/
       36:       52:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        5:        5:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        5:        5:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       41:       57:  787:/*EOF*/
       36:       52:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       41:       57:  791:/*EOF*/
       36:       52:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
       41:       57:  795:/*EOF*/
       36:       52:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       41:       57:  799:/*EOF*/
       36:       52:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        5:        5:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        5:        5:  807:/*EOF*/
        5:        5:  808:/*EOF*/
        5:        5:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        5:        5:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        5:        5:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       10:       10:  817:/*EOF*/
        5:        5:  818:/*EOF*/
        5:        5:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        5:        5:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
       34:       34:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       34:       34:  830:/*EOF*/
        -:        -:  831:/*EOF*/
       25:       25:  832:/*EOF*/
        -:        -:  833:/*EOF*/
       39:       39:  834:/*EOF*/
       32:       32:  835:/*EOF*/
       32:       32:  836:/*EOF*/
       18:       18:  837:/*EOF*/
       18:       18:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
       25:       25:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       21:       21:  848:/*EOF*/
       14:       14:  849:/*EOF*/
        7:        7:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       27:       27:  854:/*EOF*/
       27:       27:  855:/*EOF*/
       27:       27:  856:/*EOF*/
       27:       27:  857:/*EOF*/
       27:       27:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        2:        2:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        2:        2:  878:/*EOF*/
        2:        2:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        2:        2:  881:/*EOF*/
       14:       14:  882:/*EOF*/
       14:       14:  883:/*EOF*/
        2:        2:  884:/*EOF*/
        -:        -:  885:/*EOF*/
       12:       12:  886:/*EOF*/
       12:       12:  887:/*EOF*/
        -:        -:  888:/*EOF*/
       12:       12:  889:/*EOF*/
        -:        -:  890:/*EOF*/
       12:       12:  891:/*EOF*/
       12:       12:  892:/*EOF*/
       12:       12:  893:/*EOF*/
       36:       36:  894:/*EOF*/
       24:       24:  895:/*EOF*/
        -:        -:  896:/*EOF*/
       12:       12:  897:/*EOF*/
        -:        -:  898:/*EOF*/
       12:       12:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
       32:       32:  902:/*EOF*/
       20:       20:  903:/*EOF*/
       20:       20:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       12:       12:  907:/*EOF*/
        -:        -:  908:/*EOF*/
       12:       12:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        2:        2:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
        -:        -:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/

src/compiler/nir/.libs/nir_gather_info.c.gcov

        -:        -:    0:Source:nir/nir_gather_info.c
        -:        -:    0:Graph:nir_gather_info.gcno
        -:        -:    0:Data:nir_gather_info.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
       15:       19:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       30:       38:   30:/*EOF*/
       15:       19:   31:/*EOF*/
        -:        -:   32:/*EOF*/
       15:       19:   33:/*EOF*/
       30:       38:   34:/*EOF*/
    #####:    #####:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
       15:       19:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       15:       19:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       15:       19:   46:/*EOF*/
       15:       19:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       15:       19:   50:/*EOF*/
        9:       13:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        9:       13:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        9:       13:   56:/*EOF*/
        6:       10:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        6:        6:   60:/*EOF*/
        6:        6:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        6:        6:   63:/*EOF*/
        6:        6:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        6:        6:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       15:       19:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       15:       19:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       15:       19:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       15:       19:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       15:       19:   87:/*EOF*/
       15:       19:   88:/*EOF*/
       15:       19:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       15:       19:   91:/*EOF*/
       15:       19:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       15:       19:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       15:       19:  129:/*EOF*/
       15:       19:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       15:       19:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       30:       38:  145:/*EOF*/
       15:       19:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       15:       19:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       34:       40:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       34:       40:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       15:       19:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       21:       25:  210:/*EOF*/
        6:        6:  211:/*EOF*/
       15:       19:  212:/*EOF*/
       15:       19:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       21:       25:  217:/*EOF*/
        9:        9:  218:/*EOF*/
        3:        3:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       15:       19:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       19:       21:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       34:       40:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       36:       52:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      228:      288:  273:/*EOF*/
      192:      236:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       34:       40:  276:/*EOF*/
       34:       40:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      158:      196:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       36:       52:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        5:        5:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        9:        9:  295:/*EOF*/
        4:        4:  296:/*EOF*/
        4:        4:  297:/*EOF*/
        4:        4:  298:/*EOF*/
        2:        2:  299:/*EOF*/
        2:        2:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        4:        4:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        4:        4:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        5:        5:  310:/*EOF*/
        5:        5:  311:/*EOF*/
        5:        5:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        5:        5:  314:/*EOF*/
        5:        5:  315:/*EOF*/
        5:        5:  316:/*EOF*/
        5:        5:  317:/*EOF*/
        3:        3:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       41:       57:  320:/*EOF*/
       36:       52:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        5:        5:  323:/*EOF*/

src/compiler/nir/.libs/nir_instr_set.c.gcov

        -:        -:    0:Source:nir/nir_instr_set.c
        -:        -:    0:Graph:nir_instr_set.gcno
        -:        -:    0:Data:nir_instr_set.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
     4327:     4821:   30:/*EOF*/
        -:        -:   31:/*EOF*/
     4327:     4821:   32:/*EOF*/
     4327:     4821:   33:/*EOF*/
     4327:     4821:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     3223:     3333:   38:/*EOF*/
        -:        -:   39:/*EOF*/
     3223:     3333:   40:/*EOF*/
     3223:     3333:   41:/*EOF*/
        -:        -:   42:/*EOF*/
     6806:     7026:   43:/*EOF*/
     3583:     3693:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     3223:     3333:   46:/*EOF*/
     3223:     3333:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
     1591:     1646:   51:/*EOF*/
        -:        -:   52:/*EOF*/
     1591:     1646:   53:/*EOF*/
     1591:     1646:   54:/*EOF*/
     1591:     1646:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1591:     1646:   58:/*EOF*/
      648:      655:   59:/*EOF*/
      648:      655:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      648:      655:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      648:      655:   70:/*EOF*/
        -:        -:   71:/*EOF*/
     2870:     3014:   72:/*EOF*/
     1927:     2023:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
     1591:     1646:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      266:      272:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      266:      272:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      266:      272:   86:/*EOF*/
      266:      272:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      266:      272:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      552:      744:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      552:      744:   95:/*EOF*/
      552:      744:   96:/*EOF*/
      552:      744:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      552:      744:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      552:      744:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      552:      744:  106:/*EOF*/
      552:      744:  107:/*EOF*/
      552:      744:  108:/*EOF*/
     1656:     2232:  109:/*EOF*/
     1104:     1488:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
      552:      744:  113:/*EOF*/
        -:        -:  114:/*EOF*/
     1656:     2232:  115:/*EOF*/
     1104:     1488:  116:/*EOF*/
     1104:     1488:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      552:      744:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      133:      137:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      133:      137:  126:/*EOF*/
      133:      137:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      133:      137:  129:/*EOF*/
      133:      137:  130:/*EOF*/
      133:      137:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      133:      137:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      133:      137:  136:/*EOF*/
      133:      137:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      133:      137:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     2542:     2799:  176:/*EOF*/
        -:        -:  177:/*EOF*/
     2542:     2799:  178:/*EOF*/
     2542:     2799:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     2542:     2799:  181:/*EOF*/
        -:        -:  182:/*EOF*/
     1591:     1646:  183:/*EOF*/
     1591:     1646:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      266:      272:  186:/*EOF*/
      266:      272:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      552:      744:  189:/*EOF*/
      552:      744:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      133:      137:  192:/*EOF*/
      133:      137:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
     2542:     2799:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     1713:     1890:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     1713:     1890:  207:/*EOF*/
     1698:     1867:  208:/*EOF*/
     1692:     1859:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        6:        8:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       15:       23:  214:/*EOF*/
        6:       10:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        9:       13:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        9:       13:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        9:       13:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
     1114:     1152:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
     2228:     2304:  235:/*EOF*/
     1114:     1152:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
     2348:     2424:  239:/*EOF*/
     1234:     1272:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
     1114:     1152:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
     1059:     1147:  254:/*EOF*/
        -:        -:  255:/*EOF*/
     1059:     1147:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
     1059:     1147:  259:/*EOF*/
        -:        -:  260:/*EOF*/
      545:      564:  261:/*EOF*/
      545:      564:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      545:      564:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      545:      564:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      545:      564:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
      545:      564:  278:/*EOF*/
      224:      227:  279:/*EOF*/
      672:      681:  280:/*EOF*/
      448:      454:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      978:     1026:  285:/*EOF*/
      657:      689:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
      321:      337:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
      124:      130:  327:/*EOF*/
      124:      130:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      124:      130:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      124:      130:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      124:      130:  336:/*EOF*/
      124:      130:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
      184:      248:  340:/*EOF*/
      184:      248:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      184:      248:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      552:      744:  346:/*EOF*/
      552:      744:  347:/*EOF*/
      552:      744:  348:/*EOF*/
      368:      496:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      368:      496:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      184:      248:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      206:      205:  360:/*EOF*/
      206:      205:  361:/*EOF*/
      206:      205:  362:/*EOF*/
      206:      205:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      412:      410:  365:/*EOF*/
      206:      205:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      412:      410:  369:/*EOF*/
      206:      205:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      412:      410:  373:/*EOF*/
      206:      205:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      255:      258:  377:/*EOF*/
      206:      205:  378:/*EOF*/
      157:      152:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
       49:       53:  382:/*EOF*/
        -:        -:  383:/*EOF*/
      142:      152:  384:/*EOF*/
       93:       99:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       49:       53:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     3077:     3411:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
     3077:     3411:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     1753:     1946:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
     1753:     1946:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
     2124:     2387:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
     4248:     4774:  427:/*EOF*/
     2124:     2387:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
     2124:     2387:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
     1631:     1802:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      381:      409:  446:/*EOF*/
      381:      409:  447:/*EOF*/
     1079:     1163:  448:/*EOF*/
      472:      504:  449:/*EOF*/
       91:       95:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
      112:      176:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      164:      186:  465:/*EOF*/
        -:        -:  466:/*EOF*/
      164:      186:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       44:       46:  469:/*EOF*/
       44:       46:  470:/*EOF*/
        -:        -:  471:/*EOF*/
      106:      118:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       14:       22:  477:/*EOF*/
       14:       22:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
     1059:     1147:  488:/*EOF*/
        -:        -:  489:/*EOF*/
     1059:     1147:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       27:       27:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       27:       27:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       27:       27:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       27:       27:  502:/*EOF*/
       27:       27:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
     1103:     1240:  506:/*EOF*/
        -:        -:  507:/*EOF*/
     1103:     1240:  508:/*EOF*/
      201:      245:  509:/*EOF*/
        -:        -:  510:/*EOF*/
      902:      995:  511:/*EOF*/
      902:      995:  512:/*EOF*/
       82:       93:  513:/*EOF*/
       82:       93:  514:/*EOF*/
       82:       93:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
       82:       93:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
       82:       93:  525:/*EOF*/
       82:       93:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
      820:      902:  529:/*EOF*/
      820:      902:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
     1021:     1147:  534:/*EOF*/
        -:        -:  535:/*EOF*/
     1021:     1147:  536:/*EOF*/
      201:      245:  537:/*EOF*/
        -:        -:  538:/*EOF*/
      820:      902:  539:/*EOF*/
      820:      902:  540:/*EOF*/
      820:      902:  541:/*EOF*/

src/compiler/nir/.libs/nir_liveness.c.gcov

        -:        -:    0:Source:nir/nir_liveness.c
        -:        -:    0:Graph:nir_liveness.gcno
        -:        -:    0:Data:nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      273:      319:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      273:      319:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      273:      319:   57:/*EOF*/
        7:        7:   58:/*EOF*/
        -:        -:   59:/*EOF*/
      266:      312:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      273:      319:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       67:       99:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       67:       99:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       67:       99:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       67:       99:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       67:       99:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       67:       99:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       67:       99:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      577:      705:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      577:      705:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      577:      705:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      577:      705:   93:/*EOF*/
        7:        8:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      570:      697:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      570:      697:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      405:      509:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      405:      509:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      405:      509:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      405:      509:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      107:      187:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      107:      187:  124:/*EOF*/
      107:      187:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      213:      341:  127:/*EOF*/
      193:      279:  128:/*EOF*/
       87:      125:  129:/*EOF*/
      106:      154:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      106:      154:  132:/*EOF*/
      106:      154:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      213:      341:  136:/*EOF*/
      193:      279:  137:/*EOF*/
       87:      125:  138:/*EOF*/
      106:      154:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      159:      231:  141:/*EOF*/
      159:      231:  142:/*EOF*/
      106:      154:  143:/*EOF*/
      106:      154:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      107:      187:  149:/*EOF*/
      587:     1119:  150:/*EOF*/
      480:      932:  151:/*EOF*/
      480:      932:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      107:      187:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        6:        6:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        6:        6:  166:/*EOF*/
       73:      105:  167:/*EOF*/
      338:      406:  168:/*EOF*/
      271:      307:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        6:        6:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        6:        6:  178:/*EOF*/
       73:      105:  179:/*EOF*/
       67:       99:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      103:      169:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       91:      157:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       91:      157:  197:/*EOF*/
       91:      157:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       91:      157:  200:/*EOF*/
       91:      157:  201:/*EOF*/
       24:       42:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      385:      492:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      316:      363:  209:/*EOF*/
       22:       28:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      294:      335:  212:/*EOF*/
      294:      335:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      198:      344:  222:/*EOF*/
      107:      187:  223:/*EOF*/
      107:      187:  224:/*EOF*/
       85:      147:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        6:        6:  229:/*EOF*/
        6:        6:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      137:      165:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      137:      165:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
      101:      181:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      101:      181:  242:/*EOF*/
      291:      493:  243:/*EOF*/
       89:      131:  244:/*EOF*/
       89:      131:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
       89:      131:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      101:      181:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
      150:      318:  256:/*EOF*/
        -:        -:  257:/*EOF*/
      150:      318:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        1:        3:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      216:      470:  264:/*EOF*/
       67:      155:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      101:      181:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       48:      134:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
      166:      330:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      166:      330:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        2:    #####:  284:/*EOF*/
      164:      330:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       14:       12:  287:/*EOF*/
      150:      318:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      150:      318:  291:/*EOF*/

src/compiler/nir/.libs/nir_loop_analyze.c.gcov

        -:        -:    0:Source:nir/nir_loop_analyze.c
        -:        -:    0:Graph:nir_loop_analyze.gcno
        -:        -:    0:Data:nir_loop_analyze.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
     3009:     5539:   79:/*EOF*/
        -:        -:   80:/*EOF*/
     3009:     5539:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      347:      513:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      347:      513:   92:/*EOF*/
      347:      513:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      347:      513:   95:/*EOF*/
       49:      121:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      298:      392:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      347:      513:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      347:      513:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      167:      407:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      167:      407:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      547:     1017:  118:/*EOF*/
      713:     1135:  119:/*EOF*/
      440:      764:  120:/*EOF*/
      107:      239:  121:/*EOF*/
      273:      371:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      380:      610:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      167:      407:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      330:      504:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      330:      504:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       51:       35:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       51:       35:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      272:      358:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      272:      358:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      517:      651:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      517:      651:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      517:      651:  154:/*EOF*/
       28:       42:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      489:      609:  157:/*EOF*/
       20:       36:  158:/*EOF*/
       20:       36:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
      469:      573:  162:/*EOF*/
      179:      189:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      290:      384:  165:/*EOF*/
      197:      215:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      237:      285:  168:/*EOF*/
      219:      259:  169:/*EOF*/
      179:      189:  170:/*EOF*/
      179:      189:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       18:       26:  174:/*EOF*/
       18:       26:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       93:      169:  183:/*EOF*/
       93:      169:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       17:       33:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
      315:      425:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      298:      392:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      298:      392:  203:/*EOF*/
       26:       34:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       17:       33:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       17:       33:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       17:       33:  211:/*EOF*/
      289:      391:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
      272:      358:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      272:      358:  225:/*EOF*/
      210:      232:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       62:      126:  228:/*EOF*/
       62:      126:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      142:      334:  231:/*EOF*/
      102:      230:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      102:      230:  237:/*EOF*/
       22:       22:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       80:      208:  240:/*EOF*/
       40:       88:  241:/*EOF*/
       40:      120:  242:/*EOF*/
       18:       18:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       18:       18:  245:/*EOF*/
       17:       17:  246:/*EOF*/
       17:       17:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       51:       51:  249:/*EOF*/
        -:        -:  250:/*EOF*/
       51:       51:  251:/*EOF*/
       17:       17:  252:/*EOF*/
       17:       17:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       79:      143:  259:/*EOF*/
       17:       17:  260:/*EOF*/
       17:       17:  261:/*EOF*/
       17:       17:  262:/*EOF*/
       17:       17:  263:/*EOF*/
       17:       17:  264:/*EOF*/
       17:       17:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       17:       17:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       45:      109:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       17:       33:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
     1928:     4126:  276:/*EOF*/
        -:        -:  277:/*EOF*/
     1928:     4126:  278:/*EOF*/
     1928:     4126:  279:/*EOF*/
        -:        -:  280:/*EOF*/
     1928:     4126:  281:/*EOF*/
     1928:     4126:  282:/*EOF*/
        -:        -:  283:/*EOF*/
     1928:     4126:  284:/*EOF*/
      144:      282:  285:/*EOF*/
        -:        -:  286:/*EOF*/
     1784:     3844:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
     1928:     4126:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
       67:       67:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       67:       67:  296:/*EOF*/
       17:       17:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       50:       50:  299:/*EOF*/
       83:       83:  300:/*EOF*/
       33:       33:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       17:       17:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       17:       17:  307:/*EOF*/
      134:      134:  308:/*EOF*/
      117:      133:  309:/*EOF*/
       50:       50:  310:/*EOF*/
        -:        -:  311:/*EOF*/
       50:       50:  312:/*EOF*/
       50:       50:  313:/*EOF*/
       50:       50:  314:/*EOF*/
        -:        -:  315:/*EOF*/
       50:       50:  316:/*EOF*/
       50:       50:  317:/*EOF*/
       50:       50:  318:/*EOF*/
       33:       33:  319:/*EOF*/
       33:       33:  320:/*EOF*/
       33:       33:  321:/*EOF*/
       17:       17:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       50:       50:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
       50:       50:  335:/*EOF*/
       17:       17:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       33:       33:  338:/*EOF*/
    #####:       16:  339:/*EOF*/
        -:        -:  340:/*EOF*/
       33:       17:  341:/*EOF*/
       33:       17:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       33:       17:  344:/*EOF*/
       33:       17:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       33:       17:  347:/*EOF*/
       33:       17:  348:/*EOF*/
       33:       17:  349:/*EOF*/
       33:       17:  350:/*EOF*/
       33:       17:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       33:       17:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       17:        1:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       17:        1:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       17:        1:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       17:        1:  371:/*EOF*/
       17:        1:  372:/*EOF*/
       17:        1:  373:/*EOF*/
       17:        1:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       17:        1:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       34:        2:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
       34:        2:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       34:        2:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       34:        2:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
       34:        2:  418:/*EOF*/
       34:        2:  419:/*EOF*/
       34:        2:  420:/*EOF*/
       34:        2:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
       34:        2:  429:/*EOF*/
       34:        2:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       34:        2:  434:/*EOF*/
       34:        2:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       34:        2:  438:/*EOF*/
       34:        2:  439:/*EOF*/
       34:        2:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
       34:        2:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       34:        2:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
       17:        1:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       17:        1:  453:/*EOF*/
        -:        -:  454:/*EOF*/
       17:        1:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
       17:        1:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
       17:        1:  463:/*EOF*/
       17:        1:  464:/*EOF*/
       17:        1:  465:/*EOF*/
       17:        1:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
       17:        1:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       17:        1:  487:/*EOF*/
       34:        2:  488:/*EOF*/
       17:        1:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       17:        1:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
       17:        1:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
       17:        1:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       17:        1:  512:/*EOF*/
       34:        2:  513:/*EOF*/
       34:        2:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       34:        2:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       17:        1:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
       17:        1:  533:/*EOF*/
        -:        -:  534:/*EOF*/
       17:        1:  535:/*EOF*/
       17:        1:  536:/*EOF*/
       17:        1:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       50:        2:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
       33:        1:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
       33:        1:  551:/*EOF*/
       33:        1:  552:/*EOF*/
       33:        1:  553:/*EOF*/
       33:        1:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       33:        1:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
       33:        1:  563:/*EOF*/
       33:        1:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       33:        1:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       16:    #####:  568:/*EOF*/
       16:    #####:  569:/*EOF*/
       16:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
       33:        1:  576:/*EOF*/
       16:    #####:  577:/*EOF*/
       32:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       17:        1:  589:/*EOF*/
       34:        2:  590:/*EOF*/
       17:        1:  591:/*EOF*/
        -:        -:  592:/*EOF*/
       17:        1:  593:/*EOF*/
       17:        1:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       17:        1:  597:/*EOF*/
       17:        1:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       34:        2:  600:/*EOF*/
        -:        -:  601:/*EOF*/
       17:        1:  602:/*EOF*/
        -:        -:  603:/*EOF*/
       17:        1:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
       17:        1:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
       17:        1:  616:/*EOF*/
       17:        1:  617:/*EOF*/
       17:        1:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       17:        1:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       17:        1:  627:/*EOF*/
       17:        1:  628:/*EOF*/
       17:        1:  629:/*EOF*/
       17:        1:  630:/*EOF*/
       17:        1:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
       37:        1:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
       37:        1:  640:/*EOF*/
        -:        -:  641:/*EOF*/
       99:        3:  642:/*EOF*/
       25:        1:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       25:        1:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       25:        1:  647:/*EOF*/
       25:        1:  648:/*EOF*/
       25:        1:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
       37:        1:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
      167:        7:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
      547:       47:  682:/*EOF*/
      380:       40:  683:/*EOF*/
      333:       39:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       47:        1:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
       57:        1:  691:/*EOF*/
       20:    #####:  692:/*EOF*/
       10:    #####:  693:/*EOF*/
       37:        1:  694:/*EOF*/
       37:        1:  695:/*EOF*/
       74:        2:  696:/*EOF*/
       37:        1:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
      167:        7:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
       17:       33:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      558:     1612:  712:/*EOF*/
     2557:     6007:  713:/*EOF*/
     2016:     4428:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
      134:      262:  720:/*EOF*/
      117:      229:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       67:      131:  724:/*EOF*/
       67:      131:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
      150:      246:  728:/*EOF*/
      100:      164:  729:/*EOF*/
       50:       82:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:      128:  733:/*EOF*/
    #####:      112:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:       16:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
       17:       33:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
       17:       33:  747:/*EOF*/
    #####:       16:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
       17:       17:  753:/*EOF*/
    #####:       32:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:       16:  757:/*EOF*/
    #####:       16:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:       16:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
       17:        1:  764:/*EOF*/
        -:        -:  765:/*EOF*/
       17:        1:  766:/*EOF*/
      134:        6:  767:/*EOF*/
      117:        5:  768:/*EOF*/
       67:        3:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
      150:        6:  772:/*EOF*/
      100:        4:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
       17:       33:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       17:       33:  784:/*EOF*/
       17:       33:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       17:       33:  787:/*EOF*/
        -:        -:  788:/*EOF*/
       17:       33:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       17:       33:  791:/*EOF*/
       12:       24:  792:/*EOF*/
        -:        -:  793:/*EOF*/
       17:       33:  794:/*EOF*/
        -:        -:  795:/*EOF*/
       17:       33:  796:/*EOF*/
        -:        -:  797:/*EOF*/
       17:       33:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
      356:      532:  802:/*EOF*/
        -:        -:  803:/*EOF*/
      356:      532:  804:/*EOF*/
        -:        -:  805:/*EOF*/
      268:      396:  806:/*EOF*/
        -:        -:  807:/*EOF*/
       71:      103:  808:/*EOF*/
      142:      206:  809:/*EOF*/
       71:      103:  810:/*EOF*/
      142:      206:  811:/*EOF*/
       71:      103:  812:/*EOF*/
       71:      103:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
       17:       33:  816:/*EOF*/
      134:      262:  817:/*EOF*/
      117:      229:  818:/*EOF*/
       17:       33:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       17:       33:  825:/*EOF*/
       17:       33:  826:/*EOF*/
       17:       33:  827:/*EOF*/
        -:        -:  828:/*EOF*/
       17:       33:  829:/*EOF*/
       17:       33:  830:/*EOF*/
        -:        -:  831:/*EOF*/
       17:       33:  832:/*EOF*/
        -:        -:  833:/*EOF*/
       17:       33:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
       21:       21:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
       21:       21:  841:/*EOF*/
      118:      118:  842:/*EOF*/
       97:       97:  843:/*EOF*/
       21:       21:  844:/*EOF*/

src/compiler/nir/.libs/nir_lower_64bit_packing.c.gcov

        -:        -:    0:Source:nir/nir_lower_64bit_packing.c
        -:        -:    0:Graph:nir_lower_64bit_packing.gcno
        -:        -:    0:Data:nir_lower_64bit_packing.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       27:       27:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       27:       27:   55:/*EOF*/
       27:       27:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      302:      430:   58:/*EOF*/
     1525:     1779:   59:/*EOF*/
     1250:     1376:   60:/*EOF*/
      544:      652:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      706:      724:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     1412:     1448:   65:/*EOF*/
      706:      724:   66:/*EOF*/
      706:      724:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       27:       27:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       27:       27:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       27:       27:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       54:       54:  101:/*EOF*/
       27:       27:  102:/*EOF*/
       27:       27:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       27:       27:  106:/*EOF*/

src/compiler/nir/.libs/nir_lower_alu_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_alu_to_scalar.c
        -:        -:    0:Graph:nir_lower_alu_to_scalar.gcno
        -:        -:    0:Data:nir_lower_alu_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       36:       44:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       36:       44:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       36:       44:   39:/*EOF*/
       36:       44:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      917:      962:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      917:      962:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      917:      962:   82:/*EOF*/
      917:      962:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      917:      962:   85:/*EOF*/
      917:      962:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      917:      962:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       13:       15:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      904:      947:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      904:      947:  206:/*EOF*/
      895:      936:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        9:       11:  209:/*EOF*/
        9:       11:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       45:       55:  212:/*EOF*/
       36:       44:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       36:       44:  216:/*EOF*/
       80:      104:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       44:       60:  221:/*EOF*/
       88:      120:  222:/*EOF*/
       44:       60:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       44:       60:  225:/*EOF*/
      220:      300:  226:/*EOF*/
      176:      240:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       36:       44:  230:/*EOF*/
       36:       44:  231:/*EOF*/
       36:       44:  232:/*EOF*/
       36:       44:  233:/*EOF*/
        -:        -:  234:/*EOF*/
       36:       44:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        9:       11:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        9:       11:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        9:       11:  242:/*EOF*/
        9:       11:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       17:       17:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       17:       17:  250:/*EOF*/
       17:       17:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      335:      463:  253:/*EOF*/
     1836:     2141:  254:/*EOF*/
     1518:     1695:  255:/*EOF*/
     1834:     1924:  256:/*EOF*/
      917:      962:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       17:       17:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       17:       17:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       17:       17:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       34:       34:  273:/*EOF*/
       17:       17:  274:/*EOF*/
       17:       17:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       17:       17:  278:/*EOF*/

src/compiler/nir/.libs/nir_lower_atomics.c.gcov

        -:        -:    0:Source:nir/nir_lower_atomics.c
        -:        -:    0:Graph:nir_lower_atomics.gcno
        -:        -:    0:Data:nir_lower_atomics.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       24:       30:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       24:       30:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       24:       30:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        3:        3:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        6:        6:  181:/*EOF*/
        3:        3:  182:/*EOF*/
       37:       53:  183:/*EOF*/
      199:      259:  184:/*EOF*/
      165:      209:  185:/*EOF*/
       24:       30:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        3:        3:  196:/*EOF*/

src/compiler/nir/.libs/nir_lower_constant_initializers.c.gcov

        -:        -:    0:Source:nir/nir_lower_constant_initializers.c
        -:        -:    0:Graph:nir_lower_constant_initializers.gcno
        -:        -:    0:Data:nir_lower_constant_initializers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
       37:       39:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       37:       39:   30:/*EOF*/
        -:        -:   31:/*EOF*/
       37:       39:   32:/*EOF*/
       37:       39:   33:/*EOF*/
       37:       39:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       37:       39:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       37:       39:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       12:       12:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       12:       12:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       12:       12:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       74:       76:   48:/*EOF*/
       62:       64:   49:/*EOF*/
       25:       25:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       37:       39:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       37:       39:   55:/*EOF*/
       37:       39:   56:/*EOF*/
       37:       39:   57:/*EOF*/
       37:       39:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       37:       39:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       37:       39:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       12:       12:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        3:        3:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        3:        3:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        3:        3:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        3:        3:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        3:        3:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        6:        6:   97:/*EOF*/
        3:        3:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        3:        3:  102:/*EOF*/
        2:        2:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        2:        2:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/

src/compiler/nir/.libs/nir_lower_double_ops.c.gcov

        -:        -:    0:Source:nir/nir_lower_double_ops.c
        -:        -:    0:Graph:nir_lower_double_ops.gcno
        -:        -:    0:Data:nir_lower_double_ops.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
      706:      724:  460:/*EOF*/
        -:        -:  461:/*EOF*/
      706:      724:  462:/*EOF*/
      706:      724:  463:/*EOF*/
      706:      724:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
       27:       27:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
       27:       27:  570:/*EOF*/
        -:        -:  571:/*EOF*/
      302:      430:  572:/*EOF*/
     1525:     1779:  573:/*EOF*/
     1250:     1376:  574:/*EOF*/
      706:      724:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
       27:       27:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       27:       27:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
       27:       27:  588:/*EOF*/
        -:        -:  589:/*EOF*/
       27:       27:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       54:       54:  592:/*EOF*/
       27:       27:  593:/*EOF*/
       27:       27:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       27:       27:  598:/*EOF*/

src/compiler/nir/.libs/nir_lower_global_vars_to_local.c.gcov

        -:        -:    0:Source:nir/nir_lower_global_vars_to_local.c
        -:        -:    0:Graph:nir_lower_global_vars_to_local.gcno
        -:        -:    0:Data:nir_lower_global_vars_to_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       89:      105:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      414:      448:   39:/*EOF*/
      325:      343:   40:/*EOF*/
      123:      133:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      202:      210:   43:/*EOF*/
      202:      210:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      457:      473:   46:/*EOF*/
      255:      263:   47:/*EOF*/
      255:      263:   48:/*EOF*/
      246:      254:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        9:        9:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        9:        9:   54:/*EOF*/
        6:        6:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       89:      105:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        5:        5:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        5:        5:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        5:        5:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       10:       10:   79:/*EOF*/
        5:        5:   80:/*EOF*/
       94:      110:   81:/*EOF*/
       89:      105:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        8:        8:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        3:        3:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        3:        3:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
        3:        3:   94:/*EOF*/
        3:        3:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        3:        3:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        5:        5:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/

src/compiler/nir/.libs/nir_lower_indirect_derefs.c.gcov

        -:        -:    0:Source:nir/nir_lower_indirect_derefs.c
        -:        -:    0:Graph:nir_lower_indirect_derefs.gcno
        -:        -:    0:Data:nir_lower_indirect_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       30:       32:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       46:       48:  121:/*EOF*/
       16:       16:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       16:       16:  125:/*EOF*/
       16:       16:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
       30:       32:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       36:       52:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       36:       52:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      151:      183:  139:/*EOF*/
      115:      131:  140:/*EOF*/
       85:       99:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       30:       32:  143:/*EOF*/
       36:       38:  144:/*EOF*/
        6:        6:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       30:       32:  148:/*EOF*/
       30:       32:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       36:       52:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        5:        5:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        5:        5:  182:/*EOF*/
        5:        5:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       41:       57:  185:/*EOF*/
       36:       52:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        5:        5:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        5:        5:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        5:        5:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        5:        5:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       10:       10:  205:/*EOF*/
        5:        5:  206:/*EOF*/
        5:        5:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        5:        5:  210:/*EOF*/

src/compiler/nir/.libs/nir_lower_int64.c.gcov

        -:        -:    0:Source:nir/nir_lower_int64.c
        -:        -:    0:Graph:nir_lower_int64.gcno
        -:        -:    0:Data:nir_lower_int64.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    #####:    #####:   28:/*EOF*/
        -:        -:   29:/*EOF*/
    #####:    #####:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
    #####:    #####:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
        -:        -:   34:/*EOF*/
    #####:    #####:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        5:        5:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        5:        5:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        5:        5:  258:/*EOF*/
       41:       57:  259:/*EOF*/
      151:      183:  260:/*EOF*/
      115:      131:  261:/*EOF*/
       56:       70:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       59:       61:  264:/*EOF*/
       59:       61:  265:/*EOF*/
       59:       61:  266:/*EOF*/
       59:       61:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        5:        5:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        5:        5:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       10:       10:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        5:        5:  295:/*EOF*/

src/compiler/nir/.libs/nir_lower_io.c.gcov

        -:        -:    0:Source:nir/nir_lower_io.c
        -:        -:    0:Graph:nir_lower_io.gcno
        -:        -:    0:Data:nir_lower_io.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        4:        4:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        4:        4:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        8:        8:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        8:        8:   55:/*EOF*/
        4:        4:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        4:        4:   59:/*EOF*/
        4:        4:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        4:        4:   63:/*EOF*/
        4:        4:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       64:       78:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       64:       78:   73:/*EOF*/
       48:       62:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       16:       16:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       16:       16:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       16:       16:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       34:       40:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       34:       40:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       34:       40:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       34:       40:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       34:       40:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       84:       96:  125:/*EOF*/
       16:       16:  126:/*EOF*/
       16:       16:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       16:       16:  129:/*EOF*/
       16:       16:  130:/*EOF*/
       16:       16:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       16:       16:  133:/*EOF*/
       16:       16:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       16:       16:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       34:       40:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       28:       34:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       28:       34:  162:/*EOF*/
       28:       34:  163:/*EOF*/
       28:       34:  164:/*EOF*/
       28:       34:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       28:       34:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       15:       23:  170:/*EOF*/
       12:       20:  171:/*EOF*/
       11:       19:  172:/*EOF*/
        5:        9:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       10:       18:  176:/*EOF*/
        5:        9:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        5:        9:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        5:        9:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        9:  184:/*EOF*/
        5:        9:  185:/*EOF*/
        5:        9:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        4:        4:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        9:       13:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       19:       21:  197:/*EOF*/
       19:       21:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       28:       34:  206:/*EOF*/
       28:       34:  207:/*EOF*/
       28:       34:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       28:       34:  210:/*EOF*/
       28:       34:  211:/*EOF*/
        9:       13:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       28:       34:  214:/*EOF*/
       19:       21:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       28:       34:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
       28:       34:  220:/*EOF*/
        5:        9:  221:/*EOF*/
        5:        9:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       23:       25:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       28:       34:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        6:        6:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        6:        6:  235:/*EOF*/
        6:        6:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        6:        6:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        6:        6:  242:/*EOF*/
        6:        6:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        6:        6:  247:/*EOF*/
        6:        6:  248:/*EOF*/
        6:        6:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        6:        6:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        6:        6:  255:/*EOF*/
        6:        6:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        6:        6:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        6:        6:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        6:        6:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        6:        6:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      107:      155:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      107:      155:  365:/*EOF*/
      107:      155:  366:/*EOF*/
      107:      155:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      653:      843:  369:/*EOF*/
      546:      688:  370:/*EOF*/
      953:     1209:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      105:      127:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      105:      127:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       53:       63:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
       52:       64:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       53:       63:  401:/*EOF*/
       53:       63:  402:/*EOF*/
        -:        -:  403:/*EOF*/
       53:       63:  404:/*EOF*/
       19:       23:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       34:       40:  407:/*EOF*/
       19:       21:  408:/*EOF*/
       19:       21:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
       34:       40:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       34:       40:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
       34:       40:  418:/*EOF*/
       34:       40:  419:/*EOF*/
        -:        -:  420:/*EOF*/
       34:       40:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       34:       40:  427:/*EOF*/
        -:        -:  428:/*EOF*/
       28:       34:  429:/*EOF*/
        -:        -:  430:/*EOF*/
       28:       34:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        6:        6:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        6:        6:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       34:       40:  464:/*EOF*/
       28:       34:  465:/*EOF*/
       56:       68:  466:/*EOF*/
       28:       34:  467:/*EOF*/
       28:       34:  468:/*EOF*/
       28:       34:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
       34:       40:  476:/*EOF*/
       34:       40:  477:/*EOF*/
       34:       40:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      107:      155:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       14:       14:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       14:       14:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       14:       14:  493:/*EOF*/
       14:       14:  494:/*EOF*/
       14:       14:  495:/*EOF*/
       14:       14:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      121:      169:  498:/*EOF*/
      107:      155:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       14:       14:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       14:       14:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       14:       14:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       14:       14:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       28:       28:  514:/*EOF*/
       14:       14:  515:/*EOF*/
       14:       14:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       14:       14:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        9:       13:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        9:       13:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        4:        4:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        5:        9:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/

src/compiler/nir/.libs/nir_lower_load_const_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_load_const_to_scalar.c
        -:        -:    0:Graph:nir_lower_load_const_to_scalar.gcno
        -:        -:    0:Data:nir_lower_load_const_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        4:        4:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        4:        4:   41:/*EOF*/
        4:        4:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        3:        3:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       37:       53:   76:/*EOF*/
      131:      163:   77:/*EOF*/
       97:      113:   78:/*EOF*/
        4:        4:   79:/*EOF*/
        4:        4:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        3:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        3:        3:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        6:        6:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/

src/compiler/nir/.libs/nir_lower_locals_to_regs.c.gcov

        -:        -:    0:Source:nir/nir_lower_locals_to_regs.c
        -:        -:    0:Graph:nir_lower_locals_to_regs.gcno
        -:        -:    0:Data:nir_lower_locals_to_regs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       36:       52:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      156:      186:  202:/*EOF*/
      120:      134:  203:/*EOF*/
       93:      107:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       27:       27:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       27:       27:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
       27:       27:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       36:       52:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        5:        5:  272:/*EOF*/
        5:        5:  273:/*EOF*/
        5:        5:  274:/*EOF*/
        5:        5:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        5:        5:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       41:       57:  279:/*EOF*/
       36:       52:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        5:        5:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        5:        5:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        5:        5:  297:/*EOF*/
        5:        5:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        5:        5:  301:/*EOF*/

src/compiler/nir/.libs/nir_lower_phis_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_phis_to_scalar.c
        -:        -:    0:Graph:nir_lower_phis_to_scalar.gcno
        -:        -:    0:Data:nir_lower_phis_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
      190:      254:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      190:      254:  134:/*EOF*/
      190:      254:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      318:      446:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      318:      446:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      318:      446:  172:/*EOF*/
      508:      700:  173:/*EOF*/
      424:      538:  174:/*EOF*/
      234:      284:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      190:      254:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      508:      700:  183:/*EOF*/
      424:      538:  184:/*EOF*/
      234:      284:  185:/*EOF*/
        -:        -:  186:/*EOF*/
      190:      254:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      190:      254:  189:/*EOF*/
      190:      254:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      318:      446:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       17:       17:  272:/*EOF*/
        -:        -:  273:/*EOF*/
       17:       17:  274:/*EOF*/
       17:       17:  275:/*EOF*/
       17:       17:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      335:      463:  279:/*EOF*/
      318:      446:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       17:       17:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       17:       17:  286:/*EOF*/
       17:       17:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       17:       17:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       17:       17:  300:/*EOF*/
        -:        -:  301:/*EOF*/
       34:       34:  302:/*EOF*/
       17:       17:  303:/*EOF*/
       17:       17:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       17:       17:  307:/*EOF*/

src/compiler/nir/.libs/nir_lower_regs_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_regs_to_ssa.c
        -:        -:    0:Graph:nir_lower_regs_to_ssa.gcno
        -:        -:    0:Data:nir_lower_regs_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
      454:      474:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      454:      474:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      454:      474:   44:/*EOF*/
      416:      436:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       38:       38:   47:/*EOF*/
       38:       38:   48:/*EOF*/
       38:       38:   49:/*EOF*/
       38:       38:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       38:       38:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       38:       38:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       38:       38:   61:/*EOF*/
       38:       38:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       38:       38:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        9:       13:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        9:       13:   70:/*EOF*/
        9:       13:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      100:      110:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      100:      110:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      100:      110:   88:/*EOF*/
       54:       64:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       46:       46:   91:/*EOF*/
       46:       46:   92:/*EOF*/
       46:       46:   93:/*EOF*/
       46:       46:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       46:       46:   97:/*EOF*/
       92:       92:   98:/*EOF*/
       46:       46:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       46:       46:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       46:       46:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      220:      222:  107:/*EOF*/
        -:        -:  108:/*EOF*/
      220:      222:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      220:      222:  111:/*EOF*/
      386:      390:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       50:       50:  114:/*EOF*/
       50:       50:  115:/*EOF*/
       50:       50:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       50:       50:  119:/*EOF*/
       50:       50:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       46:       46:  124:/*EOF*/
       46:       46:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        4:        4:  134:/*EOF*/
        4:        4:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        4:        4:  139:/*EOF*/
       20:       20:  140:/*EOF*/
       16:       16:  141:/*EOF*/
        4:        4:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        8:        8:  148:/*EOF*/
        4:        4:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        4:        4:  162:/*EOF*/
       20:       20:  163:/*EOF*/
       16:       16:  164:/*EOF*/
       12:       12:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        4:        4:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        4:        4:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        4:        4:  176:/*EOF*/
        4:        4:  177:/*EOF*/
        8:        8:  178:/*EOF*/
        4:        4:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        4:        4:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        4:        4:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        4:        4:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        4:        4:  191:/*EOF*/
        4:        4:  192:/*EOF*/
        4:        4:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       20:       20:  195:/*EOF*/
       16:       16:  196:/*EOF*/
        4:        4:  197:/*EOF*/
        4:        4:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       12:       12:  200:/*EOF*/
       12:       12:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        8:        8:  205:/*EOF*/
        4:        4:  206:/*EOF*/
        4:        4:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        4:        4:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        2:        2:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        2:        2:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        2:        2:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        2:        2:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        2:        2:  224:/*EOF*/
        2:        2:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        2:        2:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        2:        2:  229:/*EOF*/
        2:        2:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       17:       17:  232:/*EOF*/
       15:       15:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       15:       15:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       65:       65:  244:/*EOF*/
       50:       50:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       30:       30:  247:/*EOF*/
       15:       15:  248:/*EOF*/
       15:       15:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       35:       51:  252:/*EOF*/
      370:      402:  253:/*EOF*/
      337:      353:  254:/*EOF*/
      220:      222:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      117:      131:  257:/*EOF*/
      117:      131:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       33:       49:  262:/*EOF*/
       33:       49:  263:/*EOF*/
        9:       13:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        2:        2:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
       15:       15:  270:/*EOF*/
       15:       15:  271:/*EOF*/
       15:       15:  272:/*EOF*/
       15:       15:  273:/*EOF*/
       15:       15:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        2:        2:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        2:        2:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        2:        2:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        1:        1:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        1:        1:  288:/*EOF*/
        1:        1:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        1:        1:  292:/*EOF*/
        1:        1:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        1:        1:  296:/*EOF*/

src/compiler/nir/.libs/nir_lower_returns.c.gcov

        -:        -:    0:Source:nir/nir_lower_returns.c
        -:        -:    0:Graph:nir_lower_returns.gcno
        -:        -:    0:Data:nir_lower_returns.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        5:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        3:        5:   82:/*EOF*/
        3:        5:   83:/*EOF*/
        3:        5:   84:/*EOF*/
        3:        5:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        5:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        5:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       26:       30:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       26:       30:  105:/*EOF*/
       26:       30:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       26:       30:  108:/*EOF*/
       26:       30:  109:/*EOF*/
       26:       30:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       26:       30:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       26:       30:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       26:       30:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       87:      103:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       90:      106:  152:/*EOF*/
        3:        3:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       87:      103:  170:/*EOF*/
       87:      103:  171:/*EOF*/
       24:       32:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       63:       71:  174:/*EOF*/
       58:       62:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        5:        9:  177:/*EOF*/
        5:        9:  178:/*EOF*/
        5:        9:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       58:       68:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       58:       68:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       58:       68:  215:/*EOF*/
       58:       68:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      174:      206:  223:/*EOF*/
      116:      138:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       87:      103:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
       87:      103:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       26:       30:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
       26:       30:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        3:        5:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        3:        5:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       58:       68:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       58:       68:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        3:        3:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        3:        3:  255:/*EOF*/
        3:        3:  256:/*EOF*/
        3:        3:  257:/*EOF*/
        3:        3:  258:/*EOF*/
        3:        3:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        3:        3:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        3:        3:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        3:        3:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        3:        3:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        3:        3:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        6:        6:  276:/*EOF*/
        3:        3:  277:/*EOF*/
        3:        3:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        3:        3:  281:/*EOF*/

src/compiler/nir/.libs/nir_lower_samplers.c.gcov

        -:        -:    0:Source:nir/nir_lower_samplers.c
        -:        -:    0:Graph:nir_lower_samplers.gcno
        -:        -:    0:Data:nir_lower_samplers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        3:        3:  161:/*EOF*/
        3:        3:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       37:       53:  164:/*EOF*/
      199:      259:  165:/*EOF*/
      165:      209:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        3:        3:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        6:        6:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        3:        3:  186:/*EOF*/

src/compiler/nir/.libs/nir_lower_system_values.c.gcov

        -:        -:    0:Source:nir/nir_lower_system_values.c
        -:        -:    0:Graph:nir_lower_system_values.gcno
        -:        -:    0:Data:nir_lower_system_values.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
       35:       51:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       35:       51:   34:/*EOF*/
        -:        -:   35:/*EOF*/
      174:      232:   36:/*EOF*/
      139:      181:   37:/*EOF*/
      107:      143:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       32:       38:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       32:       38:   42:/*EOF*/
        5:        5:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       27:       33:   45:/*EOF*/
       27:       33:   46:/*EOF*/
       27:       33:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       35:       51:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        4:        4:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        4:        4:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        4:        4:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       39:       55:  145:/*EOF*/
       35:       51:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        4:        4:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        4:        4:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        4:        4:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        4:        4:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        8:        8:  159:/*EOF*/
        4:        4:  160:/*EOF*/
        4:        4:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        4:        4:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        4:        4:  166:/*EOF*/

src/compiler/nir/.libs/nir_lower_tex.c.gcov

        -:        -:    0:Source:nir/nir_lower_tex.c
        -:        -:    0:Graph:nir_lower_tex.gcno
        -:        -:    0:Data:nir_lower_tex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
        -:        -:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
        -:        -:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
      125:      157:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      125:      157:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      642:      736:  712:/*EOF*/
      517:      579:  713:/*EOF*/
      517:      579:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
      125:      157:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
       10:       10:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
       10:       10:  807:/*EOF*/
        -:        -:  808:/*EOF*/
       10:       10:  809:/*EOF*/
        -:        -:  810:/*EOF*/
      135:      167:  811:/*EOF*/
      125:      157:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
       10:       10:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       10:       10:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
       10:       10:  821:/*EOF*/
        -:        -:  822:/*EOF*/
       10:       10:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       20:       20:  825:/*EOF*/
       10:       10:  826:/*EOF*/
       10:       10:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       10:       10:  830:/*EOF*/

src/compiler/nir/.libs/nir_lower_to_source_mods.c.gcov

        -:        -:    0:Source:nir/nir_lower_to_source_mods.c
        -:        -:    0:Graph:nir_lower_to_source_mods.gcno
        -:        -:    0:Data:nir_lower_to_source_mods.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       36:       52:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       36:       52:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      176:      211:   41:/*EOF*/
      140:      159:   42:/*EOF*/
       68:       80:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       72:       79:   45:/*EOF*/
        -:        -:   46:/*EOF*/
      204:      221:   47:/*EOF*/
      132:      142:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      132:      142:   51:/*EOF*/
       60:       66:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       72:       76:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       72:       76:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       72:       76:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       61:       63:   61:/*EOF*/
       56:       56:   62:/*EOF*/
        5:        7:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        4:        6:   65:/*EOF*/
        4:        6:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        7:        7:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        5:        7:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        5:        7:   79:/*EOF*/
        5:        7:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        5:        7:   83:/*EOF*/
        5:        7:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       25:       35:   87:/*EOF*/
       20:       28:   88:/*EOF*/
       15:       21:   89:/*EOF*/
        5:        7:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       10:       14:   93:/*EOF*/
        5:        7:   94:/*EOF*/
        5:        7:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        5:        7:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       72:       79:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       10:       12:  110:/*EOF*/
       10:       12:  111:/*EOF*/
       10:       12:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       62:       67:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       72:       79:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       72:       79:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       20:       24:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       52:       55:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       52:       55:  142:/*EOF*/
      118:      123:  143:/*EOF*/
       66:       68:  144:/*EOF*/
       66:       68:  145:/*EOF*/
       66:       68:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        6:        6:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       60:       62:  151:/*EOF*/
       60:       62:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      120:      124:  157:/*EOF*/
       60:       62:  158:/*EOF*/
       60:       62:  159:/*EOF*/
       60:       62:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       52:       55:  164:/*EOF*/
       46:       48:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        6:        7:  167:/*EOF*/
        6:        7:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        6:        7:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       36:       52:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        5:        5:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        5:        5:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       41:       57:  192:/*EOF*/
       36:       52:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        1:        1:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        5:        5:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        5:        5:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        5:        5:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       10:       10:  208:/*EOF*/
        5:        5:  209:/*EOF*/
        5:        5:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        5:        5:  214:/*EOF*/

src/compiler/nir/.libs/nir_lower_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_lower_var_copies.c
        -:        -:    0:Graph:nir_lower_var_copies.gcno
        -:        -:    0:Data:nir_lower_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      106:      106:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      112:      112:   43:/*EOF*/
        6:        6:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        6:        6:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        6:        6:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      106:      106:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       53:       53:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       53:       53:   84:/*EOF*/
       53:       53:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       53:       53:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       53:       53:  114:/*EOF*/
       53:       53:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       53:       53:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       53:       53:  119:/*EOF*/
       53:       53:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       53:       53:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       53:       53:  124:/*EOF*/
       53:       53:  125:/*EOF*/
       53:       53:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       53:       53:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       53:       53:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       53:       53:  133:/*EOF*/
       53:       53:  134:/*EOF*/
       53:       53:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       53:       53:  137:/*EOF*/
       53:       53:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       53:       53:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       53:       53:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       53:       53:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       53:       53:  151:/*EOF*/
      106:      106:  152:/*EOF*/
       53:       53:  153:/*EOF*/
       53:       53:  154:/*EOF*/
       53:       53:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       41:       57:  163:/*EOF*/
      150:      182:  164:/*EOF*/
      114:      130:  165:/*EOF*/
       85:       99:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       29:       31:  168:/*EOF*/
       29:       31:  169:/*EOF*/
       28:       30:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        1:        1:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        1:        1:  174:/*EOF*/
        1:        1:  175:/*EOF*/
        1:        1:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        5:        5:  180:/*EOF*/
        1:        1:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        5:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        5:        5:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        5:        5:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       10:       10:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        5:        5:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        5:        5:  200:/*EOF*/

src/compiler/nir/.libs/nir_lower_vars_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_vars_to_ssa.c
        -:        -:    0:Graph:nir_lower_vars_to_ssa.gcno
        -:        -:    0:Data:nir_lower_vars_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      159:      161:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      159:      161:   97:/*EOF*/
      159:      161:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      159:      161:  100:/*EOF*/
      159:      161:  101:/*EOF*/
      159:      161:  102:/*EOF*/
      159:      161:  103:/*EOF*/
      159:      161:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      159:      161:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     1073:     1111:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
     1073:     1111:  117:/*EOF*/
     1073:     1111:  118:/*EOF*/
        -:        -:  119:/*EOF*/
     1073:     1111:  120:/*EOF*/
      956:      992:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      117:      119:  123:/*EOF*/
      117:      119:  124:/*EOF*/
      117:      119:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     1011:     1047:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     1011:     1047:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
     1011:     1047:  140:/*EOF*/
     1011:     1047:  141:/*EOF*/
        -:        -:  142:/*EOF*/
     1134:     1170:  143:/*EOF*/
      123:      123:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      123:      123:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      123:      123:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      123:      123:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      123:      123:  170:/*EOF*/
       84:       84:  171:/*EOF*/
       42:       42:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      123:      123:  174:/*EOF*/
      123:      123:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      123:      123:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     1011:     1047:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
     1372:     1426:  208:/*EOF*/
      361:      379:  209:/*EOF*/
      150:      152:  210:/*EOF*/
      150:      152:  211:/*EOF*/
      150:      152:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
     1011:     1047:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       62:       64:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       62:       64:  226:/*EOF*/
       62:       64:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       62:       64:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       62:       64:  276:/*EOF*/
       62:       64:  277:/*EOF*/
       62:       64:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       62:       64:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       62:       64:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       62:       64:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       62:       64:  291:/*EOF*/
       62:       64:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
       62:       64:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
       62:       64:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      317:      339:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      317:      339:  360:/*EOF*/
      317:      339:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      317:      339:  364:/*EOF*/
      129:      131:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
      317:      339:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      180:      184:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      180:      184:  375:/*EOF*/
      180:      184:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      180:      184:  379:/*EOF*/
       81:       83:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      180:      184:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       53:       53:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
      159:      159:  390:/*EOF*/
      106:      106:  391:/*EOF*/
      106:      106:  392:/*EOF*/
        -:        -:  393:/*EOF*/
      106:      106:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
      106:      106:  397:/*EOF*/
       44:       44:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      106:      106:  401:/*EOF*/
        -:        -:  402:/*EOF*/
       53:       53:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
      415:      559:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     2302:     2633:  410:/*EOF*/
     1887:     2074:  411:/*EOF*/
     1271:     1422:  412:/*EOF*/
        -:        -:  413:/*EOF*/
      616:      652:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      616:      652:  416:/*EOF*/
        -:        -:  417:/*EOF*/
      317:      339:  418:/*EOF*/
      317:      339:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      180:      184:  422:/*EOF*/
      180:      184:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
       53:       53:  426:/*EOF*/
       53:       53:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       66:       76:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      415:      559:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
       62:       64:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       62:       64:  444:/*EOF*/
       26:       28:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       88:       88:  448:/*EOF*/
       52:       52:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       52:       52:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      156:      156:  453:/*EOF*/
      104:      104:  454:/*EOF*/
      104:      104:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
      104:      104:  458:/*EOF*/
       52:       52:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       52:       52:  461:/*EOF*/
       52:       52:  462:/*EOF*/
       52:       52:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       52:       52:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       36:       36:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       36:       36:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        3:        3:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        3:        3:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       90:      106:  487:/*EOF*/
      423:      457:  488:/*EOF*/
      336:      354:  489:/*EOF*/
       94:      104:  490:/*EOF*/
        -:        -:  491:/*EOF*/
      242:      250:  492:/*EOF*/
        -:        -:  493:/*EOF*/
      242:      250:  494:/*EOF*/
        -:        -:  495:/*EOF*/
      134:      140:  496:/*EOF*/
      134:      140:  497:/*EOF*/
        -:        -:  498:/*EOF*/
      134:      140:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
      134:      140:  518:/*EOF*/
       20:       22:  519:/*EOF*/
        -:        -:  520:/*EOF*/
      114:      118:  521:/*EOF*/
        -:        -:  522:/*EOF*/
      114:      118:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      443:      459:  525:/*EOF*/
      329:      341:  526:/*EOF*/
        -:        -:  527:/*EOF*/
      114:      118:  528:/*EOF*/
        -:        -:  529:/*EOF*/
      114:      118:  530:/*EOF*/
      228:      236:  531:/*EOF*/
      114:      118:  532:/*EOF*/
      114:      118:  533:/*EOF*/
        -:        -:  534:/*EOF*/
      114:      118:  535:/*EOF*/
      114:      118:  536:/*EOF*/
        -:        -:  537:/*EOF*/
      114:      118:  538:/*EOF*/
        -:        -:  539:/*EOF*/
      114:      118:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
      108:      110:  544:/*EOF*/
      108:      110:  545:/*EOF*/
        -:        -:  546:/*EOF*/
      108:      110:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      108:      110:  554:/*EOF*/
        3:        3:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      105:      107:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      105:      107:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
      105:      107:  563:/*EOF*/
        -:        -:  564:/*EOF*/
      105:      107:  565:/*EOF*/
      105:      107:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
      495:      505:  572:/*EOF*/
      396:      404:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       99:      101:  575:/*EOF*/
       99:      101:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        6:        6:  578:/*EOF*/
        6:        6:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
       30:       30:  585:/*EOF*/
       24:       24:  586:/*EOF*/
        8:        8:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       16:       16:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        6:        6:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      105:      107:  595:/*EOF*/
        -:        -:  596:/*EOF*/
      105:      107:  597:/*EOF*/
      105:      107:  598:/*EOF*/
      105:      107:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        3:        3:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
       27:       27:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
       27:       27:  641:/*EOF*/
       27:       27:  642:/*EOF*/
       27:       27:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       27:       27:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       27:       27:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
       27:       27:  651:/*EOF*/
        -:        -:  652:/*EOF*/
      355:      483:  653:/*EOF*/
      328:      456:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
       27:       27:  657:/*EOF*/
        -:        -:  658:/*EOF*/
       27:       27:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
       27:       27:  662:/*EOF*/
        -:        -:  663:/*EOF*/
      177:      179:  664:/*EOF*/
        -:        -:  665:/*EOF*/
      150:      152:  666:/*EOF*/
        -:        -:  667:/*EOF*/
      150:      152:  668:/*EOF*/
       88:       88:  669:/*EOF*/
       88:       88:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
       62:       64:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
       62:       64:  678:/*EOF*/
       62:       64:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       62:       64:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
       27:       27:  684:/*EOF*/
       24:       24:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        3:        3:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
       90:      106:  695:/*EOF*/
       87:      103:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        3:        3:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        3:        3:  701:/*EOF*/
       65:       67:  702:/*EOF*/
        -:        -:  703:/*EOF*/
       62:       64:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
       62:       64:  707:/*EOF*/
       62:       64:  708:/*EOF*/
        -:        -:  709:/*EOF*/
       62:       64:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       62:       64:  712:/*EOF*/
        -:        -:  713:/*EOF*/
      167:      171:  714:/*EOF*/
      105:      107:  715:/*EOF*/
        -:        -:  716:/*EOF*/
      105:      107:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       62:       64:  721:/*EOF*/
       62:       64:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        3:        3:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        3:        3:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        3:        3:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        3:        3:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        3:        3:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
       27:       27:  741:/*EOF*/
        -:        -:  742:/*EOF*/
       27:       27:  743:/*EOF*/
        -:        -:  744:/*EOF*/
       54:       54:  745:/*EOF*/
       27:       27:  746:/*EOF*/
       27:       27:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
       27:       27:  750:/*EOF*/

src/compiler/nir/.libs/nir_lower_wpos_ytransform.c.gcov

        -:        -:    0:Source:nir/nir_lower_wpos_ytransform.c
        -:        -:    0:Graph:nir_lower_wpos_ytransform.gcno
        -:        -:    0:Data:nir_lower_wpos_ytransform.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        2:        4:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        2:        4:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        1:        1:   59:/*EOF*/
        1:        1:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        1:        1:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        2:        4:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        2:        4:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        2:        4:   83:/*EOF*/
        2:        4:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        2:        4:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        2:        4:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        2:        4:   91:/*EOF*/
        2:        4:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        2:        4:   95:/*EOF*/
        2:        4:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        2:        4:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        2:        4:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        2:        4:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        2:        4:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        2:        4:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        2:        4:  143:/*EOF*/
        2:        4:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        2:        4:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        2:        4:  149:/*EOF*/
        2:        4:  150:/*EOF*/
        2:        4:  151:/*EOF*/
        2:        4:  152:/*EOF*/
        2:        4:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        2:        4:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        2:        4:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        2:        4:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        2:        4:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        2:        4:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        2:        4:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        2:        4:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        2:        4:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        2:        4:  232:/*EOF*/
        2:        4:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       33:       49:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      129:      161:  298:/*EOF*/
       96:      112:  299:/*EOF*/
       18:       20:  300:/*EOF*/
       18:       20:  301:/*EOF*/
       16:       18:  302:/*EOF*/
       16:       18:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       19:       23:  305:/*EOF*/
        3:        5:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        4:  308:/*EOF*/
        2:        4:  309:/*EOF*/
       14:       14:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        2:        2:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       78:       92:  318:/*EOF*/
       53:       55:  319:/*EOF*/
      106:      110:  320:/*EOF*/
      106:      110:  321:/*EOF*/
       53:       55:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       33:       49:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        2:        2:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        2:        2:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       35:       51:  333:/*EOF*/
       33:       49:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        2:        2:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        2:        2:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        2:        2:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        2:        2:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        4:        4:  351:/*EOF*/
        2:        2:  352:/*EOF*/
        2:        2:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        2:        2:  356:/*EOF*/

src/compiler/nir/.libs/nir_metadata.c.gcov

        -:        -:    0:Source:nir/nir_metadata.c
        -:        -:    0:Graph:nir_metadata.gcno
        -:        -:    0:Data:nir_metadata.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
      139:      139:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
      139:      139:   38:/*EOF*/
       14:       14:   39:/*EOF*/
      139:      139:   40:/*EOF*/
       12:       12:   41:/*EOF*/
      139:      139:   42:/*EOF*/
        6:        6:   43:/*EOF*/
      139:      139:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       21:       21:   46:/*EOF*/
       21:       21:   47:/*EOF*/
       21:       21:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      139:      139:   53:/*EOF*/
      139:      139:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      206:      218:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      206:      218:   59:/*EOF*/
      206:      218:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      581:      581:   70:/*EOF*/
        -:        -:   71:/*EOF*/
     1162:     1162:   72:/*EOF*/
      581:      581:   73:/*EOF*/
      581:      581:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      581:      581:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       63:       65:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      126:      130:   89:/*EOF*/
       63:       65:   90:/*EOF*/
       63:       65:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       63:       65:   95:/*EOF*/

src/compiler/nir/.libs/nir_normalize_cubemap_coords.c.gcov

        -:        -:    0:Source:nir/nir_normalize_cubemap_coords.c
        -:        -:    0:Graph:nir_normalize_cubemap_coords.gcno
        -:        -:    0:Data:nir_normalize_cubemap_coords.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       89:      105:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       89:      105:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      414:      448:   41:/*EOF*/
      325:      343:   42:/*EOF*/
      325:      343:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       89:      105:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        5:        5:   92:/*EOF*/
        5:        5:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       94:      110:   95:/*EOF*/
       89:      105:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        5:        5:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        5:        5:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       10:       10:  110:/*EOF*/
        5:        5:  111:/*EOF*/
        5:        5:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        5:        5:  115:/*EOF*/

src/compiler/nir/.libs/nir_opt_algebraic.c.gcov

        -:        -:    0:Source:nir/nir_opt_algebraic.c
        -:        -:    0:Graph:nir_opt_algebraic.gcno
        -:        -:    0:Data:nir_opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
        -:        -: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
        -:        -: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        -:        -: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
        -:        -: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
        -:        -: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
        -:        -: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
        -:        -: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        -:        -: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
        -:        -: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
        -:        -: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
        -:        -: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        -:        -: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        -:        -: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
        -:        -: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        -:        -: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
        -:        -: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
        -:        -: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
        -:        -: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        -:        -: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
        -:        -: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
        -:        -: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
        -:        -: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
        -:        -: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
        -:        -: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
        -:        -: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
        -:        -: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
        -:        -: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
        -:        -: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
        -:        -: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        -:        -: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
        -:        -: 5214:/*EOF*/
        -:        -: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        -:        -: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        -:        -: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        -:        -: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
        -:        -: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
        -:        -: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        -:        -: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        -:        -: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
        -:        -: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        -:        -: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
        -:        -: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
        -:        -: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        -:        -: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        -:        -: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
        -:        -: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        -:        -: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
        -:        -: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
        -:        -: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        -:        -: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        -:        -: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
        -:        -: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
        -:        -: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        -:        -: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
        -:        -: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        -:        -: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
        -:        -: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
        -:        -: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        -:        -: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
        -:        -: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        -:        -: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
        -:        -: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
        -:        -: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        -:        -: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
        -:        -: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
        -:        -: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
        -:        -: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        -:        -: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        -:        -: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        -:        -: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
        -:        -: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
        -:        -: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
        -:        -: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
        -:        -: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
        -:        -: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
        -:        -: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
        -:        -: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
        -:        -: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
        -:        -: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
        -:        -: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
        -:        -: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
        -:        -: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        -:        -: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
        -:        -: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        -:        -: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
        -:        -: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
        -:        -: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        -:        -: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
        -:        -: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
        -:        -: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
        -:        -: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
        -:        -: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
        -:        -: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
        -:        -: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
        -:        -: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
        -:        -: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
        -:        -: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
        -:        -: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
        -:        -: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
        -:        -: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
        -:        -: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
        -:        -: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
        -:        -: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
        -:        -: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
        -:        -: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
        -:        -: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
        -:        -: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        -:        -: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
        -:        -: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
        -:        -: 6068:/*EOF*/
        -:        -: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
        -:        -: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
        -:        -: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
        -:        -: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        -:        -: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        -:        -: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
        -:        -: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
        -:        -: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
        -:        -: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        -:        -: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
        -:        -: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
        -:        -: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
        -:        -: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
        -:        -: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
        -:        -: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
        -:        -: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
        -:        -: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
        -:        -: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
        -:        -: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
        -:        -: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        -:        -: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
        -:        -: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        -:        -: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
        -:        -: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
        -:        -: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        -:        -: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        -:        -: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
        -:        -: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
        -:        -: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
        -:        -: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
        -:        -: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
        -:        -: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        -:        -: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        -:        -: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        -:        -: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
        -:        -: 6339:/*EOF*/
        -:        -: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
        -:        -: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
        -:        -: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        -:        -: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
        -:        -: 6396:/*EOF*/
        -:        -: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
        -:        -: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
        -:        -: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        -:        -: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
        -:        -: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
        -:        -: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
        -:        -: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
        -:        -: 6469:/*EOF*/
        -:        -: 6470:/*EOF*/
        -:        -: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        -:        -: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
        -:        -: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
        -:        -: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
        -:        -: 6498:/*EOF*/
        -:        -: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        -:        -: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        -:        -: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        -:        -: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        -:        -: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        -:        -: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        -:        -: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        -:        -: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        -:        -: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
        -:        -: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
        -:        -: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
        -:        -: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        -:        -: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
        -:        -: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
        -:        -: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
        -:        -: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
        -:        -: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
        -:        -: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
        -:        -: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
        -:        -: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
        -:        -: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
        -:        -: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
        -:        -: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
        -:        -: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        -:        -: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
        -:        -: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
        -:        -: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
        -:        -: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
        -:        -: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
        -:        -: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
        -:        -: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        -:        -: 6864:/*EOF*/
        -:        -: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
        -:        -: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
        -:        -: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
        -:        -: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
        -:        -: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
        -:        -: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
        -:        -: 6890:/*EOF*/
        -:        -: 6891:/*EOF*/
        -:        -: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
        -:        -: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
        -:        -: 6905:/*EOF*/
        -:        -: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
        -:        -: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
        -:        -: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
        -:        -: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
        -:        -: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
        -:        -: 6923:/*EOF*/
        -:        -: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
        -:        -: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
        -:        -: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
        -:        -: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
        -:        -: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
        -:        -: 6971:/*EOF*/
        -:        -: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
        -:        -: 6975:/*EOF*/
        -:        -: 6976:/*EOF*/
        -:        -: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
        -:        -: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
        -:        -: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
        -:        -: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
        -:        -: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
        -:        -: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
        -:        -: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
        -:        -: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
        -:        -: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
        -:        -: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
        -:        -: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
        -:        -: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
        -:        -: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
        -:        -: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
        -:        -: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
        -:        -: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
        -:        -: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
        -:        -: 7049:/*EOF*/
        -:        -: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
        -:        -: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
        -:        -: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
        -:        -: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
        -:        -: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
        -:        -: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
        -:        -: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
        -:        -: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
        -:        -: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
        -:        -: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
        -:        -: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
        -:        -: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
        -:        -: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
        -:        -: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
        -:        -: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
        -:        -: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
        -:        -: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
        -:        -: 7132:/*EOF*/
        -:        -: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
        -:        -: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
        -:        -: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
        -:        -: 7147:/*EOF*/
        -:        -: 7148:/*EOF*/
        -:        -: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
        -:        -: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
        -:        -: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
        -:        -: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
        -:        -: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
        -:        -: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
        -:        -: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
        -:        -: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
        -:        -: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
        -:        -: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
        -:        -: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
        -:        -: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
        -:        -: 7240:/*EOF*/
        -:        -: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
        -:        -: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
        -:        -: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
        -:        -: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
        -:        -: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
        -:        -: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
        -:        -: 7274:/*EOF*/
        -:        -: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
        -:        -: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
        -:        -: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
        -:        -: 7303:/*EOF*/
        -:        -: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
        -:        -: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
        -:        -: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
        -:        -: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
        -:        -: 7316:/*EOF*/
        -:        -: 7317:/*EOF*/
        -:        -: 7318:/*EOF*/
        -:        -: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
        -:        -: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
        -:        -: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
        -:        -: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
        -:        -: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
        -:        -: 7335:/*EOF*/
        -:        -: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
        -:        -: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
        -:        -: 7341:/*EOF*/
        -:        -: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
        -:        -: 7348:/*EOF*/
        -:        -: 7349:/*EOF*/
        -:        -: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
        -:        -: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
        -:        -: 7365:/*EOF*/
        -:        -: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
        -:        -: 7368:/*EOF*/
        -:        -: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
        -:        -: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
        -:        -: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
        -:        -: 7380:/*EOF*/
        -:        -: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
        -:        -: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
        -:        -: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
        -:        -: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
        -:        -: 7393:/*EOF*/
        -:        -: 7394:/*EOF*/
        -:        -: 7395:/*EOF*/
        -:        -: 7396:/*EOF*/
        -:        -: 7397:/*EOF*/
        -:        -: 7398:/*EOF*/
        -:        -: 7399:/*EOF*/
        -:        -: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
        -:        -: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
        -:        -: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
        -:        -: 7411:/*EOF*/
        -:        -: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
        -:        -: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
        -:        -: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
        -:        -: 7426:/*EOF*/
        -:        -: 7427:/*EOF*/
        -:        -: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
        -:        -: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
        -:        -: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
        -:        -: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
        -:        -: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
        -:        -: 7458:/*EOF*/
        -:        -: 7459:/*EOF*/
        -:        -: 7460:/*EOF*/
        -:        -: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
        -:        -: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
        -:        -: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
        -:        -: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        -:        -: 7472:/*EOF*/
        -:        -: 7473:/*EOF*/
        -:        -: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
        -:        -: 7476:/*EOF*/
        -:        -: 7477:/*EOF*/
        -:        -: 7478:/*EOF*/
        -:        -: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
        -:        -: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
        -:        -: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
        -:        -: 7489:/*EOF*/
        -:        -: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
        -:        -: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
        -:        -: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
        -:        -: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
        -:        -: 7500:/*EOF*/
        -:        -: 7501:/*EOF*/
        -:        -: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
        -:        -: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
        -:        -: 7508:/*EOF*/
        -:        -: 7509:/*EOF*/
        -:        -: 7510:/*EOF*/
        -:        -: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
        -:        -: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
        -:        -: 7517:/*EOF*/
        -:        -: 7518:/*EOF*/
        -:        -: 7519:/*EOF*/
        -:        -: 7520:/*EOF*/
        -:        -: 7521:/*EOF*/
        -:        -: 7522:/*EOF*/
        -:        -: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
        -:        -: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
        -:        -: 7527:/*EOF*/
        -:        -: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
        -:        -: 7530:/*EOF*/
        -:        -: 7531:/*EOF*/
        -:        -: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
        -:        -: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
        -:        -: 7537:/*EOF*/
        -:        -: 7538:/*EOF*/
        -:        -: 7539:/*EOF*/
        -:        -: 7540:/*EOF*/
        -:        -: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
        -:        -: 7543:/*EOF*/
        -:        -: 7544:/*EOF*/
        -:        -: 7545:/*EOF*/
        -:        -: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
        -:        -: 7548:/*EOF*/
        -:        -: 7549:/*EOF*/
        -:        -: 7550:/*EOF*/
        -:        -: 7551:/*EOF*/
        -:        -: 7552:/*EOF*/
        -:        -: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
        -:        -: 7555:/*EOF*/
        -:        -: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
        -:        -: 7558:/*EOF*/
        -:        -: 7559:/*EOF*/
        -:        -: 7560:/*EOF*/
        -:        -: 7561:/*EOF*/
        -:        -: 7562:/*EOF*/
        -:        -: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
        -:        -: 7565:/*EOF*/
        -:        -: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
        -:        -: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
        -:        -: 7570:/*EOF*/
        -:        -: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
        -:        -: 7573:/*EOF*/
        -:        -: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
        -:        -: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
        -:        -: 7578:/*EOF*/
        -:        -: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
        -:        -: 7581:/*EOF*/
        -:        -: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
        -:        -: 7586:/*EOF*/
        -:        -: 7587:/*EOF*/
        -:        -: 7588:/*EOF*/
        -:        -: 7589:/*EOF*/
        -:        -: 7590:/*EOF*/
        -:        -: 7591:/*EOF*/
        -:        -: 7592:/*EOF*/
        -:        -: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
        -:        -: 7595:/*EOF*/
        -:        -: 7596:/*EOF*/
        -:        -: 7597:/*EOF*/
        -:        -: 7598:/*EOF*/
        -:        -: 7599:/*EOF*/
        -:        -: 7600:/*EOF*/
        -:        -: 7601:/*EOF*/
        -:        -: 7602:/*EOF*/
        -:        -: 7603:/*EOF*/
        -:        -: 7604:/*EOF*/
        -:        -: 7605:/*EOF*/
        -:        -: 7606:/*EOF*/
        -:        -: 7607:/*EOF*/
        -:        -: 7608:/*EOF*/
        -:        -: 7609:/*EOF*/
        -:        -: 7610:/*EOF*/
        -:        -: 7611:/*EOF*/
        -:        -: 7612:/*EOF*/
        -:        -: 7613:/*EOF*/
        -:        -: 7614:/*EOF*/
        -:        -: 7615:/*EOF*/
        -:        -: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
        -:        -: 7619:/*EOF*/
        -:        -: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
        -:        -: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
        -:        -: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
        -:        -: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
        -:        -: 7631:/*EOF*/
        -:        -: 7632:/*EOF*/
        -:        -: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
        -:        -: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
        -:        -: 7637:/*EOF*/
        -:        -: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
        -:        -: 7641:/*EOF*/
        -:        -: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
        -:        -: 7647:/*EOF*/
        -:        -: 7648:/*EOF*/
        -:        -: 7649:/*EOF*/
        -:        -: 7650:/*EOF*/
        -:        -: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
        -:        -: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
        -:        -: 7655:/*EOF*/
        -:        -: 7656:/*EOF*/
        -:        -: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
        -:        -: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
        -:        -: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
        -:        -: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
        -:        -: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
        -:        -: 7673:/*EOF*/
        -:        -: 7674:/*EOF*/
        -:        -: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
        -:        -: 7677:/*EOF*/
        -:        -: 7678:/*EOF*/
        -:        -: 7679:/*EOF*/
        -:        -: 7680:/*EOF*/
        -:        -: 7681:/*EOF*/
        -:        -: 7682:/*EOF*/
        -:        -: 7683:/*EOF*/
        -:        -: 7684:/*EOF*/
        -:        -: 7685:/*EOF*/
        -:        -: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
        -:        -: 7688:/*EOF*/
        -:        -: 7689:/*EOF*/
        -:        -: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
        -:        -: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
        -:        -: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
        -:        -: 7698:/*EOF*/
        -:        -: 7699:/*EOF*/
        -:        -: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
        -:        -: 7705:/*EOF*/
        -:        -: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
        -:        -: 7709:/*EOF*/
        -:        -: 7710:/*EOF*/
        -:        -: 7711:/*EOF*/
        -:        -: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
        -:        -: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
        -:        -: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
        -:        -: 7721:/*EOF*/
        -:        -: 7722:/*EOF*/
        -:        -: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
        -:        -: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
        -:        -: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
        -:        -: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
        -:        -: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
        -:        -: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
        -:        -: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
        -:        -: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
        -:        -: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
        -:        -: 7748:/*EOF*/
        -:        -: 7749:/*EOF*/
        -:        -: 7750:/*EOF*/
        -:        -: 7751:/*EOF*/
        -:        -: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
        -:        -: 7754:/*EOF*/
        -:        -: 7755:/*EOF*/
        -:        -: 7756:/*EOF*/
        -:        -: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
        -:        -: 7759:/*EOF*/
        -:        -: 7760:/*EOF*/
        -:        -: 7761:/*EOF*/
        -:        -: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
        -:        -: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
        -:        -: 7767:/*EOF*/
        -:        -: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
        -:        -: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
        -:        -: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
        -:        -: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
        -:        -: 7779:/*EOF*/
        -:        -: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
        -:        -: 7783:/*EOF*/
        -:        -: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
        -:        -: 7787:/*EOF*/
        -:        -: 7788:/*EOF*/
        -:        -: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
        -:        -: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
        -:        -: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
        -:        -: 7798:/*EOF*/
        -:        -: 7799:/*EOF*/
        -:        -: 7800:/*EOF*/
        -:        -: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
        -:        -: 7803:/*EOF*/
        -:        -: 7804:/*EOF*/
        -:        -: 7805:/*EOF*/
        -:        -: 7806:/*EOF*/
        -:        -: 7807:/*EOF*/
        -:        -: 7808:/*EOF*/
        -:        -: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
        -:        -: 7811:/*EOF*/
        -:        -: 7812:/*EOF*/
        -:        -: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
        -:        -: 7815:/*EOF*/
        -:        -: 7816:/*EOF*/
        -:        -: 7817:/*EOF*/
        -:        -: 7818:/*EOF*/
        -:        -: 7819:/*EOF*/
        -:        -: 7820:/*EOF*/
        -:        -: 7821:/*EOF*/
        -:        -: 7822:/*EOF*/
        -:        -: 7823:/*EOF*/
        -:        -: 7824:/*EOF*/
        -:        -: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
        -:        -: 7827:/*EOF*/
        -:        -: 7828:/*EOF*/
        -:        -: 7829:/*EOF*/
        -:        -: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
        -:        -: 7832:/*EOF*/
        -:        -: 7833:/*EOF*/
        -:        -: 7834:/*EOF*/
        -:        -: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
        -:        -: 7838:/*EOF*/
        -:        -: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
        -:        -: 7845:/*EOF*/
        -:        -: 7846:/*EOF*/
        -:        -: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
        -:        -: 7849:/*EOF*/
        -:        -: 7850:/*EOF*/
        -:        -: 7851:/*EOF*/
        -:        -: 7852:/*EOF*/
        -:        -: 7853:/*EOF*/
        -:        -: 7854:/*EOF*/
        -:        -: 7855:/*EOF*/
        -:        -: 7856:/*EOF*/
        -:        -: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
        -:        -: 7859:/*EOF*/
        -:        -: 7860:/*EOF*/
        -:        -: 7861:/*EOF*/
        -:        -: 7862:/*EOF*/
        -:        -: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
        -:        -: 7865:/*EOF*/
        -:        -: 7866:/*EOF*/
        -:        -: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
        -:        -: 7869:/*EOF*/
        -:        -: 7870:/*EOF*/
        -:        -: 7871:/*EOF*/
        -:        -: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
        -:        -: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
        -:        -: 7877:/*EOF*/
        -:        -: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
        -:        -: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
        -:        -: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
        -:        -: 7885:/*EOF*/
        -:        -: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
        -:        -: 7888:/*EOF*/
        -:        -: 7889:/*EOF*/
        -:        -: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
        -:        -: 7892:/*EOF*/
        -:        -: 7893:/*EOF*/
        -:        -: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
        -:        -: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
        -:        -: 7899:/*EOF*/
        -:        -: 7900:/*EOF*/
        -:        -: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
        -:        -: 7903:/*EOF*/
        -:        -: 7904:/*EOF*/
        -:        -: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
        -:        -: 7907:/*EOF*/
        -:        -: 7908:/*EOF*/
        -:        -: 7909:/*EOF*/
        -:        -: 7910:/*EOF*/
        -:        -: 7911:/*EOF*/
        -:        -: 7912:/*EOF*/
        -:        -: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
        -:        -: 7915:/*EOF*/
        -:        -: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
        -:        -: 7922:/*EOF*/
        -:        -: 7923:/*EOF*/
        -:        -: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
        -:        -: 7927:/*EOF*/
        -:        -: 7928:/*EOF*/
        -:        -: 7929:/*EOF*/
        -:        -: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
        -:        -: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
        -:        -: 7939:/*EOF*/
        -:        -: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
        -:        -: 7943:/*EOF*/
        -:        -: 7944:/*EOF*/
        -:        -: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
        -:        -: 7947:/*EOF*/
        -:        -: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
        -:        -: 7952:/*EOF*/
        -:        -: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
        -:        -: 7955:/*EOF*/
        -:        -: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
        -:        -: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
        -:        -: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
        -:        -: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
        -:        -: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
        -:        -: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
        -:        -: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
        -:        -: 7977:/*EOF*/
        -:        -: 7978:/*EOF*/
        -:        -: 7979:/*EOF*/
        -:        -: 7980:/*EOF*/
        -:        -: 7981:/*EOF*/
        -:        -: 7982:/*EOF*/
        -:        -: 7983:/*EOF*/
        -:        -: 7984:/*EOF*/
        -:        -: 7985:/*EOF*/
        -:        -: 7986:/*EOF*/
        -:        -: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
        -:        -: 7989:/*EOF*/
        -:        -: 7990:/*EOF*/
        -:        -: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
        -:        -: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
        -:        -: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
        -:        -: 8001:/*EOF*/
        -:        -: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
        -:        -: 8004:/*EOF*/
        -:        -: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
        -:        -: 8007:/*EOF*/
        -:        -: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
        -:        -: 8010:/*EOF*/
        -:        -: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
        -:        -: 8017:/*EOF*/
        -:        -: 8018:/*EOF*/
        -:        -: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
        -:        -: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
        -:        -: 8023:/*EOF*/
        -:        -: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
        -:        -: 8026:/*EOF*/
        -:        -: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
        -:        -: 8032:/*EOF*/
        -:        -: 8033:/*EOF*/
        -:        -: 8034:/*EOF*/
        -:        -: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
        -:        -: 8037:/*EOF*/
        -:        -: 8038:/*EOF*/
        -:        -: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
        -:        -: 8041:/*EOF*/
        -:        -: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
        -:        -: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
        -:        -: 8048:/*EOF*/
        -:        -: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
        -:        -: 8052:/*EOF*/
        -:        -: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
        -:        -: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
        -:        -: 8057:/*EOF*/
        -:        -: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
        -:        -: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
        -:        -: 8063:/*EOF*/
        -:        -: 8064:/*EOF*/
        -:        -: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
        -:        -: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
        -:        -: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
        -:        -: 8071:/*EOF*/
        -:        -: 8072:/*EOF*/
        -:        -: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
        -:        -: 8076:/*EOF*/
        -:        -: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
        -:        -: 8079:/*EOF*/
        -:        -: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
        -:        -: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
        -:        -: 8085:/*EOF*/
        -:        -: 8086:/*EOF*/
        -:        -: 8087:/*EOF*/
        -:        -: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
        -:        -: 8094:/*EOF*/
        -:        -: 8095:/*EOF*/
        -:        -: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
        -:        -: 8099:/*EOF*/
        -:        -: 8100:/*EOF*/
        -:        -: 8101:/*EOF*/
        -:        -: 8102:/*EOF*/
        -:        -: 8103:/*EOF*/
        -:        -: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
        -:        -: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
        -:        -: 8111:/*EOF*/
        -:        -: 8112:/*EOF*/
        -:        -: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
        -:        -: 8115:/*EOF*/
        -:        -: 8116:/*EOF*/
        -:        -: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
        -:        -: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
        -:        -: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
        -:        -: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
        -:        -: 8129:/*EOF*/
        -:        -: 8130:/*EOF*/
        -:        -: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
        -:        -: 8133:/*EOF*/
        -:        -: 8134:/*EOF*/
        -:        -: 8135:/*EOF*/
        -:        -: 8136:/*EOF*/
        -:        -: 8137:/*EOF*/
        -:        -: 8138:/*EOF*/
        -:        -: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
        -:        -: 8141:/*EOF*/
        -:        -: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
        -:        -: 8144:/*EOF*/
        -:        -: 8145:/*EOF*/
        -:        -: 8146:/*EOF*/
        -:        -: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
        -:        -: 8150:/*EOF*/
        -:        -: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
        -:        -: 8153:/*EOF*/
        -:        -: 8154:/*EOF*/
        -:        -: 8155:/*EOF*/
        -:        -: 8156:/*EOF*/
        -:        -: 8157:/*EOF*/
        -:        -: 8158:/*EOF*/
        -:        -: 8159:/*EOF*/
        -:        -: 8160:/*EOF*/
        -:        -: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
        -:        -: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
        -:        -: 8166:/*EOF*/
        -:        -: 8167:/*EOF*/
        -:        -: 8168:/*EOF*/
        -:        -: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
        -:        -: 8172:/*EOF*/
        -:        -: 8173:/*EOF*/
        -:        -: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
        -:        -: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
        -:        -: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
        -:        -: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
        -:        -: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
        -:        -: 8188:/*EOF*/
        -:        -: 8189:/*EOF*/
        -:        -: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
        -:        -: 8192:/*EOF*/
        -:        -: 8193:/*EOF*/
        -:        -: 8194:/*EOF*/
        -:        -: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
        -:        -: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
        -:        -: 8201:/*EOF*/
        -:        -: 8202:/*EOF*/
        -:        -: 8203:/*EOF*/
        -:        -: 8204:/*EOF*/
        -:        -: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
        -:        -: 8207:/*EOF*/
        -:        -: 8208:/*EOF*/
        -:        -: 8209:/*EOF*/
        -:        -: 8210:/*EOF*/
        -:        -: 8211:/*EOF*/
        -:        -: 8212:/*EOF*/
        -:        -: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
        -:        -: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
        -:        -: 8219:/*EOF*/
        -:        -: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
        -:        -: 8223:/*EOF*/
        -:        -: 8224:/*EOF*/
        -:        -: 8225:/*EOF*/
        -:        -: 8226:/*EOF*/
        -:        -: 8227:/*EOF*/
        -:        -: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        -:        -: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
        -:        -: 8234:/*EOF*/
        -:        -: 8235:/*EOF*/
        -:        -: 8236:/*EOF*/
        -:        -: 8237:/*EOF*/
        -:        -: 8238:/*EOF*/
        -:        -: 8239:/*EOF*/
        -:        -: 8240:/*EOF*/
        -:        -: 8241:/*EOF*/
        -:        -: 8242:/*EOF*/
        -:        -: 8243:/*EOF*/
        -:        -: 8244:/*EOF*/
        -:        -: 8245:/*EOF*/
        -:        -: 8246:/*EOF*/
        -:        -: 8247:/*EOF*/
        -:        -: 8248:/*EOF*/
        -:        -: 8249:/*EOF*/
        -:        -: 8250:/*EOF*/
        -:        -: 8251:/*EOF*/
        -:        -: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
        -:        -: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
        -:        -: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
        -:        -: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
        -:        -: 8267:/*EOF*/
        -:        -: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
        -:        -: 8271:/*EOF*/
        -:        -: 8272:/*EOF*/
        -:        -: 8273:/*EOF*/
        -:        -: 8274:/*EOF*/
        -:        -: 8275:/*EOF*/
        -:        -: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
        -:        -: 8278:/*EOF*/
        -:        -: 8279:/*EOF*/
        -:        -: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
        -:        -: 8282:/*EOF*/
        -:        -: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
        -:        -: 8286:/*EOF*/
        -:        -: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
        -:        -: 8289:/*EOF*/
        -:        -: 8290:/*EOF*/
        -:        -: 8291:/*EOF*/
        -:        -: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
        -:        -: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
        -:        -: 8297:/*EOF*/
        -:        -: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
        -:        -: 8300:/*EOF*/
        -:        -: 8301:/*EOF*/
        -:        -: 8302:/*EOF*/
        -:        -: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
        -:        -: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        -:        -: 8312:/*EOF*/
        -:        -: 8313:/*EOF*/
        -:        -: 8314:/*EOF*/
        -:        -: 8315:/*EOF*/
        -:        -: 8316:/*EOF*/
        -:        -: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
        -:        -: 8319:/*EOF*/
        -:        -: 8320:/*EOF*/
        -:        -: 8321:/*EOF*/
        -:        -: 8322:/*EOF*/
        -:        -: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
        -:        -: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
        -:        -: 8329:/*EOF*/
        -:        -: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        -:        -: 8332:/*EOF*/
        -:        -: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
        -:        -: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
        -:        -: 8338:/*EOF*/
        -:        -: 8339:/*EOF*/
        -:        -: 8340:/*EOF*/
        -:        -: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
        -:        -: 8345:/*EOF*/
        -:        -: 8346:/*EOF*/
        -:        -: 8347:/*EOF*/
        -:        -: 8348:/*EOF*/
        -:        -: 8349:/*EOF*/
        -:        -: 8350:/*EOF*/
        -:        -: 8351:/*EOF*/
        -:        -: 8352:/*EOF*/
        -:        -: 8353:/*EOF*/
        -:        -: 8354:/*EOF*/
        -:        -: 8355:/*EOF*/
        -:        -: 8356:/*EOF*/
        -:        -: 8357:/*EOF*/
        -:        -: 8358:/*EOF*/
        -:        -: 8359:/*EOF*/
        -:        -: 8360:/*EOF*/
        -:        -: 8361:/*EOF*/
        -:        -: 8362:/*EOF*/
        -:        -: 8363:/*EOF*/
        -:        -: 8364:/*EOF*/
        -:        -: 8365:/*EOF*/
        -:        -: 8366:/*EOF*/
        -:        -: 8367:/*EOF*/
        -:        -: 8368:/*EOF*/
        -:        -: 8369:/*EOF*/
        -:        -: 8370:/*EOF*/
        -:        -: 8371:/*EOF*/
        -:        -: 8372:/*EOF*/
        -:        -: 8373:/*EOF*/
        -:        -: 8374:/*EOF*/
        -:        -: 8375:/*EOF*/
        -:        -: 8376:/*EOF*/
        -:        -: 8377:/*EOF*/
        -:        -: 8378:/*EOF*/
        -:        -: 8379:/*EOF*/
        -:        -: 8380:/*EOF*/
        -:        -: 8381:/*EOF*/
        -:        -: 8382:/*EOF*/
        -:        -: 8383:/*EOF*/
        -:        -: 8384:/*EOF*/
        -:        -: 8385:/*EOF*/
        -:        -: 8386:/*EOF*/
        -:        -: 8387:/*EOF*/
        -:        -: 8388:/*EOF*/
        -:        -: 8389:/*EOF*/
        -:        -: 8390:/*EOF*/
        -:        -: 8391:/*EOF*/
        -:        -: 8392:/*EOF*/
        -:        -: 8393:/*EOF*/
        -:        -: 8394:/*EOF*/
        -:        -: 8395:/*EOF*/
        -:        -: 8396:/*EOF*/
        -:        -: 8397:/*EOF*/
        -:        -: 8398:/*EOF*/
        -:        -: 8399:/*EOF*/
        -:        -: 8400:/*EOF*/
        -:        -: 8401:/*EOF*/
        -:        -: 8402:/*EOF*/
        -:        -: 8403:/*EOF*/
        -:        -: 8404:/*EOF*/
        -:        -: 8405:/*EOF*/
        -:        -: 8406:/*EOF*/
        -:        -: 8407:/*EOF*/
        -:        -: 8408:/*EOF*/
        -:        -: 8409:/*EOF*/
        -:        -: 8410:/*EOF*/
        -:        -: 8411:/*EOF*/
        -:        -: 8412:/*EOF*/
        -:        -: 8413:/*EOF*/
        -:        -: 8414:/*EOF*/
        -:        -: 8415:/*EOF*/
        -:        -: 8416:/*EOF*/
        -:        -: 8417:/*EOF*/
        -:        -: 8418:/*EOF*/
        -:        -: 8419:/*EOF*/
        -:        -: 8420:/*EOF*/
        -:        -: 8421:/*EOF*/
        -:        -: 8422:/*EOF*/
        -:        -: 8423:/*EOF*/
        -:        -: 8424:/*EOF*/
        -:        -: 8425:/*EOF*/
        -:        -: 8426:/*EOF*/
        -:        -: 8427:/*EOF*/
        -:        -: 8428:/*EOF*/
        -:        -: 8429:/*EOF*/
        -:        -: 8430:/*EOF*/
        -:        -: 8431:/*EOF*/
        -:        -: 8432:/*EOF*/
        -:        -: 8433:/*EOF*/
        -:        -: 8434:/*EOF*/
        -:        -: 8435:/*EOF*/
        -:        -: 8436:/*EOF*/
        -:        -: 8437:/*EOF*/
        -:        -: 8438:/*EOF*/
        -:        -: 8439:/*EOF*/
        -:        -: 8440:/*EOF*/
        -:        -: 8441:/*EOF*/
        -:        -: 8442:/*EOF*/
        -:        -: 8443:/*EOF*/
        -:        -: 8444:/*EOF*/
        -:        -: 8445:/*EOF*/
        -:        -: 8446:/*EOF*/
        -:        -: 8447:/*EOF*/
        -:        -: 8448:/*EOF*/
        -:        -: 8449:/*EOF*/
        -:        -: 8450:/*EOF*/
        -:        -: 8451:/*EOF*/
        -:        -: 8452:/*EOF*/
        -:        -: 8453:/*EOF*/
        -:        -: 8454:/*EOF*/
        -:        -: 8455:/*EOF*/
        -:        -: 8456:/*EOF*/
        -:        -: 8457:/*EOF*/
        -:        -: 8458:/*EOF*/
        -:        -: 8459:/*EOF*/
        -:        -: 8460:/*EOF*/
        -:        -: 8461:/*EOF*/
        -:        -: 8462:/*EOF*/
        -:        -: 8463:/*EOF*/
        -:        -: 8464:/*EOF*/
        -:        -: 8465:/*EOF*/
        -:        -: 8466:/*EOF*/
        -:        -: 8467:/*EOF*/
        -:        -: 8468:/*EOF*/
        -:        -: 8469:/*EOF*/
        -:        -: 8470:/*EOF*/
        -:        -: 8471:/*EOF*/
        -:        -: 8472:/*EOF*/
        -:        -: 8473:/*EOF*/
        -:        -: 8474:/*EOF*/
        -:        -: 8475:/*EOF*/
        -:        -: 8476:/*EOF*/
        -:        -: 8477:/*EOF*/
        -:        -: 8478:/*EOF*/
        -:        -: 8479:/*EOF*/
        -:        -: 8480:/*EOF*/
        -:        -: 8481:/*EOF*/
        -:        -: 8482:/*EOF*/
        -:        -: 8483:/*EOF*/
        -:        -: 8484:/*EOF*/
        -:        -: 8485:/*EOF*/
        -:        -: 8486:/*EOF*/
        -:        -: 8487:/*EOF*/
        -:        -: 8488:/*EOF*/
        -:        -: 8489:/*EOF*/
        -:        -: 8490:/*EOF*/
        -:        -: 8491:/*EOF*/
        -:        -: 8492:/*EOF*/
        -:        -: 8493:/*EOF*/
        -:        -: 8494:/*EOF*/
        -:        -: 8495:/*EOF*/
        -:        -: 8496:/*EOF*/
        -:        -: 8497:/*EOF*/
        -:        -: 8498:/*EOF*/
        -:        -: 8499:/*EOF*/
        -:        -: 8500:/*EOF*/
        -:        -: 8501:/*EOF*/
        -:        -: 8502:/*EOF*/
        -:        -: 8503:/*EOF*/
        -:        -: 8504:/*EOF*/
        -:        -: 8505:/*EOF*/
        -:        -: 8506:/*EOF*/
        -:        -: 8507:/*EOF*/
        -:        -: 8508:/*EOF*/
        -:        -: 8509:/*EOF*/
        -:        -: 8510:/*EOF*/
        -:        -: 8511:/*EOF*/
        -:        -: 8512:/*EOF*/
        -:        -: 8513:/*EOF*/
        -:        -: 8514:/*EOF*/
        -:        -: 8515:/*EOF*/
        -:        -: 8516:/*EOF*/
        -:        -: 8517:/*EOF*/
        -:        -: 8518:/*EOF*/
        -:        -: 8519:/*EOF*/
        -:        -: 8520:/*EOF*/
        -:        -: 8521:/*EOF*/
        -:        -: 8522:/*EOF*/
        -:        -: 8523:/*EOF*/
        -:        -: 8524:/*EOF*/
        -:        -: 8525:/*EOF*/
        -:        -: 8526:/*EOF*/
        -:        -: 8527:/*EOF*/
        -:        -: 8528:/*EOF*/
        -:        -: 8529:/*EOF*/
        -:        -: 8530:/*EOF*/
        -:        -: 8531:/*EOF*/
        -:        -: 8532:/*EOF*/
        -:        -: 8533:/*EOF*/
        -:        -: 8534:/*EOF*/
        -:        -: 8535:/*EOF*/
        -:        -: 8536:/*EOF*/
        -:        -: 8537:/*EOF*/
        -:        -: 8538:/*EOF*/
        -:        -: 8539:/*EOF*/
        -:        -: 8540:/*EOF*/
        -:        -: 8541:/*EOF*/
        -:        -: 8542:/*EOF*/
        -:        -: 8543:/*EOF*/
        -:        -: 8544:/*EOF*/
        -:        -: 8545:/*EOF*/
        -:        -: 8546:/*EOF*/
        -:        -: 8547:/*EOF*/
        -:        -: 8548:/*EOF*/
        -:        -: 8549:/*EOF*/
        -:        -: 8550:/*EOF*/
        -:        -: 8551:/*EOF*/
        -:        -: 8552:/*EOF*/
        -:        -: 8553:/*EOF*/
        -:        -: 8554:/*EOF*/
        -:        -: 8555:/*EOF*/
        -:        -: 8556:/*EOF*/
        -:        -: 8557:/*EOF*/
        -:        -: 8558:/*EOF*/
        -:        -: 8559:/*EOF*/
        -:        -: 8560:/*EOF*/
        -:        -: 8561:/*EOF*/
        -:        -: 8562:/*EOF*/
        -:        -: 8563:/*EOF*/
        -:        -: 8564:/*EOF*/
        -:        -: 8565:/*EOF*/
        -:        -: 8566:/*EOF*/
        -:        -: 8567:/*EOF*/
        -:        -: 8568:/*EOF*/
        -:        -: 8569:/*EOF*/
        -:        -: 8570:/*EOF*/
        -:        -: 8571:/*EOF*/
        -:        -: 8572:/*EOF*/
        -:        -: 8573:/*EOF*/
        -:        -: 8574:/*EOF*/
        -:        -: 8575:/*EOF*/
        -:        -: 8576:/*EOF*/
        -:        -: 8577:/*EOF*/
        -:        -: 8578:/*EOF*/
        -:        -: 8579:/*EOF*/
        -:        -: 8580:/*EOF*/
        -:        -: 8581:/*EOF*/
        -:        -: 8582:/*EOF*/
        -:        -: 8583:/*EOF*/
        -:        -: 8584:/*EOF*/
        -:        -: 8585:/*EOF*/
        -:        -: 8586:/*EOF*/
        -:        -: 8587:/*EOF*/
        -:        -: 8588:/*EOF*/
        -:        -: 8589:/*EOF*/
        -:        -: 8590:/*EOF*/
        -:        -: 8591:/*EOF*/
        -:        -: 8592:/*EOF*/
        -:        -: 8593:/*EOF*/
        -:        -: 8594:/*EOF*/
        -:        -: 8595:/*EOF*/
        -:        -: 8596:/*EOF*/
        -:        -: 8597:/*EOF*/
        -:        -: 8598:/*EOF*/
        -:        -: 8599:/*EOF*/
        -:        -: 8600:/*EOF*/
        -:        -: 8601:/*EOF*/
        -:        -: 8602:/*EOF*/
        -:        -: 8603:/*EOF*/
        -:        -: 8604:/*EOF*/
        -:        -: 8605:/*EOF*/
        -:        -: 8606:/*EOF*/
        -:        -: 8607:/*EOF*/
        -:        -: 8608:/*EOF*/
        -:        -: 8609:/*EOF*/
        -:        -: 8610:/*EOF*/
        -:        -: 8611:/*EOF*/
        -:        -: 8612:/*EOF*/
        -:        -: 8613:/*EOF*/
        -:        -: 8614:/*EOF*/
        -:        -: 8615:/*EOF*/
        -:        -: 8616:/*EOF*/
        -:        -: 8617:/*EOF*/
        -:        -: 8618:/*EOF*/
        -:        -: 8619:/*EOF*/
        -:        -: 8620:/*EOF*/
        -:        -: 8621:/*EOF*/
        -:        -: 8622:/*EOF*/
        -:        -: 8623:/*EOF*/
        -:        -: 8624:/*EOF*/
        -:        -: 8625:/*EOF*/
        -:        -: 8626:/*EOF*/
        -:        -: 8627:/*EOF*/
        -:        -: 8628:/*EOF*/
        -:        -: 8629:/*EOF*/
        -:        -: 8630:/*EOF*/
        -:        -: 8631:/*EOF*/
        -:        -: 8632:/*EOF*/
        -:        -: 8633:/*EOF*/
        -:        -: 8634:/*EOF*/
        -:        -: 8635:/*EOF*/
        -:        -: 8636:/*EOF*/
        -:        -: 8637:/*EOF*/
        -:        -: 8638:/*EOF*/
        -:        -: 8639:/*EOF*/
        -:        -: 8640:/*EOF*/
        -:        -: 8641:/*EOF*/
        -:        -: 8642:/*EOF*/
        -:        -: 8643:/*EOF*/
        -:        -: 8644:/*EOF*/
        -:        -: 8645:/*EOF*/
        -:        -: 8646:/*EOF*/
        -:        -: 8647:/*EOF*/
        -:        -: 8648:/*EOF*/
        -:        -: 8649:/*EOF*/
        -:        -: 8650:/*EOF*/
        -:        -: 8651:/*EOF*/
        -:        -: 8652:/*EOF*/
        -:        -: 8653:/*EOF*/
        -:        -: 8654:/*EOF*/
        -:        -: 8655:/*EOF*/
        -:        -: 8656:/*EOF*/
        -:        -: 8657:/*EOF*/
        -:        -: 8658:/*EOF*/
        -:        -: 8659:/*EOF*/
        -:        -: 8660:/*EOF*/
        -:        -: 8661:/*EOF*/
        -:        -: 8662:/*EOF*/
        -:        -: 8663:/*EOF*/
        -:        -: 8664:/*EOF*/
        -:        -: 8665:/*EOF*/
        -:        -: 8666:/*EOF*/
        -:        -: 8667:/*EOF*/
        -:        -: 8668:/*EOF*/
        -:        -: 8669:/*EOF*/
        -:        -: 8670:/*EOF*/
        -:        -: 8671:/*EOF*/
        -:        -: 8672:/*EOF*/
        -:        -: 8673:/*EOF*/
        -:        -: 8674:/*EOF*/
        -:        -: 8675:/*EOF*/
        -:        -: 8676:/*EOF*/
        -:        -: 8677:/*EOF*/
        -:        -: 8678:/*EOF*/
        -:        -: 8679:/*EOF*/
        -:        -: 8680:/*EOF*/
        -:        -: 8681:/*EOF*/
        -:        -: 8682:/*EOF*/
        -:        -: 8683:/*EOF*/
        -:        -: 8684:/*EOF*/
        -:        -: 8685:/*EOF*/
        -:        -: 8686:/*EOF*/
        -:        -: 8687:/*EOF*/
        -:        -: 8688:/*EOF*/
        -:        -: 8689:/*EOF*/
        -:        -: 8690:/*EOF*/
        -:        -: 8691:/*EOF*/
        -:        -: 8692:/*EOF*/
        -:        -: 8693:/*EOF*/
        -:        -: 8694:/*EOF*/
        -:        -: 8695:/*EOF*/
        -:        -: 8696:/*EOF*/
        -:        -: 8697:/*EOF*/
        -:        -: 8698:/*EOF*/
        -:        -: 8699:/*EOF*/
        -:        -: 8700:/*EOF*/
        -:        -: 8701:/*EOF*/
        -:        -: 8702:/*EOF*/
        -:        -: 8703:/*EOF*/
        -:        -: 8704:/*EOF*/
        -:        -: 8705:/*EOF*/
        -:        -: 8706:/*EOF*/
        -:        -: 8707:/*EOF*/
        -:        -: 8708:/*EOF*/
        -:        -: 8709:/*EOF*/
        -:        -: 8710:/*EOF*/
        -:        -: 8711:/*EOF*/
        -:        -: 8712:/*EOF*/
        -:        -: 8713:/*EOF*/
        -:        -: 8714:/*EOF*/
        -:        -: 8715:/*EOF*/
        -:        -: 8716:/*EOF*/
        -:        -: 8717:/*EOF*/
        -:        -: 8718:/*EOF*/
        -:        -: 8719:/*EOF*/
        -:        -: 8720:/*EOF*/
        -:        -: 8721:/*EOF*/
        -:        -: 8722:/*EOF*/
        -:        -: 8723:/*EOF*/
        -:        -: 8724:/*EOF*/
        -:        -: 8725:/*EOF*/
        -:        -: 8726:/*EOF*/
        -:        -: 8727:/*EOF*/
        -:        -: 8728:/*EOF*/
        -:        -: 8729:/*EOF*/
        -:        -: 8730:/*EOF*/
        -:        -: 8731:/*EOF*/
        -:        -: 8732:/*EOF*/
        -:        -: 8733:/*EOF*/
        -:        -: 8734:/*EOF*/
        -:        -: 8735:/*EOF*/
        -:        -: 8736:/*EOF*/
        -:        -: 8737:/*EOF*/
        -:        -: 8738:/*EOF*/
        -:        -: 8739:/*EOF*/
        -:        -: 8740:/*EOF*/
        -:        -: 8741:/*EOF*/
        -:        -: 8742:/*EOF*/
        -:        -: 8743:/*EOF*/
        -:        -: 8744:/*EOF*/
        -:        -: 8745:/*EOF*/
        -:        -: 8746:/*EOF*/
        -:        -: 8747:/*EOF*/
        -:        -: 8748:/*EOF*/
        -:        -: 8749:/*EOF*/
        -:        -: 8750:/*EOF*/
        -:        -: 8751:/*EOF*/
        -:        -: 8752:/*EOF*/
        -:        -: 8753:/*EOF*/
        -:        -: 8754:/*EOF*/
        -:        -: 8755:/*EOF*/
        -:        -: 8756:/*EOF*/
        -:        -: 8757:/*EOF*/
        -:        -: 8758:/*EOF*/
        -:        -: 8759:/*EOF*/
        -:        -: 8760:/*EOF*/
        -:        -: 8761:/*EOF*/
        -:        -: 8762:/*EOF*/
        -:        -: 8763:/*EOF*/
        -:        -: 8764:/*EOF*/
        -:        -: 8765:/*EOF*/
        -:        -: 8766:/*EOF*/
        -:        -: 8767:/*EOF*/
        -:        -: 8768:/*EOF*/
        -:        -: 8769:/*EOF*/
        -:        -: 8770:/*EOF*/
        -:        -: 8771:/*EOF*/
        -:        -: 8772:/*EOF*/
        -:        -: 8773:/*EOF*/
        -:        -: 8774:/*EOF*/
        -:        -: 8775:/*EOF*/
        -:        -: 8776:/*EOF*/
        -:        -: 8777:/*EOF*/
        -:        -: 8778:/*EOF*/
        -:        -: 8779:/*EOF*/
        -:        -: 8780:/*EOF*/
        -:        -: 8781:/*EOF*/
        -:        -: 8782:/*EOF*/
        -:        -: 8783:/*EOF*/
        -:        -: 8784:/*EOF*/
        -:        -: 8785:/*EOF*/
        -:        -: 8786:/*EOF*/
        -:        -: 8787:/*EOF*/
        -:        -: 8788:/*EOF*/
        -:        -: 8789:/*EOF*/
        -:        -: 8790:/*EOF*/
        -:        -: 8791:/*EOF*/
        -:        -: 8792:/*EOF*/
        -:        -: 8793:/*EOF*/
        -:        -: 8794:/*EOF*/
        -:        -: 8795:/*EOF*/
        -:        -: 8796:/*EOF*/
        -:        -: 8797:/*EOF*/
        -:        -: 8798:/*EOF*/
        -:        -: 8799:/*EOF*/
        -:        -: 8800:/*EOF*/
        -:        -: 8801:/*EOF*/
        -:        -: 8802:/*EOF*/
        -:        -: 8803:/*EOF*/
        -:        -: 8804:/*EOF*/
        -:        -: 8805:/*EOF*/
        -:        -: 8806:/*EOF*/
        -:        -: 8807:/*EOF*/
        -:        -: 8808:/*EOF*/
        -:        -: 8809:/*EOF*/
        -:        -: 8810:/*EOF*/
        -:        -: 8811:/*EOF*/
        -:        -: 8812:/*EOF*/
        -:        -: 8813:/*EOF*/
        -:        -: 8814:/*EOF*/
        -:        -: 8815:/*EOF*/
        -:        -: 8816:/*EOF*/
        -:        -: 8817:/*EOF*/
        -:        -: 8818:/*EOF*/
        -:        -: 8819:/*EOF*/
        -:        -: 8820:/*EOF*/
        -:        -: 8821:/*EOF*/
        -:        -: 8822:/*EOF*/
        -:        -: 8823:/*EOF*/
        -:        -: 8824:/*EOF*/
        -:        -: 8825:/*EOF*/
        -:        -: 8826:/*EOF*/
        -:        -: 8827:/*EOF*/
        -:        -: 8828:/*EOF*/
        -:        -: 8829:/*EOF*/
        -:        -: 8830:/*EOF*/
        -:        -: 8831:/*EOF*/
        -:        -: 8832:/*EOF*/
        -:        -: 8833:/*EOF*/
        -:        -: 8834:/*EOF*/
        -:        -: 8835:/*EOF*/
        -:        -: 8836:/*EOF*/
        -:        -: 8837:/*EOF*/
        -:        -: 8838:/*EOF*/
        -:        -: 8839:/*EOF*/
        -:        -: 8840:/*EOF*/
        -:        -: 8841:/*EOF*/
        -:        -: 8842:/*EOF*/
        -:        -: 8843:/*EOF*/
        -:        -: 8844:/*EOF*/
        -:        -: 8845:/*EOF*/
        -:        -: 8846:/*EOF*/
        -:        -: 8847:/*EOF*/
        -:        -: 8848:/*EOF*/
        -:        -: 8849:/*EOF*/
        -:        -: 8850:/*EOF*/
        -:        -: 8851:/*EOF*/
        -:        -: 8852:/*EOF*/
        -:        -: 8853:/*EOF*/
        -:        -: 8854:/*EOF*/
        -:        -: 8855:/*EOF*/
        -:        -: 8856:/*EOF*/
        -:        -: 8857:/*EOF*/
        -:        -: 8858:/*EOF*/
        -:        -: 8859:/*EOF*/
        -:        -: 8860:/*EOF*/
        -:        -: 8861:/*EOF*/
        -:        -: 8862:/*EOF*/
        -:        -: 8863:/*EOF*/
        -:        -: 8864:/*EOF*/
        -:        -: 8865:/*EOF*/
        -:        -: 8866:/*EOF*/
        -:        -: 8867:/*EOF*/
        -:        -: 8868:/*EOF*/
        -:        -: 8869:/*EOF*/
        -:        -: 8870:/*EOF*/
        -:        -: 8871:/*EOF*/
        -:        -: 8872:/*EOF*/
        -:        -: 8873:/*EOF*/
        -:        -: 8874:/*EOF*/
        -:        -: 8875:/*EOF*/
        -:        -: 8876:/*EOF*/
        -:        -: 8877:/*EOF*/
        -:        -: 8878:/*EOF*/
        -:        -: 8879:/*EOF*/
        -:        -: 8880:/*EOF*/
        -:        -: 8881:/*EOF*/
        -:        -: 8882:/*EOF*/
        -:        -: 8883:/*EOF*/
        -:        -: 8884:/*EOF*/
        -:        -: 8885:/*EOF*/
        -:        -: 8886:/*EOF*/
        -:        -: 8887:/*EOF*/
        -:        -: 8888:/*EOF*/
        -:        -: 8889:/*EOF*/
        -:        -: 8890:/*EOF*/
        -:        -: 8891:/*EOF*/
        -:        -: 8892:/*EOF*/
        -:        -: 8893:/*EOF*/
        -:        -: 8894:/*EOF*/
        -:        -: 8895:/*EOF*/
        -:        -: 8896:/*EOF*/
        -:        -: 8897:/*EOF*/
        -:        -: 8898:/*EOF*/
        -:        -: 8899:/*EOF*/
        -:        -: 8900:/*EOF*/
        -:        -: 8901:/*EOF*/
        -:        -: 8902:/*EOF*/
        -:        -: 8903:/*EOF*/
        -:        -: 8904:/*EOF*/
        -:        -: 8905:/*EOF*/
        -:        -: 8906:/*EOF*/
        -:        -: 8907:/*EOF*/
        -:        -: 8908:/*EOF*/
        -:        -: 8909:/*EOF*/
        -:        -: 8910:/*EOF*/
        -:        -: 8911:/*EOF*/
        -:        -: 8912:/*EOF*/
        -:        -: 8913:/*EOF*/
        -:        -: 8914:/*EOF*/
        -:        -: 8915:/*EOF*/
        -:        -: 8916:/*EOF*/
        -:        -: 8917:/*EOF*/
        -:        -: 8918:/*EOF*/
        -:        -: 8919:/*EOF*/
        -:        -: 8920:/*EOF*/
        -:        -: 8921:/*EOF*/
        -:        -: 8922:/*EOF*/
        -:        -: 8923:/*EOF*/
        -:        -: 8924:/*EOF*/
        -:        -: 8925:/*EOF*/
        -:        -: 8926:/*EOF*/
        -:        -: 8927:/*EOF*/
        -:        -: 8928:/*EOF*/
        -:        -: 8929:/*EOF*/
        -:        -: 8930:/*EOF*/
        -:        -: 8931:/*EOF*/
        -:        -: 8932:/*EOF*/
        -:        -: 8933:/*EOF*/
        -:        -: 8934:/*EOF*/
        -:        -: 8935:/*EOF*/
        -:        -: 8936:/*EOF*/
        -:        -: 8937:/*EOF*/
        -:        -: 8938:/*EOF*/
        -:        -: 8939:/*EOF*/
        -:        -: 8940:/*EOF*/
        -:        -: 8941:/*EOF*/
        -:        -: 8942:/*EOF*/
        -:        -: 8943:/*EOF*/
        -:        -: 8944:/*EOF*/
        -:        -: 8945:/*EOF*/
        -:        -: 8946:/*EOF*/
        -:        -: 8947:/*EOF*/
        -:        -: 8948:/*EOF*/
        -:        -: 8949:/*EOF*/
        -:        -: 8950:/*EOF*/
        -:        -: 8951:/*EOF*/
        -:        -: 8952:/*EOF*/
        -:        -: 8953:/*EOF*/
        -:        -: 8954:/*EOF*/
        -:        -: 8955:/*EOF*/
        -:        -: 8956:/*EOF*/
        -:        -: 8957:/*EOF*/
        -:        -: 8958:/*EOF*/
        -:        -: 8959:/*EOF*/
        -:        -: 8960:/*EOF*/
        -:        -: 8961:/*EOF*/
        -:        -: 8962:/*EOF*/
        -:        -: 8963:/*EOF*/
        -:        -: 8964:/*EOF*/
        -:        -: 8965:/*EOF*/
        -:        -: 8966:/*EOF*/
        -:        -: 8967:/*EOF*/
        -:        -: 8968:/*EOF*/
        -:        -: 8969:/*EOF*/
        -:        -: 8970:/*EOF*/
        -:        -: 8971:/*EOF*/
        -:        -: 8972:/*EOF*/
        -:        -: 8973:/*EOF*/
        -:        -: 8974:/*EOF*/
        -:        -: 8975:/*EOF*/
        -:        -: 8976:/*EOF*/
        -:        -: 8977:/*EOF*/
        -:        -: 8978:/*EOF*/
        -:        -: 8979:/*EOF*/
        -:        -: 8980:/*EOF*/
        -:        -: 8981:/*EOF*/
        -:        -: 8982:/*EOF*/
        -:        -: 8983:/*EOF*/
        -:        -: 8984:/*EOF*/
        -:        -: 8985:/*EOF*/
        -:        -: 8986:/*EOF*/
        -:        -: 8987:/*EOF*/
        -:        -: 8988:/*EOF*/
        -:        -: 8989:/*EOF*/
        -:        -: 8990:/*EOF*/
        -:        -: 8991:/*EOF*/
        -:        -: 8992:/*EOF*/
        -:        -: 8993:/*EOF*/
        -:        -: 8994:/*EOF*/
        -:        -: 8995:/*EOF*/
        -:        -: 8996:/*EOF*/
        -:        -: 8997:/*EOF*/
        -:        -: 8998:/*EOF*/
        -:        -: 8999:/*EOF*/
        -:        -: 9000:/*EOF*/
        -:        -: 9001:/*EOF*/
        -:        -: 9002:/*EOF*/
        -:        -: 9003:/*EOF*/
        -:        -: 9004:/*EOF*/
        -:        -: 9005:/*EOF*/
        -:        -: 9006:/*EOF*/
        -:        -: 9007:/*EOF*/
        -:        -: 9008:/*EOF*/
        -:        -: 9009:/*EOF*/
        -:        -: 9010:/*EOF*/
        -:        -: 9011:/*EOF*/
        -:        -: 9012:/*EOF*/
        -:        -: 9013:/*EOF*/
        -:        -: 9014:/*EOF*/
        -:        -: 9015:/*EOF*/
        -:        -: 9016:/*EOF*/
        -:        -: 9017:/*EOF*/
        -:        -: 9018:/*EOF*/
        -:        -: 9019:/*EOF*/
        -:        -: 9020:/*EOF*/
        -:        -: 9021:/*EOF*/
        -:        -: 9022:/*EOF*/
        -:        -: 9023:/*EOF*/
        -:        -: 9024:/*EOF*/
        -:        -: 9025:/*EOF*/
        -:        -: 9026:/*EOF*/
        -:        -: 9027:/*EOF*/
        -:        -: 9028:/*EOF*/
        -:        -: 9029:/*EOF*/
        -:        -: 9030:/*EOF*/
        -:        -: 9031:/*EOF*/
        -:        -: 9032:/*EOF*/
        -:        -: 9033:/*EOF*/
        -:        -: 9034:/*EOF*/
        -:        -: 9035:/*EOF*/
        -:        -: 9036:/*EOF*/
        -:        -: 9037:/*EOF*/
        -:        -: 9038:/*EOF*/
        -:        -: 9039:/*EOF*/
        -:        -: 9040:/*EOF*/
        -:        -: 9041:/*EOF*/
        -:        -: 9042:/*EOF*/
        -:        -: 9043:/*EOF*/
        -:        -: 9044:/*EOF*/
        -:        -: 9045:/*EOF*/
        -:        -: 9046:/*EOF*/
        -:        -: 9047:/*EOF*/
        -:        -: 9048:/*EOF*/
        -:        -: 9049:/*EOF*/
        -:        -: 9050:/*EOF*/
        -:        -: 9051:/*EOF*/
        -:        -: 9052:/*EOF*/
        -:        -: 9053:/*EOF*/
        -:        -: 9054:/*EOF*/
        -:        -: 9055:/*EOF*/
        -:        -: 9056:/*EOF*/
        -:        -: 9057:/*EOF*/
        -:        -: 9058:/*EOF*/
        -:        -: 9059:/*EOF*/
        -:        -: 9060:/*EOF*/
        -:        -: 9061:/*EOF*/
        -:        -: 9062:/*EOF*/
        -:        -: 9063:/*EOF*/
        -:        -: 9064:/*EOF*/
        -:        -: 9065:/*EOF*/
        -:        -: 9066:/*EOF*/
        -:        -: 9067:/*EOF*/
        -:        -: 9068:/*EOF*/
        -:        -: 9069:/*EOF*/
        -:        -: 9070:/*EOF*/
        -:        -: 9071:/*EOF*/
        -:        -: 9072:/*EOF*/
        -:        -: 9073:/*EOF*/
        -:        -: 9074:/*EOF*/
        -:        -: 9075:/*EOF*/
        -:        -: 9076:/*EOF*/
        -:        -: 9077:/*EOF*/
        -:        -: 9078:/*EOF*/
        -:        -: 9079:/*EOF*/
        -:        -: 9080:/*EOF*/
        -:        -: 9081:/*EOF*/
        -:        -: 9082:/*EOF*/
        -:        -: 9083:/*EOF*/
        -:        -: 9084:/*EOF*/
        -:        -: 9085:/*EOF*/
        -:        -: 9086:/*EOF*/
        -:        -: 9087:/*EOF*/
        -:        -: 9088:/*EOF*/
        -:        -: 9089:/*EOF*/
        -:        -: 9090:/*EOF*/
        -:        -: 9091:/*EOF*/
        -:        -: 9092:/*EOF*/
        -:        -: 9093:/*EOF*/
        -:        -: 9094:/*EOF*/
        -:        -: 9095:/*EOF*/
        -:        -: 9096:/*EOF*/
        -:        -: 9097:/*EOF*/
        -:        -: 9098:/*EOF*/
        -:        -: 9099:/*EOF*/
        -:        -: 9100:/*EOF*/
        -:        -: 9101:/*EOF*/
        -:        -: 9102:/*EOF*/
        -:        -: 9103:/*EOF*/
        -:        -: 9104:/*EOF*/
        -:        -: 9105:/*EOF*/
        -:        -: 9106:/*EOF*/
        -:        -: 9107:/*EOF*/
        -:        -: 9108:/*EOF*/
        -:        -: 9109:/*EOF*/
        -:        -: 9110:/*EOF*/
        -:        -: 9111:/*EOF*/
        -:        -: 9112:/*EOF*/
        -:        -: 9113:/*EOF*/
        -:        -: 9114:/*EOF*/
        -:        -: 9115:/*EOF*/
        -:        -: 9116:/*EOF*/
        -:        -: 9117:/*EOF*/
        -:        -: 9118:/*EOF*/
        -:        -: 9119:/*EOF*/
        -:        -: 9120:/*EOF*/
        -:        -: 9121:/*EOF*/
        -:        -: 9122:/*EOF*/
        -:        -: 9123:/*EOF*/
        -:        -: 9124:/*EOF*/
        -:        -: 9125:/*EOF*/
        -:        -: 9126:/*EOF*/
        -:        -: 9127:/*EOF*/
        -:        -: 9128:/*EOF*/
        -:        -: 9129:/*EOF*/
        -:        -: 9130:/*EOF*/
        -:        -: 9131:/*EOF*/
        -:        -: 9132:/*EOF*/
        -:        -: 9133:/*EOF*/
        -:        -: 9134:/*EOF*/
        -:        -: 9135:/*EOF*/
        -:        -: 9136:/*EOF*/
        -:        -: 9137:/*EOF*/
        -:        -: 9138:/*EOF*/
        -:        -: 9139:/*EOF*/
        -:        -: 9140:/*EOF*/
        -:        -: 9141:/*EOF*/
        -:        -: 9142:/*EOF*/
        -:        -: 9143:/*EOF*/
        -:        -: 9144:/*EOF*/
        -:        -: 9145:/*EOF*/
        -:        -: 9146:/*EOF*/
        -:        -: 9147:/*EOF*/
        -:        -: 9148:/*EOF*/
        -:        -: 9149:/*EOF*/
        -:        -: 9150:/*EOF*/
        -:        -: 9151:/*EOF*/
        -:        -: 9152:/*EOF*/
        -:        -: 9153:/*EOF*/
        -:        -: 9154:/*EOF*/
        -:        -: 9155:/*EOF*/
        -:        -: 9156:/*EOF*/
        -:        -: 9157:/*EOF*/
        -:        -: 9158:/*EOF*/
        -:        -: 9159:/*EOF*/
        -:        -: 9160:/*EOF*/
        -:        -: 9161:/*EOF*/
        -:        -: 9162:/*EOF*/
        -:        -: 9163:/*EOF*/
        -:        -: 9164:/*EOF*/
        -:        -: 9165:/*EOF*/
        -:        -: 9166:/*EOF*/
        -:        -: 9167:/*EOF*/
        -:        -: 9168:/*EOF*/
        -:        -: 9169:/*EOF*/
        -:        -: 9170:/*EOF*/
        -:        -: 9171:/*EOF*/
        -:        -: 9172:/*EOF*/
        -:        -: 9173:/*EOF*/
        -:        -: 9174:/*EOF*/
        -:        -: 9175:/*EOF*/
        -:        -: 9176:/*EOF*/
        -:        -: 9177:/*EOF*/
        -:        -: 9178:/*EOF*/
        -:        -: 9179:/*EOF*/
        -:        -: 9180:/*EOF*/
        -:        -: 9181:/*EOF*/
        -:        -: 9182:/*EOF*/
        -:        -: 9183:/*EOF*/
        -:        -: 9184:/*EOF*/
        -:        -: 9185:/*EOF*/
        -:        -: 9186:/*EOF*/
        -:        -: 9187:/*EOF*/
        -:        -: 9188:/*EOF*/
        -:        -: 9189:/*EOF*/
        -:        -: 9190:/*EOF*/
        -:        -: 9191:/*EOF*/
        -:        -: 9192:/*EOF*/
        -:        -: 9193:/*EOF*/
        -:        -: 9194:/*EOF*/
        -:        -: 9195:/*EOF*/
        -:        -: 9196:/*EOF*/
        -:        -: 9197:/*EOF*/
        -:        -: 9198:/*EOF*/
        -:        -: 9199:/*EOF*/
        -:        -: 9200:/*EOF*/
        -:        -: 9201:/*EOF*/
        -:        -: 9202:/*EOF*/
        -:        -: 9203:/*EOF*/
        -:        -: 9204:/*EOF*/
        -:        -: 9205:/*EOF*/
        -:        -: 9206:/*EOF*/
        -:        -: 9207:/*EOF*/
        -:        -: 9208:/*EOF*/
        -:        -: 9209:/*EOF*/
        -:        -: 9210:/*EOF*/
        -:        -: 9211:/*EOF*/
        -:        -: 9212:/*EOF*/
        -:        -: 9213:/*EOF*/
        -:        -: 9214:/*EOF*/
        -:        -: 9215:/*EOF*/
        -:        -: 9216:/*EOF*/
        -:        -: 9217:/*EOF*/
        -:        -: 9218:/*EOF*/
        -:        -: 9219:/*EOF*/
        -:        -: 9220:/*EOF*/
        -:        -: 9221:/*EOF*/
        -:        -: 9222:/*EOF*/
        -:        -: 9223:/*EOF*/
        -:        -: 9224:/*EOF*/
        -:        -: 9225:/*EOF*/
        -:        -: 9226:/*EOF*/
        -:        -: 9227:/*EOF*/
        -:        -: 9228:/*EOF*/
        -:        -: 9229:/*EOF*/
        -:        -: 9230:/*EOF*/
        -:        -: 9231:/*EOF*/
        -:        -: 9232:/*EOF*/
        -:        -: 9233:/*EOF*/
        -:        -: 9234:/*EOF*/
        -:        -: 9235:/*EOF*/
        -:        -: 9236:/*EOF*/
        -:        -: 9237:/*EOF*/
        -:        -: 9238:/*EOF*/
        -:        -: 9239:/*EOF*/
        -:        -: 9240:/*EOF*/
        -:        -: 9241:/*EOF*/
        -:        -: 9242:/*EOF*/
        -:        -: 9243:/*EOF*/
        -:        -: 9244:/*EOF*/
        -:        -: 9245:/*EOF*/
        -:        -: 9246:/*EOF*/
        -:        -: 9247:/*EOF*/
        -:        -: 9248:/*EOF*/
        -:        -: 9249:/*EOF*/
        -:        -: 9250:/*EOF*/
        -:        -: 9251:/*EOF*/
        -:        -: 9252:/*EOF*/
        -:        -: 9253:/*EOF*/
        -:        -: 9254:/*EOF*/
        -:        -: 9255:/*EOF*/
        -:        -: 9256:/*EOF*/
        -:        -: 9257:/*EOF*/
        -:        -: 9258:/*EOF*/
        -:        -: 9259:/*EOF*/
        -:        -: 9260:/*EOF*/
        -:        -: 9261:/*EOF*/
        -:        -: 9262:/*EOF*/
        -:        -: 9263:/*EOF*/
        -:        -: 9264:/*EOF*/
        -:        -: 9265:/*EOF*/
        -:        -: 9266:/*EOF*/
        -:        -: 9267:/*EOF*/
        -:        -: 9268:/*EOF*/
        -:        -: 9269:/*EOF*/
        -:        -: 9270:/*EOF*/
        -:        -: 9271:/*EOF*/
        -:        -: 9272:/*EOF*/
        -:        -: 9273:/*EOF*/
        -:        -: 9274:/*EOF*/
        -:        -: 9275:/*EOF*/
        -:        -: 9276:/*EOF*/
        -:        -: 9277:/*EOF*/
        -:        -: 9278:/*EOF*/
        -:        -: 9279:/*EOF*/
        -:        -: 9280:/*EOF*/
        -:        -: 9281:/*EOF*/
        -:        -: 9282:/*EOF*/
        -:        -: 9283:/*EOF*/
        -:        -: 9284:/*EOF*/
        -:        -: 9285:/*EOF*/
        -:        -: 9286:/*EOF*/
        -:        -: 9287:/*EOF*/
        -:        -: 9288:/*EOF*/
        -:        -: 9289:/*EOF*/
        -:        -: 9290:/*EOF*/
        -:        -: 9291:/*EOF*/
        -:        -: 9292:/*EOF*/
        -:        -: 9293:/*EOF*/
        -:        -: 9294:/*EOF*/
        -:        -: 9295:/*EOF*/
        -:        -: 9296:/*EOF*/
        -:        -: 9297:/*EOF*/
        -:        -: 9298:/*EOF*/
        -:        -: 9299:/*EOF*/
        -:        -: 9300:/*EOF*/
        -:        -: 9301:/*EOF*/
        -:        -: 9302:/*EOF*/
        -:        -: 9303:/*EOF*/
        -:        -: 9304:/*EOF*/
        -:        -: 9305:/*EOF*/
        -:        -: 9306:/*EOF*/
        -:        -: 9307:/*EOF*/
        -:        -: 9308:/*EOF*/
        -:        -: 9309:/*EOF*/
        -:        -: 9310:/*EOF*/
        -:        -: 9311:/*EOF*/
        -:        -: 9312:/*EOF*/
        -:        -: 9313:/*EOF*/
        -:        -: 9314:/*EOF*/
        -:        -: 9315:/*EOF*/
        -:        -: 9316:/*EOF*/
        -:        -: 9317:/*EOF*/
        -:        -: 9318:/*EOF*/
        -:        -: 9319:/*EOF*/
        -:        -: 9320:/*EOF*/
        -:        -: 9321:/*EOF*/
        -:        -: 9322:/*EOF*/
        -:        -: 9323:/*EOF*/
        -:        -: 9324:/*EOF*/
        -:        -: 9325:/*EOF*/
        -:        -: 9326:/*EOF*/
        -:        -: 9327:/*EOF*/
        -:        -: 9328:/*EOF*/
        -:        -: 9329:/*EOF*/
        -:        -: 9330:/*EOF*/
        -:        -: 9331:/*EOF*/
        -:        -: 9332:/*EOF*/
        -:        -: 9333:/*EOF*/
        -:        -: 9334:/*EOF*/
        -:        -: 9335:/*EOF*/
        -:        -: 9336:/*EOF*/
        -:        -: 9337:/*EOF*/
        -:        -: 9338:/*EOF*/
        -:        -: 9339:/*EOF*/
        -:        -: 9340:/*EOF*/
        -:        -: 9341:/*EOF*/
        -:        -: 9342:/*EOF*/
        -:        -: 9343:/*EOF*/
        -:        -: 9344:/*EOF*/
        -:        -: 9345:/*EOF*/
        -:        -: 9346:/*EOF*/
        -:        -: 9347:/*EOF*/
        -:        -: 9348:/*EOF*/
        -:        -: 9349:/*EOF*/
        -:        -: 9350:/*EOF*/
        -:        -: 9351:/*EOF*/
        -:        -: 9352:/*EOF*/
        -:        -: 9353:/*EOF*/
        -:        -: 9354:/*EOF*/
        -:        -: 9355:/*EOF*/
        -:        -: 9356:/*EOF*/
        -:        -: 9357:/*EOF*/
        -:        -: 9358:/*EOF*/
        -:        -: 9359:/*EOF*/
        -:        -: 9360:/*EOF*/
        -:        -: 9361:/*EOF*/
        -:        -: 9362:/*EOF*/
        -:        -: 9363:/*EOF*/
        -:        -: 9364:/*EOF*/
        -:        -: 9365:/*EOF*/
        -:        -: 9366:/*EOF*/
        -:        -: 9367:/*EOF*/
        -:        -: 9368:/*EOF*/
        -:        -: 9369:/*EOF*/
        -:        -: 9370:/*EOF*/
        -:        -: 9371:/*EOF*/
        -:        -: 9372:/*EOF*/
        -:        -: 9373:/*EOF*/
        -:        -: 9374:/*EOF*/
        -:        -: 9375:/*EOF*/
        -:        -: 9376:/*EOF*/
        -:        -: 9377:/*EOF*/
        -:        -: 9378:/*EOF*/
        -:        -: 9379:/*EOF*/
        -:        -: 9380:/*EOF*/
        -:        -: 9381:/*EOF*/
        -:        -: 9382:/*EOF*/
        -:        -: 9383:/*EOF*/
        -:        -: 9384:/*EOF*/
        -:        -: 9385:/*EOF*/
        -:        -: 9386:/*EOF*/
        -:        -: 9387:/*EOF*/
        -:        -: 9388:/*EOF*/
        -:        -: 9389:/*EOF*/
        -:        -: 9390:/*EOF*/
        -:        -: 9391:/*EOF*/
        -:        -: 9392:/*EOF*/
        -:        -: 9393:/*EOF*/
        -:        -: 9394:/*EOF*/
        -:        -: 9395:/*EOF*/
        -:        -: 9396:/*EOF*/
        -:        -: 9397:/*EOF*/
        -:        -: 9398:/*EOF*/
        -:        -: 9399:/*EOF*/
        -:        -: 9400:/*EOF*/
        -:        -: 9401:/*EOF*/
        -:        -: 9402:/*EOF*/
        -:        -: 9403:/*EOF*/
        -:        -: 9404:/*EOF*/
        -:        -: 9405:/*EOF*/
        -:        -: 9406:/*EOF*/
        -:        -: 9407:/*EOF*/
        -:        -: 9408:/*EOF*/
        -:        -: 9409:/*EOF*/
        -:        -: 9410:/*EOF*/
        -:        -: 9411:/*EOF*/
        -:        -: 9412:/*EOF*/
        -:        -: 9413:/*EOF*/
        -:        -: 9414:/*EOF*/
        -:        -: 9415:/*EOF*/
        -:        -: 9416:/*EOF*/
        -:        -: 9417:/*EOF*/
        -:        -: 9418:/*EOF*/
        -:        -: 9419:/*EOF*/
        -:        -: 9420:/*EOF*/
        -:        -: 9421:/*EOF*/
        -:        -: 9422:/*EOF*/
        -:        -: 9423:/*EOF*/
        -:        -: 9424:/*EOF*/
        -:        -: 9425:/*EOF*/
        -:        -: 9426:/*EOF*/
        -:        -: 9427:/*EOF*/
        -:        -: 9428:/*EOF*/
        -:        -: 9429:/*EOF*/
        -:        -: 9430:/*EOF*/
        -:        -: 9431:/*EOF*/
        -:        -: 9432:/*EOF*/
        -:        -: 9433:/*EOF*/
        -:        -: 9434:/*EOF*/
        -:        -: 9435:/*EOF*/
        -:        -: 9436:/*EOF*/
        -:        -: 9437:/*EOF*/
        -:        -: 9438:/*EOF*/
        -:        -: 9439:/*EOF*/
        -:        -: 9440:/*EOF*/
        -:        -: 9441:/*EOF*/
        -:        -: 9442:/*EOF*/
        -:        -: 9443:/*EOF*/
        -:        -: 9444:/*EOF*/
        -:        -: 9445:/*EOF*/
        -:        -: 9446:/*EOF*/
        -:        -: 9447:/*EOF*/
        -:        -: 9448:/*EOF*/
        -:        -: 9449:/*EOF*/
        -:        -: 9450:/*EOF*/
        -:        -: 9451:/*EOF*/
        -:        -: 9452:/*EOF*/
        -:        -: 9453:/*EOF*/
        -:        -: 9454:/*EOF*/
        -:        -: 9455:/*EOF*/
        -:        -: 9456:/*EOF*/
        -:        -: 9457:/*EOF*/
        -:        -: 9458:/*EOF*/
        -:        -: 9459:/*EOF*/
        -:        -: 9460:/*EOF*/
        -:        -: 9461:/*EOF*/
        -:        -: 9462:/*EOF*/
        -:        -: 9463:/*EOF*/
        -:        -: 9464:/*EOF*/
        -:        -: 9465:/*EOF*/
        -:        -: 9466:/*EOF*/
        -:        -: 9467:/*EOF*/
        -:        -: 9468:/*EOF*/
        -:        -: 9469:/*EOF*/
        -:        -: 9470:/*EOF*/
        -:        -: 9471:/*EOF*/
        -:        -: 9472:/*EOF*/
        -:        -: 9473:/*EOF*/
        -:        -: 9474:/*EOF*/
        -:        -: 9475:/*EOF*/
        -:        -: 9476:/*EOF*/
        -:        -: 9477:/*EOF*/
        -:        -: 9478:/*EOF*/
        -:        -: 9479:/*EOF*/
        -:        -: 9480:/*EOF*/
        -:        -: 9481:/*EOF*/
        -:        -: 9482:/*EOF*/
        -:        -: 9483:/*EOF*/
        -:        -: 9484:/*EOF*/
        -:        -: 9485:/*EOF*/
        -:        -: 9486:/*EOF*/
        -:        -: 9487:/*EOF*/
        -:        -: 9488:/*EOF*/
        -:        -: 9489:/*EOF*/
        -:        -: 9490:/*EOF*/
        -:        -: 9491:/*EOF*/
        -:        -: 9492:/*EOF*/
        -:        -: 9493:/*EOF*/
        -:        -: 9494:/*EOF*/
        -:        -: 9495:/*EOF*/
        -:        -: 9496:/*EOF*/
        -:        -: 9497:/*EOF*/
        -:        -: 9498:/*EOF*/
        -:        -: 9499:/*EOF*/
        -:        -: 9500:/*EOF*/
        -:        -: 9501:/*EOF*/
        -:        -: 9502:/*EOF*/
        -:        -: 9503:/*EOF*/
        -:        -: 9504:/*EOF*/
        -:        -: 9505:/*EOF*/
        -:        -: 9506:/*EOF*/
        -:        -: 9507:/*EOF*/
        -:        -: 9508:/*EOF*/
        -:        -: 9509:/*EOF*/
        -:        -: 9510:/*EOF*/
        -:        -: 9511:/*EOF*/
        -:        -: 9512:/*EOF*/
        -:        -: 9513:/*EOF*/
        -:        -: 9514:/*EOF*/
        -:        -: 9515:/*EOF*/
        -:        -: 9516:/*EOF*/
        -:        -: 9517:/*EOF*/
        -:        -: 9518:/*EOF*/
        -:        -: 9519:/*EOF*/
        -:        -: 9520:/*EOF*/
        -:        -: 9521:/*EOF*/
        -:        -: 9522:/*EOF*/
        -:        -: 9523:/*EOF*/
        -:        -: 9524:/*EOF*/
        -:        -: 9525:/*EOF*/
        -:        -: 9526:/*EOF*/
        -:        -: 9527:/*EOF*/
        -:        -: 9528:/*EOF*/
        -:        -: 9529:/*EOF*/
        -:        -: 9530:/*EOF*/
        -:        -: 9531:/*EOF*/
        -:        -: 9532:/*EOF*/
        -:        -: 9533:/*EOF*/
        -:        -: 9534:/*EOF*/
        -:        -: 9535:/*EOF*/
        -:        -: 9536:/*EOF*/
        -:        -: 9537:/*EOF*/
        -:        -: 9538:/*EOF*/
        -:        -: 9539:/*EOF*/
        -:        -: 9540:/*EOF*/
        -:        -: 9541:/*EOF*/
        -:        -: 9542:/*EOF*/
        -:        -: 9543:/*EOF*/
        -:        -: 9544:/*EOF*/
        -:        -: 9545:/*EOF*/
        -:        -: 9546:/*EOF*/
        -:        -: 9547:/*EOF*/
        -:        -: 9548:/*EOF*/
        -:        -: 9549:/*EOF*/
        -:        -: 9550:/*EOF*/
        -:        -: 9551:/*EOF*/
        -:        -: 9552:/*EOF*/
        -:        -: 9553:/*EOF*/
        -:        -: 9554:/*EOF*/
        -:        -: 9555:/*EOF*/
        -:        -: 9556:/*EOF*/
        -:        -: 9557:/*EOF*/
        -:        -: 9558:/*EOF*/
        -:        -: 9559:/*EOF*/
        -:        -: 9560:/*EOF*/
        -:        -: 9561:/*EOF*/
        -:        -: 9562:/*EOF*/
        -:        -: 9563:/*EOF*/
        -:        -: 9564:/*EOF*/
        -:        -: 9565:/*EOF*/
        -:        -: 9566:/*EOF*/
        -:        -: 9567:/*EOF*/
        -:        -: 9568:/*EOF*/
        -:        -: 9569:/*EOF*/
        -:        -: 9570:/*EOF*/
        -:        -: 9571:/*EOF*/
        -:        -: 9572:/*EOF*/
        -:        -: 9573:/*EOF*/
        -:        -: 9574:/*EOF*/
        -:        -: 9575:/*EOF*/
        -:        -: 9576:/*EOF*/
        -:        -: 9577:/*EOF*/
        -:        -: 9578:/*EOF*/
        -:        -: 9579:/*EOF*/
        -:        -: 9580:/*EOF*/
        -:        -: 9581:/*EOF*/
        -:        -: 9582:/*EOF*/
        -:        -: 9583:/*EOF*/
        -:        -: 9584:/*EOF*/
        -:        -: 9585:/*EOF*/
        -:        -: 9586:/*EOF*/
        -:        -: 9587:/*EOF*/
        -:        -: 9588:/*EOF*/
        -:        -: 9589:/*EOF*/
        -:        -: 9590:/*EOF*/
        -:        -: 9591:/*EOF*/
        -:        -: 9592:/*EOF*/
        -:        -: 9593:/*EOF*/
        -:        -: 9594:/*EOF*/
        -:        -: 9595:/*EOF*/
        -:        -: 9596:/*EOF*/
        -:        -: 9597:/*EOF*/
        -:        -: 9598:/*EOF*/
        -:        -: 9599:/*EOF*/
        -:        -: 9600:/*EOF*/
        -:        -: 9601:/*EOF*/
        -:        -: 9602:/*EOF*/
        -:        -: 9603:/*EOF*/
        -:        -: 9604:/*EOF*/
        -:        -: 9605:/*EOF*/
        -:        -: 9606:/*EOF*/
        -:        -: 9607:/*EOF*/
        -:        -: 9608:/*EOF*/
        -:        -: 9609:/*EOF*/
        -:        -: 9610:/*EOF*/
        -:        -: 9611:/*EOF*/
        -:        -: 9612:/*EOF*/
        -:        -: 9613:/*EOF*/
        -:        -: 9614:/*EOF*/
        -:        -: 9615:/*EOF*/
        -:        -: 9616:/*EOF*/
        -:        -: 9617:/*EOF*/
        -:        -: 9618:/*EOF*/
        -:        -: 9619:/*EOF*/
        -:        -: 9620:/*EOF*/
        -:        -: 9621:/*EOF*/
        -:        -: 9622:/*EOF*/
        -:        -: 9623:/*EOF*/
        -:        -: 9624:/*EOF*/
        -:        -: 9625:/*EOF*/
        -:        -: 9626:/*EOF*/
        -:        -: 9627:/*EOF*/
        -:        -: 9628:/*EOF*/
        -:        -: 9629:/*EOF*/
        -:        -: 9630:/*EOF*/
        -:        -: 9631:/*EOF*/
        -:        -: 9632:/*EOF*/
        -:        -: 9633:/*EOF*/
        -:        -: 9634:/*EOF*/
        -:        -: 9635:/*EOF*/
        -:        -: 9636:/*EOF*/
        -:        -: 9637:/*EOF*/
        -:        -: 9638:/*EOF*/
        -:        -: 9639:/*EOF*/
        -:        -: 9640:/*EOF*/
        -:        -: 9641:/*EOF*/
        -:        -: 9642:/*EOF*/
        -:        -: 9643:/*EOF*/
        -:        -: 9644:/*EOF*/
        -:        -: 9645:/*EOF*/
        -:        -: 9646:/*EOF*/
        -:        -: 9647:/*EOF*/
        -:        -: 9648:/*EOF*/
        -:        -: 9649:/*EOF*/
        -:        -: 9650:/*EOF*/
        -:        -: 9651:/*EOF*/
        -:        -: 9652:/*EOF*/
        -:        -: 9653:/*EOF*/
        -:        -: 9654:/*EOF*/
        -:        -: 9655:/*EOF*/
        -:        -: 9656:/*EOF*/
        -:        -: 9657:/*EOF*/
        -:        -: 9658:/*EOF*/
        -:        -: 9659:/*EOF*/
        -:        -: 9660:/*EOF*/
        -:        -: 9661:/*EOF*/
        -:        -: 9662:/*EOF*/
        -:        -: 9663:/*EOF*/
        -:        -: 9664:/*EOF*/
        -:        -: 9665:/*EOF*/
        -:        -: 9666:/*EOF*/
        -:        -: 9667:/*EOF*/
        -:        -: 9668:/*EOF*/
        -:        -: 9669:/*EOF*/
        -:        -: 9670:/*EOF*/
        -:        -: 9671:/*EOF*/
        -:        -: 9672:/*EOF*/
        -:        -: 9673:/*EOF*/
        -:        -: 9674:/*EOF*/
        -:        -: 9675:/*EOF*/
        -:        -: 9676:/*EOF*/
        -:        -: 9677:/*EOF*/
        -:        -: 9678:/*EOF*/
        -:        -: 9679:/*EOF*/
        -:        -: 9680:/*EOF*/
        -:        -: 9681:/*EOF*/
        -:        -: 9682:/*EOF*/
        -:        -: 9683:/*EOF*/
        -:        -: 9684:/*EOF*/
        -:        -: 9685:/*EOF*/
        -:        -: 9686:/*EOF*/
        -:        -: 9687:/*EOF*/
        -:        -: 9688:/*EOF*/
        -:        -: 9689:/*EOF*/
        -:        -: 9690:/*EOF*/
        -:        -: 9691:/*EOF*/
        -:        -: 9692:/*EOF*/
        -:        -: 9693:/*EOF*/
        -:        -: 9694:/*EOF*/
        -:        -: 9695:/*EOF*/
        -:        -: 9696:/*EOF*/
        -:        -: 9697:/*EOF*/
        -:        -: 9698:/*EOF*/
        -:        -: 9699:/*EOF*/
        -:        -: 9700:/*EOF*/
        -:        -: 9701:/*EOF*/
        -:        -: 9702:/*EOF*/
        -:        -: 9703:/*EOF*/
        -:        -: 9704:/*EOF*/
        -:        -: 9705:/*EOF*/
        -:        -: 9706:/*EOF*/
        -:        -: 9707:/*EOF*/
        -:        -: 9708:/*EOF*/
        -:        -: 9709:/*EOF*/
        -:        -: 9710:/*EOF*/
        -:        -: 9711:/*EOF*/
        -:        -: 9712:/*EOF*/
        -:        -: 9713:/*EOF*/
        -:        -: 9714:/*EOF*/
        -:        -: 9715:/*EOF*/
        -:        -: 9716:/*EOF*/
        -:        -: 9717:/*EOF*/
        -:        -: 9718:/*EOF*/
        -:        -: 9719:/*EOF*/
        -:        -: 9720:/*EOF*/
        -:        -: 9721:/*EOF*/
        -:        -: 9722:/*EOF*/
        -:        -: 9723:/*EOF*/
        -:        -: 9724:/*EOF*/
        -:        -: 9725:/*EOF*/
        -:        -: 9726:/*EOF*/
        -:        -: 9727:/*EOF*/
        -:        -: 9728:/*EOF*/
        -:        -: 9729:/*EOF*/
        -:        -: 9730:/*EOF*/
        -:        -: 9731:/*EOF*/
        -:        -: 9732:/*EOF*/
        -:        -: 9733:/*EOF*/
        -:        -: 9734:/*EOF*/
        -:        -: 9735:/*EOF*/
        -:        -: 9736:/*EOF*/
        -:        -: 9737:/*EOF*/
        -:        -: 9738:/*EOF*/
        -:        -: 9739:/*EOF*/
        -:        -: 9740:/*EOF*/
        -:        -: 9741:/*EOF*/
        -:        -: 9742:/*EOF*/
        -:        -: 9743:/*EOF*/
        -:        -: 9744:/*EOF*/
        -:        -: 9745:/*EOF*/
        -:        -: 9746:/*EOF*/
        -:        -: 9747:/*EOF*/
        -:        -: 9748:/*EOF*/
        -:        -: 9749:/*EOF*/
        -:        -: 9750:/*EOF*/
        -:        -: 9751:/*EOF*/
        -:        -: 9752:/*EOF*/
        -:        -: 9753:/*EOF*/
        -:        -: 9754:/*EOF*/
        -:        -: 9755:/*EOF*/
        -:        -: 9756:/*EOF*/
        -:        -: 9757:/*EOF*/
        -:        -: 9758:/*EOF*/
        -:        -: 9759:/*EOF*/
        -:        -: 9760:/*EOF*/
        -:        -: 9761:/*EOF*/
        -:        -: 9762:/*EOF*/
        -:        -: 9763:/*EOF*/
        -:        -: 9764:/*EOF*/
        -:        -: 9765:/*EOF*/
        -:        -: 9766:/*EOF*/
        -:        -: 9767:/*EOF*/
        -:        -: 9768:/*EOF*/
        -:        -: 9769:/*EOF*/
        -:        -: 9770:/*EOF*/
        -:        -: 9771:/*EOF*/
        -:        -: 9772:/*EOF*/
        -:        -: 9773:/*EOF*/
        -:        -: 9774:/*EOF*/
        -:        -: 9775:/*EOF*/
        -:        -: 9776:/*EOF*/
        -:        -: 9777:/*EOF*/
        -:        -: 9778:/*EOF*/
        -:        -: 9779:/*EOF*/
        -:        -: 9780:/*EOF*/
        -:        -: 9781:/*EOF*/
        -:        -: 9782:/*EOF*/
        -:        -: 9783:/*EOF*/
        -:        -: 9784:/*EOF*/
        -:        -: 9785:/*EOF*/
        -:        -: 9786:/*EOF*/
        -:        -: 9787:/*EOF*/
        -:        -: 9788:/*EOF*/
        -:        -: 9789:/*EOF*/
        -:        -: 9790:/*EOF*/
        -:        -: 9791:/*EOF*/
        -:        -: 9792:/*EOF*/
        -:        -: 9793:/*EOF*/
        -:        -: 9794:/*EOF*/
        -:        -: 9795:/*EOF*/
        -:        -: 9796:/*EOF*/
        -:        -: 9797:/*EOF*/
        -:        -: 9798:/*EOF*/
        -:        -: 9799:/*EOF*/
        -:        -: 9800:/*EOF*/
        -:        -: 9801:/*EOF*/
        -:        -: 9802:/*EOF*/
        -:        -: 9803:/*EOF*/
        -:        -: 9804:/*EOF*/
        -:        -: 9805:/*EOF*/
        -:        -: 9806:/*EOF*/
        -:        -: 9807:/*EOF*/
        -:        -: 9808:/*EOF*/
        -:        -: 9809:/*EOF*/
        -:        -: 9810:/*EOF*/
        -:        -: 9811:/*EOF*/
        -:        -: 9812:/*EOF*/
        -:        -: 9813:/*EOF*/
        -:        -: 9814:/*EOF*/
        -:        -: 9815:/*EOF*/
        -:        -: 9816:/*EOF*/
        -:        -: 9817:/*EOF*/
        -:        -: 9818:/*EOF*/
        -:        -: 9819:/*EOF*/
        -:        -: 9820:/*EOF*/
        -:        -: 9821:/*EOF*/
        -:        -: 9822:/*EOF*/
        -:        -: 9823:/*EOF*/
        -:        -: 9824:/*EOF*/
        -:        -: 9825:/*EOF*/
        -:        -: 9826:/*EOF*/
        -:        -: 9827:/*EOF*/
        -:        -: 9828:/*EOF*/
        -:        -: 9829:/*EOF*/
        -:        -: 9830:/*EOF*/
        -:        -: 9831:/*EOF*/
        -:        -: 9832:/*EOF*/
        -:        -: 9833:/*EOF*/
        -:        -: 9834:/*EOF*/
        -:        -: 9835:/*EOF*/
        -:        -: 9836:/*EOF*/
        -:        -: 9837:/*EOF*/
        -:        -: 9838:/*EOF*/
        -:        -: 9839:/*EOF*/
        -:        -: 9840:/*EOF*/
        -:        -: 9841:/*EOF*/
        -:        -: 9842:/*EOF*/
        -:        -: 9843:/*EOF*/
        -:        -: 9844:/*EOF*/
        -:        -: 9845:/*EOF*/
        -:        -: 9846:/*EOF*/
        -:        -: 9847:/*EOF*/
        -:        -: 9848:/*EOF*/
        -:        -: 9849:/*EOF*/
        -:        -: 9850:/*EOF*/
        -:        -: 9851:/*EOF*/
        -:        -: 9852:/*EOF*/
        -:        -: 9853:/*EOF*/
        -:        -: 9854:/*EOF*/
        -:        -: 9855:/*EOF*/
        -:        -: 9856:/*EOF*/
        -:        -: 9857:/*EOF*/
        -:        -: 9858:/*EOF*/
        -:        -: 9859:/*EOF*/
        -:        -: 9860:/*EOF*/
        -:        -: 9861:/*EOF*/
        -:        -: 9862:/*EOF*/
        -:        -: 9863:/*EOF*/
        -:        -: 9864:/*EOF*/
        -:        -: 9865:/*EOF*/
        -:        -: 9866:/*EOF*/
        -:        -: 9867:/*EOF*/
        -:        -: 9868:/*EOF*/
        -:        -: 9869:/*EOF*/
        -:        -: 9870:/*EOF*/
        -:        -: 9871:/*EOF*/
        -:        -: 9872:/*EOF*/
        -:        -: 9873:/*EOF*/
        -:        -: 9874:/*EOF*/
        -:        -: 9875:/*EOF*/
        -:        -: 9876:/*EOF*/
        -:        -: 9877:/*EOF*/
        -:        -: 9878:/*EOF*/
        -:        -: 9879:/*EOF*/
        -:        -: 9880:/*EOF*/
        -:        -: 9881:/*EOF*/
        -:        -: 9882:/*EOF*/
        -:        -: 9883:/*EOF*/
        -:        -: 9884:/*EOF*/
        -:        -: 9885:/*EOF*/
        -:        -: 9886:/*EOF*/
        -:        -: 9887:/*EOF*/
        -:        -: 9888:/*EOF*/
        -:        -: 9889:/*EOF*/
        -:        -: 9890:/*EOF*/
        -:        -: 9891:/*EOF*/
        -:        -: 9892:/*EOF*/
        -:        -: 9893:/*EOF*/
        -:        -: 9894:/*EOF*/
        -:        -: 9895:/*EOF*/
        -:        -: 9896:/*EOF*/
        -:        -: 9897:/*EOF*/
        -:        -: 9898:/*EOF*/
        -:        -: 9899:/*EOF*/
        -:        -: 9900:/*EOF*/
        -:        -: 9901:/*EOF*/
        -:        -: 9902:/*EOF*/
        -:        -: 9903:/*EOF*/
        -:        -: 9904:/*EOF*/
        -:        -: 9905:/*EOF*/
        -:        -: 9906:/*EOF*/
        -:        -: 9907:/*EOF*/
        -:        -: 9908:/*EOF*/
        -:        -: 9909:/*EOF*/
        -:        -: 9910:/*EOF*/
        -:        -: 9911:/*EOF*/
        -:        -: 9912:/*EOF*/
        -:        -: 9913:/*EOF*/
        -:        -: 9914:/*EOF*/
        -:        -: 9915:/*EOF*/
        -:        -: 9916:/*EOF*/
        -:        -: 9917:/*EOF*/
        -:        -: 9918:/*EOF*/
        -:        -: 9919:/*EOF*/
        -:        -: 9920:/*EOF*/
        -:        -: 9921:/*EOF*/
        -:        -: 9922:/*EOF*/
        -:        -: 9923:/*EOF*/
        -:        -: 9924:/*EOF*/
        -:        -: 9925:/*EOF*/
        -:        -: 9926:/*EOF*/
        -:        -: 9927:/*EOF*/
        -:        -: 9928:/*EOF*/
        -:        -: 9929:/*EOF*/
        -:        -: 9930:/*EOF*/
        -:        -: 9931:/*EOF*/
        -:        -: 9932:/*EOF*/
        -:        -: 9933:/*EOF*/
        -:        -: 9934:/*EOF*/
        -:        -: 9935:/*EOF*/
        -:        -: 9936:/*EOF*/
        -:        -: 9937:/*EOF*/
        -:        -: 9938:/*EOF*/
        -:        -: 9939:/*EOF*/
        -:        -: 9940:/*EOF*/
        -:        -: 9941:/*EOF*/
        -:        -: 9942:/*EOF*/
        -:        -: 9943:/*EOF*/
        -:        -: 9944:/*EOF*/
        -:        -: 9945:/*EOF*/
        -:        -: 9946:/*EOF*/
        -:        -: 9947:/*EOF*/
        -:        -: 9948:/*EOF*/
        -:        -: 9949:/*EOF*/
        -:        -: 9950:/*EOF*/
        -:        -: 9951:/*EOF*/
        -:        -: 9952:/*EOF*/
        -:        -: 9953:/*EOF*/
        -:        -: 9954:/*EOF*/
        -:        -: 9955:/*EOF*/
        -:        -: 9956:/*EOF*/
        -:        -: 9957:/*EOF*/
        -:        -: 9958:/*EOF*/
        -:        -: 9959:/*EOF*/
        -:        -: 9960:/*EOF*/
        -:        -: 9961:/*EOF*/
        -:        -: 9962:/*EOF*/
        -:        -: 9963:/*EOF*/
        -:        -: 9964:/*EOF*/
        -:        -: 9965:/*EOF*/
        -:        -: 9966:/*EOF*/
        -:        -: 9967:/*EOF*/
        -:        -: 9968:/*EOF*/
        -:        -: 9969:/*EOF*/
        -:        -: 9970:/*EOF*/
        -:        -: 9971:/*EOF*/
        -:        -: 9972:/*EOF*/
        -:        -: 9973:/*EOF*/
        -:        -: 9974:/*EOF*/
        -:        -: 9975:/*EOF*/
        -:        -: 9976:/*EOF*/
        -:        -: 9977:/*EOF*/
        -:        -: 9978:/*EOF*/
        -:        -: 9979:/*EOF*/
        -:        -: 9980:/*EOF*/
        -:        -: 9981:/*EOF*/
        -:        -: 9982:/*EOF*/
        -:        -: 9983:/*EOF*/
        -:        -: 9984:/*EOF*/
        -:        -: 9985:/*EOF*/
        -:        -: 9986:/*EOF*/
        -:        -: 9987:/*EOF*/
        -:        -: 9988:/*EOF*/
        -:        -: 9989:/*EOF*/
        -:        -: 9990:/*EOF*/
        -:        -: 9991:/*EOF*/
        -:        -: 9992:/*EOF*/
        -:        -: 9993:/*EOF*/
        -:        -: 9994:/*EOF*/
        -:        -: 9995:/*EOF*/
        -:        -: 9996:/*EOF*/
        -:        -: 9997:/*EOF*/
        -:        -: 9998:/*EOF*/
        -:        -: 9999:/*EOF*/
        -:        -:10000:/*EOF*/
        -:        -:10001:/*EOF*/
        -:        -:10002:/*EOF*/
        -:        -:10003:/*EOF*/
        -:        -:10004:/*EOF*/
        -:        -:10005:/*EOF*/
        -:        -:10006:/*EOF*/
        -:        -:10007:/*EOF*/
        -:        -:10008:/*EOF*/
        -:        -:10009:/*EOF*/
        -:        -:10010:/*EOF*/
        -:        -:10011:/*EOF*/
        -:        -:10012:/*EOF*/
        -:        -:10013:/*EOF*/
        -:        -:10014:/*EOF*/
        -:        -:10015:/*EOF*/
        -:        -:10016:/*EOF*/
        -:        -:10017:/*EOF*/
        -:        -:10018:/*EOF*/
        -:        -:10019:/*EOF*/
        -:        -:10020:/*EOF*/
        -:        -:10021:/*EOF*/
        -:        -:10022:/*EOF*/
        -:        -:10023:/*EOF*/
        -:        -:10024:/*EOF*/
        -:        -:10025:/*EOF*/
        -:        -:10026:/*EOF*/
        -:        -:10027:/*EOF*/
        -:        -:10028:/*EOF*/
        -:        -:10029:/*EOF*/
        -:        -:10030:/*EOF*/
        -:        -:10031:/*EOF*/
        -:        -:10032:/*EOF*/
        -:        -:10033:/*EOF*/
        -:        -:10034:/*EOF*/
        -:        -:10035:/*EOF*/
        -:        -:10036:/*EOF*/
        -:        -:10037:/*EOF*/
        -:        -:10038:/*EOF*/
        -:        -:10039:/*EOF*/
        -:        -:10040:/*EOF*/
        -:        -:10041:/*EOF*/
        -:        -:10042:/*EOF*/
        -:        -:10043:/*EOF*/
        -:        -:10044:/*EOF*/
        -:        -:10045:/*EOF*/
        -:        -:10046:/*EOF*/
        -:        -:10047:/*EOF*/
        -:        -:10048:/*EOF*/
        -:        -:10049:/*EOF*/
        -:        -:10050:/*EOF*/
        -:        -:10051:/*EOF*/
        -:        -:10052:/*EOF*/
        -:        -:10053:/*EOF*/
        -:        -:10054:/*EOF*/
        -:        -:10055:/*EOF*/
        -:        -:10056:/*EOF*/
        -:        -:10057:/*EOF*/
        -:        -:10058:/*EOF*/
        -:        -:10059:/*EOF*/
        -:        -:10060:/*EOF*/
        -:        -:10061:/*EOF*/
        -:        -:10062:/*EOF*/
        -:        -:10063:/*EOF*/
        -:        -:10064:/*EOF*/
        -:        -:10065:/*EOF*/
        -:        -:10066:/*EOF*/
        -:        -:10067:/*EOF*/
        -:        -:10068:/*EOF*/
        -:        -:10069:/*EOF*/
        -:        -:10070:/*EOF*/
        -:        -:10071:/*EOF*/
        -:        -:10072:/*EOF*/
        -:        -:10073:/*EOF*/
        -:        -:10074:/*EOF*/
        -:        -:10075:/*EOF*/
        -:        -:10076:/*EOF*/
        -:        -:10077:/*EOF*/
        -:        -:10078:/*EOF*/
        -:        -:10079:/*EOF*/
        -:        -:10080:/*EOF*/
        -:        -:10081:/*EOF*/
        -:        -:10082:/*EOF*/
        -:        -:10083:/*EOF*/
        -:        -:10084:/*EOF*/
        -:        -:10085:/*EOF*/
        -:        -:10086:/*EOF*/
        -:        -:10087:/*EOF*/
        -:        -:10088:/*EOF*/
        -:        -:10089:/*EOF*/
        -:        -:10090:/*EOF*/
        -:        -:10091:/*EOF*/
        -:        -:10092:/*EOF*/
        -:        -:10093:/*EOF*/
        -:        -:10094:/*EOF*/
        -:        -:10095:/*EOF*/
        -:        -:10096:/*EOF*/
        -:        -:10097:/*EOF*/
        -:        -:10098:/*EOF*/
        -:        -:10099:/*EOF*/
        -:        -:10100:/*EOF*/
        -:        -:10101:/*EOF*/
        -:        -:10102:/*EOF*/
        -:        -:10103:/*EOF*/
        -:        -:10104:/*EOF*/
        -:        -:10105:/*EOF*/
        -:        -:10106:/*EOF*/
        -:        -:10107:/*EOF*/
        -:        -:10108:/*EOF*/
        -:        -:10109:/*EOF*/
        -:        -:10110:/*EOF*/
        -:        -:10111:/*EOF*/
        -:        -:10112:/*EOF*/
        -:        -:10113:/*EOF*/
        -:        -:10114:/*EOF*/
        -:        -:10115:/*EOF*/
        -:        -:10116:/*EOF*/
        -:        -:10117:/*EOF*/
        -:        -:10118:/*EOF*/
        -:        -:10119:/*EOF*/
        -:        -:10120:/*EOF*/
        -:        -:10121:/*EOF*/
        -:        -:10122:/*EOF*/
        -:        -:10123:/*EOF*/
        -:        -:10124:/*EOF*/
        -:        -:10125:/*EOF*/
        -:        -:10126:/*EOF*/
        -:        -:10127:/*EOF*/
        -:        -:10128:/*EOF*/
        -:        -:10129:/*EOF*/
        -:        -:10130:/*EOF*/
        -:        -:10131:/*EOF*/
        -:        -:10132:/*EOF*/
        -:        -:10133:/*EOF*/
        -:        -:10134:/*EOF*/
        -:        -:10135:/*EOF*/
        -:        -:10136:/*EOF*/
        -:        -:10137:/*EOF*/
        -:        -:10138:/*EOF*/
        -:        -:10139:/*EOF*/
        -:        -:10140:/*EOF*/
        -:        -:10141:/*EOF*/
        -:        -:10142:/*EOF*/
        -:        -:10143:/*EOF*/
        -:        -:10144:/*EOF*/
        -:        -:10145:/*EOF*/
        -:        -:10146:/*EOF*/
        -:        -:10147:/*EOF*/
        -:        -:10148:/*EOF*/
        -:        -:10149:/*EOF*/
        -:        -:10150:/*EOF*/
        -:        -:10151:/*EOF*/
        -:        -:10152:/*EOF*/
        -:        -:10153:/*EOF*/
        -:        -:10154:/*EOF*/
        -:        -:10155:/*EOF*/
        -:        -:10156:/*EOF*/
        -:        -:10157:/*EOF*/
        -:        -:10158:/*EOF*/
        -:        -:10159:/*EOF*/
        -:        -:10160:/*EOF*/
        -:        -:10161:/*EOF*/
        -:        -:10162:/*EOF*/
        -:        -:10163:/*EOF*/
        -:        -:10164:/*EOF*/
        -:        -:10165:/*EOF*/
        -:        -:10166:/*EOF*/
        -:        -:10167:/*EOF*/
        -:        -:10168:/*EOF*/
        -:        -:10169:/*EOF*/
        -:        -:10170:/*EOF*/
        -:        -:10171:/*EOF*/
        -:        -:10172:/*EOF*/
        -:        -:10173:/*EOF*/
        -:        -:10174:/*EOF*/
        -:        -:10175:/*EOF*/
        -:        -:10176:/*EOF*/
        -:        -:10177:/*EOF*/
        -:        -:10178:/*EOF*/
        -:        -:10179:/*EOF*/
        -:        -:10180:/*EOF*/
        -:        -:10181:/*EOF*/
        -:        -:10182:/*EOF*/
        -:        -:10183:/*EOF*/
        -:        -:10184:/*EOF*/
        -:        -:10185:/*EOF*/
        -:        -:10186:/*EOF*/
        -:        -:10187:/*EOF*/
        -:        -:10188:/*EOF*/
        -:        -:10189:/*EOF*/
        -:        -:10190:/*EOF*/
        -:        -:10191:/*EOF*/
        -:        -:10192:/*EOF*/
        -:        -:10193:/*EOF*/
        -:        -:10194:/*EOF*/
        -:        -:10195:/*EOF*/
        -:        -:10196:/*EOF*/
        -:        -:10197:/*EOF*/
        -:        -:10198:/*EOF*/
        -:        -:10199:/*EOF*/
        -:        -:10200:/*EOF*/
        -:        -:10201:/*EOF*/
        -:        -:10202:/*EOF*/
        -:        -:10203:/*EOF*/
        -:        -:10204:/*EOF*/
        -:        -:10205:/*EOF*/
        -:        -:10206:/*EOF*/
        -:        -:10207:/*EOF*/
        -:        -:10208:/*EOF*/
        -:        -:10209:/*EOF*/
        -:        -:10210:/*EOF*/
        -:        -:10211:/*EOF*/
        -:        -:10212:/*EOF*/
        -:        -:10213:/*EOF*/
        -:        -:10214:/*EOF*/
        -:        -:10215:/*EOF*/
        -:        -:10216:/*EOF*/
        -:        -:10217:/*EOF*/
        -:        -:10218:/*EOF*/
        -:        -:10219:/*EOF*/
        -:        -:10220:/*EOF*/
        -:        -:10221:/*EOF*/
        -:        -:10222:/*EOF*/
        -:        -:10223:/*EOF*/
        -:        -:10224:/*EOF*/
        -:        -:10225:/*EOF*/
        -:        -:10226:/*EOF*/
        -:        -:10227:/*EOF*/
        -:        -:10228:/*EOF*/
        -:        -:10229:/*EOF*/
        -:        -:10230:/*EOF*/
        -:        -:10231:/*EOF*/
        -:        -:10232:/*EOF*/
        -:        -:10233:/*EOF*/
        -:        -:10234:/*EOF*/
        -:        -:10235:/*EOF*/
        -:        -:10236:/*EOF*/
        -:        -:10237:/*EOF*/
        -:        -:10238:/*EOF*/
        -:        -:10239:/*EOF*/
        -:        -:10240:/*EOF*/
        -:        -:10241:/*EOF*/
        -:        -:10242:/*EOF*/
        -:        -:10243:/*EOF*/
        -:        -:10244:/*EOF*/
        -:        -:10245:/*EOF*/
        -:        -:10246:/*EOF*/
        -:        -:10247:/*EOF*/
        -:        -:10248:/*EOF*/
        -:        -:10249:/*EOF*/
        -:        -:10250:/*EOF*/
        -:        -:10251:/*EOF*/
        -:        -:10252:/*EOF*/
        -:        -:10253:/*EOF*/
        -:        -:10254:/*EOF*/
        -:        -:10255:/*EOF*/
        -:        -:10256:/*EOF*/
        -:        -:10257:/*EOF*/
        -:        -:10258:/*EOF*/
        -:        -:10259:/*EOF*/
        -:        -:10260:/*EOF*/
        -:        -:10261:/*EOF*/
        -:        -:10262:/*EOF*/
        -:        -:10263:/*EOF*/
        -:        -:10264:/*EOF*/
        -:        -:10265:/*EOF*/
        -:        -:10266:/*EOF*/
        -:        -:10267:/*EOF*/
        -:        -:10268:/*EOF*/
        -:        -:10269:/*EOF*/
        -:        -:10270:/*EOF*/
        -:        -:10271:/*EOF*/
        -:        -:10272:/*EOF*/
        -:        -:10273:/*EOF*/
        -:        -:10274:/*EOF*/
        -:        -:10275:/*EOF*/
        -:        -:10276:/*EOF*/
        -:        -:10277:/*EOF*/
        -:        -:10278:/*EOF*/
        -:        -:10279:/*EOF*/
        -:        -:10280:/*EOF*/
        -:        -:10281:/*EOF*/
        -:        -:10282:/*EOF*/
        -:        -:10283:/*EOF*/
        -:        -:10284:/*EOF*/
        -:        -:10285:/*EOF*/
        -:        -:10286:/*EOF*/
        -:        -:10287:/*EOF*/
        -:        -:10288:/*EOF*/
        -:        -:10289:/*EOF*/
        -:        -:10290:/*EOF*/
        -:        -:10291:/*EOF*/
        -:        -:10292:/*EOF*/
        -:        -:10293:/*EOF*/
        -:        -:10294:/*EOF*/
        -:        -:10295:/*EOF*/
        -:        -:10296:/*EOF*/
        -:        -:10297:/*EOF*/
        -:        -:10298:/*EOF*/
        -:        -:10299:/*EOF*/
        -:        -:10300:/*EOF*/
        -:        -:10301:/*EOF*/
        -:        -:10302:/*EOF*/
        -:        -:10303:/*EOF*/
        -:        -:10304:/*EOF*/
        -:        -:10305:/*EOF*/
        -:        -:10306:/*EOF*/
        -:        -:10307:/*EOF*/
        -:        -:10308:/*EOF*/
        -:        -:10309:/*EOF*/
        -:        -:10310:/*EOF*/
        -:        -:10311:/*EOF*/
        -:        -:10312:/*EOF*/
        -:        -:10313:/*EOF*/
        -:        -:10314:/*EOF*/
        -:        -:10315:/*EOF*/
        -:        -:10316:/*EOF*/
        -:        -:10317:/*EOF*/
        -:        -:10318:/*EOF*/
        -:        -:10319:/*EOF*/
        -:        -:10320:/*EOF*/
        -:        -:10321:/*EOF*/
        -:        -:10322:/*EOF*/
        -:        -:10323:/*EOF*/
        -:        -:10324:/*EOF*/
        -:        -:10325:/*EOF*/
        -:        -:10326:/*EOF*/
        -:        -:10327:/*EOF*/
        -:        -:10328:/*EOF*/
        -:        -:10329:/*EOF*/
        -:        -:10330:/*EOF*/
        -:        -:10331:/*EOF*/
        -:        -:10332:/*EOF*/
        -:        -:10333:/*EOF*/
        -:        -:10334:/*EOF*/
        -:        -:10335:/*EOF*/
        -:        -:10336:/*EOF*/
        -:        -:10337:/*EOF*/
        -:        -:10338:/*EOF*/
        -:        -:10339:/*EOF*/
        -:        -:10340:/*EOF*/
        -:        -:10341:/*EOF*/
        -:        -:10342:/*EOF*/
        -:        -:10343:/*EOF*/
        -:        -:10344:/*EOF*/
        -:        -:10345:/*EOF*/
        -:        -:10346:/*EOF*/
        -:        -:10347:/*EOF*/
        -:        -:10348:/*EOF*/
        -:        -:10349:/*EOF*/
        -:        -:10350:/*EOF*/
        -:        -:10351:/*EOF*/
        -:        -:10352:/*EOF*/
        -:        -:10353:/*EOF*/
        -:        -:10354:/*EOF*/
        -:        -:10355:/*EOF*/
        -:        -:10356:/*EOF*/
        -:        -:10357:/*EOF*/
        -:        -:10358:/*EOF*/
        -:        -:10359:/*EOF*/
        -:        -:10360:/*EOF*/
        -:        -:10361:/*EOF*/
        -:        -:10362:/*EOF*/
        -:        -:10363:/*EOF*/
        -:        -:10364:/*EOF*/
        -:        -:10365:/*EOF*/
        -:        -:10366:/*EOF*/
        -:        -:10367:/*EOF*/
        -:        -:10368:/*EOF*/
        -:        -:10369:/*EOF*/
        -:        -:10370:/*EOF*/
        -:        -:10371:/*EOF*/
        -:        -:10372:/*EOF*/
        -:        -:10373:/*EOF*/
        -:        -:10374:/*EOF*/
        -:        -:10375:/*EOF*/
        -:        -:10376:/*EOF*/
        -:        -:10377:/*EOF*/
        -:        -:10378:/*EOF*/
        -:        -:10379:/*EOF*/
        -:        -:10380:/*EOF*/
        -:        -:10381:/*EOF*/
        -:        -:10382:/*EOF*/
        -:        -:10383:/*EOF*/
        -:        -:10384:/*EOF*/
        -:        -:10385:/*EOF*/
        -:        -:10386:/*EOF*/
        -:        -:10387:/*EOF*/
        -:        -:10388:/*EOF*/
        -:        -:10389:/*EOF*/
        -:        -:10390:/*EOF*/
        -:        -:10391:/*EOF*/
        -:        -:10392:/*EOF*/
        -:        -:10393:/*EOF*/
        -:        -:10394:/*EOF*/
        -:        -:10395:/*EOF*/
        -:        -:10396:/*EOF*/
        -:        -:10397:/*EOF*/
        -:        -:10398:/*EOF*/
        -:        -:10399:/*EOF*/
        -:        -:10400:/*EOF*/
        -:        -:10401:/*EOF*/
        -:        -:10402:/*EOF*/
        -:        -:10403:/*EOF*/
        -:        -:10404:/*EOF*/
        -:        -:10405:/*EOF*/
        -:        -:10406:/*EOF*/
        -:        -:10407:/*EOF*/
        -:        -:10408:/*EOF*/
        -:        -:10409:/*EOF*/
        -:        -:10410:/*EOF*/
        -:        -:10411:/*EOF*/
        -:        -:10412:/*EOF*/
        -:        -:10413:/*EOF*/
        -:        -:10414:/*EOF*/
        -:        -:10415:/*EOF*/
        -:        -:10416:/*EOF*/
        -:        -:10417:/*EOF*/
        -:        -:10418:/*EOF*/
        -:        -:10419:/*EOF*/
        -:        -:10420:/*EOF*/
        -:        -:10421:/*EOF*/
        -:        -:10422:/*EOF*/
        -:        -:10423:/*EOF*/
        -:        -:10424:/*EOF*/
        -:        -:10425:/*EOF*/
        -:        -:10426:/*EOF*/
        -:        -:10427:/*EOF*/
        -:        -:10428:/*EOF*/
        -:        -:10429:/*EOF*/
        -:        -:10430:/*EOF*/
        -:        -:10431:/*EOF*/
        -:        -:10432:/*EOF*/
        -:        -:10433:/*EOF*/
        -:        -:10434:/*EOF*/
        -:        -:10435:/*EOF*/
        -:        -:10436:/*EOF*/
        -:        -:10437:/*EOF*/
        -:        -:10438:/*EOF*/
        -:        -:10439:/*EOF*/
        -:        -:10440:/*EOF*/
        -:        -:10441:/*EOF*/
        -:        -:10442:/*EOF*/
        -:        -:10443:/*EOF*/
        -:        -:10444:/*EOF*/
        -:        -:10445:/*EOF*/
        -:        -:10446:/*EOF*/
        -:        -:10447:/*EOF*/
        -:        -:10448:/*EOF*/
        -:        -:10449:/*EOF*/
        -:        -:10450:/*EOF*/
        -:        -:10451:/*EOF*/
        -:        -:10452:/*EOF*/
        -:        -:10453:/*EOF*/
        -:        -:10454:/*EOF*/
        -:        -:10455:/*EOF*/
        -:        -:10456:/*EOF*/
        -:        -:10457:/*EOF*/
        -:        -:10458:/*EOF*/
        -:        -:10459:/*EOF*/
        -:        -:10460:/*EOF*/
        -:        -:10461:/*EOF*/
        -:        -:10462:/*EOF*/
        -:        -:10463:/*EOF*/
        -:        -:10464:/*EOF*/
        -:        -:10465:/*EOF*/
        -:        -:10466:/*EOF*/
        -:        -:10467:/*EOF*/
        -:        -:10468:/*EOF*/
        -:        -:10469:/*EOF*/
        -:        -:10470:/*EOF*/
        -:        -:10471:/*EOF*/
        -:        -:10472:/*EOF*/
        -:        -:10473:/*EOF*/
        -:        -:10474:/*EOF*/
        -:        -:10475:/*EOF*/
        -:        -:10476:/*EOF*/
        -:        -:10477:/*EOF*/
        -:        -:10478:/*EOF*/
        -:        -:10479:/*EOF*/
        -:        -:10480:/*EOF*/
        -:        -:10481:/*EOF*/
        -:        -:10482:/*EOF*/
        -:        -:10483:/*EOF*/
        -:        -:10484:/*EOF*/
        -:        -:10485:/*EOF*/
        -:        -:10486:/*EOF*/
        -:        -:10487:/*EOF*/
        -:        -:10488:/*EOF*/
        -:        -:10489:/*EOF*/
        -:        -:10490:/*EOF*/
        -:        -:10491:/*EOF*/
        -:        -:10492:/*EOF*/
        -:        -:10493:/*EOF*/
        -:        -:10494:/*EOF*/
        -:        -:10495:/*EOF*/
        -:        -:10496:/*EOF*/
        -:        -:10497:/*EOF*/
        -:        -:10498:/*EOF*/
        -:        -:10499:/*EOF*/
        -:        -:10500:/*EOF*/
        -:        -:10501:/*EOF*/
        -:        -:10502:/*EOF*/
        -:        -:10503:/*EOF*/
        -:        -:10504:/*EOF*/
        -:        -:10505:/*EOF*/
        -:        -:10506:/*EOF*/
        -:        -:10507:/*EOF*/
        -:        -:10508:/*EOF*/
        -:        -:10509:/*EOF*/
        -:        -:10510:/*EOF*/
        -:        -:10511:/*EOF*/
        -:        -:10512:/*EOF*/
        -:        -:10513:/*EOF*/
        -:        -:10514:/*EOF*/
        -:        -:10515:/*EOF*/
        -:        -:10516:/*EOF*/
        -:        -:10517:/*EOF*/
        -:        -:10518:/*EOF*/
        -:        -:10519:/*EOF*/
        -:        -:10520:/*EOF*/
        -:        -:10521:/*EOF*/
        -:        -:10522:/*EOF*/
        -:        -:10523:/*EOF*/
        -:        -:10524:/*EOF*/
        -:        -:10525:/*EOF*/
        -:        -:10526:/*EOF*/
        -:        -:10527:/*EOF*/
        -:        -:10528:/*EOF*/
        -:        -:10529:/*EOF*/
        -:        -:10530:/*EOF*/
        -:        -:10531:/*EOF*/
        -:        -:10532:/*EOF*/
        -:        -:10533:/*EOF*/
        -:        -:10534:/*EOF*/
        -:        -:10535:/*EOF*/
        -:        -:10536:/*EOF*/
        -:        -:10537:/*EOF*/
        -:        -:10538:/*EOF*/
        -:        -:10539:/*EOF*/
        -:        -:10540:/*EOF*/
        -:        -:10541:/*EOF*/
        -:        -:10542:/*EOF*/
        -:        -:10543:/*EOF*/
        -:        -:10544:/*EOF*/
        -:        -:10545:/*EOF*/
        -:        -:10546:/*EOF*/
        -:        -:10547:/*EOF*/
        -:        -:10548:/*EOF*/
        -:        -:10549:/*EOF*/
        -:        -:10550:/*EOF*/
        -:        -:10551:/*EOF*/
        -:        -:10552:/*EOF*/
        -:        -:10553:/*EOF*/
        -:        -:10554:/*EOF*/
        -:        -:10555:/*EOF*/
        -:        -:10556:/*EOF*/
        -:        -:10557:/*EOF*/
        -:        -:10558:/*EOF*/
        -:        -:10559:/*EOF*/
        -:        -:10560:/*EOF*/
        -:        -:10561:/*EOF*/
        -:        -:10562:/*EOF*/
        -:        -:10563:/*EOF*/
        -:        -:10564:/*EOF*/
        -:        -:10565:/*EOF*/
        -:        -:10566:/*EOF*/
        -:        -:10567:/*EOF*/
        -:        -:10568:/*EOF*/
        -:        -:10569:/*EOF*/
        -:        -:10570:/*EOF*/
        -:        -:10571:/*EOF*/
        -:        -:10572:/*EOF*/
        -:        -:10573:/*EOF*/
        -:        -:10574:/*EOF*/
        -:        -:10575:/*EOF*/
        -:        -:10576:/*EOF*/
        -:        -:10577:/*EOF*/
        -:        -:10578:/*EOF*/
        -:        -:10579:/*EOF*/
        -:        -:10580:/*EOF*/
        -:        -:10581:/*EOF*/
        -:        -:10582:/*EOF*/
        -:        -:10583:/*EOF*/
        -:        -:10584:/*EOF*/
        -:        -:10585:/*EOF*/
        -:        -:10586:/*EOF*/
        -:        -:10587:/*EOF*/
        -:        -:10588:/*EOF*/
        -:        -:10589:/*EOF*/
        -:        -:10590:/*EOF*/
        -:        -:10591:/*EOF*/
        -:        -:10592:/*EOF*/
        -:        -:10593:/*EOF*/
        -:        -:10594:/*EOF*/
        -:        -:10595:/*EOF*/
        -:        -:10596:/*EOF*/
        -:        -:10597:/*EOF*/
        -:        -:10598:/*EOF*/
        -:        -:10599:/*EOF*/
        -:        -:10600:/*EOF*/
        -:        -:10601:/*EOF*/
        -:        -:10602:/*EOF*/
        -:        -:10603:/*EOF*/
        -:        -:10604:/*EOF*/
        -:        -:10605:/*EOF*/
        -:        -:10606:/*EOF*/
        -:        -:10607:/*EOF*/
        -:        -:10608:/*EOF*/
        -:        -:10609:/*EOF*/
        -:        -:10610:/*EOF*/
        -:        -:10611:/*EOF*/
        -:        -:10612:/*EOF*/
        -:        -:10613:/*EOF*/
        -:        -:10614:/*EOF*/
        -:        -:10615:/*EOF*/
        -:        -:10616:/*EOF*/
        -:        -:10617:/*EOF*/
        -:        -:10618:/*EOF*/
        -:        -:10619:/*EOF*/
        -:        -:10620:/*EOF*/
        -:        -:10621:/*EOF*/
        -:        -:10622:/*EOF*/
        -:        -:10623:/*EOF*/
        -:        -:10624:/*EOF*/
        -:        -:10625:/*EOF*/
        -:        -:10626:/*EOF*/
        -:        -:10627:/*EOF*/
        -:        -:10628:/*EOF*/
        -:        -:10629:/*EOF*/
        -:        -:10630:/*EOF*/
        -:        -:10631:/*EOF*/
        -:        -:10632:/*EOF*/
        -:        -:10633:/*EOF*/
        -:        -:10634:/*EOF*/
        -:        -:10635:/*EOF*/
        -:        -:10636:/*EOF*/
        -:        -:10637:/*EOF*/
        -:        -:10638:/*EOF*/
        -:        -:10639:/*EOF*/
        -:        -:10640:/*EOF*/
        -:        -:10641:/*EOF*/
        -:        -:10642:/*EOF*/
        -:        -:10643:/*EOF*/
        -:        -:10644:/*EOF*/
        -:        -:10645:/*EOF*/
        -:        -:10646:/*EOF*/
        -:        -:10647:/*EOF*/
        -:        -:10648:/*EOF*/
        -:        -:10649:/*EOF*/
        -:        -:10650:/*EOF*/
        -:        -:10651:/*EOF*/
        -:        -:10652:/*EOF*/
        -:        -:10653:/*EOF*/
        -:        -:10654:/*EOF*/
        -:        -:10655:/*EOF*/
        -:        -:10656:/*EOF*/
        -:        -:10657:/*EOF*/
        -:        -:10658:/*EOF*/
        -:        -:10659:/*EOF*/
        -:        -:10660:/*EOF*/
        -:        -:10661:/*EOF*/
        -:        -:10662:/*EOF*/
        -:        -:10663:/*EOF*/
        -:        -:10664:/*EOF*/
        -:        -:10665:/*EOF*/
        -:        -:10666:/*EOF*/
        -:        -:10667:/*EOF*/
        -:        -:10668:/*EOF*/
        -:        -:10669:/*EOF*/
        -:        -:10670:/*EOF*/
        -:        -:10671:/*EOF*/
        -:        -:10672:/*EOF*/
        -:        -:10673:/*EOF*/
        -:        -:10674:/*EOF*/
        -:        -:10675:/*EOF*/
        -:        -:10676:/*EOF*/
        -:        -:10677:/*EOF*/
        -:        -:10678:/*EOF*/
        -:        -:10679:/*EOF*/
        -:        -:10680:/*EOF*/
        -:        -:10681:/*EOF*/
        -:        -:10682:/*EOF*/
        -:        -:10683:/*EOF*/
        -:        -:10684:/*EOF*/
        -:        -:10685:/*EOF*/
        -:        -:10686:/*EOF*/
        -:        -:10687:/*EOF*/
        -:        -:10688:/*EOF*/
        -:        -:10689:/*EOF*/
        -:        -:10690:/*EOF*/
        -:        -:10691:/*EOF*/
        -:        -:10692:/*EOF*/
        -:        -:10693:/*EOF*/
        -:        -:10694:/*EOF*/
        -:        -:10695:/*EOF*/
        -:        -:10696:/*EOF*/
        -:        -:10697:/*EOF*/
        -:        -:10698:/*EOF*/
        -:        -:10699:/*EOF*/
        -:        -:10700:/*EOF*/
        -:        -:10701:/*EOF*/
        -:        -:10702:/*EOF*/
        -:        -:10703:/*EOF*/
        -:        -:10704:/*EOF*/
        -:        -:10705:/*EOF*/
        -:        -:10706:/*EOF*/
        -:        -:10707:/*EOF*/
        -:        -:10708:/*EOF*/
        -:        -:10709:/*EOF*/
        -:        -:10710:/*EOF*/
        -:        -:10711:/*EOF*/
        -:        -:10712:/*EOF*/
        -:        -:10713:/*EOF*/
        -:        -:10714:/*EOF*/
        -:        -:10715:/*EOF*/
        -:        -:10716:/*EOF*/
        -:        -:10717:/*EOF*/
        -:        -:10718:/*EOF*/
        -:        -:10719:/*EOF*/
        -:        -:10720:/*EOF*/
        -:        -:10721:/*EOF*/
        -:        -:10722:/*EOF*/
        -:        -:10723:/*EOF*/
        -:        -:10724:/*EOF*/
        -:        -:10725:/*EOF*/
        -:        -:10726:/*EOF*/
        -:        -:10727:/*EOF*/
        -:        -:10728:/*EOF*/
        -:        -:10729:/*EOF*/
        -:        -:10730:/*EOF*/
        -:        -:10731:/*EOF*/
        -:        -:10732:/*EOF*/
        -:        -:10733:/*EOF*/
        -:        -:10734:/*EOF*/
        -:        -:10735:/*EOF*/
        -:        -:10736:/*EOF*/
        -:        -:10737:/*EOF*/
        -:        -:10738:/*EOF*/
        -:        -:10739:/*EOF*/
        -:        -:10740:/*EOF*/
        -:        -:10741:/*EOF*/
        -:        -:10742:/*EOF*/
        -:        -:10743:/*EOF*/
        -:        -:10744:/*EOF*/
        -:        -:10745:/*EOF*/
        -:        -:10746:/*EOF*/
        -:        -:10747:/*EOF*/
        -:        -:10748:/*EOF*/
        -:        -:10749:/*EOF*/
        -:        -:10750:/*EOF*/
        -:        -:10751:/*EOF*/
        -:        -:10752:/*EOF*/
        -:        -:10753:/*EOF*/
        -:        -:10754:/*EOF*/
        -:        -:10755:/*EOF*/
        -:        -:10756:/*EOF*/
        -:        -:10757:/*EOF*/
        -:        -:10758:/*EOF*/
        -:        -:10759:/*EOF*/
        -:        -:10760:/*EOF*/
        -:        -:10761:/*EOF*/
        -:        -:10762:/*EOF*/
        -:        -:10763:/*EOF*/
        -:        -:10764:/*EOF*/
        -:        -:10765:/*EOF*/
        -:        -:10766:/*EOF*/
        -:        -:10767:/*EOF*/
        -:        -:10768:/*EOF*/
        -:        -:10769:/*EOF*/
        -:        -:10770:/*EOF*/
        -:        -:10771:/*EOF*/
        -:        -:10772:/*EOF*/
        -:        -:10773:/*EOF*/
        -:        -:10774:/*EOF*/
        -:        -:10775:/*EOF*/
        -:        -:10776:/*EOF*/
        -:        -:10777:/*EOF*/
        -:        -:10778:/*EOF*/
        -:        -:10779:/*EOF*/
        -:        -:10780:/*EOF*/
        -:        -:10781:/*EOF*/
        -:        -:10782:/*EOF*/
        -:        -:10783:/*EOF*/
        -:        -:10784:/*EOF*/
        -:        -:10785:/*EOF*/
        -:        -:10786:/*EOF*/
        -:        -:10787:/*EOF*/
        -:        -:10788:/*EOF*/
        -:        -:10789:/*EOF*/
        -:        -:10790:/*EOF*/
        -:        -:10791:/*EOF*/
        -:        -:10792:/*EOF*/
        -:        -:10793:/*EOF*/
        -:        -:10794:/*EOF*/
        -:        -:10795:/*EOF*/
        -:        -:10796:/*EOF*/
        -:        -:10797:/*EOF*/
        -:        -:10798:/*EOF*/
        -:        -:10799:/*EOF*/
        -:        -:10800:/*EOF*/
        -:        -:10801:/*EOF*/
        -:        -:10802:/*EOF*/
        -:        -:10803:/*EOF*/
        -:        -:10804:/*EOF*/
        -:        -:10805:/*EOF*/
        -:        -:10806:/*EOF*/
        -:        -:10807:/*EOF*/
        -:        -:10808:/*EOF*/
        -:        -:10809:/*EOF*/
        -:        -:10810:/*EOF*/
        -:        -:10811:/*EOF*/
        -:        -:10812:/*EOF*/
        -:        -:10813:/*EOF*/
        -:        -:10814:/*EOF*/
        -:        -:10815:/*EOF*/
        -:        -:10816:/*EOF*/
        -:        -:10817:/*EOF*/
        -:        -:10818:/*EOF*/
        -:        -:10819:/*EOF*/
        -:        -:10820:/*EOF*/
        -:        -:10821:/*EOF*/
        -:        -:10822:/*EOF*/
        -:        -:10823:/*EOF*/
        -:        -:10824:/*EOF*/
        -:        -:10825:/*EOF*/
        -:        -:10826:/*EOF*/
        -:        -:10827:/*EOF*/
        -:        -:10828:/*EOF*/
        -:        -:10829:/*EOF*/
        -:        -:10830:/*EOF*/
        -:        -:10831:/*EOF*/
        -:        -:10832:/*EOF*/
        -:        -:10833:/*EOF*/
        -:        -:10834:/*EOF*/
        -:        -:10835:/*EOF*/
        -:        -:10836:/*EOF*/
        -:        -:10837:/*EOF*/
        -:        -:10838:/*EOF*/
        -:        -:10839:/*EOF*/
        -:        -:10840:/*EOF*/
        -:        -:10841:/*EOF*/
        -:        -:10842:/*EOF*/
        -:        -:10843:/*EOF*/
        -:        -:10844:/*EOF*/
        -:        -:10845:/*EOF*/
        -:        -:10846:/*EOF*/
        -:        -:10847:/*EOF*/
        -:        -:10848:/*EOF*/
        -:        -:10849:/*EOF*/
        -:        -:10850:/*EOF*/
        -:        -:10851:/*EOF*/
        -:        -:10852:/*EOF*/
        -:        -:10853:/*EOF*/
        -:        -:10854:/*EOF*/
        -:        -:10855:/*EOF*/
        -:        -:10856:/*EOF*/
        -:        -:10857:/*EOF*/
        -:        -:10858:/*EOF*/
        -:        -:10859:/*EOF*/
        -:        -:10860:/*EOF*/
        -:        -:10861:/*EOF*/
        -:        -:10862:/*EOF*/
        -:        -:10863:/*EOF*/
        -:        -:10864:/*EOF*/
        -:        -:10865:/*EOF*/
        -:        -:10866:/*EOF*/
        -:        -:10867:/*EOF*/
        -:        -:10868:/*EOF*/
        -:        -:10869:/*EOF*/
        -:        -:10870:/*EOF*/
        -:        -:10871:/*EOF*/
        -:        -:10872:/*EOF*/
        -:        -:10873:/*EOF*/
        -:        -:10874:/*EOF*/
        -:        -:10875:/*EOF*/
        -:        -:10876:/*EOF*/
        -:        -:10877:/*EOF*/
        -:        -:10878:/*EOF*/
        -:        -:10879:/*EOF*/
        -:        -:10880:/*EOF*/
        -:        -:10881:/*EOF*/
        -:        -:10882:/*EOF*/
        -:        -:10883:/*EOF*/
        -:        -:10884:/*EOF*/
        -:        -:10885:/*EOF*/
        -:        -:10886:/*EOF*/
        -:        -:10887:/*EOF*/
        -:        -:10888:/*EOF*/
        -:        -:10889:/*EOF*/
        -:        -:10890:/*EOF*/
        -:        -:10891:/*EOF*/
        -:        -:10892:/*EOF*/
        -:        -:10893:/*EOF*/
        -:        -:10894:/*EOF*/
        -:        -:10895:/*EOF*/
        -:        -:10896:/*EOF*/
        -:        -:10897:/*EOF*/
        -:        -:10898:/*EOF*/
        -:        -:10899:/*EOF*/
        -:        -:10900:/*EOF*/
        -:        -:10901:/*EOF*/
        -:        -:10902:/*EOF*/
        -:        -:10903:/*EOF*/
        -:        -:10904:/*EOF*/
        -:        -:10905:/*EOF*/
        -:        -:10906:/*EOF*/
        -:        -:10907:/*EOF*/
        -:        -:10908:/*EOF*/
        -:        -:10909:/*EOF*/
        -:        -:10910:/*EOF*/
        -:        -:10911:/*EOF*/
        -:        -:10912:/*EOF*/
        -:        -:10913:/*EOF*/
        -:        -:10914:/*EOF*/
        -:        -:10915:/*EOF*/
        -:        -:10916:/*EOF*/
        -:        -:10917:/*EOF*/
        -:        -:10918:/*EOF*/
        -:        -:10919:/*EOF*/
        -:        -:10920:/*EOF*/
        -:        -:10921:/*EOF*/
        -:        -:10922:/*EOF*/
        -:        -:10923:/*EOF*/
        -:        -:10924:/*EOF*/
        -:        -:10925:/*EOF*/
        -:        -:10926:/*EOF*/
        -:        -:10927:/*EOF*/
        -:        -:10928:/*EOF*/
        -:        -:10929:/*EOF*/
        -:        -:10930:/*EOF*/
        -:        -:10931:/*EOF*/
        -:        -:10932:/*EOF*/
        -:        -:10933:/*EOF*/
        -:        -:10934:/*EOF*/
        -:        -:10935:/*EOF*/
        -:        -:10936:/*EOF*/
        -:        -:10937:/*EOF*/
        -:        -:10938:/*EOF*/
        -:        -:10939:/*EOF*/
        -:        -:10940:/*EOF*/
        -:        -:10941:/*EOF*/
        -:        -:10942:/*EOF*/
        -:        -:10943:/*EOF*/
        -:        -:10944:/*EOF*/
        -:        -:10945:/*EOF*/
        -:        -:10946:/*EOF*/
        -:        -:10947:/*EOF*/
        -:        -:10948:/*EOF*/
        -:        -:10949:/*EOF*/
        -:        -:10950:/*EOF*/
        -:        -:10951:/*EOF*/
        -:        -:10952:/*EOF*/
        -:        -:10953:/*EOF*/
        -:        -:10954:/*EOF*/
        -:        -:10955:/*EOF*/
        -:        -:10956:/*EOF*/
        -:        -:10957:/*EOF*/
        -:        -:10958:/*EOF*/
        -:        -:10959:/*EOF*/
        -:        -:10960:/*EOF*/
        -:        -:10961:/*EOF*/
        -:        -:10962:/*EOF*/
        -:        -:10963:/*EOF*/
        -:        -:10964:/*EOF*/
        -:        -:10965:/*EOF*/
        -:        -:10966:/*EOF*/
        -:        -:10967:/*EOF*/
        -:        -:10968:/*EOF*/
        -:        -:10969:/*EOF*/
        -:        -:10970:/*EOF*/
        -:        -:10971:/*EOF*/
        -:        -:10972:/*EOF*/
        -:        -:10973:/*EOF*/
        -:        -:10974:/*EOF*/
        -:        -:10975:/*EOF*/
        -:        -:10976:/*EOF*/
        -:        -:10977:/*EOF*/
        -:        -:10978:/*EOF*/
        -:        -:10979:/*EOF*/
        -:        -:10980:/*EOF*/
        -:        -:10981:/*EOF*/
        -:        -:10982:/*EOF*/
        -:        -:10983:/*EOF*/
        -:        -:10984:/*EOF*/
        -:        -:10985:/*EOF*/
        -:        -:10986:/*EOF*/
        -:        -:10987:/*EOF*/
        -:        -:10988:/*EOF*/
        -:        -:10989:/*EOF*/
        -:        -:10990:/*EOF*/
        -:        -:10991:/*EOF*/
        -:        -:10992:/*EOF*/
        -:        -:10993:/*EOF*/
        -:        -:10994:/*EOF*/
        -:        -:10995:/*EOF*/
        -:        -:10996:/*EOF*/
        -:        -:10997:/*EOF*/
        -:        -:10998:/*EOF*/
        -:        -:10999:/*EOF*/
        -:        -:11000:/*EOF*/
        -:        -:11001:/*EOF*/
        -:        -:11002:/*EOF*/
        -:        -:11003:/*EOF*/
        -:        -:11004:/*EOF*/
        -:        -:11005:/*EOF*/
        -:        -:11006:/*EOF*/
        -:        -:11007:/*EOF*/
        -:        -:11008:/*EOF*/
        -:        -:11009:/*EOF*/
        -:        -:11010:/*EOF*/
        -:        -:11011:/*EOF*/
        -:        -:11012:/*EOF*/
        -:        -:11013:/*EOF*/
        -:        -:11014:/*EOF*/
        -:        -:11015:/*EOF*/
        -:        -:11016:/*EOF*/
        -:        -:11017:/*EOF*/
        -:        -:11018:/*EOF*/
        -:        -:11019:/*EOF*/
        -:        -:11020:/*EOF*/
        -:        -:11021:/*EOF*/
        -:        -:11022:/*EOF*/
        -:        -:11023:/*EOF*/
        -:        -:11024:/*EOF*/
        -:        -:11025:/*EOF*/
        -:        -:11026:/*EOF*/
        -:        -:11027:/*EOF*/
        -:        -:11028:/*EOF*/
        -:        -:11029:/*EOF*/
        -:        -:11030:/*EOF*/
        -:        -:11031:/*EOF*/
        -:        -:11032:/*EOF*/
        -:        -:11033:/*EOF*/
        -:        -:11034:/*EOF*/
        -:        -:11035:/*EOF*/
        -:        -:11036:/*EOF*/
        -:        -:11037:/*EOF*/
        -:        -:11038:/*EOF*/
        -:        -:11039:/*EOF*/
        -:        -:11040:/*EOF*/
        -:        -:11041:/*EOF*/
        -:        -:11042:/*EOF*/
        -:        -:11043:/*EOF*/
        -:        -:11044:/*EOF*/
        -:        -:11045:/*EOF*/
        -:        -:11046:/*EOF*/
        -:        -:11047:/*EOF*/
        -:        -:11048:/*EOF*/
        -:        -:11049:/*EOF*/
        -:        -:11050:/*EOF*/
        -:        -:11051:/*EOF*/
        -:        -:11052:/*EOF*/
        -:        -:11053:/*EOF*/
        -:        -:11054:/*EOF*/
        -:        -:11055:/*EOF*/
        -:        -:11056:/*EOF*/
        -:        -:11057:/*EOF*/
        -:        -:11058:/*EOF*/
        -:        -:11059:/*EOF*/
        -:        -:11060:/*EOF*/
        -:        -:11061:/*EOF*/
        -:        -:11062:/*EOF*/
        -:        -:11063:/*EOF*/
        -:        -:11064:/*EOF*/
        -:        -:11065:/*EOF*/
        -:        -:11066:/*EOF*/
        -:        -:11067:/*EOF*/
        -:        -:11068:/*EOF*/
        -:        -:11069:/*EOF*/
        -:        -:11070:/*EOF*/
        -:        -:11071:/*EOF*/
        -:        -:11072:/*EOF*/
        -:        -:11073:/*EOF*/
        -:        -:11074:/*EOF*/
        -:        -:11075:/*EOF*/
        -:        -:11076:/*EOF*/
        -:        -:11077:/*EOF*/
        -:        -:11078:/*EOF*/
        -:        -:11079:/*EOF*/
        -:        -:11080:/*EOF*/
        -:        -:11081:/*EOF*/
        -:        -:11082:/*EOF*/
        -:        -:11083:/*EOF*/
        -:        -:11084:/*EOF*/
        -:        -:11085:/*EOF*/
        -:        -:11086:/*EOF*/
        -:        -:11087:/*EOF*/
        -:        -:11088:/*EOF*/
        -:        -:11089:/*EOF*/
        -:        -:11090:/*EOF*/
        -:        -:11091:/*EOF*/
        -:        -:11092:/*EOF*/
        -:        -:11093:/*EOF*/
        -:        -:11094:/*EOF*/
        -:        -:11095:/*EOF*/
        -:        -:11096:/*EOF*/
        -:        -:11097:/*EOF*/
        -:        -:11098:/*EOF*/
        -:        -:11099:/*EOF*/
        -:        -:11100:/*EOF*/
        -:        -:11101:/*EOF*/
        -:        -:11102:/*EOF*/
        -:        -:11103:/*EOF*/
        -:        -:11104:/*EOF*/
        -:        -:11105:/*EOF*/
        -:        -:11106:/*EOF*/
        -:        -:11107:/*EOF*/
        -:        -:11108:/*EOF*/
        -:        -:11109:/*EOF*/
        -:        -:11110:/*EOF*/
        -:        -:11111:/*EOF*/
        -:        -:11112:/*EOF*/
        -:        -:11113:/*EOF*/
        -:        -:11114:/*EOF*/
        -:        -:11115:/*EOF*/
        -:        -:11116:/*EOF*/
        -:        -:11117:/*EOF*/
        -:        -:11118:/*EOF*/
        -:        -:11119:/*EOF*/
        -:        -:11120:/*EOF*/
        -:        -:11121:/*EOF*/
        -:        -:11122:/*EOF*/
        -:        -:11123:/*EOF*/
        -:        -:11124:/*EOF*/
        -:        -:11125:/*EOF*/
        -:        -:11126:/*EOF*/
        -:        -:11127:/*EOF*/
        -:        -:11128:/*EOF*/
        -:        -:11129:/*EOF*/
        -:        -:11130:/*EOF*/
        -:        -:11131:/*EOF*/
        -:        -:11132:/*EOF*/
        -:        -:11133:/*EOF*/
        -:        -:11134:/*EOF*/
        -:        -:11135:/*EOF*/
        -:        -:11136:/*EOF*/
        -:        -:11137:/*EOF*/
        -:        -:11138:/*EOF*/
        -:        -:11139:/*EOF*/
        -:        -:11140:/*EOF*/
        -:        -:11141:/*EOF*/
        -:        -:11142:/*EOF*/
        -:        -:11143:/*EOF*/
        -:        -:11144:/*EOF*/
        -:        -:11145:/*EOF*/
        -:        -:11146:/*EOF*/
        -:        -:11147:/*EOF*/
        -:        -:11148:/*EOF*/
        -:        -:11149:/*EOF*/
        -:        -:11150:/*EOF*/
        -:        -:11151:/*EOF*/
        -:        -:11152:/*EOF*/
        -:        -:11153:/*EOF*/
        -:        -:11154:/*EOF*/
        -:        -:11155:/*EOF*/
        -:        -:11156:/*EOF*/
        -:        -:11157:/*EOF*/
        -:        -:11158:/*EOF*/
        -:        -:11159:/*EOF*/
        -:        -:11160:/*EOF*/
        -:        -:11161:/*EOF*/
        -:        -:11162:/*EOF*/
        -:        -:11163:/*EOF*/
        -:        -:11164:/*EOF*/
        -:        -:11165:/*EOF*/
        -:        -:11166:/*EOF*/
        -:        -:11167:/*EOF*/
        -:        -:11168:/*EOF*/
        -:        -:11169:/*EOF*/
        -:        -:11170:/*EOF*/
        -:        -:11171:/*EOF*/
        -:        -:11172:/*EOF*/
        -:        -:11173:/*EOF*/
        -:        -:11174:/*EOF*/
        -:        -:11175:/*EOF*/
        -:        -:11176:/*EOF*/
        -:        -:11177:/*EOF*/
        -:        -:11178:/*EOF*/
        -:        -:11179:/*EOF*/
        -:        -:11180:/*EOF*/
        -:        -:11181:/*EOF*/
        -:        -:11182:/*EOF*/
        -:        -:11183:/*EOF*/
        -:        -:11184:/*EOF*/
        -:        -:11185:/*EOF*/
        -:        -:11186:/*EOF*/
        -:        -:11187:/*EOF*/
        -:        -:11188:/*EOF*/
        -:        -:11189:/*EOF*/
        -:        -:11190:/*EOF*/
        -:        -:11191:/*EOF*/
        -:        -:11192:/*EOF*/
        -:        -:11193:/*EOF*/
        -:        -:11194:/*EOF*/
        -:        -:11195:/*EOF*/
        -:        -:11196:/*EOF*/
        -:        -:11197:/*EOF*/
        -:        -:11198:/*EOF*/
        -:        -:11199:/*EOF*/
        -:        -:11200:/*EOF*/
        -:        -:11201:/*EOF*/
        -:        -:11202:/*EOF*/
        -:        -:11203:/*EOF*/
        -:        -:11204:/*EOF*/
        -:        -:11205:/*EOF*/
        -:        -:11206:/*EOF*/
        -:        -:11207:/*EOF*/
        -:        -:11208:/*EOF*/
        -:        -:11209:/*EOF*/
        -:        -:11210:/*EOF*/
        -:        -:11211:/*EOF*/
        -:        -:11212:/*EOF*/
        -:        -:11213:/*EOF*/
        -:        -:11214:/*EOF*/
        -:        -:11215:/*EOF*/
        -:        -:11216:/*EOF*/
        -:        -:11217:/*EOF*/
        -:        -:11218:/*EOF*/
        -:        -:11219:/*EOF*/
        -:        -:11220:/*EOF*/
        -:        -:11221:/*EOF*/
        -:        -:11222:/*EOF*/
        -:        -:11223:/*EOF*/
        -:        -:11224:/*EOF*/
        -:        -:11225:/*EOF*/
        -:        -:11226:/*EOF*/
        -:        -:11227:/*EOF*/
        -:        -:11228:/*EOF*/
        -:        -:11229:/*EOF*/
        -:        -:11230:/*EOF*/
        -:        -:11231:/*EOF*/
        -:        -:11232:/*EOF*/
        -:        -:11233:/*EOF*/
        -:        -:11234:/*EOF*/
        -:        -:11235:/*EOF*/
        -:        -:11236:/*EOF*/
        -:        -:11237:/*EOF*/
        -:        -:11238:/*EOF*/
        -:        -:11239:/*EOF*/
        -:        -:11240:/*EOF*/
        -:        -:11241:/*EOF*/
        -:        -:11242:/*EOF*/
        -:        -:11243:/*EOF*/
        -:        -:11244:/*EOF*/
        -:        -:11245:/*EOF*/
        -:        -:11246:/*EOF*/
        -:        -:11247:/*EOF*/
        -:        -:11248:/*EOF*/
        -:        -:11249:/*EOF*/
        -:        -:11250:/*EOF*/
        -:        -:11251:/*EOF*/
        -:        -:11252:/*EOF*/
        -:        -:11253:/*EOF*/
        -:        -:11254:/*EOF*/
        -:        -:11255:/*EOF*/
        -:        -:11256:/*EOF*/
        -:        -:11257:/*EOF*/
        -:        -:11258:/*EOF*/
        -:        -:11259:/*EOF*/
        -:        -:11260:/*EOF*/
        -:        -:11261:/*EOF*/
        -:        -:11262:/*EOF*/
        -:        -:11263:/*EOF*/
        -:        -:11264:/*EOF*/
        -:        -:11265:/*EOF*/
        -:        -:11266:/*EOF*/
        -:        -:11267:/*EOF*/
        -:        -:11268:/*EOF*/
        -:        -:11269:/*EOF*/
        -:        -:11270:/*EOF*/
        -:        -:11271:/*EOF*/
        -:        -:11272:/*EOF*/
        -:        -:11273:/*EOF*/
        -:        -:11274:/*EOF*/
        -:        -:11275:/*EOF*/
        -:        -:11276:/*EOF*/
        -:        -:11277:/*EOF*/
        -:        -:11278:/*EOF*/
        -:        -:11279:/*EOF*/
        -:        -:11280:/*EOF*/
        -:        -:11281:/*EOF*/
        -:        -:11282:/*EOF*/
        -:        -:11283:/*EOF*/
        -:        -:11284:/*EOF*/
        -:        -:11285:/*EOF*/
        -:        -:11286:/*EOF*/
        -:        -:11287:/*EOF*/
        -:        -:11288:/*EOF*/
        -:        -:11289:/*EOF*/
        -:        -:11290:/*EOF*/
        -:        -:11291:/*EOF*/
        -:        -:11292:/*EOF*/
        -:        -:11293:/*EOF*/
        -:        -:11294:/*EOF*/
        -:        -:11295:/*EOF*/
        -:        -:11296:/*EOF*/
        -:        -:11297:/*EOF*/
        -:        -:11298:/*EOF*/
        -:        -:11299:/*EOF*/
        -:        -:11300:/*EOF*/
        -:        -:11301:/*EOF*/
        -:        -:11302:/*EOF*/
        -:        -:11303:/*EOF*/
        -:        -:11304:/*EOF*/
        -:        -:11305:/*EOF*/
        -:        -:11306:/*EOF*/
        -:        -:11307:/*EOF*/
        -:        -:11308:/*EOF*/
        -:        -:11309:/*EOF*/
        -:        -:11310:/*EOF*/
        -:        -:11311:/*EOF*/
        -:        -:11312:/*EOF*/
        -:        -:11313:/*EOF*/
        -:        -:11314:/*EOF*/
        -:        -:11315:/*EOF*/
        -:        -:11316:/*EOF*/
        -:        -:11317:/*EOF*/
        -:        -:11318:/*EOF*/
        -:        -:11319:/*EOF*/
        -:        -:11320:/*EOF*/
        -:        -:11321:/*EOF*/
        -:        -:11322:/*EOF*/
        -:        -:11323:/*EOF*/
        -:        -:11324:/*EOF*/
        -:        -:11325:/*EOF*/
        -:        -:11326:/*EOF*/
        -:        -:11327:/*EOF*/
        -:        -:11328:/*EOF*/
        -:        -:11329:/*EOF*/
        -:        -:11330:/*EOF*/
        -:        -:11331:/*EOF*/
        -:        -:11332:/*EOF*/
        -:        -:11333:/*EOF*/
        -:        -:11334:/*EOF*/
        -:        -:11335:/*EOF*/
        -:        -:11336:/*EOF*/
        -:        -:11337:/*EOF*/
        -:        -:11338:/*EOF*/
        -:        -:11339:/*EOF*/
        -:        -:11340:/*EOF*/
        -:        -:11341:/*EOF*/
        -:        -:11342:/*EOF*/
        -:        -:11343:/*EOF*/
        -:        -:11344:/*EOF*/
        -:        -:11345:/*EOF*/
        -:        -:11346:/*EOF*/
        -:        -:11347:/*EOF*/
        -:        -:11348:/*EOF*/
        -:        -:11349:/*EOF*/
        -:        -:11350:/*EOF*/
        -:        -:11351:/*EOF*/
        -:        -:11352:/*EOF*/
        -:        -:11353:/*EOF*/
        -:        -:11354:/*EOF*/
        -:        -:11355:/*EOF*/
        -:        -:11356:/*EOF*/
        -:        -:11357:/*EOF*/
        -:        -:11358:/*EOF*/
        -:        -:11359:/*EOF*/
        -:        -:11360:/*EOF*/
        -:        -:11361:/*EOF*/
        -:        -:11362:/*EOF*/
        -:        -:11363:/*EOF*/
        -:        -:11364:/*EOF*/
        -:        -:11365:/*EOF*/
        -:        -:11366:/*EOF*/
        -:        -:11367:/*EOF*/
        -:        -:11368:/*EOF*/
        -:        -:11369:/*EOF*/
        -:        -:11370:/*EOF*/
        -:        -:11371:/*EOF*/
        -:        -:11372:/*EOF*/
        -:        -:11373:/*EOF*/
        -:        -:11374:/*EOF*/
        -:        -:11375:/*EOF*/
        -:        -:11376:/*EOF*/
        -:        -:11377:/*EOF*/
        -:        -:11378:/*EOF*/
        -:        -:11379:/*EOF*/
        -:        -:11380:/*EOF*/
        -:        -:11381:/*EOF*/
        -:        -:11382:/*EOF*/
        -:        -:11383:/*EOF*/
        -:        -:11384:/*EOF*/
        -:        -:11385:/*EOF*/
        -:        -:11386:/*EOF*/
        -:        -:11387:/*EOF*/
        -:        -:11388:/*EOF*/
        -:        -:11389:/*EOF*/
        -:        -:11390:/*EOF*/
        -:        -:11391:/*EOF*/
        -:        -:11392:/*EOF*/
        -:        -:11393:/*EOF*/
        -:        -:11394:/*EOF*/
        -:        -:11395:/*EOF*/
        -:        -:11396:/*EOF*/
        -:        -:11397:/*EOF*/
        -:        -:11398:/*EOF*/
        -:        -:11399:/*EOF*/
        -:        -:11400:/*EOF*/
        -:        -:11401:/*EOF*/
        -:        -:11402:/*EOF*/
        -:        -:11403:/*EOF*/
        -:        -:11404:/*EOF*/
        -:        -:11405:/*EOF*/
        -:        -:11406:/*EOF*/
        -:        -:11407:/*EOF*/
        -:        -:11408:/*EOF*/
        -:        -:11409:/*EOF*/
        -:        -:11410:/*EOF*/
        -:        -:11411:/*EOF*/
        -:        -:11412:/*EOF*/
        -:        -:11413:/*EOF*/
        -:        -:11414:/*EOF*/
        -:        -:11415:/*EOF*/
        -:        -:11416:/*EOF*/
        -:        -:11417:/*EOF*/
        -:        -:11418:/*EOF*/
        -:        -:11419:/*EOF*/
        -:        -:11420:/*EOF*/
        -:        -:11421:/*EOF*/
        -:        -:11422:/*EOF*/
        -:        -:11423:/*EOF*/
        -:        -:11424:/*EOF*/
        -:        -:11425:/*EOF*/
        -:        -:11426:/*EOF*/
        -:        -:11427:/*EOF*/
        -:        -:11428:/*EOF*/
        -:        -:11429:/*EOF*/
        -:        -:11430:/*EOF*/
        -:        -:11431:/*EOF*/
        -:        -:11432:/*EOF*/
        -:        -:11433:/*EOF*/
        -:        -:11434:/*EOF*/
        -:        -:11435:/*EOF*/
        -:        -:11436:/*EOF*/
        -:        -:11437:/*EOF*/
        -:        -:11438:/*EOF*/
        -:        -:11439:/*EOF*/
        -:        -:11440:/*EOF*/
        -:        -:11441:/*EOF*/
        -:        -:11442:/*EOF*/
        -:        -:11443:/*EOF*/
        -:        -:11444:/*EOF*/
        -:        -:11445:/*EOF*/
        -:        -:11446:/*EOF*/
        -:        -:11447:/*EOF*/
        -:        -:11448:/*EOF*/
        -:        -:11449:/*EOF*/
        -:        -:11450:/*EOF*/
        -:        -:11451:/*EOF*/
        -:        -:11452:/*EOF*/
        -:        -:11453:/*EOF*/
        -:        -:11454:/*EOF*/
        -:        -:11455:/*EOF*/
        -:        -:11456:/*EOF*/
        -:        -:11457:/*EOF*/
        -:        -:11458:/*EOF*/
        -:        -:11459:/*EOF*/
        -:        -:11460:/*EOF*/
        -:        -:11461:/*EOF*/
        -:        -:11462:/*EOF*/
        -:        -:11463:/*EOF*/
        -:        -:11464:/*EOF*/
        -:        -:11465:/*EOF*/
        -:        -:11466:/*EOF*/
        -:        -:11467:/*EOF*/
        -:        -:11468:/*EOF*/
        -:        -:11469:/*EOF*/
        -:        -:11470:/*EOF*/
        -:        -:11471:/*EOF*/
        -:        -:11472:/*EOF*/
        -:        -:11473:/*EOF*/
        -:        -:11474:/*EOF*/
        -:        -:11475:/*EOF*/
        -:        -:11476:/*EOF*/
        -:        -:11477:/*EOF*/
        -:        -:11478:/*EOF*/
        -:        -:11479:/*EOF*/
        -:        -:11480:/*EOF*/
        -:        -:11481:/*EOF*/
        -:        -:11482:/*EOF*/
        -:        -:11483:/*EOF*/
        -:        -:11484:/*EOF*/
        -:        -:11485:/*EOF*/
        -:        -:11486:/*EOF*/
        -:        -:11487:/*EOF*/
        -:        -:11488:/*EOF*/
        -:        -:11489:/*EOF*/
        -:        -:11490:/*EOF*/
        -:        -:11491:/*EOF*/
        -:        -:11492:/*EOF*/
        -:        -:11493:/*EOF*/
        -:        -:11494:/*EOF*/
        -:        -:11495:/*EOF*/
        -:        -:11496:/*EOF*/
        -:        -:11497:/*EOF*/
        -:        -:11498:/*EOF*/
        -:        -:11499:/*EOF*/
        -:        -:11500:/*EOF*/
        -:        -:11501:/*EOF*/
        -:        -:11502:/*EOF*/
        -:        -:11503:/*EOF*/
        -:        -:11504:/*EOF*/
        -:        -:11505:/*EOF*/
        -:        -:11506:/*EOF*/
        -:        -:11507:/*EOF*/
        -:        -:11508:/*EOF*/
        -:        -:11509:/*EOF*/
        -:        -:11510:/*EOF*/
        -:        -:11511:/*EOF*/
        -:        -:11512:/*EOF*/
        -:        -:11513:/*EOF*/
        -:        -:11514:/*EOF*/
        -:        -:11515:/*EOF*/
        -:        -:11516:/*EOF*/
        -:        -:11517:/*EOF*/
        -:        -:11518:/*EOF*/
        -:        -:11519:/*EOF*/
        -:        -:11520:/*EOF*/
        -:        -:11521:/*EOF*/
        -:        -:11522:/*EOF*/
        -:        -:11523:/*EOF*/
        -:        -:11524:/*EOF*/
        -:        -:11525:/*EOF*/
        -:        -:11526:/*EOF*/
        -:        -:11527:/*EOF*/
        -:        -:11528:/*EOF*/
        -:        -:11529:/*EOF*/
        -:        -:11530:/*EOF*/
        -:        -:11531:/*EOF*/
        -:        -:11532:/*EOF*/
        -:        -:11533:/*EOF*/
        -:        -:11534:/*EOF*/
        -:        -:11535:/*EOF*/
        -:        -:11536:/*EOF*/
        -:        -:11537:/*EOF*/
        -:        -:11538:/*EOF*/
        -:        -:11539:/*EOF*/
        -:        -:11540:/*EOF*/
        -:        -:11541:/*EOF*/
        -:        -:11542:/*EOF*/
        -:        -:11543:/*EOF*/
        -:        -:11544:/*EOF*/
        -:        -:11545:/*EOF*/
        -:        -:11546:/*EOF*/
        -:        -:11547:/*EOF*/
        -:        -:11548:/*EOF*/
        -:        -:11549:/*EOF*/
        -:        -:11550:/*EOF*/
        -:        -:11551:/*EOF*/
        -:        -:11552:/*EOF*/
        -:        -:11553:/*EOF*/
        -:        -:11554:/*EOF*/
        -:        -:11555:/*EOF*/
        -:        -:11556:/*EOF*/
        -:        -:11557:/*EOF*/
        -:        -:11558:/*EOF*/
        -:        -:11559:/*EOF*/
        -:        -:11560:/*EOF*/
        -:        -:11561:/*EOF*/
        -:        -:11562:/*EOF*/
        -:        -:11563:/*EOF*/
        -:        -:11564:/*EOF*/
        -:        -:11565:/*EOF*/
        -:        -:11566:/*EOF*/
        -:        -:11567:/*EOF*/
        -:        -:11568:/*EOF*/
        -:        -:11569:/*EOF*/
        -:        -:11570:/*EOF*/
        -:        -:11571:/*EOF*/
        -:        -:11572:/*EOF*/
        -:        -:11573:/*EOF*/
        -:        -:11574:/*EOF*/
        -:        -:11575:/*EOF*/
        -:        -:11576:/*EOF*/
        -:        -:11577:/*EOF*/
        -:        -:11578:/*EOF*/
        -:        -:11579:/*EOF*/
        -:        -:11580:/*EOF*/
        -:        -:11581:/*EOF*/
        -:        -:11582:/*EOF*/
        -:        -:11583:/*EOF*/
        -:        -:11584:/*EOF*/
        -:        -:11585:/*EOF*/
        -:        -:11586:/*EOF*/
        -:        -:11587:/*EOF*/
        -:        -:11588:/*EOF*/
        -:        -:11589:/*EOF*/
        -:        -:11590:/*EOF*/
        -:        -:11591:/*EOF*/
        -:        -:11592:/*EOF*/
        -:        -:11593:/*EOF*/
        -:        -:11594:/*EOF*/
        -:        -:11595:/*EOF*/
        -:        -:11596:/*EOF*/
        -:        -:11597:/*EOF*/
        -:        -:11598:/*EOF*/
        -:        -:11599:/*EOF*/
        -:        -:11600:/*EOF*/
        -:        -:11601:/*EOF*/
        -:        -:11602:/*EOF*/
        -:        -:11603:/*EOF*/
        -:        -:11604:/*EOF*/
        -:        -:11605:/*EOF*/
        -:        -:11606:/*EOF*/
        -:        -:11607:/*EOF*/
        -:        -:11608:/*EOF*/
        -:        -:11609:/*EOF*/
        -:        -:11610:/*EOF*/
        -:        -:11611:/*EOF*/
        -:        -:11612:/*EOF*/
        -:        -:11613:/*EOF*/
        -:        -:11614:/*EOF*/
        -:        -:11615:/*EOF*/
        -:        -:11616:/*EOF*/
        -:        -:11617:/*EOF*/
        -:        -:11618:/*EOF*/
        -:        -:11619:/*EOF*/
        -:        -:11620:/*EOF*/
        -:        -:11621:/*EOF*/
        -:        -:11622:/*EOF*/
        -:        -:11623:/*EOF*/
        -:        -:11624:/*EOF*/
        -:        -:11625:/*EOF*/
        -:        -:11626:/*EOF*/
        -:        -:11627:/*EOF*/
        -:        -:11628:/*EOF*/
        -:        -:11629:/*EOF*/
        -:        -:11630:/*EOF*/
        -:        -:11631:/*EOF*/
        -:        -:11632:/*EOF*/
        -:        -:11633:/*EOF*/
        -:        -:11634:/*EOF*/
        -:        -:11635:/*EOF*/
        -:        -:11636:/*EOF*/
        -:        -:11637:/*EOF*/
        -:        -:11638:/*EOF*/
        -:        -:11639:/*EOF*/
        -:        -:11640:/*EOF*/
        -:        -:11641:/*EOF*/
        -:        -:11642:/*EOF*/
        -:        -:11643:/*EOF*/
        -:        -:11644:/*EOF*/
        -:        -:11645:/*EOF*/
        -:        -:11646:/*EOF*/
        -:        -:11647:/*EOF*/
        -:        -:11648:/*EOF*/
        -:        -:11649:/*EOF*/
        -:        -:11650:/*EOF*/
        -:        -:11651:/*EOF*/
        -:        -:11652:/*EOF*/
        -:        -:11653:/*EOF*/
        -:        -:11654:/*EOF*/
        -:        -:11655:/*EOF*/
        -:        -:11656:/*EOF*/
        -:        -:11657:/*EOF*/
        -:        -:11658:/*EOF*/
        -:        -:11659:/*EOF*/
        -:        -:11660:/*EOF*/
        -:        -:11661:/*EOF*/
        -:        -:11662:/*EOF*/
        -:        -:11663:/*EOF*/
        -:        -:11664:/*EOF*/
        -:        -:11665:/*EOF*/
        -:        -:11666:/*EOF*/
        -:        -:11667:/*EOF*/
        -:        -:11668:/*EOF*/
        -:        -:11669:/*EOF*/
        -:        -:11670:/*EOF*/
        -:        -:11671:/*EOF*/
        -:        -:11672:/*EOF*/
        -:        -:11673:/*EOF*/
        -:        -:11674:/*EOF*/
        -:        -:11675:/*EOF*/
        -:        -:11676:/*EOF*/
        -:        -:11677:/*EOF*/
        -:        -:11678:/*EOF*/
        -:        -:11679:/*EOF*/
        -:        -:11680:/*EOF*/
        -:        -:11681:/*EOF*/
        -:        -:11682:/*EOF*/
        -:        -:11683:/*EOF*/
        -:        -:11684:/*EOF*/
        -:        -:11685:/*EOF*/
        -:        -:11686:/*EOF*/
        -:        -:11687:/*EOF*/
        -:        -:11688:/*EOF*/
        -:        -:11689:/*EOF*/
        -:        -:11690:/*EOF*/
        -:        -:11691:/*EOF*/
        -:        -:11692:/*EOF*/
        -:        -:11693:/*EOF*/
        -:        -:11694:/*EOF*/
        -:        -:11695:/*EOF*/
        -:        -:11696:/*EOF*/
        -:        -:11697:/*EOF*/
        -:        -:11698:/*EOF*/
        -:        -:11699:/*EOF*/
        -:        -:11700:/*EOF*/
        -:        -:11701:/*EOF*/
        -:        -:11702:/*EOF*/
        -:        -:11703:/*EOF*/
        -:        -:11704:/*EOF*/
        -:        -:11705:/*EOF*/
        -:        -:11706:/*EOF*/
        -:        -:11707:/*EOF*/
        -:        -:11708:/*EOF*/
        -:        -:11709:/*EOF*/
        -:        -:11710:/*EOF*/
        -:        -:11711:/*EOF*/
        -:        -:11712:/*EOF*/
        -:        -:11713:/*EOF*/
        -:        -:11714:/*EOF*/
        -:        -:11715:/*EOF*/
        -:        -:11716:/*EOF*/
        -:        -:11717:/*EOF*/
        -:        -:11718:/*EOF*/
        -:        -:11719:/*EOF*/
        -:        -:11720:/*EOF*/
        -:        -:11721:/*EOF*/
        -:        -:11722:/*EOF*/
        -:        -:11723:/*EOF*/
        -:        -:11724:/*EOF*/
        -:        -:11725:/*EOF*/
        -:        -:11726:/*EOF*/
        -:        -:11727:/*EOF*/
        -:        -:11728:/*EOF*/
        -:        -:11729:/*EOF*/
        -:        -:11730:/*EOF*/
        -:        -:11731:/*EOF*/
        -:        -:11732:/*EOF*/
        -:        -:11733:/*EOF*/
        -:        -:11734:/*EOF*/
        -:        -:11735:/*EOF*/
        -:        -:11736:/*EOF*/
        -:        -:11737:/*EOF*/
        -:        -:11738:/*EOF*/
        -:        -:11739:/*EOF*/
        -:        -:11740:/*EOF*/
        -:        -:11741:/*EOF*/
        -:        -:11742:/*EOF*/
        -:        -:11743:/*EOF*/
        -:        -:11744:/*EOF*/
        -:        -:11745:/*EOF*/
        -:        -:11746:/*EOF*/
        -:        -:11747:/*EOF*/
        -:        -:11748:/*EOF*/
        -:        -:11749:/*EOF*/
        -:        -:11750:/*EOF*/
        -:        -:11751:/*EOF*/
        -:        -:11752:/*EOF*/
        -:        -:11753:/*EOF*/
        -:        -:11754:/*EOF*/
        -:        -:11755:/*EOF*/
        -:        -:11756:/*EOF*/
        -:        -:11757:/*EOF*/
        -:        -:11758:/*EOF*/
        -:        -:11759:/*EOF*/
        -:        -:11760:/*EOF*/
        -:        -:11761:/*EOF*/
        -:        -:11762:/*EOF*/
        -:        -:11763:/*EOF*/
        -:        -:11764:/*EOF*/
        -:        -:11765:/*EOF*/
        -:        -:11766:/*EOF*/
        -:        -:11767:/*EOF*/
        -:        -:11768:/*EOF*/
        -:        -:11769:/*EOF*/
        -:        -:11770:/*EOF*/
        -:        -:11771:/*EOF*/
        -:        -:11772:/*EOF*/
        -:        -:11773:/*EOF*/
        -:        -:11774:/*EOF*/
        -:        -:11775:/*EOF*/
        -:        -:11776:/*EOF*/
        -:        -:11777:/*EOF*/
        -:        -:11778:/*EOF*/
        -:        -:11779:/*EOF*/
        -:        -:11780:/*EOF*/
        -:        -:11781:/*EOF*/
        -:        -:11782:/*EOF*/
        -:        -:11783:/*EOF*/
        -:        -:11784:/*EOF*/
        -:        -:11785:/*EOF*/
        -:        -:11786:/*EOF*/
        -:        -:11787:/*EOF*/
        -:        -:11788:/*EOF*/
        -:        -:11789:/*EOF*/
        -:        -:11790:/*EOF*/
        -:        -:11791:/*EOF*/
        -:        -:11792:/*EOF*/
        -:        -:11793:/*EOF*/
        -:        -:11794:/*EOF*/
        -:        -:11795:/*EOF*/
        -:        -:11796:/*EOF*/
        -:        -:11797:/*EOF*/
        -:        -:11798:/*EOF*/
        -:        -:11799:/*EOF*/
        -:        -:11800:/*EOF*/
        -:        -:11801:/*EOF*/
        -:        -:11802:/*EOF*/
        -:        -:11803:/*EOF*/
        -:        -:11804:/*EOF*/
        -:        -:11805:/*EOF*/
        -:        -:11806:/*EOF*/
        -:        -:11807:/*EOF*/
        -:        -:11808:/*EOF*/
        -:        -:11809:/*EOF*/
        -:        -:11810:/*EOF*/
        -:        -:11811:/*EOF*/
        -:        -:11812:/*EOF*/
        -:        -:11813:/*EOF*/
        -:        -:11814:/*EOF*/
        -:        -:11815:/*EOF*/
        -:        -:11816:/*EOF*/
        -:        -:11817:/*EOF*/
        -:        -:11818:/*EOF*/
        -:        -:11819:/*EOF*/
        -:        -:11820:/*EOF*/
        -:        -:11821:/*EOF*/
        -:        -:11822:/*EOF*/
        -:        -:11823:/*EOF*/
        -:        -:11824:/*EOF*/
        -:        -:11825:/*EOF*/
        -:        -:11826:/*EOF*/
        -:        -:11827:/*EOF*/
        -:        -:11828:/*EOF*/
        -:        -:11829:/*EOF*/
        -:        -:11830:/*EOF*/
        -:        -:11831:/*EOF*/
        -:        -:11832:/*EOF*/
        -:        -:11833:/*EOF*/
        -:        -:11834:/*EOF*/
        -:        -:11835:/*EOF*/
        -:        -:11836:/*EOF*/
        -:        -:11837:/*EOF*/
        -:        -:11838:/*EOF*/
        -:        -:11839:/*EOF*/
        -:        -:11840:/*EOF*/
        -:        -:11841:/*EOF*/
        -:        -:11842:/*EOF*/
        -:        -:11843:/*EOF*/
        -:        -:11844:/*EOF*/
        -:        -:11845:/*EOF*/
        -:        -:11846:/*EOF*/
        -:        -:11847:/*EOF*/
        -:        -:11848:/*EOF*/
        -:        -:11849:/*EOF*/
        -:        -:11850:/*EOF*/
        -:        -:11851:/*EOF*/
        -:        -:11852:/*EOF*/
        -:        -:11853:/*EOF*/
        -:        -:11854:/*EOF*/
        -:        -:11855:/*EOF*/
        -:        -:11856:/*EOF*/
        -:        -:11857:/*EOF*/
        -:        -:11858:/*EOF*/
        -:        -:11859:/*EOF*/
        -:        -:11860:/*EOF*/
        -:        -:11861:/*EOF*/
        -:        -:11862:/*EOF*/
        -:        -:11863:/*EOF*/
        -:        -:11864:/*EOF*/
        -:        -:11865:/*EOF*/
        -:        -:11866:/*EOF*/
        -:        -:11867:/*EOF*/
        -:        -:11868:/*EOF*/
        -:        -:11869:/*EOF*/
        -:        -:11870:/*EOF*/
        -:        -:11871:/*EOF*/
        -:        -:11872:/*EOF*/
        -:        -:11873:/*EOF*/
        -:        -:11874:/*EOF*/
        -:        -:11875:/*EOF*/
        -:        -:11876:/*EOF*/
        -:        -:11877:/*EOF*/
        -:        -:11878:/*EOF*/
        -:        -:11879:/*EOF*/
        -:        -:11880:/*EOF*/
        -:        -:11881:/*EOF*/
        -:        -:11882:/*EOF*/
        -:        -:11883:/*EOF*/
        -:        -:11884:/*EOF*/
        -:        -:11885:/*EOF*/
        -:        -:11886:/*EOF*/
        -:        -:11887:/*EOF*/
        -:        -:11888:/*EOF*/
        -:        -:11889:/*EOF*/
        -:        -:11890:/*EOF*/
        -:        -:11891:/*EOF*/
        -:        -:11892:/*EOF*/
        -:        -:11893:/*EOF*/
        -:        -:11894:/*EOF*/
        -:        -:11895:/*EOF*/
        -:        -:11896:/*EOF*/
        -:        -:11897:/*EOF*/
        -:        -:11898:/*EOF*/
        -:        -:11899:/*EOF*/
        -:        -:11900:/*EOF*/
        -:        -:11901:/*EOF*/
        -:        -:11902:/*EOF*/
        -:        -:11903:/*EOF*/
        -:        -:11904:/*EOF*/
        -:        -:11905:/*EOF*/
        -:        -:11906:/*EOF*/
        -:        -:11907:/*EOF*/
        -:        -:11908:/*EOF*/
        -:        -:11909:/*EOF*/
        -:        -:11910:/*EOF*/
        -:        -:11911:/*EOF*/
        -:        -:11912:/*EOF*/
        -:        -:11913:/*EOF*/
        -:        -:11914:/*EOF*/
        -:        -:11915:/*EOF*/
        -:        -:11916:/*EOF*/
        -:        -:11917:/*EOF*/
        -:        -:11918:/*EOF*/
        -:        -:11919:/*EOF*/
        -:        -:11920:/*EOF*/
        -:        -:11921:/*EOF*/
        -:        -:11922:/*EOF*/
        -:        -:11923:/*EOF*/
        -:        -:11924:/*EOF*/
        -:        -:11925:/*EOF*/
        -:        -:11926:/*EOF*/
        -:        -:11927:/*EOF*/
        -:        -:11928:/*EOF*/
        -:        -:11929:/*EOF*/
        -:        -:11930:/*EOF*/
        -:        -:11931:/*EOF*/
        -:        -:11932:/*EOF*/
        -:        -:11933:/*EOF*/
        -:        -:11934:/*EOF*/
        -:        -:11935:/*EOF*/
        -:        -:11936:/*EOF*/
        -:        -:11937:/*EOF*/
        -:        -:11938:/*EOF*/
        -:        -:11939:/*EOF*/
        -:        -:11940:/*EOF*/
        -:        -:11941:/*EOF*/
        -:        -:11942:/*EOF*/
        -:        -:11943:/*EOF*/
        -:        -:11944:/*EOF*/
        -:        -:11945:/*EOF*/
        -:        -:11946:/*EOF*/
        -:        -:11947:/*EOF*/
        -:        -:11948:/*EOF*/
        -:        -:11949:/*EOF*/
        -:        -:11950:/*EOF*/
        -:        -:11951:/*EOF*/
        -:        -:11952:/*EOF*/
        -:        -:11953:/*EOF*/
        -:        -:11954:/*EOF*/
        -:        -:11955:/*EOF*/
        -:        -:11956:/*EOF*/
        -:        -:11957:/*EOF*/
        -:        -:11958:/*EOF*/
        -:        -:11959:/*EOF*/
        -:        -:11960:/*EOF*/
        -:        -:11961:/*EOF*/
        -:        -:11962:/*EOF*/
        -:        -:11963:/*EOF*/
        -:        -:11964:/*EOF*/
        -:        -:11965:/*EOF*/
        -:        -:11966:/*EOF*/
        -:        -:11967:/*EOF*/
        -:        -:11968:/*EOF*/
        -:        -:11969:/*EOF*/
        -:        -:11970:/*EOF*/
        -:        -:11971:/*EOF*/
        -:        -:11972:/*EOF*/
        -:        -:11973:/*EOF*/
        -:        -:11974:/*EOF*/
        -:        -:11975:/*EOF*/
        -:        -:11976:/*EOF*/
        -:        -:11977:/*EOF*/
        -:        -:11978:/*EOF*/
        -:        -:11979:/*EOF*/
        -:        -:11980:/*EOF*/
        -:        -:11981:/*EOF*/
        -:        -:11982:/*EOF*/
        -:        -:11983:/*EOF*/
        -:        -:11984:/*EOF*/
        -:        -:11985:/*EOF*/
        -:        -:11986:/*EOF*/
        -:        -:11987:/*EOF*/
        -:        -:11988:/*EOF*/
        -:        -:11989:/*EOF*/
        -:        -:11990:/*EOF*/
        -:        -:11991:/*EOF*/
        -:        -:11992:/*EOF*/
        -:        -:11993:/*EOF*/
        -:        -:11994:/*EOF*/
        -:        -:11995:/*EOF*/
        -:        -:11996:/*EOF*/
        -:        -:11997:/*EOF*/
        -:        -:11998:/*EOF*/
        -:        -:11999:/*EOF*/
        -:        -:12000:/*EOF*/
        -:        -:12001:/*EOF*/
        -:        -:12002:/*EOF*/
        -:        -:12003:/*EOF*/
        -:        -:12004:/*EOF*/
        -:        -:12005:/*EOF*/
        -:        -:12006:/*EOF*/
        -:        -:12007:/*EOF*/
        -:        -:12008:/*EOF*/
        -:        -:12009:/*EOF*/
        -:        -:12010:/*EOF*/
        -:        -:12011:/*EOF*/
        -:        -:12012:/*EOF*/
        -:        -:12013:/*EOF*/
        -:        -:12014:/*EOF*/
        -:        -:12015:/*EOF*/
        -:        -:12016:/*EOF*/
        -:        -:12017:/*EOF*/
        -:        -:12018:/*EOF*/
        -:        -:12019:/*EOF*/
        -:        -:12020:/*EOF*/
        -:        -:12021:/*EOF*/
        -:        -:12022:/*EOF*/
        -:        -:12023:/*EOF*/
        -:        -:12024:/*EOF*/
        -:        -:12025:/*EOF*/
        -:        -:12026:/*EOF*/
        -:        -:12027:/*EOF*/
        -:        -:12028:/*EOF*/
        -:        -:12029:/*EOF*/
        -:        -:12030:/*EOF*/
        -:        -:12031:/*EOF*/
        -:        -:12032:/*EOF*/
        -:        -:12033:/*EOF*/
        -:        -:12034:/*EOF*/
        -:        -:12035:/*EOF*/
        -:        -:12036:/*EOF*/
        -:        -:12037:/*EOF*/
        -:        -:12038:/*EOF*/
        -:        -:12039:/*EOF*/
        -:        -:12040:/*EOF*/
        -:        -:12041:/*EOF*/
        -:        -:12042:/*EOF*/
        -:        -:12043:/*EOF*/
        -:        -:12044:/*EOF*/
        -:        -:12045:/*EOF*/
        -:        -:12046:/*EOF*/
        -:        -:12047:/*EOF*/
        -:        -:12048:/*EOF*/
        -:        -:12049:/*EOF*/
        -:        -:12050:/*EOF*/
        -:        -:12051:/*EOF*/
        -:        -:12052:/*EOF*/
        -:        -:12053:/*EOF*/
        -:        -:12054:/*EOF*/
        -:        -:12055:/*EOF*/
        -:        -:12056:/*EOF*/
        -:        -:12057:/*EOF*/
        -:        -:12058:/*EOF*/
        -:        -:12059:/*EOF*/
        -:        -:12060:/*EOF*/
        -:        -:12061:/*EOF*/
        -:        -:12062:/*EOF*/
        -:        -:12063:/*EOF*/
        -:        -:12064:/*EOF*/
        -:        -:12065:/*EOF*/
        -:        -:12066:/*EOF*/
        -:        -:12067:/*EOF*/
        -:        -:12068:/*EOF*/
        -:        -:12069:/*EOF*/
        -:        -:12070:/*EOF*/
        -:        -:12071:/*EOF*/
        -:        -:12072:/*EOF*/
        -:        -:12073:/*EOF*/
        -:        -:12074:/*EOF*/
        -:        -:12075:/*EOF*/
        -:        -:12076:/*EOF*/
        -:        -:12077:/*EOF*/
        -:        -:12078:/*EOF*/
        -:        -:12079:/*EOF*/
        -:        -:12080:/*EOF*/
        -:        -:12081:/*EOF*/
        -:        -:12082:/*EOF*/
        -:        -:12083:/*EOF*/
        -:        -:12084:/*EOF*/
        -:        -:12085:/*EOF*/
        -:        -:12086:/*EOF*/
        -:        -:12087:/*EOF*/
        -:        -:12088:/*EOF*/
        -:        -:12089:/*EOF*/
        -:        -:12090:/*EOF*/
        -:        -:12091:/*EOF*/
        -:        -:12092:/*EOF*/
        -:        -:12093:/*EOF*/
        -:        -:12094:/*EOF*/
        -:        -:12095:/*EOF*/
        -:        -:12096:/*EOF*/
        -:        -:12097:/*EOF*/
        -:        -:12098:/*EOF*/
        -:        -:12099:/*EOF*/
        -:        -:12100:/*EOF*/
        -:        -:12101:/*EOF*/
        -:        -:12102:/*EOF*/
        -:        -:12103:/*EOF*/
        -:        -:12104:/*EOF*/
        -:        -:12105:/*EOF*/
        -:        -:12106:/*EOF*/
        -:        -:12107:/*EOF*/
        -:        -:12108:/*EOF*/
        -:        -:12109:/*EOF*/
        -:        -:12110:/*EOF*/
        -:        -:12111:/*EOF*/
        -:        -:12112:/*EOF*/
        -:        -:12113:/*EOF*/
        -:        -:12114:/*EOF*/
        -:        -:12115:/*EOF*/
        -:        -:12116:/*EOF*/
        -:        -:12117:/*EOF*/
        -:        -:12118:/*EOF*/
        -:        -:12119:/*EOF*/
        -:        -:12120:/*EOF*/
        -:        -:12121:/*EOF*/
        -:        -:12122:/*EOF*/
        -:        -:12123:/*EOF*/
        -:        -:12124:/*EOF*/
        -:        -:12125:/*EOF*/
        -:        -:12126:/*EOF*/
        -:        -:12127:/*EOF*/
        -:        -:12128:/*EOF*/
        -:        -:12129:/*EOF*/
        -:        -:12130:/*EOF*/
        -:        -:12131:/*EOF*/
        -:        -:12132:/*EOF*/
        -:        -:12133:/*EOF*/
        -:        -:12134:/*EOF*/
        -:        -:12135:/*EOF*/
        -:        -:12136:/*EOF*/
        -:        -:12137:/*EOF*/
        -:        -:12138:/*EOF*/
        -:        -:12139:/*EOF*/
        -:        -:12140:/*EOF*/
        -:        -:12141:/*EOF*/
        -:        -:12142:/*EOF*/
        -:        -:12143:/*EOF*/
        -:        -:12144:/*EOF*/
        -:        -:12145:/*EOF*/
        -:        -:12146:/*EOF*/
        -:        -:12147:/*EOF*/
        -:        -:12148:/*EOF*/
        -:        -:12149:/*EOF*/
        -:        -:12150:/*EOF*/
        -:        -:12151:/*EOF*/
        -:        -:12152:/*EOF*/
        -:        -:12153:/*EOF*/
        -:        -:12154:/*EOF*/
        -:        -:12155:/*EOF*/
        -:        -:12156:/*EOF*/
        -:        -:12157:/*EOF*/
        -:        -:12158:/*EOF*/
        -:        -:12159:/*EOF*/
        -:        -:12160:/*EOF*/
        -:        -:12161:/*EOF*/
        -:        -:12162:/*EOF*/
        -:        -:12163:/*EOF*/
        -:        -:12164:/*EOF*/
        -:        -:12165:/*EOF*/
        -:        -:12166:/*EOF*/
        -:        -:12167:/*EOF*/
        -:        -:12168:/*EOF*/
        -:        -:12169:/*EOF*/
        -:        -:12170:/*EOF*/
        -:        -:12171:/*EOF*/
        -:        -:12172:/*EOF*/
        -:        -:12173:/*EOF*/
        -:        -:12174:/*EOF*/
        -:        -:12175:/*EOF*/
        -:        -:12176:/*EOF*/
        -:        -:12177:/*EOF*/
        -:        -:12178:/*EOF*/
        -:        -:12179:/*EOF*/
        -:        -:12180:/*EOF*/
        -:        -:12181:/*EOF*/
        -:        -:12182:/*EOF*/
        -:        -:12183:/*EOF*/
        -:        -:12184:/*EOF*/
        -:        -:12185:/*EOF*/
        -:        -:12186:/*EOF*/
        -:        -:12187:/*EOF*/
        -:        -:12188:/*EOF*/
        -:        -:12189:/*EOF*/
        -:        -:12190:/*EOF*/
        -:        -:12191:/*EOF*/
        -:        -:12192:/*EOF*/
        -:        -:12193:/*EOF*/
        -:        -:12194:/*EOF*/
        -:        -:12195:/*EOF*/
        -:        -:12196:/*EOF*/
        -:        -:12197:/*EOF*/
        -:        -:12198:/*EOF*/
        -:        -:12199:/*EOF*/
        -:        -:12200:/*EOF*/
        -:        -:12201:/*EOF*/
        -:        -:12202:/*EOF*/
        -:        -:12203:/*EOF*/
        -:        -:12204:/*EOF*/
        -:        -:12205:/*EOF*/
        -:        -:12206:/*EOF*/
        -:        -:12207:/*EOF*/
        -:        -:12208:/*EOF*/
        -:        -:12209:/*EOF*/
        -:        -:12210:/*EOF*/
        -:        -:12211:/*EOF*/
        -:        -:12212:/*EOF*/
        -:        -:12213:/*EOF*/
        -:        -:12214:/*EOF*/
        -:        -:12215:/*EOF*/
        -:        -:12216:/*EOF*/
        -:        -:12217:/*EOF*/
        -:        -:12218:/*EOF*/
        -:        -:12219:/*EOF*/
        -:        -:12220:/*EOF*/
        -:        -:12221:/*EOF*/
        -:        -:12222:/*EOF*/
        -:        -:12223:/*EOF*/
        -:        -:12224:/*EOF*/
        -:        -:12225:/*EOF*/
        -:        -:12226:/*EOF*/
        -:        -:12227:/*EOF*/
        -:        -:12228:/*EOF*/
        -:        -:12229:/*EOF*/
        -:        -:12230:/*EOF*/
        -:        -:12231:/*EOF*/
        -:        -:12232:/*EOF*/
        -:        -:12233:/*EOF*/
        -:        -:12234:/*EOF*/
        -:        -:12235:/*EOF*/
        -:        -:12236:/*EOF*/
        -:        -:12237:/*EOF*/
        -:        -:12238:/*EOF*/
        -:        -:12239:/*EOF*/
        -:        -:12240:/*EOF*/
        -:        -:12241:/*EOF*/
        -:        -:12242:/*EOF*/
        -:        -:12243:/*EOF*/
        -:        -:12244:/*EOF*/
        -:        -:12245:/*EOF*/
        -:        -:12246:/*EOF*/
        -:        -:12247:/*EOF*/
        -:        -:12248:/*EOF*/
        -:        -:12249:/*EOF*/
        -:        -:12250:/*EOF*/
        -:        -:12251:/*EOF*/
        -:        -:12252:/*EOF*/
        -:        -:12253:/*EOF*/
        -:        -:12254:/*EOF*/
        -:        -:12255:/*EOF*/
        -:        -:12256:/*EOF*/
        -:        -:12257:/*EOF*/
        -:        -:12258:/*EOF*/
        -:        -:12259:/*EOF*/
        -:        -:12260:/*EOF*/
        -:        -:12261:/*EOF*/
        -:        -:12262:/*EOF*/
        -:        -:12263:/*EOF*/
        -:        -:12264:/*EOF*/
        -:        -:12265:/*EOF*/
        -:        -:12266:/*EOF*/
        -:        -:12267:/*EOF*/
        -:        -:12268:/*EOF*/
        -:        -:12269:/*EOF*/
        -:        -:12270:/*EOF*/
        -:        -:12271:/*EOF*/
        -:        -:12272:/*EOF*/
        -:        -:12273:/*EOF*/
        -:        -:12274:/*EOF*/
        -:        -:12275:/*EOF*/
        -:        -:12276:/*EOF*/
        -:        -:12277:/*EOF*/
        -:        -:12278:/*EOF*/
        -:        -:12279:/*EOF*/
        -:        -:12280:/*EOF*/
        -:        -:12281:/*EOF*/
        -:        -:12282:/*EOF*/
        -:        -:12283:/*EOF*/
        -:        -:12284:/*EOF*/
        -:        -:12285:/*EOF*/
        -:        -:12286:/*EOF*/
        -:        -:12287:/*EOF*/
        -:        -:12288:/*EOF*/
        -:        -:12289:/*EOF*/
        -:        -:12290:/*EOF*/
        -:        -:12291:/*EOF*/
        -:        -:12292:/*EOF*/
        -:        -:12293:/*EOF*/
        -:        -:12294:/*EOF*/
        -:        -:12295:/*EOF*/
        -:        -:12296:/*EOF*/
        -:        -:12297:/*EOF*/
        -:        -:12298:/*EOF*/
        -:        -:12299:/*EOF*/
        -:        -:12300:/*EOF*/
        -:        -:12301:/*EOF*/
        -:        -:12302:/*EOF*/
        -:        -:12303:/*EOF*/
        -:        -:12304:/*EOF*/
        -:        -:12305:/*EOF*/
        -:        -:12306:/*EOF*/
        -:        -:12307:/*EOF*/
        -:        -:12308:/*EOF*/
        -:        -:12309:/*EOF*/
        -:        -:12310:/*EOF*/
        -:        -:12311:/*EOF*/
        -:        -:12312:/*EOF*/
        -:        -:12313:/*EOF*/
        -:        -:12314:/*EOF*/
        -:        -:12315:/*EOF*/
        -:        -:12316:/*EOF*/
        -:        -:12317:/*EOF*/
        -:        -:12318:/*EOF*/
        -:        -:12319:/*EOF*/
        -:        -:12320:/*EOF*/
        -:        -:12321:/*EOF*/
        -:        -:12322:/*EOF*/
        -:        -:12323:/*EOF*/
        -:        -:12324:/*EOF*/
        -:        -:12325:/*EOF*/
        -:        -:12326:/*EOF*/
        -:        -:12327:/*EOF*/
        -:        -:12328:/*EOF*/
        -:        -:12329:/*EOF*/
        -:        -:12330:/*EOF*/
        -:        -:12331:/*EOF*/
        -:        -:12332:/*EOF*/
        -:        -:12333:/*EOF*/
        -:        -:12334:/*EOF*/
        -:        -:12335:/*EOF*/
        -:        -:12336:/*EOF*/
        -:        -:12337:/*EOF*/
        -:        -:12338:/*EOF*/
        -:        -:12339:/*EOF*/
        -:        -:12340:/*EOF*/
        -:        -:12341:/*EOF*/
        -:        -:12342:/*EOF*/
        -:        -:12343:/*EOF*/
        -:        -:12344:/*EOF*/
        -:        -:12345:/*EOF*/
        -:        -:12346:/*EOF*/
        -:        -:12347:/*EOF*/
        -:        -:12348:/*EOF*/
        -:        -:12349:/*EOF*/
        -:        -:12350:/*EOF*/
        -:        -:12351:/*EOF*/
        -:        -:12352:/*EOF*/
        -:        -:12353:/*EOF*/
        -:        -:12354:/*EOF*/
        -:        -:12355:/*EOF*/
        -:        -:12356:/*EOF*/
        -:        -:12357:/*EOF*/
        -:        -:12358:/*EOF*/
        -:        -:12359:/*EOF*/
        -:        -:12360:/*EOF*/
        -:        -:12361:/*EOF*/
        -:        -:12362:/*EOF*/
        -:        -:12363:/*EOF*/
        -:        -:12364:/*EOF*/
        -:        -:12365:/*EOF*/
        -:        -:12366:/*EOF*/
        -:        -:12367:/*EOF*/
        -:        -:12368:/*EOF*/
        -:        -:12369:/*EOF*/
        -:        -:12370:/*EOF*/
        -:        -:12371:/*EOF*/
        -:        -:12372:/*EOF*/
        -:        -:12373:/*EOF*/
        -:        -:12374:/*EOF*/
        -:        -:12375:/*EOF*/
        -:        -:12376:/*EOF*/
        -:        -:12377:/*EOF*/
        -:        -:12378:/*EOF*/
        -:        -:12379:/*EOF*/
        -:        -:12380:/*EOF*/
        -:        -:12381:/*EOF*/
        -:        -:12382:/*EOF*/
        -:        -:12383:/*EOF*/
        -:        -:12384:/*EOF*/
        -:        -:12385:/*EOF*/
        -:        -:12386:/*EOF*/
        -:        -:12387:/*EOF*/
        -:        -:12388:/*EOF*/
        -:        -:12389:/*EOF*/
        -:        -:12390:/*EOF*/
        -:        -:12391:/*EOF*/
        -:        -:12392:/*EOF*/
        -:        -:12393:/*EOF*/
        -:        -:12394:/*EOF*/
        -:        -:12395:/*EOF*/
        -:        -:12396:/*EOF*/
        -:        -:12397:/*EOF*/
        -:        -:12398:/*EOF*/
        -:        -:12399:/*EOF*/
        -:        -:12400:/*EOF*/
        -:        -:12401:/*EOF*/
        -:        -:12402:/*EOF*/
        -:        -:12403:/*EOF*/
        -:        -:12404:/*EOF*/
        -:        -:12405:/*EOF*/
        -:        -:12406:/*EOF*/
        -:        -:12407:/*EOF*/
        -:        -:12408:/*EOF*/
        -:        -:12409:/*EOF*/
        -:        -:12410:/*EOF*/
        -:        -:12411:/*EOF*/
        -:        -:12412:/*EOF*/
        -:        -:12413:/*EOF*/
        -:        -:12414:/*EOF*/
        -:        -:12415:/*EOF*/
        -:        -:12416:/*EOF*/
        -:        -:12417:/*EOF*/
        -:        -:12418:/*EOF*/
        -:        -:12419:/*EOF*/
        -:        -:12420:/*EOF*/
        -:        -:12421:/*EOF*/
        -:        -:12422:/*EOF*/
        -:        -:12423:/*EOF*/
        -:        -:12424:/*EOF*/
        -:        -:12425:/*EOF*/
        -:        -:12426:/*EOF*/
        -:        -:12427:/*EOF*/
        -:        -:12428:/*EOF*/
        -:        -:12429:/*EOF*/
        -:        -:12430:/*EOF*/
        -:        -:12431:/*EOF*/
        -:        -:12432:/*EOF*/
        -:        -:12433:/*EOF*/
        -:        -:12434:/*EOF*/
        -:        -:12435:/*EOF*/
        -:        -:12436:/*EOF*/
        -:        -:12437:/*EOF*/
        -:        -:12438:/*EOF*/
        -:        -:12439:/*EOF*/
        -:        -:12440:/*EOF*/
        -:        -:12441:/*EOF*/
        -:        -:12442:/*EOF*/
        -:        -:12443:/*EOF*/
        -:        -:12444:/*EOF*/
        -:        -:12445:/*EOF*/
        -:        -:12446:/*EOF*/
        -:        -:12447:/*EOF*/
        -:        -:12448:/*EOF*/
        -:        -:12449:/*EOF*/
        -:        -:12450:/*EOF*/
        -:        -:12451:/*EOF*/
        -:        -:12452:/*EOF*/
        -:        -:12453:/*EOF*/
        -:        -:12454:/*EOF*/
        -:        -:12455:/*EOF*/
        -:        -:12456:/*EOF*/
        -:        -:12457:/*EOF*/
        -:        -:12458:/*EOF*/
        -:        -:12459:/*EOF*/
        -:        -:12460:/*EOF*/
        -:        -:12461:/*EOF*/
        -:        -:12462:/*EOF*/
        -:        -:12463:/*EOF*/
        -:        -:12464:/*EOF*/
        -:        -:12465:/*EOF*/
        -:        -:12466:/*EOF*/
        -:        -:12467:/*EOF*/
        -:        -:12468:/*EOF*/
        -:        -:12469:/*EOF*/
        -:        -:12470:/*EOF*/
        -:        -:12471:/*EOF*/
        -:        -:12472:/*EOF*/
        -:        -:12473:/*EOF*/
        -:        -:12474:/*EOF*/
        -:        -:12475:/*EOF*/
        -:        -:12476:/*EOF*/
        -:        -:12477:/*EOF*/
        -:        -:12478:/*EOF*/
        -:        -:12479:/*EOF*/
        -:        -:12480:/*EOF*/
        -:        -:12481:/*EOF*/
        -:        -:12482:/*EOF*/
        -:        -:12483:/*EOF*/
        -:        -:12484:/*EOF*/
        -:        -:12485:/*EOF*/
        -:        -:12486:/*EOF*/
        -:        -:12487:/*EOF*/
        -:        -:12488:/*EOF*/
        -:        -:12489:/*EOF*/
        -:        -:12490:/*EOF*/
        -:        -:12491:/*EOF*/
        -:        -:12492:/*EOF*/
        -:        -:12493:/*EOF*/
        -:        -:12494:/*EOF*/
        -:        -:12495:/*EOF*/
        -:        -:12496:/*EOF*/
        -:        -:12497:/*EOF*/
        -:        -:12498:/*EOF*/
        -:        -:12499:/*EOF*/
        -:        -:12500:/*EOF*/
        -:        -:12501:/*EOF*/
        -:        -:12502:/*EOF*/
        -:        -:12503:/*EOF*/
        -:        -:12504:/*EOF*/
        -:        -:12505:/*EOF*/
        -:        -:12506:/*EOF*/
        -:        -:12507:/*EOF*/
        -:        -:12508:/*EOF*/
        -:        -:12509:/*EOF*/
        -:        -:12510:/*EOF*/
        -:        -:12511:/*EOF*/
        -:        -:12512:/*EOF*/
        -:        -:12513:/*EOF*/
        -:        -:12514:/*EOF*/
        -:        -:12515:/*EOF*/
        -:        -:12516:/*EOF*/
        -:        -:12517:/*EOF*/
        -:        -:12518:/*EOF*/
        -:        -:12519:/*EOF*/
        -:        -:12520:/*EOF*/
        -:        -:12521:/*EOF*/
        -:        -:12522:/*EOF*/
        -:        -:12523:/*EOF*/
        -:        -:12524:/*EOF*/
        -:        -:12525:/*EOF*/
        -:        -:12526:/*EOF*/
        -:        -:12527:/*EOF*/
        -:        -:12528:/*EOF*/
        -:        -:12529:/*EOF*/
        -:        -:12530:/*EOF*/
        -:        -:12531:/*EOF*/
        -:        -:12532:/*EOF*/
        -:        -:12533:/*EOF*/
        -:        -:12534:/*EOF*/
        -:        -:12535:/*EOF*/
        -:        -:12536:/*EOF*/
        -:        -:12537:/*EOF*/
        -:        -:12538:/*EOF*/
        -:        -:12539:/*EOF*/
        -:        -:12540:/*EOF*/
        -:        -:12541:/*EOF*/
        -:        -:12542:/*EOF*/
        -:        -:12543:/*EOF*/
        -:        -:12544:/*EOF*/
        -:        -:12545:/*EOF*/
        -:        -:12546:/*EOF*/
        -:        -:12547:/*EOF*/
        -:        -:12548:/*EOF*/
        -:        -:12549:/*EOF*/
        -:        -:12550:/*EOF*/
        -:        -:12551:/*EOF*/
        -:        -:12552:/*EOF*/
        -:        -:12553:/*EOF*/
        -:        -:12554:/*EOF*/
        -:        -:12555:/*EOF*/
        -:        -:12556:/*EOF*/
        -:        -:12557:/*EOF*/
        -:        -:12558:/*EOF*/
        -:        -:12559:/*EOF*/
        -:        -:12560:/*EOF*/
        -:        -:12561:/*EOF*/
        -:        -:12562:/*EOF*/
        -:        -:12563:/*EOF*/
        -:        -:12564:/*EOF*/
        -:        -:12565:/*EOF*/
        -:        -:12566:/*EOF*/
        -:        -:12567:/*EOF*/
        -:        -:12568:/*EOF*/
        -:        -:12569:/*EOF*/
        -:        -:12570:/*EOF*/
        -:        -:12571:/*EOF*/
        -:        -:12572:/*EOF*/
        -:        -:12573:/*EOF*/
        -:        -:12574:/*EOF*/
        -:        -:12575:/*EOF*/
        -:        -:12576:/*EOF*/
        -:        -:12577:/*EOF*/
        -:        -:12578:/*EOF*/
        -:        -:12579:/*EOF*/
        -:        -:12580:/*EOF*/
        -:        -:12581:/*EOF*/
        -:        -:12582:/*EOF*/
        -:        -:12583:/*EOF*/
        -:        -:12584:/*EOF*/
        -:        -:12585:/*EOF*/
        -:        -:12586:/*EOF*/
        -:        -:12587:/*EOF*/
        -:        -:12588:/*EOF*/
        -:        -:12589:/*EOF*/
        -:        -:12590:/*EOF*/
        -:        -:12591:/*EOF*/
        -:        -:12592:/*EOF*/
        -:        -:12593:/*EOF*/
        -:        -:12594:/*EOF*/
        -:        -:12595:/*EOF*/
        -:        -:12596:/*EOF*/
        -:        -:12597:/*EOF*/
        -:        -:12598:/*EOF*/
        -:        -:12599:/*EOF*/
        -:        -:12600:/*EOF*/
        -:        -:12601:/*EOF*/
        -:        -:12602:/*EOF*/
        -:        -:12603:/*EOF*/
        -:        -:12604:/*EOF*/
        -:        -:12605:/*EOF*/
        -:        -:12606:/*EOF*/
        -:        -:12607:/*EOF*/
        -:        -:12608:/*EOF*/
        -:        -:12609:/*EOF*/
        -:        -:12610:/*EOF*/
        -:        -:12611:/*EOF*/
        -:        -:12612:/*EOF*/
        -:        -:12613:/*EOF*/
        -:        -:12614:/*EOF*/
        -:        -:12615:/*EOF*/
        -:        -:12616:/*EOF*/
        -:        -:12617:/*EOF*/
        -:        -:12618:/*EOF*/
        -:        -:12619:/*EOF*/
        -:        -:12620:/*EOF*/
        -:        -:12621:/*EOF*/
        -:        -:12622:/*EOF*/
        -:        -:12623:/*EOF*/
        -:        -:12624:/*EOF*/
        -:        -:12625:/*EOF*/
        -:        -:12626:/*EOF*/
        -:        -:12627:/*EOF*/
        -:        -:12628:/*EOF*/
        -:        -:12629:/*EOF*/
        -:        -:12630:/*EOF*/
        -:        -:12631:/*EOF*/
        -:        -:12632:/*EOF*/
        -:        -:12633:/*EOF*/
        -:        -:12634:/*EOF*/
        -:        -:12635:/*EOF*/
        -:        -:12636:/*EOF*/
        -:        -:12637:/*EOF*/
        -:        -:12638:/*EOF*/
        -:        -:12639:/*EOF*/
        -:        -:12640:/*EOF*/
        -:        -:12641:/*EOF*/
        -:        -:12642:/*EOF*/
        -:        -:12643:/*EOF*/
        -:        -:12644:/*EOF*/
        -:        -:12645:/*EOF*/
        -:        -:12646:/*EOF*/
        -:        -:12647:/*EOF*/
        -:        -:12648:/*EOF*/
        -:        -:12649:/*EOF*/
        -:        -:12650:/*EOF*/
        -:        -:12651:/*EOF*/
        -:        -:12652:/*EOF*/
        -:        -:12653:/*EOF*/
        -:        -:12654:/*EOF*/
        -:        -:12655:/*EOF*/
        -:        -:12656:/*EOF*/
        -:        -:12657:/*EOF*/
        -:        -:12658:/*EOF*/
        -:        -:12659:/*EOF*/
        -:        -:12660:/*EOF*/
        -:        -:12661:/*EOF*/
        -:        -:12662:/*EOF*/
        -:        -:12663:/*EOF*/
        -:        -:12664:/*EOF*/
        -:        -:12665:/*EOF*/
        -:        -:12666:/*EOF*/
        -:        -:12667:/*EOF*/
        -:        -:12668:/*EOF*/
        -:        -:12669:/*EOF*/
        -:        -:12670:/*EOF*/
        -:        -:12671:/*EOF*/
        -:        -:12672:/*EOF*/
        -:        -:12673:/*EOF*/
        -:        -:12674:/*EOF*/
        -:        -:12675:/*EOF*/
        -:        -:12676:/*EOF*/
        -:        -:12677:/*EOF*/
        -:        -:12678:/*EOF*/
        -:        -:12679:/*EOF*/
        -:        -:12680:/*EOF*/
        -:        -:12681:/*EOF*/
        -:        -:12682:/*EOF*/
        -:        -:12683:/*EOF*/
        -:        -:12684:/*EOF*/
        -:        -:12685:/*EOF*/
        -:        -:12686:/*EOF*/
        -:        -:12687:/*EOF*/
        -:        -:12688:/*EOF*/
        -:        -:12689:/*EOF*/
        -:        -:12690:/*EOF*/
        -:        -:12691:/*EOF*/
        -:        -:12692:/*EOF*/
        -:        -:12693:/*EOF*/
        -:        -:12694:/*EOF*/
        -:        -:12695:/*EOF*/
        -:        -:12696:/*EOF*/
        -:        -:12697:/*EOF*/
        -:        -:12698:/*EOF*/
        -:        -:12699:/*EOF*/
        -:        -:12700:/*EOF*/
        -:        -:12701:/*EOF*/
        -:        -:12702:/*EOF*/
        -:        -:12703:/*EOF*/
        -:        -:12704:/*EOF*/
        -:        -:12705:/*EOF*/
        -:        -:12706:/*EOF*/
        -:        -:12707:/*EOF*/
        -:        -:12708:/*EOF*/
        -:        -:12709:/*EOF*/
        -:        -:12710:/*EOF*/
        -:        -:12711:/*EOF*/
        -:        -:12712:/*EOF*/
        -:        -:12713:/*EOF*/
        -:        -:12714:/*EOF*/
        -:        -:12715:/*EOF*/
        -:        -:12716:/*EOF*/
        -:        -:12717:/*EOF*/
        -:        -:12718:/*EOF*/
        -:        -:12719:/*EOF*/
        -:        -:12720:/*EOF*/
        -:        -:12721:/*EOF*/
        -:        -:12722:/*EOF*/
        -:        -:12723:/*EOF*/
        -:        -:12724:/*EOF*/
        -:        -:12725:/*EOF*/
        -:        -:12726:/*EOF*/
        -:        -:12727:/*EOF*/
        -:        -:12728:/*EOF*/
        -:        -:12729:/*EOF*/
        -:        -:12730:/*EOF*/
        -:        -:12731:/*EOF*/
        -:        -:12732:/*EOF*/
        -:        -:12733:/*EOF*/
        -:        -:12734:/*EOF*/
        -:        -:12735:/*EOF*/
        -:        -:12736:/*EOF*/
        -:        -:12737:/*EOF*/
        -:        -:12738:/*EOF*/
        -:        -:12739:/*EOF*/
        -:        -:12740:/*EOF*/
        -:        -:12741:/*EOF*/
        -:        -:12742:/*EOF*/
        -:        -:12743:/*EOF*/
        -:        -:12744:/*EOF*/
        -:        -:12745:/*EOF*/
        -:        -:12746:/*EOF*/
        -:        -:12747:/*EOF*/
        -:        -:12748:/*EOF*/
        -:        -:12749:/*EOF*/
        -:        -:12750:/*EOF*/
        -:        -:12751:/*EOF*/
        -:        -:12752:/*EOF*/
        -:        -:12753:/*EOF*/
        -:        -:12754:/*EOF*/
        -:        -:12755:/*EOF*/
        -:        -:12756:/*EOF*/
        -:        -:12757:/*EOF*/
        -:        -:12758:/*EOF*/
        -:        -:12759:/*EOF*/
        -:        -:12760:/*EOF*/
        -:        -:12761:/*EOF*/
        -:        -:12762:/*EOF*/
        -:        -:12763:/*EOF*/
        -:        -:12764:/*EOF*/
        -:        -:12765:/*EOF*/
        -:        -:12766:/*EOF*/
        -:        -:12767:/*EOF*/
        -:        -:12768:/*EOF*/
        -:        -:12769:/*EOF*/
        -:        -:12770:/*EOF*/
        -:        -:12771:/*EOF*/
        -:        -:12772:/*EOF*/
        -:        -:12773:/*EOF*/
        -:        -:12774:/*EOF*/
        -:        -:12775:/*EOF*/
        -:        -:12776:/*EOF*/
        -:        -:12777:/*EOF*/
        -:        -:12778:/*EOF*/
        -:        -:12779:/*EOF*/
        -:        -:12780:/*EOF*/
        -:        -:12781:/*EOF*/
        -:        -:12782:/*EOF*/
        -:        -:12783:/*EOF*/
        -:        -:12784:/*EOF*/
        -:        -:12785:/*EOF*/
        -:        -:12786:/*EOF*/
        -:        -:12787:/*EOF*/
        -:        -:12788:/*EOF*/
        -:        -:12789:/*EOF*/
        -:        -:12790:/*EOF*/
        -:        -:12791:/*EOF*/
        -:        -:12792:/*EOF*/
        -:        -:12793:/*EOF*/
        -:        -:12794:/*EOF*/
        -:        -:12795:/*EOF*/
        -:        -:12796:/*EOF*/
        -:        -:12797:/*EOF*/
        -:        -:12798:/*EOF*/
        -:        -:12799:/*EOF*/
        -:        -:12800:/*EOF*/
        -:        -:12801:/*EOF*/
        -:        -:12802:/*EOF*/
        -:        -:12803:/*EOF*/
        -:        -:12804:/*EOF*/
        -:        -:12805:/*EOF*/
        -:        -:12806:/*EOF*/
        -:        -:12807:/*EOF*/
        -:        -:12808:/*EOF*/
        -:        -:12809:/*EOF*/
        -:        -:12810:/*EOF*/
        -:        -:12811:/*EOF*/
        -:        -:12812:/*EOF*/
        -:        -:12813:/*EOF*/
        -:        -:12814:/*EOF*/
        -:        -:12815:/*EOF*/
        -:        -:12816:/*EOF*/
        -:        -:12817:/*EOF*/
        -:        -:12818:/*EOF*/
        -:        -:12819:/*EOF*/
        -:        -:12820:/*EOF*/
        -:        -:12821:/*EOF*/
        -:        -:12822:/*EOF*/
        -:        -:12823:/*EOF*/
        -:        -:12824:/*EOF*/
        -:        -:12825:/*EOF*/
        -:        -:12826:/*EOF*/
        -:        -:12827:/*EOF*/
        -:        -:12828:/*EOF*/
        -:        -:12829:/*EOF*/
        -:        -:12830:/*EOF*/
        -:        -:12831:/*EOF*/
        -:        -:12832:/*EOF*/
        -:        -:12833:/*EOF*/
        -:        -:12834:/*EOF*/
        -:        -:12835:/*EOF*/
        -:        -:12836:/*EOF*/
        -:        -:12837:/*EOF*/
        -:        -:12838:/*EOF*/
        -:        -:12839:/*EOF*/
        -:        -:12840:/*EOF*/
        -:        -:12841:/*EOF*/
        -:        -:12842:/*EOF*/
        -:        -:12843:/*EOF*/
        -:        -:12844:/*EOF*/
        -:        -:12845:/*EOF*/
        -:        -:12846:/*EOF*/
        -:        -:12847:/*EOF*/
        -:        -:12848:/*EOF*/
        -:        -:12849:/*EOF*/
        -:        -:12850:/*EOF*/
        -:        -:12851:/*EOF*/
        -:        -:12852:/*EOF*/
        -:        -:12853:/*EOF*/
        -:        -:12854:/*EOF*/
        -:        -:12855:/*EOF*/
        -:        -:12856:/*EOF*/
        -:        -:12857:/*EOF*/
        -:        -:12858:/*EOF*/
        -:        -:12859:/*EOF*/
        -:        -:12860:/*EOF*/
        -:        -:12861:/*EOF*/
        -:        -:12862:/*EOF*/
        -:        -:12863:/*EOF*/
        -:        -:12864:/*EOF*/
        -:        -:12865:/*EOF*/
        -:        -:12866:/*EOF*/
        -:        -:12867:/*EOF*/
        -:        -:12868:/*EOF*/
        -:        -:12869:/*EOF*/
        -:        -:12870:/*EOF*/
        -:        -:12871:/*EOF*/
        -:        -:12872:/*EOF*/
        -:        -:12873:/*EOF*/
        -:        -:12874:/*EOF*/
        -:        -:12875:/*EOF*/
        -:        -:12876:/*EOF*/
        -:        -:12877:/*EOF*/
        -:        -:12878:/*EOF*/
        -:        -:12879:/*EOF*/
        -:        -:12880:/*EOF*/
        -:        -:12881:/*EOF*/
        -:        -:12882:/*EOF*/
        -:        -:12883:/*EOF*/
        -:        -:12884:/*EOF*/
        -:        -:12885:/*EOF*/
        -:        -:12886:/*EOF*/
        -:        -:12887:/*EOF*/
        -:        -:12888:/*EOF*/
        -:        -:12889:/*EOF*/
        -:        -:12890:/*EOF*/
        -:        -:12891:/*EOF*/
        -:        -:12892:/*EOF*/
        -:        -:12893:/*EOF*/
        -:        -:12894:/*EOF*/
        -:        -:12895:/*EOF*/
        -:        -:12896:/*EOF*/
        -:        -:12897:/*EOF*/
        -:        -:12898:/*EOF*/
        -:        -:12899:/*EOF*/
        -:        -:12900:/*EOF*/
        -:        -:12901:/*EOF*/
        -:        -:12902:/*EOF*/
        -:        -:12903:/*EOF*/
        -:        -:12904:/*EOF*/
        -:        -:12905:/*EOF*/
        -:        -:12906:/*EOF*/
        -:        -:12907:/*EOF*/
        -:        -:12908:/*EOF*/
        -:        -:12909:/*EOF*/
        -:        -:12910:/*EOF*/
        -:        -:12911:/*EOF*/
        -:        -:12912:/*EOF*/
        -:        -:12913:/*EOF*/
        -:        -:12914:/*EOF*/
        -:        -:12915:/*EOF*/
        -:        -:12916:/*EOF*/
        -:        -:12917:/*EOF*/
        -:        -:12918:/*EOF*/
        -:        -:12919:/*EOF*/
        -:        -:12920:/*EOF*/
        -:        -:12921:/*EOF*/
        -:        -:12922:/*EOF*/
        -:        -:12923:/*EOF*/
        -:        -:12924:/*EOF*/
        -:        -:12925:/*EOF*/
        -:        -:12926:/*EOF*/
        -:        -:12927:/*EOF*/
        -:        -:12928:/*EOF*/
        -:        -:12929:/*EOF*/
        -:        -:12930:/*EOF*/
        -:        -:12931:/*EOF*/
        -:        -:12932:/*EOF*/
        -:        -:12933:/*EOF*/
        -:        -:12934:/*EOF*/
        -:        -:12935:/*EOF*/
        -:        -:12936:/*EOF*/
        -:        -:12937:/*EOF*/
        -:        -:12938:/*EOF*/
        -:        -:12939:/*EOF*/
        -:        -:12940:/*EOF*/
        -:        -:12941:/*EOF*/
        -:        -:12942:/*EOF*/
        -:        -:12943:/*EOF*/
        -:        -:12944:/*EOF*/
        -:        -:12945:/*EOF*/
        -:        -:12946:/*EOF*/
        -:        -:12947:/*EOF*/
        -:        -:12948:/*EOF*/
        -:        -:12949:/*EOF*/
        -:        -:12950:/*EOF*/
        -:        -:12951:/*EOF*/
        -:        -:12952:/*EOF*/
        -:        -:12953:/*EOF*/
        -:        -:12954:/*EOF*/
        -:        -:12955:/*EOF*/
        -:        -:12956:/*EOF*/
        -:        -:12957:/*EOF*/
        -:        -:12958:/*EOF*/
        -:        -:12959:/*EOF*/
        -:        -:12960:/*EOF*/
        -:        -:12961:/*EOF*/
        -:        -:12962:/*EOF*/
        -:        -:12963:/*EOF*/
        -:        -:12964:/*EOF*/
        -:        -:12965:/*EOF*/
        -:        -:12966:/*EOF*/
        -:        -:12967:/*EOF*/
        -:        -:12968:/*EOF*/
        -:        -:12969:/*EOF*/
        -:        -:12970:/*EOF*/
        -:        -:12971:/*EOF*/
        -:        -:12972:/*EOF*/
        -:        -:12973:/*EOF*/
        -:        -:12974:/*EOF*/
        -:        -:12975:/*EOF*/
        -:        -:12976:/*EOF*/
        -:        -:12977:/*EOF*/
        -:        -:12978:/*EOF*/
        -:        -:12979:/*EOF*/
        -:        -:12980:/*EOF*/
        -:        -:12981:/*EOF*/
        -:        -:12982:/*EOF*/
        -:        -:12983:/*EOF*/
        -:        -:12984:/*EOF*/
        -:        -:12985:/*EOF*/
        -:        -:12986:/*EOF*/
        -:        -:12987:/*EOF*/
        -:        -:12988:/*EOF*/
        -:        -:12989:/*EOF*/
        -:        -:12990:/*EOF*/
        -:        -:12991:/*EOF*/
        -:        -:12992:/*EOF*/
        -:        -:12993:/*EOF*/
        -:        -:12994:/*EOF*/
        -:        -:12995:/*EOF*/
        -:        -:12996:/*EOF*/
        -:        -:12997:/*EOF*/
        -:        -:12998:/*EOF*/
        -:        -:12999:/*EOF*/
        -:        -:13000:/*EOF*/
        -:        -:13001:/*EOF*/
        -:        -:13002:/*EOF*/
        -:        -:13003:/*EOF*/
        -:        -:13004:/*EOF*/
        -:        -:13005:/*EOF*/
        -:        -:13006:/*EOF*/
        -:        -:13007:/*EOF*/
        -:        -:13008:/*EOF*/
        -:        -:13009:/*EOF*/
        -:        -:13010:/*EOF*/
        -:        -:13011:/*EOF*/
        -:        -:13012:/*EOF*/
        -:        -:13013:/*EOF*/
        -:        -:13014:/*EOF*/
        -:        -:13015:/*EOF*/
        -:        -:13016:/*EOF*/
        -:        -:13017:/*EOF*/
        -:        -:13018:/*EOF*/
        -:        -:13019:/*EOF*/
        -:        -:13020:/*EOF*/
        -:        -:13021:/*EOF*/
        -:        -:13022:/*EOF*/
        -:        -:13023:/*EOF*/
        -:        -:13024:/*EOF*/
        -:        -:13025:/*EOF*/
        -:        -:13026:/*EOF*/
        -:        -:13027:/*EOF*/
        -:        -:13028:/*EOF*/
        -:        -:13029:/*EOF*/
        -:        -:13030:/*EOF*/
        -:        -:13031:/*EOF*/
        -:        -:13032:/*EOF*/
        -:        -:13033:/*EOF*/
        -:        -:13034:/*EOF*/
        -:        -:13035:/*EOF*/
        -:        -:13036:/*EOF*/
        -:        -:13037:/*EOF*/
        -:        -:13038:/*EOF*/
        -:        -:13039:/*EOF*/
        -:        -:13040:/*EOF*/
        -:        -:13041:/*EOF*/
        -:        -:13042:/*EOF*/
        -:        -:13043:/*EOF*/
        -:        -:13044:/*EOF*/
        -:        -:13045:/*EOF*/
        -:        -:13046:/*EOF*/
        -:        -:13047:/*EOF*/
        -:        -:13048:/*EOF*/
        -:        -:13049:/*EOF*/
        -:        -:13050:/*EOF*/
        -:        -:13051:/*EOF*/
        -:        -:13052:/*EOF*/
        -:        -:13053:/*EOF*/
        -:        -:13054:/*EOF*/
        -:        -:13055:/*EOF*/
        -:        -:13056:/*EOF*/
        -:        -:13057:/*EOF*/
        -:        -:13058:/*EOF*/
        -:        -:13059:/*EOF*/
        -:        -:13060:/*EOF*/
        -:        -:13061:/*EOF*/
        -:        -:13062:/*EOF*/
        -:        -:13063:/*EOF*/
        -:        -:13064:/*EOF*/
        -:        -:13065:/*EOF*/
        -:        -:13066:/*EOF*/
        -:        -:13067:/*EOF*/
        -:        -:13068:/*EOF*/
        -:        -:13069:/*EOF*/
        -:        -:13070:/*EOF*/
        -:        -:13071:/*EOF*/
        -:        -:13072:/*EOF*/
        -:        -:13073:/*EOF*/
        -:        -:13074:/*EOF*/
        -:        -:13075:/*EOF*/
        -:        -:13076:/*EOF*/
        -:        -:13077:/*EOF*/
        -:        -:13078:/*EOF*/
        -:        -:13079:/*EOF*/
        -:        -:13080:/*EOF*/
        -:        -:13081:/*EOF*/
        -:        -:13082:/*EOF*/
        -:        -:13083:/*EOF*/
        -:        -:13084:/*EOF*/
        -:        -:13085:/*EOF*/
        -:        -:13086:/*EOF*/
        -:        -:13087:/*EOF*/
        -:        -:13088:/*EOF*/
        -:        -:13089:/*EOF*/
        -:        -:13090:/*EOF*/
        -:        -:13091:/*EOF*/
        -:        -:13092:/*EOF*/
        -:        -:13093:/*EOF*/
        -:        -:13094:/*EOF*/
        -:        -:13095:/*EOF*/
        -:        -:13096:/*EOF*/
        -:        -:13097:/*EOF*/
        -:        -:13098:/*EOF*/
        -:        -:13099:/*EOF*/
        -:        -:13100:/*EOF*/
        -:        -:13101:/*EOF*/
        -:        -:13102:/*EOF*/
        -:        -:13103:/*EOF*/
        -:        -:13104:/*EOF*/
        -:        -:13105:/*EOF*/
        -:        -:13106:/*EOF*/
        -:        -:13107:/*EOF*/
        -:        -:13108:/*EOF*/
        -:        -:13109:/*EOF*/
        -:        -:13110:/*EOF*/
        -:        -:13111:/*EOF*/
        -:        -:13112:/*EOF*/
        -:        -:13113:/*EOF*/
        -:        -:13114:/*EOF*/
        -:        -:13115:/*EOF*/
        -:        -:13116:/*EOF*/
        -:        -:13117:/*EOF*/
        -:        -:13118:/*EOF*/
        -:        -:13119:/*EOF*/
        -:        -:13120:/*EOF*/
        -:        -:13121:/*EOF*/
        -:        -:13122:/*EOF*/
        -:        -:13123:/*EOF*/
        -:        -:13124:/*EOF*/
        -:        -:13125:/*EOF*/
        -:        -:13126:/*EOF*/
        -:        -:13127:/*EOF*/
        -:        -:13128:/*EOF*/
        -:        -:13129:/*EOF*/
        -:        -:13130:/*EOF*/
        -:        -:13131:/*EOF*/
        -:        -:13132:/*EOF*/
        -:        -:13133:/*EOF*/
        -:        -:13134:/*EOF*/
        -:        -:13135:/*EOF*/
        -:        -:13136:/*EOF*/
        -:        -:13137:/*EOF*/
        -:        -:13138:/*EOF*/
        -:        -:13139:/*EOF*/
        -:        -:13140:/*EOF*/
        -:        -:13141:/*EOF*/
        -:        -:13142:/*EOF*/
        -:        -:13143:/*EOF*/
        -:        -:13144:/*EOF*/
        -:        -:13145:/*EOF*/
        -:        -:13146:/*EOF*/
        -:        -:13147:/*EOF*/
        -:        -:13148:/*EOF*/
        -:        -:13149:/*EOF*/
        -:        -:13150:/*EOF*/
        -:        -:13151:/*EOF*/
        -:        -:13152:/*EOF*/
        -:        -:13153:/*EOF*/
        -:        -:13154:/*EOF*/
        -:        -:13155:/*EOF*/
        -:        -:13156:/*EOF*/
        -:        -:13157:/*EOF*/
        -:        -:13158:/*EOF*/
        -:        -:13159:/*EOF*/
        -:        -:13160:/*EOF*/
        -:        -:13161:/*EOF*/
        -:        -:13162:/*EOF*/
        -:        -:13163:/*EOF*/
        -:        -:13164:/*EOF*/
        -:        -:13165:/*EOF*/
        -:        -:13166:/*EOF*/
        -:        -:13167:/*EOF*/
        -:        -:13168:/*EOF*/
        -:        -:13169:/*EOF*/
        -:        -:13170:/*EOF*/
        -:        -:13171:/*EOF*/
        -:        -:13172:/*EOF*/
        -:        -:13173:/*EOF*/
        -:        -:13174:/*EOF*/
        -:        -:13175:/*EOF*/
        -:        -:13176:/*EOF*/
        -:        -:13177:/*EOF*/
        -:        -:13178:/*EOF*/
        -:        -:13179:/*EOF*/
        -:        -:13180:/*EOF*/
        -:        -:13181:/*EOF*/
        -:        -:13182:/*EOF*/
        -:        -:13183:/*EOF*/
        -:        -:13184:/*EOF*/
        -:        -:13185:/*EOF*/
        -:        -:13186:/*EOF*/
        -:        -:13187:/*EOF*/
        -:        -:13188:/*EOF*/
        -:        -:13189:/*EOF*/
        -:        -:13190:/*EOF*/
        -:        -:13191:/*EOF*/
        -:        -:13192:/*EOF*/
        -:        -:13193:/*EOF*/
        -:        -:13194:/*EOF*/
        -:        -:13195:/*EOF*/
        -:        -:13196:/*EOF*/
        -:        -:13197:/*EOF*/
        -:        -:13198:/*EOF*/
        -:        -:13199:/*EOF*/
        -:        -:13200:/*EOF*/
        -:        -:13201:/*EOF*/
        -:        -:13202:/*EOF*/
        -:        -:13203:/*EOF*/
        -:        -:13204:/*EOF*/
        -:        -:13205:/*EOF*/
        -:        -:13206:/*EOF*/
        -:        -:13207:/*EOF*/
        -:        -:13208:/*EOF*/
        -:        -:13209:/*EOF*/
        -:        -:13210:/*EOF*/
        -:        -:13211:/*EOF*/
        -:        -:13212:/*EOF*/
        -:        -:13213:/*EOF*/
        -:        -:13214:/*EOF*/
        -:        -:13215:/*EOF*/
        -:        -:13216:/*EOF*/
        -:        -:13217:/*EOF*/
        -:        -:13218:/*EOF*/
        -:        -:13219:/*EOF*/
        -:        -:13220:/*EOF*/
        -:        -:13221:/*EOF*/
        -:        -:13222:/*EOF*/
        -:        -:13223:/*EOF*/
        -:        -:13224:/*EOF*/
        -:        -:13225:/*EOF*/
        -:        -:13226:/*EOF*/
        -:        -:13227:/*EOF*/
        -:        -:13228:/*EOF*/
        -:        -:13229:/*EOF*/
        -:        -:13230:/*EOF*/
        -:        -:13231:/*EOF*/
        -:        -:13232:/*EOF*/
        -:        -:13233:/*EOF*/
        -:        -:13234:/*EOF*/
        -:        -:13235:/*EOF*/
        -:        -:13236:/*EOF*/
        -:        -:13237:/*EOF*/
        -:        -:13238:/*EOF*/
        -:        -:13239:/*EOF*/
        -:        -:13240:/*EOF*/
        -:        -:13241:/*EOF*/
        -:        -:13242:/*EOF*/
        -:        -:13243:/*EOF*/
        -:        -:13244:/*EOF*/
        -:        -:13245:/*EOF*/
        -:        -:13246:/*EOF*/
        -:        -:13247:/*EOF*/
        -:        -:13248:/*EOF*/
        -:        -:13249:/*EOF*/
        -:        -:13250:/*EOF*/
        -:        -:13251:/*EOF*/
        -:        -:13252:/*EOF*/
        -:        -:13253:/*EOF*/
        -:        -:13254:/*EOF*/
        -:        -:13255:/*EOF*/
        -:        -:13256:/*EOF*/
        -:        -:13257:/*EOF*/
        -:        -:13258:/*EOF*/
        -:        -:13259:/*EOF*/
        -:        -:13260:/*EOF*/
        -:        -:13261:/*EOF*/
        -:        -:13262:/*EOF*/
        -:        -:13263:/*EOF*/
        -:        -:13264:/*EOF*/
        -:        -:13265:/*EOF*/
        -:        -:13266:/*EOF*/
        -:        -:13267:/*EOF*/
        -:        -:13268:/*EOF*/
        -:        -:13269:/*EOF*/
        -:        -:13270:/*EOF*/
        -:        -:13271:/*EOF*/
        -:        -:13272:/*EOF*/
        -:        -:13273:/*EOF*/
        -:        -:13274:/*EOF*/
        -:        -:13275:/*EOF*/
        -:        -:13276:/*EOF*/
        -:        -:13277:/*EOF*/
        -:        -:13278:/*EOF*/
        -:        -:13279:/*EOF*/
        -:        -:13280:/*EOF*/
        -:        -:13281:/*EOF*/
        -:        -:13282:/*EOF*/
        -:        -:13283:/*EOF*/
        -:        -:13284:/*EOF*/
        -:        -:13285:/*EOF*/
        -:        -:13286:/*EOF*/
        -:        -:13287:/*EOF*/
        -:        -:13288:/*EOF*/
        -:        -:13289:/*EOF*/
        -:        -:13290:/*EOF*/
        -:        -:13291:/*EOF*/
        -:        -:13292:/*EOF*/
        -:        -:13293:/*EOF*/
        -:        -:13294:/*EOF*/
        -:        -:13295:/*EOF*/
        -:        -:13296:/*EOF*/
        -:        -:13297:/*EOF*/
        -:        -:13298:/*EOF*/
        -:        -:13299:/*EOF*/
        -:        -:13300:/*EOF*/
        -:        -:13301:/*EOF*/
        -:        -:13302:/*EOF*/
        -:        -:13303:/*EOF*/
        -:        -:13304:/*EOF*/
        -:        -:13305:/*EOF*/
        -:        -:13306:/*EOF*/
        -:        -:13307:/*EOF*/
        -:        -:13308:/*EOF*/
        -:        -:13309:/*EOF*/
        -:        -:13310:/*EOF*/
        -:        -:13311:/*EOF*/
        -:        -:13312:/*EOF*/
        -:        -:13313:/*EOF*/
        -:        -:13314:/*EOF*/
        -:        -:13315:/*EOF*/
        -:        -:13316:/*EOF*/
        -:        -:13317:/*EOF*/
        -:        -:13318:/*EOF*/
        -:        -:13319:/*EOF*/
        -:        -:13320:/*EOF*/
        -:        -:13321:/*EOF*/
        -:        -:13322:/*EOF*/
        -:        -:13323:/*EOF*/
        -:        -:13324:/*EOF*/
        -:        -:13325:/*EOF*/
        -:        -:13326:/*EOF*/
        -:        -:13327:/*EOF*/
        -:        -:13328:/*EOF*/
        -:        -:13329:/*EOF*/
        -:        -:13330:/*EOF*/
        -:        -:13331:/*EOF*/
        -:        -:13332:/*EOF*/
        -:        -:13333:/*EOF*/
        -:        -:13334:/*EOF*/
        -:        -:13335:/*EOF*/
        -:        -:13336:/*EOF*/
        -:        -:13337:/*EOF*/
        -:        -:13338:/*EOF*/
        -:        -:13339:/*EOF*/
        -:        -:13340:/*EOF*/
        -:        -:13341:/*EOF*/
        -:        -:13342:/*EOF*/
        -:        -:13343:/*EOF*/
        -:        -:13344:/*EOF*/
        -:        -:13345:/*EOF*/
        -:        -:13346:/*EOF*/
        -:        -:13347:/*EOF*/
        -:        -:13348:/*EOF*/
        -:        -:13349:/*EOF*/
        -:        -:13350:/*EOF*/
        -:        -:13351:/*EOF*/
        -:        -:13352:/*EOF*/
        -:        -:13353:/*EOF*/
        -:        -:13354:/*EOF*/
        -:        -:13355:/*EOF*/
        -:        -:13356:/*EOF*/
        -:        -:13357:/*EOF*/
        -:        -:13358:/*EOF*/
        -:        -:13359:/*EOF*/
        -:        -:13360:/*EOF*/
        -:        -:13361:/*EOF*/
        -:        -:13362:/*EOF*/
        -:        -:13363:/*EOF*/
        -:        -:13364:/*EOF*/
        -:        -:13365:/*EOF*/
        -:        -:13366:/*EOF*/
        -:        -:13367:/*EOF*/
        -:        -:13368:/*EOF*/
        -:        -:13369:/*EOF*/
        -:        -:13370:/*EOF*/
        -:        -:13371:/*EOF*/
        -:        -:13372:/*EOF*/
        -:        -:13373:/*EOF*/
        -:        -:13374:/*EOF*/
        -:        -:13375:/*EOF*/
        -:        -:13376:/*EOF*/
        -:        -:13377:/*EOF*/
        -:        -:13378:/*EOF*/
        -:        -:13379:/*EOF*/
        -:        -:13380:/*EOF*/
        -:        -:13381:/*EOF*/
        -:        -:13382:/*EOF*/
        -:        -:13383:/*EOF*/
        -:        -:13384:/*EOF*/
        -:        -:13385:/*EOF*/
        -:        -:13386:/*EOF*/
        -:        -:13387:/*EOF*/
        -:        -:13388:/*EOF*/
        -:        -:13389:/*EOF*/
        -:        -:13390:/*EOF*/
        -:        -:13391:/*EOF*/
        -:        -:13392:/*EOF*/
        -:        -:13393:/*EOF*/
        -:        -:13394:/*EOF*/
        -:        -:13395:/*EOF*/
        -:        -:13396:/*EOF*/
        -:        -:13397:/*EOF*/
        -:        -:13398:/*EOF*/
        -:        -:13399:/*EOF*/
        -:        -:13400:/*EOF*/
        -:        -:13401:/*EOF*/
        -:        -:13402:/*EOF*/
        -:        -:13403:/*EOF*/
        -:        -:13404:/*EOF*/
        -:        -:13405:/*EOF*/
        -:        -:13406:/*EOF*/
        -:        -:13407:/*EOF*/
        -:        -:13408:/*EOF*/
        -:        -:13409:/*EOF*/
        -:        -:13410:/*EOF*/
        -:        -:13411:/*EOF*/
        -:        -:13412:/*EOF*/
        -:        -:13413:/*EOF*/
        -:        -:13414:/*EOF*/
        -:        -:13415:/*EOF*/
        -:        -:13416:/*EOF*/
        -:        -:13417:/*EOF*/
        -:        -:13418:/*EOF*/
        -:        -:13419:/*EOF*/
        -:        -:13420:/*EOF*/
        -:        -:13421:/*EOF*/
        -:        -:13422:/*EOF*/
        -:        -:13423:/*EOF*/
        -:        -:13424:/*EOF*/
        -:        -:13425:/*EOF*/
        -:        -:13426:/*EOF*/
        -:        -:13427:/*EOF*/
        -:        -:13428:/*EOF*/
        -:        -:13429:/*EOF*/
        -:        -:13430:/*EOF*/
        -:        -:13431:/*EOF*/
        -:        -:13432:/*EOF*/
        -:        -:13433:/*EOF*/
        -:        -:13434:/*EOF*/
        -:        -:13435:/*EOF*/
        -:        -:13436:/*EOF*/
        -:        -:13437:/*EOF*/
        -:        -:13438:/*EOF*/
        -:        -:13439:/*EOF*/
        -:        -:13440:/*EOF*/
        -:        -:13441:/*EOF*/
        -:        -:13442:/*EOF*/
        -:        -:13443:/*EOF*/
        -:        -:13444:/*EOF*/
        -:        -:13445:/*EOF*/
        -:        -:13446:/*EOF*/
        -:        -:13447:/*EOF*/
        -:        -:13448:/*EOF*/
        -:        -:13449:/*EOF*/
        -:        -:13450:/*EOF*/
        -:        -:13451:/*EOF*/
        -:        -:13452:/*EOF*/
        -:        -:13453:/*EOF*/
        -:        -:13454:/*EOF*/
        -:        -:13455:/*EOF*/
        -:        -:13456:/*EOF*/
        -:        -:13457:/*EOF*/
        -:        -:13458:/*EOF*/
        -:        -:13459:/*EOF*/
        -:        -:13460:/*EOF*/
        -:        -:13461:/*EOF*/
        -:        -:13462:/*EOF*/
        -:        -:13463:/*EOF*/
        -:        -:13464:/*EOF*/
        -:        -:13465:/*EOF*/
        -:        -:13466:/*EOF*/
        -:        -:13467:/*EOF*/
        -:        -:13468:/*EOF*/
        -:        -:13469:/*EOF*/
        -:        -:13470:/*EOF*/
        -:        -:13471:/*EOF*/
        -:        -:13472:/*EOF*/
        -:        -:13473:/*EOF*/
        -:        -:13474:/*EOF*/
        -:        -:13475:/*EOF*/
        -:        -:13476:/*EOF*/
        -:        -:13477:/*EOF*/
        -:        -:13478:/*EOF*/
        -:        -:13479:/*EOF*/
        -:        -:13480:/*EOF*/
        -:        -:13481:/*EOF*/
        -:        -:13482:/*EOF*/
        -:        -:13483:/*EOF*/
        -:        -:13484:/*EOF*/
        -:        -:13485:/*EOF*/
        -:        -:13486:/*EOF*/
        -:        -:13487:/*EOF*/
        -:        -:13488:/*EOF*/
        -:        -:13489:/*EOF*/
        -:        -:13490:/*EOF*/
        -:        -:13491:/*EOF*/
        -:        -:13492:/*EOF*/
        -:        -:13493:/*EOF*/
        -:        -:13494:/*EOF*/
        -:        -:13495:/*EOF*/
        -:        -:13496:/*EOF*/
        -:        -:13497:/*EOF*/
        -:        -:13498:/*EOF*/
        -:        -:13499:/*EOF*/
        -:        -:13500:/*EOF*/
        -:        -:13501:/*EOF*/
        -:        -:13502:/*EOF*/
        -:        -:13503:/*EOF*/
        -:        -:13504:/*EOF*/
        -:        -:13505:/*EOF*/
        -:        -:13506:/*EOF*/
        -:        -:13507:/*EOF*/
        -:        -:13508:/*EOF*/
        -:        -:13509:/*EOF*/
        -:        -:13510:/*EOF*/
        -:        -:13511:/*EOF*/
        -:        -:13512:/*EOF*/
        -:        -:13513:/*EOF*/
        -:        -:13514:/*EOF*/
        -:        -:13515:/*EOF*/
        -:        -:13516:/*EOF*/
        -:        -:13517:/*EOF*/
        -:        -:13518:/*EOF*/
        -:        -:13519:/*EOF*/
        -:        -:13520:/*EOF*/
        -:        -:13521:/*EOF*/
        -:        -:13522:/*EOF*/
        -:        -:13523:/*EOF*/
        -:        -:13524:/*EOF*/
        -:        -:13525:/*EOF*/
        -:        -:13526:/*EOF*/
        -:        -:13527:/*EOF*/
        -:        -:13528:/*EOF*/
        -:        -:13529:/*EOF*/
        -:        -:13530:/*EOF*/
        -:        -:13531:/*EOF*/
        -:        -:13532:/*EOF*/
        -:        -:13533:/*EOF*/
        -:        -:13534:/*EOF*/
        -:        -:13535:/*EOF*/
        -:        -:13536:/*EOF*/
        -:        -:13537:/*EOF*/
        -:        -:13538:/*EOF*/
        -:        -:13539:/*EOF*/
        -:        -:13540:/*EOF*/
        -:        -:13541:/*EOF*/
        -:        -:13542:/*EOF*/
        -:        -:13543:/*EOF*/
        -:        -:13544:/*EOF*/
        -:        -:13545:/*EOF*/
        -:        -:13546:/*EOF*/
        -:        -:13547:/*EOF*/
        -:        -:13548:/*EOF*/
        -:        -:13549:/*EOF*/
        -:        -:13550:/*EOF*/
        -:        -:13551:/*EOF*/
        -:        -:13552:/*EOF*/
        -:        -:13553:/*EOF*/
        -:        -:13554:/*EOF*/
        -:        -:13555:/*EOF*/
        -:        -:13556:/*EOF*/
        -:        -:13557:/*EOF*/
        -:        -:13558:/*EOF*/
        -:        -:13559:/*EOF*/
        -:        -:13560:/*EOF*/
        -:        -:13561:/*EOF*/
        -:        -:13562:/*EOF*/
        -:        -:13563:/*EOF*/
        -:        -:13564:/*EOF*/
        -:        -:13565:/*EOF*/
        -:        -:13566:/*EOF*/
        -:        -:13567:/*EOF*/
        -:        -:13568:/*EOF*/
        -:        -:13569:/*EOF*/
        -:        -:13570:/*EOF*/
        -:        -:13571:/*EOF*/
        -:        -:13572:/*EOF*/
        -:        -:13573:/*EOF*/
        -:        -:13574:/*EOF*/
        -:        -:13575:/*EOF*/
        -:        -:13576:/*EOF*/
        -:        -:13577:/*EOF*/
        -:        -:13578:/*EOF*/
        -:        -:13579:/*EOF*/
        -:        -:13580:/*EOF*/
        -:        -:13581:/*EOF*/
        -:        -:13582:/*EOF*/
        -:        -:13583:/*EOF*/
        -:        -:13584:/*EOF*/
        -:        -:13585:/*EOF*/
        -:        -:13586:/*EOF*/
        -:        -:13587:/*EOF*/
        -:        -:13588:/*EOF*/
        -:        -:13589:/*EOF*/
        -:        -:13590:/*EOF*/
        -:        -:13591:/*EOF*/
        -:        -:13592:/*EOF*/
        -:        -:13593:/*EOF*/
        -:        -:13594:/*EOF*/
        -:        -:13595:/*EOF*/
        -:        -:13596:/*EOF*/
        -:        -:13597:/*EOF*/
        -:        -:13598:/*EOF*/
        -:        -:13599:/*EOF*/
        -:        -:13600:/*EOF*/
        -:        -:13601:/*EOF*/
        -:        -:13602:/*EOF*/
        -:        -:13603:/*EOF*/
        -:        -:13604:/*EOF*/
        -:        -:13605:/*EOF*/
        -:        -:13606:/*EOF*/
        -:        -:13607:/*EOF*/
        -:        -:13608:/*EOF*/
        -:        -:13609:/*EOF*/
        -:        -:13610:/*EOF*/
        -:        -:13611:/*EOF*/
        -:        -:13612:/*EOF*/
        -:        -:13613:/*EOF*/
        -:        -:13614:/*EOF*/
        -:        -:13615:/*EOF*/
        -:        -:13616:/*EOF*/
        -:        -:13617:/*EOF*/
        -:        -:13618:/*EOF*/
        -:        -:13619:/*EOF*/
        -:        -:13620:/*EOF*/
        -:        -:13621:/*EOF*/
        -:        -:13622:/*EOF*/
        -:        -:13623:/*EOF*/
        -:        -:13624:/*EOF*/
        -:        -:13625:/*EOF*/
        -:        -:13626:/*EOF*/
        -:        -:13627:/*EOF*/
        -:        -:13628:/*EOF*/
        -:        -:13629:/*EOF*/
        -:        -:13630:/*EOF*/
        -:        -:13631:/*EOF*/
        -:        -:13632:/*EOF*/
        -:        -:13633:/*EOF*/
        -:        -:13634:/*EOF*/
        -:        -:13635:/*EOF*/
        -:        -:13636:/*EOF*/
        -:        -:13637:/*EOF*/
        -:        -:13638:/*EOF*/
        -:        -:13639:/*EOF*/
        -:        -:13640:/*EOF*/
        -:        -:13641:/*EOF*/
        -:        -:13642:/*EOF*/
        -:        -:13643:/*EOF*/
        -:        -:13644:/*EOF*/
        -:        -:13645:/*EOF*/
        -:        -:13646:/*EOF*/
        -:        -:13647:/*EOF*/
        -:        -:13648:/*EOF*/
        -:        -:13649:/*EOF*/
        -:        -:13650:/*EOF*/
        -:        -:13651:/*EOF*/
        -:        -:13652:/*EOF*/
        -:        -:13653:/*EOF*/
        -:        -:13654:/*EOF*/
        -:        -:13655:/*EOF*/
        -:        -:13656:/*EOF*/
        -:        -:13657:/*EOF*/
        -:        -:13658:/*EOF*/
        -:        -:13659:/*EOF*/
        -:        -:13660:/*EOF*/
        -:        -:13661:/*EOF*/
        -:        -:13662:/*EOF*/
        -:        -:13663:/*EOF*/
        -:        -:13664:/*EOF*/
        -:        -:13665:/*EOF*/
        -:        -:13666:/*EOF*/
        -:        -:13667:/*EOF*/
        -:        -:13668:/*EOF*/
        -:        -:13669:/*EOF*/
        -:        -:13670:/*EOF*/
        -:        -:13671:/*EOF*/
        -:        -:13672:/*EOF*/
        -:        -:13673:/*EOF*/
        -:        -:13674:/*EOF*/
        -:        -:13675:/*EOF*/
        -:        -:13676:/*EOF*/
        -:        -:13677:/*EOF*/
        -:        -:13678:/*EOF*/
        -:        -:13679:/*EOF*/
        -:        -:13680:/*EOF*/
        -:        -:13681:/*EOF*/
        -:        -:13682:/*EOF*/
        -:        -:13683:/*EOF*/
        -:        -:13684:/*EOF*/
        -:        -:13685:/*EOF*/
        -:        -:13686:/*EOF*/
        -:        -:13687:/*EOF*/
        -:        -:13688:/*EOF*/
        -:        -:13689:/*EOF*/
        -:        -:13690:/*EOF*/
        -:        -:13691:/*EOF*/
        -:        -:13692:/*EOF*/
        -:        -:13693:/*EOF*/
        -:        -:13694:/*EOF*/
        -:        -:13695:/*EOF*/
        -:        -:13696:/*EOF*/
        -:        -:13697:/*EOF*/
        -:        -:13698:/*EOF*/
        -:        -:13699:/*EOF*/
        -:        -:13700:/*EOF*/
        -:        -:13701:/*EOF*/
        -:        -:13702:/*EOF*/
        -:        -:13703:/*EOF*/
        -:        -:13704:/*EOF*/
        -:        -:13705:/*EOF*/
        -:        -:13706:/*EOF*/
        -:        -:13707:/*EOF*/
        -:        -:13708:/*EOF*/
        -:        -:13709:/*EOF*/
        -:        -:13710:/*EOF*/
        -:        -:13711:/*EOF*/
        -:        -:13712:/*EOF*/
        -:        -:13713:/*EOF*/
        -:        -:13714:/*EOF*/
        -:        -:13715:/*EOF*/
        -:        -:13716:/*EOF*/
        -:        -:13717:/*EOF*/
        -:        -:13718:/*EOF*/
        -:        -:13719:/*EOF*/
        -:        -:13720:/*EOF*/
        -:        -:13721:/*EOF*/
        -:        -:13722:/*EOF*/
        -:        -:13723:/*EOF*/
        -:        -:13724:/*EOF*/
        -:        -:13725:/*EOF*/
        -:        -:13726:/*EOF*/
        -:        -:13727:/*EOF*/
        -:        -:13728:/*EOF*/
        -:        -:13729:/*EOF*/
        -:        -:13730:/*EOF*/
        -:        -:13731:/*EOF*/
        -:        -:13732:/*EOF*/
        -:        -:13733:/*EOF*/
        -:        -:13734:/*EOF*/
        -:        -:13735:/*EOF*/
        -:        -:13736:/*EOF*/
        -:        -:13737:/*EOF*/
        -:        -:13738:/*EOF*/
        -:        -:13739:/*EOF*/
        -:        -:13740:/*EOF*/
        -:        -:13741:/*EOF*/
        -:        -:13742:/*EOF*/
        -:        -:13743:/*EOF*/
        -:        -:13744:/*EOF*/
        -:        -:13745:/*EOF*/
        -:        -:13746:/*EOF*/
        -:        -:13747:/*EOF*/
        -:        -:13748:/*EOF*/
        -:        -:13749:/*EOF*/
        -:        -:13750:/*EOF*/
        -:        -:13751:/*EOF*/
        -:        -:13752:/*EOF*/
        -:        -:13753:/*EOF*/
        -:        -:13754:/*EOF*/
        -:        -:13755:/*EOF*/
        -:        -:13756:/*EOF*/
        -:        -:13757:/*EOF*/
        -:        -:13758:/*EOF*/
        -:        -:13759:/*EOF*/
        -:        -:13760:/*EOF*/
        -:        -:13761:/*EOF*/
        -:        -:13762:/*EOF*/
        -:        -:13763:/*EOF*/
        -:        -:13764:/*EOF*/
        -:        -:13765:/*EOF*/
        -:        -:13766:/*EOF*/
        -:        -:13767:/*EOF*/
        -:        -:13768:/*EOF*/
        -:        -:13769:/*EOF*/
        -:        -:13770:/*EOF*/
        -:        -:13771:/*EOF*/
        -:        -:13772:/*EOF*/
        -:        -:13773:/*EOF*/
        -:        -:13774:/*EOF*/
        -:        -:13775:/*EOF*/
        -:        -:13776:/*EOF*/
        -:        -:13777:/*EOF*/
        -:        -:13778:/*EOF*/
        -:        -:13779:/*EOF*/
        -:        -:13780:/*EOF*/
        -:        -:13781:/*EOF*/
        -:        -:13782:/*EOF*/
        -:        -:13783:/*EOF*/
        -:        -:13784:/*EOF*/
        -:        -:13785:/*EOF*/
        -:        -:13786:/*EOF*/
        -:        -:13787:/*EOF*/
        -:        -:13788:/*EOF*/
        -:        -:13789:/*EOF*/
        -:        -:13790:/*EOF*/
        -:        -:13791:/*EOF*/
        -:        -:13792:/*EOF*/
        -:        -:13793:/*EOF*/
        -:        -:13794:/*EOF*/
        -:        -:13795:/*EOF*/
        -:        -:13796:/*EOF*/
        -:        -:13797:/*EOF*/
        -:        -:13798:/*EOF*/
        -:        -:13799:/*EOF*/
        -:        -:13800:/*EOF*/
        -:        -:13801:/*EOF*/
        -:        -:13802:/*EOF*/
        -:        -:13803:/*EOF*/
        -:        -:13804:/*EOF*/
        -:        -:13805:/*EOF*/
        -:        -:13806:/*EOF*/
        -:        -:13807:/*EOF*/
        -:        -:13808:/*EOF*/
        -:        -:13809:/*EOF*/
        -:        -:13810:/*EOF*/
        -:        -:13811:/*EOF*/
        -:        -:13812:/*EOF*/
        -:        -:13813:/*EOF*/
        -:        -:13814:/*EOF*/
        -:        -:13815:/*EOF*/
        -:        -:13816:/*EOF*/
        -:        -:13817:/*EOF*/
        -:        -:13818:/*EOF*/
        -:        -:13819:/*EOF*/
        -:        -:13820:/*EOF*/
        -:        -:13821:/*EOF*/
        -:        -:13822:/*EOF*/
        -:        -:13823:/*EOF*/
        -:        -:13824:/*EOF*/
        -:        -:13825:/*EOF*/
        -:        -:13826:/*EOF*/
        -:        -:13827:/*EOF*/
        -:        -:13828:/*EOF*/
        -:        -:13829:/*EOF*/
        -:        -:13830:/*EOF*/
        -:        -:13831:/*EOF*/
        -:        -:13832:/*EOF*/
        -:        -:13833:/*EOF*/
        -:        -:13834:/*EOF*/
        -:        -:13835:/*EOF*/
        -:        -:13836:/*EOF*/
        -:        -:13837:/*EOF*/
        -:        -:13838:/*EOF*/
        -:        -:13839:/*EOF*/
        -:        -:13840:/*EOF*/
        -:        -:13841:/*EOF*/
        -:        -:13842:/*EOF*/
        -:        -:13843:/*EOF*/
        -:        -:13844:/*EOF*/
        -:        -:13845:/*EOF*/
        -:        -:13846:/*EOF*/
        -:        -:13847:/*EOF*/
        -:        -:13848:/*EOF*/
        -:        -:13849:/*EOF*/
        -:        -:13850:/*EOF*/
        -:        -:13851:/*EOF*/
        -:        -:13852:/*EOF*/
        -:        -:13853:/*EOF*/
        -:        -:13854:/*EOF*/
        -:        -:13855:/*EOF*/
        -:        -:13856:/*EOF*/
        -:        -:13857:/*EOF*/
        -:        -:13858:/*EOF*/
        -:        -:13859:/*EOF*/
        -:        -:13860:/*EOF*/
        -:        -:13861:/*EOF*/
        -:        -:13862:/*EOF*/
        -:        -:13863:/*EOF*/
        -:        -:13864:/*EOF*/
        -:        -:13865:/*EOF*/
        -:        -:13866:/*EOF*/
        -:        -:13867:/*EOF*/
        -:        -:13868:/*EOF*/
        -:        -:13869:/*EOF*/
        -:        -:13870:/*EOF*/
        -:        -:13871:/*EOF*/
        -:        -:13872:/*EOF*/
        -:        -:13873:/*EOF*/
        -:        -:13874:/*EOF*/
        -:        -:13875:/*EOF*/
        -:        -:13876:/*EOF*/
        -:        -:13877:/*EOF*/
        -:        -:13878:/*EOF*/
        -:        -:13879:/*EOF*/
        -:        -:13880:/*EOF*/
        -:        -:13881:/*EOF*/
        -:        -:13882:/*EOF*/
        -:        -:13883:/*EOF*/
        -:        -:13884:/*EOF*/
        -:        -:13885:/*EOF*/
        -:        -:13886:/*EOF*/
        -:        -:13887:/*EOF*/
        -:        -:13888:/*EOF*/
        -:        -:13889:/*EOF*/
        -:        -:13890:/*EOF*/
        -:        -:13891:/*EOF*/
        -:        -:13892:/*EOF*/
        -:        -:13893:/*EOF*/
        -:        -:13894:/*EOF*/
        -:        -:13895:/*EOF*/
        -:        -:13896:/*EOF*/
        -:        -:13897:/*EOF*/
        -:        -:13898:/*EOF*/
        -:        -:13899:/*EOF*/
        -:        -:13900:/*EOF*/
        -:        -:13901:/*EOF*/
        -:        -:13902:/*EOF*/
        -:        -:13903:/*EOF*/
        -:        -:13904:/*EOF*/
        -:        -:13905:/*EOF*/
        -:        -:13906:/*EOF*/
        -:        -:13907:/*EOF*/
        -:        -:13908:/*EOF*/
        -:        -:13909:/*EOF*/
        -:        -:13910:/*EOF*/
        -:        -:13911:/*EOF*/
        -:        -:13912:/*EOF*/
        -:        -:13913:/*EOF*/
        -:        -:13914:/*EOF*/
        -:        -:13915:/*EOF*/
        -:        -:13916:/*EOF*/
        -:        -:13917:/*EOF*/
        -:        -:13918:/*EOF*/
        -:        -:13919:/*EOF*/
        -:        -:13920:/*EOF*/
        -:        -:13921:/*EOF*/
        -:        -:13922:/*EOF*/
        -:        -:13923:/*EOF*/
        -:        -:13924:/*EOF*/
        -:        -:13925:/*EOF*/
        -:        -:13926:/*EOF*/
        -:        -:13927:/*EOF*/
        -:        -:13928:/*EOF*/
        -:        -:13929:/*EOF*/
        -:        -:13930:/*EOF*/
        -:        -:13931:/*EOF*/
        -:        -:13932:/*EOF*/
        -:        -:13933:/*EOF*/
        -:        -:13934:/*EOF*/
        -:        -:13935:/*EOF*/
        -:        -:13936:/*EOF*/
        -:        -:13937:/*EOF*/
        -:        -:13938:/*EOF*/
        -:        -:13939:/*EOF*/
        -:        -:13940:/*EOF*/
        -:        -:13941:/*EOF*/
        -:        -:13942:/*EOF*/
        -:        -:13943:/*EOF*/
        -:        -:13944:/*EOF*/
        -:        -:13945:/*EOF*/
        -:        -:13946:/*EOF*/
        -:        -:13947:/*EOF*/
        -:        -:13948:/*EOF*/
        -:        -:13949:/*EOF*/
        -:        -:13950:/*EOF*/
        -:        -:13951:/*EOF*/
        -:        -:13952:/*EOF*/
        -:        -:13953:/*EOF*/
        -:        -:13954:/*EOF*/
        -:        -:13955:/*EOF*/
        -:        -:13956:/*EOF*/
        -:        -:13957:/*EOF*/
        -:        -:13958:/*EOF*/
        -:        -:13959:/*EOF*/
        -:        -:13960:/*EOF*/
        -:        -:13961:/*EOF*/
        -:        -:13962:/*EOF*/
        -:        -:13963:/*EOF*/
        -:        -:13964:/*EOF*/
        -:        -:13965:/*EOF*/
        -:        -:13966:/*EOF*/
        -:        -:13967:/*EOF*/
        -:        -:13968:/*EOF*/
        -:        -:13969:/*EOF*/
        -:        -:13970:/*EOF*/
        -:        -:13971:/*EOF*/
        -:        -:13972:/*EOF*/
        -:        -:13973:/*EOF*/
        -:        -:13974:/*EOF*/
        -:        -:13975:/*EOF*/
        -:        -:13976:/*EOF*/
        -:        -:13977:/*EOF*/
        -:        -:13978:/*EOF*/
        -:        -:13979:/*EOF*/
        -:        -:13980:/*EOF*/
        -:        -:13981:/*EOF*/
        -:        -:13982:/*EOF*/
        -:        -:13983:/*EOF*/
        -:        -:13984:/*EOF*/
        -:        -:13985:/*EOF*/
        -:        -:13986:/*EOF*/
        -:        -:13987:/*EOF*/
        -:        -:13988:/*EOF*/
        -:        -:13989:/*EOF*/
        -:        -:13990:/*EOF*/
        -:        -:13991:/*EOF*/
        -:        -:13992:/*EOF*/
        -:        -:13993:/*EOF*/
        -:        -:13994:/*EOF*/
        -:        -:13995:/*EOF*/
        -:        -:13996:/*EOF*/
        -:        -:13997:/*EOF*/
        -:        -:13998:/*EOF*/
        -:        -:13999:/*EOF*/
        -:        -:14000:/*EOF*/
        -:        -:14001:/*EOF*/
        -:        -:14002:/*EOF*/
        -:        -:14003:/*EOF*/
        -:        -:14004:/*EOF*/
        -:        -:14005:/*EOF*/
        -:        -:14006:/*EOF*/
        -:        -:14007:/*EOF*/
        -:        -:14008:/*EOF*/
        -:        -:14009:/*EOF*/
        -:        -:14010:/*EOF*/
        -:        -:14011:/*EOF*/
        -:        -:14012:/*EOF*/
        -:        -:14013:/*EOF*/
        -:        -:14014:/*EOF*/
        -:        -:14015:/*EOF*/
        -:        -:14016:/*EOF*/
        -:        -:14017:/*EOF*/
        -:        -:14018:/*EOF*/
        -:        -:14019:/*EOF*/
        -:        -:14020:/*EOF*/
        -:        -:14021:/*EOF*/
        -:        -:14022:/*EOF*/
        -:        -:14023:/*EOF*/
        -:        -:14024:/*EOF*/
        -:        -:14025:/*EOF*/
        -:        -:14026:/*EOF*/
        -:        -:14027:/*EOF*/
        -:        -:14028:/*EOF*/
        -:        -:14029:/*EOF*/
        -:        -:14030:/*EOF*/
        -:        -:14031:/*EOF*/
        -:        -:14032:/*EOF*/
        -:        -:14033:/*EOF*/
        -:        -:14034:/*EOF*/
        -:        -:14035:/*EOF*/
        -:        -:14036:/*EOF*/
        -:        -:14037:/*EOF*/
        -:        -:14038:/*EOF*/
        -:        -:14039:/*EOF*/
        -:        -:14040:/*EOF*/
        -:        -:14041:/*EOF*/
        -:        -:14042:/*EOF*/
        -:        -:14043:/*EOF*/
        -:        -:14044:/*EOF*/
        -:        -:14045:/*EOF*/
        -:        -:14046:/*EOF*/
        -:        -:14047:/*EOF*/
        -:        -:14048:/*EOF*/
        -:        -:14049:/*EOF*/
        -:        -:14050:/*EOF*/
        -:        -:14051:/*EOF*/
        -:        -:14052:/*EOF*/
        -:        -:14053:/*EOF*/
        -:        -:14054:/*EOF*/
        -:        -:14055:/*EOF*/
        -:        -:14056:/*EOF*/
        -:        -:14057:/*EOF*/
        -:        -:14058:/*EOF*/
        -:        -:14059:/*EOF*/
        -:        -:14060:/*EOF*/
        -:        -:14061:/*EOF*/
        -:        -:14062:/*EOF*/
        -:        -:14063:/*EOF*/
        -:        -:14064:/*EOF*/
        -:        -:14065:/*EOF*/
        -:        -:14066:/*EOF*/
        -:        -:14067:/*EOF*/
        -:        -:14068:/*EOF*/
        -:        -:14069:/*EOF*/
        -:        -:14070:/*EOF*/
        -:        -:14071:/*EOF*/
        -:        -:14072:/*EOF*/
        -:        -:14073:/*EOF*/
        -:        -:14074:/*EOF*/
        -:        -:14075:/*EOF*/
        -:        -:14076:/*EOF*/
        -:        -:14077:/*EOF*/
        -:        -:14078:/*EOF*/
        -:        -:14079:/*EOF*/
        -:        -:14080:/*EOF*/
        -:        -:14081:/*EOF*/
        -:        -:14082:/*EOF*/
        -:        -:14083:/*EOF*/
        -:        -:14084:/*EOF*/
        -:        -:14085:/*EOF*/
        -:        -:14086:/*EOF*/
        -:        -:14087:/*EOF*/
        -:        -:14088:/*EOF*/
        -:        -:14089:/*EOF*/
        -:        -:14090:/*EOF*/
        -:        -:14091:/*EOF*/
        -:        -:14092:/*EOF*/
        -:        -:14093:/*EOF*/
        -:        -:14094:/*EOF*/
        -:        -:14095:/*EOF*/
        -:        -:14096:/*EOF*/
        -:        -:14097:/*EOF*/
        -:        -:14098:/*EOF*/
        -:        -:14099:/*EOF*/
        -:        -:14100:/*EOF*/
        -:        -:14101:/*EOF*/
        -:        -:14102:/*EOF*/
        -:        -:14103:/*EOF*/
        -:        -:14104:/*EOF*/
        -:        -:14105:/*EOF*/
        -:        -:14106:/*EOF*/
        -:        -:14107:/*EOF*/
        -:        -:14108:/*EOF*/
        -:        -:14109:/*EOF*/
        -:        -:14110:/*EOF*/
        -:        -:14111:/*EOF*/
        -:        -:14112:/*EOF*/
        -:        -:14113:/*EOF*/
        -:        -:14114:/*EOF*/
        -:        -:14115:/*EOF*/
        -:        -:14116:/*EOF*/
        -:        -:14117:/*EOF*/
        -:        -:14118:/*EOF*/
        -:        -:14119:/*EOF*/
        -:        -:14120:/*EOF*/
        -:        -:14121:/*EOF*/
        -:        -:14122:/*EOF*/
        -:        -:14123:/*EOF*/
        -:        -:14124:/*EOF*/
        -:        -:14125:/*EOF*/
        -:        -:14126:/*EOF*/
        -:        -:14127:/*EOF*/
        -:        -:14128:/*EOF*/
        -:        -:14129:/*EOF*/
        -:        -:14130:/*EOF*/
        -:        -:14131:/*EOF*/
        -:        -:14132:/*EOF*/
        -:        -:14133:/*EOF*/
        -:        -:14134:/*EOF*/
        -:        -:14135:/*EOF*/
        -:        -:14136:/*EOF*/
        -:        -:14137:/*EOF*/
        -:        -:14138:/*EOF*/
        -:        -:14139:/*EOF*/
        -:        -:14140:/*EOF*/
        -:        -:14141:/*EOF*/
        -:        -:14142:/*EOF*/
        -:        -:14143:/*EOF*/
        -:        -:14144:/*EOF*/
        -:        -:14145:/*EOF*/
        -:        -:14146:/*EOF*/
        -:        -:14147:/*EOF*/
        -:        -:14148:/*EOF*/
        -:        -:14149:/*EOF*/
        -:        -:14150:/*EOF*/
        -:        -:14151:/*EOF*/
        -:        -:14152:/*EOF*/
        -:        -:14153:/*EOF*/
        -:        -:14154:/*EOF*/
        -:        -:14155:/*EOF*/
        -:        -:14156:/*EOF*/
        -:        -:14157:/*EOF*/
        -:        -:14158:/*EOF*/
        -:        -:14159:/*EOF*/
        -:        -:14160:/*EOF*/
        -:        -:14161:/*EOF*/
        -:        -:14162:/*EOF*/
        -:        -:14163:/*EOF*/
        -:        -:14164:/*EOF*/
        -:        -:14165:/*EOF*/
        -:        -:14166:/*EOF*/
        -:        -:14167:/*EOF*/
        -:        -:14168:/*EOF*/
        -:        -:14169:/*EOF*/
        -:        -:14170:/*EOF*/
        -:        -:14171:/*EOF*/
        -:        -:14172:/*EOF*/
        -:        -:14173:/*EOF*/
        -:        -:14174:/*EOF*/
        -:        -:14175:/*EOF*/
        -:        -:14176:/*EOF*/
        -:        -:14177:/*EOF*/
        -:        -:14178:/*EOF*/
        -:        -:14179:/*EOF*/
        -:        -:14180:/*EOF*/
        -:        -:14181:/*EOF*/
        -:        -:14182:/*EOF*/
        -:        -:14183:/*EOF*/
        -:        -:14184:/*EOF*/
        -:        -:14185:/*EOF*/
        -:        -:14186:/*EOF*/
        -:        -:14187:/*EOF*/
        -:        -:14188:/*EOF*/
        -:        -:14189:/*EOF*/
        -:        -:14190:/*EOF*/
        -:        -:14191:/*EOF*/
        -:        -:14192:/*EOF*/
        -:        -:14193:/*EOF*/
        -:        -:14194:/*EOF*/
        -:        -:14195:/*EOF*/
        -:        -:14196:/*EOF*/
        -:        -:14197:/*EOF*/
        -:        -:14198:/*EOF*/
        -:        -:14199:/*EOF*/
        -:        -:14200:/*EOF*/
        -:        -:14201:/*EOF*/
        -:        -:14202:/*EOF*/
        -:        -:14203:/*EOF*/
        -:        -:14204:/*EOF*/
        -:        -:14205:/*EOF*/
        -:        -:14206:/*EOF*/
        -:        -:14207:/*EOF*/
        -:        -:14208:/*EOF*/
        -:        -:14209:/*EOF*/
        -:        -:14210:/*EOF*/
        -:        -:14211:/*EOF*/
        -:        -:14212:/*EOF*/
        -:        -:14213:/*EOF*/
        -:        -:14214:/*EOF*/
        -:        -:14215:/*EOF*/
        -:        -:14216:/*EOF*/
        -:        -:14217:/*EOF*/
        -:        -:14218:/*EOF*/
        -:        -:14219:/*EOF*/
        -:        -:14220:/*EOF*/
        -:        -:14221:/*EOF*/
        -:        -:14222:/*EOF*/
        -:        -:14223:/*EOF*/
        -:        -:14224:/*EOF*/
        -:        -:14225:/*EOF*/
        -:        -:14226:/*EOF*/
        -:        -:14227:/*EOF*/
        -:        -:14228:/*EOF*/
        -:        -:14229:/*EOF*/
        -:        -:14230:/*EOF*/
        -:        -:14231:/*EOF*/
        -:        -:14232:/*EOF*/
        -:        -:14233:/*EOF*/
        -:        -:14234:/*EOF*/
        -:        -:14235:/*EOF*/
        -:        -:14236:/*EOF*/
        -:        -:14237:/*EOF*/
        -:        -:14238:/*EOF*/
        -:        -:14239:/*EOF*/
        -:        -:14240:/*EOF*/
        -:        -:14241:/*EOF*/
        -:        -:14242:/*EOF*/
        -:        -:14243:/*EOF*/
        -:        -:14244:/*EOF*/
        -:        -:14245:/*EOF*/
        -:        -:14246:/*EOF*/
        -:        -:14247:/*EOF*/
        -:        -:14248:/*EOF*/
        -:        -:14249:/*EOF*/
        -:        -:14250:/*EOF*/
        -:        -:14251:/*EOF*/
        -:        -:14252:/*EOF*/
        -:        -:14253:/*EOF*/
        -:        -:14254:/*EOF*/
        -:        -:14255:/*EOF*/
        -:        -:14256:/*EOF*/
        -:        -:14257:/*EOF*/
        -:        -:14258:/*EOF*/
        -:        -:14259:/*EOF*/
        -:        -:14260:/*EOF*/
        -:        -:14261:/*EOF*/
        -:        -:14262:/*EOF*/
        -:        -:14263:/*EOF*/
        -:        -:14264:/*EOF*/
        -:        -:14265:/*EOF*/
        -:        -:14266:/*EOF*/
        -:        -:14267:/*EOF*/
        -:        -:14268:/*EOF*/
        -:        -:14269:/*EOF*/
        -:        -:14270:/*EOF*/
        -:        -:14271:/*EOF*/
        -:        -:14272:/*EOF*/
        -:        -:14273:/*EOF*/
        -:        -:14274:/*EOF*/
        -:        -:14275:/*EOF*/
        -:        -:14276:/*EOF*/
        -:        -:14277:/*EOF*/
        -:        -:14278:/*EOF*/
        -:        -:14279:/*EOF*/
        -:        -:14280:/*EOF*/
        -:        -:14281:/*EOF*/
        -:        -:14282:/*EOF*/
        -:        -:14283:/*EOF*/
        -:        -:14284:/*EOF*/
        -:        -:14285:/*EOF*/
        -:        -:14286:/*EOF*/
        -:        -:14287:/*EOF*/
        -:        -:14288:/*EOF*/
        -:        -:14289:/*EOF*/
        -:        -:14290:/*EOF*/
        -:        -:14291:/*EOF*/
        -:        -:14292:/*EOF*/
        -:        -:14293:/*EOF*/
        -:        -:14294:/*EOF*/
        -:        -:14295:/*EOF*/
        -:        -:14296:/*EOF*/
        -:        -:14297:/*EOF*/
        -:        -:14298:/*EOF*/
        -:        -:14299:/*EOF*/
        -:        -:14300:/*EOF*/
        -:        -:14301:/*EOF*/
        -:        -:14302:/*EOF*/
        -:        -:14303:/*EOF*/
        -:        -:14304:/*EOF*/
        -:        -:14305:/*EOF*/
        -:        -:14306:/*EOF*/
        -:        -:14307:/*EOF*/
        -:        -:14308:/*EOF*/
        -:        -:14309:/*EOF*/
        -:        -:14310:/*EOF*/
        -:        -:14311:/*EOF*/
        -:        -:14312:/*EOF*/
        -:        -:14313:/*EOF*/
        -:        -:14314:/*EOF*/
        -:        -:14315:/*EOF*/
        -:        -:14316:/*EOF*/
        -:        -:14317:/*EOF*/
        -:        -:14318:/*EOF*/
        -:        -:14319:/*EOF*/
        -:        -:14320:/*EOF*/
        -:        -:14321:/*EOF*/
        -:        -:14322:/*EOF*/
        -:        -:14323:/*EOF*/
        -:        -:14324:/*EOF*/
        -:        -:14325:/*EOF*/
        -:        -:14326:/*EOF*/
        -:        -:14327:/*EOF*/
        -:        -:14328:/*EOF*/
        -:        -:14329:/*EOF*/
        -:        -:14330:/*EOF*/
        -:        -:14331:/*EOF*/
        -:        -:14332:/*EOF*/
        -:        -:14333:/*EOF*/
        -:        -:14334:/*EOF*/
        -:        -:14335:/*EOF*/
        -:        -:14336:/*EOF*/
        -:        -:14337:/*EOF*/
        -:        -:14338:/*EOF*/
        -:        -:14339:/*EOF*/
        -:        -:14340:/*EOF*/
        -:        -:14341:/*EOF*/
        -:        -:14342:/*EOF*/
        -:        -:14343:/*EOF*/
        -:        -:14344:/*EOF*/
        -:        -:14345:/*EOF*/
        -:        -:14346:/*EOF*/
        -:        -:14347:/*EOF*/
        -:        -:14348:/*EOF*/
        -:        -:14349:/*EOF*/
        -:        -:14350:/*EOF*/
        -:        -:14351:/*EOF*/
        -:        -:14352:/*EOF*/
        -:        -:14353:/*EOF*/
        -:        -:14354:/*EOF*/
        -:        -:14355:/*EOF*/
        -:        -:14356:/*EOF*/
        -:        -:14357:/*EOF*/
        -:        -:14358:/*EOF*/
        -:        -:14359:/*EOF*/
        -:        -:14360:/*EOF*/
        -:        -:14361:/*EOF*/
        -:        -:14362:/*EOF*/
        -:        -:14363:/*EOF*/
        -:        -:14364:/*EOF*/
        -:        -:14365:/*EOF*/
        -:        -:14366:/*EOF*/
        -:        -:14367:/*EOF*/
        -:        -:14368:/*EOF*/
        -:        -:14369:/*EOF*/
        -:        -:14370:/*EOF*/
        -:        -:14371:/*EOF*/
        -:        -:14372:/*EOF*/
        -:        -:14373:/*EOF*/
        -:        -:14374:/*EOF*/
        -:        -:14375:/*EOF*/
        -:        -:14376:/*EOF*/
        -:        -:14377:/*EOF*/
        -:        -:14378:/*EOF*/
        -:        -:14379:/*EOF*/
        -:        -:14380:/*EOF*/
        -:        -:14381:/*EOF*/
        -:        -:14382:/*EOF*/
        -:        -:14383:/*EOF*/
        -:        -:14384:/*EOF*/
        -:        -:14385:/*EOF*/
        -:        -:14386:/*EOF*/
        -:        -:14387:/*EOF*/
        -:        -:14388:/*EOF*/
        -:        -:14389:/*EOF*/
        -:        -:14390:/*EOF*/
        -:        -:14391:/*EOF*/
        -:        -:14392:/*EOF*/
        -:        -:14393:/*EOF*/
        -:        -:14394:/*EOF*/
        -:        -:14395:/*EOF*/
        -:        -:14396:/*EOF*/
        -:        -:14397:/*EOF*/
        -:        -:14398:/*EOF*/
        -:        -:14399:/*EOF*/
        -:        -:14400:/*EOF*/
        -:        -:14401:/*EOF*/
        -:        -:14402:/*EOF*/
        -:        -:14403:/*EOF*/
        -:        -:14404:/*EOF*/
        -:        -:14405:/*EOF*/
        -:        -:14406:/*EOF*/
        -:        -:14407:/*EOF*/
        -:        -:14408:/*EOF*/
        -:        -:14409:/*EOF*/
        -:        -:14410:/*EOF*/
        -:        -:14411:/*EOF*/
        -:        -:14412:/*EOF*/
        -:        -:14413:/*EOF*/
        -:        -:14414:/*EOF*/
        -:        -:14415:/*EOF*/
        -:        -:14416:/*EOF*/
        -:        -:14417:/*EOF*/
        -:        -:14418:/*EOF*/
        -:        -:14419:/*EOF*/
        -:        -:14420:/*EOF*/
        -:        -:14421:/*EOF*/
        -:        -:14422:/*EOF*/
        -:        -:14423:/*EOF*/
        -:        -:14424:/*EOF*/
        -:        -:14425:/*EOF*/
        -:        -:14426:/*EOF*/
        -:        -:14427:/*EOF*/
        -:        -:14428:/*EOF*/
        -:        -:14429:/*EOF*/
        -:        -:14430:/*EOF*/
        -:        -:14431:/*EOF*/
        -:        -:14432:/*EOF*/
        -:        -:14433:/*EOF*/
        -:        -:14434:/*EOF*/
        -:        -:14435:/*EOF*/
        -:        -:14436:/*EOF*/
        -:        -:14437:/*EOF*/
        -:        -:14438:/*EOF*/
        -:        -:14439:/*EOF*/
        -:        -:14440:/*EOF*/
        -:        -:14441:/*EOF*/
        -:        -:14442:/*EOF*/
        -:        -:14443:/*EOF*/
        -:        -:14444:/*EOF*/
        -:        -:14445:/*EOF*/
        -:        -:14446:/*EOF*/
        -:        -:14447:/*EOF*/
        -:        -:14448:/*EOF*/
        -:        -:14449:/*EOF*/
        -:        -:14450:/*EOF*/
        -:        -:14451:/*EOF*/
        -:        -:14452:/*EOF*/
        -:        -:14453:/*EOF*/
        -:        -:14454:/*EOF*/
        -:        -:14455:/*EOF*/
        -:        -:14456:/*EOF*/
        -:        -:14457:/*EOF*/
        -:        -:14458:/*EOF*/
        -:        -:14459:/*EOF*/
        -:        -:14460:/*EOF*/
        -:        -:14461:/*EOF*/
        -:        -:14462:/*EOF*/
        -:        -:14463:/*EOF*/
        -:        -:14464:/*EOF*/
        -:        -:14465:/*EOF*/
        -:        -:14466:/*EOF*/
        -:        -:14467:/*EOF*/
        -:        -:14468:/*EOF*/
        -:        -:14469:/*EOF*/
        -:        -:14470:/*EOF*/
        -:        -:14471:/*EOF*/
        -:        -:14472:/*EOF*/
        -:        -:14473:/*EOF*/
        -:        -:14474:/*EOF*/
        -:        -:14475:/*EOF*/
        -:        -:14476:/*EOF*/
        -:        -:14477:/*EOF*/
        -:        -:14478:/*EOF*/
        -:        -:14479:/*EOF*/
        -:        -:14480:/*EOF*/
        -:        -:14481:/*EOF*/
        -:        -:14482:/*EOF*/
        -:        -:14483:/*EOF*/
        -:        -:14484:/*EOF*/
        -:        -:14485:/*EOF*/
        -:        -:14486:/*EOF*/
        -:        -:14487:/*EOF*/
        -:        -:14488:/*EOF*/
        -:        -:14489:/*EOF*/
        -:        -:14490:/*EOF*/
        -:        -:14491:/*EOF*/
        -:        -:14492:/*EOF*/
        -:        -:14493:/*EOF*/
        -:        -:14494:/*EOF*/
        -:        -:14495:/*EOF*/
        -:        -:14496:/*EOF*/
        -:        -:14497:/*EOF*/
        -:        -:14498:/*EOF*/
        -:        -:14499:/*EOF*/
        -:        -:14500:/*EOF*/
        -:        -:14501:/*EOF*/
        -:        -:14502:/*EOF*/
        -:        -:14503:/*EOF*/
        -:        -:14504:/*EOF*/
        -:        -:14505:/*EOF*/
        -:        -:14506:/*EOF*/
        -:        -:14507:/*EOF*/
        -:        -:14508:/*EOF*/
        -:        -:14509:/*EOF*/
        -:        -:14510:/*EOF*/
        -:        -:14511:/*EOF*/
        -:        -:14512:/*EOF*/
        -:        -:14513:/*EOF*/
        -:        -:14514:/*EOF*/
        -:        -:14515:/*EOF*/
        -:        -:14516:/*EOF*/
        -:        -:14517:/*EOF*/
        -:        -:14518:/*EOF*/
        -:        -:14519:/*EOF*/
        -:        -:14520:/*EOF*/
        -:        -:14521:/*EOF*/
        -:        -:14522:/*EOF*/
        -:        -:14523:/*EOF*/
        -:        -:14524:/*EOF*/
        -:        -:14525:/*EOF*/
        -:        -:14526:/*EOF*/
        -:        -:14527:/*EOF*/
        -:        -:14528:/*EOF*/
        -:        -:14529:/*EOF*/
        -:        -:14530:/*EOF*/
        -:        -:14531:/*EOF*/
        -:        -:14532:/*EOF*/
        -:        -:14533:/*EOF*/
        -:        -:14534:/*EOF*/
        -:        -:14535:/*EOF*/
        -:        -:14536:/*EOF*/
        -:        -:14537:/*EOF*/
        -:        -:14538:/*EOF*/
        -:        -:14539:/*EOF*/
        -:        -:14540:/*EOF*/
        -:        -:14541:/*EOF*/
        -:        -:14542:/*EOF*/
        -:        -:14543:/*EOF*/
        -:        -:14544:/*EOF*/
        -:        -:14545:/*EOF*/
        -:        -:14546:/*EOF*/
        -:        -:14547:/*EOF*/
        -:        -:14548:/*EOF*/
        -:        -:14549:/*EOF*/
        -:        -:14550:/*EOF*/
        -:        -:14551:/*EOF*/
        -:        -:14552:/*EOF*/
        -:        -:14553:/*EOF*/
        -:        -:14554:/*EOF*/
        -:        -:14555:/*EOF*/
        -:        -:14556:/*EOF*/
        -:        -:14557:/*EOF*/
        -:        -:14558:/*EOF*/
        -:        -:14559:/*EOF*/
        -:        -:14560:/*EOF*/
        -:        -:14561:/*EOF*/
        -:        -:14562:/*EOF*/
        -:        -:14563:/*EOF*/
        -:        -:14564:/*EOF*/
        -:        -:14565:/*EOF*/
        -:        -:14566:/*EOF*/
        -:        -:14567:/*EOF*/
        -:        -:14568:/*EOF*/
        -:        -:14569:/*EOF*/
        -:        -:14570:/*EOF*/
        -:        -:14571:/*EOF*/
        -:        -:14572:/*EOF*/
        -:        -:14573:/*EOF*/
        -:        -:14574:/*EOF*/
        -:        -:14575:/*EOF*/
        -:        -:14576:/*EOF*/
        -:        -:14577:/*EOF*/
        -:        -:14578:/*EOF*/
        -:        -:14579:/*EOF*/
        -:        -:14580:/*EOF*/
        -:        -:14581:/*EOF*/
        -:        -:14582:/*EOF*/
        -:        -:14583:/*EOF*/
        -:        -:14584:/*EOF*/
        -:        -:14585:/*EOF*/
        -:        -:14586:/*EOF*/
        -:        -:14587:/*EOF*/
        -:        -:14588:/*EOF*/
        -:        -:14589:/*EOF*/
        -:        -:14590:/*EOF*/
        -:        -:14591:/*EOF*/
        -:        -:14592:/*EOF*/
        -:        -:14593:/*EOF*/
        -:        -:14594:/*EOF*/
        -:        -:14595:/*EOF*/
        -:        -:14596:/*EOF*/
        -:        -:14597:/*EOF*/
        -:        -:14598:/*EOF*/
        -:        -:14599:/*EOF*/
        -:        -:14600:/*EOF*/
        -:        -:14601:/*EOF*/
        -:        -:14602:/*EOF*/
        -:        -:14603:/*EOF*/
        -:        -:14604:/*EOF*/
        -:        -:14605:/*EOF*/
        -:        -:14606:/*EOF*/
        -:        -:14607:/*EOF*/
        -:        -:14608:/*EOF*/
        -:        -:14609:/*EOF*/
        -:        -:14610:/*EOF*/
        -:        -:14611:/*EOF*/
        -:        -:14612:/*EOF*/
        -:        -:14613:/*EOF*/
        -:        -:14614:/*EOF*/
        -:        -:14615:/*EOF*/
        -:        -:14616:/*EOF*/
        -:        -:14617:/*EOF*/
        -:        -:14618:/*EOF*/
        -:        -:14619:/*EOF*/
        -:        -:14620:/*EOF*/
        -:        -:14621:/*EOF*/
        -:        -:14622:/*EOF*/
        -:        -:14623:/*EOF*/
        -:        -:14624:/*EOF*/
        -:        -:14625:/*EOF*/
        -:        -:14626:/*EOF*/
        -:        -:14627:/*EOF*/
        -:        -:14628:/*EOF*/
        -:        -:14629:/*EOF*/
        -:        -:14630:/*EOF*/
        -:        -:14631:/*EOF*/
        -:        -:14632:/*EOF*/
        -:        -:14633:/*EOF*/
        -:        -:14634:/*EOF*/
        -:        -:14635:/*EOF*/
        -:        -:14636:/*EOF*/
        -:        -:14637:/*EOF*/
        -:        -:14638:/*EOF*/
        -:        -:14639:/*EOF*/
        -:        -:14640:/*EOF*/
        -:        -:14641:/*EOF*/
        -:        -:14642:/*EOF*/
        -:        -:14643:/*EOF*/
        -:        -:14644:/*EOF*/
        -:        -:14645:/*EOF*/
        -:        -:14646:/*EOF*/
        -:        -:14647:/*EOF*/
        -:        -:14648:/*EOF*/
        -:        -:14649:/*EOF*/
        -:        -:14650:/*EOF*/
        -:        -:14651:/*EOF*/
        -:        -:14652:/*EOF*/
        -:        -:14653:/*EOF*/
        -:        -:14654:/*EOF*/
        -:        -:14655:/*EOF*/
        -:        -:14656:/*EOF*/
        -:        -:14657:/*EOF*/
        -:        -:14658:/*EOF*/
        -:        -:14659:/*EOF*/
        -:        -:14660:/*EOF*/
        -:        -:14661:/*EOF*/
        -:        -:14662:/*EOF*/
        -:        -:14663:/*EOF*/
        -:        -:14664:/*EOF*/
        -:        -:14665:/*EOF*/
        -:        -:14666:/*EOF*/
        -:        -:14667:/*EOF*/
        -:        -:14668:/*EOF*/
        -:        -:14669:/*EOF*/
        -:        -:14670:/*EOF*/
        -:        -:14671:/*EOF*/
        -:        -:14672:/*EOF*/
        -:        -:14673:/*EOF*/
        -:        -:14674:/*EOF*/
        -:        -:14675:/*EOF*/
        -:        -:14676:/*EOF*/
        -:        -:14677:/*EOF*/
        -:        -:14678:/*EOF*/
        -:        -:14679:/*EOF*/
        -:        -:14680:/*EOF*/
        -:        -:14681:/*EOF*/
        -:        -:14682:/*EOF*/
        -:        -:14683:/*EOF*/
        -:        -:14684:/*EOF*/
        -:        -:14685:/*EOF*/
        -:        -:14686:/*EOF*/
        -:        -:14687:/*EOF*/
        -:        -:14688:/*EOF*/
        -:        -:14689:/*EOF*/
        -:        -:14690:/*EOF*/
        -:        -:14691:/*EOF*/
        -:        -:14692:/*EOF*/
        -:        -:14693:/*EOF*/
        -:        -:14694:/*EOF*/
        -:        -:14695:/*EOF*/
        -:        -:14696:/*EOF*/
        -:        -:14697:/*EOF*/
        -:        -:14698:/*EOF*/
        -:        -:14699:/*EOF*/
        -:        -:14700:/*EOF*/
        -:        -:14701:/*EOF*/
        -:        -:14702:/*EOF*/
        -:        -:14703:/*EOF*/
        -:        -:14704:/*EOF*/
        -:        -:14705:/*EOF*/
        -:        -:14706:/*EOF*/
        -:        -:14707:/*EOF*/
        -:        -:14708:/*EOF*/
        -:        -:14709:/*EOF*/
        -:        -:14710:/*EOF*/
        -:        -:14711:/*EOF*/
        -:        -:14712:/*EOF*/
        -:        -:14713:/*EOF*/
        -:        -:14714:/*EOF*/
        -:        -:14715:/*EOF*/
        -:        -:14716:/*EOF*/
        -:        -:14717:/*EOF*/
        -:        -:14718:/*EOF*/
        -:        -:14719:/*EOF*/
        -:        -:14720:/*EOF*/
        -:        -:14721:/*EOF*/
        -:        -:14722:/*EOF*/
        -:        -:14723:/*EOF*/
        -:        -:14724:/*EOF*/
        -:        -:14725:/*EOF*/
        -:        -:14726:/*EOF*/
        -:        -:14727:/*EOF*/
        -:        -:14728:/*EOF*/
        -:        -:14729:/*EOF*/
        -:        -:14730:/*EOF*/
        -:        -:14731:/*EOF*/
        -:        -:14732:/*EOF*/
        -:        -:14733:/*EOF*/
        -:        -:14734:/*EOF*/
        -:        -:14735:/*EOF*/
        -:        -:14736:/*EOF*/
        -:        -:14737:/*EOF*/
        -:        -:14738:/*EOF*/
        -:        -:14739:/*EOF*/
        -:        -:14740:/*EOF*/
        -:        -:14741:/*EOF*/
        -:        -:14742:/*EOF*/
        -:        -:14743:/*EOF*/
        -:        -:14744:/*EOF*/
        -:        -:14745:/*EOF*/
        -:        -:14746:/*EOF*/
        -:        -:14747:/*EOF*/
        -:        -:14748:/*EOF*/
        -:        -:14749:/*EOF*/
        -:        -:14750:/*EOF*/
        -:        -:14751:/*EOF*/
        -:        -:14752:/*EOF*/
        -:        -:14753:/*EOF*/
        -:        -:14754:/*EOF*/
        -:        -:14755:/*EOF*/
        -:        -:14756:/*EOF*/
        -:        -:14757:/*EOF*/
        -:        -:14758:/*EOF*/
        -:        -:14759:/*EOF*/
        -:        -:14760:/*EOF*/
        -:        -:14761:/*EOF*/
        -:        -:14762:/*EOF*/
        -:        -:14763:/*EOF*/
        -:        -:14764:/*EOF*/
        -:        -:14765:/*EOF*/
        -:        -:14766:/*EOF*/
        -:        -:14767:/*EOF*/
        -:        -:14768:/*EOF*/
        -:        -:14769:/*EOF*/
        -:        -:14770:/*EOF*/
        -:        -:14771:/*EOF*/
        -:        -:14772:/*EOF*/
        -:        -:14773:/*EOF*/
        -:        -:14774:/*EOF*/
        -:        -:14775:/*EOF*/
        -:        -:14776:/*EOF*/
        -:        -:14777:/*EOF*/
        -:        -:14778:/*EOF*/
        -:        -:14779:/*EOF*/
        -:        -:14780:/*EOF*/
        -:        -:14781:/*EOF*/
        -:        -:14782:/*EOF*/
        -:        -:14783:/*EOF*/
        -:        -:14784:/*EOF*/
        -:        -:14785:/*EOF*/
        -:        -:14786:/*EOF*/
        -:        -:14787:/*EOF*/
        -:        -:14788:/*EOF*/
        -:        -:14789:/*EOF*/
        -:        -:14790:/*EOF*/
        -:        -:14791:/*EOF*/
        -:        -:14792:/*EOF*/
        -:        -:14793:/*EOF*/
        -:        -:14794:/*EOF*/
        -:        -:14795:/*EOF*/
        -:        -:14796:/*EOF*/
        -:        -:14797:/*EOF*/
        -:        -:14798:/*EOF*/
        -:        -:14799:/*EOF*/
        -:        -:14800:/*EOF*/
        -:        -:14801:/*EOF*/
        -:        -:14802:/*EOF*/
        -:        -:14803:/*EOF*/
        -:        -:14804:/*EOF*/
        -:        -:14805:/*EOF*/
        -:        -:14806:/*EOF*/
        -:        -:14807:/*EOF*/
        -:        -:14808:/*EOF*/
        -:        -:14809:/*EOF*/
        -:        -:14810:/*EOF*/
        -:        -:14811:/*EOF*/
        -:        -:14812:/*EOF*/
        -:        -:14813:/*EOF*/
        -:        -:14814:/*EOF*/
        -:        -:14815:/*EOF*/
        -:        -:14816:/*EOF*/
        -:        -:14817:/*EOF*/
        -:        -:14818:/*EOF*/
        -:        -:14819:/*EOF*/
        -:        -:14820:/*EOF*/
        -:        -:14821:/*EOF*/
        -:        -:14822:/*EOF*/
        -:        -:14823:/*EOF*/
        -:        -:14824:/*EOF*/
        -:        -:14825:/*EOF*/
        -:        -:14826:/*EOF*/
        -:        -:14827:/*EOF*/
        -:        -:14828:/*EOF*/
        -:        -:14829:/*EOF*/
        -:        -:14830:/*EOF*/
        -:        -:14831:/*EOF*/
        -:        -:14832:/*EOF*/
        -:        -:14833:/*EOF*/
        -:        -:14834:/*EOF*/
        -:        -:14835:/*EOF*/
        -:        -:14836:/*EOF*/
        -:        -:14837:/*EOF*/
        -:        -:14838:/*EOF*/
        -:        -:14839:/*EOF*/
        -:        -:14840:/*EOF*/
        -:        -:14841:/*EOF*/
        -:        -:14842:/*EOF*/
        -:        -:14843:/*EOF*/
        -:        -:14844:/*EOF*/
        -:        -:14845:/*EOF*/
        -:        -:14846:/*EOF*/
        -:        -:14847:/*EOF*/
        -:        -:14848:/*EOF*/
        -:        -:14849:/*EOF*/
        -:        -:14850:/*EOF*/
        -:        -:14851:/*EOF*/
        -:        -:14852:/*EOF*/
        -:        -:14853:/*EOF*/
        -:        -:14854:/*EOF*/
        -:        -:14855:/*EOF*/
        -:        -:14856:/*EOF*/
        -:        -:14857:/*EOF*/
        -:        -:14858:/*EOF*/
        -:        -:14859:/*EOF*/
        -:        -:14860:/*EOF*/
        -:        -:14861:/*EOF*/
        -:        -:14862:/*EOF*/
        -:        -:14863:/*EOF*/
        -:        -:14864:/*EOF*/
        -:        -:14865:/*EOF*/
        -:        -:14866:/*EOF*/
        -:        -:14867:/*EOF*/
        -:        -:14868:/*EOF*/
        -:        -:14869:/*EOF*/
        -:        -:14870:/*EOF*/
        -:        -:14871:/*EOF*/
        -:        -:14872:/*EOF*/
        -:        -:14873:/*EOF*/
        -:        -:14874:/*EOF*/
        -:        -:14875:/*EOF*/
        -:        -:14876:/*EOF*/
        -:        -:14877:/*EOF*/
        -:        -:14878:/*EOF*/
        -:        -:14879:/*EOF*/
        -:        -:14880:/*EOF*/
        -:        -:14881:/*EOF*/
        -:        -:14882:/*EOF*/
        -:        -:14883:/*EOF*/
        -:        -:14884:/*EOF*/
        -:        -:14885:/*EOF*/
        -:        -:14886:/*EOF*/
        -:        -:14887:/*EOF*/
        -:        -:14888:/*EOF*/
        -:        -:14889:/*EOF*/
        -:        -:14890:/*EOF*/
        -:        -:14891:/*EOF*/
        -:        -:14892:/*EOF*/
        -:        -:14893:/*EOF*/
        -:        -:14894:/*EOF*/
        -:        -:14895:/*EOF*/
        -:        -:14896:/*EOF*/
        -:        -:14897:/*EOF*/
        -:        -:14898:/*EOF*/
        -:        -:14899:/*EOF*/
        -:        -:14900:/*EOF*/
        -:        -:14901:/*EOF*/
        -:        -:14902:/*EOF*/
        -:        -:14903:/*EOF*/
        -:        -:14904:/*EOF*/
        -:        -:14905:/*EOF*/
        -:        -:14906:/*EOF*/
        -:        -:14907:/*EOF*/
        -:        -:14908:/*EOF*/
        -:        -:14909:/*EOF*/
        -:        -:14910:/*EOF*/
        -:        -:14911:/*EOF*/
        -:        -:14912:/*EOF*/
        -:        -:14913:/*EOF*/
        -:        -:14914:/*EOF*/
        -:        -:14915:/*EOF*/
        -:        -:14916:/*EOF*/
        -:        -:14917:/*EOF*/
        -:        -:14918:/*EOF*/
        -:        -:14919:/*EOF*/
        -:        -:14920:/*EOF*/
        -:        -:14921:/*EOF*/
        -:        -:14922:/*EOF*/
        -:        -:14923:/*EOF*/
        -:        -:14924:/*EOF*/
        -:        -:14925:/*EOF*/
        -:        -:14926:/*EOF*/
        -:        -:14927:/*EOF*/
        -:        -:14928:/*EOF*/
        -:        -:14929:/*EOF*/
        -:        -:14930:/*EOF*/
        -:        -:14931:/*EOF*/
        -:        -:14932:/*EOF*/
        -:        -:14933:/*EOF*/
        -:        -:14934:/*EOF*/
        -:        -:14935:/*EOF*/
        -:        -:14936:/*EOF*/
        -:        -:14937:/*EOF*/
        -:        -:14938:/*EOF*/
        -:        -:14939:/*EOF*/
        -:        -:14940:/*EOF*/
        -:        -:14941:/*EOF*/
        -:        -:14942:/*EOF*/
        -:        -:14943:/*EOF*/
        -:        -:14944:/*EOF*/
        -:        -:14945:/*EOF*/
        -:        -:14946:/*EOF*/
        -:        -:14947:/*EOF*/
        -:        -:14948:/*EOF*/
        -:        -:14949:/*EOF*/
        -:        -:14950:/*EOF*/
        -:        -:14951:/*EOF*/
        -:        -:14952:/*EOF*/
        -:        -:14953:/*EOF*/
        -:        -:14954:/*EOF*/
        -:        -:14955:/*EOF*/
        -:        -:14956:/*EOF*/
        -:        -:14957:/*EOF*/
        -:        -:14958:/*EOF*/
        -:        -:14959:/*EOF*/
        -:        -:14960:/*EOF*/
        -:        -:14961:/*EOF*/
        -:        -:14962:/*EOF*/
        -:        -:14963:/*EOF*/
        -:        -:14964:/*EOF*/
        -:        -:14965:/*EOF*/
        -:        -:14966:/*EOF*/
        -:        -:14967:/*EOF*/
        -:        -:14968:/*EOF*/
        -:        -:14969:/*EOF*/
        -:        -:14970:/*EOF*/
        -:        -:14971:/*EOF*/
        -:        -:14972:/*EOF*/
        -:        -:14973:/*EOF*/
        -:        -:14974:/*EOF*/
        -:        -:14975:/*EOF*/
        -:        -:14976:/*EOF*/
        -:        -:14977:/*EOF*/
        -:        -:14978:/*EOF*/
        -:        -:14979:/*EOF*/
        -:        -:14980:/*EOF*/
        -:        -:14981:/*EOF*/
        -:        -:14982:/*EOF*/
        -:        -:14983:/*EOF*/
        -:        -:14984:/*EOF*/
        -:        -:14985:/*EOF*/
        -:        -:14986:/*EOF*/
        -:        -:14987:/*EOF*/
        -:        -:14988:/*EOF*/
        -:        -:14989:/*EOF*/
        -:        -:14990:/*EOF*/
        -:        -:14991:/*EOF*/
        -:        -:14992:/*EOF*/
        -:        -:14993:/*EOF*/
        -:        -:14994:/*EOF*/
        -:        -:14995:/*EOF*/
        -:        -:14996:/*EOF*/
        -:        -:14997:/*EOF*/
        -:        -:14998:/*EOF*/
        -:        -:14999:/*EOF*/
        -:        -:15000:/*EOF*/
        -:        -:15001:/*EOF*/
        -:        -:15002:/*EOF*/
        -:        -:15003:/*EOF*/
        -:        -:15004:/*EOF*/
        -:        -:15005:/*EOF*/
        -:        -:15006:/*EOF*/
        -:        -:15007:/*EOF*/
        -:        -:15008:/*EOF*/
        -:        -:15009:/*EOF*/
        -:        -:15010:/*EOF*/
        -:        -:15011:/*EOF*/
        -:        -:15012:/*EOF*/
        -:        -:15013:/*EOF*/
        -:        -:15014:/*EOF*/
        -:        -:15015:/*EOF*/
        -:        -:15016:/*EOF*/
        -:        -:15017:/*EOF*/
        -:        -:15018:/*EOF*/
        -:        -:15019:/*EOF*/
        -:        -:15020:/*EOF*/
        -:        -:15021:/*EOF*/
        -:        -:15022:/*EOF*/
        -:        -:15023:/*EOF*/
        -:        -:15024:/*EOF*/
        -:        -:15025:/*EOF*/
        -:        -:15026:/*EOF*/
        -:        -:15027:/*EOF*/
        -:        -:15028:/*EOF*/
        -:        -:15029:/*EOF*/
        -:        -:15030:/*EOF*/
        -:        -:15031:/*EOF*/
        -:        -:15032:/*EOF*/
        -:        -:15033:/*EOF*/
        -:        -:15034:/*EOF*/
        -:        -:15035:/*EOF*/
        -:        -:15036:/*EOF*/
        -:        -:15037:/*EOF*/
        -:        -:15038:/*EOF*/
        -:        -:15039:/*EOF*/
        -:        -:15040:/*EOF*/
        -:        -:15041:/*EOF*/
        -:        -:15042:/*EOF*/
        -:        -:15043:/*EOF*/
        -:        -:15044:/*EOF*/
        -:        -:15045:/*EOF*/
        -:        -:15046:/*EOF*/
        -:        -:15047:/*EOF*/
        -:        -:15048:/*EOF*/
        -:        -:15049:/*EOF*/
        -:        -:15050:/*EOF*/
        -:        -:15051:/*EOF*/
        -:        -:15052:/*EOF*/
        -:        -:15053:/*EOF*/
        -:        -:15054:/*EOF*/
        -:        -:15055:/*EOF*/
        -:        -:15056:/*EOF*/
        -:        -:15057:/*EOF*/
        -:        -:15058:/*EOF*/
        -:        -:15059:/*EOF*/
        -:        -:15060:/*EOF*/
        -:        -:15061:/*EOF*/
        -:        -:15062:/*EOF*/
        -:        -:15063:/*EOF*/
        -:        -:15064:/*EOF*/
        -:        -:15065:/*EOF*/
        -:        -:15066:/*EOF*/
        -:        -:15067:/*EOF*/
        -:        -:15068:/*EOF*/
        -:        -:15069:/*EOF*/
        -:        -:15070:/*EOF*/
        -:        -:15071:/*EOF*/
        -:        -:15072:/*EOF*/
        -:        -:15073:/*EOF*/
        -:        -:15074:/*EOF*/
        -:        -:15075:/*EOF*/
        -:        -:15076:/*EOF*/
        -:        -:15077:/*EOF*/
        -:        -:15078:/*EOF*/
        -:        -:15079:/*EOF*/
        -:        -:15080:/*EOF*/
        -:        -:15081:/*EOF*/
        -:        -:15082:/*EOF*/
        -:        -:15083:/*EOF*/
        -:        -:15084:/*EOF*/
        -:        -:15085:/*EOF*/
        -:        -:15086:/*EOF*/
        -:        -:15087:/*EOF*/
        -:        -:15088:/*EOF*/
        -:        -:15089:/*EOF*/
        -:        -:15090:/*EOF*/
        -:        -:15091:/*EOF*/
        -:        -:15092:/*EOF*/
        -:        -:15093:/*EOF*/
        -:        -:15094:/*EOF*/
        -:        -:15095:/*EOF*/
        -:        -:15096:/*EOF*/
        -:        -:15097:/*EOF*/
        -:        -:15098:/*EOF*/
        -:        -:15099:/*EOF*/
        -:        -:15100:/*EOF*/
        -:        -:15101:/*EOF*/
        -:        -:15102:/*EOF*/
        -:        -:15103:/*EOF*/
        -:        -:15104:/*EOF*/
        -:        -:15105:/*EOF*/
        -:        -:15106:/*EOF*/
        -:        -:15107:/*EOF*/
        -:        -:15108:/*EOF*/
        -:        -:15109:/*EOF*/
        -:        -:15110:/*EOF*/
        -:        -:15111:/*EOF*/
        -:        -:15112:/*EOF*/
        -:        -:15113:/*EOF*/
        -:        -:15114:/*EOF*/
        -:        -:15115:/*EOF*/
        -:        -:15116:/*EOF*/
        -:        -:15117:/*EOF*/
        -:        -:15118:/*EOF*/
        -:        -:15119:/*EOF*/
        -:        -:15120:/*EOF*/
        -:        -:15121:/*EOF*/
        -:        -:15122:/*EOF*/
        -:        -:15123:/*EOF*/
        -:        -:15124:/*EOF*/
        -:        -:15125:/*EOF*/
        -:        -:15126:/*EOF*/
        -:        -:15127:/*EOF*/
        -:        -:15128:/*EOF*/
        -:        -:15129:/*EOF*/
        -:        -:15130:/*EOF*/
        -:        -:15131:/*EOF*/
        -:        -:15132:/*EOF*/
        -:        -:15133:/*EOF*/
        -:        -:15134:/*EOF*/
        -:        -:15135:/*EOF*/
        -:        -:15136:/*EOF*/
        -:        -:15137:/*EOF*/
        -:        -:15138:/*EOF*/
        -:        -:15139:/*EOF*/
        -:        -:15140:/*EOF*/
        -:        -:15141:/*EOF*/
        -:        -:15142:/*EOF*/
        -:        -:15143:/*EOF*/
        -:        -:15144:/*EOF*/
        -:        -:15145:/*EOF*/
        -:        -:15146:/*EOF*/
        -:        -:15147:/*EOF*/
        -:        -:15148:/*EOF*/
        -:        -:15149:/*EOF*/
        -:        -:15150:/*EOF*/
        -:        -:15151:/*EOF*/
        -:        -:15152:/*EOF*/
        -:        -:15153:/*EOF*/
        -:        -:15154:/*EOF*/
        -:        -:15155:/*EOF*/
        -:        -:15156:/*EOF*/
        -:        -:15157:/*EOF*/
        -:        -:15158:/*EOF*/
        -:        -:15159:/*EOF*/
        -:        -:15160:/*EOF*/
        -:        -:15161:/*EOF*/
        -:        -:15162:/*EOF*/
        -:        -:15163:/*EOF*/
        -:        -:15164:/*EOF*/
        -:        -:15165:/*EOF*/
        -:        -:15166:/*EOF*/
        -:        -:15167:/*EOF*/
        -:        -:15168:/*EOF*/
        -:        -:15169:/*EOF*/
        -:        -:15170:/*EOF*/
        -:        -:15171:/*EOF*/
        -:        -:15172:/*EOF*/
        -:        -:15173:/*EOF*/
        -:        -:15174:/*EOF*/
        -:        -:15175:/*EOF*/
        -:        -:15176:/*EOF*/
        -:        -:15177:/*EOF*/
        -:        -:15178:/*EOF*/
        -:        -:15179:/*EOF*/
        -:        -:15180:/*EOF*/
        -:        -:15181:/*EOF*/
        -:        -:15182:/*EOF*/
        -:        -:15183:/*EOF*/
        -:        -:15184:/*EOF*/
        -:        -:15185:/*EOF*/
        -:        -:15186:/*EOF*/
        -:        -:15187:/*EOF*/
        -:        -:15188:/*EOF*/
        -:        -:15189:/*EOF*/
        -:        -:15190:/*EOF*/
        -:        -:15191:/*EOF*/
        -:        -:15192:/*EOF*/
        -:        -:15193:/*EOF*/
        -:        -:15194:/*EOF*/
        -:        -:15195:/*EOF*/
        -:        -:15196:/*EOF*/
        -:        -:15197:/*EOF*/
        -:        -:15198:/*EOF*/
        -:        -:15199:/*EOF*/
        -:        -:15200:/*EOF*/
        -:        -:15201:/*EOF*/
        -:        -:15202:/*EOF*/
        -:        -:15203:/*EOF*/
        -:        -:15204:/*EOF*/
        -:        -:15205:/*EOF*/
        -:        -:15206:/*EOF*/
        -:        -:15207:/*EOF*/
        -:        -:15208:/*EOF*/
        -:        -:15209:/*EOF*/
        -:        -:15210:/*EOF*/
        -:        -:15211:/*EOF*/
        -:        -:15212:/*EOF*/
        -:        -:15213:/*EOF*/
        -:        -:15214:/*EOF*/
        -:        -:15215:/*EOF*/
        -:        -:15216:/*EOF*/
        -:        -:15217:/*EOF*/
        -:        -:15218:/*EOF*/
        -:        -:15219:/*EOF*/
        -:        -:15220:/*EOF*/
        -:        -:15221:/*EOF*/
        -:        -:15222:/*EOF*/
        -:        -:15223:/*EOF*/
        -:        -:15224:/*EOF*/
        -:        -:15225:/*EOF*/
        -:        -:15226:/*EOF*/
        -:        -:15227:/*EOF*/
        -:        -:15228:/*EOF*/
        -:        -:15229:/*EOF*/
        -:        -:15230:/*EOF*/
        -:        -:15231:/*EOF*/
        -:        -:15232:/*EOF*/
        -:        -:15233:/*EOF*/
        -:        -:15234:/*EOF*/
        -:        -:15235:/*EOF*/
        -:        -:15236:/*EOF*/
        -:        -:15237:/*EOF*/
        -:        -:15238:/*EOF*/
        -:        -:15239:/*EOF*/
        -:        -:15240:/*EOF*/
        -:        -:15241:/*EOF*/
        -:        -:15242:/*EOF*/
        -:        -:15243:/*EOF*/
        -:        -:15244:/*EOF*/
        -:        -:15245:/*EOF*/
        -:        -:15246:/*EOF*/
        -:        -:15247:/*EOF*/
        -:        -:15248:/*EOF*/
        -:        -:15249:/*EOF*/
        -:        -:15250:/*EOF*/
        -:        -:15251:/*EOF*/
        -:        -:15252:/*EOF*/
        -:        -:15253:/*EOF*/
        -:        -:15254:/*EOF*/
        -:        -:15255:/*EOF*/
        -:        -:15256:/*EOF*/
        -:        -:15257:/*EOF*/
        -:        -:15258:/*EOF*/
        -:        -:15259:/*EOF*/
        -:        -:15260:/*EOF*/
        -:        -:15261:/*EOF*/
        -:        -:15262:/*EOF*/
        -:        -:15263:/*EOF*/
        -:        -:15264:/*EOF*/
        -:        -:15265:/*EOF*/
        -:        -:15266:/*EOF*/
        -:        -:15267:/*EOF*/
        -:        -:15268:/*EOF*/
        -:        -:15269:/*EOF*/
        -:        -:15270:/*EOF*/
        -:        -:15271:/*EOF*/
        -:        -:15272:/*EOF*/
        -:        -:15273:/*EOF*/
        -:        -:15274:/*EOF*/
        -:        -:15275:/*EOF*/
        -:        -:15276:/*EOF*/
        -:        -:15277:/*EOF*/
        -:        -:15278:/*EOF*/
        -:        -:15279:/*EOF*/
        -:        -:15280:/*EOF*/
        -:        -:15281:/*EOF*/
        -:        -:15282:/*EOF*/
        -:        -:15283:/*EOF*/
        -:        -:15284:/*EOF*/
        -:        -:15285:/*EOF*/
        -:        -:15286:/*EOF*/
        -:        -:15287:/*EOF*/
        -:        -:15288:/*EOF*/
        -:        -:15289:/*EOF*/
        -:        -:15290:/*EOF*/
        -:        -:15291:/*EOF*/
        -:        -:15292:/*EOF*/
        -:        -:15293:/*EOF*/
        -:        -:15294:/*EOF*/
        -:        -:15295:/*EOF*/
        -:        -:15296:/*EOF*/
        -:        -:15297:/*EOF*/
        -:        -:15298:/*EOF*/
        -:        -:15299:/*EOF*/
        -:        -:15300:/*EOF*/
        -:        -:15301:/*EOF*/
        -:        -:15302:/*EOF*/
        -:        -:15303:/*EOF*/
        -:        -:15304:/*EOF*/
        -:        -:15305:/*EOF*/
        -:        -:15306:/*EOF*/
        -:        -:15307:/*EOF*/
        -:        -:15308:/*EOF*/
        -:        -:15309:/*EOF*/
        -:        -:15310:/*EOF*/
        -:        -:15311:/*EOF*/
        -:        -:15312:/*EOF*/
        -:        -:15313:/*EOF*/
        -:        -:15314:/*EOF*/
        -:        -:15315:/*EOF*/
        -:        -:15316:/*EOF*/
        -:        -:15317:/*EOF*/
        -:        -:15318:/*EOF*/
        -:        -:15319:/*EOF*/
        -:        -:15320:/*EOF*/
        -:        -:15321:/*EOF*/
        -:        -:15322:/*EOF*/
        -:        -:15323:/*EOF*/
        -:        -:15324:/*EOF*/
        -:        -:15325:/*EOF*/
        -:        -:15326:/*EOF*/
        -:        -:15327:/*EOF*/
        -:        -:15328:/*EOF*/
        -:        -:15329:/*EOF*/
        -:        -:15330:/*EOF*/
        -:        -:15331:/*EOF*/
        -:        -:15332:/*EOF*/
        -:        -:15333:/*EOF*/
        -:        -:15334:/*EOF*/
        -:        -:15335:/*EOF*/
        -:        -:15336:/*EOF*/
        -:        -:15337:/*EOF*/
        -:        -:15338:/*EOF*/
        -:        -:15339:/*EOF*/
        -:        -:15340:/*EOF*/
        -:        -:15341:/*EOF*/
        -:        -:15342:/*EOF*/
        -:        -:15343:/*EOF*/
        -:        -:15344:/*EOF*/
        -:        -:15345:/*EOF*/
        -:        -:15346:/*EOF*/
        -:        -:15347:/*EOF*/
        -:        -:15348:/*EOF*/
        -:        -:15349:/*EOF*/
        -:        -:15350:/*EOF*/
        -:        -:15351:/*EOF*/
        -:        -:15352:/*EOF*/
        -:        -:15353:/*EOF*/
        -:        -:15354:/*EOF*/
        -:        -:15355:/*EOF*/
        -:        -:15356:/*EOF*/
        -:        -:15357:/*EOF*/
        -:        -:15358:/*EOF*/
        -:        -:15359:/*EOF*/
        -:        -:15360:/*EOF*/
        -:        -:15361:/*EOF*/
        -:        -:15362:/*EOF*/
        -:        -:15363:/*EOF*/
        -:        -:15364:/*EOF*/
        -:        -:15365:/*EOF*/
        -:        -:15366:/*EOF*/
        -:        -:15367:/*EOF*/
        -:        -:15368:/*EOF*/
        -:        -:15369:/*EOF*/
        -:        -:15370:/*EOF*/
        -:        -:15371:/*EOF*/
        -:        -:15372:/*EOF*/
        -:        -:15373:/*EOF*/
        -:        -:15374:/*EOF*/
        -:        -:15375:/*EOF*/
        -:        -:15376:/*EOF*/
        -:        -:15377:/*EOF*/
        -:        -:15378:/*EOF*/
        -:        -:15379:/*EOF*/
        -:        -:15380:/*EOF*/
        -:        -:15381:/*EOF*/
        -:        -:15382:/*EOF*/
        -:        -:15383:/*EOF*/
        -:        -:15384:/*EOF*/
        -:        -:15385:/*EOF*/
        -:        -:15386:/*EOF*/
        -:        -:15387:/*EOF*/
        -:        -:15388:/*EOF*/
        -:        -:15389:/*EOF*/
        -:        -:15390:/*EOF*/
        -:        -:15391:/*EOF*/
        -:        -:15392:/*EOF*/
        -:        -:15393:/*EOF*/
        -:        -:15394:/*EOF*/
        -:        -:15395:/*EOF*/
        -:        -:15396:/*EOF*/
        -:        -:15397:/*EOF*/
        -:        -:15398:/*EOF*/
        -:        -:15399:/*EOF*/
        -:        -:15400:/*EOF*/
        -:        -:15401:/*EOF*/
        -:        -:15402:/*EOF*/
        -:        -:15403:/*EOF*/
        -:        -:15404:/*EOF*/
        -:        -:15405:/*EOF*/
        -:        -:15406:/*EOF*/
        -:        -:15407:/*EOF*/
        -:        -:15408:/*EOF*/
        -:        -:15409:/*EOF*/
        -:        -:15410:/*EOF*/
        -:        -:15411:/*EOF*/
        -:        -:15412:/*EOF*/
        -:        -:15413:/*EOF*/
        -:        -:15414:/*EOF*/
        -:        -:15415:/*EOF*/
        -:        -:15416:/*EOF*/
        -:        -:15417:/*EOF*/
        -:        -:15418:/*EOF*/
        -:        -:15419:/*EOF*/
        -:        -:15420:/*EOF*/
        -:        -:15421:/*EOF*/
        -:        -:15422:/*EOF*/
        -:        -:15423:/*EOF*/
        -:        -:15424:/*EOF*/
        -:        -:15425:/*EOF*/
        -:        -:15426:/*EOF*/
        -:        -:15427:/*EOF*/
        -:        -:15428:/*EOF*/
        -:        -:15429:/*EOF*/
        -:        -:15430:/*EOF*/
        -:        -:15431:/*EOF*/
        -:        -:15432:/*EOF*/
        -:        -:15433:/*EOF*/
        -:        -:15434:/*EOF*/
        -:        -:15435:/*EOF*/
        -:        -:15436:/*EOF*/
        -:        -:15437:/*EOF*/
        -:        -:15438:/*EOF*/
        -:        -:15439:/*EOF*/
        -:        -:15440:/*EOF*/
        -:        -:15441:/*EOF*/
        -:        -:15442:/*EOF*/
        -:        -:15443:/*EOF*/
        -:        -:15444:/*EOF*/
        -:        -:15445:/*EOF*/
        -:        -:15446:/*EOF*/
        -:        -:15447:/*EOF*/
        -:        -:15448:/*EOF*/
        -:        -:15449:/*EOF*/
        -:        -:15450:/*EOF*/
        -:        -:15451:/*EOF*/
        -:        -:15452:/*EOF*/
        -:        -:15453:/*EOF*/
        -:        -:15454:/*EOF*/
        -:        -:15455:/*EOF*/
        -:        -:15456:/*EOF*/
        -:        -:15457:/*EOF*/
        -:        -:15458:/*EOF*/
        -:        -:15459:/*EOF*/
        -:        -:15460:/*EOF*/
        -:        -:15461:/*EOF*/
        -:        -:15462:/*EOF*/
        -:        -:15463:/*EOF*/
        -:        -:15464:/*EOF*/
        -:        -:15465:/*EOF*/
        -:        -:15466:/*EOF*/
        -:        -:15467:/*EOF*/
        -:        -:15468:/*EOF*/
        -:        -:15469:/*EOF*/
        -:        -:15470:/*EOF*/
        -:        -:15471:/*EOF*/
        -:        -:15472:/*EOF*/
        -:        -:15473:/*EOF*/
        -:        -:15474:/*EOF*/
        -:        -:15475:/*EOF*/
        -:        -:15476:/*EOF*/
        -:        -:15477:/*EOF*/
        -:        -:15478:/*EOF*/
        -:        -:15479:/*EOF*/
        -:        -:15480:/*EOF*/
        -:        -:15481:/*EOF*/
        -:        -:15482:/*EOF*/
        -:        -:15483:/*EOF*/
        -:        -:15484:/*EOF*/
        -:        -:15485:/*EOF*/
        -:        -:15486:/*EOF*/
        -:        -:15487:/*EOF*/
        -:        -:15488:/*EOF*/
        -:        -:15489:/*EOF*/
        -:        -:15490:/*EOF*/
        -:        -:15491:/*EOF*/
        -:        -:15492:/*EOF*/
        -:        -:15493:/*EOF*/
        -:        -:15494:/*EOF*/
        -:        -:15495:/*EOF*/
        -:        -:15496:/*EOF*/
        -:        -:15497:/*EOF*/
        -:        -:15498:/*EOF*/
        -:        -:15499:/*EOF*/
        -:        -:15500:/*EOF*/
        -:        -:15501:/*EOF*/
        -:        -:15502:/*EOF*/
        -:        -:15503:/*EOF*/
        -:        -:15504:/*EOF*/
        -:        -:15505:/*EOF*/
        -:        -:15506:/*EOF*/
        -:        -:15507:/*EOF*/
        -:        -:15508:/*EOF*/
        -:        -:15509:/*EOF*/
        -:        -:15510:/*EOF*/
        -:        -:15511:/*EOF*/
        -:        -:15512:/*EOF*/
        -:        -:15513:/*EOF*/
        -:        -:15514:/*EOF*/
        -:        -:15515:/*EOF*/
        -:        -:15516:/*EOF*/
        -:        -:15517:/*EOF*/
        -:        -:15518:/*EOF*/
        -:        -:15519:/*EOF*/
        -:        -:15520:/*EOF*/
        -:        -:15521:/*EOF*/
        -:        -:15522:/*EOF*/
        -:        -:15523:/*EOF*/
        -:        -:15524:/*EOF*/
        -:        -:15525:/*EOF*/
        -:        -:15526:/*EOF*/
        -:        -:15527:/*EOF*/
        -:        -:15528:/*EOF*/
        -:        -:15529:/*EOF*/
        -:        -:15530:/*EOF*/
        -:        -:15531:/*EOF*/
        -:        -:15532:/*EOF*/
        -:        -:15533:/*EOF*/
        -:        -:15534:/*EOF*/
        -:        -:15535:/*EOF*/
        -:        -:15536:/*EOF*/
        -:        -:15537:/*EOF*/
        -:        -:15538:/*EOF*/
        -:        -:15539:/*EOF*/
        -:        -:15540:/*EOF*/
        -:        -:15541:/*EOF*/
        -:        -:15542:/*EOF*/
        -:        -:15543:/*EOF*/
        -:        -:15544:/*EOF*/
        -:        -:15545:/*EOF*/
        -:        -:15546:/*EOF*/
        -:        -:15547:/*EOF*/
        -:        -:15548:/*EOF*/
        -:        -:15549:/*EOF*/
        -:        -:15550:/*EOF*/
        -:        -:15551:/*EOF*/
        -:        -:15552:/*EOF*/
        -:        -:15553:/*EOF*/
        -:        -:15554:/*EOF*/
        -:        -:15555:/*EOF*/
        -:        -:15556:/*EOF*/
        -:        -:15557:/*EOF*/
        -:        -:15558:/*EOF*/
        -:        -:15559:/*EOF*/
        -:        -:15560:/*EOF*/
        -:        -:15561:/*EOF*/
        -:        -:15562:/*EOF*/
        -:        -:15563:/*EOF*/
        -:        -:15564:/*EOF*/
        -:        -:15565:/*EOF*/
        -:        -:15566:/*EOF*/
        -:        -:15567:/*EOF*/
        -:        -:15568:/*EOF*/
        -:        -:15569:/*EOF*/
        -:        -:15570:/*EOF*/
        -:        -:15571:/*EOF*/
        -:        -:15572:/*EOF*/
        -:        -:15573:/*EOF*/
        -:        -:15574:/*EOF*/
        -:        -:15575:/*EOF*/
        -:        -:15576:/*EOF*/
        -:        -:15577:/*EOF*/
        -:        -:15578:/*EOF*/
        -:        -:15579:/*EOF*/
        -:        -:15580:/*EOF*/
        -:        -:15581:/*EOF*/
        -:        -:15582:/*EOF*/
        -:        -:15583:/*EOF*/
        -:        -:15584:/*EOF*/
        -:        -:15585:/*EOF*/
        -:        -:15586:/*EOF*/
        -:        -:15587:/*EOF*/
        -:        -:15588:/*EOF*/
        -:        -:15589:/*EOF*/
        -:        -:15590:/*EOF*/
        -:        -:15591:/*EOF*/
        -:        -:15592:/*EOF*/
        -:        -:15593:/*EOF*/
        -:        -:15594:/*EOF*/
        -:        -:15595:/*EOF*/
        -:        -:15596:/*EOF*/
        -:        -:15597:/*EOF*/
        -:        -:15598:/*EOF*/
        -:        -:15599:/*EOF*/
        -:        -:15600:/*EOF*/
        -:        -:15601:/*EOF*/
        -:        -:15602:/*EOF*/
        -:        -:15603:/*EOF*/
        -:        -:15604:/*EOF*/
        -:        -:15605:/*EOF*/
        -:        -:15606:/*EOF*/
        -:        -:15607:/*EOF*/
        -:        -:15608:/*EOF*/
        -:        -:15609:/*EOF*/
        -:        -:15610:/*EOF*/
        -:        -:15611:/*EOF*/
        -:        -:15612:/*EOF*/
        -:        -:15613:/*EOF*/
        -:        -:15614:/*EOF*/
        -:        -:15615:/*EOF*/
        -:        -:15616:/*EOF*/
        -:        -:15617:/*EOF*/
        -:        -:15618:/*EOF*/
        -:        -:15619:/*EOF*/
        -:        -:15620:/*EOF*/
        -:        -:15621:/*EOF*/
        -:        -:15622:/*EOF*/
        -:        -:15623:/*EOF*/
        -:        -:15624:/*EOF*/
        -:        -:15625:/*EOF*/
        -:        -:15626:/*EOF*/
        -:        -:15627:/*EOF*/
        -:        -:15628:/*EOF*/
        -:        -:15629:/*EOF*/
        -:        -:15630:/*EOF*/
        -:        -:15631:/*EOF*/
        -:        -:15632:/*EOF*/
        -:        -:15633:/*EOF*/
        -:        -:15634:/*EOF*/
        -:        -:15635:/*EOF*/
        -:        -:15636:/*EOF*/
        -:        -:15637:/*EOF*/
        -:        -:15638:/*EOF*/
        -:        -:15639:/*EOF*/
        -:        -:15640:/*EOF*/
        -:        -:15641:/*EOF*/
        -:        -:15642:/*EOF*/
        -:        -:15643:/*EOF*/
        -:        -:15644:/*EOF*/
        -:        -:15645:/*EOF*/
        -:        -:15646:/*EOF*/
        -:        -:15647:/*EOF*/
        -:        -:15648:/*EOF*/
        -:        -:15649:/*EOF*/
        -:        -:15650:/*EOF*/
        -:        -:15651:/*EOF*/
        -:        -:15652:/*EOF*/
        -:        -:15653:/*EOF*/
        -:        -:15654:/*EOF*/
        -:        -:15655:/*EOF*/
        -:        -:15656:/*EOF*/
        -:        -:15657:/*EOF*/
        -:        -:15658:/*EOF*/
        -:        -:15659:/*EOF*/
        -:        -:15660:/*EOF*/
        -:        -:15661:/*EOF*/
        -:        -:15662:/*EOF*/
        -:        -:15663:/*EOF*/
        -:        -:15664:/*EOF*/
        -:        -:15665:/*EOF*/
        -:        -:15666:/*EOF*/
        -:        -:15667:/*EOF*/
        -:        -:15668:/*EOF*/
        -:        -:15669:/*EOF*/
        -:        -:15670:/*EOF*/
        -:        -:15671:/*EOF*/
        -:        -:15672:/*EOF*/
        -:        -:15673:/*EOF*/
        -:        -:15674:/*EOF*/
        -:        -:15675:/*EOF*/
        -:        -:15676:/*EOF*/
        -:        -:15677:/*EOF*/
        -:        -:15678:/*EOF*/
        -:        -:15679:/*EOF*/
        -:        -:15680:/*EOF*/
        -:        -:15681:/*EOF*/
        -:        -:15682:/*EOF*/
        -:        -:15683:/*EOF*/
        -:        -:15684:/*EOF*/
        -:        -:15685:/*EOF*/
        -:        -:15686:/*EOF*/
        -:        -:15687:/*EOF*/
        -:        -:15688:/*EOF*/
        -:        -:15689:/*EOF*/
        -:        -:15690:/*EOF*/
        -:        -:15691:/*EOF*/
        -:        -:15692:/*EOF*/
        -:        -:15693:/*EOF*/
        -:        -:15694:/*EOF*/
        -:        -:15695:/*EOF*/
        -:        -:15696:/*EOF*/
        -:        -:15697:/*EOF*/
        -:        -:15698:/*EOF*/
        -:        -:15699:/*EOF*/
        -:        -:15700:/*EOF*/
        -:        -:15701:/*EOF*/
        -:        -:15702:/*EOF*/
        -:        -:15703:/*EOF*/
        -:        -:15704:/*EOF*/
        -:        -:15705:/*EOF*/
        -:        -:15706:/*EOF*/
        -:        -:15707:/*EOF*/
        -:        -:15708:/*EOF*/
        -:        -:15709:/*EOF*/
        -:        -:15710:/*EOF*/
        -:        -:15711:/*EOF*/
        -:        -:15712:/*EOF*/
        -:        -:15713:/*EOF*/
        -:        -:15714:/*EOF*/
        -:        -:15715:/*EOF*/
        -:        -:15716:/*EOF*/
        -:        -:15717:/*EOF*/
        -:        -:15718:/*EOF*/
        -:        -:15719:/*EOF*/
        -:        -:15720:/*EOF*/
        -:        -:15721:/*EOF*/
        -:        -:15722:/*EOF*/
        -:        -:15723:/*EOF*/
        -:        -:15724:/*EOF*/
        -:        -:15725:/*EOF*/
        -:        -:15726:/*EOF*/
        -:        -:15727:/*EOF*/
        -:        -:15728:/*EOF*/
        -:        -:15729:/*EOF*/
        -:        -:15730:/*EOF*/
        -:        -:15731:/*EOF*/
        -:        -:15732:/*EOF*/
        -:        -:15733:/*EOF*/
        -:        -:15734:/*EOF*/
        -:        -:15735:/*EOF*/
        -:        -:15736:/*EOF*/
        -:        -:15737:/*EOF*/
        -:        -:15738:/*EOF*/
        -:        -:15739:/*EOF*/
        -:        -:15740:/*EOF*/
        -:        -:15741:/*EOF*/
        -:        -:15742:/*EOF*/
        -:        -:15743:/*EOF*/
        -:        -:15744:/*EOF*/
        -:        -:15745:/*EOF*/
        -:        -:15746:/*EOF*/
        -:        -:15747:/*EOF*/
        -:        -:15748:/*EOF*/
        -:        -:15749:/*EOF*/
        -:        -:15750:/*EOF*/
        -:        -:15751:/*EOF*/
        -:        -:15752:/*EOF*/
        -:        -:15753:/*EOF*/
        -:        -:15754:/*EOF*/
        -:        -:15755:/*EOF*/
        -:        -:15756:/*EOF*/
        -:        -:15757:/*EOF*/
        -:        -:15758:/*EOF*/
        -:        -:15759:/*EOF*/
        -:        -:15760:/*EOF*/
        -:        -:15761:/*EOF*/
        -:        -:15762:/*EOF*/
        -:        -:15763:/*EOF*/
        -:        -:15764:/*EOF*/
        -:        -:15765:/*EOF*/
        -:        -:15766:/*EOF*/
        -:        -:15767:/*EOF*/
        -:        -:15768:/*EOF*/
        -:        -:15769:/*EOF*/
        -:        -:15770:/*EOF*/
        -:        -:15771:/*EOF*/
        -:        -:15772:/*EOF*/
        -:        -:15773:/*EOF*/
        -:        -:15774:/*EOF*/
        -:        -:15775:/*EOF*/
        -:        -:15776:/*EOF*/
        -:        -:15777:/*EOF*/
        -:        -:15778:/*EOF*/
        -:        -:15779:/*EOF*/
        -:        -:15780:/*EOF*/
        -:        -:15781:/*EOF*/
        -:        -:15782:/*EOF*/
        -:        -:15783:/*EOF*/
        -:        -:15784:/*EOF*/
        -:        -:15785:/*EOF*/
        -:        -:15786:/*EOF*/
        -:        -:15787:/*EOF*/
        -:        -:15788:/*EOF*/
        -:        -:15789:/*EOF*/
        -:        -:15790:/*EOF*/
        -:        -:15791:/*EOF*/
        -:        -:15792:/*EOF*/
        -:        -:15793:/*EOF*/
        -:        -:15794:/*EOF*/
        -:        -:15795:/*EOF*/
        -:        -:15796:/*EOF*/
        -:        -:15797:/*EOF*/
        -:        -:15798:/*EOF*/
        -:        -:15799:/*EOF*/
        -:        -:15800:/*EOF*/
        -:        -:15801:/*EOF*/
        -:        -:15802:/*EOF*/
        -:        -:15803:/*EOF*/
        -:        -:15804:/*EOF*/
        -:        -:15805:/*EOF*/
        -:        -:15806:/*EOF*/
        -:        -:15807:/*EOF*/
        -:        -:15808:/*EOF*/
        -:        -:15809:/*EOF*/
        -:        -:15810:/*EOF*/
        -:        -:15811:/*EOF*/
        -:        -:15812:/*EOF*/
        -:        -:15813:/*EOF*/
        -:        -:15814:/*EOF*/
        -:        -:15815:/*EOF*/
        -:        -:15816:/*EOF*/
        -:        -:15817:/*EOF*/
        -:        -:15818:/*EOF*/
        -:        -:15819:/*EOF*/
        -:        -:15820:/*EOF*/
        -:        -:15821:/*EOF*/
        -:        -:15822:/*EOF*/
        -:        -:15823:/*EOF*/
        -:        -:15824:/*EOF*/
        -:        -:15825:/*EOF*/
        -:        -:15826:/*EOF*/
        -:        -:15827:/*EOF*/
        -:        -:15828:/*EOF*/
        -:        -:15829:/*EOF*/
        -:        -:15830:/*EOF*/
        -:        -:15831:/*EOF*/
        -:        -:15832:/*EOF*/
        -:        -:15833:/*EOF*/
        -:        -:15834:/*EOF*/
        -:        -:15835:/*EOF*/
        -:        -:15836:/*EOF*/
        -:        -:15837:/*EOF*/
        -:        -:15838:/*EOF*/
        -:        -:15839:/*EOF*/
        -:        -:15840:/*EOF*/
        -:        -:15841:/*EOF*/
        -:        -:15842:/*EOF*/
        -:        -:15843:/*EOF*/
        -:        -:15844:/*EOF*/
        -:        -:15845:/*EOF*/
        -:        -:15846:/*EOF*/
        -:        -:15847:/*EOF*/
        -:        -:15848:/*EOF*/
        -:        -:15849:/*EOF*/
        -:        -:15850:/*EOF*/
        -:        -:15851:/*EOF*/
        -:        -:15852:/*EOF*/
        -:        -:15853:/*EOF*/
        -:        -:15854:/*EOF*/
        -:        -:15855:/*EOF*/
        -:        -:15856:/*EOF*/
        -:        -:15857:/*EOF*/
        -:        -:15858:/*EOF*/
        -:        -:15859:/*EOF*/
        -:        -:15860:/*EOF*/
        -:        -:15861:/*EOF*/
        -:        -:15862:/*EOF*/
        -:        -:15863:/*EOF*/
        -:        -:15864:/*EOF*/
        -:        -:15865:/*EOF*/
        -:        -:15866:/*EOF*/
        -:        -:15867:/*EOF*/
        -:        -:15868:/*EOF*/
        -:        -:15869:/*EOF*/
        -:        -:15870:/*EOF*/
        -:        -:15871:/*EOF*/
        -:        -:15872:/*EOF*/
        -:        -:15873:/*EOF*/
        -:        -:15874:/*EOF*/
        -:        -:15875:/*EOF*/
        -:        -:15876:/*EOF*/
        -:        -:15877:/*EOF*/
        -:        -:15878:/*EOF*/
        -:        -:15879:/*EOF*/
        -:        -:15880:/*EOF*/
        -:        -:15881:/*EOF*/
        -:        -:15882:/*EOF*/
        -:        -:15883:/*EOF*/
        -:        -:15884:/*EOF*/
        -:        -:15885:/*EOF*/
        -:        -:15886:/*EOF*/
        -:        -:15887:/*EOF*/
        -:        -:15888:/*EOF*/
        -:        -:15889:/*EOF*/
        -:        -:15890:/*EOF*/
        -:        -:15891:/*EOF*/
        -:        -:15892:/*EOF*/
        -:        -:15893:/*EOF*/
        -:        -:15894:/*EOF*/
        -:        -:15895:/*EOF*/
        -:        -:15896:/*EOF*/
        -:        -:15897:/*EOF*/
        -:        -:15898:/*EOF*/
        -:        -:15899:/*EOF*/
        -:        -:15900:/*EOF*/
        -:        -:15901:/*EOF*/
        -:        -:15902:/*EOF*/
        -:        -:15903:/*EOF*/
        -:        -:15904:/*EOF*/
        -:        -:15905:/*EOF*/
        -:        -:15906:/*EOF*/
        -:        -:15907:/*EOF*/
        -:        -:15908:/*EOF*/
        -:        -:15909:/*EOF*/
        -:        -:15910:/*EOF*/
        -:        -:15911:/*EOF*/
        -:        -:15912:/*EOF*/
        -:        -:15913:/*EOF*/
        -:        -:15914:/*EOF*/
        -:        -:15915:/*EOF*/
        -:        -:15916:/*EOF*/
        -:        -:15917:/*EOF*/
        -:        -:15918:/*EOF*/
        -:        -:15919:/*EOF*/
        -:        -:15920:/*EOF*/
        -:        -:15921:/*EOF*/
        -:        -:15922:/*EOF*/
        -:        -:15923:/*EOF*/
        -:        -:15924:/*EOF*/
        -:        -:15925:/*EOF*/
        -:        -:15926:/*EOF*/
        -:        -:15927:/*EOF*/
        -:        -:15928:/*EOF*/
        -:        -:15929:/*EOF*/
        -:        -:15930:/*EOF*/
        -:        -:15931:/*EOF*/
        -:        -:15932:/*EOF*/
        -:        -:15933:/*EOF*/
        -:        -:15934:/*EOF*/
        -:        -:15935:/*EOF*/
        -:        -:15936:/*EOF*/
        -:        -:15937:/*EOF*/
        -:        -:15938:/*EOF*/
        -:        -:15939:/*EOF*/
        -:        -:15940:/*EOF*/
        -:        -:15941:/*EOF*/
        -:        -:15942:/*EOF*/
        -:        -:15943:/*EOF*/
        -:        -:15944:/*EOF*/
        -:        -:15945:/*EOF*/
        -:        -:15946:/*EOF*/
        -:        -:15947:/*EOF*/
        -:        -:15948:/*EOF*/
        -:        -:15949:/*EOF*/
        -:        -:15950:/*EOF*/
        -:        -:15951:/*EOF*/
        -:        -:15952:/*EOF*/
        -:        -:15953:/*EOF*/
        -:        -:15954:/*EOF*/
        -:        -:15955:/*EOF*/
        -:        -:15956:/*EOF*/
        -:        -:15957:/*EOF*/
        -:        -:15958:/*EOF*/
        -:        -:15959:/*EOF*/
        -:        -:15960:/*EOF*/
        -:        -:15961:/*EOF*/
        -:        -:15962:/*EOF*/
        -:        -:15963:/*EOF*/
        -:        -:15964:/*EOF*/
        -:        -:15965:/*EOF*/
        -:        -:15966:/*EOF*/
        -:        -:15967:/*EOF*/
        -:        -:15968:/*EOF*/
        -:        -:15969:/*EOF*/
        -:        -:15970:/*EOF*/
        -:        -:15971:/*EOF*/
        -:        -:15972:/*EOF*/
        -:        -:15973:/*EOF*/
        -:        -:15974:/*EOF*/
        -:        -:15975:/*EOF*/
        -:        -:15976:/*EOF*/
        -:        -:15977:/*EOF*/
        -:        -:15978:/*EOF*/
        -:        -:15979:/*EOF*/
        -:        -:15980:/*EOF*/
        -:        -:15981:/*EOF*/
        -:        -:15982:/*EOF*/
        -:        -:15983:/*EOF*/
        -:        -:15984:/*EOF*/
        -:        -:15985:/*EOF*/
        -:        -:15986:/*EOF*/
        -:        -:15987:/*EOF*/
        -:        -:15988:/*EOF*/
        -:        -:15989:/*EOF*/
        -:        -:15990:/*EOF*/
        -:        -:15991:/*EOF*/
        -:        -:15992:/*EOF*/
        -:        -:15993:/*EOF*/
        -:        -:15994:/*EOF*/
        -:        -:15995:/*EOF*/
        -:        -:15996:/*EOF*/
        -:        -:15997:/*EOF*/
        -:        -:15998:/*EOF*/
        -:        -:15999:/*EOF*/
        -:        -:16000:/*EOF*/
        -:        -:16001:/*EOF*/
        -:        -:16002:/*EOF*/
        -:        -:16003:/*EOF*/
        -:        -:16004:/*EOF*/
        -:        -:16005:/*EOF*/
        -:        -:16006:/*EOF*/
        -:        -:16007:/*EOF*/
        -:        -:16008:/*EOF*/
        -:        -:16009:/*EOF*/
        -:        -:16010:/*EOF*/
        -:        -:16011:/*EOF*/
        -:        -:16012:/*EOF*/
        -:        -:16013:/*EOF*/
        -:        -:16014:/*EOF*/
        -:        -:16015:/*EOF*/
        -:        -:16016:/*EOF*/
        -:        -:16017:/*EOF*/
        -:        -:16018:/*EOF*/
        -:        -:16019:/*EOF*/
        -:        -:16020:/*EOF*/
        -:        -:16021:/*EOF*/
        -:        -:16022:/*EOF*/
        -:        -:16023:/*EOF*/
        -:        -:16024:/*EOF*/
        -:        -:16025:/*EOF*/
        -:        -:16026:/*EOF*/
        -:        -:16027:/*EOF*/
        -:        -:16028:/*EOF*/
        -:        -:16029:/*EOF*/
        -:        -:16030:/*EOF*/
        -:        -:16031:/*EOF*/
        -:        -:16032:/*EOF*/
        -:        -:16033:/*EOF*/
        -:        -:16034:/*EOF*/
        -:        -:16035:/*EOF*/
        -:        -:16036:/*EOF*/
        -:        -:16037:/*EOF*/
        -:        -:16038:/*EOF*/
        -:        -:16039:/*EOF*/
        -:        -:16040:/*EOF*/
        -:        -:16041:/*EOF*/
        -:        -:16042:/*EOF*/
        -:        -:16043:/*EOF*/
        -:        -:16044:/*EOF*/
        -:        -:16045:/*EOF*/
        -:        -:16046:/*EOF*/
        -:        -:16047:/*EOF*/
        -:        -:16048:/*EOF*/
        -:        -:16049:/*EOF*/
        -:        -:16050:/*EOF*/
        -:        -:16051:/*EOF*/
        -:        -:16052:/*EOF*/
        -:        -:16053:/*EOF*/
        -:        -:16054:/*EOF*/
        -:        -:16055:/*EOF*/
        -:        -:16056:/*EOF*/
        -:        -:16057:/*EOF*/
        -:        -:16058:/*EOF*/
        -:        -:16059:/*EOF*/
        -:        -:16060:/*EOF*/
        -:        -:16061:/*EOF*/
        -:        -:16062:/*EOF*/
        -:        -:16063:/*EOF*/
        -:        -:16064:/*EOF*/
        -:        -:16065:/*EOF*/
        -:        -:16066:/*EOF*/
        -:        -:16067:/*EOF*/
        -:        -:16068:/*EOF*/
        -:        -:16069:/*EOF*/
        -:        -:16070:/*EOF*/
        -:        -:16071:/*EOF*/
        -:        -:16072:/*EOF*/
        -:        -:16073:/*EOF*/
        -:        -:16074:/*EOF*/
        -:        -:16075:/*EOF*/
        -:        -:16076:/*EOF*/
        -:        -:16077:/*EOF*/
        -:        -:16078:/*EOF*/
        -:        -:16079:/*EOF*/
        -:        -:16080:/*EOF*/
        -:        -:16081:/*EOF*/
        -:        -:16082:/*EOF*/
        -:        -:16083:/*EOF*/
        -:        -:16084:/*EOF*/
        -:        -:16085:/*EOF*/
        -:        -:16086:/*EOF*/
        -:        -:16087:/*EOF*/
        -:        -:16088:/*EOF*/
        -:        -:16089:/*EOF*/
        -:        -:16090:/*EOF*/
        -:        -:16091:/*EOF*/
        -:        -:16092:/*EOF*/
        -:        -:16093:/*EOF*/
        -:        -:16094:/*EOF*/
        -:        -:16095:/*EOF*/
        -:        -:16096:/*EOF*/
        -:        -:16097:/*EOF*/
        -:        -:16098:/*EOF*/
        -:        -:16099:/*EOF*/
        -:        -:16100:/*EOF*/
        -:        -:16101:/*EOF*/
        -:        -:16102:/*EOF*/
        -:        -:16103:/*EOF*/
        -:        -:16104:/*EOF*/
        -:        -:16105:/*EOF*/
        -:        -:16106:/*EOF*/
        -:        -:16107:/*EOF*/
        -:        -:16108:/*EOF*/
        -:        -:16109:/*EOF*/
        -:        -:16110:/*EOF*/
        -:        -:16111:/*EOF*/
        -:        -:16112:/*EOF*/
        -:        -:16113:/*EOF*/
        -:        -:16114:/*EOF*/
        -:        -:16115:/*EOF*/
        -:        -:16116:/*EOF*/
        -:        -:16117:/*EOF*/
        -:        -:16118:/*EOF*/
        -:        -:16119:/*EOF*/
        -:        -:16120:/*EOF*/
        -:        -:16121:/*EOF*/
        -:        -:16122:/*EOF*/
        -:        -:16123:/*EOF*/
        -:        -:16124:/*EOF*/
        -:        -:16125:/*EOF*/
        -:        -:16126:/*EOF*/
        -:        -:16127:/*EOF*/
        -:        -:16128:/*EOF*/
        -:        -:16129:/*EOF*/
        -:        -:16130:/*EOF*/
        -:        -:16131:/*EOF*/
        -:        -:16132:/*EOF*/
        -:        -:16133:/*EOF*/
        -:        -:16134:/*EOF*/
        -:        -:16135:/*EOF*/
        -:        -:16136:/*EOF*/
        -:        -:16137:/*EOF*/
        -:        -:16138:/*EOF*/
        -:        -:16139:/*EOF*/
        -:        -:16140:/*EOF*/
        -:        -:16141:/*EOF*/
        -:        -:16142:/*EOF*/
        -:        -:16143:/*EOF*/
        -:        -:16144:/*EOF*/
        -:        -:16145:/*EOF*/
        -:        -:16146:/*EOF*/
        -:        -:16147:/*EOF*/
        -:        -:16148:/*EOF*/
        -:        -:16149:/*EOF*/
        -:        -:16150:/*EOF*/
        -:        -:16151:/*EOF*/
        -:        -:16152:/*EOF*/
        -:        -:16153:/*EOF*/
        -:        -:16154:/*EOF*/
        -:        -:16155:/*EOF*/
        -:        -:16156:/*EOF*/
        -:        -:16157:/*EOF*/
        -:        -:16158:/*EOF*/
        -:        -:16159:/*EOF*/
        -:        -:16160:/*EOF*/
        -:        -:16161:/*EOF*/
        -:        -:16162:/*EOF*/
        -:        -:16163:/*EOF*/
        -:        -:16164:/*EOF*/
        -:        -:16165:/*EOF*/
        -:        -:16166:/*EOF*/
        -:        -:16167:/*EOF*/
        -:        -:16168:/*EOF*/
        -:        -:16169:/*EOF*/
        -:        -:16170:/*EOF*/
        -:        -:16171:/*EOF*/
        -:        -:16172:/*EOF*/
        -:        -:16173:/*EOF*/
        -:        -:16174:/*EOF*/
        -:        -:16175:/*EOF*/
        -:        -:16176:/*EOF*/
        -:        -:16177:/*EOF*/
        -:        -:16178:/*EOF*/
        -:        -:16179:/*EOF*/
        -:        -:16180:/*EOF*/
        -:        -:16181:/*EOF*/
        -:        -:16182:/*EOF*/
        -:        -:16183:/*EOF*/
        -:        -:16184:/*EOF*/
        -:        -:16185:/*EOF*/
        -:        -:16186:/*EOF*/
        -:        -:16187:/*EOF*/
        -:        -:16188:/*EOF*/
        -:        -:16189:/*EOF*/
        -:        -:16190:/*EOF*/
        -:        -:16191:/*EOF*/
        -:        -:16192:/*EOF*/
        -:        -:16193:/*EOF*/
        -:        -:16194:/*EOF*/
        -:        -:16195:/*EOF*/
        -:        -:16196:/*EOF*/
        -:        -:16197:/*EOF*/
        -:        -:16198:/*EOF*/
        -:        -:16199:/*EOF*/
        -:        -:16200:/*EOF*/
        -:        -:16201:/*EOF*/
        -:        -:16202:/*EOF*/
        -:        -:16203:/*EOF*/
        -:        -:16204:/*EOF*/
        -:        -:16205:/*EOF*/
        -:        -:16206:/*EOF*/
        -:        -:16207:/*EOF*/
        -:        -:16208:/*EOF*/
        -:        -:16209:/*EOF*/
        -:        -:16210:/*EOF*/
        -:        -:16211:/*EOF*/
        -:        -:16212:/*EOF*/
        -:        -:16213:/*EOF*/
        -:        -:16214:/*EOF*/
        -:        -:16215:/*EOF*/
        -:        -:16216:/*EOF*/
        -:        -:16217:/*EOF*/
        -:        -:16218:/*EOF*/
        -:        -:16219:/*EOF*/
        -:        -:16220:/*EOF*/
        -:        -:16221:/*EOF*/
        -:        -:16222:/*EOF*/
        -:        -:16223:/*EOF*/
        -:        -:16224:/*EOF*/
        -:        -:16225:/*EOF*/
        -:        -:16226:/*EOF*/
        -:        -:16227:/*EOF*/
        -:        -:16228:/*EOF*/
        -:        -:16229:/*EOF*/
        -:        -:16230:/*EOF*/
        -:        -:16231:/*EOF*/
        -:        -:16232:/*EOF*/
        -:        -:16233:/*EOF*/
        -:        -:16234:/*EOF*/
        -:        -:16235:/*EOF*/
        -:        -:16236:/*EOF*/
        -:        -:16237:/*EOF*/
        -:        -:16238:/*EOF*/
        -:        -:16239:/*EOF*/
        -:        -:16240:/*EOF*/
        -:        -:16241:/*EOF*/
        -:        -:16242:/*EOF*/
        -:        -:16243:/*EOF*/
        -:        -:16244:/*EOF*/
        -:        -:16245:/*EOF*/
        -:        -:16246:/*EOF*/
        -:        -:16247:/*EOF*/
        -:        -:16248:/*EOF*/
        -:        -:16249:/*EOF*/
        -:        -:16250:/*EOF*/
        -:        -:16251:/*EOF*/
        -:        -:16252:/*EOF*/
        -:        -:16253:/*EOF*/
        -:        -:16254:/*EOF*/
        -:        -:16255:/*EOF*/
        -:        -:16256:/*EOF*/
        -:        -:16257:/*EOF*/
        -:        -:16258:/*EOF*/
        -:        -:16259:/*EOF*/
        -:        -:16260:/*EOF*/
        -:        -:16261:/*EOF*/
        -:        -:16262:/*EOF*/
        -:        -:16263:/*EOF*/
        -:        -:16264:/*EOF*/
        -:        -:16265:/*EOF*/
        -:        -:16266:/*EOF*/
        -:        -:16267:/*EOF*/
        -:        -:16268:/*EOF*/
        -:        -:16269:/*EOF*/
        -:        -:16270:/*EOF*/
        -:        -:16271:/*EOF*/
        -:        -:16272:/*EOF*/
        -:        -:16273:/*EOF*/
        -:        -:16274:/*EOF*/
        -:        -:16275:/*EOF*/
        -:        -:16276:/*EOF*/
        -:        -:16277:/*EOF*/
        -:        -:16278:/*EOF*/
        -:        -:16279:/*EOF*/
        -:        -:16280:/*EOF*/
        -:        -:16281:/*EOF*/
        -:        -:16282:/*EOF*/
        -:        -:16283:/*EOF*/
        -:        -:16284:/*EOF*/
        -:        -:16285:/*EOF*/
        -:        -:16286:/*EOF*/
        -:        -:16287:/*EOF*/
        -:        -:16288:/*EOF*/
        -:        -:16289:/*EOF*/
        -:        -:16290:/*EOF*/
        -:        -:16291:/*EOF*/
        -:        -:16292:/*EOF*/
        -:        -:16293:/*EOF*/
        -:        -:16294:/*EOF*/
        -:        -:16295:/*EOF*/
        -:        -:16296:/*EOF*/
        -:        -:16297:/*EOF*/
        -:        -:16298:/*EOF*/
        -:        -:16299:/*EOF*/
        -:        -:16300:/*EOF*/
        -:        -:16301:/*EOF*/
        -:        -:16302:/*EOF*/
        -:        -:16303:/*EOF*/
        -:        -:16304:/*EOF*/
        -:        -:16305:/*EOF*/
        -:        -:16306:/*EOF*/
        -:        -:16307:/*EOF*/
        -:        -:16308:/*EOF*/
        -:        -:16309:/*EOF*/
        -:        -:16310:/*EOF*/
        -:        -:16311:/*EOF*/
        -:        -:16312:/*EOF*/
        -:        -:16313:/*EOF*/
        -:        -:16314:/*EOF*/
        -:        -:16315:/*EOF*/
        -:        -:16316:/*EOF*/
        -:        -:16317:/*EOF*/
        -:        -:16318:/*EOF*/
        -:        -:16319:/*EOF*/
        -:        -:16320:/*EOF*/
        -:        -:16321:/*EOF*/
        -:        -:16322:/*EOF*/
        -:        -:16323:/*EOF*/
        -:        -:16324:/*EOF*/
        -:        -:16325:/*EOF*/
        -:        -:16326:/*EOF*/
        -:        -:16327:/*EOF*/
        -:        -:16328:/*EOF*/
        -:        -:16329:/*EOF*/
        -:        -:16330:/*EOF*/
        -:        -:16331:/*EOF*/
        -:        -:16332:/*EOF*/
        -:        -:16333:/*EOF*/
        -:        -:16334:/*EOF*/
        -:        -:16335:/*EOF*/
        -:        -:16336:/*EOF*/
        -:        -:16337:/*EOF*/
        -:        -:16338:/*EOF*/
        -:        -:16339:/*EOF*/
        -:        -:16340:/*EOF*/
        -:        -:16341:/*EOF*/
        -:        -:16342:/*EOF*/
        -:        -:16343:/*EOF*/
        -:        -:16344:/*EOF*/
        -:        -:16345:/*EOF*/
        -:        -:16346:/*EOF*/
        -:        -:16347:/*EOF*/
        -:        -:16348:/*EOF*/
        -:        -:16349:/*EOF*/
        -:        -:16350:/*EOF*/
        -:        -:16351:/*EOF*/
        -:        -:16352:/*EOF*/
        -:        -:16353:/*EOF*/
        -:        -:16354:/*EOF*/
        -:        -:16355:/*EOF*/
        -:        -:16356:/*EOF*/
        -:        -:16357:/*EOF*/
        -:        -:16358:/*EOF*/
        -:        -:16359:/*EOF*/
        -:        -:16360:/*EOF*/
        -:        -:16361:/*EOF*/
        -:        -:16362:/*EOF*/
        -:        -:16363:/*EOF*/
        -:        -:16364:/*EOF*/
        -:        -:16365:/*EOF*/
        -:        -:16366:/*EOF*/
        -:        -:16367:/*EOF*/
        -:        -:16368:/*EOF*/
        -:        -:16369:/*EOF*/
        -:        -:16370:/*EOF*/
        -:        -:16371:/*EOF*/
        -:        -:16372:/*EOF*/
        -:        -:16373:/*EOF*/
        -:        -:16374:/*EOF*/
        -:        -:16375:/*EOF*/
        -:        -:16376:/*EOF*/
        -:        -:16377:/*EOF*/
        -:        -:16378:/*EOF*/
        -:        -:16379:/*EOF*/
        -:        -:16380:/*EOF*/
        -:        -:16381:/*EOF*/
        -:        -:16382:/*EOF*/
        -:        -:16383:/*EOF*/
        -:        -:16384:/*EOF*/
        -:        -:16385:/*EOF*/
        -:        -:16386:/*EOF*/
        -:        -:16387:/*EOF*/
        -:        -:16388:/*EOF*/
        -:        -:16389:/*EOF*/
        -:        -:16390:/*EOF*/
        -:        -:16391:/*EOF*/
        -:        -:16392:/*EOF*/
        -:        -:16393:/*EOF*/
        -:        -:16394:/*EOF*/
        -:        -:16395:/*EOF*/
        -:        -:16396:/*EOF*/
        -:        -:16397:/*EOF*/
        -:        -:16398:/*EOF*/
        -:        -:16399:/*EOF*/
        -:        -:16400:/*EOF*/
        -:        -:16401:/*EOF*/
        -:        -:16402:/*EOF*/
        -:        -:16403:/*EOF*/
        -:        -:16404:/*EOF*/
        -:        -:16405:/*EOF*/
        -:        -:16406:/*EOF*/
        -:        -:16407:/*EOF*/
        -:        -:16408:/*EOF*/
        -:        -:16409:/*EOF*/
        -:        -:16410:/*EOF*/
        -:        -:16411:/*EOF*/
        -:        -:16412:/*EOF*/
        -:        -:16413:/*EOF*/
        -:        -:16414:/*EOF*/
        -:        -:16415:/*EOF*/
        -:        -:16416:/*EOF*/
        -:        -:16417:/*EOF*/
        -:        -:16418:/*EOF*/
        -:        -:16419:/*EOF*/
        -:        -:16420:/*EOF*/
        -:        -:16421:/*EOF*/
        -:        -:16422:/*EOF*/
        -:        -:16423:/*EOF*/
        -:        -:16424:/*EOF*/
        -:        -:16425:/*EOF*/
        -:        -:16426:/*EOF*/
        -:        -:16427:/*EOF*/
        -:        -:16428:/*EOF*/
        -:        -:16429:/*EOF*/
        -:        -:16430:/*EOF*/
        -:        -:16431:/*EOF*/
        -:        -:16432:/*EOF*/
        -:        -:16433:/*EOF*/
        -:        -:16434:/*EOF*/
        -:        -:16435:/*EOF*/
        -:        -:16436:/*EOF*/
        -:        -:16437:/*EOF*/
        -:        -:16438:/*EOF*/
        -:        -:16439:/*EOF*/
        -:        -:16440:/*EOF*/
        -:        -:16441:/*EOF*/
        -:        -:16442:/*EOF*/
        -:        -:16443:/*EOF*/
        -:        -:16444:/*EOF*/
        -:        -:16445:/*EOF*/
        -:        -:16446:/*EOF*/
        -:        -:16447:/*EOF*/
        -:        -:16448:/*EOF*/
        -:        -:16449:/*EOF*/
        -:        -:16450:/*EOF*/
        -:        -:16451:/*EOF*/
        -:        -:16452:/*EOF*/
        -:        -:16453:/*EOF*/
        -:        -:16454:/*EOF*/
        -:        -:16455:/*EOF*/
        -:        -:16456:/*EOF*/
        -:        -:16457:/*EOF*/
        -:        -:16458:/*EOF*/
        -:        -:16459:/*EOF*/
        -:        -:16460:/*EOF*/
        -:        -:16461:/*EOF*/
        -:        -:16462:/*EOF*/
        -:        -:16463:/*EOF*/
        -:        -:16464:/*EOF*/
        -:        -:16465:/*EOF*/
        -:        -:16466:/*EOF*/
        -:        -:16467:/*EOF*/
        -:        -:16468:/*EOF*/
        -:        -:16469:/*EOF*/
        -:        -:16470:/*EOF*/
        -:        -:16471:/*EOF*/
        -:        -:16472:/*EOF*/
        -:        -:16473:/*EOF*/
        -:        -:16474:/*EOF*/
        -:        -:16475:/*EOF*/
        -:        -:16476:/*EOF*/
        -:        -:16477:/*EOF*/
        -:        -:16478:/*EOF*/
        -:        -:16479:/*EOF*/
        -:        -:16480:/*EOF*/
        -:        -:16481:/*EOF*/
        -:        -:16482:/*EOF*/
        -:        -:16483:/*EOF*/
        -:        -:16484:/*EOF*/
        -:        -:16485:/*EOF*/
        -:        -:16486:/*EOF*/
        -:        -:16487:/*EOF*/
        -:        -:16488:/*EOF*/
        -:        -:16489:/*EOF*/
        -:        -:16490:/*EOF*/
        -:        -:16491:/*EOF*/
        -:        -:16492:/*EOF*/
        -:        -:16493:/*EOF*/
        -:        -:16494:/*EOF*/
        -:        -:16495:/*EOF*/
        -:        -:16496:/*EOF*/
        -:        -:16497:/*EOF*/
        -:        -:16498:/*EOF*/
        -:        -:16499:/*EOF*/
        -:        -:16500:/*EOF*/
        -:        -:16501:/*EOF*/
        -:        -:16502:/*EOF*/
        -:        -:16503:/*EOF*/
        -:        -:16504:/*EOF*/
        -:        -:16505:/*EOF*/
        -:        -:16506:/*EOF*/
        -:        -:16507:/*EOF*/
        -:        -:16508:/*EOF*/
        -:        -:16509:/*EOF*/
        -:        -:16510:/*EOF*/
        -:        -:16511:/*EOF*/
        -:        -:16512:/*EOF*/
        -:        -:16513:/*EOF*/
        -:        -:16514:/*EOF*/
        -:        -:16515:/*EOF*/
        -:        -:16516:/*EOF*/
        -:        -:16517:/*EOF*/
        -:        -:16518:/*EOF*/
        -:        -:16519:/*EOF*/
        -:        -:16520:/*EOF*/
        -:        -:16521:/*EOF*/
        -:        -:16522:/*EOF*/
        -:        -:16523:/*EOF*/
        -:        -:16524:/*EOF*/
        -:        -:16525:/*EOF*/
        -:        -:16526:/*EOF*/
        -:        -:16527:/*EOF*/
        -:        -:16528:/*EOF*/
        -:        -:16529:/*EOF*/
        -:        -:16530:/*EOF*/
        -:        -:16531:/*EOF*/
        -:        -:16532:/*EOF*/
        -:        -:16533:/*EOF*/
        -:        -:16534:/*EOF*/
        -:        -:16535:/*EOF*/
        -:        -:16536:/*EOF*/
        -:        -:16537:/*EOF*/
        -:        -:16538:/*EOF*/
        -:        -:16539:/*EOF*/
        -:        -:16540:/*EOF*/
        -:        -:16541:/*EOF*/
        -:        -:16542:/*EOF*/
        -:        -:16543:/*EOF*/
        -:        -:16544:/*EOF*/
        -:        -:16545:/*EOF*/
        -:        -:16546:/*EOF*/
        -:        -:16547:/*EOF*/
        -:        -:16548:/*EOF*/
        -:        -:16549:/*EOF*/
        -:        -:16550:/*EOF*/
        -:        -:16551:/*EOF*/
        -:        -:16552:/*EOF*/
        -:        -:16553:/*EOF*/
        -:        -:16554:/*EOF*/
        -:        -:16555:/*EOF*/
        -:        -:16556:/*EOF*/
        -:        -:16557:/*EOF*/
        -:        -:16558:/*EOF*/
        -:        -:16559:/*EOF*/
        -:        -:16560:/*EOF*/
        -:        -:16561:/*EOF*/
        -:        -:16562:/*EOF*/
        -:        -:16563:/*EOF*/
        -:        -:16564:/*EOF*/
        -:        -:16565:/*EOF*/
        -:        -:16566:/*EOF*/
        -:        -:16567:/*EOF*/
        -:        -:16568:/*EOF*/
        -:        -:16569:/*EOF*/
        -:        -:16570:/*EOF*/
        -:        -:16571:/*EOF*/
        -:        -:16572:/*EOF*/
        -:        -:16573:/*EOF*/
        -:        -:16574:/*EOF*/
        -:        -:16575:/*EOF*/
        -:        -:16576:/*EOF*/
        -:        -:16577:/*EOF*/
        -:        -:16578:/*EOF*/
        -:        -:16579:/*EOF*/
        -:        -:16580:/*EOF*/
        -:        -:16581:/*EOF*/
        -:        -:16582:/*EOF*/
        -:        -:16583:/*EOF*/
        -:        -:16584:/*EOF*/
        -:        -:16585:/*EOF*/
        -:        -:16586:/*EOF*/
        -:        -:16587:/*EOF*/
        -:        -:16588:/*EOF*/
        -:        -:16589:/*EOF*/
        -:        -:16590:/*EOF*/
        -:        -:16591:/*EOF*/
        -:        -:16592:/*EOF*/
        -:        -:16593:/*EOF*/
        -:        -:16594:/*EOF*/
        -:        -:16595:/*EOF*/
        -:        -:16596:/*EOF*/
        -:        -:16597:/*EOF*/
        -:        -:16598:/*EOF*/
        -:        -:16599:/*EOF*/
        -:        -:16600:/*EOF*/
        -:        -:16601:/*EOF*/
        -:        -:16602:/*EOF*/
        -:        -:16603:/*EOF*/
        -:        -:16604:/*EOF*/
        -:        -:16605:/*EOF*/
        -:        -:16606:/*EOF*/
        -:        -:16607:/*EOF*/
        -:        -:16608:/*EOF*/
        -:        -:16609:/*EOF*/
        -:        -:16610:/*EOF*/
        -:        -:16611:/*EOF*/
        -:        -:16612:/*EOF*/
        -:        -:16613:/*EOF*/
        -:        -:16614:/*EOF*/
        -:        -:16615:/*EOF*/
        -:        -:16616:/*EOF*/
        -:        -:16617:/*EOF*/
        -:        -:16618:/*EOF*/
        -:        -:16619:/*EOF*/
        -:        -:16620:/*EOF*/
        -:        -:16621:/*EOF*/
        -:        -:16622:/*EOF*/
        -:        -:16623:/*EOF*/
        -:        -:16624:/*EOF*/
        -:        -:16625:/*EOF*/
        -:        -:16626:/*EOF*/
        -:        -:16627:/*EOF*/
        -:        -:16628:/*EOF*/
        -:        -:16629:/*EOF*/
        -:        -:16630:/*EOF*/
        -:        -:16631:/*EOF*/
        -:        -:16632:/*EOF*/
        -:        -:16633:/*EOF*/
        -:        -:16634:/*EOF*/
        -:        -:16635:/*EOF*/
        -:        -:16636:/*EOF*/
        -:        -:16637:/*EOF*/
        -:        -:16638:/*EOF*/
        -:        -:16639:/*EOF*/
        -:        -:16640:/*EOF*/
        -:        -:16641:/*EOF*/
        -:        -:16642:/*EOF*/
        -:        -:16643:/*EOF*/
        -:        -:16644:/*EOF*/
        -:        -:16645:/*EOF*/
        -:        -:16646:/*EOF*/
        -:        -:16647:/*EOF*/
        -:        -:16648:/*EOF*/
        -:        -:16649:/*EOF*/
        -:        -:16650:/*EOF*/
        -:        -:16651:/*EOF*/
        -:        -:16652:/*EOF*/
        -:        -:16653:/*EOF*/
        -:        -:16654:/*EOF*/
        -:        -:16655:/*EOF*/
        -:        -:16656:/*EOF*/
        -:        -:16657:/*EOF*/
        -:        -:16658:/*EOF*/
        -:        -:16659:/*EOF*/
        -:        -:16660:/*EOF*/
        -:        -:16661:/*EOF*/
        -:        -:16662:/*EOF*/
        -:        -:16663:/*EOF*/
        -:        -:16664:/*EOF*/
        -:        -:16665:/*EOF*/
        -:        -:16666:/*EOF*/
        -:        -:16667:/*EOF*/
        -:        -:16668:/*EOF*/
        -:        -:16669:/*EOF*/
        -:        -:16670:/*EOF*/
        -:        -:16671:/*EOF*/
        -:        -:16672:/*EOF*/
        -:        -:16673:/*EOF*/
        -:        -:16674:/*EOF*/
        -:        -:16675:/*EOF*/
        -:        -:16676:/*EOF*/
        -:        -:16677:/*EOF*/
        -:        -:16678:/*EOF*/
        -:        -:16679:/*EOF*/
        -:        -:16680:/*EOF*/
        -:        -:16681:/*EOF*/
        -:        -:16682:/*EOF*/
        -:        -:16683:/*EOF*/
        -:        -:16684:/*EOF*/
        -:        -:16685:/*EOF*/
        -:        -:16686:/*EOF*/
        -:        -:16687:/*EOF*/
        -:        -:16688:/*EOF*/
        -:        -:16689:/*EOF*/
        -:        -:16690:/*EOF*/
        -:        -:16691:/*EOF*/
        -:        -:16692:/*EOF*/
        -:        -:16693:/*EOF*/
        -:        -:16694:/*EOF*/
        -:        -:16695:/*EOF*/
        -:        -:16696:/*EOF*/
        -:        -:16697:/*EOF*/
        -:        -:16698:/*EOF*/
        -:        -:16699:/*EOF*/
        -:        -:16700:/*EOF*/
        -:        -:16701:/*EOF*/
        -:        -:16702:/*EOF*/
        -:        -:16703:/*EOF*/
        -:        -:16704:/*EOF*/
        -:        -:16705:/*EOF*/
        -:        -:16706:/*EOF*/
        -:        -:16707:/*EOF*/
        -:        -:16708:/*EOF*/
        -:        -:16709:/*EOF*/
        -:        -:16710:/*EOF*/
        -:        -:16711:/*EOF*/
        -:        -:16712:/*EOF*/
        -:        -:16713:/*EOF*/
        -:        -:16714:/*EOF*/
        -:        -:16715:/*EOF*/
        -:        -:16716:/*EOF*/
        -:        -:16717:/*EOF*/
        -:        -:16718:/*EOF*/
        -:        -:16719:/*EOF*/
        -:        -:16720:/*EOF*/
        -:        -:16721:/*EOF*/
        -:        -:16722:/*EOF*/
        -:        -:16723:/*EOF*/
        -:        -:16724:/*EOF*/
        -:        -:16725:/*EOF*/
        -:        -:16726:/*EOF*/
        -:        -:16727:/*EOF*/
        -:        -:16728:/*EOF*/
        -:        -:16729:/*EOF*/
        -:        -:16730:/*EOF*/
        -:        -:16731:/*EOF*/
        -:        -:16732:/*EOF*/
        -:        -:16733:/*EOF*/
        -:        -:16734:/*EOF*/
        -:        -:16735:/*EOF*/
        -:        -:16736:/*EOF*/
        -:        -:16737:/*EOF*/
        -:        -:16738:/*EOF*/
        -:        -:16739:/*EOF*/
        -:        -:16740:/*EOF*/
        -:        -:16741:/*EOF*/
        -:        -:16742:/*EOF*/
        -:        -:16743:/*EOF*/
        -:        -:16744:/*EOF*/
        -:        -:16745:/*EOF*/
        -:        -:16746:/*EOF*/
        -:        -:16747:/*EOF*/
        -:        -:16748:/*EOF*/
        -:        -:16749:/*EOF*/
        -:        -:16750:/*EOF*/
        -:        -:16751:/*EOF*/
        -:        -:16752:/*EOF*/
        -:        -:16753:/*EOF*/
        -:        -:16754:/*EOF*/
        -:        -:16755:/*EOF*/
        -:        -:16756:/*EOF*/
        -:        -:16757:/*EOF*/
        -:        -:16758:/*EOF*/
        -:        -:16759:/*EOF*/
        -:        -:16760:/*EOF*/
        -:        -:16761:/*EOF*/
        -:        -:16762:/*EOF*/
        -:        -:16763:/*EOF*/
        -:        -:16764:/*EOF*/
        -:        -:16765:/*EOF*/
        -:        -:16766:/*EOF*/
        -:        -:16767:/*EOF*/
        -:        -:16768:/*EOF*/
        -:        -:16769:/*EOF*/
        -:        -:16770:/*EOF*/
        -:        -:16771:/*EOF*/
        -:        -:16772:/*EOF*/
        -:        -:16773:/*EOF*/
        -:        -:16774:/*EOF*/
        -:        -:16775:/*EOF*/
        -:        -:16776:/*EOF*/
        -:        -:16777:/*EOF*/
        -:        -:16778:/*EOF*/
        -:        -:16779:/*EOF*/
        -:        -:16780:/*EOF*/
        -:        -:16781:/*EOF*/
        -:        -:16782:/*EOF*/
        -:        -:16783:/*EOF*/
        -:        -:16784:/*EOF*/
        -:        -:16785:/*EOF*/
        -:        -:16786:/*EOF*/
        -:        -:16787:/*EOF*/
        -:        -:16788:/*EOF*/
        -:        -:16789:/*EOF*/
        -:        -:16790:/*EOF*/
        -:        -:16791:/*EOF*/
        -:        -:16792:/*EOF*/
        -:        -:16793:/*EOF*/
        -:        -:16794:/*EOF*/
        -:        -:16795:/*EOF*/
        -:        -:16796:/*EOF*/
        -:        -:16797:/*EOF*/
        -:        -:16798:/*EOF*/
        -:        -:16799:/*EOF*/
        -:        -:16800:/*EOF*/
        -:        -:16801:/*EOF*/
        -:        -:16802:/*EOF*/
        -:        -:16803:/*EOF*/
        -:        -:16804:/*EOF*/
        -:        -:16805:/*EOF*/
        -:        -:16806:/*EOF*/
        -:        -:16807:/*EOF*/
        -:        -:16808:/*EOF*/
        -:        -:16809:/*EOF*/
        -:        -:16810:/*EOF*/
        -:        -:16811:/*EOF*/
        -:        -:16812:/*EOF*/
        -:        -:16813:/*EOF*/
        -:        -:16814:/*EOF*/
        -:        -:16815:/*EOF*/
        -:        -:16816:/*EOF*/
        -:        -:16817:/*EOF*/
        -:        -:16818:/*EOF*/
        -:        -:16819:/*EOF*/
        -:        -:16820:/*EOF*/
        -:        -:16821:/*EOF*/
        -:        -:16822:/*EOF*/
        -:        -:16823:/*EOF*/
        -:        -:16824:/*EOF*/
        -:        -:16825:/*EOF*/
        -:        -:16826:/*EOF*/
        -:        -:16827:/*EOF*/
        -:        -:16828:/*EOF*/
        -:        -:16829:/*EOF*/
        -:        -:16830:/*EOF*/
        -:        -:16831:/*EOF*/
        -:        -:16832:/*EOF*/
        -:        -:16833:/*EOF*/
        -:        -:16834:/*EOF*/
        -:        -:16835:/*EOF*/
        -:        -:16836:/*EOF*/
        -:        -:16837:/*EOF*/
        -:        -:16838:/*EOF*/
        -:        -:16839:/*EOF*/
        -:        -:16840:/*EOF*/
        -:        -:16841:/*EOF*/
        -:        -:16842:/*EOF*/
        -:        -:16843:/*EOF*/
        -:        -:16844:/*EOF*/
        -:        -:16845:/*EOF*/
        -:        -:16846:/*EOF*/
        -:        -:16847:/*EOF*/
        -:        -:16848:/*EOF*/
        -:        -:16849:/*EOF*/
        -:        -:16850:/*EOF*/
        -:        -:16851:/*EOF*/
        -:        -:16852:/*EOF*/
        -:        -:16853:/*EOF*/
        -:        -:16854:/*EOF*/
        -:        -:16855:/*EOF*/
        -:        -:16856:/*EOF*/
        -:        -:16857:/*EOF*/
        -:        -:16858:/*EOF*/
        -:        -:16859:/*EOF*/
        -:        -:16860:/*EOF*/
        -:        -:16861:/*EOF*/
        -:        -:16862:/*EOF*/
        -:        -:16863:/*EOF*/
        -:        -:16864:/*EOF*/
        -:        -:16865:/*EOF*/
        -:        -:16866:/*EOF*/
        -:        -:16867:/*EOF*/
        -:        -:16868:/*EOF*/
        -:        -:16869:/*EOF*/
        -:        -:16870:/*EOF*/
        -:        -:16871:/*EOF*/
        -:        -:16872:/*EOF*/
        -:        -:16873:/*EOF*/
        -:        -:16874:/*EOF*/
        -:        -:16875:/*EOF*/
        -:        -:16876:/*EOF*/
        -:        -:16877:/*EOF*/
        -:        -:16878:/*EOF*/
        -:        -:16879:/*EOF*/
        -:        -:16880:/*EOF*/
        -:        -:16881:/*EOF*/
        -:        -:16882:/*EOF*/
        -:        -:16883:/*EOF*/
        -:        -:16884:/*EOF*/
        -:        -:16885:/*EOF*/
        -:        -:16886:/*EOF*/
        -:        -:16887:/*EOF*/
        -:        -:16888:/*EOF*/
        -:        -:16889:/*EOF*/
        -:        -:16890:/*EOF*/
        -:        -:16891:/*EOF*/
        -:        -:16892:/*EOF*/
        -:        -:16893:/*EOF*/
        -:        -:16894:/*EOF*/
        -:        -:16895:/*EOF*/
        -:        -:16896:/*EOF*/
        -:        -:16897:/*EOF*/
        -:        -:16898:/*EOF*/
        -:        -:16899:/*EOF*/
        -:        -:16900:/*EOF*/
        -:        -:16901:/*EOF*/
        -:        -:16902:/*EOF*/
        -:        -:16903:/*EOF*/
        -:        -:16904:/*EOF*/
        -:        -:16905:/*EOF*/
        -:        -:16906:/*EOF*/
        -:        -:16907:/*EOF*/
        -:        -:16908:/*EOF*/
        -:        -:16909:/*EOF*/
        -:        -:16910:/*EOF*/
        -:        -:16911:/*EOF*/
        -:        -:16912:/*EOF*/
        -:        -:16913:/*EOF*/
        -:        -:16914:/*EOF*/
        -:        -:16915:/*EOF*/
        -:        -:16916:/*EOF*/
        -:        -:16917:/*EOF*/
        -:        -:16918:/*EOF*/
        -:        -:16919:/*EOF*/
        -:        -:16920:/*EOF*/
        -:        -:16921:/*EOF*/
        -:        -:16922:/*EOF*/
        -:        -:16923:/*EOF*/
        -:        -:16924:/*EOF*/
        -:        -:16925:/*EOF*/
        -:        -:16926:/*EOF*/
        -:        -:16927:/*EOF*/
        -:        -:16928:/*EOF*/
        -:        -:16929:/*EOF*/
        -:        -:16930:/*EOF*/
        -:        -:16931:/*EOF*/
        -:        -:16932:/*EOF*/
        -:        -:16933:/*EOF*/
        -:        -:16934:/*EOF*/
        -:        -:16935:/*EOF*/
        -:        -:16936:/*EOF*/
        -:        -:16937:/*EOF*/
        -:        -:16938:/*EOF*/
        -:        -:16939:/*EOF*/
        -:        -:16940:/*EOF*/
        -:        -:16941:/*EOF*/
        -:        -:16942:/*EOF*/
        -:        -:16943:/*EOF*/
        -:        -:16944:/*EOF*/
        -:        -:16945:/*EOF*/
        -:        -:16946:/*EOF*/
        -:        -:16947:/*EOF*/
        -:        -:16948:/*EOF*/
        -:        -:16949:/*EOF*/
        -:        -:16950:/*EOF*/
        -:        -:16951:/*EOF*/
        -:        -:16952:/*EOF*/
        -:        -:16953:/*EOF*/
        -:        -:16954:/*EOF*/
        -:        -:16955:/*EOF*/
        -:        -:16956:/*EOF*/
        -:        -:16957:/*EOF*/
        -:        -:16958:/*EOF*/
        -:        -:16959:/*EOF*/
        -:        -:16960:/*EOF*/
        -:        -:16961:/*EOF*/
        -:        -:16962:/*EOF*/
        -:        -:16963:/*EOF*/
        -:        -:16964:/*EOF*/
        -:        -:16965:/*EOF*/
        -:        -:16966:/*EOF*/
        -:        -:16967:/*EOF*/
        -:        -:16968:/*EOF*/
        -:        -:16969:/*EOF*/
        -:        -:16970:/*EOF*/
        -:        -:16971:/*EOF*/
        -:        -:16972:/*EOF*/
        -:        -:16973:/*EOF*/
        -:        -:16974:/*EOF*/
        -:        -:16975:/*EOF*/
        -:        -:16976:/*EOF*/
        -:        -:16977:/*EOF*/
        -:        -:16978:/*EOF*/
        -:        -:16979:/*EOF*/
        -:        -:16980:/*EOF*/
        -:        -:16981:/*EOF*/
        -:        -:16982:/*EOF*/
        -:        -:16983:/*EOF*/
        -:        -:16984:/*EOF*/
        -:        -:16985:/*EOF*/
        -:        -:16986:/*EOF*/
        -:        -:16987:/*EOF*/
        -:        -:16988:/*EOF*/
        -:        -:16989:/*EOF*/
        -:        -:16990:/*EOF*/
        -:        -:16991:/*EOF*/
        -:        -:16992:/*EOF*/
        -:        -:16993:/*EOF*/
        -:        -:16994:/*EOF*/
        -:        -:16995:/*EOF*/
        -:        -:16996:/*EOF*/
        -:        -:16997:/*EOF*/
        -:        -:16998:/*EOF*/
        -:        -:16999:/*EOF*/
        -:        -:17000:/*EOF*/
        -:        -:17001:/*EOF*/
        -:        -:17002:/*EOF*/
        -:        -:17003:/*EOF*/
        -:        -:17004:/*EOF*/
        -:        -:17005:/*EOF*/
        -:        -:17006:/*EOF*/
        -:        -:17007:/*EOF*/
        -:        -:17008:/*EOF*/
        -:        -:17009:/*EOF*/
        -:        -:17010:/*EOF*/
        -:        -:17011:/*EOF*/
        -:        -:17012:/*EOF*/
        -:        -:17013:/*EOF*/
        -:        -:17014:/*EOF*/
        -:        -:17015:/*EOF*/
        -:        -:17016:/*EOF*/
        -:        -:17017:/*EOF*/
        -:        -:17018:/*EOF*/
        -:        -:17019:/*EOF*/
        -:        -:17020:/*EOF*/
        -:        -:17021:/*EOF*/
        -:        -:17022:/*EOF*/
        -:        -:17023:/*EOF*/
        -:        -:17024:/*EOF*/
        -:        -:17025:/*EOF*/
        -:        -:17026:/*EOF*/
        -:        -:17027:/*EOF*/
        -:        -:17028:/*EOF*/
        -:        -:17029:/*EOF*/
        -:        -:17030:/*EOF*/
        -:        -:17031:/*EOF*/
        -:        -:17032:/*EOF*/
        -:        -:17033:/*EOF*/
        -:        -:17034:/*EOF*/
        -:        -:17035:/*EOF*/
        -:        -:17036:/*EOF*/
        -:        -:17037:/*EOF*/
        -:        -:17038:/*EOF*/
        -:        -:17039:/*EOF*/
        -:        -:17040:/*EOF*/
        -:        -:17041:/*EOF*/
        -:        -:17042:/*EOF*/
        -:        -:17043:/*EOF*/
        -:        -:17044:/*EOF*/
        -:        -:17045:/*EOF*/
        -:        -:17046:/*EOF*/
        -:        -:17047:/*EOF*/
        -:        -:17048:/*EOF*/
        -:        -:17049:/*EOF*/
        -:        -:17050:/*EOF*/
        -:        -:17051:/*EOF*/
        -:        -:17052:/*EOF*/
        -:        -:17053:/*EOF*/
        -:        -:17054:/*EOF*/
        -:        -:17055:/*EOF*/
        -:        -:17056:/*EOF*/
        -:        -:17057:/*EOF*/
        -:        -:17058:/*EOF*/
        -:        -:17059:/*EOF*/
        -:        -:17060:/*EOF*/
        -:        -:17061:/*EOF*/
        -:        -:17062:/*EOF*/
        -:        -:17063:/*EOF*/
        -:        -:17064:/*EOF*/
        -:        -:17065:/*EOF*/
        -:        -:17066:/*EOF*/
        -:        -:17067:/*EOF*/
        -:        -:17068:/*EOF*/
        -:        -:17069:/*EOF*/
        -:        -:17070:/*EOF*/
        -:        -:17071:/*EOF*/
        -:        -:17072:/*EOF*/
        -:        -:17073:/*EOF*/
        -:        -:17074:/*EOF*/
        -:        -:17075:/*EOF*/
        -:        -:17076:/*EOF*/
        -:        -:17077:/*EOF*/
        -:        -:17078:/*EOF*/
        -:        -:17079:/*EOF*/
        -:        -:17080:/*EOF*/
        -:        -:17081:/*EOF*/
        -:        -:17082:/*EOF*/
        -:        -:17083:/*EOF*/
        -:        -:17084:/*EOF*/
        -:        -:17085:/*EOF*/
        -:        -:17086:/*EOF*/
        -:        -:17087:/*EOF*/
        -:        -:17088:/*EOF*/
        -:        -:17089:/*EOF*/
        -:        -:17090:/*EOF*/
        -:        -:17091:/*EOF*/
        -:        -:17092:/*EOF*/
        -:        -:17093:/*EOF*/
        -:        -:17094:/*EOF*/
        -:        -:17095:/*EOF*/
        -:        -:17096:/*EOF*/
        -:        -:17097:/*EOF*/
        -:        -:17098:/*EOF*/
        -:        -:17099:/*EOF*/
        -:        -:17100:/*EOF*/
        -:        -:17101:/*EOF*/
        -:        -:17102:/*EOF*/
        -:        -:17103:/*EOF*/
        -:        -:17104:/*EOF*/
        -:        -:17105:/*EOF*/
        -:        -:17106:/*EOF*/
        -:        -:17107:/*EOF*/
        -:        -:17108:/*EOF*/
        -:        -:17109:/*EOF*/
        -:        -:17110:/*EOF*/
        -:        -:17111:/*EOF*/
        -:        -:17112:/*EOF*/
        -:        -:17113:/*EOF*/
        -:        -:17114:/*EOF*/
        -:        -:17115:/*EOF*/
        -:        -:17116:/*EOF*/
        -:        -:17117:/*EOF*/
        -:        -:17118:/*EOF*/
        -:        -:17119:/*EOF*/
        -:        -:17120:/*EOF*/
        -:        -:17121:/*EOF*/
        -:        -:17122:/*EOF*/
        -:        -:17123:/*EOF*/
        -:        -:17124:/*EOF*/
        -:        -:17125:/*EOF*/
        -:        -:17126:/*EOF*/
        -:        -:17127:/*EOF*/
        -:        -:17128:/*EOF*/
        -:        -:17129:/*EOF*/
        -:        -:17130:/*EOF*/
        -:        -:17131:/*EOF*/
        -:        -:17132:/*EOF*/
        -:        -:17133:/*EOF*/
        -:        -:17134:/*EOF*/
        -:        -:17135:/*EOF*/
        -:        -:17136:/*EOF*/
        -:        -:17137:/*EOF*/
        -:        -:17138:/*EOF*/
        -:        -:17139:/*EOF*/
        -:        -:17140:/*EOF*/
        -:        -:17141:/*EOF*/
        -:        -:17142:/*EOF*/
        -:        -:17143:/*EOF*/
        -:        -:17144:/*EOF*/
        -:        -:17145:/*EOF*/
        -:        -:17146:/*EOF*/
        -:        -:17147:/*EOF*/
        -:        -:17148:/*EOF*/
        -:        -:17149:/*EOF*/
        -:        -:17150:/*EOF*/
        -:        -:17151:/*EOF*/
        -:        -:17152:/*EOF*/
        -:        -:17153:/*EOF*/
        -:        -:17154:/*EOF*/
        -:        -:17155:/*EOF*/
        -:        -:17156:/*EOF*/
        -:        -:17157:/*EOF*/
        -:        -:17158:/*EOF*/
        -:        -:17159:/*EOF*/
        -:        -:17160:/*EOF*/
        -:        -:17161:/*EOF*/
        -:        -:17162:/*EOF*/
        -:        -:17163:/*EOF*/
        -:        -:17164:/*EOF*/
        -:        -:17165:/*EOF*/
        -:        -:17166:/*EOF*/
        -:        -:17167:/*EOF*/
        -:        -:17168:/*EOF*/
        -:        -:17169:/*EOF*/
        -:        -:17170:/*EOF*/
        -:        -:17171:/*EOF*/
        -:        -:17172:/*EOF*/
        -:        -:17173:/*EOF*/
        -:        -:17174:/*EOF*/
        -:        -:17175:/*EOF*/
        -:        -:17176:/*EOF*/
        -:        -:17177:/*EOF*/
        -:        -:17178:/*EOF*/
        -:        -:17179:/*EOF*/
        -:        -:17180:/*EOF*/
        -:        -:17181:/*EOF*/
        -:        -:17182:/*EOF*/
        -:        -:17183:/*EOF*/
        -:        -:17184:/*EOF*/
        -:        -:17185:/*EOF*/
        -:        -:17186:/*EOF*/
        -:        -:17187:/*EOF*/
        -:        -:17188:/*EOF*/
        -:        -:17189:/*EOF*/
        -:        -:17190:/*EOF*/
        -:        -:17191:/*EOF*/
        -:        -:17192:/*EOF*/
        -:        -:17193:/*EOF*/
        -:        -:17194:/*EOF*/
        -:        -:17195:/*EOF*/
        -:        -:17196:/*EOF*/
        -:        -:17197:/*EOF*/
        -:        -:17198:/*EOF*/
        -:        -:17199:/*EOF*/
        -:        -:17200:/*EOF*/
        -:        -:17201:/*EOF*/
        -:        -:17202:/*EOF*/
        -:        -:17203:/*EOF*/
        -:        -:17204:/*EOF*/
        -:        -:17205:/*EOF*/
        -:        -:17206:/*EOF*/
        -:        -:17207:/*EOF*/
        -:        -:17208:/*EOF*/
        -:        -:17209:/*EOF*/
        -:        -:17210:/*EOF*/
        -:        -:17211:/*EOF*/
        -:        -:17212:/*EOF*/
        -:        -:17213:/*EOF*/
        -:        -:17214:/*EOF*/
        -:        -:17215:/*EOF*/
        -:        -:17216:/*EOF*/
        -:        -:17217:/*EOF*/
        -:        -:17218:/*EOF*/
        -:        -:17219:/*EOF*/
        -:        -:17220:/*EOF*/
        -:        -:17221:/*EOF*/
        -:        -:17222:/*EOF*/
        -:        -:17223:/*EOF*/
        -:        -:17224:/*EOF*/
        -:        -:17225:/*EOF*/
        -:        -:17226:/*EOF*/
        -:        -:17227:/*EOF*/
        -:        -:17228:/*EOF*/
        -:        -:17229:/*EOF*/
        -:        -:17230:/*EOF*/
        -:        -:17231:/*EOF*/
        -:        -:17232:/*EOF*/
        -:        -:17233:/*EOF*/
        -:        -:17234:/*EOF*/
        -:        -:17235:/*EOF*/
        -:        -:17236:/*EOF*/
        -:        -:17237:/*EOF*/
        -:        -:17238:/*EOF*/
        -:        -:17239:/*EOF*/
        -:        -:17240:/*EOF*/
        -:        -:17241:/*EOF*/
        -:        -:17242:/*EOF*/
        -:        -:17243:/*EOF*/
        -:        -:17244:/*EOF*/
        -:        -:17245:/*EOF*/
        -:        -:17246:/*EOF*/
        -:        -:17247:/*EOF*/
        -:        -:17248:/*EOF*/
        -:        -:17249:/*EOF*/
        -:        -:17250:/*EOF*/
        -:        -:17251:/*EOF*/
        -:        -:17252:/*EOF*/
        -:        -:17253:/*EOF*/
        -:        -:17254:/*EOF*/
        -:        -:17255:/*EOF*/
        -:        -:17256:/*EOF*/
        -:        -:17257:/*EOF*/
        -:        -:17258:/*EOF*/
        -:        -:17259:/*EOF*/
        -:        -:17260:/*EOF*/
        -:        -:17261:/*EOF*/
        -:        -:17262:/*EOF*/
        -:        -:17263:/*EOF*/
        -:        -:17264:/*EOF*/
        -:        -:17265:/*EOF*/
        -:        -:17266:/*EOF*/
        -:        -:17267:/*EOF*/
        -:        -:17268:/*EOF*/
        -:        -:17269:/*EOF*/
        -:        -:17270:/*EOF*/
        -:        -:17271:/*EOF*/
        -:        -:17272:/*EOF*/
        -:        -:17273:/*EOF*/
        -:        -:17274:/*EOF*/
        -:        -:17275:/*EOF*/
        -:        -:17276:/*EOF*/
        -:        -:17277:/*EOF*/
        -:        -:17278:/*EOF*/
        -:        -:17279:/*EOF*/
        -:        -:17280:/*EOF*/
        -:        -:17281:/*EOF*/
        -:        -:17282:/*EOF*/
        -:        -:17283:/*EOF*/
        -:        -:17284:/*EOF*/
        -:        -:17285:/*EOF*/
        -:        -:17286:/*EOF*/
        -:        -:17287:/*EOF*/
        -:        -:17288:/*EOF*/
        -:        -:17289:/*EOF*/
        -:        -:17290:/*EOF*/
        -:        -:17291:/*EOF*/
        -:        -:17292:/*EOF*/
        -:        -:17293:/*EOF*/
        -:        -:17294:/*EOF*/
        -:        -:17295:/*EOF*/
        -:        -:17296:/*EOF*/
        -:        -:17297:/*EOF*/
        -:        -:17298:/*EOF*/
        -:        -:17299:/*EOF*/
        -:        -:17300:/*EOF*/
        -:        -:17301:/*EOF*/
        -:        -:17302:/*EOF*/
        -:        -:17303:/*EOF*/
        -:        -:17304:/*EOF*/
        -:        -:17305:/*EOF*/
        -:        -:17306:/*EOF*/
        -:        -:17307:/*EOF*/
        -:        -:17308:/*EOF*/
        -:        -:17309:/*EOF*/
        -:        -:17310:/*EOF*/
        -:        -:17311:/*EOF*/
        -:        -:17312:/*EOF*/
        -:        -:17313:/*EOF*/
        -:        -:17314:/*EOF*/
        -:        -:17315:/*EOF*/
        -:        -:17316:/*EOF*/
        -:        -:17317:/*EOF*/
        -:        -:17318:/*EOF*/
        -:        -:17319:/*EOF*/
        -:        -:17320:/*EOF*/
        -:        -:17321:/*EOF*/
        -:        -:17322:/*EOF*/
        -:        -:17323:/*EOF*/
        -:        -:17324:/*EOF*/
        -:        -:17325:/*EOF*/
        -:        -:17326:/*EOF*/
        -:        -:17327:/*EOF*/
        -:        -:17328:/*EOF*/
        -:        -:17329:/*EOF*/
        -:        -:17330:/*EOF*/
        -:        -:17331:/*EOF*/
        -:        -:17332:/*EOF*/
        -:        -:17333:/*EOF*/
        -:        -:17334:/*EOF*/
        -:        -:17335:/*EOF*/
        -:        -:17336:/*EOF*/
        -:        -:17337:/*EOF*/
        -:        -:17338:/*EOF*/
        -:        -:17339:/*EOF*/
        -:        -:17340:/*EOF*/
        -:        -:17341:/*EOF*/
        -:        -:17342:/*EOF*/
        -:        -:17343:/*EOF*/
        -:        -:17344:/*EOF*/
        -:        -:17345:/*EOF*/
        -:        -:17346:/*EOF*/
        -:        -:17347:/*EOF*/
        -:        -:17348:/*EOF*/
        -:        -:17349:/*EOF*/
        -:        -:17350:/*EOF*/
        -:        -:17351:/*EOF*/
        -:        -:17352:/*EOF*/
        -:        -:17353:/*EOF*/
        -:        -:17354:/*EOF*/
        -:        -:17355:/*EOF*/
        -:        -:17356:/*EOF*/
        -:        -:17357:/*EOF*/
        -:        -:17358:/*EOF*/
        -:        -:17359:/*EOF*/
        -:        -:17360:/*EOF*/
        -:        -:17361:/*EOF*/
        -:        -:17362:/*EOF*/
        -:        -:17363:/*EOF*/
        -:        -:17364:/*EOF*/
        -:        -:17365:/*EOF*/
        -:        -:17366:/*EOF*/
        -:        -:17367:/*EOF*/
        -:        -:17368:/*EOF*/
        -:        -:17369:/*EOF*/
        -:        -:17370:/*EOF*/
        -:        -:17371:/*EOF*/
        -:        -:17372:/*EOF*/
        -:        -:17373:/*EOF*/
        -:        -:17374:/*EOF*/
        -:        -:17375:/*EOF*/
        -:        -:17376:/*EOF*/
        -:        -:17377:/*EOF*/
        -:        -:17378:/*EOF*/
        -:        -:17379:/*EOF*/
        -:        -:17380:/*EOF*/
        -:        -:17381:/*EOF*/
        -:        -:17382:/*EOF*/
        -:        -:17383:/*EOF*/
        -:        -:17384:/*EOF*/
        -:        -:17385:/*EOF*/
        -:        -:17386:/*EOF*/
        -:        -:17387:/*EOF*/
        -:        -:17388:/*EOF*/
        -:        -:17389:/*EOF*/
        -:        -:17390:/*EOF*/
        -:        -:17391:/*EOF*/
        -:        -:17392:/*EOF*/
        -:        -:17393:/*EOF*/
        -:        -:17394:/*EOF*/
        -:        -:17395:/*EOF*/
        -:        -:17396:/*EOF*/
        -:        -:17397:/*EOF*/
        -:        -:17398:/*EOF*/
        -:        -:17399:/*EOF*/
        -:        -:17400:/*EOF*/
        -:        -:17401:/*EOF*/
        -:        -:17402:/*EOF*/
        -:        -:17403:/*EOF*/
        -:        -:17404:/*EOF*/
        -:        -:17405:/*EOF*/
        -:        -:17406:/*EOF*/
        -:        -:17407:/*EOF*/
        -:        -:17408:/*EOF*/
        -:        -:17409:/*EOF*/
        -:        -:17410:/*EOF*/
        -:        -:17411:/*EOF*/
        -:        -:17412:/*EOF*/
        -:        -:17413:/*EOF*/
        -:        -:17414:/*EOF*/
        -:        -:17415:/*EOF*/
        -:        -:17416:/*EOF*/
        -:        -:17417:/*EOF*/
        -:        -:17418:/*EOF*/
        -:        -:17419:/*EOF*/
        -:        -:17420:/*EOF*/
        -:        -:17421:/*EOF*/
        -:        -:17422:/*EOF*/
        -:        -:17423:/*EOF*/
        -:        -:17424:/*EOF*/
        -:        -:17425:/*EOF*/
        -:        -:17426:/*EOF*/
        -:        -:17427:/*EOF*/
        -:        -:17428:/*EOF*/
        -:        -:17429:/*EOF*/
        -:        -:17430:/*EOF*/
        -:        -:17431:/*EOF*/
        -:        -:17432:/*EOF*/
        -:        -:17433:/*EOF*/
        -:        -:17434:/*EOF*/
        -:        -:17435:/*EOF*/
        -:        -:17436:/*EOF*/
        -:        -:17437:/*EOF*/
        -:        -:17438:/*EOF*/
        -:        -:17439:/*EOF*/
        -:        -:17440:/*EOF*/
        -:        -:17441:/*EOF*/
        -:        -:17442:/*EOF*/
        -:        -:17443:/*EOF*/
        -:        -:17444:/*EOF*/
        -:        -:17445:/*EOF*/
        -:        -:17446:/*EOF*/
        -:        -:17447:/*EOF*/
        -:        -:17448:/*EOF*/
        -:        -:17449:/*EOF*/
        -:        -:17450:/*EOF*/
        -:        -:17451:/*EOF*/
        -:        -:17452:/*EOF*/
        -:        -:17453:/*EOF*/
        -:        -:17454:/*EOF*/
        -:        -:17455:/*EOF*/
        -:        -:17456:/*EOF*/
        -:        -:17457:/*EOF*/
        -:        -:17458:/*EOF*/
        -:        -:17459:/*EOF*/
        -:        -:17460:/*EOF*/
        -:        -:17461:/*EOF*/
        -:        -:17462:/*EOF*/
        -:        -:17463:/*EOF*/
        -:        -:17464:/*EOF*/
        -:        -:17465:/*EOF*/
        -:        -:17466:/*EOF*/
        -:        -:17467:/*EOF*/
        -:        -:17468:/*EOF*/
        -:        -:17469:/*EOF*/
        -:        -:17470:/*EOF*/
        -:        -:17471:/*EOF*/
        -:        -:17472:/*EOF*/
        -:        -:17473:/*EOF*/
        -:        -:17474:/*EOF*/
        -:        -:17475:/*EOF*/
        -:        -:17476:/*EOF*/
        -:        -:17477:/*EOF*/
        -:        -:17478:/*EOF*/
        -:        -:17479:/*EOF*/
        -:        -:17480:/*EOF*/
        -:        -:17481:/*EOF*/
        -:        -:17482:/*EOF*/
        -:        -:17483:/*EOF*/
        -:        -:17484:/*EOF*/
        -:        -:17485:/*EOF*/
        -:        -:17486:/*EOF*/
        -:        -:17487:/*EOF*/
        -:        -:17488:/*EOF*/
        -:        -:17489:/*EOF*/
        -:        -:17490:/*EOF*/
        -:        -:17491:/*EOF*/
        -:        -:17492:/*EOF*/
        -:        -:17493:/*EOF*/
        -:        -:17494:/*EOF*/
        -:        -:17495:/*EOF*/
        -:        -:17496:/*EOF*/
        -:        -:17497:/*EOF*/
        -:        -:17498:/*EOF*/
        -:        -:17499:/*EOF*/
        -:        -:17500:/*EOF*/
        -:        -:17501:/*EOF*/
        -:        -:17502:/*EOF*/
        -:        -:17503:/*EOF*/
        -:        -:17504:/*EOF*/
        -:        -:17505:/*EOF*/
        -:        -:17506:/*EOF*/
        -:        -:17507:/*EOF*/
        -:        -:17508:/*EOF*/
        -:        -:17509:/*EOF*/
        -:        -:17510:/*EOF*/
        -:        -:17511:/*EOF*/
        -:        -:17512:/*EOF*/
        -:        -:17513:/*EOF*/
        -:        -:17514:/*EOF*/
        -:        -:17515:/*EOF*/
        -:        -:17516:/*EOF*/
        -:        -:17517:/*EOF*/
        -:        -:17518:/*EOF*/
        -:        -:17519:/*EOF*/
        -:        -:17520:/*EOF*/
        -:        -:17521:/*EOF*/
        -:        -:17522:/*EOF*/
        -:        -:17523:/*EOF*/
        -:        -:17524:/*EOF*/
        -:        -:17525:/*EOF*/
        -:        -:17526:/*EOF*/
        -:        -:17527:/*EOF*/
        -:        -:17528:/*EOF*/
        -:        -:17529:/*EOF*/
        -:        -:17530:/*EOF*/
        -:        -:17531:/*EOF*/
        -:        -:17532:/*EOF*/
        -:        -:17533:/*EOF*/
        -:        -:17534:/*EOF*/
        -:        -:17535:/*EOF*/
        -:        -:17536:/*EOF*/
        -:        -:17537:/*EOF*/
        -:        -:17538:/*EOF*/
        -:        -:17539:/*EOF*/
        -:        -:17540:/*EOF*/
        -:        -:17541:/*EOF*/
        -:        -:17542:/*EOF*/
        -:        -:17543:/*EOF*/
        -:        -:17544:/*EOF*/
        -:        -:17545:/*EOF*/
        -:        -:17546:/*EOF*/
        -:        -:17547:/*EOF*/
        -:        -:17548:/*EOF*/
        -:        -:17549:/*EOF*/
        -:        -:17550:/*EOF*/
        -:        -:17551:/*EOF*/
        -:        -:17552:/*EOF*/
        -:        -:17553:/*EOF*/
        -:        -:17554:/*EOF*/
        -:        -:17555:/*EOF*/
        -:        -:17556:/*EOF*/
        -:        -:17557:/*EOF*/
        -:        -:17558:/*EOF*/
        -:        -:17559:/*EOF*/
        -:        -:17560:/*EOF*/
        -:        -:17561:/*EOF*/
        -:        -:17562:/*EOF*/
        -:        -:17563:/*EOF*/
        -:        -:17564:/*EOF*/
        -:        -:17565:/*EOF*/
        -:        -:17566:/*EOF*/
        -:        -:17567:/*EOF*/
        -:        -:17568:/*EOF*/
        -:        -:17569:/*EOF*/
        -:        -:17570:/*EOF*/
        -:        -:17571:/*EOF*/
        -:        -:17572:/*EOF*/
        -:        -:17573:/*EOF*/
        -:        -:17574:/*EOF*/
        -:        -:17575:/*EOF*/
        -:        -:17576:/*EOF*/
        -:        -:17577:/*EOF*/
        -:        -:17578:/*EOF*/
        -:        -:17579:/*EOF*/
        -:        -:17580:/*EOF*/
        -:        -:17581:/*EOF*/
        -:        -:17582:/*EOF*/
        -:        -:17583:/*EOF*/
        -:        -:17584:/*EOF*/
        -:        -:17585:/*EOF*/
        -:        -:17586:/*EOF*/
        -:        -:17587:/*EOF*/
        -:        -:17588:/*EOF*/
        -:        -:17589:/*EOF*/
        -:        -:17590:/*EOF*/
        -:        -:17591:/*EOF*/
        -:        -:17592:/*EOF*/
        -:        -:17593:/*EOF*/
        -:        -:17594:/*EOF*/
        -:        -:17595:/*EOF*/
        -:        -:17596:/*EOF*/
        -:        -:17597:/*EOF*/
        -:        -:17598:/*EOF*/
        -:        -:17599:/*EOF*/
        -:        -:17600:/*EOF*/
        -:        -:17601:/*EOF*/
        -:        -:17602:/*EOF*/
        -:        -:17603:/*EOF*/
        -:        -:17604:/*EOF*/
        -:        -:17605:/*EOF*/
        -:        -:17606:/*EOF*/
        -:        -:17607:/*EOF*/
        -:        -:17608:/*EOF*/
        -:        -:17609:/*EOF*/
        -:        -:17610:/*EOF*/
        -:        -:17611:/*EOF*/
        -:        -:17612:/*EOF*/
        -:        -:17613:/*EOF*/
        -:        -:17614:/*EOF*/
        -:        -:17615:/*EOF*/
        -:        -:17616:/*EOF*/
        -:        -:17617:/*EOF*/
        -:        -:17618:/*EOF*/
        -:        -:17619:/*EOF*/
        -:        -:17620:/*EOF*/
        -:        -:17621:/*EOF*/
        -:        -:17622:/*EOF*/
        -:        -:17623:/*EOF*/
        -:        -:17624:/*EOF*/
        -:        -:17625:/*EOF*/
        -:        -:17626:/*EOF*/
        -:        -:17627:/*EOF*/
        -:        -:17628:/*EOF*/
        -:        -:17629:/*EOF*/
        -:        -:17630:/*EOF*/
        -:        -:17631:/*EOF*/
        -:        -:17632:/*EOF*/
        -:        -:17633:/*EOF*/
        -:        -:17634:/*EOF*/
        -:        -:17635:/*EOF*/
        -:        -:17636:/*EOF*/
        -:        -:17637:/*EOF*/
        -:        -:17638:/*EOF*/
        -:        -:17639:/*EOF*/
        -:        -:17640:/*EOF*/
        -:        -:17641:/*EOF*/
        -:        -:17642:/*EOF*/
        -:        -:17643:/*EOF*/
        -:        -:17644:/*EOF*/
        -:        -:17645:/*EOF*/
        -:        -:17646:/*EOF*/
        -:        -:17647:/*EOF*/
        -:        -:17648:/*EOF*/
        -:        -:17649:/*EOF*/
        -:        -:17650:/*EOF*/
        -:        -:17651:/*EOF*/
        -:        -:17652:/*EOF*/
        -:        -:17653:/*EOF*/
        -:        -:17654:/*EOF*/
        -:        -:17655:/*EOF*/
        -:        -:17656:/*EOF*/
        -:        -:17657:/*EOF*/
        -:        -:17658:/*EOF*/
        -:        -:17659:/*EOF*/
        -:        -:17660:/*EOF*/
        -:        -:17661:/*EOF*/
        -:        -:17662:/*EOF*/
        -:        -:17663:/*EOF*/
        -:        -:17664:/*EOF*/
        -:        -:17665:/*EOF*/
        -:        -:17666:/*EOF*/
        -:        -:17667:/*EOF*/
        -:        -:17668:/*EOF*/
        -:        -:17669:/*EOF*/
        -:        -:17670:/*EOF*/
        -:        -:17671:/*EOF*/
        -:        -:17672:/*EOF*/
        -:        -:17673:/*EOF*/
        -:        -:17674:/*EOF*/
        -:        -:17675:/*EOF*/
        -:        -:17676:/*EOF*/
        -:        -:17677:/*EOF*/
        -:        -:17678:/*EOF*/
        -:        -:17679:/*EOF*/
        -:        -:17680:/*EOF*/
        -:        -:17681:/*EOF*/
        -:        -:17682:/*EOF*/
        -:        -:17683:/*EOF*/
        -:        -:17684:/*EOF*/
        -:        -:17685:/*EOF*/
        -:        -:17686:/*EOF*/
        -:        -:17687:/*EOF*/
        -:        -:17688:/*EOF*/
        -:        -:17689:/*EOF*/
        -:        -:17690:/*EOF*/
        -:        -:17691:/*EOF*/
        -:        -:17692:/*EOF*/
        -:        -:17693:/*EOF*/
        -:        -:17694:/*EOF*/
        -:        -:17695:/*EOF*/
        -:        -:17696:/*EOF*/
        -:        -:17697:/*EOF*/
        -:        -:17698:/*EOF*/
        -:        -:17699:/*EOF*/
        -:        -:17700:/*EOF*/
        -:        -:17701:/*EOF*/
        -:        -:17702:/*EOF*/
        -:        -:17703:/*EOF*/
        -:        -:17704:/*EOF*/
        -:        -:17705:/*EOF*/
        -:        -:17706:/*EOF*/
        -:        -:17707:/*EOF*/
        -:        -:17708:/*EOF*/
        -:        -:17709:/*EOF*/
        -:        -:17710:/*EOF*/
        -:        -:17711:/*EOF*/
        -:        -:17712:/*EOF*/
        -:        -:17713:/*EOF*/
        -:        -:17714:/*EOF*/
        -:        -:17715:/*EOF*/
        -:        -:17716:/*EOF*/
        -:        -:17717:/*EOF*/
        -:        -:17718:/*EOF*/
        -:        -:17719:/*EOF*/
        -:        -:17720:/*EOF*/
        -:        -:17721:/*EOF*/
        -:        -:17722:/*EOF*/
        -:        -:17723:/*EOF*/
        -:        -:17724:/*EOF*/
        -:        -:17725:/*EOF*/
        -:        -:17726:/*EOF*/
        -:        -:17727:/*EOF*/
        -:        -:17728:/*EOF*/
        -:        -:17729:/*EOF*/
        -:        -:17730:/*EOF*/
        -:        -:17731:/*EOF*/
        -:        -:17732:/*EOF*/
        -:        -:17733:/*EOF*/
        -:        -:17734:/*EOF*/
        -:        -:17735:/*EOF*/
        -:        -:17736:/*EOF*/
        -:        -:17737:/*EOF*/
        -:        -:17738:/*EOF*/
        -:        -:17739:/*EOF*/
        -:        -:17740:/*EOF*/
        -:        -:17741:/*EOF*/
        -:        -:17742:/*EOF*/
        -:        -:17743:/*EOF*/
        -:        -:17744:/*EOF*/
        -:        -:17745:/*EOF*/
        -:        -:17746:/*EOF*/
        -:        -:17747:/*EOF*/
        -:        -:17748:/*EOF*/
        -:        -:17749:/*EOF*/
        -:        -:17750:/*EOF*/
        -:        -:17751:/*EOF*/
        -:        -:17752:/*EOF*/
        -:        -:17753:/*EOF*/
        -:        -:17754:/*EOF*/
        -:        -:17755:/*EOF*/
        -:        -:17756:/*EOF*/
        -:        -:17757:/*EOF*/
        -:        -:17758:/*EOF*/
        -:        -:17759:/*EOF*/
        -:        -:17760:/*EOF*/
        -:        -:17761:/*EOF*/
        -:        -:17762:/*EOF*/
        -:        -:17763:/*EOF*/
        -:        -:17764:/*EOF*/
        -:        -:17765:/*EOF*/
        -:        -:17766:/*EOF*/
        -:        -:17767:/*EOF*/
        -:        -:17768:/*EOF*/
        -:        -:17769:/*EOF*/
        -:        -:17770:/*EOF*/
        -:        -:17771:/*EOF*/
        -:        -:17772:/*EOF*/
        -:        -:17773:/*EOF*/
        -:        -:17774:/*EOF*/
        -:        -:17775:/*EOF*/
        -:        -:17776:/*EOF*/
        -:        -:17777:/*EOF*/
        -:        -:17778:/*EOF*/
        -:        -:17779:/*EOF*/
        -:        -:17780:/*EOF*/
        -:        -:17781:/*EOF*/
        -:        -:17782:/*EOF*/
        -:        -:17783:/*EOF*/
        -:        -:17784:/*EOF*/
        -:        -:17785:/*EOF*/
        -:        -:17786:/*EOF*/
        -:        -:17787:/*EOF*/
        -:        -:17788:/*EOF*/
        -:        -:17789:/*EOF*/
        -:        -:17790:/*EOF*/
        -:        -:17791:/*EOF*/
        -:        -:17792:/*EOF*/
        -:        -:17793:/*EOF*/
        -:        -:17794:/*EOF*/
        -:        -:17795:/*EOF*/
        -:        -:17796:/*EOF*/
        -:        -:17797:/*EOF*/
        -:        -:17798:/*EOF*/
        -:        -:17799:/*EOF*/
        -:        -:17800:/*EOF*/
        -:        -:17801:/*EOF*/
        -:        -:17802:/*EOF*/
        -:        -:17803:/*EOF*/
        -:        -:17804:/*EOF*/
        -:        -:17805:/*EOF*/
        -:        -:17806:/*EOF*/
        -:        -:17807:/*EOF*/
        -:        -:17808:/*EOF*/
        -:        -:17809:/*EOF*/
        -:        -:17810:/*EOF*/
        -:        -:17811:/*EOF*/
        -:        -:17812:/*EOF*/
        -:        -:17813:/*EOF*/
        -:        -:17814:/*EOF*/
        -:        -:17815:/*EOF*/
        -:        -:17816:/*EOF*/
        -:        -:17817:/*EOF*/
        -:        -:17818:/*EOF*/
        -:        -:17819:/*EOF*/
        -:        -:17820:/*EOF*/
        -:        -:17821:/*EOF*/
        -:        -:17822:/*EOF*/
        -:        -:17823:/*EOF*/
        -:        -:17824:/*EOF*/
        -:        -:17825:/*EOF*/
        -:        -:17826:/*EOF*/
        -:        -:17827:/*EOF*/
        -:        -:17828:/*EOF*/
        -:        -:17829:/*EOF*/
        -:        -:17830:/*EOF*/
        -:        -:17831:/*EOF*/
        -:        -:17832:/*EOF*/
        -:        -:17833:/*EOF*/
        -:        -:17834:/*EOF*/
        -:        -:17835:/*EOF*/
        -:        -:17836:/*EOF*/
        -:        -:17837:/*EOF*/
        -:        -:17838:/*EOF*/
        -:        -:17839:/*EOF*/
        -:        -:17840:/*EOF*/
        -:        -:17841:/*EOF*/
        -:        -:17842:/*EOF*/
        -:        -:17843:/*EOF*/
        -:        -:17844:/*EOF*/
        -:        -:17845:/*EOF*/
        -:        -:17846:/*EOF*/
        -:        -:17847:/*EOF*/
        -:        -:17848:/*EOF*/
        -:        -:17849:/*EOF*/
        -:        -:17850:/*EOF*/
        -:        -:17851:/*EOF*/
        -:        -:17852:/*EOF*/
        -:        -:17853:/*EOF*/
        -:        -:17854:/*EOF*/
        -:        -:17855:/*EOF*/
        -:        -:17856:/*EOF*/
        -:        -:17857:/*EOF*/
        -:        -:17858:/*EOF*/
        -:        -:17859:/*EOF*/
        -:        -:17860:/*EOF*/
        -:        -:17861:/*EOF*/
        -:        -:17862:/*EOF*/
        -:        -:17863:/*EOF*/
        -:        -:17864:/*EOF*/
        -:        -:17865:/*EOF*/
        -:        -:17866:/*EOF*/
        -:        -:17867:/*EOF*/
        -:        -:17868:/*EOF*/
        -:        -:17869:/*EOF*/
        -:        -:17870:/*EOF*/
        -:        -:17871:/*EOF*/
        -:        -:17872:/*EOF*/
        -:        -:17873:/*EOF*/
        -:        -:17874:/*EOF*/
        -:        -:17875:/*EOF*/
        -:        -:17876:/*EOF*/
        -:        -:17877:/*EOF*/
        -:        -:17878:/*EOF*/
        -:        -:17879:/*EOF*/
        -:        -:17880:/*EOF*/
        -:        -:17881:/*EOF*/
        -:        -:17882:/*EOF*/
        -:        -:17883:/*EOF*/
        -:        -:17884:/*EOF*/
        -:        -:17885:/*EOF*/
        -:        -:17886:/*EOF*/
        -:        -:17887:/*EOF*/
        -:        -:17888:/*EOF*/
        -:        -:17889:/*EOF*/
        -:        -:17890:/*EOF*/
        -:        -:17891:/*EOF*/
        -:        -:17892:/*EOF*/
        -:        -:17893:/*EOF*/
        -:        -:17894:/*EOF*/
        -:        -:17895:/*EOF*/
        -:        -:17896:/*EOF*/
        -:        -:17897:/*EOF*/
        -:        -:17898:/*EOF*/
        -:        -:17899:/*EOF*/
        -:        -:17900:/*EOF*/
        -:        -:17901:/*EOF*/
        -:        -:17902:/*EOF*/
        -:        -:17903:/*EOF*/
        -:        -:17904:/*EOF*/
        -:        -:17905:/*EOF*/
        -:        -:17906:/*EOF*/
        -:        -:17907:/*EOF*/
        -:        -:17908:/*EOF*/
        -:        -:17909:/*EOF*/
        -:        -:17910:/*EOF*/
        -:        -:17911:/*EOF*/
        -:        -:17912:/*EOF*/
        -:        -:17913:/*EOF*/
        -:        -:17914:/*EOF*/
        -:        -:17915:/*EOF*/
        -:        -:17916:/*EOF*/
        -:        -:17917:/*EOF*/
        -:        -:17918:/*EOF*/
        -:        -:17919:/*EOF*/
        -:        -:17920:/*EOF*/
        -:        -:17921:/*EOF*/
        -:        -:17922:/*EOF*/
        -:        -:17923:/*EOF*/
        -:        -:17924:/*EOF*/
        -:        -:17925:/*EOF*/
        -:        -:17926:/*EOF*/
        -:        -:17927:/*EOF*/
        -:        -:17928:/*EOF*/
        -:        -:17929:/*EOF*/
        -:        -:17930:/*EOF*/
        -:        -:17931:/*EOF*/
        -:        -:17932:/*EOF*/
        -:        -:17933:/*EOF*/
        -:        -:17934:/*EOF*/
        -:        -:17935:/*EOF*/
        -:        -:17936:/*EOF*/
        -:        -:17937:/*EOF*/
        -:        -:17938:/*EOF*/
        -:        -:17939:/*EOF*/
        -:        -:17940:/*EOF*/
        -:        -:17941:/*EOF*/
        -:        -:17942:/*EOF*/
        -:        -:17943:/*EOF*/
        -:        -:17944:/*EOF*/
        -:        -:17945:/*EOF*/
        -:        -:17946:/*EOF*/
        -:        -:17947:/*EOF*/
        -:        -:17948:/*EOF*/
        -:        -:17949:/*EOF*/
        -:        -:17950:/*EOF*/
        -:        -:17951:/*EOF*/
        -:        -:17952:/*EOF*/
        -:        -:17953:/*EOF*/
        -:        -:17954:/*EOF*/
        -:        -:17955:/*EOF*/
        -:        -:17956:/*EOF*/
        -:        -:17957:/*EOF*/
        -:        -:17958:/*EOF*/
        -:        -:17959:/*EOF*/
        -:        -:17960:/*EOF*/
        -:        -:17961:/*EOF*/
        -:        -:17962:/*EOF*/
        -:        -:17963:/*EOF*/
        -:        -:17964:/*EOF*/
        -:        -:17965:/*EOF*/
        -:        -:17966:/*EOF*/
        -:        -:17967:/*EOF*/
        -:        -:17968:/*EOF*/
        -:        -:17969:/*EOF*/
        -:        -:17970:/*EOF*/
        -:        -:17971:/*EOF*/
        -:        -:17972:/*EOF*/
        -:        -:17973:/*EOF*/
        -:        -:17974:/*EOF*/
        -:        -:17975:/*EOF*/
        -:        -:17976:/*EOF*/
        -:        -:17977:/*EOF*/
        -:        -:17978:/*EOF*/
        -:        -:17979:/*EOF*/
        -:        -:17980:/*EOF*/
        -:        -:17981:/*EOF*/
        -:        -:17982:/*EOF*/
        -:        -:17983:/*EOF*/
        -:        -:17984:/*EOF*/
        -:        -:17985:/*EOF*/
        -:        -:17986:/*EOF*/
        -:        -:17987:/*EOF*/
        -:        -:17988:/*EOF*/
        -:        -:17989:/*EOF*/
        -:        -:17990:/*EOF*/
        -:        -:17991:/*EOF*/
        -:        -:17992:/*EOF*/
        -:        -:17993:/*EOF*/
        -:        -:17994:/*EOF*/
        -:        -:17995:/*EOF*/
        -:        -:17996:/*EOF*/
        -:        -:17997:/*EOF*/
        -:        -:17998:/*EOF*/
        -:        -:17999:/*EOF*/
        -:        -:18000:/*EOF*/
        -:        -:18001:/*EOF*/
        -:        -:18002:/*EOF*/
        -:        -:18003:/*EOF*/
        -:        -:18004:/*EOF*/
        -:        -:18005:/*EOF*/
        -:        -:18006:/*EOF*/
        -:        -:18007:/*EOF*/
        -:        -:18008:/*EOF*/
        -:        -:18009:/*EOF*/
        -:        -:18010:/*EOF*/
        -:        -:18011:/*EOF*/
        -:        -:18012:/*EOF*/
        -:        -:18013:/*EOF*/
        -:        -:18014:/*EOF*/
        -:        -:18015:/*EOF*/
        -:        -:18016:/*EOF*/
        -:        -:18017:/*EOF*/
        -:        -:18018:/*EOF*/
        -:        -:18019:/*EOF*/
        -:        -:18020:/*EOF*/
        -:        -:18021:/*EOF*/
        -:        -:18022:/*EOF*/
        -:        -:18023:/*EOF*/
        -:        -:18024:/*EOF*/
        -:        -:18025:/*EOF*/
        -:        -:18026:/*EOF*/
        -:        -:18027:/*EOF*/
        -:        -:18028:/*EOF*/
        -:        -:18029:/*EOF*/
        -:        -:18030:/*EOF*/
        -:        -:18031:/*EOF*/
        -:        -:18032:/*EOF*/
        -:        -:18033:/*EOF*/
        -:        -:18034:/*EOF*/
        -:        -:18035:/*EOF*/
        -:        -:18036:/*EOF*/
        -:        -:18037:/*EOF*/
        -:        -:18038:/*EOF*/
        -:        -:18039:/*EOF*/
        -:        -:18040:/*EOF*/
        -:        -:18041:/*EOF*/
        -:        -:18042:/*EOF*/
        -:        -:18043:/*EOF*/
        -:        -:18044:/*EOF*/
        -:        -:18045:/*EOF*/
        -:        -:18046:/*EOF*/
        -:        -:18047:/*EOF*/
        -:        -:18048:/*EOF*/
        -:        -:18049:/*EOF*/
        -:        -:18050:/*EOF*/
        -:        -:18051:/*EOF*/
        -:        -:18052:/*EOF*/
        -:        -:18053:/*EOF*/
        -:        -:18054:/*EOF*/
        -:        -:18055:/*EOF*/
        -:        -:18056:/*EOF*/
        -:        -:18057:/*EOF*/
        -:        -:18058:/*EOF*/
        -:        -:18059:/*EOF*/
        -:        -:18060:/*EOF*/
        -:        -:18061:/*EOF*/
        -:        -:18062:/*EOF*/
        -:        -:18063:/*EOF*/
        -:        -:18064:/*EOF*/
        -:        -:18065:/*EOF*/
        -:        -:18066:/*EOF*/
        -:        -:18067:/*EOF*/
        -:        -:18068:/*EOF*/
        -:        -:18069:/*EOF*/
        -:        -:18070:/*EOF*/
        -:        -:18071:/*EOF*/
        -:        -:18072:/*EOF*/
        -:        -:18073:/*EOF*/
        -:        -:18074:/*EOF*/
        -:        -:18075:/*EOF*/
        -:        -:18076:/*EOF*/
        -:        -:18077:/*EOF*/
        -:        -:18078:/*EOF*/
        -:        -:18079:/*EOF*/
        -:        -:18080:/*EOF*/
        -:        -:18081:/*EOF*/
        -:        -:18082:/*EOF*/
        -:        -:18083:/*EOF*/
        -:        -:18084:/*EOF*/
        -:        -:18085:/*EOF*/
        -:        -:18086:/*EOF*/
        -:        -:18087:/*EOF*/
        -:        -:18088:/*EOF*/
        -:        -:18089:/*EOF*/
        -:        -:18090:/*EOF*/
        -:        -:18091:/*EOF*/
        -:        -:18092:/*EOF*/
        -:        -:18093:/*EOF*/
        -:        -:18094:/*EOF*/
        -:        -:18095:/*EOF*/
        -:        -:18096:/*EOF*/
        -:        -:18097:/*EOF*/
        -:        -:18098:/*EOF*/
        -:        -:18099:/*EOF*/
        -:        -:18100:/*EOF*/
        -:        -:18101:/*EOF*/
        -:        -:18102:/*EOF*/
        -:        -:18103:/*EOF*/
        -:        -:18104:/*EOF*/
        -:        -:18105:/*EOF*/
        -:        -:18106:/*EOF*/
        -:        -:18107:/*EOF*/
        -:        -:18108:/*EOF*/
        -:        -:18109:/*EOF*/
        -:        -:18110:/*EOF*/
        -:        -:18111:/*EOF*/
        -:        -:18112:/*EOF*/
        -:        -:18113:/*EOF*/
        -:        -:18114:/*EOF*/
        -:        -:18115:/*EOF*/
        -:        -:18116:/*EOF*/
        -:        -:18117:/*EOF*/
        -:        -:18118:/*EOF*/
        -:        -:18119:/*EOF*/
        -:        -:18120:/*EOF*/
        -:        -:18121:/*EOF*/
        -:        -:18122:/*EOF*/
        -:        -:18123:/*EOF*/
        -:        -:18124:/*EOF*/
        -:        -:18125:/*EOF*/
        -:        -:18126:/*EOF*/
        -:        -:18127:/*EOF*/
        -:        -:18128:/*EOF*/
        -:        -:18129:/*EOF*/
        -:        -:18130:/*EOF*/
        -:        -:18131:/*EOF*/
        -:        -:18132:/*EOF*/
        -:        -:18133:/*EOF*/
        -:        -:18134:/*EOF*/
      274:      402:18135:/*EOF*/
        -:        -:18136:/*EOF*/
        -:        -:18137:/*EOF*/
      274:      402:18138:/*EOF*/
        -:        -:18139:/*EOF*/
     1295:     1549:18140:/*EOF*/
     1021:     1147:18141:/*EOF*/
      480:      588:18142:/*EOF*/
        -:        -:18143:/*EOF*/
      541:      559:18144:/*EOF*/
      541:      559:18145:/*EOF*/
    #####:    #####:18146:/*EOF*/
        -:        -:18147:/*EOF*/
      541:      559:18148:/*EOF*/
        -:        -:18149:/*EOF*/
    #####:    #####:18150:/*EOF*/
    #####:    #####:18151:/*EOF*/
    #####:    #####:18152:/*EOF*/
    #####:    #####:18153:/*EOF*/
        -:        -:18154:/*EOF*/
    #####:    #####:18155:/*EOF*/
    #####:    #####:18156:/*EOF*/
        -:        -:18157:/*EOF*/
        -:        -:18158:/*EOF*/
    #####:    #####:18159:/*EOF*/
        -:        -:18160:/*EOF*/
    #####:    #####:18161:/*EOF*/
    #####:    #####:18162:/*EOF*/
    #####:    #####:18163:/*EOF*/
    #####:    #####:18164:/*EOF*/
        -:        -:18165:/*EOF*/
    #####:    #####:18166:/*EOF*/
    #####:    #####:18167:/*EOF*/
        -:        -:18168:/*EOF*/
        -:        -:18169:/*EOF*/
    #####:    #####:18170:/*EOF*/
        -:        -:18171:/*EOF*/
    #####:    #####:18172:/*EOF*/
    #####:    #####:18173:/*EOF*/
    #####:    #####:18174:/*EOF*/
    #####:    #####:18175:/*EOF*/
        -:        -:18176:/*EOF*/
    #####:    #####:18177:/*EOF*/
    #####:    #####:18178:/*EOF*/
        -:        -:18179:/*EOF*/
        -:        -:18180:/*EOF*/
    #####:    #####:18181:/*EOF*/
        -:        -:18182:/*EOF*/
    #####:    #####:18183:/*EOF*/
    #####:    #####:18184:/*EOF*/
    #####:    #####:18185:/*EOF*/
    #####:    #####:18186:/*EOF*/
        -:        -:18187:/*EOF*/
    #####:    #####:18188:/*EOF*/
    #####:    #####:18189:/*EOF*/
        -:        -:18190:/*EOF*/
        -:        -:18191:/*EOF*/
    #####:    #####:18192:/*EOF*/
        -:        -:18193:/*EOF*/
    #####:    #####:18194:/*EOF*/
    #####:    #####:18195:/*EOF*/
    #####:    #####:18196:/*EOF*/
    #####:    #####:18197:/*EOF*/
        -:        -:18198:/*EOF*/
    #####:    #####:18199:/*EOF*/
    #####:    #####:18200:/*EOF*/
        -:        -:18201:/*EOF*/
        -:        -:18202:/*EOF*/
    #####:    #####:18203:/*EOF*/
        -:        -:18204:/*EOF*/
    #####:    #####:18205:/*EOF*/
    #####:    #####:18206:/*EOF*/
    #####:    #####:18207:/*EOF*/
    #####:    #####:18208:/*EOF*/
        -:        -:18209:/*EOF*/
    #####:    #####:18210:/*EOF*/
    #####:    #####:18211:/*EOF*/
        -:        -:18212:/*EOF*/
        -:        -:18213:/*EOF*/
    #####:    #####:18214:/*EOF*/
        -:        -:18215:/*EOF*/
    #####:    #####:18216:/*EOF*/
    #####:    #####:18217:/*EOF*/
    #####:    #####:18218:/*EOF*/
    #####:    #####:18219:/*EOF*/
        -:        -:18220:/*EOF*/
    #####:    #####:18221:/*EOF*/
    #####:    #####:18222:/*EOF*/
        -:        -:18223:/*EOF*/
        -:        -:18224:/*EOF*/
    #####:    #####:18225:/*EOF*/
        -:        -:18226:/*EOF*/
    #####:    #####:18227:/*EOF*/
    #####:    #####:18228:/*EOF*/
    #####:    #####:18229:/*EOF*/
    #####:    #####:18230:/*EOF*/
        -:        -:18231:/*EOF*/
    #####:    #####:18232:/*EOF*/
    #####:    #####:18233:/*EOF*/
        -:        -:18234:/*EOF*/
        -:        -:18235:/*EOF*/
    #####:    #####:18236:/*EOF*/
        -:        -:18237:/*EOF*/
    #####:    #####:18238:/*EOF*/
    #####:    #####:18239:/*EOF*/
    #####:    #####:18240:/*EOF*/
    #####:    #####:18241:/*EOF*/
        -:        -:18242:/*EOF*/
    #####:    #####:18243:/*EOF*/
    #####:    #####:18244:/*EOF*/
        -:        -:18245:/*EOF*/
        -:        -:18246:/*EOF*/
    #####:    #####:18247:/*EOF*/
        -:        -:18248:/*EOF*/
      776:      776:18249:/*EOF*/
      679:      679:18250:/*EOF*/
     1358:     1358:18251:/*EOF*/
      679:      679:18252:/*EOF*/
        -:        -:18253:/*EOF*/
    #####:    #####:18254:/*EOF*/
    #####:    #####:18255:/*EOF*/
        -:        -:18256:/*EOF*/
        -:        -:18257:/*EOF*/
       97:       97:18258:/*EOF*/
        -:        -:18259:/*EOF*/
    #####:    #####:18260:/*EOF*/
    #####:    #####:18261:/*EOF*/
    #####:    #####:18262:/*EOF*/
    #####:    #####:18263:/*EOF*/
        -:        -:18264:/*EOF*/
    #####:    #####:18265:/*EOF*/
    #####:    #####:18266:/*EOF*/
        -:        -:18267:/*EOF*/
        -:        -:18268:/*EOF*/
    #####:    #####:18269:/*EOF*/
        -:        -:18270:/*EOF*/
    #####:    #####:18271:/*EOF*/
    #####:    #####:18272:/*EOF*/
    #####:    #####:18273:/*EOF*/
    #####:    #####:18274:/*EOF*/
        -:        -:18275:/*EOF*/
    #####:    #####:18276:/*EOF*/
    #####:    #####:18277:/*EOF*/
        -:        -:18278:/*EOF*/
        -:        -:18279:/*EOF*/
    #####:    #####:18280:/*EOF*/
        -:        -:18281:/*EOF*/
    #####:    #####:18282:/*EOF*/
    #####:    #####:18283:/*EOF*/
    #####:    #####:18284:/*EOF*/
    #####:    #####:18285:/*EOF*/
        -:        -:18286:/*EOF*/
    #####:    #####:18287:/*EOF*/
    #####:    #####:18288:/*EOF*/
        -:        -:18289:/*EOF*/
        -:        -:18290:/*EOF*/
    #####:    #####:18291:/*EOF*/
        -:        -:18292:/*EOF*/
    #####:    #####:18293:/*EOF*/
    #####:    #####:18294:/*EOF*/
    #####:    #####:18295:/*EOF*/
    #####:    #####:18296:/*EOF*/
        -:        -:18297:/*EOF*/
    #####:    #####:18298:/*EOF*/
    #####:    #####:18299:/*EOF*/
        -:        -:18300:/*EOF*/
        -:        -:18301:/*EOF*/
    #####:    #####:18302:/*EOF*/
        -:        -:18303:/*EOF*/
     1634:     1634:18304:/*EOF*/
     1563:     1563:18305:/*EOF*/
     3126:     3126:18306:/*EOF*/
     1563:     1563:18307:/*EOF*/
        -:        -:18308:/*EOF*/
       39:       39:18309:/*EOF*/
       39:       39:18310:/*EOF*/
        -:        -:18311:/*EOF*/
        -:        -:18312:/*EOF*/
      110:      110:18313:/*EOF*/
        -:        -:18314:/*EOF*/
    #####:    #####:18315:/*EOF*/
    #####:    #####:18316:/*EOF*/
    #####:    #####:18317:/*EOF*/
    #####:    #####:18318:/*EOF*/
        -:        -:18319:/*EOF*/
    #####:    #####:18320:/*EOF*/
    #####:    #####:18321:/*EOF*/
        -:        -:18322:/*EOF*/
        -:        -:18323:/*EOF*/
    #####:    #####:18324:/*EOF*/
        -:        -:18325:/*EOF*/
    #####:    #####:18326:/*EOF*/
    #####:    #####:18327:/*EOF*/
    #####:    #####:18328:/*EOF*/
    #####:    #####:18329:/*EOF*/
        -:        -:18330:/*EOF*/
    #####:    #####:18331:/*EOF*/
    #####:    #####:18332:/*EOF*/
        -:        -:18333:/*EOF*/
        -:        -:18334:/*EOF*/
    #####:    #####:18335:/*EOF*/
        -:        -:18336:/*EOF*/
      144:      144:18337:/*EOF*/
      127:      127:18338:/*EOF*/
      254:      254:18339:/*EOF*/
      127:      127:18340:/*EOF*/
        -:        -:18341:/*EOF*/
        2:        2:18342:/*EOF*/
        2:        2:18343:/*EOF*/
        -:        -:18344:/*EOF*/
        -:        -:18345:/*EOF*/
       19:       19:18346:/*EOF*/
        -:        -:18347:/*EOF*/
    #####:    #####:18348:/*EOF*/
    #####:    #####:18349:/*EOF*/
    #####:    #####:18350:/*EOF*/
    #####:    #####:18351:/*EOF*/
        -:        -:18352:/*EOF*/
    #####:    #####:18353:/*EOF*/
    #####:    #####:18354:/*EOF*/
        -:        -:18355:/*EOF*/
        -:        -:18356:/*EOF*/
    #####:    #####:18357:/*EOF*/
        -:        -:18358:/*EOF*/
    #####:    #####:18359:/*EOF*/
    #####:    #####:18360:/*EOF*/
    #####:    #####:18361:/*EOF*/
    #####:    #####:18362:/*EOF*/
        -:        -:18363:/*EOF*/
    #####:    #####:18364:/*EOF*/
    #####:    #####:18365:/*EOF*/
        -:        -:18366:/*EOF*/
        -:        -:18367:/*EOF*/
    #####:    #####:18368:/*EOF*/
        -:        -:18369:/*EOF*/
    #####:    #####:18370:/*EOF*/
    #####:    #####:18371:/*EOF*/
    #####:    #####:18372:/*EOF*/
    #####:    #####:18373:/*EOF*/
        -:        -:18374:/*EOF*/
    #####:    #####:18375:/*EOF*/
    #####:    #####:18376:/*EOF*/
        -:        -:18377:/*EOF*/
        -:        -:18378:/*EOF*/
    #####:    #####:18379:/*EOF*/
        -:        -:18380:/*EOF*/
    #####:    #####:18381:/*EOF*/
    #####:    #####:18382:/*EOF*/
    #####:    #####:18383:/*EOF*/
    #####:    #####:18384:/*EOF*/
        -:        -:18385:/*EOF*/
    #####:    #####:18386:/*EOF*/
    #####:    #####:18387:/*EOF*/
        -:        -:18388:/*EOF*/
        -:        -:18389:/*EOF*/
    #####:    #####:18390:/*EOF*/
        -:        -:18391:/*EOF*/
    #####:    #####:18392:/*EOF*/
    #####:    #####:18393:/*EOF*/
    #####:    #####:18394:/*EOF*/
    #####:    #####:18395:/*EOF*/
        -:        -:18396:/*EOF*/
    #####:    #####:18397:/*EOF*/
    #####:    #####:18398:/*EOF*/
        -:        -:18399:/*EOF*/
        -:        -:18400:/*EOF*/
    #####:    #####:18401:/*EOF*/
        -:        -:18402:/*EOF*/
    #####:    #####:18403:/*EOF*/
    #####:    #####:18404:/*EOF*/
    #####:    #####:18405:/*EOF*/
    #####:    #####:18406:/*EOF*/
        -:        -:18407:/*EOF*/
    #####:    #####:18408:/*EOF*/
    #####:    #####:18409:/*EOF*/
        -:        -:18410:/*EOF*/
        -:        -:18411:/*EOF*/
    #####:    #####:18412:/*EOF*/
        -:        -:18413:/*EOF*/
       91:       91:18414:/*EOF*/
       76:       76:18415:/*EOF*/
      152:      152:18416:/*EOF*/
       76:       76:18417:/*EOF*/
        -:        -:18418:/*EOF*/
        1:        1:18419:/*EOF*/
        1:        1:18420:/*EOF*/
        -:        -:18421:/*EOF*/
        -:        -:18422:/*EOF*/
       16:       16:18423:/*EOF*/
        -:        -:18424:/*EOF*/
    #####:    #####:18425:/*EOF*/
    #####:    #####:18426:/*EOF*/
    #####:    #####:18427:/*EOF*/
    #####:    #####:18428:/*EOF*/
        -:        -:18429:/*EOF*/
    #####:    #####:18430:/*EOF*/
    #####:    #####:18431:/*EOF*/
        -:        -:18432:/*EOF*/
        -:        -:18433:/*EOF*/
    #####:    #####:18434:/*EOF*/
        -:        -:18435:/*EOF*/
    #####:    #####:18436:/*EOF*/
    #####:    #####:18437:/*EOF*/
    #####:    #####:18438:/*EOF*/
    #####:    #####:18439:/*EOF*/
        -:        -:18440:/*EOF*/
    #####:    #####:18441:/*EOF*/
    #####:    #####:18442:/*EOF*/
        -:        -:18443:/*EOF*/
        -:        -:18444:/*EOF*/
    #####:    #####:18445:/*EOF*/
        -:        -:18446:/*EOF*/
    #####:    #####:18447:/*EOF*/
    #####:    #####:18448:/*EOF*/
    #####:    #####:18449:/*EOF*/
    #####:    #####:18450:/*EOF*/
        -:        -:18451:/*EOF*/
    #####:    #####:18452:/*EOF*/
    #####:    #####:18453:/*EOF*/
        -:        -:18454:/*EOF*/
        -:        -:18455:/*EOF*/
    #####:    #####:18456:/*EOF*/
        -:        -:18457:/*EOF*/
    #####:    #####:18458:/*EOF*/
    #####:    #####:18459:/*EOF*/
    #####:    #####:18460:/*EOF*/
    #####:    #####:18461:/*EOF*/
        -:        -:18462:/*EOF*/
    #####:    #####:18463:/*EOF*/
    #####:    #####:18464:/*EOF*/
        -:        -:18465:/*EOF*/
        -:        -:18466:/*EOF*/
    #####:    #####:18467:/*EOF*/
        -:        -:18468:/*EOF*/
    #####:    #####:18469:/*EOF*/
    #####:    #####:18470:/*EOF*/
    #####:    #####:18471:/*EOF*/
    #####:    #####:18472:/*EOF*/
        -:        -:18473:/*EOF*/
    #####:    #####:18474:/*EOF*/
    #####:    #####:18475:/*EOF*/
        -:        -:18476:/*EOF*/
        -:        -:18477:/*EOF*/
    #####:    #####:18478:/*EOF*/
        -:        -:18479:/*EOF*/
    #####:    #####:18480:/*EOF*/
    #####:    #####:18481:/*EOF*/
    #####:    #####:18482:/*EOF*/
    #####:    #####:18483:/*EOF*/
        -:        -:18484:/*EOF*/
    #####:    #####:18485:/*EOF*/
    #####:    #####:18486:/*EOF*/
        -:        -:18487:/*EOF*/
        -:        -:18488:/*EOF*/
    #####:    #####:18489:/*EOF*/
        -:        -:18490:/*EOF*/
    #####:    #####:18491:/*EOF*/
    #####:    #####:18492:/*EOF*/
    #####:    #####:18493:/*EOF*/
    #####:    #####:18494:/*EOF*/
        -:        -:18495:/*EOF*/
    #####:    #####:18496:/*EOF*/
    #####:    #####:18497:/*EOF*/
        -:        -:18498:/*EOF*/
        -:        -:18499:/*EOF*/
    #####:    #####:18500:/*EOF*/
        -:        -:18501:/*EOF*/
    #####:    #####:18502:/*EOF*/
    #####:    #####:18503:/*EOF*/
    #####:    #####:18504:/*EOF*/
    #####:    #####:18505:/*EOF*/
        -:        -:18506:/*EOF*/
    #####:    #####:18507:/*EOF*/
    #####:    #####:18508:/*EOF*/
        -:        -:18509:/*EOF*/
        -:        -:18510:/*EOF*/
    #####:    #####:18511:/*EOF*/
        -:        -:18512:/*EOF*/
       68:       68:18513:/*EOF*/
       51:       51:18514:/*EOF*/
      102:      102:18515:/*EOF*/
       51:       51:18516:/*EOF*/
        -:        -:18517:/*EOF*/
    #####:    #####:18518:/*EOF*/
    #####:    #####:18519:/*EOF*/
        -:        -:18520:/*EOF*/
        -:        -:18521:/*EOF*/
       17:       17:18522:/*EOF*/
        -:        -:18523:/*EOF*/
       10:       10:18524:/*EOF*/
       10:       10:18525:/*EOF*/
       20:       20:18526:/*EOF*/
       10:       10:18527:/*EOF*/
        -:        -:18528:/*EOF*/
        5:        5:18529:/*EOF*/
        5:        5:18530:/*EOF*/
        -:        -:18531:/*EOF*/
        -:        -:18532:/*EOF*/
        5:        5:18533:/*EOF*/
        -:        -:18534:/*EOF*/
    #####:    #####:18535:/*EOF*/
    #####:    #####:18536:/*EOF*/
    #####:    #####:18537:/*EOF*/
    #####:    #####:18538:/*EOF*/
        -:        -:18539:/*EOF*/
    #####:    #####:18540:/*EOF*/
    #####:    #####:18541:/*EOF*/
        -:        -:18542:/*EOF*/
        -:        -:18543:/*EOF*/
    #####:    #####:18544:/*EOF*/
        -:        -:18545:/*EOF*/
      900:      930:18546:/*EOF*/
      840:      868:18547:/*EOF*/
     1380:     1426:18548:/*EOF*/
      540:      558:18549:/*EOF*/
        -:        -:18550:/*EOF*/
    #####:    #####:18551:/*EOF*/
    #####:    #####:18552:/*EOF*/
        -:        -:18553:/*EOF*/
        -:        -:18554:/*EOF*/
       60:       62:18555:/*EOF*/
        -:        -:18556:/*EOF*/
    #####:    #####:18557:/*EOF*/
    #####:    #####:18558:/*EOF*/
    #####:    #####:18559:/*EOF*/
    #####:    #####:18560:/*EOF*/
        -:        -:18561:/*EOF*/
    #####:    #####:18562:/*EOF*/
    #####:    #####:18563:/*EOF*/
        -:        -:18564:/*EOF*/
        -:        -:18565:/*EOF*/
    #####:    #####:18566:/*EOF*/
        -:        -:18567:/*EOF*/
    #####:    #####:18568:/*EOF*/
    #####:    #####:18569:/*EOF*/
    #####:    #####:18570:/*EOF*/
    #####:    #####:18571:/*EOF*/
        -:        -:18572:/*EOF*/
    #####:    #####:18573:/*EOF*/
    #####:    #####:18574:/*EOF*/
        -:        -:18575:/*EOF*/
        -:        -:18576:/*EOF*/
    #####:    #####:18577:/*EOF*/
        -:        -:18578:/*EOF*/
    #####:    #####:18579:/*EOF*/
    #####:    #####:18580:/*EOF*/
    #####:    #####:18581:/*EOF*/
    #####:    #####:18582:/*EOF*/
        -:        -:18583:/*EOF*/
    #####:    #####:18584:/*EOF*/
    #####:    #####:18585:/*EOF*/
        -:        -:18586:/*EOF*/
        -:        -:18587:/*EOF*/
    #####:    #####:18588:/*EOF*/
        -:        -:18589:/*EOF*/
    #####:    #####:18590:/*EOF*/
    #####:    #####:18591:/*EOF*/
    #####:    #####:18592:/*EOF*/
    #####:    #####:18593:/*EOF*/
        -:        -:18594:/*EOF*/
    #####:    #####:18595:/*EOF*/
    #####:    #####:18596:/*EOF*/
        -:        -:18597:/*EOF*/
        -:        -:18598:/*EOF*/
    #####:    #####:18599:/*EOF*/
        -:        -:18600:/*EOF*/
    #####:    #####:18601:/*EOF*/
    #####:    #####:18602:/*EOF*/
    #####:    #####:18603:/*EOF*/
    #####:    #####:18604:/*EOF*/
        -:        -:18605:/*EOF*/
    #####:    #####:18606:/*EOF*/
    #####:    #####:18607:/*EOF*/
        -:        -:18608:/*EOF*/
        -:        -:18609:/*EOF*/
    #####:    #####:18610:/*EOF*/
        -:        -:18611:/*EOF*/
        5:        5:18612:/*EOF*/
        5:        5:18613:/*EOF*/
       10:       10:18614:/*EOF*/
        5:        5:18615:/*EOF*/
        -:        -:18616:/*EOF*/
        5:        5:18617:/*EOF*/
        5:        5:18618:/*EOF*/
        -:        -:18619:/*EOF*/
        -:        -:18620:/*EOF*/
        5:        5:18621:/*EOF*/
        -:        -:18622:/*EOF*/
    #####:    #####:18623:/*EOF*/
    #####:    #####:18624:/*EOF*/
    #####:    #####:18625:/*EOF*/
    #####:    #####:18626:/*EOF*/
        -:        -:18627:/*EOF*/
    #####:    #####:18628:/*EOF*/
    #####:    #####:18629:/*EOF*/
        -:        -:18630:/*EOF*/
        -:        -:18631:/*EOF*/
    #####:    #####:18632:/*EOF*/
        -:        -:18633:/*EOF*/
    #####:    #####:18634:/*EOF*/
    #####:    #####:18635:/*EOF*/
    #####:    #####:18636:/*EOF*/
    #####:    #####:18637:/*EOF*/
        -:        -:18638:/*EOF*/
    #####:    #####:18639:/*EOF*/
    #####:    #####:18640:/*EOF*/
        -:        -:18641:/*EOF*/
        -:        -:18642:/*EOF*/
    #####:    #####:18643:/*EOF*/
        -:        -:18644:/*EOF*/
    #####:    #####:18645:/*EOF*/
    #####:    #####:18646:/*EOF*/
    #####:    #####:18647:/*EOF*/
    #####:    #####:18648:/*EOF*/
        -:        -:18649:/*EOF*/
    #####:    #####:18650:/*EOF*/
    #####:    #####:18651:/*EOF*/
        -:        -:18652:/*EOF*/
        -:        -:18653:/*EOF*/
    #####:    #####:18654:/*EOF*/
        -:        -:18655:/*EOF*/
    #####:    #####:18656:/*EOF*/
    #####:    #####:18657:/*EOF*/
    #####:    #####:18658:/*EOF*/
    #####:    #####:18659:/*EOF*/
        -:        -:18660:/*EOF*/
    #####:    #####:18661:/*EOF*/
    #####:    #####:18662:/*EOF*/
        -:        -:18663:/*EOF*/
        -:        -:18664:/*EOF*/
    #####:    #####:18665:/*EOF*/
        -:        -:18666:/*EOF*/
    #####:    #####:18667:/*EOF*/
    #####:    #####:18668:/*EOF*/
    #####:    #####:18669:/*EOF*/
    #####:    #####:18670:/*EOF*/
        -:        -:18671:/*EOF*/
    #####:    #####:18672:/*EOF*/
    #####:    #####:18673:/*EOF*/
        -:        -:18674:/*EOF*/
        -:        -:18675:/*EOF*/
    #####:    #####:18676:/*EOF*/
        -:        -:18677:/*EOF*/
    #####:    #####:18678:/*EOF*/
    #####:    #####:18679:/*EOF*/
    #####:    #####:18680:/*EOF*/
    #####:    #####:18681:/*EOF*/
        -:        -:18682:/*EOF*/
    #####:    #####:18683:/*EOF*/
    #####:    #####:18684:/*EOF*/
        -:        -:18685:/*EOF*/
        -:        -:18686:/*EOF*/
    #####:    #####:18687:/*EOF*/
        -:        -:18688:/*EOF*/
    #####:    #####:18689:/*EOF*/
    #####:    #####:18690:/*EOF*/
    #####:    #####:18691:/*EOF*/
    #####:    #####:18692:/*EOF*/
        -:        -:18693:/*EOF*/
    #####:    #####:18694:/*EOF*/
    #####:    #####:18695:/*EOF*/
        -:        -:18696:/*EOF*/
        -:        -:18697:/*EOF*/
    #####:    #####:18698:/*EOF*/
        -:        -:18699:/*EOF*/
    #####:    #####:18700:/*EOF*/
    #####:    #####:18701:/*EOF*/
    #####:    #####:18702:/*EOF*/
    #####:    #####:18703:/*EOF*/
        -:        -:18704:/*EOF*/
    #####:    #####:18705:/*EOF*/
    #####:    #####:18706:/*EOF*/
        -:        -:18707:/*EOF*/
        -:        -:18708:/*EOF*/
    #####:    #####:18709:/*EOF*/
        -:        -:18710:/*EOF*/
    #####:    #####:18711:/*EOF*/
    #####:    #####:18712:/*EOF*/
    #####:    #####:18713:/*EOF*/
    #####:    #####:18714:/*EOF*/
        -:        -:18715:/*EOF*/
    #####:    #####:18716:/*EOF*/
    #####:    #####:18717:/*EOF*/
        -:        -:18718:/*EOF*/
        -:        -:18719:/*EOF*/
    #####:    #####:18720:/*EOF*/
        -:        -:18721:/*EOF*/
    #####:    #####:18722:/*EOF*/
    #####:    #####:18723:/*EOF*/
    #####:    #####:18724:/*EOF*/
    #####:    #####:18725:/*EOF*/
        -:        -:18726:/*EOF*/
    #####:    #####:18727:/*EOF*/
    #####:    #####:18728:/*EOF*/
        -:        -:18729:/*EOF*/
        -:        -:18730:/*EOF*/
    #####:    #####:18731:/*EOF*/
        -:        -:18732:/*EOF*/
    #####:    #####:18733:/*EOF*/
    #####:    #####:18734:/*EOF*/
    #####:    #####:18735:/*EOF*/
    #####:    #####:18736:/*EOF*/
        -:        -:18737:/*EOF*/
    #####:    #####:18738:/*EOF*/
    #####:    #####:18739:/*EOF*/
        -:        -:18740:/*EOF*/
        -:        -:18741:/*EOF*/
    #####:    #####:18742:/*EOF*/
        -:        -:18743:/*EOF*/
    #####:    #####:18744:/*EOF*/
    #####:    #####:18745:/*EOF*/
    #####:    #####:18746:/*EOF*/
    #####:    #####:18747:/*EOF*/
        -:        -:18748:/*EOF*/
    #####:    #####:18749:/*EOF*/
    #####:    #####:18750:/*EOF*/
        -:        -:18751:/*EOF*/
        -:        -:18752:/*EOF*/
    #####:    #####:18753:/*EOF*/
        -:        -:18754:/*EOF*/
    #####:    #####:18755:/*EOF*/
    #####:    #####:18756:/*EOF*/
    #####:    #####:18757:/*EOF*/
    #####:    #####:18758:/*EOF*/
        -:        -:18759:/*EOF*/
    #####:    #####:18760:/*EOF*/
    #####:    #####:18761:/*EOF*/
        -:        -:18762:/*EOF*/
        -:        -:18763:/*EOF*/
    #####:    #####:18764:/*EOF*/
        -:        -:18765:/*EOF*/
    #####:    #####:18766:/*EOF*/
    #####:    #####:18767:/*EOF*/
    #####:    #####:18768:/*EOF*/
    #####:    #####:18769:/*EOF*/
        -:        -:18770:/*EOF*/
    #####:    #####:18771:/*EOF*/
    #####:    #####:18772:/*EOF*/
        -:        -:18773:/*EOF*/
        -:        -:18774:/*EOF*/
    #####:    #####:18775:/*EOF*/
        -:        -:18776:/*EOF*/
    #####:    #####:18777:/*EOF*/
    #####:    #####:18778:/*EOF*/
    #####:    #####:18779:/*EOF*/
    #####:    #####:18780:/*EOF*/
        -:        -:18781:/*EOF*/
    #####:    #####:18782:/*EOF*/
    #####:    #####:18783:/*EOF*/
        -:        -:18784:/*EOF*/
        -:        -:18785:/*EOF*/
    #####:    #####:18786:/*EOF*/
        -:        -:18787:/*EOF*/
    #####:    #####:18788:/*EOF*/
    #####:    #####:18789:/*EOF*/
    #####:    #####:18790:/*EOF*/
    #####:    #####:18791:/*EOF*/
        -:        -:18792:/*EOF*/
    #####:    #####:18793:/*EOF*/
    #####:    #####:18794:/*EOF*/
        -:        -:18795:/*EOF*/
        -:        -:18796:/*EOF*/
    #####:    #####:18797:/*EOF*/
        -:        -:18798:/*EOF*/
    #####:    #####:18799:/*EOF*/
    #####:    #####:18800:/*EOF*/
    #####:    #####:18801:/*EOF*/
    #####:    #####:18802:/*EOF*/
        -:        -:18803:/*EOF*/
    #####:    #####:18804:/*EOF*/
    #####:    #####:18805:/*EOF*/
        -:        -:18806:/*EOF*/
        -:        -:18807:/*EOF*/
    #####:    #####:18808:/*EOF*/
        -:        -:18809:/*EOF*/
    #####:    #####:18810:/*EOF*/
    #####:    #####:18811:/*EOF*/
    #####:    #####:18812:/*EOF*/
    #####:    #####:18813:/*EOF*/
        -:        -:18814:/*EOF*/
    #####:    #####:18815:/*EOF*/
    #####:    #####:18816:/*EOF*/
        -:        -:18817:/*EOF*/
        -:        -:18818:/*EOF*/
    #####:    #####:18819:/*EOF*/
        -:        -:18820:/*EOF*/
      324:      420:18821:/*EOF*/
      270:      350:18822:/*EOF*/
      540:      700:18823:/*EOF*/
      270:      350:18824:/*EOF*/
        -:        -:18825:/*EOF*/
    #####:    #####:18826:/*EOF*/
    #####:    #####:18827:/*EOF*/
        -:        -:18828:/*EOF*/
        -:        -:18829:/*EOF*/
       54:       70:18830:/*EOF*/
        -:        -:18831:/*EOF*/
      130:      130:18832:/*EOF*/
      104:      104:18833:/*EOF*/
      208:      208:18834:/*EOF*/
      104:      104:18835:/*EOF*/
        -:        -:18836:/*EOF*/
    #####:    #####:18837:/*EOF*/
    #####:    #####:18838:/*EOF*/
        -:        -:18839:/*EOF*/
        -:        -:18840:/*EOF*/
       26:       26:18841:/*EOF*/
        -:        -:18842:/*EOF*/
    #####:    #####:18843:/*EOF*/
    #####:    #####:18844:/*EOF*/
    #####:    #####:18845:/*EOF*/
    #####:    #####:18846:/*EOF*/
        -:        -:18847:/*EOF*/
    #####:    #####:18848:/*EOF*/
    #####:    #####:18849:/*EOF*/
        -:        -:18850:/*EOF*/
        -:        -:18851:/*EOF*/
    #####:    #####:18852:/*EOF*/
        -:        -:18853:/*EOF*/
    #####:    #####:18854:/*EOF*/
    #####:    #####:18855:/*EOF*/
    #####:    #####:18856:/*EOF*/
    #####:    #####:18857:/*EOF*/
        -:        -:18858:/*EOF*/
    #####:    #####:18859:/*EOF*/
    #####:    #####:18860:/*EOF*/
        -:        -:18861:/*EOF*/
        -:        -:18862:/*EOF*/
    #####:    #####:18863:/*EOF*/
        -:        -:18864:/*EOF*/
    #####:    #####:18865:/*EOF*/
    #####:    #####:18866:/*EOF*/
    #####:    #####:18867:/*EOF*/
    #####:    #####:18868:/*EOF*/
        -:        -:18869:/*EOF*/
    #####:    #####:18870:/*EOF*/
    #####:    #####:18871:/*EOF*/
        -:        -:18872:/*EOF*/
        -:        -:18873:/*EOF*/
    #####:    #####:18874:/*EOF*/
        -:        -:18875:/*EOF*/
    #####:    #####:18876:/*EOF*/
    #####:    #####:18877:/*EOF*/
    #####:    #####:18878:/*EOF*/
    #####:    #####:18879:/*EOF*/
        -:        -:18880:/*EOF*/
    #####:    #####:18881:/*EOF*/
    #####:    #####:18882:/*EOF*/
        -:        -:18883:/*EOF*/
        -:        -:18884:/*EOF*/
    #####:    #####:18885:/*EOF*/
        -:        -:18886:/*EOF*/
    #####:    #####:18887:/*EOF*/
    #####:    #####:18888:/*EOF*/
    #####:    #####:18889:/*EOF*/
    #####:    #####:18890:/*EOF*/
        -:        -:18891:/*EOF*/
    #####:    #####:18892:/*EOF*/
    #####:    #####:18893:/*EOF*/
        -:        -:18894:/*EOF*/
        -:        -:18895:/*EOF*/
    #####:    #####:18896:/*EOF*/
        -:        -:18897:/*EOF*/
    #####:    #####:18898:/*EOF*/
    #####:    #####:18899:/*EOF*/
    #####:    #####:18900:/*EOF*/
    #####:    #####:18901:/*EOF*/
        -:        -:18902:/*EOF*/
    #####:    #####:18903:/*EOF*/
    #####:    #####:18904:/*EOF*/
        -:        -:18905:/*EOF*/
        -:        -:18906:/*EOF*/
    #####:    #####:18907:/*EOF*/
        -:        -:18908:/*EOF*/
    #####:    #####:18909:/*EOF*/
    #####:    #####:18910:/*EOF*/
    #####:    #####:18911:/*EOF*/
    #####:    #####:18912:/*EOF*/
        -:        -:18913:/*EOF*/
    #####:    #####:18914:/*EOF*/
    #####:    #####:18915:/*EOF*/
        -:        -:18916:/*EOF*/
        -:        -:18917:/*EOF*/
    #####:    #####:18918:/*EOF*/
        -:        -:18919:/*EOF*/
    #####:    #####:18920:/*EOF*/
    #####:    #####:18921:/*EOF*/
    #####:    #####:18922:/*EOF*/
    #####:    #####:18923:/*EOF*/
        -:        -:18924:/*EOF*/
    #####:    #####:18925:/*EOF*/
    #####:    #####:18926:/*EOF*/
        -:        -:18927:/*EOF*/
        -:        -:18928:/*EOF*/
    #####:    #####:18929:/*EOF*/
        -:        -:18930:/*EOF*/
    #####:    #####:18931:/*EOF*/
    #####:    #####:18932:/*EOF*/
    #####:    #####:18933:/*EOF*/
    #####:    #####:18934:/*EOF*/
        -:        -:18935:/*EOF*/
    #####:    #####:18936:/*EOF*/
    #####:    #####:18937:/*EOF*/
        -:        -:18938:/*EOF*/
        -:        -:18939:/*EOF*/
    #####:    #####:18940:/*EOF*/
        -:        -:18941:/*EOF*/
       90:       90:18942:/*EOF*/
       60:       60:18943:/*EOF*/
       90:       90:18944:/*EOF*/
       30:       30:18945:/*EOF*/
        -:        -:18946:/*EOF*/
    #####:    #####:18947:/*EOF*/
    #####:    #####:18948:/*EOF*/
        -:        -:18949:/*EOF*/
        -:        -:18950:/*EOF*/
       30:       30:18951:/*EOF*/
        -:        -:18952:/*EOF*/
       10:       10:18953:/*EOF*/
       10:       10:18954:/*EOF*/
       20:       20:18955:/*EOF*/
       10:       10:18956:/*EOF*/
        -:        -:18957:/*EOF*/
        5:        5:18958:/*EOF*/
        5:        5:18959:/*EOF*/
        -:        -:18960:/*EOF*/
        -:        -:18961:/*EOF*/
        5:        5:18962:/*EOF*/
        -:        -:18963:/*EOF*/
    #####:    #####:18964:/*EOF*/
    #####:    #####:18965:/*EOF*/
    #####:    #####:18966:/*EOF*/
    #####:    #####:18967:/*EOF*/
        -:        -:18968:/*EOF*/
    #####:    #####:18969:/*EOF*/
    #####:    #####:18970:/*EOF*/
        -:        -:18971:/*EOF*/
        -:        -:18972:/*EOF*/
    #####:    #####:18973:/*EOF*/
        -:        -:18974:/*EOF*/
    #####:    #####:18975:/*EOF*/
    #####:    #####:18976:/*EOF*/
    #####:    #####:18977:/*EOF*/
    #####:    #####:18978:/*EOF*/
        -:        -:18979:/*EOF*/
    #####:    #####:18980:/*EOF*/
    #####:    #####:18981:/*EOF*/
        -:        -:18982:/*EOF*/
        -:        -:18983:/*EOF*/
    #####:    #####:18984:/*EOF*/
        -:        -:18985:/*EOF*/
    #####:    #####:18986:/*EOF*/
    #####:    #####:18987:/*EOF*/
    #####:    #####:18988:/*EOF*/
    #####:    #####:18989:/*EOF*/
        -:        -:18990:/*EOF*/
    #####:    #####:18991:/*EOF*/
    #####:    #####:18992:/*EOF*/
        -:        -:18993:/*EOF*/
        -:        -:18994:/*EOF*/
    #####:    #####:18995:/*EOF*/
        -:        -:18996:/*EOF*/
    #####:    #####:18997:/*EOF*/
    #####:    #####:18998:/*EOF*/
    #####:    #####:18999:/*EOF*/
    #####:    #####:19000:/*EOF*/
        -:        -:19001:/*EOF*/
    #####:    #####:19002:/*EOF*/
    #####:    #####:19003:/*EOF*/
        -:        -:19004:/*EOF*/
        -:        -:19005:/*EOF*/
    #####:    #####:19006:/*EOF*/
        -:        -:19007:/*EOF*/
    #####:    #####:19008:/*EOF*/
    #####:    #####:19009:/*EOF*/
    #####:    #####:19010:/*EOF*/
    #####:    #####:19011:/*EOF*/
        -:        -:19012:/*EOF*/
    #####:    #####:19013:/*EOF*/
    #####:    #####:19014:/*EOF*/
        -:        -:19015:/*EOF*/
        -:        -:19016:/*EOF*/
    #####:    #####:19017:/*EOF*/
        -:        -:19018:/*EOF*/
    #####:    #####:19019:/*EOF*/
    #####:    #####:19020:/*EOF*/
    #####:    #####:19021:/*EOF*/
    #####:    #####:19022:/*EOF*/
        -:        -:19023:/*EOF*/
    #####:    #####:19024:/*EOF*/
    #####:    #####:19025:/*EOF*/
        -:        -:19026:/*EOF*/
        -:        -:19027:/*EOF*/
    #####:    #####:19028:/*EOF*/
        -:        -:19029:/*EOF*/
    #####:    #####:19030:/*EOF*/
    #####:    #####:19031:/*EOF*/
    #####:    #####:19032:/*EOF*/
    #####:    #####:19033:/*EOF*/
        -:        -:19034:/*EOF*/
    #####:    #####:19035:/*EOF*/
    #####:    #####:19036:/*EOF*/
        -:        -:19037:/*EOF*/
        -:        -:19038:/*EOF*/
    #####:    #####:19039:/*EOF*/
        -:        -:19040:/*EOF*/
    #####:    #####:19041:/*EOF*/
    #####:    #####:19042:/*EOF*/
    #####:    #####:19043:/*EOF*/
    #####:    #####:19044:/*EOF*/
        -:        -:19045:/*EOF*/
    #####:    #####:19046:/*EOF*/
    #####:    #####:19047:/*EOF*/
        -:        -:19048:/*EOF*/
        -:        -:19049:/*EOF*/
    #####:    #####:19050:/*EOF*/
        -:        -:19051:/*EOF*/
    #####:    #####:19052:/*EOF*/
    #####:    #####:19053:/*EOF*/
    #####:    #####:19054:/*EOF*/
    #####:    #####:19055:/*EOF*/
        -:        -:19056:/*EOF*/
    #####:    #####:19057:/*EOF*/
    #####:    #####:19058:/*EOF*/
        -:        -:19059:/*EOF*/
        -:        -:19060:/*EOF*/
    #####:    #####:19061:/*EOF*/
        -:        -:19062:/*EOF*/
    #####:    #####:19063:/*EOF*/
    #####:    #####:19064:/*EOF*/
    #####:    #####:19065:/*EOF*/
    #####:    #####:19066:/*EOF*/
        -:        -:19067:/*EOF*/
    #####:    #####:19068:/*EOF*/
    #####:    #####:19069:/*EOF*/
        -:        -:19070:/*EOF*/
        -:        -:19071:/*EOF*/
    #####:    #####:19072:/*EOF*/
        -:        -:19073:/*EOF*/
    #####:    #####:19074:/*EOF*/
    #####:    #####:19075:/*EOF*/
    #####:    #####:19076:/*EOF*/
    #####:    #####:19077:/*EOF*/
        -:        -:19078:/*EOF*/
    #####:    #####:19079:/*EOF*/
    #####:    #####:19080:/*EOF*/
        -:        -:19081:/*EOF*/
        -:        -:19082:/*EOF*/
    #####:    #####:19083:/*EOF*/
        -:        -:19084:/*EOF*/
       97:       97:19085:/*EOF*/
        -:        -:19086:/*EOF*/
        -:        -:19087:/*EOF*/
        -:        -:19088:/*EOF*/
      274:      402:19089:/*EOF*/
        -:        -:19090:/*EOF*/
        -:        -:19091:/*EOF*/
        -:        -:19092:/*EOF*/
       27:       27:19093:/*EOF*/
        -:        -:19094:/*EOF*/
       27:       27:19095:/*EOF*/
       27:       27:19096:/*EOF*/
        -:        -:19097:/*EOF*/
      301:      429:19098:/*EOF*/
      274:      402:19099:/*EOF*/
        -:        -:19100:/*EOF*/
        -:        -:19101:/*EOF*/
       27:       27:19102:/*EOF*/
        3:        3:19103:/*EOF*/
        -:        -:19104:/*EOF*/
        -:        -:19105:/*EOF*/
       27:       27:19106:/*EOF*/
        -:        -:19107:/*EOF*/
        -:        -:19108:/*EOF*/
        -:        -:19109:/*EOF*/
        -:        -:19110:/*EOF*/
       27:       27:19111:/*EOF*/
        -:        -:19112:/*EOF*/
       27:       27:19113:/*EOF*/
        -:        -:19114:/*EOF*/
       27:       27:19115:/*EOF*/
        -:        -:19116:/*EOF*/
        -:        -:19117:/*EOF*/
       27:       27:19118:/*EOF*/
       27:       27:19119:/*EOF*/
       27:       27:19120:/*EOF*/
       27:       27:19121:/*EOF*/
       27:       27:19122:/*EOF*/
       27:       27:19123:/*EOF*/
       27:       27:19124:/*EOF*/
       27:       27:19125:/*EOF*/
       27:       27:19126:/*EOF*/
       27:       27:19127:/*EOF*/
       27:       27:19128:/*EOF*/
       27:       27:19129:/*EOF*/
       27:       27:19130:/*EOF*/
       27:       27:19131:/*EOF*/
       27:       27:19132:/*EOF*/
       27:       27:19133:/*EOF*/
       27:       27:19134:/*EOF*/
       27:       27:19135:/*EOF*/
       27:       27:19136:/*EOF*/
       27:       27:19137:/*EOF*/
       27:       27:19138:/*EOF*/
       27:       27:19139:/*EOF*/
       27:       27:19140:/*EOF*/
       27:       27:19141:/*EOF*/
       27:       27:19142:/*EOF*/
       27:       27:19143:/*EOF*/
       27:       27:19144:/*EOF*/
       27:       27:19145:/*EOF*/
       27:       27:19146:/*EOF*/
       27:       27:19147:/*EOF*/
       27:       27:19148:/*EOF*/
       27:       27:19149:/*EOF*/
       27:       27:19150:/*EOF*/
       27:       27:19151:/*EOF*/
       27:       27:19152:/*EOF*/
       27:       27:19153:/*EOF*/
       27:       27:19154:/*EOF*/
        -:        -:19155:/*EOF*/
       54:       54:19156:/*EOF*/
       27:       27:19157:/*EOF*/
       27:       27:19158:/*EOF*/
        -:        -:19159:/*EOF*/
        -:        -:19160:/*EOF*/
       27:       27:19161:/*EOF*/
        -:        -:19162:/*EOF*/
        -:        -:19163:/*EOF*/
        -:        -:19164:/*EOF*/
        -:        -:19165:/*EOF*/
        -:        -:19166:/*EOF*/
        -:        -:19167:/*EOF*/
        -:        -:19168:/*EOF*/
        -:        -:19169:/*EOF*/
        -:        -:19170:/*EOF*/
        -:        -:19171:/*EOF*/
        -:        -:19172:/*EOF*/
        -:        -:19173:/*EOF*/
        -:        -:19174:/*EOF*/
        -:        -:19175:/*EOF*/
        -:        -:19176:/*EOF*/
        -:        -:19177:/*EOF*/
        -:        -:19178:/*EOF*/
        -:        -:19179:/*EOF*/
        -:        -:19180:/*EOF*/
        -:        -:19181:/*EOF*/
        -:        -:19182:/*EOF*/
        -:        -:19183:/*EOF*/
        -:        -:19184:/*EOF*/
        -:        -:19185:/*EOF*/
        -:        -:19186:/*EOF*/
        -:        -:19187:/*EOF*/
        -:        -:19188:/*EOF*/
        -:        -:19189:/*EOF*/
        -:        -:19190:/*EOF*/
        -:        -:19191:/*EOF*/
        -:        -:19192:/*EOF*/
        -:        -:19193:/*EOF*/
        -:        -:19194:/*EOF*/
        -:        -:19195:/*EOF*/
        -:        -:19196:/*EOF*/
        -:        -:19197:/*EOF*/
        -:        -:19198:/*EOF*/
        -:        -:19199:/*EOF*/
        -:        -:19200:/*EOF*/
        -:        -:19201:/*EOF*/
        -:        -:19202:/*EOF*/
        -:        -:19203:/*EOF*/
        -:        -:19204:/*EOF*/
        -:        -:19205:/*EOF*/
        -:        -:19206:/*EOF*/
        -:        -:19207:/*EOF*/
        -:        -:19208:/*EOF*/
        -:        -:19209:/*EOF*/
        -:        -:19210:/*EOF*/
        -:        -:19211:/*EOF*/
        -:        -:19212:/*EOF*/
        -:        -:19213:/*EOF*/
        -:        -:19214:/*EOF*/
        -:        -:19215:/*EOF*/
        -:        -:19216:/*EOF*/
        -:        -:19217:/*EOF*/
        -:        -:19218:/*EOF*/
        -:        -:19219:/*EOF*/
        -:        -:19220:/*EOF*/
        -:        -:19221:/*EOF*/
        -:        -:19222:/*EOF*/
        -:        -:19223:/*EOF*/
        -:        -:19224:/*EOF*/
        -:        -:19225:/*EOF*/
        -:        -:19226:/*EOF*/
        -:        -:19227:/*EOF*/
        -:        -:19228:/*EOF*/
        -:        -:19229:/*EOF*/
        -:        -:19230:/*EOF*/
        -:        -:19231:/*EOF*/
        -:        -:19232:/*EOF*/
        -:        -:19233:/*EOF*/
        -:        -:19234:/*EOF*/
        -:        -:19235:/*EOF*/
        -:        -:19236:/*EOF*/
        -:        -:19237:/*EOF*/
        -:        -:19238:/*EOF*/
        -:        -:19239:/*EOF*/
        -:        -:19240:/*EOF*/
        -:        -:19241:/*EOF*/
        -:        -:19242:/*EOF*/
        -:        -:19243:/*EOF*/
        -:        -:19244:/*EOF*/
        -:        -:19245:/*EOF*/
        -:        -:19246:/*EOF*/
        -:        -:19247:/*EOF*/
        -:        -:19248:/*EOF*/
        -:        -:19249:/*EOF*/
        -:        -:19250:/*EOF*/
        -:        -:19251:/*EOF*/
        -:        -:19252:/*EOF*/
        -:        -:19253:/*EOF*/
        -:        -:19254:/*EOF*/
        -:        -:19255:/*EOF*/
        -:        -:19256:/*EOF*/
        -:        -:19257:/*EOF*/
        -:        -:19258:/*EOF*/
        -:        -:19259:/*EOF*/
        -:        -:19260:/*EOF*/
        -:        -:19261:/*EOF*/
        -:        -:19262:/*EOF*/
        -:        -:19263:/*EOF*/
        -:        -:19264:/*EOF*/
        -:        -:19265:/*EOF*/
        -:        -:19266:/*EOF*/
        -:        -:19267:/*EOF*/
        -:        -:19268:/*EOF*/
        -:        -:19269:/*EOF*/
        -:        -:19270:/*EOF*/
        -:        -:19271:/*EOF*/
        -:        -:19272:/*EOF*/
        -:        -:19273:/*EOF*/
        -:        -:19274:/*EOF*/
        -:        -:19275:/*EOF*/
        -:        -:19276:/*EOF*/
        -:        -:19277:/*EOF*/
        -:        -:19278:/*EOF*/
        -:        -:19279:/*EOF*/
        -:        -:19280:/*EOF*/
        -:        -:19281:/*EOF*/
        -:        -:19282:/*EOF*/
        -:        -:19283:/*EOF*/
        -:        -:19284:/*EOF*/
        -:        -:19285:/*EOF*/
        -:        -:19286:/*EOF*/
        -:        -:19287:/*EOF*/
        -:        -:19288:/*EOF*/
        -:        -:19289:/*EOF*/
        -:        -:19290:/*EOF*/
        -:        -:19291:/*EOF*/
        -:        -:19292:/*EOF*/
        -:        -:19293:/*EOF*/
        -:        -:19294:/*EOF*/
        -:        -:19295:/*EOF*/
        -:        -:19296:/*EOF*/
        -:        -:19297:/*EOF*/
        -:        -:19298:/*EOF*/
        -:        -:19299:/*EOF*/
        -:        -:19300:/*EOF*/
        -:        -:19301:/*EOF*/
        -:        -:19302:/*EOF*/
        -:        -:19303:/*EOF*/
        -:        -:19304:/*EOF*/
        -:        -:19305:/*EOF*/
        -:        -:19306:/*EOF*/
        -:        -:19307:/*EOF*/
        -:        -:19308:/*EOF*/
        -:        -:19309:/*EOF*/
        -:        -:19310:/*EOF*/
        -:        -:19311:/*EOF*/
        -:        -:19312:/*EOF*/
        -:        -:19313:/*EOF*/
        -:        -:19314:/*EOF*/
        -:        -:19315:/*EOF*/
        -:        -:19316:/*EOF*/
        -:        -:19317:/*EOF*/
        -:        -:19318:/*EOF*/
        -:        -:19319:/*EOF*/
        -:        -:19320:/*EOF*/
        -:        -:19321:/*EOF*/
        -:        -:19322:/*EOF*/
        -:        -:19323:/*EOF*/
        -:        -:19324:/*EOF*/
        -:        -:19325:/*EOF*/
        -:        -:19326:/*EOF*/
        -:        -:19327:/*EOF*/
        -:        -:19328:/*EOF*/
        -:        -:19329:/*EOF*/
        -:        -:19330:/*EOF*/
        -:        -:19331:/*EOF*/
        -:        -:19332:/*EOF*/
        -:        -:19333:/*EOF*/
        -:        -:19334:/*EOF*/
        -:        -:19335:/*EOF*/
        -:        -:19336:/*EOF*/
        -:        -:19337:/*EOF*/
        -:        -:19338:/*EOF*/
        -:        -:19339:/*EOF*/
        -:        -:19340:/*EOF*/
        -:        -:19341:/*EOF*/
        -:        -:19342:/*EOF*/
        -:        -:19343:/*EOF*/
        -:        -:19344:/*EOF*/
        -:        -:19345:/*EOF*/
        -:        -:19346:/*EOF*/
        -:        -:19347:/*EOF*/
        -:        -:19348:/*EOF*/
        -:        -:19349:/*EOF*/
        -:        -:19350:/*EOF*/
        -:        -:19351:/*EOF*/
        -:        -:19352:/*EOF*/
        -:        -:19353:/*EOF*/
        -:        -:19354:/*EOF*/
        -:        -:19355:/*EOF*/
        -:        -:19356:/*EOF*/
        -:        -:19357:/*EOF*/
        -:        -:19358:/*EOF*/
        -:        -:19359:/*EOF*/
        -:        -:19360:/*EOF*/
        -:        -:19361:/*EOF*/
        -:        -:19362:/*EOF*/
        -:        -:19363:/*EOF*/
        -:        -:19364:/*EOF*/
        -:        -:19365:/*EOF*/
        -:        -:19366:/*EOF*/
        -:        -:19367:/*EOF*/
        -:        -:19368:/*EOF*/
        -:        -:19369:/*EOF*/
        -:        -:19370:/*EOF*/
        -:        -:19371:/*EOF*/
        -:        -:19372:/*EOF*/
        -:        -:19373:/*EOF*/
        -:        -:19374:/*EOF*/
        -:        -:19375:/*EOF*/
        -:        -:19376:/*EOF*/
        -:        -:19377:/*EOF*/
        -:        -:19378:/*EOF*/
        -:        -:19379:/*EOF*/
        -:        -:19380:/*EOF*/
        -:        -:19381:/*EOF*/
        -:        -:19382:/*EOF*/
        -:        -:19383:/*EOF*/
        -:        -:19384:/*EOF*/
        -:        -:19385:/*EOF*/
        -:        -:19386:/*EOF*/
        -:        -:19387:/*EOF*/
        -:        -:19388:/*EOF*/
        -:        -:19389:/*EOF*/
        -:        -:19390:/*EOF*/
        -:        -:19391:/*EOF*/
        -:        -:19392:/*EOF*/
        -:        -:19393:/*EOF*/
        -:        -:19394:/*EOF*/
        -:        -:19395:/*EOF*/
        -:        -:19396:/*EOF*/
        -:        -:19397:/*EOF*/
        -:        -:19398:/*EOF*/
        -:        -:19399:/*EOF*/
        -:        -:19400:/*EOF*/
        -:        -:19401:/*EOF*/
        -:        -:19402:/*EOF*/
        -:        -:19403:/*EOF*/
        -:        -:19404:/*EOF*/
        -:        -:19405:/*EOF*/
        -:        -:19406:/*EOF*/
        -:        -:19407:/*EOF*/
        -:        -:19408:/*EOF*/
        -:        -:19409:/*EOF*/
        -:        -:19410:/*EOF*/
        -:        -:19411:/*EOF*/
        -:        -:19412:/*EOF*/
        -:        -:19413:/*EOF*/
        -:        -:19414:/*EOF*/
        -:        -:19415:/*EOF*/
        -:        -:19416:/*EOF*/
        -:        -:19417:/*EOF*/
        -:        -:19418:/*EOF*/
        -:        -:19419:/*EOF*/
        -:        -:19420:/*EOF*/
        -:        -:19421:/*EOF*/
        -:        -:19422:/*EOF*/
        -:        -:19423:/*EOF*/
        -:        -:19424:/*EOF*/
        -:        -:19425:/*EOF*/
        -:        -:19426:/*EOF*/
        -:        -:19427:/*EOF*/
        -:        -:19428:/*EOF*/
        -:        -:19429:/*EOF*/
        -:        -:19430:/*EOF*/
        -:        -:19431:/*EOF*/
        -:        -:19432:/*EOF*/
        -:        -:19433:/*EOF*/
        -:        -:19434:/*EOF*/
        -:        -:19435:/*EOF*/
        -:        -:19436:/*EOF*/
        -:        -:19437:/*EOF*/
        -:        -:19438:/*EOF*/
        -:        -:19439:/*EOF*/
        -:        -:19440:/*EOF*/
        -:        -:19441:/*EOF*/
        -:        -:19442:/*EOF*/
        -:        -:19443:/*EOF*/
        -:        -:19444:/*EOF*/
        -:        -:19445:/*EOF*/
        -:        -:19446:/*EOF*/
        -:        -:19447:/*EOF*/
        -:        -:19448:/*EOF*/
        -:        -:19449:/*EOF*/
        -:        -:19450:/*EOF*/
        -:        -:19451:/*EOF*/
        -:        -:19452:/*EOF*/
        -:        -:19453:/*EOF*/
        -:        -:19454:/*EOF*/
        -:        -:19455:/*EOF*/
        -:        -:19456:/*EOF*/
        -:        -:19457:/*EOF*/
        -:        -:19458:/*EOF*/
        -:        -:19459:/*EOF*/
        -:        -:19460:/*EOF*/
        -:        -:19461:/*EOF*/
        -:        -:19462:/*EOF*/
        -:        -:19463:/*EOF*/
        -:        -:19464:/*EOF*/
        -:        -:19465:/*EOF*/
        -:        -:19466:/*EOF*/
        -:        -:19467:/*EOF*/
        -:        -:19468:/*EOF*/
        -:        -:19469:/*EOF*/
        -:        -:19470:/*EOF*/
        -:        -:19471:/*EOF*/
        -:        -:19472:/*EOF*/
        -:        -:19473:/*EOF*/
        -:        -:19474:/*EOF*/
        -:        -:19475:/*EOF*/
        -:        -:19476:/*EOF*/
        -:        -:19477:/*EOF*/
        -:        -:19478:/*EOF*/
        -:        -:19479:/*EOF*/
        -:        -:19480:/*EOF*/
        -:        -:19481:/*EOF*/
        -:        -:19482:/*EOF*/
        -:        -:19483:/*EOF*/
        -:        -:19484:/*EOF*/
        -:        -:19485:/*EOF*/
        -:        -:19486:/*EOF*/
        -:        -:19487:/*EOF*/
        -:        -:19488:/*EOF*/
        -:        -:19489:/*EOF*/
        -:        -:19490:/*EOF*/
        -:        -:19491:/*EOF*/
        -:        -:19492:/*EOF*/
        -:        -:19493:/*EOF*/
        -:        -:19494:/*EOF*/
        -:        -:19495:/*EOF*/
        -:        -:19496:/*EOF*/
        -:        -:19497:/*EOF*/
        -:        -:19498:/*EOF*/
        -:        -:19499:/*EOF*/
        -:        -:19500:/*EOF*/
        -:        -:19501:/*EOF*/
        -:        -:19502:/*EOF*/
        -:        -:19503:/*EOF*/
        -:        -:19504:/*EOF*/
        -:        -:19505:/*EOF*/
        -:        -:19506:/*EOF*/
        -:        -:19507:/*EOF*/
        -:        -:19508:/*EOF*/
        -:        -:19509:/*EOF*/
        -:        -:19510:/*EOF*/
        -:        -:19511:/*EOF*/
        -:        -:19512:/*EOF*/
        -:        -:19513:/*EOF*/
        -:        -:19514:/*EOF*/
        -:        -:19515:/*EOF*/
        -:        -:19516:/*EOF*/
        -:        -:19517:/*EOF*/
        -:        -:19518:/*EOF*/
        -:        -:19519:/*EOF*/
        -:        -:19520:/*EOF*/
        -:        -:19521:/*EOF*/
        -:        -:19522:/*EOF*/
        -:        -:19523:/*EOF*/
        -:        -:19524:/*EOF*/
        -:        -:19525:/*EOF*/
        -:        -:19526:/*EOF*/
        -:        -:19527:/*EOF*/
        -:        -:19528:/*EOF*/
        -:        -:19529:/*EOF*/
        -:        -:19530:/*EOF*/
        -:        -:19531:/*EOF*/
        -:        -:19532:/*EOF*/
        -:        -:19533:/*EOF*/
        -:        -:19534:/*EOF*/
        -:        -:19535:/*EOF*/
        -:        -:19536:/*EOF*/
        -:        -:19537:/*EOF*/
        -:        -:19538:/*EOF*/
        -:        -:19539:/*EOF*/
        -:        -:19540:/*EOF*/
        -:        -:19541:/*EOF*/
        -:        -:19542:/*EOF*/
        -:        -:19543:/*EOF*/
        -:        -:19544:/*EOF*/
        -:        -:19545:/*EOF*/
        -:        -:19546:/*EOF*/
        -:        -:19547:/*EOF*/
        -:        -:19548:/*EOF*/
        -:        -:19549:/*EOF*/
        -:        -:19550:/*EOF*/
        -:        -:19551:/*EOF*/
        -:        -:19552:/*EOF*/
        -:        -:19553:/*EOF*/
        -:        -:19554:/*EOF*/
        -:        -:19555:/*EOF*/
        -:        -:19556:/*EOF*/
        -:        -:19557:/*EOF*/
        -:        -:19558:/*EOF*/
        -:        -:19559:/*EOF*/
        -:        -:19560:/*EOF*/
        -:        -:19561:/*EOF*/
        -:        -:19562:/*EOF*/
        -:        -:19563:/*EOF*/
        -:        -:19564:/*EOF*/
        -:        -:19565:/*EOF*/
        -:        -:19566:/*EOF*/
        -:        -:19567:/*EOF*/
        -:        -:19568:/*EOF*/
        -:        -:19569:/*EOF*/
        -:        -:19570:/*EOF*/
        -:        -:19571:/*EOF*/
        -:        -:19572:/*EOF*/
        -:        -:19573:/*EOF*/
        -:        -:19574:/*EOF*/
        -:        -:19575:/*EOF*/
        -:        -:19576:/*EOF*/
        -:        -:19577:/*EOF*/
        -:        -:19578:/*EOF*/
        -:        -:19579:/*EOF*/
        -:        -:19580:/*EOF*/
        -:        -:19581:/*EOF*/
        -:        -:19582:/*EOF*/
        -:        -:19583:/*EOF*/
        -:        -:19584:/*EOF*/
        -:        -:19585:/*EOF*/
        -:        -:19586:/*EOF*/
        -:        -:19587:/*EOF*/
        -:        -:19588:/*EOF*/
        -:        -:19589:/*EOF*/
        -:        -:19590:/*EOF*/
        -:        -:19591:/*EOF*/
        -:        -:19592:/*EOF*/
        -:        -:19593:/*EOF*/
        -:        -:19594:/*EOF*/
        -:        -:19595:/*EOF*/
        -:        -:19596:/*EOF*/
        -:        -:19597:/*EOF*/
        -:        -:19598:/*EOF*/
        -:        -:19599:/*EOF*/
        -:        -:19600:/*EOF*/
        -:        -:19601:/*EOF*/
        -:        -:19602:/*EOF*/
        -:        -:19603:/*EOF*/
        -:        -:19604:/*EOF*/
        -:        -:19605:/*EOF*/
        -:        -:19606:/*EOF*/
        -:        -:19607:/*EOF*/
        -:        -:19608:/*EOF*/
        -:        -:19609:/*EOF*/
        -:        -:19610:/*EOF*/
        -:        -:19611:/*EOF*/
        -:        -:19612:/*EOF*/
        -:        -:19613:/*EOF*/
        -:        -:19614:/*EOF*/
        -:        -:19615:/*EOF*/
        -:        -:19616:/*EOF*/
        -:        -:19617:/*EOF*/
        -:        -:19618:/*EOF*/
        -:        -:19619:/*EOF*/
        -:        -:19620:/*EOF*/
        -:        -:19621:/*EOF*/
        -:        -:19622:/*EOF*/
        -:        -:19623:/*EOF*/
        -:        -:19624:/*EOF*/
        -:        -:19625:/*EOF*/
        -:        -:19626:/*EOF*/
        -:        -:19627:/*EOF*/
        -:        -:19628:/*EOF*/
        -:        -:19629:/*EOF*/
        -:        -:19630:/*EOF*/
        -:        -:19631:/*EOF*/
        -:        -:19632:/*EOF*/
        -:        -:19633:/*EOF*/
        -:        -:19634:/*EOF*/
        -:        -:19635:/*EOF*/
        -:        -:19636:/*EOF*/
        -:        -:19637:/*EOF*/
        -:        -:19638:/*EOF*/
        -:        -:19639:/*EOF*/
        -:        -:19640:/*EOF*/
        -:        -:19641:/*EOF*/
        -:        -:19642:/*EOF*/
        -:        -:19643:/*EOF*/
        -:        -:19644:/*EOF*/
        -:        -:19645:/*EOF*/
        -:        -:19646:/*EOF*/
        -:        -:19647:/*EOF*/
        -:        -:19648:/*EOF*/
        -:        -:19649:/*EOF*/
        -:        -:19650:/*EOF*/
        -:        -:19651:/*EOF*/
        -:        -:19652:/*EOF*/
        -:        -:19653:/*EOF*/
        -:        -:19654:/*EOF*/
        -:        -:19655:/*EOF*/
        -:        -:19656:/*EOF*/
        -:        -:19657:/*EOF*/
        -:        -:19658:/*EOF*/
        -:        -:19659:/*EOF*/
        -:        -:19660:/*EOF*/
        -:        -:19661:/*EOF*/
        -:        -:19662:/*EOF*/
        -:        -:19663:/*EOF*/
        -:        -:19664:/*EOF*/
        -:        -:19665:/*EOF*/
        -:        -:19666:/*EOF*/
        -:        -:19667:/*EOF*/
        -:        -:19668:/*EOF*/
        -:        -:19669:/*EOF*/
        -:        -:19670:/*EOF*/
        -:        -:19671:/*EOF*/
        -:        -:19672:/*EOF*/
        -:        -:19673:/*EOF*/
        -:        -:19674:/*EOF*/
        -:        -:19675:/*EOF*/
        -:        -:19676:/*EOF*/
        -:        -:19677:/*EOF*/
        -:        -:19678:/*EOF*/
        -:        -:19679:/*EOF*/
        -:        -:19680:/*EOF*/
        -:        -:19681:/*EOF*/
        -:        -:19682:/*EOF*/
        -:        -:19683:/*EOF*/
        -:        -:19684:/*EOF*/
        -:        -:19685:/*EOF*/
        -:        -:19686:/*EOF*/
        -:        -:19687:/*EOF*/
        -:        -:19688:/*EOF*/
        -:        -:19689:/*EOF*/
        -:        -:19690:/*EOF*/
        -:        -:19691:/*EOF*/
        -:        -:19692:/*EOF*/
        -:        -:19693:/*EOF*/
        -:        -:19694:/*EOF*/
        -:        -:19695:/*EOF*/
        -:        -:19696:/*EOF*/
        -:        -:19697:/*EOF*/
        -:        -:19698:/*EOF*/
        -:        -:19699:/*EOF*/
        -:        -:19700:/*EOF*/
        -:        -:19701:/*EOF*/
        -:        -:19702:/*EOF*/
        -:        -:19703:/*EOF*/
        -:        -:19704:/*EOF*/
        -:        -:19705:/*EOF*/
        -:        -:19706:/*EOF*/
        -:        -:19707:/*EOF*/
        -:        -:19708:/*EOF*/
        -:        -:19709:/*EOF*/
        -:        -:19710:/*EOF*/
        -:        -:19711:/*EOF*/
        -:        -:19712:/*EOF*/
        -:        -:19713:/*EOF*/
        -:        -:19714:/*EOF*/
        -:        -:19715:/*EOF*/
        -:        -:19716:/*EOF*/
        -:        -:19717:/*EOF*/
        -:        -:19718:/*EOF*/
        -:        -:19719:/*EOF*/
        -:        -:19720:/*EOF*/
        -:        -:19721:/*EOF*/
        -:        -:19722:/*EOF*/
        -:        -:19723:/*EOF*/
        -:        -:19724:/*EOF*/
        -:        -:19725:/*EOF*/
        -:        -:19726:/*EOF*/
        -:        -:19727:/*EOF*/
        -:        -:19728:/*EOF*/
        -:        -:19729:/*EOF*/
        -:        -:19730:/*EOF*/
        -:        -:19731:/*EOF*/
        -:        -:19732:/*EOF*/
        -:        -:19733:/*EOF*/
        -:        -:19734:/*EOF*/
        -:        -:19735:/*EOF*/
        -:        -:19736:/*EOF*/
        -:        -:19737:/*EOF*/
        -:        -:19738:/*EOF*/
        -:        -:19739:/*EOF*/
        -:        -:19740:/*EOF*/
        -:        -:19741:/*EOF*/
        -:        -:19742:/*EOF*/
        -:        -:19743:/*EOF*/
        -:        -:19744:/*EOF*/
        -:        -:19745:/*EOF*/
        -:        -:19746:/*EOF*/
        -:        -:19747:/*EOF*/
        -:        -:19748:/*EOF*/
        -:        -:19749:/*EOF*/
        -:        -:19750:/*EOF*/
        -:        -:19751:/*EOF*/
        -:        -:19752:/*EOF*/
        -:        -:19753:/*EOF*/
        -:        -:19754:/*EOF*/
        -:        -:19755:/*EOF*/
        -:        -:19756:/*EOF*/
        -:        -:19757:/*EOF*/
        -:        -:19758:/*EOF*/
        -:        -:19759:/*EOF*/
        -:        -:19760:/*EOF*/
        -:        -:19761:/*EOF*/
        -:        -:19762:/*EOF*/
        -:        -:19763:/*EOF*/
        -:        -:19764:/*EOF*/
        -:        -:19765:/*EOF*/
        -:        -:19766:/*EOF*/
        -:        -:19767:/*EOF*/
        -:        -:19768:/*EOF*/
        -:        -:19769:/*EOF*/
        -:        -:19770:/*EOF*/
        -:        -:19771:/*EOF*/
        -:        -:19772:/*EOF*/
        -:        -:19773:/*EOF*/
        -:        -:19774:/*EOF*/
        -:        -:19775:/*EOF*/
        -:        -:19776:/*EOF*/
        -:        -:19777:/*EOF*/
        -:        -:19778:/*EOF*/
        -:        -:19779:/*EOF*/
        -:        -:19780:/*EOF*/
        -:        -:19781:/*EOF*/
        -:        -:19782:/*EOF*/
        -:        -:19783:/*EOF*/
        -:        -:19784:/*EOF*/
        -:        -:19785:/*EOF*/
        -:        -:19786:/*EOF*/
        -:        -:19787:/*EOF*/
        -:        -:19788:/*EOF*/
        -:        -:19789:/*EOF*/
        -:        -:19790:/*EOF*/
        -:        -:19791:/*EOF*/
        -:        -:19792:/*EOF*/
        -:        -:19793:/*EOF*/
        -:        -:19794:/*EOF*/
        -:        -:19795:/*EOF*/
        -:        -:19796:/*EOF*/
        -:        -:19797:/*EOF*/
        -:        -:19798:/*EOF*/
        -:        -:19799:/*EOF*/
        -:        -:19800:/*EOF*/
        -:        -:19801:/*EOF*/
        -:        -:19802:/*EOF*/
        -:        -:19803:/*EOF*/
        -:        -:19804:/*EOF*/
        -:        -:19805:/*EOF*/
        -:        -:19806:/*EOF*/
        -:        -:19807:/*EOF*/
        -:        -:19808:/*EOF*/
        -:        -:19809:/*EOF*/
        -:        -:19810:/*EOF*/
        -:        -:19811:/*EOF*/
        -:        -:19812:/*EOF*/
        -:        -:19813:/*EOF*/
        -:        -:19814:/*EOF*/
        -:        -:19815:/*EOF*/
        -:        -:19816:/*EOF*/
        -:        -:19817:/*EOF*/
        -:        -:19818:/*EOF*/
        -:        -:19819:/*EOF*/
        -:        -:19820:/*EOF*/
        -:        -:19821:/*EOF*/
        -:        -:19822:/*EOF*/
        -:        -:19823:/*EOF*/
        -:        -:19824:/*EOF*/
        -:        -:19825:/*EOF*/
        -:        -:19826:/*EOF*/
        -:        -:19827:/*EOF*/
        -:        -:19828:/*EOF*/
        -:        -:19829:/*EOF*/
        -:        -:19830:/*EOF*/
        -:        -:19831:/*EOF*/
        -:        -:19832:/*EOF*/
        -:        -:19833:/*EOF*/
        -:        -:19834:/*EOF*/
        -:        -:19835:/*EOF*/
        -:        -:19836:/*EOF*/
        -:        -:19837:/*EOF*/
        -:        -:19838:/*EOF*/
        -:        -:19839:/*EOF*/
        -:        -:19840:/*EOF*/
        -:        -:19841:/*EOF*/
        -:        -:19842:/*EOF*/
        -:        -:19843:/*EOF*/
        -:        -:19844:/*EOF*/
        -:        -:19845:/*EOF*/
        -:        -:19846:/*EOF*/
        -:        -:19847:/*EOF*/
        -:        -:19848:/*EOF*/
        -:        -:19849:/*EOF*/
        -:        -:19850:/*EOF*/
        -:        -:19851:/*EOF*/
        -:        -:19852:/*EOF*/
        -:        -:19853:/*EOF*/
        -:        -:19854:/*EOF*/
        -:        -:19855:/*EOF*/
        -:        -:19856:/*EOF*/
        -:        -:19857:/*EOF*/
        -:        -:19858:/*EOF*/
        -:        -:19859:/*EOF*/
        -:        -:19860:/*EOF*/
        -:        -:19861:/*EOF*/
        -:        -:19862:/*EOF*/
        -:        -:19863:/*EOF*/
        -:        -:19864:/*EOF*/
        -:        -:19865:/*EOF*/
        -:        -:19866:/*EOF*/
        -:        -:19867:/*EOF*/
        -:        -:19868:/*EOF*/
        -:        -:19869:/*EOF*/
        -:        -:19870:/*EOF*/
        -:        -:19871:/*EOF*/
        -:        -:19872:/*EOF*/
        -:        -:19873:/*EOF*/
        -:        -:19874:/*EOF*/
        -:        -:19875:/*EOF*/
        -:        -:19876:/*EOF*/
        -:        -:19877:/*EOF*/
        -:        -:19878:/*EOF*/
        -:        -:19879:/*EOF*/
        -:        -:19880:/*EOF*/
        -:        -:19881:/*EOF*/
        -:        -:19882:/*EOF*/
        -:        -:19883:/*EOF*/
        -:        -:19884:/*EOF*/
        -:        -:19885:/*EOF*/
        -:        -:19886:/*EOF*/
        -:        -:19887:/*EOF*/
        -:        -:19888:/*EOF*/
        -:        -:19889:/*EOF*/
        -:        -:19890:/*EOF*/
        -:        -:19891:/*EOF*/
        -:        -:19892:/*EOF*/
        -:        -:19893:/*EOF*/
        -:        -:19894:/*EOF*/
        -:        -:19895:/*EOF*/
        -:        -:19896:/*EOF*/
        -:        -:19897:/*EOF*/
        -:        -:19898:/*EOF*/
        -:        -:19899:/*EOF*/
        -:        -:19900:/*EOF*/
        -:        -:19901:/*EOF*/
        -:        -:19902:/*EOF*/
        -:        -:19903:/*EOF*/
        -:        -:19904:/*EOF*/
        -:        -:19905:/*EOF*/
        -:        -:19906:/*EOF*/
        -:        -:19907:/*EOF*/
        -:        -:19908:/*EOF*/
        -:        -:19909:/*EOF*/
        -:        -:19910:/*EOF*/
        -:        -:19911:/*EOF*/
        -:        -:19912:/*EOF*/
        -:        -:19913:/*EOF*/
        -:        -:19914:/*EOF*/
        -:        -:19915:/*EOF*/
        -:        -:19916:/*EOF*/
        -:        -:19917:/*EOF*/
        -:        -:19918:/*EOF*/
        -:        -:19919:/*EOF*/
        -:        -:19920:/*EOF*/
        -:        -:19921:/*EOF*/
        -:        -:19922:/*EOF*/
        -:        -:19923:/*EOF*/
        -:        -:19924:/*EOF*/
        -:        -:19925:/*EOF*/
        -:        -:19926:/*EOF*/
        -:        -:19927:/*EOF*/
        -:        -:19928:/*EOF*/
        -:        -:19929:/*EOF*/
        -:        -:19930:/*EOF*/
        -:        -:19931:/*EOF*/
        -:        -:19932:/*EOF*/
        -:        -:19933:/*EOF*/
        -:        -:19934:/*EOF*/
        -:        -:19935:/*EOF*/
        -:        -:19936:/*EOF*/
        -:        -:19937:/*EOF*/
        -:        -:19938:/*EOF*/
        -:        -:19939:/*EOF*/
        -:        -:19940:/*EOF*/
        -:        -:19941:/*EOF*/
        -:        -:19942:/*EOF*/
        -:        -:19943:/*EOF*/
        -:        -:19944:/*EOF*/
        -:        -:19945:/*EOF*/
        -:        -:19946:/*EOF*/
        -:        -:19947:/*EOF*/
        -:        -:19948:/*EOF*/
        -:        -:19949:/*EOF*/
        -:        -:19950:/*EOF*/
        -:        -:19951:/*EOF*/
        -:        -:19952:/*EOF*/
        -:        -:19953:/*EOF*/
        -:        -:19954:/*EOF*/
        -:        -:19955:/*EOF*/
        -:        -:19956:/*EOF*/
       36:       52:19957:/*EOF*/
        -:        -:19958:/*EOF*/
        -:        -:19959:/*EOF*/
       36:       52:19960:/*EOF*/
        -:        -:19961:/*EOF*/
      172:      203:19962:/*EOF*/
      136:      151:19963:/*EOF*/
       68:       80:19964:/*EOF*/
        -:        -:19965:/*EOF*/
       68:       71:19966:/*EOF*/
       68:       71:19967:/*EOF*/
    #####:    #####:19968:/*EOF*/
        -:        -:19969:/*EOF*/
       68:       71:19970:/*EOF*/
        -:        -:19971:/*EOF*/
    #####:    #####:19972:/*EOF*/
    #####:    #####:19973:/*EOF*/
    #####:    #####:19974:/*EOF*/
    #####:    #####:19975:/*EOF*/
        -:        -:19976:/*EOF*/
    #####:    #####:19977:/*EOF*/
    #####:    #####:19978:/*EOF*/
        -:        -:19979:/*EOF*/
        -:        -:19980:/*EOF*/
    #####:    #####:19981:/*EOF*/
        -:        -:19982:/*EOF*/
        4:        4:19983:/*EOF*/
        4:        4:19984:/*EOF*/
        8:        8:19985:/*EOF*/
        4:        4:19986:/*EOF*/
        -:        -:19987:/*EOF*/
        4:        4:19988:/*EOF*/
        4:        4:19989:/*EOF*/
        -:        -:19990:/*EOF*/
        -:        -:19991:/*EOF*/
        4:        4:19992:/*EOF*/
        -:        -:19993:/*EOF*/
    #####:    #####:19994:/*EOF*/
    #####:    #####:19995:/*EOF*/
    #####:    #####:19996:/*EOF*/
    #####:    #####:19997:/*EOF*/
        -:        -:19998:/*EOF*/
    #####:    #####:19999:/*EOF*/
    #####:    #####:20000:/*EOF*/
        -:        -:20001:/*EOF*/
        -:        -:20002:/*EOF*/
    #####:    #####:20003:/*EOF*/
        -:        -:20004:/*EOF*/
    #####:    #####:20005:/*EOF*/
    #####:    #####:20006:/*EOF*/
    #####:    #####:20007:/*EOF*/
    #####:    #####:20008:/*EOF*/
        -:        -:20009:/*EOF*/
    #####:    #####:20010:/*EOF*/
    #####:    #####:20011:/*EOF*/
        -:        -:20012:/*EOF*/
        -:        -:20013:/*EOF*/
    #####:    #####:20014:/*EOF*/
        -:        -:20015:/*EOF*/
    #####:    #####:20016:/*EOF*/
    #####:    #####:20017:/*EOF*/
    #####:    #####:20018:/*EOF*/
    #####:    #####:20019:/*EOF*/
        -:        -:20020:/*EOF*/
    #####:    #####:20021:/*EOF*/
    #####:    #####:20022:/*EOF*/
        -:        -:20023:/*EOF*/
        -:        -:20024:/*EOF*/
    #####:    #####:20025:/*EOF*/
        -:        -:20026:/*EOF*/
       20:       20:20027:/*EOF*/
       10:       10:20028:/*EOF*/
       20:       20:20029:/*EOF*/
       10:       10:20030:/*EOF*/
        -:        -:20031:/*EOF*/
    #####:    #####:20032:/*EOF*/
    #####:    #####:20033:/*EOF*/
        -:        -:20034:/*EOF*/
        -:        -:20035:/*EOF*/
       10:       10:20036:/*EOF*/
        -:        -:20037:/*EOF*/
    #####:    #####:20038:/*EOF*/
    #####:    #####:20039:/*EOF*/
    #####:    #####:20040:/*EOF*/
    #####:    #####:20041:/*EOF*/
        -:        -:20042:/*EOF*/
    #####:    #####:20043:/*EOF*/
    #####:    #####:20044:/*EOF*/
        -:        -:20045:/*EOF*/
        -:        -:20046:/*EOF*/
    #####:    #####:20047:/*EOF*/
        -:        -:20048:/*EOF*/
    #####:    #####:20049:/*EOF*/
    #####:    #####:20050:/*EOF*/
    #####:    #####:20051:/*EOF*/
    #####:    #####:20052:/*EOF*/
        -:        -:20053:/*EOF*/
    #####:    #####:20054:/*EOF*/
    #####:    #####:20055:/*EOF*/
        -:        -:20056:/*EOF*/
        -:        -:20057:/*EOF*/
    #####:    #####:20058:/*EOF*/
        -:        -:20059:/*EOF*/
    #####:    #####:20060:/*EOF*/
    #####:    #####:20061:/*EOF*/
    #####:    #####:20062:/*EOF*/
    #####:    #####:20063:/*EOF*/
        -:        -:20064:/*EOF*/
    #####:    #####:20065:/*EOF*/
    #####:    #####:20066:/*EOF*/
        -:        -:20067:/*EOF*/
        -:        -:20068:/*EOF*/
    #####:    #####:20069:/*EOF*/
        -:        -:20070:/*EOF*/
    #####:    #####:20071:/*EOF*/
    #####:    #####:20072:/*EOF*/
    #####:    #####:20073:/*EOF*/
    #####:    #####:20074:/*EOF*/
        -:        -:20075:/*EOF*/
    #####:    #####:20076:/*EOF*/
    #####:    #####:20077:/*EOF*/
        -:        -:20078:/*EOF*/
        -:        -:20079:/*EOF*/
    #####:    #####:20080:/*EOF*/
        -:        -:20081:/*EOF*/
       14:       16:20082:/*EOF*/
        7:        9:20083:/*EOF*/
       14:       18:20084:/*EOF*/
        7:        9:20085:/*EOF*/
        -:        -:20086:/*EOF*/
    #####:        2:20087:/*EOF*/
    #####:        2:20088:/*EOF*/
        -:        -:20089:/*EOF*/
        -:        -:20090:/*EOF*/
        7:        9:20091:/*EOF*/
        -:        -:20092:/*EOF*/
    #####:    #####:20093:/*EOF*/
    #####:    #####:20094:/*EOF*/
    #####:    #####:20095:/*EOF*/
    #####:    #####:20096:/*EOF*/
        -:        -:20097:/*EOF*/
    #####:    #####:20098:/*EOF*/
    #####:    #####:20099:/*EOF*/
        -:        -:20100:/*EOF*/
        -:        -:20101:/*EOF*/
    #####:    #####:20102:/*EOF*/
        -:        -:20103:/*EOF*/
       47:       48:20104:/*EOF*/
        -:        -:20105:/*EOF*/
        -:        -:20106:/*EOF*/
        -:        -:20107:/*EOF*/
       36:       52:20108:/*EOF*/
        -:        -:20109:/*EOF*/
        -:        -:20110:/*EOF*/
        -:        -:20111:/*EOF*/
        5:        5:20112:/*EOF*/
        -:        -:20113:/*EOF*/
        5:        5:20114:/*EOF*/
        5:        5:20115:/*EOF*/
        -:        -:20116:/*EOF*/
       41:       57:20117:/*EOF*/
       36:       52:20118:/*EOF*/
        -:        -:20119:/*EOF*/
        -:        -:20120:/*EOF*/
        5:        5:20121:/*EOF*/
        1:        2:20122:/*EOF*/
        -:        -:20123:/*EOF*/
        -:        -:20124:/*EOF*/
        5:        5:20125:/*EOF*/
        -:        -:20126:/*EOF*/
        -:        -:20127:/*EOF*/
        -:        -:20128:/*EOF*/
        -:        -:20129:/*EOF*/
        5:        5:20130:/*EOF*/
        -:        -:20131:/*EOF*/
        5:        5:20132:/*EOF*/
        -:        -:20133:/*EOF*/
        5:        5:20134:/*EOF*/
        -:        -:20135:/*EOF*/
        -:        -:20136:/*EOF*/
        5:        5:20137:/*EOF*/
        5:        5:20138:/*EOF*/
        5:        5:20139:/*EOF*/
        5:        5:20140:/*EOF*/
        5:        5:20141:/*EOF*/
        5:        5:20142:/*EOF*/
        5:        5:20143:/*EOF*/
        5:        5:20144:/*EOF*/
        5:        5:20145:/*EOF*/
        5:        5:20146:/*EOF*/
        5:        5:20147:/*EOF*/
        5:        5:20148:/*EOF*/
        5:        5:20149:/*EOF*/
        5:        5:20150:/*EOF*/
        5:        5:20151:/*EOF*/
        5:        5:20152:/*EOF*/
        5:        5:20153:/*EOF*/
        5:        5:20154:/*EOF*/
        5:        5:20155:/*EOF*/
        5:        5:20156:/*EOF*/
        5:        5:20157:/*EOF*/
        5:        5:20158:/*EOF*/
        5:        5:20159:/*EOF*/
        5:        5:20160:/*EOF*/
        5:        5:20161:/*EOF*/
        5:        5:20162:/*EOF*/
        5:        5:20163:/*EOF*/
        5:        5:20164:/*EOF*/
        5:        5:20165:/*EOF*/
        5:        5:20166:/*EOF*/
        5:        5:20167:/*EOF*/
        5:        5:20168:/*EOF*/
        5:        5:20169:/*EOF*/
        5:        5:20170:/*EOF*/
        5:        5:20171:/*EOF*/
        5:        5:20172:/*EOF*/
        5:        5:20173:/*EOF*/
        5:        5:20174:/*EOF*/
        -:        -:20175:/*EOF*/
       10:       10:20176:/*EOF*/
        5:        5:20177:/*EOF*/
        5:        5:20178:/*EOF*/
        -:        -:20179:/*EOF*/
        -:        -:20180:/*EOF*/
        5:        5:20181:/*EOF*/

src/compiler/nir/.libs/nir_opt_constant_folding.c.gcov

        -:        -:    0:Source:nir/nir_opt_constant_folding.c
        -:        -:    0:Graph:nir_opt_constant_folding.gcno
        -:        -:    0:Data:nir_opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      678:      718:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      678:      718:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      678:      718:   58:/*EOF*/
      678:      718:   59:/*EOF*/
      565:      587:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      778:      818:   62:/*EOF*/
      746:      786:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      859:      917:   66:/*EOF*/
      113:      131:   67:/*EOF*/
      113:      131:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      746:      786:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      746:      786:   73:/*EOF*/
      646:      686:   74:/*EOF*/
      100:      100:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      300:      300:   77:/*EOF*/
      100:      100:   78:/*EOF*/
      100:      100:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      100:      100:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      100:      100:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       32:       32:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       32:       32:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       32:       32:   95:/*EOF*/
       32:       32:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       32:       32:   99:/*EOF*/
       64:       64:  100:/*EOF*/
       32:       32:  101:/*EOF*/
       32:       32:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       32:       32:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       32:       32:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       32:       32:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       32:       32:  111:/*EOF*/
       32:       32:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       32:       32:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      140:      152:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      140:      152:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      222:      234:  122:/*EOF*/
       82:       82:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       82:       82:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       82:       82:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      140:      152:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      226:      248:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      226:      248:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      226:      248:  153:/*EOF*/
      366:      400:  154:/*EOF*/
      140:      152:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      226:      248:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      226:      248:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      310:      454:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      310:      454:  186:/*EOF*/
        -:        -:  187:/*EOF*/
     1580:     1902:  188:/*EOF*/
     1270:     1448:  189:/*EOF*/
        -:        -:  190:/*EOF*/
      678:      718:  191:/*EOF*/
      678:      718:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      226:      248:  194:/*EOF*/
      226:      248:  195:/*EOF*/
      226:      248:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      366:      482:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      310:      454:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       32:       32:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       32:       32:  212:/*EOF*/
       32:       32:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      342:      486:  215:/*EOF*/
      310:      454:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       32:       32:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       32:       32:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       32:       32:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       32:       32:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       64:       64:  231:/*EOF*/
       32:       32:  232:/*EOF*/
       32:       32:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       32:       32:  236:/*EOF*/

src/compiler/nir/.libs/nir_opt_copy_propagate.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_propagate.c
        -:        -:    0:Graph:nir_opt_copy_propagate.gcno
        -:        -:    0:Data:nir_opt_copy_propagate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
     2481:     2611:   35:/*EOF*/
        -:        -:   36:/*EOF*/
     4948:     5208:   37:/*EOF*/
     2467:     2597:   38:/*EOF*/
     1984:     2092:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      497:      519:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      497:      519:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      497:      519:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      497:      519:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     1984:     2092:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     6129:     6471:   58:/*EOF*/
     4150:     4386:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     4150:     4386:   63:/*EOF*/
        5:        7:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     5937:     6255:   67:/*EOF*/
     3958:     4170:   68:/*EOF*/
     1979:     2085:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      539:      575:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      539:      575:   75:/*EOF*/
      170:      178:   76:/*EOF*/
      168:      176:   77:/*EOF*/
       80:       84:   78:/*EOF*/
       88:       92:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       82:       86:   82:/*EOF*/
      457:      489:   83:/*EOF*/
       40:       40:   84:/*EOF*/
       94:       94:   85:/*EOF*/
       93:       93:   86:/*EOF*/
       39:       39:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       54:       54:   89:/*EOF*/
       40:       40:   90:/*EOF*/
       14:       14:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        1:        1:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      417:      449:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
     1285:     1645:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1285:     1645:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
     1285:     1645:  111:/*EOF*/
     1285:     1645:  112:/*EOF*/
      746:     1070:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      539:      575:  115:/*EOF*/
      539:      575:  116:/*EOF*/
      456:      488:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       83:       87:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       83:       87:  122:/*EOF*/
       81:       81:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        2:        6:  126:/*EOF*/
        2:        6:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       83:       87:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     3870:     4094:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     3870:     4094:  137:/*EOF*/
     3870:     4094:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
     3870:     4094:  145:/*EOF*/
     3870:     4094:  146:/*EOF*/
     1928:     2058:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1942:     2036:  149:/*EOF*/
     1942:     2036:  150:/*EOF*/
     1479:     1545:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      463:      491:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      913:      969:  156:/*EOF*/
      450:      478:  157:/*EOF*/
     2075:     2165:  158:/*EOF*/
     1660:     1732:  159:/*EOF*/
      415:      433:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       48:       58:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      228:      278:  164:/*EOF*/
      186:      226:  165:/*EOF*/
      126:      156:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       60:       70:  168:/*EOF*/
       60:       70:  169:/*EOF*/
       48:       58:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       12:       12:  172:/*EOF*/
        6:        6:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       54:       64:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
     2285:     2425:  179:/*EOF*/
     1828:     1940:  180:/*EOF*/
        -:        -:  181:/*EOF*/
      457:      485:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      457:      485:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
     2454:     2609:  189:/*EOF*/
        -:        -:  190:/*EOF*/
     2454:     2609:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
     2454:     2609:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      268:      292:  198:/*EOF*/
        -:        -:  199:/*EOF*/
      268:      292:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      268:      292:  203:/*EOF*/
      700:      748:  204:/*EOF*/
      164:      164:  205:/*EOF*/
      164:      164:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      164:      164:  209:/*EOF*/
      164:      164:  210:/*EOF*/
      164:      164:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      268:      292:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
     3547:     3934:  220:/*EOF*/
        -:        -:  221:/*EOF*/
     3547:     3934:  222:/*EOF*/
     3547:     3934:  223:/*EOF*/
        -:        -:  224:/*EOF*/
     2099:     2210:  225:/*EOF*/
        -:        -:  226:/*EOF*/
     5512:     5819:  227:/*EOF*/
     7283:     7703:  228:/*EOF*/
      457:      485:  229:/*EOF*/
        -:        -:  230:/*EOF*/
     4198:     4420:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
     2099:     2210:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      425:      469:  257:/*EOF*/
     1077:     1185:  258:/*EOF*/
      227:      247:  259:/*EOF*/
      227:      247:  260:/*EOF*/
      227:      247:  261:/*EOF*/
      227:      247:  262:/*EOF*/
       68:       68:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      457:      497:  265:/*EOF*/
        3:        3:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
     1118:     1230:  269:/*EOF*/
      268:      292:  270:/*EOF*/
      268:      292:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      425:      469:  275:/*EOF*/
      710:      798:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      425:      469:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      395:      531:  284:/*EOF*/
      395:      531:  285:/*EOF*/
      395:      531:  286:/*EOF*/
     1185:     1593:  287:/*EOF*/
     1658:     2202:  288:/*EOF*/
       78:       78:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
      395:      531:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      628:      724:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      187:      255:  301:/*EOF*/
        -:        -:  302:/*EOF*/
      187:      255:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       59:       59:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       59:       59:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      751:     1023:  311:/*EOF*/
     4239:     4898:  312:/*EOF*/
     3547:     3934:  313:/*EOF*/
      427:      449:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
      692:      964:  317:/*EOF*/
      692:      964:  318:/*EOF*/
        2:        6:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
       59:       59:  322:/*EOF*/
        9:       10:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
       59:       59:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       59:       59:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       59:       59:  333:/*EOF*/
        -:        -:  334:/*EOF*/
      118:      118:  335:/*EOF*/
       59:       59:  336:/*EOF*/
        9:       10:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       59:       59:  340:/*EOF*/

src/compiler/nir/.libs/nir_opt_copy_prop_vars.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_prop_vars.c
        -:        -:    0:Graph:nir_opt_copy_prop_vars.gcno
        -:        -:    0:Data:nir_opt_copy_prop_vars.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      133:      145:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      133:      145:   94:/*EOF*/
       70:       82:   95:/*EOF*/
       70:       82:   96:/*EOF*/
       70:       82:   97:/*EOF*/
       70:       82:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       63:       63:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      133:      145:  103:/*EOF*/
      133:      145:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      133:      145:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       82:       94:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       82:       94:  112:/*EOF*/
       82:       94:  113:/*EOF*/
       82:       94:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      347:      347:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      347:      347:  132:/*EOF*/
      209:      209:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      138:      138:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      138:      138:  142:/*EOF*/
      138:      138:  143:/*EOF*/
      291:      291:  144:/*EOF*/
      129:      129:  145:/*EOF*/
      129:      129:  146:/*EOF*/
        -:        -:  147:/*EOF*/
      129:      129:  148:/*EOF*/
      129:      129:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      129:      129:  151:/*EOF*/
      129:      129:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      258:      258:  154:/*EOF*/
      129:      129:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      144:      144:  159:/*EOF*/
      114:      114:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       15:       15:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       24:       24:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
       24:       24:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       24:       24:  214:/*EOF*/
       24:       24:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       24:       24:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      243:      267:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      423:      447:  263:/*EOF*/
      196:      196:  264:/*EOF*/
       16:       16:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      227:      251:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      122:      134:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      220:      232:  275:/*EOF*/
       98:       98:  276:/*EOF*/
        8:        8:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      122:      134:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
       20:       20:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       20:       20:  286:/*EOF*/
       72:       72:  287:/*EOF*/
       52:       52:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       52:       52:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       52:       52:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       52:       52:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
       52:       52:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       20:       20:  311:/*EOF*/
       20:       20:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       20:       20:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      141:      153:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      141:      153:  333:/*EOF*/
      141:      153:  334:/*EOF*/
      140:      152:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      700:      760:  337:/*EOF*/
      560:      608:  338:/*EOF*/
      317:      365:  339:/*EOF*/
      317:      365:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        1:        1:  345:/*EOF*/
        1:        1:  346:/*EOF*/
        5:        5:  347:/*EOF*/
        4:        4:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      141:      153:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        8:        8:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        8:        8:  357:/*EOF*/
        8:        8:  358:/*EOF*/
        8:        8:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        8:        8:  363:/*EOF*/
        8:        8:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        8:        8:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        8:        8:  381:/*EOF*/
        8:        8:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        8:        8:  384:/*EOF*/
        8:        8:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        8:        8:  387:/*EOF*/
        8:        8:  388:/*EOF*/
       25:       25:  389:/*EOF*/
       17:       17:  390:/*EOF*/
       17:       17:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       17:       17:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        8:        8:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        8:        8:  399:/*EOF*/
        8:        8:  400:/*EOF*/
        8:        8:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
      122:      134:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
      122:      134:  607:/*EOF*/
      114:      126:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        8:        8:  610:/*EOF*/
        8:        8:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      328:      456:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
      410:      550:  622:/*EOF*/
       82:       94:  623:/*EOF*/
        -:        -:  624:/*EOF*/
     2006:     2311:  625:/*EOF*/
     1678:     1855:  626:/*EOF*/
     1471:     1626:  627:/*EOF*/
        -:        -:  628:/*EOF*/
      207:      229:  629:/*EOF*/
      207:      229:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
      121:      133:  647:/*EOF*/
        -:        -:  648:/*EOF*/
      121:      133:  649:/*EOF*/
      121:      133:  650:/*EOF*/
        -:        -:  651:/*EOF*/
      121:      133:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
      121:      133:  655:/*EOF*/
        8:        8:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        8:        8:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        8:        8:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        8:        8:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      113:      125:  688:/*EOF*/
      337:      397:  689:/*EOF*/
      224:      272:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      121:      133:  698:/*EOF*/
        -:        -:  699:/*EOF*/
      121:      133:  700:/*EOF*/
      113:      125:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
      121:      133:  708:/*EOF*/
      121:      133:  709:/*EOF*/
      121:      133:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       19:       19:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       95:       95:  718:/*EOF*/
       76:       76:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       19:       19:  721:/*EOF*/
       19:       19:  722:/*EOF*/
       19:       19:  723:/*EOF*/
        -:        -:  724:/*EOF*/
       19:       19:  725:/*EOF*/
       19:       19:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        1:        1:  730:/*EOF*/
        1:        1:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        1:        1:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        1:        1:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        1:        1:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        1:        1:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        1:        1:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        1:        1:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        1:        1:  771:/*EOF*/
        1:        1:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
       66:       76:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
      328:      456:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
       27:       27:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
       27:       27:  786:/*EOF*/
       27:       27:  787:/*EOF*/
       27:       27:  788:/*EOF*/
       27:       27:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       27:       27:  791:/*EOF*/
       54:       54:  792:/*EOF*/
       27:       27:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
       27:       27:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       27:       27:  799:/*EOF*/
      355:      483:  800:/*EOF*/
      328:      456:  801:/*EOF*/
        -:        -:  802:/*EOF*/
       27:       27:  803:/*EOF*/
        2:        2:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        2:        2:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
       27:       27:  810:/*EOF*/
        -:        -:  811:/*EOF*/
       27:       27:  812:/*EOF*/

src/compiler/nir/.libs/nir_opt_cse.c.gcov

        -:        -:    0:Source:nir/nir_opt_cse.c
        -:        -:    0:Graph:nir_opt_cse.gcno
        -:        -:    0:Data:nir_opt_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      328:      456:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      328:      456:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     1431:     1696:   46:/*EOF*/
     1103:     1240:   47:/*EOF*/
       82:       93:   48:/*EOF*/
       82:       93:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      629:      885:   53:/*EOF*/
      301:      429:   54:/*EOF*/
      301:      429:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1349:     1603:   58:/*EOF*/
     1021:     1147:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      328:      456:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       27:       27:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       27:       27:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       27:       27:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       27:       27:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       27:       27:   73:/*EOF*/
        8:        8:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       27:       27:   77:/*EOF*/
       27:       27:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       27:       27:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       27:       27:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       54:       54:   86:/*EOF*/
       27:       27:   87:/*EOF*/
       27:       27:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       27:       27:   91:/*EOF*/

src/compiler/nir/.libs/nir_opt_dce.c.gcov

        -:        -:    0:Source:nir/nir_opt_dce.c
        -:        -:    0:Graph:nir_opt_dce.gcno
        -:        -:    0:Data:nir_opt_dce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     1223:     1374:   38:/*EOF*/
        -:        -:   39:/*EOF*/
     1223:     1374:   40:/*EOF*/
     1223:     1374:   41:/*EOF*/
     1223:     1374:   42:/*EOF*/
     1223:     1374:   43:/*EOF*/
     1223:     1374:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
     1223:     1374:   47:/*EOF*/
        -:        -:   48:/*EOF*/
     1223:     1374:   49:/*EOF*/
     1223:     1374:   50:/*EOF*/
     1223:     1374:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
     1734:     1924:   55:/*EOF*/
        -:        -:   56:/*EOF*/
     1734:     1924:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     1734:     1924:   59:/*EOF*/
     1050:     1129:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     1734:     1924:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     1841:     2043:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
     1841:     2043:   77:/*EOF*/
        -:        -:   78:/*EOF*/
     1841:     2043:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       37:       73:   82:/*EOF*/
       37:       73:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     1083:     1141:   86:/*EOF*/
     1083:     1141:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
     1083:     1141:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      226:      248:   92:/*EOF*/
      226:      248:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      376:      420:   95:/*EOF*/
      188:      210:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       38:       38:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      226:      248:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      495:      581:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     1841:     2043:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
      364:      508:  116:/*EOF*/
        -:        -:  117:/*EOF*/
     2205:     2551:  118:/*EOF*/
     1841:     2043:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      364:      508:  121:/*EOF*/
      364:      508:  122:/*EOF*/
      196:      268:  123:/*EOF*/
       98:      134:  124:/*EOF*/
       98:      134:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      364:      508:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       32:       32:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       32:       32:  134:/*EOF*/
       32:       32:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      396:      540:  137:/*EOF*/
      364:      508:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
     1287:     1438:  141:/*EOF*/
     1223:     1374:  142:/*EOF*/
     1223:     1374:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       32:       32:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       32:       32:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      396:      540:  150:/*EOF*/
     2205:     2551:  151:/*EOF*/
     1841:     2043:  152:/*EOF*/
      618:      669:  153:/*EOF*/
      618:      669:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       32:       32:  159:/*EOF*/
       14:       14:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       32:       32:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       32:       32:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       32:       32:  169:/*EOF*/
       64:       64:  170:/*EOF*/
       32:       32:  171:/*EOF*/
       14:       14:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       32:       32:  175:/*EOF*/

src/compiler/nir/.libs/nir_opt_dead_cf.c.gcov

        -:        -:    0:Source:nir/nir_opt_dead_cf.c
        -:        -:    0:Graph:nir_opt_dead_cf.gcno
        -:        -:    0:Data:nir_opt_dead_cf.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        1:        1:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        8:        8:  138:/*EOF*/
       47:       47:  139:/*EOF*/
       40:       40:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       41:       41:  148:/*EOF*/
        1:        1:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       40:       40:  152:/*EOF*/
       39:       39:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        1:        1:  155:/*EOF*/
        1:        1:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        1:        1:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        4:        4:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        4:        4:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        4:        4:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
       17:       33:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       17:       33:  193:/*EOF*/
       17:       33:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       34:       66:  196:/*EOF*/
       17:       33:  197:/*EOF*/
       16:       32:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        1:        1:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        1:        1:  203:/*EOF*/
        1:        1:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        3:        3:  207:/*EOF*/
        1:        1:  208:/*EOF*/
        6:        6:  209:/*EOF*/
        5:        5:  210:/*EOF*/
        1:        1:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
      274:      402:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      274:      402:  221:/*EOF*/
      274:      402:  222:/*EOF*/
       71:      103:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       71:      103:  226:/*EOF*/
       71:      103:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      203:      299:  233:/*EOF*/
      203:      299:  234:/*EOF*/
      186:      266:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       17:       33:  237:/*EOF*/
       17:       33:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      274:      402:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      274:      402:  247:/*EOF*/
       71:      119:  248:/*EOF*/
        -:        -:  249:/*EOF*/
      203:      283:  250:/*EOF*/
      203:      283:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      186:      266:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      186:      266:  257:/*EOF*/
      186:      266:  258:/*EOF*/
        -:        -:  259:/*EOF*/
      186:      266:  260:/*EOF*/
        -:        -:  261:/*EOF*/
      548:      804:  262:/*EOF*/
      362:      538:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      274:      402:  265:/*EOF*/
      274:      402:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      274:      402:  285:/*EOF*/
       33:       65:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       33:       65:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      274:      402:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       71:      103:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       71:      103:  300:/*EOF*/
       71:      103:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       71:      103:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       71:      103:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       17:       33:  317:/*EOF*/
        -:        -:  318:/*EOF*/
       17:       33:  319:/*EOF*/
        -:        -:  320:/*EOF*/
       17:       33:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      362:      538:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      186:      266:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
       27:       27:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       27:       27:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       27:       27:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
       27:       27:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       27:       27:  347:/*EOF*/
        -:        -:  348:/*EOF*/
       27:       27:  349:/*EOF*/
        -:        -:  350:/*EOF*/
       54:       54:  351:/*EOF*/
       27:       27:  352:/*EOF*/
       27:       27:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       27:       27:  355:/*EOF*/

src/compiler/nir/.libs/nir_opt_if.c.gcov

        -:        -:    0:Source:nir/nir_opt_if.c
        -:        -:    0:Graph:nir_opt_if.gcno
        -:        -:    0:Data:nir_opt_if.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       17:       33:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       17:       33:   84:/*EOF*/
       17:       33:   85:/*EOF*/
       17:       33:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       17:       33:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       17:       33:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       17:       33:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       51:       99:  100:/*EOF*/
       34:       66:  101:/*EOF*/
       17:       33:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       17:       33:  105:/*EOF*/
       17:       33:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       17:       33:  109:/*EOF*/
       17:       33:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       17:       33:  112:/*EOF*/
       17:       33:  113:/*EOF*/
       17:       33:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      186:      266:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      186:      266:  206:/*EOF*/
      548:      804:  207:/*EOF*/
      362:      538:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      274:      402:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       71:      103:  213:/*EOF*/
       71:      103:  214:/*EOF*/
       71:      103:  215:/*EOF*/
       71:      103:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
       17:       33:  220:/*EOF*/
       17:       33:  221:/*EOF*/
       17:       33:  222:/*EOF*/
       17:       33:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      186:      266:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
       27:       27:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       27:       27:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       54:       54:  239:/*EOF*/
       27:       27:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       27:       27:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       27:       27:  255:/*EOF*/

src/compiler/nir/.libs/nir_opt_loop_unroll.c.gcov

        -:        -:    0:Source:nir/nir_opt_loop_unroll.c
        -:        -:    0:Graph:nir_opt_loop_unroll.gcno
        -:        -:    0:Data:nir_opt_loop_unroll.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        1:        1:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        1:        1:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        1:        1:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        1:        1:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        1:        1:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        1:        1:   77:/*EOF*/
        1:        1:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        1:        1:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        1:        1:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        1:        1:   99:/*EOF*/
        1:        1:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        1:        1:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        2:        2:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        1:        1:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        1:        1:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        1:        1:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        1:        1:  151:/*EOF*/
        1:        1:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        1:        1:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        1:        1:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        1:        1:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        4:        4:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        3:        3:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        1:        1:  194:/*EOF*/
        1:        1:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        1:        1:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        1:        1:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        1:        1:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        1:        1:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        1:        1:  211:/*EOF*/
        1:        1:  212:/*EOF*/
        1:        1:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        1:        1:  215:/*EOF*/
        1:        1:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
       17:        1:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       17:        1:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       17:        1:  466:/*EOF*/
       16:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        1:        1:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        1:        1:  472:/*EOF*/
        1:        1:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        1:        1:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
      361:      537:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      361:      537:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
      361:      537:  484:/*EOF*/
        -:        -:  485:/*EOF*/
      273:      401:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       71:      103:  488:/*EOF*/
      142:      206:  489:/*EOF*/
       71:      103:  490:/*EOF*/
      142:      206:  491:/*EOF*/
       71:      103:  492:/*EOF*/
       71:      103:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       17:       33:  496:/*EOF*/
      134:      262:  497:/*EOF*/
      117:      229:  498:/*EOF*/
       17:       33:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
       17:       33:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
       17:       17:  509:/*EOF*/
        -:        -:  510:/*EOF*/
       17:       17:  511:/*EOF*/
    #####:       16:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       17:        1:  514:/*EOF*/
       16:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        1:        1:  517:/*EOF*/
        1:        1:  518:/*EOF*/
        1:        1:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        1:       17:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
       27:       27:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       27:       27:  558:/*EOF*/
       27:       27:  559:/*EOF*/
       27:       27:  560:/*EOF*/
        -:        -:  561:/*EOF*/
      129:      129:  562:/*EOF*/
      102:      102:  563:/*EOF*/
      102:      102:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       27:       27:  568:/*EOF*/
        1:        1:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       27:       27:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       27:       27:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       27:       27:  577:/*EOF*/
        -:        -:  578:/*EOF*/
       54:       54:  579:/*EOF*/
       27:       27:  580:/*EOF*/
       27:       27:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       27:       27:  584:/*EOF*/

src/compiler/nir/.libs/nir_opt_move_comparisons.c.gcov

        -:        -:    0:Source:nir/nir_opt_move_comparisons.c
        -:        -:    0:Graph:nir_opt_move_comparisons.gcno
        -:        -:    0:Data:nir_opt_move_comparisons.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       46:       48:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       46:       48:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        9:       11:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       37:       37:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      148:      156:   78:/*EOF*/
        -:        -:   79:/*EOF*/
      148:      156:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      148:      156:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      254:      266:   85:/*EOF*/
      152:      158:   86:/*EOF*/
       46:       48:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        9:       11:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        9:       11:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        9:       11:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        9:       11:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      139:      145:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       33:       33:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       33:       33:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       33:       33:  107:/*EOF*/
       33:       33:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       33:       33:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       36:       52:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       36:       52:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       36:       52:  131:/*EOF*/
       36:       52:  132:/*EOF*/
        9:       13:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      141:      163:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      114:      122:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        9:       11:  147:/*EOF*/
      105:      111:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       52:       54:  152:/*EOF*/
      158:      164:  153:/*EOF*/
      106:      110:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       53:       57:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       36:       52:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        5:        5:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       10:       10:  170:/*EOF*/
        5:        5:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       41:       57:  174:/*EOF*/
       36:       52:  175:/*EOF*/
        9:       11:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        9:       11:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        5:  184:/*EOF*/

src/compiler/nir/.libs/nir_opt_peephole_select.c.gcov

        -:        -:    0:Source:nir/nir_opt_peephole_select.c
        -:        -:    0:Graph:nir_opt_peephole_select.gcno
        -:        -:    0:Data:nir_opt_peephole_select.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      107:      139:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      123:      155:   63:/*EOF*/
       87:      119:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       16:       16:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       16:       16:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       12:       12:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       12:       12:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       12:       12:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        4:        4:   81:/*EOF*/
        4:        4:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       12:       12:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        4:        4:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       34:       34:   96:/*EOF*/
       34:       34:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       34:       34:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       34:       34:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       33:       65:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       36:       36:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      328:      456:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      328:      456:  153:/*EOF*/
      222:      302:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      106:      154:  156:/*EOF*/
      106:      154:  157:/*EOF*/
       17:       33:  158:/*EOF*/
        -:        -:  159:/*EOF*/
       89:      121:  160:/*EOF*/
       89:      121:  161:/*EOF*/
       89:      121:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      178:      242:  165:/*EOF*/
       89:      121:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       89:      121:  170:/*EOF*/
      107:      139:  171:/*EOF*/
       18:       18:  172:/*EOF*/
       71:      103:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       18:       18:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       18:       18:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       18:       18:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       18:       18:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       36:       36:  202:/*EOF*/
       25:       25:  203:/*EOF*/
        7:        7:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       18:       18:  206:/*EOF*/
       18:       18:  207:/*EOF*/
       18:       18:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       18:       18:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       18:       18:  212:/*EOF*/
       54:       54:  213:/*EOF*/
       36:       36:  214:/*EOF*/
       36:       36:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       36:       36:  217:/*EOF*/
       36:       36:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       54:       54:  221:/*EOF*/
       18:       18:  222:/*EOF*/
       18:       18:  223:/*EOF*/
       18:       18:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       18:       18:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       18:       18:  229:/*EOF*/
       18:       18:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       18:       18:  233:/*EOF*/
       18:       18:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       27:       27:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       27:       27:  240:/*EOF*/
       27:       27:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      355:      483:  243:/*EOF*/
      328:      456:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       27:       27:  247:/*EOF*/
        1:        1:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       27:       27:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       27:       27:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       27:       27:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       54:       54:  258:/*EOF*/
       27:       27:  259:/*EOF*/
       27:       27:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
       27:       27:  263:/*EOF*/

src/compiler/nir/.libs/nir_opt_remove_phis.c.gcov

        -:        -:    0:Source:nir/nir_opt_remove_phis.c
        -:        -:    0:Graph:nir_opt_remove_phis.gcno
        -:        -:    0:Data:nir_opt_remove_phis.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
      204:      268:   32:/*EOF*/
        -:        -:   33:/*EOF*/
      204:      268:   34:/*EOF*/
       99:      163:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      105:      105:   37:/*EOF*/
      105:      105:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      170:      234:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      170:      234:   44:/*EOF*/
      145:      209:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       25:       25:   47:/*EOF*/
       25:       25:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      275:      403:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      275:      403:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      454:      646:   71:/*EOF*/
      385:      497:   72:/*EOF*/
      206:      254:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      179:      243:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      179:      243:   77:/*EOF*/
      179:      243:   78:/*EOF*/
      179:      243:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      376:      504:   81:/*EOF*/
      358:      486:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      358:      486:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      358:      486:   98:/*EOF*/
      179:      243:   99:/*EOF*/
      179:      243:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      179:      243:  102:/*EOF*/
      161:      225:  103:/*EOF*/
      161:      225:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
      179:      243:  109:/*EOF*/
      161:      225:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       18:       18:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       18:       18:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        9:        9:  126:/*EOF*/
       18:       18:  127:/*EOF*/
        9:        9:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       18:       18:  132:/*EOF*/
       18:       18:  133:/*EOF*/
       18:       18:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       18:       18:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      275:      403:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       27:       27:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       27:       27:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       27:       27:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      302:      430:  149:/*EOF*/
      275:      403:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       27:       27:  153:/*EOF*/
        2:        2:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       27:       27:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       27:       27:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       27:       27:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       54:       54:  166:/*EOF*/
       27:       27:  167:/*EOF*/
       27:       27:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       27:       27:  170:/*EOF*/

src/compiler/nir/.libs/nir_opt_trivial_continues.c.gcov

        -:        -:    0:Source:nir/nir_opt_trivial_continues.c
        -:        -:    0:Graph:nir_opt_trivial_continues.gcno
        -:        -:    0:Data:nir_opt_trivial_continues.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
       34:       66:   27:/*EOF*/
        -:        -:   28:/*EOF*/
       34:       66:   29:/*EOF*/
       34:       34:   30:/*EOF*/
        -:        -:   31:/*EOF*/
    #####:       32:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       17:       65:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       17:       65:   38:/*EOF*/
       17:       65:   39:/*EOF*/
       17:       65:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:       32:   42:/*EOF*/
    #####:       32:   43:/*EOF*/
    #####:       16:   44:/*EOF*/
    #####:       16:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:       16:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:       32:   56:/*EOF*/
    #####:       32:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       17:       65:   60:/*EOF*/
       17:       65:   61:/*EOF*/
       17:       65:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      186:      266:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      186:      266:   77:/*EOF*/
      548:      804:   78:/*EOF*/
      479:      767:   79:/*EOF*/
      117:      229:   80:/*EOF*/
      362:      538:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      274:      402:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       71:      103:   86:/*EOF*/
       71:      103:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
       71:      103:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
       71:      103:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       17:       33:   95:/*EOF*/
       17:       33:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
       17:       33:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
       17:       33:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      186:      266:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       27:       27:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       27:       27:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       54:       54:  122:/*EOF*/
       27:       27:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       27:       27:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       27:       27:  136:/*EOF*/

src/compiler/nir/.libs/nir_opt_undef.c.gcov

        -:        -:    0:Source:nir/nir_opt_undef.c
        -:        -:    0:Graph:nir_opt_undef.gcno
        -:        -:    0:Data:nir_opt_undef.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      706:      724:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      706:      724:   41:/*EOF*/
      603:      621:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      103:      103:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      306:      306:   46:/*EOF*/
      206:      206:   47:/*EOF*/
      203:      203:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      206:      206:   50:/*EOF*/
      206:      206:   51:/*EOF*/
      203:      203:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        3:        3:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        3:        3:   59:/*EOF*/
        3:        3:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        3:        3:   63:/*EOF*/
        3:        3:   64:/*EOF*/
        3:        3:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      100:      100:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      706:      724:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     1412:     1448:   80:/*EOF*/
     1412:     1448:   81:/*EOF*/
     1394:     1430:   82:/*EOF*/
     1376:     1412:   83:/*EOF*/
      688:      706:   84:/*EOF*/
      541:      559:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      165:      165:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      177:      177:   89:/*EOF*/
      330:      330:   90:/*EOF*/
      165:      165:   91:/*EOF*/
      153:      153:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       12:       12:   95:/*EOF*/
       12:       12:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       12:       12:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       12:       12:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      189:      201:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      189:      201:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       31:       31:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      158:      170:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       62:       62:  121:/*EOF*/
       31:       31:  122:/*EOF*/
       31:       31:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       27:       27:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       27:       27:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       54:       54:  136:/*EOF*/
       27:       27:  137:/*EOF*/
       27:       27:  138:/*EOF*/
      302:      430:  139:/*EOF*/
     1513:     1767:  140:/*EOF*/
     1238:     1364:  141:/*EOF*/
      706:      724:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      706:      724:  144:/*EOF*/
      706:      724:  145:/*EOF*/
      532:      640:  146:/*EOF*/
      189:      201:  147:/*EOF*/
      189:      201:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       27:       27:  153:/*EOF*/
        1:        1:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
       27:       27:  160:/*EOF*/

src/compiler/nir/.libs/nir_phi_builder.c.gcov

        -:        -:    0:Source:nir/nir_phi_builder.c
        -:        -:    0:Graph:nir_phi_builder.gcno
        -:        -:    0:Data:nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        5:        5:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        5:        5:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        5:        5:   86:/*EOF*/
        5:        5:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        5:        5:   92:/*EOF*/
        5:        5:   93:/*EOF*/
      125:      157:   94:/*EOF*/
      120:      152:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        5:        5:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        5:        5:  100:/*EOF*/
        5:        5:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        5:        5:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       77:       79:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       77:       79:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       77:       79:  114:/*EOF*/
       77:       79:  115:/*EOF*/
       77:       79:  116:/*EOF*/
       77:       79:  117:/*EOF*/
       77:       79:  118:/*EOF*/
       77:       79:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       77:       79:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      301:      307:  124:/*EOF*/
      147:      149:  125:/*EOF*/
      147:      149:  126:/*EOF*/
      147:      149:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      370:      384:  130:/*EOF*/
      216:      226:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      328:      350:  133:/*EOF*/
      112:      124:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      112:      124:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      112:      124:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       69:       77:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       69:       77:  153:/*EOF*/
       69:       77:  154:/*EOF*/
       69:       77:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
       77:       79:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      155:      157:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      155:      157:  168:/*EOF*/
      155:      157:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      268:      288:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
      268:      288:  178:/*EOF*/
     1165:     1274:  179:/*EOF*/
      629:      698:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      268:      288:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        8:        8:  188:/*EOF*/
        8:        8:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        8:        8:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        8:        8:  194:/*EOF*/
      260:      280:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       53:       61:  214:/*EOF*/
       53:       61:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       53:       61:  217:/*EOF*/
       53:       61:  218:/*EOF*/
       53:       61:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      207:      219:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      897:      986:  235:/*EOF*/
      629:      698:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      268:      288:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       53:       61:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       53:       61:  244:/*EOF*/
       53:       61:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       53:       61:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        5:        5:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        5:        5:  253:/*EOF*/
        5:        5:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       82:       84:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
      207:      219:  266:/*EOF*/
       53:       61:  267:/*EOF*/
       53:       61:  268:/*EOF*/
       53:       61:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       53:       61:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       53:       61:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      159:      183:  280:/*EOF*/
      106:      122:  281:/*EOF*/
       53:       61:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      159:      183:  284:/*EOF*/
      106:      122:  285:/*EOF*/
      106:      122:  286:/*EOF*/
      106:      122:  287:/*EOF*/
      106:      122:  288:/*EOF*/
      106:      122:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       53:       61:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        5:        5:  296:/*EOF*/
        5:        5:  297:/*EOF*/

src/compiler/nir/.libs/nir_remove_dead_variables.c.gcov

        -:        -:    0:Source:nir/nir_remove_dead_variables.c
        -:        -:    0:Graph:nir_remove_dead_variables.gcno
        -:        -:    0:Data:nir_remove_dead_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
      219:      229:   31:/*EOF*/
        -:        -:   32:/*EOF*/
      219:      229:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      219:      229:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       49:       49:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      112:      114:   44:/*EOF*/
      112:      114:   45:/*EOF*/
       13:       13:   46:/*EOF*/
      112:      114:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      214:      230:   51:/*EOF*/
      107:      115:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      107:      115:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      219:      229:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        9:        9:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       18:       18:   89:/*EOF*/
        9:        9:   90:/*EOF*/
      133:      165:   91:/*EOF*/
      522:      588:   92:/*EOF*/
      398:      432:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      219:      229:   95:/*EOF*/
      219:      229:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      179:      203:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        9:        9:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        6:        6:  118:/*EOF*/
        3:        3:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       37:       53:  122:/*EOF*/
      134:      166:  123:/*EOF*/
      100:      116:  124:/*EOF*/
       80:       94:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       20:       22:  127:/*EOF*/
       40:       44:  128:/*EOF*/
       20:       22:  129:/*EOF*/
       17:       19:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        3:        3:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        3:        3:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       12:       12:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       12:       12:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       81:       83:  145:/*EOF*/
       69:       71:  146:/*EOF*/
       69:       71:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       62:       64:  149:/*EOF*/
       62:       64:  150:/*EOF*/
       62:       64:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       12:       12:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        9:        9:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        9:        9:  161:/*EOF*/
        9:        9:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        9:        9:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        9:        9:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        9:        9:  170:/*EOF*/
        4:        4:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        9:        9:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        9:        9:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        9:        9:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        9:        9:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        9:        9:  185:/*EOF*/
       10:       10:  186:/*EOF*/
        5:        5:  187:/*EOF*/
        5:        5:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        9:        9:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        6:        6:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        9:        9:  205:/*EOF*/
        9:        9:  206:/*EOF*/

src/compiler/nir/.libs/nir_search.c.gcov

        -:        -:    0:Source:nir/nir_search.c
        -:        -:    0:Graph:nir_search.gcno
        -:        -:    0:Data:nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       60:       60:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       60:       60:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       60:       60:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       60:       60:   59:/*EOF*/
       60:       60:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       60:       60:   62:/*EOF*/
       16:       16:   63:/*EOF*/
       16:       16:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       16:       16:   66:/*EOF*/
       16:       16:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       16:       16:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       16:       16:   80:/*EOF*/
       44:       44:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       44:       44:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     7476:     7618:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
     7476:     7618:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     7476:     7618:  114:/*EOF*/
        8:        8:  115:/*EOF*/
        8:        8:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    14976:    15260:  119:/*EOF*/
     7500:     7642:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
     8077:     8219:  123:/*EOF*/
      601:      601:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     7476:     7618:  127:/*EOF*/
        -:        -:  128:/*EOF*/
     2483:     2563:  129:/*EOF*/
     1209:     1275:  130:/*EOF*/
        -:        -:  131:/*EOF*/
     1274:     1288:  132:/*EOF*/
     1274:     1288:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     3208:     3248:  137:/*EOF*/
     3208:     3248:  138:/*EOF*/
        -:        -:  139:/*EOF*/
     3208:     3248:  140:/*EOF*/
      151:      151:  141:/*EOF*/
      150:      150:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        2:        2:  146:/*EOF*/
        1:        1:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        1:        1:  151:/*EOF*/
        -:        -:  152:/*EOF*/
     3596:     3656:  153:/*EOF*/
      539:      559:  154:/*EOF*/
      498:      516:  155:/*EOF*/
        -:        -:  156:/*EOF*/
     2559:     2581:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     2619:     2641:  160:/*EOF*/
       60:       60:  161:/*EOF*/
       60:       60:  162:/*EOF*/
        -:        -:  163:/*EOF*/
     2499:     2521:  164:/*EOF*/
     2499:     2521:  165:/*EOF*/
     2499:     2521:  166:/*EOF*/
     2499:     2521:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    12495:    12605:  169:/*EOF*/
     9996:    10084:  170:/*EOF*/
     2523:     2545:  171:/*EOF*/
        -:        -:  172:/*EOF*/
     7473:     7539:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     2499:     2521:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     1785:     1807:  181:/*EOF*/
        -:        -:  182:/*EOF*/
     1785:     1807:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
     1785:     1807:  186:/*EOF*/
     1690:     1708:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       95:       99:  189:/*EOF*/
       95:       99:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       95:       99:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        6:       12:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        6:       10:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        6:       10:  198:/*EOF*/
        6:       10:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        6:       10:  207:/*EOF*/
        6:        8:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:        2:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       89:       89:  215:/*EOF*/
        -:        -:  216:/*EOF*/
      129:      129:  217:/*EOF*/
      178:      178:  218:/*EOF*/
       89:       89:  219:/*EOF*/
       49:       49:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       40:       40:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
     4760:     4874:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
     4760:     4874:  250:/*EOF*/
       10:       10:  251:/*EOF*/
        -:        -:  252:/*EOF*/
     4750:     4864:  253:/*EOF*/
     1183:     1195:  254:/*EOF*/
        -:        -:  255:/*EOF*/
     3567:     3669:  256:/*EOF*/
        -:        -:  257:/*EOF*/
     4132:     4238:  258:/*EOF*/
      565:      569:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
     3567:     3669:  262:/*EOF*/
     3567:     3669:  263:/*EOF*/
     3567:     3669:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
     3567:     3669:  267:/*EOF*/
     3567:     3669:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
     3567:     3669:  276:/*EOF*/
        8:        8:  277:/*EOF*/
        4:        4:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
     3567:     3669:  286:/*EOF*/
        -:        -:  287:/*EOF*/
     3567:     3669:  288:/*EOF*/
     5465:     5583:  289:/*EOF*/
     5342:     5456:  290:/*EOF*/
        -:        -:  291:/*EOF*/
     3444:     3542:  292:/*EOF*/
     3444:     3542:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
     3567:     3669:  297:/*EOF*/
      123:      127:  298:/*EOF*/
        -:        -:  299:/*EOF*/
     3444:     3542:  300:/*EOF*/
     1430:     1448:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
     1430:     1448:  307:/*EOF*/
        -:        -:  308:/*EOF*/
     1430:     1448:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      726:      734:  311:/*EOF*/
        -:        -:  312:/*EOF*/
      704:      714:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
     2014:     2094:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      138:      146:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      138:      146:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      138:      146:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       46:       50:  340:/*EOF*/
       46:       50:  341:/*EOF*/
       46:       50:  342:/*EOF*/
       46:       50:  343:/*EOF*/
      123:      133:  344:/*EOF*/
       77:       83:  345:/*EOF*/
       77:       83:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
       77:       83:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       46:       50:  350:/*EOF*/
       46:       50:  351:/*EOF*/
    #####:        2:  352:/*EOF*/
       46:       50:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       91:       95:  357:/*EOF*/
       91:       95:  358:/*EOF*/
       91:       95:  359:/*EOF*/
       91:       95:  360:/*EOF*/
       91:       95:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        1:        1:  365:/*EOF*/
        1:        1:  366:/*EOF*/
        1:        1:  367:/*EOF*/
        1:        1:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      138:      146:  372:/*EOF*/
        1:        1:  373:/*EOF*/
        1:        1:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      138:      146:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
      138:      146:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      215:      229:  383:/*EOF*/
       77:       83:  384:/*EOF*/
       77:       83:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
       77:       83:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
       77:       83:  390:/*EOF*/
       31:       33:  391:/*EOF*/
       31:       33:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       46:       50:  394:/*EOF*/
       46:       50:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
      138:      146:  399:/*EOF*/
       46:       50:  400:/*EOF*/
       46:       48:  401:/*EOF*/
    #####:        2:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
      123:      133:  405:/*EOF*/
       77:       83:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
      138:      146:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
      138:      146:  415:/*EOF*/
        -:        -:  416:/*EOF*/
      138:      146:  417:/*EOF*/
      137:      145:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        1:        1:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      138:      146:  422:/*EOF*/
       47:       49:  423:/*EOF*/
       47:       49:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      215:      229:  429:/*EOF*/
       77:       83:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       77:       83:  434:/*EOF*/
        -:        -:  435:/*EOF*/
      138:      146:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      138:      146:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
      138:      146:  444:/*EOF*/
        -:        -:  445:/*EOF*/
       46:       50:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       46:       50:  448:/*EOF*/
        4:        4:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       46:       50:  451:/*EOF*/
       46:       50:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       46:       50:  454:/*EOF*/
       46:       50:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
       46:       50:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      123:      133:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       77:       83:  468:/*EOF*/
        8:        8:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       77:       83:  471:/*EOF*/
       77:       83:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
       46:       50:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       46:       50:  479:/*EOF*/
       46:       50:  480:/*EOF*/
       46:       50:  481:/*EOF*/
       46:       50:  482:/*EOF*/
        -:        -:  483:/*EOF*/
       46:       50:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       91:       95:  488:/*EOF*/
       91:       95:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       91:       95:  491:/*EOF*/
       91:       95:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       91:       95:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       91:       95:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        1:        1:  500:/*EOF*/
        1:        1:  501:/*EOF*/
        1:        1:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        1:        1:  504:/*EOF*/
        -:        -:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        1:        1:  548:/*EOF*/
        1:        1:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        1:        1:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        1:        1:  557:/*EOF*/
        1:        1:  558:/*EOF*/
        1:        1:  559:/*EOF*/
        1:        1:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        1:        1:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
     3486:     3586:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
     3486:     3586:  574:/*EOF*/
        -:        -:  575:/*EOF*/
     6972:     7172:  576:/*EOF*/
     3486:     3586:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     3486:     3586:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
     3486:     3586:  582:/*EOF*/
     3486:     3586:  583:/*EOF*/
     3486:     3586:  584:/*EOF*/
        -:        -:  585:/*EOF*/
     3486:     3586:  586:/*EOF*/
        -:        -:  587:/*EOF*/
     3425:     3523:  588:/*EOF*/
        -:        -:  589:/*EOF*/
       61:       63:  590:/*EOF*/
       61:       63:  591:/*EOF*/
       61:       63:  592:/*EOF*/
       61:       63:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       61:       63:  599:/*EOF*/
       61:       63:  600:/*EOF*/
      122:      126:  601:/*EOF*/
       61:       63:  602:/*EOF*/
       61:       63:  603:/*EOF*/
        -:        -:  604:/*EOF*/
      122:      126:  605:/*EOF*/
       61:       63:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       61:       63:  608:/*EOF*/
        -:        -:  609:/*EOF*/
       61:       63:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
       61:       63:  617:/*EOF*/
        -:        -:  618:/*EOF*/
       61:       63:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       61:       63:  621:/*EOF*/

src/compiler/nir/.libs/nir_search.h.gcov

        -:        -:    0:Source:nir/nir_search.h
        -:        -:    0:Graph:nir_search.gcno
        -:        -:    0:Data:nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
     3390:     3438:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     1786:     1808:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     1366:     1388:  122:/*EOF*/

src/compiler/nir/.libs/nir_split_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_split_var_copies.c
        -:        -:    0:Graph:nir_split_var_copies.gcno
        -:        -:    0:Data:nir_split_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       89:      105:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      414:      448:  210:/*EOF*/
      325:      343:  211:/*EOF*/
      123:      133:  212:/*EOF*/
        -:        -:  213:/*EOF*/
      202:      210:  214:/*EOF*/
      202:      210:  215:/*EOF*/
      149:      157:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       53:       53:  218:/*EOF*/
       53:       53:  219:/*EOF*/
       53:       53:  220:/*EOF*/
       53:       53:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       53:       53:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       42:       42:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       42:       42:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       11:       11:  245:/*EOF*/
       11:       11:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       89:      105:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        5:        5:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        5:        5:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       94:      110:  265:/*EOF*/
       89:      105:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        5:        5:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        5:        5:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        5:        5:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        5:        5:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        5:        5:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       10:       10:  284:/*EOF*/
        5:        5:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        5:        5:  289:/*EOF*/

src/compiler/nir/.libs/nir_sweep.c.gcov

        -:        -:    0:Source:nir/nir_sweep.c
        -:        -:    0:Graph:nir_sweep.gcno
        -:        -:    0:Data:nir_sweep.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      142:      146:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      142:      146:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      142:      146:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       82:       84:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       82:       84:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       82:       84:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       41:       57:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       41:       57:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      153:      175:   66:/*EOF*/
      112:      118:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      112:      118:   69:/*EOF*/
      112:      118:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       41:       57:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        9:       13:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        9:       13:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       26:   79:/*EOF*/
        9:       13:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
       18:       26:   83:/*EOF*/
        9:       13:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        9:       13:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        2:        4:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        2:        4:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       16:       32:   93:/*EOF*/
       14:       28:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        2:        4:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       47:       69:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       47:       69:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       36:       52:  103:/*EOF*/
       36:       52:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        9:       13:  106:/*EOF*/
        9:       13:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        2:        4:  109:/*EOF*/
        2:        4:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       47:       69:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        5:        5:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        5:        5:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        5:        5:  121:/*EOF*/
        5:        5:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        5:        5:  124:/*EOF*/
        5:        5:  125:/*EOF*/
        5:        5:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       20:       20:  128:/*EOF*/
       15:       15:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        5:        5:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        5:        5:  135:/*EOF*/
        5:        5:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        5:        5:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        5:        5:  141:/*EOF*/
        5:        5:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        5:        5:  144:/*EOF*/
        5:        5:  145:/*EOF*/
        5:        5:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        5:        5:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        5:        5:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        5:        5:  154:/*EOF*/
        5:        5:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        5:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        5:        5:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        5:        5:  169:/*EOF*/
        5:        5:  170:/*EOF*/
        5:        5:  171:/*EOF*/
        5:        5:  172:/*EOF*/
        5:        5:  173:/*EOF*/
        5:        5:  174:/*EOF*/
        5:        5:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       10:       10:  178:/*EOF*/
        5:        5:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        5:        5:  183:/*EOF*/
        5:        5:  184:/*EOF*/

src/compiler/nir/.libs/nir_validate.c.gcov

        -:        -:    0:Source:nir/nir_validate.c
        -:        -:    0:Graph:nir_validate.gcno
        -:        -:    0:Data:nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       36:       38:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       36:       38:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       36:       38:  139:/*EOF*/
       36:       38:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       36:       38:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       36:       38:  144:/*EOF*/
       36:       36:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:        2:  147:/*EOF*/
    #####:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       36:       38:  151:/*EOF*/
       36:       38:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
       36:       38:  156:/*EOF*/
       36:       38:  157:/*EOF*/
    #####:        2:  158:/*EOF*/
       36:       38:  159:/*EOF*/
        2:        4:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       36:       38:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       36:       38:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       36:       38:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    39136:    44022:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    39136:    44022:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    39136:    44022:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    39136:    44022:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    39136:    44022:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    39136:    44022:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    39136:    44022:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    39136:    44022:  194:/*EOF*/
    37285:    41461:  195:/*EOF*/
        -:        -:  196:/*EOF*/
     1851:     2561:  197:/*EOF*/
     1851:     2561:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    39136:    44022:  201:/*EOF*/
     9830:    13274:  202:/*EOF*/
    39136:    44022:  203:/*EOF*/
    11512:    15046:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    39172:    44060:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    39172:    44060:  213:/*EOF*/
    37321:    41497:  214:/*EOF*/
        -:        -:  215:/*EOF*/
     1851:     2563:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    39172:    44060:  218:/*EOF*/
    39136:    44022:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       36:       38:  221:/*EOF*/
    39172:    44060:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    27658:    29010:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    27658:    29010:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    27658:    29010:  230:/*EOF*/
    27624:    28976:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       34:       34:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       34:       34:  236:/*EOF*/
        -:        -:  237:/*EOF*/
   138290:   145050:  238:/*EOF*/
   110632:   116040:  239:/*EOF*/
        -:        -:  240:/*EOF*/
   110632:   116040:  241:/*EOF*/
    30848:    32308:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    27658:    29010:  245:/*EOF*/
    27658:    29010:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       26:       26:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       26:       26:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       26:       26:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       26:       26:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       26:       26:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       26:       26:  261:/*EOF*/
       26:       26:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       26:       26:  264:/*EOF*/
       26:       26:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       26:       26:  269:/*EOF*/
       26:       26:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
       26:       26:  272:/*EOF*/
        1:        1:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       26:       26:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       26:       26:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       26:       26:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    27243:    29894:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    27243:    29894:  291:/*EOF*/
    27243:    29894:  292:/*EOF*/
    27243:    29894:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    27243:    29894:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    27243:    29894:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    27243:    29894:  299:/*EOF*/
    27243:    29894:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    27243:    29894:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    27243:    29894:  304:/*EOF*/
    27243:    29894:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    27243:    29894:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    27243:    29894:  309:/*EOF*/
    27243:    29894:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    23308:    25815:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    23308:    25815:  316:/*EOF*/
    23282:    25789:  317:/*EOF*/
     2906:     3208:  318:/*EOF*/
    23282:    25789:  319:/*EOF*/
     4037:     4429:  320:/*EOF*/
    23282:    25789:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       26:       26:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    23308:    25815:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    15673:    16428:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    15673:    16428:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    15673:    16428:  332:/*EOF*/
    31321:    32831:  333:/*EOF*/
    31321:    32831:  334:/*EOF*/
    15673:    16428:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    15673:    16428:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    15673:    16428:  345:/*EOF*/
    15673:    16428:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    15673:    16428:  351:/*EOF*/
    15673:    16428:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    15673:    16428:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    15673:    16428:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    15673:    16428:  359:/*EOF*/
    43331:    45438:  360:/*EOF*/
    27658:    29010:  361:/*EOF*/
    27658:    29010:  362:/*EOF*/
    27658:    29010:  363:/*EOF*/
     1787:     1787:  364:/*EOF*/
    25871:    27223:  365:/*EOF*/
    10198:    10795:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    15673:    16428:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    27658:    29010:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    13682:    14674:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    27658:    29010:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    15673:    16428:  380:/*EOF*/
    15673:    16428:  381:/*EOF*/
    15673:    16428:  382:/*EOF*/
     2440:     2796:  383:/*EOF*/
    13233:    13632:  384:/*EOF*/
    13233:    13632:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    15673:    16428:  390:/*EOF*/
        -:        -:  391:/*EOF*/
     7234:     7375:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    15673:    16428:  396:/*EOF*/
    15673:    16428:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
     4461:     4777:  400:/*EOF*/
        -:        -:  401:/*EOF*/
     4461:     4777:  402:/*EOF*/
        -:        -:  403:/*EOF*/
     4461:     4777:  404:/*EOF*/
    15149:    16097:  405:/*EOF*/
     6227:     6543:  406:/*EOF*/
        -:        -:  407:/*EOF*/
     1766:     1766:  408:/*EOF*/
     1766:     1766:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
     1766:     1766:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
     4461:     4777:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
     6227:     6543:  429:/*EOF*/
     6227:     6543:  430:/*EOF*/
        -:        -:  431:/*EOF*/
     4461:     4777:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
     4461:     4777:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     4461:     4777:  437:/*EOF*/
     1488:     1530:  438:/*EOF*/
        -:        -:  439:/*EOF*/
     1488:     1530:  440:/*EOF*/
     1488:     1530:  441:/*EOF*/
        -:        -:  442:/*EOF*/
     4461:     4777:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
     4461:     4777:  446:/*EOF*/
        -:        -:  447:/*EOF*/
     4461:     4777:  448:/*EOF*/
     4461:     4777:  449:/*EOF*/
     4461:     4777:  450:/*EOF*/
        -:        -:  451:/*EOF*/
     4461:     4777:  452:/*EOF*/
        -:        -:  453:/*EOF*/
     4461:     4777:  454:/*EOF*/
     4461:     4777:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
     5484:     5890:  458:/*EOF*/
        -:        -:  459:/*EOF*/
     5484:     5890:  460:/*EOF*/
     8062:     8572:  461:/*EOF*/
     2578:     2682:  462:/*EOF*/
     3691:     4007:  463:/*EOF*/
     3691:     4007:  464:/*EOF*/
     3691:     4007:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
     5484:     5890:  468:/*EOF*/
     7953:     8463:  469:/*EOF*/
     2469:     2573:  470:/*EOF*/
     2469:     2573:  471:/*EOF*/
     2469:     2573:  472:/*EOF*/
     1061:     1075:  473:/*EOF*/
        -:        -:  474:/*EOF*/
     2469:     2573:  475:/*EOF*/
        -:        -:  476:/*EOF*/
     2469:     2573:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
     5484:     5890:  480:/*EOF*/
     9945:    10667:  481:/*EOF*/
     4461:     4777:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
     5484:     5890:  485:/*EOF*/
     4038:     4430:  486:/*EOF*/
     4038:     4430:  487:/*EOF*/
     4038:     4430:  488:/*EOF*/
     3917:     4275:  489:/*EOF*/
        -:        -:  490:/*EOF*/
     4038:     4430:  491:/*EOF*/
        -:        -:  492:/*EOF*/
     4038:     4430:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
     5484:     5890:  496:/*EOF*/
        -:        -:  497:/*EOF*/
     2906:     3208:  498:/*EOF*/
     2906:     3208:  499:/*EOF*/
     2906:     3208:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
     2906:     3208:  503:/*EOF*/
     2906:     3208:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
      785:      799:  507:/*EOF*/
      785:      799:  508:/*EOF*/
      785:      799:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
      785:      799:  512:/*EOF*/
      785:      799:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
      785:      799:  516:/*EOF*/
      785:      799:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
      385:      385:  520:/*EOF*/
        -:        -:  521:/*EOF*/
      385:      385:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      385:      385:  525:/*EOF*/
        -:        -:  526:/*EOF*/
     1408:     1498:  527:/*EOF*/
        -:        -:  528:/*EOF*/
     5484:     5890:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
     2913:     3057:  573:/*EOF*/
        -:        -:  574:/*EOF*/
     2913:     3057:  575:/*EOF*/
     2913:     3057:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     1048:     1048:  579:/*EOF*/
        -:        -:  580:/*EOF*/
     1048:     1048:  581:/*EOF*/
     1048:     1048:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
     3597:     4957:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
     3597:     4957:  592:/*EOF*/
        -:        -:  593:/*EOF*/
     3597:     4957:  594:/*EOF*/
     3597:     4957:  595:/*EOF*/
        -:        -:  596:/*EOF*/
     3597:     4957:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    29448:    32825:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    29448:    32825:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    29448:    32825:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    29448:    32825:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    15673:    16428:  608:/*EOF*/
    15673:    16428:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
     5484:     5890:  616:/*EOF*/
     5484:     5890:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
     2913:     3057:  624:/*EOF*/
     2913:     3057:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
     3597:     4957:  628:/*EOF*/
     3597:     4957:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
     1048:     1048:  632:/*EOF*/
     1048:     1048:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      733:     1445:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    29448:    32825:  643:/*EOF*/
    29448:    32825:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
     7194:     9914:  647:/*EOF*/
        -:        -:  648:/*EOF*/
     7194:     9914:  649:/*EOF*/
        -:        -:  650:/*EOF*/
     7194:     9914:  651:/*EOF*/
        -:        -:  652:/*EOF*/
     7194:     9914:  653:/*EOF*/
    10791:    14871:  654:/*EOF*/
    10791:    14871:  655:/*EOF*/
     7194:     9914:  656:/*EOF*/
     7194:     9914:  657:/*EOF*/
     7194:     9914:  658:/*EOF*/
     7194:     9914:  659:/*EOF*/
    14388:    19828:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
     8766:    12326:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    15960:    22240:  670:/*EOF*/
    13491:    17331:  671:/*EOF*/
     6297:     7417:  672:/*EOF*/
        -:        -:  673:/*EOF*/
     7194:     9914:  674:/*EOF*/
        -:        -:  675:/*EOF*/
     8766:    12326:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
     6915:     9763:  681:/*EOF*/
        -:        -:  682:/*EOF*/
     6915:     9763:  683:/*EOF*/
        -:        -:  684:/*EOF*/
     6915:     9763:  685:/*EOF*/
        -:        -:  686:/*EOF*/
     6915:     9763:  687:/*EOF*/
    36363:    42588:  688:/*EOF*/
    29448:    32825:  689:/*EOF*/
     3597:     4957:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    29448:    32825:  694:/*EOF*/
      733:     1445:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    29448:    32825:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
     6915:     9763:  701:/*EOF*/
     6915:     9763:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    20745:    29289:  704:/*EOF*/
    13830:    19526:  705:/*EOF*/
     8766:    12326:  706:/*EOF*/
     8766:    12326:  707:/*EOF*/
     8766:    12326:  708:/*EOF*/
        -:        -:  709:/*EOF*/
     8766:    12326:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
    15073:    21481:  715:/*EOF*/
     8158:    11718:  716:/*EOF*/
     8158:    11718:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    12001:    16611:  721:/*EOF*/
     5819:     8293:  722:/*EOF*/
      733:     1445:  723:/*EOF*/
      733:     1445:  724:/*EOF*/
      733:     1445:  725:/*EOF*/
        -:        -:  726:/*EOF*/
      733:     1445:  727:/*EOF*/
      733:     1445:  728:/*EOF*/
      733:     1445:  729:/*EOF*/
      733:     1445:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
     6182:     8318:  747:/*EOF*/
     6182:     8318:  748:/*EOF*/
     3954:     5022:  749:/*EOF*/
        -:        -:  750:/*EOF*/
      377:      733:  751:/*EOF*/
      377:      733:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
      377:      733:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
     2969:     3681:  760:/*EOF*/
     2969:     3681:  761:/*EOF*/
     2969:     3681:  762:/*EOF*/
     2969:     3681:  763:/*EOF*/
     2969:     3681:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
      608:      608:  768:/*EOF*/
      608:      608:  769:/*EOF*/
      608:      608:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
     2228:     3296:  776:/*EOF*/
     1851:     2563:  777:/*EOF*/
     1851:     2563:  778:/*EOF*/
        -:        -:  779:/*EOF*/
     1851:     2563:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
      377:      733:  783:/*EOF*/
      377:      733:  784:/*EOF*/
      377:      733:  785:/*EOF*/
        -:        -:  786:/*EOF*/
      377:      733:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
     6915:     9763:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
     1851:     2563:  794:/*EOF*/
        -:        -:  795:/*EOF*/
     1851:     2563:  796:/*EOF*/
        -:        -:  797:/*EOF*/
     1851:     2563:  798:/*EOF*/
     1851:     2563:  799:/*EOF*/
     1851:     2563:  800:/*EOF*/
        -:        -:  801:/*EOF*/
     1851:     2563:  802:/*EOF*/
     1851:     2563:  803:/*EOF*/
     1851:     2563:  804:/*EOF*/
        -:        -:  805:/*EOF*/
     1851:     2563:  806:/*EOF*/
        -:        -:  807:/*EOF*/
     1851:     2563:  808:/*EOF*/
     1851:     2563:  809:/*EOF*/
        -:        -:  810:/*EOF*/
     1851:     2563:  811:/*EOF*/
     1851:     2563:  812:/*EOF*/
        -:        -:  813:/*EOF*/
     1851:     2563:  814:/*EOF*/
     4062:     5486:  815:/*EOF*/
     2211:     2923:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
     1851:     2563:  819:/*EOF*/
     3702:     5126:  820:/*EOF*/
     1851:     2563:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
     1851:     2563:  824:/*EOF*/
     1851:     2563:  825:/*EOF*/
     1851:     2563:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
      377:      733:  829:/*EOF*/
        -:        -:  830:/*EOF*/
      377:      733:  831:/*EOF*/
      377:      733:  832:/*EOF*/
      377:      733:  833:/*EOF*/
        -:        -:  834:/*EOF*/
      377:      733:  835:/*EOF*/
      377:      733:  836:/*EOF*/
      377:      733:  837:/*EOF*/
        -:        -:  838:/*EOF*/
      377:      733:  839:/*EOF*/
        -:        -:  840:/*EOF*/
      377:      733:  841:/*EOF*/
      377:      733:  842:/*EOF*/
      377:      733:  843:/*EOF*/
      377:      733:  844:/*EOF*/
        -:        -:  845:/*EOF*/
      377:      733:  846:/*EOF*/
     3094:     5942:  847:/*EOF*/
     2717:     5209:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
      377:      733:  851:/*EOF*/
      377:      733:  852:/*EOF*/
      377:      733:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
     9143:    13059:  856:/*EOF*/
        -:        -:  857:/*EOF*/
     9143:    13059:  858:/*EOF*/
        -:        -:  859:/*EOF*/
     9143:    13059:  860:/*EOF*/
        -:        -:  861:/*EOF*/
     6915:     9763:  862:/*EOF*/
     6915:     9763:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
     1851:     2563:  866:/*EOF*/
     1851:     2563:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
      377:      733:  870:/*EOF*/
      377:      733:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
     9143:    13059:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
       13:       13:  879:/*EOF*/
        -:        -:  880:/*EOF*/
       13:       13:  881:/*EOF*/
        -:        -:  882:/*EOF*/
       13:       13:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
       13:       13:  886:/*EOF*/
       13:       13:  887:/*EOF*/
       13:       13:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       13:       13:  890:/*EOF*/
       13:       13:  891:/*EOF*/
       13:       13:  892:/*EOF*/
        -:        -:  893:/*EOF*/
       13:       13:  894:/*EOF*/
       13:       13:  895:/*EOF*/
        -:        -:  896:/*EOF*/
       13:       13:  897:/*EOF*/
        -:        -:  898:/*EOF*/
       13:       13:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
       13:       13:  902:/*EOF*/
        -:        -:  903:/*EOF*/
       13:       13:  904:/*EOF*/
       13:       13:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
       13:       13:  908:/*EOF*/
        -:        -:  909:/*EOF*/
       13:       13:  910:/*EOF*/
        -:        -:  911:/*EOF*/
       13:       13:  912:/*EOF*/
       13:       13:  913:/*EOF*/
        -:        -:  914:/*EOF*/
       49:       49:  915:/*EOF*/
       36:       36:  916:/*EOF*/
       36:       36:  917:/*EOF*/
       36:       36:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
       13:       13:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       13:       15:  930:/*EOF*/
    #####:        2:  931:/*EOF*/
    #####:        2:  932:/*EOF*/
    #####:        2:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
       13:       13:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
       39:       39:  945:/*EOF*/
       26:       26:  946:/*EOF*/
       26:       26:  947:/*EOF*/
       26:       26:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
       13:       13:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
       13:       13:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
     9379:     9627:  962:/*EOF*/
        -:        -:  963:/*EOF*/
     9379:     9627:  964:/*EOF*/
        -:        -:  965:/*EOF*/
     9379:     9627:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
     9379:     9627:  969:/*EOF*/
        -:        -:  970:/*EOF*/
     9379:     9627:  971:/*EOF*/
        -:        -:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
     9379:     9627:  989:/*EOF*/
     7424:     7672:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
     9379:     9627:  993:/*EOF*/
     9379:     9627:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    27243:    29894:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    27243:    29894:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    27243:    29894: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    27243:    29894: 1003:/*EOF*/
    27243:    29894: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    64528:    71355: 1006:/*EOF*/
    37285:    41461: 1007:/*EOF*/
    37285:    41461: 1008:/*EOF*/
    37285:    41461: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    27243:    29894: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    29094:    32455: 1021:/*EOF*/
     1851:     2561: 1022:/*EOF*/
     1851:     2561: 1023:/*EOF*/
     1851:     2561: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
    27243:    29894: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
    27243:    29894: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      608:      608: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
      608:      608: 1042:/*EOF*/
      608:      608: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
      608:      608: 1045:/*EOF*/
      608:      608: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
      608:      608: 1053:/*EOF*/
      608:      608: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
      608:      608: 1062:/*EOF*/
      608:      608: 1063:/*EOF*/
      608:      608: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
      608:      608: 1066:/*EOF*/
      608:      608: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
      608:      608: 1069:/*EOF*/
     8032:     8280: 1070:/*EOF*/
     7424:     7672: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
      608:      608: 1074:/*EOF*/
      608:      608: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
      608:      608: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
      608:      608: 1079:/*EOF*/
      621:      621: 1080:/*EOF*/
       13:       13: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
      608:      608: 1084:/*EOF*/
      608:      608: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
      608:      608: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
      608:      608: 1089:/*EOF*/
     2972:     2972: 1090:/*EOF*/
     2364:     2364: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
      621:      621: 1094:/*EOF*/
       13:       13: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
     7523:    10371: 1098:/*EOF*/
    36363:    42588: 1099:/*EOF*/
    29448:    32825: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
      608:      608: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
      608:      608: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
      608:      608: 1107:/*EOF*/
      608:      608: 1108:/*EOF*/
      608:      608: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
      608:      608: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
      608:      608: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
      608:      608: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
      608:      608: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
      608:      608: 1120:/*EOF*/
      608:      608: 1121:/*EOF*/
      608:      608: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
      608:      608: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
      608:      608: 1127:/*EOF*/
      608:      608: 1128:/*EOF*/
      608:      608: 1129:/*EOF*/
      608:      608: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      608:      608: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
      608:      608: 1135:/*EOF*/
      608:      608: 1136:/*EOF*/
      608:      608: 1137:/*EOF*/
      608:      608: 1138:/*EOF*/
      608:      608: 1139:/*EOF*/
      608:      608: 1140:/*EOF*/
      608:      608: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
      608:      608: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
      608:      608: 1168:/*EOF*/
        1:        1: 1169:/*EOF*/
      608:      608: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
      608:      608: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
      608:      608: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
      608:      608: 1178:/*EOF*/
     1123:     1123: 1179:/*EOF*/
      515:      515: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
      608:      608: 1183:/*EOF*/
     1322:     1322: 1184:/*EOF*/
      714:      714: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
      608:      608: 1188:/*EOF*/
     1322:     1322: 1189:/*EOF*/
      714:      714: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
      608:      608: 1193:/*EOF*/
      608:      608: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
      608:      608: 1198:/*EOF*/
      620:      620: 1199:/*EOF*/
       12:       12: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
      608:      608: 1203:/*EOF*/
      608:      608: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
      608:      608: 1208:/*EOF*/
      608:      608: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
      608:      608: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
      608:      608: 1213:/*EOF*/
      608:      608: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
      608:      608: 1218:/*EOF*/
     1216:     1216: 1219:/*EOF*/
      608:      608: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
      608:      608: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
      608:      608: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
      608:      608: 1230:/*EOF*/

src/compiler/nir/.libs/nir_worklist.c.gcov

        -:        -:    0:Source:nir/nir_worklist.c
        -:        -:    0:Graph:nir_worklist.gcno
        -:        -:    0:Data:nir_worklist.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        6:        6:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        6:        6:   34:/*EOF*/
        6:        6:   35:/*EOF*/
        6:        6:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        6:        6:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        6:        6:   40:/*EOF*/
        6:        6:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        6:        6:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        6:        6:   46:/*EOF*/
        6:        6:   47:/*EOF*/
        6:        6:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       67:       99:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       67:       99:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       67:       99:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       67:       99:   67:/*EOF*/
        6:        6:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       61:       93:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       67:       99:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       67:       99:   74:/*EOF*/
       67:       99:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       91:      157:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       91:      157:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       91:      157:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       91:      157:   93:/*EOF*/
       91:      157:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       91:      157:   96:/*EOF*/
       91:      157:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       85:      147:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       85:      147:  104:/*EOF*/
       61:       89:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       24:       58:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       24:       58:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       24:       58:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       24:       58:  113:/*EOF*/
       24:       58:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/

src/compiler/nir/.libs/nir_worklist.h.gcov

        -:        -:    0:Source:nir/nir_worklist.h
        -:        -:    0:Graph:nir_liveness.gcno
        -:        -:    0:Data:nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       97:      163:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       97:      163:   71:/*EOF*/

src/compiler/nir/.libs/u_math.h.gcov

        -:        -:    0:Source:../../src/gallium/auxiliary/util/u_math.h
        -:        -:    0:Graph:nir_validate.gcno
        -:        -:    0:Data:nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
     9379:     9627:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
     9379:     9627:  484:/*EOF*/

src/compiler/nir/nir.c.gcov

        -:        -:    0:Source:nir/nir.c
        -:        -:    0:Graph:.libs/nir.gcno
        -:        -:    0:Data:.libs/nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
       10:       10:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       10:       10:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       10:       10:   40:/*EOF*/
       10:       10:   41:/*EOF*/
       10:       10:   42:/*EOF*/
       10:       10:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       10:       10:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       10:       10:   47:/*EOF*/
        -:        -:   48:/*EOF*/
       10:       10:   49:/*EOF*/
       10:       10:   50:/*EOF*/
       10:       10:   51:/*EOF*/
       10:       10:   52:/*EOF*/
       10:       10:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       10:       10:   55:/*EOF*/
       10:       10:   56:/*EOF*/
       10:       10:   57:/*EOF*/
       10:       10:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       10:       10:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       10:       10:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       28:       28:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       28:       28:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       28:       28:   70:/*EOF*/
       28:       28:   71:/*EOF*/
       28:       28:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       28:       28:   74:/*EOF*/
       28:       28:   75:/*EOF*/
       28:       28:   76:/*EOF*/
       28:       28:   77:/*EOF*/
       28:       28:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       28:       28:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       28:       28:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       28:       28:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       28:       28:   98:/*EOF*/
       28:       28:   99:/*EOF*/
       28:       28:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       28:       28:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       13:       13:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       13:       13:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        6:        6:  132:/*EOF*/
        6:        6:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        4:        4:  136:/*EOF*/
        4:        4:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        3:        3:  141:/*EOF*/
        3:        3:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       13:       13:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        5:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        1:        1:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        5:        5:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        5:        5:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       34:       36:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       34:       36:  180:/*EOF*/
       34:       36:  181:/*EOF*/
       34:       36:  182:/*EOF*/
       34:       36:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       34:       36:  185:/*EOF*/
        -:        -:  186:/*EOF*/
       34:       36:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
       10:       10:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       10:       10:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       10:       10:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       10:       10:  197:/*EOF*/
       10:       10:  198:/*EOF*/
       10:       10:  199:/*EOF*/
       10:       10:  200:/*EOF*/
       10:       10:  201:/*EOF*/
       10:       10:  202:/*EOF*/
        -:        -:  203:/*EOF*/
       10:       10:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
      215:      235:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      215:      235:  209:/*EOF*/
      215:      235:  210:/*EOF*/
      212:      232:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        3:        3:  213:/*EOF*/
        3:        3:  214:/*EOF*/
        3:        3:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        3:        3:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      215:      235:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       79:      111:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       79:      111:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       79:      111:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       79:      111:  231:/*EOF*/
       79:      111:  232:/*EOF*/
       79:      111:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       79:      111:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       79:      111:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      146:      166:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      146:      166:  245:/*EOF*/
      146:      166:  246:/*EOF*/
      146:      166:  247:/*EOF*/
      730:      830:  248:/*EOF*/
      584:      664:  249:/*EOF*/
      146:      166:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        2:        2:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        2:        2:  256:/*EOF*/
        2:        2:  257:/*EOF*/
        2:        2:  258:/*EOF*/
        2:        2:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      257:      301:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      257:      301:  265:/*EOF*/
      257:      301:  266:/*EOF*/
      257:      301:  267:/*EOF*/
      257:      301:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       10:       10:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       10:       10:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       10:       10:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       10:       10:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       10:       10:  279:/*EOF*/
       10:       10:  280:/*EOF*/
       10:       10:  281:/*EOF*/
       10:       10:  282:/*EOF*/
       10:       10:  283:/*EOF*/
       10:       10:  284:/*EOF*/
       10:       10:  285:/*EOF*/
       10:       10:  286:/*EOF*/
       10:       10:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       10:       10:  290:/*EOF*/
       10:       10:  291:/*EOF*/
       10:       10:  292:/*EOF*/
       10:       10:  293:/*EOF*/
       10:       10:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       10:       10:  298:/*EOF*/
       10:       10:  299:/*EOF*/
       10:       10:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        5:        5:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        5:        5:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        5:        5:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        5:        5:  310:/*EOF*/
        5:        5:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        5:        5:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        5:        5:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        5:        5:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        5:        5:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        5:        5:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      204:      236:  337:/*EOF*/
        -:        -:  338:/*EOF*/
      204:      236:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      204:      236:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      204:      236:  343:/*EOF*/
      204:      236:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      204:      236:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
      204:      236:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
      204:      236:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      204:      236:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
     1483:     1617:  364:/*EOF*/
        -:        -:  365:/*EOF*/
     1483:     1617:  366:/*EOF*/
     1483:     1617:  367:/*EOF*/
     1483:     1617:  368:/*EOF*/
     1483:     1617:  369:/*EOF*/
     1483:     1617:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
       38:       46:  373:/*EOF*/
        -:        -:  374:/*EOF*/
       38:       46:  375:/*EOF*/
        -:        -:  376:/*EOF*/
       38:       46:  377:/*EOF*/
       38:       46:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       38:       46:  380:/*EOF*/
       38:       46:  381:/*EOF*/
       38:       46:  382:/*EOF*/
       38:       46:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       38:       46:  385:/*EOF*/
       38:       46:  386:/*EOF*/
       38:       46:  387:/*EOF*/
       38:       46:  388:/*EOF*/
        -:        -:  389:/*EOF*/
       38:       46:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        5:        9:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        5:        9:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        5:        9:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        5:        9:  400:/*EOF*/
        5:        9:  401:/*EOF*/
        5:        9:  402:/*EOF*/
        5:        9:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        5:        9:  405:/*EOF*/
        5:        9:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        5:        9:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
     1578:     1722:  412:/*EOF*/
        -:        -:  413:/*EOF*/
     1578:     1722:  414:/*EOF*/
     1578:     1722:  415:/*EOF*/
     1578:     1722:  416:/*EOF*/
     1578:     1722:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     1126:     1236:  420:/*EOF*/
        -:        -:  421:/*EOF*/
     1126:     1236:  422:/*EOF*/
     1126:     1236:  423:/*EOF*/
     1126:     1236:  424:/*EOF*/
     1126:     1236:  425:/*EOF*/
     1126:     1236:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      824:      892:  429:/*EOF*/
        -:        -:  430:/*EOF*/
      824:      892:  431:/*EOF*/
      824:      892:  432:/*EOF*/
      824:      892:  433:/*EOF*/
      824:      892:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     1236:     1348:  437:/*EOF*/
        -:        -:  438:/*EOF*/
     1236:     1348:  439:/*EOF*/
     1236:     1348:  440:/*EOF*/
     1236:     1348:  441:/*EOF*/
     1236:     1348:  442:/*EOF*/
     1236:     1348:  443:/*EOF*/
     1236:     1348:  444:/*EOF*/
     1236:     1348:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
      824:      892:  448:/*EOF*/
        -:        -:  449:/*EOF*/
      824:      892:  450:/*EOF*/
        -:        -:  451:/*EOF*/
      824:      892:  452:/*EOF*/
      824:      892:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
      824:      892:  456:/*EOF*/
      824:      892:  457:/*EOF*/
      824:      892:  458:/*EOF*/
     2060:     2240:  459:/*EOF*/
     1236:     1348:  460:/*EOF*/
        -:        -:  461:/*EOF*/
      824:      892:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        9:       17:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        9:       17:  468:/*EOF*/
        9:       17:  469:/*EOF*/
        9:       17:  470:/*EOF*/
        9:       17:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
      179:      197:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      179:      197:  478:/*EOF*/
      179:      197:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      179:      197:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      179:      197:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
      388:      416:  487:/*EOF*/
        -:        -:  488:/*EOF*/
      388:      416:  489:/*EOF*/
        -:        -:  490:/*EOF*/
      388:      416:  491:/*EOF*/
      388:      416:  492:/*EOF*/
      388:      416:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      388:      416:  495:/*EOF*/
      388:      416:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      388:      416:  498:/*EOF*/
      212:      238:  499:/*EOF*/
        -:        -:  500:/*EOF*/
      569:      611:  501:/*EOF*/
      181:      195:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      388:      416:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
       90:      106:  560:/*EOF*/
        -:        -:  561:/*EOF*/
       90:      106:  562:/*EOF*/
       90:      106:  563:/*EOF*/
        -:        -:  564:/*EOF*/
       90:      106:  565:/*EOF*/
       90:      106:  566:/*EOF*/
       90:      106:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       27:       33:  571:/*EOF*/
        -:        -:  572:/*EOF*/
       27:       33:  573:/*EOF*/
       27:       33:  574:/*EOF*/
        -:        -:  575:/*EOF*/
       27:       33:  576:/*EOF*/
        -:        -:  577:/*EOF*/
       27:       33:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
       61:       61:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
       61:       61:  586:/*EOF*/
       61:       61:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       61:       61:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       61:       61:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      402:      418:  595:/*EOF*/
        -:        -:  596:/*EOF*/
      402:      418:  597:/*EOF*/
      402:      418:  598:/*EOF*/
      402:      418:  599:/*EOF*/
      402:      418:  600:/*EOF*/
      402:      418:  601:/*EOF*/
      402:      418:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
       28:       28:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       28:       28:  608:/*EOF*/
       28:       28:  609:/*EOF*/
       28:       28:  610:/*EOF*/
       28:       28:  611:/*EOF*/
       28:       28:  612:/*EOF*/
       28:       28:  613:/*EOF*/
       28:       28:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
      162:      164:  628:/*EOF*/
        -:        -:  629:/*EOF*/
      162:      164:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
      162:      164:  633:/*EOF*/
      162:      164:  634:/*EOF*/
      162:      164:  635:/*EOF*/
        6:        6:  636:/*EOF*/
      162:      164:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        6:        6:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        6:        6:  643:/*EOF*/
        6:        6:  644:/*EOF*/
        6:        6:  645:/*EOF*/
        6:        6:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        6:        6:  649:/*EOF*/
        6:        6:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        6:        6:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        6:        6:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        6:        6:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        6:        6:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        6:        6:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
       37:       39:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       37:       39:  699:/*EOF*/
       37:       39:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
       37:       39:  708:/*EOF*/
       37:       39:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
       37:       39:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
       37:       39:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
       37:       39:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
       37:       39:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       37:       39:  799:/*EOF*/
       37:       39:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
       37:       39:  808:/*EOF*/
        -:        -:  809:/*EOF*/
       37:       39:  810:/*EOF*/
       37:       39:  811:/*EOF*/
        -:        -:  812:/*EOF*/
       37:       39:  813:/*EOF*/
       37:       39:  814:/*EOF*/
       74:       78:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
       37:       39:  841:/*EOF*/
       37:       39:  842:/*EOF*/
       37:       39:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
       37:       39:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       37:       39:  854:/*EOF*/
       37:       39:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
       37:       39:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
     2034:     2882:  864:/*EOF*/
        -:        -:  865:/*EOF*/
     7671:    11506:  866:/*EOF*/
     3603:     5742:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
     2034:     2882:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
       46:       46:  877:/*EOF*/
        -:        -:  878:/*EOF*/
       46:       46:  879:/*EOF*/
        -:        -:  880:/*EOF*/
       23:       23:  881:/*EOF*/
        -:        -:  882:/*EOF*/
       23:       23:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        1:        1:  885:/*EOF*/
        -:        -:  886:/*EOF*/
       23:       23:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       23:       23:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
       23:       23:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
       23:       23:  923:/*EOF*/
       23:       23:  924:/*EOF*/
        -:        -:  925:/*EOF*/
       23:       23:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
     1527:     1669:  930:/*EOF*/
        -:        -:  931:/*EOF*/
     1527:     1669:  932:/*EOF*/
        -:        -:  933:/*EOF*/
     1527:     1669:  934:/*EOF*/
     3054:     3338:  935:/*EOF*/
     3054:     3338:  936:/*EOF*/
        -:        -:  937:/*EOF*/
     1527:     1669:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
     1292:     1420:  942:/*EOF*/
        -:        -:  943:/*EOF*/
     1292:     1420:  944:/*EOF*/
        -:        -:  945:/*EOF*/
     1292:     1420:  946:/*EOF*/
     1292:     1420:  947:/*EOF*/
     1292:     1420:  948:/*EOF*/
        -:        -:  949:/*EOF*/
     1292:     1420:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
     1292:     1420:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
     1126:     1236:  957:/*EOF*/
        -:        -:  958:/*EOF*/
     1126:     1236:  959:/*EOF*/
        -:        -:  960:/*EOF*/
     1126:     1236:  961:/*EOF*/
       74:       74:  962:/*EOF*/
       74:       74:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
     1126:     1236:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
     1578:     1722:  970:/*EOF*/
        -:        -:  971:/*EOF*/
     1578:     1722:  972:/*EOF*/
     1578:     1722:  973:/*EOF*/
     1578:     1722:  974:/*EOF*/
     1578:     1722:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
     1578:     1722:  978:/*EOF*/
        -:        -:  979:/*EOF*/
     1578:     1722:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
      178:      194:  983:/*EOF*/
        3:        7:  984:/*EOF*/
        -:        -:  985:/*EOF*/
      178:      194:  986:/*EOF*/
      178:      194:  987:/*EOF*/
      178:      194:  988:/*EOF*/
      178:      194:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
      382:      426:  992:/*EOF*/
      382:      426:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
      382:      426:  996:/*EOF*/
      382:      426:  997:/*EOF*/
      382:      426:  998:/*EOF*/
      382:      426:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      614:      648: 1002:/*EOF*/
      614:      648: 1003:/*EOF*/
      614:      648: 1004:/*EOF*/
      614:      648: 1005:/*EOF*/
      614:      648: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
      404:      454: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
      404:      454: 1012:/*EOF*/
        2:        2: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
      404:      454: 1015:/*EOF*/
      404:      454: 1016:/*EOF*/
      404:      454: 1017:/*EOF*/
      404:      454: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
     1578:     1722: 1021:/*EOF*/
        9:       17: 1022:/*EOF*/
     1578:     1722: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
     5555:     6186: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
     5555:     6186: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
     1262:     1386: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
     1262:     1386: 1036:/*EOF*/
     1258:     1382: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
     1262:     1386: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
      951:     1047: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
      951:     1047: 1047:/*EOF*/
       75:      107: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
      951:     1047: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
     1274:     1368: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
     1274:     1368: 1056:/*EOF*/
     1274:     1368: 1057:/*EOF*/
     1274:     1368: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
     1274:     1368: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
     1274:     1368: 1062:/*EOF*/
     1274:     1368: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
     1274:     1368: 1065:/*EOF*/
        1:        1: 1066:/*EOF*/
        1:        1: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
     1274:     1368: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        2:        2: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        2:        2: 1076:/*EOF*/
       17:       17: 1077:/*EOF*/
       15:       15: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        2:        2: 1080:/*EOF*/
        2:        2: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    25101:    27517: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    25101:    27517: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
     9043:    10001: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
     9043:    10001: 1103:/*EOF*/
     6483:     7401: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
     2560:     2600: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
     5678:     8194: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
     5678:     8194: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
      272:      334: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
      582:      824: 1126:/*EOF*/
      310:      490: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
      272:      334: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
    41631:    47742: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
    41631:    47742: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    25101:    27517: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
     9043:    10001: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
     5678:     8194: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
      272:      334: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
     1537:     1696: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
     1537:     1696: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    28082:    33104: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    28082:    33104: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    28082:    33104: 1174:/*EOF*/
    27969:    32991: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
      113:      113: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    35239:    41625: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    35239:    41625: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    29734:    34731: 1189:/*EOF*/
    29734:    34731: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
     3403:     3708: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
     1199:     1245: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
      903:     1941: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
     8813:     9717: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
     8813:     9717: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
     8813:     9717: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
     8813:     9717: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
      331:      331: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
      331:      331: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
      331:      331: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
     1198:     1270: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
     1198:     1270: 1227:/*EOF*/
     3925:     4141: 1228:/*EOF*/
     1529:     1601: 1229:/*EOF*/
      331:      331: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
     1529:     1601: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
     1198:     1270: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
     3657:     3854: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    10183:    10732: 1243:/*EOF*/
     6526:     6878: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
     3657:     3854: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
     1449:     1549: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
     1449:     1549: 1275:/*EOF*/
     2165:     2297: 1276:/*EOF*/
      716:      748: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
     1449:     1549: 1281:/*EOF*/
     1449:     1549: 1282:/*EOF*/
     2647:     2819: 1283:/*EOF*/
     1198:     1270: 1284:/*EOF*/
    #####:    #####: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
     1449:     1549: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
      762:      994: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
     2212:     2892: 1294:/*EOF*/
     1450:     1898: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
      762:      994: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
      104:      127: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
      225:      320: 1306:/*EOF*/
      121:      193: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
      104:      127: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
     5524:     6121: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
     5524:     6121: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
     5524:     6121: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
     5524:     6121: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
     7084:     7845: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
     7084:     7845: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
     3657:     3854: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
     3657:     3854: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
     1449:     1549: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
     1449:     1549: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
      720:      761: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
      762:      994: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
      762:      994: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
      104:      127: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
      104:      127: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
      392:      560: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
     6692:     7285: 1371:/*EOF*/
     6692:     7285: 1372:/*EOF*/
     6692:     7285: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
      113:      149: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
      113:      149: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
      113:      149: 1382:/*EOF*/
       71:      103: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
       42:       46: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
       42:       46: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
    #####:    #####: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
    #####:    #####: 1409:/*EOF*/
    #####:    #####: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
     1431:     1600: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
     2862:     3200: 1422:/*EOF*/
     1431:     1600: 1423:/*EOF*/
       45:       69: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
     1386:     1531: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
     1431:     1600: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
     1431:     1600: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
     2862:     3200: 1433:/*EOF*/
     1431:     1600: 1434:/*EOF*/
       10:       10: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
     1421:     1590: 1437:/*EOF*/
     1404:     1561: 1438:/*EOF*/
     1404:     1561: 1439:/*EOF*/
     1306:     1427: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
       98:      134: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
       17:       29: 1444:/*EOF*/
       17:       29: 1445:/*EOF*/
       17:       29: 1446:/*EOF*/
       17:       27: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
    #####:        2: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
     1431:     1600: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
     1414:     1571: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
     1414:     1571: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
     1414:     1571: 1459:/*EOF*/
     1414:     1571: 1460:/*EOF*/
     1414:     1571: 1461:/*EOF*/
     1414:     1571: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
       17:       29: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
       17:       29: 1479:/*EOF*/
       17:       29: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
       17:       29: 1482:/*EOF*/
       17:       29: 1483:/*EOF*/
       17:       29: 1484:/*EOF*/
       17:       29: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
       77:      109: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
       77:      109: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
       77:      109: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
       77:      109: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
       77:      109: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
       77:      109: 1504:/*EOF*/
       77:      109: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
       77:      109: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
       77:      109: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
     1387:     1539: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
     1387:     1539: 1517:/*EOF*/
     1387:     1539: 1518:/*EOF*/
     1387:     1539: 1519:/*EOF*/
     1387:     1539: 1520:/*EOF*/
     1387:     1539: 1521:/*EOF*/
     1387:     1539: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
     1387:     1539: 1524:/*EOF*/
       95:      119: 1525:/*EOF*/
       95:      119: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
       95:      119: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
     1292:     1420: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
     1387:     1539: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
     1147:     1281: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
     1147:     1281: 1540:/*EOF*/
     1147:     1281: 1541:/*EOF*/
     1147:     1281: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
      531:      598: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
      531:      598: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
     1260:     1410: 1549:/*EOF*/
      729:      812: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
      546:      621: 1552:/*EOF*/
       15:       23: 1553:/*EOF*/
      531:      598: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
      121:      133: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
      121:      133: 1609:/*EOF*/
      256:      280: 1610:/*EOF*/
      152:      164: 1611:/*EOF*/
      135:      147: 1612:/*EOF*/
      135:      147: 1613:/*EOF*/
      135:      147: 1614:/*EOF*/
      135:      147: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
      675:      735: 1617:/*EOF*/
      540:      588: 1618:/*EOF*/
      324:      360: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
      216:      228: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
       17:       17: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
      104:      116: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
    15949:    23147: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    15949:    23147: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
       32:       32: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    15917:    23115: 1642:/*EOF*/
    15917:    23115: 1643:/*EOF*/
     5089:     7775: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    10828:    15340: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
    10828:    15340: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
     8668:    12288: 1651:/*EOF*/
     8668:    12288: 1652:/*EOF*/
     4334:     6144: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
     4334:     6144: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
     5190:     7876: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
     1304:     1320: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
      310:      454: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
      310:      454: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
      310:      454: 1678:/*EOF*/
      310:      454: 1679:/*EOF*/
       99:      153: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
      211:      301: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
      211:      301: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
      160:      232: 1687:/*EOF*/
      160:      232: 1688:/*EOF*/
       80:      116: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
       80:      116: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
       99:      153: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
       32:       32: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
     5190:     7876: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
     5190:     7876: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
    #####:    #####: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
     4334:     6144: 1715:/*EOF*/
     4334:     6144: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
      856:     1732: 1720:/*EOF*/
      856:     1732: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
    #####:    #####: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
       99:      153: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
       99:      153: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
       80:      116: 1742:/*EOF*/
       80:      116: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
       19:       37: 1747:/*EOF*/
       19:       37: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
      308:      388: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
      308:      388: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
      308:      388: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
      308:      388: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
     1490:     2132: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
     1490:     2132: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
     1490:     2132: 1776:/*EOF*/
     1011:     1413: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
      479:      719: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
      479:      719: 1781:/*EOF*/
       81:      159: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
      398:      560: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
      203:      299: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
      203:      299: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
      203:      299: 1793:/*EOF*/
      186:      266: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
       17:       33: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
       17:       33: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
       17:       33: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
       14:       14: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
       14:       14: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
       14:       14: 1809:/*EOF*/
    #####:    #####: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
      235:      315: 1812:/*EOF*/
      221:      301: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
       14:       14: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
      952:     1046: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
      952:     1046: 1822:/*EOF*/
      952:     1046: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
      952:     1046: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
       21:       21: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
       21:       21: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
      289:      417: 1837:/*EOF*/
     1276:     1530: 1838:/*EOF*/
     1008:     1134: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
       21:       21: 1842:/*EOF*/
       21:       21: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        2:        2: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        2:        2: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        4:        4: 1854:/*EOF*/
       24:       24: 1855:/*EOF*/
       22:       22: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        2:        2: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
    #####:    #####: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
    #####:    #####: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
    #####:    #####: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
    #####:    #####: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
    #####:    #####: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
    #####:    #####: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
    #####:    #####: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
    #####:    #####: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/

src/compiler/nir/nir_clone.c.gcov

        -:        -:    0:Source:nir/nir_clone.c
        -:        -:    0:Graph:.libs/nir_clone.gcno
        -:        -:    0:Data:.libs/nir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       13:       13:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       13:       13:   59:/*EOF*/
       13:       13:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       13:       13:   62:/*EOF*/
        8:        8:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        5:        5:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       13:       13:   69:/*EOF*/
       13:       13:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        5:        5:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        5:        5:   75:/*EOF*/
        5:        5:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      653:      731:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      653:      731:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      653:      731:   86:/*EOF*/
        3:        3:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      650:      728:   89:/*EOF*/
      650:      728:   90:/*EOF*/
       82:       82:   91:/*EOF*/
       82:       82:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      568:      646:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      382:      438:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      382:      438:  101:/*EOF*/
      382:      438:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      567:      641:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      567:      641:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        5:        5:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        5:        5:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       63:       63:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       63:       63:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       18:       22:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       18:       22:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       16:       16:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       16:       16:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       16:       16:  151:/*EOF*/
       16:       16:  152:/*EOF*/
       16:       16:  153:/*EOF*/
       16:       16:  154:/*EOF*/
       16:       16:  155:/*EOF*/
       16:       16:  156:/*EOF*/
       16:       16:  157:/*EOF*/
       16:       16:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       16:       16:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       16:       16:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       16:       16:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       16:       16:  170:/*EOF*/
       16:       16:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       16:       16:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       35:       35:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
       35:       35:  181:/*EOF*/
       51:       51:  182:/*EOF*/
       16:       16:  183:/*EOF*/
       16:       16:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       35:       35:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       10:       10:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       10:       10:  218:/*EOF*/
       10:       10:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       10:       10:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
      467:      509:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
      467:      509:  229:/*EOF*/
      467:      509:  230:/*EOF*/
      435:      477:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       32:       32:  233:/*EOF*/
       32:       32:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       32:       32:  238:/*EOF*/
        -:        -:  239:/*EOF*/
      467:      509:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      295:      331:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      295:      331:  246:/*EOF*/
      295:      331:  247:/*EOF*/
      528:      600:  248:/*EOF*/
      264:      300:  249:/*EOF*/
      264:      300:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       31:       31:  252:/*EOF*/
       31:       31:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       31:       31:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      295:      331:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       18:       22:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       18:       22:  268:/*EOF*/
       18:       22:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       18:       22:  271:/*EOF*/
        3:        3:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       18:       22:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        3:        3:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        3:        3:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        3:        3:  284:/*EOF*/
        3:        3:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        3:        3:  290:/*EOF*/
        3:        3:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        3:        3:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        3:        3:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        3:        3:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        3:        3:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      231:      253:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      231:      253:  331:/*EOF*/
      231:      253:  332:/*EOF*/
        -:        -:  333:/*EOF*/
      231:      253:  334:/*EOF*/
      231:      253:  335:/*EOF*/
      231:      253:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      661:      719:  338:/*EOF*/
      430:      466:  339:/*EOF*/
      430:      466:  340:/*EOF*/
      430:      466:  341:/*EOF*/
      430:      466:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      231:      253:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       37:       43:  350:/*EOF*/
        -:        -:  351:/*EOF*/
       37:       43:  352:/*EOF*/
       37:       43:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       37:       43:  355:/*EOF*/
       37:       43:  356:/*EOF*/
        -:        -:  357:/*EOF*/
       37:       43:  358:/*EOF*/
       31:       37:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       37:       43:  361:/*EOF*/
       37:       43:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       55:       65:  364:/*EOF*/
       18:       22:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
       62:       70:  369:/*EOF*/
       25:       27:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       37:       43:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       42:       46:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       42:       46:  378:/*EOF*/
       42:       46:  379:/*EOF*/
       42:       46:  380:/*EOF*/
        -:        -:  381:/*EOF*/
       42:       46:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       42:       46:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       42:       46:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        2:        2:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        2:        2:  392:/*EOF*/
        2:        2:  393:/*EOF*/
        2:        2:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        2:        2:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        2:        2:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       33:       41:  433:/*EOF*/
        -:        -:  434:/*EOF*/
       33:       41:  435:/*EOF*/
        -:        -:  436:/*EOF*/
       33:       41:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       33:       41:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       99:      123:  453:/*EOF*/
       66:       82:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
       66:       82:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
       66:       82:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       66:       82:  468:/*EOF*/
        -:        -:  469:/*EOF*/
       66:       82:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
       33:       41:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        4:        8:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        4:        8:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        4:        8:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      316:      352:  500:/*EOF*/
        -:        -:  501:/*EOF*/
      316:      352:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      231:      253:  504:/*EOF*/
        -:        -:  505:/*EOF*/
       37:       43:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       42:       46:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        2:        2:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        4:        8:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
       53:       69:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
       53:       69:  534:/*EOF*/
        -:        -:  535:/*EOF*/
       53:       69:  536:/*EOF*/
       53:       69:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
       53:       69:  540:/*EOF*/
        -:        -:  541:/*EOF*/
      402:      462:  542:/*EOF*/
      349:      393:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
       33:       41:  549:/*EOF*/
        -:        -:  550:/*EOF*/
      316:      352:  551:/*EOF*/
      316:      352:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       53:       69:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
       12:       16:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       12:       16:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       12:       16:  568:/*EOF*/
        -:        -:  569:/*EOF*/
       12:       16:  570:/*EOF*/
        -:        -:  571:/*EOF*/
       12:       16:  572:/*EOF*/
       12:       16:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       12:       16:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        2:        4:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        2:        4:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        2:        4:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        2:        4:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        2:        4:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       39:       49:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      106:      138:  595:/*EOF*/
       67:       89:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       53:       69:  598:/*EOF*/
       53:       69:  599:/*EOF*/
        -:        -:  600:/*EOF*/
       12:       16:  601:/*EOF*/
       12:       16:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        2:        4:  604:/*EOF*/
        2:        4:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
       39:       49:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
       13:       13:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       79:       95:  620:/*EOF*/
       66:       82:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
       66:       82:  624:/*EOF*/
        -:        -:  625:/*EOF*/
       66:       82:  626:/*EOF*/
       66:       82:  627:/*EOF*/
       66:       82:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
       13:       13:  634:/*EOF*/
       13:       13:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        8:        8:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        8:        8:  641:/*EOF*/
        8:        8:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        8:        8:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        8:        8:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        8:        8:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        8:        8:  656:/*EOF*/
        8:        8:  657:/*EOF*/
        8:        8:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        8:        8:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        8:        8:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        5:        5:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        5:        5:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        5:        5:  670:/*EOF*/
        5:        5:  671:/*EOF*/
        5:        5:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        5:        5:  674:/*EOF*/
        5:        5:  675:/*EOF*/
        5:        5:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        5:        5:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        5:        5:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        5:        5:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        5:        5:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        5:        5:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        5:        5:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        5:        5:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        5:        5:  713:/*EOF*/
        5:        5:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        5:        5:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        5:        5:  719:/*EOF*/
        5:        5:  720:/*EOF*/
        5:        5:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        5:        5:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        5:        5:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        5:        5:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        5:        5:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        5:        5:  740:/*EOF*/
        5:        5:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        5:        5:  743:/*EOF*/
        5:        5:  744:/*EOF*/
        5:        5:  745:/*EOF*/
        5:        5:  746:/*EOF*/
        5:        5:  747:/*EOF*/
        5:        5:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
       10:       10:  751:/*EOF*/
        5:        5:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
       10:       10:  759:/*EOF*/
        5:        5:  760:/*EOF*/
        5:        5:  761:/*EOF*/
        5:        5:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        5:        5:  765:/*EOF*/
        5:        5:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        5:        5:  768:/*EOF*/
        5:        5:  769:/*EOF*/
        5:        5:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        5:        5:  773:/*EOF*/
        5:        5:  774:/*EOF*/
        5:        5:  775:/*EOF*/
        5:        5:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        5:        5:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        5:        5:  780:/*EOF*/

src/compiler/nir/nir_constant_expressions.c.gcov

        -:        -:    0:Source:nir/nir_constant_expressions.c
        -:        -:    0:Graph:.libs/nir_constant_expressions.gcno
        -:        -:    0:Data:.libs/nir_constant_expressions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
    #####:    #####:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
    #####:    #####:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
    #####:    #####:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
        -:        -:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
    #####:    #####: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
    #####:    #####: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
    #####:    #####: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
    #####:    #####: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
    #####:    #####: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
    #####:    #####: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
    #####:    #####: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
    #####:    #####: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
    #####:    #####: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
    #####:    #####: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
    #####:    #####: 1491:/*EOF*/
    #####:    #####: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
    #####:    #####: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
    #####:    #####: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
    #####:    #####: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
    #####:    #####: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
    #####:    #####: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
    #####:    #####: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
    #####:    #####: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
    #####:    #####: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
    #####:    #####: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
    #####:    #####: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
    #####:    #####: 1673:/*EOF*/
    #####:    #####: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
    #####:    #####: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
    #####:    #####: 1694:/*EOF*/
    #####:    #####: 1695:/*EOF*/
    #####:    #####: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
    #####:    #####: 1699:/*EOF*/
    #####:    #####: 1700:/*EOF*/
    #####:    #####: 1701:/*EOF*/
    #####:    #####: 1702:/*EOF*/
    #####:    #####: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
    #####:    #####: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
    #####:    #####: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
    #####:    #####: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
    #####:    #####: 1735:/*EOF*/
    #####:    #####: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
    #####:    #####: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
    #####:    #####: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
    #####:    #####: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
    #####:    #####: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
    #####:    #####: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
    #####:    #####: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
    #####:    #####: 1861:/*EOF*/
    #####:    #####: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
    #####:    #####: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
    #####:    #####: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
    #####:    #####: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
    #####:    #####: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
    #####:    #####: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
    #####:    #####: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
    #####:    #####: 1937:/*EOF*/
    #####:    #####: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
    #####:    #####: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
    #####:    #####: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
    #####:    #####: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
    #####:    #####: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
    #####:    #####: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
    #####:    #####: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
    #####:    #####: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
    #####:    #####: 2081:/*EOF*/
    #####:    #####: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
    #####:    #####: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
    #####:    #####: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
    #####:    #####: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
    #####:    #####: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
    #####:    #####: 2117:/*EOF*/
    #####:    #####: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
    #####:    #####: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
    #####:    #####: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
    #####:    #####: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
    #####:    #####: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
    #####:    #####: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
    #####:    #####: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
    #####:    #####: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
    #####:    #####: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
    #####:    #####: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
    #####:    #####: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
    #####:    #####: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
    #####:    #####: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
    #####:    #####: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
    #####:    #####: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
    #####:    #####: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
    #####:    #####: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
    #####:    #####: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
    #####:    #####: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
    #####:    #####: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
    #####:    #####: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
    #####:    #####: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
    #####:    #####: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
    #####:    #####: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
    #####:    #####: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
    #####:    #####: 2433:/*EOF*/
    #####:    #####: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
    #####:    #####: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
    #####:    #####: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
    #####:    #####: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
    #####:    #####: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
    #####:    #####: 2463:/*EOF*/
    #####:    #####: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
    #####:    #####: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
    #####:    #####: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
    #####:    #####: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
    #####:    #####: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
    #####:    #####: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
    #####:    #####: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
    #####:    #####: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
    #####:    #####: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
    #####:    #####: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
    #####:    #####: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
    #####:    #####: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
    #####:    #####: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
    #####:    #####: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
    #####:    #####: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
    #####:    #####: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
    #####:    #####: 2588:/*EOF*/
    #####:    #####: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
    #####:    #####: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
    #####:    #####: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
    #####:    #####: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
    #####:    #####: 2603:/*EOF*/
    #####:    #####: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
    #####:    #####: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
    #####:    #####: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
    #####:    #####: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
    #####:    #####: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
    #####:    #####: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
    #####:    #####: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
    #####:    #####: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
    #####:    #####: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
    #####:    #####: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
    #####:    #####: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
    #####:    #####: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
    #####:    #####: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
    #####:    #####: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
    #####:    #####: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
    #####:    #####: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
    #####:    #####: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
    #####:    #####: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
    #####:    #####: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
    #####:    #####: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
    #####:    #####: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
    #####:    #####: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
    #####:    #####: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
    #####:    #####: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
    #####:    #####: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
    #####:    #####: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
    #####:    #####: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
    #####:    #####: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
    #####:    #####: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
    #####:    #####: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
    #####:    #####: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
    #####:    #####: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
    #####:    #####: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
    #####:    #####: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
    #####:    #####: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
    #####:    #####: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
    #####:    #####: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
    #####:    #####: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
    #####:    #####: 2851:/*EOF*/
    #####:    #####: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
    #####:    #####: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
    #####:    #####: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
    #####:    #####: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
    #####:    #####: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
    #####:    #####: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
    #####:    #####: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
    #####:    #####: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
    #####:    #####: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    #####:    #####: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
    #####:    #####: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
    #####:    #####: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
    #####:    #####: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
    #####:    #####: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
    #####:    #####: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
    #####:    #####: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    #####:    #####: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
    #####:    #####: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
    #####:    #####: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
    #####:    #####: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
    #####:    #####: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
    #####:    #####: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
    #####:    #####: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
    #####:    #####: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
    #####:    #####: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
    #####:    #####: 3053:/*EOF*/
    #####:    #####: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
    #####:    #####: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
    #####:    #####: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
    #####:    #####: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
    #####:    #####: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
    #####:    #####: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
    #####:    #####: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
    #####:    #####: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
    #####:    #####: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
    #####:    #####: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
    #####:    #####: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
    #####:    #####: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
    #####:    #####: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
    #####:    #####: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
    #####:    #####: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
    #####:    #####: 3166:/*EOF*/
    #####:    #####: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
    #####:    #####: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
    #####:    #####: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
    #####:    #####: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
    #####:    #####: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
    #####:    #####: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
    #####:    #####: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
    #####:    #####: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
    #####:    #####: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
    #####:    #####: 3252:/*EOF*/
    #####:    #####: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
    #####:    #####: 3278:/*EOF*/
    #####:    #####: 3279:/*EOF*/
    #####:    #####: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
    #####:    #####: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
    #####:    #####: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
    #####:    #####: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
    #####:    #####: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
    #####:    #####: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
    #####:    #####: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
    #####:    #####: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
    #####:    #####: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
    #####:    #####: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
    #####:    #####: 3334:/*EOF*/
    #####:    #####: 3335:/*EOF*/
    #####:    #####: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
    #####:    #####: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
    #####:    #####: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
    #####:    #####: 3374:/*EOF*/
    #####:    #####: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
    #####:    #####: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
    #####:    #####: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
    #####:    #####: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
    #####:    #####: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
    #####:    #####: 3403:/*EOF*/
    #####:    #####: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
    #####:    #####: 3407:/*EOF*/
    #####:    #####: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
    #####:    #####: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
    #####:    #####: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
    #####:    #####: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
    #####:    #####: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
    #####:    #####: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
    #####:    #####: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
    #####:    #####: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
    #####:    #####: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
    #####:    #####: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
    #####:    #####: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
    #####:    #####: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
    #####:    #####: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
    #####:    #####: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
    #####:    #####: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
    #####:    #####: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
    #####:    #####: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
    #####:    #####: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
    #####:    #####: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
    #####:    #####: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
    #####:    #####: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
    #####:    #####: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
    #####:    #####: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
    #####:    #####: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
    #####:    #####: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
    #####:    #####: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
    #####:    #####: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
    #####:    #####: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
    #####:    #####: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
    #####:    #####: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
    #####:    #####: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
    #####:    #####: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
    #####:    #####: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
    #####:    #####: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
    #####:    #####: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
    #####:    #####: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
    #####:    #####: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
    #####:    #####: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
    #####:    #####: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
    #####:    #####: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
    #####:    #####: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
    #####:    #####: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
    #####:    #####: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
    #####:    #####: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
    #####:    #####: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
    #####:    #####: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
    #####:    #####: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
    #####:    #####: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
    #####:    #####: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
    #####:    #####: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
    #####:    #####: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
    #####:    #####: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
    #####:    #####: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
    #####:    #####: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
    #####:    #####: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
    #####:    #####: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
    #####:    #####: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
    #####:    #####: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
    #####:    #####: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
    #####:    #####: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
    #####:    #####: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
    #####:    #####: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
    #####:    #####: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
    #####:    #####: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
    #####:    #####: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
    #####:    #####: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
    #####:    #####: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
    #####:    #####: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
    #####:    #####: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
    #####:    #####: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
    #####:    #####: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
    #####:    #####: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
    #####:    #####: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
    #####:    #####: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
    #####:    #####: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
    #####:    #####: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
    #####:    #####: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
    #####:    #####: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
    #####:    #####: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
    #####:    #####: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
    #####:    #####: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
    #####:    #####: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
    #####:    #####: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
    #####:    #####: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
    #####:    #####: 3989:/*EOF*/
    #####:    #####: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
    #####:    #####: 3996:/*EOF*/
    #####:    #####: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
    #####:    #####: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
    #####:    #####: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
    #####:    #####: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
    #####:    #####: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
    #####:    #####: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
    #####:    #####: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
    #####:    #####: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
    #####:    #####: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
    #####:    #####: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
    #####:    #####: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
    #####:    #####: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
    #####:    #####: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
    #####:    #####: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
    #####:    #####: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
    #####:    #####: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
    #####:    #####: 4139:/*EOF*/
    #####:    #####: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
    #####:    #####: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
    #####:    #####: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
    #####:    #####: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
    #####:    #####: 4182:/*EOF*/
    #####:    #####: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
    #####:    #####: 4186:/*EOF*/
    #####:    #####: 4187:/*EOF*/
    #####:    #####: 4188:/*EOF*/
    #####:    #####: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
    #####:    #####: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
    #####:    #####: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
    #####:    #####: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
    #####:    #####: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
    #####:    #####: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
    #####:    #####: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
    #####:    #####: 4233:/*EOF*/
    #####:    #####: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
    #####:    #####: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
    #####:    #####: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
    #####:    #####: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
    #####:    #####: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
    #####:    #####: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
    #####:    #####: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
    #####:    #####: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
    #####:    #####: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
    #####:    #####: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
    #####:    #####: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
    #####:    #####: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
    #####:    #####: 4304:/*EOF*/
    #####:    #####: 4305:/*EOF*/
    #####:    #####: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        -:        -: 4310:/*EOF*/
    #####:    #####: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
    #####:    #####: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
    #####:    #####: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
    #####:    #####: 4322:/*EOF*/
    #####:    #####: 4323:/*EOF*/
    #####:    #####: 4324:/*EOF*/
    #####:    #####: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
    #####:    #####: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
    #####:    #####: 4334:/*EOF*/
    #####:    #####: 4335:/*EOF*/
    #####:    #####: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
    #####:    #####: 4341:/*EOF*/
    #####:    #####: 4342:/*EOF*/
    #####:    #####: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
    #####:    #####: 4352:/*EOF*/
    #####:    #####: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
    #####:    #####: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
    #####:    #####: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
    #####:    #####: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
    #####:    #####: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
    #####:    #####: 4378:/*EOF*/
    #####:    #####: 4379:/*EOF*/
    #####:    #####: 4380:/*EOF*/
    #####:    #####: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
    #####:    #####: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
    #####:    #####: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
    #####:    #####: 4409:/*EOF*/
    #####:    #####: 4410:/*EOF*/
    #####:    #####: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
    #####:    #####: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
    #####:    #####: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
    #####:    #####: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
    #####:    #####: 4428:/*EOF*/
    #####:    #####: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
    #####:    #####: 4438:/*EOF*/
    #####:    #####: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
    #####:    #####: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
    #####:    #####: 4445:/*EOF*/
    #####:    #####: 4446:/*EOF*/
    #####:    #####: 4447:/*EOF*/
    #####:    #####: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
    #####:    #####: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
    #####:    #####: 4456:/*EOF*/
    #####:    #####: 4457:/*EOF*/
    #####:    #####: 4458:/*EOF*/
    #####:    #####: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
    #####:    #####: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
    #####:    #####: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
    #####:    #####: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
    #####:    #####: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
    #####:    #####: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
    #####:    #####: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
    #####:    #####: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
    #####:    #####: 4485:/*EOF*/
    #####:    #####: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
    #####:    #####: 4489:/*EOF*/
    #####:    #####: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
    #####:    #####: 4492:/*EOF*/
    #####:    #####: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
    #####:    #####: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
    #####:    #####: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
    #####:    #####: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
    #####:    #####: 4512:/*EOF*/
    #####:    #####: 4513:/*EOF*/
    #####:    #####: 4514:/*EOF*/
    #####:    #####: 4515:/*EOF*/
    #####:    #####: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
    #####:    #####: 4519:/*EOF*/
    #####:    #####: 4520:/*EOF*/
    #####:    #####: 4521:/*EOF*/
    #####:    #####: 4522:/*EOF*/
    #####:    #####: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
    #####:    #####: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
    #####:    #####: 4530:/*EOF*/
    #####:    #####: 4531:/*EOF*/
    #####:    #####: 4532:/*EOF*/
    #####:    #####: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
    #####:    #####: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
    #####:    #####: 4542:/*EOF*/
    #####:    #####: 4543:/*EOF*/
    #####:    #####: 4544:/*EOF*/
    #####:    #####: 4545:/*EOF*/
    #####:    #####: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
    #####:    #####: 4549:/*EOF*/
    #####:    #####: 4550:/*EOF*/
    #####:    #####: 4551:/*EOF*/
    #####:    #####: 4552:/*EOF*/
    #####:    #####: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
    #####:    #####: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
    #####:    #####: 4561:/*EOF*/
    #####:    #####: 4562:/*EOF*/
    #####:    #####: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
    #####:    #####: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
    #####:    #####: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
    #####:    #####: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
    #####:    #####: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
    #####:    #####: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
    #####:    #####: 4586:/*EOF*/
    #####:    #####: 4587:/*EOF*/
    #####:    #####: 4588:/*EOF*/
    #####:    #####: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
    #####:    #####: 4593:/*EOF*/
    #####:    #####: 4594:/*EOF*/
    #####:    #####: 4595:/*EOF*/
    #####:    #####: 4596:/*EOF*/
    #####:    #####: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
    #####:    #####: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
    #####:    #####: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
    #####:    #####: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
    #####:    #####: 4613:/*EOF*/
    #####:    #####: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
    #####:    #####: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
    #####:    #####: 4621:/*EOF*/
    #####:    #####: 4622:/*EOF*/
    #####:    #####: 4623:/*EOF*/
    #####:    #####: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
    #####:    #####: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
    #####:    #####: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
    #####:    #####: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
    #####:    #####: 4640:/*EOF*/
    #####:    #####: 4641:/*EOF*/
    #####:    #####: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
    #####:    #####: 4647:/*EOF*/
    #####:    #####: 4648:/*EOF*/
    #####:    #####: 4649:/*EOF*/
    #####:    #####: 4650:/*EOF*/
    #####:    #####: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
    #####:    #####: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
    #####:    #####: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
    #####:    #####: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
    #####:    #####: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
    #####:    #####: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
    #####:    #####: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
    #####:    #####: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
    #####:    #####: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
    #####:    #####: 4681:/*EOF*/
    #####:    #####: 4682:/*EOF*/
    #####:    #####: 4683:/*EOF*/
    #####:    #####: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
    #####:    #####: 4688:/*EOF*/
    #####:    #####: 4689:/*EOF*/
    #####:    #####: 4690:/*EOF*/
    #####:    #####: 4691:/*EOF*/
    #####:    #####: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
    #####:    #####: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
    #####:    #####: 4699:/*EOF*/
    #####:    #####: 4700:/*EOF*/
    #####:    #####: 4701:/*EOF*/
    #####:    #####: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
    #####:    #####: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
    #####:    #####: 4711:/*EOF*/
    #####:    #####: 4712:/*EOF*/
    #####:    #####: 4713:/*EOF*/
    #####:    #####: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
    #####:    #####: 4718:/*EOF*/
    #####:    #####: 4719:/*EOF*/
    #####:    #####: 4720:/*EOF*/
    #####:    #####: 4721:/*EOF*/
    #####:    #####: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
    #####:    #####: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
    #####:    #####: 4729:/*EOF*/
    #####:    #####: 4730:/*EOF*/
    #####:    #####: 4731:/*EOF*/
    #####:    #####: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
    #####:    #####: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
    #####:    #####: 4741:/*EOF*/
    #####:    #####: 4742:/*EOF*/
    #####:    #####: 4743:/*EOF*/
    #####:    #####: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
    #####:    #####: 4748:/*EOF*/
    #####:    #####: 4749:/*EOF*/
    #####:    #####: 4750:/*EOF*/
    #####:    #####: 4751:/*EOF*/
    #####:    #####: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
    #####:    #####: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
    #####:    #####: 4759:/*EOF*/
    #####:    #####: 4760:/*EOF*/
    #####:    #####: 4761:/*EOF*/
    #####:    #####: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
    #####:    #####: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
    #####:    #####: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
    #####:    #####: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
    #####:    #####: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
    #####:    #####: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
    #####:    #####: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
    #####:    #####: 4785:/*EOF*/
    #####:    #####: 4786:/*EOF*/
    #####:    #####: 4787:/*EOF*/
    #####:    #####: 4788:/*EOF*/
    #####:    #####: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
    #####:    #####: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
    #####:    #####: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
    #####:    #####: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
    #####:    #####: 4803:/*EOF*/
    #####:    #####: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
    #####:    #####: 4806:/*EOF*/
    #####:    #####: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
    #####:    #####: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
    #####:    #####: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
    #####:    #####: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
    #####:    #####: 4821:/*EOF*/
    #####:    #####: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
    #####:    #####: 4824:/*EOF*/
    #####:    #####: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
    #####:    #####: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
    #####:    #####: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
    #####:    #####: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
    #####:    #####: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
    #####:    #####: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
    #####:    #####: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
    #####:    #####: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
    #####:    #####: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
    #####:    #####: 4853:/*EOF*/
    #####:    #####: 4854:/*EOF*/
    #####:    #####: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
    #####:    #####: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
    #####:    #####: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
    #####:    #####: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
    #####:    #####: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
    #####:    #####: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
    #####:    #####: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
    #####:    #####: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
    #####:    #####: 4885:/*EOF*/
    #####:    #####: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
    #####:    #####: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
    #####:    #####: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
    #####:    #####: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
    #####:    #####: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
    #####:    #####: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
    #####:    #####: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
    #####:    #####: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
    #####:    #####: 4915:/*EOF*/
    #####:    #####: 4916:/*EOF*/
    #####:    #####: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
    #####:    #####: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
    #####:    #####: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
    #####:    #####: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
    #####:    #####: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
    #####:    #####: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
    #####:    #####: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
    #####:    #####: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
    #####:    #####: 4947:/*EOF*/
    #####:    #####: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
    #####:    #####: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
    #####:    #####: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
    #####:    #####: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
    #####:    #####: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
    #####:    #####: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
    #####:    #####: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
    #####:    #####: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
    #####:    #####: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
    #####:    #####: 4977:/*EOF*/
    #####:    #####: 4978:/*EOF*/
    #####:    #####: 4979:/*EOF*/
    #####:    #####: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
    #####:    #####: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
    #####:    #####: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
    #####:    #####: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
    #####:    #####: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
    #####:    #####: 4997:/*EOF*/
    #####:    #####: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
    #####:    #####: 5000:/*EOF*/
    #####:    #####: 5001:/*EOF*/
    #####:    #####: 5002:/*EOF*/
    #####:    #####: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
    #####:    #####: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
    #####:    #####: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
    #####:    #####: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
    #####:    #####: 5017:/*EOF*/
    #####:    #####: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
    #####:    #####: 5021:/*EOF*/
    #####:    #####: 5022:/*EOF*/
    #####:    #####: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
    #####:    #####: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
    #####:    #####: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
    #####:    #####: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
    #####:    #####: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
    #####:    #####: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
    #####:    #####: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
    #####:    #####: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
    #####:    #####: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
    #####:    #####: 5051:/*EOF*/
    #####:    #####: 5052:/*EOF*/
    #####:    #####: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
    #####:    #####: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
    #####:    #####: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
    #####:    #####: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
        -:        -: 5066:/*EOF*/
    #####:    #####: 5067:/*EOF*/
    #####:    #####: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
    #####:    #####: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
    #####:    #####: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
        -:        -: 5075:/*EOF*/
    #####:    #####: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
    #####:    #####: 5083:/*EOF*/
    #####:    #####: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
    #####:    #####: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
    #####:    #####: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
    #####:    #####: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
    #####:    #####: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
    #####:    #####: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
    #####:    #####: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
    #####:    #####: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
    #####:    #####: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
    #####:    #####: 5113:/*EOF*/
    #####:    #####: 5114:/*EOF*/
    #####:    #####: 5115:/*EOF*/
    #####:    #####: 5116:/*EOF*/
    #####:    #####: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
    #####:    #####: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
    #####:    #####: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
    #####:    #####: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
    #####:    #####: 5131:/*EOF*/
    #####:    #####: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
    #####:    #####: 5134:/*EOF*/
    #####:    #####: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
    #####:    #####: 5137:/*EOF*/
        -:        -: 5138:/*EOF*/
    #####:    #####: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
    #####:    #####: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
    #####:    #####: 5149:/*EOF*/
    #####:    #####: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
    #####:    #####: 5152:/*EOF*/
    #####:    #####: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
    #####:    #####: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
    #####:    #####: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
    #####:    #####: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
    #####:    #####: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
    #####:    #####: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
    #####:    #####: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
    #####:    #####: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
    #####:    #####: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
    #####:    #####: 5187:/*EOF*/
    #####:    #####: 5188:/*EOF*/
    #####:    #####: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
    #####:    #####: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
    #####:    #####: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
    #####:    #####: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
    #####:    #####: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
    #####:    #####: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
    #####:    #####: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
    #####:    #####: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
    #####:    #####: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
    #####:    #####: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
    #####:    #####: 5229:/*EOF*/
    #####:    #####: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
    #####:    #####: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
    #####:    #####: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
    #####:    #####: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        -:        -: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
    #####:    #####: 5245:/*EOF*/
    #####:    #####: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
    #####:    #####: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
    #####:    #####: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
    #####:    #####: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
    #####:    #####: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
    #####:    #####: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
    #####:    #####: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
    #####:    #####: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
    #####:    #####: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
    #####:    #####: 5275:/*EOF*/
    #####:    #####: 5276:/*EOF*/
    #####:    #####: 5277:/*EOF*/
    #####:    #####: 5278:/*EOF*/
    #####:    #####: 5279:/*EOF*/
    #####:    #####: 5280:/*EOF*/
    #####:    #####: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
    #####:    #####: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
    #####:    #####: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
        -:        -: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
    #####:    #####: 5295:/*EOF*/
    #####:    #####: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
    #####:    #####: 5298:/*EOF*/
    #####:    #####: 5299:/*EOF*/
    #####:    #####: 5300:/*EOF*/
    #####:    #####: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
    #####:    #####: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
    #####:    #####: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
    #####:    #####: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
    #####:    #####: 5315:/*EOF*/
    #####:    #####: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
    #####:    #####: 5318:/*EOF*/
    #####:    #####: 5319:/*EOF*/
    #####:    #####: 5320:/*EOF*/
    #####:    #####: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
    #####:    #####: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
    #####:    #####: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
    #####:    #####: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
    #####:    #####: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
    #####:    #####: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
    #####:    #####: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
    #####:    #####: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
    #####:    #####: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
    #####:    #####: 5349:/*EOF*/
    #####:    #####: 5350:/*EOF*/
    #####:    #####: 5351:/*EOF*/
    #####:    #####: 5352:/*EOF*/
    #####:    #####: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
    #####:    #####: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
    #####:    #####: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
    #####:    #####: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
    #####:    #####: 5367:/*EOF*/
    #####:    #####: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
    #####:    #####: 5370:/*EOF*/
    #####:    #####: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
    #####:    #####: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
    #####:    #####: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
    #####:    #####: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
    #####:    #####: 5388:/*EOF*/
    #####:    #####: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
    #####:    #####: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
    #####:    #####: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
    #####:    #####: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
    #####:    #####: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
    #####:    #####: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
    #####:    #####: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
    #####:    #####: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
    #####:    #####: 5417:/*EOF*/
    #####:    #####: 5418:/*EOF*/
    #####:    #####: 5419:/*EOF*/
    #####:    #####: 5420:/*EOF*/
    #####:    #####: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
    #####:    #####: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
    #####:    #####: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
    #####:    #####: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        -:        -: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
    #####:    #####: 5435:/*EOF*/
    #####:    #####: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
    #####:    #####: 5438:/*EOF*/
    #####:    #####: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
    #####:    #####: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
    #####:    #####: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
    #####:    #####: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
    #####:    #####: 5453:/*EOF*/
    #####:    #####: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
    #####:    #####: 5456:/*EOF*/
    #####:    #####: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
    #####:    #####: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
    #####:    #####: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
    #####:    #####: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
    #####:    #####: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
    #####:    #####: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
    #####:    #####: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
    #####:    #####: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
    #####:    #####: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
    #####:    #####: 5485:/*EOF*/
    #####:    #####: 5486:/*EOF*/
    #####:    #####: 5487:/*EOF*/
    #####:    #####: 5488:/*EOF*/
    #####:    #####: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
    #####:    #####: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
    #####:    #####: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
    #####:    #####: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
    #####:    #####: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
    #####:    #####: 5506:/*EOF*/
    #####:    #####: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
    #####:    #####: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
    #####:    #####: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
    #####:    #####: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
        -:        -: 5520:/*EOF*/
    #####:    #####: 5521:/*EOF*/
    #####:    #####: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
    #####:    #####: 5524:/*EOF*/
    #####:    #####: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
    #####:    #####: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
    #####:    #####: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
    #####:    #####: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
    #####:    #####: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
    #####:    #####: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
    #####:    #####: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
    #####:    #####: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
    #####:    #####: 5553:/*EOF*/
    #####:    #####: 5554:/*EOF*/
    #####:    #####: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
    #####:    #####: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
    #####:    #####: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
    #####:    #####: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
    #####:    #####: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
        -:        -: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
    #####:    #####: 5571:/*EOF*/
    #####:    #####: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
    #####:    #####: 5574:/*EOF*/
    #####:    #####: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
    #####:    #####: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
    #####:    #####: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
    #####:    #####: 5589:/*EOF*/
    #####:    #####: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
    #####:    #####: 5592:/*EOF*/
    #####:    #####: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
    #####:    #####: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
    #####:    #####: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
    #####:    #####: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
    #####:    #####: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
    #####:    #####: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
    #####:    #####: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
    #####:    #####: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
    #####:    #####: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
    #####:    #####: 5621:/*EOF*/
    #####:    #####: 5622:/*EOF*/
    #####:    #####: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
    #####:    #####: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
    #####:    #####: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
    #####:    #####: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
    #####:    #####: 5637:/*EOF*/
    #####:    #####: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
    #####:    #####: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
    #####:    #####: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
    #####:    #####: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
    #####:    #####: 5653:/*EOF*/
    #####:    #####: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
    #####:    #####: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
    #####:    #####: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
    #####:    #####: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
    #####:    #####: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
    #####:    #####: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
    #####:    #####: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
    #####:    #####: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
    #####:    #####: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        -:        -: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
    #####:    #####: 5683:/*EOF*/
    #####:    #####: 5684:/*EOF*/
    #####:    #####: 5685:/*EOF*/
    #####:    #####: 5686:/*EOF*/
    #####:    #####: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
    #####:    #####: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
    #####:    #####: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
    #####:    #####: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
        -:        -: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
    #####:    #####: 5701:/*EOF*/
    #####:    #####: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
    #####:    #####: 5704:/*EOF*/
    #####:    #####: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
    #####:    #####: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
    #####:    #####: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
    #####:    #####: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
    #####:    #####: 5719:/*EOF*/
    #####:    #####: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
    #####:    #####: 5722:/*EOF*/
    #####:    #####: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
    #####:    #####: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
    #####:    #####: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
    #####:    #####: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
    #####:    #####: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
    #####:    #####: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
    #####:    #####: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
    #####:    #####: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
    #####:    #####: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
    #####:    #####: 5751:/*EOF*/
    #####:    #####: 5752:/*EOF*/
    #####:    #####: 5753:/*EOF*/
    #####:    #####: 5754:/*EOF*/
    #####:    #####: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
    #####:    #####: 5762:/*EOF*/
        -:        -: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
    #####:    #####: 5769:/*EOF*/
    #####:    #####: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
    #####:    #####: 5772:/*EOF*/
    #####:    #####: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
    #####:    #####: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
    #####:    #####: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
    #####:    #####: 5780:/*EOF*/
        -:        -: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
    #####:    #####: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
    #####:    #####: 5790:/*EOF*/
    #####:    #####: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
    #####:    #####: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
    #####:    #####: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
    #####:    #####: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
    #####:    #####: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
    #####:    #####: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
    #####:    #####: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
    #####:    #####: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
    #####:    #####: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
    #####:    #####: 5819:/*EOF*/
    #####:    #####: 5820:/*EOF*/
    #####:    #####: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
    #####:    #####: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
    #####:    #####: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
    #####:    #####: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
    #####:    #####: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
    #####:    #####: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
    #####:    #####: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
    #####:    #####: 5851:/*EOF*/
    #####:    #####: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
    #####:    #####: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
    #####:    #####: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        -:        -: 5859:/*EOF*/
    #####:    #####: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
    #####:    #####: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
    #####:    #####: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
    #####:    #####: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
    #####:    #####: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
    #####:    #####: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
    #####:    #####: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
    #####:    #####: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
    #####:    #####: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
    #####:    #####: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
    #####:    #####: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
    #####:    #####: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
    #####:    #####: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
    #####:    #####: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
    #####:    #####: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
    #####:    #####: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
    #####:    #####: 5936:/*EOF*/
        -:        -: 5937:/*EOF*/
    #####:    #####: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
    #####:    #####: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
    #####:    #####: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
    #####:    #####: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
        -:        -: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
        -:        -: 5961:/*EOF*/
    #####:    #####: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
    #####:    #####: 5966:/*EOF*/
        -:        -: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
    #####:    #####: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
    #####:    #####: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
    #####:    #####: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
    #####:    #####: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
        -:        -: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
    #####:    #####: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
    #####:    #####: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
    #####:    #####: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
    #####:    #####: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
    #####:    #####: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
    #####:    #####: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
    #####:    #####: 6026:/*EOF*/
        -:        -: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
    #####:    #####: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
    #####:    #####: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
    #####:    #####: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
    #####:    #####: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
    #####:    #####: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
    #####:    #####: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
    #####:    #####: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
    #####:    #####: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
    #####:    #####: 6068:/*EOF*/
        -:        -: 6069:/*EOF*/
    #####:    #####: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
    #####:    #####: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
    #####:    #####: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
    #####:    #####: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
    #####:    #####: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
    #####:    #####: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
    #####:    #####: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
    #####:    #####: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
    #####:    #####: 6097:/*EOF*/
    #####:    #####: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
    #####:    #####: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
    #####:    #####: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
    #####:    #####: 6111:/*EOF*/
    #####:    #####: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
    #####:    #####: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
    #####:    #####: 6125:/*EOF*/
    #####:    #####: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
    #####:    #####: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
    #####:    #####: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
    #####:    #####: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
    #####:    #####: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
    #####:    #####: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
        -:        -: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
    #####:    #####: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
    #####:    #####: 6153:/*EOF*/
    #####:    #####: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
    #####:    #####: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
    #####:    #####: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
    #####:    #####: 6167:/*EOF*/
    #####:    #####: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
    #####:    #####: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
        -:        -: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
    #####:    #####: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
    #####:    #####: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
    #####:    #####: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
    #####:    #####: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
    #####:    #####: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
        -:        -: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
    #####:    #####: 6209:/*EOF*/
    #####:    #####: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
    #####:    #####: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
    #####:    #####: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
    #####:    #####: 6223:/*EOF*/
    #####:    #####: 6224:/*EOF*/
        -:        -: 6225:/*EOF*/
    #####:    #####: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
        -:        -: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
    #####:    #####: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
    #####:    #####: 6237:/*EOF*/
    #####:    #####: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
    #####:    #####: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
    #####:    #####: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
    #####:    #####: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
    #####:    #####: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
    #####:    #####: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
    #####:    #####: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
    #####:    #####: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
    #####:    #####: 6265:/*EOF*/
    #####:    #####: 6266:/*EOF*/
        -:        -: 6267:/*EOF*/
    #####:    #####: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
        -:        -: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
    #####:    #####: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
    #####:    #####: 6279:/*EOF*/
    #####:    #####: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
    #####:    #####: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        -:        -: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
    #####:    #####: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
    #####:    #####: 6296:/*EOF*/
        -:        -: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
    #####:    #####: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
    #####:    #####: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
    #####:    #####: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
    #####:    #####: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
    #####:    #####: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
    #####:    #####: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
    #####:    #####: 6321:/*EOF*/
    #####:    #####: 6322:/*EOF*/
    #####:    #####: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
    #####:    #####: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
    #####:    #####: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
    #####:    #####: 6336:/*EOF*/
    #####:    #####: 6337:/*EOF*/
    #####:    #####: 6338:/*EOF*/
        -:        -: 6339:/*EOF*/
    #####:    #####: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
        -:        -: 6348:/*EOF*/
    #####:    #####: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
    #####:    #####: 6351:/*EOF*/
    #####:    #####: 6352:/*EOF*/
    #####:    #####: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
    #####:    #####: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
        -:        -: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
    #####:    #####: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
    #####:    #####: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
    #####:    #####: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
    #####:    #####: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
    #####:    #####: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
    #####:    #####: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
    #####:    #####: 6380:/*EOF*/
    #####:    #####: 6381:/*EOF*/
    #####:    #####: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
    #####:    #####: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        -:        -: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
    #####:    #####: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
    #####:    #####: 6395:/*EOF*/
    #####:    #####: 6396:/*EOF*/
    #####:    #####: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
    #####:    #####: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
    #####:    #####: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
    #####:    #####: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
    #####:    #####: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
    #####:    #####: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
    #####:    #####: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
    #####:    #####: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
    #####:    #####: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
    #####:    #####: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
    #####:    #####: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
    #####:    #####: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
    #####:    #####: 6439:/*EOF*/
    #####:    #####: 6440:/*EOF*/
    #####:    #####: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
    #####:    #####: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
    #####:    #####: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
    #####:    #####: 6454:/*EOF*/
    #####:    #####: 6455:/*EOF*/
    #####:    #####: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
    #####:    #####: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
    #####:    #####: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
    #####:    #####: 6469:/*EOF*/
    #####:    #####: 6470:/*EOF*/
    #####:    #####: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
    #####:    #####: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
    #####:    #####: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
    #####:    #####: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
    #####:    #####: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
    #####:    #####: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
    #####:    #####: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
    #####:    #####: 6498:/*EOF*/
    #####:    #####: 6499:/*EOF*/
    #####:    #####: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
    #####:    #####: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        -:        -: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
    #####:    #####: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
    #####:    #####: 6513:/*EOF*/
    #####:    #####: 6514:/*EOF*/
    #####:    #####: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
    #####:    #####: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        -:        -: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
    #####:    #####: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
    #####:    #####: 6528:/*EOF*/
    #####:    #####: 6529:/*EOF*/
    #####:    #####: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
    #####:    #####: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
    #####:    #####: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
    #####:    #####: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
    #####:    #####: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
    #####:    #####: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
    #####:    #####: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
    #####:    #####: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
    #####:    #####: 6557:/*EOF*/
    #####:    #####: 6558:/*EOF*/
    #####:    #####: 6559:/*EOF*/
    #####:    #####: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
    #####:    #####: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
    #####:    #####: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
    #####:    #####: 6573:/*EOF*/
    #####:    #####: 6574:/*EOF*/
    #####:    #####: 6575:/*EOF*/
    #####:    #####: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
    #####:    #####: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
    #####:    #####: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
    #####:    #####: 6589:/*EOF*/
    #####:    #####: 6590:/*EOF*/
    #####:    #####: 6591:/*EOF*/
    #####:    #####: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
    #####:    #####: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
    #####:    #####: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
    #####:    #####: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
    #####:    #####: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
    #####:    #####: 6619:/*EOF*/
    #####:    #####: 6620:/*EOF*/
    #####:    #####: 6621:/*EOF*/
    #####:    #####: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
    #####:    #####: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
    #####:    #####: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
    #####:    #####: 6635:/*EOF*/
    #####:    #####: 6636:/*EOF*/
    #####:    #####: 6637:/*EOF*/
    #####:    #####: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
    #####:    #####: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        -:        -: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
    #####:    #####: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
    #####:    #####: 6651:/*EOF*/
    #####:    #####: 6652:/*EOF*/
    #####:    #####: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
    #####:    #####: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
    #####:    #####: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
    #####:    #####: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
    #####:    #####: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
    #####:    #####: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
    #####:    #####: 6681:/*EOF*/
    #####:    #####: 6682:/*EOF*/
    #####:    #####: 6683:/*EOF*/
    #####:    #####: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
    #####:    #####: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
    #####:    #####: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
    #####:    #####: 6697:/*EOF*/
    #####:    #####: 6698:/*EOF*/
    #####:    #####: 6699:/*EOF*/
    #####:    #####: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
    #####:    #####: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
    #####:    #####: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
    #####:    #####: 6715:/*EOF*/
    #####:    #####: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
    #####:    #####: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
    #####:    #####: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
    #####:    #####: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
    #####:    #####: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
    #####:    #####: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
    #####:    #####: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
    #####:    #####: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
    #####:    #####: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
    #####:    #####: 6745:/*EOF*/
    #####:    #####: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
    #####:    #####: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
    #####:    #####: 6759:/*EOF*/
    #####:    #####: 6760:/*EOF*/
    #####:    #####: 6761:/*EOF*/
    #####:    #####: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
    #####:    #####: 6764:/*EOF*/
        -:        -: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
    #####:    #####: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
    #####:    #####: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
    #####:    #####: 6777:/*EOF*/
    #####:    #####: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
    #####:    #####: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
    #####:    #####: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
    #####:    #####: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
    #####:    #####: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
    #####:    #####: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        -:        -: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
    #####:    #####: 6802:/*EOF*/
    #####:    #####: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
    #####:    #####: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
    #####:    #####: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
    #####:    #####: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
    #####:    #####: 6817:/*EOF*/
    #####:    #####: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
    #####:    #####: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
    #####:    #####: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
    #####:    #####: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
    #####:    #####: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
    #####:    #####: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
    #####:    #####: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
    #####:    #####: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
        -:        -: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
    #####:    #####: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
    #####:    #####: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
    #####:    #####: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
    #####:    #####: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
    #####:    #####: 6861:/*EOF*/
    #####:    #####: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
    #####:    #####: 6864:/*EOF*/
    #####:    #####: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
    #####:    #####: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
    #####:    #####: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
    #####:    #####: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
    #####:    #####: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
    #####:    #####: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
    #####:    #####: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
    #####:    #####: 6887:/*EOF*/
    #####:    #####: 6888:/*EOF*/
    #####:    #####: 6889:/*EOF*/
    #####:    #####: 6890:/*EOF*/
    #####:    #####: 6891:/*EOF*/
        -:        -: 6892:/*EOF*/
    #####:    #####: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
    #####:    #####: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
    #####:    #####: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
    #####:    #####: 6905:/*EOF*/
    #####:    #####: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
    #####:    #####: 6908:/*EOF*/
    #####:    #####: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
    #####:    #####: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
    #####:    #####: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
    #####:    #####: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
        -:        -: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
    #####:    #####: 6923:/*EOF*/
    #####:    #####: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
    #####:    #####: 6926:/*EOF*/
    #####:    #####: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
    #####:    #####: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
    #####:    #####: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
    #####:    #####: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
    #####:    #####: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
    #####:    #####: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
    #####:    #####: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
    #####:    #####: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
    #####:    #####: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
    #####:    #####: 6955:/*EOF*/
    #####:    #####: 6956:/*EOF*/
    #####:    #####: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
    #####:    #####: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
    #####:    #####: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
    #####:    #####: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
    #####:    #####: 6971:/*EOF*/
    #####:    #####: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
    #####:    #####: 6975:/*EOF*/
        -:        -: 6976:/*EOF*/
    #####:    #####: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
    #####:    #####: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
        -:        -: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
    #####:    #####: 6987:/*EOF*/
    #####:    #####: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
    #####:    #####: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
    #####:    #####: 6993:/*EOF*/
        -:        -: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
    #####:    #####: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
    #####:    #####: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
    #####:    #####: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
    #####:    #####: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
    #####:    #####: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
    #####:    #####: 7011:/*EOF*/
        -:        -: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
    #####:    #####: 7017:/*EOF*/
    #####:    #####: 7018:/*EOF*/
    #####:    #####: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
    #####:    #####: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
    #####:    #####: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
    #####:    #####: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
    #####:    #####: 7033:/*EOF*/
    #####:    #####: 7034:/*EOF*/
        -:        -: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
    #####:    #####: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
    #####:    #####: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
    #####:    #####: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
        -:        -: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
    #####:    #####: 7049:/*EOF*/
    #####:    #####: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
    #####:    #####: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
    #####:    #####: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
    #####:    #####: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
    #####:    #####: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
    #####:    #####: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
    #####:    #####: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
    #####:    #####: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
    #####:    #####: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
    #####:    #####: 7079:/*EOF*/
    #####:    #####: 7080:/*EOF*/
    #####:    #####: 7081:/*EOF*/
    #####:    #####: 7082:/*EOF*/
    #####:    #####: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
    #####:    #####: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
    #####:    #####: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
    #####:    #####: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
    #####:    #####: 7097:/*EOF*/
    #####:    #####: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
    #####:    #####: 7100:/*EOF*/
    #####:    #####: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
    #####:    #####: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
    #####:    #####: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
    #####:    #####: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
    #####:    #####: 7115:/*EOF*/
    #####:    #####: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
    #####:    #####: 7118:/*EOF*/
    #####:    #####: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
    #####:    #####: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
    #####:    #####: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
    #####:    #####: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
    #####:    #####: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
        -:        -: 7132:/*EOF*/
    #####:    #####: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
    #####:    #####: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
    #####:    #####: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
    #####:    #####: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
    #####:    #####: 7147:/*EOF*/
    #####:    #####: 7148:/*EOF*/
    #####:    #####: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
    #####:    #####: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
    #####:    #####: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
    #####:    #####: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
    #####:    #####: 7163:/*EOF*/
    #####:    #####: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
    #####:    #####: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
    #####:    #####: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
    #####:    #####: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
    #####:    #####: 7179:/*EOF*/
    #####:    #####: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
        -:        -: 7182:/*EOF*/
    #####:    #####: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
    #####:    #####: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
    #####:    #####: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
    #####:    #####: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
    #####:    #####: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
    #####:    #####: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
    #####:    #####: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
    #####:    #####: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
        -:        -: 7208:/*EOF*/
    #####:    #####: 7209:/*EOF*/
    #####:    #####: 7210:/*EOF*/
    #####:    #####: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
    #####:    #####: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
    #####:    #####: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
    #####:    #####: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
        -:        -: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
    #####:    #####: 7225:/*EOF*/
    #####:    #####: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
    #####:    #####: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
    #####:    #####: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
    #####:    #####: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
        -:        -: 7240:/*EOF*/
    #####:    #####: 7241:/*EOF*/
    #####:    #####: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
    #####:    #####: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
    #####:    #####: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
    #####:    #####: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
    #####:    #####: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
    #####:    #####: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
    #####:    #####: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
    #####:    #####: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
    #####:    #####: 7265:/*EOF*/
        -:        -: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
        -:        -: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
    #####:    #####: 7271:/*EOF*/
    #####:    #####: 7272:/*EOF*/
    #####:    #####: 7273:/*EOF*/
        -:        -: 7274:/*EOF*/
    #####:    #####: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
    #####:    #####: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
    #####:    #####: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
    #####:    #####: 7287:/*EOF*/
    #####:    #####: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
    #####:    #####: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
    #####:    #####: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
    #####:    #####: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
    #####:    #####: 7303:/*EOF*/
    #####:    #####: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
    #####:    #####: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
    #####:    #####: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
    #####:    #####: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
        -:        -: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
    #####:    #####: 7316:/*EOF*/
        -:        -: 7317:/*EOF*/
        -:        -: 7318:/*EOF*/
    #####:    #####: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
    #####:    #####: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
    #####:    #####: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
    #####:    #####: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
        -:        -: 7332:/*EOF*/
    #####:    #####: 7333:/*EOF*/
    #####:    #####: 7334:/*EOF*/
    #####:    #####: 7335:/*EOF*/
        -:        -: 7336:/*EOF*/
    #####:    #####: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
    #####:    #####: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
        -:        -: 7341:/*EOF*/
    #####:    #####: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
        -:        -: 7348:/*EOF*/
    #####:    #####: 7349:/*EOF*/
    #####:    #####: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
    #####:    #####: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
    #####:    #####: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
    #####:    #####: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
    #####:    #####: 7365:/*EOF*/
    #####:    #####: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
        -:        -: 7368:/*EOF*/
    #####:    #####: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
    #####:    #####: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
    #####:    #####: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
        -:        -: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
    #####:    #####: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
        -:        -: 7380:/*EOF*/
    #####:    #####: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
    #####:    #####: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
    #####:    #####: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
    #####:    #####: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
        -:        -: 7393:/*EOF*/
        -:        -: 7394:/*EOF*/
    #####:    #####: 7395:/*EOF*/
    #####:    #####: 7396:/*EOF*/
    #####:    #####: 7397:/*EOF*/
        -:        -: 7398:/*EOF*/
    #####:    #####: 7399:/*EOF*/
        -:        -: 7400:/*EOF*/
    #####:    #####: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
    #####:    #####: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
        -:        -: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
    #####:    #####: 7411:/*EOF*/
    #####:    #####: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
    #####:    #####: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
    #####:    #####: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
    #####:    #####: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
        -:        -: 7426:/*EOF*/
    #####:    #####: 7427:/*EOF*/
    #####:    #####: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
    #####:    #####: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
    #####:    #####: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
    #####:    #####: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
    #####:    #####: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
    #####:    #####: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
    #####:    #####: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
    #####:    #####: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
    #####:    #####: 7451:/*EOF*/
        -:        -: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
    #####:    #####: 7457:/*EOF*/
    #####:    #####: 7458:/*EOF*/
    #####:    #####: 7459:/*EOF*/
        -:        -: 7460:/*EOF*/
    #####:    #####: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
    #####:    #####: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
    #####:    #####: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
        -:        -: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        -:        -: 7472:/*EOF*/
    #####:    #####: 7473:/*EOF*/
    #####:    #####: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
        -:        -: 7476:/*EOF*/
    #####:    #####: 7477:/*EOF*/
        -:        -: 7478:/*EOF*/
    #####:    #####: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
    #####:    #####: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
        -:        -: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
    #####:    #####: 7489:/*EOF*/
    #####:    #####: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
    #####:    #####: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
    #####:    #####: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
    #####:    #####: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
        -:        -: 7500:/*EOF*/
        -:        -: 7501:/*EOF*/
    #####:    #####: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
    #####:    #####: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
    #####:    #####: 7508:/*EOF*/
        -:        -: 7509:/*EOF*/
        -:        -: 7510:/*EOF*/
    #####:    #####: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
    #####:    #####: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
        -:        -: 7517:/*EOF*/
        -:        -: 7518:/*EOF*/
    #####:    #####: 7519:/*EOF*/
    #####:    #####: 7520:/*EOF*/
    #####:    #####: 7521:/*EOF*/
    #####:    #####: 7522:/*EOF*/
    #####:    #####: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
    #####:    #####: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
    #####:    #####: 7527:/*EOF*/
        -:        -: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
    #####:    #####: 7530:/*EOF*/
        -:        -: 7531:/*EOF*/
        -:        -: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
        -:        -: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
    #####:    #####: 7537:/*EOF*/
    #####:    #####: 7538:/*EOF*/
        -:        -: 7539:/*EOF*/
    #####:    #####: 7540:/*EOF*/
    #####:    #####: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
    #####:    #####: 7543:/*EOF*/
        -:        -: 7544:/*EOF*/
    #####:    #####: 7545:/*EOF*/
        -:        -: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
    #####:    #####: 7548:/*EOF*/
        -:        -: 7549:/*EOF*/
        -:        -: 7550:/*EOF*/
        -:        -: 7551:/*EOF*/
        -:        -: 7552:/*EOF*/
        -:        -: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
    #####:    #####: 7555:/*EOF*/
    #####:    #####: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
    #####:    #####: 7558:/*EOF*/
    #####:    #####: 7559:/*EOF*/
        -:        -: 7560:/*EOF*/
    #####:    #####: 7561:/*EOF*/
        -:        -: 7562:/*EOF*/
    #####:    #####: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
        -:        -: 7565:/*EOF*/
    #####:    #####: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
        -:        -: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
    #####:    #####: 7570:/*EOF*/
        -:        -: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
    #####:    #####: 7573:/*EOF*/
        -:        -: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
    #####:    #####: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
        -:        -: 7578:/*EOF*/
    #####:    #####: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
    #####:    #####: 7581:/*EOF*/
        -:        -: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
        -:        -: 7586:/*EOF*/
    #####:    #####: 7587:/*EOF*/
    #####:    #####: 7588:/*EOF*/
    #####:    #####: 7589:/*EOF*/
        -:        -: 7590:/*EOF*/
    #####:    #####: 7591:/*EOF*/
        -:        -: 7592:/*EOF*/
    #####:    #####: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
        -:        -: 7595:/*EOF*/
    #####:    #####: 7596:/*EOF*/
        -:        -: 7597:/*EOF*/
        -:        -: 7598:/*EOF*/
        -:        -: 7599:/*EOF*/
        -:        -: 7600:/*EOF*/
        -:        -: 7601:/*EOF*/
        -:        -: 7602:/*EOF*/
    #####:    #####: 7603:/*EOF*/
    #####:    #####: 7604:/*EOF*/
        -:        -: 7605:/*EOF*/
        -:        -: 7606:/*EOF*/
    #####:    #####: 7607:/*EOF*/
        -:        -: 7608:/*EOF*/
    #####:    #####: 7609:/*EOF*/
        -:        -: 7610:/*EOF*/
        -:        -: 7611:/*EOF*/
    #####:    #####: 7612:/*EOF*/
        -:        -: 7613:/*EOF*/
        -:        -: 7614:/*EOF*/
        -:        -: 7615:/*EOF*/
        -:        -: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
    #####:    #####: 7619:/*EOF*/
    #####:    #####: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
    #####:    #####: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
    #####:    #####: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
    #####:    #####: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
        -:        -: 7631:/*EOF*/
    #####:    #####: 7632:/*EOF*/
        -:        -: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
    #####:    #####: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
        -:        -: 7637:/*EOF*/
    #####:    #####: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
    #####:    #####: 7641:/*EOF*/
        -:        -: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
    #####:    #####: 7647:/*EOF*/
    #####:    #####: 7648:/*EOF*/
        -:        -: 7649:/*EOF*/
    #####:    #####: 7650:/*EOF*/
    #####:    #####: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
    #####:    #####: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
    #####:    #####: 7655:/*EOF*/
        -:        -: 7656:/*EOF*/
        -:        -: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
    #####:    #####: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
    #####:    #####: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
    #####:    #####: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
    #####:    #####: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
    #####:    #####: 7673:/*EOF*/
    #####:    #####: 7674:/*EOF*/
        -:        -: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
    #####:    #####: 7677:/*EOF*/
        -:        -: 7678:/*EOF*/
    #####:    #####: 7679:/*EOF*/
        -:        -: 7680:/*EOF*/
        -:        -: 7681:/*EOF*/
    #####:    #####: 7682:/*EOF*/
        -:        -: 7683:/*EOF*/
        -:        -: 7684:/*EOF*/
        -:        -: 7685:/*EOF*/
        -:        -: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
        -:        -: 7688:/*EOF*/
    #####:    #####: 7689:/*EOF*/
    #####:    #####: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
    #####:    #####: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
    #####:    #####: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
    #####:    #####: 7698:/*EOF*/
        -:        -: 7699:/*EOF*/
        -:        -: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
    #####:    #####: 7705:/*EOF*/
    #####:    #####: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
    #####:    #####: 7709:/*EOF*/
        -:        -: 7710:/*EOF*/
    #####:    #####: 7711:/*EOF*/
        -:        -: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
    #####:    #####: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
        -:        -: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
    #####:    #####: 7721:/*EOF*/
    #####:    #####: 7722:/*EOF*/
        -:        -: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
    #####:    #####: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
    #####:    #####: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
    #####:    #####: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
    #####:    #####: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
    #####:    #####: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
    #####:    #####: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
    #####:    #####: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
    #####:    #####: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
        -:        -: 7748:/*EOF*/
        -:        -: 7749:/*EOF*/
        -:        -: 7750:/*EOF*/
    #####:    #####: 7751:/*EOF*/
    #####:    #####: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
        -:        -: 7754:/*EOF*/
    #####:    #####: 7755:/*EOF*/
        -:        -: 7756:/*EOF*/
    #####:    #####: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
        -:        -: 7759:/*EOF*/
    #####:    #####: 7760:/*EOF*/
        -:        -: 7761:/*EOF*/
        -:        -: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
        -:        -: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
    #####:    #####: 7767:/*EOF*/
    #####:    #####: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
    #####:    #####: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
    #####:    #####: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
    #####:    #####: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
        -:        -: 7779:/*EOF*/
        -:        -: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
    #####:    #####: 7783:/*EOF*/
    #####:    #####: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
    #####:    #####: 7787:/*EOF*/
        -:        -: 7788:/*EOF*/
    #####:    #####: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
    #####:    #####: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
        -:        -: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
        -:        -: 7798:/*EOF*/
    #####:    #####: 7799:/*EOF*/
    #####:    #####: 7800:/*EOF*/
        -:        -: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
    #####:    #####: 7803:/*EOF*/
        -:        -: 7804:/*EOF*/
    #####:    #####: 7805:/*EOF*/
        -:        -: 7806:/*EOF*/
        -:        -: 7807:/*EOF*/
    #####:    #####: 7808:/*EOF*/
        -:        -: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
        -:        -: 7811:/*EOF*/
    #####:    #####: 7812:/*EOF*/
        -:        -: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
    #####:    #####: 7815:/*EOF*/
        -:        -: 7816:/*EOF*/
        -:        -: 7817:/*EOF*/
    #####:    #####: 7818:/*EOF*/
        -:        -: 7819:/*EOF*/
        -:        -: 7820:/*EOF*/
    #####:    #####: 7821:/*EOF*/
        -:        -: 7822:/*EOF*/
    #####:    #####: 7823:/*EOF*/
        -:        -: 7824:/*EOF*/
        -:        -: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
        -:        -: 7827:/*EOF*/
        -:        -: 7828:/*EOF*/
    #####:    #####: 7829:/*EOF*/
    #####:    #####: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
        -:        -: 7832:/*EOF*/
    #####:    #####: 7833:/*EOF*/
        -:        -: 7834:/*EOF*/
    #####:    #####: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
    #####:    #####: 7838:/*EOF*/
        -:        -: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
    #####:    #####: 7845:/*EOF*/
    #####:    #####: 7846:/*EOF*/
        -:        -: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
    #####:    #####: 7849:/*EOF*/
        -:        -: 7850:/*EOF*/
    #####:    #####: 7851:/*EOF*/
        -:        -: 7852:/*EOF*/
        -:        -: 7853:/*EOF*/
    #####:    #####: 7854:/*EOF*/
        -:        -: 7855:/*EOF*/
        -:        -: 7856:/*EOF*/
        -:        -: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
        -:        -: 7859:/*EOF*/
        -:        -: 7860:/*EOF*/
    #####:    #####: 7861:/*EOF*/
    #####:    #####: 7862:/*EOF*/
        -:        -: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
    #####:    #####: 7865:/*EOF*/
        -:        -: 7866:/*EOF*/
    #####:    #####: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
        -:        -: 7869:/*EOF*/
    #####:    #####: 7870:/*EOF*/
        -:        -: 7871:/*EOF*/
        -:        -: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
        -:        -: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
    #####:    #####: 7877:/*EOF*/
    #####:    #####: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
    #####:    #####: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
    #####:    #####: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
        -:        -: 7885:/*EOF*/
    #####:    #####: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
        -:        -: 7888:/*EOF*/
        -:        -: 7889:/*EOF*/
    #####:    #####: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
        -:        -: 7892:/*EOF*/
    #####:    #####: 7893:/*EOF*/
        -:        -: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
    #####:    #####: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
    #####:    #####: 7899:/*EOF*/
        -:        -: 7900:/*EOF*/
    #####:    #####: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
        -:        -: 7903:/*EOF*/
        -:        -: 7904:/*EOF*/
        -:        -: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
    #####:    #####: 7907:/*EOF*/
    #####:    #####: 7908:/*EOF*/
        -:        -: 7909:/*EOF*/
        -:        -: 7910:/*EOF*/
    #####:    #####: 7911:/*EOF*/
        -:        -: 7912:/*EOF*/
    #####:    #####: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
        -:        -: 7915:/*EOF*/
    #####:    #####: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
        -:        -: 7922:/*EOF*/
    #####:    #####: 7923:/*EOF*/
    #####:    #####: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
    #####:    #####: 7927:/*EOF*/
        -:        -: 7928:/*EOF*/
    #####:    #####: 7929:/*EOF*/
        -:        -: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
    #####:    #####: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
    #####:    #####: 7939:/*EOF*/
    #####:    #####: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
    #####:    #####: 7943:/*EOF*/
        -:        -: 7944:/*EOF*/
    #####:    #####: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
        -:        -: 7947:/*EOF*/
    #####:    #####: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
        -:        -: 7952:/*EOF*/
        -:        -: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
    #####:    #####: 7955:/*EOF*/
    #####:    #####: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
    #####:    #####: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
    #####:    #####: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
    #####:    #####: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
    #####:    #####: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
    #####:    #####: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
    #####:    #####: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
    #####:    #####: 7977:/*EOF*/
        -:        -: 7978:/*EOF*/
    #####:    #####: 7979:/*EOF*/
        -:        -: 7980:/*EOF*/
        -:        -: 7981:/*EOF*/
        -:        -: 7982:/*EOF*/
        -:        -: 7983:/*EOF*/
        -:        -: 7984:/*EOF*/
    #####:    #####: 7985:/*EOF*/
    #####:    #####: 7986:/*EOF*/
        -:        -: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
    #####:    #####: 7989:/*EOF*/
        -:        -: 7990:/*EOF*/
    #####:    #####: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
    #####:    #####: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
        -:        -: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
    #####:    #####: 8001:/*EOF*/
    #####:    #####: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
        -:        -: 8004:/*EOF*/
    #####:    #####: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
    #####:    #####: 8007:/*EOF*/
        -:        -: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
    #####:    #####: 8010:/*EOF*/
        -:        -: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
    #####:    #####: 8017:/*EOF*/
    #####:    #####: 8018:/*EOF*/
        -:        -: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
    #####:    #####: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
    #####:    #####: 8023:/*EOF*/
        -:        -: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
    #####:    #####: 8026:/*EOF*/
        -:        -: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
        -:        -: 8032:/*EOF*/
    #####:    #####: 8033:/*EOF*/
    #####:    #####: 8034:/*EOF*/
        -:        -: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
    #####:    #####: 8037:/*EOF*/
        -:        -: 8038:/*EOF*/
    #####:    #####: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
        -:        -: 8041:/*EOF*/
    #####:    #####: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
    #####:    #####: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
        -:        -: 8048:/*EOF*/
    #####:    #####: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
    #####:    #####: 8052:/*EOF*/
        -:        -: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
    #####:    #####: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
    #####:    #####: 8057:/*EOF*/
        -:        -: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
        -:        -: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
    #####:    #####: 8063:/*EOF*/
    #####:    #####: 8064:/*EOF*/
        -:        -: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
    #####:    #####: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
    #####:    #####: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
        -:        -: 8071:/*EOF*/
    #####:    #####: 8072:/*EOF*/
        -:        -: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
        -:        -: 8076:/*EOF*/
        -:        -: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
    #####:    #####: 8079:/*EOF*/
    #####:    #####: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
    #####:    #####: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
    #####:    #####: 8085:/*EOF*/
        -:        -: 8086:/*EOF*/
        -:        -: 8087:/*EOF*/
    #####:    #####: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
        -:        -: 8094:/*EOF*/
    #####:    #####: 8095:/*EOF*/
    #####:    #####: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
    #####:    #####: 8099:/*EOF*/
        -:        -: 8100:/*EOF*/
    #####:    #####: 8101:/*EOF*/
        -:        -: 8102:/*EOF*/
        -:        -: 8103:/*EOF*/
    #####:    #####: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
        -:        -: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
    #####:    #####: 8111:/*EOF*/
    #####:    #####: 8112:/*EOF*/
        -:        -: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
    #####:    #####: 8115:/*EOF*/
        -:        -: 8116:/*EOF*/
    #####:    #####: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
    #####:    #####: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
    #####:    #####: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
    #####:    #####: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
        -:        -: 8129:/*EOF*/
    #####:    #####: 8130:/*EOF*/
        -:        -: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
    #####:    #####: 8133:/*EOF*/
        -:        -: 8134:/*EOF*/
    #####:    #####: 8135:/*EOF*/
        -:        -: 8136:/*EOF*/
        -:        -: 8137:/*EOF*/
        -:        -: 8138:/*EOF*/
        -:        -: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
    #####:    #####: 8141:/*EOF*/
    #####:    #####: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
        -:        -: 8144:/*EOF*/
    #####:    #####: 8145:/*EOF*/
        -:        -: 8146:/*EOF*/
    #####:    #####: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
    #####:    #####: 8150:/*EOF*/
        -:        -: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
        -:        -: 8153:/*EOF*/
        -:        -: 8154:/*EOF*/
        -:        -: 8155:/*EOF*/
        -:        -: 8156:/*EOF*/
    #####:    #####: 8157:/*EOF*/
    #####:    #####: 8158:/*EOF*/
        -:        -: 8159:/*EOF*/
        -:        -: 8160:/*EOF*/
    #####:    #####: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
    #####:    #####: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
    #####:    #####: 8166:/*EOF*/
        -:        -: 8167:/*EOF*/
        -:        -: 8168:/*EOF*/
        -:        -: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
        -:        -: 8172:/*EOF*/
    #####:    #####: 8173:/*EOF*/
    #####:    #####: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
    #####:    #####: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
    #####:    #####: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
    #####:    #####: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
        -:        -: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
        -:        -: 8188:/*EOF*/
    #####:    #####: 8189:/*EOF*/
    #####:    #####: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
        -:        -: 8192:/*EOF*/
    #####:    #####: 8193:/*EOF*/
        -:        -: 8194:/*EOF*/
    #####:    #####: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
    #####:    #####: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
        -:        -: 8201:/*EOF*/
    #####:    #####: 8202:/*EOF*/
        -:        -: 8203:/*EOF*/
        -:        -: 8204:/*EOF*/
    #####:    #####: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
        -:        -: 8207:/*EOF*/
    #####:    #####: 8208:/*EOF*/
        -:        -: 8209:/*EOF*/
        -:        -: 8210:/*EOF*/
    #####:    #####: 8211:/*EOF*/
        -:        -: 8212:/*EOF*/
    #####:    #####: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
        -:        -: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
    #####:    #####: 8219:/*EOF*/
    #####:    #####: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
    #####:    #####: 8223:/*EOF*/
        -:        -: 8224:/*EOF*/
    #####:    #####: 8225:/*EOF*/
        -:        -: 8226:/*EOF*/
        -:        -: 8227:/*EOF*/
    #####:    #####: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        -:        -: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
        -:        -: 8234:/*EOF*/
    #####:    #####: 8235:/*EOF*/
    #####:    #####: 8236:/*EOF*/
        -:        -: 8237:/*EOF*/
        -:        -: 8238:/*EOF*/
    #####:    #####: 8239:/*EOF*/
        -:        -: 8240:/*EOF*/
    #####:    #####: 8241:/*EOF*/
        -:        -: 8242:/*EOF*/
        -:        -: 8243:/*EOF*/
    #####:    #####: 8244:/*EOF*/
        -:        -: 8245:/*EOF*/
        -:        -: 8246:/*EOF*/
        -:        -: 8247:/*EOF*/
        -:        -: 8248:/*EOF*/
        -:        -: 8249:/*EOF*/
        -:        -: 8250:/*EOF*/
    #####:    #####: 8251:/*EOF*/
    #####:    #####: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
    #####:    #####: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
    #####:    #####: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
    #####:    #####: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
    #####:    #####: 8267:/*EOF*/
    #####:    #####: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
    #####:    #####: 8271:/*EOF*/
        -:        -: 8272:/*EOF*/
    #####:    #####: 8273:/*EOF*/
        -:        -: 8274:/*EOF*/
        -:        -: 8275:/*EOF*/
    #####:    #####: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
        -:        -: 8278:/*EOF*/
        -:        -: 8279:/*EOF*/
    #####:    #####: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
        -:        -: 8282:/*EOF*/
    #####:    #####: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
    #####:    #####: 8286:/*EOF*/
        -:        -: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
    #####:    #####: 8289:/*EOF*/
        -:        -: 8290:/*EOF*/
    #####:    #####: 8291:/*EOF*/
        -:        -: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
        -:        -: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
    #####:    #####: 8297:/*EOF*/
    #####:    #####: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
        -:        -: 8300:/*EOF*/
    #####:    #####: 8301:/*EOF*/
        -:        -: 8302:/*EOF*/
    #####:    #####: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
    #####:    #####: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        -:        -: 8312:/*EOF*/
    #####:    #####: 8313:/*EOF*/
    #####:    #####: 8314:/*EOF*/
        -:        -: 8315:/*EOF*/
        -:        -: 8316:/*EOF*/
    #####:    #####: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
    #####:    #####: 8319:/*EOF*/
        -:        -: 8320:/*EOF*/
        -:        -: 8321:/*EOF*/
    #####:    #####: 8322:/*EOF*/
        -:        -: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
        -:        -: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
    #####:    #####: 8329:/*EOF*/
    #####:    #####: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        -:        -: 8332:/*EOF*/
    #####:    #####: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
    #####:    #####: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
    #####:    #####: 8338:/*EOF*/
        -:        -: 8339:/*EOF*/
        -:        -: 8340:/*EOF*/
        -:        -: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
    #####:    #####: 8345:/*EOF*/
    #####:    #####: 8346:/*EOF*/
        -:        -: 8347:/*EOF*/
        -:        -: 8348:/*EOF*/
    #####:    #####: 8349:/*EOF*/
        -:        -: 8350:/*EOF*/
    #####:    #####: 8351:/*EOF*/
        -:        -: 8352:/*EOF*/
        -:        -: 8353:/*EOF*/
    #####:    #####: 8354:/*EOF*/
        -:        -: 8355:/*EOF*/
        -:        -: 8356:/*EOF*/
        -:        -: 8357:/*EOF*/
    #####:    #####: 8358:/*EOF*/
        -:        -: 8359:/*EOF*/
        -:        -: 8360:/*EOF*/
    #####:    #####: 8361:/*EOF*/
        -:        -: 8362:/*EOF*/
        -:        -: 8363:/*EOF*/
       52:       20: 8364:/*EOF*/
        -:        -: 8365:/*EOF*/
        -:        -: 8366:/*EOF*/
       52:       20: 8367:/*EOF*/
        -:        -: 8368:/*EOF*/
       52:       20: 8369:/*EOF*/
        -:        -: 8370:/*EOF*/
        -:        -: 8371:/*EOF*/
        -:        -: 8372:/*EOF*/
        -:        -: 8373:/*EOF*/
        -:        -: 8374:/*EOF*/
    #####:    #####: 8375:/*EOF*/
    #####:    #####: 8376:/*EOF*/
        -:        -: 8377:/*EOF*/
    #####:    #####: 8378:/*EOF*/
    #####:    #####: 8379:/*EOF*/
        -:        -: 8380:/*EOF*/
    #####:    #####: 8381:/*EOF*/
        -:        -: 8382:/*EOF*/
    #####:    #####: 8383:/*EOF*/
        -:        -: 8384:/*EOF*/
        -:        -: 8385:/*EOF*/
    #####:    #####: 8386:/*EOF*/
        -:        -: 8387:/*EOF*/
        -:        -: 8388:/*EOF*/
        -:        -: 8389:/*EOF*/
        -:        -: 8390:/*EOF*/
        -:        -: 8391:/*EOF*/
        -:        -: 8392:/*EOF*/
    #####:    #####: 8393:/*EOF*/
    #####:    #####: 8394:/*EOF*/
        -:        -: 8395:/*EOF*/
    #####:    #####: 8396:/*EOF*/
    #####:    #####: 8397:/*EOF*/
        -:        -: 8398:/*EOF*/
    #####:    #####: 8399:/*EOF*/
        -:        -: 8400:/*EOF*/
    #####:    #####: 8401:/*EOF*/
        -:        -: 8402:/*EOF*/
        -:        -: 8403:/*EOF*/
    #####:    #####: 8404:/*EOF*/
        -:        -: 8405:/*EOF*/
        -:        -: 8406:/*EOF*/
        -:        -: 8407:/*EOF*/
        -:        -: 8408:/*EOF*/
        -:        -: 8409:/*EOF*/
        -:        -: 8410:/*EOF*/
      104:       40: 8411:/*EOF*/
       52:       20: 8412:/*EOF*/
        -:        -: 8413:/*EOF*/
       52:       20: 8414:/*EOF*/
       52:       20: 8415:/*EOF*/
        -:        -: 8416:/*EOF*/
       52:       20: 8417:/*EOF*/
        -:        -: 8418:/*EOF*/
       52:       20: 8419:/*EOF*/
        -:        -: 8420:/*EOF*/
        -:        -: 8421:/*EOF*/
       52:       20: 8422:/*EOF*/
        -:        -: 8423:/*EOF*/
        -:        -: 8424:/*EOF*/
        -:        -: 8425:/*EOF*/
        -:        -: 8426:/*EOF*/
        -:        -: 8427:/*EOF*/
        -:        -: 8428:/*EOF*/
    #####:    #####: 8429:/*EOF*/
    #####:    #####: 8430:/*EOF*/
        -:        -: 8431:/*EOF*/
    #####:    #####: 8432:/*EOF*/
    #####:    #####: 8433:/*EOF*/
        -:        -: 8434:/*EOF*/
    #####:    #####: 8435:/*EOF*/
        -:        -: 8436:/*EOF*/
    #####:    #####: 8437:/*EOF*/
        -:        -: 8438:/*EOF*/
        -:        -: 8439:/*EOF*/
    #####:    #####: 8440:/*EOF*/
        -:        -: 8441:/*EOF*/
        -:        -: 8442:/*EOF*/
        -:        -: 8443:/*EOF*/
    #####:    #####: 8444:/*EOF*/
        -:        -: 8445:/*EOF*/
        -:        -: 8446:/*EOF*/
       52:       20: 8447:/*EOF*/
        -:        -: 8448:/*EOF*/
        -:        -: 8449:/*EOF*/
    #####:    #####: 8450:/*EOF*/
        -:        -: 8451:/*EOF*/
        -:        -: 8452:/*EOF*/
    #####:    #####: 8453:/*EOF*/
        -:        -: 8454:/*EOF*/
    #####:    #####: 8455:/*EOF*/
        -:        -: 8456:/*EOF*/
        -:        -: 8457:/*EOF*/
        -:        -: 8458:/*EOF*/
        -:        -: 8459:/*EOF*/
        -:        -: 8460:/*EOF*/
    #####:    #####: 8461:/*EOF*/
    #####:    #####: 8462:/*EOF*/
        -:        -: 8463:/*EOF*/
    #####:    #####: 8464:/*EOF*/
    #####:    #####: 8465:/*EOF*/
        -:        -: 8466:/*EOF*/
    #####:    #####: 8467:/*EOF*/
        -:        -: 8468:/*EOF*/
    #####:    #####: 8469:/*EOF*/
        -:        -: 8470:/*EOF*/
        -:        -: 8471:/*EOF*/
    #####:    #####: 8472:/*EOF*/
        -:        -: 8473:/*EOF*/
        -:        -: 8474:/*EOF*/
        -:        -: 8475:/*EOF*/
        -:        -: 8476:/*EOF*/
        -:        -: 8477:/*EOF*/
        -:        -: 8478:/*EOF*/
    #####:    #####: 8479:/*EOF*/
    #####:    #####: 8480:/*EOF*/
        -:        -: 8481:/*EOF*/
    #####:    #####: 8482:/*EOF*/
    #####:    #####: 8483:/*EOF*/
        -:        -: 8484:/*EOF*/
    #####:    #####: 8485:/*EOF*/
        -:        -: 8486:/*EOF*/
    #####:    #####: 8487:/*EOF*/
        -:        -: 8488:/*EOF*/
        -:        -: 8489:/*EOF*/
    #####:    #####: 8490:/*EOF*/
        -:        -: 8491:/*EOF*/
        -:        -: 8492:/*EOF*/
        -:        -: 8493:/*EOF*/
        -:        -: 8494:/*EOF*/
        -:        -: 8495:/*EOF*/
        -:        -: 8496:/*EOF*/
    #####:    #####: 8497:/*EOF*/
    #####:    #####: 8498:/*EOF*/
        -:        -: 8499:/*EOF*/
    #####:    #####: 8500:/*EOF*/
    #####:    #####: 8501:/*EOF*/
        -:        -: 8502:/*EOF*/
    #####:    #####: 8503:/*EOF*/
        -:        -: 8504:/*EOF*/
    #####:    #####: 8505:/*EOF*/
        -:        -: 8506:/*EOF*/
        -:        -: 8507:/*EOF*/
    #####:    #####: 8508:/*EOF*/
        -:        -: 8509:/*EOF*/
        -:        -: 8510:/*EOF*/
        -:        -: 8511:/*EOF*/
        -:        -: 8512:/*EOF*/
        -:        -: 8513:/*EOF*/
        -:        -: 8514:/*EOF*/
    #####:    #####: 8515:/*EOF*/
    #####:    #####: 8516:/*EOF*/
        -:        -: 8517:/*EOF*/
    #####:    #####: 8518:/*EOF*/
    #####:    #####: 8519:/*EOF*/
        -:        -: 8520:/*EOF*/
    #####:    #####: 8521:/*EOF*/
        -:        -: 8522:/*EOF*/
    #####:    #####: 8523:/*EOF*/
        -:        -: 8524:/*EOF*/
        -:        -: 8525:/*EOF*/
    #####:    #####: 8526:/*EOF*/
        -:        -: 8527:/*EOF*/
        -:        -: 8528:/*EOF*/
        -:        -: 8529:/*EOF*/
    #####:    #####: 8530:/*EOF*/
        -:        -: 8531:/*EOF*/
        -:        -: 8532:/*EOF*/
    #####:    #####: 8533:/*EOF*/
        -:        -: 8534:/*EOF*/
        -:        -: 8535:/*EOF*/
    #####:    #####: 8536:/*EOF*/
        -:        -: 8537:/*EOF*/
        -:        -: 8538:/*EOF*/
    #####:    #####: 8539:/*EOF*/
        -:        -: 8540:/*EOF*/
        -:        -: 8541:/*EOF*/
        -:        -: 8542:/*EOF*/
        -:        -: 8543:/*EOF*/
        -:        -: 8544:/*EOF*/
    #####:    #####: 8545:/*EOF*/
    #####:    #####: 8546:/*EOF*/
        -:        -: 8547:/*EOF*/
    #####:    #####: 8548:/*EOF*/
    #####:    #####: 8549:/*EOF*/
    #####:    #####: 8550:/*EOF*/
    #####:    #####: 8551:/*EOF*/
        -:        -: 8552:/*EOF*/
        -:        -: 8553:/*EOF*/
        -:        -: 8554:/*EOF*/
        -:        -: 8555:/*EOF*/
    #####:    #####: 8556:/*EOF*/
    #####:    #####: 8557:/*EOF*/
    #####:    #####: 8558:/*EOF*/
    #####:    #####: 8559:/*EOF*/
    #####:    #####: 8560:/*EOF*/
    #####:    #####: 8561:/*EOF*/
    #####:    #####: 8562:/*EOF*/
    #####:    #####: 8563:/*EOF*/
        -:        -: 8564:/*EOF*/
    #####:    #####: 8565:/*EOF*/
        -:        -: 8566:/*EOF*/
        -:        -: 8567:/*EOF*/
        -:        -: 8568:/*EOF*/
    #####:    #####: 8569:/*EOF*/
        -:        -: 8570:/*EOF*/
        -:        -: 8571:/*EOF*/
        -:        -: 8572:/*EOF*/
    #####:    #####: 8573:/*EOF*/
        -:        -: 8574:/*EOF*/
        -:        -: 8575:/*EOF*/
    #####:    #####: 8576:/*EOF*/
        -:        -: 8577:/*EOF*/
        -:        -: 8578:/*EOF*/
    #####:    #####: 8579:/*EOF*/
        -:        -: 8580:/*EOF*/
        -:        -: 8581:/*EOF*/
        -:        -: 8582:/*EOF*/
        -:        -: 8583:/*EOF*/
        -:        -: 8584:/*EOF*/
    #####:    #####: 8585:/*EOF*/
    #####:    #####: 8586:/*EOF*/
        -:        -: 8587:/*EOF*/
    #####:    #####: 8588:/*EOF*/
    #####:    #####: 8589:/*EOF*/
    #####:    #####: 8590:/*EOF*/
    #####:    #####: 8591:/*EOF*/
        -:        -: 8592:/*EOF*/
        -:        -: 8593:/*EOF*/
        -:        -: 8594:/*EOF*/
        -:        -: 8595:/*EOF*/
    #####:    #####: 8596:/*EOF*/
    #####:    #####: 8597:/*EOF*/
    #####:    #####: 8598:/*EOF*/
    #####:    #####: 8599:/*EOF*/
    #####:    #####: 8600:/*EOF*/
    #####:    #####: 8601:/*EOF*/
        -:        -: 8602:/*EOF*/
    #####:    #####: 8603:/*EOF*/
        -:        -: 8604:/*EOF*/
        -:        -: 8605:/*EOF*/
        -:        -: 8606:/*EOF*/
    #####:    #####: 8607:/*EOF*/
        -:        -: 8608:/*EOF*/
        -:        -: 8609:/*EOF*/
        -:        -: 8610:/*EOF*/
    #####:    #####: 8611:/*EOF*/
        -:        -: 8612:/*EOF*/
        -:        -: 8613:/*EOF*/
    #####:    #####: 8614:/*EOF*/
        -:        -: 8615:/*EOF*/
        -:        -: 8616:/*EOF*/
    #####:    #####: 8617:/*EOF*/
        -:        -: 8618:/*EOF*/
    #####:    #####: 8619:/*EOF*/
        -:        -: 8620:/*EOF*/
        -:        -: 8621:/*EOF*/
        -:        -: 8622:/*EOF*/
        -:        -: 8623:/*EOF*/
        -:        -: 8624:/*EOF*/
    #####:    #####: 8625:/*EOF*/
    #####:    #####: 8626:/*EOF*/
        -:        -: 8627:/*EOF*/
    #####:    #####: 8628:/*EOF*/
    #####:    #####: 8629:/*EOF*/
        -:        -: 8630:/*EOF*/
    #####:    #####: 8631:/*EOF*/
        -:        -: 8632:/*EOF*/
    #####:    #####: 8633:/*EOF*/
        -:        -: 8634:/*EOF*/
        -:        -: 8635:/*EOF*/
    #####:    #####: 8636:/*EOF*/
        -:        -: 8637:/*EOF*/
        -:        -: 8638:/*EOF*/
        -:        -: 8639:/*EOF*/
        -:        -: 8640:/*EOF*/
        -:        -: 8641:/*EOF*/
        -:        -: 8642:/*EOF*/
    #####:    #####: 8643:/*EOF*/
    #####:    #####: 8644:/*EOF*/
        -:        -: 8645:/*EOF*/
    #####:    #####: 8646:/*EOF*/
    #####:    #####: 8647:/*EOF*/
        -:        -: 8648:/*EOF*/
    #####:    #####: 8649:/*EOF*/
        -:        -: 8650:/*EOF*/
    #####:    #####: 8651:/*EOF*/
        -:        -: 8652:/*EOF*/
        -:        -: 8653:/*EOF*/
    #####:    #####: 8654:/*EOF*/
        -:        -: 8655:/*EOF*/
        -:        -: 8656:/*EOF*/
        -:        -: 8657:/*EOF*/
        -:        -: 8658:/*EOF*/
        -:        -: 8659:/*EOF*/
        -:        -: 8660:/*EOF*/
    #####:    #####: 8661:/*EOF*/
    #####:    #####: 8662:/*EOF*/
        -:        -: 8663:/*EOF*/
    #####:    #####: 8664:/*EOF*/
    #####:    #####: 8665:/*EOF*/
        -:        -: 8666:/*EOF*/
    #####:    #####: 8667:/*EOF*/
        -:        -: 8668:/*EOF*/
    #####:    #####: 8669:/*EOF*/
        -:        -: 8670:/*EOF*/
        -:        -: 8671:/*EOF*/
    #####:    #####: 8672:/*EOF*/
        -:        -: 8673:/*EOF*/
        -:        -: 8674:/*EOF*/
        -:        -: 8675:/*EOF*/
        -:        -: 8676:/*EOF*/
        -:        -: 8677:/*EOF*/
        -:        -: 8678:/*EOF*/
    #####:    #####: 8679:/*EOF*/
    #####:    #####: 8680:/*EOF*/
        -:        -: 8681:/*EOF*/
    #####:    #####: 8682:/*EOF*/
    #####:    #####: 8683:/*EOF*/
        -:        -: 8684:/*EOF*/
    #####:    #####: 8685:/*EOF*/
        -:        -: 8686:/*EOF*/
    #####:    #####: 8687:/*EOF*/
        -:        -: 8688:/*EOF*/
        -:        -: 8689:/*EOF*/
    #####:    #####: 8690:/*EOF*/
        -:        -: 8691:/*EOF*/
        -:        -: 8692:/*EOF*/
        -:        -: 8693:/*EOF*/
    #####:    #####: 8694:/*EOF*/
        -:        -: 8695:/*EOF*/
        -:        -: 8696:/*EOF*/
    #####:    #####: 8697:/*EOF*/
        -:        -: 8698:/*EOF*/
        -:        -: 8699:/*EOF*/
       11:       11: 8700:/*EOF*/
        -:        -: 8701:/*EOF*/
        -:        -: 8702:/*EOF*/
       11:       11: 8703:/*EOF*/
        -:        -: 8704:/*EOF*/
       11:       11: 8705:/*EOF*/
        -:        -: 8706:/*EOF*/
        -:        -: 8707:/*EOF*/
        -:        -: 8708:/*EOF*/
        -:        -: 8709:/*EOF*/
        -:        -: 8710:/*EOF*/
    #####:    #####: 8711:/*EOF*/
    #####:    #####: 8712:/*EOF*/
        -:        -: 8713:/*EOF*/
    #####:    #####: 8714:/*EOF*/
    #####:    #####: 8715:/*EOF*/
        -:        -: 8716:/*EOF*/
    #####:    #####: 8717:/*EOF*/
        -:        -: 8718:/*EOF*/
    #####:    #####: 8719:/*EOF*/
        -:        -: 8720:/*EOF*/
        -:        -: 8721:/*EOF*/
    #####:    #####: 8722:/*EOF*/
        -:        -: 8723:/*EOF*/
        -:        -: 8724:/*EOF*/
        -:        -: 8725:/*EOF*/
        -:        -: 8726:/*EOF*/
        -:        -: 8727:/*EOF*/
        -:        -: 8728:/*EOF*/
    #####:    #####: 8729:/*EOF*/
    #####:    #####: 8730:/*EOF*/
        -:        -: 8731:/*EOF*/
    #####:    #####: 8732:/*EOF*/
    #####:    #####: 8733:/*EOF*/
        -:        -: 8734:/*EOF*/
    #####:    #####: 8735:/*EOF*/
        -:        -: 8736:/*EOF*/
    #####:    #####: 8737:/*EOF*/
        -:        -: 8738:/*EOF*/
        -:        -: 8739:/*EOF*/
    #####:    #####: 8740:/*EOF*/
        -:        -: 8741:/*EOF*/
        -:        -: 8742:/*EOF*/
        -:        -: 8743:/*EOF*/
        -:        -: 8744:/*EOF*/
        -:        -: 8745:/*EOF*/
        -:        -: 8746:/*EOF*/
       22:       22: 8747:/*EOF*/
       11:       11: 8748:/*EOF*/
        -:        -: 8749:/*EOF*/
       11:       11: 8750:/*EOF*/
       11:       11: 8751:/*EOF*/
        -:        -: 8752:/*EOF*/
       11:       11: 8753:/*EOF*/
        -:        -: 8754:/*EOF*/
       11:       11: 8755:/*EOF*/
        -:        -: 8756:/*EOF*/
        -:        -: 8757:/*EOF*/
       11:       11: 8758:/*EOF*/
        -:        -: 8759:/*EOF*/
        -:        -: 8760:/*EOF*/
        -:        -: 8761:/*EOF*/
        -:        -: 8762:/*EOF*/
        -:        -: 8763:/*EOF*/
        -:        -: 8764:/*EOF*/
    #####:    #####: 8765:/*EOF*/
    #####:    #####: 8766:/*EOF*/
        -:        -: 8767:/*EOF*/
    #####:    #####: 8768:/*EOF*/
    #####:    #####: 8769:/*EOF*/
        -:        -: 8770:/*EOF*/
    #####:    #####: 8771:/*EOF*/
        -:        -: 8772:/*EOF*/
    #####:    #####: 8773:/*EOF*/
        -:        -: 8774:/*EOF*/
        -:        -: 8775:/*EOF*/
    #####:    #####: 8776:/*EOF*/
        -:        -: 8777:/*EOF*/
        -:        -: 8778:/*EOF*/
        -:        -: 8779:/*EOF*/
    #####:    #####: 8780:/*EOF*/
        -:        -: 8781:/*EOF*/
        -:        -: 8782:/*EOF*/
       11:       11: 8783:/*EOF*/
        -:        -: 8784:/*EOF*/
        -:        -: 8785:/*EOF*/
    #####:    #####: 8786:/*EOF*/
        -:        -: 8787:/*EOF*/
        -:        -: 8788:/*EOF*/
    #####:    #####: 8789:/*EOF*/
        -:        -: 8790:/*EOF*/
        -:        -: 8791:/*EOF*/
        -:        -: 8792:/*EOF*/
        -:        -: 8793:/*EOF*/
        -:        -: 8794:/*EOF*/
    #####:    #####: 8795:/*EOF*/
    #####:    #####: 8796:/*EOF*/
        -:        -: 8797:/*EOF*/
        -:        -: 8798:/*EOF*/
        -:        -: 8799:/*EOF*/
        -:        -: 8800:/*EOF*/
        -:        -: 8801:/*EOF*/
    #####:    #####: 8802:/*EOF*/
    #####:    #####: 8803:/*EOF*/
        -:        -: 8804:/*EOF*/
        -:        -: 8805:/*EOF*/
        -:        -: 8806:/*EOF*/
    #####:    #####: 8807:/*EOF*/
    #####:    #####: 8808:/*EOF*/
    #####:    #####: 8809:/*EOF*/
    #####:    #####: 8810:/*EOF*/
        -:        -: 8811:/*EOF*/
        -:        -: 8812:/*EOF*/
        -:        -: 8813:/*EOF*/
        -:        -: 8814:/*EOF*/
    #####:    #####: 8815:/*EOF*/
        -:        -: 8816:/*EOF*/
        -:        -: 8817:/*EOF*/
        -:        -: 8818:/*EOF*/
    #####:    #####: 8819:/*EOF*/
        -:        -: 8820:/*EOF*/
        -:        -: 8821:/*EOF*/
       34:        2: 8822:/*EOF*/
        -:        -: 8823:/*EOF*/
        -:        -: 8824:/*EOF*/
       34:        2: 8825:/*EOF*/
        -:        -: 8826:/*EOF*/
       34:        2: 8827:/*EOF*/
        -:        -: 8828:/*EOF*/
        -:        -: 8829:/*EOF*/
        -:        -: 8830:/*EOF*/
        -:        -: 8831:/*EOF*/
        -:        -: 8832:/*EOF*/
    #####:    #####: 8833:/*EOF*/
    #####:    #####: 8834:/*EOF*/
        -:        -: 8835:/*EOF*/
    #####:    #####: 8836:/*EOF*/
    #####:    #####: 8837:/*EOF*/
        -:        -: 8838:/*EOF*/
    #####:    #####: 8839:/*EOF*/
        -:        -: 8840:/*EOF*/
    #####:    #####: 8841:/*EOF*/
        -:        -: 8842:/*EOF*/
        -:        -: 8843:/*EOF*/
    #####:    #####: 8844:/*EOF*/
        -:        -: 8845:/*EOF*/
        -:        -: 8846:/*EOF*/
        -:        -: 8847:/*EOF*/
        -:        -: 8848:/*EOF*/
        -:        -: 8849:/*EOF*/
        -:        -: 8850:/*EOF*/
    #####:    #####: 8851:/*EOF*/
    #####:    #####: 8852:/*EOF*/
        -:        -: 8853:/*EOF*/
    #####:    #####: 8854:/*EOF*/
    #####:    #####: 8855:/*EOF*/
        -:        -: 8856:/*EOF*/
    #####:    #####: 8857:/*EOF*/
        -:        -: 8858:/*EOF*/
    #####:    #####: 8859:/*EOF*/
        -:        -: 8860:/*EOF*/
        -:        -: 8861:/*EOF*/
    #####:    #####: 8862:/*EOF*/
        -:        -: 8863:/*EOF*/
        -:        -: 8864:/*EOF*/
        -:        -: 8865:/*EOF*/
        -:        -: 8866:/*EOF*/
        -:        -: 8867:/*EOF*/
        -:        -: 8868:/*EOF*/
       68:        4: 8869:/*EOF*/
       34:        2: 8870:/*EOF*/
        -:        -: 8871:/*EOF*/
       34:        2: 8872:/*EOF*/
       34:        2: 8873:/*EOF*/
        -:        -: 8874:/*EOF*/
       34:        2: 8875:/*EOF*/
        -:        -: 8876:/*EOF*/
       34:        2: 8877:/*EOF*/
        -:        -: 8878:/*EOF*/
        -:        -: 8879:/*EOF*/
       34:        2: 8880:/*EOF*/
        -:        -: 8881:/*EOF*/
        -:        -: 8882:/*EOF*/
        -:        -: 8883:/*EOF*/
        -:        -: 8884:/*EOF*/
        -:        -: 8885:/*EOF*/
        -:        -: 8886:/*EOF*/
    #####:    #####: 8887:/*EOF*/
    #####:    #####: 8888:/*EOF*/
        -:        -: 8889:/*EOF*/
    #####:    #####: 8890:/*EOF*/
    #####:    #####: 8891:/*EOF*/
        -:        -: 8892:/*EOF*/
    #####:    #####: 8893:/*EOF*/
        -:        -: 8894:/*EOF*/
    #####:    #####: 8895:/*EOF*/
        -:        -: 8896:/*EOF*/
        -:        -: 8897:/*EOF*/
    #####:    #####: 8898:/*EOF*/
        -:        -: 8899:/*EOF*/
        -:        -: 8900:/*EOF*/
        -:        -: 8901:/*EOF*/
    #####:    #####: 8902:/*EOF*/
        -:        -: 8903:/*EOF*/
        -:        -: 8904:/*EOF*/
       34:        2: 8905:/*EOF*/
        -:        -: 8906:/*EOF*/
        -:        -: 8907:/*EOF*/
    #####:    #####: 8908:/*EOF*/
        -:        -: 8909:/*EOF*/
        -:        -: 8910:/*EOF*/
    #####:    #####: 8911:/*EOF*/
        -:        -: 8912:/*EOF*/
    #####:    #####: 8913:/*EOF*/
        -:        -: 8914:/*EOF*/
        -:        -: 8915:/*EOF*/
        -:        -: 8916:/*EOF*/
        -:        -: 8917:/*EOF*/
        -:        -: 8918:/*EOF*/
    #####:    #####: 8919:/*EOF*/
    #####:    #####: 8920:/*EOF*/
        -:        -: 8921:/*EOF*/
    #####:    #####: 8922:/*EOF*/
    #####:    #####: 8923:/*EOF*/
        -:        -: 8924:/*EOF*/
    #####:    #####: 8925:/*EOF*/
        -:        -: 8926:/*EOF*/
    #####:    #####: 8927:/*EOF*/
        -:        -: 8928:/*EOF*/
        -:        -: 8929:/*EOF*/
    #####:    #####: 8930:/*EOF*/
        -:        -: 8931:/*EOF*/
        -:        -: 8932:/*EOF*/
        -:        -: 8933:/*EOF*/
        -:        -: 8934:/*EOF*/
        -:        -: 8935:/*EOF*/
        -:        -: 8936:/*EOF*/
    #####:    #####: 8937:/*EOF*/
    #####:    #####: 8938:/*EOF*/
        -:        -: 8939:/*EOF*/
    #####:    #####: 8940:/*EOF*/
    #####:    #####: 8941:/*EOF*/
        -:        -: 8942:/*EOF*/
    #####:    #####: 8943:/*EOF*/
        -:        -: 8944:/*EOF*/
    #####:    #####: 8945:/*EOF*/
        -:        -: 8946:/*EOF*/
        -:        -: 8947:/*EOF*/
    #####:    #####: 8948:/*EOF*/
        -:        -: 8949:/*EOF*/
        -:        -: 8950:/*EOF*/
        -:        -: 8951:/*EOF*/
        -:        -: 8952:/*EOF*/
        -:        -: 8953:/*EOF*/
        -:        -: 8954:/*EOF*/
    #####:    #####: 8955:/*EOF*/
    #####:    #####: 8956:/*EOF*/
        -:        -: 8957:/*EOF*/
    #####:    #####: 8958:/*EOF*/
    #####:    #####: 8959:/*EOF*/
        -:        -: 8960:/*EOF*/
    #####:    #####: 8961:/*EOF*/
        -:        -: 8962:/*EOF*/
    #####:    #####: 8963:/*EOF*/
        -:        -: 8964:/*EOF*/
        -:        -: 8965:/*EOF*/
    #####:    #####: 8966:/*EOF*/
        -:        -: 8967:/*EOF*/
        -:        -: 8968:/*EOF*/
        -:        -: 8969:/*EOF*/
        -:        -: 8970:/*EOF*/
        -:        -: 8971:/*EOF*/
        -:        -: 8972:/*EOF*/
    #####:    #####: 8973:/*EOF*/
    #####:    #####: 8974:/*EOF*/
        -:        -: 8975:/*EOF*/
    #####:    #####: 8976:/*EOF*/
    #####:    #####: 8977:/*EOF*/
        -:        -: 8978:/*EOF*/
    #####:    #####: 8979:/*EOF*/
        -:        -: 8980:/*EOF*/
    #####:    #####: 8981:/*EOF*/
        -:        -: 8982:/*EOF*/
        -:        -: 8983:/*EOF*/
    #####:    #####: 8984:/*EOF*/
        -:        -: 8985:/*EOF*/
        -:        -: 8986:/*EOF*/
        -:        -: 8987:/*EOF*/
    #####:    #####: 8988:/*EOF*/
        -:        -: 8989:/*EOF*/
        -:        -: 8990:/*EOF*/
    #####:    #####: 8991:/*EOF*/
        -:        -: 8992:/*EOF*/
        -:        -: 8993:/*EOF*/
    #####:    #####: 8994:/*EOF*/
        -:        -: 8995:/*EOF*/
        -:        -: 8996:/*EOF*/
    #####:    #####: 8997:/*EOF*/
        -:        -: 8998:/*EOF*/
    #####:    #####: 8999:/*EOF*/
        -:        -: 9000:/*EOF*/
        -:        -: 9001:/*EOF*/
        -:        -: 9002:/*EOF*/
        -:        -: 9003:/*EOF*/
        -:        -: 9004:/*EOF*/
    #####:    #####: 9005:/*EOF*/
    #####:    #####: 9006:/*EOF*/
        -:        -: 9007:/*EOF*/
    #####:    #####: 9008:/*EOF*/
    #####:    #####: 9009:/*EOF*/
        -:        -: 9010:/*EOF*/
    #####:    #####: 9011:/*EOF*/
        -:        -: 9012:/*EOF*/
    #####:    #####: 9013:/*EOF*/
        -:        -: 9014:/*EOF*/
        -:        -: 9015:/*EOF*/
    #####:    #####: 9016:/*EOF*/
        -:        -: 9017:/*EOF*/
        -:        -: 9018:/*EOF*/
        -:        -: 9019:/*EOF*/
        -:        -: 9020:/*EOF*/
        -:        -: 9021:/*EOF*/
        -:        -: 9022:/*EOF*/
    #####:    #####: 9023:/*EOF*/
    #####:    #####: 9024:/*EOF*/
        -:        -: 9025:/*EOF*/
    #####:    #####: 9026:/*EOF*/
    #####:    #####: 9027:/*EOF*/
        -:        -: 9028:/*EOF*/
    #####:    #####: 9029:/*EOF*/
        -:        -: 9030:/*EOF*/
    #####:    #####: 9031:/*EOF*/
        -:        -: 9032:/*EOF*/
        -:        -: 9033:/*EOF*/
    #####:    #####: 9034:/*EOF*/
        -:        -: 9035:/*EOF*/
        -:        -: 9036:/*EOF*/
        -:        -: 9037:/*EOF*/
        -:        -: 9038:/*EOF*/
        -:        -: 9039:/*EOF*/
        -:        -: 9040:/*EOF*/
    #####:    #####: 9041:/*EOF*/
    #####:    #####: 9042:/*EOF*/
        -:        -: 9043:/*EOF*/
    #####:    #####: 9044:/*EOF*/
    #####:    #####: 9045:/*EOF*/
        -:        -: 9046:/*EOF*/
    #####:    #####: 9047:/*EOF*/
        -:        -: 9048:/*EOF*/
    #####:    #####: 9049:/*EOF*/
        -:        -: 9050:/*EOF*/
        -:        -: 9051:/*EOF*/
    #####:    #####: 9052:/*EOF*/
        -:        -: 9053:/*EOF*/
        -:        -: 9054:/*EOF*/
        -:        -: 9055:/*EOF*/
        -:        -: 9056:/*EOF*/
        -:        -: 9057:/*EOF*/
        -:        -: 9058:/*EOF*/
    #####:    #####: 9059:/*EOF*/
    #####:    #####: 9060:/*EOF*/
        -:        -: 9061:/*EOF*/
    #####:    #####: 9062:/*EOF*/
    #####:    #####: 9063:/*EOF*/
        -:        -: 9064:/*EOF*/
    #####:    #####: 9065:/*EOF*/
        -:        -: 9066:/*EOF*/
    #####:    #####: 9067:/*EOF*/
        -:        -: 9068:/*EOF*/
        -:        -: 9069:/*EOF*/
    #####:    #####: 9070:/*EOF*/
        -:        -: 9071:/*EOF*/
        -:        -: 9072:/*EOF*/
        -:        -: 9073:/*EOF*/
    #####:    #####: 9074:/*EOF*/
        -:        -: 9075:/*EOF*/
        -:        -: 9076:/*EOF*/
    #####:    #####: 9077:/*EOF*/
        -:        -: 9078:/*EOF*/
        -:        -: 9079:/*EOF*/
    #####:    #####: 9080:/*EOF*/
        -:        -: 9081:/*EOF*/
        -:        -: 9082:/*EOF*/
    #####:    #####: 9083:/*EOF*/
        -:        -: 9084:/*EOF*/
    #####:    #####: 9085:/*EOF*/
        -:        -: 9086:/*EOF*/
        -:        -: 9087:/*EOF*/
        -:        -: 9088:/*EOF*/
        -:        -: 9089:/*EOF*/
        -:        -: 9090:/*EOF*/
    #####:    #####: 9091:/*EOF*/
    #####:    #####: 9092:/*EOF*/
        -:        -: 9093:/*EOF*/
    #####:    #####: 9094:/*EOF*/
    #####:    #####: 9095:/*EOF*/
        -:        -: 9096:/*EOF*/
    #####:    #####: 9097:/*EOF*/
        -:        -: 9098:/*EOF*/
    #####:    #####: 9099:/*EOF*/
        -:        -: 9100:/*EOF*/
        -:        -: 9101:/*EOF*/
    #####:    #####: 9102:/*EOF*/
        -:        -: 9103:/*EOF*/
        -:        -: 9104:/*EOF*/
        -:        -: 9105:/*EOF*/
        -:        -: 9106:/*EOF*/
        -:        -: 9107:/*EOF*/
        -:        -: 9108:/*EOF*/
    #####:    #####: 9109:/*EOF*/
    #####:    #####: 9110:/*EOF*/
        -:        -: 9111:/*EOF*/
    #####:    #####: 9112:/*EOF*/
    #####:    #####: 9113:/*EOF*/
        -:        -: 9114:/*EOF*/
    #####:    #####: 9115:/*EOF*/
        -:        -: 9116:/*EOF*/
    #####:    #####: 9117:/*EOF*/
        -:        -: 9118:/*EOF*/
        -:        -: 9119:/*EOF*/
    #####:    #####: 9120:/*EOF*/
        -:        -: 9121:/*EOF*/
        -:        -: 9122:/*EOF*/
        -:        -: 9123:/*EOF*/
        -:        -: 9124:/*EOF*/
        -:        -: 9125:/*EOF*/
        -:        -: 9126:/*EOF*/
    #####:    #####: 9127:/*EOF*/
    #####:    #####: 9128:/*EOF*/
        -:        -: 9129:/*EOF*/
    #####:    #####: 9130:/*EOF*/
    #####:    #####: 9131:/*EOF*/
        -:        -: 9132:/*EOF*/
    #####:    #####: 9133:/*EOF*/
        -:        -: 9134:/*EOF*/
    #####:    #####: 9135:/*EOF*/
        -:        -: 9136:/*EOF*/
        -:        -: 9137:/*EOF*/
    #####:    #####: 9138:/*EOF*/
        -:        -: 9139:/*EOF*/
        -:        -: 9140:/*EOF*/
        -:        -: 9141:/*EOF*/
        -:        -: 9142:/*EOF*/
        -:        -: 9143:/*EOF*/
        -:        -: 9144:/*EOF*/
    #####:    #####: 9145:/*EOF*/
    #####:    #####: 9146:/*EOF*/
        -:        -: 9147:/*EOF*/
    #####:    #####: 9148:/*EOF*/
    #####:    #####: 9149:/*EOF*/
        -:        -: 9150:/*EOF*/
    #####:    #####: 9151:/*EOF*/
        -:        -: 9152:/*EOF*/
    #####:    #####: 9153:/*EOF*/
        -:        -: 9154:/*EOF*/
        -:        -: 9155:/*EOF*/
    #####:    #####: 9156:/*EOF*/
        -:        -: 9157:/*EOF*/
        -:        -: 9158:/*EOF*/
        -:        -: 9159:/*EOF*/
    #####:    #####: 9160:/*EOF*/
        -:        -: 9161:/*EOF*/
        -:        -: 9162:/*EOF*/
    #####:    #####: 9163:/*EOF*/
        -:        -: 9164:/*EOF*/
        -:        -: 9165:/*EOF*/
    #####:    #####: 9166:/*EOF*/
        -:        -: 9167:/*EOF*/
        -:        -: 9168:/*EOF*/
    #####:    #####: 9169:/*EOF*/
        -:        -: 9170:/*EOF*/
    #####:    #####: 9171:/*EOF*/
        -:        -: 9172:/*EOF*/
        -:        -: 9173:/*EOF*/
        -:        -: 9174:/*EOF*/
        -:        -: 9175:/*EOF*/
        -:        -: 9176:/*EOF*/
    #####:    #####: 9177:/*EOF*/
    #####:    #####: 9178:/*EOF*/
        -:        -: 9179:/*EOF*/
    #####:    #####: 9180:/*EOF*/
    #####:    #####: 9181:/*EOF*/
        -:        -: 9182:/*EOF*/
    #####:    #####: 9183:/*EOF*/
        -:        -: 9184:/*EOF*/
    #####:    #####: 9185:/*EOF*/
        -:        -: 9186:/*EOF*/
        -:        -: 9187:/*EOF*/
    #####:    #####: 9188:/*EOF*/
        -:        -: 9189:/*EOF*/
        -:        -: 9190:/*EOF*/
        -:        -: 9191:/*EOF*/
        -:        -: 9192:/*EOF*/
        -:        -: 9193:/*EOF*/
        -:        -: 9194:/*EOF*/
    #####:    #####: 9195:/*EOF*/
    #####:    #####: 9196:/*EOF*/
        -:        -: 9197:/*EOF*/
    #####:    #####: 9198:/*EOF*/
    #####:    #####: 9199:/*EOF*/
        -:        -: 9200:/*EOF*/
    #####:    #####: 9201:/*EOF*/
        -:        -: 9202:/*EOF*/
    #####:    #####: 9203:/*EOF*/
        -:        -: 9204:/*EOF*/
        -:        -: 9205:/*EOF*/
    #####:    #####: 9206:/*EOF*/
        -:        -: 9207:/*EOF*/
        -:        -: 9208:/*EOF*/
        -:        -: 9209:/*EOF*/
        -:        -: 9210:/*EOF*/
        -:        -: 9211:/*EOF*/
        -:        -: 9212:/*EOF*/
    #####:    #####: 9213:/*EOF*/
    #####:    #####: 9214:/*EOF*/
        -:        -: 9215:/*EOF*/
    #####:    #####: 9216:/*EOF*/
    #####:    #####: 9217:/*EOF*/
        -:        -: 9218:/*EOF*/
    #####:    #####: 9219:/*EOF*/
        -:        -: 9220:/*EOF*/
    #####:    #####: 9221:/*EOF*/
        -:        -: 9222:/*EOF*/
        -:        -: 9223:/*EOF*/
    #####:    #####: 9224:/*EOF*/
        -:        -: 9225:/*EOF*/
        -:        -: 9226:/*EOF*/
        -:        -: 9227:/*EOF*/
        -:        -: 9228:/*EOF*/
        -:        -: 9229:/*EOF*/
        -:        -: 9230:/*EOF*/
    #####:    #####: 9231:/*EOF*/
    #####:    #####: 9232:/*EOF*/
        -:        -: 9233:/*EOF*/
    #####:    #####: 9234:/*EOF*/
    #####:    #####: 9235:/*EOF*/
        -:        -: 9236:/*EOF*/
    #####:    #####: 9237:/*EOF*/
        -:        -: 9238:/*EOF*/
    #####:    #####: 9239:/*EOF*/
        -:        -: 9240:/*EOF*/
        -:        -: 9241:/*EOF*/
    #####:    #####: 9242:/*EOF*/
        -:        -: 9243:/*EOF*/
        -:        -: 9244:/*EOF*/
        -:        -: 9245:/*EOF*/
    #####:    #####: 9246:/*EOF*/
        -:        -: 9247:/*EOF*/
        -:        -: 9248:/*EOF*/
    #####:    #####: 9249:/*EOF*/
        -:        -: 9250:/*EOF*/
        -:        -: 9251:/*EOF*/
        3:        3: 9252:/*EOF*/
        -:        -: 9253:/*EOF*/
        -:        -: 9254:/*EOF*/
        3:        3: 9255:/*EOF*/
        -:        -: 9256:/*EOF*/
        3:        3: 9257:/*EOF*/
        -:        -: 9258:/*EOF*/
        -:        -: 9259:/*EOF*/
        -:        -: 9260:/*EOF*/
        -:        -: 9261:/*EOF*/
        -:        -: 9262:/*EOF*/
    #####:    #####: 9263:/*EOF*/
    #####:    #####: 9264:/*EOF*/
        -:        -: 9265:/*EOF*/
        -:        -: 9266:/*EOF*/
    #####:    #####: 9267:/*EOF*/
        -:        -: 9268:/*EOF*/
    #####:    #####: 9269:/*EOF*/
        -:        -: 9270:/*EOF*/
        -:        -: 9271:/*EOF*/
    #####:    #####: 9272:/*EOF*/
        -:        -: 9273:/*EOF*/
        -:        -: 9274:/*EOF*/
        -:        -: 9275:/*EOF*/
        -:        -: 9276:/*EOF*/
        -:        -: 9277:/*EOF*/
        -:        -: 9278:/*EOF*/
    #####:    #####: 9279:/*EOF*/
    #####:    #####: 9280:/*EOF*/
        -:        -: 9281:/*EOF*/
        -:        -: 9282:/*EOF*/
    #####:    #####: 9283:/*EOF*/
        -:        -: 9284:/*EOF*/
    #####:    #####: 9285:/*EOF*/
        -:        -: 9286:/*EOF*/
        -:        -: 9287:/*EOF*/
    #####:    #####: 9288:/*EOF*/
        -:        -: 9289:/*EOF*/
        -:        -: 9290:/*EOF*/
        -:        -: 9291:/*EOF*/
        -:        -: 9292:/*EOF*/
        -:        -: 9293:/*EOF*/
        -:        -: 9294:/*EOF*/
        6:        6: 9295:/*EOF*/
        3:        3: 9296:/*EOF*/
        -:        -: 9297:/*EOF*/
        -:        -: 9298:/*EOF*/
        3:        3: 9299:/*EOF*/
        -:        -: 9300:/*EOF*/
        3:        3: 9301:/*EOF*/
        -:        -: 9302:/*EOF*/
        -:        -: 9303:/*EOF*/
        3:        3: 9304:/*EOF*/
        -:        -: 9305:/*EOF*/
        -:        -: 9306:/*EOF*/
        -:        -: 9307:/*EOF*/
        -:        -: 9308:/*EOF*/
        -:        -: 9309:/*EOF*/
        -:        -: 9310:/*EOF*/
    #####:    #####: 9311:/*EOF*/
    #####:    #####: 9312:/*EOF*/
        -:        -: 9313:/*EOF*/
        -:        -: 9314:/*EOF*/
    #####:    #####: 9315:/*EOF*/
        -:        -: 9316:/*EOF*/
    #####:    #####: 9317:/*EOF*/
        -:        -: 9318:/*EOF*/
        -:        -: 9319:/*EOF*/
    #####:    #####: 9320:/*EOF*/
        -:        -: 9321:/*EOF*/
        -:        -: 9322:/*EOF*/
        -:        -: 9323:/*EOF*/
    #####:    #####: 9324:/*EOF*/
        -:        -: 9325:/*EOF*/
        -:        -: 9326:/*EOF*/
        3:        3: 9327:/*EOF*/
        -:        -: 9328:/*EOF*/
        -:        -: 9329:/*EOF*/
       34:        2: 9330:/*EOF*/
        -:        -: 9331:/*EOF*/
        -:        -: 9332:/*EOF*/
       34:        2: 9333:/*EOF*/
        -:        -: 9334:/*EOF*/
       34:        2: 9335:/*EOF*/
        -:        -: 9336:/*EOF*/
        -:        -: 9337:/*EOF*/
        -:        -: 9338:/*EOF*/
        -:        -: 9339:/*EOF*/
        -:        -: 9340:/*EOF*/
    #####:    #####: 9341:/*EOF*/
    #####:    #####: 9342:/*EOF*/
        -:        -: 9343:/*EOF*/
    #####:    #####: 9344:/*EOF*/
    #####:    #####: 9345:/*EOF*/
        -:        -: 9346:/*EOF*/
    #####:    #####: 9347:/*EOF*/
        -:        -: 9348:/*EOF*/
    #####:    #####: 9349:/*EOF*/
        -:        -: 9350:/*EOF*/
        -:        -: 9351:/*EOF*/
    #####:    #####: 9352:/*EOF*/
        -:        -: 9353:/*EOF*/
        -:        -: 9354:/*EOF*/
        -:        -: 9355:/*EOF*/
        -:        -: 9356:/*EOF*/
        -:        -: 9357:/*EOF*/
        -:        -: 9358:/*EOF*/
    #####:    #####: 9359:/*EOF*/
    #####:    #####: 9360:/*EOF*/
        -:        -: 9361:/*EOF*/
    #####:    #####: 9362:/*EOF*/
    #####:    #####: 9363:/*EOF*/
        -:        -: 9364:/*EOF*/
    #####:    #####: 9365:/*EOF*/
        -:        -: 9366:/*EOF*/
    #####:    #####: 9367:/*EOF*/
        -:        -: 9368:/*EOF*/
        -:        -: 9369:/*EOF*/
    #####:    #####: 9370:/*EOF*/
        -:        -: 9371:/*EOF*/
        -:        -: 9372:/*EOF*/
        -:        -: 9373:/*EOF*/
        -:        -: 9374:/*EOF*/
        -:        -: 9375:/*EOF*/
        -:        -: 9376:/*EOF*/
       68:        4: 9377:/*EOF*/
       34:        2: 9378:/*EOF*/
        -:        -: 9379:/*EOF*/
       34:        2: 9380:/*EOF*/
       34:        2: 9381:/*EOF*/
        -:        -: 9382:/*EOF*/
       34:        2: 9383:/*EOF*/
        -:        -: 9384:/*EOF*/
       34:        2: 9385:/*EOF*/
        -:        -: 9386:/*EOF*/
        -:        -: 9387:/*EOF*/
       34:        2: 9388:/*EOF*/
        -:        -: 9389:/*EOF*/
        -:        -: 9390:/*EOF*/
        -:        -: 9391:/*EOF*/
        -:        -: 9392:/*EOF*/
        -:        -: 9393:/*EOF*/
        -:        -: 9394:/*EOF*/
    #####:    #####: 9395:/*EOF*/
    #####:    #####: 9396:/*EOF*/
        -:        -: 9397:/*EOF*/
    #####:    #####: 9398:/*EOF*/
    #####:    #####: 9399:/*EOF*/
        -:        -: 9400:/*EOF*/
    #####:    #####: 9401:/*EOF*/
        -:        -: 9402:/*EOF*/
    #####:    #####: 9403:/*EOF*/
        -:        -: 9404:/*EOF*/
        -:        -: 9405:/*EOF*/
    #####:    #####: 9406:/*EOF*/
        -:        -: 9407:/*EOF*/
        -:        -: 9408:/*EOF*/
        -:        -: 9409:/*EOF*/
    #####:    #####: 9410:/*EOF*/
        -:        -: 9411:/*EOF*/
        -:        -: 9412:/*EOF*/
       34:        2: 9413:/*EOF*/
        -:        -: 9414:/*EOF*/
        -:        -: 9415:/*EOF*/
    #####:    #####: 9416:/*EOF*/
        -:        -: 9417:/*EOF*/
        -:        -: 9418:/*EOF*/
    #####:    #####: 9419:/*EOF*/
        -:        -: 9420:/*EOF*/
        -:        -: 9421:/*EOF*/
        -:        -: 9422:/*EOF*/
        -:        -: 9423:/*EOF*/
        -:        -: 9424:/*EOF*/
    #####:    #####: 9425:/*EOF*/
    #####:    #####: 9426:/*EOF*/
        -:        -: 9427:/*EOF*/
    #####:    #####: 9428:/*EOF*/
    #####:    #####: 9429:/*EOF*/
        -:        -: 9430:/*EOF*/
    #####:    #####: 9431:/*EOF*/
        -:        -: 9432:/*EOF*/
    #####:    #####: 9433:/*EOF*/
        -:        -: 9434:/*EOF*/
        -:        -: 9435:/*EOF*/
        -:        -: 9436:/*EOF*/
    #####:    #####: 9437:/*EOF*/
        -:        -: 9438:/*EOF*/
        -:        -: 9439:/*EOF*/
    #####:    #####: 9440:/*EOF*/
        -:        -: 9441:/*EOF*/
        -:        -: 9442:/*EOF*/
    #####:    #####: 9443:/*EOF*/
        -:        -: 9444:/*EOF*/
    #####:    #####: 9445:/*EOF*/
        -:        -: 9446:/*EOF*/
        -:        -: 9447:/*EOF*/
        -:        -: 9448:/*EOF*/
        -:        -: 9449:/*EOF*/
        -:        -: 9450:/*EOF*/
    #####:    #####: 9451:/*EOF*/
    #####:    #####: 9452:/*EOF*/
        -:        -: 9453:/*EOF*/
    #####:    #####: 9454:/*EOF*/
    #####:    #####: 9455:/*EOF*/
        -:        -: 9456:/*EOF*/
    #####:    #####: 9457:/*EOF*/
        -:        -: 9458:/*EOF*/
    #####:    #####: 9459:/*EOF*/
        -:        -: 9460:/*EOF*/
        -:        -: 9461:/*EOF*/
    #####:    #####: 9462:/*EOF*/
        -:        -: 9463:/*EOF*/
        -:        -: 9464:/*EOF*/
        -:        -: 9465:/*EOF*/
        -:        -: 9466:/*EOF*/
        -:        -: 9467:/*EOF*/
        -:        -: 9468:/*EOF*/
    #####:    #####: 9469:/*EOF*/
    #####:    #####: 9470:/*EOF*/
        -:        -: 9471:/*EOF*/
    #####:    #####: 9472:/*EOF*/
    #####:    #####: 9473:/*EOF*/
        -:        -: 9474:/*EOF*/
    #####:    #####: 9475:/*EOF*/
        -:        -: 9476:/*EOF*/
    #####:    #####: 9477:/*EOF*/
        -:        -: 9478:/*EOF*/
        -:        -: 9479:/*EOF*/
    #####:    #####: 9480:/*EOF*/
        -:        -: 9481:/*EOF*/
        -:        -: 9482:/*EOF*/
        -:        -: 9483:/*EOF*/
        -:        -: 9484:/*EOF*/
        -:        -: 9485:/*EOF*/
        -:        -: 9486:/*EOF*/
    #####:    #####: 9487:/*EOF*/
    #####:    #####: 9488:/*EOF*/
        -:        -: 9489:/*EOF*/
    #####:    #####: 9490:/*EOF*/
    #####:    #####: 9491:/*EOF*/
        -:        -: 9492:/*EOF*/
    #####:    #####: 9493:/*EOF*/
        -:        -: 9494:/*EOF*/
    #####:    #####: 9495:/*EOF*/
        -:        -: 9496:/*EOF*/
        -:        -: 9497:/*EOF*/
    #####:    #####: 9498:/*EOF*/
        -:        -: 9499:/*EOF*/
        -:        -: 9500:/*EOF*/
        -:        -: 9501:/*EOF*/
        -:        -: 9502:/*EOF*/
        -:        -: 9503:/*EOF*/
        -:        -: 9504:/*EOF*/
    #####:    #####: 9505:/*EOF*/
    #####:    #####: 9506:/*EOF*/
        -:        -: 9507:/*EOF*/
    #####:    #####: 9508:/*EOF*/
    #####:    #####: 9509:/*EOF*/
        -:        -: 9510:/*EOF*/
    #####:    #####: 9511:/*EOF*/
        -:        -: 9512:/*EOF*/
    #####:    #####: 9513:/*EOF*/
        -:        -: 9514:/*EOF*/
        -:        -: 9515:/*EOF*/
    #####:    #####: 9516:/*EOF*/
        -:        -: 9517:/*EOF*/
        -:        -: 9518:/*EOF*/
        -:        -: 9519:/*EOF*/
    #####:    #####: 9520:/*EOF*/
        -:        -: 9521:/*EOF*/
        -:        -: 9522:/*EOF*/
    #####:    #####: 9523:/*EOF*/
        -:        -: 9524:/*EOF*/
        -:        -: 9525:/*EOF*/
    #####:    #####: 9526:/*EOF*/
        -:        -: 9527:/*EOF*/
        -:        -: 9528:/*EOF*/
    #####:    #####: 9529:/*EOF*/
        -:        -: 9530:/*EOF*/
    #####:    #####: 9531:/*EOF*/
        -:        -: 9532:/*EOF*/
        -:        -: 9533:/*EOF*/
        -:        -: 9534:/*EOF*/
        -:        -: 9535:/*EOF*/
        -:        -: 9536:/*EOF*/
    #####:    #####: 9537:/*EOF*/
    #####:    #####: 9538:/*EOF*/
        -:        -: 9539:/*EOF*/
        -:        -: 9540:/*EOF*/
    #####:    #####: 9541:/*EOF*/
        -:        -: 9542:/*EOF*/
    #####:    #####: 9543:/*EOF*/
        -:        -: 9544:/*EOF*/
        -:        -: 9545:/*EOF*/
    #####:    #####: 9546:/*EOF*/
        -:        -: 9547:/*EOF*/
        -:        -: 9548:/*EOF*/
        -:        -: 9549:/*EOF*/
        -:        -: 9550:/*EOF*/
        -:        -: 9551:/*EOF*/
        -:        -: 9552:/*EOF*/
    #####:    #####: 9553:/*EOF*/
    #####:    #####: 9554:/*EOF*/
        -:        -: 9555:/*EOF*/
        -:        -: 9556:/*EOF*/
    #####:    #####: 9557:/*EOF*/
        -:        -: 9558:/*EOF*/
    #####:    #####: 9559:/*EOF*/
        -:        -: 9560:/*EOF*/
        -:        -: 9561:/*EOF*/
    #####:    #####: 9562:/*EOF*/
        -:        -: 9563:/*EOF*/
        -:        -: 9564:/*EOF*/
        -:        -: 9565:/*EOF*/
        -:        -: 9566:/*EOF*/
        -:        -: 9567:/*EOF*/
        -:        -: 9568:/*EOF*/
    #####:    #####: 9569:/*EOF*/
    #####:    #####: 9570:/*EOF*/
        -:        -: 9571:/*EOF*/
        -:        -: 9572:/*EOF*/
    #####:    #####: 9573:/*EOF*/
        -:        -: 9574:/*EOF*/
    #####:    #####: 9575:/*EOF*/
        -:        -: 9576:/*EOF*/
        -:        -: 9577:/*EOF*/
    #####:    #####: 9578:/*EOF*/
        -:        -: 9579:/*EOF*/
        -:        -: 9580:/*EOF*/
        -:        -: 9581:/*EOF*/
        -:        -: 9582:/*EOF*/
        -:        -: 9583:/*EOF*/
        -:        -: 9584:/*EOF*/
    #####:    #####: 9585:/*EOF*/
    #####:    #####: 9586:/*EOF*/
        -:        -: 9587:/*EOF*/
        -:        -: 9588:/*EOF*/
    #####:    #####: 9589:/*EOF*/
        -:        -: 9590:/*EOF*/
    #####:    #####: 9591:/*EOF*/
        -:        -: 9592:/*EOF*/
        -:        -: 9593:/*EOF*/
    #####:    #####: 9594:/*EOF*/
        -:        -: 9595:/*EOF*/
        -:        -: 9596:/*EOF*/
        -:        -: 9597:/*EOF*/
    #####:    #####: 9598:/*EOF*/
        -:        -: 9599:/*EOF*/
        -:        -: 9600:/*EOF*/
    #####:    #####: 9601:/*EOF*/
        -:        -: 9602:/*EOF*/
        -:        -: 9603:/*EOF*/
    #####:    #####: 9604:/*EOF*/
        -:        -: 9605:/*EOF*/
        -:        -: 9606:/*EOF*/
    #####:    #####: 9607:/*EOF*/
        -:        -: 9608:/*EOF*/
    #####:    #####: 9609:/*EOF*/
        -:        -: 9610:/*EOF*/
        -:        -: 9611:/*EOF*/
        -:        -: 9612:/*EOF*/
        -:        -: 9613:/*EOF*/
        -:        -: 9614:/*EOF*/
    #####:    #####: 9615:/*EOF*/
    #####:    #####: 9616:/*EOF*/
        -:        -: 9617:/*EOF*/
        -:        -: 9618:/*EOF*/
    #####:    #####: 9619:/*EOF*/
        -:        -: 9620:/*EOF*/
    #####:    #####: 9621:/*EOF*/
        -:        -: 9622:/*EOF*/
        -:        -: 9623:/*EOF*/
    #####:    #####: 9624:/*EOF*/
        -:        -: 9625:/*EOF*/
        -:        -: 9626:/*EOF*/
        -:        -: 9627:/*EOF*/
        -:        -: 9628:/*EOF*/
        -:        -: 9629:/*EOF*/
        -:        -: 9630:/*EOF*/
    #####:    #####: 9631:/*EOF*/
    #####:    #####: 9632:/*EOF*/
        -:        -: 9633:/*EOF*/
        -:        -: 9634:/*EOF*/
    #####:    #####: 9635:/*EOF*/
        -:        -: 9636:/*EOF*/
    #####:    #####: 9637:/*EOF*/
        -:        -: 9638:/*EOF*/
        -:        -: 9639:/*EOF*/
    #####:    #####: 9640:/*EOF*/
        -:        -: 9641:/*EOF*/
        -:        -: 9642:/*EOF*/
        -:        -: 9643:/*EOF*/
        -:        -: 9644:/*EOF*/
        -:        -: 9645:/*EOF*/
        -:        -: 9646:/*EOF*/
    #####:    #####: 9647:/*EOF*/
    #####:    #####: 9648:/*EOF*/
        -:        -: 9649:/*EOF*/
        -:        -: 9650:/*EOF*/
    #####:    #####: 9651:/*EOF*/
        -:        -: 9652:/*EOF*/
    #####:    #####: 9653:/*EOF*/
        -:        -: 9654:/*EOF*/
        -:        -: 9655:/*EOF*/
    #####:    #####: 9656:/*EOF*/
        -:        -: 9657:/*EOF*/
        -:        -: 9658:/*EOF*/
        -:        -: 9659:/*EOF*/
        -:        -: 9660:/*EOF*/
        -:        -: 9661:/*EOF*/
        -:        -: 9662:/*EOF*/
    #####:    #####: 9663:/*EOF*/
    #####:    #####: 9664:/*EOF*/
        -:        -: 9665:/*EOF*/
        -:        -: 9666:/*EOF*/
    #####:    #####: 9667:/*EOF*/
        -:        -: 9668:/*EOF*/
    #####:    #####: 9669:/*EOF*/
        -:        -: 9670:/*EOF*/
        -:        -: 9671:/*EOF*/
    #####:    #####: 9672:/*EOF*/
        -:        -: 9673:/*EOF*/
        -:        -: 9674:/*EOF*/
        -:        -: 9675:/*EOF*/
    #####:    #####: 9676:/*EOF*/
        -:        -: 9677:/*EOF*/
        -:        -: 9678:/*EOF*/
    #####:    #####: 9679:/*EOF*/
        -:        -: 9680:/*EOF*/
        -:        -: 9681:/*EOF*/
    #####:    #####: 9682:/*EOF*/
        -:        -: 9683:/*EOF*/
        -:        -: 9684:/*EOF*/
    #####:    #####: 9685:/*EOF*/
        -:        -: 9686:/*EOF*/
    #####:    #####: 9687:/*EOF*/
        -:        -: 9688:/*EOF*/
        -:        -: 9689:/*EOF*/
        -:        -: 9690:/*EOF*/
        -:        -: 9691:/*EOF*/
        -:        -: 9692:/*EOF*/
    #####:    #####: 9693:/*EOF*/
    #####:    #####: 9694:/*EOF*/
        -:        -: 9695:/*EOF*/
    #####:    #####: 9696:/*EOF*/
    #####:    #####: 9697:/*EOF*/
        -:        -: 9698:/*EOF*/
    #####:    #####: 9699:/*EOF*/
        -:        -: 9700:/*EOF*/
    #####:    #####: 9701:/*EOF*/
        -:        -: 9702:/*EOF*/
        -:        -: 9703:/*EOF*/
    #####:    #####: 9704:/*EOF*/
        -:        -: 9705:/*EOF*/
        -:        -: 9706:/*EOF*/
        -:        -: 9707:/*EOF*/
        -:        -: 9708:/*EOF*/
        -:        -: 9709:/*EOF*/
        -:        -: 9710:/*EOF*/
    #####:    #####: 9711:/*EOF*/
    #####:    #####: 9712:/*EOF*/
        -:        -: 9713:/*EOF*/
    #####:    #####: 9714:/*EOF*/
    #####:    #####: 9715:/*EOF*/
        -:        -: 9716:/*EOF*/
    #####:    #####: 9717:/*EOF*/
        -:        -: 9718:/*EOF*/
    #####:    #####: 9719:/*EOF*/
        -:        -: 9720:/*EOF*/
        -:        -: 9721:/*EOF*/
    #####:    #####: 9722:/*EOF*/
        -:        -: 9723:/*EOF*/
        -:        -: 9724:/*EOF*/
        -:        -: 9725:/*EOF*/
        -:        -: 9726:/*EOF*/
        -:        -: 9727:/*EOF*/
        -:        -: 9728:/*EOF*/
    #####:    #####: 9729:/*EOF*/
    #####:    #####: 9730:/*EOF*/
        -:        -: 9731:/*EOF*/
    #####:    #####: 9732:/*EOF*/
    #####:    #####: 9733:/*EOF*/
        -:        -: 9734:/*EOF*/
    #####:    #####: 9735:/*EOF*/
        -:        -: 9736:/*EOF*/
    #####:    #####: 9737:/*EOF*/
        -:        -: 9738:/*EOF*/
        -:        -: 9739:/*EOF*/
    #####:    #####: 9740:/*EOF*/
        -:        -: 9741:/*EOF*/
        -:        -: 9742:/*EOF*/
        -:        -: 9743:/*EOF*/
        -:        -: 9744:/*EOF*/
        -:        -: 9745:/*EOF*/
        -:        -: 9746:/*EOF*/
    #####:    #####: 9747:/*EOF*/
    #####:    #####: 9748:/*EOF*/
        -:        -: 9749:/*EOF*/
    #####:    #####: 9750:/*EOF*/
    #####:    #####: 9751:/*EOF*/
        -:        -: 9752:/*EOF*/
    #####:    #####: 9753:/*EOF*/
        -:        -: 9754:/*EOF*/
    #####:    #####: 9755:/*EOF*/
        -:        -: 9756:/*EOF*/
        -:        -: 9757:/*EOF*/
    #####:    #####: 9758:/*EOF*/
        -:        -: 9759:/*EOF*/
        -:        -: 9760:/*EOF*/
        -:        -: 9761:/*EOF*/
    #####:    #####: 9762:/*EOF*/
        -:        -: 9763:/*EOF*/
        -:        -: 9764:/*EOF*/
    #####:    #####: 9765:/*EOF*/
        -:        -: 9766:/*EOF*/
        -:        -: 9767:/*EOF*/
    #####:    #####: 9768:/*EOF*/
        -:        -: 9769:/*EOF*/
        -:        -: 9770:/*EOF*/
    #####:    #####: 9771:/*EOF*/
        -:        -: 9772:/*EOF*/
    #####:    #####: 9773:/*EOF*/
        -:        -: 9774:/*EOF*/
        -:        -: 9775:/*EOF*/
        -:        -: 9776:/*EOF*/
        -:        -: 9777:/*EOF*/
        -:        -: 9778:/*EOF*/
    #####:    #####: 9779:/*EOF*/
    #####:    #####: 9780:/*EOF*/
        -:        -: 9781:/*EOF*/
    #####:    #####: 9782:/*EOF*/
    #####:    #####: 9783:/*EOF*/
        -:        -: 9784:/*EOF*/
    #####:    #####: 9785:/*EOF*/
        -:        -: 9786:/*EOF*/
    #####:    #####: 9787:/*EOF*/
        -:        -: 9788:/*EOF*/
        -:        -: 9789:/*EOF*/
    #####:    #####: 9790:/*EOF*/
        -:        -: 9791:/*EOF*/
        -:        -: 9792:/*EOF*/
        -:        -: 9793:/*EOF*/
        -:        -: 9794:/*EOF*/
        -:        -: 9795:/*EOF*/
        -:        -: 9796:/*EOF*/
    #####:    #####: 9797:/*EOF*/
    #####:    #####: 9798:/*EOF*/
        -:        -: 9799:/*EOF*/
    #####:    #####: 9800:/*EOF*/
    #####:    #####: 9801:/*EOF*/
        -:        -: 9802:/*EOF*/
    #####:    #####: 9803:/*EOF*/
        -:        -: 9804:/*EOF*/
    #####:    #####: 9805:/*EOF*/
        -:        -: 9806:/*EOF*/
        -:        -: 9807:/*EOF*/
    #####:    #####: 9808:/*EOF*/
        -:        -: 9809:/*EOF*/
        -:        -: 9810:/*EOF*/
        -:        -: 9811:/*EOF*/
        -:        -: 9812:/*EOF*/
        -:        -: 9813:/*EOF*/
        -:        -: 9814:/*EOF*/
    #####:    #####: 9815:/*EOF*/
    #####:    #####: 9816:/*EOF*/
        -:        -: 9817:/*EOF*/
    #####:    #####: 9818:/*EOF*/
    #####:    #####: 9819:/*EOF*/
        -:        -: 9820:/*EOF*/
    #####:    #####: 9821:/*EOF*/
        -:        -: 9822:/*EOF*/
    #####:    #####: 9823:/*EOF*/
        -:        -: 9824:/*EOF*/
        -:        -: 9825:/*EOF*/
    #####:    #####: 9826:/*EOF*/
        -:        -: 9827:/*EOF*/
        -:        -: 9828:/*EOF*/
        -:        -: 9829:/*EOF*/
        -:        -: 9830:/*EOF*/
        -:        -: 9831:/*EOF*/
        -:        -: 9832:/*EOF*/
    #####:    #####: 9833:/*EOF*/
    #####:    #####: 9834:/*EOF*/
        -:        -: 9835:/*EOF*/
    #####:    #####: 9836:/*EOF*/
    #####:    #####: 9837:/*EOF*/
        -:        -: 9838:/*EOF*/
    #####:    #####: 9839:/*EOF*/
        -:        -: 9840:/*EOF*/
    #####:    #####: 9841:/*EOF*/
        -:        -: 9842:/*EOF*/
        -:        -: 9843:/*EOF*/
    #####:    #####: 9844:/*EOF*/
        -:        -: 9845:/*EOF*/
        -:        -: 9846:/*EOF*/
        -:        -: 9847:/*EOF*/
    #####:    #####: 9848:/*EOF*/
        -:        -: 9849:/*EOF*/
        -:        -: 9850:/*EOF*/
    #####:    #####: 9851:/*EOF*/
        -:        -: 9852:/*EOF*/
        -:        -: 9853:/*EOF*/
    #####:    #####: 9854:/*EOF*/
        -:        -: 9855:/*EOF*/
        -:        -: 9856:/*EOF*/
    #####:    #####: 9857:/*EOF*/
        -:        -: 9858:/*EOF*/
    #####:    #####: 9859:/*EOF*/
        -:        -: 9860:/*EOF*/
        -:        -: 9861:/*EOF*/
        -:        -: 9862:/*EOF*/
        -:        -: 9863:/*EOF*/
        -:        -: 9864:/*EOF*/
    #####:    #####: 9865:/*EOF*/
    #####:    #####: 9866:/*EOF*/
        -:        -: 9867:/*EOF*/
    #####:    #####: 9868:/*EOF*/
    #####:    #####: 9869:/*EOF*/
        -:        -: 9870:/*EOF*/
    #####:    #####: 9871:/*EOF*/
        -:        -: 9872:/*EOF*/
    #####:    #####: 9873:/*EOF*/
        -:        -: 9874:/*EOF*/
        -:        -: 9875:/*EOF*/
    #####:    #####: 9876:/*EOF*/
        -:        -: 9877:/*EOF*/
        -:        -: 9878:/*EOF*/
        -:        -: 9879:/*EOF*/
        -:        -: 9880:/*EOF*/
        -:        -: 9881:/*EOF*/
        -:        -: 9882:/*EOF*/
    #####:    #####: 9883:/*EOF*/
    #####:    #####: 9884:/*EOF*/
        -:        -: 9885:/*EOF*/
    #####:    #####: 9886:/*EOF*/
    #####:    #####: 9887:/*EOF*/
        -:        -: 9888:/*EOF*/
    #####:    #####: 9889:/*EOF*/
        -:        -: 9890:/*EOF*/
    #####:    #####: 9891:/*EOF*/
        -:        -: 9892:/*EOF*/
        -:        -: 9893:/*EOF*/
    #####:    #####: 9894:/*EOF*/
        -:        -: 9895:/*EOF*/
        -:        -: 9896:/*EOF*/
        -:        -: 9897:/*EOF*/
        -:        -: 9898:/*EOF*/
        -:        -: 9899:/*EOF*/
        -:        -: 9900:/*EOF*/
    #####:    #####: 9901:/*EOF*/
    #####:    #####: 9902:/*EOF*/
        -:        -: 9903:/*EOF*/
    #####:    #####: 9904:/*EOF*/
    #####:    #####: 9905:/*EOF*/
        -:        -: 9906:/*EOF*/
    #####:    #####: 9907:/*EOF*/
        -:        -: 9908:/*EOF*/
    #####:    #####: 9909:/*EOF*/
        -:        -: 9910:/*EOF*/
        -:        -: 9911:/*EOF*/
    #####:    #####: 9912:/*EOF*/
        -:        -: 9913:/*EOF*/
        -:        -: 9914:/*EOF*/
        -:        -: 9915:/*EOF*/
        -:        -: 9916:/*EOF*/
        -:        -: 9917:/*EOF*/
        -:        -: 9918:/*EOF*/
    #####:    #####: 9919:/*EOF*/
    #####:    #####: 9920:/*EOF*/
        -:        -: 9921:/*EOF*/
    #####:    #####: 9922:/*EOF*/
    #####:    #####: 9923:/*EOF*/
        -:        -: 9924:/*EOF*/
    #####:    #####: 9925:/*EOF*/
        -:        -: 9926:/*EOF*/
    #####:    #####: 9927:/*EOF*/
        -:        -: 9928:/*EOF*/
        -:        -: 9929:/*EOF*/
    #####:    #####: 9930:/*EOF*/
        -:        -: 9931:/*EOF*/
        -:        -: 9932:/*EOF*/
        -:        -: 9933:/*EOF*/
    #####:    #####: 9934:/*EOF*/
        -:        -: 9935:/*EOF*/
        -:        -: 9936:/*EOF*/
    #####:    #####: 9937:/*EOF*/
        -:        -: 9938:/*EOF*/
        -:        -: 9939:/*EOF*/
    #####:    #####: 9940:/*EOF*/
        -:        -: 9941:/*EOF*/
        -:        -: 9942:/*EOF*/
    #####:    #####: 9943:/*EOF*/
        -:        -: 9944:/*EOF*/
    #####:    #####: 9945:/*EOF*/
        -:        -: 9946:/*EOF*/
        -:        -: 9947:/*EOF*/
        -:        -: 9948:/*EOF*/
        -:        -: 9949:/*EOF*/
        -:        -: 9950:/*EOF*/
    #####:    #####: 9951:/*EOF*/
    #####:    #####: 9952:/*EOF*/
        -:        -: 9953:/*EOF*/
    #####:    #####: 9954:/*EOF*/
    #####:    #####: 9955:/*EOF*/
        -:        -: 9956:/*EOF*/
    #####:    #####: 9957:/*EOF*/
        -:        -: 9958:/*EOF*/
    #####:    #####: 9959:/*EOF*/
        -:        -: 9960:/*EOF*/
        -:        -: 9961:/*EOF*/
    #####:    #####: 9962:/*EOF*/
        -:        -: 9963:/*EOF*/
        -:        -: 9964:/*EOF*/
        -:        -: 9965:/*EOF*/
        -:        -: 9966:/*EOF*/
        -:        -: 9967:/*EOF*/
        -:        -: 9968:/*EOF*/
    #####:    #####: 9969:/*EOF*/
    #####:    #####: 9970:/*EOF*/
        -:        -: 9971:/*EOF*/
    #####:    #####: 9972:/*EOF*/
    #####:    #####: 9973:/*EOF*/
        -:        -: 9974:/*EOF*/
    #####:    #####: 9975:/*EOF*/
        -:        -: 9976:/*EOF*/
    #####:    #####: 9977:/*EOF*/
        -:        -: 9978:/*EOF*/
        -:        -: 9979:/*EOF*/
    #####:    #####: 9980:/*EOF*/
        -:        -: 9981:/*EOF*/
        -:        -: 9982:/*EOF*/
        -:        -: 9983:/*EOF*/
        -:        -: 9984:/*EOF*/
        -:        -: 9985:/*EOF*/
        -:        -: 9986:/*EOF*/
    #####:    #####: 9987:/*EOF*/
    #####:    #####: 9988:/*EOF*/
        -:        -: 9989:/*EOF*/
    #####:    #####: 9990:/*EOF*/
    #####:    #####: 9991:/*EOF*/
        -:        -: 9992:/*EOF*/
    #####:    #####: 9993:/*EOF*/
        -:        -: 9994:/*EOF*/
    #####:    #####: 9995:/*EOF*/
        -:        -: 9996:/*EOF*/
        -:        -: 9997:/*EOF*/
    #####:    #####: 9998:/*EOF*/
        -:        -: 9999:/*EOF*/
        -:        -:10000:/*EOF*/
        -:        -:10001:/*EOF*/
        -:        -:10002:/*EOF*/
        -:        -:10003:/*EOF*/
        -:        -:10004:/*EOF*/
    #####:    #####:10005:/*EOF*/
    #####:    #####:10006:/*EOF*/
        -:        -:10007:/*EOF*/
    #####:    #####:10008:/*EOF*/
    #####:    #####:10009:/*EOF*/
        -:        -:10010:/*EOF*/
    #####:    #####:10011:/*EOF*/
        -:        -:10012:/*EOF*/
    #####:    #####:10013:/*EOF*/
        -:        -:10014:/*EOF*/
        -:        -:10015:/*EOF*/
    #####:    #####:10016:/*EOF*/
        -:        -:10017:/*EOF*/
        -:        -:10018:/*EOF*/
        -:        -:10019:/*EOF*/
    #####:    #####:10020:/*EOF*/
        -:        -:10021:/*EOF*/
        -:        -:10022:/*EOF*/
    #####:    #####:10023:/*EOF*/
        -:        -:10024:/*EOF*/
        -:        -:10025:/*EOF*/
    #####:    #####:10026:/*EOF*/
        -:        -:10027:/*EOF*/
        -:        -:10028:/*EOF*/
    #####:    #####:10029:/*EOF*/
        -:        -:10030:/*EOF*/
    #####:    #####:10031:/*EOF*/
        -:        -:10032:/*EOF*/
        -:        -:10033:/*EOF*/
        -:        -:10034:/*EOF*/
        -:        -:10035:/*EOF*/
        -:        -:10036:/*EOF*/
    #####:    #####:10037:/*EOF*/
    #####:    #####:10038:/*EOF*/
        -:        -:10039:/*EOF*/
        -:        -:10040:/*EOF*/
    #####:    #####:10041:/*EOF*/
        -:        -:10042:/*EOF*/
    #####:    #####:10043:/*EOF*/
        -:        -:10044:/*EOF*/
        -:        -:10045:/*EOF*/
    #####:    #####:10046:/*EOF*/
        -:        -:10047:/*EOF*/
        -:        -:10048:/*EOF*/
        -:        -:10049:/*EOF*/
        -:        -:10050:/*EOF*/
        -:        -:10051:/*EOF*/
        -:        -:10052:/*EOF*/
    #####:    #####:10053:/*EOF*/
    #####:    #####:10054:/*EOF*/
        -:        -:10055:/*EOF*/
        -:        -:10056:/*EOF*/
    #####:    #####:10057:/*EOF*/
        -:        -:10058:/*EOF*/
    #####:    #####:10059:/*EOF*/
        -:        -:10060:/*EOF*/
        -:        -:10061:/*EOF*/
    #####:    #####:10062:/*EOF*/
        -:        -:10063:/*EOF*/
        -:        -:10064:/*EOF*/
        -:        -:10065:/*EOF*/
        -:        -:10066:/*EOF*/
        -:        -:10067:/*EOF*/
        -:        -:10068:/*EOF*/
    #####:    #####:10069:/*EOF*/
    #####:    #####:10070:/*EOF*/
        -:        -:10071:/*EOF*/
        -:        -:10072:/*EOF*/
    #####:    #####:10073:/*EOF*/
        -:        -:10074:/*EOF*/
    #####:    #####:10075:/*EOF*/
        -:        -:10076:/*EOF*/
        -:        -:10077:/*EOF*/
    #####:    #####:10078:/*EOF*/
        -:        -:10079:/*EOF*/
        -:        -:10080:/*EOF*/
        -:        -:10081:/*EOF*/
        -:        -:10082:/*EOF*/
        -:        -:10083:/*EOF*/
        -:        -:10084:/*EOF*/
    #####:    #####:10085:/*EOF*/
    #####:    #####:10086:/*EOF*/
        -:        -:10087:/*EOF*/
        -:        -:10088:/*EOF*/
    #####:    #####:10089:/*EOF*/
        -:        -:10090:/*EOF*/
    #####:    #####:10091:/*EOF*/
        -:        -:10092:/*EOF*/
        -:        -:10093:/*EOF*/
    #####:    #####:10094:/*EOF*/
        -:        -:10095:/*EOF*/
        -:        -:10096:/*EOF*/
        -:        -:10097:/*EOF*/
    #####:    #####:10098:/*EOF*/
        -:        -:10099:/*EOF*/
        -:        -:10100:/*EOF*/
    #####:    #####:10101:/*EOF*/
        -:        -:10102:/*EOF*/
        -:        -:10103:/*EOF*/
    #####:    #####:10104:/*EOF*/
        -:        -:10105:/*EOF*/
        -:        -:10106:/*EOF*/
    #####:    #####:10107:/*EOF*/
        -:        -:10108:/*EOF*/
    #####:    #####:10109:/*EOF*/
        -:        -:10110:/*EOF*/
        -:        -:10111:/*EOF*/
        -:        -:10112:/*EOF*/
        -:        -:10113:/*EOF*/
        -:        -:10114:/*EOF*/
    #####:    #####:10115:/*EOF*/
    #####:    #####:10116:/*EOF*/
        -:        -:10117:/*EOF*/
    #####:    #####:10118:/*EOF*/
    #####:    #####:10119:/*EOF*/
        -:        -:10120:/*EOF*/
    #####:    #####:10121:/*EOF*/
        -:        -:10122:/*EOF*/
    #####:    #####:10123:/*EOF*/
        -:        -:10124:/*EOF*/
        -:        -:10125:/*EOF*/
    #####:    #####:10126:/*EOF*/
        -:        -:10127:/*EOF*/
        -:        -:10128:/*EOF*/
        -:        -:10129:/*EOF*/
        -:        -:10130:/*EOF*/
        -:        -:10131:/*EOF*/
        -:        -:10132:/*EOF*/
    #####:    #####:10133:/*EOF*/
    #####:    #####:10134:/*EOF*/
        -:        -:10135:/*EOF*/
    #####:    #####:10136:/*EOF*/
    #####:    #####:10137:/*EOF*/
        -:        -:10138:/*EOF*/
    #####:    #####:10139:/*EOF*/
        -:        -:10140:/*EOF*/
    #####:    #####:10141:/*EOF*/
        -:        -:10142:/*EOF*/
        -:        -:10143:/*EOF*/
    #####:    #####:10144:/*EOF*/
        -:        -:10145:/*EOF*/
        -:        -:10146:/*EOF*/
        -:        -:10147:/*EOF*/
        -:        -:10148:/*EOF*/
        -:        -:10149:/*EOF*/
        -:        -:10150:/*EOF*/
    #####:    #####:10151:/*EOF*/
    #####:    #####:10152:/*EOF*/
        -:        -:10153:/*EOF*/
    #####:    #####:10154:/*EOF*/
    #####:    #####:10155:/*EOF*/
        -:        -:10156:/*EOF*/
    #####:    #####:10157:/*EOF*/
        -:        -:10158:/*EOF*/
    #####:    #####:10159:/*EOF*/
        -:        -:10160:/*EOF*/
        -:        -:10161:/*EOF*/
    #####:    #####:10162:/*EOF*/
        -:        -:10163:/*EOF*/
        -:        -:10164:/*EOF*/
        -:        -:10165:/*EOF*/
        -:        -:10166:/*EOF*/
        -:        -:10167:/*EOF*/
        -:        -:10168:/*EOF*/
    #####:    #####:10169:/*EOF*/
    #####:    #####:10170:/*EOF*/
        -:        -:10171:/*EOF*/
    #####:    #####:10172:/*EOF*/
    #####:    #####:10173:/*EOF*/
        -:        -:10174:/*EOF*/
    #####:    #####:10175:/*EOF*/
        -:        -:10176:/*EOF*/
    #####:    #####:10177:/*EOF*/
        -:        -:10178:/*EOF*/
        -:        -:10179:/*EOF*/
    #####:    #####:10180:/*EOF*/
        -:        -:10181:/*EOF*/
        -:        -:10182:/*EOF*/
        -:        -:10183:/*EOF*/
    #####:    #####:10184:/*EOF*/
        -:        -:10185:/*EOF*/
        -:        -:10186:/*EOF*/
    #####:    #####:10187:/*EOF*/
        -:        -:10188:/*EOF*/
        -:        -:10189:/*EOF*/
    #####:    #####:10190:/*EOF*/
        -:        -:10191:/*EOF*/
        -:        -:10192:/*EOF*/
    #####:    #####:10193:/*EOF*/
        -:        -:10194:/*EOF*/
    #####:    #####:10195:/*EOF*/
        -:        -:10196:/*EOF*/
        -:        -:10197:/*EOF*/
        -:        -:10198:/*EOF*/
        -:        -:10199:/*EOF*/
        -:        -:10200:/*EOF*/
    #####:    #####:10201:/*EOF*/
    #####:    #####:10202:/*EOF*/
        -:        -:10203:/*EOF*/
    #####:    #####:10204:/*EOF*/
    #####:    #####:10205:/*EOF*/
        -:        -:10206:/*EOF*/
    #####:    #####:10207:/*EOF*/
        -:        -:10208:/*EOF*/
    #####:    #####:10209:/*EOF*/
        -:        -:10210:/*EOF*/
        -:        -:10211:/*EOF*/
    #####:    #####:10212:/*EOF*/
        -:        -:10213:/*EOF*/
        -:        -:10214:/*EOF*/
        -:        -:10215:/*EOF*/
        -:        -:10216:/*EOF*/
        -:        -:10217:/*EOF*/
        -:        -:10218:/*EOF*/
    #####:    #####:10219:/*EOF*/
    #####:    #####:10220:/*EOF*/
        -:        -:10221:/*EOF*/
    #####:    #####:10222:/*EOF*/
    #####:    #####:10223:/*EOF*/
        -:        -:10224:/*EOF*/
    #####:    #####:10225:/*EOF*/
        -:        -:10226:/*EOF*/
    #####:    #####:10227:/*EOF*/
        -:        -:10228:/*EOF*/
        -:        -:10229:/*EOF*/
    #####:    #####:10230:/*EOF*/
        -:        -:10231:/*EOF*/
        -:        -:10232:/*EOF*/
        -:        -:10233:/*EOF*/
        -:        -:10234:/*EOF*/
        -:        -:10235:/*EOF*/
        -:        -:10236:/*EOF*/
    #####:    #####:10237:/*EOF*/
    #####:    #####:10238:/*EOF*/
        -:        -:10239:/*EOF*/
    #####:    #####:10240:/*EOF*/
    #####:    #####:10241:/*EOF*/
        -:        -:10242:/*EOF*/
    #####:    #####:10243:/*EOF*/
        -:        -:10244:/*EOF*/
    #####:    #####:10245:/*EOF*/
        -:        -:10246:/*EOF*/
        -:        -:10247:/*EOF*/
    #####:    #####:10248:/*EOF*/
        -:        -:10249:/*EOF*/
        -:        -:10250:/*EOF*/
        -:        -:10251:/*EOF*/
        -:        -:10252:/*EOF*/
        -:        -:10253:/*EOF*/
        -:        -:10254:/*EOF*/
    #####:    #####:10255:/*EOF*/
    #####:    #####:10256:/*EOF*/
        -:        -:10257:/*EOF*/
    #####:    #####:10258:/*EOF*/
    #####:    #####:10259:/*EOF*/
        -:        -:10260:/*EOF*/
    #####:    #####:10261:/*EOF*/
        -:        -:10262:/*EOF*/
    #####:    #####:10263:/*EOF*/
        -:        -:10264:/*EOF*/
        -:        -:10265:/*EOF*/
    #####:    #####:10266:/*EOF*/
        -:        -:10267:/*EOF*/
        -:        -:10268:/*EOF*/
        -:        -:10269:/*EOF*/
    #####:    #####:10270:/*EOF*/
        -:        -:10271:/*EOF*/
        -:        -:10272:/*EOF*/
    #####:    #####:10273:/*EOF*/
        -:        -:10274:/*EOF*/
        -:        -:10275:/*EOF*/
    #####:    #####:10276:/*EOF*/
        -:        -:10277:/*EOF*/
        -:        -:10278:/*EOF*/
    #####:    #####:10279:/*EOF*/
        -:        -:10280:/*EOF*/
    #####:    #####:10281:/*EOF*/
        -:        -:10282:/*EOF*/
        -:        -:10283:/*EOF*/
        -:        -:10284:/*EOF*/
        -:        -:10285:/*EOF*/
        -:        -:10286:/*EOF*/
    #####:    #####:10287:/*EOF*/
    #####:    #####:10288:/*EOF*/
    #####:    #####:10289:/*EOF*/
    #####:    #####:10290:/*EOF*/
    #####:    #####:10291:/*EOF*/
        -:        -:10292:/*EOF*/
        -:        -:10293:/*EOF*/
        -:        -:10294:/*EOF*/
        -:        -:10295:/*EOF*/
    #####:    #####:10296:/*EOF*/
        -:        -:10297:/*EOF*/
    #####:    #####:10298:/*EOF*/
    #####:    #####:10299:/*EOF*/
        -:        -:10300:/*EOF*/
        -:        -:10301:/*EOF*/
    #####:    #####:10302:/*EOF*/
        -:        -:10303:/*EOF*/
        -:        -:10304:/*EOF*/
    #####:    #####:10305:/*EOF*/
        -:        -:10306:/*EOF*/
        -:        -:10307:/*EOF*/
        -:        -:10308:/*EOF*/
        -:        -:10309:/*EOF*/
        -:        -:10310:/*EOF*/
        -:        -:10311:/*EOF*/
    #####:    #####:10312:/*EOF*/
    #####:    #####:10313:/*EOF*/
        -:        -:10314:/*EOF*/
    #####:    #####:10315:/*EOF*/
    #####:    #####:10316:/*EOF*/
        -:        -:10317:/*EOF*/
        -:        -:10318:/*EOF*/
        -:        -:10319:/*EOF*/
        -:        -:10320:/*EOF*/
    #####:    #####:10321:/*EOF*/
        -:        -:10322:/*EOF*/
    #####:    #####:10323:/*EOF*/
    #####:    #####:10324:/*EOF*/
        -:        -:10325:/*EOF*/
        -:        -:10326:/*EOF*/
    #####:    #####:10327:/*EOF*/
        -:        -:10328:/*EOF*/
        -:        -:10329:/*EOF*/
    #####:    #####:10330:/*EOF*/
        -:        -:10331:/*EOF*/
        -:        -:10332:/*EOF*/
        -:        -:10333:/*EOF*/
        -:        -:10334:/*EOF*/
        -:        -:10335:/*EOF*/
        -:        -:10336:/*EOF*/
    #####:    #####:10337:/*EOF*/
    #####:    #####:10338:/*EOF*/
        -:        -:10339:/*EOF*/
    #####:    #####:10340:/*EOF*/
    #####:    #####:10341:/*EOF*/
        -:        -:10342:/*EOF*/
        -:        -:10343:/*EOF*/
        -:        -:10344:/*EOF*/
        -:        -:10345:/*EOF*/
    #####:    #####:10346:/*EOF*/
        -:        -:10347:/*EOF*/
    #####:    #####:10348:/*EOF*/
    #####:    #####:10349:/*EOF*/
        -:        -:10350:/*EOF*/
        -:        -:10351:/*EOF*/
    #####:    #####:10352:/*EOF*/
        -:        -:10353:/*EOF*/
        -:        -:10354:/*EOF*/
    #####:    #####:10355:/*EOF*/
        -:        -:10356:/*EOF*/
        -:        -:10357:/*EOF*/
        -:        -:10358:/*EOF*/
    #####:    #####:10359:/*EOF*/
        -:        -:10360:/*EOF*/
        -:        -:10361:/*EOF*/
    #####:    #####:10362:/*EOF*/
        -:        -:10363:/*EOF*/
        -:        -:10364:/*EOF*/
    #####:    #####:10365:/*EOF*/
        -:        -:10366:/*EOF*/
        -:        -:10367:/*EOF*/
    #####:    #####:10368:/*EOF*/
        -:        -:10369:/*EOF*/
        -:        -:10370:/*EOF*/
        -:        -:10371:/*EOF*/
        -:        -:10372:/*EOF*/
        -:        -:10373:/*EOF*/
    #####:    #####:10374:/*EOF*/
    #####:    #####:10375:/*EOF*/
    #####:    #####:10376:/*EOF*/
        -:        -:10377:/*EOF*/
        -:        -:10378:/*EOF*/
        -:        -:10379:/*EOF*/
        -:        -:10380:/*EOF*/
        -:        -:10381:/*EOF*/
        -:        -:10382:/*EOF*/
    #####:    #####:10383:/*EOF*/
        -:        -:10384:/*EOF*/
    #####:    #####:10385:/*EOF*/
        -:        -:10386:/*EOF*/
        -:        -:10387:/*EOF*/
    #####:    #####:10388:/*EOF*/
        -:        -:10389:/*EOF*/
        -:        -:10390:/*EOF*/
    #####:    #####:10391:/*EOF*/
        -:        -:10392:/*EOF*/
        -:        -:10393:/*EOF*/
    #####:    #####:10394:/*EOF*/
        -:        -:10395:/*EOF*/
        -:        -:10396:/*EOF*/
        -:        -:10397:/*EOF*/
        -:        -:10398:/*EOF*/
        -:        -:10399:/*EOF*/
    #####:    #####:10400:/*EOF*/
    #####:    #####:10401:/*EOF*/
        -:        -:10402:/*EOF*/
    #####:    #####:10403:/*EOF*/
    #####:    #####:10404:/*EOF*/
        -:        -:10405:/*EOF*/
    #####:    #####:10406:/*EOF*/
        -:        -:10407:/*EOF*/
    #####:    #####:10408:/*EOF*/
        -:        -:10409:/*EOF*/
        -:        -:10410:/*EOF*/
        -:        -:10411:/*EOF*/
    #####:    #####:10412:/*EOF*/
        -:        -:10413:/*EOF*/
        -:        -:10414:/*EOF*/
    #####:    #####:10415:/*EOF*/
        -:        -:10416:/*EOF*/
        -:        -:10417:/*EOF*/
    #####:    #####:10418:/*EOF*/
        -:        -:10419:/*EOF*/
        -:        -:10420:/*EOF*/
        -:        -:10421:/*EOF*/
        -:        -:10422:/*EOF*/
        -:        -:10423:/*EOF*/
    #####:    #####:10424:/*EOF*/
    #####:    #####:10425:/*EOF*/
    #####:    #####:10426:/*EOF*/
        -:        -:10427:/*EOF*/
        -:        -:10428:/*EOF*/
        -:        -:10429:/*EOF*/
        -:        -:10430:/*EOF*/
        -:        -:10431:/*EOF*/
        -:        -:10432:/*EOF*/
        -:        -:10433:/*EOF*/
    #####:    #####:10434:/*EOF*/
    #####:    #####:10435:/*EOF*/
        -:        -:10436:/*EOF*/
        -:        -:10437:/*EOF*/
    #####:    #####:10438:/*EOF*/
        -:        -:10439:/*EOF*/
        -:        -:10440:/*EOF*/
    #####:    #####:10441:/*EOF*/
        -:        -:10442:/*EOF*/
        -:        -:10443:/*EOF*/
    #####:    #####:10444:/*EOF*/
        -:        -:10445:/*EOF*/
        -:        -:10446:/*EOF*/
    #####:    #####:10447:/*EOF*/
        -:        -:10448:/*EOF*/
        -:        -:10449:/*EOF*/
        -:        -:10450:/*EOF*/
        -:        -:10451:/*EOF*/
        -:        -:10452:/*EOF*/
    #####:    #####:10453:/*EOF*/
    #####:    #####:10454:/*EOF*/
        -:        -:10455:/*EOF*/
        -:        -:10456:/*EOF*/
        -:        -:10457:/*EOF*/
        -:        -:10458:/*EOF*/
        -:        -:10459:/*EOF*/
    #####:    #####:10460:/*EOF*/
    #####:    #####:10461:/*EOF*/
        -:        -:10462:/*EOF*/
        -:        -:10463:/*EOF*/
        -:        -:10464:/*EOF*/
        -:        -:10465:/*EOF*/
        -:        -:10466:/*EOF*/
        -:        -:10467:/*EOF*/
        -:        -:10468:/*EOF*/
    #####:    #####:10469:/*EOF*/
        -:        -:10470:/*EOF*/
    #####:    #####:10471:/*EOF*/
        -:        -:10472:/*EOF*/
        -:        -:10473:/*EOF*/
    #####:    #####:10474:/*EOF*/
        -:        -:10475:/*EOF*/
        -:        -:10476:/*EOF*/
    #####:    #####:10477:/*EOF*/
        -:        -:10478:/*EOF*/
        -:        -:10479:/*EOF*/
    #####:    #####:10480:/*EOF*/
        -:        -:10481:/*EOF*/
        -:        -:10482:/*EOF*/
        -:        -:10483:/*EOF*/
        -:        -:10484:/*EOF*/
        -:        -:10485:/*EOF*/
    #####:    #####:10486:/*EOF*/
    #####:    #####:10487:/*EOF*/
    #####:    #####:10488:/*EOF*/
        -:        -:10489:/*EOF*/
        -:        -:10490:/*EOF*/
        -:        -:10491:/*EOF*/
        -:        -:10492:/*EOF*/
        -:        -:10493:/*EOF*/
        -:        -:10494:/*EOF*/
        -:        -:10495:/*EOF*/
    #####:    #####:10496:/*EOF*/
    #####:    #####:10497:/*EOF*/
        -:        -:10498:/*EOF*/
        -:        -:10499:/*EOF*/
    #####:    #####:10500:/*EOF*/
        -:        -:10501:/*EOF*/
        -:        -:10502:/*EOF*/
    #####:    #####:10503:/*EOF*/
        -:        -:10504:/*EOF*/
        -:        -:10505:/*EOF*/
    #####:    #####:10506:/*EOF*/
        -:        -:10507:/*EOF*/
        -:        -:10508:/*EOF*/
    #####:    #####:10509:/*EOF*/
        -:        -:10510:/*EOF*/
        -:        -:10511:/*EOF*/
        -:        -:10512:/*EOF*/
        -:        -:10513:/*EOF*/
        -:        -:10514:/*EOF*/
    #####:    #####:10515:/*EOF*/
    #####:    #####:10516:/*EOF*/
    #####:    #####:10517:/*EOF*/
    #####:    #####:10518:/*EOF*/
    #####:    #####:10519:/*EOF*/
        -:        -:10520:/*EOF*/
        -:        -:10521:/*EOF*/
        -:        -:10522:/*EOF*/
        -:        -:10523:/*EOF*/
        -:        -:10524:/*EOF*/
    #####:    #####:10525:/*EOF*/
    #####:    #####:10526:/*EOF*/
    #####:    #####:10527:/*EOF*/
    #####:    #####:10528:/*EOF*/
        -:        -:10529:/*EOF*/
        -:        -:10530:/*EOF*/
    #####:    #####:10531:/*EOF*/
        -:        -:10532:/*EOF*/
        -:        -:10533:/*EOF*/
    #####:    #####:10534:/*EOF*/
        -:        -:10535:/*EOF*/
        -:        -:10536:/*EOF*/
    #####:    #####:10537:/*EOF*/
        -:        -:10538:/*EOF*/
        -:        -:10539:/*EOF*/
    #####:    #####:10540:/*EOF*/
        -:        -:10541:/*EOF*/
        -:        -:10542:/*EOF*/
        -:        -:10543:/*EOF*/
        -:        -:10544:/*EOF*/
        -:        -:10545:/*EOF*/
    #####:    #####:10546:/*EOF*/
    #####:    #####:10547:/*EOF*/
    #####:    #####:10548:/*EOF*/
        -:        -:10549:/*EOF*/
        -:        -:10550:/*EOF*/
        -:        -:10551:/*EOF*/
        -:        -:10552:/*EOF*/
        -:        -:10553:/*EOF*/
        -:        -:10554:/*EOF*/
        -:        -:10555:/*EOF*/
    #####:    #####:10556:/*EOF*/
    #####:    #####:10557:/*EOF*/
        -:        -:10558:/*EOF*/
        -:        -:10559:/*EOF*/
    #####:    #####:10560:/*EOF*/
        -:        -:10561:/*EOF*/
        -:        -:10562:/*EOF*/
    #####:    #####:10563:/*EOF*/
        -:        -:10564:/*EOF*/
        -:        -:10565:/*EOF*/
    #####:    #####:10566:/*EOF*/
        -:        -:10567:/*EOF*/
        -:        -:10568:/*EOF*/
    #####:    #####:10569:/*EOF*/
        -:        -:10570:/*EOF*/
        -:        -:10571:/*EOF*/
        -:        -:10572:/*EOF*/
        -:        -:10573:/*EOF*/
        -:        -:10574:/*EOF*/
    #####:    #####:10575:/*EOF*/
    #####:    #####:10576:/*EOF*/
    #####:    #####:10577:/*EOF*/
    #####:    #####:10578:/*EOF*/
    #####:    #####:10579:/*EOF*/
        -:        -:10580:/*EOF*/
        -:        -:10581:/*EOF*/
        -:        -:10582:/*EOF*/
        -:        -:10583:/*EOF*/
        -:        -:10584:/*EOF*/
    #####:    #####:10585:/*EOF*/
    #####:    #####:10586:/*EOF*/
    #####:    #####:10587:/*EOF*/
    #####:    #####:10588:/*EOF*/
        -:        -:10589:/*EOF*/
        -:        -:10590:/*EOF*/
    #####:    #####:10591:/*EOF*/
        -:        -:10592:/*EOF*/
        -:        -:10593:/*EOF*/
    #####:    #####:10594:/*EOF*/
        -:        -:10595:/*EOF*/
        -:        -:10596:/*EOF*/
    #####:    #####:10597:/*EOF*/
        -:        -:10598:/*EOF*/
        -:        -:10599:/*EOF*/
    #####:    #####:10600:/*EOF*/
        -:        -:10601:/*EOF*/
        -:        -:10602:/*EOF*/
        -:        -:10603:/*EOF*/
        -:        -:10604:/*EOF*/
        -:        -:10605:/*EOF*/
    #####:    #####:10606:/*EOF*/
    #####:    #####:10607:/*EOF*/
    #####:    #####:10608:/*EOF*/
        -:        -:10609:/*EOF*/
        -:        -:10610:/*EOF*/
        -:        -:10611:/*EOF*/
        -:        -:10612:/*EOF*/
        -:        -:10613:/*EOF*/
        -:        -:10614:/*EOF*/
        -:        -:10615:/*EOF*/
    #####:    #####:10616:/*EOF*/
        -:        -:10617:/*EOF*/
        -:        -:10618:/*EOF*/
    #####:    #####:10619:/*EOF*/
        -:        -:10620:/*EOF*/
        -:        -:10621:/*EOF*/
    #####:    #####:10622:/*EOF*/
        -:        -:10623:/*EOF*/
        -:        -:10624:/*EOF*/
    #####:    #####:10625:/*EOF*/
        -:        -:10626:/*EOF*/
        -:        -:10627:/*EOF*/
    #####:    #####:10628:/*EOF*/
        -:        -:10629:/*EOF*/
        -:        -:10630:/*EOF*/
        -:        -:10631:/*EOF*/
        -:        -:10632:/*EOF*/
        -:        -:10633:/*EOF*/
    #####:    #####:10634:/*EOF*/
    #####:    #####:10635:/*EOF*/
    #####:    #####:10636:/*EOF*/
    #####:    #####:10637:/*EOF*/
    #####:    #####:10638:/*EOF*/
        -:        -:10639:/*EOF*/
        -:        -:10640:/*EOF*/
        -:        -:10641:/*EOF*/
        -:        -:10642:/*EOF*/
        -:        -:10643:/*EOF*/
    #####:    #####:10644:/*EOF*/
    #####:    #####:10645:/*EOF*/
    #####:    #####:10646:/*EOF*/
    #####:    #####:10647:/*EOF*/
        -:        -:10648:/*EOF*/
        -:        -:10649:/*EOF*/
    #####:    #####:10650:/*EOF*/
        -:        -:10651:/*EOF*/
        -:        -:10652:/*EOF*/
    #####:    #####:10653:/*EOF*/
        -:        -:10654:/*EOF*/
        -:        -:10655:/*EOF*/
    #####:    #####:10656:/*EOF*/
        -:        -:10657:/*EOF*/
        -:        -:10658:/*EOF*/
    #####:    #####:10659:/*EOF*/
        -:        -:10660:/*EOF*/
        -:        -:10661:/*EOF*/
        -:        -:10662:/*EOF*/
        -:        -:10663:/*EOF*/
        -:        -:10664:/*EOF*/
    #####:    #####:10665:/*EOF*/
    #####:    #####:10666:/*EOF*/
        -:        -:10667:/*EOF*/
    #####:    #####:10668:/*EOF*/
    #####:    #####:10669:/*EOF*/
        -:        -:10670:/*EOF*/
    #####:    #####:10671:/*EOF*/
        -:        -:10672:/*EOF*/
    #####:    #####:10673:/*EOF*/
        -:        -:10674:/*EOF*/
        -:        -:10675:/*EOF*/
        -:        -:10676:/*EOF*/
    #####:    #####:10677:/*EOF*/
        -:        -:10678:/*EOF*/
        -:        -:10679:/*EOF*/
    #####:    #####:10680:/*EOF*/
        -:        -:10681:/*EOF*/
        -:        -:10682:/*EOF*/
    #####:    #####:10683:/*EOF*/
        -:        -:10684:/*EOF*/
        -:        -:10685:/*EOF*/
        -:        -:10686:/*EOF*/
        -:        -:10687:/*EOF*/
        -:        -:10688:/*EOF*/
    #####:    #####:10689:/*EOF*/
    #####:    #####:10690:/*EOF*/
        -:        -:10691:/*EOF*/
    #####:    #####:10692:/*EOF*/
    #####:    #####:10693:/*EOF*/
        -:        -:10694:/*EOF*/
    #####:    #####:10695:/*EOF*/
        -:        -:10696:/*EOF*/
    #####:    #####:10697:/*EOF*/
        -:        -:10698:/*EOF*/
        -:        -:10699:/*EOF*/
        -:        -:10700:/*EOF*/
    #####:    #####:10701:/*EOF*/
        -:        -:10702:/*EOF*/
        -:        -:10703:/*EOF*/
    #####:    #####:10704:/*EOF*/
        -:        -:10705:/*EOF*/
        -:        -:10706:/*EOF*/
    #####:    #####:10707:/*EOF*/
        -:        -:10708:/*EOF*/
        -:        -:10709:/*EOF*/
        -:        -:10710:/*EOF*/
        -:        -:10711:/*EOF*/
        -:        -:10712:/*EOF*/
    #####:    #####:10713:/*EOF*/
    #####:    #####:10714:/*EOF*/
        -:        -:10715:/*EOF*/
    #####:    #####:10716:/*EOF*/
    #####:    #####:10717:/*EOF*/
        -:        -:10718:/*EOF*/
    #####:    #####:10719:/*EOF*/
        -:        -:10720:/*EOF*/
    #####:    #####:10721:/*EOF*/
        -:        -:10722:/*EOF*/
        -:        -:10723:/*EOF*/
        -:        -:10724:/*EOF*/
    #####:    #####:10725:/*EOF*/
        -:        -:10726:/*EOF*/
        -:        -:10727:/*EOF*/
    #####:    #####:10728:/*EOF*/
        -:        -:10729:/*EOF*/
        -:        -:10730:/*EOF*/
    #####:    #####:10731:/*EOF*/
        -:        -:10732:/*EOF*/
        -:        -:10733:/*EOF*/
        -:        -:10734:/*EOF*/
        -:        -:10735:/*EOF*/
        -:        -:10736:/*EOF*/
    #####:    #####:10737:/*EOF*/
    #####:    #####:10738:/*EOF*/
        -:        -:10739:/*EOF*/
    #####:    #####:10740:/*EOF*/
    #####:    #####:10741:/*EOF*/
        -:        -:10742:/*EOF*/
    #####:    #####:10743:/*EOF*/
        -:        -:10744:/*EOF*/
    #####:    #####:10745:/*EOF*/
        -:        -:10746:/*EOF*/
        -:        -:10747:/*EOF*/
        -:        -:10748:/*EOF*/
    #####:    #####:10749:/*EOF*/
        -:        -:10750:/*EOF*/
        -:        -:10751:/*EOF*/
    #####:    #####:10752:/*EOF*/
        -:        -:10753:/*EOF*/
        -:        -:10754:/*EOF*/
    #####:    #####:10755:/*EOF*/
        -:        -:10756:/*EOF*/
    #####:    #####:10757:/*EOF*/
        -:        -:10758:/*EOF*/
        -:        -:10759:/*EOF*/
        -:        -:10760:/*EOF*/
        -:        -:10761:/*EOF*/
        -:        -:10762:/*EOF*/
    #####:    #####:10763:/*EOF*/
    #####:    #####:10764:/*EOF*/
        -:        -:10765:/*EOF*/
        -:        -:10766:/*EOF*/
    #####:    #####:10767:/*EOF*/
        -:        -:10768:/*EOF*/
    #####:    #####:10769:/*EOF*/
        -:        -:10770:/*EOF*/
        -:        -:10771:/*EOF*/
    #####:    #####:10772:/*EOF*/
        -:        -:10773:/*EOF*/
        -:        -:10774:/*EOF*/
        -:        -:10775:/*EOF*/
        -:        -:10776:/*EOF*/
        -:        -:10777:/*EOF*/
        -:        -:10778:/*EOF*/
    #####:    #####:10779:/*EOF*/
    #####:    #####:10780:/*EOF*/
        -:        -:10781:/*EOF*/
        -:        -:10782:/*EOF*/
    #####:    #####:10783:/*EOF*/
        -:        -:10784:/*EOF*/
    #####:    #####:10785:/*EOF*/
        -:        -:10786:/*EOF*/
        -:        -:10787:/*EOF*/
    #####:    #####:10788:/*EOF*/
        -:        -:10789:/*EOF*/
        -:        -:10790:/*EOF*/
        -:        -:10791:/*EOF*/
        -:        -:10792:/*EOF*/
        -:        -:10793:/*EOF*/
        -:        -:10794:/*EOF*/
    #####:    #####:10795:/*EOF*/
    #####:    #####:10796:/*EOF*/
        -:        -:10797:/*EOF*/
        -:        -:10798:/*EOF*/
    #####:    #####:10799:/*EOF*/
        -:        -:10800:/*EOF*/
    #####:    #####:10801:/*EOF*/
        -:        -:10802:/*EOF*/
        -:        -:10803:/*EOF*/
    #####:    #####:10804:/*EOF*/
        -:        -:10805:/*EOF*/
        -:        -:10806:/*EOF*/
        -:        -:10807:/*EOF*/
        -:        -:10808:/*EOF*/
        -:        -:10809:/*EOF*/
        -:        -:10810:/*EOF*/
    #####:    #####:10811:/*EOF*/
    #####:    #####:10812:/*EOF*/
        -:        -:10813:/*EOF*/
        -:        -:10814:/*EOF*/
    #####:    #####:10815:/*EOF*/
        -:        -:10816:/*EOF*/
    #####:    #####:10817:/*EOF*/
        -:        -:10818:/*EOF*/
        -:        -:10819:/*EOF*/
    #####:    #####:10820:/*EOF*/
        -:        -:10821:/*EOF*/
        -:        -:10822:/*EOF*/
        -:        -:10823:/*EOF*/
    #####:    #####:10824:/*EOF*/
        -:        -:10825:/*EOF*/
        -:        -:10826:/*EOF*/
    #####:    #####:10827:/*EOF*/
        -:        -:10828:/*EOF*/
        -:        -:10829:/*EOF*/
    #####:    #####:10830:/*EOF*/
        -:        -:10831:/*EOF*/
        -:        -:10832:/*EOF*/
    #####:    #####:10833:/*EOF*/
        -:        -:10834:/*EOF*/
    #####:    #####:10835:/*EOF*/
        -:        -:10836:/*EOF*/
        -:        -:10837:/*EOF*/
        -:        -:10838:/*EOF*/
        -:        -:10839:/*EOF*/
        -:        -:10840:/*EOF*/
    #####:    #####:10841:/*EOF*/
    #####:    #####:10842:/*EOF*/
        -:        -:10843:/*EOF*/
        -:        -:10844:/*EOF*/
    #####:    #####:10845:/*EOF*/
        -:        -:10846:/*EOF*/
    #####:    #####:10847:/*EOF*/
        -:        -:10848:/*EOF*/
        -:        -:10849:/*EOF*/
    #####:    #####:10850:/*EOF*/
        -:        -:10851:/*EOF*/
        -:        -:10852:/*EOF*/
        -:        -:10853:/*EOF*/
        -:        -:10854:/*EOF*/
        -:        -:10855:/*EOF*/
        -:        -:10856:/*EOF*/
    #####:    #####:10857:/*EOF*/
    #####:    #####:10858:/*EOF*/
        -:        -:10859:/*EOF*/
        -:        -:10860:/*EOF*/
    #####:    #####:10861:/*EOF*/
        -:        -:10862:/*EOF*/
    #####:    #####:10863:/*EOF*/
        -:        -:10864:/*EOF*/
        -:        -:10865:/*EOF*/
    #####:    #####:10866:/*EOF*/
        -:        -:10867:/*EOF*/
        -:        -:10868:/*EOF*/
        -:        -:10869:/*EOF*/
        -:        -:10870:/*EOF*/
        -:        -:10871:/*EOF*/
        -:        -:10872:/*EOF*/
    #####:    #####:10873:/*EOF*/
    #####:    #####:10874:/*EOF*/
        -:        -:10875:/*EOF*/
        -:        -:10876:/*EOF*/
    #####:    #####:10877:/*EOF*/
        -:        -:10878:/*EOF*/
    #####:    #####:10879:/*EOF*/
        -:        -:10880:/*EOF*/
        -:        -:10881:/*EOF*/
    #####:    #####:10882:/*EOF*/
        -:        -:10883:/*EOF*/
        -:        -:10884:/*EOF*/
        -:        -:10885:/*EOF*/
        -:        -:10886:/*EOF*/
        -:        -:10887:/*EOF*/
        -:        -:10888:/*EOF*/
    #####:    #####:10889:/*EOF*/
    #####:    #####:10890:/*EOF*/
        -:        -:10891:/*EOF*/
        -:        -:10892:/*EOF*/
    #####:    #####:10893:/*EOF*/
        -:        -:10894:/*EOF*/
    #####:    #####:10895:/*EOF*/
        -:        -:10896:/*EOF*/
        -:        -:10897:/*EOF*/
    #####:    #####:10898:/*EOF*/
        -:        -:10899:/*EOF*/
        -:        -:10900:/*EOF*/
        -:        -:10901:/*EOF*/
    #####:    #####:10902:/*EOF*/
        -:        -:10903:/*EOF*/
        -:        -:10904:/*EOF*/
    #####:    #####:10905:/*EOF*/
        -:        -:10906:/*EOF*/
        -:        -:10907:/*EOF*/
    #####:    #####:10908:/*EOF*/
        -:        -:10909:/*EOF*/
        -:        -:10910:/*EOF*/
    #####:    #####:10911:/*EOF*/
        -:        -:10912:/*EOF*/
    #####:    #####:10913:/*EOF*/
        -:        -:10914:/*EOF*/
        -:        -:10915:/*EOF*/
        -:        -:10916:/*EOF*/
        -:        -:10917:/*EOF*/
        -:        -:10918:/*EOF*/
    #####:    #####:10919:/*EOF*/
    #####:    #####:10920:/*EOF*/
        -:        -:10921:/*EOF*/
        -:        -:10922:/*EOF*/
    #####:    #####:10923:/*EOF*/
        -:        -:10924:/*EOF*/
    #####:    #####:10925:/*EOF*/
        -:        -:10926:/*EOF*/
        -:        -:10927:/*EOF*/
    #####:    #####:10928:/*EOF*/
        -:        -:10929:/*EOF*/
        -:        -:10930:/*EOF*/
        -:        -:10931:/*EOF*/
        -:        -:10932:/*EOF*/
        -:        -:10933:/*EOF*/
        -:        -:10934:/*EOF*/
    #####:    #####:10935:/*EOF*/
    #####:    #####:10936:/*EOF*/
        -:        -:10937:/*EOF*/
        -:        -:10938:/*EOF*/
    #####:    #####:10939:/*EOF*/
        -:        -:10940:/*EOF*/
    #####:    #####:10941:/*EOF*/
        -:        -:10942:/*EOF*/
        -:        -:10943:/*EOF*/
    #####:    #####:10944:/*EOF*/
        -:        -:10945:/*EOF*/
        -:        -:10946:/*EOF*/
        -:        -:10947:/*EOF*/
        -:        -:10948:/*EOF*/
        -:        -:10949:/*EOF*/
        -:        -:10950:/*EOF*/
    #####:    #####:10951:/*EOF*/
    #####:    #####:10952:/*EOF*/
        -:        -:10953:/*EOF*/
        -:        -:10954:/*EOF*/
    #####:    #####:10955:/*EOF*/
        -:        -:10956:/*EOF*/
    #####:    #####:10957:/*EOF*/
        -:        -:10958:/*EOF*/
        -:        -:10959:/*EOF*/
    #####:    #####:10960:/*EOF*/
        -:        -:10961:/*EOF*/
        -:        -:10962:/*EOF*/
        -:        -:10963:/*EOF*/
        -:        -:10964:/*EOF*/
        -:        -:10965:/*EOF*/
        -:        -:10966:/*EOF*/
    #####:    #####:10967:/*EOF*/
    #####:    #####:10968:/*EOF*/
        -:        -:10969:/*EOF*/
        -:        -:10970:/*EOF*/
    #####:    #####:10971:/*EOF*/
        -:        -:10972:/*EOF*/
    #####:    #####:10973:/*EOF*/
        -:        -:10974:/*EOF*/
        -:        -:10975:/*EOF*/
    #####:    #####:10976:/*EOF*/
        -:        -:10977:/*EOF*/
        -:        -:10978:/*EOF*/
        -:        -:10979:/*EOF*/
    #####:    #####:10980:/*EOF*/
        -:        -:10981:/*EOF*/
        -:        -:10982:/*EOF*/
    #####:    #####:10983:/*EOF*/
        -:        -:10984:/*EOF*/
        -:        -:10985:/*EOF*/
    #####:    #####:10986:/*EOF*/
        -:        -:10987:/*EOF*/
        -:        -:10988:/*EOF*/
    #####:    #####:10989:/*EOF*/
        -:        -:10990:/*EOF*/
    #####:    #####:10991:/*EOF*/
        -:        -:10992:/*EOF*/
        -:        -:10993:/*EOF*/
        -:        -:10994:/*EOF*/
        -:        -:10995:/*EOF*/
        -:        -:10996:/*EOF*/
    #####:    #####:10997:/*EOF*/
    #####:    #####:10998:/*EOF*/
        -:        -:10999:/*EOF*/
        -:        -:11000:/*EOF*/
    #####:    #####:11001:/*EOF*/
        -:        -:11002:/*EOF*/
    #####:    #####:11003:/*EOF*/
        -:        -:11004:/*EOF*/
        -:        -:11005:/*EOF*/
    #####:    #####:11006:/*EOF*/
        -:        -:11007:/*EOF*/
        -:        -:11008:/*EOF*/
        -:        -:11009:/*EOF*/
        -:        -:11010:/*EOF*/
        -:        -:11011:/*EOF*/
        -:        -:11012:/*EOF*/
    #####:    #####:11013:/*EOF*/
    #####:    #####:11014:/*EOF*/
        -:        -:11015:/*EOF*/
        -:        -:11016:/*EOF*/
    #####:    #####:11017:/*EOF*/
        -:        -:11018:/*EOF*/
    #####:    #####:11019:/*EOF*/
        -:        -:11020:/*EOF*/
        -:        -:11021:/*EOF*/
    #####:    #####:11022:/*EOF*/
        -:        -:11023:/*EOF*/
        -:        -:11024:/*EOF*/
        -:        -:11025:/*EOF*/
        -:        -:11026:/*EOF*/
        -:        -:11027:/*EOF*/
        -:        -:11028:/*EOF*/
    #####:    #####:11029:/*EOF*/
    #####:    #####:11030:/*EOF*/
        -:        -:11031:/*EOF*/
        -:        -:11032:/*EOF*/
    #####:    #####:11033:/*EOF*/
        -:        -:11034:/*EOF*/
    #####:    #####:11035:/*EOF*/
        -:        -:11036:/*EOF*/
        -:        -:11037:/*EOF*/
    #####:    #####:11038:/*EOF*/
        -:        -:11039:/*EOF*/
        -:        -:11040:/*EOF*/
        -:        -:11041:/*EOF*/
        -:        -:11042:/*EOF*/
        -:        -:11043:/*EOF*/
        -:        -:11044:/*EOF*/
    #####:    #####:11045:/*EOF*/
    #####:    #####:11046:/*EOF*/
        -:        -:11047:/*EOF*/
        -:        -:11048:/*EOF*/
    #####:    #####:11049:/*EOF*/
        -:        -:11050:/*EOF*/
    #####:    #####:11051:/*EOF*/
        -:        -:11052:/*EOF*/
        -:        -:11053:/*EOF*/
    #####:    #####:11054:/*EOF*/
        -:        -:11055:/*EOF*/
        -:        -:11056:/*EOF*/
        -:        -:11057:/*EOF*/
    #####:    #####:11058:/*EOF*/
        -:        -:11059:/*EOF*/
        -:        -:11060:/*EOF*/
    #####:    #####:11061:/*EOF*/
        -:        -:11062:/*EOF*/
        -:        -:11063:/*EOF*/
    #####:    #####:11064:/*EOF*/
        -:        -:11065:/*EOF*/
        -:        -:11066:/*EOF*/
    #####:    #####:11067:/*EOF*/
        -:        -:11068:/*EOF*/
    #####:    #####:11069:/*EOF*/
        -:        -:11070:/*EOF*/
        -:        -:11071:/*EOF*/
        -:        -:11072:/*EOF*/
        -:        -:11073:/*EOF*/
        -:        -:11074:/*EOF*/
    #####:    #####:11075:/*EOF*/
    #####:    #####:11076:/*EOF*/
        -:        -:11077:/*EOF*/
        -:        -:11078:/*EOF*/
    #####:    #####:11079:/*EOF*/
        -:        -:11080:/*EOF*/
    #####:    #####:11081:/*EOF*/
        -:        -:11082:/*EOF*/
        -:        -:11083:/*EOF*/
    #####:    #####:11084:/*EOF*/
        -:        -:11085:/*EOF*/
        -:        -:11086:/*EOF*/
        -:        -:11087:/*EOF*/
        -:        -:11088:/*EOF*/
        -:        -:11089:/*EOF*/
        -:        -:11090:/*EOF*/
    #####:    #####:11091:/*EOF*/
    #####:    #####:11092:/*EOF*/
        -:        -:11093:/*EOF*/
        -:        -:11094:/*EOF*/
    #####:    #####:11095:/*EOF*/
        -:        -:11096:/*EOF*/
    #####:    #####:11097:/*EOF*/
        -:        -:11098:/*EOF*/
        -:        -:11099:/*EOF*/
    #####:    #####:11100:/*EOF*/
        -:        -:11101:/*EOF*/
        -:        -:11102:/*EOF*/
        -:        -:11103:/*EOF*/
        -:        -:11104:/*EOF*/
        -:        -:11105:/*EOF*/
        -:        -:11106:/*EOF*/
    #####:    #####:11107:/*EOF*/
    #####:    #####:11108:/*EOF*/
        -:        -:11109:/*EOF*/
        -:        -:11110:/*EOF*/
    #####:    #####:11111:/*EOF*/
        -:        -:11112:/*EOF*/
    #####:    #####:11113:/*EOF*/
        -:        -:11114:/*EOF*/
        -:        -:11115:/*EOF*/
    #####:    #####:11116:/*EOF*/
        -:        -:11117:/*EOF*/
        -:        -:11118:/*EOF*/
        -:        -:11119:/*EOF*/
        -:        -:11120:/*EOF*/
        -:        -:11121:/*EOF*/
        -:        -:11122:/*EOF*/
    #####:    #####:11123:/*EOF*/
    #####:    #####:11124:/*EOF*/
        -:        -:11125:/*EOF*/
        -:        -:11126:/*EOF*/
    #####:    #####:11127:/*EOF*/
        -:        -:11128:/*EOF*/
    #####:    #####:11129:/*EOF*/
        -:        -:11130:/*EOF*/
        -:        -:11131:/*EOF*/
    #####:    #####:11132:/*EOF*/
        -:        -:11133:/*EOF*/
        -:        -:11134:/*EOF*/
        -:        -:11135:/*EOF*/
    #####:    #####:11136:/*EOF*/
        -:        -:11137:/*EOF*/
        -:        -:11138:/*EOF*/
    #####:    #####:11139:/*EOF*/
        -:        -:11140:/*EOF*/
        -:        -:11141:/*EOF*/
    #####:    #####:11142:/*EOF*/
        -:        -:11143:/*EOF*/
        -:        -:11144:/*EOF*/
    #####:    #####:11145:/*EOF*/
        -:        -:11146:/*EOF*/
    #####:    #####:11147:/*EOF*/
        -:        -:11148:/*EOF*/
        -:        -:11149:/*EOF*/
        -:        -:11150:/*EOF*/
        -:        -:11151:/*EOF*/
        -:        -:11152:/*EOF*/
    #####:    #####:11153:/*EOF*/
    #####:    #####:11154:/*EOF*/
        -:        -:11155:/*EOF*/
        -:        -:11156:/*EOF*/
    #####:    #####:11157:/*EOF*/
        -:        -:11158:/*EOF*/
    #####:    #####:11159:/*EOF*/
        -:        -:11160:/*EOF*/
        -:        -:11161:/*EOF*/
    #####:    #####:11162:/*EOF*/
        -:        -:11163:/*EOF*/
        -:        -:11164:/*EOF*/
        -:        -:11165:/*EOF*/
        -:        -:11166:/*EOF*/
        -:        -:11167:/*EOF*/
        -:        -:11168:/*EOF*/
    #####:    #####:11169:/*EOF*/
    #####:    #####:11170:/*EOF*/
        -:        -:11171:/*EOF*/
        -:        -:11172:/*EOF*/
    #####:    #####:11173:/*EOF*/
        -:        -:11174:/*EOF*/
    #####:    #####:11175:/*EOF*/
        -:        -:11176:/*EOF*/
        -:        -:11177:/*EOF*/
    #####:    #####:11178:/*EOF*/
        -:        -:11179:/*EOF*/
        -:        -:11180:/*EOF*/
        -:        -:11181:/*EOF*/
        -:        -:11182:/*EOF*/
        -:        -:11183:/*EOF*/
        -:        -:11184:/*EOF*/
    #####:    #####:11185:/*EOF*/
    #####:    #####:11186:/*EOF*/
        -:        -:11187:/*EOF*/
        -:        -:11188:/*EOF*/
    #####:    #####:11189:/*EOF*/
        -:        -:11190:/*EOF*/
    #####:    #####:11191:/*EOF*/
        -:        -:11192:/*EOF*/
        -:        -:11193:/*EOF*/
    #####:    #####:11194:/*EOF*/
        -:        -:11195:/*EOF*/
        -:        -:11196:/*EOF*/
        -:        -:11197:/*EOF*/
        -:        -:11198:/*EOF*/
        -:        -:11199:/*EOF*/
        -:        -:11200:/*EOF*/
    #####:    #####:11201:/*EOF*/
    #####:    #####:11202:/*EOF*/
        -:        -:11203:/*EOF*/
        -:        -:11204:/*EOF*/
    #####:    #####:11205:/*EOF*/
        -:        -:11206:/*EOF*/
    #####:    #####:11207:/*EOF*/
        -:        -:11208:/*EOF*/
        -:        -:11209:/*EOF*/
    #####:    #####:11210:/*EOF*/
        -:        -:11211:/*EOF*/
        -:        -:11212:/*EOF*/
        -:        -:11213:/*EOF*/
    #####:    #####:11214:/*EOF*/
        -:        -:11215:/*EOF*/
        -:        -:11216:/*EOF*/
    #####:    #####:11217:/*EOF*/
        -:        -:11218:/*EOF*/
        -:        -:11219:/*EOF*/
    #####:    #####:11220:/*EOF*/
        -:        -:11221:/*EOF*/
        -:        -:11222:/*EOF*/
    #####:    #####:11223:/*EOF*/
        -:        -:11224:/*EOF*/
    #####:    #####:11225:/*EOF*/
        -:        -:11226:/*EOF*/
        -:        -:11227:/*EOF*/
        -:        -:11228:/*EOF*/
        -:        -:11229:/*EOF*/
        -:        -:11230:/*EOF*/
    #####:    #####:11231:/*EOF*/
    #####:    #####:11232:/*EOF*/
        -:        -:11233:/*EOF*/
        -:        -:11234:/*EOF*/
    #####:    #####:11235:/*EOF*/
        -:        -:11236:/*EOF*/
    #####:    #####:11237:/*EOF*/
        -:        -:11238:/*EOF*/
        -:        -:11239:/*EOF*/
    #####:    #####:11240:/*EOF*/
        -:        -:11241:/*EOF*/
        -:        -:11242:/*EOF*/
        -:        -:11243:/*EOF*/
        -:        -:11244:/*EOF*/
        -:        -:11245:/*EOF*/
        -:        -:11246:/*EOF*/
    #####:    #####:11247:/*EOF*/
    #####:    #####:11248:/*EOF*/
        -:        -:11249:/*EOF*/
        -:        -:11250:/*EOF*/
    #####:    #####:11251:/*EOF*/
        -:        -:11252:/*EOF*/
    #####:    #####:11253:/*EOF*/
        -:        -:11254:/*EOF*/
        -:        -:11255:/*EOF*/
    #####:    #####:11256:/*EOF*/
        -:        -:11257:/*EOF*/
        -:        -:11258:/*EOF*/
        -:        -:11259:/*EOF*/
        -:        -:11260:/*EOF*/
        -:        -:11261:/*EOF*/
        -:        -:11262:/*EOF*/
    #####:    #####:11263:/*EOF*/
    #####:    #####:11264:/*EOF*/
        -:        -:11265:/*EOF*/
        -:        -:11266:/*EOF*/
    #####:    #####:11267:/*EOF*/
        -:        -:11268:/*EOF*/
    #####:    #####:11269:/*EOF*/
        -:        -:11270:/*EOF*/
        -:        -:11271:/*EOF*/
    #####:    #####:11272:/*EOF*/
        -:        -:11273:/*EOF*/
        -:        -:11274:/*EOF*/
        -:        -:11275:/*EOF*/
        -:        -:11276:/*EOF*/
        -:        -:11277:/*EOF*/
        -:        -:11278:/*EOF*/
    #####:    #####:11279:/*EOF*/
    #####:    #####:11280:/*EOF*/
        -:        -:11281:/*EOF*/
        -:        -:11282:/*EOF*/
    #####:    #####:11283:/*EOF*/
        -:        -:11284:/*EOF*/
    #####:    #####:11285:/*EOF*/
        -:        -:11286:/*EOF*/
        -:        -:11287:/*EOF*/
    #####:    #####:11288:/*EOF*/
        -:        -:11289:/*EOF*/
        -:        -:11290:/*EOF*/
        -:        -:11291:/*EOF*/
    #####:    #####:11292:/*EOF*/
        -:        -:11293:/*EOF*/
        -:        -:11294:/*EOF*/
    #####:    #####:11295:/*EOF*/
        -:        -:11296:/*EOF*/
        -:        -:11297:/*EOF*/
    #####:    #####:11298:/*EOF*/
        -:        -:11299:/*EOF*/
        -:        -:11300:/*EOF*/
    #####:    #####:11301:/*EOF*/
        -:        -:11302:/*EOF*/
    #####:    #####:11303:/*EOF*/
        -:        -:11304:/*EOF*/
        -:        -:11305:/*EOF*/
        -:        -:11306:/*EOF*/
        -:        -:11307:/*EOF*/
        -:        -:11308:/*EOF*/
    #####:    #####:11309:/*EOF*/
    #####:    #####:11310:/*EOF*/
        -:        -:11311:/*EOF*/
    #####:    #####:11312:/*EOF*/
    #####:    #####:11313:/*EOF*/
        -:        -:11314:/*EOF*/
    #####:    #####:11315:/*EOF*/
        -:        -:11316:/*EOF*/
    #####:    #####:11317:/*EOF*/
        -:        -:11318:/*EOF*/
        -:        -:11319:/*EOF*/
    #####:    #####:11320:/*EOF*/
        -:        -:11321:/*EOF*/
        -:        -:11322:/*EOF*/
        -:        -:11323:/*EOF*/
        -:        -:11324:/*EOF*/
        -:        -:11325:/*EOF*/
        -:        -:11326:/*EOF*/
    #####:    #####:11327:/*EOF*/
    #####:    #####:11328:/*EOF*/
        -:        -:11329:/*EOF*/
    #####:    #####:11330:/*EOF*/
    #####:    #####:11331:/*EOF*/
        -:        -:11332:/*EOF*/
    #####:    #####:11333:/*EOF*/
        -:        -:11334:/*EOF*/
    #####:    #####:11335:/*EOF*/
        -:        -:11336:/*EOF*/
        -:        -:11337:/*EOF*/
    #####:    #####:11338:/*EOF*/
        -:        -:11339:/*EOF*/
        -:        -:11340:/*EOF*/
        -:        -:11341:/*EOF*/
        -:        -:11342:/*EOF*/
        -:        -:11343:/*EOF*/
        -:        -:11344:/*EOF*/
    #####:    #####:11345:/*EOF*/
    #####:    #####:11346:/*EOF*/
        -:        -:11347:/*EOF*/
    #####:    #####:11348:/*EOF*/
    #####:    #####:11349:/*EOF*/
        -:        -:11350:/*EOF*/
    #####:    #####:11351:/*EOF*/
        -:        -:11352:/*EOF*/
    #####:    #####:11353:/*EOF*/
        -:        -:11354:/*EOF*/
        -:        -:11355:/*EOF*/
    #####:    #####:11356:/*EOF*/
        -:        -:11357:/*EOF*/
        -:        -:11358:/*EOF*/
        -:        -:11359:/*EOF*/
        -:        -:11360:/*EOF*/
        -:        -:11361:/*EOF*/
        -:        -:11362:/*EOF*/
    #####:    #####:11363:/*EOF*/
    #####:    #####:11364:/*EOF*/
        -:        -:11365:/*EOF*/
    #####:    #####:11366:/*EOF*/
    #####:    #####:11367:/*EOF*/
        -:        -:11368:/*EOF*/
    #####:    #####:11369:/*EOF*/
        -:        -:11370:/*EOF*/
    #####:    #####:11371:/*EOF*/
        -:        -:11372:/*EOF*/
        -:        -:11373:/*EOF*/
    #####:    #####:11374:/*EOF*/
        -:        -:11375:/*EOF*/
        -:        -:11376:/*EOF*/
        -:        -:11377:/*EOF*/
    #####:    #####:11378:/*EOF*/
        -:        -:11379:/*EOF*/
        -:        -:11380:/*EOF*/
    #####:    #####:11381:/*EOF*/
        -:        -:11382:/*EOF*/
        -:        -:11383:/*EOF*/
    #####:    #####:11384:/*EOF*/
        -:        -:11385:/*EOF*/
        -:        -:11386:/*EOF*/
    #####:    #####:11387:/*EOF*/
        -:        -:11388:/*EOF*/
        -:        -:11389:/*EOF*/
        -:        -:11390:/*EOF*/
        -:        -:11391:/*EOF*/
        -:        -:11392:/*EOF*/
    #####:    #####:11393:/*EOF*/
    #####:    #####:11394:/*EOF*/
        -:        -:11395:/*EOF*/
    #####:    #####:11396:/*EOF*/
    #####:    #####:11397:/*EOF*/
    #####:    #####:11398:/*EOF*/
    #####:    #####:11399:/*EOF*/
        -:        -:11400:/*EOF*/
        -:        -:11401:/*EOF*/
        -:        -:11402:/*EOF*/
        -:        -:11403:/*EOF*/
    #####:    #####:11404:/*EOF*/
    #####:    #####:11405:/*EOF*/
    #####:    #####:11406:/*EOF*/
    #####:    #####:11407:/*EOF*/
    #####:    #####:11408:/*EOF*/
    #####:    #####:11409:/*EOF*/
    #####:    #####:11410:/*EOF*/
    #####:    #####:11411:/*EOF*/
        -:        -:11412:/*EOF*/
    #####:    #####:11413:/*EOF*/
        -:        -:11414:/*EOF*/
        -:        -:11415:/*EOF*/
        -:        -:11416:/*EOF*/
    #####:    #####:11417:/*EOF*/
        -:        -:11418:/*EOF*/
        -:        -:11419:/*EOF*/
        -:        -:11420:/*EOF*/
    #####:    #####:11421:/*EOF*/
        -:        -:11422:/*EOF*/
        -:        -:11423:/*EOF*/
    #####:    #####:11424:/*EOF*/
        -:        -:11425:/*EOF*/
        -:        -:11426:/*EOF*/
    #####:    #####:11427:/*EOF*/
        -:        -:11428:/*EOF*/
        -:        -:11429:/*EOF*/
        -:        -:11430:/*EOF*/
        -:        -:11431:/*EOF*/
        -:        -:11432:/*EOF*/
    #####:    #####:11433:/*EOF*/
    #####:    #####:11434:/*EOF*/
        -:        -:11435:/*EOF*/
    #####:    #####:11436:/*EOF*/
    #####:    #####:11437:/*EOF*/
    #####:    #####:11438:/*EOF*/
    #####:    #####:11439:/*EOF*/
        -:        -:11440:/*EOF*/
        -:        -:11441:/*EOF*/
        -:        -:11442:/*EOF*/
        -:        -:11443:/*EOF*/
    #####:    #####:11444:/*EOF*/
    #####:    #####:11445:/*EOF*/
    #####:    #####:11446:/*EOF*/
    #####:    #####:11447:/*EOF*/
    #####:    #####:11448:/*EOF*/
    #####:    #####:11449:/*EOF*/
        -:        -:11450:/*EOF*/
    #####:    #####:11451:/*EOF*/
        -:        -:11452:/*EOF*/
        -:        -:11453:/*EOF*/
        -:        -:11454:/*EOF*/
    #####:    #####:11455:/*EOF*/
        -:        -:11456:/*EOF*/
        -:        -:11457:/*EOF*/
        -:        -:11458:/*EOF*/
    #####:    #####:11459:/*EOF*/
        -:        -:11460:/*EOF*/
        -:        -:11461:/*EOF*/
    #####:    #####:11462:/*EOF*/
        -:        -:11463:/*EOF*/
        -:        -:11464:/*EOF*/
    #####:    #####:11465:/*EOF*/
        -:        -:11466:/*EOF*/
    #####:    #####:11467:/*EOF*/
        -:        -:11468:/*EOF*/
        -:        -:11469:/*EOF*/
        -:        -:11470:/*EOF*/
        -:        -:11471:/*EOF*/
        -:        -:11472:/*EOF*/
    #####:    #####:11473:/*EOF*/
    #####:    #####:11474:/*EOF*/
        -:        -:11475:/*EOF*/
    #####:    #####:11476:/*EOF*/
    #####:    #####:11477:/*EOF*/
        -:        -:11478:/*EOF*/
    #####:    #####:11479:/*EOF*/
        -:        -:11480:/*EOF*/
    #####:    #####:11481:/*EOF*/
        -:        -:11482:/*EOF*/
        -:        -:11483:/*EOF*/
    #####:    #####:11484:/*EOF*/
        -:        -:11485:/*EOF*/
        -:        -:11486:/*EOF*/
        -:        -:11487:/*EOF*/
        -:        -:11488:/*EOF*/
        -:        -:11489:/*EOF*/
        -:        -:11490:/*EOF*/
    #####:    #####:11491:/*EOF*/
    #####:    #####:11492:/*EOF*/
        -:        -:11493:/*EOF*/
    #####:    #####:11494:/*EOF*/
    #####:    #####:11495:/*EOF*/
        -:        -:11496:/*EOF*/
    #####:    #####:11497:/*EOF*/
        -:        -:11498:/*EOF*/
    #####:    #####:11499:/*EOF*/
        -:        -:11500:/*EOF*/
        -:        -:11501:/*EOF*/
    #####:    #####:11502:/*EOF*/
        -:        -:11503:/*EOF*/
        -:        -:11504:/*EOF*/
        -:        -:11505:/*EOF*/
        -:        -:11506:/*EOF*/
        -:        -:11507:/*EOF*/
        -:        -:11508:/*EOF*/
    #####:    #####:11509:/*EOF*/
    #####:    #####:11510:/*EOF*/
        -:        -:11511:/*EOF*/
    #####:    #####:11512:/*EOF*/
    #####:    #####:11513:/*EOF*/
        -:        -:11514:/*EOF*/
    #####:    #####:11515:/*EOF*/
        -:        -:11516:/*EOF*/
    #####:    #####:11517:/*EOF*/
        -:        -:11518:/*EOF*/
        -:        -:11519:/*EOF*/
    #####:    #####:11520:/*EOF*/
        -:        -:11521:/*EOF*/
        -:        -:11522:/*EOF*/
        -:        -:11523:/*EOF*/
        -:        -:11524:/*EOF*/
        -:        -:11525:/*EOF*/
        -:        -:11526:/*EOF*/
    #####:    #####:11527:/*EOF*/
    #####:    #####:11528:/*EOF*/
        -:        -:11529:/*EOF*/
    #####:    #####:11530:/*EOF*/
    #####:    #####:11531:/*EOF*/
        -:        -:11532:/*EOF*/
    #####:    #####:11533:/*EOF*/
        -:        -:11534:/*EOF*/
    #####:    #####:11535:/*EOF*/
        -:        -:11536:/*EOF*/
        -:        -:11537:/*EOF*/
    #####:    #####:11538:/*EOF*/
        -:        -:11539:/*EOF*/
        -:        -:11540:/*EOF*/
        -:        -:11541:/*EOF*/
    #####:    #####:11542:/*EOF*/
        -:        -:11543:/*EOF*/
        -:        -:11544:/*EOF*/
    #####:    #####:11545:/*EOF*/
        -:        -:11546:/*EOF*/
        -:        -:11547:/*EOF*/
    #####:    #####:11548:/*EOF*/
        -:        -:11549:/*EOF*/
        -:        -:11550:/*EOF*/
    #####:    #####:11551:/*EOF*/
        -:        -:11552:/*EOF*/
        -:        -:11553:/*EOF*/
        -:        -:11554:/*EOF*/
        -:        -:11555:/*EOF*/
        -:        -:11556:/*EOF*/
    #####:    #####:11557:/*EOF*/
    #####:    #####:11558:/*EOF*/
        -:        -:11559:/*EOF*/
        -:        -:11560:/*EOF*/
        -:        -:11561:/*EOF*/
        -:        -:11562:/*EOF*/
        -:        -:11563:/*EOF*/
    #####:    #####:11564:/*EOF*/
    #####:    #####:11565:/*EOF*/
    #####:    #####:11566:/*EOF*/
    #####:    #####:11567:/*EOF*/
    #####:    #####:11568:/*EOF*/
        -:        -:11569:/*EOF*/
        -:        -:11570:/*EOF*/
        -:        -:11571:/*EOF*/
        -:        -:11572:/*EOF*/
    #####:    #####:11573:/*EOF*/
        -:        -:11574:/*EOF*/
        -:        -:11575:/*EOF*/
        -:        -:11576:/*EOF*/
    #####:    #####:11577:/*EOF*/
        -:        -:11578:/*EOF*/
        -:        -:11579:/*EOF*/
    #####:    #####:11580:/*EOF*/
        -:        -:11581:/*EOF*/
        -:        -:11582:/*EOF*/
    #####:    #####:11583:/*EOF*/
        -:        -:11584:/*EOF*/
    #####:    #####:11585:/*EOF*/
        -:        -:11586:/*EOF*/
        -:        -:11587:/*EOF*/
        -:        -:11588:/*EOF*/
        -:        -:11589:/*EOF*/
        -:        -:11590:/*EOF*/
    #####:    #####:11591:/*EOF*/
    #####:    #####:11592:/*EOF*/
        -:        -:11593:/*EOF*/
    #####:    #####:11594:/*EOF*/
    #####:    #####:11595:/*EOF*/
        -:        -:11596:/*EOF*/
    #####:    #####:11597:/*EOF*/
        -:        -:11598:/*EOF*/
    #####:    #####:11599:/*EOF*/
        -:        -:11600:/*EOF*/
        -:        -:11601:/*EOF*/
    #####:    #####:11602:/*EOF*/
        -:        -:11603:/*EOF*/
        -:        -:11604:/*EOF*/
        -:        -:11605:/*EOF*/
        -:        -:11606:/*EOF*/
        -:        -:11607:/*EOF*/
        -:        -:11608:/*EOF*/
    #####:    #####:11609:/*EOF*/
    #####:    #####:11610:/*EOF*/
        -:        -:11611:/*EOF*/
    #####:    #####:11612:/*EOF*/
    #####:    #####:11613:/*EOF*/
        -:        -:11614:/*EOF*/
    #####:    #####:11615:/*EOF*/
        -:        -:11616:/*EOF*/
    #####:    #####:11617:/*EOF*/
        -:        -:11618:/*EOF*/
        -:        -:11619:/*EOF*/
    #####:    #####:11620:/*EOF*/
        -:        -:11621:/*EOF*/
        -:        -:11622:/*EOF*/
        -:        -:11623:/*EOF*/
        -:        -:11624:/*EOF*/
        -:        -:11625:/*EOF*/
        -:        -:11626:/*EOF*/
    #####:    #####:11627:/*EOF*/
    #####:    #####:11628:/*EOF*/
        -:        -:11629:/*EOF*/
    #####:    #####:11630:/*EOF*/
    #####:    #####:11631:/*EOF*/
        -:        -:11632:/*EOF*/
    #####:    #####:11633:/*EOF*/
        -:        -:11634:/*EOF*/
    #####:    #####:11635:/*EOF*/
        -:        -:11636:/*EOF*/
        -:        -:11637:/*EOF*/
    #####:    #####:11638:/*EOF*/
        -:        -:11639:/*EOF*/
        -:        -:11640:/*EOF*/
        -:        -:11641:/*EOF*/
        -:        -:11642:/*EOF*/
        -:        -:11643:/*EOF*/
        -:        -:11644:/*EOF*/
    #####:    #####:11645:/*EOF*/
    #####:    #####:11646:/*EOF*/
        -:        -:11647:/*EOF*/
    #####:    #####:11648:/*EOF*/
    #####:    #####:11649:/*EOF*/
        -:        -:11650:/*EOF*/
    #####:    #####:11651:/*EOF*/
        -:        -:11652:/*EOF*/
    #####:    #####:11653:/*EOF*/
        -:        -:11654:/*EOF*/
        -:        -:11655:/*EOF*/
    #####:    #####:11656:/*EOF*/
        -:        -:11657:/*EOF*/
        -:        -:11658:/*EOF*/
        -:        -:11659:/*EOF*/
    #####:    #####:11660:/*EOF*/
        -:        -:11661:/*EOF*/
        -:        -:11662:/*EOF*/
    #####:    #####:11663:/*EOF*/
        -:        -:11664:/*EOF*/
        -:        -:11665:/*EOF*/
    #####:    #####:11666:/*EOF*/
        -:        -:11667:/*EOF*/
        -:        -:11668:/*EOF*/
    #####:    #####:11669:/*EOF*/
        -:        -:11670:/*EOF*/
    #####:    #####:11671:/*EOF*/
        -:        -:11672:/*EOF*/
        -:        -:11673:/*EOF*/
        -:        -:11674:/*EOF*/
        -:        -:11675:/*EOF*/
        -:        -:11676:/*EOF*/
    #####:    #####:11677:/*EOF*/
    #####:    #####:11678:/*EOF*/
        -:        -:11679:/*EOF*/
    #####:    #####:11680:/*EOF*/
    #####:    #####:11681:/*EOF*/
        -:        -:11682:/*EOF*/
    #####:    #####:11683:/*EOF*/
        -:        -:11684:/*EOF*/
    #####:    #####:11685:/*EOF*/
        -:        -:11686:/*EOF*/
        -:        -:11687:/*EOF*/
    #####:    #####:11688:/*EOF*/
        -:        -:11689:/*EOF*/
        -:        -:11690:/*EOF*/
        -:        -:11691:/*EOF*/
        -:        -:11692:/*EOF*/
        -:        -:11693:/*EOF*/
        -:        -:11694:/*EOF*/
    #####:    #####:11695:/*EOF*/
    #####:    #####:11696:/*EOF*/
        -:        -:11697:/*EOF*/
    #####:    #####:11698:/*EOF*/
    #####:    #####:11699:/*EOF*/
        -:        -:11700:/*EOF*/
    #####:    #####:11701:/*EOF*/
        -:        -:11702:/*EOF*/
    #####:    #####:11703:/*EOF*/
        -:        -:11704:/*EOF*/
        -:        -:11705:/*EOF*/
    #####:    #####:11706:/*EOF*/
        -:        -:11707:/*EOF*/
        -:        -:11708:/*EOF*/
        -:        -:11709:/*EOF*/
        -:        -:11710:/*EOF*/
        -:        -:11711:/*EOF*/
        -:        -:11712:/*EOF*/
    #####:    #####:11713:/*EOF*/
    #####:    #####:11714:/*EOF*/
        -:        -:11715:/*EOF*/
    #####:    #####:11716:/*EOF*/
    #####:    #####:11717:/*EOF*/
        -:        -:11718:/*EOF*/
    #####:    #####:11719:/*EOF*/
        -:        -:11720:/*EOF*/
    #####:    #####:11721:/*EOF*/
        -:        -:11722:/*EOF*/
        -:        -:11723:/*EOF*/
    #####:    #####:11724:/*EOF*/
        -:        -:11725:/*EOF*/
        -:        -:11726:/*EOF*/
        -:        -:11727:/*EOF*/
        -:        -:11728:/*EOF*/
        -:        -:11729:/*EOF*/
        -:        -:11730:/*EOF*/
    #####:    #####:11731:/*EOF*/
    #####:    #####:11732:/*EOF*/
        -:        -:11733:/*EOF*/
    #####:    #####:11734:/*EOF*/
    #####:    #####:11735:/*EOF*/
        -:        -:11736:/*EOF*/
    #####:    #####:11737:/*EOF*/
        -:        -:11738:/*EOF*/
    #####:    #####:11739:/*EOF*/
        -:        -:11740:/*EOF*/
        -:        -:11741:/*EOF*/
    #####:    #####:11742:/*EOF*/
        -:        -:11743:/*EOF*/
        -:        -:11744:/*EOF*/
        -:        -:11745:/*EOF*/
    #####:    #####:11746:/*EOF*/
        -:        -:11747:/*EOF*/
        -:        -:11748:/*EOF*/
    #####:    #####:11749:/*EOF*/
        -:        -:11750:/*EOF*/
        -:        -:11751:/*EOF*/
    #####:    #####:11752:/*EOF*/
        -:        -:11753:/*EOF*/
        -:        -:11754:/*EOF*/
    #####:    #####:11755:/*EOF*/
        -:        -:11756:/*EOF*/
    #####:    #####:11757:/*EOF*/
        -:        -:11758:/*EOF*/
        -:        -:11759:/*EOF*/
        -:        -:11760:/*EOF*/
        -:        -:11761:/*EOF*/
        -:        -:11762:/*EOF*/
    #####:    #####:11763:/*EOF*/
    #####:    #####:11764:/*EOF*/
        -:        -:11765:/*EOF*/
    #####:    #####:11766:/*EOF*/
    #####:    #####:11767:/*EOF*/
        -:        -:11768:/*EOF*/
    #####:    #####:11769:/*EOF*/
        -:        -:11770:/*EOF*/
    #####:    #####:11771:/*EOF*/
        -:        -:11772:/*EOF*/
        -:        -:11773:/*EOF*/
    #####:    #####:11774:/*EOF*/
        -:        -:11775:/*EOF*/
        -:        -:11776:/*EOF*/
        -:        -:11777:/*EOF*/
        -:        -:11778:/*EOF*/
        -:        -:11779:/*EOF*/
        -:        -:11780:/*EOF*/
    #####:    #####:11781:/*EOF*/
    #####:    #####:11782:/*EOF*/
        -:        -:11783:/*EOF*/
    #####:    #####:11784:/*EOF*/
    #####:    #####:11785:/*EOF*/
        -:        -:11786:/*EOF*/
    #####:    #####:11787:/*EOF*/
        -:        -:11788:/*EOF*/
    #####:    #####:11789:/*EOF*/
        -:        -:11790:/*EOF*/
        -:        -:11791:/*EOF*/
    #####:    #####:11792:/*EOF*/
        -:        -:11793:/*EOF*/
        -:        -:11794:/*EOF*/
        -:        -:11795:/*EOF*/
        -:        -:11796:/*EOF*/
        -:        -:11797:/*EOF*/
        -:        -:11798:/*EOF*/
    #####:    #####:11799:/*EOF*/
    #####:    #####:11800:/*EOF*/
        -:        -:11801:/*EOF*/
    #####:    #####:11802:/*EOF*/
    #####:    #####:11803:/*EOF*/
        -:        -:11804:/*EOF*/
    #####:    #####:11805:/*EOF*/
        -:        -:11806:/*EOF*/
    #####:    #####:11807:/*EOF*/
        -:        -:11808:/*EOF*/
        -:        -:11809:/*EOF*/
    #####:    #####:11810:/*EOF*/
        -:        -:11811:/*EOF*/
        -:        -:11812:/*EOF*/
        -:        -:11813:/*EOF*/
        -:        -:11814:/*EOF*/
        -:        -:11815:/*EOF*/
        -:        -:11816:/*EOF*/
    #####:    #####:11817:/*EOF*/
    #####:    #####:11818:/*EOF*/
        -:        -:11819:/*EOF*/
    #####:    #####:11820:/*EOF*/
    #####:    #####:11821:/*EOF*/
        -:        -:11822:/*EOF*/
    #####:    #####:11823:/*EOF*/
        -:        -:11824:/*EOF*/
    #####:    #####:11825:/*EOF*/
        -:        -:11826:/*EOF*/
        -:        -:11827:/*EOF*/
    #####:    #####:11828:/*EOF*/
        -:        -:11829:/*EOF*/
        -:        -:11830:/*EOF*/
        -:        -:11831:/*EOF*/
    #####:    #####:11832:/*EOF*/
        -:        -:11833:/*EOF*/
        -:        -:11834:/*EOF*/
    #####:    #####:11835:/*EOF*/
        -:        -:11836:/*EOF*/
        -:        -:11837:/*EOF*/
    #####:    #####:11838:/*EOF*/
        -:        -:11839:/*EOF*/
        -:        -:11840:/*EOF*/
    #####:    #####:11841:/*EOF*/
        -:        -:11842:/*EOF*/
        -:        -:11843:/*EOF*/
        -:        -:11844:/*EOF*/
        -:        -:11845:/*EOF*/
        -:        -:11846:/*EOF*/
    #####:    #####:11847:/*EOF*/
    #####:    #####:11848:/*EOF*/
        -:        -:11849:/*EOF*/
    #####:    #####:11850:/*EOF*/
    #####:    #####:11851:/*EOF*/
        -:        -:11852:/*EOF*/
        -:        -:11853:/*EOF*/
        -:        -:11854:/*EOF*/
        -:        -:11855:/*EOF*/
    #####:    #####:11856:/*EOF*/
    #####:    #####:11857:/*EOF*/
    #####:    #####:11858:/*EOF*/
        -:        -:11859:/*EOF*/
        -:        -:11860:/*EOF*/
        -:        -:11861:/*EOF*/
    #####:    #####:11862:/*EOF*/
        -:        -:11863:/*EOF*/
        -:        -:11864:/*EOF*/
        -:        -:11865:/*EOF*/
    #####:    #####:11866:/*EOF*/
        -:        -:11867:/*EOF*/
        -:        -:11868:/*EOF*/
    #####:    #####:11869:/*EOF*/
        -:        -:11870:/*EOF*/
        -:        -:11871:/*EOF*/
    #####:    #####:11872:/*EOF*/
        -:        -:11873:/*EOF*/
    #####:    #####:11874:/*EOF*/
        -:        -:11875:/*EOF*/
        -:        -:11876:/*EOF*/
        -:        -:11877:/*EOF*/
        -:        -:11878:/*EOF*/
        -:        -:11879:/*EOF*/
    #####:    #####:11880:/*EOF*/
    #####:    #####:11881:/*EOF*/
        -:        -:11882:/*EOF*/
    #####:    #####:11883:/*EOF*/
    #####:    #####:11884:/*EOF*/
        -:        -:11885:/*EOF*/
    #####:    #####:11886:/*EOF*/
        -:        -:11887:/*EOF*/
    #####:    #####:11888:/*EOF*/
        -:        -:11889:/*EOF*/
        -:        -:11890:/*EOF*/
    #####:    #####:11891:/*EOF*/
        -:        -:11892:/*EOF*/
        -:        -:11893:/*EOF*/
        -:        -:11894:/*EOF*/
        -:        -:11895:/*EOF*/
        -:        -:11896:/*EOF*/
        -:        -:11897:/*EOF*/
    #####:    #####:11898:/*EOF*/
    #####:    #####:11899:/*EOF*/
        -:        -:11900:/*EOF*/
    #####:    #####:11901:/*EOF*/
    #####:    #####:11902:/*EOF*/
        -:        -:11903:/*EOF*/
    #####:    #####:11904:/*EOF*/
        -:        -:11905:/*EOF*/
    #####:    #####:11906:/*EOF*/
        -:        -:11907:/*EOF*/
        -:        -:11908:/*EOF*/
    #####:    #####:11909:/*EOF*/
        -:        -:11910:/*EOF*/
        -:        -:11911:/*EOF*/
        -:        -:11912:/*EOF*/
        -:        -:11913:/*EOF*/
        -:        -:11914:/*EOF*/
        -:        -:11915:/*EOF*/
    #####:    #####:11916:/*EOF*/
    #####:    #####:11917:/*EOF*/
        -:        -:11918:/*EOF*/
    #####:    #####:11919:/*EOF*/
    #####:    #####:11920:/*EOF*/
        -:        -:11921:/*EOF*/
    #####:    #####:11922:/*EOF*/
        -:        -:11923:/*EOF*/
    #####:    #####:11924:/*EOF*/
        -:        -:11925:/*EOF*/
        -:        -:11926:/*EOF*/
    #####:    #####:11927:/*EOF*/
        -:        -:11928:/*EOF*/
        -:        -:11929:/*EOF*/
        -:        -:11930:/*EOF*/
        -:        -:11931:/*EOF*/
        -:        -:11932:/*EOF*/
        -:        -:11933:/*EOF*/
    #####:    #####:11934:/*EOF*/
    #####:    #####:11935:/*EOF*/
        -:        -:11936:/*EOF*/
    #####:    #####:11937:/*EOF*/
    #####:    #####:11938:/*EOF*/
        -:        -:11939:/*EOF*/
    #####:    #####:11940:/*EOF*/
        -:        -:11941:/*EOF*/
    #####:    #####:11942:/*EOF*/
        -:        -:11943:/*EOF*/
        -:        -:11944:/*EOF*/
    #####:    #####:11945:/*EOF*/
        -:        -:11946:/*EOF*/
        -:        -:11947:/*EOF*/
        -:        -:11948:/*EOF*/
    #####:    #####:11949:/*EOF*/
        -:        -:11950:/*EOF*/
        -:        -:11951:/*EOF*/
    #####:    #####:11952:/*EOF*/
        -:        -:11953:/*EOF*/
        -:        -:11954:/*EOF*/
    #####:    #####:11955:/*EOF*/
        -:        -:11956:/*EOF*/
        -:        -:11957:/*EOF*/
    #####:    #####:11958:/*EOF*/
        -:        -:11959:/*EOF*/
        -:        -:11960:/*EOF*/
        -:        -:11961:/*EOF*/
        -:        -:11962:/*EOF*/
        -:        -:11963:/*EOF*/
    #####:    #####:11964:/*EOF*/
    #####:    #####:11965:/*EOF*/
        -:        -:11966:/*EOF*/
    #####:    #####:11967:/*EOF*/
    #####:    #####:11968:/*EOF*/
        -:        -:11969:/*EOF*/
        -:        -:11970:/*EOF*/
        -:        -:11971:/*EOF*/
        -:        -:11972:/*EOF*/
    #####:    #####:11973:/*EOF*/
    #####:    #####:11974:/*EOF*/
    #####:    #####:11975:/*EOF*/
        -:        -:11976:/*EOF*/
        -:        -:11977:/*EOF*/
        -:        -:11978:/*EOF*/
    #####:    #####:11979:/*EOF*/
        -:        -:11980:/*EOF*/
        -:        -:11981:/*EOF*/
        -:        -:11982:/*EOF*/
    #####:    #####:11983:/*EOF*/
        -:        -:11984:/*EOF*/
        -:        -:11985:/*EOF*/
    #####:    #####:11986:/*EOF*/
        -:        -:11987:/*EOF*/
        -:        -:11988:/*EOF*/
    #####:    #####:11989:/*EOF*/
        -:        -:11990:/*EOF*/
    #####:    #####:11991:/*EOF*/
        -:        -:11992:/*EOF*/
        -:        -:11993:/*EOF*/
        -:        -:11994:/*EOF*/
        -:        -:11995:/*EOF*/
        -:        -:11996:/*EOF*/
    #####:    #####:11997:/*EOF*/
    #####:    #####:11998:/*EOF*/
        -:        -:11999:/*EOF*/
    #####:    #####:12000:/*EOF*/
    #####:    #####:12001:/*EOF*/
        -:        -:12002:/*EOF*/
    #####:    #####:12003:/*EOF*/
        -:        -:12004:/*EOF*/
    #####:    #####:12005:/*EOF*/
        -:        -:12006:/*EOF*/
        -:        -:12007:/*EOF*/
    #####:    #####:12008:/*EOF*/
        -:        -:12009:/*EOF*/
        -:        -:12010:/*EOF*/
        -:        -:12011:/*EOF*/
        -:        -:12012:/*EOF*/
        -:        -:12013:/*EOF*/
        -:        -:12014:/*EOF*/
    #####:    #####:12015:/*EOF*/
    #####:    #####:12016:/*EOF*/
        -:        -:12017:/*EOF*/
    #####:    #####:12018:/*EOF*/
    #####:    #####:12019:/*EOF*/
        -:        -:12020:/*EOF*/
    #####:    #####:12021:/*EOF*/
        -:        -:12022:/*EOF*/
    #####:    #####:12023:/*EOF*/
        -:        -:12024:/*EOF*/
        -:        -:12025:/*EOF*/
    #####:    #####:12026:/*EOF*/
        -:        -:12027:/*EOF*/
        -:        -:12028:/*EOF*/
        -:        -:12029:/*EOF*/
        -:        -:12030:/*EOF*/
        -:        -:12031:/*EOF*/
        -:        -:12032:/*EOF*/
    #####:    #####:12033:/*EOF*/
    #####:    #####:12034:/*EOF*/
        -:        -:12035:/*EOF*/
    #####:    #####:12036:/*EOF*/
    #####:    #####:12037:/*EOF*/
        -:        -:12038:/*EOF*/
    #####:    #####:12039:/*EOF*/
        -:        -:12040:/*EOF*/
    #####:    #####:12041:/*EOF*/
        -:        -:12042:/*EOF*/
        -:        -:12043:/*EOF*/
    #####:    #####:12044:/*EOF*/
        -:        -:12045:/*EOF*/
        -:        -:12046:/*EOF*/
        -:        -:12047:/*EOF*/
        -:        -:12048:/*EOF*/
        -:        -:12049:/*EOF*/
        -:        -:12050:/*EOF*/
    #####:    #####:12051:/*EOF*/
    #####:    #####:12052:/*EOF*/
        -:        -:12053:/*EOF*/
    #####:    #####:12054:/*EOF*/
    #####:    #####:12055:/*EOF*/
        -:        -:12056:/*EOF*/
    #####:    #####:12057:/*EOF*/
        -:        -:12058:/*EOF*/
    #####:    #####:12059:/*EOF*/
        -:        -:12060:/*EOF*/
        -:        -:12061:/*EOF*/
    #####:    #####:12062:/*EOF*/
        -:        -:12063:/*EOF*/
        -:        -:12064:/*EOF*/
        -:        -:12065:/*EOF*/
    #####:    #####:12066:/*EOF*/
        -:        -:12067:/*EOF*/
        -:        -:12068:/*EOF*/
    #####:    #####:12069:/*EOF*/
        -:        -:12070:/*EOF*/
        -:        -:12071:/*EOF*/
    #####:    #####:12072:/*EOF*/
        -:        -:12073:/*EOF*/
        -:        -:12074:/*EOF*/
    #####:    #####:12075:/*EOF*/
        -:        -:12076:/*EOF*/
        -:        -:12077:/*EOF*/
        -:        -:12078:/*EOF*/
        -:        -:12079:/*EOF*/
        -:        -:12080:/*EOF*/
    #####:    #####:12081:/*EOF*/
    #####:    #####:12082:/*EOF*/
        -:        -:12083:/*EOF*/
    #####:    #####:12084:/*EOF*/
    #####:    #####:12085:/*EOF*/
        -:        -:12086:/*EOF*/
    #####:    #####:12087:/*EOF*/
        -:        -:12088:/*EOF*/
    #####:    #####:12089:/*EOF*/
        -:        -:12090:/*EOF*/
        -:        -:12091:/*EOF*/
        -:        -:12092:/*EOF*/
    #####:    #####:12093:/*EOF*/
        -:        -:12094:/*EOF*/
        -:        -:12095:/*EOF*/
    #####:    #####:12096:/*EOF*/
        -:        -:12097:/*EOF*/
        -:        -:12098:/*EOF*/
    #####:    #####:12099:/*EOF*/
        -:        -:12100:/*EOF*/
        -:        -:12101:/*EOF*/
        -:        -:12102:/*EOF*/
        -:        -:12103:/*EOF*/
        -:        -:12104:/*EOF*/
    #####:    #####:12105:/*EOF*/
    #####:    #####:12106:/*EOF*/
        -:        -:12107:/*EOF*/
    #####:    #####:12108:/*EOF*/
    #####:    #####:12109:/*EOF*/
        -:        -:12110:/*EOF*/
        -:        -:12111:/*EOF*/
        -:        -:12112:/*EOF*/
        -:        -:12113:/*EOF*/
    #####:    #####:12114:/*EOF*/
    #####:    #####:12115:/*EOF*/
    #####:    #####:12116:/*EOF*/
    #####:    #####:12117:/*EOF*/
    #####:    #####:12118:/*EOF*/
        -:        -:12119:/*EOF*/
        -:        -:12120:/*EOF*/
        -:        -:12121:/*EOF*/
    #####:    #####:12122:/*EOF*/
        -:        -:12123:/*EOF*/
        -:        -:12124:/*EOF*/
        -:        -:12125:/*EOF*/
    #####:    #####:12126:/*EOF*/
        -:        -:12127:/*EOF*/
        -:        -:12128:/*EOF*/
    #####:    #####:12129:/*EOF*/
        -:        -:12130:/*EOF*/
        -:        -:12131:/*EOF*/
    #####:    #####:12132:/*EOF*/
        -:        -:12133:/*EOF*/
        -:        -:12134:/*EOF*/
        -:        -:12135:/*EOF*/
        -:        -:12136:/*EOF*/
        -:        -:12137:/*EOF*/
    #####:    #####:12138:/*EOF*/
    #####:    #####:12139:/*EOF*/
        -:        -:12140:/*EOF*/
        -:        -:12141:/*EOF*/
        -:        -:12142:/*EOF*/
        -:        -:12143:/*EOF*/
        -:        -:12144:/*EOF*/
        -:        -:12145:/*EOF*/
        -:        -:12146:/*EOF*/
    #####:    #####:12147:/*EOF*/
        -:        -:12148:/*EOF*/
    #####:    #####:12149:/*EOF*/
    #####:    #####:12150:/*EOF*/
        -:        -:12151:/*EOF*/
        -:        -:12152:/*EOF*/
    #####:    #####:12153:/*EOF*/
        -:        -:12154:/*EOF*/
        -:        -:12155:/*EOF*/
    #####:    #####:12156:/*EOF*/
        -:        -:12157:/*EOF*/
        -:        -:12158:/*EOF*/
    #####:    #####:12159:/*EOF*/
        -:        -:12160:/*EOF*/
        -:        -:12161:/*EOF*/
        -:        -:12162:/*EOF*/
        -:        -:12163:/*EOF*/
        -:        -:12164:/*EOF*/
    #####:    #####:12165:/*EOF*/
    #####:    #####:12166:/*EOF*/
        -:        -:12167:/*EOF*/
        -:        -:12168:/*EOF*/
    #####:    #####:12169:/*EOF*/
        -:        -:12170:/*EOF*/
    #####:    #####:12171:/*EOF*/
        -:        -:12172:/*EOF*/
        -:        -:12173:/*EOF*/
        -:        -:12174:/*EOF*/
    #####:    #####:12175:/*EOF*/
        -:        -:12176:/*EOF*/
        -:        -:12177:/*EOF*/
    #####:    #####:12178:/*EOF*/
        -:        -:12179:/*EOF*/
        -:        -:12180:/*EOF*/
    #####:    #####:12181:/*EOF*/
        -:        -:12182:/*EOF*/
        -:        -:12183:/*EOF*/
        -:        -:12184:/*EOF*/
        -:        -:12185:/*EOF*/
        -:        -:12186:/*EOF*/
    #####:    #####:12187:/*EOF*/
    #####:    #####:12188:/*EOF*/
        -:        -:12189:/*EOF*/
        -:        -:12190:/*EOF*/
    #####:    #####:12191:/*EOF*/
        -:        -:12192:/*EOF*/
    #####:    #####:12193:/*EOF*/
        -:        -:12194:/*EOF*/
        -:        -:12195:/*EOF*/
        -:        -:12196:/*EOF*/
    #####:    #####:12197:/*EOF*/
        -:        -:12198:/*EOF*/
        -:        -:12199:/*EOF*/
    #####:    #####:12200:/*EOF*/
        -:        -:12201:/*EOF*/
        -:        -:12202:/*EOF*/
    #####:    #####:12203:/*EOF*/
        -:        -:12204:/*EOF*/
        -:        -:12205:/*EOF*/
        -:        -:12206:/*EOF*/
        -:        -:12207:/*EOF*/
        -:        -:12208:/*EOF*/
    #####:    #####:12209:/*EOF*/
    #####:    #####:12210:/*EOF*/
        -:        -:12211:/*EOF*/
        -:        -:12212:/*EOF*/
        -:        -:12213:/*EOF*/
        -:        -:12214:/*EOF*/
        -:        -:12215:/*EOF*/
        -:        -:12216:/*EOF*/
        -:        -:12217:/*EOF*/
        -:        -:12218:/*EOF*/
    #####:    #####:12219:/*EOF*/
    #####:    #####:12220:/*EOF*/
        -:        -:12221:/*EOF*/
        -:        -:12222:/*EOF*/
    #####:    #####:12223:/*EOF*/
    #####:    #####:12224:/*EOF*/
        -:        -:12225:/*EOF*/
        -:        -:12226:/*EOF*/
    #####:    #####:12227:/*EOF*/
        -:        -:12228:/*EOF*/
        -:        -:12229:/*EOF*/
    #####:    #####:12230:/*EOF*/
        -:        -:12231:/*EOF*/
        -:        -:12232:/*EOF*/
    #####:    #####:12233:/*EOF*/
        -:        -:12234:/*EOF*/
        -:        -:12235:/*EOF*/
        -:        -:12236:/*EOF*/
        -:        -:12237:/*EOF*/
        -:        -:12238:/*EOF*/
    #####:    #####:12239:/*EOF*/
    #####:    #####:12240:/*EOF*/
        -:        -:12241:/*EOF*/
        -:        -:12242:/*EOF*/
        -:        -:12243:/*EOF*/
        -:        -:12244:/*EOF*/
        -:        -:12245:/*EOF*/
        -:        -:12246:/*EOF*/
        -:        -:12247:/*EOF*/
    #####:    #####:12248:/*EOF*/
        -:        -:12249:/*EOF*/
    #####:    #####:12250:/*EOF*/
        -:        -:12251:/*EOF*/
        -:        -:12252:/*EOF*/
    #####:    #####:12253:/*EOF*/
        -:        -:12254:/*EOF*/
        -:        -:12255:/*EOF*/
    #####:    #####:12256:/*EOF*/
        -:        -:12257:/*EOF*/
        -:        -:12258:/*EOF*/
    #####:    #####:12259:/*EOF*/
        -:        -:12260:/*EOF*/
        -:        -:12261:/*EOF*/
        -:        -:12262:/*EOF*/
        -:        -:12263:/*EOF*/
        -:        -:12264:/*EOF*/
    #####:    #####:12265:/*EOF*/
    #####:    #####:12266:/*EOF*/
        -:        -:12267:/*EOF*/
        -:        -:12268:/*EOF*/
        -:        -:12269:/*EOF*/
        -:        -:12270:/*EOF*/
        -:        -:12271:/*EOF*/
        -:        -:12272:/*EOF*/
        -:        -:12273:/*EOF*/
    #####:    #####:12274:/*EOF*/
        -:        -:12275:/*EOF*/
    #####:    #####:12276:/*EOF*/
        -:        -:12277:/*EOF*/
        -:        -:12278:/*EOF*/
    #####:    #####:12279:/*EOF*/
        -:        -:12280:/*EOF*/
        -:        -:12281:/*EOF*/
    #####:    #####:12282:/*EOF*/
        -:        -:12283:/*EOF*/
        -:        -:12284:/*EOF*/
    #####:    #####:12285:/*EOF*/
        -:        -:12286:/*EOF*/
        -:        -:12287:/*EOF*/
        -:        -:12288:/*EOF*/
        -:        -:12289:/*EOF*/
        -:        -:12290:/*EOF*/
    #####:    #####:12291:/*EOF*/
    #####:    #####:12292:/*EOF*/
        -:        -:12293:/*EOF*/
        -:        -:12294:/*EOF*/
        -:        -:12295:/*EOF*/
        -:        -:12296:/*EOF*/
        -:        -:12297:/*EOF*/
        -:        -:12298:/*EOF*/
        -:        -:12299:/*EOF*/
        -:        -:12300:/*EOF*/
    #####:    #####:12301:/*EOF*/
    #####:    #####:12302:/*EOF*/
        -:        -:12303:/*EOF*/
        -:        -:12304:/*EOF*/
    #####:    #####:12305:/*EOF*/
    #####:    #####:12306:/*EOF*/
        -:        -:12307:/*EOF*/
        -:        -:12308:/*EOF*/
    #####:    #####:12309:/*EOF*/
        -:        -:12310:/*EOF*/
        -:        -:12311:/*EOF*/
    #####:    #####:12312:/*EOF*/
        -:        -:12313:/*EOF*/
        -:        -:12314:/*EOF*/
    #####:    #####:12315:/*EOF*/
        -:        -:12316:/*EOF*/
        -:        -:12317:/*EOF*/
        -:        -:12318:/*EOF*/
        -:        -:12319:/*EOF*/
        -:        -:12320:/*EOF*/
    #####:    #####:12321:/*EOF*/
    #####:    #####:12322:/*EOF*/
        -:        -:12323:/*EOF*/
        -:        -:12324:/*EOF*/
        -:        -:12325:/*EOF*/
        -:        -:12326:/*EOF*/
        -:        -:12327:/*EOF*/
        -:        -:12328:/*EOF*/
        -:        -:12329:/*EOF*/
        -:        -:12330:/*EOF*/
    #####:    #####:12331:/*EOF*/
    #####:    #####:12332:/*EOF*/
    #####:    #####:12333:/*EOF*/
    #####:    #####:12334:/*EOF*/
        -:        -:12335:/*EOF*/
        -:        -:12336:/*EOF*/
    #####:    #####:12337:/*EOF*/
    #####:    #####:12338:/*EOF*/
    #####:    #####:12339:/*EOF*/
    #####:    #####:12340:/*EOF*/
        -:        -:12341:/*EOF*/
        -:        -:12342:/*EOF*/
    #####:    #####:12343:/*EOF*/
        -:        -:12344:/*EOF*/
        -:        -:12345:/*EOF*/
    #####:    #####:12346:/*EOF*/
        -:        -:12347:/*EOF*/
        -:        -:12348:/*EOF*/
    #####:    #####:12349:/*EOF*/
        -:        -:12350:/*EOF*/
        -:        -:12351:/*EOF*/
        -:        -:12352:/*EOF*/
        -:        -:12353:/*EOF*/
        -:        -:12354:/*EOF*/
    #####:    #####:12355:/*EOF*/
    #####:    #####:12356:/*EOF*/
        -:        -:12357:/*EOF*/
        -:        -:12358:/*EOF*/
        -:        -:12359:/*EOF*/
        -:        -:12360:/*EOF*/
        -:        -:12361:/*EOF*/
        -:        -:12362:/*EOF*/
        -:        -:12363:/*EOF*/
        -:        -:12364:/*EOF*/
    #####:    #####:12365:/*EOF*/
    #####:    #####:12366:/*EOF*/
        -:        -:12367:/*EOF*/
        -:        -:12368:/*EOF*/
    #####:    #####:12369:/*EOF*/
    #####:    #####:12370:/*EOF*/
        -:        -:12371:/*EOF*/
        -:        -:12372:/*EOF*/
    #####:    #####:12373:/*EOF*/
        -:        -:12374:/*EOF*/
        -:        -:12375:/*EOF*/
    #####:    #####:12376:/*EOF*/
        -:        -:12377:/*EOF*/
        -:        -:12378:/*EOF*/
    #####:    #####:12379:/*EOF*/
        -:        -:12380:/*EOF*/
        -:        -:12381:/*EOF*/
        -:        -:12382:/*EOF*/
        -:        -:12383:/*EOF*/
        -:        -:12384:/*EOF*/
    #####:    #####:12385:/*EOF*/
    #####:    #####:12386:/*EOF*/
        -:        -:12387:/*EOF*/
        -:        -:12388:/*EOF*/
        -:        -:12389:/*EOF*/
        -:        -:12390:/*EOF*/
        -:        -:12391:/*EOF*/
        -:        -:12392:/*EOF*/
        -:        -:12393:/*EOF*/
        -:        -:12394:/*EOF*/
    #####:    #####:12395:/*EOF*/
    #####:    #####:12396:/*EOF*/
    #####:    #####:12397:/*EOF*/
    #####:    #####:12398:/*EOF*/
        -:        -:12399:/*EOF*/
        -:        -:12400:/*EOF*/
    #####:    #####:12401:/*EOF*/
    #####:    #####:12402:/*EOF*/
    #####:    #####:12403:/*EOF*/
    #####:    #####:12404:/*EOF*/
        -:        -:12405:/*EOF*/
        -:        -:12406:/*EOF*/
    #####:    #####:12407:/*EOF*/
        -:        -:12408:/*EOF*/
        -:        -:12409:/*EOF*/
    #####:    #####:12410:/*EOF*/
        -:        -:12411:/*EOF*/
        -:        -:12412:/*EOF*/
    #####:    #####:12413:/*EOF*/
        -:        -:12414:/*EOF*/
        -:        -:12415:/*EOF*/
        -:        -:12416:/*EOF*/
        -:        -:12417:/*EOF*/
        -:        -:12418:/*EOF*/
    #####:    #####:12419:/*EOF*/
    #####:    #####:12420:/*EOF*/
        -:        -:12421:/*EOF*/
    #####:    #####:12422:/*EOF*/
    #####:    #####:12423:/*EOF*/
        -:        -:12424:/*EOF*/
        -:        -:12425:/*EOF*/
        -:        -:12426:/*EOF*/
        -:        -:12427:/*EOF*/
    #####:    #####:12428:/*EOF*/
    #####:    #####:12429:/*EOF*/
    #####:    #####:12430:/*EOF*/
        -:        -:12431:/*EOF*/
        -:        -:12432:/*EOF*/
        -:        -:12433:/*EOF*/
    #####:    #####:12434:/*EOF*/
        -:        -:12435:/*EOF*/
        -:        -:12436:/*EOF*/
        -:        -:12437:/*EOF*/
    #####:    #####:12438:/*EOF*/
        -:        -:12439:/*EOF*/
        -:        -:12440:/*EOF*/
    #####:    #####:12441:/*EOF*/
        -:        -:12442:/*EOF*/
        -:        -:12443:/*EOF*/
    #####:    #####:12444:/*EOF*/
        -:        -:12445:/*EOF*/
    #####:    #####:12446:/*EOF*/
        -:        -:12447:/*EOF*/
        -:        -:12448:/*EOF*/
        -:        -:12449:/*EOF*/
        -:        -:12450:/*EOF*/
        -:        -:12451:/*EOF*/
    #####:    #####:12452:/*EOF*/
    #####:    #####:12453:/*EOF*/
        -:        -:12454:/*EOF*/
    #####:    #####:12455:/*EOF*/
    #####:    #####:12456:/*EOF*/
        -:        -:12457:/*EOF*/
    #####:    #####:12458:/*EOF*/
        -:        -:12459:/*EOF*/
    #####:    #####:12460:/*EOF*/
        -:        -:12461:/*EOF*/
        -:        -:12462:/*EOF*/
    #####:    #####:12463:/*EOF*/
        -:        -:12464:/*EOF*/
        -:        -:12465:/*EOF*/
        -:        -:12466:/*EOF*/
        -:        -:12467:/*EOF*/
        -:        -:12468:/*EOF*/
        -:        -:12469:/*EOF*/
    #####:    #####:12470:/*EOF*/
    #####:    #####:12471:/*EOF*/
        -:        -:12472:/*EOF*/
    #####:    #####:12473:/*EOF*/
    #####:    #####:12474:/*EOF*/
        -:        -:12475:/*EOF*/
    #####:    #####:12476:/*EOF*/
        -:        -:12477:/*EOF*/
    #####:    #####:12478:/*EOF*/
        -:        -:12479:/*EOF*/
        -:        -:12480:/*EOF*/
    #####:    #####:12481:/*EOF*/
        -:        -:12482:/*EOF*/
        -:        -:12483:/*EOF*/
        -:        -:12484:/*EOF*/
        -:        -:12485:/*EOF*/
        -:        -:12486:/*EOF*/
        -:        -:12487:/*EOF*/
    #####:    #####:12488:/*EOF*/
    #####:    #####:12489:/*EOF*/
        -:        -:12490:/*EOF*/
    #####:    #####:12491:/*EOF*/
    #####:    #####:12492:/*EOF*/
        -:        -:12493:/*EOF*/
    #####:    #####:12494:/*EOF*/
        -:        -:12495:/*EOF*/
    #####:    #####:12496:/*EOF*/
        -:        -:12497:/*EOF*/
        -:        -:12498:/*EOF*/
    #####:    #####:12499:/*EOF*/
        -:        -:12500:/*EOF*/
        -:        -:12501:/*EOF*/
        -:        -:12502:/*EOF*/
        -:        -:12503:/*EOF*/
        -:        -:12504:/*EOF*/
        -:        -:12505:/*EOF*/
    #####:    #####:12506:/*EOF*/
    #####:    #####:12507:/*EOF*/
        -:        -:12508:/*EOF*/
    #####:    #####:12509:/*EOF*/
    #####:    #####:12510:/*EOF*/
        -:        -:12511:/*EOF*/
    #####:    #####:12512:/*EOF*/
        -:        -:12513:/*EOF*/
    #####:    #####:12514:/*EOF*/
        -:        -:12515:/*EOF*/
        -:        -:12516:/*EOF*/
    #####:    #####:12517:/*EOF*/
        -:        -:12518:/*EOF*/
        -:        -:12519:/*EOF*/
        -:        -:12520:/*EOF*/
    #####:    #####:12521:/*EOF*/
        -:        -:12522:/*EOF*/
        -:        -:12523:/*EOF*/
    #####:    #####:12524:/*EOF*/
        -:        -:12525:/*EOF*/
        -:        -:12526:/*EOF*/
    #####:    #####:12527:/*EOF*/
        -:        -:12528:/*EOF*/
        -:        -:12529:/*EOF*/
    #####:    #####:12530:/*EOF*/
        -:        -:12531:/*EOF*/
        -:        -:12532:/*EOF*/
        -:        -:12533:/*EOF*/
        -:        -:12534:/*EOF*/
        -:        -:12535:/*EOF*/
    #####:    #####:12536:/*EOF*/
    #####:    #####:12537:/*EOF*/
        -:        -:12538:/*EOF*/
    #####:    #####:12539:/*EOF*/
    #####:    #####:12540:/*EOF*/
        -:        -:12541:/*EOF*/
        -:        -:12542:/*EOF*/
        -:        -:12543:/*EOF*/
        -:        -:12544:/*EOF*/
    #####:    #####:12545:/*EOF*/
    #####:    #####:12546:/*EOF*/
    #####:    #####:12547:/*EOF*/
    #####:    #####:12548:/*EOF*/
    #####:    #####:12549:/*EOF*/
    #####:    #####:12550:/*EOF*/
        -:        -:12551:/*EOF*/
        -:        -:12552:/*EOF*/
        -:        -:12553:/*EOF*/
    #####:    #####:12554:/*EOF*/
        -:        -:12555:/*EOF*/
        -:        -:12556:/*EOF*/
        -:        -:12557:/*EOF*/
    #####:    #####:12558:/*EOF*/
        -:        -:12559:/*EOF*/
        -:        -:12560:/*EOF*/
    #####:    #####:12561:/*EOF*/
        -:        -:12562:/*EOF*/
        -:        -:12563:/*EOF*/
    #####:    #####:12564:/*EOF*/
        -:        -:12565:/*EOF*/
    #####:    #####:12566:/*EOF*/
        -:        -:12567:/*EOF*/
        -:        -:12568:/*EOF*/
        -:        -:12569:/*EOF*/
        -:        -:12570:/*EOF*/
        -:        -:12571:/*EOF*/
    #####:    #####:12572:/*EOF*/
    #####:    #####:12573:/*EOF*/
        -:        -:12574:/*EOF*/
    #####:    #####:12575:/*EOF*/
    #####:    #####:12576:/*EOF*/
        -:        -:12577:/*EOF*/
    #####:    #####:12578:/*EOF*/
        -:        -:12579:/*EOF*/
    #####:    #####:12580:/*EOF*/
        -:        -:12581:/*EOF*/
        -:        -:12582:/*EOF*/
    #####:    #####:12583:/*EOF*/
        -:        -:12584:/*EOF*/
        -:        -:12585:/*EOF*/
        -:        -:12586:/*EOF*/
        -:        -:12587:/*EOF*/
        -:        -:12588:/*EOF*/
        -:        -:12589:/*EOF*/
    #####:    #####:12590:/*EOF*/
    #####:    #####:12591:/*EOF*/
        -:        -:12592:/*EOF*/
    #####:    #####:12593:/*EOF*/
    #####:    #####:12594:/*EOF*/
        -:        -:12595:/*EOF*/
    #####:    #####:12596:/*EOF*/
        -:        -:12597:/*EOF*/
    #####:    #####:12598:/*EOF*/
        -:        -:12599:/*EOF*/
        -:        -:12600:/*EOF*/
    #####:    #####:12601:/*EOF*/
        -:        -:12602:/*EOF*/
        -:        -:12603:/*EOF*/
        -:        -:12604:/*EOF*/
        -:        -:12605:/*EOF*/
        -:        -:12606:/*EOF*/
        -:        -:12607:/*EOF*/
    #####:    #####:12608:/*EOF*/
    #####:    #####:12609:/*EOF*/
        -:        -:12610:/*EOF*/
    #####:    #####:12611:/*EOF*/
    #####:    #####:12612:/*EOF*/
        -:        -:12613:/*EOF*/
    #####:    #####:12614:/*EOF*/
        -:        -:12615:/*EOF*/
    #####:    #####:12616:/*EOF*/
        -:        -:12617:/*EOF*/
        -:        -:12618:/*EOF*/
    #####:    #####:12619:/*EOF*/
        -:        -:12620:/*EOF*/
        -:        -:12621:/*EOF*/
        -:        -:12622:/*EOF*/
        -:        -:12623:/*EOF*/
        -:        -:12624:/*EOF*/
        -:        -:12625:/*EOF*/
    #####:    #####:12626:/*EOF*/
    #####:    #####:12627:/*EOF*/
        -:        -:12628:/*EOF*/
    #####:    #####:12629:/*EOF*/
    #####:    #####:12630:/*EOF*/
        -:        -:12631:/*EOF*/
    #####:    #####:12632:/*EOF*/
        -:        -:12633:/*EOF*/
    #####:    #####:12634:/*EOF*/
        -:        -:12635:/*EOF*/
        -:        -:12636:/*EOF*/
    #####:    #####:12637:/*EOF*/
        -:        -:12638:/*EOF*/
        -:        -:12639:/*EOF*/
        -:        -:12640:/*EOF*/
    #####:    #####:12641:/*EOF*/
        -:        -:12642:/*EOF*/
        -:        -:12643:/*EOF*/
    #####:    #####:12644:/*EOF*/
        -:        -:12645:/*EOF*/
        -:        -:12646:/*EOF*/
    #####:    #####:12647:/*EOF*/
        -:        -:12648:/*EOF*/
        -:        -:12649:/*EOF*/
    #####:    #####:12650:/*EOF*/
        -:        -:12651:/*EOF*/
    #####:    #####:12652:/*EOF*/
        -:        -:12653:/*EOF*/
        -:        -:12654:/*EOF*/
        -:        -:12655:/*EOF*/
        -:        -:12656:/*EOF*/
        -:        -:12657:/*EOF*/
    #####:    #####:12658:/*EOF*/
    #####:    #####:12659:/*EOF*/
        -:        -:12660:/*EOF*/
        -:        -:12661:/*EOF*/
        -:        -:12662:/*EOF*/
        -:        -:12663:/*EOF*/
        -:        -:12664:/*EOF*/
    #####:    #####:12665:/*EOF*/
    #####:    #####:12666:/*EOF*/
        -:        -:12667:/*EOF*/
        -:        -:12668:/*EOF*/
        -:        -:12669:/*EOF*/
        -:        -:12670:/*EOF*/
        -:        -:12671:/*EOF*/
        -:        -:12672:/*EOF*/
        -:        -:12673:/*EOF*/
        -:        -:12674:/*EOF*/
    #####:    #####:12675:/*EOF*/
    #####:    #####:12676:/*EOF*/
        -:        -:12677:/*EOF*/
        -:        -:12678:/*EOF*/
    #####:    #####:12679:/*EOF*/
    #####:    #####:12680:/*EOF*/
        -:        -:12681:/*EOF*/
    #####:    #####:12682:/*EOF*/
        -:        -:12683:/*EOF*/
        -:        -:12684:/*EOF*/
        -:        -:12685:/*EOF*/
        -:        -:12686:/*EOF*/
        -:        -:12687:/*EOF*/
        -:        -:12688:/*EOF*/
    #####:    #####:12689:/*EOF*/
    #####:    #####:12690:/*EOF*/
        -:        -:12691:/*EOF*/
        -:        -:12692:/*EOF*/
        -:        -:12693:/*EOF*/
        -:        -:12694:/*EOF*/
        -:        -:12695:/*EOF*/
    #####:    #####:12696:/*EOF*/
    #####:    #####:12697:/*EOF*/
        -:        -:12698:/*EOF*/
        -:        -:12699:/*EOF*/
        -:        -:12700:/*EOF*/
        -:        -:12701:/*EOF*/
        -:        -:12702:/*EOF*/
        -:        -:12703:/*EOF*/
        -:        -:12704:/*EOF*/
        -:        -:12705:/*EOF*/
    #####:    #####:12706:/*EOF*/
    #####:    #####:12707:/*EOF*/
        -:        -:12708:/*EOF*/
        -:        -:12709:/*EOF*/
    #####:    #####:12710:/*EOF*/
    #####:    #####:12711:/*EOF*/
        -:        -:12712:/*EOF*/
    #####:    #####:12713:/*EOF*/
        -:        -:12714:/*EOF*/
        -:        -:12715:/*EOF*/
        -:        -:12716:/*EOF*/
        -:        -:12717:/*EOF*/
        -:        -:12718:/*EOF*/
        -:        -:12719:/*EOF*/
    #####:    #####:12720:/*EOF*/
    #####:    #####:12721:/*EOF*/
        -:        -:12722:/*EOF*/
        -:        -:12723:/*EOF*/
        -:        -:12724:/*EOF*/
        -:        -:12725:/*EOF*/
        -:        -:12726:/*EOF*/
    #####:    #####:12727:/*EOF*/
    #####:    #####:12728:/*EOF*/
        -:        -:12729:/*EOF*/
        -:        -:12730:/*EOF*/
        -:        -:12731:/*EOF*/
        -:        -:12732:/*EOF*/
        -:        -:12733:/*EOF*/
        -:        -:12734:/*EOF*/
        -:        -:12735:/*EOF*/
        -:        -:12736:/*EOF*/
    #####:    #####:12737:/*EOF*/
    #####:    #####:12738:/*EOF*/
        -:        -:12739:/*EOF*/
        -:        -:12740:/*EOF*/
    #####:    #####:12741:/*EOF*/
    #####:    #####:12742:/*EOF*/
        -:        -:12743:/*EOF*/
    #####:    #####:12744:/*EOF*/
        -:        -:12745:/*EOF*/
        -:        -:12746:/*EOF*/
        -:        -:12747:/*EOF*/
        -:        -:12748:/*EOF*/
        -:        -:12749:/*EOF*/
        -:        -:12750:/*EOF*/
    #####:    #####:12751:/*EOF*/
    #####:    #####:12752:/*EOF*/
        -:        -:12753:/*EOF*/
        -:        -:12754:/*EOF*/
        -:        -:12755:/*EOF*/
        -:        -:12756:/*EOF*/
        -:        -:12757:/*EOF*/
    #####:    #####:12758:/*EOF*/
    #####:    #####:12759:/*EOF*/
        -:        -:12760:/*EOF*/
        -:        -:12761:/*EOF*/
        -:        -:12762:/*EOF*/
        -:        -:12763:/*EOF*/
        -:        -:12764:/*EOF*/
        -:        -:12765:/*EOF*/
        -:        -:12766:/*EOF*/
        -:        -:12767:/*EOF*/
    #####:    #####:12768:/*EOF*/
    #####:    #####:12769:/*EOF*/
        -:        -:12770:/*EOF*/
        -:        -:12771:/*EOF*/
    #####:    #####:12772:/*EOF*/
    #####:    #####:12773:/*EOF*/
        -:        -:12774:/*EOF*/
    #####:    #####:12775:/*EOF*/
        -:        -:12776:/*EOF*/
        -:        -:12777:/*EOF*/
        -:        -:12778:/*EOF*/
    #####:    #####:12779:/*EOF*/
        -:        -:12780:/*EOF*/
        -:        -:12781:/*EOF*/
    #####:    #####:12782:/*EOF*/
        -:        -:12783:/*EOF*/
        -:        -:12784:/*EOF*/
    #####:    #####:12785:/*EOF*/
        -:        -:12786:/*EOF*/
        -:        -:12787:/*EOF*/
    #####:    #####:12788:/*EOF*/
        -:        -:12789:/*EOF*/
    #####:    #####:12790:/*EOF*/
        -:        -:12791:/*EOF*/
        -:        -:12792:/*EOF*/
        -:        -:12793:/*EOF*/
        -:        -:12794:/*EOF*/
        -:        -:12795:/*EOF*/
    #####:    #####:12796:/*EOF*/
    #####:    #####:12797:/*EOF*/
        -:        -:12798:/*EOF*/
        -:        -:12799:/*EOF*/
        -:        -:12800:/*EOF*/
        -:        -:12801:/*EOF*/
        -:        -:12802:/*EOF*/
    #####:    #####:12803:/*EOF*/
    #####:    #####:12804:/*EOF*/
        -:        -:12805:/*EOF*/
        -:        -:12806:/*EOF*/
        -:        -:12807:/*EOF*/
        -:        -:12808:/*EOF*/
        -:        -:12809:/*EOF*/
    #####:    #####:12810:/*EOF*/
    #####:    #####:12811:/*EOF*/
        -:        -:12812:/*EOF*/
        -:        -:12813:/*EOF*/
        -:        -:12814:/*EOF*/
        -:        -:12815:/*EOF*/
        -:        -:12816:/*EOF*/
        -:        -:12817:/*EOF*/
        -:        -:12818:/*EOF*/
        -:        -:12819:/*EOF*/
    #####:    #####:12820:/*EOF*/
    #####:    #####:12821:/*EOF*/
    #####:    #####:12822:/*EOF*/
        -:        -:12823:/*EOF*/
        -:        -:12824:/*EOF*/
    #####:    #####:12825:/*EOF*/
    #####:    #####:12826:/*EOF*/
    #####:    #####:12827:/*EOF*/
        -:        -:12828:/*EOF*/
    #####:    #####:12829:/*EOF*/
        -:        -:12830:/*EOF*/
        -:        -:12831:/*EOF*/
        -:        -:12832:/*EOF*/
        -:        -:12833:/*EOF*/
        -:        -:12834:/*EOF*/
        -:        -:12835:/*EOF*/
    #####:    #####:12836:/*EOF*/
    #####:    #####:12837:/*EOF*/
        -:        -:12838:/*EOF*/
        -:        -:12839:/*EOF*/
        -:        -:12840:/*EOF*/
        -:        -:12841:/*EOF*/
        -:        -:12842:/*EOF*/
    #####:    #####:12843:/*EOF*/
    #####:    #####:12844:/*EOF*/
        -:        -:12845:/*EOF*/
        -:        -:12846:/*EOF*/
        -:        -:12847:/*EOF*/
        -:        -:12848:/*EOF*/
        -:        -:12849:/*EOF*/
    #####:    #####:12850:/*EOF*/
    #####:    #####:12851:/*EOF*/
        -:        -:12852:/*EOF*/
        -:        -:12853:/*EOF*/
        -:        -:12854:/*EOF*/
        -:        -:12855:/*EOF*/
        -:        -:12856:/*EOF*/
        -:        -:12857:/*EOF*/
        -:        -:12858:/*EOF*/
        -:        -:12859:/*EOF*/
    #####:    #####:12860:/*EOF*/
    #####:    #####:12861:/*EOF*/
    #####:    #####:12862:/*EOF*/
        -:        -:12863:/*EOF*/
        -:        -:12864:/*EOF*/
    #####:    #####:12865:/*EOF*/
    #####:    #####:12866:/*EOF*/
    #####:    #####:12867:/*EOF*/
        -:        -:12868:/*EOF*/
    #####:    #####:12869:/*EOF*/
        -:        -:12870:/*EOF*/
        -:        -:12871:/*EOF*/
        -:        -:12872:/*EOF*/
        -:        -:12873:/*EOF*/
        -:        -:12874:/*EOF*/
        -:        -:12875:/*EOF*/
    #####:    #####:12876:/*EOF*/
    #####:    #####:12877:/*EOF*/
        -:        -:12878:/*EOF*/
        -:        -:12879:/*EOF*/
        -:        -:12880:/*EOF*/
        -:        -:12881:/*EOF*/
        -:        -:12882:/*EOF*/
    #####:    #####:12883:/*EOF*/
    #####:    #####:12884:/*EOF*/
        -:        -:12885:/*EOF*/
        -:        -:12886:/*EOF*/
        -:        -:12887:/*EOF*/
        -:        -:12888:/*EOF*/
        -:        -:12889:/*EOF*/
    #####:    #####:12890:/*EOF*/
    #####:    #####:12891:/*EOF*/
        -:        -:12892:/*EOF*/
        -:        -:12893:/*EOF*/
        -:        -:12894:/*EOF*/
        -:        -:12895:/*EOF*/
        -:        -:12896:/*EOF*/
        -:        -:12897:/*EOF*/
        -:        -:12898:/*EOF*/
        -:        -:12899:/*EOF*/
    #####:    #####:12900:/*EOF*/
    #####:    #####:12901:/*EOF*/
    #####:    #####:12902:/*EOF*/
        -:        -:12903:/*EOF*/
        -:        -:12904:/*EOF*/
    #####:    #####:12905:/*EOF*/
    #####:    #####:12906:/*EOF*/
    #####:    #####:12907:/*EOF*/
        -:        -:12908:/*EOF*/
    #####:    #####:12909:/*EOF*/
        -:        -:12910:/*EOF*/
        -:        -:12911:/*EOF*/
        -:        -:12912:/*EOF*/
        -:        -:12913:/*EOF*/
        -:        -:12914:/*EOF*/
        -:        -:12915:/*EOF*/
    #####:    #####:12916:/*EOF*/
    #####:    #####:12917:/*EOF*/
        -:        -:12918:/*EOF*/
        -:        -:12919:/*EOF*/
        -:        -:12920:/*EOF*/
        -:        -:12921:/*EOF*/
        -:        -:12922:/*EOF*/
    #####:    #####:12923:/*EOF*/
    #####:    #####:12924:/*EOF*/
        -:        -:12925:/*EOF*/
        -:        -:12926:/*EOF*/
        -:        -:12927:/*EOF*/
        -:        -:12928:/*EOF*/
        -:        -:12929:/*EOF*/
    #####:    #####:12930:/*EOF*/
    #####:    #####:12931:/*EOF*/
        -:        -:12932:/*EOF*/
        -:        -:12933:/*EOF*/
        -:        -:12934:/*EOF*/
        -:        -:12935:/*EOF*/
        -:        -:12936:/*EOF*/
        -:        -:12937:/*EOF*/
        -:        -:12938:/*EOF*/
        -:        -:12939:/*EOF*/
    #####:    #####:12940:/*EOF*/
    #####:    #####:12941:/*EOF*/
    #####:    #####:12942:/*EOF*/
        -:        -:12943:/*EOF*/
        -:        -:12944:/*EOF*/
    #####:    #####:12945:/*EOF*/
    #####:    #####:12946:/*EOF*/
    #####:    #####:12947:/*EOF*/
        -:        -:12948:/*EOF*/
    #####:    #####:12949:/*EOF*/
        -:        -:12950:/*EOF*/
        -:        -:12951:/*EOF*/
        -:        -:12952:/*EOF*/
    #####:    #####:12953:/*EOF*/
        -:        -:12954:/*EOF*/
        -:        -:12955:/*EOF*/
    #####:    #####:12956:/*EOF*/
        -:        -:12957:/*EOF*/
        -:        -:12958:/*EOF*/
    #####:    #####:12959:/*EOF*/
        -:        -:12960:/*EOF*/
        -:        -:12961:/*EOF*/
    #####:    #####:12962:/*EOF*/
        -:        -:12963:/*EOF*/
    #####:    #####:12964:/*EOF*/
        -:        -:12965:/*EOF*/
        -:        -:12966:/*EOF*/
        -:        -:12967:/*EOF*/
        -:        -:12968:/*EOF*/
        -:        -:12969:/*EOF*/
    #####:    #####:12970:/*EOF*/
    #####:    #####:12971:/*EOF*/
        -:        -:12972:/*EOF*/
        -:        -:12973:/*EOF*/
        -:        -:12974:/*EOF*/
        -:        -:12975:/*EOF*/
        -:        -:12976:/*EOF*/
    #####:    #####:12977:/*EOF*/
    #####:    #####:12978:/*EOF*/
        -:        -:12979:/*EOF*/
        -:        -:12980:/*EOF*/
        -:        -:12981:/*EOF*/
        -:        -:12982:/*EOF*/
        -:        -:12983:/*EOF*/
    #####:    #####:12984:/*EOF*/
    #####:    #####:12985:/*EOF*/
        -:        -:12986:/*EOF*/
        -:        -:12987:/*EOF*/
        -:        -:12988:/*EOF*/
        -:        -:12989:/*EOF*/
        -:        -:12990:/*EOF*/
    #####:    #####:12991:/*EOF*/
    #####:    #####:12992:/*EOF*/
        -:        -:12993:/*EOF*/
        -:        -:12994:/*EOF*/
        -:        -:12995:/*EOF*/
        -:        -:12996:/*EOF*/
        -:        -:12997:/*EOF*/
        -:        -:12998:/*EOF*/
        -:        -:12999:/*EOF*/
        -:        -:13000:/*EOF*/
    #####:    #####:13001:/*EOF*/
    #####:    #####:13002:/*EOF*/
    #####:    #####:13003:/*EOF*/
    #####:    #####:13004:/*EOF*/
        -:        -:13005:/*EOF*/
        -:        -:13006:/*EOF*/
    #####:    #####:13007:/*EOF*/
    #####:    #####:13008:/*EOF*/
    #####:    #####:13009:/*EOF*/
    #####:    #####:13010:/*EOF*/
        -:        -:13011:/*EOF*/
    #####:    #####:13012:/*EOF*/
        -:        -:13013:/*EOF*/
        -:        -:13014:/*EOF*/
        -:        -:13015:/*EOF*/
        -:        -:13016:/*EOF*/
        -:        -:13017:/*EOF*/
        -:        -:13018:/*EOF*/
    #####:    #####:13019:/*EOF*/
    #####:    #####:13020:/*EOF*/
        -:        -:13021:/*EOF*/
        -:        -:13022:/*EOF*/
        -:        -:13023:/*EOF*/
        -:        -:13024:/*EOF*/
        -:        -:13025:/*EOF*/
    #####:    #####:13026:/*EOF*/
    #####:    #####:13027:/*EOF*/
        -:        -:13028:/*EOF*/
        -:        -:13029:/*EOF*/
        -:        -:13030:/*EOF*/
        -:        -:13031:/*EOF*/
        -:        -:13032:/*EOF*/
    #####:    #####:13033:/*EOF*/
    #####:    #####:13034:/*EOF*/
        -:        -:13035:/*EOF*/
        -:        -:13036:/*EOF*/
        -:        -:13037:/*EOF*/
        -:        -:13038:/*EOF*/
        -:        -:13039:/*EOF*/
    #####:    #####:13040:/*EOF*/
    #####:    #####:13041:/*EOF*/
        -:        -:13042:/*EOF*/
        -:        -:13043:/*EOF*/
        -:        -:13044:/*EOF*/
        -:        -:13045:/*EOF*/
        -:        -:13046:/*EOF*/
        -:        -:13047:/*EOF*/
        -:        -:13048:/*EOF*/
        -:        -:13049:/*EOF*/
    #####:    #####:13050:/*EOF*/
    #####:    #####:13051:/*EOF*/
    #####:    #####:13052:/*EOF*/
    #####:    #####:13053:/*EOF*/
        -:        -:13054:/*EOF*/
        -:        -:13055:/*EOF*/
    #####:    #####:13056:/*EOF*/
    #####:    #####:13057:/*EOF*/
    #####:    #####:13058:/*EOF*/
    #####:    #####:13059:/*EOF*/
        -:        -:13060:/*EOF*/
    #####:    #####:13061:/*EOF*/
        -:        -:13062:/*EOF*/
        -:        -:13063:/*EOF*/
        -:        -:13064:/*EOF*/
        -:        -:13065:/*EOF*/
        -:        -:13066:/*EOF*/
        -:        -:13067:/*EOF*/
    #####:    #####:13068:/*EOF*/
    #####:    #####:13069:/*EOF*/
        -:        -:13070:/*EOF*/
        -:        -:13071:/*EOF*/
        -:        -:13072:/*EOF*/
        -:        -:13073:/*EOF*/
        -:        -:13074:/*EOF*/
    #####:    #####:13075:/*EOF*/
    #####:    #####:13076:/*EOF*/
        -:        -:13077:/*EOF*/
        -:        -:13078:/*EOF*/
        -:        -:13079:/*EOF*/
        -:        -:13080:/*EOF*/
        -:        -:13081:/*EOF*/
    #####:    #####:13082:/*EOF*/
    #####:    #####:13083:/*EOF*/
        -:        -:13084:/*EOF*/
        -:        -:13085:/*EOF*/
        -:        -:13086:/*EOF*/
        -:        -:13087:/*EOF*/
        -:        -:13088:/*EOF*/
    #####:    #####:13089:/*EOF*/
    #####:    #####:13090:/*EOF*/
        -:        -:13091:/*EOF*/
        -:        -:13092:/*EOF*/
        -:        -:13093:/*EOF*/
        -:        -:13094:/*EOF*/
        -:        -:13095:/*EOF*/
        -:        -:13096:/*EOF*/
        -:        -:13097:/*EOF*/
        -:        -:13098:/*EOF*/
    #####:    #####:13099:/*EOF*/
    #####:    #####:13100:/*EOF*/
    #####:    #####:13101:/*EOF*/
    #####:    #####:13102:/*EOF*/
        -:        -:13103:/*EOF*/
        -:        -:13104:/*EOF*/
    #####:    #####:13105:/*EOF*/
    #####:    #####:13106:/*EOF*/
    #####:    #####:13107:/*EOF*/
    #####:    #####:13108:/*EOF*/
        -:        -:13109:/*EOF*/
    #####:    #####:13110:/*EOF*/
        -:        -:13111:/*EOF*/
        -:        -:13112:/*EOF*/
        -:        -:13113:/*EOF*/
        -:        -:13114:/*EOF*/
        -:        -:13115:/*EOF*/
        -:        -:13116:/*EOF*/
    #####:    #####:13117:/*EOF*/
    #####:    #####:13118:/*EOF*/
        -:        -:13119:/*EOF*/
        -:        -:13120:/*EOF*/
        -:        -:13121:/*EOF*/
        -:        -:13122:/*EOF*/
        -:        -:13123:/*EOF*/
    #####:    #####:13124:/*EOF*/
    #####:    #####:13125:/*EOF*/
        -:        -:13126:/*EOF*/
        -:        -:13127:/*EOF*/
        -:        -:13128:/*EOF*/
        -:        -:13129:/*EOF*/
        -:        -:13130:/*EOF*/
    #####:    #####:13131:/*EOF*/
    #####:    #####:13132:/*EOF*/
        -:        -:13133:/*EOF*/
        -:        -:13134:/*EOF*/
        -:        -:13135:/*EOF*/
        -:        -:13136:/*EOF*/
        -:        -:13137:/*EOF*/
    #####:    #####:13138:/*EOF*/
    #####:    #####:13139:/*EOF*/
        -:        -:13140:/*EOF*/
        -:        -:13141:/*EOF*/
        -:        -:13142:/*EOF*/
        -:        -:13143:/*EOF*/
        -:        -:13144:/*EOF*/
        -:        -:13145:/*EOF*/
        -:        -:13146:/*EOF*/
        -:        -:13147:/*EOF*/
    #####:    #####:13148:/*EOF*/
    #####:    #####:13149:/*EOF*/
    #####:    #####:13150:/*EOF*/
    #####:    #####:13151:/*EOF*/
        -:        -:13152:/*EOF*/
        -:        -:13153:/*EOF*/
    #####:    #####:13154:/*EOF*/
    #####:    #####:13155:/*EOF*/
    #####:    #####:13156:/*EOF*/
    #####:    #####:13157:/*EOF*/
        -:        -:13158:/*EOF*/
    #####:    #####:13159:/*EOF*/
        -:        -:13160:/*EOF*/
        -:        -:13161:/*EOF*/
        -:        -:13162:/*EOF*/
    #####:    #####:13163:/*EOF*/
        -:        -:13164:/*EOF*/
        -:        -:13165:/*EOF*/
    #####:    #####:13166:/*EOF*/
        -:        -:13167:/*EOF*/
        -:        -:13168:/*EOF*/
        -:        -:13169:/*EOF*/
      134:       38:13170:/*EOF*/
        -:        -:13171:/*EOF*/
        -:        -:13172:/*EOF*/
      134:       38:13173:/*EOF*/
        -:        -:13174:/*EOF*/
    #####:    #####:13175:/*EOF*/
        -:        -:13176:/*EOF*/
    #####:    #####:13177:/*EOF*/
        -:        -:13178:/*EOF*/
    #####:    #####:13179:/*EOF*/
        -:        -:13180:/*EOF*/
    #####:    #####:13181:/*EOF*/
        -:        -:13182:/*EOF*/
    #####:    #####:13183:/*EOF*/
        -:        -:13184:/*EOF*/
    #####:    #####:13185:/*EOF*/
        -:        -:13186:/*EOF*/
    #####:    #####:13187:/*EOF*/
        -:        -:13188:/*EOF*/
    #####:    #####:13189:/*EOF*/
        -:        -:13190:/*EOF*/
    #####:    #####:13191:/*EOF*/
        -:        -:13192:/*EOF*/
    #####:    #####:13193:/*EOF*/
        -:        -:13194:/*EOF*/
    #####:    #####:13195:/*EOF*/
        -:        -:13196:/*EOF*/
    #####:    #####:13197:/*EOF*/
        -:        -:13198:/*EOF*/
    #####:    #####:13199:/*EOF*/
        -:        -:13200:/*EOF*/
    #####:    #####:13201:/*EOF*/
        -:        -:13202:/*EOF*/
    #####:    #####:13203:/*EOF*/
        -:        -:13204:/*EOF*/
    #####:    #####:13205:/*EOF*/
        -:        -:13206:/*EOF*/
    #####:    #####:13207:/*EOF*/
        -:        -:13208:/*EOF*/
    #####:    #####:13209:/*EOF*/
        -:        -:13210:/*EOF*/
    #####:    #####:13211:/*EOF*/
        -:        -:13212:/*EOF*/
    #####:    #####:13213:/*EOF*/
        -:        -:13214:/*EOF*/
    #####:    #####:13215:/*EOF*/
        -:        -:13216:/*EOF*/
    #####:    #####:13217:/*EOF*/
        -:        -:13218:/*EOF*/
    #####:    #####:13219:/*EOF*/
        -:        -:13220:/*EOF*/
    #####:    #####:13221:/*EOF*/
        -:        -:13222:/*EOF*/
    #####:    #####:13223:/*EOF*/
        -:        -:13224:/*EOF*/
    #####:    #####:13225:/*EOF*/
        -:        -:13226:/*EOF*/
    #####:    #####:13227:/*EOF*/
        -:        -:13228:/*EOF*/
    #####:    #####:13229:/*EOF*/
        -:        -:13230:/*EOF*/
    #####:    #####:13231:/*EOF*/
        -:        -:13232:/*EOF*/
    #####:    #####:13233:/*EOF*/
        -:        -:13234:/*EOF*/
    #####:    #####:13235:/*EOF*/
        -:        -:13236:/*EOF*/
    #####:    #####:13237:/*EOF*/
        -:        -:13238:/*EOF*/
    #####:    #####:13239:/*EOF*/
        -:        -:13240:/*EOF*/
    #####:    #####:13241:/*EOF*/
        -:        -:13242:/*EOF*/
    #####:    #####:13243:/*EOF*/
        -:        -:13244:/*EOF*/
    #####:    #####:13245:/*EOF*/
        -:        -:13246:/*EOF*/
    #####:    #####:13247:/*EOF*/
        -:        -:13248:/*EOF*/
    #####:    #####:13249:/*EOF*/
        -:        -:13250:/*EOF*/
    #####:    #####:13251:/*EOF*/
        -:        -:13252:/*EOF*/
    #####:    #####:13253:/*EOF*/
        -:        -:13254:/*EOF*/
    #####:    #####:13255:/*EOF*/
        -:        -:13256:/*EOF*/
    #####:    #####:13257:/*EOF*/
        -:        -:13258:/*EOF*/
    #####:    #####:13259:/*EOF*/
        -:        -:13260:/*EOF*/
    #####:    #####:13261:/*EOF*/
        -:        -:13262:/*EOF*/
    #####:    #####:13263:/*EOF*/
        -:        -:13264:/*EOF*/
    #####:    #####:13265:/*EOF*/
        -:        -:13266:/*EOF*/
    #####:    #####:13267:/*EOF*/
        -:        -:13268:/*EOF*/
    #####:    #####:13269:/*EOF*/
        -:        -:13270:/*EOF*/
    #####:    #####:13271:/*EOF*/
        -:        -:13272:/*EOF*/
    #####:    #####:13273:/*EOF*/
        -:        -:13274:/*EOF*/
    #####:    #####:13275:/*EOF*/
        -:        -:13276:/*EOF*/
    #####:    #####:13277:/*EOF*/
        -:        -:13278:/*EOF*/
    #####:    #####:13279:/*EOF*/
        -:        -:13280:/*EOF*/
    #####:    #####:13281:/*EOF*/
        -:        -:13282:/*EOF*/
    #####:    #####:13283:/*EOF*/
        -:        -:13284:/*EOF*/
    #####:    #####:13285:/*EOF*/
        -:        -:13286:/*EOF*/
    #####:    #####:13287:/*EOF*/
        -:        -:13288:/*EOF*/
    #####:    #####:13289:/*EOF*/
        -:        -:13290:/*EOF*/
    #####:    #####:13291:/*EOF*/
        -:        -:13292:/*EOF*/
    #####:    #####:13293:/*EOF*/
        -:        -:13294:/*EOF*/
    #####:    #####:13295:/*EOF*/
        -:        -:13296:/*EOF*/
    #####:    #####:13297:/*EOF*/
        -:        -:13298:/*EOF*/
    #####:    #####:13299:/*EOF*/
        -:        -:13300:/*EOF*/
    #####:    #####:13301:/*EOF*/
        -:        -:13302:/*EOF*/
    #####:    #####:13303:/*EOF*/
        -:        -:13304:/*EOF*/
    #####:    #####:13305:/*EOF*/
        -:        -:13306:/*EOF*/
    #####:    #####:13307:/*EOF*/
        -:        -:13308:/*EOF*/
    #####:    #####:13309:/*EOF*/
        -:        -:13310:/*EOF*/
    #####:    #####:13311:/*EOF*/
        -:        -:13312:/*EOF*/
    #####:    #####:13313:/*EOF*/
        -:        -:13314:/*EOF*/
    #####:    #####:13315:/*EOF*/
        -:        -:13316:/*EOF*/
    #####:    #####:13317:/*EOF*/
        -:        -:13318:/*EOF*/
    #####:    #####:13319:/*EOF*/
        -:        -:13320:/*EOF*/
    #####:    #####:13321:/*EOF*/
        -:        -:13322:/*EOF*/
    #####:    #####:13323:/*EOF*/
        -:        -:13324:/*EOF*/
    #####:    #####:13325:/*EOF*/
        -:        -:13326:/*EOF*/
    #####:    #####:13327:/*EOF*/
        -:        -:13328:/*EOF*/
    #####:    #####:13329:/*EOF*/
        -:        -:13330:/*EOF*/
    #####:    #####:13331:/*EOF*/
        -:        -:13332:/*EOF*/
    #####:    #####:13333:/*EOF*/
        -:        -:13334:/*EOF*/
    #####:    #####:13335:/*EOF*/
        -:        -:13336:/*EOF*/
    #####:    #####:13337:/*EOF*/
        -:        -:13338:/*EOF*/
    #####:    #####:13339:/*EOF*/
        -:        -:13340:/*EOF*/
    #####:    #####:13341:/*EOF*/
        -:        -:13342:/*EOF*/
    #####:    #####:13343:/*EOF*/
        -:        -:13344:/*EOF*/
    #####:    #####:13345:/*EOF*/
        -:        -:13346:/*EOF*/
    #####:    #####:13347:/*EOF*/
        -:        -:13348:/*EOF*/
    #####:    #####:13349:/*EOF*/
        -:        -:13350:/*EOF*/
    #####:    #####:13351:/*EOF*/
        -:        -:13352:/*EOF*/
    #####:    #####:13353:/*EOF*/
        -:        -:13354:/*EOF*/
    #####:    #####:13355:/*EOF*/
        -:        -:13356:/*EOF*/
    #####:    #####:13357:/*EOF*/
        -:        -:13358:/*EOF*/
    #####:    #####:13359:/*EOF*/
        -:        -:13360:/*EOF*/
    #####:    #####:13361:/*EOF*/
        -:        -:13362:/*EOF*/
    #####:    #####:13363:/*EOF*/
        -:        -:13364:/*EOF*/
    #####:    #####:13365:/*EOF*/
        -:        -:13366:/*EOF*/
    #####:    #####:13367:/*EOF*/
        -:        -:13368:/*EOF*/
    #####:    #####:13369:/*EOF*/
        -:        -:13370:/*EOF*/
    #####:    #####:13371:/*EOF*/
        -:        -:13372:/*EOF*/
    #####:    #####:13373:/*EOF*/
        -:        -:13374:/*EOF*/
    #####:    #####:13375:/*EOF*/
        -:        -:13376:/*EOF*/
    #####:    #####:13377:/*EOF*/
        -:        -:13378:/*EOF*/
    #####:    #####:13379:/*EOF*/
        -:        -:13380:/*EOF*/
    #####:    #####:13381:/*EOF*/
        -:        -:13382:/*EOF*/
    #####:    #####:13383:/*EOF*/
        -:        -:13384:/*EOF*/
    #####:    #####:13385:/*EOF*/
        -:        -:13386:/*EOF*/
    #####:    #####:13387:/*EOF*/
        -:        -:13388:/*EOF*/
    #####:    #####:13389:/*EOF*/
        -:        -:13390:/*EOF*/
    #####:    #####:13391:/*EOF*/
        -:        -:13392:/*EOF*/
    #####:    #####:13393:/*EOF*/
        -:        -:13394:/*EOF*/
    #####:    #####:13395:/*EOF*/
        -:        -:13396:/*EOF*/
    #####:    #####:13397:/*EOF*/
        -:        -:13398:/*EOF*/
    #####:    #####:13399:/*EOF*/
        -:        -:13400:/*EOF*/
    #####:    #####:13401:/*EOF*/
        -:        -:13402:/*EOF*/
    #####:    #####:13403:/*EOF*/
        -:        -:13404:/*EOF*/
    #####:    #####:13405:/*EOF*/
        -:        -:13406:/*EOF*/
    #####:    #####:13407:/*EOF*/
        -:        -:13408:/*EOF*/
    #####:    #####:13409:/*EOF*/
        -:        -:13410:/*EOF*/
    #####:    #####:13411:/*EOF*/
        -:        -:13412:/*EOF*/
    #####:    #####:13413:/*EOF*/
        -:        -:13414:/*EOF*/
       52:       20:13415:/*EOF*/
        -:        -:13416:/*EOF*/
    #####:    #####:13417:/*EOF*/
        -:        -:13418:/*EOF*/
    #####:    #####:13419:/*EOF*/
        -:        -:13420:/*EOF*/
    #####:    #####:13421:/*EOF*/
        -:        -:13422:/*EOF*/
    #####:    #####:13423:/*EOF*/
        -:        -:13424:/*EOF*/
       11:       11:13425:/*EOF*/
        -:        -:13426:/*EOF*/
    #####:    #####:13427:/*EOF*/
        -:        -:13428:/*EOF*/
       34:        2:13429:/*EOF*/
        -:        -:13430:/*EOF*/
    #####:    #####:13431:/*EOF*/
        -:        -:13432:/*EOF*/
    #####:    #####:13433:/*EOF*/
        -:        -:13434:/*EOF*/
    #####:    #####:13435:/*EOF*/
        -:        -:13436:/*EOF*/
    #####:    #####:13437:/*EOF*/
        -:        -:13438:/*EOF*/
        3:        3:13439:/*EOF*/
        -:        -:13440:/*EOF*/
       34:        2:13441:/*EOF*/
        -:        -:13442:/*EOF*/
    #####:    #####:13443:/*EOF*/
        -:        -:13444:/*EOF*/
    #####:    #####:13445:/*EOF*/
        -:        -:13446:/*EOF*/
    #####:    #####:13447:/*EOF*/
        -:        -:13448:/*EOF*/
    #####:    #####:13449:/*EOF*/
        -:        -:13450:/*EOF*/
    #####:    #####:13451:/*EOF*/
        -:        -:13452:/*EOF*/
    #####:    #####:13453:/*EOF*/
        -:        -:13454:/*EOF*/
    #####:    #####:13455:/*EOF*/
        -:        -:13456:/*EOF*/
    #####:    #####:13457:/*EOF*/
        -:        -:13458:/*EOF*/
    #####:    #####:13459:/*EOF*/
        -:        -:13460:/*EOF*/
    #####:    #####:13461:/*EOF*/
        -:        -:13462:/*EOF*/
    #####:    #####:13463:/*EOF*/
        -:        -:13464:/*EOF*/
    #####:    #####:13465:/*EOF*/
        -:        -:13466:/*EOF*/
    #####:    #####:13467:/*EOF*/
        -:        -:13468:/*EOF*/
    #####:    #####:13469:/*EOF*/
        -:        -:13470:/*EOF*/
    #####:    #####:13471:/*EOF*/
        -:        -:13472:/*EOF*/
    #####:    #####:13473:/*EOF*/
        -:        -:13474:/*EOF*/
    #####:    #####:13475:/*EOF*/
        -:        -:13476:/*EOF*/
    #####:    #####:13477:/*EOF*/
        -:        -:13478:/*EOF*/
    #####:    #####:13479:/*EOF*/
        -:        -:13480:/*EOF*/
    #####:    #####:13481:/*EOF*/
        -:        -:13482:/*EOF*/
    #####:    #####:13483:/*EOF*/
        -:        -:13484:/*EOF*/
    #####:    #####:13485:/*EOF*/
        -:        -:13486:/*EOF*/
    #####:    #####:13487:/*EOF*/
        -:        -:13488:/*EOF*/
    #####:    #####:13489:/*EOF*/
        -:        -:13490:/*EOF*/
    #####:    #####:13491:/*EOF*/
        -:        -:13492:/*EOF*/
    #####:    #####:13493:/*EOF*/
        -:        -:13494:/*EOF*/
    #####:    #####:13495:/*EOF*/
        -:        -:13496:/*EOF*/
    #####:    #####:13497:/*EOF*/
        -:        -:13498:/*EOF*/
    #####:    #####:13499:/*EOF*/
        -:        -:13500:/*EOF*/
    #####:    #####:13501:/*EOF*/
        -:        -:13502:/*EOF*/
    #####:    #####:13503:/*EOF*/
        -:        -:13504:/*EOF*/
    #####:    #####:13505:/*EOF*/
        -:        -:13506:/*EOF*/
    #####:    #####:13507:/*EOF*/
        -:        -:13508:/*EOF*/
    #####:    #####:13509:/*EOF*/
        -:        -:13510:/*EOF*/
    #####:    #####:13511:/*EOF*/
        -:        -:13512:/*EOF*/
    #####:    #####:13513:/*EOF*/
        -:        -:13514:/*EOF*/
    #####:    #####:13515:/*EOF*/
        -:        -:13516:/*EOF*/
    #####:    #####:13517:/*EOF*/
        -:        -:13518:/*EOF*/
    #####:    #####:13519:/*EOF*/
        -:        -:13520:/*EOF*/
    #####:    #####:13521:/*EOF*/
        -:        -:13522:/*EOF*/
    #####:    #####:13523:/*EOF*/
        -:        -:13524:/*EOF*/
    #####:    #####:13525:/*EOF*/
        -:        -:13526:/*EOF*/
    #####:    #####:13527:/*EOF*/
        -:        -:13528:/*EOF*/
    #####:    #####:13529:/*EOF*/
        -:        -:13530:/*EOF*/
    #####:    #####:13531:/*EOF*/
        -:        -:13532:/*EOF*/
    #####:    #####:13533:/*EOF*/
        -:        -:13534:/*EOF*/
    #####:    #####:13535:/*EOF*/
        -:        -:13536:/*EOF*/
    #####:    #####:13537:/*EOF*/
        -:        -:13538:/*EOF*/
    #####:    #####:13539:/*EOF*/
        -:        -:13540:/*EOF*/
    #####:    #####:13541:/*EOF*/
        -:        -:13542:/*EOF*/
    #####:    #####:13543:/*EOF*/
        -:        -:13544:/*EOF*/
    #####:    #####:13545:/*EOF*/
        -:        -:13546:/*EOF*/
    #####:    #####:13547:/*EOF*/
        -:        -:13548:/*EOF*/
    #####:    #####:13549:/*EOF*/
        -:        -:13550:/*EOF*/
    #####:    #####:13551:/*EOF*/
        -:        -:13552:/*EOF*/
    #####:    #####:13553:/*EOF*/
        -:        -:13554:/*EOF*/
    #####:    #####:13555:/*EOF*/
        -:        -:13556:/*EOF*/
    #####:    #####:13557:/*EOF*/
        -:        -:13558:/*EOF*/
    #####:    #####:13559:/*EOF*/
        -:        -:13560:/*EOF*/
    #####:    #####:13561:/*EOF*/
        -:        -:13562:/*EOF*/
    #####:    #####:13563:/*EOF*/
        -:        -:13564:/*EOF*/
    #####:    #####:13565:/*EOF*/
        -:        -:13566:/*EOF*/
    #####:    #####:13567:/*EOF*/
        -:        -:13568:/*EOF*/
    #####:    #####:13569:/*EOF*/
        -:        -:13570:/*EOF*/
    #####:    #####:13571:/*EOF*/

src/compiler/nir/nir_control_flow.c.gcov

        -:        -:    0:Source:nir/nir_control_flow.c
        -:        -:    0:Graph:.libs/nir_control_flow.gcno
        -:        -:    0:Data:.libs/nir_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      187:      213:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      293:      329:   51:/*EOF*/
      106:      116:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      348:      406:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      348:      406:   58:/*EOF*/
      348:      406:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      191:      213:   62:/*EOF*/
        -:        -:   63:/*EOF*/
      191:      213:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      191:      213:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      191:      213:   68:/*EOF*/
      191:      213:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      240:      286:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      240:      286:   74:/*EOF*/
      240:      286:   75:/*EOF*/
      232:      278:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      240:      286:   78:/*EOF*/
      240:      286:   79:/*EOF*/
       76:       84:   80:/*EOF*/
      240:      286:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      151:      169:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      151:      169:   86:/*EOF*/
      151:      169:   87:/*EOF*/
      151:      169:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      151:      169:   94:/*EOF*/
      151:      169:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      240:      286:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      240:      286:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
      240:      286:  102:/*EOF*/
       10:       18:  103:/*EOF*/
      240:      286:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       43:       55:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       43:       55:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       38:       46:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       38:       46:  117:/*EOF*/
       38:       46:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       38:       46:  120:/*EOF*/
       38:       46:  121:/*EOF*/
       38:       46:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       38:       46:  125:/*EOF*/
       38:       46:  126:/*EOF*/
       38:       46:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        5:        9:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       43:       55:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       43:       55:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       43:       55:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       38:       46:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       38:       46:  145:/*EOF*/
       38:       46:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       38:       46:  148:/*EOF*/
       38:       46:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        5:        9:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        9:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        5:        9:  161:/*EOF*/
        5:        9:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       43:       55:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       40:       44:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       40:       44:  173:/*EOF*/
       40:       44:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       40:       44:  180:/*EOF*/
       40:       44:  181:/*EOF*/
       40:       44:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       22:       24:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       22:       24:  195:/*EOF*/
       22:       24:  196:/*EOF*/
       22:       24:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       62:       68:  200:/*EOF*/
       40:       44:  201:/*EOF*/
       40:       44:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       22:       24:  209:/*EOF*/
       22:       22:  210:/*EOF*/
       22:       22:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       22:       24:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      141:      151:  222:/*EOF*/
        -:        -:  223:/*EOF*/
      169:      201:  224:/*EOF*/
       57:       89:  225:/*EOF*/
       29:       39:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       28:       50:  228:/*EOF*/
       52:      114:  229:/*EOF*/
       40:       82:  230:/*EOF*/
       16:       18:  231:/*EOF*/
       16:       18:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
      141:      151:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      111:      121:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      111:      121:  272:/*EOF*/
      111:      121:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      111:      121:  275:/*EOF*/
      103:      113:  276:/*EOF*/
      103:      113:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      111:      121:  280:/*EOF*/
       38:       38:  281:/*EOF*/
       38:       38:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      111:      121:  285:/*EOF*/
      111:      121:  286:/*EOF*/
      111:      121:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        1:        1:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        1:        1:  297:/*EOF*/
        1:        1:  298:/*EOF*/
        1:        1:  299:/*EOF*/
        1:        1:  300:/*EOF*/
        1:        1:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        1:        1:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        1:        1:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       73:       83:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       73:       83:  338:/*EOF*/
       73:       83:  339:/*EOF*/
       73:       83:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       73:       83:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
       73:       83:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
       73:       83:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
       95:      107:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       95:      107:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       22:       24:  386:/*EOF*/
       22:       24:  387:/*EOF*/
       22:       24:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
       44:       50:  391:/*EOF*/
       44:       50:  392:/*EOF*/
       44:       50:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
       29:       33:  404:/*EOF*/
       29:       33:  405:/*EOF*/
       29:       33:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
       29:       33:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
       95:      107:  417:/*EOF*/
       95:      107:  418:/*EOF*/
       95:      107:  419:/*EOF*/
       95:      107:  420:/*EOF*/
       95:      107:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
       43:       55:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       43:       55:  430:/*EOF*/
       43:       55:  431:/*EOF*/
       43:       55:  432:/*EOF*/
       43:       55:  433:/*EOF*/
       43:       55:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        9:       17:  438:/*EOF*/
        -:        -:  439:/*EOF*/
       36:       68:  440:/*EOF*/
       18:       34:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        9:       17:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        9:       17:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        9:       17:  454:/*EOF*/
        9:       17:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        9:       17:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        9:       17:  459:/*EOF*/
        9:       17:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        9:       17:  462:/*EOF*/
        9:       17:  463:/*EOF*/
        9:       17:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        9:       17:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        9:       17:  470:/*EOF*/
        9:       17:  471:/*EOF*/
        9:       17:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        9:       17:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        1:        1:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        1:        1:  483:/*EOF*/
        1:        1:  484:/*EOF*/
        1:        1:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        1:        1:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        1:        1:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        1:        1:  504:/*EOF*/
        1:        1:  505:/*EOF*/
        1:        1:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        1:        1:  509:/*EOF*/
        1:        1:  510:/*EOF*/
        1:        1:  511:/*EOF*/
        1:        1:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        1:        1:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        1:        1:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        1:        1:  519:/*EOF*/
        1:        1:  520:/*EOF*/
        1:        1:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       43:       55:  524:/*EOF*/
        -:        -:  525:/*EOF*/
       43:       55:  526:/*EOF*/
        5:        9:  527:/*EOF*/
        -:        -:  528:/*EOF*/
       38:       46:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       38:       46:  531:/*EOF*/
       38:       46:  532:/*EOF*/
       38:       46:  533:/*EOF*/
       38:       46:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
       38:       38:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       38:       38:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
       38:       38:  565:/*EOF*/
        -:        -:  566:/*EOF*/
      156:      156:  567:/*EOF*/
      118:      118:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       38:       38:  571:/*EOF*/
       38:       38:  572:/*EOF*/
        -:        -:  573:/*EOF*/
       38:       38:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       43:       55:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
       43:       55:  581:/*EOF*/
        -:        -:  582:/*EOF*/
       43:       55:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       43:       55:  597:/*EOF*/
       43:       55:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       43:       55:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
       39:       39:  603:/*EOF*/
        -:        -:  604:/*EOF*/
       39:       39:  605:/*EOF*/
       39:       39:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       39:       39:  608:/*EOF*/
       39:       39:  609:/*EOF*/
       39:       39:  610:/*EOF*/
       39:       39:  611:/*EOF*/
       39:       39:  612:/*EOF*/
       39:       39:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
      105:      105:  617:/*EOF*/
        -:        -:  618:/*EOF*/
      105:      105:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       84:       84:  621:/*EOF*/
        -:        -:  622:/*EOF*/
      136:      136:  623:/*EOF*/
       52:       52:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
       52:       52:  628:/*EOF*/
       52:       52:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
       84:       84:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
       20:       20:  636:/*EOF*/
       40:       40:  637:/*EOF*/
       20:       20:  638:/*EOF*/
       40:       40:  639:/*EOF*/
       20:       20:  640:/*EOF*/
        -:        -:  641:/*EOF*/
       20:       20:  642:/*EOF*/
       20:       20:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        1:        1:  647:/*EOF*/
        4:        4:  648:/*EOF*/
        3:        3:  649:/*EOF*/
        1:        1:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
      105:      105:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
       23:       23:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
       23:       23:  668:/*EOF*/
        1:        1:  669:/*EOF*/
        1:        1:  670:/*EOF*/
        1:        1:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       22:       22:  681:/*EOF*/
       22:       22:  682:/*EOF*/
        -:        -:  683:/*EOF*/
       22:       22:  684:/*EOF*/
       22:       22:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
       22:       22:  688:/*EOF*/
        -:        -:  689:/*EOF*/
       22:       22:  690:/*EOF*/
       22:       22:  691:/*EOF*/
        -:        -:  692:/*EOF*/
       62:       62:  693:/*EOF*/
        -:        -:  694:/*EOF*/
       62:       62:  695:/*EOF*/
       62:       62:  696:/*EOF*/
       62:       62:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       62:       62:  699:/*EOF*/
       22:       22:  700:/*EOF*/
        -:        -:  701:/*EOF*/
       40:       40:  702:/*EOF*/
       40:       40:  703:/*EOF*/
        -:        -:  704:/*EOF*/
       22:       22:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        9:        9:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        9:        9:  713:/*EOF*/
        1:        1:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        8:        8:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       22:       22:  718:/*EOF*/
       14:       14:  719:/*EOF*/
       14:       14:  720:/*EOF*/
       14:       14:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        8:        8:  724:/*EOF*/
        8:        8:  725:/*EOF*/
        8:        8:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
       22:       22:  731:/*EOF*/
        -:        -:  732:/*EOF*/
       84:       84:  733:/*EOF*/
       62:       62:  734:/*EOF*/
        -:        -:  735:/*EOF*/
       22:       22:  736:/*EOF*/

src/compiler/nir/nir_dominance.c.gcov

        -:        -:    0:Source:nir/nir_dominance.c
        -:        -:    0:Graph:.libs/nir_dominance.gcno
        -:        -:    0:Data:.libs/nir_dominance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      188:      252:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      188:      252:   39:/*EOF*/
       12:       12:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      176:      240:   42:/*EOF*/
      188:      252:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      246:      362:   46:/*EOF*/
       58:      110:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      188:      252:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       94:      118:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      316:      376:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      388:      506:   62:/*EOF*/
      132:      226:   63:/*EOF*/
      424:      506:   64:/*EOF*/
      168:      226:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       94:      118:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      352:      480:   72:/*EOF*/
        -:        -:   73:/*EOF*/
      352:      480:   74:/*EOF*/
        -:        -:   75:/*EOF*/
      808:     1096:   76:/*EOF*/
      456:      616:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      456:      616:   79:/*EOF*/
      446:      598:   80:/*EOF*/
       94:      118:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      352:      480:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      352:      480:   87:/*EOF*/
      176:      240:   88:/*EOF*/
      176:      240:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      176:      240:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      188:      252:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      188:      252:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      156:      204:  100:/*EOF*/
      104:      136:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      104:      136:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      388:      556:  107:/*EOF*/
      180:      284:  108:/*EOF*/
      180:      284:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
      188:      252:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       12:       12:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       12:       12:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      200:      264:  133:/*EOF*/
      188:      252:  134:/*EOF*/
      176:      240:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      200:      264:  138:/*EOF*/
      188:      252:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      188:      252:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      200:      264:  144:/*EOF*/
      188:      252:  145:/*EOF*/
      176:      240:  146:/*EOF*/
      176:      240:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       12:       12:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      188:      252:  153:/*EOF*/
        -:        -:  154:/*EOF*/
      188:      252:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      364:      492:  157:/*EOF*/
      176:      240:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      188:      252:  160:/*EOF*/
      188:      252:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       12:       12:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       12:       12:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       12:       12:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      200:      264:  172:/*EOF*/
      188:      252:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       12:       12:  176:/*EOF*/
       40:       40:  177:/*EOF*/
       16:       16:  178:/*EOF*/
      384:      512:  179:/*EOF*/
      368:      496:  180:/*EOF*/
      352:      480:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      200:      264:  185:/*EOF*/
      188:      252:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       12:       12:  189:/*EOF*/
       12:       12:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       12:       12:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       12:       12:  194:/*EOF*/
       12:       12:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      198:      422:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      198:      422:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      198:      422:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      396:      844:  241:/*EOF*/
      198:      422:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/

src/compiler/nir/nir_from_ssa.c.gcov

        -:        -:    0:Source:nir/nir_from_ssa.c
        -:        -:    0:Graph:.libs/nir_from_ssa.gcno
        -:        -:    0:Data:.libs/nir_from_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      263:      515:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      263:      515:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       14:       12:   53:/*EOF*/
      249:      503:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
      249:      503:   56:/*EOF*/
       51:       81:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      198:      422:   59:/*EOF*/
      198:      422:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      123:      195:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      123:      195:  123:/*EOF*/
      123:      195:  124:/*EOF*/
      123:      195:  125:/*EOF*/
       50:       90:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       73:      105:  128:/*EOF*/
       73:      105:  129:/*EOF*/
       73:      105:  130:/*EOF*/
       73:      105:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       73:      105:  133:/*EOF*/
       73:      105:  134:/*EOF*/
       73:      105:  135:/*EOF*/
       73:      105:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       73:      105:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       73:      105:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      166:      330:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      166:      330:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       62:       94:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       62:       94:  153:/*EOF*/
       62:       94:  154:/*EOF*/
      357:      589:  155:/*EOF*/
      233:      401:  156:/*EOF*/
      233:      401:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      413:      741:  159:/*EOF*/
      283:      491:  160:/*EOF*/
      103:      151:  161:/*EOF*/
      103:      151:  162:/*EOF*/
      103:      151:  163:/*EOF*/
      103:      151:  164:/*EOF*/
      103:      151:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      130:      250:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       62:       94:  171:/*EOF*/
       62:       94:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       62:       94:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       35:       51:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       35:       51:  186:/*EOF*/
       35:       51:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       35:       51:  189:/*EOF*/
       35:       51:  190:/*EOF*/
      364:      592:  191:/*EOF*/
       82:      102:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      215:      391:  195:/*EOF*/
       50:       54:  196:/*EOF*/
       50:       54:  197:/*EOF*/
      165:      337:  198:/*EOF*/
       16:       44:  199:/*EOF*/
       16:       44:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      149:      293:  202:/*EOF*/
      149:      293:  203:/*EOF*/
        -:        -:  204:/*EOF*/
      149:      293:  205:/*EOF*/
      121:      239:  206:/*EOF*/
      121:      239:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       28:       54:  209:/*EOF*/
       28:       54:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
      790:     1482:  214:/*EOF*/
      263:      515:  215:/*EOF*/
       97:      185:  216:/*EOF*/
        -:        -:  217:/*EOF*/
      215:      391:  218:/*EOF*/
        3:        3:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      212:      388:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       32:       48:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       36:       52:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       36:       52:  231:/*EOF*/
       36:       52:  232:/*EOF*/
       36:       52:  233:/*EOF*/
       36:       52:  234:/*EOF*/
       18:       22:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       36:       52:  238:/*EOF*/
        9:       13:  239:/*EOF*/
        9:       13:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       36:       52:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       18:       22:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       18:       22:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       36:       52:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       98:      140:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       98:      140:  261:/*EOF*/
       98:      140:  262:/*EOF*/
        9:       19:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       89:      121:  268:/*EOF*/
       20:       36:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       89:      121:  271:/*EOF*/
       57:       81:  272:/*EOF*/
        -:        -:  273:/*EOF*/
       32:       40:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       36:       52:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       36:       52:  308:/*EOF*/
       51:       75:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       47:       61:  311:/*EOF*/
       32:       38:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       15:       23:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       36:       52:  318:/*EOF*/
       27:       41:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        9:       11:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        9:       11:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       24:       34:  328:/*EOF*/
        -:        -:  329:/*EOF*/
       24:       34:  330:/*EOF*/
        9:       11:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       15:       23:  333:/*EOF*/
       15:       23:  334:/*EOF*/
       45:       69:  335:/*EOF*/
       30:       46:  336:/*EOF*/
       30:       46:  337:/*EOF*/
       30:       46:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       30:       46:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       90:      138:  342:/*EOF*/
       30:       46:  343:/*EOF*/
       60:       92:  344:/*EOF*/
       30:       46:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       30:       46:  347:/*EOF*/
       30:       46:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       30:       46:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
       15:       23:  354:/*EOF*/
        -:        -:  355:/*EOF*/
       45:       69:  356:/*EOF*/
       30:       46:  357:/*EOF*/
        -:        -:  358:/*EOF*/
       15:       23:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       15:       23:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       15:       23:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        9:       11:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       36:       52:  372:/*EOF*/
        -:        -:  373:/*EOF*/
       51:       75:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       47:       65:  376:/*EOF*/
       32:       42:  377:/*EOF*/
        -:        -:  378:/*EOF*/
       15:       23:  379:/*EOF*/
        -:        -:  380:/*EOF*/
       15:       23:  381:/*EOF*/
       15:       23:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       45:       69:  384:/*EOF*/
       30:       46:  385:/*EOF*/
       30:       46:  386:/*EOF*/
       30:       46:  387:/*EOF*/
       30:       46:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
       36:       52:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       27:       33:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       72:      102:  399:/*EOF*/
       45:       69:  400:/*EOF*/
    #####:    #####:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
       45:       69:  406:/*EOF*/
        6:        6:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       39:       63:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
       39:       63:  413:/*EOF*/
       39:       63:  414:/*EOF*/
        -:        -:  415:/*EOF*/
       39:       63:  416:/*EOF*/
        4:       12:  417:/*EOF*/
        -:        -:  418:/*EOF*/
       35:       51:  419:/*EOF*/
       32:       48:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       27:       33:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
       36:       52:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       36:       52:  427:/*EOF*/
       51:       75:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       47:       65:  430:/*EOF*/
       32:       42:  431:/*EOF*/
       14:       18:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       18:       24:  434:/*EOF*/
        -:        -:  435:/*EOF*/
       18:       24:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       18:       24:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
       36:       52:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       36:       52:  445:/*EOF*/
        9:        9:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       36:       52:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
       23:       23:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       23:       23:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       23:       23:  456:/*EOF*/
       23:       23:  457:/*EOF*/
       23:       23:  458:/*EOF*/
       23:       23:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       23:       23:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      155:      189:  465:/*EOF*/
        -:        -:  466:/*EOF*/
      155:      189:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
      155:      189:  470:/*EOF*/
      155:      189:  471:/*EOF*/
      155:      189:  472:/*EOF*/
        -:        -:  473:/*EOF*/
       73:      105:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
       73:      105:  480:/*EOF*/
       11:       11:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       73:      105:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       82:       84:  485:/*EOF*/
       82:       84:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
       73:      105:  497:/*EOF*/
       73:      105:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       73:      105:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        2:        2:  504:/*EOF*/
        2:        2:  505:/*EOF*/
        2:        2:  506:/*EOF*/
        2:        2:  507:/*EOF*/
        2:        2:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
       71:      103:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       71:      103:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       71:      103:  518:/*EOF*/
       71:      103:  519:/*EOF*/
       71:      103:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       36:       52:  527:/*EOF*/
        -:        -:  528:/*EOF*/
      183:      219:  529:/*EOF*/
      147:      167:  530:/*EOF*/
      147:      167:  531:/*EOF*/
        -:        -:  532:/*EOF*/
      147:      167:  533:/*EOF*/
       15:       23:  534:/*EOF*/
       15:       23:  535:/*EOF*/
       15:       23:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       36:       52:  539:/*EOF*/
       36:       52:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        9:        9:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        9:        9:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        9:        9:  549:/*EOF*/
        6:        6:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        3:        3:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        9:        9:  554:/*EOF*/
        9:        9:  555:/*EOF*/
        9:        9:  556:/*EOF*/
        9:        9:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        9:        9:  559:/*EOF*/
        9:        9:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
       27:       33:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
       27:       33:  588:/*EOF*/
       72:      102:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       45:       69:  591:/*EOF*/
       36:       60:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        9:        9:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       27:       33:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       21:       29:  599:/*EOF*/
       21:       29:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        6:        4:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        6:        4:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        6:        4:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        6:        4:  613:/*EOF*/
        6:        4:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        6:        4:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        6:        4:  623:/*EOF*/
       22:       16:  624:/*EOF*/
        -:        -:  625:/*EOF*/
       16:       12:  626:/*EOF*/
        7:        3:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        9:        9:  629:/*EOF*/
       15:       21:  630:/*EOF*/
        6:       12:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        9:        9:  634:/*EOF*/
        9:        9:  635:/*EOF*/
        9:        9:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        9:        9:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        9:        9:  641:/*EOF*/
       24:       30:  642:/*EOF*/
       15:       21:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        9:        9:  653:/*EOF*/
        9:        9:  654:/*EOF*/
        9:        9:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        9:        9:  658:/*EOF*/
        9:        9:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        9:        9:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        6:        4:  665:/*EOF*/
        6:        4:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
       24:       22:  672:/*EOF*/
       18:       18:  673:/*EOF*/
        9:        9:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
       21:       17:  677:/*EOF*/
       27:       27:  678:/*EOF*/
        9:        9:  679:/*EOF*/
        9:        9:  680:/*EOF*/
        9:        9:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        9:        9:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        9:        9:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        9:        9:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        9:        9:  693:/*EOF*/
        9:        9:  694:/*EOF*/
        9:        9:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
        -:        -:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        6:        4:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
       36:       52:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
       36:       52:  737:/*EOF*/
       36:       52:  738:/*EOF*/
        4:       10:  739:/*EOF*/
        -:        -:  740:/*EOF*/
       32:       42:  741:/*EOF*/
       18:       24:  742:/*EOF*/
        -:        -:  743:/*EOF*/
       18:       24:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
       32:       42:  752:/*EOF*/
        -:        -:  753:/*EOF*/
       32:       42:  754:/*EOF*/
        9:        9:  755:/*EOF*/
        -:        -:  756:/*EOF*/
       32:       42:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        5:        5:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        5:        5:  765:/*EOF*/
        5:        5:  766:/*EOF*/
        5:        5:  767:/*EOF*/
        5:        5:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        5:        5:  770:/*EOF*/
        -:        -:  771:/*EOF*/
       41:       57:  772:/*EOF*/
       36:       52:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
       41:       57:  776:/*EOF*/
       36:       52:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        5:        5:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        5:        5:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       41:       57:  787:/*EOF*/
       36:       52:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       41:       57:  791:/*EOF*/
       36:       52:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
       41:       57:  795:/*EOF*/
       36:       52:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       41:       57:  799:/*EOF*/
       36:       52:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        5:        5:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        5:        5:  807:/*EOF*/
        5:        5:  808:/*EOF*/
        5:        5:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        5:        5:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        5:        5:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       10:       10:  817:/*EOF*/
        5:        5:  818:/*EOF*/
        5:        5:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        5:        5:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
       34:       34:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       34:       34:  830:/*EOF*/
        -:        -:  831:/*EOF*/
       25:       25:  832:/*EOF*/
        -:        -:  833:/*EOF*/
       39:       39:  834:/*EOF*/
       32:       32:  835:/*EOF*/
       32:       32:  836:/*EOF*/
       18:       18:  837:/*EOF*/
       18:       18:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
       25:       25:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       21:       21:  848:/*EOF*/
       14:       14:  849:/*EOF*/
        7:        7:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
       27:       27:  854:/*EOF*/
       27:       27:  855:/*EOF*/
       27:       27:  856:/*EOF*/
       27:       27:  857:/*EOF*/
       27:       27:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        2:        2:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        2:        2:  878:/*EOF*/
        2:        2:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        2:        2:  881:/*EOF*/
       14:       14:  882:/*EOF*/
       14:       14:  883:/*EOF*/
        2:        2:  884:/*EOF*/
        -:        -:  885:/*EOF*/
       12:       12:  886:/*EOF*/
       12:       12:  887:/*EOF*/
        -:        -:  888:/*EOF*/
       12:       12:  889:/*EOF*/
        -:        -:  890:/*EOF*/
       12:       12:  891:/*EOF*/
       12:       12:  892:/*EOF*/
       12:       12:  893:/*EOF*/
       36:       36:  894:/*EOF*/
       24:       24:  895:/*EOF*/
        -:        -:  896:/*EOF*/
       12:       12:  897:/*EOF*/
        -:        -:  898:/*EOF*/
       12:       12:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
       32:       32:  902:/*EOF*/
       20:       20:  903:/*EOF*/
       20:       20:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       12:       12:  907:/*EOF*/
        -:        -:  908:/*EOF*/
       12:       12:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        2:        2:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
        -:        -:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
    #####:    #####:  953:/*EOF*/
        -:        -:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
    #####:    #####:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/

src/compiler/nir/nir_gather_info.c.gcov

        -:        -:    0:Source:nir/nir_gather_info.c
        -:        -:    0:Graph:.libs/nir_gather_info.gcno
        -:        -:    0:Data:.libs/nir_gather_info.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
       15:       19:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       30:       38:   30:/*EOF*/
       15:       19:   31:/*EOF*/
        -:        -:   32:/*EOF*/
       15:       19:   33:/*EOF*/
       30:       38:   34:/*EOF*/
    #####:    #####:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
       15:       19:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       15:       19:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       15:       19:   46:/*EOF*/
       15:       19:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       15:       19:   50:/*EOF*/
        9:       13:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        9:       13:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        9:       13:   56:/*EOF*/
        6:       10:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        6:        6:   60:/*EOF*/
        6:        6:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        6:        6:   63:/*EOF*/
        6:        6:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        6:        6:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       15:       19:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       15:       19:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       15:       19:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       15:       19:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       15:       19:   87:/*EOF*/
       15:       19:   88:/*EOF*/
       15:       19:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       15:       19:   91:/*EOF*/
       15:       19:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       15:       19:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       15:       19:  129:/*EOF*/
       15:       19:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       15:       19:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       30:       38:  145:/*EOF*/
       15:       19:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       15:       19:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       34:       40:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       34:       40:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       15:       19:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       21:       25:  210:/*EOF*/
        6:        6:  211:/*EOF*/
       15:       19:  212:/*EOF*/
       15:       19:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       21:       25:  217:/*EOF*/
        9:        9:  218:/*EOF*/
        3:        3:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       15:       19:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       19:       21:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       34:       40:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       36:       52:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      228:      288:  273:/*EOF*/
      192:      236:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       34:       40:  276:/*EOF*/
       34:       40:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      158:      196:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       36:       52:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        5:        5:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        9:        9:  295:/*EOF*/
        4:        4:  296:/*EOF*/
        4:        4:  297:/*EOF*/
        4:        4:  298:/*EOF*/
        2:        2:  299:/*EOF*/
        2:        2:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        4:        4:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        4:        4:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        5:        5:  310:/*EOF*/
        5:        5:  311:/*EOF*/
        5:        5:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        5:        5:  314:/*EOF*/
        5:        5:  315:/*EOF*/
        5:        5:  316:/*EOF*/
        5:        5:  317:/*EOF*/
        3:        3:  318:/*EOF*/
        -:        -:  319:/*EOF*/
       41:       57:  320:/*EOF*/
       36:       52:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        5:        5:  323:/*EOF*/

src/compiler/nir/nir_instr_set.c.gcov

        -:        -:    0:Source:nir/nir_instr_set.c
        -:        -:    0:Graph:.libs/nir_instr_set.gcno
        -:        -:    0:Data:.libs/nir_instr_set.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
     4327:     4821:   30:/*EOF*/
        -:        -:   31:/*EOF*/
     4327:     4821:   32:/*EOF*/
     4327:     4821:   33:/*EOF*/
     4327:     4821:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     3223:     3333:   38:/*EOF*/
        -:        -:   39:/*EOF*/
     3223:     3333:   40:/*EOF*/
     3223:     3333:   41:/*EOF*/
        -:        -:   42:/*EOF*/
     6806:     7026:   43:/*EOF*/
     3583:     3693:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     3223:     3333:   46:/*EOF*/
     3223:     3333:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
     1591:     1646:   51:/*EOF*/
        -:        -:   52:/*EOF*/
     1591:     1646:   53:/*EOF*/
     1591:     1646:   54:/*EOF*/
     1591:     1646:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1591:     1646:   58:/*EOF*/
      648:      655:   59:/*EOF*/
      648:      655:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      648:      655:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      648:      655:   70:/*EOF*/
        -:        -:   71:/*EOF*/
     2870:     3014:   72:/*EOF*/
     1927:     2023:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
     1591:     1646:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      266:      272:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      266:      272:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      266:      272:   86:/*EOF*/
      266:      272:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      266:      272:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      552:      744:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      552:      744:   95:/*EOF*/
      552:      744:   96:/*EOF*/
      552:      744:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      552:      744:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      552:      744:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      552:      744:  106:/*EOF*/
      552:      744:  107:/*EOF*/
      552:      744:  108:/*EOF*/
     1656:     2232:  109:/*EOF*/
     1104:     1488:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
      552:      744:  113:/*EOF*/
        -:        -:  114:/*EOF*/
     1656:     2232:  115:/*EOF*/
     1104:     1488:  116:/*EOF*/
     1104:     1488:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      552:      744:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      133:      137:  124:/*EOF*/
        -:        -:  125:/*EOF*/
      133:      137:  126:/*EOF*/
      133:      137:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      133:      137:  129:/*EOF*/
      133:      137:  130:/*EOF*/
      133:      137:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      133:      137:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      133:      137:  136:/*EOF*/
      133:      137:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      133:      137:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     2542:     2799:  176:/*EOF*/
        -:        -:  177:/*EOF*/
     2542:     2799:  178:/*EOF*/
     2542:     2799:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     2542:     2799:  181:/*EOF*/
        -:        -:  182:/*EOF*/
     1591:     1646:  183:/*EOF*/
     1591:     1646:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      266:      272:  186:/*EOF*/
      266:      272:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      552:      744:  189:/*EOF*/
      552:      744:  190:/*EOF*/
        -:        -:  191:/*EOF*/
      133:      137:  192:/*EOF*/
      133:      137:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
     2542:     2799:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     1713:     1890:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     1713:     1890:  207:/*EOF*/
     1698:     1867:  208:/*EOF*/
     1692:     1859:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        6:        8:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       15:       23:  214:/*EOF*/
        6:       10:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        9:       13:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        9:       13:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        9:       13:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
     1114:     1152:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
     2228:     2304:  235:/*EOF*/
     1114:     1152:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
     2348:     2424:  239:/*EOF*/
     1234:     1272:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
     1114:     1152:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
     1059:     1147:  254:/*EOF*/
        -:        -:  255:/*EOF*/
     1059:     1147:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
        -:        -:  258:/*EOF*/
     1059:     1147:  259:/*EOF*/
        -:        -:  260:/*EOF*/
      545:      564:  261:/*EOF*/
      545:      564:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      545:      564:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      545:      564:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      545:      564:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
      545:      564:  278:/*EOF*/
      224:      227:  279:/*EOF*/
      672:      681:  280:/*EOF*/
      448:      454:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      978:     1026:  285:/*EOF*/
      657:      689:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
      321:      337:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
      124:      130:  327:/*EOF*/
      124:      130:  328:/*EOF*/
        -:        -:  329:/*EOF*/
      124:      130:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      124:      130:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      124:      130:  336:/*EOF*/
      124:      130:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
      184:      248:  340:/*EOF*/
      184:      248:  341:/*EOF*/
        -:        -:  342:/*EOF*/
      184:      248:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      552:      744:  346:/*EOF*/
      552:      744:  347:/*EOF*/
      552:      744:  348:/*EOF*/
      368:      496:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      368:      496:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      184:      248:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      206:      205:  360:/*EOF*/
      206:      205:  361:/*EOF*/
      206:      205:  362:/*EOF*/
      206:      205:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      412:      410:  365:/*EOF*/
      206:      205:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      412:      410:  369:/*EOF*/
      206:      205:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      412:      410:  373:/*EOF*/
      206:      205:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      255:      258:  377:/*EOF*/
      206:      205:  378:/*EOF*/
      157:      152:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
       49:       53:  382:/*EOF*/
        -:        -:  383:/*EOF*/
      142:      152:  384:/*EOF*/
       93:       99:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       49:       53:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     3077:     3411:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
     3077:     3411:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     1753:     1946:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
     1753:     1946:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
     2124:     2387:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
     4248:     4774:  427:/*EOF*/
     2124:     2387:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
     2124:     2387:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
     1631:     1802:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      381:      409:  446:/*EOF*/
      381:      409:  447:/*EOF*/
     1079:     1163:  448:/*EOF*/
      472:      504:  449:/*EOF*/
       91:       95:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
      112:      176:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      164:      186:  465:/*EOF*/
        -:        -:  466:/*EOF*/
      164:      186:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       44:       46:  469:/*EOF*/
       44:       46:  470:/*EOF*/
        -:        -:  471:/*EOF*/
      106:      118:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       14:       22:  477:/*EOF*/
       14:       22:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
     1059:     1147:  488:/*EOF*/
        -:        -:  489:/*EOF*/
     1059:     1147:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       27:       27:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       27:       27:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
       27:       27:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       27:       27:  502:/*EOF*/
       27:       27:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
     1103:     1240:  506:/*EOF*/
        -:        -:  507:/*EOF*/
     1103:     1240:  508:/*EOF*/
      201:      245:  509:/*EOF*/
        -:        -:  510:/*EOF*/
      902:      995:  511:/*EOF*/
      902:      995:  512:/*EOF*/
       82:       93:  513:/*EOF*/
       82:       93:  514:/*EOF*/
       82:       93:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
       82:       93:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
       82:       93:  525:/*EOF*/
       82:       93:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
      820:      902:  529:/*EOF*/
      820:      902:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
     1021:     1147:  534:/*EOF*/
        -:        -:  535:/*EOF*/
     1021:     1147:  536:/*EOF*/
      201:      245:  537:/*EOF*/
        -:        -:  538:/*EOF*/
      820:      902:  539:/*EOF*/
      820:      902:  540:/*EOF*/
      820:      902:  541:/*EOF*/

src/compiler/nir/nir_liveness.c.gcov

        -:        -:    0:Source:nir/nir_liveness.c
        -:        -:    0:Graph:.libs/nir_liveness.gcno
        -:        -:    0:Data:.libs/nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      273:      319:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      273:      319:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      273:      319:   57:/*EOF*/
        7:        7:   58:/*EOF*/
        -:        -:   59:/*EOF*/
      266:      312:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      273:      319:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       67:       99:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       67:       99:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       67:       99:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       67:       99:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       67:       99:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       67:       99:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       67:       99:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      577:      705:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      577:      705:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      577:      705:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      577:      705:   93:/*EOF*/
        7:        8:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      570:      697:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      570:      697:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      405:      509:  102:/*EOF*/
        -:        -:  103:/*EOF*/
      405:      509:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      405:      509:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      405:      509:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      107:      187:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      107:      187:  124:/*EOF*/
      107:      187:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      213:      341:  127:/*EOF*/
      193:      279:  128:/*EOF*/
       87:      125:  129:/*EOF*/
      106:      154:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      106:      154:  132:/*EOF*/
      106:      154:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      213:      341:  136:/*EOF*/
      193:      279:  137:/*EOF*/
       87:      125:  138:/*EOF*/
      106:      154:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      159:      231:  141:/*EOF*/
      159:      231:  142:/*EOF*/
      106:      154:  143:/*EOF*/
      106:      154:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      107:      187:  149:/*EOF*/
      587:     1119:  150:/*EOF*/
      480:      932:  151:/*EOF*/
      480:      932:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      107:      187:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        6:        6:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        6:        6:  166:/*EOF*/
       73:      105:  167:/*EOF*/
      338:      406:  168:/*EOF*/
      271:      307:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        6:        6:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        6:        6:  178:/*EOF*/
       73:      105:  179:/*EOF*/
       67:       99:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
      103:      169:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       91:      157:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       91:      157:  197:/*EOF*/
       91:      157:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       91:      157:  200:/*EOF*/
       91:      157:  201:/*EOF*/
       24:       42:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      385:      492:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      316:      363:  209:/*EOF*/
       22:       28:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      294:      335:  212:/*EOF*/
      294:      335:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
      198:      344:  222:/*EOF*/
      107:      187:  223:/*EOF*/
      107:      187:  224:/*EOF*/
       85:      147:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        6:        6:  229:/*EOF*/
        6:        6:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      137:      165:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      137:      165:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
      101:      181:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      101:      181:  242:/*EOF*/
      291:      493:  243:/*EOF*/
       89:      131:  244:/*EOF*/
       89:      131:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
       89:      131:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      101:      181:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
      150:      318:  256:/*EOF*/
        -:        -:  257:/*EOF*/
      150:      318:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        1:        3:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      216:      470:  264:/*EOF*/
       67:      155:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
      101:      181:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       48:      134:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
      166:      330:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      166:      330:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        2:    #####:  284:/*EOF*/
      164:      330:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       14:       12:  287:/*EOF*/
      150:      318:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      150:      318:  291:/*EOF*/

src/compiler/nir/nir_loop_analyze.c.gcov

        -:        -:    0:Source:nir/nir_loop_analyze.c
        -:        -:    0:Graph:.libs/nir_loop_analyze.gcno
        -:        -:    0:Data:.libs/nir_loop_analyze.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
     3009:     5539:   79:/*EOF*/
        -:        -:   80:/*EOF*/
     3009:     5539:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      347:      513:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      347:      513:   92:/*EOF*/
      347:      513:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      347:      513:   95:/*EOF*/
       49:      121:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      298:      392:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      347:      513:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      347:      513:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      167:      407:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      167:      407:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      547:     1017:  118:/*EOF*/
      713:     1135:  119:/*EOF*/
      440:      764:  120:/*EOF*/
      107:      239:  121:/*EOF*/
      273:      371:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      380:      610:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      167:      407:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      330:      504:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      330:      504:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       51:       35:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       51:       35:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      272:      358:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      272:      358:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      517:      651:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      517:      651:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      517:      651:  154:/*EOF*/
       28:       42:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      489:      609:  157:/*EOF*/
       20:       36:  158:/*EOF*/
       20:       36:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
      469:      573:  162:/*EOF*/
      179:      189:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      290:      384:  165:/*EOF*/
      197:      215:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      237:      285:  168:/*EOF*/
      219:      259:  169:/*EOF*/
      179:      189:  170:/*EOF*/
      179:      189:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       18:       26:  174:/*EOF*/
       18:       26:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       93:      169:  183:/*EOF*/
       93:      169:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       17:       33:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
      315:      425:  199:/*EOF*/
        -:        -:  200:/*EOF*/
      298:      392:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      298:      392:  203:/*EOF*/
       26:       34:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       17:       33:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       17:       33:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       17:       33:  211:/*EOF*/
      289:      391:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
      272:      358:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      272:      358:  225:/*EOF*/
      210:      232:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       62:      126:  228:/*EOF*/
       62:      126:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      142:      334:  231:/*EOF*/
      102:      230:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
      102:      230:  237:/*EOF*/
       22:       22:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       80:      208:  240:/*EOF*/
       40:       88:  241:/*EOF*/
       40:      120:  242:/*EOF*/
       18:       18:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       18:       18:  245:/*EOF*/
       17:       17:  246:/*EOF*/
       17:       17:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       51:       51:  249:/*EOF*/
        -:        -:  250:/*EOF*/
       51:       51:  251:/*EOF*/
       17:       17:  252:/*EOF*/
       17:       17:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       79:      143:  259:/*EOF*/
       17:       17:  260:/*EOF*/
       17:       17:  261:/*EOF*/
       17:       17:  262:/*EOF*/
       17:       17:  263:/*EOF*/
       17:       17:  264:/*EOF*/
       17:       17:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       17:       17:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       45:      109:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       17:       33:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
     1928:     4126:  276:/*EOF*/
        -:        -:  277:/*EOF*/
     1928:     4126:  278:/*EOF*/
     1928:     4126:  279:/*EOF*/
        -:        -:  280:/*EOF*/
     1928:     4126:  281:/*EOF*/
     1928:     4126:  282:/*EOF*/
        -:        -:  283:/*EOF*/
     1928:     4126:  284:/*EOF*/
      144:      282:  285:/*EOF*/
        -:        -:  286:/*EOF*/
     1784:     3844:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
     1928:     4126:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
       67:       67:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       67:       67:  296:/*EOF*/
       17:       17:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       50:       50:  299:/*EOF*/
       83:       83:  300:/*EOF*/
       33:       33:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       17:       17:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       17:       17:  307:/*EOF*/
      134:      134:  308:/*EOF*/
      117:      133:  309:/*EOF*/
       50:       50:  310:/*EOF*/
        -:        -:  311:/*EOF*/
       50:       50:  312:/*EOF*/
       50:       50:  313:/*EOF*/
       50:       50:  314:/*EOF*/
        -:        -:  315:/*EOF*/
       50:       50:  316:/*EOF*/
       50:       50:  317:/*EOF*/
       50:       50:  318:/*EOF*/
       33:       33:  319:/*EOF*/
       33:       33:  320:/*EOF*/
       33:       33:  321:/*EOF*/
       17:       17:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       50:       50:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
       50:       50:  335:/*EOF*/
       17:       17:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       33:       33:  338:/*EOF*/
    #####:       16:  339:/*EOF*/
        -:        -:  340:/*EOF*/
       33:       17:  341:/*EOF*/
       33:       17:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       33:       17:  344:/*EOF*/
       33:       17:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       33:       17:  347:/*EOF*/
       33:       17:  348:/*EOF*/
       33:       17:  349:/*EOF*/
       33:       17:  350:/*EOF*/
       33:       17:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       33:       17:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       17:        1:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
       17:        1:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       17:        1:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       17:        1:  371:/*EOF*/
       17:        1:  372:/*EOF*/
       17:        1:  373:/*EOF*/
       17:        1:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
       17:        1:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
       34:        2:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
       34:        2:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       34:        2:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
       34:        2:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
       34:        2:  418:/*EOF*/
       34:        2:  419:/*EOF*/
       34:        2:  420:/*EOF*/
       34:        2:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
       34:        2:  429:/*EOF*/
       34:        2:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       34:        2:  434:/*EOF*/
       34:        2:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
       34:        2:  438:/*EOF*/
       34:        2:  439:/*EOF*/
       34:        2:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
       34:        2:  443:/*EOF*/
        -:        -:  444:/*EOF*/
       34:        2:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
       17:        1:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       17:        1:  453:/*EOF*/
        -:        -:  454:/*EOF*/
       17:        1:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
       17:        1:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
       17:        1:  463:/*EOF*/
       17:        1:  464:/*EOF*/
       17:        1:  465:/*EOF*/
       17:        1:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
       17:        1:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       17:        1:  487:/*EOF*/
       34:        2:  488:/*EOF*/
       17:        1:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       17:        1:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
       17:        1:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
       17:        1:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       17:        1:  512:/*EOF*/
       34:        2:  513:/*EOF*/
       34:        2:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       34:        2:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
       17:        1:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
       17:        1:  533:/*EOF*/
        -:        -:  534:/*EOF*/
       17:        1:  535:/*EOF*/
       17:        1:  536:/*EOF*/
       17:        1:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       50:        2:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
       33:        1:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
       33:        1:  551:/*EOF*/
       33:        1:  552:/*EOF*/
       33:        1:  553:/*EOF*/
       33:        1:  554:/*EOF*/
        -:        -:  555:/*EOF*/
       33:        1:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
       33:        1:  563:/*EOF*/
       33:        1:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       33:        1:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       16:    #####:  568:/*EOF*/
       16:    #####:  569:/*EOF*/
       16:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
       33:        1:  576:/*EOF*/
       16:    #####:  577:/*EOF*/
       32:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       17:        1:  589:/*EOF*/
       34:        2:  590:/*EOF*/
       17:        1:  591:/*EOF*/
        -:        -:  592:/*EOF*/
       17:        1:  593:/*EOF*/
       17:        1:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       17:        1:  597:/*EOF*/
       17:        1:  598:/*EOF*/
        -:        -:  599:/*EOF*/
       34:        2:  600:/*EOF*/
        -:        -:  601:/*EOF*/
       17:        1:  602:/*EOF*/
        -:        -:  603:/*EOF*/
       17:        1:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
       17:        1:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
       17:        1:  616:/*EOF*/
       17:        1:  617:/*EOF*/
       17:        1:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       17:        1:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       17:        1:  627:/*EOF*/
       17:        1:  628:/*EOF*/
       17:        1:  629:/*EOF*/
       17:        1:  630:/*EOF*/
       17:        1:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
       37:        1:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
       37:        1:  640:/*EOF*/
        -:        -:  641:/*EOF*/
       99:        3:  642:/*EOF*/
       25:        1:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       25:        1:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       25:        1:  647:/*EOF*/
       25:        1:  648:/*EOF*/
       25:        1:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
       37:        1:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
      167:        7:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
      547:       47:  682:/*EOF*/
      380:       40:  683:/*EOF*/
      333:       39:  684:/*EOF*/
        -:        -:  685:/*EOF*/
       47:        1:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
       57:        1:  691:/*EOF*/
       20:    #####:  692:/*EOF*/
       10:    #####:  693:/*EOF*/
       37:        1:  694:/*EOF*/
       37:        1:  695:/*EOF*/
       74:        2:  696:/*EOF*/
       37:        1:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
      167:        7:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
       17:       33:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      558:     1612:  712:/*EOF*/
     2557:     6007:  713:/*EOF*/
     2016:     4428:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
      134:      262:  720:/*EOF*/
      117:      229:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
       67:      131:  724:/*EOF*/
       67:      131:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
      150:      246:  728:/*EOF*/
      100:      164:  729:/*EOF*/
       50:       82:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:      128:  733:/*EOF*/
    #####:      112:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:       16:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
       17:       33:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
       17:       33:  747:/*EOF*/
    #####:       16:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
       17:       17:  753:/*EOF*/
    #####:       32:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:       16:  757:/*EOF*/
    #####:       16:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:       16:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
       17:        1:  764:/*EOF*/
        -:        -:  765:/*EOF*/
       17:        1:  766:/*EOF*/
      134:        6:  767:/*EOF*/
      117:        5:  768:/*EOF*/
       67:        3:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
      150:        6:  772:/*EOF*/
      100:        4:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
       17:       33:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
       17:       33:  784:/*EOF*/
       17:       33:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       17:       33:  787:/*EOF*/
        -:        -:  788:/*EOF*/
       17:       33:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       17:       33:  791:/*EOF*/
       12:       24:  792:/*EOF*/
        -:        -:  793:/*EOF*/
       17:       33:  794:/*EOF*/
        -:        -:  795:/*EOF*/
       17:       33:  796:/*EOF*/
        -:        -:  797:/*EOF*/
       17:       33:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
      356:      532:  802:/*EOF*/
        -:        -:  803:/*EOF*/
      356:      532:  804:/*EOF*/
        -:        -:  805:/*EOF*/
      268:      396:  806:/*EOF*/
        -:        -:  807:/*EOF*/
       71:      103:  808:/*EOF*/
      142:      206:  809:/*EOF*/
       71:      103:  810:/*EOF*/
      142:      206:  811:/*EOF*/
       71:      103:  812:/*EOF*/
       71:      103:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
       17:       33:  816:/*EOF*/
      134:      262:  817:/*EOF*/
      117:      229:  818:/*EOF*/
       17:       33:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       17:       33:  825:/*EOF*/
       17:       33:  826:/*EOF*/
       17:       33:  827:/*EOF*/
        -:        -:  828:/*EOF*/
       17:       33:  829:/*EOF*/
       17:       33:  830:/*EOF*/
        -:        -:  831:/*EOF*/
       17:       33:  832:/*EOF*/
        -:        -:  833:/*EOF*/
       17:       33:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
       21:       21:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
       21:       21:  841:/*EOF*/
      118:      118:  842:/*EOF*/
       97:       97:  843:/*EOF*/
       21:       21:  844:/*EOF*/

src/compiler/nir/nir_lower_64bit_packing.c.gcov

        -:        -:    0:Source:nir/nir_lower_64bit_packing.c
        -:        -:    0:Graph:.libs/nir_lower_64bit_packing.gcno
        -:        -:    0:Data:.libs/nir_lower_64bit_packing.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       27:       27:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       27:       27:   55:/*EOF*/
       27:       27:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      302:      430:   58:/*EOF*/
     1525:     1779:   59:/*EOF*/
     1250:     1376:   60:/*EOF*/
      544:      652:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      706:      724:   63:/*EOF*/
        -:        -:   64:/*EOF*/
     1412:     1448:   65:/*EOF*/
      706:      724:   66:/*EOF*/
      706:      724:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       27:       27:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       27:       27:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       27:       27:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       54:       54:  101:/*EOF*/
       27:       27:  102:/*EOF*/
       27:       27:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       27:       27:  106:/*EOF*/

src/compiler/nir/nir_lower_alu_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_alu_to_scalar.c
        -:        -:    0:Graph:.libs/nir_lower_alu_to_scalar.gcno
        -:        -:    0:Data:.libs/nir_lower_alu_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       36:       44:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       36:       44:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       36:       44:   39:/*EOF*/
       36:       44:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      917:      962:   77:/*EOF*/
        -:        -:   78:/*EOF*/
      917:      962:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      917:      962:   82:/*EOF*/
      917:      962:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      917:      962:   85:/*EOF*/
      917:      962:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      917:      962:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       13:       15:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      904:      947:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      904:      947:  206:/*EOF*/
      895:      936:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        9:       11:  209:/*EOF*/
        9:       11:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       45:       55:  212:/*EOF*/
       36:       44:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       36:       44:  216:/*EOF*/
       80:      104:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       44:       60:  221:/*EOF*/
       88:      120:  222:/*EOF*/
       44:       60:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       44:       60:  225:/*EOF*/
      220:      300:  226:/*EOF*/
      176:      240:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       36:       44:  230:/*EOF*/
       36:       44:  231:/*EOF*/
       36:       44:  232:/*EOF*/
       36:       44:  233:/*EOF*/
        -:        -:  234:/*EOF*/
       36:       44:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        9:       11:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        9:       11:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        9:       11:  242:/*EOF*/
        9:       11:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       17:       17:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       17:       17:  250:/*EOF*/
       17:       17:  251:/*EOF*/
        -:        -:  252:/*EOF*/
      335:      463:  253:/*EOF*/
     1836:     2141:  254:/*EOF*/
     1518:     1695:  255:/*EOF*/
     1834:     1924:  256:/*EOF*/
      917:      962:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       17:       17:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       17:       17:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       17:       17:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       34:       34:  273:/*EOF*/
       17:       17:  274:/*EOF*/
       17:       17:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       17:       17:  278:/*EOF*/

src/compiler/nir/nir_lower_atomics.c.gcov

        -:        -:    0:Source:nir/nir_lower_atomics.c
        -:        -:    0:Graph:.libs/nir_lower_atomics.gcno
        -:        -:    0:Data:.libs/nir_lower_atomics.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       24:       30:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       24:       30:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       24:       30:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        3:        3:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        6:        6:  181:/*EOF*/
        3:        3:  182:/*EOF*/
       37:       53:  183:/*EOF*/
      199:      259:  184:/*EOF*/
      165:      209:  185:/*EOF*/
       24:       30:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        3:        3:  196:/*EOF*/

src/compiler/nir/nir_lower_constant_initializers.c.gcov

        -:        -:    0:Source:nir/nir_lower_constant_initializers.c
        -:        -:    0:Graph:.libs/nir_lower_constant_initializers.gcno
        -:        -:    0:Data:.libs/nir_lower_constant_initializers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
       37:       39:   28:/*EOF*/
        -:        -:   29:/*EOF*/
       37:       39:   30:/*EOF*/
        -:        -:   31:/*EOF*/
       37:       39:   32:/*EOF*/
       37:       39:   33:/*EOF*/
       37:       39:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       37:       39:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       37:       39:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       12:       12:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       12:       12:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       12:       12:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       74:       76:   48:/*EOF*/
       62:       64:   49:/*EOF*/
       25:       25:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       37:       39:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       37:       39:   55:/*EOF*/
       37:       39:   56:/*EOF*/
       37:       39:   57:/*EOF*/
       37:       39:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       37:       39:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       37:       39:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       12:       12:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        3:        3:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        3:        3:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        3:        3:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        3:        3:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        3:        3:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        3:        3:   83:/*EOF*/
        3:        3:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        3:        3:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        6:        6:   97:/*EOF*/
        3:        3:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/
        3:        3:  102:/*EOF*/
        2:        2:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        2:        2:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/

src/compiler/nir/nir_lower_double_ops.c.gcov

        -:        -:    0:Source:nir/nir_lower_double_ops.c
        -:        -:    0:Graph:.libs/nir_lower_double_ops.gcno
        -:        -:    0:Data:.libs/nir_lower_double_ops.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
      706:      724:  460:/*EOF*/
        -:        -:  461:/*EOF*/
      706:      724:  462:/*EOF*/
      706:      724:  463:/*EOF*/
      706:      724:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
        -:        -:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
       27:       27:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
       27:       27:  570:/*EOF*/
        -:        -:  571:/*EOF*/
      302:      430:  572:/*EOF*/
     1525:     1779:  573:/*EOF*/
     1250:     1376:  574:/*EOF*/
      706:      724:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
       27:       27:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       27:       27:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
       27:       27:  588:/*EOF*/
        -:        -:  589:/*EOF*/
       27:       27:  590:/*EOF*/
        -:        -:  591:/*EOF*/
       54:       54:  592:/*EOF*/
       27:       27:  593:/*EOF*/
       27:       27:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
       27:       27:  598:/*EOF*/

src/compiler/nir/nir_lower_global_vars_to_local.c.gcov

        -:        -:    0:Source:nir/nir_lower_global_vars_to_local.c
        -:        -:    0:Graph:.libs/nir_lower_global_vars_to_local.gcno
        -:        -:    0:Data:.libs/nir_lower_global_vars_to_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       89:      105:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      414:      448:   39:/*EOF*/
      325:      343:   40:/*EOF*/
      123:      133:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      202:      210:   43:/*EOF*/
      202:      210:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      457:      473:   46:/*EOF*/
      255:      263:   47:/*EOF*/
      255:      263:   48:/*EOF*/
      246:      254:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        9:        9:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        9:        9:   54:/*EOF*/
        6:        6:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       89:      105:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        5:        5:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        5:        5:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        5:        5:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       10:       10:   79:/*EOF*/
        5:        5:   80:/*EOF*/
       94:      110:   81:/*EOF*/
       89:      105:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        8:        8:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        3:        3:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        3:        3:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        3:        3:   93:/*EOF*/
        3:        3:   94:/*EOF*/
        3:        3:   95:/*EOF*/
        3:        3:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        3:        3:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        5:        5:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/

src/compiler/nir/nir_lower_indirect_derefs.c.gcov

        -:        -:    0:Source:nir/nir_lower_indirect_derefs.c
        -:        -:    0:Graph:.libs/nir_lower_indirect_derefs.gcno
        -:        -:    0:Data:.libs/nir_lower_indirect_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       30:       32:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       46:       48:  121:/*EOF*/
       16:       16:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       16:       16:  125:/*EOF*/
       16:       16:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
       30:       32:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       36:       52:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       36:       52:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      151:      183:  139:/*EOF*/
      115:      131:  140:/*EOF*/
       85:       99:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       30:       32:  143:/*EOF*/
       36:       38:  144:/*EOF*/
        6:        6:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       30:       32:  148:/*EOF*/
       30:       32:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       36:       52:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        5:        5:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        5:        5:  182:/*EOF*/
        5:        5:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       41:       57:  185:/*EOF*/
       36:       52:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        5:        5:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        5:        5:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        5:        5:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        5:        5:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       10:       10:  205:/*EOF*/
        5:        5:  206:/*EOF*/
        5:        5:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        5:        5:  210:/*EOF*/

src/compiler/nir/nir_lower_int64.c.gcov

        -:        -:    0:Source:nir/nir_lower_int64.c
        -:        -:    0:Graph:.libs/nir_lower_int64.gcno
        -:        -:    0:Data:.libs/nir_lower_int64.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
    #####:    #####:   28:/*EOF*/
        -:        -:   29:/*EOF*/
    #####:    #####:   30:/*EOF*/
    #####:    #####:   31:/*EOF*/
    #####:    #####:   32:/*EOF*/
    #####:    #####:   33:/*EOF*/
        -:        -:   34:/*EOF*/
    #####:    #####:   35:/*EOF*/
    #####:    #####:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        5:        5:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        5:        5:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        5:        5:  258:/*EOF*/
       41:       57:  259:/*EOF*/
      151:      183:  260:/*EOF*/
      115:      131:  261:/*EOF*/
       56:       70:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       59:       61:  264:/*EOF*/
       59:       61:  265:/*EOF*/
       59:       61:  266:/*EOF*/
       59:       61:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        5:        5:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        5:        5:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       10:       10:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        5:        5:  295:/*EOF*/

src/compiler/nir/nir_lower_io.c.gcov

        -:        -:    0:Source:nir/nir_lower_io.c
        -:        -:    0:Graph:.libs/nir_lower_io.gcno
        -:        -:    0:Data:.libs/nir_lower_io.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        4:        4:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        4:        4:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        8:        8:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        8:        8:   55:/*EOF*/
        4:        4:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        4:        4:   59:/*EOF*/
        4:        4:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        4:        4:   63:/*EOF*/
        4:        4:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       64:       78:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       64:       78:   73:/*EOF*/
       48:       62:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       16:       16:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       16:       16:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       16:       16:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       34:       40:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       34:       40:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       34:       40:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       34:       40:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       34:       40:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       84:       96:  125:/*EOF*/
       16:       16:  126:/*EOF*/
       16:       16:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       16:       16:  129:/*EOF*/
       16:       16:  130:/*EOF*/
       16:       16:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       16:       16:  133:/*EOF*/
       16:       16:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       16:       16:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       34:       40:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       28:       34:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       28:       34:  162:/*EOF*/
       28:       34:  163:/*EOF*/
       28:       34:  164:/*EOF*/
       28:       34:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       28:       34:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       15:       23:  170:/*EOF*/
       12:       20:  171:/*EOF*/
       11:       19:  172:/*EOF*/
        5:        9:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       10:       18:  176:/*EOF*/
        5:        9:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        5:        9:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        5:        9:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        9:  184:/*EOF*/
        5:        9:  185:/*EOF*/
        5:        9:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        4:        4:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        9:       13:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
       19:       21:  197:/*EOF*/
       19:       21:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       28:       34:  206:/*EOF*/
       28:       34:  207:/*EOF*/
       28:       34:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       28:       34:  210:/*EOF*/
       28:       34:  211:/*EOF*/
        9:       13:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       28:       34:  214:/*EOF*/
       19:       21:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       28:       34:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
       28:       34:  220:/*EOF*/
        5:        9:  221:/*EOF*/
        5:        9:  222:/*EOF*/
        -:        -:  223:/*EOF*/
       23:       25:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       28:       34:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        6:        6:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        6:        6:  235:/*EOF*/
        6:        6:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        6:        6:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        6:        6:  242:/*EOF*/
        6:        6:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        6:        6:  247:/*EOF*/
        6:        6:  248:/*EOF*/
        6:        6:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        6:        6:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        6:        6:  255:/*EOF*/
        6:        6:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        6:        6:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        6:        6:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        6:        6:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        6:        6:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
        -:        -:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      107:      155:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      107:      155:  365:/*EOF*/
      107:      155:  366:/*EOF*/
      107:      155:  367:/*EOF*/
        -:        -:  368:/*EOF*/
      653:      843:  369:/*EOF*/
      546:      688:  370:/*EOF*/
      953:     1209:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      105:      127:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      105:      127:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       53:       63:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
       52:       64:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
       53:       63:  401:/*EOF*/
       53:       63:  402:/*EOF*/
        -:        -:  403:/*EOF*/
       53:       63:  404:/*EOF*/
       19:       23:  405:/*EOF*/
        -:        -:  406:/*EOF*/
       34:       40:  407:/*EOF*/
       19:       21:  408:/*EOF*/
       19:       21:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
       34:       40:  413:/*EOF*/
        -:        -:  414:/*EOF*/
       34:       40:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
       34:       40:  418:/*EOF*/
       34:       40:  419:/*EOF*/
        -:        -:  420:/*EOF*/
       34:       40:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
       34:       40:  427:/*EOF*/
        -:        -:  428:/*EOF*/
       28:       34:  429:/*EOF*/
        -:        -:  430:/*EOF*/
       28:       34:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        6:        6:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        6:        6:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       34:       40:  464:/*EOF*/
       28:       34:  465:/*EOF*/
       56:       68:  466:/*EOF*/
       28:       34:  467:/*EOF*/
       28:       34:  468:/*EOF*/
       28:       34:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
       34:       40:  476:/*EOF*/
       34:       40:  477:/*EOF*/
       34:       40:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      107:      155:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
       14:       14:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       14:       14:  491:/*EOF*/
        -:        -:  492:/*EOF*/
       14:       14:  493:/*EOF*/
       14:       14:  494:/*EOF*/
       14:       14:  495:/*EOF*/
       14:       14:  496:/*EOF*/
        -:        -:  497:/*EOF*/
      121:      169:  498:/*EOF*/
      107:      155:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       14:       14:  502:/*EOF*/
        -:        -:  503:/*EOF*/
       14:       14:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       14:       14:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
       14:       14:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       28:       28:  514:/*EOF*/
       14:       14:  515:/*EOF*/
       14:       14:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
       14:       14:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        9:       13:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        9:       13:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        4:        4:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        5:        9:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/

src/compiler/nir/nir_lower_load_const_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_load_const_to_scalar.c
        -:        -:    0:Graph:.libs/nir_lower_load_const_to_scalar.gcno
        -:        -:    0:Data:.libs/nir_lower_load_const_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        4:        4:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        4:        4:   41:/*EOF*/
        4:        4:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        3:        3:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       37:       53:   76:/*EOF*/
      131:      163:   77:/*EOF*/
       97:      113:   78:/*EOF*/
        4:        4:   79:/*EOF*/
        4:        4:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        3:        3:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        3:        3:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        3:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        3:        3:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        6:        6:   96:/*EOF*/
        3:        3:   97:/*EOF*/
        3:        3:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        3:        3:  101:/*EOF*/

src/compiler/nir/nir_lower_locals_to_regs.c.gcov

        -:        -:    0:Source:nir/nir_lower_locals_to_regs.c
        -:        -:    0:Graph:.libs/nir_lower_locals_to_regs.gcno
        -:        -:    0:Data:.libs/nir_lower_locals_to_regs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       36:       52:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      156:      186:  202:/*EOF*/
      120:      134:  203:/*EOF*/
       93:      107:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       27:       27:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       27:       27:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
       27:       27:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       36:       52:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        5:        5:  272:/*EOF*/
        5:        5:  273:/*EOF*/
        5:        5:  274:/*EOF*/
        5:        5:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        5:        5:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       41:       57:  279:/*EOF*/
       36:       52:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        5:        5:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        5:        5:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        5:        5:  297:/*EOF*/
        5:        5:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        5:        5:  301:/*EOF*/

src/compiler/nir/nir_lower_phis_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_phis_to_scalar.c
        -:        -:    0:Graph:.libs/nir_lower_phis_to_scalar.gcno
        -:        -:    0:Data:.libs/nir_lower_phis_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
      190:      254:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      190:      254:  134:/*EOF*/
      190:      254:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      318:      446:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      318:      446:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      318:      446:  172:/*EOF*/
      508:      700:  173:/*EOF*/
      424:      538:  174:/*EOF*/
      234:      284:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      190:      254:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      508:      700:  183:/*EOF*/
      424:      538:  184:/*EOF*/
      234:      284:  185:/*EOF*/
        -:        -:  186:/*EOF*/
      190:      254:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      190:      254:  189:/*EOF*/
      190:      254:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      318:      446:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       17:       17:  272:/*EOF*/
        -:        -:  273:/*EOF*/
       17:       17:  274:/*EOF*/
       17:       17:  275:/*EOF*/
       17:       17:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      335:      463:  279:/*EOF*/
      318:      446:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       17:       17:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       17:       17:  286:/*EOF*/
       17:       17:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       17:       17:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       17:       17:  300:/*EOF*/
        -:        -:  301:/*EOF*/
       34:       34:  302:/*EOF*/
       17:       17:  303:/*EOF*/
       17:       17:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       17:       17:  307:/*EOF*/

src/compiler/nir/nir_lower_regs_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_regs_to_ssa.c
        -:        -:    0:Graph:.libs/nir_lower_regs_to_ssa.gcno
        -:        -:    0:Data:.libs/nir_lower_regs_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
      454:      474:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      454:      474:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      454:      474:   44:/*EOF*/
      416:      436:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       38:       38:   47:/*EOF*/
       38:       38:   48:/*EOF*/
       38:       38:   49:/*EOF*/
       38:       38:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       38:       38:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       38:       38:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       38:       38:   61:/*EOF*/
       38:       38:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       38:       38:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        9:       13:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        9:       13:   70:/*EOF*/
        9:       13:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      100:      110:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      100:      110:   86:/*EOF*/
        -:        -:   87:/*EOF*/
      100:      110:   88:/*EOF*/
       54:       64:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       46:       46:   91:/*EOF*/
       46:       46:   92:/*EOF*/
       46:       46:   93:/*EOF*/
       46:       46:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       46:       46:   97:/*EOF*/
       92:       92:   98:/*EOF*/
       46:       46:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       46:       46:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       46:       46:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      220:      222:  107:/*EOF*/
        -:        -:  108:/*EOF*/
      220:      222:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      220:      222:  111:/*EOF*/
      386:      390:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       50:       50:  114:/*EOF*/
       50:       50:  115:/*EOF*/
       50:       50:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       50:       50:  119:/*EOF*/
       50:       50:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       46:       46:  124:/*EOF*/
       46:       46:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        4:        4:  134:/*EOF*/
        4:        4:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        4:        4:  139:/*EOF*/
       20:       20:  140:/*EOF*/
       16:       16:  141:/*EOF*/
        4:        4:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        8:        8:  148:/*EOF*/
        4:        4:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        4:        4:  162:/*EOF*/
       20:       20:  163:/*EOF*/
       16:       16:  164:/*EOF*/
       12:       12:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        4:        4:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        4:        4:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        4:        4:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        4:        4:  176:/*EOF*/
        4:        4:  177:/*EOF*/
        8:        8:  178:/*EOF*/
        4:        4:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        4:        4:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        4:        4:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        4:        4:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        4:        4:  191:/*EOF*/
        4:        4:  192:/*EOF*/
        4:        4:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       20:       20:  195:/*EOF*/
       16:       16:  196:/*EOF*/
        4:        4:  197:/*EOF*/
        4:        4:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       12:       12:  200:/*EOF*/
       12:       12:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        8:        8:  205:/*EOF*/
        4:        4:  206:/*EOF*/
        4:        4:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        4:        4:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        2:        2:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        2:        2:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        2:        2:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        2:        2:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        2:        2:  224:/*EOF*/
        2:        2:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        2:        2:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        2:        2:  229:/*EOF*/
        2:        2:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       17:       17:  232:/*EOF*/
       15:       15:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       15:       15:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       65:       65:  244:/*EOF*/
       50:       50:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       30:       30:  247:/*EOF*/
       15:       15:  248:/*EOF*/
       15:       15:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       35:       51:  252:/*EOF*/
      370:      402:  253:/*EOF*/
      337:      353:  254:/*EOF*/
      220:      222:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      117:      131:  257:/*EOF*/
      117:      131:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       33:       49:  262:/*EOF*/
       33:       49:  263:/*EOF*/
        9:       13:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        2:        2:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       17:       17:  269:/*EOF*/
       15:       15:  270:/*EOF*/
       15:       15:  271:/*EOF*/
       15:       15:  272:/*EOF*/
       15:       15:  273:/*EOF*/
       15:       15:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        2:        2:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        2:        2:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        2:        2:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        1:        1:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        1:        1:  288:/*EOF*/
        1:        1:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        1:        1:  292:/*EOF*/
        1:        1:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        1:        1:  296:/*EOF*/

src/compiler/nir/nir_lower_returns.c.gcov

        -:        -:    0:Source:nir/nir_lower_returns.c
        -:        -:    0:Graph:.libs/nir_lower_returns.gcno
        -:        -:    0:Data:.libs/nir_lower_returns.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        3:        5:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        3:        5:   82:/*EOF*/
        3:        5:   83:/*EOF*/
        3:        5:   84:/*EOF*/
        3:        5:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        3:        5:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        3:        5:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       26:       30:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       26:       30:  105:/*EOF*/
       26:       30:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       26:       30:  108:/*EOF*/
       26:       30:  109:/*EOF*/
       26:       30:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       26:       30:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       26:       30:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       26:       30:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       87:      103:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       90:      106:  152:/*EOF*/
        3:        3:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       87:      103:  170:/*EOF*/
       87:      103:  171:/*EOF*/
       24:       32:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       63:       71:  174:/*EOF*/
       58:       62:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        5:        9:  177:/*EOF*/
        5:        9:  178:/*EOF*/
        5:        9:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       58:       68:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       58:       68:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       58:       68:  215:/*EOF*/
       58:       68:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      174:      206:  223:/*EOF*/
      116:      138:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       87:      103:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
       87:      103:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       26:       30:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
       26:       30:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        3:        5:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        3:        5:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       58:       68:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       58:       68:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        3:        3:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        3:        3:  255:/*EOF*/
        3:        3:  256:/*EOF*/
        3:        3:  257:/*EOF*/
        3:        3:  258:/*EOF*/
        3:        3:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        3:        3:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        3:        3:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        3:        3:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        3:        3:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        3:        3:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        6:        6:  276:/*EOF*/
        3:        3:  277:/*EOF*/
        3:        3:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        3:        3:  281:/*EOF*/

src/compiler/nir/nir_lower_samplers.c.gcov

        -:        -:    0:Source:nir/nir_lower_samplers.c
        -:        -:    0:Graph:.libs/nir_lower_samplers.gcno
        -:        -:    0:Data:.libs/nir_lower_samplers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        3:        3:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        3:        3:  161:/*EOF*/
        3:        3:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       37:       53:  164:/*EOF*/
      199:      259:  165:/*EOF*/
      165:      209:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        3:        3:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        3:        3:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        6:        6:  181:/*EOF*/
        3:        3:  182:/*EOF*/
        3:        3:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        3:        3:  186:/*EOF*/

src/compiler/nir/nir_lower_system_values.c.gcov

        -:        -:    0:Source:nir/nir_lower_system_values.c
        -:        -:    0:Graph:.libs/nir_lower_system_values.gcno
        -:        -:    0:Data:.libs/nir_lower_system_values.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
       35:       51:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       35:       51:   34:/*EOF*/
        -:        -:   35:/*EOF*/
      174:      232:   36:/*EOF*/
      139:      181:   37:/*EOF*/
      107:      143:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       32:       38:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       32:       38:   42:/*EOF*/
        5:        5:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       27:       33:   45:/*EOF*/
       27:       33:   46:/*EOF*/
       27:       33:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       35:       51:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        4:        4:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        4:        4:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        4:        4:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       39:       55:  145:/*EOF*/
       35:       51:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        4:        4:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        4:        4:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        4:        4:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        4:        4:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        8:        8:  159:/*EOF*/
        4:        4:  160:/*EOF*/
        4:        4:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        4:        4:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        4:        4:  166:/*EOF*/

src/compiler/nir/nir_lower_tex.c.gcov

        -:        -:    0:Source:nir/nir_lower_tex.c
        -:        -:    0:Graph:.libs/nir_lower_tex.gcno
        -:        -:    0:Data:.libs/nir_lower_tex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
    #####:    #####:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
    #####:    #####:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
    #####:    #####:  630:/*EOF*/
        -:        -:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
        -:        -:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
        -:        -:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
        -:        -:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
      125:      157:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      125:      157:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      642:      736:  712:/*EOF*/
      517:      579:  713:/*EOF*/
      517:      579:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
      125:      157:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
       10:       10:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
       10:       10:  807:/*EOF*/
        -:        -:  808:/*EOF*/
       10:       10:  809:/*EOF*/
        -:        -:  810:/*EOF*/
      135:      167:  811:/*EOF*/
      125:      157:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
       10:       10:  815:/*EOF*/
        -:        -:  816:/*EOF*/
       10:       10:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
       10:       10:  821:/*EOF*/
        -:        -:  822:/*EOF*/
       10:       10:  823:/*EOF*/
        -:        -:  824:/*EOF*/
       20:       20:  825:/*EOF*/
       10:       10:  826:/*EOF*/
       10:       10:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
       10:       10:  830:/*EOF*/

src/compiler/nir/nir_lower_to_source_mods.c.gcov

        -:        -:    0:Source:nir/nir_lower_to_source_mods.c
        -:        -:    0:Graph:.libs/nir_lower_to_source_mods.gcno
        -:        -:    0:Data:.libs/nir_lower_to_source_mods.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       36:       52:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       36:       52:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      176:      211:   41:/*EOF*/
      140:      159:   42:/*EOF*/
       68:       80:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       72:       79:   45:/*EOF*/
        -:        -:   46:/*EOF*/
      204:      221:   47:/*EOF*/
      132:      142:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      132:      142:   51:/*EOF*/
       60:       66:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       72:       76:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       72:       76:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       72:       76:   59:/*EOF*/
        -:        -:   60:/*EOF*/
       61:       63:   61:/*EOF*/
       56:       56:   62:/*EOF*/
        5:        7:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        4:        6:   65:/*EOF*/
        4:        6:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        7:        7:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        5:        7:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        5:        7:   79:/*EOF*/
        5:        7:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        5:        7:   83:/*EOF*/
        5:        7:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       25:       35:   87:/*EOF*/
       20:       28:   88:/*EOF*/
       15:       21:   89:/*EOF*/
        5:        7:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       10:       14:   93:/*EOF*/
        5:        7:   94:/*EOF*/
        5:        7:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        5:        7:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       72:       79:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       10:       12:  110:/*EOF*/
       10:       12:  111:/*EOF*/
       10:       12:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       62:       67:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       72:       79:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       72:       79:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       20:       24:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       52:       55:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       52:       55:  142:/*EOF*/
      118:      123:  143:/*EOF*/
       66:       68:  144:/*EOF*/
       66:       68:  145:/*EOF*/
       66:       68:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        6:        6:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       60:       62:  151:/*EOF*/
       60:       62:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      120:      124:  157:/*EOF*/
       60:       62:  158:/*EOF*/
       60:       62:  159:/*EOF*/
       60:       62:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       52:       55:  164:/*EOF*/
       46:       48:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        6:        7:  167:/*EOF*/
        6:        7:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        6:        7:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       36:       52:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        5:        5:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        5:        5:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       41:       57:  192:/*EOF*/
       36:       52:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        1:        1:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        5:        5:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        5:        5:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        5:        5:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       10:       10:  208:/*EOF*/
        5:        5:  209:/*EOF*/
        5:        5:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        5:        5:  214:/*EOF*/

src/compiler/nir/nir_lower_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_lower_var_copies.c
        -:        -:    0:Graph:.libs/nir_lower_var_copies.gcno
        -:        -:    0:Data:.libs/nir_lower_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      106:      106:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      112:      112:   43:/*EOF*/
        6:        6:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        6:        6:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        6:        6:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      106:      106:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       53:       53:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       53:       53:   84:/*EOF*/
       53:       53:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       53:       53:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       53:       53:  114:/*EOF*/
       53:       53:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       53:       53:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       53:       53:  119:/*EOF*/
       53:       53:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       53:       53:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       53:       53:  124:/*EOF*/
       53:       53:  125:/*EOF*/
       53:       53:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       53:       53:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       53:       53:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       53:       53:  133:/*EOF*/
       53:       53:  134:/*EOF*/
       53:       53:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       53:       53:  137:/*EOF*/
       53:       53:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       53:       53:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       53:       53:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       53:       53:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       53:       53:  151:/*EOF*/
      106:      106:  152:/*EOF*/
       53:       53:  153:/*EOF*/
       53:       53:  154:/*EOF*/
       53:       53:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       41:       57:  163:/*EOF*/
      150:      182:  164:/*EOF*/
      114:      130:  165:/*EOF*/
       85:       99:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       29:       31:  168:/*EOF*/
       29:       31:  169:/*EOF*/
       28:       30:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        1:        1:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        1:        1:  174:/*EOF*/
        1:        1:  175:/*EOF*/
        1:        1:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        5:        5:  180:/*EOF*/
        1:        1:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        5:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        5:        5:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        5:        5:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       10:       10:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        5:        5:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        5:        5:  200:/*EOF*/

src/compiler/nir/nir_lower_vars_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_vars_to_ssa.c
        -:        -:    0:Graph:.libs/nir_lower_vars_to_ssa.gcno
        -:        -:    0:Data:.libs/nir_lower_vars_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      159:      161:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      159:      161:   97:/*EOF*/
      159:      161:   98:/*EOF*/
        -:        -:   99:/*EOF*/
      159:      161:  100:/*EOF*/
      159:      161:  101:/*EOF*/
      159:      161:  102:/*EOF*/
      159:      161:  103:/*EOF*/
      159:      161:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      159:      161:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     1073:     1111:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
     1073:     1111:  117:/*EOF*/
     1073:     1111:  118:/*EOF*/
        -:        -:  119:/*EOF*/
     1073:     1111:  120:/*EOF*/
      956:      992:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      117:      119:  123:/*EOF*/
      117:      119:  124:/*EOF*/
      117:      119:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     1011:     1047:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     1011:     1047:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
     1011:     1047:  140:/*EOF*/
     1011:     1047:  141:/*EOF*/
        -:        -:  142:/*EOF*/
     1134:     1170:  143:/*EOF*/
      123:      123:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      123:      123:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      123:      123:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      123:      123:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      123:      123:  170:/*EOF*/
       84:       84:  171:/*EOF*/
       42:       42:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      123:      123:  174:/*EOF*/
      123:      123:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      123:      123:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
     1011:     1047:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
     1372:     1426:  208:/*EOF*/
      361:      379:  209:/*EOF*/
      150:      152:  210:/*EOF*/
      150:      152:  211:/*EOF*/
      150:      152:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
     1011:     1047:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       62:       64:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       62:       64:  226:/*EOF*/
       62:       64:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       62:       64:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       62:       64:  276:/*EOF*/
       62:       64:  277:/*EOF*/
       62:       64:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       62:       64:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       62:       64:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       62:       64:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       62:       64:  291:/*EOF*/
       62:       64:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
       62:       64:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
       62:       64:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      317:      339:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      317:      339:  360:/*EOF*/
      317:      339:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
      317:      339:  364:/*EOF*/
      129:      131:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
      317:      339:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      180:      184:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
      180:      184:  375:/*EOF*/
      180:      184:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      180:      184:  379:/*EOF*/
       81:       83:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      180:      184:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       53:       53:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
      159:      159:  390:/*EOF*/
      106:      106:  391:/*EOF*/
      106:      106:  392:/*EOF*/
        -:        -:  393:/*EOF*/
      106:      106:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
      106:      106:  397:/*EOF*/
       44:       44:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      106:      106:  401:/*EOF*/
        -:        -:  402:/*EOF*/
       53:       53:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
      415:      559:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     2302:     2633:  410:/*EOF*/
     1887:     2074:  411:/*EOF*/
     1271:     1422:  412:/*EOF*/
        -:        -:  413:/*EOF*/
      616:      652:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      616:      652:  416:/*EOF*/
        -:        -:  417:/*EOF*/
      317:      339:  418:/*EOF*/
      317:      339:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      180:      184:  422:/*EOF*/
      180:      184:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
       53:       53:  426:/*EOF*/
       53:       53:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
       66:       76:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
      415:      559:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
       62:       64:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       62:       64:  444:/*EOF*/
       26:       28:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       88:       88:  448:/*EOF*/
       52:       52:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       52:       52:  451:/*EOF*/
        -:        -:  452:/*EOF*/
      156:      156:  453:/*EOF*/
      104:      104:  454:/*EOF*/
      104:      104:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
      104:      104:  458:/*EOF*/
       52:       52:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       52:       52:  461:/*EOF*/
       52:       52:  462:/*EOF*/
       52:       52:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       52:       52:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       36:       36:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       36:       36:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        3:        3:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        3:        3:  485:/*EOF*/
        -:        -:  486:/*EOF*/
       90:      106:  487:/*EOF*/
      423:      457:  488:/*EOF*/
      336:      354:  489:/*EOF*/
       94:      104:  490:/*EOF*/
        -:        -:  491:/*EOF*/
      242:      250:  492:/*EOF*/
        -:        -:  493:/*EOF*/
      242:      250:  494:/*EOF*/
        -:        -:  495:/*EOF*/
      134:      140:  496:/*EOF*/
      134:      140:  497:/*EOF*/
        -:        -:  498:/*EOF*/
      134:      140:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
      134:      140:  518:/*EOF*/
       20:       22:  519:/*EOF*/
        -:        -:  520:/*EOF*/
      114:      118:  521:/*EOF*/
        -:        -:  522:/*EOF*/
      114:      118:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      443:      459:  525:/*EOF*/
      329:      341:  526:/*EOF*/
        -:        -:  527:/*EOF*/
      114:      118:  528:/*EOF*/
        -:        -:  529:/*EOF*/
      114:      118:  530:/*EOF*/
      228:      236:  531:/*EOF*/
      114:      118:  532:/*EOF*/
      114:      118:  533:/*EOF*/
        -:        -:  534:/*EOF*/
      114:      118:  535:/*EOF*/
      114:      118:  536:/*EOF*/
        -:        -:  537:/*EOF*/
      114:      118:  538:/*EOF*/
        -:        -:  539:/*EOF*/
      114:      118:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
      108:      110:  544:/*EOF*/
      108:      110:  545:/*EOF*/
        -:        -:  546:/*EOF*/
      108:      110:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      108:      110:  554:/*EOF*/
        3:        3:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      105:      107:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      105:      107:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
      105:      107:  563:/*EOF*/
        -:        -:  564:/*EOF*/
      105:      107:  565:/*EOF*/
      105:      107:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
      495:      505:  572:/*EOF*/
      396:      404:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       99:      101:  575:/*EOF*/
       99:      101:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        6:        6:  578:/*EOF*/
        6:        6:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
       30:       30:  585:/*EOF*/
       24:       24:  586:/*EOF*/
        8:        8:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       16:       16:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        6:        6:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      105:      107:  595:/*EOF*/
        -:        -:  596:/*EOF*/
      105:      107:  597:/*EOF*/
      105:      107:  598:/*EOF*/
      105:      107:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        3:        3:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
       27:       27:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
       27:       27:  641:/*EOF*/
       27:       27:  642:/*EOF*/
       27:       27:  643:/*EOF*/
        -:        -:  644:/*EOF*/
       27:       27:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
       27:       27:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
       27:       27:  651:/*EOF*/
        -:        -:  652:/*EOF*/
      355:      483:  653:/*EOF*/
      328:      456:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
       27:       27:  657:/*EOF*/
        -:        -:  658:/*EOF*/
       27:       27:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
       27:       27:  662:/*EOF*/
        -:        -:  663:/*EOF*/
      177:      179:  664:/*EOF*/
        -:        -:  665:/*EOF*/
      150:      152:  666:/*EOF*/
        -:        -:  667:/*EOF*/
      150:      152:  668:/*EOF*/
       88:       88:  669:/*EOF*/
       88:       88:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
       62:       64:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
       62:       64:  678:/*EOF*/
       62:       64:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       62:       64:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
       27:       27:  684:/*EOF*/
       24:       24:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        3:        3:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
       90:      106:  695:/*EOF*/
       87:      103:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        3:        3:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        3:        3:  701:/*EOF*/
       65:       67:  702:/*EOF*/
        -:        -:  703:/*EOF*/
       62:       64:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
       62:       64:  707:/*EOF*/
       62:       64:  708:/*EOF*/
        -:        -:  709:/*EOF*/
       62:       64:  710:/*EOF*/
        -:        -:  711:/*EOF*/
       62:       64:  712:/*EOF*/
        -:        -:  713:/*EOF*/
      167:      171:  714:/*EOF*/
      105:      107:  715:/*EOF*/
        -:        -:  716:/*EOF*/
      105:      107:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       62:       64:  721:/*EOF*/
       62:       64:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        3:        3:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        3:        3:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        3:        3:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        3:        3:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        3:        3:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
       27:       27:  741:/*EOF*/
        -:        -:  742:/*EOF*/
       27:       27:  743:/*EOF*/
        -:        -:  744:/*EOF*/
       54:       54:  745:/*EOF*/
       27:       27:  746:/*EOF*/
       27:       27:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
       27:       27:  750:/*EOF*/

src/compiler/nir/nir_lower_wpos_ytransform.c.gcov

        -:        -:    0:Source:nir/nir_lower_wpos_ytransform.c
        -:        -:    0:Graph:.libs/nir_lower_wpos_ytransform.gcno
        -:        -:    0:Data:.libs/nir_lower_wpos_ytransform.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        2:        4:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        2:        4:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        1:        1:   59:/*EOF*/
        1:        1:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        1:        1:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        2:        4:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        2:        4:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        2:        4:   83:/*EOF*/
        2:        4:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        2:        4:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        2:        4:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        2:        4:   91:/*EOF*/
        2:        4:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        2:        4:   95:/*EOF*/
        2:        4:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        2:        4:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        2:        4:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        2:        4:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        2:        4:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        2:        4:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        2:        4:  143:/*EOF*/
        2:        4:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        2:        4:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        2:        4:  149:/*EOF*/
        2:        4:  150:/*EOF*/
        2:        4:  151:/*EOF*/
        2:        4:  152:/*EOF*/
        2:        4:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        2:        4:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        2:        4:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        2:        4:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        2:        4:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        2:        4:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        2:        4:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        2:        4:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        2:        4:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        2:        4:  232:/*EOF*/
        2:        4:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       33:       49:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      129:      161:  298:/*EOF*/
       96:      112:  299:/*EOF*/
       18:       20:  300:/*EOF*/
       18:       20:  301:/*EOF*/
       16:       18:  302:/*EOF*/
       16:       18:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       19:       23:  305:/*EOF*/
        3:        5:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        2:        4:  308:/*EOF*/
        2:        4:  309:/*EOF*/
       14:       14:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        2:        2:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       78:       92:  318:/*EOF*/
       53:       55:  319:/*EOF*/
      106:      110:  320:/*EOF*/
      106:      110:  321:/*EOF*/
       53:       55:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       33:       49:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        2:        2:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        2:        2:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       35:       51:  333:/*EOF*/
       33:       49:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        2:        2:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        2:        2:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        2:        2:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        2:        2:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        2:        2:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        4:        4:  351:/*EOF*/
        2:        2:  352:/*EOF*/
        2:        2:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        2:        2:  356:/*EOF*/

src/compiler/nir/nir_metadata.c.gcov

        -:        -:    0:Source:nir/nir_metadata.c
        -:        -:    0:Graph:.libs/nir_metadata.gcno
        -:        -:    0:Data:.libs/nir_metadata.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
      139:      139:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
      139:      139:   38:/*EOF*/
       14:       14:   39:/*EOF*/
      139:      139:   40:/*EOF*/
       12:       12:   41:/*EOF*/
      139:      139:   42:/*EOF*/
        6:        6:   43:/*EOF*/
      139:      139:   44:/*EOF*/
        -:        -:   45:/*EOF*/
       21:       21:   46:/*EOF*/
       21:       21:   47:/*EOF*/
       21:       21:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      139:      139:   53:/*EOF*/
      139:      139:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      206:      218:   57:/*EOF*/
        -:        -:   58:/*EOF*/
      206:      218:   59:/*EOF*/
      206:      218:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      581:      581:   70:/*EOF*/
        -:        -:   71:/*EOF*/
     1162:     1162:   72:/*EOF*/
      581:      581:   73:/*EOF*/
      581:      581:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      581:      581:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       63:       65:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      126:      130:   89:/*EOF*/
       63:       65:   90:/*EOF*/
       63:       65:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       63:       65:   95:/*EOF*/

src/compiler/nir/nir_normalize_cubemap_coords.c.gcov

        -:        -:    0:Source:nir/nir_normalize_cubemap_coords.c
        -:        -:    0:Graph:.libs/nir_normalize_cubemap_coords.gcno
        -:        -:    0:Data:.libs/nir_normalize_cubemap_coords.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       89:      105:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       89:      105:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      414:      448:   41:/*EOF*/
      325:      343:   42:/*EOF*/
      325:      343:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       89:      105:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        5:        5:   92:/*EOF*/
        5:        5:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       94:      110:   95:/*EOF*/
       89:      105:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        5:        5:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        5:        5:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       10:       10:  110:/*EOF*/
        5:        5:  111:/*EOF*/
        5:        5:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        5:        5:  115:/*EOF*/

src/compiler/nir/nir_opt_algebraic.c.gcov

        -:        -:    0:Source:nir/nir_opt_algebraic.c
        -:        -:    0:Graph:.libs/nir_opt_algebraic.gcno
        -:        -:    0:Data:.libs/nir_opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
        -:        -: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
        -:        -: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
        -:        -: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
        -:        -: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
        -:        -: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        -:        -: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
        -:        -: 1771:/*EOF*/
        -:        -: 1772:/*EOF*/
        -:        -: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
        -:        -: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
        -:        -: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
        -:        -: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
        -:        -: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        -:        -: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
        -:        -: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
        -:        -: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
        -:        -: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
        -:        -: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        -:        -: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
        -:        -: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
        -:        -: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
        -:        -: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
        -:        -: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
        -:        -: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
        -:        -: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
        -:        -: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
        -:        -: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
        -:        -: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        -:        -: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
        -:        -: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
        -:        -: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
        -:        -: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
        -:        -: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
        -:        -: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
        -:        -: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
        -:        -: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
        -:        -: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
        -:        -: 2295:/*EOF*/
        -:        -: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
        -:        -: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
        -:        -: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
        -:        -: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
        -:        -: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
        -:        -: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
        -:        -: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
        -:        -: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
        -:        -: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
        -:        -: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
        -:        -: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        -:        -: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        -:        -: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
        -:        -: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        -:        -: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        -:        -: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        -:        -: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
        -:        -: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
        -:        -: 2487:/*EOF*/
        -:        -: 2488:/*EOF*/
        -:        -: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
        -:        -: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
        -:        -: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
        -:        -: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
        -:        -: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
        -:        -: 2550:/*EOF*/
        -:        -: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
        -:        -: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
        -:        -: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
        -:        -: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
        -:        -: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        -:        -: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
        -:        -: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
        -:        -: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
        -:        -: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
        -:        -: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
        -:        -: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
        -:        -: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
        -:        -: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
        -:        -: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
        -:        -: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
        -:        -: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        -:        -: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
        -:        -: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        -:        -: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        -:        -: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        -:        -: 2863:/*EOF*/
        -:        -: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        -:        -: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
        -:        -: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        -:        -: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
        -:        -: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        -:        -: 2928:/*EOF*/
        -:        -: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
        -:        -: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
        -:        -: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
        -:        -: 2993:/*EOF*/
        -:        -: 2994:/*EOF*/
        -:        -: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
        -:        -: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
        -:        -: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        -:        -: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
        -:        -: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
        -:        -: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
        -:        -: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
        -:        -: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
        -:        -: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
        -:        -: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
        -:        -: 3087:/*EOF*/
        -:        -: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
        -:        -: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
        -:        -: 3121:/*EOF*/
        -:        -: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
        -:        -: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
        -:        -: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
        -:        -: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
        -:        -: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        -:        -: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
        -:        -: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
        -:        -: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
        -:        -: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
        -:        -: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
        -:        -: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        -:        -: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
        -:        -: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
        -:        -: 3286:/*EOF*/
        -:        -: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
        -:        -: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
        -:        -: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
        -:        -: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        -:        -: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        -:        -: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
        -:        -: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
        -:        -: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
        -:        -: 3370:/*EOF*/
        -:        -: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
        -:        -: 3427:/*EOF*/
        -:        -: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
        -:        -: 3430:/*EOF*/
        -:        -: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
        -:        -: 3433:/*EOF*/
        -:        -: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
        -:        -: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
        -:        -: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
        -:        -: 3445:/*EOF*/
        -:        -: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
        -:        -: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
        -:        -: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
        -:        -: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
        -:        -: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
        -:        -: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
        -:        -: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
        -:        -: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
        -:        -: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        -:        -: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
        -:        -: 3582:/*EOF*/
        -:        -: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
        -:        -: 3602:/*EOF*/
        -:        -: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
        -:        -: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        -:        -: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
        -:        -: 3653:/*EOF*/
        -:        -: 3654:/*EOF*/
        -:        -: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        -:        -: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        -:        -: 3666:/*EOF*/
        -:        -: 3667:/*EOF*/
        -:        -: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        -:        -: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
        -:        -: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        -:        -: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        -:        -: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
        -:        -: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
        -:        -: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
        -:        -: 3740:/*EOF*/
        -:        -: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
        -:        -: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
        -:        -: 3756:/*EOF*/
        -:        -: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
        -:        -: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
        -:        -: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
        -:        -: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
        -:        -: 3775:/*EOF*/
        -:        -: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
        -:        -: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
        -:        -: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
        -:        -: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
        -:        -: 3803:/*EOF*/
        -:        -: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
        -:        -: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
        -:        -: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
        -:        -: 3818:/*EOF*/
        -:        -: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
        -:        -: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
        -:        -: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
        -:        -: 3833:/*EOF*/
        -:        -: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
        -:        -: 3842:/*EOF*/
        -:        -: 3843:/*EOF*/
        -:        -: 3844:/*EOF*/
        -:        -: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
        -:        -: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
        -:        -: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
        -:        -: 3874:/*EOF*/
        -:        -: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
        -:        -: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
        -:        -: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
        -:        -: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
        -:        -: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
        -:        -: 3891:/*EOF*/
        -:        -: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
        -:        -: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
        -:        -: 3906:/*EOF*/
        -:        -: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
        -:        -: 3909:/*EOF*/
        -:        -: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
        -:        -: 3914:/*EOF*/
        -:        -: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
        -:        -: 3920:/*EOF*/
        -:        -: 3921:/*EOF*/
        -:        -: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
        -:        -: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
        -:        -: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
        -:        -: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
        -:        -: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
        -:        -: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
        -:        -: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
        -:        -: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
        -:        -: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
        -:        -: 3951:/*EOF*/
        -:        -: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
        -:        -: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
        -:        -: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
        -:        -: 3977:/*EOF*/
        -:        -: 3978:/*EOF*/
        -:        -: 3979:/*EOF*/
        -:        -: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
        -:        -: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
        -:        -: 3999:/*EOF*/
        -:        -: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
        -:        -: 4006:/*EOF*/
        -:        -: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
        -:        -: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
        -:        -: 4017:/*EOF*/
        -:        -: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
        -:        -: 4022:/*EOF*/
        -:        -: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
        -:        -: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
        -:        -: 4038:/*EOF*/
        -:        -: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
        -:        -: 4043:/*EOF*/
        -:        -: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
        -:        -: 4046:/*EOF*/
        -:        -: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
        -:        -: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
        -:        -: 4057:/*EOF*/
        -:        -: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
        -:        -: 4065:/*EOF*/
        -:        -: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
        -:        -: 4068:/*EOF*/
        -:        -: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
        -:        -: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
        -:        -: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
        -:        -: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
        -:        -: 4083:/*EOF*/
        -:        -: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
        -:        -: 4086:/*EOF*/
        -:        -: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
        -:        -: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
        -:        -: 4092:/*EOF*/
        -:        -: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
        -:        -: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
        -:        -: 4114:/*EOF*/
        -:        -: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
        -:        -: 4118:/*EOF*/
        -:        -: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
        -:        -: 4121:/*EOF*/
        -:        -: 4122:/*EOF*/
        -:        -: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
        -:        -: 4128:/*EOF*/
        -:        -: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
        -:        -: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
        -:        -: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
        -:        -: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
        -:        -: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
        -:        -: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
        -:        -: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
        -:        -: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
        -:        -: 4153:/*EOF*/
        -:        -: 4154:/*EOF*/
        -:        -: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
        -:        -: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
        -:        -: 4160:/*EOF*/
        -:        -: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
        -:        -: 4166:/*EOF*/
        -:        -: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
        -:        -: 4172:/*EOF*/
        -:        -: 4173:/*EOF*/
        -:        -: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
        -:        -: 4177:/*EOF*/
        -:        -: 4178:/*EOF*/
        -:        -: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
        -:        -: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
        -:        -: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
        -:        -: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
        -:        -: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
        -:        -: 4206:/*EOF*/
        -:        -: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
        -:        -: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
        -:        -: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
        -:        -: 4226:/*EOF*/
        -:        -: 4227:/*EOF*/
        -:        -: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
        -:        -: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
        -:        -: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
        -:        -: 4239:/*EOF*/
        -:        -: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
        -:        -: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
        -:        -: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
        -:        -: 4248:/*EOF*/
        -:        -: 4249:/*EOF*/
        -:        -: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
        -:        -: 4254:/*EOF*/
        -:        -: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
        -:        -: 4257:/*EOF*/
        -:        -: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
        -:        -: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
        -:        -: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
        -:        -: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
        -:        -: 4277:/*EOF*/
        -:        -: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
        -:        -: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
        -:        -: 4283:/*EOF*/
        -:        -: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
        -:        -: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
        -:        -: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
        -:        -: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
        -:        -: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
        -:        -: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
        -:        -: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        -:        -: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
        -:        -: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        -:        -: 4330:/*EOF*/
        -:        -: 4331:/*EOF*/
        -:        -: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
        -:        -: 4338:/*EOF*/
        -:        -: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
        -:        -: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
        -:        -: 4350:/*EOF*/
        -:        -: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
        -:        -: 4354:/*EOF*/
        -:        -: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
        -:        -: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
        -:        -: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
        -:        -: 4366:/*EOF*/
        -:        -: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
        -:        -: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
        -:        -: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
        -:        -: 4386:/*EOF*/
        -:        -: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
        -:        -: 4390:/*EOF*/
        -:        -: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
        -:        -: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
        -:        -: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
        -:        -: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
        -:        -: 4412:/*EOF*/
        -:        -: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
        -:        -: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
        -:        -: 4418:/*EOF*/
        -:        -: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
        -:        -: 4424:/*EOF*/
        -:        -: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
        -:        -: 4434:/*EOF*/
        -:        -: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
        -:        -: 4454:/*EOF*/
        -:        -: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
        -:        -: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        -:        -: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
        -:        -: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        -:        -: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
        -:        -: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
        -:        -: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
        -:        -: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
        -:        -: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        -:        -: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
        -:        -: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
        -:        -: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
        -:        -: 4607:/*EOF*/
        -:        -: 4608:/*EOF*/
        -:        -: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
        -:        -: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
        -:        -: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
        -:        -: 4654:/*EOF*/
        -:        -: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
        -:        -: 4661:/*EOF*/
        -:        -: 4662:/*EOF*/
        -:        -: 4663:/*EOF*/
        -:        -: 4664:/*EOF*/
        -:        -: 4665:/*EOF*/
        -:        -: 4666:/*EOF*/
        -:        -: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
        -:        -: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
        -:        -: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
        -:        -: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
        -:        -: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
        -:        -: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
        -:        -: 4735:/*EOF*/
        -:        -: 4736:/*EOF*/
        -:        -: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
        -:        -: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
        -:        -: 4749:/*EOF*/
        -:        -: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        -:        -: 4762:/*EOF*/
        -:        -: 4763:/*EOF*/
        -:        -: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
        -:        -: 4768:/*EOF*/
        -:        -: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
        -:        -: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        -:        -: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
        -:        -: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
        -:        -: 4825:/*EOF*/
        -:        -: 4826:/*EOF*/
        -:        -: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
        -:        -: 4833:/*EOF*/
        -:        -: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
        -:        -: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        -:        -: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        -:        -: 4844:/*EOF*/
        -:        -: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
        -:        -: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
        -:        -: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
        -:        -: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
        -:        -: 4870:/*EOF*/
        -:        -: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
        -:        -: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
        -:        -: 4880:/*EOF*/
        -:        -: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
        -:        -: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
        -:        -: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
        -:        -: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
        -:        -: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
        -:        -: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
        -:        -: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
        -:        -: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
        -:        -: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
        -:        -: 4929:/*EOF*/
        -:        -: 4930:/*EOF*/
        -:        -: 4931:/*EOF*/
        -:        -: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
        -:        -: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
        -:        -: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
        -:        -: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
        -:        -: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
        -:        -: 4952:/*EOF*/
        -:        -: 4953:/*EOF*/
        -:        -: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
        -:        -: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
        -:        -: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
        -:        -: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
        -:        -: 4975:/*EOF*/
        -:        -: 4976:/*EOF*/
        -:        -: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
        -:        -: 4979:/*EOF*/
        -:        -: 4980:/*EOF*/
        -:        -: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
        -:        -: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
        -:        -: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
        -:        -: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
        -:        -: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
        -:        -: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
        -:        -: 5012:/*EOF*/
        -:        -: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
        -:        -: 5019:/*EOF*/
        -:        -: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
        -:        -: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
        -:        -: 5026:/*EOF*/
        -:        -: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
        -:        -: 5035:/*EOF*/
        -:        -: 5036:/*EOF*/
        -:        -: 5037:/*EOF*/
        -:        -: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
        -:        -: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
        -:        -: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
        -:        -: 5057:/*EOF*/
        -:        -: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
        -:        -: 5061:/*EOF*/
        -:        -: 5062:/*EOF*/
        -:        -: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
        -:        -: 5065:/*EOF*/
        -:        -: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
        -:        -: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
        -:        -: 5073:/*EOF*/
        -:        -: 5074:/*EOF*/
        -:        -: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
        -:        -: 5078:/*EOF*/
        -:        -: 5079:/*EOF*/
        -:        -: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
        -:        -: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
        -:        -: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        -:        -: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        -:        -: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
        -:        -: 5097:/*EOF*/
        -:        -: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
        -:        -: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
        -:        -: 5106:/*EOF*/
        -:        -: 5107:/*EOF*/
        -:        -: 5108:/*EOF*/
        -:        -: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
        -:        -: 5114:/*EOF*/
        -:        -: 5115:/*EOF*/
        -:        -: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
        -:        -: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
        -:        -: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
        -:        -: 5125:/*EOF*/
        -:        -: 5126:/*EOF*/
        -:        -: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
        -:        -: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
        -:        -: 5135:/*EOF*/
        -:        -: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
        -:        -: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
        -:        -: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
        -:        -: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
        -:        -: 5145:/*EOF*/
        -:        -: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        -:        -: 5150:/*EOF*/
        -:        -: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        -:        -: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
        -:        -: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
        -:        -: 5159:/*EOF*/
        -:        -: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
        -:        -: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
        -:        -: 5165:/*EOF*/
        -:        -: 5166:/*EOF*/
        -:        -: 5167:/*EOF*/
        -:        -: 5168:/*EOF*/
        -:        -: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
        -:        -: 5172:/*EOF*/
        -:        -: 5173:/*EOF*/
        -:        -: 5174:/*EOF*/
        -:        -: 5175:/*EOF*/
        -:        -: 5176:/*EOF*/
        -:        -: 5177:/*EOF*/
        -:        -: 5178:/*EOF*/
        -:        -: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
        -:        -: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
        -:        -: 5183:/*EOF*/
        -:        -: 5184:/*EOF*/
        -:        -: 5185:/*EOF*/
        -:        -: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
        -:        -: 5190:/*EOF*/
        -:        -: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
        -:        -: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
        -:        -: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
        -:        -: 5198:/*EOF*/
        -:        -: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
        -:        -: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
        -:        -: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
        -:        -: 5206:/*EOF*/
        -:        -: 5207:/*EOF*/
        -:        -: 5208:/*EOF*/
        -:        -: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
        -:        -: 5212:/*EOF*/
        -:        -: 5213:/*EOF*/
        -:        -: 5214:/*EOF*/
        -:        -: 5215:/*EOF*/
        -:        -: 5216:/*EOF*/
        -:        -: 5217:/*EOF*/
        -:        -: 5218:/*EOF*/
        -:        -: 5219:/*EOF*/
        -:        -: 5220:/*EOF*/
        -:        -: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
        -:        -: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
        -:        -: 5226:/*EOF*/
        -:        -: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
        -:        -: 5230:/*EOF*/
        -:        -: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
        -:        -: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
        -:        -: 5236:/*EOF*/
        -:        -: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
        -:        -: 5239:/*EOF*/
        -:        -: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
        -:        -: 5242:/*EOF*/
        -:        -: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
        -:        -: 5245:/*EOF*/
        -:        -: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
        -:        -: 5248:/*EOF*/
        -:        -: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
        -:        -: 5251:/*EOF*/
        -:        -: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
        -:        -: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
        -:        -: 5256:/*EOF*/
        -:        -: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
        -:        -: 5259:/*EOF*/
        -:        -: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
        -:        -: 5262:/*EOF*/
        -:        -: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
        -:        -: 5265:/*EOF*/
        -:        -: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
        -:        -: 5268:/*EOF*/
        -:        -: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
        -:        -: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
        -:        -: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
        -:        -: 5276:/*EOF*/
        -:        -: 5277:/*EOF*/
        -:        -: 5278:/*EOF*/
        -:        -: 5279:/*EOF*/
        -:        -: 5280:/*EOF*/
        -:        -: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
        -:        -: 5284:/*EOF*/
        -:        -: 5285:/*EOF*/
        -:        -: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
        -:        -: 5288:/*EOF*/
        -:        -: 5289:/*EOF*/
        -:        -: 5290:/*EOF*/
        -:        -: 5291:/*EOF*/
        -:        -: 5292:/*EOF*/
        -:        -: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
        -:        -: 5295:/*EOF*/
        -:        -: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
        -:        -: 5298:/*EOF*/
        -:        -: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
        -:        -: 5301:/*EOF*/
        -:        -: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
        -:        -: 5304:/*EOF*/
        -:        -: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
        -:        -: 5307:/*EOF*/
        -:        -: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
        -:        -: 5310:/*EOF*/
        -:        -: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
        -:        -: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
        -:        -: 5315:/*EOF*/
        -:        -: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
        -:        -: 5318:/*EOF*/
        -:        -: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
        -:        -: 5322:/*EOF*/
        -:        -: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
        -:        -: 5326:/*EOF*/
        -:        -: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
        -:        -: 5329:/*EOF*/
        -:        -: 5330:/*EOF*/
        -:        -: 5331:/*EOF*/
        -:        -: 5332:/*EOF*/
        -:        -: 5333:/*EOF*/
        -:        -: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
        -:        -: 5336:/*EOF*/
        -:        -: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
        -:        -: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
        -:        -: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
        -:        -: 5343:/*EOF*/
        -:        -: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
        -:        -: 5346:/*EOF*/
        -:        -: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
        -:        -: 5349:/*EOF*/
        -:        -: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
        -:        -: 5352:/*EOF*/
        -:        -: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
        -:        -: 5355:/*EOF*/
        -:        -: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
        -:        -: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
        -:        -: 5361:/*EOF*/
        -:        -: 5362:/*EOF*/
        -:        -: 5363:/*EOF*/
        -:        -: 5364:/*EOF*/
        -:        -: 5365:/*EOF*/
        -:        -: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
        -:        -: 5369:/*EOF*/
        -:        -: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
        -:        -: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
        -:        -: 5374:/*EOF*/
        -:        -: 5375:/*EOF*/
        -:        -: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
        -:        -: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
        -:        -: 5380:/*EOF*/
        -:        -: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
        -:        -: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
        -:        -: 5386:/*EOF*/
        -:        -: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
        -:        -: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
        -:        -: 5392:/*EOF*/
        -:        -: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
        -:        -: 5395:/*EOF*/
        -:        -: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
        -:        -: 5398:/*EOF*/
        -:        -: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
        -:        -: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
        -:        -: 5419:/*EOF*/
        -:        -: 5420:/*EOF*/
        -:        -: 5421:/*EOF*/
        -:        -: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
        -:        -: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        -:        -: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        -:        -: 5431:/*EOF*/
        -:        -: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        -:        -: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        -:        -: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
        -:        -: 5447:/*EOF*/
        -:        -: 5448:/*EOF*/
        -:        -: 5449:/*EOF*/
        -:        -: 5450:/*EOF*/
        -:        -: 5451:/*EOF*/
        -:        -: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        -:        -: 5459:/*EOF*/
        -:        -: 5460:/*EOF*/
        -:        -: 5461:/*EOF*/
        -:        -: 5462:/*EOF*/
        -:        -: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        -:        -: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        -:        -: 5471:/*EOF*/
        -:        -: 5472:/*EOF*/
        -:        -: 5473:/*EOF*/
        -:        -: 5474:/*EOF*/
        -:        -: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        -:        -: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        -:        -: 5482:/*EOF*/
        -:        -: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
        -:        -: 5493:/*EOF*/
        -:        -: 5494:/*EOF*/
        -:        -: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        -:        -: 5500:/*EOF*/
        -:        -: 5501:/*EOF*/
        -:        -: 5502:/*EOF*/
        -:        -: 5503:/*EOF*/
        -:        -: 5504:/*EOF*/
        -:        -: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
        -:        -: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        -:        -: 5514:/*EOF*/
        -:        -: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        -:        -: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
        -:        -: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
        -:        -: 5523:/*EOF*/
        -:        -: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
        -:        -: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
        -:        -: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
        -:        -: 5531:/*EOF*/
        -:        -: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
        -:        -: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
        -:        -: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
        -:        -: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
        -:        -: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
        -:        -: 5551:/*EOF*/
        -:        -: 5552:/*EOF*/
        -:        -: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
        -:        -: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
        -:        -: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
        -:        -: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
        -:        -: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
        -:        -: 5566:/*EOF*/
        -:        -: 5567:/*EOF*/
        -:        -: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
        -:        -: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
        -:        -: 5573:/*EOF*/
        -:        -: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
        -:        -: 5576:/*EOF*/
        -:        -: 5577:/*EOF*/
        -:        -: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
        -:        -: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
        -:        -: 5582:/*EOF*/
        -:        -: 5583:/*EOF*/
        -:        -: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
        -:        -: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        -:        -: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        -:        -: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        -:        -: 5601:/*EOF*/
        -:        -: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        -:        -: 5605:/*EOF*/
        -:        -: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
        -:        -: 5608:/*EOF*/
        -:        -: 5609:/*EOF*/
        -:        -: 5610:/*EOF*/
        -:        -: 5611:/*EOF*/
        -:        -: 5612:/*EOF*/
        -:        -: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
        -:        -: 5615:/*EOF*/
        -:        -: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
        -:        -: 5618:/*EOF*/
        -:        -: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        -:        -: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        -:        -: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        -:        -: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        -:        -: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
        -:        -: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        -:        -: 5645:/*EOF*/
        -:        -: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        -:        -: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        -:        -: 5650:/*EOF*/
        -:        -: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        -:        -: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
        -:        -: 5673:/*EOF*/
        -:        -: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
        -:        -: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        -:        -: 5679:/*EOF*/
        -:        -: 5680:/*EOF*/
        -:        -: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        -:        -: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
        -:        -: 5685:/*EOF*/
        -:        -: 5686:/*EOF*/
        -:        -: 5687:/*EOF*/
        -:        -: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
        -:        -: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
        -:        -: 5692:/*EOF*/
        -:        -: 5693:/*EOF*/
        -:        -: 5694:/*EOF*/
        -:        -: 5695:/*EOF*/
        -:        -: 5696:/*EOF*/
        -:        -: 5697:/*EOF*/
        -:        -: 5698:/*EOF*/
        -:        -: 5699:/*EOF*/
        -:        -: 5700:/*EOF*/
        -:        -: 5701:/*EOF*/
        -:        -: 5702:/*EOF*/
        -:        -: 5703:/*EOF*/
        -:        -: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
        -:        -: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        -:        -: 5709:/*EOF*/
        -:        -: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        -:        -: 5712:/*EOF*/
        -:        -: 5713:/*EOF*/
        -:        -: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        -:        -: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        -:        -: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
        -:        -: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        -:        -: 5724:/*EOF*/
        -:        -: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        -:        -: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        -:        -: 5729:/*EOF*/
        -:        -: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        -:        -: 5736:/*EOF*/
        -:        -: 5737:/*EOF*/
        -:        -: 5738:/*EOF*/
        -:        -: 5739:/*EOF*/
        -:        -: 5740:/*EOF*/
        -:        -: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        -:        -: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
        -:        -: 5746:/*EOF*/
        -:        -: 5747:/*EOF*/
        -:        -: 5748:/*EOF*/
        -:        -: 5749:/*EOF*/
        -:        -: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        -:        -: 5753:/*EOF*/
        -:        -: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        -:        -: 5756:/*EOF*/
        -:        -: 5757:/*EOF*/
        -:        -: 5758:/*EOF*/
        -:        -: 5759:/*EOF*/
        -:        -: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
        -:        -: 5763:/*EOF*/
        -:        -: 5764:/*EOF*/
        -:        -: 5765:/*EOF*/
        -:        -: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
        -:        -: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        -:        -: 5771:/*EOF*/
        -:        -: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
        -:        -: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        -:        -: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
        -:        -: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
        -:        -: 5783:/*EOF*/
        -:        -: 5784:/*EOF*/
        -:        -: 5785:/*EOF*/
        -:        -: 5786:/*EOF*/
        -:        -: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        -:        -: 5791:/*EOF*/
        -:        -: 5792:/*EOF*/
        -:        -: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        -:        -: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
        -:        -: 5805:/*EOF*/
        -:        -: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        -:        -: 5812:/*EOF*/
        -:        -: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        -:        -: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        -:        -: 5821:/*EOF*/
        -:        -: 5822:/*EOF*/
        -:        -: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        -:        -: 5825:/*EOF*/
        -:        -: 5826:/*EOF*/
        -:        -: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
        -:        -: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
        -:        -: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
        -:        -: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
        -:        -: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
        -:        -: 5847:/*EOF*/
        -:        -: 5848:/*EOF*/
        -:        -: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        -:        -: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        -:        -: 5859:/*EOF*/
        -:        -: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        -:        -: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        -:        -: 5864:/*EOF*/
        -:        -: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
        -:        -: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
        -:        -: 5869:/*EOF*/
        -:        -: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
        -:        -: 5876:/*EOF*/
        -:        -: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
        -:        -: 5882:/*EOF*/
        -:        -: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
        -:        -: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
        -:        -: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
        -:        -: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
        -:        -: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
        -:        -: 5908:/*EOF*/
        -:        -: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
        -:        -: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
        -:        -: 5913:/*EOF*/
        -:        -: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
        -:        -: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
        -:        -: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
        -:        -: 5920:/*EOF*/
        -:        -: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
        -:        -: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
        -:        -: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
        -:        -: 5927:/*EOF*/
        -:        -: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
        -:        -: 5930:/*EOF*/
        -:        -: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
        -:        -: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
        -:        -: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
        -:        -: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
        -:        -: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
        -:        -: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
        -:        -: 5946:/*EOF*/
        -:        -: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
        -:        -: 5949:/*EOF*/
        -:        -: 5950:/*EOF*/
        -:        -: 5951:/*EOF*/
        -:        -: 5952:/*EOF*/
        -:        -: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
        -:        -: 5955:/*EOF*/
        -:        -: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
        -:        -: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
        -:        -: 5961:/*EOF*/
        -:        -: 5962:/*EOF*/
        -:        -: 5963:/*EOF*/
        -:        -: 5964:/*EOF*/
        -:        -: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
        -:        -: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
        -:        -: 5971:/*EOF*/
        -:        -: 5972:/*EOF*/
        -:        -: 5973:/*EOF*/
        -:        -: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
        -:        -: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
        -:        -: 5979:/*EOF*/
        -:        -: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
        -:        -: 5988:/*EOF*/
        -:        -: 5989:/*EOF*/
        -:        -: 5990:/*EOF*/
        -:        -: 5991:/*EOF*/
        -:        -: 5992:/*EOF*/
        -:        -: 5993:/*EOF*/
        -:        -: 5994:/*EOF*/
        -:        -: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
        -:        -: 5997:/*EOF*/
        -:        -: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
        -:        -: 6000:/*EOF*/
        -:        -: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
        -:        -: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
        -:        -: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
        -:        -: 6007:/*EOF*/
        -:        -: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
        -:        -: 6010:/*EOF*/
        -:        -: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
        -:        -: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
        -:        -: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
        -:        -: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
        -:        -: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
        -:        -: 6024:/*EOF*/
        -:        -: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
        -:        -: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
        -:        -: 6029:/*EOF*/
        -:        -: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
        -:        -: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
        -:        -: 6034:/*EOF*/
        -:        -: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
        -:        -: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
        -:        -: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
        -:        -: 6041:/*EOF*/
        -:        -: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
        -:        -: 6044:/*EOF*/
        -:        -: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
        -:        -: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
        -:        -: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
        -:        -: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
        -:        -: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
        -:        -: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
        -:        -: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
        -:        -: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
        -:        -: 6067:/*EOF*/
        -:        -: 6068:/*EOF*/
        -:        -: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
        -:        -: 6073:/*EOF*/
        -:        -: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
        -:        -: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
        -:        -: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
        -:        -: 6080:/*EOF*/
        -:        -: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
        -:        -: 6083:/*EOF*/
        -:        -: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
        -:        -: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
        -:        -: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
        -:        -: 6090:/*EOF*/
        -:        -: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
        -:        -: 6093:/*EOF*/
        -:        -: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
        -:        -: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
        -:        -: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        -:        -: 6102:/*EOF*/
        -:        -: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        -:        -: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        -:        -: 6107:/*EOF*/
        -:        -: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
        -:        -: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        -:        -: 6114:/*EOF*/
        -:        -: 6115:/*EOF*/
        -:        -: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        -:        -: 6118:/*EOF*/
        -:        -: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        -:        -: 6121:/*EOF*/
        -:        -: 6122:/*EOF*/
        -:        -: 6123:/*EOF*/
        -:        -: 6124:/*EOF*/
        -:        -: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        -:        -: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        -:        -: 6133:/*EOF*/
        -:        -: 6134:/*EOF*/
        -:        -: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        -:        -: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        -:        -: 6143:/*EOF*/
        -:        -: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        -:        -: 6146:/*EOF*/
        -:        -: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        -:        -: 6149:/*EOF*/
        -:        -: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        -:        -: 6152:/*EOF*/
        -:        -: 6153:/*EOF*/
        -:        -: 6154:/*EOF*/
        -:        -: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        -:        -: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        -:        -: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        -:        -: 6161:/*EOF*/
        -:        -: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        -:        -: 6164:/*EOF*/
        -:        -: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        -:        -: 6167:/*EOF*/
        -:        -: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        -:        -: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
        -:        -: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
        -:        -: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
        -:        -: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
        -:        -: 6181:/*EOF*/
        -:        -: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
        -:        -: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
        -:        -: 6186:/*EOF*/
        -:        -: 6187:/*EOF*/
        -:        -: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
        -:        -: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
        -:        -: 6193:/*EOF*/
        -:        -: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
        -:        -: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
        -:        -: 6198:/*EOF*/
        -:        -: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
        -:        -: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
        -:        -: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
        -:        -: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
        -:        -: 6207:/*EOF*/
        -:        -: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
        -:        -: 6210:/*EOF*/
        -:        -: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
        -:        -: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
        -:        -: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        -:        -: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        -:        -: 6230:/*EOF*/
        -:        -: 6231:/*EOF*/
        -:        -: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
        -:        -: 6234:/*EOF*/
        -:        -: 6235:/*EOF*/
        -:        -: 6236:/*EOF*/
        -:        -: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
        -:        -: 6239:/*EOF*/
        -:        -: 6240:/*EOF*/
        -:        -: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
        -:        -: 6244:/*EOF*/
        -:        -: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        -:        -: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        -:        -: 6249:/*EOF*/
        -:        -: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        -:        -: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        -:        -: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        -:        -: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
        -:        -: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        -:        -: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
        -:        -: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        -:        -: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        -:        -: 6272:/*EOF*/
        -:        -: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        -:        -: 6275:/*EOF*/
        -:        -: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        -:        -: 6279:/*EOF*/
        -:        -: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        -:        -: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        -:        -: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        -:        -: 6287:/*EOF*/
        -:        -: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
        -:        -: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
        -:        -: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
        -:        -: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
        -:        -: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        -:        -: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
        -:        -: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
        -:        -: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        -:        -: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        -:        -: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        -:        -: 6323:/*EOF*/
        -:        -: 6324:/*EOF*/
        -:        -: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        -:        -: 6327:/*EOF*/
        -:        -: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
        -:        -: 6330:/*EOF*/
        -:        -: 6331:/*EOF*/
        -:        -: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
        -:        -: 6334:/*EOF*/
        -:        -: 6335:/*EOF*/
        -:        -: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
        -:        -: 6338:/*EOF*/
        -:        -: 6339:/*EOF*/
        -:        -: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        -:        -: 6342:/*EOF*/
        -:        -: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        -:        -: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
        -:        -: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        -:        -: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        -:        -: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
        -:        -: 6356:/*EOF*/
        -:        -: 6357:/*EOF*/
        -:        -: 6358:/*EOF*/
        -:        -: 6359:/*EOF*/
        -:        -: 6360:/*EOF*/
        -:        -: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        -:        -: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
        -:        -: 6365:/*EOF*/
        -:        -: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        -:        -: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        -:        -: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        -:        -: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        -:        -: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        -:        -: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        -:        -: 6389:/*EOF*/
        -:        -: 6390:/*EOF*/
        -:        -: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        -:        -: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
        -:        -: 6396:/*EOF*/
        -:        -: 6397:/*EOF*/
        -:        -: 6398:/*EOF*/
        -:        -: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
        -:        -: 6401:/*EOF*/
        -:        -: 6402:/*EOF*/
        -:        -: 6403:/*EOF*/
        -:        -: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
        -:        -: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
        -:        -: 6408:/*EOF*/
        -:        -: 6409:/*EOF*/
        -:        -: 6410:/*EOF*/
        -:        -: 6411:/*EOF*/
        -:        -: 6412:/*EOF*/
        -:        -: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        -:        -: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        -:        -: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        -:        -: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        -:        -: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        -:        -: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        -:        -: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
        -:        -: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        -:        -: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        -:        -: 6451:/*EOF*/
        -:        -: 6452:/*EOF*/
        -:        -: 6453:/*EOF*/
        -:        -: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        -:        -: 6456:/*EOF*/
        -:        -: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        -:        -: 6460:/*EOF*/
        -:        -: 6461:/*EOF*/
        -:        -: 6462:/*EOF*/
        -:        -: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        -:        -: 6468:/*EOF*/
        -:        -: 6469:/*EOF*/
        -:        -: 6470:/*EOF*/
        -:        -: 6471:/*EOF*/
        -:        -: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        -:        -: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        -:        -: 6477:/*EOF*/
        -:        -: 6478:/*EOF*/
        -:        -: 6479:/*EOF*/
        -:        -: 6480:/*EOF*/
        -:        -: 6481:/*EOF*/
        -:        -: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        -:        -: 6484:/*EOF*/
        -:        -: 6485:/*EOF*/
        -:        -: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        -:        -: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        -:        -: 6491:/*EOF*/
        -:        -: 6492:/*EOF*/
        -:        -: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        -:        -: 6497:/*EOF*/
        -:        -: 6498:/*EOF*/
        -:        -: 6499:/*EOF*/
        -:        -: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
        -:        -: 6502:/*EOF*/
        -:        -: 6503:/*EOF*/
        -:        -: 6504:/*EOF*/
        -:        -: 6505:/*EOF*/
        -:        -: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        -:        -: 6509:/*EOF*/
        -:        -: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        -:        -: 6514:/*EOF*/
        -:        -: 6515:/*EOF*/
        -:        -: 6516:/*EOF*/
        -:        -: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
        -:        -: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        -:        -: 6521:/*EOF*/
        -:        -: 6522:/*EOF*/
        -:        -: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        -:        -: 6528:/*EOF*/
        -:        -: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        -:        -: 6536:/*EOF*/
        -:        -: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        -:        -: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
        -:        -: 6549:/*EOF*/
        -:        -: 6550:/*EOF*/
        -:        -: 6551:/*EOF*/
        -:        -: 6552:/*EOF*/
        -:        -: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        -:        -: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        -:        -: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        -:        -: 6564:/*EOF*/
        -:        -: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        -:        -: 6567:/*EOF*/
        -:        -: 6568:/*EOF*/
        -:        -: 6569:/*EOF*/
        -:        -: 6570:/*EOF*/
        -:        -: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        -:        -: 6573:/*EOF*/
        -:        -: 6574:/*EOF*/
        -:        -: 6575:/*EOF*/
        -:        -: 6576:/*EOF*/
        -:        -: 6577:/*EOF*/
        -:        -: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        -:        -: 6580:/*EOF*/
        -:        -: 6581:/*EOF*/
        -:        -: 6582:/*EOF*/
        -:        -: 6583:/*EOF*/
        -:        -: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        -:        -: 6586:/*EOF*/
        -:        -: 6587:/*EOF*/
        -:        -: 6588:/*EOF*/
        -:        -: 6589:/*EOF*/
        -:        -: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        -:        -: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
        -:        -: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
        -:        -: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
        -:        -: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
        -:        -: 6603:/*EOF*/
        -:        -: 6604:/*EOF*/
        -:        -: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
        -:        -: 6607:/*EOF*/
        -:        -: 6608:/*EOF*/
        -:        -: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
        -:        -: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
        -:        -: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
        -:        -: 6617:/*EOF*/
        -:        -: 6618:/*EOF*/
        -:        -: 6619:/*EOF*/
        -:        -: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
        -:        -: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
        -:        -: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
        -:        -: 6628:/*EOF*/
        -:        -: 6629:/*EOF*/
        -:        -: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
        -:        -: 6633:/*EOF*/
        -:        -: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
        -:        -: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
        -:        -: 6639:/*EOF*/
        -:        -: 6640:/*EOF*/
        -:        -: 6641:/*EOF*/
        -:        -: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
        -:        -: 6644:/*EOF*/
        -:        -: 6645:/*EOF*/
        -:        -: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
        -:        -: 6649:/*EOF*/
        -:        -: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
        -:        -: 6653:/*EOF*/
        -:        -: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
        -:        -: 6657:/*EOF*/
        -:        -: 6658:/*EOF*/
        -:        -: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
        -:        -: 6661:/*EOF*/
        -:        -: 6662:/*EOF*/
        -:        -: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
        -:        -: 6665:/*EOF*/
        -:        -: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
        -:        -: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
        -:        -: 6671:/*EOF*/
        -:        -: 6672:/*EOF*/
        -:        -: 6673:/*EOF*/
        -:        -: 6674:/*EOF*/
        -:        -: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
        -:        -: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
        -:        -: 6687:/*EOF*/
        -:        -: 6688:/*EOF*/
        -:        -: 6689:/*EOF*/
        -:        -: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
        -:        -: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
        -:        -: 6697:/*EOF*/
        -:        -: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
        -:        -: 6700:/*EOF*/
        -:        -: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
        -:        -: 6703:/*EOF*/
        -:        -: 6704:/*EOF*/
        -:        -: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
        -:        -: 6707:/*EOF*/
        -:        -: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
        -:        -: 6710:/*EOF*/
        -:        -: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
        -:        -: 6713:/*EOF*/
        -:        -: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
        -:        -: 6720:/*EOF*/
        -:        -: 6721:/*EOF*/
        -:        -: 6722:/*EOF*/
        -:        -: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
        -:        -: 6725:/*EOF*/
        -:        -: 6726:/*EOF*/
        -:        -: 6727:/*EOF*/
        -:        -: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
        -:        -: 6734:/*EOF*/
        -:        -: 6735:/*EOF*/
        -:        -: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
        -:        -: 6739:/*EOF*/
        -:        -: 6740:/*EOF*/
        -:        -: 6741:/*EOF*/
        -:        -: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
        -:        -: 6744:/*EOF*/
        -:        -: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
        -:        -: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
        -:        -: 6751:/*EOF*/
        -:        -: 6752:/*EOF*/
        -:        -: 6753:/*EOF*/
        -:        -: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
        -:        -: 6760:/*EOF*/
        -:        -: 6761:/*EOF*/
        -:        -: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
        -:        -: 6764:/*EOF*/
        -:        -: 6765:/*EOF*/
        -:        -: 6766:/*EOF*/
        -:        -: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
        -:        -: 6769:/*EOF*/
        -:        -: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
        -:        -: 6772:/*EOF*/
        -:        -: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
        -:        -: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
        -:        -: 6779:/*EOF*/
        -:        -: 6780:/*EOF*/
        -:        -: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
        -:        -: 6785:/*EOF*/
        -:        -: 6786:/*EOF*/
        -:        -: 6787:/*EOF*/
        -:        -: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
        -:        -: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
        -:        -: 6794:/*EOF*/
        -:        -: 6795:/*EOF*/
        -:        -: 6796:/*EOF*/
        -:        -: 6797:/*EOF*/
        -:        -: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
        -:        -: 6800:/*EOF*/
        -:        -: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
        -:        -: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
        -:        -: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
        -:        -: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
        -:        -: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
        -:        -: 6820:/*EOF*/
        -:        -: 6821:/*EOF*/
        -:        -: 6822:/*EOF*/
        -:        -: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
        -:        -: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
        -:        -: 6827:/*EOF*/
        -:        -: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
        -:        -: 6833:/*EOF*/
        -:        -: 6834:/*EOF*/
        -:        -: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        -:        -: 6837:/*EOF*/
        -:        -: 6838:/*EOF*/
        -:        -: 6839:/*EOF*/
        -:        -: 6840:/*EOF*/
        -:        -: 6841:/*EOF*/
        -:        -: 6842:/*EOF*/
        -:        -: 6843:/*EOF*/
        -:        -: 6844:/*EOF*/
        -:        -: 6845:/*EOF*/
        -:        -: 6846:/*EOF*/
        -:        -: 6847:/*EOF*/
        -:        -: 6848:/*EOF*/
        -:        -: 6849:/*EOF*/
        -:        -: 6850:/*EOF*/
        -:        -: 6851:/*EOF*/
        -:        -: 6852:/*EOF*/
        -:        -: 6853:/*EOF*/
        -:        -: 6854:/*EOF*/
        -:        -: 6855:/*EOF*/
        -:        -: 6856:/*EOF*/
        -:        -: 6857:/*EOF*/
        -:        -: 6858:/*EOF*/
        -:        -: 6859:/*EOF*/
        -:        -: 6860:/*EOF*/
        -:        -: 6861:/*EOF*/
        -:        -: 6862:/*EOF*/
        -:        -: 6863:/*EOF*/
        -:        -: 6864:/*EOF*/
        -:        -: 6865:/*EOF*/
        -:        -: 6866:/*EOF*/
        -:        -: 6867:/*EOF*/
        -:        -: 6868:/*EOF*/
        -:        -: 6869:/*EOF*/
        -:        -: 6870:/*EOF*/
        -:        -: 6871:/*EOF*/
        -:        -: 6872:/*EOF*/
        -:        -: 6873:/*EOF*/
        -:        -: 6874:/*EOF*/
        -:        -: 6875:/*EOF*/
        -:        -: 6876:/*EOF*/
        -:        -: 6877:/*EOF*/
        -:        -: 6878:/*EOF*/
        -:        -: 6879:/*EOF*/
        -:        -: 6880:/*EOF*/
        -:        -: 6881:/*EOF*/
        -:        -: 6882:/*EOF*/
        -:        -: 6883:/*EOF*/
        -:        -: 6884:/*EOF*/
        -:        -: 6885:/*EOF*/
        -:        -: 6886:/*EOF*/
        -:        -: 6887:/*EOF*/
        -:        -: 6888:/*EOF*/
        -:        -: 6889:/*EOF*/
        -:        -: 6890:/*EOF*/
        -:        -: 6891:/*EOF*/
        -:        -: 6892:/*EOF*/
        -:        -: 6893:/*EOF*/
        -:        -: 6894:/*EOF*/
        -:        -: 6895:/*EOF*/
        -:        -: 6896:/*EOF*/
        -:        -: 6897:/*EOF*/
        -:        -: 6898:/*EOF*/
        -:        -: 6899:/*EOF*/
        -:        -: 6900:/*EOF*/
        -:        -: 6901:/*EOF*/
        -:        -: 6902:/*EOF*/
        -:        -: 6903:/*EOF*/
        -:        -: 6904:/*EOF*/
        -:        -: 6905:/*EOF*/
        -:        -: 6906:/*EOF*/
        -:        -: 6907:/*EOF*/
        -:        -: 6908:/*EOF*/
        -:        -: 6909:/*EOF*/
        -:        -: 6910:/*EOF*/
        -:        -: 6911:/*EOF*/
        -:        -: 6912:/*EOF*/
        -:        -: 6913:/*EOF*/
        -:        -: 6914:/*EOF*/
        -:        -: 6915:/*EOF*/
        -:        -: 6916:/*EOF*/
        -:        -: 6917:/*EOF*/
        -:        -: 6918:/*EOF*/
        -:        -: 6919:/*EOF*/
        -:        -: 6920:/*EOF*/
        -:        -: 6921:/*EOF*/
        -:        -: 6922:/*EOF*/
        -:        -: 6923:/*EOF*/
        -:        -: 6924:/*EOF*/
        -:        -: 6925:/*EOF*/
        -:        -: 6926:/*EOF*/
        -:        -: 6927:/*EOF*/
        -:        -: 6928:/*EOF*/
        -:        -: 6929:/*EOF*/
        -:        -: 6930:/*EOF*/
        -:        -: 6931:/*EOF*/
        -:        -: 6932:/*EOF*/
        -:        -: 6933:/*EOF*/
        -:        -: 6934:/*EOF*/
        -:        -: 6935:/*EOF*/
        -:        -: 6936:/*EOF*/
        -:        -: 6937:/*EOF*/
        -:        -: 6938:/*EOF*/
        -:        -: 6939:/*EOF*/
        -:        -: 6940:/*EOF*/
        -:        -: 6941:/*EOF*/
        -:        -: 6942:/*EOF*/
        -:        -: 6943:/*EOF*/
        -:        -: 6944:/*EOF*/
        -:        -: 6945:/*EOF*/
        -:        -: 6946:/*EOF*/
        -:        -: 6947:/*EOF*/
        -:        -: 6948:/*EOF*/
        -:        -: 6949:/*EOF*/
        -:        -: 6950:/*EOF*/
        -:        -: 6951:/*EOF*/
        -:        -: 6952:/*EOF*/
        -:        -: 6953:/*EOF*/
        -:        -: 6954:/*EOF*/
        -:        -: 6955:/*EOF*/
        -:        -: 6956:/*EOF*/
        -:        -: 6957:/*EOF*/
        -:        -: 6958:/*EOF*/
        -:        -: 6959:/*EOF*/
        -:        -: 6960:/*EOF*/
        -:        -: 6961:/*EOF*/
        -:        -: 6962:/*EOF*/
        -:        -: 6963:/*EOF*/
        -:        -: 6964:/*EOF*/
        -:        -: 6965:/*EOF*/
        -:        -: 6966:/*EOF*/
        -:        -: 6967:/*EOF*/
        -:        -: 6968:/*EOF*/
        -:        -: 6969:/*EOF*/
        -:        -: 6970:/*EOF*/
        -:        -: 6971:/*EOF*/
        -:        -: 6972:/*EOF*/
        -:        -: 6973:/*EOF*/
        -:        -: 6974:/*EOF*/
        -:        -: 6975:/*EOF*/
        -:        -: 6976:/*EOF*/
        -:        -: 6977:/*EOF*/
        -:        -: 6978:/*EOF*/
        -:        -: 6979:/*EOF*/
        -:        -: 6980:/*EOF*/
        -:        -: 6981:/*EOF*/
        -:        -: 6982:/*EOF*/
        -:        -: 6983:/*EOF*/
        -:        -: 6984:/*EOF*/
        -:        -: 6985:/*EOF*/
        -:        -: 6986:/*EOF*/
        -:        -: 6987:/*EOF*/
        -:        -: 6988:/*EOF*/
        -:        -: 6989:/*EOF*/
        -:        -: 6990:/*EOF*/
        -:        -: 6991:/*EOF*/
        -:        -: 6992:/*EOF*/
        -:        -: 6993:/*EOF*/
        -:        -: 6994:/*EOF*/
        -:        -: 6995:/*EOF*/
        -:        -: 6996:/*EOF*/
        -:        -: 6997:/*EOF*/
        -:        -: 6998:/*EOF*/
        -:        -: 6999:/*EOF*/
        -:        -: 7000:/*EOF*/
        -:        -: 7001:/*EOF*/
        -:        -: 7002:/*EOF*/
        -:        -: 7003:/*EOF*/
        -:        -: 7004:/*EOF*/
        -:        -: 7005:/*EOF*/
        -:        -: 7006:/*EOF*/
        -:        -: 7007:/*EOF*/
        -:        -: 7008:/*EOF*/
        -:        -: 7009:/*EOF*/
        -:        -: 7010:/*EOF*/
        -:        -: 7011:/*EOF*/
        -:        -: 7012:/*EOF*/
        -:        -: 7013:/*EOF*/
        -:        -: 7014:/*EOF*/
        -:        -: 7015:/*EOF*/
        -:        -: 7016:/*EOF*/
        -:        -: 7017:/*EOF*/
        -:        -: 7018:/*EOF*/
        -:        -: 7019:/*EOF*/
        -:        -: 7020:/*EOF*/
        -:        -: 7021:/*EOF*/
        -:        -: 7022:/*EOF*/
        -:        -: 7023:/*EOF*/
        -:        -: 7024:/*EOF*/
        -:        -: 7025:/*EOF*/
        -:        -: 7026:/*EOF*/
        -:        -: 7027:/*EOF*/
        -:        -: 7028:/*EOF*/
        -:        -: 7029:/*EOF*/
        -:        -: 7030:/*EOF*/
        -:        -: 7031:/*EOF*/
        -:        -: 7032:/*EOF*/
        -:        -: 7033:/*EOF*/
        -:        -: 7034:/*EOF*/
        -:        -: 7035:/*EOF*/
        -:        -: 7036:/*EOF*/
        -:        -: 7037:/*EOF*/
        -:        -: 7038:/*EOF*/
        -:        -: 7039:/*EOF*/
        -:        -: 7040:/*EOF*/
        -:        -: 7041:/*EOF*/
        -:        -: 7042:/*EOF*/
        -:        -: 7043:/*EOF*/
        -:        -: 7044:/*EOF*/
        -:        -: 7045:/*EOF*/
        -:        -: 7046:/*EOF*/
        -:        -: 7047:/*EOF*/
        -:        -: 7048:/*EOF*/
        -:        -: 7049:/*EOF*/
        -:        -: 7050:/*EOF*/
        -:        -: 7051:/*EOF*/
        -:        -: 7052:/*EOF*/
        -:        -: 7053:/*EOF*/
        -:        -: 7054:/*EOF*/
        -:        -: 7055:/*EOF*/
        -:        -: 7056:/*EOF*/
        -:        -: 7057:/*EOF*/
        -:        -: 7058:/*EOF*/
        -:        -: 7059:/*EOF*/
        -:        -: 7060:/*EOF*/
        -:        -: 7061:/*EOF*/
        -:        -: 7062:/*EOF*/
        -:        -: 7063:/*EOF*/
        -:        -: 7064:/*EOF*/
        -:        -: 7065:/*EOF*/
        -:        -: 7066:/*EOF*/
        -:        -: 7067:/*EOF*/
        -:        -: 7068:/*EOF*/
        -:        -: 7069:/*EOF*/
        -:        -: 7070:/*EOF*/
        -:        -: 7071:/*EOF*/
        -:        -: 7072:/*EOF*/
        -:        -: 7073:/*EOF*/
        -:        -: 7074:/*EOF*/
        -:        -: 7075:/*EOF*/
        -:        -: 7076:/*EOF*/
        -:        -: 7077:/*EOF*/
        -:        -: 7078:/*EOF*/
        -:        -: 7079:/*EOF*/
        -:        -: 7080:/*EOF*/
        -:        -: 7081:/*EOF*/
        -:        -: 7082:/*EOF*/
        -:        -: 7083:/*EOF*/
        -:        -: 7084:/*EOF*/
        -:        -: 7085:/*EOF*/
        -:        -: 7086:/*EOF*/
        -:        -: 7087:/*EOF*/
        -:        -: 7088:/*EOF*/
        -:        -: 7089:/*EOF*/
        -:        -: 7090:/*EOF*/
        -:        -: 7091:/*EOF*/
        -:        -: 7092:/*EOF*/
        -:        -: 7093:/*EOF*/
        -:        -: 7094:/*EOF*/
        -:        -: 7095:/*EOF*/
        -:        -: 7096:/*EOF*/
        -:        -: 7097:/*EOF*/
        -:        -: 7098:/*EOF*/
        -:        -: 7099:/*EOF*/
        -:        -: 7100:/*EOF*/
        -:        -: 7101:/*EOF*/
        -:        -: 7102:/*EOF*/
        -:        -: 7103:/*EOF*/
        -:        -: 7104:/*EOF*/
        -:        -: 7105:/*EOF*/
        -:        -: 7106:/*EOF*/
        -:        -: 7107:/*EOF*/
        -:        -: 7108:/*EOF*/
        -:        -: 7109:/*EOF*/
        -:        -: 7110:/*EOF*/
        -:        -: 7111:/*EOF*/
        -:        -: 7112:/*EOF*/
        -:        -: 7113:/*EOF*/
        -:        -: 7114:/*EOF*/
        -:        -: 7115:/*EOF*/
        -:        -: 7116:/*EOF*/
        -:        -: 7117:/*EOF*/
        -:        -: 7118:/*EOF*/
        -:        -: 7119:/*EOF*/
        -:        -: 7120:/*EOF*/
        -:        -: 7121:/*EOF*/
        -:        -: 7122:/*EOF*/
        -:        -: 7123:/*EOF*/
        -:        -: 7124:/*EOF*/
        -:        -: 7125:/*EOF*/
        -:        -: 7126:/*EOF*/
        -:        -: 7127:/*EOF*/
        -:        -: 7128:/*EOF*/
        -:        -: 7129:/*EOF*/
        -:        -: 7130:/*EOF*/
        -:        -: 7131:/*EOF*/
        -:        -: 7132:/*EOF*/
        -:        -: 7133:/*EOF*/
        -:        -: 7134:/*EOF*/
        -:        -: 7135:/*EOF*/
        -:        -: 7136:/*EOF*/
        -:        -: 7137:/*EOF*/
        -:        -: 7138:/*EOF*/
        -:        -: 7139:/*EOF*/
        -:        -: 7140:/*EOF*/
        -:        -: 7141:/*EOF*/
        -:        -: 7142:/*EOF*/
        -:        -: 7143:/*EOF*/
        -:        -: 7144:/*EOF*/
        -:        -: 7145:/*EOF*/
        -:        -: 7146:/*EOF*/
        -:        -: 7147:/*EOF*/
        -:        -: 7148:/*EOF*/
        -:        -: 7149:/*EOF*/
        -:        -: 7150:/*EOF*/
        -:        -: 7151:/*EOF*/
        -:        -: 7152:/*EOF*/
        -:        -: 7153:/*EOF*/
        -:        -: 7154:/*EOF*/
        -:        -: 7155:/*EOF*/
        -:        -: 7156:/*EOF*/
        -:        -: 7157:/*EOF*/
        -:        -: 7158:/*EOF*/
        -:        -: 7159:/*EOF*/
        -:        -: 7160:/*EOF*/
        -:        -: 7161:/*EOF*/
        -:        -: 7162:/*EOF*/
        -:        -: 7163:/*EOF*/
        -:        -: 7164:/*EOF*/
        -:        -: 7165:/*EOF*/
        -:        -: 7166:/*EOF*/
        -:        -: 7167:/*EOF*/
        -:        -: 7168:/*EOF*/
        -:        -: 7169:/*EOF*/
        -:        -: 7170:/*EOF*/
        -:        -: 7171:/*EOF*/
        -:        -: 7172:/*EOF*/
        -:        -: 7173:/*EOF*/
        -:        -: 7174:/*EOF*/
        -:        -: 7175:/*EOF*/
        -:        -: 7176:/*EOF*/
        -:        -: 7177:/*EOF*/
        -:        -: 7178:/*EOF*/
        -:        -: 7179:/*EOF*/
        -:        -: 7180:/*EOF*/
        -:        -: 7181:/*EOF*/
        -:        -: 7182:/*EOF*/
        -:        -: 7183:/*EOF*/
        -:        -: 7184:/*EOF*/
        -:        -: 7185:/*EOF*/
        -:        -: 7186:/*EOF*/
        -:        -: 7187:/*EOF*/
        -:        -: 7188:/*EOF*/
        -:        -: 7189:/*EOF*/
        -:        -: 7190:/*EOF*/
        -:        -: 7191:/*EOF*/
        -:        -: 7192:/*EOF*/
        -:        -: 7193:/*EOF*/
        -:        -: 7194:/*EOF*/
        -:        -: 7195:/*EOF*/
        -:        -: 7196:/*EOF*/
        -:        -: 7197:/*EOF*/
        -:        -: 7198:/*EOF*/
        -:        -: 7199:/*EOF*/
        -:        -: 7200:/*EOF*/
        -:        -: 7201:/*EOF*/
        -:        -: 7202:/*EOF*/
        -:        -: 7203:/*EOF*/
        -:        -: 7204:/*EOF*/
        -:        -: 7205:/*EOF*/
        -:        -: 7206:/*EOF*/
        -:        -: 7207:/*EOF*/
        -:        -: 7208:/*EOF*/
        -:        -: 7209:/*EOF*/
        -:        -: 7210:/*EOF*/
        -:        -: 7211:/*EOF*/
        -:        -: 7212:/*EOF*/
        -:        -: 7213:/*EOF*/
        -:        -: 7214:/*EOF*/
        -:        -: 7215:/*EOF*/
        -:        -: 7216:/*EOF*/
        -:        -: 7217:/*EOF*/
        -:        -: 7218:/*EOF*/
        -:        -: 7219:/*EOF*/
        -:        -: 7220:/*EOF*/
        -:        -: 7221:/*EOF*/
        -:        -: 7222:/*EOF*/
        -:        -: 7223:/*EOF*/
        -:        -: 7224:/*EOF*/
        -:        -: 7225:/*EOF*/
        -:        -: 7226:/*EOF*/
        -:        -: 7227:/*EOF*/
        -:        -: 7228:/*EOF*/
        -:        -: 7229:/*EOF*/
        -:        -: 7230:/*EOF*/
        -:        -: 7231:/*EOF*/
        -:        -: 7232:/*EOF*/
        -:        -: 7233:/*EOF*/
        -:        -: 7234:/*EOF*/
        -:        -: 7235:/*EOF*/
        -:        -: 7236:/*EOF*/
        -:        -: 7237:/*EOF*/
        -:        -: 7238:/*EOF*/
        -:        -: 7239:/*EOF*/
        -:        -: 7240:/*EOF*/
        -:        -: 7241:/*EOF*/
        -:        -: 7242:/*EOF*/
        -:        -: 7243:/*EOF*/
        -:        -: 7244:/*EOF*/
        -:        -: 7245:/*EOF*/
        -:        -: 7246:/*EOF*/
        -:        -: 7247:/*EOF*/
        -:        -: 7248:/*EOF*/
        -:        -: 7249:/*EOF*/
        -:        -: 7250:/*EOF*/
        -:        -: 7251:/*EOF*/
        -:        -: 7252:/*EOF*/
        -:        -: 7253:/*EOF*/
        -:        -: 7254:/*EOF*/
        -:        -: 7255:/*EOF*/
        -:        -: 7256:/*EOF*/
        -:        -: 7257:/*EOF*/
        -:        -: 7258:/*EOF*/
        -:        -: 7259:/*EOF*/
        -:        -: 7260:/*EOF*/
        -:        -: 7261:/*EOF*/
        -:        -: 7262:/*EOF*/
        -:        -: 7263:/*EOF*/
        -:        -: 7264:/*EOF*/
        -:        -: 7265:/*EOF*/
        -:        -: 7266:/*EOF*/
        -:        -: 7267:/*EOF*/
        -:        -: 7268:/*EOF*/
        -:        -: 7269:/*EOF*/
        -:        -: 7270:/*EOF*/
        -:        -: 7271:/*EOF*/
        -:        -: 7272:/*EOF*/
        -:        -: 7273:/*EOF*/
        -:        -: 7274:/*EOF*/
        -:        -: 7275:/*EOF*/
        -:        -: 7276:/*EOF*/
        -:        -: 7277:/*EOF*/
        -:        -: 7278:/*EOF*/
        -:        -: 7279:/*EOF*/
        -:        -: 7280:/*EOF*/
        -:        -: 7281:/*EOF*/
        -:        -: 7282:/*EOF*/
        -:        -: 7283:/*EOF*/
        -:        -: 7284:/*EOF*/
        -:        -: 7285:/*EOF*/
        -:        -: 7286:/*EOF*/
        -:        -: 7287:/*EOF*/
        -:        -: 7288:/*EOF*/
        -:        -: 7289:/*EOF*/
        -:        -: 7290:/*EOF*/
        -:        -: 7291:/*EOF*/
        -:        -: 7292:/*EOF*/
        -:        -: 7293:/*EOF*/
        -:        -: 7294:/*EOF*/
        -:        -: 7295:/*EOF*/
        -:        -: 7296:/*EOF*/
        -:        -: 7297:/*EOF*/
        -:        -: 7298:/*EOF*/
        -:        -: 7299:/*EOF*/
        -:        -: 7300:/*EOF*/
        -:        -: 7301:/*EOF*/
        -:        -: 7302:/*EOF*/
        -:        -: 7303:/*EOF*/
        -:        -: 7304:/*EOF*/
        -:        -: 7305:/*EOF*/
        -:        -: 7306:/*EOF*/
        -:        -: 7307:/*EOF*/
        -:        -: 7308:/*EOF*/
        -:        -: 7309:/*EOF*/
        -:        -: 7310:/*EOF*/
        -:        -: 7311:/*EOF*/
        -:        -: 7312:/*EOF*/
        -:        -: 7313:/*EOF*/
        -:        -: 7314:/*EOF*/
        -:        -: 7315:/*EOF*/
        -:        -: 7316:/*EOF*/
        -:        -: 7317:/*EOF*/
        -:        -: 7318:/*EOF*/
        -:        -: 7319:/*EOF*/
        -:        -: 7320:/*EOF*/
        -:        -: 7321:/*EOF*/
        -:        -: 7322:/*EOF*/
        -:        -: 7323:/*EOF*/
        -:        -: 7324:/*EOF*/
        -:        -: 7325:/*EOF*/
        -:        -: 7326:/*EOF*/
        -:        -: 7327:/*EOF*/
        -:        -: 7328:/*EOF*/
        -:        -: 7329:/*EOF*/
        -:        -: 7330:/*EOF*/
        -:        -: 7331:/*EOF*/
        -:        -: 7332:/*EOF*/
        -:        -: 7333:/*EOF*/
        -:        -: 7334:/*EOF*/
        -:        -: 7335:/*EOF*/
        -:        -: 7336:/*EOF*/
        -:        -: 7337:/*EOF*/
        -:        -: 7338:/*EOF*/
        -:        -: 7339:/*EOF*/
        -:        -: 7340:/*EOF*/
        -:        -: 7341:/*EOF*/
        -:        -: 7342:/*EOF*/
        -:        -: 7343:/*EOF*/
        -:        -: 7344:/*EOF*/
        -:        -: 7345:/*EOF*/
        -:        -: 7346:/*EOF*/
        -:        -: 7347:/*EOF*/
        -:        -: 7348:/*EOF*/
        -:        -: 7349:/*EOF*/
        -:        -: 7350:/*EOF*/
        -:        -: 7351:/*EOF*/
        -:        -: 7352:/*EOF*/
        -:        -: 7353:/*EOF*/
        -:        -: 7354:/*EOF*/
        -:        -: 7355:/*EOF*/
        -:        -: 7356:/*EOF*/
        -:        -: 7357:/*EOF*/
        -:        -: 7358:/*EOF*/
        -:        -: 7359:/*EOF*/
        -:        -: 7360:/*EOF*/
        -:        -: 7361:/*EOF*/
        -:        -: 7362:/*EOF*/
        -:        -: 7363:/*EOF*/
        -:        -: 7364:/*EOF*/
        -:        -: 7365:/*EOF*/
        -:        -: 7366:/*EOF*/
        -:        -: 7367:/*EOF*/
        -:        -: 7368:/*EOF*/
        -:        -: 7369:/*EOF*/
        -:        -: 7370:/*EOF*/
        -:        -: 7371:/*EOF*/
        -:        -: 7372:/*EOF*/
        -:        -: 7373:/*EOF*/
        -:        -: 7374:/*EOF*/
        -:        -: 7375:/*EOF*/
        -:        -: 7376:/*EOF*/
        -:        -: 7377:/*EOF*/
        -:        -: 7378:/*EOF*/
        -:        -: 7379:/*EOF*/
        -:        -: 7380:/*EOF*/
        -:        -: 7381:/*EOF*/
        -:        -: 7382:/*EOF*/
        -:        -: 7383:/*EOF*/
        -:        -: 7384:/*EOF*/
        -:        -: 7385:/*EOF*/
        -:        -: 7386:/*EOF*/
        -:        -: 7387:/*EOF*/
        -:        -: 7388:/*EOF*/
        -:        -: 7389:/*EOF*/
        -:        -: 7390:/*EOF*/
        -:        -: 7391:/*EOF*/
        -:        -: 7392:/*EOF*/
        -:        -: 7393:/*EOF*/
        -:        -: 7394:/*EOF*/
        -:        -: 7395:/*EOF*/
        -:        -: 7396:/*EOF*/
        -:        -: 7397:/*EOF*/
        -:        -: 7398:/*EOF*/
        -:        -: 7399:/*EOF*/
        -:        -: 7400:/*EOF*/
        -:        -: 7401:/*EOF*/
        -:        -: 7402:/*EOF*/
        -:        -: 7403:/*EOF*/
        -:        -: 7404:/*EOF*/
        -:        -: 7405:/*EOF*/
        -:        -: 7406:/*EOF*/
        -:        -: 7407:/*EOF*/
        -:        -: 7408:/*EOF*/
        -:        -: 7409:/*EOF*/
        -:        -: 7410:/*EOF*/
        -:        -: 7411:/*EOF*/
        -:        -: 7412:/*EOF*/
        -:        -: 7413:/*EOF*/
        -:        -: 7414:/*EOF*/
        -:        -: 7415:/*EOF*/
        -:        -: 7416:/*EOF*/
        -:        -: 7417:/*EOF*/
        -:        -: 7418:/*EOF*/
        -:        -: 7419:/*EOF*/
        -:        -: 7420:/*EOF*/
        -:        -: 7421:/*EOF*/
        -:        -: 7422:/*EOF*/
        -:        -: 7423:/*EOF*/
        -:        -: 7424:/*EOF*/
        -:        -: 7425:/*EOF*/
        -:        -: 7426:/*EOF*/
        -:        -: 7427:/*EOF*/
        -:        -: 7428:/*EOF*/
        -:        -: 7429:/*EOF*/
        -:        -: 7430:/*EOF*/
        -:        -: 7431:/*EOF*/
        -:        -: 7432:/*EOF*/
        -:        -: 7433:/*EOF*/
        -:        -: 7434:/*EOF*/
        -:        -: 7435:/*EOF*/
        -:        -: 7436:/*EOF*/
        -:        -: 7437:/*EOF*/
        -:        -: 7438:/*EOF*/
        -:        -: 7439:/*EOF*/
        -:        -: 7440:/*EOF*/
        -:        -: 7441:/*EOF*/
        -:        -: 7442:/*EOF*/
        -:        -: 7443:/*EOF*/
        -:        -: 7444:/*EOF*/
        -:        -: 7445:/*EOF*/
        -:        -: 7446:/*EOF*/
        -:        -: 7447:/*EOF*/
        -:        -: 7448:/*EOF*/
        -:        -: 7449:/*EOF*/
        -:        -: 7450:/*EOF*/
        -:        -: 7451:/*EOF*/
        -:        -: 7452:/*EOF*/
        -:        -: 7453:/*EOF*/
        -:        -: 7454:/*EOF*/
        -:        -: 7455:/*EOF*/
        -:        -: 7456:/*EOF*/
        -:        -: 7457:/*EOF*/
        -:        -: 7458:/*EOF*/
        -:        -: 7459:/*EOF*/
        -:        -: 7460:/*EOF*/
        -:        -: 7461:/*EOF*/
        -:        -: 7462:/*EOF*/
        -:        -: 7463:/*EOF*/
        -:        -: 7464:/*EOF*/
        -:        -: 7465:/*EOF*/
        -:        -: 7466:/*EOF*/
        -:        -: 7467:/*EOF*/
        -:        -: 7468:/*EOF*/
        -:        -: 7469:/*EOF*/
        -:        -: 7470:/*EOF*/
        -:        -: 7471:/*EOF*/
        -:        -: 7472:/*EOF*/
        -:        -: 7473:/*EOF*/
        -:        -: 7474:/*EOF*/
        -:        -: 7475:/*EOF*/
        -:        -: 7476:/*EOF*/
        -:        -: 7477:/*EOF*/
        -:        -: 7478:/*EOF*/
        -:        -: 7479:/*EOF*/
        -:        -: 7480:/*EOF*/
        -:        -: 7481:/*EOF*/
        -:        -: 7482:/*EOF*/
        -:        -: 7483:/*EOF*/
        -:        -: 7484:/*EOF*/
        -:        -: 7485:/*EOF*/
        -:        -: 7486:/*EOF*/
        -:        -: 7487:/*EOF*/
        -:        -: 7488:/*EOF*/
        -:        -: 7489:/*EOF*/
        -:        -: 7490:/*EOF*/
        -:        -: 7491:/*EOF*/
        -:        -: 7492:/*EOF*/
        -:        -: 7493:/*EOF*/
        -:        -: 7494:/*EOF*/
        -:        -: 7495:/*EOF*/
        -:        -: 7496:/*EOF*/
        -:        -: 7497:/*EOF*/
        -:        -: 7498:/*EOF*/
        -:        -: 7499:/*EOF*/
        -:        -: 7500:/*EOF*/
        -:        -: 7501:/*EOF*/
        -:        -: 7502:/*EOF*/
        -:        -: 7503:/*EOF*/
        -:        -: 7504:/*EOF*/
        -:        -: 7505:/*EOF*/
        -:        -: 7506:/*EOF*/
        -:        -: 7507:/*EOF*/
        -:        -: 7508:/*EOF*/
        -:        -: 7509:/*EOF*/
        -:        -: 7510:/*EOF*/
        -:        -: 7511:/*EOF*/
        -:        -: 7512:/*EOF*/
        -:        -: 7513:/*EOF*/
        -:        -: 7514:/*EOF*/
        -:        -: 7515:/*EOF*/
        -:        -: 7516:/*EOF*/
        -:        -: 7517:/*EOF*/
        -:        -: 7518:/*EOF*/
        -:        -: 7519:/*EOF*/
        -:        -: 7520:/*EOF*/
        -:        -: 7521:/*EOF*/
        -:        -: 7522:/*EOF*/
        -:        -: 7523:/*EOF*/
        -:        -: 7524:/*EOF*/
        -:        -: 7525:/*EOF*/
        -:        -: 7526:/*EOF*/
        -:        -: 7527:/*EOF*/
        -:        -: 7528:/*EOF*/
        -:        -: 7529:/*EOF*/
        -:        -: 7530:/*EOF*/
        -:        -: 7531:/*EOF*/
        -:        -: 7532:/*EOF*/
        -:        -: 7533:/*EOF*/
        -:        -: 7534:/*EOF*/
        -:        -: 7535:/*EOF*/
        -:        -: 7536:/*EOF*/
        -:        -: 7537:/*EOF*/
        -:        -: 7538:/*EOF*/
        -:        -: 7539:/*EOF*/
        -:        -: 7540:/*EOF*/
        -:        -: 7541:/*EOF*/
        -:        -: 7542:/*EOF*/
        -:        -: 7543:/*EOF*/
        -:        -: 7544:/*EOF*/
        -:        -: 7545:/*EOF*/
        -:        -: 7546:/*EOF*/
        -:        -: 7547:/*EOF*/
        -:        -: 7548:/*EOF*/
        -:        -: 7549:/*EOF*/
        -:        -: 7550:/*EOF*/
        -:        -: 7551:/*EOF*/
        -:        -: 7552:/*EOF*/
        -:        -: 7553:/*EOF*/
        -:        -: 7554:/*EOF*/
        -:        -: 7555:/*EOF*/
        -:        -: 7556:/*EOF*/
        -:        -: 7557:/*EOF*/
        -:        -: 7558:/*EOF*/
        -:        -: 7559:/*EOF*/
        -:        -: 7560:/*EOF*/
        -:        -: 7561:/*EOF*/
        -:        -: 7562:/*EOF*/
        -:        -: 7563:/*EOF*/
        -:        -: 7564:/*EOF*/
        -:        -: 7565:/*EOF*/
        -:        -: 7566:/*EOF*/
        -:        -: 7567:/*EOF*/
        -:        -: 7568:/*EOF*/
        -:        -: 7569:/*EOF*/
        -:        -: 7570:/*EOF*/
        -:        -: 7571:/*EOF*/
        -:        -: 7572:/*EOF*/
        -:        -: 7573:/*EOF*/
        -:        -: 7574:/*EOF*/
        -:        -: 7575:/*EOF*/
        -:        -: 7576:/*EOF*/
        -:        -: 7577:/*EOF*/
        -:        -: 7578:/*EOF*/
        -:        -: 7579:/*EOF*/
        -:        -: 7580:/*EOF*/
        -:        -: 7581:/*EOF*/
        -:        -: 7582:/*EOF*/
        -:        -: 7583:/*EOF*/
        -:        -: 7584:/*EOF*/
        -:        -: 7585:/*EOF*/
        -:        -: 7586:/*EOF*/
        -:        -: 7587:/*EOF*/
        -:        -: 7588:/*EOF*/
        -:        -: 7589:/*EOF*/
        -:        -: 7590:/*EOF*/
        -:        -: 7591:/*EOF*/
        -:        -: 7592:/*EOF*/
        -:        -: 7593:/*EOF*/
        -:        -: 7594:/*EOF*/
        -:        -: 7595:/*EOF*/
        -:        -: 7596:/*EOF*/
        -:        -: 7597:/*EOF*/
        -:        -: 7598:/*EOF*/
        -:        -: 7599:/*EOF*/
        -:        -: 7600:/*EOF*/
        -:        -: 7601:/*EOF*/
        -:        -: 7602:/*EOF*/
        -:        -: 7603:/*EOF*/
        -:        -: 7604:/*EOF*/
        -:        -: 7605:/*EOF*/
        -:        -: 7606:/*EOF*/
        -:        -: 7607:/*EOF*/
        -:        -: 7608:/*EOF*/
        -:        -: 7609:/*EOF*/
        -:        -: 7610:/*EOF*/
        -:        -: 7611:/*EOF*/
        -:        -: 7612:/*EOF*/
        -:        -: 7613:/*EOF*/
        -:        -: 7614:/*EOF*/
        -:        -: 7615:/*EOF*/
        -:        -: 7616:/*EOF*/
        -:        -: 7617:/*EOF*/
        -:        -: 7618:/*EOF*/
        -:        -: 7619:/*EOF*/
        -:        -: 7620:/*EOF*/
        -:        -: 7621:/*EOF*/
        -:        -: 7622:/*EOF*/
        -:        -: 7623:/*EOF*/
        -:        -: 7624:/*EOF*/
        -:        -: 7625:/*EOF*/
        -:        -: 7626:/*EOF*/
        -:        -: 7627:/*EOF*/
        -:        -: 7628:/*EOF*/
        -:        -: 7629:/*EOF*/
        -:        -: 7630:/*EOF*/
        -:        -: 7631:/*EOF*/
        -:        -: 7632:/*EOF*/
        -:        -: 7633:/*EOF*/
        -:        -: 7634:/*EOF*/
        -:        -: 7635:/*EOF*/
        -:        -: 7636:/*EOF*/
        -:        -: 7637:/*EOF*/
        -:        -: 7638:/*EOF*/
        -:        -: 7639:/*EOF*/
        -:        -: 7640:/*EOF*/
        -:        -: 7641:/*EOF*/
        -:        -: 7642:/*EOF*/
        -:        -: 7643:/*EOF*/
        -:        -: 7644:/*EOF*/
        -:        -: 7645:/*EOF*/
        -:        -: 7646:/*EOF*/
        -:        -: 7647:/*EOF*/
        -:        -: 7648:/*EOF*/
        -:        -: 7649:/*EOF*/
        -:        -: 7650:/*EOF*/
        -:        -: 7651:/*EOF*/
        -:        -: 7652:/*EOF*/
        -:        -: 7653:/*EOF*/
        -:        -: 7654:/*EOF*/
        -:        -: 7655:/*EOF*/
        -:        -: 7656:/*EOF*/
        -:        -: 7657:/*EOF*/
        -:        -: 7658:/*EOF*/
        -:        -: 7659:/*EOF*/
        -:        -: 7660:/*EOF*/
        -:        -: 7661:/*EOF*/
        -:        -: 7662:/*EOF*/
        -:        -: 7663:/*EOF*/
        -:        -: 7664:/*EOF*/
        -:        -: 7665:/*EOF*/
        -:        -: 7666:/*EOF*/
        -:        -: 7667:/*EOF*/
        -:        -: 7668:/*EOF*/
        -:        -: 7669:/*EOF*/
        -:        -: 7670:/*EOF*/
        -:        -: 7671:/*EOF*/
        -:        -: 7672:/*EOF*/
        -:        -: 7673:/*EOF*/
        -:        -: 7674:/*EOF*/
        -:        -: 7675:/*EOF*/
        -:        -: 7676:/*EOF*/
        -:        -: 7677:/*EOF*/
        -:        -: 7678:/*EOF*/
        -:        -: 7679:/*EOF*/
        -:        -: 7680:/*EOF*/
        -:        -: 7681:/*EOF*/
        -:        -: 7682:/*EOF*/
        -:        -: 7683:/*EOF*/
        -:        -: 7684:/*EOF*/
        -:        -: 7685:/*EOF*/
        -:        -: 7686:/*EOF*/
        -:        -: 7687:/*EOF*/
        -:        -: 7688:/*EOF*/
        -:        -: 7689:/*EOF*/
        -:        -: 7690:/*EOF*/
        -:        -: 7691:/*EOF*/
        -:        -: 7692:/*EOF*/
        -:        -: 7693:/*EOF*/
        -:        -: 7694:/*EOF*/
        -:        -: 7695:/*EOF*/
        -:        -: 7696:/*EOF*/
        -:        -: 7697:/*EOF*/
        -:        -: 7698:/*EOF*/
        -:        -: 7699:/*EOF*/
        -:        -: 7700:/*EOF*/
        -:        -: 7701:/*EOF*/
        -:        -: 7702:/*EOF*/
        -:        -: 7703:/*EOF*/
        -:        -: 7704:/*EOF*/
        -:        -: 7705:/*EOF*/
        -:        -: 7706:/*EOF*/
        -:        -: 7707:/*EOF*/
        -:        -: 7708:/*EOF*/
        -:        -: 7709:/*EOF*/
        -:        -: 7710:/*EOF*/
        -:        -: 7711:/*EOF*/
        -:        -: 7712:/*EOF*/
        -:        -: 7713:/*EOF*/
        -:        -: 7714:/*EOF*/
        -:        -: 7715:/*EOF*/
        -:        -: 7716:/*EOF*/
        -:        -: 7717:/*EOF*/
        -:        -: 7718:/*EOF*/
        -:        -: 7719:/*EOF*/
        -:        -: 7720:/*EOF*/
        -:        -: 7721:/*EOF*/
        -:        -: 7722:/*EOF*/
        -:        -: 7723:/*EOF*/
        -:        -: 7724:/*EOF*/
        -:        -: 7725:/*EOF*/
        -:        -: 7726:/*EOF*/
        -:        -: 7727:/*EOF*/
        -:        -: 7728:/*EOF*/
        -:        -: 7729:/*EOF*/
        -:        -: 7730:/*EOF*/
        -:        -: 7731:/*EOF*/
        -:        -: 7732:/*EOF*/
        -:        -: 7733:/*EOF*/
        -:        -: 7734:/*EOF*/
        -:        -: 7735:/*EOF*/
        -:        -: 7736:/*EOF*/
        -:        -: 7737:/*EOF*/
        -:        -: 7738:/*EOF*/
        -:        -: 7739:/*EOF*/
        -:        -: 7740:/*EOF*/
        -:        -: 7741:/*EOF*/
        -:        -: 7742:/*EOF*/
        -:        -: 7743:/*EOF*/
        -:        -: 7744:/*EOF*/
        -:        -: 7745:/*EOF*/
        -:        -: 7746:/*EOF*/
        -:        -: 7747:/*EOF*/
        -:        -: 7748:/*EOF*/
        -:        -: 7749:/*EOF*/
        -:        -: 7750:/*EOF*/
        -:        -: 7751:/*EOF*/
        -:        -: 7752:/*EOF*/
        -:        -: 7753:/*EOF*/
        -:        -: 7754:/*EOF*/
        -:        -: 7755:/*EOF*/
        -:        -: 7756:/*EOF*/
        -:        -: 7757:/*EOF*/
        -:        -: 7758:/*EOF*/
        -:        -: 7759:/*EOF*/
        -:        -: 7760:/*EOF*/
        -:        -: 7761:/*EOF*/
        -:        -: 7762:/*EOF*/
        -:        -: 7763:/*EOF*/
        -:        -: 7764:/*EOF*/
        -:        -: 7765:/*EOF*/
        -:        -: 7766:/*EOF*/
        -:        -: 7767:/*EOF*/
        -:        -: 7768:/*EOF*/
        -:        -: 7769:/*EOF*/
        -:        -: 7770:/*EOF*/
        -:        -: 7771:/*EOF*/
        -:        -: 7772:/*EOF*/
        -:        -: 7773:/*EOF*/
        -:        -: 7774:/*EOF*/
        -:        -: 7775:/*EOF*/
        -:        -: 7776:/*EOF*/
        -:        -: 7777:/*EOF*/
        -:        -: 7778:/*EOF*/
        -:        -: 7779:/*EOF*/
        -:        -: 7780:/*EOF*/
        -:        -: 7781:/*EOF*/
        -:        -: 7782:/*EOF*/
        -:        -: 7783:/*EOF*/
        -:        -: 7784:/*EOF*/
        -:        -: 7785:/*EOF*/
        -:        -: 7786:/*EOF*/
        -:        -: 7787:/*EOF*/
        -:        -: 7788:/*EOF*/
        -:        -: 7789:/*EOF*/
        -:        -: 7790:/*EOF*/
        -:        -: 7791:/*EOF*/
        -:        -: 7792:/*EOF*/
        -:        -: 7793:/*EOF*/
        -:        -: 7794:/*EOF*/
        -:        -: 7795:/*EOF*/
        -:        -: 7796:/*EOF*/
        -:        -: 7797:/*EOF*/
        -:        -: 7798:/*EOF*/
        -:        -: 7799:/*EOF*/
        -:        -: 7800:/*EOF*/
        -:        -: 7801:/*EOF*/
        -:        -: 7802:/*EOF*/
        -:        -: 7803:/*EOF*/
        -:        -: 7804:/*EOF*/
        -:        -: 7805:/*EOF*/
        -:        -: 7806:/*EOF*/
        -:        -: 7807:/*EOF*/
        -:        -: 7808:/*EOF*/
        -:        -: 7809:/*EOF*/
        -:        -: 7810:/*EOF*/
        -:        -: 7811:/*EOF*/
        -:        -: 7812:/*EOF*/
        -:        -: 7813:/*EOF*/
        -:        -: 7814:/*EOF*/
        -:        -: 7815:/*EOF*/
        -:        -: 7816:/*EOF*/
        -:        -: 7817:/*EOF*/
        -:        -: 7818:/*EOF*/
        -:        -: 7819:/*EOF*/
        -:        -: 7820:/*EOF*/
        -:        -: 7821:/*EOF*/
        -:        -: 7822:/*EOF*/
        -:        -: 7823:/*EOF*/
        -:        -: 7824:/*EOF*/
        -:        -: 7825:/*EOF*/
        -:        -: 7826:/*EOF*/
        -:        -: 7827:/*EOF*/
        -:        -: 7828:/*EOF*/
        -:        -: 7829:/*EOF*/
        -:        -: 7830:/*EOF*/
        -:        -: 7831:/*EOF*/
        -:        -: 7832:/*EOF*/
        -:        -: 7833:/*EOF*/
        -:        -: 7834:/*EOF*/
        -:        -: 7835:/*EOF*/
        -:        -: 7836:/*EOF*/
        -:        -: 7837:/*EOF*/
        -:        -: 7838:/*EOF*/
        -:        -: 7839:/*EOF*/
        -:        -: 7840:/*EOF*/
        -:        -: 7841:/*EOF*/
        -:        -: 7842:/*EOF*/
        -:        -: 7843:/*EOF*/
        -:        -: 7844:/*EOF*/
        -:        -: 7845:/*EOF*/
        -:        -: 7846:/*EOF*/
        -:        -: 7847:/*EOF*/
        -:        -: 7848:/*EOF*/
        -:        -: 7849:/*EOF*/
        -:        -: 7850:/*EOF*/
        -:        -: 7851:/*EOF*/
        -:        -: 7852:/*EOF*/
        -:        -: 7853:/*EOF*/
        -:        -: 7854:/*EOF*/
        -:        -: 7855:/*EOF*/
        -:        -: 7856:/*EOF*/
        -:        -: 7857:/*EOF*/
        -:        -: 7858:/*EOF*/
        -:        -: 7859:/*EOF*/
        -:        -: 7860:/*EOF*/
        -:        -: 7861:/*EOF*/
        -:        -: 7862:/*EOF*/
        -:        -: 7863:/*EOF*/
        -:        -: 7864:/*EOF*/
        -:        -: 7865:/*EOF*/
        -:        -: 7866:/*EOF*/
        -:        -: 7867:/*EOF*/
        -:        -: 7868:/*EOF*/
        -:        -: 7869:/*EOF*/
        -:        -: 7870:/*EOF*/
        -:        -: 7871:/*EOF*/
        -:        -: 7872:/*EOF*/
        -:        -: 7873:/*EOF*/
        -:        -: 7874:/*EOF*/
        -:        -: 7875:/*EOF*/
        -:        -: 7876:/*EOF*/
        -:        -: 7877:/*EOF*/
        -:        -: 7878:/*EOF*/
        -:        -: 7879:/*EOF*/
        -:        -: 7880:/*EOF*/
        -:        -: 7881:/*EOF*/
        -:        -: 7882:/*EOF*/
        -:        -: 7883:/*EOF*/
        -:        -: 7884:/*EOF*/
        -:        -: 7885:/*EOF*/
        -:        -: 7886:/*EOF*/
        -:        -: 7887:/*EOF*/
        -:        -: 7888:/*EOF*/
        -:        -: 7889:/*EOF*/
        -:        -: 7890:/*EOF*/
        -:        -: 7891:/*EOF*/
        -:        -: 7892:/*EOF*/
        -:        -: 7893:/*EOF*/
        -:        -: 7894:/*EOF*/
        -:        -: 7895:/*EOF*/
        -:        -: 7896:/*EOF*/
        -:        -: 7897:/*EOF*/
        -:        -: 7898:/*EOF*/
        -:        -: 7899:/*EOF*/
        -:        -: 7900:/*EOF*/
        -:        -: 7901:/*EOF*/
        -:        -: 7902:/*EOF*/
        -:        -: 7903:/*EOF*/
        -:        -: 7904:/*EOF*/
        -:        -: 7905:/*EOF*/
        -:        -: 7906:/*EOF*/
        -:        -: 7907:/*EOF*/
        -:        -: 7908:/*EOF*/
        -:        -: 7909:/*EOF*/
        -:        -: 7910:/*EOF*/
        -:        -: 7911:/*EOF*/
        -:        -: 7912:/*EOF*/
        -:        -: 7913:/*EOF*/
        -:        -: 7914:/*EOF*/
        -:        -: 7915:/*EOF*/
        -:        -: 7916:/*EOF*/
        -:        -: 7917:/*EOF*/
        -:        -: 7918:/*EOF*/
        -:        -: 7919:/*EOF*/
        -:        -: 7920:/*EOF*/
        -:        -: 7921:/*EOF*/
        -:        -: 7922:/*EOF*/
        -:        -: 7923:/*EOF*/
        -:        -: 7924:/*EOF*/
        -:        -: 7925:/*EOF*/
        -:        -: 7926:/*EOF*/
        -:        -: 7927:/*EOF*/
        -:        -: 7928:/*EOF*/
        -:        -: 7929:/*EOF*/
        -:        -: 7930:/*EOF*/
        -:        -: 7931:/*EOF*/
        -:        -: 7932:/*EOF*/
        -:        -: 7933:/*EOF*/
        -:        -: 7934:/*EOF*/
        -:        -: 7935:/*EOF*/
        -:        -: 7936:/*EOF*/
        -:        -: 7937:/*EOF*/
        -:        -: 7938:/*EOF*/
        -:        -: 7939:/*EOF*/
        -:        -: 7940:/*EOF*/
        -:        -: 7941:/*EOF*/
        -:        -: 7942:/*EOF*/
        -:        -: 7943:/*EOF*/
        -:        -: 7944:/*EOF*/
        -:        -: 7945:/*EOF*/
        -:        -: 7946:/*EOF*/
        -:        -: 7947:/*EOF*/
        -:        -: 7948:/*EOF*/
        -:        -: 7949:/*EOF*/
        -:        -: 7950:/*EOF*/
        -:        -: 7951:/*EOF*/
        -:        -: 7952:/*EOF*/
        -:        -: 7953:/*EOF*/
        -:        -: 7954:/*EOF*/
        -:        -: 7955:/*EOF*/
        -:        -: 7956:/*EOF*/
        -:        -: 7957:/*EOF*/
        -:        -: 7958:/*EOF*/
        -:        -: 7959:/*EOF*/
        -:        -: 7960:/*EOF*/
        -:        -: 7961:/*EOF*/
        -:        -: 7962:/*EOF*/
        -:        -: 7963:/*EOF*/
        -:        -: 7964:/*EOF*/
        -:        -: 7965:/*EOF*/
        -:        -: 7966:/*EOF*/
        -:        -: 7967:/*EOF*/
        -:        -: 7968:/*EOF*/
        -:        -: 7969:/*EOF*/
        -:        -: 7970:/*EOF*/
        -:        -: 7971:/*EOF*/
        -:        -: 7972:/*EOF*/
        -:        -: 7973:/*EOF*/
        -:        -: 7974:/*EOF*/
        -:        -: 7975:/*EOF*/
        -:        -: 7976:/*EOF*/
        -:        -: 7977:/*EOF*/
        -:        -: 7978:/*EOF*/
        -:        -: 7979:/*EOF*/
        -:        -: 7980:/*EOF*/
        -:        -: 7981:/*EOF*/
        -:        -: 7982:/*EOF*/
        -:        -: 7983:/*EOF*/
        -:        -: 7984:/*EOF*/
        -:        -: 7985:/*EOF*/
        -:        -: 7986:/*EOF*/
        -:        -: 7987:/*EOF*/
        -:        -: 7988:/*EOF*/
        -:        -: 7989:/*EOF*/
        -:        -: 7990:/*EOF*/
        -:        -: 7991:/*EOF*/
        -:        -: 7992:/*EOF*/
        -:        -: 7993:/*EOF*/
        -:        -: 7994:/*EOF*/
        -:        -: 7995:/*EOF*/
        -:        -: 7996:/*EOF*/
        -:        -: 7997:/*EOF*/
        -:        -: 7998:/*EOF*/
        -:        -: 7999:/*EOF*/
        -:        -: 8000:/*EOF*/
        -:        -: 8001:/*EOF*/
        -:        -: 8002:/*EOF*/
        -:        -: 8003:/*EOF*/
        -:        -: 8004:/*EOF*/
        -:        -: 8005:/*EOF*/
        -:        -: 8006:/*EOF*/
        -:        -: 8007:/*EOF*/
        -:        -: 8008:/*EOF*/
        -:        -: 8009:/*EOF*/
        -:        -: 8010:/*EOF*/
        -:        -: 8011:/*EOF*/
        -:        -: 8012:/*EOF*/
        -:        -: 8013:/*EOF*/
        -:        -: 8014:/*EOF*/
        -:        -: 8015:/*EOF*/
        -:        -: 8016:/*EOF*/
        -:        -: 8017:/*EOF*/
        -:        -: 8018:/*EOF*/
        -:        -: 8019:/*EOF*/
        -:        -: 8020:/*EOF*/
        -:        -: 8021:/*EOF*/
        -:        -: 8022:/*EOF*/
        -:        -: 8023:/*EOF*/
        -:        -: 8024:/*EOF*/
        -:        -: 8025:/*EOF*/
        -:        -: 8026:/*EOF*/
        -:        -: 8027:/*EOF*/
        -:        -: 8028:/*EOF*/
        -:        -: 8029:/*EOF*/
        -:        -: 8030:/*EOF*/
        -:        -: 8031:/*EOF*/
        -:        -: 8032:/*EOF*/
        -:        -: 8033:/*EOF*/
        -:        -: 8034:/*EOF*/
        -:        -: 8035:/*EOF*/
        -:        -: 8036:/*EOF*/
        -:        -: 8037:/*EOF*/
        -:        -: 8038:/*EOF*/
        -:        -: 8039:/*EOF*/
        -:        -: 8040:/*EOF*/
        -:        -: 8041:/*EOF*/
        -:        -: 8042:/*EOF*/
        -:        -: 8043:/*EOF*/
        -:        -: 8044:/*EOF*/
        -:        -: 8045:/*EOF*/
        -:        -: 8046:/*EOF*/
        -:        -: 8047:/*EOF*/
        -:        -: 8048:/*EOF*/
        -:        -: 8049:/*EOF*/
        -:        -: 8050:/*EOF*/
        -:        -: 8051:/*EOF*/
        -:        -: 8052:/*EOF*/
        -:        -: 8053:/*EOF*/
        -:        -: 8054:/*EOF*/
        -:        -: 8055:/*EOF*/
        -:        -: 8056:/*EOF*/
        -:        -: 8057:/*EOF*/
        -:        -: 8058:/*EOF*/
        -:        -: 8059:/*EOF*/
        -:        -: 8060:/*EOF*/
        -:        -: 8061:/*EOF*/
        -:        -: 8062:/*EOF*/
        -:        -: 8063:/*EOF*/
        -:        -: 8064:/*EOF*/
        -:        -: 8065:/*EOF*/
        -:        -: 8066:/*EOF*/
        -:        -: 8067:/*EOF*/
        -:        -: 8068:/*EOF*/
        -:        -: 8069:/*EOF*/
        -:        -: 8070:/*EOF*/
        -:        -: 8071:/*EOF*/
        -:        -: 8072:/*EOF*/
        -:        -: 8073:/*EOF*/
        -:        -: 8074:/*EOF*/
        -:        -: 8075:/*EOF*/
        -:        -: 8076:/*EOF*/
        -:        -: 8077:/*EOF*/
        -:        -: 8078:/*EOF*/
        -:        -: 8079:/*EOF*/
        -:        -: 8080:/*EOF*/
        -:        -: 8081:/*EOF*/
        -:        -: 8082:/*EOF*/
        -:        -: 8083:/*EOF*/
        -:        -: 8084:/*EOF*/
        -:        -: 8085:/*EOF*/
        -:        -: 8086:/*EOF*/
        -:        -: 8087:/*EOF*/
        -:        -: 8088:/*EOF*/
        -:        -: 8089:/*EOF*/
        -:        -: 8090:/*EOF*/
        -:        -: 8091:/*EOF*/
        -:        -: 8092:/*EOF*/
        -:        -: 8093:/*EOF*/
        -:        -: 8094:/*EOF*/
        -:        -: 8095:/*EOF*/
        -:        -: 8096:/*EOF*/
        -:        -: 8097:/*EOF*/
        -:        -: 8098:/*EOF*/
        -:        -: 8099:/*EOF*/
        -:        -: 8100:/*EOF*/
        -:        -: 8101:/*EOF*/
        -:        -: 8102:/*EOF*/
        -:        -: 8103:/*EOF*/
        -:        -: 8104:/*EOF*/
        -:        -: 8105:/*EOF*/
        -:        -: 8106:/*EOF*/
        -:        -: 8107:/*EOF*/
        -:        -: 8108:/*EOF*/
        -:        -: 8109:/*EOF*/
        -:        -: 8110:/*EOF*/
        -:        -: 8111:/*EOF*/
        -:        -: 8112:/*EOF*/
        -:        -: 8113:/*EOF*/
        -:        -: 8114:/*EOF*/
        -:        -: 8115:/*EOF*/
        -:        -: 8116:/*EOF*/
        -:        -: 8117:/*EOF*/
        -:        -: 8118:/*EOF*/
        -:        -: 8119:/*EOF*/
        -:        -: 8120:/*EOF*/
        -:        -: 8121:/*EOF*/
        -:        -: 8122:/*EOF*/
        -:        -: 8123:/*EOF*/
        -:        -: 8124:/*EOF*/
        -:        -: 8125:/*EOF*/
        -:        -: 8126:/*EOF*/
        -:        -: 8127:/*EOF*/
        -:        -: 8128:/*EOF*/
        -:        -: 8129:/*EOF*/
        -:        -: 8130:/*EOF*/
        -:        -: 8131:/*EOF*/
        -:        -: 8132:/*EOF*/
        -:        -: 8133:/*EOF*/
        -:        -: 8134:/*EOF*/
        -:        -: 8135:/*EOF*/
        -:        -: 8136:/*EOF*/
        -:        -: 8137:/*EOF*/
        -:        -: 8138:/*EOF*/
        -:        -: 8139:/*EOF*/
        -:        -: 8140:/*EOF*/
        -:        -: 8141:/*EOF*/
        -:        -: 8142:/*EOF*/
        -:        -: 8143:/*EOF*/
        -:        -: 8144:/*EOF*/
        -:        -: 8145:/*EOF*/
        -:        -: 8146:/*EOF*/
        -:        -: 8147:/*EOF*/
        -:        -: 8148:/*EOF*/
        -:        -: 8149:/*EOF*/
        -:        -: 8150:/*EOF*/
        -:        -: 8151:/*EOF*/
        -:        -: 8152:/*EOF*/
        -:        -: 8153:/*EOF*/
        -:        -: 8154:/*EOF*/
        -:        -: 8155:/*EOF*/
        -:        -: 8156:/*EOF*/
        -:        -: 8157:/*EOF*/
        -:        -: 8158:/*EOF*/
        -:        -: 8159:/*EOF*/
        -:        -: 8160:/*EOF*/
        -:        -: 8161:/*EOF*/
        -:        -: 8162:/*EOF*/
        -:        -: 8163:/*EOF*/
        -:        -: 8164:/*EOF*/
        -:        -: 8165:/*EOF*/
        -:        -: 8166:/*EOF*/
        -:        -: 8167:/*EOF*/
        -:        -: 8168:/*EOF*/
        -:        -: 8169:/*EOF*/
        -:        -: 8170:/*EOF*/
        -:        -: 8171:/*EOF*/
        -:        -: 8172:/*EOF*/
        -:        -: 8173:/*EOF*/
        -:        -: 8174:/*EOF*/
        -:        -: 8175:/*EOF*/
        -:        -: 8176:/*EOF*/
        -:        -: 8177:/*EOF*/
        -:        -: 8178:/*EOF*/
        -:        -: 8179:/*EOF*/
        -:        -: 8180:/*EOF*/
        -:        -: 8181:/*EOF*/
        -:        -: 8182:/*EOF*/
        -:        -: 8183:/*EOF*/
        -:        -: 8184:/*EOF*/
        -:        -: 8185:/*EOF*/
        -:        -: 8186:/*EOF*/
        -:        -: 8187:/*EOF*/
        -:        -: 8188:/*EOF*/
        -:        -: 8189:/*EOF*/
        -:        -: 8190:/*EOF*/
        -:        -: 8191:/*EOF*/
        -:        -: 8192:/*EOF*/
        -:        -: 8193:/*EOF*/
        -:        -: 8194:/*EOF*/
        -:        -: 8195:/*EOF*/
        -:        -: 8196:/*EOF*/
        -:        -: 8197:/*EOF*/
        -:        -: 8198:/*EOF*/
        -:        -: 8199:/*EOF*/
        -:        -: 8200:/*EOF*/
        -:        -: 8201:/*EOF*/
        -:        -: 8202:/*EOF*/
        -:        -: 8203:/*EOF*/
        -:        -: 8204:/*EOF*/
        -:        -: 8205:/*EOF*/
        -:        -: 8206:/*EOF*/
        -:        -: 8207:/*EOF*/
        -:        -: 8208:/*EOF*/
        -:        -: 8209:/*EOF*/
        -:        -: 8210:/*EOF*/
        -:        -: 8211:/*EOF*/
        -:        -: 8212:/*EOF*/
        -:        -: 8213:/*EOF*/
        -:        -: 8214:/*EOF*/
        -:        -: 8215:/*EOF*/
        -:        -: 8216:/*EOF*/
        -:        -: 8217:/*EOF*/
        -:        -: 8218:/*EOF*/
        -:        -: 8219:/*EOF*/
        -:        -: 8220:/*EOF*/
        -:        -: 8221:/*EOF*/
        -:        -: 8222:/*EOF*/
        -:        -: 8223:/*EOF*/
        -:        -: 8224:/*EOF*/
        -:        -: 8225:/*EOF*/
        -:        -: 8226:/*EOF*/
        -:        -: 8227:/*EOF*/
        -:        -: 8228:/*EOF*/
        -:        -: 8229:/*EOF*/
        -:        -: 8230:/*EOF*/
        -:        -: 8231:/*EOF*/
        -:        -: 8232:/*EOF*/
        -:        -: 8233:/*EOF*/
        -:        -: 8234:/*EOF*/
        -:        -: 8235:/*EOF*/
        -:        -: 8236:/*EOF*/
        -:        -: 8237:/*EOF*/
        -:        -: 8238:/*EOF*/
        -:        -: 8239:/*EOF*/
        -:        -: 8240:/*EOF*/
        -:        -: 8241:/*EOF*/
        -:        -: 8242:/*EOF*/
        -:        -: 8243:/*EOF*/
        -:        -: 8244:/*EOF*/
        -:        -: 8245:/*EOF*/
        -:        -: 8246:/*EOF*/
        -:        -: 8247:/*EOF*/
        -:        -: 8248:/*EOF*/
        -:        -: 8249:/*EOF*/
        -:        -: 8250:/*EOF*/
        -:        -: 8251:/*EOF*/
        -:        -: 8252:/*EOF*/
        -:        -: 8253:/*EOF*/
        -:        -: 8254:/*EOF*/
        -:        -: 8255:/*EOF*/
        -:        -: 8256:/*EOF*/
        -:        -: 8257:/*EOF*/
        -:        -: 8258:/*EOF*/
        -:        -: 8259:/*EOF*/
        -:        -: 8260:/*EOF*/
        -:        -: 8261:/*EOF*/
        -:        -: 8262:/*EOF*/
        -:        -: 8263:/*EOF*/
        -:        -: 8264:/*EOF*/
        -:        -: 8265:/*EOF*/
        -:        -: 8266:/*EOF*/
        -:        -: 8267:/*EOF*/
        -:        -: 8268:/*EOF*/
        -:        -: 8269:/*EOF*/
        -:        -: 8270:/*EOF*/
        -:        -: 8271:/*EOF*/
        -:        -: 8272:/*EOF*/
        -:        -: 8273:/*EOF*/
        -:        -: 8274:/*EOF*/
        -:        -: 8275:/*EOF*/
        -:        -: 8276:/*EOF*/
        -:        -: 8277:/*EOF*/
        -:        -: 8278:/*EOF*/
        -:        -: 8279:/*EOF*/
        -:        -: 8280:/*EOF*/
        -:        -: 8281:/*EOF*/
        -:        -: 8282:/*EOF*/
        -:        -: 8283:/*EOF*/
        -:        -: 8284:/*EOF*/
        -:        -: 8285:/*EOF*/
        -:        -: 8286:/*EOF*/
        -:        -: 8287:/*EOF*/
        -:        -: 8288:/*EOF*/
        -:        -: 8289:/*EOF*/
        -:        -: 8290:/*EOF*/
        -:        -: 8291:/*EOF*/
        -:        -: 8292:/*EOF*/
        -:        -: 8293:/*EOF*/
        -:        -: 8294:/*EOF*/
        -:        -: 8295:/*EOF*/
        -:        -: 8296:/*EOF*/
        -:        -: 8297:/*EOF*/
        -:        -: 8298:/*EOF*/
        -:        -: 8299:/*EOF*/
        -:        -: 8300:/*EOF*/
        -:        -: 8301:/*EOF*/
        -:        -: 8302:/*EOF*/
        -:        -: 8303:/*EOF*/
        -:        -: 8304:/*EOF*/
        -:        -: 8305:/*EOF*/
        -:        -: 8306:/*EOF*/
        -:        -: 8307:/*EOF*/
        -:        -: 8308:/*EOF*/
        -:        -: 8309:/*EOF*/
        -:        -: 8310:/*EOF*/
        -:        -: 8311:/*EOF*/
        -:        -: 8312:/*EOF*/
        -:        -: 8313:/*EOF*/
        -:        -: 8314:/*EOF*/
        -:        -: 8315:/*EOF*/
        -:        -: 8316:/*EOF*/
        -:        -: 8317:/*EOF*/
        -:        -: 8318:/*EOF*/
        -:        -: 8319:/*EOF*/
        -:        -: 8320:/*EOF*/
        -:        -: 8321:/*EOF*/
        -:        -: 8322:/*EOF*/
        -:        -: 8323:/*EOF*/
        -:        -: 8324:/*EOF*/
        -:        -: 8325:/*EOF*/
        -:        -: 8326:/*EOF*/
        -:        -: 8327:/*EOF*/
        -:        -: 8328:/*EOF*/
        -:        -: 8329:/*EOF*/
        -:        -: 8330:/*EOF*/
        -:        -: 8331:/*EOF*/
        -:        -: 8332:/*EOF*/
        -:        -: 8333:/*EOF*/
        -:        -: 8334:/*EOF*/
        -:        -: 8335:/*EOF*/
        -:        -: 8336:/*EOF*/
        -:        -: 8337:/*EOF*/
        -:        -: 8338:/*EOF*/
        -:        -: 8339:/*EOF*/
        -:        -: 8340:/*EOF*/
        -:        -: 8341:/*EOF*/
        -:        -: 8342:/*EOF*/
        -:        -: 8343:/*EOF*/
        -:        -: 8344:/*EOF*/
        -:        -: 8345:/*EOF*/
        -:        -: 8346:/*EOF*/
        -:        -: 8347:/*EOF*/
        -:        -: 8348:/*EOF*/
        -:        -: 8349:/*EOF*/
        -:        -: 8350:/*EOF*/
        -:        -: 8351:/*EOF*/
        -:        -: 8352:/*EOF*/
        -:        -: 8353:/*EOF*/
        -:        -: 8354:/*EOF*/
        -:        -: 8355:/*EOF*/
        -:        -: 8356:/*EOF*/
        -:        -: 8357:/*EOF*/
        -:        -: 8358:/*EOF*/
        -:        -: 8359:/*EOF*/
        -:        -: 8360:/*EOF*/
        -:        -: 8361:/*EOF*/
        -:        -: 8362:/*EOF*/
        -:        -: 8363:/*EOF*/
        -:        -: 8364:/*EOF*/
        -:        -: 8365:/*EOF*/
        -:        -: 8366:/*EOF*/
        -:        -: 8367:/*EOF*/
        -:        -: 8368:/*EOF*/
        -:        -: 8369:/*EOF*/
        -:        -: 8370:/*EOF*/
        -:        -: 8371:/*EOF*/
        -:        -: 8372:/*EOF*/
        -:        -: 8373:/*EOF*/
        -:        -: 8374:/*EOF*/
        -:        -: 8375:/*EOF*/
        -:        -: 8376:/*EOF*/
        -:        -: 8377:/*EOF*/
        -:        -: 8378:/*EOF*/
        -:        -: 8379:/*EOF*/
        -:        -: 8380:/*EOF*/
        -:        -: 8381:/*EOF*/
        -:        -: 8382:/*EOF*/
        -:        -: 8383:/*EOF*/
        -:        -: 8384:/*EOF*/
        -:        -: 8385:/*EOF*/
        -:        -: 8386:/*EOF*/
        -:        -: 8387:/*EOF*/
        -:        -: 8388:/*EOF*/
        -:        -: 8389:/*EOF*/
        -:        -: 8390:/*EOF*/
        -:        -: 8391:/*EOF*/
        -:        -: 8392:/*EOF*/
        -:        -: 8393:/*EOF*/
        -:        -: 8394:/*EOF*/
        -:        -: 8395:/*EOF*/
        -:        -: 8396:/*EOF*/
        -:        -: 8397:/*EOF*/
        -:        -: 8398:/*EOF*/
        -:        -: 8399:/*EOF*/
        -:        -: 8400:/*EOF*/
        -:        -: 8401:/*EOF*/
        -:        -: 8402:/*EOF*/
        -:        -: 8403:/*EOF*/
        -:        -: 8404:/*EOF*/
        -:        -: 8405:/*EOF*/
        -:        -: 8406:/*EOF*/
        -:        -: 8407:/*EOF*/
        -:        -: 8408:/*EOF*/
        -:        -: 8409:/*EOF*/
        -:        -: 8410:/*EOF*/
        -:        -: 8411:/*EOF*/
        -:        -: 8412:/*EOF*/
        -:        -: 8413:/*EOF*/
        -:        -: 8414:/*EOF*/
        -:        -: 8415:/*EOF*/
        -:        -: 8416:/*EOF*/
        -:        -: 8417:/*EOF*/
        -:        -: 8418:/*EOF*/
        -:        -: 8419:/*EOF*/
        -:        -: 8420:/*EOF*/
        -:        -: 8421:/*EOF*/
        -:        -: 8422:/*EOF*/
        -:        -: 8423:/*EOF*/
        -:        -: 8424:/*EOF*/
        -:        -: 8425:/*EOF*/
        -:        -: 8426:/*EOF*/
        -:        -: 8427:/*EOF*/
        -:        -: 8428:/*EOF*/
        -:        -: 8429:/*EOF*/
        -:        -: 8430:/*EOF*/
        -:        -: 8431:/*EOF*/
        -:        -: 8432:/*EOF*/
        -:        -: 8433:/*EOF*/
        -:        -: 8434:/*EOF*/
        -:        -: 8435:/*EOF*/
        -:        -: 8436:/*EOF*/
        -:        -: 8437:/*EOF*/
        -:        -: 8438:/*EOF*/
        -:        -: 8439:/*EOF*/
        -:        -: 8440:/*EOF*/
        -:        -: 8441:/*EOF*/
        -:        -: 8442:/*EOF*/
        -:        -: 8443:/*EOF*/
        -:        -: 8444:/*EOF*/
        -:        -: 8445:/*EOF*/
        -:        -: 8446:/*EOF*/
        -:        -: 8447:/*EOF*/
        -:        -: 8448:/*EOF*/
        -:        -: 8449:/*EOF*/
        -:        -: 8450:/*EOF*/
        -:        -: 8451:/*EOF*/
        -:        -: 8452:/*EOF*/
        -:        -: 8453:/*EOF*/
        -:        -: 8454:/*EOF*/
        -:        -: 8455:/*EOF*/
        -:        -: 8456:/*EOF*/
        -:        -: 8457:/*EOF*/
        -:        -: 8458:/*EOF*/
        -:        -: 8459:/*EOF*/
        -:        -: 8460:/*EOF*/
        -:        -: 8461:/*EOF*/
        -:        -: 8462:/*EOF*/
        -:        -: 8463:/*EOF*/
        -:        -: 8464:/*EOF*/
        -:        -: 8465:/*EOF*/
        -:        -: 8466:/*EOF*/
        -:        -: 8467:/*EOF*/
        -:        -: 8468:/*EOF*/
        -:        -: 8469:/*EOF*/
        -:        -: 8470:/*EOF*/
        -:        -: 8471:/*EOF*/
        -:        -: 8472:/*EOF*/
        -:        -: 8473:/*EOF*/
        -:        -: 8474:/*EOF*/
        -:        -: 8475:/*EOF*/
        -:        -: 8476:/*EOF*/
        -:        -: 8477:/*EOF*/
        -:        -: 8478:/*EOF*/
        -:        -: 8479:/*EOF*/
        -:        -: 8480:/*EOF*/
        -:        -: 8481:/*EOF*/
        -:        -: 8482:/*EOF*/
        -:        -: 8483:/*EOF*/
        -:        -: 8484:/*EOF*/
        -:        -: 8485:/*EOF*/
        -:        -: 8486:/*EOF*/
        -:        -: 8487:/*EOF*/
        -:        -: 8488:/*EOF*/
        -:        -: 8489:/*EOF*/
        -:        -: 8490:/*EOF*/
        -:        -: 8491:/*EOF*/
        -:        -: 8492:/*EOF*/
        -:        -: 8493:/*EOF*/
        -:        -: 8494:/*EOF*/
        -:        -: 8495:/*EOF*/
        -:        -: 8496:/*EOF*/
        -:        -: 8497:/*EOF*/
        -:        -: 8498:/*EOF*/
        -:        -: 8499:/*EOF*/
        -:        -: 8500:/*EOF*/
        -:        -: 8501:/*EOF*/
        -:        -: 8502:/*EOF*/
        -:        -: 8503:/*EOF*/
        -:        -: 8504:/*EOF*/
        -:        -: 8505:/*EOF*/
        -:        -: 8506:/*EOF*/
        -:        -: 8507:/*EOF*/
        -:        -: 8508:/*EOF*/
        -:        -: 8509:/*EOF*/
        -:        -: 8510:/*EOF*/
        -:        -: 8511:/*EOF*/
        -:        -: 8512:/*EOF*/
        -:        -: 8513:/*EOF*/
        -:        -: 8514:/*EOF*/
        -:        -: 8515:/*EOF*/
        -:        -: 8516:/*EOF*/
        -:        -: 8517:/*EOF*/
        -:        -: 8518:/*EOF*/
        -:        -: 8519:/*EOF*/
        -:        -: 8520:/*EOF*/
        -:        -: 8521:/*EOF*/
        -:        -: 8522:/*EOF*/
        -:        -: 8523:/*EOF*/
        -:        -: 8524:/*EOF*/
        -:        -: 8525:/*EOF*/
        -:        -: 8526:/*EOF*/
        -:        -: 8527:/*EOF*/
        -:        -: 8528:/*EOF*/
        -:        -: 8529:/*EOF*/
        -:        -: 8530:/*EOF*/
        -:        -: 8531:/*EOF*/
        -:        -: 8532:/*EOF*/
        -:        -: 8533:/*EOF*/
        -:        -: 8534:/*EOF*/
        -:        -: 8535:/*EOF*/
        -:        -: 8536:/*EOF*/
        -:        -: 8537:/*EOF*/
        -:        -: 8538:/*EOF*/
        -:        -: 8539:/*EOF*/
        -:        -: 8540:/*EOF*/
        -:        -: 8541:/*EOF*/
        -:        -: 8542:/*EOF*/
        -:        -: 8543:/*EOF*/
        -:        -: 8544:/*EOF*/
        -:        -: 8545:/*EOF*/
        -:        -: 8546:/*EOF*/
        -:        -: 8547:/*EOF*/
        -:        -: 8548:/*EOF*/
        -:        -: 8549:/*EOF*/
        -:        -: 8550:/*EOF*/
        -:        -: 8551:/*EOF*/
        -:        -: 8552:/*EOF*/
        -:        -: 8553:/*EOF*/
        -:        -: 8554:/*EOF*/
        -:        -: 8555:/*EOF*/
        -:        -: 8556:/*EOF*/
        -:        -: 8557:/*EOF*/
        -:        -: 8558:/*EOF*/
        -:        -: 8559:/*EOF*/
        -:        -: 8560:/*EOF*/
        -:        -: 8561:/*EOF*/
        -:        -: 8562:/*EOF*/
        -:        -: 8563:/*EOF*/
        -:        -: 8564:/*EOF*/
        -:        -: 8565:/*EOF*/
        -:        -: 8566:/*EOF*/
        -:        -: 8567:/*EOF*/
        -:        -: 8568:/*EOF*/
        -:        -: 8569:/*EOF*/
        -:        -: 8570:/*EOF*/
        -:        -: 8571:/*EOF*/
        -:        -: 8572:/*EOF*/
        -:        -: 8573:/*EOF*/
        -:        -: 8574:/*EOF*/
        -:        -: 8575:/*EOF*/
        -:        -: 8576:/*EOF*/
        -:        -: 8577:/*EOF*/
        -:        -: 8578:/*EOF*/
        -:        -: 8579:/*EOF*/
        -:        -: 8580:/*EOF*/
        -:        -: 8581:/*EOF*/
        -:        -: 8582:/*EOF*/
        -:        -: 8583:/*EOF*/
        -:        -: 8584:/*EOF*/
        -:        -: 8585:/*EOF*/
        -:        -: 8586:/*EOF*/
        -:        -: 8587:/*EOF*/
        -:        -: 8588:/*EOF*/
        -:        -: 8589:/*EOF*/
        -:        -: 8590:/*EOF*/
        -:        -: 8591:/*EOF*/
        -:        -: 8592:/*EOF*/
        -:        -: 8593:/*EOF*/
        -:        -: 8594:/*EOF*/
        -:        -: 8595:/*EOF*/
        -:        -: 8596:/*EOF*/
        -:        -: 8597:/*EOF*/
        -:        -: 8598:/*EOF*/
        -:        -: 8599:/*EOF*/
        -:        -: 8600:/*EOF*/
        -:        -: 8601:/*EOF*/
        -:        -: 8602:/*EOF*/
        -:        -: 8603:/*EOF*/
        -:        -: 8604:/*EOF*/
        -:        -: 8605:/*EOF*/
        -:        -: 8606:/*EOF*/
        -:        -: 8607:/*EOF*/
        -:        -: 8608:/*EOF*/
        -:        -: 8609:/*EOF*/
        -:        -: 8610:/*EOF*/
        -:        -: 8611:/*EOF*/
        -:        -: 8612:/*EOF*/
        -:        -: 8613:/*EOF*/
        -:        -: 8614:/*EOF*/
        -:        -: 8615:/*EOF*/
        -:        -: 8616:/*EOF*/
        -:        -: 8617:/*EOF*/
        -:        -: 8618:/*EOF*/
        -:        -: 8619:/*EOF*/
        -:        -: 8620:/*EOF*/
        -:        -: 8621:/*EOF*/
        -:        -: 8622:/*EOF*/
        -:        -: 8623:/*EOF*/
        -:        -: 8624:/*EOF*/
        -:        -: 8625:/*EOF*/
        -:        -: 8626:/*EOF*/
        -:        -: 8627:/*EOF*/
        -:        -: 8628:/*EOF*/
        -:        -: 8629:/*EOF*/
        -:        -: 8630:/*EOF*/
        -:        -: 8631:/*EOF*/
        -:        -: 8632:/*EOF*/
        -:        -: 8633:/*EOF*/
        -:        -: 8634:/*EOF*/
        -:        -: 8635:/*EOF*/
        -:        -: 8636:/*EOF*/
        -:        -: 8637:/*EOF*/
        -:        -: 8638:/*EOF*/
        -:        -: 8639:/*EOF*/
        -:        -: 8640:/*EOF*/
        -:        -: 8641:/*EOF*/
        -:        -: 8642:/*EOF*/
        -:        -: 8643:/*EOF*/
        -:        -: 8644:/*EOF*/
        -:        -: 8645:/*EOF*/
        -:        -: 8646:/*EOF*/
        -:        -: 8647:/*EOF*/
        -:        -: 8648:/*EOF*/
        -:        -: 8649:/*EOF*/
        -:        -: 8650:/*EOF*/
        -:        -: 8651:/*EOF*/
        -:        -: 8652:/*EOF*/
        -:        -: 8653:/*EOF*/
        -:        -: 8654:/*EOF*/
        -:        -: 8655:/*EOF*/
        -:        -: 8656:/*EOF*/
        -:        -: 8657:/*EOF*/
        -:        -: 8658:/*EOF*/
        -:        -: 8659:/*EOF*/
        -:        -: 8660:/*EOF*/
        -:        -: 8661:/*EOF*/
        -:        -: 8662:/*EOF*/
        -:        -: 8663:/*EOF*/
        -:        -: 8664:/*EOF*/
        -:        -: 8665:/*EOF*/
        -:        -: 8666:/*EOF*/
        -:        -: 8667:/*EOF*/
        -:        -: 8668:/*EOF*/
        -:        -: 8669:/*EOF*/
        -:        -: 8670:/*EOF*/
        -:        -: 8671:/*EOF*/
        -:        -: 8672:/*EOF*/
        -:        -: 8673:/*EOF*/
        -:        -: 8674:/*EOF*/
        -:        -: 8675:/*EOF*/
        -:        -: 8676:/*EOF*/
        -:        -: 8677:/*EOF*/
        -:        -: 8678:/*EOF*/
        -:        -: 8679:/*EOF*/
        -:        -: 8680:/*EOF*/
        -:        -: 8681:/*EOF*/
        -:        -: 8682:/*EOF*/
        -:        -: 8683:/*EOF*/
        -:        -: 8684:/*EOF*/
        -:        -: 8685:/*EOF*/
        -:        -: 8686:/*EOF*/
        -:        -: 8687:/*EOF*/
        -:        -: 8688:/*EOF*/
        -:        -: 8689:/*EOF*/
        -:        -: 8690:/*EOF*/
        -:        -: 8691:/*EOF*/
        -:        -: 8692:/*EOF*/
        -:        -: 8693:/*EOF*/
        -:        -: 8694:/*EOF*/
        -:        -: 8695:/*EOF*/
        -:        -: 8696:/*EOF*/
        -:        -: 8697:/*EOF*/
        -:        -: 8698:/*EOF*/
        -:        -: 8699:/*EOF*/
        -:        -: 8700:/*EOF*/
        -:        -: 8701:/*EOF*/
        -:        -: 8702:/*EOF*/
        -:        -: 8703:/*EOF*/
        -:        -: 8704:/*EOF*/
        -:        -: 8705:/*EOF*/
        -:        -: 8706:/*EOF*/
        -:        -: 8707:/*EOF*/
        -:        -: 8708:/*EOF*/
        -:        -: 8709:/*EOF*/
        -:        -: 8710:/*EOF*/
        -:        -: 8711:/*EOF*/
        -:        -: 8712:/*EOF*/
        -:        -: 8713:/*EOF*/
        -:        -: 8714:/*EOF*/
        -:        -: 8715:/*EOF*/
        -:        -: 8716:/*EOF*/
        -:        -: 8717:/*EOF*/
        -:        -: 8718:/*EOF*/
        -:        -: 8719:/*EOF*/
        -:        -: 8720:/*EOF*/
        -:        -: 8721:/*EOF*/
        -:        -: 8722:/*EOF*/
        -:        -: 8723:/*EOF*/
        -:        -: 8724:/*EOF*/
        -:        -: 8725:/*EOF*/
        -:        -: 8726:/*EOF*/
        -:        -: 8727:/*EOF*/
        -:        -: 8728:/*EOF*/
        -:        -: 8729:/*EOF*/
        -:        -: 8730:/*EOF*/
        -:        -: 8731:/*EOF*/
        -:        -: 8732:/*EOF*/
        -:        -: 8733:/*EOF*/
        -:        -: 8734:/*EOF*/
        -:        -: 8735:/*EOF*/
        -:        -: 8736:/*EOF*/
        -:        -: 8737:/*EOF*/
        -:        -: 8738:/*EOF*/
        -:        -: 8739:/*EOF*/
        -:        -: 8740:/*EOF*/
        -:        -: 8741:/*EOF*/
        -:        -: 8742:/*EOF*/
        -:        -: 8743:/*EOF*/
        -:        -: 8744:/*EOF*/
        -:        -: 8745:/*EOF*/
        -:        -: 8746:/*EOF*/
        -:        -: 8747:/*EOF*/
        -:        -: 8748:/*EOF*/
        -:        -: 8749:/*EOF*/
        -:        -: 8750:/*EOF*/
        -:        -: 8751:/*EOF*/
        -:        -: 8752:/*EOF*/
        -:        -: 8753:/*EOF*/
        -:        -: 8754:/*EOF*/
        -:        -: 8755:/*EOF*/
        -:        -: 8756:/*EOF*/
        -:        -: 8757:/*EOF*/
        -:        -: 8758:/*EOF*/
        -:        -: 8759:/*EOF*/
        -:        -: 8760:/*EOF*/
        -:        -: 8761:/*EOF*/
        -:        -: 8762:/*EOF*/
        -:        -: 8763:/*EOF*/
        -:        -: 8764:/*EOF*/
        -:        -: 8765:/*EOF*/
        -:        -: 8766:/*EOF*/
        -:        -: 8767:/*EOF*/
        -:        -: 8768:/*EOF*/
        -:        -: 8769:/*EOF*/
        -:        -: 8770:/*EOF*/
        -:        -: 8771:/*EOF*/
        -:        -: 8772:/*EOF*/
        -:        -: 8773:/*EOF*/
        -:        -: 8774:/*EOF*/
        -:        -: 8775:/*EOF*/
        -:        -: 8776:/*EOF*/
        -:        -: 8777:/*EOF*/
        -:        -: 8778:/*EOF*/
        -:        -: 8779:/*EOF*/
        -:        -: 8780:/*EOF*/
        -:        -: 8781:/*EOF*/
        -:        -: 8782:/*EOF*/
        -:        -: 8783:/*EOF*/
        -:        -: 8784:/*EOF*/
        -:        -: 8785:/*EOF*/
        -:        -: 8786:/*EOF*/
        -:        -: 8787:/*EOF*/
        -:        -: 8788:/*EOF*/
        -:        -: 8789:/*EOF*/
        -:        -: 8790:/*EOF*/
        -:        -: 8791:/*EOF*/
        -:        -: 8792:/*EOF*/
        -:        -: 8793:/*EOF*/
        -:        -: 8794:/*EOF*/
        -:        -: 8795:/*EOF*/
        -:        -: 8796:/*EOF*/
        -:        -: 8797:/*EOF*/
        -:        -: 8798:/*EOF*/
        -:        -: 8799:/*EOF*/
        -:        -: 8800:/*EOF*/
        -:        -: 8801:/*EOF*/
        -:        -: 8802:/*EOF*/
        -:        -: 8803:/*EOF*/
        -:        -: 8804:/*EOF*/
        -:        -: 8805:/*EOF*/
        -:        -: 8806:/*EOF*/
        -:        -: 8807:/*EOF*/
        -:        -: 8808:/*EOF*/
        -:        -: 8809:/*EOF*/
        -:        -: 8810:/*EOF*/
        -:        -: 8811:/*EOF*/
        -:        -: 8812:/*EOF*/
        -:        -: 8813:/*EOF*/
        -:        -: 8814:/*EOF*/
        -:        -: 8815:/*EOF*/
        -:        -: 8816:/*EOF*/
        -:        -: 8817:/*EOF*/
        -:        -: 8818:/*EOF*/
        -:        -: 8819:/*EOF*/
        -:        -: 8820:/*EOF*/
        -:        -: 8821:/*EOF*/
        -:        -: 8822:/*EOF*/
        -:        -: 8823:/*EOF*/
        -:        -: 8824:/*EOF*/
        -:        -: 8825:/*EOF*/
        -:        -: 8826:/*EOF*/
        -:        -: 8827:/*EOF*/
        -:        -: 8828:/*EOF*/
        -:        -: 8829:/*EOF*/
        -:        -: 8830:/*EOF*/
        -:        -: 8831:/*EOF*/
        -:        -: 8832:/*EOF*/
        -:        -: 8833:/*EOF*/
        -:        -: 8834:/*EOF*/
        -:        -: 8835:/*EOF*/
        -:        -: 8836:/*EOF*/
        -:        -: 8837:/*EOF*/
        -:        -: 8838:/*EOF*/
        -:        -: 8839:/*EOF*/
        -:        -: 8840:/*EOF*/
        -:        -: 8841:/*EOF*/
        -:        -: 8842:/*EOF*/
        -:        -: 8843:/*EOF*/
        -:        -: 8844:/*EOF*/
        -:        -: 8845:/*EOF*/
        -:        -: 8846:/*EOF*/
        -:        -: 8847:/*EOF*/
        -:        -: 8848:/*EOF*/
        -:        -: 8849:/*EOF*/
        -:        -: 8850:/*EOF*/
        -:        -: 8851:/*EOF*/
        -:        -: 8852:/*EOF*/
        -:        -: 8853:/*EOF*/
        -:        -: 8854:/*EOF*/
        -:        -: 8855:/*EOF*/
        -:        -: 8856:/*EOF*/
        -:        -: 8857:/*EOF*/
        -:        -: 8858:/*EOF*/
        -:        -: 8859:/*EOF*/
        -:        -: 8860:/*EOF*/
        -:        -: 8861:/*EOF*/
        -:        -: 8862:/*EOF*/
        -:        -: 8863:/*EOF*/
        -:        -: 8864:/*EOF*/
        -:        -: 8865:/*EOF*/
        -:        -: 8866:/*EOF*/
        -:        -: 8867:/*EOF*/
        -:        -: 8868:/*EOF*/
        -:        -: 8869:/*EOF*/
        -:        -: 8870:/*EOF*/
        -:        -: 8871:/*EOF*/
        -:        -: 8872:/*EOF*/
        -:        -: 8873:/*EOF*/
        -:        -: 8874:/*EOF*/
        -:        -: 8875:/*EOF*/
        -:        -: 8876:/*EOF*/
        -:        -: 8877:/*EOF*/
        -:        -: 8878:/*EOF*/
        -:        -: 8879:/*EOF*/
        -:        -: 8880:/*EOF*/
        -:        -: 8881:/*EOF*/
        -:        -: 8882:/*EOF*/
        -:        -: 8883:/*EOF*/
        -:        -: 8884:/*EOF*/
        -:        -: 8885:/*EOF*/
        -:        -: 8886:/*EOF*/
        -:        -: 8887:/*EOF*/
        -:        -: 8888:/*EOF*/
        -:        -: 8889:/*EOF*/
        -:        -: 8890:/*EOF*/
        -:        -: 8891:/*EOF*/
        -:        -: 8892:/*EOF*/
        -:        -: 8893:/*EOF*/
        -:        -: 8894:/*EOF*/
        -:        -: 8895:/*EOF*/
        -:        -: 8896:/*EOF*/
        -:        -: 8897:/*EOF*/
        -:        -: 8898:/*EOF*/
        -:        -: 8899:/*EOF*/
        -:        -: 8900:/*EOF*/
        -:        -: 8901:/*EOF*/
        -:        -: 8902:/*EOF*/
        -:        -: 8903:/*EOF*/
        -:        -: 8904:/*EOF*/
        -:        -: 8905:/*EOF*/
        -:        -: 8906:/*EOF*/
        -:        -: 8907:/*EOF*/
        -:        -: 8908:/*EOF*/
        -:        -: 8909:/*EOF*/
        -:        -: 8910:/*EOF*/
        -:        -: 8911:/*EOF*/
        -:        -: 8912:/*EOF*/
        -:        -: 8913:/*EOF*/
        -:        -: 8914:/*EOF*/
        -:        -: 8915:/*EOF*/
        -:        -: 8916:/*EOF*/
        -:        -: 8917:/*EOF*/
        -:        -: 8918:/*EOF*/
        -:        -: 8919:/*EOF*/
        -:        -: 8920:/*EOF*/
        -:        -: 8921:/*EOF*/
        -:        -: 8922:/*EOF*/
        -:        -: 8923:/*EOF*/
        -:        -: 8924:/*EOF*/
        -:        -: 8925:/*EOF*/
        -:        -: 8926:/*EOF*/
        -:        -: 8927:/*EOF*/
        -:        -: 8928:/*EOF*/
        -:        -: 8929:/*EOF*/
        -:        -: 8930:/*EOF*/
        -:        -: 8931:/*EOF*/
        -:        -: 8932:/*EOF*/
        -:        -: 8933:/*EOF*/
        -:        -: 8934:/*EOF*/
        -:        -: 8935:/*EOF*/
        -:        -: 8936:/*EOF*/
        -:        -: 8937:/*EOF*/
        -:        -: 8938:/*EOF*/
        -:        -: 8939:/*EOF*/
        -:        -: 8940:/*EOF*/
        -:        -: 8941:/*EOF*/
        -:        -: 8942:/*EOF*/
        -:        -: 8943:/*EOF*/
        -:        -: 8944:/*EOF*/
        -:        -: 8945:/*EOF*/
        -:        -: 8946:/*EOF*/
        -:        -: 8947:/*EOF*/
        -:        -: 8948:/*EOF*/
        -:        -: 8949:/*EOF*/
        -:        -: 8950:/*EOF*/
        -:        -: 8951:/*EOF*/
        -:        -: 8952:/*EOF*/
        -:        -: 8953:/*EOF*/
        -:        -: 8954:/*EOF*/
        -:        -: 8955:/*EOF*/
        -:        -: 8956:/*EOF*/
        -:        -: 8957:/*EOF*/
        -:        -: 8958:/*EOF*/
        -:        -: 8959:/*EOF*/
        -:        -: 8960:/*EOF*/
        -:        -: 8961:/*EOF*/
        -:        -: 8962:/*EOF*/
        -:        -: 8963:/*EOF*/
        -:        -: 8964:/*EOF*/
        -:        -: 8965:/*EOF*/
        -:        -: 8966:/*EOF*/
        -:        -: 8967:/*EOF*/
        -:        -: 8968:/*EOF*/
        -:        -: 8969:/*EOF*/
        -:        -: 8970:/*EOF*/
        -:        -: 8971:/*EOF*/
        -:        -: 8972:/*EOF*/
        -:        -: 8973:/*EOF*/
        -:        -: 8974:/*EOF*/
        -:        -: 8975:/*EOF*/
        -:        -: 8976:/*EOF*/
        -:        -: 8977:/*EOF*/
        -:        -: 8978:/*EOF*/
        -:        -: 8979:/*EOF*/
        -:        -: 8980:/*EOF*/
        -:        -: 8981:/*EOF*/
        -:        -: 8982:/*EOF*/
        -:        -: 8983:/*EOF*/
        -:        -: 8984:/*EOF*/
        -:        -: 8985:/*EOF*/
        -:        -: 8986:/*EOF*/
        -:        -: 8987:/*EOF*/
        -:        -: 8988:/*EOF*/
        -:        -: 8989:/*EOF*/
        -:        -: 8990:/*EOF*/
        -:        -: 8991:/*EOF*/
        -:        -: 8992:/*EOF*/
        -:        -: 8993:/*EOF*/
        -:        -: 8994:/*EOF*/
        -:        -: 8995:/*EOF*/
        -:        -: 8996:/*EOF*/
        -:        -: 8997:/*EOF*/
        -:        -: 8998:/*EOF*/
        -:        -: 8999:/*EOF*/
        -:        -: 9000:/*EOF*/
        -:        -: 9001:/*EOF*/
        -:        -: 9002:/*EOF*/
        -:        -: 9003:/*EOF*/
        -:        -: 9004:/*EOF*/
        -:        -: 9005:/*EOF*/
        -:        -: 9006:/*EOF*/
        -:        -: 9007:/*EOF*/
        -:        -: 9008:/*EOF*/
        -:        -: 9009:/*EOF*/
        -:        -: 9010:/*EOF*/
        -:        -: 9011:/*EOF*/
        -:        -: 9012:/*EOF*/
        -:        -: 9013:/*EOF*/
        -:        -: 9014:/*EOF*/
        -:        -: 9015:/*EOF*/
        -:        -: 9016:/*EOF*/
        -:        -: 9017:/*EOF*/
        -:        -: 9018:/*EOF*/
        -:        -: 9019:/*EOF*/
        -:        -: 9020:/*EOF*/
        -:        -: 9021:/*EOF*/
        -:        -: 9022:/*EOF*/
        -:        -: 9023:/*EOF*/
        -:        -: 9024:/*EOF*/
        -:        -: 9025:/*EOF*/
        -:        -: 9026:/*EOF*/
        -:        -: 9027:/*EOF*/
        -:        -: 9028:/*EOF*/
        -:        -: 9029:/*EOF*/
        -:        -: 9030:/*EOF*/
        -:        -: 9031:/*EOF*/
        -:        -: 9032:/*EOF*/
        -:        -: 9033:/*EOF*/
        -:        -: 9034:/*EOF*/
        -:        -: 9035:/*EOF*/
        -:        -: 9036:/*EOF*/
        -:        -: 9037:/*EOF*/
        -:        -: 9038:/*EOF*/
        -:        -: 9039:/*EOF*/
        -:        -: 9040:/*EOF*/
        -:        -: 9041:/*EOF*/
        -:        -: 9042:/*EOF*/
        -:        -: 9043:/*EOF*/
        -:        -: 9044:/*EOF*/
        -:        -: 9045:/*EOF*/
        -:        -: 9046:/*EOF*/
        -:        -: 9047:/*EOF*/
        -:        -: 9048:/*EOF*/
        -:        -: 9049:/*EOF*/
        -:        -: 9050:/*EOF*/
        -:        -: 9051:/*EOF*/
        -:        -: 9052:/*EOF*/
        -:        -: 9053:/*EOF*/
        -:        -: 9054:/*EOF*/
        -:        -: 9055:/*EOF*/
        -:        -: 9056:/*EOF*/
        -:        -: 9057:/*EOF*/
        -:        -: 9058:/*EOF*/
        -:        -: 9059:/*EOF*/
        -:        -: 9060:/*EOF*/
        -:        -: 9061:/*EOF*/
        -:        -: 9062:/*EOF*/
        -:        -: 9063:/*EOF*/
        -:        -: 9064:/*EOF*/
        -:        -: 9065:/*EOF*/
        -:        -: 9066:/*EOF*/
        -:        -: 9067:/*EOF*/
        -:        -: 9068:/*EOF*/
        -:        -: 9069:/*EOF*/
        -:        -: 9070:/*EOF*/
        -:        -: 9071:/*EOF*/
        -:        -: 9072:/*EOF*/
        -:        -: 9073:/*EOF*/
        -:        -: 9074:/*EOF*/
        -:        -: 9075:/*EOF*/
        -:        -: 9076:/*EOF*/
        -:        -: 9077:/*EOF*/
        -:        -: 9078:/*EOF*/
        -:        -: 9079:/*EOF*/
        -:        -: 9080:/*EOF*/
        -:        -: 9081:/*EOF*/
        -:        -: 9082:/*EOF*/
        -:        -: 9083:/*EOF*/
        -:        -: 9084:/*EOF*/
        -:        -: 9085:/*EOF*/
        -:        -: 9086:/*EOF*/
        -:        -: 9087:/*EOF*/
        -:        -: 9088:/*EOF*/
        -:        -: 9089:/*EOF*/
        -:        -: 9090:/*EOF*/
        -:        -: 9091:/*EOF*/
        -:        -: 9092:/*EOF*/
        -:        -: 9093:/*EOF*/
        -:        -: 9094:/*EOF*/
        -:        -: 9095:/*EOF*/
        -:        -: 9096:/*EOF*/
        -:        -: 9097:/*EOF*/
        -:        -: 9098:/*EOF*/
        -:        -: 9099:/*EOF*/
        -:        -: 9100:/*EOF*/
        -:        -: 9101:/*EOF*/
        -:        -: 9102:/*EOF*/
        -:        -: 9103:/*EOF*/
        -:        -: 9104:/*EOF*/
        -:        -: 9105:/*EOF*/
        -:        -: 9106:/*EOF*/
        -:        -: 9107:/*EOF*/
        -:        -: 9108:/*EOF*/
        -:        -: 9109:/*EOF*/
        -:        -: 9110:/*EOF*/
        -:        -: 9111:/*EOF*/
        -:        -: 9112:/*EOF*/
        -:        -: 9113:/*EOF*/
        -:        -: 9114:/*EOF*/
        -:        -: 9115:/*EOF*/
        -:        -: 9116:/*EOF*/
        -:        -: 9117:/*EOF*/
        -:        -: 9118:/*EOF*/
        -:        -: 9119:/*EOF*/
        -:        -: 9120:/*EOF*/
        -:        -: 9121:/*EOF*/
        -:        -: 9122:/*EOF*/
        -:        -: 9123:/*EOF*/
        -:        -: 9124:/*EOF*/
        -:        -: 9125:/*EOF*/
        -:        -: 9126:/*EOF*/
        -:        -: 9127:/*EOF*/
        -:        -: 9128:/*EOF*/
        -:        -: 9129:/*EOF*/
        -:        -: 9130:/*EOF*/
        -:        -: 9131:/*EOF*/
        -:        -: 9132:/*EOF*/
        -:        -: 9133:/*EOF*/
        -:        -: 9134:/*EOF*/
        -:        -: 9135:/*EOF*/
        -:        -: 9136:/*EOF*/
        -:        -: 9137:/*EOF*/
        -:        -: 9138:/*EOF*/
        -:        -: 9139:/*EOF*/
        -:        -: 9140:/*EOF*/
        -:        -: 9141:/*EOF*/
        -:        -: 9142:/*EOF*/
        -:        -: 9143:/*EOF*/
        -:        -: 9144:/*EOF*/
        -:        -: 9145:/*EOF*/
        -:        -: 9146:/*EOF*/
        -:        -: 9147:/*EOF*/
        -:        -: 9148:/*EOF*/
        -:        -: 9149:/*EOF*/
        -:        -: 9150:/*EOF*/
        -:        -: 9151:/*EOF*/
        -:        -: 9152:/*EOF*/
        -:        -: 9153:/*EOF*/
        -:        -: 9154:/*EOF*/
        -:        -: 9155:/*EOF*/
        -:        -: 9156:/*EOF*/
        -:        -: 9157:/*EOF*/
        -:        -: 9158:/*EOF*/
        -:        -: 9159:/*EOF*/
        -:        -: 9160:/*EOF*/
        -:        -: 9161:/*EOF*/
        -:        -: 9162:/*EOF*/
        -:        -: 9163:/*EOF*/
        -:        -: 9164:/*EOF*/
        -:        -: 9165:/*EOF*/
        -:        -: 9166:/*EOF*/
        -:        -: 9167:/*EOF*/
        -:        -: 9168:/*EOF*/
        -:        -: 9169:/*EOF*/
        -:        -: 9170:/*EOF*/
        -:        -: 9171:/*EOF*/
        -:        -: 9172:/*EOF*/
        -:        -: 9173:/*EOF*/
        -:        -: 9174:/*EOF*/
        -:        -: 9175:/*EOF*/
        -:        -: 9176:/*EOF*/
        -:        -: 9177:/*EOF*/
        -:        -: 9178:/*EOF*/
        -:        -: 9179:/*EOF*/
        -:        -: 9180:/*EOF*/
        -:        -: 9181:/*EOF*/
        -:        -: 9182:/*EOF*/
        -:        -: 9183:/*EOF*/
        -:        -: 9184:/*EOF*/
        -:        -: 9185:/*EOF*/
        -:        -: 9186:/*EOF*/
        -:        -: 9187:/*EOF*/
        -:        -: 9188:/*EOF*/
        -:        -: 9189:/*EOF*/
        -:        -: 9190:/*EOF*/
        -:        -: 9191:/*EOF*/
        -:        -: 9192:/*EOF*/
        -:        -: 9193:/*EOF*/
        -:        -: 9194:/*EOF*/
        -:        -: 9195:/*EOF*/
        -:        -: 9196:/*EOF*/
        -:        -: 9197:/*EOF*/
        -:        -: 9198:/*EOF*/
        -:        -: 9199:/*EOF*/
        -:        -: 9200:/*EOF*/
        -:        -: 9201:/*EOF*/
        -:        -: 9202:/*EOF*/
        -:        -: 9203:/*EOF*/
        -:        -: 9204:/*EOF*/
        -:        -: 9205:/*EOF*/
        -:        -: 9206:/*EOF*/
        -:        -: 9207:/*EOF*/
        -:        -: 9208:/*EOF*/
        -:        -: 9209:/*EOF*/
        -:        -: 9210:/*EOF*/
        -:        -: 9211:/*EOF*/
        -:        -: 9212:/*EOF*/
        -:        -: 9213:/*EOF*/
        -:        -: 9214:/*EOF*/
        -:        -: 9215:/*EOF*/
        -:        -: 9216:/*EOF*/
        -:        -: 9217:/*EOF*/
        -:        -: 9218:/*EOF*/
        -:        -: 9219:/*EOF*/
        -:        -: 9220:/*EOF*/
        -:        -: 9221:/*EOF*/
        -:        -: 9222:/*EOF*/
        -:        -: 9223:/*EOF*/
        -:        -: 9224:/*EOF*/
        -:        -: 9225:/*EOF*/
        -:        -: 9226:/*EOF*/
        -:        -: 9227:/*EOF*/
        -:        -: 9228:/*EOF*/
        -:        -: 9229:/*EOF*/
        -:        -: 9230:/*EOF*/
        -:        -: 9231:/*EOF*/
        -:        -: 9232:/*EOF*/
        -:        -: 9233:/*EOF*/
        -:        -: 9234:/*EOF*/
        -:        -: 9235:/*EOF*/
        -:        -: 9236:/*EOF*/
        -:        -: 9237:/*EOF*/
        -:        -: 9238:/*EOF*/
        -:        -: 9239:/*EOF*/
        -:        -: 9240:/*EOF*/
        -:        -: 9241:/*EOF*/
        -:        -: 9242:/*EOF*/
        -:        -: 9243:/*EOF*/
        -:        -: 9244:/*EOF*/
        -:        -: 9245:/*EOF*/
        -:        -: 9246:/*EOF*/
        -:        -: 9247:/*EOF*/
        -:        -: 9248:/*EOF*/
        -:        -: 9249:/*EOF*/
        -:        -: 9250:/*EOF*/
        -:        -: 9251:/*EOF*/
        -:        -: 9252:/*EOF*/
        -:        -: 9253:/*EOF*/
        -:        -: 9254:/*EOF*/
        -:        -: 9255:/*EOF*/
        -:        -: 9256:/*EOF*/
        -:        -: 9257:/*EOF*/
        -:        -: 9258:/*EOF*/
        -:        -: 9259:/*EOF*/
        -:        -: 9260:/*EOF*/
        -:        -: 9261:/*EOF*/
        -:        -: 9262:/*EOF*/
        -:        -: 9263:/*EOF*/
        -:        -: 9264:/*EOF*/
        -:        -: 9265:/*EOF*/
        -:        -: 9266:/*EOF*/
        -:        -: 9267:/*EOF*/
        -:        -: 9268:/*EOF*/
        -:        -: 9269:/*EOF*/
        -:        -: 9270:/*EOF*/
        -:        -: 9271:/*EOF*/
        -:        -: 9272:/*EOF*/
        -:        -: 9273:/*EOF*/
        -:        -: 9274:/*EOF*/
        -:        -: 9275:/*EOF*/
        -:        -: 9276:/*EOF*/
        -:        -: 9277:/*EOF*/
        -:        -: 9278:/*EOF*/
        -:        -: 9279:/*EOF*/
        -:        -: 9280:/*EOF*/
        -:        -: 9281:/*EOF*/
        -:        -: 9282:/*EOF*/
        -:        -: 9283:/*EOF*/
        -:        -: 9284:/*EOF*/
        -:        -: 9285:/*EOF*/
        -:        -: 9286:/*EOF*/
        -:        -: 9287:/*EOF*/
        -:        -: 9288:/*EOF*/
        -:        -: 9289:/*EOF*/
        -:        -: 9290:/*EOF*/
        -:        -: 9291:/*EOF*/
        -:        -: 9292:/*EOF*/
        -:        -: 9293:/*EOF*/
        -:        -: 9294:/*EOF*/
        -:        -: 9295:/*EOF*/
        -:        -: 9296:/*EOF*/
        -:        -: 9297:/*EOF*/
        -:        -: 9298:/*EOF*/
        -:        -: 9299:/*EOF*/
        -:        -: 9300:/*EOF*/
        -:        -: 9301:/*EOF*/
        -:        -: 9302:/*EOF*/
        -:        -: 9303:/*EOF*/
        -:        -: 9304:/*EOF*/
        -:        -: 9305:/*EOF*/
        -:        -: 9306:/*EOF*/
        -:        -: 9307:/*EOF*/
        -:        -: 9308:/*EOF*/
        -:        -: 9309:/*EOF*/
        -:        -: 9310:/*EOF*/
        -:        -: 9311:/*EOF*/
        -:        -: 9312:/*EOF*/
        -:        -: 9313:/*EOF*/
        -:        -: 9314:/*EOF*/
        -:        -: 9315:/*EOF*/
        -:        -: 9316:/*EOF*/
        -:        -: 9317:/*EOF*/
        -:        -: 9318:/*EOF*/
        -:        -: 9319:/*EOF*/
        -:        -: 9320:/*EOF*/
        -:        -: 9321:/*EOF*/
        -:        -: 9322:/*EOF*/
        -:        -: 9323:/*EOF*/
        -:        -: 9324:/*EOF*/
        -:        -: 9325:/*EOF*/
        -:        -: 9326:/*EOF*/
        -:        -: 9327:/*EOF*/
        -:        -: 9328:/*EOF*/
        -:        -: 9329:/*EOF*/
        -:        -: 9330:/*EOF*/
        -:        -: 9331:/*EOF*/
        -:        -: 9332:/*EOF*/
        -:        -: 9333:/*EOF*/
        -:        -: 9334:/*EOF*/
        -:        -: 9335:/*EOF*/
        -:        -: 9336:/*EOF*/
        -:        -: 9337:/*EOF*/
        -:        -: 9338:/*EOF*/
        -:        -: 9339:/*EOF*/
        -:        -: 9340:/*EOF*/
        -:        -: 9341:/*EOF*/
        -:        -: 9342:/*EOF*/
        -:        -: 9343:/*EOF*/
        -:        -: 9344:/*EOF*/
        -:        -: 9345:/*EOF*/
        -:        -: 9346:/*EOF*/
        -:        -: 9347:/*EOF*/
        -:        -: 9348:/*EOF*/
        -:        -: 9349:/*EOF*/
        -:        -: 9350:/*EOF*/
        -:        -: 9351:/*EOF*/
        -:        -: 9352:/*EOF*/
        -:        -: 9353:/*EOF*/
        -:        -: 9354:/*EOF*/
        -:        -: 9355:/*EOF*/
        -:        -: 9356:/*EOF*/
        -:        -: 9357:/*EOF*/
        -:        -: 9358:/*EOF*/
        -:        -: 9359:/*EOF*/
        -:        -: 9360:/*EOF*/
        -:        -: 9361:/*EOF*/
        -:        -: 9362:/*EOF*/
        -:        -: 9363:/*EOF*/
        -:        -: 9364:/*EOF*/
        -:        -: 9365:/*EOF*/
        -:        -: 9366:/*EOF*/
        -:        -: 9367:/*EOF*/
        -:        -: 9368:/*EOF*/
        -:        -: 9369:/*EOF*/
        -:        -: 9370:/*EOF*/
        -:        -: 9371:/*EOF*/
        -:        -: 9372:/*EOF*/
        -:        -: 9373:/*EOF*/
        -:        -: 9374:/*EOF*/
        -:        -: 9375:/*EOF*/
        -:        -: 9376:/*EOF*/
        -:        -: 9377:/*EOF*/
        -:        -: 9378:/*EOF*/
        -:        -: 9379:/*EOF*/
        -:        -: 9380:/*EOF*/
        -:        -: 9381:/*EOF*/
        -:        -: 9382:/*EOF*/
        -:        -: 9383:/*EOF*/
        -:        -: 9384:/*EOF*/
        -:        -: 9385:/*EOF*/
        -:        -: 9386:/*EOF*/
        -:        -: 9387:/*EOF*/
        -:        -: 9388:/*EOF*/
        -:        -: 9389:/*EOF*/
        -:        -: 9390:/*EOF*/
        -:        -: 9391:/*EOF*/
        -:        -: 9392:/*EOF*/
        -:        -: 9393:/*EOF*/
        -:        -: 9394:/*EOF*/
        -:        -: 9395:/*EOF*/
        -:        -: 9396:/*EOF*/
        -:        -: 9397:/*EOF*/
        -:        -: 9398:/*EOF*/
        -:        -: 9399:/*EOF*/
        -:        -: 9400:/*EOF*/
        -:        -: 9401:/*EOF*/
        -:        -: 9402:/*EOF*/
        -:        -: 9403:/*EOF*/
        -:        -: 9404:/*EOF*/
        -:        -: 9405:/*EOF*/
        -:        -: 9406:/*EOF*/
        -:        -: 9407:/*EOF*/
        -:        -: 9408:/*EOF*/
        -:        -: 9409:/*EOF*/
        -:        -: 9410:/*EOF*/
        -:        -: 9411:/*EOF*/
        -:        -: 9412:/*EOF*/
        -:        -: 9413:/*EOF*/
        -:        -: 9414:/*EOF*/
        -:        -: 9415:/*EOF*/
        -:        -: 9416:/*EOF*/
        -:        -: 9417:/*EOF*/
        -:        -: 9418:/*EOF*/
        -:        -: 9419:/*EOF*/
        -:        -: 9420:/*EOF*/
        -:        -: 9421:/*EOF*/
        -:        -: 9422:/*EOF*/
        -:        -: 9423:/*EOF*/
        -:        -: 9424:/*EOF*/
        -:        -: 9425:/*EOF*/
        -:        -: 9426:/*EOF*/
        -:        -: 9427:/*EOF*/
        -:        -: 9428:/*EOF*/
        -:        -: 9429:/*EOF*/
        -:        -: 9430:/*EOF*/
        -:        -: 9431:/*EOF*/
        -:        -: 9432:/*EOF*/
        -:        -: 9433:/*EOF*/
        -:        -: 9434:/*EOF*/
        -:        -: 9435:/*EOF*/
        -:        -: 9436:/*EOF*/
        -:        -: 9437:/*EOF*/
        -:        -: 9438:/*EOF*/
        -:        -: 9439:/*EOF*/
        -:        -: 9440:/*EOF*/
        -:        -: 9441:/*EOF*/
        -:        -: 9442:/*EOF*/
        -:        -: 9443:/*EOF*/
        -:        -: 9444:/*EOF*/
        -:        -: 9445:/*EOF*/
        -:        -: 9446:/*EOF*/
        -:        -: 9447:/*EOF*/
        -:        -: 9448:/*EOF*/
        -:        -: 9449:/*EOF*/
        -:        -: 9450:/*EOF*/
        -:        -: 9451:/*EOF*/
        -:        -: 9452:/*EOF*/
        -:        -: 9453:/*EOF*/
        -:        -: 9454:/*EOF*/
        -:        -: 9455:/*EOF*/
        -:        -: 9456:/*EOF*/
        -:        -: 9457:/*EOF*/
        -:        -: 9458:/*EOF*/
        -:        -: 9459:/*EOF*/
        -:        -: 9460:/*EOF*/
        -:        -: 9461:/*EOF*/
        -:        -: 9462:/*EOF*/
        -:        -: 9463:/*EOF*/
        -:        -: 9464:/*EOF*/
        -:        -: 9465:/*EOF*/
        -:        -: 9466:/*EOF*/
        -:        -: 9467:/*EOF*/
        -:        -: 9468:/*EOF*/
        -:        -: 9469:/*EOF*/
        -:        -: 9470:/*EOF*/
        -:        -: 9471:/*EOF*/
        -:        -: 9472:/*EOF*/
        -:        -: 9473:/*EOF*/
        -:        -: 9474:/*EOF*/
        -:        -: 9475:/*EOF*/
        -:        -: 9476:/*EOF*/
        -:        -: 9477:/*EOF*/
        -:        -: 9478:/*EOF*/
        -:        -: 9479:/*EOF*/
        -:        -: 9480:/*EOF*/
        -:        -: 9481:/*EOF*/
        -:        -: 9482:/*EOF*/
        -:        -: 9483:/*EOF*/
        -:        -: 9484:/*EOF*/
        -:        -: 9485:/*EOF*/
        -:        -: 9486:/*EOF*/
        -:        -: 9487:/*EOF*/
        -:        -: 9488:/*EOF*/
        -:        -: 9489:/*EOF*/
        -:        -: 9490:/*EOF*/
        -:        -: 9491:/*EOF*/
        -:        -: 9492:/*EOF*/
        -:        -: 9493:/*EOF*/
        -:        -: 9494:/*EOF*/
        -:        -: 9495:/*EOF*/
        -:        -: 9496:/*EOF*/
        -:        -: 9497:/*EOF*/
        -:        -: 9498:/*EOF*/
        -:        -: 9499:/*EOF*/
        -:        -: 9500:/*EOF*/
        -:        -: 9501:/*EOF*/
        -:        -: 9502:/*EOF*/
        -:        -: 9503:/*EOF*/
        -:        -: 9504:/*EOF*/
        -:        -: 9505:/*EOF*/
        -:        -: 9506:/*EOF*/
        -:        -: 9507:/*EOF*/
        -:        -: 9508:/*EOF*/
        -:        -: 9509:/*EOF*/
        -:        -: 9510:/*EOF*/
        -:        -: 9511:/*EOF*/
        -:        -: 9512:/*EOF*/
        -:        -: 9513:/*EOF*/
        -:        -: 9514:/*EOF*/
        -:        -: 9515:/*EOF*/
        -:        -: 9516:/*EOF*/
        -:        -: 9517:/*EOF*/
        -:        -: 9518:/*EOF*/
        -:        -: 9519:/*EOF*/
        -:        -: 9520:/*EOF*/
        -:        -: 9521:/*EOF*/
        -:        -: 9522:/*EOF*/
        -:        -: 9523:/*EOF*/
        -:        -: 9524:/*EOF*/
        -:        -: 9525:/*EOF*/
        -:        -: 9526:/*EOF*/
        -:        -: 9527:/*EOF*/
        -:        -: 9528:/*EOF*/
        -:        -: 9529:/*EOF*/
        -:        -: 9530:/*EOF*/
        -:        -: 9531:/*EOF*/
        -:        -: 9532:/*EOF*/
        -:        -: 9533:/*EOF*/
        -:        -: 9534:/*EOF*/
        -:        -: 9535:/*EOF*/
        -:        -: 9536:/*EOF*/
        -:        -: 9537:/*EOF*/
        -:        -: 9538:/*EOF*/
        -:        -: 9539:/*EOF*/
        -:        -: 9540:/*EOF*/
        -:        -: 9541:/*EOF*/
        -:        -: 9542:/*EOF*/
        -:        -: 9543:/*EOF*/
        -:        -: 9544:/*EOF*/
        -:        -: 9545:/*EOF*/
        -:        -: 9546:/*EOF*/
        -:        -: 9547:/*EOF*/
        -:        -: 9548:/*EOF*/
        -:        -: 9549:/*EOF*/
        -:        -: 9550:/*EOF*/
        -:        -: 9551:/*EOF*/
        -:        -: 9552:/*EOF*/
        -:        -: 9553:/*EOF*/
        -:        -: 9554:/*EOF*/
        -:        -: 9555:/*EOF*/
        -:        -: 9556:/*EOF*/
        -:        -: 9557:/*EOF*/
        -:        -: 9558:/*EOF*/
        -:        -: 9559:/*EOF*/
        -:        -: 9560:/*EOF*/
        -:        -: 9561:/*EOF*/
        -:        -: 9562:/*EOF*/
        -:        -: 9563:/*EOF*/
        -:        -: 9564:/*EOF*/
        -:        -: 9565:/*EOF*/
        -:        -: 9566:/*EOF*/
        -:        -: 9567:/*EOF*/
        -:        -: 9568:/*EOF*/
        -:        -: 9569:/*EOF*/
        -:        -: 9570:/*EOF*/
        -:        -: 9571:/*EOF*/
        -:        -: 9572:/*EOF*/
        -:        -: 9573:/*EOF*/
        -:        -: 9574:/*EOF*/
        -:        -: 9575:/*EOF*/
        -:        -: 9576:/*EOF*/
        -:        -: 9577:/*EOF*/
        -:        -: 9578:/*EOF*/
        -:        -: 9579:/*EOF*/
        -:        -: 9580:/*EOF*/
        -:        -: 9581:/*EOF*/
        -:        -: 9582:/*EOF*/
        -:        -: 9583:/*EOF*/
        -:        -: 9584:/*EOF*/
        -:        -: 9585:/*EOF*/
        -:        -: 9586:/*EOF*/
        -:        -: 9587:/*EOF*/
        -:        -: 9588:/*EOF*/
        -:        -: 9589:/*EOF*/
        -:        -: 9590:/*EOF*/
        -:        -: 9591:/*EOF*/
        -:        -: 9592:/*EOF*/
        -:        -: 9593:/*EOF*/
        -:        -: 9594:/*EOF*/
        -:        -: 9595:/*EOF*/
        -:        -: 9596:/*EOF*/
        -:        -: 9597:/*EOF*/
        -:        -: 9598:/*EOF*/
        -:        -: 9599:/*EOF*/
        -:        -: 9600:/*EOF*/
        -:        -: 9601:/*EOF*/
        -:        -: 9602:/*EOF*/
        -:        -: 9603:/*EOF*/
        -:        -: 9604:/*EOF*/
        -:        -: 9605:/*EOF*/
        -:        -: 9606:/*EOF*/
        -:        -: 9607:/*EOF*/
        -:        -: 9608:/*EOF*/
        -:        -: 9609:/*EOF*/
        -:        -: 9610:/*EOF*/
        -:        -: 9611:/*EOF*/
        -:        -: 9612:/*EOF*/
        -:        -: 9613:/*EOF*/
        -:        -: 9614:/*EOF*/
        -:        -: 9615:/*EOF*/
        -:        -: 9616:/*EOF*/
        -:        -: 9617:/*EOF*/
        -:        -: 9618:/*EOF*/
        -:        -: 9619:/*EOF*/
        -:        -: 9620:/*EOF*/
        -:        -: 9621:/*EOF*/
        -:        -: 9622:/*EOF*/
        -:        -: 9623:/*EOF*/
        -:        -: 9624:/*EOF*/
        -:        -: 9625:/*EOF*/
        -:        -: 9626:/*EOF*/
        -:        -: 9627:/*EOF*/
        -:        -: 9628:/*EOF*/
        -:        -: 9629:/*EOF*/
        -:        -: 9630:/*EOF*/
        -:        -: 9631:/*EOF*/
        -:        -: 9632:/*EOF*/
        -:        -: 9633:/*EOF*/
        -:        -: 9634:/*EOF*/
        -:        -: 9635:/*EOF*/
        -:        -: 9636:/*EOF*/
        -:        -: 9637:/*EOF*/
        -:        -: 9638:/*EOF*/
        -:        -: 9639:/*EOF*/
        -:        -: 9640:/*EOF*/
        -:        -: 9641:/*EOF*/
        -:        -: 9642:/*EOF*/
        -:        -: 9643:/*EOF*/
        -:        -: 9644:/*EOF*/
        -:        -: 9645:/*EOF*/
        -:        -: 9646:/*EOF*/
        -:        -: 9647:/*EOF*/
        -:        -: 9648:/*EOF*/
        -:        -: 9649:/*EOF*/
        -:        -: 9650:/*EOF*/
        -:        -: 9651:/*EOF*/
        -:        -: 9652:/*EOF*/
        -:        -: 9653:/*EOF*/
        -:        -: 9654:/*EOF*/
        -:        -: 9655:/*EOF*/
        -:        -: 9656:/*EOF*/
        -:        -: 9657:/*EOF*/
        -:        -: 9658:/*EOF*/
        -:        -: 9659:/*EOF*/
        -:        -: 9660:/*EOF*/
        -:        -: 9661:/*EOF*/
        -:        -: 9662:/*EOF*/
        -:        -: 9663:/*EOF*/
        -:        -: 9664:/*EOF*/
        -:        -: 9665:/*EOF*/
        -:        -: 9666:/*EOF*/
        -:        -: 9667:/*EOF*/
        -:        -: 9668:/*EOF*/
        -:        -: 9669:/*EOF*/
        -:        -: 9670:/*EOF*/
        -:        -: 9671:/*EOF*/
        -:        -: 9672:/*EOF*/
        -:        -: 9673:/*EOF*/
        -:        -: 9674:/*EOF*/
        -:        -: 9675:/*EOF*/
        -:        -: 9676:/*EOF*/
        -:        -: 9677:/*EOF*/
        -:        -: 9678:/*EOF*/
        -:        -: 9679:/*EOF*/
        -:        -: 9680:/*EOF*/
        -:        -: 9681:/*EOF*/
        -:        -: 9682:/*EOF*/
        -:        -: 9683:/*EOF*/
        -:        -: 9684:/*EOF*/
        -:        -: 9685:/*EOF*/
        -:        -: 9686:/*EOF*/
        -:        -: 9687:/*EOF*/
        -:        -: 9688:/*EOF*/
        -:        -: 9689:/*EOF*/
        -:        -: 9690:/*EOF*/
        -:        -: 9691:/*EOF*/
        -:        -: 9692:/*EOF*/
        -:        -: 9693:/*EOF*/
        -:        -: 9694:/*EOF*/
        -:        -: 9695:/*EOF*/
        -:        -: 9696:/*EOF*/
        -:        -: 9697:/*EOF*/
        -:        -: 9698:/*EOF*/
        -:        -: 9699:/*EOF*/
        -:        -: 9700:/*EOF*/
        -:        -: 9701:/*EOF*/
        -:        -: 9702:/*EOF*/
        -:        -: 9703:/*EOF*/
        -:        -: 9704:/*EOF*/
        -:        -: 9705:/*EOF*/
        -:        -: 9706:/*EOF*/
        -:        -: 9707:/*EOF*/
        -:        -: 9708:/*EOF*/
        -:        -: 9709:/*EOF*/
        -:        -: 9710:/*EOF*/
        -:        -: 9711:/*EOF*/
        -:        -: 9712:/*EOF*/
        -:        -: 9713:/*EOF*/
        -:        -: 9714:/*EOF*/
        -:        -: 9715:/*EOF*/
        -:        -: 9716:/*EOF*/
        -:        -: 9717:/*EOF*/
        -:        -: 9718:/*EOF*/
        -:        -: 9719:/*EOF*/
        -:        -: 9720:/*EOF*/
        -:        -: 9721:/*EOF*/
        -:        -: 9722:/*EOF*/
        -:        -: 9723:/*EOF*/
        -:        -: 9724:/*EOF*/
        -:        -: 9725:/*EOF*/
        -:        -: 9726:/*EOF*/
        -:        -: 9727:/*EOF*/
        -:        -: 9728:/*EOF*/
        -:        -: 9729:/*EOF*/
        -:        -: 9730:/*EOF*/
        -:        -: 9731:/*EOF*/
        -:        -: 9732:/*EOF*/
        -:        -: 9733:/*EOF*/
        -:        -: 9734:/*EOF*/
        -:        -: 9735:/*EOF*/
        -:        -: 9736:/*EOF*/
        -:        -: 9737:/*EOF*/
        -:        -: 9738:/*EOF*/
        -:        -: 9739:/*EOF*/
        -:        -: 9740:/*EOF*/
        -:        -: 9741:/*EOF*/
        -:        -: 9742:/*EOF*/
        -:        -: 9743:/*EOF*/
        -:        -: 9744:/*EOF*/
        -:        -: 9745:/*EOF*/
        -:        -: 9746:/*EOF*/
        -:        -: 9747:/*EOF*/
        -:        -: 9748:/*EOF*/
        -:        -: 9749:/*EOF*/
        -:        -: 9750:/*EOF*/
        -:        -: 9751:/*EOF*/
        -:        -: 9752:/*EOF*/
        -:        -: 9753:/*EOF*/
        -:        -: 9754:/*EOF*/
        -:        -: 9755:/*EOF*/
        -:        -: 9756:/*EOF*/
        -:        -: 9757:/*EOF*/
        -:        -: 9758:/*EOF*/
        -:        -: 9759:/*EOF*/
        -:        -: 9760:/*EOF*/
        -:        -: 9761:/*EOF*/
        -:        -: 9762:/*EOF*/
        -:        -: 9763:/*EOF*/
        -:        -: 9764:/*EOF*/
        -:        -: 9765:/*EOF*/
        -:        -: 9766:/*EOF*/
        -:        -: 9767:/*EOF*/
        -:        -: 9768:/*EOF*/
        -:        -: 9769:/*EOF*/
        -:        -: 9770:/*EOF*/
        -:        -: 9771:/*EOF*/
        -:        -: 9772:/*EOF*/
        -:        -: 9773:/*EOF*/
        -:        -: 9774:/*EOF*/
        -:        -: 9775:/*EOF*/
        -:        -: 9776:/*EOF*/
        -:        -: 9777:/*EOF*/
        -:        -: 9778:/*EOF*/
        -:        -: 9779:/*EOF*/
        -:        -: 9780:/*EOF*/
        -:        -: 9781:/*EOF*/
        -:        -: 9782:/*EOF*/
        -:        -: 9783:/*EOF*/
        -:        -: 9784:/*EOF*/
        -:        -: 9785:/*EOF*/
        -:        -: 9786:/*EOF*/
        -:        -: 9787:/*EOF*/
        -:        -: 9788:/*EOF*/
        -:        -: 9789:/*EOF*/
        -:        -: 9790:/*EOF*/
        -:        -: 9791:/*EOF*/
        -:        -: 9792:/*EOF*/
        -:        -: 9793:/*EOF*/
        -:        -: 9794:/*EOF*/
        -:        -: 9795:/*EOF*/
        -:        -: 9796:/*EOF*/
        -:        -: 9797:/*EOF*/
        -:        -: 9798:/*EOF*/
        -:        -: 9799:/*EOF*/
        -:        -: 9800:/*EOF*/
        -:        -: 9801:/*EOF*/
        -:        -: 9802:/*EOF*/
        -:        -: 9803:/*EOF*/
        -:        -: 9804:/*EOF*/
        -:        -: 9805:/*EOF*/
        -:        -: 9806:/*EOF*/
        -:        -: 9807:/*EOF*/
        -:        -: 9808:/*EOF*/
        -:        -: 9809:/*EOF*/
        -:        -: 9810:/*EOF*/
        -:        -: 9811:/*EOF*/
        -:        -: 9812:/*EOF*/
        -:        -: 9813:/*EOF*/
        -:        -: 9814:/*EOF*/
        -:        -: 9815:/*EOF*/
        -:        -: 9816:/*EOF*/
        -:        -: 9817:/*EOF*/
        -:        -: 9818:/*EOF*/
        -:        -: 9819:/*EOF*/
        -:        -: 9820:/*EOF*/
        -:        -: 9821:/*EOF*/
        -:        -: 9822:/*EOF*/
        -:        -: 9823:/*EOF*/
        -:        -: 9824:/*EOF*/
        -:        -: 9825:/*EOF*/
        -:        -: 9826:/*EOF*/
        -:        -: 9827:/*EOF*/
        -:        -: 9828:/*EOF*/
        -:        -: 9829:/*EOF*/
        -:        -: 9830:/*EOF*/
        -:        -: 9831:/*EOF*/
        -:        -: 9832:/*EOF*/
        -:        -: 9833:/*EOF*/
        -:        -: 9834:/*EOF*/
        -:        -: 9835:/*EOF*/
        -:        -: 9836:/*EOF*/
        -:        -: 9837:/*EOF*/
        -:        -: 9838:/*EOF*/
        -:        -: 9839:/*EOF*/
        -:        -: 9840:/*EOF*/
        -:        -: 9841:/*EOF*/
        -:        -: 9842:/*EOF*/
        -:        -: 9843:/*EOF*/
        -:        -: 9844:/*EOF*/
        -:        -: 9845:/*EOF*/
        -:        -: 9846:/*EOF*/
        -:        -: 9847:/*EOF*/
        -:        -: 9848:/*EOF*/
        -:        -: 9849:/*EOF*/
        -:        -: 9850:/*EOF*/
        -:        -: 9851:/*EOF*/
        -:        -: 9852:/*EOF*/
        -:        -: 9853:/*EOF*/
        -:        -: 9854:/*EOF*/
        -:        -: 9855:/*EOF*/
        -:        -: 9856:/*EOF*/
        -:        -: 9857:/*EOF*/
        -:        -: 9858:/*EOF*/
        -:        -: 9859:/*EOF*/
        -:        -: 9860:/*EOF*/
        -:        -: 9861:/*EOF*/
        -:        -: 9862:/*EOF*/
        -:        -: 9863:/*EOF*/
        -:        -: 9864:/*EOF*/
        -:        -: 9865:/*EOF*/
        -:        -: 9866:/*EOF*/
        -:        -: 9867:/*EOF*/
        -:        -: 9868:/*EOF*/
        -:        -: 9869:/*EOF*/
        -:        -: 9870:/*EOF*/
        -:        -: 9871:/*EOF*/
        -:        -: 9872:/*EOF*/
        -:        -: 9873:/*EOF*/
        -:        -: 9874:/*EOF*/
        -:        -: 9875:/*EOF*/
        -:        -: 9876:/*EOF*/
        -:        -: 9877:/*EOF*/
        -:        -: 9878:/*EOF*/
        -:        -: 9879:/*EOF*/
        -:        -: 9880:/*EOF*/
        -:        -: 9881:/*EOF*/
        -:        -: 9882:/*EOF*/
        -:        -: 9883:/*EOF*/
        -:        -: 9884:/*EOF*/
        -:        -: 9885:/*EOF*/
        -:        -: 9886:/*EOF*/
        -:        -: 9887:/*EOF*/
        -:        -: 9888:/*EOF*/
        -:        -: 9889:/*EOF*/
        -:        -: 9890:/*EOF*/
        -:        -: 9891:/*EOF*/
        -:        -: 9892:/*EOF*/
        -:        -: 9893:/*EOF*/
        -:        -: 9894:/*EOF*/
        -:        -: 9895:/*EOF*/
        -:        -: 9896:/*EOF*/
        -:        -: 9897:/*EOF*/
        -:        -: 9898:/*EOF*/
        -:        -: 9899:/*EOF*/
        -:        -: 9900:/*EOF*/
        -:        -: 9901:/*EOF*/
        -:        -: 9902:/*EOF*/
        -:        -: 9903:/*EOF*/
        -:        -: 9904:/*EOF*/
        -:        -: 9905:/*EOF*/
        -:        -: 9906:/*EOF*/
        -:        -: 9907:/*EOF*/
        -:        -: 9908:/*EOF*/
        -:        -: 9909:/*EOF*/
        -:        -: 9910:/*EOF*/
        -:        -: 9911:/*EOF*/
        -:        -: 9912:/*EOF*/
        -:        -: 9913:/*EOF*/
        -:        -: 9914:/*EOF*/
        -:        -: 9915:/*EOF*/
        -:        -: 9916:/*EOF*/
        -:        -: 9917:/*EOF*/
        -:        -: 9918:/*EOF*/
        -:        -: 9919:/*EOF*/
        -:        -: 9920:/*EOF*/
        -:        -: 9921:/*EOF*/
        -:        -: 9922:/*EOF*/
        -:        -: 9923:/*EOF*/
        -:        -: 9924:/*EOF*/
        -:        -: 9925:/*EOF*/
        -:        -: 9926:/*EOF*/
        -:        -: 9927:/*EOF*/
        -:        -: 9928:/*EOF*/
        -:        -: 9929:/*EOF*/
        -:        -: 9930:/*EOF*/
        -:        -: 9931:/*EOF*/
        -:        -: 9932:/*EOF*/
        -:        -: 9933:/*EOF*/
        -:        -: 9934:/*EOF*/
        -:        -: 9935:/*EOF*/
        -:        -: 9936:/*EOF*/
        -:        -: 9937:/*EOF*/
        -:        -: 9938:/*EOF*/
        -:        -: 9939:/*EOF*/
        -:        -: 9940:/*EOF*/
        -:        -: 9941:/*EOF*/
        -:        -: 9942:/*EOF*/
        -:        -: 9943:/*EOF*/
        -:        -: 9944:/*EOF*/
        -:        -: 9945:/*EOF*/
        -:        -: 9946:/*EOF*/
        -:        -: 9947:/*EOF*/
        -:        -: 9948:/*EOF*/
        -:        -: 9949:/*EOF*/
        -:        -: 9950:/*EOF*/
        -:        -: 9951:/*EOF*/
        -:        -: 9952:/*EOF*/
        -:        -: 9953:/*EOF*/
        -:        -: 9954:/*EOF*/
        -:        -: 9955:/*EOF*/
        -:        -: 9956:/*EOF*/
        -:        -: 9957:/*EOF*/
        -:        -: 9958:/*EOF*/
        -:        -: 9959:/*EOF*/
        -:        -: 9960:/*EOF*/
        -:        -: 9961:/*EOF*/
        -:        -: 9962:/*EOF*/
        -:        -: 9963:/*EOF*/
        -:        -: 9964:/*EOF*/
        -:        -: 9965:/*EOF*/
        -:        -: 9966:/*EOF*/
        -:        -: 9967:/*EOF*/
        -:        -: 9968:/*EOF*/
        -:        -: 9969:/*EOF*/
        -:        -: 9970:/*EOF*/
        -:        -: 9971:/*EOF*/
        -:        -: 9972:/*EOF*/
        -:        -: 9973:/*EOF*/
        -:        -: 9974:/*EOF*/
        -:        -: 9975:/*EOF*/
        -:        -: 9976:/*EOF*/
        -:        -: 9977:/*EOF*/
        -:        -: 9978:/*EOF*/
        -:        -: 9979:/*EOF*/
        -:        -: 9980:/*EOF*/
        -:        -: 9981:/*EOF*/
        -:        -: 9982:/*EOF*/
        -:        -: 9983:/*EOF*/
        -:        -: 9984:/*EOF*/
        -:        -: 9985:/*EOF*/
        -:        -: 9986:/*EOF*/
        -:        -: 9987:/*EOF*/
        -:        -: 9988:/*EOF*/
        -:        -: 9989:/*EOF*/
        -:        -: 9990:/*EOF*/
        -:        -: 9991:/*EOF*/
        -:        -: 9992:/*EOF*/
        -:        -: 9993:/*EOF*/
        -:        -: 9994:/*EOF*/
        -:        -: 9995:/*EOF*/
        -:        -: 9996:/*EOF*/
        -:        -: 9997:/*EOF*/
        -:        -: 9998:/*EOF*/
        -:        -: 9999:/*EOF*/
        -:        -:10000:/*EOF*/
        -:        -:10001:/*EOF*/
        -:        -:10002:/*EOF*/
        -:        -:10003:/*EOF*/
        -:        -:10004:/*EOF*/
        -:        -:10005:/*EOF*/
        -:        -:10006:/*EOF*/
        -:        -:10007:/*EOF*/
        -:        -:10008:/*EOF*/
        -:        -:10009:/*EOF*/
        -:        -:10010:/*EOF*/
        -:        -:10011:/*EOF*/
        -:        -:10012:/*EOF*/
        -:        -:10013:/*EOF*/
        -:        -:10014:/*EOF*/
        -:        -:10015:/*EOF*/
        -:        -:10016:/*EOF*/
        -:        -:10017:/*EOF*/
        -:        -:10018:/*EOF*/
        -:        -:10019:/*EOF*/
        -:        -:10020:/*EOF*/
        -:        -:10021:/*EOF*/
        -:        -:10022:/*EOF*/
        -:        -:10023:/*EOF*/
        -:        -:10024:/*EOF*/
        -:        -:10025:/*EOF*/
        -:        -:10026:/*EOF*/
        -:        -:10027:/*EOF*/
        -:        -:10028:/*EOF*/
        -:        -:10029:/*EOF*/
        -:        -:10030:/*EOF*/
        -:        -:10031:/*EOF*/
        -:        -:10032:/*EOF*/
        -:        -:10033:/*EOF*/
        -:        -:10034:/*EOF*/
        -:        -:10035:/*EOF*/
        -:        -:10036:/*EOF*/
        -:        -:10037:/*EOF*/
        -:        -:10038:/*EOF*/
        -:        -:10039:/*EOF*/
        -:        -:10040:/*EOF*/
        -:        -:10041:/*EOF*/
        -:        -:10042:/*EOF*/
        -:        -:10043:/*EOF*/
        -:        -:10044:/*EOF*/
        -:        -:10045:/*EOF*/
        -:        -:10046:/*EOF*/
        -:        -:10047:/*EOF*/
        -:        -:10048:/*EOF*/
        -:        -:10049:/*EOF*/
        -:        -:10050:/*EOF*/
        -:        -:10051:/*EOF*/
        -:        -:10052:/*EOF*/
        -:        -:10053:/*EOF*/
        -:        -:10054:/*EOF*/
        -:        -:10055:/*EOF*/
        -:        -:10056:/*EOF*/
        -:        -:10057:/*EOF*/
        -:        -:10058:/*EOF*/
        -:        -:10059:/*EOF*/
        -:        -:10060:/*EOF*/
        -:        -:10061:/*EOF*/
        -:        -:10062:/*EOF*/
        -:        -:10063:/*EOF*/
        -:        -:10064:/*EOF*/
        -:        -:10065:/*EOF*/
        -:        -:10066:/*EOF*/
        -:        -:10067:/*EOF*/
        -:        -:10068:/*EOF*/
        -:        -:10069:/*EOF*/
        -:        -:10070:/*EOF*/
        -:        -:10071:/*EOF*/
        -:        -:10072:/*EOF*/
        -:        -:10073:/*EOF*/
        -:        -:10074:/*EOF*/
        -:        -:10075:/*EOF*/
        -:        -:10076:/*EOF*/
        -:        -:10077:/*EOF*/
        -:        -:10078:/*EOF*/
        -:        -:10079:/*EOF*/
        -:        -:10080:/*EOF*/
        -:        -:10081:/*EOF*/
        -:        -:10082:/*EOF*/
        -:        -:10083:/*EOF*/
        -:        -:10084:/*EOF*/
        -:        -:10085:/*EOF*/
        -:        -:10086:/*EOF*/
        -:        -:10087:/*EOF*/
        -:        -:10088:/*EOF*/
        -:        -:10089:/*EOF*/
        -:        -:10090:/*EOF*/
        -:        -:10091:/*EOF*/
        -:        -:10092:/*EOF*/
        -:        -:10093:/*EOF*/
        -:        -:10094:/*EOF*/
        -:        -:10095:/*EOF*/
        -:        -:10096:/*EOF*/
        -:        -:10097:/*EOF*/
        -:        -:10098:/*EOF*/
        -:        -:10099:/*EOF*/
        -:        -:10100:/*EOF*/
        -:        -:10101:/*EOF*/
        -:        -:10102:/*EOF*/
        -:        -:10103:/*EOF*/
        -:        -:10104:/*EOF*/
        -:        -:10105:/*EOF*/
        -:        -:10106:/*EOF*/
        -:        -:10107:/*EOF*/
        -:        -:10108:/*EOF*/
        -:        -:10109:/*EOF*/
        -:        -:10110:/*EOF*/
        -:        -:10111:/*EOF*/
        -:        -:10112:/*EOF*/
        -:        -:10113:/*EOF*/
        -:        -:10114:/*EOF*/
        -:        -:10115:/*EOF*/
        -:        -:10116:/*EOF*/
        -:        -:10117:/*EOF*/
        -:        -:10118:/*EOF*/
        -:        -:10119:/*EOF*/
        -:        -:10120:/*EOF*/
        -:        -:10121:/*EOF*/
        -:        -:10122:/*EOF*/
        -:        -:10123:/*EOF*/
        -:        -:10124:/*EOF*/
        -:        -:10125:/*EOF*/
        -:        -:10126:/*EOF*/
        -:        -:10127:/*EOF*/
        -:        -:10128:/*EOF*/
        -:        -:10129:/*EOF*/
        -:        -:10130:/*EOF*/
        -:        -:10131:/*EOF*/
        -:        -:10132:/*EOF*/
        -:        -:10133:/*EOF*/
        -:        -:10134:/*EOF*/
        -:        -:10135:/*EOF*/
        -:        -:10136:/*EOF*/
        -:        -:10137:/*EOF*/
        -:        -:10138:/*EOF*/
        -:        -:10139:/*EOF*/
        -:        -:10140:/*EOF*/
        -:        -:10141:/*EOF*/
        -:        -:10142:/*EOF*/
        -:        -:10143:/*EOF*/
        -:        -:10144:/*EOF*/
        -:        -:10145:/*EOF*/
        -:        -:10146:/*EOF*/
        -:        -:10147:/*EOF*/
        -:        -:10148:/*EOF*/
        -:        -:10149:/*EOF*/
        -:        -:10150:/*EOF*/
        -:        -:10151:/*EOF*/
        -:        -:10152:/*EOF*/
        -:        -:10153:/*EOF*/
        -:        -:10154:/*EOF*/
        -:        -:10155:/*EOF*/
        -:        -:10156:/*EOF*/
        -:        -:10157:/*EOF*/
        -:        -:10158:/*EOF*/
        -:        -:10159:/*EOF*/
        -:        -:10160:/*EOF*/
        -:        -:10161:/*EOF*/
        -:        -:10162:/*EOF*/
        -:        -:10163:/*EOF*/
        -:        -:10164:/*EOF*/
        -:        -:10165:/*EOF*/
        -:        -:10166:/*EOF*/
        -:        -:10167:/*EOF*/
        -:        -:10168:/*EOF*/
        -:        -:10169:/*EOF*/
        -:        -:10170:/*EOF*/
        -:        -:10171:/*EOF*/
        -:        -:10172:/*EOF*/
        -:        -:10173:/*EOF*/
        -:        -:10174:/*EOF*/
        -:        -:10175:/*EOF*/
        -:        -:10176:/*EOF*/
        -:        -:10177:/*EOF*/
        -:        -:10178:/*EOF*/
        -:        -:10179:/*EOF*/
        -:        -:10180:/*EOF*/
        -:        -:10181:/*EOF*/
        -:        -:10182:/*EOF*/
        -:        -:10183:/*EOF*/
        -:        -:10184:/*EOF*/
        -:        -:10185:/*EOF*/
        -:        -:10186:/*EOF*/
        -:        -:10187:/*EOF*/
        -:        -:10188:/*EOF*/
        -:        -:10189:/*EOF*/
        -:        -:10190:/*EOF*/
        -:        -:10191:/*EOF*/
        -:        -:10192:/*EOF*/
        -:        -:10193:/*EOF*/
        -:        -:10194:/*EOF*/
        -:        -:10195:/*EOF*/
        -:        -:10196:/*EOF*/
        -:        -:10197:/*EOF*/
        -:        -:10198:/*EOF*/
        -:        -:10199:/*EOF*/
        -:        -:10200:/*EOF*/
        -:        -:10201:/*EOF*/
        -:        -:10202:/*EOF*/
        -:        -:10203:/*EOF*/
        -:        -:10204:/*EOF*/
        -:        -:10205:/*EOF*/
        -:        -:10206:/*EOF*/
        -:        -:10207:/*EOF*/
        -:        -:10208:/*EOF*/
        -:        -:10209:/*EOF*/
        -:        -:10210:/*EOF*/
        -:        -:10211:/*EOF*/
        -:        -:10212:/*EOF*/
        -:        -:10213:/*EOF*/
        -:        -:10214:/*EOF*/
        -:        -:10215:/*EOF*/
        -:        -:10216:/*EOF*/
        -:        -:10217:/*EOF*/
        -:        -:10218:/*EOF*/
        -:        -:10219:/*EOF*/
        -:        -:10220:/*EOF*/
        -:        -:10221:/*EOF*/
        -:        -:10222:/*EOF*/
        -:        -:10223:/*EOF*/
        -:        -:10224:/*EOF*/
        -:        -:10225:/*EOF*/
        -:        -:10226:/*EOF*/
        -:        -:10227:/*EOF*/
        -:        -:10228:/*EOF*/
        -:        -:10229:/*EOF*/
        -:        -:10230:/*EOF*/
        -:        -:10231:/*EOF*/
        -:        -:10232:/*EOF*/
        -:        -:10233:/*EOF*/
        -:        -:10234:/*EOF*/
        -:        -:10235:/*EOF*/
        -:        -:10236:/*EOF*/
        -:        -:10237:/*EOF*/
        -:        -:10238:/*EOF*/
        -:        -:10239:/*EOF*/
        -:        -:10240:/*EOF*/
        -:        -:10241:/*EOF*/
        -:        -:10242:/*EOF*/
        -:        -:10243:/*EOF*/
        -:        -:10244:/*EOF*/
        -:        -:10245:/*EOF*/
        -:        -:10246:/*EOF*/
        -:        -:10247:/*EOF*/
        -:        -:10248:/*EOF*/
        -:        -:10249:/*EOF*/
        -:        -:10250:/*EOF*/
        -:        -:10251:/*EOF*/
        -:        -:10252:/*EOF*/
        -:        -:10253:/*EOF*/
        -:        -:10254:/*EOF*/
        -:        -:10255:/*EOF*/
        -:        -:10256:/*EOF*/
        -:        -:10257:/*EOF*/
        -:        -:10258:/*EOF*/
        -:        -:10259:/*EOF*/
        -:        -:10260:/*EOF*/
        -:        -:10261:/*EOF*/
        -:        -:10262:/*EOF*/
        -:        -:10263:/*EOF*/
        -:        -:10264:/*EOF*/
        -:        -:10265:/*EOF*/
        -:        -:10266:/*EOF*/
        -:        -:10267:/*EOF*/
        -:        -:10268:/*EOF*/
        -:        -:10269:/*EOF*/
        -:        -:10270:/*EOF*/
        -:        -:10271:/*EOF*/
        -:        -:10272:/*EOF*/
        -:        -:10273:/*EOF*/
        -:        -:10274:/*EOF*/
        -:        -:10275:/*EOF*/
        -:        -:10276:/*EOF*/
        -:        -:10277:/*EOF*/
        -:        -:10278:/*EOF*/
        -:        -:10279:/*EOF*/
        -:        -:10280:/*EOF*/
        -:        -:10281:/*EOF*/
        -:        -:10282:/*EOF*/
        -:        -:10283:/*EOF*/
        -:        -:10284:/*EOF*/
        -:        -:10285:/*EOF*/
        -:        -:10286:/*EOF*/
        -:        -:10287:/*EOF*/
        -:        -:10288:/*EOF*/
        -:        -:10289:/*EOF*/
        -:        -:10290:/*EOF*/
        -:        -:10291:/*EOF*/
        -:        -:10292:/*EOF*/
        -:        -:10293:/*EOF*/
        -:        -:10294:/*EOF*/
        -:        -:10295:/*EOF*/
        -:        -:10296:/*EOF*/
        -:        -:10297:/*EOF*/
        -:        -:10298:/*EOF*/
        -:        -:10299:/*EOF*/
        -:        -:10300:/*EOF*/
        -:        -:10301:/*EOF*/
        -:        -:10302:/*EOF*/
        -:        -:10303:/*EOF*/
        -:        -:10304:/*EOF*/
        -:        -:10305:/*EOF*/
        -:        -:10306:/*EOF*/
        -:        -:10307:/*EOF*/
        -:        -:10308:/*EOF*/
        -:        -:10309:/*EOF*/
        -:        -:10310:/*EOF*/
        -:        -:10311:/*EOF*/
        -:        -:10312:/*EOF*/
        -:        -:10313:/*EOF*/
        -:        -:10314:/*EOF*/
        -:        -:10315:/*EOF*/
        -:        -:10316:/*EOF*/
        -:        -:10317:/*EOF*/
        -:        -:10318:/*EOF*/
        -:        -:10319:/*EOF*/
        -:        -:10320:/*EOF*/
        -:        -:10321:/*EOF*/
        -:        -:10322:/*EOF*/
        -:        -:10323:/*EOF*/
        -:        -:10324:/*EOF*/
        -:        -:10325:/*EOF*/
        -:        -:10326:/*EOF*/
        -:        -:10327:/*EOF*/
        -:        -:10328:/*EOF*/
        -:        -:10329:/*EOF*/
        -:        -:10330:/*EOF*/
        -:        -:10331:/*EOF*/
        -:        -:10332:/*EOF*/
        -:        -:10333:/*EOF*/
        -:        -:10334:/*EOF*/
        -:        -:10335:/*EOF*/
        -:        -:10336:/*EOF*/
        -:        -:10337:/*EOF*/
        -:        -:10338:/*EOF*/
        -:        -:10339:/*EOF*/
        -:        -:10340:/*EOF*/
        -:        -:10341:/*EOF*/
        -:        -:10342:/*EOF*/
        -:        -:10343:/*EOF*/
        -:        -:10344:/*EOF*/
        -:        -:10345:/*EOF*/
        -:        -:10346:/*EOF*/
        -:        -:10347:/*EOF*/
        -:        -:10348:/*EOF*/
        -:        -:10349:/*EOF*/
        -:        -:10350:/*EOF*/
        -:        -:10351:/*EOF*/
        -:        -:10352:/*EOF*/
        -:        -:10353:/*EOF*/
        -:        -:10354:/*EOF*/
        -:        -:10355:/*EOF*/
        -:        -:10356:/*EOF*/
        -:        -:10357:/*EOF*/
        -:        -:10358:/*EOF*/
        -:        -:10359:/*EOF*/
        -:        -:10360:/*EOF*/
        -:        -:10361:/*EOF*/
        -:        -:10362:/*EOF*/
        -:        -:10363:/*EOF*/
        -:        -:10364:/*EOF*/
        -:        -:10365:/*EOF*/
        -:        -:10366:/*EOF*/
        -:        -:10367:/*EOF*/
        -:        -:10368:/*EOF*/
        -:        -:10369:/*EOF*/
        -:        -:10370:/*EOF*/
        -:        -:10371:/*EOF*/
        -:        -:10372:/*EOF*/
        -:        -:10373:/*EOF*/
        -:        -:10374:/*EOF*/
        -:        -:10375:/*EOF*/
        -:        -:10376:/*EOF*/
        -:        -:10377:/*EOF*/
        -:        -:10378:/*EOF*/
        -:        -:10379:/*EOF*/
        -:        -:10380:/*EOF*/
        -:        -:10381:/*EOF*/
        -:        -:10382:/*EOF*/
        -:        -:10383:/*EOF*/
        -:        -:10384:/*EOF*/
        -:        -:10385:/*EOF*/
        -:        -:10386:/*EOF*/
        -:        -:10387:/*EOF*/
        -:        -:10388:/*EOF*/
        -:        -:10389:/*EOF*/
        -:        -:10390:/*EOF*/
        -:        -:10391:/*EOF*/
        -:        -:10392:/*EOF*/
        -:        -:10393:/*EOF*/
        -:        -:10394:/*EOF*/
        -:        -:10395:/*EOF*/
        -:        -:10396:/*EOF*/
        -:        -:10397:/*EOF*/
        -:        -:10398:/*EOF*/
        -:        -:10399:/*EOF*/
        -:        -:10400:/*EOF*/
        -:        -:10401:/*EOF*/
        -:        -:10402:/*EOF*/
        -:        -:10403:/*EOF*/
        -:        -:10404:/*EOF*/
        -:        -:10405:/*EOF*/
        -:        -:10406:/*EOF*/
        -:        -:10407:/*EOF*/
        -:        -:10408:/*EOF*/
        -:        -:10409:/*EOF*/
        -:        -:10410:/*EOF*/
        -:        -:10411:/*EOF*/
        -:        -:10412:/*EOF*/
        -:        -:10413:/*EOF*/
        -:        -:10414:/*EOF*/
        -:        -:10415:/*EOF*/
        -:        -:10416:/*EOF*/
        -:        -:10417:/*EOF*/
        -:        -:10418:/*EOF*/
        -:        -:10419:/*EOF*/
        -:        -:10420:/*EOF*/
        -:        -:10421:/*EOF*/
        -:        -:10422:/*EOF*/
        -:        -:10423:/*EOF*/
        -:        -:10424:/*EOF*/
        -:        -:10425:/*EOF*/
        -:        -:10426:/*EOF*/
        -:        -:10427:/*EOF*/
        -:        -:10428:/*EOF*/
        -:        -:10429:/*EOF*/
        -:        -:10430:/*EOF*/
        -:        -:10431:/*EOF*/
        -:        -:10432:/*EOF*/
        -:        -:10433:/*EOF*/
        -:        -:10434:/*EOF*/
        -:        -:10435:/*EOF*/
        -:        -:10436:/*EOF*/
        -:        -:10437:/*EOF*/
        -:        -:10438:/*EOF*/
        -:        -:10439:/*EOF*/
        -:        -:10440:/*EOF*/
        -:        -:10441:/*EOF*/
        -:        -:10442:/*EOF*/
        -:        -:10443:/*EOF*/
        -:        -:10444:/*EOF*/
        -:        -:10445:/*EOF*/
        -:        -:10446:/*EOF*/
        -:        -:10447:/*EOF*/
        -:        -:10448:/*EOF*/
        -:        -:10449:/*EOF*/
        -:        -:10450:/*EOF*/
        -:        -:10451:/*EOF*/
        -:        -:10452:/*EOF*/
        -:        -:10453:/*EOF*/
        -:        -:10454:/*EOF*/
        -:        -:10455:/*EOF*/
        -:        -:10456:/*EOF*/
        -:        -:10457:/*EOF*/
        -:        -:10458:/*EOF*/
        -:        -:10459:/*EOF*/
        -:        -:10460:/*EOF*/
        -:        -:10461:/*EOF*/
        -:        -:10462:/*EOF*/
        -:        -:10463:/*EOF*/
        -:        -:10464:/*EOF*/
        -:        -:10465:/*EOF*/
        -:        -:10466:/*EOF*/
        -:        -:10467:/*EOF*/
        -:        -:10468:/*EOF*/
        -:        -:10469:/*EOF*/
        -:        -:10470:/*EOF*/
        -:        -:10471:/*EOF*/
        -:        -:10472:/*EOF*/
        -:        -:10473:/*EOF*/
        -:        -:10474:/*EOF*/
        -:        -:10475:/*EOF*/
        -:        -:10476:/*EOF*/
        -:        -:10477:/*EOF*/
        -:        -:10478:/*EOF*/
        -:        -:10479:/*EOF*/
        -:        -:10480:/*EOF*/
        -:        -:10481:/*EOF*/
        -:        -:10482:/*EOF*/
        -:        -:10483:/*EOF*/
        -:        -:10484:/*EOF*/
        -:        -:10485:/*EOF*/
        -:        -:10486:/*EOF*/
        -:        -:10487:/*EOF*/
        -:        -:10488:/*EOF*/
        -:        -:10489:/*EOF*/
        -:        -:10490:/*EOF*/
        -:        -:10491:/*EOF*/
        -:        -:10492:/*EOF*/
        -:        -:10493:/*EOF*/
        -:        -:10494:/*EOF*/
        -:        -:10495:/*EOF*/
        -:        -:10496:/*EOF*/
        -:        -:10497:/*EOF*/
        -:        -:10498:/*EOF*/
        -:        -:10499:/*EOF*/
        -:        -:10500:/*EOF*/
        -:        -:10501:/*EOF*/
        -:        -:10502:/*EOF*/
        -:        -:10503:/*EOF*/
        -:        -:10504:/*EOF*/
        -:        -:10505:/*EOF*/
        -:        -:10506:/*EOF*/
        -:        -:10507:/*EOF*/
        -:        -:10508:/*EOF*/
        -:        -:10509:/*EOF*/
        -:        -:10510:/*EOF*/
        -:        -:10511:/*EOF*/
        -:        -:10512:/*EOF*/
        -:        -:10513:/*EOF*/
        -:        -:10514:/*EOF*/
        -:        -:10515:/*EOF*/
        -:        -:10516:/*EOF*/
        -:        -:10517:/*EOF*/
        -:        -:10518:/*EOF*/
        -:        -:10519:/*EOF*/
        -:        -:10520:/*EOF*/
        -:        -:10521:/*EOF*/
        -:        -:10522:/*EOF*/
        -:        -:10523:/*EOF*/
        -:        -:10524:/*EOF*/
        -:        -:10525:/*EOF*/
        -:        -:10526:/*EOF*/
        -:        -:10527:/*EOF*/
        -:        -:10528:/*EOF*/
        -:        -:10529:/*EOF*/
        -:        -:10530:/*EOF*/
        -:        -:10531:/*EOF*/
        -:        -:10532:/*EOF*/
        -:        -:10533:/*EOF*/
        -:        -:10534:/*EOF*/
        -:        -:10535:/*EOF*/
        -:        -:10536:/*EOF*/
        -:        -:10537:/*EOF*/
        -:        -:10538:/*EOF*/
        -:        -:10539:/*EOF*/
        -:        -:10540:/*EOF*/
        -:        -:10541:/*EOF*/
        -:        -:10542:/*EOF*/
        -:        -:10543:/*EOF*/
        -:        -:10544:/*EOF*/
        -:        -:10545:/*EOF*/
        -:        -:10546:/*EOF*/
        -:        -:10547:/*EOF*/
        -:        -:10548:/*EOF*/
        -:        -:10549:/*EOF*/
        -:        -:10550:/*EOF*/
        -:        -:10551:/*EOF*/
        -:        -:10552:/*EOF*/
        -:        -:10553:/*EOF*/
        -:        -:10554:/*EOF*/
        -:        -:10555:/*EOF*/
        -:        -:10556:/*EOF*/
        -:        -:10557:/*EOF*/
        -:        -:10558:/*EOF*/
        -:        -:10559:/*EOF*/
        -:        -:10560:/*EOF*/
        -:        -:10561:/*EOF*/
        -:        -:10562:/*EOF*/
        -:        -:10563:/*EOF*/
        -:        -:10564:/*EOF*/
        -:        -:10565:/*EOF*/
        -:        -:10566:/*EOF*/
        -:        -:10567:/*EOF*/
        -:        -:10568:/*EOF*/
        -:        -:10569:/*EOF*/
        -:        -:10570:/*EOF*/
        -:        -:10571:/*EOF*/
        -:        -:10572:/*EOF*/
        -:        -:10573:/*EOF*/
        -:        -:10574:/*EOF*/
        -:        -:10575:/*EOF*/
        -:        -:10576:/*EOF*/
        -:        -:10577:/*EOF*/
        -:        -:10578:/*EOF*/
        -:        -:10579:/*EOF*/
        -:        -:10580:/*EOF*/
        -:        -:10581:/*EOF*/
        -:        -:10582:/*EOF*/
        -:        -:10583:/*EOF*/
        -:        -:10584:/*EOF*/
        -:        -:10585:/*EOF*/
        -:        -:10586:/*EOF*/
        -:        -:10587:/*EOF*/
        -:        -:10588:/*EOF*/
        -:        -:10589:/*EOF*/
        -:        -:10590:/*EOF*/
        -:        -:10591:/*EOF*/
        -:        -:10592:/*EOF*/
        -:        -:10593:/*EOF*/
        -:        -:10594:/*EOF*/
        -:        -:10595:/*EOF*/
        -:        -:10596:/*EOF*/
        -:        -:10597:/*EOF*/
        -:        -:10598:/*EOF*/
        -:        -:10599:/*EOF*/
        -:        -:10600:/*EOF*/
        -:        -:10601:/*EOF*/
        -:        -:10602:/*EOF*/
        -:        -:10603:/*EOF*/
        -:        -:10604:/*EOF*/
        -:        -:10605:/*EOF*/
        -:        -:10606:/*EOF*/
        -:        -:10607:/*EOF*/
        -:        -:10608:/*EOF*/
        -:        -:10609:/*EOF*/
        -:        -:10610:/*EOF*/
        -:        -:10611:/*EOF*/
        -:        -:10612:/*EOF*/
        -:        -:10613:/*EOF*/
        -:        -:10614:/*EOF*/
        -:        -:10615:/*EOF*/
        -:        -:10616:/*EOF*/
        -:        -:10617:/*EOF*/
        -:        -:10618:/*EOF*/
        -:        -:10619:/*EOF*/
        -:        -:10620:/*EOF*/
        -:        -:10621:/*EOF*/
        -:        -:10622:/*EOF*/
        -:        -:10623:/*EOF*/
        -:        -:10624:/*EOF*/
        -:        -:10625:/*EOF*/
        -:        -:10626:/*EOF*/
        -:        -:10627:/*EOF*/
        -:        -:10628:/*EOF*/
        -:        -:10629:/*EOF*/
        -:        -:10630:/*EOF*/
        -:        -:10631:/*EOF*/
        -:        -:10632:/*EOF*/
        -:        -:10633:/*EOF*/
        -:        -:10634:/*EOF*/
        -:        -:10635:/*EOF*/
        -:        -:10636:/*EOF*/
        -:        -:10637:/*EOF*/
        -:        -:10638:/*EOF*/
        -:        -:10639:/*EOF*/
        -:        -:10640:/*EOF*/
        -:        -:10641:/*EOF*/
        -:        -:10642:/*EOF*/
        -:        -:10643:/*EOF*/
        -:        -:10644:/*EOF*/
        -:        -:10645:/*EOF*/
        -:        -:10646:/*EOF*/
        -:        -:10647:/*EOF*/
        -:        -:10648:/*EOF*/
        -:        -:10649:/*EOF*/
        -:        -:10650:/*EOF*/
        -:        -:10651:/*EOF*/
        -:        -:10652:/*EOF*/
        -:        -:10653:/*EOF*/
        -:        -:10654:/*EOF*/
        -:        -:10655:/*EOF*/
        -:        -:10656:/*EOF*/
        -:        -:10657:/*EOF*/
        -:        -:10658:/*EOF*/
        -:        -:10659:/*EOF*/
        -:        -:10660:/*EOF*/
        -:        -:10661:/*EOF*/
        -:        -:10662:/*EOF*/
        -:        -:10663:/*EOF*/
        -:        -:10664:/*EOF*/
        -:        -:10665:/*EOF*/
        -:        -:10666:/*EOF*/
        -:        -:10667:/*EOF*/
        -:        -:10668:/*EOF*/
        -:        -:10669:/*EOF*/
        -:        -:10670:/*EOF*/
        -:        -:10671:/*EOF*/
        -:        -:10672:/*EOF*/
        -:        -:10673:/*EOF*/
        -:        -:10674:/*EOF*/
        -:        -:10675:/*EOF*/
        -:        -:10676:/*EOF*/
        -:        -:10677:/*EOF*/
        -:        -:10678:/*EOF*/
        -:        -:10679:/*EOF*/
        -:        -:10680:/*EOF*/
        -:        -:10681:/*EOF*/
        -:        -:10682:/*EOF*/
        -:        -:10683:/*EOF*/
        -:        -:10684:/*EOF*/
        -:        -:10685:/*EOF*/
        -:        -:10686:/*EOF*/
        -:        -:10687:/*EOF*/
        -:        -:10688:/*EOF*/
        -:        -:10689:/*EOF*/
        -:        -:10690:/*EOF*/
        -:        -:10691:/*EOF*/
        -:        -:10692:/*EOF*/
        -:        -:10693:/*EOF*/
        -:        -:10694:/*EOF*/
        -:        -:10695:/*EOF*/
        -:        -:10696:/*EOF*/
        -:        -:10697:/*EOF*/
        -:        -:10698:/*EOF*/
        -:        -:10699:/*EOF*/
        -:        -:10700:/*EOF*/
        -:        -:10701:/*EOF*/
        -:        -:10702:/*EOF*/
        -:        -:10703:/*EOF*/
        -:        -:10704:/*EOF*/
        -:        -:10705:/*EOF*/
        -:        -:10706:/*EOF*/
        -:        -:10707:/*EOF*/
        -:        -:10708:/*EOF*/
        -:        -:10709:/*EOF*/
        -:        -:10710:/*EOF*/
        -:        -:10711:/*EOF*/
        -:        -:10712:/*EOF*/
        -:        -:10713:/*EOF*/
        -:        -:10714:/*EOF*/
        -:        -:10715:/*EOF*/
        -:        -:10716:/*EOF*/
        -:        -:10717:/*EOF*/
        -:        -:10718:/*EOF*/
        -:        -:10719:/*EOF*/
        -:        -:10720:/*EOF*/
        -:        -:10721:/*EOF*/
        -:        -:10722:/*EOF*/
        -:        -:10723:/*EOF*/
        -:        -:10724:/*EOF*/
        -:        -:10725:/*EOF*/
        -:        -:10726:/*EOF*/
        -:        -:10727:/*EOF*/
        -:        -:10728:/*EOF*/
        -:        -:10729:/*EOF*/
        -:        -:10730:/*EOF*/
        -:        -:10731:/*EOF*/
        -:        -:10732:/*EOF*/
        -:        -:10733:/*EOF*/
        -:        -:10734:/*EOF*/
        -:        -:10735:/*EOF*/
        -:        -:10736:/*EOF*/
        -:        -:10737:/*EOF*/
        -:        -:10738:/*EOF*/
        -:        -:10739:/*EOF*/
        -:        -:10740:/*EOF*/
        -:        -:10741:/*EOF*/
        -:        -:10742:/*EOF*/
        -:        -:10743:/*EOF*/
        -:        -:10744:/*EOF*/
        -:        -:10745:/*EOF*/
        -:        -:10746:/*EOF*/
        -:        -:10747:/*EOF*/
        -:        -:10748:/*EOF*/
        -:        -:10749:/*EOF*/
        -:        -:10750:/*EOF*/
        -:        -:10751:/*EOF*/
        -:        -:10752:/*EOF*/
        -:        -:10753:/*EOF*/
        -:        -:10754:/*EOF*/
        -:        -:10755:/*EOF*/
        -:        -:10756:/*EOF*/
        -:        -:10757:/*EOF*/
        -:        -:10758:/*EOF*/
        -:        -:10759:/*EOF*/
        -:        -:10760:/*EOF*/
        -:        -:10761:/*EOF*/
        -:        -:10762:/*EOF*/
        -:        -:10763:/*EOF*/
        -:        -:10764:/*EOF*/
        -:        -:10765:/*EOF*/
        -:        -:10766:/*EOF*/
        -:        -:10767:/*EOF*/
        -:        -:10768:/*EOF*/
        -:        -:10769:/*EOF*/
        -:        -:10770:/*EOF*/
        -:        -:10771:/*EOF*/
        -:        -:10772:/*EOF*/
        -:        -:10773:/*EOF*/
        -:        -:10774:/*EOF*/
        -:        -:10775:/*EOF*/
        -:        -:10776:/*EOF*/
        -:        -:10777:/*EOF*/
        -:        -:10778:/*EOF*/
        -:        -:10779:/*EOF*/
        -:        -:10780:/*EOF*/
        -:        -:10781:/*EOF*/
        -:        -:10782:/*EOF*/
        -:        -:10783:/*EOF*/
        -:        -:10784:/*EOF*/
        -:        -:10785:/*EOF*/
        -:        -:10786:/*EOF*/
        -:        -:10787:/*EOF*/
        -:        -:10788:/*EOF*/
        -:        -:10789:/*EOF*/
        -:        -:10790:/*EOF*/
        -:        -:10791:/*EOF*/
        -:        -:10792:/*EOF*/
        -:        -:10793:/*EOF*/
        -:        -:10794:/*EOF*/
        -:        -:10795:/*EOF*/
        -:        -:10796:/*EOF*/
        -:        -:10797:/*EOF*/
        -:        -:10798:/*EOF*/
        -:        -:10799:/*EOF*/
        -:        -:10800:/*EOF*/
        -:        -:10801:/*EOF*/
        -:        -:10802:/*EOF*/
        -:        -:10803:/*EOF*/
        -:        -:10804:/*EOF*/
        -:        -:10805:/*EOF*/
        -:        -:10806:/*EOF*/
        -:        -:10807:/*EOF*/
        -:        -:10808:/*EOF*/
        -:        -:10809:/*EOF*/
        -:        -:10810:/*EOF*/
        -:        -:10811:/*EOF*/
        -:        -:10812:/*EOF*/
        -:        -:10813:/*EOF*/
        -:        -:10814:/*EOF*/
        -:        -:10815:/*EOF*/
        -:        -:10816:/*EOF*/
        -:        -:10817:/*EOF*/
        -:        -:10818:/*EOF*/
        -:        -:10819:/*EOF*/
        -:        -:10820:/*EOF*/
        -:        -:10821:/*EOF*/
        -:        -:10822:/*EOF*/
        -:        -:10823:/*EOF*/
        -:        -:10824:/*EOF*/
        -:        -:10825:/*EOF*/
        -:        -:10826:/*EOF*/
        -:        -:10827:/*EOF*/
        -:        -:10828:/*EOF*/
        -:        -:10829:/*EOF*/
        -:        -:10830:/*EOF*/
        -:        -:10831:/*EOF*/
        -:        -:10832:/*EOF*/
        -:        -:10833:/*EOF*/
        -:        -:10834:/*EOF*/
        -:        -:10835:/*EOF*/
        -:        -:10836:/*EOF*/
        -:        -:10837:/*EOF*/
        -:        -:10838:/*EOF*/
        -:        -:10839:/*EOF*/
        -:        -:10840:/*EOF*/
        -:        -:10841:/*EOF*/
        -:        -:10842:/*EOF*/
        -:        -:10843:/*EOF*/
        -:        -:10844:/*EOF*/
        -:        -:10845:/*EOF*/
        -:        -:10846:/*EOF*/
        -:        -:10847:/*EOF*/
        -:        -:10848:/*EOF*/
        -:        -:10849:/*EOF*/
        -:        -:10850:/*EOF*/
        -:        -:10851:/*EOF*/
        -:        -:10852:/*EOF*/
        -:        -:10853:/*EOF*/
        -:        -:10854:/*EOF*/
        -:        -:10855:/*EOF*/
        -:        -:10856:/*EOF*/
        -:        -:10857:/*EOF*/
        -:        -:10858:/*EOF*/
        -:        -:10859:/*EOF*/
        -:        -:10860:/*EOF*/
        -:        -:10861:/*EOF*/
        -:        -:10862:/*EOF*/
        -:        -:10863:/*EOF*/
        -:        -:10864:/*EOF*/
        -:        -:10865:/*EOF*/
        -:        -:10866:/*EOF*/
        -:        -:10867:/*EOF*/
        -:        -:10868:/*EOF*/
        -:        -:10869:/*EOF*/
        -:        -:10870:/*EOF*/
        -:        -:10871:/*EOF*/
        -:        -:10872:/*EOF*/
        -:        -:10873:/*EOF*/
        -:        -:10874:/*EOF*/
        -:        -:10875:/*EOF*/
        -:        -:10876:/*EOF*/
        -:        -:10877:/*EOF*/
        -:        -:10878:/*EOF*/
        -:        -:10879:/*EOF*/
        -:        -:10880:/*EOF*/
        -:        -:10881:/*EOF*/
        -:        -:10882:/*EOF*/
        -:        -:10883:/*EOF*/
        -:        -:10884:/*EOF*/
        -:        -:10885:/*EOF*/
        -:        -:10886:/*EOF*/
        -:        -:10887:/*EOF*/
        -:        -:10888:/*EOF*/
        -:        -:10889:/*EOF*/
        -:        -:10890:/*EOF*/
        -:        -:10891:/*EOF*/
        -:        -:10892:/*EOF*/
        -:        -:10893:/*EOF*/
        -:        -:10894:/*EOF*/
        -:        -:10895:/*EOF*/
        -:        -:10896:/*EOF*/
        -:        -:10897:/*EOF*/
        -:        -:10898:/*EOF*/
        -:        -:10899:/*EOF*/
        -:        -:10900:/*EOF*/
        -:        -:10901:/*EOF*/
        -:        -:10902:/*EOF*/
        -:        -:10903:/*EOF*/
        -:        -:10904:/*EOF*/
        -:        -:10905:/*EOF*/
        -:        -:10906:/*EOF*/
        -:        -:10907:/*EOF*/
        -:        -:10908:/*EOF*/
        -:        -:10909:/*EOF*/
        -:        -:10910:/*EOF*/
        -:        -:10911:/*EOF*/
        -:        -:10912:/*EOF*/
        -:        -:10913:/*EOF*/
        -:        -:10914:/*EOF*/
        -:        -:10915:/*EOF*/
        -:        -:10916:/*EOF*/
        -:        -:10917:/*EOF*/
        -:        -:10918:/*EOF*/
        -:        -:10919:/*EOF*/
        -:        -:10920:/*EOF*/
        -:        -:10921:/*EOF*/
        -:        -:10922:/*EOF*/
        -:        -:10923:/*EOF*/
        -:        -:10924:/*EOF*/
        -:        -:10925:/*EOF*/
        -:        -:10926:/*EOF*/
        -:        -:10927:/*EOF*/
        -:        -:10928:/*EOF*/
        -:        -:10929:/*EOF*/
        -:        -:10930:/*EOF*/
        -:        -:10931:/*EOF*/
        -:        -:10932:/*EOF*/
        -:        -:10933:/*EOF*/
        -:        -:10934:/*EOF*/
        -:        -:10935:/*EOF*/
        -:        -:10936:/*EOF*/
        -:        -:10937:/*EOF*/
        -:        -:10938:/*EOF*/
        -:        -:10939:/*EOF*/
        -:        -:10940:/*EOF*/
        -:        -:10941:/*EOF*/
        -:        -:10942:/*EOF*/
        -:        -:10943:/*EOF*/
        -:        -:10944:/*EOF*/
        -:        -:10945:/*EOF*/
        -:        -:10946:/*EOF*/
        -:        -:10947:/*EOF*/
        -:        -:10948:/*EOF*/
        -:        -:10949:/*EOF*/
        -:        -:10950:/*EOF*/
        -:        -:10951:/*EOF*/
        -:        -:10952:/*EOF*/
        -:        -:10953:/*EOF*/
        -:        -:10954:/*EOF*/
        -:        -:10955:/*EOF*/
        -:        -:10956:/*EOF*/
        -:        -:10957:/*EOF*/
        -:        -:10958:/*EOF*/
        -:        -:10959:/*EOF*/
        -:        -:10960:/*EOF*/
        -:        -:10961:/*EOF*/
        -:        -:10962:/*EOF*/
        -:        -:10963:/*EOF*/
        -:        -:10964:/*EOF*/
        -:        -:10965:/*EOF*/
        -:        -:10966:/*EOF*/
        -:        -:10967:/*EOF*/
        -:        -:10968:/*EOF*/
        -:        -:10969:/*EOF*/
        -:        -:10970:/*EOF*/
        -:        -:10971:/*EOF*/
        -:        -:10972:/*EOF*/
        -:        -:10973:/*EOF*/
        -:        -:10974:/*EOF*/
        -:        -:10975:/*EOF*/
        -:        -:10976:/*EOF*/
        -:        -:10977:/*EOF*/
        -:        -:10978:/*EOF*/
        -:        -:10979:/*EOF*/
        -:        -:10980:/*EOF*/
        -:        -:10981:/*EOF*/
        -:        -:10982:/*EOF*/
        -:        -:10983:/*EOF*/
        -:        -:10984:/*EOF*/
        -:        -:10985:/*EOF*/
        -:        -:10986:/*EOF*/
        -:        -:10987:/*EOF*/
        -:        -:10988:/*EOF*/
        -:        -:10989:/*EOF*/
        -:        -:10990:/*EOF*/
        -:        -:10991:/*EOF*/
        -:        -:10992:/*EOF*/
        -:        -:10993:/*EOF*/
        -:        -:10994:/*EOF*/
        -:        -:10995:/*EOF*/
        -:        -:10996:/*EOF*/
        -:        -:10997:/*EOF*/
        -:        -:10998:/*EOF*/
        -:        -:10999:/*EOF*/
        -:        -:11000:/*EOF*/
        -:        -:11001:/*EOF*/
        -:        -:11002:/*EOF*/
        -:        -:11003:/*EOF*/
        -:        -:11004:/*EOF*/
        -:        -:11005:/*EOF*/
        -:        -:11006:/*EOF*/
        -:        -:11007:/*EOF*/
        -:        -:11008:/*EOF*/
        -:        -:11009:/*EOF*/
        -:        -:11010:/*EOF*/
        -:        -:11011:/*EOF*/
        -:        -:11012:/*EOF*/
        -:        -:11013:/*EOF*/
        -:        -:11014:/*EOF*/
        -:        -:11015:/*EOF*/
        -:        -:11016:/*EOF*/
        -:        -:11017:/*EOF*/
        -:        -:11018:/*EOF*/
        -:        -:11019:/*EOF*/
        -:        -:11020:/*EOF*/
        -:        -:11021:/*EOF*/
        -:        -:11022:/*EOF*/
        -:        -:11023:/*EOF*/
        -:        -:11024:/*EOF*/
        -:        -:11025:/*EOF*/
        -:        -:11026:/*EOF*/
        -:        -:11027:/*EOF*/
        -:        -:11028:/*EOF*/
        -:        -:11029:/*EOF*/
        -:        -:11030:/*EOF*/
        -:        -:11031:/*EOF*/
        -:        -:11032:/*EOF*/
        -:        -:11033:/*EOF*/
        -:        -:11034:/*EOF*/
        -:        -:11035:/*EOF*/
        -:        -:11036:/*EOF*/
        -:        -:11037:/*EOF*/
        -:        -:11038:/*EOF*/
        -:        -:11039:/*EOF*/
        -:        -:11040:/*EOF*/
        -:        -:11041:/*EOF*/
        -:        -:11042:/*EOF*/
        -:        -:11043:/*EOF*/
        -:        -:11044:/*EOF*/
        -:        -:11045:/*EOF*/
        -:        -:11046:/*EOF*/
        -:        -:11047:/*EOF*/
        -:        -:11048:/*EOF*/
        -:        -:11049:/*EOF*/
        -:        -:11050:/*EOF*/
        -:        -:11051:/*EOF*/
        -:        -:11052:/*EOF*/
        -:        -:11053:/*EOF*/
        -:        -:11054:/*EOF*/
        -:        -:11055:/*EOF*/
        -:        -:11056:/*EOF*/
        -:        -:11057:/*EOF*/
        -:        -:11058:/*EOF*/
        -:        -:11059:/*EOF*/
        -:        -:11060:/*EOF*/
        -:        -:11061:/*EOF*/
        -:        -:11062:/*EOF*/
        -:        -:11063:/*EOF*/
        -:        -:11064:/*EOF*/
        -:        -:11065:/*EOF*/
        -:        -:11066:/*EOF*/
        -:        -:11067:/*EOF*/
        -:        -:11068:/*EOF*/
        -:        -:11069:/*EOF*/
        -:        -:11070:/*EOF*/
        -:        -:11071:/*EOF*/
        -:        -:11072:/*EOF*/
        -:        -:11073:/*EOF*/
        -:        -:11074:/*EOF*/
        -:        -:11075:/*EOF*/
        -:        -:11076:/*EOF*/
        -:        -:11077:/*EOF*/
        -:        -:11078:/*EOF*/
        -:        -:11079:/*EOF*/
        -:        -:11080:/*EOF*/
        -:        -:11081:/*EOF*/
        -:        -:11082:/*EOF*/
        -:        -:11083:/*EOF*/
        -:        -:11084:/*EOF*/
        -:        -:11085:/*EOF*/
        -:        -:11086:/*EOF*/
        -:        -:11087:/*EOF*/
        -:        -:11088:/*EOF*/
        -:        -:11089:/*EOF*/
        -:        -:11090:/*EOF*/
        -:        -:11091:/*EOF*/
        -:        -:11092:/*EOF*/
        -:        -:11093:/*EOF*/
        -:        -:11094:/*EOF*/
        -:        -:11095:/*EOF*/
        -:        -:11096:/*EOF*/
        -:        -:11097:/*EOF*/
        -:        -:11098:/*EOF*/
        -:        -:11099:/*EOF*/
        -:        -:11100:/*EOF*/
        -:        -:11101:/*EOF*/
        -:        -:11102:/*EOF*/
        -:        -:11103:/*EOF*/
        -:        -:11104:/*EOF*/
        -:        -:11105:/*EOF*/
        -:        -:11106:/*EOF*/
        -:        -:11107:/*EOF*/
        -:        -:11108:/*EOF*/
        -:        -:11109:/*EOF*/
        -:        -:11110:/*EOF*/
        -:        -:11111:/*EOF*/
        -:        -:11112:/*EOF*/
        -:        -:11113:/*EOF*/
        -:        -:11114:/*EOF*/
        -:        -:11115:/*EOF*/
        -:        -:11116:/*EOF*/
        -:        -:11117:/*EOF*/
        -:        -:11118:/*EOF*/
        -:        -:11119:/*EOF*/
        -:        -:11120:/*EOF*/
        -:        -:11121:/*EOF*/
        -:        -:11122:/*EOF*/
        -:        -:11123:/*EOF*/
        -:        -:11124:/*EOF*/
        -:        -:11125:/*EOF*/
        -:        -:11126:/*EOF*/
        -:        -:11127:/*EOF*/
        -:        -:11128:/*EOF*/
        -:        -:11129:/*EOF*/
        -:        -:11130:/*EOF*/
        -:        -:11131:/*EOF*/
        -:        -:11132:/*EOF*/
        -:        -:11133:/*EOF*/
        -:        -:11134:/*EOF*/
        -:        -:11135:/*EOF*/
        -:        -:11136:/*EOF*/
        -:        -:11137:/*EOF*/
        -:        -:11138:/*EOF*/
        -:        -:11139:/*EOF*/
        -:        -:11140:/*EOF*/
        -:        -:11141:/*EOF*/
        -:        -:11142:/*EOF*/
        -:        -:11143:/*EOF*/
        -:        -:11144:/*EOF*/
        -:        -:11145:/*EOF*/
        -:        -:11146:/*EOF*/
        -:        -:11147:/*EOF*/
        -:        -:11148:/*EOF*/
        -:        -:11149:/*EOF*/
        -:        -:11150:/*EOF*/
        -:        -:11151:/*EOF*/
        -:        -:11152:/*EOF*/
        -:        -:11153:/*EOF*/
        -:        -:11154:/*EOF*/
        -:        -:11155:/*EOF*/
        -:        -:11156:/*EOF*/
        -:        -:11157:/*EOF*/
        -:        -:11158:/*EOF*/
        -:        -:11159:/*EOF*/
        -:        -:11160:/*EOF*/
        -:        -:11161:/*EOF*/
        -:        -:11162:/*EOF*/
        -:        -:11163:/*EOF*/
        -:        -:11164:/*EOF*/
        -:        -:11165:/*EOF*/
        -:        -:11166:/*EOF*/
        -:        -:11167:/*EOF*/
        -:        -:11168:/*EOF*/
        -:        -:11169:/*EOF*/
        -:        -:11170:/*EOF*/
        -:        -:11171:/*EOF*/
        -:        -:11172:/*EOF*/
        -:        -:11173:/*EOF*/
        -:        -:11174:/*EOF*/
        -:        -:11175:/*EOF*/
        -:        -:11176:/*EOF*/
        -:        -:11177:/*EOF*/
        -:        -:11178:/*EOF*/
        -:        -:11179:/*EOF*/
        -:        -:11180:/*EOF*/
        -:        -:11181:/*EOF*/
        -:        -:11182:/*EOF*/
        -:        -:11183:/*EOF*/
        -:        -:11184:/*EOF*/
        -:        -:11185:/*EOF*/
        -:        -:11186:/*EOF*/
        -:        -:11187:/*EOF*/
        -:        -:11188:/*EOF*/
        -:        -:11189:/*EOF*/
        -:        -:11190:/*EOF*/
        -:        -:11191:/*EOF*/
        -:        -:11192:/*EOF*/
        -:        -:11193:/*EOF*/
        -:        -:11194:/*EOF*/
        -:        -:11195:/*EOF*/
        -:        -:11196:/*EOF*/
        -:        -:11197:/*EOF*/
        -:        -:11198:/*EOF*/
        -:        -:11199:/*EOF*/
        -:        -:11200:/*EOF*/
        -:        -:11201:/*EOF*/
        -:        -:11202:/*EOF*/
        -:        -:11203:/*EOF*/
        -:        -:11204:/*EOF*/
        -:        -:11205:/*EOF*/
        -:        -:11206:/*EOF*/
        -:        -:11207:/*EOF*/
        -:        -:11208:/*EOF*/
        -:        -:11209:/*EOF*/
        -:        -:11210:/*EOF*/
        -:        -:11211:/*EOF*/
        -:        -:11212:/*EOF*/
        -:        -:11213:/*EOF*/
        -:        -:11214:/*EOF*/
        -:        -:11215:/*EOF*/
        -:        -:11216:/*EOF*/
        -:        -:11217:/*EOF*/
        -:        -:11218:/*EOF*/
        -:        -:11219:/*EOF*/
        -:        -:11220:/*EOF*/
        -:        -:11221:/*EOF*/
        -:        -:11222:/*EOF*/
        -:        -:11223:/*EOF*/
        -:        -:11224:/*EOF*/
        -:        -:11225:/*EOF*/
        -:        -:11226:/*EOF*/
        -:        -:11227:/*EOF*/
        -:        -:11228:/*EOF*/
        -:        -:11229:/*EOF*/
        -:        -:11230:/*EOF*/
        -:        -:11231:/*EOF*/
        -:        -:11232:/*EOF*/
        -:        -:11233:/*EOF*/
        -:        -:11234:/*EOF*/
        -:        -:11235:/*EOF*/
        -:        -:11236:/*EOF*/
        -:        -:11237:/*EOF*/
        -:        -:11238:/*EOF*/
        -:        -:11239:/*EOF*/
        -:        -:11240:/*EOF*/
        -:        -:11241:/*EOF*/
        -:        -:11242:/*EOF*/
        -:        -:11243:/*EOF*/
        -:        -:11244:/*EOF*/
        -:        -:11245:/*EOF*/
        -:        -:11246:/*EOF*/
        -:        -:11247:/*EOF*/
        -:        -:11248:/*EOF*/
        -:        -:11249:/*EOF*/
        -:        -:11250:/*EOF*/
        -:        -:11251:/*EOF*/
        -:        -:11252:/*EOF*/
        -:        -:11253:/*EOF*/
        -:        -:11254:/*EOF*/
        -:        -:11255:/*EOF*/
        -:        -:11256:/*EOF*/
        -:        -:11257:/*EOF*/
        -:        -:11258:/*EOF*/
        -:        -:11259:/*EOF*/
        -:        -:11260:/*EOF*/
        -:        -:11261:/*EOF*/
        -:        -:11262:/*EOF*/
        -:        -:11263:/*EOF*/
        -:        -:11264:/*EOF*/
        -:        -:11265:/*EOF*/
        -:        -:11266:/*EOF*/
        -:        -:11267:/*EOF*/
        -:        -:11268:/*EOF*/
        -:        -:11269:/*EOF*/
        -:        -:11270:/*EOF*/
        -:        -:11271:/*EOF*/
        -:        -:11272:/*EOF*/
        -:        -:11273:/*EOF*/
        -:        -:11274:/*EOF*/
        -:        -:11275:/*EOF*/
        -:        -:11276:/*EOF*/
        -:        -:11277:/*EOF*/
        -:        -:11278:/*EOF*/
        -:        -:11279:/*EOF*/
        -:        -:11280:/*EOF*/
        -:        -:11281:/*EOF*/
        -:        -:11282:/*EOF*/
        -:        -:11283:/*EOF*/
        -:        -:11284:/*EOF*/
        -:        -:11285:/*EOF*/
        -:        -:11286:/*EOF*/
        -:        -:11287:/*EOF*/
        -:        -:11288:/*EOF*/
        -:        -:11289:/*EOF*/
        -:        -:11290:/*EOF*/
        -:        -:11291:/*EOF*/
        -:        -:11292:/*EOF*/
        -:        -:11293:/*EOF*/
        -:        -:11294:/*EOF*/
        -:        -:11295:/*EOF*/
        -:        -:11296:/*EOF*/
        -:        -:11297:/*EOF*/
        -:        -:11298:/*EOF*/
        -:        -:11299:/*EOF*/
        -:        -:11300:/*EOF*/
        -:        -:11301:/*EOF*/
        -:        -:11302:/*EOF*/
        -:        -:11303:/*EOF*/
        -:        -:11304:/*EOF*/
        -:        -:11305:/*EOF*/
        -:        -:11306:/*EOF*/
        -:        -:11307:/*EOF*/
        -:        -:11308:/*EOF*/
        -:        -:11309:/*EOF*/
        -:        -:11310:/*EOF*/
        -:        -:11311:/*EOF*/
        -:        -:11312:/*EOF*/
        -:        -:11313:/*EOF*/
        -:        -:11314:/*EOF*/
        -:        -:11315:/*EOF*/
        -:        -:11316:/*EOF*/
        -:        -:11317:/*EOF*/
        -:        -:11318:/*EOF*/
        -:        -:11319:/*EOF*/
        -:        -:11320:/*EOF*/
        -:        -:11321:/*EOF*/
        -:        -:11322:/*EOF*/
        -:        -:11323:/*EOF*/
        -:        -:11324:/*EOF*/
        -:        -:11325:/*EOF*/
        -:        -:11326:/*EOF*/
        -:        -:11327:/*EOF*/
        -:        -:11328:/*EOF*/
        -:        -:11329:/*EOF*/
        -:        -:11330:/*EOF*/
        -:        -:11331:/*EOF*/
        -:        -:11332:/*EOF*/
        -:        -:11333:/*EOF*/
        -:        -:11334:/*EOF*/
        -:        -:11335:/*EOF*/
        -:        -:11336:/*EOF*/
        -:        -:11337:/*EOF*/
        -:        -:11338:/*EOF*/
        -:        -:11339:/*EOF*/
        -:        -:11340:/*EOF*/
        -:        -:11341:/*EOF*/
        -:        -:11342:/*EOF*/
        -:        -:11343:/*EOF*/
        -:        -:11344:/*EOF*/
        -:        -:11345:/*EOF*/
        -:        -:11346:/*EOF*/
        -:        -:11347:/*EOF*/
        -:        -:11348:/*EOF*/
        -:        -:11349:/*EOF*/
        -:        -:11350:/*EOF*/
        -:        -:11351:/*EOF*/
        -:        -:11352:/*EOF*/
        -:        -:11353:/*EOF*/
        -:        -:11354:/*EOF*/
        -:        -:11355:/*EOF*/
        -:        -:11356:/*EOF*/
        -:        -:11357:/*EOF*/
        -:        -:11358:/*EOF*/
        -:        -:11359:/*EOF*/
        -:        -:11360:/*EOF*/
        -:        -:11361:/*EOF*/
        -:        -:11362:/*EOF*/
        -:        -:11363:/*EOF*/
        -:        -:11364:/*EOF*/
        -:        -:11365:/*EOF*/
        -:        -:11366:/*EOF*/
        -:        -:11367:/*EOF*/
        -:        -:11368:/*EOF*/
        -:        -:11369:/*EOF*/
        -:        -:11370:/*EOF*/
        -:        -:11371:/*EOF*/
        -:        -:11372:/*EOF*/
        -:        -:11373:/*EOF*/
        -:        -:11374:/*EOF*/
        -:        -:11375:/*EOF*/
        -:        -:11376:/*EOF*/
        -:        -:11377:/*EOF*/
        -:        -:11378:/*EOF*/
        -:        -:11379:/*EOF*/
        -:        -:11380:/*EOF*/
        -:        -:11381:/*EOF*/
        -:        -:11382:/*EOF*/
        -:        -:11383:/*EOF*/
        -:        -:11384:/*EOF*/
        -:        -:11385:/*EOF*/
        -:        -:11386:/*EOF*/
        -:        -:11387:/*EOF*/
        -:        -:11388:/*EOF*/
        -:        -:11389:/*EOF*/
        -:        -:11390:/*EOF*/
        -:        -:11391:/*EOF*/
        -:        -:11392:/*EOF*/
        -:        -:11393:/*EOF*/
        -:        -:11394:/*EOF*/
        -:        -:11395:/*EOF*/
        -:        -:11396:/*EOF*/
        -:        -:11397:/*EOF*/
        -:        -:11398:/*EOF*/
        -:        -:11399:/*EOF*/
        -:        -:11400:/*EOF*/
        -:        -:11401:/*EOF*/
        -:        -:11402:/*EOF*/
        -:        -:11403:/*EOF*/
        -:        -:11404:/*EOF*/
        -:        -:11405:/*EOF*/
        -:        -:11406:/*EOF*/
        -:        -:11407:/*EOF*/
        -:        -:11408:/*EOF*/
        -:        -:11409:/*EOF*/
        -:        -:11410:/*EOF*/
        -:        -:11411:/*EOF*/
        -:        -:11412:/*EOF*/
        -:        -:11413:/*EOF*/
        -:        -:11414:/*EOF*/
        -:        -:11415:/*EOF*/
        -:        -:11416:/*EOF*/
        -:        -:11417:/*EOF*/
        -:        -:11418:/*EOF*/
        -:        -:11419:/*EOF*/
        -:        -:11420:/*EOF*/
        -:        -:11421:/*EOF*/
        -:        -:11422:/*EOF*/
        -:        -:11423:/*EOF*/
        -:        -:11424:/*EOF*/
        -:        -:11425:/*EOF*/
        -:        -:11426:/*EOF*/
        -:        -:11427:/*EOF*/
        -:        -:11428:/*EOF*/
        -:        -:11429:/*EOF*/
        -:        -:11430:/*EOF*/
        -:        -:11431:/*EOF*/
        -:        -:11432:/*EOF*/
        -:        -:11433:/*EOF*/
        -:        -:11434:/*EOF*/
        -:        -:11435:/*EOF*/
        -:        -:11436:/*EOF*/
        -:        -:11437:/*EOF*/
        -:        -:11438:/*EOF*/
        -:        -:11439:/*EOF*/
        -:        -:11440:/*EOF*/
        -:        -:11441:/*EOF*/
        -:        -:11442:/*EOF*/
        -:        -:11443:/*EOF*/
        -:        -:11444:/*EOF*/
        -:        -:11445:/*EOF*/
        -:        -:11446:/*EOF*/
        -:        -:11447:/*EOF*/
        -:        -:11448:/*EOF*/
        -:        -:11449:/*EOF*/
        -:        -:11450:/*EOF*/
        -:        -:11451:/*EOF*/
        -:        -:11452:/*EOF*/
        -:        -:11453:/*EOF*/
        -:        -:11454:/*EOF*/
        -:        -:11455:/*EOF*/
        -:        -:11456:/*EOF*/
        -:        -:11457:/*EOF*/
        -:        -:11458:/*EOF*/
        -:        -:11459:/*EOF*/
        -:        -:11460:/*EOF*/
        -:        -:11461:/*EOF*/
        -:        -:11462:/*EOF*/
        -:        -:11463:/*EOF*/
        -:        -:11464:/*EOF*/
        -:        -:11465:/*EOF*/
        -:        -:11466:/*EOF*/
        -:        -:11467:/*EOF*/
        -:        -:11468:/*EOF*/
        -:        -:11469:/*EOF*/
        -:        -:11470:/*EOF*/
        -:        -:11471:/*EOF*/
        -:        -:11472:/*EOF*/
        -:        -:11473:/*EOF*/
        -:        -:11474:/*EOF*/
        -:        -:11475:/*EOF*/
        -:        -:11476:/*EOF*/
        -:        -:11477:/*EOF*/
        -:        -:11478:/*EOF*/
        -:        -:11479:/*EOF*/
        -:        -:11480:/*EOF*/
        -:        -:11481:/*EOF*/
        -:        -:11482:/*EOF*/
        -:        -:11483:/*EOF*/
        -:        -:11484:/*EOF*/
        -:        -:11485:/*EOF*/
        -:        -:11486:/*EOF*/
        -:        -:11487:/*EOF*/
        -:        -:11488:/*EOF*/
        -:        -:11489:/*EOF*/
        -:        -:11490:/*EOF*/
        -:        -:11491:/*EOF*/
        -:        -:11492:/*EOF*/
        -:        -:11493:/*EOF*/
        -:        -:11494:/*EOF*/
        -:        -:11495:/*EOF*/
        -:        -:11496:/*EOF*/
        -:        -:11497:/*EOF*/
        -:        -:11498:/*EOF*/
        -:        -:11499:/*EOF*/
        -:        -:11500:/*EOF*/
        -:        -:11501:/*EOF*/
        -:        -:11502:/*EOF*/
        -:        -:11503:/*EOF*/
        -:        -:11504:/*EOF*/
        -:        -:11505:/*EOF*/
        -:        -:11506:/*EOF*/
        -:        -:11507:/*EOF*/
        -:        -:11508:/*EOF*/
        -:        -:11509:/*EOF*/
        -:        -:11510:/*EOF*/
        -:        -:11511:/*EOF*/
        -:        -:11512:/*EOF*/
        -:        -:11513:/*EOF*/
        -:        -:11514:/*EOF*/
        -:        -:11515:/*EOF*/
        -:        -:11516:/*EOF*/
        -:        -:11517:/*EOF*/
        -:        -:11518:/*EOF*/
        -:        -:11519:/*EOF*/
        -:        -:11520:/*EOF*/
        -:        -:11521:/*EOF*/
        -:        -:11522:/*EOF*/
        -:        -:11523:/*EOF*/
        -:        -:11524:/*EOF*/
        -:        -:11525:/*EOF*/
        -:        -:11526:/*EOF*/
        -:        -:11527:/*EOF*/
        -:        -:11528:/*EOF*/
        -:        -:11529:/*EOF*/
        -:        -:11530:/*EOF*/
        -:        -:11531:/*EOF*/
        -:        -:11532:/*EOF*/
        -:        -:11533:/*EOF*/
        -:        -:11534:/*EOF*/
        -:        -:11535:/*EOF*/
        -:        -:11536:/*EOF*/
        -:        -:11537:/*EOF*/
        -:        -:11538:/*EOF*/
        -:        -:11539:/*EOF*/
        -:        -:11540:/*EOF*/
        -:        -:11541:/*EOF*/
        -:        -:11542:/*EOF*/
        -:        -:11543:/*EOF*/
        -:        -:11544:/*EOF*/
        -:        -:11545:/*EOF*/
        -:        -:11546:/*EOF*/
        -:        -:11547:/*EOF*/
        -:        -:11548:/*EOF*/
        -:        -:11549:/*EOF*/
        -:        -:11550:/*EOF*/
        -:        -:11551:/*EOF*/
        -:        -:11552:/*EOF*/
        -:        -:11553:/*EOF*/
        -:        -:11554:/*EOF*/
        -:        -:11555:/*EOF*/
        -:        -:11556:/*EOF*/
        -:        -:11557:/*EOF*/
        -:        -:11558:/*EOF*/
        -:        -:11559:/*EOF*/
        -:        -:11560:/*EOF*/
        -:        -:11561:/*EOF*/
        -:        -:11562:/*EOF*/
        -:        -:11563:/*EOF*/
        -:        -:11564:/*EOF*/
        -:        -:11565:/*EOF*/
        -:        -:11566:/*EOF*/
        -:        -:11567:/*EOF*/
        -:        -:11568:/*EOF*/
        -:        -:11569:/*EOF*/
        -:        -:11570:/*EOF*/
        -:        -:11571:/*EOF*/
        -:        -:11572:/*EOF*/
        -:        -:11573:/*EOF*/
        -:        -:11574:/*EOF*/
        -:        -:11575:/*EOF*/
        -:        -:11576:/*EOF*/
        -:        -:11577:/*EOF*/
        -:        -:11578:/*EOF*/
        -:        -:11579:/*EOF*/
        -:        -:11580:/*EOF*/
        -:        -:11581:/*EOF*/
        -:        -:11582:/*EOF*/
        -:        -:11583:/*EOF*/
        -:        -:11584:/*EOF*/
        -:        -:11585:/*EOF*/
        -:        -:11586:/*EOF*/
        -:        -:11587:/*EOF*/
        -:        -:11588:/*EOF*/
        -:        -:11589:/*EOF*/
        -:        -:11590:/*EOF*/
        -:        -:11591:/*EOF*/
        -:        -:11592:/*EOF*/
        -:        -:11593:/*EOF*/
        -:        -:11594:/*EOF*/
        -:        -:11595:/*EOF*/
        -:        -:11596:/*EOF*/
        -:        -:11597:/*EOF*/
        -:        -:11598:/*EOF*/
        -:        -:11599:/*EOF*/
        -:        -:11600:/*EOF*/
        -:        -:11601:/*EOF*/
        -:        -:11602:/*EOF*/
        -:        -:11603:/*EOF*/
        -:        -:11604:/*EOF*/
        -:        -:11605:/*EOF*/
        -:        -:11606:/*EOF*/
        -:        -:11607:/*EOF*/
        -:        -:11608:/*EOF*/
        -:        -:11609:/*EOF*/
        -:        -:11610:/*EOF*/
        -:        -:11611:/*EOF*/
        -:        -:11612:/*EOF*/
        -:        -:11613:/*EOF*/
        -:        -:11614:/*EOF*/
        -:        -:11615:/*EOF*/
        -:        -:11616:/*EOF*/
        -:        -:11617:/*EOF*/
        -:        -:11618:/*EOF*/
        -:        -:11619:/*EOF*/
        -:        -:11620:/*EOF*/
        -:        -:11621:/*EOF*/
        -:        -:11622:/*EOF*/
        -:        -:11623:/*EOF*/
        -:        -:11624:/*EOF*/
        -:        -:11625:/*EOF*/
        -:        -:11626:/*EOF*/
        -:        -:11627:/*EOF*/
        -:        -:11628:/*EOF*/
        -:        -:11629:/*EOF*/
        -:        -:11630:/*EOF*/
        -:        -:11631:/*EOF*/
        -:        -:11632:/*EOF*/
        -:        -:11633:/*EOF*/
        -:        -:11634:/*EOF*/
        -:        -:11635:/*EOF*/
        -:        -:11636:/*EOF*/
        -:        -:11637:/*EOF*/
        -:        -:11638:/*EOF*/
        -:        -:11639:/*EOF*/
        -:        -:11640:/*EOF*/
        -:        -:11641:/*EOF*/
        -:        -:11642:/*EOF*/
        -:        -:11643:/*EOF*/
        -:        -:11644:/*EOF*/
        -:        -:11645:/*EOF*/
        -:        -:11646:/*EOF*/
        -:        -:11647:/*EOF*/
        -:        -:11648:/*EOF*/
        -:        -:11649:/*EOF*/
        -:        -:11650:/*EOF*/
        -:        -:11651:/*EOF*/
        -:        -:11652:/*EOF*/
        -:        -:11653:/*EOF*/
        -:        -:11654:/*EOF*/
        -:        -:11655:/*EOF*/
        -:        -:11656:/*EOF*/
        -:        -:11657:/*EOF*/
        -:        -:11658:/*EOF*/
        -:        -:11659:/*EOF*/
        -:        -:11660:/*EOF*/
        -:        -:11661:/*EOF*/
        -:        -:11662:/*EOF*/
        -:        -:11663:/*EOF*/
        -:        -:11664:/*EOF*/
        -:        -:11665:/*EOF*/
        -:        -:11666:/*EOF*/
        -:        -:11667:/*EOF*/
        -:        -:11668:/*EOF*/
        -:        -:11669:/*EOF*/
        -:        -:11670:/*EOF*/
        -:        -:11671:/*EOF*/
        -:        -:11672:/*EOF*/
        -:        -:11673:/*EOF*/
        -:        -:11674:/*EOF*/
        -:        -:11675:/*EOF*/
        -:        -:11676:/*EOF*/
        -:        -:11677:/*EOF*/
        -:        -:11678:/*EOF*/
        -:        -:11679:/*EOF*/
        -:        -:11680:/*EOF*/
        -:        -:11681:/*EOF*/
        -:        -:11682:/*EOF*/
        -:        -:11683:/*EOF*/
        -:        -:11684:/*EOF*/
        -:        -:11685:/*EOF*/
        -:        -:11686:/*EOF*/
        -:        -:11687:/*EOF*/
        -:        -:11688:/*EOF*/
        -:        -:11689:/*EOF*/
        -:        -:11690:/*EOF*/
        -:        -:11691:/*EOF*/
        -:        -:11692:/*EOF*/
        -:        -:11693:/*EOF*/
        -:        -:11694:/*EOF*/
        -:        -:11695:/*EOF*/
        -:        -:11696:/*EOF*/
        -:        -:11697:/*EOF*/
        -:        -:11698:/*EOF*/
        -:        -:11699:/*EOF*/
        -:        -:11700:/*EOF*/
        -:        -:11701:/*EOF*/
        -:        -:11702:/*EOF*/
        -:        -:11703:/*EOF*/
        -:        -:11704:/*EOF*/
        -:        -:11705:/*EOF*/
        -:        -:11706:/*EOF*/
        -:        -:11707:/*EOF*/
        -:        -:11708:/*EOF*/
        -:        -:11709:/*EOF*/
        -:        -:11710:/*EOF*/
        -:        -:11711:/*EOF*/
        -:        -:11712:/*EOF*/
        -:        -:11713:/*EOF*/
        -:        -:11714:/*EOF*/
        -:        -:11715:/*EOF*/
        -:        -:11716:/*EOF*/
        -:        -:11717:/*EOF*/
        -:        -:11718:/*EOF*/
        -:        -:11719:/*EOF*/
        -:        -:11720:/*EOF*/
        -:        -:11721:/*EOF*/
        -:        -:11722:/*EOF*/
        -:        -:11723:/*EOF*/
        -:        -:11724:/*EOF*/
        -:        -:11725:/*EOF*/
        -:        -:11726:/*EOF*/
        -:        -:11727:/*EOF*/
        -:        -:11728:/*EOF*/
        -:        -:11729:/*EOF*/
        -:        -:11730:/*EOF*/
        -:        -:11731:/*EOF*/
        -:        -:11732:/*EOF*/
        -:        -:11733:/*EOF*/
        -:        -:11734:/*EOF*/
        -:        -:11735:/*EOF*/
        -:        -:11736:/*EOF*/
        -:        -:11737:/*EOF*/
        -:        -:11738:/*EOF*/
        -:        -:11739:/*EOF*/
        -:        -:11740:/*EOF*/
        -:        -:11741:/*EOF*/
        -:        -:11742:/*EOF*/
        -:        -:11743:/*EOF*/
        -:        -:11744:/*EOF*/
        -:        -:11745:/*EOF*/
        -:        -:11746:/*EOF*/
        -:        -:11747:/*EOF*/
        -:        -:11748:/*EOF*/
        -:        -:11749:/*EOF*/
        -:        -:11750:/*EOF*/
        -:        -:11751:/*EOF*/
        -:        -:11752:/*EOF*/
        -:        -:11753:/*EOF*/
        -:        -:11754:/*EOF*/
        -:        -:11755:/*EOF*/
        -:        -:11756:/*EOF*/
        -:        -:11757:/*EOF*/
        -:        -:11758:/*EOF*/
        -:        -:11759:/*EOF*/
        -:        -:11760:/*EOF*/
        -:        -:11761:/*EOF*/
        -:        -:11762:/*EOF*/
        -:        -:11763:/*EOF*/
        -:        -:11764:/*EOF*/
        -:        -:11765:/*EOF*/
        -:        -:11766:/*EOF*/
        -:        -:11767:/*EOF*/
        -:        -:11768:/*EOF*/
        -:        -:11769:/*EOF*/
        -:        -:11770:/*EOF*/
        -:        -:11771:/*EOF*/
        -:        -:11772:/*EOF*/
        -:        -:11773:/*EOF*/
        -:        -:11774:/*EOF*/
        -:        -:11775:/*EOF*/
        -:        -:11776:/*EOF*/
        -:        -:11777:/*EOF*/
        -:        -:11778:/*EOF*/
        -:        -:11779:/*EOF*/
        -:        -:11780:/*EOF*/
        -:        -:11781:/*EOF*/
        -:        -:11782:/*EOF*/
        -:        -:11783:/*EOF*/
        -:        -:11784:/*EOF*/
        -:        -:11785:/*EOF*/
        -:        -:11786:/*EOF*/
        -:        -:11787:/*EOF*/
        -:        -:11788:/*EOF*/
        -:        -:11789:/*EOF*/
        -:        -:11790:/*EOF*/
        -:        -:11791:/*EOF*/
        -:        -:11792:/*EOF*/
        -:        -:11793:/*EOF*/
        -:        -:11794:/*EOF*/
        -:        -:11795:/*EOF*/
        -:        -:11796:/*EOF*/
        -:        -:11797:/*EOF*/
        -:        -:11798:/*EOF*/
        -:        -:11799:/*EOF*/
        -:        -:11800:/*EOF*/
        -:        -:11801:/*EOF*/
        -:        -:11802:/*EOF*/
        -:        -:11803:/*EOF*/
        -:        -:11804:/*EOF*/
        -:        -:11805:/*EOF*/
        -:        -:11806:/*EOF*/
        -:        -:11807:/*EOF*/
        -:        -:11808:/*EOF*/
        -:        -:11809:/*EOF*/
        -:        -:11810:/*EOF*/
        -:        -:11811:/*EOF*/
        -:        -:11812:/*EOF*/
        -:        -:11813:/*EOF*/
        -:        -:11814:/*EOF*/
        -:        -:11815:/*EOF*/
        -:        -:11816:/*EOF*/
        -:        -:11817:/*EOF*/
        -:        -:11818:/*EOF*/
        -:        -:11819:/*EOF*/
        -:        -:11820:/*EOF*/
        -:        -:11821:/*EOF*/
        -:        -:11822:/*EOF*/
        -:        -:11823:/*EOF*/
        -:        -:11824:/*EOF*/
        -:        -:11825:/*EOF*/
        -:        -:11826:/*EOF*/
        -:        -:11827:/*EOF*/
        -:        -:11828:/*EOF*/
        -:        -:11829:/*EOF*/
        -:        -:11830:/*EOF*/
        -:        -:11831:/*EOF*/
        -:        -:11832:/*EOF*/
        -:        -:11833:/*EOF*/
        -:        -:11834:/*EOF*/
        -:        -:11835:/*EOF*/
        -:        -:11836:/*EOF*/
        -:        -:11837:/*EOF*/
        -:        -:11838:/*EOF*/
        -:        -:11839:/*EOF*/
        -:        -:11840:/*EOF*/
        -:        -:11841:/*EOF*/
        -:        -:11842:/*EOF*/
        -:        -:11843:/*EOF*/
        -:        -:11844:/*EOF*/
        -:        -:11845:/*EOF*/
        -:        -:11846:/*EOF*/
        -:        -:11847:/*EOF*/
        -:        -:11848:/*EOF*/
        -:        -:11849:/*EOF*/
        -:        -:11850:/*EOF*/
        -:        -:11851:/*EOF*/
        -:        -:11852:/*EOF*/
        -:        -:11853:/*EOF*/
        -:        -:11854:/*EOF*/
        -:        -:11855:/*EOF*/
        -:        -:11856:/*EOF*/
        -:        -:11857:/*EOF*/
        -:        -:11858:/*EOF*/
        -:        -:11859:/*EOF*/
        -:        -:11860:/*EOF*/
        -:        -:11861:/*EOF*/
        -:        -:11862:/*EOF*/
        -:        -:11863:/*EOF*/
        -:        -:11864:/*EOF*/
        -:        -:11865:/*EOF*/
        -:        -:11866:/*EOF*/
        -:        -:11867:/*EOF*/
        -:        -:11868:/*EOF*/
        -:        -:11869:/*EOF*/
        -:        -:11870:/*EOF*/
        -:        -:11871:/*EOF*/
        -:        -:11872:/*EOF*/
        -:        -:11873:/*EOF*/
        -:        -:11874:/*EOF*/
        -:        -:11875:/*EOF*/
        -:        -:11876:/*EOF*/
        -:        -:11877:/*EOF*/
        -:        -:11878:/*EOF*/
        -:        -:11879:/*EOF*/
        -:        -:11880:/*EOF*/
        -:        -:11881:/*EOF*/
        -:        -:11882:/*EOF*/
        -:        -:11883:/*EOF*/
        -:        -:11884:/*EOF*/
        -:        -:11885:/*EOF*/
        -:        -:11886:/*EOF*/
        -:        -:11887:/*EOF*/
        -:        -:11888:/*EOF*/
        -:        -:11889:/*EOF*/
        -:        -:11890:/*EOF*/
        -:        -:11891:/*EOF*/
        -:        -:11892:/*EOF*/
        -:        -:11893:/*EOF*/
        -:        -:11894:/*EOF*/
        -:        -:11895:/*EOF*/
        -:        -:11896:/*EOF*/
        -:        -:11897:/*EOF*/
        -:        -:11898:/*EOF*/
        -:        -:11899:/*EOF*/
        -:        -:11900:/*EOF*/
        -:        -:11901:/*EOF*/
        -:        -:11902:/*EOF*/
        -:        -:11903:/*EOF*/
        -:        -:11904:/*EOF*/
        -:        -:11905:/*EOF*/
        -:        -:11906:/*EOF*/
        -:        -:11907:/*EOF*/
        -:        -:11908:/*EOF*/
        -:        -:11909:/*EOF*/
        -:        -:11910:/*EOF*/
        -:        -:11911:/*EOF*/
        -:        -:11912:/*EOF*/
        -:        -:11913:/*EOF*/
        -:        -:11914:/*EOF*/
        -:        -:11915:/*EOF*/
        -:        -:11916:/*EOF*/
        -:        -:11917:/*EOF*/
        -:        -:11918:/*EOF*/
        -:        -:11919:/*EOF*/
        -:        -:11920:/*EOF*/
        -:        -:11921:/*EOF*/
        -:        -:11922:/*EOF*/
        -:        -:11923:/*EOF*/
        -:        -:11924:/*EOF*/
        -:        -:11925:/*EOF*/
        -:        -:11926:/*EOF*/
        -:        -:11927:/*EOF*/
        -:        -:11928:/*EOF*/
        -:        -:11929:/*EOF*/
        -:        -:11930:/*EOF*/
        -:        -:11931:/*EOF*/
        -:        -:11932:/*EOF*/
        -:        -:11933:/*EOF*/
        -:        -:11934:/*EOF*/
        -:        -:11935:/*EOF*/
        -:        -:11936:/*EOF*/
        -:        -:11937:/*EOF*/
        -:        -:11938:/*EOF*/
        -:        -:11939:/*EOF*/
        -:        -:11940:/*EOF*/
        -:        -:11941:/*EOF*/
        -:        -:11942:/*EOF*/
        -:        -:11943:/*EOF*/
        -:        -:11944:/*EOF*/
        -:        -:11945:/*EOF*/
        -:        -:11946:/*EOF*/
        -:        -:11947:/*EOF*/
        -:        -:11948:/*EOF*/
        -:        -:11949:/*EOF*/
        -:        -:11950:/*EOF*/
        -:        -:11951:/*EOF*/
        -:        -:11952:/*EOF*/
        -:        -:11953:/*EOF*/
        -:        -:11954:/*EOF*/
        -:        -:11955:/*EOF*/
        -:        -:11956:/*EOF*/
        -:        -:11957:/*EOF*/
        -:        -:11958:/*EOF*/
        -:        -:11959:/*EOF*/
        -:        -:11960:/*EOF*/
        -:        -:11961:/*EOF*/
        -:        -:11962:/*EOF*/
        -:        -:11963:/*EOF*/
        -:        -:11964:/*EOF*/
        -:        -:11965:/*EOF*/
        -:        -:11966:/*EOF*/
        -:        -:11967:/*EOF*/
        -:        -:11968:/*EOF*/
        -:        -:11969:/*EOF*/
        -:        -:11970:/*EOF*/
        -:        -:11971:/*EOF*/
        -:        -:11972:/*EOF*/
        -:        -:11973:/*EOF*/
        -:        -:11974:/*EOF*/
        -:        -:11975:/*EOF*/
        -:        -:11976:/*EOF*/
        -:        -:11977:/*EOF*/
        -:        -:11978:/*EOF*/
        -:        -:11979:/*EOF*/
        -:        -:11980:/*EOF*/
        -:        -:11981:/*EOF*/
        -:        -:11982:/*EOF*/
        -:        -:11983:/*EOF*/
        -:        -:11984:/*EOF*/
        -:        -:11985:/*EOF*/
        -:        -:11986:/*EOF*/
        -:        -:11987:/*EOF*/
        -:        -:11988:/*EOF*/
        -:        -:11989:/*EOF*/
        -:        -:11990:/*EOF*/
        -:        -:11991:/*EOF*/
        -:        -:11992:/*EOF*/
        -:        -:11993:/*EOF*/
        -:        -:11994:/*EOF*/
        -:        -:11995:/*EOF*/
        -:        -:11996:/*EOF*/
        -:        -:11997:/*EOF*/
        -:        -:11998:/*EOF*/
        -:        -:11999:/*EOF*/
        -:        -:12000:/*EOF*/
        -:        -:12001:/*EOF*/
        -:        -:12002:/*EOF*/
        -:        -:12003:/*EOF*/
        -:        -:12004:/*EOF*/
        -:        -:12005:/*EOF*/
        -:        -:12006:/*EOF*/
        -:        -:12007:/*EOF*/
        -:        -:12008:/*EOF*/
        -:        -:12009:/*EOF*/
        -:        -:12010:/*EOF*/
        -:        -:12011:/*EOF*/
        -:        -:12012:/*EOF*/
        -:        -:12013:/*EOF*/
        -:        -:12014:/*EOF*/
        -:        -:12015:/*EOF*/
        -:        -:12016:/*EOF*/
        -:        -:12017:/*EOF*/
        -:        -:12018:/*EOF*/
        -:        -:12019:/*EOF*/
        -:        -:12020:/*EOF*/
        -:        -:12021:/*EOF*/
        -:        -:12022:/*EOF*/
        -:        -:12023:/*EOF*/
        -:        -:12024:/*EOF*/
        -:        -:12025:/*EOF*/
        -:        -:12026:/*EOF*/
        -:        -:12027:/*EOF*/
        -:        -:12028:/*EOF*/
        -:        -:12029:/*EOF*/
        -:        -:12030:/*EOF*/
        -:        -:12031:/*EOF*/
        -:        -:12032:/*EOF*/
        -:        -:12033:/*EOF*/
        -:        -:12034:/*EOF*/
        -:        -:12035:/*EOF*/
        -:        -:12036:/*EOF*/
        -:        -:12037:/*EOF*/
        -:        -:12038:/*EOF*/
        -:        -:12039:/*EOF*/
        -:        -:12040:/*EOF*/
        -:        -:12041:/*EOF*/
        -:        -:12042:/*EOF*/
        -:        -:12043:/*EOF*/
        -:        -:12044:/*EOF*/
        -:        -:12045:/*EOF*/
        -:        -:12046:/*EOF*/
        -:        -:12047:/*EOF*/
        -:        -:12048:/*EOF*/
        -:        -:12049:/*EOF*/
        -:        -:12050:/*EOF*/
        -:        -:12051:/*EOF*/
        -:        -:12052:/*EOF*/
        -:        -:12053:/*EOF*/
        -:        -:12054:/*EOF*/
        -:        -:12055:/*EOF*/
        -:        -:12056:/*EOF*/
        -:        -:12057:/*EOF*/
        -:        -:12058:/*EOF*/
        -:        -:12059:/*EOF*/
        -:        -:12060:/*EOF*/
        -:        -:12061:/*EOF*/
        -:        -:12062:/*EOF*/
        -:        -:12063:/*EOF*/
        -:        -:12064:/*EOF*/
        -:        -:12065:/*EOF*/
        -:        -:12066:/*EOF*/
        -:        -:12067:/*EOF*/
        -:        -:12068:/*EOF*/
        -:        -:12069:/*EOF*/
        -:        -:12070:/*EOF*/
        -:        -:12071:/*EOF*/
        -:        -:12072:/*EOF*/
        -:        -:12073:/*EOF*/
        -:        -:12074:/*EOF*/
        -:        -:12075:/*EOF*/
        -:        -:12076:/*EOF*/
        -:        -:12077:/*EOF*/
        -:        -:12078:/*EOF*/
        -:        -:12079:/*EOF*/
        -:        -:12080:/*EOF*/
        -:        -:12081:/*EOF*/
        -:        -:12082:/*EOF*/
        -:        -:12083:/*EOF*/
        -:        -:12084:/*EOF*/
        -:        -:12085:/*EOF*/
        -:        -:12086:/*EOF*/
        -:        -:12087:/*EOF*/
        -:        -:12088:/*EOF*/
        -:        -:12089:/*EOF*/
        -:        -:12090:/*EOF*/
        -:        -:12091:/*EOF*/
        -:        -:12092:/*EOF*/
        -:        -:12093:/*EOF*/
        -:        -:12094:/*EOF*/
        -:        -:12095:/*EOF*/
        -:        -:12096:/*EOF*/
        -:        -:12097:/*EOF*/
        -:        -:12098:/*EOF*/
        -:        -:12099:/*EOF*/
        -:        -:12100:/*EOF*/
        -:        -:12101:/*EOF*/
        -:        -:12102:/*EOF*/
        -:        -:12103:/*EOF*/
        -:        -:12104:/*EOF*/
        -:        -:12105:/*EOF*/
        -:        -:12106:/*EOF*/
        -:        -:12107:/*EOF*/
        -:        -:12108:/*EOF*/
        -:        -:12109:/*EOF*/
        -:        -:12110:/*EOF*/
        -:        -:12111:/*EOF*/
        -:        -:12112:/*EOF*/
        -:        -:12113:/*EOF*/
        -:        -:12114:/*EOF*/
        -:        -:12115:/*EOF*/
        -:        -:12116:/*EOF*/
        -:        -:12117:/*EOF*/
        -:        -:12118:/*EOF*/
        -:        -:12119:/*EOF*/
        -:        -:12120:/*EOF*/
        -:        -:12121:/*EOF*/
        -:        -:12122:/*EOF*/
        -:        -:12123:/*EOF*/
        -:        -:12124:/*EOF*/
        -:        -:12125:/*EOF*/
        -:        -:12126:/*EOF*/
        -:        -:12127:/*EOF*/
        -:        -:12128:/*EOF*/
        -:        -:12129:/*EOF*/
        -:        -:12130:/*EOF*/
        -:        -:12131:/*EOF*/
        -:        -:12132:/*EOF*/
        -:        -:12133:/*EOF*/
        -:        -:12134:/*EOF*/
        -:        -:12135:/*EOF*/
        -:        -:12136:/*EOF*/
        -:        -:12137:/*EOF*/
        -:        -:12138:/*EOF*/
        -:        -:12139:/*EOF*/
        -:        -:12140:/*EOF*/
        -:        -:12141:/*EOF*/
        -:        -:12142:/*EOF*/
        -:        -:12143:/*EOF*/
        -:        -:12144:/*EOF*/
        -:        -:12145:/*EOF*/
        -:        -:12146:/*EOF*/
        -:        -:12147:/*EOF*/
        -:        -:12148:/*EOF*/
        -:        -:12149:/*EOF*/
        -:        -:12150:/*EOF*/
        -:        -:12151:/*EOF*/
        -:        -:12152:/*EOF*/
        -:        -:12153:/*EOF*/
        -:        -:12154:/*EOF*/
        -:        -:12155:/*EOF*/
        -:        -:12156:/*EOF*/
        -:        -:12157:/*EOF*/
        -:        -:12158:/*EOF*/
        -:        -:12159:/*EOF*/
        -:        -:12160:/*EOF*/
        -:        -:12161:/*EOF*/
        -:        -:12162:/*EOF*/
        -:        -:12163:/*EOF*/
        -:        -:12164:/*EOF*/
        -:        -:12165:/*EOF*/
        -:        -:12166:/*EOF*/
        -:        -:12167:/*EOF*/
        -:        -:12168:/*EOF*/
        -:        -:12169:/*EOF*/
        -:        -:12170:/*EOF*/
        -:        -:12171:/*EOF*/
        -:        -:12172:/*EOF*/
        -:        -:12173:/*EOF*/
        -:        -:12174:/*EOF*/
        -:        -:12175:/*EOF*/
        -:        -:12176:/*EOF*/
        -:        -:12177:/*EOF*/
        -:        -:12178:/*EOF*/
        -:        -:12179:/*EOF*/
        -:        -:12180:/*EOF*/
        -:        -:12181:/*EOF*/
        -:        -:12182:/*EOF*/
        -:        -:12183:/*EOF*/
        -:        -:12184:/*EOF*/
        -:        -:12185:/*EOF*/
        -:        -:12186:/*EOF*/
        -:        -:12187:/*EOF*/
        -:        -:12188:/*EOF*/
        -:        -:12189:/*EOF*/
        -:        -:12190:/*EOF*/
        -:        -:12191:/*EOF*/
        -:        -:12192:/*EOF*/
        -:        -:12193:/*EOF*/
        -:        -:12194:/*EOF*/
        -:        -:12195:/*EOF*/
        -:        -:12196:/*EOF*/
        -:        -:12197:/*EOF*/
        -:        -:12198:/*EOF*/
        -:        -:12199:/*EOF*/
        -:        -:12200:/*EOF*/
        -:        -:12201:/*EOF*/
        -:        -:12202:/*EOF*/
        -:        -:12203:/*EOF*/
        -:        -:12204:/*EOF*/
        -:        -:12205:/*EOF*/
        -:        -:12206:/*EOF*/
        -:        -:12207:/*EOF*/
        -:        -:12208:/*EOF*/
        -:        -:12209:/*EOF*/
        -:        -:12210:/*EOF*/
        -:        -:12211:/*EOF*/
        -:        -:12212:/*EOF*/
        -:        -:12213:/*EOF*/
        -:        -:12214:/*EOF*/
        -:        -:12215:/*EOF*/
        -:        -:12216:/*EOF*/
        -:        -:12217:/*EOF*/
        -:        -:12218:/*EOF*/
        -:        -:12219:/*EOF*/
        -:        -:12220:/*EOF*/
        -:        -:12221:/*EOF*/
        -:        -:12222:/*EOF*/
        -:        -:12223:/*EOF*/
        -:        -:12224:/*EOF*/
        -:        -:12225:/*EOF*/
        -:        -:12226:/*EOF*/
        -:        -:12227:/*EOF*/
        -:        -:12228:/*EOF*/
        -:        -:12229:/*EOF*/
        -:        -:12230:/*EOF*/
        -:        -:12231:/*EOF*/
        -:        -:12232:/*EOF*/
        -:        -:12233:/*EOF*/
        -:        -:12234:/*EOF*/
        -:        -:12235:/*EOF*/
        -:        -:12236:/*EOF*/
        -:        -:12237:/*EOF*/
        -:        -:12238:/*EOF*/
        -:        -:12239:/*EOF*/
        -:        -:12240:/*EOF*/
        -:        -:12241:/*EOF*/
        -:        -:12242:/*EOF*/
        -:        -:12243:/*EOF*/
        -:        -:12244:/*EOF*/
        -:        -:12245:/*EOF*/
        -:        -:12246:/*EOF*/
        -:        -:12247:/*EOF*/
        -:        -:12248:/*EOF*/
        -:        -:12249:/*EOF*/
        -:        -:12250:/*EOF*/
        -:        -:12251:/*EOF*/
        -:        -:12252:/*EOF*/
        -:        -:12253:/*EOF*/
        -:        -:12254:/*EOF*/
        -:        -:12255:/*EOF*/
        -:        -:12256:/*EOF*/
        -:        -:12257:/*EOF*/
        -:        -:12258:/*EOF*/
        -:        -:12259:/*EOF*/
        -:        -:12260:/*EOF*/
        -:        -:12261:/*EOF*/
        -:        -:12262:/*EOF*/
        -:        -:12263:/*EOF*/
        -:        -:12264:/*EOF*/
        -:        -:12265:/*EOF*/
        -:        -:12266:/*EOF*/
        -:        -:12267:/*EOF*/
        -:        -:12268:/*EOF*/
        -:        -:12269:/*EOF*/
        -:        -:12270:/*EOF*/
        -:        -:12271:/*EOF*/
        -:        -:12272:/*EOF*/
        -:        -:12273:/*EOF*/
        -:        -:12274:/*EOF*/
        -:        -:12275:/*EOF*/
        -:        -:12276:/*EOF*/
        -:        -:12277:/*EOF*/
        -:        -:12278:/*EOF*/
        -:        -:12279:/*EOF*/
        -:        -:12280:/*EOF*/
        -:        -:12281:/*EOF*/
        -:        -:12282:/*EOF*/
        -:        -:12283:/*EOF*/
        -:        -:12284:/*EOF*/
        -:        -:12285:/*EOF*/
        -:        -:12286:/*EOF*/
        -:        -:12287:/*EOF*/
        -:        -:12288:/*EOF*/
        -:        -:12289:/*EOF*/
        -:        -:12290:/*EOF*/
        -:        -:12291:/*EOF*/
        -:        -:12292:/*EOF*/
        -:        -:12293:/*EOF*/
        -:        -:12294:/*EOF*/
        -:        -:12295:/*EOF*/
        -:        -:12296:/*EOF*/
        -:        -:12297:/*EOF*/
        -:        -:12298:/*EOF*/
        -:        -:12299:/*EOF*/
        -:        -:12300:/*EOF*/
        -:        -:12301:/*EOF*/
        -:        -:12302:/*EOF*/
        -:        -:12303:/*EOF*/
        -:        -:12304:/*EOF*/
        -:        -:12305:/*EOF*/
        -:        -:12306:/*EOF*/
        -:        -:12307:/*EOF*/
        -:        -:12308:/*EOF*/
        -:        -:12309:/*EOF*/
        -:        -:12310:/*EOF*/
        -:        -:12311:/*EOF*/
        -:        -:12312:/*EOF*/
        -:        -:12313:/*EOF*/
        -:        -:12314:/*EOF*/
        -:        -:12315:/*EOF*/
        -:        -:12316:/*EOF*/
        -:        -:12317:/*EOF*/
        -:        -:12318:/*EOF*/
        -:        -:12319:/*EOF*/
        -:        -:12320:/*EOF*/
        -:        -:12321:/*EOF*/
        -:        -:12322:/*EOF*/
        -:        -:12323:/*EOF*/
        -:        -:12324:/*EOF*/
        -:        -:12325:/*EOF*/
        -:        -:12326:/*EOF*/
        -:        -:12327:/*EOF*/
        -:        -:12328:/*EOF*/
        -:        -:12329:/*EOF*/
        -:        -:12330:/*EOF*/
        -:        -:12331:/*EOF*/
        -:        -:12332:/*EOF*/
        -:        -:12333:/*EOF*/
        -:        -:12334:/*EOF*/
        -:        -:12335:/*EOF*/
        -:        -:12336:/*EOF*/
        -:        -:12337:/*EOF*/
        -:        -:12338:/*EOF*/
        -:        -:12339:/*EOF*/
        -:        -:12340:/*EOF*/
        -:        -:12341:/*EOF*/
        -:        -:12342:/*EOF*/
        -:        -:12343:/*EOF*/
        -:        -:12344:/*EOF*/
        -:        -:12345:/*EOF*/
        -:        -:12346:/*EOF*/
        -:        -:12347:/*EOF*/
        -:        -:12348:/*EOF*/
        -:        -:12349:/*EOF*/
        -:        -:12350:/*EOF*/
        -:        -:12351:/*EOF*/
        -:        -:12352:/*EOF*/
        -:        -:12353:/*EOF*/
        -:        -:12354:/*EOF*/
        -:        -:12355:/*EOF*/
        -:        -:12356:/*EOF*/
        -:        -:12357:/*EOF*/
        -:        -:12358:/*EOF*/
        -:        -:12359:/*EOF*/
        -:        -:12360:/*EOF*/
        -:        -:12361:/*EOF*/
        -:        -:12362:/*EOF*/
        -:        -:12363:/*EOF*/
        -:        -:12364:/*EOF*/
        -:        -:12365:/*EOF*/
        -:        -:12366:/*EOF*/
        -:        -:12367:/*EOF*/
        -:        -:12368:/*EOF*/
        -:        -:12369:/*EOF*/
        -:        -:12370:/*EOF*/
        -:        -:12371:/*EOF*/
        -:        -:12372:/*EOF*/
        -:        -:12373:/*EOF*/
        -:        -:12374:/*EOF*/
        -:        -:12375:/*EOF*/
        -:        -:12376:/*EOF*/
        -:        -:12377:/*EOF*/
        -:        -:12378:/*EOF*/
        -:        -:12379:/*EOF*/
        -:        -:12380:/*EOF*/
        -:        -:12381:/*EOF*/
        -:        -:12382:/*EOF*/
        -:        -:12383:/*EOF*/
        -:        -:12384:/*EOF*/
        -:        -:12385:/*EOF*/
        -:        -:12386:/*EOF*/
        -:        -:12387:/*EOF*/
        -:        -:12388:/*EOF*/
        -:        -:12389:/*EOF*/
        -:        -:12390:/*EOF*/
        -:        -:12391:/*EOF*/
        -:        -:12392:/*EOF*/
        -:        -:12393:/*EOF*/
        -:        -:12394:/*EOF*/
        -:        -:12395:/*EOF*/
        -:        -:12396:/*EOF*/
        -:        -:12397:/*EOF*/
        -:        -:12398:/*EOF*/
        -:        -:12399:/*EOF*/
        -:        -:12400:/*EOF*/
        -:        -:12401:/*EOF*/
        -:        -:12402:/*EOF*/
        -:        -:12403:/*EOF*/
        -:        -:12404:/*EOF*/
        -:        -:12405:/*EOF*/
        -:        -:12406:/*EOF*/
        -:        -:12407:/*EOF*/
        -:        -:12408:/*EOF*/
        -:        -:12409:/*EOF*/
        -:        -:12410:/*EOF*/
        -:        -:12411:/*EOF*/
        -:        -:12412:/*EOF*/
        -:        -:12413:/*EOF*/
        -:        -:12414:/*EOF*/
        -:        -:12415:/*EOF*/
        -:        -:12416:/*EOF*/
        -:        -:12417:/*EOF*/
        -:        -:12418:/*EOF*/
        -:        -:12419:/*EOF*/
        -:        -:12420:/*EOF*/
        -:        -:12421:/*EOF*/
        -:        -:12422:/*EOF*/
        -:        -:12423:/*EOF*/
        -:        -:12424:/*EOF*/
        -:        -:12425:/*EOF*/
        -:        -:12426:/*EOF*/
        -:        -:12427:/*EOF*/
        -:        -:12428:/*EOF*/
        -:        -:12429:/*EOF*/
        -:        -:12430:/*EOF*/
        -:        -:12431:/*EOF*/
        -:        -:12432:/*EOF*/
        -:        -:12433:/*EOF*/
        -:        -:12434:/*EOF*/
        -:        -:12435:/*EOF*/
        -:        -:12436:/*EOF*/
        -:        -:12437:/*EOF*/
        -:        -:12438:/*EOF*/
        -:        -:12439:/*EOF*/
        -:        -:12440:/*EOF*/
        -:        -:12441:/*EOF*/
        -:        -:12442:/*EOF*/
        -:        -:12443:/*EOF*/
        -:        -:12444:/*EOF*/
        -:        -:12445:/*EOF*/
        -:        -:12446:/*EOF*/
        -:        -:12447:/*EOF*/
        -:        -:12448:/*EOF*/
        -:        -:12449:/*EOF*/
        -:        -:12450:/*EOF*/
        -:        -:12451:/*EOF*/
        -:        -:12452:/*EOF*/
        -:        -:12453:/*EOF*/
        -:        -:12454:/*EOF*/
        -:        -:12455:/*EOF*/
        -:        -:12456:/*EOF*/
        -:        -:12457:/*EOF*/
        -:        -:12458:/*EOF*/
        -:        -:12459:/*EOF*/
        -:        -:12460:/*EOF*/
        -:        -:12461:/*EOF*/
        -:        -:12462:/*EOF*/
        -:        -:12463:/*EOF*/
        -:        -:12464:/*EOF*/
        -:        -:12465:/*EOF*/
        -:        -:12466:/*EOF*/
        -:        -:12467:/*EOF*/
        -:        -:12468:/*EOF*/
        -:        -:12469:/*EOF*/
        -:        -:12470:/*EOF*/
        -:        -:12471:/*EOF*/
        -:        -:12472:/*EOF*/
        -:        -:12473:/*EOF*/
        -:        -:12474:/*EOF*/
        -:        -:12475:/*EOF*/
        -:        -:12476:/*EOF*/
        -:        -:12477:/*EOF*/
        -:        -:12478:/*EOF*/
        -:        -:12479:/*EOF*/
        -:        -:12480:/*EOF*/
        -:        -:12481:/*EOF*/
        -:        -:12482:/*EOF*/
        -:        -:12483:/*EOF*/
        -:        -:12484:/*EOF*/
        -:        -:12485:/*EOF*/
        -:        -:12486:/*EOF*/
        -:        -:12487:/*EOF*/
        -:        -:12488:/*EOF*/
        -:        -:12489:/*EOF*/
        -:        -:12490:/*EOF*/
        -:        -:12491:/*EOF*/
        -:        -:12492:/*EOF*/
        -:        -:12493:/*EOF*/
        -:        -:12494:/*EOF*/
        -:        -:12495:/*EOF*/
        -:        -:12496:/*EOF*/
        -:        -:12497:/*EOF*/
        -:        -:12498:/*EOF*/
        -:        -:12499:/*EOF*/
        -:        -:12500:/*EOF*/
        -:        -:12501:/*EOF*/
        -:        -:12502:/*EOF*/
        -:        -:12503:/*EOF*/
        -:        -:12504:/*EOF*/
        -:        -:12505:/*EOF*/
        -:        -:12506:/*EOF*/
        -:        -:12507:/*EOF*/
        -:        -:12508:/*EOF*/
        -:        -:12509:/*EOF*/
        -:        -:12510:/*EOF*/
        -:        -:12511:/*EOF*/
        -:        -:12512:/*EOF*/
        -:        -:12513:/*EOF*/
        -:        -:12514:/*EOF*/
        -:        -:12515:/*EOF*/
        -:        -:12516:/*EOF*/
        -:        -:12517:/*EOF*/
        -:        -:12518:/*EOF*/
        -:        -:12519:/*EOF*/
        -:        -:12520:/*EOF*/
        -:        -:12521:/*EOF*/
        -:        -:12522:/*EOF*/
        -:        -:12523:/*EOF*/
        -:        -:12524:/*EOF*/
        -:        -:12525:/*EOF*/
        -:        -:12526:/*EOF*/
        -:        -:12527:/*EOF*/
        -:        -:12528:/*EOF*/
        -:        -:12529:/*EOF*/
        -:        -:12530:/*EOF*/
        -:        -:12531:/*EOF*/
        -:        -:12532:/*EOF*/
        -:        -:12533:/*EOF*/
        -:        -:12534:/*EOF*/
        -:        -:12535:/*EOF*/
        -:        -:12536:/*EOF*/
        -:        -:12537:/*EOF*/
        -:        -:12538:/*EOF*/
        -:        -:12539:/*EOF*/
        -:        -:12540:/*EOF*/
        -:        -:12541:/*EOF*/
        -:        -:12542:/*EOF*/
        -:        -:12543:/*EOF*/
        -:        -:12544:/*EOF*/
        -:        -:12545:/*EOF*/
        -:        -:12546:/*EOF*/
        -:        -:12547:/*EOF*/
        -:        -:12548:/*EOF*/
        -:        -:12549:/*EOF*/
        -:        -:12550:/*EOF*/
        -:        -:12551:/*EOF*/
        -:        -:12552:/*EOF*/
        -:        -:12553:/*EOF*/
        -:        -:12554:/*EOF*/
        -:        -:12555:/*EOF*/
        -:        -:12556:/*EOF*/
        -:        -:12557:/*EOF*/
        -:        -:12558:/*EOF*/
        -:        -:12559:/*EOF*/
        -:        -:12560:/*EOF*/
        -:        -:12561:/*EOF*/
        -:        -:12562:/*EOF*/
        -:        -:12563:/*EOF*/
        -:        -:12564:/*EOF*/
        -:        -:12565:/*EOF*/
        -:        -:12566:/*EOF*/
        -:        -:12567:/*EOF*/
        -:        -:12568:/*EOF*/
        -:        -:12569:/*EOF*/
        -:        -:12570:/*EOF*/
        -:        -:12571:/*EOF*/
        -:        -:12572:/*EOF*/
        -:        -:12573:/*EOF*/
        -:        -:12574:/*EOF*/
        -:        -:12575:/*EOF*/
        -:        -:12576:/*EOF*/
        -:        -:12577:/*EOF*/
        -:        -:12578:/*EOF*/
        -:        -:12579:/*EOF*/
        -:        -:12580:/*EOF*/
        -:        -:12581:/*EOF*/
        -:        -:12582:/*EOF*/
        -:        -:12583:/*EOF*/
        -:        -:12584:/*EOF*/
        -:        -:12585:/*EOF*/
        -:        -:12586:/*EOF*/
        -:        -:12587:/*EOF*/
        -:        -:12588:/*EOF*/
        -:        -:12589:/*EOF*/
        -:        -:12590:/*EOF*/
        -:        -:12591:/*EOF*/
        -:        -:12592:/*EOF*/
        -:        -:12593:/*EOF*/
        -:        -:12594:/*EOF*/
        -:        -:12595:/*EOF*/
        -:        -:12596:/*EOF*/
        -:        -:12597:/*EOF*/
        -:        -:12598:/*EOF*/
        -:        -:12599:/*EOF*/
        -:        -:12600:/*EOF*/
        -:        -:12601:/*EOF*/
        -:        -:12602:/*EOF*/
        -:        -:12603:/*EOF*/
        -:        -:12604:/*EOF*/
        -:        -:12605:/*EOF*/
        -:        -:12606:/*EOF*/
        -:        -:12607:/*EOF*/
        -:        -:12608:/*EOF*/
        -:        -:12609:/*EOF*/
        -:        -:12610:/*EOF*/
        -:        -:12611:/*EOF*/
        -:        -:12612:/*EOF*/
        -:        -:12613:/*EOF*/
        -:        -:12614:/*EOF*/
        -:        -:12615:/*EOF*/
        -:        -:12616:/*EOF*/
        -:        -:12617:/*EOF*/
        -:        -:12618:/*EOF*/
        -:        -:12619:/*EOF*/
        -:        -:12620:/*EOF*/
        -:        -:12621:/*EOF*/
        -:        -:12622:/*EOF*/
        -:        -:12623:/*EOF*/
        -:        -:12624:/*EOF*/
        -:        -:12625:/*EOF*/
        -:        -:12626:/*EOF*/
        -:        -:12627:/*EOF*/
        -:        -:12628:/*EOF*/
        -:        -:12629:/*EOF*/
        -:        -:12630:/*EOF*/
        -:        -:12631:/*EOF*/
        -:        -:12632:/*EOF*/
        -:        -:12633:/*EOF*/
        -:        -:12634:/*EOF*/
        -:        -:12635:/*EOF*/
        -:        -:12636:/*EOF*/
        -:        -:12637:/*EOF*/
        -:        -:12638:/*EOF*/
        -:        -:12639:/*EOF*/
        -:        -:12640:/*EOF*/
        -:        -:12641:/*EOF*/
        -:        -:12642:/*EOF*/
        -:        -:12643:/*EOF*/
        -:        -:12644:/*EOF*/
        -:        -:12645:/*EOF*/
        -:        -:12646:/*EOF*/
        -:        -:12647:/*EOF*/
        -:        -:12648:/*EOF*/
        -:        -:12649:/*EOF*/
        -:        -:12650:/*EOF*/
        -:        -:12651:/*EOF*/
        -:        -:12652:/*EOF*/
        -:        -:12653:/*EOF*/
        -:        -:12654:/*EOF*/
        -:        -:12655:/*EOF*/
        -:        -:12656:/*EOF*/
        -:        -:12657:/*EOF*/
        -:        -:12658:/*EOF*/
        -:        -:12659:/*EOF*/
        -:        -:12660:/*EOF*/
        -:        -:12661:/*EOF*/
        -:        -:12662:/*EOF*/
        -:        -:12663:/*EOF*/
        -:        -:12664:/*EOF*/
        -:        -:12665:/*EOF*/
        -:        -:12666:/*EOF*/
        -:        -:12667:/*EOF*/
        -:        -:12668:/*EOF*/
        -:        -:12669:/*EOF*/
        -:        -:12670:/*EOF*/
        -:        -:12671:/*EOF*/
        -:        -:12672:/*EOF*/
        -:        -:12673:/*EOF*/
        -:        -:12674:/*EOF*/
        -:        -:12675:/*EOF*/
        -:        -:12676:/*EOF*/
        -:        -:12677:/*EOF*/
        -:        -:12678:/*EOF*/
        -:        -:12679:/*EOF*/
        -:        -:12680:/*EOF*/
        -:        -:12681:/*EOF*/
        -:        -:12682:/*EOF*/
        -:        -:12683:/*EOF*/
        -:        -:12684:/*EOF*/
        -:        -:12685:/*EOF*/
        -:        -:12686:/*EOF*/
        -:        -:12687:/*EOF*/
        -:        -:12688:/*EOF*/
        -:        -:12689:/*EOF*/
        -:        -:12690:/*EOF*/
        -:        -:12691:/*EOF*/
        -:        -:12692:/*EOF*/
        -:        -:12693:/*EOF*/
        -:        -:12694:/*EOF*/
        -:        -:12695:/*EOF*/
        -:        -:12696:/*EOF*/
        -:        -:12697:/*EOF*/
        -:        -:12698:/*EOF*/
        -:        -:12699:/*EOF*/
        -:        -:12700:/*EOF*/
        -:        -:12701:/*EOF*/
        -:        -:12702:/*EOF*/
        -:        -:12703:/*EOF*/
        -:        -:12704:/*EOF*/
        -:        -:12705:/*EOF*/
        -:        -:12706:/*EOF*/
        -:        -:12707:/*EOF*/
        -:        -:12708:/*EOF*/
        -:        -:12709:/*EOF*/
        -:        -:12710:/*EOF*/
        -:        -:12711:/*EOF*/
        -:        -:12712:/*EOF*/
        -:        -:12713:/*EOF*/
        -:        -:12714:/*EOF*/
        -:        -:12715:/*EOF*/
        -:        -:12716:/*EOF*/
        -:        -:12717:/*EOF*/
        -:        -:12718:/*EOF*/
        -:        -:12719:/*EOF*/
        -:        -:12720:/*EOF*/
        -:        -:12721:/*EOF*/
        -:        -:12722:/*EOF*/
        -:        -:12723:/*EOF*/
        -:        -:12724:/*EOF*/
        -:        -:12725:/*EOF*/
        -:        -:12726:/*EOF*/
        -:        -:12727:/*EOF*/
        -:        -:12728:/*EOF*/
        -:        -:12729:/*EOF*/
        -:        -:12730:/*EOF*/
        -:        -:12731:/*EOF*/
        -:        -:12732:/*EOF*/
        -:        -:12733:/*EOF*/
        -:        -:12734:/*EOF*/
        -:        -:12735:/*EOF*/
        -:        -:12736:/*EOF*/
        -:        -:12737:/*EOF*/
        -:        -:12738:/*EOF*/
        -:        -:12739:/*EOF*/
        -:        -:12740:/*EOF*/
        -:        -:12741:/*EOF*/
        -:        -:12742:/*EOF*/
        -:        -:12743:/*EOF*/
        -:        -:12744:/*EOF*/
        -:        -:12745:/*EOF*/
        -:        -:12746:/*EOF*/
        -:        -:12747:/*EOF*/
        -:        -:12748:/*EOF*/
        -:        -:12749:/*EOF*/
        -:        -:12750:/*EOF*/
        -:        -:12751:/*EOF*/
        -:        -:12752:/*EOF*/
        -:        -:12753:/*EOF*/
        -:        -:12754:/*EOF*/
        -:        -:12755:/*EOF*/
        -:        -:12756:/*EOF*/
        -:        -:12757:/*EOF*/
        -:        -:12758:/*EOF*/
        -:        -:12759:/*EOF*/
        -:        -:12760:/*EOF*/
        -:        -:12761:/*EOF*/
        -:        -:12762:/*EOF*/
        -:        -:12763:/*EOF*/
        -:        -:12764:/*EOF*/
        -:        -:12765:/*EOF*/
        -:        -:12766:/*EOF*/
        -:        -:12767:/*EOF*/
        -:        -:12768:/*EOF*/
        -:        -:12769:/*EOF*/
        -:        -:12770:/*EOF*/
        -:        -:12771:/*EOF*/
        -:        -:12772:/*EOF*/
        -:        -:12773:/*EOF*/
        -:        -:12774:/*EOF*/
        -:        -:12775:/*EOF*/
        -:        -:12776:/*EOF*/
        -:        -:12777:/*EOF*/
        -:        -:12778:/*EOF*/
        -:        -:12779:/*EOF*/
        -:        -:12780:/*EOF*/
        -:        -:12781:/*EOF*/
        -:        -:12782:/*EOF*/
        -:        -:12783:/*EOF*/
        -:        -:12784:/*EOF*/
        -:        -:12785:/*EOF*/
        -:        -:12786:/*EOF*/
        -:        -:12787:/*EOF*/
        -:        -:12788:/*EOF*/
        -:        -:12789:/*EOF*/
        -:        -:12790:/*EOF*/
        -:        -:12791:/*EOF*/
        -:        -:12792:/*EOF*/
        -:        -:12793:/*EOF*/
        -:        -:12794:/*EOF*/
        -:        -:12795:/*EOF*/
        -:        -:12796:/*EOF*/
        -:        -:12797:/*EOF*/
        -:        -:12798:/*EOF*/
        -:        -:12799:/*EOF*/
        -:        -:12800:/*EOF*/
        -:        -:12801:/*EOF*/
        -:        -:12802:/*EOF*/
        -:        -:12803:/*EOF*/
        -:        -:12804:/*EOF*/
        -:        -:12805:/*EOF*/
        -:        -:12806:/*EOF*/
        -:        -:12807:/*EOF*/
        -:        -:12808:/*EOF*/
        -:        -:12809:/*EOF*/
        -:        -:12810:/*EOF*/
        -:        -:12811:/*EOF*/
        -:        -:12812:/*EOF*/
        -:        -:12813:/*EOF*/
        -:        -:12814:/*EOF*/
        -:        -:12815:/*EOF*/
        -:        -:12816:/*EOF*/
        -:        -:12817:/*EOF*/
        -:        -:12818:/*EOF*/
        -:        -:12819:/*EOF*/
        -:        -:12820:/*EOF*/
        -:        -:12821:/*EOF*/
        -:        -:12822:/*EOF*/
        -:        -:12823:/*EOF*/
        -:        -:12824:/*EOF*/
        -:        -:12825:/*EOF*/
        -:        -:12826:/*EOF*/
        -:        -:12827:/*EOF*/
        -:        -:12828:/*EOF*/
        -:        -:12829:/*EOF*/
        -:        -:12830:/*EOF*/
        -:        -:12831:/*EOF*/
        -:        -:12832:/*EOF*/
        -:        -:12833:/*EOF*/
        -:        -:12834:/*EOF*/
        -:        -:12835:/*EOF*/
        -:        -:12836:/*EOF*/
        -:        -:12837:/*EOF*/
        -:        -:12838:/*EOF*/
        -:        -:12839:/*EOF*/
        -:        -:12840:/*EOF*/
        -:        -:12841:/*EOF*/
        -:        -:12842:/*EOF*/
        -:        -:12843:/*EOF*/
        -:        -:12844:/*EOF*/
        -:        -:12845:/*EOF*/
        -:        -:12846:/*EOF*/
        -:        -:12847:/*EOF*/
        -:        -:12848:/*EOF*/
        -:        -:12849:/*EOF*/
        -:        -:12850:/*EOF*/
        -:        -:12851:/*EOF*/
        -:        -:12852:/*EOF*/
        -:        -:12853:/*EOF*/
        -:        -:12854:/*EOF*/
        -:        -:12855:/*EOF*/
        -:        -:12856:/*EOF*/
        -:        -:12857:/*EOF*/
        -:        -:12858:/*EOF*/
        -:        -:12859:/*EOF*/
        -:        -:12860:/*EOF*/
        -:        -:12861:/*EOF*/
        -:        -:12862:/*EOF*/
        -:        -:12863:/*EOF*/
        -:        -:12864:/*EOF*/
        -:        -:12865:/*EOF*/
        -:        -:12866:/*EOF*/
        -:        -:12867:/*EOF*/
        -:        -:12868:/*EOF*/
        -:        -:12869:/*EOF*/
        -:        -:12870:/*EOF*/
        -:        -:12871:/*EOF*/
        -:        -:12872:/*EOF*/
        -:        -:12873:/*EOF*/
        -:        -:12874:/*EOF*/
        -:        -:12875:/*EOF*/
        -:        -:12876:/*EOF*/
        -:        -:12877:/*EOF*/
        -:        -:12878:/*EOF*/
        -:        -:12879:/*EOF*/
        -:        -:12880:/*EOF*/
        -:        -:12881:/*EOF*/
        -:        -:12882:/*EOF*/
        -:        -:12883:/*EOF*/
        -:        -:12884:/*EOF*/
        -:        -:12885:/*EOF*/
        -:        -:12886:/*EOF*/
        -:        -:12887:/*EOF*/
        -:        -:12888:/*EOF*/
        -:        -:12889:/*EOF*/
        -:        -:12890:/*EOF*/
        -:        -:12891:/*EOF*/
        -:        -:12892:/*EOF*/
        -:        -:12893:/*EOF*/
        -:        -:12894:/*EOF*/
        -:        -:12895:/*EOF*/
        -:        -:12896:/*EOF*/
        -:        -:12897:/*EOF*/
        -:        -:12898:/*EOF*/
        -:        -:12899:/*EOF*/
        -:        -:12900:/*EOF*/
        -:        -:12901:/*EOF*/
        -:        -:12902:/*EOF*/
        -:        -:12903:/*EOF*/
        -:        -:12904:/*EOF*/
        -:        -:12905:/*EOF*/
        -:        -:12906:/*EOF*/
        -:        -:12907:/*EOF*/
        -:        -:12908:/*EOF*/
        -:        -:12909:/*EOF*/
        -:        -:12910:/*EOF*/
        -:        -:12911:/*EOF*/
        -:        -:12912:/*EOF*/
        -:        -:12913:/*EOF*/
        -:        -:12914:/*EOF*/
        -:        -:12915:/*EOF*/
        -:        -:12916:/*EOF*/
        -:        -:12917:/*EOF*/
        -:        -:12918:/*EOF*/
        -:        -:12919:/*EOF*/
        -:        -:12920:/*EOF*/
        -:        -:12921:/*EOF*/
        -:        -:12922:/*EOF*/
        -:        -:12923:/*EOF*/
        -:        -:12924:/*EOF*/
        -:        -:12925:/*EOF*/
        -:        -:12926:/*EOF*/
        -:        -:12927:/*EOF*/
        -:        -:12928:/*EOF*/
        -:        -:12929:/*EOF*/
        -:        -:12930:/*EOF*/
        -:        -:12931:/*EOF*/
        -:        -:12932:/*EOF*/
        -:        -:12933:/*EOF*/
        -:        -:12934:/*EOF*/
        -:        -:12935:/*EOF*/
        -:        -:12936:/*EOF*/
        -:        -:12937:/*EOF*/
        -:        -:12938:/*EOF*/
        -:        -:12939:/*EOF*/
        -:        -:12940:/*EOF*/
        -:        -:12941:/*EOF*/
        -:        -:12942:/*EOF*/
        -:        -:12943:/*EOF*/
        -:        -:12944:/*EOF*/
        -:        -:12945:/*EOF*/
        -:        -:12946:/*EOF*/
        -:        -:12947:/*EOF*/
        -:        -:12948:/*EOF*/
        -:        -:12949:/*EOF*/
        -:        -:12950:/*EOF*/
        -:        -:12951:/*EOF*/
        -:        -:12952:/*EOF*/
        -:        -:12953:/*EOF*/
        -:        -:12954:/*EOF*/
        -:        -:12955:/*EOF*/
        -:        -:12956:/*EOF*/
        -:        -:12957:/*EOF*/
        -:        -:12958:/*EOF*/
        -:        -:12959:/*EOF*/
        -:        -:12960:/*EOF*/
        -:        -:12961:/*EOF*/
        -:        -:12962:/*EOF*/
        -:        -:12963:/*EOF*/
        -:        -:12964:/*EOF*/
        -:        -:12965:/*EOF*/
        -:        -:12966:/*EOF*/
        -:        -:12967:/*EOF*/
        -:        -:12968:/*EOF*/
        -:        -:12969:/*EOF*/
        -:        -:12970:/*EOF*/
        -:        -:12971:/*EOF*/
        -:        -:12972:/*EOF*/
        -:        -:12973:/*EOF*/
        -:        -:12974:/*EOF*/
        -:        -:12975:/*EOF*/
        -:        -:12976:/*EOF*/
        -:        -:12977:/*EOF*/
        -:        -:12978:/*EOF*/
        -:        -:12979:/*EOF*/
        -:        -:12980:/*EOF*/
        -:        -:12981:/*EOF*/
        -:        -:12982:/*EOF*/
        -:        -:12983:/*EOF*/
        -:        -:12984:/*EOF*/
        -:        -:12985:/*EOF*/
        -:        -:12986:/*EOF*/
        -:        -:12987:/*EOF*/
        -:        -:12988:/*EOF*/
        -:        -:12989:/*EOF*/
        -:        -:12990:/*EOF*/
        -:        -:12991:/*EOF*/
        -:        -:12992:/*EOF*/
        -:        -:12993:/*EOF*/
        -:        -:12994:/*EOF*/
        -:        -:12995:/*EOF*/
        -:        -:12996:/*EOF*/
        -:        -:12997:/*EOF*/
        -:        -:12998:/*EOF*/
        -:        -:12999:/*EOF*/
        -:        -:13000:/*EOF*/
        -:        -:13001:/*EOF*/
        -:        -:13002:/*EOF*/
        -:        -:13003:/*EOF*/
        -:        -:13004:/*EOF*/
        -:        -:13005:/*EOF*/
        -:        -:13006:/*EOF*/
        -:        -:13007:/*EOF*/
        -:        -:13008:/*EOF*/
        -:        -:13009:/*EOF*/
        -:        -:13010:/*EOF*/
        -:        -:13011:/*EOF*/
        -:        -:13012:/*EOF*/
        -:        -:13013:/*EOF*/
        -:        -:13014:/*EOF*/
        -:        -:13015:/*EOF*/
        -:        -:13016:/*EOF*/
        -:        -:13017:/*EOF*/
        -:        -:13018:/*EOF*/
        -:        -:13019:/*EOF*/
        -:        -:13020:/*EOF*/
        -:        -:13021:/*EOF*/
        -:        -:13022:/*EOF*/
        -:        -:13023:/*EOF*/
        -:        -:13024:/*EOF*/
        -:        -:13025:/*EOF*/
        -:        -:13026:/*EOF*/
        -:        -:13027:/*EOF*/
        -:        -:13028:/*EOF*/
        -:        -:13029:/*EOF*/
        -:        -:13030:/*EOF*/
        -:        -:13031:/*EOF*/
        -:        -:13032:/*EOF*/
        -:        -:13033:/*EOF*/
        -:        -:13034:/*EOF*/
        -:        -:13035:/*EOF*/
        -:        -:13036:/*EOF*/
        -:        -:13037:/*EOF*/
        -:        -:13038:/*EOF*/
        -:        -:13039:/*EOF*/
        -:        -:13040:/*EOF*/
        -:        -:13041:/*EOF*/
        -:        -:13042:/*EOF*/
        -:        -:13043:/*EOF*/
        -:        -:13044:/*EOF*/
        -:        -:13045:/*EOF*/
        -:        -:13046:/*EOF*/
        -:        -:13047:/*EOF*/
        -:        -:13048:/*EOF*/
        -:        -:13049:/*EOF*/
        -:        -:13050:/*EOF*/
        -:        -:13051:/*EOF*/
        -:        -:13052:/*EOF*/
        -:        -:13053:/*EOF*/
        -:        -:13054:/*EOF*/
        -:        -:13055:/*EOF*/
        -:        -:13056:/*EOF*/
        -:        -:13057:/*EOF*/
        -:        -:13058:/*EOF*/
        -:        -:13059:/*EOF*/
        -:        -:13060:/*EOF*/
        -:        -:13061:/*EOF*/
        -:        -:13062:/*EOF*/
        -:        -:13063:/*EOF*/
        -:        -:13064:/*EOF*/
        -:        -:13065:/*EOF*/
        -:        -:13066:/*EOF*/
        -:        -:13067:/*EOF*/
        -:        -:13068:/*EOF*/
        -:        -:13069:/*EOF*/
        -:        -:13070:/*EOF*/
        -:        -:13071:/*EOF*/
        -:        -:13072:/*EOF*/
        -:        -:13073:/*EOF*/
        -:        -:13074:/*EOF*/
        -:        -:13075:/*EOF*/
        -:        -:13076:/*EOF*/
        -:        -:13077:/*EOF*/
        -:        -:13078:/*EOF*/
        -:        -:13079:/*EOF*/
        -:        -:13080:/*EOF*/
        -:        -:13081:/*EOF*/
        -:        -:13082:/*EOF*/
        -:        -:13083:/*EOF*/
        -:        -:13084:/*EOF*/
        -:        -:13085:/*EOF*/
        -:        -:13086:/*EOF*/
        -:        -:13087:/*EOF*/
        -:        -:13088:/*EOF*/
        -:        -:13089:/*EOF*/
        -:        -:13090:/*EOF*/
        -:        -:13091:/*EOF*/
        -:        -:13092:/*EOF*/
        -:        -:13093:/*EOF*/
        -:        -:13094:/*EOF*/
        -:        -:13095:/*EOF*/
        -:        -:13096:/*EOF*/
        -:        -:13097:/*EOF*/
        -:        -:13098:/*EOF*/
        -:        -:13099:/*EOF*/
        -:        -:13100:/*EOF*/
        -:        -:13101:/*EOF*/
        -:        -:13102:/*EOF*/
        -:        -:13103:/*EOF*/
        -:        -:13104:/*EOF*/
        -:        -:13105:/*EOF*/
        -:        -:13106:/*EOF*/
        -:        -:13107:/*EOF*/
        -:        -:13108:/*EOF*/
        -:        -:13109:/*EOF*/
        -:        -:13110:/*EOF*/
        -:        -:13111:/*EOF*/
        -:        -:13112:/*EOF*/
        -:        -:13113:/*EOF*/
        -:        -:13114:/*EOF*/
        -:        -:13115:/*EOF*/
        -:        -:13116:/*EOF*/
        -:        -:13117:/*EOF*/
        -:        -:13118:/*EOF*/
        -:        -:13119:/*EOF*/
        -:        -:13120:/*EOF*/
        -:        -:13121:/*EOF*/
        -:        -:13122:/*EOF*/
        -:        -:13123:/*EOF*/
        -:        -:13124:/*EOF*/
        -:        -:13125:/*EOF*/
        -:        -:13126:/*EOF*/
        -:        -:13127:/*EOF*/
        -:        -:13128:/*EOF*/
        -:        -:13129:/*EOF*/
        -:        -:13130:/*EOF*/
        -:        -:13131:/*EOF*/
        -:        -:13132:/*EOF*/
        -:        -:13133:/*EOF*/
        -:        -:13134:/*EOF*/
        -:        -:13135:/*EOF*/
        -:        -:13136:/*EOF*/
        -:        -:13137:/*EOF*/
        -:        -:13138:/*EOF*/
        -:        -:13139:/*EOF*/
        -:        -:13140:/*EOF*/
        -:        -:13141:/*EOF*/
        -:        -:13142:/*EOF*/
        -:        -:13143:/*EOF*/
        -:        -:13144:/*EOF*/
        -:        -:13145:/*EOF*/
        -:        -:13146:/*EOF*/
        -:        -:13147:/*EOF*/
        -:        -:13148:/*EOF*/
        -:        -:13149:/*EOF*/
        -:        -:13150:/*EOF*/
        -:        -:13151:/*EOF*/
        -:        -:13152:/*EOF*/
        -:        -:13153:/*EOF*/
        -:        -:13154:/*EOF*/
        -:        -:13155:/*EOF*/
        -:        -:13156:/*EOF*/
        -:        -:13157:/*EOF*/
        -:        -:13158:/*EOF*/
        -:        -:13159:/*EOF*/
        -:        -:13160:/*EOF*/
        -:        -:13161:/*EOF*/
        -:        -:13162:/*EOF*/
        -:        -:13163:/*EOF*/
        -:        -:13164:/*EOF*/
        -:        -:13165:/*EOF*/
        -:        -:13166:/*EOF*/
        -:        -:13167:/*EOF*/
        -:        -:13168:/*EOF*/
        -:        -:13169:/*EOF*/
        -:        -:13170:/*EOF*/
        -:        -:13171:/*EOF*/
        -:        -:13172:/*EOF*/
        -:        -:13173:/*EOF*/
        -:        -:13174:/*EOF*/
        -:        -:13175:/*EOF*/
        -:        -:13176:/*EOF*/
        -:        -:13177:/*EOF*/
        -:        -:13178:/*EOF*/
        -:        -:13179:/*EOF*/
        -:        -:13180:/*EOF*/
        -:        -:13181:/*EOF*/
        -:        -:13182:/*EOF*/
        -:        -:13183:/*EOF*/
        -:        -:13184:/*EOF*/
        -:        -:13185:/*EOF*/
        -:        -:13186:/*EOF*/
        -:        -:13187:/*EOF*/
        -:        -:13188:/*EOF*/
        -:        -:13189:/*EOF*/
        -:        -:13190:/*EOF*/
        -:        -:13191:/*EOF*/
        -:        -:13192:/*EOF*/
        -:        -:13193:/*EOF*/
        -:        -:13194:/*EOF*/
        -:        -:13195:/*EOF*/
        -:        -:13196:/*EOF*/
        -:        -:13197:/*EOF*/
        -:        -:13198:/*EOF*/
        -:        -:13199:/*EOF*/
        -:        -:13200:/*EOF*/
        -:        -:13201:/*EOF*/
        -:        -:13202:/*EOF*/
        -:        -:13203:/*EOF*/
        -:        -:13204:/*EOF*/
        -:        -:13205:/*EOF*/
        -:        -:13206:/*EOF*/
        -:        -:13207:/*EOF*/
        -:        -:13208:/*EOF*/
        -:        -:13209:/*EOF*/
        -:        -:13210:/*EOF*/
        -:        -:13211:/*EOF*/
        -:        -:13212:/*EOF*/
        -:        -:13213:/*EOF*/
        -:        -:13214:/*EOF*/
        -:        -:13215:/*EOF*/
        -:        -:13216:/*EOF*/
        -:        -:13217:/*EOF*/
        -:        -:13218:/*EOF*/
        -:        -:13219:/*EOF*/
        -:        -:13220:/*EOF*/
        -:        -:13221:/*EOF*/
        -:        -:13222:/*EOF*/
        -:        -:13223:/*EOF*/
        -:        -:13224:/*EOF*/
        -:        -:13225:/*EOF*/
        -:        -:13226:/*EOF*/
        -:        -:13227:/*EOF*/
        -:        -:13228:/*EOF*/
        -:        -:13229:/*EOF*/
        -:        -:13230:/*EOF*/
        -:        -:13231:/*EOF*/
        -:        -:13232:/*EOF*/
        -:        -:13233:/*EOF*/
        -:        -:13234:/*EOF*/
        -:        -:13235:/*EOF*/
        -:        -:13236:/*EOF*/
        -:        -:13237:/*EOF*/
        -:        -:13238:/*EOF*/
        -:        -:13239:/*EOF*/
        -:        -:13240:/*EOF*/
        -:        -:13241:/*EOF*/
        -:        -:13242:/*EOF*/
        -:        -:13243:/*EOF*/
        -:        -:13244:/*EOF*/
        -:        -:13245:/*EOF*/
        -:        -:13246:/*EOF*/
        -:        -:13247:/*EOF*/
        -:        -:13248:/*EOF*/
        -:        -:13249:/*EOF*/
        -:        -:13250:/*EOF*/
        -:        -:13251:/*EOF*/
        -:        -:13252:/*EOF*/
        -:        -:13253:/*EOF*/
        -:        -:13254:/*EOF*/
        -:        -:13255:/*EOF*/
        -:        -:13256:/*EOF*/
        -:        -:13257:/*EOF*/
        -:        -:13258:/*EOF*/
        -:        -:13259:/*EOF*/
        -:        -:13260:/*EOF*/
        -:        -:13261:/*EOF*/
        -:        -:13262:/*EOF*/
        -:        -:13263:/*EOF*/
        -:        -:13264:/*EOF*/
        -:        -:13265:/*EOF*/
        -:        -:13266:/*EOF*/
        -:        -:13267:/*EOF*/
        -:        -:13268:/*EOF*/
        -:        -:13269:/*EOF*/
        -:        -:13270:/*EOF*/
        -:        -:13271:/*EOF*/
        -:        -:13272:/*EOF*/
        -:        -:13273:/*EOF*/
        -:        -:13274:/*EOF*/
        -:        -:13275:/*EOF*/
        -:        -:13276:/*EOF*/
        -:        -:13277:/*EOF*/
        -:        -:13278:/*EOF*/
        -:        -:13279:/*EOF*/
        -:        -:13280:/*EOF*/
        -:        -:13281:/*EOF*/
        -:        -:13282:/*EOF*/
        -:        -:13283:/*EOF*/
        -:        -:13284:/*EOF*/
        -:        -:13285:/*EOF*/
        -:        -:13286:/*EOF*/
        -:        -:13287:/*EOF*/
        -:        -:13288:/*EOF*/
        -:        -:13289:/*EOF*/
        -:        -:13290:/*EOF*/
        -:        -:13291:/*EOF*/
        -:        -:13292:/*EOF*/
        -:        -:13293:/*EOF*/
        -:        -:13294:/*EOF*/
        -:        -:13295:/*EOF*/
        -:        -:13296:/*EOF*/
        -:        -:13297:/*EOF*/
        -:        -:13298:/*EOF*/
        -:        -:13299:/*EOF*/
        -:        -:13300:/*EOF*/
        -:        -:13301:/*EOF*/
        -:        -:13302:/*EOF*/
        -:        -:13303:/*EOF*/
        -:        -:13304:/*EOF*/
        -:        -:13305:/*EOF*/
        -:        -:13306:/*EOF*/
        -:        -:13307:/*EOF*/
        -:        -:13308:/*EOF*/
        -:        -:13309:/*EOF*/
        -:        -:13310:/*EOF*/
        -:        -:13311:/*EOF*/
        -:        -:13312:/*EOF*/
        -:        -:13313:/*EOF*/
        -:        -:13314:/*EOF*/
        -:        -:13315:/*EOF*/
        -:        -:13316:/*EOF*/
        -:        -:13317:/*EOF*/
        -:        -:13318:/*EOF*/
        -:        -:13319:/*EOF*/
        -:        -:13320:/*EOF*/
        -:        -:13321:/*EOF*/
        -:        -:13322:/*EOF*/
        -:        -:13323:/*EOF*/
        -:        -:13324:/*EOF*/
        -:        -:13325:/*EOF*/
        -:        -:13326:/*EOF*/
        -:        -:13327:/*EOF*/
        -:        -:13328:/*EOF*/
        -:        -:13329:/*EOF*/
        -:        -:13330:/*EOF*/
        -:        -:13331:/*EOF*/
        -:        -:13332:/*EOF*/
        -:        -:13333:/*EOF*/
        -:        -:13334:/*EOF*/
        -:        -:13335:/*EOF*/
        -:        -:13336:/*EOF*/
        -:        -:13337:/*EOF*/
        -:        -:13338:/*EOF*/
        -:        -:13339:/*EOF*/
        -:        -:13340:/*EOF*/
        -:        -:13341:/*EOF*/
        -:        -:13342:/*EOF*/
        -:        -:13343:/*EOF*/
        -:        -:13344:/*EOF*/
        -:        -:13345:/*EOF*/
        -:        -:13346:/*EOF*/
        -:        -:13347:/*EOF*/
        -:        -:13348:/*EOF*/
        -:        -:13349:/*EOF*/
        -:        -:13350:/*EOF*/
        -:        -:13351:/*EOF*/
        -:        -:13352:/*EOF*/
        -:        -:13353:/*EOF*/
        -:        -:13354:/*EOF*/
        -:        -:13355:/*EOF*/
        -:        -:13356:/*EOF*/
        -:        -:13357:/*EOF*/
        -:        -:13358:/*EOF*/
        -:        -:13359:/*EOF*/
        -:        -:13360:/*EOF*/
        -:        -:13361:/*EOF*/
        -:        -:13362:/*EOF*/
        -:        -:13363:/*EOF*/
        -:        -:13364:/*EOF*/
        -:        -:13365:/*EOF*/
        -:        -:13366:/*EOF*/
        -:        -:13367:/*EOF*/
        -:        -:13368:/*EOF*/
        -:        -:13369:/*EOF*/
        -:        -:13370:/*EOF*/
        -:        -:13371:/*EOF*/
        -:        -:13372:/*EOF*/
        -:        -:13373:/*EOF*/
        -:        -:13374:/*EOF*/
        -:        -:13375:/*EOF*/
        -:        -:13376:/*EOF*/
        -:        -:13377:/*EOF*/
        -:        -:13378:/*EOF*/
        -:        -:13379:/*EOF*/
        -:        -:13380:/*EOF*/
        -:        -:13381:/*EOF*/
        -:        -:13382:/*EOF*/
        -:        -:13383:/*EOF*/
        -:        -:13384:/*EOF*/
        -:        -:13385:/*EOF*/
        -:        -:13386:/*EOF*/
        -:        -:13387:/*EOF*/
        -:        -:13388:/*EOF*/
        -:        -:13389:/*EOF*/
        -:        -:13390:/*EOF*/
        -:        -:13391:/*EOF*/
        -:        -:13392:/*EOF*/
        -:        -:13393:/*EOF*/
        -:        -:13394:/*EOF*/
        -:        -:13395:/*EOF*/
        -:        -:13396:/*EOF*/
        -:        -:13397:/*EOF*/
        -:        -:13398:/*EOF*/
        -:        -:13399:/*EOF*/
        -:        -:13400:/*EOF*/
        -:        -:13401:/*EOF*/
        -:        -:13402:/*EOF*/
        -:        -:13403:/*EOF*/
        -:        -:13404:/*EOF*/
        -:        -:13405:/*EOF*/
        -:        -:13406:/*EOF*/
        -:        -:13407:/*EOF*/
        -:        -:13408:/*EOF*/
        -:        -:13409:/*EOF*/
        -:        -:13410:/*EOF*/
        -:        -:13411:/*EOF*/
        -:        -:13412:/*EOF*/
        -:        -:13413:/*EOF*/
        -:        -:13414:/*EOF*/
        -:        -:13415:/*EOF*/
        -:        -:13416:/*EOF*/
        -:        -:13417:/*EOF*/
        -:        -:13418:/*EOF*/
        -:        -:13419:/*EOF*/
        -:        -:13420:/*EOF*/
        -:        -:13421:/*EOF*/
        -:        -:13422:/*EOF*/
        -:        -:13423:/*EOF*/
        -:        -:13424:/*EOF*/
        -:        -:13425:/*EOF*/
        -:        -:13426:/*EOF*/
        -:        -:13427:/*EOF*/
        -:        -:13428:/*EOF*/
        -:        -:13429:/*EOF*/
        -:        -:13430:/*EOF*/
        -:        -:13431:/*EOF*/
        -:        -:13432:/*EOF*/
        -:        -:13433:/*EOF*/
        -:        -:13434:/*EOF*/
        -:        -:13435:/*EOF*/
        -:        -:13436:/*EOF*/
        -:        -:13437:/*EOF*/
        -:        -:13438:/*EOF*/
        -:        -:13439:/*EOF*/
        -:        -:13440:/*EOF*/
        -:        -:13441:/*EOF*/
        -:        -:13442:/*EOF*/
        -:        -:13443:/*EOF*/
        -:        -:13444:/*EOF*/
        -:        -:13445:/*EOF*/
        -:        -:13446:/*EOF*/
        -:        -:13447:/*EOF*/
        -:        -:13448:/*EOF*/
        -:        -:13449:/*EOF*/
        -:        -:13450:/*EOF*/
        -:        -:13451:/*EOF*/
        -:        -:13452:/*EOF*/
        -:        -:13453:/*EOF*/
        -:        -:13454:/*EOF*/
        -:        -:13455:/*EOF*/
        -:        -:13456:/*EOF*/
        -:        -:13457:/*EOF*/
        -:        -:13458:/*EOF*/
        -:        -:13459:/*EOF*/
        -:        -:13460:/*EOF*/
        -:        -:13461:/*EOF*/
        -:        -:13462:/*EOF*/
        -:        -:13463:/*EOF*/
        -:        -:13464:/*EOF*/
        -:        -:13465:/*EOF*/
        -:        -:13466:/*EOF*/
        -:        -:13467:/*EOF*/
        -:        -:13468:/*EOF*/
        -:        -:13469:/*EOF*/
        -:        -:13470:/*EOF*/
        -:        -:13471:/*EOF*/
        -:        -:13472:/*EOF*/
        -:        -:13473:/*EOF*/
        -:        -:13474:/*EOF*/
        -:        -:13475:/*EOF*/
        -:        -:13476:/*EOF*/
        -:        -:13477:/*EOF*/
        -:        -:13478:/*EOF*/
        -:        -:13479:/*EOF*/
        -:        -:13480:/*EOF*/
        -:        -:13481:/*EOF*/
        -:        -:13482:/*EOF*/
        -:        -:13483:/*EOF*/
        -:        -:13484:/*EOF*/
        -:        -:13485:/*EOF*/
        -:        -:13486:/*EOF*/
        -:        -:13487:/*EOF*/
        -:        -:13488:/*EOF*/
        -:        -:13489:/*EOF*/
        -:        -:13490:/*EOF*/
        -:        -:13491:/*EOF*/
        -:        -:13492:/*EOF*/
        -:        -:13493:/*EOF*/
        -:        -:13494:/*EOF*/
        -:        -:13495:/*EOF*/
        -:        -:13496:/*EOF*/
        -:        -:13497:/*EOF*/
        -:        -:13498:/*EOF*/
        -:        -:13499:/*EOF*/
        -:        -:13500:/*EOF*/
        -:        -:13501:/*EOF*/
        -:        -:13502:/*EOF*/
        -:        -:13503:/*EOF*/
        -:        -:13504:/*EOF*/
        -:        -:13505:/*EOF*/
        -:        -:13506:/*EOF*/
        -:        -:13507:/*EOF*/
        -:        -:13508:/*EOF*/
        -:        -:13509:/*EOF*/
        -:        -:13510:/*EOF*/
        -:        -:13511:/*EOF*/
        -:        -:13512:/*EOF*/
        -:        -:13513:/*EOF*/
        -:        -:13514:/*EOF*/
        -:        -:13515:/*EOF*/
        -:        -:13516:/*EOF*/
        -:        -:13517:/*EOF*/
        -:        -:13518:/*EOF*/
        -:        -:13519:/*EOF*/
        -:        -:13520:/*EOF*/
        -:        -:13521:/*EOF*/
        -:        -:13522:/*EOF*/
        -:        -:13523:/*EOF*/
        -:        -:13524:/*EOF*/
        -:        -:13525:/*EOF*/
        -:        -:13526:/*EOF*/
        -:        -:13527:/*EOF*/
        -:        -:13528:/*EOF*/
        -:        -:13529:/*EOF*/
        -:        -:13530:/*EOF*/
        -:        -:13531:/*EOF*/
        -:        -:13532:/*EOF*/
        -:        -:13533:/*EOF*/
        -:        -:13534:/*EOF*/
        -:        -:13535:/*EOF*/
        -:        -:13536:/*EOF*/
        -:        -:13537:/*EOF*/
        -:        -:13538:/*EOF*/
        -:        -:13539:/*EOF*/
        -:        -:13540:/*EOF*/
        -:        -:13541:/*EOF*/
        -:        -:13542:/*EOF*/
        -:        -:13543:/*EOF*/
        -:        -:13544:/*EOF*/
        -:        -:13545:/*EOF*/
        -:        -:13546:/*EOF*/
        -:        -:13547:/*EOF*/
        -:        -:13548:/*EOF*/
        -:        -:13549:/*EOF*/
        -:        -:13550:/*EOF*/
        -:        -:13551:/*EOF*/
        -:        -:13552:/*EOF*/
        -:        -:13553:/*EOF*/
        -:        -:13554:/*EOF*/
        -:        -:13555:/*EOF*/
        -:        -:13556:/*EOF*/
        -:        -:13557:/*EOF*/
        -:        -:13558:/*EOF*/
        -:        -:13559:/*EOF*/
        -:        -:13560:/*EOF*/
        -:        -:13561:/*EOF*/
        -:        -:13562:/*EOF*/
        -:        -:13563:/*EOF*/
        -:        -:13564:/*EOF*/
        -:        -:13565:/*EOF*/
        -:        -:13566:/*EOF*/
        -:        -:13567:/*EOF*/
        -:        -:13568:/*EOF*/
        -:        -:13569:/*EOF*/
        -:        -:13570:/*EOF*/
        -:        -:13571:/*EOF*/
        -:        -:13572:/*EOF*/
        -:        -:13573:/*EOF*/
        -:        -:13574:/*EOF*/
        -:        -:13575:/*EOF*/
        -:        -:13576:/*EOF*/
        -:        -:13577:/*EOF*/
        -:        -:13578:/*EOF*/
        -:        -:13579:/*EOF*/
        -:        -:13580:/*EOF*/
        -:        -:13581:/*EOF*/
        -:        -:13582:/*EOF*/
        -:        -:13583:/*EOF*/
        -:        -:13584:/*EOF*/
        -:        -:13585:/*EOF*/
        -:        -:13586:/*EOF*/
        -:        -:13587:/*EOF*/
        -:        -:13588:/*EOF*/
        -:        -:13589:/*EOF*/
        -:        -:13590:/*EOF*/
        -:        -:13591:/*EOF*/
        -:        -:13592:/*EOF*/
        -:        -:13593:/*EOF*/
        -:        -:13594:/*EOF*/
        -:        -:13595:/*EOF*/
        -:        -:13596:/*EOF*/
        -:        -:13597:/*EOF*/
        -:        -:13598:/*EOF*/
        -:        -:13599:/*EOF*/
        -:        -:13600:/*EOF*/
        -:        -:13601:/*EOF*/
        -:        -:13602:/*EOF*/
        -:        -:13603:/*EOF*/
        -:        -:13604:/*EOF*/
        -:        -:13605:/*EOF*/
        -:        -:13606:/*EOF*/
        -:        -:13607:/*EOF*/
        -:        -:13608:/*EOF*/
        -:        -:13609:/*EOF*/
        -:        -:13610:/*EOF*/
        -:        -:13611:/*EOF*/
        -:        -:13612:/*EOF*/
        -:        -:13613:/*EOF*/
        -:        -:13614:/*EOF*/
        -:        -:13615:/*EOF*/
        -:        -:13616:/*EOF*/
        -:        -:13617:/*EOF*/
        -:        -:13618:/*EOF*/
        -:        -:13619:/*EOF*/
        -:        -:13620:/*EOF*/
        -:        -:13621:/*EOF*/
        -:        -:13622:/*EOF*/
        -:        -:13623:/*EOF*/
        -:        -:13624:/*EOF*/
        -:        -:13625:/*EOF*/
        -:        -:13626:/*EOF*/
        -:        -:13627:/*EOF*/
        -:        -:13628:/*EOF*/
        -:        -:13629:/*EOF*/
        -:        -:13630:/*EOF*/
        -:        -:13631:/*EOF*/
        -:        -:13632:/*EOF*/
        -:        -:13633:/*EOF*/
        -:        -:13634:/*EOF*/
        -:        -:13635:/*EOF*/
        -:        -:13636:/*EOF*/
        -:        -:13637:/*EOF*/
        -:        -:13638:/*EOF*/
        -:        -:13639:/*EOF*/
        -:        -:13640:/*EOF*/
        -:        -:13641:/*EOF*/
        -:        -:13642:/*EOF*/
        -:        -:13643:/*EOF*/
        -:        -:13644:/*EOF*/
        -:        -:13645:/*EOF*/
        -:        -:13646:/*EOF*/
        -:        -:13647:/*EOF*/
        -:        -:13648:/*EOF*/
        -:        -:13649:/*EOF*/
        -:        -:13650:/*EOF*/
        -:        -:13651:/*EOF*/
        -:        -:13652:/*EOF*/
        -:        -:13653:/*EOF*/
        -:        -:13654:/*EOF*/
        -:        -:13655:/*EOF*/
        -:        -:13656:/*EOF*/
        -:        -:13657:/*EOF*/
        -:        -:13658:/*EOF*/
        -:        -:13659:/*EOF*/
        -:        -:13660:/*EOF*/
        -:        -:13661:/*EOF*/
        -:        -:13662:/*EOF*/
        -:        -:13663:/*EOF*/
        -:        -:13664:/*EOF*/
        -:        -:13665:/*EOF*/
        -:        -:13666:/*EOF*/
        -:        -:13667:/*EOF*/
        -:        -:13668:/*EOF*/
        -:        -:13669:/*EOF*/
        -:        -:13670:/*EOF*/
        -:        -:13671:/*EOF*/
        -:        -:13672:/*EOF*/
        -:        -:13673:/*EOF*/
        -:        -:13674:/*EOF*/
        -:        -:13675:/*EOF*/
        -:        -:13676:/*EOF*/
        -:        -:13677:/*EOF*/
        -:        -:13678:/*EOF*/
        -:        -:13679:/*EOF*/
        -:        -:13680:/*EOF*/
        -:        -:13681:/*EOF*/
        -:        -:13682:/*EOF*/
        -:        -:13683:/*EOF*/
        -:        -:13684:/*EOF*/
        -:        -:13685:/*EOF*/
        -:        -:13686:/*EOF*/
        -:        -:13687:/*EOF*/
        -:        -:13688:/*EOF*/
        -:        -:13689:/*EOF*/
        -:        -:13690:/*EOF*/
        -:        -:13691:/*EOF*/
        -:        -:13692:/*EOF*/
        -:        -:13693:/*EOF*/
        -:        -:13694:/*EOF*/
        -:        -:13695:/*EOF*/
        -:        -:13696:/*EOF*/
        -:        -:13697:/*EOF*/
        -:        -:13698:/*EOF*/
        -:        -:13699:/*EOF*/
        -:        -:13700:/*EOF*/
        -:        -:13701:/*EOF*/
        -:        -:13702:/*EOF*/
        -:        -:13703:/*EOF*/
        -:        -:13704:/*EOF*/
        -:        -:13705:/*EOF*/
        -:        -:13706:/*EOF*/
        -:        -:13707:/*EOF*/
        -:        -:13708:/*EOF*/
        -:        -:13709:/*EOF*/
        -:        -:13710:/*EOF*/
        -:        -:13711:/*EOF*/
        -:        -:13712:/*EOF*/
        -:        -:13713:/*EOF*/
        -:        -:13714:/*EOF*/
        -:        -:13715:/*EOF*/
        -:        -:13716:/*EOF*/
        -:        -:13717:/*EOF*/
        -:        -:13718:/*EOF*/
        -:        -:13719:/*EOF*/
        -:        -:13720:/*EOF*/
        -:        -:13721:/*EOF*/
        -:        -:13722:/*EOF*/
        -:        -:13723:/*EOF*/
        -:        -:13724:/*EOF*/
        -:        -:13725:/*EOF*/
        -:        -:13726:/*EOF*/
        -:        -:13727:/*EOF*/
        -:        -:13728:/*EOF*/
        -:        -:13729:/*EOF*/
        -:        -:13730:/*EOF*/
        -:        -:13731:/*EOF*/
        -:        -:13732:/*EOF*/
        -:        -:13733:/*EOF*/
        -:        -:13734:/*EOF*/
        -:        -:13735:/*EOF*/
        -:        -:13736:/*EOF*/
        -:        -:13737:/*EOF*/
        -:        -:13738:/*EOF*/
        -:        -:13739:/*EOF*/
        -:        -:13740:/*EOF*/
        -:        -:13741:/*EOF*/
        -:        -:13742:/*EOF*/
        -:        -:13743:/*EOF*/
        -:        -:13744:/*EOF*/
        -:        -:13745:/*EOF*/
        -:        -:13746:/*EOF*/
        -:        -:13747:/*EOF*/
        -:        -:13748:/*EOF*/
        -:        -:13749:/*EOF*/
        -:        -:13750:/*EOF*/
        -:        -:13751:/*EOF*/
        -:        -:13752:/*EOF*/
        -:        -:13753:/*EOF*/
        -:        -:13754:/*EOF*/
        -:        -:13755:/*EOF*/
        -:        -:13756:/*EOF*/
        -:        -:13757:/*EOF*/
        -:        -:13758:/*EOF*/
        -:        -:13759:/*EOF*/
        -:        -:13760:/*EOF*/
        -:        -:13761:/*EOF*/
        -:        -:13762:/*EOF*/
        -:        -:13763:/*EOF*/
        -:        -:13764:/*EOF*/
        -:        -:13765:/*EOF*/
        -:        -:13766:/*EOF*/
        -:        -:13767:/*EOF*/
        -:        -:13768:/*EOF*/
        -:        -:13769:/*EOF*/
        -:        -:13770:/*EOF*/
        -:        -:13771:/*EOF*/
        -:        -:13772:/*EOF*/
        -:        -:13773:/*EOF*/
        -:        -:13774:/*EOF*/
        -:        -:13775:/*EOF*/
        -:        -:13776:/*EOF*/
        -:        -:13777:/*EOF*/
        -:        -:13778:/*EOF*/
        -:        -:13779:/*EOF*/
        -:        -:13780:/*EOF*/
        -:        -:13781:/*EOF*/
        -:        -:13782:/*EOF*/
        -:        -:13783:/*EOF*/
        -:        -:13784:/*EOF*/
        -:        -:13785:/*EOF*/
        -:        -:13786:/*EOF*/
        -:        -:13787:/*EOF*/
        -:        -:13788:/*EOF*/
        -:        -:13789:/*EOF*/
        -:        -:13790:/*EOF*/
        -:        -:13791:/*EOF*/
        -:        -:13792:/*EOF*/
        -:        -:13793:/*EOF*/
        -:        -:13794:/*EOF*/
        -:        -:13795:/*EOF*/
        -:        -:13796:/*EOF*/
        -:        -:13797:/*EOF*/
        -:        -:13798:/*EOF*/
        -:        -:13799:/*EOF*/
        -:        -:13800:/*EOF*/
        -:        -:13801:/*EOF*/
        -:        -:13802:/*EOF*/
        -:        -:13803:/*EOF*/
        -:        -:13804:/*EOF*/
        -:        -:13805:/*EOF*/
        -:        -:13806:/*EOF*/
        -:        -:13807:/*EOF*/
        -:        -:13808:/*EOF*/
        -:        -:13809:/*EOF*/
        -:        -:13810:/*EOF*/
        -:        -:13811:/*EOF*/
        -:        -:13812:/*EOF*/
        -:        -:13813:/*EOF*/
        -:        -:13814:/*EOF*/
        -:        -:13815:/*EOF*/
        -:        -:13816:/*EOF*/
        -:        -:13817:/*EOF*/
        -:        -:13818:/*EOF*/
        -:        -:13819:/*EOF*/
        -:        -:13820:/*EOF*/
        -:        -:13821:/*EOF*/
        -:        -:13822:/*EOF*/
        -:        -:13823:/*EOF*/
        -:        -:13824:/*EOF*/
        -:        -:13825:/*EOF*/
        -:        -:13826:/*EOF*/
        -:        -:13827:/*EOF*/
        -:        -:13828:/*EOF*/
        -:        -:13829:/*EOF*/
        -:        -:13830:/*EOF*/
        -:        -:13831:/*EOF*/
        -:        -:13832:/*EOF*/
        -:        -:13833:/*EOF*/
        -:        -:13834:/*EOF*/
        -:        -:13835:/*EOF*/
        -:        -:13836:/*EOF*/
        -:        -:13837:/*EOF*/
        -:        -:13838:/*EOF*/
        -:        -:13839:/*EOF*/
        -:        -:13840:/*EOF*/
        -:        -:13841:/*EOF*/
        -:        -:13842:/*EOF*/
        -:        -:13843:/*EOF*/
        -:        -:13844:/*EOF*/
        -:        -:13845:/*EOF*/
        -:        -:13846:/*EOF*/
        -:        -:13847:/*EOF*/
        -:        -:13848:/*EOF*/
        -:        -:13849:/*EOF*/
        -:        -:13850:/*EOF*/
        -:        -:13851:/*EOF*/
        -:        -:13852:/*EOF*/
        -:        -:13853:/*EOF*/
        -:        -:13854:/*EOF*/
        -:        -:13855:/*EOF*/
        -:        -:13856:/*EOF*/
        -:        -:13857:/*EOF*/
        -:        -:13858:/*EOF*/
        -:        -:13859:/*EOF*/
        -:        -:13860:/*EOF*/
        -:        -:13861:/*EOF*/
        -:        -:13862:/*EOF*/
        -:        -:13863:/*EOF*/
        -:        -:13864:/*EOF*/
        -:        -:13865:/*EOF*/
        -:        -:13866:/*EOF*/
        -:        -:13867:/*EOF*/
        -:        -:13868:/*EOF*/
        -:        -:13869:/*EOF*/
        -:        -:13870:/*EOF*/
        -:        -:13871:/*EOF*/
        -:        -:13872:/*EOF*/
        -:        -:13873:/*EOF*/
        -:        -:13874:/*EOF*/
        -:        -:13875:/*EOF*/
        -:        -:13876:/*EOF*/
        -:        -:13877:/*EOF*/
        -:        -:13878:/*EOF*/
        -:        -:13879:/*EOF*/
        -:        -:13880:/*EOF*/
        -:        -:13881:/*EOF*/
        -:        -:13882:/*EOF*/
        -:        -:13883:/*EOF*/
        -:        -:13884:/*EOF*/
        -:        -:13885:/*EOF*/
        -:        -:13886:/*EOF*/
        -:        -:13887:/*EOF*/
        -:        -:13888:/*EOF*/
        -:        -:13889:/*EOF*/
        -:        -:13890:/*EOF*/
        -:        -:13891:/*EOF*/
        -:        -:13892:/*EOF*/
        -:        -:13893:/*EOF*/
        -:        -:13894:/*EOF*/
        -:        -:13895:/*EOF*/
        -:        -:13896:/*EOF*/
        -:        -:13897:/*EOF*/
        -:        -:13898:/*EOF*/
        -:        -:13899:/*EOF*/
        -:        -:13900:/*EOF*/
        -:        -:13901:/*EOF*/
        -:        -:13902:/*EOF*/
        -:        -:13903:/*EOF*/
        -:        -:13904:/*EOF*/
        -:        -:13905:/*EOF*/
        -:        -:13906:/*EOF*/
        -:        -:13907:/*EOF*/
        -:        -:13908:/*EOF*/
        -:        -:13909:/*EOF*/
        -:        -:13910:/*EOF*/
        -:        -:13911:/*EOF*/
        -:        -:13912:/*EOF*/
        -:        -:13913:/*EOF*/
        -:        -:13914:/*EOF*/
        -:        -:13915:/*EOF*/
        -:        -:13916:/*EOF*/
        -:        -:13917:/*EOF*/
        -:        -:13918:/*EOF*/
        -:        -:13919:/*EOF*/
        -:        -:13920:/*EOF*/
        -:        -:13921:/*EOF*/
        -:        -:13922:/*EOF*/
        -:        -:13923:/*EOF*/
        -:        -:13924:/*EOF*/
        -:        -:13925:/*EOF*/
        -:        -:13926:/*EOF*/
        -:        -:13927:/*EOF*/
        -:        -:13928:/*EOF*/
        -:        -:13929:/*EOF*/
        -:        -:13930:/*EOF*/
        -:        -:13931:/*EOF*/
        -:        -:13932:/*EOF*/
        -:        -:13933:/*EOF*/
        -:        -:13934:/*EOF*/
        -:        -:13935:/*EOF*/
        -:        -:13936:/*EOF*/
        -:        -:13937:/*EOF*/
        -:        -:13938:/*EOF*/
        -:        -:13939:/*EOF*/
        -:        -:13940:/*EOF*/
        -:        -:13941:/*EOF*/
        -:        -:13942:/*EOF*/
        -:        -:13943:/*EOF*/
        -:        -:13944:/*EOF*/
        -:        -:13945:/*EOF*/
        -:        -:13946:/*EOF*/
        -:        -:13947:/*EOF*/
        -:        -:13948:/*EOF*/
        -:        -:13949:/*EOF*/
        -:        -:13950:/*EOF*/
        -:        -:13951:/*EOF*/
        -:        -:13952:/*EOF*/
        -:        -:13953:/*EOF*/
        -:        -:13954:/*EOF*/
        -:        -:13955:/*EOF*/
        -:        -:13956:/*EOF*/
        -:        -:13957:/*EOF*/
        -:        -:13958:/*EOF*/
        -:        -:13959:/*EOF*/
        -:        -:13960:/*EOF*/
        -:        -:13961:/*EOF*/
        -:        -:13962:/*EOF*/
        -:        -:13963:/*EOF*/
        -:        -:13964:/*EOF*/
        -:        -:13965:/*EOF*/
        -:        -:13966:/*EOF*/
        -:        -:13967:/*EOF*/
        -:        -:13968:/*EOF*/
        -:        -:13969:/*EOF*/
        -:        -:13970:/*EOF*/
        -:        -:13971:/*EOF*/
        -:        -:13972:/*EOF*/
        -:        -:13973:/*EOF*/
        -:        -:13974:/*EOF*/
        -:        -:13975:/*EOF*/
        -:        -:13976:/*EOF*/
        -:        -:13977:/*EOF*/
        -:        -:13978:/*EOF*/
        -:        -:13979:/*EOF*/
        -:        -:13980:/*EOF*/
        -:        -:13981:/*EOF*/
        -:        -:13982:/*EOF*/
        -:        -:13983:/*EOF*/
        -:        -:13984:/*EOF*/
        -:        -:13985:/*EOF*/
        -:        -:13986:/*EOF*/
        -:        -:13987:/*EOF*/
        -:        -:13988:/*EOF*/
        -:        -:13989:/*EOF*/
        -:        -:13990:/*EOF*/
        -:        -:13991:/*EOF*/
        -:        -:13992:/*EOF*/
        -:        -:13993:/*EOF*/
        -:        -:13994:/*EOF*/
        -:        -:13995:/*EOF*/
        -:        -:13996:/*EOF*/
        -:        -:13997:/*EOF*/
        -:        -:13998:/*EOF*/
        -:        -:13999:/*EOF*/
        -:        -:14000:/*EOF*/
        -:        -:14001:/*EOF*/
        -:        -:14002:/*EOF*/
        -:        -:14003:/*EOF*/
        -:        -:14004:/*EOF*/
        -:        -:14005:/*EOF*/
        -:        -:14006:/*EOF*/
        -:        -:14007:/*EOF*/
        -:        -:14008:/*EOF*/
        -:        -:14009:/*EOF*/
        -:        -:14010:/*EOF*/
        -:        -:14011:/*EOF*/
        -:        -:14012:/*EOF*/
        -:        -:14013:/*EOF*/
        -:        -:14014:/*EOF*/
        -:        -:14015:/*EOF*/
        -:        -:14016:/*EOF*/
        -:        -:14017:/*EOF*/
        -:        -:14018:/*EOF*/
        -:        -:14019:/*EOF*/
        -:        -:14020:/*EOF*/
        -:        -:14021:/*EOF*/
        -:        -:14022:/*EOF*/
        -:        -:14023:/*EOF*/
        -:        -:14024:/*EOF*/
        -:        -:14025:/*EOF*/
        -:        -:14026:/*EOF*/
        -:        -:14027:/*EOF*/
        -:        -:14028:/*EOF*/
        -:        -:14029:/*EOF*/
        -:        -:14030:/*EOF*/
        -:        -:14031:/*EOF*/
        -:        -:14032:/*EOF*/
        -:        -:14033:/*EOF*/
        -:        -:14034:/*EOF*/
        -:        -:14035:/*EOF*/
        -:        -:14036:/*EOF*/
        -:        -:14037:/*EOF*/
        -:        -:14038:/*EOF*/
        -:        -:14039:/*EOF*/
        -:        -:14040:/*EOF*/
        -:        -:14041:/*EOF*/
        -:        -:14042:/*EOF*/
        -:        -:14043:/*EOF*/
        -:        -:14044:/*EOF*/
        -:        -:14045:/*EOF*/
        -:        -:14046:/*EOF*/
        -:        -:14047:/*EOF*/
        -:        -:14048:/*EOF*/
        -:        -:14049:/*EOF*/
        -:        -:14050:/*EOF*/
        -:        -:14051:/*EOF*/
        -:        -:14052:/*EOF*/
        -:        -:14053:/*EOF*/
        -:        -:14054:/*EOF*/
        -:        -:14055:/*EOF*/
        -:        -:14056:/*EOF*/
        -:        -:14057:/*EOF*/
        -:        -:14058:/*EOF*/
        -:        -:14059:/*EOF*/
        -:        -:14060:/*EOF*/
        -:        -:14061:/*EOF*/
        -:        -:14062:/*EOF*/
        -:        -:14063:/*EOF*/
        -:        -:14064:/*EOF*/
        -:        -:14065:/*EOF*/
        -:        -:14066:/*EOF*/
        -:        -:14067:/*EOF*/
        -:        -:14068:/*EOF*/
        -:        -:14069:/*EOF*/
        -:        -:14070:/*EOF*/
        -:        -:14071:/*EOF*/
        -:        -:14072:/*EOF*/
        -:        -:14073:/*EOF*/
        -:        -:14074:/*EOF*/
        -:        -:14075:/*EOF*/
        -:        -:14076:/*EOF*/
        -:        -:14077:/*EOF*/
        -:        -:14078:/*EOF*/
        -:        -:14079:/*EOF*/
        -:        -:14080:/*EOF*/
        -:        -:14081:/*EOF*/
        -:        -:14082:/*EOF*/
        -:        -:14083:/*EOF*/
        -:        -:14084:/*EOF*/
        -:        -:14085:/*EOF*/
        -:        -:14086:/*EOF*/
        -:        -:14087:/*EOF*/
        -:        -:14088:/*EOF*/
        -:        -:14089:/*EOF*/
        -:        -:14090:/*EOF*/
        -:        -:14091:/*EOF*/
        -:        -:14092:/*EOF*/
        -:        -:14093:/*EOF*/
        -:        -:14094:/*EOF*/
        -:        -:14095:/*EOF*/
        -:        -:14096:/*EOF*/
        -:        -:14097:/*EOF*/
        -:        -:14098:/*EOF*/
        -:        -:14099:/*EOF*/
        -:        -:14100:/*EOF*/
        -:        -:14101:/*EOF*/
        -:        -:14102:/*EOF*/
        -:        -:14103:/*EOF*/
        -:        -:14104:/*EOF*/
        -:        -:14105:/*EOF*/
        -:        -:14106:/*EOF*/
        -:        -:14107:/*EOF*/
        -:        -:14108:/*EOF*/
        -:        -:14109:/*EOF*/
        -:        -:14110:/*EOF*/
        -:        -:14111:/*EOF*/
        -:        -:14112:/*EOF*/
        -:        -:14113:/*EOF*/
        -:        -:14114:/*EOF*/
        -:        -:14115:/*EOF*/
        -:        -:14116:/*EOF*/
        -:        -:14117:/*EOF*/
        -:        -:14118:/*EOF*/
        -:        -:14119:/*EOF*/
        -:        -:14120:/*EOF*/
        -:        -:14121:/*EOF*/
        -:        -:14122:/*EOF*/
        -:        -:14123:/*EOF*/
        -:        -:14124:/*EOF*/
        -:        -:14125:/*EOF*/
        -:        -:14126:/*EOF*/
        -:        -:14127:/*EOF*/
        -:        -:14128:/*EOF*/
        -:        -:14129:/*EOF*/
        -:        -:14130:/*EOF*/
        -:        -:14131:/*EOF*/
        -:        -:14132:/*EOF*/
        -:        -:14133:/*EOF*/
        -:        -:14134:/*EOF*/
        -:        -:14135:/*EOF*/
        -:        -:14136:/*EOF*/
        -:        -:14137:/*EOF*/
        -:        -:14138:/*EOF*/
        -:        -:14139:/*EOF*/
        -:        -:14140:/*EOF*/
        -:        -:14141:/*EOF*/
        -:        -:14142:/*EOF*/
        -:        -:14143:/*EOF*/
        -:        -:14144:/*EOF*/
        -:        -:14145:/*EOF*/
        -:        -:14146:/*EOF*/
        -:        -:14147:/*EOF*/
        -:        -:14148:/*EOF*/
        -:        -:14149:/*EOF*/
        -:        -:14150:/*EOF*/
        -:        -:14151:/*EOF*/
        -:        -:14152:/*EOF*/
        -:        -:14153:/*EOF*/
        -:        -:14154:/*EOF*/
        -:        -:14155:/*EOF*/
        -:        -:14156:/*EOF*/
        -:        -:14157:/*EOF*/
        -:        -:14158:/*EOF*/
        -:        -:14159:/*EOF*/
        -:        -:14160:/*EOF*/
        -:        -:14161:/*EOF*/
        -:        -:14162:/*EOF*/
        -:        -:14163:/*EOF*/
        -:        -:14164:/*EOF*/
        -:        -:14165:/*EOF*/
        -:        -:14166:/*EOF*/
        -:        -:14167:/*EOF*/
        -:        -:14168:/*EOF*/
        -:        -:14169:/*EOF*/
        -:        -:14170:/*EOF*/
        -:        -:14171:/*EOF*/
        -:        -:14172:/*EOF*/
        -:        -:14173:/*EOF*/
        -:        -:14174:/*EOF*/
        -:        -:14175:/*EOF*/
        -:        -:14176:/*EOF*/
        -:        -:14177:/*EOF*/
        -:        -:14178:/*EOF*/
        -:        -:14179:/*EOF*/
        -:        -:14180:/*EOF*/
        -:        -:14181:/*EOF*/
        -:        -:14182:/*EOF*/
        -:        -:14183:/*EOF*/
        -:        -:14184:/*EOF*/
        -:        -:14185:/*EOF*/
        -:        -:14186:/*EOF*/
        -:        -:14187:/*EOF*/
        -:        -:14188:/*EOF*/
        -:        -:14189:/*EOF*/
        -:        -:14190:/*EOF*/
        -:        -:14191:/*EOF*/
        -:        -:14192:/*EOF*/
        -:        -:14193:/*EOF*/
        -:        -:14194:/*EOF*/
        -:        -:14195:/*EOF*/
        -:        -:14196:/*EOF*/
        -:        -:14197:/*EOF*/
        -:        -:14198:/*EOF*/
        -:        -:14199:/*EOF*/
        -:        -:14200:/*EOF*/
        -:        -:14201:/*EOF*/
        -:        -:14202:/*EOF*/
        -:        -:14203:/*EOF*/
        -:        -:14204:/*EOF*/
        -:        -:14205:/*EOF*/
        -:        -:14206:/*EOF*/
        -:        -:14207:/*EOF*/
        -:        -:14208:/*EOF*/
        -:        -:14209:/*EOF*/
        -:        -:14210:/*EOF*/
        -:        -:14211:/*EOF*/
        -:        -:14212:/*EOF*/
        -:        -:14213:/*EOF*/
        -:        -:14214:/*EOF*/
        -:        -:14215:/*EOF*/
        -:        -:14216:/*EOF*/
        -:        -:14217:/*EOF*/
        -:        -:14218:/*EOF*/
        -:        -:14219:/*EOF*/
        -:        -:14220:/*EOF*/
        -:        -:14221:/*EOF*/
        -:        -:14222:/*EOF*/
        -:        -:14223:/*EOF*/
        -:        -:14224:/*EOF*/
        -:        -:14225:/*EOF*/
        -:        -:14226:/*EOF*/
        -:        -:14227:/*EOF*/
        -:        -:14228:/*EOF*/
        -:        -:14229:/*EOF*/
        -:        -:14230:/*EOF*/
        -:        -:14231:/*EOF*/
        -:        -:14232:/*EOF*/
        -:        -:14233:/*EOF*/
        -:        -:14234:/*EOF*/
        -:        -:14235:/*EOF*/
        -:        -:14236:/*EOF*/
        -:        -:14237:/*EOF*/
        -:        -:14238:/*EOF*/
        -:        -:14239:/*EOF*/
        -:        -:14240:/*EOF*/
        -:        -:14241:/*EOF*/
        -:        -:14242:/*EOF*/
        -:        -:14243:/*EOF*/
        -:        -:14244:/*EOF*/
        -:        -:14245:/*EOF*/
        -:        -:14246:/*EOF*/
        -:        -:14247:/*EOF*/
        -:        -:14248:/*EOF*/
        -:        -:14249:/*EOF*/
        -:        -:14250:/*EOF*/
        -:        -:14251:/*EOF*/
        -:        -:14252:/*EOF*/
        -:        -:14253:/*EOF*/
        -:        -:14254:/*EOF*/
        -:        -:14255:/*EOF*/
        -:        -:14256:/*EOF*/
        -:        -:14257:/*EOF*/
        -:        -:14258:/*EOF*/
        -:        -:14259:/*EOF*/
        -:        -:14260:/*EOF*/
        -:        -:14261:/*EOF*/
        -:        -:14262:/*EOF*/
        -:        -:14263:/*EOF*/
        -:        -:14264:/*EOF*/
        -:        -:14265:/*EOF*/
        -:        -:14266:/*EOF*/
        -:        -:14267:/*EOF*/
        -:        -:14268:/*EOF*/
        -:        -:14269:/*EOF*/
        -:        -:14270:/*EOF*/
        -:        -:14271:/*EOF*/
        -:        -:14272:/*EOF*/
        -:        -:14273:/*EOF*/
        -:        -:14274:/*EOF*/
        -:        -:14275:/*EOF*/
        -:        -:14276:/*EOF*/
        -:        -:14277:/*EOF*/
        -:        -:14278:/*EOF*/
        -:        -:14279:/*EOF*/
        -:        -:14280:/*EOF*/
        -:        -:14281:/*EOF*/
        -:        -:14282:/*EOF*/
        -:        -:14283:/*EOF*/
        -:        -:14284:/*EOF*/
        -:        -:14285:/*EOF*/
        -:        -:14286:/*EOF*/
        -:        -:14287:/*EOF*/
        -:        -:14288:/*EOF*/
        -:        -:14289:/*EOF*/
        -:        -:14290:/*EOF*/
        -:        -:14291:/*EOF*/
        -:        -:14292:/*EOF*/
        -:        -:14293:/*EOF*/
        -:        -:14294:/*EOF*/
        -:        -:14295:/*EOF*/
        -:        -:14296:/*EOF*/
        -:        -:14297:/*EOF*/
        -:        -:14298:/*EOF*/
        -:        -:14299:/*EOF*/
        -:        -:14300:/*EOF*/
        -:        -:14301:/*EOF*/
        -:        -:14302:/*EOF*/
        -:        -:14303:/*EOF*/
        -:        -:14304:/*EOF*/
        -:        -:14305:/*EOF*/
        -:        -:14306:/*EOF*/
        -:        -:14307:/*EOF*/
        -:        -:14308:/*EOF*/
        -:        -:14309:/*EOF*/
        -:        -:14310:/*EOF*/
        -:        -:14311:/*EOF*/
        -:        -:14312:/*EOF*/
        -:        -:14313:/*EOF*/
        -:        -:14314:/*EOF*/
        -:        -:14315:/*EOF*/
        -:        -:14316:/*EOF*/
        -:        -:14317:/*EOF*/
        -:        -:14318:/*EOF*/
        -:        -:14319:/*EOF*/
        -:        -:14320:/*EOF*/
        -:        -:14321:/*EOF*/
        -:        -:14322:/*EOF*/
        -:        -:14323:/*EOF*/
        -:        -:14324:/*EOF*/
        -:        -:14325:/*EOF*/
        -:        -:14326:/*EOF*/
        -:        -:14327:/*EOF*/
        -:        -:14328:/*EOF*/
        -:        -:14329:/*EOF*/
        -:        -:14330:/*EOF*/
        -:        -:14331:/*EOF*/
        -:        -:14332:/*EOF*/
        -:        -:14333:/*EOF*/
        -:        -:14334:/*EOF*/
        -:        -:14335:/*EOF*/
        -:        -:14336:/*EOF*/
        -:        -:14337:/*EOF*/
        -:        -:14338:/*EOF*/
        -:        -:14339:/*EOF*/
        -:        -:14340:/*EOF*/
        -:        -:14341:/*EOF*/
        -:        -:14342:/*EOF*/
        -:        -:14343:/*EOF*/
        -:        -:14344:/*EOF*/
        -:        -:14345:/*EOF*/
        -:        -:14346:/*EOF*/
        -:        -:14347:/*EOF*/
        -:        -:14348:/*EOF*/
        -:        -:14349:/*EOF*/
        -:        -:14350:/*EOF*/
        -:        -:14351:/*EOF*/
        -:        -:14352:/*EOF*/
        -:        -:14353:/*EOF*/
        -:        -:14354:/*EOF*/
        -:        -:14355:/*EOF*/
        -:        -:14356:/*EOF*/
        -:        -:14357:/*EOF*/
        -:        -:14358:/*EOF*/
        -:        -:14359:/*EOF*/
        -:        -:14360:/*EOF*/
        -:        -:14361:/*EOF*/
        -:        -:14362:/*EOF*/
        -:        -:14363:/*EOF*/
        -:        -:14364:/*EOF*/
        -:        -:14365:/*EOF*/
        -:        -:14366:/*EOF*/
        -:        -:14367:/*EOF*/
        -:        -:14368:/*EOF*/
        -:        -:14369:/*EOF*/
        -:        -:14370:/*EOF*/
        -:        -:14371:/*EOF*/
        -:        -:14372:/*EOF*/
        -:        -:14373:/*EOF*/
        -:        -:14374:/*EOF*/
        -:        -:14375:/*EOF*/
        -:        -:14376:/*EOF*/
        -:        -:14377:/*EOF*/
        -:        -:14378:/*EOF*/
        -:        -:14379:/*EOF*/
        -:        -:14380:/*EOF*/
        -:        -:14381:/*EOF*/
        -:        -:14382:/*EOF*/
        -:        -:14383:/*EOF*/
        -:        -:14384:/*EOF*/
        -:        -:14385:/*EOF*/
        -:        -:14386:/*EOF*/
        -:        -:14387:/*EOF*/
        -:        -:14388:/*EOF*/
        -:        -:14389:/*EOF*/
        -:        -:14390:/*EOF*/
        -:        -:14391:/*EOF*/
        -:        -:14392:/*EOF*/
        -:        -:14393:/*EOF*/
        -:        -:14394:/*EOF*/
        -:        -:14395:/*EOF*/
        -:        -:14396:/*EOF*/
        -:        -:14397:/*EOF*/
        -:        -:14398:/*EOF*/
        -:        -:14399:/*EOF*/
        -:        -:14400:/*EOF*/
        -:        -:14401:/*EOF*/
        -:        -:14402:/*EOF*/
        -:        -:14403:/*EOF*/
        -:        -:14404:/*EOF*/
        -:        -:14405:/*EOF*/
        -:        -:14406:/*EOF*/
        -:        -:14407:/*EOF*/
        -:        -:14408:/*EOF*/
        -:        -:14409:/*EOF*/
        -:        -:14410:/*EOF*/
        -:        -:14411:/*EOF*/
        -:        -:14412:/*EOF*/
        -:        -:14413:/*EOF*/
        -:        -:14414:/*EOF*/
        -:        -:14415:/*EOF*/
        -:        -:14416:/*EOF*/
        -:        -:14417:/*EOF*/
        -:        -:14418:/*EOF*/
        -:        -:14419:/*EOF*/
        -:        -:14420:/*EOF*/
        -:        -:14421:/*EOF*/
        -:        -:14422:/*EOF*/
        -:        -:14423:/*EOF*/
        -:        -:14424:/*EOF*/
        -:        -:14425:/*EOF*/
        -:        -:14426:/*EOF*/
        -:        -:14427:/*EOF*/
        -:        -:14428:/*EOF*/
        -:        -:14429:/*EOF*/
        -:        -:14430:/*EOF*/
        -:        -:14431:/*EOF*/
        -:        -:14432:/*EOF*/
        -:        -:14433:/*EOF*/
        -:        -:14434:/*EOF*/
        -:        -:14435:/*EOF*/
        -:        -:14436:/*EOF*/
        -:        -:14437:/*EOF*/
        -:        -:14438:/*EOF*/
        -:        -:14439:/*EOF*/
        -:        -:14440:/*EOF*/
        -:        -:14441:/*EOF*/
        -:        -:14442:/*EOF*/
        -:        -:14443:/*EOF*/
        -:        -:14444:/*EOF*/
        -:        -:14445:/*EOF*/
        -:        -:14446:/*EOF*/
        -:        -:14447:/*EOF*/
        -:        -:14448:/*EOF*/
        -:        -:14449:/*EOF*/
        -:        -:14450:/*EOF*/
        -:        -:14451:/*EOF*/
        -:        -:14452:/*EOF*/
        -:        -:14453:/*EOF*/
        -:        -:14454:/*EOF*/
        -:        -:14455:/*EOF*/
        -:        -:14456:/*EOF*/
        -:        -:14457:/*EOF*/
        -:        -:14458:/*EOF*/
        -:        -:14459:/*EOF*/
        -:        -:14460:/*EOF*/
        -:        -:14461:/*EOF*/
        -:        -:14462:/*EOF*/
        -:        -:14463:/*EOF*/
        -:        -:14464:/*EOF*/
        -:        -:14465:/*EOF*/
        -:        -:14466:/*EOF*/
        -:        -:14467:/*EOF*/
        -:        -:14468:/*EOF*/
        -:        -:14469:/*EOF*/
        -:        -:14470:/*EOF*/
        -:        -:14471:/*EOF*/
        -:        -:14472:/*EOF*/
        -:        -:14473:/*EOF*/
        -:        -:14474:/*EOF*/
        -:        -:14475:/*EOF*/
        -:        -:14476:/*EOF*/
        -:        -:14477:/*EOF*/
        -:        -:14478:/*EOF*/
        -:        -:14479:/*EOF*/
        -:        -:14480:/*EOF*/
        -:        -:14481:/*EOF*/
        -:        -:14482:/*EOF*/
        -:        -:14483:/*EOF*/
        -:        -:14484:/*EOF*/
        -:        -:14485:/*EOF*/
        -:        -:14486:/*EOF*/
        -:        -:14487:/*EOF*/
        -:        -:14488:/*EOF*/
        -:        -:14489:/*EOF*/
        -:        -:14490:/*EOF*/
        -:        -:14491:/*EOF*/
        -:        -:14492:/*EOF*/
        -:        -:14493:/*EOF*/
        -:        -:14494:/*EOF*/
        -:        -:14495:/*EOF*/
        -:        -:14496:/*EOF*/
        -:        -:14497:/*EOF*/
        -:        -:14498:/*EOF*/
        -:        -:14499:/*EOF*/
        -:        -:14500:/*EOF*/
        -:        -:14501:/*EOF*/
        -:        -:14502:/*EOF*/
        -:        -:14503:/*EOF*/
        -:        -:14504:/*EOF*/
        -:        -:14505:/*EOF*/
        -:        -:14506:/*EOF*/
        -:        -:14507:/*EOF*/
        -:        -:14508:/*EOF*/
        -:        -:14509:/*EOF*/
        -:        -:14510:/*EOF*/
        -:        -:14511:/*EOF*/
        -:        -:14512:/*EOF*/
        -:        -:14513:/*EOF*/
        -:        -:14514:/*EOF*/
        -:        -:14515:/*EOF*/
        -:        -:14516:/*EOF*/
        -:        -:14517:/*EOF*/
        -:        -:14518:/*EOF*/
        -:        -:14519:/*EOF*/
        -:        -:14520:/*EOF*/
        -:        -:14521:/*EOF*/
        -:        -:14522:/*EOF*/
        -:        -:14523:/*EOF*/
        -:        -:14524:/*EOF*/
        -:        -:14525:/*EOF*/
        -:        -:14526:/*EOF*/
        -:        -:14527:/*EOF*/
        -:        -:14528:/*EOF*/
        -:        -:14529:/*EOF*/
        -:        -:14530:/*EOF*/
        -:        -:14531:/*EOF*/
        -:        -:14532:/*EOF*/
        -:        -:14533:/*EOF*/
        -:        -:14534:/*EOF*/
        -:        -:14535:/*EOF*/
        -:        -:14536:/*EOF*/
        -:        -:14537:/*EOF*/
        -:        -:14538:/*EOF*/
        -:        -:14539:/*EOF*/
        -:        -:14540:/*EOF*/
        -:        -:14541:/*EOF*/
        -:        -:14542:/*EOF*/
        -:        -:14543:/*EOF*/
        -:        -:14544:/*EOF*/
        -:        -:14545:/*EOF*/
        -:        -:14546:/*EOF*/
        -:        -:14547:/*EOF*/
        -:        -:14548:/*EOF*/
        -:        -:14549:/*EOF*/
        -:        -:14550:/*EOF*/
        -:        -:14551:/*EOF*/
        -:        -:14552:/*EOF*/
        -:        -:14553:/*EOF*/
        -:        -:14554:/*EOF*/
        -:        -:14555:/*EOF*/
        -:        -:14556:/*EOF*/
        -:        -:14557:/*EOF*/
        -:        -:14558:/*EOF*/
        -:        -:14559:/*EOF*/
        -:        -:14560:/*EOF*/
        -:        -:14561:/*EOF*/
        -:        -:14562:/*EOF*/
        -:        -:14563:/*EOF*/
        -:        -:14564:/*EOF*/
        -:        -:14565:/*EOF*/
        -:        -:14566:/*EOF*/
        -:        -:14567:/*EOF*/
        -:        -:14568:/*EOF*/
        -:        -:14569:/*EOF*/
        -:        -:14570:/*EOF*/
        -:        -:14571:/*EOF*/
        -:        -:14572:/*EOF*/
        -:        -:14573:/*EOF*/
        -:        -:14574:/*EOF*/
        -:        -:14575:/*EOF*/
        -:        -:14576:/*EOF*/
        -:        -:14577:/*EOF*/
        -:        -:14578:/*EOF*/
        -:        -:14579:/*EOF*/
        -:        -:14580:/*EOF*/
        -:        -:14581:/*EOF*/
        -:        -:14582:/*EOF*/
        -:        -:14583:/*EOF*/
        -:        -:14584:/*EOF*/
        -:        -:14585:/*EOF*/
        -:        -:14586:/*EOF*/
        -:        -:14587:/*EOF*/
        -:        -:14588:/*EOF*/
        -:        -:14589:/*EOF*/
        -:        -:14590:/*EOF*/
        -:        -:14591:/*EOF*/
        -:        -:14592:/*EOF*/
        -:        -:14593:/*EOF*/
        -:        -:14594:/*EOF*/
        -:        -:14595:/*EOF*/
        -:        -:14596:/*EOF*/
        -:        -:14597:/*EOF*/
        -:        -:14598:/*EOF*/
        -:        -:14599:/*EOF*/
        -:        -:14600:/*EOF*/
        -:        -:14601:/*EOF*/
        -:        -:14602:/*EOF*/
        -:        -:14603:/*EOF*/
        -:        -:14604:/*EOF*/
        -:        -:14605:/*EOF*/
        -:        -:14606:/*EOF*/
        -:        -:14607:/*EOF*/
        -:        -:14608:/*EOF*/
        -:        -:14609:/*EOF*/
        -:        -:14610:/*EOF*/
        -:        -:14611:/*EOF*/
        -:        -:14612:/*EOF*/
        -:        -:14613:/*EOF*/
        -:        -:14614:/*EOF*/
        -:        -:14615:/*EOF*/
        -:        -:14616:/*EOF*/
        -:        -:14617:/*EOF*/
        -:        -:14618:/*EOF*/
        -:        -:14619:/*EOF*/
        -:        -:14620:/*EOF*/
        -:        -:14621:/*EOF*/
        -:        -:14622:/*EOF*/
        -:        -:14623:/*EOF*/
        -:        -:14624:/*EOF*/
        -:        -:14625:/*EOF*/
        -:        -:14626:/*EOF*/
        -:        -:14627:/*EOF*/
        -:        -:14628:/*EOF*/
        -:        -:14629:/*EOF*/
        -:        -:14630:/*EOF*/
        -:        -:14631:/*EOF*/
        -:        -:14632:/*EOF*/
        -:        -:14633:/*EOF*/
        -:        -:14634:/*EOF*/
        -:        -:14635:/*EOF*/
        -:        -:14636:/*EOF*/
        -:        -:14637:/*EOF*/
        -:        -:14638:/*EOF*/
        -:        -:14639:/*EOF*/
        -:        -:14640:/*EOF*/
        -:        -:14641:/*EOF*/
        -:        -:14642:/*EOF*/
        -:        -:14643:/*EOF*/
        -:        -:14644:/*EOF*/
        -:        -:14645:/*EOF*/
        -:        -:14646:/*EOF*/
        -:        -:14647:/*EOF*/
        -:        -:14648:/*EOF*/
        -:        -:14649:/*EOF*/
        -:        -:14650:/*EOF*/
        -:        -:14651:/*EOF*/
        -:        -:14652:/*EOF*/
        -:        -:14653:/*EOF*/
        -:        -:14654:/*EOF*/
        -:        -:14655:/*EOF*/
        -:        -:14656:/*EOF*/
        -:        -:14657:/*EOF*/
        -:        -:14658:/*EOF*/
        -:        -:14659:/*EOF*/
        -:        -:14660:/*EOF*/
        -:        -:14661:/*EOF*/
        -:        -:14662:/*EOF*/
        -:        -:14663:/*EOF*/
        -:        -:14664:/*EOF*/
        -:        -:14665:/*EOF*/
        -:        -:14666:/*EOF*/
        -:        -:14667:/*EOF*/
        -:        -:14668:/*EOF*/
        -:        -:14669:/*EOF*/
        -:        -:14670:/*EOF*/
        -:        -:14671:/*EOF*/
        -:        -:14672:/*EOF*/
        -:        -:14673:/*EOF*/
        -:        -:14674:/*EOF*/
        -:        -:14675:/*EOF*/
        -:        -:14676:/*EOF*/
        -:        -:14677:/*EOF*/
        -:        -:14678:/*EOF*/
        -:        -:14679:/*EOF*/
        -:        -:14680:/*EOF*/
        -:        -:14681:/*EOF*/
        -:        -:14682:/*EOF*/
        -:        -:14683:/*EOF*/
        -:        -:14684:/*EOF*/
        -:        -:14685:/*EOF*/
        -:        -:14686:/*EOF*/
        -:        -:14687:/*EOF*/
        -:        -:14688:/*EOF*/
        -:        -:14689:/*EOF*/
        -:        -:14690:/*EOF*/
        -:        -:14691:/*EOF*/
        -:        -:14692:/*EOF*/
        -:        -:14693:/*EOF*/
        -:        -:14694:/*EOF*/
        -:        -:14695:/*EOF*/
        -:        -:14696:/*EOF*/
        -:        -:14697:/*EOF*/
        -:        -:14698:/*EOF*/
        -:        -:14699:/*EOF*/
        -:        -:14700:/*EOF*/
        -:        -:14701:/*EOF*/
        -:        -:14702:/*EOF*/
        -:        -:14703:/*EOF*/
        -:        -:14704:/*EOF*/
        -:        -:14705:/*EOF*/
        -:        -:14706:/*EOF*/
        -:        -:14707:/*EOF*/
        -:        -:14708:/*EOF*/
        -:        -:14709:/*EOF*/
        -:        -:14710:/*EOF*/
        -:        -:14711:/*EOF*/
        -:        -:14712:/*EOF*/
        -:        -:14713:/*EOF*/
        -:        -:14714:/*EOF*/
        -:        -:14715:/*EOF*/
        -:        -:14716:/*EOF*/
        -:        -:14717:/*EOF*/
        -:        -:14718:/*EOF*/
        -:        -:14719:/*EOF*/
        -:        -:14720:/*EOF*/
        -:        -:14721:/*EOF*/
        -:        -:14722:/*EOF*/
        -:        -:14723:/*EOF*/
        -:        -:14724:/*EOF*/
        -:        -:14725:/*EOF*/
        -:        -:14726:/*EOF*/
        -:        -:14727:/*EOF*/
        -:        -:14728:/*EOF*/
        -:        -:14729:/*EOF*/
        -:        -:14730:/*EOF*/
        -:        -:14731:/*EOF*/
        -:        -:14732:/*EOF*/
        -:        -:14733:/*EOF*/
        -:        -:14734:/*EOF*/
        -:        -:14735:/*EOF*/
        -:        -:14736:/*EOF*/
        -:        -:14737:/*EOF*/
        -:        -:14738:/*EOF*/
        -:        -:14739:/*EOF*/
        -:        -:14740:/*EOF*/
        -:        -:14741:/*EOF*/
        -:        -:14742:/*EOF*/
        -:        -:14743:/*EOF*/
        -:        -:14744:/*EOF*/
        -:        -:14745:/*EOF*/
        -:        -:14746:/*EOF*/
        -:        -:14747:/*EOF*/
        -:        -:14748:/*EOF*/
        -:        -:14749:/*EOF*/
        -:        -:14750:/*EOF*/
        -:        -:14751:/*EOF*/
        -:        -:14752:/*EOF*/
        -:        -:14753:/*EOF*/
        -:        -:14754:/*EOF*/
        -:        -:14755:/*EOF*/
        -:        -:14756:/*EOF*/
        -:        -:14757:/*EOF*/
        -:        -:14758:/*EOF*/
        -:        -:14759:/*EOF*/
        -:        -:14760:/*EOF*/
        -:        -:14761:/*EOF*/
        -:        -:14762:/*EOF*/
        -:        -:14763:/*EOF*/
        -:        -:14764:/*EOF*/
        -:        -:14765:/*EOF*/
        -:        -:14766:/*EOF*/
        -:        -:14767:/*EOF*/
        -:        -:14768:/*EOF*/
        -:        -:14769:/*EOF*/
        -:        -:14770:/*EOF*/
        -:        -:14771:/*EOF*/
        -:        -:14772:/*EOF*/
        -:        -:14773:/*EOF*/
        -:        -:14774:/*EOF*/
        -:        -:14775:/*EOF*/
        -:        -:14776:/*EOF*/
        -:        -:14777:/*EOF*/
        -:        -:14778:/*EOF*/
        -:        -:14779:/*EOF*/
        -:        -:14780:/*EOF*/
        -:        -:14781:/*EOF*/
        -:        -:14782:/*EOF*/
        -:        -:14783:/*EOF*/
        -:        -:14784:/*EOF*/
        -:        -:14785:/*EOF*/
        -:        -:14786:/*EOF*/
        -:        -:14787:/*EOF*/
        -:        -:14788:/*EOF*/
        -:        -:14789:/*EOF*/
        -:        -:14790:/*EOF*/
        -:        -:14791:/*EOF*/
        -:        -:14792:/*EOF*/
        -:        -:14793:/*EOF*/
        -:        -:14794:/*EOF*/
        -:        -:14795:/*EOF*/
        -:        -:14796:/*EOF*/
        -:        -:14797:/*EOF*/
        -:        -:14798:/*EOF*/
        -:        -:14799:/*EOF*/
        -:        -:14800:/*EOF*/
        -:        -:14801:/*EOF*/
        -:        -:14802:/*EOF*/
        -:        -:14803:/*EOF*/
        -:        -:14804:/*EOF*/
        -:        -:14805:/*EOF*/
        -:        -:14806:/*EOF*/
        -:        -:14807:/*EOF*/
        -:        -:14808:/*EOF*/
        -:        -:14809:/*EOF*/
        -:        -:14810:/*EOF*/
        -:        -:14811:/*EOF*/
        -:        -:14812:/*EOF*/
        -:        -:14813:/*EOF*/
        -:        -:14814:/*EOF*/
        -:        -:14815:/*EOF*/
        -:        -:14816:/*EOF*/
        -:        -:14817:/*EOF*/
        -:        -:14818:/*EOF*/
        -:        -:14819:/*EOF*/
        -:        -:14820:/*EOF*/
        -:        -:14821:/*EOF*/
        -:        -:14822:/*EOF*/
        -:        -:14823:/*EOF*/
        -:        -:14824:/*EOF*/
        -:        -:14825:/*EOF*/
        -:        -:14826:/*EOF*/
        -:        -:14827:/*EOF*/
        -:        -:14828:/*EOF*/
        -:        -:14829:/*EOF*/
        -:        -:14830:/*EOF*/
        -:        -:14831:/*EOF*/
        -:        -:14832:/*EOF*/
        -:        -:14833:/*EOF*/
        -:        -:14834:/*EOF*/
        -:        -:14835:/*EOF*/
        -:        -:14836:/*EOF*/
        -:        -:14837:/*EOF*/
        -:        -:14838:/*EOF*/
        -:        -:14839:/*EOF*/
        -:        -:14840:/*EOF*/
        -:        -:14841:/*EOF*/
        -:        -:14842:/*EOF*/
        -:        -:14843:/*EOF*/
        -:        -:14844:/*EOF*/
        -:        -:14845:/*EOF*/
        -:        -:14846:/*EOF*/
        -:        -:14847:/*EOF*/
        -:        -:14848:/*EOF*/
        -:        -:14849:/*EOF*/
        -:        -:14850:/*EOF*/
        -:        -:14851:/*EOF*/
        -:        -:14852:/*EOF*/
        -:        -:14853:/*EOF*/
        -:        -:14854:/*EOF*/
        -:        -:14855:/*EOF*/
        -:        -:14856:/*EOF*/
        -:        -:14857:/*EOF*/
        -:        -:14858:/*EOF*/
        -:        -:14859:/*EOF*/
        -:        -:14860:/*EOF*/
        -:        -:14861:/*EOF*/
        -:        -:14862:/*EOF*/
        -:        -:14863:/*EOF*/
        -:        -:14864:/*EOF*/
        -:        -:14865:/*EOF*/
        -:        -:14866:/*EOF*/
        -:        -:14867:/*EOF*/
        -:        -:14868:/*EOF*/
        -:        -:14869:/*EOF*/
        -:        -:14870:/*EOF*/
        -:        -:14871:/*EOF*/
        -:        -:14872:/*EOF*/
        -:        -:14873:/*EOF*/
        -:        -:14874:/*EOF*/
        -:        -:14875:/*EOF*/
        -:        -:14876:/*EOF*/
        -:        -:14877:/*EOF*/
        -:        -:14878:/*EOF*/
        -:        -:14879:/*EOF*/
        -:        -:14880:/*EOF*/
        -:        -:14881:/*EOF*/
        -:        -:14882:/*EOF*/
        -:        -:14883:/*EOF*/
        -:        -:14884:/*EOF*/
        -:        -:14885:/*EOF*/
        -:        -:14886:/*EOF*/
        -:        -:14887:/*EOF*/
        -:        -:14888:/*EOF*/
        -:        -:14889:/*EOF*/
        -:        -:14890:/*EOF*/
        -:        -:14891:/*EOF*/
        -:        -:14892:/*EOF*/
        -:        -:14893:/*EOF*/
        -:        -:14894:/*EOF*/
        -:        -:14895:/*EOF*/
        -:        -:14896:/*EOF*/
        -:        -:14897:/*EOF*/
        -:        -:14898:/*EOF*/
        -:        -:14899:/*EOF*/
        -:        -:14900:/*EOF*/
        -:        -:14901:/*EOF*/
        -:        -:14902:/*EOF*/
        -:        -:14903:/*EOF*/
        -:        -:14904:/*EOF*/
        -:        -:14905:/*EOF*/
        -:        -:14906:/*EOF*/
        -:        -:14907:/*EOF*/
        -:        -:14908:/*EOF*/
        -:        -:14909:/*EOF*/
        -:        -:14910:/*EOF*/
        -:        -:14911:/*EOF*/
        -:        -:14912:/*EOF*/
        -:        -:14913:/*EOF*/
        -:        -:14914:/*EOF*/
        -:        -:14915:/*EOF*/
        -:        -:14916:/*EOF*/
        -:        -:14917:/*EOF*/
        -:        -:14918:/*EOF*/
        -:        -:14919:/*EOF*/
        -:        -:14920:/*EOF*/
        -:        -:14921:/*EOF*/
        -:        -:14922:/*EOF*/
        -:        -:14923:/*EOF*/
        -:        -:14924:/*EOF*/
        -:        -:14925:/*EOF*/
        -:        -:14926:/*EOF*/
        -:        -:14927:/*EOF*/
        -:        -:14928:/*EOF*/
        -:        -:14929:/*EOF*/
        -:        -:14930:/*EOF*/
        -:        -:14931:/*EOF*/
        -:        -:14932:/*EOF*/
        -:        -:14933:/*EOF*/
        -:        -:14934:/*EOF*/
        -:        -:14935:/*EOF*/
        -:        -:14936:/*EOF*/
        -:        -:14937:/*EOF*/
        -:        -:14938:/*EOF*/
        -:        -:14939:/*EOF*/
        -:        -:14940:/*EOF*/
        -:        -:14941:/*EOF*/
        -:        -:14942:/*EOF*/
        -:        -:14943:/*EOF*/
        -:        -:14944:/*EOF*/
        -:        -:14945:/*EOF*/
        -:        -:14946:/*EOF*/
        -:        -:14947:/*EOF*/
        -:        -:14948:/*EOF*/
        -:        -:14949:/*EOF*/
        -:        -:14950:/*EOF*/
        -:        -:14951:/*EOF*/
        -:        -:14952:/*EOF*/
        -:        -:14953:/*EOF*/
        -:        -:14954:/*EOF*/
        -:        -:14955:/*EOF*/
        -:        -:14956:/*EOF*/
        -:        -:14957:/*EOF*/
        -:        -:14958:/*EOF*/
        -:        -:14959:/*EOF*/
        -:        -:14960:/*EOF*/
        -:        -:14961:/*EOF*/
        -:        -:14962:/*EOF*/
        -:        -:14963:/*EOF*/
        -:        -:14964:/*EOF*/
        -:        -:14965:/*EOF*/
        -:        -:14966:/*EOF*/
        -:        -:14967:/*EOF*/
        -:        -:14968:/*EOF*/
        -:        -:14969:/*EOF*/
        -:        -:14970:/*EOF*/
        -:        -:14971:/*EOF*/
        -:        -:14972:/*EOF*/
        -:        -:14973:/*EOF*/
        -:        -:14974:/*EOF*/
        -:        -:14975:/*EOF*/
        -:        -:14976:/*EOF*/
        -:        -:14977:/*EOF*/
        -:        -:14978:/*EOF*/
        -:        -:14979:/*EOF*/
        -:        -:14980:/*EOF*/
        -:        -:14981:/*EOF*/
        -:        -:14982:/*EOF*/
        -:        -:14983:/*EOF*/
        -:        -:14984:/*EOF*/
        -:        -:14985:/*EOF*/
        -:        -:14986:/*EOF*/
        -:        -:14987:/*EOF*/
        -:        -:14988:/*EOF*/
        -:        -:14989:/*EOF*/
        -:        -:14990:/*EOF*/
        -:        -:14991:/*EOF*/
        -:        -:14992:/*EOF*/
        -:        -:14993:/*EOF*/
        -:        -:14994:/*EOF*/
        -:        -:14995:/*EOF*/
        -:        -:14996:/*EOF*/
        -:        -:14997:/*EOF*/
        -:        -:14998:/*EOF*/
        -:        -:14999:/*EOF*/
        -:        -:15000:/*EOF*/
        -:        -:15001:/*EOF*/
        -:        -:15002:/*EOF*/
        -:        -:15003:/*EOF*/
        -:        -:15004:/*EOF*/
        -:        -:15005:/*EOF*/
        -:        -:15006:/*EOF*/
        -:        -:15007:/*EOF*/
        -:        -:15008:/*EOF*/
        -:        -:15009:/*EOF*/
        -:        -:15010:/*EOF*/
        -:        -:15011:/*EOF*/
        -:        -:15012:/*EOF*/
        -:        -:15013:/*EOF*/
        -:        -:15014:/*EOF*/
        -:        -:15015:/*EOF*/
        -:        -:15016:/*EOF*/
        -:        -:15017:/*EOF*/
        -:        -:15018:/*EOF*/
        -:        -:15019:/*EOF*/
        -:        -:15020:/*EOF*/
        -:        -:15021:/*EOF*/
        -:        -:15022:/*EOF*/
        -:        -:15023:/*EOF*/
        -:        -:15024:/*EOF*/
        -:        -:15025:/*EOF*/
        -:        -:15026:/*EOF*/
        -:        -:15027:/*EOF*/
        -:        -:15028:/*EOF*/
        -:        -:15029:/*EOF*/
        -:        -:15030:/*EOF*/
        -:        -:15031:/*EOF*/
        -:        -:15032:/*EOF*/
        -:        -:15033:/*EOF*/
        -:        -:15034:/*EOF*/
        -:        -:15035:/*EOF*/
        -:        -:15036:/*EOF*/
        -:        -:15037:/*EOF*/
        -:        -:15038:/*EOF*/
        -:        -:15039:/*EOF*/
        -:        -:15040:/*EOF*/
        -:        -:15041:/*EOF*/
        -:        -:15042:/*EOF*/
        -:        -:15043:/*EOF*/
        -:        -:15044:/*EOF*/
        -:        -:15045:/*EOF*/
        -:        -:15046:/*EOF*/
        -:        -:15047:/*EOF*/
        -:        -:15048:/*EOF*/
        -:        -:15049:/*EOF*/
        -:        -:15050:/*EOF*/
        -:        -:15051:/*EOF*/
        -:        -:15052:/*EOF*/
        -:        -:15053:/*EOF*/
        -:        -:15054:/*EOF*/
        -:        -:15055:/*EOF*/
        -:        -:15056:/*EOF*/
        -:        -:15057:/*EOF*/
        -:        -:15058:/*EOF*/
        -:        -:15059:/*EOF*/
        -:        -:15060:/*EOF*/
        -:        -:15061:/*EOF*/
        -:        -:15062:/*EOF*/
        -:        -:15063:/*EOF*/
        -:        -:15064:/*EOF*/
        -:        -:15065:/*EOF*/
        -:        -:15066:/*EOF*/
        -:        -:15067:/*EOF*/
        -:        -:15068:/*EOF*/
        -:        -:15069:/*EOF*/
        -:        -:15070:/*EOF*/
        -:        -:15071:/*EOF*/
        -:        -:15072:/*EOF*/
        -:        -:15073:/*EOF*/
        -:        -:15074:/*EOF*/
        -:        -:15075:/*EOF*/
        -:        -:15076:/*EOF*/
        -:        -:15077:/*EOF*/
        -:        -:15078:/*EOF*/
        -:        -:15079:/*EOF*/
        -:        -:15080:/*EOF*/
        -:        -:15081:/*EOF*/
        -:        -:15082:/*EOF*/
        -:        -:15083:/*EOF*/
        -:        -:15084:/*EOF*/
        -:        -:15085:/*EOF*/
        -:        -:15086:/*EOF*/
        -:        -:15087:/*EOF*/
        -:        -:15088:/*EOF*/
        -:        -:15089:/*EOF*/
        -:        -:15090:/*EOF*/
        -:        -:15091:/*EOF*/
        -:        -:15092:/*EOF*/
        -:        -:15093:/*EOF*/
        -:        -:15094:/*EOF*/
        -:        -:15095:/*EOF*/
        -:        -:15096:/*EOF*/
        -:        -:15097:/*EOF*/
        -:        -:15098:/*EOF*/
        -:        -:15099:/*EOF*/
        -:        -:15100:/*EOF*/
        -:        -:15101:/*EOF*/
        -:        -:15102:/*EOF*/
        -:        -:15103:/*EOF*/
        -:        -:15104:/*EOF*/
        -:        -:15105:/*EOF*/
        -:        -:15106:/*EOF*/
        -:        -:15107:/*EOF*/
        -:        -:15108:/*EOF*/
        -:        -:15109:/*EOF*/
        -:        -:15110:/*EOF*/
        -:        -:15111:/*EOF*/
        -:        -:15112:/*EOF*/
        -:        -:15113:/*EOF*/
        -:        -:15114:/*EOF*/
        -:        -:15115:/*EOF*/
        -:        -:15116:/*EOF*/
        -:        -:15117:/*EOF*/
        -:        -:15118:/*EOF*/
        -:        -:15119:/*EOF*/
        -:        -:15120:/*EOF*/
        -:        -:15121:/*EOF*/
        -:        -:15122:/*EOF*/
        -:        -:15123:/*EOF*/
        -:        -:15124:/*EOF*/
        -:        -:15125:/*EOF*/
        -:        -:15126:/*EOF*/
        -:        -:15127:/*EOF*/
        -:        -:15128:/*EOF*/
        -:        -:15129:/*EOF*/
        -:        -:15130:/*EOF*/
        -:        -:15131:/*EOF*/
        -:        -:15132:/*EOF*/
        -:        -:15133:/*EOF*/
        -:        -:15134:/*EOF*/
        -:        -:15135:/*EOF*/
        -:        -:15136:/*EOF*/
        -:        -:15137:/*EOF*/
        -:        -:15138:/*EOF*/
        -:        -:15139:/*EOF*/
        -:        -:15140:/*EOF*/
        -:        -:15141:/*EOF*/
        -:        -:15142:/*EOF*/
        -:        -:15143:/*EOF*/
        -:        -:15144:/*EOF*/
        -:        -:15145:/*EOF*/
        -:        -:15146:/*EOF*/
        -:        -:15147:/*EOF*/
        -:        -:15148:/*EOF*/
        -:        -:15149:/*EOF*/
        -:        -:15150:/*EOF*/
        -:        -:15151:/*EOF*/
        -:        -:15152:/*EOF*/
        -:        -:15153:/*EOF*/
        -:        -:15154:/*EOF*/
        -:        -:15155:/*EOF*/
        -:        -:15156:/*EOF*/
        -:        -:15157:/*EOF*/
        -:        -:15158:/*EOF*/
        -:        -:15159:/*EOF*/
        -:        -:15160:/*EOF*/
        -:        -:15161:/*EOF*/
        -:        -:15162:/*EOF*/
        -:        -:15163:/*EOF*/
        -:        -:15164:/*EOF*/
        -:        -:15165:/*EOF*/
        -:        -:15166:/*EOF*/
        -:        -:15167:/*EOF*/
        -:        -:15168:/*EOF*/
        -:        -:15169:/*EOF*/
        -:        -:15170:/*EOF*/
        -:        -:15171:/*EOF*/
        -:        -:15172:/*EOF*/
        -:        -:15173:/*EOF*/
        -:        -:15174:/*EOF*/
        -:        -:15175:/*EOF*/
        -:        -:15176:/*EOF*/
        -:        -:15177:/*EOF*/
        -:        -:15178:/*EOF*/
        -:        -:15179:/*EOF*/
        -:        -:15180:/*EOF*/
        -:        -:15181:/*EOF*/
        -:        -:15182:/*EOF*/
        -:        -:15183:/*EOF*/
        -:        -:15184:/*EOF*/
        -:        -:15185:/*EOF*/
        -:        -:15186:/*EOF*/
        -:        -:15187:/*EOF*/
        -:        -:15188:/*EOF*/
        -:        -:15189:/*EOF*/
        -:        -:15190:/*EOF*/
        -:        -:15191:/*EOF*/
        -:        -:15192:/*EOF*/
        -:        -:15193:/*EOF*/
        -:        -:15194:/*EOF*/
        -:        -:15195:/*EOF*/
        -:        -:15196:/*EOF*/
        -:        -:15197:/*EOF*/
        -:        -:15198:/*EOF*/
        -:        -:15199:/*EOF*/
        -:        -:15200:/*EOF*/
        -:        -:15201:/*EOF*/
        -:        -:15202:/*EOF*/
        -:        -:15203:/*EOF*/
        -:        -:15204:/*EOF*/
        -:        -:15205:/*EOF*/
        -:        -:15206:/*EOF*/
        -:        -:15207:/*EOF*/
        -:        -:15208:/*EOF*/
        -:        -:15209:/*EOF*/
        -:        -:15210:/*EOF*/
        -:        -:15211:/*EOF*/
        -:        -:15212:/*EOF*/
        -:        -:15213:/*EOF*/
        -:        -:15214:/*EOF*/
        -:        -:15215:/*EOF*/
        -:        -:15216:/*EOF*/
        -:        -:15217:/*EOF*/
        -:        -:15218:/*EOF*/
        -:        -:15219:/*EOF*/
        -:        -:15220:/*EOF*/
        -:        -:15221:/*EOF*/
        -:        -:15222:/*EOF*/
        -:        -:15223:/*EOF*/
        -:        -:15224:/*EOF*/
        -:        -:15225:/*EOF*/
        -:        -:15226:/*EOF*/
        -:        -:15227:/*EOF*/
        -:        -:15228:/*EOF*/
        -:        -:15229:/*EOF*/
        -:        -:15230:/*EOF*/
        -:        -:15231:/*EOF*/
        -:        -:15232:/*EOF*/
        -:        -:15233:/*EOF*/
        -:        -:15234:/*EOF*/
        -:        -:15235:/*EOF*/
        -:        -:15236:/*EOF*/
        -:        -:15237:/*EOF*/
        -:        -:15238:/*EOF*/
        -:        -:15239:/*EOF*/
        -:        -:15240:/*EOF*/
        -:        -:15241:/*EOF*/
        -:        -:15242:/*EOF*/
        -:        -:15243:/*EOF*/
        -:        -:15244:/*EOF*/
        -:        -:15245:/*EOF*/
        -:        -:15246:/*EOF*/
        -:        -:15247:/*EOF*/
        -:        -:15248:/*EOF*/
        -:        -:15249:/*EOF*/
        -:        -:15250:/*EOF*/
        -:        -:15251:/*EOF*/
        -:        -:15252:/*EOF*/
        -:        -:15253:/*EOF*/
        -:        -:15254:/*EOF*/
        -:        -:15255:/*EOF*/
        -:        -:15256:/*EOF*/
        -:        -:15257:/*EOF*/
        -:        -:15258:/*EOF*/
        -:        -:15259:/*EOF*/
        -:        -:15260:/*EOF*/
        -:        -:15261:/*EOF*/
        -:        -:15262:/*EOF*/
        -:        -:15263:/*EOF*/
        -:        -:15264:/*EOF*/
        -:        -:15265:/*EOF*/
        -:        -:15266:/*EOF*/
        -:        -:15267:/*EOF*/
        -:        -:15268:/*EOF*/
        -:        -:15269:/*EOF*/
        -:        -:15270:/*EOF*/
        -:        -:15271:/*EOF*/
        -:        -:15272:/*EOF*/
        -:        -:15273:/*EOF*/
        -:        -:15274:/*EOF*/
        -:        -:15275:/*EOF*/
        -:        -:15276:/*EOF*/
        -:        -:15277:/*EOF*/
        -:        -:15278:/*EOF*/
        -:        -:15279:/*EOF*/
        -:        -:15280:/*EOF*/
        -:        -:15281:/*EOF*/
        -:        -:15282:/*EOF*/
        -:        -:15283:/*EOF*/
        -:        -:15284:/*EOF*/
        -:        -:15285:/*EOF*/
        -:        -:15286:/*EOF*/
        -:        -:15287:/*EOF*/
        -:        -:15288:/*EOF*/
        -:        -:15289:/*EOF*/
        -:        -:15290:/*EOF*/
        -:        -:15291:/*EOF*/
        -:        -:15292:/*EOF*/
        -:        -:15293:/*EOF*/
        -:        -:15294:/*EOF*/
        -:        -:15295:/*EOF*/
        -:        -:15296:/*EOF*/
        -:        -:15297:/*EOF*/
        -:        -:15298:/*EOF*/
        -:        -:15299:/*EOF*/
        -:        -:15300:/*EOF*/
        -:        -:15301:/*EOF*/
        -:        -:15302:/*EOF*/
        -:        -:15303:/*EOF*/
        -:        -:15304:/*EOF*/
        -:        -:15305:/*EOF*/
        -:        -:15306:/*EOF*/
        -:        -:15307:/*EOF*/
        -:        -:15308:/*EOF*/
        -:        -:15309:/*EOF*/
        -:        -:15310:/*EOF*/
        -:        -:15311:/*EOF*/
        -:        -:15312:/*EOF*/
        -:        -:15313:/*EOF*/
        -:        -:15314:/*EOF*/
        -:        -:15315:/*EOF*/
        -:        -:15316:/*EOF*/
        -:        -:15317:/*EOF*/
        -:        -:15318:/*EOF*/
        -:        -:15319:/*EOF*/
        -:        -:15320:/*EOF*/
        -:        -:15321:/*EOF*/
        -:        -:15322:/*EOF*/
        -:        -:15323:/*EOF*/
        -:        -:15324:/*EOF*/
        -:        -:15325:/*EOF*/
        -:        -:15326:/*EOF*/
        -:        -:15327:/*EOF*/
        -:        -:15328:/*EOF*/
        -:        -:15329:/*EOF*/
        -:        -:15330:/*EOF*/
        -:        -:15331:/*EOF*/
        -:        -:15332:/*EOF*/
        -:        -:15333:/*EOF*/
        -:        -:15334:/*EOF*/
        -:        -:15335:/*EOF*/
        -:        -:15336:/*EOF*/
        -:        -:15337:/*EOF*/
        -:        -:15338:/*EOF*/
        -:        -:15339:/*EOF*/
        -:        -:15340:/*EOF*/
        -:        -:15341:/*EOF*/
        -:        -:15342:/*EOF*/
        -:        -:15343:/*EOF*/
        -:        -:15344:/*EOF*/
        -:        -:15345:/*EOF*/
        -:        -:15346:/*EOF*/
        -:        -:15347:/*EOF*/
        -:        -:15348:/*EOF*/
        -:        -:15349:/*EOF*/
        -:        -:15350:/*EOF*/
        -:        -:15351:/*EOF*/
        -:        -:15352:/*EOF*/
        -:        -:15353:/*EOF*/
        -:        -:15354:/*EOF*/
        -:        -:15355:/*EOF*/
        -:        -:15356:/*EOF*/
        -:        -:15357:/*EOF*/
        -:        -:15358:/*EOF*/
        -:        -:15359:/*EOF*/
        -:        -:15360:/*EOF*/
        -:        -:15361:/*EOF*/
        -:        -:15362:/*EOF*/
        -:        -:15363:/*EOF*/
        -:        -:15364:/*EOF*/
        -:        -:15365:/*EOF*/
        -:        -:15366:/*EOF*/
        -:        -:15367:/*EOF*/
        -:        -:15368:/*EOF*/
        -:        -:15369:/*EOF*/
        -:        -:15370:/*EOF*/
        -:        -:15371:/*EOF*/
        -:        -:15372:/*EOF*/
        -:        -:15373:/*EOF*/
        -:        -:15374:/*EOF*/
        -:        -:15375:/*EOF*/
        -:        -:15376:/*EOF*/
        -:        -:15377:/*EOF*/
        -:        -:15378:/*EOF*/
        -:        -:15379:/*EOF*/
        -:        -:15380:/*EOF*/
        -:        -:15381:/*EOF*/
        -:        -:15382:/*EOF*/
        -:        -:15383:/*EOF*/
        -:        -:15384:/*EOF*/
        -:        -:15385:/*EOF*/
        -:        -:15386:/*EOF*/
        -:        -:15387:/*EOF*/
        -:        -:15388:/*EOF*/
        -:        -:15389:/*EOF*/
        -:        -:15390:/*EOF*/
        -:        -:15391:/*EOF*/
        -:        -:15392:/*EOF*/
        -:        -:15393:/*EOF*/
        -:        -:15394:/*EOF*/
        -:        -:15395:/*EOF*/
        -:        -:15396:/*EOF*/
        -:        -:15397:/*EOF*/
        -:        -:15398:/*EOF*/
        -:        -:15399:/*EOF*/
        -:        -:15400:/*EOF*/
        -:        -:15401:/*EOF*/
        -:        -:15402:/*EOF*/
        -:        -:15403:/*EOF*/
        -:        -:15404:/*EOF*/
        -:        -:15405:/*EOF*/
        -:        -:15406:/*EOF*/
        -:        -:15407:/*EOF*/
        -:        -:15408:/*EOF*/
        -:        -:15409:/*EOF*/
        -:        -:15410:/*EOF*/
        -:        -:15411:/*EOF*/
        -:        -:15412:/*EOF*/
        -:        -:15413:/*EOF*/
        -:        -:15414:/*EOF*/
        -:        -:15415:/*EOF*/
        -:        -:15416:/*EOF*/
        -:        -:15417:/*EOF*/
        -:        -:15418:/*EOF*/
        -:        -:15419:/*EOF*/
        -:        -:15420:/*EOF*/
        -:        -:15421:/*EOF*/
        -:        -:15422:/*EOF*/
        -:        -:15423:/*EOF*/
        -:        -:15424:/*EOF*/
        -:        -:15425:/*EOF*/
        -:        -:15426:/*EOF*/
        -:        -:15427:/*EOF*/
        -:        -:15428:/*EOF*/
        -:        -:15429:/*EOF*/
        -:        -:15430:/*EOF*/
        -:        -:15431:/*EOF*/
        -:        -:15432:/*EOF*/
        -:        -:15433:/*EOF*/
        -:        -:15434:/*EOF*/
        -:        -:15435:/*EOF*/
        -:        -:15436:/*EOF*/
        -:        -:15437:/*EOF*/
        -:        -:15438:/*EOF*/
        -:        -:15439:/*EOF*/
        -:        -:15440:/*EOF*/
        -:        -:15441:/*EOF*/
        -:        -:15442:/*EOF*/
        -:        -:15443:/*EOF*/
        -:        -:15444:/*EOF*/
        -:        -:15445:/*EOF*/
        -:        -:15446:/*EOF*/
        -:        -:15447:/*EOF*/
        -:        -:15448:/*EOF*/
        -:        -:15449:/*EOF*/
        -:        -:15450:/*EOF*/
        -:        -:15451:/*EOF*/
        -:        -:15452:/*EOF*/
        -:        -:15453:/*EOF*/
        -:        -:15454:/*EOF*/
        -:        -:15455:/*EOF*/
        -:        -:15456:/*EOF*/
        -:        -:15457:/*EOF*/
        -:        -:15458:/*EOF*/
        -:        -:15459:/*EOF*/
        -:        -:15460:/*EOF*/
        -:        -:15461:/*EOF*/
        -:        -:15462:/*EOF*/
        -:        -:15463:/*EOF*/
        -:        -:15464:/*EOF*/
        -:        -:15465:/*EOF*/
        -:        -:15466:/*EOF*/
        -:        -:15467:/*EOF*/
        -:        -:15468:/*EOF*/
        -:        -:15469:/*EOF*/
        -:        -:15470:/*EOF*/
        -:        -:15471:/*EOF*/
        -:        -:15472:/*EOF*/
        -:        -:15473:/*EOF*/
        -:        -:15474:/*EOF*/
        -:        -:15475:/*EOF*/
        -:        -:15476:/*EOF*/
        -:        -:15477:/*EOF*/
        -:        -:15478:/*EOF*/
        -:        -:15479:/*EOF*/
        -:        -:15480:/*EOF*/
        -:        -:15481:/*EOF*/
        -:        -:15482:/*EOF*/
        -:        -:15483:/*EOF*/
        -:        -:15484:/*EOF*/
        -:        -:15485:/*EOF*/
        -:        -:15486:/*EOF*/
        -:        -:15487:/*EOF*/
        -:        -:15488:/*EOF*/
        -:        -:15489:/*EOF*/
        -:        -:15490:/*EOF*/
        -:        -:15491:/*EOF*/
        -:        -:15492:/*EOF*/
        -:        -:15493:/*EOF*/
        -:        -:15494:/*EOF*/
        -:        -:15495:/*EOF*/
        -:        -:15496:/*EOF*/
        -:        -:15497:/*EOF*/
        -:        -:15498:/*EOF*/
        -:        -:15499:/*EOF*/
        -:        -:15500:/*EOF*/
        -:        -:15501:/*EOF*/
        -:        -:15502:/*EOF*/
        -:        -:15503:/*EOF*/
        -:        -:15504:/*EOF*/
        -:        -:15505:/*EOF*/
        -:        -:15506:/*EOF*/
        -:        -:15507:/*EOF*/
        -:        -:15508:/*EOF*/
        -:        -:15509:/*EOF*/
        -:        -:15510:/*EOF*/
        -:        -:15511:/*EOF*/
        -:        -:15512:/*EOF*/
        -:        -:15513:/*EOF*/
        -:        -:15514:/*EOF*/
        -:        -:15515:/*EOF*/
        -:        -:15516:/*EOF*/
        -:        -:15517:/*EOF*/
        -:        -:15518:/*EOF*/
        -:        -:15519:/*EOF*/
        -:        -:15520:/*EOF*/
        -:        -:15521:/*EOF*/
        -:        -:15522:/*EOF*/
        -:        -:15523:/*EOF*/
        -:        -:15524:/*EOF*/
        -:        -:15525:/*EOF*/
        -:        -:15526:/*EOF*/
        -:        -:15527:/*EOF*/
        -:        -:15528:/*EOF*/
        -:        -:15529:/*EOF*/
        -:        -:15530:/*EOF*/
        -:        -:15531:/*EOF*/
        -:        -:15532:/*EOF*/
        -:        -:15533:/*EOF*/
        -:        -:15534:/*EOF*/
        -:        -:15535:/*EOF*/
        -:        -:15536:/*EOF*/
        -:        -:15537:/*EOF*/
        -:        -:15538:/*EOF*/
        -:        -:15539:/*EOF*/
        -:        -:15540:/*EOF*/
        -:        -:15541:/*EOF*/
        -:        -:15542:/*EOF*/
        -:        -:15543:/*EOF*/
        -:        -:15544:/*EOF*/
        -:        -:15545:/*EOF*/
        -:        -:15546:/*EOF*/
        -:        -:15547:/*EOF*/
        -:        -:15548:/*EOF*/
        -:        -:15549:/*EOF*/
        -:        -:15550:/*EOF*/
        -:        -:15551:/*EOF*/
        -:        -:15552:/*EOF*/
        -:        -:15553:/*EOF*/
        -:        -:15554:/*EOF*/
        -:        -:15555:/*EOF*/
        -:        -:15556:/*EOF*/
        -:        -:15557:/*EOF*/
        -:        -:15558:/*EOF*/
        -:        -:15559:/*EOF*/
        -:        -:15560:/*EOF*/
        -:        -:15561:/*EOF*/
        -:        -:15562:/*EOF*/
        -:        -:15563:/*EOF*/
        -:        -:15564:/*EOF*/
        -:        -:15565:/*EOF*/
        -:        -:15566:/*EOF*/
        -:        -:15567:/*EOF*/
        -:        -:15568:/*EOF*/
        -:        -:15569:/*EOF*/
        -:        -:15570:/*EOF*/
        -:        -:15571:/*EOF*/
        -:        -:15572:/*EOF*/
        -:        -:15573:/*EOF*/
        -:        -:15574:/*EOF*/
        -:        -:15575:/*EOF*/
        -:        -:15576:/*EOF*/
        -:        -:15577:/*EOF*/
        -:        -:15578:/*EOF*/
        -:        -:15579:/*EOF*/
        -:        -:15580:/*EOF*/
        -:        -:15581:/*EOF*/
        -:        -:15582:/*EOF*/
        -:        -:15583:/*EOF*/
        -:        -:15584:/*EOF*/
        -:        -:15585:/*EOF*/
        -:        -:15586:/*EOF*/
        -:        -:15587:/*EOF*/
        -:        -:15588:/*EOF*/
        -:        -:15589:/*EOF*/
        -:        -:15590:/*EOF*/
        -:        -:15591:/*EOF*/
        -:        -:15592:/*EOF*/
        -:        -:15593:/*EOF*/
        -:        -:15594:/*EOF*/
        -:        -:15595:/*EOF*/
        -:        -:15596:/*EOF*/
        -:        -:15597:/*EOF*/
        -:        -:15598:/*EOF*/
        -:        -:15599:/*EOF*/
        -:        -:15600:/*EOF*/
        -:        -:15601:/*EOF*/
        -:        -:15602:/*EOF*/
        -:        -:15603:/*EOF*/
        -:        -:15604:/*EOF*/
        -:        -:15605:/*EOF*/
        -:        -:15606:/*EOF*/
        -:        -:15607:/*EOF*/
        -:        -:15608:/*EOF*/
        -:        -:15609:/*EOF*/
        -:        -:15610:/*EOF*/
        -:        -:15611:/*EOF*/
        -:        -:15612:/*EOF*/
        -:        -:15613:/*EOF*/
        -:        -:15614:/*EOF*/
        -:        -:15615:/*EOF*/
        -:        -:15616:/*EOF*/
        -:        -:15617:/*EOF*/
        -:        -:15618:/*EOF*/
        -:        -:15619:/*EOF*/
        -:        -:15620:/*EOF*/
        -:        -:15621:/*EOF*/
        -:        -:15622:/*EOF*/
        -:        -:15623:/*EOF*/
        -:        -:15624:/*EOF*/
        -:        -:15625:/*EOF*/
        -:        -:15626:/*EOF*/
        -:        -:15627:/*EOF*/
        -:        -:15628:/*EOF*/
        -:        -:15629:/*EOF*/
        -:        -:15630:/*EOF*/
        -:        -:15631:/*EOF*/
        -:        -:15632:/*EOF*/
        -:        -:15633:/*EOF*/
        -:        -:15634:/*EOF*/
        -:        -:15635:/*EOF*/
        -:        -:15636:/*EOF*/
        -:        -:15637:/*EOF*/
        -:        -:15638:/*EOF*/
        -:        -:15639:/*EOF*/
        -:        -:15640:/*EOF*/
        -:        -:15641:/*EOF*/
        -:        -:15642:/*EOF*/
        -:        -:15643:/*EOF*/
        -:        -:15644:/*EOF*/
        -:        -:15645:/*EOF*/
        -:        -:15646:/*EOF*/
        -:        -:15647:/*EOF*/
        -:        -:15648:/*EOF*/
        -:        -:15649:/*EOF*/
        -:        -:15650:/*EOF*/
        -:        -:15651:/*EOF*/
        -:        -:15652:/*EOF*/
        -:        -:15653:/*EOF*/
        -:        -:15654:/*EOF*/
        -:        -:15655:/*EOF*/
        -:        -:15656:/*EOF*/
        -:        -:15657:/*EOF*/
        -:        -:15658:/*EOF*/
        -:        -:15659:/*EOF*/
        -:        -:15660:/*EOF*/
        -:        -:15661:/*EOF*/
        -:        -:15662:/*EOF*/
        -:        -:15663:/*EOF*/
        -:        -:15664:/*EOF*/
        -:        -:15665:/*EOF*/
        -:        -:15666:/*EOF*/
        -:        -:15667:/*EOF*/
        -:        -:15668:/*EOF*/
        -:        -:15669:/*EOF*/
        -:        -:15670:/*EOF*/
        -:        -:15671:/*EOF*/
        -:        -:15672:/*EOF*/
        -:        -:15673:/*EOF*/
        -:        -:15674:/*EOF*/
        -:        -:15675:/*EOF*/
        -:        -:15676:/*EOF*/
        -:        -:15677:/*EOF*/
        -:        -:15678:/*EOF*/
        -:        -:15679:/*EOF*/
        -:        -:15680:/*EOF*/
        -:        -:15681:/*EOF*/
        -:        -:15682:/*EOF*/
        -:        -:15683:/*EOF*/
        -:        -:15684:/*EOF*/
        -:        -:15685:/*EOF*/
        -:        -:15686:/*EOF*/
        -:        -:15687:/*EOF*/
        -:        -:15688:/*EOF*/
        -:        -:15689:/*EOF*/
        -:        -:15690:/*EOF*/
        -:        -:15691:/*EOF*/
        -:        -:15692:/*EOF*/
        -:        -:15693:/*EOF*/
        -:        -:15694:/*EOF*/
        -:        -:15695:/*EOF*/
        -:        -:15696:/*EOF*/
        -:        -:15697:/*EOF*/
        -:        -:15698:/*EOF*/
        -:        -:15699:/*EOF*/
        -:        -:15700:/*EOF*/
        -:        -:15701:/*EOF*/
        -:        -:15702:/*EOF*/
        -:        -:15703:/*EOF*/
        -:        -:15704:/*EOF*/
        -:        -:15705:/*EOF*/
        -:        -:15706:/*EOF*/
        -:        -:15707:/*EOF*/
        -:        -:15708:/*EOF*/
        -:        -:15709:/*EOF*/
        -:        -:15710:/*EOF*/
        -:        -:15711:/*EOF*/
        -:        -:15712:/*EOF*/
        -:        -:15713:/*EOF*/
        -:        -:15714:/*EOF*/
        -:        -:15715:/*EOF*/
        -:        -:15716:/*EOF*/
        -:        -:15717:/*EOF*/
        -:        -:15718:/*EOF*/
        -:        -:15719:/*EOF*/
        -:        -:15720:/*EOF*/
        -:        -:15721:/*EOF*/
        -:        -:15722:/*EOF*/
        -:        -:15723:/*EOF*/
        -:        -:15724:/*EOF*/
        -:        -:15725:/*EOF*/
        -:        -:15726:/*EOF*/
        -:        -:15727:/*EOF*/
        -:        -:15728:/*EOF*/
        -:        -:15729:/*EOF*/
        -:        -:15730:/*EOF*/
        -:        -:15731:/*EOF*/
        -:        -:15732:/*EOF*/
        -:        -:15733:/*EOF*/
        -:        -:15734:/*EOF*/
        -:        -:15735:/*EOF*/
        -:        -:15736:/*EOF*/
        -:        -:15737:/*EOF*/
        -:        -:15738:/*EOF*/
        -:        -:15739:/*EOF*/
        -:        -:15740:/*EOF*/
        -:        -:15741:/*EOF*/
        -:        -:15742:/*EOF*/
        -:        -:15743:/*EOF*/
        -:        -:15744:/*EOF*/
        -:        -:15745:/*EOF*/
        -:        -:15746:/*EOF*/
        -:        -:15747:/*EOF*/
        -:        -:15748:/*EOF*/
        -:        -:15749:/*EOF*/
        -:        -:15750:/*EOF*/
        -:        -:15751:/*EOF*/
        -:        -:15752:/*EOF*/
        -:        -:15753:/*EOF*/
        -:        -:15754:/*EOF*/
        -:        -:15755:/*EOF*/
        -:        -:15756:/*EOF*/
        -:        -:15757:/*EOF*/
        -:        -:15758:/*EOF*/
        -:        -:15759:/*EOF*/
        -:        -:15760:/*EOF*/
        -:        -:15761:/*EOF*/
        -:        -:15762:/*EOF*/
        -:        -:15763:/*EOF*/
        -:        -:15764:/*EOF*/
        -:        -:15765:/*EOF*/
        -:        -:15766:/*EOF*/
        -:        -:15767:/*EOF*/
        -:        -:15768:/*EOF*/
        -:        -:15769:/*EOF*/
        -:        -:15770:/*EOF*/
        -:        -:15771:/*EOF*/
        -:        -:15772:/*EOF*/
        -:        -:15773:/*EOF*/
        -:        -:15774:/*EOF*/
        -:        -:15775:/*EOF*/
        -:        -:15776:/*EOF*/
        -:        -:15777:/*EOF*/
        -:        -:15778:/*EOF*/
        -:        -:15779:/*EOF*/
        -:        -:15780:/*EOF*/
        -:        -:15781:/*EOF*/
        -:        -:15782:/*EOF*/
        -:        -:15783:/*EOF*/
        -:        -:15784:/*EOF*/
        -:        -:15785:/*EOF*/
        -:        -:15786:/*EOF*/
        -:        -:15787:/*EOF*/
        -:        -:15788:/*EOF*/
        -:        -:15789:/*EOF*/
        -:        -:15790:/*EOF*/
        -:        -:15791:/*EOF*/
        -:        -:15792:/*EOF*/
        -:        -:15793:/*EOF*/
        -:        -:15794:/*EOF*/
        -:        -:15795:/*EOF*/
        -:        -:15796:/*EOF*/
        -:        -:15797:/*EOF*/
        -:        -:15798:/*EOF*/
        -:        -:15799:/*EOF*/
        -:        -:15800:/*EOF*/
        -:        -:15801:/*EOF*/
        -:        -:15802:/*EOF*/
        -:        -:15803:/*EOF*/
        -:        -:15804:/*EOF*/
        -:        -:15805:/*EOF*/
        -:        -:15806:/*EOF*/
        -:        -:15807:/*EOF*/
        -:        -:15808:/*EOF*/
        -:        -:15809:/*EOF*/
        -:        -:15810:/*EOF*/
        -:        -:15811:/*EOF*/
        -:        -:15812:/*EOF*/
        -:        -:15813:/*EOF*/
        -:        -:15814:/*EOF*/
        -:        -:15815:/*EOF*/
        -:        -:15816:/*EOF*/
        -:        -:15817:/*EOF*/
        -:        -:15818:/*EOF*/
        -:        -:15819:/*EOF*/
        -:        -:15820:/*EOF*/
        -:        -:15821:/*EOF*/
        -:        -:15822:/*EOF*/
        -:        -:15823:/*EOF*/
        -:        -:15824:/*EOF*/
        -:        -:15825:/*EOF*/
        -:        -:15826:/*EOF*/
        -:        -:15827:/*EOF*/
        -:        -:15828:/*EOF*/
        -:        -:15829:/*EOF*/
        -:        -:15830:/*EOF*/
        -:        -:15831:/*EOF*/
        -:        -:15832:/*EOF*/
        -:        -:15833:/*EOF*/
        -:        -:15834:/*EOF*/
        -:        -:15835:/*EOF*/
        -:        -:15836:/*EOF*/
        -:        -:15837:/*EOF*/
        -:        -:15838:/*EOF*/
        -:        -:15839:/*EOF*/
        -:        -:15840:/*EOF*/
        -:        -:15841:/*EOF*/
        -:        -:15842:/*EOF*/
        -:        -:15843:/*EOF*/
        -:        -:15844:/*EOF*/
        -:        -:15845:/*EOF*/
        -:        -:15846:/*EOF*/
        -:        -:15847:/*EOF*/
        -:        -:15848:/*EOF*/
        -:        -:15849:/*EOF*/
        -:        -:15850:/*EOF*/
        -:        -:15851:/*EOF*/
        -:        -:15852:/*EOF*/
        -:        -:15853:/*EOF*/
        -:        -:15854:/*EOF*/
        -:        -:15855:/*EOF*/
        -:        -:15856:/*EOF*/
        -:        -:15857:/*EOF*/
        -:        -:15858:/*EOF*/
        -:        -:15859:/*EOF*/
        -:        -:15860:/*EOF*/
        -:        -:15861:/*EOF*/
        -:        -:15862:/*EOF*/
        -:        -:15863:/*EOF*/
        -:        -:15864:/*EOF*/
        -:        -:15865:/*EOF*/
        -:        -:15866:/*EOF*/
        -:        -:15867:/*EOF*/
        -:        -:15868:/*EOF*/
        -:        -:15869:/*EOF*/
        -:        -:15870:/*EOF*/
        -:        -:15871:/*EOF*/
        -:        -:15872:/*EOF*/
        -:        -:15873:/*EOF*/
        -:        -:15874:/*EOF*/
        -:        -:15875:/*EOF*/
        -:        -:15876:/*EOF*/
        -:        -:15877:/*EOF*/
        -:        -:15878:/*EOF*/
        -:        -:15879:/*EOF*/
        -:        -:15880:/*EOF*/
        -:        -:15881:/*EOF*/
        -:        -:15882:/*EOF*/
        -:        -:15883:/*EOF*/
        -:        -:15884:/*EOF*/
        -:        -:15885:/*EOF*/
        -:        -:15886:/*EOF*/
        -:        -:15887:/*EOF*/
        -:        -:15888:/*EOF*/
        -:        -:15889:/*EOF*/
        -:        -:15890:/*EOF*/
        -:        -:15891:/*EOF*/
        -:        -:15892:/*EOF*/
        -:        -:15893:/*EOF*/
        -:        -:15894:/*EOF*/
        -:        -:15895:/*EOF*/
        -:        -:15896:/*EOF*/
        -:        -:15897:/*EOF*/
        -:        -:15898:/*EOF*/
        -:        -:15899:/*EOF*/
        -:        -:15900:/*EOF*/
        -:        -:15901:/*EOF*/
        -:        -:15902:/*EOF*/
        -:        -:15903:/*EOF*/
        -:        -:15904:/*EOF*/
        -:        -:15905:/*EOF*/
        -:        -:15906:/*EOF*/
        -:        -:15907:/*EOF*/
        -:        -:15908:/*EOF*/
        -:        -:15909:/*EOF*/
        -:        -:15910:/*EOF*/
        -:        -:15911:/*EOF*/
        -:        -:15912:/*EOF*/
        -:        -:15913:/*EOF*/
        -:        -:15914:/*EOF*/
        -:        -:15915:/*EOF*/
        -:        -:15916:/*EOF*/
        -:        -:15917:/*EOF*/
        -:        -:15918:/*EOF*/
        -:        -:15919:/*EOF*/
        -:        -:15920:/*EOF*/
        -:        -:15921:/*EOF*/
        -:        -:15922:/*EOF*/
        -:        -:15923:/*EOF*/
        -:        -:15924:/*EOF*/
        -:        -:15925:/*EOF*/
        -:        -:15926:/*EOF*/
        -:        -:15927:/*EOF*/
        -:        -:15928:/*EOF*/
        -:        -:15929:/*EOF*/
        -:        -:15930:/*EOF*/
        -:        -:15931:/*EOF*/
        -:        -:15932:/*EOF*/
        -:        -:15933:/*EOF*/
        -:        -:15934:/*EOF*/
        -:        -:15935:/*EOF*/
        -:        -:15936:/*EOF*/
        -:        -:15937:/*EOF*/
        -:        -:15938:/*EOF*/
        -:        -:15939:/*EOF*/
        -:        -:15940:/*EOF*/
        -:        -:15941:/*EOF*/
        -:        -:15942:/*EOF*/
        -:        -:15943:/*EOF*/
        -:        -:15944:/*EOF*/
        -:        -:15945:/*EOF*/
        -:        -:15946:/*EOF*/
        -:        -:15947:/*EOF*/
        -:        -:15948:/*EOF*/
        -:        -:15949:/*EOF*/
        -:        -:15950:/*EOF*/
        -:        -:15951:/*EOF*/
        -:        -:15952:/*EOF*/
        -:        -:15953:/*EOF*/
        -:        -:15954:/*EOF*/
        -:        -:15955:/*EOF*/
        -:        -:15956:/*EOF*/
        -:        -:15957:/*EOF*/
        -:        -:15958:/*EOF*/
        -:        -:15959:/*EOF*/
        -:        -:15960:/*EOF*/
        -:        -:15961:/*EOF*/
        -:        -:15962:/*EOF*/
        -:        -:15963:/*EOF*/
        -:        -:15964:/*EOF*/
        -:        -:15965:/*EOF*/
        -:        -:15966:/*EOF*/
        -:        -:15967:/*EOF*/
        -:        -:15968:/*EOF*/
        -:        -:15969:/*EOF*/
        -:        -:15970:/*EOF*/
        -:        -:15971:/*EOF*/
        -:        -:15972:/*EOF*/
        -:        -:15973:/*EOF*/
        -:        -:15974:/*EOF*/
        -:        -:15975:/*EOF*/
        -:        -:15976:/*EOF*/
        -:        -:15977:/*EOF*/
        -:        -:15978:/*EOF*/
        -:        -:15979:/*EOF*/
        -:        -:15980:/*EOF*/
        -:        -:15981:/*EOF*/
        -:        -:15982:/*EOF*/
        -:        -:15983:/*EOF*/
        -:        -:15984:/*EOF*/
        -:        -:15985:/*EOF*/
        -:        -:15986:/*EOF*/
        -:        -:15987:/*EOF*/
        -:        -:15988:/*EOF*/
        -:        -:15989:/*EOF*/
        -:        -:15990:/*EOF*/
        -:        -:15991:/*EOF*/
        -:        -:15992:/*EOF*/
        -:        -:15993:/*EOF*/
        -:        -:15994:/*EOF*/
        -:        -:15995:/*EOF*/
        -:        -:15996:/*EOF*/
        -:        -:15997:/*EOF*/
        -:        -:15998:/*EOF*/
        -:        -:15999:/*EOF*/
        -:        -:16000:/*EOF*/
        -:        -:16001:/*EOF*/
        -:        -:16002:/*EOF*/
        -:        -:16003:/*EOF*/
        -:        -:16004:/*EOF*/
        -:        -:16005:/*EOF*/
        -:        -:16006:/*EOF*/
        -:        -:16007:/*EOF*/
        -:        -:16008:/*EOF*/
        -:        -:16009:/*EOF*/
        -:        -:16010:/*EOF*/
        -:        -:16011:/*EOF*/
        -:        -:16012:/*EOF*/
        -:        -:16013:/*EOF*/
        -:        -:16014:/*EOF*/
        -:        -:16015:/*EOF*/
        -:        -:16016:/*EOF*/
        -:        -:16017:/*EOF*/
        -:        -:16018:/*EOF*/
        -:        -:16019:/*EOF*/
        -:        -:16020:/*EOF*/
        -:        -:16021:/*EOF*/
        -:        -:16022:/*EOF*/
        -:        -:16023:/*EOF*/
        -:        -:16024:/*EOF*/
        -:        -:16025:/*EOF*/
        -:        -:16026:/*EOF*/
        -:        -:16027:/*EOF*/
        -:        -:16028:/*EOF*/
        -:        -:16029:/*EOF*/
        -:        -:16030:/*EOF*/
        -:        -:16031:/*EOF*/
        -:        -:16032:/*EOF*/
        -:        -:16033:/*EOF*/
        -:        -:16034:/*EOF*/
        -:        -:16035:/*EOF*/
        -:        -:16036:/*EOF*/
        -:        -:16037:/*EOF*/
        -:        -:16038:/*EOF*/
        -:        -:16039:/*EOF*/
        -:        -:16040:/*EOF*/
        -:        -:16041:/*EOF*/
        -:        -:16042:/*EOF*/
        -:        -:16043:/*EOF*/
        -:        -:16044:/*EOF*/
        -:        -:16045:/*EOF*/
        -:        -:16046:/*EOF*/
        -:        -:16047:/*EOF*/
        -:        -:16048:/*EOF*/
        -:        -:16049:/*EOF*/
        -:        -:16050:/*EOF*/
        -:        -:16051:/*EOF*/
        -:        -:16052:/*EOF*/
        -:        -:16053:/*EOF*/
        -:        -:16054:/*EOF*/
        -:        -:16055:/*EOF*/
        -:        -:16056:/*EOF*/
        -:        -:16057:/*EOF*/
        -:        -:16058:/*EOF*/
        -:        -:16059:/*EOF*/
        -:        -:16060:/*EOF*/
        -:        -:16061:/*EOF*/
        -:        -:16062:/*EOF*/
        -:        -:16063:/*EOF*/
        -:        -:16064:/*EOF*/
        -:        -:16065:/*EOF*/
        -:        -:16066:/*EOF*/
        -:        -:16067:/*EOF*/
        -:        -:16068:/*EOF*/
        -:        -:16069:/*EOF*/
        -:        -:16070:/*EOF*/
        -:        -:16071:/*EOF*/
        -:        -:16072:/*EOF*/
        -:        -:16073:/*EOF*/
        -:        -:16074:/*EOF*/
        -:        -:16075:/*EOF*/
        -:        -:16076:/*EOF*/
        -:        -:16077:/*EOF*/
        -:        -:16078:/*EOF*/
        -:        -:16079:/*EOF*/
        -:        -:16080:/*EOF*/
        -:        -:16081:/*EOF*/
        -:        -:16082:/*EOF*/
        -:        -:16083:/*EOF*/
        -:        -:16084:/*EOF*/
        -:        -:16085:/*EOF*/
        -:        -:16086:/*EOF*/
        -:        -:16087:/*EOF*/
        -:        -:16088:/*EOF*/
        -:        -:16089:/*EOF*/
        -:        -:16090:/*EOF*/
        -:        -:16091:/*EOF*/
        -:        -:16092:/*EOF*/
        -:        -:16093:/*EOF*/
        -:        -:16094:/*EOF*/
        -:        -:16095:/*EOF*/
        -:        -:16096:/*EOF*/
        -:        -:16097:/*EOF*/
        -:        -:16098:/*EOF*/
        -:        -:16099:/*EOF*/
        -:        -:16100:/*EOF*/
        -:        -:16101:/*EOF*/
        -:        -:16102:/*EOF*/
        -:        -:16103:/*EOF*/
        -:        -:16104:/*EOF*/
        -:        -:16105:/*EOF*/
        -:        -:16106:/*EOF*/
        -:        -:16107:/*EOF*/
        -:        -:16108:/*EOF*/
        -:        -:16109:/*EOF*/
        -:        -:16110:/*EOF*/
        -:        -:16111:/*EOF*/
        -:        -:16112:/*EOF*/
        -:        -:16113:/*EOF*/
        -:        -:16114:/*EOF*/
        -:        -:16115:/*EOF*/
        -:        -:16116:/*EOF*/
        -:        -:16117:/*EOF*/
        -:        -:16118:/*EOF*/
        -:        -:16119:/*EOF*/
        -:        -:16120:/*EOF*/
        -:        -:16121:/*EOF*/
        -:        -:16122:/*EOF*/
        -:        -:16123:/*EOF*/
        -:        -:16124:/*EOF*/
        -:        -:16125:/*EOF*/
        -:        -:16126:/*EOF*/
        -:        -:16127:/*EOF*/
        -:        -:16128:/*EOF*/
        -:        -:16129:/*EOF*/
        -:        -:16130:/*EOF*/
        -:        -:16131:/*EOF*/
        -:        -:16132:/*EOF*/
        -:        -:16133:/*EOF*/
        -:        -:16134:/*EOF*/
        -:        -:16135:/*EOF*/
        -:        -:16136:/*EOF*/
        -:        -:16137:/*EOF*/
        -:        -:16138:/*EOF*/
        -:        -:16139:/*EOF*/
        -:        -:16140:/*EOF*/
        -:        -:16141:/*EOF*/
        -:        -:16142:/*EOF*/
        -:        -:16143:/*EOF*/
        -:        -:16144:/*EOF*/
        -:        -:16145:/*EOF*/
        -:        -:16146:/*EOF*/
        -:        -:16147:/*EOF*/
        -:        -:16148:/*EOF*/
        -:        -:16149:/*EOF*/
        -:        -:16150:/*EOF*/
        -:        -:16151:/*EOF*/
        -:        -:16152:/*EOF*/
        -:        -:16153:/*EOF*/
        -:        -:16154:/*EOF*/
        -:        -:16155:/*EOF*/
        -:        -:16156:/*EOF*/
        -:        -:16157:/*EOF*/
        -:        -:16158:/*EOF*/
        -:        -:16159:/*EOF*/
        -:        -:16160:/*EOF*/
        -:        -:16161:/*EOF*/
        -:        -:16162:/*EOF*/
        -:        -:16163:/*EOF*/
        -:        -:16164:/*EOF*/
        -:        -:16165:/*EOF*/
        -:        -:16166:/*EOF*/
        -:        -:16167:/*EOF*/
        -:        -:16168:/*EOF*/
        -:        -:16169:/*EOF*/
        -:        -:16170:/*EOF*/
        -:        -:16171:/*EOF*/
        -:        -:16172:/*EOF*/
        -:        -:16173:/*EOF*/
        -:        -:16174:/*EOF*/
        -:        -:16175:/*EOF*/
        -:        -:16176:/*EOF*/
        -:        -:16177:/*EOF*/
        -:        -:16178:/*EOF*/
        -:        -:16179:/*EOF*/
        -:        -:16180:/*EOF*/
        -:        -:16181:/*EOF*/
        -:        -:16182:/*EOF*/
        -:        -:16183:/*EOF*/
        -:        -:16184:/*EOF*/
        -:        -:16185:/*EOF*/
        -:        -:16186:/*EOF*/
        -:        -:16187:/*EOF*/
        -:        -:16188:/*EOF*/
        -:        -:16189:/*EOF*/
        -:        -:16190:/*EOF*/
        -:        -:16191:/*EOF*/
        -:        -:16192:/*EOF*/
        -:        -:16193:/*EOF*/
        -:        -:16194:/*EOF*/
        -:        -:16195:/*EOF*/
        -:        -:16196:/*EOF*/
        -:        -:16197:/*EOF*/
        -:        -:16198:/*EOF*/
        -:        -:16199:/*EOF*/
        -:        -:16200:/*EOF*/
        -:        -:16201:/*EOF*/
        -:        -:16202:/*EOF*/
        -:        -:16203:/*EOF*/
        -:        -:16204:/*EOF*/
        -:        -:16205:/*EOF*/
        -:        -:16206:/*EOF*/
        -:        -:16207:/*EOF*/
        -:        -:16208:/*EOF*/
        -:        -:16209:/*EOF*/
        -:        -:16210:/*EOF*/
        -:        -:16211:/*EOF*/
        -:        -:16212:/*EOF*/
        -:        -:16213:/*EOF*/
        -:        -:16214:/*EOF*/
        -:        -:16215:/*EOF*/
        -:        -:16216:/*EOF*/
        -:        -:16217:/*EOF*/
        -:        -:16218:/*EOF*/
        -:        -:16219:/*EOF*/
        -:        -:16220:/*EOF*/
        -:        -:16221:/*EOF*/
        -:        -:16222:/*EOF*/
        -:        -:16223:/*EOF*/
        -:        -:16224:/*EOF*/
        -:        -:16225:/*EOF*/
        -:        -:16226:/*EOF*/
        -:        -:16227:/*EOF*/
        -:        -:16228:/*EOF*/
        -:        -:16229:/*EOF*/
        -:        -:16230:/*EOF*/
        -:        -:16231:/*EOF*/
        -:        -:16232:/*EOF*/
        -:        -:16233:/*EOF*/
        -:        -:16234:/*EOF*/
        -:        -:16235:/*EOF*/
        -:        -:16236:/*EOF*/
        -:        -:16237:/*EOF*/
        -:        -:16238:/*EOF*/
        -:        -:16239:/*EOF*/
        -:        -:16240:/*EOF*/
        -:        -:16241:/*EOF*/
        -:        -:16242:/*EOF*/
        -:        -:16243:/*EOF*/
        -:        -:16244:/*EOF*/
        -:        -:16245:/*EOF*/
        -:        -:16246:/*EOF*/
        -:        -:16247:/*EOF*/
        -:        -:16248:/*EOF*/
        -:        -:16249:/*EOF*/
        -:        -:16250:/*EOF*/
        -:        -:16251:/*EOF*/
        -:        -:16252:/*EOF*/
        -:        -:16253:/*EOF*/
        -:        -:16254:/*EOF*/
        -:        -:16255:/*EOF*/
        -:        -:16256:/*EOF*/
        -:        -:16257:/*EOF*/
        -:        -:16258:/*EOF*/
        -:        -:16259:/*EOF*/
        -:        -:16260:/*EOF*/
        -:        -:16261:/*EOF*/
        -:        -:16262:/*EOF*/
        -:        -:16263:/*EOF*/
        -:        -:16264:/*EOF*/
        -:        -:16265:/*EOF*/
        -:        -:16266:/*EOF*/
        -:        -:16267:/*EOF*/
        -:        -:16268:/*EOF*/
        -:        -:16269:/*EOF*/
        -:        -:16270:/*EOF*/
        -:        -:16271:/*EOF*/
        -:        -:16272:/*EOF*/
        -:        -:16273:/*EOF*/
        -:        -:16274:/*EOF*/
        -:        -:16275:/*EOF*/
        -:        -:16276:/*EOF*/
        -:        -:16277:/*EOF*/
        -:        -:16278:/*EOF*/
        -:        -:16279:/*EOF*/
        -:        -:16280:/*EOF*/
        -:        -:16281:/*EOF*/
        -:        -:16282:/*EOF*/
        -:        -:16283:/*EOF*/
        -:        -:16284:/*EOF*/
        -:        -:16285:/*EOF*/
        -:        -:16286:/*EOF*/
        -:        -:16287:/*EOF*/
        -:        -:16288:/*EOF*/
        -:        -:16289:/*EOF*/
        -:        -:16290:/*EOF*/
        -:        -:16291:/*EOF*/
        -:        -:16292:/*EOF*/
        -:        -:16293:/*EOF*/
        -:        -:16294:/*EOF*/
        -:        -:16295:/*EOF*/
        -:        -:16296:/*EOF*/
        -:        -:16297:/*EOF*/
        -:        -:16298:/*EOF*/
        -:        -:16299:/*EOF*/
        -:        -:16300:/*EOF*/
        -:        -:16301:/*EOF*/
        -:        -:16302:/*EOF*/
        -:        -:16303:/*EOF*/
        -:        -:16304:/*EOF*/
        -:        -:16305:/*EOF*/
        -:        -:16306:/*EOF*/
        -:        -:16307:/*EOF*/
        -:        -:16308:/*EOF*/
        -:        -:16309:/*EOF*/
        -:        -:16310:/*EOF*/
        -:        -:16311:/*EOF*/
        -:        -:16312:/*EOF*/
        -:        -:16313:/*EOF*/
        -:        -:16314:/*EOF*/
        -:        -:16315:/*EOF*/
        -:        -:16316:/*EOF*/
        -:        -:16317:/*EOF*/
        -:        -:16318:/*EOF*/
        -:        -:16319:/*EOF*/
        -:        -:16320:/*EOF*/
        -:        -:16321:/*EOF*/
        -:        -:16322:/*EOF*/
        -:        -:16323:/*EOF*/
        -:        -:16324:/*EOF*/
        -:        -:16325:/*EOF*/
        -:        -:16326:/*EOF*/
        -:        -:16327:/*EOF*/
        -:        -:16328:/*EOF*/
        -:        -:16329:/*EOF*/
        -:        -:16330:/*EOF*/
        -:        -:16331:/*EOF*/
        -:        -:16332:/*EOF*/
        -:        -:16333:/*EOF*/
        -:        -:16334:/*EOF*/
        -:        -:16335:/*EOF*/
        -:        -:16336:/*EOF*/
        -:        -:16337:/*EOF*/
        -:        -:16338:/*EOF*/
        -:        -:16339:/*EOF*/
        -:        -:16340:/*EOF*/
        -:        -:16341:/*EOF*/
        -:        -:16342:/*EOF*/
        -:        -:16343:/*EOF*/
        -:        -:16344:/*EOF*/
        -:        -:16345:/*EOF*/
        -:        -:16346:/*EOF*/
        -:        -:16347:/*EOF*/
        -:        -:16348:/*EOF*/
        -:        -:16349:/*EOF*/
        -:        -:16350:/*EOF*/
        -:        -:16351:/*EOF*/
        -:        -:16352:/*EOF*/
        -:        -:16353:/*EOF*/
        -:        -:16354:/*EOF*/
        -:        -:16355:/*EOF*/
        -:        -:16356:/*EOF*/
        -:        -:16357:/*EOF*/
        -:        -:16358:/*EOF*/
        -:        -:16359:/*EOF*/
        -:        -:16360:/*EOF*/
        -:        -:16361:/*EOF*/
        -:        -:16362:/*EOF*/
        -:        -:16363:/*EOF*/
        -:        -:16364:/*EOF*/
        -:        -:16365:/*EOF*/
        -:        -:16366:/*EOF*/
        -:        -:16367:/*EOF*/
        -:        -:16368:/*EOF*/
        -:        -:16369:/*EOF*/
        -:        -:16370:/*EOF*/
        -:        -:16371:/*EOF*/
        -:        -:16372:/*EOF*/
        -:        -:16373:/*EOF*/
        -:        -:16374:/*EOF*/
        -:        -:16375:/*EOF*/
        -:        -:16376:/*EOF*/
        -:        -:16377:/*EOF*/
        -:        -:16378:/*EOF*/
        -:        -:16379:/*EOF*/
        -:        -:16380:/*EOF*/
        -:        -:16381:/*EOF*/
        -:        -:16382:/*EOF*/
        -:        -:16383:/*EOF*/
        -:        -:16384:/*EOF*/
        -:        -:16385:/*EOF*/
        -:        -:16386:/*EOF*/
        -:        -:16387:/*EOF*/
        -:        -:16388:/*EOF*/
        -:        -:16389:/*EOF*/
        -:        -:16390:/*EOF*/
        -:        -:16391:/*EOF*/
        -:        -:16392:/*EOF*/
        -:        -:16393:/*EOF*/
        -:        -:16394:/*EOF*/
        -:        -:16395:/*EOF*/
        -:        -:16396:/*EOF*/
        -:        -:16397:/*EOF*/
        -:        -:16398:/*EOF*/
        -:        -:16399:/*EOF*/
        -:        -:16400:/*EOF*/
        -:        -:16401:/*EOF*/
        -:        -:16402:/*EOF*/
        -:        -:16403:/*EOF*/
        -:        -:16404:/*EOF*/
        -:        -:16405:/*EOF*/
        -:        -:16406:/*EOF*/
        -:        -:16407:/*EOF*/
        -:        -:16408:/*EOF*/
        -:        -:16409:/*EOF*/
        -:        -:16410:/*EOF*/
        -:        -:16411:/*EOF*/
        -:        -:16412:/*EOF*/
        -:        -:16413:/*EOF*/
        -:        -:16414:/*EOF*/
        -:        -:16415:/*EOF*/
        -:        -:16416:/*EOF*/
        -:        -:16417:/*EOF*/
        -:        -:16418:/*EOF*/
        -:        -:16419:/*EOF*/
        -:        -:16420:/*EOF*/
        -:        -:16421:/*EOF*/
        -:        -:16422:/*EOF*/
        -:        -:16423:/*EOF*/
        -:        -:16424:/*EOF*/
        -:        -:16425:/*EOF*/
        -:        -:16426:/*EOF*/
        -:        -:16427:/*EOF*/
        -:        -:16428:/*EOF*/
        -:        -:16429:/*EOF*/
        -:        -:16430:/*EOF*/
        -:        -:16431:/*EOF*/
        -:        -:16432:/*EOF*/
        -:        -:16433:/*EOF*/
        -:        -:16434:/*EOF*/
        -:        -:16435:/*EOF*/
        -:        -:16436:/*EOF*/
        -:        -:16437:/*EOF*/
        -:        -:16438:/*EOF*/
        -:        -:16439:/*EOF*/
        -:        -:16440:/*EOF*/
        -:        -:16441:/*EOF*/
        -:        -:16442:/*EOF*/
        -:        -:16443:/*EOF*/
        -:        -:16444:/*EOF*/
        -:        -:16445:/*EOF*/
        -:        -:16446:/*EOF*/
        -:        -:16447:/*EOF*/
        -:        -:16448:/*EOF*/
        -:        -:16449:/*EOF*/
        -:        -:16450:/*EOF*/
        -:        -:16451:/*EOF*/
        -:        -:16452:/*EOF*/
        -:        -:16453:/*EOF*/
        -:        -:16454:/*EOF*/
        -:        -:16455:/*EOF*/
        -:        -:16456:/*EOF*/
        -:        -:16457:/*EOF*/
        -:        -:16458:/*EOF*/
        -:        -:16459:/*EOF*/
        -:        -:16460:/*EOF*/
        -:        -:16461:/*EOF*/
        -:        -:16462:/*EOF*/
        -:        -:16463:/*EOF*/
        -:        -:16464:/*EOF*/
        -:        -:16465:/*EOF*/
        -:        -:16466:/*EOF*/
        -:        -:16467:/*EOF*/
        -:        -:16468:/*EOF*/
        -:        -:16469:/*EOF*/
        -:        -:16470:/*EOF*/
        -:        -:16471:/*EOF*/
        -:        -:16472:/*EOF*/
        -:        -:16473:/*EOF*/
        -:        -:16474:/*EOF*/
        -:        -:16475:/*EOF*/
        -:        -:16476:/*EOF*/
        -:        -:16477:/*EOF*/
        -:        -:16478:/*EOF*/
        -:        -:16479:/*EOF*/
        -:        -:16480:/*EOF*/
        -:        -:16481:/*EOF*/
        -:        -:16482:/*EOF*/
        -:        -:16483:/*EOF*/
        -:        -:16484:/*EOF*/
        -:        -:16485:/*EOF*/
        -:        -:16486:/*EOF*/
        -:        -:16487:/*EOF*/
        -:        -:16488:/*EOF*/
        -:        -:16489:/*EOF*/
        -:        -:16490:/*EOF*/
        -:        -:16491:/*EOF*/
        -:        -:16492:/*EOF*/
        -:        -:16493:/*EOF*/
        -:        -:16494:/*EOF*/
        -:        -:16495:/*EOF*/
        -:        -:16496:/*EOF*/
        -:        -:16497:/*EOF*/
        -:        -:16498:/*EOF*/
        -:        -:16499:/*EOF*/
        -:        -:16500:/*EOF*/
        -:        -:16501:/*EOF*/
        -:        -:16502:/*EOF*/
        -:        -:16503:/*EOF*/
        -:        -:16504:/*EOF*/
        -:        -:16505:/*EOF*/
        -:        -:16506:/*EOF*/
        -:        -:16507:/*EOF*/
        -:        -:16508:/*EOF*/
        -:        -:16509:/*EOF*/
        -:        -:16510:/*EOF*/
        -:        -:16511:/*EOF*/
        -:        -:16512:/*EOF*/
        -:        -:16513:/*EOF*/
        -:        -:16514:/*EOF*/
        -:        -:16515:/*EOF*/
        -:        -:16516:/*EOF*/
        -:        -:16517:/*EOF*/
        -:        -:16518:/*EOF*/
        -:        -:16519:/*EOF*/
        -:        -:16520:/*EOF*/
        -:        -:16521:/*EOF*/
        -:        -:16522:/*EOF*/
        -:        -:16523:/*EOF*/
        -:        -:16524:/*EOF*/
        -:        -:16525:/*EOF*/
        -:        -:16526:/*EOF*/
        -:        -:16527:/*EOF*/
        -:        -:16528:/*EOF*/
        -:        -:16529:/*EOF*/
        -:        -:16530:/*EOF*/
        -:        -:16531:/*EOF*/
        -:        -:16532:/*EOF*/
        -:        -:16533:/*EOF*/
        -:        -:16534:/*EOF*/
        -:        -:16535:/*EOF*/
        -:        -:16536:/*EOF*/
        -:        -:16537:/*EOF*/
        -:        -:16538:/*EOF*/
        -:        -:16539:/*EOF*/
        -:        -:16540:/*EOF*/
        -:        -:16541:/*EOF*/
        -:        -:16542:/*EOF*/
        -:        -:16543:/*EOF*/
        -:        -:16544:/*EOF*/
        -:        -:16545:/*EOF*/
        -:        -:16546:/*EOF*/
        -:        -:16547:/*EOF*/
        -:        -:16548:/*EOF*/
        -:        -:16549:/*EOF*/
        -:        -:16550:/*EOF*/
        -:        -:16551:/*EOF*/
        -:        -:16552:/*EOF*/
        -:        -:16553:/*EOF*/
        -:        -:16554:/*EOF*/
        -:        -:16555:/*EOF*/
        -:        -:16556:/*EOF*/
        -:        -:16557:/*EOF*/
        -:        -:16558:/*EOF*/
        -:        -:16559:/*EOF*/
        -:        -:16560:/*EOF*/
        -:        -:16561:/*EOF*/
        -:        -:16562:/*EOF*/
        -:        -:16563:/*EOF*/
        -:        -:16564:/*EOF*/
        -:        -:16565:/*EOF*/
        -:        -:16566:/*EOF*/
        -:        -:16567:/*EOF*/
        -:        -:16568:/*EOF*/
        -:        -:16569:/*EOF*/
        -:        -:16570:/*EOF*/
        -:        -:16571:/*EOF*/
        -:        -:16572:/*EOF*/
        -:        -:16573:/*EOF*/
        -:        -:16574:/*EOF*/
        -:        -:16575:/*EOF*/
        -:        -:16576:/*EOF*/
        -:        -:16577:/*EOF*/
        -:        -:16578:/*EOF*/
        -:        -:16579:/*EOF*/
        -:        -:16580:/*EOF*/
        -:        -:16581:/*EOF*/
        -:        -:16582:/*EOF*/
        -:        -:16583:/*EOF*/
        -:        -:16584:/*EOF*/
        -:        -:16585:/*EOF*/
        -:        -:16586:/*EOF*/
        -:        -:16587:/*EOF*/
        -:        -:16588:/*EOF*/
        -:        -:16589:/*EOF*/
        -:        -:16590:/*EOF*/
        -:        -:16591:/*EOF*/
        -:        -:16592:/*EOF*/
        -:        -:16593:/*EOF*/
        -:        -:16594:/*EOF*/
        -:        -:16595:/*EOF*/
        -:        -:16596:/*EOF*/
        -:        -:16597:/*EOF*/
        -:        -:16598:/*EOF*/
        -:        -:16599:/*EOF*/
        -:        -:16600:/*EOF*/
        -:        -:16601:/*EOF*/
        -:        -:16602:/*EOF*/
        -:        -:16603:/*EOF*/
        -:        -:16604:/*EOF*/
        -:        -:16605:/*EOF*/
        -:        -:16606:/*EOF*/
        -:        -:16607:/*EOF*/
        -:        -:16608:/*EOF*/
        -:        -:16609:/*EOF*/
        -:        -:16610:/*EOF*/
        -:        -:16611:/*EOF*/
        -:        -:16612:/*EOF*/
        -:        -:16613:/*EOF*/
        -:        -:16614:/*EOF*/
        -:        -:16615:/*EOF*/
        -:        -:16616:/*EOF*/
        -:        -:16617:/*EOF*/
        -:        -:16618:/*EOF*/
        -:        -:16619:/*EOF*/
        -:        -:16620:/*EOF*/
        -:        -:16621:/*EOF*/
        -:        -:16622:/*EOF*/
        -:        -:16623:/*EOF*/
        -:        -:16624:/*EOF*/
        -:        -:16625:/*EOF*/
        -:        -:16626:/*EOF*/
        -:        -:16627:/*EOF*/
        -:        -:16628:/*EOF*/
        -:        -:16629:/*EOF*/
        -:        -:16630:/*EOF*/
        -:        -:16631:/*EOF*/
        -:        -:16632:/*EOF*/
        -:        -:16633:/*EOF*/
        -:        -:16634:/*EOF*/
        -:        -:16635:/*EOF*/
        -:        -:16636:/*EOF*/
        -:        -:16637:/*EOF*/
        -:        -:16638:/*EOF*/
        -:        -:16639:/*EOF*/
        -:        -:16640:/*EOF*/
        -:        -:16641:/*EOF*/
        -:        -:16642:/*EOF*/
        -:        -:16643:/*EOF*/
        -:        -:16644:/*EOF*/
        -:        -:16645:/*EOF*/
        -:        -:16646:/*EOF*/
        -:        -:16647:/*EOF*/
        -:        -:16648:/*EOF*/
        -:        -:16649:/*EOF*/
        -:        -:16650:/*EOF*/
        -:        -:16651:/*EOF*/
        -:        -:16652:/*EOF*/
        -:        -:16653:/*EOF*/
        -:        -:16654:/*EOF*/
        -:        -:16655:/*EOF*/
        -:        -:16656:/*EOF*/
        -:        -:16657:/*EOF*/
        -:        -:16658:/*EOF*/
        -:        -:16659:/*EOF*/
        -:        -:16660:/*EOF*/
        -:        -:16661:/*EOF*/
        -:        -:16662:/*EOF*/
        -:        -:16663:/*EOF*/
        -:        -:16664:/*EOF*/
        -:        -:16665:/*EOF*/
        -:        -:16666:/*EOF*/
        -:        -:16667:/*EOF*/
        -:        -:16668:/*EOF*/
        -:        -:16669:/*EOF*/
        -:        -:16670:/*EOF*/
        -:        -:16671:/*EOF*/
        -:        -:16672:/*EOF*/
        -:        -:16673:/*EOF*/
        -:        -:16674:/*EOF*/
        -:        -:16675:/*EOF*/
        -:        -:16676:/*EOF*/
        -:        -:16677:/*EOF*/
        -:        -:16678:/*EOF*/
        -:        -:16679:/*EOF*/
        -:        -:16680:/*EOF*/
        -:        -:16681:/*EOF*/
        -:        -:16682:/*EOF*/
        -:        -:16683:/*EOF*/
        -:        -:16684:/*EOF*/
        -:        -:16685:/*EOF*/
        -:        -:16686:/*EOF*/
        -:        -:16687:/*EOF*/
        -:        -:16688:/*EOF*/
        -:        -:16689:/*EOF*/
        -:        -:16690:/*EOF*/
        -:        -:16691:/*EOF*/
        -:        -:16692:/*EOF*/
        -:        -:16693:/*EOF*/
        -:        -:16694:/*EOF*/
        -:        -:16695:/*EOF*/
        -:        -:16696:/*EOF*/
        -:        -:16697:/*EOF*/
        -:        -:16698:/*EOF*/
        -:        -:16699:/*EOF*/
        -:        -:16700:/*EOF*/
        -:        -:16701:/*EOF*/
        -:        -:16702:/*EOF*/
        -:        -:16703:/*EOF*/
        -:        -:16704:/*EOF*/
        -:        -:16705:/*EOF*/
        -:        -:16706:/*EOF*/
        -:        -:16707:/*EOF*/
        -:        -:16708:/*EOF*/
        -:        -:16709:/*EOF*/
        -:        -:16710:/*EOF*/
        -:        -:16711:/*EOF*/
        -:        -:16712:/*EOF*/
        -:        -:16713:/*EOF*/
        -:        -:16714:/*EOF*/
        -:        -:16715:/*EOF*/
        -:        -:16716:/*EOF*/
        -:        -:16717:/*EOF*/
        -:        -:16718:/*EOF*/
        -:        -:16719:/*EOF*/
        -:        -:16720:/*EOF*/
        -:        -:16721:/*EOF*/
        -:        -:16722:/*EOF*/
        -:        -:16723:/*EOF*/
        -:        -:16724:/*EOF*/
        -:        -:16725:/*EOF*/
        -:        -:16726:/*EOF*/
        -:        -:16727:/*EOF*/
        -:        -:16728:/*EOF*/
        -:        -:16729:/*EOF*/
        -:        -:16730:/*EOF*/
        -:        -:16731:/*EOF*/
        -:        -:16732:/*EOF*/
        -:        -:16733:/*EOF*/
        -:        -:16734:/*EOF*/
        -:        -:16735:/*EOF*/
        -:        -:16736:/*EOF*/
        -:        -:16737:/*EOF*/
        -:        -:16738:/*EOF*/
        -:        -:16739:/*EOF*/
        -:        -:16740:/*EOF*/
        -:        -:16741:/*EOF*/
        -:        -:16742:/*EOF*/
        -:        -:16743:/*EOF*/
        -:        -:16744:/*EOF*/
        -:        -:16745:/*EOF*/
        -:        -:16746:/*EOF*/
        -:        -:16747:/*EOF*/
        -:        -:16748:/*EOF*/
        -:        -:16749:/*EOF*/
        -:        -:16750:/*EOF*/
        -:        -:16751:/*EOF*/
        -:        -:16752:/*EOF*/
        -:        -:16753:/*EOF*/
        -:        -:16754:/*EOF*/
        -:        -:16755:/*EOF*/
        -:        -:16756:/*EOF*/
        -:        -:16757:/*EOF*/
        -:        -:16758:/*EOF*/
        -:        -:16759:/*EOF*/
        -:        -:16760:/*EOF*/
        -:        -:16761:/*EOF*/
        -:        -:16762:/*EOF*/
        -:        -:16763:/*EOF*/
        -:        -:16764:/*EOF*/
        -:        -:16765:/*EOF*/
        -:        -:16766:/*EOF*/
        -:        -:16767:/*EOF*/
        -:        -:16768:/*EOF*/
        -:        -:16769:/*EOF*/
        -:        -:16770:/*EOF*/
        -:        -:16771:/*EOF*/
        -:        -:16772:/*EOF*/
        -:        -:16773:/*EOF*/
        -:        -:16774:/*EOF*/
        -:        -:16775:/*EOF*/
        -:        -:16776:/*EOF*/
        -:        -:16777:/*EOF*/
        -:        -:16778:/*EOF*/
        -:        -:16779:/*EOF*/
        -:        -:16780:/*EOF*/
        -:        -:16781:/*EOF*/
        -:        -:16782:/*EOF*/
        -:        -:16783:/*EOF*/
        -:        -:16784:/*EOF*/
        -:        -:16785:/*EOF*/
        -:        -:16786:/*EOF*/
        -:        -:16787:/*EOF*/
        -:        -:16788:/*EOF*/
        -:        -:16789:/*EOF*/
        -:        -:16790:/*EOF*/
        -:        -:16791:/*EOF*/
        -:        -:16792:/*EOF*/
        -:        -:16793:/*EOF*/
        -:        -:16794:/*EOF*/
        -:        -:16795:/*EOF*/
        -:        -:16796:/*EOF*/
        -:        -:16797:/*EOF*/
        -:        -:16798:/*EOF*/
        -:        -:16799:/*EOF*/
        -:        -:16800:/*EOF*/
        -:        -:16801:/*EOF*/
        -:        -:16802:/*EOF*/
        -:        -:16803:/*EOF*/
        -:        -:16804:/*EOF*/
        -:        -:16805:/*EOF*/
        -:        -:16806:/*EOF*/
        -:        -:16807:/*EOF*/
        -:        -:16808:/*EOF*/
        -:        -:16809:/*EOF*/
        -:        -:16810:/*EOF*/
        -:        -:16811:/*EOF*/
        -:        -:16812:/*EOF*/
        -:        -:16813:/*EOF*/
        -:        -:16814:/*EOF*/
        -:        -:16815:/*EOF*/
        -:        -:16816:/*EOF*/
        -:        -:16817:/*EOF*/
        -:        -:16818:/*EOF*/
        -:        -:16819:/*EOF*/
        -:        -:16820:/*EOF*/
        -:        -:16821:/*EOF*/
        -:        -:16822:/*EOF*/
        -:        -:16823:/*EOF*/
        -:        -:16824:/*EOF*/
        -:        -:16825:/*EOF*/
        -:        -:16826:/*EOF*/
        -:        -:16827:/*EOF*/
        -:        -:16828:/*EOF*/
        -:        -:16829:/*EOF*/
        -:        -:16830:/*EOF*/
        -:        -:16831:/*EOF*/
        -:        -:16832:/*EOF*/
        -:        -:16833:/*EOF*/
        -:        -:16834:/*EOF*/
        -:        -:16835:/*EOF*/
        -:        -:16836:/*EOF*/
        -:        -:16837:/*EOF*/
        -:        -:16838:/*EOF*/
        -:        -:16839:/*EOF*/
        -:        -:16840:/*EOF*/
        -:        -:16841:/*EOF*/
        -:        -:16842:/*EOF*/
        -:        -:16843:/*EOF*/
        -:        -:16844:/*EOF*/
        -:        -:16845:/*EOF*/
        -:        -:16846:/*EOF*/
        -:        -:16847:/*EOF*/
        -:        -:16848:/*EOF*/
        -:        -:16849:/*EOF*/
        -:        -:16850:/*EOF*/
        -:        -:16851:/*EOF*/
        -:        -:16852:/*EOF*/
        -:        -:16853:/*EOF*/
        -:        -:16854:/*EOF*/
        -:        -:16855:/*EOF*/
        -:        -:16856:/*EOF*/
        -:        -:16857:/*EOF*/
        -:        -:16858:/*EOF*/
        -:        -:16859:/*EOF*/
        -:        -:16860:/*EOF*/
        -:        -:16861:/*EOF*/
        -:        -:16862:/*EOF*/
        -:        -:16863:/*EOF*/
        -:        -:16864:/*EOF*/
        -:        -:16865:/*EOF*/
        -:        -:16866:/*EOF*/
        -:        -:16867:/*EOF*/
        -:        -:16868:/*EOF*/
        -:        -:16869:/*EOF*/
        -:        -:16870:/*EOF*/
        -:        -:16871:/*EOF*/
        -:        -:16872:/*EOF*/
        -:        -:16873:/*EOF*/
        -:        -:16874:/*EOF*/
        -:        -:16875:/*EOF*/
        -:        -:16876:/*EOF*/
        -:        -:16877:/*EOF*/
        -:        -:16878:/*EOF*/
        -:        -:16879:/*EOF*/
        -:        -:16880:/*EOF*/
        -:        -:16881:/*EOF*/
        -:        -:16882:/*EOF*/
        -:        -:16883:/*EOF*/
        -:        -:16884:/*EOF*/
        -:        -:16885:/*EOF*/
        -:        -:16886:/*EOF*/
        -:        -:16887:/*EOF*/
        -:        -:16888:/*EOF*/
        -:        -:16889:/*EOF*/
        -:        -:16890:/*EOF*/
        -:        -:16891:/*EOF*/
        -:        -:16892:/*EOF*/
        -:        -:16893:/*EOF*/
        -:        -:16894:/*EOF*/
        -:        -:16895:/*EOF*/
        -:        -:16896:/*EOF*/
        -:        -:16897:/*EOF*/
        -:        -:16898:/*EOF*/
        -:        -:16899:/*EOF*/
        -:        -:16900:/*EOF*/
        -:        -:16901:/*EOF*/
        -:        -:16902:/*EOF*/
        -:        -:16903:/*EOF*/
        -:        -:16904:/*EOF*/
        -:        -:16905:/*EOF*/
        -:        -:16906:/*EOF*/
        -:        -:16907:/*EOF*/
        -:        -:16908:/*EOF*/
        -:        -:16909:/*EOF*/
        -:        -:16910:/*EOF*/
        -:        -:16911:/*EOF*/
        -:        -:16912:/*EOF*/
        -:        -:16913:/*EOF*/
        -:        -:16914:/*EOF*/
        -:        -:16915:/*EOF*/
        -:        -:16916:/*EOF*/
        -:        -:16917:/*EOF*/
        -:        -:16918:/*EOF*/
        -:        -:16919:/*EOF*/
        -:        -:16920:/*EOF*/
        -:        -:16921:/*EOF*/
        -:        -:16922:/*EOF*/
        -:        -:16923:/*EOF*/
        -:        -:16924:/*EOF*/
        -:        -:16925:/*EOF*/
        -:        -:16926:/*EOF*/
        -:        -:16927:/*EOF*/
        -:        -:16928:/*EOF*/
        -:        -:16929:/*EOF*/
        -:        -:16930:/*EOF*/
        -:        -:16931:/*EOF*/
        -:        -:16932:/*EOF*/
        -:        -:16933:/*EOF*/
        -:        -:16934:/*EOF*/
        -:        -:16935:/*EOF*/
        -:        -:16936:/*EOF*/
        -:        -:16937:/*EOF*/
        -:        -:16938:/*EOF*/
        -:        -:16939:/*EOF*/
        -:        -:16940:/*EOF*/
        -:        -:16941:/*EOF*/
        -:        -:16942:/*EOF*/
        -:        -:16943:/*EOF*/
        -:        -:16944:/*EOF*/
        -:        -:16945:/*EOF*/
        -:        -:16946:/*EOF*/
        -:        -:16947:/*EOF*/
        -:        -:16948:/*EOF*/
        -:        -:16949:/*EOF*/
        -:        -:16950:/*EOF*/
        -:        -:16951:/*EOF*/
        -:        -:16952:/*EOF*/
        -:        -:16953:/*EOF*/
        -:        -:16954:/*EOF*/
        -:        -:16955:/*EOF*/
        -:        -:16956:/*EOF*/
        -:        -:16957:/*EOF*/
        -:        -:16958:/*EOF*/
        -:        -:16959:/*EOF*/
        -:        -:16960:/*EOF*/
        -:        -:16961:/*EOF*/
        -:        -:16962:/*EOF*/
        -:        -:16963:/*EOF*/
        -:        -:16964:/*EOF*/
        -:        -:16965:/*EOF*/
        -:        -:16966:/*EOF*/
        -:        -:16967:/*EOF*/
        -:        -:16968:/*EOF*/
        -:        -:16969:/*EOF*/
        -:        -:16970:/*EOF*/
        -:        -:16971:/*EOF*/
        -:        -:16972:/*EOF*/
        -:        -:16973:/*EOF*/
        -:        -:16974:/*EOF*/
        -:        -:16975:/*EOF*/
        -:        -:16976:/*EOF*/
        -:        -:16977:/*EOF*/
        -:        -:16978:/*EOF*/
        -:        -:16979:/*EOF*/
        -:        -:16980:/*EOF*/
        -:        -:16981:/*EOF*/
        -:        -:16982:/*EOF*/
        -:        -:16983:/*EOF*/
        -:        -:16984:/*EOF*/
        -:        -:16985:/*EOF*/
        -:        -:16986:/*EOF*/
        -:        -:16987:/*EOF*/
        -:        -:16988:/*EOF*/
        -:        -:16989:/*EOF*/
        -:        -:16990:/*EOF*/
        -:        -:16991:/*EOF*/
        -:        -:16992:/*EOF*/
        -:        -:16993:/*EOF*/
        -:        -:16994:/*EOF*/
        -:        -:16995:/*EOF*/
        -:        -:16996:/*EOF*/
        -:        -:16997:/*EOF*/
        -:        -:16998:/*EOF*/
        -:        -:16999:/*EOF*/
        -:        -:17000:/*EOF*/
        -:        -:17001:/*EOF*/
        -:        -:17002:/*EOF*/
        -:        -:17003:/*EOF*/
        -:        -:17004:/*EOF*/
        -:        -:17005:/*EOF*/
        -:        -:17006:/*EOF*/
        -:        -:17007:/*EOF*/
        -:        -:17008:/*EOF*/
        -:        -:17009:/*EOF*/
        -:        -:17010:/*EOF*/
        -:        -:17011:/*EOF*/
        -:        -:17012:/*EOF*/
        -:        -:17013:/*EOF*/
        -:        -:17014:/*EOF*/
        -:        -:17015:/*EOF*/
        -:        -:17016:/*EOF*/
        -:        -:17017:/*EOF*/
        -:        -:17018:/*EOF*/
        -:        -:17019:/*EOF*/
        -:        -:17020:/*EOF*/
        -:        -:17021:/*EOF*/
        -:        -:17022:/*EOF*/
        -:        -:17023:/*EOF*/
        -:        -:17024:/*EOF*/
        -:        -:17025:/*EOF*/
        -:        -:17026:/*EOF*/
        -:        -:17027:/*EOF*/
        -:        -:17028:/*EOF*/
        -:        -:17029:/*EOF*/
        -:        -:17030:/*EOF*/
        -:        -:17031:/*EOF*/
        -:        -:17032:/*EOF*/
        -:        -:17033:/*EOF*/
        -:        -:17034:/*EOF*/
        -:        -:17035:/*EOF*/
        -:        -:17036:/*EOF*/
        -:        -:17037:/*EOF*/
        -:        -:17038:/*EOF*/
        -:        -:17039:/*EOF*/
        -:        -:17040:/*EOF*/
        -:        -:17041:/*EOF*/
        -:        -:17042:/*EOF*/
        -:        -:17043:/*EOF*/
        -:        -:17044:/*EOF*/
        -:        -:17045:/*EOF*/
        -:        -:17046:/*EOF*/
        -:        -:17047:/*EOF*/
        -:        -:17048:/*EOF*/
        -:        -:17049:/*EOF*/
        -:        -:17050:/*EOF*/
        -:        -:17051:/*EOF*/
        -:        -:17052:/*EOF*/
        -:        -:17053:/*EOF*/
        -:        -:17054:/*EOF*/
        -:        -:17055:/*EOF*/
        -:        -:17056:/*EOF*/
        -:        -:17057:/*EOF*/
        -:        -:17058:/*EOF*/
        -:        -:17059:/*EOF*/
        -:        -:17060:/*EOF*/
        -:        -:17061:/*EOF*/
        -:        -:17062:/*EOF*/
        -:        -:17063:/*EOF*/
        -:        -:17064:/*EOF*/
        -:        -:17065:/*EOF*/
        -:        -:17066:/*EOF*/
        -:        -:17067:/*EOF*/
        -:        -:17068:/*EOF*/
        -:        -:17069:/*EOF*/
        -:        -:17070:/*EOF*/
        -:        -:17071:/*EOF*/
        -:        -:17072:/*EOF*/
        -:        -:17073:/*EOF*/
        -:        -:17074:/*EOF*/
        -:        -:17075:/*EOF*/
        -:        -:17076:/*EOF*/
        -:        -:17077:/*EOF*/
        -:        -:17078:/*EOF*/
        -:        -:17079:/*EOF*/
        -:        -:17080:/*EOF*/
        -:        -:17081:/*EOF*/
        -:        -:17082:/*EOF*/
        -:        -:17083:/*EOF*/
        -:        -:17084:/*EOF*/
        -:        -:17085:/*EOF*/
        -:        -:17086:/*EOF*/
        -:        -:17087:/*EOF*/
        -:        -:17088:/*EOF*/
        -:        -:17089:/*EOF*/
        -:        -:17090:/*EOF*/
        -:        -:17091:/*EOF*/
        -:        -:17092:/*EOF*/
        -:        -:17093:/*EOF*/
        -:        -:17094:/*EOF*/
        -:        -:17095:/*EOF*/
        -:        -:17096:/*EOF*/
        -:        -:17097:/*EOF*/
        -:        -:17098:/*EOF*/
        -:        -:17099:/*EOF*/
        -:        -:17100:/*EOF*/
        -:        -:17101:/*EOF*/
        -:        -:17102:/*EOF*/
        -:        -:17103:/*EOF*/
        -:        -:17104:/*EOF*/
        -:        -:17105:/*EOF*/
        -:        -:17106:/*EOF*/
        -:        -:17107:/*EOF*/
        -:        -:17108:/*EOF*/
        -:        -:17109:/*EOF*/
        -:        -:17110:/*EOF*/
        -:        -:17111:/*EOF*/
        -:        -:17112:/*EOF*/
        -:        -:17113:/*EOF*/
        -:        -:17114:/*EOF*/
        -:        -:17115:/*EOF*/
        -:        -:17116:/*EOF*/
        -:        -:17117:/*EOF*/
        -:        -:17118:/*EOF*/
        -:        -:17119:/*EOF*/
        -:        -:17120:/*EOF*/
        -:        -:17121:/*EOF*/
        -:        -:17122:/*EOF*/
        -:        -:17123:/*EOF*/
        -:        -:17124:/*EOF*/
        -:        -:17125:/*EOF*/
        -:        -:17126:/*EOF*/
        -:        -:17127:/*EOF*/
        -:        -:17128:/*EOF*/
        -:        -:17129:/*EOF*/
        -:        -:17130:/*EOF*/
        -:        -:17131:/*EOF*/
        -:        -:17132:/*EOF*/
        -:        -:17133:/*EOF*/
        -:        -:17134:/*EOF*/
        -:        -:17135:/*EOF*/
        -:        -:17136:/*EOF*/
        -:        -:17137:/*EOF*/
        -:        -:17138:/*EOF*/
        -:        -:17139:/*EOF*/
        -:        -:17140:/*EOF*/
        -:        -:17141:/*EOF*/
        -:        -:17142:/*EOF*/
        -:        -:17143:/*EOF*/
        -:        -:17144:/*EOF*/
        -:        -:17145:/*EOF*/
        -:        -:17146:/*EOF*/
        -:        -:17147:/*EOF*/
        -:        -:17148:/*EOF*/
        -:        -:17149:/*EOF*/
        -:        -:17150:/*EOF*/
        -:        -:17151:/*EOF*/
        -:        -:17152:/*EOF*/
        -:        -:17153:/*EOF*/
        -:        -:17154:/*EOF*/
        -:        -:17155:/*EOF*/
        -:        -:17156:/*EOF*/
        -:        -:17157:/*EOF*/
        -:        -:17158:/*EOF*/
        -:        -:17159:/*EOF*/
        -:        -:17160:/*EOF*/
        -:        -:17161:/*EOF*/
        -:        -:17162:/*EOF*/
        -:        -:17163:/*EOF*/
        -:        -:17164:/*EOF*/
        -:        -:17165:/*EOF*/
        -:        -:17166:/*EOF*/
        -:        -:17167:/*EOF*/
        -:        -:17168:/*EOF*/
        -:        -:17169:/*EOF*/
        -:        -:17170:/*EOF*/
        -:        -:17171:/*EOF*/
        -:        -:17172:/*EOF*/
        -:        -:17173:/*EOF*/
        -:        -:17174:/*EOF*/
        -:        -:17175:/*EOF*/
        -:        -:17176:/*EOF*/
        -:        -:17177:/*EOF*/
        -:        -:17178:/*EOF*/
        -:        -:17179:/*EOF*/
        -:        -:17180:/*EOF*/
        -:        -:17181:/*EOF*/
        -:        -:17182:/*EOF*/
        -:        -:17183:/*EOF*/
        -:        -:17184:/*EOF*/
        -:        -:17185:/*EOF*/
        -:        -:17186:/*EOF*/
        -:        -:17187:/*EOF*/
        -:        -:17188:/*EOF*/
        -:        -:17189:/*EOF*/
        -:        -:17190:/*EOF*/
        -:        -:17191:/*EOF*/
        -:        -:17192:/*EOF*/
        -:        -:17193:/*EOF*/
        -:        -:17194:/*EOF*/
        -:        -:17195:/*EOF*/
        -:        -:17196:/*EOF*/
        -:        -:17197:/*EOF*/
        -:        -:17198:/*EOF*/
        -:        -:17199:/*EOF*/
        -:        -:17200:/*EOF*/
        -:        -:17201:/*EOF*/
        -:        -:17202:/*EOF*/
        -:        -:17203:/*EOF*/
        -:        -:17204:/*EOF*/
        -:        -:17205:/*EOF*/
        -:        -:17206:/*EOF*/
        -:        -:17207:/*EOF*/
        -:        -:17208:/*EOF*/
        -:        -:17209:/*EOF*/
        -:        -:17210:/*EOF*/
        -:        -:17211:/*EOF*/
        -:        -:17212:/*EOF*/
        -:        -:17213:/*EOF*/
        -:        -:17214:/*EOF*/
        -:        -:17215:/*EOF*/
        -:        -:17216:/*EOF*/
        -:        -:17217:/*EOF*/
        -:        -:17218:/*EOF*/
        -:        -:17219:/*EOF*/
        -:        -:17220:/*EOF*/
        -:        -:17221:/*EOF*/
        -:        -:17222:/*EOF*/
        -:        -:17223:/*EOF*/
        -:        -:17224:/*EOF*/
        -:        -:17225:/*EOF*/
        -:        -:17226:/*EOF*/
        -:        -:17227:/*EOF*/
        -:        -:17228:/*EOF*/
        -:        -:17229:/*EOF*/
        -:        -:17230:/*EOF*/
        -:        -:17231:/*EOF*/
        -:        -:17232:/*EOF*/
        -:        -:17233:/*EOF*/
        -:        -:17234:/*EOF*/
        -:        -:17235:/*EOF*/
        -:        -:17236:/*EOF*/
        -:        -:17237:/*EOF*/
        -:        -:17238:/*EOF*/
        -:        -:17239:/*EOF*/
        -:        -:17240:/*EOF*/
        -:        -:17241:/*EOF*/
        -:        -:17242:/*EOF*/
        -:        -:17243:/*EOF*/
        -:        -:17244:/*EOF*/
        -:        -:17245:/*EOF*/
        -:        -:17246:/*EOF*/
        -:        -:17247:/*EOF*/
        -:        -:17248:/*EOF*/
        -:        -:17249:/*EOF*/
        -:        -:17250:/*EOF*/
        -:        -:17251:/*EOF*/
        -:        -:17252:/*EOF*/
        -:        -:17253:/*EOF*/
        -:        -:17254:/*EOF*/
        -:        -:17255:/*EOF*/
        -:        -:17256:/*EOF*/
        -:        -:17257:/*EOF*/
        -:        -:17258:/*EOF*/
        -:        -:17259:/*EOF*/
        -:        -:17260:/*EOF*/
        -:        -:17261:/*EOF*/
        -:        -:17262:/*EOF*/
        -:        -:17263:/*EOF*/
        -:        -:17264:/*EOF*/
        -:        -:17265:/*EOF*/
        -:        -:17266:/*EOF*/
        -:        -:17267:/*EOF*/
        -:        -:17268:/*EOF*/
        -:        -:17269:/*EOF*/
        -:        -:17270:/*EOF*/
        -:        -:17271:/*EOF*/
        -:        -:17272:/*EOF*/
        -:        -:17273:/*EOF*/
        -:        -:17274:/*EOF*/
        -:        -:17275:/*EOF*/
        -:        -:17276:/*EOF*/
        -:        -:17277:/*EOF*/
        -:        -:17278:/*EOF*/
        -:        -:17279:/*EOF*/
        -:        -:17280:/*EOF*/
        -:        -:17281:/*EOF*/
        -:        -:17282:/*EOF*/
        -:        -:17283:/*EOF*/
        -:        -:17284:/*EOF*/
        -:        -:17285:/*EOF*/
        -:        -:17286:/*EOF*/
        -:        -:17287:/*EOF*/
        -:        -:17288:/*EOF*/
        -:        -:17289:/*EOF*/
        -:        -:17290:/*EOF*/
        -:        -:17291:/*EOF*/
        -:        -:17292:/*EOF*/
        -:        -:17293:/*EOF*/
        -:        -:17294:/*EOF*/
        -:        -:17295:/*EOF*/
        -:        -:17296:/*EOF*/
        -:        -:17297:/*EOF*/
        -:        -:17298:/*EOF*/
        -:        -:17299:/*EOF*/
        -:        -:17300:/*EOF*/
        -:        -:17301:/*EOF*/
        -:        -:17302:/*EOF*/
        -:        -:17303:/*EOF*/
        -:        -:17304:/*EOF*/
        -:        -:17305:/*EOF*/
        -:        -:17306:/*EOF*/
        -:        -:17307:/*EOF*/
        -:        -:17308:/*EOF*/
        -:        -:17309:/*EOF*/
        -:        -:17310:/*EOF*/
        -:        -:17311:/*EOF*/
        -:        -:17312:/*EOF*/
        -:        -:17313:/*EOF*/
        -:        -:17314:/*EOF*/
        -:        -:17315:/*EOF*/
        -:        -:17316:/*EOF*/
        -:        -:17317:/*EOF*/
        -:        -:17318:/*EOF*/
        -:        -:17319:/*EOF*/
        -:        -:17320:/*EOF*/
        -:        -:17321:/*EOF*/
        -:        -:17322:/*EOF*/
        -:        -:17323:/*EOF*/
        -:        -:17324:/*EOF*/
        -:        -:17325:/*EOF*/
        -:        -:17326:/*EOF*/
        -:        -:17327:/*EOF*/
        -:        -:17328:/*EOF*/
        -:        -:17329:/*EOF*/
        -:        -:17330:/*EOF*/
        -:        -:17331:/*EOF*/
        -:        -:17332:/*EOF*/
        -:        -:17333:/*EOF*/
        -:        -:17334:/*EOF*/
        -:        -:17335:/*EOF*/
        -:        -:17336:/*EOF*/
        -:        -:17337:/*EOF*/
        -:        -:17338:/*EOF*/
        -:        -:17339:/*EOF*/
        -:        -:17340:/*EOF*/
        -:        -:17341:/*EOF*/
        -:        -:17342:/*EOF*/
        -:        -:17343:/*EOF*/
        -:        -:17344:/*EOF*/
        -:        -:17345:/*EOF*/
        -:        -:17346:/*EOF*/
        -:        -:17347:/*EOF*/
        -:        -:17348:/*EOF*/
        -:        -:17349:/*EOF*/
        -:        -:17350:/*EOF*/
        -:        -:17351:/*EOF*/
        -:        -:17352:/*EOF*/
        -:        -:17353:/*EOF*/
        -:        -:17354:/*EOF*/
        -:        -:17355:/*EOF*/
        -:        -:17356:/*EOF*/
        -:        -:17357:/*EOF*/
        -:        -:17358:/*EOF*/
        -:        -:17359:/*EOF*/
        -:        -:17360:/*EOF*/
        -:        -:17361:/*EOF*/
        -:        -:17362:/*EOF*/
        -:        -:17363:/*EOF*/
        -:        -:17364:/*EOF*/
        -:        -:17365:/*EOF*/
        -:        -:17366:/*EOF*/
        -:        -:17367:/*EOF*/
        -:        -:17368:/*EOF*/
        -:        -:17369:/*EOF*/
        -:        -:17370:/*EOF*/
        -:        -:17371:/*EOF*/
        -:        -:17372:/*EOF*/
        -:        -:17373:/*EOF*/
        -:        -:17374:/*EOF*/
        -:        -:17375:/*EOF*/
        -:        -:17376:/*EOF*/
        -:        -:17377:/*EOF*/
        -:        -:17378:/*EOF*/
        -:        -:17379:/*EOF*/
        -:        -:17380:/*EOF*/
        -:        -:17381:/*EOF*/
        -:        -:17382:/*EOF*/
        -:        -:17383:/*EOF*/
        -:        -:17384:/*EOF*/
        -:        -:17385:/*EOF*/
        -:        -:17386:/*EOF*/
        -:        -:17387:/*EOF*/
        -:        -:17388:/*EOF*/
        -:        -:17389:/*EOF*/
        -:        -:17390:/*EOF*/
        -:        -:17391:/*EOF*/
        -:        -:17392:/*EOF*/
        -:        -:17393:/*EOF*/
        -:        -:17394:/*EOF*/
        -:        -:17395:/*EOF*/
        -:        -:17396:/*EOF*/
        -:        -:17397:/*EOF*/
        -:        -:17398:/*EOF*/
        -:        -:17399:/*EOF*/
        -:        -:17400:/*EOF*/
        -:        -:17401:/*EOF*/
        -:        -:17402:/*EOF*/
        -:        -:17403:/*EOF*/
        -:        -:17404:/*EOF*/
        -:        -:17405:/*EOF*/
        -:        -:17406:/*EOF*/
        -:        -:17407:/*EOF*/
        -:        -:17408:/*EOF*/
        -:        -:17409:/*EOF*/
        -:        -:17410:/*EOF*/
        -:        -:17411:/*EOF*/
        -:        -:17412:/*EOF*/
        -:        -:17413:/*EOF*/
        -:        -:17414:/*EOF*/
        -:        -:17415:/*EOF*/
        -:        -:17416:/*EOF*/
        -:        -:17417:/*EOF*/
        -:        -:17418:/*EOF*/
        -:        -:17419:/*EOF*/
        -:        -:17420:/*EOF*/
        -:        -:17421:/*EOF*/
        -:        -:17422:/*EOF*/
        -:        -:17423:/*EOF*/
        -:        -:17424:/*EOF*/
        -:        -:17425:/*EOF*/
        -:        -:17426:/*EOF*/
        -:        -:17427:/*EOF*/
        -:        -:17428:/*EOF*/
        -:        -:17429:/*EOF*/
        -:        -:17430:/*EOF*/
        -:        -:17431:/*EOF*/
        -:        -:17432:/*EOF*/
        -:        -:17433:/*EOF*/
        -:        -:17434:/*EOF*/
        -:        -:17435:/*EOF*/
        -:        -:17436:/*EOF*/
        -:        -:17437:/*EOF*/
        -:        -:17438:/*EOF*/
        -:        -:17439:/*EOF*/
        -:        -:17440:/*EOF*/
        -:        -:17441:/*EOF*/
        -:        -:17442:/*EOF*/
        -:        -:17443:/*EOF*/
        -:        -:17444:/*EOF*/
        -:        -:17445:/*EOF*/
        -:        -:17446:/*EOF*/
        -:        -:17447:/*EOF*/
        -:        -:17448:/*EOF*/
        -:        -:17449:/*EOF*/
        -:        -:17450:/*EOF*/
        -:        -:17451:/*EOF*/
        -:        -:17452:/*EOF*/
        -:        -:17453:/*EOF*/
        -:        -:17454:/*EOF*/
        -:        -:17455:/*EOF*/
        -:        -:17456:/*EOF*/
        -:        -:17457:/*EOF*/
        -:        -:17458:/*EOF*/
        -:        -:17459:/*EOF*/
        -:        -:17460:/*EOF*/
        -:        -:17461:/*EOF*/
        -:        -:17462:/*EOF*/
        -:        -:17463:/*EOF*/
        -:        -:17464:/*EOF*/
        -:        -:17465:/*EOF*/
        -:        -:17466:/*EOF*/
        -:        -:17467:/*EOF*/
        -:        -:17468:/*EOF*/
        -:        -:17469:/*EOF*/
        -:        -:17470:/*EOF*/
        -:        -:17471:/*EOF*/
        -:        -:17472:/*EOF*/
        -:        -:17473:/*EOF*/
        -:        -:17474:/*EOF*/
        -:        -:17475:/*EOF*/
        -:        -:17476:/*EOF*/
        -:        -:17477:/*EOF*/
        -:        -:17478:/*EOF*/
        -:        -:17479:/*EOF*/
        -:        -:17480:/*EOF*/
        -:        -:17481:/*EOF*/
        -:        -:17482:/*EOF*/
        -:        -:17483:/*EOF*/
        -:        -:17484:/*EOF*/
        -:        -:17485:/*EOF*/
        -:        -:17486:/*EOF*/
        -:        -:17487:/*EOF*/
        -:        -:17488:/*EOF*/
        -:        -:17489:/*EOF*/
        -:        -:17490:/*EOF*/
        -:        -:17491:/*EOF*/
        -:        -:17492:/*EOF*/
        -:        -:17493:/*EOF*/
        -:        -:17494:/*EOF*/
        -:        -:17495:/*EOF*/
        -:        -:17496:/*EOF*/
        -:        -:17497:/*EOF*/
        -:        -:17498:/*EOF*/
        -:        -:17499:/*EOF*/
        -:        -:17500:/*EOF*/
        -:        -:17501:/*EOF*/
        -:        -:17502:/*EOF*/
        -:        -:17503:/*EOF*/
        -:        -:17504:/*EOF*/
        -:        -:17505:/*EOF*/
        -:        -:17506:/*EOF*/
        -:        -:17507:/*EOF*/
        -:        -:17508:/*EOF*/
        -:        -:17509:/*EOF*/
        -:        -:17510:/*EOF*/
        -:        -:17511:/*EOF*/
        -:        -:17512:/*EOF*/
        -:        -:17513:/*EOF*/
        -:        -:17514:/*EOF*/
        -:        -:17515:/*EOF*/
        -:        -:17516:/*EOF*/
        -:        -:17517:/*EOF*/
        -:        -:17518:/*EOF*/
        -:        -:17519:/*EOF*/
        -:        -:17520:/*EOF*/
        -:        -:17521:/*EOF*/
        -:        -:17522:/*EOF*/
        -:        -:17523:/*EOF*/
        -:        -:17524:/*EOF*/
        -:        -:17525:/*EOF*/
        -:        -:17526:/*EOF*/
        -:        -:17527:/*EOF*/
        -:        -:17528:/*EOF*/
        -:        -:17529:/*EOF*/
        -:        -:17530:/*EOF*/
        -:        -:17531:/*EOF*/
        -:        -:17532:/*EOF*/
        -:        -:17533:/*EOF*/
        -:        -:17534:/*EOF*/
        -:        -:17535:/*EOF*/
        -:        -:17536:/*EOF*/
        -:        -:17537:/*EOF*/
        -:        -:17538:/*EOF*/
        -:        -:17539:/*EOF*/
        -:        -:17540:/*EOF*/
        -:        -:17541:/*EOF*/
        -:        -:17542:/*EOF*/
        -:        -:17543:/*EOF*/
        -:        -:17544:/*EOF*/
        -:        -:17545:/*EOF*/
        -:        -:17546:/*EOF*/
        -:        -:17547:/*EOF*/
        -:        -:17548:/*EOF*/
        -:        -:17549:/*EOF*/
        -:        -:17550:/*EOF*/
        -:        -:17551:/*EOF*/
        -:        -:17552:/*EOF*/
        -:        -:17553:/*EOF*/
        -:        -:17554:/*EOF*/
        -:        -:17555:/*EOF*/
        -:        -:17556:/*EOF*/
        -:        -:17557:/*EOF*/
        -:        -:17558:/*EOF*/
        -:        -:17559:/*EOF*/
        -:        -:17560:/*EOF*/
        -:        -:17561:/*EOF*/
        -:        -:17562:/*EOF*/
        -:        -:17563:/*EOF*/
        -:        -:17564:/*EOF*/
        -:        -:17565:/*EOF*/
        -:        -:17566:/*EOF*/
        -:        -:17567:/*EOF*/
        -:        -:17568:/*EOF*/
        -:        -:17569:/*EOF*/
        -:        -:17570:/*EOF*/
        -:        -:17571:/*EOF*/
        -:        -:17572:/*EOF*/
        -:        -:17573:/*EOF*/
        -:        -:17574:/*EOF*/
        -:        -:17575:/*EOF*/
        -:        -:17576:/*EOF*/
        -:        -:17577:/*EOF*/
        -:        -:17578:/*EOF*/
        -:        -:17579:/*EOF*/
        -:        -:17580:/*EOF*/
        -:        -:17581:/*EOF*/
        -:        -:17582:/*EOF*/
        -:        -:17583:/*EOF*/
        -:        -:17584:/*EOF*/
        -:        -:17585:/*EOF*/
        -:        -:17586:/*EOF*/
        -:        -:17587:/*EOF*/
        -:        -:17588:/*EOF*/
        -:        -:17589:/*EOF*/
        -:        -:17590:/*EOF*/
        -:        -:17591:/*EOF*/
        -:        -:17592:/*EOF*/
        -:        -:17593:/*EOF*/
        -:        -:17594:/*EOF*/
        -:        -:17595:/*EOF*/
        -:        -:17596:/*EOF*/
        -:        -:17597:/*EOF*/
        -:        -:17598:/*EOF*/
        -:        -:17599:/*EOF*/
        -:        -:17600:/*EOF*/
        -:        -:17601:/*EOF*/
        -:        -:17602:/*EOF*/
        -:        -:17603:/*EOF*/
        -:        -:17604:/*EOF*/
        -:        -:17605:/*EOF*/
        -:        -:17606:/*EOF*/
        -:        -:17607:/*EOF*/
        -:        -:17608:/*EOF*/
        -:        -:17609:/*EOF*/
        -:        -:17610:/*EOF*/
        -:        -:17611:/*EOF*/
        -:        -:17612:/*EOF*/
        -:        -:17613:/*EOF*/
        -:        -:17614:/*EOF*/
        -:        -:17615:/*EOF*/
        -:        -:17616:/*EOF*/
        -:        -:17617:/*EOF*/
        -:        -:17618:/*EOF*/
        -:        -:17619:/*EOF*/
        -:        -:17620:/*EOF*/
        -:        -:17621:/*EOF*/
        -:        -:17622:/*EOF*/
        -:        -:17623:/*EOF*/
        -:        -:17624:/*EOF*/
        -:        -:17625:/*EOF*/
        -:        -:17626:/*EOF*/
        -:        -:17627:/*EOF*/
        -:        -:17628:/*EOF*/
        -:        -:17629:/*EOF*/
        -:        -:17630:/*EOF*/
        -:        -:17631:/*EOF*/
        -:        -:17632:/*EOF*/
        -:        -:17633:/*EOF*/
        -:        -:17634:/*EOF*/
        -:        -:17635:/*EOF*/
        -:        -:17636:/*EOF*/
        -:        -:17637:/*EOF*/
        -:        -:17638:/*EOF*/
        -:        -:17639:/*EOF*/
        -:        -:17640:/*EOF*/
        -:        -:17641:/*EOF*/
        -:        -:17642:/*EOF*/
        -:        -:17643:/*EOF*/
        -:        -:17644:/*EOF*/
        -:        -:17645:/*EOF*/
        -:        -:17646:/*EOF*/
        -:        -:17647:/*EOF*/
        -:        -:17648:/*EOF*/
        -:        -:17649:/*EOF*/
        -:        -:17650:/*EOF*/
        -:        -:17651:/*EOF*/
        -:        -:17652:/*EOF*/
        -:        -:17653:/*EOF*/
        -:        -:17654:/*EOF*/
        -:        -:17655:/*EOF*/
        -:        -:17656:/*EOF*/
        -:        -:17657:/*EOF*/
        -:        -:17658:/*EOF*/
        -:        -:17659:/*EOF*/
        -:        -:17660:/*EOF*/
        -:        -:17661:/*EOF*/
        -:        -:17662:/*EOF*/
        -:        -:17663:/*EOF*/
        -:        -:17664:/*EOF*/
        -:        -:17665:/*EOF*/
        -:        -:17666:/*EOF*/
        -:        -:17667:/*EOF*/
        -:        -:17668:/*EOF*/
        -:        -:17669:/*EOF*/
        -:        -:17670:/*EOF*/
        -:        -:17671:/*EOF*/
        -:        -:17672:/*EOF*/
        -:        -:17673:/*EOF*/
        -:        -:17674:/*EOF*/
        -:        -:17675:/*EOF*/
        -:        -:17676:/*EOF*/
        -:        -:17677:/*EOF*/
        -:        -:17678:/*EOF*/
        -:        -:17679:/*EOF*/
        -:        -:17680:/*EOF*/
        -:        -:17681:/*EOF*/
        -:        -:17682:/*EOF*/
        -:        -:17683:/*EOF*/
        -:        -:17684:/*EOF*/
        -:        -:17685:/*EOF*/
        -:        -:17686:/*EOF*/
        -:        -:17687:/*EOF*/
        -:        -:17688:/*EOF*/
        -:        -:17689:/*EOF*/
        -:        -:17690:/*EOF*/
        -:        -:17691:/*EOF*/
        -:        -:17692:/*EOF*/
        -:        -:17693:/*EOF*/
        -:        -:17694:/*EOF*/
        -:        -:17695:/*EOF*/
        -:        -:17696:/*EOF*/
        -:        -:17697:/*EOF*/
        -:        -:17698:/*EOF*/
        -:        -:17699:/*EOF*/
        -:        -:17700:/*EOF*/
        -:        -:17701:/*EOF*/
        -:        -:17702:/*EOF*/
        -:        -:17703:/*EOF*/
        -:        -:17704:/*EOF*/
        -:        -:17705:/*EOF*/
        -:        -:17706:/*EOF*/
        -:        -:17707:/*EOF*/
        -:        -:17708:/*EOF*/
        -:        -:17709:/*EOF*/
        -:        -:17710:/*EOF*/
        -:        -:17711:/*EOF*/
        -:        -:17712:/*EOF*/
        -:        -:17713:/*EOF*/
        -:        -:17714:/*EOF*/
        -:        -:17715:/*EOF*/
        -:        -:17716:/*EOF*/
        -:        -:17717:/*EOF*/
        -:        -:17718:/*EOF*/
        -:        -:17719:/*EOF*/
        -:        -:17720:/*EOF*/
        -:        -:17721:/*EOF*/
        -:        -:17722:/*EOF*/
        -:        -:17723:/*EOF*/
        -:        -:17724:/*EOF*/
        -:        -:17725:/*EOF*/
        -:        -:17726:/*EOF*/
        -:        -:17727:/*EOF*/
        -:        -:17728:/*EOF*/
        -:        -:17729:/*EOF*/
        -:        -:17730:/*EOF*/
        -:        -:17731:/*EOF*/
        -:        -:17732:/*EOF*/
        -:        -:17733:/*EOF*/
        -:        -:17734:/*EOF*/
        -:        -:17735:/*EOF*/
        -:        -:17736:/*EOF*/
        -:        -:17737:/*EOF*/
        -:        -:17738:/*EOF*/
        -:        -:17739:/*EOF*/
        -:        -:17740:/*EOF*/
        -:        -:17741:/*EOF*/
        -:        -:17742:/*EOF*/
        -:        -:17743:/*EOF*/
        -:        -:17744:/*EOF*/
        -:        -:17745:/*EOF*/
        -:        -:17746:/*EOF*/
        -:        -:17747:/*EOF*/
        -:        -:17748:/*EOF*/
        -:        -:17749:/*EOF*/
        -:        -:17750:/*EOF*/
        -:        -:17751:/*EOF*/
        -:        -:17752:/*EOF*/
        -:        -:17753:/*EOF*/
        -:        -:17754:/*EOF*/
        -:        -:17755:/*EOF*/
        -:        -:17756:/*EOF*/
        -:        -:17757:/*EOF*/
        -:        -:17758:/*EOF*/
        -:        -:17759:/*EOF*/
        -:        -:17760:/*EOF*/
        -:        -:17761:/*EOF*/
        -:        -:17762:/*EOF*/
        -:        -:17763:/*EOF*/
        -:        -:17764:/*EOF*/
        -:        -:17765:/*EOF*/
        -:        -:17766:/*EOF*/
        -:        -:17767:/*EOF*/
        -:        -:17768:/*EOF*/
        -:        -:17769:/*EOF*/
        -:        -:17770:/*EOF*/
        -:        -:17771:/*EOF*/
        -:        -:17772:/*EOF*/
        -:        -:17773:/*EOF*/
        -:        -:17774:/*EOF*/
        -:        -:17775:/*EOF*/
        -:        -:17776:/*EOF*/
        -:        -:17777:/*EOF*/
        -:        -:17778:/*EOF*/
        -:        -:17779:/*EOF*/
        -:        -:17780:/*EOF*/
        -:        -:17781:/*EOF*/
        -:        -:17782:/*EOF*/
        -:        -:17783:/*EOF*/
        -:        -:17784:/*EOF*/
        -:        -:17785:/*EOF*/
        -:        -:17786:/*EOF*/
        -:        -:17787:/*EOF*/
        -:        -:17788:/*EOF*/
        -:        -:17789:/*EOF*/
        -:        -:17790:/*EOF*/
        -:        -:17791:/*EOF*/
        -:        -:17792:/*EOF*/
        -:        -:17793:/*EOF*/
        -:        -:17794:/*EOF*/
        -:        -:17795:/*EOF*/
        -:        -:17796:/*EOF*/
        -:        -:17797:/*EOF*/
        -:        -:17798:/*EOF*/
        -:        -:17799:/*EOF*/
        -:        -:17800:/*EOF*/
        -:        -:17801:/*EOF*/
        -:        -:17802:/*EOF*/
        -:        -:17803:/*EOF*/
        -:        -:17804:/*EOF*/
        -:        -:17805:/*EOF*/
        -:        -:17806:/*EOF*/
        -:        -:17807:/*EOF*/
        -:        -:17808:/*EOF*/
        -:        -:17809:/*EOF*/
        -:        -:17810:/*EOF*/
        -:        -:17811:/*EOF*/
        -:        -:17812:/*EOF*/
        -:        -:17813:/*EOF*/
        -:        -:17814:/*EOF*/
        -:        -:17815:/*EOF*/
        -:        -:17816:/*EOF*/
        -:        -:17817:/*EOF*/
        -:        -:17818:/*EOF*/
        -:        -:17819:/*EOF*/
        -:        -:17820:/*EOF*/
        -:        -:17821:/*EOF*/
        -:        -:17822:/*EOF*/
        -:        -:17823:/*EOF*/
        -:        -:17824:/*EOF*/
        -:        -:17825:/*EOF*/
        -:        -:17826:/*EOF*/
        -:        -:17827:/*EOF*/
        -:        -:17828:/*EOF*/
        -:        -:17829:/*EOF*/
        -:        -:17830:/*EOF*/
        -:        -:17831:/*EOF*/
        -:        -:17832:/*EOF*/
        -:        -:17833:/*EOF*/
        -:        -:17834:/*EOF*/
        -:        -:17835:/*EOF*/
        -:        -:17836:/*EOF*/
        -:        -:17837:/*EOF*/
        -:        -:17838:/*EOF*/
        -:        -:17839:/*EOF*/
        -:        -:17840:/*EOF*/
        -:        -:17841:/*EOF*/
        -:        -:17842:/*EOF*/
        -:        -:17843:/*EOF*/
        -:        -:17844:/*EOF*/
        -:        -:17845:/*EOF*/
        -:        -:17846:/*EOF*/
        -:        -:17847:/*EOF*/
        -:        -:17848:/*EOF*/
        -:        -:17849:/*EOF*/
        -:        -:17850:/*EOF*/
        -:        -:17851:/*EOF*/
        -:        -:17852:/*EOF*/
        -:        -:17853:/*EOF*/
        -:        -:17854:/*EOF*/
        -:        -:17855:/*EOF*/
        -:        -:17856:/*EOF*/
        -:        -:17857:/*EOF*/
        -:        -:17858:/*EOF*/
        -:        -:17859:/*EOF*/
        -:        -:17860:/*EOF*/
        -:        -:17861:/*EOF*/
        -:        -:17862:/*EOF*/
        -:        -:17863:/*EOF*/
        -:        -:17864:/*EOF*/
        -:        -:17865:/*EOF*/
        -:        -:17866:/*EOF*/
        -:        -:17867:/*EOF*/
        -:        -:17868:/*EOF*/
        -:        -:17869:/*EOF*/
        -:        -:17870:/*EOF*/
        -:        -:17871:/*EOF*/
        -:        -:17872:/*EOF*/
        -:        -:17873:/*EOF*/
        -:        -:17874:/*EOF*/
        -:        -:17875:/*EOF*/
        -:        -:17876:/*EOF*/
        -:        -:17877:/*EOF*/
        -:        -:17878:/*EOF*/
        -:        -:17879:/*EOF*/
        -:        -:17880:/*EOF*/
        -:        -:17881:/*EOF*/
        -:        -:17882:/*EOF*/
        -:        -:17883:/*EOF*/
        -:        -:17884:/*EOF*/
        -:        -:17885:/*EOF*/
        -:        -:17886:/*EOF*/
        -:        -:17887:/*EOF*/
        -:        -:17888:/*EOF*/
        -:        -:17889:/*EOF*/
        -:        -:17890:/*EOF*/
        -:        -:17891:/*EOF*/
        -:        -:17892:/*EOF*/
        -:        -:17893:/*EOF*/
        -:        -:17894:/*EOF*/
        -:        -:17895:/*EOF*/
        -:        -:17896:/*EOF*/
        -:        -:17897:/*EOF*/
        -:        -:17898:/*EOF*/
        -:        -:17899:/*EOF*/
        -:        -:17900:/*EOF*/
        -:        -:17901:/*EOF*/
        -:        -:17902:/*EOF*/
        -:        -:17903:/*EOF*/
        -:        -:17904:/*EOF*/
        -:        -:17905:/*EOF*/
        -:        -:17906:/*EOF*/
        -:        -:17907:/*EOF*/
        -:        -:17908:/*EOF*/
        -:        -:17909:/*EOF*/
        -:        -:17910:/*EOF*/
        -:        -:17911:/*EOF*/
        -:        -:17912:/*EOF*/
        -:        -:17913:/*EOF*/
        -:        -:17914:/*EOF*/
        -:        -:17915:/*EOF*/
        -:        -:17916:/*EOF*/
        -:        -:17917:/*EOF*/
        -:        -:17918:/*EOF*/
        -:        -:17919:/*EOF*/
        -:        -:17920:/*EOF*/
        -:        -:17921:/*EOF*/
        -:        -:17922:/*EOF*/
        -:        -:17923:/*EOF*/
        -:        -:17924:/*EOF*/
        -:        -:17925:/*EOF*/
        -:        -:17926:/*EOF*/
        -:        -:17927:/*EOF*/
        -:        -:17928:/*EOF*/
        -:        -:17929:/*EOF*/
        -:        -:17930:/*EOF*/
        -:        -:17931:/*EOF*/
        -:        -:17932:/*EOF*/
        -:        -:17933:/*EOF*/
        -:        -:17934:/*EOF*/
        -:        -:17935:/*EOF*/
        -:        -:17936:/*EOF*/
        -:        -:17937:/*EOF*/
        -:        -:17938:/*EOF*/
        -:        -:17939:/*EOF*/
        -:        -:17940:/*EOF*/
        -:        -:17941:/*EOF*/
        -:        -:17942:/*EOF*/
        -:        -:17943:/*EOF*/
        -:        -:17944:/*EOF*/
        -:        -:17945:/*EOF*/
        -:        -:17946:/*EOF*/
        -:        -:17947:/*EOF*/
        -:        -:17948:/*EOF*/
        -:        -:17949:/*EOF*/
        -:        -:17950:/*EOF*/
        -:        -:17951:/*EOF*/
        -:        -:17952:/*EOF*/
        -:        -:17953:/*EOF*/
        -:        -:17954:/*EOF*/
        -:        -:17955:/*EOF*/
        -:        -:17956:/*EOF*/
        -:        -:17957:/*EOF*/
        -:        -:17958:/*EOF*/
        -:        -:17959:/*EOF*/
        -:        -:17960:/*EOF*/
        -:        -:17961:/*EOF*/
        -:        -:17962:/*EOF*/
        -:        -:17963:/*EOF*/
        -:        -:17964:/*EOF*/
        -:        -:17965:/*EOF*/
        -:        -:17966:/*EOF*/
        -:        -:17967:/*EOF*/
        -:        -:17968:/*EOF*/
        -:        -:17969:/*EOF*/
        -:        -:17970:/*EOF*/
        -:        -:17971:/*EOF*/
        -:        -:17972:/*EOF*/
        -:        -:17973:/*EOF*/
        -:        -:17974:/*EOF*/
        -:        -:17975:/*EOF*/
        -:        -:17976:/*EOF*/
        -:        -:17977:/*EOF*/
        -:        -:17978:/*EOF*/
        -:        -:17979:/*EOF*/
        -:        -:17980:/*EOF*/
        -:        -:17981:/*EOF*/
        -:        -:17982:/*EOF*/
        -:        -:17983:/*EOF*/
        -:        -:17984:/*EOF*/
        -:        -:17985:/*EOF*/
        -:        -:17986:/*EOF*/
        -:        -:17987:/*EOF*/
        -:        -:17988:/*EOF*/
        -:        -:17989:/*EOF*/
        -:        -:17990:/*EOF*/
        -:        -:17991:/*EOF*/
        -:        -:17992:/*EOF*/
        -:        -:17993:/*EOF*/
        -:        -:17994:/*EOF*/
        -:        -:17995:/*EOF*/
        -:        -:17996:/*EOF*/
        -:        -:17997:/*EOF*/
        -:        -:17998:/*EOF*/
        -:        -:17999:/*EOF*/
        -:        -:18000:/*EOF*/
        -:        -:18001:/*EOF*/
        -:        -:18002:/*EOF*/
        -:        -:18003:/*EOF*/
        -:        -:18004:/*EOF*/
        -:        -:18005:/*EOF*/
        -:        -:18006:/*EOF*/
        -:        -:18007:/*EOF*/
        -:        -:18008:/*EOF*/
        -:        -:18009:/*EOF*/
        -:        -:18010:/*EOF*/
        -:        -:18011:/*EOF*/
        -:        -:18012:/*EOF*/
        -:        -:18013:/*EOF*/
        -:        -:18014:/*EOF*/
        -:        -:18015:/*EOF*/
        -:        -:18016:/*EOF*/
        -:        -:18017:/*EOF*/
        -:        -:18018:/*EOF*/
        -:        -:18019:/*EOF*/
        -:        -:18020:/*EOF*/
        -:        -:18021:/*EOF*/
        -:        -:18022:/*EOF*/
        -:        -:18023:/*EOF*/
        -:        -:18024:/*EOF*/
        -:        -:18025:/*EOF*/
        -:        -:18026:/*EOF*/
        -:        -:18027:/*EOF*/
        -:        -:18028:/*EOF*/
        -:        -:18029:/*EOF*/
        -:        -:18030:/*EOF*/
        -:        -:18031:/*EOF*/
        -:        -:18032:/*EOF*/
        -:        -:18033:/*EOF*/
        -:        -:18034:/*EOF*/
        -:        -:18035:/*EOF*/
        -:        -:18036:/*EOF*/
        -:        -:18037:/*EOF*/
        -:        -:18038:/*EOF*/
        -:        -:18039:/*EOF*/
        -:        -:18040:/*EOF*/
        -:        -:18041:/*EOF*/
        -:        -:18042:/*EOF*/
        -:        -:18043:/*EOF*/
        -:        -:18044:/*EOF*/
        -:        -:18045:/*EOF*/
        -:        -:18046:/*EOF*/
        -:        -:18047:/*EOF*/
        -:        -:18048:/*EOF*/
        -:        -:18049:/*EOF*/
        -:        -:18050:/*EOF*/
        -:        -:18051:/*EOF*/
        -:        -:18052:/*EOF*/
        -:        -:18053:/*EOF*/
        -:        -:18054:/*EOF*/
        -:        -:18055:/*EOF*/
        -:        -:18056:/*EOF*/
        -:        -:18057:/*EOF*/
        -:        -:18058:/*EOF*/
        -:        -:18059:/*EOF*/
        -:        -:18060:/*EOF*/
        -:        -:18061:/*EOF*/
        -:        -:18062:/*EOF*/
        -:        -:18063:/*EOF*/
        -:        -:18064:/*EOF*/
        -:        -:18065:/*EOF*/
        -:        -:18066:/*EOF*/
        -:        -:18067:/*EOF*/
        -:        -:18068:/*EOF*/
        -:        -:18069:/*EOF*/
        -:        -:18070:/*EOF*/
        -:        -:18071:/*EOF*/
        -:        -:18072:/*EOF*/
        -:        -:18073:/*EOF*/
        -:        -:18074:/*EOF*/
        -:        -:18075:/*EOF*/
        -:        -:18076:/*EOF*/
        -:        -:18077:/*EOF*/
        -:        -:18078:/*EOF*/
        -:        -:18079:/*EOF*/
        -:        -:18080:/*EOF*/
        -:        -:18081:/*EOF*/
        -:        -:18082:/*EOF*/
        -:        -:18083:/*EOF*/
        -:        -:18084:/*EOF*/
        -:        -:18085:/*EOF*/
        -:        -:18086:/*EOF*/
        -:        -:18087:/*EOF*/
        -:        -:18088:/*EOF*/
        -:        -:18089:/*EOF*/
        -:        -:18090:/*EOF*/
        -:        -:18091:/*EOF*/
        -:        -:18092:/*EOF*/
        -:        -:18093:/*EOF*/
        -:        -:18094:/*EOF*/
        -:        -:18095:/*EOF*/
        -:        -:18096:/*EOF*/
        -:        -:18097:/*EOF*/
        -:        -:18098:/*EOF*/
        -:        -:18099:/*EOF*/
        -:        -:18100:/*EOF*/
        -:        -:18101:/*EOF*/
        -:        -:18102:/*EOF*/
        -:        -:18103:/*EOF*/
        -:        -:18104:/*EOF*/
        -:        -:18105:/*EOF*/
        -:        -:18106:/*EOF*/
        -:        -:18107:/*EOF*/
        -:        -:18108:/*EOF*/
        -:        -:18109:/*EOF*/
        -:        -:18110:/*EOF*/
        -:        -:18111:/*EOF*/
        -:        -:18112:/*EOF*/
        -:        -:18113:/*EOF*/
        -:        -:18114:/*EOF*/
        -:        -:18115:/*EOF*/
        -:        -:18116:/*EOF*/
        -:        -:18117:/*EOF*/
        -:        -:18118:/*EOF*/
        -:        -:18119:/*EOF*/
        -:        -:18120:/*EOF*/
        -:        -:18121:/*EOF*/
        -:        -:18122:/*EOF*/
        -:        -:18123:/*EOF*/
        -:        -:18124:/*EOF*/
        -:        -:18125:/*EOF*/
        -:        -:18126:/*EOF*/
        -:        -:18127:/*EOF*/
        -:        -:18128:/*EOF*/
        -:        -:18129:/*EOF*/
        -:        -:18130:/*EOF*/
        -:        -:18131:/*EOF*/
        -:        -:18132:/*EOF*/
        -:        -:18133:/*EOF*/
        -:        -:18134:/*EOF*/
      274:      402:18135:/*EOF*/
        -:        -:18136:/*EOF*/
        -:        -:18137:/*EOF*/
      274:      402:18138:/*EOF*/
        -:        -:18139:/*EOF*/
     1295:     1549:18140:/*EOF*/
     1021:     1147:18141:/*EOF*/
      480:      588:18142:/*EOF*/
        -:        -:18143:/*EOF*/
      541:      559:18144:/*EOF*/
      541:      559:18145:/*EOF*/
    #####:    #####:18146:/*EOF*/
        -:        -:18147:/*EOF*/
      541:      559:18148:/*EOF*/
        -:        -:18149:/*EOF*/
    #####:    #####:18150:/*EOF*/
    #####:    #####:18151:/*EOF*/
    #####:    #####:18152:/*EOF*/
    #####:    #####:18153:/*EOF*/
        -:        -:18154:/*EOF*/
    #####:    #####:18155:/*EOF*/
    #####:    #####:18156:/*EOF*/
        -:        -:18157:/*EOF*/
        -:        -:18158:/*EOF*/
    #####:    #####:18159:/*EOF*/
        -:        -:18160:/*EOF*/
    #####:    #####:18161:/*EOF*/
    #####:    #####:18162:/*EOF*/
    #####:    #####:18163:/*EOF*/
    #####:    #####:18164:/*EOF*/
        -:        -:18165:/*EOF*/
    #####:    #####:18166:/*EOF*/
    #####:    #####:18167:/*EOF*/
        -:        -:18168:/*EOF*/
        -:        -:18169:/*EOF*/
    #####:    #####:18170:/*EOF*/
        -:        -:18171:/*EOF*/
    #####:    #####:18172:/*EOF*/
    #####:    #####:18173:/*EOF*/
    #####:    #####:18174:/*EOF*/
    #####:    #####:18175:/*EOF*/
        -:        -:18176:/*EOF*/
    #####:    #####:18177:/*EOF*/
    #####:    #####:18178:/*EOF*/
        -:        -:18179:/*EOF*/
        -:        -:18180:/*EOF*/
    #####:    #####:18181:/*EOF*/
        -:        -:18182:/*EOF*/
    #####:    #####:18183:/*EOF*/
    #####:    #####:18184:/*EOF*/
    #####:    #####:18185:/*EOF*/
    #####:    #####:18186:/*EOF*/
        -:        -:18187:/*EOF*/
    #####:    #####:18188:/*EOF*/
    #####:    #####:18189:/*EOF*/
        -:        -:18190:/*EOF*/
        -:        -:18191:/*EOF*/
    #####:    #####:18192:/*EOF*/
        -:        -:18193:/*EOF*/
    #####:    #####:18194:/*EOF*/
    #####:    #####:18195:/*EOF*/
    #####:    #####:18196:/*EOF*/
    #####:    #####:18197:/*EOF*/
        -:        -:18198:/*EOF*/
    #####:    #####:18199:/*EOF*/
    #####:    #####:18200:/*EOF*/
        -:        -:18201:/*EOF*/
        -:        -:18202:/*EOF*/
    #####:    #####:18203:/*EOF*/
        -:        -:18204:/*EOF*/
    #####:    #####:18205:/*EOF*/
    #####:    #####:18206:/*EOF*/
    #####:    #####:18207:/*EOF*/
    #####:    #####:18208:/*EOF*/
        -:        -:18209:/*EOF*/
    #####:    #####:18210:/*EOF*/
    #####:    #####:18211:/*EOF*/
        -:        -:18212:/*EOF*/
        -:        -:18213:/*EOF*/
    #####:    #####:18214:/*EOF*/
        -:        -:18215:/*EOF*/
    #####:    #####:18216:/*EOF*/
    #####:    #####:18217:/*EOF*/
    #####:    #####:18218:/*EOF*/
    #####:    #####:18219:/*EOF*/
        -:        -:18220:/*EOF*/
    #####:    #####:18221:/*EOF*/
    #####:    #####:18222:/*EOF*/
        -:        -:18223:/*EOF*/
        -:        -:18224:/*EOF*/
    #####:    #####:18225:/*EOF*/
        -:        -:18226:/*EOF*/
    #####:    #####:18227:/*EOF*/
    #####:    #####:18228:/*EOF*/
    #####:    #####:18229:/*EOF*/
    #####:    #####:18230:/*EOF*/
        -:        -:18231:/*EOF*/
    #####:    #####:18232:/*EOF*/
    #####:    #####:18233:/*EOF*/
        -:        -:18234:/*EOF*/
        -:        -:18235:/*EOF*/
    #####:    #####:18236:/*EOF*/
        -:        -:18237:/*EOF*/
    #####:    #####:18238:/*EOF*/
    #####:    #####:18239:/*EOF*/
    #####:    #####:18240:/*EOF*/
    #####:    #####:18241:/*EOF*/
        -:        -:18242:/*EOF*/
    #####:    #####:18243:/*EOF*/
    #####:    #####:18244:/*EOF*/
        -:        -:18245:/*EOF*/
        -:        -:18246:/*EOF*/
    #####:    #####:18247:/*EOF*/
        -:        -:18248:/*EOF*/
      776:      776:18249:/*EOF*/
      679:      679:18250:/*EOF*/
     1358:     1358:18251:/*EOF*/
      679:      679:18252:/*EOF*/
        -:        -:18253:/*EOF*/
    #####:    #####:18254:/*EOF*/
    #####:    #####:18255:/*EOF*/
        -:        -:18256:/*EOF*/
        -:        -:18257:/*EOF*/
       97:       97:18258:/*EOF*/
        -:        -:18259:/*EOF*/
    #####:    #####:18260:/*EOF*/
    #####:    #####:18261:/*EOF*/
    #####:    #####:18262:/*EOF*/
    #####:    #####:18263:/*EOF*/
        -:        -:18264:/*EOF*/
    #####:    #####:18265:/*EOF*/
    #####:    #####:18266:/*EOF*/
        -:        -:18267:/*EOF*/
        -:        -:18268:/*EOF*/
    #####:    #####:18269:/*EOF*/
        -:        -:18270:/*EOF*/
    #####:    #####:18271:/*EOF*/
    #####:    #####:18272:/*EOF*/
    #####:    #####:18273:/*EOF*/
    #####:    #####:18274:/*EOF*/
        -:        -:18275:/*EOF*/
    #####:    #####:18276:/*EOF*/
    #####:    #####:18277:/*EOF*/
        -:        -:18278:/*EOF*/
        -:        -:18279:/*EOF*/
    #####:    #####:18280:/*EOF*/
        -:        -:18281:/*EOF*/
    #####:    #####:18282:/*EOF*/
    #####:    #####:18283:/*EOF*/
    #####:    #####:18284:/*EOF*/
    #####:    #####:18285:/*EOF*/
        -:        -:18286:/*EOF*/
    #####:    #####:18287:/*EOF*/
    #####:    #####:18288:/*EOF*/
        -:        -:18289:/*EOF*/
        -:        -:18290:/*EOF*/
    #####:    #####:18291:/*EOF*/
        -:        -:18292:/*EOF*/
    #####:    #####:18293:/*EOF*/
    #####:    #####:18294:/*EOF*/
    #####:    #####:18295:/*EOF*/
    #####:    #####:18296:/*EOF*/
        -:        -:18297:/*EOF*/
    #####:    #####:18298:/*EOF*/
    #####:    #####:18299:/*EOF*/
        -:        -:18300:/*EOF*/
        -:        -:18301:/*EOF*/
    #####:    #####:18302:/*EOF*/
        -:        -:18303:/*EOF*/
     1634:     1634:18304:/*EOF*/
     1563:     1563:18305:/*EOF*/
     3126:     3126:18306:/*EOF*/
     1563:     1563:18307:/*EOF*/
        -:        -:18308:/*EOF*/
       39:       39:18309:/*EOF*/
       39:       39:18310:/*EOF*/
        -:        -:18311:/*EOF*/
        -:        -:18312:/*EOF*/
      110:      110:18313:/*EOF*/
        -:        -:18314:/*EOF*/
    #####:    #####:18315:/*EOF*/
    #####:    #####:18316:/*EOF*/
    #####:    #####:18317:/*EOF*/
    #####:    #####:18318:/*EOF*/
        -:        -:18319:/*EOF*/
    #####:    #####:18320:/*EOF*/
    #####:    #####:18321:/*EOF*/
        -:        -:18322:/*EOF*/
        -:        -:18323:/*EOF*/
    #####:    #####:18324:/*EOF*/
        -:        -:18325:/*EOF*/
    #####:    #####:18326:/*EOF*/
    #####:    #####:18327:/*EOF*/
    #####:    #####:18328:/*EOF*/
    #####:    #####:18329:/*EOF*/
        -:        -:18330:/*EOF*/
    #####:    #####:18331:/*EOF*/
    #####:    #####:18332:/*EOF*/
        -:        -:18333:/*EOF*/
        -:        -:18334:/*EOF*/
    #####:    #####:18335:/*EOF*/
        -:        -:18336:/*EOF*/
      144:      144:18337:/*EOF*/
      127:      127:18338:/*EOF*/
      254:      254:18339:/*EOF*/
      127:      127:18340:/*EOF*/
        -:        -:18341:/*EOF*/
        2:        2:18342:/*EOF*/
        2:        2:18343:/*EOF*/
        -:        -:18344:/*EOF*/
        -:        -:18345:/*EOF*/
       19:       19:18346:/*EOF*/
        -:        -:18347:/*EOF*/
    #####:    #####:18348:/*EOF*/
    #####:    #####:18349:/*EOF*/
    #####:    #####:18350:/*EOF*/
    #####:    #####:18351:/*EOF*/
        -:        -:18352:/*EOF*/
    #####:    #####:18353:/*EOF*/
    #####:    #####:18354:/*EOF*/
        -:        -:18355:/*EOF*/
        -:        -:18356:/*EOF*/
    #####:    #####:18357:/*EOF*/
        -:        -:18358:/*EOF*/
    #####:    #####:18359:/*EOF*/
    #####:    #####:18360:/*EOF*/
    #####:    #####:18361:/*EOF*/
    #####:    #####:18362:/*EOF*/
        -:        -:18363:/*EOF*/
    #####:    #####:18364:/*EOF*/
    #####:    #####:18365:/*EOF*/
        -:        -:18366:/*EOF*/
        -:        -:18367:/*EOF*/
    #####:    #####:18368:/*EOF*/
        -:        -:18369:/*EOF*/
    #####:    #####:18370:/*EOF*/
    #####:    #####:18371:/*EOF*/
    #####:    #####:18372:/*EOF*/
    #####:    #####:18373:/*EOF*/
        -:        -:18374:/*EOF*/
    #####:    #####:18375:/*EOF*/
    #####:    #####:18376:/*EOF*/
        -:        -:18377:/*EOF*/
        -:        -:18378:/*EOF*/
    #####:    #####:18379:/*EOF*/
        -:        -:18380:/*EOF*/
    #####:    #####:18381:/*EOF*/
    #####:    #####:18382:/*EOF*/
    #####:    #####:18383:/*EOF*/
    #####:    #####:18384:/*EOF*/
        -:        -:18385:/*EOF*/
    #####:    #####:18386:/*EOF*/
    #####:    #####:18387:/*EOF*/
        -:        -:18388:/*EOF*/
        -:        -:18389:/*EOF*/
    #####:    #####:18390:/*EOF*/
        -:        -:18391:/*EOF*/
    #####:    #####:18392:/*EOF*/
    #####:    #####:18393:/*EOF*/
    #####:    #####:18394:/*EOF*/
    #####:    #####:18395:/*EOF*/
        -:        -:18396:/*EOF*/
    #####:    #####:18397:/*EOF*/
    #####:    #####:18398:/*EOF*/
        -:        -:18399:/*EOF*/
        -:        -:18400:/*EOF*/
    #####:    #####:18401:/*EOF*/
        -:        -:18402:/*EOF*/
    #####:    #####:18403:/*EOF*/
    #####:    #####:18404:/*EOF*/
    #####:    #####:18405:/*EOF*/
    #####:    #####:18406:/*EOF*/
        -:        -:18407:/*EOF*/
    #####:    #####:18408:/*EOF*/
    #####:    #####:18409:/*EOF*/
        -:        -:18410:/*EOF*/
        -:        -:18411:/*EOF*/
    #####:    #####:18412:/*EOF*/
        -:        -:18413:/*EOF*/
       91:       91:18414:/*EOF*/
       76:       76:18415:/*EOF*/
      152:      152:18416:/*EOF*/
       76:       76:18417:/*EOF*/
        -:        -:18418:/*EOF*/
        1:        1:18419:/*EOF*/
        1:        1:18420:/*EOF*/
        -:        -:18421:/*EOF*/
        -:        -:18422:/*EOF*/
       16:       16:18423:/*EOF*/
        -:        -:18424:/*EOF*/
    #####:    #####:18425:/*EOF*/
    #####:    #####:18426:/*EOF*/
    #####:    #####:18427:/*EOF*/
    #####:    #####:18428:/*EOF*/
        -:        -:18429:/*EOF*/
    #####:    #####:18430:/*EOF*/
    #####:    #####:18431:/*EOF*/
        -:        -:18432:/*EOF*/
        -:        -:18433:/*EOF*/
    #####:    #####:18434:/*EOF*/
        -:        -:18435:/*EOF*/
    #####:    #####:18436:/*EOF*/
    #####:    #####:18437:/*EOF*/
    #####:    #####:18438:/*EOF*/
    #####:    #####:18439:/*EOF*/
        -:        -:18440:/*EOF*/
    #####:    #####:18441:/*EOF*/
    #####:    #####:18442:/*EOF*/
        -:        -:18443:/*EOF*/
        -:        -:18444:/*EOF*/
    #####:    #####:18445:/*EOF*/
        -:        -:18446:/*EOF*/
    #####:    #####:18447:/*EOF*/
    #####:    #####:18448:/*EOF*/
    #####:    #####:18449:/*EOF*/
    #####:    #####:18450:/*EOF*/
        -:        -:18451:/*EOF*/
    #####:    #####:18452:/*EOF*/
    #####:    #####:18453:/*EOF*/
        -:        -:18454:/*EOF*/
        -:        -:18455:/*EOF*/
    #####:    #####:18456:/*EOF*/
        -:        -:18457:/*EOF*/
    #####:    #####:18458:/*EOF*/
    #####:    #####:18459:/*EOF*/
    #####:    #####:18460:/*EOF*/
    #####:    #####:18461:/*EOF*/
        -:        -:18462:/*EOF*/
    #####:    #####:18463:/*EOF*/
    #####:    #####:18464:/*EOF*/
        -:        -:18465:/*EOF*/
        -:        -:18466:/*EOF*/
    #####:    #####:18467:/*EOF*/
        -:        -:18468:/*EOF*/
    #####:    #####:18469:/*EOF*/
    #####:    #####:18470:/*EOF*/
    #####:    #####:18471:/*EOF*/
    #####:    #####:18472:/*EOF*/
        -:        -:18473:/*EOF*/
    #####:    #####:18474:/*EOF*/
    #####:    #####:18475:/*EOF*/
        -:        -:18476:/*EOF*/
        -:        -:18477:/*EOF*/
    #####:    #####:18478:/*EOF*/
        -:        -:18479:/*EOF*/
    #####:    #####:18480:/*EOF*/
    #####:    #####:18481:/*EOF*/
    #####:    #####:18482:/*EOF*/
    #####:    #####:18483:/*EOF*/
        -:        -:18484:/*EOF*/
    #####:    #####:18485:/*EOF*/
    #####:    #####:18486:/*EOF*/
        -:        -:18487:/*EOF*/
        -:        -:18488:/*EOF*/
    #####:    #####:18489:/*EOF*/
        -:        -:18490:/*EOF*/
    #####:    #####:18491:/*EOF*/
    #####:    #####:18492:/*EOF*/
    #####:    #####:18493:/*EOF*/
    #####:    #####:18494:/*EOF*/
        -:        -:18495:/*EOF*/
    #####:    #####:18496:/*EOF*/
    #####:    #####:18497:/*EOF*/
        -:        -:18498:/*EOF*/
        -:        -:18499:/*EOF*/
    #####:    #####:18500:/*EOF*/
        -:        -:18501:/*EOF*/
    #####:    #####:18502:/*EOF*/
    #####:    #####:18503:/*EOF*/
    #####:    #####:18504:/*EOF*/
    #####:    #####:18505:/*EOF*/
        -:        -:18506:/*EOF*/
    #####:    #####:18507:/*EOF*/
    #####:    #####:18508:/*EOF*/
        -:        -:18509:/*EOF*/
        -:        -:18510:/*EOF*/
    #####:    #####:18511:/*EOF*/
        -:        -:18512:/*EOF*/
       68:       68:18513:/*EOF*/
       51:       51:18514:/*EOF*/
      102:      102:18515:/*EOF*/
       51:       51:18516:/*EOF*/
        -:        -:18517:/*EOF*/
    #####:    #####:18518:/*EOF*/
    #####:    #####:18519:/*EOF*/
        -:        -:18520:/*EOF*/
        -:        -:18521:/*EOF*/
       17:       17:18522:/*EOF*/
        -:        -:18523:/*EOF*/
       10:       10:18524:/*EOF*/
       10:       10:18525:/*EOF*/
       20:       20:18526:/*EOF*/
       10:       10:18527:/*EOF*/
        -:        -:18528:/*EOF*/
        5:        5:18529:/*EOF*/
        5:        5:18530:/*EOF*/
        -:        -:18531:/*EOF*/
        -:        -:18532:/*EOF*/
        5:        5:18533:/*EOF*/
        -:        -:18534:/*EOF*/
    #####:    #####:18535:/*EOF*/
    #####:    #####:18536:/*EOF*/
    #####:    #####:18537:/*EOF*/
    #####:    #####:18538:/*EOF*/
        -:        -:18539:/*EOF*/
    #####:    #####:18540:/*EOF*/
    #####:    #####:18541:/*EOF*/
        -:        -:18542:/*EOF*/
        -:        -:18543:/*EOF*/
    #####:    #####:18544:/*EOF*/
        -:        -:18545:/*EOF*/
      900:      930:18546:/*EOF*/
      840:      868:18547:/*EOF*/
     1380:     1426:18548:/*EOF*/
      540:      558:18549:/*EOF*/
        -:        -:18550:/*EOF*/
    #####:    #####:18551:/*EOF*/
    #####:    #####:18552:/*EOF*/
        -:        -:18553:/*EOF*/
        -:        -:18554:/*EOF*/
       60:       62:18555:/*EOF*/
        -:        -:18556:/*EOF*/
    #####:    #####:18557:/*EOF*/
    #####:    #####:18558:/*EOF*/
    #####:    #####:18559:/*EOF*/
    #####:    #####:18560:/*EOF*/
        -:        -:18561:/*EOF*/
    #####:    #####:18562:/*EOF*/
    #####:    #####:18563:/*EOF*/
        -:        -:18564:/*EOF*/
        -:        -:18565:/*EOF*/
    #####:    #####:18566:/*EOF*/
        -:        -:18567:/*EOF*/
    #####:    #####:18568:/*EOF*/
    #####:    #####:18569:/*EOF*/
    #####:    #####:18570:/*EOF*/
    #####:    #####:18571:/*EOF*/
        -:        -:18572:/*EOF*/
    #####:    #####:18573:/*EOF*/
    #####:    #####:18574:/*EOF*/
        -:        -:18575:/*EOF*/
        -:        -:18576:/*EOF*/
    #####:    #####:18577:/*EOF*/
        -:        -:18578:/*EOF*/
    #####:    #####:18579:/*EOF*/
    #####:    #####:18580:/*EOF*/
    #####:    #####:18581:/*EOF*/
    #####:    #####:18582:/*EOF*/
        -:        -:18583:/*EOF*/
    #####:    #####:18584:/*EOF*/
    #####:    #####:18585:/*EOF*/
        -:        -:18586:/*EOF*/
        -:        -:18587:/*EOF*/
    #####:    #####:18588:/*EOF*/
        -:        -:18589:/*EOF*/
    #####:    #####:18590:/*EOF*/
    #####:    #####:18591:/*EOF*/
    #####:    #####:18592:/*EOF*/
    #####:    #####:18593:/*EOF*/
        -:        -:18594:/*EOF*/
    #####:    #####:18595:/*EOF*/
    #####:    #####:18596:/*EOF*/
        -:        -:18597:/*EOF*/
        -:        -:18598:/*EOF*/
    #####:    #####:18599:/*EOF*/
        -:        -:18600:/*EOF*/
    #####:    #####:18601:/*EOF*/
    #####:    #####:18602:/*EOF*/
    #####:    #####:18603:/*EOF*/
    #####:    #####:18604:/*EOF*/
        -:        -:18605:/*EOF*/
    #####:    #####:18606:/*EOF*/
    #####:    #####:18607:/*EOF*/
        -:        -:18608:/*EOF*/
        -:        -:18609:/*EOF*/
    #####:    #####:18610:/*EOF*/
        -:        -:18611:/*EOF*/
        5:        5:18612:/*EOF*/
        5:        5:18613:/*EOF*/
       10:       10:18614:/*EOF*/
        5:        5:18615:/*EOF*/
        -:        -:18616:/*EOF*/
        5:        5:18617:/*EOF*/
        5:        5:18618:/*EOF*/
        -:        -:18619:/*EOF*/
        -:        -:18620:/*EOF*/
        5:        5:18621:/*EOF*/
        -:        -:18622:/*EOF*/
    #####:    #####:18623:/*EOF*/
    #####:    #####:18624:/*EOF*/
    #####:    #####:18625:/*EOF*/
    #####:    #####:18626:/*EOF*/
        -:        -:18627:/*EOF*/
    #####:    #####:18628:/*EOF*/
    #####:    #####:18629:/*EOF*/
        -:        -:18630:/*EOF*/
        -:        -:18631:/*EOF*/
    #####:    #####:18632:/*EOF*/
        -:        -:18633:/*EOF*/
    #####:    #####:18634:/*EOF*/
    #####:    #####:18635:/*EOF*/
    #####:    #####:18636:/*EOF*/
    #####:    #####:18637:/*EOF*/
        -:        -:18638:/*EOF*/
    #####:    #####:18639:/*EOF*/
    #####:    #####:18640:/*EOF*/
        -:        -:18641:/*EOF*/
        -:        -:18642:/*EOF*/
    #####:    #####:18643:/*EOF*/
        -:        -:18644:/*EOF*/
    #####:    #####:18645:/*EOF*/
    #####:    #####:18646:/*EOF*/
    #####:    #####:18647:/*EOF*/
    #####:    #####:18648:/*EOF*/
        -:        -:18649:/*EOF*/
    #####:    #####:18650:/*EOF*/
    #####:    #####:18651:/*EOF*/
        -:        -:18652:/*EOF*/
        -:        -:18653:/*EOF*/
    #####:    #####:18654:/*EOF*/
        -:        -:18655:/*EOF*/
    #####:    #####:18656:/*EOF*/
    #####:    #####:18657:/*EOF*/
    #####:    #####:18658:/*EOF*/
    #####:    #####:18659:/*EOF*/
        -:        -:18660:/*EOF*/
    #####:    #####:18661:/*EOF*/
    #####:    #####:18662:/*EOF*/
        -:        -:18663:/*EOF*/
        -:        -:18664:/*EOF*/
    #####:    #####:18665:/*EOF*/
        -:        -:18666:/*EOF*/
    #####:    #####:18667:/*EOF*/
    #####:    #####:18668:/*EOF*/
    #####:    #####:18669:/*EOF*/
    #####:    #####:18670:/*EOF*/
        -:        -:18671:/*EOF*/
    #####:    #####:18672:/*EOF*/
    #####:    #####:18673:/*EOF*/
        -:        -:18674:/*EOF*/
        -:        -:18675:/*EOF*/
    #####:    #####:18676:/*EOF*/
        -:        -:18677:/*EOF*/
    #####:    #####:18678:/*EOF*/
    #####:    #####:18679:/*EOF*/
    #####:    #####:18680:/*EOF*/
    #####:    #####:18681:/*EOF*/
        -:        -:18682:/*EOF*/
    #####:    #####:18683:/*EOF*/
    #####:    #####:18684:/*EOF*/
        -:        -:18685:/*EOF*/
        -:        -:18686:/*EOF*/
    #####:    #####:18687:/*EOF*/
        -:        -:18688:/*EOF*/
    #####:    #####:18689:/*EOF*/
    #####:    #####:18690:/*EOF*/
    #####:    #####:18691:/*EOF*/
    #####:    #####:18692:/*EOF*/
        -:        -:18693:/*EOF*/
    #####:    #####:18694:/*EOF*/
    #####:    #####:18695:/*EOF*/
        -:        -:18696:/*EOF*/
        -:        -:18697:/*EOF*/
    #####:    #####:18698:/*EOF*/
        -:        -:18699:/*EOF*/
    #####:    #####:18700:/*EOF*/
    #####:    #####:18701:/*EOF*/
    #####:    #####:18702:/*EOF*/
    #####:    #####:18703:/*EOF*/
        -:        -:18704:/*EOF*/
    #####:    #####:18705:/*EOF*/
    #####:    #####:18706:/*EOF*/
        -:        -:18707:/*EOF*/
        -:        -:18708:/*EOF*/
    #####:    #####:18709:/*EOF*/
        -:        -:18710:/*EOF*/
    #####:    #####:18711:/*EOF*/
    #####:    #####:18712:/*EOF*/
    #####:    #####:18713:/*EOF*/
    #####:    #####:18714:/*EOF*/
        -:        -:18715:/*EOF*/
    #####:    #####:18716:/*EOF*/
    #####:    #####:18717:/*EOF*/
        -:        -:18718:/*EOF*/
        -:        -:18719:/*EOF*/
    #####:    #####:18720:/*EOF*/
        -:        -:18721:/*EOF*/
    #####:    #####:18722:/*EOF*/
    #####:    #####:18723:/*EOF*/
    #####:    #####:18724:/*EOF*/
    #####:    #####:18725:/*EOF*/
        -:        -:18726:/*EOF*/
    #####:    #####:18727:/*EOF*/
    #####:    #####:18728:/*EOF*/
        -:        -:18729:/*EOF*/
        -:        -:18730:/*EOF*/
    #####:    #####:18731:/*EOF*/
        -:        -:18732:/*EOF*/
    #####:    #####:18733:/*EOF*/
    #####:    #####:18734:/*EOF*/
    #####:    #####:18735:/*EOF*/
    #####:    #####:18736:/*EOF*/
        -:        -:18737:/*EOF*/
    #####:    #####:18738:/*EOF*/
    #####:    #####:18739:/*EOF*/
        -:        -:18740:/*EOF*/
        -:        -:18741:/*EOF*/
    #####:    #####:18742:/*EOF*/
        -:        -:18743:/*EOF*/
    #####:    #####:18744:/*EOF*/
    #####:    #####:18745:/*EOF*/
    #####:    #####:18746:/*EOF*/
    #####:    #####:18747:/*EOF*/
        -:        -:18748:/*EOF*/
    #####:    #####:18749:/*EOF*/
    #####:    #####:18750:/*EOF*/
        -:        -:18751:/*EOF*/
        -:        -:18752:/*EOF*/
    #####:    #####:18753:/*EOF*/
        -:        -:18754:/*EOF*/
    #####:    #####:18755:/*EOF*/
    #####:    #####:18756:/*EOF*/
    #####:    #####:18757:/*EOF*/
    #####:    #####:18758:/*EOF*/
        -:        -:18759:/*EOF*/
    #####:    #####:18760:/*EOF*/
    #####:    #####:18761:/*EOF*/
        -:        -:18762:/*EOF*/
        -:        -:18763:/*EOF*/
    #####:    #####:18764:/*EOF*/
        -:        -:18765:/*EOF*/
    #####:    #####:18766:/*EOF*/
    #####:    #####:18767:/*EOF*/
    #####:    #####:18768:/*EOF*/
    #####:    #####:18769:/*EOF*/
        -:        -:18770:/*EOF*/
    #####:    #####:18771:/*EOF*/
    #####:    #####:18772:/*EOF*/
        -:        -:18773:/*EOF*/
        -:        -:18774:/*EOF*/
    #####:    #####:18775:/*EOF*/
        -:        -:18776:/*EOF*/
    #####:    #####:18777:/*EOF*/
    #####:    #####:18778:/*EOF*/
    #####:    #####:18779:/*EOF*/
    #####:    #####:18780:/*EOF*/
        -:        -:18781:/*EOF*/
    #####:    #####:18782:/*EOF*/
    #####:    #####:18783:/*EOF*/
        -:        -:18784:/*EOF*/
        -:        -:18785:/*EOF*/
    #####:    #####:18786:/*EOF*/
        -:        -:18787:/*EOF*/
    #####:    #####:18788:/*EOF*/
    #####:    #####:18789:/*EOF*/
    #####:    #####:18790:/*EOF*/
    #####:    #####:18791:/*EOF*/
        -:        -:18792:/*EOF*/
    #####:    #####:18793:/*EOF*/
    #####:    #####:18794:/*EOF*/
        -:        -:18795:/*EOF*/
        -:        -:18796:/*EOF*/
    #####:    #####:18797:/*EOF*/
        -:        -:18798:/*EOF*/
    #####:    #####:18799:/*EOF*/
    #####:    #####:18800:/*EOF*/
    #####:    #####:18801:/*EOF*/
    #####:    #####:18802:/*EOF*/
        -:        -:18803:/*EOF*/
    #####:    #####:18804:/*EOF*/
    #####:    #####:18805:/*EOF*/
        -:        -:18806:/*EOF*/
        -:        -:18807:/*EOF*/
    #####:    #####:18808:/*EOF*/
        -:        -:18809:/*EOF*/
    #####:    #####:18810:/*EOF*/
    #####:    #####:18811:/*EOF*/
    #####:    #####:18812:/*EOF*/
    #####:    #####:18813:/*EOF*/
        -:        -:18814:/*EOF*/
    #####:    #####:18815:/*EOF*/
    #####:    #####:18816:/*EOF*/
        -:        -:18817:/*EOF*/
        -:        -:18818:/*EOF*/
    #####:    #####:18819:/*EOF*/
        -:        -:18820:/*EOF*/
      324:      420:18821:/*EOF*/
      270:      350:18822:/*EOF*/
      540:      700:18823:/*EOF*/
      270:      350:18824:/*EOF*/
        -:        -:18825:/*EOF*/
    #####:    #####:18826:/*EOF*/
    #####:    #####:18827:/*EOF*/
        -:        -:18828:/*EOF*/
        -:        -:18829:/*EOF*/
       54:       70:18830:/*EOF*/
        -:        -:18831:/*EOF*/
      130:      130:18832:/*EOF*/
      104:      104:18833:/*EOF*/
      208:      208:18834:/*EOF*/
      104:      104:18835:/*EOF*/
        -:        -:18836:/*EOF*/
    #####:    #####:18837:/*EOF*/
    #####:    #####:18838:/*EOF*/
        -:        -:18839:/*EOF*/
        -:        -:18840:/*EOF*/
       26:       26:18841:/*EOF*/
        -:        -:18842:/*EOF*/
    #####:    #####:18843:/*EOF*/
    #####:    #####:18844:/*EOF*/
    #####:    #####:18845:/*EOF*/
    #####:    #####:18846:/*EOF*/
        -:        -:18847:/*EOF*/
    #####:    #####:18848:/*EOF*/
    #####:    #####:18849:/*EOF*/
        -:        -:18850:/*EOF*/
        -:        -:18851:/*EOF*/
    #####:    #####:18852:/*EOF*/
        -:        -:18853:/*EOF*/
    #####:    #####:18854:/*EOF*/
    #####:    #####:18855:/*EOF*/
    #####:    #####:18856:/*EOF*/
    #####:    #####:18857:/*EOF*/
        -:        -:18858:/*EOF*/
    #####:    #####:18859:/*EOF*/
    #####:    #####:18860:/*EOF*/
        -:        -:18861:/*EOF*/
        -:        -:18862:/*EOF*/
    #####:    #####:18863:/*EOF*/
        -:        -:18864:/*EOF*/
    #####:    #####:18865:/*EOF*/
    #####:    #####:18866:/*EOF*/
    #####:    #####:18867:/*EOF*/
    #####:    #####:18868:/*EOF*/
        -:        -:18869:/*EOF*/
    #####:    #####:18870:/*EOF*/
    #####:    #####:18871:/*EOF*/
        -:        -:18872:/*EOF*/
        -:        -:18873:/*EOF*/
    #####:    #####:18874:/*EOF*/
        -:        -:18875:/*EOF*/
    #####:    #####:18876:/*EOF*/
    #####:    #####:18877:/*EOF*/
    #####:    #####:18878:/*EOF*/
    #####:    #####:18879:/*EOF*/
        -:        -:18880:/*EOF*/
    #####:    #####:18881:/*EOF*/
    #####:    #####:18882:/*EOF*/
        -:        -:18883:/*EOF*/
        -:        -:18884:/*EOF*/
    #####:    #####:18885:/*EOF*/
        -:        -:18886:/*EOF*/
    #####:    #####:18887:/*EOF*/
    #####:    #####:18888:/*EOF*/
    #####:    #####:18889:/*EOF*/
    #####:    #####:18890:/*EOF*/
        -:        -:18891:/*EOF*/
    #####:    #####:18892:/*EOF*/
    #####:    #####:18893:/*EOF*/
        -:        -:18894:/*EOF*/
        -:        -:18895:/*EOF*/
    #####:    #####:18896:/*EOF*/
        -:        -:18897:/*EOF*/
    #####:    #####:18898:/*EOF*/
    #####:    #####:18899:/*EOF*/
    #####:    #####:18900:/*EOF*/
    #####:    #####:18901:/*EOF*/
        -:        -:18902:/*EOF*/
    #####:    #####:18903:/*EOF*/
    #####:    #####:18904:/*EOF*/
        -:        -:18905:/*EOF*/
        -:        -:18906:/*EOF*/
    #####:    #####:18907:/*EOF*/
        -:        -:18908:/*EOF*/
    #####:    #####:18909:/*EOF*/
    #####:    #####:18910:/*EOF*/
    #####:    #####:18911:/*EOF*/
    #####:    #####:18912:/*EOF*/
        -:        -:18913:/*EOF*/
    #####:    #####:18914:/*EOF*/
    #####:    #####:18915:/*EOF*/
        -:        -:18916:/*EOF*/
        -:        -:18917:/*EOF*/
    #####:    #####:18918:/*EOF*/
        -:        -:18919:/*EOF*/
    #####:    #####:18920:/*EOF*/
    #####:    #####:18921:/*EOF*/
    #####:    #####:18922:/*EOF*/
    #####:    #####:18923:/*EOF*/
        -:        -:18924:/*EOF*/
    #####:    #####:18925:/*EOF*/
    #####:    #####:18926:/*EOF*/
        -:        -:18927:/*EOF*/
        -:        -:18928:/*EOF*/
    #####:    #####:18929:/*EOF*/
        -:        -:18930:/*EOF*/
    #####:    #####:18931:/*EOF*/
    #####:    #####:18932:/*EOF*/
    #####:    #####:18933:/*EOF*/
    #####:    #####:18934:/*EOF*/
        -:        -:18935:/*EOF*/
    #####:    #####:18936:/*EOF*/
    #####:    #####:18937:/*EOF*/
        -:        -:18938:/*EOF*/
        -:        -:18939:/*EOF*/
    #####:    #####:18940:/*EOF*/
        -:        -:18941:/*EOF*/
       90:       90:18942:/*EOF*/
       60:       60:18943:/*EOF*/
       90:       90:18944:/*EOF*/
       30:       30:18945:/*EOF*/
        -:        -:18946:/*EOF*/
    #####:    #####:18947:/*EOF*/
    #####:    #####:18948:/*EOF*/
        -:        -:18949:/*EOF*/
        -:        -:18950:/*EOF*/
       30:       30:18951:/*EOF*/
        -:        -:18952:/*EOF*/
       10:       10:18953:/*EOF*/
       10:       10:18954:/*EOF*/
       20:       20:18955:/*EOF*/
       10:       10:18956:/*EOF*/
        -:        -:18957:/*EOF*/
        5:        5:18958:/*EOF*/
        5:        5:18959:/*EOF*/
        -:        -:18960:/*EOF*/
        -:        -:18961:/*EOF*/
        5:        5:18962:/*EOF*/
        -:        -:18963:/*EOF*/
    #####:    #####:18964:/*EOF*/
    #####:    #####:18965:/*EOF*/
    #####:    #####:18966:/*EOF*/
    #####:    #####:18967:/*EOF*/
        -:        -:18968:/*EOF*/
    #####:    #####:18969:/*EOF*/
    #####:    #####:18970:/*EOF*/
        -:        -:18971:/*EOF*/
        -:        -:18972:/*EOF*/
    #####:    #####:18973:/*EOF*/
        -:        -:18974:/*EOF*/
    #####:    #####:18975:/*EOF*/
    #####:    #####:18976:/*EOF*/
    #####:    #####:18977:/*EOF*/
    #####:    #####:18978:/*EOF*/
        -:        -:18979:/*EOF*/
    #####:    #####:18980:/*EOF*/
    #####:    #####:18981:/*EOF*/
        -:        -:18982:/*EOF*/
        -:        -:18983:/*EOF*/
    #####:    #####:18984:/*EOF*/
        -:        -:18985:/*EOF*/
    #####:    #####:18986:/*EOF*/
    #####:    #####:18987:/*EOF*/
    #####:    #####:18988:/*EOF*/
    #####:    #####:18989:/*EOF*/
        -:        -:18990:/*EOF*/
    #####:    #####:18991:/*EOF*/
    #####:    #####:18992:/*EOF*/
        -:        -:18993:/*EOF*/
        -:        -:18994:/*EOF*/
    #####:    #####:18995:/*EOF*/
        -:        -:18996:/*EOF*/
    #####:    #####:18997:/*EOF*/
    #####:    #####:18998:/*EOF*/
    #####:    #####:18999:/*EOF*/
    #####:    #####:19000:/*EOF*/
        -:        -:19001:/*EOF*/
    #####:    #####:19002:/*EOF*/
    #####:    #####:19003:/*EOF*/
        -:        -:19004:/*EOF*/
        -:        -:19005:/*EOF*/
    #####:    #####:19006:/*EOF*/
        -:        -:19007:/*EOF*/
    #####:    #####:19008:/*EOF*/
    #####:    #####:19009:/*EOF*/
    #####:    #####:19010:/*EOF*/
    #####:    #####:19011:/*EOF*/
        -:        -:19012:/*EOF*/
    #####:    #####:19013:/*EOF*/
    #####:    #####:19014:/*EOF*/
        -:        -:19015:/*EOF*/
        -:        -:19016:/*EOF*/
    #####:    #####:19017:/*EOF*/
        -:        -:19018:/*EOF*/
    #####:    #####:19019:/*EOF*/
    #####:    #####:19020:/*EOF*/
    #####:    #####:19021:/*EOF*/
    #####:    #####:19022:/*EOF*/
        -:        -:19023:/*EOF*/
    #####:    #####:19024:/*EOF*/
    #####:    #####:19025:/*EOF*/
        -:        -:19026:/*EOF*/
        -:        -:19027:/*EOF*/
    #####:    #####:19028:/*EOF*/
        -:        -:19029:/*EOF*/
    #####:    #####:19030:/*EOF*/
    #####:    #####:19031:/*EOF*/
    #####:    #####:19032:/*EOF*/
    #####:    #####:19033:/*EOF*/
        -:        -:19034:/*EOF*/
    #####:    #####:19035:/*EOF*/
    #####:    #####:19036:/*EOF*/
        -:        -:19037:/*EOF*/
        -:        -:19038:/*EOF*/
    #####:    #####:19039:/*EOF*/
        -:        -:19040:/*EOF*/
    #####:    #####:19041:/*EOF*/
    #####:    #####:19042:/*EOF*/
    #####:    #####:19043:/*EOF*/
    #####:    #####:19044:/*EOF*/
        -:        -:19045:/*EOF*/
    #####:    #####:19046:/*EOF*/
    #####:    #####:19047:/*EOF*/
        -:        -:19048:/*EOF*/
        -:        -:19049:/*EOF*/
    #####:    #####:19050:/*EOF*/
        -:        -:19051:/*EOF*/
    #####:    #####:19052:/*EOF*/
    #####:    #####:19053:/*EOF*/
    #####:    #####:19054:/*EOF*/
    #####:    #####:19055:/*EOF*/
        -:        -:19056:/*EOF*/
    #####:    #####:19057:/*EOF*/
    #####:    #####:19058:/*EOF*/
        -:        -:19059:/*EOF*/
        -:        -:19060:/*EOF*/
    #####:    #####:19061:/*EOF*/
        -:        -:19062:/*EOF*/
    #####:    #####:19063:/*EOF*/
    #####:    #####:19064:/*EOF*/
    #####:    #####:19065:/*EOF*/
    #####:    #####:19066:/*EOF*/
        -:        -:19067:/*EOF*/
    #####:    #####:19068:/*EOF*/
    #####:    #####:19069:/*EOF*/
        -:        -:19070:/*EOF*/
        -:        -:19071:/*EOF*/
    #####:    #####:19072:/*EOF*/
        -:        -:19073:/*EOF*/
    #####:    #####:19074:/*EOF*/
    #####:    #####:19075:/*EOF*/
    #####:    #####:19076:/*EOF*/
    #####:    #####:19077:/*EOF*/
        -:        -:19078:/*EOF*/
    #####:    #####:19079:/*EOF*/
    #####:    #####:19080:/*EOF*/
        -:        -:19081:/*EOF*/
        -:        -:19082:/*EOF*/
    #####:    #####:19083:/*EOF*/
        -:        -:19084:/*EOF*/
       97:       97:19085:/*EOF*/
        -:        -:19086:/*EOF*/
        -:        -:19087:/*EOF*/
        -:        -:19088:/*EOF*/
      274:      402:19089:/*EOF*/
        -:        -:19090:/*EOF*/
        -:        -:19091:/*EOF*/
        -:        -:19092:/*EOF*/
       27:       27:19093:/*EOF*/
        -:        -:19094:/*EOF*/
       27:       27:19095:/*EOF*/
       27:       27:19096:/*EOF*/
        -:        -:19097:/*EOF*/
      301:      429:19098:/*EOF*/
      274:      402:19099:/*EOF*/
        -:        -:19100:/*EOF*/
        -:        -:19101:/*EOF*/
       27:       27:19102:/*EOF*/
        3:        3:19103:/*EOF*/
        -:        -:19104:/*EOF*/
        -:        -:19105:/*EOF*/
       27:       27:19106:/*EOF*/
        -:        -:19107:/*EOF*/
        -:        -:19108:/*EOF*/
        -:        -:19109:/*EOF*/
        -:        -:19110:/*EOF*/
       27:       27:19111:/*EOF*/
        -:        -:19112:/*EOF*/
       27:       27:19113:/*EOF*/
        -:        -:19114:/*EOF*/
       27:       27:19115:/*EOF*/
        -:        -:19116:/*EOF*/
        -:        -:19117:/*EOF*/
       27:       27:19118:/*EOF*/
       27:       27:19119:/*EOF*/
       27:       27:19120:/*EOF*/
       27:       27:19121:/*EOF*/
       27:       27:19122:/*EOF*/
       27:       27:19123:/*EOF*/
       27:       27:19124:/*EOF*/
       27:       27:19125:/*EOF*/
       27:       27:19126:/*EOF*/
       27:       27:19127:/*EOF*/
       27:       27:19128:/*EOF*/
       27:       27:19129:/*EOF*/
       27:       27:19130:/*EOF*/
       27:       27:19131:/*EOF*/
       27:       27:19132:/*EOF*/
       27:       27:19133:/*EOF*/
       27:       27:19134:/*EOF*/
       27:       27:19135:/*EOF*/
       27:       27:19136:/*EOF*/
       27:       27:19137:/*EOF*/
       27:       27:19138:/*EOF*/
       27:       27:19139:/*EOF*/
       27:       27:19140:/*EOF*/
       27:       27:19141:/*EOF*/
       27:       27:19142:/*EOF*/
       27:       27:19143:/*EOF*/
       27:       27:19144:/*EOF*/
       27:       27:19145:/*EOF*/
       27:       27:19146:/*EOF*/
       27:       27:19147:/*EOF*/
       27:       27:19148:/*EOF*/
       27:       27:19149:/*EOF*/
       27:       27:19150:/*EOF*/
       27:       27:19151:/*EOF*/
       27:       27:19152:/*EOF*/
       27:       27:19153:/*EOF*/
       27:       27:19154:/*EOF*/
        -:        -:19155:/*EOF*/
       54:       54:19156:/*EOF*/
       27:       27:19157:/*EOF*/
       27:       27:19158:/*EOF*/
        -:        -:19159:/*EOF*/
        -:        -:19160:/*EOF*/
       27:       27:19161:/*EOF*/
        -:        -:19162:/*EOF*/
        -:        -:19163:/*EOF*/
        -:        -:19164:/*EOF*/
        -:        -:19165:/*EOF*/
        -:        -:19166:/*EOF*/
        -:        -:19167:/*EOF*/
        -:        -:19168:/*EOF*/
        -:        -:19169:/*EOF*/
        -:        -:19170:/*EOF*/
        -:        -:19171:/*EOF*/
        -:        -:19172:/*EOF*/
        -:        -:19173:/*EOF*/
        -:        -:19174:/*EOF*/
        -:        -:19175:/*EOF*/
        -:        -:19176:/*EOF*/
        -:        -:19177:/*EOF*/
        -:        -:19178:/*EOF*/
        -:        -:19179:/*EOF*/
        -:        -:19180:/*EOF*/
        -:        -:19181:/*EOF*/
        -:        -:19182:/*EOF*/
        -:        -:19183:/*EOF*/
        -:        -:19184:/*EOF*/
        -:        -:19185:/*EOF*/
        -:        -:19186:/*EOF*/
        -:        -:19187:/*EOF*/
        -:        -:19188:/*EOF*/
        -:        -:19189:/*EOF*/
        -:        -:19190:/*EOF*/
        -:        -:19191:/*EOF*/
        -:        -:19192:/*EOF*/
        -:        -:19193:/*EOF*/
        -:        -:19194:/*EOF*/
        -:        -:19195:/*EOF*/
        -:        -:19196:/*EOF*/
        -:        -:19197:/*EOF*/
        -:        -:19198:/*EOF*/
        -:        -:19199:/*EOF*/
        -:        -:19200:/*EOF*/
        -:        -:19201:/*EOF*/
        -:        -:19202:/*EOF*/
        -:        -:19203:/*EOF*/
        -:        -:19204:/*EOF*/
        -:        -:19205:/*EOF*/
        -:        -:19206:/*EOF*/
        -:        -:19207:/*EOF*/
        -:        -:19208:/*EOF*/
        -:        -:19209:/*EOF*/
        -:        -:19210:/*EOF*/
        -:        -:19211:/*EOF*/
        -:        -:19212:/*EOF*/
        -:        -:19213:/*EOF*/
        -:        -:19214:/*EOF*/
        -:        -:19215:/*EOF*/
        -:        -:19216:/*EOF*/
        -:        -:19217:/*EOF*/
        -:        -:19218:/*EOF*/
        -:        -:19219:/*EOF*/
        -:        -:19220:/*EOF*/
        -:        -:19221:/*EOF*/
        -:        -:19222:/*EOF*/
        -:        -:19223:/*EOF*/
        -:        -:19224:/*EOF*/
        -:        -:19225:/*EOF*/
        -:        -:19226:/*EOF*/
        -:        -:19227:/*EOF*/
        -:        -:19228:/*EOF*/
        -:        -:19229:/*EOF*/
        -:        -:19230:/*EOF*/
        -:        -:19231:/*EOF*/
        -:        -:19232:/*EOF*/
        -:        -:19233:/*EOF*/
        -:        -:19234:/*EOF*/
        -:        -:19235:/*EOF*/
        -:        -:19236:/*EOF*/
        -:        -:19237:/*EOF*/
        -:        -:19238:/*EOF*/
        -:        -:19239:/*EOF*/
        -:        -:19240:/*EOF*/
        -:        -:19241:/*EOF*/
        -:        -:19242:/*EOF*/
        -:        -:19243:/*EOF*/
        -:        -:19244:/*EOF*/
        -:        -:19245:/*EOF*/
        -:        -:19246:/*EOF*/
        -:        -:19247:/*EOF*/
        -:        -:19248:/*EOF*/
        -:        -:19249:/*EOF*/
        -:        -:19250:/*EOF*/
        -:        -:19251:/*EOF*/
        -:        -:19252:/*EOF*/
        -:        -:19253:/*EOF*/
        -:        -:19254:/*EOF*/
        -:        -:19255:/*EOF*/
        -:        -:19256:/*EOF*/
        -:        -:19257:/*EOF*/
        -:        -:19258:/*EOF*/
        -:        -:19259:/*EOF*/
        -:        -:19260:/*EOF*/
        -:        -:19261:/*EOF*/
        -:        -:19262:/*EOF*/
        -:        -:19263:/*EOF*/
        -:        -:19264:/*EOF*/
        -:        -:19265:/*EOF*/
        -:        -:19266:/*EOF*/
        -:        -:19267:/*EOF*/
        -:        -:19268:/*EOF*/
        -:        -:19269:/*EOF*/
        -:        -:19270:/*EOF*/
        -:        -:19271:/*EOF*/
        -:        -:19272:/*EOF*/
        -:        -:19273:/*EOF*/
        -:        -:19274:/*EOF*/
        -:        -:19275:/*EOF*/
        -:        -:19276:/*EOF*/
        -:        -:19277:/*EOF*/
        -:        -:19278:/*EOF*/
        -:        -:19279:/*EOF*/
        -:        -:19280:/*EOF*/
        -:        -:19281:/*EOF*/
        -:        -:19282:/*EOF*/
        -:        -:19283:/*EOF*/
        -:        -:19284:/*EOF*/
        -:        -:19285:/*EOF*/
        -:        -:19286:/*EOF*/
        -:        -:19287:/*EOF*/
        -:        -:19288:/*EOF*/
        -:        -:19289:/*EOF*/
        -:        -:19290:/*EOF*/
        -:        -:19291:/*EOF*/
        -:        -:19292:/*EOF*/
        -:        -:19293:/*EOF*/
        -:        -:19294:/*EOF*/
        -:        -:19295:/*EOF*/
        -:        -:19296:/*EOF*/
        -:        -:19297:/*EOF*/
        -:        -:19298:/*EOF*/
        -:        -:19299:/*EOF*/
        -:        -:19300:/*EOF*/
        -:        -:19301:/*EOF*/
        -:        -:19302:/*EOF*/
        -:        -:19303:/*EOF*/
        -:        -:19304:/*EOF*/
        -:        -:19305:/*EOF*/
        -:        -:19306:/*EOF*/
        -:        -:19307:/*EOF*/
        -:        -:19308:/*EOF*/
        -:        -:19309:/*EOF*/
        -:        -:19310:/*EOF*/
        -:        -:19311:/*EOF*/
        -:        -:19312:/*EOF*/
        -:        -:19313:/*EOF*/
        -:        -:19314:/*EOF*/
        -:        -:19315:/*EOF*/
        -:        -:19316:/*EOF*/
        -:        -:19317:/*EOF*/
        -:        -:19318:/*EOF*/
        -:        -:19319:/*EOF*/
        -:        -:19320:/*EOF*/
        -:        -:19321:/*EOF*/
        -:        -:19322:/*EOF*/
        -:        -:19323:/*EOF*/
        -:        -:19324:/*EOF*/
        -:        -:19325:/*EOF*/
        -:        -:19326:/*EOF*/
        -:        -:19327:/*EOF*/
        -:        -:19328:/*EOF*/
        -:        -:19329:/*EOF*/
        -:        -:19330:/*EOF*/
        -:        -:19331:/*EOF*/
        -:        -:19332:/*EOF*/
        -:        -:19333:/*EOF*/
        -:        -:19334:/*EOF*/
        -:        -:19335:/*EOF*/
        -:        -:19336:/*EOF*/
        -:        -:19337:/*EOF*/
        -:        -:19338:/*EOF*/
        -:        -:19339:/*EOF*/
        -:        -:19340:/*EOF*/
        -:        -:19341:/*EOF*/
        -:        -:19342:/*EOF*/
        -:        -:19343:/*EOF*/
        -:        -:19344:/*EOF*/
        -:        -:19345:/*EOF*/
        -:        -:19346:/*EOF*/
        -:        -:19347:/*EOF*/
        -:        -:19348:/*EOF*/
        -:        -:19349:/*EOF*/
        -:        -:19350:/*EOF*/
        -:        -:19351:/*EOF*/
        -:        -:19352:/*EOF*/
        -:        -:19353:/*EOF*/
        -:        -:19354:/*EOF*/
        -:        -:19355:/*EOF*/
        -:        -:19356:/*EOF*/
        -:        -:19357:/*EOF*/
        -:        -:19358:/*EOF*/
        -:        -:19359:/*EOF*/
        -:        -:19360:/*EOF*/
        -:        -:19361:/*EOF*/
        -:        -:19362:/*EOF*/
        -:        -:19363:/*EOF*/
        -:        -:19364:/*EOF*/
        -:        -:19365:/*EOF*/
        -:        -:19366:/*EOF*/
        -:        -:19367:/*EOF*/
        -:        -:19368:/*EOF*/
        -:        -:19369:/*EOF*/
        -:        -:19370:/*EOF*/
        -:        -:19371:/*EOF*/
        -:        -:19372:/*EOF*/
        -:        -:19373:/*EOF*/
        -:        -:19374:/*EOF*/
        -:        -:19375:/*EOF*/
        -:        -:19376:/*EOF*/
        -:        -:19377:/*EOF*/
        -:        -:19378:/*EOF*/
        -:        -:19379:/*EOF*/
        -:        -:19380:/*EOF*/
        -:        -:19381:/*EOF*/
        -:        -:19382:/*EOF*/
        -:        -:19383:/*EOF*/
        -:        -:19384:/*EOF*/
        -:        -:19385:/*EOF*/
        -:        -:19386:/*EOF*/
        -:        -:19387:/*EOF*/
        -:        -:19388:/*EOF*/
        -:        -:19389:/*EOF*/
        -:        -:19390:/*EOF*/
        -:        -:19391:/*EOF*/
        -:        -:19392:/*EOF*/
        -:        -:19393:/*EOF*/
        -:        -:19394:/*EOF*/
        -:        -:19395:/*EOF*/
        -:        -:19396:/*EOF*/
        -:        -:19397:/*EOF*/
        -:        -:19398:/*EOF*/
        -:        -:19399:/*EOF*/
        -:        -:19400:/*EOF*/
        -:        -:19401:/*EOF*/
        -:        -:19402:/*EOF*/
        -:        -:19403:/*EOF*/
        -:        -:19404:/*EOF*/
        -:        -:19405:/*EOF*/
        -:        -:19406:/*EOF*/
        -:        -:19407:/*EOF*/
        -:        -:19408:/*EOF*/
        -:        -:19409:/*EOF*/
        -:        -:19410:/*EOF*/
        -:        -:19411:/*EOF*/
        -:        -:19412:/*EOF*/
        -:        -:19413:/*EOF*/
        -:        -:19414:/*EOF*/
        -:        -:19415:/*EOF*/
        -:        -:19416:/*EOF*/
        -:        -:19417:/*EOF*/
        -:        -:19418:/*EOF*/
        -:        -:19419:/*EOF*/
        -:        -:19420:/*EOF*/
        -:        -:19421:/*EOF*/
        -:        -:19422:/*EOF*/
        -:        -:19423:/*EOF*/
        -:        -:19424:/*EOF*/
        -:        -:19425:/*EOF*/
        -:        -:19426:/*EOF*/
        -:        -:19427:/*EOF*/
        -:        -:19428:/*EOF*/
        -:        -:19429:/*EOF*/
        -:        -:19430:/*EOF*/
        -:        -:19431:/*EOF*/
        -:        -:19432:/*EOF*/
        -:        -:19433:/*EOF*/
        -:        -:19434:/*EOF*/
        -:        -:19435:/*EOF*/
        -:        -:19436:/*EOF*/
        -:        -:19437:/*EOF*/
        -:        -:19438:/*EOF*/
        -:        -:19439:/*EOF*/
        -:        -:19440:/*EOF*/
        -:        -:19441:/*EOF*/
        -:        -:19442:/*EOF*/
        -:        -:19443:/*EOF*/
        -:        -:19444:/*EOF*/
        -:        -:19445:/*EOF*/
        -:        -:19446:/*EOF*/
        -:        -:19447:/*EOF*/
        -:        -:19448:/*EOF*/
        -:        -:19449:/*EOF*/
        -:        -:19450:/*EOF*/
        -:        -:19451:/*EOF*/
        -:        -:19452:/*EOF*/
        -:        -:19453:/*EOF*/
        -:        -:19454:/*EOF*/
        -:        -:19455:/*EOF*/
        -:        -:19456:/*EOF*/
        -:        -:19457:/*EOF*/
        -:        -:19458:/*EOF*/
        -:        -:19459:/*EOF*/
        -:        -:19460:/*EOF*/
        -:        -:19461:/*EOF*/
        -:        -:19462:/*EOF*/
        -:        -:19463:/*EOF*/
        -:        -:19464:/*EOF*/
        -:        -:19465:/*EOF*/
        -:        -:19466:/*EOF*/
        -:        -:19467:/*EOF*/
        -:        -:19468:/*EOF*/
        -:        -:19469:/*EOF*/
        -:        -:19470:/*EOF*/
        -:        -:19471:/*EOF*/
        -:        -:19472:/*EOF*/
        -:        -:19473:/*EOF*/
        -:        -:19474:/*EOF*/
        -:        -:19475:/*EOF*/
        -:        -:19476:/*EOF*/
        -:        -:19477:/*EOF*/
        -:        -:19478:/*EOF*/
        -:        -:19479:/*EOF*/
        -:        -:19480:/*EOF*/
        -:        -:19481:/*EOF*/
        -:        -:19482:/*EOF*/
        -:        -:19483:/*EOF*/
        -:        -:19484:/*EOF*/
        -:        -:19485:/*EOF*/
        -:        -:19486:/*EOF*/
        -:        -:19487:/*EOF*/
        -:        -:19488:/*EOF*/
        -:        -:19489:/*EOF*/
        -:        -:19490:/*EOF*/
        -:        -:19491:/*EOF*/
        -:        -:19492:/*EOF*/
        -:        -:19493:/*EOF*/
        -:        -:19494:/*EOF*/
        -:        -:19495:/*EOF*/
        -:        -:19496:/*EOF*/
        -:        -:19497:/*EOF*/
        -:        -:19498:/*EOF*/
        -:        -:19499:/*EOF*/
        -:        -:19500:/*EOF*/
        -:        -:19501:/*EOF*/
        -:        -:19502:/*EOF*/
        -:        -:19503:/*EOF*/
        -:        -:19504:/*EOF*/
        -:        -:19505:/*EOF*/
        -:        -:19506:/*EOF*/
        -:        -:19507:/*EOF*/
        -:        -:19508:/*EOF*/
        -:        -:19509:/*EOF*/
        -:        -:19510:/*EOF*/
        -:        -:19511:/*EOF*/
        -:        -:19512:/*EOF*/
        -:        -:19513:/*EOF*/
        -:        -:19514:/*EOF*/
        -:        -:19515:/*EOF*/
        -:        -:19516:/*EOF*/
        -:        -:19517:/*EOF*/
        -:        -:19518:/*EOF*/
        -:        -:19519:/*EOF*/
        -:        -:19520:/*EOF*/
        -:        -:19521:/*EOF*/
        -:        -:19522:/*EOF*/
        -:        -:19523:/*EOF*/
        -:        -:19524:/*EOF*/
        -:        -:19525:/*EOF*/
        -:        -:19526:/*EOF*/
        -:        -:19527:/*EOF*/
        -:        -:19528:/*EOF*/
        -:        -:19529:/*EOF*/
        -:        -:19530:/*EOF*/
        -:        -:19531:/*EOF*/
        -:        -:19532:/*EOF*/
        -:        -:19533:/*EOF*/
        -:        -:19534:/*EOF*/
        -:        -:19535:/*EOF*/
        -:        -:19536:/*EOF*/
        -:        -:19537:/*EOF*/
        -:        -:19538:/*EOF*/
        -:        -:19539:/*EOF*/
        -:        -:19540:/*EOF*/
        -:        -:19541:/*EOF*/
        -:        -:19542:/*EOF*/
        -:        -:19543:/*EOF*/
        -:        -:19544:/*EOF*/
        -:        -:19545:/*EOF*/
        -:        -:19546:/*EOF*/
        -:        -:19547:/*EOF*/
        -:        -:19548:/*EOF*/
        -:        -:19549:/*EOF*/
        -:        -:19550:/*EOF*/
        -:        -:19551:/*EOF*/
        -:        -:19552:/*EOF*/
        -:        -:19553:/*EOF*/
        -:        -:19554:/*EOF*/
        -:        -:19555:/*EOF*/
        -:        -:19556:/*EOF*/
        -:        -:19557:/*EOF*/
        -:        -:19558:/*EOF*/
        -:        -:19559:/*EOF*/
        -:        -:19560:/*EOF*/
        -:        -:19561:/*EOF*/
        -:        -:19562:/*EOF*/
        -:        -:19563:/*EOF*/
        -:        -:19564:/*EOF*/
        -:        -:19565:/*EOF*/
        -:        -:19566:/*EOF*/
        -:        -:19567:/*EOF*/
        -:        -:19568:/*EOF*/
        -:        -:19569:/*EOF*/
        -:        -:19570:/*EOF*/
        -:        -:19571:/*EOF*/
        -:        -:19572:/*EOF*/
        -:        -:19573:/*EOF*/
        -:        -:19574:/*EOF*/
        -:        -:19575:/*EOF*/
        -:        -:19576:/*EOF*/
        -:        -:19577:/*EOF*/
        -:        -:19578:/*EOF*/
        -:        -:19579:/*EOF*/
        -:        -:19580:/*EOF*/
        -:        -:19581:/*EOF*/
        -:        -:19582:/*EOF*/
        -:        -:19583:/*EOF*/
        -:        -:19584:/*EOF*/
        -:        -:19585:/*EOF*/
        -:        -:19586:/*EOF*/
        -:        -:19587:/*EOF*/
        -:        -:19588:/*EOF*/
        -:        -:19589:/*EOF*/
        -:        -:19590:/*EOF*/
        -:        -:19591:/*EOF*/
        -:        -:19592:/*EOF*/
        -:        -:19593:/*EOF*/
        -:        -:19594:/*EOF*/
        -:        -:19595:/*EOF*/
        -:        -:19596:/*EOF*/
        -:        -:19597:/*EOF*/
        -:        -:19598:/*EOF*/
        -:        -:19599:/*EOF*/
        -:        -:19600:/*EOF*/
        -:        -:19601:/*EOF*/
        -:        -:19602:/*EOF*/
        -:        -:19603:/*EOF*/
        -:        -:19604:/*EOF*/
        -:        -:19605:/*EOF*/
        -:        -:19606:/*EOF*/
        -:        -:19607:/*EOF*/
        -:        -:19608:/*EOF*/
        -:        -:19609:/*EOF*/
        -:        -:19610:/*EOF*/
        -:        -:19611:/*EOF*/
        -:        -:19612:/*EOF*/
        -:        -:19613:/*EOF*/
        -:        -:19614:/*EOF*/
        -:        -:19615:/*EOF*/
        -:        -:19616:/*EOF*/
        -:        -:19617:/*EOF*/
        -:        -:19618:/*EOF*/
        -:        -:19619:/*EOF*/
        -:        -:19620:/*EOF*/
        -:        -:19621:/*EOF*/
        -:        -:19622:/*EOF*/
        -:        -:19623:/*EOF*/
        -:        -:19624:/*EOF*/
        -:        -:19625:/*EOF*/
        -:        -:19626:/*EOF*/
        -:        -:19627:/*EOF*/
        -:        -:19628:/*EOF*/
        -:        -:19629:/*EOF*/
        -:        -:19630:/*EOF*/
        -:        -:19631:/*EOF*/
        -:        -:19632:/*EOF*/
        -:        -:19633:/*EOF*/
        -:        -:19634:/*EOF*/
        -:        -:19635:/*EOF*/
        -:        -:19636:/*EOF*/
        -:        -:19637:/*EOF*/
        -:        -:19638:/*EOF*/
        -:        -:19639:/*EOF*/
        -:        -:19640:/*EOF*/
        -:        -:19641:/*EOF*/
        -:        -:19642:/*EOF*/
        -:        -:19643:/*EOF*/
        -:        -:19644:/*EOF*/
        -:        -:19645:/*EOF*/
        -:        -:19646:/*EOF*/
        -:        -:19647:/*EOF*/
        -:        -:19648:/*EOF*/
        -:        -:19649:/*EOF*/
        -:        -:19650:/*EOF*/
        -:        -:19651:/*EOF*/
        -:        -:19652:/*EOF*/
        -:        -:19653:/*EOF*/
        -:        -:19654:/*EOF*/
        -:        -:19655:/*EOF*/
        -:        -:19656:/*EOF*/
        -:        -:19657:/*EOF*/
        -:        -:19658:/*EOF*/
        -:        -:19659:/*EOF*/
        -:        -:19660:/*EOF*/
        -:        -:19661:/*EOF*/
        -:        -:19662:/*EOF*/
        -:        -:19663:/*EOF*/
        -:        -:19664:/*EOF*/
        -:        -:19665:/*EOF*/
        -:        -:19666:/*EOF*/
        -:        -:19667:/*EOF*/
        -:        -:19668:/*EOF*/
        -:        -:19669:/*EOF*/
        -:        -:19670:/*EOF*/
        -:        -:19671:/*EOF*/
        -:        -:19672:/*EOF*/
        -:        -:19673:/*EOF*/
        -:        -:19674:/*EOF*/
        -:        -:19675:/*EOF*/
        -:        -:19676:/*EOF*/
        -:        -:19677:/*EOF*/
        -:        -:19678:/*EOF*/
        -:        -:19679:/*EOF*/
        -:        -:19680:/*EOF*/
        -:        -:19681:/*EOF*/
        -:        -:19682:/*EOF*/
        -:        -:19683:/*EOF*/
        -:        -:19684:/*EOF*/
        -:        -:19685:/*EOF*/
        -:        -:19686:/*EOF*/
        -:        -:19687:/*EOF*/
        -:        -:19688:/*EOF*/
        -:        -:19689:/*EOF*/
        -:        -:19690:/*EOF*/
        -:        -:19691:/*EOF*/
        -:        -:19692:/*EOF*/
        -:        -:19693:/*EOF*/
        -:        -:19694:/*EOF*/
        -:        -:19695:/*EOF*/
        -:        -:19696:/*EOF*/
        -:        -:19697:/*EOF*/
        -:        -:19698:/*EOF*/
        -:        -:19699:/*EOF*/
        -:        -:19700:/*EOF*/
        -:        -:19701:/*EOF*/
        -:        -:19702:/*EOF*/
        -:        -:19703:/*EOF*/
        -:        -:19704:/*EOF*/
        -:        -:19705:/*EOF*/
        -:        -:19706:/*EOF*/
        -:        -:19707:/*EOF*/
        -:        -:19708:/*EOF*/
        -:        -:19709:/*EOF*/
        -:        -:19710:/*EOF*/
        -:        -:19711:/*EOF*/
        -:        -:19712:/*EOF*/
        -:        -:19713:/*EOF*/
        -:        -:19714:/*EOF*/
        -:        -:19715:/*EOF*/
        -:        -:19716:/*EOF*/
        -:        -:19717:/*EOF*/
        -:        -:19718:/*EOF*/
        -:        -:19719:/*EOF*/
        -:        -:19720:/*EOF*/
        -:        -:19721:/*EOF*/
        -:        -:19722:/*EOF*/
        -:        -:19723:/*EOF*/
        -:        -:19724:/*EOF*/
        -:        -:19725:/*EOF*/
        -:        -:19726:/*EOF*/
        -:        -:19727:/*EOF*/
        -:        -:19728:/*EOF*/
        -:        -:19729:/*EOF*/
        -:        -:19730:/*EOF*/
        -:        -:19731:/*EOF*/
        -:        -:19732:/*EOF*/
        -:        -:19733:/*EOF*/
        -:        -:19734:/*EOF*/
        -:        -:19735:/*EOF*/
        -:        -:19736:/*EOF*/
        -:        -:19737:/*EOF*/
        -:        -:19738:/*EOF*/
        -:        -:19739:/*EOF*/
        -:        -:19740:/*EOF*/
        -:        -:19741:/*EOF*/
        -:        -:19742:/*EOF*/
        -:        -:19743:/*EOF*/
        -:        -:19744:/*EOF*/
        -:        -:19745:/*EOF*/
        -:        -:19746:/*EOF*/
        -:        -:19747:/*EOF*/
        -:        -:19748:/*EOF*/
        -:        -:19749:/*EOF*/
        -:        -:19750:/*EOF*/
        -:        -:19751:/*EOF*/
        -:        -:19752:/*EOF*/
        -:        -:19753:/*EOF*/
        -:        -:19754:/*EOF*/
        -:        -:19755:/*EOF*/
        -:        -:19756:/*EOF*/
        -:        -:19757:/*EOF*/
        -:        -:19758:/*EOF*/
        -:        -:19759:/*EOF*/
        -:        -:19760:/*EOF*/
        -:        -:19761:/*EOF*/
        -:        -:19762:/*EOF*/
        -:        -:19763:/*EOF*/
        -:        -:19764:/*EOF*/
        -:        -:19765:/*EOF*/
        -:        -:19766:/*EOF*/
        -:        -:19767:/*EOF*/
        -:        -:19768:/*EOF*/
        -:        -:19769:/*EOF*/
        -:        -:19770:/*EOF*/
        -:        -:19771:/*EOF*/
        -:        -:19772:/*EOF*/
        -:        -:19773:/*EOF*/
        -:        -:19774:/*EOF*/
        -:        -:19775:/*EOF*/
        -:        -:19776:/*EOF*/
        -:        -:19777:/*EOF*/
        -:        -:19778:/*EOF*/
        -:        -:19779:/*EOF*/
        -:        -:19780:/*EOF*/
        -:        -:19781:/*EOF*/
        -:        -:19782:/*EOF*/
        -:        -:19783:/*EOF*/
        -:        -:19784:/*EOF*/
        -:        -:19785:/*EOF*/
        -:        -:19786:/*EOF*/
        -:        -:19787:/*EOF*/
        -:        -:19788:/*EOF*/
        -:        -:19789:/*EOF*/
        -:        -:19790:/*EOF*/
        -:        -:19791:/*EOF*/
        -:        -:19792:/*EOF*/
        -:        -:19793:/*EOF*/
        -:        -:19794:/*EOF*/
        -:        -:19795:/*EOF*/
        -:        -:19796:/*EOF*/
        -:        -:19797:/*EOF*/
        -:        -:19798:/*EOF*/
        -:        -:19799:/*EOF*/
        -:        -:19800:/*EOF*/
        -:        -:19801:/*EOF*/
        -:        -:19802:/*EOF*/
        -:        -:19803:/*EOF*/
        -:        -:19804:/*EOF*/
        -:        -:19805:/*EOF*/
        -:        -:19806:/*EOF*/
        -:        -:19807:/*EOF*/
        -:        -:19808:/*EOF*/
        -:        -:19809:/*EOF*/
        -:        -:19810:/*EOF*/
        -:        -:19811:/*EOF*/
        -:        -:19812:/*EOF*/
        -:        -:19813:/*EOF*/
        -:        -:19814:/*EOF*/
        -:        -:19815:/*EOF*/
        -:        -:19816:/*EOF*/
        -:        -:19817:/*EOF*/
        -:        -:19818:/*EOF*/
        -:        -:19819:/*EOF*/
        -:        -:19820:/*EOF*/
        -:        -:19821:/*EOF*/
        -:        -:19822:/*EOF*/
        -:        -:19823:/*EOF*/
        -:        -:19824:/*EOF*/
        -:        -:19825:/*EOF*/
        -:        -:19826:/*EOF*/
        -:        -:19827:/*EOF*/
        -:        -:19828:/*EOF*/
        -:        -:19829:/*EOF*/
        -:        -:19830:/*EOF*/
        -:        -:19831:/*EOF*/
        -:        -:19832:/*EOF*/
        -:        -:19833:/*EOF*/
        -:        -:19834:/*EOF*/
        -:        -:19835:/*EOF*/
        -:        -:19836:/*EOF*/
        -:        -:19837:/*EOF*/
        -:        -:19838:/*EOF*/
        -:        -:19839:/*EOF*/
        -:        -:19840:/*EOF*/
        -:        -:19841:/*EOF*/
        -:        -:19842:/*EOF*/
        -:        -:19843:/*EOF*/
        -:        -:19844:/*EOF*/
        -:        -:19845:/*EOF*/
        -:        -:19846:/*EOF*/
        -:        -:19847:/*EOF*/
        -:        -:19848:/*EOF*/
        -:        -:19849:/*EOF*/
        -:        -:19850:/*EOF*/
        -:        -:19851:/*EOF*/
        -:        -:19852:/*EOF*/
        -:        -:19853:/*EOF*/
        -:        -:19854:/*EOF*/
        -:        -:19855:/*EOF*/
        -:        -:19856:/*EOF*/
        -:        -:19857:/*EOF*/
        -:        -:19858:/*EOF*/
        -:        -:19859:/*EOF*/
        -:        -:19860:/*EOF*/
        -:        -:19861:/*EOF*/
        -:        -:19862:/*EOF*/
        -:        -:19863:/*EOF*/
        -:        -:19864:/*EOF*/
        -:        -:19865:/*EOF*/
        -:        -:19866:/*EOF*/
        -:        -:19867:/*EOF*/
        -:        -:19868:/*EOF*/
        -:        -:19869:/*EOF*/
        -:        -:19870:/*EOF*/
        -:        -:19871:/*EOF*/
        -:        -:19872:/*EOF*/
        -:        -:19873:/*EOF*/
        -:        -:19874:/*EOF*/
        -:        -:19875:/*EOF*/
        -:        -:19876:/*EOF*/
        -:        -:19877:/*EOF*/
        -:        -:19878:/*EOF*/
        -:        -:19879:/*EOF*/
        -:        -:19880:/*EOF*/
        -:        -:19881:/*EOF*/
        -:        -:19882:/*EOF*/
        -:        -:19883:/*EOF*/
        -:        -:19884:/*EOF*/
        -:        -:19885:/*EOF*/
        -:        -:19886:/*EOF*/
        -:        -:19887:/*EOF*/
        -:        -:19888:/*EOF*/
        -:        -:19889:/*EOF*/
        -:        -:19890:/*EOF*/
        -:        -:19891:/*EOF*/
        -:        -:19892:/*EOF*/
        -:        -:19893:/*EOF*/
        -:        -:19894:/*EOF*/
        -:        -:19895:/*EOF*/
        -:        -:19896:/*EOF*/
        -:        -:19897:/*EOF*/
        -:        -:19898:/*EOF*/
        -:        -:19899:/*EOF*/
        -:        -:19900:/*EOF*/
        -:        -:19901:/*EOF*/
        -:        -:19902:/*EOF*/
        -:        -:19903:/*EOF*/
        -:        -:19904:/*EOF*/
        -:        -:19905:/*EOF*/
        -:        -:19906:/*EOF*/
        -:        -:19907:/*EOF*/
        -:        -:19908:/*EOF*/
        -:        -:19909:/*EOF*/
        -:        -:19910:/*EOF*/
        -:        -:19911:/*EOF*/
        -:        -:19912:/*EOF*/
        -:        -:19913:/*EOF*/
        -:        -:19914:/*EOF*/
        -:        -:19915:/*EOF*/
        -:        -:19916:/*EOF*/
        -:        -:19917:/*EOF*/
        -:        -:19918:/*EOF*/
        -:        -:19919:/*EOF*/
        -:        -:19920:/*EOF*/
        -:        -:19921:/*EOF*/
        -:        -:19922:/*EOF*/
        -:        -:19923:/*EOF*/
        -:        -:19924:/*EOF*/
        -:        -:19925:/*EOF*/
        -:        -:19926:/*EOF*/
        -:        -:19927:/*EOF*/
        -:        -:19928:/*EOF*/
        -:        -:19929:/*EOF*/
        -:        -:19930:/*EOF*/
        -:        -:19931:/*EOF*/
        -:        -:19932:/*EOF*/
        -:        -:19933:/*EOF*/
        -:        -:19934:/*EOF*/
        -:        -:19935:/*EOF*/
        -:        -:19936:/*EOF*/
        -:        -:19937:/*EOF*/
        -:        -:19938:/*EOF*/
        -:        -:19939:/*EOF*/
        -:        -:19940:/*EOF*/
        -:        -:19941:/*EOF*/
        -:        -:19942:/*EOF*/
        -:        -:19943:/*EOF*/
        -:        -:19944:/*EOF*/
        -:        -:19945:/*EOF*/
        -:        -:19946:/*EOF*/
        -:        -:19947:/*EOF*/
        -:        -:19948:/*EOF*/
        -:        -:19949:/*EOF*/
        -:        -:19950:/*EOF*/
        -:        -:19951:/*EOF*/
        -:        -:19952:/*EOF*/
        -:        -:19953:/*EOF*/
        -:        -:19954:/*EOF*/
        -:        -:19955:/*EOF*/
        -:        -:19956:/*EOF*/
       36:       52:19957:/*EOF*/
        -:        -:19958:/*EOF*/
        -:        -:19959:/*EOF*/
       36:       52:19960:/*EOF*/
        -:        -:19961:/*EOF*/
      172:      203:19962:/*EOF*/
      136:      151:19963:/*EOF*/
       68:       80:19964:/*EOF*/
        -:        -:19965:/*EOF*/
       68:       71:19966:/*EOF*/
       68:       71:19967:/*EOF*/
    #####:    #####:19968:/*EOF*/
        -:        -:19969:/*EOF*/
       68:       71:19970:/*EOF*/
        -:        -:19971:/*EOF*/
    #####:    #####:19972:/*EOF*/
    #####:    #####:19973:/*EOF*/
    #####:    #####:19974:/*EOF*/
    #####:    #####:19975:/*EOF*/
        -:        -:19976:/*EOF*/
    #####:    #####:19977:/*EOF*/
    #####:    #####:19978:/*EOF*/
        -:        -:19979:/*EOF*/
        -:        -:19980:/*EOF*/
    #####:    #####:19981:/*EOF*/
        -:        -:19982:/*EOF*/
        4:        4:19983:/*EOF*/
        4:        4:19984:/*EOF*/
        8:        8:19985:/*EOF*/
        4:        4:19986:/*EOF*/
        -:        -:19987:/*EOF*/
        4:        4:19988:/*EOF*/
        4:        4:19989:/*EOF*/
        -:        -:19990:/*EOF*/
        -:        -:19991:/*EOF*/
        4:        4:19992:/*EOF*/
        -:        -:19993:/*EOF*/
    #####:    #####:19994:/*EOF*/
    #####:    #####:19995:/*EOF*/
    #####:    #####:19996:/*EOF*/
    #####:    #####:19997:/*EOF*/
        -:        -:19998:/*EOF*/
    #####:    #####:19999:/*EOF*/
    #####:    #####:20000:/*EOF*/
        -:        -:20001:/*EOF*/
        -:        -:20002:/*EOF*/
    #####:    #####:20003:/*EOF*/
        -:        -:20004:/*EOF*/
    #####:    #####:20005:/*EOF*/
    #####:    #####:20006:/*EOF*/
    #####:    #####:20007:/*EOF*/
    #####:    #####:20008:/*EOF*/
        -:        -:20009:/*EOF*/
    #####:    #####:20010:/*EOF*/
    #####:    #####:20011:/*EOF*/
        -:        -:20012:/*EOF*/
        -:        -:20013:/*EOF*/
    #####:    #####:20014:/*EOF*/
        -:        -:20015:/*EOF*/
    #####:    #####:20016:/*EOF*/
    #####:    #####:20017:/*EOF*/
    #####:    #####:20018:/*EOF*/
    #####:    #####:20019:/*EOF*/
        -:        -:20020:/*EOF*/
    #####:    #####:20021:/*EOF*/
    #####:    #####:20022:/*EOF*/
        -:        -:20023:/*EOF*/
        -:        -:20024:/*EOF*/
    #####:    #####:20025:/*EOF*/
        -:        -:20026:/*EOF*/
       20:       20:20027:/*EOF*/
       10:       10:20028:/*EOF*/
       20:       20:20029:/*EOF*/
       10:       10:20030:/*EOF*/
        -:        -:20031:/*EOF*/
    #####:    #####:20032:/*EOF*/
    #####:    #####:20033:/*EOF*/
        -:        -:20034:/*EOF*/
        -:        -:20035:/*EOF*/
       10:       10:20036:/*EOF*/
        -:        -:20037:/*EOF*/
    #####:    #####:20038:/*EOF*/
    #####:    #####:20039:/*EOF*/
    #####:    #####:20040:/*EOF*/
    #####:    #####:20041:/*EOF*/
        -:        -:20042:/*EOF*/
    #####:    #####:20043:/*EOF*/
    #####:    #####:20044:/*EOF*/
        -:        -:20045:/*EOF*/
        -:        -:20046:/*EOF*/
    #####:    #####:20047:/*EOF*/
        -:        -:20048:/*EOF*/
    #####:    #####:20049:/*EOF*/
    #####:    #####:20050:/*EOF*/
    #####:    #####:20051:/*EOF*/
    #####:    #####:20052:/*EOF*/
        -:        -:20053:/*EOF*/
    #####:    #####:20054:/*EOF*/
    #####:    #####:20055:/*EOF*/
        -:        -:20056:/*EOF*/
        -:        -:20057:/*EOF*/
    #####:    #####:20058:/*EOF*/
        -:        -:20059:/*EOF*/
    #####:    #####:20060:/*EOF*/
    #####:    #####:20061:/*EOF*/
    #####:    #####:20062:/*EOF*/
    #####:    #####:20063:/*EOF*/
        -:        -:20064:/*EOF*/
    #####:    #####:20065:/*EOF*/
    #####:    #####:20066:/*EOF*/
        -:        -:20067:/*EOF*/
        -:        -:20068:/*EOF*/
    #####:    #####:20069:/*EOF*/
        -:        -:20070:/*EOF*/
    #####:    #####:20071:/*EOF*/
    #####:    #####:20072:/*EOF*/
    #####:    #####:20073:/*EOF*/
    #####:    #####:20074:/*EOF*/
        -:        -:20075:/*EOF*/
    #####:    #####:20076:/*EOF*/
    #####:    #####:20077:/*EOF*/
        -:        -:20078:/*EOF*/
        -:        -:20079:/*EOF*/
    #####:    #####:20080:/*EOF*/
        -:        -:20081:/*EOF*/
       14:       16:20082:/*EOF*/
        7:        9:20083:/*EOF*/
       14:       18:20084:/*EOF*/
        7:        9:20085:/*EOF*/
        -:        -:20086:/*EOF*/
    #####:        2:20087:/*EOF*/
    #####:        2:20088:/*EOF*/
        -:        -:20089:/*EOF*/
        -:        -:20090:/*EOF*/
        7:        9:20091:/*EOF*/
        -:        -:20092:/*EOF*/
    #####:    #####:20093:/*EOF*/
    #####:    #####:20094:/*EOF*/
    #####:    #####:20095:/*EOF*/
    #####:    #####:20096:/*EOF*/
        -:        -:20097:/*EOF*/
    #####:    #####:20098:/*EOF*/
    #####:    #####:20099:/*EOF*/
        -:        -:20100:/*EOF*/
        -:        -:20101:/*EOF*/
    #####:    #####:20102:/*EOF*/
        -:        -:20103:/*EOF*/
       47:       48:20104:/*EOF*/
        -:        -:20105:/*EOF*/
        -:        -:20106:/*EOF*/
        -:        -:20107:/*EOF*/
       36:       52:20108:/*EOF*/
        -:        -:20109:/*EOF*/
        -:        -:20110:/*EOF*/
        -:        -:20111:/*EOF*/
        5:        5:20112:/*EOF*/
        -:        -:20113:/*EOF*/
        5:        5:20114:/*EOF*/
        5:        5:20115:/*EOF*/
        -:        -:20116:/*EOF*/
       41:       57:20117:/*EOF*/
       36:       52:20118:/*EOF*/
        -:        -:20119:/*EOF*/
        -:        -:20120:/*EOF*/
        5:        5:20121:/*EOF*/
        1:        2:20122:/*EOF*/
        -:        -:20123:/*EOF*/
        -:        -:20124:/*EOF*/
        5:        5:20125:/*EOF*/
        -:        -:20126:/*EOF*/
        -:        -:20127:/*EOF*/
        -:        -:20128:/*EOF*/
        -:        -:20129:/*EOF*/
        5:        5:20130:/*EOF*/
        -:        -:20131:/*EOF*/
        5:        5:20132:/*EOF*/
        -:        -:20133:/*EOF*/
        5:        5:20134:/*EOF*/
        -:        -:20135:/*EOF*/
        -:        -:20136:/*EOF*/
        5:        5:20137:/*EOF*/
        5:        5:20138:/*EOF*/
        5:        5:20139:/*EOF*/
        5:        5:20140:/*EOF*/
        5:        5:20141:/*EOF*/
        5:        5:20142:/*EOF*/
        5:        5:20143:/*EOF*/
        5:        5:20144:/*EOF*/
        5:        5:20145:/*EOF*/
        5:        5:20146:/*EOF*/
        5:        5:20147:/*EOF*/
        5:        5:20148:/*EOF*/
        5:        5:20149:/*EOF*/
        5:        5:20150:/*EOF*/
        5:        5:20151:/*EOF*/
        5:        5:20152:/*EOF*/
        5:        5:20153:/*EOF*/
        5:        5:20154:/*EOF*/
        5:        5:20155:/*EOF*/
        5:        5:20156:/*EOF*/
        5:        5:20157:/*EOF*/
        5:        5:20158:/*EOF*/
        5:        5:20159:/*EOF*/
        5:        5:20160:/*EOF*/
        5:        5:20161:/*EOF*/
        5:        5:20162:/*EOF*/
        5:        5:20163:/*EOF*/
        5:        5:20164:/*EOF*/
        5:        5:20165:/*EOF*/
        5:        5:20166:/*EOF*/
        5:        5:20167:/*EOF*/
        5:        5:20168:/*EOF*/
        5:        5:20169:/*EOF*/
        5:        5:20170:/*EOF*/
        5:        5:20171:/*EOF*/
        5:        5:20172:/*EOF*/
        5:        5:20173:/*EOF*/
        5:        5:20174:/*EOF*/
        -:        -:20175:/*EOF*/
       10:       10:20176:/*EOF*/
        5:        5:20177:/*EOF*/
        5:        5:20178:/*EOF*/
        -:        -:20179:/*EOF*/
        -:        -:20180:/*EOF*/
        5:        5:20181:/*EOF*/

src/compiler/nir/nir_opt_constant_folding.c.gcov

        -:        -:    0:Source:nir/nir_opt_constant_folding.c
        -:        -:    0:Graph:.libs/nir_opt_constant_folding.gcno
        -:        -:    0:Data:.libs/nir_opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      678:      718:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      678:      718:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      678:      718:   58:/*EOF*/
      678:      718:   59:/*EOF*/
      565:      587:   60:/*EOF*/
        -:        -:   61:/*EOF*/
      778:      818:   62:/*EOF*/
      746:      786:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      859:      917:   66:/*EOF*/
      113:      131:   67:/*EOF*/
      113:      131:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      746:      786:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      746:      786:   73:/*EOF*/
      646:      686:   74:/*EOF*/
      100:      100:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      300:      300:   77:/*EOF*/
      100:      100:   78:/*EOF*/
      100:      100:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      100:      100:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
      100:      100:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       32:       32:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       32:       32:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       32:       32:   95:/*EOF*/
       32:       32:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       32:       32:   99:/*EOF*/
       64:       64:  100:/*EOF*/
       32:       32:  101:/*EOF*/
       32:       32:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       32:       32:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       32:       32:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       32:       32:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       32:       32:  111:/*EOF*/
       32:       32:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       32:       32:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      140:      152:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      140:      152:  120:/*EOF*/
        -:        -:  121:/*EOF*/
      222:      234:  122:/*EOF*/
       82:       82:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       82:       82:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       82:       82:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      140:      152:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      226:      248:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      226:      248:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      226:      248:  153:/*EOF*/
      366:      400:  154:/*EOF*/
      140:      152:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      226:      248:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      226:      248:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      310:      454:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      310:      454:  186:/*EOF*/
        -:        -:  187:/*EOF*/
     1580:     1902:  188:/*EOF*/
     1270:     1448:  189:/*EOF*/
        -:        -:  190:/*EOF*/
      678:      718:  191:/*EOF*/
      678:      718:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      226:      248:  194:/*EOF*/
      226:      248:  195:/*EOF*/
      226:      248:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
      366:      482:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      310:      454:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       32:       32:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       32:       32:  212:/*EOF*/
       32:       32:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      342:      486:  215:/*EOF*/
      310:      454:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       32:       32:  219:/*EOF*/
        3:        3:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       32:       32:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
       32:       32:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       32:       32:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       64:       64:  231:/*EOF*/
       32:       32:  232:/*EOF*/
       32:       32:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       32:       32:  236:/*EOF*/

src/compiler/nir/nir_opt_copy_propagate.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_propagate.c
        -:        -:    0:Graph:.libs/nir_opt_copy_propagate.gcno
        -:        -:    0:Data:.libs/nir_opt_copy_propagate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
     2481:     2611:   35:/*EOF*/
        -:        -:   36:/*EOF*/
     4948:     5208:   37:/*EOF*/
     2467:     2597:   38:/*EOF*/
     1984:     2092:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      497:      519:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      497:      519:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      497:      519:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      497:      519:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     1984:     2092:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     6129:     6471:   58:/*EOF*/
     4150:     4386:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     4150:     4386:   63:/*EOF*/
        5:        7:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     5937:     6255:   67:/*EOF*/
     3958:     4170:   68:/*EOF*/
     1979:     2085:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      539:      575:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      539:      575:   75:/*EOF*/
      170:      178:   76:/*EOF*/
      168:      176:   77:/*EOF*/
       80:       84:   78:/*EOF*/
       88:       92:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       82:       86:   82:/*EOF*/
      457:      489:   83:/*EOF*/
       40:       40:   84:/*EOF*/
       94:       94:   85:/*EOF*/
       93:       93:   86:/*EOF*/
       39:       39:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       54:       54:   89:/*EOF*/
       40:       40:   90:/*EOF*/
       14:       14:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        1:        1:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      417:      449:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
     1285:     1645:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1285:     1645:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
     1285:     1645:  111:/*EOF*/
     1285:     1645:  112:/*EOF*/
      746:     1070:  113:/*EOF*/
        -:        -:  114:/*EOF*/
      539:      575:  115:/*EOF*/
      539:      575:  116:/*EOF*/
      456:      488:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       83:       87:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       83:       87:  122:/*EOF*/
       81:       81:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        2:        6:  126:/*EOF*/
        2:        6:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       83:       87:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     3870:     4094:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     3870:     4094:  137:/*EOF*/
     3870:     4094:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
     3870:     4094:  145:/*EOF*/
     3870:     4094:  146:/*EOF*/
     1928:     2058:  147:/*EOF*/
        -:        -:  148:/*EOF*/
     1942:     2036:  149:/*EOF*/
     1942:     2036:  150:/*EOF*/
     1479:     1545:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      463:      491:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      913:      969:  156:/*EOF*/
      450:      478:  157:/*EOF*/
     2075:     2165:  158:/*EOF*/
     1660:     1732:  159:/*EOF*/
      415:      433:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       48:       58:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      228:      278:  164:/*EOF*/
      186:      226:  165:/*EOF*/
      126:      156:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       60:       70:  168:/*EOF*/
       60:       70:  169:/*EOF*/
       48:       58:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       12:       12:  172:/*EOF*/
        6:        6:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       54:       64:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
     2285:     2425:  179:/*EOF*/
     1828:     1940:  180:/*EOF*/
        -:        -:  181:/*EOF*/
      457:      485:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
      457:      485:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
     2454:     2609:  189:/*EOF*/
        -:        -:  190:/*EOF*/
     2454:     2609:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
     2454:     2609:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
      268:      292:  198:/*EOF*/
        -:        -:  199:/*EOF*/
      268:      292:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      268:      292:  203:/*EOF*/
      700:      748:  204:/*EOF*/
      164:      164:  205:/*EOF*/
      164:      164:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
      164:      164:  209:/*EOF*/
      164:      164:  210:/*EOF*/
      164:      164:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      268:      292:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
     3547:     3934:  220:/*EOF*/
        -:        -:  221:/*EOF*/
     3547:     3934:  222:/*EOF*/
     3547:     3934:  223:/*EOF*/
        -:        -:  224:/*EOF*/
     2099:     2210:  225:/*EOF*/
        -:        -:  226:/*EOF*/
     5512:     5819:  227:/*EOF*/
     7283:     7703:  228:/*EOF*/
      457:      485:  229:/*EOF*/
        -:        -:  230:/*EOF*/
     4198:     4420:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
     2099:     2210:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      425:      469:  257:/*EOF*/
     1077:     1185:  258:/*EOF*/
      227:      247:  259:/*EOF*/
      227:      247:  260:/*EOF*/
      227:      247:  261:/*EOF*/
      227:      247:  262:/*EOF*/
       68:       68:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      457:      497:  265:/*EOF*/
        3:        3:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
     1118:     1230:  269:/*EOF*/
      268:      292:  270:/*EOF*/
      268:      292:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      425:      469:  275:/*EOF*/
      710:      798:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      425:      469:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      395:      531:  284:/*EOF*/
      395:      531:  285:/*EOF*/
      395:      531:  286:/*EOF*/
     1185:     1593:  287:/*EOF*/
     1658:     2202:  288:/*EOF*/
       78:       78:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
      395:      531:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      628:      724:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      187:      255:  301:/*EOF*/
        -:        -:  302:/*EOF*/
      187:      255:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
       59:       59:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       59:       59:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      751:     1023:  311:/*EOF*/
     4239:     4898:  312:/*EOF*/
     3547:     3934:  313:/*EOF*/
      427:      449:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
      692:      964:  317:/*EOF*/
      692:      964:  318:/*EOF*/
        2:        6:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
       59:       59:  322:/*EOF*/
        9:       10:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
       59:       59:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       59:       59:  331:/*EOF*/
        -:        -:  332:/*EOF*/
       59:       59:  333:/*EOF*/
        -:        -:  334:/*EOF*/
      118:      118:  335:/*EOF*/
       59:       59:  336:/*EOF*/
        9:       10:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       59:       59:  340:/*EOF*/

src/compiler/nir/nir_opt_copy_prop_vars.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_prop_vars.c
        -:        -:    0:Graph:.libs/nir_opt_copy_prop_vars.gcno
        -:        -:    0:Data:.libs/nir_opt_copy_prop_vars.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
      133:      145:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      133:      145:   94:/*EOF*/
       70:       82:   95:/*EOF*/
       70:       82:   96:/*EOF*/
       70:       82:   97:/*EOF*/
       70:       82:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       63:       63:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      133:      145:  103:/*EOF*/
      133:      145:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      133:      145:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       82:       94:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       82:       94:  112:/*EOF*/
       82:       94:  113:/*EOF*/
       82:       94:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      347:      347:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      347:      347:  132:/*EOF*/
      209:      209:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      138:      138:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      138:      138:  142:/*EOF*/
      138:      138:  143:/*EOF*/
      291:      291:  144:/*EOF*/
      129:      129:  145:/*EOF*/
      129:      129:  146:/*EOF*/
        -:        -:  147:/*EOF*/
      129:      129:  148:/*EOF*/
      129:      129:  149:/*EOF*/
        -:        -:  150:/*EOF*/
      129:      129:  151:/*EOF*/
      129:      129:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      258:      258:  154:/*EOF*/
      129:      129:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      144:      144:  159:/*EOF*/
      114:      114:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       15:       15:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       24:       24:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
       24:       24:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       24:       24:  214:/*EOF*/
       24:       24:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       24:       24:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
      243:      267:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      423:      447:  263:/*EOF*/
      196:      196:  264:/*EOF*/
       16:       16:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      227:      251:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      122:      134:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
      220:      232:  275:/*EOF*/
       98:       98:  276:/*EOF*/
        8:        8:  277:/*EOF*/
        -:        -:  278:/*EOF*/
      122:      134:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
       20:       20:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       20:       20:  286:/*EOF*/
       72:       72:  287:/*EOF*/
       52:       52:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       52:       52:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       52:       52:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       52:       52:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
       52:       52:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
       20:       20:  311:/*EOF*/
       20:       20:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       20:       20:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
      141:      153:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      141:      153:  333:/*EOF*/
      141:      153:  334:/*EOF*/
      140:      152:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      700:      760:  337:/*EOF*/
      560:      608:  338:/*EOF*/
      317:      365:  339:/*EOF*/
      317:      365:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        1:        1:  345:/*EOF*/
        1:        1:  346:/*EOF*/
        5:        5:  347:/*EOF*/
        4:        4:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      141:      153:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        8:        8:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        8:        8:  357:/*EOF*/
        8:        8:  358:/*EOF*/
        8:        8:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        8:        8:  363:/*EOF*/
        8:        8:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        8:        8:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        8:        8:  381:/*EOF*/
        8:        8:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        8:        8:  384:/*EOF*/
        8:        8:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        8:        8:  387:/*EOF*/
        8:        8:  388:/*EOF*/
       25:       25:  389:/*EOF*/
       17:       17:  390:/*EOF*/
       17:       17:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       17:       17:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        8:        8:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        8:        8:  399:/*EOF*/
        8:        8:  400:/*EOF*/
        8:        8:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
    #####:    #####:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
      122:      134:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
      122:      134:  607:/*EOF*/
      114:      126:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        8:        8:  610:/*EOF*/
        8:        8:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      328:      456:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
      410:      550:  622:/*EOF*/
       82:       94:  623:/*EOF*/
        -:        -:  624:/*EOF*/
     2006:     2311:  625:/*EOF*/
     1678:     1855:  626:/*EOF*/
     1471:     1626:  627:/*EOF*/
        -:        -:  628:/*EOF*/
      207:      229:  629:/*EOF*/
      207:      229:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
      121:      133:  647:/*EOF*/
        -:        -:  648:/*EOF*/
      121:      133:  649:/*EOF*/
      121:      133:  650:/*EOF*/
        -:        -:  651:/*EOF*/
      121:      133:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
      121:      133:  655:/*EOF*/
        8:        8:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        8:        8:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
    #####:    #####:  667:/*EOF*/
        -:        -:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        8:        8:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        8:        8:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      113:      125:  688:/*EOF*/
      337:      397:  689:/*EOF*/
      224:      272:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      121:      133:  698:/*EOF*/
        -:        -:  699:/*EOF*/
      121:      133:  700:/*EOF*/
      113:      125:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
      121:      133:  708:/*EOF*/
      121:      133:  709:/*EOF*/
      121:      133:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
       19:       19:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       95:       95:  718:/*EOF*/
       76:       76:  719:/*EOF*/
        -:        -:  720:/*EOF*/
       19:       19:  721:/*EOF*/
       19:       19:  722:/*EOF*/
       19:       19:  723:/*EOF*/
        -:        -:  724:/*EOF*/
       19:       19:  725:/*EOF*/
       19:       19:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        1:        1:  730:/*EOF*/
        1:        1:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        1:        1:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        1:        1:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        1:        1:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        1:        1:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
    #####:    #####:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        1:        1:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        1:        1:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        1:        1:  771:/*EOF*/
        1:        1:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
       66:       76:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
      328:      456:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
       27:       27:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
       27:       27:  786:/*EOF*/
       27:       27:  787:/*EOF*/
       27:       27:  788:/*EOF*/
       27:       27:  789:/*EOF*/
        -:        -:  790:/*EOF*/
       27:       27:  791:/*EOF*/
       54:       54:  792:/*EOF*/
       27:       27:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
       27:       27:  797:/*EOF*/
        -:        -:  798:/*EOF*/
       27:       27:  799:/*EOF*/
      355:      483:  800:/*EOF*/
      328:      456:  801:/*EOF*/
        -:        -:  802:/*EOF*/
       27:       27:  803:/*EOF*/
        2:        2:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        2:        2:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
       27:       27:  810:/*EOF*/
        -:        -:  811:/*EOF*/
       27:       27:  812:/*EOF*/

src/compiler/nir/nir_opt_cse.c.gcov

        -:        -:    0:Source:nir/nir_opt_cse.c
        -:        -:    0:Graph:.libs/nir_opt_cse.gcno
        -:        -:    0:Data:.libs/nir_opt_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      328:      456:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      328:      456:   44:/*EOF*/
        -:        -:   45:/*EOF*/
     1431:     1696:   46:/*EOF*/
     1103:     1240:   47:/*EOF*/
       82:       93:   48:/*EOF*/
       82:       93:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      629:      885:   53:/*EOF*/
      301:      429:   54:/*EOF*/
      301:      429:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
     1349:     1603:   58:/*EOF*/
     1021:     1147:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      328:      456:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       27:       27:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       27:       27:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       27:       27:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       27:       27:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       27:       27:   73:/*EOF*/
        8:        8:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       27:       27:   77:/*EOF*/
       27:       27:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       27:       27:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       27:       27:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       54:       54:   86:/*EOF*/
       27:       27:   87:/*EOF*/
       27:       27:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       27:       27:   91:/*EOF*/

src/compiler/nir/nir_opt_dce.c.gcov

        -:        -:    0:Source:nir/nir_opt_dce.c
        -:        -:    0:Graph:.libs/nir_opt_dce.gcno
        -:        -:    0:Data:.libs/nir_opt_dce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
     1223:     1374:   38:/*EOF*/
        -:        -:   39:/*EOF*/
     1223:     1374:   40:/*EOF*/
     1223:     1374:   41:/*EOF*/
     1223:     1374:   42:/*EOF*/
     1223:     1374:   43:/*EOF*/
     1223:     1374:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
     1223:     1374:   47:/*EOF*/
        -:        -:   48:/*EOF*/
     1223:     1374:   49:/*EOF*/
     1223:     1374:   50:/*EOF*/
     1223:     1374:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
     1734:     1924:   55:/*EOF*/
        -:        -:   56:/*EOF*/
     1734:     1924:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     1734:     1924:   59:/*EOF*/
     1050:     1129:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
     1734:     1924:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
     1841:     2043:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
     1841:     2043:   77:/*EOF*/
        -:        -:   78:/*EOF*/
     1841:     2043:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       37:       73:   82:/*EOF*/
       37:       73:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     1083:     1141:   86:/*EOF*/
     1083:     1141:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
     1083:     1141:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
      226:      248:   92:/*EOF*/
      226:      248:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      376:      420:   95:/*EOF*/
      188:      210:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       38:       38:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      226:      248:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      495:      581:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     1841:     2043:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
      364:      508:  116:/*EOF*/
        -:        -:  117:/*EOF*/
     2205:     2551:  118:/*EOF*/
     1841:     2043:  119:/*EOF*/
        -:        -:  120:/*EOF*/
      364:      508:  121:/*EOF*/
      364:      508:  122:/*EOF*/
      196:      268:  123:/*EOF*/
       98:      134:  124:/*EOF*/
       98:      134:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
      364:      508:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       32:       32:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       32:       32:  134:/*EOF*/
       32:       32:  135:/*EOF*/
        -:        -:  136:/*EOF*/
      396:      540:  137:/*EOF*/
      364:      508:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
     1287:     1438:  141:/*EOF*/
     1223:     1374:  142:/*EOF*/
     1223:     1374:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       32:       32:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       32:       32:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      396:      540:  150:/*EOF*/
     2205:     2551:  151:/*EOF*/
     1841:     2043:  152:/*EOF*/
      618:      669:  153:/*EOF*/
      618:      669:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       32:       32:  159:/*EOF*/
       14:       14:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       32:       32:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       32:       32:  167:/*EOF*/
        -:        -:  168:/*EOF*/
       32:       32:  169:/*EOF*/
       64:       64:  170:/*EOF*/
       32:       32:  171:/*EOF*/
       14:       14:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       32:       32:  175:/*EOF*/

src/compiler/nir/nir_opt_dead_cf.c.gcov

        -:        -:    0:Source:nir/nir_opt_dead_cf.c
        -:        -:    0:Graph:.libs/nir_opt_dead_cf.gcno
        -:        -:    0:Data:.libs/nir_opt_dead_cf.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        1:        1:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        8:        8:  138:/*EOF*/
       47:       47:  139:/*EOF*/
       40:       40:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
       41:       41:  148:/*EOF*/
        1:        1:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       40:       40:  152:/*EOF*/
       39:       39:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        1:        1:  155:/*EOF*/
        1:        1:  156:/*EOF*/
        -:        -:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        1:        1:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        4:        4:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        4:        4:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        4:        4:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
       17:       33:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       17:       33:  193:/*EOF*/
       17:       33:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       34:       66:  196:/*EOF*/
       17:       33:  197:/*EOF*/
       16:       32:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        1:        1:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        1:        1:  203:/*EOF*/
        1:        1:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        3:        3:  207:/*EOF*/
        1:        1:  208:/*EOF*/
        6:        6:  209:/*EOF*/
        5:        5:  210:/*EOF*/
        1:        1:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
      274:      402:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      274:      402:  221:/*EOF*/
      274:      402:  222:/*EOF*/
       71:      103:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       71:      103:  226:/*EOF*/
       71:      103:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      203:      299:  233:/*EOF*/
      203:      299:  234:/*EOF*/
      186:      266:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       17:       33:  237:/*EOF*/
       17:       33:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
      274:      402:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      274:      402:  247:/*EOF*/
       71:      119:  248:/*EOF*/
        -:        -:  249:/*EOF*/
      203:      283:  250:/*EOF*/
      203:      283:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      186:      266:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      186:      266:  257:/*EOF*/
      186:      266:  258:/*EOF*/
        -:        -:  259:/*EOF*/
      186:      266:  260:/*EOF*/
        -:        -:  261:/*EOF*/
      548:      804:  262:/*EOF*/
      362:      538:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      274:      402:  265:/*EOF*/
      274:      402:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
      274:      402:  285:/*EOF*/
       33:       65:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       33:       65:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      274:      402:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
       71:      103:  298:/*EOF*/
        -:        -:  299:/*EOF*/
       71:      103:  300:/*EOF*/
       71:      103:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       71:      103:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       71:      103:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
       17:       33:  317:/*EOF*/
        -:        -:  318:/*EOF*/
       17:       33:  319:/*EOF*/
        -:        -:  320:/*EOF*/
       17:       33:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      362:      538:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      186:      266:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
       27:       27:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
       27:       27:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       27:       27:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
       27:       27:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       27:       27:  347:/*EOF*/
        -:        -:  348:/*EOF*/
       27:       27:  349:/*EOF*/
        -:        -:  350:/*EOF*/
       54:       54:  351:/*EOF*/
       27:       27:  352:/*EOF*/
       27:       27:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       27:       27:  355:/*EOF*/

src/compiler/nir/nir_opt_if.c.gcov

        -:        -:    0:Source:nir/nir_opt_if.c
        -:        -:    0:Graph:.libs/nir_opt_if.gcno
        -:        -:    0:Data:.libs/nir_opt_if.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       17:       33:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       17:       33:   84:/*EOF*/
       17:       33:   85:/*EOF*/
       17:       33:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       17:       33:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       17:       33:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       17:       33:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       51:       99:  100:/*EOF*/
       34:       66:  101:/*EOF*/
       17:       33:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       17:       33:  105:/*EOF*/
       17:       33:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       17:       33:  109:/*EOF*/
       17:       33:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       17:       33:  112:/*EOF*/
       17:       33:  113:/*EOF*/
       17:       33:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      186:      266:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      186:      266:  206:/*EOF*/
      548:      804:  207:/*EOF*/
      362:      538:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      274:      402:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
       71:      103:  213:/*EOF*/
       71:      103:  214:/*EOF*/
       71:      103:  215:/*EOF*/
       71:      103:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
       17:       33:  220:/*EOF*/
       17:       33:  221:/*EOF*/
       17:       33:  222:/*EOF*/
       17:       33:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      186:      266:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
       27:       27:  235:/*EOF*/
        -:        -:  236:/*EOF*/
       27:       27:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       54:       54:  239:/*EOF*/
       27:       27:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       27:       27:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       27:       27:  255:/*EOF*/

src/compiler/nir/nir_opt_loop_unroll.c.gcov

        -:        -:    0:Source:nir/nir_opt_loop_unroll.c
        -:        -:    0:Graph:.libs/nir_opt_loop_unroll.gcno
        -:        -:    0:Data:.libs/nir_opt_loop_unroll.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        1:        1:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        1:        1:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        1:        1:   56:/*EOF*/
        1:        1:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        1:        1:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        1:        1:   61:/*EOF*/
        1:        1:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        1:        1:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        1:        1:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        1:        1:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        1:        1:   77:/*EOF*/
        1:        1:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        1:        1:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        1:        1:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        1:        1:   99:/*EOF*/
        1:        1:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        1:        1:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        2:        2:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        1:        1:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        1:        1:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        1:        1:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        1:        1:  151:/*EOF*/
        1:        1:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        1:        1:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        1:        1:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        1:        1:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        4:        4:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        3:        3:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        3:        3:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        3:        3:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        3:        3:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        1:        1:  194:/*EOF*/
        1:        1:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        1:        1:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        1:        1:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        1:        1:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        1:        1:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        1:        1:  211:/*EOF*/
        1:        1:  212:/*EOF*/
        1:        1:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        1:        1:  215:/*EOF*/
        1:        1:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
    #####:    #####:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    #####:    #####:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
       17:        1:  462:/*EOF*/
        -:        -:  463:/*EOF*/
       17:        1:  464:/*EOF*/
        -:        -:  465:/*EOF*/
       17:        1:  466:/*EOF*/
       16:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        1:        1:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        1:        1:  472:/*EOF*/
        1:        1:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        1:        1:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
      361:      537:  479:/*EOF*/
        -:        -:  480:/*EOF*/
      361:      537:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
      361:      537:  484:/*EOF*/
        -:        -:  485:/*EOF*/
      273:      401:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       71:      103:  488:/*EOF*/
      142:      206:  489:/*EOF*/
       71:      103:  490:/*EOF*/
      142:      206:  491:/*EOF*/
       71:      103:  492:/*EOF*/
       71:      103:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       17:       33:  496:/*EOF*/
      134:      262:  497:/*EOF*/
      117:      229:  498:/*EOF*/
       17:       33:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
       17:       33:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
       17:       17:  509:/*EOF*/
        -:        -:  510:/*EOF*/
       17:       17:  511:/*EOF*/
    #####:       16:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       17:        1:  514:/*EOF*/
       16:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        1:        1:  517:/*EOF*/
        1:        1:  518:/*EOF*/
        1:        1:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        1:       17:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
       27:       27:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       27:       27:  558:/*EOF*/
       27:       27:  559:/*EOF*/
       27:       27:  560:/*EOF*/
        -:        -:  561:/*EOF*/
      129:      129:  562:/*EOF*/
      102:      102:  563:/*EOF*/
      102:      102:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
       27:       27:  568:/*EOF*/
        1:        1:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       27:       27:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
       27:       27:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       27:       27:  577:/*EOF*/
        -:        -:  578:/*EOF*/
       54:       54:  579:/*EOF*/
       27:       27:  580:/*EOF*/
       27:       27:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       27:       27:  584:/*EOF*/

src/compiler/nir/nir_opt_move_comparisons.c.gcov

        -:        -:    0:Source:nir/nir_opt_move_comparisons.c
        -:        -:    0:Graph:.libs/nir_opt_move_comparisons.gcno
        -:        -:    0:Data:.libs/nir_opt_move_comparisons.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
       46:       48:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       46:       48:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        9:       11:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       37:       37:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      148:      156:   78:/*EOF*/
        -:        -:   79:/*EOF*/
      148:      156:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      148:      156:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      254:      266:   85:/*EOF*/
      152:      158:   86:/*EOF*/
       46:       48:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        9:       11:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        9:       11:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        9:       11:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        9:       11:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      139:      145:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       33:       33:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       33:       33:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       33:       33:  107:/*EOF*/
       33:       33:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       33:       33:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       36:       52:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       36:       52:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       36:       52:  131:/*EOF*/
       36:       52:  132:/*EOF*/
        9:       13:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      141:      163:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      114:      122:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        9:       11:  147:/*EOF*/
      105:      111:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
       52:       54:  152:/*EOF*/
      158:      164:  153:/*EOF*/
      106:      110:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       53:       57:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       36:       52:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        5:        5:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        5:        5:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       10:       10:  170:/*EOF*/
        5:        5:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       41:       57:  174:/*EOF*/
       36:       52:  175:/*EOF*/
        9:       11:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        9:       11:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        5:        5:  184:/*EOF*/

src/compiler/nir/nir_opt_peephole_select.c.gcov

        -:        -:    0:Source:nir/nir_opt_peephole_select.c
        -:        -:    0:Graph:.libs/nir_opt_peephole_select.gcno
        -:        -:    0:Data:.libs/nir_opt_peephole_select.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      107:      139:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      123:      155:   63:/*EOF*/
       87:      119:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       16:       16:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       16:       16:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       12:       12:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
       12:       12:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       12:       12:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        4:        4:   81:/*EOF*/
        4:        4:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       12:       12:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        4:        4:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       34:       34:   96:/*EOF*/
       34:       34:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       34:       34:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       34:       34:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       33:       65:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
       36:       36:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      328:      456:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      328:      456:  153:/*EOF*/
      222:      302:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      106:      154:  156:/*EOF*/
      106:      154:  157:/*EOF*/
       17:       33:  158:/*EOF*/
        -:        -:  159:/*EOF*/
       89:      121:  160:/*EOF*/
       89:      121:  161:/*EOF*/
       89:      121:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      178:      242:  165:/*EOF*/
       89:      121:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       89:      121:  170:/*EOF*/
      107:      139:  171:/*EOF*/
       18:       18:  172:/*EOF*/
       71:      103:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       18:       18:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       18:       18:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       18:       18:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
       18:       18:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       36:       36:  202:/*EOF*/
       25:       25:  203:/*EOF*/
        7:        7:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       18:       18:  206:/*EOF*/
       18:       18:  207:/*EOF*/
       18:       18:  208:/*EOF*/
        -:        -:  209:/*EOF*/
       18:       18:  210:/*EOF*/
        -:        -:  211:/*EOF*/
       18:       18:  212:/*EOF*/
       54:       54:  213:/*EOF*/
       36:       36:  214:/*EOF*/
       36:       36:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       36:       36:  217:/*EOF*/
       36:       36:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       54:       54:  221:/*EOF*/
       18:       18:  222:/*EOF*/
       18:       18:  223:/*EOF*/
       18:       18:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       18:       18:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       18:       18:  229:/*EOF*/
       18:       18:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       18:       18:  233:/*EOF*/
       18:       18:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
       27:       27:  238:/*EOF*/
        -:        -:  239:/*EOF*/
       27:       27:  240:/*EOF*/
       27:       27:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      355:      483:  243:/*EOF*/
      328:      456:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       27:       27:  247:/*EOF*/
        1:        1:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       27:       27:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       27:       27:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       27:       27:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       54:       54:  258:/*EOF*/
       27:       27:  259:/*EOF*/
       27:       27:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
       27:       27:  263:/*EOF*/

src/compiler/nir/nir_opt_remove_phis.c.gcov

        -:        -:    0:Source:nir/nir_opt_remove_phis.c
        -:        -:    0:Graph:.libs/nir_opt_remove_phis.gcno
        -:        -:    0:Data:.libs/nir_opt_remove_phis.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
      204:      268:   32:/*EOF*/
        -:        -:   33:/*EOF*/
      204:      268:   34:/*EOF*/
       99:      163:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      105:      105:   37:/*EOF*/
      105:      105:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      170:      234:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      170:      234:   44:/*EOF*/
      145:      209:   45:/*EOF*/
        -:        -:   46:/*EOF*/
       25:       25:   47:/*EOF*/
       25:       25:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      275:      403:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      275:      403:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      454:      646:   71:/*EOF*/
      385:      497:   72:/*EOF*/
      206:      254:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      179:      243:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      179:      243:   77:/*EOF*/
      179:      243:   78:/*EOF*/
      179:      243:   79:/*EOF*/
        -:        -:   80:/*EOF*/
      376:      504:   81:/*EOF*/
      358:      486:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      358:      486:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      358:      486:   98:/*EOF*/
      179:      243:   99:/*EOF*/
      179:      243:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      179:      243:  102:/*EOF*/
      161:      225:  103:/*EOF*/
      161:      225:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
      179:      243:  109:/*EOF*/
      161:      225:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       18:       18:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       18:       18:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        9:        9:  126:/*EOF*/
       18:       18:  127:/*EOF*/
        9:        9:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
       18:       18:  132:/*EOF*/
       18:       18:  133:/*EOF*/
       18:       18:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       18:       18:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      275:      403:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       27:       27:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       27:       27:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       27:       27:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      302:      430:  149:/*EOF*/
      275:      403:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       27:       27:  153:/*EOF*/
        2:        2:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
       27:       27:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       27:       27:  162:/*EOF*/
        -:        -:  163:/*EOF*/
       27:       27:  164:/*EOF*/
        -:        -:  165:/*EOF*/
       54:       54:  166:/*EOF*/
       27:       27:  167:/*EOF*/
       27:       27:  168:/*EOF*/
        -:        -:  169:/*EOF*/
       27:       27:  170:/*EOF*/

src/compiler/nir/nir_opt_trivial_continues.c.gcov

        -:        -:    0:Source:nir/nir_opt_trivial_continues.c
        -:        -:    0:Graph:.libs/nir_opt_trivial_continues.gcno
        -:        -:    0:Data:.libs/nir_opt_trivial_continues.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
       34:       66:   27:/*EOF*/
        -:        -:   28:/*EOF*/
       34:       66:   29:/*EOF*/
       34:       34:   30:/*EOF*/
        -:        -:   31:/*EOF*/
    #####:       32:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       17:       65:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       17:       65:   38:/*EOF*/
       17:       65:   39:/*EOF*/
       17:       65:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:       32:   42:/*EOF*/
    #####:       32:   43:/*EOF*/
    #####:       16:   44:/*EOF*/
    #####:       16:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:       16:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:       32:   56:/*EOF*/
    #####:       32:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       17:       65:   60:/*EOF*/
       17:       65:   61:/*EOF*/
       17:       65:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
      186:      266:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      186:      266:   77:/*EOF*/
      548:      804:   78:/*EOF*/
      479:      767:   79:/*EOF*/
      117:      229:   80:/*EOF*/
      362:      538:   81:/*EOF*/
        -:        -:   82:/*EOF*/
      274:      402:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       71:      103:   86:/*EOF*/
       71:      103:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
       71:      103:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
       71:      103:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       17:       33:   95:/*EOF*/
       17:       33:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
       17:       33:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
       17:       33:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      186:      266:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       27:       27:  118:/*EOF*/
        -:        -:  119:/*EOF*/
       27:       27:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       54:       54:  122:/*EOF*/
       27:       27:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       27:       27:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       27:       27:  136:/*EOF*/

src/compiler/nir/nir_opt_undef.c.gcov

        -:        -:    0:Source:nir/nir_opt_undef.c
        -:        -:    0:Graph:.libs/nir_opt_undef.gcno
        -:        -:    0:Data:.libs/nir_opt_undef.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
      706:      724:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      706:      724:   41:/*EOF*/
      603:      621:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      103:      103:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      306:      306:   46:/*EOF*/
      206:      206:   47:/*EOF*/
      203:      203:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      206:      206:   50:/*EOF*/
      206:      206:   51:/*EOF*/
      203:      203:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        3:        3:   57:/*EOF*/
        3:        3:   58:/*EOF*/
        3:        3:   59:/*EOF*/
        3:        3:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        3:        3:   63:/*EOF*/
        3:        3:   64:/*EOF*/
        3:        3:   65:/*EOF*/
        3:        3:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        3:        3:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      100:      100:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
      706:      724:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     1412:     1448:   80:/*EOF*/
     1412:     1448:   81:/*EOF*/
     1394:     1430:   82:/*EOF*/
     1376:     1412:   83:/*EOF*/
      688:      706:   84:/*EOF*/
      541:      559:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      165:      165:   87:/*EOF*/
        -:        -:   88:/*EOF*/
      177:      177:   89:/*EOF*/
      330:      330:   90:/*EOF*/
      165:      165:   91:/*EOF*/
      153:      153:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       12:       12:   95:/*EOF*/
       12:       12:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       12:       12:   98:/*EOF*/
        -:        -:   99:/*EOF*/
       12:       12:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      189:      201:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      189:      201:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
       31:       31:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      158:      170:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       62:       62:  121:/*EOF*/
       31:       31:  122:/*EOF*/
       31:       31:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       27:       27:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       27:       27:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       54:       54:  136:/*EOF*/
       27:       27:  137:/*EOF*/
       27:       27:  138:/*EOF*/
      302:      430:  139:/*EOF*/
     1513:     1767:  140:/*EOF*/
     1238:     1364:  141:/*EOF*/
      706:      724:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      706:      724:  144:/*EOF*/
      706:      724:  145:/*EOF*/
      532:      640:  146:/*EOF*/
      189:      201:  147:/*EOF*/
      189:      201:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       27:       27:  153:/*EOF*/
        1:        1:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
       27:       27:  160:/*EOF*/

src/compiler/nir/nir_phi_builder.c.gcov

        -:        -:    0:Source:nir/nir_phi_builder.c
        -:        -:    0:Graph:.libs/nir_phi_builder.gcno
        -:        -:    0:Data:.libs/nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        5:        5:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        5:        5:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        5:        5:   86:/*EOF*/
        5:        5:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        5:        5:   92:/*EOF*/
        5:        5:   93:/*EOF*/
      125:      157:   94:/*EOF*/
      120:      152:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        5:        5:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        5:        5:  100:/*EOF*/
        5:        5:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        5:        5:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       77:       79:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       77:       79:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       77:       79:  114:/*EOF*/
       77:       79:  115:/*EOF*/
       77:       79:  116:/*EOF*/
       77:       79:  117:/*EOF*/
       77:       79:  118:/*EOF*/
       77:       79:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       77:       79:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
      301:      307:  124:/*EOF*/
      147:      149:  125:/*EOF*/
      147:      149:  126:/*EOF*/
      147:      149:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
      370:      384:  130:/*EOF*/
      216:      226:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      328:      350:  133:/*EOF*/
      112:      124:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
      112:      124:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
      112:      124:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       69:       77:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       69:       77:  153:/*EOF*/
       69:       77:  154:/*EOF*/
       69:       77:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
       77:       79:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      155:      157:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      155:      157:  168:/*EOF*/
      155:      157:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      268:      288:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
      268:      288:  178:/*EOF*/
     1165:     1274:  179:/*EOF*/
      629:      698:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      268:      288:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        8:        8:  188:/*EOF*/
        8:        8:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        8:        8:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        8:        8:  194:/*EOF*/
      260:      280:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
       53:       61:  214:/*EOF*/
       53:       61:  215:/*EOF*/
        -:        -:  216:/*EOF*/
       53:       61:  217:/*EOF*/
       53:       61:  218:/*EOF*/
       53:       61:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      207:      219:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      897:      986:  235:/*EOF*/
      629:      698:  236:/*EOF*/
        -:        -:  237:/*EOF*/
      268:      288:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       53:       61:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       53:       61:  244:/*EOF*/
       53:       61:  245:/*EOF*/
        -:        -:  246:/*EOF*/
       53:       61:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        5:        5:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        5:        5:  253:/*EOF*/
        5:        5:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       82:       84:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
      207:      219:  266:/*EOF*/
       53:       61:  267:/*EOF*/
       53:       61:  268:/*EOF*/
       53:       61:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       53:       61:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       53:       61:  278:/*EOF*/
        -:        -:  279:/*EOF*/
      159:      183:  280:/*EOF*/
      106:      122:  281:/*EOF*/
       53:       61:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      159:      183:  284:/*EOF*/
      106:      122:  285:/*EOF*/
      106:      122:  286:/*EOF*/
      106:      122:  287:/*EOF*/
      106:      122:  288:/*EOF*/
      106:      122:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       53:       61:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        5:        5:  296:/*EOF*/
        5:        5:  297:/*EOF*/

src/compiler/nir/nir_remove_dead_variables.c.gcov

        -:        -:    0:Source:nir/nir_remove_dead_variables.c
        -:        -:    0:Graph:.libs/nir_remove_dead_variables.gcno
        -:        -:    0:Data:.libs/nir_remove_dead_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
      219:      229:   31:/*EOF*/
        -:        -:   32:/*EOF*/
      219:      229:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      219:      229:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       49:       49:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      112:      114:   44:/*EOF*/
      112:      114:   45:/*EOF*/
       13:       13:   46:/*EOF*/
      112:      114:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      214:      230:   51:/*EOF*/
      107:      115:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      107:      115:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      219:      229:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        9:        9:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       18:       18:   89:/*EOF*/
        9:        9:   90:/*EOF*/
      133:      165:   91:/*EOF*/
      522:      588:   92:/*EOF*/
      398:      432:   93:/*EOF*/
        -:        -:   94:/*EOF*/
      219:      229:   95:/*EOF*/
      219:      229:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
      179:      203:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        9:        9:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        6:        6:  118:/*EOF*/
        3:        3:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       37:       53:  122:/*EOF*/
      134:      166:  123:/*EOF*/
      100:      116:  124:/*EOF*/
       80:       94:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       20:       22:  127:/*EOF*/
       40:       44:  128:/*EOF*/
       20:       22:  129:/*EOF*/
       17:       19:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        3:        3:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        3:        3:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       12:       12:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       12:       12:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       81:       83:  145:/*EOF*/
       69:       71:  146:/*EOF*/
       69:       71:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       62:       64:  149:/*EOF*/
       62:       64:  150:/*EOF*/
       62:       64:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       12:       12:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        9:        9:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        9:        9:  161:/*EOF*/
        9:        9:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        9:        9:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        9:        9:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        9:        9:  170:/*EOF*/
        4:        4:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        9:        9:  173:/*EOF*/
        3:        3:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        9:        9:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        9:        9:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        9:        9:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        9:        9:  185:/*EOF*/
       10:       10:  186:/*EOF*/
        5:        5:  187:/*EOF*/
        5:        5:  188:/*EOF*/
        3:        3:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        9:        9:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        6:        6:  197:/*EOF*/
        3:        3:  198:/*EOF*/
        3:        3:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        9:        9:  205:/*EOF*/
        9:        9:  206:/*EOF*/

src/compiler/nir/nir_search.c.gcov

        -:        -:    0:Source:nir/nir_search.c
        -:        -:    0:Graph:.libs/nir_search.gcno
        -:        -:    0:Data:.libs/nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
       60:       60:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       60:       60:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       60:       60:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       60:       60:   59:/*EOF*/
       60:       60:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       60:       60:   62:/*EOF*/
       16:       16:   63:/*EOF*/
       16:       16:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       16:       16:   66:/*EOF*/
       16:       16:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       16:       16:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       16:       16:   80:/*EOF*/
       44:       44:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       44:       44:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     7476:     7618:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
     7476:     7618:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     7476:     7618:  114:/*EOF*/
        8:        8:  115:/*EOF*/
        8:        8:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    14976:    15260:  119:/*EOF*/
     7500:     7642:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
     8077:     8219:  123:/*EOF*/
      601:      601:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     7476:     7618:  127:/*EOF*/
        -:        -:  128:/*EOF*/
     2483:     2563:  129:/*EOF*/
     1209:     1275:  130:/*EOF*/
        -:        -:  131:/*EOF*/
     1274:     1288:  132:/*EOF*/
     1274:     1288:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     3208:     3248:  137:/*EOF*/
     3208:     3248:  138:/*EOF*/
        -:        -:  139:/*EOF*/
     3208:     3248:  140:/*EOF*/
      151:      151:  141:/*EOF*/
      150:      150:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        2:        2:  146:/*EOF*/
        1:        1:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        1:        1:  151:/*EOF*/
        -:        -:  152:/*EOF*/
     3596:     3656:  153:/*EOF*/
      539:      559:  154:/*EOF*/
      498:      516:  155:/*EOF*/
        -:        -:  156:/*EOF*/
     2559:     2581:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     2619:     2641:  160:/*EOF*/
       60:       60:  161:/*EOF*/
       60:       60:  162:/*EOF*/
        -:        -:  163:/*EOF*/
     2499:     2521:  164:/*EOF*/
     2499:     2521:  165:/*EOF*/
     2499:     2521:  166:/*EOF*/
     2499:     2521:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    12495:    12605:  169:/*EOF*/
     9996:    10084:  170:/*EOF*/
     2523:     2545:  171:/*EOF*/
        -:        -:  172:/*EOF*/
     7473:     7539:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     2499:     2521:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     1785:     1807:  181:/*EOF*/
        -:        -:  182:/*EOF*/
     1785:     1807:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
     1785:     1807:  186:/*EOF*/
     1690:     1708:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       95:       99:  189:/*EOF*/
       95:       99:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       95:       99:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        6:       12:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        6:       10:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        6:       10:  198:/*EOF*/
        6:       10:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        6:       10:  207:/*EOF*/
        6:        8:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:        2:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       89:       89:  215:/*EOF*/
        -:        -:  216:/*EOF*/
      129:      129:  217:/*EOF*/
      178:      178:  218:/*EOF*/
       89:       89:  219:/*EOF*/
       49:       49:  220:/*EOF*/
        -:        -:  221:/*EOF*/
       40:       40:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
     4760:     4874:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
     4760:     4874:  250:/*EOF*/
       10:       10:  251:/*EOF*/
        -:        -:  252:/*EOF*/
     4750:     4864:  253:/*EOF*/
     1183:     1195:  254:/*EOF*/
        -:        -:  255:/*EOF*/
     3567:     3669:  256:/*EOF*/
        -:        -:  257:/*EOF*/
     4132:     4238:  258:/*EOF*/
      565:      569:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
     3567:     3669:  262:/*EOF*/
     3567:     3669:  263:/*EOF*/
     3567:     3669:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
     3567:     3669:  267:/*EOF*/
     3567:     3669:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
     3567:     3669:  276:/*EOF*/
        8:        8:  277:/*EOF*/
        4:        4:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
     3567:     3669:  286:/*EOF*/
        -:        -:  287:/*EOF*/
     3567:     3669:  288:/*EOF*/
     5465:     5583:  289:/*EOF*/
     5342:     5456:  290:/*EOF*/
        -:        -:  291:/*EOF*/
     3444:     3542:  292:/*EOF*/
     3444:     3542:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
     3567:     3669:  297:/*EOF*/
      123:      127:  298:/*EOF*/
        -:        -:  299:/*EOF*/
     3444:     3542:  300:/*EOF*/
     1430:     1448:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
     1430:     1448:  307:/*EOF*/
        -:        -:  308:/*EOF*/
     1430:     1448:  309:/*EOF*/
        -:        -:  310:/*EOF*/
      726:      734:  311:/*EOF*/
        -:        -:  312:/*EOF*/
      704:      714:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
     2014:     2094:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
      138:      146:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      138:      146:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      138:      146:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       46:       50:  340:/*EOF*/
       46:       50:  341:/*EOF*/
       46:       50:  342:/*EOF*/
       46:       50:  343:/*EOF*/
      123:      133:  344:/*EOF*/
       77:       83:  345:/*EOF*/
       77:       83:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
       77:       83:  348:/*EOF*/
        -:        -:  349:/*EOF*/
       46:       50:  350:/*EOF*/
       46:       50:  351:/*EOF*/
    #####:        2:  352:/*EOF*/
       46:       50:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       91:       95:  357:/*EOF*/
       91:       95:  358:/*EOF*/
       91:       95:  359:/*EOF*/
       91:       95:  360:/*EOF*/
       91:       95:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        1:        1:  365:/*EOF*/
        1:        1:  366:/*EOF*/
        1:        1:  367:/*EOF*/
        1:        1:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      138:      146:  372:/*EOF*/
        1:        1:  373:/*EOF*/
        1:        1:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
      138:      146:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
      138:      146:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      215:      229:  383:/*EOF*/
       77:       83:  384:/*EOF*/
       77:       83:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
       77:       83:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
       77:       83:  390:/*EOF*/
       31:       33:  391:/*EOF*/
       31:       33:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       46:       50:  394:/*EOF*/
       46:       50:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
      138:      146:  399:/*EOF*/
       46:       50:  400:/*EOF*/
       46:       48:  401:/*EOF*/
    #####:        2:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
      123:      133:  405:/*EOF*/
       77:       83:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
      138:      146:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
      138:      146:  415:/*EOF*/
        -:        -:  416:/*EOF*/
      138:      146:  417:/*EOF*/
      137:      145:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        1:        1:  420:/*EOF*/
        -:        -:  421:/*EOF*/
      138:      146:  422:/*EOF*/
       47:       49:  423:/*EOF*/
       47:       49:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      215:      229:  429:/*EOF*/
       77:       83:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
       77:       83:  434:/*EOF*/
        -:        -:  435:/*EOF*/
      138:      146:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      138:      146:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
      138:      146:  444:/*EOF*/
        -:        -:  445:/*EOF*/
       46:       50:  446:/*EOF*/
        -:        -:  447:/*EOF*/
       46:       50:  448:/*EOF*/
        4:        4:  449:/*EOF*/
        -:        -:  450:/*EOF*/
       46:       50:  451:/*EOF*/
       46:       50:  452:/*EOF*/
        -:        -:  453:/*EOF*/
       46:       50:  454:/*EOF*/
       46:       50:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
       46:       50:  462:/*EOF*/
        -:        -:  463:/*EOF*/
      123:      133:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       77:       83:  468:/*EOF*/
        8:        8:  469:/*EOF*/
        -:        -:  470:/*EOF*/
       77:       83:  471:/*EOF*/
       77:       83:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
       46:       50:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       46:       50:  479:/*EOF*/
       46:       50:  480:/*EOF*/
       46:       50:  481:/*EOF*/
       46:       50:  482:/*EOF*/
        -:        -:  483:/*EOF*/
       46:       50:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       91:       95:  488:/*EOF*/
       91:       95:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       91:       95:  491:/*EOF*/
       91:       95:  492:/*EOF*/
        -:        -:  493:/*EOF*/
       91:       95:  494:/*EOF*/
        -:        -:  495:/*EOF*/
       91:       95:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        1:        1:  500:/*EOF*/
        1:        1:  501:/*EOF*/
        1:        1:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        1:        1:  504:/*EOF*/
        -:        -:  505:/*EOF*/
    #####:    #####:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
        -:        -:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        1:        1:  548:/*EOF*/
        1:        1:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        1:        1:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        1:        1:  557:/*EOF*/
        1:        1:  558:/*EOF*/
        1:        1:  559:/*EOF*/
        1:        1:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        1:        1:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
     3486:     3586:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
     3486:     3586:  574:/*EOF*/
        -:        -:  575:/*EOF*/
     6972:     7172:  576:/*EOF*/
     3486:     3586:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     3486:     3586:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
     3486:     3586:  582:/*EOF*/
     3486:     3586:  583:/*EOF*/
     3486:     3586:  584:/*EOF*/
        -:        -:  585:/*EOF*/
     3486:     3586:  586:/*EOF*/
        -:        -:  587:/*EOF*/
     3425:     3523:  588:/*EOF*/
        -:        -:  589:/*EOF*/
       61:       63:  590:/*EOF*/
       61:       63:  591:/*EOF*/
       61:       63:  592:/*EOF*/
       61:       63:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       61:       63:  599:/*EOF*/
       61:       63:  600:/*EOF*/
      122:      126:  601:/*EOF*/
       61:       63:  602:/*EOF*/
       61:       63:  603:/*EOF*/
        -:        -:  604:/*EOF*/
      122:      126:  605:/*EOF*/
       61:       63:  606:/*EOF*/
        -:        -:  607:/*EOF*/
       61:       63:  608:/*EOF*/
        -:        -:  609:/*EOF*/
       61:       63:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
       61:       63:  617:/*EOF*/
        -:        -:  618:/*EOF*/
       61:       63:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       61:       63:  621:/*EOF*/

src/compiler/nir/nir_search.h.gcov

        -:        -:    0:Source:nir/nir_search.h
        -:        -:    0:Graph:.libs/nir_search.gcno
        -:        -:    0:Data:.libs/nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
     3390:     3438:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     1786:     1808:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     1366:     1388:  122:/*EOF*/

src/compiler/nir/nir_split_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_split_var_copies.c
        -:        -:    0:Graph:.libs/nir_split_var_copies.gcno
        -:        -:    0:Data:.libs/nir_split_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
    #####:    #####:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
       89:      105:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      414:      448:  210:/*EOF*/
      325:      343:  211:/*EOF*/
      123:      133:  212:/*EOF*/
        -:        -:  213:/*EOF*/
      202:      210:  214:/*EOF*/
      202:      210:  215:/*EOF*/
      149:      157:  216:/*EOF*/
        -:        -:  217:/*EOF*/
       53:       53:  218:/*EOF*/
       53:       53:  219:/*EOF*/
       53:       53:  220:/*EOF*/
       53:       53:  221:/*EOF*/
        -:        -:  222:/*EOF*/
       53:       53:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       42:       42:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       42:       42:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
       11:       11:  245:/*EOF*/
       11:       11:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       89:      105:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        5:        5:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        5:        5:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       94:      110:  265:/*EOF*/
       89:      105:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        5:        5:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        5:        5:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        5:        5:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        5:        5:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        5:        5:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       10:       10:  284:/*EOF*/
        5:        5:  285:/*EOF*/
        5:        5:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        5:        5:  289:/*EOF*/

src/compiler/nir/nir_sweep.c.gcov

        -:        -:    0:Source:nir/nir_sweep.c
        -:        -:    0:Graph:.libs/nir_sweep.gcno
        -:        -:    0:Data:.libs/nir_sweep.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
      142:      146:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      142:      146:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      142:      146:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       82:       84:   53:/*EOF*/
        -:        -:   54:/*EOF*/
       82:       84:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
       82:       84:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       41:       57:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       41:       57:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      153:      175:   66:/*EOF*/
      112:      118:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      112:      118:   69:/*EOF*/
      112:      118:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       41:       57:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        9:       13:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        9:       13:   77:/*EOF*/
        -:        -:   78:/*EOF*/
       18:       26:   79:/*EOF*/
        9:       13:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
       18:       26:   83:/*EOF*/
        9:       13:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        9:       13:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        2:        4:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        2:        4:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       16:       32:   93:/*EOF*/
       14:       28:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        2:        4:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       47:       69:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       47:       69:  101:/*EOF*/
        -:        -:  102:/*EOF*/
       36:       52:  103:/*EOF*/
       36:       52:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        9:       13:  106:/*EOF*/
        9:       13:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        2:        4:  109:/*EOF*/
        2:        4:  110:/*EOF*/
        -:        -:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
       47:       69:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        5:        5:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        5:        5:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        5:        5:  121:/*EOF*/
        5:        5:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        5:        5:  124:/*EOF*/
        5:        5:  125:/*EOF*/
        5:        5:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       20:       20:  128:/*EOF*/
       15:       15:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        5:        5:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        5:        5:  135:/*EOF*/
        5:        5:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        5:        5:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        5:        5:  141:/*EOF*/
        5:        5:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        5:        5:  144:/*EOF*/
        5:        5:  145:/*EOF*/
        5:        5:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        5:        5:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        5:        5:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        5:        5:  154:/*EOF*/
        5:        5:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        5:        5:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        5:        5:  161:/*EOF*/
        5:        5:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        5:        5:  164:/*EOF*/
        5:        5:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        5:        5:  169:/*EOF*/
        5:        5:  170:/*EOF*/
        5:        5:  171:/*EOF*/
        5:        5:  172:/*EOF*/
        5:        5:  173:/*EOF*/
        5:        5:  174:/*EOF*/
        5:        5:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
       10:       10:  178:/*EOF*/
        5:        5:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        5:        5:  183:/*EOF*/
        5:        5:  184:/*EOF*/

src/compiler/nir/nir_validate.c.gcov

        -:        -:    0:Source:nir/nir_validate.c
        -:        -:    0:Graph:.libs/nir_validate.gcno
        -:        -:    0:Data:.libs/nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
       36:       38:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
       36:       38:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       36:       38:  139:/*EOF*/
       36:       38:  140:/*EOF*/
        -:        -:  141:/*EOF*/
       36:       38:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       36:       38:  144:/*EOF*/
       36:       36:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:        2:  147:/*EOF*/
    #####:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
       36:       38:  151:/*EOF*/
       36:       38:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
       36:       38:  156:/*EOF*/
       36:       38:  157:/*EOF*/
    #####:        2:  158:/*EOF*/
       36:       38:  159:/*EOF*/
        2:        4:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
       36:       38:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       36:       38:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
       36:       38:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    39136:    44022:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    39136:    44022:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    39136:    44022:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    39136:    44022:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    39136:    44022:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    39136:    44022:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    39136:    44022:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    39136:    44022:  194:/*EOF*/
    37285:    41461:  195:/*EOF*/
        -:        -:  196:/*EOF*/
     1851:     2561:  197:/*EOF*/
     1851:     2561:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    39136:    44022:  201:/*EOF*/
     9830:    13274:  202:/*EOF*/
    39136:    44022:  203:/*EOF*/
    11512:    15046:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    39172:    44060:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    39172:    44060:  213:/*EOF*/
    37321:    41497:  214:/*EOF*/
        -:        -:  215:/*EOF*/
     1851:     2563:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    39172:    44060:  218:/*EOF*/
    39136:    44022:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       36:       38:  221:/*EOF*/
    39172:    44060:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    27658:    29010:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    27658:    29010:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    27658:    29010:  230:/*EOF*/
    27624:    28976:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       34:       34:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       34:       34:  236:/*EOF*/
        -:        -:  237:/*EOF*/
   138290:   145050:  238:/*EOF*/
   110632:   116040:  239:/*EOF*/
        -:        -:  240:/*EOF*/
   110632:   116040:  241:/*EOF*/
    30848:    32308:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    27658:    29010:  245:/*EOF*/
    27658:    29010:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       26:       26:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       26:       26:  252:/*EOF*/
        -:        -:  253:/*EOF*/
       26:       26:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       26:       26:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       26:       26:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       26:       26:  261:/*EOF*/
       26:       26:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       26:       26:  264:/*EOF*/
       26:       26:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       26:       26:  269:/*EOF*/
       26:       26:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
       26:       26:  272:/*EOF*/
        1:        1:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       26:       26:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
       26:       26:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       26:       26:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    27243:    29894:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    27243:    29894:  291:/*EOF*/
    27243:    29894:  292:/*EOF*/
    27243:    29894:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    27243:    29894:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    27243:    29894:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    27243:    29894:  299:/*EOF*/
    27243:    29894:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    27243:    29894:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    27243:    29894:  304:/*EOF*/
    27243:    29894:  305:/*EOF*/
        -:        -:  306:/*EOF*/
    27243:    29894:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    27243:    29894:  309:/*EOF*/
    27243:    29894:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    23308:    25815:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    23308:    25815:  316:/*EOF*/
    23282:    25789:  317:/*EOF*/
     2906:     3208:  318:/*EOF*/
    23282:    25789:  319:/*EOF*/
     4037:     4429:  320:/*EOF*/
    23282:    25789:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       26:       26:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    23308:    25815:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    15673:    16428:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    15673:    16428:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    15673:    16428:  332:/*EOF*/
    31321:    32831:  333:/*EOF*/
    31321:    32831:  334:/*EOF*/
    15673:    16428:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    15673:    16428:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    15673:    16428:  345:/*EOF*/
    15673:    16428:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    15673:    16428:  351:/*EOF*/
    15673:    16428:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    15673:    16428:  355:/*EOF*/
        -:        -:  356:/*EOF*/
    15673:    16428:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    15673:    16428:  359:/*EOF*/
    43331:    45438:  360:/*EOF*/
    27658:    29010:  361:/*EOF*/
    27658:    29010:  362:/*EOF*/
    27658:    29010:  363:/*EOF*/
     1787:     1787:  364:/*EOF*/
    25871:    27223:  365:/*EOF*/
    10198:    10795:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    15673:    16428:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    27658:    29010:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    13682:    14674:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    27658:    29010:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    15673:    16428:  380:/*EOF*/
    15673:    16428:  381:/*EOF*/
    15673:    16428:  382:/*EOF*/
     2440:     2796:  383:/*EOF*/
    13233:    13632:  384:/*EOF*/
    13233:    13632:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    15673:    16428:  390:/*EOF*/
        -:        -:  391:/*EOF*/
     7234:     7375:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    15673:    16428:  396:/*EOF*/
    15673:    16428:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
     4461:     4777:  400:/*EOF*/
        -:        -:  401:/*EOF*/
     4461:     4777:  402:/*EOF*/
        -:        -:  403:/*EOF*/
     4461:     4777:  404:/*EOF*/
    15149:    16097:  405:/*EOF*/
     6227:     6543:  406:/*EOF*/
        -:        -:  407:/*EOF*/
     1766:     1766:  408:/*EOF*/
     1766:     1766:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
     1766:     1766:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
     4461:     4777:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
     6227:     6543:  429:/*EOF*/
     6227:     6543:  430:/*EOF*/
        -:        -:  431:/*EOF*/
     4461:     4777:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
     4461:     4777:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     4461:     4777:  437:/*EOF*/
     1488:     1530:  438:/*EOF*/
        -:        -:  439:/*EOF*/
     1488:     1530:  440:/*EOF*/
     1488:     1530:  441:/*EOF*/
        -:        -:  442:/*EOF*/
     4461:     4777:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
     4461:     4777:  446:/*EOF*/
        -:        -:  447:/*EOF*/
     4461:     4777:  448:/*EOF*/
     4461:     4777:  449:/*EOF*/
     4461:     4777:  450:/*EOF*/
        -:        -:  451:/*EOF*/
     4461:     4777:  452:/*EOF*/
        -:        -:  453:/*EOF*/
     4461:     4777:  454:/*EOF*/
     4461:     4777:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
     5484:     5890:  458:/*EOF*/
        -:        -:  459:/*EOF*/
     5484:     5890:  460:/*EOF*/
     8062:     8572:  461:/*EOF*/
     2578:     2682:  462:/*EOF*/
     3691:     4007:  463:/*EOF*/
     3691:     4007:  464:/*EOF*/
     3691:     4007:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
     5484:     5890:  468:/*EOF*/
     7953:     8463:  469:/*EOF*/
     2469:     2573:  470:/*EOF*/
     2469:     2573:  471:/*EOF*/
     2469:     2573:  472:/*EOF*/
     1061:     1075:  473:/*EOF*/
        -:        -:  474:/*EOF*/
     2469:     2573:  475:/*EOF*/
        -:        -:  476:/*EOF*/
     2469:     2573:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
     5484:     5890:  480:/*EOF*/
     9945:    10667:  481:/*EOF*/
     4461:     4777:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
     5484:     5890:  485:/*EOF*/
     4038:     4430:  486:/*EOF*/
     4038:     4430:  487:/*EOF*/
     4038:     4430:  488:/*EOF*/
     3917:     4275:  489:/*EOF*/
        -:        -:  490:/*EOF*/
     4038:     4430:  491:/*EOF*/
        -:        -:  492:/*EOF*/
     4038:     4430:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
     5484:     5890:  496:/*EOF*/
        -:        -:  497:/*EOF*/
     2906:     3208:  498:/*EOF*/
     2906:     3208:  499:/*EOF*/
     2906:     3208:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
     2906:     3208:  503:/*EOF*/
     2906:     3208:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
      785:      799:  507:/*EOF*/
      785:      799:  508:/*EOF*/
      785:      799:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
      785:      799:  512:/*EOF*/
      785:      799:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
      785:      799:  516:/*EOF*/
      785:      799:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
      385:      385:  520:/*EOF*/
        -:        -:  521:/*EOF*/
      385:      385:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
      385:      385:  525:/*EOF*/
        -:        -:  526:/*EOF*/
     1408:     1498:  527:/*EOF*/
        -:        -:  528:/*EOF*/
     5484:     5890:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
     2913:     3057:  573:/*EOF*/
        -:        -:  574:/*EOF*/
     2913:     3057:  575:/*EOF*/
     2913:     3057:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     1048:     1048:  579:/*EOF*/
        -:        -:  580:/*EOF*/
     1048:     1048:  581:/*EOF*/
     1048:     1048:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
     3597:     4957:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
     3597:     4957:  592:/*EOF*/
        -:        -:  593:/*EOF*/
     3597:     4957:  594:/*EOF*/
     3597:     4957:  595:/*EOF*/
        -:        -:  596:/*EOF*/
     3597:     4957:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    29448:    32825:  600:/*EOF*/
        -:        -:  601:/*EOF*/
    29448:    32825:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    29448:    32825:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    29448:    32825:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    15673:    16428:  608:/*EOF*/
    15673:    16428:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
     5484:     5890:  616:/*EOF*/
     5484:     5890:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
     2913:     3057:  624:/*EOF*/
     2913:     3057:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
     3597:     4957:  628:/*EOF*/
     3597:     4957:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
     1048:     1048:  632:/*EOF*/
     1048:     1048:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      733:     1445:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    29448:    32825:  643:/*EOF*/
    29448:    32825:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
     7194:     9914:  647:/*EOF*/
        -:        -:  648:/*EOF*/
     7194:     9914:  649:/*EOF*/
        -:        -:  650:/*EOF*/
     7194:     9914:  651:/*EOF*/
        -:        -:  652:/*EOF*/
     7194:     9914:  653:/*EOF*/
    10791:    14871:  654:/*EOF*/
    10791:    14871:  655:/*EOF*/
     7194:     9914:  656:/*EOF*/
     7194:     9914:  657:/*EOF*/
     7194:     9914:  658:/*EOF*/
     7194:     9914:  659:/*EOF*/
    14388:    19828:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
     8766:    12326:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    15960:    22240:  670:/*EOF*/
    13491:    17331:  671:/*EOF*/
     6297:     7417:  672:/*EOF*/
        -:        -:  673:/*EOF*/
     7194:     9914:  674:/*EOF*/
        -:        -:  675:/*EOF*/
     8766:    12326:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
     6915:     9763:  681:/*EOF*/
        -:        -:  682:/*EOF*/
     6915:     9763:  683:/*EOF*/
        -:        -:  684:/*EOF*/
     6915:     9763:  685:/*EOF*/
        -:        -:  686:/*EOF*/
     6915:     9763:  687:/*EOF*/
    36363:    42588:  688:/*EOF*/
    29448:    32825:  689:/*EOF*/
     3597:     4957:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    29448:    32825:  694:/*EOF*/
      733:     1445:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    29448:    32825:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
     6915:     9763:  701:/*EOF*/
     6915:     9763:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    20745:    29289:  704:/*EOF*/
    13830:    19526:  705:/*EOF*/
     8766:    12326:  706:/*EOF*/
     8766:    12326:  707:/*EOF*/
     8766:    12326:  708:/*EOF*/
        -:        -:  709:/*EOF*/
     8766:    12326:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
    15073:    21481:  715:/*EOF*/
     8158:    11718:  716:/*EOF*/
     8158:    11718:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    12001:    16611:  721:/*EOF*/
     5819:     8293:  722:/*EOF*/
      733:     1445:  723:/*EOF*/
      733:     1445:  724:/*EOF*/
      733:     1445:  725:/*EOF*/
        -:        -:  726:/*EOF*/
      733:     1445:  727:/*EOF*/
      733:     1445:  728:/*EOF*/
      733:     1445:  729:/*EOF*/
      733:     1445:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
     6182:     8318:  747:/*EOF*/
     6182:     8318:  748:/*EOF*/
     3954:     5022:  749:/*EOF*/
        -:        -:  750:/*EOF*/
      377:      733:  751:/*EOF*/
      377:      733:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
      377:      733:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
     2969:     3681:  760:/*EOF*/
     2969:     3681:  761:/*EOF*/
     2969:     3681:  762:/*EOF*/
     2969:     3681:  763:/*EOF*/
     2969:     3681:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
      608:      608:  768:/*EOF*/
      608:      608:  769:/*EOF*/
      608:      608:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
     2228:     3296:  776:/*EOF*/
     1851:     2563:  777:/*EOF*/
     1851:     2563:  778:/*EOF*/
        -:        -:  779:/*EOF*/
     1851:     2563:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
      377:      733:  783:/*EOF*/
      377:      733:  784:/*EOF*/
      377:      733:  785:/*EOF*/
        -:        -:  786:/*EOF*/
      377:      733:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
     6915:     9763:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
     1851:     2563:  794:/*EOF*/
        -:        -:  795:/*EOF*/
     1851:     2563:  796:/*EOF*/
        -:        -:  797:/*EOF*/
     1851:     2563:  798:/*EOF*/
     1851:     2563:  799:/*EOF*/
     1851:     2563:  800:/*EOF*/
        -:        -:  801:/*EOF*/
     1851:     2563:  802:/*EOF*/
     1851:     2563:  803:/*EOF*/
     1851:     2563:  804:/*EOF*/
        -:        -:  805:/*EOF*/
     1851:     2563:  806:/*EOF*/
        -:        -:  807:/*EOF*/
     1851:     2563:  808:/*EOF*/
     1851:     2563:  809:/*EOF*/
        -:        -:  810:/*EOF*/
     1851:     2563:  811:/*EOF*/
     1851:     2563:  812:/*EOF*/
        -:        -:  813:/*EOF*/
     1851:     2563:  814:/*EOF*/
     4062:     5486:  815:/*EOF*/
     2211:     2923:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
     1851:     2563:  819:/*EOF*/
     3702:     5126:  820:/*EOF*/
     1851:     2563:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
     1851:     2563:  824:/*EOF*/
     1851:     2563:  825:/*EOF*/
     1851:     2563:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
      377:      733:  829:/*EOF*/
        -:        -:  830:/*EOF*/
      377:      733:  831:/*EOF*/
      377:      733:  832:/*EOF*/
      377:      733:  833:/*EOF*/
        -:        -:  834:/*EOF*/
      377:      733:  835:/*EOF*/
      377:      733:  836:/*EOF*/
      377:      733:  837:/*EOF*/
        -:        -:  838:/*EOF*/
      377:      733:  839:/*EOF*/
        -:        -:  840:/*EOF*/
      377:      733:  841:/*EOF*/
      377:      733:  842:/*EOF*/
      377:      733:  843:/*EOF*/
      377:      733:  844:/*EOF*/
        -:        -:  845:/*EOF*/
      377:      733:  846:/*EOF*/
     3094:     5942:  847:/*EOF*/
     2717:     5209:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
      377:      733:  851:/*EOF*/
      377:      733:  852:/*EOF*/
      377:      733:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
     9143:    13059:  856:/*EOF*/
        -:        -:  857:/*EOF*/
     9143:    13059:  858:/*EOF*/
        -:        -:  859:/*EOF*/
     9143:    13059:  860:/*EOF*/
        -:        -:  861:/*EOF*/
     6915:     9763:  862:/*EOF*/
     6915:     9763:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
     1851:     2563:  866:/*EOF*/
     1851:     2563:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
      377:      733:  870:/*EOF*/
      377:      733:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
        -:        -:  875:/*EOF*/
     9143:    13059:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
       13:       13:  879:/*EOF*/
        -:        -:  880:/*EOF*/
       13:       13:  881:/*EOF*/
        -:        -:  882:/*EOF*/
       13:       13:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
        -:        -:  885:/*EOF*/
       13:       13:  886:/*EOF*/
       13:       13:  887:/*EOF*/
       13:       13:  888:/*EOF*/
        -:        -:  889:/*EOF*/
       13:       13:  890:/*EOF*/
       13:       13:  891:/*EOF*/
       13:       13:  892:/*EOF*/
        -:        -:  893:/*EOF*/
       13:       13:  894:/*EOF*/
       13:       13:  895:/*EOF*/
        -:        -:  896:/*EOF*/
       13:       13:  897:/*EOF*/
        -:        -:  898:/*EOF*/
       13:       13:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
       13:       13:  902:/*EOF*/
        -:        -:  903:/*EOF*/
       13:       13:  904:/*EOF*/
       13:       13:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
       13:       13:  908:/*EOF*/
        -:        -:  909:/*EOF*/
       13:       13:  910:/*EOF*/
        -:        -:  911:/*EOF*/
       13:       13:  912:/*EOF*/
       13:       13:  913:/*EOF*/
        -:        -:  914:/*EOF*/
       49:       49:  915:/*EOF*/
       36:       36:  916:/*EOF*/
       36:       36:  917:/*EOF*/
       36:       36:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
       13:       13:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
       13:       15:  930:/*EOF*/
    #####:        2:  931:/*EOF*/
    #####:        2:  932:/*EOF*/
    #####:        2:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
       13:       13:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
    #####:    #####:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
       39:       39:  945:/*EOF*/
       26:       26:  946:/*EOF*/
       26:       26:  947:/*EOF*/
       26:       26:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
       13:       13:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
       13:       13:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
     9379:     9627:  962:/*EOF*/
        -:        -:  963:/*EOF*/
     9379:     9627:  964:/*EOF*/
        -:        -:  965:/*EOF*/
     9379:     9627:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
     9379:     9627:  969:/*EOF*/
        -:        -:  970:/*EOF*/
     9379:     9627:  971:/*EOF*/
        -:        -:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
     9379:     9627:  989:/*EOF*/
     7424:     7672:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
     9379:     9627:  993:/*EOF*/
     9379:     9627:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    27243:    29894:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    27243:    29894:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    27243:    29894: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
    27243:    29894: 1003:/*EOF*/
    27243:    29894: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
    64528:    71355: 1006:/*EOF*/
    37285:    41461: 1007:/*EOF*/
    37285:    41461: 1008:/*EOF*/
    37285:    41461: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    27243:    29894: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    29094:    32455: 1021:/*EOF*/
     1851:     2561: 1022:/*EOF*/
     1851:     2561: 1023:/*EOF*/
     1851:     2561: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
    27243:    29894: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
    27243:    29894: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      608:      608: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
      608:      608: 1042:/*EOF*/
      608:      608: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
      608:      608: 1045:/*EOF*/
      608:      608: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
    #####:    #####: 1048:/*EOF*/
    #####:    #####: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
      608:      608: 1053:/*EOF*/
      608:      608: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
      608:      608: 1062:/*EOF*/
      608:      608: 1063:/*EOF*/
      608:      608: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
      608:      608: 1066:/*EOF*/
      608:      608: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
      608:      608: 1069:/*EOF*/
     8032:     8280: 1070:/*EOF*/
     7424:     7672: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
      608:      608: 1074:/*EOF*/
      608:      608: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
      608:      608: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
      608:      608: 1079:/*EOF*/
      621:      621: 1080:/*EOF*/
       13:       13: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
      608:      608: 1084:/*EOF*/
      608:      608: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
      608:      608: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
      608:      608: 1089:/*EOF*/
     2972:     2972: 1090:/*EOF*/
     2364:     2364: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
      621:      621: 1094:/*EOF*/
       13:       13: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
     7523:    10371: 1098:/*EOF*/
    36363:    42588: 1099:/*EOF*/
    29448:    32825: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
      608:      608: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
      608:      608: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
      608:      608: 1107:/*EOF*/
      608:      608: 1108:/*EOF*/
      608:      608: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
      608:      608: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
      608:      608: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
      608:      608: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
      608:      608: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
      608:      608: 1120:/*EOF*/
      608:      608: 1121:/*EOF*/
      608:      608: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
      608:      608: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
      608:      608: 1127:/*EOF*/
      608:      608: 1128:/*EOF*/
      608:      608: 1129:/*EOF*/
      608:      608: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
      608:      608: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
      608:      608: 1135:/*EOF*/
      608:      608: 1136:/*EOF*/
      608:      608: 1137:/*EOF*/
      608:      608: 1138:/*EOF*/
      608:      608: 1139:/*EOF*/
      608:      608: 1140:/*EOF*/
      608:      608: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
      608:      608: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
      608:      608: 1168:/*EOF*/
        1:        1: 1169:/*EOF*/
      608:      608: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
      608:      608: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
      608:      608: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
      608:      608: 1178:/*EOF*/
     1123:     1123: 1179:/*EOF*/
      515:      515: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
      608:      608: 1183:/*EOF*/
     1322:     1322: 1184:/*EOF*/
      714:      714: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
      608:      608: 1188:/*EOF*/
     1322:     1322: 1189:/*EOF*/
      714:      714: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
      608:      608: 1193:/*EOF*/
      608:      608: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
      608:      608: 1198:/*EOF*/
      620:      620: 1199:/*EOF*/
       12:       12: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
      608:      608: 1203:/*EOF*/
      608:      608: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
      608:      608: 1208:/*EOF*/
      608:      608: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
      608:      608: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
      608:      608: 1213:/*EOF*/
      608:      608: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
      608:      608: 1218:/*EOF*/
     1216:     1216: 1219:/*EOF*/
      608:      608: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
      608:      608: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
      608:      608: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
      608:      608: 1230:/*EOF*/

src/compiler/nir/nir_worklist.c.gcov

        -:        -:    0:Source:nir/nir_worklist.c
        -:        -:    0:Graph:.libs/nir_worklist.gcno
        -:        -:    0:Data:.libs/nir_worklist.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        6:        6:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        6:        6:   34:/*EOF*/
        6:        6:   35:/*EOF*/
        6:        6:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        6:        6:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        6:        6:   40:/*EOF*/
        6:        6:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        6:        6:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        6:        6:   46:/*EOF*/
        6:        6:   47:/*EOF*/
        6:        6:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       67:       99:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       67:       99:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
       67:       99:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       67:       99:   67:/*EOF*/
        6:        6:   68:/*EOF*/
        -:        -:   69:/*EOF*/
       61:       93:   70:/*EOF*/
        -:        -:   71:/*EOF*/
       67:       99:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       67:       99:   74:/*EOF*/
       67:       99:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       91:      157:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       91:      157:   89:/*EOF*/
        -:        -:   90:/*EOF*/
       91:      157:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       91:      157:   93:/*EOF*/
       91:      157:   94:/*EOF*/
        -:        -:   95:/*EOF*/
       91:      157:   96:/*EOF*/
       91:      157:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       85:      147:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       85:      147:  104:/*EOF*/
       61:       89:  105:/*EOF*/
        -:        -:  106:/*EOF*/
       24:       58:  107:/*EOF*/
        -:        -:  108:/*EOF*/
       24:       58:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       24:       58:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       24:       58:  113:/*EOF*/
       24:       58:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/

src/compiler/nir/nir_worklist.h.gcov

        -:        -:    0:Source:nir/nir_worklist.h
        -:        -:    0:Graph:.libs/nir_liveness.gcno
        -:        -:    0:Data:.libs/nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       97:      163:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       97:      163:   71:/*EOF*/

src/compiler/nir/u_math.h.gcov

        -:        -:    0:Source:../../src/gallium/auxiliary/util/u_math.h
        -:        -:    0:Graph:.libs/nir_validate.gcno
        -:        -:    0:Data:.libs/nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
     9379:     9627:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
     9379:     9627:  484:/*EOF*/

src/compiler/nir_builder.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder.h
        -:        -:    0:Graph:glsl/.libs/glsl_to_nir.gcno
        -:        -:    0:Data:glsl/.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014-2015 Broadcom
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#ifndef NIR_BUILDER_H
        -:        -:   25:#define NIR_BUILDER_H
        -:        -:   26:
        -:        -:   27:#include "nir_control_flow.h"
        -:        -:   28:
        -:        -:   29:struct exec_list;
        -:        -:   30:
        -:        -:   31:typedef struct nir_builder {
        -:        -:   32:   nir_cursor cursor;
        -:        -:   33:
        -:        -:   34:   /* Whether new ALU instructions will be marked "exact" */
        -:        -:   35:   bool exact;
        -:        -:   36:
        -:        -:   37:   nir_shader *shader;
        -:        -:   38:   nir_function_impl *impl;
        -:        -:   39:} nir_builder;
        -:        -:   40:
        -:        -:   41:static inline void
        3:        3:   42:nir_builder_init(nir_builder *build, nir_function_impl *impl)
        -:        -:   43:{
        3:        3:   44:   memset(build, 0, sizeof(*build));
        3:        3:   45:   build->exact = false;
        3:        3:   46:   build->impl = impl;
        3:        3:   47:   build->shader = impl->function->shader;
        3:        3:   48:}
        -:        -:   49:
        -:        -:   50:static inline void
        -:        -:   51:nir_builder_init_simple_shader(nir_builder *build, void *mem_ctx,
        -:        -:   52:                               gl_shader_stage stage,
        -:        -:   53:                               const nir_shader_compiler_options *options)
        -:        -:   54:{
        -:        -:   55:   build->shader = nir_shader_create(mem_ctx, stage, options, NULL);
        -:        -:   56:   nir_function *func = nir_function_create(build->shader, "main");
        -:        -:   57:   build->exact = false;
        -:        -:   58:   build->impl = nir_function_impl_create(func);
        -:        -:   59:   build->cursor = nir_after_cf_list(&build->impl->body);
        -:        -:   60:}
        -:        -:   61:
        -:        -:   62:static inline void
      207:      221:   63:nir_builder_instr_insert(nir_builder *build, nir_instr *instr)
        -:        -:   64:{
      207:      221:   65:   nir_instr_insert(build->cursor, instr);
        -:        -:   66:
        -:        -:   67:   /* Move the cursor forward. */
      207:      221:   68:   build->cursor = nir_after_instr(instr);
      207:      221:   69:}
        -:        -:   70:
        -:        -:   71:static inline nir_instr *
        -:        -:   72:nir_builder_last_instr(nir_builder *build)
        -:        -:   73:{
        -:        -:   74:   assert(build->cursor.option == nir_cursor_after_instr);
        -:        -:   75:   return build->cursor.instr;
        -:        -:   76:}
        -:        -:   77:
        -:        -:   78:static inline void
       29:       35:   79:nir_builder_cf_insert(nir_builder *build, nir_cf_node *cf)
        -:        -:   80:{
       29:       35:   81:   nir_cf_node_insert(build->cursor, cf);
       29:       35:   82:}
        -:        -:   83:
        -:        -:   84:static inline bool
    #####:    #####:   85:nir_builder_is_inside_cf(nir_builder *build, nir_cf_node *cf_node)
        -:        -:   86:{
    #####:    #####:   87:   nir_block *block = nir_cursor_current_block(build->cursor);
    #####:    #####:   88:   for (nir_cf_node *n = &block->cf_node; n; n = n->parent) {
    #####:    #####:   89:      if (n == cf_node)
    #####:    #####:   90:         return true;
        -:        -:   91:   }
    #####:    #####:   92:   return false;
        -:        -:   93:}
        -:        -:   94:
        -:        -:   95:static inline nir_if *
       26:       30:   96:nir_push_if(nir_builder *build, nir_ssa_def *condition)
        -:        -:   97:{
       26:       30:   98:   nir_if *nif = nir_if_create(build->shader);
       26:       30:   99:   nif->condition = nir_src_for_ssa(condition);
       26:       30:  100:   nir_builder_cf_insert(build, &nif->cf_node);
       26:       30:  101:   build->cursor = nir_before_cf_list(&nif->then_list);
       26:       30:  102:   return nif;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:static inline nir_if *
       14:       18:  106:nir_push_else(nir_builder *build, nir_if *nif)
        -:        -:  107:{
       14:       18:  108:   if (nif) {
    #####:    #####:  109:      assert(nir_builder_is_inside_cf(build, &nif->cf_node));
        -:        -:  110:   } else {
       14:       18:  111:      nir_block *block = nir_cursor_current_block(build->cursor);
       14:       18:  112:      nif = nir_cf_node_as_if(block->cf_node.parent);
        -:        -:  113:   }
       14:       18:  114:   build->cursor = nir_before_cf_list(&nif->else_list);
       14:       18:  115:   return nif;
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:static inline void
       26:       30:  119:nir_pop_if(nir_builder *build, nir_if *nif)
        -:        -:  120:{
       26:       30:  121:   if (nif) {
    #####:    #####:  122:      assert(nir_builder_is_inside_cf(build, &nif->cf_node));
        -:        -:  123:   } else {
       26:       30:  124:      nir_block *block = nir_cursor_current_block(build->cursor);
       26:       30:  125:      nif = nir_cf_node_as_if(block->cf_node.parent);
        -:        -:  126:   }
       26:       30:  127:   build->cursor = nir_after_cf_node(&nif->cf_node);
       26:       30:  128:}
        -:        -:  129:
        -:        -:  130:static inline nir_ssa_def *
        -:        -:  131:nir_if_phi(nir_builder *build, nir_ssa_def *then_def, nir_ssa_def *else_def)
        -:        -:  132:{
        -:        -:  133:   nir_block *block = nir_cursor_current_block(build->cursor);
        -:        -:  134:   nir_if *nif = nir_cf_node_as_if(nir_cf_node_prev(&block->cf_node));
        -:        -:  135:
        -:        -:  136:   nir_phi_instr *phi = nir_phi_instr_create(build->shader);
        -:        -:  137:
        -:        -:  138:   nir_phi_src *src = ralloc(phi, nir_phi_src);
        -:        -:  139:   src->pred = nir_if_last_then_block(nif);
        -:        -:  140:   src->src = nir_src_for_ssa(then_def);
        -:        -:  141:   exec_list_push_tail(&phi->srcs, &src->node);
        -:        -:  142:
        -:        -:  143:   src = ralloc(phi, nir_phi_src);
        -:        -:  144:   src->pred = nir_if_last_else_block(nif);
        -:        -:  145:   src->src = nir_src_for_ssa(else_def);
        -:        -:  146:   exec_list_push_tail(&phi->srcs, &src->node);
        -:        -:  147:
        -:        -:  148:   assert(then_def->num_components == else_def->num_components);
        -:        -:  149:   assert(then_def->bit_size == else_def->bit_size);
        -:        -:  150:   nir_ssa_dest_init(&phi->instr, &phi->dest,
        -:        -:  151:                     then_def->num_components, then_def->bit_size, NULL);
        -:        -:  152:
        -:        -:  153:   nir_builder_instr_insert(build, &phi->instr);
        -:        -:  154:
        -:        -:  155:   return &phi->dest.ssa;
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:static inline nir_loop *
        3:        5:  159:nir_push_loop(nir_builder *build)
        -:        -:  160:{
        3:        5:  161:   nir_loop *loop = nir_loop_create(build->shader);
        3:        5:  162:   nir_builder_cf_insert(build, &loop->cf_node);
        3:        5:  163:   build->cursor = nir_before_cf_list(&loop->body);
        3:        5:  164:   return loop;
        -:        -:  165:}
        -:        -:  166:
        -:        -:  167:static inline void
        3:        5:  168:nir_pop_loop(nir_builder *build, nir_loop *loop)
        -:        -:  169:{
        3:        5:  170:   if (loop) {
    #####:    #####:  171:      assert(nir_builder_is_inside_cf(build, &loop->cf_node));
        -:        -:  172:   } else {
        3:        5:  173:      nir_block *block = nir_cursor_current_block(build->cursor);
        3:        5:  174:      loop = nir_cf_node_as_loop(block->cf_node.parent);
        -:        -:  175:   }
        3:        5:  176:   build->cursor = nir_after_cf_node(&loop->cf_node);
        3:        5:  177:}
        -:        -:  178:
        -:        -:  179:static inline nir_ssa_def *
        -:        -:  180:nir_ssa_undef(nir_builder *build, unsigned num_components, unsigned bit_size)
        -:        -:  181:{
        -:        -:  182:   nir_ssa_undef_instr *undef =
        -:        -:  183:      nir_ssa_undef_instr_create(build->shader, num_components, bit_size);
        -:        -:  184:   if (!undef)
        -:        -:  185:      return NULL;
        -:        -:  186:
        -:        -:  187:   nir_instr_insert(nir_before_cf_list(&build->impl->body), &undef->instr);
        -:        -:  188:
        -:        -:  189:   return &undef->def;
        -:        -:  190:}
        -:        -:  191:
        -:        -:  192:static inline nir_ssa_def *
    #####:    #####:  193:nir_build_imm(nir_builder *build, unsigned num_components,
        -:        -:  194:              unsigned bit_size, nir_const_value value)
        -:        -:  195:{
        -:        -:  196:   nir_load_const_instr *load_const =
    #####:    #####:  197:      nir_load_const_instr_create(build->shader, num_components, bit_size);
    #####:    #####:  198:   if (!load_const)
    #####:    #####:  199:      return NULL;
        -:        -:  200:
    #####:    #####:  201:   load_const->value = value;
        -:        -:  202:
    #####:    #####:  203:   nir_builder_instr_insert(build, &load_const->instr);
        -:        -:  204:
    #####:    #####:  205:   return &load_const->def;
        -:        -:  206:}
        -:        -:  207:
        -:        -:  208:static inline nir_ssa_def *
        -:        -:  209:nir_imm_float(nir_builder *build, float x)
        -:        -:  210:{
        -:        -:  211:   nir_const_value v;
        -:        -:  212:
        -:        -:  213:   memset(&v, 0, sizeof(v));
        -:        -:  214:   v.f32[0] = x;
        -:        -:  215:
        -:        -:  216:   return nir_build_imm(build, 1, 32, v);
        -:        -:  217:}
        -:        -:  218:
        -:        -:  219:static inline nir_ssa_def *
        -:        -:  220:nir_imm_double(nir_builder *build, double x)
        -:        -:  221:{
        -:        -:  222:   nir_const_value v;
        -:        -:  223:
        -:        -:  224:   memset(&v, 0, sizeof(v));
        -:        -:  225:   v.f64[0] = x;
        -:        -:  226:
        -:        -:  227:   return nir_build_imm(build, 1, 64, v);
        -:        -:  228:}
        -:        -:  229:
        -:        -:  230:static inline nir_ssa_def *
        -:        -:  231:nir_imm_vec4(nir_builder *build, float x, float y, float z, float w)
        -:        -:  232:{
        -:        -:  233:   nir_const_value v;
        -:        -:  234:
        -:        -:  235:   memset(&v, 0, sizeof(v));
        -:        -:  236:   v.f32[0] = x;
        -:        -:  237:   v.f32[1] = y;
        -:        -:  238:   v.f32[2] = z;
        -:        -:  239:   v.f32[3] = w;
        -:        -:  240:
        -:        -:  241:   return nir_build_imm(build, 4, 32, v);
        -:        -:  242:}
        -:        -:  243:
        -:        -:  244:static inline nir_ssa_def *
    #####:    #####:  245:nir_imm_int(nir_builder *build, int x)
        -:        -:  246:{
        -:        -:  247:   nir_const_value v;
        -:        -:  248:
    #####:    #####:  249:   memset(&v, 0, sizeof(v));
    #####:    #####:  250:   v.i32[0] = x;
        -:        -:  251:
    #####:    #####:  252:   return nir_build_imm(build, 1, 32, v);
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:static inline nir_ssa_def *
        -:        -:  256:nir_imm_int64(nir_builder *build, int64_t x)
        -:        -:  257:{
        -:        -:  258:   nir_const_value v;
        -:        -:  259:
        -:        -:  260:   memset(&v, 0, sizeof(v));
        -:        -:  261:   v.i64[0] = x;
        -:        -:  262:
        -:        -:  263:   return nir_build_imm(build, 1, 64, v);
        -:        -:  264:}
        -:        -:  265:
        -:        -:  266:static inline nir_ssa_def *
        -:        -:  267:nir_imm_ivec4(nir_builder *build, int x, int y, int z, int w)
        -:        -:  268:{
        -:        -:  269:   nir_const_value v;
        -:        -:  270:
        -:        -:  271:   memset(&v, 0, sizeof(v));
        -:        -:  272:   v.i32[0] = x;
        -:        -:  273:   v.i32[1] = y;
        -:        -:  274:   v.i32[2] = z;
        -:        -:  275:   v.i32[3] = w;
        -:        -:  276:
        -:        -:  277:   return nir_build_imm(build, 4, 32, v);
        -:        -:  278:}
        -:        -:  279:
        -:        -:  280:static inline nir_ssa_def *
       43:       45:  281:nir_build_alu(nir_builder *build, nir_op op, nir_ssa_def *src0,
        -:        -:  282:              nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3)
        -:        -:  283:{
       43:       45:  284:   const nir_op_info *op_info = &nir_op_infos[op];
       43:       45:  285:   nir_alu_instr *instr = nir_alu_instr_create(build->shader, op);
       43:       45:  286:   if (!instr)
    #####:    #####:  287:      return NULL;
        -:        -:  288:
       43:       45:  289:   instr->exact = build->exact;
        -:        -:  290:
       43:       45:  291:   instr->src[0].src = nir_src_for_ssa(src0);
       43:       45:  292:   if (src1)
       37:       39:  293:      instr->src[1].src = nir_src_for_ssa(src1);
       43:       45:  294:   if (src2)
    #####:    #####:  295:      instr->src[2].src = nir_src_for_ssa(src2);
       43:       45:  296:   if (src3)
    #####:    #####:  297:      instr->src[3].src = nir_src_for_ssa(src3);
        -:        -:  298:
        -:        -:  299:   /* Guess the number of components the destination temporary should have
        -:        -:  300:    * based on our input sizes, if it's not fixed for the op.
        -:        -:  301:    */
       43:       45:  302:   unsigned num_components = op_info->output_size;
       43:       45:  303:   if (num_components == 0) {
      123:      129:  304:      for (unsigned i = 0; i < op_info->num_inputs; i++) {
       80:       84:  305:         if (op_info->input_sizes[i] == 0)
       80:       84:  306:            num_components = MAX2(num_components,
       80:       84:  307:                                  instr->src[i].src.ssa->num_components);
        -:        -:  308:      }
        -:        -:  309:   }
       43:       45:  310:   assert(num_components != 0);
        -:        -:  311:
        -:        -:  312:   /* Figure out the bitwidth based on the source bitwidth if the instruction
        -:        -:  313:    * is variable-width.
        -:        -:  314:    */
       43:       45:  315:   unsigned bit_size = nir_alu_type_get_type_size(op_info->output_type);
       43:       45:  316:   if (bit_size == 0) {
       43:       43:  317:      for (unsigned i = 0; i < op_info->num_inputs; i++) {
       28:       28:  318:         unsigned src_bit_size = instr->src[i].src.ssa->bit_size;
       28:       28:  319:         if (nir_alu_type_get_type_size(op_info->input_types[i]) == 0) {
       28:       28:  320:            if (bit_size)
       13:       13:  321:               assert(src_bit_size == bit_size);
        -:        -:  322:            else
       15:       15:  323:               bit_size = src_bit_size;
        -:        -:  324:         } else {
    #####:    #####:  325:            assert(src_bit_size ==
    #####:    #####:  326:               nir_alu_type_get_type_size(op_info->input_types[i]));
        -:        -:  327:         }
        -:        -:  328:      }
        -:        -:  329:   }
        -:        -:  330:
        -:        -:  331:   /* When in doubt, assume 32. */
       43:       45:  332:   if (bit_size == 0)
    #####:    #####:  333:      bit_size = 32;
        -:        -:  334:
        -:        -:  335:   /* Make sure we don't swizzle from outside of our source vector (like if a
        -:        -:  336:    * scalar value was passed into a multiply with a vector).
        -:        -:  337:    */
      123:      129:  338:   for (unsigned i = 0; i < op_info->num_inputs; i++) {
      320:      336:  339:      for (unsigned j = instr->src[i].src.ssa->num_components; j < 4; j++) {
      240:      252:  340:         instr->src[i].swizzle[j] = instr->src[i].src.ssa->num_components - 1;
        -:        -:  341:      }
        -:        -:  342:   }
        -:        -:  343:
       43:       45:  344:   nir_ssa_dest_init(&instr->instr, &instr->dest.dest, num_components,
       43:       45:  345:                     bit_size, NULL);
       43:       45:  346:   instr->dest.write_mask = (1 << num_components) - 1;
        -:        -:  347:
       43:       45:  348:   nir_builder_instr_insert(build, &instr->instr);
        -:        -:  349:
       43:       45:  350:   return &instr->dest.dest.ssa;
        -:        -:  351:}
        -:        -:  352:
        -:        -:  353:#include "nir_builder_opcodes.h"
        -:        -:  354:
        -:        -:  355:static inline nir_ssa_def *
    #####:    #####:  356:nir_vec(nir_builder *build, nir_ssa_def **comp, unsigned num_components)
        -:        -:  357:{
    #####:    #####:  358:   switch (num_components) {
        -:        -:  359:   case 4:
    #####:    #####:  360:      return nir_vec4(build, comp[0], comp[1], comp[2], comp[3]);
        -:        -:  361:   case 3:
    #####:    #####:  362:      return nir_vec3(build, comp[0], comp[1], comp[2]);
        -:        -:  363:   case 2:
    #####:    #####:  364:      return nir_vec2(build, comp[0], comp[1]);
        -:        -:  365:   case 1:
    #####:    #####:  366:      return comp[0];
        -:        -:  367:   default:
    #####:    #####:  368:      unreachable("bad component count");
        -:        -:  369:      return NULL;
        -:        -:  370:   }
        -:        -:  371:}
        -:        -:  372:
        -:        -:  373:/**
        -:        -:  374: * Similar to nir_fmov, but takes a nir_alu_src instead of a nir_ssa_def.
        -:        -:  375: */
        -:        -:  376:static inline nir_ssa_def *
    #####:    #####:  377:nir_fmov_alu(nir_builder *build, nir_alu_src src, unsigned num_components)
        -:        -:  378:{
    #####:    #####:  379:   nir_alu_instr *mov = nir_alu_instr_create(build->shader, nir_op_fmov);
    #####:    #####:  380:   nir_ssa_dest_init(&mov->instr, &mov->dest.dest, num_components,
    #####:    #####:  381:                     nir_src_bit_size(src.src), NULL);
    #####:    #####:  382:   mov->exact = build->exact;
    #####:    #####:  383:   mov->dest.write_mask = (1 << num_components) - 1;
    #####:    #####:  384:   mov->src[0] = src;
    #####:    #####:  385:   nir_builder_instr_insert(build, &mov->instr);
        -:        -:  386:
    #####:    #####:  387:   return &mov->dest.dest.ssa;
        -:        -:  388:}
        -:        -:  389:
        -:        -:  390:static inline nir_ssa_def *
        9:       11:  391:nir_imov_alu(nir_builder *build, nir_alu_src src, unsigned num_components)
        -:        -:  392:{
        9:       11:  393:   nir_alu_instr *mov = nir_alu_instr_create(build->shader, nir_op_imov);
        9:       11:  394:   nir_ssa_dest_init(&mov->instr, &mov->dest.dest, num_components,
        9:       11:  395:                     nir_src_bit_size(src.src), NULL);
        9:       11:  396:   mov->exact = build->exact;
        9:       11:  397:   mov->dest.write_mask = (1 << num_components) - 1;
        9:       11:  398:   mov->src[0] = src;
        9:       11:  399:   nir_builder_instr_insert(build, &mov->instr);
        -:        -:  400:
        9:       11:  401:   return &mov->dest.dest.ssa;
        -:        -:  402:}
        -:        -:  403:
        -:        -:  404:/**
        -:        -:  405: * Construct an fmov or imov that reswizzles the source's components.
        -:        -:  406: */
        -:        -:  407:static inline nir_ssa_def *
        9:       11:  408:nir_swizzle(nir_builder *build, nir_ssa_def *src, const unsigned swiz[4],
        -:        -:  409:            unsigned num_components, bool use_fmov)
        -:        -:  410:{
        9:       11:  411:   nir_alu_src alu_src = { NIR_SRC_INIT };
        9:       11:  412:   alu_src.src = nir_src_for_ssa(src);
       36:       40:  413:   for (unsigned i = 0; i < num_components; i++)
       27:       29:  414:      alu_src.swizzle[i] = swiz[i];
        -:        -:  415:
        -:        -:  416:   return use_fmov ? nir_fmov_alu(build, alu_src, num_components) :
        9:       11:  417:                     nir_imov_alu(build, alu_src, num_components);
        -:        -:  418:}
        -:        -:  419:
        -:        -:  420:/* Selects the right fdot given the number of components in each source. */
        -:        -:  421:static inline nir_ssa_def *
        -:        -:  422:nir_fdot(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  423:{
        -:        -:  424:   assert(src0->num_components == src1->num_components);
        -:        -:  425:   switch (src0->num_components) {
        -:        -:  426:   case 1: return nir_fmul(build, src0, src1);
        -:        -:  427:   case 2: return nir_fdot2(build, src0, src1);
        -:        -:  428:   case 3: return nir_fdot3(build, src0, src1);
        -:        -:  429:   case 4: return nir_fdot4(build, src0, src1);
        -:        -:  430:   default:
        -:        -:  431:      unreachable("bad component size");
        -:        -:  432:   }
        -:        -:  433:
        -:        -:  434:   return NULL;
        -:        -:  435:}
        -:        -:  436:
        -:        -:  437:static inline nir_ssa_def *
        -:        -:  438:nir_bany_inequal(nir_builder *b, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  439:{
        -:        -:  440:   switch (src0->num_components) {
        -:        -:  441:   case 1: return nir_ine(b, src0, src1);
        -:        -:  442:   case 2: return nir_bany_inequal2(b, src0, src1);
        -:        -:  443:   case 3: return nir_bany_inequal3(b, src0, src1);
        -:        -:  444:   case 4: return nir_bany_inequal4(b, src0, src1);
        -:        -:  445:   default:
        -:        -:  446:      unreachable("bad component size");
        -:        -:  447:   }
        -:        -:  448:}
        -:        -:  449:
        -:        -:  450:static inline nir_ssa_def *
        -:        -:  451:nir_bany(nir_builder *b, nir_ssa_def *src)
        -:        -:  452:{
        -:        -:  453:   return nir_bany_inequal(b, src, nir_imm_int(b, 0));
        -:        -:  454:}
        -:        -:  455:
        -:        -:  456:static inline nir_ssa_def *
    #####:    #####:  457:nir_channel(nir_builder *b, nir_ssa_def *def, unsigned c)
        -:        -:  458:{
    #####:    #####:  459:   unsigned swizzle[4] = {c, c, c, c};
    #####:    #####:  460:   return nir_swizzle(b, def, swizzle, 1, false);
        -:        -:  461:}
        -:        -:  462:
        -:        -:  463:static inline nir_ssa_def *
        -:        -:  464:nir_channels(nir_builder *b, nir_ssa_def *def, unsigned mask)
        -:        -:  465:{
        -:        -:  466:   unsigned num_channels = 0, swizzle[4] = { 0, 0, 0, 0 };
        -:        -:  467:
        -:        -:  468:   for (unsigned i = 0; i < 4; i++) {
        -:        -:  469:      if ((mask & (1 << i)) == 0)
        -:        -:  470:         continue;
        -:        -:  471:      swizzle[num_channels++] = i;
        -:        -:  472:   }
        -:        -:  473:
        -:        -:  474:   return nir_swizzle(b, def, swizzle, num_channels, false);
        -:        -:  475:}
        -:        -:  476:
        -:        -:  477:/**
        -:        -:  478: * Turns a nir_src into a nir_ssa_def * so it can be passed to
        -:        -:  479: * nir_build_alu()-based builder calls.
        -:        -:  480: *
        -:        -:  481: * See nir_ssa_for_alu_src() for alu instructions.
        -:        -:  482: */
        -:        -:  483:static inline nir_ssa_def *
        -:        -:  484:nir_ssa_for_src(nir_builder *build, nir_src src, int num_components)
        -:        -:  485:{
        -:        -:  486:   if (src.is_ssa && src.ssa->num_components == num_components)
        -:        -:  487:      return src.ssa;
        -:        -:  488:
        -:        -:  489:   nir_alu_src alu = { NIR_SRC_INIT };
        -:        -:  490:   alu.src = src;
        -:        -:  491:   for (int j = 0; j < 4; j++)
        -:        -:  492:      alu.swizzle[j] = j;
        -:        -:  493:
        -:        -:  494:   return nir_imov_alu(build, alu, num_components);
        -:        -:  495:}
        -:        -:  496:
        -:        -:  497:/**
        -:        -:  498: * Similar to nir_ssa_for_src(), but for alu srcs, respecting the
        -:        -:  499: * nir_alu_src's swizzle.
        -:        -:  500: */
        -:        -:  501:static inline nir_ssa_def *
        -:        -:  502:nir_ssa_for_alu_src(nir_builder *build, nir_alu_instr *instr, unsigned srcn)
        -:        -:  503:{
        -:        -:  504:   static uint8_t trivial_swizzle[4] = { 0, 1, 2, 3 };
        -:        -:  505:   nir_alu_src *src = &instr->src[srcn];
        -:        -:  506:   unsigned num_components = nir_ssa_alu_instr_src_components(instr, srcn);
        -:        -:  507:
        -:        -:  508:   if (src->src.is_ssa && (src->src.ssa->num_components == num_components) &&
        -:        -:  509:       !src->abs && !src->negate &&
        -:        -:  510:       (memcmp(src->swizzle, trivial_swizzle, num_components) == 0))
        -:        -:  511:      return src->src.ssa;
        -:        -:  512:
        -:        -:  513:   return nir_imov_alu(build, *src, num_components);
        -:        -:  514:}
        -:        -:  515:
        -:        -:  516:static inline nir_ssa_def *
        -:        -:  517:nir_load_var(nir_builder *build, nir_variable *var)
        -:        -:  518:{
        -:        -:  519:   const unsigned num_components = glsl_get_vector_elements(var->type);
        -:        -:  520:
        -:        -:  521:   nir_intrinsic_instr *load =
        -:        -:  522:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_load_var);
        -:        -:  523:   load->num_components = num_components;
        -:        -:  524:   load->variables[0] = nir_deref_var_create(load, var);
        -:        -:  525:   nir_ssa_dest_init(&load->instr, &load->dest, num_components,
        -:        -:  526:                     glsl_get_bit_size(var->type), NULL);
        -:        -:  527:   nir_builder_instr_insert(build, &load->instr);
        -:        -:  528:   return &load->dest.ssa;
        -:        -:  529:}
        -:        -:  530:
        -:        -:  531:static inline nir_ssa_def *
        -:        -:  532:nir_load_deref_var(nir_builder *build, nir_deref_var *deref)
        -:        -:  533:{
        -:        -:  534:   const struct glsl_type *type = nir_deref_tail(&deref->deref)->type;
        -:        -:  535:   const unsigned num_components = glsl_get_vector_elements(type);
        -:        -:  536:
        -:        -:  537:   nir_intrinsic_instr *load =
        -:        -:  538:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_load_var);
        -:        -:  539:   load->num_components = num_components;
        -:        -:  540:   load->variables[0] = nir_deref_var_clone(deref, load);
        -:        -:  541:   nir_ssa_dest_init(&load->instr, &load->dest, num_components,
        -:        -:  542:                     glsl_get_bit_size(type), NULL);
        -:        -:  543:   nir_builder_instr_insert(build, &load->instr);
        -:        -:  544:   return &load->dest.ssa;
        -:        -:  545:}
        -:        -:  546:
        -:        -:  547:static inline void
        -:        -:  548:nir_store_var(nir_builder *build, nir_variable *var, nir_ssa_def *value,
        -:        -:  549:              unsigned writemask)
        -:        -:  550:{
        -:        -:  551:   const unsigned num_components = glsl_get_vector_elements(var->type);
        -:        -:  552:
        -:        -:  553:   nir_intrinsic_instr *store =
        -:        -:  554:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_store_var);
        -:        -:  555:   store->num_components = num_components;
        -:        -:  556:   nir_intrinsic_set_write_mask(store, writemask);
        -:        -:  557:   store->variables[0] = nir_deref_var_create(store, var);
        -:        -:  558:   store->src[0] = nir_src_for_ssa(value);
        -:        -:  559:   nir_builder_instr_insert(build, &store->instr);
        -:        -:  560:}
        -:        -:  561:
        -:        -:  562:static inline void
        -:        -:  563:nir_store_deref_var(nir_builder *build, nir_deref_var *deref,
        -:        -:  564:                    nir_ssa_def *value, unsigned writemask)
        -:        -:  565:{
        -:        -:  566:   const unsigned num_components =
        -:        -:  567:      glsl_get_vector_elements(nir_deref_tail(&deref->deref)->type);
        -:        -:  568:
        -:        -:  569:   nir_intrinsic_instr *store =
        -:        -:  570:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_store_var);
        -:        -:  571:   store->num_components = num_components;
        -:        -:  572:   store->const_index[0] = writemask & ((1 << num_components) - 1);
        -:        -:  573:   store->variables[0] = nir_deref_var_clone(deref, store);
        -:        -:  574:   store->src[0] = nir_src_for_ssa(value);
        -:        -:  575:   nir_builder_instr_insert(build, &store->instr);
        -:        -:  576:}
        -:        -:  577:
        -:        -:  578:static inline void
        -:        -:  579:nir_copy_deref_var(nir_builder *build, nir_deref_var *dest, nir_deref_var *src)
        -:        -:  580:{
        -:        -:  581:   assert(nir_deref_tail(&dest->deref)->type ==
        -:        -:  582:          nir_deref_tail(&src->deref)->type);
        -:        -:  583:
        -:        -:  584:   nir_intrinsic_instr *copy =
        -:        -:  585:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_copy_var);
        -:        -:  586:   copy->variables[0] = nir_deref_var_clone(dest, copy);
        -:        -:  587:   copy->variables[1] = nir_deref_var_clone(src, copy);
        -:        -:  588:   nir_builder_instr_insert(build, ©->instr);
        -:        -:  589:}
        -:        -:  590:
        -:        -:  591:static inline void
        -:        -:  592:nir_copy_var(nir_builder *build, nir_variable *dest, nir_variable *src)
        -:        -:  593:{
        -:        -:  594:   nir_intrinsic_instr *copy =
        -:        -:  595:      nir_intrinsic_instr_create(build->shader, nir_intrinsic_copy_var);
        -:        -:  596:   copy->variables[0] = nir_deref_var_create(copy, dest);
        -:        -:  597:   copy->variables[1] = nir_deref_var_create(copy, src);
        -:        -:  598:   nir_builder_instr_insert(build, ©->instr);
        -:        -:  599:}
        -:        -:  600:
        -:        -:  601:/* Generic builder for system values. */
        -:        -:  602:static inline nir_ssa_def *
        -:        -:  603:nir_load_system_value(nir_builder *build, nir_intrinsic_op op, int index)
        -:        -:  604:{
        -:        -:  605:   nir_intrinsic_instr *load = nir_intrinsic_instr_create(build->shader, op);
        -:        -:  606:   load->num_components = nir_intrinsic_infos[op].dest_components;
        -:        -:  607:   load->const_index[0] = index;
        -:        -:  608:   nir_ssa_dest_init(&load->instr, &load->dest,
        -:        -:  609:                     nir_intrinsic_infos[op].dest_components, 32, NULL);
        -:        -:  610:   nir_builder_instr_insert(build, &load->instr);
        -:        -:  611:   return &load->dest.ssa;
        -:        -:  612:}
        -:        -:  613:
        -:        -:  614:/* Generate custom builders for system values. */
        -:        -:  615:#define INTRINSIC(name, num_srcs, src_components, has_dest, dest_components, \
        -:        -:  616:                  num_variables, num_indices, idx0, idx1, idx2, flags)
        -:        -:  617:#define LAST_INTRINSIC(name)
        -:        -:  618:
        -:        -:  619:#define DEFINE_SYSTEM_VALUE(name)                                        \
        -:        -:  620:   static inline nir_ssa_def *                                           \
        -:        -:  621:   nir_load_##name(nir_builder *build)                                   \
        -:        -:  622:   {                                                                     \
        -:        -:  623:      return nir_load_system_value(build, nir_intrinsic_load_##name, 0); \
        -:        -:  624:   }                                                                     \
        -:        -:  625:
        -:        -:  626:#include "nir_intrinsics.h"
        -:        -:  627:
        -:        -:  628:static inline nir_ssa_def *
        -:        -:  629:nir_load_barycentric(nir_builder *build, nir_intrinsic_op op,
        -:        -:  630:                     unsigned interp_mode)
        -:        -:  631:{
        -:        -:  632:   nir_intrinsic_instr *bary = nir_intrinsic_instr_create(build->shader, op);
        -:        -:  633:   nir_ssa_dest_init(&bary->instr, &bary->dest, 2, 32, NULL);
        -:        -:  634:   nir_intrinsic_set_interp_mode(bary, interp_mode);
        -:        -:  635:   nir_builder_instr_insert(build, &bary->instr);
        -:        -:  636:   return &bary->dest.ssa;
        -:        -:  637:}
        -:        -:  638:
        -:        -:  639:static inline void
        -:        -:  640:nir_jump(nir_builder *build, nir_jump_type jump_type)
        -:        -:  641:{
        -:        -:  642:   nir_jump_instr *jump = nir_jump_instr_create(build->shader, jump_type);
        -:        -:  643:   nir_builder_instr_insert(build, &jump->instr);
        -:        -:  644:}
        -:        -:  645:
        -:        -:  646:#endif /* NIR_BUILDER_H */

src/compiler/nir_builder_opcodes.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir_builder_opcodes.h
        -:        -:    0:Graph:glsl/.libs/glsl_to_nir.gcno
        -:        -:    0:Data:glsl/.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/* Copyright (C) 2015 Broadcom
        -:        -:    2: *
        -:        -:    3: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    4: * copy of this software and associated documentation files (the "Software"),
        -:        -:    5: * to deal in the Software without restriction, including without limitation
        -:        -:    6: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    7: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    8: * Software is furnished to do so, subject to the following conditions:
        -:        -:    9: *
        -:        -:   10: * The above copyright notice and this permission notice (including the next
        -:        -:   11: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   12: * Software.
        -:        -:   13: *
        -:        -:   14: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   15: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   16: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   17: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   18: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   19: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   20: * IN THE SOFTWARE.
        -:        -:   21: */
        -:        -:   22:
        -:        -:   23:#ifndef _NIR_BUILDER_OPCODES_
        -:        -:   24:#define _NIR_BUILDER_OPCODES_
        -:        -:   25:
        -:        -:   26:
        -:        -:   27:
        -:        -:   28:static inline nir_ssa_def *
    #####:    #####:   29:nir_b2f(nir_builder *build, nir_ssa_def *src0)
        -:        -:   30:{
    #####:    #####:   31:   return nir_build_alu(build, nir_op_b2f, src0, NULL, NULL, NULL);
        -:        -:   32:}
        -:        -:   33:static inline nir_ssa_def *
        -:        -:   34:nir_b2i(nir_builder *build, nir_ssa_def *src0)
        -:        -:   35:{
        -:        -:   36:   return nir_build_alu(build, nir_op_b2i, src0, NULL, NULL, NULL);
        -:        -:   37:}
        -:        -:   38:static inline nir_ssa_def *
    #####:    #####:   39:nir_ball_fequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   40:{
    #####:    #####:   41:   return nir_build_alu(build, nir_op_ball_fequal2, src0, src1, NULL, NULL);
        -:        -:   42:}
        -:        -:   43:static inline nir_ssa_def *
    #####:    #####:   44:nir_ball_fequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   45:{
    #####:    #####:   46:   return nir_build_alu(build, nir_op_ball_fequal3, src0, src1, NULL, NULL);
        -:        -:   47:}
        -:        -:   48:static inline nir_ssa_def *
    #####:    #####:   49:nir_ball_fequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   50:{
    #####:    #####:   51:   return nir_build_alu(build, nir_op_ball_fequal4, src0, src1, NULL, NULL);
        -:        -:   52:}
        -:        -:   53:static inline nir_ssa_def *
    #####:    #####:   54:nir_ball_iequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   55:{
    #####:    #####:   56:   return nir_build_alu(build, nir_op_ball_iequal2, src0, src1, NULL, NULL);
        -:        -:   57:}
        -:        -:   58:static inline nir_ssa_def *
    #####:    #####:   59:nir_ball_iequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   60:{
    #####:    #####:   61:   return nir_build_alu(build, nir_op_ball_iequal3, src0, src1, NULL, NULL);
        -:        -:   62:}
        -:        -:   63:static inline nir_ssa_def *
    #####:    #####:   64:nir_ball_iequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   65:{
    #####:    #####:   66:   return nir_build_alu(build, nir_op_ball_iequal4, src0, src1, NULL, NULL);
        -:        -:   67:}
        -:        -:   68:static inline nir_ssa_def *
    #####:    #####:   69:nir_bany_fnequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   70:{
    #####:    #####:   71:   return nir_build_alu(build, nir_op_bany_fnequal2, src0, src1, NULL, NULL);
        -:        -:   72:}
        -:        -:   73:static inline nir_ssa_def *
    #####:    #####:   74:nir_bany_fnequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   75:{
    #####:    #####:   76:   return nir_build_alu(build, nir_op_bany_fnequal3, src0, src1, NULL, NULL);
        -:        -:   77:}
        -:        -:   78:static inline nir_ssa_def *
    #####:    #####:   79:nir_bany_fnequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   80:{
    #####:    #####:   81:   return nir_build_alu(build, nir_op_bany_fnequal4, src0, src1, NULL, NULL);
        -:        -:   82:}
        -:        -:   83:static inline nir_ssa_def *
    #####:    #####:   84:nir_bany_inequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   85:{
    #####:    #####:   86:   return nir_build_alu(build, nir_op_bany_inequal2, src0, src1, NULL, NULL);
        -:        -:   87:}
        -:        -:   88:static inline nir_ssa_def *
    #####:    #####:   89:nir_bany_inequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   90:{
    #####:    #####:   91:   return nir_build_alu(build, nir_op_bany_inequal3, src0, src1, NULL, NULL);
        -:        -:   92:}
        -:        -:   93:static inline nir_ssa_def *
    #####:    #####:   94:nir_bany_inequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:   95:{
    #####:    #####:   96:   return nir_build_alu(build, nir_op_bany_inequal4, src0, src1, NULL, NULL);
        -:        -:   97:}
        -:        -:   98:static inline nir_ssa_def *
    #####:    #####:   99:nir_bcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  100:{
    #####:    #####:  101:   return nir_build_alu(build, nir_op_bcsel, src0, src1, src2, NULL);
        -:        -:  102:}
        -:        -:  103:static inline nir_ssa_def *
        -:        -:  104:nir_bfi(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  105:{
        -:        -:  106:   return nir_build_alu(build, nir_op_bfi, src0, src1, src2, NULL);
        -:        -:  107:}
        -:        -:  108:static inline nir_ssa_def *
        -:        -:  109:nir_bfm(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  110:{
        -:        -:  111:   return nir_build_alu(build, nir_op_bfm, src0, src1, NULL, NULL);
        -:        -:  112:}
        -:        -:  113:static inline nir_ssa_def *
    #####:    #####:  114:nir_bit_count(nir_builder *build, nir_ssa_def *src0)
        -:        -:  115:{
    #####:    #####:  116:   return nir_build_alu(build, nir_op_bit_count, src0, NULL, NULL, NULL);
        -:        -:  117:}
        -:        -:  118:static inline nir_ssa_def *
    #####:    #####:  119:nir_bitfield_insert(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3)
        -:        -:  120:{
    #####:    #####:  121:   return nir_build_alu(build, nir_op_bitfield_insert, src0, src1, src2, src3);
        -:        -:  122:}
        -:        -:  123:static inline nir_ssa_def *
    #####:    #####:  124:nir_bitfield_reverse(nir_builder *build, nir_ssa_def *src0)
        -:        -:  125:{
    #####:    #####:  126:   return nir_build_alu(build, nir_op_bitfield_reverse, src0, NULL, NULL, NULL);
        -:        -:  127:}
        -:        -:  128:static inline nir_ssa_def *
        -:        -:  129:nir_extract_i16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  130:{
        -:        -:  131:   return nir_build_alu(build, nir_op_extract_i16, src0, src1, NULL, NULL);
        -:        -:  132:}
        -:        -:  133:static inline nir_ssa_def *
        -:        -:  134:nir_extract_i8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  135:{
        -:        -:  136:   return nir_build_alu(build, nir_op_extract_i8, src0, src1, NULL, NULL);
        -:        -:  137:}
        -:        -:  138:static inline nir_ssa_def *
        -:        -:  139:nir_extract_u16(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  140:{
        -:        -:  141:   return nir_build_alu(build, nir_op_extract_u16, src0, src1, NULL, NULL);
        -:        -:  142:}
        -:        -:  143:static inline nir_ssa_def *
        -:        -:  144:nir_extract_u8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  145:{
        -:        -:  146:   return nir_build_alu(build, nir_op_extract_u8, src0, src1, NULL, NULL);
        -:        -:  147:}
        -:        -:  148:static inline nir_ssa_def *
        -:        -:  149:nir_f2b(nir_builder *build, nir_ssa_def *src0)
        -:        -:  150:{
        -:        -:  151:   return nir_build_alu(build, nir_op_f2b, src0, NULL, NULL, NULL);
        -:        -:  152:}
        -:        -:  153:static inline nir_ssa_def *
        -:        -:  154:nir_f2f16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  155:{
        -:        -:  156:   return nir_build_alu(build, nir_op_f2f16, src0, NULL, NULL, NULL);
        -:        -:  157:}
        -:        -:  158:static inline nir_ssa_def *
        -:        -:  159:nir_f2f32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  160:{
        -:        -:  161:   return nir_build_alu(build, nir_op_f2f32, src0, NULL, NULL, NULL);
        -:        -:  162:}
        -:        -:  163:static inline nir_ssa_def *
        -:        -:  164:nir_f2f64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  165:{
        -:        -:  166:   return nir_build_alu(build, nir_op_f2f64, src0, NULL, NULL, NULL);
        -:        -:  167:}
        -:        -:  168:static inline nir_ssa_def *
        -:        -:  169:nir_f2i16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  170:{
        -:        -:  171:   return nir_build_alu(build, nir_op_f2i16, src0, NULL, NULL, NULL);
        -:        -:  172:}
        -:        -:  173:static inline nir_ssa_def *
        -:        -:  174:nir_f2i32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  175:{
        -:        -:  176:   return nir_build_alu(build, nir_op_f2i32, src0, NULL, NULL, NULL);
        -:        -:  177:}
        -:        -:  178:static inline nir_ssa_def *
        -:        -:  179:nir_f2i64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  180:{
        -:        -:  181:   return nir_build_alu(build, nir_op_f2i64, src0, NULL, NULL, NULL);
        -:        -:  182:}
        -:        -:  183:static inline nir_ssa_def *
        -:        -:  184:nir_f2i8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  185:{
        -:        -:  186:   return nir_build_alu(build, nir_op_f2i8, src0, NULL, NULL, NULL);
        -:        -:  187:}
        -:        -:  188:static inline nir_ssa_def *
        -:        -:  189:nir_f2u16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  190:{
        -:        -:  191:   return nir_build_alu(build, nir_op_f2u16, src0, NULL, NULL, NULL);
        -:        -:  192:}
        -:        -:  193:static inline nir_ssa_def *
        -:        -:  194:nir_f2u32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  195:{
        -:        -:  196:   return nir_build_alu(build, nir_op_f2u32, src0, NULL, NULL, NULL);
        -:        -:  197:}
        -:        -:  198:static inline nir_ssa_def *
        -:        -:  199:nir_f2u64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  200:{
        -:        -:  201:   return nir_build_alu(build, nir_op_f2u64, src0, NULL, NULL, NULL);
        -:        -:  202:}
        -:        -:  203:static inline nir_ssa_def *
        -:        -:  204:nir_f2u8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  205:{
        -:        -:  206:   return nir_build_alu(build, nir_op_f2u8, src0, NULL, NULL, NULL);
        -:        -:  207:}
        -:        -:  208:static inline nir_ssa_def *
    #####:    #####:  209:nir_fabs(nir_builder *build, nir_ssa_def *src0)
        -:        -:  210:{
    #####:    #####:  211:   return nir_build_alu(build, nir_op_fabs, src0, NULL, NULL, NULL);
        -:        -:  212:}
        -:        -:  213:static inline nir_ssa_def *
        3:        3:  214:nir_fadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  215:{
        3:        3:  216:   return nir_build_alu(build, nir_op_fadd, src0, src1, NULL, NULL);
        -:        -:  217:}
        -:        -:  218:static inline nir_ssa_def *
    #####:    #####:  219:nir_fall_equal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  220:{
    #####:    #####:  221:   return nir_build_alu(build, nir_op_fall_equal2, src0, src1, NULL, NULL);
        -:        -:  222:}
        -:        -:  223:static inline nir_ssa_def *
    #####:    #####:  224:nir_fall_equal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  225:{
    #####:    #####:  226:   return nir_build_alu(build, nir_op_fall_equal3, src0, src1, NULL, NULL);
        -:        -:  227:}
        -:        -:  228:static inline nir_ssa_def *
    #####:    #####:  229:nir_fall_equal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  230:{
    #####:    #####:  231:   return nir_build_alu(build, nir_op_fall_equal4, src0, src1, NULL, NULL);
        -:        -:  232:}
        -:        -:  233:static inline nir_ssa_def *
    #####:    #####:  234:nir_fand(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  235:{
    #####:    #####:  236:   return nir_build_alu(build, nir_op_fand, src0, src1, NULL, NULL);
        -:        -:  237:}
        -:        -:  238:static inline nir_ssa_def *
    #####:    #####:  239:nir_fany_nequal2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  240:{
    #####:    #####:  241:   return nir_build_alu(build, nir_op_fany_nequal2, src0, src1, NULL, NULL);
        -:        -:  242:}
        -:        -:  243:static inline nir_ssa_def *
    #####:    #####:  244:nir_fany_nequal3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  245:{
    #####:    #####:  246:   return nir_build_alu(build, nir_op_fany_nequal3, src0, src1, NULL, NULL);
        -:        -:  247:}
        -:        -:  248:static inline nir_ssa_def *
    #####:    #####:  249:nir_fany_nequal4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  250:{
    #####:    #####:  251:   return nir_build_alu(build, nir_op_fany_nequal4, src0, src1, NULL, NULL);
        -:        -:  252:}
        -:        -:  253:static inline nir_ssa_def *
    #####:    #####:  254:nir_fceil(nir_builder *build, nir_ssa_def *src0)
        -:        -:  255:{
    #####:    #####:  256:   return nir_build_alu(build, nir_op_fceil, src0, NULL, NULL, NULL);
        -:        -:  257:}
        -:        -:  258:static inline nir_ssa_def *
    #####:    #####:  259:nir_fcos(nir_builder *build, nir_ssa_def *src0)
        -:        -:  260:{
    #####:    #####:  261:   return nir_build_alu(build, nir_op_fcos, src0, NULL, NULL, NULL);
        -:        -:  262:}
        -:        -:  263:static inline nir_ssa_def *
    #####:    #####:  264:nir_fcsel(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  265:{
    #####:    #####:  266:   return nir_build_alu(build, nir_op_fcsel, src0, src1, src2, NULL);
        -:        -:  267:}
        -:        -:  268:static inline nir_ssa_def *
    #####:    #####:  269:nir_fddx(nir_builder *build, nir_ssa_def *src0)
        -:        -:  270:{
    #####:    #####:  271:   return nir_build_alu(build, nir_op_fddx, src0, NULL, NULL, NULL);
        -:        -:  272:}
        -:        -:  273:static inline nir_ssa_def *
    #####:    #####:  274:nir_fddx_coarse(nir_builder *build, nir_ssa_def *src0)
        -:        -:  275:{
    #####:    #####:  276:   return nir_build_alu(build, nir_op_fddx_coarse, src0, NULL, NULL, NULL);
        -:        -:  277:}
        -:        -:  278:static inline nir_ssa_def *
    #####:    #####:  279:nir_fddx_fine(nir_builder *build, nir_ssa_def *src0)
        -:        -:  280:{
    #####:    #####:  281:   return nir_build_alu(build, nir_op_fddx_fine, src0, NULL, NULL, NULL);
        -:        -:  282:}
        -:        -:  283:static inline nir_ssa_def *
    #####:    #####:  284:nir_fddy(nir_builder *build, nir_ssa_def *src0)
        -:        -:  285:{
    #####:    #####:  286:   return nir_build_alu(build, nir_op_fddy, src0, NULL, NULL, NULL);
        -:        -:  287:}
        -:        -:  288:static inline nir_ssa_def *
    #####:    #####:  289:nir_fddy_coarse(nir_builder *build, nir_ssa_def *src0)
        -:        -:  290:{
    #####:    #####:  291:   return nir_build_alu(build, nir_op_fddy_coarse, src0, NULL, NULL, NULL);
        -:        -:  292:}
        -:        -:  293:static inline nir_ssa_def *
    #####:    #####:  294:nir_fddy_fine(nir_builder *build, nir_ssa_def *src0)
        -:        -:  295:{
    #####:    #####:  296:   return nir_build_alu(build, nir_op_fddy_fine, src0, NULL, NULL, NULL);
        -:        -:  297:}
        -:        -:  298:static inline nir_ssa_def *
    #####:    #####:  299:nir_fdiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  300:{
    #####:    #####:  301:   return nir_build_alu(build, nir_op_fdiv, src0, src1, NULL, NULL);
        -:        -:  302:}
        -:        -:  303:static inline nir_ssa_def *
    #####:    #####:  304:nir_fdot2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  305:{
    #####:    #####:  306:   return nir_build_alu(build, nir_op_fdot2, src0, src1, NULL, NULL);
        -:        -:  307:}
        -:        -:  308:static inline nir_ssa_def *
    #####:    #####:  309:nir_fdot3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  310:{
    #####:    #####:  311:   return nir_build_alu(build, nir_op_fdot3, src0, src1, NULL, NULL);
        -:        -:  312:}
        -:        -:  313:static inline nir_ssa_def *
    #####:    #####:  314:nir_fdot4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  315:{
    #####:    #####:  316:   return nir_build_alu(build, nir_op_fdot4, src0, src1, NULL, NULL);
        -:        -:  317:}
        -:        -:  318:static inline nir_ssa_def *
        -:        -:  319:nir_fdot_replicated2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  320:{
        -:        -:  321:   return nir_build_alu(build, nir_op_fdot_replicated2, src0, src1, NULL, NULL);
        -:        -:  322:}
        -:        -:  323:static inline nir_ssa_def *
        -:        -:  324:nir_fdot_replicated3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  325:{
        -:        -:  326:   return nir_build_alu(build, nir_op_fdot_replicated3, src0, src1, NULL, NULL);
        -:        -:  327:}
        -:        -:  328:static inline nir_ssa_def *
        -:        -:  329:nir_fdot_replicated4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  330:{
        -:        -:  331:   return nir_build_alu(build, nir_op_fdot_replicated4, src0, src1, NULL, NULL);
        -:        -:  332:}
        -:        -:  333:static inline nir_ssa_def *
        -:        -:  334:nir_fdph(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  335:{
        -:        -:  336:   return nir_build_alu(build, nir_op_fdph, src0, src1, NULL, NULL);
        -:        -:  337:}
        -:        -:  338:static inline nir_ssa_def *
        -:        -:  339:nir_fdph_replicated(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  340:{
        -:        -:  341:   return nir_build_alu(build, nir_op_fdph_replicated, src0, src1, NULL, NULL);
        -:        -:  342:}
        -:        -:  343:static inline nir_ssa_def *
    #####:    #####:  344:nir_feq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  345:{
    #####:    #####:  346:   return nir_build_alu(build, nir_op_feq, src0, src1, NULL, NULL);
        -:        -:  347:}
        -:        -:  348:static inline nir_ssa_def *
    #####:    #####:  349:nir_fexp2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  350:{
    #####:    #####:  351:   return nir_build_alu(build, nir_op_fexp2, src0, NULL, NULL, NULL);
        -:        -:  352:}
        -:        -:  353:static inline nir_ssa_def *
        1:        1:  354:nir_ffloor(nir_builder *build, nir_ssa_def *src0)
        -:        -:  355:{
        1:        1:  356:   return nir_build_alu(build, nir_op_ffloor, src0, NULL, NULL, NULL);
        -:        -:  357:}
        -:        -:  358:static inline nir_ssa_def *
    #####:    #####:  359:nir_ffma(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  360:{
    #####:    #####:  361:   return nir_build_alu(build, nir_op_ffma, src0, src1, src2, NULL);
        -:        -:  362:}
        -:        -:  363:static inline nir_ssa_def *
    #####:    #####:  364:nir_ffract(nir_builder *build, nir_ssa_def *src0)
        -:        -:  365:{
    #####:    #####:  366:   return nir_build_alu(build, nir_op_ffract, src0, NULL, NULL, NULL);
        -:        -:  367:}
        -:        -:  368:static inline nir_ssa_def *
        5:        7:  369:nir_fge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  370:{
        5:        7:  371:   return nir_build_alu(build, nir_op_fge, src0, src1, NULL, NULL);
        -:        -:  372:}
        -:        -:  373:static inline nir_ssa_def *
    #####:    #####:  374:nir_find_lsb(nir_builder *build, nir_ssa_def *src0)
        -:        -:  375:{
    #####:    #####:  376:   return nir_build_alu(build, nir_op_find_lsb, src0, NULL, NULL, NULL);
        -:        -:  377:}
        -:        -:  378:static inline nir_ssa_def *
    #####:    #####:  379:nir_flog2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  380:{
    #####:    #####:  381:   return nir_build_alu(build, nir_op_flog2, src0, NULL, NULL, NULL);
        -:        -:  382:}
        -:        -:  383:static inline nir_ssa_def *
    #####:    #####:  384:nir_flrp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  385:{
    #####:    #####:  386:   return nir_build_alu(build, nir_op_flrp, src0, src1, src2, NULL);
        -:        -:  387:}
        -:        -:  388:static inline nir_ssa_def *
    #####:    #####:  389:nir_flt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  390:{
    #####:    #####:  391:   return nir_build_alu(build, nir_op_flt, src0, src1, NULL, NULL);
        -:        -:  392:}
        -:        -:  393:static inline nir_ssa_def *
    #####:    #####:  394:nir_fmax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  395:{
    #####:    #####:  396:   return nir_build_alu(build, nir_op_fmax, src0, src1, NULL, NULL);
        -:        -:  397:}
        -:        -:  398:static inline nir_ssa_def *
    #####:    #####:  399:nir_fmin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  400:{
    #####:    #####:  401:   return nir_build_alu(build, nir_op_fmin, src0, src1, NULL, NULL);
        -:        -:  402:}
        -:        -:  403:static inline nir_ssa_def *
        5:        5:  404:nir_fmod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  405:{
        5:        5:  406:   return nir_build_alu(build, nir_op_fmod, src0, src1, NULL, NULL);
        -:        -:  407:}
        -:        -:  408:static inline nir_ssa_def *
    #####:    #####:  409:nir_fmov(nir_builder *build, nir_ssa_def *src0)
        -:        -:  410:{
    #####:    #####:  411:   return nir_build_alu(build, nir_op_fmov, src0, NULL, NULL, NULL);
        -:        -:  412:}
        -:        -:  413:static inline nir_ssa_def *
        2:        2:  414:nir_fmul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  415:{
        2:        2:  416:   return nir_build_alu(build, nir_op_fmul, src0, src1, NULL, NULL);
        -:        -:  417:}
        -:        -:  418:static inline nir_ssa_def *
    #####:    #####:  419:nir_fne(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  420:{
    #####:    #####:  421:   return nir_build_alu(build, nir_op_fne, src0, src1, NULL, NULL);
        -:        -:  422:}
        -:        -:  423:static inline nir_ssa_def *
    #####:    #####:  424:nir_fneg(nir_builder *build, nir_ssa_def *src0)
        -:        -:  425:{
    #####:    #####:  426:   return nir_build_alu(build, nir_op_fneg, src0, NULL, NULL, NULL);
        -:        -:  427:}
        -:        -:  428:static inline nir_ssa_def *
    #####:    #####:  429:nir_fnoise1_1(nir_builder *build, nir_ssa_def *src0)
        -:        -:  430:{
    #####:    #####:  431:   return nir_build_alu(build, nir_op_fnoise1_1, src0, NULL, NULL, NULL);
        -:        -:  432:}
        -:        -:  433:static inline nir_ssa_def *
    #####:    #####:  434:nir_fnoise1_2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  435:{
    #####:    #####:  436:   return nir_build_alu(build, nir_op_fnoise1_2, src0, NULL, NULL, NULL);
        -:        -:  437:}
        -:        -:  438:static inline nir_ssa_def *
    #####:    #####:  439:nir_fnoise1_3(nir_builder *build, nir_ssa_def *src0)
        -:        -:  440:{
    #####:    #####:  441:   return nir_build_alu(build, nir_op_fnoise1_3, src0, NULL, NULL, NULL);
        -:        -:  442:}
        -:        -:  443:static inline nir_ssa_def *
    #####:    #####:  444:nir_fnoise1_4(nir_builder *build, nir_ssa_def *src0)
        -:        -:  445:{
    #####:    #####:  446:   return nir_build_alu(build, nir_op_fnoise1_4, src0, NULL, NULL, NULL);
        -:        -:  447:}
        -:        -:  448:static inline nir_ssa_def *
    #####:    #####:  449:nir_fnoise2_1(nir_builder *build, nir_ssa_def *src0)
        -:        -:  450:{
    #####:    #####:  451:   return nir_build_alu(build, nir_op_fnoise2_1, src0, NULL, NULL, NULL);
        -:        -:  452:}
        -:        -:  453:static inline nir_ssa_def *
    #####:    #####:  454:nir_fnoise2_2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  455:{
    #####:    #####:  456:   return nir_build_alu(build, nir_op_fnoise2_2, src0, NULL, NULL, NULL);
        -:        -:  457:}
        -:        -:  458:static inline nir_ssa_def *
    #####:    #####:  459:nir_fnoise2_3(nir_builder *build, nir_ssa_def *src0)
        -:        -:  460:{
    #####:    #####:  461:   return nir_build_alu(build, nir_op_fnoise2_3, src0, NULL, NULL, NULL);
        -:        -:  462:}
        -:        -:  463:static inline nir_ssa_def *
    #####:    #####:  464:nir_fnoise2_4(nir_builder *build, nir_ssa_def *src0)
        -:        -:  465:{
    #####:    #####:  466:   return nir_build_alu(build, nir_op_fnoise2_4, src0, NULL, NULL, NULL);
        -:        -:  467:}
        -:        -:  468:static inline nir_ssa_def *
    #####:    #####:  469:nir_fnoise3_1(nir_builder *build, nir_ssa_def *src0)
        -:        -:  470:{
    #####:    #####:  471:   return nir_build_alu(build, nir_op_fnoise3_1, src0, NULL, NULL, NULL);
        -:        -:  472:}
        -:        -:  473:static inline nir_ssa_def *
    #####:    #####:  474:nir_fnoise3_2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  475:{
    #####:    #####:  476:   return nir_build_alu(build, nir_op_fnoise3_2, src0, NULL, NULL, NULL);
        -:        -:  477:}
        -:        -:  478:static inline nir_ssa_def *
    #####:    #####:  479:nir_fnoise3_3(nir_builder *build, nir_ssa_def *src0)
        -:        -:  480:{
    #####:    #####:  481:   return nir_build_alu(build, nir_op_fnoise3_3, src0, NULL, NULL, NULL);
        -:        -:  482:}
        -:        -:  483:static inline nir_ssa_def *
    #####:    #####:  484:nir_fnoise3_4(nir_builder *build, nir_ssa_def *src0)
        -:        -:  485:{
    #####:    #####:  486:   return nir_build_alu(build, nir_op_fnoise3_4, src0, NULL, NULL, NULL);
        -:        -:  487:}
        -:        -:  488:static inline nir_ssa_def *
    #####:    #####:  489:nir_fnoise4_1(nir_builder *build, nir_ssa_def *src0)
        -:        -:  490:{
    #####:    #####:  491:   return nir_build_alu(build, nir_op_fnoise4_1, src0, NULL, NULL, NULL);
        -:        -:  492:}
        -:        -:  493:static inline nir_ssa_def *
    #####:    #####:  494:nir_fnoise4_2(nir_builder *build, nir_ssa_def *src0)
        -:        -:  495:{
    #####:    #####:  496:   return nir_build_alu(build, nir_op_fnoise4_2, src0, NULL, NULL, NULL);
        -:        -:  497:}
        -:        -:  498:static inline nir_ssa_def *
    #####:    #####:  499:nir_fnoise4_3(nir_builder *build, nir_ssa_def *src0)
        -:        -:  500:{
    #####:    #####:  501:   return nir_build_alu(build, nir_op_fnoise4_3, src0, NULL, NULL, NULL);
        -:        -:  502:}
        -:        -:  503:static inline nir_ssa_def *
    #####:    #####:  504:nir_fnoise4_4(nir_builder *build, nir_ssa_def *src0)
        -:        -:  505:{
    #####:    #####:  506:   return nir_build_alu(build, nir_op_fnoise4_4, src0, NULL, NULL, NULL);
        -:        -:  507:}
        -:        -:  508:static inline nir_ssa_def *
    #####:    #####:  509:nir_fnot(nir_builder *build, nir_ssa_def *src0)
        -:        -:  510:{
    #####:    #####:  511:   return nir_build_alu(build, nir_op_fnot, src0, NULL, NULL, NULL);
        -:        -:  512:}
        -:        -:  513:static inline nir_ssa_def *
    #####:    #####:  514:nir_for(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  515:{
    #####:    #####:  516:   return nir_build_alu(build, nir_op_for, src0, src1, NULL, NULL);
        -:        -:  517:}
        -:        -:  518:static inline nir_ssa_def *
    #####:    #####:  519:nir_fpow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  520:{
    #####:    #####:  521:   return nir_build_alu(build, nir_op_fpow, src0, src1, NULL, NULL);
        -:        -:  522:}
        -:        -:  523:static inline nir_ssa_def *
        -:        -:  524:nir_fquantize2f16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  525:{
        -:        -:  526:   return nir_build_alu(build, nir_op_fquantize2f16, src0, NULL, NULL, NULL);
        -:        -:  527:}
        -:        -:  528:static inline nir_ssa_def *
        1:        1:  529:nir_frcp(nir_builder *build, nir_ssa_def *src0)
        -:        -:  530:{
        1:        1:  531:   return nir_build_alu(build, nir_op_frcp, src0, NULL, NULL, NULL);
        -:        -:  532:}
        -:        -:  533:static inline nir_ssa_def *
        -:        -:  534:nir_frem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  535:{
        -:        -:  536:   return nir_build_alu(build, nir_op_frem, src0, src1, NULL, NULL);
        -:        -:  537:}
        -:        -:  538:static inline nir_ssa_def *
    #####:    #####:  539:nir_fround_even(nir_builder *build, nir_ssa_def *src0)
        -:        -:  540:{
    #####:    #####:  541:   return nir_build_alu(build, nir_op_fround_even, src0, NULL, NULL, NULL);
        -:        -:  542:}
        -:        -:  543:static inline nir_ssa_def *
    #####:    #####:  544:nir_frsq(nir_builder *build, nir_ssa_def *src0)
        -:        -:  545:{
    #####:    #####:  546:   return nir_build_alu(build, nir_op_frsq, src0, NULL, NULL, NULL);
        -:        -:  547:}
        -:        -:  548:static inline nir_ssa_def *
    #####:    #####:  549:nir_fsat(nir_builder *build, nir_ssa_def *src0)
        -:        -:  550:{
    #####:    #####:  551:   return nir_build_alu(build, nir_op_fsat, src0, NULL, NULL, NULL);
        -:        -:  552:}
        -:        -:  553:static inline nir_ssa_def *
    #####:    #####:  554:nir_fsign(nir_builder *build, nir_ssa_def *src0)
        -:        -:  555:{
    #####:    #####:  556:   return nir_build_alu(build, nir_op_fsign, src0, NULL, NULL, NULL);
        -:        -:  557:}
        -:        -:  558:static inline nir_ssa_def *
    #####:    #####:  559:nir_fsin(nir_builder *build, nir_ssa_def *src0)
        -:        -:  560:{
    #####:    #####:  561:   return nir_build_alu(build, nir_op_fsin, src0, NULL, NULL, NULL);
        -:        -:  562:}
        -:        -:  563:static inline nir_ssa_def *
    #####:    #####:  564:nir_fsqrt(nir_builder *build, nir_ssa_def *src0)
        -:        -:  565:{
    #####:    #####:  566:   return nir_build_alu(build, nir_op_fsqrt, src0, NULL, NULL, NULL);
        -:        -:  567:}
        -:        -:  568:static inline nir_ssa_def *
    #####:    #####:  569:nir_fsub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  570:{
    #####:    #####:  571:   return nir_build_alu(build, nir_op_fsub, src0, src1, NULL, NULL);
        -:        -:  572:}
        -:        -:  573:static inline nir_ssa_def *
    #####:    #####:  574:nir_ftrunc(nir_builder *build, nir_ssa_def *src0)
        -:        -:  575:{
    #####:    #####:  576:   return nir_build_alu(build, nir_op_ftrunc, src0, NULL, NULL, NULL);
        -:        -:  577:}
        -:        -:  578:static inline nir_ssa_def *
    #####:    #####:  579:nir_fxor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  580:{
    #####:    #####:  581:   return nir_build_alu(build, nir_op_fxor, src0, src1, NULL, NULL);
        -:        -:  582:}
        -:        -:  583:static inline nir_ssa_def *
        -:        -:  584:nir_i2b(nir_builder *build, nir_ssa_def *src0)
        -:        -:  585:{
        -:        -:  586:   return nir_build_alu(build, nir_op_i2b, src0, NULL, NULL, NULL);
        -:        -:  587:}
        -:        -:  588:static inline nir_ssa_def *
        -:        -:  589:nir_i2f16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  590:{
        -:        -:  591:   return nir_build_alu(build, nir_op_i2f16, src0, NULL, NULL, NULL);
        -:        -:  592:}
        -:        -:  593:static inline nir_ssa_def *
        4:        4:  594:nir_i2f32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  595:{
        4:        4:  596:   return nir_build_alu(build, nir_op_i2f32, src0, NULL, NULL, NULL);
        -:        -:  597:}
        -:        -:  598:static inline nir_ssa_def *
        -:        -:  599:nir_i2f64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  600:{
        -:        -:  601:   return nir_build_alu(build, nir_op_i2f64, src0, NULL, NULL, NULL);
        -:        -:  602:}
        -:        -:  603:static inline nir_ssa_def *
        -:        -:  604:nir_i2i16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  605:{
        -:        -:  606:   return nir_build_alu(build, nir_op_i2i16, src0, NULL, NULL, NULL);
        -:        -:  607:}
        -:        -:  608:static inline nir_ssa_def *
        -:        -:  609:nir_i2i32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  610:{
        -:        -:  611:   return nir_build_alu(build, nir_op_i2i32, src0, NULL, NULL, NULL);
        -:        -:  612:}
        -:        -:  613:static inline nir_ssa_def *
        -:        -:  614:nir_i2i64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  615:{
        -:        -:  616:   return nir_build_alu(build, nir_op_i2i64, src0, NULL, NULL, NULL);
        -:        -:  617:}
        -:        -:  618:static inline nir_ssa_def *
        -:        -:  619:nir_i2i8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  620:{
        -:        -:  621:   return nir_build_alu(build, nir_op_i2i8, src0, NULL, NULL, NULL);
        -:        -:  622:}
        -:        -:  623:static inline nir_ssa_def *
    #####:    #####:  624:nir_iabs(nir_builder *build, nir_ssa_def *src0)
        -:        -:  625:{
    #####:    #####:  626:   return nir_build_alu(build, nir_op_iabs, src0, NULL, NULL, NULL);
        -:        -:  627:}
        -:        -:  628:static inline nir_ssa_def *
        3:        3:  629:nir_iadd(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  630:{
        3:        3:  631:   return nir_build_alu(build, nir_op_iadd, src0, src1, NULL, NULL);
        -:        -:  632:}
        -:        -:  633:static inline nir_ssa_def *
    #####:    #####:  634:nir_iand(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  635:{
    #####:    #####:  636:   return nir_build_alu(build, nir_op_iand, src0, src1, NULL, NULL);
        -:        -:  637:}
        -:        -:  638:static inline nir_ssa_def *
        -:        -:  639:nir_ibfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  640:{
        -:        -:  641:   return nir_build_alu(build, nir_op_ibfe, src0, src1, src2, NULL);
        -:        -:  642:}
        -:        -:  643:static inline nir_ssa_def *
    #####:    #####:  644:nir_ibitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  645:{
    #####:    #####:  646:   return nir_build_alu(build, nir_op_ibitfield_extract, src0, src1, src2, NULL);
        -:        -:  647:}
        -:        -:  648:static inline nir_ssa_def *
    #####:    #####:  649:nir_idiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  650:{
    #####:    #####:  651:   return nir_build_alu(build, nir_op_idiv, src0, src1, NULL, NULL);
        -:        -:  652:}
        -:        -:  653:static inline nir_ssa_def *
       16:       16:  654:nir_ieq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  655:{
       16:       16:  656:   return nir_build_alu(build, nir_op_ieq, src0, src1, NULL, NULL);
        -:        -:  657:}
        -:        -:  658:static inline nir_ssa_def *
    #####:    #####:  659:nir_ifind_msb(nir_builder *build, nir_ssa_def *src0)
        -:        -:  660:{
    #####:    #####:  661:   return nir_build_alu(build, nir_op_ifind_msb, src0, NULL, NULL, NULL);
        -:        -:  662:}
        -:        -:  663:static inline nir_ssa_def *
        3:        3:  664:nir_ige(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  665:{
        3:        3:  666:   return nir_build_alu(build, nir_op_ige, src0, src1, NULL, NULL);
        -:        -:  667:}
        -:        -:  668:static inline nir_ssa_def *
    #####:    #####:  669:nir_ilt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  670:{
    #####:    #####:  671:   return nir_build_alu(build, nir_op_ilt, src0, src1, NULL, NULL);
        -:        -:  672:}
        -:        -:  673:static inline nir_ssa_def *
    #####:    #####:  674:nir_imax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  675:{
    #####:    #####:  676:   return nir_build_alu(build, nir_op_imax, src0, src1, NULL, NULL);
        -:        -:  677:}
        -:        -:  678:static inline nir_ssa_def *
    #####:    #####:  679:nir_imin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  680:{
    #####:    #####:  681:   return nir_build_alu(build, nir_op_imin, src0, src1, NULL, NULL);
        -:        -:  682:}
        -:        -:  683:static inline nir_ssa_def *
        -:        -:  684:nir_imod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  685:{
        -:        -:  686:   return nir_build_alu(build, nir_op_imod, src0, src1, NULL, NULL);
        -:        -:  687:}
        -:        -:  688:static inline nir_ssa_def *
    #####:    #####:  689:nir_imov(nir_builder *build, nir_ssa_def *src0)
        -:        -:  690:{
    #####:    #####:  691:   return nir_build_alu(build, nir_op_imov, src0, NULL, NULL, NULL);
        -:        -:  692:}
        -:        -:  693:static inline nir_ssa_def *
    #####:    #####:  694:nir_imul(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  695:{
    #####:    #####:  696:   return nir_build_alu(build, nir_op_imul, src0, src1, NULL, NULL);
        -:        -:  697:}
        -:        -:  698:static inline nir_ssa_def *
    #####:    #####:  699:nir_imul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  700:{
    #####:    #####:  701:   return nir_build_alu(build, nir_op_imul_high, src0, src1, NULL, NULL);
        -:        -:  702:}
        -:        -:  703:static inline nir_ssa_def *
    #####:    #####:  704:nir_ine(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  705:{
    #####:    #####:  706:   return nir_build_alu(build, nir_op_ine, src0, src1, NULL, NULL);
        -:        -:  707:}
        -:        -:  708:static inline nir_ssa_def *
    #####:    #####:  709:nir_ineg(nir_builder *build, nir_ssa_def *src0)
        -:        -:  710:{
    #####:    #####:  711:   return nir_build_alu(build, nir_op_ineg, src0, NULL, NULL, NULL);
        -:        -:  712:}
        -:        -:  713:static inline nir_ssa_def *
    #####:    #####:  714:nir_inot(nir_builder *build, nir_ssa_def *src0)
        -:        -:  715:{
    #####:    #####:  716:   return nir_build_alu(build, nir_op_inot, src0, NULL, NULL, NULL);
        -:        -:  717:}
        -:        -:  718:static inline nir_ssa_def *
    #####:    #####:  719:nir_ior(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  720:{
    #####:    #####:  721:   return nir_build_alu(build, nir_op_ior, src0, src1, NULL, NULL);
        -:        -:  722:}
        -:        -:  723:static inline nir_ssa_def *
        -:        -:  724:nir_irem(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  725:{
        -:        -:  726:   return nir_build_alu(build, nir_op_irem, src0, src1, NULL, NULL);
        -:        -:  727:}
        -:        -:  728:static inline nir_ssa_def *
    #####:    #####:  729:nir_ishl(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  730:{
    #####:    #####:  731:   return nir_build_alu(build, nir_op_ishl, src0, src1, NULL, NULL);
        -:        -:  732:}
        -:        -:  733:static inline nir_ssa_def *
    #####:    #####:  734:nir_ishr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  735:{
    #####:    #####:  736:   return nir_build_alu(build, nir_op_ishr, src0, src1, NULL, NULL);
        -:        -:  737:}
        -:        -:  738:static inline nir_ssa_def *
    #####:    #####:  739:nir_isign(nir_builder *build, nir_ssa_def *src0)
        -:        -:  740:{
    #####:    #####:  741:   return nir_build_alu(build, nir_op_isign, src0, NULL, NULL, NULL);
        -:        -:  742:}
        -:        -:  743:static inline nir_ssa_def *
    #####:    #####:  744:nir_isub(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  745:{
    #####:    #####:  746:   return nir_build_alu(build, nir_op_isub, src0, src1, NULL, NULL);
        -:        -:  747:}
        -:        -:  748:static inline nir_ssa_def *
    #####:    #####:  749:nir_ixor(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  750:{
    #####:    #####:  751:   return nir_build_alu(build, nir_op_ixor, src0, src1, NULL, NULL);
        -:        -:  752:}
        -:        -:  753:static inline nir_ssa_def *
    #####:    #####:  754:nir_ldexp(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  755:{
    #####:    #####:  756:   return nir_build_alu(build, nir_op_ldexp, src0, src1, NULL, NULL);
        -:        -:  757:}
        -:        -:  758:static inline nir_ssa_def *
    #####:    #####:  759:nir_pack_64_2x32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  760:{
    #####:    #####:  761:   return nir_build_alu(build, nir_op_pack_64_2x32, src0, NULL, NULL, NULL);
        -:        -:  762:}
        -:        -:  763:static inline nir_ssa_def *
        -:        -:  764:nir_pack_64_2x32_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  765:{
        -:        -:  766:   return nir_build_alu(build, nir_op_pack_64_2x32_split, src0, src1, NULL, NULL);
        -:        -:  767:}
        -:        -:  768:static inline nir_ssa_def *
    #####:    #####:  769:nir_pack_half_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  770:{
    #####:    #####:  771:   return nir_build_alu(build, nir_op_pack_half_2x16, src0, NULL, NULL, NULL);
        -:        -:  772:}
        -:        -:  773:static inline nir_ssa_def *
        -:        -:  774:nir_pack_half_2x16_split(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  775:{
        -:        -:  776:   return nir_build_alu(build, nir_op_pack_half_2x16_split, src0, src1, NULL, NULL);
        -:        -:  777:}
        -:        -:  778:static inline nir_ssa_def *
    #####:    #####:  779:nir_pack_snorm_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  780:{
    #####:    #####:  781:   return nir_build_alu(build, nir_op_pack_snorm_2x16, src0, NULL, NULL, NULL);
        -:        -:  782:}
        -:        -:  783:static inline nir_ssa_def *
    #####:    #####:  784:nir_pack_snorm_4x8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  785:{
    #####:    #####:  786:   return nir_build_alu(build, nir_op_pack_snorm_4x8, src0, NULL, NULL, NULL);
        -:        -:  787:}
        -:        -:  788:static inline nir_ssa_def *
    #####:    #####:  789:nir_pack_unorm_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  790:{
    #####:    #####:  791:   return nir_build_alu(build, nir_op_pack_unorm_2x16, src0, NULL, NULL, NULL);
        -:        -:  792:}
        -:        -:  793:static inline nir_ssa_def *
    #####:    #####:  794:nir_pack_unorm_4x8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  795:{
    #####:    #####:  796:   return nir_build_alu(build, nir_op_pack_unorm_4x8, src0, NULL, NULL, NULL);
        -:        -:  797:}
        -:        -:  798:static inline nir_ssa_def *
        -:        -:  799:nir_pack_uvec2_to_uint(nir_builder *build, nir_ssa_def *src0)
        -:        -:  800:{
        -:        -:  801:   return nir_build_alu(build, nir_op_pack_uvec2_to_uint, src0, NULL, NULL, NULL);
        -:        -:  802:}
        -:        -:  803:static inline nir_ssa_def *
        -:        -:  804:nir_pack_uvec4_to_uint(nir_builder *build, nir_ssa_def *src0)
        -:        -:  805:{
        -:        -:  806:   return nir_build_alu(build, nir_op_pack_uvec4_to_uint, src0, NULL, NULL, NULL);
        -:        -:  807:}
        -:        -:  808:static inline nir_ssa_def *
    #####:    #####:  809:nir_seq(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  810:{
    #####:    #####:  811:   return nir_build_alu(build, nir_op_seq, src0, src1, NULL, NULL);
        -:        -:  812:}
        -:        -:  813:static inline nir_ssa_def *
        -:        -:  814:nir_sge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  815:{
        -:        -:  816:   return nir_build_alu(build, nir_op_sge, src0, src1, NULL, NULL);
        -:        -:  817:}
        -:        -:  818:static inline nir_ssa_def *
    #####:    #####:  819:nir_slt(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  820:{
    #####:    #####:  821:   return nir_build_alu(build, nir_op_slt, src0, src1, NULL, NULL);
        -:        -:  822:}
        -:        -:  823:static inline nir_ssa_def *
    #####:    #####:  824:nir_sne(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  825:{
    #####:    #####:  826:   return nir_build_alu(build, nir_op_sne, src0, src1, NULL, NULL);
        -:        -:  827:}
        -:        -:  828:static inline nir_ssa_def *
        -:        -:  829:nir_u2f16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  830:{
        -:        -:  831:   return nir_build_alu(build, nir_op_u2f16, src0, NULL, NULL, NULL);
        -:        -:  832:}
        -:        -:  833:static inline nir_ssa_def *
    #####:    #####:  834:nir_u2f32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  835:{
    #####:    #####:  836:   return nir_build_alu(build, nir_op_u2f32, src0, NULL, NULL, NULL);
        -:        -:  837:}
        -:        -:  838:static inline nir_ssa_def *
        -:        -:  839:nir_u2f64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  840:{
        -:        -:  841:   return nir_build_alu(build, nir_op_u2f64, src0, NULL, NULL, NULL);
        -:        -:  842:}
        -:        -:  843:static inline nir_ssa_def *
        -:        -:  844:nir_u2u16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  845:{
        -:        -:  846:   return nir_build_alu(build, nir_op_u2u16, src0, NULL, NULL, NULL);
        -:        -:  847:}
        -:        -:  848:static inline nir_ssa_def *
        -:        -:  849:nir_u2u32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  850:{
        -:        -:  851:   return nir_build_alu(build, nir_op_u2u32, src0, NULL, NULL, NULL);
        -:        -:  852:}
        -:        -:  853:static inline nir_ssa_def *
        -:        -:  854:nir_u2u64(nir_builder *build, nir_ssa_def *src0)
        -:        -:  855:{
        -:        -:  856:   return nir_build_alu(build, nir_op_u2u64, src0, NULL, NULL, NULL);
        -:        -:  857:}
        -:        -:  858:static inline nir_ssa_def *
        -:        -:  859:nir_u2u8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  860:{
        -:        -:  861:   return nir_build_alu(build, nir_op_u2u8, src0, NULL, NULL, NULL);
        -:        -:  862:}
        -:        -:  863:static inline nir_ssa_def *
    #####:    #####:  864:nir_uadd_carry(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  865:{
    #####:    #####:  866:   return nir_build_alu(build, nir_op_uadd_carry, src0, src1, NULL, NULL);
        -:        -:  867:}
        -:        -:  868:static inline nir_ssa_def *
        -:        -:  869:nir_ubfe(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  870:{
        -:        -:  871:   return nir_build_alu(build, nir_op_ubfe, src0, src1, src2, NULL);
        -:        -:  872:}
        -:        -:  873:static inline nir_ssa_def *
    #####:    #####:  874:nir_ubitfield_extract(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:  875:{
    #####:    #####:  876:   return nir_build_alu(build, nir_op_ubitfield_extract, src0, src1, src2, NULL);
        -:        -:  877:}
        -:        -:  878:static inline nir_ssa_def *
    #####:    #####:  879:nir_udiv(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  880:{
    #####:    #####:  881:   return nir_build_alu(build, nir_op_udiv, src0, src1, NULL, NULL);
        -:        -:  882:}
        -:        -:  883:static inline nir_ssa_def *
    #####:    #####:  884:nir_ufind_msb(nir_builder *build, nir_ssa_def *src0)
        -:        -:  885:{
    #####:    #####:  886:   return nir_build_alu(build, nir_op_ufind_msb, src0, NULL, NULL, NULL);
        -:        -:  887:}
        -:        -:  888:static inline nir_ssa_def *
    #####:    #####:  889:nir_uge(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  890:{
    #####:    #####:  891:   return nir_build_alu(build, nir_op_uge, src0, src1, NULL, NULL);
        -:        -:  892:}
        -:        -:  893:static inline nir_ssa_def *
    #####:    #####:  894:nir_ult(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  895:{
    #####:    #####:  896:   return nir_build_alu(build, nir_op_ult, src0, src1, NULL, NULL);
        -:        -:  897:}
        -:        -:  898:static inline nir_ssa_def *
    #####:    #####:  899:nir_umax(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  900:{
    #####:    #####:  901:   return nir_build_alu(build, nir_op_umax, src0, src1, NULL, NULL);
        -:        -:  902:}
        -:        -:  903:static inline nir_ssa_def *
        -:        -:  904:nir_umax_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  905:{
        -:        -:  906:   return nir_build_alu(build, nir_op_umax_4x8, src0, src1, NULL, NULL);
        -:        -:  907:}
        -:        -:  908:static inline nir_ssa_def *
    #####:    #####:  909:nir_umin(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  910:{
    #####:    #####:  911:   return nir_build_alu(build, nir_op_umin, src0, src1, NULL, NULL);
        -:        -:  912:}
        -:        -:  913:static inline nir_ssa_def *
        -:        -:  914:nir_umin_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  915:{
        -:        -:  916:   return nir_build_alu(build, nir_op_umin_4x8, src0, src1, NULL, NULL);
        -:        -:  917:}
        -:        -:  918:static inline nir_ssa_def *
    #####:    #####:  919:nir_umod(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  920:{
    #####:    #####:  921:   return nir_build_alu(build, nir_op_umod, src0, src1, NULL, NULL);
        -:        -:  922:}
        -:        -:  923:static inline nir_ssa_def *
    #####:    #####:  924:nir_umul_high(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  925:{
    #####:    #####:  926:   return nir_build_alu(build, nir_op_umul_high, src0, src1, NULL, NULL);
        -:        -:  927:}
        -:        -:  928:static inline nir_ssa_def *
        -:        -:  929:nir_umul_unorm_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  930:{
        -:        -:  931:   return nir_build_alu(build, nir_op_umul_unorm_4x8, src0, src1, NULL, NULL);
        -:        -:  932:}
        -:        -:  933:static inline nir_ssa_def *
    #####:    #####:  934:nir_unpack_64_2x32(nir_builder *build, nir_ssa_def *src0)
        -:        -:  935:{
    #####:    #####:  936:   return nir_build_alu(build, nir_op_unpack_64_2x32, src0, NULL, NULL, NULL);
        -:        -:  937:}
        -:        -:  938:static inline nir_ssa_def *
        -:        -:  939:nir_unpack_64_2x32_split_x(nir_builder *build, nir_ssa_def *src0)
        -:        -:  940:{
        -:        -:  941:   return nir_build_alu(build, nir_op_unpack_64_2x32_split_x, src0, NULL, NULL, NULL);
        -:        -:  942:}
        -:        -:  943:static inline nir_ssa_def *
        -:        -:  944:nir_unpack_64_2x32_split_y(nir_builder *build, nir_ssa_def *src0)
        -:        -:  945:{
        -:        -:  946:   return nir_build_alu(build, nir_op_unpack_64_2x32_split_y, src0, NULL, NULL, NULL);
        -:        -:  947:}
        -:        -:  948:static inline nir_ssa_def *
    #####:    #####:  949:nir_unpack_half_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  950:{
    #####:    #####:  951:   return nir_build_alu(build, nir_op_unpack_half_2x16, src0, NULL, NULL, NULL);
        -:        -:  952:}
        -:        -:  953:static inline nir_ssa_def *
        -:        -:  954:nir_unpack_half_2x16_split_x(nir_builder *build, nir_ssa_def *src0)
        -:        -:  955:{
        -:        -:  956:   return nir_build_alu(build, nir_op_unpack_half_2x16_split_x, src0, NULL, NULL, NULL);
        -:        -:  957:}
        -:        -:  958:static inline nir_ssa_def *
        -:        -:  959:nir_unpack_half_2x16_split_y(nir_builder *build, nir_ssa_def *src0)
        -:        -:  960:{
        -:        -:  961:   return nir_build_alu(build, nir_op_unpack_half_2x16_split_y, src0, NULL, NULL, NULL);
        -:        -:  962:}
        -:        -:  963:static inline nir_ssa_def *
    #####:    #####:  964:nir_unpack_snorm_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  965:{
    #####:    #####:  966:   return nir_build_alu(build, nir_op_unpack_snorm_2x16, src0, NULL, NULL, NULL);
        -:        -:  967:}
        -:        -:  968:static inline nir_ssa_def *
    #####:    #####:  969:nir_unpack_snorm_4x8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  970:{
    #####:    #####:  971:   return nir_build_alu(build, nir_op_unpack_snorm_4x8, src0, NULL, NULL, NULL);
        -:        -:  972:}
        -:        -:  973:static inline nir_ssa_def *
    #####:    #####:  974:nir_unpack_unorm_2x16(nir_builder *build, nir_ssa_def *src0)
        -:        -:  975:{
    #####:    #####:  976:   return nir_build_alu(build, nir_op_unpack_unorm_2x16, src0, NULL, NULL, NULL);
        -:        -:  977:}
        -:        -:  978:static inline nir_ssa_def *
    #####:    #####:  979:nir_unpack_unorm_4x8(nir_builder *build, nir_ssa_def *src0)
        -:        -:  980:{
    #####:    #####:  981:   return nir_build_alu(build, nir_op_unpack_unorm_4x8, src0, NULL, NULL, NULL);
        -:        -:  982:}
        -:        -:  983:static inline nir_ssa_def *
        -:        -:  984:nir_usadd_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  985:{
        -:        -:  986:   return nir_build_alu(build, nir_op_usadd_4x8, src0, src1, NULL, NULL);
        -:        -:  987:}
        -:        -:  988:static inline nir_ssa_def *
    #####:    #####:  989:nir_ushr(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  990:{
    #####:    #####:  991:   return nir_build_alu(build, nir_op_ushr, src0, src1, NULL, NULL);
        -:        -:  992:}
        -:        -:  993:static inline nir_ssa_def *
        -:        -:  994:nir_ussub_4x8(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  995:{
        -:        -:  996:   return nir_build_alu(build, nir_op_ussub_4x8, src0, src1, NULL, NULL);
        -:        -:  997:}
        -:        -:  998:static inline nir_ssa_def *
    #####:    #####:  999:nir_usub_borrow(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -: 1000:{
    #####:    #####: 1001:   return nir_build_alu(build, nir_op_usub_borrow, src0, src1, NULL, NULL);
        -:        -: 1002:}
        -:        -: 1003:static inline nir_ssa_def *
    #####:    #####: 1004:nir_vec2(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -: 1005:{
    #####:    #####: 1006:   return nir_build_alu(build, nir_op_vec2, src0, src1, NULL, NULL);
        -:        -: 1007:}
        -:        -: 1008:static inline nir_ssa_def *
    #####:    #####: 1009:nir_vec3(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -: 1010:{
    #####:    #####: 1011:   return nir_build_alu(build, nir_op_vec3, src0, src1, src2, NULL);
        -:        -: 1012:}
        -:        -: 1013:static inline nir_ssa_def *
    #####:    #####: 1014:nir_vec4(nir_builder *build, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2, nir_ssa_def *src3)
        -:        -: 1015:{
    #####:    #####: 1016:   return nir_build_alu(build, nir_op_vec4, src0, src1, src2, src3);
        -:        -: 1017:}
        -:        -: 1018:
        -:        -: 1019:#endif /* _NIR_BUILDER_OPCODES_ */

src/compiler/nir.c.gcov

        -:        -:    0:Source:nir/nir.c
        -:        -:    0:Graph:nir/.libs/nir.gcno
        -:        -:    0:Data:nir/.libs/nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_control_flow_private.h"
        -:        -:   30:#include <assert.h>
        -:        -:   31:
        -:        -:   32:nir_shader *
       10:       10:   33:nir_shader_create(void *mem_ctx,
        -:        -:   34:                  gl_shader_stage stage,
        -:        -:   35:                  const nir_shader_compiler_options *options,
        -:        -:   36:                  shader_info *si)
        -:        -:   37:{
       10:       10:   38:   nir_shader *shader = rzalloc(mem_ctx, nir_shader);
        -:        -:   39:
       10:       10:   40:   exec_list_make_empty(&shader->uniforms);
       10:       10:   41:   exec_list_make_empty(&shader->inputs);
       10:       10:   42:   exec_list_make_empty(&shader->outputs);
       10:       10:   43:   exec_list_make_empty(&shader->shared);
        -:        -:   44:
       10:       10:   45:   shader->options = options;
        -:        -:   46:
       10:       10:   47:   shader->info = si ? si : rzalloc(shader, shader_info);
        -:        -:   48:
       10:       10:   49:   exec_list_make_empty(&shader->functions);
       10:       10:   50:   exec_list_make_empty(&shader->registers);
       10:       10:   51:   exec_list_make_empty(&shader->globals);
       10:       10:   52:   exec_list_make_empty(&shader->system_values);
       10:       10:   53:   shader->reg_alloc = 0;
        -:        -:   54:
       10:       10:   55:   shader->num_inputs = 0;
       10:       10:   56:   shader->num_outputs = 0;
       10:       10:   57:   shader->num_uniforms = 0;
       10:       10:   58:   shader->num_shared = 0;
        -:        -:   59:
       10:       10:   60:   shader->stage = stage;
        -:        -:   61:
       10:       10:   62:   return shader;
        -:        -:   63:}
        -:        -:   64:
        -:        -:   65:static nir_register *
       28:       28:   66:reg_create(void *mem_ctx, struct exec_list *list)
        -:        -:   67:{
       28:       28:   68:   nir_register *reg = ralloc(mem_ctx, nir_register);
        -:        -:   69:
       28:       28:   70:   list_inithead(®->uses);
       28:       28:   71:   list_inithead(®->defs);
       28:       28:   72:   list_inithead(®->if_uses);
        -:        -:   73:
       28:       28:   74:   reg->num_components = 0;
       28:       28:   75:   reg->bit_size = 32;
       28:       28:   76:   reg->num_array_elems = 0;
       28:       28:   77:   reg->is_packed = false;
       28:       28:   78:   reg->name = NULL;
        -:        -:   79:
       28:       28:   80:   exec_list_push_tail(list, ®->node);
        -:        -:   81:
       28:       28:   82:   return reg;
        -:        -:   83:}
        -:        -:   84:
        -:        -:   85:nir_register *
    #####:    #####:   86:nir_global_reg_create(nir_shader *shader)
        -:        -:   87:{
    #####:    #####:   88:   nir_register *reg = reg_create(shader, &shader->registers);
    #####:    #####:   89:   reg->index = shader->reg_alloc++;
    #####:    #####:   90:   reg->is_global = true;
        -:        -:   91:
    #####:    #####:   92:   return reg;
        -:        -:   93:}
        -:        -:   94:
        -:        -:   95:nir_register *
       28:       28:   96:nir_local_reg_create(nir_function_impl *impl)
        -:        -:   97:{
       28:       28:   98:   nir_register *reg = reg_create(ralloc_parent(impl), &impl->registers);
       28:       28:   99:   reg->index = impl->reg_alloc++;
       28:       28:  100:   reg->is_global = false;
        -:        -:  101:
       28:       28:  102:   return reg;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:void
    #####:    #####:  106:nir_reg_remove(nir_register *reg)
        -:        -:  107:{
    #####:    #####:  108:   exec_node_remove(®->node);
    #####:    #####:  109:}
        -:        -:  110:
        -:        -:  111:void
       13:       13:  112:nir_shader_add_variable(nir_shader *shader, nir_variable *var)
        -:        -:  113:{
       13:       13:  114:   switch (var->data.mode) {
        -:        -:  115:   case nir_var_all:
    #####:    #####:  116:      assert(!"invalid mode");
        -:        -:  117:      break;
        -:        -:  118:
        -:        -:  119:   case nir_var_local:
    #####:    #####:  120:      assert(!"nir_shader_add_variable cannot be used for local variables");
        -:        -:  121:      break;
        -:        -:  122:
        -:        -:  123:   case nir_var_param:
    #####:    #####:  124:      assert(!"nir_shader_add_variable cannot be used for function parameters");
        -:        -:  125:      break;
        -:        -:  126:
        -:        -:  127:   case nir_var_global:
    #####:    #####:  128:      exec_list_push_tail(&shader->globals, &var->node);
    #####:    #####:  129:      break;
        -:        -:  130:
        -:        -:  131:   case nir_var_shader_in:
        6:        6:  132:      exec_list_push_tail(&shader->inputs, &var->node);
        6:        6:  133:      break;
        -:        -:  134:
        -:        -:  135:   case nir_var_shader_out:
        4:        4:  136:      exec_list_push_tail(&shader->outputs, &var->node);
        4:        4:  137:      break;
        -:        -:  138:
        -:        -:  139:   case nir_var_uniform:
        -:        -:  140:   case nir_var_shader_storage:
        3:        3:  141:      exec_list_push_tail(&shader->uniforms, &var->node);
        3:        3:  142:      break;
        -:        -:  143:
        -:        -:  144:   case nir_var_shared:
    #####:    #####:  145:      assert(shader->stage == MESA_SHADER_COMPUTE);
    #####:    #####:  146:      exec_list_push_tail(&shader->shared, &var->node);
    #####:    #####:  147:      break;
        -:        -:  148:
        -:        -:  149:   case nir_var_system_value:
    #####:    #####:  150:      exec_list_push_tail(&shader->system_values, &var->node);
    #####:    #####:  151:      break;
        -:        -:  152:   }
       13:       13:  153:}
        -:        -:  154:
        -:        -:  155:nir_variable *
        5:        5:  156:nir_variable_create(nir_shader *shader, nir_variable_mode mode,
        -:        -:  157:                    const struct glsl_type *type, const char *name)
        -:        -:  158:{
        5:        5:  159:   nir_variable *var = rzalloc(shader, nir_variable);
        5:        5:  160:   var->name = ralloc_strdup(var, name);
        5:        5:  161:   var->type = type;
        5:        5:  162:   var->data.mode = mode;
        -:        -:  163:
        5:        5:  164:   if ((mode == nir_var_shader_in && shader->stage != MESA_SHADER_VERTEX) ||
        1:        1:  165:       (mode == nir_var_shader_out && shader->stage != MESA_SHADER_FRAGMENT))
        1:        1:  166:      var->data.interpolation = INTERP_MODE_SMOOTH;
        -:        -:  167:
        5:        5:  168:   if (mode == nir_var_shader_in || mode == nir_var_uniform)
        4:        4:  169:      var->data.read_only = true;
        -:        -:  170:
        5:        5:  171:   nir_shader_add_variable(shader, var);
        -:        -:  172:
        5:        5:  173:   return var;
        -:        -:  174:}
        -:        -:  175:
        -:        -:  176:nir_variable *
       34:       36:  177:nir_local_variable_create(nir_function_impl *impl,
        -:        -:  178:                          const struct glsl_type *type, const char *name)
        -:        -:  179:{
       34:       36:  180:   nir_variable *var = rzalloc(impl->function->shader, nir_variable);
       34:       36:  181:   var->name = ralloc_strdup(var, name);
       34:       36:  182:   var->type = type;
       34:       36:  183:   var->data.mode = nir_var_local;
        -:        -:  184:
       34:       36:  185:   nir_function_impl_add_variable(impl, var);
        -:        -:  186:
       34:       36:  187:   return var;
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:nir_function *
       10:       10:  191:nir_function_create(nir_shader *shader, const char *name)
        -:        -:  192:{
       10:       10:  193:   nir_function *func = ralloc(shader, nir_function);
        -:        -:  194:
       10:       10:  195:   exec_list_push_tail(&shader->functions, &func->node);
        -:        -:  196:
       10:       10:  197:   func->name = ralloc_strdup(func, name);
       10:       10:  198:   func->shader = shader;
       10:       10:  199:   func->num_params = 0;
       10:       10:  200:   func->params = NULL;
       10:       10:  201:   func->return_type = glsl_void_type();
       10:       10:  202:   func->impl = NULL;
        -:        -:  203:
       10:       10:  204:   return func;
        -:        -:  205:}
        -:        -:  206:
      215:      235:  207:void nir_src_copy(nir_src *dest, const nir_src *src, void *mem_ctx)
        -:        -:  208:{
      215:      235:  209:   dest->is_ssa = src->is_ssa;
      215:      235:  210:   if (src->is_ssa) {
      212:      232:  211:      dest->ssa = src->ssa;
        -:        -:  212:   } else {
        3:        3:  213:      dest->reg.base_offset = src->reg.base_offset;
        3:        3:  214:      dest->reg.reg = src->reg.reg;
        3:        3:  215:      if (src->reg.indirect) {
    #####:    #####:  216:         dest->reg.indirect = ralloc(mem_ctx, nir_src);
    #####:    #####:  217:         nir_src_copy(dest->reg.indirect, src->reg.indirect, mem_ctx);
        -:        -:  218:      } else {
        3:        3:  219:         dest->reg.indirect = NULL;
        -:        -:  220:      }
        -:        -:  221:   }
      215:      235:  222:}
        -:        -:  223:
       79:      111:  224:void nir_dest_copy(nir_dest *dest, const nir_dest *src, nir_instr *instr)
        -:        -:  225:{
        -:        -:  226:   /* Copying an SSA definition makes no sense whatsoever. */
       79:      111:  227:   assert(!src->is_ssa);
        -:        -:  228:
       79:      111:  229:   dest->is_ssa = false;
        -:        -:  230:
       79:      111:  231:   dest->reg.base_offset = src->reg.base_offset;
       79:      111:  232:   dest->reg.reg = src->reg.reg;
       79:      111:  233:   if (src->reg.indirect) {
    #####:    #####:  234:      dest->reg.indirect = ralloc(instr, nir_src);
    #####:    #####:  235:      nir_src_copy(dest->reg.indirect, src->reg.indirect, instr);
        -:        -:  236:   } else {
       79:      111:  237:      dest->reg.indirect = NULL;
        -:        -:  238:   }
       79:      111:  239:}
        -:        -:  240:
        -:        -:  241:void
      146:      166:  242:nir_alu_src_copy(nir_alu_src *dest, const nir_alu_src *src,
        -:        -:  243:                 nir_alu_instr *instr)
        -:        -:  244:{
      146:      166:  245:   nir_src_copy(&dest->src, &src->src, &instr->instr);
      146:      166:  246:   dest->abs = src->abs;
      146:      166:  247:   dest->negate = src->negate;
      730:      830:  248:   for (unsigned i = 0; i < 4; i++)
      584:      664:  249:      dest->swizzle[i] = src->swizzle[i];
      146:      166:  250:}
        -:        -:  251:
        -:        -:  252:void
        2:        2:  253:nir_alu_dest_copy(nir_alu_dest *dest, const nir_alu_dest *src,
        -:        -:  254:                  nir_alu_instr *instr)
        -:        -:  255:{
        2:        2:  256:   nir_dest_copy(&dest->dest, &src->dest, &instr->instr);
        2:        2:  257:   dest->write_mask = src->write_mask;
        2:        2:  258:   dest->saturate = src->saturate;
        2:        2:  259:}
        -:        -:  260:
        -:        -:  261:
        -:        -:  262:static void
      257:      301:  263:cf_init(nir_cf_node *node, nir_cf_node_type type)
        -:        -:  264:{
      257:      301:  265:   exec_node_init(&node->node);
      257:      301:  266:   node->parent = NULL;
      257:      301:  267:   node->type = type;
      257:      301:  268:}
        -:        -:  269:
        -:        -:  270:nir_function_impl *
       10:       10:  271:nir_function_impl_create_bare(nir_shader *shader)
        -:        -:  272:{
       10:       10:  273:   nir_function_impl *impl = ralloc(shader, nir_function_impl);
        -:        -:  274:
       10:       10:  275:   impl->function = NULL;
        -:        -:  276:
       10:       10:  277:   cf_init(&impl->cf_node, nir_cf_node_function);
        -:        -:  278:
       10:       10:  279:   exec_list_make_empty(&impl->body);
       10:       10:  280:   exec_list_make_empty(&impl->registers);
       10:       10:  281:   exec_list_make_empty(&impl->locals);
       10:       10:  282:   impl->num_params = 0;
       10:       10:  283:   impl->params = NULL;
       10:       10:  284:   impl->return_var = NULL;
       10:       10:  285:   impl->reg_alloc = 0;
       10:       10:  286:   impl->ssa_alloc = 0;
       10:       10:  287:   impl->valid_metadata = nir_metadata_none;
        -:        -:  288:
        -:        -:  289:   /* create start & end blocks */
       10:       10:  290:   nir_block *start_block = nir_block_create(shader);
       10:       10:  291:   nir_block *end_block = nir_block_create(shader);
       10:       10:  292:   start_block->cf_node.parent = &impl->cf_node;
       10:       10:  293:   end_block->cf_node.parent = &impl->cf_node;
       10:       10:  294:   impl->end_block = end_block;
        -:        -:  295:
       10:       10:  296:   exec_list_push_tail(&impl->body, &start_block->cf_node.node);
        -:        -:  297:
       10:       10:  298:   start_block->successors[0] = end_block;
       10:       10:  299:   _mesa_set_add(end_block->predecessors, start_block);
       10:       10:  300:   return impl;
        -:        -:  301:}
        -:        -:  302:
        -:        -:  303:nir_function_impl *
        5:        5:  304:nir_function_impl_create(nir_function *function)
        -:        -:  305:{
        5:        5:  306:   assert(function->impl == NULL);
        -:        -:  307:
        5:        5:  308:   nir_function_impl *impl = nir_function_impl_create_bare(function->shader);
        -:        -:  309:
        5:        5:  310:   function->impl = impl;
        5:        5:  311:   impl->function = function;
        -:        -:  312:
        5:        5:  313:   impl->num_params = function->num_params;
        5:        5:  314:   impl->params = ralloc_array(function->shader,
        -:        -:  315:                               nir_variable *, impl->num_params);
        -:        -:  316:
        5:        5:  317:   for (unsigned i = 0; i < impl->num_params; i++) {
    #####:    #####:  318:      impl->params[i] = rzalloc(function->shader, nir_variable);
    #####:    #####:  319:      impl->params[i]->type = function->params[i].type;
    #####:    #####:  320:      impl->params[i]->data.mode = nir_var_param;
    #####:    #####:  321:      impl->params[i]->data.location = i;
        -:        -:  322:   }
        -:        -:  323:
        5:        5:  324:   if (!glsl_type_is_void(function->return_type)) {
    #####:    #####:  325:      impl->return_var = rzalloc(function->shader, nir_variable);
    #####:    #####:  326:      impl->return_var->type = function->return_type;
    #####:    #####:  327:      impl->return_var->data.mode = nir_var_param;
    #####:    #####:  328:      impl->return_var->data.location = -1;
        -:        -:  329:   } else {
        5:        5:  330:      impl->return_var = NULL;
        -:        -:  331:   }
        -:        -:  332:
        5:        5:  333:   return impl;
        -:        -:  334:}
        -:        -:  335:
        -:        -:  336:nir_block *
      204:      236:  337:nir_block_create(nir_shader *shader)
        -:        -:  338:{
      204:      236:  339:   nir_block *block = rzalloc(shader, nir_block);
        -:        -:  340:
      204:      236:  341:   cf_init(&block->cf_node, nir_cf_node_block);
        -:        -:  342:
      204:      236:  343:   block->successors[0] = block->successors[1] = NULL;
      204:      236:  344:   block->predecessors = _mesa_set_create(block, _mesa_hash_pointer,
        -:        -:  345:                                          _mesa_key_pointer_equal);
      204:      236:  346:   block->imm_dom = NULL;
        -:        -:  347:   /* XXX maybe it would be worth it to defer allocation?  This
        -:        -:  348:    * way it doesn't get allocated for shader refs that never run
        -:        -:  349:    * nir_calc_dominance?  For example, state-tracker creates an
        -:        -:  350:    * initial IR, clones that, runs appropriate lowering pass, passes
        -:        -:  351:    * to driver which does common lowering/opt, and then stores ref
        -:        -:  352:    * which is later used to do state specific lowering and futher
        -:        -:  353:    * opt.  Do any of the references not need dominance metadata?
        -:        -:  354:    */
      204:      236:  355:   block->dom_frontier = _mesa_set_create(block, _mesa_hash_pointer,
        -:        -:  356:                                          _mesa_key_pointer_equal);
        -:        -:  357:
      204:      236:  358:   exec_list_make_empty(&block->instr_list);
        -:        -:  359:
      204:      236:  360:   return block;
        -:        -:  361:}
        -:        -:  362:
        -:        -:  363:static inline void
     1483:     1617:  364:src_init(nir_src *src)
        -:        -:  365:{
     1483:     1617:  366:   src->is_ssa = false;
     1483:     1617:  367:   src->reg.reg = NULL;
     1483:     1617:  368:   src->reg.indirect = NULL;
     1483:     1617:  369:   src->reg.base_offset = 0;
     1483:     1617:  370:}
        -:        -:  371:
        -:        -:  372:nir_if *
       38:       46:  373:nir_if_create(nir_shader *shader)
        -:        -:  374:{
       38:       46:  375:   nir_if *if_stmt = ralloc(shader, nir_if);
        -:        -:  376:
       38:       46:  377:   cf_init(&if_stmt->cf_node, nir_cf_node_if);
       38:       46:  378:   src_init(&if_stmt->condition);
        -:        -:  379:
       38:       46:  380:   nir_block *then = nir_block_create(shader);
       38:       46:  381:   exec_list_make_empty(&if_stmt->then_list);
       38:       46:  382:   exec_list_push_tail(&if_stmt->then_list, &then->cf_node.node);
       38:       46:  383:   then->cf_node.parent = &if_stmt->cf_node;
        -:        -:  384:
       38:       46:  385:   nir_block *else_stmt = nir_block_create(shader);
       38:       46:  386:   exec_list_make_empty(&if_stmt->else_list);
       38:       46:  387:   exec_list_push_tail(&if_stmt->else_list, &else_stmt->cf_node.node);
       38:       46:  388:   else_stmt->cf_node.parent = &if_stmt->cf_node;
        -:        -:  389:
       38:       46:  390:   return if_stmt;
        -:        -:  391:}
        -:        -:  392:
        -:        -:  393:nir_loop *
        5:        9:  394:nir_loop_create(nir_shader *shader)
        -:        -:  395:{
        5:        9:  396:   nir_loop *loop = rzalloc(shader, nir_loop);
        -:        -:  397:
        5:        9:  398:   cf_init(&loop->cf_node, nir_cf_node_loop);
        -:        -:  399:
        5:        9:  400:   nir_block *body = nir_block_create(shader);
        5:        9:  401:   exec_list_make_empty(&loop->body);
        5:        9:  402:   exec_list_push_tail(&loop->body, &body->cf_node.node);
        5:        9:  403:   body->cf_node.parent = &loop->cf_node;
        -:        -:  404:
        5:        9:  405:   body->successors[0] = body;
        5:        9:  406:   _mesa_set_add(body->predecessors, body);
        -:        -:  407:
        5:        9:  408:   return loop;
        -:        -:  409:}
        -:        -:  410:
        -:        -:  411:static void
     1578:     1722:  412:instr_init(nir_instr *instr, nir_instr_type type)
        -:        -:  413:{
     1578:     1722:  414:   instr->type = type;
     1578:     1722:  415:   instr->block = NULL;
     1578:     1722:  416:   exec_node_init(&instr->node);
     1578:     1722:  417:}
        -:        -:  418:
        -:        -:  419:static void
     1126:     1236:  420:dest_init(nir_dest *dest)
        -:        -:  421:{
     1126:     1236:  422:   dest->is_ssa = false;
     1126:     1236:  423:   dest->reg.reg = NULL;
     1126:     1236:  424:   dest->reg.indirect = NULL;
     1126:     1236:  425:   dest->reg.base_offset = 0;
     1126:     1236:  426:}
        -:        -:  427:
        -:        -:  428:static void
      824:      892:  429:alu_dest_init(nir_alu_dest *dest)
        -:        -:  430:{
      824:      892:  431:   dest_init(&dest->dest);
      824:      892:  432:   dest->saturate = false;
      824:      892:  433:   dest->write_mask = 0xf;
      824:      892:  434:}
        -:        -:  435:
        -:        -:  436:static void
     1236:     1348:  437:alu_src_init(nir_alu_src *src)
        -:        -:  438:{
     1236:     1348:  439:   src_init(&src->src);
     1236:     1348:  440:   src->abs = src->negate = false;
     1236:     1348:  441:   src->swizzle[0] = 0;
     1236:     1348:  442:   src->swizzle[1] = 1;
     1236:     1348:  443:   src->swizzle[2] = 2;
     1236:     1348:  444:   src->swizzle[3] = 3;
     1236:     1348:  445:}
        -:        -:  446:
        -:        -:  447:nir_alu_instr *
      824:      892:  448:nir_alu_instr_create(nir_shader *shader, nir_op op)
        -:        -:  449:{
      824:      892:  450:   unsigned num_srcs = nir_op_infos[op].num_inputs;
        -:        -:  451:   /* TODO: don't use rzalloc */
      824:      892:  452:   nir_alu_instr *instr =
      824:      892:  453:      rzalloc_size(shader,
        -:        -:  454:                   sizeof(nir_alu_instr) + num_srcs * sizeof(nir_alu_src));
        -:        -:  455:
      824:      892:  456:   instr_init(&instr->instr, nir_instr_type_alu);
      824:      892:  457:   instr->op = op;
      824:      892:  458:   alu_dest_init(&instr->dest);
     2060:     2240:  459:   for (unsigned i = 0; i < num_srcs; i++)
     1236:     1348:  460:      alu_src_init(&instr->src[i]);
        -:        -:  461:
      824:      892:  462:   return instr;
        -:        -:  463:}
        -:        -:  464:
        -:        -:  465:nir_jump_instr *
        9:       17:  466:nir_jump_instr_create(nir_shader *shader, nir_jump_type type)
        -:        -:  467:{
        9:       17:  468:   nir_jump_instr *instr = ralloc(shader, nir_jump_instr);
        9:       17:  469:   instr_init(&instr->instr, nir_instr_type_jump);
        9:       17:  470:   instr->type = type;
        9:       17:  471:   return instr;
        -:        -:  472:}
        -:        -:  473:
        -:        -:  474:nir_load_const_instr *
      179:      197:  475:nir_load_const_instr_create(nir_shader *shader, unsigned num_components,
        -:        -:  476:                            unsigned bit_size)
        -:        -:  477:{
      179:      197:  478:   nir_load_const_instr *instr = ralloc(shader, nir_load_const_instr);
      179:      197:  479:   instr_init(&instr->instr, nir_instr_type_load_const);
        -:        -:  480:
      179:      197:  481:   nir_ssa_def_init(&instr->instr, &instr->def, num_components, bit_size, NULL);
        -:        -:  482:
      179:      197:  483:   return instr;
        -:        -:  484:}
        -:        -:  485:
        -:        -:  486:nir_intrinsic_instr *
      388:      416:  487:nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op)
        -:        -:  488:{
      388:      416:  489:   unsigned num_srcs = nir_intrinsic_infos[op].num_srcs;
        -:        -:  490:   /* TODO: don't use rzalloc */
      388:      416:  491:   nir_intrinsic_instr *instr =
      388:      416:  492:      rzalloc_size(shader,
      388:      416:  493:                  sizeof(nir_intrinsic_instr) + num_srcs * sizeof(nir_src));
        -:        -:  494:
      388:      416:  495:   instr_init(&instr->instr, nir_instr_type_intrinsic);
      388:      416:  496:   instr->intrinsic = op;
        -:        -:  497:
      388:      416:  498:   if (nir_intrinsic_infos[op].has_dest)
      212:      238:  499:      dest_init(&instr->dest);
        -:        -:  500:
      569:      611:  501:   for (unsigned i = 0; i < num_srcs; i++)
      181:      195:  502:      src_init(&instr->src[i]);
        -:        -:  503:
      388:      416:  504:   return instr;
        -:        -:  505:}
        -:        -:  506:
        -:        -:  507:nir_call_instr *
    #####:    #####:  508:nir_call_instr_create(nir_shader *shader, nir_function *callee)
        -:        -:  509:{
    #####:    #####:  510:   nir_call_instr *instr = ralloc(shader, nir_call_instr);
    #####:    #####:  511:   instr_init(&instr->instr, nir_instr_type_call);
        -:        -:  512:
    #####:    #####:  513:   instr->callee = callee;
    #####:    #####:  514:   instr->num_params = callee->num_params;
    #####:    #####:  515:   instr->params = ralloc_array(instr, nir_deref_var *, instr->num_params);
    #####:    #####:  516:   instr->return_deref = NULL;
        -:        -:  517:
    #####:    #####:  518:   return instr;
        -:        -:  519:}
        -:        -:  520:
        -:        -:  521:nir_tex_instr *
    #####:    #####:  522:nir_tex_instr_create(nir_shader *shader, unsigned num_srcs)
        -:        -:  523:{
    #####:    #####:  524:   nir_tex_instr *instr = rzalloc(shader, nir_tex_instr);
    #####:    #####:  525:   instr_init(&instr->instr, nir_instr_type_tex);
        -:        -:  526:
    #####:    #####:  527:   dest_init(&instr->dest);
        -:        -:  528:
    #####:    #####:  529:   instr->num_srcs = num_srcs;
    #####:    #####:  530:   instr->src = ralloc_array(instr, nir_tex_src, num_srcs);
    #####:    #####:  531:   for (unsigned i = 0; i < num_srcs; i++)
    #####:    #####:  532:      src_init(&instr->src[i].src);
        -:        -:  533:
    #####:    #####:  534:   instr->texture_index = 0;
    #####:    #####:  535:   instr->texture_array_size = 0;
    #####:    #####:  536:   instr->texture = NULL;
    #####:    #####:  537:   instr->sampler_index = 0;
    #####:    #####:  538:   instr->sampler = NULL;
        -:        -:  539:
    #####:    #####:  540:   return instr;
        -:        -:  541:}
        -:        -:  542:
        -:        -:  543:void
    #####:    #####:  544:nir_tex_instr_remove_src(nir_tex_instr *tex, unsigned src_idx)
        -:        -:  545:{
    #####:    #####:  546:   assert(src_idx < tex->num_srcs);
        -:        -:  547:
        -:        -:  548:   /* First rewrite the source to NIR_SRC_INIT */
    #####:    #####:  549:   nir_instr_rewrite_src(&tex->instr, &tex->src[src_idx].src, NIR_SRC_INIT);
        -:        -:  550:
        -:        -:  551:   /* Now, move all of the other sources down */
    #####:    #####:  552:   for (unsigned i = src_idx + 1; i < tex->num_srcs; i++) {
    #####:    #####:  553:      tex->src[i-1].src_type = tex->src[i].src_type;
    #####:    #####:  554:      nir_instr_move_src(&tex->instr, &tex->src[i-1].src, &tex->src[i].src);
        -:        -:  555:   }
    #####:    #####:  556:   tex->num_srcs--;
    #####:    #####:  557:}
        -:        -:  558:
        -:        -:  559:nir_phi_instr *
       90:      106:  560:nir_phi_instr_create(nir_shader *shader)
        -:        -:  561:{
       90:      106:  562:   nir_phi_instr *instr = ralloc(shader, nir_phi_instr);
       90:      106:  563:   instr_init(&instr->instr, nir_instr_type_phi);
        -:        -:  564:
       90:      106:  565:   dest_init(&instr->dest);
       90:      106:  566:   exec_list_make_empty(&instr->srcs);
       90:      106:  567:   return instr;
        -:        -:  568:}
        -:        -:  569:
        -:        -:  570:nir_parallel_copy_instr *
       27:       33:  571:nir_parallel_copy_instr_create(nir_shader *shader)
        -:        -:  572:{
       27:       33:  573:   nir_parallel_copy_instr *instr = ralloc(shader, nir_parallel_copy_instr);
       27:       33:  574:   instr_init(&instr->instr, nir_instr_type_parallel_copy);
        -:        -:  575:
       27:       33:  576:   exec_list_make_empty(&instr->entries);
        -:        -:  577:
       27:       33:  578:   return instr;
        -:        -:  579:}
        -:        -:  580:
        -:        -:  581:nir_ssa_undef_instr *
       61:       61:  582:nir_ssa_undef_instr_create(nir_shader *shader,
        -:        -:  583:                           unsigned num_components,
        -:        -:  584:                           unsigned bit_size)
        -:        -:  585:{
       61:       61:  586:   nir_ssa_undef_instr *instr = ralloc(shader, nir_ssa_undef_instr);
       61:       61:  587:   instr_init(&instr->instr, nir_instr_type_ssa_undef);
        -:        -:  588:
       61:       61:  589:   nir_ssa_def_init(&instr->instr, &instr->def, num_components, bit_size, NULL);
        -:        -:  590:
       61:       61:  591:   return instr;
        -:        -:  592:}
        -:        -:  593:
        -:        -:  594:nir_deref_var *
      402:      418:  595:nir_deref_var_create(void *mem_ctx, nir_variable *var)
        -:        -:  596:{
      402:      418:  597:   nir_deref_var *deref = ralloc(mem_ctx, nir_deref_var);
      402:      418:  598:   deref->deref.deref_type = nir_deref_type_var;
      402:      418:  599:   deref->deref.child = NULL;
      402:      418:  600:   deref->deref.type = var->type;
      402:      418:  601:   deref->var = var;
      402:      418:  602:   return deref;
        -:        -:  603:}
        -:        -:  604:
        -:        -:  605:nir_deref_array *
       28:       28:  606:nir_deref_array_create(void *mem_ctx)
        -:        -:  607:{
       28:       28:  608:   nir_deref_array *deref = ralloc(mem_ctx, nir_deref_array);
       28:       28:  609:   deref->deref.deref_type = nir_deref_type_array;
       28:       28:  610:   deref->deref.child = NULL;
       28:       28:  611:   deref->deref_array_type = nir_deref_array_type_direct;
       28:       28:  612:   src_init(&deref->indirect);
       28:       28:  613:   deref->base_offset = 0;
       28:       28:  614:   return deref;
        -:        -:  615:}
        -:        -:  616:
        -:        -:  617:nir_deref_struct *
    #####:    #####:  618:nir_deref_struct_create(void *mem_ctx, unsigned field_index)
        -:        -:  619:{
    #####:    #####:  620:   nir_deref_struct *deref = ralloc(mem_ctx, nir_deref_struct);
    #####:    #####:  621:   deref->deref.deref_type = nir_deref_type_struct;
    #####:    #####:  622:   deref->deref.child = NULL;
    #####:    #####:  623:   deref->index = field_index;
    #####:    #####:  624:   return deref;
        -:        -:  625:}
        -:        -:  626:
        -:        -:  627:nir_deref_var *
      162:      164:  628:nir_deref_var_clone(const nir_deref_var *deref, void *mem_ctx)
        -:        -:  629:{
      162:      164:  630:   if (deref == NULL)
    #####:    #####:  631:      return NULL;
        -:        -:  632:
      162:      164:  633:   nir_deref_var *ret = nir_deref_var_create(mem_ctx, deref->var);
      162:      164:  634:   ret->deref.type = deref->deref.type;
      162:      164:  635:   if (deref->deref.child)
        6:        6:  636:      ret->deref.child = nir_deref_clone(deref->deref.child, ret);
      162:      164:  637:   return ret;
        -:        -:  638:}
        -:        -:  639:
        -:        -:  640:static nir_deref_array *
        6:        6:  641:deref_array_clone(const nir_deref_array *deref, void *mem_ctx)
        -:        -:  642:{
        6:        6:  643:   nir_deref_array *ret = nir_deref_array_create(mem_ctx);
        6:        6:  644:   ret->base_offset = deref->base_offset;
        6:        6:  645:   ret->deref_array_type = deref->deref_array_type;
        6:        6:  646:   if (deref->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  647:      nir_src_copy(&ret->indirect, &deref->indirect, mem_ctx);
        -:        -:  648:   }
        6:        6:  649:   ret->deref.type = deref->deref.type;
        6:        6:  650:   if (deref->deref.child)
    #####:    #####:  651:      ret->deref.child = nir_deref_clone(deref->deref.child, ret);
        6:        6:  652:   return ret;
        -:        -:  653:}
        -:        -:  654:
        -:        -:  655:static nir_deref_struct *
    #####:    #####:  656:deref_struct_clone(const nir_deref_struct *deref, void *mem_ctx)
        -:        -:  657:{
    #####:    #####:  658:   nir_deref_struct *ret = nir_deref_struct_create(mem_ctx, deref->index);
    #####:    #####:  659:   ret->deref.type = deref->deref.type;
    #####:    #####:  660:   if (deref->deref.child)
    #####:    #####:  661:      ret->deref.child = nir_deref_clone(deref->deref.child, ret);
    #####:    #####:  662:   return ret;
        -:        -:  663:}
        -:        -:  664:
        -:        -:  665:nir_deref *
        6:        6:  666:nir_deref_clone(const nir_deref *deref, void *mem_ctx)
        -:        -:  667:{
        6:        6:  668:   if (deref == NULL)
    #####:    #####:  669:      return NULL;
        -:        -:  670:
        6:        6:  671:   switch (deref->deref_type) {
        -:        -:  672:   case nir_deref_type_var:
    #####:    #####:  673:      return &nir_deref_var_clone(nir_deref_as_var(deref), mem_ctx)->deref;
        -:        -:  674:   case nir_deref_type_array:
        6:        6:  675:      return &deref_array_clone(nir_deref_as_array(deref), mem_ctx)->deref;
        -:        -:  676:   case nir_deref_type_struct:
    #####:    #####:  677:      return &deref_struct_clone(nir_deref_as_struct(deref), mem_ctx)->deref;
        -:        -:  678:   default:
    #####:    #####:  679:      unreachable("Invalid dereference type");
        -:        -:  680:   }
        -:        -:  681:
        -:        -:  682:   return NULL;
        -:        -:  683:}
        -:        -:  684:
        -:        -:  685:/* This is the second step in the recursion.  We've found the tail and made a
        -:        -:  686: * copy.  Now we need to iterate over all possible leaves and call the
        -:        -:  687: * callback on each one.
        -:        -:  688: */
        -:        -:  689:static bool
       37:       39:  690:deref_foreach_leaf_build_recur(nir_deref_var *deref, nir_deref *tail,
        -:        -:  691:                               nir_deref_foreach_leaf_cb cb, void *state)
        -:        -:  692:{
        -:        -:  693:   unsigned length;
        -:        -:  694:   union {
        -:        -:  695:      nir_deref_array arr;
        -:        -:  696:      nir_deref_struct str;
        -:        -:  697:   } tmp;
        -:        -:  698:
       37:       39:  699:   assert(tail->child == NULL);
       37:       39:  700:   switch (glsl_get_base_type(tail->type)) {
        -:        -:  701:   case GLSL_TYPE_UINT:
        -:        -:  702:   case GLSL_TYPE_UINT64:
        -:        -:  703:   case GLSL_TYPE_INT:
        -:        -:  704:   case GLSL_TYPE_INT64:
        -:        -:  705:   case GLSL_TYPE_FLOAT:
        -:        -:  706:   case GLSL_TYPE_DOUBLE:
        -:        -:  707:   case GLSL_TYPE_BOOL:
       37:       39:  708:      if (glsl_type_is_vector_or_scalar(tail->type))
       37:       39:  709:         return cb(deref, state);
        -:        -:  710:      /* Fall Through */
        -:        -:  711:
        -:        -:  712:   case GLSL_TYPE_ARRAY:
    #####:    #####:  713:      tmp.arr.deref.deref_type = nir_deref_type_array;
    #####:    #####:  714:      tmp.arr.deref.type = glsl_get_array_element(tail->type);
    #####:    #####:  715:      tmp.arr.deref_array_type = nir_deref_array_type_direct;
    #####:    #####:  716:      tmp.arr.indirect = NIR_SRC_INIT;
    #####:    #####:  717:      tail->child = &tmp.arr.deref;
        -:        -:  718:
    #####:    #####:  719:      length = glsl_get_length(tail->type);
    #####:    #####:  720:      for (unsigned i = 0; i < length; i++) {
    #####:    #####:  721:         tmp.arr.deref.child = NULL;
    #####:    #####:  722:         tmp.arr.base_offset = i;
    #####:    #####:  723:         if (!deref_foreach_leaf_build_recur(deref, &tmp.arr.deref, cb, state))
    #####:    #####:  724:            return false;
        -:        -:  725:      }
    #####:    #####:  726:      return true;
        -:        -:  727:
        -:        -:  728:   case GLSL_TYPE_STRUCT:
    #####:    #####:  729:      tmp.str.deref.deref_type = nir_deref_type_struct;
    #####:    #####:  730:      tail->child = &tmp.str.deref;
        -:        -:  731:
    #####:    #####:  732:      length = glsl_get_length(tail->type);
    #####:    #####:  733:      for (unsigned i = 0; i < length; i++) {
    #####:    #####:  734:         tmp.arr.deref.child = NULL;
    #####:    #####:  735:         tmp.str.deref.type = glsl_get_struct_field(tail->type, i);
    #####:    #####:  736:         tmp.str.index = i;
    #####:    #####:  737:         if (!deref_foreach_leaf_build_recur(deref, &tmp.arr.deref, cb, state))
    #####:    #####:  738:            return false;
        -:        -:  739:      }
    #####:    #####:  740:      return true;
        -:        -:  741:
        -:        -:  742:   default:
    #####:    #####:  743:      unreachable("Invalid type for dereference");
        -:        -:  744:   }
        -:        -:  745:}
        -:        -:  746:
        -:        -:  747:/* This is the first step of the foreach_leaf recursion.  In this step we are
        -:        -:  748: * walking to the end of the deref chain and making a copy in the stack as we
        -:        -:  749: * go.  This is because we don't want to mutate the deref chain that was
        -:        -:  750: * passed in by the caller.  The downside is that this deref chain is on the
        -:        -:  751: * stack and , if the caller wants to do anything with it, they will have to
        -:        -:  752: * make their own copy because this one will go away.
        -:        -:  753: */
        -:        -:  754:static bool
       37:       39:  755:deref_foreach_leaf_copy_recur(nir_deref_var *deref, nir_deref *tail,
        -:        -:  756:                              nir_deref_foreach_leaf_cb cb, void *state)
        -:        -:  757:{
        -:        -:  758:   union {
        -:        -:  759:      nir_deref_array arr;
        -:        -:  760:      nir_deref_struct str;
        -:        -:  761:   } c;
        -:        -:  762:
       37:       39:  763:   if (tail->child) {
    #####:    #####:  764:      switch (tail->child->deref_type) {
        -:        -:  765:      case nir_deref_type_array:
    #####:    #####:  766:         c.arr = *nir_deref_as_array(tail->child);
    #####:    #####:  767:         tail->child = &c.arr.deref;
    #####:    #####:  768:         return deref_foreach_leaf_copy_recur(deref, &c.arr.deref, cb, state);
        -:        -:  769:
        -:        -:  770:      case nir_deref_type_struct:
    #####:    #####:  771:         c.str = *nir_deref_as_struct(tail->child);
    #####:    #####:  772:         tail->child = &c.str.deref;
    #####:    #####:  773:         return deref_foreach_leaf_copy_recur(deref, &c.str.deref, cb, state);
        -:        -:  774:
        -:        -:  775:      case nir_deref_type_var:
        -:        -:  776:      default:
    #####:    #####:  777:         unreachable("Invalid deref type for a child");
        -:        -:  778:      }
        -:        -:  779:   } else {
        -:        -:  780:      /* We've gotten to the end of the original deref.  Time to start
        -:        -:  781:       * building our own derefs.
        -:        -:  782:       */
       37:       39:  783:      return deref_foreach_leaf_build_recur(deref, tail, cb, state);
        -:        -:  784:   }
        -:        -:  785:}
        -:        -:  786:
        -:        -:  787:/**
        -:        -:  788: * This function iterates over all of the possible derefs that can be created
        -:        -:  789: * with the given deref as the head.  It then calls the provided callback with
        -:        -:  790: * a full deref for each one.
        -:        -:  791: *
        -:        -:  792: * The deref passed to the callback will be allocated on the stack.  You will
        -:        -:  793: * need to make a copy if you want it to hang around.
        -:        -:  794: */
        -:        -:  795:bool
       37:       39:  796:nir_deref_foreach_leaf(nir_deref_var *deref,
        -:        -:  797:                       nir_deref_foreach_leaf_cb cb, void *state)
        -:        -:  798:{
       37:       39:  799:   nir_deref_var copy = *deref;
       37:       39:  800:   return deref_foreach_leaf_copy_recur(©, ©.deref, cb, state);
        -:        -:  801:}
        -:        -:  802:
        -:        -:  803:/* Returns a load_const instruction that represents the constant
        -:        -:  804: * initializer for the given deref chain.  The caller is responsible for
        -:        -:  805: * ensuring that there actually is a constant initializer.
        -:        -:  806: */
        -:        -:  807:nir_load_const_instr *
       37:       39:  808:nir_deref_get_const_initializer_load(nir_shader *shader, nir_deref_var *deref)
        -:        -:  809:{
       37:       39:  810:   nir_constant *constant = deref->var->constant_initializer;
       37:       39:  811:   assert(constant);
        -:        -:  812:
       37:       39:  813:   const nir_deref *tail = &deref->deref;
       37:       39:  814:   unsigned matrix_col = 0;
       74:       78:  815:   while (tail->child) {
    #####:    #####:  816:      switch (tail->child->deref_type) {
        -:        -:  817:      case nir_deref_type_array: {
    #####:    #####:  818:         nir_deref_array *arr = nir_deref_as_array(tail->child);
    #####:    #####:  819:         assert(arr->deref_array_type == nir_deref_array_type_direct);
    #####:    #####:  820:         if (glsl_type_is_matrix(tail->type)) {
    #####:    #####:  821:            assert(arr->deref.child == NULL);
    #####:    #####:  822:            matrix_col = arr->base_offset;
        -:        -:  823:         } else {
    #####:    #####:  824:            constant = constant->elements[arr->base_offset];
        -:        -:  825:         }
    #####:    #####:  826:         break;
        -:        -:  827:      }
        -:        -:  828:
        -:        -:  829:      case nir_deref_type_struct: {
    #####:    #####:  830:         constant = constant->elements[nir_deref_as_struct(tail->child)->index];
    #####:    #####:  831:         break;
        -:        -:  832:      }
        -:        -:  833:
        -:        -:  834:      default:
    #####:    #####:  835:         unreachable("Invalid deref child type");
        -:        -:  836:      }
        -:        -:  837:
    #####:    #####:  838:      tail = tail->child;
        -:        -:  839:   }
        -:        -:  840:
       37:       39:  841:   unsigned bit_size = glsl_get_bit_size(tail->type);
       37:       39:  842:   nir_load_const_instr *load =
       37:       39:  843:      nir_load_const_instr_create(shader, glsl_get_vector_elements(tail->type),
        -:        -:  844:                                  bit_size);
        -:        -:  845:
       37:       39:  846:   switch (glsl_get_base_type(tail->type)) {
        -:        -:  847:   case GLSL_TYPE_FLOAT:
        -:        -:  848:   case GLSL_TYPE_INT:
        -:        -:  849:   case GLSL_TYPE_UINT:
        -:        -:  850:   case GLSL_TYPE_DOUBLE:
        -:        -:  851:   case GLSL_TYPE_UINT64:
        -:        -:  852:   case GLSL_TYPE_INT64:
        -:        -:  853:   case GLSL_TYPE_BOOL:
       37:       39:  854:      load->value = constant->values[matrix_col];
       37:       39:  855:      break;
        -:        -:  856:   default:
    #####:    #####:  857:      unreachable("Invalid immediate type");
        -:        -:  858:   }
        -:        -:  859:
       37:       39:  860:   return load;
        -:        -:  861:}
        -:        -:  862:
        -:        -:  863:nir_function_impl *
     2034:     2882:  864:nir_cf_node_get_function(nir_cf_node *node)
        -:        -:  865:{
     7671:    11506:  866:   while (node->type != nir_cf_node_function) {
     3603:     5742:  867:      node = node->parent;
        -:        -:  868:   }
        -:        -:  869:
     2034:     2882:  870:   return nir_cf_node_as_function(node);
        -:        -:  871:}
        -:        -:  872:
        -:        -:  873:/* Reduces a cursor by trying to convert everything to after and trying to
        -:        -:  874: * go up to block granularity when possible.
        -:        -:  875: */
        -:        -:  876:static nir_cursor
       46:       46:  877:reduce_cursor(nir_cursor cursor)
        -:        -:  878:{
       46:       46:  879:   switch (cursor.option) {
        -:        -:  880:   case nir_cursor_before_block:
       23:       23:  881:      assert(nir_cf_node_prev(&cursor.block->cf_node) == NULL ||
        -:        -:  882:             nir_cf_node_prev(&cursor.block->cf_node)->type != nir_cf_node_block);
       23:       23:  883:      if (exec_list_is_empty(&cursor.block->instr_list)) {
        -:        -:  884:         /* Empty block.  After is as good as before. */
        1:        1:  885:         cursor.option = nir_cursor_after_block;
        -:        -:  886:      }
       23:       23:  887:      return cursor;
        -:        -:  888:
        -:        -:  889:   case nir_cursor_after_block:
       23:       23:  890:      return cursor;
        -:        -:  891:
        -:        -:  892:   case nir_cursor_before_instr: {
    #####:    #####:  893:      nir_instr *prev_instr = nir_instr_prev(cursor.instr);
    #####:    #####:  894:      if (prev_instr) {
        -:        -:  895:         /* Before this instruction is after the previous */
    #####:    #####:  896:         cursor.instr = prev_instr;
    #####:    #####:  897:         cursor.option = nir_cursor_after_instr;
        -:        -:  898:      } else {
        -:        -:  899:         /* No previous instruction.  Switch to before block */
    #####:    #####:  900:         cursor.block = cursor.instr->block;
    #####:    #####:  901:         cursor.option = nir_cursor_before_block;
        -:        -:  902:      }
    #####:    #####:  903:      return reduce_cursor(cursor);
        -:        -:  904:   }
        -:        -:  905:
        -:        -:  906:   case nir_cursor_after_instr:
    #####:    #####:  907:      if (nir_instr_next(cursor.instr) == NULL) {
        -:        -:  908:         /* This is the last instruction, switch to after block */
    #####:    #####:  909:         cursor.option = nir_cursor_after_block;
    #####:    #####:  910:         cursor.block = cursor.instr->block;
        -:        -:  911:      }
    #####:    #####:  912:      return cursor;
        -:        -:  913:
        -:        -:  914:   default:
    #####:    #####:  915:      unreachable("Inavlid cursor option");
        -:        -:  916:   }
        -:        -:  917:}
        -:        -:  918:
        -:        -:  919:bool
       23:       23:  920:nir_cursors_equal(nir_cursor a, nir_cursor b)
        -:        -:  921:{
        -:        -:  922:   /* Reduced cursors should be unique */
       23:       23:  923:   a = reduce_cursor(a);
       23:       23:  924:   b = reduce_cursor(b);
        -:        -:  925:
       23:       23:  926:   return a.block == b.block && a.option == b.option;
        -:        -:  927:}
        -:        -:  928:
        -:        -:  929:static bool
     1527:     1669:  930:add_use_cb(nir_src *src, void *state)
        -:        -:  931:{
     1527:     1669:  932:   nir_instr *instr = state;
        -:        -:  933:
     1527:     1669:  934:   src->parent_instr = instr;
     3054:     3338:  935:   list_addtail(&src->use_link,
     3054:     3338:  936:                src->is_ssa ? &src->ssa->uses : &src->reg.reg->uses);
        -:        -:  937:
     1527:     1669:  938:   return true;
        -:        -:  939:}
        -:        -:  940:
        -:        -:  941:static bool
     1292:     1420:  942:add_ssa_def_cb(nir_ssa_def *def, void *state)
        -:        -:  943:{
     1292:     1420:  944:   nir_instr *instr = state;
        -:        -:  945:
     1292:     1420:  946:   if (instr->block && def->index == UINT_MAX) {
     1292:     1420:  947:      nir_function_impl *impl =
     1292:     1420:  948:         nir_cf_node_get_function(&instr->block->cf_node);
        -:        -:  949:
     1292:     1420:  950:      def->index = impl->ssa_alloc++;
        -:        -:  951:   }
        -:        -:  952:
     1292:     1420:  953:   return true;
        -:        -:  954:}
        -:        -:  955:
        -:        -:  956:static bool
     1126:     1236:  957:add_reg_def_cb(nir_dest *dest, void *state)
        -:        -:  958:{
     1126:     1236:  959:   nir_instr *instr = state;
        -:        -:  960:
     1126:     1236:  961:   if (!dest->is_ssa) {
       74:       74:  962:      dest->reg.parent_instr = instr;
       74:       74:  963:      list_addtail(&dest->reg.def_link, &dest->reg.reg->defs);
        -:        -:  964:   }
        -:        -:  965:
     1126:     1236:  966:   return true;
        -:        -:  967:}
        -:        -:  968:
        -:        -:  969:static void
     1578:     1722:  970:add_defs_uses(nir_instr *instr)
        -:        -:  971:{
     1578:     1722:  972:   nir_foreach_src(instr, add_use_cb, instr);
     1578:     1722:  973:   nir_foreach_dest(instr, add_reg_def_cb, instr);
     1578:     1722:  974:   nir_foreach_ssa_def(instr, add_ssa_def_cb, instr);
     1578:     1722:  975:}
        -:        -:  976:
        -:        -:  977:void
     1578:     1722:  978:nir_instr_insert(nir_cursor cursor, nir_instr *instr)
        -:        -:  979:{
     1578:     1722:  980:   switch (cursor.option) {
        -:        -:  981:   case nir_cursor_before_block:
        -:        -:  982:      /* Only allow inserting jumps into empty blocks. */
      178:      194:  983:      if (instr->type == nir_instr_type_jump)
        3:        7:  984:         assert(exec_list_is_empty(&cursor.block->instr_list));
        -:        -:  985:
      178:      194:  986:      instr->block = cursor.block;
      178:      194:  987:      add_defs_uses(instr);
      178:      194:  988:      exec_list_push_head(&cursor.block->instr_list, &instr->node);
      178:      194:  989:      break;
        -:        -:  990:   case nir_cursor_after_block: {
        -:        -:  991:      /* Inserting instructions after a jump is illegal. */
      382:      426:  992:      nir_instr *last = nir_block_last_instr(cursor.block);
      382:      426:  993:      assert(last == NULL || last->type != nir_instr_type_jump);
        -:        -:  994:      (void) last;
        -:        -:  995:
      382:      426:  996:      instr->block = cursor.block;
      382:      426:  997:      add_defs_uses(instr);
      382:      426:  998:      exec_list_push_tail(&cursor.block->instr_list, &instr->node);
      382:      426:  999:      break;
        -:        -: 1000:   }
        -:        -: 1001:   case nir_cursor_before_instr:
      614:      648: 1002:      assert(instr->type != nir_instr_type_jump);
      614:      648: 1003:      instr->block = cursor.instr->block;
      614:      648: 1004:      add_defs_uses(instr);
      614:      648: 1005:      exec_node_insert_node_before(&cursor.instr->node, &instr->node);
      614:      648: 1006:      break;
        -:        -: 1007:   case nir_cursor_after_instr:
        -:        -: 1008:      /* Inserting instructions after a jump is illegal. */
      404:      454: 1009:      assert(cursor.instr->type != nir_instr_type_jump);
        -:        -: 1010:
        -:        -: 1011:      /* Only allow inserting jumps at the end of the block. */
      404:      454: 1012:      if (instr->type == nir_instr_type_jump)
        2:        2: 1013:         assert(cursor.instr == nir_block_last_instr(cursor.instr->block));
        -:        -: 1014:
      404:      454: 1015:      instr->block = cursor.instr->block;
      404:      454: 1016:      add_defs_uses(instr);
      404:      454: 1017:      exec_node_insert_after(&cursor.instr->node, &instr->node);
      404:      454: 1018:      break;
        -:        -: 1019:   }
        -:        -: 1020:
     1578:     1722: 1021:   if (instr->type == nir_instr_type_jump)
        9:       17: 1022:      nir_handle_add_jump(instr->block);
     1578:     1722: 1023:}
        -:        -: 1024:
        -:        -: 1025:static bool
     5555:     6186: 1026:src_is_valid(const nir_src *src)
        -:        -: 1027:{
     5555:     6186: 1028:   return src->is_ssa ? (src->ssa != NULL) : (src->reg.reg != NULL);
        -:        -: 1029:}
        -:        -: 1030:
        -:        -: 1031:static bool
     1262:     1386: 1032:remove_use_cb(nir_src *src, void *state)
        -:        -: 1033:{
        -:        -: 1034:   (void) state;
        -:        -: 1035:
     1262:     1386: 1036:   if (src_is_valid(src))
     1258:     1382: 1037:      list_del(&src->use_link);
        -:        -: 1038:
     1262:     1386: 1039:   return true;
        -:        -: 1040:}
        -:        -: 1041:
        -:        -: 1042:static bool
      951:     1047: 1043:remove_def_cb(nir_dest *dest, void *state)
        -:        -: 1044:{
        -:        -: 1045:   (void) state;
        -:        -: 1046:
      951:     1047: 1047:   if (!dest->is_ssa)
       75:      107: 1048:      list_del(&dest->reg.def_link);
        -:        -: 1049:
      951:     1047: 1050:   return true;
        -:        -: 1051:}
        -:        -: 1052:
        -:        -: 1053:static void
     1274:     1368: 1054:remove_defs_uses(nir_instr *instr)
        -:        -: 1055:{
     1274:     1368: 1056:   nir_foreach_dest(instr, remove_def_cb, instr);
     1274:     1368: 1057:   nir_foreach_src(instr, remove_use_cb, instr);
     1274:     1368: 1058:}
        -:        -: 1059:
     1274:     1368: 1060:void nir_instr_remove(nir_instr *instr)
        -:        -: 1061:{
     1274:     1368: 1062:   remove_defs_uses(instr);
     1274:     1368: 1063:   exec_node_remove(&instr->node);
        -:        -: 1064:
     1274:     1368: 1065:   if (instr->type == nir_instr_type_jump) {
        1:        1: 1066:      nir_jump_instr *jump_instr = nir_instr_as_jump(instr);
        1:        1: 1067:      nir_handle_remove_jump(instr->block, jump_instr->type);
        -:        -: 1068:   }
     1274:     1368: 1069:}
        -:        -: 1070:
        -:        -: 1071:/*@}*/
        -:        -: 1072:
        -:        -: 1073:void
        2:        2: 1074:nir_index_local_regs(nir_function_impl *impl)
        -:        -: 1075:{
        2:        2: 1076:   unsigned index = 0;
       17:       17: 1077:   foreach_list_typed(nir_register, reg, node, &impl->registers) {
       15:       15: 1078:      reg->index = index++;
        -:        -: 1079:   }
        2:        2: 1080:   impl->reg_alloc = index;
        2:        2: 1081:}
        -:        -: 1082:
        -:        -: 1083:void
    #####:    #####: 1084:nir_index_global_regs(nir_shader *shader)
        -:        -: 1085:{
    #####:    #####: 1086:   unsigned index = 0;
    #####:    #####: 1087:   foreach_list_typed(nir_register, reg, node, &shader->registers) {
    #####:    #####: 1088:      reg->index = index++;
        -:        -: 1089:   }
    #####:    #####: 1090:   shader->reg_alloc = index;
    #####:    #####: 1091:}
        -:        -: 1092:
        -:        -: 1093:static bool
    25101:    27517: 1094:visit_alu_dest(nir_alu_instr *instr, nir_foreach_dest_cb cb, void *state)
        -:        -: 1095:{
    25101:    27517: 1096:   return cb(&instr->dest.dest, state);
        -:        -: 1097:}
        -:        -: 1098:
        -:        -: 1099:static bool
     9043:    10001: 1100:visit_intrinsic_dest(nir_intrinsic_instr *instr, nir_foreach_dest_cb cb,
        -:        -: 1101:                     void *state)
        -:        -: 1102:{
     9043:    10001: 1103:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
     6483:     7401: 1104:      return cb(&instr->dest, state);
        -:        -: 1105:
     2560:     2600: 1106:   return true;
        -:        -: 1107:}
        -:        -: 1108:
        -:        -: 1109:static bool
    #####:    #####: 1110:visit_texture_dest(nir_tex_instr *instr, nir_foreach_dest_cb cb,
        -:        -: 1111:                   void *state)
        -:        -: 1112:{
    #####:    #####: 1113:   return cb(&instr->dest, state);
        -:        -: 1114:}
        -:        -: 1115:
        -:        -: 1116:static bool
     5678:     8194: 1117:visit_phi_dest(nir_phi_instr *instr, nir_foreach_dest_cb cb, void *state)
        -:        -: 1118:{
     5678:     8194: 1119:   return cb(&instr->dest, state);
        -:        -: 1120:}
        -:        -: 1121:
        -:        -: 1122:static bool
      272:      334: 1123:visit_parallel_copy_dest(nir_parallel_copy_instr *instr,
        -:        -: 1124:                         nir_foreach_dest_cb cb, void *state)
        -:        -: 1125:{
      582:      824: 1126:   nir_foreach_parallel_copy_entry(entry, instr) {
      310:      490: 1127:      if (!cb(&entry->dest, state))
    #####:    #####: 1128:         return false;
        -:        -: 1129:   }
        -:        -: 1130:
      272:      334: 1131:   return true;
        -:        -: 1132:}
        -:        -: 1133:
        -:        -: 1134:bool
    41631:    47742: 1135:nir_foreach_dest(nir_instr *instr, nir_foreach_dest_cb cb, void *state)
        -:        -: 1136:{
    41631:    47742: 1137:   switch (instr->type) {
        -:        -: 1138:   case nir_instr_type_alu:
    25101:    27517: 1139:      return visit_alu_dest(nir_instr_as_alu(instr), cb, state);
        -:        -: 1140:   case nir_instr_type_intrinsic:
     9043:    10001: 1141:      return visit_intrinsic_dest(nir_instr_as_intrinsic(instr), cb, state);
        -:        -: 1142:   case nir_instr_type_tex:
    #####:    #####: 1143:      return visit_texture_dest(nir_instr_as_tex(instr), cb, state);
        -:        -: 1144:   case nir_instr_type_phi:
     5678:     8194: 1145:      return visit_phi_dest(nir_instr_as_phi(instr), cb, state);
        -:        -: 1146:   case nir_instr_type_parallel_copy:
      272:      334: 1147:      return visit_parallel_copy_dest(nir_instr_as_parallel_copy(instr),
        -:        -: 1148:                                      cb, state);
        -:        -: 1149:
        -:        -: 1150:   case nir_instr_type_load_const:
        -:        -: 1151:   case nir_instr_type_ssa_undef:
        -:        -: 1152:   case nir_instr_type_call:
        -:        -: 1153:   case nir_instr_type_jump:
     1537:     1696: 1154:      break;
        -:        -: 1155:
        -:        -: 1156:   default:
    #####:    #####: 1157:      unreachable("Invalid instruction type");
        -:        -: 1158:      break;
        -:        -: 1159:   }
        -:        -: 1160:
     1537:     1696: 1161:   return true;
        -:        -: 1162:}
        -:        -: 1163:
        -:        -: 1164:struct foreach_ssa_def_state {
        -:        -: 1165:   nir_foreach_ssa_def_cb cb;
        -:        -: 1166:   void *client_state;
        -:        -: 1167:};
        -:        -: 1168:
        -:        -: 1169:static inline bool
    28082:    33104: 1170:nir_ssa_def_visitor(nir_dest *dest, void *void_state)
        -:        -: 1171:{
    28082:    33104: 1172:   struct foreach_ssa_def_state *state = void_state;
        -:        -: 1173:
    28082:    33104: 1174:   if (dest->is_ssa)
    27969:    32991: 1175:      return state->cb(&dest->ssa, state->client_state);
        -:        -: 1176:   else
      113:      113: 1177:      return true;
        -:        -: 1178:}
        -:        -: 1179:
        -:        -: 1180:bool
    35239:    41625: 1181:nir_foreach_ssa_def(nir_instr *instr, nir_foreach_ssa_def_cb cb, void *state)
        -:        -: 1182:{
    35239:    41625: 1183:   switch (instr->type) {
        -:        -: 1184:   case nir_instr_type_alu:
        -:        -: 1185:   case nir_instr_type_tex:
        -:        -: 1186:   case nir_instr_type_intrinsic:
        -:        -: 1187:   case nir_instr_type_phi:
        -:        -: 1188:   case nir_instr_type_parallel_copy: {
    29734:    34731: 1189:      struct foreach_ssa_def_state foreach_state = {cb, state};
    29734:    34731: 1190:      return nir_foreach_dest(instr, nir_ssa_def_visitor, &foreach_state);
        -:        -: 1191:   }
        -:        -: 1192:
        -:        -: 1193:   case nir_instr_type_load_const:
     3403:     3708: 1194:      return cb(&nir_instr_as_load_const(instr)->def, state);
        -:        -: 1195:   case nir_instr_type_ssa_undef:
     1199:     1245: 1196:      return cb(&nir_instr_as_ssa_undef(instr)->def, state);
        -:        -: 1197:   case nir_instr_type_call:
        -:        -: 1198:   case nir_instr_type_jump:
      903:     1941: 1199:      return true;
        -:        -: 1200:   default:
    #####:    #####: 1201:      unreachable("Invalid instruction type");
        -:        -: 1202:   }
        -:        -: 1203:}
        -:        -: 1204:
        -:        -: 1205:static bool
     8813:     9717: 1206:visit_src(nir_src *src, nir_foreach_src_cb cb, void *state)
        -:        -: 1207:{
     8813:     9717: 1208:   if (!cb(src, state))
    #####:    #####: 1209:      return false;
     8813:     9717: 1210:   if (!src->is_ssa && src->reg.indirect)
    #####:    #####: 1211:      return cb(src->reg.indirect, state);
     8813:     9717: 1212:   return true;
        -:        -: 1213:}
        -:        -: 1214:
        -:        -: 1215:static bool
      331:      331: 1216:visit_deref_array_src(nir_deref_array *deref, nir_foreach_src_cb cb,
        -:        -: 1217:                      void *state)
        -:        -: 1218:{
      331:      331: 1219:   if (deref->deref_array_type == nir_deref_array_type_indirect)
    #####:    #####: 1220:      return visit_src(&deref->indirect, cb, state);
      331:      331: 1221:   return true;
        -:        -: 1222:}
        -:        -: 1223:
        -:        -: 1224:static bool
     1198:     1270: 1225:visit_deref_src(nir_deref_var *deref, nir_foreach_src_cb cb, void *state)
        -:        -: 1226:{
     1198:     1270: 1227:   nir_deref *cur = &deref->deref;
     3925:     4141: 1228:   while (cur != NULL) {
     1529:     1601: 1229:      if (cur->deref_type == nir_deref_type_array) {
      331:      331: 1230:         if (!visit_deref_array_src(nir_deref_as_array(cur), cb, state))
    #####:    #####: 1231:            return false;
        -:        -: 1232:      }
        -:        -: 1233:
     1529:     1601: 1234:      cur = cur->child;
        -:        -: 1235:   }
        -:        -: 1236:
     1198:     1270: 1237:   return true;
        -:        -: 1238:}
        -:        -: 1239:
        -:        -: 1240:static bool
     3657:     3854: 1241:visit_alu_src(nir_alu_instr *instr, nir_foreach_src_cb cb, void *state)
        -:        -: 1242:{
    10183:    10732: 1243:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++)
     6526:     6878: 1244:      if (!visit_src(&instr->src[i].src, cb, state))
    #####:    #####: 1245:         return false;
        -:        -: 1246:
     3657:     3854: 1247:   return true;
        -:        -: 1248:}
        -:        -: 1249:
        -:        -: 1250:static bool
    #####:    #####: 1251:visit_tex_src(nir_tex_instr *instr, nir_foreach_src_cb cb, void *state)
        -:        -: 1252:{
    #####:    #####: 1253:   for (unsigned i = 0; i < instr->num_srcs; i++) {
    #####:    #####: 1254:      if (!visit_src(&instr->src[i].src, cb, state))
    #####:    #####: 1255:         return false;
        -:        -: 1256:   }
        -:        -: 1257:
    #####:    #####: 1258:   if (instr->texture != NULL) {
    #####:    #####: 1259:      if (!visit_deref_src(instr->texture, cb, state))
    #####:    #####: 1260:         return false;
        -:        -: 1261:   }
        -:        -: 1262:
    #####:    #####: 1263:   if (instr->sampler != NULL) {
    #####:    #####: 1264:      if (!visit_deref_src(instr->sampler, cb, state))
    #####:    #####: 1265:         return false;
        -:        -: 1266:   }
        -:        -: 1267:
    #####:    #####: 1268:   return true;
        -:        -: 1269:}
        -:        -: 1270:
        -:        -: 1271:static bool
     1449:     1549: 1272:visit_intrinsic_src(nir_intrinsic_instr *instr, nir_foreach_src_cb cb,
        -:        -: 1273:                    void *state)
        -:        -: 1274:{
     1449:     1549: 1275:   unsigned num_srcs = nir_intrinsic_infos[instr->intrinsic].num_srcs;
     2165:     2297: 1276:   for (unsigned i = 0; i < num_srcs; i++) {
      716:      748: 1277:      if (!visit_src(&instr->src[i], cb, state))
    #####:    #####: 1278:         return false;
        -:        -: 1279:   }
        -:        -: 1280:
     1449:     1549: 1281:   unsigned num_vars =
     1449:     1549: 1282:      nir_intrinsic_infos[instr->intrinsic].num_variables;
     2647:     2819: 1283:   for (unsigned i = 0; i < num_vars; i++) {
     1198:     1270: 1284:      if (!visit_deref_src(instr->variables[i], cb, state))
    #####:    #####: 1285:         return false;
        -:        -: 1286:   }
        -:        -: 1287:
     1449:     1549: 1288:   return true;
        -:        -: 1289:}
        -:        -: 1290:
        -:        -: 1291:static bool
      762:      994: 1292:visit_phi_src(nir_phi_instr *instr, nir_foreach_src_cb cb, void *state)
        -:        -: 1293:{
     2212:     2892: 1294:   nir_foreach_phi_src(src, instr) {
     1450:     1898: 1295:      if (!visit_src(&src->src, cb, state))
    #####:    #####: 1296:         return false;
        -:        -: 1297:   }
        -:        -: 1298:
      762:      994: 1299:   return true;
        -:        -: 1300:}
        -:        -: 1301:
        -:        -: 1302:static bool
      104:      127: 1303:visit_parallel_copy_src(nir_parallel_copy_instr *instr,
        -:        -: 1304:                        nir_foreach_src_cb cb, void *state)
        -:        -: 1305:{
      225:      320: 1306:   nir_foreach_parallel_copy_entry(entry, instr) {
      121:      193: 1307:      if (!visit_src(&entry->src, cb, state))
    #####:    #####: 1308:         return false;
        -:        -: 1309:   }
        -:        -: 1310:
      104:      127: 1311:   return true;
        -:        -: 1312:}
        -:        -: 1313:
        -:        -: 1314:typedef struct {
        -:        -: 1315:   void *state;
        -:        -: 1316:   nir_foreach_src_cb cb;
        -:        -: 1317:} visit_dest_indirect_state;
        -:        -: 1318:
        -:        -: 1319:static bool
     5524:     6121: 1320:visit_dest_indirect(nir_dest *dest, void *_state)
        -:        -: 1321:{
     5524:     6121: 1322:   visit_dest_indirect_state *state = (visit_dest_indirect_state *) _state;
        -:        -: 1323:
     5524:     6121: 1324:   if (!dest->is_ssa && dest->reg.indirect)
    #####:    #####: 1325:      return state->cb(dest->reg.indirect, state->state);
        -:        -: 1326:
     5524:     6121: 1327:   return true;
        -:        -: 1328:}
        -:        -: 1329:
        -:        -: 1330:bool
     7084:     7845: 1331:nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state)
        -:        -: 1332:{
     7084:     7845: 1333:   switch (instr->type) {
        -:        -: 1334:   case nir_instr_type_alu:
     3657:     3854: 1335:      if (!visit_alu_src(nir_instr_as_alu(instr), cb, state))
    #####:    #####: 1336:         return false;
     3657:     3854: 1337:      break;
        -:        -: 1338:   case nir_instr_type_intrinsic:
     1449:     1549: 1339:      if (!visit_intrinsic_src(nir_instr_as_intrinsic(instr), cb, state))
    #####:    #####: 1340:         return false;
     1449:     1549: 1341:      break;
        -:        -: 1342:   case nir_instr_type_tex:
    #####:    #####: 1343:      if (!visit_tex_src(nir_instr_as_tex(instr), cb, state))
    #####:    #####: 1344:         return false;
    #####:    #####: 1345:      break;
        -:        -: 1346:   case nir_instr_type_call:
        -:        -: 1347:      /* Call instructions have no regular sources */
    #####:    #####: 1348:      break;
        -:        -: 1349:   case nir_instr_type_load_const:
        -:        -: 1350:      /* Constant load instructions have no regular sources */
      720:      761: 1351:      break;
        -:        -: 1352:   case nir_instr_type_phi:
      762:      994: 1353:      if (!visit_phi_src(nir_instr_as_phi(instr), cb, state))
    #####:    #####: 1354:         return false;
      762:      994: 1355:      break;
        -:        -: 1356:   case nir_instr_type_parallel_copy:
      104:      127: 1357:      if (!visit_parallel_copy_src(nir_instr_as_parallel_copy(instr),
        -:        -: 1358:                                   cb, state))
    #####:    #####: 1359:         return false;
      104:      127: 1360:      break;
        -:        -: 1361:   case nir_instr_type_jump:
        -:        -: 1362:   case nir_instr_type_ssa_undef:
      392:      560: 1363:      return true;
        -:        -: 1364:
        -:        -: 1365:   default:
    #####:    #####: 1366:      unreachable("Invalid instruction type");
        -:        -: 1367:      break;
        -:        -: 1368:   }
        -:        -: 1369:
        -:        -: 1370:   visit_dest_indirect_state dest_state;
     6692:     7285: 1371:   dest_state.state = state;
     6692:     7285: 1372:   dest_state.cb = cb;
     6692:     7285: 1373:   return nir_foreach_dest(instr, visit_dest_indirect, &dest_state);
        -:        -: 1374:}
        -:        -: 1375:
        -:        -: 1376:nir_const_value *
      113:      149: 1377:nir_src_as_const_value(nir_src src)
        -:        -: 1378:{
      113:      149: 1379:   if (!src.is_ssa)
    #####:    #####: 1380:      return NULL;
        -:        -: 1381:
      113:      149: 1382:   if (src.ssa->parent_instr->type != nir_instr_type_load_const)
       71:      103: 1383:      return NULL;
        -:        -: 1384:
       42:       46: 1385:   nir_load_const_instr *load = nir_instr_as_load_const(src.ssa->parent_instr);
        -:        -: 1386:
       42:       46: 1387:   return &load->value;
        -:        -: 1388:}
        -:        -: 1389:
        -:        -: 1390:/**
        -:        -: 1391: * Returns true if the source is known to be dynamically uniform. Otherwise it
        -:        -: 1392: * returns false which means it may or may not be dynamically uniform but it
        -:        -: 1393: * can't be determined.
        -:        -: 1394: */
        -:        -: 1395:bool
    #####:    #####: 1396:nir_src_is_dynamically_uniform(nir_src src)
        -:        -: 1397:{
    #####:    #####: 1398:   if (!src.is_ssa)
    #####:    #####: 1399:      return false;
        -:        -: 1400:
        -:        -: 1401:   /* Constants are trivially dynamically uniform */
    #####:    #####: 1402:   if (src.ssa->parent_instr->type == nir_instr_type_load_const)
    #####:    #####: 1403:      return true;
        -:        -: 1404:
        -:        -: 1405:   /* As are uniform variables */
    #####:    #####: 1406:   if (src.ssa->parent_instr->type == nir_instr_type_intrinsic) {
    #####:    #####: 1407:      nir_intrinsic_instr *intr = nir_instr_as_intrinsic(src.ssa->parent_instr);
        -:        -: 1408:
    #####:    #####: 1409:      if (intr->intrinsic == nir_intrinsic_load_uniform)
    #####:    #####: 1410:         return true;
        -:        -: 1411:   }
        -:        -: 1412:
        -:        -: 1413:   /* XXX: this could have many more tests, such as when a sampler function is
        -:        -: 1414:    * called with dynamically uniform arguments.
        -:        -: 1415:    */
    #####:    #####: 1416:   return false;
        -:        -: 1417:}
        -:        -: 1418:
        -:        -: 1419:static void
     1431:     1600: 1420:src_remove_all_uses(nir_src *src)
        -:        -: 1421:{
     2862:     3200: 1422:   for (; src; src = src->is_ssa ? NULL : src->reg.indirect) {
     1431:     1600: 1423:      if (!src_is_valid(src))
       45:       69: 1424:         continue;
        -:        -: 1425:
     1386:     1531: 1426:      list_del(&src->use_link);
        -:        -: 1427:   }
     1431:     1600: 1428:}
        -:        -: 1429:
        -:        -: 1430:static void
     1431:     1600: 1431:src_add_all_uses(nir_src *src, nir_instr *parent_instr, nir_if *parent_if)
        -:        -: 1432:{
     2862:     3200: 1433:   for (; src; src = src->is_ssa ? NULL : src->reg.indirect) {
     1431:     1600: 1434:      if (!src_is_valid(src))
       10:       10: 1435:         continue;
        -:        -: 1436:
     1421:     1590: 1437:      if (parent_instr) {
     1404:     1561: 1438:         src->parent_instr = parent_instr;
     1404:     1561: 1439:         if (src->is_ssa)
     1306:     1427: 1440:            list_addtail(&src->use_link, &src->ssa->uses);
        -:        -: 1441:         else
       98:      134: 1442:            list_addtail(&src->use_link, &src->reg.reg->uses);
        -:        -: 1443:      } else {
       17:       29: 1444:         assert(parent_if);
       17:       29: 1445:         src->parent_if = parent_if;
       17:       29: 1446:         if (src->is_ssa)
       17:       27: 1447:            list_addtail(&src->use_link, &src->ssa->if_uses);
        -:        -: 1448:         else
    #####:        2: 1449:            list_addtail(&src->use_link, &src->reg.reg->if_uses);
        -:        -: 1450:      }
        -:        -: 1451:   }
     1431:     1600: 1452:}
        -:        -: 1453:
        -:        -: 1454:void
     1414:     1571: 1455:nir_instr_rewrite_src(nir_instr *instr, nir_src *src, nir_src new_src)
        -:        -: 1456:{
     1414:     1571: 1457:   assert(!src_is_valid(src) || src->parent_instr == instr);
        -:        -: 1458:
     1414:     1571: 1459:   src_remove_all_uses(src);
     1414:     1571: 1460:   *src = new_src;
     1414:     1571: 1461:   src_add_all_uses(src, instr, NULL);
     1414:     1571: 1462:}
        -:        -: 1463:
        -:        -: 1464:void
    #####:    #####: 1465:nir_instr_move_src(nir_instr *dest_instr, nir_src *dest, nir_src *src)
        -:        -: 1466:{
    #####:    #####: 1467:   assert(!src_is_valid(dest) || dest->parent_instr == dest_instr);
        -:        -: 1468:
    #####:    #####: 1469:   src_remove_all_uses(dest);
    #####:    #####: 1470:   src_remove_all_uses(src);
    #####:    #####: 1471:   *dest = *src;
    #####:    #####: 1472:   *src = NIR_SRC_INIT;
    #####:    #####: 1473:   src_add_all_uses(dest, dest_instr, NULL);
    #####:    #####: 1474:}
        -:        -: 1475:
        -:        -: 1476:void
       17:       29: 1477:nir_if_rewrite_condition(nir_if *if_stmt, nir_src new_src)
        -:        -: 1478:{
       17:       29: 1479:   nir_src *src = &if_stmt->condition;
       17:       29: 1480:   assert(!src_is_valid(src) || src->parent_if == if_stmt);
        -:        -: 1481:
       17:       29: 1482:   src_remove_all_uses(src);
       17:       29: 1483:   *src = new_src;
       17:       29: 1484:   src_add_all_uses(src, NULL, if_stmt);
       17:       29: 1485:}
        -:        -: 1486:
        -:        -: 1487:void
       77:      109: 1488:nir_instr_rewrite_dest(nir_instr *instr, nir_dest *dest, nir_dest new_dest)
        -:        -: 1489:{
       77:      109: 1490:   if (dest->is_ssa) {
        -:        -: 1491:      /* We can only overwrite an SSA destination if it has no uses. */
       77:      109: 1492:      assert(list_empty(&dest->ssa.uses) && list_empty(&dest->ssa.if_uses));
        -:        -: 1493:   } else {
    #####:    #####: 1494:      list_del(&dest->reg.def_link);
    #####:    #####: 1495:      if (dest->reg.indirect)
    #####:    #####: 1496:         src_remove_all_uses(dest->reg.indirect);
        -:        -: 1497:   }
        -:        -: 1498:
        -:        -: 1499:   /* We can't re-write with an SSA def */
       77:      109: 1500:   assert(!new_dest.is_ssa);
        -:        -: 1501:
       77:      109: 1502:   nir_dest_copy(dest, &new_dest, instr);
        -:        -: 1503:
       77:      109: 1504:   dest->reg.parent_instr = instr;
       77:      109: 1505:   list_addtail(&dest->reg.def_link, &new_dest.reg.reg->defs);
        -:        -: 1506:
       77:      109: 1507:   if (dest->reg.indirect)
    #####:    #####: 1508:      src_add_all_uses(dest->reg.indirect, instr, NULL);
       77:      109: 1509:}
        -:        -: 1510:
        -:        -: 1511:/* note: does *not* take ownership of 'name' */
        -:        -: 1512:void
     1387:     1539: 1513:nir_ssa_def_init(nir_instr *instr, nir_ssa_def *def,
        -:        -: 1514:                 unsigned num_components,
        -:        -: 1515:                 unsigned bit_size, const char *name)
        -:        -: 1516:{
     1387:     1539: 1517:   def->name = ralloc_strdup(instr, name);
     1387:     1539: 1518:   def->parent_instr = instr;
     1387:     1539: 1519:   list_inithead(&def->uses);
     1387:     1539: 1520:   list_inithead(&def->if_uses);
     1387:     1539: 1521:   def->num_components = num_components;
     1387:     1539: 1522:   def->bit_size = bit_size;
        -:        -: 1523:
     1387:     1539: 1524:   if (instr->block) {
       95:      119: 1525:      nir_function_impl *impl =
       95:      119: 1526:         nir_cf_node_get_function(&instr->block->cf_node);
        -:        -: 1527:
       95:      119: 1528:      def->index = impl->ssa_alloc++;
        -:        -: 1529:   } else {
     1292:     1420: 1530:      def->index = UINT_MAX;
        -:        -: 1531:   }
     1387:     1539: 1532:}
        -:        -: 1533:
        -:        -: 1534:/* note: does *not* take ownership of 'name' */
        -:        -: 1535:void
     1147:     1281: 1536:nir_ssa_dest_init(nir_instr *instr, nir_dest *dest,
        -:        -: 1537:                 unsigned num_components, unsigned bit_size,
        -:        -: 1538:                 const char *name)
        -:        -: 1539:{
     1147:     1281: 1540:   dest->is_ssa = true;
     1147:     1281: 1541:   nir_ssa_def_init(instr, &dest->ssa, num_components, bit_size, name);
     1147:     1281: 1542:}
        -:        -: 1543:
        -:        -: 1544:void
      531:      598: 1545:nir_ssa_def_rewrite_uses(nir_ssa_def *def, nir_src new_src)
        -:        -: 1546:{
      531:      598: 1547:   assert(!new_src.is_ssa || def != new_src.ssa);
        -:        -: 1548:
     1260:     1410: 1549:   nir_foreach_use_safe(use_src, def)
      729:      812: 1550:      nir_instr_rewrite_src(use_src->parent_instr, use_src, new_src);
        -:        -: 1551:
      546:      621: 1552:   nir_foreach_if_use_safe(use_src, def)
       15:       23: 1553:      nir_if_rewrite_condition(use_src->parent_if, new_src);
      531:      598: 1554:}
        -:        -: 1555:
        -:        -: 1556:static bool
    #####:    #####: 1557:is_instr_between(nir_instr *start, nir_instr *end, nir_instr *between)
        -:        -: 1558:{
    #####:    #####: 1559:   assert(start->block == end->block);
        -:        -: 1560:
    #####:    #####: 1561:   if (between->block != start->block)
    #####:    #####: 1562:      return false;
        -:        -: 1563:
        -:        -: 1564:   /* Search backwards looking for "between" */
    #####:    #####: 1565:   while (start != end) {
    #####:    #####: 1566:      if (between == end)
    #####:    #####: 1567:         return true;
        -:        -: 1568:
    #####:    #####: 1569:      end = nir_instr_prev(end);
    #####:    #####: 1570:      assert(end);
        -:        -: 1571:   }
        -:        -: 1572:
    #####:    #####: 1573:   return false;
        -:        -: 1574:}
        -:        -: 1575:
        -:        -: 1576:/* Replaces all uses of the given SSA def with the given source but only if
        -:        -: 1577: * the use comes after the after_me instruction.  This can be useful if you
        -:        -: 1578: * are emitting code to fix up the result of some instruction: you can freely
        -:        -: 1579: * use the result in that code and then call rewrite_uses_after and pass the
        -:        -: 1580: * last fixup instruction as after_me and it will replace all of the uses you
        -:        -: 1581: * want without touching the fixup code.
        -:        -: 1582: *
        -:        -: 1583: * This function assumes that after_me is in the same block as
        -:        -: 1584: * def->parent_instr and that after_me comes after def->parent_instr.
        -:        -: 1585: */
        -:        -: 1586:void
    #####:    #####: 1587:nir_ssa_def_rewrite_uses_after(nir_ssa_def *def, nir_src new_src,
        -:        -: 1588:                               nir_instr *after_me)
        -:        -: 1589:{
    #####:    #####: 1590:   assert(!new_src.is_ssa || def != new_src.ssa);
        -:        -: 1591:
    #####:    #####: 1592:   nir_foreach_use_safe(use_src, def) {
    #####:    #####: 1593:      assert(use_src->parent_instr != def->parent_instr);
        -:        -: 1594:      /* Since def already dominates all of its uses, the only way a use can
        -:        -: 1595:       * not be dominated by after_me is if it is between def and after_me in
        -:        -: 1596:       * the instruction list.
        -:        -: 1597:       */
    #####:    #####: 1598:      if (!is_instr_between(def->parent_instr, after_me, use_src->parent_instr))
    #####:    #####: 1599:         nir_instr_rewrite_src(use_src->parent_instr, use_src, new_src);
        -:        -: 1600:   }
        -:        -: 1601:
    #####:    #####: 1602:   nir_foreach_if_use_safe(use_src, def)
    #####:    #####: 1603:      nir_if_rewrite_condition(use_src->parent_if, new_src);
    #####:    #####: 1604:}
        -:        -: 1605:
        -:        -: 1606:uint8_t
      121:      133: 1607:nir_ssa_def_components_read(nir_ssa_def *def)
        -:        -: 1608:{
      121:      133: 1609:   uint8_t read_mask = 0;
      256:      280: 1610:   nir_foreach_use(use, def) {
      152:      164: 1611:      if (use->parent_instr->type == nir_instr_type_alu) {
      135:      147: 1612:         nir_alu_instr *alu = nir_instr_as_alu(use->parent_instr);
      135:      147: 1613:         nir_alu_src *alu_src = exec_node_data(nir_alu_src, use, src);
      135:      147: 1614:         int src_idx = alu_src - &alu->src[0];
      135:      147: 1615:         assert(src_idx >= 0 && src_idx < nir_op_infos[alu->op].num_inputs);
        -:        -: 1616:
      675:      735: 1617:         for (unsigned c = 0; c < 4; c++) {
      540:      588: 1618:            if (!nir_alu_instr_channel_used(alu, src_idx, c))
      324:      360: 1619:               continue;
        -:        -: 1620:
      216:      228: 1621:            read_mask |= (1 << alu_src->swizzle[c]);
        -:        -: 1622:         }
        -:        -: 1623:      } else {
       17:       17: 1624:         return (1 << def->num_components) - 1;
        -:        -: 1625:      }
        -:        -: 1626:   }
        -:        -: 1627:
      104:      116: 1628:   return read_mask;
        -:        -: 1629:}
        -:        -: 1630:
        -:        -: 1631:nir_block *
    15949:    23147: 1632:nir_block_cf_tree_next(nir_block *block)
        -:        -: 1633:{
    15949:    23147: 1634:   if (block == NULL) {
        -:        -: 1635:      /* nir_foreach_block_safe() will call this function on a NULL block
        -:        -: 1636:       * after the last iteration, but it won't use the result so just return
        -:        -: 1637:       * NULL here.
        -:        -: 1638:       */
       32:       32: 1639:      return NULL;
        -:        -: 1640:   }
        -:        -: 1641:
    15917:    23115: 1642:   nir_cf_node *cf_next = nir_cf_node_next(&block->cf_node);
    15917:    23115: 1643:   if (cf_next)
     5089:     7775: 1644:      return nir_cf_node_cf_tree_first(cf_next);
        -:        -: 1645:
    10828:    15340: 1646:   nir_cf_node *parent = block->cf_node.parent;
        -:        -: 1647:
    10828:    15340: 1648:   switch (parent->type) {
        -:        -: 1649:   case nir_cf_node_if: {
        -:        -: 1650:      /* Are we at the end of the if? Go to the beginning of the else */
     8668:    12288: 1651:      nir_if *if_stmt = nir_cf_node_as_if(parent);
     8668:    12288: 1652:      if (block == nir_if_last_then_block(if_stmt))
     4334:     6144: 1653:         return nir_if_first_else_block(if_stmt);
        -:        -: 1654:
     4334:     6144: 1655:      assert(block == nir_if_last_else_block(if_stmt));
        -:        -: 1656:      /* fall through */
        -:        -: 1657:   }
        -:        -: 1658:
        -:        -: 1659:   case nir_cf_node_loop:
     5190:     7876: 1660:      return nir_cf_node_as_block(nir_cf_node_next(parent));
        -:        -: 1661:
        -:        -: 1662:   case nir_cf_node_function:
     1304:     1320: 1663:      return NULL;
        -:        -: 1664:
        -:        -: 1665:   default:
    #####:    #####: 1666:      unreachable("unknown cf node type");
        -:        -: 1667:   }
        -:        -: 1668:}
        -:        -: 1669:
        -:        -: 1670:nir_block *
      310:      454: 1671:nir_block_cf_tree_prev(nir_block *block)
        -:        -: 1672:{
      310:      454: 1673:   if (block == NULL) {
        -:        -: 1674:      /* do this for consistency with nir_block_cf_tree_next() */
    #####:    #####: 1675:      return NULL;
        -:        -: 1676:   }
        -:        -: 1677:
      310:      454: 1678:   nir_cf_node *cf_prev = nir_cf_node_prev(&block->cf_node);
      310:      454: 1679:   if (cf_prev)
       99:      153: 1680:      return nir_cf_node_cf_tree_last(cf_prev);
        -:        -: 1681:
      211:      301: 1682:   nir_cf_node *parent = block->cf_node.parent;
        -:        -: 1683:
      211:      301: 1684:   switch (parent->type) {
        -:        -: 1685:   case nir_cf_node_if: {
        -:        -: 1686:      /* Are we at the beginning of the else? Go to the end of the if */
      160:      232: 1687:      nir_if *if_stmt = nir_cf_node_as_if(parent);
      160:      232: 1688:      if (block == nir_if_first_else_block(if_stmt))
       80:      116: 1689:         return nir_if_last_then_block(if_stmt);
        -:        -: 1690:
       80:      116: 1691:      assert(block == nir_if_first_then_block(if_stmt));
        -:        -: 1692:      /* fall through */
        -:        -: 1693:   }
        -:        -: 1694:
        -:        -: 1695:   case nir_cf_node_loop:
       99:      153: 1696:      return nir_cf_node_as_block(nir_cf_node_prev(parent));
        -:        -: 1697:
        -:        -: 1698:   case nir_cf_node_function:
       32:       32: 1699:      return NULL;
        -:        -: 1700:
        -:        -: 1701:   default:
    #####:    #####: 1702:      unreachable("unknown cf node type");
        -:        -: 1703:   }
        -:        -: 1704:}
        -:        -: 1705:
     5190:     7876: 1706:nir_block *nir_cf_node_cf_tree_first(nir_cf_node *node)
        -:        -: 1707:{
     5190:     7876: 1708:   switch (node->type) {
        -:        -: 1709:   case nir_cf_node_function: {
    #####:    #####: 1710:      nir_function_impl *impl = nir_cf_node_as_function(node);
    #####:    #####: 1711:      return nir_start_block(impl);
        -:        -: 1712:   }
        -:        -: 1713:
        -:        -: 1714:   case nir_cf_node_if: {
     4334:     6144: 1715:      nir_if *if_stmt = nir_cf_node_as_if(node);
     4334:     6144: 1716:      return nir_if_first_then_block(if_stmt);
        -:        -: 1717:   }
        -:        -: 1718:
        -:        -: 1719:   case nir_cf_node_loop: {
      856:     1732: 1720:      nir_loop *loop = nir_cf_node_as_loop(node);
      856:     1732: 1721:      return nir_loop_first_block(loop);
        -:        -: 1722:   }
        -:        -: 1723:
        -:        -: 1724:   case nir_cf_node_block: {
    #####:    #####: 1725:      return nir_cf_node_as_block(node);
        -:        -: 1726:   }
        -:        -: 1727:
        -:        -: 1728:   default:
    #####:    #####: 1729:      unreachable("unknown node type");
        -:        -: 1730:   }
        -:        -: 1731:}
        -:        -: 1732:
       99:      153: 1733:nir_block *nir_cf_node_cf_tree_last(nir_cf_node *node)
        -:        -: 1734:{
       99:      153: 1735:   switch (node->type) {
        -:        -: 1736:   case nir_cf_node_function: {
    #####:    #####: 1737:      nir_function_impl *impl = nir_cf_node_as_function(node);
    #####:    #####: 1738:      return nir_impl_last_block(impl);
        -:        -: 1739:   }
        -:        -: 1740:
        -:        -: 1741:   case nir_cf_node_if: {
       80:      116: 1742:      nir_if *if_stmt = nir_cf_node_as_if(node);
       80:      116: 1743:      return nir_if_last_else_block(if_stmt);
        -:        -: 1744:   }
        -:        -: 1745:
        -:        -: 1746:   case nir_cf_node_loop: {
       19:       37: 1747:      nir_loop *loop = nir_cf_node_as_loop(node);
       19:       37: 1748:      return nir_loop_last_block(loop);
        -:        -: 1749:   }
        -:        -: 1750:
        -:        -: 1751:   case nir_cf_node_block: {
    #####:    #####: 1752:      return nir_cf_node_as_block(node);
        -:        -: 1753:   }
        -:        -: 1754:
        -:        -: 1755:   default:
    #####:    #####: 1756:      unreachable("unknown node type");
        -:        -: 1757:   }
        -:        -: 1758:}
        -:        -: 1759:
      308:      388: 1760:nir_block *nir_cf_node_cf_tree_next(nir_cf_node *node)
        -:        -: 1761:{
      308:      388: 1762:   if (node->type == nir_cf_node_block)
    #####:    #####: 1763:      return nir_block_cf_tree_next(nir_cf_node_as_block(node));
      308:      388: 1764:   else if (node->type == nir_cf_node_function)
    #####:    #####: 1765:      return NULL;
        -:        -: 1766:   else
      308:      388: 1767:      return nir_cf_node_as_block(nir_cf_node_next(node));
        -:        -: 1768:}
        -:        -: 1769:
        -:        -: 1770:nir_if *
     1490:     2132: 1771:nir_block_get_following_if(nir_block *block)
        -:        -: 1772:{
     1490:     2132: 1773:   if (exec_node_is_tail_sentinel(&block->cf_node.node))
    #####:    #####: 1774:      return NULL;
        -:        -: 1775:
     1490:     2132: 1776:   if (nir_cf_node_is_last(&block->cf_node))
     1011:     1413: 1777:      return NULL;
        -:        -: 1778:
      479:      719: 1779:   nir_cf_node *next_node = nir_cf_node_next(&block->cf_node);
        -:        -: 1780:
      479:      719: 1781:   if (next_node->type != nir_cf_node_if)
       81:      159: 1782:      return NULL;
        -:        -: 1783:
      398:      560: 1784:   return nir_cf_node_as_if(next_node);
        -:        -: 1785:}
        -:        -: 1786:
        -:        -: 1787:nir_loop *
      203:      299: 1788:nir_block_get_following_loop(nir_block *block)
        -:        -: 1789:{
      203:      299: 1790:   if (exec_node_is_tail_sentinel(&block->cf_node.node))
    #####:    #####: 1791:      return NULL;
        -:        -: 1792:
      203:      299: 1793:   if (nir_cf_node_is_last(&block->cf_node))
      186:      266: 1794:      return NULL;
        -:        -: 1795:
       17:       33: 1796:   nir_cf_node *next_node = nir_cf_node_next(&block->cf_node);
        -:        -: 1797:
       17:       33: 1798:   if (next_node->type != nir_cf_node_loop)
    #####:    #####: 1799:      return NULL;
        -:        -: 1800:
       17:       33: 1801:   return nir_cf_node_as_loop(next_node);
        -:        -: 1802:}
        -:        -: 1803:
        -:        -: 1804:void
       14:       14: 1805:nir_index_blocks(nir_function_impl *impl)
        -:        -: 1806:{
       14:       14: 1807:   unsigned index = 0;
        -:        -: 1808:
       14:       14: 1809:   if (impl->valid_metadata & nir_metadata_block_index)
    #####:    #####: 1810:      return;
        -:        -: 1811:
      235:      315: 1812:   nir_foreach_block(block, impl) {
      221:      301: 1813:      block->index = index++;
        -:        -: 1814:   }
        -:        -: 1815:
       14:       14: 1816:   impl->num_blocks = index;
        -:        -: 1817:}
        -:        -: 1818:
        -:        -: 1819:static bool
      952:     1046: 1820:index_ssa_def_cb(nir_ssa_def *def, void *state)
        -:        -: 1821:{
      952:     1046: 1822:   unsigned *index = (unsigned *) state;
      952:     1046: 1823:   def->index = (*index)++;
        -:        -: 1824:
      952:     1046: 1825:   return true;
        -:        -: 1826:}
        -:        -: 1827:
        -:        -: 1828:/**
        -:        -: 1829: * The indices are applied top-to-bottom which has the very nice property
        -:        -: 1830: * that, if A dominates B, then A->index <= B->index.
        -:        -: 1831: */
        -:        -: 1832:void
       21:       21: 1833:nir_index_ssa_defs(nir_function_impl *impl)
        -:        -: 1834:{
       21:       21: 1835:   unsigned index = 0;
        -:        -: 1836:
      289:      417: 1837:   nir_foreach_block(block, impl) {
     1276:     1530: 1838:      nir_foreach_instr(instr, block)
     1008:     1134: 1839:         nir_foreach_ssa_def(instr, index_ssa_def_cb, &index);
        -:        -: 1840:   }
        -:        -: 1841:
       21:       21: 1842:   impl->ssa_alloc = index;
       21:       21: 1843:}
        -:        -: 1844:
        -:        -: 1845:/**
        -:        -: 1846: * The indices are applied top-to-bottom which has the very nice property
        -:        -: 1847: * that, if A dominates B, then A->index <= B->index.
        -:        -: 1848: */
        -:        -: 1849:unsigned
        2:        2: 1850:nir_index_instrs(nir_function_impl *impl)
        -:        -: 1851:{
        2:        2: 1852:   unsigned index = 0;
        -:        -: 1853:
        4:        4: 1854:   nir_foreach_block(block, impl) {
       24:       24: 1855:      nir_foreach_instr(instr, block)
       22:       22: 1856:         instr->index = index++;
        -:        -: 1857:   }
        -:        -: 1858:
        2:        2: 1859:   return index;
        -:        -: 1860:}
        -:        -: 1861:
        -:        -: 1862:nir_intrinsic_op
    #####:    #####: 1863:nir_intrinsic_from_system_value(gl_system_value val)
        -:        -: 1864:{
    #####:    #####: 1865:   switch (val) {
        -:        -: 1866:   case SYSTEM_VALUE_VERTEX_ID:
    #####:    #####: 1867:      return nir_intrinsic_load_vertex_id;
        -:        -: 1868:   case SYSTEM_VALUE_INSTANCE_ID:
    #####:    #####: 1869:      return nir_intrinsic_load_instance_id;
        -:        -: 1870:   case SYSTEM_VALUE_DRAW_ID:
    #####:    #####: 1871:      return nir_intrinsic_load_draw_id;
        -:        -: 1872:   case SYSTEM_VALUE_BASE_INSTANCE:
    #####:    #####: 1873:      return nir_intrinsic_load_base_instance;
        -:        -: 1874:   case SYSTEM_VALUE_VERTEX_ID_ZERO_BASE:
    #####:    #####: 1875:      return nir_intrinsic_load_vertex_id_zero_base;
        -:        -: 1876:   case SYSTEM_VALUE_BASE_VERTEX:
    #####:    #####: 1877:      return nir_intrinsic_load_base_vertex;
        -:        -: 1878:   case SYSTEM_VALUE_INVOCATION_ID:
    #####:    #####: 1879:      return nir_intrinsic_load_invocation_id;
        -:        -: 1880:   case SYSTEM_VALUE_FRONT_FACE:
    #####:    #####: 1881:      return nir_intrinsic_load_front_face;
        -:        -: 1882:   case SYSTEM_VALUE_SAMPLE_ID:
    #####:    #####: 1883:      return nir_intrinsic_load_sample_id;
        -:        -: 1884:   case SYSTEM_VALUE_SAMPLE_POS:
    #####:    #####: 1885:      return nir_intrinsic_load_sample_pos;
        -:        -: 1886:   case SYSTEM_VALUE_SAMPLE_MASK_IN:
    #####:    #####: 1887:      return nir_intrinsic_load_sample_mask_in;
        -:        -: 1888:   case SYSTEM_VALUE_LOCAL_INVOCATION_ID:
    #####:    #####: 1889:      return nir_intrinsic_load_local_invocation_id;
        -:        -: 1890:   case SYSTEM_VALUE_LOCAL_INVOCATION_INDEX:
    #####:    #####: 1891:      return nir_intrinsic_load_local_invocation_index;
        -:        -: 1892:   case SYSTEM_VALUE_WORK_GROUP_ID:
    #####:    #####: 1893:      return nir_intrinsic_load_work_group_id;
        -:        -: 1894:   case SYSTEM_VALUE_NUM_WORK_GROUPS:
    #####:    #####: 1895:      return nir_intrinsic_load_num_work_groups;
        -:        -: 1896:   case SYSTEM_VALUE_PRIMITIVE_ID:
    #####:    #####: 1897:      return nir_intrinsic_load_primitive_id;
        -:        -: 1898:   case SYSTEM_VALUE_TESS_COORD:
    #####:    #####: 1899:      return nir_intrinsic_load_tess_coord;
        -:        -: 1900:   case SYSTEM_VALUE_TESS_LEVEL_OUTER:
    #####:    #####: 1901:      return nir_intrinsic_load_tess_level_outer;
        -:        -: 1902:   case SYSTEM_VALUE_TESS_LEVEL_INNER:
    #####:    #####: 1903:      return nir_intrinsic_load_tess_level_inner;
        -:        -: 1904:   case SYSTEM_VALUE_VERTICES_IN:
    #####:    #####: 1905:      return nir_intrinsic_load_patch_vertices_in;
        -:        -: 1906:   case SYSTEM_VALUE_HELPER_INVOCATION:
    #####:    #####: 1907:      return nir_intrinsic_load_helper_invocation;
        -:        -: 1908:   default:
    #####:    #####: 1909:      unreachable("system value does not directly correspond to intrinsic");
        -:        -: 1910:   }
        -:        -: 1911:}
        -:        -: 1912:
        -:        -: 1913:gl_system_value
    #####:    #####: 1914:nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
        -:        -: 1915:{
    #####:    #####: 1916:   switch (intrin) {
        -:        -: 1917:   case nir_intrinsic_load_vertex_id:
    #####:    #####: 1918:      return SYSTEM_VALUE_VERTEX_ID;
        -:        -: 1919:   case nir_intrinsic_load_instance_id:
    #####:    #####: 1920:      return SYSTEM_VALUE_INSTANCE_ID;
        -:        -: 1921:   case nir_intrinsic_load_draw_id:
    #####:    #####: 1922:      return SYSTEM_VALUE_DRAW_ID;
        -:        -: 1923:   case nir_intrinsic_load_base_instance:
    #####:    #####: 1924:      return SYSTEM_VALUE_BASE_INSTANCE;
        -:        -: 1925:   case nir_intrinsic_load_vertex_id_zero_base:
    #####:    #####: 1926:      return SYSTEM_VALUE_VERTEX_ID_ZERO_BASE;
        -:        -: 1927:   case nir_intrinsic_load_base_vertex:
    #####:    #####: 1928:      return SYSTEM_VALUE_BASE_VERTEX;
        -:        -: 1929:   case nir_intrinsic_load_invocation_id:
    #####:    #####: 1930:      return SYSTEM_VALUE_INVOCATION_ID;
        -:        -: 1931:   case nir_intrinsic_load_front_face:
    #####:    #####: 1932:      return SYSTEM_VALUE_FRONT_FACE;
        -:        -: 1933:   case nir_intrinsic_load_sample_id:
    #####:    #####: 1934:      return SYSTEM_VALUE_SAMPLE_ID;
        -:        -: 1935:   case nir_intrinsic_load_sample_pos:
    #####:    #####: 1936:      return SYSTEM_VALUE_SAMPLE_POS;
        -:        -: 1937:   case nir_intrinsic_load_sample_mask_in:
    #####:    #####: 1938:      return SYSTEM_VALUE_SAMPLE_MASK_IN;
        -:        -: 1939:   case nir_intrinsic_load_local_invocation_id:
    #####:    #####: 1940:      return SYSTEM_VALUE_LOCAL_INVOCATION_ID;
        -:        -: 1941:   case nir_intrinsic_load_local_invocation_index:
    #####:    #####: 1942:      return SYSTEM_VALUE_LOCAL_INVOCATION_INDEX;
        -:        -: 1943:   case nir_intrinsic_load_num_work_groups:
    #####:    #####: 1944:      return SYSTEM_VALUE_NUM_WORK_GROUPS;
        -:        -: 1945:   case nir_intrinsic_load_work_group_id:
    #####:    #####: 1946:      return SYSTEM_VALUE_WORK_GROUP_ID;
        -:        -: 1947:   case nir_intrinsic_load_primitive_id:
    #####:    #####: 1948:      return SYSTEM_VALUE_PRIMITIVE_ID;
        -:        -: 1949:   case nir_intrinsic_load_tess_coord:
    #####:    #####: 1950:      return SYSTEM_VALUE_TESS_COORD;
        -:        -: 1951:   case nir_intrinsic_load_tess_level_outer:
    #####:    #####: 1952:      return SYSTEM_VALUE_TESS_LEVEL_OUTER;
        -:        -: 1953:   case nir_intrinsic_load_tess_level_inner:
    #####:    #####: 1954:      return SYSTEM_VALUE_TESS_LEVEL_INNER;
        -:        -: 1955:   case nir_intrinsic_load_patch_vertices_in:
    #####:    #####: 1956:      return SYSTEM_VALUE_VERTICES_IN;
        -:        -: 1957:   case nir_intrinsic_load_helper_invocation:
    #####:    #####: 1958:      return SYSTEM_VALUE_HELPER_INVOCATION;
        -:        -: 1959:   default:
    #####:    #####: 1960:      unreachable("intrinsic doesn't produce a system value");
        -:        -: 1961:   }
        -:        -: 1962:}

src/compiler/nir_clone.c.gcov

        -:        -:    0:Source:nir/nir_clone.c
        -:        -:    0:Graph:nir/.libs/nir_clone.gcno
        -:        -:    0:Data:nir/.libs/nir_clone.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Red Hat
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_control_flow.h"
        -:        -:   26:
        -:        -:   27:/* Secret Decoder Ring:
        -:        -:   28: *   clone_foo():
        -:        -:   29: *        Allocate and clone a foo.
        -:        -:   30: *   __clone_foo():
        -:        -:   31: *        Clone body of foo (ie. parent class, embedded struct, etc)
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:typedef struct {
        -:        -:   35:   /* True if we are cloning an entire shader. */
        -:        -:   36:   bool global_clone;
        -:        -:   37:
        -:        -:   38:   /* If true allows the clone operation to fall back to the original pointer
        -:        -:   39:    * if no clone pointer is found in the remap table.  This allows us to
        -:        -:   40:    * clone a loop body without having to add srcs from outside the loop to
        -:        -:   41:    * the remap table. This is useful for loop unrolling.
        -:        -:   42:    */
        -:        -:   43:   bool allow_remap_fallback;
        -:        -:   44:
        -:        -:   45:   /* maps orig ptr -> cloned ptr: */
        -:        -:   46:   struct hash_table *remap_table;
        -:        -:   47:
        -:        -:   48:   /* List of phi sources. */
        -:        -:   49:   struct list_head phi_srcs;
        -:        -:   50:
        -:        -:   51:   /* new shader object, used as memctx for just about everything else: */
        -:        -:   52:   nir_shader *ns;
        -:        -:   53:} clone_state;
        -:        -:   54:
        -:        -:   55:static void
       13:       13:   56:init_clone_state(clone_state *state, struct hash_table *remap_table,
        -:        -:   57:                 bool global, bool allow_remap_fallback)
        -:        -:   58:{
       13:       13:   59:   state->global_clone = global;
       13:       13:   60:   state->allow_remap_fallback = allow_remap_fallback;
        -:        -:   61:
       13:       13:   62:   if (remap_table) {
        8:        8:   63:      state->remap_table = remap_table;
        -:        -:   64:   } else {
        5:        5:   65:      state->remap_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -:   66:                                                   _mesa_key_pointer_equal);
        -:        -:   67:   }
        -:        -:   68:
       13:       13:   69:   list_inithead(&state->phi_srcs);
       13:       13:   70:}
        -:        -:   71:
        -:        -:   72:static void
        5:        5:   73:free_clone_state(clone_state *state)
        -:        -:   74:{
        5:        5:   75:   _mesa_hash_table_destroy(state->remap_table, NULL);
        5:        5:   76:}
        -:        -:   77:
        -:        -:   78:static inline void *
      653:      731:   79:_lookup_ptr(clone_state *state, const void *ptr, bool global)
        -:        -:   80:{
        -:        -:   81:   struct hash_entry *entry;
        -:        -:   82:
      653:      731:   83:   if (!ptr)
    #####:    #####:   84:      return NULL;
        -:        -:   85:
      653:      731:   86:   if (!state->global_clone && global)
        3:        3:   87:      return (void *)ptr;
        -:        -:   88:
      650:      728:   89:   entry = _mesa_hash_table_search(state->remap_table, ptr);
      650:      728:   90:   if (!entry) {
       82:       82:   91:      assert(state->allow_remap_fallback);
       82:       82:   92:      return (void *)ptr;
        -:        -:   93:   }
        -:        -:   94:
      568:      646:   95:   return entry->data;
        -:        -:   96:}
        -:        -:   97:
        -:        -:   98:static void
      382:      438:   99:add_remap(clone_state *state, void *nptr, const void *ptr)
        -:        -:  100:{
      382:      438:  101:   _mesa_hash_table_insert(state->remap_table, ptr, nptr);
      382:      438:  102:}
        -:        -:  103:
        -:        -:  104:static void *
      567:      641:  105:remap_local(clone_state *state, const void *ptr)
        -:        -:  106:{
      567:      641:  107:   return _lookup_ptr(state, ptr, false);
        -:        -:  108:}
        -:        -:  109:
        -:        -:  110:static void *
        5:        5:  111:remap_global(clone_state *state, const void *ptr)
        -:        -:  112:{
        5:        5:  113:   return _lookup_ptr(state, ptr, true);
        -:        -:  114:}
        -:        -:  115:
        -:        -:  116:static nir_register *
       63:       63:  117:remap_reg(clone_state *state, const nir_register *reg)
        -:        -:  118:{
       63:       63:  119:   return _lookup_ptr(state, reg, reg->is_global);
        -:        -:  120:}
        -:        -:  121:
        -:        -:  122:static nir_variable *
       18:       22:  123:remap_var(clone_state *state, const nir_variable *var)
        -:        -:  124:{
       18:       22:  125:   return _lookup_ptr(state, var, nir_variable_is_global(var));
        -:        -:  126:}
        -:        -:  127:
        -:        -:  128:nir_constant *
    #####:    #####:  129:nir_constant_clone(const nir_constant *c, nir_variable *nvar)
        -:        -:  130:{
    #####:    #####:  131:   nir_constant *nc = ralloc(nvar, nir_constant);
        -:        -:  132:
    #####:    #####:  133:   memcpy(nc->values, c->values, sizeof(nc->values));
    #####:    #####:  134:   nc->num_elements = c->num_elements;
    #####:    #####:  135:   nc->elements = ralloc_array(nvar, nir_constant *, c->num_elements);
    #####:    #####:  136:   for (unsigned i = 0; i < c->num_elements; i++) {
    #####:    #####:  137:      nc->elements[i] = nir_constant_clone(c->elements[i], nvar);
        -:        -:  138:   }
        -:        -:  139:
    #####:    #####:  140:   return nc;
        -:        -:  141:}
        -:        -:  142:
        -:        -:  143:/* NOTE: for cloning nir_variables, bypass nir_variable_create to avoid
        -:        -:  144: * having to deal with locals and globals separately:
        -:        -:  145: */
        -:        -:  146:nir_variable *
       16:       16:  147:nir_variable_clone(const nir_variable *var, nir_shader *shader)
        -:        -:  148:{
       16:       16:  149:   nir_variable *nvar = rzalloc(shader, nir_variable);
        -:        -:  150:
       16:       16:  151:   nvar->type = var->type;
       16:       16:  152:   nvar->name = ralloc_strdup(nvar, var->name);
       16:       16:  153:   nvar->data = var->data;
       16:       16:  154:   nvar->num_state_slots = var->num_state_slots;
       16:       16:  155:   nvar->state_slots = ralloc_array(nvar, nir_state_slot, var->num_state_slots);
       16:       16:  156:   memcpy(nvar->state_slots, var->state_slots,
       16:       16:  157:          var->num_state_slots * sizeof(nir_state_slot));
       16:       16:  158:   if (var->constant_initializer) {
    #####:    #####:  159:      nvar->constant_initializer =
    #####:    #####:  160:         nir_constant_clone(var->constant_initializer, nvar);
        -:        -:  161:   }
       16:       16:  162:   nvar->interface_type = var->interface_type;
        -:        -:  163:
       16:       16:  164:   return nvar;
        -:        -:  165:}
        -:        -:  166:
        -:        -:  167:static nir_variable *
       16:       16:  168:clone_variable(clone_state *state, const nir_variable *var)
        -:        -:  169:{
       16:       16:  170:   nir_variable *nvar = nir_variable_clone(var, state->ns);
       16:       16:  171:   add_remap(state, nvar, var);
        -:        -:  172:
       16:       16:  173:   return nvar;
        -:        -:  174:}
        -:        -:  175:
        -:        -:  176:/* clone list of nir_variable: */
        -:        -:  177:static void
       35:       35:  178:clone_var_list(clone_state *state, struct exec_list *dst,
        -:        -:  179:               const struct exec_list *list)
        -:        -:  180:{
       35:       35:  181:   exec_list_make_empty(dst);
       51:       51:  182:   foreach_list_typed(nir_variable, var, node, list) {
       16:       16:  183:      nir_variable *nvar = clone_variable(state, var);
       16:       16:  184:      exec_list_push_tail(dst, &nvar->node);
        -:        -:  185:   }
       35:       35:  186:}
        -:        -:  187:
        -:        -:  188:/* NOTE: for cloning nir_registers, bypass nir_global/local_reg_create()
        -:        -:  189: * to avoid having to deal with locals and globals separately:
        -:        -:  190: */
        -:        -:  191:static nir_register *
    #####:    #####:  192:clone_register(clone_state *state, const nir_register *reg)
        -:        -:  193:{
    #####:    #####:  194:   nir_register *nreg = rzalloc(state->ns, nir_register);
    #####:    #####:  195:   add_remap(state, nreg, reg);
        -:        -:  196:
    #####:    #####:  197:   nreg->num_components = reg->num_components;
    #####:    #####:  198:   nreg->bit_size = reg->bit_size;
    #####:    #####:  199:   nreg->num_array_elems = reg->num_array_elems;
    #####:    #####:  200:   nreg->index = reg->index;
    #####:    #####:  201:   nreg->name = ralloc_strdup(nreg, reg->name);
    #####:    #####:  202:   nreg->is_global = reg->is_global;
    #####:    #####:  203:   nreg->is_packed = reg->is_packed;
        -:        -:  204:
        -:        -:  205:   /* reconstructing uses/defs/if_uses handled by nir_instr_insert() */
    #####:    #####:  206:   list_inithead(&nreg->uses);
    #####:    #####:  207:   list_inithead(&nreg->defs);
    #####:    #####:  208:   list_inithead(&nreg->if_uses);
        -:        -:  209:
    #####:    #####:  210:   return nreg;
        -:        -:  211:}
        -:        -:  212:
        -:        -:  213:/* clone list of nir_register: */
        -:        -:  214:static void
       10:       10:  215:clone_reg_list(clone_state *state, struct exec_list *dst,
        -:        -:  216:               const struct exec_list *list)
        -:        -:  217:{
       10:       10:  218:   exec_list_make_empty(dst);
       10:       10:  219:   foreach_list_typed(nir_register, reg, node, list) {
    #####:    #####:  220:      nir_register *nreg = clone_register(state, reg);
    #####:    #####:  221:      exec_list_push_tail(dst, &nreg->node);
        -:        -:  222:   }
       10:       10:  223:}
        -:        -:  224:
        -:        -:  225:static void
      467:      509:  226:__clone_src(clone_state *state, void *ninstr_or_if,
        -:        -:  227:            nir_src *nsrc, const nir_src *src)
        -:        -:  228:{
      467:      509:  229:   nsrc->is_ssa = src->is_ssa;
      467:      509:  230:   if (src->is_ssa) {
      435:      477:  231:      nsrc->ssa = remap_local(state, src->ssa);
        -:        -:  232:   } else {
       32:       32:  233:      nsrc->reg.reg = remap_reg(state, src->reg.reg);
       32:       32:  234:      if (src->reg.indirect) {
    #####:    #####:  235:         nsrc->reg.indirect = ralloc(ninstr_or_if, nir_src);
    #####:    #####:  236:         __clone_src(state, ninstr_or_if, nsrc->reg.indirect, src->reg.indirect);
        -:        -:  237:      }
       32:       32:  238:      nsrc->reg.base_offset = src->reg.base_offset;
        -:        -:  239:   }
      467:      509:  240:}
        -:        -:  241:
        -:        -:  242:static void
      295:      331:  243:__clone_dst(clone_state *state, nir_instr *ninstr,
        -:        -:  244:            nir_dest *ndst, const nir_dest *dst)
        -:        -:  245:{
      295:      331:  246:   ndst->is_ssa = dst->is_ssa;
      295:      331:  247:   if (dst->is_ssa) {
      528:      600:  248:      nir_ssa_dest_init(ninstr, ndst, dst->ssa.num_components,
      264:      300:  249:                        dst->ssa.bit_size, dst->ssa.name);
      264:      300:  250:      add_remap(state, &ndst->ssa, &dst->ssa);
        -:        -:  251:   } else {
       31:       31:  252:      ndst->reg.reg = remap_reg(state, dst->reg.reg);
       31:       31:  253:      if (dst->reg.indirect) {
    #####:    #####:  254:         ndst->reg.indirect = ralloc(ninstr, nir_src);
    #####:    #####:  255:         __clone_src(state, ninstr, ndst->reg.indirect, dst->reg.indirect);
        -:        -:  256:      }
       31:       31:  257:      ndst->reg.base_offset = dst->reg.base_offset;
        -:        -:  258:   }
      295:      331:  259:}
        -:        -:  260:
        -:        -:  261:static nir_deref *clone_deref(clone_state *state, const nir_deref *deref,
        -:        -:  262:                              nir_instr *ninstr, nir_deref *parent);
        -:        -:  263:
        -:        -:  264:static nir_deref_var *
       18:       22:  265:clone_deref_var(clone_state *state, const nir_deref_var *dvar,
        -:        -:  266:                nir_instr *ninstr)
        -:        -:  267:{
       18:       22:  268:   nir_variable *nvar = remap_var(state, dvar->var);
       18:       22:  269:   nir_deref_var *ndvar = nir_deref_var_create(ninstr, nvar);
        -:        -:  270:
       18:       22:  271:   if (dvar->deref.child)
        3:        3:  272:      ndvar->deref.child = clone_deref(state, dvar->deref.child,
        -:        -:  273:                                       ninstr, &ndvar->deref);
        -:        -:  274:
       18:       22:  275:   return ndvar;
        -:        -:  276:}
        -:        -:  277:
        -:        -:  278:static nir_deref_array *
        3:        3:  279:clone_deref_array(clone_state *state, const nir_deref_array *darr,
        -:        -:  280:                  nir_instr *ninstr, nir_deref *parent)
        -:        -:  281:{
        3:        3:  282:   nir_deref_array *ndarr = nir_deref_array_create(parent);
        -:        -:  283:
        3:        3:  284:   ndarr->deref.type = darr->deref.type;
        3:        3:  285:   if (darr->deref.child)
    #####:    #####:  286:      ndarr->deref.child = clone_deref(state, darr->deref.child,
        -:        -:  287:                                       ninstr, &ndarr->deref);
        -:        -:  288:
        3:        3:  289:   ndarr->deref_array_type = darr->deref_array_type;
        3:        3:  290:   ndarr->base_offset = darr->base_offset;
        3:        3:  291:   if (ndarr->deref_array_type == nir_deref_array_type_indirect)
    #####:    #####:  292:      __clone_src(state, ninstr, &ndarr->indirect, &darr->indirect);
        -:        -:  293:
        3:        3:  294:   return ndarr;
        -:        -:  295:}
        -:        -:  296:
        -:        -:  297:static nir_deref_struct *
    #####:    #####:  298:clone_deref_struct(clone_state *state, const nir_deref_struct *dstr,
        -:        -:  299:                   nir_instr *ninstr, nir_deref *parent)
        -:        -:  300:{
    #####:    #####:  301:   nir_deref_struct *ndstr = nir_deref_struct_create(parent, dstr->index);
        -:        -:  302:
    #####:    #####:  303:   ndstr->deref.type = dstr->deref.type;
    #####:    #####:  304:   if (dstr->deref.child)
    #####:    #####:  305:      ndstr->deref.child = clone_deref(state, dstr->deref.child,
        -:        -:  306:                                       ninstr, &ndstr->deref);
        -:        -:  307:
    #####:    #####:  308:   return ndstr;
        -:        -:  309:}
        -:        -:  310:
        -:        -:  311:static nir_deref *
        3:        3:  312:clone_deref(clone_state *state, const nir_deref *dref,
        -:        -:  313:            nir_instr *ninstr, nir_deref *parent)
        -:        -:  314:{
        3:        3:  315:   switch (dref->deref_type) {
        -:        -:  316:   case nir_deref_type_array:
        3:        3:  317:      return &clone_deref_array(state, nir_deref_as_array(dref),
        -:        -:  318:                                ninstr, parent)->deref;
        -:        -:  319:   case nir_deref_type_struct:
    #####:    #####:  320:      return &clone_deref_struct(state, nir_deref_as_struct(dref),
        -:        -:  321:                                 ninstr, parent)->deref;
        -:        -:  322:   default:
    #####:    #####:  323:      unreachable("bad deref type");
        -:        -:  324:      return NULL;
        -:        -:  325:   }
        -:        -:  326:}
        -:        -:  327:
        -:        -:  328:static nir_alu_instr *
      231:      253:  329:clone_alu(clone_state *state, const nir_alu_instr *alu)
        -:        -:  330:{
      231:      253:  331:   nir_alu_instr *nalu = nir_alu_instr_create(state->ns, alu->op);
      231:      253:  332:   nalu->exact = alu->exact;
        -:        -:  333:
      231:      253:  334:   __clone_dst(state, &nalu->instr, &nalu->dest.dest, &alu->dest.dest);
      231:      253:  335:   nalu->dest.saturate = alu->dest.saturate;
      231:      253:  336:   nalu->dest.write_mask = alu->dest.write_mask;
        -:        -:  337:
      661:      719:  338:   for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++) {
      430:      466:  339:      __clone_src(state, &nalu->instr, &nalu->src[i].src, &alu->src[i].src);
      430:      466:  340:      nalu->src[i].negate = alu->src[i].negate;
      430:      466:  341:      nalu->src[i].abs = alu->src[i].abs;
      430:      466:  342:      memcpy(nalu->src[i].swizzle, alu->src[i].swizzle,
        -:        -:  343:             sizeof(nalu->src[i].swizzle));
        -:        -:  344:   }
        -:        -:  345:
      231:      253:  346:   return nalu;
        -:        -:  347:}
        -:        -:  348:
        -:        -:  349:static nir_intrinsic_instr *
       37:       43:  350:clone_intrinsic(clone_state *state, const nir_intrinsic_instr *itr)
        -:        -:  351:{
       37:       43:  352:   nir_intrinsic_instr *nitr =
       37:       43:  353:      nir_intrinsic_instr_create(state->ns, itr->intrinsic);
        -:        -:  354:
       37:       43:  355:   unsigned num_variables = nir_intrinsic_infos[itr->intrinsic].num_variables;
       37:       43:  356:   unsigned num_srcs = nir_intrinsic_infos[itr->intrinsic].num_srcs;
        -:        -:  357:
       37:       43:  358:   if (nir_intrinsic_infos[itr->intrinsic].has_dest)
       31:       37:  359:      __clone_dst(state, &nitr->instr, &nitr->dest, &itr->dest);
        -:        -:  360:
       37:       43:  361:   nitr->num_components = itr->num_components;
       37:       43:  362:   memcpy(nitr->const_index, itr->const_index, sizeof(nitr->const_index));
        -:        -:  363:
       55:       65:  364:   for (unsigned i = 0; i < num_variables; i++) {
       18:       22:  365:      nitr->variables[i] = clone_deref_var(state, itr->variables[i],
        -:        -:  366:                                           &nitr->instr);
        -:        -:  367:   }
        -:        -:  368:
       62:       70:  369:   for (unsigned i = 0; i < num_srcs; i++)
       25:       27:  370:      __clone_src(state, &nitr->instr, &nitr->src[i], &itr->src[i]);
        -:        -:  371:
       37:       43:  372:   return nitr;
        -:        -:  373:}
        -:        -:  374:
        -:        -:  375:static nir_load_const_instr *
       42:       46:  376:clone_load_const(clone_state *state, const nir_load_const_instr *lc)
        -:        -:  377:{
       42:       46:  378:   nir_load_const_instr *nlc =
       42:       46:  379:      nir_load_const_instr_create(state->ns, lc->def.num_components,
       42:       46:  380:                                  lc->def.bit_size);
        -:        -:  381:
       42:       46:  382:   memcpy(&nlc->value, &lc->value, sizeof(nlc->value));
        -:        -:  383:
       42:       46:  384:   add_remap(state, &nlc->def, &lc->def);
        -:        -:  385:
       42:       46:  386:   return nlc;
        -:        -:  387:}
        -:        -:  388:
        -:        -:  389:static nir_ssa_undef_instr *
        2:        2:  390:clone_ssa_undef(clone_state *state, const nir_ssa_undef_instr *sa)
        -:        -:  391:{
        2:        2:  392:   nir_ssa_undef_instr *nsa =
        2:        2:  393:      nir_ssa_undef_instr_create(state->ns, sa->def.num_components,
        2:        2:  394:                                 sa->def.bit_size);
        -:        -:  395:
        2:        2:  396:   add_remap(state, &nsa->def, &sa->def);
        -:        -:  397:
        2:        2:  398:   return nsa;
        -:        -:  399:}
        -:        -:  400:
        -:        -:  401:static nir_tex_instr *
    #####:    #####:  402:clone_tex(clone_state *state, const nir_tex_instr *tex)
        -:        -:  403:{
    #####:    #####:  404:   nir_tex_instr *ntex = nir_tex_instr_create(state->ns, tex->num_srcs);
        -:        -:  405:
    #####:    #####:  406:   ntex->sampler_dim = tex->sampler_dim;
    #####:    #####:  407:   ntex->dest_type = tex->dest_type;
    #####:    #####:  408:   ntex->op = tex->op;
    #####:    #####:  409:   __clone_dst(state, &ntex->instr, &ntex->dest, &tex->dest);
    #####:    #####:  410:   for (unsigned i = 0; i < ntex->num_srcs; i++) {
    #####:    #####:  411:      ntex->src[i].src_type = tex->src[i].src_type;
    #####:    #####:  412:      __clone_src(state, &ntex->instr, &ntex->src[i].src, &tex->src[i].src);
        -:        -:  413:   }
    #####:    #####:  414:   ntex->coord_components = tex->coord_components;
    #####:    #####:  415:   ntex->is_array = tex->is_array;
    #####:    #####:  416:   ntex->is_shadow = tex->is_shadow;
    #####:    #####:  417:   ntex->is_new_style_shadow = tex->is_new_style_shadow;
    #####:    #####:  418:   ntex->component = tex->component;
        -:        -:  419:
    #####:    #####:  420:   ntex->texture_index = tex->texture_index;
    #####:    #####:  421:   if (tex->texture)
    #####:    #####:  422:      ntex->texture = clone_deref_var(state, tex->texture, &ntex->instr);
    #####:    #####:  423:   ntex->texture_array_size = tex->texture_array_size;
        -:        -:  424:
    #####:    #####:  425:   ntex->sampler_index = tex->sampler_index;
    #####:    #####:  426:   if (tex->sampler)
    #####:    #####:  427:      ntex->sampler = clone_deref_var(state, tex->sampler, &ntex->instr);
        -:        -:  428:
    #####:    #####:  429:   return ntex;
        -:        -:  430:}
        -:        -:  431:
        -:        -:  432:static nir_phi_instr *
       33:       41:  433:clone_phi(clone_state *state, const nir_phi_instr *phi, nir_block *nblk)
        -:        -:  434:{
       33:       41:  435:   nir_phi_instr *nphi = nir_phi_instr_create(state->ns);
        -:        -:  436:
       33:       41:  437:   __clone_dst(state, &nphi->instr, &nphi->dest, &phi->dest);
        -:        -:  438:
        -:        -:  439:   /* Cloning a phi node is a bit different from other instructions.  The
        -:        -:  440:    * sources of phi instructions are the only time where we can use an SSA
        -:        -:  441:    * def before it is defined.  In order to handle this, we just copy over
        -:        -:  442:    * the sources from the old phi instruction directly and then fix them up
        -:        -:  443:    * in a second pass once all the instrutions in the function have been
        -:        -:  444:    * properly cloned.
        -:        -:  445:    *
        -:        -:  446:    * In order to ensure that the copied sources (which are the same as the
        -:        -:  447:    * old phi instruction's sources for now) don't get inserted into the old
        -:        -:  448:    * shader's use-def lists, we have to add the phi instruction *before* we
        -:        -:  449:    * set up its sources.
        -:        -:  450:    */
       33:       41:  451:   nir_instr_insert_after_block(nblk, &nphi->instr);
        -:        -:  452:
       99:      123:  453:   foreach_list_typed(nir_phi_src, src, node, &phi->srcs) {
       66:       82:  454:      nir_phi_src *nsrc = ralloc(nphi, nir_phi_src);
        -:        -:  455:
        -:        -:  456:      /* Just copy the old source for now. */
       66:       82:  457:      memcpy(nsrc, src, sizeof(*src));
        -:        -:  458:
        -:        -:  459:      /* Since we're not letting nir_insert_instr handle use/def stuff for us,
        -:        -:  460:       * we have to set the parent_instr manually.  It doesn't really matter
        -:        -:  461:       * when we do it, so we might as well do it here.
        -:        -:  462:       */
       66:       82:  463:      nsrc->src.parent_instr = &nphi->instr;
        -:        -:  464:
        -:        -:  465:      /* Stash it in the list of phi sources.  We'll walk this list and fix up
        -:        -:  466:       * sources at the very end of clone_function_impl.
        -:        -:  467:       */
       66:       82:  468:      list_add(&nsrc->src.use_link, &state->phi_srcs);
        -:        -:  469:
       66:       82:  470:      exec_list_push_tail(&nphi->srcs, &nsrc->node);
        -:        -:  471:   }
        -:        -:  472:
       33:       41:  473:   return nphi;
        -:        -:  474:}
        -:        -:  475:
        -:        -:  476:static nir_jump_instr *
        4:        8:  477:clone_jump(clone_state *state, const nir_jump_instr *jmp)
        -:        -:  478:{
        4:        8:  479:   nir_jump_instr *njmp = nir_jump_instr_create(state->ns, jmp->type);
        -:        -:  480:
        4:        8:  481:   return njmp;
        -:        -:  482:}
        -:        -:  483:
        -:        -:  484:static nir_call_instr *
    #####:    #####:  485:clone_call(clone_state *state, const nir_call_instr *call)
        -:        -:  486:{
    #####:    #####:  487:   nir_function *ncallee = remap_global(state, call->callee);
    #####:    #####:  488:   nir_call_instr *ncall = nir_call_instr_create(state->ns, ncallee);
        -:        -:  489:
    #####:    #####:  490:   for (unsigned i = 0; i < ncall->num_params; i++)
    #####:    #####:  491:      ncall->params[i] = clone_deref_var(state, call->params[i], &ncall->instr);
        -:        -:  492:
    #####:    #####:  493:   ncall->return_deref = clone_deref_var(state, call->return_deref,
        -:        -:  494:                                         &ncall->instr);
        -:        -:  495:
    #####:    #####:  496:   return ncall;
        -:        -:  497:}
        -:        -:  498:
        -:        -:  499:static nir_instr *
      316:      352:  500:clone_instr(clone_state *state, const nir_instr *instr)
        -:        -:  501:{
      316:      352:  502:   switch (instr->type) {
        -:        -:  503:   case nir_instr_type_alu:
      231:      253:  504:      return &clone_alu(state, nir_instr_as_alu(instr))->instr;
        -:        -:  505:   case nir_instr_type_intrinsic:
       37:       43:  506:      return &clone_intrinsic(state, nir_instr_as_intrinsic(instr))->instr;
        -:        -:  507:   case nir_instr_type_load_const:
       42:       46:  508:      return &clone_load_const(state, nir_instr_as_load_const(instr))->instr;
        -:        -:  509:   case nir_instr_type_ssa_undef:
        2:        2:  510:      return &clone_ssa_undef(state, nir_instr_as_ssa_undef(instr))->instr;
        -:        -:  511:   case nir_instr_type_tex:
    #####:    #####:  512:      return &clone_tex(state, nir_instr_as_tex(instr))->instr;
        -:        -:  513:   case nir_instr_type_phi:
    #####:    #####:  514:      unreachable("Cannot clone phis with clone_instr");
        -:        -:  515:   case nir_instr_type_jump:
        4:        8:  516:      return &clone_jump(state, nir_instr_as_jump(instr))->instr;
        -:        -:  517:   case nir_instr_type_call:
    #####:    #####:  518:      return &clone_call(state, nir_instr_as_call(instr))->instr;
        -:        -:  519:   case nir_instr_type_parallel_copy:
    #####:    #####:  520:      unreachable("Cannot clone parallel copies");
        -:        -:  521:   default:
    #####:    #####:  522:      unreachable("bad instr type");
        -:        -:  523:      return NULL;
        -:        -:  524:   }
        -:        -:  525:}
        -:        -:  526:
        -:        -:  527:static nir_block *
       53:       69:  528:clone_block(clone_state *state, struct exec_list *cf_list, const nir_block *blk)
        -:        -:  529:{
        -:        -:  530:   /* Don't actually create a new block.  Just use the one from the tail of
        -:        -:  531:    * the list.  NIR guarantees that the tail of the list is a block and that
        -:        -:  532:    * no two blocks are side-by-side in the IR;  It should be empty.
        -:        -:  533:    */
       53:       69:  534:   nir_block *nblk =
        -:        -:  535:      exec_node_data(nir_block, exec_list_get_tail(cf_list), cf_node.node);
       53:       69:  536:   assert(nblk->cf_node.type == nir_cf_node_block);
       53:       69:  537:   assert(exec_list_is_empty(&nblk->instr_list));
        -:        -:  538:
        -:        -:  539:   /* We need this for phi sources */
       53:       69:  540:   add_remap(state, nblk, blk);
        -:        -:  541:
      402:      462:  542:   nir_foreach_instr(instr, blk) {
      349:      393:  543:      if (instr->type == nir_instr_type_phi) {
        -:        -:  544:         /* Phi instructions are a bit of a special case when cloning because
        -:        -:  545:          * we don't want inserting the instruction to automatically handle
        -:        -:  546:          * use/defs for us.  Instead, we need to wait until all the
        -:        -:  547:          * blocks/instructions are in so that we can set their sources up.
        -:        -:  548:          */
       33:       41:  549:         clone_phi(state, nir_instr_as_phi(instr), nblk);
        -:        -:  550:      } else {
      316:      352:  551:         nir_instr *ninstr = clone_instr(state, instr);
      316:      352:  552:         nir_instr_insert_after_block(nblk, ninstr);
        -:        -:  553:      }
        -:        -:  554:   }
        -:        -:  555:
       53:       69:  556:   return nblk;
        -:        -:  557:}
        -:        -:  558:
        -:        -:  559:static void
        -:        -:  560:clone_cf_list(clone_state *state, struct exec_list *dst,
        -:        -:  561:              const struct exec_list *list);
        -:        -:  562:
        -:        -:  563:static nir_if *
       12:       16:  564:clone_if(clone_state *state, struct exec_list *cf_list, const nir_if *i)
        -:        -:  565:{
       12:       16:  566:   nir_if *ni = nir_if_create(state->ns);
        -:        -:  567:
       12:       16:  568:   __clone_src(state, ni, &ni->condition, &i->condition);
        -:        -:  569:
       12:       16:  570:   nir_cf_node_insert_end(cf_list, &ni->cf_node);
        -:        -:  571:
       12:       16:  572:   clone_cf_list(state, &ni->then_list, &i->then_list);
       12:       16:  573:   clone_cf_list(state, &ni->else_list, &i->else_list);
        -:        -:  574:
       12:       16:  575:   return ni;
        -:        -:  576:}
        -:        -:  577:
        -:        -:  578:static nir_loop *
        2:        4:  579:clone_loop(clone_state *state, struct exec_list *cf_list, const nir_loop *loop)
        -:        -:  580:{
        2:        4:  581:   nir_loop *nloop = nir_loop_create(state->ns);
        -:        -:  582:
        2:        4:  583:   nir_cf_node_insert_end(cf_list, &nloop->cf_node);
        -:        -:  584:
        2:        4:  585:   clone_cf_list(state, &nloop->body, &loop->body);
        -:        -:  586:
        2:        4:  587:   return nloop;
        -:        -:  588:}
        -:        -:  589:
        -:        -:  590:/* clone list of nir_cf_node: */
        -:        -:  591:static void
       39:       49:  592:clone_cf_list(clone_state *state, struct exec_list *dst,
        -:        -:  593:              const struct exec_list *list)
        -:        -:  594:{
      106:      138:  595:   foreach_list_typed(nir_cf_node, cf, node, list) {
       67:       89:  596:      switch (cf->type) {
        -:        -:  597:      case nir_cf_node_block:
       53:       69:  598:         clone_block(state, dst, nir_cf_node_as_block(cf));
       53:       69:  599:         break;
        -:        -:  600:      case nir_cf_node_if:
       12:       16:  601:         clone_if(state, dst, nir_cf_node_as_if(cf));
       12:       16:  602:         break;
        -:        -:  603:      case nir_cf_node_loop:
        2:        4:  604:         clone_loop(state, dst, nir_cf_node_as_loop(cf));
        2:        4:  605:         break;
        -:        -:  606:      default:
    #####:    #####:  607:         unreachable("bad cf type");
        -:        -:  608:      }
        -:        -:  609:   }
       39:       49:  610:}
        -:        -:  611:
        -:        -:  612:/* After we've cloned almost everything, we have to walk the list of phi
        -:        -:  613: * sources and fix them up.  Thanks to loops, the block and SSA value for a
        -:        -:  614: * phi source may not be defined when we first encounter it.  Instead, we
        -:        -:  615: * add it to the phi_srcs list and we fix it up here.
        -:        -:  616: */
        -:        -:  617:static void
       13:       13:  618:fixup_phi_srcs(clone_state *state)
        -:        -:  619:{
       79:       95:  620:   list_for_each_entry_safe(nir_phi_src, src, &state->phi_srcs, src.use_link) {
       66:       82:  621:      src->pred = remap_local(state, src->pred);
        -:        -:  622:
        -:        -:  623:      /* Remove from this list */
       66:       82:  624:      list_del(&src->src.use_link);
        -:        -:  625:
       66:       82:  626:      if (src->src.is_ssa) {
       66:       82:  627:         src->src.ssa = remap_local(state, src->src.ssa);
       66:       82:  628:         list_addtail(&src->src.use_link, &src->src.ssa->uses);
        -:        -:  629:      } else {
    #####:    #####:  630:         src->src.reg.reg = remap_reg(state, src->src.reg.reg);
    #####:    #####:  631:         list_addtail(&src->src.use_link, &src->src.reg.reg->uses);
        -:        -:  632:      }
        -:        -:  633:   }
       13:       13:  634:   assert(list_empty(&state->phi_srcs));
       13:       13:  635:}
        -:        -:  636:
        -:        -:  637:void
        8:        8:  638:nir_cf_list_clone(nir_cf_list *dst, nir_cf_list *src, nir_cf_node *parent,
        -:        -:  639:                  struct hash_table *remap_table)
        -:        -:  640:{
        8:        8:  641:   exec_list_make_empty(&dst->list);
        8:        8:  642:   dst->impl = src->impl;
        -:        -:  643:
        8:        8:  644:   if (exec_list_is_empty(&src->list))
    #####:    #####:  645:      return;
        -:        -:  646:
        -:        -:  647:   clone_state state;
        8:        8:  648:   init_clone_state(&state, remap_table, false, true);
        -:        -:  649:
        -:        -:  650:   /* We use the same shader */
        8:        8:  651:   state.ns = src->impl->function->shader;
        -:        -:  652:
        -:        -:  653:   /* The control-flow code assumes that the list of cf_nodes always starts
        -:        -:  654:    * and ends with a block.  We start by adding an empty block.
        -:        -:  655:    */
        8:        8:  656:   nir_block *nblk = nir_block_create(state.ns);
        8:        8:  657:   nblk->cf_node.parent = parent;
        8:        8:  658:   exec_list_push_tail(&dst->list, &nblk->cf_node.node);
        -:        -:  659:
        8:        8:  660:   clone_cf_list(&state, &dst->list, &src->list);
        -:        -:  661:
        8:        8:  662:   fixup_phi_srcs(&state);
        -:        -:  663:}
        -:        -:  664:
        -:        -:  665:static nir_function_impl *
        5:        5:  666:clone_function_impl(clone_state *state, const nir_function_impl *fi)
        -:        -:  667:{
        5:        5:  668:   nir_function_impl *nfi = nir_function_impl_create_bare(state->ns);
        -:        -:  669:
        5:        5:  670:   clone_var_list(state, &nfi->locals, &fi->locals);
        5:        5:  671:   clone_reg_list(state, &nfi->registers, &fi->registers);
        5:        5:  672:   nfi->reg_alloc = fi->reg_alloc;
        -:        -:  673:
        5:        5:  674:   nfi->num_params = fi->num_params;
        5:        5:  675:   nfi->params = ralloc_array(state->ns, nir_variable *, fi->num_params);
        5:        5:  676:   for (unsigned i = 0; i < fi->num_params; i++) {
    #####:    #####:  677:      nfi->params[i] = clone_variable(state, fi->params[i]);
        -:        -:  678:   }
        5:        5:  679:   if (fi->return_var)
    #####:    #####:  680:      nfi->return_var = clone_variable(state, fi->return_var);
        -:        -:  681:
        5:        5:  682:   assert(list_empty(&state->phi_srcs));
        -:        -:  683:
        5:        5:  684:   clone_cf_list(state, &nfi->body, &fi->body);
        -:        -:  685:
        5:        5:  686:   fixup_phi_srcs(state);
        -:        -:  687:
        -:        -:  688:   /* All metadata is invalidated in the cloning process */
        5:        5:  689:   nfi->valid_metadata = 0;
        -:        -:  690:
        5:        5:  691:   return nfi;
        -:        -:  692:}
        -:        -:  693:
        -:        -:  694:nir_function_impl *
    #####:    #####:  695:nir_function_impl_clone(const nir_function_impl *fi)
        -:        -:  696:{
        -:        -:  697:   clone_state state;
    #####:    #####:  698:   init_clone_state(&state, NULL, false, false);
        -:        -:  699:
        -:        -:  700:   /* We use the same shader */
    #####:    #####:  701:   state.ns = fi->function->shader;
        -:        -:  702:
    #####:    #####:  703:   nir_function_impl *nfi = clone_function_impl(&state, fi);
        -:        -:  704:
    #####:    #####:  705:   free_clone_state(&state);
        -:        -:  706:
    #####:    #####:  707:   return nfi;
        -:        -:  708:}
        -:        -:  709:
        -:        -:  710:static nir_function *
        5:        5:  711:clone_function(clone_state *state, const nir_function *fxn, nir_shader *ns)
        -:        -:  712:{
        5:        5:  713:   assert(ns == state->ns);
        5:        5:  714:   nir_function *nfxn = nir_function_create(ns, fxn->name);
        -:        -:  715:
        -:        -:  716:   /* Needed for call instructions */
        5:        5:  717:   add_remap(state, nfxn, fxn);
        -:        -:  718:
        5:        5:  719:   nfxn->num_params = fxn->num_params;
        5:        5:  720:   nfxn->params = ralloc_array(state->ns, nir_parameter, fxn->num_params);
        5:        5:  721:   memcpy(nfxn->params, fxn->params, sizeof(nir_parameter) * fxn->num_params);
        -:        -:  722:
        5:        5:  723:   nfxn->return_type = fxn->return_type;
        -:        -:  724:
        -:        -:  725:   /* At first glance, it looks like we should clone the function_impl here.
        -:        -:  726:    * However, call instructions need to be able to reference at least the
        -:        -:  727:    * function and those will get processed as we clone the function_impls.
        -:        -:  728:    * We stop here and do function_impls as a second pass.
        -:        -:  729:    */
        -:        -:  730:
        5:        5:  731:   return nfxn;
        -:        -:  732:}
        -:        -:  733:
        -:        -:  734:nir_shader *
        5:        5:  735:nir_shader_clone(void *mem_ctx, const nir_shader *s)
        -:        -:  736:{
        -:        -:  737:   clone_state state;
        5:        5:  738:   init_clone_state(&state, NULL, true, false);
        -:        -:  739:
        5:        5:  740:   nir_shader *ns = nir_shader_create(mem_ctx, s->stage, s->options, NULL);
        5:        5:  741:   state.ns = ns;
        -:        -:  742:
        5:        5:  743:   clone_var_list(&state, &ns->uniforms, &s->uniforms);
        5:        5:  744:   clone_var_list(&state, &ns->inputs,   &s->inputs);
        5:        5:  745:   clone_var_list(&state, &ns->outputs,  &s->outputs);
        5:        5:  746:   clone_var_list(&state, &ns->shared,   &s->shared);
        5:        5:  747:   clone_var_list(&state, &ns->globals,  &s->globals);
        5:        5:  748:   clone_var_list(&state, &ns->system_values, &s->system_values);
        -:        -:  749:
        -:        -:  750:   /* Go through and clone functions */
       10:       10:  751:   foreach_list_typed(nir_function, fxn, node, &s->functions)
        5:        5:  752:      clone_function(&state, fxn, ns);
        -:        -:  753:
        -:        -:  754:   /* Only after all functions are cloned can we clone the actual function
        -:        -:  755:    * implementations.  This is because nir_call_instrs need to reference the
        -:        -:  756:    * functions of other functions and we don't know what order the functions
        -:        -:  757:    * will have in the list.
        -:        -:  758:    */
       10:       10:  759:   nir_foreach_function(fxn, s) {
        5:        5:  760:      nir_function *nfxn = remap_global(&state, fxn);
        5:        5:  761:      nfxn->impl = clone_function_impl(&state, fxn->impl);
        5:        5:  762:      nfxn->impl->function = nfxn;
        -:        -:  763:   }
        -:        -:  764:
        5:        5:  765:   clone_reg_list(&state, &ns->registers, &s->registers);
        5:        5:  766:   ns->reg_alloc = s->reg_alloc;
        -:        -:  767:
        5:        5:  768:   *ns->info = *s->info;
        5:        5:  769:   ns->info->name = ralloc_strdup(ns, ns->info->name);
        5:        5:  770:   if (ns->info->label)
    #####:    #####:  771:      ns->info->label = ralloc_strdup(ns, ns->info->label);
        -:        -:  772:
        5:        5:  773:   ns->num_inputs = s->num_inputs;
        5:        5:  774:   ns->num_uniforms = s->num_uniforms;
        5:        5:  775:   ns->num_outputs = s->num_outputs;
        5:        5:  776:   ns->num_shared = s->num_shared;
        -:        -:  777:
        5:        5:  778:   free_clone_state(&state);
        -:        -:  779:
        5:        5:  780:   return ns;
        -:        -:  781:}

src/compiler/nir_constant_expressions.c.gcov

        -:        -:    0:Source:nir/nir_constant_expressions.c
        -:        -:    0:Graph:nir/.libs/nir_constant_expressions.gcno
        -:        -:    0:Data:nir/.libs/nir_constant_expressions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright (C) 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: */
        -:        -:   26:
        -:        -:   27:#include <math.h>
        -:        -:   28:#include "main/core.h"
        -:        -:   29:#include "util/rounding.h" /* for _mesa_roundeven */
        -:        -:   30:#include "util/half_float.h"
        -:        -:   31:#include "nir_constant_expressions.h"
        -:        -:   32:
        -:        -:   33:/**
        -:        -:   34: * Evaluate one component of packSnorm4x8.
        -:        -:   35: */
        -:        -:   36:static uint8_t
    #####:    #####:   37:pack_snorm_1x8(float x)
        -:        -:   38:{
        -:        -:   39:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:   40:     *
        -:        -:   41:     *    packSnorm4x8
        -:        -:   42:     *    ------------
        -:        -:   43:     *    The conversion for component c of v to fixed point is done as
        -:        -:   44:     *    follows:
        -:        -:   45:     *
        -:        -:   46:     *      packSnorm4x8: round(clamp(c, -1, +1) * 127.0)
        -:        -:   47:     *
        -:        -:   48:     * We must first cast the float to an int, because casting a negative
        -:        -:   49:     * float to a uint is undefined.
        -:        -:   50:     */
    #####:    #####:   51:   return (uint8_t) (int)
    #####:    #####:   52:          _mesa_roundevenf(CLAMP(x, -1.0f, +1.0f) * 127.0f);
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:/**
        -:        -:   56: * Evaluate one component of packSnorm2x16.
        -:        -:   57: */
        -:        -:   58:static uint16_t
    #####:    #####:   59:pack_snorm_1x16(float x)
        -:        -:   60:{
        -:        -:   61:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:   62:     *
        -:        -:   63:     *    packSnorm2x16
        -:        -:   64:     *    -------------
        -:        -:   65:     *    The conversion for component c of v to fixed point is done as
        -:        -:   66:     *    follows:
        -:        -:   67:     *
        -:        -:   68:     *      packSnorm2x16: round(clamp(c, -1, +1) * 32767.0)
        -:        -:   69:     *
        -:        -:   70:     * We must first cast the float to an int, because casting a negative
        -:        -:   71:     * float to a uint is undefined.
        -:        -:   72:     */
    #####:    #####:   73:   return (uint16_t) (int)
    #####:    #####:   74:          _mesa_roundevenf(CLAMP(x, -1.0f, +1.0f) * 32767.0f);
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:/**
        -:        -:   78: * Evaluate one component of unpackSnorm4x8.
        -:        -:   79: */
        -:        -:   80:static float
    #####:    #####:   81:unpack_snorm_1x8(uint8_t u)
        -:        -:   82:{
        -:        -:   83:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:   84:     *
        -:        -:   85:     *    unpackSnorm4x8
        -:        -:   86:     *    --------------
        -:        -:   87:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:   88:     *    done as follows:
        -:        -:   89:     *
        -:        -:   90:     *       unpackSnorm4x8: clamp(f / 127.0, -1, +1)
        -:        -:   91:     */
    #####:    #####:   92:   return CLAMP((int8_t) u / 127.0f, -1.0f, +1.0f);
        -:        -:   93:}
        -:        -:   94:
        -:        -:   95:/**
        -:        -:   96: * Evaluate one component of unpackSnorm2x16.
        -:        -:   97: */
        -:        -:   98:static float
    #####:    #####:   99:unpack_snorm_1x16(uint16_t u)
        -:        -:  100:{
        -:        -:  101:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  102:     *
        -:        -:  103:     *    unpackSnorm2x16
        -:        -:  104:     *    ---------------
        -:        -:  105:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  106:     *    done as follows:
        -:        -:  107:     *
        -:        -:  108:     *       unpackSnorm2x16: clamp(f / 32767.0, -1, +1)
        -:        -:  109:     */
    #####:    #####:  110:   return CLAMP((int16_t) u / 32767.0f, -1.0f, +1.0f);
        -:        -:  111:}
        -:        -:  112:
        -:        -:  113:/**
        -:        -:  114: * Evaluate one component packUnorm4x8.
        -:        -:  115: */
        -:        -:  116:static uint8_t
    #####:    #####:  117:pack_unorm_1x8(float x)
        -:        -:  118:{
        -:        -:  119:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  120:     *
        -:        -:  121:     *    packUnorm4x8
        -:        -:  122:     *    ------------
        -:        -:  123:     *    The conversion for component c of v to fixed point is done as
        -:        -:  124:     *    follows:
        -:        -:  125:     *
        -:        -:  126:     *       packUnorm4x8: round(clamp(c, 0, +1) * 255.0)
        -:        -:  127:     */
    #####:    #####:  128:   return (uint8_t) (int)
    #####:    #####:  129:          _mesa_roundevenf(CLAMP(x, 0.0f, 1.0f) * 255.0f);
        -:        -:  130:}
        -:        -:  131:
        -:        -:  132:/**
        -:        -:  133: * Evaluate one component packUnorm2x16.
        -:        -:  134: */
        -:        -:  135:static uint16_t
    #####:    #####:  136:pack_unorm_1x16(float x)
        -:        -:  137:{
        -:        -:  138:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  139:     *
        -:        -:  140:     *    packUnorm2x16
        -:        -:  141:     *    -------------
        -:        -:  142:     *    The conversion for component c of v to fixed point is done as
        -:        -:  143:     *    follows:
        -:        -:  144:     *
        -:        -:  145:     *       packUnorm2x16: round(clamp(c, 0, +1) * 65535.0)
        -:        -:  146:     */
    #####:    #####:  147:   return (uint16_t) (int)
    #####:    #####:  148:          _mesa_roundevenf(CLAMP(x, 0.0f, 1.0f) * 65535.0f);
        -:        -:  149:}
        -:        -:  150:
        -:        -:  151:/**
        -:        -:  152: * Evaluate one component of unpackUnorm4x8.
        -:        -:  153: */
        -:        -:  154:static float
    #####:    #####:  155:unpack_unorm_1x8(uint8_t u)
        -:        -:  156:{
        -:        -:  157:    /* From section 8.4 of the GLSL 4.30 spec:
        -:        -:  158:     *
        -:        -:  159:     *    unpackUnorm4x8
        -:        -:  160:     *    --------------
        -:        -:  161:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  162:     *    done as follows:
        -:        -:  163:     *
        -:        -:  164:     *       unpackUnorm4x8: f / 255.0
        -:        -:  165:     */
    #####:    #####:  166:   return (float) u / 255.0f;
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:/**
        -:        -:  170: * Evaluate one component of unpackUnorm2x16.
        -:        -:  171: */
        -:        -:  172:static float
    #####:    #####:  173:unpack_unorm_1x16(uint16_t u)
        -:        -:  174:{
        -:        -:  175:    /* From section 8.4 of the GLSL ES 3.00 spec:
        -:        -:  176:     *
        -:        -:  177:     *    unpackUnorm2x16
        -:        -:  178:     *    ---------------
        -:        -:  179:     *    The conversion for unpacked fixed-point value f to floating point is
        -:        -:  180:     *    done as follows:
        -:        -:  181:     *
        -:        -:  182:     *       unpackUnorm2x16: f / 65535.0
        -:        -:  183:     */
    #####:    #####:  184:   return (float) u / 65535.0f;
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:/**
        -:        -:  188: * Evaluate one component of packHalf2x16.
        -:        -:  189: */
        -:        -:  190:static uint16_t
    #####:    #####:  191:pack_half_1x16(float x)
        -:        -:  192:{
    #####:    #####:  193:   return _mesa_float_to_half(x);
        -:        -:  194:}
        -:        -:  195:
        -:        -:  196:/**
        -:        -:  197: * Evaluate one component of unpackHalf2x16.
        -:        -:  198: */
        -:        -:  199:static float
    #####:    #####:  200:unpack_half_1x16(uint16_t u)
        -:        -:  201:{
    #####:    #####:  202:   return _mesa_half_to_float(u);
        -:        -:  203:}
        -:        -:  204:
        -:        -:  205:/* Some typed vector structures to make things like src0.y work */
        -:        -:  206:typedef float float16_t;
        -:        -:  207:typedef float float32_t;
        -:        -:  208:typedef double float64_t;
        -:        -:  209:typedef bool bool32_t;
        -:        -:  210:struct float16_vec {
        -:        -:  211:   float16_t x;
        -:        -:  212:   float16_t y;
        -:        -:  213:   float16_t z;
        -:        -:  214:   float16_t w;
        -:        -:  215:};
        -:        -:  216:struct float32_vec {
        -:        -:  217:   float32_t x;
        -:        -:  218:   float32_t y;
        -:        -:  219:   float32_t z;
        -:        -:  220:   float32_t w;
        -:        -:  221:};
        -:        -:  222:struct float64_vec {
        -:        -:  223:   float64_t x;
        -:        -:  224:   float64_t y;
        -:        -:  225:   float64_t z;
        -:        -:  226:   float64_t w;
        -:        -:  227:};
        -:        -:  228:struct int8_vec {
        -:        -:  229:   int8_t x;
        -:        -:  230:   int8_t y;
        -:        -:  231:   int8_t z;
        -:        -:  232:   int8_t w;
        -:        -:  233:};
        -:        -:  234:struct int16_vec {
        -:        -:  235:   int16_t x;
        -:        -:  236:   int16_t y;
        -:        -:  237:   int16_t z;
        -:        -:  238:   int16_t w;
        -:        -:  239:};
        -:        -:  240:struct int32_vec {
        -:        -:  241:   int32_t x;
        -:        -:  242:   int32_t y;
        -:        -:  243:   int32_t z;
        -:        -:  244:   int32_t w;
        -:        -:  245:};
        -:        -:  246:struct int64_vec {
        -:        -:  247:   int64_t x;
        -:        -:  248:   int64_t y;
        -:        -:  249:   int64_t z;
        -:        -:  250:   int64_t w;
        -:        -:  251:};
        -:        -:  252:struct uint8_vec {
        -:        -:  253:   uint8_t x;
        -:        -:  254:   uint8_t y;
        -:        -:  255:   uint8_t z;
        -:        -:  256:   uint8_t w;
        -:        -:  257:};
        -:        -:  258:struct uint16_vec {
        -:        -:  259:   uint16_t x;
        -:        -:  260:   uint16_t y;
        -:        -:  261:   uint16_t z;
        -:        -:  262:   uint16_t w;
        -:        -:  263:};
        -:        -:  264:struct uint32_vec {
        -:        -:  265:   uint32_t x;
        -:        -:  266:   uint32_t y;
        -:        -:  267:   uint32_t z;
        -:        -:  268:   uint32_t w;
        -:        -:  269:};
        -:        -:  270:struct uint64_vec {
        -:        -:  271:   uint64_t x;
        -:        -:  272:   uint64_t y;
        -:        -:  273:   uint64_t z;
        -:        -:  274:   uint64_t w;
        -:        -:  275:};
        -:        -:  276:
        -:        -:  277:struct bool32_vec {
        -:        -:  278:    bool x;
        -:        -:  279:    bool y;
        -:        -:  280:    bool z;
        -:        -:  281:    bool w;
        -:        -:  282:};
        -:        -:  283:
        -:        -:  284:
        -:        -:  285:
        -:        -:  286:static nir_const_value
    #####:    #####:  287:evaluate_b2f(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  288:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  289:{
    #####:    #####:  290:   nir_const_value _dst_val = { {0, } };
        -:        -:  291:
    #####:    #####:  292:      switch (bit_size) {
        -:        -:  293:      case 16: {
        -:        -:  294:         
        -:        -:  295:   
        -:        -:  296:
        -:        -:  297:         
    #####:    #####:  298:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  299:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  300:
    #####:    #####:  301:            float16_t dst = src0 ? 1.0 : 0.0;
        -:        -:  302:
    #####:    #####:  303:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:  304:      }
        -:        -:  305:
    #####:    #####:  306:         break;
        -:        -:  307:      }
        -:        -:  308:      case 32: {
        -:        -:  309:         
        -:        -:  310:   
        -:        -:  311:
        -:        -:  312:         
    #####:    #####:  313:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  314:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  315:
    #####:    #####:  316:            float32_t dst = src0 ? 1.0 : 0.0;
        -:        -:  317:
    #####:    #####:  318:            _dst_val.f32[_i] = dst;
        -:        -:  319:      }
        -:        -:  320:
    #####:    #####:  321:         break;
        -:        -:  322:      }
        -:        -:  323:      case 64: {
        -:        -:  324:         
        -:        -:  325:   
        -:        -:  326:
        -:        -:  327:         
    #####:    #####:  328:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  329:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  330:
    #####:    #####:  331:            float64_t dst = src0 ? 1.0 : 0.0;
        -:        -:  332:
    #####:    #####:  333:            _dst_val.f64[_i] = dst;
        -:        -:  334:      }
        -:        -:  335:
    #####:    #####:  336:         break;
        -:        -:  337:      }
        -:        -:  338:
        -:        -:  339:      default:
    #####:    #####:  340:         unreachable("unknown bit width");
        -:        -:  341:      }
        -:        -:  342:
    #####:    #####:  343:   return _dst_val;
        -:        -:  344:}
        -:        -:  345:static nir_const_value
    #####:    #####:  346:evaluate_b2i(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  347:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  348:{
    #####:    #####:  349:   nir_const_value _dst_val = { {0, } };
        -:        -:  350:
    #####:    #####:  351:      switch (bit_size) {
        -:        -:  352:      case 8: {
        -:        -:  353:         
        -:        -:  354:   
        -:        -:  355:
        -:        -:  356:         
    #####:    #####:  357:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  358:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  359:
    #####:    #####:  360:            int8_t dst = src0 ? 1 : 0;
        -:        -:  361:
    #####:    #####:  362:            _dst_val.i8[_i] = dst;
        -:        -:  363:      }
        -:        -:  364:
    #####:    #####:  365:         break;
        -:        -:  366:      }
        -:        -:  367:      case 16: {
        -:        -:  368:         
        -:        -:  369:   
        -:        -:  370:
        -:        -:  371:         
    #####:    #####:  372:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  373:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  374:
    #####:    #####:  375:            int16_t dst = src0 ? 1 : 0;
        -:        -:  376:
    #####:    #####:  377:            _dst_val.i16[_i] = dst;
        -:        -:  378:      }
        -:        -:  379:
    #####:    #####:  380:         break;
        -:        -:  381:      }
        -:        -:  382:      case 32: {
        -:        -:  383:         
        -:        -:  384:   
        -:        -:  385:
        -:        -:  386:         
    #####:    #####:  387:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  388:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  389:
    #####:    #####:  390:            int32_t dst = src0 ? 1 : 0;
        -:        -:  391:
    #####:    #####:  392:            _dst_val.i32[_i] = dst;
        -:        -:  393:      }
        -:        -:  394:
    #####:    #####:  395:         break;
        -:        -:  396:      }
        -:        -:  397:      case 64: {
        -:        -:  398:         
        -:        -:  399:   
        -:        -:  400:
        -:        -:  401:         
    #####:    #####:  402:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:  403:               const bool src0 = _src[0].u32[_i] != 0;
        -:        -:  404:
    #####:    #####:  405:            int64_t dst = src0 ? 1 : 0;
        -:        -:  406:
    #####:    #####:  407:            _dst_val.i64[_i] = dst;
        -:        -:  408:      }
        -:        -:  409:
    #####:    #####:  410:         break;
        -:        -:  411:      }
        -:        -:  412:
        -:        -:  413:      default:
    #####:    #####:  414:         unreachable("unknown bit width");
        -:        -:  415:      }
        -:        -:  416:
    #####:    #####:  417:   return _dst_val;
        -:        -:  418:}
        -:        -:  419:static nir_const_value
    #####:    #####:  420:evaluate_ball_fequal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  421:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  422:{
    #####:    #####:  423:   nir_const_value _dst_val = { {0, } };
        -:        -:  424:
    #####:    #####:  425:      switch (bit_size) {
        -:        -:  426:      case 16: {
        -:        -:  427:         
        -:        -:  428:   
        -:        -:  429:
        -:        -:  430:
    #####:    #####:  431:      const struct float16_vec src0 = {
    #####:    #####:  432:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####:  433:            _mesa_half_to_float(_src[0].u16[1]),
        -:        -:  434:         0,
        -:        -:  435:         0,
        -:        -:  436:      };
        -:        -:  437:
    #####:    #####:  438:      const struct float16_vec src1 = {
    #####:    #####:  439:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####:  440:            _mesa_half_to_float(_src[1].u16[1]),
        -:        -:  441:         0,
        -:        -:  442:         0,
        -:        -:  443:      };
        -:        -:  444:
        -:        -:  445:      struct bool32_vec dst;
        -:        -:  446:
    #####:    #####:  447:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  448:
    #####:    #####:  449:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  450:
    #####:    #####:  451:         break;
        -:        -:  452:      }
        -:        -:  453:      case 32: {
        -:        -:  454:         
        -:        -:  455:   
        -:        -:  456:
        -:        -:  457:
    #####:    #####:  458:      const struct float32_vec src0 = {
    #####:    #####:  459:            _src[0].f32[0],
    #####:    #####:  460:            _src[0].f32[1],
        -:        -:  461:         0,
        -:        -:  462:         0,
        -:        -:  463:      };
        -:        -:  464:
    #####:    #####:  465:      const struct float32_vec src1 = {
    #####:    #####:  466:            _src[1].f32[0],
    #####:    #####:  467:            _src[1].f32[1],
        -:        -:  468:         0,
        -:        -:  469:         0,
        -:        -:  470:      };
        -:        -:  471:
        -:        -:  472:      struct bool32_vec dst;
        -:        -:  473:
    #####:    #####:  474:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  475:
    #####:    #####:  476:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  477:
    #####:    #####:  478:         break;
        -:        -:  479:      }
        -:        -:  480:      case 64: {
        -:        -:  481:         
        -:        -:  482:   
        -:        -:  483:
        -:        -:  484:
    #####:    #####:  485:      const struct float64_vec src0 = {
    #####:    #####:  486:            _src[0].f64[0],
    #####:    #####:  487:            _src[0].f64[1],
        -:        -:  488:         0,
        -:        -:  489:         0,
        -:        -:  490:      };
        -:        -:  491:
    #####:    #####:  492:      const struct float64_vec src1 = {
    #####:    #####:  493:            _src[1].f64[0],
    #####:    #####:  494:            _src[1].f64[1],
        -:        -:  495:         0,
        -:        -:  496:         0,
        -:        -:  497:      };
        -:        -:  498:
        -:        -:  499:      struct bool32_vec dst;
        -:        -:  500:
    #####:    #####:  501:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  502:
    #####:    #####:  503:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  504:
    #####:    #####:  505:         break;
        -:        -:  506:      }
        -:        -:  507:
        -:        -:  508:      default:
    #####:    #####:  509:         unreachable("unknown bit width");
        -:        -:  510:      }
        -:        -:  511:
    #####:    #####:  512:   return _dst_val;
        -:        -:  513:}
        -:        -:  514:static nir_const_value
    #####:    #####:  515:evaluate_ball_fequal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  516:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  517:{
    #####:    #####:  518:   nir_const_value _dst_val = { {0, } };
        -:        -:  519:
    #####:    #####:  520:      switch (bit_size) {
        -:        -:  521:      case 16: {
        -:        -:  522:         
        -:        -:  523:   
        -:        -:  524:
        -:        -:  525:
    #####:    #####:  526:      const struct float16_vec src0 = {
    #####:    #####:  527:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####:  528:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####:  529:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -:  530:         0,
        -:        -:  531:      };
        -:        -:  532:
    #####:    #####:  533:      const struct float16_vec src1 = {
    #####:    #####:  534:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####:  535:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####:  536:            _mesa_half_to_float(_src[1].u16[2]),
        -:        -:  537:         0,
        -:        -:  538:      };
        -:        -:  539:
        -:        -:  540:      struct bool32_vec dst;
        -:        -:  541:
    #####:    #####:  542:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  543:
    #####:    #####:  544:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  545:
    #####:    #####:  546:         break;
        -:        -:  547:      }
        -:        -:  548:      case 32: {
        -:        -:  549:         
        -:        -:  550:   
        -:        -:  551:
        -:        -:  552:
    #####:    #####:  553:      const struct float32_vec src0 = {
    #####:    #####:  554:            _src[0].f32[0],
    #####:    #####:  555:            _src[0].f32[1],
    #####:    #####:  556:            _src[0].f32[2],
        -:        -:  557:         0,
        -:        -:  558:      };
        -:        -:  559:
    #####:    #####:  560:      const struct float32_vec src1 = {
    #####:    #####:  561:            _src[1].f32[0],
    #####:    #####:  562:            _src[1].f32[1],
    #####:    #####:  563:            _src[1].f32[2],
        -:        -:  564:         0,
        -:        -:  565:      };
        -:        -:  566:
        -:        -:  567:      struct bool32_vec dst;
        -:        -:  568:
    #####:    #####:  569:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  570:
    #####:    #####:  571:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  572:
    #####:    #####:  573:         break;
        -:        -:  574:      }
        -:        -:  575:      case 64: {
        -:        -:  576:         
        -:        -:  577:   
        -:        -:  578:
        -:        -:  579:
    #####:    #####:  580:      const struct float64_vec src0 = {
    #####:    #####:  581:            _src[0].f64[0],
    #####:    #####:  582:            _src[0].f64[1],
    #####:    #####:  583:            _src[0].f64[2],
        -:        -:  584:         0,
        -:        -:  585:      };
        -:        -:  586:
    #####:    #####:  587:      const struct float64_vec src1 = {
    #####:    #####:  588:            _src[1].f64[0],
    #####:    #####:  589:            _src[1].f64[1],
    #####:    #####:  590:            _src[1].f64[2],
        -:        -:  591:         0,
        -:        -:  592:      };
        -:        -:  593:
        -:        -:  594:      struct bool32_vec dst;
        -:        -:  595:
    #####:    #####:  596:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  597:
    #####:    #####:  598:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  599:
    #####:    #####:  600:         break;
        -:        -:  601:      }
        -:        -:  602:
        -:        -:  603:      default:
    #####:    #####:  604:         unreachable("unknown bit width");
        -:        -:  605:      }
        -:        -:  606:
    #####:    #####:  607:   return _dst_val;
        -:        -:  608:}
        -:        -:  609:static nir_const_value
    #####:    #####:  610:evaluate_ball_fequal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  611:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  612:{
    #####:    #####:  613:   nir_const_value _dst_val = { {0, } };
        -:        -:  614:
    #####:    #####:  615:      switch (bit_size) {
        -:        -:  616:      case 16: {
        -:        -:  617:         
        -:        -:  618:   
        -:        -:  619:
        -:        -:  620:
    #####:    #####:  621:      const struct float16_vec src0 = {
    #####:    #####:  622:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####:  623:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####:  624:            _mesa_half_to_float(_src[0].u16[2]),
    #####:    #####:  625:            _mesa_half_to_float(_src[0].u16[3]),
        -:        -:  626:      };
        -:        -:  627:
    #####:    #####:  628:      const struct float16_vec src1 = {
    #####:    #####:  629:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####:  630:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####:  631:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####:  632:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -:  633:      };
        -:        -:  634:
        -:        -:  635:      struct bool32_vec dst;
        -:        -:  636:
    #####:    #####:  637:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -:  638:
    #####:    #####:  639:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  640:
    #####:    #####:  641:         break;
        -:        -:  642:      }
        -:        -:  643:      case 32: {
        -:        -:  644:         
        -:        -:  645:   
        -:        -:  646:
        -:        -:  647:
    #####:    #####:  648:      const struct float32_vec src0 = {
    #####:    #####:  649:            _src[0].f32[0],
    #####:    #####:  650:            _src[0].f32[1],
    #####:    #####:  651:            _src[0].f32[2],
    #####:    #####:  652:            _src[0].f32[3],
        -:        -:  653:      };
        -:        -:  654:
    #####:    #####:  655:      const struct float32_vec src1 = {
    #####:    #####:  656:            _src[1].f32[0],
    #####:    #####:  657:            _src[1].f32[1],
    #####:    #####:  658:            _src[1].f32[2],
    #####:    #####:  659:            _src[1].f32[3],
        -:        -:  660:      };
        -:        -:  661:
        -:        -:  662:      struct bool32_vec dst;
        -:        -:  663:
    #####:    #####:  664:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -:  665:
    #####:    #####:  666:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  667:
    #####:    #####:  668:         break;
        -:        -:  669:      }
        -:        -:  670:      case 64: {
        -:        -:  671:         
        -:        -:  672:   
        -:        -:  673:
        -:        -:  674:
    #####:    #####:  675:      const struct float64_vec src0 = {
    #####:    #####:  676:            _src[0].f64[0],
    #####:    #####:  677:            _src[0].f64[1],
    #####:    #####:  678:            _src[0].f64[2],
    #####:    #####:  679:            _src[0].f64[3],
        -:        -:  680:      };
        -:        -:  681:
    #####:    #####:  682:      const struct float64_vec src1 = {
    #####:    #####:  683:            _src[1].f64[0],
    #####:    #####:  684:            _src[1].f64[1],
    #####:    #####:  685:            _src[1].f64[2],
    #####:    #####:  686:            _src[1].f64[3],
        -:        -:  687:      };
        -:        -:  688:
        -:        -:  689:      struct bool32_vec dst;
        -:        -:  690:
    #####:    #####:  691:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -:  692:
    #####:    #####:  693:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  694:
    #####:    #####:  695:         break;
        -:        -:  696:      }
        -:        -:  697:
        -:        -:  698:      default:
    #####:    #####:  699:         unreachable("unknown bit width");
        -:        -:  700:      }
        -:        -:  701:
    #####:    #####:  702:   return _dst_val;
        -:        -:  703:}
        -:        -:  704:static nir_const_value
    #####:    #####:  705:evaluate_ball_iequal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  706:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  707:{
    #####:    #####:  708:   nir_const_value _dst_val = { {0, } };
        -:        -:  709:
    #####:    #####:  710:      switch (bit_size) {
        -:        -:  711:      case 8: {
        -:        -:  712:         
        -:        -:  713:   
        -:        -:  714:
        -:        -:  715:
    #####:    #####:  716:      const struct int8_vec src0 = {
    #####:    #####:  717:            _src[0].i8[0],
    #####:    #####:  718:            _src[0].i8[1],
        -:        -:  719:         0,
        -:        -:  720:         0,
        -:        -:  721:      };
        -:        -:  722:
    #####:    #####:  723:      const struct int8_vec src1 = {
    #####:    #####:  724:            _src[1].i8[0],
    #####:    #####:  725:            _src[1].i8[1],
        -:        -:  726:         0,
        -:        -:  727:         0,
        -:        -:  728:      };
        -:        -:  729:
        -:        -:  730:      struct bool32_vec dst;
        -:        -:  731:
    #####:    #####:  732:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  733:
    #####:    #####:  734:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  735:
    #####:    #####:  736:         break;
        -:        -:  737:      }
        -:        -:  738:      case 16: {
        -:        -:  739:         
        -:        -:  740:   
        -:        -:  741:
        -:        -:  742:
    #####:    #####:  743:      const struct int16_vec src0 = {
    #####:    #####:  744:            _src[0].i16[0],
    #####:    #####:  745:            _src[0].i16[1],
        -:        -:  746:         0,
        -:        -:  747:         0,
        -:        -:  748:      };
        -:        -:  749:
    #####:    #####:  750:      const struct int16_vec src1 = {
    #####:    #####:  751:            _src[1].i16[0],
    #####:    #####:  752:            _src[1].i16[1],
        -:        -:  753:         0,
        -:        -:  754:         0,
        -:        -:  755:      };
        -:        -:  756:
        -:        -:  757:      struct bool32_vec dst;
        -:        -:  758:
    #####:    #####:  759:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  760:
    #####:    #####:  761:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  762:
    #####:    #####:  763:         break;
        -:        -:  764:      }
        -:        -:  765:      case 32: {
        -:        -:  766:         
        -:        -:  767:   
        -:        -:  768:
        -:        -:  769:
    #####:    #####:  770:      const struct int32_vec src0 = {
    #####:    #####:  771:            _src[0].i32[0],
    #####:    #####:  772:            _src[0].i32[1],
        -:        -:  773:         0,
        -:        -:  774:         0,
        -:        -:  775:      };
        -:        -:  776:
    #####:    #####:  777:      const struct int32_vec src1 = {
    #####:    #####:  778:            _src[1].i32[0],
    #####:    #####:  779:            _src[1].i32[1],
        -:        -:  780:         0,
        -:        -:  781:         0,
        -:        -:  782:      };
        -:        -:  783:
        -:        -:  784:      struct bool32_vec dst;
        -:        -:  785:
    #####:    #####:  786:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  787:
    #####:    #####:  788:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  789:
    #####:    #####:  790:         break;
        -:        -:  791:      }
        -:        -:  792:      case 64: {
        -:        -:  793:         
        -:        -:  794:   
        -:        -:  795:
        -:        -:  796:
    #####:    #####:  797:      const struct int64_vec src0 = {
    #####:    #####:  798:            _src[0].i64[0],
    #####:    #####:  799:            _src[0].i64[1],
        -:        -:  800:         0,
        -:        -:  801:         0,
        -:        -:  802:      };
        -:        -:  803:
    #####:    #####:  804:      const struct int64_vec src1 = {
    #####:    #####:  805:            _src[1].i64[0],
    #####:    #####:  806:            _src[1].i64[1],
        -:        -:  807:         0,
        -:        -:  808:         0,
        -:        -:  809:      };
        -:        -:  810:
        -:        -:  811:      struct bool32_vec dst;
        -:        -:  812:
    #####:    #####:  813:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y));
        -:        -:  814:
    #####:    #####:  815:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  816:
    #####:    #####:  817:         break;
        -:        -:  818:      }
        -:        -:  819:
        -:        -:  820:      default:
    #####:    #####:  821:         unreachable("unknown bit width");
        -:        -:  822:      }
        -:        -:  823:
    #####:    #####:  824:   return _dst_val;
        -:        -:  825:}
        -:        -:  826:static nir_const_value
    #####:    #####:  827:evaluate_ball_iequal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  828:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  829:{
    #####:    #####:  830:   nir_const_value _dst_val = { {0, } };
        -:        -:  831:
    #####:    #####:  832:      switch (bit_size) {
        -:        -:  833:      case 8: {
        -:        -:  834:         
        -:        -:  835:   
        -:        -:  836:
        -:        -:  837:
    #####:    #####:  838:      const struct int8_vec src0 = {
    #####:    #####:  839:            _src[0].i8[0],
    #####:    #####:  840:            _src[0].i8[1],
    #####:    #####:  841:            _src[0].i8[2],
        -:        -:  842:         0,
        -:        -:  843:      };
        -:        -:  844:
    #####:    #####:  845:      const struct int8_vec src1 = {
    #####:    #####:  846:            _src[1].i8[0],
    #####:    #####:  847:            _src[1].i8[1],
    #####:    #####:  848:            _src[1].i8[2],
        -:        -:  849:         0,
        -:        -:  850:      };
        -:        -:  851:
        -:        -:  852:      struct bool32_vec dst;
        -:        -:  853:
    #####:    #####:  854:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  855:
    #####:    #####:  856:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  857:
    #####:    #####:  858:         break;
        -:        -:  859:      }
        -:        -:  860:      case 16: {
        -:        -:  861:         
        -:        -:  862:   
        -:        -:  863:
        -:        -:  864:
    #####:    #####:  865:      const struct int16_vec src0 = {
    #####:    #####:  866:            _src[0].i16[0],
    #####:    #####:  867:            _src[0].i16[1],
    #####:    #####:  868:            _src[0].i16[2],
        -:        -:  869:         0,
        -:        -:  870:      };
        -:        -:  871:
    #####:    #####:  872:      const struct int16_vec src1 = {
    #####:    #####:  873:            _src[1].i16[0],
    #####:    #####:  874:            _src[1].i16[1],
    #####:    #####:  875:            _src[1].i16[2],
        -:        -:  876:         0,
        -:        -:  877:      };
        -:        -:  878:
        -:        -:  879:      struct bool32_vec dst;
        -:        -:  880:
    #####:    #####:  881:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  882:
    #####:    #####:  883:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  884:
    #####:    #####:  885:         break;
        -:        -:  886:      }
        -:        -:  887:      case 32: {
        -:        -:  888:         
        -:        -:  889:   
        -:        -:  890:
        -:        -:  891:
    #####:    #####:  892:      const struct int32_vec src0 = {
    #####:    #####:  893:            _src[0].i32[0],
    #####:    #####:  894:            _src[0].i32[1],
    #####:    #####:  895:            _src[0].i32[2],
        -:        -:  896:         0,
        -:        -:  897:      };
        -:        -:  898:
    #####:    #####:  899:      const struct int32_vec src1 = {
    #####:    #####:  900:            _src[1].i32[0],
    #####:    #####:  901:            _src[1].i32[1],
    #####:    #####:  902:            _src[1].i32[2],
        -:        -:  903:         0,
        -:        -:  904:      };
        -:        -:  905:
        -:        -:  906:      struct bool32_vec dst;
        -:        -:  907:
    #####:    #####:  908:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  909:
    #####:    #####:  910:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  911:
    #####:    #####:  912:         break;
        -:        -:  913:      }
        -:        -:  914:      case 64: {
        -:        -:  915:         
        -:        -:  916:   
        -:        -:  917:
        -:        -:  918:
    #####:    #####:  919:      const struct int64_vec src0 = {
    #####:    #####:  920:            _src[0].i64[0],
    #####:    #####:  921:            _src[0].i64[1],
    #####:    #####:  922:            _src[0].i64[2],
        -:        -:  923:         0,
        -:        -:  924:      };
        -:        -:  925:
    #####:    #####:  926:      const struct int64_vec src1 = {
    #####:    #####:  927:            _src[1].i64[0],
    #####:    #####:  928:            _src[1].i64[1],
    #####:    #####:  929:            _src[1].i64[2],
        -:        -:  930:         0,
        -:        -:  931:      };
        -:        -:  932:
        -:        -:  933:      struct bool32_vec dst;
        -:        -:  934:
    #####:    #####:  935:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z));
        -:        -:  936:
    #####:    #####:  937:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  938:
    #####:    #####:  939:         break;
        -:        -:  940:      }
        -:        -:  941:
        -:        -:  942:      default:
    #####:    #####:  943:         unreachable("unknown bit width");
        -:        -:  944:      }
        -:        -:  945:
    #####:    #####:  946:   return _dst_val;
        -:        -:  947:}
        -:        -:  948:static nir_const_value
    #####:    #####:  949:evaluate_ball_iequal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:  950:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:  951:{
    #####:    #####:  952:   nir_const_value _dst_val = { {0, } };
        -:        -:  953:
    #####:    #####:  954:      switch (bit_size) {
        -:        -:  955:      case 8: {
        -:        -:  956:         
        -:        -:  957:   
        -:        -:  958:
        -:        -:  959:
    #####:    #####:  960:      const struct int8_vec src0 = {
    #####:    #####:  961:            _src[0].i8[0],
    #####:    #####:  962:            _src[0].i8[1],
    #####:    #####:  963:            _src[0].i8[2],
    #####:    #####:  964:            _src[0].i8[3],
        -:        -:  965:      };
        -:        -:  966:
    #####:    #####:  967:      const struct int8_vec src1 = {
    #####:    #####:  968:            _src[1].i8[0],
    #####:    #####:  969:            _src[1].i8[1],
    #####:    #####:  970:            _src[1].i8[2],
    #####:    #####:  971:            _src[1].i8[3],
        -:        -:  972:      };
        -:        -:  973:
        -:        -:  974:      struct bool32_vec dst;
        -:        -:  975:
    #####:    #####:  976:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -:  977:
    #####:    #####:  978:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -:  979:
    #####:    #####:  980:         break;
        -:        -:  981:      }
        -:        -:  982:      case 16: {
        -:        -:  983:         
        -:        -:  984:   
        -:        -:  985:
        -:        -:  986:
    #####:    #####:  987:      const struct int16_vec src0 = {
    #####:    #####:  988:            _src[0].i16[0],
    #####:    #####:  989:            _src[0].i16[1],
    #####:    #####:  990:            _src[0].i16[2],
    #####:    #####:  991:            _src[0].i16[3],
        -:        -:  992:      };
        -:        -:  993:
    #####:    #####:  994:      const struct int16_vec src1 = {
    #####:    #####:  995:            _src[1].i16[0],
    #####:    #####:  996:            _src[1].i16[1],
    #####:    #####:  997:            _src[1].i16[2],
    #####:    #####:  998:            _src[1].i16[3],
        -:        -:  999:      };
        -:        -: 1000:
        -:        -: 1001:      struct bool32_vec dst;
        -:        -: 1002:
    #####:    #####: 1003:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -: 1004:
    #####:    #####: 1005:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1006:
    #####:    #####: 1007:         break;
        -:        -: 1008:      }
        -:        -: 1009:      case 32: {
        -:        -: 1010:         
        -:        -: 1011:   
        -:        -: 1012:
        -:        -: 1013:
    #####:    #####: 1014:      const struct int32_vec src0 = {
    #####:    #####: 1015:            _src[0].i32[0],
    #####:    #####: 1016:            _src[0].i32[1],
    #####:    #####: 1017:            _src[0].i32[2],
    #####:    #####: 1018:            _src[0].i32[3],
        -:        -: 1019:      };
        -:        -: 1020:
    #####:    #####: 1021:      const struct int32_vec src1 = {
    #####:    #####: 1022:            _src[1].i32[0],
    #####:    #####: 1023:            _src[1].i32[1],
    #####:    #####: 1024:            _src[1].i32[2],
    #####:    #####: 1025:            _src[1].i32[3],
        -:        -: 1026:      };
        -:        -: 1027:
        -:        -: 1028:      struct bool32_vec dst;
        -:        -: 1029:
    #####:    #####: 1030:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -: 1031:
    #####:    #####: 1032:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1033:
    #####:    #####: 1034:         break;
        -:        -: 1035:      }
        -:        -: 1036:      case 64: {
        -:        -: 1037:         
        -:        -: 1038:   
        -:        -: 1039:
        -:        -: 1040:
    #####:    #####: 1041:      const struct int64_vec src0 = {
    #####:    #####: 1042:            _src[0].i64[0],
    #####:    #####: 1043:            _src[0].i64[1],
    #####:    #####: 1044:            _src[0].i64[2],
    #####:    #####: 1045:            _src[0].i64[3],
        -:        -: 1046:      };
        -:        -: 1047:
    #####:    #####: 1048:      const struct int64_vec src1 = {
    #####:    #####: 1049:            _src[1].i64[0],
    #####:    #####: 1050:            _src[1].i64[1],
    #####:    #####: 1051:            _src[1].i64[2],
    #####:    #####: 1052:            _src[1].i64[3],
        -:        -: 1053:      };
        -:        -: 1054:
        -:        -: 1055:      struct bool32_vec dst;
        -:        -: 1056:
    #####:    #####: 1057:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w));
        -:        -: 1058:
    #####:    #####: 1059:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1060:
    #####:    #####: 1061:         break;
        -:        -: 1062:      }
        -:        -: 1063:
        -:        -: 1064:      default:
    #####:    #####: 1065:         unreachable("unknown bit width");
        -:        -: 1066:      }
        -:        -: 1067:
    #####:    #####: 1068:   return _dst_val;
        -:        -: 1069:}
        -:        -: 1070:static nir_const_value
    #####:    #####: 1071:evaluate_bany_fnequal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1072:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1073:{
    #####:    #####: 1074:   nir_const_value _dst_val = { {0, } };
        -:        -: 1075:
    #####:    #####: 1076:      switch (bit_size) {
        -:        -: 1077:      case 16: {
        -:        -: 1078:         
        -:        -: 1079:   
        -:        -: 1080:
        -:        -: 1081:
    #####:    #####: 1082:      const struct float16_vec src0 = {
    #####:    #####: 1083:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 1084:            _mesa_half_to_float(_src[0].u16[1]),
        -:        -: 1085:         0,
        -:        -: 1086:         0,
        -:        -: 1087:      };
        -:        -: 1088:
    #####:    #####: 1089:      const struct float16_vec src1 = {
    #####:    #####: 1090:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 1091:            _mesa_half_to_float(_src[1].u16[1]),
        -:        -: 1092:         0,
        -:        -: 1093:         0,
        -:        -: 1094:      };
        -:        -: 1095:
        -:        -: 1096:      struct bool32_vec dst;
        -:        -: 1097:
    #####:    #####: 1098:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1099:
    #####:    #####: 1100:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1101:
    #####:    #####: 1102:         break;
        -:        -: 1103:      }
        -:        -: 1104:      case 32: {
        -:        -: 1105:         
        -:        -: 1106:   
        -:        -: 1107:
        -:        -: 1108:
    #####:    #####: 1109:      const struct float32_vec src0 = {
    #####:    #####: 1110:            _src[0].f32[0],
    #####:    #####: 1111:            _src[0].f32[1],
        -:        -: 1112:         0,
        -:        -: 1113:         0,
        -:        -: 1114:      };
        -:        -: 1115:
    #####:    #####: 1116:      const struct float32_vec src1 = {
    #####:    #####: 1117:            _src[1].f32[0],
    #####:    #####: 1118:            _src[1].f32[1],
        -:        -: 1119:         0,
        -:        -: 1120:         0,
        -:        -: 1121:      };
        -:        -: 1122:
        -:        -: 1123:      struct bool32_vec dst;
        -:        -: 1124:
    #####:    #####: 1125:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1126:
    #####:    #####: 1127:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1128:
    #####:    #####: 1129:         break;
        -:        -: 1130:      }
        -:        -: 1131:      case 64: {
        -:        -: 1132:         
        -:        -: 1133:   
        -:        -: 1134:
        -:        -: 1135:
    #####:    #####: 1136:      const struct float64_vec src0 = {
    #####:    #####: 1137:            _src[0].f64[0],
    #####:    #####: 1138:            _src[0].f64[1],
        -:        -: 1139:         0,
        -:        -: 1140:         0,
        -:        -: 1141:      };
        -:        -: 1142:
    #####:    #####: 1143:      const struct float64_vec src1 = {
    #####:    #####: 1144:            _src[1].f64[0],
    #####:    #####: 1145:            _src[1].f64[1],
        -:        -: 1146:         0,
        -:        -: 1147:         0,
        -:        -: 1148:      };
        -:        -: 1149:
        -:        -: 1150:      struct bool32_vec dst;
        -:        -: 1151:
    #####:    #####: 1152:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1153:
    #####:    #####: 1154:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1155:
    #####:    #####: 1156:         break;
        -:        -: 1157:      }
        -:        -: 1158:
        -:        -: 1159:      default:
    #####:    #####: 1160:         unreachable("unknown bit width");
        -:        -: 1161:      }
        -:        -: 1162:
    #####:    #####: 1163:   return _dst_val;
        -:        -: 1164:}
        -:        -: 1165:static nir_const_value
    #####:    #####: 1166:evaluate_bany_fnequal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1167:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1168:{
    #####:    #####: 1169:   nir_const_value _dst_val = { {0, } };
        -:        -: 1170:
    #####:    #####: 1171:      switch (bit_size) {
        -:        -: 1172:      case 16: {
        -:        -: 1173:         
        -:        -: 1174:   
        -:        -: 1175:
        -:        -: 1176:
    #####:    #####: 1177:      const struct float16_vec src0 = {
    #####:    #####: 1178:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 1179:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 1180:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -: 1181:         0,
        -:        -: 1182:      };
        -:        -: 1183:
    #####:    #####: 1184:      const struct float16_vec src1 = {
    #####:    #####: 1185:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 1186:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 1187:            _mesa_half_to_float(_src[1].u16[2]),
        -:        -: 1188:         0,
        -:        -: 1189:      };
        -:        -: 1190:
        -:        -: 1191:      struct bool32_vec dst;
        -:        -: 1192:
    #####:    #####: 1193:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1194:
    #####:    #####: 1195:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1196:
    #####:    #####: 1197:         break;
        -:        -: 1198:      }
        -:        -: 1199:      case 32: {
        -:        -: 1200:         
        -:        -: 1201:   
        -:        -: 1202:
        -:        -: 1203:
    #####:    #####: 1204:      const struct float32_vec src0 = {
    #####:    #####: 1205:            _src[0].f32[0],
    #####:    #####: 1206:            _src[0].f32[1],
    #####:    #####: 1207:            _src[0].f32[2],
        -:        -: 1208:         0,
        -:        -: 1209:      };
        -:        -: 1210:
    #####:    #####: 1211:      const struct float32_vec src1 = {
    #####:    #####: 1212:            _src[1].f32[0],
    #####:    #####: 1213:            _src[1].f32[1],
    #####:    #####: 1214:            _src[1].f32[2],
        -:        -: 1215:         0,
        -:        -: 1216:      };
        -:        -: 1217:
        -:        -: 1218:      struct bool32_vec dst;
        -:        -: 1219:
    #####:    #####: 1220:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1221:
    #####:    #####: 1222:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1223:
    #####:    #####: 1224:         break;
        -:        -: 1225:      }
        -:        -: 1226:      case 64: {
        -:        -: 1227:         
        -:        -: 1228:   
        -:        -: 1229:
        -:        -: 1230:
    #####:    #####: 1231:      const struct float64_vec src0 = {
    #####:    #####: 1232:            _src[0].f64[0],
    #####:    #####: 1233:            _src[0].f64[1],
    #####:    #####: 1234:            _src[0].f64[2],
        -:        -: 1235:         0,
        -:        -: 1236:      };
        -:        -: 1237:
    #####:    #####: 1238:      const struct float64_vec src1 = {
    #####:    #####: 1239:            _src[1].f64[0],
    #####:    #####: 1240:            _src[1].f64[1],
    #####:    #####: 1241:            _src[1].f64[2],
        -:        -: 1242:         0,
        -:        -: 1243:      };
        -:        -: 1244:
        -:        -: 1245:      struct bool32_vec dst;
        -:        -: 1246:
    #####:    #####: 1247:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1248:
    #####:    #####: 1249:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1250:
    #####:    #####: 1251:         break;
        -:        -: 1252:      }
        -:        -: 1253:
        -:        -: 1254:      default:
    #####:    #####: 1255:         unreachable("unknown bit width");
        -:        -: 1256:      }
        -:        -: 1257:
    #####:    #####: 1258:   return _dst_val;
        -:        -: 1259:}
        -:        -: 1260:static nir_const_value
    #####:    #####: 1261:evaluate_bany_fnequal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1262:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1263:{
    #####:    #####: 1264:   nir_const_value _dst_val = { {0, } };
        -:        -: 1265:
    #####:    #####: 1266:      switch (bit_size) {
        -:        -: 1267:      case 16: {
        -:        -: 1268:         
        -:        -: 1269:   
        -:        -: 1270:
        -:        -: 1271:
    #####:    #####: 1272:      const struct float16_vec src0 = {
    #####:    #####: 1273:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 1274:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 1275:            _mesa_half_to_float(_src[0].u16[2]),
    #####:    #####: 1276:            _mesa_half_to_float(_src[0].u16[3]),
        -:        -: 1277:      };
        -:        -: 1278:
    #####:    #####: 1279:      const struct float16_vec src1 = {
    #####:    #####: 1280:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 1281:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 1282:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####: 1283:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -: 1284:      };
        -:        -: 1285:
        -:        -: 1286:      struct bool32_vec dst;
        -:        -: 1287:
    #####:    #####: 1288:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1289:
    #####:    #####: 1290:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1291:
    #####:    #####: 1292:         break;
        -:        -: 1293:      }
        -:        -: 1294:      case 32: {
        -:        -: 1295:         
        -:        -: 1296:   
        -:        -: 1297:
        -:        -: 1298:
    #####:    #####: 1299:      const struct float32_vec src0 = {
    #####:    #####: 1300:            _src[0].f32[0],
    #####:    #####: 1301:            _src[0].f32[1],
    #####:    #####: 1302:            _src[0].f32[2],
    #####:    #####: 1303:            _src[0].f32[3],
        -:        -: 1304:      };
        -:        -: 1305:
    #####:    #####: 1306:      const struct float32_vec src1 = {
    #####:    #####: 1307:            _src[1].f32[0],
    #####:    #####: 1308:            _src[1].f32[1],
    #####:    #####: 1309:            _src[1].f32[2],
    #####:    #####: 1310:            _src[1].f32[3],
        -:        -: 1311:      };
        -:        -: 1312:
        -:        -: 1313:      struct bool32_vec dst;
        -:        -: 1314:
    #####:    #####: 1315:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1316:
    #####:    #####: 1317:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1318:
    #####:    #####: 1319:         break;
        -:        -: 1320:      }
        -:        -: 1321:      case 64: {
        -:        -: 1322:         
        -:        -: 1323:   
        -:        -: 1324:
        -:        -: 1325:
    #####:    #####: 1326:      const struct float64_vec src0 = {
    #####:    #####: 1327:            _src[0].f64[0],
    #####:    #####: 1328:            _src[0].f64[1],
    #####:    #####: 1329:            _src[0].f64[2],
    #####:    #####: 1330:            _src[0].f64[3],
        -:        -: 1331:      };
        -:        -: 1332:
    #####:    #####: 1333:      const struct float64_vec src1 = {
    #####:    #####: 1334:            _src[1].f64[0],
    #####:    #####: 1335:            _src[1].f64[1],
    #####:    #####: 1336:            _src[1].f64[2],
    #####:    #####: 1337:            _src[1].f64[3],
        -:        -: 1338:      };
        -:        -: 1339:
        -:        -: 1340:      struct bool32_vec dst;
        -:        -: 1341:
    #####:    #####: 1342:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1343:
    #####:    #####: 1344:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1345:
    #####:    #####: 1346:         break;
        -:        -: 1347:      }
        -:        -: 1348:
        -:        -: 1349:      default:
    #####:    #####: 1350:         unreachable("unknown bit width");
        -:        -: 1351:      }
        -:        -: 1352:
    #####:    #####: 1353:   return _dst_val;
        -:        -: 1354:}
        -:        -: 1355:static nir_const_value
    #####:    #####: 1356:evaluate_bany_inequal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1357:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1358:{
    #####:    #####: 1359:   nir_const_value _dst_val = { {0, } };
        -:        -: 1360:
    #####:    #####: 1361:      switch (bit_size) {
        -:        -: 1362:      case 8: {
        -:        -: 1363:         
        -:        -: 1364:   
        -:        -: 1365:
        -:        -: 1366:
    #####:    #####: 1367:      const struct int8_vec src0 = {
    #####:    #####: 1368:            _src[0].i8[0],
    #####:    #####: 1369:            _src[0].i8[1],
        -:        -: 1370:         0,
        -:        -: 1371:         0,
        -:        -: 1372:      };
        -:        -: 1373:
    #####:    #####: 1374:      const struct int8_vec src1 = {
    #####:    #####: 1375:            _src[1].i8[0],
    #####:    #####: 1376:            _src[1].i8[1],
        -:        -: 1377:         0,
        -:        -: 1378:         0,
        -:        -: 1379:      };
        -:        -: 1380:
        -:        -: 1381:      struct bool32_vec dst;
        -:        -: 1382:
    #####:    #####: 1383:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1384:
    #####:    #####: 1385:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1386:
    #####:    #####: 1387:         break;
        -:        -: 1388:      }
        -:        -: 1389:      case 16: {
        -:        -: 1390:         
        -:        -: 1391:   
        -:        -: 1392:
        -:        -: 1393:
    #####:    #####: 1394:      const struct int16_vec src0 = {
    #####:    #####: 1395:            _src[0].i16[0],
    #####:    #####: 1396:            _src[0].i16[1],
        -:        -: 1397:         0,
        -:        -: 1398:         0,
        -:        -: 1399:      };
        -:        -: 1400:
    #####:    #####: 1401:      const struct int16_vec src1 = {
    #####:    #####: 1402:            _src[1].i16[0],
    #####:    #####: 1403:            _src[1].i16[1],
        -:        -: 1404:         0,
        -:        -: 1405:         0,
        -:        -: 1406:      };
        -:        -: 1407:
        -:        -: 1408:      struct bool32_vec dst;
        -:        -: 1409:
    #####:    #####: 1410:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1411:
    #####:    #####: 1412:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1413:
    #####:    #####: 1414:         break;
        -:        -: 1415:      }
        -:        -: 1416:      case 32: {
        -:        -: 1417:         
        -:        -: 1418:   
        -:        -: 1419:
        -:        -: 1420:
    #####:    #####: 1421:      const struct int32_vec src0 = {
    #####:    #####: 1422:            _src[0].i32[0],
    #####:    #####: 1423:            _src[0].i32[1],
        -:        -: 1424:         0,
        -:        -: 1425:         0,
        -:        -: 1426:      };
        -:        -: 1427:
    #####:    #####: 1428:      const struct int32_vec src1 = {
    #####:    #####: 1429:            _src[1].i32[0],
    #####:    #####: 1430:            _src[1].i32[1],
        -:        -: 1431:         0,
        -:        -: 1432:         0,
        -:        -: 1433:      };
        -:        -: 1434:
        -:        -: 1435:      struct bool32_vec dst;
        -:        -: 1436:
    #####:    #####: 1437:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1438:
    #####:    #####: 1439:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1440:
    #####:    #####: 1441:         break;
        -:        -: 1442:      }
        -:        -: 1443:      case 64: {
        -:        -: 1444:         
        -:        -: 1445:   
        -:        -: 1446:
        -:        -: 1447:
    #####:    #####: 1448:      const struct int64_vec src0 = {
    #####:    #####: 1449:            _src[0].i64[0],
    #####:    #####: 1450:            _src[0].i64[1],
        -:        -: 1451:         0,
        -:        -: 1452:         0,
        -:        -: 1453:      };
        -:        -: 1454:
    #####:    #####: 1455:      const struct int64_vec src1 = {
    #####:    #####: 1456:            _src[1].i64[0],
    #####:    #####: 1457:            _src[1].i64[1],
        -:        -: 1458:         0,
        -:        -: 1459:         0,
        -:        -: 1460:      };
        -:        -: 1461:
        -:        -: 1462:      struct bool32_vec dst;
        -:        -: 1463:
    #####:    #####: 1464:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y));
        -:        -: 1465:
    #####:    #####: 1466:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1467:
    #####:    #####: 1468:         break;
        -:        -: 1469:      }
        -:        -: 1470:
        -:        -: 1471:      default:
    #####:    #####: 1472:         unreachable("unknown bit width");
        -:        -: 1473:      }
        -:        -: 1474:
    #####:    #####: 1475:   return _dst_val;
        -:        -: 1476:}
        -:        -: 1477:static nir_const_value
    #####:    #####: 1478:evaluate_bany_inequal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1479:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1480:{
    #####:    #####: 1481:   nir_const_value _dst_val = { {0, } };
        -:        -: 1482:
    #####:    #####: 1483:      switch (bit_size) {
        -:        -: 1484:      case 8: {
        -:        -: 1485:         
        -:        -: 1486:   
        -:        -: 1487:
        -:        -: 1488:
    #####:    #####: 1489:      const struct int8_vec src0 = {
    #####:    #####: 1490:            _src[0].i8[0],
    #####:    #####: 1491:            _src[0].i8[1],
    #####:    #####: 1492:            _src[0].i8[2],
        -:        -: 1493:         0,
        -:        -: 1494:      };
        -:        -: 1495:
    #####:    #####: 1496:      const struct int8_vec src1 = {
    #####:    #####: 1497:            _src[1].i8[0],
    #####:    #####: 1498:            _src[1].i8[1],
    #####:    #####: 1499:            _src[1].i8[2],
        -:        -: 1500:         0,
        -:        -: 1501:      };
        -:        -: 1502:
        -:        -: 1503:      struct bool32_vec dst;
        -:        -: 1504:
    #####:    #####: 1505:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1506:
    #####:    #####: 1507:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1508:
    #####:    #####: 1509:         break;
        -:        -: 1510:      }
        -:        -: 1511:      case 16: {
        -:        -: 1512:         
        -:        -: 1513:   
        -:        -: 1514:
        -:        -: 1515:
    #####:    #####: 1516:      const struct int16_vec src0 = {
    #####:    #####: 1517:            _src[0].i16[0],
    #####:    #####: 1518:            _src[0].i16[1],
    #####:    #####: 1519:            _src[0].i16[2],
        -:        -: 1520:         0,
        -:        -: 1521:      };
        -:        -: 1522:
    #####:    #####: 1523:      const struct int16_vec src1 = {
    #####:    #####: 1524:            _src[1].i16[0],
    #####:    #####: 1525:            _src[1].i16[1],
    #####:    #####: 1526:            _src[1].i16[2],
        -:        -: 1527:         0,
        -:        -: 1528:      };
        -:        -: 1529:
        -:        -: 1530:      struct bool32_vec dst;
        -:        -: 1531:
    #####:    #####: 1532:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1533:
    #####:    #####: 1534:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1535:
    #####:    #####: 1536:         break;
        -:        -: 1537:      }
        -:        -: 1538:      case 32: {
        -:        -: 1539:         
        -:        -: 1540:   
        -:        -: 1541:
        -:        -: 1542:
    #####:    #####: 1543:      const struct int32_vec src0 = {
    #####:    #####: 1544:            _src[0].i32[0],
    #####:    #####: 1545:            _src[0].i32[1],
    #####:    #####: 1546:            _src[0].i32[2],
        -:        -: 1547:         0,
        -:        -: 1548:      };
        -:        -: 1549:
    #####:    #####: 1550:      const struct int32_vec src1 = {
    #####:    #####: 1551:            _src[1].i32[0],
    #####:    #####: 1552:            _src[1].i32[1],
    #####:    #####: 1553:            _src[1].i32[2],
        -:        -: 1554:         0,
        -:        -: 1555:      };
        -:        -: 1556:
        -:        -: 1557:      struct bool32_vec dst;
        -:        -: 1558:
    #####:    #####: 1559:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1560:
    #####:    #####: 1561:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1562:
    #####:    #####: 1563:         break;
        -:        -: 1564:      }
        -:        -: 1565:      case 64: {
        -:        -: 1566:         
        -:        -: 1567:   
        -:        -: 1568:
        -:        -: 1569:
    #####:    #####: 1570:      const struct int64_vec src0 = {
    #####:    #####: 1571:            _src[0].i64[0],
    #####:    #####: 1572:            _src[0].i64[1],
    #####:    #####: 1573:            _src[0].i64[2],
        -:        -: 1574:         0,
        -:        -: 1575:      };
        -:        -: 1576:
    #####:    #####: 1577:      const struct int64_vec src1 = {
    #####:    #####: 1578:            _src[1].i64[0],
    #####:    #####: 1579:            _src[1].i64[1],
    #####:    #####: 1580:            _src[1].i64[2],
        -:        -: 1581:         0,
        -:        -: 1582:      };
        -:        -: 1583:
        -:        -: 1584:      struct bool32_vec dst;
        -:        -: 1585:
    #####:    #####: 1586:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z));
        -:        -: 1587:
    #####:    #####: 1588:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1589:
    #####:    #####: 1590:         break;
        -:        -: 1591:      }
        -:        -: 1592:
        -:        -: 1593:      default:
    #####:    #####: 1594:         unreachable("unknown bit width");
        -:        -: 1595:      }
        -:        -: 1596:
    #####:    #####: 1597:   return _dst_val;
        -:        -: 1598:}
        -:        -: 1599:static nir_const_value
    #####:    #####: 1600:evaluate_bany_inequal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1601:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1602:{
    #####:    #####: 1603:   nir_const_value _dst_val = { {0, } };
        -:        -: 1604:
    #####:    #####: 1605:      switch (bit_size) {
        -:        -: 1606:      case 8: {
        -:        -: 1607:         
        -:        -: 1608:   
        -:        -: 1609:
        -:        -: 1610:
    #####:    #####: 1611:      const struct int8_vec src0 = {
    #####:    #####: 1612:            _src[0].i8[0],
    #####:    #####: 1613:            _src[0].i8[1],
    #####:    #####: 1614:            _src[0].i8[2],
    #####:    #####: 1615:            _src[0].i8[3],
        -:        -: 1616:      };
        -:        -: 1617:
    #####:    #####: 1618:      const struct int8_vec src1 = {
    #####:    #####: 1619:            _src[1].i8[0],
    #####:    #####: 1620:            _src[1].i8[1],
    #####:    #####: 1621:            _src[1].i8[2],
    #####:    #####: 1622:            _src[1].i8[3],
        -:        -: 1623:      };
        -:        -: 1624:
        -:        -: 1625:      struct bool32_vec dst;
        -:        -: 1626:
    #####:    #####: 1627:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1628:
    #####:    #####: 1629:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1630:
    #####:    #####: 1631:         break;
        -:        -: 1632:      }
        -:        -: 1633:      case 16: {
        -:        -: 1634:         
        -:        -: 1635:   
        -:        -: 1636:
        -:        -: 1637:
    #####:    #####: 1638:      const struct int16_vec src0 = {
    #####:    #####: 1639:            _src[0].i16[0],
    #####:    #####: 1640:            _src[0].i16[1],
    #####:    #####: 1641:            _src[0].i16[2],
    #####:    #####: 1642:            _src[0].i16[3],
        -:        -: 1643:      };
        -:        -: 1644:
    #####:    #####: 1645:      const struct int16_vec src1 = {
    #####:    #####: 1646:            _src[1].i16[0],
    #####:    #####: 1647:            _src[1].i16[1],
    #####:    #####: 1648:            _src[1].i16[2],
    #####:    #####: 1649:            _src[1].i16[3],
        -:        -: 1650:      };
        -:        -: 1651:
        -:        -: 1652:      struct bool32_vec dst;
        -:        -: 1653:
    #####:    #####: 1654:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1655:
    #####:    #####: 1656:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1657:
    #####:    #####: 1658:         break;
        -:        -: 1659:      }
        -:        -: 1660:      case 32: {
        -:        -: 1661:         
        -:        -: 1662:   
        -:        -: 1663:
        -:        -: 1664:
    #####:    #####: 1665:      const struct int32_vec src0 = {
    #####:    #####: 1666:            _src[0].i32[0],
    #####:    #####: 1667:            _src[0].i32[1],
    #####:    #####: 1668:            _src[0].i32[2],
    #####:    #####: 1669:            _src[0].i32[3],
        -:        -: 1670:      };
        -:        -: 1671:
    #####:    #####: 1672:      const struct int32_vec src1 = {
    #####:    #####: 1673:            _src[1].i32[0],
    #####:    #####: 1674:            _src[1].i32[1],
    #####:    #####: 1675:            _src[1].i32[2],
    #####:    #####: 1676:            _src[1].i32[3],
        -:        -: 1677:      };
        -:        -: 1678:
        -:        -: 1679:      struct bool32_vec dst;
        -:        -: 1680:
    #####:    #####: 1681:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1682:
    #####:    #####: 1683:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1684:
    #####:    #####: 1685:         break;
        -:        -: 1686:      }
        -:        -: 1687:      case 64: {
        -:        -: 1688:         
        -:        -: 1689:   
        -:        -: 1690:
        -:        -: 1691:
    #####:    #####: 1692:      const struct int64_vec src0 = {
    #####:    #####: 1693:            _src[0].i64[0],
    #####:    #####: 1694:            _src[0].i64[1],
    #####:    #####: 1695:            _src[0].i64[2],
    #####:    #####: 1696:            _src[0].i64[3],
        -:        -: 1697:      };
        -:        -: 1698:
    #####:    #####: 1699:      const struct int64_vec src1 = {
    #####:    #####: 1700:            _src[1].i64[0],
    #####:    #####: 1701:            _src[1].i64[1],
    #####:    #####: 1702:            _src[1].i64[2],
    #####:    #####: 1703:            _src[1].i64[3],
        -:        -: 1704:      };
        -:        -: 1705:
        -:        -: 1706:      struct bool32_vec dst;
        -:        -: 1707:
    #####:    #####: 1708:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w));
        -:        -: 1709:
    #####:    #####: 1710:            _dst_val.u32[0] = dst.x ? NIR_TRUE : NIR_FALSE;
        -:        -: 1711:
    #####:    #####: 1712:         break;
        -:        -: 1713:      }
        -:        -: 1714:
        -:        -: 1715:      default:
    #####:    #####: 1716:         unreachable("unknown bit width");
        -:        -: 1717:      }
        -:        -: 1718:
    #####:    #####: 1719:   return _dst_val;
        -:        -: 1720:}
        -:        -: 1721:static nir_const_value
    #####:    #####: 1722:evaluate_bcsel(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1723:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1724:{
    #####:    #####: 1725:   nir_const_value _dst_val = { {0, } };
        -:        -: 1726:
    #####:    #####: 1727:      switch (bit_size) {
        -:        -: 1728:      case 8: {
        -:        -: 1729:         
        -:        -: 1730:   
        -:        -: 1731:
        -:        -: 1732:                           
    #####:    #####: 1733:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1734:               const bool src0 = _src[0].u32[_i] != 0;
    #####:    #####: 1735:               const uint8_t src1 =
    #####:    #####: 1736:                  _src[1].u8[_i];
    #####:    #####: 1737:               const uint8_t src2 =
    #####:    #####: 1738:                  _src[2].u8[_i];
        -:        -: 1739:
    #####:    #####: 1740:            uint8_t dst = src0 ? src1 : src2;
        -:        -: 1741:
    #####:    #####: 1742:            _dst_val.u8[_i] = dst;
        -:        -: 1743:      }
        -:        -: 1744:
    #####:    #####: 1745:         break;
        -:        -: 1746:      }
        -:        -: 1747:      case 16: {
        -:        -: 1748:         
        -:        -: 1749:   
        -:        -: 1750:
        -:        -: 1751:                           
    #####:    #####: 1752:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1753:               const bool src0 = _src[0].u32[_i] != 0;
    #####:    #####: 1754:               const uint16_t src1 =
    #####:    #####: 1755:                  _src[1].u16[_i];
    #####:    #####: 1756:               const uint16_t src2 =
    #####:    #####: 1757:                  _src[2].u16[_i];
        -:        -: 1758:
    #####:    #####: 1759:            uint16_t dst = src0 ? src1 : src2;
        -:        -: 1760:
    #####:    #####: 1761:            _dst_val.u16[_i] = dst;
        -:        -: 1762:      }
        -:        -: 1763:
    #####:    #####: 1764:         break;
        -:        -: 1765:      }
        -:        -: 1766:      case 32: {
        -:        -: 1767:         
        -:        -: 1768:   
        -:        -: 1769:
        -:        -: 1770:                           
    #####:    #####: 1771:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1772:               const bool src0 = _src[0].u32[_i] != 0;
    #####:    #####: 1773:               const uint32_t src1 =
    #####:    #####: 1774:                  _src[1].u32[_i];
    #####:    #####: 1775:               const uint32_t src2 =
    #####:    #####: 1776:                  _src[2].u32[_i];
        -:        -: 1777:
    #####:    #####: 1778:            uint32_t dst = src0 ? src1 : src2;
        -:        -: 1779:
    #####:    #####: 1780:            _dst_val.u32[_i] = dst;
        -:        -: 1781:      }
        -:        -: 1782:
    #####:    #####: 1783:         break;
        -:        -: 1784:      }
        -:        -: 1785:      case 64: {
        -:        -: 1786:         
        -:        -: 1787:   
        -:        -: 1788:
        -:        -: 1789:                           
    #####:    #####: 1790:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1791:               const bool src0 = _src[0].u32[_i] != 0;
    #####:    #####: 1792:               const uint64_t src1 =
    #####:    #####: 1793:                  _src[1].u64[_i];
    #####:    #####: 1794:               const uint64_t src2 =
    #####:    #####: 1795:                  _src[2].u64[_i];
        -:        -: 1796:
    #####:    #####: 1797:            uint64_t dst = src0 ? src1 : src2;
        -:        -: 1798:
    #####:    #####: 1799:            _dst_val.u64[_i] = dst;
        -:        -: 1800:      }
        -:        -: 1801:
    #####:    #####: 1802:         break;
        -:        -: 1803:      }
        -:        -: 1804:
        -:        -: 1805:      default:
    #####:    #####: 1806:         unreachable("unknown bit width");
        -:        -: 1807:      }
        -:        -: 1808:
    #####:    #####: 1809:   return _dst_val;
        -:        -: 1810:}
        -:        -: 1811:static nir_const_value
    #####:    #####: 1812:evaluate_bfi(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1813:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1814:{
    #####:    #####: 1815:   nir_const_value _dst_val = { {0, } };
        -:        -: 1816:
        -:        -: 1817:      
        -:        -: 1818:   
        -:        -: 1819:
        -:        -: 1820:                           
    #####:    #####: 1821:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1822:               const uint32_t src0 =
        -:        -: 1823:                  _src[0].u32[_i];
    #####:    #####: 1824:               const uint32_t src1 =
    #####:    #####: 1825:                  _src[1].u32[_i];
    #####:    #####: 1826:               const uint32_t src2 =
    #####:    #####: 1827:                  _src[2].u32[_i];
        -:        -: 1828:
        -:        -: 1829:            uint32_t dst;
        -:        -: 1830:
        -:        -: 1831:            
    #####:    #####: 1832:unsigned mask = src0, insert = src1, base = src2;
    #####:    #####: 1833:if (mask == 0) {
    #####:    #####: 1834:   dst = base;
        -:        -: 1835:} else {
    #####:    #####: 1836:   unsigned tmp = mask;
    #####:    #####: 1837:   while (!(tmp & 1)) {
    #####:    #####: 1838:      tmp >>= 1;
    #####:    #####: 1839:      insert <<= 1;
        -:        -: 1840:   }
    #####:    #####: 1841:   dst = (base & ~mask) | (insert & mask);
        -:        -: 1842:}
        -:        -: 1843:
        -:        -: 1844:
    #####:    #####: 1845:            _dst_val.u32[_i] = dst;
        -:        -: 1846:      }
        -:        -: 1847:
        -:        -: 1848:
    #####:    #####: 1849:   return _dst_val;
        -:        -: 1850:}
        -:        -: 1851:static nir_const_value
    #####:    #####: 1852:evaluate_bfm(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1853:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1854:{
    #####:    #####: 1855:   nir_const_value _dst_val = { {0, } };
        -:        -: 1856:
        -:        -: 1857:      
        -:        -: 1858:   
        -:        -: 1859:
        -:        -: 1860:                  
    #####:    #####: 1861:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1862:               const int32_t src0 =
        -:        -: 1863:                  _src[0].i32[_i];
    #####:    #####: 1864:               const int32_t src1 =
    #####:    #####: 1865:                  _src[1].i32[_i];
        -:        -: 1866:
        -:        -: 1867:            uint32_t dst;
        -:        -: 1868:
        -:        -: 1869:            
    #####:    #####: 1870:int bits = src0, offset = src1;
    #####:    #####: 1871:if (offset < 0 || bits < 0 || offset > 31 || bits > 31 || offset + bits > 32)
    #####:    #####: 1872:   dst = 0; /* undefined */
        -:        -: 1873:else
    #####:    #####: 1874:   dst = ((1u << bits) - 1) << offset;
        -:        -: 1875:
        -:        -: 1876:
    #####:    #####: 1877:            _dst_val.u32[_i] = dst;
        -:        -: 1878:      }
        -:        -: 1879:
        -:        -: 1880:
    #####:    #####: 1881:   return _dst_val;
        -:        -: 1882:}
        -:        -: 1883:static nir_const_value
    #####:    #####: 1884:evaluate_bit_count(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1885:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1886:{
    #####:    #####: 1887:   nir_const_value _dst_val = { {0, } };
        -:        -: 1888:
        -:        -: 1889:      
        -:        -: 1890:   
        -:        -: 1891:
        -:        -: 1892:         
    #####:    #####: 1893:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1894:               const uint32_t src0 =
        -:        -: 1895:                  _src[0].u32[_i];
        -:        -: 1896:
        -:        -: 1897:            uint32_t dst;
        -:        -: 1898:
        -:        -: 1899:            
    #####:    #####: 1900:dst = 0;
    #####:    #####: 1901:for (unsigned bit = 0; bit < 32; bit++) {
    #####:    #####: 1902:   if ((src0 >> bit) & 1)
    #####:    #####: 1903:      dst++;
        -:        -: 1904:}
        -:        -: 1905:
        -:        -: 1906:
    #####:    #####: 1907:            _dst_val.u32[_i] = dst;
        -:        -: 1908:      }
        -:        -: 1909:
        -:        -: 1910:
    #####:    #####: 1911:   return _dst_val;
        -:        -: 1912:}
        -:        -: 1913:static nir_const_value
    #####:    #####: 1914:evaluate_bitfield_insert(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1915:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1916:{
    #####:    #####: 1917:   nir_const_value _dst_val = { {0, } };
        -:        -: 1918:
        -:        -: 1919:      
        -:        -: 1920:   
        -:        -: 1921:
        -:        -: 1922:                                    
    #####:    #####: 1923:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1924:               const uint32_t src0 =
        -:        -: 1925:                  _src[0].u32[_i];
    #####:    #####: 1926:               const uint32_t src1 =
    #####:    #####: 1927:                  _src[1].u32[_i];
    #####:    #####: 1928:               const int32_t src2 =
    #####:    #####: 1929:                  _src[2].i32[_i];
    #####:    #####: 1930:               const int32_t src3 =
    #####:    #####: 1931:                  _src[3].i32[_i];
        -:        -: 1932:
        -:        -: 1933:            uint32_t dst;
        -:        -: 1934:
        -:        -: 1935:            
    #####:    #####: 1936:unsigned base = src0, insert = src1;
    #####:    #####: 1937:int offset = src2, bits = src3;
    #####:    #####: 1938:if (bits == 0) {
    #####:    #####: 1939:   dst = 0;
    #####:    #####: 1940:} else if (offset < 0 || bits < 0 || bits + offset > 32) {
    #####:    #####: 1941:   dst = 0;
        -:        -: 1942:} else {
    #####:    #####: 1943:   unsigned mask = ((1ull << bits) - 1) << offset;
    #####:    #####: 1944:   dst = (base & ~mask) | ((insert << bits) & mask);
        -:        -: 1945:}
        -:        -: 1946:
        -:        -: 1947:
    #####:    #####: 1948:            _dst_val.u32[_i] = dst;
        -:        -: 1949:      }
        -:        -: 1950:
        -:        -: 1951:
    #####:    #####: 1952:   return _dst_val;
        -:        -: 1953:}
        -:        -: 1954:static nir_const_value
    #####:    #####: 1955:evaluate_bitfield_reverse(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1956:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1957:{
    #####:    #####: 1958:   nir_const_value _dst_val = { {0, } };
        -:        -: 1959:
        -:        -: 1960:      
        -:        -: 1961:   
        -:        -: 1962:
        -:        -: 1963:         
    #####:    #####: 1964:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1965:               const uint32_t src0 =
        -:        -: 1966:                  _src[0].u32[_i];
        -:        -: 1967:
        -:        -: 1968:            uint32_t dst;
        -:        -: 1969:
        -:        -: 1970:            
        -:        -: 1971:/* we're not winning any awards for speed here, but that's ok */
    #####:    #####: 1972:dst = 0;
    #####:    #####: 1973:for (unsigned bit = 0; bit < 32; bit++)
    #####:    #####: 1974:   dst |= ((src0 >> bit) & 1) << (31 - bit);
        -:        -: 1975:
        -:        -: 1976:
    #####:    #####: 1977:            _dst_val.u32[_i] = dst;
        -:        -: 1978:      }
        -:        -: 1979:
        -:        -: 1980:
    #####:    #####: 1981:   return _dst_val;
        -:        -: 1982:}
        -:        -: 1983:static nir_const_value
    #####:    #####: 1984:evaluate_extract_i16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 1985:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 1986:{
    #####:    #####: 1987:   nir_const_value _dst_val = { {0, } };
        -:        -: 1988:
    #####:    #####: 1989:      switch (bit_size) {
        -:        -: 1990:      case 8: {
        -:        -: 1991:         
        -:        -: 1992:   
        -:        -: 1993:
        -:        -: 1994:                  
    #####:    #####: 1995:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 1996:               const int8_t src0 =
        -:        -: 1997:                  _src[0].i8[_i];
    #####:    #####: 1998:               const int8_t src1 =
    #####:    #####: 1999:                  _src[1].i8[_i];
        -:        -: 2000:
    #####:    #####: 2001:            int8_t dst = (int16_t)(src0 >> (src1 * 16));
        -:        -: 2002:
    #####:    #####: 2003:            _dst_val.i8[_i] = dst;
        -:        -: 2004:      }
        -:        -: 2005:
    #####:    #####: 2006:         break;
        -:        -: 2007:      }
        -:        -: 2008:      case 16: {
        -:        -: 2009:         
        -:        -: 2010:   
        -:        -: 2011:
        -:        -: 2012:                  
    #####:    #####: 2013:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2014:               const int16_t src0 =
        -:        -: 2015:                  _src[0].i16[_i];
    #####:    #####: 2016:               const int16_t src1 =
    #####:    #####: 2017:                  _src[1].i16[_i];
        -:        -: 2018:
    #####:    #####: 2019:            int16_t dst = (int16_t)(src0 >> (src1 * 16));
        -:        -: 2020:
    #####:    #####: 2021:            _dst_val.i16[_i] = dst;
        -:        -: 2022:      }
        -:        -: 2023:
    #####:    #####: 2024:         break;
        -:        -: 2025:      }
        -:        -: 2026:      case 32: {
        -:        -: 2027:         
        -:        -: 2028:   
        -:        -: 2029:
        -:        -: 2030:                  
    #####:    #####: 2031:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2032:               const int32_t src0 =
        -:        -: 2033:                  _src[0].i32[_i];
    #####:    #####: 2034:               const int32_t src1 =
    #####:    #####: 2035:                  _src[1].i32[_i];
        -:        -: 2036:
    #####:    #####: 2037:            int32_t dst = (int16_t)(src0 >> (src1 * 16));
        -:        -: 2038:
    #####:    #####: 2039:            _dst_val.i32[_i] = dst;
        -:        -: 2040:      }
        -:        -: 2041:
    #####:    #####: 2042:         break;
        -:        -: 2043:      }
        -:        -: 2044:      case 64: {
        -:        -: 2045:         
        -:        -: 2046:   
        -:        -: 2047:
        -:        -: 2048:                  
    #####:    #####: 2049:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2050:               const int64_t src0 =
        -:        -: 2051:                  _src[0].i64[_i];
    #####:    #####: 2052:               const int64_t src1 =
    #####:    #####: 2053:                  _src[1].i64[_i];
        -:        -: 2054:
    #####:    #####: 2055:            int64_t dst = (int16_t)(src0 >> (src1 * 16));
        -:        -: 2056:
    #####:    #####: 2057:            _dst_val.i64[_i] = dst;
        -:        -: 2058:      }
        -:        -: 2059:
    #####:    #####: 2060:         break;
        -:        -: 2061:      }
        -:        -: 2062:
        -:        -: 2063:      default:
    #####:    #####: 2064:         unreachable("unknown bit width");
        -:        -: 2065:      }
        -:        -: 2066:
    #####:    #####: 2067:   return _dst_val;
        -:        -: 2068:}
        -:        -: 2069:static nir_const_value
    #####:    #####: 2070:evaluate_extract_i8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2071:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2072:{
    #####:    #####: 2073:   nir_const_value _dst_val = { {0, } };
        -:        -: 2074:
    #####:    #####: 2075:      switch (bit_size) {
        -:        -: 2076:      case 8: {
        -:        -: 2077:         
        -:        -: 2078:   
        -:        -: 2079:
        -:        -: 2080:                  
    #####:    #####: 2081:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2082:               const int8_t src0 =
        -:        -: 2083:                  _src[0].i8[_i];
    #####:    #####: 2084:               const int8_t src1 =
    #####:    #####: 2085:                  _src[1].i8[_i];
        -:        -: 2086:
    #####:    #####: 2087:            int8_t dst = (int8_t)(src0 >> (src1 * 8));
        -:        -: 2088:
    #####:    #####: 2089:            _dst_val.i8[_i] = dst;
        -:        -: 2090:      }
        -:        -: 2091:
    #####:    #####: 2092:         break;
        -:        -: 2093:      }
        -:        -: 2094:      case 16: {
        -:        -: 2095:         
        -:        -: 2096:   
        -:        -: 2097:
        -:        -: 2098:                  
    #####:    #####: 2099:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2100:               const int16_t src0 =
        -:        -: 2101:                  _src[0].i16[_i];
    #####:    #####: 2102:               const int16_t src1 =
    #####:    #####: 2103:                  _src[1].i16[_i];
        -:        -: 2104:
    #####:    #####: 2105:            int16_t dst = (int8_t)(src0 >> (src1 * 8));
        -:        -: 2106:
    #####:    #####: 2107:            _dst_val.i16[_i] = dst;
        -:        -: 2108:      }
        -:        -: 2109:
    #####:    #####: 2110:         break;
        -:        -: 2111:      }
        -:        -: 2112:      case 32: {
        -:        -: 2113:         
        -:        -: 2114:   
        -:        -: 2115:
        -:        -: 2116:                  
    #####:    #####: 2117:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2118:               const int32_t src0 =
        -:        -: 2119:                  _src[0].i32[_i];
    #####:    #####: 2120:               const int32_t src1 =
    #####:    #####: 2121:                  _src[1].i32[_i];
        -:        -: 2122:
    #####:    #####: 2123:            int32_t dst = (int8_t)(src0 >> (src1 * 8));
        -:        -: 2124:
    #####:    #####: 2125:            _dst_val.i32[_i] = dst;
        -:        -: 2126:      }
        -:        -: 2127:
    #####:    #####: 2128:         break;
        -:        -: 2129:      }
        -:        -: 2130:      case 64: {
        -:        -: 2131:         
        -:        -: 2132:   
        -:        -: 2133:
        -:        -: 2134:                  
    #####:    #####: 2135:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2136:               const int64_t src0 =
        -:        -: 2137:                  _src[0].i64[_i];
    #####:    #####: 2138:               const int64_t src1 =
    #####:    #####: 2139:                  _src[1].i64[_i];
        -:        -: 2140:
    #####:    #####: 2141:            int64_t dst = (int8_t)(src0 >> (src1 * 8));
        -:        -: 2142:
    #####:    #####: 2143:            _dst_val.i64[_i] = dst;
        -:        -: 2144:      }
        -:        -: 2145:
    #####:    #####: 2146:         break;
        -:        -: 2147:      }
        -:        -: 2148:
        -:        -: 2149:      default:
    #####:    #####: 2150:         unreachable("unknown bit width");
        -:        -: 2151:      }
        -:        -: 2152:
    #####:    #####: 2153:   return _dst_val;
        -:        -: 2154:}
        -:        -: 2155:static nir_const_value
    #####:    #####: 2156:evaluate_extract_u16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2157:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2158:{
    #####:    #####: 2159:   nir_const_value _dst_val = { {0, } };
        -:        -: 2160:
    #####:    #####: 2161:      switch (bit_size) {
        -:        -: 2162:      case 8: {
        -:        -: 2163:         
        -:        -: 2164:   
        -:        -: 2165:
        -:        -: 2166:                  
    #####:    #####: 2167:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2168:               const uint8_t src0 =
        -:        -: 2169:                  _src[0].u8[_i];
    #####:    #####: 2170:               const uint8_t src1 =
    #####:    #####: 2171:                  _src[1].u8[_i];
        -:        -: 2172:
    #####:    #####: 2173:            uint8_t dst = (uint16_t)(src0 >> (src1 * 16));
        -:        -: 2174:
    #####:    #####: 2175:            _dst_val.u8[_i] = dst;
        -:        -: 2176:      }
        -:        -: 2177:
    #####:    #####: 2178:         break;
        -:        -: 2179:      }
        -:        -: 2180:      case 16: {
        -:        -: 2181:         
        -:        -: 2182:   
        -:        -: 2183:
        -:        -: 2184:                  
    #####:    #####: 2185:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2186:               const uint16_t src0 =
        -:        -: 2187:                  _src[0].u16[_i];
    #####:    #####: 2188:               const uint16_t src1 =
    #####:    #####: 2189:                  _src[1].u16[_i];
        -:        -: 2190:
    #####:    #####: 2191:            uint16_t dst = (uint16_t)(src0 >> (src1 * 16));
        -:        -: 2192:
    #####:    #####: 2193:            _dst_val.u16[_i] = dst;
        -:        -: 2194:      }
        -:        -: 2195:
    #####:    #####: 2196:         break;
        -:        -: 2197:      }
        -:        -: 2198:      case 32: {
        -:        -: 2199:         
        -:        -: 2200:   
        -:        -: 2201:
        -:        -: 2202:                  
    #####:    #####: 2203:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2204:               const uint32_t src0 =
        -:        -: 2205:                  _src[0].u32[_i];
    #####:    #####: 2206:               const uint32_t src1 =
    #####:    #####: 2207:                  _src[1].u32[_i];
        -:        -: 2208:
    #####:    #####: 2209:            uint32_t dst = (uint16_t)(src0 >> (src1 * 16));
        -:        -: 2210:
    #####:    #####: 2211:            _dst_val.u32[_i] = dst;
        -:        -: 2212:      }
        -:        -: 2213:
    #####:    #####: 2214:         break;
        -:        -: 2215:      }
        -:        -: 2216:      case 64: {
        -:        -: 2217:         
        -:        -: 2218:   
        -:        -: 2219:
        -:        -: 2220:                  
    #####:    #####: 2221:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2222:               const uint64_t src0 =
        -:        -: 2223:                  _src[0].u64[_i];
    #####:    #####: 2224:               const uint64_t src1 =
    #####:    #####: 2225:                  _src[1].u64[_i];
        -:        -: 2226:
    #####:    #####: 2227:            uint64_t dst = (uint16_t)(src0 >> (src1 * 16));
        -:        -: 2228:
    #####:    #####: 2229:            _dst_val.u64[_i] = dst;
        -:        -: 2230:      }
        -:        -: 2231:
    #####:    #####: 2232:         break;
        -:        -: 2233:      }
        -:        -: 2234:
        -:        -: 2235:      default:
    #####:    #####: 2236:         unreachable("unknown bit width");
        -:        -: 2237:      }
        -:        -: 2238:
    #####:    #####: 2239:   return _dst_val;
        -:        -: 2240:}
        -:        -: 2241:static nir_const_value
    #####:    #####: 2242:evaluate_extract_u8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2243:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2244:{
    #####:    #####: 2245:   nir_const_value _dst_val = { {0, } };
        -:        -: 2246:
    #####:    #####: 2247:      switch (bit_size) {
        -:        -: 2248:      case 8: {
        -:        -: 2249:         
        -:        -: 2250:   
        -:        -: 2251:
        -:        -: 2252:                  
    #####:    #####: 2253:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2254:               const uint8_t src0 =
        -:        -: 2255:                  _src[0].u8[_i];
    #####:    #####: 2256:               const uint8_t src1 =
    #####:    #####: 2257:                  _src[1].u8[_i];
        -:        -: 2258:
    #####:    #####: 2259:            uint8_t dst = (uint8_t)(src0 >> (src1 * 8));
        -:        -: 2260:
    #####:    #####: 2261:            _dst_val.u8[_i] = dst;
        -:        -: 2262:      }
        -:        -: 2263:
    #####:    #####: 2264:         break;
        -:        -: 2265:      }
        -:        -: 2266:      case 16: {
        -:        -: 2267:         
        -:        -: 2268:   
        -:        -: 2269:
        -:        -: 2270:                  
    #####:    #####: 2271:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2272:               const uint16_t src0 =
        -:        -: 2273:                  _src[0].u16[_i];
    #####:    #####: 2274:               const uint16_t src1 =
    #####:    #####: 2275:                  _src[1].u16[_i];
        -:        -: 2276:
    #####:    #####: 2277:            uint16_t dst = (uint8_t)(src0 >> (src1 * 8));
        -:        -: 2278:
    #####:    #####: 2279:            _dst_val.u16[_i] = dst;
        -:        -: 2280:      }
        -:        -: 2281:
    #####:    #####: 2282:         break;
        -:        -: 2283:      }
        -:        -: 2284:      case 32: {
        -:        -: 2285:         
        -:        -: 2286:   
        -:        -: 2287:
        -:        -: 2288:                  
    #####:    #####: 2289:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2290:               const uint32_t src0 =
        -:        -: 2291:                  _src[0].u32[_i];
    #####:    #####: 2292:               const uint32_t src1 =
    #####:    #####: 2293:                  _src[1].u32[_i];
        -:        -: 2294:
    #####:    #####: 2295:            uint32_t dst = (uint8_t)(src0 >> (src1 * 8));
        -:        -: 2296:
    #####:    #####: 2297:            _dst_val.u32[_i] = dst;
        -:        -: 2298:      }
        -:        -: 2299:
    #####:    #####: 2300:         break;
        -:        -: 2301:      }
        -:        -: 2302:      case 64: {
        -:        -: 2303:         
        -:        -: 2304:   
        -:        -: 2305:
        -:        -: 2306:                  
    #####:    #####: 2307:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2308:               const uint64_t src0 =
        -:        -: 2309:                  _src[0].u64[_i];
    #####:    #####: 2310:               const uint64_t src1 =
    #####:    #####: 2311:                  _src[1].u64[_i];
        -:        -: 2312:
    #####:    #####: 2313:            uint64_t dst = (uint8_t)(src0 >> (src1 * 8));
        -:        -: 2314:
    #####:    #####: 2315:            _dst_val.u64[_i] = dst;
        -:        -: 2316:      }
        -:        -: 2317:
    #####:    #####: 2318:         break;
        -:        -: 2319:      }
        -:        -: 2320:
        -:        -: 2321:      default:
    #####:    #####: 2322:         unreachable("unknown bit width");
        -:        -: 2323:      }
        -:        -: 2324:
    #####:    #####: 2325:   return _dst_val;
        -:        -: 2326:}
        -:        -: 2327:static nir_const_value
    #####:    #####: 2328:evaluate_f2b(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2329:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2330:{
    #####:    #####: 2331:   nir_const_value _dst_val = { {0, } };
        -:        -: 2332:
    #####:    #####: 2333:      switch (bit_size) {
        -:        -: 2334:      case 16: {
        -:        -: 2335:         
        -:        -: 2336:   
        -:        -: 2337:
        -:        -: 2338:         
    #####:    #####: 2339:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2340:               const float src0 =
    #####:    #####: 2341:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2342:
    #####:    #####: 2343:            bool32_t dst = src0 != 0.0;
        -:        -: 2344:
    #####:    #####: 2345:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 2346:      }
        -:        -: 2347:
    #####:    #####: 2348:         break;
        -:        -: 2349:      }
        -:        -: 2350:      case 32: {
        -:        -: 2351:         
        -:        -: 2352:   
        -:        -: 2353:
        -:        -: 2354:         
    #####:    #####: 2355:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2356:               const float32_t src0 =
        -:        -: 2357:                  _src[0].f32[_i];
        -:        -: 2358:
    #####:    #####: 2359:            bool32_t dst = src0 != 0.0;
        -:        -: 2360:
    #####:    #####: 2361:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 2362:      }
        -:        -: 2363:
    #####:    #####: 2364:         break;
        -:        -: 2365:      }
        -:        -: 2366:      case 64: {
        -:        -: 2367:         
        -:        -: 2368:   
        -:        -: 2369:
        -:        -: 2370:         
    #####:    #####: 2371:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2372:               const float64_t src0 =
        -:        -: 2373:                  _src[0].f64[_i];
        -:        -: 2374:
    #####:    #####: 2375:            bool32_t dst = src0 != 0.0;
        -:        -: 2376:
    #####:    #####: 2377:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 2378:      }
        -:        -: 2379:
    #####:    #####: 2380:         break;
        -:        -: 2381:      }
        -:        -: 2382:
        -:        -: 2383:      default:
    #####:    #####: 2384:         unreachable("unknown bit width");
        -:        -: 2385:      }
        -:        -: 2386:
    #####:    #####: 2387:   return _dst_val;
        -:        -: 2388:}
        -:        -: 2389:static nir_const_value
    #####:    #####: 2390:evaluate_f2f16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2391:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2392:{
    #####:    #####: 2393:   nir_const_value _dst_val = { {0, } };
        -:        -: 2394:
    #####:    #####: 2395:      switch (bit_size) {
        -:        -: 2396:      case 16: {
        -:        -: 2397:         
        -:        -: 2398:   
        -:        -: 2399:
        -:        -: 2400:         
    #####:    #####: 2401:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2402:               const float src0 =
    #####:    #####: 2403:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2404:
    #####:    #####: 2405:            float16_t dst = src0;
        -:        -: 2406:
    #####:    #####: 2407:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 2408:      }
        -:        -: 2409:
    #####:    #####: 2410:         break;
        -:        -: 2411:      }
        -:        -: 2412:      case 32: {
        -:        -: 2413:         
        -:        -: 2414:   
        -:        -: 2415:
        -:        -: 2416:         
    #####:    #####: 2417:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2418:               const float32_t src0 =
        -:        -: 2419:                  _src[0].f32[_i];
        -:        -: 2420:
    #####:    #####: 2421:            float16_t dst = src0;
        -:        -: 2422:
    #####:    #####: 2423:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 2424:      }
        -:        -: 2425:
    #####:    #####: 2426:         break;
        -:        -: 2427:      }
        -:        -: 2428:      case 64: {
        -:        -: 2429:         
        -:        -: 2430:   
        -:        -: 2431:
        -:        -: 2432:         
    #####:    #####: 2433:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2434:               const float64_t src0 =
        -:        -: 2435:                  _src[0].f64[_i];
        -:        -: 2436:
    #####:    #####: 2437:            float16_t dst = src0;
        -:        -: 2438:
    #####:    #####: 2439:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 2440:      }
        -:        -: 2441:
    #####:    #####: 2442:         break;
        -:        -: 2443:      }
        -:        -: 2444:
        -:        -: 2445:      default:
    #####:    #####: 2446:         unreachable("unknown bit width");
        -:        -: 2447:      }
        -:        -: 2448:
    #####:    #####: 2449:   return _dst_val;
        -:        -: 2450:}
        -:        -: 2451:static nir_const_value
    #####:    #####: 2452:evaluate_f2f32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2453:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2454:{
    #####:    #####: 2455:   nir_const_value _dst_val = { {0, } };
        -:        -: 2456:
    #####:    #####: 2457:      switch (bit_size) {
        -:        -: 2458:      case 16: {
        -:        -: 2459:         
        -:        -: 2460:   
        -:        -: 2461:
        -:        -: 2462:         
    #####:    #####: 2463:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2464:               const float src0 =
    #####:    #####: 2465:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2466:
    #####:    #####: 2467:            float32_t dst = src0;
        -:        -: 2468:
    #####:    #####: 2469:            _dst_val.f32[_i] = dst;
        -:        -: 2470:      }
        -:        -: 2471:
    #####:    #####: 2472:         break;
        -:        -: 2473:      }
        -:        -: 2474:      case 32: {
        -:        -: 2475:         
        -:        -: 2476:   
        -:        -: 2477:
        -:        -: 2478:         
    #####:    #####: 2479:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2480:               const float32_t src0 =
        -:        -: 2481:                  _src[0].f32[_i];
        -:        -: 2482:
    #####:    #####: 2483:            float32_t dst = src0;
        -:        -: 2484:
    #####:    #####: 2485:            _dst_val.f32[_i] = dst;
        -:        -: 2486:      }
        -:        -: 2487:
    #####:    #####: 2488:         break;
        -:        -: 2489:      }
        -:        -: 2490:      case 64: {
        -:        -: 2491:         
        -:        -: 2492:   
        -:        -: 2493:
        -:        -: 2494:         
    #####:    #####: 2495:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2496:               const float64_t src0 =
        -:        -: 2497:                  _src[0].f64[_i];
        -:        -: 2498:
    #####:    #####: 2499:            float32_t dst = src0;
        -:        -: 2500:
    #####:    #####: 2501:            _dst_val.f32[_i] = dst;
        -:        -: 2502:      }
        -:        -: 2503:
    #####:    #####: 2504:         break;
        -:        -: 2505:      }
        -:        -: 2506:
        -:        -: 2507:      default:
    #####:    #####: 2508:         unreachable("unknown bit width");
        -:        -: 2509:      }
        -:        -: 2510:
    #####:    #####: 2511:   return _dst_val;
        -:        -: 2512:}
        -:        -: 2513:static nir_const_value
    #####:    #####: 2514:evaluate_f2f64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2515:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2516:{
    #####:    #####: 2517:   nir_const_value _dst_val = { {0, } };
        -:        -: 2518:
    #####:    #####: 2519:      switch (bit_size) {
        -:        -: 2520:      case 16: {
        -:        -: 2521:         
        -:        -: 2522:   
        -:        -: 2523:
        -:        -: 2524:         
    #####:    #####: 2525:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2526:               const float src0 =
    #####:    #####: 2527:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2528:
    #####:    #####: 2529:            float64_t dst = src0;
        -:        -: 2530:
    #####:    #####: 2531:            _dst_val.f64[_i] = dst;
        -:        -: 2532:      }
        -:        -: 2533:
    #####:    #####: 2534:         break;
        -:        -: 2535:      }
        -:        -: 2536:      case 32: {
        -:        -: 2537:         
        -:        -: 2538:   
        -:        -: 2539:
        -:        -: 2540:         
    #####:    #####: 2541:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2542:               const float32_t src0 =
        -:        -: 2543:                  _src[0].f32[_i];
        -:        -: 2544:
    #####:    #####: 2545:            float64_t dst = src0;
        -:        -: 2546:
    #####:    #####: 2547:            _dst_val.f64[_i] = dst;
        -:        -: 2548:      }
        -:        -: 2549:
    #####:    #####: 2550:         break;
        -:        -: 2551:      }
        -:        -: 2552:      case 64: {
        -:        -: 2553:         
        -:        -: 2554:   
        -:        -: 2555:
        -:        -: 2556:         
    #####:    #####: 2557:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2558:               const float64_t src0 =
        -:        -: 2559:                  _src[0].f64[_i];
        -:        -: 2560:
    #####:    #####: 2561:            float64_t dst = src0;
        -:        -: 2562:
    #####:    #####: 2563:            _dst_val.f64[_i] = dst;
        -:        -: 2564:      }
        -:        -: 2565:
    #####:    #####: 2566:         break;
        -:        -: 2567:      }
        -:        -: 2568:
        -:        -: 2569:      default:
    #####:    #####: 2570:         unreachable("unknown bit width");
        -:        -: 2571:      }
        -:        -: 2572:
    #####:    #####: 2573:   return _dst_val;
        -:        -: 2574:}
        -:        -: 2575:static nir_const_value
    #####:    #####: 2576:evaluate_f2i16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2577:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2578:{
    #####:    #####: 2579:   nir_const_value _dst_val = { {0, } };
        -:        -: 2580:
    #####:    #####: 2581:      switch (bit_size) {
        -:        -: 2582:      case 16: {
        -:        -: 2583:         
        -:        -: 2584:   
        -:        -: 2585:
        -:        -: 2586:         
    #####:    #####: 2587:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2588:               const float src0 =
    #####:    #####: 2589:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2590:
    #####:    #####: 2591:            int16_t dst = src0;
        -:        -: 2592:
    #####:    #####: 2593:            _dst_val.i16[_i] = dst;
        -:        -: 2594:      }
        -:        -: 2595:
    #####:    #####: 2596:         break;
        -:        -: 2597:      }
        -:        -: 2598:      case 32: {
        -:        -: 2599:         
        -:        -: 2600:   
        -:        -: 2601:
        -:        -: 2602:         
    #####:    #####: 2603:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2604:               const float32_t src0 =
        -:        -: 2605:                  _src[0].f32[_i];
        -:        -: 2606:
    #####:    #####: 2607:            int16_t dst = src0;
        -:        -: 2608:
    #####:    #####: 2609:            _dst_val.i16[_i] = dst;
        -:        -: 2610:      }
        -:        -: 2611:
    #####:    #####: 2612:         break;
        -:        -: 2613:      }
        -:        -: 2614:      case 64: {
        -:        -: 2615:         
        -:        -: 2616:   
        -:        -: 2617:
        -:        -: 2618:         
    #####:    #####: 2619:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2620:               const float64_t src0 =
        -:        -: 2621:                  _src[0].f64[_i];
        -:        -: 2622:
    #####:    #####: 2623:            int16_t dst = src0;
        -:        -: 2624:
    #####:    #####: 2625:            _dst_val.i16[_i] = dst;
        -:        -: 2626:      }
        -:        -: 2627:
    #####:    #####: 2628:         break;
        -:        -: 2629:      }
        -:        -: 2630:
        -:        -: 2631:      default:
    #####:    #####: 2632:         unreachable("unknown bit width");
        -:        -: 2633:      }
        -:        -: 2634:
    #####:    #####: 2635:   return _dst_val;
        -:        -: 2636:}
        -:        -: 2637:static nir_const_value
    #####:    #####: 2638:evaluate_f2i32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2639:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2640:{
    #####:    #####: 2641:   nir_const_value _dst_val = { {0, } };
        -:        -: 2642:
    #####:    #####: 2643:      switch (bit_size) {
        -:        -: 2644:      case 16: {
        -:        -: 2645:         
        -:        -: 2646:   
        -:        -: 2647:
        -:        -: 2648:         
    #####:    #####: 2649:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2650:               const float src0 =
    #####:    #####: 2651:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2652:
    #####:    #####: 2653:            int32_t dst = src0;
        -:        -: 2654:
    #####:    #####: 2655:            _dst_val.i32[_i] = dst;
        -:        -: 2656:      }
        -:        -: 2657:
    #####:    #####: 2658:         break;
        -:        -: 2659:      }
        -:        -: 2660:      case 32: {
        -:        -: 2661:         
        -:        -: 2662:   
        -:        -: 2663:
        -:        -: 2664:         
    #####:    #####: 2665:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2666:               const float32_t src0 =
        -:        -: 2667:                  _src[0].f32[_i];
        -:        -: 2668:
    #####:    #####: 2669:            int32_t dst = src0;
        -:        -: 2670:
    #####:    #####: 2671:            _dst_val.i32[_i] = dst;
        -:        -: 2672:      }
        -:        -: 2673:
    #####:    #####: 2674:         break;
        -:        -: 2675:      }
        -:        -: 2676:      case 64: {
        -:        -: 2677:         
        -:        -: 2678:   
        -:        -: 2679:
        -:        -: 2680:         
    #####:    #####: 2681:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2682:               const float64_t src0 =
        -:        -: 2683:                  _src[0].f64[_i];
        -:        -: 2684:
    #####:    #####: 2685:            int32_t dst = src0;
        -:        -: 2686:
    #####:    #####: 2687:            _dst_val.i32[_i] = dst;
        -:        -: 2688:      }
        -:        -: 2689:
    #####:    #####: 2690:         break;
        -:        -: 2691:      }
        -:        -: 2692:
        -:        -: 2693:      default:
    #####:    #####: 2694:         unreachable("unknown bit width");
        -:        -: 2695:      }
        -:        -: 2696:
    #####:    #####: 2697:   return _dst_val;
        -:        -: 2698:}
        -:        -: 2699:static nir_const_value
    #####:    #####: 2700:evaluate_f2i64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2701:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2702:{
    #####:    #####: 2703:   nir_const_value _dst_val = { {0, } };
        -:        -: 2704:
    #####:    #####: 2705:      switch (bit_size) {
        -:        -: 2706:      case 16: {
        -:        -: 2707:         
        -:        -: 2708:   
        -:        -: 2709:
        -:        -: 2710:         
    #####:    #####: 2711:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2712:               const float src0 =
    #####:    #####: 2713:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2714:
    #####:    #####: 2715:            int64_t dst = src0;
        -:        -: 2716:
    #####:    #####: 2717:            _dst_val.i64[_i] = dst;
        -:        -: 2718:      }
        -:        -: 2719:
    #####:    #####: 2720:         break;
        -:        -: 2721:      }
        -:        -: 2722:      case 32: {
        -:        -: 2723:         
        -:        -: 2724:   
        -:        -: 2725:
        -:        -: 2726:         
    #####:    #####: 2727:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2728:               const float32_t src0 =
        -:        -: 2729:                  _src[0].f32[_i];
        -:        -: 2730:
    #####:    #####: 2731:            int64_t dst = src0;
        -:        -: 2732:
    #####:    #####: 2733:            _dst_val.i64[_i] = dst;
        -:        -: 2734:      }
        -:        -: 2735:
    #####:    #####: 2736:         break;
        -:        -: 2737:      }
        -:        -: 2738:      case 64: {
        -:        -: 2739:         
        -:        -: 2740:   
        -:        -: 2741:
        -:        -: 2742:         
    #####:    #####: 2743:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2744:               const float64_t src0 =
        -:        -: 2745:                  _src[0].f64[_i];
        -:        -: 2746:
    #####:    #####: 2747:            int64_t dst = src0;
        -:        -: 2748:
    #####:    #####: 2749:            _dst_val.i64[_i] = dst;
        -:        -: 2750:      }
        -:        -: 2751:
    #####:    #####: 2752:         break;
        -:        -: 2753:      }
        -:        -: 2754:
        -:        -: 2755:      default:
    #####:    #####: 2756:         unreachable("unknown bit width");
        -:        -: 2757:      }
        -:        -: 2758:
    #####:    #####: 2759:   return _dst_val;
        -:        -: 2760:}
        -:        -: 2761:static nir_const_value
    #####:    #####: 2762:evaluate_f2i8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2763:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2764:{
    #####:    #####: 2765:   nir_const_value _dst_val = { {0, } };
        -:        -: 2766:
    #####:    #####: 2767:      switch (bit_size) {
        -:        -: 2768:      case 16: {
        -:        -: 2769:         
        -:        -: 2770:   
        -:        -: 2771:
        -:        -: 2772:         
    #####:    #####: 2773:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2774:               const float src0 =
    #####:    #####: 2775:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2776:
    #####:    #####: 2777:            int8_t dst = src0;
        -:        -: 2778:
    #####:    #####: 2779:            _dst_val.i8[_i] = dst;
        -:        -: 2780:      }
        -:        -: 2781:
    #####:    #####: 2782:         break;
        -:        -: 2783:      }
        -:        -: 2784:      case 32: {
        -:        -: 2785:         
        -:        -: 2786:   
        -:        -: 2787:
        -:        -: 2788:         
    #####:    #####: 2789:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2790:               const float32_t src0 =
        -:        -: 2791:                  _src[0].f32[_i];
        -:        -: 2792:
    #####:    #####: 2793:            int8_t dst = src0;
        -:        -: 2794:
    #####:    #####: 2795:            _dst_val.i8[_i] = dst;
        -:        -: 2796:      }
        -:        -: 2797:
    #####:    #####: 2798:         break;
        -:        -: 2799:      }
        -:        -: 2800:      case 64: {
        -:        -: 2801:         
        -:        -: 2802:   
        -:        -: 2803:
        -:        -: 2804:         
    #####:    #####: 2805:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2806:               const float64_t src0 =
        -:        -: 2807:                  _src[0].f64[_i];
        -:        -: 2808:
    #####:    #####: 2809:            int8_t dst = src0;
        -:        -: 2810:
    #####:    #####: 2811:            _dst_val.i8[_i] = dst;
        -:        -: 2812:      }
        -:        -: 2813:
    #####:    #####: 2814:         break;
        -:        -: 2815:      }
        -:        -: 2816:
        -:        -: 2817:      default:
    #####:    #####: 2818:         unreachable("unknown bit width");
        -:        -: 2819:      }
        -:        -: 2820:
    #####:    #####: 2821:   return _dst_val;
        -:        -: 2822:}
        -:        -: 2823:static nir_const_value
    #####:    #####: 2824:evaluate_f2u16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2825:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2826:{
    #####:    #####: 2827:   nir_const_value _dst_val = { {0, } };
        -:        -: 2828:
    #####:    #####: 2829:      switch (bit_size) {
        -:        -: 2830:      case 16: {
        -:        -: 2831:         
        -:        -: 2832:   
        -:        -: 2833:
        -:        -: 2834:         
    #####:    #####: 2835:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2836:               const float src0 =
    #####:    #####: 2837:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2838:
    #####:    #####: 2839:            uint16_t dst = src0;
        -:        -: 2840:
    #####:    #####: 2841:            _dst_val.u16[_i] = dst;
        -:        -: 2842:      }
        -:        -: 2843:
    #####:    #####: 2844:         break;
        -:        -: 2845:      }
        -:        -: 2846:      case 32: {
        -:        -: 2847:         
        -:        -: 2848:   
        -:        -: 2849:
        -:        -: 2850:         
    #####:    #####: 2851:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2852:               const float32_t src0 =
        -:        -: 2853:                  _src[0].f32[_i];
        -:        -: 2854:
    #####:    #####: 2855:            uint16_t dst = src0;
        -:        -: 2856:
    #####:    #####: 2857:            _dst_val.u16[_i] = dst;
        -:        -: 2858:      }
        -:        -: 2859:
    #####:    #####: 2860:         break;
        -:        -: 2861:      }
        -:        -: 2862:      case 64: {
        -:        -: 2863:         
        -:        -: 2864:   
        -:        -: 2865:
        -:        -: 2866:         
    #####:    #####: 2867:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2868:               const float64_t src0 =
        -:        -: 2869:                  _src[0].f64[_i];
        -:        -: 2870:
    #####:    #####: 2871:            uint16_t dst = src0;
        -:        -: 2872:
    #####:    #####: 2873:            _dst_val.u16[_i] = dst;
        -:        -: 2874:      }
        -:        -: 2875:
    #####:    #####: 2876:         break;
        -:        -: 2877:      }
        -:        -: 2878:
        -:        -: 2879:      default:
    #####:    #####: 2880:         unreachable("unknown bit width");
        -:        -: 2881:      }
        -:        -: 2882:
    #####:    #####: 2883:   return _dst_val;
        -:        -: 2884:}
        -:        -: 2885:static nir_const_value
    #####:    #####: 2886:evaluate_f2u32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2887:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2888:{
    #####:    #####: 2889:   nir_const_value _dst_val = { {0, } };
        -:        -: 2890:
    #####:    #####: 2891:      switch (bit_size) {
        -:        -: 2892:      case 16: {
        -:        -: 2893:         
        -:        -: 2894:   
        -:        -: 2895:
        -:        -: 2896:         
    #####:    #####: 2897:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2898:               const float src0 =
    #####:    #####: 2899:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2900:
    #####:    #####: 2901:            uint32_t dst = src0;
        -:        -: 2902:
    #####:    #####: 2903:            _dst_val.u32[_i] = dst;
        -:        -: 2904:      }
        -:        -: 2905:
    #####:    #####: 2906:         break;
        -:        -: 2907:      }
        -:        -: 2908:      case 32: {
        -:        -: 2909:         
        -:        -: 2910:   
        -:        -: 2911:
        -:        -: 2912:         
    #####:    #####: 2913:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2914:               const float32_t src0 =
        -:        -: 2915:                  _src[0].f32[_i];
        -:        -: 2916:
    #####:    #####: 2917:            uint32_t dst = src0;
        -:        -: 2918:
    #####:    #####: 2919:            _dst_val.u32[_i] = dst;
        -:        -: 2920:      }
        -:        -: 2921:
    #####:    #####: 2922:         break;
        -:        -: 2923:      }
        -:        -: 2924:      case 64: {
        -:        -: 2925:         
        -:        -: 2926:   
        -:        -: 2927:
        -:        -: 2928:         
    #####:    #####: 2929:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2930:               const float64_t src0 =
        -:        -: 2931:                  _src[0].f64[_i];
        -:        -: 2932:
    #####:    #####: 2933:            uint32_t dst = src0;
        -:        -: 2934:
    #####:    #####: 2935:            _dst_val.u32[_i] = dst;
        -:        -: 2936:      }
        -:        -: 2937:
    #####:    #####: 2938:         break;
        -:        -: 2939:      }
        -:        -: 2940:
        -:        -: 2941:      default:
    #####:    #####: 2942:         unreachable("unknown bit width");
        -:        -: 2943:      }
        -:        -: 2944:
    #####:    #####: 2945:   return _dst_val;
        -:        -: 2946:}
        -:        -: 2947:static nir_const_value
    #####:    #####: 2948:evaluate_f2u64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 2949:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 2950:{
    #####:    #####: 2951:   nir_const_value _dst_val = { {0, } };
        -:        -: 2952:
    #####:    #####: 2953:      switch (bit_size) {
        -:        -: 2954:      case 16: {
        -:        -: 2955:         
        -:        -: 2956:   
        -:        -: 2957:
        -:        -: 2958:         
    #####:    #####: 2959:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2960:               const float src0 =
    #####:    #####: 2961:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 2962:
    #####:    #####: 2963:            uint64_t dst = src0;
        -:        -: 2964:
    #####:    #####: 2965:            _dst_val.u64[_i] = dst;
        -:        -: 2966:      }
        -:        -: 2967:
    #####:    #####: 2968:         break;
        -:        -: 2969:      }
        -:        -: 2970:      case 32: {
        -:        -: 2971:         
        -:        -: 2972:   
        -:        -: 2973:
        -:        -: 2974:         
    #####:    #####: 2975:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2976:               const float32_t src0 =
        -:        -: 2977:                  _src[0].f32[_i];
        -:        -: 2978:
    #####:    #####: 2979:            uint64_t dst = src0;
        -:        -: 2980:
    #####:    #####: 2981:            _dst_val.u64[_i] = dst;
        -:        -: 2982:      }
        -:        -: 2983:
    #####:    #####: 2984:         break;
        -:        -: 2985:      }
        -:        -: 2986:      case 64: {
        -:        -: 2987:         
        -:        -: 2988:   
        -:        -: 2989:
        -:        -: 2990:         
    #####:    #####: 2991:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 2992:               const float64_t src0 =
        -:        -: 2993:                  _src[0].f64[_i];
        -:        -: 2994:
    #####:    #####: 2995:            uint64_t dst = src0;
        -:        -: 2996:
    #####:    #####: 2997:            _dst_val.u64[_i] = dst;
        -:        -: 2998:      }
        -:        -: 2999:
    #####:    #####: 3000:         break;
        -:        -: 3001:      }
        -:        -: 3002:
        -:        -: 3003:      default:
    #####:    #####: 3004:         unreachable("unknown bit width");
        -:        -: 3005:      }
        -:        -: 3006:
    #####:    #####: 3007:   return _dst_val;
        -:        -: 3008:}
        -:        -: 3009:static nir_const_value
    #####:    #####: 3010:evaluate_f2u8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3011:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3012:{
    #####:    #####: 3013:   nir_const_value _dst_val = { {0, } };
        -:        -: 3014:
    #####:    #####: 3015:      switch (bit_size) {
        -:        -: 3016:      case 16: {
        -:        -: 3017:         
        -:        -: 3018:   
        -:        -: 3019:
        -:        -: 3020:         
    #####:    #####: 3021:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3022:               const float src0 =
    #####:    #####: 3023:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 3024:
    #####:    #####: 3025:            uint8_t dst = src0;
        -:        -: 3026:
    #####:    #####: 3027:            _dst_val.u8[_i] = dst;
        -:        -: 3028:      }
        -:        -: 3029:
    #####:    #####: 3030:         break;
        -:        -: 3031:      }
        -:        -: 3032:      case 32: {
        -:        -: 3033:         
        -:        -: 3034:   
        -:        -: 3035:
        -:        -: 3036:         
    #####:    #####: 3037:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3038:               const float32_t src0 =
        -:        -: 3039:                  _src[0].f32[_i];
        -:        -: 3040:
    #####:    #####: 3041:            uint8_t dst = src0;
        -:        -: 3042:
    #####:    #####: 3043:            _dst_val.u8[_i] = dst;
        -:        -: 3044:      }
        -:        -: 3045:
    #####:    #####: 3046:         break;
        -:        -: 3047:      }
        -:        -: 3048:      case 64: {
        -:        -: 3049:         
        -:        -: 3050:   
        -:        -: 3051:
        -:        -: 3052:         
    #####:    #####: 3053:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3054:               const float64_t src0 =
        -:        -: 3055:                  _src[0].f64[_i];
        -:        -: 3056:
    #####:    #####: 3057:            uint8_t dst = src0;
        -:        -: 3058:
    #####:    #####: 3059:            _dst_val.u8[_i] = dst;
        -:        -: 3060:      }
        -:        -: 3061:
    #####:    #####: 3062:         break;
        -:        -: 3063:      }
        -:        -: 3064:
        -:        -: 3065:      default:
    #####:    #####: 3066:         unreachable("unknown bit width");
        -:        -: 3067:      }
        -:        -: 3068:
    #####:    #####: 3069:   return _dst_val;
        -:        -: 3070:}
        -:        -: 3071:static nir_const_value
    #####:    #####: 3072:evaluate_fabs(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3073:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3074:{
    #####:    #####: 3075:   nir_const_value _dst_val = { {0, } };
        -:        -: 3076:
    #####:    #####: 3077:      switch (bit_size) {
        -:        -: 3078:      case 16: {
        -:        -: 3079:         
        -:        -: 3080:   
        -:        -: 3081:
        -:        -: 3082:         
    #####:    #####: 3083:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3084:               const float src0 =
    #####:    #####: 3085:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 3086:
    #####:    #####: 3087:            float16_t dst = bit_size == 64 ? fabs(src0) : fabsf(src0);
        -:        -: 3088:
    #####:    #####: 3089:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3090:      }
        -:        -: 3091:
    #####:    #####: 3092:         break;
        -:        -: 3093:      }
        -:        -: 3094:      case 32: {
        -:        -: 3095:         
        -:        -: 3096:   
        -:        -: 3097:
        -:        -: 3098:         
    #####:    #####: 3099:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3100:               const float32_t src0 =
        -:        -: 3101:                  _src[0].f32[_i];
        -:        -: 3102:
    #####:    #####: 3103:            float32_t dst = bit_size == 64 ? fabs(src0) : fabsf(src0);
        -:        -: 3104:
    #####:    #####: 3105:            _dst_val.f32[_i] = dst;
        -:        -: 3106:      }
        -:        -: 3107:
    #####:    #####: 3108:         break;
        -:        -: 3109:      }
        -:        -: 3110:      case 64: {
        -:        -: 3111:         
        -:        -: 3112:   
        -:        -: 3113:
        -:        -: 3114:         
    #####:    #####: 3115:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3116:               const float64_t src0 =
        -:        -: 3117:                  _src[0].f64[_i];
        -:        -: 3118:
    #####:    #####: 3119:            float64_t dst = bit_size == 64 ? fabs(src0) : fabsf(src0);
        -:        -: 3120:
    #####:    #####: 3121:            _dst_val.f64[_i] = dst;
        -:        -: 3122:      }
        -:        -: 3123:
    #####:    #####: 3124:         break;
        -:        -: 3125:      }
        -:        -: 3126:
        -:        -: 3127:      default:
    #####:    #####: 3128:         unreachable("unknown bit width");
        -:        -: 3129:      }
        -:        -: 3130:
    #####:    #####: 3131:   return _dst_val;
        -:        -: 3132:}
        -:        -: 3133:static nir_const_value
    #####:    #####: 3134:evaluate_fadd(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3135:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3136:{
    #####:    #####: 3137:   nir_const_value _dst_val = { {0, } };
        -:        -: 3138:
    #####:    #####: 3139:      switch (bit_size) {
        -:        -: 3140:      case 16: {
        -:        -: 3141:         
        -:        -: 3142:   
        -:        -: 3143:
        -:        -: 3144:                  
    #####:    #####: 3145:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3146:               const float src0 =
    #####:    #####: 3147:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 3148:               const float src1 =
    #####:    #####: 3149:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 3150:
    #####:    #####: 3151:            float16_t dst = src0 + src1;
        -:        -: 3152:
    #####:    #####: 3153:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3154:      }
        -:        -: 3155:
    #####:    #####: 3156:         break;
        -:        -: 3157:      }
        -:        -: 3158:      case 32: {
        -:        -: 3159:         
        -:        -: 3160:   
        -:        -: 3161:
        -:        -: 3162:                  
    #####:    #####: 3163:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3164:               const float32_t src0 =
        -:        -: 3165:                  _src[0].f32[_i];
    #####:    #####: 3166:               const float32_t src1 =
    #####:    #####: 3167:                  _src[1].f32[_i];
        -:        -: 3168:
    #####:    #####: 3169:            float32_t dst = src0 + src1;
        -:        -: 3170:
    #####:    #####: 3171:            _dst_val.f32[_i] = dst;
        -:        -: 3172:      }
        -:        -: 3173:
    #####:    #####: 3174:         break;
        -:        -: 3175:      }
        -:        -: 3176:      case 64: {
        -:        -: 3177:         
        -:        -: 3178:   
        -:        -: 3179:
        -:        -: 3180:                  
    #####:    #####: 3181:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3182:               const float64_t src0 =
        -:        -: 3183:                  _src[0].f64[_i];
    #####:    #####: 3184:               const float64_t src1 =
    #####:    #####: 3185:                  _src[1].f64[_i];
        -:        -: 3186:
    #####:    #####: 3187:            float64_t dst = src0 + src1;
        -:        -: 3188:
    #####:    #####: 3189:            _dst_val.f64[_i] = dst;
        -:        -: 3190:      }
        -:        -: 3191:
    #####:    #####: 3192:         break;
        -:        -: 3193:      }
        -:        -: 3194:
        -:        -: 3195:      default:
    #####:    #####: 3196:         unreachable("unknown bit width");
        -:        -: 3197:      }
        -:        -: 3198:
    #####:    #####: 3199:   return _dst_val;
        -:        -: 3200:}
        -:        -: 3201:static nir_const_value
    #####:    #####: 3202:evaluate_fall_equal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3203:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3204:{
    #####:    #####: 3205:   nir_const_value _dst_val = { {0, } };
        -:        -: 3206:
        -:        -: 3207:      
        -:        -: 3208:   
        -:        -: 3209:
        -:        -: 3210:
    #####:    #####: 3211:      const struct float32_vec src0 = {
    #####:    #####: 3212:            _src[0].f32[0],
    #####:    #####: 3213:            _src[0].f32[1],
        -:        -: 3214:         0,
        -:        -: 3215:         0,
        -:        -: 3216:      };
        -:        -: 3217:
    #####:    #####: 3218:      const struct float32_vec src1 = {
    #####:    #####: 3219:            _src[1].f32[0],
    #####:    #####: 3220:            _src[1].f32[1],
        -:        -: 3221:         0,
        -:        -: 3222:         0,
        -:        -: 3223:      };
        -:        -: 3224:
        -:        -: 3225:      struct float32_vec dst;
        -:        -: 3226:
    #####:    #####: 3227:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y)) ? 1.0f : 0.0f;
        -:        -: 3228:
    #####:    #####: 3229:            _dst_val.f32[0] = dst.x;
        -:        -: 3230:
        -:        -: 3231:
    #####:    #####: 3232:   return _dst_val;
        -:        -: 3233:}
        -:        -: 3234:static nir_const_value
    #####:    #####: 3235:evaluate_fall_equal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3236:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3237:{
    #####:    #####: 3238:   nir_const_value _dst_val = { {0, } };
        -:        -: 3239:
        -:        -: 3240:      
        -:        -: 3241:   
        -:        -: 3242:
        -:        -: 3243:
    #####:    #####: 3244:      const struct float32_vec src0 = {
    #####:    #####: 3245:            _src[0].f32[0],
    #####:    #####: 3246:            _src[0].f32[1],
    #####:    #####: 3247:            _src[0].f32[2],
        -:        -: 3248:         0,
        -:        -: 3249:      };
        -:        -: 3250:
    #####:    #####: 3251:      const struct float32_vec src1 = {
    #####:    #####: 3252:            _src[1].f32[0],
    #####:    #####: 3253:            _src[1].f32[1],
    #####:    #####: 3254:            _src[1].f32[2],
        -:        -: 3255:         0,
        -:        -: 3256:      };
        -:        -: 3257:
        -:        -: 3258:      struct float32_vec dst;
        -:        -: 3259:
    #####:    #####: 3260:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z)) ? 1.0f : 0.0f;
        -:        -: 3261:
    #####:    #####: 3262:            _dst_val.f32[0] = dst.x;
        -:        -: 3263:
        -:        -: 3264:
    #####:    #####: 3265:   return _dst_val;
        -:        -: 3266:}
        -:        -: 3267:static nir_const_value
    #####:    #####: 3268:evaluate_fall_equal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3269:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3270:{
    #####:    #####: 3271:   nir_const_value _dst_val = { {0, } };
        -:        -: 3272:
        -:        -: 3273:      
        -:        -: 3274:   
        -:        -: 3275:
        -:        -: 3276:
    #####:    #####: 3277:      const struct float32_vec src0 = {
    #####:    #####: 3278:            _src[0].f32[0],
    #####:    #####: 3279:            _src[0].f32[1],
    #####:    #####: 3280:            _src[0].f32[2],
    #####:    #####: 3281:            _src[0].f32[3],
        -:        -: 3282:      };
        -:        -: 3283:
    #####:    #####: 3284:      const struct float32_vec src1 = {
    #####:    #####: 3285:            _src[1].f32[0],
    #####:    #####: 3286:            _src[1].f32[1],
    #####:    #####: 3287:            _src[1].f32[2],
    #####:    #####: 3288:            _src[1].f32[3],
        -:        -: 3289:      };
        -:        -: 3290:
        -:        -: 3291:      struct float32_vec dst;
        -:        -: 3292:
    #####:    #####: 3293:         dst.x = dst.y = dst.z = dst.w = ((src0.x == src1.x) && (src0.y == src1.y) && (src0.z == src1.z) && (src0.w == src1.w)) ? 1.0f : 0.0f;
        -:        -: 3294:
    #####:    #####: 3295:            _dst_val.f32[0] = dst.x;
        -:        -: 3296:
        -:        -: 3297:
    #####:    #####: 3298:   return _dst_val;
        -:        -: 3299:}
        -:        -: 3300:static nir_const_value
    #####:    #####: 3301:evaluate_fand(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3302:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3303:{
    #####:    #####: 3304:   nir_const_value _dst_val = { {0, } };
        -:        -: 3305:
        -:        -: 3306:      
        -:        -: 3307:   
        -:        -: 3308:
        -:        -: 3309:                  
    #####:    #####: 3310:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3311:               const float32_t src0 =
        -:        -: 3312:                  _src[0].f32[_i];
    #####:    #####: 3313:               const float32_t src1 =
    #####:    #####: 3314:                  _src[1].f32[_i];
        -:        -: 3315:
    #####:    #####: 3316:            float32_t dst = ((src0 != 0.0f) && (src1 != 0.0f)) ? 1.0f : 0.0f;
        -:        -: 3317:
    #####:    #####: 3318:            _dst_val.f32[_i] = dst;
        -:        -: 3319:      }
        -:        -: 3320:
        -:        -: 3321:
    #####:    #####: 3322:   return _dst_val;
        -:        -: 3323:}
        -:        -: 3324:static nir_const_value
    #####:    #####: 3325:evaluate_fany_nequal2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3326:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3327:{
    #####:    #####: 3328:   nir_const_value _dst_val = { {0, } };
        -:        -: 3329:
        -:        -: 3330:      
        -:        -: 3331:   
        -:        -: 3332:
        -:        -: 3333:
    #####:    #####: 3334:      const struct float32_vec src0 = {
    #####:    #####: 3335:            _src[0].f32[0],
    #####:    #####: 3336:            _src[0].f32[1],
        -:        -: 3337:         0,
        -:        -: 3338:         0,
        -:        -: 3339:      };
        -:        -: 3340:
    #####:    #####: 3341:      const struct float32_vec src1 = {
    #####:    #####: 3342:            _src[1].f32[0],
    #####:    #####: 3343:            _src[1].f32[1],
        -:        -: 3344:         0,
        -:        -: 3345:         0,
        -:        -: 3346:      };
        -:        -: 3347:
        -:        -: 3348:      struct float32_vec dst;
        -:        -: 3349:
    #####:    #####: 3350:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y)) ? 1.0f : 0.0f;
        -:        -: 3351:
    #####:    #####: 3352:            _dst_val.f32[0] = dst.x;
        -:        -: 3353:
        -:        -: 3354:
    #####:    #####: 3355:   return _dst_val;
        -:        -: 3356:}
        -:        -: 3357:static nir_const_value
    #####:    #####: 3358:evaluate_fany_nequal3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3359:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3360:{
    #####:    #####: 3361:   nir_const_value _dst_val = { {0, } };
        -:        -: 3362:
        -:        -: 3363:      
        -:        -: 3364:   
        -:        -: 3365:
        -:        -: 3366:
    #####:    #####: 3367:      const struct float32_vec src0 = {
    #####:    #####: 3368:            _src[0].f32[0],
    #####:    #####: 3369:            _src[0].f32[1],
    #####:    #####: 3370:            _src[0].f32[2],
        -:        -: 3371:         0,
        -:        -: 3372:      };
        -:        -: 3373:
    #####:    #####: 3374:      const struct float32_vec src1 = {
    #####:    #####: 3375:            _src[1].f32[0],
    #####:    #####: 3376:            _src[1].f32[1],
    #####:    #####: 3377:            _src[1].f32[2],
        -:        -: 3378:         0,
        -:        -: 3379:      };
        -:        -: 3380:
        -:        -: 3381:      struct float32_vec dst;
        -:        -: 3382:
    #####:    #####: 3383:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z)) ? 1.0f : 0.0f;
        -:        -: 3384:
    #####:    #####: 3385:            _dst_val.f32[0] = dst.x;
        -:        -: 3386:
        -:        -: 3387:
    #####:    #####: 3388:   return _dst_val;
        -:        -: 3389:}
        -:        -: 3390:static nir_const_value
    #####:    #####: 3391:evaluate_fany_nequal4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3392:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3393:{
    #####:    #####: 3394:   nir_const_value _dst_val = { {0, } };
        -:        -: 3395:
        -:        -: 3396:      
        -:        -: 3397:   
        -:        -: 3398:
        -:        -: 3399:
    #####:    #####: 3400:      const struct float32_vec src0 = {
    #####:    #####: 3401:            _src[0].f32[0],
    #####:    #####: 3402:            _src[0].f32[1],
    #####:    #####: 3403:            _src[0].f32[2],
    #####:    #####: 3404:            _src[0].f32[3],
        -:        -: 3405:      };
        -:        -: 3406:
    #####:    #####: 3407:      const struct float32_vec src1 = {
    #####:    #####: 3408:            _src[1].f32[0],
    #####:    #####: 3409:            _src[1].f32[1],
    #####:    #####: 3410:            _src[1].f32[2],
    #####:    #####: 3411:            _src[1].f32[3],
        -:        -: 3412:      };
        -:        -: 3413:
        -:        -: 3414:      struct float32_vec dst;
        -:        -: 3415:
    #####:    #####: 3416:         dst.x = dst.y = dst.z = dst.w = ((src0.x != src1.x) || (src0.y != src1.y) || (src0.z != src1.z) || (src0.w != src1.w)) ? 1.0f : 0.0f;
        -:        -: 3417:
    #####:    #####: 3418:            _dst_val.f32[0] = dst.x;
        -:        -: 3419:
        -:        -: 3420:
    #####:    #####: 3421:   return _dst_val;
        -:        -: 3422:}
        -:        -: 3423:static nir_const_value
    #####:    #####: 3424:evaluate_fceil(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3425:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3426:{
    #####:    #####: 3427:   nir_const_value _dst_val = { {0, } };
        -:        -: 3428:
    #####:    #####: 3429:      switch (bit_size) {
        -:        -: 3430:      case 16: {
        -:        -: 3431:         
        -:        -: 3432:   
        -:        -: 3433:
        -:        -: 3434:         
    #####:    #####: 3435:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3436:               const float src0 =
    #####:    #####: 3437:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 3438:
    #####:    #####: 3439:            float16_t dst = bit_size == 64 ? ceil(src0) : ceilf(src0);
        -:        -: 3440:
    #####:    #####: 3441:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3442:      }
        -:        -: 3443:
    #####:    #####: 3444:         break;
        -:        -: 3445:      }
        -:        -: 3446:      case 32: {
        -:        -: 3447:         
        -:        -: 3448:   
        -:        -: 3449:
        -:        -: 3450:         
    #####:    #####: 3451:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3452:               const float32_t src0 =
        -:        -: 3453:                  _src[0].f32[_i];
        -:        -: 3454:
    #####:    #####: 3455:            float32_t dst = bit_size == 64 ? ceil(src0) : ceilf(src0);
        -:        -: 3456:
    #####:    #####: 3457:            _dst_val.f32[_i] = dst;
        -:        -: 3458:      }
        -:        -: 3459:
    #####:    #####: 3460:         break;
        -:        -: 3461:      }
        -:        -: 3462:      case 64: {
        -:        -: 3463:         
        -:        -: 3464:   
        -:        -: 3465:
        -:        -: 3466:         
    #####:    #####: 3467:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3468:               const float64_t src0 =
        -:        -: 3469:                  _src[0].f64[_i];
        -:        -: 3470:
    #####:    #####: 3471:            float64_t dst = bit_size == 64 ? ceil(src0) : ceilf(src0);
        -:        -: 3472:
    #####:    #####: 3473:            _dst_val.f64[_i] = dst;
        -:        -: 3474:      }
        -:        -: 3475:
    #####:    #####: 3476:         break;
        -:        -: 3477:      }
        -:        -: 3478:
        -:        -: 3479:      default:
    #####:    #####: 3480:         unreachable("unknown bit width");
        -:        -: 3481:      }
        -:        -: 3482:
    #####:    #####: 3483:   return _dst_val;
        -:        -: 3484:}
        -:        -: 3485:static nir_const_value
    #####:    #####: 3486:evaluate_fcos(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3487:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3488:{
    #####:    #####: 3489:   nir_const_value _dst_val = { {0, } };
        -:        -: 3490:
    #####:    #####: 3491:      switch (bit_size) {
        -:        -: 3492:      case 16: {
        -:        -: 3493:         
        -:        -: 3494:   
        -:        -: 3495:
        -:        -: 3496:         
    #####:    #####: 3497:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3498:               const float src0 =
    #####:    #####: 3499:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 3500:
    #####:    #####: 3501:            float16_t dst = bit_size == 64 ? cos(src0) : cosf(src0);
        -:        -: 3502:
    #####:    #####: 3503:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3504:      }
        -:        -: 3505:
    #####:    #####: 3506:         break;
        -:        -: 3507:      }
        -:        -: 3508:      case 32: {
        -:        -: 3509:         
        -:        -: 3510:   
        -:        -: 3511:
        -:        -: 3512:         
    #####:    #####: 3513:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3514:               const float32_t src0 =
        -:        -: 3515:                  _src[0].f32[_i];
        -:        -: 3516:
    #####:    #####: 3517:            float32_t dst = bit_size == 64 ? cos(src0) : cosf(src0);
        -:        -: 3518:
    #####:    #####: 3519:            _dst_val.f32[_i] = dst;
        -:        -: 3520:      }
        -:        -: 3521:
    #####:    #####: 3522:         break;
        -:        -: 3523:      }
        -:        -: 3524:      case 64: {
        -:        -: 3525:         
        -:        -: 3526:   
        -:        -: 3527:
        -:        -: 3528:         
    #####:    #####: 3529:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3530:               const float64_t src0 =
        -:        -: 3531:                  _src[0].f64[_i];
        -:        -: 3532:
    #####:    #####: 3533:            float64_t dst = bit_size == 64 ? cos(src0) : cosf(src0);
        -:        -: 3534:
    #####:    #####: 3535:            _dst_val.f64[_i] = dst;
        -:        -: 3536:      }
        -:        -: 3537:
    #####:    #####: 3538:         break;
        -:        -: 3539:      }
        -:        -: 3540:
        -:        -: 3541:      default:
    #####:    #####: 3542:         unreachable("unknown bit width");
        -:        -: 3543:      }
        -:        -: 3544:
    #####:    #####: 3545:   return _dst_val;
        -:        -: 3546:}
        -:        -: 3547:static nir_const_value
    #####:    #####: 3548:evaluate_fcsel(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3549:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3550:{
    #####:    #####: 3551:   nir_const_value _dst_val = { {0, } };
        -:        -: 3552:
        -:        -: 3553:      
        -:        -: 3554:   
        -:        -: 3555:
        -:        -: 3556:                           
    #####:    #####: 3557:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3558:               const float32_t src0 =
        -:        -: 3559:                  _src[0].f32[_i];
    #####:    #####: 3560:               const float32_t src1 =
    #####:    #####: 3561:                  _src[1].f32[_i];
    #####:    #####: 3562:               const float32_t src2 =
    #####:    #####: 3563:                  _src[2].f32[_i];
        -:        -: 3564:
    #####:    #####: 3565:            float32_t dst = (src0 != 0.0f) ? src1 : src2;
        -:        -: 3566:
    #####:    #####: 3567:            _dst_val.f32[_i] = dst;
        -:        -: 3568:      }
        -:        -: 3569:
        -:        -: 3570:
    #####:    #####: 3571:   return _dst_val;
        -:        -: 3572:}
        -:        -: 3573:static nir_const_value
    #####:    #####: 3574:evaluate_fddx(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3575:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3576:{
    #####:    #####: 3577:   nir_const_value _dst_val = { {0, } };
        -:        -: 3578:
    #####:    #####: 3579:      switch (bit_size) {
        -:        -: 3580:      case 16: {
        -:        -: 3581:         
        -:        -: 3582:   
        -:        -: 3583:
        -:        -: 3584:         
    #####:    #####: 3585:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3586:               
    #####:    #####: 3587:            float16_t dst = 0.0;
        -:        -: 3588:
    #####:    #####: 3589:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3590:      }
        -:        -: 3591:
    #####:    #####: 3592:         break;
        -:        -: 3593:      }
        -:        -: 3594:      case 32: {
        -:        -: 3595:         
        -:        -: 3596:   
        -:        -: 3597:
        -:        -: 3598:         
    #####:    #####: 3599:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3600:               
    #####:    #####: 3601:            float32_t dst = 0.0;
        -:        -: 3602:
    #####:    #####: 3603:            _dst_val.f32[_i] = dst;
        -:        -: 3604:      }
        -:        -: 3605:
    #####:    #####: 3606:         break;
        -:        -: 3607:      }
        -:        -: 3608:      case 64: {
        -:        -: 3609:         
        -:        -: 3610:   
        -:        -: 3611:
        -:        -: 3612:         
    #####:    #####: 3613:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3614:               
    #####:    #####: 3615:            float64_t dst = 0.0;
        -:        -: 3616:
    #####:    #####: 3617:            _dst_val.f64[_i] = dst;
        -:        -: 3618:      }
        -:        -: 3619:
    #####:    #####: 3620:         break;
        -:        -: 3621:      }
        -:        -: 3622:
        -:        -: 3623:      default:
    #####:    #####: 3624:         unreachable("unknown bit width");
        -:        -: 3625:      }
        -:        -: 3626:
    #####:    #####: 3627:   return _dst_val;
        -:        -: 3628:}
        -:        -: 3629:static nir_const_value
    #####:    #####: 3630:evaluate_fddx_coarse(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3631:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3632:{
    #####:    #####: 3633:   nir_const_value _dst_val = { {0, } };
        -:        -: 3634:
    #####:    #####: 3635:      switch (bit_size) {
        -:        -: 3636:      case 16: {
        -:        -: 3637:         
        -:        -: 3638:   
        -:        -: 3639:
        -:        -: 3640:         
    #####:    #####: 3641:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3642:               
    #####:    #####: 3643:            float16_t dst = 0.0;
        -:        -: 3644:
    #####:    #####: 3645:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3646:      }
        -:        -: 3647:
    #####:    #####: 3648:         break;
        -:        -: 3649:      }
        -:        -: 3650:      case 32: {
        -:        -: 3651:         
        -:        -: 3652:   
        -:        -: 3653:
        -:        -: 3654:         
    #####:    #####: 3655:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3656:               
    #####:    #####: 3657:            float32_t dst = 0.0;
        -:        -: 3658:
    #####:    #####: 3659:            _dst_val.f32[_i] = dst;
        -:        -: 3660:      }
        -:        -: 3661:
    #####:    #####: 3662:         break;
        -:        -: 3663:      }
        -:        -: 3664:      case 64: {
        -:        -: 3665:         
        -:        -: 3666:   
        -:        -: 3667:
        -:        -: 3668:         
    #####:    #####: 3669:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3670:               
    #####:    #####: 3671:            float64_t dst = 0.0;
        -:        -: 3672:
    #####:    #####: 3673:            _dst_val.f64[_i] = dst;
        -:        -: 3674:      }
        -:        -: 3675:
    #####:    #####: 3676:         break;
        -:        -: 3677:      }
        -:        -: 3678:
        -:        -: 3679:      default:
    #####:    #####: 3680:         unreachable("unknown bit width");
        -:        -: 3681:      }
        -:        -: 3682:
    #####:    #####: 3683:   return _dst_val;
        -:        -: 3684:}
        -:        -: 3685:static nir_const_value
    #####:    #####: 3686:evaluate_fddx_fine(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3687:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3688:{
    #####:    #####: 3689:   nir_const_value _dst_val = { {0, } };
        -:        -: 3690:
    #####:    #####: 3691:      switch (bit_size) {
        -:        -: 3692:      case 16: {
        -:        -: 3693:         
        -:        -: 3694:   
        -:        -: 3695:
        -:        -: 3696:         
    #####:    #####: 3697:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3698:               
    #####:    #####: 3699:            float16_t dst = 0.0;
        -:        -: 3700:
    #####:    #####: 3701:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3702:      }
        -:        -: 3703:
    #####:    #####: 3704:         break;
        -:        -: 3705:      }
        -:        -: 3706:      case 32: {
        -:        -: 3707:         
        -:        -: 3708:   
        -:        -: 3709:
        -:        -: 3710:         
    #####:    #####: 3711:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3712:               
    #####:    #####: 3713:            float32_t dst = 0.0;
        -:        -: 3714:
    #####:    #####: 3715:            _dst_val.f32[_i] = dst;
        -:        -: 3716:      }
        -:        -: 3717:
    #####:    #####: 3718:         break;
        -:        -: 3719:      }
        -:        -: 3720:      case 64: {
        -:        -: 3721:         
        -:        -: 3722:   
        -:        -: 3723:
        -:        -: 3724:         
    #####:    #####: 3725:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3726:               
    #####:    #####: 3727:            float64_t dst = 0.0;
        -:        -: 3728:
    #####:    #####: 3729:            _dst_val.f64[_i] = dst;
        -:        -: 3730:      }
        -:        -: 3731:
    #####:    #####: 3732:         break;
        -:        -: 3733:      }
        -:        -: 3734:
        -:        -: 3735:      default:
    #####:    #####: 3736:         unreachable("unknown bit width");
        -:        -: 3737:      }
        -:        -: 3738:
    #####:    #####: 3739:   return _dst_val;
        -:        -: 3740:}
        -:        -: 3741:static nir_const_value
    #####:    #####: 3742:evaluate_fddy(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3743:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3744:{
    #####:    #####: 3745:   nir_const_value _dst_val = { {0, } };
        -:        -: 3746:
    #####:    #####: 3747:      switch (bit_size) {
        -:        -: 3748:      case 16: {
        -:        -: 3749:         
        -:        -: 3750:   
        -:        -: 3751:
        -:        -: 3752:         
    #####:    #####: 3753:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3754:               
    #####:    #####: 3755:            float16_t dst = 0.0;
        -:        -: 3756:
    #####:    #####: 3757:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3758:      }
        -:        -: 3759:
    #####:    #####: 3760:         break;
        -:        -: 3761:      }
        -:        -: 3762:      case 32: {
        -:        -: 3763:         
        -:        -: 3764:   
        -:        -: 3765:
        -:        -: 3766:         
    #####:    #####: 3767:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3768:               
    #####:    #####: 3769:            float32_t dst = 0.0;
        -:        -: 3770:
    #####:    #####: 3771:            _dst_val.f32[_i] = dst;
        -:        -: 3772:      }
        -:        -: 3773:
    #####:    #####: 3774:         break;
        -:        -: 3775:      }
        -:        -: 3776:      case 64: {
        -:        -: 3777:         
        -:        -: 3778:   
        -:        -: 3779:
        -:        -: 3780:         
    #####:    #####: 3781:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3782:               
    #####:    #####: 3783:            float64_t dst = 0.0;
        -:        -: 3784:
    #####:    #####: 3785:            _dst_val.f64[_i] = dst;
        -:        -: 3786:      }
        -:        -: 3787:
    #####:    #####: 3788:         break;
        -:        -: 3789:      }
        -:        -: 3790:
        -:        -: 3791:      default:
    #####:    #####: 3792:         unreachable("unknown bit width");
        -:        -: 3793:      }
        -:        -: 3794:
    #####:    #####: 3795:   return _dst_val;
        -:        -: 3796:}
        -:        -: 3797:static nir_const_value
    #####:    #####: 3798:evaluate_fddy_coarse(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3799:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3800:{
    #####:    #####: 3801:   nir_const_value _dst_val = { {0, } };
        -:        -: 3802:
    #####:    #####: 3803:      switch (bit_size) {
        -:        -: 3804:      case 16: {
        -:        -: 3805:         
        -:        -: 3806:   
        -:        -: 3807:
        -:        -: 3808:         
    #####:    #####: 3809:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3810:               
    #####:    #####: 3811:            float16_t dst = 0.0;
        -:        -: 3812:
    #####:    #####: 3813:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3814:      }
        -:        -: 3815:
    #####:    #####: 3816:         break;
        -:        -: 3817:      }
        -:        -: 3818:      case 32: {
        -:        -: 3819:         
        -:        -: 3820:   
        -:        -: 3821:
        -:        -: 3822:         
    #####:    #####: 3823:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3824:               
    #####:    #####: 3825:            float32_t dst = 0.0;
        -:        -: 3826:
    #####:    #####: 3827:            _dst_val.f32[_i] = dst;
        -:        -: 3828:      }
        -:        -: 3829:
    #####:    #####: 3830:         break;
        -:        -: 3831:      }
        -:        -: 3832:      case 64: {
        -:        -: 3833:         
        -:        -: 3834:   
        -:        -: 3835:
        -:        -: 3836:         
    #####:    #####: 3837:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3838:               
    #####:    #####: 3839:            float64_t dst = 0.0;
        -:        -: 3840:
    #####:    #####: 3841:            _dst_val.f64[_i] = dst;
        -:        -: 3842:      }
        -:        -: 3843:
    #####:    #####: 3844:         break;
        -:        -: 3845:      }
        -:        -: 3846:
        -:        -: 3847:      default:
    #####:    #####: 3848:         unreachable("unknown bit width");
        -:        -: 3849:      }
        -:        -: 3850:
    #####:    #####: 3851:   return _dst_val;
        -:        -: 3852:}
        -:        -: 3853:static nir_const_value
    #####:    #####: 3854:evaluate_fddy_fine(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3855:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3856:{
    #####:    #####: 3857:   nir_const_value _dst_val = { {0, } };
        -:        -: 3858:
    #####:    #####: 3859:      switch (bit_size) {
        -:        -: 3860:      case 16: {
        -:        -: 3861:         
        -:        -: 3862:   
        -:        -: 3863:
        -:        -: 3864:         
    #####:    #####: 3865:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3866:               
    #####:    #####: 3867:            float16_t dst = 0.0;
        -:        -: 3868:
    #####:    #####: 3869:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3870:      }
        -:        -: 3871:
    #####:    #####: 3872:         break;
        -:        -: 3873:      }
        -:        -: 3874:      case 32: {
        -:        -: 3875:         
        -:        -: 3876:   
        -:        -: 3877:
        -:        -: 3878:         
    #####:    #####: 3879:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3880:               
    #####:    #####: 3881:            float32_t dst = 0.0;
        -:        -: 3882:
    #####:    #####: 3883:            _dst_val.f32[_i] = dst;
        -:        -: 3884:      }
        -:        -: 3885:
    #####:    #####: 3886:         break;
        -:        -: 3887:      }
        -:        -: 3888:      case 64: {
        -:        -: 3889:         
        -:        -: 3890:   
        -:        -: 3891:
        -:        -: 3892:         
    #####:    #####: 3893:      for (unsigned _i = 0; _i < num_components; _i++) {
        -:        -: 3894:               
    #####:    #####: 3895:            float64_t dst = 0.0;
        -:        -: 3896:
    #####:    #####: 3897:            _dst_val.f64[_i] = dst;
        -:        -: 3898:      }
        -:        -: 3899:
    #####:    #####: 3900:         break;
        -:        -: 3901:      }
        -:        -: 3902:
        -:        -: 3903:      default:
    #####:    #####: 3904:         unreachable("unknown bit width");
        -:        -: 3905:      }
        -:        -: 3906:
    #####:    #####: 3907:   return _dst_val;
        -:        -: 3908:}
        -:        -: 3909:static nir_const_value
    #####:    #####: 3910:evaluate_fdiv(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3911:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3912:{
    #####:    #####: 3913:   nir_const_value _dst_val = { {0, } };
        -:        -: 3914:
    #####:    #####: 3915:      switch (bit_size) {
        -:        -: 3916:      case 16: {
        -:        -: 3917:         
        -:        -: 3918:   
        -:        -: 3919:
        -:        -: 3920:                  
    #####:    #####: 3921:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3922:               const float src0 =
    #####:    #####: 3923:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 3924:               const float src1 =
    #####:    #####: 3925:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 3926:
    #####:    #####: 3927:            float16_t dst = src0 / src1;
        -:        -: 3928:
    #####:    #####: 3929:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 3930:      }
        -:        -: 3931:
    #####:    #####: 3932:         break;
        -:        -: 3933:      }
        -:        -: 3934:      case 32: {
        -:        -: 3935:         
        -:        -: 3936:   
        -:        -: 3937:
        -:        -: 3938:                  
    #####:    #####: 3939:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3940:               const float32_t src0 =
        -:        -: 3941:                  _src[0].f32[_i];
    #####:    #####: 3942:               const float32_t src1 =
    #####:    #####: 3943:                  _src[1].f32[_i];
        -:        -: 3944:
    #####:    #####: 3945:            float32_t dst = src0 / src1;
        -:        -: 3946:
    #####:    #####: 3947:            _dst_val.f32[_i] = dst;
        -:        -: 3948:      }
        -:        -: 3949:
    #####:    #####: 3950:         break;
        -:        -: 3951:      }
        -:        -: 3952:      case 64: {
        -:        -: 3953:         
        -:        -: 3954:   
        -:        -: 3955:
        -:        -: 3956:                  
    #####:    #####: 3957:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 3958:               const float64_t src0 =
        -:        -: 3959:                  _src[0].f64[_i];
    #####:    #####: 3960:               const float64_t src1 =
    #####:    #####: 3961:                  _src[1].f64[_i];
        -:        -: 3962:
    #####:    #####: 3963:            float64_t dst = src0 / src1;
        -:        -: 3964:
    #####:    #####: 3965:            _dst_val.f64[_i] = dst;
        -:        -: 3966:      }
        -:        -: 3967:
    #####:    #####: 3968:         break;
        -:        -: 3969:      }
        -:        -: 3970:
        -:        -: 3971:      default:
    #####:    #####: 3972:         unreachable("unknown bit width");
        -:        -: 3973:      }
        -:        -: 3974:
    #####:    #####: 3975:   return _dst_val;
        -:        -: 3976:}
        -:        -: 3977:static nir_const_value
    #####:    #####: 3978:evaluate_fdot2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 3979:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 3980:{
    #####:    #####: 3981:   nir_const_value _dst_val = { {0, } };
        -:        -: 3982:
    #####:    #####: 3983:      switch (bit_size) {
        -:        -: 3984:      case 16: {
        -:        -: 3985:         
        -:        -: 3986:   
        -:        -: 3987:
        -:        -: 3988:
    #####:    #####: 3989:      const struct float16_vec src0 = {
    #####:    #####: 3990:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 3991:            _mesa_half_to_float(_src[0].u16[1]),
        -:        -: 3992:         0,
        -:        -: 3993:         0,
        -:        -: 3994:      };
        -:        -: 3995:
    #####:    #####: 3996:      const struct float16_vec src1 = {
    #####:    #####: 3997:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 3998:            _mesa_half_to_float(_src[1].u16[1]),
        -:        -: 3999:         0,
        -:        -: 4000:         0,
        -:        -: 4001:      };
        -:        -: 4002:
        -:        -: 4003:      struct float16_vec dst;
        -:        -: 4004:
    #####:    #####: 4005:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4006:
    #####:    #####: 4007:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 4008:
    #####:    #####: 4009:         break;
        -:        -: 4010:      }
        -:        -: 4011:      case 32: {
        -:        -: 4012:         
        -:        -: 4013:   
        -:        -: 4014:
        -:        -: 4015:
    #####:    #####: 4016:      const struct float32_vec src0 = {
    #####:    #####: 4017:            _src[0].f32[0],
    #####:    #####: 4018:            _src[0].f32[1],
        -:        -: 4019:         0,
        -:        -: 4020:         0,
        -:        -: 4021:      };
        -:        -: 4022:
    #####:    #####: 4023:      const struct float32_vec src1 = {
    #####:    #####: 4024:            _src[1].f32[0],
    #####:    #####: 4025:            _src[1].f32[1],
        -:        -: 4026:         0,
        -:        -: 4027:         0,
        -:        -: 4028:      };
        -:        -: 4029:
        -:        -: 4030:      struct float32_vec dst;
        -:        -: 4031:
    #####:    #####: 4032:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4033:
    #####:    #####: 4034:            _dst_val.f32[0] = dst.x;
        -:        -: 4035:
    #####:    #####: 4036:         break;
        -:        -: 4037:      }
        -:        -: 4038:      case 64: {
        -:        -: 4039:         
        -:        -: 4040:   
        -:        -: 4041:
        -:        -: 4042:
    #####:    #####: 4043:      const struct float64_vec src0 = {
    #####:    #####: 4044:            _src[0].f64[0],
    #####:    #####: 4045:            _src[0].f64[1],
        -:        -: 4046:         0,
        -:        -: 4047:         0,
        -:        -: 4048:      };
        -:        -: 4049:
    #####:    #####: 4050:      const struct float64_vec src1 = {
    #####:    #####: 4051:            _src[1].f64[0],
    #####:    #####: 4052:            _src[1].f64[1],
        -:        -: 4053:         0,
        -:        -: 4054:         0,
        -:        -: 4055:      };
        -:        -: 4056:
        -:        -: 4057:      struct float64_vec dst;
        -:        -: 4058:
    #####:    #####: 4059:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4060:
    #####:    #####: 4061:            _dst_val.f64[0] = dst.x;
        -:        -: 4062:
    #####:    #####: 4063:         break;
        -:        -: 4064:      }
        -:        -: 4065:
        -:        -: 4066:      default:
    #####:    #####: 4067:         unreachable("unknown bit width");
        -:        -: 4068:      }
        -:        -: 4069:
    #####:    #####: 4070:   return _dst_val;
        -:        -: 4071:}
        -:        -: 4072:static nir_const_value
    #####:    #####: 4073:evaluate_fdot3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4074:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4075:{
    #####:    #####: 4076:   nir_const_value _dst_val = { {0, } };
        -:        -: 4077:
    #####:    #####: 4078:      switch (bit_size) {
        -:        -: 4079:      case 16: {
        -:        -: 4080:         
        -:        -: 4081:   
        -:        -: 4082:
        -:        -: 4083:
    #####:    #####: 4084:      const struct float16_vec src0 = {
    #####:    #####: 4085:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4086:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4087:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -: 4088:         0,
        -:        -: 4089:      };
        -:        -: 4090:
    #####:    #####: 4091:      const struct float16_vec src1 = {
    #####:    #####: 4092:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4093:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4094:            _mesa_half_to_float(_src[1].u16[2]),
        -:        -: 4095:         0,
        -:        -: 4096:      };
        -:        -: 4097:
        -:        -: 4098:      struct float16_vec dst;
        -:        -: 4099:
    #####:    #####: 4100:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4101:
    #####:    #####: 4102:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 4103:
    #####:    #####: 4104:         break;
        -:        -: 4105:      }
        -:        -: 4106:      case 32: {
        -:        -: 4107:         
        -:        -: 4108:   
        -:        -: 4109:
        -:        -: 4110:
    #####:    #####: 4111:      const struct float32_vec src0 = {
    #####:    #####: 4112:            _src[0].f32[0],
    #####:    #####: 4113:            _src[0].f32[1],
    #####:    #####: 4114:            _src[0].f32[2],
        -:        -: 4115:         0,
        -:        -: 4116:      };
        -:        -: 4117:
    #####:    #####: 4118:      const struct float32_vec src1 = {
    #####:    #####: 4119:            _src[1].f32[0],
    #####:    #####: 4120:            _src[1].f32[1],
    #####:    #####: 4121:            _src[1].f32[2],
        -:        -: 4122:         0,
        -:        -: 4123:      };
        -:        -: 4124:
        -:        -: 4125:      struct float32_vec dst;
        -:        -: 4126:
    #####:    #####: 4127:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4128:
    #####:    #####: 4129:            _dst_val.f32[0] = dst.x;
        -:        -: 4130:
    #####:    #####: 4131:         break;
        -:        -: 4132:      }
        -:        -: 4133:      case 64: {
        -:        -: 4134:         
        -:        -: 4135:   
        -:        -: 4136:
        -:        -: 4137:
    #####:    #####: 4138:      const struct float64_vec src0 = {
    #####:    #####: 4139:            _src[0].f64[0],
    #####:    #####: 4140:            _src[0].f64[1],
    #####:    #####: 4141:            _src[0].f64[2],
        -:        -: 4142:         0,
        -:        -: 4143:      };
        -:        -: 4144:
    #####:    #####: 4145:      const struct float64_vec src1 = {
    #####:    #####: 4146:            _src[1].f64[0],
    #####:    #####: 4147:            _src[1].f64[1],
    #####:    #####: 4148:            _src[1].f64[2],
        -:        -: 4149:         0,
        -:        -: 4150:      };
        -:        -: 4151:
        -:        -: 4152:      struct float64_vec dst;
        -:        -: 4153:
    #####:    #####: 4154:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4155:
    #####:    #####: 4156:            _dst_val.f64[0] = dst.x;
        -:        -: 4157:
    #####:    #####: 4158:         break;
        -:        -: 4159:      }
        -:        -: 4160:
        -:        -: 4161:      default:
    #####:    #####: 4162:         unreachable("unknown bit width");
        -:        -: 4163:      }
        -:        -: 4164:
    #####:    #####: 4165:   return _dst_val;
        -:        -: 4166:}
        -:        -: 4167:static nir_const_value
    #####:    #####: 4168:evaluate_fdot4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4169:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4170:{
    #####:    #####: 4171:   nir_const_value _dst_val = { {0, } };
        -:        -: 4172:
    #####:    #####: 4173:      switch (bit_size) {
        -:        -: 4174:      case 16: {
        -:        -: 4175:         
        -:        -: 4176:   
        -:        -: 4177:
        -:        -: 4178:
    #####:    #####: 4179:      const struct float16_vec src0 = {
    #####:    #####: 4180:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4181:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4182:            _mesa_half_to_float(_src[0].u16[2]),
    #####:    #####: 4183:            _mesa_half_to_float(_src[0].u16[3]),
        -:        -: 4184:      };
        -:        -: 4185:
    #####:    #####: 4186:      const struct float16_vec src1 = {
    #####:    #####: 4187:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4188:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4189:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####: 4190:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -: 4191:      };
        -:        -: 4192:
        -:        -: 4193:      struct float16_vec dst;
        -:        -: 4194:
    #####:    #####: 4195:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4196:
    #####:    #####: 4197:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 4198:
    #####:    #####: 4199:         break;
        -:        -: 4200:      }
        -:        -: 4201:      case 32: {
        -:        -: 4202:         
        -:        -: 4203:   
        -:        -: 4204:
        -:        -: 4205:
    #####:    #####: 4206:      const struct float32_vec src0 = {
    #####:    #####: 4207:            _src[0].f32[0],
    #####:    #####: 4208:            _src[0].f32[1],
    #####:    #####: 4209:            _src[0].f32[2],
    #####:    #####: 4210:            _src[0].f32[3],
        -:        -: 4211:      };
        -:        -: 4212:
    #####:    #####: 4213:      const struct float32_vec src1 = {
    #####:    #####: 4214:            _src[1].f32[0],
    #####:    #####: 4215:            _src[1].f32[1],
    #####:    #####: 4216:            _src[1].f32[2],
    #####:    #####: 4217:            _src[1].f32[3],
        -:        -: 4218:      };
        -:        -: 4219:
        -:        -: 4220:      struct float32_vec dst;
        -:        -: 4221:
    #####:    #####: 4222:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4223:
    #####:    #####: 4224:            _dst_val.f32[0] = dst.x;
        -:        -: 4225:
    #####:    #####: 4226:         break;
        -:        -: 4227:      }
        -:        -: 4228:      case 64: {
        -:        -: 4229:         
        -:        -: 4230:   
        -:        -: 4231:
        -:        -: 4232:
    #####:    #####: 4233:      const struct float64_vec src0 = {
    #####:    #####: 4234:            _src[0].f64[0],
    #####:    #####: 4235:            _src[0].f64[1],
    #####:    #####: 4236:            _src[0].f64[2],
    #####:    #####: 4237:            _src[0].f64[3],
        -:        -: 4238:      };
        -:        -: 4239:
    #####:    #####: 4240:      const struct float64_vec src1 = {
    #####:    #####: 4241:            _src[1].f64[0],
    #####:    #####: 4242:            _src[1].f64[1],
    #####:    #####: 4243:            _src[1].f64[2],
    #####:    #####: 4244:            _src[1].f64[3],
        -:        -: 4245:      };
        -:        -: 4246:
        -:        -: 4247:      struct float64_vec dst;
        -:        -: 4248:
    #####:    #####: 4249:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4250:
    #####:    #####: 4251:            _dst_val.f64[0] = dst.x;
        -:        -: 4252:
    #####:    #####: 4253:         break;
        -:        -: 4254:      }
        -:        -: 4255:
        -:        -: 4256:      default:
    #####:    #####: 4257:         unreachable("unknown bit width");
        -:        -: 4258:      }
        -:        -: 4259:
    #####:    #####: 4260:   return _dst_val;
        -:        -: 4261:}
        -:        -: 4262:static nir_const_value
    #####:    #####: 4263:evaluate_fdot_replicated2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4264:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4265:{
    #####:    #####: 4266:   nir_const_value _dst_val = { {0, } };
        -:        -: 4267:
    #####:    #####: 4268:      switch (bit_size) {
        -:        -: 4269:      case 16: {
        -:        -: 4270:         
        -:        -: 4271:   
        -:        -: 4272:
        -:        -: 4273:
    #####:    #####: 4274:      const struct float16_vec src0 = {
    #####:    #####: 4275:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4276:            _mesa_half_to_float(_src[0].u16[1]),
        -:        -: 4277:         0,
        -:        -: 4278:         0,
        -:        -: 4279:      };
        -:        -: 4280:
    #####:    #####: 4281:      const struct float16_vec src1 = {
    #####:    #####: 4282:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4283:            _mesa_half_to_float(_src[1].u16[1]),
        -:        -: 4284:         0,
        -:        -: 4285:         0,
        -:        -: 4286:      };
        -:        -: 4287:
        -:        -: 4288:      struct float16_vec dst;
        -:        -: 4289:
    #####:    #####: 4290:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4291:
    #####:    #####: 4292:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 4293:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 4294:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 4295:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 4296:
    #####:    #####: 4297:         break;
        -:        -: 4298:      }
        -:        -: 4299:      case 32: {
        -:        -: 4300:         
        -:        -: 4301:   
        -:        -: 4302:
        -:        -: 4303:
    #####:    #####: 4304:      const struct float32_vec src0 = {
    #####:    #####: 4305:            _src[0].f32[0],
    #####:    #####: 4306:            _src[0].f32[1],
        -:        -: 4307:         0,
        -:        -: 4308:         0,
        -:        -: 4309:      };
        -:        -: 4310:
    #####:    #####: 4311:      const struct float32_vec src1 = {
    #####:    #####: 4312:            _src[1].f32[0],
    #####:    #####: 4313:            _src[1].f32[1],
        -:        -: 4314:         0,
        -:        -: 4315:         0,
        -:        -: 4316:      };
        -:        -: 4317:
        -:        -: 4318:      struct float32_vec dst;
        -:        -: 4319:
    #####:    #####: 4320:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4321:
    #####:    #####: 4322:            _dst_val.f32[0] = dst.x;
    #####:    #####: 4323:            _dst_val.f32[1] = dst.y;
    #####:    #####: 4324:            _dst_val.f32[2] = dst.z;
    #####:    #####: 4325:            _dst_val.f32[3] = dst.w;
        -:        -: 4326:
    #####:    #####: 4327:         break;
        -:        -: 4328:      }
        -:        -: 4329:      case 64: {
        -:        -: 4330:         
        -:        -: 4331:   
        -:        -: 4332:
        -:        -: 4333:
    #####:    #####: 4334:      const struct float64_vec src0 = {
    #####:    #####: 4335:            _src[0].f64[0],
    #####:    #####: 4336:            _src[0].f64[1],
        -:        -: 4337:         0,
        -:        -: 4338:         0,
        -:        -: 4339:      };
        -:        -: 4340:
    #####:    #####: 4341:      const struct float64_vec src1 = {
    #####:    #####: 4342:            _src[1].f64[0],
    #####:    #####: 4343:            _src[1].f64[1],
        -:        -: 4344:         0,
        -:        -: 4345:         0,
        -:        -: 4346:      };
        -:        -: 4347:
        -:        -: 4348:      struct float64_vec dst;
        -:        -: 4349:
    #####:    #####: 4350:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y));
        -:        -: 4351:
    #####:    #####: 4352:            _dst_val.f64[0] = dst.x;
    #####:    #####: 4353:            _dst_val.f64[1] = dst.y;
    #####:    #####: 4354:            _dst_val.f64[2] = dst.z;
    #####:    #####: 4355:            _dst_val.f64[3] = dst.w;
        -:        -: 4356:
    #####:    #####: 4357:         break;
        -:        -: 4358:      }
        -:        -: 4359:
        -:        -: 4360:      default:
    #####:    #####: 4361:         unreachable("unknown bit width");
        -:        -: 4362:      }
        -:        -: 4363:
    #####:    #####: 4364:   return _dst_val;
        -:        -: 4365:}
        -:        -: 4366:static nir_const_value
    #####:    #####: 4367:evaluate_fdot_replicated3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4368:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4369:{
    #####:    #####: 4370:   nir_const_value _dst_val = { {0, } };
        -:        -: 4371:
    #####:    #####: 4372:      switch (bit_size) {
        -:        -: 4373:      case 16: {
        -:        -: 4374:         
        -:        -: 4375:   
        -:        -: 4376:
        -:        -: 4377:
    #####:    #####: 4378:      const struct float16_vec src0 = {
    #####:    #####: 4379:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4380:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4381:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -: 4382:         0,
        -:        -: 4383:      };
        -:        -: 4384:
    #####:    #####: 4385:      const struct float16_vec src1 = {
    #####:    #####: 4386:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4387:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4388:            _mesa_half_to_float(_src[1].u16[2]),
        -:        -: 4389:         0,
        -:        -: 4390:      };
        -:        -: 4391:
        -:        -: 4392:      struct float16_vec dst;
        -:        -: 4393:
    #####:    #####: 4394:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4395:
    #####:    #####: 4396:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 4397:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 4398:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 4399:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 4400:
    #####:    #####: 4401:         break;
        -:        -: 4402:      }
        -:        -: 4403:      case 32: {
        -:        -: 4404:         
        -:        -: 4405:   
        -:        -: 4406:
        -:        -: 4407:
    #####:    #####: 4408:      const struct float32_vec src0 = {
    #####:    #####: 4409:            _src[0].f32[0],
    #####:    #####: 4410:            _src[0].f32[1],
    #####:    #####: 4411:            _src[0].f32[2],
        -:        -: 4412:         0,
        -:        -: 4413:      };
        -:        -: 4414:
    #####:    #####: 4415:      const struct float32_vec src1 = {
    #####:    #####: 4416:            _src[1].f32[0],
    #####:    #####: 4417:            _src[1].f32[1],
    #####:    #####: 4418:            _src[1].f32[2],
        -:        -: 4419:         0,
        -:        -: 4420:      };
        -:        -: 4421:
        -:        -: 4422:      struct float32_vec dst;
        -:        -: 4423:
    #####:    #####: 4424:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4425:
    #####:    #####: 4426:            _dst_val.f32[0] = dst.x;
    #####:    #####: 4427:            _dst_val.f32[1] = dst.y;
    #####:    #####: 4428:            _dst_val.f32[2] = dst.z;
    #####:    #####: 4429:            _dst_val.f32[3] = dst.w;
        -:        -: 4430:
    #####:    #####: 4431:         break;
        -:        -: 4432:      }
        -:        -: 4433:      case 64: {
        -:        -: 4434:         
        -:        -: 4435:   
        -:        -: 4436:
        -:        -: 4437:
    #####:    #####: 4438:      const struct float64_vec src0 = {
    #####:    #####: 4439:            _src[0].f64[0],
    #####:    #####: 4440:            _src[0].f64[1],
    #####:    #####: 4441:            _src[0].f64[2],
        -:        -: 4442:         0,
        -:        -: 4443:      };
        -:        -: 4444:
    #####:    #####: 4445:      const struct float64_vec src1 = {
    #####:    #####: 4446:            _src[1].f64[0],
    #####:    #####: 4447:            _src[1].f64[1],
    #####:    #####: 4448:            _src[1].f64[2],
        -:        -: 4449:         0,
        -:        -: 4450:      };
        -:        -: 4451:
        -:        -: 4452:      struct float64_vec dst;
        -:        -: 4453:
    #####:    #####: 4454:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z));
        -:        -: 4455:
    #####:    #####: 4456:            _dst_val.f64[0] = dst.x;
    #####:    #####: 4457:            _dst_val.f64[1] = dst.y;
    #####:    #####: 4458:            _dst_val.f64[2] = dst.z;
    #####:    #####: 4459:            _dst_val.f64[3] = dst.w;
        -:        -: 4460:
    #####:    #####: 4461:         break;
        -:        -: 4462:      }
        -:        -: 4463:
        -:        -: 4464:      default:
    #####:    #####: 4465:         unreachable("unknown bit width");
        -:        -: 4466:      }
        -:        -: 4467:
    #####:    #####: 4468:   return _dst_val;
        -:        -: 4469:}
        -:        -: 4470:static nir_const_value
    #####:    #####: 4471:evaluate_fdot_replicated4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4472:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4473:{
    #####:    #####: 4474:   nir_const_value _dst_val = { {0, } };
        -:        -: 4475:
    #####:    #####: 4476:      switch (bit_size) {
        -:        -: 4477:      case 16: {
        -:        -: 4478:         
        -:        -: 4479:   
        -:        -: 4480:
        -:        -: 4481:
    #####:    #####: 4482:      const struct float16_vec src0 = {
    #####:    #####: 4483:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4484:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4485:            _mesa_half_to_float(_src[0].u16[2]),
    #####:    #####: 4486:            _mesa_half_to_float(_src[0].u16[3]),
        -:        -: 4487:      };
        -:        -: 4488:
    #####:    #####: 4489:      const struct float16_vec src1 = {
    #####:    #####: 4490:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4491:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4492:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####: 4493:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -: 4494:      };
        -:        -: 4495:
        -:        -: 4496:      struct float16_vec dst;
        -:        -: 4497:
    #####:    #####: 4498:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4499:
    #####:    #####: 4500:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 4501:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 4502:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 4503:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 4504:
    #####:    #####: 4505:         break;
        -:        -: 4506:      }
        -:        -: 4507:      case 32: {
        -:        -: 4508:         
        -:        -: 4509:   
        -:        -: 4510:
        -:        -: 4511:
    #####:    #####: 4512:      const struct float32_vec src0 = {
    #####:    #####: 4513:            _src[0].f32[0],
    #####:    #####: 4514:            _src[0].f32[1],
    #####:    #####: 4515:            _src[0].f32[2],
    #####:    #####: 4516:            _src[0].f32[3],
        -:        -: 4517:      };
        -:        -: 4518:
    #####:    #####: 4519:      const struct float32_vec src1 = {
    #####:    #####: 4520:            _src[1].f32[0],
    #####:    #####: 4521:            _src[1].f32[1],
    #####:    #####: 4522:            _src[1].f32[2],
    #####:    #####: 4523:            _src[1].f32[3],
        -:        -: 4524:      };
        -:        -: 4525:
        -:        -: 4526:      struct float32_vec dst;
        -:        -: 4527:
    #####:    #####: 4528:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4529:
    #####:    #####: 4530:            _dst_val.f32[0] = dst.x;
    #####:    #####: 4531:            _dst_val.f32[1] = dst.y;
    #####:    #####: 4532:            _dst_val.f32[2] = dst.z;
    #####:    #####: 4533:            _dst_val.f32[3] = dst.w;
        -:        -: 4534:
    #####:    #####: 4535:         break;
        -:        -: 4536:      }
        -:        -: 4537:      case 64: {
        -:        -: 4538:         
        -:        -: 4539:   
        -:        -: 4540:
        -:        -: 4541:
    #####:    #####: 4542:      const struct float64_vec src0 = {
    #####:    #####: 4543:            _src[0].f64[0],
    #####:    #####: 4544:            _src[0].f64[1],
    #####:    #####: 4545:            _src[0].f64[2],
    #####:    #####: 4546:            _src[0].f64[3],
        -:        -: 4547:      };
        -:        -: 4548:
    #####:    #####: 4549:      const struct float64_vec src1 = {
    #####:    #####: 4550:            _src[1].f64[0],
    #####:    #####: 4551:            _src[1].f64[1],
    #####:    #####: 4552:            _src[1].f64[2],
    #####:    #####: 4553:            _src[1].f64[3],
        -:        -: 4554:      };
        -:        -: 4555:
        -:        -: 4556:      struct float64_vec dst;
        -:        -: 4557:
    #####:    #####: 4558:         dst.x = dst.y = dst.z = dst.w = ((src0.x * src1.x) + (src0.y * src1.y) + (src0.z * src1.z) + (src0.w * src1.w));
        -:        -: 4559:
    #####:    #####: 4560:            _dst_val.f64[0] = dst.x;
    #####:    #####: 4561:            _dst_val.f64[1] = dst.y;
    #####:    #####: 4562:            _dst_val.f64[2] = dst.z;
    #####:    #####: 4563:            _dst_val.f64[3] = dst.w;
        -:        -: 4564:
    #####:    #####: 4565:         break;
        -:        -: 4566:      }
        -:        -: 4567:
        -:        -: 4568:      default:
    #####:    #####: 4569:         unreachable("unknown bit width");
        -:        -: 4570:      }
        -:        -: 4571:
    #####:    #####: 4572:   return _dst_val;
        -:        -: 4573:}
        -:        -: 4574:static nir_const_value
    #####:    #####: 4575:evaluate_fdph(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4576:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4577:{
    #####:    #####: 4578:   nir_const_value _dst_val = { {0, } };
        -:        -: 4579:
    #####:    #####: 4580:      switch (bit_size) {
        -:        -: 4581:      case 16: {
        -:        -: 4582:         
        -:        -: 4583:   
        -:        -: 4584:
        -:        -: 4585:
    #####:    #####: 4586:      const struct float16_vec src0 = {
    #####:    #####: 4587:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4588:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4589:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -: 4590:         0,
        -:        -: 4591:      };
        -:        -: 4592:
    #####:    #####: 4593:      const struct float16_vec src1 = {
    #####:    #####: 4594:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4595:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4596:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####: 4597:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -: 4598:      };
        -:        -: 4599:
        -:        -: 4600:      struct float16_vec dst;
        -:        -: 4601:
    #####:    #####: 4602:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4603:
    #####:    #####: 4604:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 4605:
    #####:    #####: 4606:         break;
        -:        -: 4607:      }
        -:        -: 4608:      case 32: {
        -:        -: 4609:         
        -:        -: 4610:   
        -:        -: 4611:
        -:        -: 4612:
    #####:    #####: 4613:      const struct float32_vec src0 = {
    #####:    #####: 4614:            _src[0].f32[0],
    #####:    #####: 4615:            _src[0].f32[1],
    #####:    #####: 4616:            _src[0].f32[2],
        -:        -: 4617:         0,
        -:        -: 4618:      };
        -:        -: 4619:
    #####:    #####: 4620:      const struct float32_vec src1 = {
    #####:    #####: 4621:            _src[1].f32[0],
    #####:    #####: 4622:            _src[1].f32[1],
    #####:    #####: 4623:            _src[1].f32[2],
    #####:    #####: 4624:            _src[1].f32[3],
        -:        -: 4625:      };
        -:        -: 4626:
        -:        -: 4627:      struct float32_vec dst;
        -:        -: 4628:
    #####:    #####: 4629:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4630:
    #####:    #####: 4631:            _dst_val.f32[0] = dst.x;
        -:        -: 4632:
    #####:    #####: 4633:         break;
        -:        -: 4634:      }
        -:        -: 4635:      case 64: {
        -:        -: 4636:         
        -:        -: 4637:   
        -:        -: 4638:
        -:        -: 4639:
    #####:    #####: 4640:      const struct float64_vec src0 = {
    #####:    #####: 4641:            _src[0].f64[0],
    #####:    #####: 4642:            _src[0].f64[1],
    #####:    #####: 4643:            _src[0].f64[2],
        -:        -: 4644:         0,
        -:        -: 4645:      };
        -:        -: 4646:
    #####:    #####: 4647:      const struct float64_vec src1 = {
    #####:    #####: 4648:            _src[1].f64[0],
    #####:    #####: 4649:            _src[1].f64[1],
    #####:    #####: 4650:            _src[1].f64[2],
    #####:    #####: 4651:            _src[1].f64[3],
        -:        -: 4652:      };
        -:        -: 4653:
        -:        -: 4654:      struct float64_vec dst;
        -:        -: 4655:
    #####:    #####: 4656:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4657:
    #####:    #####: 4658:            _dst_val.f64[0] = dst.x;
        -:        -: 4659:
    #####:    #####: 4660:         break;
        -:        -: 4661:      }
        -:        -: 4662:
        -:        -: 4663:      default:
    #####:    #####: 4664:         unreachable("unknown bit width");
        -:        -: 4665:      }
        -:        -: 4666:
    #####:    #####: 4667:   return _dst_val;
        -:        -: 4668:}
        -:        -: 4669:static nir_const_value
    #####:    #####: 4670:evaluate_fdph_replicated(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4671:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4672:{
    #####:    #####: 4673:   nir_const_value _dst_val = { {0, } };
        -:        -: 4674:
    #####:    #####: 4675:      switch (bit_size) {
        -:        -: 4676:      case 16: {
        -:        -: 4677:         
        -:        -: 4678:   
        -:        -: 4679:
        -:        -: 4680:
    #####:    #####: 4681:      const struct float16_vec src0 = {
    #####:    #####: 4682:            _mesa_half_to_float(_src[0].u16[0]),
    #####:    #####: 4683:            _mesa_half_to_float(_src[0].u16[1]),
    #####:    #####: 4684:            _mesa_half_to_float(_src[0].u16[2]),
        -:        -: 4685:         0,
        -:        -: 4686:      };
        -:        -: 4687:
    #####:    #####: 4688:      const struct float16_vec src1 = {
    #####:    #####: 4689:            _mesa_half_to_float(_src[1].u16[0]),
    #####:    #####: 4690:            _mesa_half_to_float(_src[1].u16[1]),
    #####:    #####: 4691:            _mesa_half_to_float(_src[1].u16[2]),
    #####:    #####: 4692:            _mesa_half_to_float(_src[1].u16[3]),
        -:        -: 4693:      };
        -:        -: 4694:
        -:        -: 4695:      struct float16_vec dst;
        -:        -: 4696:
    #####:    #####: 4697:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4698:
    #####:    #####: 4699:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 4700:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 4701:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 4702:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 4703:
    #####:    #####: 4704:         break;
        -:        -: 4705:      }
        -:        -: 4706:      case 32: {
        -:        -: 4707:         
        -:        -: 4708:   
        -:        -: 4709:
        -:        -: 4710:
    #####:    #####: 4711:      const struct float32_vec src0 = {
    #####:    #####: 4712:            _src[0].f32[0],
    #####:    #####: 4713:            _src[0].f32[1],
    #####:    #####: 4714:            _src[0].f32[2],
        -:        -: 4715:         0,
        -:        -: 4716:      };
        -:        -: 4717:
    #####:    #####: 4718:      const struct float32_vec src1 = {
    #####:    #####: 4719:            _src[1].f32[0],
    #####:    #####: 4720:            _src[1].f32[1],
    #####:    #####: 4721:            _src[1].f32[2],
    #####:    #####: 4722:            _src[1].f32[3],
        -:        -: 4723:      };
        -:        -: 4724:
        -:        -: 4725:      struct float32_vec dst;
        -:        -: 4726:
    #####:    #####: 4727:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4728:
    #####:    #####: 4729:            _dst_val.f32[0] = dst.x;
    #####:    #####: 4730:            _dst_val.f32[1] = dst.y;
    #####:    #####: 4731:            _dst_val.f32[2] = dst.z;
    #####:    #####: 4732:            _dst_val.f32[3] = dst.w;
        -:        -: 4733:
    #####:    #####: 4734:         break;
        -:        -: 4735:      }
        -:        -: 4736:      case 64: {
        -:        -: 4737:         
        -:        -: 4738:   
        -:        -: 4739:
        -:        -: 4740:
    #####:    #####: 4741:      const struct float64_vec src0 = {
    #####:    #####: 4742:            _src[0].f64[0],
    #####:    #####: 4743:            _src[0].f64[1],
    #####:    #####: 4744:            _src[0].f64[2],
        -:        -: 4745:         0,
        -:        -: 4746:      };
        -:        -: 4747:
    #####:    #####: 4748:      const struct float64_vec src1 = {
    #####:    #####: 4749:            _src[1].f64[0],
    #####:    #####: 4750:            _src[1].f64[1],
    #####:    #####: 4751:            _src[1].f64[2],
    #####:    #####: 4752:            _src[1].f64[3],
        -:        -: 4753:      };
        -:        -: 4754:
        -:        -: 4755:      struct float64_vec dst;
        -:        -: 4756:
    #####:    #####: 4757:         dst.x = dst.y = dst.z = dst.w = src0.x * src1.x + src0.y * src1.y + src0.z * src1.z + src1.w;
        -:        -: 4758:
    #####:    #####: 4759:            _dst_val.f64[0] = dst.x;
    #####:    #####: 4760:            _dst_val.f64[1] = dst.y;
    #####:    #####: 4761:            _dst_val.f64[2] = dst.z;
    #####:    #####: 4762:            _dst_val.f64[3] = dst.w;
        -:        -: 4763:
    #####:    #####: 4764:         break;
        -:        -: 4765:      }
        -:        -: 4766:
        -:        -: 4767:      default:
    #####:    #####: 4768:         unreachable("unknown bit width");
        -:        -: 4769:      }
        -:        -: 4770:
    #####:    #####: 4771:   return _dst_val;
        -:        -: 4772:}
        -:        -: 4773:static nir_const_value
    #####:    #####: 4774:evaluate_feq(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4775:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4776:{
    #####:    #####: 4777:   nir_const_value _dst_val = { {0, } };
        -:        -: 4778:
    #####:    #####: 4779:      switch (bit_size) {
        -:        -: 4780:      case 16: {
        -:        -: 4781:         
        -:        -: 4782:   
        -:        -: 4783:
        -:        -: 4784:                  
    #####:    #####: 4785:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4786:               const float src0 =
    #####:    #####: 4787:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 4788:               const float src1 =
    #####:    #####: 4789:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 4790:
    #####:    #####: 4791:            bool32_t dst = src0 == src1;
        -:        -: 4792:
    #####:    #####: 4793:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 4794:      }
        -:        -: 4795:
    #####:    #####: 4796:         break;
        -:        -: 4797:      }
        -:        -: 4798:      case 32: {
        -:        -: 4799:         
        -:        -: 4800:   
        -:        -: 4801:
        -:        -: 4802:                  
    #####:    #####: 4803:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4804:               const float32_t src0 =
        -:        -: 4805:                  _src[0].f32[_i];
    #####:    #####: 4806:               const float32_t src1 =
    #####:    #####: 4807:                  _src[1].f32[_i];
        -:        -: 4808:
    #####:    #####: 4809:            bool32_t dst = src0 == src1;
        -:        -: 4810:
    #####:    #####: 4811:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 4812:      }
        -:        -: 4813:
    #####:    #####: 4814:         break;
        -:        -: 4815:      }
        -:        -: 4816:      case 64: {
        -:        -: 4817:         
        -:        -: 4818:   
        -:        -: 4819:
        -:        -: 4820:                  
    #####:    #####: 4821:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4822:               const float64_t src0 =
        -:        -: 4823:                  _src[0].f64[_i];
    #####:    #####: 4824:               const float64_t src1 =
    #####:    #####: 4825:                  _src[1].f64[_i];
        -:        -: 4826:
    #####:    #####: 4827:            bool32_t dst = src0 == src1;
        -:        -: 4828:
    #####:    #####: 4829:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 4830:      }
        -:        -: 4831:
    #####:    #####: 4832:         break;
        -:        -: 4833:      }
        -:        -: 4834:
        -:        -: 4835:      default:
    #####:    #####: 4836:         unreachable("unknown bit width");
        -:        -: 4837:      }
        -:        -: 4838:
    #####:    #####: 4839:   return _dst_val;
        -:        -: 4840:}
        -:        -: 4841:static nir_const_value
    #####:    #####: 4842:evaluate_fexp2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4843:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4844:{
    #####:    #####: 4845:   nir_const_value _dst_val = { {0, } };
        -:        -: 4846:
    #####:    #####: 4847:      switch (bit_size) {
        -:        -: 4848:      case 16: {
        -:        -: 4849:         
        -:        -: 4850:   
        -:        -: 4851:
        -:        -: 4852:         
    #####:    #####: 4853:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4854:               const float src0 =
    #####:    #####: 4855:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 4856:
    #####:    #####: 4857:            float16_t dst = exp2f(src0);
        -:        -: 4858:
    #####:    #####: 4859:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 4860:      }
        -:        -: 4861:
    #####:    #####: 4862:         break;
        -:        -: 4863:      }
        -:        -: 4864:      case 32: {
        -:        -: 4865:         
        -:        -: 4866:   
        -:        -: 4867:
        -:        -: 4868:         
    #####:    #####: 4869:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4870:               const float32_t src0 =
        -:        -: 4871:                  _src[0].f32[_i];
        -:        -: 4872:
    #####:    #####: 4873:            float32_t dst = exp2f(src0);
        -:        -: 4874:
    #####:    #####: 4875:            _dst_val.f32[_i] = dst;
        -:        -: 4876:      }
        -:        -: 4877:
    #####:    #####: 4878:         break;
        -:        -: 4879:      }
        -:        -: 4880:      case 64: {
        -:        -: 4881:         
        -:        -: 4882:   
        -:        -: 4883:
        -:        -: 4884:         
    #####:    #####: 4885:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4886:               const float64_t src0 =
        -:        -: 4887:                  _src[0].f64[_i];
        -:        -: 4888:
    #####:    #####: 4889:            float64_t dst = exp2f(src0);
        -:        -: 4890:
    #####:    #####: 4891:            _dst_val.f64[_i] = dst;
        -:        -: 4892:      }
        -:        -: 4893:
    #####:    #####: 4894:         break;
        -:        -: 4895:      }
        -:        -: 4896:
        -:        -: 4897:      default:
    #####:    #####: 4898:         unreachable("unknown bit width");
        -:        -: 4899:      }
        -:        -: 4900:
    #####:    #####: 4901:   return _dst_val;
        -:        -: 4902:}
        -:        -: 4903:static nir_const_value
    #####:    #####: 4904:evaluate_ffloor(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4905:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4906:{
    #####:    #####: 4907:   nir_const_value _dst_val = { {0, } };
        -:        -: 4908:
    #####:    #####: 4909:      switch (bit_size) {
        -:        -: 4910:      case 16: {
        -:        -: 4911:         
        -:        -: 4912:   
        -:        -: 4913:
        -:        -: 4914:         
    #####:    #####: 4915:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4916:               const float src0 =
    #####:    #####: 4917:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 4918:
    #####:    #####: 4919:            float16_t dst = bit_size == 64 ? floor(src0) : floorf(src0);
        -:        -: 4920:
    #####:    #####: 4921:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 4922:      }
        -:        -: 4923:
    #####:    #####: 4924:         break;
        -:        -: 4925:      }
        -:        -: 4926:      case 32: {
        -:        -: 4927:         
        -:        -: 4928:   
        -:        -: 4929:
        -:        -: 4930:         
    #####:    #####: 4931:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4932:               const float32_t src0 =
        -:        -: 4933:                  _src[0].f32[_i];
        -:        -: 4934:
    #####:    #####: 4935:            float32_t dst = bit_size == 64 ? floor(src0) : floorf(src0);
        -:        -: 4936:
    #####:    #####: 4937:            _dst_val.f32[_i] = dst;
        -:        -: 4938:      }
        -:        -: 4939:
    #####:    #####: 4940:         break;
        -:        -: 4941:      }
        -:        -: 4942:      case 64: {
        -:        -: 4943:         
        -:        -: 4944:   
        -:        -: 4945:
        -:        -: 4946:         
    #####:    #####: 4947:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4948:               const float64_t src0 =
        -:        -: 4949:                  _src[0].f64[_i];
        -:        -: 4950:
    #####:    #####: 4951:            float64_t dst = bit_size == 64 ? floor(src0) : floorf(src0);
        -:        -: 4952:
    #####:    #####: 4953:            _dst_val.f64[_i] = dst;
        -:        -: 4954:      }
        -:        -: 4955:
    #####:    #####: 4956:         break;
        -:        -: 4957:      }
        -:        -: 4958:
        -:        -: 4959:      default:
    #####:    #####: 4960:         unreachable("unknown bit width");
        -:        -: 4961:      }
        -:        -: 4962:
    #####:    #####: 4963:   return _dst_val;
        -:        -: 4964:}
        -:        -: 4965:static nir_const_value
    #####:    #####: 4966:evaluate_ffma(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 4967:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 4968:{
    #####:    #####: 4969:   nir_const_value _dst_val = { {0, } };
        -:        -: 4970:
    #####:    #####: 4971:      switch (bit_size) {
        -:        -: 4972:      case 16: {
        -:        -: 4973:         
        -:        -: 4974:   
        -:        -: 4975:
        -:        -: 4976:                           
    #####:    #####: 4977:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4978:               const float src0 =
    #####:    #####: 4979:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 4980:               const float src1 =
    #####:    #####: 4981:                  _mesa_half_to_float(_src[1].u16[_i]);
    #####:    #####: 4982:               const float src2 =
    #####:    #####: 4983:                  _mesa_half_to_float(_src[2].u16[_i]);
        -:        -: 4984:
    #####:    #####: 4985:            float16_t dst = src0 * src1 + src2;
        -:        -: 4986:
    #####:    #####: 4987:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 4988:      }
        -:        -: 4989:
    #####:    #####: 4990:         break;
        -:        -: 4991:      }
        -:        -: 4992:      case 32: {
        -:        -: 4993:         
        -:        -: 4994:   
        -:        -: 4995:
        -:        -: 4996:                           
    #####:    #####: 4997:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 4998:               const float32_t src0 =
        -:        -: 4999:                  _src[0].f32[_i];
    #####:    #####: 5000:               const float32_t src1 =
    #####:    #####: 5001:                  _src[1].f32[_i];
    #####:    #####: 5002:               const float32_t src2 =
    #####:    #####: 5003:                  _src[2].f32[_i];
        -:        -: 5004:
    #####:    #####: 5005:            float32_t dst = src0 * src1 + src2;
        -:        -: 5006:
    #####:    #####: 5007:            _dst_val.f32[_i] = dst;
        -:        -: 5008:      }
        -:        -: 5009:
    #####:    #####: 5010:         break;
        -:        -: 5011:      }
        -:        -: 5012:      case 64: {
        -:        -: 5013:         
        -:        -: 5014:   
        -:        -: 5015:
        -:        -: 5016:                           
    #####:    #####: 5017:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5018:               const float64_t src0 =
        -:        -: 5019:                  _src[0].f64[_i];
    #####:    #####: 5020:               const float64_t src1 =
    #####:    #####: 5021:                  _src[1].f64[_i];
    #####:    #####: 5022:               const float64_t src2 =
    #####:    #####: 5023:                  _src[2].f64[_i];
        -:        -: 5024:
    #####:    #####: 5025:            float64_t dst = src0 * src1 + src2;
        -:        -: 5026:
    #####:    #####: 5027:            _dst_val.f64[_i] = dst;
        -:        -: 5028:      }
        -:        -: 5029:
    #####:    #####: 5030:         break;
        -:        -: 5031:      }
        -:        -: 5032:
        -:        -: 5033:      default:
    #####:    #####: 5034:         unreachable("unknown bit width");
        -:        -: 5035:      }
        -:        -: 5036:
    #####:    #####: 5037:   return _dst_val;
        -:        -: 5038:}
        -:        -: 5039:static nir_const_value
    #####:    #####: 5040:evaluate_ffract(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5041:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5042:{
    #####:    #####: 5043:   nir_const_value _dst_val = { {0, } };
        -:        -: 5044:
    #####:    #####: 5045:      switch (bit_size) {
        -:        -: 5046:      case 16: {
        -:        -: 5047:         
        -:        -: 5048:   
        -:        -: 5049:
        -:        -: 5050:         
    #####:    #####: 5051:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5052:               const float src0 =
    #####:    #####: 5053:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 5054:
    #####:    #####: 5055:            float16_t dst = src0 - (bit_size == 64 ? floor(src0) : floorf(src0));
        -:        -: 5056:
    #####:    #####: 5057:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5058:      }
        -:        -: 5059:
    #####:    #####: 5060:         break;
        -:        -: 5061:      }
        -:        -: 5062:      case 32: {
        -:        -: 5063:         
        -:        -: 5064:   
        -:        -: 5065:
        -:        -: 5066:         
    #####:    #####: 5067:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5068:               const float32_t src0 =
        -:        -: 5069:                  _src[0].f32[_i];
        -:        -: 5070:
    #####:    #####: 5071:            float32_t dst = src0 - (bit_size == 64 ? floor(src0) : floorf(src0));
        -:        -: 5072:
    #####:    #####: 5073:            _dst_val.f32[_i] = dst;
        -:        -: 5074:      }
        -:        -: 5075:
    #####:    #####: 5076:         break;
        -:        -: 5077:      }
        -:        -: 5078:      case 64: {
        -:        -: 5079:         
        -:        -: 5080:   
        -:        -: 5081:
        -:        -: 5082:         
    #####:    #####: 5083:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5084:               const float64_t src0 =
        -:        -: 5085:                  _src[0].f64[_i];
        -:        -: 5086:
    #####:    #####: 5087:            float64_t dst = src0 - (bit_size == 64 ? floor(src0) : floorf(src0));
        -:        -: 5088:
    #####:    #####: 5089:            _dst_val.f64[_i] = dst;
        -:        -: 5090:      }
        -:        -: 5091:
    #####:    #####: 5092:         break;
        -:        -: 5093:      }
        -:        -: 5094:
        -:        -: 5095:      default:
    #####:    #####: 5096:         unreachable("unknown bit width");
        -:        -: 5097:      }
        -:        -: 5098:
    #####:    #####: 5099:   return _dst_val;
        -:        -: 5100:}
        -:        -: 5101:static nir_const_value
    #####:    #####: 5102:evaluate_fge(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5103:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5104:{
    #####:    #####: 5105:   nir_const_value _dst_val = { {0, } };
        -:        -: 5106:
    #####:    #####: 5107:      switch (bit_size) {
        -:        -: 5108:      case 16: {
        -:        -: 5109:         
        -:        -: 5110:   
        -:        -: 5111:
        -:        -: 5112:                  
    #####:    #####: 5113:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5114:               const float src0 =
    #####:    #####: 5115:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5116:               const float src1 =
    #####:    #####: 5117:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5118:
    #####:    #####: 5119:            bool32_t dst = src0 >= src1;
        -:        -: 5120:
    #####:    #####: 5121:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5122:      }
        -:        -: 5123:
    #####:    #####: 5124:         break;
        -:        -: 5125:      }
        -:        -: 5126:      case 32: {
        -:        -: 5127:         
        -:        -: 5128:   
        -:        -: 5129:
        -:        -: 5130:                  
    #####:    #####: 5131:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5132:               const float32_t src0 =
        -:        -: 5133:                  _src[0].f32[_i];
    #####:    #####: 5134:               const float32_t src1 =
    #####:    #####: 5135:                  _src[1].f32[_i];
        -:        -: 5136:
    #####:    #####: 5137:            bool32_t dst = src0 >= src1;
        -:        -: 5138:
    #####:    #####: 5139:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5140:      }
        -:        -: 5141:
    #####:    #####: 5142:         break;
        -:        -: 5143:      }
        -:        -: 5144:      case 64: {
        -:        -: 5145:         
        -:        -: 5146:   
        -:        -: 5147:
        -:        -: 5148:                  
    #####:    #####: 5149:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5150:               const float64_t src0 =
        -:        -: 5151:                  _src[0].f64[_i];
    #####:    #####: 5152:               const float64_t src1 =
    #####:    #####: 5153:                  _src[1].f64[_i];
        -:        -: 5154:
    #####:    #####: 5155:            bool32_t dst = src0 >= src1;
        -:        -: 5156:
    #####:    #####: 5157:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5158:      }
        -:        -: 5159:
    #####:    #####: 5160:         break;
        -:        -: 5161:      }
        -:        -: 5162:
        -:        -: 5163:      default:
    #####:    #####: 5164:         unreachable("unknown bit width");
        -:        -: 5165:      }
        -:        -: 5166:
    #####:    #####: 5167:   return _dst_val;
        -:        -: 5168:}
        -:        -: 5169:static nir_const_value
    #####:    #####: 5170:evaluate_find_lsb(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5171:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5172:{
    #####:    #####: 5173:   nir_const_value _dst_val = { {0, } };
        -:        -: 5174:
        -:        -: 5175:      
        -:        -: 5176:   
        -:        -: 5177:
        -:        -: 5178:         
    #####:    #####: 5179:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5180:               const int32_t src0 =
        -:        -: 5181:                  _src[0].i32[_i];
        -:        -: 5182:
        -:        -: 5183:            int32_t dst;
        -:        -: 5184:
        -:        -: 5185:            
    #####:    #####: 5186:dst = -1;
    #####:    #####: 5187:for (unsigned bit = 0; bit < 32; bit++) {
    #####:    #####: 5188:   if ((src0 >> bit) & 1) {
    #####:    #####: 5189:      dst = bit;
    #####:    #####: 5190:      break;
        -:        -: 5191:   }
        -:        -: 5192:}
        -:        -: 5193:
        -:        -: 5194:
    #####:    #####: 5195:            _dst_val.i32[_i] = dst;
        -:        -: 5196:      }
        -:        -: 5197:
        -:        -: 5198:
    #####:    #####: 5199:   return _dst_val;
        -:        -: 5200:}
        -:        -: 5201:static nir_const_value
    #####:    #####: 5202:evaluate_flog2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5203:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5204:{
    #####:    #####: 5205:   nir_const_value _dst_val = { {0, } };
        -:        -: 5206:
    #####:    #####: 5207:      switch (bit_size) {
        -:        -: 5208:      case 16: {
        -:        -: 5209:         
        -:        -: 5210:   
        -:        -: 5211:
        -:        -: 5212:         
    #####:    #####: 5213:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5214:               const float src0 =
    #####:    #####: 5215:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 5216:
    #####:    #####: 5217:            float16_t dst = log2f(src0);
        -:        -: 5218:
    #####:    #####: 5219:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5220:      }
        -:        -: 5221:
    #####:    #####: 5222:         break;
        -:        -: 5223:      }
        -:        -: 5224:      case 32: {
        -:        -: 5225:         
        -:        -: 5226:   
        -:        -: 5227:
        -:        -: 5228:         
    #####:    #####: 5229:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5230:               const float32_t src0 =
        -:        -: 5231:                  _src[0].f32[_i];
        -:        -: 5232:
    #####:    #####: 5233:            float32_t dst = log2f(src0);
        -:        -: 5234:
    #####:    #####: 5235:            _dst_val.f32[_i] = dst;
        -:        -: 5236:      }
        -:        -: 5237:
    #####:    #####: 5238:         break;
        -:        -: 5239:      }
        -:        -: 5240:      case 64: {
        -:        -: 5241:         
        -:        -: 5242:   
        -:        -: 5243:
        -:        -: 5244:         
    #####:    #####: 5245:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5246:               const float64_t src0 =
        -:        -: 5247:                  _src[0].f64[_i];
        -:        -: 5248:
    #####:    #####: 5249:            float64_t dst = log2f(src0);
        -:        -: 5250:
    #####:    #####: 5251:            _dst_val.f64[_i] = dst;
        -:        -: 5252:      }
        -:        -: 5253:
    #####:    #####: 5254:         break;
        -:        -: 5255:      }
        -:        -: 5256:
        -:        -: 5257:      default:
    #####:    #####: 5258:         unreachable("unknown bit width");
        -:        -: 5259:      }
        -:        -: 5260:
    #####:    #####: 5261:   return _dst_val;
        -:        -: 5262:}
        -:        -: 5263:static nir_const_value
    #####:    #####: 5264:evaluate_flrp(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5265:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5266:{
    #####:    #####: 5267:   nir_const_value _dst_val = { {0, } };
        -:        -: 5268:
    #####:    #####: 5269:      switch (bit_size) {
        -:        -: 5270:      case 16: {
        -:        -: 5271:         
        -:        -: 5272:   
        -:        -: 5273:
        -:        -: 5274:                           
    #####:    #####: 5275:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5276:               const float src0 =
    #####:    #####: 5277:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5278:               const float src1 =
    #####:    #####: 5279:                  _mesa_half_to_float(_src[1].u16[_i]);
    #####:    #####: 5280:               const float src2 =
    #####:    #####: 5281:                  _mesa_half_to_float(_src[2].u16[_i]);
        -:        -: 5282:
    #####:    #####: 5283:            float16_t dst = src0 * (1 - src2) + src1 * src2;
        -:        -: 5284:
    #####:    #####: 5285:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5286:      }
        -:        -: 5287:
    #####:    #####: 5288:         break;
        -:        -: 5289:      }
        -:        -: 5290:      case 32: {
        -:        -: 5291:         
        -:        -: 5292:   
        -:        -: 5293:
        -:        -: 5294:                           
    #####:    #####: 5295:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5296:               const float32_t src0 =
        -:        -: 5297:                  _src[0].f32[_i];
    #####:    #####: 5298:               const float32_t src1 =
    #####:    #####: 5299:                  _src[1].f32[_i];
    #####:    #####: 5300:               const float32_t src2 =
    #####:    #####: 5301:                  _src[2].f32[_i];
        -:        -: 5302:
    #####:    #####: 5303:            float32_t dst = src0 * (1 - src2) + src1 * src2;
        -:        -: 5304:
    #####:    #####: 5305:            _dst_val.f32[_i] = dst;
        -:        -: 5306:      }
        -:        -: 5307:
    #####:    #####: 5308:         break;
        -:        -: 5309:      }
        -:        -: 5310:      case 64: {
        -:        -: 5311:         
        -:        -: 5312:   
        -:        -: 5313:
        -:        -: 5314:                           
    #####:    #####: 5315:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5316:               const float64_t src0 =
        -:        -: 5317:                  _src[0].f64[_i];
    #####:    #####: 5318:               const float64_t src1 =
    #####:    #####: 5319:                  _src[1].f64[_i];
    #####:    #####: 5320:               const float64_t src2 =
    #####:    #####: 5321:                  _src[2].f64[_i];
        -:        -: 5322:
    #####:    #####: 5323:            float64_t dst = src0 * (1 - src2) + src1 * src2;
        -:        -: 5324:
    #####:    #####: 5325:            _dst_val.f64[_i] = dst;
        -:        -: 5326:      }
        -:        -: 5327:
    #####:    #####: 5328:         break;
        -:        -: 5329:      }
        -:        -: 5330:
        -:        -: 5331:      default:
    #####:    #####: 5332:         unreachable("unknown bit width");
        -:        -: 5333:      }
        -:        -: 5334:
    #####:    #####: 5335:   return _dst_val;
        -:        -: 5336:}
        -:        -: 5337:static nir_const_value
    #####:    #####: 5338:evaluate_flt(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5339:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5340:{
    #####:    #####: 5341:   nir_const_value _dst_val = { {0, } };
        -:        -: 5342:
    #####:    #####: 5343:      switch (bit_size) {
        -:        -: 5344:      case 16: {
        -:        -: 5345:         
        -:        -: 5346:   
        -:        -: 5347:
        -:        -: 5348:                  
    #####:    #####: 5349:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5350:               const float src0 =
    #####:    #####: 5351:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5352:               const float src1 =
    #####:    #####: 5353:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5354:
    #####:    #####: 5355:            bool32_t dst = src0 < src1;
        -:        -: 5356:
    #####:    #####: 5357:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5358:      }
        -:        -: 5359:
    #####:    #####: 5360:         break;
        -:        -: 5361:      }
        -:        -: 5362:      case 32: {
        -:        -: 5363:         
        -:        -: 5364:   
        -:        -: 5365:
        -:        -: 5366:                  
    #####:    #####: 5367:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5368:               const float32_t src0 =
        -:        -: 5369:                  _src[0].f32[_i];
    #####:    #####: 5370:               const float32_t src1 =
    #####:    #####: 5371:                  _src[1].f32[_i];
        -:        -: 5372:
    #####:    #####: 5373:            bool32_t dst = src0 < src1;
        -:        -: 5374:
    #####:    #####: 5375:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5376:      }
        -:        -: 5377:
    #####:    #####: 5378:         break;
        -:        -: 5379:      }
        -:        -: 5380:      case 64: {
        -:        -: 5381:         
        -:        -: 5382:   
        -:        -: 5383:
        -:        -: 5384:                  
    #####:    #####: 5385:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5386:               const float64_t src0 =
        -:        -: 5387:                  _src[0].f64[_i];
    #####:    #####: 5388:               const float64_t src1 =
    #####:    #####: 5389:                  _src[1].f64[_i];
        -:        -: 5390:
    #####:    #####: 5391:            bool32_t dst = src0 < src1;
        -:        -: 5392:
    #####:    #####: 5393:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5394:      }
        -:        -: 5395:
    #####:    #####: 5396:         break;
        -:        -: 5397:      }
        -:        -: 5398:
        -:        -: 5399:      default:
    #####:    #####: 5400:         unreachable("unknown bit width");
        -:        -: 5401:      }
        -:        -: 5402:
    #####:    #####: 5403:   return _dst_val;
        -:        -: 5404:}
        -:        -: 5405:static nir_const_value
    #####:    #####: 5406:evaluate_fmax(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5407:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5408:{
    #####:    #####: 5409:   nir_const_value _dst_val = { {0, } };
        -:        -: 5410:
    #####:    #####: 5411:      switch (bit_size) {
        -:        -: 5412:      case 16: {
        -:        -: 5413:         
        -:        -: 5414:   
        -:        -: 5415:
        -:        -: 5416:                  
    #####:    #####: 5417:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5418:               const float src0 =
    #####:    #####: 5419:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5420:               const float src1 =
    #####:    #####: 5421:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5422:
    #####:    #####: 5423:            float16_t dst = fmaxf(src0, src1);
        -:        -: 5424:
    #####:    #####: 5425:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5426:      }
        -:        -: 5427:
    #####:    #####: 5428:         break;
        -:        -: 5429:      }
        -:        -: 5430:      case 32: {
        -:        -: 5431:         
        -:        -: 5432:   
        -:        -: 5433:
        -:        -: 5434:                  
    #####:    #####: 5435:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5436:               const float32_t src0 =
        -:        -: 5437:                  _src[0].f32[_i];
    #####:    #####: 5438:               const float32_t src1 =
    #####:    #####: 5439:                  _src[1].f32[_i];
        -:        -: 5440:
    #####:    #####: 5441:            float32_t dst = fmaxf(src0, src1);
        -:        -: 5442:
    #####:    #####: 5443:            _dst_val.f32[_i] = dst;
        -:        -: 5444:      }
        -:        -: 5445:
    #####:    #####: 5446:         break;
        -:        -: 5447:      }
        -:        -: 5448:      case 64: {
        -:        -: 5449:         
        -:        -: 5450:   
        -:        -: 5451:
        -:        -: 5452:                  
    #####:    #####: 5453:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5454:               const float64_t src0 =
        -:        -: 5455:                  _src[0].f64[_i];
    #####:    #####: 5456:               const float64_t src1 =
    #####:    #####: 5457:                  _src[1].f64[_i];
        -:        -: 5458:
    #####:    #####: 5459:            float64_t dst = fmaxf(src0, src1);
        -:        -: 5460:
    #####:    #####: 5461:            _dst_val.f64[_i] = dst;
        -:        -: 5462:      }
        -:        -: 5463:
    #####:    #####: 5464:         break;
        -:        -: 5465:      }
        -:        -: 5466:
        -:        -: 5467:      default:
    #####:    #####: 5468:         unreachable("unknown bit width");
        -:        -: 5469:      }
        -:        -: 5470:
    #####:    #####: 5471:   return _dst_val;
        -:        -: 5472:}
        -:        -: 5473:static nir_const_value
    #####:    #####: 5474:evaluate_fmin(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5475:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5476:{
    #####:    #####: 5477:   nir_const_value _dst_val = { {0, } };
        -:        -: 5478:
    #####:    #####: 5479:      switch (bit_size) {
        -:        -: 5480:      case 16: {
        -:        -: 5481:         
        -:        -: 5482:   
        -:        -: 5483:
        -:        -: 5484:                  
    #####:    #####: 5485:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5486:               const float src0 =
    #####:    #####: 5487:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5488:               const float src1 =
    #####:    #####: 5489:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5490:
    #####:    #####: 5491:            float16_t dst = fminf(src0, src1);
        -:        -: 5492:
    #####:    #####: 5493:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5494:      }
        -:        -: 5495:
    #####:    #####: 5496:         break;
        -:        -: 5497:      }
        -:        -: 5498:      case 32: {
        -:        -: 5499:         
        -:        -: 5500:   
        -:        -: 5501:
        -:        -: 5502:                  
    #####:    #####: 5503:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5504:               const float32_t src0 =
        -:        -: 5505:                  _src[0].f32[_i];
    #####:    #####: 5506:               const float32_t src1 =
    #####:    #####: 5507:                  _src[1].f32[_i];
        -:        -: 5508:
    #####:    #####: 5509:            float32_t dst = fminf(src0, src1);
        -:        -: 5510:
    #####:    #####: 5511:            _dst_val.f32[_i] = dst;
        -:        -: 5512:      }
        -:        -: 5513:
    #####:    #####: 5514:         break;
        -:        -: 5515:      }
        -:        -: 5516:      case 64: {
        -:        -: 5517:         
        -:        -: 5518:   
        -:        -: 5519:
        -:        -: 5520:                  
    #####:    #####: 5521:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5522:               const float64_t src0 =
        -:        -: 5523:                  _src[0].f64[_i];
    #####:    #####: 5524:               const float64_t src1 =
    #####:    #####: 5525:                  _src[1].f64[_i];
        -:        -: 5526:
    #####:    #####: 5527:            float64_t dst = fminf(src0, src1);
        -:        -: 5528:
    #####:    #####: 5529:            _dst_val.f64[_i] = dst;
        -:        -: 5530:      }
        -:        -: 5531:
    #####:    #####: 5532:         break;
        -:        -: 5533:      }
        -:        -: 5534:
        -:        -: 5535:      default:
    #####:    #####: 5536:         unreachable("unknown bit width");
        -:        -: 5537:      }
        -:        -: 5538:
    #####:    #####: 5539:   return _dst_val;
        -:        -: 5540:}
        -:        -: 5541:static nir_const_value
    #####:    #####: 5542:evaluate_fmod(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5543:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5544:{
    #####:    #####: 5545:   nir_const_value _dst_val = { {0, } };
        -:        -: 5546:
    #####:    #####: 5547:      switch (bit_size) {
        -:        -: 5548:      case 16: {
        -:        -: 5549:         
        -:        -: 5550:   
        -:        -: 5551:
        -:        -: 5552:                  
    #####:    #####: 5553:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5554:               const float src0 =
    #####:    #####: 5555:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5556:               const float src1 =
    #####:    #####: 5557:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5558:
    #####:    #####: 5559:            float16_t dst = src0 - src1 * floorf(src0 / src1);
        -:        -: 5560:
    #####:    #####: 5561:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5562:      }
        -:        -: 5563:
    #####:    #####: 5564:         break;
        -:        -: 5565:      }
        -:        -: 5566:      case 32: {
        -:        -: 5567:         
        -:        -: 5568:   
        -:        -: 5569:
        -:        -: 5570:                  
    #####:    #####: 5571:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5572:               const float32_t src0 =
        -:        -: 5573:                  _src[0].f32[_i];
    #####:    #####: 5574:               const float32_t src1 =
    #####:    #####: 5575:                  _src[1].f32[_i];
        -:        -: 5576:
    #####:    #####: 5577:            float32_t dst = src0 - src1 * floorf(src0 / src1);
        -:        -: 5578:
    #####:    #####: 5579:            _dst_val.f32[_i] = dst;
        -:        -: 5580:      }
        -:        -: 5581:
    #####:    #####: 5582:         break;
        -:        -: 5583:      }
        -:        -: 5584:      case 64: {
        -:        -: 5585:         
        -:        -: 5586:   
        -:        -: 5587:
        -:        -: 5588:                  
    #####:    #####: 5589:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5590:               const float64_t src0 =
        -:        -: 5591:                  _src[0].f64[_i];
    #####:    #####: 5592:               const float64_t src1 =
    #####:    #####: 5593:                  _src[1].f64[_i];
        -:        -: 5594:
    #####:    #####: 5595:            float64_t dst = src0 - src1 * floorf(src0 / src1);
        -:        -: 5596:
    #####:    #####: 5597:            _dst_val.f64[_i] = dst;
        -:        -: 5598:      }
        -:        -: 5599:
    #####:    #####: 5600:         break;
        -:        -: 5601:      }
        -:        -: 5602:
        -:        -: 5603:      default:
    #####:    #####: 5604:         unreachable("unknown bit width");
        -:        -: 5605:      }
        -:        -: 5606:
    #####:    #####: 5607:   return _dst_val;
        -:        -: 5608:}
        -:        -: 5609:static nir_const_value
    #####:    #####: 5610:evaluate_fmov(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5611:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5612:{
    #####:    #####: 5613:   nir_const_value _dst_val = { {0, } };
        -:        -: 5614:
    #####:    #####: 5615:      switch (bit_size) {
        -:        -: 5616:      case 16: {
        -:        -: 5617:         
        -:        -: 5618:   
        -:        -: 5619:
        -:        -: 5620:         
    #####:    #####: 5621:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5622:               const float src0 =
    #####:    #####: 5623:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 5624:
    #####:    #####: 5625:            float16_t dst = src0;
        -:        -: 5626:
    #####:    #####: 5627:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5628:      }
        -:        -: 5629:
    #####:    #####: 5630:         break;
        -:        -: 5631:      }
        -:        -: 5632:      case 32: {
        -:        -: 5633:         
        -:        -: 5634:   
        -:        -: 5635:
        -:        -: 5636:         
    #####:    #####: 5637:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5638:               const float32_t src0 =
        -:        -: 5639:                  _src[0].f32[_i];
        -:        -: 5640:
    #####:    #####: 5641:            float32_t dst = src0;
        -:        -: 5642:
    #####:    #####: 5643:            _dst_val.f32[_i] = dst;
        -:        -: 5644:      }
        -:        -: 5645:
    #####:    #####: 5646:         break;
        -:        -: 5647:      }
        -:        -: 5648:      case 64: {
        -:        -: 5649:         
        -:        -: 5650:   
        -:        -: 5651:
        -:        -: 5652:         
    #####:    #####: 5653:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5654:               const float64_t src0 =
        -:        -: 5655:                  _src[0].f64[_i];
        -:        -: 5656:
    #####:    #####: 5657:            float64_t dst = src0;
        -:        -: 5658:
    #####:    #####: 5659:            _dst_val.f64[_i] = dst;
        -:        -: 5660:      }
        -:        -: 5661:
    #####:    #####: 5662:         break;
        -:        -: 5663:      }
        -:        -: 5664:
        -:        -: 5665:      default:
    #####:    #####: 5666:         unreachable("unknown bit width");
        -:        -: 5667:      }
        -:        -: 5668:
    #####:    #####: 5669:   return _dst_val;
        -:        -: 5670:}
        -:        -: 5671:static nir_const_value
    #####:    #####: 5672:evaluate_fmul(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5673:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5674:{
    #####:    #####: 5675:   nir_const_value _dst_val = { {0, } };
        -:        -: 5676:
    #####:    #####: 5677:      switch (bit_size) {
        -:        -: 5678:      case 16: {
        -:        -: 5679:         
        -:        -: 5680:   
        -:        -: 5681:
        -:        -: 5682:                  
    #####:    #####: 5683:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5684:               const float src0 =
    #####:    #####: 5685:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5686:               const float src1 =
    #####:    #####: 5687:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5688:
    #####:    #####: 5689:            float16_t dst = src0 * src1;
        -:        -: 5690:
    #####:    #####: 5691:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5692:      }
        -:        -: 5693:
    #####:    #####: 5694:         break;
        -:        -: 5695:      }
        -:        -: 5696:      case 32: {
        -:        -: 5697:         
        -:        -: 5698:   
        -:        -: 5699:
        -:        -: 5700:                  
    #####:    #####: 5701:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5702:               const float32_t src0 =
        -:        -: 5703:                  _src[0].f32[_i];
    #####:    #####: 5704:               const float32_t src1 =
    #####:    #####: 5705:                  _src[1].f32[_i];
        -:        -: 5706:
    #####:    #####: 5707:            float32_t dst = src0 * src1;
        -:        -: 5708:
    #####:    #####: 5709:            _dst_val.f32[_i] = dst;
        -:        -: 5710:      }
        -:        -: 5711:
    #####:    #####: 5712:         break;
        -:        -: 5713:      }
        -:        -: 5714:      case 64: {
        -:        -: 5715:         
        -:        -: 5716:   
        -:        -: 5717:
        -:        -: 5718:                  
    #####:    #####: 5719:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5720:               const float64_t src0 =
        -:        -: 5721:                  _src[0].f64[_i];
    #####:    #####: 5722:               const float64_t src1 =
    #####:    #####: 5723:                  _src[1].f64[_i];
        -:        -: 5724:
    #####:    #####: 5725:            float64_t dst = src0 * src1;
        -:        -: 5726:
    #####:    #####: 5727:            _dst_val.f64[_i] = dst;
        -:        -: 5728:      }
        -:        -: 5729:
    #####:    #####: 5730:         break;
        -:        -: 5731:      }
        -:        -: 5732:
        -:        -: 5733:      default:
    #####:    #####: 5734:         unreachable("unknown bit width");
        -:        -: 5735:      }
        -:        -: 5736:
    #####:    #####: 5737:   return _dst_val;
        -:        -: 5738:}
        -:        -: 5739:static nir_const_value
    #####:    #####: 5740:evaluate_fne(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5741:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5742:{
    #####:    #####: 5743:   nir_const_value _dst_val = { {0, } };
        -:        -: 5744:
    #####:    #####: 5745:      switch (bit_size) {
        -:        -: 5746:      case 16: {
        -:        -: 5747:         
        -:        -: 5748:   
        -:        -: 5749:
        -:        -: 5750:                  
    #####:    #####: 5751:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5752:               const float src0 =
    #####:    #####: 5753:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 5754:               const float src1 =
    #####:    #####: 5755:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 5756:
    #####:    #####: 5757:            bool32_t dst = src0 != src1;
        -:        -: 5758:
    #####:    #####: 5759:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5760:      }
        -:        -: 5761:
    #####:    #####: 5762:         break;
        -:        -: 5763:      }
        -:        -: 5764:      case 32: {
        -:        -: 5765:         
        -:        -: 5766:   
        -:        -: 5767:
        -:        -: 5768:                  
    #####:    #####: 5769:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5770:               const float32_t src0 =
        -:        -: 5771:                  _src[0].f32[_i];
    #####:    #####: 5772:               const float32_t src1 =
    #####:    #####: 5773:                  _src[1].f32[_i];
        -:        -: 5774:
    #####:    #####: 5775:            bool32_t dst = src0 != src1;
        -:        -: 5776:
    #####:    #####: 5777:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5778:      }
        -:        -: 5779:
    #####:    #####: 5780:         break;
        -:        -: 5781:      }
        -:        -: 5782:      case 64: {
        -:        -: 5783:         
        -:        -: 5784:   
        -:        -: 5785:
        -:        -: 5786:                  
    #####:    #####: 5787:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5788:               const float64_t src0 =
        -:        -: 5789:                  _src[0].f64[_i];
    #####:    #####: 5790:               const float64_t src1 =
    #####:    #####: 5791:                  _src[1].f64[_i];
        -:        -: 5792:
    #####:    #####: 5793:            bool32_t dst = src0 != src1;
        -:        -: 5794:
    #####:    #####: 5795:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 5796:      }
        -:        -: 5797:
    #####:    #####: 5798:         break;
        -:        -: 5799:      }
        -:        -: 5800:
        -:        -: 5801:      default:
    #####:    #####: 5802:         unreachable("unknown bit width");
        -:        -: 5803:      }
        -:        -: 5804:
    #####:    #####: 5805:   return _dst_val;
        -:        -: 5806:}
        -:        -: 5807:static nir_const_value
    #####:    #####: 5808:evaluate_fneg(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5809:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5810:{
    #####:    #####: 5811:   nir_const_value _dst_val = { {0, } };
        -:        -: 5812:
    #####:    #####: 5813:      switch (bit_size) {
        -:        -: 5814:      case 16: {
        -:        -: 5815:         
        -:        -: 5816:   
        -:        -: 5817:
        -:        -: 5818:         
    #####:    #####: 5819:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5820:               const float src0 =
    #####:    #####: 5821:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 5822:
    #####:    #####: 5823:            float16_t dst = -src0;
        -:        -: 5824:
    #####:    #####: 5825:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 5826:      }
        -:        -: 5827:
    #####:    #####: 5828:         break;
        -:        -: 5829:      }
        -:        -: 5830:      case 32: {
        -:        -: 5831:         
        -:        -: 5832:   
        -:        -: 5833:
        -:        -: 5834:         
    #####:    #####: 5835:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5836:               const float32_t src0 =
        -:        -: 5837:                  _src[0].f32[_i];
        -:        -: 5838:
    #####:    #####: 5839:            float32_t dst = -src0;
        -:        -: 5840:
    #####:    #####: 5841:            _dst_val.f32[_i] = dst;
        -:        -: 5842:      }
        -:        -: 5843:
    #####:    #####: 5844:         break;
        -:        -: 5845:      }
        -:        -: 5846:      case 64: {
        -:        -: 5847:         
        -:        -: 5848:   
        -:        -: 5849:
        -:        -: 5850:         
    #####:    #####: 5851:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 5852:               const float64_t src0 =
        -:        -: 5853:                  _src[0].f64[_i];
        -:        -: 5854:
    #####:    #####: 5855:            float64_t dst = -src0;
        -:        -: 5856:
    #####:    #####: 5857:            _dst_val.f64[_i] = dst;
        -:        -: 5858:      }
        -:        -: 5859:
    #####:    #####: 5860:         break;
        -:        -: 5861:      }
        -:        -: 5862:
        -:        -: 5863:      default:
    #####:    #####: 5864:         unreachable("unknown bit width");
        -:        -: 5865:      }
        -:        -: 5866:
    #####:    #####: 5867:   return _dst_val;
        -:        -: 5868:}
        -:        -: 5869:static nir_const_value
    #####:    #####: 5870:evaluate_fnoise1_1(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5871:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5872:{
    #####:    #####: 5873:   nir_const_value _dst_val = { {0, } };
        -:        -: 5874:
    #####:    #####: 5875:      switch (bit_size) {
        -:        -: 5876:      case 16: {
        -:        -: 5877:         
        -:        -: 5878:   
        -:        -: 5879:
        -:        -: 5880:         
        -:        -: 5881:      struct float16_vec dst;
        -:        -: 5882:
    #####:    #####: 5883:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5884:
    #####:    #####: 5885:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 5886:
    #####:    #####: 5887:         break;
        -:        -: 5888:      }
        -:        -: 5889:      case 32: {
        -:        -: 5890:         
        -:        -: 5891:   
        -:        -: 5892:
        -:        -: 5893:         
        -:        -: 5894:      struct float32_vec dst;
        -:        -: 5895:
    #####:    #####: 5896:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5897:
    #####:    #####: 5898:            _dst_val.f32[0] = dst.x;
        -:        -: 5899:
    #####:    #####: 5900:         break;
        -:        -: 5901:      }
        -:        -: 5902:      case 64: {
        -:        -: 5903:         
        -:        -: 5904:   
        -:        -: 5905:
        -:        -: 5906:         
        -:        -: 5907:      struct float64_vec dst;
        -:        -: 5908:
    #####:    #####: 5909:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5910:
    #####:    #####: 5911:            _dst_val.f64[0] = dst.x;
        -:        -: 5912:
    #####:    #####: 5913:         break;
        -:        -: 5914:      }
        -:        -: 5915:
        -:        -: 5916:      default:
    #####:    #####: 5917:         unreachable("unknown bit width");
        -:        -: 5918:      }
        -:        -: 5919:
    #####:    #####: 5920:   return _dst_val;
        -:        -: 5921:}
        -:        -: 5922:static nir_const_value
    #####:    #####: 5923:evaluate_fnoise1_2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5924:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5925:{
    #####:    #####: 5926:   nir_const_value _dst_val = { {0, } };
        -:        -: 5927:
    #####:    #####: 5928:      switch (bit_size) {
        -:        -: 5929:      case 16: {
        -:        -: 5930:         
        -:        -: 5931:   
        -:        -: 5932:
        -:        -: 5933:         
        -:        -: 5934:      struct float16_vec dst;
        -:        -: 5935:
    #####:    #####: 5936:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5937:
    #####:    #####: 5938:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 5939:
    #####:    #####: 5940:         break;
        -:        -: 5941:      }
        -:        -: 5942:      case 32: {
        -:        -: 5943:         
        -:        -: 5944:   
        -:        -: 5945:
        -:        -: 5946:         
        -:        -: 5947:      struct float32_vec dst;
        -:        -: 5948:
    #####:    #####: 5949:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5950:
    #####:    #####: 5951:            _dst_val.f32[0] = dst.x;
        -:        -: 5952:
    #####:    #####: 5953:         break;
        -:        -: 5954:      }
        -:        -: 5955:      case 64: {
        -:        -: 5956:         
        -:        -: 5957:   
        -:        -: 5958:
        -:        -: 5959:         
        -:        -: 5960:      struct float64_vec dst;
        -:        -: 5961:
    #####:    #####: 5962:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5963:
    #####:    #####: 5964:            _dst_val.f64[0] = dst.x;
        -:        -: 5965:
    #####:    #####: 5966:         break;
        -:        -: 5967:      }
        -:        -: 5968:
        -:        -: 5969:      default:
    #####:    #####: 5970:         unreachable("unknown bit width");
        -:        -: 5971:      }
        -:        -: 5972:
    #####:    #####: 5973:   return _dst_val;
        -:        -: 5974:}
        -:        -: 5975:static nir_const_value
    #####:    #####: 5976:evaluate_fnoise1_3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 5977:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 5978:{
    #####:    #####: 5979:   nir_const_value _dst_val = { {0, } };
        -:        -: 5980:
    #####:    #####: 5981:      switch (bit_size) {
        -:        -: 5982:      case 16: {
        -:        -: 5983:         
        -:        -: 5984:   
        -:        -: 5985:
        -:        -: 5986:         
        -:        -: 5987:      struct float16_vec dst;
        -:        -: 5988:
    #####:    #####: 5989:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 5990:
    #####:    #####: 5991:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 5992:
    #####:    #####: 5993:         break;
        -:        -: 5994:      }
        -:        -: 5995:      case 32: {
        -:        -: 5996:         
        -:        -: 5997:   
        -:        -: 5998:
        -:        -: 5999:         
        -:        -: 6000:      struct float32_vec dst;
        -:        -: 6001:
    #####:    #####: 6002:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6003:
    #####:    #####: 6004:            _dst_val.f32[0] = dst.x;
        -:        -: 6005:
    #####:    #####: 6006:         break;
        -:        -: 6007:      }
        -:        -: 6008:      case 64: {
        -:        -: 6009:         
        -:        -: 6010:   
        -:        -: 6011:
        -:        -: 6012:         
        -:        -: 6013:      struct float64_vec dst;
        -:        -: 6014:
    #####:    #####: 6015:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6016:
    #####:    #####: 6017:            _dst_val.f64[0] = dst.x;
        -:        -: 6018:
    #####:    #####: 6019:         break;
        -:        -: 6020:      }
        -:        -: 6021:
        -:        -: 6022:      default:
    #####:    #####: 6023:         unreachable("unknown bit width");
        -:        -: 6024:      }
        -:        -: 6025:
    #####:    #####: 6026:   return _dst_val;
        -:        -: 6027:}
        -:        -: 6028:static nir_const_value
    #####:    #####: 6029:evaluate_fnoise1_4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6030:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6031:{
    #####:    #####: 6032:   nir_const_value _dst_val = { {0, } };
        -:        -: 6033:
    #####:    #####: 6034:      switch (bit_size) {
        -:        -: 6035:      case 16: {
        -:        -: 6036:         
        -:        -: 6037:   
        -:        -: 6038:
        -:        -: 6039:         
        -:        -: 6040:      struct float16_vec dst;
        -:        -: 6041:
    #####:    #####: 6042:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6043:
    #####:    #####: 6044:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
        -:        -: 6045:
    #####:    #####: 6046:         break;
        -:        -: 6047:      }
        -:        -: 6048:      case 32: {
        -:        -: 6049:         
        -:        -: 6050:   
        -:        -: 6051:
        -:        -: 6052:         
        -:        -: 6053:      struct float32_vec dst;
        -:        -: 6054:
    #####:    #####: 6055:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6056:
    #####:    #####: 6057:            _dst_val.f32[0] = dst.x;
        -:        -: 6058:
    #####:    #####: 6059:         break;
        -:        -: 6060:      }
        -:        -: 6061:      case 64: {
        -:        -: 6062:         
        -:        -: 6063:   
        -:        -: 6064:
        -:        -: 6065:         
        -:        -: 6066:      struct float64_vec dst;
        -:        -: 6067:
    #####:    #####: 6068:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6069:
    #####:    #####: 6070:            _dst_val.f64[0] = dst.x;
        -:        -: 6071:
    #####:    #####: 6072:         break;
        -:        -: 6073:      }
        -:        -: 6074:
        -:        -: 6075:      default:
    #####:    #####: 6076:         unreachable("unknown bit width");
        -:        -: 6077:      }
        -:        -: 6078:
    #####:    #####: 6079:   return _dst_val;
        -:        -: 6080:}
        -:        -: 6081:static nir_const_value
    #####:    #####: 6082:evaluate_fnoise2_1(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6083:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6084:{
    #####:    #####: 6085:   nir_const_value _dst_val = { {0, } };
        -:        -: 6086:
    #####:    #####: 6087:      switch (bit_size) {
        -:        -: 6088:      case 16: {
        -:        -: 6089:         
        -:        -: 6090:   
        -:        -: 6091:
        -:        -: 6092:         
        -:        -: 6093:      struct float16_vec dst;
        -:        -: 6094:
    #####:    #####: 6095:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6096:
    #####:    #####: 6097:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6098:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
        -:        -: 6099:
    #####:    #####: 6100:         break;
        -:        -: 6101:      }
        -:        -: 6102:      case 32: {
        -:        -: 6103:         
        -:        -: 6104:   
        -:        -: 6105:
        -:        -: 6106:         
        -:        -: 6107:      struct float32_vec dst;
        -:        -: 6108:
    #####:    #####: 6109:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6110:
    #####:    #####: 6111:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6112:            _dst_val.f32[1] = dst.y;
        -:        -: 6113:
    #####:    #####: 6114:         break;
        -:        -: 6115:      }
        -:        -: 6116:      case 64: {
        -:        -: 6117:         
        -:        -: 6118:   
        -:        -: 6119:
        -:        -: 6120:         
        -:        -: 6121:      struct float64_vec dst;
        -:        -: 6122:
    #####:    #####: 6123:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6124:
    #####:    #####: 6125:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6126:            _dst_val.f64[1] = dst.y;
        -:        -: 6127:
    #####:    #####: 6128:         break;
        -:        -: 6129:      }
        -:        -: 6130:
        -:        -: 6131:      default:
    #####:    #####: 6132:         unreachable("unknown bit width");
        -:        -: 6133:      }
        -:        -: 6134:
    #####:    #####: 6135:   return _dst_val;
        -:        -: 6136:}
        -:        -: 6137:static nir_const_value
    #####:    #####: 6138:evaluate_fnoise2_2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6139:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6140:{
    #####:    #####: 6141:   nir_const_value _dst_val = { {0, } };
        -:        -: 6142:
    #####:    #####: 6143:      switch (bit_size) {
        -:        -: 6144:      case 16: {
        -:        -: 6145:         
        -:        -: 6146:   
        -:        -: 6147:
        -:        -: 6148:         
        -:        -: 6149:      struct float16_vec dst;
        -:        -: 6150:
    #####:    #####: 6151:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6152:
    #####:    #####: 6153:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6154:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
        -:        -: 6155:
    #####:    #####: 6156:         break;
        -:        -: 6157:      }
        -:        -: 6158:      case 32: {
        -:        -: 6159:         
        -:        -: 6160:   
        -:        -: 6161:
        -:        -: 6162:         
        -:        -: 6163:      struct float32_vec dst;
        -:        -: 6164:
    #####:    #####: 6165:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6166:
    #####:    #####: 6167:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6168:            _dst_val.f32[1] = dst.y;
        -:        -: 6169:
    #####:    #####: 6170:         break;
        -:        -: 6171:      }
        -:        -: 6172:      case 64: {
        -:        -: 6173:         
        -:        -: 6174:   
        -:        -: 6175:
        -:        -: 6176:         
        -:        -: 6177:      struct float64_vec dst;
        -:        -: 6178:
    #####:    #####: 6179:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6180:
    #####:    #####: 6181:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6182:            _dst_val.f64[1] = dst.y;
        -:        -: 6183:
    #####:    #####: 6184:         break;
        -:        -: 6185:      }
        -:        -: 6186:
        -:        -: 6187:      default:
    #####:    #####: 6188:         unreachable("unknown bit width");
        -:        -: 6189:      }
        -:        -: 6190:
    #####:    #####: 6191:   return _dst_val;
        -:        -: 6192:}
        -:        -: 6193:static nir_const_value
    #####:    #####: 6194:evaluate_fnoise2_3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6195:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6196:{
    #####:    #####: 6197:   nir_const_value _dst_val = { {0, } };
        -:        -: 6198:
    #####:    #####: 6199:      switch (bit_size) {
        -:        -: 6200:      case 16: {
        -:        -: 6201:         
        -:        -: 6202:   
        -:        -: 6203:
        -:        -: 6204:         
        -:        -: 6205:      struct float16_vec dst;
        -:        -: 6206:
    #####:    #####: 6207:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6208:
    #####:    #####: 6209:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6210:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
        -:        -: 6211:
    #####:    #####: 6212:         break;
        -:        -: 6213:      }
        -:        -: 6214:      case 32: {
        -:        -: 6215:         
        -:        -: 6216:   
        -:        -: 6217:
        -:        -: 6218:         
        -:        -: 6219:      struct float32_vec dst;
        -:        -: 6220:
    #####:    #####: 6221:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6222:
    #####:    #####: 6223:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6224:            _dst_val.f32[1] = dst.y;
        -:        -: 6225:
    #####:    #####: 6226:         break;
        -:        -: 6227:      }
        -:        -: 6228:      case 64: {
        -:        -: 6229:         
        -:        -: 6230:   
        -:        -: 6231:
        -:        -: 6232:         
        -:        -: 6233:      struct float64_vec dst;
        -:        -: 6234:
    #####:    #####: 6235:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6236:
    #####:    #####: 6237:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6238:            _dst_val.f64[1] = dst.y;
        -:        -: 6239:
    #####:    #####: 6240:         break;
        -:        -: 6241:      }
        -:        -: 6242:
        -:        -: 6243:      default:
    #####:    #####: 6244:         unreachable("unknown bit width");
        -:        -: 6245:      }
        -:        -: 6246:
    #####:    #####: 6247:   return _dst_val;
        -:        -: 6248:}
        -:        -: 6249:static nir_const_value
    #####:    #####: 6250:evaluate_fnoise2_4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6251:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6252:{
    #####:    #####: 6253:   nir_const_value _dst_val = { {0, } };
        -:        -: 6254:
    #####:    #####: 6255:      switch (bit_size) {
        -:        -: 6256:      case 16: {
        -:        -: 6257:         
        -:        -: 6258:   
        -:        -: 6259:
        -:        -: 6260:         
        -:        -: 6261:      struct float16_vec dst;
        -:        -: 6262:
    #####:    #####: 6263:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6264:
    #####:    #####: 6265:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6266:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
        -:        -: 6267:
    #####:    #####: 6268:         break;
        -:        -: 6269:      }
        -:        -: 6270:      case 32: {
        -:        -: 6271:         
        -:        -: 6272:   
        -:        -: 6273:
        -:        -: 6274:         
        -:        -: 6275:      struct float32_vec dst;
        -:        -: 6276:
    #####:    #####: 6277:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6278:
    #####:    #####: 6279:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6280:            _dst_val.f32[1] = dst.y;
        -:        -: 6281:
    #####:    #####: 6282:         break;
        -:        -: 6283:      }
        -:        -: 6284:      case 64: {
        -:        -: 6285:         
        -:        -: 6286:   
        -:        -: 6287:
        -:        -: 6288:         
        -:        -: 6289:      struct float64_vec dst;
        -:        -: 6290:
    #####:    #####: 6291:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6292:
    #####:    #####: 6293:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6294:            _dst_val.f64[1] = dst.y;
        -:        -: 6295:
    #####:    #####: 6296:         break;
        -:        -: 6297:      }
        -:        -: 6298:
        -:        -: 6299:      default:
    #####:    #####: 6300:         unreachable("unknown bit width");
        -:        -: 6301:      }
        -:        -: 6302:
    #####:    #####: 6303:   return _dst_val;
        -:        -: 6304:}
        -:        -: 6305:static nir_const_value
    #####:    #####: 6306:evaluate_fnoise3_1(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6307:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6308:{
    #####:    #####: 6309:   nir_const_value _dst_val = { {0, } };
        -:        -: 6310:
    #####:    #####: 6311:      switch (bit_size) {
        -:        -: 6312:      case 16: {
        -:        -: 6313:         
        -:        -: 6314:   
        -:        -: 6315:
        -:        -: 6316:         
        -:        -: 6317:      struct float16_vec dst;
        -:        -: 6318:
    #####:    #####: 6319:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6320:
    #####:    #####: 6321:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6322:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6323:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
        -:        -: 6324:
    #####:    #####: 6325:         break;
        -:        -: 6326:      }
        -:        -: 6327:      case 32: {
        -:        -: 6328:         
        -:        -: 6329:   
        -:        -: 6330:
        -:        -: 6331:         
        -:        -: 6332:      struct float32_vec dst;
        -:        -: 6333:
    #####:    #####: 6334:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6335:
    #####:    #####: 6336:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6337:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6338:            _dst_val.f32[2] = dst.z;
        -:        -: 6339:
    #####:    #####: 6340:         break;
        -:        -: 6341:      }
        -:        -: 6342:      case 64: {
        -:        -: 6343:         
        -:        -: 6344:   
        -:        -: 6345:
        -:        -: 6346:         
        -:        -: 6347:      struct float64_vec dst;
        -:        -: 6348:
    #####:    #####: 6349:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6350:
    #####:    #####: 6351:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6352:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6353:            _dst_val.f64[2] = dst.z;
        -:        -: 6354:
    #####:    #####: 6355:         break;
        -:        -: 6356:      }
        -:        -: 6357:
        -:        -: 6358:      default:
    #####:    #####: 6359:         unreachable("unknown bit width");
        -:        -: 6360:      }
        -:        -: 6361:
    #####:    #####: 6362:   return _dst_val;
        -:        -: 6363:}
        -:        -: 6364:static nir_const_value
    #####:    #####: 6365:evaluate_fnoise3_2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6366:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6367:{
    #####:    #####: 6368:   nir_const_value _dst_val = { {0, } };
        -:        -: 6369:
    #####:    #####: 6370:      switch (bit_size) {
        -:        -: 6371:      case 16: {
        -:        -: 6372:         
        -:        -: 6373:   
        -:        -: 6374:
        -:        -: 6375:         
        -:        -: 6376:      struct float16_vec dst;
        -:        -: 6377:
    #####:    #####: 6378:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6379:
    #####:    #####: 6380:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6381:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6382:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
        -:        -: 6383:
    #####:    #####: 6384:         break;
        -:        -: 6385:      }
        -:        -: 6386:      case 32: {
        -:        -: 6387:         
        -:        -: 6388:   
        -:        -: 6389:
        -:        -: 6390:         
        -:        -: 6391:      struct float32_vec dst;
        -:        -: 6392:
    #####:    #####: 6393:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6394:
    #####:    #####: 6395:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6396:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6397:            _dst_val.f32[2] = dst.z;
        -:        -: 6398:
    #####:    #####: 6399:         break;
        -:        -: 6400:      }
        -:        -: 6401:      case 64: {
        -:        -: 6402:         
        -:        -: 6403:   
        -:        -: 6404:
        -:        -: 6405:         
        -:        -: 6406:      struct float64_vec dst;
        -:        -: 6407:
    #####:    #####: 6408:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6409:
    #####:    #####: 6410:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6411:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6412:            _dst_val.f64[2] = dst.z;
        -:        -: 6413:
    #####:    #####: 6414:         break;
        -:        -: 6415:      }
        -:        -: 6416:
        -:        -: 6417:      default:
    #####:    #####: 6418:         unreachable("unknown bit width");
        -:        -: 6419:      }
        -:        -: 6420:
    #####:    #####: 6421:   return _dst_val;
        -:        -: 6422:}
        -:        -: 6423:static nir_const_value
    #####:    #####: 6424:evaluate_fnoise3_3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6425:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6426:{
    #####:    #####: 6427:   nir_const_value _dst_val = { {0, } };
        -:        -: 6428:
    #####:    #####: 6429:      switch (bit_size) {
        -:        -: 6430:      case 16: {
        -:        -: 6431:         
        -:        -: 6432:   
        -:        -: 6433:
        -:        -: 6434:         
        -:        -: 6435:      struct float16_vec dst;
        -:        -: 6436:
    #####:    #####: 6437:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6438:
    #####:    #####: 6439:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6440:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6441:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
        -:        -: 6442:
    #####:    #####: 6443:         break;
        -:        -: 6444:      }
        -:        -: 6445:      case 32: {
        -:        -: 6446:         
        -:        -: 6447:   
        -:        -: 6448:
        -:        -: 6449:         
        -:        -: 6450:      struct float32_vec dst;
        -:        -: 6451:
    #####:    #####: 6452:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6453:
    #####:    #####: 6454:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6455:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6456:            _dst_val.f32[2] = dst.z;
        -:        -: 6457:
    #####:    #####: 6458:         break;
        -:        -: 6459:      }
        -:        -: 6460:      case 64: {
        -:        -: 6461:         
        -:        -: 6462:   
        -:        -: 6463:
        -:        -: 6464:         
        -:        -: 6465:      struct float64_vec dst;
        -:        -: 6466:
    #####:    #####: 6467:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6468:
    #####:    #####: 6469:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6470:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6471:            _dst_val.f64[2] = dst.z;
        -:        -: 6472:
    #####:    #####: 6473:         break;
        -:        -: 6474:      }
        -:        -: 6475:
        -:        -: 6476:      default:
    #####:    #####: 6477:         unreachable("unknown bit width");
        -:        -: 6478:      }
        -:        -: 6479:
    #####:    #####: 6480:   return _dst_val;
        -:        -: 6481:}
        -:        -: 6482:static nir_const_value
    #####:    #####: 6483:evaluate_fnoise3_4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6484:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6485:{
    #####:    #####: 6486:   nir_const_value _dst_val = { {0, } };
        -:        -: 6487:
    #####:    #####: 6488:      switch (bit_size) {
        -:        -: 6489:      case 16: {
        -:        -: 6490:         
        -:        -: 6491:   
        -:        -: 6492:
        -:        -: 6493:         
        -:        -: 6494:      struct float16_vec dst;
        -:        -: 6495:
    #####:    #####: 6496:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6497:
    #####:    #####: 6498:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6499:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6500:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
        -:        -: 6501:
    #####:    #####: 6502:         break;
        -:        -: 6503:      }
        -:        -: 6504:      case 32: {
        -:        -: 6505:         
        -:        -: 6506:   
        -:        -: 6507:
        -:        -: 6508:         
        -:        -: 6509:      struct float32_vec dst;
        -:        -: 6510:
    #####:    #####: 6511:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6512:
    #####:    #####: 6513:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6514:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6515:            _dst_val.f32[2] = dst.z;
        -:        -: 6516:
    #####:    #####: 6517:         break;
        -:        -: 6518:      }
        -:        -: 6519:      case 64: {
        -:        -: 6520:         
        -:        -: 6521:   
        -:        -: 6522:
        -:        -: 6523:         
        -:        -: 6524:      struct float64_vec dst;
        -:        -: 6525:
    #####:    #####: 6526:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6527:
    #####:    #####: 6528:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6529:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6530:            _dst_val.f64[2] = dst.z;
        -:        -: 6531:
    #####:    #####: 6532:         break;
        -:        -: 6533:      }
        -:        -: 6534:
        -:        -: 6535:      default:
    #####:    #####: 6536:         unreachable("unknown bit width");
        -:        -: 6537:      }
        -:        -: 6538:
    #####:    #####: 6539:   return _dst_val;
        -:        -: 6540:}
        -:        -: 6541:static nir_const_value
    #####:    #####: 6542:evaluate_fnoise4_1(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6543:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6544:{
    #####:    #####: 6545:   nir_const_value _dst_val = { {0, } };
        -:        -: 6546:
    #####:    #####: 6547:      switch (bit_size) {
        -:        -: 6548:      case 16: {
        -:        -: 6549:         
        -:        -: 6550:   
        -:        -: 6551:
        -:        -: 6552:         
        -:        -: 6553:      struct float16_vec dst;
        -:        -: 6554:
    #####:    #####: 6555:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6556:
    #####:    #####: 6557:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6558:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6559:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 6560:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 6561:
    #####:    #####: 6562:         break;
        -:        -: 6563:      }
        -:        -: 6564:      case 32: {
        -:        -: 6565:         
        -:        -: 6566:   
        -:        -: 6567:
        -:        -: 6568:         
        -:        -: 6569:      struct float32_vec dst;
        -:        -: 6570:
    #####:    #####: 6571:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6572:
    #####:    #####: 6573:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6574:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6575:            _dst_val.f32[2] = dst.z;
    #####:    #####: 6576:            _dst_val.f32[3] = dst.w;
        -:        -: 6577:
    #####:    #####: 6578:         break;
        -:        -: 6579:      }
        -:        -: 6580:      case 64: {
        -:        -: 6581:         
        -:        -: 6582:   
        -:        -: 6583:
        -:        -: 6584:         
        -:        -: 6585:      struct float64_vec dst;
        -:        -: 6586:
    #####:    #####: 6587:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6588:
    #####:    #####: 6589:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6590:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6591:            _dst_val.f64[2] = dst.z;
    #####:    #####: 6592:            _dst_val.f64[3] = dst.w;
        -:        -: 6593:
    #####:    #####: 6594:         break;
        -:        -: 6595:      }
        -:        -: 6596:
        -:        -: 6597:      default:
    #####:    #####: 6598:         unreachable("unknown bit width");
        -:        -: 6599:      }
        -:        -: 6600:
    #####:    #####: 6601:   return _dst_val;
        -:        -: 6602:}
        -:        -: 6603:static nir_const_value
    #####:    #####: 6604:evaluate_fnoise4_2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6605:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6606:{
    #####:    #####: 6607:   nir_const_value _dst_val = { {0, } };
        -:        -: 6608:
    #####:    #####: 6609:      switch (bit_size) {
        -:        -: 6610:      case 16: {
        -:        -: 6611:         
        -:        -: 6612:   
        -:        -: 6613:
        -:        -: 6614:         
        -:        -: 6615:      struct float16_vec dst;
        -:        -: 6616:
    #####:    #####: 6617:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6618:
    #####:    #####: 6619:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6620:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6621:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 6622:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 6623:
    #####:    #####: 6624:         break;
        -:        -: 6625:      }
        -:        -: 6626:      case 32: {
        -:        -: 6627:         
        -:        -: 6628:   
        -:        -: 6629:
        -:        -: 6630:         
        -:        -: 6631:      struct float32_vec dst;
        -:        -: 6632:
    #####:    #####: 6633:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6634:
    #####:    #####: 6635:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6636:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6637:            _dst_val.f32[2] = dst.z;
    #####:    #####: 6638:            _dst_val.f32[3] = dst.w;
        -:        -: 6639:
    #####:    #####: 6640:         break;
        -:        -: 6641:      }
        -:        -: 6642:      case 64: {
        -:        -: 6643:         
        -:        -: 6644:   
        -:        -: 6645:
        -:        -: 6646:         
        -:        -: 6647:      struct float64_vec dst;
        -:        -: 6648:
    #####:    #####: 6649:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6650:
    #####:    #####: 6651:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6652:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6653:            _dst_val.f64[2] = dst.z;
    #####:    #####: 6654:            _dst_val.f64[3] = dst.w;
        -:        -: 6655:
    #####:    #####: 6656:         break;
        -:        -: 6657:      }
        -:        -: 6658:
        -:        -: 6659:      default:
    #####:    #####: 6660:         unreachable("unknown bit width");
        -:        -: 6661:      }
        -:        -: 6662:
    #####:    #####: 6663:   return _dst_val;
        -:        -: 6664:}
        -:        -: 6665:static nir_const_value
    #####:    #####: 6666:evaluate_fnoise4_3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6667:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6668:{
    #####:    #####: 6669:   nir_const_value _dst_val = { {0, } };
        -:        -: 6670:
    #####:    #####: 6671:      switch (bit_size) {
        -:        -: 6672:      case 16: {
        -:        -: 6673:         
        -:        -: 6674:   
        -:        -: 6675:
        -:        -: 6676:         
        -:        -: 6677:      struct float16_vec dst;
        -:        -: 6678:
    #####:    #####: 6679:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6680:
    #####:    #####: 6681:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6682:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6683:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 6684:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 6685:
    #####:    #####: 6686:         break;
        -:        -: 6687:      }
        -:        -: 6688:      case 32: {
        -:        -: 6689:         
        -:        -: 6690:   
        -:        -: 6691:
        -:        -: 6692:         
        -:        -: 6693:      struct float32_vec dst;
        -:        -: 6694:
    #####:    #####: 6695:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6696:
    #####:    #####: 6697:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6698:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6699:            _dst_val.f32[2] = dst.z;
    #####:    #####: 6700:            _dst_val.f32[3] = dst.w;
        -:        -: 6701:
    #####:    #####: 6702:         break;
        -:        -: 6703:      }
        -:        -: 6704:      case 64: {
        -:        -: 6705:         
        -:        -: 6706:   
        -:        -: 6707:
        -:        -: 6708:         
        -:        -: 6709:      struct float64_vec dst;
        -:        -: 6710:
    #####:    #####: 6711:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6712:
    #####:    #####: 6713:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6714:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6715:            _dst_val.f64[2] = dst.z;
    #####:    #####: 6716:            _dst_val.f64[3] = dst.w;
        -:        -: 6717:
    #####:    #####: 6718:         break;
        -:        -: 6719:      }
        -:        -: 6720:
        -:        -: 6721:      default:
    #####:    #####: 6722:         unreachable("unknown bit width");
        -:        -: 6723:      }
        -:        -: 6724:
    #####:    #####: 6725:   return _dst_val;
        -:        -: 6726:}
        -:        -: 6727:static nir_const_value
    #####:    #####: 6728:evaluate_fnoise4_4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6729:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6730:{
    #####:    #####: 6731:   nir_const_value _dst_val = { {0, } };
        -:        -: 6732:
    #####:    #####: 6733:      switch (bit_size) {
        -:        -: 6734:      case 16: {
        -:        -: 6735:         
        -:        -: 6736:   
        -:        -: 6737:
        -:        -: 6738:         
        -:        -: 6739:      struct float16_vec dst;
        -:        -: 6740:
    #####:    #####: 6741:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6742:
    #####:    #####: 6743:            _dst_val.u16[0] = _mesa_float_to_half(dst.x);
    #####:    #####: 6744:            _dst_val.u16[1] = _mesa_float_to_half(dst.y);
    #####:    #####: 6745:            _dst_val.u16[2] = _mesa_float_to_half(dst.z);
    #####:    #####: 6746:            _dst_val.u16[3] = _mesa_float_to_half(dst.w);
        -:        -: 6747:
    #####:    #####: 6748:         break;
        -:        -: 6749:      }
        -:        -: 6750:      case 32: {
        -:        -: 6751:         
        -:        -: 6752:   
        -:        -: 6753:
        -:        -: 6754:         
        -:        -: 6755:      struct float32_vec dst;
        -:        -: 6756:
    #####:    #####: 6757:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6758:
    #####:    #####: 6759:            _dst_val.f32[0] = dst.x;
    #####:    #####: 6760:            _dst_val.f32[1] = dst.y;
    #####:    #####: 6761:            _dst_val.f32[2] = dst.z;
    #####:    #####: 6762:            _dst_val.f32[3] = dst.w;
        -:        -: 6763:
    #####:    #####: 6764:         break;
        -:        -: 6765:      }
        -:        -: 6766:      case 64: {
        -:        -: 6767:         
        -:        -: 6768:   
        -:        -: 6769:
        -:        -: 6770:         
        -:        -: 6771:      struct float64_vec dst;
        -:        -: 6772:
    #####:    #####: 6773:         dst.x = dst.y = dst.z = dst.w = 0.0f;
        -:        -: 6774:
    #####:    #####: 6775:            _dst_val.f64[0] = dst.x;
    #####:    #####: 6776:            _dst_val.f64[1] = dst.y;
    #####:    #####: 6777:            _dst_val.f64[2] = dst.z;
    #####:    #####: 6778:            _dst_val.f64[3] = dst.w;
        -:        -: 6779:
    #####:    #####: 6780:         break;
        -:        -: 6781:      }
        -:        -: 6782:
        -:        -: 6783:      default:
    #####:    #####: 6784:         unreachable("unknown bit width");
        -:        -: 6785:      }
        -:        -: 6786:
    #####:    #####: 6787:   return _dst_val;
        -:        -: 6788:}
        -:        -: 6789:static nir_const_value
    #####:    #####: 6790:evaluate_fnot(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6791:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6792:{
    #####:    #####: 6793:   nir_const_value _dst_val = { {0, } };
        -:        -: 6794:
    #####:    #####: 6795:      switch (bit_size) {
        -:        -: 6796:      case 16: {
        -:        -: 6797:         
        -:        -: 6798:   
        -:        -: 6799:
        -:        -: 6800:         
    #####:    #####: 6801:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6802:               const float src0 =
    #####:    #####: 6803:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 6804:
    #####:    #####: 6805:            float16_t dst = bit_size == 64 ? ((src0 == 0.0) ? 1.0 : 0.0f) : ((src0 == 0.0f) ? 1.0f : 0.0f);
        -:        -: 6806:
    #####:    #####: 6807:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 6808:      }
        -:        -: 6809:
    #####:    #####: 6810:         break;
        -:        -: 6811:      }
        -:        -: 6812:      case 32: {
        -:        -: 6813:         
        -:        -: 6814:   
        -:        -: 6815:
        -:        -: 6816:         
    #####:    #####: 6817:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6818:               const float32_t src0 =
        -:        -: 6819:                  _src[0].f32[_i];
        -:        -: 6820:
    #####:    #####: 6821:            float32_t dst = bit_size == 64 ? ((src0 == 0.0) ? 1.0 : 0.0f) : ((src0 == 0.0f) ? 1.0f : 0.0f);
        -:        -: 6822:
    #####:    #####: 6823:            _dst_val.f32[_i] = dst;
        -:        -: 6824:      }
        -:        -: 6825:
    #####:    #####: 6826:         break;
        -:        -: 6827:      }
        -:        -: 6828:      case 64: {
        -:        -: 6829:         
        -:        -: 6830:   
        -:        -: 6831:
        -:        -: 6832:         
    #####:    #####: 6833:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6834:               const float64_t src0 =
        -:        -: 6835:                  _src[0].f64[_i];
        -:        -: 6836:
    #####:    #####: 6837:            float64_t dst = bit_size == 64 ? ((src0 == 0.0) ? 1.0 : 0.0f) : ((src0 == 0.0f) ? 1.0f : 0.0f);
        -:        -: 6838:
    #####:    #####: 6839:            _dst_val.f64[_i] = dst;
        -:        -: 6840:      }
        -:        -: 6841:
    #####:    #####: 6842:         break;
        -:        -: 6843:      }
        -:        -: 6844:
        -:        -: 6845:      default:
    #####:    #####: 6846:         unreachable("unknown bit width");
        -:        -: 6847:      }
        -:        -: 6848:
    #####:    #####: 6849:   return _dst_val;
        -:        -: 6850:}
        -:        -: 6851:static nir_const_value
    #####:    #####: 6852:evaluate_for(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6853:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6854:{
    #####:    #####: 6855:   nir_const_value _dst_val = { {0, } };
        -:        -: 6856:
        -:        -: 6857:      
        -:        -: 6858:   
        -:        -: 6859:
        -:        -: 6860:                  
    #####:    #####: 6861:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6862:               const float32_t src0 =
        -:        -: 6863:                  _src[0].f32[_i];
    #####:    #####: 6864:               const float32_t src1 =
    #####:    #####: 6865:                  _src[1].f32[_i];
        -:        -: 6866:
    #####:    #####: 6867:            float32_t dst = ((src0 != 0.0f) || (src1 != 0.0f)) ? 1.0f : 0.0f;
        -:        -: 6868:
    #####:    #####: 6869:            _dst_val.f32[_i] = dst;
        -:        -: 6870:      }
        -:        -: 6871:
        -:        -: 6872:
    #####:    #####: 6873:   return _dst_val;
        -:        -: 6874:}
        -:        -: 6875:static nir_const_value
    #####:    #####: 6876:evaluate_fpow(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6877:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6878:{
    #####:    #####: 6879:   nir_const_value _dst_val = { {0, } };
        -:        -: 6880:
    #####:    #####: 6881:      switch (bit_size) {
        -:        -: 6882:      case 16: {
        -:        -: 6883:         
        -:        -: 6884:   
        -:        -: 6885:
        -:        -: 6886:                  
    #####:    #####: 6887:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6888:               const float src0 =
    #####:    #####: 6889:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 6890:               const float src1 =
    #####:    #####: 6891:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 6892:
    #####:    #####: 6893:            float16_t dst = bit_size == 64 ? powf(src0, src1) : pow(src0, src1);
        -:        -: 6894:
    #####:    #####: 6895:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 6896:      }
        -:        -: 6897:
    #####:    #####: 6898:         break;
        -:        -: 6899:      }
        -:        -: 6900:      case 32: {
        -:        -: 6901:         
        -:        -: 6902:   
        -:        -: 6903:
        -:        -: 6904:                  
    #####:    #####: 6905:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6906:               const float32_t src0 =
        -:        -: 6907:                  _src[0].f32[_i];
    #####:    #####: 6908:               const float32_t src1 =
    #####:    #####: 6909:                  _src[1].f32[_i];
        -:        -: 6910:
    #####:    #####: 6911:            float32_t dst = bit_size == 64 ? powf(src0, src1) : pow(src0, src1);
        -:        -: 6912:
    #####:    #####: 6913:            _dst_val.f32[_i] = dst;
        -:        -: 6914:      }
        -:        -: 6915:
    #####:    #####: 6916:         break;
        -:        -: 6917:      }
        -:        -: 6918:      case 64: {
        -:        -: 6919:         
        -:        -: 6920:   
        -:        -: 6921:
        -:        -: 6922:                  
    #####:    #####: 6923:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6924:               const float64_t src0 =
        -:        -: 6925:                  _src[0].f64[_i];
    #####:    #####: 6926:               const float64_t src1 =
    #####:    #####: 6927:                  _src[1].f64[_i];
        -:        -: 6928:
    #####:    #####: 6929:            float64_t dst = bit_size == 64 ? powf(src0, src1) : pow(src0, src1);
        -:        -: 6930:
    #####:    #####: 6931:            _dst_val.f64[_i] = dst;
        -:        -: 6932:      }
        -:        -: 6933:
    #####:    #####: 6934:         break;
        -:        -: 6935:      }
        -:        -: 6936:
        -:        -: 6937:      default:
    #####:    #####: 6938:         unreachable("unknown bit width");
        -:        -: 6939:      }
        -:        -: 6940:
    #####:    #####: 6941:   return _dst_val;
        -:        -: 6942:}
        -:        -: 6943:static nir_const_value
    #####:    #####: 6944:evaluate_fquantize2f16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 6945:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 6946:{
    #####:    #####: 6947:   nir_const_value _dst_val = { {0, } };
        -:        -: 6948:
    #####:    #####: 6949:      switch (bit_size) {
        -:        -: 6950:      case 16: {
        -:        -: 6951:         
        -:        -: 6952:   
        -:        -: 6953:
        -:        -: 6954:         
    #####:    #####: 6955:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6956:               const float src0 =
    #####:    #####: 6957:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 6958:
    #####:    #####: 6959:            float16_t dst = (fabs(src0) < ldexpf(1.0, -14)) ? copysignf(0.0f, src0) : _mesa_half_to_float(_mesa_float_to_half(src0));
        -:        -: 6960:
    #####:    #####: 6961:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 6962:      }
        -:        -: 6963:
    #####:    #####: 6964:         break;
        -:        -: 6965:      }
        -:        -: 6966:      case 32: {
        -:        -: 6967:         
        -:        -: 6968:   
        -:        -: 6969:
        -:        -: 6970:         
    #####:    #####: 6971:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6972:               const float32_t src0 =
        -:        -: 6973:                  _src[0].f32[_i];
        -:        -: 6974:
    #####:    #####: 6975:            float32_t dst = (fabs(src0) < ldexpf(1.0, -14)) ? copysignf(0.0f, src0) : _mesa_half_to_float(_mesa_float_to_half(src0));
        -:        -: 6976:
    #####:    #####: 6977:            _dst_val.f32[_i] = dst;
        -:        -: 6978:      }
        -:        -: 6979:
    #####:    #####: 6980:         break;
        -:        -: 6981:      }
        -:        -: 6982:      case 64: {
        -:        -: 6983:         
        -:        -: 6984:   
        -:        -: 6985:
        -:        -: 6986:         
    #####:    #####: 6987:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 6988:               const float64_t src0 =
        -:        -: 6989:                  _src[0].f64[_i];
        -:        -: 6990:
    #####:    #####: 6991:            float64_t dst = (fabs(src0) < ldexpf(1.0, -14)) ? copysignf(0.0f, src0) : _mesa_half_to_float(_mesa_float_to_half(src0));
        -:        -: 6992:
    #####:    #####: 6993:            _dst_val.f64[_i] = dst;
        -:        -: 6994:      }
        -:        -: 6995:
    #####:    #####: 6996:         break;
        -:        -: 6997:      }
        -:        -: 6998:
        -:        -: 6999:      default:
    #####:    #####: 7000:         unreachable("unknown bit width");
        -:        -: 7001:      }
        -:        -: 7002:
    #####:    #####: 7003:   return _dst_val;
        -:        -: 7004:}
        -:        -: 7005:static nir_const_value
    #####:    #####: 7006:evaluate_frcp(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7007:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7008:{
    #####:    #####: 7009:   nir_const_value _dst_val = { {0, } };
        -:        -: 7010:
    #####:    #####: 7011:      switch (bit_size) {
        -:        -: 7012:      case 16: {
        -:        -: 7013:         
        -:        -: 7014:   
        -:        -: 7015:
        -:        -: 7016:         
    #####:    #####: 7017:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7018:               const float src0 =
    #####:    #####: 7019:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7020:
    #####:    #####: 7021:            float16_t dst = bit_size == 64 ? 1.0 / src0 : 1.0f / src0;
        -:        -: 7022:
    #####:    #####: 7023:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7024:      }
        -:        -: 7025:
    #####:    #####: 7026:         break;
        -:        -: 7027:      }
        -:        -: 7028:      case 32: {
        -:        -: 7029:         
        -:        -: 7030:   
        -:        -: 7031:
        -:        -: 7032:         
    #####:    #####: 7033:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7034:               const float32_t src0 =
        -:        -: 7035:                  _src[0].f32[_i];
        -:        -: 7036:
    #####:    #####: 7037:            float32_t dst = bit_size == 64 ? 1.0 / src0 : 1.0f / src0;
        -:        -: 7038:
    #####:    #####: 7039:            _dst_val.f32[_i] = dst;
        -:        -: 7040:      }
        -:        -: 7041:
    #####:    #####: 7042:         break;
        -:        -: 7043:      }
        -:        -: 7044:      case 64: {
        -:        -: 7045:         
        -:        -: 7046:   
        -:        -: 7047:
        -:        -: 7048:         
    #####:    #####: 7049:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7050:               const float64_t src0 =
        -:        -: 7051:                  _src[0].f64[_i];
        -:        -: 7052:
    #####:    #####: 7053:            float64_t dst = bit_size == 64 ? 1.0 / src0 : 1.0f / src0;
        -:        -: 7054:
    #####:    #####: 7055:            _dst_val.f64[_i] = dst;
        -:        -: 7056:      }
        -:        -: 7057:
    #####:    #####: 7058:         break;
        -:        -: 7059:      }
        -:        -: 7060:
        -:        -: 7061:      default:
    #####:    #####: 7062:         unreachable("unknown bit width");
        -:        -: 7063:      }
        -:        -: 7064:
    #####:    #####: 7065:   return _dst_val;
        -:        -: 7066:}
        -:        -: 7067:static nir_const_value
    #####:    #####: 7068:evaluate_frem(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7069:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7070:{
    #####:    #####: 7071:   nir_const_value _dst_val = { {0, } };
        -:        -: 7072:
    #####:    #####: 7073:      switch (bit_size) {
        -:        -: 7074:      case 16: {
        -:        -: 7075:         
        -:        -: 7076:   
        -:        -: 7077:
        -:        -: 7078:                  
    #####:    #####: 7079:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7080:               const float src0 =
    #####:    #####: 7081:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 7082:               const float src1 =
    #####:    #####: 7083:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 7084:
    #####:    #####: 7085:            float16_t dst = src0 - src1 * truncf(src0 / src1);
        -:        -: 7086:
    #####:    #####: 7087:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7088:      }
        -:        -: 7089:
    #####:    #####: 7090:         break;
        -:        -: 7091:      }
        -:        -: 7092:      case 32: {
        -:        -: 7093:         
        -:        -: 7094:   
        -:        -: 7095:
        -:        -: 7096:                  
    #####:    #####: 7097:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7098:               const float32_t src0 =
        -:        -: 7099:                  _src[0].f32[_i];
    #####:    #####: 7100:               const float32_t src1 =
    #####:    #####: 7101:                  _src[1].f32[_i];
        -:        -: 7102:
    #####:    #####: 7103:            float32_t dst = src0 - src1 * truncf(src0 / src1);
        -:        -: 7104:
    #####:    #####: 7105:            _dst_val.f32[_i] = dst;
        -:        -: 7106:      }
        -:        -: 7107:
    #####:    #####: 7108:         break;
        -:        -: 7109:      }
        -:        -: 7110:      case 64: {
        -:        -: 7111:         
        -:        -: 7112:   
        -:        -: 7113:
        -:        -: 7114:                  
    #####:    #####: 7115:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7116:               const float64_t src0 =
        -:        -: 7117:                  _src[0].f64[_i];
    #####:    #####: 7118:               const float64_t src1 =
    #####:    #####: 7119:                  _src[1].f64[_i];
        -:        -: 7120:
    #####:    #####: 7121:            float64_t dst = src0 - src1 * truncf(src0 / src1);
        -:        -: 7122:
    #####:    #####: 7123:            _dst_val.f64[_i] = dst;
        -:        -: 7124:      }
        -:        -: 7125:
    #####:    #####: 7126:         break;
        -:        -: 7127:      }
        -:        -: 7128:
        -:        -: 7129:      default:
    #####:    #####: 7130:         unreachable("unknown bit width");
        -:        -: 7131:      }
        -:        -: 7132:
    #####:    #####: 7133:   return _dst_val;
        -:        -: 7134:}
        -:        -: 7135:static nir_const_value
    #####:    #####: 7136:evaluate_fround_even(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7137:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7138:{
    #####:    #####: 7139:   nir_const_value _dst_val = { {0, } };
        -:        -: 7140:
    #####:    #####: 7141:      switch (bit_size) {
        -:        -: 7142:      case 16: {
        -:        -: 7143:         
        -:        -: 7144:   
        -:        -: 7145:
        -:        -: 7146:         
    #####:    #####: 7147:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7148:               const float src0 =
    #####:    #####: 7149:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7150:
    #####:    #####: 7151:            float16_t dst = bit_size == 64 ? _mesa_roundeven(src0) : _mesa_roundevenf(src0);
        -:        -: 7152:
    #####:    #####: 7153:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7154:      }
        -:        -: 7155:
    #####:    #####: 7156:         break;
        -:        -: 7157:      }
        -:        -: 7158:      case 32: {
        -:        -: 7159:         
        -:        -: 7160:   
        -:        -: 7161:
        -:        -: 7162:         
    #####:    #####: 7163:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7164:               const float32_t src0 =
        -:        -: 7165:                  _src[0].f32[_i];
        -:        -: 7166:
    #####:    #####: 7167:            float32_t dst = bit_size == 64 ? _mesa_roundeven(src0) : _mesa_roundevenf(src0);
        -:        -: 7168:
    #####:    #####: 7169:            _dst_val.f32[_i] = dst;
        -:        -: 7170:      }
        -:        -: 7171:
    #####:    #####: 7172:         break;
        -:        -: 7173:      }
        -:        -: 7174:      case 64: {
        -:        -: 7175:         
        -:        -: 7176:   
        -:        -: 7177:
        -:        -: 7178:         
    #####:    #####: 7179:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7180:               const float64_t src0 =
        -:        -: 7181:                  _src[0].f64[_i];
        -:        -: 7182:
    #####:    #####: 7183:            float64_t dst = bit_size == 64 ? _mesa_roundeven(src0) : _mesa_roundevenf(src0);
        -:        -: 7184:
    #####:    #####: 7185:            _dst_val.f64[_i] = dst;
        -:        -: 7186:      }
        -:        -: 7187:
    #####:    #####: 7188:         break;
        -:        -: 7189:      }
        -:        -: 7190:
        -:        -: 7191:      default:
    #####:    #####: 7192:         unreachable("unknown bit width");
        -:        -: 7193:      }
        -:        -: 7194:
    #####:    #####: 7195:   return _dst_val;
        -:        -: 7196:}
        -:        -: 7197:static nir_const_value
    #####:    #####: 7198:evaluate_frsq(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7199:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7200:{
    #####:    #####: 7201:   nir_const_value _dst_val = { {0, } };
        -:        -: 7202:
    #####:    #####: 7203:      switch (bit_size) {
        -:        -: 7204:      case 16: {
        -:        -: 7205:         
        -:        -: 7206:   
        -:        -: 7207:
        -:        -: 7208:         
    #####:    #####: 7209:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7210:               const float src0 =
    #####:    #####: 7211:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7212:
    #####:    #####: 7213:            float16_t dst = bit_size == 64 ? 1.0 / sqrt(src0) : 1.0f / sqrtf(src0);
        -:        -: 7214:
    #####:    #####: 7215:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7216:      }
        -:        -: 7217:
    #####:    #####: 7218:         break;
        -:        -: 7219:      }
        -:        -: 7220:      case 32: {
        -:        -: 7221:         
        -:        -: 7222:   
        -:        -: 7223:
        -:        -: 7224:         
    #####:    #####: 7225:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7226:               const float32_t src0 =
        -:        -: 7227:                  _src[0].f32[_i];
        -:        -: 7228:
    #####:    #####: 7229:            float32_t dst = bit_size == 64 ? 1.0 / sqrt(src0) : 1.0f / sqrtf(src0);
        -:        -: 7230:
    #####:    #####: 7231:            _dst_val.f32[_i] = dst;
        -:        -: 7232:      }
        -:        -: 7233:
    #####:    #####: 7234:         break;
        -:        -: 7235:      }
        -:        -: 7236:      case 64: {
        -:        -: 7237:         
        -:        -: 7238:   
        -:        -: 7239:
        -:        -: 7240:         
    #####:    #####: 7241:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7242:               const float64_t src0 =
        -:        -: 7243:                  _src[0].f64[_i];
        -:        -: 7244:
    #####:    #####: 7245:            float64_t dst = bit_size == 64 ? 1.0 / sqrt(src0) : 1.0f / sqrtf(src0);
        -:        -: 7246:
    #####:    #####: 7247:            _dst_val.f64[_i] = dst;
        -:        -: 7248:      }
        -:        -: 7249:
    #####:    #####: 7250:         break;
        -:        -: 7251:      }
        -:        -: 7252:
        -:        -: 7253:      default:
    #####:    #####: 7254:         unreachable("unknown bit width");
        -:        -: 7255:      }
        -:        -: 7256:
    #####:    #####: 7257:   return _dst_val;
        -:        -: 7258:}
        -:        -: 7259:static nir_const_value
    #####:    #####: 7260:evaluate_fsat(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7261:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7262:{
    #####:    #####: 7263:   nir_const_value _dst_val = { {0, } };
        -:        -: 7264:
    #####:    #####: 7265:      switch (bit_size) {
        -:        -: 7266:      case 16: {
        -:        -: 7267:         
        -:        -: 7268:   
        -:        -: 7269:
        -:        -: 7270:         
    #####:    #####: 7271:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7272:               const float src0 =
    #####:    #####: 7273:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7274:
    #####:    #####: 7275:            float16_t dst = bit_size == 64 ? ((src0 > 1.0) ? 1.0 : ((src0 <= 0.0) ? 0.0 : src0)) : ((src0 > 1.0f) ? 1.0f : ((src0 <= 0.0f) ? 0.0f : src0));
        -:        -: 7276:
    #####:    #####: 7277:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7278:      }
        -:        -: 7279:
    #####:    #####: 7280:         break;
        -:        -: 7281:      }
        -:        -: 7282:      case 32: {
        -:        -: 7283:         
        -:        -: 7284:   
        -:        -: 7285:
        -:        -: 7286:         
    #####:    #####: 7287:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7288:               const float32_t src0 =
        -:        -: 7289:                  _src[0].f32[_i];
        -:        -: 7290:
    #####:    #####: 7291:            float32_t dst = bit_size == 64 ? ((src0 > 1.0) ? 1.0 : ((src0 <= 0.0) ? 0.0 : src0)) : ((src0 > 1.0f) ? 1.0f : ((src0 <= 0.0f) ? 0.0f : src0));
        -:        -: 7292:
    #####:    #####: 7293:            _dst_val.f32[_i] = dst;
        -:        -: 7294:      }
        -:        -: 7295:
    #####:    #####: 7296:         break;
        -:        -: 7297:      }
        -:        -: 7298:      case 64: {
        -:        -: 7299:         
        -:        -: 7300:   
        -:        -: 7301:
        -:        -: 7302:         
    #####:    #####: 7303:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7304:               const float64_t src0 =
        -:        -: 7305:                  _src[0].f64[_i];
        -:        -: 7306:
    #####:    #####: 7307:            float64_t dst = bit_size == 64 ? ((src0 > 1.0) ? 1.0 : ((src0 <= 0.0) ? 0.0 : src0)) : ((src0 > 1.0f) ? 1.0f : ((src0 <= 0.0f) ? 0.0f : src0));
        -:        -: 7308:
    #####:    #####: 7309:            _dst_val.f64[_i] = dst;
        -:        -: 7310:      }
        -:        -: 7311:
    #####:    #####: 7312:         break;
        -:        -: 7313:      }
        -:        -: 7314:
        -:        -: 7315:      default:
    #####:    #####: 7316:         unreachable("unknown bit width");
        -:        -: 7317:      }
        -:        -: 7318:
    #####:    #####: 7319:   return _dst_val;
        -:        -: 7320:}
        -:        -: 7321:static nir_const_value
    #####:    #####: 7322:evaluate_fsign(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7323:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7324:{
    #####:    #####: 7325:   nir_const_value _dst_val = { {0, } };
        -:        -: 7326:
    #####:    #####: 7327:      switch (bit_size) {
        -:        -: 7328:      case 16: {
        -:        -: 7329:         
        -:        -: 7330:   
        -:        -: 7331:
        -:        -: 7332:         
    #####:    #####: 7333:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7334:               const float src0 =
    #####:    #####: 7335:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7336:
    #####:    #####: 7337:            float16_t dst = bit_size == 64 ? ((src0 == 0.0) ? 0.0 : ((src0 > 0.0) ? 1.0 : -1.0)) : ((src0 == 0.0f) ? 0.0f : ((src0 > 0.0f) ? 1.0f : -1.0f));
        -:        -: 7338:
    #####:    #####: 7339:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7340:      }
        -:        -: 7341:
    #####:    #####: 7342:         break;
        -:        -: 7343:      }
        -:        -: 7344:      case 32: {
        -:        -: 7345:         
        -:        -: 7346:   
        -:        -: 7347:
        -:        -: 7348:         
    #####:    #####: 7349:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7350:               const float32_t src0 =
        -:        -: 7351:                  _src[0].f32[_i];
        -:        -: 7352:
    #####:    #####: 7353:            float32_t dst = bit_size == 64 ? ((src0 == 0.0) ? 0.0 : ((src0 > 0.0) ? 1.0 : -1.0)) : ((src0 == 0.0f) ? 0.0f : ((src0 > 0.0f) ? 1.0f : -1.0f));
        -:        -: 7354:
    #####:    #####: 7355:            _dst_val.f32[_i] = dst;
        -:        -: 7356:      }
        -:        -: 7357:
    #####:    #####: 7358:         break;
        -:        -: 7359:      }
        -:        -: 7360:      case 64: {
        -:        -: 7361:         
        -:        -: 7362:   
        -:        -: 7363:
        -:        -: 7364:         
    #####:    #####: 7365:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7366:               const float64_t src0 =
        -:        -: 7367:                  _src[0].f64[_i];
        -:        -: 7368:
    #####:    #####: 7369:            float64_t dst = bit_size == 64 ? ((src0 == 0.0) ? 0.0 : ((src0 > 0.0) ? 1.0 : -1.0)) : ((src0 == 0.0f) ? 0.0f : ((src0 > 0.0f) ? 1.0f : -1.0f));
        -:        -: 7370:
    #####:    #####: 7371:            _dst_val.f64[_i] = dst;
        -:        -: 7372:      }
        -:        -: 7373:
    #####:    #####: 7374:         break;
        -:        -: 7375:      }
        -:        -: 7376:
        -:        -: 7377:      default:
    #####:    #####: 7378:         unreachable("unknown bit width");
        -:        -: 7379:      }
        -:        -: 7380:
    #####:    #####: 7381:   return _dst_val;
        -:        -: 7382:}
        -:        -: 7383:static nir_const_value
    #####:    #####: 7384:evaluate_fsin(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7385:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7386:{
    #####:    #####: 7387:   nir_const_value _dst_val = { {0, } };
        -:        -: 7388:
    #####:    #####: 7389:      switch (bit_size) {
        -:        -: 7390:      case 16: {
        -:        -: 7391:         
        -:        -: 7392:   
        -:        -: 7393:
        -:        -: 7394:         
    #####:    #####: 7395:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7396:               const float src0 =
    #####:    #####: 7397:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7398:
    #####:    #####: 7399:            float16_t dst = bit_size == 64 ? sin(src0) : sinf(src0);
        -:        -: 7400:
    #####:    #####: 7401:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7402:      }
        -:        -: 7403:
    #####:    #####: 7404:         break;
        -:        -: 7405:      }
        -:        -: 7406:      case 32: {
        -:        -: 7407:         
        -:        -: 7408:   
        -:        -: 7409:
        -:        -: 7410:         
    #####:    #####: 7411:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7412:               const float32_t src0 =
        -:        -: 7413:                  _src[0].f32[_i];
        -:        -: 7414:
    #####:    #####: 7415:            float32_t dst = bit_size == 64 ? sin(src0) : sinf(src0);
        -:        -: 7416:
    #####:    #####: 7417:            _dst_val.f32[_i] = dst;
        -:        -: 7418:      }
        -:        -: 7419:
    #####:    #####: 7420:         break;
        -:        -: 7421:      }
        -:        -: 7422:      case 64: {
        -:        -: 7423:         
        -:        -: 7424:   
        -:        -: 7425:
        -:        -: 7426:         
    #####:    #####: 7427:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7428:               const float64_t src0 =
        -:        -: 7429:                  _src[0].f64[_i];
        -:        -: 7430:
    #####:    #####: 7431:            float64_t dst = bit_size == 64 ? sin(src0) : sinf(src0);
        -:        -: 7432:
    #####:    #####: 7433:            _dst_val.f64[_i] = dst;
        -:        -: 7434:      }
        -:        -: 7435:
    #####:    #####: 7436:         break;
        -:        -: 7437:      }
        -:        -: 7438:
        -:        -: 7439:      default:
    #####:    #####: 7440:         unreachable("unknown bit width");
        -:        -: 7441:      }
        -:        -: 7442:
    #####:    #####: 7443:   return _dst_val;
        -:        -: 7444:}
        -:        -: 7445:static nir_const_value
    #####:    #####: 7446:evaluate_fsqrt(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7447:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7448:{
    #####:    #####: 7449:   nir_const_value _dst_val = { {0, } };
        -:        -: 7450:
    #####:    #####: 7451:      switch (bit_size) {
        -:        -: 7452:      case 16: {
        -:        -: 7453:         
        -:        -: 7454:   
        -:        -: 7455:
        -:        -: 7456:         
    #####:    #####: 7457:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7458:               const float src0 =
    #####:    #####: 7459:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7460:
    #####:    #####: 7461:            float16_t dst = bit_size == 64 ? sqrt(src0) : sqrtf(src0);
        -:        -: 7462:
    #####:    #####: 7463:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7464:      }
        -:        -: 7465:
    #####:    #####: 7466:         break;
        -:        -: 7467:      }
        -:        -: 7468:      case 32: {
        -:        -: 7469:         
        -:        -: 7470:   
        -:        -: 7471:
        -:        -: 7472:         
    #####:    #####: 7473:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7474:               const float32_t src0 =
        -:        -: 7475:                  _src[0].f32[_i];
        -:        -: 7476:
    #####:    #####: 7477:            float32_t dst = bit_size == 64 ? sqrt(src0) : sqrtf(src0);
        -:        -: 7478:
    #####:    #####: 7479:            _dst_val.f32[_i] = dst;
        -:        -: 7480:      }
        -:        -: 7481:
    #####:    #####: 7482:         break;
        -:        -: 7483:      }
        -:        -: 7484:      case 64: {
        -:        -: 7485:         
        -:        -: 7486:   
        -:        -: 7487:
        -:        -: 7488:         
    #####:    #####: 7489:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7490:               const float64_t src0 =
        -:        -: 7491:                  _src[0].f64[_i];
        -:        -: 7492:
    #####:    #####: 7493:            float64_t dst = bit_size == 64 ? sqrt(src0) : sqrtf(src0);
        -:        -: 7494:
    #####:    #####: 7495:            _dst_val.f64[_i] = dst;
        -:        -: 7496:      }
        -:        -: 7497:
    #####:    #####: 7498:         break;
        -:        -: 7499:      }
        -:        -: 7500:
        -:        -: 7501:      default:
    #####:    #####: 7502:         unreachable("unknown bit width");
        -:        -: 7503:      }
        -:        -: 7504:
    #####:    #####: 7505:   return _dst_val;
        -:        -: 7506:}
        -:        -: 7507:static nir_const_value
    #####:    #####: 7508:evaluate_fsub(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7509:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7510:{
    #####:    #####: 7511:   nir_const_value _dst_val = { {0, } };
        -:        -: 7512:
    #####:    #####: 7513:      switch (bit_size) {
        -:        -: 7514:      case 16: {
        -:        -: 7515:         
        -:        -: 7516:   
        -:        -: 7517:
        -:        -: 7518:                  
    #####:    #####: 7519:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7520:               const float src0 =
    #####:    #####: 7521:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####: 7522:               const float src1 =
    #####:    #####: 7523:                  _mesa_half_to_float(_src[1].u16[_i]);
        -:        -: 7524:
    #####:    #####: 7525:            float16_t dst = src0 - src1;
        -:        -: 7526:
    #####:    #####: 7527:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7528:      }
        -:        -: 7529:
    #####:    #####: 7530:         break;
        -:        -: 7531:      }
        -:        -: 7532:      case 32: {
        -:        -: 7533:         
        -:        -: 7534:   
        -:        -: 7535:
        -:        -: 7536:                  
    #####:    #####: 7537:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7538:               const float32_t src0 =
        -:        -: 7539:                  _src[0].f32[_i];
    #####:    #####: 7540:               const float32_t src1 =
    #####:    #####: 7541:                  _src[1].f32[_i];
        -:        -: 7542:
    #####:    #####: 7543:            float32_t dst = src0 - src1;
        -:        -: 7544:
    #####:    #####: 7545:            _dst_val.f32[_i] = dst;
        -:        -: 7546:      }
        -:        -: 7547:
    #####:    #####: 7548:         break;
        -:        -: 7549:      }
        -:        -: 7550:      case 64: {
        -:        -: 7551:         
        -:        -: 7552:   
        -:        -: 7553:
        -:        -: 7554:                  
    #####:    #####: 7555:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7556:               const float64_t src0 =
        -:        -: 7557:                  _src[0].f64[_i];
    #####:    #####: 7558:               const float64_t src1 =
    #####:    #####: 7559:                  _src[1].f64[_i];
        -:        -: 7560:
    #####:    #####: 7561:            float64_t dst = src0 - src1;
        -:        -: 7562:
    #####:    #####: 7563:            _dst_val.f64[_i] = dst;
        -:        -: 7564:      }
        -:        -: 7565:
    #####:    #####: 7566:         break;
        -:        -: 7567:      }
        -:        -: 7568:
        -:        -: 7569:      default:
    #####:    #####: 7570:         unreachable("unknown bit width");
        -:        -: 7571:      }
        -:        -: 7572:
    #####:    #####: 7573:   return _dst_val;
        -:        -: 7574:}
        -:        -: 7575:static nir_const_value
    #####:    #####: 7576:evaluate_ftrunc(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7577:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7578:{
    #####:    #####: 7579:   nir_const_value _dst_val = { {0, } };
        -:        -: 7580:
    #####:    #####: 7581:      switch (bit_size) {
        -:        -: 7582:      case 16: {
        -:        -: 7583:         
        -:        -: 7584:   
        -:        -: 7585:
        -:        -: 7586:         
    #####:    #####: 7587:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7588:               const float src0 =
    #####:    #####: 7589:                  _mesa_half_to_float(_src[0].u16[_i]);
        -:        -: 7590:
    #####:    #####: 7591:            float16_t dst = bit_size == 64 ? trunc(src0) : truncf(src0);
        -:        -: 7592:
    #####:    #####: 7593:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7594:      }
        -:        -: 7595:
    #####:    #####: 7596:         break;
        -:        -: 7597:      }
        -:        -: 7598:      case 32: {
        -:        -: 7599:         
        -:        -: 7600:   
        -:        -: 7601:
        -:        -: 7602:         
    #####:    #####: 7603:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7604:               const float32_t src0 =
        -:        -: 7605:                  _src[0].f32[_i];
        -:        -: 7606:
    #####:    #####: 7607:            float32_t dst = bit_size == 64 ? trunc(src0) : truncf(src0);
        -:        -: 7608:
    #####:    #####: 7609:            _dst_val.f32[_i] = dst;
        -:        -: 7610:      }
        -:        -: 7611:
    #####:    #####: 7612:         break;
        -:        -: 7613:      }
        -:        -: 7614:      case 64: {
        -:        -: 7615:         
        -:        -: 7616:   
        -:        -: 7617:
        -:        -: 7618:         
    #####:    #####: 7619:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7620:               const float64_t src0 =
        -:        -: 7621:                  _src[0].f64[_i];
        -:        -: 7622:
    #####:    #####: 7623:            float64_t dst = bit_size == 64 ? trunc(src0) : truncf(src0);
        -:        -: 7624:
    #####:    #####: 7625:            _dst_val.f64[_i] = dst;
        -:        -: 7626:      }
        -:        -: 7627:
    #####:    #####: 7628:         break;
        -:        -: 7629:      }
        -:        -: 7630:
        -:        -: 7631:      default:
    #####:    #####: 7632:         unreachable("unknown bit width");
        -:        -: 7633:      }
        -:        -: 7634:
    #####:    #####: 7635:   return _dst_val;
        -:        -: 7636:}
        -:        -: 7637:static nir_const_value
    #####:    #####: 7638:evaluate_fxor(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7639:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7640:{
    #####:    #####: 7641:   nir_const_value _dst_val = { {0, } };
        -:        -: 7642:
        -:        -: 7643:      
        -:        -: 7644:   
        -:        -: 7645:
        -:        -: 7646:                  
    #####:    #####: 7647:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7648:               const float32_t src0 =
        -:        -: 7649:                  _src[0].f32[_i];
    #####:    #####: 7650:               const float32_t src1 =
    #####:    #####: 7651:                  _src[1].f32[_i];
        -:        -: 7652:
    #####:    #####: 7653:            float32_t dst = (src0 != 0.0f && src1 == 0.0f) || (src0 == 0.0f && src1 != 0.0f) ? 1.0f : 0.0f;
        -:        -: 7654:
    #####:    #####: 7655:            _dst_val.f32[_i] = dst;
        -:        -: 7656:      }
        -:        -: 7657:
        -:        -: 7658:
    #####:    #####: 7659:   return _dst_val;
        -:        -: 7660:}
        -:        -: 7661:static nir_const_value
    #####:    #####: 7662:evaluate_i2b(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7663:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7664:{
    #####:    #####: 7665:   nir_const_value _dst_val = { {0, } };
        -:        -: 7666:
    #####:    #####: 7667:      switch (bit_size) {
        -:        -: 7668:      case 8: {
        -:        -: 7669:         
        -:        -: 7670:   
        -:        -: 7671:
        -:        -: 7672:         
    #####:    #####: 7673:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7674:               const int8_t src0 =
        -:        -: 7675:                  _src[0].i8[_i];
        -:        -: 7676:
    #####:    #####: 7677:            bool32_t dst = src0 != 0;
        -:        -: 7678:
    #####:    #####: 7679:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 7680:      }
        -:        -: 7681:
    #####:    #####: 7682:         break;
        -:        -: 7683:      }
        -:        -: 7684:      case 16: {
        -:        -: 7685:         
        -:        -: 7686:   
        -:        -: 7687:
        -:        -: 7688:         
    #####:    #####: 7689:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7690:               const int16_t src0 =
        -:        -: 7691:                  _src[0].i16[_i];
        -:        -: 7692:
    #####:    #####: 7693:            bool32_t dst = src0 != 0;
        -:        -: 7694:
    #####:    #####: 7695:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 7696:      }
        -:        -: 7697:
    #####:    #####: 7698:         break;
        -:        -: 7699:      }
        -:        -: 7700:      case 32: {
        -:        -: 7701:         
        -:        -: 7702:   
        -:        -: 7703:
        -:        -: 7704:         
    #####:    #####: 7705:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7706:               const int32_t src0 =
        -:        -: 7707:                  _src[0].i32[_i];
        -:        -: 7708:
    #####:    #####: 7709:            bool32_t dst = src0 != 0;
        -:        -: 7710:
    #####:    #####: 7711:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 7712:      }
        -:        -: 7713:
    #####:    #####: 7714:         break;
        -:        -: 7715:      }
        -:        -: 7716:      case 64: {
        -:        -: 7717:         
        -:        -: 7718:   
        -:        -: 7719:
        -:        -: 7720:         
    #####:    #####: 7721:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7722:               const int64_t src0 =
        -:        -: 7723:                  _src[0].i64[_i];
        -:        -: 7724:
    #####:    #####: 7725:            bool32_t dst = src0 != 0;
        -:        -: 7726:
    #####:    #####: 7727:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 7728:      }
        -:        -: 7729:
    #####:    #####: 7730:         break;
        -:        -: 7731:      }
        -:        -: 7732:
        -:        -: 7733:      default:
    #####:    #####: 7734:         unreachable("unknown bit width");
        -:        -: 7735:      }
        -:        -: 7736:
    #####:    #####: 7737:   return _dst_val;
        -:        -: 7738:}
        -:        -: 7739:static nir_const_value
    #####:    #####: 7740:evaluate_i2f16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7741:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7742:{
    #####:    #####: 7743:   nir_const_value _dst_val = { {0, } };
        -:        -: 7744:
    #####:    #####: 7745:      switch (bit_size) {
        -:        -: 7746:      case 8: {
        -:        -: 7747:         
        -:        -: 7748:   
        -:        -: 7749:
        -:        -: 7750:         
    #####:    #####: 7751:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7752:               const int8_t src0 =
        -:        -: 7753:                  _src[0].i8[_i];
        -:        -: 7754:
    #####:    #####: 7755:            float16_t dst = src0;
        -:        -: 7756:
    #####:    #####: 7757:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7758:      }
        -:        -: 7759:
    #####:    #####: 7760:         break;
        -:        -: 7761:      }
        -:        -: 7762:      case 16: {
        -:        -: 7763:         
        -:        -: 7764:   
        -:        -: 7765:
        -:        -: 7766:         
    #####:    #####: 7767:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7768:               const int16_t src0 =
        -:        -: 7769:                  _src[0].i16[_i];
        -:        -: 7770:
    #####:    #####: 7771:            float16_t dst = src0;
        -:        -: 7772:
    #####:    #####: 7773:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7774:      }
        -:        -: 7775:
    #####:    #####: 7776:         break;
        -:        -: 7777:      }
        -:        -: 7778:      case 32: {
        -:        -: 7779:         
        -:        -: 7780:   
        -:        -: 7781:
        -:        -: 7782:         
    #####:    #####: 7783:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7784:               const int32_t src0 =
        -:        -: 7785:                  _src[0].i32[_i];
        -:        -: 7786:
    #####:    #####: 7787:            float16_t dst = src0;
        -:        -: 7788:
    #####:    #####: 7789:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7790:      }
        -:        -: 7791:
    #####:    #####: 7792:         break;
        -:        -: 7793:      }
        -:        -: 7794:      case 64: {
        -:        -: 7795:         
        -:        -: 7796:   
        -:        -: 7797:
        -:        -: 7798:         
    #####:    #####: 7799:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7800:               const int64_t src0 =
        -:        -: 7801:                  _src[0].i64[_i];
        -:        -: 7802:
    #####:    #####: 7803:            float16_t dst = src0;
        -:        -: 7804:
    #####:    #####: 7805:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -: 7806:      }
        -:        -: 7807:
    #####:    #####: 7808:         break;
        -:        -: 7809:      }
        -:        -: 7810:
        -:        -: 7811:      default:
    #####:    #####: 7812:         unreachable("unknown bit width");
        -:        -: 7813:      }
        -:        -: 7814:
    #####:    #####: 7815:   return _dst_val;
        -:        -: 7816:}
        -:        -: 7817:static nir_const_value
    #####:    #####: 7818:evaluate_i2f32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7819:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7820:{
    #####:    #####: 7821:   nir_const_value _dst_val = { {0, } };
        -:        -: 7822:
    #####:    #####: 7823:      switch (bit_size) {
        -:        -: 7824:      case 8: {
        -:        -: 7825:         
        -:        -: 7826:   
        -:        -: 7827:
        -:        -: 7828:         
    #####:    #####: 7829:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7830:               const int8_t src0 =
        -:        -: 7831:                  _src[0].i8[_i];
        -:        -: 7832:
    #####:    #####: 7833:            float32_t dst = src0;
        -:        -: 7834:
    #####:    #####: 7835:            _dst_val.f32[_i] = dst;
        -:        -: 7836:      }
        -:        -: 7837:
    #####:    #####: 7838:         break;
        -:        -: 7839:      }
        -:        -: 7840:      case 16: {
        -:        -: 7841:         
        -:        -: 7842:   
        -:        -: 7843:
        -:        -: 7844:         
    #####:    #####: 7845:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7846:               const int16_t src0 =
        -:        -: 7847:                  _src[0].i16[_i];
        -:        -: 7848:
    #####:    #####: 7849:            float32_t dst = src0;
        -:        -: 7850:
    #####:    #####: 7851:            _dst_val.f32[_i] = dst;
        -:        -: 7852:      }
        -:        -: 7853:
    #####:    #####: 7854:         break;
        -:        -: 7855:      }
        -:        -: 7856:      case 32: {
        -:        -: 7857:         
        -:        -: 7858:   
        -:        -: 7859:
        -:        -: 7860:         
    #####:    #####: 7861:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7862:               const int32_t src0 =
        -:        -: 7863:                  _src[0].i32[_i];
        -:        -: 7864:
    #####:    #####: 7865:            float32_t dst = src0;
        -:        -: 7866:
    #####:    #####: 7867:            _dst_val.f32[_i] = dst;
        -:        -: 7868:      }
        -:        -: 7869:
    #####:    #####: 7870:         break;
        -:        -: 7871:      }
        -:        -: 7872:      case 64: {
        -:        -: 7873:         
        -:        -: 7874:   
        -:        -: 7875:
        -:        -: 7876:         
    #####:    #####: 7877:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7878:               const int64_t src0 =
        -:        -: 7879:                  _src[0].i64[_i];
        -:        -: 7880:
    #####:    #####: 7881:            float32_t dst = src0;
        -:        -: 7882:
    #####:    #####: 7883:            _dst_val.f32[_i] = dst;
        -:        -: 7884:      }
        -:        -: 7885:
    #####:    #####: 7886:         break;
        -:        -: 7887:      }
        -:        -: 7888:
        -:        -: 7889:      default:
    #####:    #####: 7890:         unreachable("unknown bit width");
        -:        -: 7891:      }
        -:        -: 7892:
    #####:    #####: 7893:   return _dst_val;
        -:        -: 7894:}
        -:        -: 7895:static nir_const_value
    #####:    #####: 7896:evaluate_i2f64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7897:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7898:{
    #####:    #####: 7899:   nir_const_value _dst_val = { {0, } };
        -:        -: 7900:
    #####:    #####: 7901:      switch (bit_size) {
        -:        -: 7902:      case 8: {
        -:        -: 7903:         
        -:        -: 7904:   
        -:        -: 7905:
        -:        -: 7906:         
    #####:    #####: 7907:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7908:               const int8_t src0 =
        -:        -: 7909:                  _src[0].i8[_i];
        -:        -: 7910:
    #####:    #####: 7911:            float64_t dst = src0;
        -:        -: 7912:
    #####:    #####: 7913:            _dst_val.f64[_i] = dst;
        -:        -: 7914:      }
        -:        -: 7915:
    #####:    #####: 7916:         break;
        -:        -: 7917:      }
        -:        -: 7918:      case 16: {
        -:        -: 7919:         
        -:        -: 7920:   
        -:        -: 7921:
        -:        -: 7922:         
    #####:    #####: 7923:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7924:               const int16_t src0 =
        -:        -: 7925:                  _src[0].i16[_i];
        -:        -: 7926:
    #####:    #####: 7927:            float64_t dst = src0;
        -:        -: 7928:
    #####:    #####: 7929:            _dst_val.f64[_i] = dst;
        -:        -: 7930:      }
        -:        -: 7931:
    #####:    #####: 7932:         break;
        -:        -: 7933:      }
        -:        -: 7934:      case 32: {
        -:        -: 7935:         
        -:        -: 7936:   
        -:        -: 7937:
        -:        -: 7938:         
    #####:    #####: 7939:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7940:               const int32_t src0 =
        -:        -: 7941:                  _src[0].i32[_i];
        -:        -: 7942:
    #####:    #####: 7943:            float64_t dst = src0;
        -:        -: 7944:
    #####:    #####: 7945:            _dst_val.f64[_i] = dst;
        -:        -: 7946:      }
        -:        -: 7947:
    #####:    #####: 7948:         break;
        -:        -: 7949:      }
        -:        -: 7950:      case 64: {
        -:        -: 7951:         
        -:        -: 7952:   
        -:        -: 7953:
        -:        -: 7954:         
    #####:    #####: 7955:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7956:               const int64_t src0 =
        -:        -: 7957:                  _src[0].i64[_i];
        -:        -: 7958:
    #####:    #####: 7959:            float64_t dst = src0;
        -:        -: 7960:
    #####:    #####: 7961:            _dst_val.f64[_i] = dst;
        -:        -: 7962:      }
        -:        -: 7963:
    #####:    #####: 7964:         break;
        -:        -: 7965:      }
        -:        -: 7966:
        -:        -: 7967:      default:
    #####:    #####: 7968:         unreachable("unknown bit width");
        -:        -: 7969:      }
        -:        -: 7970:
    #####:    #####: 7971:   return _dst_val;
        -:        -: 7972:}
        -:        -: 7973:static nir_const_value
    #####:    #####: 7974:evaluate_i2i16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 7975:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 7976:{
    #####:    #####: 7977:   nir_const_value _dst_val = { {0, } };
        -:        -: 7978:
    #####:    #####: 7979:      switch (bit_size) {
        -:        -: 7980:      case 8: {
        -:        -: 7981:         
        -:        -: 7982:   
        -:        -: 7983:
        -:        -: 7984:         
    #####:    #####: 7985:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 7986:               const int8_t src0 =
        -:        -: 7987:                  _src[0].i8[_i];
        -:        -: 7988:
    #####:    #####: 7989:            int16_t dst = src0;
        -:        -: 7990:
    #####:    #####: 7991:            _dst_val.i16[_i] = dst;
        -:        -: 7992:      }
        -:        -: 7993:
    #####:    #####: 7994:         break;
        -:        -: 7995:      }
        -:        -: 7996:      case 16: {
        -:        -: 7997:         
        -:        -: 7998:   
        -:        -: 7999:
        -:        -: 8000:         
    #####:    #####: 8001:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8002:               const int16_t src0 =
        -:        -: 8003:                  _src[0].i16[_i];
        -:        -: 8004:
    #####:    #####: 8005:            int16_t dst = src0;
        -:        -: 8006:
    #####:    #####: 8007:            _dst_val.i16[_i] = dst;
        -:        -: 8008:      }
        -:        -: 8009:
    #####:    #####: 8010:         break;
        -:        -: 8011:      }
        -:        -: 8012:      case 32: {
        -:        -: 8013:         
        -:        -: 8014:   
        -:        -: 8015:
        -:        -: 8016:         
    #####:    #####: 8017:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8018:               const int32_t src0 =
        -:        -: 8019:                  _src[0].i32[_i];
        -:        -: 8020:
    #####:    #####: 8021:            int16_t dst = src0;
        -:        -: 8022:
    #####:    #####: 8023:            _dst_val.i16[_i] = dst;
        -:        -: 8024:      }
        -:        -: 8025:
    #####:    #####: 8026:         break;
        -:        -: 8027:      }
        -:        -: 8028:      case 64: {
        -:        -: 8029:         
        -:        -: 8030:   
        -:        -: 8031:
        -:        -: 8032:         
    #####:    #####: 8033:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8034:               const int64_t src0 =
        -:        -: 8035:                  _src[0].i64[_i];
        -:        -: 8036:
    #####:    #####: 8037:            int16_t dst = src0;
        -:        -: 8038:
    #####:    #####: 8039:            _dst_val.i16[_i] = dst;
        -:        -: 8040:      }
        -:        -: 8041:
    #####:    #####: 8042:         break;
        -:        -: 8043:      }
        -:        -: 8044:
        -:        -: 8045:      default:
    #####:    #####: 8046:         unreachable("unknown bit width");
        -:        -: 8047:      }
        -:        -: 8048:
    #####:    #####: 8049:   return _dst_val;
        -:        -: 8050:}
        -:        -: 8051:static nir_const_value
    #####:    #####: 8052:evaluate_i2i32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8053:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8054:{
    #####:    #####: 8055:   nir_const_value _dst_val = { {0, } };
        -:        -: 8056:
    #####:    #####: 8057:      switch (bit_size) {
        -:        -: 8058:      case 8: {
        -:        -: 8059:         
        -:        -: 8060:   
        -:        -: 8061:
        -:        -: 8062:         
    #####:    #####: 8063:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8064:               const int8_t src0 =
        -:        -: 8065:                  _src[0].i8[_i];
        -:        -: 8066:
    #####:    #####: 8067:            int32_t dst = src0;
        -:        -: 8068:
    #####:    #####: 8069:            _dst_val.i32[_i] = dst;
        -:        -: 8070:      }
        -:        -: 8071:
    #####:    #####: 8072:         break;
        -:        -: 8073:      }
        -:        -: 8074:      case 16: {
        -:        -: 8075:         
        -:        -: 8076:   
        -:        -: 8077:
        -:        -: 8078:         
    #####:    #####: 8079:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8080:               const int16_t src0 =
        -:        -: 8081:                  _src[0].i16[_i];
        -:        -: 8082:
    #####:    #####: 8083:            int32_t dst = src0;
        -:        -: 8084:
    #####:    #####: 8085:            _dst_val.i32[_i] = dst;
        -:        -: 8086:      }
        -:        -: 8087:
    #####:    #####: 8088:         break;
        -:        -: 8089:      }
        -:        -: 8090:      case 32: {
        -:        -: 8091:         
        -:        -: 8092:   
        -:        -: 8093:
        -:        -: 8094:         
    #####:    #####: 8095:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8096:               const int32_t src0 =
        -:        -: 8097:                  _src[0].i32[_i];
        -:        -: 8098:
    #####:    #####: 8099:            int32_t dst = src0;
        -:        -: 8100:
    #####:    #####: 8101:            _dst_val.i32[_i] = dst;
        -:        -: 8102:      }
        -:        -: 8103:
    #####:    #####: 8104:         break;
        -:        -: 8105:      }
        -:        -: 8106:      case 64: {
        -:        -: 8107:         
        -:        -: 8108:   
        -:        -: 8109:
        -:        -: 8110:         
    #####:    #####: 8111:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8112:               const int64_t src0 =
        -:        -: 8113:                  _src[0].i64[_i];
        -:        -: 8114:
    #####:    #####: 8115:            int32_t dst = src0;
        -:        -: 8116:
    #####:    #####: 8117:            _dst_val.i32[_i] = dst;
        -:        -: 8118:      }
        -:        -: 8119:
    #####:    #####: 8120:         break;
        -:        -: 8121:      }
        -:        -: 8122:
        -:        -: 8123:      default:
    #####:    #####: 8124:         unreachable("unknown bit width");
        -:        -: 8125:      }
        -:        -: 8126:
    #####:    #####: 8127:   return _dst_val;
        -:        -: 8128:}
        -:        -: 8129:static nir_const_value
    #####:    #####: 8130:evaluate_i2i64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8131:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8132:{
    #####:    #####: 8133:   nir_const_value _dst_val = { {0, } };
        -:        -: 8134:
    #####:    #####: 8135:      switch (bit_size) {
        -:        -: 8136:      case 8: {
        -:        -: 8137:         
        -:        -: 8138:   
        -:        -: 8139:
        -:        -: 8140:         
    #####:    #####: 8141:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8142:               const int8_t src0 =
        -:        -: 8143:                  _src[0].i8[_i];
        -:        -: 8144:
    #####:    #####: 8145:            int64_t dst = src0;
        -:        -: 8146:
    #####:    #####: 8147:            _dst_val.i64[_i] = dst;
        -:        -: 8148:      }
        -:        -: 8149:
    #####:    #####: 8150:         break;
        -:        -: 8151:      }
        -:        -: 8152:      case 16: {
        -:        -: 8153:         
        -:        -: 8154:   
        -:        -: 8155:
        -:        -: 8156:         
    #####:    #####: 8157:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8158:               const int16_t src0 =
        -:        -: 8159:                  _src[0].i16[_i];
        -:        -: 8160:
    #####:    #####: 8161:            int64_t dst = src0;
        -:        -: 8162:
    #####:    #####: 8163:            _dst_val.i64[_i] = dst;
        -:        -: 8164:      }
        -:        -: 8165:
    #####:    #####: 8166:         break;
        -:        -: 8167:      }
        -:        -: 8168:      case 32: {
        -:        -: 8169:         
        -:        -: 8170:   
        -:        -: 8171:
        -:        -: 8172:         
    #####:    #####: 8173:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8174:               const int32_t src0 =
        -:        -: 8175:                  _src[0].i32[_i];
        -:        -: 8176:
    #####:    #####: 8177:            int64_t dst = src0;
        -:        -: 8178:
    #####:    #####: 8179:            _dst_val.i64[_i] = dst;
        -:        -: 8180:      }
        -:        -: 8181:
    #####:    #####: 8182:         break;
        -:        -: 8183:      }
        -:        -: 8184:      case 64: {
        -:        -: 8185:         
        -:        -: 8186:   
        -:        -: 8187:
        -:        -: 8188:         
    #####:    #####: 8189:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8190:               const int64_t src0 =
        -:        -: 8191:                  _src[0].i64[_i];
        -:        -: 8192:
    #####:    #####: 8193:            int64_t dst = src0;
        -:        -: 8194:
    #####:    #####: 8195:            _dst_val.i64[_i] = dst;
        -:        -: 8196:      }
        -:        -: 8197:
    #####:    #####: 8198:         break;
        -:        -: 8199:      }
        -:        -: 8200:
        -:        -: 8201:      default:
    #####:    #####: 8202:         unreachable("unknown bit width");
        -:        -: 8203:      }
        -:        -: 8204:
    #####:    #####: 8205:   return _dst_val;
        -:        -: 8206:}
        -:        -: 8207:static nir_const_value
    #####:    #####: 8208:evaluate_i2i8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8209:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8210:{
    #####:    #####: 8211:   nir_const_value _dst_val = { {0, } };
        -:        -: 8212:
    #####:    #####: 8213:      switch (bit_size) {
        -:        -: 8214:      case 8: {
        -:        -: 8215:         
        -:        -: 8216:   
        -:        -: 8217:
        -:        -: 8218:         
    #####:    #####: 8219:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8220:               const int8_t src0 =
        -:        -: 8221:                  _src[0].i8[_i];
        -:        -: 8222:
    #####:    #####: 8223:            int8_t dst = src0;
        -:        -: 8224:
    #####:    #####: 8225:            _dst_val.i8[_i] = dst;
        -:        -: 8226:      }
        -:        -: 8227:
    #####:    #####: 8228:         break;
        -:        -: 8229:      }
        -:        -: 8230:      case 16: {
        -:        -: 8231:         
        -:        -: 8232:   
        -:        -: 8233:
        -:        -: 8234:         
    #####:    #####: 8235:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8236:               const int16_t src0 =
        -:        -: 8237:                  _src[0].i16[_i];
        -:        -: 8238:
    #####:    #####: 8239:            int8_t dst = src0;
        -:        -: 8240:
    #####:    #####: 8241:            _dst_val.i8[_i] = dst;
        -:        -: 8242:      }
        -:        -: 8243:
    #####:    #####: 8244:         break;
        -:        -: 8245:      }
        -:        -: 8246:      case 32: {
        -:        -: 8247:         
        -:        -: 8248:   
        -:        -: 8249:
        -:        -: 8250:         
    #####:    #####: 8251:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8252:               const int32_t src0 =
        -:        -: 8253:                  _src[0].i32[_i];
        -:        -: 8254:
    #####:    #####: 8255:            int8_t dst = src0;
        -:        -: 8256:
    #####:    #####: 8257:            _dst_val.i8[_i] = dst;
        -:        -: 8258:      }
        -:        -: 8259:
    #####:    #####: 8260:         break;
        -:        -: 8261:      }
        -:        -: 8262:      case 64: {
        -:        -: 8263:         
        -:        -: 8264:   
        -:        -: 8265:
        -:        -: 8266:         
    #####:    #####: 8267:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8268:               const int64_t src0 =
        -:        -: 8269:                  _src[0].i64[_i];
        -:        -: 8270:
    #####:    #####: 8271:            int8_t dst = src0;
        -:        -: 8272:
    #####:    #####: 8273:            _dst_val.i8[_i] = dst;
        -:        -: 8274:      }
        -:        -: 8275:
    #####:    #####: 8276:         break;
        -:        -: 8277:      }
        -:        -: 8278:
        -:        -: 8279:      default:
    #####:    #####: 8280:         unreachable("unknown bit width");
        -:        -: 8281:      }
        -:        -: 8282:
    #####:    #####: 8283:   return _dst_val;
        -:        -: 8284:}
        -:        -: 8285:static nir_const_value
    #####:    #####: 8286:evaluate_iabs(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8287:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8288:{
    #####:    #####: 8289:   nir_const_value _dst_val = { {0, } };
        -:        -: 8290:
    #####:    #####: 8291:      switch (bit_size) {
        -:        -: 8292:      case 8: {
        -:        -: 8293:         
        -:        -: 8294:   
        -:        -: 8295:
        -:        -: 8296:         
    #####:    #####: 8297:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8298:               const int8_t src0 =
        -:        -: 8299:                  _src[0].i8[_i];
        -:        -: 8300:
    #####:    #####: 8301:            int8_t dst = (src0 < 0) ? -src0 : src0;
        -:        -: 8302:
    #####:    #####: 8303:            _dst_val.i8[_i] = dst;
        -:        -: 8304:      }
        -:        -: 8305:
    #####:    #####: 8306:         break;
        -:        -: 8307:      }
        -:        -: 8308:      case 16: {
        -:        -: 8309:         
        -:        -: 8310:   
        -:        -: 8311:
        -:        -: 8312:         
    #####:    #####: 8313:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8314:               const int16_t src0 =
        -:        -: 8315:                  _src[0].i16[_i];
        -:        -: 8316:
    #####:    #####: 8317:            int16_t dst = (src0 < 0) ? -src0 : src0;
        -:        -: 8318:
    #####:    #####: 8319:            _dst_val.i16[_i] = dst;
        -:        -: 8320:      }
        -:        -: 8321:
    #####:    #####: 8322:         break;
        -:        -: 8323:      }
        -:        -: 8324:      case 32: {
        -:        -: 8325:         
        -:        -: 8326:   
        -:        -: 8327:
        -:        -: 8328:         
    #####:    #####: 8329:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8330:               const int32_t src0 =
        -:        -: 8331:                  _src[0].i32[_i];
        -:        -: 8332:
    #####:    #####: 8333:            int32_t dst = (src0 < 0) ? -src0 : src0;
        -:        -: 8334:
    #####:    #####: 8335:            _dst_val.i32[_i] = dst;
        -:        -: 8336:      }
        -:        -: 8337:
    #####:    #####: 8338:         break;
        -:        -: 8339:      }
        -:        -: 8340:      case 64: {
        -:        -: 8341:         
        -:        -: 8342:   
        -:        -: 8343:
        -:        -: 8344:         
    #####:    #####: 8345:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8346:               const int64_t src0 =
        -:        -: 8347:                  _src[0].i64[_i];
        -:        -: 8348:
    #####:    #####: 8349:            int64_t dst = (src0 < 0) ? -src0 : src0;
        -:        -: 8350:
    #####:    #####: 8351:            _dst_val.i64[_i] = dst;
        -:        -: 8352:      }
        -:        -: 8353:
    #####:    #####: 8354:         break;
        -:        -: 8355:      }
        -:        -: 8356:
        -:        -: 8357:      default:
    #####:    #####: 8358:         unreachable("unknown bit width");
        -:        -: 8359:      }
        -:        -: 8360:
    #####:    #####: 8361:   return _dst_val;
        -:        -: 8362:}
        -:        -: 8363:static nir_const_value
       52:       20: 8364:evaluate_iadd(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8365:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8366:{
       52:       20: 8367:   nir_const_value _dst_val = { {0, } };
        -:        -: 8368:
       52:       20: 8369:      switch (bit_size) {
        -:        -: 8370:      case 8: {
        -:        -: 8371:         
        -:        -: 8372:   
        -:        -: 8373:
        -:        -: 8374:                  
    #####:    #####: 8375:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8376:               const int8_t src0 =
        -:        -: 8377:                  _src[0].i8[_i];
    #####:    #####: 8378:               const int8_t src1 =
    #####:    #####: 8379:                  _src[1].i8[_i];
        -:        -: 8380:
    #####:    #####: 8381:            int8_t dst = src0 + src1;
        -:        -: 8382:
    #####:    #####: 8383:            _dst_val.i8[_i] = dst;
        -:        -: 8384:      }
        -:        -: 8385:
    #####:    #####: 8386:         break;
        -:        -: 8387:      }
        -:        -: 8388:      case 16: {
        -:        -: 8389:         
        -:        -: 8390:   
        -:        -: 8391:
        -:        -: 8392:                  
    #####:    #####: 8393:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8394:               const int16_t src0 =
        -:        -: 8395:                  _src[0].i16[_i];
    #####:    #####: 8396:               const int16_t src1 =
    #####:    #####: 8397:                  _src[1].i16[_i];
        -:        -: 8398:
    #####:    #####: 8399:            int16_t dst = src0 + src1;
        -:        -: 8400:
    #####:    #####: 8401:            _dst_val.i16[_i] = dst;
        -:        -: 8402:      }
        -:        -: 8403:
    #####:    #####: 8404:         break;
        -:        -: 8405:      }
        -:        -: 8406:      case 32: {
        -:        -: 8407:         
        -:        -: 8408:   
        -:        -: 8409:
        -:        -: 8410:                  
      104:       40: 8411:      for (unsigned _i = 0; _i < num_components; _i++) {
       52:       20: 8412:               const int32_t src0 =
        -:        -: 8413:                  _src[0].i32[_i];
       52:       20: 8414:               const int32_t src1 =
       52:       20: 8415:                  _src[1].i32[_i];
        -:        -: 8416:
       52:       20: 8417:            int32_t dst = src0 + src1;
        -:        -: 8418:
       52:       20: 8419:            _dst_val.i32[_i] = dst;
        -:        -: 8420:      }
        -:        -: 8421:
       52:       20: 8422:         break;
        -:        -: 8423:      }
        -:        -: 8424:      case 64: {
        -:        -: 8425:         
        -:        -: 8426:   
        -:        -: 8427:
        -:        -: 8428:                  
    #####:    #####: 8429:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8430:               const int64_t src0 =
        -:        -: 8431:                  _src[0].i64[_i];
    #####:    #####: 8432:               const int64_t src1 =
    #####:    #####: 8433:                  _src[1].i64[_i];
        -:        -: 8434:
    #####:    #####: 8435:            int64_t dst = src0 + src1;
        -:        -: 8436:
    #####:    #####: 8437:            _dst_val.i64[_i] = dst;
        -:        -: 8438:      }
        -:        -: 8439:
    #####:    #####: 8440:         break;
        -:        -: 8441:      }
        -:        -: 8442:
        -:        -: 8443:      default:
    #####:    #####: 8444:         unreachable("unknown bit width");
        -:        -: 8445:      }
        -:        -: 8446:
       52:       20: 8447:   return _dst_val;
        -:        -: 8448:}
        -:        -: 8449:static nir_const_value
    #####:    #####: 8450:evaluate_iand(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8451:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8452:{
    #####:    #####: 8453:   nir_const_value _dst_val = { {0, } };
        -:        -: 8454:
    #####:    #####: 8455:      switch (bit_size) {
        -:        -: 8456:      case 8: {
        -:        -: 8457:         
        -:        -: 8458:   
        -:        -: 8459:
        -:        -: 8460:                  
    #####:    #####: 8461:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8462:               const uint8_t src0 =
        -:        -: 8463:                  _src[0].u8[_i];
    #####:    #####: 8464:               const uint8_t src1 =
    #####:    #####: 8465:                  _src[1].u8[_i];
        -:        -: 8466:
    #####:    #####: 8467:            uint8_t dst = src0 & src1;
        -:        -: 8468:
    #####:    #####: 8469:            _dst_val.u8[_i] = dst;
        -:        -: 8470:      }
        -:        -: 8471:
    #####:    #####: 8472:         break;
        -:        -: 8473:      }
        -:        -: 8474:      case 16: {
        -:        -: 8475:         
        -:        -: 8476:   
        -:        -: 8477:
        -:        -: 8478:                  
    #####:    #####: 8479:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8480:               const uint16_t src0 =
        -:        -: 8481:                  _src[0].u16[_i];
    #####:    #####: 8482:               const uint16_t src1 =
    #####:    #####: 8483:                  _src[1].u16[_i];
        -:        -: 8484:
    #####:    #####: 8485:            uint16_t dst = src0 & src1;
        -:        -: 8486:
    #####:    #####: 8487:            _dst_val.u16[_i] = dst;
        -:        -: 8488:      }
        -:        -: 8489:
    #####:    #####: 8490:         break;
        -:        -: 8491:      }
        -:        -: 8492:      case 32: {
        -:        -: 8493:         
        -:        -: 8494:   
        -:        -: 8495:
        -:        -: 8496:                  
    #####:    #####: 8497:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8498:               const uint32_t src0 =
        -:        -: 8499:                  _src[0].u32[_i];
    #####:    #####: 8500:               const uint32_t src1 =
    #####:    #####: 8501:                  _src[1].u32[_i];
        -:        -: 8502:
    #####:    #####: 8503:            uint32_t dst = src0 & src1;
        -:        -: 8504:
    #####:    #####: 8505:            _dst_val.u32[_i] = dst;
        -:        -: 8506:      }
        -:        -: 8507:
    #####:    #####: 8508:         break;
        -:        -: 8509:      }
        -:        -: 8510:      case 64: {
        -:        -: 8511:         
        -:        -: 8512:   
        -:        -: 8513:
        -:        -: 8514:                  
    #####:    #####: 8515:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8516:               const uint64_t src0 =
        -:        -: 8517:                  _src[0].u64[_i];
    #####:    #####: 8518:               const uint64_t src1 =
    #####:    #####: 8519:                  _src[1].u64[_i];
        -:        -: 8520:
    #####:    #####: 8521:            uint64_t dst = src0 & src1;
        -:        -: 8522:
    #####:    #####: 8523:            _dst_val.u64[_i] = dst;
        -:        -: 8524:      }
        -:        -: 8525:
    #####:    #####: 8526:         break;
        -:        -: 8527:      }
        -:        -: 8528:
        -:        -: 8529:      default:
    #####:    #####: 8530:         unreachable("unknown bit width");
        -:        -: 8531:      }
        -:        -: 8532:
    #####:    #####: 8533:   return _dst_val;
        -:        -: 8534:}
        -:        -: 8535:static nir_const_value
    #####:    #####: 8536:evaluate_ibfe(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8537:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8538:{
    #####:    #####: 8539:   nir_const_value _dst_val = { {0, } };
        -:        -: 8540:
        -:        -: 8541:      
        -:        -: 8542:   
        -:        -: 8543:
        -:        -: 8544:                           
    #####:    #####: 8545:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8546:               const int32_t src0 =
        -:        -: 8547:                  _src[0].i32[_i];
    #####:    #####: 8548:               const int32_t src1 =
    #####:    #####: 8549:                  _src[1].i32[_i];
    #####:    #####: 8550:               const int32_t src2 =
    #####:    #####: 8551:                  _src[2].i32[_i];
        -:        -: 8552:
        -:        -: 8553:            int32_t dst;
        -:        -: 8554:
        -:        -: 8555:            
    #####:    #####: 8556:int base = src0;
    #####:    #####: 8557:int offset = src1, bits = src2;
    #####:    #####: 8558:if (bits == 0) {
    #####:    #####: 8559:   dst = 0;
    #####:    #####: 8560:} else if (bits < 0 || offset < 0) {
    #####:    #####: 8561:   dst = 0; /* undefined */
    #####:    #####: 8562:} else if (offset + bits < 32) {
    #####:    #####: 8563:   dst = (base << (32 - bits - offset)) >> (32 - bits);
        -:        -: 8564:} else {
    #####:    #####: 8565:   dst = base >> offset;
        -:        -: 8566:}
        -:        -: 8567:
        -:        -: 8568:
    #####:    #####: 8569:            _dst_val.i32[_i] = dst;
        -:        -: 8570:      }
        -:        -: 8571:
        -:        -: 8572:
    #####:    #####: 8573:   return _dst_val;
        -:        -: 8574:}
        -:        -: 8575:static nir_const_value
    #####:    #####: 8576:evaluate_ibitfield_extract(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8577:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8578:{
    #####:    #####: 8579:   nir_const_value _dst_val = { {0, } };
        -:        -: 8580:
        -:        -: 8581:      
        -:        -: 8582:   
        -:        -: 8583:
        -:        -: 8584:                           
    #####:    #####: 8585:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8586:               const int32_t src0 =
        -:        -: 8587:                  _src[0].i32[_i];
    #####:    #####: 8588:               const int32_t src1 =
    #####:    #####: 8589:                  _src[1].i32[_i];
    #####:    #####: 8590:               const int32_t src2 =
    #####:    #####: 8591:                  _src[2].i32[_i];
        -:        -: 8592:
        -:        -: 8593:            int32_t dst;
        -:        -: 8594:
        -:        -: 8595:            
    #####:    #####: 8596:int base = src0;
    #####:    #####: 8597:int offset = src1, bits = src2;
    #####:    #####: 8598:if (bits == 0) {
    #####:    #####: 8599:   dst = 0;
    #####:    #####: 8600:} else if (offset < 0 || bits < 0 || offset + bits > 32) {
    #####:    #####: 8601:   dst = 0;
        -:        -: 8602:} else {
    #####:    #####: 8603:   dst = (base << (32 - offset - bits)) >> offset; /* use sign-extending shift */
        -:        -: 8604:}
        -:        -: 8605:
        -:        -: 8606:
    #####:    #####: 8607:            _dst_val.i32[_i] = dst;
        -:        -: 8608:      }
        -:        -: 8609:
        -:        -: 8610:
    #####:    #####: 8611:   return _dst_val;
        -:        -: 8612:}
        -:        -: 8613:static nir_const_value
    #####:    #####: 8614:evaluate_idiv(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8615:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8616:{
    #####:    #####: 8617:   nir_const_value _dst_val = { {0, } };
        -:        -: 8618:
    #####:    #####: 8619:      switch (bit_size) {
        -:        -: 8620:      case 8: {
        -:        -: 8621:         
        -:        -: 8622:   
        -:        -: 8623:
        -:        -: 8624:                  
    #####:    #####: 8625:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8626:               const int8_t src0 =
        -:        -: 8627:                  _src[0].i8[_i];
    #####:    #####: 8628:               const int8_t src1 =
    #####:    #####: 8629:                  _src[1].i8[_i];
        -:        -: 8630:
    #####:    #####: 8631:            int8_t dst = src0 / src1;
        -:        -: 8632:
    #####:    #####: 8633:            _dst_val.i8[_i] = dst;
        -:        -: 8634:      }
        -:        -: 8635:
    #####:    #####: 8636:         break;
        -:        -: 8637:      }
        -:        -: 8638:      case 16: {
        -:        -: 8639:         
        -:        -: 8640:   
        -:        -: 8641:
        -:        -: 8642:                  
    #####:    #####: 8643:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8644:               const int16_t src0 =
        -:        -: 8645:                  _src[0].i16[_i];
    #####:    #####: 8646:               const int16_t src1 =
    #####:    #####: 8647:                  _src[1].i16[_i];
        -:        -: 8648:
    #####:    #####: 8649:            int16_t dst = src0 / src1;
        -:        -: 8650:
    #####:    #####: 8651:            _dst_val.i16[_i] = dst;
        -:        -: 8652:      }
        -:        -: 8653:
    #####:    #####: 8654:         break;
        -:        -: 8655:      }
        -:        -: 8656:      case 32: {
        -:        -: 8657:         
        -:        -: 8658:   
        -:        -: 8659:
        -:        -: 8660:                  
    #####:    #####: 8661:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8662:               const int32_t src0 =
        -:        -: 8663:                  _src[0].i32[_i];
    #####:    #####: 8664:               const int32_t src1 =
    #####:    #####: 8665:                  _src[1].i32[_i];
        -:        -: 8666:
    #####:    #####: 8667:            int32_t dst = src0 / src1;
        -:        -: 8668:
    #####:    #####: 8669:            _dst_val.i32[_i] = dst;
        -:        -: 8670:      }
        -:        -: 8671:
    #####:    #####: 8672:         break;
        -:        -: 8673:      }
        -:        -: 8674:      case 64: {
        -:        -: 8675:         
        -:        -: 8676:   
        -:        -: 8677:
        -:        -: 8678:                  
    #####:    #####: 8679:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8680:               const int64_t src0 =
        -:        -: 8681:                  _src[0].i64[_i];
    #####:    #####: 8682:               const int64_t src1 =
    #####:    #####: 8683:                  _src[1].i64[_i];
        -:        -: 8684:
    #####:    #####: 8685:            int64_t dst = src0 / src1;
        -:        -: 8686:
    #####:    #####: 8687:            _dst_val.i64[_i] = dst;
        -:        -: 8688:      }
        -:        -: 8689:
    #####:    #####: 8690:         break;
        -:        -: 8691:      }
        -:        -: 8692:
        -:        -: 8693:      default:
    #####:    #####: 8694:         unreachable("unknown bit width");
        -:        -: 8695:      }
        -:        -: 8696:
    #####:    #####: 8697:   return _dst_val;
        -:        -: 8698:}
        -:        -: 8699:static nir_const_value
       11:       11: 8700:evaluate_ieq(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8701:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8702:{
       11:       11: 8703:   nir_const_value _dst_val = { {0, } };
        -:        -: 8704:
       11:       11: 8705:      switch (bit_size) {
        -:        -: 8706:      case 8: {
        -:        -: 8707:         
        -:        -: 8708:   
        -:        -: 8709:
        -:        -: 8710:                  
    #####:    #####: 8711:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8712:               const int8_t src0 =
        -:        -: 8713:                  _src[0].i8[_i];
    #####:    #####: 8714:               const int8_t src1 =
    #####:    #####: 8715:                  _src[1].i8[_i];
        -:        -: 8716:
    #####:    #####: 8717:            bool32_t dst = src0 == src1;
        -:        -: 8718:
    #####:    #####: 8719:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8720:      }
        -:        -: 8721:
    #####:    #####: 8722:         break;
        -:        -: 8723:      }
        -:        -: 8724:      case 16: {
        -:        -: 8725:         
        -:        -: 8726:   
        -:        -: 8727:
        -:        -: 8728:                  
    #####:    #####: 8729:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8730:               const int16_t src0 =
        -:        -: 8731:                  _src[0].i16[_i];
    #####:    #####: 8732:               const int16_t src1 =
    #####:    #####: 8733:                  _src[1].i16[_i];
        -:        -: 8734:
    #####:    #####: 8735:            bool32_t dst = src0 == src1;
        -:        -: 8736:
    #####:    #####: 8737:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8738:      }
        -:        -: 8739:
    #####:    #####: 8740:         break;
        -:        -: 8741:      }
        -:        -: 8742:      case 32: {
        -:        -: 8743:         
        -:        -: 8744:   
        -:        -: 8745:
        -:        -: 8746:                  
       22:       22: 8747:      for (unsigned _i = 0; _i < num_components; _i++) {
       11:       11: 8748:               const int32_t src0 =
        -:        -: 8749:                  _src[0].i32[_i];
       11:       11: 8750:               const int32_t src1 =
       11:       11: 8751:                  _src[1].i32[_i];
        -:        -: 8752:
       11:       11: 8753:            bool32_t dst = src0 == src1;
        -:        -: 8754:
       11:       11: 8755:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8756:      }
        -:        -: 8757:
       11:       11: 8758:         break;
        -:        -: 8759:      }
        -:        -: 8760:      case 64: {
        -:        -: 8761:         
        -:        -: 8762:   
        -:        -: 8763:
        -:        -: 8764:                  
    #####:    #####: 8765:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8766:               const int64_t src0 =
        -:        -: 8767:                  _src[0].i64[_i];
    #####:    #####: 8768:               const int64_t src1 =
    #####:    #####: 8769:                  _src[1].i64[_i];
        -:        -: 8770:
    #####:    #####: 8771:            bool32_t dst = src0 == src1;
        -:        -: 8772:
    #####:    #####: 8773:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8774:      }
        -:        -: 8775:
    #####:    #####: 8776:         break;
        -:        -: 8777:      }
        -:        -: 8778:
        -:        -: 8779:      default:
    #####:    #####: 8780:         unreachable("unknown bit width");
        -:        -: 8781:      }
        -:        -: 8782:
       11:       11: 8783:   return _dst_val;
        -:        -: 8784:}
        -:        -: 8785:static nir_const_value
    #####:    #####: 8786:evaluate_ifind_msb(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8787:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8788:{
    #####:    #####: 8789:   nir_const_value _dst_val = { {0, } };
        -:        -: 8790:
        -:        -: 8791:      
        -:        -: 8792:   
        -:        -: 8793:
        -:        -: 8794:         
    #####:    #####: 8795:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8796:               const int32_t src0 =
        -:        -: 8797:                  _src[0].i32[_i];
        -:        -: 8798:
        -:        -: 8799:            int32_t dst;
        -:        -: 8800:
        -:        -: 8801:            
    #####:    #####: 8802:dst = -1;
    #####:    #####: 8803:for (int bit = 31; bit >= 0; bit--) {
        -:        -: 8804:   /* If src0 < 0, we're looking for the first 0 bit.
        -:        -: 8805:    * if src0 >= 0, we're looking for the first 1 bit.
        -:        -: 8806:    */
    #####:    #####: 8807:   if ((((src0 >> bit) & 1) && (src0 >= 0)) ||
    #####:    #####: 8808:      (!((src0 >> bit) & 1) && (src0 < 0))) {
    #####:    #####: 8809:      dst = bit;
    #####:    #####: 8810:      break;
        -:        -: 8811:   }
        -:        -: 8812:}
        -:        -: 8813:
        -:        -: 8814:
    #####:    #####: 8815:            _dst_val.i32[_i] = dst;
        -:        -: 8816:      }
        -:        -: 8817:
        -:        -: 8818:
    #####:    #####: 8819:   return _dst_val;
        -:        -: 8820:}
        -:        -: 8821:static nir_const_value
       34:        2: 8822:evaluate_ige(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8823:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8824:{
       34:        2: 8825:   nir_const_value _dst_val = { {0, } };
        -:        -: 8826:
       34:        2: 8827:      switch (bit_size) {
        -:        -: 8828:      case 8: {
        -:        -: 8829:         
        -:        -: 8830:   
        -:        -: 8831:
        -:        -: 8832:                  
    #####:    #####: 8833:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8834:               const int8_t src0 =
        -:        -: 8835:                  _src[0].i8[_i];
    #####:    #####: 8836:               const int8_t src1 =
    #####:    #####: 8837:                  _src[1].i8[_i];
        -:        -: 8838:
    #####:    #####: 8839:            bool32_t dst = src0 >= src1;
        -:        -: 8840:
    #####:    #####: 8841:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8842:      }
        -:        -: 8843:
    #####:    #####: 8844:         break;
        -:        -: 8845:      }
        -:        -: 8846:      case 16: {
        -:        -: 8847:         
        -:        -: 8848:   
        -:        -: 8849:
        -:        -: 8850:                  
    #####:    #####: 8851:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8852:               const int16_t src0 =
        -:        -: 8853:                  _src[0].i16[_i];
    #####:    #####: 8854:               const int16_t src1 =
    #####:    #####: 8855:                  _src[1].i16[_i];
        -:        -: 8856:
    #####:    #####: 8857:            bool32_t dst = src0 >= src1;
        -:        -: 8858:
    #####:    #####: 8859:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8860:      }
        -:        -: 8861:
    #####:    #####: 8862:         break;
        -:        -: 8863:      }
        -:        -: 8864:      case 32: {
        -:        -: 8865:         
        -:        -: 8866:   
        -:        -: 8867:
        -:        -: 8868:                  
       68:        4: 8869:      for (unsigned _i = 0; _i < num_components; _i++) {
       34:        2: 8870:               const int32_t src0 =
        -:        -: 8871:                  _src[0].i32[_i];
       34:        2: 8872:               const int32_t src1 =
       34:        2: 8873:                  _src[1].i32[_i];
        -:        -: 8874:
       34:        2: 8875:            bool32_t dst = src0 >= src1;
        -:        -: 8876:
       34:        2: 8877:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8878:      }
        -:        -: 8879:
       34:        2: 8880:         break;
        -:        -: 8881:      }
        -:        -: 8882:      case 64: {
        -:        -: 8883:         
        -:        -: 8884:   
        -:        -: 8885:
        -:        -: 8886:                  
    #####:    #####: 8887:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8888:               const int64_t src0 =
        -:        -: 8889:                  _src[0].i64[_i];
    #####:    #####: 8890:               const int64_t src1 =
    #####:    #####: 8891:                  _src[1].i64[_i];
        -:        -: 8892:
    #####:    #####: 8893:            bool32_t dst = src0 >= src1;
        -:        -: 8894:
    #####:    #####: 8895:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8896:      }
        -:        -: 8897:
    #####:    #####: 8898:         break;
        -:        -: 8899:      }
        -:        -: 8900:
        -:        -: 8901:      default:
    #####:    #####: 8902:         unreachable("unknown bit width");
        -:        -: 8903:      }
        -:        -: 8904:
       34:        2: 8905:   return _dst_val;
        -:        -: 8906:}
        -:        -: 8907:static nir_const_value
    #####:    #####: 8908:evaluate_ilt(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8909:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8910:{
    #####:    #####: 8911:   nir_const_value _dst_val = { {0, } };
        -:        -: 8912:
    #####:    #####: 8913:      switch (bit_size) {
        -:        -: 8914:      case 8: {
        -:        -: 8915:         
        -:        -: 8916:   
        -:        -: 8917:
        -:        -: 8918:                  
    #####:    #####: 8919:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8920:               const int8_t src0 =
        -:        -: 8921:                  _src[0].i8[_i];
    #####:    #####: 8922:               const int8_t src1 =
    #####:    #####: 8923:                  _src[1].i8[_i];
        -:        -: 8924:
    #####:    #####: 8925:            bool32_t dst = src0 < src1;
        -:        -: 8926:
    #####:    #####: 8927:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8928:      }
        -:        -: 8929:
    #####:    #####: 8930:         break;
        -:        -: 8931:      }
        -:        -: 8932:      case 16: {
        -:        -: 8933:         
        -:        -: 8934:   
        -:        -: 8935:
        -:        -: 8936:                  
    #####:    #####: 8937:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8938:               const int16_t src0 =
        -:        -: 8939:                  _src[0].i16[_i];
    #####:    #####: 8940:               const int16_t src1 =
    #####:    #####: 8941:                  _src[1].i16[_i];
        -:        -: 8942:
    #####:    #####: 8943:            bool32_t dst = src0 < src1;
        -:        -: 8944:
    #####:    #####: 8945:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8946:      }
        -:        -: 8947:
    #####:    #####: 8948:         break;
        -:        -: 8949:      }
        -:        -: 8950:      case 32: {
        -:        -: 8951:         
        -:        -: 8952:   
        -:        -: 8953:
        -:        -: 8954:                  
    #####:    #####: 8955:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8956:               const int32_t src0 =
        -:        -: 8957:                  _src[0].i32[_i];
    #####:    #####: 8958:               const int32_t src1 =
    #####:    #####: 8959:                  _src[1].i32[_i];
        -:        -: 8960:
    #####:    #####: 8961:            bool32_t dst = src0 < src1;
        -:        -: 8962:
    #####:    #####: 8963:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8964:      }
        -:        -: 8965:
    #####:    #####: 8966:         break;
        -:        -: 8967:      }
        -:        -: 8968:      case 64: {
        -:        -: 8969:         
        -:        -: 8970:   
        -:        -: 8971:
        -:        -: 8972:                  
    #####:    #####: 8973:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 8974:               const int64_t src0 =
        -:        -: 8975:                  _src[0].i64[_i];
    #####:    #####: 8976:               const int64_t src1 =
    #####:    #####: 8977:                  _src[1].i64[_i];
        -:        -: 8978:
    #####:    #####: 8979:            bool32_t dst = src0 < src1;
        -:        -: 8980:
    #####:    #####: 8981:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 8982:      }
        -:        -: 8983:
    #####:    #####: 8984:         break;
        -:        -: 8985:      }
        -:        -: 8986:
        -:        -: 8987:      default:
    #####:    #####: 8988:         unreachable("unknown bit width");
        -:        -: 8989:      }
        -:        -: 8990:
    #####:    #####: 8991:   return _dst_val;
        -:        -: 8992:}
        -:        -: 8993:static nir_const_value
    #####:    #####: 8994:evaluate_imax(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 8995:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 8996:{
    #####:    #####: 8997:   nir_const_value _dst_val = { {0, } };
        -:        -: 8998:
    #####:    #####: 8999:      switch (bit_size) {
        -:        -: 9000:      case 8: {
        -:        -: 9001:         
        -:        -: 9002:   
        -:        -: 9003:
        -:        -: 9004:                  
    #####:    #####: 9005:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9006:               const int8_t src0 =
        -:        -: 9007:                  _src[0].i8[_i];
    #####:    #####: 9008:               const int8_t src1 =
    #####:    #####: 9009:                  _src[1].i8[_i];
        -:        -: 9010:
    #####:    #####: 9011:            int8_t dst = src1 > src0 ? src1 : src0;
        -:        -: 9012:
    #####:    #####: 9013:            _dst_val.i8[_i] = dst;
        -:        -: 9014:      }
        -:        -: 9015:
    #####:    #####: 9016:         break;
        -:        -: 9017:      }
        -:        -: 9018:      case 16: {
        -:        -: 9019:         
        -:        -: 9020:   
        -:        -: 9021:
        -:        -: 9022:                  
    #####:    #####: 9023:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9024:               const int16_t src0 =
        -:        -: 9025:                  _src[0].i16[_i];
    #####:    #####: 9026:               const int16_t src1 =
    #####:    #####: 9027:                  _src[1].i16[_i];
        -:        -: 9028:
    #####:    #####: 9029:            int16_t dst = src1 > src0 ? src1 : src0;
        -:        -: 9030:
    #####:    #####: 9031:            _dst_val.i16[_i] = dst;
        -:        -: 9032:      }
        -:        -: 9033:
    #####:    #####: 9034:         break;
        -:        -: 9035:      }
        -:        -: 9036:      case 32: {
        -:        -: 9037:         
        -:        -: 9038:   
        -:        -: 9039:
        -:        -: 9040:                  
    #####:    #####: 9041:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9042:               const int32_t src0 =
        -:        -: 9043:                  _src[0].i32[_i];
    #####:    #####: 9044:               const int32_t src1 =
    #####:    #####: 9045:                  _src[1].i32[_i];
        -:        -: 9046:
    #####:    #####: 9047:            int32_t dst = src1 > src0 ? src1 : src0;
        -:        -: 9048:
    #####:    #####: 9049:            _dst_val.i32[_i] = dst;
        -:        -: 9050:      }
        -:        -: 9051:
    #####:    #####: 9052:         break;
        -:        -: 9053:      }
        -:        -: 9054:      case 64: {
        -:        -: 9055:         
        -:        -: 9056:   
        -:        -: 9057:
        -:        -: 9058:                  
    #####:    #####: 9059:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9060:               const int64_t src0 =
        -:        -: 9061:                  _src[0].i64[_i];
    #####:    #####: 9062:               const int64_t src1 =
    #####:    #####: 9063:                  _src[1].i64[_i];
        -:        -: 9064:
    #####:    #####: 9065:            int64_t dst = src1 > src0 ? src1 : src0;
        -:        -: 9066:
    #####:    #####: 9067:            _dst_val.i64[_i] = dst;
        -:        -: 9068:      }
        -:        -: 9069:
    #####:    #####: 9070:         break;
        -:        -: 9071:      }
        -:        -: 9072:
        -:        -: 9073:      default:
    #####:    #####: 9074:         unreachable("unknown bit width");
        -:        -: 9075:      }
        -:        -: 9076:
    #####:    #####: 9077:   return _dst_val;
        -:        -: 9078:}
        -:        -: 9079:static nir_const_value
    #####:    #####: 9080:evaluate_imin(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9081:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9082:{
    #####:    #####: 9083:   nir_const_value _dst_val = { {0, } };
        -:        -: 9084:
    #####:    #####: 9085:      switch (bit_size) {
        -:        -: 9086:      case 8: {
        -:        -: 9087:         
        -:        -: 9088:   
        -:        -: 9089:
        -:        -: 9090:                  
    #####:    #####: 9091:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9092:               const int8_t src0 =
        -:        -: 9093:                  _src[0].i8[_i];
    #####:    #####: 9094:               const int8_t src1 =
    #####:    #####: 9095:                  _src[1].i8[_i];
        -:        -: 9096:
    #####:    #####: 9097:            int8_t dst = src1 > src0 ? src0 : src1;
        -:        -: 9098:
    #####:    #####: 9099:            _dst_val.i8[_i] = dst;
        -:        -: 9100:      }
        -:        -: 9101:
    #####:    #####: 9102:         break;
        -:        -: 9103:      }
        -:        -: 9104:      case 16: {
        -:        -: 9105:         
        -:        -: 9106:   
        -:        -: 9107:
        -:        -: 9108:                  
    #####:    #####: 9109:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9110:               const int16_t src0 =
        -:        -: 9111:                  _src[0].i16[_i];
    #####:    #####: 9112:               const int16_t src1 =
    #####:    #####: 9113:                  _src[1].i16[_i];
        -:        -: 9114:
    #####:    #####: 9115:            int16_t dst = src1 > src0 ? src0 : src1;
        -:        -: 9116:
    #####:    #####: 9117:            _dst_val.i16[_i] = dst;
        -:        -: 9118:      }
        -:        -: 9119:
    #####:    #####: 9120:         break;
        -:        -: 9121:      }
        -:        -: 9122:      case 32: {
        -:        -: 9123:         
        -:        -: 9124:   
        -:        -: 9125:
        -:        -: 9126:                  
    #####:    #####: 9127:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9128:               const int32_t src0 =
        -:        -: 9129:                  _src[0].i32[_i];
    #####:    #####: 9130:               const int32_t src1 =
    #####:    #####: 9131:                  _src[1].i32[_i];
        -:        -: 9132:
    #####:    #####: 9133:            int32_t dst = src1 > src0 ? src0 : src1;
        -:        -: 9134:
    #####:    #####: 9135:            _dst_val.i32[_i] = dst;
        -:        -: 9136:      }
        -:        -: 9137:
    #####:    #####: 9138:         break;
        -:        -: 9139:      }
        -:        -: 9140:      case 64: {
        -:        -: 9141:         
        -:        -: 9142:   
        -:        -: 9143:
        -:        -: 9144:                  
    #####:    #####: 9145:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9146:               const int64_t src0 =
        -:        -: 9147:                  _src[0].i64[_i];
    #####:    #####: 9148:               const int64_t src1 =
    #####:    #####: 9149:                  _src[1].i64[_i];
        -:        -: 9150:
    #####:    #####: 9151:            int64_t dst = src1 > src0 ? src0 : src1;
        -:        -: 9152:
    #####:    #####: 9153:            _dst_val.i64[_i] = dst;
        -:        -: 9154:      }
        -:        -: 9155:
    #####:    #####: 9156:         break;
        -:        -: 9157:      }
        -:        -: 9158:
        -:        -: 9159:      default:
    #####:    #####: 9160:         unreachable("unknown bit width");
        -:        -: 9161:      }
        -:        -: 9162:
    #####:    #####: 9163:   return _dst_val;
        -:        -: 9164:}
        -:        -: 9165:static nir_const_value
    #####:    #####: 9166:evaluate_imod(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9167:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9168:{
    #####:    #####: 9169:   nir_const_value _dst_val = { {0, } };
        -:        -: 9170:
    #####:    #####: 9171:      switch (bit_size) {
        -:        -: 9172:      case 8: {
        -:        -: 9173:         
        -:        -: 9174:   
        -:        -: 9175:
        -:        -: 9176:                  
    #####:    #####: 9177:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9178:               const int8_t src0 =
        -:        -: 9179:                  _src[0].i8[_i];
    #####:    #####: 9180:               const int8_t src1 =
    #####:    #####: 9181:                  _src[1].i8[_i];
        -:        -: 9182:
    #####:    #####: 9183:            int8_t dst = src1 == 0 ? 0 : ((src0 % src1 == 0 || (src0 >= 0) == (src1 >= 0)) ?                 src0 % src1 : src0 % src1 + src1);
        -:        -: 9184:
    #####:    #####: 9185:            _dst_val.i8[_i] = dst;
        -:        -: 9186:      }
        -:        -: 9187:
    #####:    #####: 9188:         break;
        -:        -: 9189:      }
        -:        -: 9190:      case 16: {
        -:        -: 9191:         
        -:        -: 9192:   
        -:        -: 9193:
        -:        -: 9194:                  
    #####:    #####: 9195:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9196:               const int16_t src0 =
        -:        -: 9197:                  _src[0].i16[_i];
    #####:    #####: 9198:               const int16_t src1 =
    #####:    #####: 9199:                  _src[1].i16[_i];
        -:        -: 9200:
    #####:    #####: 9201:            int16_t dst = src1 == 0 ? 0 : ((src0 % src1 == 0 || (src0 >= 0) == (src1 >= 0)) ?                 src0 % src1 : src0 % src1 + src1);
        -:        -: 9202:
    #####:    #####: 9203:            _dst_val.i16[_i] = dst;
        -:        -: 9204:      }
        -:        -: 9205:
    #####:    #####: 9206:         break;
        -:        -: 9207:      }
        -:        -: 9208:      case 32: {
        -:        -: 9209:         
        -:        -: 9210:   
        -:        -: 9211:
        -:        -: 9212:                  
    #####:    #####: 9213:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9214:               const int32_t src0 =
        -:        -: 9215:                  _src[0].i32[_i];
    #####:    #####: 9216:               const int32_t src1 =
    #####:    #####: 9217:                  _src[1].i32[_i];
        -:        -: 9218:
    #####:    #####: 9219:            int32_t dst = src1 == 0 ? 0 : ((src0 % src1 == 0 || (src0 >= 0) == (src1 >= 0)) ?                 src0 % src1 : src0 % src1 + src1);
        -:        -: 9220:
    #####:    #####: 9221:            _dst_val.i32[_i] = dst;
        -:        -: 9222:      }
        -:        -: 9223:
    #####:    #####: 9224:         break;
        -:        -: 9225:      }
        -:        -: 9226:      case 64: {
        -:        -: 9227:         
        -:        -: 9228:   
        -:        -: 9229:
        -:        -: 9230:                  
    #####:    #####: 9231:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9232:               const int64_t src0 =
        -:        -: 9233:                  _src[0].i64[_i];
    #####:    #####: 9234:               const int64_t src1 =
    #####:    #####: 9235:                  _src[1].i64[_i];
        -:        -: 9236:
    #####:    #####: 9237:            int64_t dst = src1 == 0 ? 0 : ((src0 % src1 == 0 || (src0 >= 0) == (src1 >= 0)) ?                 src0 % src1 : src0 % src1 + src1);
        -:        -: 9238:
    #####:    #####: 9239:            _dst_val.i64[_i] = dst;
        -:        -: 9240:      }
        -:        -: 9241:
    #####:    #####: 9242:         break;
        -:        -: 9243:      }
        -:        -: 9244:
        -:        -: 9245:      default:
    #####:    #####: 9246:         unreachable("unknown bit width");
        -:        -: 9247:      }
        -:        -: 9248:
    #####:    #####: 9249:   return _dst_val;
        -:        -: 9250:}
        -:        -: 9251:static nir_const_value
        3:        3: 9252:evaluate_imov(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9253:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9254:{
        3:        3: 9255:   nir_const_value _dst_val = { {0, } };
        -:        -: 9256:
        3:        3: 9257:      switch (bit_size) {
        -:        -: 9258:      case 8: {
        -:        -: 9259:         
        -:        -: 9260:   
        -:        -: 9261:
        -:        -: 9262:         
    #####:    #####: 9263:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9264:               const int8_t src0 =
        -:        -: 9265:                  _src[0].i8[_i];
        -:        -: 9266:
    #####:    #####: 9267:            int8_t dst = src0;
        -:        -: 9268:
    #####:    #####: 9269:            _dst_val.i8[_i] = dst;
        -:        -: 9270:      }
        -:        -: 9271:
    #####:    #####: 9272:         break;
        -:        -: 9273:      }
        -:        -: 9274:      case 16: {
        -:        -: 9275:         
        -:        -: 9276:   
        -:        -: 9277:
        -:        -: 9278:         
    #####:    #####: 9279:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9280:               const int16_t src0 =
        -:        -: 9281:                  _src[0].i16[_i];
        -:        -: 9282:
    #####:    #####: 9283:            int16_t dst = src0;
        -:        -: 9284:
    #####:    #####: 9285:            _dst_val.i16[_i] = dst;
        -:        -: 9286:      }
        -:        -: 9287:
    #####:    #####: 9288:         break;
        -:        -: 9289:      }
        -:        -: 9290:      case 32: {
        -:        -: 9291:         
        -:        -: 9292:   
        -:        -: 9293:
        -:        -: 9294:         
        6:        6: 9295:      for (unsigned _i = 0; _i < num_components; _i++) {
        3:        3: 9296:               const int32_t src0 =
        -:        -: 9297:                  _src[0].i32[_i];
        -:        -: 9298:
        3:        3: 9299:            int32_t dst = src0;
        -:        -: 9300:
        3:        3: 9301:            _dst_val.i32[_i] = dst;
        -:        -: 9302:      }
        -:        -: 9303:
        3:        3: 9304:         break;
        -:        -: 9305:      }
        -:        -: 9306:      case 64: {
        -:        -: 9307:         
        -:        -: 9308:   
        -:        -: 9309:
        -:        -: 9310:         
    #####:    #####: 9311:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9312:               const int64_t src0 =
        -:        -: 9313:                  _src[0].i64[_i];
        -:        -: 9314:
    #####:    #####: 9315:            int64_t dst = src0;
        -:        -: 9316:
    #####:    #####: 9317:            _dst_val.i64[_i] = dst;
        -:        -: 9318:      }
        -:        -: 9319:
    #####:    #####: 9320:         break;
        -:        -: 9321:      }
        -:        -: 9322:
        -:        -: 9323:      default:
    #####:    #####: 9324:         unreachable("unknown bit width");
        -:        -: 9325:      }
        -:        -: 9326:
        3:        3: 9327:   return _dst_val;
        -:        -: 9328:}
        -:        -: 9329:static nir_const_value
       34:        2: 9330:evaluate_imul(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9331:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9332:{
       34:        2: 9333:   nir_const_value _dst_val = { {0, } };
        -:        -: 9334:
       34:        2: 9335:      switch (bit_size) {
        -:        -: 9336:      case 8: {
        -:        -: 9337:         
        -:        -: 9338:   
        -:        -: 9339:
        -:        -: 9340:                  
    #####:    #####: 9341:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9342:               const int8_t src0 =
        -:        -: 9343:                  _src[0].i8[_i];
    #####:    #####: 9344:               const int8_t src1 =
    #####:    #####: 9345:                  _src[1].i8[_i];
        -:        -: 9346:
    #####:    #####: 9347:            int8_t dst = src0 * src1;
        -:        -: 9348:
    #####:    #####: 9349:            _dst_val.i8[_i] = dst;
        -:        -: 9350:      }
        -:        -: 9351:
    #####:    #####: 9352:         break;
        -:        -: 9353:      }
        -:        -: 9354:      case 16: {
        -:        -: 9355:         
        -:        -: 9356:   
        -:        -: 9357:
        -:        -: 9358:                  
    #####:    #####: 9359:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9360:               const int16_t src0 =
        -:        -: 9361:                  _src[0].i16[_i];
    #####:    #####: 9362:               const int16_t src1 =
    #####:    #####: 9363:                  _src[1].i16[_i];
        -:        -: 9364:
    #####:    #####: 9365:            int16_t dst = src0 * src1;
        -:        -: 9366:
    #####:    #####: 9367:            _dst_val.i16[_i] = dst;
        -:        -: 9368:      }
        -:        -: 9369:
    #####:    #####: 9370:         break;
        -:        -: 9371:      }
        -:        -: 9372:      case 32: {
        -:        -: 9373:         
        -:        -: 9374:   
        -:        -: 9375:
        -:        -: 9376:                  
       68:        4: 9377:      for (unsigned _i = 0; _i < num_components; _i++) {
       34:        2: 9378:               const int32_t src0 =
        -:        -: 9379:                  _src[0].i32[_i];
       34:        2: 9380:               const int32_t src1 =
       34:        2: 9381:                  _src[1].i32[_i];
        -:        -: 9382:
       34:        2: 9383:            int32_t dst = src0 * src1;
        -:        -: 9384:
       34:        2: 9385:            _dst_val.i32[_i] = dst;
        -:        -: 9386:      }
        -:        -: 9387:
       34:        2: 9388:         break;
        -:        -: 9389:      }
        -:        -: 9390:      case 64: {
        -:        -: 9391:         
        -:        -: 9392:   
        -:        -: 9393:
        -:        -: 9394:                  
    #####:    #####: 9395:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9396:               const int64_t src0 =
        -:        -: 9397:                  _src[0].i64[_i];
    #####:    #####: 9398:               const int64_t src1 =
    #####:    #####: 9399:                  _src[1].i64[_i];
        -:        -: 9400:
    #####:    #####: 9401:            int64_t dst = src0 * src1;
        -:        -: 9402:
    #####:    #####: 9403:            _dst_val.i64[_i] = dst;
        -:        -: 9404:      }
        -:        -: 9405:
    #####:    #####: 9406:         break;
        -:        -: 9407:      }
        -:        -: 9408:
        -:        -: 9409:      default:
    #####:    #####: 9410:         unreachable("unknown bit width");
        -:        -: 9411:      }
        -:        -: 9412:
       34:        2: 9413:   return _dst_val;
        -:        -: 9414:}
        -:        -: 9415:static nir_const_value
    #####:    #####: 9416:evaluate_imul_high(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9417:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9418:{
    #####:    #####: 9419:   nir_const_value _dst_val = { {0, } };
        -:        -: 9420:
        -:        -: 9421:      
        -:        -: 9422:   
        -:        -: 9423:
        -:        -: 9424:                  
    #####:    #####: 9425:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9426:               const int32_t src0 =
        -:        -: 9427:                  _src[0].i32[_i];
    #####:    #####: 9428:               const int32_t src1 =
    #####:    #####: 9429:                  _src[1].i32[_i];
        -:        -: 9430:
    #####:    #####: 9431:            int32_t dst = (int32_t)(((int64_t) src0 * (int64_t) src1) >> 32);
        -:        -: 9432:
    #####:    #####: 9433:            _dst_val.i32[_i] = dst;
        -:        -: 9434:      }
        -:        -: 9435:
        -:        -: 9436:
    #####:    #####: 9437:   return _dst_val;
        -:        -: 9438:}
        -:        -: 9439:static nir_const_value
    #####:    #####: 9440:evaluate_ine(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9441:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9442:{
    #####:    #####: 9443:   nir_const_value _dst_val = { {0, } };
        -:        -: 9444:
    #####:    #####: 9445:      switch (bit_size) {
        -:        -: 9446:      case 8: {
        -:        -: 9447:         
        -:        -: 9448:   
        -:        -: 9449:
        -:        -: 9450:                  
    #####:    #####: 9451:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9452:               const int8_t src0 =
        -:        -: 9453:                  _src[0].i8[_i];
    #####:    #####: 9454:               const int8_t src1 =
    #####:    #####: 9455:                  _src[1].i8[_i];
        -:        -: 9456:
    #####:    #####: 9457:            bool32_t dst = src0 != src1;
        -:        -: 9458:
    #####:    #####: 9459:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 9460:      }
        -:        -: 9461:
    #####:    #####: 9462:         break;
        -:        -: 9463:      }
        -:        -: 9464:      case 16: {
        -:        -: 9465:         
        -:        -: 9466:   
        -:        -: 9467:
        -:        -: 9468:                  
    #####:    #####: 9469:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9470:               const int16_t src0 =
        -:        -: 9471:                  _src[0].i16[_i];
    #####:    #####: 9472:               const int16_t src1 =
    #####:    #####: 9473:                  _src[1].i16[_i];
        -:        -: 9474:
    #####:    #####: 9475:            bool32_t dst = src0 != src1;
        -:        -: 9476:
    #####:    #####: 9477:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 9478:      }
        -:        -: 9479:
    #####:    #####: 9480:         break;
        -:        -: 9481:      }
        -:        -: 9482:      case 32: {
        -:        -: 9483:         
        -:        -: 9484:   
        -:        -: 9485:
        -:        -: 9486:                  
    #####:    #####: 9487:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9488:               const int32_t src0 =
        -:        -: 9489:                  _src[0].i32[_i];
    #####:    #####: 9490:               const int32_t src1 =
    #####:    #####: 9491:                  _src[1].i32[_i];
        -:        -: 9492:
    #####:    #####: 9493:            bool32_t dst = src0 != src1;
        -:        -: 9494:
    #####:    #####: 9495:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 9496:      }
        -:        -: 9497:
    #####:    #####: 9498:         break;
        -:        -: 9499:      }
        -:        -: 9500:      case 64: {
        -:        -: 9501:         
        -:        -: 9502:   
        -:        -: 9503:
        -:        -: 9504:                  
    #####:    #####: 9505:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9506:               const int64_t src0 =
        -:        -: 9507:                  _src[0].i64[_i];
    #####:    #####: 9508:               const int64_t src1 =
    #####:    #####: 9509:                  _src[1].i64[_i];
        -:        -: 9510:
    #####:    #####: 9511:            bool32_t dst = src0 != src1;
        -:        -: 9512:
    #####:    #####: 9513:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -: 9514:      }
        -:        -: 9515:
    #####:    #####: 9516:         break;
        -:        -: 9517:      }
        -:        -: 9518:
        -:        -: 9519:      default:
    #####:    #####: 9520:         unreachable("unknown bit width");
        -:        -: 9521:      }
        -:        -: 9522:
    #####:    #####: 9523:   return _dst_val;
        -:        -: 9524:}
        -:        -: 9525:static nir_const_value
    #####:    #####: 9526:evaluate_ineg(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9527:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9528:{
    #####:    #####: 9529:   nir_const_value _dst_val = { {0, } };
        -:        -: 9530:
    #####:    #####: 9531:      switch (bit_size) {
        -:        -: 9532:      case 8: {
        -:        -: 9533:         
        -:        -: 9534:   
        -:        -: 9535:
        -:        -: 9536:         
    #####:    #####: 9537:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9538:               const int8_t src0 =
        -:        -: 9539:                  _src[0].i8[_i];
        -:        -: 9540:
    #####:    #####: 9541:            int8_t dst = -src0;
        -:        -: 9542:
    #####:    #####: 9543:            _dst_val.i8[_i] = dst;
        -:        -: 9544:      }
        -:        -: 9545:
    #####:    #####: 9546:         break;
        -:        -: 9547:      }
        -:        -: 9548:      case 16: {
        -:        -: 9549:         
        -:        -: 9550:   
        -:        -: 9551:
        -:        -: 9552:         
    #####:    #####: 9553:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9554:               const int16_t src0 =
        -:        -: 9555:                  _src[0].i16[_i];
        -:        -: 9556:
    #####:    #####: 9557:            int16_t dst = -src0;
        -:        -: 9558:
    #####:    #####: 9559:            _dst_val.i16[_i] = dst;
        -:        -: 9560:      }
        -:        -: 9561:
    #####:    #####: 9562:         break;
        -:        -: 9563:      }
        -:        -: 9564:      case 32: {
        -:        -: 9565:         
        -:        -: 9566:   
        -:        -: 9567:
        -:        -: 9568:         
    #####:    #####: 9569:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9570:               const int32_t src0 =
        -:        -: 9571:                  _src[0].i32[_i];
        -:        -: 9572:
    #####:    #####: 9573:            int32_t dst = -src0;
        -:        -: 9574:
    #####:    #####: 9575:            _dst_val.i32[_i] = dst;
        -:        -: 9576:      }
        -:        -: 9577:
    #####:    #####: 9578:         break;
        -:        -: 9579:      }
        -:        -: 9580:      case 64: {
        -:        -: 9581:         
        -:        -: 9582:   
        -:        -: 9583:
        -:        -: 9584:         
    #####:    #####: 9585:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9586:               const int64_t src0 =
        -:        -: 9587:                  _src[0].i64[_i];
        -:        -: 9588:
    #####:    #####: 9589:            int64_t dst = -src0;
        -:        -: 9590:
    #####:    #####: 9591:            _dst_val.i64[_i] = dst;
        -:        -: 9592:      }
        -:        -: 9593:
    #####:    #####: 9594:         break;
        -:        -: 9595:      }
        -:        -: 9596:
        -:        -: 9597:      default:
    #####:    #####: 9598:         unreachable("unknown bit width");
        -:        -: 9599:      }
        -:        -: 9600:
    #####:    #####: 9601:   return _dst_val;
        -:        -: 9602:}
        -:        -: 9603:static nir_const_value
    #####:    #####: 9604:evaluate_inot(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9605:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9606:{
    #####:    #####: 9607:   nir_const_value _dst_val = { {0, } };
        -:        -: 9608:
    #####:    #####: 9609:      switch (bit_size) {
        -:        -: 9610:      case 8: {
        -:        -: 9611:         
        -:        -: 9612:   
        -:        -: 9613:
        -:        -: 9614:         
    #####:    #####: 9615:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9616:               const int8_t src0 =
        -:        -: 9617:                  _src[0].i8[_i];
        -:        -: 9618:
    #####:    #####: 9619:            int8_t dst = ~src0;
        -:        -: 9620:
    #####:    #####: 9621:            _dst_val.i8[_i] = dst;
        -:        -: 9622:      }
        -:        -: 9623:
    #####:    #####: 9624:         break;
        -:        -: 9625:      }
        -:        -: 9626:      case 16: {
        -:        -: 9627:         
        -:        -: 9628:   
        -:        -: 9629:
        -:        -: 9630:         
    #####:    #####: 9631:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9632:               const int16_t src0 =
        -:        -: 9633:                  _src[0].i16[_i];
        -:        -: 9634:
    #####:    #####: 9635:            int16_t dst = ~src0;
        -:        -: 9636:
    #####:    #####: 9637:            _dst_val.i16[_i] = dst;
        -:        -: 9638:      }
        -:        -: 9639:
    #####:    #####: 9640:         break;
        -:        -: 9641:      }
        -:        -: 9642:      case 32: {
        -:        -: 9643:         
        -:        -: 9644:   
        -:        -: 9645:
        -:        -: 9646:         
    #####:    #####: 9647:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9648:               const int32_t src0 =
        -:        -: 9649:                  _src[0].i32[_i];
        -:        -: 9650:
    #####:    #####: 9651:            int32_t dst = ~src0;
        -:        -: 9652:
    #####:    #####: 9653:            _dst_val.i32[_i] = dst;
        -:        -: 9654:      }
        -:        -: 9655:
    #####:    #####: 9656:         break;
        -:        -: 9657:      }
        -:        -: 9658:      case 64: {
        -:        -: 9659:         
        -:        -: 9660:   
        -:        -: 9661:
        -:        -: 9662:         
    #####:    #####: 9663:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9664:               const int64_t src0 =
        -:        -: 9665:                  _src[0].i64[_i];
        -:        -: 9666:
    #####:    #####: 9667:            int64_t dst = ~src0;
        -:        -: 9668:
    #####:    #####: 9669:            _dst_val.i64[_i] = dst;
        -:        -: 9670:      }
        -:        -: 9671:
    #####:    #####: 9672:         break;
        -:        -: 9673:      }
        -:        -: 9674:
        -:        -: 9675:      default:
    #####:    #####: 9676:         unreachable("unknown bit width");
        -:        -: 9677:      }
        -:        -: 9678:
    #####:    #####: 9679:   return _dst_val;
        -:        -: 9680:}
        -:        -: 9681:static nir_const_value
    #####:    #####: 9682:evaluate_ior(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9683:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9684:{
    #####:    #####: 9685:   nir_const_value _dst_val = { {0, } };
        -:        -: 9686:
    #####:    #####: 9687:      switch (bit_size) {
        -:        -: 9688:      case 8: {
        -:        -: 9689:         
        -:        -: 9690:   
        -:        -: 9691:
        -:        -: 9692:                  
    #####:    #####: 9693:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9694:               const uint8_t src0 =
        -:        -: 9695:                  _src[0].u8[_i];
    #####:    #####: 9696:               const uint8_t src1 =
    #####:    #####: 9697:                  _src[1].u8[_i];
        -:        -: 9698:
    #####:    #####: 9699:            uint8_t dst = src0 | src1;
        -:        -: 9700:
    #####:    #####: 9701:            _dst_val.u8[_i] = dst;
        -:        -: 9702:      }
        -:        -: 9703:
    #####:    #####: 9704:         break;
        -:        -: 9705:      }
        -:        -: 9706:      case 16: {
        -:        -: 9707:         
        -:        -: 9708:   
        -:        -: 9709:
        -:        -: 9710:                  
    #####:    #####: 9711:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9712:               const uint16_t src0 =
        -:        -: 9713:                  _src[0].u16[_i];
    #####:    #####: 9714:               const uint16_t src1 =
    #####:    #####: 9715:                  _src[1].u16[_i];
        -:        -: 9716:
    #####:    #####: 9717:            uint16_t dst = src0 | src1;
        -:        -: 9718:
    #####:    #####: 9719:            _dst_val.u16[_i] = dst;
        -:        -: 9720:      }
        -:        -: 9721:
    #####:    #####: 9722:         break;
        -:        -: 9723:      }
        -:        -: 9724:      case 32: {
        -:        -: 9725:         
        -:        -: 9726:   
        -:        -: 9727:
        -:        -: 9728:                  
    #####:    #####: 9729:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9730:               const uint32_t src0 =
        -:        -: 9731:                  _src[0].u32[_i];
    #####:    #####: 9732:               const uint32_t src1 =
    #####:    #####: 9733:                  _src[1].u32[_i];
        -:        -: 9734:
    #####:    #####: 9735:            uint32_t dst = src0 | src1;
        -:        -: 9736:
    #####:    #####: 9737:            _dst_val.u32[_i] = dst;
        -:        -: 9738:      }
        -:        -: 9739:
    #####:    #####: 9740:         break;
        -:        -: 9741:      }
        -:        -: 9742:      case 64: {
        -:        -: 9743:         
        -:        -: 9744:   
        -:        -: 9745:
        -:        -: 9746:                  
    #####:    #####: 9747:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9748:               const uint64_t src0 =
        -:        -: 9749:                  _src[0].u64[_i];
    #####:    #####: 9750:               const uint64_t src1 =
    #####:    #####: 9751:                  _src[1].u64[_i];
        -:        -: 9752:
    #####:    #####: 9753:            uint64_t dst = src0 | src1;
        -:        -: 9754:
    #####:    #####: 9755:            _dst_val.u64[_i] = dst;
        -:        -: 9756:      }
        -:        -: 9757:
    #####:    #####: 9758:         break;
        -:        -: 9759:      }
        -:        -: 9760:
        -:        -: 9761:      default:
    #####:    #####: 9762:         unreachable("unknown bit width");
        -:        -: 9763:      }
        -:        -: 9764:
    #####:    #####: 9765:   return _dst_val;
        -:        -: 9766:}
        -:        -: 9767:static nir_const_value
    #####:    #####: 9768:evaluate_irem(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9769:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9770:{
    #####:    #####: 9771:   nir_const_value _dst_val = { {0, } };
        -:        -: 9772:
    #####:    #####: 9773:      switch (bit_size) {
        -:        -: 9774:      case 8: {
        -:        -: 9775:         
        -:        -: 9776:   
        -:        -: 9777:
        -:        -: 9778:                  
    #####:    #####: 9779:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9780:               const int8_t src0 =
        -:        -: 9781:                  _src[0].i8[_i];
    #####:    #####: 9782:               const int8_t src1 =
    #####:    #####: 9783:                  _src[1].i8[_i];
        -:        -: 9784:
    #####:    #####: 9785:            int8_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -: 9786:
    #####:    #####: 9787:            _dst_val.i8[_i] = dst;
        -:        -: 9788:      }
        -:        -: 9789:
    #####:    #####: 9790:         break;
        -:        -: 9791:      }
        -:        -: 9792:      case 16: {
        -:        -: 9793:         
        -:        -: 9794:   
        -:        -: 9795:
        -:        -: 9796:                  
    #####:    #####: 9797:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9798:               const int16_t src0 =
        -:        -: 9799:                  _src[0].i16[_i];
    #####:    #####: 9800:               const int16_t src1 =
    #####:    #####: 9801:                  _src[1].i16[_i];
        -:        -: 9802:
    #####:    #####: 9803:            int16_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -: 9804:
    #####:    #####: 9805:            _dst_val.i16[_i] = dst;
        -:        -: 9806:      }
        -:        -: 9807:
    #####:    #####: 9808:         break;
        -:        -: 9809:      }
        -:        -: 9810:      case 32: {
        -:        -: 9811:         
        -:        -: 9812:   
        -:        -: 9813:
        -:        -: 9814:                  
    #####:    #####: 9815:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9816:               const int32_t src0 =
        -:        -: 9817:                  _src[0].i32[_i];
    #####:    #####: 9818:               const int32_t src1 =
    #####:    #####: 9819:                  _src[1].i32[_i];
        -:        -: 9820:
    #####:    #####: 9821:            int32_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -: 9822:
    #####:    #####: 9823:            _dst_val.i32[_i] = dst;
        -:        -: 9824:      }
        -:        -: 9825:
    #####:    #####: 9826:         break;
        -:        -: 9827:      }
        -:        -: 9828:      case 64: {
        -:        -: 9829:         
        -:        -: 9830:   
        -:        -: 9831:
        -:        -: 9832:                  
    #####:    #####: 9833:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9834:               const int64_t src0 =
        -:        -: 9835:                  _src[0].i64[_i];
    #####:    #####: 9836:               const int64_t src1 =
    #####:    #####: 9837:                  _src[1].i64[_i];
        -:        -: 9838:
    #####:    #####: 9839:            int64_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -: 9840:
    #####:    #####: 9841:            _dst_val.i64[_i] = dst;
        -:        -: 9842:      }
        -:        -: 9843:
    #####:    #####: 9844:         break;
        -:        -: 9845:      }
        -:        -: 9846:
        -:        -: 9847:      default:
    #####:    #####: 9848:         unreachable("unknown bit width");
        -:        -: 9849:      }
        -:        -: 9850:
    #####:    #####: 9851:   return _dst_val;
        -:        -: 9852:}
        -:        -: 9853:static nir_const_value
    #####:    #####: 9854:evaluate_ishl(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9855:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9856:{
    #####:    #####: 9857:   nir_const_value _dst_val = { {0, } };
        -:        -: 9858:
    #####:    #####: 9859:      switch (bit_size) {
        -:        -: 9860:      case 8: {
        -:        -: 9861:         
        -:        -: 9862:   
        -:        -: 9863:
        -:        -: 9864:                  
    #####:    #####: 9865:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9866:               const int8_t src0 =
        -:        -: 9867:                  _src[0].i8[_i];
    #####:    #####: 9868:               const uint32_t src1 =
    #####:    #####: 9869:                  _src[1].u32[_i];
        -:        -: 9870:
    #####:    #####: 9871:            int8_t dst = src0 << src1;
        -:        -: 9872:
    #####:    #####: 9873:            _dst_val.i8[_i] = dst;
        -:        -: 9874:      }
        -:        -: 9875:
    #####:    #####: 9876:         break;
        -:        -: 9877:      }
        -:        -: 9878:      case 16: {
        -:        -: 9879:         
        -:        -: 9880:   
        -:        -: 9881:
        -:        -: 9882:                  
    #####:    #####: 9883:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9884:               const int16_t src0 =
        -:        -: 9885:                  _src[0].i16[_i];
    #####:    #####: 9886:               const uint32_t src1 =
    #####:    #####: 9887:                  _src[1].u32[_i];
        -:        -: 9888:
    #####:    #####: 9889:            int16_t dst = src0 << src1;
        -:        -: 9890:
    #####:    #####: 9891:            _dst_val.i16[_i] = dst;
        -:        -: 9892:      }
        -:        -: 9893:
    #####:    #####: 9894:         break;
        -:        -: 9895:      }
        -:        -: 9896:      case 32: {
        -:        -: 9897:         
        -:        -: 9898:   
        -:        -: 9899:
        -:        -: 9900:                  
    #####:    #####: 9901:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9902:               const int32_t src0 =
        -:        -: 9903:                  _src[0].i32[_i];
    #####:    #####: 9904:               const uint32_t src1 =
    #####:    #####: 9905:                  _src[1].u32[_i];
        -:        -: 9906:
    #####:    #####: 9907:            int32_t dst = src0 << src1;
        -:        -: 9908:
    #####:    #####: 9909:            _dst_val.i32[_i] = dst;
        -:        -: 9910:      }
        -:        -: 9911:
    #####:    #####: 9912:         break;
        -:        -: 9913:      }
        -:        -: 9914:      case 64: {
        -:        -: 9915:         
        -:        -: 9916:   
        -:        -: 9917:
        -:        -: 9918:                  
    #####:    #####: 9919:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9920:               const int64_t src0 =
        -:        -: 9921:                  _src[0].i64[_i];
    #####:    #####: 9922:               const uint32_t src1 =
    #####:    #####: 9923:                  _src[1].u32[_i];
        -:        -: 9924:
    #####:    #####: 9925:            int64_t dst = src0 << src1;
        -:        -: 9926:
    #####:    #####: 9927:            _dst_val.i64[_i] = dst;
        -:        -: 9928:      }
        -:        -: 9929:
    #####:    #####: 9930:         break;
        -:        -: 9931:      }
        -:        -: 9932:
        -:        -: 9933:      default:
    #####:    #####: 9934:         unreachable("unknown bit width");
        -:        -: 9935:      }
        -:        -: 9936:
    #####:    #####: 9937:   return _dst_val;
        -:        -: 9938:}
        -:        -: 9939:static nir_const_value
    #####:    #####: 9940:evaluate_ishr(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -: 9941:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -: 9942:{
    #####:    #####: 9943:   nir_const_value _dst_val = { {0, } };
        -:        -: 9944:
    #####:    #####: 9945:      switch (bit_size) {
        -:        -: 9946:      case 8: {
        -:        -: 9947:         
        -:        -: 9948:   
        -:        -: 9949:
        -:        -: 9950:                  
    #####:    #####: 9951:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9952:               const int8_t src0 =
        -:        -: 9953:                  _src[0].i8[_i];
    #####:    #####: 9954:               const uint32_t src1 =
    #####:    #####: 9955:                  _src[1].u32[_i];
        -:        -: 9956:
    #####:    #####: 9957:            int8_t dst = src0 >> src1;
        -:        -: 9958:
    #####:    #####: 9959:            _dst_val.i8[_i] = dst;
        -:        -: 9960:      }
        -:        -: 9961:
    #####:    #####: 9962:         break;
        -:        -: 9963:      }
        -:        -: 9964:      case 16: {
        -:        -: 9965:         
        -:        -: 9966:   
        -:        -: 9967:
        -:        -: 9968:                  
    #####:    #####: 9969:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9970:               const int16_t src0 =
        -:        -: 9971:                  _src[0].i16[_i];
    #####:    #####: 9972:               const uint32_t src1 =
    #####:    #####: 9973:                  _src[1].u32[_i];
        -:        -: 9974:
    #####:    #####: 9975:            int16_t dst = src0 >> src1;
        -:        -: 9976:
    #####:    #####: 9977:            _dst_val.i16[_i] = dst;
        -:        -: 9978:      }
        -:        -: 9979:
    #####:    #####: 9980:         break;
        -:        -: 9981:      }
        -:        -: 9982:      case 32: {
        -:        -: 9983:         
        -:        -: 9984:   
        -:        -: 9985:
        -:        -: 9986:                  
    #####:    #####: 9987:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####: 9988:               const int32_t src0 =
        -:        -: 9989:                  _src[0].i32[_i];
    #####:    #####: 9990:               const uint32_t src1 =
    #####:    #####: 9991:                  _src[1].u32[_i];
        -:        -: 9992:
    #####:    #####: 9993:            int32_t dst = src0 >> src1;
        -:        -: 9994:
    #####:    #####: 9995:            _dst_val.i32[_i] = dst;
        -:        -: 9996:      }
        -:        -: 9997:
    #####:    #####: 9998:         break;
        -:        -: 9999:      }
        -:        -:10000:      case 64: {
        -:        -:10001:         
        -:        -:10002:   
        -:        -:10003:
        -:        -:10004:                  
    #####:    #####:10005:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10006:               const int64_t src0 =
        -:        -:10007:                  _src[0].i64[_i];
    #####:    #####:10008:               const uint32_t src1 =
    #####:    #####:10009:                  _src[1].u32[_i];
        -:        -:10010:
    #####:    #####:10011:            int64_t dst = src0 >> src1;
        -:        -:10012:
    #####:    #####:10013:            _dst_val.i64[_i] = dst;
        -:        -:10014:      }
        -:        -:10015:
    #####:    #####:10016:         break;
        -:        -:10017:      }
        -:        -:10018:
        -:        -:10019:      default:
    #####:    #####:10020:         unreachable("unknown bit width");
        -:        -:10021:      }
        -:        -:10022:
    #####:    #####:10023:   return _dst_val;
        -:        -:10024:}
        -:        -:10025:static nir_const_value
    #####:    #####:10026:evaluate_isign(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10027:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10028:{
    #####:    #####:10029:   nir_const_value _dst_val = { {0, } };
        -:        -:10030:
    #####:    #####:10031:      switch (bit_size) {
        -:        -:10032:      case 8: {
        -:        -:10033:         
        -:        -:10034:   
        -:        -:10035:
        -:        -:10036:         
    #####:    #####:10037:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10038:               const int8_t src0 =
        -:        -:10039:                  _src[0].i8[_i];
        -:        -:10040:
    #####:    #####:10041:            int8_t dst = (src0 == 0) ? 0 : ((src0 > 0) ? 1 : -1);
        -:        -:10042:
    #####:    #####:10043:            _dst_val.i8[_i] = dst;
        -:        -:10044:      }
        -:        -:10045:
    #####:    #####:10046:         break;
        -:        -:10047:      }
        -:        -:10048:      case 16: {
        -:        -:10049:         
        -:        -:10050:   
        -:        -:10051:
        -:        -:10052:         
    #####:    #####:10053:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10054:               const int16_t src0 =
        -:        -:10055:                  _src[0].i16[_i];
        -:        -:10056:
    #####:    #####:10057:            int16_t dst = (src0 == 0) ? 0 : ((src0 > 0) ? 1 : -1);
        -:        -:10058:
    #####:    #####:10059:            _dst_val.i16[_i] = dst;
        -:        -:10060:      }
        -:        -:10061:
    #####:    #####:10062:         break;
        -:        -:10063:      }
        -:        -:10064:      case 32: {
        -:        -:10065:         
        -:        -:10066:   
        -:        -:10067:
        -:        -:10068:         
    #####:    #####:10069:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10070:               const int32_t src0 =
        -:        -:10071:                  _src[0].i32[_i];
        -:        -:10072:
    #####:    #####:10073:            int32_t dst = (src0 == 0) ? 0 : ((src0 > 0) ? 1 : -1);
        -:        -:10074:
    #####:    #####:10075:            _dst_val.i32[_i] = dst;
        -:        -:10076:      }
        -:        -:10077:
    #####:    #####:10078:         break;
        -:        -:10079:      }
        -:        -:10080:      case 64: {
        -:        -:10081:         
        -:        -:10082:   
        -:        -:10083:
        -:        -:10084:         
    #####:    #####:10085:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10086:               const int64_t src0 =
        -:        -:10087:                  _src[0].i64[_i];
        -:        -:10088:
    #####:    #####:10089:            int64_t dst = (src0 == 0) ? 0 : ((src0 > 0) ? 1 : -1);
        -:        -:10090:
    #####:    #####:10091:            _dst_val.i64[_i] = dst;
        -:        -:10092:      }
        -:        -:10093:
    #####:    #####:10094:         break;
        -:        -:10095:      }
        -:        -:10096:
        -:        -:10097:      default:
    #####:    #####:10098:         unreachable("unknown bit width");
        -:        -:10099:      }
        -:        -:10100:
    #####:    #####:10101:   return _dst_val;
        -:        -:10102:}
        -:        -:10103:static nir_const_value
    #####:    #####:10104:evaluate_isub(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10105:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10106:{
    #####:    #####:10107:   nir_const_value _dst_val = { {0, } };
        -:        -:10108:
    #####:    #####:10109:      switch (bit_size) {
        -:        -:10110:      case 8: {
        -:        -:10111:         
        -:        -:10112:   
        -:        -:10113:
        -:        -:10114:                  
    #####:    #####:10115:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10116:               const int8_t src0 =
        -:        -:10117:                  _src[0].i8[_i];
    #####:    #####:10118:               const int8_t src1 =
    #####:    #####:10119:                  _src[1].i8[_i];
        -:        -:10120:
    #####:    #####:10121:            int8_t dst = src0 - src1;
        -:        -:10122:
    #####:    #####:10123:            _dst_val.i8[_i] = dst;
        -:        -:10124:      }
        -:        -:10125:
    #####:    #####:10126:         break;
        -:        -:10127:      }
        -:        -:10128:      case 16: {
        -:        -:10129:         
        -:        -:10130:   
        -:        -:10131:
        -:        -:10132:                  
    #####:    #####:10133:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10134:               const int16_t src0 =
        -:        -:10135:                  _src[0].i16[_i];
    #####:    #####:10136:               const int16_t src1 =
    #####:    #####:10137:                  _src[1].i16[_i];
        -:        -:10138:
    #####:    #####:10139:            int16_t dst = src0 - src1;
        -:        -:10140:
    #####:    #####:10141:            _dst_val.i16[_i] = dst;
        -:        -:10142:      }
        -:        -:10143:
    #####:    #####:10144:         break;
        -:        -:10145:      }
        -:        -:10146:      case 32: {
        -:        -:10147:         
        -:        -:10148:   
        -:        -:10149:
        -:        -:10150:                  
    #####:    #####:10151:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10152:               const int32_t src0 =
        -:        -:10153:                  _src[0].i32[_i];
    #####:    #####:10154:               const int32_t src1 =
    #####:    #####:10155:                  _src[1].i32[_i];
        -:        -:10156:
    #####:    #####:10157:            int32_t dst = src0 - src1;
        -:        -:10158:
    #####:    #####:10159:            _dst_val.i32[_i] = dst;
        -:        -:10160:      }
        -:        -:10161:
    #####:    #####:10162:         break;
        -:        -:10163:      }
        -:        -:10164:      case 64: {
        -:        -:10165:         
        -:        -:10166:   
        -:        -:10167:
        -:        -:10168:                  
    #####:    #####:10169:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10170:               const int64_t src0 =
        -:        -:10171:                  _src[0].i64[_i];
    #####:    #####:10172:               const int64_t src1 =
    #####:    #####:10173:                  _src[1].i64[_i];
        -:        -:10174:
    #####:    #####:10175:            int64_t dst = src0 - src1;
        -:        -:10176:
    #####:    #####:10177:            _dst_val.i64[_i] = dst;
        -:        -:10178:      }
        -:        -:10179:
    #####:    #####:10180:         break;
        -:        -:10181:      }
        -:        -:10182:
        -:        -:10183:      default:
    #####:    #####:10184:         unreachable("unknown bit width");
        -:        -:10185:      }
        -:        -:10186:
    #####:    #####:10187:   return _dst_val;
        -:        -:10188:}
        -:        -:10189:static nir_const_value
    #####:    #####:10190:evaluate_ixor(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10191:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10192:{
    #####:    #####:10193:   nir_const_value _dst_val = { {0, } };
        -:        -:10194:
    #####:    #####:10195:      switch (bit_size) {
        -:        -:10196:      case 8: {
        -:        -:10197:         
        -:        -:10198:   
        -:        -:10199:
        -:        -:10200:                  
    #####:    #####:10201:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10202:               const uint8_t src0 =
        -:        -:10203:                  _src[0].u8[_i];
    #####:    #####:10204:               const uint8_t src1 =
    #####:    #####:10205:                  _src[1].u8[_i];
        -:        -:10206:
    #####:    #####:10207:            uint8_t dst = src0 ^ src1;
        -:        -:10208:
    #####:    #####:10209:            _dst_val.u8[_i] = dst;
        -:        -:10210:      }
        -:        -:10211:
    #####:    #####:10212:         break;
        -:        -:10213:      }
        -:        -:10214:      case 16: {
        -:        -:10215:         
        -:        -:10216:   
        -:        -:10217:
        -:        -:10218:                  
    #####:    #####:10219:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10220:               const uint16_t src0 =
        -:        -:10221:                  _src[0].u16[_i];
    #####:    #####:10222:               const uint16_t src1 =
    #####:    #####:10223:                  _src[1].u16[_i];
        -:        -:10224:
    #####:    #####:10225:            uint16_t dst = src0 ^ src1;
        -:        -:10226:
    #####:    #####:10227:            _dst_val.u16[_i] = dst;
        -:        -:10228:      }
        -:        -:10229:
    #####:    #####:10230:         break;
        -:        -:10231:      }
        -:        -:10232:      case 32: {
        -:        -:10233:         
        -:        -:10234:   
        -:        -:10235:
        -:        -:10236:                  
    #####:    #####:10237:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10238:               const uint32_t src0 =
        -:        -:10239:                  _src[0].u32[_i];
    #####:    #####:10240:               const uint32_t src1 =
    #####:    #####:10241:                  _src[1].u32[_i];
        -:        -:10242:
    #####:    #####:10243:            uint32_t dst = src0 ^ src1;
        -:        -:10244:
    #####:    #####:10245:            _dst_val.u32[_i] = dst;
        -:        -:10246:      }
        -:        -:10247:
    #####:    #####:10248:         break;
        -:        -:10249:      }
        -:        -:10250:      case 64: {
        -:        -:10251:         
        -:        -:10252:   
        -:        -:10253:
        -:        -:10254:                  
    #####:    #####:10255:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10256:               const uint64_t src0 =
        -:        -:10257:                  _src[0].u64[_i];
    #####:    #####:10258:               const uint64_t src1 =
    #####:    #####:10259:                  _src[1].u64[_i];
        -:        -:10260:
    #####:    #####:10261:            uint64_t dst = src0 ^ src1;
        -:        -:10262:
    #####:    #####:10263:            _dst_val.u64[_i] = dst;
        -:        -:10264:      }
        -:        -:10265:
    #####:    #####:10266:         break;
        -:        -:10267:      }
        -:        -:10268:
        -:        -:10269:      default:
    #####:    #####:10270:         unreachable("unknown bit width");
        -:        -:10271:      }
        -:        -:10272:
    #####:    #####:10273:   return _dst_val;
        -:        -:10274:}
        -:        -:10275:static nir_const_value
    #####:    #####:10276:evaluate_ldexp(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10277:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10278:{
    #####:    #####:10279:   nir_const_value _dst_val = { {0, } };
        -:        -:10280:
    #####:    #####:10281:      switch (bit_size) {
        -:        -:10282:      case 16: {
        -:        -:10283:         
        -:        -:10284:   
        -:        -:10285:
        -:        -:10286:                  
    #####:    #####:10287:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10288:               const float src0 =
    #####:    #####:10289:                  _mesa_half_to_float(_src[0].u16[_i]);
    #####:    #####:10290:               const int32_t src1 =
    #####:    #####:10291:                  _src[1].i32[_i];
        -:        -:10292:
        -:        -:10293:            float16_t dst;
        -:        -:10294:
        -:        -:10295:            
    #####:    #####:10296:dst = (bit_size == 64) ? ldexp(src0, src1) : ldexpf(src0, src1);
        -:        -:10297:/* flush denormals to zero. */
    #####:    #####:10298:if (!isnormal(dst))
    #####:    #####:10299:   dst = copysignf(0.0f, src0);
        -:        -:10300:
        -:        -:10301:
    #####:    #####:10302:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:10303:      }
        -:        -:10304:
    #####:    #####:10305:         break;
        -:        -:10306:      }
        -:        -:10307:      case 32: {
        -:        -:10308:         
        -:        -:10309:   
        -:        -:10310:
        -:        -:10311:                  
    #####:    #####:10312:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10313:               const float32_t src0 =
        -:        -:10314:                  _src[0].f32[_i];
    #####:    #####:10315:               const int32_t src1 =
    #####:    #####:10316:                  _src[1].i32[_i];
        -:        -:10317:
        -:        -:10318:            float32_t dst;
        -:        -:10319:
        -:        -:10320:            
    #####:    #####:10321:dst = (bit_size == 64) ? ldexp(src0, src1) : ldexpf(src0, src1);
        -:        -:10322:/* flush denormals to zero. */
    #####:    #####:10323:if (!isnormal(dst))
    #####:    #####:10324:   dst = copysignf(0.0f, src0);
        -:        -:10325:
        -:        -:10326:
    #####:    #####:10327:            _dst_val.f32[_i] = dst;
        -:        -:10328:      }
        -:        -:10329:
    #####:    #####:10330:         break;
        -:        -:10331:      }
        -:        -:10332:      case 64: {
        -:        -:10333:         
        -:        -:10334:   
        -:        -:10335:
        -:        -:10336:                  
    #####:    #####:10337:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10338:               const float64_t src0 =
        -:        -:10339:                  _src[0].f64[_i];
    #####:    #####:10340:               const int32_t src1 =
    #####:    #####:10341:                  _src[1].i32[_i];
        -:        -:10342:
        -:        -:10343:            float64_t dst;
        -:        -:10344:
        -:        -:10345:            
    #####:    #####:10346:dst = (bit_size == 64) ? ldexp(src0, src1) : ldexpf(src0, src1);
        -:        -:10347:/* flush denormals to zero. */
    #####:    #####:10348:if (!isnormal(dst))
    #####:    #####:10349:   dst = copysignf(0.0f, src0);
        -:        -:10350:
        -:        -:10351:
    #####:    #####:10352:            _dst_val.f64[_i] = dst;
        -:        -:10353:      }
        -:        -:10354:
    #####:    #####:10355:         break;
        -:        -:10356:      }
        -:        -:10357:
        -:        -:10358:      default:
    #####:    #####:10359:         unreachable("unknown bit width");
        -:        -:10360:      }
        -:        -:10361:
    #####:    #####:10362:   return _dst_val;
        -:        -:10363:}
        -:        -:10364:static nir_const_value
    #####:    #####:10365:evaluate_pack_64_2x32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10366:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10367:{
    #####:    #####:10368:   nir_const_value _dst_val = { {0, } };
        -:        -:10369:
        -:        -:10370:      
        -:        -:10371:   
        -:        -:10372:
        -:        -:10373:
    #####:    #####:10374:      const struct uint32_vec src0 = {
    #####:    #####:10375:            _src[0].u32[0],
    #####:    #####:10376:            _src[0].u32[1],
        -:        -:10377:         0,
        -:        -:10378:         0,
        -:        -:10379:      };
        -:        -:10380:
        -:        -:10381:      struct uint64_vec dst;
        -:        -:10382:
    #####:    #####:10383:         dst.x = src0.x | ((uint64_t)src0.y << 32);
        -:        -:10384:
    #####:    #####:10385:            _dst_val.u64[0] = dst.x;
        -:        -:10386:
        -:        -:10387:
    #####:    #####:10388:   return _dst_val;
        -:        -:10389:}
        -:        -:10390:static nir_const_value
    #####:    #####:10391:evaluate_pack_64_2x32_split(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10392:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10393:{
    #####:    #####:10394:   nir_const_value _dst_val = { {0, } };
        -:        -:10395:
        -:        -:10396:      
        -:        -:10397:   
        -:        -:10398:
        -:        -:10399:                  
    #####:    #####:10400:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10401:               const uint32_t src0 =
        -:        -:10402:                  _src[0].u32[_i];
    #####:    #####:10403:               const uint32_t src1 =
    #####:    #####:10404:                  _src[1].u32[_i];
        -:        -:10405:
    #####:    #####:10406:            uint64_t dst = src0 | ((uint64_t)src1 << 32);
        -:        -:10407:
    #####:    #####:10408:            _dst_val.u64[_i] = dst;
        -:        -:10409:      }
        -:        -:10410:
        -:        -:10411:
    #####:    #####:10412:   return _dst_val;
        -:        -:10413:}
        -:        -:10414:static nir_const_value
    #####:    #####:10415:evaluate_pack_half_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10416:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10417:{
    #####:    #####:10418:   nir_const_value _dst_val = { {0, } };
        -:        -:10419:
        -:        -:10420:      
        -:        -:10421:   
        -:        -:10422:
        -:        -:10423:
    #####:    #####:10424:      const struct float32_vec src0 = {
    #####:    #####:10425:            _src[0].f32[0],
    #####:    #####:10426:            _src[0].f32[1],
        -:        -:10427:         0,
        -:        -:10428:         0,
        -:        -:10429:      };
        -:        -:10430:
        -:        -:10431:      struct uint32_vec dst;
        -:        -:10432:
        -:        -:10433:         
    #####:    #####:10434:dst.x = (uint32_t) pack_half_1x16(src0.x);
    #####:    #####:10435:dst.x |= ((uint32_t) pack_half_1x16(src0.y)) << 16;
        -:        -:10436:
        -:        -:10437:
    #####:    #####:10438:            _dst_val.u32[0] = dst.x;
        -:        -:10439:
        -:        -:10440:
    #####:    #####:10441:   return _dst_val;
        -:        -:10442:}
        -:        -:10443:static nir_const_value
    #####:    #####:10444:evaluate_pack_half_2x16_split(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10445:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10446:{
    #####:    #####:10447:   nir_const_value _dst_val = { {0, } };
        -:        -:10448:
        -:        -:10449:      
        -:        -:10450:   
        -:        -:10451:
        -:        -:10452:
    #####:    #####:10453:      const struct float32_vec src0 = {
    #####:    #####:10454:            _src[0].f32[0],
        -:        -:10455:         0,
        -:        -:10456:         0,
        -:        -:10457:         0,
        -:        -:10458:      };
        -:        -:10459:
    #####:    #####:10460:      const struct float32_vec src1 = {
    #####:    #####:10461:            _src[1].f32[0],
        -:        -:10462:         0,
        -:        -:10463:         0,
        -:        -:10464:         0,
        -:        -:10465:      };
        -:        -:10466:
        -:        -:10467:      struct uint32_vec dst;
        -:        -:10468:
    #####:    #####:10469:         dst.x = dst.y = dst.z = dst.w = pack_half_1x16(src0.x) | (pack_half_1x16(src1.x) << 16);
        -:        -:10470:
    #####:    #####:10471:            _dst_val.u32[0] = dst.x;
        -:        -:10472:
        -:        -:10473:
    #####:    #####:10474:   return _dst_val;
        -:        -:10475:}
        -:        -:10476:static nir_const_value
    #####:    #####:10477:evaluate_pack_snorm_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10478:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10479:{
    #####:    #####:10480:   nir_const_value _dst_val = { {0, } };
        -:        -:10481:
        -:        -:10482:      
        -:        -:10483:   
        -:        -:10484:
        -:        -:10485:
    #####:    #####:10486:      const struct float32_vec src0 = {
    #####:    #####:10487:            _src[0].f32[0],
    #####:    #####:10488:            _src[0].f32[1],
        -:        -:10489:         0,
        -:        -:10490:         0,
        -:        -:10491:      };
        -:        -:10492:
        -:        -:10493:      struct uint32_vec dst;
        -:        -:10494:
        -:        -:10495:         
    #####:    #####:10496:dst.x = (uint32_t) pack_snorm_1x16(src0.x);
    #####:    #####:10497:dst.x |= ((uint32_t) pack_snorm_1x16(src0.y)) << 16;
        -:        -:10498:
        -:        -:10499:
    #####:    #####:10500:            _dst_val.u32[0] = dst.x;
        -:        -:10501:
        -:        -:10502:
    #####:    #####:10503:   return _dst_val;
        -:        -:10504:}
        -:        -:10505:static nir_const_value
    #####:    #####:10506:evaluate_pack_snorm_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10507:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10508:{
    #####:    #####:10509:   nir_const_value _dst_val = { {0, } };
        -:        -:10510:
        -:        -:10511:      
        -:        -:10512:   
        -:        -:10513:
        -:        -:10514:
    #####:    #####:10515:      const struct float32_vec src0 = {
    #####:    #####:10516:            _src[0].f32[0],
    #####:    #####:10517:            _src[0].f32[1],
    #####:    #####:10518:            _src[0].f32[2],
    #####:    #####:10519:            _src[0].f32[3],
        -:        -:10520:      };
        -:        -:10521:
        -:        -:10522:      struct uint32_vec dst;
        -:        -:10523:
        -:        -:10524:         
    #####:    #####:10525:dst.x = (uint32_t) pack_snorm_1x8(src0.x);
    #####:    #####:10526:dst.x |= ((uint32_t) pack_snorm_1x8(src0.y)) << 8;
    #####:    #####:10527:dst.x |= ((uint32_t) pack_snorm_1x8(src0.z)) << 16;
    #####:    #####:10528:dst.x |= ((uint32_t) pack_snorm_1x8(src0.w)) << 24;
        -:        -:10529:
        -:        -:10530:
    #####:    #####:10531:            _dst_val.u32[0] = dst.x;
        -:        -:10532:
        -:        -:10533:
    #####:    #####:10534:   return _dst_val;
        -:        -:10535:}
        -:        -:10536:static nir_const_value
    #####:    #####:10537:evaluate_pack_unorm_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10538:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10539:{
    #####:    #####:10540:   nir_const_value _dst_val = { {0, } };
        -:        -:10541:
        -:        -:10542:      
        -:        -:10543:   
        -:        -:10544:
        -:        -:10545:
    #####:    #####:10546:      const struct float32_vec src0 = {
    #####:    #####:10547:            _src[0].f32[0],
    #####:    #####:10548:            _src[0].f32[1],
        -:        -:10549:         0,
        -:        -:10550:         0,
        -:        -:10551:      };
        -:        -:10552:
        -:        -:10553:      struct uint32_vec dst;
        -:        -:10554:
        -:        -:10555:         
    #####:    #####:10556:dst.x = (uint32_t) pack_unorm_1x16(src0.x);
    #####:    #####:10557:dst.x |= ((uint32_t) pack_unorm_1x16(src0.y)) << 16;
        -:        -:10558:
        -:        -:10559:
    #####:    #####:10560:            _dst_val.u32[0] = dst.x;
        -:        -:10561:
        -:        -:10562:
    #####:    #####:10563:   return _dst_val;
        -:        -:10564:}
        -:        -:10565:static nir_const_value
    #####:    #####:10566:evaluate_pack_unorm_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10567:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10568:{
    #####:    #####:10569:   nir_const_value _dst_val = { {0, } };
        -:        -:10570:
        -:        -:10571:      
        -:        -:10572:   
        -:        -:10573:
        -:        -:10574:
    #####:    #####:10575:      const struct float32_vec src0 = {
    #####:    #####:10576:            _src[0].f32[0],
    #####:    #####:10577:            _src[0].f32[1],
    #####:    #####:10578:            _src[0].f32[2],
    #####:    #####:10579:            _src[0].f32[3],
        -:        -:10580:      };
        -:        -:10581:
        -:        -:10582:      struct uint32_vec dst;
        -:        -:10583:
        -:        -:10584:         
    #####:    #####:10585:dst.x = (uint32_t) pack_unorm_1x8(src0.x);
    #####:    #####:10586:dst.x |= ((uint32_t) pack_unorm_1x8(src0.y)) << 8;
    #####:    #####:10587:dst.x |= ((uint32_t) pack_unorm_1x8(src0.z)) << 16;
    #####:    #####:10588:dst.x |= ((uint32_t) pack_unorm_1x8(src0.w)) << 24;
        -:        -:10589:
        -:        -:10590:
    #####:    #####:10591:            _dst_val.u32[0] = dst.x;
        -:        -:10592:
        -:        -:10593:
    #####:    #####:10594:   return _dst_val;
        -:        -:10595:}
        -:        -:10596:static nir_const_value
    #####:    #####:10597:evaluate_pack_uvec2_to_uint(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10598:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10599:{
    #####:    #####:10600:   nir_const_value _dst_val = { {0, } };
        -:        -:10601:
        -:        -:10602:      
        -:        -:10603:   
        -:        -:10604:
        -:        -:10605:
    #####:    #####:10606:      const struct uint32_vec src0 = {
    #####:    #####:10607:            _src[0].u32[0],
    #####:    #####:10608:            _src[0].u32[1],
        -:        -:10609:         0,
        -:        -:10610:         0,
        -:        -:10611:      };
        -:        -:10612:
        -:        -:10613:      struct uint32_vec dst;
        -:        -:10614:
        -:        -:10615:         
    #####:    #####:10616:dst.x = (src0.x & 0xffff) | (src0.y << 16);
        -:        -:10617:
        -:        -:10618:
    #####:    #####:10619:            _dst_val.u32[0] = dst.x;
        -:        -:10620:
        -:        -:10621:
    #####:    #####:10622:   return _dst_val;
        -:        -:10623:}
        -:        -:10624:static nir_const_value
    #####:    #####:10625:evaluate_pack_uvec4_to_uint(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10626:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10627:{
    #####:    #####:10628:   nir_const_value _dst_val = { {0, } };
        -:        -:10629:
        -:        -:10630:      
        -:        -:10631:   
        -:        -:10632:
        -:        -:10633:
    #####:    #####:10634:      const struct uint32_vec src0 = {
    #####:    #####:10635:            _src[0].u32[0],
    #####:    #####:10636:            _src[0].u32[1],
    #####:    #####:10637:            _src[0].u32[2],
    #####:    #####:10638:            _src[0].u32[3],
        -:        -:10639:      };
        -:        -:10640:
        -:        -:10641:      struct uint32_vec dst;
        -:        -:10642:
        -:        -:10643:         
    #####:    #####:10644:dst.x = (src0.x <<  0) |
    #####:    #####:10645:        (src0.y <<  8) |
    #####:    #####:10646:        (src0.z << 16) |
    #####:    #####:10647:        (src0.w << 24);
        -:        -:10648:
        -:        -:10649:
    #####:    #####:10650:            _dst_val.u32[0] = dst.x;
        -:        -:10651:
        -:        -:10652:
    #####:    #####:10653:   return _dst_val;
        -:        -:10654:}
        -:        -:10655:static nir_const_value
    #####:    #####:10656:evaluate_seq(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10657:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10658:{
    #####:    #####:10659:   nir_const_value _dst_val = { {0, } };
        -:        -:10660:
        -:        -:10661:      
        -:        -:10662:   
        -:        -:10663:
        -:        -:10664:                  
    #####:    #####:10665:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10666:               const float32_t src0 =
        -:        -:10667:                  _src[0].f32[_i];
    #####:    #####:10668:               const float32_t src1 =
    #####:    #####:10669:                  _src[1].f32[_i];
        -:        -:10670:
    #####:    #####:10671:            float32_t dst = (src0 == src1) ? 1.0f : 0.0f;
        -:        -:10672:
    #####:    #####:10673:            _dst_val.f32[_i] = dst;
        -:        -:10674:      }
        -:        -:10675:
        -:        -:10676:
    #####:    #####:10677:   return _dst_val;
        -:        -:10678:}
        -:        -:10679:static nir_const_value
    #####:    #####:10680:evaluate_sge(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10681:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10682:{
    #####:    #####:10683:   nir_const_value _dst_val = { {0, } };
        -:        -:10684:
        -:        -:10685:      
        -:        -:10686:   
        -:        -:10687:
        -:        -:10688:                  
    #####:    #####:10689:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10690:               const float32_t src0 =
        -:        -:10691:                  _src[0].f32[_i];
    #####:    #####:10692:               const float32_t src1 =
    #####:    #####:10693:                  _src[1].f32[_i];
        -:        -:10694:
    #####:    #####:10695:            float32_t dst = (src0 >= src1) ? 1.0f : 0.0f;
        -:        -:10696:
    #####:    #####:10697:            _dst_val.f32[_i] = dst;
        -:        -:10698:      }
        -:        -:10699:
        -:        -:10700:
    #####:    #####:10701:   return _dst_val;
        -:        -:10702:}
        -:        -:10703:static nir_const_value
    #####:    #####:10704:evaluate_slt(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10705:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10706:{
    #####:    #####:10707:   nir_const_value _dst_val = { {0, } };
        -:        -:10708:
        -:        -:10709:      
        -:        -:10710:   
        -:        -:10711:
        -:        -:10712:                  
    #####:    #####:10713:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10714:               const float32_t src0 =
        -:        -:10715:                  _src[0].f32[_i];
    #####:    #####:10716:               const float32_t src1 =
    #####:    #####:10717:                  _src[1].f32[_i];
        -:        -:10718:
    #####:    #####:10719:            float32_t dst = (src0 < src1) ? 1.0f : 0.0f;
        -:        -:10720:
    #####:    #####:10721:            _dst_val.f32[_i] = dst;
        -:        -:10722:      }
        -:        -:10723:
        -:        -:10724:
    #####:    #####:10725:   return _dst_val;
        -:        -:10726:}
        -:        -:10727:static nir_const_value
    #####:    #####:10728:evaluate_sne(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10729:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10730:{
    #####:    #####:10731:   nir_const_value _dst_val = { {0, } };
        -:        -:10732:
        -:        -:10733:      
        -:        -:10734:   
        -:        -:10735:
        -:        -:10736:                  
    #####:    #####:10737:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10738:               const float32_t src0 =
        -:        -:10739:                  _src[0].f32[_i];
    #####:    #####:10740:               const float32_t src1 =
    #####:    #####:10741:                  _src[1].f32[_i];
        -:        -:10742:
    #####:    #####:10743:            float32_t dst = (src0 != src1) ? 1.0f : 0.0f;
        -:        -:10744:
    #####:    #####:10745:            _dst_val.f32[_i] = dst;
        -:        -:10746:      }
        -:        -:10747:
        -:        -:10748:
    #####:    #####:10749:   return _dst_val;
        -:        -:10750:}
        -:        -:10751:static nir_const_value
    #####:    #####:10752:evaluate_u2f16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10753:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10754:{
    #####:    #####:10755:   nir_const_value _dst_val = { {0, } };
        -:        -:10756:
    #####:    #####:10757:      switch (bit_size) {
        -:        -:10758:      case 8: {
        -:        -:10759:         
        -:        -:10760:   
        -:        -:10761:
        -:        -:10762:         
    #####:    #####:10763:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10764:               const uint8_t src0 =
        -:        -:10765:                  _src[0].u8[_i];
        -:        -:10766:
    #####:    #####:10767:            float16_t dst = src0;
        -:        -:10768:
    #####:    #####:10769:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:10770:      }
        -:        -:10771:
    #####:    #####:10772:         break;
        -:        -:10773:      }
        -:        -:10774:      case 16: {
        -:        -:10775:         
        -:        -:10776:   
        -:        -:10777:
        -:        -:10778:         
    #####:    #####:10779:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10780:               const uint16_t src0 =
        -:        -:10781:                  _src[0].u16[_i];
        -:        -:10782:
    #####:    #####:10783:            float16_t dst = src0;
        -:        -:10784:
    #####:    #####:10785:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:10786:      }
        -:        -:10787:
    #####:    #####:10788:         break;
        -:        -:10789:      }
        -:        -:10790:      case 32: {
        -:        -:10791:         
        -:        -:10792:   
        -:        -:10793:
        -:        -:10794:         
    #####:    #####:10795:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10796:               const uint32_t src0 =
        -:        -:10797:                  _src[0].u32[_i];
        -:        -:10798:
    #####:    #####:10799:            float16_t dst = src0;
        -:        -:10800:
    #####:    #####:10801:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:10802:      }
        -:        -:10803:
    #####:    #####:10804:         break;
        -:        -:10805:      }
        -:        -:10806:      case 64: {
        -:        -:10807:         
        -:        -:10808:   
        -:        -:10809:
        -:        -:10810:         
    #####:    #####:10811:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10812:               const uint64_t src0 =
        -:        -:10813:                  _src[0].u64[_i];
        -:        -:10814:
    #####:    #####:10815:            float16_t dst = src0;
        -:        -:10816:
    #####:    #####:10817:            _dst_val.u16[_i] = _mesa_float_to_half(dst);
        -:        -:10818:      }
        -:        -:10819:
    #####:    #####:10820:         break;
        -:        -:10821:      }
        -:        -:10822:
        -:        -:10823:      default:
    #####:    #####:10824:         unreachable("unknown bit width");
        -:        -:10825:      }
        -:        -:10826:
    #####:    #####:10827:   return _dst_val;
        -:        -:10828:}
        -:        -:10829:static nir_const_value
    #####:    #####:10830:evaluate_u2f32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10831:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10832:{
    #####:    #####:10833:   nir_const_value _dst_val = { {0, } };
        -:        -:10834:
    #####:    #####:10835:      switch (bit_size) {
        -:        -:10836:      case 8: {
        -:        -:10837:         
        -:        -:10838:   
        -:        -:10839:
        -:        -:10840:         
    #####:    #####:10841:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10842:               const uint8_t src0 =
        -:        -:10843:                  _src[0].u8[_i];
        -:        -:10844:
    #####:    #####:10845:            float32_t dst = src0;
        -:        -:10846:
    #####:    #####:10847:            _dst_val.f32[_i] = dst;
        -:        -:10848:      }
        -:        -:10849:
    #####:    #####:10850:         break;
        -:        -:10851:      }
        -:        -:10852:      case 16: {
        -:        -:10853:         
        -:        -:10854:   
        -:        -:10855:
        -:        -:10856:         
    #####:    #####:10857:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10858:               const uint16_t src0 =
        -:        -:10859:                  _src[0].u16[_i];
        -:        -:10860:
    #####:    #####:10861:            float32_t dst = src0;
        -:        -:10862:
    #####:    #####:10863:            _dst_val.f32[_i] = dst;
        -:        -:10864:      }
        -:        -:10865:
    #####:    #####:10866:         break;
        -:        -:10867:      }
        -:        -:10868:      case 32: {
        -:        -:10869:         
        -:        -:10870:   
        -:        -:10871:
        -:        -:10872:         
    #####:    #####:10873:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10874:               const uint32_t src0 =
        -:        -:10875:                  _src[0].u32[_i];
        -:        -:10876:
    #####:    #####:10877:            float32_t dst = src0;
        -:        -:10878:
    #####:    #####:10879:            _dst_val.f32[_i] = dst;
        -:        -:10880:      }
        -:        -:10881:
    #####:    #####:10882:         break;
        -:        -:10883:      }
        -:        -:10884:      case 64: {
        -:        -:10885:         
        -:        -:10886:   
        -:        -:10887:
        -:        -:10888:         
    #####:    #####:10889:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10890:               const uint64_t src0 =
        -:        -:10891:                  _src[0].u64[_i];
        -:        -:10892:
    #####:    #####:10893:            float32_t dst = src0;
        -:        -:10894:
    #####:    #####:10895:            _dst_val.f32[_i] = dst;
        -:        -:10896:      }
        -:        -:10897:
    #####:    #####:10898:         break;
        -:        -:10899:      }
        -:        -:10900:
        -:        -:10901:      default:
    #####:    #####:10902:         unreachable("unknown bit width");
        -:        -:10903:      }
        -:        -:10904:
    #####:    #####:10905:   return _dst_val;
        -:        -:10906:}
        -:        -:10907:static nir_const_value
    #####:    #####:10908:evaluate_u2f64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10909:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10910:{
    #####:    #####:10911:   nir_const_value _dst_val = { {0, } };
        -:        -:10912:
    #####:    #####:10913:      switch (bit_size) {
        -:        -:10914:      case 8: {
        -:        -:10915:         
        -:        -:10916:   
        -:        -:10917:
        -:        -:10918:         
    #####:    #####:10919:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10920:               const uint8_t src0 =
        -:        -:10921:                  _src[0].u8[_i];
        -:        -:10922:
    #####:    #####:10923:            float64_t dst = src0;
        -:        -:10924:
    #####:    #####:10925:            _dst_val.f64[_i] = dst;
        -:        -:10926:      }
        -:        -:10927:
    #####:    #####:10928:         break;
        -:        -:10929:      }
        -:        -:10930:      case 16: {
        -:        -:10931:         
        -:        -:10932:   
        -:        -:10933:
        -:        -:10934:         
    #####:    #####:10935:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10936:               const uint16_t src0 =
        -:        -:10937:                  _src[0].u16[_i];
        -:        -:10938:
    #####:    #####:10939:            float64_t dst = src0;
        -:        -:10940:
    #####:    #####:10941:            _dst_val.f64[_i] = dst;
        -:        -:10942:      }
        -:        -:10943:
    #####:    #####:10944:         break;
        -:        -:10945:      }
        -:        -:10946:      case 32: {
        -:        -:10947:         
        -:        -:10948:   
        -:        -:10949:
        -:        -:10950:         
    #####:    #####:10951:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10952:               const uint32_t src0 =
        -:        -:10953:                  _src[0].u32[_i];
        -:        -:10954:
    #####:    #####:10955:            float64_t dst = src0;
        -:        -:10956:
    #####:    #####:10957:            _dst_val.f64[_i] = dst;
        -:        -:10958:      }
        -:        -:10959:
    #####:    #####:10960:         break;
        -:        -:10961:      }
        -:        -:10962:      case 64: {
        -:        -:10963:         
        -:        -:10964:   
        -:        -:10965:
        -:        -:10966:         
    #####:    #####:10967:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10968:               const uint64_t src0 =
        -:        -:10969:                  _src[0].u64[_i];
        -:        -:10970:
    #####:    #####:10971:            float64_t dst = src0;
        -:        -:10972:
    #####:    #####:10973:            _dst_val.f64[_i] = dst;
        -:        -:10974:      }
        -:        -:10975:
    #####:    #####:10976:         break;
        -:        -:10977:      }
        -:        -:10978:
        -:        -:10979:      default:
    #####:    #####:10980:         unreachable("unknown bit width");
        -:        -:10981:      }
        -:        -:10982:
    #####:    #####:10983:   return _dst_val;
        -:        -:10984:}
        -:        -:10985:static nir_const_value
    #####:    #####:10986:evaluate_u2u16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:10987:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:10988:{
    #####:    #####:10989:   nir_const_value _dst_val = { {0, } };
        -:        -:10990:
    #####:    #####:10991:      switch (bit_size) {
        -:        -:10992:      case 8: {
        -:        -:10993:         
        -:        -:10994:   
        -:        -:10995:
        -:        -:10996:         
    #####:    #####:10997:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:10998:               const uint8_t src0 =
        -:        -:10999:                  _src[0].u8[_i];
        -:        -:11000:
    #####:    #####:11001:            uint16_t dst = src0;
        -:        -:11002:
    #####:    #####:11003:            _dst_val.u16[_i] = dst;
        -:        -:11004:      }
        -:        -:11005:
    #####:    #####:11006:         break;
        -:        -:11007:      }
        -:        -:11008:      case 16: {
        -:        -:11009:         
        -:        -:11010:   
        -:        -:11011:
        -:        -:11012:         
    #####:    #####:11013:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11014:               const uint16_t src0 =
        -:        -:11015:                  _src[0].u16[_i];
        -:        -:11016:
    #####:    #####:11017:            uint16_t dst = src0;
        -:        -:11018:
    #####:    #####:11019:            _dst_val.u16[_i] = dst;
        -:        -:11020:      }
        -:        -:11021:
    #####:    #####:11022:         break;
        -:        -:11023:      }
        -:        -:11024:      case 32: {
        -:        -:11025:         
        -:        -:11026:   
        -:        -:11027:
        -:        -:11028:         
    #####:    #####:11029:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11030:               const uint32_t src0 =
        -:        -:11031:                  _src[0].u32[_i];
        -:        -:11032:
    #####:    #####:11033:            uint16_t dst = src0;
        -:        -:11034:
    #####:    #####:11035:            _dst_val.u16[_i] = dst;
        -:        -:11036:      }
        -:        -:11037:
    #####:    #####:11038:         break;
        -:        -:11039:      }
        -:        -:11040:      case 64: {
        -:        -:11041:         
        -:        -:11042:   
        -:        -:11043:
        -:        -:11044:         
    #####:    #####:11045:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11046:               const uint64_t src0 =
        -:        -:11047:                  _src[0].u64[_i];
        -:        -:11048:
    #####:    #####:11049:            uint16_t dst = src0;
        -:        -:11050:
    #####:    #####:11051:            _dst_val.u16[_i] = dst;
        -:        -:11052:      }
        -:        -:11053:
    #####:    #####:11054:         break;
        -:        -:11055:      }
        -:        -:11056:
        -:        -:11057:      default:
    #####:    #####:11058:         unreachable("unknown bit width");
        -:        -:11059:      }
        -:        -:11060:
    #####:    #####:11061:   return _dst_val;
        -:        -:11062:}
        -:        -:11063:static nir_const_value
    #####:    #####:11064:evaluate_u2u32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11065:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11066:{
    #####:    #####:11067:   nir_const_value _dst_val = { {0, } };
        -:        -:11068:
    #####:    #####:11069:      switch (bit_size) {
        -:        -:11070:      case 8: {
        -:        -:11071:         
        -:        -:11072:   
        -:        -:11073:
        -:        -:11074:         
    #####:    #####:11075:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11076:               const uint8_t src0 =
        -:        -:11077:                  _src[0].u8[_i];
        -:        -:11078:
    #####:    #####:11079:            uint32_t dst = src0;
        -:        -:11080:
    #####:    #####:11081:            _dst_val.u32[_i] = dst;
        -:        -:11082:      }
        -:        -:11083:
    #####:    #####:11084:         break;
        -:        -:11085:      }
        -:        -:11086:      case 16: {
        -:        -:11087:         
        -:        -:11088:   
        -:        -:11089:
        -:        -:11090:         
    #####:    #####:11091:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11092:               const uint16_t src0 =
        -:        -:11093:                  _src[0].u16[_i];
        -:        -:11094:
    #####:    #####:11095:            uint32_t dst = src0;
        -:        -:11096:
    #####:    #####:11097:            _dst_val.u32[_i] = dst;
        -:        -:11098:      }
        -:        -:11099:
    #####:    #####:11100:         break;
        -:        -:11101:      }
        -:        -:11102:      case 32: {
        -:        -:11103:         
        -:        -:11104:   
        -:        -:11105:
        -:        -:11106:         
    #####:    #####:11107:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11108:               const uint32_t src0 =
        -:        -:11109:                  _src[0].u32[_i];
        -:        -:11110:
    #####:    #####:11111:            uint32_t dst = src0;
        -:        -:11112:
    #####:    #####:11113:            _dst_val.u32[_i] = dst;
        -:        -:11114:      }
        -:        -:11115:
    #####:    #####:11116:         break;
        -:        -:11117:      }
        -:        -:11118:      case 64: {
        -:        -:11119:         
        -:        -:11120:   
        -:        -:11121:
        -:        -:11122:         
    #####:    #####:11123:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11124:               const uint64_t src0 =
        -:        -:11125:                  _src[0].u64[_i];
        -:        -:11126:
    #####:    #####:11127:            uint32_t dst = src0;
        -:        -:11128:
    #####:    #####:11129:            _dst_val.u32[_i] = dst;
        -:        -:11130:      }
        -:        -:11131:
    #####:    #####:11132:         break;
        -:        -:11133:      }
        -:        -:11134:
        -:        -:11135:      default:
    #####:    #####:11136:         unreachable("unknown bit width");
        -:        -:11137:      }
        -:        -:11138:
    #####:    #####:11139:   return _dst_val;
        -:        -:11140:}
        -:        -:11141:static nir_const_value
    #####:    #####:11142:evaluate_u2u64(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11143:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11144:{
    #####:    #####:11145:   nir_const_value _dst_val = { {0, } };
        -:        -:11146:
    #####:    #####:11147:      switch (bit_size) {
        -:        -:11148:      case 8: {
        -:        -:11149:         
        -:        -:11150:   
        -:        -:11151:
        -:        -:11152:         
    #####:    #####:11153:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11154:               const uint8_t src0 =
        -:        -:11155:                  _src[0].u8[_i];
        -:        -:11156:
    #####:    #####:11157:            uint64_t dst = src0;
        -:        -:11158:
    #####:    #####:11159:            _dst_val.u64[_i] = dst;
        -:        -:11160:      }
        -:        -:11161:
    #####:    #####:11162:         break;
        -:        -:11163:      }
        -:        -:11164:      case 16: {
        -:        -:11165:         
        -:        -:11166:   
        -:        -:11167:
        -:        -:11168:         
    #####:    #####:11169:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11170:               const uint16_t src0 =
        -:        -:11171:                  _src[0].u16[_i];
        -:        -:11172:
    #####:    #####:11173:            uint64_t dst = src0;
        -:        -:11174:
    #####:    #####:11175:            _dst_val.u64[_i] = dst;
        -:        -:11176:      }
        -:        -:11177:
    #####:    #####:11178:         break;
        -:        -:11179:      }
        -:        -:11180:      case 32: {
        -:        -:11181:         
        -:        -:11182:   
        -:        -:11183:
        -:        -:11184:         
    #####:    #####:11185:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11186:               const uint32_t src0 =
        -:        -:11187:                  _src[0].u32[_i];
        -:        -:11188:
    #####:    #####:11189:            uint64_t dst = src0;
        -:        -:11190:
    #####:    #####:11191:            _dst_val.u64[_i] = dst;
        -:        -:11192:      }
        -:        -:11193:
    #####:    #####:11194:         break;
        -:        -:11195:      }
        -:        -:11196:      case 64: {
        -:        -:11197:         
        -:        -:11198:   
        -:        -:11199:
        -:        -:11200:         
    #####:    #####:11201:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11202:               const uint64_t src0 =
        -:        -:11203:                  _src[0].u64[_i];
        -:        -:11204:
    #####:    #####:11205:            uint64_t dst = src0;
        -:        -:11206:
    #####:    #####:11207:            _dst_val.u64[_i] = dst;
        -:        -:11208:      }
        -:        -:11209:
    #####:    #####:11210:         break;
        -:        -:11211:      }
        -:        -:11212:
        -:        -:11213:      default:
    #####:    #####:11214:         unreachable("unknown bit width");
        -:        -:11215:      }
        -:        -:11216:
    #####:    #####:11217:   return _dst_val;
        -:        -:11218:}
        -:        -:11219:static nir_const_value
    #####:    #####:11220:evaluate_u2u8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11221:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11222:{
    #####:    #####:11223:   nir_const_value _dst_val = { {0, } };
        -:        -:11224:
    #####:    #####:11225:      switch (bit_size) {
        -:        -:11226:      case 8: {
        -:        -:11227:         
        -:        -:11228:   
        -:        -:11229:
        -:        -:11230:         
    #####:    #####:11231:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11232:               const uint8_t src0 =
        -:        -:11233:                  _src[0].u8[_i];
        -:        -:11234:
    #####:    #####:11235:            uint8_t dst = src0;
        -:        -:11236:
    #####:    #####:11237:            _dst_val.u8[_i] = dst;
        -:        -:11238:      }
        -:        -:11239:
    #####:    #####:11240:         break;
        -:        -:11241:      }
        -:        -:11242:      case 16: {
        -:        -:11243:         
        -:        -:11244:   
        -:        -:11245:
        -:        -:11246:         
    #####:    #####:11247:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11248:               const uint16_t src0 =
        -:        -:11249:                  _src[0].u16[_i];
        -:        -:11250:
    #####:    #####:11251:            uint8_t dst = src0;
        -:        -:11252:
    #####:    #####:11253:            _dst_val.u8[_i] = dst;
        -:        -:11254:      }
        -:        -:11255:
    #####:    #####:11256:         break;
        -:        -:11257:      }
        -:        -:11258:      case 32: {
        -:        -:11259:         
        -:        -:11260:   
        -:        -:11261:
        -:        -:11262:         
    #####:    #####:11263:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11264:               const uint32_t src0 =
        -:        -:11265:                  _src[0].u32[_i];
        -:        -:11266:
    #####:    #####:11267:            uint8_t dst = src0;
        -:        -:11268:
    #####:    #####:11269:            _dst_val.u8[_i] = dst;
        -:        -:11270:      }
        -:        -:11271:
    #####:    #####:11272:         break;
        -:        -:11273:      }
        -:        -:11274:      case 64: {
        -:        -:11275:         
        -:        -:11276:   
        -:        -:11277:
        -:        -:11278:         
    #####:    #####:11279:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11280:               const uint64_t src0 =
        -:        -:11281:                  _src[0].u64[_i];
        -:        -:11282:
    #####:    #####:11283:            uint8_t dst = src0;
        -:        -:11284:
    #####:    #####:11285:            _dst_val.u8[_i] = dst;
        -:        -:11286:      }
        -:        -:11287:
    #####:    #####:11288:         break;
        -:        -:11289:      }
        -:        -:11290:
        -:        -:11291:      default:
    #####:    #####:11292:         unreachable("unknown bit width");
        -:        -:11293:      }
        -:        -:11294:
    #####:    #####:11295:   return _dst_val;
        -:        -:11296:}
        -:        -:11297:static nir_const_value
    #####:    #####:11298:evaluate_uadd_carry(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11299:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11300:{
    #####:    #####:11301:   nir_const_value _dst_val = { {0, } };
        -:        -:11302:
    #####:    #####:11303:      switch (bit_size) {
        -:        -:11304:      case 8: {
        -:        -:11305:         
        -:        -:11306:   
        -:        -:11307:
        -:        -:11308:                  
    #####:    #####:11309:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11310:               const uint8_t src0 =
        -:        -:11311:                  _src[0].u8[_i];
    #####:    #####:11312:               const uint8_t src1 =
    #####:    #####:11313:                  _src[1].u8[_i];
        -:        -:11314:
    #####:    #####:11315:            uint8_t dst = src0 + src1 < src0;
        -:        -:11316:
    #####:    #####:11317:            _dst_val.u8[_i] = dst;
        -:        -:11318:      }
        -:        -:11319:
    #####:    #####:11320:         break;
        -:        -:11321:      }
        -:        -:11322:      case 16: {
        -:        -:11323:         
        -:        -:11324:   
        -:        -:11325:
        -:        -:11326:                  
    #####:    #####:11327:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11328:               const uint16_t src0 =
        -:        -:11329:                  _src[0].u16[_i];
    #####:    #####:11330:               const uint16_t src1 =
    #####:    #####:11331:                  _src[1].u16[_i];
        -:        -:11332:
    #####:    #####:11333:            uint16_t dst = src0 + src1 < src0;
        -:        -:11334:
    #####:    #####:11335:            _dst_val.u16[_i] = dst;
        -:        -:11336:      }
        -:        -:11337:
    #####:    #####:11338:         break;
        -:        -:11339:      }
        -:        -:11340:      case 32: {
        -:        -:11341:         
        -:        -:11342:   
        -:        -:11343:
        -:        -:11344:                  
    #####:    #####:11345:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11346:               const uint32_t src0 =
        -:        -:11347:                  _src[0].u32[_i];
    #####:    #####:11348:               const uint32_t src1 =
    #####:    #####:11349:                  _src[1].u32[_i];
        -:        -:11350:
    #####:    #####:11351:            uint32_t dst = src0 + src1 < src0;
        -:        -:11352:
    #####:    #####:11353:            _dst_val.u32[_i] = dst;
        -:        -:11354:      }
        -:        -:11355:
    #####:    #####:11356:         break;
        -:        -:11357:      }
        -:        -:11358:      case 64: {
        -:        -:11359:         
        -:        -:11360:   
        -:        -:11361:
        -:        -:11362:                  
    #####:    #####:11363:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11364:               const uint64_t src0 =
        -:        -:11365:                  _src[0].u64[_i];
    #####:    #####:11366:               const uint64_t src1 =
    #####:    #####:11367:                  _src[1].u64[_i];
        -:        -:11368:
    #####:    #####:11369:            uint64_t dst = src0 + src1 < src0;
        -:        -:11370:
    #####:    #####:11371:            _dst_val.u64[_i] = dst;
        -:        -:11372:      }
        -:        -:11373:
    #####:    #####:11374:         break;
        -:        -:11375:      }
        -:        -:11376:
        -:        -:11377:      default:
    #####:    #####:11378:         unreachable("unknown bit width");
        -:        -:11379:      }
        -:        -:11380:
    #####:    #####:11381:   return _dst_val;
        -:        -:11382:}
        -:        -:11383:static nir_const_value
    #####:    #####:11384:evaluate_ubfe(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11385:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11386:{
    #####:    #####:11387:   nir_const_value _dst_val = { {0, } };
        -:        -:11388:
        -:        -:11389:      
        -:        -:11390:   
        -:        -:11391:
        -:        -:11392:                           
    #####:    #####:11393:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11394:               const uint32_t src0 =
        -:        -:11395:                  _src[0].u32[_i];
    #####:    #####:11396:               const int32_t src1 =
    #####:    #####:11397:                  _src[1].i32[_i];
    #####:    #####:11398:               const int32_t src2 =
    #####:    #####:11399:                  _src[2].i32[_i];
        -:        -:11400:
        -:        -:11401:            uint32_t dst;
        -:        -:11402:
        -:        -:11403:            
    #####:    #####:11404:unsigned base = src0;
    #####:    #####:11405:int offset = src1, bits = src2;
    #####:    #####:11406:if (bits == 0) {
    #####:    #####:11407:   dst = 0;
    #####:    #####:11408:} else if (bits < 0 || offset < 0) {
    #####:    #####:11409:   dst = 0; /* undefined */
    #####:    #####:11410:} else if (offset + bits < 32) {
    #####:    #####:11411:   dst = (base << (32 - bits - offset)) >> (32 - bits);
        -:        -:11412:} else {
    #####:    #####:11413:   dst = base >> offset;
        -:        -:11414:}
        -:        -:11415:
        -:        -:11416:
    #####:    #####:11417:            _dst_val.u32[_i] = dst;
        -:        -:11418:      }
        -:        -:11419:
        -:        -:11420:
    #####:    #####:11421:   return _dst_val;
        -:        -:11422:}
        -:        -:11423:static nir_const_value
    #####:    #####:11424:evaluate_ubitfield_extract(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11425:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11426:{
    #####:    #####:11427:   nir_const_value _dst_val = { {0, } };
        -:        -:11428:
        -:        -:11429:      
        -:        -:11430:   
        -:        -:11431:
        -:        -:11432:                           
    #####:    #####:11433:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11434:               const uint32_t src0 =
        -:        -:11435:                  _src[0].u32[_i];
    #####:    #####:11436:               const int32_t src1 =
    #####:    #####:11437:                  _src[1].i32[_i];
    #####:    #####:11438:               const int32_t src2 =
    #####:    #####:11439:                  _src[2].i32[_i];
        -:        -:11440:
        -:        -:11441:            uint32_t dst;
        -:        -:11442:
        -:        -:11443:            
    #####:    #####:11444:unsigned base = src0;
    #####:    #####:11445:int offset = src1, bits = src2;
    #####:    #####:11446:if (bits == 0) {
    #####:    #####:11447:   dst = 0;
    #####:    #####:11448:} else if (bits < 0 || offset < 0 || offset + bits > 32) {
    #####:    #####:11449:   dst = 0; /* undefined per the spec */
        -:        -:11450:} else {
    #####:    #####:11451:   dst = (base >> offset) & ((1ull << bits) - 1);
        -:        -:11452:}
        -:        -:11453:
        -:        -:11454:
    #####:    #####:11455:            _dst_val.u32[_i] = dst;
        -:        -:11456:      }
        -:        -:11457:
        -:        -:11458:
    #####:    #####:11459:   return _dst_val;
        -:        -:11460:}
        -:        -:11461:static nir_const_value
    #####:    #####:11462:evaluate_udiv(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11463:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11464:{
    #####:    #####:11465:   nir_const_value _dst_val = { {0, } };
        -:        -:11466:
    #####:    #####:11467:      switch (bit_size) {
        -:        -:11468:      case 8: {
        -:        -:11469:         
        -:        -:11470:   
        -:        -:11471:
        -:        -:11472:                  
    #####:    #####:11473:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11474:               const uint8_t src0 =
        -:        -:11475:                  _src[0].u8[_i];
    #####:    #####:11476:               const uint8_t src1 =
    #####:    #####:11477:                  _src[1].u8[_i];
        -:        -:11478:
    #####:    #####:11479:            uint8_t dst = src0 / src1;
        -:        -:11480:
    #####:    #####:11481:            _dst_val.u8[_i] = dst;
        -:        -:11482:      }
        -:        -:11483:
    #####:    #####:11484:         break;
        -:        -:11485:      }
        -:        -:11486:      case 16: {
        -:        -:11487:         
        -:        -:11488:   
        -:        -:11489:
        -:        -:11490:                  
    #####:    #####:11491:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11492:               const uint16_t src0 =
        -:        -:11493:                  _src[0].u16[_i];
    #####:    #####:11494:               const uint16_t src1 =
    #####:    #####:11495:                  _src[1].u16[_i];
        -:        -:11496:
    #####:    #####:11497:            uint16_t dst = src0 / src1;
        -:        -:11498:
    #####:    #####:11499:            _dst_val.u16[_i] = dst;
        -:        -:11500:      }
        -:        -:11501:
    #####:    #####:11502:         break;
        -:        -:11503:      }
        -:        -:11504:      case 32: {
        -:        -:11505:         
        -:        -:11506:   
        -:        -:11507:
        -:        -:11508:                  
    #####:    #####:11509:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11510:               const uint32_t src0 =
        -:        -:11511:                  _src[0].u32[_i];
    #####:    #####:11512:               const uint32_t src1 =
    #####:    #####:11513:                  _src[1].u32[_i];
        -:        -:11514:
    #####:    #####:11515:            uint32_t dst = src0 / src1;
        -:        -:11516:
    #####:    #####:11517:            _dst_val.u32[_i] = dst;
        -:        -:11518:      }
        -:        -:11519:
    #####:    #####:11520:         break;
        -:        -:11521:      }
        -:        -:11522:      case 64: {
        -:        -:11523:         
        -:        -:11524:   
        -:        -:11525:
        -:        -:11526:                  
    #####:    #####:11527:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11528:               const uint64_t src0 =
        -:        -:11529:                  _src[0].u64[_i];
    #####:    #####:11530:               const uint64_t src1 =
    #####:    #####:11531:                  _src[1].u64[_i];
        -:        -:11532:
    #####:    #####:11533:            uint64_t dst = src0 / src1;
        -:        -:11534:
    #####:    #####:11535:            _dst_val.u64[_i] = dst;
        -:        -:11536:      }
        -:        -:11537:
    #####:    #####:11538:         break;
        -:        -:11539:      }
        -:        -:11540:
        -:        -:11541:      default:
    #####:    #####:11542:         unreachable("unknown bit width");
        -:        -:11543:      }
        -:        -:11544:
    #####:    #####:11545:   return _dst_val;
        -:        -:11546:}
        -:        -:11547:static nir_const_value
    #####:    #####:11548:evaluate_ufind_msb(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11549:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11550:{
    #####:    #####:11551:   nir_const_value _dst_val = { {0, } };
        -:        -:11552:
        -:        -:11553:      
        -:        -:11554:   
        -:        -:11555:
        -:        -:11556:         
    #####:    #####:11557:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11558:               const uint32_t src0 =
        -:        -:11559:                  _src[0].u32[_i];
        -:        -:11560:
        -:        -:11561:            int32_t dst;
        -:        -:11562:
        -:        -:11563:            
    #####:    #####:11564:dst = -1;
    #####:    #####:11565:for (int bit = 31; bit > 0; bit--) {
    #####:    #####:11566:   if ((src0 >> bit) & 1) {
    #####:    #####:11567:      dst = bit;
    #####:    #####:11568:      break;
        -:        -:11569:   }
        -:        -:11570:}
        -:        -:11571:
        -:        -:11572:
    #####:    #####:11573:            _dst_val.i32[_i] = dst;
        -:        -:11574:      }
        -:        -:11575:
        -:        -:11576:
    #####:    #####:11577:   return _dst_val;
        -:        -:11578:}
        -:        -:11579:static nir_const_value
    #####:    #####:11580:evaluate_uge(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11581:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11582:{
    #####:    #####:11583:   nir_const_value _dst_val = { {0, } };
        -:        -:11584:
    #####:    #####:11585:      switch (bit_size) {
        -:        -:11586:      case 8: {
        -:        -:11587:         
        -:        -:11588:   
        -:        -:11589:
        -:        -:11590:                  
    #####:    #####:11591:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11592:               const uint8_t src0 =
        -:        -:11593:                  _src[0].u8[_i];
    #####:    #####:11594:               const uint8_t src1 =
    #####:    #####:11595:                  _src[1].u8[_i];
        -:        -:11596:
    #####:    #####:11597:            bool32_t dst = src0 >= src1;
        -:        -:11598:
    #####:    #####:11599:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11600:      }
        -:        -:11601:
    #####:    #####:11602:         break;
        -:        -:11603:      }
        -:        -:11604:      case 16: {
        -:        -:11605:         
        -:        -:11606:   
        -:        -:11607:
        -:        -:11608:                  
    #####:    #####:11609:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11610:               const uint16_t src0 =
        -:        -:11611:                  _src[0].u16[_i];
    #####:    #####:11612:               const uint16_t src1 =
    #####:    #####:11613:                  _src[1].u16[_i];
        -:        -:11614:
    #####:    #####:11615:            bool32_t dst = src0 >= src1;
        -:        -:11616:
    #####:    #####:11617:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11618:      }
        -:        -:11619:
    #####:    #####:11620:         break;
        -:        -:11621:      }
        -:        -:11622:      case 32: {
        -:        -:11623:         
        -:        -:11624:   
        -:        -:11625:
        -:        -:11626:                  
    #####:    #####:11627:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11628:               const uint32_t src0 =
        -:        -:11629:                  _src[0].u32[_i];
    #####:    #####:11630:               const uint32_t src1 =
    #####:    #####:11631:                  _src[1].u32[_i];
        -:        -:11632:
    #####:    #####:11633:            bool32_t dst = src0 >= src1;
        -:        -:11634:
    #####:    #####:11635:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11636:      }
        -:        -:11637:
    #####:    #####:11638:         break;
        -:        -:11639:      }
        -:        -:11640:      case 64: {
        -:        -:11641:         
        -:        -:11642:   
        -:        -:11643:
        -:        -:11644:                  
    #####:    #####:11645:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11646:               const uint64_t src0 =
        -:        -:11647:                  _src[0].u64[_i];
    #####:    #####:11648:               const uint64_t src1 =
    #####:    #####:11649:                  _src[1].u64[_i];
        -:        -:11650:
    #####:    #####:11651:            bool32_t dst = src0 >= src1;
        -:        -:11652:
    #####:    #####:11653:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11654:      }
        -:        -:11655:
    #####:    #####:11656:         break;
        -:        -:11657:      }
        -:        -:11658:
        -:        -:11659:      default:
    #####:    #####:11660:         unreachable("unknown bit width");
        -:        -:11661:      }
        -:        -:11662:
    #####:    #####:11663:   return _dst_val;
        -:        -:11664:}
        -:        -:11665:static nir_const_value
    #####:    #####:11666:evaluate_ult(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11667:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11668:{
    #####:    #####:11669:   nir_const_value _dst_val = { {0, } };
        -:        -:11670:
    #####:    #####:11671:      switch (bit_size) {
        -:        -:11672:      case 8: {
        -:        -:11673:         
        -:        -:11674:   
        -:        -:11675:
        -:        -:11676:                  
    #####:    #####:11677:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11678:               const uint8_t src0 =
        -:        -:11679:                  _src[0].u8[_i];
    #####:    #####:11680:               const uint8_t src1 =
    #####:    #####:11681:                  _src[1].u8[_i];
        -:        -:11682:
    #####:    #####:11683:            bool32_t dst = src0 < src1;
        -:        -:11684:
    #####:    #####:11685:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11686:      }
        -:        -:11687:
    #####:    #####:11688:         break;
        -:        -:11689:      }
        -:        -:11690:      case 16: {
        -:        -:11691:         
        -:        -:11692:   
        -:        -:11693:
        -:        -:11694:                  
    #####:    #####:11695:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11696:               const uint16_t src0 =
        -:        -:11697:                  _src[0].u16[_i];
    #####:    #####:11698:               const uint16_t src1 =
    #####:    #####:11699:                  _src[1].u16[_i];
        -:        -:11700:
    #####:    #####:11701:            bool32_t dst = src0 < src1;
        -:        -:11702:
    #####:    #####:11703:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11704:      }
        -:        -:11705:
    #####:    #####:11706:         break;
        -:        -:11707:      }
        -:        -:11708:      case 32: {
        -:        -:11709:         
        -:        -:11710:   
        -:        -:11711:
        -:        -:11712:                  
    #####:    #####:11713:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11714:               const uint32_t src0 =
        -:        -:11715:                  _src[0].u32[_i];
    #####:    #####:11716:               const uint32_t src1 =
    #####:    #####:11717:                  _src[1].u32[_i];
        -:        -:11718:
    #####:    #####:11719:            bool32_t dst = src0 < src1;
        -:        -:11720:
    #####:    #####:11721:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11722:      }
        -:        -:11723:
    #####:    #####:11724:         break;
        -:        -:11725:      }
        -:        -:11726:      case 64: {
        -:        -:11727:         
        -:        -:11728:   
        -:        -:11729:
        -:        -:11730:                  
    #####:    #####:11731:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11732:               const uint64_t src0 =
        -:        -:11733:                  _src[0].u64[_i];
    #####:    #####:11734:               const uint64_t src1 =
    #####:    #####:11735:                  _src[1].u64[_i];
        -:        -:11736:
    #####:    #####:11737:            bool32_t dst = src0 < src1;
        -:        -:11738:
    #####:    #####:11739:            _dst_val.u32[_i] = dst ? NIR_TRUE : NIR_FALSE;
        -:        -:11740:      }
        -:        -:11741:
    #####:    #####:11742:         break;
        -:        -:11743:      }
        -:        -:11744:
        -:        -:11745:      default:
    #####:    #####:11746:         unreachable("unknown bit width");
        -:        -:11747:      }
        -:        -:11748:
    #####:    #####:11749:   return _dst_val;
        -:        -:11750:}
        -:        -:11751:static nir_const_value
    #####:    #####:11752:evaluate_umax(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11753:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11754:{
    #####:    #####:11755:   nir_const_value _dst_val = { {0, } };
        -:        -:11756:
    #####:    #####:11757:      switch (bit_size) {
        -:        -:11758:      case 8: {
        -:        -:11759:         
        -:        -:11760:   
        -:        -:11761:
        -:        -:11762:                  
    #####:    #####:11763:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11764:               const uint8_t src0 =
        -:        -:11765:                  _src[0].u8[_i];
    #####:    #####:11766:               const uint8_t src1 =
    #####:    #####:11767:                  _src[1].u8[_i];
        -:        -:11768:
    #####:    #####:11769:            uint8_t dst = src1 > src0 ? src1 : src0;
        -:        -:11770:
    #####:    #####:11771:            _dst_val.u8[_i] = dst;
        -:        -:11772:      }
        -:        -:11773:
    #####:    #####:11774:         break;
        -:        -:11775:      }
        -:        -:11776:      case 16: {
        -:        -:11777:         
        -:        -:11778:   
        -:        -:11779:
        -:        -:11780:                  
    #####:    #####:11781:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11782:               const uint16_t src0 =
        -:        -:11783:                  _src[0].u16[_i];
    #####:    #####:11784:               const uint16_t src1 =
    #####:    #####:11785:                  _src[1].u16[_i];
        -:        -:11786:
    #####:    #####:11787:            uint16_t dst = src1 > src0 ? src1 : src0;
        -:        -:11788:
    #####:    #####:11789:            _dst_val.u16[_i] = dst;
        -:        -:11790:      }
        -:        -:11791:
    #####:    #####:11792:         break;
        -:        -:11793:      }
        -:        -:11794:      case 32: {
        -:        -:11795:         
        -:        -:11796:   
        -:        -:11797:
        -:        -:11798:                  
    #####:    #####:11799:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11800:               const uint32_t src0 =
        -:        -:11801:                  _src[0].u32[_i];
    #####:    #####:11802:               const uint32_t src1 =
    #####:    #####:11803:                  _src[1].u32[_i];
        -:        -:11804:
    #####:    #####:11805:            uint32_t dst = src1 > src0 ? src1 : src0;
        -:        -:11806:
    #####:    #####:11807:            _dst_val.u32[_i] = dst;
        -:        -:11808:      }
        -:        -:11809:
    #####:    #####:11810:         break;
        -:        -:11811:      }
        -:        -:11812:      case 64: {
        -:        -:11813:         
        -:        -:11814:   
        -:        -:11815:
        -:        -:11816:                  
    #####:    #####:11817:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11818:               const uint64_t src0 =
        -:        -:11819:                  _src[0].u64[_i];
    #####:    #####:11820:               const uint64_t src1 =
    #####:    #####:11821:                  _src[1].u64[_i];
        -:        -:11822:
    #####:    #####:11823:            uint64_t dst = src1 > src0 ? src1 : src0;
        -:        -:11824:
    #####:    #####:11825:            _dst_val.u64[_i] = dst;
        -:        -:11826:      }
        -:        -:11827:
    #####:    #####:11828:         break;
        -:        -:11829:      }
        -:        -:11830:
        -:        -:11831:      default:
    #####:    #####:11832:         unreachable("unknown bit width");
        -:        -:11833:      }
        -:        -:11834:
    #####:    #####:11835:   return _dst_val;
        -:        -:11836:}
        -:        -:11837:static nir_const_value
    #####:    #####:11838:evaluate_umax_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11839:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11840:{
    #####:    #####:11841:   nir_const_value _dst_val = { {0, } };
        -:        -:11842:
        -:        -:11843:      
        -:        -:11844:   
        -:        -:11845:
        -:        -:11846:                  
    #####:    #####:11847:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11848:               const int32_t src0 =
        -:        -:11849:                  _src[0].i32[_i];
    #####:    #####:11850:               const int32_t src1 =
    #####:    #####:11851:                  _src[1].i32[_i];
        -:        -:11852:
        -:        -:11853:            int32_t dst;
        -:        -:11854:
        -:        -:11855:            
    #####:    #####:11856:dst = 0;
    #####:    #####:11857:for (int i = 0; i < 32; i += 8) {
    #####:    #####:11858:   dst |= MAX2((src0 >> i) & 0xff, (src1 >> i) & 0xff) << i;
        -:        -:11859:}
        -:        -:11860:
        -:        -:11861:
    #####:    #####:11862:            _dst_val.i32[_i] = dst;
        -:        -:11863:      }
        -:        -:11864:
        -:        -:11865:
    #####:    #####:11866:   return _dst_val;
        -:        -:11867:}
        -:        -:11868:static nir_const_value
    #####:    #####:11869:evaluate_umin(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11870:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11871:{
    #####:    #####:11872:   nir_const_value _dst_val = { {0, } };
        -:        -:11873:
    #####:    #####:11874:      switch (bit_size) {
        -:        -:11875:      case 8: {
        -:        -:11876:         
        -:        -:11877:   
        -:        -:11878:
        -:        -:11879:                  
    #####:    #####:11880:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11881:               const uint8_t src0 =
        -:        -:11882:                  _src[0].u8[_i];
    #####:    #####:11883:               const uint8_t src1 =
    #####:    #####:11884:                  _src[1].u8[_i];
        -:        -:11885:
    #####:    #####:11886:            uint8_t dst = src1 > src0 ? src0 : src1;
        -:        -:11887:
    #####:    #####:11888:            _dst_val.u8[_i] = dst;
        -:        -:11889:      }
        -:        -:11890:
    #####:    #####:11891:         break;
        -:        -:11892:      }
        -:        -:11893:      case 16: {
        -:        -:11894:         
        -:        -:11895:   
        -:        -:11896:
        -:        -:11897:                  
    #####:    #####:11898:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11899:               const uint16_t src0 =
        -:        -:11900:                  _src[0].u16[_i];
    #####:    #####:11901:               const uint16_t src1 =
    #####:    #####:11902:                  _src[1].u16[_i];
        -:        -:11903:
    #####:    #####:11904:            uint16_t dst = src1 > src0 ? src0 : src1;
        -:        -:11905:
    #####:    #####:11906:            _dst_val.u16[_i] = dst;
        -:        -:11907:      }
        -:        -:11908:
    #####:    #####:11909:         break;
        -:        -:11910:      }
        -:        -:11911:      case 32: {
        -:        -:11912:         
        -:        -:11913:   
        -:        -:11914:
        -:        -:11915:                  
    #####:    #####:11916:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11917:               const uint32_t src0 =
        -:        -:11918:                  _src[0].u32[_i];
    #####:    #####:11919:               const uint32_t src1 =
    #####:    #####:11920:                  _src[1].u32[_i];
        -:        -:11921:
    #####:    #####:11922:            uint32_t dst = src1 > src0 ? src0 : src1;
        -:        -:11923:
    #####:    #####:11924:            _dst_val.u32[_i] = dst;
        -:        -:11925:      }
        -:        -:11926:
    #####:    #####:11927:         break;
        -:        -:11928:      }
        -:        -:11929:      case 64: {
        -:        -:11930:         
        -:        -:11931:   
        -:        -:11932:
        -:        -:11933:                  
    #####:    #####:11934:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11935:               const uint64_t src0 =
        -:        -:11936:                  _src[0].u64[_i];
    #####:    #####:11937:               const uint64_t src1 =
    #####:    #####:11938:                  _src[1].u64[_i];
        -:        -:11939:
    #####:    #####:11940:            uint64_t dst = src1 > src0 ? src0 : src1;
        -:        -:11941:
    #####:    #####:11942:            _dst_val.u64[_i] = dst;
        -:        -:11943:      }
        -:        -:11944:
    #####:    #####:11945:         break;
        -:        -:11946:      }
        -:        -:11947:
        -:        -:11948:      default:
    #####:    #####:11949:         unreachable("unknown bit width");
        -:        -:11950:      }
        -:        -:11951:
    #####:    #####:11952:   return _dst_val;
        -:        -:11953:}
        -:        -:11954:static nir_const_value
    #####:    #####:11955:evaluate_umin_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11956:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11957:{
    #####:    #####:11958:   nir_const_value _dst_val = { {0, } };
        -:        -:11959:
        -:        -:11960:      
        -:        -:11961:   
        -:        -:11962:
        -:        -:11963:                  
    #####:    #####:11964:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11965:               const int32_t src0 =
        -:        -:11966:                  _src[0].i32[_i];
    #####:    #####:11967:               const int32_t src1 =
    #####:    #####:11968:                  _src[1].i32[_i];
        -:        -:11969:
        -:        -:11970:            int32_t dst;
        -:        -:11971:
        -:        -:11972:            
    #####:    #####:11973:dst = 0;
    #####:    #####:11974:for (int i = 0; i < 32; i += 8) {
    #####:    #####:11975:   dst |= MIN2((src0 >> i) & 0xff, (src1 >> i) & 0xff) << i;
        -:        -:11976:}
        -:        -:11977:
        -:        -:11978:
    #####:    #####:11979:            _dst_val.i32[_i] = dst;
        -:        -:11980:      }
        -:        -:11981:
        -:        -:11982:
    #####:    #####:11983:   return _dst_val;
        -:        -:11984:}
        -:        -:11985:static nir_const_value
    #####:    #####:11986:evaluate_umod(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:11987:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:11988:{
    #####:    #####:11989:   nir_const_value _dst_val = { {0, } };
        -:        -:11990:
    #####:    #####:11991:      switch (bit_size) {
        -:        -:11992:      case 8: {
        -:        -:11993:         
        -:        -:11994:   
        -:        -:11995:
        -:        -:11996:                  
    #####:    #####:11997:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:11998:               const uint8_t src0 =
        -:        -:11999:                  _src[0].u8[_i];
    #####:    #####:12000:               const uint8_t src1 =
    #####:    #####:12001:                  _src[1].u8[_i];
        -:        -:12002:
    #####:    #####:12003:            uint8_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -:12004:
    #####:    #####:12005:            _dst_val.u8[_i] = dst;
        -:        -:12006:      }
        -:        -:12007:
    #####:    #####:12008:         break;
        -:        -:12009:      }
        -:        -:12010:      case 16: {
        -:        -:12011:         
        -:        -:12012:   
        -:        -:12013:
        -:        -:12014:                  
    #####:    #####:12015:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12016:               const uint16_t src0 =
        -:        -:12017:                  _src[0].u16[_i];
    #####:    #####:12018:               const uint16_t src1 =
    #####:    #####:12019:                  _src[1].u16[_i];
        -:        -:12020:
    #####:    #####:12021:            uint16_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -:12022:
    #####:    #####:12023:            _dst_val.u16[_i] = dst;
        -:        -:12024:      }
        -:        -:12025:
    #####:    #####:12026:         break;
        -:        -:12027:      }
        -:        -:12028:      case 32: {
        -:        -:12029:         
        -:        -:12030:   
        -:        -:12031:
        -:        -:12032:                  
    #####:    #####:12033:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12034:               const uint32_t src0 =
        -:        -:12035:                  _src[0].u32[_i];
    #####:    #####:12036:               const uint32_t src1 =
    #####:    #####:12037:                  _src[1].u32[_i];
        -:        -:12038:
    #####:    #####:12039:            uint32_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -:12040:
    #####:    #####:12041:            _dst_val.u32[_i] = dst;
        -:        -:12042:      }
        -:        -:12043:
    #####:    #####:12044:         break;
        -:        -:12045:      }
        -:        -:12046:      case 64: {
        -:        -:12047:         
        -:        -:12048:   
        -:        -:12049:
        -:        -:12050:                  
    #####:    #####:12051:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12052:               const uint64_t src0 =
        -:        -:12053:                  _src[0].u64[_i];
    #####:    #####:12054:               const uint64_t src1 =
    #####:    #####:12055:                  _src[1].u64[_i];
        -:        -:12056:
    #####:    #####:12057:            uint64_t dst = src1 == 0 ? 0 : src0 % src1;
        -:        -:12058:
    #####:    #####:12059:            _dst_val.u64[_i] = dst;
        -:        -:12060:      }
        -:        -:12061:
    #####:    #####:12062:         break;
        -:        -:12063:      }
        -:        -:12064:
        -:        -:12065:      default:
    #####:    #####:12066:         unreachable("unknown bit width");
        -:        -:12067:      }
        -:        -:12068:
    #####:    #####:12069:   return _dst_val;
        -:        -:12070:}
        -:        -:12071:static nir_const_value
    #####:    #####:12072:evaluate_umul_high(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12073:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12074:{
    #####:    #####:12075:   nir_const_value _dst_val = { {0, } };
        -:        -:12076:
        -:        -:12077:      
        -:        -:12078:   
        -:        -:12079:
        -:        -:12080:                  
    #####:    #####:12081:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12082:               const uint32_t src0 =
        -:        -:12083:                  _src[0].u32[_i];
    #####:    #####:12084:               const uint32_t src1 =
    #####:    #####:12085:                  _src[1].u32[_i];
        -:        -:12086:
    #####:    #####:12087:            uint32_t dst = (uint32_t)(((uint64_t) src0 * (uint64_t) src1) >> 32);
        -:        -:12088:
    #####:    #####:12089:            _dst_val.u32[_i] = dst;
        -:        -:12090:      }
        -:        -:12091:
        -:        -:12092:
    #####:    #####:12093:   return _dst_val;
        -:        -:12094:}
        -:        -:12095:static nir_const_value
    #####:    #####:12096:evaluate_umul_unorm_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12097:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12098:{
    #####:    #####:12099:   nir_const_value _dst_val = { {0, } };
        -:        -:12100:
        -:        -:12101:      
        -:        -:12102:   
        -:        -:12103:
        -:        -:12104:                  
    #####:    #####:12105:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12106:               const int32_t src0 =
        -:        -:12107:                  _src[0].i32[_i];
    #####:    #####:12108:               const int32_t src1 =
    #####:    #####:12109:                  _src[1].i32[_i];
        -:        -:12110:
        -:        -:12111:            int32_t dst;
        -:        -:12112:
        -:        -:12113:            
    #####:    #####:12114:dst = 0;
    #####:    #####:12115:for (int i = 0; i < 32; i += 8) {
    #####:    #####:12116:   int src0_chan = (src0 >> i) & 0xff;
    #####:    #####:12117:   int src1_chan = (src1 >> i) & 0xff;
    #####:    #####:12118:   dst |= ((src0_chan * src1_chan) / 255) << i;
        -:        -:12119:}
        -:        -:12120:
        -:        -:12121:
    #####:    #####:12122:            _dst_val.i32[_i] = dst;
        -:        -:12123:      }
        -:        -:12124:
        -:        -:12125:
    #####:    #####:12126:   return _dst_val;
        -:        -:12127:}
        -:        -:12128:static nir_const_value
    #####:    #####:12129:evaluate_unpack_64_2x32(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12130:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12131:{
    #####:    #####:12132:   nir_const_value _dst_val = { {0, } };
        -:        -:12133:
        -:        -:12134:      
        -:        -:12135:   
        -:        -:12136:
        -:        -:12137:
    #####:    #####:12138:      const struct uint64_vec src0 = {
    #####:    #####:12139:            _src[0].u64[0],
        -:        -:12140:         0,
        -:        -:12141:         0,
        -:        -:12142:         0,
        -:        -:12143:      };
        -:        -:12144:
        -:        -:12145:      struct uint32_vec dst;
        -:        -:12146:
    #####:    #####:12147:         dst.x = src0.x; dst.y = src0.x >> 32;
        -:        -:12148:
    #####:    #####:12149:            _dst_val.u32[0] = dst.x;
    #####:    #####:12150:            _dst_val.u32[1] = dst.y;
        -:        -:12151:
        -:        -:12152:
    #####:    #####:12153:   return _dst_val;
        -:        -:12154:}
        -:        -:12155:static nir_const_value
    #####:    #####:12156:evaluate_unpack_64_2x32_split_x(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12157:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12158:{
    #####:    #####:12159:   nir_const_value _dst_val = { {0, } };
        -:        -:12160:
        -:        -:12161:      
        -:        -:12162:   
        -:        -:12163:
        -:        -:12164:         
    #####:    #####:12165:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12166:               const uint64_t src0 =
        -:        -:12167:                  _src[0].u64[_i];
        -:        -:12168:
    #####:    #####:12169:            uint32_t dst = src0;
        -:        -:12170:
    #####:    #####:12171:            _dst_val.u32[_i] = dst;
        -:        -:12172:      }
        -:        -:12173:
        -:        -:12174:
    #####:    #####:12175:   return _dst_val;
        -:        -:12176:}
        -:        -:12177:static nir_const_value
    #####:    #####:12178:evaluate_unpack_64_2x32_split_y(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12179:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12180:{
    #####:    #####:12181:   nir_const_value _dst_val = { {0, } };
        -:        -:12182:
        -:        -:12183:      
        -:        -:12184:   
        -:        -:12185:
        -:        -:12186:         
    #####:    #####:12187:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12188:               const uint64_t src0 =
        -:        -:12189:                  _src[0].u64[_i];
        -:        -:12190:
    #####:    #####:12191:            uint32_t dst = src0 >> 32;
        -:        -:12192:
    #####:    #####:12193:            _dst_val.u32[_i] = dst;
        -:        -:12194:      }
        -:        -:12195:
        -:        -:12196:
    #####:    #####:12197:   return _dst_val;
        -:        -:12198:}
        -:        -:12199:static nir_const_value
    #####:    #####:12200:evaluate_unpack_half_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12201:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12202:{
    #####:    #####:12203:   nir_const_value _dst_val = { {0, } };
        -:        -:12204:
        -:        -:12205:      
        -:        -:12206:   
        -:        -:12207:
        -:        -:12208:
    #####:    #####:12209:      const struct uint32_vec src0 = {
    #####:    #####:12210:            _src[0].u32[0],
        -:        -:12211:         0,
        -:        -:12212:         0,
        -:        -:12213:         0,
        -:        -:12214:      };
        -:        -:12215:
        -:        -:12216:      struct float32_vec dst;
        -:        -:12217:
        -:        -:12218:         
    #####:    #####:12219:dst.x = unpack_half_1x16((uint16_t)(src0.x & 0xffff));
    #####:    #####:12220:dst.y = unpack_half_1x16((uint16_t)(src0.x << 16));
        -:        -:12221:
        -:        -:12222:
    #####:    #####:12223:            _dst_val.f32[0] = dst.x;
    #####:    #####:12224:            _dst_val.f32[1] = dst.y;
        -:        -:12225:
        -:        -:12226:
    #####:    #####:12227:   return _dst_val;
        -:        -:12228:}
        -:        -:12229:static nir_const_value
    #####:    #####:12230:evaluate_unpack_half_2x16_split_x(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12231:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12232:{
    #####:    #####:12233:   nir_const_value _dst_val = { {0, } };
        -:        -:12234:
        -:        -:12235:      
        -:        -:12236:   
        -:        -:12237:
        -:        -:12238:
    #####:    #####:12239:      const struct uint32_vec src0 = {
    #####:    #####:12240:            _src[0].u32[0],
        -:        -:12241:         0,
        -:        -:12242:         0,
        -:        -:12243:         0,
        -:        -:12244:      };
        -:        -:12245:
        -:        -:12246:      struct float32_vec dst;
        -:        -:12247:
    #####:    #####:12248:         dst.x = dst.y = dst.z = dst.w = unpack_half_1x16((uint16_t)(src0.x & 0xffff));
        -:        -:12249:
    #####:    #####:12250:            _dst_val.f32[0] = dst.x;
        -:        -:12251:
        -:        -:12252:
    #####:    #####:12253:   return _dst_val;
        -:        -:12254:}
        -:        -:12255:static nir_const_value
    #####:    #####:12256:evaluate_unpack_half_2x16_split_y(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12257:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12258:{
    #####:    #####:12259:   nir_const_value _dst_val = { {0, } };
        -:        -:12260:
        -:        -:12261:      
        -:        -:12262:   
        -:        -:12263:
        -:        -:12264:
    #####:    #####:12265:      const struct uint32_vec src0 = {
    #####:    #####:12266:            _src[0].u32[0],
        -:        -:12267:         0,
        -:        -:12268:         0,
        -:        -:12269:         0,
        -:        -:12270:      };
        -:        -:12271:
        -:        -:12272:      struct float32_vec dst;
        -:        -:12273:
    #####:    #####:12274:         dst.x = dst.y = dst.z = dst.w = unpack_half_1x16((uint16_t)(src0.x >> 16));
        -:        -:12275:
    #####:    #####:12276:            _dst_val.f32[0] = dst.x;
        -:        -:12277:
        -:        -:12278:
    #####:    #####:12279:   return _dst_val;
        -:        -:12280:}
        -:        -:12281:static nir_const_value
    #####:    #####:12282:evaluate_unpack_snorm_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12283:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12284:{
    #####:    #####:12285:   nir_const_value _dst_val = { {0, } };
        -:        -:12286:
        -:        -:12287:      
        -:        -:12288:   
        -:        -:12289:
        -:        -:12290:
    #####:    #####:12291:      const struct uint32_vec src0 = {
    #####:    #####:12292:            _src[0].u32[0],
        -:        -:12293:         0,
        -:        -:12294:         0,
        -:        -:12295:         0,
        -:        -:12296:      };
        -:        -:12297:
        -:        -:12298:      struct float32_vec dst;
        -:        -:12299:
        -:        -:12300:         
    #####:    #####:12301:dst.x = unpack_snorm_1x16((uint16_t)(src0.x & 0xffff));
    #####:    #####:12302:dst.y = unpack_snorm_1x16((uint16_t)(src0.x << 16));
        -:        -:12303:
        -:        -:12304:
    #####:    #####:12305:            _dst_val.f32[0] = dst.x;
    #####:    #####:12306:            _dst_val.f32[1] = dst.y;
        -:        -:12307:
        -:        -:12308:
    #####:    #####:12309:   return _dst_val;
        -:        -:12310:}
        -:        -:12311:static nir_const_value
    #####:    #####:12312:evaluate_unpack_snorm_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12313:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12314:{
    #####:    #####:12315:   nir_const_value _dst_val = { {0, } };
        -:        -:12316:
        -:        -:12317:      
        -:        -:12318:   
        -:        -:12319:
        -:        -:12320:
    #####:    #####:12321:      const struct uint32_vec src0 = {
    #####:    #####:12322:            _src[0].u32[0],
        -:        -:12323:         0,
        -:        -:12324:         0,
        -:        -:12325:         0,
        -:        -:12326:      };
        -:        -:12327:
        -:        -:12328:      struct float32_vec dst;
        -:        -:12329:
        -:        -:12330:         
    #####:    #####:12331:dst.x = unpack_snorm_1x8((uint8_t)(src0.x & 0xff));
    #####:    #####:12332:dst.y = unpack_snorm_1x8((uint8_t)((src0.x >> 8) & 0xff));
    #####:    #####:12333:dst.z = unpack_snorm_1x8((uint8_t)((src0.x >> 16) & 0xff));
    #####:    #####:12334:dst.w = unpack_snorm_1x8((uint8_t)(src0.x >> 24));
        -:        -:12335:
        -:        -:12336:
    #####:    #####:12337:            _dst_val.f32[0] = dst.x;
    #####:    #####:12338:            _dst_val.f32[1] = dst.y;
    #####:    #####:12339:            _dst_val.f32[2] = dst.z;
    #####:    #####:12340:            _dst_val.f32[3] = dst.w;
        -:        -:12341:
        -:        -:12342:
    #####:    #####:12343:   return _dst_val;
        -:        -:12344:}
        -:        -:12345:static nir_const_value
    #####:    #####:12346:evaluate_unpack_unorm_2x16(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12347:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12348:{
    #####:    #####:12349:   nir_const_value _dst_val = { {0, } };
        -:        -:12350:
        -:        -:12351:      
        -:        -:12352:   
        -:        -:12353:
        -:        -:12354:
    #####:    #####:12355:      const struct uint32_vec src0 = {
    #####:    #####:12356:            _src[0].u32[0],
        -:        -:12357:         0,
        -:        -:12358:         0,
        -:        -:12359:         0,
        -:        -:12360:      };
        -:        -:12361:
        -:        -:12362:      struct float32_vec dst;
        -:        -:12363:
        -:        -:12364:         
    #####:    #####:12365:dst.x = unpack_unorm_1x16((uint16_t)(src0.x & 0xffff));
    #####:    #####:12366:dst.y = unpack_unorm_1x16((uint16_t)(src0.x << 16));
        -:        -:12367:
        -:        -:12368:
    #####:    #####:12369:            _dst_val.f32[0] = dst.x;
    #####:    #####:12370:            _dst_val.f32[1] = dst.y;
        -:        -:12371:
        -:        -:12372:
    #####:    #####:12373:   return _dst_val;
        -:        -:12374:}
        -:        -:12375:static nir_const_value
    #####:    #####:12376:evaluate_unpack_unorm_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12377:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12378:{
    #####:    #####:12379:   nir_const_value _dst_val = { {0, } };
        -:        -:12380:
        -:        -:12381:      
        -:        -:12382:   
        -:        -:12383:
        -:        -:12384:
    #####:    #####:12385:      const struct uint32_vec src0 = {
    #####:    #####:12386:            _src[0].u32[0],
        -:        -:12387:         0,
        -:        -:12388:         0,
        -:        -:12389:         0,
        -:        -:12390:      };
        -:        -:12391:
        -:        -:12392:      struct float32_vec dst;
        -:        -:12393:
        -:        -:12394:         
    #####:    #####:12395:dst.x = unpack_unorm_1x8((uint8_t)(src0.x & 0xff));
    #####:    #####:12396:dst.y = unpack_unorm_1x8((uint8_t)((src0.x >> 8) & 0xff));
    #####:    #####:12397:dst.z = unpack_unorm_1x8((uint8_t)((src0.x >> 16) & 0xff));
    #####:    #####:12398:dst.w = unpack_unorm_1x8((uint8_t)(src0.x >> 24));
        -:        -:12399:
        -:        -:12400:
    #####:    #####:12401:            _dst_val.f32[0] = dst.x;
    #####:    #####:12402:            _dst_val.f32[1] = dst.y;
    #####:    #####:12403:            _dst_val.f32[2] = dst.z;
    #####:    #####:12404:            _dst_val.f32[3] = dst.w;
        -:        -:12405:
        -:        -:12406:
    #####:    #####:12407:   return _dst_val;
        -:        -:12408:}
        -:        -:12409:static nir_const_value
    #####:    #####:12410:evaluate_usadd_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12411:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12412:{
    #####:    #####:12413:   nir_const_value _dst_val = { {0, } };
        -:        -:12414:
        -:        -:12415:      
        -:        -:12416:   
        -:        -:12417:
        -:        -:12418:                  
    #####:    #####:12419:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12420:               const int32_t src0 =
        -:        -:12421:                  _src[0].i32[_i];
    #####:    #####:12422:               const int32_t src1 =
    #####:    #####:12423:                  _src[1].i32[_i];
        -:        -:12424:
        -:        -:12425:            int32_t dst;
        -:        -:12426:
        -:        -:12427:            
    #####:    #####:12428:dst = 0;
    #####:    #####:12429:for (int i = 0; i < 32; i += 8) {
    #####:    #####:12430:   dst |= MIN2(((src0 >> i) & 0xff) + ((src1 >> i) & 0xff), 0xff) << i;
        -:        -:12431:}
        -:        -:12432:
        -:        -:12433:
    #####:    #####:12434:            _dst_val.i32[_i] = dst;
        -:        -:12435:      }
        -:        -:12436:
        -:        -:12437:
    #####:    #####:12438:   return _dst_val;
        -:        -:12439:}
        -:        -:12440:static nir_const_value
    #####:    #####:12441:evaluate_ushr(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12442:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12443:{
    #####:    #####:12444:   nir_const_value _dst_val = { {0, } };
        -:        -:12445:
    #####:    #####:12446:      switch (bit_size) {
        -:        -:12447:      case 8: {
        -:        -:12448:         
        -:        -:12449:   
        -:        -:12450:
        -:        -:12451:                  
    #####:    #####:12452:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12453:               const uint8_t src0 =
        -:        -:12454:                  _src[0].u8[_i];
    #####:    #####:12455:               const uint32_t src1 =
    #####:    #####:12456:                  _src[1].u32[_i];
        -:        -:12457:
    #####:    #####:12458:            uint8_t dst = src0 >> src1;
        -:        -:12459:
    #####:    #####:12460:            _dst_val.u8[_i] = dst;
        -:        -:12461:      }
        -:        -:12462:
    #####:    #####:12463:         break;
        -:        -:12464:      }
        -:        -:12465:      case 16: {
        -:        -:12466:         
        -:        -:12467:   
        -:        -:12468:
        -:        -:12469:                  
    #####:    #####:12470:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12471:               const uint16_t src0 =
        -:        -:12472:                  _src[0].u16[_i];
    #####:    #####:12473:               const uint32_t src1 =
    #####:    #####:12474:                  _src[1].u32[_i];
        -:        -:12475:
    #####:    #####:12476:            uint16_t dst = src0 >> src1;
        -:        -:12477:
    #####:    #####:12478:            _dst_val.u16[_i] = dst;
        -:        -:12479:      }
        -:        -:12480:
    #####:    #####:12481:         break;
        -:        -:12482:      }
        -:        -:12483:      case 32: {
        -:        -:12484:         
        -:        -:12485:   
        -:        -:12486:
        -:        -:12487:                  
    #####:    #####:12488:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12489:               const uint32_t src0 =
        -:        -:12490:                  _src[0].u32[_i];
    #####:    #####:12491:               const uint32_t src1 =
    #####:    #####:12492:                  _src[1].u32[_i];
        -:        -:12493:
    #####:    #####:12494:            uint32_t dst = src0 >> src1;
        -:        -:12495:
    #####:    #####:12496:            _dst_val.u32[_i] = dst;
        -:        -:12497:      }
        -:        -:12498:
    #####:    #####:12499:         break;
        -:        -:12500:      }
        -:        -:12501:      case 64: {
        -:        -:12502:         
        -:        -:12503:   
        -:        -:12504:
        -:        -:12505:                  
    #####:    #####:12506:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12507:               const uint64_t src0 =
        -:        -:12508:                  _src[0].u64[_i];
    #####:    #####:12509:               const uint32_t src1 =
    #####:    #####:12510:                  _src[1].u32[_i];
        -:        -:12511:
    #####:    #####:12512:            uint64_t dst = src0 >> src1;
        -:        -:12513:
    #####:    #####:12514:            _dst_val.u64[_i] = dst;
        -:        -:12515:      }
        -:        -:12516:
    #####:    #####:12517:         break;
        -:        -:12518:      }
        -:        -:12519:
        -:        -:12520:      default:
    #####:    #####:12521:         unreachable("unknown bit width");
        -:        -:12522:      }
        -:        -:12523:
    #####:    #####:12524:   return _dst_val;
        -:        -:12525:}
        -:        -:12526:static nir_const_value
    #####:    #####:12527:evaluate_ussub_4x8(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12528:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12529:{
    #####:    #####:12530:   nir_const_value _dst_val = { {0, } };
        -:        -:12531:
        -:        -:12532:      
        -:        -:12533:   
        -:        -:12534:
        -:        -:12535:                  
    #####:    #####:12536:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12537:               const int32_t src0 =
        -:        -:12538:                  _src[0].i32[_i];
    #####:    #####:12539:               const int32_t src1 =
    #####:    #####:12540:                  _src[1].i32[_i];
        -:        -:12541:
        -:        -:12542:            int32_t dst;
        -:        -:12543:
        -:        -:12544:            
    #####:    #####:12545:dst = 0;
    #####:    #####:12546:for (int i = 0; i < 32; i += 8) {
    #####:    #####:12547:   int src0_chan = (src0 >> i) & 0xff;
    #####:    #####:12548:   int src1_chan = (src1 >> i) & 0xff;
    #####:    #####:12549:   if (src0_chan > src1_chan)
    #####:    #####:12550:      dst |= (src0_chan - src1_chan) << i;
        -:        -:12551:}
        -:        -:12552:
        -:        -:12553:
    #####:    #####:12554:            _dst_val.i32[_i] = dst;
        -:        -:12555:      }
        -:        -:12556:
        -:        -:12557:
    #####:    #####:12558:   return _dst_val;
        -:        -:12559:}
        -:        -:12560:static nir_const_value
    #####:    #####:12561:evaluate_usub_borrow(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12562:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12563:{
    #####:    #####:12564:   nir_const_value _dst_val = { {0, } };
        -:        -:12565:
    #####:    #####:12566:      switch (bit_size) {
        -:        -:12567:      case 8: {
        -:        -:12568:         
        -:        -:12569:   
        -:        -:12570:
        -:        -:12571:                  
    #####:    #####:12572:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12573:               const uint8_t src0 =
        -:        -:12574:                  _src[0].u8[_i];
    #####:    #####:12575:               const uint8_t src1 =
    #####:    #####:12576:                  _src[1].u8[_i];
        -:        -:12577:
    #####:    #####:12578:            uint8_t dst = src0 < src1;
        -:        -:12579:
    #####:    #####:12580:            _dst_val.u8[_i] = dst;
        -:        -:12581:      }
        -:        -:12582:
    #####:    #####:12583:         break;
        -:        -:12584:      }
        -:        -:12585:      case 16: {
        -:        -:12586:         
        -:        -:12587:   
        -:        -:12588:
        -:        -:12589:                  
    #####:    #####:12590:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12591:               const uint16_t src0 =
        -:        -:12592:                  _src[0].u16[_i];
    #####:    #####:12593:               const uint16_t src1 =
    #####:    #####:12594:                  _src[1].u16[_i];
        -:        -:12595:
    #####:    #####:12596:            uint16_t dst = src0 < src1;
        -:        -:12597:
    #####:    #####:12598:            _dst_val.u16[_i] = dst;
        -:        -:12599:      }
        -:        -:12600:
    #####:    #####:12601:         break;
        -:        -:12602:      }
        -:        -:12603:      case 32: {
        -:        -:12604:         
        -:        -:12605:   
        -:        -:12606:
        -:        -:12607:                  
    #####:    #####:12608:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12609:               const uint32_t src0 =
        -:        -:12610:                  _src[0].u32[_i];
    #####:    #####:12611:               const uint32_t src1 =
    #####:    #####:12612:                  _src[1].u32[_i];
        -:        -:12613:
    #####:    #####:12614:            uint32_t dst = src0 < src1;
        -:        -:12615:
    #####:    #####:12616:            _dst_val.u32[_i] = dst;
        -:        -:12617:      }
        -:        -:12618:
    #####:    #####:12619:         break;
        -:        -:12620:      }
        -:        -:12621:      case 64: {
        -:        -:12622:         
        -:        -:12623:   
        -:        -:12624:
        -:        -:12625:                  
    #####:    #####:12626:      for (unsigned _i = 0; _i < num_components; _i++) {
    #####:    #####:12627:               const uint64_t src0 =
        -:        -:12628:                  _src[0].u64[_i];
    #####:    #####:12629:               const uint64_t src1 =
    #####:    #####:12630:                  _src[1].u64[_i];
        -:        -:12631:
    #####:    #####:12632:            uint64_t dst = src0 < src1;
        -:        -:12633:
    #####:    #####:12634:            _dst_val.u64[_i] = dst;
        -:        -:12635:      }
        -:        -:12636:
    #####:    #####:12637:         break;
        -:        -:12638:      }
        -:        -:12639:
        -:        -:12640:      default:
    #####:    #####:12641:         unreachable("unknown bit width");
        -:        -:12642:      }
        -:        -:12643:
    #####:    #####:12644:   return _dst_val;
        -:        -:12645:}
        -:        -:12646:static nir_const_value
    #####:    #####:12647:evaluate_vec2(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12648:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12649:{
    #####:    #####:12650:   nir_const_value _dst_val = { {0, } };
        -:        -:12651:
    #####:    #####:12652:      switch (bit_size) {
        -:        -:12653:      case 8: {
        -:        -:12654:         
        -:        -:12655:   
        -:        -:12656:
        -:        -:12657:
    #####:    #####:12658:      const struct uint8_vec src0 = {
    #####:    #####:12659:            _src[0].u8[0],
        -:        -:12660:         0,
        -:        -:12661:         0,
        -:        -:12662:         0,
        -:        -:12663:      };
        -:        -:12664:
    #####:    #####:12665:      const struct uint8_vec src1 = {
    #####:    #####:12666:            _src[1].u8[0],
        -:        -:12667:         0,
        -:        -:12668:         0,
        -:        -:12669:         0,
        -:        -:12670:      };
        -:        -:12671:
        -:        -:12672:      struct uint8_vec dst;
        -:        -:12673:
        -:        -:12674:         
    #####:    #####:12675:dst.x = src0.x;
    #####:    #####:12676:dst.y = src1.x;
        -:        -:12677:
        -:        -:12678:
    #####:    #####:12679:            _dst_val.u8[0] = dst.x;
    #####:    #####:12680:            _dst_val.u8[1] = dst.y;
        -:        -:12681:
    #####:    #####:12682:         break;
        -:        -:12683:      }
        -:        -:12684:      case 16: {
        -:        -:12685:         
        -:        -:12686:   
        -:        -:12687:
        -:        -:12688:
    #####:    #####:12689:      const struct uint16_vec src0 = {
    #####:    #####:12690:            _src[0].u16[0],
        -:        -:12691:         0,
        -:        -:12692:         0,
        -:        -:12693:         0,
        -:        -:12694:      };
        -:        -:12695:
    #####:    #####:12696:      const struct uint16_vec src1 = {
    #####:    #####:12697:            _src[1].u16[0],
        -:        -:12698:         0,
        -:        -:12699:         0,
        -:        -:12700:         0,
        -:        -:12701:      };
        -:        -:12702:
        -:        -:12703:      struct uint16_vec dst;
        -:        -:12704:
        -:        -:12705:         
    #####:    #####:12706:dst.x = src0.x;
    #####:    #####:12707:dst.y = src1.x;
        -:        -:12708:
        -:        -:12709:
    #####:    #####:12710:            _dst_val.u16[0] = dst.x;
    #####:    #####:12711:            _dst_val.u16[1] = dst.y;
        -:        -:12712:
    #####:    #####:12713:         break;
        -:        -:12714:      }
        -:        -:12715:      case 32: {
        -:        -:12716:         
        -:        -:12717:   
        -:        -:12718:
        -:        -:12719:
    #####:    #####:12720:      const struct uint32_vec src0 = {
    #####:    #####:12721:            _src[0].u32[0],
        -:        -:12722:         0,
        -:        -:12723:         0,
        -:        -:12724:         0,
        -:        -:12725:      };
        -:        -:12726:
    #####:    #####:12727:      const struct uint32_vec src1 = {
    #####:    #####:12728:            _src[1].u32[0],
        -:        -:12729:         0,
        -:        -:12730:         0,
        -:        -:12731:         0,
        -:        -:12732:      };
        -:        -:12733:
        -:        -:12734:      struct uint32_vec dst;
        -:        -:12735:
        -:        -:12736:         
    #####:    #####:12737:dst.x = src0.x;
    #####:    #####:12738:dst.y = src1.x;
        -:        -:12739:
        -:        -:12740:
    #####:    #####:12741:            _dst_val.u32[0] = dst.x;
    #####:    #####:12742:            _dst_val.u32[1] = dst.y;
        -:        -:12743:
    #####:    #####:12744:         break;
        -:        -:12745:      }
        -:        -:12746:      case 64: {
        -:        -:12747:         
        -:        -:12748:   
        -:        -:12749:
        -:        -:12750:
    #####:    #####:12751:      const struct uint64_vec src0 = {
    #####:    #####:12752:            _src[0].u64[0],
        -:        -:12753:         0,
        -:        -:12754:         0,
        -:        -:12755:         0,
        -:        -:12756:      };
        -:        -:12757:
    #####:    #####:12758:      const struct uint64_vec src1 = {
    #####:    #####:12759:            _src[1].u64[0],
        -:        -:12760:         0,
        -:        -:12761:         0,
        -:        -:12762:         0,
        -:        -:12763:      };
        -:        -:12764:
        -:        -:12765:      struct uint64_vec dst;
        -:        -:12766:
        -:        -:12767:         
    #####:    #####:12768:dst.x = src0.x;
    #####:    #####:12769:dst.y = src1.x;
        -:        -:12770:
        -:        -:12771:
    #####:    #####:12772:            _dst_val.u64[0] = dst.x;
    #####:    #####:12773:            _dst_val.u64[1] = dst.y;
        -:        -:12774:
    #####:    #####:12775:         break;
        -:        -:12776:      }
        -:        -:12777:
        -:        -:12778:      default:
    #####:    #####:12779:         unreachable("unknown bit width");
        -:        -:12780:      }
        -:        -:12781:
    #####:    #####:12782:   return _dst_val;
        -:        -:12783:}
        -:        -:12784:static nir_const_value
    #####:    #####:12785:evaluate_vec3(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12786:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12787:{
    #####:    #####:12788:   nir_const_value _dst_val = { {0, } };
        -:        -:12789:
    #####:    #####:12790:      switch (bit_size) {
        -:        -:12791:      case 8: {
        -:        -:12792:         
        -:        -:12793:   
        -:        -:12794:
        -:        -:12795:
    #####:    #####:12796:      const struct uint8_vec src0 = {
    #####:    #####:12797:            _src[0].u8[0],
        -:        -:12798:         0,
        -:        -:12799:         0,
        -:        -:12800:         0,
        -:        -:12801:      };
        -:        -:12802:
    #####:    #####:12803:      const struct uint8_vec src1 = {
    #####:    #####:12804:            _src[1].u8[0],
        -:        -:12805:         0,
        -:        -:12806:         0,
        -:        -:12807:         0,
        -:        -:12808:      };
        -:        -:12809:
    #####:    #####:12810:      const struct uint8_vec src2 = {
    #####:    #####:12811:            _src[2].u8[0],
        -:        -:12812:         0,
        -:        -:12813:         0,
        -:        -:12814:         0,
        -:        -:12815:      };
        -:        -:12816:
        -:        -:12817:      struct uint8_vec dst;
        -:        -:12818:
        -:        -:12819:         
    #####:    #####:12820:dst.x = src0.x;
    #####:    #####:12821:dst.y = src1.x;
    #####:    #####:12822:dst.z = src2.x;
        -:        -:12823:
        -:        -:12824:
    #####:    #####:12825:            _dst_val.u8[0] = dst.x;
    #####:    #####:12826:            _dst_val.u8[1] = dst.y;
    #####:    #####:12827:            _dst_val.u8[2] = dst.z;
        -:        -:12828:
    #####:    #####:12829:         break;
        -:        -:12830:      }
        -:        -:12831:      case 16: {
        -:        -:12832:         
        -:        -:12833:   
        -:        -:12834:
        -:        -:12835:
    #####:    #####:12836:      const struct uint16_vec src0 = {
    #####:    #####:12837:            _src[0].u16[0],
        -:        -:12838:         0,
        -:        -:12839:         0,
        -:        -:12840:         0,
        -:        -:12841:      };
        -:        -:12842:
    #####:    #####:12843:      const struct uint16_vec src1 = {
    #####:    #####:12844:            _src[1].u16[0],
        -:        -:12845:         0,
        -:        -:12846:         0,
        -:        -:12847:         0,
        -:        -:12848:      };
        -:        -:12849:
    #####:    #####:12850:      const struct uint16_vec src2 = {
    #####:    #####:12851:            _src[2].u16[0],
        -:        -:12852:         0,
        -:        -:12853:         0,
        -:        -:12854:         0,
        -:        -:12855:      };
        -:        -:12856:
        -:        -:12857:      struct uint16_vec dst;
        -:        -:12858:
        -:        -:12859:         
    #####:    #####:12860:dst.x = src0.x;
    #####:    #####:12861:dst.y = src1.x;
    #####:    #####:12862:dst.z = src2.x;
        -:        -:12863:
        -:        -:12864:
    #####:    #####:12865:            _dst_val.u16[0] = dst.x;
    #####:    #####:12866:            _dst_val.u16[1] = dst.y;
    #####:    #####:12867:            _dst_val.u16[2] = dst.z;
        -:        -:12868:
    #####:    #####:12869:         break;
        -:        -:12870:      }
        -:        -:12871:      case 32: {
        -:        -:12872:         
        -:        -:12873:   
        -:        -:12874:
        -:        -:12875:
    #####:    #####:12876:      const struct uint32_vec src0 = {
    #####:    #####:12877:            _src[0].u32[0],
        -:        -:12878:         0,
        -:        -:12879:         0,
        -:        -:12880:         0,
        -:        -:12881:      };
        -:        -:12882:
    #####:    #####:12883:      const struct uint32_vec src1 = {
    #####:    #####:12884:            _src[1].u32[0],
        -:        -:12885:         0,
        -:        -:12886:         0,
        -:        -:12887:         0,
        -:        -:12888:      };
        -:        -:12889:
    #####:    #####:12890:      const struct uint32_vec src2 = {
    #####:    #####:12891:            _src[2].u32[0],
        -:        -:12892:         0,
        -:        -:12893:         0,
        -:        -:12894:         0,
        -:        -:12895:      };
        -:        -:12896:
        -:        -:12897:      struct uint32_vec dst;
        -:        -:12898:
        -:        -:12899:         
    #####:    #####:12900:dst.x = src0.x;
    #####:    #####:12901:dst.y = src1.x;
    #####:    #####:12902:dst.z = src2.x;
        -:        -:12903:
        -:        -:12904:
    #####:    #####:12905:            _dst_val.u32[0] = dst.x;
    #####:    #####:12906:            _dst_val.u32[1] = dst.y;
    #####:    #####:12907:            _dst_val.u32[2] = dst.z;
        -:        -:12908:
    #####:    #####:12909:         break;
        -:        -:12910:      }
        -:        -:12911:      case 64: {
        -:        -:12912:         
        -:        -:12913:   
        -:        -:12914:
        -:        -:12915:
    #####:    #####:12916:      const struct uint64_vec src0 = {
    #####:    #####:12917:            _src[0].u64[0],
        -:        -:12918:         0,
        -:        -:12919:         0,
        -:        -:12920:         0,
        -:        -:12921:      };
        -:        -:12922:
    #####:    #####:12923:      const struct uint64_vec src1 = {
    #####:    #####:12924:            _src[1].u64[0],
        -:        -:12925:         0,
        -:        -:12926:         0,
        -:        -:12927:         0,
        -:        -:12928:      };
        -:        -:12929:
    #####:    #####:12930:      const struct uint64_vec src2 = {
    #####:    #####:12931:            _src[2].u64[0],
        -:        -:12932:         0,
        -:        -:12933:         0,
        -:        -:12934:         0,
        -:        -:12935:      };
        -:        -:12936:
        -:        -:12937:      struct uint64_vec dst;
        -:        -:12938:
        -:        -:12939:         
    #####:    #####:12940:dst.x = src0.x;
    #####:    #####:12941:dst.y = src1.x;
    #####:    #####:12942:dst.z = src2.x;
        -:        -:12943:
        -:        -:12944:
    #####:    #####:12945:            _dst_val.u64[0] = dst.x;
    #####:    #####:12946:            _dst_val.u64[1] = dst.y;
    #####:    #####:12947:            _dst_val.u64[2] = dst.z;
        -:        -:12948:
    #####:    #####:12949:         break;
        -:        -:12950:      }
        -:        -:12951:
        -:        -:12952:      default:
    #####:    #####:12953:         unreachable("unknown bit width");
        -:        -:12954:      }
        -:        -:12955:
    #####:    #####:12956:   return _dst_val;
        -:        -:12957:}
        -:        -:12958:static nir_const_value
    #####:    #####:12959:evaluate_vec4(MAYBE_UNUSED unsigned num_components, unsigned bit_size,
        -:        -:12960:                 MAYBE_UNUSED nir_const_value *_src)
        -:        -:12961:{
    #####:    #####:12962:   nir_const_value _dst_val = { {0, } };
        -:        -:12963:
    #####:    #####:12964:      switch (bit_size) {
        -:        -:12965:      case 8: {
        -:        -:12966:         
        -:        -:12967:   
        -:        -:12968:
        -:        -:12969:
    #####:    #####:12970:      const struct uint8_vec src0 = {
    #####:    #####:12971:            _src[0].u8[0],
        -:        -:12972:         0,
        -:        -:12973:         0,
        -:        -:12974:         0,
        -:        -:12975:      };
        -:        -:12976:
    #####:    #####:12977:      const struct uint8_vec src1 = {
    #####:    #####:12978:            _src[1].u8[0],
        -:        -:12979:         0,
        -:        -:12980:         0,
        -:        -:12981:         0,
        -:        -:12982:      };
        -:        -:12983:
    #####:    #####:12984:      const struct uint8_vec src2 = {
    #####:    #####:12985:            _src[2].u8[0],
        -:        -:12986:         0,
        -:        -:12987:         0,
        -:        -:12988:         0,
        -:        -:12989:      };
        -:        -:12990:
    #####:    #####:12991:      const struct uint8_vec src3 = {
    #####:    #####:12992:            _src[3].u8[0],
        -:        -:12993:         0,
        -:        -:12994:         0,
        -:        -:12995:         0,
        -:        -:12996:      };
        -:        -:12997:
        -:        -:12998:      struct uint8_vec dst;
        -:        -:12999:
        -:        -:13000:         
    #####:    #####:13001:dst.x = src0.x;
    #####:    #####:13002:dst.y = src1.x;
    #####:    #####:13003:dst.z = src2.x;
    #####:    #####:13004:dst.w = src3.x;
        -:        -:13005:
        -:        -:13006:
    #####:    #####:13007:            _dst_val.u8[0] = dst.x;
    #####:    #####:13008:            _dst_val.u8[1] = dst.y;
    #####:    #####:13009:            _dst_val.u8[2] = dst.z;
    #####:    #####:13010:            _dst_val.u8[3] = dst.w;
        -:        -:13011:
    #####:    #####:13012:         break;
        -:        -:13013:      }
        -:        -:13014:      case 16: {
        -:        -:13015:         
        -:        -:13016:   
        -:        -:13017:
        -:        -:13018:
    #####:    #####:13019:      const struct uint16_vec src0 = {
    #####:    #####:13020:            _src[0].u16[0],
        -:        -:13021:         0,
        -:        -:13022:         0,
        -:        -:13023:         0,
        -:        -:13024:      };
        -:        -:13025:
    #####:    #####:13026:      const struct uint16_vec src1 = {
    #####:    #####:13027:            _src[1].u16[0],
        -:        -:13028:         0,
        -:        -:13029:         0,
        -:        -:13030:         0,
        -:        -:13031:      };
        -:        -:13032:
    #####:    #####:13033:      const struct uint16_vec src2 = {
    #####:    #####:13034:            _src[2].u16[0],
        -:        -:13035:         0,
        -:        -:13036:         0,
        -:        -:13037:         0,
        -:        -:13038:      };
        -:        -:13039:
    #####:    #####:13040:      const struct uint16_vec src3 = {
    #####:    #####:13041:            _src[3].u16[0],
        -:        -:13042:         0,
        -:        -:13043:         0,
        -:        -:13044:         0,
        -:        -:13045:      };
        -:        -:13046:
        -:        -:13047:      struct uint16_vec dst;
        -:        -:13048:
        -:        -:13049:         
    #####:    #####:13050:dst.x = src0.x;
    #####:    #####:13051:dst.y = src1.x;
    #####:    #####:13052:dst.z = src2.x;
    #####:    #####:13053:dst.w = src3.x;
        -:        -:13054:
        -:        -:13055:
    #####:    #####:13056:            _dst_val.u16[0] = dst.x;
    #####:    #####:13057:            _dst_val.u16[1] = dst.y;
    #####:    #####:13058:            _dst_val.u16[2] = dst.z;
    #####:    #####:13059:            _dst_val.u16[3] = dst.w;
        -:        -:13060:
    #####:    #####:13061:         break;
        -:        -:13062:      }
        -:        -:13063:      case 32: {
        -:        -:13064:         
        -:        -:13065:   
        -:        -:13066:
        -:        -:13067:
    #####:    #####:13068:      const struct uint32_vec src0 = {
    #####:    #####:13069:            _src[0].u32[0],
        -:        -:13070:         0,
        -:        -:13071:         0,
        -:        -:13072:         0,
        -:        -:13073:      };
        -:        -:13074:
    #####:    #####:13075:      const struct uint32_vec src1 = {
    #####:    #####:13076:            _src[1].u32[0],
        -:        -:13077:         0,
        -:        -:13078:         0,
        -:        -:13079:         0,
        -:        -:13080:      };
        -:        -:13081:
    #####:    #####:13082:      const struct uint32_vec src2 = {
    #####:    #####:13083:            _src[2].u32[0],
        -:        -:13084:         0,
        -:        -:13085:         0,
        -:        -:13086:         0,
        -:        -:13087:      };
        -:        -:13088:
    #####:    #####:13089:      const struct uint32_vec src3 = {
    #####:    #####:13090:            _src[3].u32[0],
        -:        -:13091:         0,
        -:        -:13092:         0,
        -:        -:13093:         0,
        -:        -:13094:      };
        -:        -:13095:
        -:        -:13096:      struct uint32_vec dst;
        -:        -:13097:
        -:        -:13098:         
    #####:    #####:13099:dst.x = src0.x;
    #####:    #####:13100:dst.y = src1.x;
    #####:    #####:13101:dst.z = src2.x;
    #####:    #####:13102:dst.w = src3.x;
        -:        -:13103:
        -:        -:13104:
    #####:    #####:13105:            _dst_val.u32[0] = dst.x;
    #####:    #####:13106:            _dst_val.u32[1] = dst.y;
    #####:    #####:13107:            _dst_val.u32[2] = dst.z;
    #####:    #####:13108:            _dst_val.u32[3] = dst.w;
        -:        -:13109:
    #####:    #####:13110:         break;
        -:        -:13111:      }
        -:        -:13112:      case 64: {
        -:        -:13113:         
        -:        -:13114:   
        -:        -:13115:
        -:        -:13116:
    #####:    #####:13117:      const struct uint64_vec src0 = {
    #####:    #####:13118:            _src[0].u64[0],
        -:        -:13119:         0,
        -:        -:13120:         0,
        -:        -:13121:         0,
        -:        -:13122:      };
        -:        -:13123:
    #####:    #####:13124:      const struct uint64_vec src1 = {
    #####:    #####:13125:            _src[1].u64[0],
        -:        -:13126:         0,
        -:        -:13127:         0,
        -:        -:13128:         0,
        -:        -:13129:      };
        -:        -:13130:
    #####:    #####:13131:      const struct uint64_vec src2 = {
    #####:    #####:13132:            _src[2].u64[0],
        -:        -:13133:         0,
        -:        -:13134:         0,
        -:        -:13135:         0,
        -:        -:13136:      };
        -:        -:13137:
    #####:    #####:13138:      const struct uint64_vec src3 = {
    #####:    #####:13139:            _src[3].u64[0],
        -:        -:13140:         0,
        -:        -:13141:         0,
        -:        -:13142:         0,
        -:        -:13143:      };
        -:        -:13144:
        -:        -:13145:      struct uint64_vec dst;
        -:        -:13146:
        -:        -:13147:         
    #####:    #####:13148:dst.x = src0.x;
    #####:    #####:13149:dst.y = src1.x;
    #####:    #####:13150:dst.z = src2.x;
    #####:    #####:13151:dst.w = src3.x;
        -:        -:13152:
        -:        -:13153:
    #####:    #####:13154:            _dst_val.u64[0] = dst.x;
    #####:    #####:13155:            _dst_val.u64[1] = dst.y;
    #####:    #####:13156:            _dst_val.u64[2] = dst.z;
    #####:    #####:13157:            _dst_val.u64[3] = dst.w;
        -:        -:13158:
    #####:    #####:13159:         break;
        -:        -:13160:      }
        -:        -:13161:
        -:        -:13162:      default:
    #####:    #####:13163:         unreachable("unknown bit width");
        -:        -:13164:      }
        -:        -:13165:
    #####:    #####:13166:   return _dst_val;
        -:        -:13167:}
        -:        -:13168:
        -:        -:13169:nir_const_value
      134:       38:13170:nir_eval_const_opcode(nir_op op, unsigned num_components,
        -:        -:13171:                      unsigned bit_width, nir_const_value *src)
        -:        -:13172:{
      134:       38:13173:   switch (op) {
        -:        -:13174:   case nir_op_b2f:
    #####:    #####:13175:      return evaluate_b2f(num_components, bit_width, src);
        -:        -:13176:   case nir_op_b2i:
    #####:    #####:13177:      return evaluate_b2i(num_components, bit_width, src);
        -:        -:13178:   case nir_op_ball_fequal2:
    #####:    #####:13179:      return evaluate_ball_fequal2(num_components, bit_width, src);
        -:        -:13180:   case nir_op_ball_fequal3:
    #####:    #####:13181:      return evaluate_ball_fequal3(num_components, bit_width, src);
        -:        -:13182:   case nir_op_ball_fequal4:
    #####:    #####:13183:      return evaluate_ball_fequal4(num_components, bit_width, src);
        -:        -:13184:   case nir_op_ball_iequal2:
    #####:    #####:13185:      return evaluate_ball_iequal2(num_components, bit_width, src);
        -:        -:13186:   case nir_op_ball_iequal3:
    #####:    #####:13187:      return evaluate_ball_iequal3(num_components, bit_width, src);
        -:        -:13188:   case nir_op_ball_iequal4:
    #####:    #####:13189:      return evaluate_ball_iequal4(num_components, bit_width, src);
        -:        -:13190:   case nir_op_bany_fnequal2:
    #####:    #####:13191:      return evaluate_bany_fnequal2(num_components, bit_width, src);
        -:        -:13192:   case nir_op_bany_fnequal3:
    #####:    #####:13193:      return evaluate_bany_fnequal3(num_components, bit_width, src);
        -:        -:13194:   case nir_op_bany_fnequal4:
    #####:    #####:13195:      return evaluate_bany_fnequal4(num_components, bit_width, src);
        -:        -:13196:   case nir_op_bany_inequal2:
    #####:    #####:13197:      return evaluate_bany_inequal2(num_components, bit_width, src);
        -:        -:13198:   case nir_op_bany_inequal3:
    #####:    #####:13199:      return evaluate_bany_inequal3(num_components, bit_width, src);
        -:        -:13200:   case nir_op_bany_inequal4:
    #####:    #####:13201:      return evaluate_bany_inequal4(num_components, bit_width, src);
        -:        -:13202:   case nir_op_bcsel:
    #####:    #####:13203:      return evaluate_bcsel(num_components, bit_width, src);
        -:        -:13204:   case nir_op_bfi:
    #####:    #####:13205:      return evaluate_bfi(num_components, bit_width, src);
        -:        -:13206:   case nir_op_bfm:
    #####:    #####:13207:      return evaluate_bfm(num_components, bit_width, src);
        -:        -:13208:   case nir_op_bit_count:
    #####:    #####:13209:      return evaluate_bit_count(num_components, bit_width, src);
        -:        -:13210:   case nir_op_bitfield_insert:
    #####:    #####:13211:      return evaluate_bitfield_insert(num_components, bit_width, src);
        -:        -:13212:   case nir_op_bitfield_reverse:
    #####:    #####:13213:      return evaluate_bitfield_reverse(num_components, bit_width, src);
        -:        -:13214:   case nir_op_extract_i16:
    #####:    #####:13215:      return evaluate_extract_i16(num_components, bit_width, src);
        -:        -:13216:   case nir_op_extract_i8:
    #####:    #####:13217:      return evaluate_extract_i8(num_components, bit_width, src);
        -:        -:13218:   case nir_op_extract_u16:
    #####:    #####:13219:      return evaluate_extract_u16(num_components, bit_width, src);
        -:        -:13220:   case nir_op_extract_u8:
    #####:    #####:13221:      return evaluate_extract_u8(num_components, bit_width, src);
        -:        -:13222:   case nir_op_f2b:
    #####:    #####:13223:      return evaluate_f2b(num_components, bit_width, src);
        -:        -:13224:   case nir_op_f2f16:
    #####:    #####:13225:      return evaluate_f2f16(num_components, bit_width, src);
        -:        -:13226:   case nir_op_f2f32:
    #####:    #####:13227:      return evaluate_f2f32(num_components, bit_width, src);
        -:        -:13228:   case nir_op_f2f64:
    #####:    #####:13229:      return evaluate_f2f64(num_components, bit_width, src);
        -:        -:13230:   case nir_op_f2i16:
    #####:    #####:13231:      return evaluate_f2i16(num_components, bit_width, src);
        -:        -:13232:   case nir_op_f2i32:
    #####:    #####:13233:      return evaluate_f2i32(num_components, bit_width, src);
        -:        -:13234:   case nir_op_f2i64:
    #####:    #####:13235:      return evaluate_f2i64(num_components, bit_width, src);
        -:        -:13236:   case nir_op_f2i8:
    #####:    #####:13237:      return evaluate_f2i8(num_components, bit_width, src);
        -:        -:13238:   case nir_op_f2u16:
    #####:    #####:13239:      return evaluate_f2u16(num_components, bit_width, src);
        -:        -:13240:   case nir_op_f2u32:
    #####:    #####:13241:      return evaluate_f2u32(num_components, bit_width, src);
        -:        -:13242:   case nir_op_f2u64:
    #####:    #####:13243:      return evaluate_f2u64(num_components, bit_width, src);
        -:        -:13244:   case nir_op_f2u8:
    #####:    #####:13245:      return evaluate_f2u8(num_components, bit_width, src);
        -:        -:13246:   case nir_op_fabs:
    #####:    #####:13247:      return evaluate_fabs(num_components, bit_width, src);
        -:        -:13248:   case nir_op_fadd:
    #####:    #####:13249:      return evaluate_fadd(num_components, bit_width, src);
        -:        -:13250:   case nir_op_fall_equal2:
    #####:    #####:13251:      return evaluate_fall_equal2(num_components, bit_width, src);
        -:        -:13252:   case nir_op_fall_equal3:
    #####:    #####:13253:      return evaluate_fall_equal3(num_components, bit_width, src);
        -:        -:13254:   case nir_op_fall_equal4:
    #####:    #####:13255:      return evaluate_fall_equal4(num_components, bit_width, src);
        -:        -:13256:   case nir_op_fand:
    #####:    #####:13257:      return evaluate_fand(num_components, bit_width, src);
        -:        -:13258:   case nir_op_fany_nequal2:
    #####:    #####:13259:      return evaluate_fany_nequal2(num_components, bit_width, src);
        -:        -:13260:   case nir_op_fany_nequal3:
    #####:    #####:13261:      return evaluate_fany_nequal3(num_components, bit_width, src);
        -:        -:13262:   case nir_op_fany_nequal4:
    #####:    #####:13263:      return evaluate_fany_nequal4(num_components, bit_width, src);
        -:        -:13264:   case nir_op_fceil:
    #####:    #####:13265:      return evaluate_fceil(num_components, bit_width, src);
        -:        -:13266:   case nir_op_fcos:
    #####:    #####:13267:      return evaluate_fcos(num_components, bit_width, src);
        -:        -:13268:   case nir_op_fcsel:
    #####:    #####:13269:      return evaluate_fcsel(num_components, bit_width, src);
        -:        -:13270:   case nir_op_fddx:
    #####:    #####:13271:      return evaluate_fddx(num_components, bit_width, src);
        -:        -:13272:   case nir_op_fddx_coarse:
    #####:    #####:13273:      return evaluate_fddx_coarse(num_components, bit_width, src);
        -:        -:13274:   case nir_op_fddx_fine:
    #####:    #####:13275:      return evaluate_fddx_fine(num_components, bit_width, src);
        -:        -:13276:   case nir_op_fddy:
    #####:    #####:13277:      return evaluate_fddy(num_components, bit_width, src);
        -:        -:13278:   case nir_op_fddy_coarse:
    #####:    #####:13279:      return evaluate_fddy_coarse(num_components, bit_width, src);
        -:        -:13280:   case nir_op_fddy_fine:
    #####:    #####:13281:      return evaluate_fddy_fine(num_components, bit_width, src);
        -:        -:13282:   case nir_op_fdiv:
    #####:    #####:13283:      return evaluate_fdiv(num_components, bit_width, src);
        -:        -:13284:   case nir_op_fdot2:
    #####:    #####:13285:      return evaluate_fdot2(num_components, bit_width, src);
        -:        -:13286:   case nir_op_fdot3:
    #####:    #####:13287:      return evaluate_fdot3(num_components, bit_width, src);
        -:        -:13288:   case nir_op_fdot4:
    #####:    #####:13289:      return evaluate_fdot4(num_components, bit_width, src);
        -:        -:13290:   case nir_op_fdot_replicated2:
    #####:    #####:13291:      return evaluate_fdot_replicated2(num_components, bit_width, src);
        -:        -:13292:   case nir_op_fdot_replicated3:
    #####:    #####:13293:      return evaluate_fdot_replicated3(num_components, bit_width, src);
        -:        -:13294:   case nir_op_fdot_replicated4:
    #####:    #####:13295:      return evaluate_fdot_replicated4(num_components, bit_width, src);
        -:        -:13296:   case nir_op_fdph:
    #####:    #####:13297:      return evaluate_fdph(num_components, bit_width, src);
        -:        -:13298:   case nir_op_fdph_replicated:
    #####:    #####:13299:      return evaluate_fdph_replicated(num_components, bit_width, src);
        -:        -:13300:   case nir_op_feq:
    #####:    #####:13301:      return evaluate_feq(num_components, bit_width, src);
        -:        -:13302:   case nir_op_fexp2:
    #####:    #####:13303:      return evaluate_fexp2(num_components, bit_width, src);
        -:        -:13304:   case nir_op_ffloor:
    #####:    #####:13305:      return evaluate_ffloor(num_components, bit_width, src);
        -:        -:13306:   case nir_op_ffma:
    #####:    #####:13307:      return evaluate_ffma(num_components, bit_width, src);
        -:        -:13308:   case nir_op_ffract:
    #####:    #####:13309:      return evaluate_ffract(num_components, bit_width, src);
        -:        -:13310:   case nir_op_fge:
    #####:    #####:13311:      return evaluate_fge(num_components, bit_width, src);
        -:        -:13312:   case nir_op_find_lsb:
    #####:    #####:13313:      return evaluate_find_lsb(num_components, bit_width, src);
        -:        -:13314:   case nir_op_flog2:
    #####:    #####:13315:      return evaluate_flog2(num_components, bit_width, src);
        -:        -:13316:   case nir_op_flrp:
    #####:    #####:13317:      return evaluate_flrp(num_components, bit_width, src);
        -:        -:13318:   case nir_op_flt:
    #####:    #####:13319:      return evaluate_flt(num_components, bit_width, src);
        -:        -:13320:   case nir_op_fmax:
    #####:    #####:13321:      return evaluate_fmax(num_components, bit_width, src);
        -:        -:13322:   case nir_op_fmin:
    #####:    #####:13323:      return evaluate_fmin(num_components, bit_width, src);
        -:        -:13324:   case nir_op_fmod:
    #####:    #####:13325:      return evaluate_fmod(num_components, bit_width, src);
        -:        -:13326:   case nir_op_fmov:
    #####:    #####:13327:      return evaluate_fmov(num_components, bit_width, src);
        -:        -:13328:   case nir_op_fmul:
    #####:    #####:13329:      return evaluate_fmul(num_components, bit_width, src);
        -:        -:13330:   case nir_op_fne:
    #####:    #####:13331:      return evaluate_fne(num_components, bit_width, src);
        -:        -:13332:   case nir_op_fneg:
    #####:    #####:13333:      return evaluate_fneg(num_components, bit_width, src);
        -:        -:13334:   case nir_op_fnoise1_1:
    #####:    #####:13335:      return evaluate_fnoise1_1(num_components, bit_width, src);
        -:        -:13336:   case nir_op_fnoise1_2:
    #####:    #####:13337:      return evaluate_fnoise1_2(num_components, bit_width, src);
        -:        -:13338:   case nir_op_fnoise1_3:
    #####:    #####:13339:      return evaluate_fnoise1_3(num_components, bit_width, src);
        -:        -:13340:   case nir_op_fnoise1_4:
    #####:    #####:13341:      return evaluate_fnoise1_4(num_components, bit_width, src);
        -:        -:13342:   case nir_op_fnoise2_1:
    #####:    #####:13343:      return evaluate_fnoise2_1(num_components, bit_width, src);
        -:        -:13344:   case nir_op_fnoise2_2:
    #####:    #####:13345:      return evaluate_fnoise2_2(num_components, bit_width, src);
        -:        -:13346:   case nir_op_fnoise2_3:
    #####:    #####:13347:      return evaluate_fnoise2_3(num_components, bit_width, src);
        -:        -:13348:   case nir_op_fnoise2_4:
    #####:    #####:13349:      return evaluate_fnoise2_4(num_components, bit_width, src);
        -:        -:13350:   case nir_op_fnoise3_1:
    #####:    #####:13351:      return evaluate_fnoise3_1(num_components, bit_width, src);
        -:        -:13352:   case nir_op_fnoise3_2:
    #####:    #####:13353:      return evaluate_fnoise3_2(num_components, bit_width, src);
        -:        -:13354:   case nir_op_fnoise3_3:
    #####:    #####:13355:      return evaluate_fnoise3_3(num_components, bit_width, src);
        -:        -:13356:   case nir_op_fnoise3_4:
    #####:    #####:13357:      return evaluate_fnoise3_4(num_components, bit_width, src);
        -:        -:13358:   case nir_op_fnoise4_1:
    #####:    #####:13359:      return evaluate_fnoise4_1(num_components, bit_width, src);
        -:        -:13360:   case nir_op_fnoise4_2:
    #####:    #####:13361:      return evaluate_fnoise4_2(num_components, bit_width, src);
        -:        -:13362:   case nir_op_fnoise4_3:
    #####:    #####:13363:      return evaluate_fnoise4_3(num_components, bit_width, src);
        -:        -:13364:   case nir_op_fnoise4_4:
    #####:    #####:13365:      return evaluate_fnoise4_4(num_components, bit_width, src);
        -:        -:13366:   case nir_op_fnot:
    #####:    #####:13367:      return evaluate_fnot(num_components, bit_width, src);
        -:        -:13368:   case nir_op_for:
    #####:    #####:13369:      return evaluate_for(num_components, bit_width, src);
        -:        -:13370:   case nir_op_fpow:
    #####:    #####:13371:      return evaluate_fpow(num_components, bit_width, src);
        -:        -:13372:   case nir_op_fquantize2f16:
    #####:    #####:13373:      return evaluate_fquantize2f16(num_components, bit_width, src);
        -:        -:13374:   case nir_op_frcp:
    #####:    #####:13375:      return evaluate_frcp(num_components, bit_width, src);
        -:        -:13376:   case nir_op_frem:
    #####:    #####:13377:      return evaluate_frem(num_components, bit_width, src);
        -:        -:13378:   case nir_op_fround_even:
    #####:    #####:13379:      return evaluate_fround_even(num_components, bit_width, src);
        -:        -:13380:   case nir_op_frsq:
    #####:    #####:13381:      return evaluate_frsq(num_components, bit_width, src);
        -:        -:13382:   case nir_op_fsat:
    #####:    #####:13383:      return evaluate_fsat(num_components, bit_width, src);
        -:        -:13384:   case nir_op_fsign:
    #####:    #####:13385:      return evaluate_fsign(num_components, bit_width, src);
        -:        -:13386:   case nir_op_fsin:
    #####:    #####:13387:      return evaluate_fsin(num_components, bit_width, src);
        -:        -:13388:   case nir_op_fsqrt:
    #####:    #####:13389:      return evaluate_fsqrt(num_components, bit_width, src);
        -:        -:13390:   case nir_op_fsub:
    #####:    #####:13391:      return evaluate_fsub(num_components, bit_width, src);
        -:        -:13392:   case nir_op_ftrunc:
    #####:    #####:13393:      return evaluate_ftrunc(num_components, bit_width, src);
        -:        -:13394:   case nir_op_fxor:
    #####:    #####:13395:      return evaluate_fxor(num_components, bit_width, src);
        -:        -:13396:   case nir_op_i2b:
    #####:    #####:13397:      return evaluate_i2b(num_components, bit_width, src);
        -:        -:13398:   case nir_op_i2f16:
    #####:    #####:13399:      return evaluate_i2f16(num_components, bit_width, src);
        -:        -:13400:   case nir_op_i2f32:
    #####:    #####:13401:      return evaluate_i2f32(num_components, bit_width, src);
        -:        -:13402:   case nir_op_i2f64:
    #####:    #####:13403:      return evaluate_i2f64(num_components, bit_width, src);
        -:        -:13404:   case nir_op_i2i16:
    #####:    #####:13405:      return evaluate_i2i16(num_components, bit_width, src);
        -:        -:13406:   case nir_op_i2i32:
    #####:    #####:13407:      return evaluate_i2i32(num_components, bit_width, src);
        -:        -:13408:   case nir_op_i2i64:
    #####:    #####:13409:      return evaluate_i2i64(num_components, bit_width, src);
        -:        -:13410:   case nir_op_i2i8:
    #####:    #####:13411:      return evaluate_i2i8(num_components, bit_width, src);
        -:        -:13412:   case nir_op_iabs:
    #####:    #####:13413:      return evaluate_iabs(num_components, bit_width, src);
        -:        -:13414:   case nir_op_iadd:
       52:       20:13415:      return evaluate_iadd(num_components, bit_width, src);
        -:        -:13416:   case nir_op_iand:
    #####:    #####:13417:      return evaluate_iand(num_components, bit_width, src);
        -:        -:13418:   case nir_op_ibfe:
    #####:    #####:13419:      return evaluate_ibfe(num_components, bit_width, src);
        -:        -:13420:   case nir_op_ibitfield_extract:
    #####:    #####:13421:      return evaluate_ibitfield_extract(num_components, bit_width, src);
        -:        -:13422:   case nir_op_idiv:
    #####:    #####:13423:      return evaluate_idiv(num_components, bit_width, src);
        -:        -:13424:   case nir_op_ieq:
       11:       11:13425:      return evaluate_ieq(num_components, bit_width, src);
        -:        -:13426:   case nir_op_ifind_msb:
    #####:    #####:13427:      return evaluate_ifind_msb(num_components, bit_width, src);
        -:        -:13428:   case nir_op_ige:
       34:        2:13429:      return evaluate_ige(num_components, bit_width, src);
        -:        -:13430:   case nir_op_ilt:
    #####:    #####:13431:      return evaluate_ilt(num_components, bit_width, src);
        -:        -:13432:   case nir_op_imax:
    #####:    #####:13433:      return evaluate_imax(num_components, bit_width, src);
        -:        -:13434:   case nir_op_imin:
    #####:    #####:13435:      return evaluate_imin(num_components, bit_width, src);
        -:        -:13436:   case nir_op_imod:
    #####:    #####:13437:      return evaluate_imod(num_components, bit_width, src);
        -:        -:13438:   case nir_op_imov:
        3:        3:13439:      return evaluate_imov(num_components, bit_width, src);
        -:        -:13440:   case nir_op_imul:
       34:        2:13441:      return evaluate_imul(num_components, bit_width, src);
        -:        -:13442:   case nir_op_imul_high:
    #####:    #####:13443:      return evaluate_imul_high(num_components, bit_width, src);
        -:        -:13444:   case nir_op_ine:
    #####:    #####:13445:      return evaluate_ine(num_components, bit_width, src);
        -:        -:13446:   case nir_op_ineg:
    #####:    #####:13447:      return evaluate_ineg(num_components, bit_width, src);
        -:        -:13448:   case nir_op_inot:
    #####:    #####:13449:      return evaluate_inot(num_components, bit_width, src);
        -:        -:13450:   case nir_op_ior:
    #####:    #####:13451:      return evaluate_ior(num_components, bit_width, src);
        -:        -:13452:   case nir_op_irem:
    #####:    #####:13453:      return evaluate_irem(num_components, bit_width, src);
        -:        -:13454:   case nir_op_ishl:
    #####:    #####:13455:      return evaluate_ishl(num_components, bit_width, src);
        -:        -:13456:   case nir_op_ishr:
    #####:    #####:13457:      return evaluate_ishr(num_components, bit_width, src);
        -:        -:13458:   case nir_op_isign:
    #####:    #####:13459:      return evaluate_isign(num_components, bit_width, src);
        -:        -:13460:   case nir_op_isub:
    #####:    #####:13461:      return evaluate_isub(num_components, bit_width, src);
        -:        -:13462:   case nir_op_ixor:
    #####:    #####:13463:      return evaluate_ixor(num_components, bit_width, src);
        -:        -:13464:   case nir_op_ldexp:
    #####:    #####:13465:      return evaluate_ldexp(num_components, bit_width, src);
        -:        -:13466:   case nir_op_pack_64_2x32:
    #####:    #####:13467:      return evaluate_pack_64_2x32(num_components, bit_width, src);
        -:        -:13468:   case nir_op_pack_64_2x32_split:
    #####:    #####:13469:      return evaluate_pack_64_2x32_split(num_components, bit_width, src);
        -:        -:13470:   case nir_op_pack_half_2x16:
    #####:    #####:13471:      return evaluate_pack_half_2x16(num_components, bit_width, src);
        -:        -:13472:   case nir_op_pack_half_2x16_split:
    #####:    #####:13473:      return evaluate_pack_half_2x16_split(num_components, bit_width, src);
        -:        -:13474:   case nir_op_pack_snorm_2x16:
    #####:    #####:13475:      return evaluate_pack_snorm_2x16(num_components, bit_width, src);
        -:        -:13476:   case nir_op_pack_snorm_4x8:
    #####:    #####:13477:      return evaluate_pack_snorm_4x8(num_components, bit_width, src);
        -:        -:13478:   case nir_op_pack_unorm_2x16:
    #####:    #####:13479:      return evaluate_pack_unorm_2x16(num_components, bit_width, src);
        -:        -:13480:   case nir_op_pack_unorm_4x8:
    #####:    #####:13481:      return evaluate_pack_unorm_4x8(num_components, bit_width, src);
        -:        -:13482:   case nir_op_pack_uvec2_to_uint:
    #####:    #####:13483:      return evaluate_pack_uvec2_to_uint(num_components, bit_width, src);
        -:        -:13484:   case nir_op_pack_uvec4_to_uint:
    #####:    #####:13485:      return evaluate_pack_uvec4_to_uint(num_components, bit_width, src);
        -:        -:13486:   case nir_op_seq:
    #####:    #####:13487:      return evaluate_seq(num_components, bit_width, src);
        -:        -:13488:   case nir_op_sge:
    #####:    #####:13489:      return evaluate_sge(num_components, bit_width, src);
        -:        -:13490:   case nir_op_slt:
    #####:    #####:13491:      return evaluate_slt(num_components, bit_width, src);
        -:        -:13492:   case nir_op_sne:
    #####:    #####:13493:      return evaluate_sne(num_components, bit_width, src);
        -:        -:13494:   case nir_op_u2f16:
    #####:    #####:13495:      return evaluate_u2f16(num_components, bit_width, src);
        -:        -:13496:   case nir_op_u2f32:
    #####:    #####:13497:      return evaluate_u2f32(num_components, bit_width, src);
        -:        -:13498:   case nir_op_u2f64:
    #####:    #####:13499:      return evaluate_u2f64(num_components, bit_width, src);
        -:        -:13500:   case nir_op_u2u16:
    #####:    #####:13501:      return evaluate_u2u16(num_components, bit_width, src);
        -:        -:13502:   case nir_op_u2u32:
    #####:    #####:13503:      return evaluate_u2u32(num_components, bit_width, src);
        -:        -:13504:   case nir_op_u2u64:
    #####:    #####:13505:      return evaluate_u2u64(num_components, bit_width, src);
        -:        -:13506:   case nir_op_u2u8:
    #####:    #####:13507:      return evaluate_u2u8(num_components, bit_width, src);
        -:        -:13508:   case nir_op_uadd_carry:
    #####:    #####:13509:      return evaluate_uadd_carry(num_components, bit_width, src);
        -:        -:13510:   case nir_op_ubfe:
    #####:    #####:13511:      return evaluate_ubfe(num_components, bit_width, src);
        -:        -:13512:   case nir_op_ubitfield_extract:
    #####:    #####:13513:      return evaluate_ubitfield_extract(num_components, bit_width, src);
        -:        -:13514:   case nir_op_udiv:
    #####:    #####:13515:      return evaluate_udiv(num_components, bit_width, src);
        -:        -:13516:   case nir_op_ufind_msb:
    #####:    #####:13517:      return evaluate_ufind_msb(num_components, bit_width, src);
        -:        -:13518:   case nir_op_uge:
    #####:    #####:13519:      return evaluate_uge(num_components, bit_width, src);
        -:        -:13520:   case nir_op_ult:
    #####:    #####:13521:      return evaluate_ult(num_components, bit_width, src);
        -:        -:13522:   case nir_op_umax:
    #####:    #####:13523:      return evaluate_umax(num_components, bit_width, src);
        -:        -:13524:   case nir_op_umax_4x8:
    #####:    #####:13525:      return evaluate_umax_4x8(num_components, bit_width, src);
        -:        -:13526:   case nir_op_umin:
    #####:    #####:13527:      return evaluate_umin(num_components, bit_width, src);
        -:        -:13528:   case nir_op_umin_4x8:
    #####:    #####:13529:      return evaluate_umin_4x8(num_components, bit_width, src);
        -:        -:13530:   case nir_op_umod:
    #####:    #####:13531:      return evaluate_umod(num_components, bit_width, src);
        -:        -:13532:   case nir_op_umul_high:
    #####:    #####:13533:      return evaluate_umul_high(num_components, bit_width, src);
        -:        -:13534:   case nir_op_umul_unorm_4x8:
    #####:    #####:13535:      return evaluate_umul_unorm_4x8(num_components, bit_width, src);
        -:        -:13536:   case nir_op_unpack_64_2x32:
    #####:    #####:13537:      return evaluate_unpack_64_2x32(num_components, bit_width, src);
        -:        -:13538:   case nir_op_unpack_64_2x32_split_x:
    #####:    #####:13539:      return evaluate_unpack_64_2x32_split_x(num_components, bit_width, src);
        -:        -:13540:   case nir_op_unpack_64_2x32_split_y:
    #####:    #####:13541:      return evaluate_unpack_64_2x32_split_y(num_components, bit_width, src);
        -:        -:13542:   case nir_op_unpack_half_2x16:
    #####:    #####:13543:      return evaluate_unpack_half_2x16(num_components, bit_width, src);
        -:        -:13544:   case nir_op_unpack_half_2x16_split_x:
    #####:    #####:13545:      return evaluate_unpack_half_2x16_split_x(num_components, bit_width, src);
        -:        -:13546:   case nir_op_unpack_half_2x16_split_y:
    #####:    #####:13547:      return evaluate_unpack_half_2x16_split_y(num_components, bit_width, src);
        -:        -:13548:   case nir_op_unpack_snorm_2x16:
    #####:    #####:13549:      return evaluate_unpack_snorm_2x16(num_components, bit_width, src);
        -:        -:13550:   case nir_op_unpack_snorm_4x8:
    #####:    #####:13551:      return evaluate_unpack_snorm_4x8(num_components, bit_width, src);
        -:        -:13552:   case nir_op_unpack_unorm_2x16:
    #####:    #####:13553:      return evaluate_unpack_unorm_2x16(num_components, bit_width, src);
        -:        -:13554:   case nir_op_unpack_unorm_4x8:
    #####:    #####:13555:      return evaluate_unpack_unorm_4x8(num_components, bit_width, src);
        -:        -:13556:   case nir_op_usadd_4x8:
    #####:    #####:13557:      return evaluate_usadd_4x8(num_components, bit_width, src);
        -:        -:13558:   case nir_op_ushr:
    #####:    #####:13559:      return evaluate_ushr(num_components, bit_width, src);
        -:        -:13560:   case nir_op_ussub_4x8:
    #####:    #####:13561:      return evaluate_ussub_4x8(num_components, bit_width, src);
        -:        -:13562:   case nir_op_usub_borrow:
    #####:    #####:13563:      return evaluate_usub_borrow(num_components, bit_width, src);
        -:        -:13564:   case nir_op_vec2:
    #####:    #####:13565:      return evaluate_vec2(num_components, bit_width, src);
        -:        -:13566:   case nir_op_vec3:
    #####:    #####:13567:      return evaluate_vec3(num_components, bit_width, src);
        -:        -:13568:   case nir_op_vec4:
    #####:    #####:13569:      return evaluate_vec4(num_components, bit_width, src);
        -:        -:13570:   default:
    #####:    #####:13571:      unreachable("shouldn't get here");
        -:        -:13572:   }
        -:        -:13573:}

src/compiler/nir_control_flow.c.gcov

        -:        -:    0:Source:nir/nir_control_flow.c
        -:        -:    0:Graph:nir/.libs/nir_control_flow.gcno
        -:        -:    0:Data:nir/.libs/nir_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir_control_flow_private.h"
        -:        -:   29:
        -:        -:   30:/**
        -:        -:   31: * \name Control flow modification
        -:        -:   32: *
        -:        -:   33: * These functions modify the control flow tree while keeping the control flow
        -:        -:   34: * graph up-to-date. The invariants respected are:
        -:        -:   35: * 1. Each then statement, else statement, or loop body must have at least one
        -:        -:   36: *    control flow node.
        -:        -:   37: * 2. Each if-statement and loop must have one basic block before it and one
        -:        -:   38: *    after.
        -:        -:   39: * 3. Two basic blocks cannot be directly next to each other.
        -:        -:   40: * 4. If a basic block has a jump instruction, there must be only one and it
        -:        -:   41: *    must be at the end of the block.
        -:        -:   42: *
        -:        -:   43: * The purpose of the second one is so that we have places to insert code during
        -:        -:   44: * GCM, as well as eliminating the possibility of critical edges.
        -:        -:   45: */
        -:        -:   46:/*@{*/
        -:        -:   47:
        -:        -:   48:static bool
      187:      213:   49:block_ends_in_jump(nir_block *block)
        -:        -:   50:{
      293:      329:   51:   return !exec_list_is_empty(&block->instr_list) &&
      106:      116:   52:          nir_block_last_instr(block)->type == nir_instr_type_jump;
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:static inline void
      348:      406:   56:block_add_pred(nir_block *block, nir_block *pred)
        -:        -:   57:{
      348:      406:   58:   _mesa_set_add(block->predecessors, pred);
      348:      406:   59:}
        -:        -:   60:
        -:        -:   61:static inline void
      191:      213:   62:block_remove_pred(nir_block *block, nir_block *pred)
        -:        -:   63:{
      191:      213:   64:   struct set_entry *entry = _mesa_set_search(block->predecessors, pred);
        -:        -:   65:
      191:      213:   66:   assert(entry);
        -:        -:   67:
      191:      213:   68:   _mesa_set_remove(block->predecessors, entry);
      191:      213:   69:}
        -:        -:   70:
        -:        -:   71:static void
      240:      286:   72:link_blocks(nir_block *pred, nir_block *succ1, nir_block *succ2)
        -:        -:   73:{
      240:      286:   74:   pred->successors[0] = succ1;
      240:      286:   75:   if (succ1 != NULL)
      232:      278:   76:      block_add_pred(succ1, pred);
        -:        -:   77:
      240:      286:   78:   pred->successors[1] = succ2;
      240:      286:   79:   if (succ2 != NULL)
       76:       84:   80:      block_add_pred(succ2, pred);
      240:      286:   81:}
        -:        -:   82:
        -:        -:   83:static void
      151:      169:   84:unlink_blocks(nir_block *pred, nir_block *succ)
        -:        -:   85:{
      151:      169:   86:   if (pred->successors[0] == succ) {
      151:      169:   87:      pred->successors[0] = pred->successors[1];
      151:      169:   88:      pred->successors[1] = NULL;
        -:        -:   89:   } else {
    #####:    #####:   90:      assert(pred->successors[1] == succ);
    #####:    #####:   91:      pred->successors[1] = NULL;
        -:        -:   92:   }
        -:        -:   93:
      151:      169:   94:   block_remove_pred(succ, pred);
      151:      169:   95:}
        -:        -:   96:
        -:        -:   97:static void
      240:      286:   98:unlink_block_successors(nir_block *block)
        -:        -:   99:{
      240:      286:  100:   if (block->successors[1] != NULL)
    #####:    #####:  101:      unlink_blocks(block, block->successors[1]);
      240:      286:  102:   if (block->successors[0] != NULL)
       10:       18:  103:      unlink_blocks(block, block->successors[0]);
      240:      286:  104:}
        -:        -:  105:
        -:        -:  106:static void
       43:       55:  107:link_non_block_to_block(nir_cf_node *node, nir_block *block)
        -:        -:  108:{
       43:       55:  109:   if (node->type == nir_cf_node_if) {
        -:        -:  110:      /*
        -:        -:  111:       * We're trying to link an if to a block after it; this just means linking
        -:        -:  112:       * the last block of the then and else branches.
        -:        -:  113:       */
        -:        -:  114:
       38:       46:  115:      nir_if *if_stmt = nir_cf_node_as_if(node);
        -:        -:  116:
       38:       46:  117:      nir_block *last_then_block = nir_if_last_then_block(if_stmt);
       38:       46:  118:      nir_block *last_else_block = nir_if_last_else_block(if_stmt);
        -:        -:  119:
       38:       46:  120:      if (!block_ends_in_jump(last_then_block)) {
       38:       46:  121:         unlink_block_successors(last_then_block);
       38:       46:  122:         link_blocks(last_then_block, block, NULL);
        -:        -:  123:      }
        -:        -:  124:
       38:       46:  125:      if (!block_ends_in_jump(last_else_block)) {
       38:       46:  126:         unlink_block_successors(last_else_block);
       38:       46:  127:         link_blocks(last_else_block, block, NULL);
        -:        -:  128:      }
        -:        -:  129:   } else {
        5:        9:  130:      assert(node->type == nir_cf_node_loop);
        -:        -:  131:   }
       43:       55:  132:}
        -:        -:  133:
        -:        -:  134:static void
       43:       55:  135:link_block_to_non_block(nir_block *block, nir_cf_node *node)
        -:        -:  136:{
       43:       55:  137:   if (node->type == nir_cf_node_if) {
        -:        -:  138:      /*
        -:        -:  139:       * We're trying to link a block to an if after it; this just means linking
        -:        -:  140:       * the block to the first block of the then and else branches.
        -:        -:  141:       */
        -:        -:  142:
       38:       46:  143:      nir_if *if_stmt = nir_cf_node_as_if(node);
        -:        -:  144:
       38:       46:  145:      nir_block *first_then_block = nir_if_first_then_block(if_stmt);
       38:       46:  146:      nir_block *first_else_block = nir_if_first_else_block(if_stmt);
        -:        -:  147:
       38:       46:  148:      unlink_block_successors(block);
       38:       46:  149:      link_blocks(block, first_then_block, first_else_block);
        -:        -:  150:   } else {
        -:        -:  151:      /*
        -:        -:  152:       * For similar reasons as the corresponding case in
        -:        -:  153:       * link_non_block_to_block(), don't worry about if the loop header has
        -:        -:  154:       * any predecessors that need to be unlinked.
        -:        -:  155:       */
        -:        -:  156:
        5:        9:  157:      nir_loop *loop = nir_cf_node_as_loop(node);
        -:        -:  158:
        5:        9:  159:      nir_block *loop_header_block = nir_loop_first_block(loop);
        -:        -:  160:
        5:        9:  161:      unlink_block_successors(block);
        5:        9:  162:      link_blocks(block, loop_header_block, NULL);
        -:        -:  163:   }
        -:        -:  164:
       43:       55:  165:}
        -:        -:  166:
        -:        -:  167:/**
        -:        -:  168: * Replace a block's successor with a different one.
        -:        -:  169: */
        -:        -:  170:static void
       40:       44:  171:replace_successor(nir_block *block, nir_block *old_succ, nir_block *new_succ)
        -:        -:  172:{
       40:       44:  173:   if (block->successors[0] == old_succ) {
       40:       44:  174:      block->successors[0] = new_succ;
        -:        -:  175:   } else {
    #####:    #####:  176:      assert(block->successors[1] == old_succ);
    #####:    #####:  177:      block->successors[1] = new_succ;
        -:        -:  178:   }
        -:        -:  179:
       40:       44:  180:   block_remove_pred(old_succ, block);
       40:       44:  181:   block_add_pred(new_succ, block);
       40:       44:  182:}
        -:        -:  183:
        -:        -:  184:/**
        -:        -:  185: * Takes a basic block and inserts a new empty basic block before it, making its
        -:        -:  186: * predecessors point to the new block. This essentially splits the block into
        -:        -:  187: * an empty header and a body so that another non-block CF node can be inserted
        -:        -:  188: * between the two. Note that this does *not* link the two basic blocks, so
        -:        -:  189: * some kind of cleanup *must* be performed after this call.
        -:        -:  190: */
        -:        -:  191:
        -:        -:  192:static nir_block *
       22:       24:  193:split_block_beginning(nir_block *block)
        -:        -:  194:{
       22:       24:  195:   nir_block *new_block = nir_block_create(ralloc_parent(block));
       22:       24:  196:   new_block->cf_node.parent = block->cf_node.parent;
       22:       24:  197:   exec_node_insert_node_before(&block->cf_node.node, &new_block->cf_node.node);
        -:        -:  198:
        -:        -:  199:   struct set_entry *entry;
       62:       68:  200:   set_foreach(block->predecessors, entry) {
       40:       44:  201:      nir_block *pred = (nir_block *) entry->key;
       40:       44:  202:      replace_successor(pred, block, new_block);
        -:        -:  203:   }
        -:        -:  204:
        -:        -:  205:   /* Any phi nodes must stay part of the new block, or else their
        -:        -:  206:    * sourcse will be messed up. This will reverse the order of the phis, but
        -:        -:  207:    * order shouldn't matter.
        -:        -:  208:    */
       22:       24:  209:   nir_foreach_instr_safe(instr, block) {
       22:       22:  210:      if (instr->type != nir_instr_type_phi)
       22:       22:  211:         break;
        -:        -:  212:
    #####:    #####:  213:      exec_node_remove(&instr->node);
    #####:    #####:  214:      instr->block = new_block;
    #####:    #####:  215:      exec_list_push_head(&new_block->instr_list, &instr->node);
        -:        -:  216:   }
        -:        -:  217:
       22:       24:  218:   return new_block;
        -:        -:  219:}
        -:        -:  220:
        -:        -:  221:static void
      141:      151:  222:rewrite_phi_preds(nir_block *block, nir_block *old_pred, nir_block *new_pred)
        -:        -:  223:{
      169:      201:  224:   nir_foreach_instr_safe(instr, block) {
       57:       89:  225:      if (instr->type != nir_instr_type_phi)
       29:       39:  226:         break;
        -:        -:  227:
       28:       50:  228:      nir_phi_instr *phi = nir_instr_as_phi(instr);
       52:      114:  229:      nir_foreach_phi_src(src, phi) {
       40:       82:  230:         if (src->pred == old_pred) {
       16:       18:  231:            src->pred = new_pred;
       16:       18:  232:            break;
        -:        -:  233:         }
        -:        -:  234:      }
        -:        -:  235:   }
      141:      151:  236:}
        -:        -:  237:
        -:        -:  238:static void
    #####:    #####:  239:insert_phi_undef(nir_block *block, nir_block *pred)
        -:        -:  240:{
    #####:    #####:  241:   nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
    #####:    #####:  242:   nir_foreach_instr(instr, block) {
    #####:    #####:  243:      if (instr->type != nir_instr_type_phi)
    #####:    #####:  244:         break;
        -:        -:  245:
    #####:    #####:  246:      nir_phi_instr *phi = nir_instr_as_phi(instr);
    #####:    #####:  247:      nir_ssa_undef_instr *undef =
    #####:    #####:  248:         nir_ssa_undef_instr_create(ralloc_parent(phi),
    #####:    #####:  249:                                    phi->dest.ssa.num_components,
    #####:    #####:  250:                                    phi->dest.ssa.bit_size);
    #####:    #####:  251:      nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
    #####:    #####:  252:      nir_phi_src *src = ralloc(phi, nir_phi_src);
    #####:    #####:  253:      src->pred = pred;
    #####:    #####:  254:      src->src.parent_instr = &phi->instr;
    #####:    #####:  255:      src->src.is_ssa = true;
    #####:    #####:  256:      src->src.ssa = &undef->def;
        -:        -:  257:
    #####:    #####:  258:      list_addtail(&src->src.use_link, &undef->def.uses);
        -:        -:  259:
    #####:    #####:  260:      exec_list_push_tail(&phi->srcs, &src->node);
        -:        -:  261:   }
    #####:    #####:  262:}
        -:        -:  263:
        -:        -:  264:/**
        -:        -:  265: * Moves the successors of source to the successors of dest, leaving both
        -:        -:  266: * successors of source NULL.
        -:        -:  267: */
        -:        -:  268:
        -:        -:  269:static void
      111:      121:  270:move_successors(nir_block *source, nir_block *dest)
        -:        -:  271:{
      111:      121:  272:   nir_block *succ1 = source->successors[0];
      111:      121:  273:   nir_block *succ2 = source->successors[1];
        -:        -:  274:
      111:      121:  275:   if (succ1) {
      103:      113:  276:      unlink_blocks(source, succ1);
      103:      113:  277:      rewrite_phi_preds(succ1, source, dest);
        -:        -:  278:   }
        -:        -:  279:
      111:      121:  280:   if (succ2) {
       38:       38:  281:      unlink_blocks(source, succ2);
       38:       38:  282:      rewrite_phi_preds(succ2, source, dest);
        -:        -:  283:   }
        -:        -:  284:
      111:      121:  285:   unlink_block_successors(dest);
      111:      121:  286:   link_blocks(dest, succ1, succ2);
      111:      121:  287:}
        -:        -:  288:
        -:        -:  289:/* Given a basic block with no successors that has been inserted into the
        -:        -:  290: * control flow tree, gives it the successors it would normally have assuming
        -:        -:  291: * it doesn't end in a jump instruction. Also inserts phi sources with undefs
        -:        -:  292: * if necessary.
        -:        -:  293: */
        -:        -:  294:static void
        1:        1:  295:block_add_normal_succs(nir_block *block)
        -:        -:  296:{
        1:        1:  297:   if (exec_node_is_tail_sentinel(block->cf_node.node.next)) {
        1:        1:  298:      nir_cf_node *parent = block->cf_node.parent;
        1:        1:  299:      if (parent->type == nir_cf_node_if) {
        1:        1:  300:         nir_cf_node *next = nir_cf_node_next(parent);
        1:        1:  301:         nir_block *next_block = nir_cf_node_as_block(next);
        -:        -:  302:
        1:        1:  303:         link_blocks(block, next_block, NULL);
    #####:    #####:  304:      } else if (parent->type == nir_cf_node_loop) {
    #####:    #####:  305:         nir_loop *loop = nir_cf_node_as_loop(parent);
        -:        -:  306:
    #####:    #####:  307:         nir_block *head_block = nir_loop_first_block(loop);
        -:        -:  308:
    #####:    #####:  309:         link_blocks(block, head_block, NULL);
    #####:    #####:  310:         insert_phi_undef(head_block, block);
        -:        -:  311:      } else {
    #####:    #####:  312:         nir_function_impl *impl = nir_cf_node_as_function(parent);
    #####:    #####:  313:         link_blocks(block, impl->end_block, NULL);
        -:        -:  314:      }
        -:        -:  315:   } else {
    #####:    #####:  316:      nir_cf_node *next = nir_cf_node_next(&block->cf_node);
    #####:    #####:  317:      if (next->type == nir_cf_node_if) {
    #####:    #####:  318:         nir_if *next_if = nir_cf_node_as_if(next);
        -:        -:  319:
    #####:    #####:  320:         nir_block *first_then_block = nir_if_first_then_block(next_if);
    #####:    #####:  321:         nir_block *first_else_block = nir_if_first_else_block(next_if);
        -:        -:  322:
    #####:    #####:  323:         link_blocks(block, first_then_block, first_else_block);
        -:        -:  324:      } else {
    #####:    #####:  325:         nir_loop *next_loop = nir_cf_node_as_loop(next);
        -:        -:  326:
    #####:    #####:  327:         nir_block *first_block = nir_loop_first_block(next_loop);
        -:        -:  328:
    #####:    #####:  329:         link_blocks(block, first_block, NULL);
    #####:    #####:  330:         insert_phi_undef(first_block, block);
        -:        -:  331:      }
        -:        -:  332:   }
        1:        1:  333:}
        -:        -:  334:
        -:        -:  335:static nir_block *
       73:       83:  336:split_block_end(nir_block *block)
        -:        -:  337:{
       73:       83:  338:   nir_block *new_block = nir_block_create(ralloc_parent(block));
       73:       83:  339:   new_block->cf_node.parent = block->cf_node.parent;
       73:       83:  340:   exec_node_insert_after(&block->cf_node.node, &new_block->cf_node.node);
        -:        -:  341:
       73:       83:  342:   if (block_ends_in_jump(block)) {
        -:        -:  343:      /* Figure out what successor block would've had if it didn't have a jump
        -:        -:  344:       * instruction, and make new_block have that successor.
        -:        -:  345:       */
    #####:    #####:  346:      block_add_normal_succs(new_block);
        -:        -:  347:   } else {
       73:       83:  348:      move_successors(block, new_block);
        -:        -:  349:   }
        -:        -:  350:
       73:       83:  351:   return new_block;
        -:        -:  352:}
        -:        -:  353:
        -:        -:  354:static nir_block *
    #####:    #####:  355:split_block_before_instr(nir_instr *instr)
        -:        -:  356:{
    #####:    #####:  357:   assert(instr->type != nir_instr_type_phi);
    #####:    #####:  358:   nir_block *new_block = split_block_beginning(instr->block);
        -:        -:  359:
    #####:    #####:  360:   nir_foreach_instr_safe(cur_instr, instr->block) {
    #####:    #####:  361:      if (cur_instr == instr)
    #####:    #####:  362:         break;
        -:        -:  363:
    #####:    #####:  364:      exec_node_remove(&cur_instr->node);
    #####:    #####:  365:      cur_instr->block = new_block;
    #####:    #####:  366:      exec_list_push_tail(&new_block->instr_list, &cur_instr->node);
        -:        -:  367:   }
        -:        -:  368:
    #####:    #####:  369:   return new_block;
        -:        -:  370:}
        -:        -:  371:
        -:        -:  372:/* Splits a basic block at the point specified by the cursor. The "before" and
        -:        -:  373: * "after" arguments are filled out with the blocks resulting from the split
        -:        -:  374: * if non-NULL. Note that the "beginning" of the block is actually interpreted
        -:        -:  375: * as before the first non-phi instruction, and it's illegal to split a block
        -:        -:  376: * before a phi instruction.
        -:        -:  377: */
        -:        -:  378:
        -:        -:  379:static void
       95:      107:  380:split_block_cursor(nir_cursor cursor,
        -:        -:  381:                   nir_block **_before, nir_block **_after)
        -:        -:  382:{
        -:        -:  383:   nir_block *before, *after;
       95:      107:  384:   switch (cursor.option) {
        -:        -:  385:   case nir_cursor_before_block:
       22:       24:  386:      after = cursor.block;
       22:       24:  387:      before = split_block_beginning(cursor.block);
       22:       24:  388:      break;
        -:        -:  389:
        -:        -:  390:   case nir_cursor_after_block:
       44:       50:  391:      before = cursor.block;
       44:       50:  392:      after = split_block_end(cursor.block);
       44:       50:  393:      break;
        -:        -:  394:
        -:        -:  395:   case nir_cursor_before_instr:
    #####:    #####:  396:      after = cursor.instr->block;
    #####:    #####:  397:      before = split_block_before_instr(cursor.instr);
    #####:    #####:  398:      break;
        -:        -:  399:
        -:        -:  400:   case nir_cursor_after_instr:
        -:        -:  401:      /* We lower this to split_block_before_instr() so that we can keep the
        -:        -:  402:       * after-a-jump-instr case contained to split_block_end().
        -:        -:  403:       */
       29:       33:  404:      if (nir_instr_is_last(cursor.instr)) {
       29:       33:  405:         before = cursor.instr->block;
       29:       33:  406:         after = split_block_end(cursor.instr->block);
        -:        -:  407:      } else {
    #####:    #####:  408:         after = cursor.instr->block;
    #####:    #####:  409:         before = split_block_before_instr(nir_instr_next(cursor.instr));
        -:        -:  410:      }
       29:       33:  411:      break;
        -:        -:  412:
        -:        -:  413:   default:
    #####:    #####:  414:      unreachable("not reached");
        -:        -:  415:   }
        -:        -:  416:
       95:      107:  417:   if (_before)
       95:      107:  418:      *_before = before;
       95:      107:  419:   if (_after)
       95:      107:  420:      *_after = after;
       95:      107:  421:}
        -:        -:  422:
        -:        -:  423:/**
        -:        -:  424: * Inserts a non-basic block between two basic blocks and links them together.
        -:        -:  425: */
        -:        -:  426:
        -:        -:  427:static void
       43:       55:  428:insert_non_block(nir_block *before, nir_cf_node *node, nir_block *after)
        -:        -:  429:{
       43:       55:  430:   node->parent = before->cf_node.parent;
       43:       55:  431:   exec_node_insert_after(&before->cf_node.node, &node->node);
       43:       55:  432:   link_block_to_non_block(before, node);
       43:       55:  433:   link_non_block_to_block(node, after);
       43:       55:  434:}
        -:        -:  435:
        -:        -:  436:/* walk up the control flow tree to find the innermost enclosed loop */
        -:        -:  437:static nir_loop *
        9:       17:  438:nearest_loop(nir_cf_node *node)
        -:        -:  439:{
       36:       68:  440:   while (node->type != nir_cf_node_loop) {
       18:       34:  441:      node = node->parent;
        -:        -:  442:   }
        -:        -:  443:
        9:       17:  444:   return nir_cf_node_as_loop(node);
        -:        -:  445:}
        -:        -:  446:
        -:        -:  447:/*
        -:        -:  448: * update the CFG after a jump instruction has been added to the end of a block
        -:        -:  449: */
        -:        -:  450:
        -:        -:  451:void
        9:       17:  452:nir_handle_add_jump(nir_block *block)
        -:        -:  453:{
        9:       17:  454:   nir_instr *instr = nir_block_last_instr(block);
        9:       17:  455:   nir_jump_instr *jump_instr = nir_instr_as_jump(instr);
        -:        -:  456:
        9:       17:  457:   unlink_block_successors(block);
        -:        -:  458:
        9:       17:  459:   nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
        9:       17:  460:   nir_metadata_preserve(impl, nir_metadata_none);
        -:        -:  461:
        9:       17:  462:   if (jump_instr->type == nir_jump_break ||
        9:       17:  463:       jump_instr->type == nir_jump_continue) {
        9:       17:  464:      nir_loop *loop = nearest_loop(&block->cf_node);
        -:        -:  465:
        9:       17:  466:      if (jump_instr->type == nir_jump_continue) {
    #####:    #####:  467:         nir_block *first_block = nir_loop_first_block(loop);
    #####:    #####:  468:         link_blocks(block, first_block, NULL);
        -:        -:  469:      } else {
        9:       17:  470:         nir_cf_node *after = nir_cf_node_next(&loop->cf_node);
        9:       17:  471:         nir_block *after_block = nir_cf_node_as_block(after);
        9:       17:  472:         link_blocks(block, after_block, NULL);
        -:        -:  473:      }
        -:        -:  474:   } else {
    #####:    #####:  475:      assert(jump_instr->type == nir_jump_return);
    #####:    #####:  476:      link_blocks(block, impl->end_block, NULL);
        -:        -:  477:   }
        9:       17:  478:}
        -:        -:  479:
        -:        -:  480:static void
        1:        1:  481:remove_phi_src(nir_block *block, nir_block *pred)
        -:        -:  482:{
        1:        1:  483:   nir_foreach_instr(instr, block) {
        1:        1:  484:      if (instr->type != nir_instr_type_phi)
        1:        1:  485:         break;
        -:        -:  486:
    #####:    #####:  487:      nir_phi_instr *phi = nir_instr_as_phi(instr);
    #####:    #####:  488:      nir_foreach_phi_src_safe(src, phi) {
    #####:    #####:  489:         if (src->pred == pred) {
    #####:    #####:  490:            list_del(&src->src.use_link);
    #####:    #####:  491:            exec_node_remove(&src->node);
        -:        -:  492:         }
        -:        -:  493:      }
        -:        -:  494:   }
        1:        1:  495:}
        -:        -:  496:
        -:        -:  497:/* Removes the successor of a block with a jump. Note that the jump to be
        -:        -:  498: * eliminated may be free-floating.
        -:        -:  499: */
        -:        -:  500:
        -:        -:  501:static void
        1:        1:  502:unlink_jump(nir_block *block, nir_jump_type type, bool add_normal_successors)
        -:        -:  503:{
        1:        1:  504:   if (block->successors[0])
        1:        1:  505:      remove_phi_src(block->successors[0], block);
        1:        1:  506:   if (block->successors[1])
    #####:    #####:  507:      remove_phi_src(block->successors[1], block);
        -:        -:  508:
        1:        1:  509:   unlink_block_successors(block);
        1:        1:  510:   if (add_normal_successors)
        1:        1:  511:      block_add_normal_succs(block);
        1:        1:  512:}
        -:        -:  513:
        -:        -:  514:void
        1:        1:  515:nir_handle_remove_jump(nir_block *block, nir_jump_type type)
        -:        -:  516:{
        1:        1:  517:   unlink_jump(block, type, true);
        -:        -:  518:
        1:        1:  519:   nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
        1:        1:  520:   nir_metadata_preserve(impl, nir_metadata_none);
        1:        1:  521:}
        -:        -:  522:
        -:        -:  523:static void
       43:       55:  524:update_if_uses(nir_cf_node *node)
        -:        -:  525:{
       43:       55:  526:   if (node->type != nir_cf_node_if)
        5:        9:  527:      return;
        -:        -:  528:
       38:       46:  529:   nir_if *if_stmt = nir_cf_node_as_if(node);
        -:        -:  530:
       38:       46:  531:   if_stmt->condition.parent_if = if_stmt;
       38:       46:  532:   if (if_stmt->condition.is_ssa) {
       38:       46:  533:      list_addtail(&if_stmt->condition.use_link,
       38:       46:  534:                   &if_stmt->condition.ssa->if_uses);
        -:        -:  535:   } else {
    #####:    #####:  536:      list_addtail(&if_stmt->condition.use_link,
    #####:    #####:  537:                   &if_stmt->condition.reg.reg->if_uses);
        -:        -:  538:   }
        -:        -:  539:}
        -:        -:  540:
        -:        -:  541:/**
        -:        -:  542: * Stitch two basic blocks together into one. The aggregate must have the same
        -:        -:  543: * predecessors as the first and the same successors as the second.
        -:        -:  544: */
        -:        -:  545:
        -:        -:  546:static void
       38:       38:  547:stitch_blocks(nir_block *before, nir_block *after)
        -:        -:  548:{
        -:        -:  549:   /*
        -:        -:  550:    * We move after into before, so we have to deal with up to 2 successors vs.
        -:        -:  551:    * possibly a large number of predecessors.
        -:        -:  552:    *
        -:        -:  553:    * TODO: special case when before is empty and after isn't?
        -:        -:  554:    */
        -:        -:  555:
       38:       38:  556:   if (block_ends_in_jump(before)) {
    #####:    #####:  557:      assert(exec_list_is_empty(&after->instr_list));
    #####:    #####:  558:      if (after->successors[0])
    #####:    #####:  559:         remove_phi_src(after->successors[0], after);
    #####:    #####:  560:      if (after->successors[1])
    #####:    #####:  561:         remove_phi_src(after->successors[1], after);
    #####:    #####:  562:      unlink_block_successors(after);
    #####:    #####:  563:      exec_node_remove(&after->cf_node.node);
        -:        -:  564:   } else {
       38:       38:  565:      move_successors(after, before);
        -:        -:  566:
      156:      156:  567:      foreach_list_typed(nir_instr, instr, node, &after->instr_list) {
      118:      118:  568:         instr->block = before;
        -:        -:  569:      }
        -:        -:  570:
       38:       38:  571:      exec_list_append(&before->instr_list, &after->instr_list);
       38:       38:  572:      exec_node_remove(&after->cf_node.node);
        -:        -:  573:   }
       38:       38:  574:}
        -:        -:  575:
        -:        -:  576:void
       43:       55:  577:nir_cf_node_insert(nir_cursor cursor, nir_cf_node *node)
        -:        -:  578:{
        -:        -:  579:   nir_block *before, *after;
        -:        -:  580:
       43:       55:  581:   split_block_cursor(cursor, &before, &after);
        -:        -:  582:
       43:       55:  583:   if (node->type == nir_cf_node_block) {
    #####:    #####:  584:      nir_block *block = nir_cf_node_as_block(node);
    #####:    #####:  585:      exec_node_insert_after(&before->cf_node.node, &block->cf_node.node);
    #####:    #####:  586:      block->cf_node.parent = before->cf_node.parent;
        -:        -:  587:      /* stitch_blocks() assumes that any block that ends with a jump has
        -:        -:  588:       * already been setup with the correct successors, so we need to set
        -:        -:  589:       * up jumps here as the block is being inserted.
        -:        -:  590:       */
    #####:    #####:  591:      if (block_ends_in_jump(block))
    #####:    #####:  592:         nir_handle_add_jump(block);
        -:        -:  593:
    #####:    #####:  594:      stitch_blocks(block, after);
    #####:    #####:  595:      stitch_blocks(before, block);
        -:        -:  596:   } else {
       43:       55:  597:      update_if_uses(node);
       43:       55:  598:      insert_non_block(before, node, after);
        -:        -:  599:   }
       43:       55:  600:}
        -:        -:  601:
        -:        -:  602:static bool
       39:       39:  603:replace_ssa_def_uses(nir_ssa_def *def, void *void_impl)
        -:        -:  604:{
       39:       39:  605:   nir_function_impl *impl = void_impl;
       39:       39:  606:   void *mem_ctx = ralloc_parent(impl);
        -:        -:  607:
       39:       39:  608:   nir_ssa_undef_instr *undef =
       39:       39:  609:      nir_ssa_undef_instr_create(mem_ctx, def->num_components,
       39:       39:  610:                                 def->bit_size);
       39:       39:  611:   nir_instr_insert_before_cf_list(&impl->body, &undef->instr);
       39:       39:  612:   nir_ssa_def_rewrite_uses(def, nir_src_for_ssa(&undef->def));
       39:       39:  613:   return true;
        -:        -:  614:}
        -:        -:  615:
        -:        -:  616:static void
      105:      105:  617:cleanup_cf_node(nir_cf_node *node, nir_function_impl *impl)
        -:        -:  618:{
      105:      105:  619:   switch (node->type) {
        -:        -:  620:   case nir_cf_node_block: {
       84:       84:  621:      nir_block *block = nir_cf_node_as_block(node);
        -:        -:  622:      /* We need to walk the instructions and clean up defs/uses */
      136:      136:  623:      nir_foreach_instr_safe(instr, block) {
       52:       52:  624:         if (instr->type == nir_instr_type_jump) {
    #####:    #####:  625:            nir_jump_type jump_type = nir_instr_as_jump(instr)->type;
    #####:    #####:  626:            unlink_jump(block, jump_type, false);
        -:        -:  627:         } else {
       52:       52:  628:            nir_foreach_ssa_def(instr, replace_ssa_def_uses, impl);
       52:       52:  629:            nir_instr_remove(instr);
        -:        -:  630:         }
        -:        -:  631:      }
       84:       84:  632:      break;
        -:        -:  633:   }
        -:        -:  634:
        -:        -:  635:   case nir_cf_node_if: {
       20:       20:  636:      nir_if *if_stmt = nir_cf_node_as_if(node);
       40:       40:  637:      foreach_list_typed(nir_cf_node, child, node, &if_stmt->then_list)
       20:       20:  638:         cleanup_cf_node(child, impl);
       40:       40:  639:      foreach_list_typed(nir_cf_node, child, node, &if_stmt->else_list)
       20:       20:  640:         cleanup_cf_node(child, impl);
        -:        -:  641:
       20:       20:  642:      list_del(&if_stmt->condition.use_link);
       20:       20:  643:      break;
        -:        -:  644:   }
        -:        -:  645:
        -:        -:  646:   case nir_cf_node_loop: {
        1:        1:  647:      nir_loop *loop = nir_cf_node_as_loop(node);
        4:        4:  648:      foreach_list_typed(nir_cf_node, child, node, &loop->body)
        3:        3:  649:         cleanup_cf_node(child, impl);
        1:        1:  650:      break;
        -:        -:  651:   }
        -:        -:  652:   case nir_cf_node_function: {
    #####:    #####:  653:      nir_function_impl *impl = nir_cf_node_as_function(node);
    #####:    #####:  654:      foreach_list_typed(nir_cf_node, child, node, &impl->body)
    #####:    #####:  655:         cleanup_cf_node(child, impl);
    #####:    #####:  656:      break;
        -:        -:  657:   }
        -:        -:  658:   default:
    #####:    #####:  659:      unreachable("Invalid CF node type");
        -:        -:  660:   }
      105:      105:  661:}
        -:        -:  662:
        -:        -:  663:void
       23:       23:  664:nir_cf_extract(nir_cf_list *extracted, nir_cursor begin, nir_cursor end)
        -:        -:  665:{
        -:        -:  666:   nir_block *block_begin, *block_end, *block_before, *block_after;
        -:        -:  667:
       23:       23:  668:   if (nir_cursors_equal(begin, end)) {
        1:        1:  669:      exec_list_make_empty(&extracted->list);
        1:        1:  670:      extracted->impl = NULL; /* we shouldn't need this */
        1:        1:  671:      return;
        -:        -:  672:   }
        -:        -:  673:
        -:        -:  674:   /* In the case where begin points to an instruction in some basic block and
        -:        -:  675:    * end points to the end of the same basic block, we rely on the fact that
        -:        -:  676:    * splitting on an instruction moves earlier instructions into a new basic
        -:        -:  677:    * block. If the later instructions were moved instead, then the end cursor
        -:        -:  678:    * would be pointing to the same place that begin used to point to, which
        -:        -:  679:    * is obviously not what we want.
        -:        -:  680:    */
       22:       22:  681:   split_block_cursor(begin, &block_before, &block_begin);
       22:       22:  682:   split_block_cursor(end, &block_end, &block_after);
        -:        -:  683:
       22:       22:  684:   extracted->impl = nir_cf_node_get_function(&block_begin->cf_node);
       22:       22:  685:   exec_list_make_empty(&extracted->list);
        -:        -:  686:
        -:        -:  687:   /* Dominance and other block-related information is toast. */
       22:       22:  688:   nir_metadata_preserve(extracted->impl, nir_metadata_none);
        -:        -:  689:
       22:       22:  690:   nir_cf_node *cf_node = &block_begin->cf_node;
       22:       22:  691:   nir_cf_node *cf_node_end = &block_end->cf_node;
        -:        -:  692:   while (true) {
       62:       62:  693:      nir_cf_node *next = nir_cf_node_next(cf_node);
        -:        -:  694:
       62:       62:  695:      exec_node_remove(&cf_node->node);
       62:       62:  696:      cf_node->parent = NULL;
       62:       62:  697:      exec_list_push_tail(&extracted->list, &cf_node->node);
        -:        -:  698:
       62:       62:  699:      if (cf_node == cf_node_end)
       22:       22:  700:         break;
        -:        -:  701:
       40:       40:  702:      cf_node = next;
       40:       40:  703:   }
        -:        -:  704:
       22:       22:  705:   stitch_blocks(block_before, block_after);
        -:        -:  706:}
        -:        -:  707:
        -:        -:  708:void
        9:        9:  709:nir_cf_reinsert(nir_cf_list *cf_list, nir_cursor cursor)
        -:        -:  710:{
        -:        -:  711:   nir_block *before, *after;
        -:        -:  712:
        9:        9:  713:   if (exec_list_is_empty(&cf_list->list))
        1:        1:  714:      return;
        -:        -:  715:
        8:        8:  716:   split_block_cursor(cursor, &before, &after);
        -:        -:  717:
       22:       22:  718:   foreach_list_typed_safe(nir_cf_node, node, node, &cf_list->list) {
       14:       14:  719:      exec_node_remove(&node->node);
       14:       14:  720:      node->parent = before->cf_node.parent;
       14:       14:  721:      exec_node_insert_node_before(&after->cf_node.node, &node->node);
        -:        -:  722:   }
        -:        -:  723:
        8:        8:  724:   stitch_blocks(before,
        8:        8:  725:                 nir_cf_node_as_block(nir_cf_node_next(&before->cf_node)));
        8:        8:  726:   stitch_blocks(nir_cf_node_as_block(nir_cf_node_prev(&after->cf_node)),
        -:        -:  727:                 after);
        -:        -:  728:}
        -:        -:  729:
        -:        -:  730:void
       22:       22:  731:nir_cf_delete(nir_cf_list *cf_list)
        -:        -:  732:{
       84:       84:  733:   foreach_list_typed(nir_cf_node, node, node, &cf_list->list) {
       62:       62:  734:      cleanup_cf_node(node, cf_list->impl);
        -:        -:  735:   }
       22:       22:  736:}

src/compiler/nir_dominance.c.gcov

        -:        -:    0:Source:nir/nir_dominance.c
        -:        -:    0:Graph:nir/.libs/nir_dominance.gcno
        -:        -:    0:Data:nir/.libs/nir_dominance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:/*
        -:        -:   31: * Implements the algorithms for computing the dominance tree and the
        -:        -:   32: * dominance frontier from "A Simple, Fast Dominance Algorithm" by Cooper,
        -:        -:   33: * Harvey, and Kennedy.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:static bool
      188:      252:   37:init_block(nir_block *block, nir_function_impl *impl)
        -:        -:   38:{
      188:      252:   39:   if (block == nir_start_block(impl))
       12:       12:   40:      block->imm_dom = block;
        -:        -:   41:   else
      176:      240:   42:      block->imm_dom = NULL;
      188:      252:   43:   block->num_dom_children = 0;
        -:        -:   44:
        -:        -:   45:   struct set_entry *entry;
      246:      362:   46:   set_foreach(block->dom_frontier, entry) {
       58:      110:   47:      _mesa_set_remove(block->dom_frontier, entry);
        -:        -:   48:   }
        -:        -:   49:
      188:      252:   50:   return true;
        -:        -:   51:}
        -:        -:   52:
        -:        -:   53:static nir_block *
       94:      118:   54:intersect(nir_block *b1, nir_block *b2)
        -:        -:   55:{
      316:      376:   56:   while (b1 != b2) {
        -:        -:   57:      /*
        -:        -:   58:       * Note, the comparisons here are the opposite of what the paper says
        -:        -:   59:       * because we index blocks from beginning -> end (i.e. reverse
        -:        -:   60:       * post-order) instead of post-order like they assume.
        -:        -:   61:       */
      388:      506:   62:      while (b1->index > b2->index)
      132:      226:   63:         b1 = b1->imm_dom;
      424:      506:   64:      while (b2->index > b1->index)
      168:      226:   65:         b2 = b2->imm_dom;
        -:        -:   66:   }
        -:        -:   67:
       94:      118:   68:   return b1;
        -:        -:   69:}
        -:        -:   70:
        -:        -:   71:static bool
      352:      480:   72:calc_dominance(nir_block *block)
        -:        -:   73:{
      352:      480:   74:   nir_block *new_idom = NULL;
        -:        -:   75:   struct set_entry *entry;
      808:     1096:   76:   set_foreach(block->predecessors, entry) {
      456:      616:   77:      nir_block *pred = (nir_block *) entry->key;
        -:        -:   78:
      456:      616:   79:      if (pred->imm_dom) {
      446:      598:   80:         if (new_idom)
       94:      118:   81:            new_idom = intersect(pred, new_idom);
        -:        -:   82:         else
      352:      480:   83:            new_idom = pred;
        -:        -:   84:      }
        -:        -:   85:   }
        -:        -:   86:
      352:      480:   87:   if (block->imm_dom != new_idom) {
      176:      240:   88:      block->imm_dom = new_idom;
      176:      240:   89:      return true;
        -:        -:   90:   }
        -:        -:   91:
      176:      240:   92:   return false;
        -:        -:   93:}
        -:        -:   94:
        -:        -:   95:static bool
      188:      252:   96:calc_dom_frontier(nir_block *block)
        -:        -:   97:{
      188:      252:   98:   if (block->predecessors->entries > 1) {
        -:        -:   99:      struct set_entry *entry;
      156:      204:  100:      set_foreach(block->predecessors, entry) {
      104:      136:  101:         nir_block *runner = (nir_block *) entry->key;
        -:        -:  102:
        -:        -:  103:         /* Skip unreachable predecessors */
      104:      136:  104:         if (runner->imm_dom == NULL)
    #####:    #####:  105:            continue;
        -:        -:  106:
      388:      556:  107:         while (runner != block->imm_dom) {
      180:      284:  108:            _mesa_set_add(runner->dom_frontier, block);
      180:      284:  109:            runner = runner->imm_dom;
        -:        -:  110:         }
        -:        -:  111:      }
        -:        -:  112:   }
        -:        -:  113:
      188:      252:  114:   return true;
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:/*
        -:        -:  118: * Compute each node's children in the dominance tree from the immediate
        -:        -:  119: * dominator information. We do this in three stages:
        -:        -:  120: *
        -:        -:  121: * 1. Calculate the number of children each node has
        -:        -:  122: * 2. Allocate arrays, setting the number of children to 0 again
        -:        -:  123: * 3. For each node, add itself to its parent's list of children, using
        -:        -:  124: *    num_dom_children as an index - at the end of this step, num_dom_children
        -:        -:  125: *    for each node will be the same as it was at the end of step #1.
        -:        -:  126: */
        -:        -:  127:
        -:        -:  128:static void
       12:       12:  129:calc_dom_children(nir_function_impl* impl)
        -:        -:  130:{
       12:       12:  131:   void *mem_ctx = ralloc_parent(impl);
        -:        -:  132:
      200:      264:  133:   nir_foreach_block(block, impl) {
      188:      252:  134:      if (block->imm_dom)
      176:      240:  135:         block->imm_dom->num_dom_children++;
        -:        -:  136:   }
        -:        -:  137:
      200:      264:  138:   nir_foreach_block(block, impl) {
      188:      252:  139:      block->dom_children = ralloc_array(mem_ctx, nir_block *,
        -:        -:  140:                                         block->num_dom_children);
      188:      252:  141:      block->num_dom_children = 0;
        -:        -:  142:   }
        -:        -:  143:
      200:      264:  144:   nir_foreach_block(block, impl) {
      188:      252:  145:      if (block->imm_dom) {
      176:      240:  146:         block->imm_dom->dom_children[block->imm_dom->num_dom_children++]
      176:      240:  147:            = block;
        -:        -:  148:      }
        -:        -:  149:   }
       12:       12:  150:}
        -:        -:  151:
        -:        -:  152:static void
      188:      252:  153:calc_dfs_indicies(nir_block *block, unsigned *index)
        -:        -:  154:{
      188:      252:  155:   block->dom_pre_index = (*index)++;
        -:        -:  156:
      364:      492:  157:   for (unsigned i = 0; i < block->num_dom_children; i++)
      176:      240:  158:      calc_dfs_indicies(block->dom_children[i], index);
        -:        -:  159:
      188:      252:  160:   block->dom_post_index = (*index)++;
      188:      252:  161:}
        -:        -:  162:
        -:        -:  163:void
       12:       12:  164:nir_calc_dominance_impl(nir_function_impl *impl)
        -:        -:  165:{
       12:       12:  166:   if (impl->valid_metadata & nir_metadata_dominance)
    #####:    #####:  167:      return;
        -:        -:  168:
       12:       12:  169:   nir_metadata_require(impl, nir_metadata_block_index);
        -:        -:  170:
        -:        -:  171:
      200:      264:  172:   nir_foreach_block(block, impl) {
      188:      252:  173:      init_block(block, impl);
        -:        -:  174:   }
        -:        -:  175:
       12:       12:  176:   bool progress = true;
       40:       40:  177:   while (progress) {
       16:       16:  178:      progress = false;
      384:      512:  179:      nir_foreach_block(block, impl) {
      368:      496:  180:         if (block != nir_start_block(impl))
      352:      480:  181:            progress |= calc_dominance(block);
        -:        -:  182:      }
        -:        -:  183:   }
        -:        -:  184:
      200:      264:  185:   nir_foreach_block(block, impl) {
      188:      252:  186:      calc_dom_frontier(block);
        -:        -:  187:   }
        -:        -:  188:
       12:       12:  189:   nir_block *start_block = nir_start_block(impl);
       12:       12:  190:   start_block->imm_dom = NULL;
        -:        -:  191:
       12:       12:  192:   calc_dom_children(impl);
        -:        -:  193:
       12:       12:  194:   unsigned dfs_index = 0;
       12:       12:  195:   calc_dfs_indicies(start_block, &dfs_index);
        -:        -:  196:}
        -:        -:  197:
        -:        -:  198:void
    #####:    #####:  199:nir_calc_dominance(nir_shader *shader)
        -:        -:  200:{
    #####:    #####:  201:   nir_foreach_function(function, shader) {
    #####:    #####:  202:      if (function->impl)
    #####:    #####:  203:         nir_calc_dominance_impl(function->impl);
        -:        -:  204:   }
    #####:    #####:  205:}
        -:        -:  206:
        -:        -:  207:/**
        -:        -:  208: * Computes the least common anscestor of two blocks.  If one of the blocks
        -:        -:  209: * is null, the other block is returned.
        -:        -:  210: */
        -:        -:  211:nir_block *
    #####:    #####:  212:nir_dominance_lca(nir_block *b1, nir_block *b2)
        -:        -:  213:{
    #####:    #####:  214:   if (b1 == NULL)
    #####:    #####:  215:      return b2;
        -:        -:  216:
    #####:    #####:  217:   if (b2 == NULL)
    #####:    #####:  218:      return b1;
        -:        -:  219:
    #####:    #####:  220:   assert(nir_cf_node_get_function(&b1->cf_node) ==
        -:        -:  221:          nir_cf_node_get_function(&b2->cf_node));
        -:        -:  222:
    #####:    #####:  223:   assert(nir_cf_node_get_function(&b1->cf_node)->valid_metadata &
        -:        -:  224:          nir_metadata_dominance);
        -:        -:  225:
    #####:    #####:  226:   return intersect(b1, b2);
        -:        -:  227:}
        -:        -:  228:
        -:        -:  229:/**
        -:        -:  230: * Returns true if parent dominates child
        -:        -:  231: */
        -:        -:  232:bool
      198:      422:  233:nir_block_dominates(nir_block *parent, nir_block *child)
        -:        -:  234:{
      198:      422:  235:   assert(nir_cf_node_get_function(&parent->cf_node) ==
        -:        -:  236:          nir_cf_node_get_function(&child->cf_node));
        -:        -:  237:
      198:      422:  238:   assert(nir_cf_node_get_function(&parent->cf_node)->valid_metadata &
        -:        -:  239:          nir_metadata_dominance);
        -:        -:  240:
      396:      844:  241:   return child->dom_pre_index >= parent->dom_pre_index &&
      198:      422:  242:          child->dom_post_index <= parent->dom_post_index;
        -:        -:  243:}
        -:        -:  244:
        -:        -:  245:void
    #####:    #####:  246:nir_dump_dom_tree_impl(nir_function_impl *impl, FILE *fp)
        -:        -:  247:{
    #####:    #####:  248:   fprintf(fp, "digraph doms_%s {\n", impl->function->name);
        -:        -:  249:
    #####:    #####:  250:   nir_foreach_block(block, impl) {
    #####:    #####:  251:      if (block->imm_dom)
    #####:    #####:  252:         fprintf(fp, "\t%u -> %u\n", block->imm_dom->index, block->index);
        -:        -:  253:   }
        -:        -:  254:
    #####:    #####:  255:   fprintf(fp, "}\n\n");
    #####:    #####:  256:}
        -:        -:  257:
        -:        -:  258:void
    #####:    #####:  259:nir_dump_dom_tree(nir_shader *shader, FILE *fp)
        -:        -:  260:{
    #####:    #####:  261:   nir_foreach_function(function, shader) {
    #####:    #####:  262:      if (function->impl)
    #####:    #####:  263:         nir_dump_dom_tree_impl(function->impl, fp);
        -:        -:  264:   }
    #####:    #####:  265:}
        -:        -:  266:
        -:        -:  267:void
    #####:    #####:  268:nir_dump_dom_frontier_impl(nir_function_impl *impl, FILE *fp)
        -:        -:  269:{
    #####:    #####:  270:   nir_foreach_block(block, impl) {
    #####:    #####:  271:      fprintf(fp, "DF(%u) = {", block->index);
        -:        -:  272:      struct set_entry *entry;
    #####:    #####:  273:      set_foreach(block->dom_frontier, entry) {
    #####:    #####:  274:         nir_block *df = (nir_block *) entry->key;
    #####:    #####:  275:         fprintf(fp, "%u, ", df->index);
        -:        -:  276:      }
    #####:    #####:  277:      fprintf(fp, "}\n");
        -:        -:  278:   }
    #####:    #####:  279:}
        -:        -:  280:
        -:        -:  281:void
    #####:    #####:  282:nir_dump_dom_frontier(nir_shader *shader, FILE *fp)
        -:        -:  283:{
    #####:    #####:  284:   nir_foreach_function(function, shader) {
    #####:    #####:  285:      if (function->impl)
    #####:    #####:  286:         nir_dump_dom_frontier_impl(function->impl, fp);
        -:        -:  287:   }
    #####:    #####:  288:}
        -:        -:  289:
        -:        -:  290:void
    #####:    #####:  291:nir_dump_cfg_impl(nir_function_impl *impl, FILE *fp)
        -:        -:  292:{
    #####:    #####:  293:   fprintf(fp, "digraph cfg_%s {\n", impl->function->name);
        -:        -:  294:
    #####:    #####:  295:   nir_foreach_block(block, impl) {
    #####:    #####:  296:      if (block->successors[0])
    #####:    #####:  297:         fprintf(fp, "\t%u -> %u\n", block->index, block->successors[0]->index);
    #####:    #####:  298:      if (block->successors[1])
    #####:    #####:  299:         fprintf(fp, "\t%u -> %u\n", block->index, block->successors[1]->index);
        -:        -:  300:   }
        -:        -:  301:
    #####:    #####:  302:   fprintf(fp, "}\n\n");
    #####:    #####:  303:}
        -:        -:  304:
        -:        -:  305:void
    #####:    #####:  306:nir_dump_cfg(nir_shader *shader, FILE *fp)
        -:        -:  307:{
    #####:    #####:  308:   nir_foreach_function(function, shader) {
    #####:    #####:  309:      if (function->impl)
    #####:    #####:  310:         nir_dump_cfg_impl(function->impl, fp);
        -:        -:  311:   }
    #####:    #####:  312:}

src/compiler/nir_from_ssa.c.gcov

        -:        -:    0:Source:nir/nir_from_ssa.c
        -:        -:    0:Graph:nir/.libs/nir_from_ssa.gcno
        -:        -:    0:Data:nir/.libs/nir_from_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_builder.h"
        -:        -:   30:#include "nir_vla.h"
        -:        -:   31:
        -:        -:   32:/*
        -:        -:   33: * This file implements an out-of-SSA pass as described in "Revisiting
        -:        -:   34: * Out-of-SSA Translation for Correctness, Code Quality, and Efficiency" by
        -:        -:   35: * Boissinot et al.
        -:        -:   36: */
        -:        -:   37:
        -:        -:   38:struct from_ssa_state {
        -:        -:   39:   nir_builder builder;
        -:        -:   40:   void *dead_ctx;
        -:        -:   41:   bool phi_webs_only;
        -:        -:   42:   struct hash_table *merge_node_table;
        -:        -:   43:   nir_instr *instr;
        -:        -:   44:   bool progress;
        -:        -:   45:};
        -:        -:   46:
        -:        -:   47:/* Returns true if a dominates b */
        -:        -:   48:static bool
      263:      515:   49:ssa_def_dominates(nir_ssa_def *a, nir_ssa_def *b)
        -:        -:   50:{
      263:      515:   51:   if (a->live_index == 0) {
        -:        -:   52:      /* SSA undefs always dominate */
       14:       12:   53:      return true;
      249:      503:   54:   } else if (b->live_index < a->live_index) {
    #####:    #####:   55:      return false;
      249:      503:   56:   } else if (a->parent_instr->block == b->parent_instr->block) {
       51:       81:   57:      return a->live_index <= b->live_index;
        -:        -:   58:   } else {
      198:      422:   59:      return nir_block_dominates(a->parent_instr->block,
      198:      422:   60:                                 b->parent_instr->block);
        -:        -:   61:   }
        -:        -:   62:}
        -:        -:   63:
        -:        -:   64:
        -:        -:   65:/* The following data structure, which I have named merge_set is a way of
        -:        -:   66: * representing a set registers of non-interfering registers.  This is
        -:        -:   67: * based on the concept of a "dominance forest" presented in "Fast Copy
        -:        -:   68: * Coalescing and Live-Range Identification" by Budimlic et al. but the
        -:        -:   69: * implementation concept is taken from  "Revisiting Out-of-SSA Translation
        -:        -:   70: * for Correctness, Code Quality, and Efficiency" by Boissinot et al.
        -:        -:   71: *
        -:        -:   72: * Each SSA definition is associated with a merge_node and the association
        -:        -:   73: * is represented by a combination of a hash table and the "def" parameter
        -:        -:   74: * in the merge_node structure.  The merge_set stores a linked list of
        -:        -:   75: * merge_nodes in dominance order of the ssa definitions.  (Since the
        -:        -:   76: * liveness analysis pass indexes the SSA values in dominance order for us,
        -:        -:   77: * this is an easy thing to keep up.)  It is assumed that no pair of the
        -:        -:   78: * nodes in a given set interfere.  Merging two sets or checking for
        -:        -:   79: * interference can be done in a single linear-time merge-sort walk of the
        -:        -:   80: * two lists of nodes.
        -:        -:   81: */
        -:        -:   82:struct merge_set;
        -:        -:   83:
        -:        -:   84:typedef struct {
        -:        -:   85:   struct exec_node node;
        -:        -:   86:   struct merge_set *set;
        -:        -:   87:   nir_ssa_def *def;
        -:        -:   88:} merge_node;
        -:        -:   89:
        -:        -:   90:typedef struct merge_set {
        -:        -:   91:   struct exec_list nodes;
        -:        -:   92:   unsigned size;
        -:        -:   93:   nir_register *reg;
        -:        -:   94:} merge_set;
        -:        -:   95:
        -:        -:   96:#if 0
        -:        -:   97:static void
        -:        -:   98:merge_set_dump(merge_set *set, FILE *fp)
        -:        -:   99:{
        -:        -:  100:   nir_ssa_def *dom[set->size];
        -:        -:  101:   int dom_idx = -1;
        -:        -:  102:
        -:        -:  103:   foreach_list_typed(merge_node, node, node, &set->nodes) {
        -:        -:  104:      while (dom_idx >= 0 && !ssa_def_dominates(dom[dom_idx], node->def))
        -:        -:  105:         dom_idx--;
        -:        -:  106:
        -:        -:  107:      for (int i = 0; i <= dom_idx; i++)
        -:        -:  108:         fprintf(fp, "  ");
        -:        -:  109:
        -:        -:  110:      if (node->def->name)
        -:        -:  111:         fprintf(fp, "ssa_%d /* %s */\n", node->def->index, node->def->name);
        -:        -:  112:      else
        -:        -:  113:         fprintf(fp, "ssa_%d\n", node->def->index);
        -:        -:  114:
        -:        -:  115:      dom[++dom_idx] = node->def;
        -:        -:  116:   }
        -:        -:  117:}
        -:        -:  118:#endif
        -:        -:  119:
        -:        -:  120:static merge_node *
      123:      195:  121:get_merge_node(nir_ssa_def *def, struct from_ssa_state *state)
        -:        -:  122:{
      123:      195:  123:   struct hash_entry *entry =
      123:      195:  124:      _mesa_hash_table_search(state->merge_node_table, def);
      123:      195:  125:   if (entry)
       50:       90:  126:      return entry->data;
        -:        -:  127:
       73:      105:  128:   merge_set *set = ralloc(state->dead_ctx, merge_set);
       73:      105:  129:   exec_list_make_empty(&set->nodes);
       73:      105:  130:   set->size = 1;
       73:      105:  131:   set->reg = NULL;
        -:        -:  132:
       73:      105:  133:   merge_node *node = ralloc(state->dead_ctx, merge_node);
       73:      105:  134:   node->set = set;
       73:      105:  135:   node->def = def;
       73:      105:  136:   exec_list_push_head(&set->nodes, &node->node);
        -:        -:  137:
       73:      105:  138:   _mesa_hash_table_insert(state->merge_node_table, def, node);
        -:        -:  139:
       73:      105:  140:   return node;
        -:        -:  141:}
        -:        -:  142:
        -:        -:  143:static bool
      166:      330:  144:merge_nodes_interfere(merge_node *a, merge_node *b)
        -:        -:  145:{
      166:      330:  146:   return nir_ssa_defs_interfere(a->def, b->def);
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:/* Merges b into a */
        -:        -:  150:static merge_set *
       62:       94:  151:merge_merge_sets(merge_set *a, merge_set *b)
        -:        -:  152:{
       62:       94:  153:   struct exec_node *an = exec_list_get_head(&a->nodes);
       62:       94:  154:   struct exec_node *bn = exec_list_get_head(&b->nodes);
      357:      589:  155:   while (!exec_node_is_tail_sentinel(bn)) {
      233:      401:  156:      merge_node *a_node = exec_node_data(merge_node, an, node);
      233:      401:  157:      merge_node *b_node = exec_node_data(merge_node, bn, node);
        -:        -:  158:
      413:      741:  159:      if (exec_node_is_tail_sentinel(an) ||
      283:      491:  160:          a_node->def->live_index > b_node->def->live_index) {
      103:      151:  161:         struct exec_node *next = bn->next;
      103:      151:  162:         exec_node_remove(bn);
      103:      151:  163:         exec_node_insert_node_before(an, bn);
      103:      151:  164:         exec_node_data(merge_node, bn, node)->set = a;
      103:      151:  165:         bn = next;
        -:        -:  166:      } else {
      130:      250:  167:         an = an->next;
        -:        -:  168:      }
        -:        -:  169:   }
        -:        -:  170:
       62:       94:  171:   a->size += b->size;
       62:       94:  172:   b->size = 0;
        -:        -:  173:
       62:       94:  174:   return a;
        -:        -:  175:}
        -:        -:  176:
        -:        -:  177:/* Checks for any interference between two merge sets
        -:        -:  178: *
        -:        -:  179: * This is an implementation of Algorithm 2 in "Revisiting Out-of-SSA
        -:        -:  180: * Translation for Correctness, Code Quality, and Efficiency" by
        -:        -:  181: * Boissinot et al.
        -:        -:  182: */
        -:        -:  183:static bool
       35:       51:  184:merge_sets_interfere(merge_set *a, merge_set *b)
        -:        -:  185:{
       35:       51:  186:   NIR_VLA(merge_node *, dom, a->size + b->size);
       35:       51:  187:   int dom_idx = -1;
        -:        -:  188:
       35:       51:  189:   struct exec_node *an = exec_list_get_head(&a->nodes);
       35:       51:  190:   struct exec_node *bn = exec_list_get_head(&b->nodes);
      364:      592:  191:   while (!exec_node_is_tail_sentinel(an) ||
       82:      102:  192:          !exec_node_is_tail_sentinel(bn)) {
        -:        -:  193:
        -:        -:  194:      merge_node *current;
      215:      391:  195:      if (exec_node_is_tail_sentinel(an)) {
       50:       54:  196:         current = exec_node_data(merge_node, bn, node);
       50:       54:  197:         bn = bn->next;
      165:      337:  198:      } else if (exec_node_is_tail_sentinel(bn)) {
       16:       44:  199:         current = exec_node_data(merge_node, an, node);
       16:       44:  200:         an = an->next;
        -:        -:  201:      } else {
      149:      293:  202:         merge_node *a_node = exec_node_data(merge_node, an, node);
      149:      293:  203:         merge_node *b_node = exec_node_data(merge_node, bn, node);
        -:        -:  204:
      149:      293:  205:         if (a_node->def->live_index <= b_node->def->live_index) {
      121:      239:  206:            current = a_node;
      121:      239:  207:            an = an->next;
        -:        -:  208:         } else {
       28:       54:  209:            current = b_node;
       28:       54:  210:            bn = bn->next;
        -:        -:  211:         }
        -:        -:  212:      }
        -:        -:  213:
      790:     1482:  214:      while (dom_idx >= 0 &&
      263:      515:  215:             !ssa_def_dominates(dom[dom_idx]->def, current->def))
       97:      185:  216:         dom_idx--;
        -:        -:  217:
      215:      391:  218:      if (dom_idx >= 0 && merge_nodes_interfere(current, dom[dom_idx]))
        3:        3:  219:         return true;
        -:        -:  220:
      212:      388:  221:      dom[++dom_idx] = current;
        -:        -:  222:   }
        -:        -:  223:
       32:       48:  224:   return false;
        -:        -:  225:}
        -:        -:  226:
        -:        -:  227:static bool
       36:       52:  228:add_parallel_copy_to_end_of_block(nir_block *block, void *dead_ctx)
        -:        -:  229:{
        -:        -:  230:
       36:       52:  231:   bool need_end_copy = false;
       36:       52:  232:   if (block->successors[0]) {
       36:       52:  233:      nir_instr *instr = nir_block_first_instr(block->successors[0]);
       36:       52:  234:      if (instr && instr->type == nir_instr_type_phi)
       18:       22:  235:         need_end_copy = true;
        -:        -:  236:   }
        -:        -:  237:
       36:       52:  238:   if (block->successors[1]) {
        9:       13:  239:      nir_instr *instr = nir_block_first_instr(block->successors[1]);
        9:       13:  240:      if (instr && instr->type == nir_instr_type_phi)
    #####:    #####:  241:         need_end_copy = true;
        -:        -:  242:   }
        -:        -:  243:
       36:       52:  244:   if (need_end_copy) {
        -:        -:  245:      /* If one of our successors has at least one phi node, we need to
        -:        -:  246:       * create a parallel copy at the end of the block but before the jump
        -:        -:  247:       * (if there is one).
        -:        -:  248:       */
       18:       22:  249:      nir_parallel_copy_instr *pcopy =
        -:        -:  250:         nir_parallel_copy_instr_create(dead_ctx);
        -:        -:  251:
       18:       22:  252:      nir_instr_insert(nir_after_block_before_jump(block), &pcopy->instr);
        -:        -:  253:   }
        -:        -:  254:
       36:       52:  255:   return true;
        -:        -:  256:}
        -:        -:  257:
        -:        -:  258:static nir_parallel_copy_instr *
       98:      140:  259:get_parallel_copy_at_end_of_block(nir_block *block)
        -:        -:  260:{
       98:      140:  261:   nir_instr *last_instr = nir_block_last_instr(block);
       98:      140:  262:   if (last_instr == NULL)
        9:       19:  263:      return NULL;
        -:        -:  264:
        -:        -:  265:   /* The last instruction may be a jump in which case the parallel copy is
        -:        -:  266:    * right before it.
        -:        -:  267:    */
       89:      121:  268:   if (last_instr->type == nir_instr_type_jump)
       20:       36:  269:      last_instr = nir_instr_prev(last_instr);
        -:        -:  270:
       89:      121:  271:   if (last_instr && last_instr->type == nir_instr_type_parallel_copy)
       57:       81:  272:      return nir_instr_as_parallel_copy(last_instr);
        -:        -:  273:   else
       32:       40:  274:      return NULL;
        -:        -:  275:}
        -:        -:  276:
        -:        -:  277:/** Isolate phi nodes with parallel copies
        -:        -:  278: *
        -:        -:  279: * In order to solve the dependency problems with the sources and
        -:        -:  280: * destinations of phi nodes, we first isolate them by adding parallel
        -:        -:  281: * copies to the beginnings and ends of basic blocks.  For every block with
        -:        -:  282: * phi nodes, we add a parallel copy immediately following the last phi
        -:        -:  283: * node that copies the destinations of all of the phi nodes to new SSA
        -:        -:  284: * values.  We also add a parallel copy to the end of every block that has
        -:        -:  285: * a successor with phi nodes that, for each phi node in each successor,
        -:        -:  286: * copies the corresponding sorce of the phi node and adjust the phi to
        -:        -:  287: * used the destination of the parallel copy.
        -:        -:  288: *
        -:        -:  289: * In SSA form, each value has exactly one definition.  What this does is
        -:        -:  290: * ensure that each value used in a phi also has exactly one use.  The
        -:        -:  291: * destinations of phis are only used by the parallel copy immediately
        -:        -:  292: * following the phi nodes and.  Thanks to the parallel copy at the end of
        -:        -:  293: * the predecessor block, the sources of phi nodes are are the only use of
        -:        -:  294: * that value.  This allows us to immediately assign all the sources and
        -:        -:  295: * destinations of any given phi node to the same register without worrying
        -:        -:  296: * about interference at all.  We do coalescing to get rid of the parallel
        -:        -:  297: * copies where possible.
        -:        -:  298: *
        -:        -:  299: * Before this pass can be run, we have to iterate over the blocks with
        -:        -:  300: * add_parallel_copy_to_end_of_block to ensure that the parallel copies at
        -:        -:  301: * the ends of blocks exist.  We can create the ones at the beginnings as
        -:        -:  302: * we go, but the ones at the ends of blocks need to be created ahead of
        -:        -:  303: * time because of potential back-edges in the CFG.
        -:        -:  304: */
        -:        -:  305:static bool
       36:       52:  306:isolate_phi_nodes_block(nir_block *block, void *dead_ctx)
        -:        -:  307:{
       36:       52:  308:   nir_instr *last_phi_instr = NULL;
       51:       75:  309:   nir_foreach_instr(instr, block) {
        -:        -:  310:      /* Phi nodes only ever come at the start of a block */
       47:       61:  311:      if (instr->type != nir_instr_type_phi)
       32:       38:  312:         break;
        -:        -:  313:
       15:       23:  314:      last_phi_instr = instr;
        -:        -:  315:   }
        -:        -:  316:
        -:        -:  317:   /* If we don't have any phis, then there's nothing for us to do. */
       36:       52:  318:   if (last_phi_instr == NULL)
       27:       41:  319:      return true;
        -:        -:  320:
        -:        -:  321:   /* If we have phi nodes, we need to create a parallel copy at the
        -:        -:  322:    * start of this block but after the phi nodes.
        -:        -:  323:    */
        9:       11:  324:   nir_parallel_copy_instr *block_pcopy =
        -:        -:  325:      nir_parallel_copy_instr_create(dead_ctx);
        9:       11:  326:   nir_instr_insert_after(last_phi_instr, &block_pcopy->instr);
        -:        -:  327:
       24:       34:  328:   nir_foreach_instr(instr, block) {
        -:        -:  329:      /* Phi nodes only ever come at the start of a block */
       24:       34:  330:      if (instr->type != nir_instr_type_phi)
        9:       11:  331:         break;
        -:        -:  332:
       15:       23:  333:      nir_phi_instr *phi = nir_instr_as_phi(instr);
       15:       23:  334:      assert(phi->dest.is_ssa);
       45:       69:  335:      nir_foreach_phi_src(src, phi) {
       30:       46:  336:         nir_parallel_copy_instr *pcopy =
       30:       46:  337:            get_parallel_copy_at_end_of_block(src->pred);
       30:       46:  338:         assert(pcopy);
        -:        -:  339:
       30:       46:  340:         nir_parallel_copy_entry *entry = rzalloc(dead_ctx,
        -:        -:  341:                                                  nir_parallel_copy_entry);
       90:      138:  342:         nir_ssa_dest_init(&pcopy->instr, &entry->dest,
       30:       46:  343:                           phi->dest.ssa.num_components,
       60:       92:  344:                           phi->dest.ssa.bit_size, src->src.ssa->name);
       30:       46:  345:         exec_list_push_tail(&pcopy->entries, &entry->node);
        -:        -:  346:
       30:       46:  347:         assert(src->src.is_ssa);
       30:       46:  348:         nir_instr_rewrite_src(&pcopy->instr, &entry->src, src->src);
        -:        -:  349:
       30:       46:  350:         nir_instr_rewrite_src(&phi->instr, &src->src,
        -:        -:  351:                               nir_src_for_ssa(&entry->dest.ssa));
        -:        -:  352:      }
        -:        -:  353:
       15:       23:  354:      nir_parallel_copy_entry *entry = rzalloc(dead_ctx,
        -:        -:  355:                                               nir_parallel_copy_entry);
       45:       69:  356:      nir_ssa_dest_init(&block_pcopy->instr, &entry->dest,
       30:       46:  357:                        phi->dest.ssa.num_components, phi->dest.ssa.bit_size,
        -:        -:  358:                        phi->dest.ssa.name);
       15:       23:  359:      exec_list_push_tail(&block_pcopy->entries, &entry->node);
        -:        -:  360:
       15:       23:  361:      nir_ssa_def_rewrite_uses(&phi->dest.ssa,
        -:        -:  362:                               nir_src_for_ssa(&entry->dest.ssa));
        -:        -:  363:
       15:       23:  364:      nir_instr_rewrite_src(&block_pcopy->instr, &entry->src,
        -:        -:  365:                            nir_src_for_ssa(&phi->dest.ssa));
        -:        -:  366:   }
        -:        -:  367:
        9:       11:  368:   return true;
        -:        -:  369:}
        -:        -:  370:
        -:        -:  371:static bool
       36:       52:  372:coalesce_phi_nodes_block(nir_block *block, struct from_ssa_state *state)
        -:        -:  373:{
       51:       75:  374:   nir_foreach_instr(instr, block) {
        -:        -:  375:      /* Phi nodes only ever come at the start of a block */
       47:       65:  376:      if (instr->type != nir_instr_type_phi)
       32:       42:  377:         break;
        -:        -:  378:
       15:       23:  379:      nir_phi_instr *phi = nir_instr_as_phi(instr);
        -:        -:  380:
       15:       23:  381:      assert(phi->dest.is_ssa);
       15:       23:  382:      merge_node *dest_node = get_merge_node(&phi->dest.ssa, state);
        -:        -:  383:
       45:       69:  384:      nir_foreach_phi_src(src, phi) {
       30:       46:  385:         assert(src->src.is_ssa);
       30:       46:  386:         merge_node *src_node = get_merge_node(src->src.ssa, state);
       30:       46:  387:         if (src_node->set != dest_node->set)
       30:       46:  388:            merge_merge_sets(dest_node->set, src_node->set);
        -:        -:  389:      }
        -:        -:  390:   }
        -:        -:  391:
       36:       52:  392:   return true;
        -:        -:  393:}
        -:        -:  394:
        -:        -:  395:static void
       27:       33:  396:aggressive_coalesce_parallel_copy(nir_parallel_copy_instr *pcopy,
        -:        -:  397:                                 struct from_ssa_state *state)
        -:        -:  398:{
       72:      102:  399:   nir_foreach_parallel_copy_entry(entry, pcopy) {
       45:       69:  400:      if (!entry->src.is_ssa)
    #####:    #####:  401:         continue;
        -:        -:  402:
        -:        -:  403:      /* Since load_const instructions are SSA only, we can't replace their
        -:        -:  404:       * destinations with registers and, therefore, can't coalesce them.
        -:        -:  405:       */
       45:       69:  406:      if (entry->src.ssa->parent_instr->type == nir_instr_type_load_const)
        6:        6:  407:         continue;
        -:        -:  408:
        -:        -:  409:      /* Don't try and coalesce these */
       39:       63:  410:      if (entry->dest.ssa.num_components != entry->src.ssa->num_components)
    #####:    #####:  411:         continue;
        -:        -:  412:
       39:       63:  413:      merge_node *src_node = get_merge_node(entry->src.ssa, state);
       39:       63:  414:      merge_node *dest_node = get_merge_node(&entry->dest.ssa, state);
        -:        -:  415:
       39:       63:  416:      if (src_node->set == dest_node->set)
        4:       12:  417:         continue;
        -:        -:  418:
       35:       51:  419:      if (!merge_sets_interfere(src_node->set, dest_node->set))
       32:       48:  420:         merge_merge_sets(src_node->set, dest_node->set);
        -:        -:  421:   }
       27:       33:  422:}
        -:        -:  423:
        -:        -:  424:static bool
       36:       52:  425:aggressive_coalesce_block(nir_block *block, struct from_ssa_state *state)
        -:        -:  426:{
       36:       52:  427:   nir_parallel_copy_instr *start_pcopy = NULL;
       51:       75:  428:   nir_foreach_instr(instr, block) {
        -:        -:  429:      /* Phi nodes only ever come at the start of a block */
       47:       65:  430:      if (instr->type != nir_instr_type_phi) {
       32:       42:  431:         if (instr->type != nir_instr_type_parallel_copy)
       14:       18:  432:            break; /* The parallel copy must be right after the phis */
        -:        -:  433:
       18:       24:  434:         start_pcopy = nir_instr_as_parallel_copy(instr);
        -:        -:  435:
       18:       24:  436:         aggressive_coalesce_parallel_copy(start_pcopy, state);
        -:        -:  437:
       18:       24:  438:         break;
        -:        -:  439:      }
        -:        -:  440:   }
        -:        -:  441:
       36:       52:  442:   nir_parallel_copy_instr *end_pcopy =
        -:        -:  443:      get_parallel_copy_at_end_of_block(block);
        -:        -:  444:
       36:       52:  445:   if (end_pcopy && end_pcopy != start_pcopy)
        9:        9:  446:      aggressive_coalesce_parallel_copy(end_pcopy, state);
        -:        -:  447:
       36:       52:  448:   return true;
        -:        -:  449:}
        -:        -:  450:
        -:        -:  451:static nir_register *
       23:       23:  452:create_reg_for_ssa_def(nir_ssa_def *def, nir_function_impl *impl)
        -:        -:  453:{
       23:       23:  454:   nir_register *reg = nir_local_reg_create(impl);
        -:        -:  455:
       23:       23:  456:   reg->name = def->name;
       23:       23:  457:   reg->num_components = def->num_components;
       23:       23:  458:   reg->bit_size = def->bit_size;
       23:       23:  459:   reg->num_array_elems = 0;
        -:        -:  460:
       23:       23:  461:   return reg;
        -:        -:  462:}
        -:        -:  463:
        -:        -:  464:static bool
      155:      189:  465:rewrite_ssa_def(nir_ssa_def *def, void *void_state)
        -:        -:  466:{
      155:      189:  467:   struct from_ssa_state *state = void_state;
        -:        -:  468:   nir_register *reg;
        -:        -:  469:
      155:      189:  470:   struct hash_entry *entry =
      155:      189:  471:      _mesa_hash_table_search(state->merge_node_table, def);
      155:      189:  472:   if (entry) {
        -:        -:  473:      /* In this case, we're part of a phi web.  Use the web's register. */
       73:      105:  474:      merge_node *node = (merge_node *)entry->data;
        -:        -:  475:
        -:        -:  476:      /* If it doesn't have a register yet, create one.  Note that all of
        -:        -:  477:       * the things in the merge set should be the same so it doesn't
        -:        -:  478:       * matter which node's definition we use.
        -:        -:  479:       */
       73:      105:  480:      if (node->set->reg == NULL)
       11:       11:  481:         node->set->reg = create_reg_for_ssa_def(def, state->builder.impl);
        -:        -:  482:
       73:      105:  483:      reg = node->set->reg;
        -:        -:  484:   } else {
       82:       84:  485:      if (state->phi_webs_only)
       82:       84:  486:         return true;
        -:        -:  487:
        -:        -:  488:      /* We leave load_const SSA values alone.  They act as immediates to
        -:        -:  489:       * the backend.  If it got coalesced into a phi, that's ok.
        -:        -:  490:       */
    #####:    #####:  491:      if (def->parent_instr->type == nir_instr_type_load_const)
    #####:    #####:  492:         return true;
        -:        -:  493:
    #####:    #####:  494:      reg = create_reg_for_ssa_def(def, state->builder.impl);
        -:        -:  495:   }
        -:        -:  496:
       73:      105:  497:   nir_ssa_def_rewrite_uses(def, nir_src_for_reg(reg));
       73:      105:  498:   assert(list_empty(&def->uses) && list_empty(&def->if_uses));
        -:        -:  499:
       73:      105:  500:   if (def->parent_instr->type == nir_instr_type_ssa_undef) {
        -:        -:  501:      /* If it's an ssa_undef instruction, remove it since we know we just got
        -:        -:  502:       * rid of all its uses.
        -:        -:  503:       */
        2:        2:  504:      nir_instr *parent_instr = def->parent_instr;
        2:        2:  505:      nir_instr_remove(parent_instr);
        2:        2:  506:      ralloc_steal(state->dead_ctx, parent_instr);
        2:        2:  507:      state->progress = true;
        2:        2:  508:      return true;
        -:        -:  509:   }
        -:        -:  510:
       71:      103:  511:   assert(def->parent_instr->type != nir_instr_type_load_const);
        -:        -:  512:
        -:        -:  513:   /* At this point we know a priori that this SSA def is part of a
        -:        -:  514:    * nir_dest.  We can use exec_node_data to get the dest pointer.
        -:        -:  515:    */
       71:      103:  516:   nir_dest *dest = exec_node_data(nir_dest, def, ssa);
        -:        -:  517:
       71:      103:  518:   nir_instr_rewrite_dest(state->instr, dest, nir_dest_for_reg(reg));
       71:      103:  519:   state->progress = true;
       71:      103:  520:   return true;
        -:        -:  521:}
        -:        -:  522:
        -:        -:  523:/* Resolves ssa definitions to registers.  While we're at it, we also
        -:        -:  524: * remove phi nodes.
        -:        -:  525: */
        -:        -:  526:static void
       36:       52:  527:resolve_registers_block(nir_block *block, struct from_ssa_state *state)
        -:        -:  528:{
      183:      219:  529:   nir_foreach_instr_safe(instr, block) {
      147:      167:  530:      state->instr = instr;
      147:      167:  531:      nir_foreach_ssa_def(instr, rewrite_ssa_def, state);
        -:        -:  532:
      147:      167:  533:      if (instr->type == nir_instr_type_phi) {
       15:       23:  534:         nir_instr_remove(instr);
       15:       23:  535:         ralloc_steal(state->dead_ctx, instr);
       15:       23:  536:         state->progress = true;
        -:        -:  537:      }
        -:        -:  538:   }
       36:       52:  539:   state->instr = NULL;
       36:       52:  540:}
        -:        -:  541:
        -:        -:  542:static void
        9:        9:  543:emit_copy(nir_builder *b, nir_src src, nir_src dest_src)
        -:        -:  544:{
        9:        9:  545:   assert(!dest_src.is_ssa &&
        -:        -:  546:          dest_src.reg.indirect == NULL &&
        -:        -:  547:          dest_src.reg.base_offset == 0);
        -:        -:  548:
        9:        9:  549:   if (src.is_ssa)
        6:        6:  550:      assert(src.ssa->num_components >= dest_src.reg.reg->num_components);
        -:        -:  551:   else
        3:        3:  552:      assert(src.reg.reg->num_components >= dest_src.reg.reg->num_components);
        -:        -:  553:
        9:        9:  554:   nir_alu_instr *mov = nir_alu_instr_create(b->shader, nir_op_imov);
        9:        9:  555:   nir_src_copy(&mov->src[0].src, &src, mov);
        9:        9:  556:   mov->dest.dest = nir_dest_for_reg(dest_src.reg.reg);
        9:        9:  557:   mov->dest.write_mask = (1 << dest_src.reg.reg->num_components) - 1;
        -:        -:  558:
        9:        9:  559:   nir_builder_instr_insert(b, &mov->instr);
        9:        9:  560:}
        -:        -:  561:
        -:        -:  562:/* Resolves a single parallel copy operation into a sequence of movs
        -:        -:  563: *
        -:        -:  564: * This is based on Algorithm 1 from "Revisiting Out-of-SSA Translation for
        -:        -:  565: * Correctness, Code Quality, and Efficiency" by Boissinot et al.
        -:        -:  566: * However, I never got the algorithm to work as written, so this version
        -:        -:  567: * is slightly modified.
        -:        -:  568: *
        -:        -:  569: * The algorithm works by playing this little shell game with the values.
        -:        -:  570: * We start by recording where every source value is and which source value
        -:        -:  571: * each destination value should receive.  We then grab any copy whose
        -:        -:  572: * destination is "empty", i.e. not used as a source, and do the following:
        -:        -:  573: *  - Find where its source value currently lives
        -:        -:  574: *  - Emit the move instruction
        -:        -:  575: *  - Set the location of the source value to the destination
        -:        -:  576: *  - Mark the location containing the source value
        -:        -:  577: *  - Mark the destination as no longer needing to be copied
        -:        -:  578: *
        -:        -:  579: * When we run out of "empty" destinations, we have a cycle and so we
        -:        -:  580: * create a temporary register, copy to that register, and mark the value
        -:        -:  581: * we copied as living in that temporary.  Now, the cycle is broken, so we
        -:        -:  582: * can continue with the above steps.
        -:        -:  583: */
        -:        -:  584:static void
       27:       33:  585:resolve_parallel_copy(nir_parallel_copy_instr *pcopy,
        -:        -:  586:                      struct from_ssa_state *state)
        -:        -:  587:{
       27:       33:  588:   unsigned num_copies = 0;
       72:      102:  589:   nir_foreach_parallel_copy_entry(entry, pcopy) {
        -:        -:  590:      /* Sources may be SSA */
       45:       69:  591:      if (!entry->src.is_ssa && entry->src.reg.reg == entry->dest.reg.reg)
       36:       60:  592:         continue;
        -:        -:  593:
        9:        9:  594:      num_copies++;
        -:        -:  595:   }
        -:        -:  596:
       27:       33:  597:   if (num_copies == 0) {
        -:        -:  598:      /* Hooray, we don't need any copies! */
       21:       29:  599:      nir_instr_remove(&pcopy->instr);
       21:       29:  600:      return;
        -:        -:  601:   }
        -:        -:  602:
        -:        -:  603:   /* The register/source corresponding to the given index */
        6:        4:  604:   NIR_VLA_ZERO(nir_src, values, num_copies * 2);
        -:        -:  605:
        -:        -:  606:   /* The current location of a given piece of data.  We will use -1 for "null" */
        6:        4:  607:   NIR_VLA_FILL(int, loc, num_copies * 2, -1);
        -:        -:  608:
        -:        -:  609:   /* The piece of data that the given piece of data is to be copied from.  We will use -1 for "null" */
        6:        4:  610:   NIR_VLA_FILL(int, pred, num_copies * 2, -1);
        -:        -:  611:
        -:        -:  612:   /* The destinations we have yet to properly fill */
        6:        4:  613:   NIR_VLA(int, to_do, num_copies * 2);
        6:        4:  614:   int to_do_idx = -1;
        -:        -:  615:
        6:        4:  616:   state->builder.cursor = nir_before_instr(&pcopy->instr);
        -:        -:  617:
        -:        -:  618:   /* Now we set everything up:
        -:        -:  619:    *  - All values get assigned a temporary index
        -:        -:  620:    *  - Current locations are set from sources
        -:        -:  621:    *  - Predicessors are recorded from sources and destinations
        -:        -:  622:    */
        6:        4:  623:   int num_vals = 0;
       22:       16:  624:   nir_foreach_parallel_copy_entry(entry, pcopy) {
        -:        -:  625:      /* Sources may be SSA */
       16:       12:  626:      if (!entry->src.is_ssa && entry->src.reg.reg == entry->dest.reg.reg)
        7:        3:  627:         continue;
        -:        -:  628:
        9:        9:  629:      int src_idx = -1;
       15:       21:  630:      for (int i = 0; i < num_vals; ++i) {
        6:       12:  631:         if (nir_srcs_equal(values[i], entry->src))
    #####:    #####:  632:            src_idx = i;
        -:        -:  633:      }
        9:        9:  634:      if (src_idx < 0) {
        9:        9:  635:         src_idx = num_vals++;
        9:        9:  636:         values[src_idx] = entry->src;
        -:        -:  637:      }
        -:        -:  638:
        9:        9:  639:      nir_src dest_src = nir_src_for_reg(entry->dest.reg.reg);
        -:        -:  640:
        9:        9:  641:      int dest_idx = -1;
       24:       30:  642:      for (int i = 0; i < num_vals; ++i) {
       15:       21:  643:         if (nir_srcs_equal(values[i], dest_src)) {
        -:        -:  644:            /* Each destination of a parallel copy instruction should be
        -:        -:  645:             * unique.  A destination may get used as a source, so we still
        -:        -:  646:             * have to walk the list.  However, the predecessor should not,
        -:        -:  647:             * at this point, be set yet, so we should have -1 here.
        -:        -:  648:             */
    #####:    #####:  649:            assert(pred[i] == -1);
    #####:    #####:  650:            dest_idx = i;
        -:        -:  651:         }
        -:        -:  652:      }
        9:        9:  653:      if (dest_idx < 0) {
        9:        9:  654:         dest_idx = num_vals++;
        9:        9:  655:         values[dest_idx] = dest_src;
        -:        -:  656:      }
        -:        -:  657:
        9:        9:  658:      loc[src_idx] = src_idx;
        9:        9:  659:      pred[dest_idx] = src_idx;
        -:        -:  660:
        9:        9:  661:      to_do[++to_do_idx] = dest_idx;
        -:        -:  662:   }
        -:        -:  663:
        -:        -:  664:   /* Currently empty destinations we can go ahead and fill */
        6:        4:  665:   NIR_VLA(int, ready, num_copies * 2);
        6:        4:  666:   int ready_idx = -1;
        -:        -:  667:
        -:        -:  668:   /* Mark the ones that are ready for copying.  We know an index is a
        -:        -:  669:    * destination if it has a predecessor and it's ready for copying if
        -:        -:  670:    * it's not marked as containing data.
        -:        -:  671:    */
       24:       22:  672:   for (int i = 0; i < num_vals; i++) {
       18:       18:  673:      if (pred[i] != -1 && loc[i] == -1)
        9:        9:  674:         ready[++ready_idx] = i;
        -:        -:  675:   }
        -:        -:  676:
       21:       17:  677:   while (to_do_idx >= 0) {
       27:       27:  678:      while (ready_idx >= 0) {
        9:        9:  679:         int b = ready[ready_idx--];
        9:        9:  680:         int a = pred[b];
        9:        9:  681:         emit_copy(&state->builder, values[loc[a]], values[b]);
        -:        -:  682:
        -:        -:  683:         /* If any other copies want a they can find it at b */
        9:        9:  684:         loc[a] = b;
        -:        -:  685:
        -:        -:  686:         /* b has been filled, mark it as not needing to be copied */
        9:        9:  687:         pred[b] = -1;
        -:        -:  688:
        -:        -:  689:         /* If a needs to be filled, it's ready for copying now */
        9:        9:  690:         if (pred[a] != -1)
    #####:    #####:  691:            ready[++ready_idx] = a;
        -:        -:  692:      }
        9:        9:  693:      int b = to_do[to_do_idx--];
        9:        9:  694:      if (pred[b] == -1)
        9:        9:  695:         continue;
        -:        -:  696:
        -:        -:  697:      /* If we got here, then we don't have any more trivial copies that we
        -:        -:  698:       * can do.  We have to break a cycle, so we create a new temporary
        -:        -:  699:       * register for that purpose.  Normally, if going out of SSA after
        -:        -:  700:       * register allocation, you would want to avoid creating temporary
        -:        -:  701:       * registers.  However, we are going out of SSA before register
        -:        -:  702:       * allocation, so we would rather not create extra register
        -:        -:  703:       * dependencies for the backend to deal with.  If it wants, the
        -:        -:  704:       * backend can coalesce the (possibly multiple) temporaries.
        -:        -:  705:       */
    #####:    #####:  706:      assert(num_vals < num_copies * 2);
    #####:    #####:  707:      nir_register *reg = nir_local_reg_create(state->builder.impl);
    #####:    #####:  708:      reg->name = "copy_temp";
    #####:    #####:  709:      reg->num_array_elems = 0;
    #####:    #####:  710:      if (values[b].is_ssa)
    #####:    #####:  711:         reg->num_components = values[b].ssa->num_components;
        -:        -:  712:      else
    #####:    #####:  713:         reg->num_components = values[b].reg.reg->num_components;
    #####:    #####:  714:      values[num_vals].is_ssa = false;
    #####:    #####:  715:      values[num_vals].reg.reg = reg;
        -:        -:  716:
    #####:    #####:  717:      emit_copy(&state->builder, values[b], values[num_vals]);
    #####:    #####:  718:      loc[b] = num_vals;
    #####:    #####:  719:      ready[++ready_idx] = b;
    #####:    #####:  720:      num_vals++;
        -:        -:  721:   }
        -:        -:  722:
        6:        4:  723:   nir_instr_remove(&pcopy->instr);
        -:        -:  724:}
        -:        -:  725:
        -:        -:  726:/* Resolves the parallel copies in a block.  Each block can have at most
        -:        -:  727: * two:  One at the beginning, right after all the phi noces, and one at
        -:        -:  728: * the end (or right before the final jump if it exists).
        -:        -:  729: */
        -:        -:  730:static bool
       36:       52:  731:resolve_parallel_copies_block(nir_block *block, struct from_ssa_state *state)
        -:        -:  732:{
        -:        -:  733:   /* At this point, we have removed all of the phi nodes.  If a parallel
        -:        -:  734:    * copy existed right after the phi nodes in this block, it is now the
        -:        -:  735:    * first instruction.
        -:        -:  736:    */
       36:       52:  737:   nir_instr *first_instr = nir_block_first_instr(block);
       36:       52:  738:   if (first_instr == NULL)
        4:       10:  739:      return true; /* Empty, nothing to do. */
        -:        -:  740:
       32:       42:  741:   if (first_instr->type == nir_instr_type_parallel_copy) {
       18:       24:  742:      nir_parallel_copy_instr *pcopy = nir_instr_as_parallel_copy(first_instr);
        -:        -:  743:
       18:       24:  744:      resolve_parallel_copy(pcopy, state);
        -:        -:  745:   }
        -:        -:  746:
        -:        -:  747:   /* It's possible that the above code already cleaned up the end parallel
        -:        -:  748:    * copy.  However, doing so removed it form the instructions list so we
        -:        -:  749:    * won't find it here.  Therefore, it's safe to go ahead and just look
        -:        -:  750:    * for one and clean it up if it exists.
        -:        -:  751:    */
       32:       42:  752:   nir_parallel_copy_instr *end_pcopy =
        -:        -:  753:      get_parallel_copy_at_end_of_block(block);
       32:       42:  754:   if (end_pcopy)
        9:        9:  755:      resolve_parallel_copy(end_pcopy, state);
        -:        -:  756:
       32:       42:  757:   return true;
        -:        -:  758:}
        -:        -:  759:
        -:        -:  760:static bool
        5:        5:  761:nir_convert_from_ssa_impl(nir_function_impl *impl, bool phi_webs_only)
        -:        -:  762:{
        -:        -:  763:   struct from_ssa_state state;
        -:        -:  764:
        5:        5:  765:   nir_builder_init(&state.builder, impl);
        5:        5:  766:   state.dead_ctx = ralloc_context(NULL);
        5:        5:  767:   state.phi_webs_only = phi_webs_only;
        5:        5:  768:   state.merge_node_table = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -:  769:                                                    _mesa_key_pointer_equal);
        5:        5:  770:   state.progress = false;
        -:        -:  771:
       41:       57:  772:   nir_foreach_block(block, impl) {
       36:       52:  773:      add_parallel_copy_to_end_of_block(block, state.dead_ctx);
        -:        -:  774:   }
        -:        -:  775:
       41:       57:  776:   nir_foreach_block(block, impl) {
       36:       52:  777:      isolate_phi_nodes_block(block, state.dead_ctx);
        -:        -:  778:   }
        -:        -:  779:
        -:        -:  780:   /* Mark metadata as dirty before we ask for liveness analysis */
        5:        5:  781:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  782:                               nir_metadata_dominance);
        -:        -:  783:
        5:        5:  784:   nir_metadata_require(impl, nir_metadata_live_ssa_defs |
        -:        -:  785:                              nir_metadata_dominance);
        -:        -:  786:
       41:       57:  787:   nir_foreach_block(block, impl) {
       36:       52:  788:      coalesce_phi_nodes_block(block, &state);
        -:        -:  789:   }
        -:        -:  790:
       41:       57:  791:   nir_foreach_block(block, impl) {
       36:       52:  792:      aggressive_coalesce_block(block, &state);
        -:        -:  793:   }
        -:        -:  794:
       41:       57:  795:   nir_foreach_block(block, impl) {
       36:       52:  796:      resolve_registers_block(block, &state);
        -:        -:  797:   }
        -:        -:  798:
       41:       57:  799:   nir_foreach_block(block, impl) {
       36:       52:  800:      resolve_parallel_copies_block(block, &state);
        -:        -:  801:   }
        -:        -:  802:
        5:        5:  803:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  804:                               nir_metadata_dominance);
        -:        -:  805:
        -:        -:  806:   /* Clean up dead instructions and the hash tables */
        5:        5:  807:   _mesa_hash_table_destroy(state.merge_node_table, NULL);
        5:        5:  808:   ralloc_free(state.dead_ctx);
        5:        5:  809:   return state.progress;
        -:        -:  810:}
        -:        -:  811:
        -:        -:  812:bool
        5:        5:  813:nir_convert_from_ssa(nir_shader *shader, bool phi_webs_only)
        -:        -:  814:{
        5:        5:  815:   bool progress = false;
        -:        -:  816:
       10:       10:  817:   nir_foreach_function(function, shader) {
        5:        5:  818:      if (function->impl)
        5:        5:  819:         progress |= nir_convert_from_ssa_impl(function->impl, phi_webs_only);
        -:        -:  820:   }
        -:        -:  821:
        5:        5:  822:   return progress;
        -:        -:  823:}
        -:        -:  824:
        -:        -:  825:
        -:        -:  826:static void
       34:       34:  827:place_phi_read(nir_shader *shader, nir_register *reg,
        -:        -:  828:               nir_ssa_def *def, nir_block *block)
        -:        -:  829:{
       34:       34:  830:   if (block != def->parent_instr->block) {
        -:        -:  831:      /* Try to go up the single-successor tree */
       25:       25:  832:      bool all_single_successors = true;
        -:        -:  833:      struct set_entry *entry;
       39:       39:  834:      set_foreach(block->predecessors, entry) {
       32:       32:  835:         nir_block *pred = (nir_block *)entry->key;
       32:       32:  836:         if (pred->successors[0] && pred->successors[1]) {
       18:       18:  837:            all_single_successors = false;
       18:       18:  838:            break;
        -:        -:  839:         }
        -:        -:  840:      }
        -:        -:  841:
       25:       25:  842:      if (all_single_successors) {
        -:        -:  843:         /* All predecessors of this block have exactly one successor and it
        -:        -:  844:          * is this block so they must eventually lead here without
        -:        -:  845:          * intersecting each other.  Place the reads in the predecessors
        -:        -:  846:          * instead of this block.
        -:        -:  847:          */
       21:       21:  848:         set_foreach(block->predecessors, entry)
       14:       14:  849:            place_phi_read(shader, reg, def, (nir_block *)entry->key);
        7:        7:  850:         return;
        -:        -:  851:      }
        -:        -:  852:   }
        -:        -:  853:
       27:       27:  854:   nir_alu_instr *mov = nir_alu_instr_create(shader, nir_op_imov);
       27:       27:  855:   mov->src[0].src = nir_src_for_ssa(def);
       27:       27:  856:   mov->dest.dest = nir_dest_for_reg(reg);
       27:       27:  857:   mov->dest.write_mask = (1 << reg->num_components) - 1;
       27:       27:  858:   nir_instr_insert(nir_after_block_before_jump(block), &mov->instr);
        -:        -:  859:}
        -:        -:  860:
        -:        -:  861:/** Lower all of the phi nodes in a block to imovs to and from a register
        -:        -:  862: *
        -:        -:  863: * This provides a very quick-and-dirty out-of-SSA pass that you can run on a
        -:        -:  864: * single block to convert all of its phis to a register and some imovs.
        -:        -:  865: * The code that is generated, while not optimal for actual codegen in a
        -:        -:  866: * back-end, is easy to generate, correct, and will turn into the same set of
        -:        -:  867: * phis after you call regs_to_ssa and do some copy propagation.
        -:        -:  868: *
        -:        -:  869: * The one intelligent thing this pass does is that it places the moves from
        -:        -:  870: * the phi sources as high up the predecessor tree as possible instead of in
        -:        -:  871: * the exact predecessor.  This means that, in particular, it will crawl into
        -:        -:  872: * the deepest nesting of any if-ladders.  In order to ensure that doing so is
        -:        -:  873: * safe, it stops as soon as one of the predecessors has multiple successors.
        -:        -:  874: */
        -:        -:  875:bool
        2:        2:  876:nir_lower_phis_to_regs_block(nir_block *block)
        -:        -:  877:{
        2:        2:  878:   nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
        2:        2:  879:   nir_shader *shader = impl->function->shader;
        -:        -:  880:
        2:        2:  881:   bool progress = false;
       14:       14:  882:   nir_foreach_instr_safe(instr, block) {
       14:       14:  883:      if (instr->type != nir_instr_type_phi)
        2:        2:  884:         break;
        -:        -:  885:
       12:       12:  886:      nir_phi_instr *phi = nir_instr_as_phi(instr);
       12:       12:  887:      assert(phi->dest.is_ssa);
        -:        -:  888:
       12:       12:  889:      nir_register *reg = create_reg_for_ssa_def(&phi->dest.ssa, impl);
        -:        -:  890:
       12:       12:  891:      nir_alu_instr *mov = nir_alu_instr_create(shader, nir_op_imov);
       12:       12:  892:      mov->src[0].src = nir_src_for_reg(reg);
       12:       12:  893:      mov->dest.write_mask = (1 << phi->dest.ssa.num_components) - 1;
       36:       36:  894:      nir_ssa_dest_init(&mov->instr, &mov->dest.dest,
       24:       24:  895:                        phi->dest.ssa.num_components, phi->dest.ssa.bit_size,
        -:        -:  896:                        phi->dest.ssa.name);
       12:       12:  897:      nir_instr_insert(nir_after_instr(&phi->instr), &mov->instr);
        -:        -:  898:
       12:       12:  899:      nir_ssa_def_rewrite_uses(&phi->dest.ssa,
        -:        -:  900:                               nir_src_for_ssa(&mov->dest.dest.ssa));
        -:        -:  901:
       32:       32:  902:      nir_foreach_phi_src(src, phi) {
       20:       20:  903:         assert(src->src.is_ssa);
       20:       20:  904:         place_phi_read(shader, reg, src->src.ssa, src->pred);
        -:        -:  905:      }
        -:        -:  906:
       12:       12:  907:      nir_instr_remove(&phi->instr);
        -:        -:  908:
       12:       12:  909:      progress = true;
        -:        -:  910:   }
        -:        -:  911:
        2:        2:  912:   return progress;
        -:        -:  913:}
        -:        -:  914:
        -:        -:  915:struct ssa_def_to_reg_state {
        -:        -:  916:   nir_function_impl *impl;
        -:        -:  917:   bool progress;
        -:        -:  918:};
        -:        -:  919:
        -:        -:  920:static bool
    #####:    #####:  921:dest_replace_ssa_with_reg(nir_dest *dest, void *void_state)
        -:        -:  922:{
    #####:    #####:  923:   struct ssa_def_to_reg_state *state = void_state;
        -:        -:  924:
    #####:    #####:  925:   if (!dest->is_ssa)
    #####:    #####:  926:      return true;
        -:        -:  927:
    #####:    #####:  928:   nir_register *reg = create_reg_for_ssa_def(&dest->ssa, state->impl);
        -:        -:  929:
    #####:    #####:  930:   nir_ssa_def_rewrite_uses(&dest->ssa, nir_src_for_reg(reg));
        -:        -:  931:
    #####:    #####:  932:   nir_instr *instr = dest->ssa.parent_instr;
    #####:    #####:  933:   *dest = nir_dest_for_reg(reg);
    #####:    #####:  934:   dest->reg.parent_instr = instr;
    #####:    #####:  935:   list_addtail(&dest->reg.def_link, ®->defs);
        -:        -:  936:
    #####:    #####:  937:   state->progress = true;
        -:        -:  938:
    #####:    #####:  939:   return true;
        -:        -:  940:}
        -:        -:  941:
        -:        -:  942:/** Lower all of the SSA defs in a block to registers
        -:        -:  943: *
        -:        -:  944: * This performs the very simple operation of blindly replacing all of the SSA
        -:        -:  945: * defs in the given block with registers.  If not used carefully, this may
        -:        -:  946: * result in phi nodes with register sources which is technically invalid.
        -:        -:  947: * Fortunately, the register-based into-SSA pass handles them anyway.
        -:        -:  948: */
        -:        -:  949:bool
    #####:    #####:  950:nir_lower_ssa_defs_to_regs_block(nir_block *block)
        -:        -:  951:{
    #####:    #####:  952:   nir_function_impl *impl = nir_cf_node_get_function(&block->cf_node);
    #####:    #####:  953:   nir_shader *shader = impl->function->shader;
        -:        -:  954:
    #####:    #####:  955:   struct ssa_def_to_reg_state state = {
        -:        -:  956:      .impl = impl,
        -:        -:  957:      .progress = false,
        -:        -:  958:   };
        -:        -:  959:
    #####:    #####:  960:   nir_foreach_instr(instr, block) {
    #####:    #####:  961:      if (instr->type == nir_instr_type_ssa_undef) {
        -:        -:  962:         /* Undefs are just a read of something never written. */
    #####:    #####:  963:         nir_ssa_undef_instr *undef = nir_instr_as_ssa_undef(instr);
    #####:    #####:  964:         nir_register *reg = create_reg_for_ssa_def(&undef->def, state.impl);
    #####:    #####:  965:         nir_ssa_def_rewrite_uses(&undef->def, nir_src_for_reg(reg));
    #####:    #####:  966:      } else if (instr->type == nir_instr_type_load_const) {
        -:        -:  967:         /* Constant loads are SSA-only, we need to insert a move */
    #####:    #####:  968:         nir_load_const_instr *load = nir_instr_as_load_const(instr);
    #####:    #####:  969:         nir_register *reg = create_reg_for_ssa_def(&load->def, state.impl);
    #####:    #####:  970:         nir_ssa_def_rewrite_uses(&load->def, nir_src_for_reg(reg));
        -:        -:  971:
    #####:    #####:  972:         nir_alu_instr *mov = nir_alu_instr_create(shader, nir_op_imov);
    #####:    #####:  973:         mov->src[0].src = nir_src_for_ssa(&load->def);
    #####:    #####:  974:         mov->dest.dest = nir_dest_for_reg(reg);
    #####:    #####:  975:         mov->dest.write_mask = (1 << reg->num_components) - 1;
    #####:    #####:  976:         nir_instr_insert(nir_after_instr(&load->instr), &mov->instr);
        -:        -:  977:      } else {
    #####:    #####:  978:         nir_foreach_dest(instr, dest_replace_ssa_with_reg, &state);
        -:        -:  979:      }
        -:        -:  980:   }
        -:        -:  981:
    #####:    #####:  982:   return state.progress;
        -:        -:  983:}

src/compiler/nir_gather_info.c.gcov

        -:        -:    0:Source:nir/nir_gather_info.c
        -:        -:    0:Graph:nir/.libs/nir_gather_info.gcno
        -:        -:    0:Data:nir/.libs/nir_gather_info.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "main/mtypes.h"
        -:        -:   25:#include "nir.h"
        -:        -:   26:
        -:        -:   27:static void
       15:       19:   28:set_io_mask(nir_shader *shader, nir_variable *var, int offset, int len)
        -:        -:   29:{
       30:       38:   30:   for (int i = 0; i < len; i++) {
       15:       19:   31:      assert(var->data.location != -1);
        -:        -:   32:
       15:       19:   33:      int idx = var->data.location + offset + i;
       30:       38:   34:      bool is_patch_generic = var->data.patch &&
    #####:    #####:   35:                              idx != VARYING_SLOT_TESS_LEVEL_INNER &&
    #####:    #####:   36:                              idx != VARYING_SLOT_TESS_LEVEL_OUTER &&
       15:       19:   37:                              idx != VARYING_SLOT_BOUNDING_BOX0 &&
        -:        -:   38:                              idx != VARYING_SLOT_BOUNDING_BOX1;
        -:        -:   39:      uint64_t bitfield;
        -:        -:   40:
       15:       19:   41:      if (is_patch_generic) {
    #####:    #####:   42:         assert(idx >= VARYING_SLOT_PATCH0 && idx < VARYING_SLOT_TESS_MAX);
    #####:    #####:   43:         bitfield = BITFIELD64_BIT(idx - VARYING_SLOT_PATCH0);
        -:        -:   44:      }
        -:        -:   45:      else {
       15:       19:   46:         assert(idx < VARYING_SLOT_MAX);
       15:       19:   47:         bitfield = BITFIELD64_BIT(idx);
        -:        -:   48:      }
        -:        -:   49:
       15:       19:   50:      if (var->data.mode == nir_var_shader_in) {
        9:       13:   51:         if (is_patch_generic)
    #####:    #####:   52:            shader->info->patch_inputs_read |= bitfield;
        -:        -:   53:         else
        9:       13:   54:            shader->info->inputs_read |= bitfield;
        -:        -:   55:
        9:       13:   56:         if (shader->stage == MESA_SHADER_FRAGMENT) {
        6:       10:   57:            shader->info->fs.uses_sample_qualifier |= var->data.sample;
        -:        -:   58:         }
        -:        -:   59:      } else {
        6:        6:   60:         assert(var->data.mode == nir_var_shader_out);
        6:        6:   61:         if (is_patch_generic) {
    #####:    #####:   62:            shader->info->patch_outputs_written |= bitfield;
        6:        6:   63:         } else if (!var->data.read_only) {
        6:        6:   64:            shader->info->outputs_written |= bitfield;
        -:        -:   65:         }
        -:        -:   66:
        6:        6:   67:         if (var->data.fb_fetch_output)
    #####:    #####:   68:            shader->info->outputs_read |= bitfield;
        -:        -:   69:      }
        -:        -:   70:   }
       15:       19:   71:}
        -:        -:   72:
        -:        -:   73:/**
        -:        -:   74: * Mark an entire variable as used.  Caller must ensure that the variable
        -:        -:   75: * represents a shader input or output.
        -:        -:   76: */
        -:        -:   77:static void
       15:       19:   78:mark_whole_variable(nir_shader *shader, nir_variable *var)
        -:        -:   79:{
       15:       19:   80:   const struct glsl_type *type = var->type;
        -:        -:   81:
       15:       19:   82:   if (nir_is_per_vertex_io(var, shader->stage)) {
    #####:    #####:   83:      assert(glsl_type_is_array(type));
    #####:    #####:   84:      type = glsl_get_array_element(type);
        -:        -:   85:   }
        -:        -:   86:
       15:       19:   87:   const unsigned slots =
       15:       19:   88:      var->data.compact ? DIV_ROUND_UP(glsl_get_length(type), 4)
       15:       19:   89:                        : glsl_count_attribute_slots(type, false);
        -:        -:   90:
       15:       19:   91:   set_io_mask(shader, var, 0, slots);
       15:       19:   92:}
        -:        -:   93:
        -:        -:   94:static unsigned
    #####:    #####:   95:get_io_offset(nir_deref_var *deref)
        -:        -:   96:{
    #####:    #####:   97:   unsigned offset = 0;
        -:        -:   98:
    #####:    #####:   99:   nir_deref *tail = &deref->deref;
    #####:    #####:  100:   while (tail->child != NULL) {
    #####:    #####:  101:      tail = tail->child;
        -:        -:  102:
    #####:    #####:  103:      if (tail->deref_type == nir_deref_type_array) {
    #####:    #####:  104:         nir_deref_array *deref_array = nir_deref_as_array(tail);
        -:        -:  105:
    #####:    #####:  106:         if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  107:            return -1;
        -:        -:  108:         }
        -:        -:  109:
    #####:    #####:  110:         offset += glsl_count_attribute_slots(tail->type, false) *
    #####:    #####:  111:            deref_array->base_offset;
        -:        -:  112:      }
        -:        -:  113:      /* TODO: we can get the offset for structs here see nir_lower_io() */
        -:        -:  114:   }
        -:        -:  115:
    #####:    #####:  116:   return offset;
        -:        -:  117:}
        -:        -:  118:
        -:        -:  119:/**
        -:        -:  120: * Try to mark a portion of the given varying as used.  Caller must ensure
        -:        -:  121: * that the variable represents a shader input or output.
        -:        -:  122: *
        -:        -:  123: * If the index can't be interpreted as a constant, or some other problem
        -:        -:  124: * occurs, then nothing will be marked and false will be returned.
        -:        -:  125: */
        -:        -:  126:static bool
       15:       19:  127:try_mask_partial_io(nir_shader *shader, nir_deref_var *deref)
        -:        -:  128:{
       15:       19:  129:   nir_variable *var = deref->var;
       15:       19:  130:   const struct glsl_type *type = var->type;
        -:        -:  131:
       15:       19:  132:   if (nir_is_per_vertex_io(var, shader->stage)) {
    #####:    #####:  133:      assert(glsl_type_is_array(type));
    #####:    #####:  134:      type = glsl_get_array_element(type);
        -:        -:  135:   }
        -:        -:  136:
        -:        -:  137:   /* The code below only handles:
        -:        -:  138:    *
        -:        -:  139:    * - Indexing into matrices
        -:        -:  140:    * - Indexing into arrays of (arrays, matrices, vectors, or scalars)
        -:        -:  141:    *
        -:        -:  142:    * For now, we just give up if we see varying structs and arrays of structs
        -:        -:  143:    * here marking the entire variable as used.
        -:        -:  144:    */
       30:       38:  145:   if (!(glsl_type_is_matrix(type) ||
       15:       19:  146:         (glsl_type_is_array(type) && !var->data.compact &&
    #####:    #####:  147:          (glsl_type_is_numeric(glsl_without_array(type)) ||
    #####:    #####:  148:           glsl_type_is_boolean(glsl_without_array(type)))))) {
        -:        -:  149:
        -:        -:  150:      /* If we don't know how to handle this case, give up and let the
        -:        -:  151:       * caller mark the whole variable as used.
        -:        -:  152:       */
       15:       19:  153:      return false;
        -:        -:  154:   }
        -:        -:  155:
    #####:    #####:  156:   unsigned offset = get_io_offset(deref);
    #####:    #####:  157:   if (offset == -1)
    #####:    #####:  158:      return false;
        -:        -:  159:
        -:        -:  160:   unsigned num_elems;
    #####:    #####:  161:   unsigned elem_width = 1;
    #####:    #####:  162:   unsigned mat_cols = 1;
    #####:    #####:  163:   if (glsl_type_is_array(type)) {
    #####:    #####:  164:      num_elems = glsl_get_aoa_size(type);
    #####:    #####:  165:      if (glsl_type_is_matrix(glsl_without_array(type)))
    #####:    #####:  166:         mat_cols = glsl_get_matrix_columns(glsl_without_array(type));
        -:        -:  167:   } else {
    #####:    #####:  168:      num_elems = glsl_get_matrix_columns(type);
        -:        -:  169:   }
        -:        -:  170:
        -:        -:  171:   /* double element width for double types that takes two slots */
    #####:    #####:  172:   if (glsl_type_is_dual_slot(glsl_without_array(type))) {
    #####:    #####:  173:      elem_width *= 2;
        -:        -:  174:   }
        -:        -:  175:
    #####:    #####:  176:   if (offset >= num_elems * elem_width * mat_cols) {
        -:        -:  177:      /* Constant index outside the bounds of the matrix/array.  This could
        -:        -:  178:       * arise as a result of constant folding of a legal GLSL program.
        -:        -:  179:       *
        -:        -:  180:       * Even though the spec says that indexing outside the bounds of a
        -:        -:  181:       * matrix/array results in undefined behaviour, we don't want to pass
        -:        -:  182:       * out-of-range values to set_io_mask() (since this could result in
        -:        -:  183:       * slots that don't exist being marked as used), so just let the caller
        -:        -:  184:       * mark the whole variable as used.
        -:        -:  185:       */
    #####:    #####:  186:      return false;
        -:        -:  187:   }
        -:        -:  188:
    #####:    #####:  189:   set_io_mask(shader, var, offset, elem_width);
    #####:    #####:  190:   return true;
        -:        -:  191:}
        -:        -:  192:
        -:        -:  193:static void
       34:       40:  194:gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader)
        -:        -:  195:{
       34:       40:  196:   switch (instr->intrinsic) {
        -:        -:  197:   case nir_intrinsic_discard:
        -:        -:  198:   case nir_intrinsic_discard_if:
    #####:    #####:  199:      assert(shader->stage == MESA_SHADER_FRAGMENT);
    #####:    #####:  200:      shader->info->fs.uses_discard = true;
    #####:    #####:  201:      break;
        -:        -:  202:
        -:        -:  203:   case nir_intrinsic_interp_var_at_centroid:
        -:        -:  204:   case nir_intrinsic_interp_var_at_sample:
        -:        -:  205:   case nir_intrinsic_interp_var_at_offset:
        -:        -:  206:   case nir_intrinsic_load_var:
        -:        -:  207:   case nir_intrinsic_store_var: {
       15:       19:  208:      nir_variable *var = instr->variables[0]->var;
        -:        -:  209:
       21:       25:  210:      if (var->data.mode == nir_var_shader_in ||
        6:        6:  211:          var->data.mode == nir_var_shader_out) {
       15:       19:  212:         if (!try_mask_partial_io(shader, instr->variables[0]))
       15:       19:  213:            mark_whole_variable(shader, var);
        -:        -:  214:
        -:        -:  215:         /* We need to track which input_reads bits correspond to a
        -:        -:  216:          * dvec3/dvec4 input attribute */
       21:       25:  217:         if (shader->stage == MESA_SHADER_VERTEX &&
        9:        9:  218:             var->data.mode == nir_var_shader_in &&
        3:        3:  219:             glsl_type_is_dual_slot(glsl_without_array(var->type))) {
    #####:    #####:  220:            for (uint i = 0; i < glsl_count_attribute_slots(var->type, false); i++) {
    #####:    #####:  221:               int idx = var->data.location + i;
    #####:    #####:  222:               shader->info->double_inputs_read |= BITFIELD64_BIT(idx);
        -:        -:  223:            }
        -:        -:  224:         }
        -:        -:  225:      }
       15:       19:  226:      break;
        -:        -:  227:   }
        -:        -:  228:
        -:        -:  229:   case nir_intrinsic_load_draw_id:
        -:        -:  230:   case nir_intrinsic_load_front_face:
        -:        -:  231:   case nir_intrinsic_load_vertex_id:
        -:        -:  232:   case nir_intrinsic_load_vertex_id_zero_base:
        -:        -:  233:   case nir_intrinsic_load_base_vertex:
        -:        -:  234:   case nir_intrinsic_load_base_instance:
        -:        -:  235:   case nir_intrinsic_load_instance_id:
        -:        -:  236:   case nir_intrinsic_load_sample_id:
        -:        -:  237:   case nir_intrinsic_load_sample_pos:
        -:        -:  238:   case nir_intrinsic_load_sample_mask_in:
        -:        -:  239:   case nir_intrinsic_load_primitive_id:
        -:        -:  240:   case nir_intrinsic_load_invocation_id:
        -:        -:  241:   case nir_intrinsic_load_local_invocation_id:
        -:        -:  242:   case nir_intrinsic_load_local_invocation_index:
        -:        -:  243:   case nir_intrinsic_load_work_group_id:
        -:        -:  244:   case nir_intrinsic_load_num_work_groups:
        -:        -:  245:   case nir_intrinsic_load_tess_coord:
        -:        -:  246:   case nir_intrinsic_load_tess_level_outer:
        -:        -:  247:   case nir_intrinsic_load_tess_level_inner:
    #####:    #####:  248:      shader->info->system_values_read |=
    #####:    #####:  249:         (1ull << nir_system_value_from_intrinsic(instr->intrinsic));
    #####:    #####:  250:      break;
        -:        -:  251:
        -:        -:  252:   case nir_intrinsic_end_primitive:
        -:        -:  253:   case nir_intrinsic_end_primitive_with_counter:
    #####:    #####:  254:      assert(shader->stage == MESA_SHADER_GEOMETRY);
    #####:    #####:  255:      shader->info->gs.uses_end_primitive = 1;
    #####:    #####:  256:      break;
        -:        -:  257:
        -:        -:  258:   default:
       19:       21:  259:      break;
        -:        -:  260:   }
       34:       40:  261:}
        -:        -:  262:
        -:        -:  263:static void
    #####:    #####:  264:gather_tex_info(nir_tex_instr *instr, nir_shader *shader)
        -:        -:  265:{
    #####:    #####:  266:   if (instr->op == nir_texop_tg4)
    #####:    #####:  267:      shader->info->uses_texture_gather = true;
    #####:    #####:  268:}
        -:        -:  269:
        -:        -:  270:static void
       36:       52:  271:gather_info_block(nir_block *block, nir_shader *shader)
        -:        -:  272:{
      228:      288:  273:   nir_foreach_instr(instr, block) {
      192:      236:  274:      switch (instr->type) {
        -:        -:  275:      case nir_instr_type_intrinsic:
       34:       40:  276:         gather_intrinsic_info(nir_instr_as_intrinsic(instr), shader);
       34:       40:  277:         break;
        -:        -:  278:      case nir_instr_type_tex:
    #####:    #####:  279:         gather_tex_info(nir_instr_as_tex(instr), shader);
    #####:    #####:  280:         break;
        -:        -:  281:      case nir_instr_type_call:
    #####:    #####:  282:         assert(!"nir_shader_gather_info only works if functions are inlined");
        -:        -:  283:         break;
        -:        -:  284:      default:
      158:      196:  285:         break;
        -:        -:  286:      }
        -:        -:  287:   }
       36:       52:  288:}
        -:        -:  289:
        -:        -:  290:void
        5:        5:  291:nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
        -:        -:  292:{
        5:        5:  293:   shader->info->num_textures = 0;
        5:        5:  294:   shader->info->num_images = 0;
        9:        9:  295:   nir_foreach_variable(var, &shader->uniforms) {
        4:        4:  296:      const struct glsl_type *type = var->type;
        4:        4:  297:      unsigned count = 1;
        4:        4:  298:      if (glsl_type_is_array(type)) {
        2:        2:  299:         count = glsl_get_aoa_size(type);
        2:        2:  300:         type = glsl_without_array(type);
        -:        -:  301:      }
        -:        -:  302:
        4:        4:  303:      if (glsl_type_is_image(type)) {
    #####:    #####:  304:         shader->info->num_images += count;
        4:        4:  305:      } else if (glsl_type_is_sampler(type)) {
    #####:    #####:  306:         shader->info->num_textures += count;
        -:        -:  307:      }
        -:        -:  308:   }
        -:        -:  309:
        5:        5:  310:   shader->info->inputs_read = 0;
        5:        5:  311:   shader->info->outputs_written = 0;
        5:        5:  312:   shader->info->outputs_read = 0;
        5:        5:  313:   shader->info->double_inputs_read = 0;
        5:        5:  314:   shader->info->patch_inputs_read = 0;
        5:        5:  315:   shader->info->patch_outputs_written = 0;
        5:        5:  316:   shader->info->system_values_read = 0;
        5:        5:  317:   if (shader->stage == MESA_SHADER_FRAGMENT) {
        3:        3:  318:      shader->info->fs.uses_sample_qualifier = false;
        -:        -:  319:   }
       41:       57:  320:   nir_foreach_block(block, entrypoint) {
       36:       52:  321:      gather_info_block(block, shader);
        -:        -:  322:   }
        5:        5:  323:}

src/compiler/nir.h.gcov

        -:        -:    0:Source:../../src/compiler/nir/nir.h
        -:        -:    0:Graph:glsl/.libs/glsl_to_nir.gcno
        -:        -:    0:Data:glsl/.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef NIR_H
        -:        -:   29:#define NIR_H
        -:        -:   30:
        -:        -:   31:#include "util/hash_table.h"
        -:        -:   32:#include "compiler/glsl/list.h"
        -:        -:   33:#include "GL/gl.h" /* GLenum */
        -:        -:   34:#include "util/list.h"
        -:        -:   35:#include "util/ralloc.h"
        -:        -:   36:#include "util/set.h"
        -:        -:   37:#include "util/bitset.h"
        -:        -:   38:#include "util/macros.h"
        -:        -:   39:#include "compiler/nir_types.h"
        -:        -:   40:#include "compiler/shader_enums.h"
        -:        -:   41:#include "compiler/shader_info.h"
        -:        -:   42:#include <stdio.h>
        -:        -:   43:
        -:        -:   44:#ifdef DEBUG
        -:        -:   45:#include "util/debug.h"
        -:        -:   46:#endif /* DEBUG */
        -:        -:   47:
        -:        -:   48:#include "nir_opcodes.h"
        -:        -:   49:
        -:        -:   50:#ifdef __cplusplus
        -:        -:   51:extern "C" {
        -:        -:   52:#endif
        -:        -:   53:
        -:        -:   54:struct gl_program;
        -:        -:   55:struct gl_shader_program;
        -:        -:   56:
        -:        -:   57:#define NIR_FALSE 0u
        -:        -:   58:#define NIR_TRUE (~0u)
        -:        -:   59:
        -:        -:   60:/** Defines a cast function
        -:        -:   61: *
        -:        -:   62: * This macro defines a cast function from in_type to out_type where
        -:        -:   63: * out_type is some structure type that contains a field of type out_type.
        -:        -:   64: *
        -:        -:   65: * Note that you have to be a bit careful as the generated cast function
        -:        -:   66: * destroys constness.
        -:        -:   67: */
        -:        -:   68:#define NIR_DEFINE_CAST(name, in_type, out_type, field, \
        -:        -:   69:                        type_field, type_value)         \
        -:        -:   70:static inline out_type *                                \
        -:        -:   71:name(const in_type *parent)                             \
        -:        -:   72:{                                                       \
        -:        -:   73:   assert(parent && parent->type_field == type_value);  \
        -:        -:   74:   return exec_node_data(out_type, parent, field);      \
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:struct nir_function;
        -:        -:   78:struct nir_shader;
        -:        -:   79:struct nir_instr;
        -:        -:   80:
        -:        -:   81:
        -:        -:   82:/**
        -:        -:   83: * Description of built-in state associated with a uniform
        -:        -:   84: *
        -:        -:   85: * \sa nir_variable::state_slots
        -:        -:   86: */
        -:        -:   87:typedef struct {
        -:        -:   88:   int tokens[5];
        -:        -:   89:   int swizzle;
        -:        -:   90:} nir_state_slot;
        -:        -:   91:
        -:        -:   92:typedef enum {
        -:        -:   93:   nir_var_shader_in       = (1 << 0),
        -:        -:   94:   nir_var_shader_out      = (1 << 1),
        -:        -:   95:   nir_var_global          = (1 << 2),
        -:        -:   96:   nir_var_local           = (1 << 3),
        -:        -:   97:   nir_var_uniform         = (1 << 4),
        -:        -:   98:   nir_var_shader_storage  = (1 << 5),
        -:        -:   99:   nir_var_system_value    = (1 << 6),
        -:        -:  100:   nir_var_param           = (1 << 7),
        -:        -:  101:   nir_var_shared          = (1 << 8),
        -:        -:  102:   nir_var_all             = ~0,
        -:        -:  103:} nir_variable_mode;
        -:        -:  104:
        -:        -:  105:
        -:        -:  106:typedef union {
        -:        -:  107:   float f32[4];
        -:        -:  108:   double f64[4];
        -:        -:  109:   int8_t i8[4];
        -:        -:  110:   uint8_t u8[4];
        -:        -:  111:   int16_t i16[4];
        -:        -:  112:   uint16_t u16[4];
        -:        -:  113:   int32_t i32[4];
        -:        -:  114:   uint32_t u32[4];
        -:        -:  115:   int64_t i64[4];
        -:        -:  116:   uint64_t u64[4];
        -:        -:  117:} nir_const_value;
        -:        -:  118:
        -:        -:  119:typedef struct nir_constant {
        -:        -:  120:   /**
        -:        -:  121:    * Value of the constant.
        -:        -:  122:    *
        -:        -:  123:    * The field used to back the values supplied by the constant is determined
        -:        -:  124:    * by the type associated with the \c nir_variable.  Constants may be
        -:        -:  125:    * scalars, vectors, or matrices.
        -:        -:  126:    */
        -:        -:  127:   nir_const_value values[4];
        -:        -:  128:
        -:        -:  129:   /* we could get this from the var->type but makes clone *much* easier to
        -:        -:  130:    * not have to care about the type.
        -:        -:  131:    */
        -:        -:  132:   unsigned num_elements;
        -:        -:  133:
        -:        -:  134:   /* Array elements / Structure Fields */
        -:        -:  135:   struct nir_constant **elements;
        -:        -:  136:} nir_constant;
        -:        -:  137:
        -:        -:  138:/**
        -:        -:  139: * \brief Layout qualifiers for gl_FragDepth.
        -:        -:  140: *
        -:        -:  141: * The AMD/ARB_conservative_depth extensions allow gl_FragDepth to be redeclared
        -:        -:  142: * with a layout qualifier.
        -:        -:  143: */
        -:        -:  144:typedef enum {
        -:        -:  145:    nir_depth_layout_none, /**< No depth layout is specified. */
        -:        -:  146:    nir_depth_layout_any,
        -:        -:  147:    nir_depth_layout_greater,
        -:        -:  148:    nir_depth_layout_less,
        -:        -:  149:    nir_depth_layout_unchanged
        -:        -:  150:} nir_depth_layout;
        -:        -:  151:
        -:        -:  152:/**
        -:        -:  153: * Either a uniform, global variable, shader input, or shader output. Based on
        -:        -:  154: * ir_variable - it should be easy to translate between the two.
        -:        -:  155: */
        -:        -:  156:
        -:        -:  157:typedef struct nir_variable {
        -:        -:  158:   struct exec_node node;
        -:        -:  159:
        -:        -:  160:   /**
        -:        -:  161:    * Declared type of the variable
        -:        -:  162:    */
        -:        -:  163:   const struct glsl_type *type;
        -:        -:  164:
        -:        -:  165:   /**
        -:        -:  166:    * Declared name of the variable
        -:        -:  167:    */
        -:        -:  168:   char *name;
        -:        -:  169:
        -:        -:  170:   struct nir_variable_data {
        -:        -:  171:      /**
        -:        -:  172:       * Storage class of the variable.
        -:        -:  173:       *
        -:        -:  174:       * \sa nir_variable_mode
        -:        -:  175:       */
        -:        -:  176:      nir_variable_mode mode;
        -:        -:  177:
        -:        -:  178:      /**
        -:        -:  179:       * Is the variable read-only?
        -:        -:  180:       *
        -:        -:  181:       * This is set for variables declared as \c const, shader inputs,
        -:        -:  182:       * and uniforms.
        -:        -:  183:       */
        -:        -:  184:      unsigned read_only:1;
        -:        -:  185:      unsigned centroid:1;
        -:        -:  186:      unsigned sample:1;
        -:        -:  187:      unsigned patch:1;
        -:        -:  188:      unsigned invariant:1;
        -:        -:  189:
        -:        -:  190:      /**
        -:        -:  191:       * Interpolation mode for shader inputs / outputs
        -:        -:  192:       *
        -:        -:  193:       * \sa glsl_interp_mode
        -:        -:  194:       */
        -:        -:  195:      unsigned interpolation:2;
        -:        -:  196:
        -:        -:  197:      /**
        -:        -:  198:       * \name ARB_fragment_coord_conventions
        -:        -:  199:       * @{
        -:        -:  200:       */
        -:        -:  201:      unsigned origin_upper_left:1;
        -:        -:  202:      unsigned pixel_center_integer:1;
        -:        -:  203:      /*@}*/
        -:        -:  204:
        -:        -:  205:      /**
        -:        -:  206:       * If non-zero, then this variable may be packed along with other variables
        -:        -:  207:       * into a single varying slot, so this offset should be applied when
        -:        -:  208:       * accessing components.  For example, an offset of 1 means that the x
        -:        -:  209:       * component of this variable is actually stored in component y of the
        -:        -:  210:       * location specified by \c location.
        -:        -:  211:       */
        -:        -:  212:      unsigned location_frac:2;
        -:        -:  213:
        -:        -:  214:      /**
        -:        -:  215:       * If true, this variable represents an array of scalars that should
        -:        -:  216:       * be tightly packed.  In other words, consecutive array elements
        -:        -:  217:       * should be stored one component apart, rather than one slot apart.
        -:        -:  218:       */
        -:        -:  219:      bool compact:1;
        -:        -:  220:
        -:        -:  221:      /**
        -:        -:  222:       * Whether this is a fragment shader output implicitly initialized with
        -:        -:  223:       * the previous contents of the specified render target at the
        -:        -:  224:       * framebuffer location corresponding to this shader invocation.
        -:        -:  225:       */
        -:        -:  226:      unsigned fb_fetch_output:1;
        -:        -:  227:
        -:        -:  228:      /**
        -:        -:  229:       * \brief Layout qualifier for gl_FragDepth.
        -:        -:  230:       *
        -:        -:  231:       * This is not equal to \c ir_depth_layout_none if and only if this
        -:        -:  232:       * variable is \c gl_FragDepth and a layout qualifier is specified.
        -:        -:  233:       */
        -:        -:  234:      nir_depth_layout depth_layout;
        -:        -:  235:
        -:        -:  236:      /**
        -:        -:  237:       * Storage location of the base of this variable
        -:        -:  238:       *
        -:        -:  239:       * The precise meaning of this field depends on the nature of the variable.
        -:        -:  240:       *
        -:        -:  241:       *   - Vertex shader input: one of the values from \c gl_vert_attrib.
        -:        -:  242:       *   - Vertex shader output: one of the values from \c gl_varying_slot.
        -:        -:  243:       *   - Geometry shader input: one of the values from \c gl_varying_slot.
        -:        -:  244:       *   - Geometry shader output: one of the values from \c gl_varying_slot.
        -:        -:  245:       *   - Fragment shader input: one of the values from \c gl_varying_slot.
        -:        -:  246:       *   - Fragment shader output: one of the values from \c gl_frag_result.
        -:        -:  247:       *   - Uniforms: Per-stage uniform slot number for default uniform block.
        -:        -:  248:       *   - Uniforms: Index within the uniform block definition for UBO members.
        -:        -:  249:       *   - Non-UBO Uniforms: uniform slot number.
        -:        -:  250:       *   - Other: This field is not currently used.
        -:        -:  251:       *
        -:        -:  252:       * If the variable is a uniform, shader input, or shader output, and the
        -:        -:  253:       * slot has not been assigned, the value will be -1.
        -:        -:  254:       */
        -:        -:  255:      int location;
        -:        -:  256:
        -:        -:  257:      /**
        -:        -:  258:       * The actual location of the variable in the IR. Only valid for inputs
        -:        -:  259:       * and outputs.
        -:        -:  260:       */
        -:        -:  261:      unsigned int driver_location;
        -:        -:  262:
        -:        -:  263:      /**
        -:        -:  264:       * output index for dual source blending.
        -:        -:  265:       */
        -:        -:  266:      int index;
        -:        -:  267:
        -:        -:  268:      /**
        -:        -:  269:       * Descriptor set binding for sampler or UBO.
        -:        -:  270:       */
        -:        -:  271:      int descriptor_set;
        -:        -:  272:
        -:        -:  273:      /**
        -:        -:  274:       * Initial binding point for a sampler or UBO.
        -:        -:  275:       *
        -:        -:  276:       * For array types, this represents the binding point for the first element.
        -:        -:  277:       */
        -:        -:  278:      int binding;
        -:        -:  279:
        -:        -:  280:      /**
        -:        -:  281:       * Location an atomic counter is stored at.
        -:        -:  282:       */
        -:        -:  283:      unsigned offset;
        -:        -:  284:
        -:        -:  285:      /**
        -:        -:  286:       * ARB_shader_image_load_store qualifiers.
        -:        -:  287:       */
        -:        -:  288:      struct {
        -:        -:  289:         bool read_only; /**< "readonly" qualifier. */
        -:        -:  290:         bool write_only; /**< "writeonly" qualifier. */
        -:        -:  291:         bool coherent;
        -:        -:  292:         bool _volatile;
        -:        -:  293:         bool restrict_flag;
        -:        -:  294:
        -:        -:  295:         /** Image internal format if specified explicitly, otherwise GL_NONE. */
        -:        -:  296:         GLenum format;
        -:        -:  297:      } image;
        -:        -:  298:   } data;
        -:        -:  299:
        -:        -:  300:   /**
        -:        -:  301:    * Built-in state that backs this uniform
        -:        -:  302:    *
        -:        -:  303:    * Once set at variable creation, \c state_slots must remain invariant.
        -:        -:  304:    * This is because, ideally, this array would be shared by all clones of
        -:        -:  305:    * this variable in the IR tree.  In other words, we'd really like for it
        -:        -:  306:    * to be a fly-weight.
        -:        -:  307:    *
        -:        -:  308:    * If the variable is not a uniform, \c num_state_slots will be zero and
        -:        -:  309:    * \c state_slots will be \c NULL.
        -:        -:  310:    */
        -:        -:  311:   /*@{*/
        -:        -:  312:   unsigned num_state_slots;    /**< Number of state slots used */
        -:        -:  313:   nir_state_slot *state_slots;  /**< State descriptors. */
        -:        -:  314:   /*@}*/
        -:        -:  315:
        -:        -:  316:   /**
        -:        -:  317:    * Constant expression assigned in the initializer of the variable
        -:        -:  318:    *
        -:        -:  319:    * This field should only be used temporarily by creators of NIR shaders
        -:        -:  320:    * and then lower_constant_initializers can be used to get rid of them.
        -:        -:  321:    * Most of the rest of NIR ignores this field or asserts that it's NULL.
        -:        -:  322:    */
        -:        -:  323:   nir_constant *constant_initializer;
        -:        -:  324:
        -:        -:  325:   /**
        -:        -:  326:    * For variables that are in an interface block or are an instance of an
        -:        -:  327:    * interface block, this is the \c GLSL_TYPE_INTERFACE type for that block.
        -:        -:  328:    *
        -:        -:  329:    * \sa ir_variable::location
        -:        -:  330:    */
        -:        -:  331:   const struct glsl_type *interface_type;
        -:        -:  332:} nir_variable;
        -:        -:  333:
        -:        -:  334:#define nir_foreach_variable(var, var_list) \
        -:        -:  335:   foreach_list_typed(nir_variable, var, node, var_list)
        -:        -:  336:
        -:        -:  337:#define nir_foreach_variable_safe(var, var_list) \
        -:        -:  338:   foreach_list_typed_safe(nir_variable, var, node, var_list)
        -:        -:  339:
        -:        -:  340:static inline bool
        -:        -:  341:nir_variable_is_global(const nir_variable *var)
        -:        -:  342:{
        -:        -:  343:   return var->data.mode != nir_var_local && var->data.mode != nir_var_param;
        -:        -:  344:}
        -:        -:  345:
        -:        -:  346:typedef struct nir_register {
        -:        -:  347:   struct exec_node node;
        -:        -:  348:
        -:        -:  349:   unsigned num_components; /** < number of vector components */
        -:        -:  350:   unsigned num_array_elems; /** < size of array (0 for no array) */
        -:        -:  351:
        -:        -:  352:   /* The bit-size of each channel; must be one of 8, 16, 32, or 64 */
        -:        -:  353:   uint8_t bit_size;
        -:        -:  354:
        -:        -:  355:   /** generic register index. */
        -:        -:  356:   unsigned index;
        -:        -:  357:
        -:        -:  358:   /** only for debug purposes, can be NULL */
        -:        -:  359:   const char *name;
        -:        -:  360:
        -:        -:  361:   /** whether this register is local (per-function) or global (per-shader) */
        -:        -:  362:   bool is_global;
        -:        -:  363:
        -:        -:  364:   /**
        -:        -:  365:    * If this flag is set to true, then accessing channels >= num_components
        -:        -:  366:    * is well-defined, and simply spills over to the next array element. This
        -:        -:  367:    * is useful for backends that can do per-component accessing, in
        -:        -:  368:    * particular scalar backends. By setting this flag and making
        -:        -:  369:    * num_components equal to 1, structures can be packed tightly into
        -:        -:  370:    * registers and then registers can be accessed per-component to get to
        -:        -:  371:    * each structure member, even if it crosses vec4 boundaries.
        -:        -:  372:    */
        -:        -:  373:   bool is_packed;
        -:        -:  374:
        -:        -:  375:   /** set of nir_srcs where this register is used (read from) */
        -:        -:  376:   struct list_head uses;
        -:        -:  377:
        -:        -:  378:   /** set of nir_dests where this register is defined (written to) */
        -:        -:  379:   struct list_head defs;
        -:        -:  380:
        -:        -:  381:   /** set of nir_ifs where this register is used as a condition */
        -:        -:  382:   struct list_head if_uses;
        -:        -:  383:} nir_register;
        -:        -:  384:
        -:        -:  385:#define nir_foreach_register(reg, reg_list) \
        -:        -:  386:   foreach_list_typed(nir_register, reg, node, reg_list)
        -:        -:  387:#define nir_foreach_register_safe(reg, reg_list) \
        -:        -:  388:   foreach_list_typed_safe(nir_register, reg, node, reg_list)
        -:        -:  389:
        -:        -:  390:typedef enum {
        -:        -:  391:   nir_instr_type_alu,
        -:        -:  392:   nir_instr_type_call,
        -:        -:  393:   nir_instr_type_tex,
        -:        -:  394:   nir_instr_type_intrinsic,
        -:        -:  395:   nir_instr_type_load_const,
        -:        -:  396:   nir_instr_type_jump,
        -:        -:  397:   nir_instr_type_ssa_undef,
        -:        -:  398:   nir_instr_type_phi,
        -:        -:  399:   nir_instr_type_parallel_copy,
        -:        -:  400:} nir_instr_type;
        -:        -:  401:
        -:        -:  402:typedef struct nir_instr {
        -:        -:  403:   struct exec_node node;
        -:        -:  404:   nir_instr_type type;
        -:        -:  405:   struct nir_block *block;
        -:        -:  406:
        -:        -:  407:   /** generic instruction index. */
        -:        -:  408:   unsigned index;
        -:        -:  409:
        -:        -:  410:   /* A temporary for optimization and analysis passes to use for storing
        -:        -:  411:    * flags.  For instance, DCE uses this to store the "dead/live" info.
        -:        -:  412:    */
        -:        -:  413:   uint8_t pass_flags;
        -:        -:  414:} nir_instr;
        -:        -:  415:
        -:        -:  416:static inline nir_instr *
        -:        -:  417:nir_instr_next(nir_instr *instr)
        -:        -:  418:{
        -:        -:  419:   struct exec_node *next = exec_node_get_next(&instr->node);
        -:        -:  420:   if (exec_node_is_tail_sentinel(next))
        -:        -:  421:      return NULL;
        -:        -:  422:   else
        -:        -:  423:      return exec_node_data(nir_instr, next, node);
        -:        -:  424:}
        -:        -:  425:
        -:        -:  426:static inline nir_instr *
        -:        -:  427:nir_instr_prev(nir_instr *instr)
        -:        -:  428:{
        -:        -:  429:   struct exec_node *prev = exec_node_get_prev(&instr->node);
        -:        -:  430:   if (exec_node_is_head_sentinel(prev))
        -:        -:  431:      return NULL;
        -:        -:  432:   else
        -:        -:  433:      return exec_node_data(nir_instr, prev, node);
        -:        -:  434:}
        -:        -:  435:
        -:        -:  436:static inline bool
        -:        -:  437:nir_instr_is_first(nir_instr *instr)
        -:        -:  438:{
        -:        -:  439:   return exec_node_is_head_sentinel(exec_node_get_prev(&instr->node));
        -:        -:  440:}
        -:        -:  441:
        -:        -:  442:static inline bool
        -:        -:  443:nir_instr_is_last(nir_instr *instr)
        -:        -:  444:{
        -:        -:  445:   return exec_node_is_tail_sentinel(exec_node_get_next(&instr->node));
        -:        -:  446:}
        -:        -:  447:
        -:        -:  448:typedef struct nir_ssa_def {
        -:        -:  449:   /** for debugging only, can be NULL */
        -:        -:  450:   const char* name;
        -:        -:  451:
        -:        -:  452:   /** generic SSA definition index. */
        -:        -:  453:   unsigned index;
        -:        -:  454:
        -:        -:  455:   /** Index into the live_in and live_out bitfields */
        -:        -:  456:   unsigned live_index;
        -:        -:  457:
        -:        -:  458:   nir_instr *parent_instr;
        -:        -:  459:
        -:        -:  460:   /** set of nir_instrs where this register is used (read from) */
        -:        -:  461:   struct list_head uses;
        -:        -:  462:
        -:        -:  463:   /** set of nir_ifs where this register is used as a condition */
        -:        -:  464:   struct list_head if_uses;
        -:        -:  465:
        -:        -:  466:   uint8_t num_components;
        -:        -:  467:
        -:        -:  468:   /* The bit-size of each channel; must be one of 8, 16, 32, or 64 */
        -:        -:  469:   uint8_t bit_size;
        -:        -:  470:} nir_ssa_def;
        -:        -:  471:
        -:        -:  472:struct nir_src;
        -:        -:  473:
        -:        -:  474:typedef struct {
        -:        -:  475:   nir_register *reg;
        -:        -:  476:   struct nir_src *indirect; /** < NULL for no indirect offset */
        -:        -:  477:   unsigned base_offset;
        -:        -:  478:
        -:        -:  479:   /* TODO use-def chain goes here */
        -:        -:  480:} nir_reg_src;
        -:        -:  481:
        -:        -:  482:typedef struct {
        -:        -:  483:   nir_instr *parent_instr;
        -:        -:  484:   struct list_head def_link;
        -:        -:  485:
        -:        -:  486:   nir_register *reg;
        -:        -:  487:   struct nir_src *indirect; /** < NULL for no indirect offset */
        -:        -:  488:   unsigned base_offset;
        -:        -:  489:
        -:        -:  490:   /* TODO def-use chain goes here */
        -:        -:  491:} nir_reg_dest;
        -:        -:  492:
        -:        -:  493:struct nir_if;
        -:        -:  494:
        -:        -:  495:typedef struct nir_src {
        -:        -:  496:   union {
        -:        -:  497:      nir_instr *parent_instr;
        -:        -:  498:      struct nir_if *parent_if;
        -:        -:  499:   };
        -:        -:  500:
        -:        -:  501:   struct list_head use_link;
        -:        -:  502:
        -:        -:  503:   union {
        -:        -:  504:      nir_reg_src reg;
        -:        -:  505:      nir_ssa_def *ssa;
        -:        -:  506:   };
        -:        -:  507:
        -:        -:  508:   bool is_ssa;
        -:        -:  509:} nir_src;
        -:        -:  510:
        -:        -:  511:static inline nir_src
      143:      155:  512:nir_src_init(void)
        -:        -:  513:{
      143:      155:  514:   nir_src src = { { NULL } };
      143:      155:  515:   return src;
        -:        -:  516:}
        -:        -:  517:
        -:        -:  518:#define NIR_SRC_INIT nir_src_init()
        -:        -:  519:
        -:        -:  520:#define nir_foreach_use(src, reg_or_ssa_def) \
        -:        -:  521:   list_for_each_entry(nir_src, src, &(reg_or_ssa_def)->uses, use_link)
        -:        -:  522:
        -:        -:  523:#define nir_foreach_use_safe(src, reg_or_ssa_def) \
        -:        -:  524:   list_for_each_entry_safe(nir_src, src, &(reg_or_ssa_def)->uses, use_link)
        -:        -:  525:
        -:        -:  526:#define nir_foreach_if_use(src, reg_or_ssa_def) \
        -:        -:  527:   list_for_each_entry(nir_src, src, &(reg_or_ssa_def)->if_uses, use_link)
        -:        -:  528:
        -:        -:  529:#define nir_foreach_if_use_safe(src, reg_or_ssa_def) \
        -:        -:  530:   list_for_each_entry_safe(nir_src, src, &(reg_or_ssa_def)->if_uses, use_link)
        -:        -:  531:
        -:        -:  532:typedef struct {
        -:        -:  533:   union {
        -:        -:  534:      nir_reg_dest reg;
        -:        -:  535:      nir_ssa_def ssa;
        -:        -:  536:   };
        -:        -:  537:
        -:        -:  538:   bool is_ssa;
        -:        -:  539:} nir_dest;
        -:        -:  540:
        -:        -:  541:static inline nir_dest
        -:        -:  542:nir_dest_init(void)
        -:        -:  543:{
        -:        -:  544:   nir_dest dest = { { { NULL } } };
        -:        -:  545:   return dest;
        -:        -:  546:}
        -:        -:  547:
        -:        -:  548:#define NIR_DEST_INIT nir_dest_init()
        -:        -:  549:
        -:        -:  550:#define nir_foreach_def(dest, reg) \
        -:        -:  551:   list_for_each_entry(nir_dest, dest, &(reg)->defs, reg.def_link)
        -:        -:  552:
        -:        -:  553:#define nir_foreach_def_safe(dest, reg) \
        -:        -:  554:   list_for_each_entry_safe(nir_dest, dest, &(reg)->defs, reg.def_link)
        -:        -:  555:
        -:        -:  556:static inline nir_src
      134:      144:  557:nir_src_for_ssa(nir_ssa_def *def)
        -:        -:  558:{
      134:      144:  559:   nir_src src = NIR_SRC_INIT;
        -:        -:  560:
      134:      144:  561:   src.is_ssa = true;
      134:      144:  562:   src.ssa = def;
        -:        -:  563:
      134:      144:  564:   return src;
        -:        -:  565:}
        -:        -:  566:
        -:        -:  567:static inline nir_src
        -:        -:  568:nir_src_for_reg(nir_register *reg)
        -:        -:  569:{
        -:        -:  570:   nir_src src = NIR_SRC_INIT;
        -:        -:  571:
        -:        -:  572:   src.is_ssa = false;
        -:        -:  573:   src.reg.reg = reg;
        -:        -:  574:   src.reg.indirect = NULL;
        -:        -:  575:   src.reg.base_offset = 0;
        -:        -:  576:
        -:        -:  577:   return src;
        -:        -:  578:}
        -:        -:  579:
        -:        -:  580:static inline nir_dest
        -:        -:  581:nir_dest_for_reg(nir_register *reg)
        -:        -:  582:{
        -:        -:  583:   nir_dest dest = NIR_DEST_INIT;
        -:        -:  584:
        -:        -:  585:   dest.reg.reg = reg;
        -:        -:  586:
        -:        -:  587:   return dest;
        -:        -:  588:}
        -:        -:  589:
        -:        -:  590:static inline unsigned
        9:       11:  591:nir_src_bit_size(nir_src src)
        -:        -:  592:{
        9:       11:  593:   return src.is_ssa ? src.ssa->bit_size : src.reg.reg->bit_size;
        -:        -:  594:}
        -:        -:  595:
        -:        -:  596:static inline unsigned
        -:        -:  597:nir_dest_bit_size(nir_dest dest)
        -:        -:  598:{
        -:        -:  599:   return dest.is_ssa ? dest.ssa.bit_size : dest.reg.reg->bit_size;
        -:        -:  600:}
        -:        -:  601:
        -:        -:  602:void nir_src_copy(nir_src *dest, const nir_src *src, void *instr_or_if);
        -:        -:  603:void nir_dest_copy(nir_dest *dest, const nir_dest *src, nir_instr *instr);
        -:        -:  604:
        -:        -:  605:typedef struct {
        -:        -:  606:   nir_src src;
        -:        -:  607:
        -:        -:  608:   /**
        -:        -:  609:    * \name input modifiers
        -:        -:  610:    */
        -:        -:  611:   /*@{*/
        -:        -:  612:   /**
        -:        -:  613:    * For inputs interpreted as floating point, flips the sign bit. For
        -:        -:  614:    * inputs interpreted as integers, performs the two's complement negation.
        -:        -:  615:    */
        -:        -:  616:   bool negate;
        -:        -:  617:
        -:        -:  618:   /**
        -:        -:  619:    * Clears the sign bit for floating point values, and computes the integer
        -:        -:  620:    * absolute value for integers. Note that the negate modifier acts after
        -:        -:  621:    * the absolute value modifier, therefore if both are set then all inputs
        -:        -:  622:    * will become negative.
        -:        -:  623:    */
        -:        -:  624:   bool abs;
        -:        -:  625:   /*@}*/
        -:        -:  626:
        -:        -:  627:   /**
        -:        -:  628:    * For each input component, says which component of the register it is
        -:        -:  629:    * chosen from. Note that which elements of the swizzle are used and which
        -:        -:  630:    * are ignored are based on the write mask for most opcodes - for example,
        -:        -:  631:    * a statement like "foo.xzw = bar.zyx" would have a writemask of 1101b and
        -:        -:  632:    * a swizzle of {2, x, 1, 0} where x means "don't care."
        -:        -:  633:    */
        -:        -:  634:   uint8_t swizzle[4];
        -:        -:  635:} nir_alu_src;
        -:        -:  636:
        -:        -:  637:typedef struct {
        -:        -:  638:   nir_dest dest;
        -:        -:  639:
        -:        -:  640:   /**
        -:        -:  641:    * \name saturate output modifier
        -:        -:  642:    *
        -:        -:  643:    * Only valid for opcodes that output floating-point numbers. Clamps the
        -:        -:  644:    * output to between 0.0 and 1.0 inclusive.
        -:        -:  645:    */
        -:        -:  646:
        -:        -:  647:   bool saturate;
        -:        -:  648:
        -:        -:  649:   unsigned write_mask : 4; /* ignored if dest.is_ssa is true */
        -:        -:  650:} nir_alu_dest;
        -:        -:  651:
        -:        -:  652:typedef enum {
        -:        -:  653:   nir_type_invalid = 0, /* Not a valid type */
        -:        -:  654:   nir_type_float,
        -:        -:  655:   nir_type_int,
        -:        -:  656:   nir_type_uint,
        -:        -:  657:   nir_type_bool,
        -:        -:  658:   nir_type_bool32 =    32 | nir_type_bool,
        -:        -:  659:   nir_type_int8 =      8  | nir_type_int,
        -:        -:  660:   nir_type_int16 =     16 | nir_type_int,
        -:        -:  661:   nir_type_int32 =     32 | nir_type_int,
        -:        -:  662:   nir_type_int64 =     64 | nir_type_int,
        -:        -:  663:   nir_type_uint8 =     8  | nir_type_uint,
        -:        -:  664:   nir_type_uint16 =    16 | nir_type_uint,
        -:        -:  665:   nir_type_uint32 =    32 | nir_type_uint,
        -:        -:  666:   nir_type_uint64 =    64 | nir_type_uint,
        -:        -:  667:   nir_type_float16 =   16 | nir_type_float,
        -:        -:  668:   nir_type_float32 =   32 | nir_type_float,
        -:        -:  669:   nir_type_float64 =   64 | nir_type_float,
        -:        -:  670:} nir_alu_type;
        -:        -:  671:
        -:        -:  672:#define NIR_ALU_TYPE_SIZE_MASK 0xfffffff8
        -:        -:  673:#define NIR_ALU_TYPE_BASE_TYPE_MASK 0x00000007
        -:        -:  674:
        -:        -:  675:static inline unsigned
       71:       73:  676:nir_alu_type_get_type_size(nir_alu_type type)
        -:        -:  677:{
       71:       73:  678:   return type & NIR_ALU_TYPE_SIZE_MASK;
        -:        -:  679:}
        -:        -:  680:
        -:        -:  681:static inline unsigned
        -:        -:  682:nir_alu_type_get_base_type(nir_alu_type type)
        -:        -:  683:{
        -:        -:  684:   return type & NIR_ALU_TYPE_BASE_TYPE_MASK;
        -:        -:  685:}
        -:        -:  686:
        -:        -:  687:static inline nir_alu_type
    #####:    #####:  688:nir_get_nir_type_for_glsl_base_type(enum glsl_base_type base_type)
        -:        -:  689:{
    #####:    #####:  690:   switch (base_type) {
        -:        -:  691:   case GLSL_TYPE_BOOL:
    #####:    #####:  692:      return nir_type_bool32;
        -:        -:  693:      break;
        -:        -:  694:   case GLSL_TYPE_UINT:
    #####:    #####:  695:      return nir_type_uint32;
        -:        -:  696:      break;
        -:        -:  697:   case GLSL_TYPE_INT:
    #####:    #####:  698:      return nir_type_int32;
        -:        -:  699:      break;
        -:        -:  700:   case GLSL_TYPE_UINT64:
    #####:    #####:  701:      return nir_type_uint64;
        -:        -:  702:      break;
        -:        -:  703:   case GLSL_TYPE_INT64:
    #####:    #####:  704:      return nir_type_int64;
        -:        -:  705:      break;
        -:        -:  706:   case GLSL_TYPE_FLOAT:
    #####:    #####:  707:      return nir_type_float32;
        -:        -:  708:      break;
        -:        -:  709:   case GLSL_TYPE_DOUBLE:
    #####:    #####:  710:      return nir_type_float64;
        -:        -:  711:      break;
        -:        -:  712:   default:
    #####:    #####:  713:      unreachable("unknown type");
        -:        -:  714:   }
        -:        -:  715:}
        -:        -:  716:
        -:        -:  717:static inline nir_alu_type
        -:        -:  718:nir_get_nir_type_for_glsl_type(const struct glsl_type *type)
        -:        -:  719:{
        -:        -:  720:   return nir_get_nir_type_for_glsl_base_type(glsl_get_base_type(type));
        -:        -:  721:}
        -:        -:  722:
        -:        -:  723:nir_op nir_type_conversion_op(nir_alu_type src, nir_alu_type dst);
        -:        -:  724:
        -:        -:  725:typedef enum {
        -:        -:  726:   NIR_OP_IS_COMMUTATIVE = (1 << 0),
        -:        -:  727:   NIR_OP_IS_ASSOCIATIVE = (1 << 1),
        -:        -:  728:} nir_op_algebraic_property;
        -:        -:  729:
        -:        -:  730:typedef struct {
        -:        -:  731:   const char *name;
        -:        -:  732:
        -:        -:  733:   unsigned num_inputs;
        -:        -:  734:
        -:        -:  735:   /**
        -:        -:  736:    * The number of components in the output
        -:        -:  737:    *
        -:        -:  738:    * If non-zero, this is the size of the output and input sizes are
        -:        -:  739:    * explicitly given; swizzle and writemask are still in effect, but if
        -:        -:  740:    * the output component is masked out, then the input component may
        -:        -:  741:    * still be in use.
        -:        -:  742:    *
        -:        -:  743:    * If zero, the opcode acts in the standard, per-component manner; the
        -:        -:  744:    * operation is performed on each component (except the ones that are
        -:        -:  745:    * masked out) with the input being taken from the input swizzle for
        -:        -:  746:    * that component.
        -:        -:  747:    *
        -:        -:  748:    * The size of some of the inputs may be given (i.e. non-zero) even
        -:        -:  749:    * though output_size is zero; in that case, the inputs with a zero
        -:        -:  750:    * size act per-component, while the inputs with non-zero size don't.
        -:        -:  751:    */
        -:        -:  752:   unsigned output_size;
        -:        -:  753:
        -:        -:  754:   /**
        -:        -:  755:    * The type of vector that the instruction outputs. Note that the
        -:        -:  756:    * staurate modifier is only allowed on outputs with the float type.
        -:        -:  757:    */
        -:        -:  758:
        -:        -:  759:   nir_alu_type output_type;
        -:        -:  760:
        -:        -:  761:   /**
        -:        -:  762:    * The number of components in each input
        -:        -:  763:    */
        -:        -:  764:   unsigned input_sizes[4];
        -:        -:  765:
        -:        -:  766:   /**
        -:        -:  767:    * The type of vector that each input takes. Note that negate and
        -:        -:  768:    * absolute value are only allowed on inputs with int or float type and
        -:        -:  769:    * behave differently on the two.
        -:        -:  770:    */
        -:        -:  771:   nir_alu_type input_types[4];
        -:        -:  772:
        -:        -:  773:   nir_op_algebraic_property algebraic_properties;
        -:        -:  774:} nir_op_info;
        -:        -:  775:
        -:        -:  776:extern const nir_op_info nir_op_infos[nir_num_opcodes];
        -:        -:  777:
        -:        -:  778:typedef struct nir_alu_instr {
        -:        -:  779:   nir_instr instr;
        -:        -:  780:   nir_op op;
        -:        -:  781:
        -:        -:  782:   /** Indicates that this ALU instruction generates an exact value
        -:        -:  783:    *
        -:        -:  784:    * This is kind of a mixture of GLSL "precise" and "invariant" and not
        -:        -:  785:    * really equivalent to either.  This indicates that the value generated by
        -:        -:  786:    * this operation is high-precision and any code transformations that touch
        -:        -:  787:    * it must ensure that the resulting value is bit-for-bit identical to the
        -:        -:  788:    * original.
        -:        -:  789:    */
        -:        -:  790:   bool exact;
        -:        -:  791:
        -:        -:  792:   nir_alu_dest dest;
        -:        -:  793:   nir_alu_src src[];
        -:        -:  794:} nir_alu_instr;
        -:        -:  795:
        -:        -:  796:void nir_alu_src_copy(nir_alu_src *dest, const nir_alu_src *src,
        -:        -:  797:                      nir_alu_instr *instr);
        -:        -:  798:void nir_alu_dest_copy(nir_alu_dest *dest, const nir_alu_dest *src,
        -:        -:  799:                       nir_alu_instr *instr);
        -:        -:  800:
        -:        -:  801:/* is this source channel used? */
        -:        -:  802:static inline bool
        -:        -:  803:nir_alu_instr_channel_used(nir_alu_instr *instr, unsigned src, unsigned channel)
        -:        -:  804:{
        -:        -:  805:   if (nir_op_infos[instr->op].input_sizes[src] > 0)
        -:        -:  806:      return channel < nir_op_infos[instr->op].input_sizes[src];
        -:        -:  807:
        -:        -:  808:   return (instr->dest.write_mask >> channel) & 1;
        -:        -:  809:}
        -:        -:  810:
        -:        -:  811:/*
        -:        -:  812: * For instructions whose destinations are SSA, get the number of channels
        -:        -:  813: * used for a source
        -:        -:  814: */
        -:        -:  815:static inline unsigned
        -:        -:  816:nir_ssa_alu_instr_src_components(const nir_alu_instr *instr, unsigned src)
        -:        -:  817:{
        -:        -:  818:   assert(instr->dest.dest.is_ssa);
        -:        -:  819:
        -:        -:  820:   if (nir_op_infos[instr->op].input_sizes[src] > 0)
        -:        -:  821:      return nir_op_infos[instr->op].input_sizes[src];
        -:        -:  822:
        -:        -:  823:   return instr->dest.dest.ssa.num_components;
        -:        -:  824:}
        -:        -:  825:
        -:        -:  826:bool nir_alu_srcs_equal(const nir_alu_instr *alu1, const nir_alu_instr *alu2,
        -:        -:  827:                        unsigned src1, unsigned src2);
        -:        -:  828:
        -:        -:  829:typedef enum {
        -:        -:  830:   nir_deref_type_var,
        -:        -:  831:   nir_deref_type_array,
        -:        -:  832:   nir_deref_type_struct
        -:        -:  833:} nir_deref_type;
        -:        -:  834:
        -:        -:  835:typedef struct nir_deref {
        -:        -:  836:   nir_deref_type deref_type;
        -:        -:  837:   struct nir_deref *child;
        -:        -:  838:   const struct glsl_type *type;
        -:        -:  839:} nir_deref;
        -:        -:  840:
        -:        -:  841:typedef struct {
        -:        -:  842:   nir_deref deref;
        -:        -:  843:
        -:        -:  844:   nir_variable *var;
        -:        -:  845:} nir_deref_var;
        -:        -:  846:
        -:        -:  847:/* This enum describes how the array is referenced.  If the deref is
        -:        -:  848: * direct then the base_offset is used.  If the deref is indirect then
        -:        -:  849: * offset is given by base_offset + indirect.  If the deref is a wildcard
        -:        -:  850: * then the deref refers to all of the elements of the array at the same
        -:        -:  851: * time.  Wildcard dereferences are only ever allowed in copy_var
        -:        -:  852: * intrinsics and the source and destination derefs must have matching
        -:        -:  853: * wildcards.
        -:        -:  854: */
        -:        -:  855:typedef enum {
        -:        -:  856:   nir_deref_array_type_direct,
        -:        -:  857:   nir_deref_array_type_indirect,
        -:        -:  858:   nir_deref_array_type_wildcard,
        -:        -:  859:} nir_deref_array_type;
        -:        -:  860:
        -:        -:  861:typedef struct {
        -:        -:  862:   nir_deref deref;
        -:        -:  863:
        -:        -:  864:   nir_deref_array_type deref_array_type;
        -:        -:  865:   unsigned base_offset;
        -:        -:  866:   nir_src indirect;
        -:        -:  867:} nir_deref_array;
        -:        -:  868:
        -:        -:  869:typedef struct {
        -:        -:  870:   nir_deref deref;
        -:        -:  871:
        -:        -:  872:   unsigned index;
        -:        -:  873:} nir_deref_struct;
        -:        -:  874:
        -:        -:  875:NIR_DEFINE_CAST(nir_deref_as_var, nir_deref, nir_deref_var, deref,
        -:        -:  876:                deref_type, nir_deref_type_var)
        -:        -:  877:NIR_DEFINE_CAST(nir_deref_as_array, nir_deref, nir_deref_array, deref,
        -:        -:  878:                deref_type, nir_deref_type_array)
        -:        -:  879:NIR_DEFINE_CAST(nir_deref_as_struct, nir_deref, nir_deref_struct, deref,
        -:        -:  880:                deref_type, nir_deref_type_struct)
        -:        -:  881:
        -:        -:  882:/* Returns the last deref in the chain. */
        -:        -:  883:static inline nir_deref *
        -:        -:  884:nir_deref_tail(nir_deref *deref)
        -:        -:  885:{
        -:        -:  886:   while (deref->child)
        -:        -:  887:      deref = deref->child;
        -:        -:  888:   return deref;
        -:        -:  889:}
        -:        -:  890:
        -:        -:  891:typedef struct {
        -:        -:  892:   nir_instr instr;
        -:        -:  893:
        -:        -:  894:   unsigned num_params;
        -:        -:  895:   nir_deref_var **params;
        -:        -:  896:   nir_deref_var *return_deref;
        -:        -:  897:
        -:        -:  898:   struct nir_function *callee;
        -:        -:  899:} nir_call_instr;
        -:        -:  900:
        -:        -:  901:#define INTRINSIC(name, num_srcs, src_components, has_dest, dest_components, \
        -:        -:  902:                  num_variables, num_indices, idx0, idx1, idx2, flags) \
        -:        -:  903:   nir_intrinsic_##name,
        -:        -:  904:
        -:        -:  905:#define LAST_INTRINSIC(name) nir_last_intrinsic = nir_intrinsic_##name,
        -:        -:  906:
        -:        -:  907:typedef enum {
        -:        -:  908:#include "nir_intrinsics.h"
        -:        -:  909:   nir_num_intrinsics = nir_last_intrinsic + 1
        -:        -:  910:} nir_intrinsic_op;
        -:        -:  911:
        -:        -:  912:#define NIR_INTRINSIC_MAX_CONST_INDEX 3
        -:        -:  913:
        -:        -:  914:/** Represents an intrinsic
        -:        -:  915: *
        -:        -:  916: * An intrinsic is an instruction type for handling things that are
        -:        -:  917: * more-or-less regular operations but don't just consume and produce SSA
        -:        -:  918: * values like ALU operations do.  Intrinsics are not for things that have
        -:        -:  919: * special semantic meaning such as phi nodes and parallel copies.
        -:        -:  920: * Examples of intrinsics include variable load/store operations, system
        -:        -:  921: * value loads, and the like.  Even though texturing more-or-less falls
        -:        -:  922: * under this category, texturing is its own instruction type because
        -:        -:  923: * trying to represent texturing with intrinsics would lead to a
        -:        -:  924: * combinatorial explosion of intrinsic opcodes.
        -:        -:  925: *
        -:        -:  926: * By having a single instruction type for handling a lot of different
        -:        -:  927: * cases, optimization passes can look for intrinsics and, for the most
        -:        -:  928: * part, completely ignore them.  Each intrinsic type also has a few
        -:        -:  929: * possible flags that govern whether or not they can be reordered or
        -:        -:  930: * eliminated.  That way passes like dead code elimination can still work
        -:        -:  931: * on intrisics without understanding the meaning of each.
        -:        -:  932: *
        -:        -:  933: * Each intrinsic has some number of constant indices, some number of
        -:        -:  934: * variables, and some number of sources.  What these sources, variables,
        -:        -:  935: * and indices mean depends on the intrinsic and is documented with the
        -:        -:  936: * intrinsic declaration in nir_intrinsics.h.  Intrinsics and texture
        -:        -:  937: * instructions are the only types of instruction that can operate on
        -:        -:  938: * variables.
        -:        -:  939: */
        -:        -:  940:typedef struct {
        -:        -:  941:   nir_instr instr;
        -:        -:  942:
        -:        -:  943:   nir_intrinsic_op intrinsic;
        -:        -:  944:
        -:        -:  945:   nir_dest dest;
        -:        -:  946:
        -:        -:  947:   /** number of components if this is a vectorized intrinsic
        -:        -:  948:    *
        -:        -:  949:    * Similarly to ALU operations, some intrinsics are vectorized.
        -:        -:  950:    * An intrinsic is vectorized if nir_intrinsic_infos.dest_components == 0.
        -:        -:  951:    * For vectorized intrinsics, the num_components field specifies the
        -:        -:  952:    * number of destination components and the number of source components
        -:        -:  953:    * for all sources with nir_intrinsic_infos.src_components[i] == 0.
        -:        -:  954:    */
        -:        -:  955:   uint8_t num_components;
        -:        -:  956:
        -:        -:  957:   int const_index[NIR_INTRINSIC_MAX_CONST_INDEX];
        -:        -:  958:
        -:        -:  959:   nir_deref_var *variables[2];
        -:        -:  960:
        -:        -:  961:   nir_src src[];
        -:        -:  962:} nir_intrinsic_instr;
        -:        -:  963:
        -:        -:  964:/**
        -:        -:  965: * \name NIR intrinsics semantic flags
        -:        -:  966: *
        -:        -:  967: * information about what the compiler can do with the intrinsics.
        -:        -:  968: *
        -:        -:  969: * \sa nir_intrinsic_info::flags
        -:        -:  970: */
        -:        -:  971:typedef enum {
        -:        -:  972:   /**
        -:        -:  973:    * whether the intrinsic can be safely eliminated if none of its output
        -:        -:  974:    * value is not being used.
        -:        -:  975:    */
        -:        -:  976:   NIR_INTRINSIC_CAN_ELIMINATE = (1 << 0),
        -:        -:  977:
        -:        -:  978:   /**
        -:        -:  979:    * Whether the intrinsic can be reordered with respect to any other
        -:        -:  980:    * intrinsic, i.e. whether the only reordering dependencies of the
        -:        -:  981:    * intrinsic are due to the register reads/writes.
        -:        -:  982:    */
        -:        -:  983:   NIR_INTRINSIC_CAN_REORDER = (1 << 1),
        -:        -:  984:} nir_intrinsic_semantic_flag;
        -:        -:  985:
        -:        -:  986:/**
        -:        -:  987: * \name NIR intrinsics const-index flag
        -:        -:  988: *
        -:        -:  989: * Indicates the usage of a const_index slot.
        -:        -:  990: *
        -:        -:  991: * \sa nir_intrinsic_info::index_map
        -:        -:  992: */
        -:        -:  993:typedef enum {
        -:        -:  994:   /**
        -:        -:  995:    * Generally instructions that take a offset src argument, can encode
        -:        -:  996:    * a constant 'base' value which is added to the offset.
        -:        -:  997:    */
        -:        -:  998:   NIR_INTRINSIC_BASE = 1,
        -:        -:  999:
        -:        -: 1000:   /**
        -:        -: 1001:    * For store instructions, a writemask for the store.
        -:        -: 1002:    */
        -:        -: 1003:   NIR_INTRINSIC_WRMASK = 2,
        -:        -: 1004:
        -:        -: 1005:   /**
        -:        -: 1006:    * The stream-id for GS emit_vertex/end_primitive intrinsics.
        -:        -: 1007:    */
        -:        -: 1008:   NIR_INTRINSIC_STREAM_ID = 3,
        -:        -: 1009:
        -:        -: 1010:   /**
        -:        -: 1011:    * The clip-plane id for load_user_clip_plane intrinsic.
        -:        -: 1012:    */
        -:        -: 1013:   NIR_INTRINSIC_UCP_ID = 4,
        -:        -: 1014:
        -:        -: 1015:   /**
        -:        -: 1016:    * The amount of data, starting from BASE, that this instruction may
        -:        -: 1017:    * access.  This is used to provide bounds if the offset is not constant.
        -:        -: 1018:    */
        -:        -: 1019:   NIR_INTRINSIC_RANGE = 5,
        -:        -: 1020:
        -:        -: 1021:   /**
        -:        -: 1022:    * The Vulkan descriptor set for vulkan_resource_index intrinsic.
        -:        -: 1023:    */
        -:        -: 1024:   NIR_INTRINSIC_DESC_SET = 6,
        -:        -: 1025:
        -:        -: 1026:   /**
        -:        -: 1027:    * The Vulkan descriptor set binding for vulkan_resource_index intrinsic.
        -:        -: 1028:    */
        -:        -: 1029:   NIR_INTRINSIC_BINDING = 7,
        -:        -: 1030:
        -:        -: 1031:   /**
        -:        -: 1032:    * Component offset.
        -:        -: 1033:    */
        -:        -: 1034:   NIR_INTRINSIC_COMPONENT = 8,
        -:        -: 1035:
        -:        -: 1036:   /**
        -:        -: 1037:    * Interpolation mode (only meaningful for FS inputs).
        -:        -: 1038:    */
        -:        -: 1039:   NIR_INTRINSIC_INTERP_MODE = 9,
        -:        -: 1040:
        -:        -: 1041:   NIR_INTRINSIC_NUM_INDEX_FLAGS,
        -:        -: 1042:
        -:        -: 1043:} nir_intrinsic_index_flag;
        -:        -: 1044:
        -:        -: 1045:#define NIR_INTRINSIC_MAX_INPUTS 4
        -:        -: 1046:
        -:        -: 1047:typedef struct {
        -:        -: 1048:   const char *name;
        -:        -: 1049:
        -:        -: 1050:   unsigned num_srcs; /** < number of register/SSA inputs */
        -:        -: 1051:
        -:        -: 1052:   /** number of components of each input register
        -:        -: 1053:    *
        -:        -: 1054:    * If this value is 0, the number of components is given by the
        -:        -: 1055:    * num_components field of nir_intrinsic_instr.
        -:        -: 1056:    */
        -:        -: 1057:   unsigned src_components[NIR_INTRINSIC_MAX_INPUTS];
        -:        -: 1058:
        -:        -: 1059:   bool has_dest;
        -:        -: 1060:
        -:        -: 1061:   /** number of components of the output register
        -:        -: 1062:    *
        -:        -: 1063:    * If this value is 0, the number of components is given by the
        -:        -: 1064:    * num_components field of nir_intrinsic_instr.
        -:        -: 1065:    */
        -:        -: 1066:   unsigned dest_components;
        -:        -: 1067:
        -:        -: 1068:   /** the number of inputs/outputs that are variables */
        -:        -: 1069:   unsigned num_variables;
        -:        -: 1070:
        -:        -: 1071:   /** the number of constant indices used by the intrinsic */
        -:        -: 1072:   unsigned num_indices;
        -:        -: 1073:
        -:        -: 1074:   /** indicates the usage of intr->const_index[n] */
        -:        -: 1075:   unsigned index_map[NIR_INTRINSIC_NUM_INDEX_FLAGS];
        -:        -: 1076:
        -:        -: 1077:   /** semantic flags for calls to this intrinsic */
        -:        -: 1078:   nir_intrinsic_semantic_flag flags;
        -:        -: 1079:} nir_intrinsic_info;
        -:        -: 1080:
        -:        -: 1081:extern const nir_intrinsic_info nir_intrinsic_infos[nir_num_intrinsics];
        -:        -: 1082:
        -:        -: 1083:
        -:        -: 1084:#define INTRINSIC_IDX_ACCESSORS(name, flag, type)                             \
        -:        -: 1085:static inline type                                                            \
        -:        -: 1086:nir_intrinsic_##name(nir_intrinsic_instr *instr)                              \
        -:        -: 1087:{                                                                             \
        -:        -: 1088:   const nir_intrinsic_info *info = &nir_intrinsic_infos[instr->intrinsic];   \
        -:        -: 1089:   assert(info->index_map[NIR_INTRINSIC_##flag] > 0);                         \
        -:        -: 1090:   return instr->const_index[info->index_map[NIR_INTRINSIC_##flag] - 1];      \
        -:        -: 1091:}                                                                             \
        -:        -: 1092:static inline void                                                            \
        -:        -: 1093:nir_intrinsic_set_##name(nir_intrinsic_instr *instr, type val)                \
        -:        -: 1094:{                                                                             \
        -:        -: 1095:   const nir_intrinsic_info *info = &nir_intrinsic_infos[instr->intrinsic];   \
        -:        -: 1096:   assert(info->index_map[NIR_INTRINSIC_##flag] > 0);                         \
        -:        -: 1097:   instr->const_index[info->index_map[NIR_INTRINSIC_##flag] - 1] = val;       \
        -:        -: 1098:}
        -:        -: 1099:
       19:       19: 1100:INTRINSIC_IDX_ACCESSORS(write_mask, WRMASK, unsigned)
    #####:    #####: 1101:INTRINSIC_IDX_ACCESSORS(base, BASE, int)
    #####:    #####: 1102:INTRINSIC_IDX_ACCESSORS(stream_id, STREAM_ID, unsigned)
        -:        -: 1103:INTRINSIC_IDX_ACCESSORS(ucp_id, UCP_ID, unsigned)
        -:        -: 1104:INTRINSIC_IDX_ACCESSORS(range, RANGE, unsigned)
        -:        -: 1105:INTRINSIC_IDX_ACCESSORS(desc_set, DESC_SET, unsigned)
        -:        -: 1106:INTRINSIC_IDX_ACCESSORS(binding, BINDING, unsigned)
        -:        -: 1107:INTRINSIC_IDX_ACCESSORS(component, COMPONENT, unsigned)
        -:        -: 1108:INTRINSIC_IDX_ACCESSORS(interp_mode, INTERP_MODE, unsigned)
        -:        -: 1109:
        -:        -: 1110:/**
        -:        -: 1111: * \group texture information
        -:        -: 1112: *
        -:        -: 1113: * This gives semantic information about textures which is useful to the
        -:        -: 1114: * frontend, the backend, and lowering passes, but not the optimizer.
        -:        -: 1115: */
        -:        -: 1116:
        -:        -: 1117:typedef enum {
        -:        -: 1118:   nir_tex_src_coord,
        -:        -: 1119:   nir_tex_src_projector,
        -:        -: 1120:   nir_tex_src_comparator, /* shadow comparator */
        -:        -: 1121:   nir_tex_src_offset,
        -:        -: 1122:   nir_tex_src_bias,
        -:        -: 1123:   nir_tex_src_lod,
        -:        -: 1124:   nir_tex_src_ms_index, /* MSAA sample index */
        -:        -: 1125:   nir_tex_src_ms_mcs, /* MSAA compression value */
        -:        -: 1126:   nir_tex_src_ddx,
        -:        -: 1127:   nir_tex_src_ddy,
        -:        -: 1128:   nir_tex_src_texture_offset, /* < dynamically uniform indirect offset */
        -:        -: 1129:   nir_tex_src_sampler_offset, /* < dynamically uniform indirect offset */
        -:        -: 1130:   nir_tex_src_plane,          /* < selects plane for planar textures */
        -:        -: 1131:   nir_num_tex_src_types
        -:        -: 1132:} nir_tex_src_type;
        -:        -: 1133:
        -:        -: 1134:typedef struct {
        -:        -: 1135:   nir_src src;
        -:        -: 1136:   nir_tex_src_type src_type;
        -:        -: 1137:} nir_tex_src;
        -:        -: 1138:
        -:        -: 1139:typedef enum {
        -:        -: 1140:   nir_texop_tex,                /**< Regular texture look-up */
        -:        -: 1141:   nir_texop_txb,                /**< Texture look-up with LOD bias */
        -:        -: 1142:   nir_texop_txl,                /**< Texture look-up with explicit LOD */
        -:        -: 1143:   nir_texop_txd,                /**< Texture look-up with partial derivatvies */
        -:        -: 1144:   nir_texop_txf,                /**< Texel fetch with explicit LOD */
        -:        -: 1145:   nir_texop_txf_ms,                /**< Multisample texture fetch */
        -:        -: 1146:   nir_texop_txf_ms_mcs,         /**< Multisample compression value fetch */
        -:        -: 1147:   nir_texop_txs,                /**< Texture size */
        -:        -: 1148:   nir_texop_lod,                /**< Texture lod query */
        -:        -: 1149:   nir_texop_tg4,                /**< Texture gather */
        -:        -: 1150:   nir_texop_query_levels,       /**< Texture levels query */
        -:        -: 1151:   nir_texop_texture_samples,    /**< Texture samples query */
        -:        -: 1152:   nir_texop_samples_identical,  /**< Query whether all samples are definitely
        -:        -: 1153:                                  * identical.
        -:        -: 1154:                                  */
        -:        -: 1155:} nir_texop;
        -:        -: 1156:
        -:        -: 1157:typedef struct {
        -:        -: 1158:   nir_instr instr;
        -:        -: 1159:
        -:        -: 1160:   enum glsl_sampler_dim sampler_dim;
        -:        -: 1161:   nir_alu_type dest_type;
        -:        -: 1162:
        -:        -: 1163:   nir_texop op;
        -:        -: 1164:   nir_dest dest;
        -:        -: 1165:   nir_tex_src *src;
        -:        -: 1166:   unsigned num_srcs, coord_components;
        -:        -: 1167:   bool is_array, is_shadow;
        -:        -: 1168:
        -:        -: 1169:   /**
        -:        -: 1170:    * If is_shadow is true, whether this is the old-style shadow that outputs 4
        -:        -: 1171:    * components or the new-style shadow that outputs 1 component.
        -:        -: 1172:    */
        -:        -: 1173:   bool is_new_style_shadow;
        -:        -: 1174:
        -:        -: 1175:   /* gather component selector */
        -:        -: 1176:   unsigned component : 2;
        -:        -: 1177:
        -:        -: 1178:   /** The texture index
        -:        -: 1179:    *
        -:        -: 1180:    * If this texture instruction has a nir_tex_src_texture_offset source,
        -:        -: 1181:    * then the texture index is given by texture_index + texture_offset.
        -:        -: 1182:    */
        -:        -: 1183:   unsigned texture_index;
        -:        -: 1184:
        -:        -: 1185:   /** The size of the texture array or 0 if it's not an array */
        -:        -: 1186:   unsigned texture_array_size;
        -:        -: 1187:
        -:        -: 1188:   /** The texture deref
        -:        -: 1189:    *
        -:        -: 1190:    * If this is null, use texture_index instead.
        -:        -: 1191:    */
        -:        -: 1192:   nir_deref_var *texture;
        -:        -: 1193:
        -:        -: 1194:   /** The sampler index
        -:        -: 1195:    *
        -:        -: 1196:    * The following operations do not require a sampler and, as such, this
        -:        -: 1197:    * field should be ignored:
        -:        -: 1198:    *    - nir_texop_txf
        -:        -: 1199:    *    - nir_texop_txf_ms
        -:        -: 1200:    *    - nir_texop_txs
        -:        -: 1201:    *    - nir_texop_lod
        -:        -: 1202:    *    - nir_texop_tg4
        -:        -: 1203:    *    - nir_texop_query_levels
        -:        -: 1204:    *    - nir_texop_texture_samples
        -:        -: 1205:    *    - nir_texop_samples_identical
        -:        -: 1206:    *
        -:        -: 1207:    * If this texture instruction has a nir_tex_src_sampler_offset source,
        -:        -: 1208:    * then the sampler index is given by sampler_index + sampler_offset.
        -:        -: 1209:    */
        -:        -: 1210:   unsigned sampler_index;
        -:        -: 1211:
        -:        -: 1212:   /** The sampler deref
        -:        -: 1213:    *
        -:        -: 1214:    * If this is null, use sampler_index instead.
        -:        -: 1215:    */
        -:        -: 1216:   nir_deref_var *sampler;
        -:        -: 1217:} nir_tex_instr;
        -:        -: 1218:
        -:        -: 1219:static inline unsigned
    #####:    #####: 1220:nir_tex_instr_dest_size(nir_tex_instr *instr)
        -:        -: 1221:{
    #####:    #####: 1222:   switch (instr->op) {
        -:        -: 1223:   case nir_texop_txs: {
        -:        -: 1224:      unsigned ret;
    #####:    #####: 1225:      switch (instr->sampler_dim) {
        -:        -: 1226:         case GLSL_SAMPLER_DIM_1D:
        -:        -: 1227:         case GLSL_SAMPLER_DIM_BUF:
    #####:    #####: 1228:            ret = 1;
    #####:    #####: 1229:            break;
        -:        -: 1230:         case GLSL_SAMPLER_DIM_2D:
        -:        -: 1231:         case GLSL_SAMPLER_DIM_CUBE:
        -:        -: 1232:         case GLSL_SAMPLER_DIM_MS:
        -:        -: 1233:         case GLSL_SAMPLER_DIM_RECT:
        -:        -: 1234:         case GLSL_SAMPLER_DIM_EXTERNAL:
        -:        -: 1235:         case GLSL_SAMPLER_DIM_SUBPASS:
    #####:    #####: 1236:            ret = 2;
    #####:    #####: 1237:            break;
        -:        -: 1238:         case GLSL_SAMPLER_DIM_3D:
    #####:    #####: 1239:            ret = 3;
    #####:    #####: 1240:            break;
        -:        -: 1241:         default:
    #####:    #####: 1242:            unreachable("not reached");
        -:        -: 1243:      }
    #####:    #####: 1244:      if (instr->is_array)
    #####:    #####: 1245:         ret++;
    #####:    #####: 1246:      return ret;
        -:        -: 1247:   }
        -:        -: 1248:
        -:        -: 1249:   case nir_texop_lod:
    #####:    #####: 1250:      return 2;
        -:        -: 1251:
        -:        -: 1252:   case nir_texop_texture_samples:
        -:        -: 1253:   case nir_texop_query_levels:
        -:        -: 1254:   case nir_texop_samples_identical:
    #####:    #####: 1255:      return 1;
        -:        -: 1256:
        -:        -: 1257:   default:
    #####:    #####: 1258:      if (instr->is_shadow && instr->is_new_style_shadow)
    #####:    #####: 1259:         return 1;
        -:        -: 1260:
    #####:    #####: 1261:      return 4;
        -:        -: 1262:   }
        -:        -: 1263:}
        -:        -: 1264:
        -:        -: 1265:/* Returns true if this texture operation queries something about the texture
        -:        -: 1266: * rather than actually sampling it.
        -:        -: 1267: */
        -:        -: 1268:static inline bool
        -:        -: 1269:nir_tex_instr_is_query(nir_tex_instr *instr)
        -:        -: 1270:{
        -:        -: 1271:   switch (instr->op) {
        -:        -: 1272:   case nir_texop_txs:
        -:        -: 1273:   case nir_texop_lod:
        -:        -: 1274:   case nir_texop_texture_samples:
        -:        -: 1275:   case nir_texop_query_levels:
        -:        -: 1276:   case nir_texop_txf_ms_mcs:
        -:        -: 1277:      return true;
        -:        -: 1278:   case nir_texop_tex:
        -:        -: 1279:   case nir_texop_txb:
        -:        -: 1280:   case nir_texop_txl:
        -:        -: 1281:   case nir_texop_txd:
        -:        -: 1282:   case nir_texop_txf:
        -:        -: 1283:   case nir_texop_txf_ms:
        -:        -: 1284:   case nir_texop_tg4:
        -:        -: 1285:      return false;
        -:        -: 1286:   default:
        -:        -: 1287:      unreachable("Invalid texture opcode");
        -:        -: 1288:   }
        -:        -: 1289:}
        -:        -: 1290:
        -:        -: 1291:static inline nir_alu_type
        -:        -: 1292:nir_tex_instr_src_type(nir_tex_instr *instr, unsigned src)
        -:        -: 1293:{
        -:        -: 1294:   switch (instr->src[src].src_type) {
        -:        -: 1295:   case nir_tex_src_coord:
        -:        -: 1296:      switch (instr->op) {
        -:        -: 1297:      case nir_texop_txf:
        -:        -: 1298:      case nir_texop_txf_ms:
        -:        -: 1299:      case nir_texop_txf_ms_mcs:
        -:        -: 1300:      case nir_texop_samples_identical:
        -:        -: 1301:         return nir_type_int;
        -:        -: 1302:
        -:        -: 1303:      default:
        -:        -: 1304:         return nir_type_float;
        -:        -: 1305:      }
        -:        -: 1306:
        -:        -: 1307:   case nir_tex_src_lod:
        -:        -: 1308:      switch (instr->op) {
        -:        -: 1309:      case nir_texop_txs:
        -:        -: 1310:      case nir_texop_txf:
        -:        -: 1311:         return nir_type_int;
        -:        -: 1312:
        -:        -: 1313:      default:
        -:        -: 1314:         return nir_type_float;
        -:        -: 1315:      }
        -:        -: 1316:
        -:        -: 1317:   case nir_tex_src_projector:
        -:        -: 1318:   case nir_tex_src_comparator:
        -:        -: 1319:   case nir_tex_src_bias:
        -:        -: 1320:   case nir_tex_src_ddx:
        -:        -: 1321:   case nir_tex_src_ddy:
        -:        -: 1322:      return nir_type_float;
        -:        -: 1323:
        -:        -: 1324:   case nir_tex_src_offset:
        -:        -: 1325:   case nir_tex_src_ms_index:
        -:        -: 1326:   case nir_tex_src_texture_offset:
        -:        -: 1327:   case nir_tex_src_sampler_offset:
        -:        -: 1328:      return nir_type_int;
        -:        -: 1329:
        -:        -: 1330:   default:
        -:        -: 1331:      unreachable("Invalid texture source type");
        -:        -: 1332:   }
        -:        -: 1333:}
        -:        -: 1334:
        -:        -: 1335:static inline unsigned
        -:        -: 1336:nir_tex_instr_src_size(nir_tex_instr *instr, unsigned src)
        -:        -: 1337:{
        -:        -: 1338:   if (instr->src[src].src_type == nir_tex_src_coord)
        -:        -: 1339:      return instr->coord_components;
        -:        -: 1340:
        -:        -: 1341:   /* The MCS value is expected to be a vec4 returned by a txf_ms_mcs */
        -:        -: 1342:   if (instr->src[src].src_type == nir_tex_src_ms_mcs)
        -:        -: 1343:      return 4;
        -:        -: 1344:
        -:        -: 1345:   if (instr->src[src].src_type == nir_tex_src_offset ||
        -:        -: 1346:       instr->src[src].src_type == nir_tex_src_ddx ||
        -:        -: 1347:       instr->src[src].src_type == nir_tex_src_ddy) {
        -:        -: 1348:      if (instr->is_array)
        -:        -: 1349:         return instr->coord_components - 1;
        -:        -: 1350:      else
        -:        -: 1351:         return instr->coord_components;
        -:        -: 1352:   }
        -:        -: 1353:
        -:        -: 1354:   return 1;
        -:        -: 1355:}
        -:        -: 1356:
        -:        -: 1357:static inline int
        -:        -: 1358:nir_tex_instr_src_index(nir_tex_instr *instr, nir_tex_src_type type)
        -:        -: 1359:{
        -:        -: 1360:   for (unsigned i = 0; i < instr->num_srcs; i++)
        -:        -: 1361:      if (instr->src[i].src_type == type)
        -:        -: 1362:         return (int) i;
        -:        -: 1363:
        -:        -: 1364:   return -1;
        -:        -: 1365:}
        -:        -: 1366:
        -:        -: 1367:void nir_tex_instr_remove_src(nir_tex_instr *tex, unsigned src_idx);
        -:        -: 1368:
        -:        -: 1369:typedef struct {
        -:        -: 1370:   nir_instr instr;
        -:        -: 1371:
        -:        -: 1372:   nir_const_value value;
        -:        -: 1373:
        -:        -: 1374:   nir_ssa_def def;
        -:        -: 1375:} nir_load_const_instr;
        -:        -: 1376:
        -:        -: 1377:typedef enum {
        -:        -: 1378:   nir_jump_return,
        -:        -: 1379:   nir_jump_break,
        -:        -: 1380:   nir_jump_continue,
        -:        -: 1381:} nir_jump_type;
        -:        -: 1382:
        -:        -: 1383:typedef struct {
        -:        -: 1384:   nir_instr instr;
        -:        -: 1385:   nir_jump_type type;
        -:        -: 1386:} nir_jump_instr;
        -:        -: 1387:
        -:        -: 1388:/* creates a new SSA variable in an undefined state */
        -:        -: 1389:
        -:        -: 1390:typedef struct {
        -:        -: 1391:   nir_instr instr;
        -:        -: 1392:   nir_ssa_def def;
        -:        -: 1393:} nir_ssa_undef_instr;
        -:        -: 1394:
        -:        -: 1395:typedef struct {
        -:        -: 1396:   struct exec_node node;
        -:        -: 1397:
        -:        -: 1398:   /* The predecessor block corresponding to this source */
        -:        -: 1399:   struct nir_block *pred;
        -:        -: 1400:
        -:        -: 1401:   nir_src src;
        -:        -: 1402:} nir_phi_src;
        -:        -: 1403:
        -:        -: 1404:#define nir_foreach_phi_src(phi_src, phi) \
        -:        -: 1405:   foreach_list_typed(nir_phi_src, phi_src, node, &(phi)->srcs)
        -:        -: 1406:#define nir_foreach_phi_src_safe(phi_src, phi) \
        -:        -: 1407:   foreach_list_typed_safe(nir_phi_src, phi_src, node, &(phi)->srcs)
        -:        -: 1408:
        -:        -: 1409:typedef struct {
        -:        -: 1410:   nir_instr instr;
        -:        -: 1411:
        -:        -: 1412:   struct exec_list srcs; /** < list of nir_phi_src */
        -:        -: 1413:
        -:        -: 1414:   nir_dest dest;
        -:        -: 1415:} nir_phi_instr;
        -:        -: 1416:
        -:        -: 1417:typedef struct {
        -:        -: 1418:   struct exec_node node;
        -:        -: 1419:   nir_src src;
        -:        -: 1420:   nir_dest dest;
        -:        -: 1421:} nir_parallel_copy_entry;
        -:        -: 1422:
        -:        -: 1423:#define nir_foreach_parallel_copy_entry(entry, pcopy) \
        -:        -: 1424:   foreach_list_typed(nir_parallel_copy_entry, entry, node, &(pcopy)->entries)
        -:        -: 1425:
        -:        -: 1426:typedef struct {
        -:        -: 1427:   nir_instr instr;
        -:        -: 1428:
        -:        -: 1429:   /* A list of nir_parallel_copy_entrys.  The sources of all of the
        -:        -: 1430:    * entries are copied to the corresponding destinations "in parallel".
        -:        -: 1431:    * In other words, if we have two entries: a -> b and b -> a, the values
        -:        -: 1432:    * get swapped.
        -:        -: 1433:    */
        -:        -: 1434:   struct exec_list entries;
        -:        -: 1435:} nir_parallel_copy_instr;
        -:        -: 1436:
    #####:    #####: 1437:NIR_DEFINE_CAST(nir_instr_as_alu, nir_instr, nir_alu_instr, instr,
        -:        -: 1438:                type, nir_instr_type_alu)
        -:        -: 1439:NIR_DEFINE_CAST(nir_instr_as_call, nir_instr, nir_call_instr, instr,
        -:        -: 1440:                type, nir_instr_type_call)
        -:        -: 1441:NIR_DEFINE_CAST(nir_instr_as_jump, nir_instr, nir_jump_instr, instr,
        -:        -: 1442:                type, nir_instr_type_jump)
    #####:    #####: 1443:NIR_DEFINE_CAST(nir_instr_as_tex, nir_instr, nir_tex_instr, instr,
        -:        -: 1444:                type, nir_instr_type_tex)
       82:       88: 1445:NIR_DEFINE_CAST(nir_instr_as_intrinsic, nir_instr, nir_intrinsic_instr, instr,
        -:        -: 1446:                type, nir_instr_type_intrinsic)
        -:        -: 1447:NIR_DEFINE_CAST(nir_instr_as_load_const, nir_instr, nir_load_const_instr, instr,
        -:        -: 1448:                type, nir_instr_type_load_const)
        -:        -: 1449:NIR_DEFINE_CAST(nir_instr_as_ssa_undef, nir_instr, nir_ssa_undef_instr, instr,
        -:        -: 1450:                type, nir_instr_type_ssa_undef)
        -:        -: 1451:NIR_DEFINE_CAST(nir_instr_as_phi, nir_instr, nir_phi_instr, instr,
        -:        -: 1452:                type, nir_instr_type_phi)
        -:        -: 1453:NIR_DEFINE_CAST(nir_instr_as_parallel_copy, nir_instr,
        -:        -: 1454:                nir_parallel_copy_instr, instr,
        -:        -: 1455:                type, nir_instr_type_parallel_copy)
        -:        -: 1456:
        -:        -: 1457:/*
        -:        -: 1458: * Control flow
        -:        -: 1459: *
        -:        -: 1460: * Control flow consists of a tree of control flow nodes, which include
        -:        -: 1461: * if-statements and loops. The leaves of the tree are basic blocks, lists of
        -:        -: 1462: * instructions that always run start-to-finish. Each basic block also keeps
        -:        -: 1463: * track of its successors (blocks which may run immediately after the current
        -:        -: 1464: * block) and predecessors (blocks which could have run immediately before the
        -:        -: 1465: * current block). Each function also has a start block and an end block which
        -:        -: 1466: * all return statements point to (which is always empty). Together, all the
        -:        -: 1467: * blocks with their predecessors and successors make up the control flow
        -:        -: 1468: * graph (CFG) of the function. There are helpers that modify the tree of
        -:        -: 1469: * control flow nodes while modifying the CFG appropriately; these should be
        -:        -: 1470: * used instead of modifying the tree directly.
        -:        -: 1471: */
        -:        -: 1472:
        -:        -: 1473:typedef enum {
        -:        -: 1474:   nir_cf_node_block,
        -:        -: 1475:   nir_cf_node_if,
        -:        -: 1476:   nir_cf_node_loop,
        -:        -: 1477:   nir_cf_node_function
        -:        -: 1478:} nir_cf_node_type;
        -:        -: 1479:
        -:        -: 1480:typedef struct nir_cf_node {
        -:        -: 1481:   struct exec_node node;
        -:        -: 1482:   nir_cf_node_type type;
        -:        -: 1483:   struct nir_cf_node *parent;
        -:        -: 1484:} nir_cf_node;
        -:        -: 1485:
        -:        -: 1486:typedef struct nir_block {
        -:        -: 1487:   nir_cf_node cf_node;
        -:        -: 1488:
        -:        -: 1489:   struct exec_list instr_list; /** < list of nir_instr */
        -:        -: 1490:
        -:        -: 1491:   /** generic block index; generated by nir_index_blocks */
        -:        -: 1492:   unsigned index;
        -:        -: 1493:
        -:        -: 1494:   /*
        -:        -: 1495:    * Each block can only have up to 2 successors, so we put them in a simple
        -:        -: 1496:    * array - no need for anything more complicated.
        -:        -: 1497:    */
        -:        -: 1498:   struct nir_block *successors[2];
        -:        -: 1499:
        -:        -: 1500:   /* Set of nir_block predecessors in the CFG */
        -:        -: 1501:   struct set *predecessors;
        -:        -: 1502:
        -:        -: 1503:   /*
        -:        -: 1504:    * this node's immediate dominator in the dominance tree - set to NULL for
        -:        -: 1505:    * the start block.
        -:        -: 1506:    */
        -:        -: 1507:   struct nir_block *imm_dom;
        -:        -: 1508:
        -:        -: 1509:   /* This node's children in the dominance tree */
        -:        -: 1510:   unsigned num_dom_children;
        -:        -: 1511:   struct nir_block **dom_children;
        -:        -: 1512:
        -:        -: 1513:   /* Set of nir_blocks on the dominance frontier of this block */
        -:        -: 1514:   struct set *dom_frontier;
        -:        -: 1515:
        -:        -: 1516:   /*
        -:        -: 1517:    * These two indices have the property that dom_{pre,post}_index for each
        -:        -: 1518:    * child of this block in the dominance tree will always be between
        -:        -: 1519:    * dom_pre_index and dom_post_index for this block, which makes testing if
        -:        -: 1520:    * a given block is dominated by another block an O(1) operation.
        -:        -: 1521:    */
        -:        -: 1522:   unsigned dom_pre_index, dom_post_index;
        -:        -: 1523:
        -:        -: 1524:   /* live in and out for this block; used for liveness analysis */
        -:        -: 1525:   BITSET_WORD *live_in;
        -:        -: 1526:   BITSET_WORD *live_out;
        -:        -: 1527:} nir_block;
        -:        -: 1528:
        -:        -: 1529:static inline nir_instr *
        -:        -: 1530:nir_block_first_instr(nir_block *block)
        -:        -: 1531:{
        -:        -: 1532:   struct exec_node *head = exec_list_get_head(&block->instr_list);
        -:        -: 1533:   return exec_node_data(nir_instr, head, node);
        -:        -: 1534:}
        -:        -: 1535:
        -:        -: 1536:static inline nir_instr *
        -:        -: 1537:nir_block_last_instr(nir_block *block)
        -:        -: 1538:{
        -:        -: 1539:   struct exec_node *tail = exec_list_get_tail(&block->instr_list);
        -:        -: 1540:   return exec_node_data(nir_instr, tail, node);
        -:        -: 1541:}
        -:        -: 1542:
        -:        -: 1543:#define nir_foreach_instr(instr, block) \
        -:        -: 1544:   foreach_list_typed(nir_instr, instr, node, &(block)->instr_list)
        -:        -: 1545:#define nir_foreach_instr_reverse(instr, block) \
        -:        -: 1546:   foreach_list_typed_reverse(nir_instr, instr, node, &(block)->instr_list)
        -:        -: 1547:#define nir_foreach_instr_safe(instr, block) \
        -:        -: 1548:   foreach_list_typed_safe(nir_instr, instr, node, &(block)->instr_list)
        -:        -: 1549:#define nir_foreach_instr_reverse_safe(instr, block) \
        -:        -: 1550:   foreach_list_typed_reverse_safe(nir_instr, instr, node, &(block)->instr_list)
        -:        -: 1551:
        -:        -: 1552:typedef struct nir_if {
        -:        -: 1553:   nir_cf_node cf_node;
        -:        -: 1554:   nir_src condition;
        -:        -: 1555:
        -:        -: 1556:   struct exec_list then_list; /** < list of nir_cf_node */
        -:        -: 1557:   struct exec_list else_list; /** < list of nir_cf_node */
        -:        -: 1558:} nir_if;
        -:        -: 1559:
        -:        -: 1560:typedef struct {
        -:        -: 1561:   nir_if *nif;
        -:        -: 1562:
        -:        -: 1563:   nir_instr *conditional_instr;
        -:        -: 1564:
        -:        -: 1565:   nir_block *break_block;
        -:        -: 1566:   nir_block *continue_from_block;
        -:        -: 1567:
        -:        -: 1568:   bool continue_from_then;
        -:        -: 1569:
        -:        -: 1570:   struct list_head loop_terminator_link;
        -:        -: 1571:} nir_loop_terminator;
        -:        -: 1572:
        -:        -: 1573:typedef struct {
        -:        -: 1574:   /* Number of instructions in the loop */
        -:        -: 1575:   unsigned num_instructions;
        -:        -: 1576:
        -:        -: 1577:   /* How many times the loop is run (if known) */
        -:        -: 1578:   unsigned trip_count;
        -:        -: 1579:   bool is_trip_count_known;
        -:        -: 1580:
        -:        -: 1581:   /* Unroll the loop regardless of its size */
        -:        -: 1582:   bool force_unroll;
        -:        -: 1583:
        -:        -: 1584:   nir_loop_terminator *limiting_terminator;
        -:        -: 1585:
        -:        -: 1586:   /* A list of loop_terminators terminating this loop. */
        -:        -: 1587:   struct list_head loop_terminator_list;
        -:        -: 1588:} nir_loop_info;
        -:        -: 1589:
        -:        -: 1590:typedef struct {
        -:        -: 1591:   nir_cf_node cf_node;
        -:        -: 1592:
        -:        -: 1593:   struct exec_list body; /** < list of nir_cf_node */
        -:        -: 1594:
        -:        -: 1595:   nir_loop_info *info;
        -:        -: 1596:} nir_loop;
        -:        -: 1597:
        -:        -: 1598:/**
        -:        -: 1599: * Various bits of metadata that can may be created or required by
        -:        -: 1600: * optimization and analysis passes
        -:        -: 1601: */
        -:        -: 1602:typedef enum {
        -:        -: 1603:   nir_metadata_none = 0x0,
        -:        -: 1604:   nir_metadata_block_index = 0x1,
        -:        -: 1605:   nir_metadata_dominance = 0x2,
        -:        -: 1606:   nir_metadata_live_ssa_defs = 0x4,
        -:        -: 1607:   nir_metadata_not_properly_reset = 0x8,
        -:        -: 1608:   nir_metadata_loop_analysis = 0x10,
        -:        -: 1609:} nir_metadata;
        -:        -: 1610:
        -:        -: 1611:typedef struct {
        -:        -: 1612:   nir_cf_node cf_node;
        -:        -: 1613:
        -:        -: 1614:   /** pointer to the function of which this is an implementation */
        -:        -: 1615:   struct nir_function *function;
        -:        -: 1616:
        -:        -: 1617:   struct exec_list body; /** < list of nir_cf_node */
        -:        -: 1618:
        -:        -: 1619:   nir_block *end_block;
        -:        -: 1620:
        -:        -: 1621:   /** list for all local variables in the function */
        -:        -: 1622:   struct exec_list locals;
        -:        -: 1623:
        -:        -: 1624:   /** array of variables used as parameters */
        -:        -: 1625:   unsigned num_params;
        -:        -: 1626:   nir_variable **params;
        -:        -: 1627:
        -:        -: 1628:   /** variable used to hold the result of the function */
        -:        -: 1629:   nir_variable *return_var;
        -:        -: 1630:
        -:        -: 1631:   /** list of local registers in the function */
        -:        -: 1632:   struct exec_list registers;
        -:        -: 1633:
        -:        -: 1634:   /** next available local register index */
        -:        -: 1635:   unsigned reg_alloc;
        -:        -: 1636:
        -:        -: 1637:   /** next available SSA value index */
        -:        -: 1638:   unsigned ssa_alloc;
        -:        -: 1639:
        -:        -: 1640:   /* total number of basic blocks, only valid when block_index_dirty = false */
        -:        -: 1641:   unsigned num_blocks;
        -:        -: 1642:
        -:        -: 1643:   nir_metadata valid_metadata;
        -:        -: 1644:} nir_function_impl;
        -:        -: 1645:
        -:        -: 1646:ATTRIBUTE_RETURNS_NONNULL static inline nir_block *
        -:        -: 1647:nir_start_block(nir_function_impl *impl)
        -:        -: 1648:{
        -:        -: 1649:   return (nir_block *) impl->body.head_sentinel.next;
        -:        -: 1650:}
        -:        -: 1651:
        -:        -: 1652:ATTRIBUTE_RETURNS_NONNULL static inline nir_block *
        -:        -: 1653:nir_impl_last_block(nir_function_impl *impl)
        -:        -: 1654:{
        -:        -: 1655:   return (nir_block *) impl->body.tail_sentinel.prev;
        -:        -: 1656:}
        -:        -: 1657:
        -:        -: 1658:static inline nir_cf_node *
       29:       35: 1659:nir_cf_node_next(nir_cf_node *node)
        -:        -: 1660:{
       29:       35: 1661:   struct exec_node *next = exec_node_get_next(&node->node);
       29:       35: 1662:   if (exec_node_is_tail_sentinel(next))
    #####:    #####: 1663:      return NULL;
        -:        -: 1664:   else
       29:       35: 1665:      return exec_node_data(nir_cf_node, next, node);
        -:        -: 1666:}
        -:        -: 1667:
        -:        -: 1668:static inline nir_cf_node *
    #####:    #####: 1669:nir_cf_node_prev(nir_cf_node *node)
        -:        -: 1670:{
    #####:    #####: 1671:   struct exec_node *prev = exec_node_get_prev(&node->node);
    #####:    #####: 1672:   if (exec_node_is_head_sentinel(prev))
    #####:    #####: 1673:      return NULL;
        -:        -: 1674:   else
    #####:    #####: 1675:      return exec_node_data(nir_cf_node, prev, node);
        -:        -: 1676:}
        -:        -: 1677:
        -:        -: 1678:static inline bool
        -:        -: 1679:nir_cf_node_is_first(const nir_cf_node *node)
        -:        -: 1680:{
        -:        -: 1681:   return exec_node_is_head_sentinel(node->node.prev);
        -:        -: 1682:}
        -:        -: 1683:
        -:        -: 1684:static inline bool
        -:        -: 1685:nir_cf_node_is_last(const nir_cf_node *node)
        -:        -: 1686:{
        -:        -: 1687:   return exec_node_is_tail_sentinel(node->node.next);
        -:        -: 1688:}
        -:        -: 1689:
       75:       91: 1690:NIR_DEFINE_CAST(nir_cf_node_as_block, nir_cf_node, nir_block, cf_node,
        -:        -: 1691:                type, nir_cf_node_block)
       40:       48: 1692:NIR_DEFINE_CAST(nir_cf_node_as_if, nir_cf_node, nir_if, cf_node,
        -:        -: 1693:                type, nir_cf_node_if)
        3:        5: 1694:NIR_DEFINE_CAST(nir_cf_node_as_loop, nir_cf_node, nir_loop, cf_node,
        -:        -: 1695:                type, nir_cf_node_loop)
        -:        -: 1696:NIR_DEFINE_CAST(nir_cf_node_as_function, nir_cf_node,
        -:        -: 1697:                nir_function_impl, cf_node, type, nir_cf_node_function)
        -:        -: 1698:
        -:        -: 1699:static inline nir_block *
        -:        -: 1700:nir_if_first_then_block(nir_if *if_stmt)
        -:        -: 1701:{
        -:        -: 1702:   struct exec_node *head = exec_list_get_head(&if_stmt->then_list);
        -:        -: 1703:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, head, node));
        -:        -: 1704:}
        -:        -: 1705:
        -:        -: 1706:static inline nir_block *
        -:        -: 1707:nir_if_last_then_block(nir_if *if_stmt)
        -:        -: 1708:{
        -:        -: 1709:   struct exec_node *tail = exec_list_get_tail(&if_stmt->then_list);
        -:        -: 1710:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, tail, node));
        -:        -: 1711:}
        -:        -: 1712:
        -:        -: 1713:static inline nir_block *
        -:        -: 1714:nir_if_first_else_block(nir_if *if_stmt)
        -:        -: 1715:{
        -:        -: 1716:   struct exec_node *head = exec_list_get_head(&if_stmt->else_list);
        -:        -: 1717:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, head, node));
        -:        -: 1718:}
        -:        -: 1719:
        -:        -: 1720:static inline nir_block *
        -:        -: 1721:nir_if_last_else_block(nir_if *if_stmt)
        -:        -: 1722:{
        -:        -: 1723:   struct exec_node *tail = exec_list_get_tail(&if_stmt->else_list);
        -:        -: 1724:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, tail, node));
        -:        -: 1725:}
        -:        -: 1726:
        -:        -: 1727:static inline nir_block *
        -:        -: 1728:nir_loop_first_block(nir_loop *loop)
        -:        -: 1729:{
        -:        -: 1730:   struct exec_node *head = exec_list_get_head(&loop->body);
        -:        -: 1731:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, head, node));
        -:        -: 1732:}
        -:        -: 1733:
        -:        -: 1734:static inline nir_block *
        -:        -: 1735:nir_loop_last_block(nir_loop *loop)
        -:        -: 1736:{
        -:        -: 1737:   struct exec_node *tail = exec_list_get_tail(&loop->body);
        -:        -: 1738:   return nir_cf_node_as_block(exec_node_data(nir_cf_node, tail, node));
        -:        -: 1739:}
        -:        -: 1740:
        -:        -: 1741:typedef enum {
        -:        -: 1742:   nir_parameter_in,
        -:        -: 1743:   nir_parameter_out,
        -:        -: 1744:   nir_parameter_inout,
        -:        -: 1745:} nir_parameter_type;
        -:        -: 1746:
        -:        -: 1747:typedef struct {
        -:        -: 1748:   nir_parameter_type param_type;
        -:        -: 1749:   const struct glsl_type *type;
        -:        -: 1750:} nir_parameter;
        -:        -: 1751:
        -:        -: 1752:typedef struct nir_function {
        -:        -: 1753:   struct exec_node node;
        -:        -: 1754:
        -:        -: 1755:   const char *name;
        -:        -: 1756:   struct nir_shader *shader;
        -:        -: 1757:
        -:        -: 1758:   unsigned num_params;
        -:        -: 1759:   nir_parameter *params;
        -:        -: 1760:   const struct glsl_type *return_type;
        -:        -: 1761:
        -:        -: 1762:   /** The implementation of this function.
        -:        -: 1763:    *
        -:        -: 1764:    * If the function is only declared and not implemented, this is NULL.
        -:        -: 1765:    */
        -:        -: 1766:   nir_function_impl *impl;
        -:        -: 1767:} nir_function;
        -:        -: 1768:
        -:        -: 1769:typedef struct nir_shader_compiler_options {
        -:        -: 1770:   bool lower_fdiv;
        -:        -: 1771:   bool lower_ffma;
        -:        -: 1772:   bool fuse_ffma;
        -:        -: 1773:   bool lower_flrp32;
        -:        -: 1774:   /** Lowers flrp when it does not support doubles */
        -:        -: 1775:   bool lower_flrp64;
        -:        -: 1776:   bool lower_fpow;
        -:        -: 1777:   bool lower_fsat;
        -:        -: 1778:   bool lower_fsqrt;
        -:        -: 1779:   bool lower_fmod32;
        -:        -: 1780:   bool lower_fmod64;
        -:        -: 1781:   bool lower_bitfield_extract;
        -:        -: 1782:   bool lower_bitfield_insert;
        -:        -: 1783:   bool lower_uadd_carry;
        -:        -: 1784:   bool lower_usub_borrow;
        -:        -: 1785:   /** lowers fneg and ineg to fsub and isub. */
        -:        -: 1786:   bool lower_negate;
        -:        -: 1787:   /** lowers fsub and isub to fadd+fneg and iadd+ineg. */
        -:        -: 1788:   bool lower_sub;
        -:        -: 1789:
        -:        -: 1790:   /* lower {slt,sge,seq,sne} to {flt,fge,feq,fne} + b2f: */
        -:        -: 1791:   bool lower_scmp;
        -:        -: 1792:
        -:        -: 1793:   /** enables rules to lower idiv by power-of-two: */
        -:        -: 1794:   bool lower_idiv;
        -:        -: 1795:
        -:        -: 1796:   /* Does the native fdot instruction replicate its result for four
        -:        -: 1797:    * components?  If so, then opt_algebraic_late will turn all fdotN
        -:        -: 1798:    * instructions into fdot_replicatedN instructions.
        -:        -: 1799:    */
        -:        -: 1800:   bool fdot_replicates;
        -:        -: 1801:
        -:        -: 1802:   /** lowers ffract to fsub+ffloor: */
        -:        -: 1803:   bool lower_ffract;
        -:        -: 1804:
        -:        -: 1805:   bool lower_pack_half_2x16;
        -:        -: 1806:   bool lower_pack_unorm_2x16;
        -:        -: 1807:   bool lower_pack_snorm_2x16;
        -:        -: 1808:   bool lower_pack_unorm_4x8;
        -:        -: 1809:   bool lower_pack_snorm_4x8;
        -:        -: 1810:   bool lower_unpack_half_2x16;
        -:        -: 1811:   bool lower_unpack_unorm_2x16;
        -:        -: 1812:   bool lower_unpack_snorm_2x16;
        -:        -: 1813:   bool lower_unpack_unorm_4x8;
        -:        -: 1814:   bool lower_unpack_snorm_4x8;
        -:        -: 1815:
        -:        -: 1816:   bool lower_extract_byte;
        -:        -: 1817:   bool lower_extract_word;
        -:        -: 1818:
        -:        -: 1819:   /**
        -:        -: 1820:    * Does the driver support real 32-bit integers?  (Otherwise, integers
        -:        -: 1821:    * are simulated by floats.)
        -:        -: 1822:    */
        -:        -: 1823:   bool native_integers;
        -:        -: 1824:
        -:        -: 1825:   /* Indicates that the driver only has zero-based vertex id */
        -:        -: 1826:   bool vertex_id_zero_based;
        -:        -: 1827:
        -:        -: 1828:   bool lower_cs_local_index_from_id;
        -:        -: 1829:
        -:        -: 1830:   /**
        -:        -: 1831:    * Should nir_lower_io() create load_interpolated_input intrinsics?
        -:        -: 1832:    *
        -:        -: 1833:    * If not, it generates regular load_input intrinsics and interpolation
        -:        -: 1834:    * information must be inferred from the list of input nir_variables.
        -:        -: 1835:    */
        -:        -: 1836:   bool use_interpolated_input_intrinsics;
        -:        -: 1837:
        -:        -: 1838:   unsigned max_unroll_iterations;
        -:        -: 1839:} nir_shader_compiler_options;
        -:        -: 1840:
        -:        -: 1841:typedef struct nir_shader {
        -:        -: 1842:   /** list of uniforms (nir_variable) */
        -:        -: 1843:   struct exec_list uniforms;
        -:        -: 1844:
        -:        -: 1845:   /** list of inputs (nir_variable) */
        -:        -: 1846:   struct exec_list inputs;
        -:        -: 1847:
        -:        -: 1848:   /** list of outputs (nir_variable) */
        -:        -: 1849:   struct exec_list outputs;
        -:        -: 1850:
        -:        -: 1851:   /** list of shared compute variables (nir_variable) */
        -:        -: 1852:   struct exec_list shared;
        -:        -: 1853:
        -:        -: 1854:   /** Set of driver-specific options for the shader.
        -:        -: 1855:    *
        -:        -: 1856:    * The memory for the options is expected to be kept in a single static
        -:        -: 1857:    * copy by the driver.
        -:        -: 1858:    */
        -:        -: 1859:   const struct nir_shader_compiler_options *options;
        -:        -: 1860:
        -:        -: 1861:   /** Various bits of compile-time information about a given shader */
        -:        -: 1862:   struct shader_info *info;
        -:        -: 1863:
        -:        -: 1864:   /** list of global variables in the shader (nir_variable) */
        -:        -: 1865:   struct exec_list globals;
        -:        -: 1866:
        -:        -: 1867:   /** list of system value variables in the shader (nir_variable) */
        -:        -: 1868:   struct exec_list system_values;
        -:        -: 1869:
        -:        -: 1870:   struct exec_list functions; /** < list of nir_function */
        -:        -: 1871:
        -:        -: 1872:   /** list of global register in the shader */
        -:        -: 1873:   struct exec_list registers;
        -:        -: 1874:
        -:        -: 1875:   /** next available global register index */
        -:        -: 1876:   unsigned reg_alloc;
        -:        -: 1877:
        -:        -: 1878:   /**
        -:        -: 1879:    * the highest index a load_input_*, load_uniform_*, etc. intrinsic can
        -:        -: 1880:    * access plus one
        -:        -: 1881:    */
        -:        -: 1882:   unsigned num_inputs, num_uniforms, num_outputs, num_shared;
        -:        -: 1883:
        -:        -: 1884:   /** The shader stage, such as MESA_SHADER_VERTEX. */
        -:        -: 1885:   gl_shader_stage stage;
        -:        -: 1886:} nir_shader;
        -:        -: 1887:
        -:        -: 1888:static inline nir_function_impl *
        -:        -: 1889:nir_shader_get_entrypoint(nir_shader *shader)
        -:        -: 1890:{
        -:        -: 1891:   assert(exec_list_length(&shader->functions) == 1);
        -:        -: 1892:   struct exec_node *func_node = exec_list_get_head(&shader->functions);
        -:        -: 1893:   nir_function *func = exec_node_data(nir_function, func_node, node);
        -:        -: 1894:   assert(func->return_type == glsl_void_type());
        -:        -: 1895:   assert(func->num_params == 0);
        -:        -: 1896:   assert(func->impl);
        -:        -: 1897:   return func->impl;
        -:        -: 1898:}
        -:        -: 1899:
        -:        -: 1900:#define nir_foreach_function(func, shader) \
        -:        -: 1901:   foreach_list_typed(nir_function, func, node, &(shader)->functions)
        -:        -: 1902:
        -:        -: 1903:nir_shader *nir_shader_create(void *mem_ctx,
        -:        -: 1904:                              gl_shader_stage stage,
        -:        -: 1905:                              const nir_shader_compiler_options *options,
        -:        -: 1906:                              shader_info *si);
        -:        -: 1907:
        -:        -: 1908:/** creates a register, including assigning it an index and adding it to the list */
        -:        -: 1909:nir_register *nir_global_reg_create(nir_shader *shader);
        -:        -: 1910:
        -:        -: 1911:nir_register *nir_local_reg_create(nir_function_impl *impl);
        -:        -: 1912:
        -:        -: 1913:void nir_reg_remove(nir_register *reg);
        -:        -: 1914:
        -:        -: 1915:/** Adds a variable to the appropriate list in nir_shader */
        -:        -: 1916:void nir_shader_add_variable(nir_shader *shader, nir_variable *var);
        -:        -: 1917:
        -:        -: 1918:static inline void
       25:       25: 1919:nir_function_impl_add_variable(nir_function_impl *impl, nir_variable *var)
        -:        -: 1920:{
       25:       25: 1921:   assert(var->data.mode == nir_var_local);
       25:       25: 1922:   exec_list_push_tail(&impl->locals, &var->node);
       25:       25: 1923:}
        -:        -: 1924:
        -:        -: 1925:/** creates a variable, sets a few defaults, and adds it to the list */
        -:        -: 1926:nir_variable *nir_variable_create(nir_shader *shader,
        -:        -: 1927:                                  nir_variable_mode mode,
        -:        -: 1928:                                  const struct glsl_type *type,
        -:        -: 1929:                                  const char *name);
        -:        -: 1930:/** creates a local variable and adds it to the list */
        -:        -: 1931:nir_variable *nir_local_variable_create(nir_function_impl *impl,
        -:        -: 1932:                                        const struct glsl_type *type,
        -:        -: 1933:                                        const char *name);
        -:        -: 1934:
        -:        -: 1935:/** creates a function and adds it to the shader's list of functions */
        -:        -: 1936:nir_function *nir_function_create(nir_shader *shader, const char *name);
        -:        -: 1937:
        -:        -: 1938:nir_function_impl *nir_function_impl_create(nir_function *func);
        -:        -: 1939:/** creates a function_impl that isn't tied to any particular function */
        -:        -: 1940:nir_function_impl *nir_function_impl_create_bare(nir_shader *shader);
        -:        -: 1941:
        -:        -: 1942:nir_block *nir_block_create(nir_shader *shader);
        -:        -: 1943:nir_if *nir_if_create(nir_shader *shader);
        -:        -: 1944:nir_loop *nir_loop_create(nir_shader *shader);
        -:        -: 1945:
        -:        -: 1946:nir_function_impl *nir_cf_node_get_function(nir_cf_node *node);
        -:        -: 1947:
        -:        -: 1948:/** requests that the given pieces of metadata be generated */
        -:        -: 1949:void nir_metadata_require(nir_function_impl *impl, nir_metadata required, ...);
        -:        -: 1950:/** dirties all but the preserved metadata */
        -:        -: 1951:void nir_metadata_preserve(nir_function_impl *impl, nir_metadata preserved);
        -:        -: 1952:
        -:        -: 1953:/** creates an instruction with default swizzle/writemask/etc. with NULL registers */
        -:        -: 1954:nir_alu_instr *nir_alu_instr_create(nir_shader *shader, nir_op op);
        -:        -: 1955:
        -:        -: 1956:nir_jump_instr *nir_jump_instr_create(nir_shader *shader, nir_jump_type type);
        -:        -: 1957:
        -:        -: 1958:nir_load_const_instr *nir_load_const_instr_create(nir_shader *shader,
        -:        -: 1959:                                                  unsigned num_components,
        -:        -: 1960:                                                  unsigned bit_size);
        -:        -: 1961:
        -:        -: 1962:nir_intrinsic_instr *nir_intrinsic_instr_create(nir_shader *shader,
        -:        -: 1963:                                                nir_intrinsic_op op);
        -:        -: 1964:
        -:        -: 1965:nir_call_instr *nir_call_instr_create(nir_shader *shader,
        -:        -: 1966:                                      nir_function *callee);
        -:        -: 1967:
        -:        -: 1968:nir_tex_instr *nir_tex_instr_create(nir_shader *shader, unsigned num_srcs);
        -:        -: 1969:
        -:        -: 1970:nir_phi_instr *nir_phi_instr_create(nir_shader *shader);
        -:        -: 1971:
        -:        -: 1972:nir_parallel_copy_instr *nir_parallel_copy_instr_create(nir_shader *shader);
        -:        -: 1973:
        -:        -: 1974:nir_ssa_undef_instr *nir_ssa_undef_instr_create(nir_shader *shader,
        -:        -: 1975:                                                unsigned num_components,
        -:        -: 1976:                                                unsigned bit_size);
        -:        -: 1977:
        -:        -: 1978:nir_deref_var *nir_deref_var_create(void *mem_ctx, nir_variable *var);
        -:        -: 1979:nir_deref_array *nir_deref_array_create(void *mem_ctx);
        -:        -: 1980:nir_deref_struct *nir_deref_struct_create(void *mem_ctx, unsigned field_index);
        -:        -: 1981:
        -:        -: 1982:typedef bool (*nir_deref_foreach_leaf_cb)(nir_deref_var *deref, void *state);
        -:        -: 1983:bool nir_deref_foreach_leaf(nir_deref_var *deref,
        -:        -: 1984:                            nir_deref_foreach_leaf_cb cb, void *state);
        -:        -: 1985:
        -:        -: 1986:nir_load_const_instr *
        -:        -: 1987:nir_deref_get_const_initializer_load(nir_shader *shader, nir_deref_var *deref);
        -:        -: 1988:
        -:        -: 1989:/**
        -:        -: 1990: * NIR Cursors and Instruction Insertion API
        -:        -: 1991: * @{
        -:        -: 1992: *
        -:        -: 1993: * A tiny struct representing a point to insert/extract instructions or
        -:        -: 1994: * control flow nodes.  Helps reduce the combinatorial explosion of possible
        -:        -: 1995: * points to insert/extract.
        -:        -: 1996: *
        -:        -: 1997: * \sa nir_control_flow.h
        -:        -: 1998: */
        -:        -: 1999:typedef enum {
        -:        -: 2000:   nir_cursor_before_block,
        -:        -: 2001:   nir_cursor_after_block,
        -:        -: 2002:   nir_cursor_before_instr,
        -:        -: 2003:   nir_cursor_after_instr,
        -:        -: 2004:} nir_cursor_option;
        -:        -: 2005:
        -:        -: 2006:typedef struct {
        -:        -: 2007:   nir_cursor_option option;
        -:        -: 2008:   union {
        -:        -: 2009:      nir_block *block;
        -:        -: 2010:      nir_instr *instr;
        -:        -: 2011:   };
        -:        -: 2012:} nir_cursor;
        -:        -: 2013:
        -:        -: 2014:static inline nir_block *
       43:       53: 2015:nir_cursor_current_block(nir_cursor cursor)
        -:        -: 2016:{
       86:      106: 2017:   if (cursor.option == nir_cursor_before_instr ||
       43:       53: 2018:       cursor.option == nir_cursor_after_instr) {
       31:       35: 2019:      return cursor.instr->block;
        -:        -: 2020:   } else {
       12:       18: 2021:      return cursor.block;
        -:        -: 2022:   }
        -:        -: 2023:}
        -:        -: 2024:
        -:        -: 2025:bool nir_cursors_equal(nir_cursor a, nir_cursor b);
        -:        -: 2026:
        -:        -: 2027:static inline nir_cursor
       72:       88: 2028:nir_before_block(nir_block *block)
        -:        -: 2029:{
        -:        -: 2030:   nir_cursor cursor;
       72:       88: 2031:   cursor.option = nir_cursor_before_block;
       72:       88: 2032:   cursor.block = block;
       72:       88: 2033:   return cursor;
        -:        -: 2034:}
        -:        -: 2035:
        -:        -: 2036:static inline nir_cursor
        3:        3: 2037:nir_after_block(nir_block *block)
        -:        -: 2038:{
        -:        -: 2039:   nir_cursor cursor;
        3:        3: 2040:   cursor.option = nir_cursor_after_block;
        3:        3: 2041:   cursor.block = block;
        3:        3: 2042:   return cursor;
        -:        -: 2043:}
        -:        -: 2044:
        -:        -: 2045:static inline nir_cursor
        -:        -: 2046:nir_before_instr(nir_instr *instr)
        -:        -: 2047:{
        -:        -: 2048:   nir_cursor cursor;
        -:        -: 2049:   cursor.option = nir_cursor_before_instr;
        -:        -: 2050:   cursor.instr = instr;
        -:        -: 2051:   return cursor;
        -:        -: 2052:}
        -:        -: 2053:
        -:        -: 2054:static inline nir_cursor
      207:      221: 2055:nir_after_instr(nir_instr *instr)
        -:        -: 2056:{
        -:        -: 2057:   nir_cursor cursor;
      207:      221: 2058:   cursor.option = nir_cursor_after_instr;
      207:      221: 2059:   cursor.instr = instr;
      207:      221: 2060:   return cursor;
        -:        -: 2061:}
        -:        -: 2062:
        -:        -: 2063:static inline nir_cursor
        -:        -: 2064:nir_after_block_before_jump(nir_block *block)
        -:        -: 2065:{
        -:        -: 2066:   nir_instr *last_instr = nir_block_last_instr(block);
        -:        -: 2067:   if (last_instr && last_instr->type == nir_instr_type_jump) {
        -:        -: 2068:      return nir_before_instr(last_instr);
        -:        -: 2069:   } else {
        -:        -: 2070:      return nir_after_block(block);
        -:        -: 2071:   }
        -:        -: 2072:}
        -:        -: 2073:
        -:        -: 2074:static inline nir_cursor
       43:       53: 2075:nir_before_cf_node(nir_cf_node *node)
        -:        -: 2076:{
       43:       53: 2077:   if (node->type == nir_cf_node_block)
       43:       53: 2078:      return nir_before_block(nir_cf_node_as_block(node));
        -:        -: 2079:
    #####:    #####: 2080:   return nir_after_block(nir_cf_node_as_block(nir_cf_node_prev(node)));
        -:        -: 2081:}
        -:        -: 2082:
        -:        -: 2083:static inline nir_cursor
       32:       38: 2084:nir_after_cf_node(nir_cf_node *node)
        -:        -: 2085:{
       32:       38: 2086:   if (node->type == nir_cf_node_block)
        3:        3: 2087:      return nir_after_block(nir_cf_node_as_block(node));
        -:        -: 2088:
       29:       35: 2089:   return nir_before_block(nir_cf_node_as_block(nir_cf_node_next(node)));
        -:        -: 2090:}
        -:        -: 2091:
        -:        -: 2092:static inline nir_cursor
        -:        -: 2093:nir_after_phis(nir_block *block)
        -:        -: 2094:{
        -:        -: 2095:   nir_foreach_instr(instr, block) {
        -:        -: 2096:      if (instr->type != nir_instr_type_phi)
        -:        -: 2097:         return nir_before_instr(instr);
        -:        -: 2098:   }
        -:        -: 2099:   return nir_after_block(block);
        -:        -: 2100:}
        -:        -: 2101:
        -:        -: 2102:static inline nir_cursor
        -:        -: 2103:nir_after_cf_node_and_phis(nir_cf_node *node)
        -:        -: 2104:{
        -:        -: 2105:   if (node->type == nir_cf_node_block)
        -:        -: 2106:      return nir_after_block(nir_cf_node_as_block(node));
        -:        -: 2107:
        -:        -: 2108:   nir_block *block = nir_cf_node_as_block(nir_cf_node_next(node));
        -:        -: 2109:
        -:        -: 2110:   return nir_after_phis(block);
        -:        -: 2111:}
        -:        -: 2112:
        -:        -: 2113:static inline nir_cursor
       43:       53: 2114:nir_before_cf_list(struct exec_list *cf_list)
        -:        -: 2115:{
       43:       53: 2116:   nir_cf_node *first_node = exec_node_data(nir_cf_node,
        -:        -: 2117:                                            exec_list_get_head(cf_list), node);
       43:       53: 2118:   return nir_before_cf_node(first_node);
        -:        -: 2119:}
        -:        -: 2120:
        -:        -: 2121:static inline nir_cursor
        3:        3: 2122:nir_after_cf_list(struct exec_list *cf_list)
        -:        -: 2123:{
        3:        3: 2124:   nir_cf_node *last_node = exec_node_data(nir_cf_node,
        -:        -: 2125:                                           exec_list_get_tail(cf_list), node);
        3:        3: 2126:   return nir_after_cf_node(last_node);
        -:        -: 2127:}
        -:        -: 2128:
        -:        -: 2129:/**
        -:        -: 2130: * Insert a NIR instruction at the given cursor.
        -:        -: 2131: *
        -:        -: 2132: * Note: This does not update the cursor.
        -:        -: 2133: */
        -:        -: 2134:void nir_instr_insert(nir_cursor cursor, nir_instr *instr);
        -:        -: 2135:
        -:        -: 2136:static inline void
        -:        -: 2137:nir_instr_insert_before(nir_instr *instr, nir_instr *before)
        -:        -: 2138:{
        -:        -: 2139:   nir_instr_insert(nir_before_instr(instr), before);
        -:        -: 2140:}
        -:        -: 2141:
        -:        -: 2142:static inline void
        -:        -: 2143:nir_instr_insert_after(nir_instr *instr, nir_instr *after)
        -:        -: 2144:{
        -:        -: 2145:   nir_instr_insert(nir_after_instr(instr), after);
        -:        -: 2146:}
        -:        -: 2147:
        -:        -: 2148:static inline void
        -:        -: 2149:nir_instr_insert_before_block(nir_block *block, nir_instr *before)
        -:        -: 2150:{
        -:        -: 2151:   nir_instr_insert(nir_before_block(block), before);
        -:        -: 2152:}
        -:        -: 2153:
        -:        -: 2154:static inline void
        -:        -: 2155:nir_instr_insert_after_block(nir_block *block, nir_instr *after)
        -:        -: 2156:{
        -:        -: 2157:   nir_instr_insert(nir_after_block(block), after);
        -:        -: 2158:}
        -:        -: 2159:
        -:        -: 2160:static inline void
        -:        -: 2161:nir_instr_insert_before_cf(nir_cf_node *node, nir_instr *before)
        -:        -: 2162:{
        -:        -: 2163:   nir_instr_insert(nir_before_cf_node(node), before);
        -:        -: 2164:}
        -:        -: 2165:
        -:        -: 2166:static inline void
        -:        -: 2167:nir_instr_insert_after_cf(nir_cf_node *node, nir_instr *after)
        -:        -: 2168:{
        -:        -: 2169:   nir_instr_insert(nir_after_cf_node(node), after);
        -:        -: 2170:}
        -:        -: 2171:
        -:        -: 2172:static inline void
        -:        -: 2173:nir_instr_insert_before_cf_list(struct exec_list *list, nir_instr *before)
        -:        -: 2174:{
        -:        -: 2175:   nir_instr_insert(nir_before_cf_list(list), before);
        -:        -: 2176:}
        -:        -: 2177:
        -:        -: 2178:static inline void
        -:        -: 2179:nir_instr_insert_after_cf_list(struct exec_list *list, nir_instr *after)
        -:        -: 2180:{
        -:        -: 2181:   nir_instr_insert(nir_after_cf_list(list), after);
        -:        -: 2182:}
        -:        -: 2183:
        -:        -: 2184:void nir_instr_remove(nir_instr *instr);
        -:        -: 2185:
        -:        -: 2186:/** @} */
        -:        -: 2187:
        -:        -: 2188:typedef bool (*nir_foreach_ssa_def_cb)(nir_ssa_def *def, void *state);
        -:        -: 2189:typedef bool (*nir_foreach_dest_cb)(nir_dest *dest, void *state);
        -:        -: 2190:typedef bool (*nir_foreach_src_cb)(nir_src *src, void *state);
        -:        -: 2191:bool nir_foreach_ssa_def(nir_instr *instr, nir_foreach_ssa_def_cb cb,
        -:        -: 2192:                         void *state);
        -:        -: 2193:bool nir_foreach_dest(nir_instr *instr, nir_foreach_dest_cb cb, void *state);
        -:        -: 2194:bool nir_foreach_src(nir_instr *instr, nir_foreach_src_cb cb, void *state);
        -:        -: 2195:
        -:        -: 2196:nir_const_value *nir_src_as_const_value(nir_src src);
        -:        -: 2197:bool nir_src_is_dynamically_uniform(nir_src src);
        -:        -: 2198:bool nir_srcs_equal(nir_src src1, nir_src src2);
        -:        -: 2199:void nir_instr_rewrite_src(nir_instr *instr, nir_src *src, nir_src new_src);
        -:        -: 2200:void nir_instr_move_src(nir_instr *dest_instr, nir_src *dest, nir_src *src);
        -:        -: 2201:void nir_if_rewrite_condition(nir_if *if_stmt, nir_src new_src);
        -:        -: 2202:void nir_instr_rewrite_dest(nir_instr *instr, nir_dest *dest,
        -:        -: 2203:                            nir_dest new_dest);
        -:        -: 2204:
        -:        -: 2205:void nir_ssa_dest_init(nir_instr *instr, nir_dest *dest,
        -:        -: 2206:                       unsigned num_components, unsigned bit_size,
        -:        -: 2207:                       const char *name);
        -:        -: 2208:void nir_ssa_def_init(nir_instr *instr, nir_ssa_def *def,
        -:        -: 2209:                      unsigned num_components, unsigned bit_size,
        -:        -: 2210:                      const char *name);
        -:        -: 2211:void nir_ssa_def_rewrite_uses(nir_ssa_def *def, nir_src new_src);
        -:        -: 2212:void nir_ssa_def_rewrite_uses_after(nir_ssa_def *def, nir_src new_src,
        -:        -: 2213:                                    nir_instr *after_me);
        -:        -: 2214:
        -:        -: 2215:uint8_t nir_ssa_def_components_read(nir_ssa_def *def);
        -:        -: 2216:
        -:        -: 2217:/*
        -:        -: 2218: * finds the next basic block in source-code order, returns NULL if there is
        -:        -: 2219: * none
        -:        -: 2220: */
        -:        -: 2221:
        -:        -: 2222:nir_block *nir_block_cf_tree_next(nir_block *block);
        -:        -: 2223:
        -:        -: 2224:/* Performs the opposite of nir_block_cf_tree_next() */
        -:        -: 2225:
        -:        -: 2226:nir_block *nir_block_cf_tree_prev(nir_block *block);
        -:        -: 2227:
        -:        -: 2228:/* Gets the first block in a CF node in source-code order */
        -:        -: 2229:
        -:        -: 2230:nir_block *nir_cf_node_cf_tree_first(nir_cf_node *node);
        -:        -: 2231:
        -:        -: 2232:/* Gets the last block in a CF node in source-code order */
        -:        -: 2233:
        -:        -: 2234:nir_block *nir_cf_node_cf_tree_last(nir_cf_node *node);
        -:        -: 2235:
        -:        -: 2236:/* Gets the next block after a CF node in source-code order */
        -:        -: 2237:
        -:        -: 2238:nir_block *nir_cf_node_cf_tree_next(nir_cf_node *node);
        -:        -: 2239:
        -:        -: 2240:/* Macros for loops that visit blocks in source-code order */
        -:        -: 2241:
        -:        -: 2242:#define nir_foreach_block(block, impl) \
        -:        -: 2243:   for (nir_block *block = nir_start_block(impl); block != NULL; \
        -:        -: 2244:        block = nir_block_cf_tree_next(block))
        -:        -: 2245:
        -:        -: 2246:#define nir_foreach_block_safe(block, impl) \
        -:        -: 2247:   for (nir_block *block = nir_start_block(impl), \
        -:        -: 2248:        *next = nir_block_cf_tree_next(block); \
        -:        -: 2249:        block != NULL; \
        -:        -: 2250:        block = next, next = nir_block_cf_tree_next(block))
        -:        -: 2251:
        -:        -: 2252:#define nir_foreach_block_reverse(block, impl) \
        -:        -: 2253:   for (nir_block *block = nir_impl_last_block(impl); block != NULL; \
        -:        -: 2254:        block = nir_block_cf_tree_prev(block))
        -:        -: 2255:
        -:        -: 2256:#define nir_foreach_block_reverse_safe(block, impl) \
        -:        -: 2257:   for (nir_block *block = nir_impl_last_block(impl), \
        -:        -: 2258:        *prev = nir_block_cf_tree_prev(block); \
        -:        -: 2259:        block != NULL; \
        -:        -: 2260:        block = prev, prev = nir_block_cf_tree_prev(block))
        -:        -: 2261:
        -:        -: 2262:#define nir_foreach_block_in_cf_node(block, node) \
        -:        -: 2263:   for (nir_block *block = nir_cf_node_cf_tree_first(node); \
        -:        -: 2264:        block != nir_cf_node_cf_tree_next(node); \
        -:        -: 2265:        block = nir_block_cf_tree_next(block))
        -:        -: 2266:
        -:        -: 2267:/* If the following CF node is an if, this function returns that if.
        -:        -: 2268: * Otherwise, it returns NULL.
        -:        -: 2269: */
        -:        -: 2270:nir_if *nir_block_get_following_if(nir_block *block);
        -:        -: 2271:
        -:        -: 2272:nir_loop *nir_block_get_following_loop(nir_block *block);
        -:        -: 2273:
        -:        -: 2274:void nir_index_local_regs(nir_function_impl *impl);
        -:        -: 2275:void nir_index_global_regs(nir_shader *shader);
        -:        -: 2276:void nir_index_ssa_defs(nir_function_impl *impl);
        -:        -: 2277:unsigned nir_index_instrs(nir_function_impl *impl);
        -:        -: 2278:
        -:        -: 2279:void nir_index_blocks(nir_function_impl *impl);
        -:        -: 2280:
        -:        -: 2281:void nir_print_shader(nir_shader *shader, FILE *fp);
        -:        -: 2282:void nir_print_shader_annotated(nir_shader *shader, FILE *fp, struct hash_table *errors);
        -:        -: 2283:void nir_print_instr(const nir_instr *instr, FILE *fp);
        -:        -: 2284:
        -:        -: 2285:nir_shader *nir_shader_clone(void *mem_ctx, const nir_shader *s);
        -:        -: 2286:nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);
        -:        -: 2287:nir_constant *nir_constant_clone(const nir_constant *c, nir_variable *var);
        -:        -: 2288:nir_variable *nir_variable_clone(const nir_variable *c, nir_shader *shader);
        -:        -: 2289:nir_deref *nir_deref_clone(const nir_deref *deref, void *mem_ctx);
        -:        -: 2290:nir_deref_var *nir_deref_var_clone(const nir_deref_var *deref, void *mem_ctx);
        -:        -: 2291:
        -:        -: 2292:#ifdef DEBUG
        -:        -: 2293:void nir_validate_shader(nir_shader *shader);
        -:        -: 2294:void nir_metadata_set_validation_flag(nir_shader *shader);
        -:        -: 2295:void nir_metadata_check_validation_flag(nir_shader *shader);
        -:        -: 2296:
        -:        -: 2297:static inline bool
        -:        -: 2298:should_clone_nir(void)
        -:        -: 2299:{
        -:        -: 2300:   static int should_clone = -1;
        -:        -: 2301:   if (should_clone < 0)
        -:        -: 2302:      should_clone = env_var_as_boolean("NIR_TEST_CLONE", false);
        -:        -: 2303:
        -:        -: 2304:   return should_clone;
        -:        -: 2305:}
        -:        -: 2306:#else
        -:        -: 2307:static inline void nir_validate_shader(nir_shader *shader) { (void) shader; }
        -:        -: 2308:static inline void nir_metadata_set_validation_flag(nir_shader *shader) { (void) shader; }
        -:        -: 2309:static inline void nir_metadata_check_validation_flag(nir_shader *shader) { (void) shader; }
        -:        -: 2310:static inline bool should_clone_nir(void) { return false; }
        -:        -: 2311:#endif /* DEBUG */
        -:        -: 2312:
        -:        -: 2313:#define _PASS(nir, do_pass) do {                                     \
        -:        -: 2314:   do_pass                                                           \
        -:        -: 2315:   nir_validate_shader(nir);                                         \
        -:        -: 2316:   if (should_clone_nir()) {                                         \
        -:        -: 2317:      nir_shader *clone = nir_shader_clone(ralloc_parent(nir), nir); \
        -:        -: 2318:      ralloc_free(nir);                                              \
        -:        -: 2319:      nir = clone;                                                   \
        -:        -: 2320:   }                                                                 \
        -:        -: 2321:} while (0)
        -:        -: 2322:
        -:        -: 2323:#define NIR_PASS(progress, nir, pass, ...) _PASS(nir,                \
        -:        -: 2324:   nir_metadata_set_validation_flag(nir);                            \
        -:        -: 2325:   if (pass(nir, ##__VA_ARGS__)) {                                   \
        -:        -: 2326:      progress = true;                                               \
        -:        -: 2327:      nir_metadata_check_validation_flag(nir);                       \
        -:        -: 2328:   }                                                                 \
        -:        -: 2329:)
        -:        -: 2330:
        -:        -: 2331:#define NIR_PASS_V(nir, pass, ...) _PASS(nir,                        \
        -:        -: 2332:   pass(nir, ##__VA_ARGS__);                                         \
        -:        -: 2333:)
        -:        -: 2334:
        -:        -: 2335:void nir_calc_dominance_impl(nir_function_impl *impl);
        -:        -: 2336:void nir_calc_dominance(nir_shader *shader);
        -:        -: 2337:
        -:        -: 2338:nir_block *nir_dominance_lca(nir_block *b1, nir_block *b2);
        -:        -: 2339:bool nir_block_dominates(nir_block *parent, nir_block *child);
        -:        -: 2340:
        -:        -: 2341:void nir_dump_dom_tree_impl(nir_function_impl *impl, FILE *fp);
        -:        -: 2342:void nir_dump_dom_tree(nir_shader *shader, FILE *fp);
        -:        -: 2343:
        -:        -: 2344:void nir_dump_dom_frontier_impl(nir_function_impl *impl, FILE *fp);
        -:        -: 2345:void nir_dump_dom_frontier(nir_shader *shader, FILE *fp);
        -:        -: 2346:
        -:        -: 2347:void nir_dump_cfg_impl(nir_function_impl *impl, FILE *fp);
        -:        -: 2348:void nir_dump_cfg(nir_shader *shader, FILE *fp);
        -:        -: 2349:
        -:        -: 2350:int nir_gs_count_vertices(const nir_shader *shader);
        -:        -: 2351:
        -:        -: 2352:bool nir_split_var_copies(nir_shader *shader);
        -:        -: 2353:
        -:        -: 2354:bool nir_lower_returns_impl(nir_function_impl *impl);
        -:        -: 2355:bool nir_lower_returns(nir_shader *shader);
        -:        -: 2356:
        -:        -: 2357:bool nir_inline_functions(nir_shader *shader);
        -:        -: 2358:
        -:        -: 2359:bool nir_propagate_invariant(nir_shader *shader);
        -:        -: 2360:
        -:        -: 2361:void nir_lower_var_copy_instr(nir_intrinsic_instr *copy, nir_shader *shader);
        -:        -: 2362:bool nir_lower_var_copies(nir_shader *shader);
        -:        -: 2363:
        -:        -: 2364:bool nir_lower_global_vars_to_local(nir_shader *shader);
        -:        -: 2365:
        -:        -: 2366:bool nir_lower_indirect_derefs(nir_shader *shader, nir_variable_mode modes);
        -:        -: 2367:
        -:        -: 2368:bool nir_lower_locals_to_regs(nir_shader *shader);
        -:        -: 2369:
        -:        -: 2370:void nir_lower_io_to_temporaries(nir_shader *shader,
        -:        -: 2371:                                 nir_function_impl *entrypoint,
        -:        -: 2372:                                 bool outputs, bool inputs);
        -:        -: 2373:
        -:        -: 2374:void nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint);
        -:        -: 2375:
        -:        -: 2376:void nir_assign_var_locations(struct exec_list *var_list, unsigned *size,
        -:        -: 2377:                              int (*type_size)(const struct glsl_type *));
        -:        -: 2378:
        -:        -: 2379:typedef enum {
        -:        -: 2380:   /* If set, this forces all non-flat fragment shader inputs to be
        -:        -: 2381:    * interpolated as if with the "sample" qualifier.  This requires
        -:        -: 2382:    * nir_shader_compiler_options::use_interpolated_input_intrinsics.
        -:        -: 2383:    */
        -:        -: 2384:   nir_lower_io_force_sample_interpolation = (1 << 1),
        -:        -: 2385:} nir_lower_io_options;
        -:        -: 2386:bool nir_lower_io(nir_shader *shader,
        -:        -: 2387:                  nir_variable_mode modes,
        -:        -: 2388:                  int (*type_size)(const struct glsl_type *),
        -:        -: 2389:                  nir_lower_io_options);
        -:        -: 2390:nir_src *nir_get_io_offset_src(nir_intrinsic_instr *instr);
        -:        -: 2391:nir_src *nir_get_io_vertex_index_src(nir_intrinsic_instr *instr);
        -:        -: 2392:
        -:        -: 2393:bool nir_is_per_vertex_io(nir_variable *var, gl_shader_stage stage);
        -:        -: 2394:
        -:        -: 2395:void nir_lower_io_types(nir_shader *shader);
        -:        -: 2396:bool nir_lower_regs_to_ssa_impl(nir_function_impl *impl);
        -:        -: 2397:bool nir_lower_regs_to_ssa(nir_shader *shader);
        -:        -: 2398:bool nir_lower_vars_to_ssa(nir_shader *shader);
        -:        -: 2399:
        -:        -: 2400:bool nir_remove_dead_variables(nir_shader *shader, nir_variable_mode modes);
        -:        -: 2401:bool nir_lower_constant_initializers(nir_shader *shader,
        -:        -: 2402:                                     nir_variable_mode modes);
        -:        -: 2403:
        -:        -: 2404:bool nir_move_vec_src_uses_to_dest(nir_shader *shader);
        -:        -: 2405:bool nir_lower_vec_to_movs(nir_shader *shader);
        -:        -: 2406:bool nir_lower_alu_to_scalar(nir_shader *shader);
        -:        -: 2407:bool nir_lower_load_const_to_scalar(nir_shader *shader);
        -:        -: 2408:
        -:        -: 2409:bool nir_lower_phis_to_scalar(nir_shader *shader);
        -:        -: 2410:void nir_lower_io_to_scalar(nir_shader *shader, nir_variable_mode mask);
        -:        -: 2411:
        -:        -: 2412:bool nir_lower_samplers(nir_shader *shader,
        -:        -: 2413:                        const struct gl_shader_program *shader_program);
        -:        -: 2414:
        -:        -: 2415:bool nir_lower_system_values(nir_shader *shader);
        -:        -: 2416:
        -:        -: 2417:typedef struct nir_lower_tex_options {
        -:        -: 2418:   /**
        -:        -: 2419:    * bitmask of (1 << GLSL_SAMPLER_DIM_x) to control for which
        -:        -: 2420:    * sampler types a texture projector is lowered.
        -:        -: 2421:    */
        -:        -: 2422:   unsigned lower_txp;
        -:        -: 2423:
        -:        -: 2424:   /**
        -:        -: 2425:    * If true, lower away nir_tex_src_offset for all texelfetch instructions.
        -:        -: 2426:    */
        -:        -: 2427:   bool lower_txf_offset;
        -:        -: 2428:
        -:        -: 2429:   /**
        -:        -: 2430:    * If true, lower away nir_tex_src_offset for all rect textures.
        -:        -: 2431:    */
        -:        -: 2432:   bool lower_rect_offset;
        -:        -: 2433:
        -:        -: 2434:   /**
        -:        -: 2435:    * If true, lower rect textures to 2D, using txs to fetch the
        -:        -: 2436:    * texture dimensions and dividing the texture coords by the
        -:        -: 2437:    * texture dims to normalize.
        -:        -: 2438:    */
        -:        -: 2439:   bool lower_rect;
        -:        -: 2440:
        -:        -: 2441:   /**
        -:        -: 2442:    * If true, convert yuv to rgb.
        -:        -: 2443:    */
        -:        -: 2444:   unsigned lower_y_uv_external;
        -:        -: 2445:   unsigned lower_y_u_v_external;
        -:        -: 2446:   unsigned lower_yx_xuxv_external;
        -:        -: 2447:
        -:        -: 2448:   /**
        -:        -: 2449:    * To emulate certain texture wrap modes, this can be used
        -:        -: 2450:    * to saturate the specified tex coord to [0.0, 1.0].  The
        -:        -: 2451:    * bits are according to sampler #, ie. if, for example:
        -:        -: 2452:    *
        -:        -: 2453:    *   (conf->saturate_s & (1 << n))
        -:        -: 2454:    *
        -:        -: 2455:    * is true, then the s coord for sampler n is saturated.
        -:        -: 2456:    *
        -:        -: 2457:    * Note that clamping must happen *after* projector lowering
        -:        -: 2458:    * so any projected texture sample instruction with a clamped
        -:        -: 2459:    * coordinate gets automatically lowered, regardless of the
        -:        -: 2460:    * 'lower_txp' setting.
        -:        -: 2461:    */
        -:        -: 2462:   unsigned saturate_s;
        -:        -: 2463:   unsigned saturate_t;
        -:        -: 2464:   unsigned saturate_r;
        -:        -: 2465:
        -:        -: 2466:   /* Bitmask of textures that need swizzling.
        -:        -: 2467:    *
        -:        -: 2468:    * If (swizzle_result & (1 << texture_index)), then the swizzle in
        -:        -: 2469:    * swizzles[texture_index] is applied to the result of the texturing
        -:        -: 2470:    * operation.
        -:        -: 2471:    */
        -:        -: 2472:   unsigned swizzle_result;
        -:        -: 2473:
        -:        -: 2474:   /* A swizzle for each texture.  Values 0-3 represent x, y, z, or w swizzles
        -:        -: 2475:    * while 4 and 5 represent 0 and 1 respectively.
        -:        -: 2476:    */
        -:        -: 2477:   uint8_t swizzles[32][4];
        -:        -: 2478:
        -:        -: 2479:   /**
        -:        -: 2480:    * Bitmap of textures that need srgb to linear conversion.  If
        -:        -: 2481:    * (lower_srgb & (1 << texture_index)) then the rgb (xyz) components
        -:        -: 2482:    * of the texture are lowered to linear.
        -:        -: 2483:    */
        -:        -: 2484:   unsigned lower_srgb;
        -:        -: 2485:
        -:        -: 2486:   /**
        -:        -: 2487:    * If true, lower nir_texop_txd on cube maps with nir_texop_txl.
        -:        -: 2488:    */
        -:        -: 2489:   bool lower_txd_cube_map;
        -:        -: 2490:
        -:        -: 2491:   /**
        -:        -: 2492:    * If true, lower nir_texop_txd on shadow samplers (except cube maps)
        -:        -: 2493:    * with nir_texop_txl. Notice that cube map shadow samplers are lowered
        -:        -: 2494:    * with lower_txd_cube_map.
        -:        -: 2495:    */
        -:        -: 2496:   bool lower_txd_shadow;
        -:        -: 2497:} nir_lower_tex_options;
        -:        -: 2498:
        -:        -: 2499:bool nir_lower_tex(nir_shader *shader,
        -:        -: 2500:                   const nir_lower_tex_options *options);
        -:        -: 2501:
        -:        -: 2502:bool nir_lower_idiv(nir_shader *shader);
        -:        -: 2503:
        -:        -: 2504:bool nir_lower_clip_vs(nir_shader *shader, unsigned ucp_enables);
        -:        -: 2505:bool nir_lower_clip_fs(nir_shader *shader, unsigned ucp_enables);
        -:        -: 2506:bool nir_lower_clip_cull_distance_arrays(nir_shader *nir);
        -:        -: 2507:
        -:        -: 2508:void nir_lower_two_sided_color(nir_shader *shader);
        -:        -: 2509:
        -:        -: 2510:bool nir_lower_clamp_color_outputs(nir_shader *shader);
        -:        -: 2511:
        -:        -: 2512:void nir_lower_passthrough_edgeflags(nir_shader *shader);
        -:        -: 2513:void nir_lower_tes_patch_vertices(nir_shader *tes, unsigned patch_vertices);
        -:        -: 2514:
        -:        -: 2515:typedef struct nir_lower_wpos_ytransform_options {
        -:        -: 2516:   int state_tokens[5];
        -:        -: 2517:   bool fs_coord_origin_upper_left :1;
        -:        -: 2518:   bool fs_coord_origin_lower_left :1;
        -:        -: 2519:   bool fs_coord_pixel_center_integer :1;
        -:        -: 2520:   bool fs_coord_pixel_center_half_integer :1;
        -:        -: 2521:} nir_lower_wpos_ytransform_options;
        -:        -: 2522:
        -:        -: 2523:bool nir_lower_wpos_ytransform(nir_shader *shader,
        -:        -: 2524:                               const nir_lower_wpos_ytransform_options *options);
        -:        -: 2525:bool nir_lower_wpos_center(nir_shader *shader, const bool for_sample_shading);
        -:        -: 2526:
        -:        -: 2527:typedef struct nir_lower_drawpixels_options {
        -:        -: 2528:   int texcoord_state_tokens[5];
        -:        -: 2529:   int scale_state_tokens[5];
        -:        -: 2530:   int bias_state_tokens[5];
        -:        -: 2531:   unsigned drawpix_sampler;
        -:        -: 2532:   unsigned pixelmap_sampler;
        -:        -: 2533:   bool pixel_maps :1;
        -:        -: 2534:   bool scale_and_bias :1;
        -:        -: 2535:} nir_lower_drawpixels_options;
        -:        -: 2536:
        -:        -: 2537:void nir_lower_drawpixels(nir_shader *shader,
        -:        -: 2538:                          const nir_lower_drawpixels_options *options);
        -:        -: 2539:
        -:        -: 2540:typedef struct nir_lower_bitmap_options {
        -:        -: 2541:   unsigned sampler;
        -:        -: 2542:   bool swizzle_xxxx;
        -:        -: 2543:} nir_lower_bitmap_options;
        -:        -: 2544:
        -:        -: 2545:void nir_lower_bitmap(nir_shader *shader, const nir_lower_bitmap_options *options);
        -:        -: 2546:
        -:        -: 2547:bool nir_lower_atomics(nir_shader *shader,
        -:        -: 2548:                       const struct gl_shader_program *shader_program);
        -:        -: 2549:bool nir_lower_to_source_mods(nir_shader *shader);
        -:        -: 2550:
        -:        -: 2551:bool nir_lower_gs_intrinsics(nir_shader *shader);
        -:        -: 2552:
        -:        -: 2553:typedef enum {
        -:        -: 2554:   nir_lower_imul64 = (1 << 0),
        -:        -: 2555:   nir_lower_isign64 = (1 << 1),
        -:        -: 2556:   /** Lower all int64 modulus and division opcodes */
        -:        -: 2557:   nir_lower_divmod64 = (1 << 2),
        -:        -: 2558:} nir_lower_int64_options;
        -:        -: 2559:
        -:        -: 2560:bool nir_lower_int64(nir_shader *shader, nir_lower_int64_options options);
        -:        -: 2561:
        -:        -: 2562:typedef enum {
        -:        -: 2563:   nir_lower_drcp = (1 << 0),
        -:        -: 2564:   nir_lower_dsqrt = (1 << 1),
        -:        -: 2565:   nir_lower_drsq = (1 << 2),
        -:        -: 2566:   nir_lower_dtrunc = (1 << 3),
        -:        -: 2567:   nir_lower_dfloor = (1 << 4),
        -:        -: 2568:   nir_lower_dceil = (1 << 5),
        -:        -: 2569:   nir_lower_dfract = (1 << 6),
        -:        -: 2570:   nir_lower_dround_even = (1 << 7),
        -:        -: 2571:   nir_lower_dmod = (1 << 8)
        -:        -: 2572:} nir_lower_doubles_options;
        -:        -: 2573:
        -:        -: 2574:bool nir_lower_doubles(nir_shader *shader, nir_lower_doubles_options options);
        -:        -: 2575:bool nir_lower_64bit_pack(nir_shader *shader);
        -:        -: 2576:
        -:        -: 2577:bool nir_normalize_cubemap_coords(nir_shader *shader);
        -:        -: 2578:
        -:        -: 2579:void nir_live_ssa_defs_impl(nir_function_impl *impl);
        -:        -: 2580:
        -:        -: 2581:void nir_loop_analyze_impl(nir_function_impl *impl,
        -:        -: 2582:                           nir_variable_mode indirect_mask);
        -:        -: 2583:
        -:        -: 2584:bool nir_ssa_defs_interfere(nir_ssa_def *a, nir_ssa_def *b);
        -:        -: 2585:
        -:        -: 2586:bool nir_repair_ssa_impl(nir_function_impl *impl);
        -:        -: 2587:bool nir_repair_ssa(nir_shader *shader);
        -:        -: 2588:
        -:        -: 2589:void nir_convert_loop_to_lcssa(nir_loop *loop);
        -:        -: 2590:
        -:        -: 2591:/* If phi_webs_only is true, only convert SSA values involved in phi nodes to
        -:        -: 2592: * registers.  If false, convert all values (even those not involved in a phi
        -:        -: 2593: * node) to registers.
        -:        -: 2594: */
        -:        -: 2595:bool nir_convert_from_ssa(nir_shader *shader, bool phi_webs_only);
        -:        -: 2596:
        -:        -: 2597:bool nir_lower_phis_to_regs_block(nir_block *block);
        -:        -: 2598:bool nir_lower_ssa_defs_to_regs_block(nir_block *block);
        -:        -: 2599:
        -:        -: 2600:bool nir_opt_algebraic(nir_shader *shader);
        -:        -: 2601:bool nir_opt_algebraic_late(nir_shader *shader);
        -:        -: 2602:bool nir_opt_constant_folding(nir_shader *shader);
        -:        -: 2603:
        -:        -: 2604:bool nir_opt_global_to_local(nir_shader *shader);
        -:        -: 2605:
        -:        -: 2606:bool nir_copy_prop(nir_shader *shader);
        -:        -: 2607:
        -:        -: 2608:bool nir_opt_copy_prop_vars(nir_shader *shader);
        -:        -: 2609:
        -:        -: 2610:bool nir_opt_cse(nir_shader *shader);
        -:        -: 2611:
        -:        -: 2612:bool nir_opt_dce(nir_shader *shader);
        -:        -: 2613:
        -:        -: 2614:bool nir_opt_dead_cf(nir_shader *shader);
        -:        -: 2615:
        -:        -: 2616:bool nir_opt_gcm(nir_shader *shader, bool value_number);
        -:        -: 2617:
        -:        -: 2618:bool nir_opt_if(nir_shader *shader);
        -:        -: 2619:
        -:        -: 2620:bool nir_opt_loop_unroll(nir_shader *shader, nir_variable_mode indirect_mask);
        -:        -: 2621:
        -:        -: 2622:bool nir_opt_move_comparisons(nir_shader *shader);
        -:        -: 2623:
        -:        -: 2624:bool nir_opt_peephole_select(nir_shader *shader, unsigned limit);
        -:        -: 2625:
        -:        -: 2626:bool nir_opt_remove_phis(nir_shader *shader);
        -:        -: 2627:
        -:        -: 2628:bool nir_opt_trivial_continues(nir_shader *shader);
        -:        -: 2629:
        -:        -: 2630:bool nir_opt_undef(nir_shader *shader);
        -:        -: 2631:
        -:        -: 2632:bool nir_opt_conditional_discard(nir_shader *shader);
        -:        -: 2633:
        -:        -: 2634:void nir_sweep(nir_shader *shader);
        -:        -: 2635:
        -:        -: 2636:nir_intrinsic_op nir_intrinsic_from_system_value(gl_system_value val);
        -:        -: 2637:gl_system_value nir_system_value_from_intrinsic(nir_intrinsic_op intrin);
        -:        -: 2638:
        -:        -: 2639:#ifdef __cplusplus
        -:        -: 2640:} /* extern "C" */
        -:        -: 2641:#endif
        -:        -: 2642:
        -:        -: 2643:#endif /* NIR_H */

src/compiler/nir_instr_set.c.gcov

        -:        -:    0:Source:nir/nir_instr_set.c
        -:        -:    0:Graph:nir/.libs/nir_instr_set.gcno
        -:        -:    0:Data:nir/.libs/nir_instr_set.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir_instr_set.h"
        -:        -:   25:#include "nir_vla.h"
        -:        -:   26:
        -:        -:   27:#define HASH(hash, data) _mesa_fnv32_1a_accumulate((hash), (data))
        -:        -:   28:
        -:        -:   29:static uint32_t
     4327:     4821:   30:hash_src(uint32_t hash, const nir_src *src)
        -:        -:   31:{
     4327:     4821:   32:   assert(src->is_ssa);
     4327:     4821:   33:   hash = HASH(hash, src->ssa);
     4327:     4821:   34:   return hash;
        -:        -:   35:}
        -:        -:   36:
        -:        -:   37:static uint32_t
     3223:     3333:   38:hash_alu_src(uint32_t hash, const nir_alu_src *src, unsigned num_components)
        -:        -:   39:{
     3223:     3333:   40:   hash = HASH(hash, src->abs);
     3223:     3333:   41:   hash = HASH(hash, src->negate);
        -:        -:   42:
     6806:     7026:   43:   for (unsigned i = 0; i < num_components; i++)
     3583:     3693:   44:      hash = HASH(hash, src->swizzle[i]);
        -:        -:   45:
     3223:     3333:   46:   hash = hash_src(hash, &src->src);
     3223:     3333:   47:   return hash;
        -:        -:   48:}
        -:        -:   49:
        -:        -:   50:static uint32_t
     1591:     1646:   51:hash_alu(uint32_t hash, const nir_alu_instr *instr)
        -:        -:   52:{
     1591:     1646:   53:   hash = HASH(hash, instr->op);
     1591:     1646:   54:   hash = HASH(hash, instr->dest.dest.ssa.num_components);
     1591:     1646:   55:   hash = HASH(hash, instr->dest.dest.ssa.bit_size);
        -:        -:   56:   /* We explicitly don't hash instr->dest.dest.exact */
        -:        -:   57:
     1591:     1646:   58:   if (nir_op_infos[instr->op].algebraic_properties & NIR_OP_IS_COMMUTATIVE) {
      648:      655:   59:      assert(nir_op_infos[instr->op].num_inputs == 2);
      648:      655:   60:      uint32_t hash0 = hash_alu_src(hash, &instr->src[0],
        -:        -:   61:                                    nir_ssa_alu_instr_src_components(instr, 0));
      648:      655:   62:      uint32_t hash1 = hash_alu_src(hash, &instr->src[1],
        -:        -:   63:                                    nir_ssa_alu_instr_src_components(instr, 1));
        -:        -:   64:      /* For commutative operations, we need some commutative way of
        -:        -:   65:       * combining the hashes.  One option would be to XOR them but that
        -:        -:   66:       * means that anything with two identical sources will hash to 0 and
        -:        -:   67:       * that's common enough we probably don't want the guaranteed
        -:        -:   68:       * collision.  Either addition or multiplication will also work.
        -:        -:   69:       */
      648:      655:   70:      hash = hash0 * hash1;
        -:        -:   71:   } else {
     2870:     3014:   72:      for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
     1927:     2023:   73:         hash = hash_alu_src(hash, &instr->src[i],
        -:        -:   74:                             nir_ssa_alu_instr_src_components(instr, i));
        -:        -:   75:      }
        -:        -:   76:   }
        -:        -:   77:
     1591:     1646:   78:   return hash;
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:static uint32_t
      266:      272:   82:hash_load_const(uint32_t hash, const nir_load_const_instr *instr)
        -:        -:   83:{
      266:      272:   84:   hash = HASH(hash, instr->def.num_components);
        -:        -:   85:
      266:      272:   86:   unsigned size = instr->def.num_components * (instr->def.bit_size / 8);
      266:      272:   87:   hash = _mesa_fnv32_1a_accumulate_block(hash, instr->value.f32, size);
        -:        -:   88:
      266:      272:   89:   return hash;
        -:        -:   90:}
        -:        -:   91:
        -:        -:   92:static int
      552:      744:   93:cmp_phi_src(const void *data1, const void *data2)
        -:        -:   94:{
      552:      744:   95:   nir_phi_src *src1 = *(nir_phi_src **)data1;
      552:      744:   96:   nir_phi_src *src2 = *(nir_phi_src **)data2;
      552:      744:   97:   return src1->pred - src2->pred;
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:static uint32_t
      552:      744:  101:hash_phi(uint32_t hash, const nir_phi_instr *instr)
        -:        -:  102:{
      552:      744:  103:   hash = HASH(hash, instr->instr.block);
        -:        -:  104:
        -:        -:  105:   /* sort sources by predecessor, since the order shouldn't matter */
      552:      744:  106:   unsigned num_preds = instr->instr.block->predecessors->entries;
      552:      744:  107:   NIR_VLA(nir_phi_src *, srcs, num_preds);
      552:      744:  108:   unsigned i = 0;
     1656:     2232:  109:   nir_foreach_phi_src(src, instr) {
     1104:     1488:  110:      srcs[i++] = src;
        -:        -:  111:   }
        -:        -:  112:
      552:      744:  113:   qsort(srcs, num_preds, sizeof(nir_phi_src *), cmp_phi_src);
        -:        -:  114:
     1656:     2232:  115:   for (i = 0; i < num_preds; i++) {
     1104:     1488:  116:      hash = hash_src(hash, &srcs[i]->src);
     1104:     1488:  117:      hash = HASH(hash, srcs[i]->pred);
        -:        -:  118:   }
        -:        -:  119:
      552:      744:  120:   return hash;
        -:        -:  121:}
        -:        -:  122:
        -:        -:  123:static uint32_t
      133:      137:  124:hash_intrinsic(uint32_t hash, const nir_intrinsic_instr *instr)
        -:        -:  125:{
      133:      137:  126:   const nir_intrinsic_info *info = &nir_intrinsic_infos[instr->intrinsic];
      133:      137:  127:   hash = HASH(hash, instr->intrinsic);
        -:        -:  128:
      133:      137:  129:   if (info->has_dest) {
      133:      137:  130:      hash = HASH(hash, instr->dest.ssa.num_components);
      133:      137:  131:      hash = HASH(hash, instr->dest.ssa.bit_size);
        -:        -:  132:   }
        -:        -:  133:
      133:      137:  134:   assert(info->num_variables == 0);
        -:        -:  135:
      133:      137:  136:   hash = _mesa_fnv32_1a_accumulate_block(hash, instr->const_index,
      133:      137:  137:                                          info->num_indices
        -:        -:  138:                                             * sizeof(instr->const_index[0]));
      133:      137:  139:   return hash;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:static uint32_t
    #####:    #####:  143:hash_tex(uint32_t hash, const nir_tex_instr *instr)
        -:        -:  144:{
    #####:    #####:  145:   hash = HASH(hash, instr->op);
    #####:    #####:  146:   hash = HASH(hash, instr->num_srcs);
        -:        -:  147:
    #####:    #####:  148:   for (unsigned i = 0; i < instr->num_srcs; i++) {
    #####:    #####:  149:      hash = HASH(hash, instr->src[i].src_type);
    #####:    #####:  150:      hash = hash_src(hash, &instr->src[i].src);
        -:        -:  151:   }
        -:        -:  152:
    #####:    #####:  153:   hash = HASH(hash, instr->coord_components);
    #####:    #####:  154:   hash = HASH(hash, instr->sampler_dim);
    #####:    #####:  155:   hash = HASH(hash, instr->is_array);
    #####:    #####:  156:   hash = HASH(hash, instr->is_shadow);
    #####:    #####:  157:   hash = HASH(hash, instr->is_new_style_shadow);
    #####:    #####:  158:   unsigned component = instr->component;
    #####:    #####:  159:   hash = HASH(hash, component);
    #####:    #####:  160:   hash = HASH(hash, instr->texture_index);
    #####:    #####:  161:   hash = HASH(hash, instr->texture_array_size);
    #####:    #####:  162:   hash = HASH(hash, instr->sampler_index);
        -:        -:  163:
    #####:    #####:  164:   assert(!instr->texture && !instr->sampler);
        -:        -:  165:
    #####:    #####:  166:   return hash;
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:/* Computes a hash of an instruction for use in a hash table. Note that this
        -:        -:  170: * will only work for instructions where instr_can_rewrite() returns true, and
        -:        -:  171: * it should return identical hashes for two instructions that are the same
        -:        -:  172: * according nir_instrs_equal().
        -:        -:  173: */
        -:        -:  174:
        -:        -:  175:static uint32_t
     2542:     2799:  176:hash_instr(const void *data)
        -:        -:  177:{
     2542:     2799:  178:   const nir_instr *instr = data;
     2542:     2799:  179:   uint32_t hash = _mesa_fnv32_1a_offset_bias;
        -:        -:  180:
     2542:     2799:  181:   switch (instr->type) {
        -:        -:  182:   case nir_instr_type_alu:
     1591:     1646:  183:      hash = hash_alu(hash, nir_instr_as_alu(instr));
     1591:     1646:  184:      break;
        -:        -:  185:   case nir_instr_type_load_const:
      266:      272:  186:      hash = hash_load_const(hash, nir_instr_as_load_const(instr));
      266:      272:  187:      break;
        -:        -:  188:   case nir_instr_type_phi:
      552:      744:  189:      hash = hash_phi(hash, nir_instr_as_phi(instr));
      552:      744:  190:      break;
        -:        -:  191:   case nir_instr_type_intrinsic:
      133:      137:  192:      hash = hash_intrinsic(hash, nir_instr_as_intrinsic(instr));
      133:      137:  193:      break;
        -:        -:  194:   case nir_instr_type_tex:
    #####:    #####:  195:      hash = hash_tex(hash, nir_instr_as_tex(instr));
    #####:    #####:  196:      break;
        -:        -:  197:   default:
    #####:    #####:  198:      unreachable("Invalid instruction type");
        -:        -:  199:   }
        -:        -:  200:
     2542:     2799:  201:   return hash;
        -:        -:  202:}
        -:        -:  203:
        -:        -:  204:bool
     1713:     1890:  205:nir_srcs_equal(nir_src src1, nir_src src2)
        -:        -:  206:{
     1713:     1890:  207:   if (src1.is_ssa) {
     1698:     1867:  208:      if (src2.is_ssa) {
     1692:     1859:  209:         return src1.ssa == src2.ssa;
        -:        -:  210:      } else {
        6:        8:  211:         return false;
        -:        -:  212:      }
        -:        -:  213:   } else {
       15:       23:  214:      if (src2.is_ssa) {
        6:       10:  215:         return false;
        -:        -:  216:      } else {
        9:       13:  217:         if ((src1.reg.indirect == NULL) != (src2.reg.indirect == NULL))
    #####:    #####:  218:            return false;
        -:        -:  219:
        9:       13:  220:         if (src1.reg.indirect) {
    #####:    #####:  221:            if (!nir_srcs_equal(*src1.reg.indirect, *src2.reg.indirect))
    #####:    #####:  222:               return false;
        -:        -:  223:         }
        -:        -:  224:
        9:       13:  225:         return src1.reg.reg == src2.reg.reg &&
    #####:    #####:  226:                src1.reg.base_offset == src2.reg.base_offset;
        -:        -:  227:      }
        -:        -:  228:   }
        -:        -:  229:}
        -:        -:  230:
        -:        -:  231:bool
     1114:     1152:  232:nir_alu_srcs_equal(const nir_alu_instr *alu1, const nir_alu_instr *alu2,
        -:        -:  233:                   unsigned src1, unsigned src2)
        -:        -:  234:{
     2228:     2304:  235:   if (alu1->src[src1].abs != alu2->src[src2].abs ||
     1114:     1152:  236:       alu1->src[src1].negate != alu2->src[src2].negate)
    #####:    #####:  237:      return false;
        -:        -:  238:
     2348:     2424:  239:   for (unsigned i = 0; i < nir_ssa_alu_instr_src_components(alu1, src1); i++) {
     1234:     1272:  240:      if (alu1->src[src1].swizzle[i] != alu2->src[src2].swizzle[i])
    #####:    #####:  241:         return false;
        -:        -:  242:   }
        -:        -:  243:
     1114:     1152:  244:   return nir_srcs_equal(alu1->src[src1].src, alu2->src[src2].src);
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:/* Returns "true" if two instructions are equal. Note that this will only
        -:        -:  248: * work for the subset of instructions defined by instr_can_rewrite(). Also,
        -:        -:  249: * it should only return "true" for instructions that hash_instr() will return
        -:        -:  250: * the same hash for (ignoring collisions, of course).
        -:        -:  251: */
        -:        -:  252:
        -:        -:  253:static bool
     1059:     1147:  254:nir_instrs_equal(const nir_instr *instr1, const nir_instr *instr2)
        -:        -:  255:{
     1059:     1147:  256:   if (instr1->type != instr2->type)
    #####:    #####:  257:      return false;
        -:        -:  258:
     1059:     1147:  259:   switch (instr1->type) {
        -:        -:  260:   case nir_instr_type_alu: {
      545:      564:  261:      nir_alu_instr *alu1 = nir_instr_as_alu(instr1);
      545:      564:  262:      nir_alu_instr *alu2 = nir_instr_as_alu(instr2);
        -:        -:  263:
      545:      564:  264:      if (alu1->op != alu2->op)
    #####:    #####:  265:         return false;
        -:        -:  266:
        -:        -:  267:      /* TODO: We can probably acutally do something more inteligent such
        -:        -:  268:       * as allowing different numbers and taking a maximum or something
        -:        -:  269:       * here */
      545:      564:  270:      if (alu1->dest.dest.ssa.num_components != alu2->dest.dest.ssa.num_components)
    #####:    #####:  271:         return false;
        -:        -:  272:
      545:      564:  273:      if (alu1->dest.dest.ssa.bit_size != alu2->dest.dest.ssa.bit_size)
    #####:    #####:  274:         return false;
        -:        -:  275:
        -:        -:  276:      /* We explicitly don't hash instr->dest.dest.exact */
        -:        -:  277:
      545:      564:  278:      if (nir_op_infos[alu1->op].algebraic_properties & NIR_OP_IS_COMMUTATIVE) {
      224:      227:  279:         assert(nir_op_infos[alu1->op].num_inputs == 2);
      672:      681:  280:         return (nir_alu_srcs_equal(alu1, alu2, 0, 0) &&
      448:      454:  281:                 nir_alu_srcs_equal(alu1, alu2, 1, 1)) ||
    #####:    #####:  282:                (nir_alu_srcs_equal(alu1, alu2, 0, 1) &&
    #####:    #####:  283:                 nir_alu_srcs_equal(alu1, alu2, 1, 0));
        -:        -:  284:      } else {
      978:     1026:  285:         for (unsigned i = 0; i < nir_op_infos[alu1->op].num_inputs; i++) {
      657:      689:  286:            if (!nir_alu_srcs_equal(alu1, alu2, i, i))
    #####:    #####:  287:               return false;
        -:        -:  288:         }
        -:        -:  289:      }
      321:      337:  290:      return true;
        -:        -:  291:   }
        -:        -:  292:   case nir_instr_type_tex: {
    #####:    #####:  293:      nir_tex_instr *tex1 = nir_instr_as_tex(instr1);
    #####:    #####:  294:      nir_tex_instr *tex2 = nir_instr_as_tex(instr2);
        -:        -:  295:
    #####:    #####:  296:      if (tex1->op != tex2->op)
    #####:    #####:  297:         return false;
        -:        -:  298:
    #####:    #####:  299:      if (tex1->num_srcs != tex2->num_srcs)
    #####:    #####:  300:         return false;
    #####:    #####:  301:      for (unsigned i = 0; i < tex1->num_srcs; i++) {
    #####:    #####:  302:         if (tex1->src[i].src_type != tex2->src[i].src_type ||
    #####:    #####:  303:             !nir_srcs_equal(tex1->src[i].src, tex2->src[i].src)) {
    #####:    #####:  304:            return false;
        -:        -:  305:         }
        -:        -:  306:      }
        -:        -:  307:
    #####:    #####:  308:      if (tex1->coord_components != tex2->coord_components ||
    #####:    #####:  309:          tex1->sampler_dim != tex2->sampler_dim ||
    #####:    #####:  310:          tex1->is_array != tex2->is_array ||
    #####:    #####:  311:          tex1->is_shadow != tex2->is_shadow ||
    #####:    #####:  312:          tex1->is_new_style_shadow != tex2->is_new_style_shadow ||
    #####:    #####:  313:          tex1->component != tex2->component ||
    #####:    #####:  314:         tex1->texture_index != tex2->texture_index ||
    #####:    #####:  315:         tex1->texture_array_size != tex2->texture_array_size ||
    #####:    #####:  316:         tex1->sampler_index != tex2->sampler_index) {
    #####:    #####:  317:         return false;
        -:        -:  318:      }
        -:        -:  319:
        -:        -:  320:      /* Don't support un-lowered sampler derefs currently. */
    #####:    #####:  321:      assert(!tex1->texture && !tex1->sampler &&
        -:        -:  322:             !tex2->texture && !tex2->sampler);
        -:        -:  323:
    #####:    #####:  324:      return true;
        -:        -:  325:   }
        -:        -:  326:   case nir_instr_type_load_const: {
      124:      130:  327:      nir_load_const_instr *load1 = nir_instr_as_load_const(instr1);
      124:      130:  328:      nir_load_const_instr *load2 = nir_instr_as_load_const(instr2);
        -:        -:  329:
      124:      130:  330:      if (load1->def.num_components != load2->def.num_components)
    #####:    #####:  331:         return false;
        -:        -:  332:
      124:      130:  333:      if (load1->def.bit_size != load2->def.bit_size)
    #####:    #####:  334:         return false;
        -:        -:  335:
      124:      130:  336:      return memcmp(load1->value.f32, load2->value.f32,
      124:      130:  337:                    load1->def.num_components * (load1->def.bit_size / 8u)) == 0;
        -:        -:  338:   }
        -:        -:  339:   case nir_instr_type_phi: {
      184:      248:  340:      nir_phi_instr *phi1 = nir_instr_as_phi(instr1);
      184:      248:  341:      nir_phi_instr *phi2 = nir_instr_as_phi(instr2);
        -:        -:  342:
      184:      248:  343:      if (phi1->instr.block != phi2->instr.block)
    #####:    #####:  344:         return false;
        -:        -:  345:
      552:      744:  346:      nir_foreach_phi_src(src1, phi1) {
      552:      744:  347:         nir_foreach_phi_src(src2, phi2) {
      552:      744:  348:            if (src1->pred == src2->pred) {
      368:      496:  349:               if (!nir_srcs_equal(src1->src, src2->src))
    #####:    #####:  350:                  return false;
        -:        -:  351:
      368:      496:  352:               break;
        -:        -:  353:            }
        -:        -:  354:         }
        -:        -:  355:      }
        -:        -:  356:
      184:      248:  357:      return true;
        -:        -:  358:   }
        -:        -:  359:   case nir_instr_type_intrinsic: {
      206:      205:  360:      nir_intrinsic_instr *intrinsic1 = nir_instr_as_intrinsic(instr1);
      206:      205:  361:      nir_intrinsic_instr *intrinsic2 = nir_instr_as_intrinsic(instr2);
      206:      205:  362:      const nir_intrinsic_info *info =
      206:      205:  363:         &nir_intrinsic_infos[intrinsic1->intrinsic];
        -:        -:  364:
      412:      410:  365:      if (intrinsic1->intrinsic != intrinsic2->intrinsic ||
      206:      205:  366:          intrinsic1->num_components != intrinsic2->num_components)
    #####:    #####:  367:         return false;
        -:        -:  368:
      412:      410:  369:      if (info->has_dest && intrinsic1->dest.ssa.num_components !=
      206:      205:  370:                            intrinsic2->dest.ssa.num_components)
    #####:    #####:  371:         return false;
        -:        -:  372:
      412:      410:  373:      if (info->has_dest && intrinsic1->dest.ssa.bit_size !=
      206:      205:  374:                            intrinsic2->dest.ssa.bit_size)
    #####:    #####:  375:         return false;
        -:        -:  376:
      255:      258:  377:      for (unsigned i = 0; i < info->num_srcs; i++) {
      206:      205:  378:         if (!nir_srcs_equal(intrinsic1->src[i], intrinsic2->src[i]))
      157:      152:  379:            return false;
        -:        -:  380:      }
        -:        -:  381:
       49:       53:  382:      assert(info->num_variables == 0);
        -:        -:  383:
      142:      152:  384:      for (unsigned i = 0; i < info->num_indices; i++) {
       93:       99:  385:         if (intrinsic1->const_index[i] != intrinsic2->const_index[i])
    #####:    #####:  386:            return false;
        -:        -:  387:      }
        -:        -:  388:
       49:       53:  389:      return true;
        -:        -:  390:   }
        -:        -:  391:   case nir_instr_type_call:
        -:        -:  392:   case nir_instr_type_jump:
        -:        -:  393:   case nir_instr_type_ssa_undef:
        -:        -:  394:   case nir_instr_type_parallel_copy:
        -:        -:  395:   default:
    #####:    #####:  396:      unreachable("Invalid instruction type");
        -:        -:  397:   }
        -:        -:  398:
        -:        -:  399:   return false;
        -:        -:  400:}
        -:        -:  401:
        -:        -:  402:static bool
     3077:     3411:  403:src_is_ssa(nir_src *src, void *data)
        -:        -:  404:{
        -:        -:  405:   (void) data;
     3077:     3411:  406:   return src->is_ssa;
        -:        -:  407:}
        -:        -:  408:
        -:        -:  409:static bool
     1753:     1946:  410:dest_is_ssa(nir_dest *dest, void *data)
        -:        -:  411:{
        -:        -:  412:   (void) data;
     1753:     1946:  413:   return dest->is_ssa;
        -:        -:  414:}
        -:        -:  415:
        -:        -:  416:/* This function determines if uses of an instruction can safely be rewritten
        -:        -:  417: * to use another identical instruction instead. Note that this function must
        -:        -:  418: * be kept in sync with hash_instr() and nir_instrs_equal() -- only
        -:        -:  419: * instructions that pass this test will be handed on to those functions, and
        -:        -:  420: * conversely they must handle everything that this function returns true for.
        -:        -:  421: */
        -:        -:  422:
        -:        -:  423:static bool
     2124:     2387:  424:instr_can_rewrite(nir_instr *instr)
        -:        -:  425:{
        -:        -:  426:   /* We only handle SSA. */
     4248:     4774:  427:   if (!nir_foreach_dest(instr, dest_is_ssa, NULL) ||
     2124:     2387:  428:       !nir_foreach_src(instr, src_is_ssa, NULL))
    #####:    #####:  429:      return false;
        -:        -:  430:
     2124:     2387:  431:   switch (instr->type) {
        -:        -:  432:   case nir_instr_type_alu:
        -:        -:  433:   case nir_instr_type_load_const:
        -:        -:  434:   case nir_instr_type_phi:
     1631:     1802:  435:      return true;
        -:        -:  436:   case nir_instr_type_tex: {
    #####:    #####:  437:      nir_tex_instr *tex = nir_instr_as_tex(instr);
        -:        -:  438:
        -:        -:  439:      /* Don't support un-lowered sampler derefs currently. */
    #####:    #####:  440:      if (tex->texture || tex->sampler)
    #####:    #####:  441:         return false;
        -:        -:  442:
    #####:    #####:  443:      return true;
        -:        -:  444:   }
        -:        -:  445:   case nir_instr_type_intrinsic: {
      381:      409:  446:      const nir_intrinsic_info *info =
      381:      409:  447:         &nir_intrinsic_infos[nir_instr_as_intrinsic(instr)->intrinsic];
     1079:     1163:  448:      return (info->flags & NIR_INTRINSIC_CAN_ELIMINATE) &&
      472:      504:  449:             (info->flags & NIR_INTRINSIC_CAN_REORDER) &&
       91:       95:  450:             info->num_variables == 0; /* not implemented yet */
        -:        -:  451:   }
        -:        -:  452:   case nir_instr_type_call:
        -:        -:  453:   case nir_instr_type_jump:
        -:        -:  454:   case nir_instr_type_ssa_undef:
      112:      176:  455:      return false;
        -:        -:  456:   case nir_instr_type_parallel_copy:
        -:        -:  457:   default:
    #####:    #####:  458:      unreachable("Invalid instruction type");
        -:        -:  459:   }
        -:        -:  460:
        -:        -:  461:   return false;
        -:        -:  462:}
        -:        -:  463:
        -:        -:  464:static nir_ssa_def *
      164:      186:  465:nir_instr_get_dest_ssa_def(nir_instr *instr)
        -:        -:  466:{
      164:      186:  467:   switch (instr->type) {
        -:        -:  468:   case nir_instr_type_alu:
       44:       46:  469:      assert(nir_instr_as_alu(instr)->dest.dest.is_ssa);
       44:       46:  470:      return &nir_instr_as_alu(instr)->dest.dest.ssa;
        -:        -:  471:   case nir_instr_type_load_const:
      106:      118:  472:      return &nir_instr_as_load_const(instr)->def;
        -:        -:  473:   case nir_instr_type_phi:
    #####:    #####:  474:      assert(nir_instr_as_phi(instr)->dest.is_ssa);
    #####:    #####:  475:      return &nir_instr_as_phi(instr)->dest.ssa;
        -:        -:  476:   case nir_instr_type_intrinsic:
       14:       22:  477:      assert(nir_instr_as_intrinsic(instr)->dest.is_ssa);
       14:       22:  478:      return &nir_instr_as_intrinsic(instr)->dest.ssa;
        -:        -:  479:   case nir_instr_type_tex:
    #####:    #####:  480:      assert(nir_instr_as_tex(instr)->dest.is_ssa);
    #####:    #####:  481:      return &nir_instr_as_tex(instr)->dest.ssa;
        -:        -:  482:   default:
    #####:    #####:  483:      unreachable("We never ask for any of these");
        -:        -:  484:   }
        -:        -:  485:}
        -:        -:  486:
        -:        -:  487:static bool
     1059:     1147:  488:cmp_func(const void *data1, const void *data2)
        -:        -:  489:{
     1059:     1147:  490:   return nir_instrs_equal(data1, data2);
        -:        -:  491:}
        -:        -:  492:
        -:        -:  493:struct set *
       27:       27:  494:nir_instr_set_create(void *mem_ctx)
        -:        -:  495:{
       27:       27:  496:   return _mesa_set_create(mem_ctx, hash_instr, cmp_func);
        -:        -:  497:}
        -:        -:  498:
        -:        -:  499:void
       27:       27:  500:nir_instr_set_destroy(struct set *instr_set)
        -:        -:  501:{
       27:       27:  502:   _mesa_set_destroy(instr_set, NULL);
       27:       27:  503:}
        -:        -:  504:
        -:        -:  505:bool
     1103:     1240:  506:nir_instr_set_add_or_rewrite(struct set *instr_set, nir_instr *instr)
        -:        -:  507:{
     1103:     1240:  508:   if (!instr_can_rewrite(instr))
      201:      245:  509:      return false;
        -:        -:  510:
      902:      995:  511:   struct set_entry *entry = _mesa_set_search(instr_set, instr);
      902:      995:  512:   if (entry) {
       82:       93:  513:      nir_ssa_def *def = nir_instr_get_dest_ssa_def(instr);
       82:       93:  514:      nir_instr *match = (nir_instr *) entry->key;
       82:       93:  515:      nir_ssa_def *new_def = nir_instr_get_dest_ssa_def(match);
        -:        -:  516:
        -:        -:  517:      /* It's safe to replace an exact instruction with an inexact one as
        -:        -:  518:       * long as we make it exact.  If we got here, the two instructions are
        -:        -:  519:       * exactly identical in every other way so, once we've set the exact
        -:        -:  520:       * bit, they are the same.
        -:        -:  521:       */
       82:       93:  522:      if (instr->type == nir_instr_type_alu && nir_instr_as_alu(instr)->exact)
    #####:    #####:  523:         nir_instr_as_alu(match)->exact = true;
        -:        -:  524:
       82:       93:  525:      nir_ssa_def_rewrite_uses(def, nir_src_for_ssa(new_def));
       82:       93:  526:      return true;
        -:        -:  527:   }
        -:        -:  528:
      820:      902:  529:   _mesa_set_add(instr_set, instr);
      820:      902:  530:   return false;
        -:        -:  531:}
        -:        -:  532:
        -:        -:  533:void
     1021:     1147:  534:nir_instr_set_remove(struct set *instr_set, nir_instr *instr)
        -:        -:  535:{
     1021:     1147:  536:   if (!instr_can_rewrite(instr))
      201:      245:  537:      return;
        -:        -:  538:
      820:      902:  539:   struct set_entry *entry = _mesa_set_search(instr_set, instr);
      820:      902:  540:   if (entry)
      820:      902:  541:      _mesa_set_remove(instr_set, entry);
        -:        -:  542:}
        -:        -:  543:

src/compiler/nir_liveness.c.gcov

        -:        -:    0:Source:nir/nir_liveness.c
        -:        -:    0:Graph:nir/.libs/nir_liveness.gcno
        -:        -:    0:Data:nir/.libs/nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: */
        -:        -:   26:
        -:        -:   27:#include "nir.h"
        -:        -:   28:#include "nir_worklist.h"
        -:        -:   29:#include "nir_vla.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Basic liveness analysis.  This works only in SSA form.
        -:        -:   33: *
        -:        -:   34: * This liveness pass treats phi nodes as being melded to the space between
        -:        -:   35: * blocks so that the destinations of a phi are in the livein of the block
        -:        -:   36: * in which it resides and the sources are in the liveout of the
        -:        -:   37: * corresponding block.  By formulating the liveness information in this
        -:        -:   38: * way, we ensure that the definition of any variable dominates its entire
        -:        -:   39: * live range.  This is true because the only way that the definition of an
        -:        -:   40: * SSA value may not dominate a use is if the use is in a phi node and the
        -:        -:   41: * uses in phi no are in the live-out of the corresponding predecessor
        -:        -:   42: * block but not in the live-in of the block containing the phi node.
        -:        -:   43: */
        -:        -:   44:
        -:        -:   45:struct live_ssa_defs_state {
        -:        -:   46:   unsigned num_ssa_defs;
        -:        -:   47:   unsigned bitset_words;
        -:        -:   48:
        -:        -:   49:   nir_block_worklist worklist;
        -:        -:   50:};
        -:        -:   51:
        -:        -:   52:static bool
      273:      319:   53:index_ssa_def(nir_ssa_def *def, void *void_state)
        -:        -:   54:{
      273:      319:   55:   struct live_ssa_defs_state *state = void_state;
        -:        -:   56:
      273:      319:   57:   if (def->parent_instr->type == nir_instr_type_ssa_undef)
        7:        7:   58:      def->live_index = 0;
        -:        -:   59:   else
      266:      312:   60:      def->live_index = state->num_ssa_defs++;
        -:        -:   61:
      273:      319:   62:   return true;
        -:        -:   63:}
        -:        -:   64:
        -:        -:   65:/* Initialize the liveness data to zero and add the given block to the
        -:        -:   66: * worklist.
        -:        -:   67: */
        -:        -:   68:static bool
       67:       99:   69:init_liveness_block(nir_block *block,
        -:        -:   70:                    struct live_ssa_defs_state *state)
        -:        -:   71:{
       67:       99:   72:   block->live_in = reralloc(block, block->live_in, BITSET_WORD,
        -:        -:   73:                             state->bitset_words);
       67:       99:   74:   memset(block->live_in, 0, state->bitset_words * sizeof(BITSET_WORD));
        -:        -:   75:
       67:       99:   76:   block->live_out = reralloc(block, block->live_out, BITSET_WORD,
        -:        -:   77:                              state->bitset_words);
       67:       99:   78:   memset(block->live_out, 0, state->bitset_words * sizeof(BITSET_WORD));
        -:        -:   79:
       67:       99:   80:   nir_block_worklist_push_head(&state->worklist, block);
        -:        -:   81:
       67:       99:   82:   return true;
        -:        -:   83:}
        -:        -:   84:
        -:        -:   85:static bool
      577:      705:   86:set_src_live(nir_src *src, void *void_live)
        -:        -:   87:{
      577:      705:   88:   BITSET_WORD *live = void_live;
        -:        -:   89:
      577:      705:   90:   if (!src->is_ssa)
    #####:    #####:   91:      return true;
        -:        -:   92:
      577:      705:   93:   if (src->ssa->live_index == 0)
        7:        8:   94:      return true;   /* undefined variables are never live */
        -:        -:   95:
      570:      697:   96:   BITSET_SET(live, src->ssa->live_index);
        -:        -:   97:
      570:      697:   98:   return true;
        -:        -:   99:}
        -:        -:  100:
        -:        -:  101:static bool
      405:      509:  102:set_ssa_def_dead(nir_ssa_def *def, void *void_live)
        -:        -:  103:{
      405:      509:  104:   BITSET_WORD *live = void_live;
        -:        -:  105:
      405:      509:  106:   BITSET_CLEAR(live, def->live_index);
        -:        -:  107:
      405:      509:  108:   return true;
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:/** Propagates the live in of succ across the edge to the live out of pred
        -:        -:  112: *
        -:        -:  113: * Phi nodes exist "between" blocks and all the phi nodes at the start of a
        -:        -:  114: * block act "in parallel".  When we propagate from the live_in of one
        -:        -:  115: * block to the live out of the other, we have to kill any writes from phis
        -:        -:  116: * and make live any sources.
        -:        -:  117: *
        -:        -:  118: * Returns true if updating live out of pred added anything
        -:        -:  119: */
        -:        -:  120:static bool
      107:      187:  121:propagate_across_edge(nir_block *pred, nir_block *succ,
        -:        -:  122:                      struct live_ssa_defs_state *state)
        -:        -:  123:{
      107:      187:  124:   NIR_VLA(BITSET_WORD, live, state->bitset_words);
      107:      187:  125:   memcpy(live, succ->live_in, state->bitset_words * sizeof *live);
        -:        -:  126:
      213:      341:  127:   nir_foreach_instr(instr, succ) {
      193:      279:  128:      if (instr->type != nir_instr_type_phi)
       87:      125:  129:         break;
      106:      154:  130:      nir_phi_instr *phi = nir_instr_as_phi(instr);
        -:        -:  131:
      106:      154:  132:      assert(phi->dest.is_ssa);
      106:      154:  133:      set_ssa_def_dead(&phi->dest.ssa, live);
        -:        -:  134:   }
        -:        -:  135:
      213:      341:  136:   nir_foreach_instr(instr, succ) {
      193:      279:  137:      if (instr->type != nir_instr_type_phi)
       87:      125:  138:         break;
      106:      154:  139:      nir_phi_instr *phi = nir_instr_as_phi(instr);
        -:        -:  140:
      159:      231:  141:      nir_foreach_phi_src(src, phi) {
      159:      231:  142:         if (src->pred == pred) {
      106:      154:  143:            set_src_live(&src->src, live);
      106:      154:  144:            break;
        -:        -:  145:         }
        -:        -:  146:      }
        -:        -:  147:   }
        -:        -:  148:
      107:      187:  149:   BITSET_WORD progress = 0;
      587:     1119:  150:   for (unsigned i = 0; i < state->bitset_words; ++i) {
      480:      932:  151:      progress |= live[i] & ~pred->live_out[i];
      480:      932:  152:      pred->live_out[i] |= live[i];
        -:        -:  153:   }
      107:      187:  154:   return progress != 0;
        -:        -:  155:}
        -:        -:  156:
        -:        -:  157:void
        6:        6:  158:nir_live_ssa_defs_impl(nir_function_impl *impl)
        -:        -:  159:{
        -:        -:  160:   struct live_ssa_defs_state state;
        -:        -:  161:
        -:        -:  162:   /* We start at 1 because we reserve the index value of 0 for ssa_undef
        -:        -:  163:    * instructions.  Those are never live, so their liveness information
        -:        -:  164:    * can be compacted into a single bit.
        -:        -:  165:    */
        6:        6:  166:   state.num_ssa_defs = 1;
       73:      105:  167:   nir_foreach_block(block, impl) {
      338:      406:  168:      nir_foreach_instr(instr, block)
      271:      307:  169:         nir_foreach_ssa_def(instr, index_ssa_def, &state);
        -:        -:  170:   }
        -:        -:  171:
        6:        6:  172:   nir_block_worklist_init(&state.worklist, impl->num_blocks, NULL);
        -:        -:  173:
        -:        -:  174:   /* We now know how many unique ssa definitions we have and we can go
        -:        -:  175:    * ahead and allocate live_in and live_out sets and add all of the
        -:        -:  176:    * blocks to the worklist.
        -:        -:  177:    */
        6:        6:  178:   state.bitset_words = BITSET_WORDS(state.num_ssa_defs);
       73:      105:  179:   nir_foreach_block(block, impl) {
       67:       99:  180:      init_liveness_block(block, &state);
        -:        -:  181:   }
        -:        -:  182:
        -:        -:  183:
        -:        -:  184:   /* We're now ready to work through the worklist and update the liveness
        -:        -:  185:    * sets of each of the blocks.  By the time we get to this point, every
        -:        -:  186:    * block in the function implementation has been pushed onto the
        -:        -:  187:    * worklist in reverse order.  As long as we keep the worklist
        -:        -:  188:    * up-to-date as we go, everything will get covered.
        -:        -:  189:    */
      103:      169:  190:   while (!nir_block_worklist_is_empty(&state.worklist)) {
        -:        -:  191:      /* We pop them off in the reverse order we pushed them on.  This way
        -:        -:  192:       * the first walk of the instructions is backwards so we only walk
        -:        -:  193:       * once in the case of no control flow.
        -:        -:  194:       */
       91:      157:  195:      nir_block *block = nir_block_worklist_pop_head(&state.worklist);
        -:        -:  196:
       91:      157:  197:      memcpy(block->live_in, block->live_out,
       91:      157:  198:             state.bitset_words * sizeof(BITSET_WORD));
        -:        -:  199:
       91:      157:  200:      nir_if *following_if = nir_block_get_following_if(block);
       91:      157:  201:      if (following_if)
       24:       42:  202:         set_src_live(&following_if->condition, block->live_in);
        -:        -:  203:
      385:      492:  204:      nir_foreach_instr_reverse(instr, block) {
        -:        -:  205:         /* Phi nodes are handled seperately so we want to skip them.  Since
        -:        -:  206:          * we are going backwards and they are at the beginning, we can just
        -:        -:  207:          * break as soon as we see one.
        -:        -:  208:          */
      316:      363:  209:         if (instr->type == nir_instr_type_phi)
       22:       28:  210:            break;
        -:        -:  211:
      294:      335:  212:         nir_foreach_ssa_def(instr, set_ssa_def_dead, block->live_in);
      294:      335:  213:         nir_foreach_src(instr, set_src_live, block->live_in);
        -:        -:  214:      }
        -:        -:  215:
        -:        -:  216:      /* Walk over all of the predecessors of the current block updating
        -:        -:  217:       * their live in with the live out of this one.  If anything has
        -:        -:  218:       * changed, add the predecessor to the work list so that we ensure
        -:        -:  219:       * that the new information is used.
        -:        -:  220:       */
        -:        -:  221:      struct set_entry *entry;
      198:      344:  222:      set_foreach(block->predecessors, entry) {
      107:      187:  223:         nir_block *pred = (nir_block *)entry->key;
      107:      187:  224:         if (propagate_across_edge(pred, block, &state))
       85:      147:  225:            nir_block_worklist_push_tail(&state.worklist, pred);
        -:        -:  226:      }
        -:        -:  227:   }
        -:        -:  228:
        6:        6:  229:   nir_block_worklist_fini(&state.worklist);
        6:        6:  230:}
        -:        -:  231:
        -:        -:  232:static bool
      137:      165:  233:src_does_not_use_def(nir_src *src, void *def)
        -:        -:  234:{
      137:      165:  235:   return !src->is_ssa || src->ssa != (nir_ssa_def *)def;
        -:        -:  236:}
        -:        -:  237:
        -:        -:  238:static bool
      101:      181:  239:search_for_use_after_instr(nir_instr *start, nir_ssa_def *def)
        -:        -:  240:{
        -:        -:  241:   /* Only look for a use strictly after the given instruction */
      101:      181:  242:   struct exec_node *node = start->node.next;
      291:      493:  243:   while (!exec_node_is_tail_sentinel(node)) {
       89:      131:  244:      nir_instr *instr = exec_node_data(nir_instr, node, node);
       89:      131:  245:      if (!nir_foreach_src(instr, src_does_not_use_def, def))
    #####:    #####:  246:         return true;
       89:      131:  247:      node = node->next;
        -:        -:  248:   }
      101:      181:  249:   return false;
        -:        -:  250:}
        -:        -:  251:
        -:        -:  252:/* Returns true if def is live at instr assuming that def comes before
        -:        -:  253: * instr in a pre DFS search of the dominance tree.
        -:        -:  254: */
        -:        -:  255:static bool
      150:      318:  256:nir_ssa_def_is_live_at(nir_ssa_def *def, nir_instr *instr)
        -:        -:  257:{
      150:      318:  258:   if (BITSET_TEST(instr->block->live_out, def->live_index)) {
        -:        -:  259:      /* Since def dominates instr, if def is in the liveout of the block,
        -:        -:  260:       * it's live at instr
        -:        -:  261:       */
        1:        3:  262:      return true;
        -:        -:  263:   } else {
      216:      470:  264:      if (BITSET_TEST(instr->block->live_in, def->live_index) ||
       67:      155:  265:          def->parent_instr->block == instr->block) {
        -:        -:  266:         /* In this case it is either live coming into instr's block or it
        -:        -:  267:          * is defined in the same block.  In this case, we simply need to
        -:        -:  268:          * see if it is used after instr.
        -:        -:  269:          */
      101:      181:  270:         return search_for_use_after_instr(instr, def);
        -:        -:  271:      } else {
       48:      134:  272:         return false;
        -:        -:  273:      }
        -:        -:  274:   }
        -:        -:  275:}
        -:        -:  276:
        -:        -:  277:bool
      166:      330:  278:nir_ssa_defs_interfere(nir_ssa_def *a, nir_ssa_def *b)
        -:        -:  279:{
      166:      330:  280:   if (a->parent_instr == b->parent_instr) {
        -:        -:  281:      /* Two variables defined at the same time interfere assuming at
        -:        -:  282:       * least one isn't dead.
        -:        -:  283:       */
        2:    #####:  284:      return true;
      164:      330:  285:   } else if (a->live_index == 0 || b->live_index == 0) {
        -:        -:  286:      /* If either variable is an ssa_undef, then there's no interference */
       14:       12:  287:      return false;
      150:      318:  288:   } else if (a->live_index < b->live_index) {
    #####:    #####:  289:      return nir_ssa_def_is_live_at(a, b->parent_instr);
        -:        -:  290:   } else {
      150:      318:  291:      return nir_ssa_def_is_live_at(b, a->parent_instr);
        -:        -:  292:   }
        -:        -:  293:}

src/compiler/nir_loop_analyze.c.gcov

        -:        -:    0:Source:nir/nir_loop_analyze.c
        -:        -:    0:Graph:nir/.libs/nir_loop_analyze.gcno
        -:        -:    0:Data:nir/.libs/nir_loop_analyze.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Thomas Helland
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_constant_expressions.h"
        -:        -:   26:#include "nir_loop_analyze.h"
        -:        -:   27:
        -:        -:   28:typedef enum {
        -:        -:   29:   undefined,
        -:        -:   30:   invariant,
        -:        -:   31:   not_invariant,
        -:        -:   32:   basic_induction
        -:        -:   33:} nir_loop_variable_type;
        -:        -:   34:
        -:        -:   35:struct nir_basic_induction_var;
        -:        -:   36:
        -:        -:   37:typedef struct {
        -:        -:   38:   /* A link for the work list */
        -:        -:   39:   struct list_head process_link;
        -:        -:   40:
        -:        -:   41:   bool in_loop;
        -:        -:   42:
        -:        -:   43:   /* The ssa_def associated with this info */
        -:        -:   44:   nir_ssa_def *def;
        -:        -:   45:
        -:        -:   46:   /* The type of this ssa_def */
        -:        -:   47:   nir_loop_variable_type type;
        -:        -:   48:
        -:        -:   49:   /* If this is of type basic_induction */
        -:        -:   50:   struct nir_basic_induction_var *ind;
        -:        -:   51:
        -:        -:   52:   /* True if variable is in an if branch or a nested loop */
        -:        -:   53:   bool in_control_flow;
        -:        -:   54:
        -:        -:   55:} nir_loop_variable;
        -:        -:   56:
        -:        -:   57:typedef struct nir_basic_induction_var {
        -:        -:   58:   nir_op alu_op;                           /* The type of alu-operation    */
        -:        -:   59:   nir_loop_variable *alu_def;              /* The def of the alu-operation */
        -:        -:   60:   nir_loop_variable *invariant;            /* The invariant alu-operand    */
        -:        -:   61:   nir_loop_variable *def_outside_loop;     /* The phi-src outside the loop */
        -:        -:   62:} nir_basic_induction_var;
        -:        -:   63:
        -:        -:   64:typedef struct {
        -:        -:   65:   /* The loop we store information for */
        -:        -:   66:   nir_loop *loop;
        -:        -:   67:
        -:        -:   68:   /* Loop_variable for all ssa_defs in function */
        -:        -:   69:   nir_loop_variable *loop_vars;
        -:        -:   70:
        -:        -:   71:   /* A list of the loop_vars to analyze */
        -:        -:   72:   struct list_head process_list;
        -:        -:   73:
        -:        -:   74:   nir_variable_mode indirect_mask;
        -:        -:   75:
        -:        -:   76:} loop_info_state;
        -:        -:   77:
        -:        -:   78:static nir_loop_variable *
     3009:     5539:   79:get_loop_var(nir_ssa_def *value, loop_info_state *state)
        -:        -:   80:{
     3009:     5539:   81:   return &(state->loop_vars[value->index]);
        -:        -:   82:}
        -:        -:   83:
        -:        -:   84:typedef struct {
        -:        -:   85:   loop_info_state *state;
        -:        -:   86:   bool in_control_flow;
        -:        -:   87:} init_loop_state;
        -:        -:   88:
        -:        -:   89:static bool
      347:      513:   90:init_loop_def(nir_ssa_def *def, void *void_init_loop_state)
        -:        -:   91:{
      347:      513:   92:   init_loop_state *loop_init_state = void_init_loop_state;
      347:      513:   93:   nir_loop_variable *var = get_loop_var(def, loop_init_state->state);
        -:        -:   94:
      347:      513:   95:   if (loop_init_state->in_control_flow) {
       49:      121:   96:      var->in_control_flow = true;
        -:        -:   97:   } else {
        -:        -:   98:      /* Add to the tail of the list. That way we start at the beginning of
        -:        -:   99:       * the defs in the loop instead of the end when walking the list. This
        -:        -:  100:       * means less recursive calls. Only add defs that are not in nested
        -:        -:  101:       * loops or conditional blocks.
        -:        -:  102:       */
      298:      392:  103:      list_addtail(&var->process_link, &loop_init_state->state->process_list);
        -:        -:  104:   }
        -:        -:  105:
      347:      513:  106:   var->in_loop = true;
        -:        -:  107:
      347:      513:  108:   return true;
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:static bool
      167:      407:  112:init_loop_block(nir_block *block, loop_info_state *state,
        -:        -:  113:                bool in_control_flow)
        -:        -:  114:{
      167:      407:  115:   init_loop_state init_state = {.in_control_flow = in_control_flow,
        -:        -:  116:                                 .state = state };
        -:        -:  117:
      547:     1017:  118:   nir_foreach_instr(instr, block) {
      713:     1135:  119:      if (instr->type == nir_instr_type_intrinsic ||
      440:      764:  120:          instr->type == nir_instr_type_alu ||
      107:      239:  121:          instr->type == nir_instr_type_tex) {
      273:      371:  122:         state->loop->info->num_instructions++;
        -:        -:  123:      }
        -:        -:  124:
      380:      610:  125:      nir_foreach_ssa_def(instr, init_loop_def, &init_state);
        -:        -:  126:   }
        -:        -:  127:
      167:      407:  128:   return true;
        -:        -:  129:}
        -:        -:  130:
        -:        -:  131:static inline bool
      330:      504:  132:is_var_alu(nir_loop_variable *var)
        -:        -:  133:{
      330:      504:  134:   return var->def->parent_instr->type == nir_instr_type_alu;
        -:        -:  135:}
        -:        -:  136:
        -:        -:  137:static inline bool
       51:       35:  138:is_var_constant(nir_loop_variable *var)
        -:        -:  139:{
       51:       35:  140:   return var->def->parent_instr->type == nir_instr_type_load_const;
        -:        -:  141:}
        -:        -:  142:
        -:        -:  143:static inline bool
      272:      358:  144:is_var_phi(nir_loop_variable *var)
        -:        -:  145:{
      272:      358:  146:   return var->def->parent_instr->type == nir_instr_type_phi;
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:static inline bool
      517:      651:  150:mark_invariant(nir_ssa_def *def, loop_info_state *state)
        -:        -:  151:{
      517:      651:  152:   nir_loop_variable *var = get_loop_var(def, state);
        -:        -:  153:
      517:      651:  154:   if (var->type == invariant)
       28:       42:  155:      return true;
        -:        -:  156:
      489:      609:  157:   if (!var->in_loop) {
       20:       36:  158:      var->type = invariant;
       20:       36:  159:      return true;
        -:        -:  160:   }
        -:        -:  161:
      469:      573:  162:   if (var->type == not_invariant)
      179:      189:  163:      return false;
        -:        -:  164:
      290:      384:  165:   if (is_var_alu(var)) {
      197:      215:  166:      nir_alu_instr *alu = nir_instr_as_alu(def->parent_instr);
        -:        -:  167:
      237:      285:  168:      for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++) {
      219:      259:  169:         if (!mark_invariant(alu->src[i].src.ssa, state)) {
      179:      189:  170:            var->type = not_invariant;
      179:      189:  171:            return false;
        -:        -:  172:         }
        -:        -:  173:      }
       18:       26:  174:      var->type = invariant;
       18:       26:  175:      return true;
        -:        -:  176:   }
        -:        -:  177:
        -:        -:  178:   /* Phis shouldn't be invariant except if one operand is invariant, and the
        -:        -:  179:    * other is the phi itself. These should be removed by opt_remove_phis.
        -:        -:  180:    * load_consts are already set to invariant and constant during init,
        -:        -:  181:    * and so should return earlier. Remaining op_codes are set undefined.
        -:        -:  182:    */
       93:      169:  183:   var->type = not_invariant;
       93:      169:  184:   return false;
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:static void
       17:       33:  188:compute_invariance_information(loop_info_state *state)
        -:        -:  189:{
        -:        -:  190:   /* An expression is invariant in a loop L if:
        -:        -:  191:    *  (base cases)
        -:        -:  192:    *    – it’s a constant
        -:        -:  193:    *    – it’s a variable use, all of whose single defs are outside of L
        -:        -:  194:    *  (inductive cases)
        -:        -:  195:    *    – it’s a pure computation all of whose args are loop invariant
        -:        -:  196:    *    – it’s a variable use whose single reaching def, and the
        -:        -:  197:    *      rhs of that def is loop-invariant
        -:        -:  198:    */
      315:      425:  199:   list_for_each_entry_safe(nir_loop_variable, var, &state->process_list,
        -:        -:  200:                            process_link) {
      298:      392:  201:      assert(!var->in_control_flow);
        -:        -:  202:
      298:      392:  203:      if (mark_invariant(var->def, state))
       26:       34:  204:         list_del(&var->process_link);
        -:        -:  205:   }
       17:       33:  206:}
        -:        -:  207:
        -:        -:  208:static bool
       17:       33:  209:compute_induction_information(loop_info_state *state)
        -:        -:  210:{
       17:       33:  211:   bool found_induction_var = false;
      289:      391:  212:   list_for_each_entry_safe(nir_loop_variable, var, &state->process_list,
        -:        -:  213:                            process_link) {
        -:        -:  214:
        -:        -:  215:      /* It can't be an induction variable if it is invariant. Invariants and
        -:        -:  216:       * things in nested loops or conditionals should have been removed from
        -:        -:  217:       * the list by compute_invariance_information().
        -:        -:  218:       */
      272:      358:  219:      assert(!var->in_control_flow && var->type != invariant);
        -:        -:  220:
        -:        -:  221:      /* We are only interested in checking phis for the basic induction
        -:        -:  222:       * variable case as its simple to detect. All basic induction variables
        -:        -:  223:       * have a phi node
        -:        -:  224:       */
      272:      358:  225:      if (!is_var_phi(var))
      210:      232:  226:         continue;
        -:        -:  227:
       62:      126:  228:      nir_phi_instr *phi = nir_instr_as_phi(var->def->parent_instr);
       62:      126:  229:      nir_basic_induction_var *biv = rzalloc(state, nir_basic_induction_var);
        -:        -:  230:
      142:      334:  231:      nir_foreach_phi_src(src, phi) {
      102:      230:  232:         nir_loop_variable *src_var = get_loop_var(src->src.ssa, state);
        -:        -:  233:
        -:        -:  234:         /* If one of the sources is in a conditional or nested block then
        -:        -:  235:          * panic.
        -:        -:  236:          */
      102:      230:  237:         if (src_var->in_control_flow)
       22:       22:  238:            break;
        -:        -:  239:
       80:      208:  240:         if (!src_var->in_loop) {
       40:       88:  241:            biv->def_outside_loop = src_var;
       40:      120:  242:         } else if (is_var_alu(src_var)) {
       18:       18:  243:            nir_alu_instr *alu = nir_instr_as_alu(src_var->def->parent_instr);
        -:        -:  244:
       18:       18:  245:            if (nir_op_infos[alu->op].num_inputs == 2) {
       17:       17:  246:               biv->alu_def = src_var;
       17:       17:  247:               biv->alu_op = alu->op;
        -:        -:  248:
       51:       51:  249:               for (unsigned i = 0; i < 2; i++) {
        -:        -:  250:                  /* Is one of the operands const, and the other the phi */
       51:       51:  251:                  if (alu->src[i].src.ssa->parent_instr->type == nir_instr_type_load_const &&
       17:       17:  252:                      alu->src[1-i].src.ssa == &phi->dest.ssa)
       17:       17:  253:                     biv->invariant = get_loop_var(alu->src[i].src.ssa, state);
        -:        -:  254:               }
        -:        -:  255:            }
        -:        -:  256:         }
        -:        -:  257:      }
        -:        -:  258:
       79:      143:  259:      if (biv->alu_def && biv->def_outside_loop && biv->invariant &&
       17:       17:  260:          is_var_constant(biv->def_outside_loop)) {
       17:       17:  261:         assert(is_var_constant(biv->invariant));
       17:       17:  262:         biv->alu_def->type = basic_induction;
       17:       17:  263:         biv->alu_def->ind = biv;
       17:       17:  264:         var->type = basic_induction;
       17:       17:  265:         var->ind = biv;
        -:        -:  266:
       17:       17:  267:         found_induction_var = true;
        -:        -:  268:      } else {
       45:      109:  269:         ralloc_free(biv);
        -:        -:  270:      }
        -:        -:  271:   }
       17:       33:  272:   return found_induction_var;
        -:        -:  273:}
        -:        -:  274:
        -:        -:  275:static bool
     1928:     4126:  276:initialize_ssa_def(nir_ssa_def *def, void *void_state)
        -:        -:  277:{
     1928:     4126:  278:   loop_info_state *state = void_state;
     1928:     4126:  279:   nir_loop_variable *var = get_loop_var(def, state);
        -:        -:  280:
     1928:     4126:  281:   var->in_loop = false;
     1928:     4126:  282:   var->def = def;
        -:        -:  283:
     1928:     4126:  284:   if (def->parent_instr->type == nir_instr_type_load_const) {
      144:      282:  285:      var->type = invariant;
        -:        -:  286:   } else {
     1784:     3844:  287:      var->type = undefined;
        -:        -:  288:   }
        -:        -:  289:
     1928:     4126:  290:   return true;
        -:        -:  291:}
        -:        -:  292:
        -:        -:  293:static inline bool
       67:       67:  294:ends_in_break(nir_block *block)
        -:        -:  295:{
       67:       67:  296:   if (exec_list_is_empty(&block->instr_list))
       17:       17:  297:      return false;
        -:        -:  298:
       50:       50:  299:   nir_instr *instr = nir_block_last_instr(block);
       83:       83:  300:   return instr->type == nir_instr_type_jump &&
       33:       33:  301:      nir_instr_as_jump(instr)->type == nir_jump_break;
        -:        -:  302:}
        -:        -:  303:
        -:        -:  304:static bool
       17:       17:  305:find_loop_terminators(loop_info_state *state)
        -:        -:  306:{
       17:       17:  307:   bool success = false;
      134:      134:  308:   foreach_list_typed_safe(nir_cf_node, node, node, &state->loop->body) {
      117:      133:  309:      if (node->type == nir_cf_node_if) {
       50:       50:  310:         nir_if *nif = nir_cf_node_as_if(node);
        -:        -:  311:
       50:       50:  312:         nir_block *break_blk = NULL;
       50:       50:  313:         nir_block *continue_from_blk = NULL;
       50:       50:  314:         bool continue_from_then = true;
        -:        -:  315:
       50:       50:  316:         nir_block *last_then = nir_if_last_then_block(nif);
       50:       50:  317:         nir_block *last_else = nir_if_last_else_block(nif);
       50:       50:  318:         if (ends_in_break(last_then)) {
       33:       33:  319:            break_blk = last_then;
       33:       33:  320:            continue_from_blk = last_else;
       33:       33:  321:            continue_from_then = false;
       17:       17:  322:         } else if (ends_in_break(last_else)) {
    #####:    #####:  323:            break_blk = last_else;
    #####:    #####:  324:            continue_from_blk = last_then;
        -:        -:  325:         }
        -:        -:  326:
        -:        -:  327:         /* If there is a break then we should find a terminator. If we can
        -:        -:  328:          * not find a loop terminator, but there is a break-statement then
        -:        -:  329:          * we should return false so that we do not try to find trip-count
        -:        -:  330:          */
       50:       50:  331:         if (!nir_is_trivial_loop_if(nif, break_blk))
    #####:    #####:  332:            return false;
        -:        -:  333:
        -:        -:  334:         /* Continue if the if contained no jumps at all */
       50:       50:  335:         if (!break_blk)
       17:       17:  336:            continue;
        -:        -:  337:
       33:       33:  338:         if (nif->condition.ssa->parent_instr->type == nir_instr_type_phi)
    #####:       16:  339:            return false;
        -:        -:  340:
       33:       17:  341:         nir_loop_terminator *terminator =
       33:       17:  342:            rzalloc(state->loop->info, nir_loop_terminator);
        -:        -:  343:
       33:       17:  344:         list_add(&terminator->loop_terminator_link,
       33:       17:  345:                  &state->loop->info->loop_terminator_list);
        -:        -:  346:
       33:       17:  347:         terminator->nif = nif;
       33:       17:  348:         terminator->break_block = break_blk;
       33:       17:  349:         terminator->continue_from_block = continue_from_blk;
       33:       17:  350:         terminator->continue_from_then = continue_from_then;
       33:       17:  351:         terminator->conditional_instr = nif->condition.ssa->parent_instr;
        -:        -:  352:
       33:       17:  353:         success = true;
        -:        -:  354:      }
        -:        -:  355:   }
        -:        -:  356:
       17:        1:  357:   return success;
        -:        -:  358:}
        -:        -:  359:
        -:        -:  360:static int32_t
       17:        1:  361:get_iteration(nir_op cond_op, nir_const_value *initial, nir_const_value *step,
        -:        -:  362:              nir_const_value *limit)
        -:        -:  363:{
        -:        -:  364:   int32_t iter;
        -:        -:  365:
       17:        1:  366:   switch (cond_op) {
        -:        -:  367:   case nir_op_ige:
        -:        -:  368:   case nir_op_ilt:
        -:        -:  369:   case nir_op_ieq:
        -:        -:  370:   case nir_op_ine: {
       17:        1:  371:      int32_t initial_val = initial->i32[0];
       17:        1:  372:      int32_t span = limit->i32[0] - initial_val;
       17:        1:  373:      iter = span / step->i32[0];
       17:        1:  374:      break;
        -:        -:  375:   }
        -:        -:  376:   case nir_op_uge:
        -:        -:  377:   case nir_op_ult: {
    #####:    #####:  378:      uint32_t initial_val = initial->u32[0];
    #####:    #####:  379:      uint32_t span = limit->u32[0] - initial_val;
    #####:    #####:  380:      iter = span / step->u32[0];
    #####:    #####:  381:      break;
        -:        -:  382:   }
        -:        -:  383:   case nir_op_fge:
        -:        -:  384:   case nir_op_flt:
        -:        -:  385:   case nir_op_feq:
        -:        -:  386:   case nir_op_fne: {
    #####:    #####:  387:      float initial_val = initial->f32[0];
    #####:    #####:  388:      float span = limit->f32[0] - initial_val;
    #####:    #####:  389:      iter = span / step->f32[0];
    #####:    #####:  390:      break;
        -:        -:  391:   }
        -:        -:  392:   default:
    #####:    #####:  393:      return -1;
        -:        -:  394:   }
        -:        -:  395:
       17:        1:  396:   return iter;
        -:        -:  397:}
        -:        -:  398:
        -:        -:  399:static bool
       34:        2:  400:test_iterations(int32_t iter_int, nir_const_value *step,
        -:        -:  401:                nir_const_value *limit, nir_op cond_op, unsigned bit_size,
        -:        -:  402:                nir_alu_type induction_base_type,
        -:        -:  403:                nir_const_value *initial, bool limit_rhs, bool invert_cond)
        -:        -:  404:{
       34:        2:  405:   assert(nir_op_infos[cond_op].num_inputs == 2);
        -:        -:  406:
       34:        2:  407:   nir_const_value iter_src = { {0, } };
        -:        -:  408:   nir_op mul_op;
        -:        -:  409:   nir_op add_op;
       34:        2:  410:   switch (induction_base_type) {
        -:        -:  411:   case nir_type_float:
    #####:    #####:  412:      iter_src.f32[0] = (float) iter_int;
    #####:    #####:  413:      mul_op = nir_op_fmul;
    #####:    #####:  414:      add_op = nir_op_fadd;
    #####:    #####:  415:      break;
        -:        -:  416:   case nir_type_int:
        -:        -:  417:   case nir_type_uint:
       34:        2:  418:      iter_src.i32[0] = iter_int;
       34:        2:  419:      mul_op = nir_op_imul;
       34:        2:  420:      add_op = nir_op_iadd;
       34:        2:  421:      break;
        -:        -:  422:   default:
    #####:    #####:  423:      unreachable("Unhandled induction variable base type!");
        -:        -:  424:   }
        -:        -:  425:
        -:        -:  426:   /* Multiple the iteration count we are testing by the number of times we
        -:        -:  427:    * step the induction variable each iteration.
        -:        -:  428:    */
       34:        2:  429:   nir_const_value mul_src[2] = { iter_src, *step };
       34:        2:  430:   nir_const_value mul_result =
        -:        -:  431:      nir_eval_const_opcode(mul_op, 1, bit_size, mul_src);
        -:        -:  432:
        -:        -:  433:   /* Add the initial value to the accumulated induction variable total */
       34:        2:  434:   nir_const_value add_src[2] = { mul_result, *initial };
       34:        2:  435:   nir_const_value add_result =
        -:        -:  436:      nir_eval_const_opcode(add_op, 1, bit_size, add_src);
        -:        -:  437:
       34:        2:  438:   nir_const_value src[2] = { { {0, } }, { {0, } } };
       34:        2:  439:   src[limit_rhs ? 0 : 1] = add_result;
       34:        2:  440:   src[limit_rhs ? 1 : 0] = *limit;
        -:        -:  441:
        -:        -:  442:   /* Evaluate the loop exit condition */
       34:        2:  443:   nir_const_value result = nir_eval_const_opcode(cond_op, 1, bit_size, src);
        -:        -:  444:
       34:        2:  445:   return invert_cond ? (result.u32[0] == 0) : (result.u32[0] != 0);
        -:        -:  446:}
        -:        -:  447:
        -:        -:  448:static int
       17:        1:  449:calculate_iterations(nir_const_value *initial, nir_const_value *step,
        -:        -:  450:                     nir_const_value *limit, nir_loop_variable *alu_def,
        -:        -:  451:                     nir_alu_instr *cond_alu, bool limit_rhs, bool invert_cond)
        -:        -:  452:{
       17:        1:  453:   assert(initial != NULL && step != NULL && limit != NULL);
        -:        -:  454:
       17:        1:  455:   nir_alu_instr *alu = nir_instr_as_alu(alu_def->def->parent_instr);
        -:        -:  456:
        -:        -:  457:   /* nir_op_isub should have been lowered away by this point */
       17:        1:  458:   assert(alu->op != nir_op_isub);
        -:        -:  459:
        -:        -:  460:   /* Make sure the alu type for our induction variable is compatible with the
        -:        -:  461:    * conditional alus input type. If its not something has gone really wrong.
        -:        -:  462:    */
       17:        1:  463:   nir_alu_type induction_base_type =
       17:        1:  464:      nir_alu_type_get_base_type(nir_op_infos[alu->op].output_type);
       17:        1:  465:   if (induction_base_type == nir_type_int || induction_base_type == nir_type_uint) {
       17:        1:  466:      assert(nir_alu_type_get_base_type(nir_op_infos[cond_alu->op].input_types[1]) == nir_type_int ||
        -:        -:  467:             nir_alu_type_get_base_type(nir_op_infos[cond_alu->op].input_types[1]) == nir_type_uint);
        -:        -:  468:   } else {
    #####:    #####:  469:      assert(nir_alu_type_get_base_type(nir_op_infos[cond_alu->op].input_types[0]) ==
        -:        -:  470:             induction_base_type);
        -:        -:  471:   }
        -:        -:  472:
        -:        -:  473:   /* Check for nsupported alu operations */
       17:        1:  474:   if (alu->op != nir_op_iadd && alu->op != nir_op_fadd)
    #####:    #####:  475:      return -1;
        -:        -:  476:
        -:        -:  477:   /* do-while loops can increment the starting value before the condition is
        -:        -:  478:    * checked. e.g.
        -:        -:  479:    *
        -:        -:  480:    *    do {
        -:        -:  481:    *        ndx++;
        -:        -:  482:    *     } while (ndx < 3);
        -:        -:  483:    *
        -:        -:  484:    * Here we check if the induction variable is used directly by the loop
        -:        -:  485:    * condition and if so we assume we need to step the initial value.
        -:        -:  486:    */
       17:        1:  487:   unsigned trip_offset = 0;
       34:        2:  488:   if (cond_alu->src[0].src.ssa == alu_def->def ||
       17:        1:  489:       cond_alu->src[1].src.ssa == alu_def->def) {
    #####:    #####:  490:      trip_offset = 1;
        -:        -:  491:   }
        -:        -:  492:
       17:        1:  493:   int iter_int = get_iteration(cond_alu->op, initial, step, limit);
        -:        -:  494:
        -:        -:  495:   /* If iter_int is negative the loop is ill-formed or is the conditional is
        -:        -:  496:    * unsigned with a huge iteration count so don't bother going any further.
        -:        -:  497:    */
       17:        1:  498:   if (iter_int < 0)
    #####:    #####:  499:      return -1;
        -:        -:  500:
        -:        -:  501:   /* An explanation from the GLSL unrolling pass:
        -:        -:  502:    *
        -:        -:  503:    * Make sure that the calculated number of iterations satisfies the exit
        -:        -:  504:    * condition.  This is needed to catch off-by-one errors and some types of
        -:        -:  505:    * ill-formed loops.  For example, we need to detect that the following
        -:        -:  506:    * loop does not have a maximum iteration count.
        -:        -:  507:    *
        -:        -:  508:    *    for (float x = 0.0; x != 0.9; x += 0.2);
        -:        -:  509:    */
       17:        1:  510:   assert(nir_src_bit_size(alu->src[0].src) ==
        -:        -:  511:          nir_src_bit_size(alu->src[1].src));
       17:        1:  512:   unsigned bit_size = nir_src_bit_size(alu->src[0].src);
       34:        2:  513:   for (int bias = -1; bias <= 1; bias++) {
       34:        2:  514:      const int iter_bias = iter_int + bias;
        -:        -:  515:
       34:        2:  516:      if (test_iterations(iter_bias, step, limit, cond_alu->op, bit_size,
        -:        -:  517:                          induction_base_type, initial,
        -:        -:  518:                          limit_rhs, invert_cond)) {
       17:        1:  519:         return iter_bias > 0 ? iter_bias - trip_offset : iter_bias;
        -:        -:  520:      }
        -:        -:  521:   }
        -:        -:  522:
    #####:    #####:  523:   return -1;
        -:        -:  524:}
        -:        -:  525:
        -:        -:  526:/* Run through each of the terminators of the loop and try to infer a possible
        -:        -:  527: * trip-count. We need to check them all, and set the lowest trip-count as the
        -:        -:  528: * trip-count of our loop. If one of the terminators has an undecidable
        -:        -:  529: * trip-count we can not safely assume anything about the duration of the
        -:        -:  530: * loop.
        -:        -:  531: */
        -:        -:  532:static void
       17:        1:  533:find_trip_count(loop_info_state *state)
        -:        -:  534:{
       17:        1:  535:   bool trip_count_known = true;
       17:        1:  536:   nir_loop_terminator *limiting_terminator = NULL;
       17:        1:  537:   int min_trip_count = -1;
        -:        -:  538:
       50:        2:  539:   list_for_each_entry(nir_loop_terminator, terminator,
        -:        -:  540:                       &state->loop->info->loop_terminator_list,
        -:        -:  541:                       loop_terminator_link) {
        -:        -:  542:
       33:        1:  543:      if (terminator->conditional_instr->type != nir_instr_type_alu) {
        -:        -:  544:         /* If we get here the loop is dead and will get cleaned up by the
        -:        -:  545:          * nir_opt_dead_cf pass.
        -:        -:  546:          */
    #####:    #####:  547:         trip_count_known = false;
    #####:    #####:  548:         continue;
        -:        -:  549:      }
        -:        -:  550:
       33:        1:  551:      nir_alu_instr *alu = nir_instr_as_alu(terminator->conditional_instr);
       33:        1:  552:      nir_loop_variable *basic_ind = NULL;
       33:        1:  553:      nir_loop_variable *limit = NULL;
       33:        1:  554:      bool limit_rhs = true;
        -:        -:  555:
       33:        1:  556:      switch (alu->op) {
        -:        -:  557:      case nir_op_fge:      case nir_op_ige:      case nir_op_uge:
        -:        -:  558:      case nir_op_flt:      case nir_op_ilt:      case nir_op_ult:
        -:        -:  559:      case nir_op_feq:      case nir_op_ieq:
        -:        -:  560:      case nir_op_fne:      case nir_op_ine:
        -:        -:  561:
        -:        -:  562:         /* We assume that the limit is the "right" operand */
       33:        1:  563:         basic_ind = get_loop_var(alu->src[0].src.ssa, state);
       33:        1:  564:         limit = get_loop_var(alu->src[1].src.ssa, state);
        -:        -:  565:
       33:        1:  566:         if (basic_ind->type != basic_induction) {
        -:        -:  567:            /* We had it the wrong way, flip things around */
       16:    #####:  568:            basic_ind = get_loop_var(alu->src[1].src.ssa, state);
       16:    #####:  569:            limit = get_loop_var(alu->src[0].src.ssa, state);
       16:    #####:  570:            limit_rhs = false;
        -:        -:  571:         }
        -:        -:  572:
        -:        -:  573:         /* The comparison has to have a basic induction variable
        -:        -:  574:          * and a constant for us to be able to find trip counts
        -:        -:  575:          */
       33:        1:  576:         if (basic_ind->type != basic_induction || !is_var_constant(limit)) {
       16:    #####:  577:            trip_count_known = false;
       32:    #####:  578:            continue;
        -:        -:  579:         }
        -:        -:  580:
        -:        -:  581:         /* We have determined that we have the following constants:
        -:        -:  582:          * (With the typical int i = 0; i < x; i++; as an example)
        -:        -:  583:          *    - Upper limit.
        -:        -:  584:          *    - Starting value
        -:        -:  585:          *    - Step / iteration size
        -:        -:  586:          * Thats all thats needed to calculate the trip-count
        -:        -:  587:          */
        -:        -:  588:
       17:        1:  589:         nir_const_value initial_val =
       34:        2:  590:            nir_instr_as_load_const(basic_ind->ind->def_outside_loop->
       17:        1:  591:                                       def->parent_instr)->value;
        -:        -:  592:
       17:        1:  593:         nir_const_value step_val =
       17:        1:  594:            nir_instr_as_load_const(basic_ind->ind->invariant->def->
        -:        -:  595:                                       parent_instr)->value;
        -:        -:  596:
       17:        1:  597:         nir_const_value limit_val =
       17:        1:  598:            nir_instr_as_load_const(limit->def->parent_instr)->value;
        -:        -:  599:
       34:        2:  600:         int iterations = calculate_iterations(&initial_val, &step_val,
        -:        -:  601:                                               &limit_val,
       17:        1:  602:                                               basic_ind->ind->alu_def, alu,
        -:        -:  603:                                               limit_rhs,
       17:        1:  604:                                               terminator->continue_from_then);
        -:        -:  605:
        -:        -:  606:         /* Where we not able to calculate the iteration count */
       17:        1:  607:         if (iterations == -1) {
    #####:    #####:  608:            trip_count_known = false;
    #####:    #####:  609:            continue;
        -:        -:  610:         }
        -:        -:  611:
        -:        -:  612:         /* If this is the first run or we have found a smaller amount of
        -:        -:  613:          * iterations than previously (we have identified a more limiting
        -:        -:  614:          * terminator) set the trip count and limiting terminator.
        -:        -:  615:          */
       17:        1:  616:         if (min_trip_count == -1 || iterations < min_trip_count) {
       17:        1:  617:            min_trip_count = iterations;
       17:        1:  618:            limiting_terminator = terminator;
        -:        -:  619:         }
       17:        1:  620:         break;
        -:        -:  621:
        -:        -:  622:      default:
    #####:    #####:  623:         trip_count_known = false;
        -:        -:  624:      }
        -:        -:  625:   }
        -:        -:  626:
       17:        1:  627:   state->loop->info->is_trip_count_known = trip_count_known;
       17:        1:  628:   if (min_trip_count > -1)
       17:        1:  629:      state->loop->info->trip_count = min_trip_count;
       17:        1:  630:   state->loop->info->limiting_terminator = limiting_terminator;
       17:        1:  631:}
        -:        -:  632:
        -:        -:  633:/* Checks if we should force the loop to be unrolled regardless of size
        -:        -:  634: * due to array access heuristics.
        -:        -:  635: */
        -:        -:  636:static bool
       37:        1:  637:force_unroll_array_access(loop_info_state *state, nir_shader *ns,
        -:        -:  638:                          nir_deref_var *variable)
        -:        -:  639:{
       37:        1:  640:   nir_deref *tail = &variable->deref;
        -:        -:  641:
       99:        3:  642:   while (tail->child != NULL) {
       25:        1:  643:      tail = tail->child;
        -:        -:  644:
       25:        1:  645:      if (tail->deref_type == nir_deref_type_array) {
        -:        -:  646:
       25:        1:  647:         nir_deref_array *deref_array = nir_deref_as_array(tail);
       25:        1:  648:         if (deref_array->deref_array_type != nir_deref_array_type_indirect)
       25:        1:  649:            continue;
        -:        -:  650:
    #####:    #####:  651:         nir_loop_variable *array_index =
    #####:    #####:  652:            get_loop_var(deref_array->indirect.ssa, state);
        -:        -:  653:
    #####:    #####:  654:         if (array_index->type != basic_induction)
    #####:    #####:  655:            continue;
        -:        -:  656:
        -:        -:  657:         /* If an array is indexed by a loop induction variable, and the
        -:        -:  658:          * array size is exactly the number of loop iterations, this is
        -:        -:  659:          * probably a simple for-loop trying to access each element in
        -:        -:  660:          * turn; the application may expect it to be unrolled.
        -:        -:  661:          */
    #####:    #####:  662:         if (glsl_get_length(variable->deref.type) ==
    #####:    #####:  663:             state->loop->info->trip_count) {
    #####:    #####:  664:            state->loop->info->force_unroll = true;
    #####:    #####:  665:            return state->loop->info->force_unroll;
        -:        -:  666:         }
        -:        -:  667:
    #####:    #####:  668:         if (variable->var->data.mode & state->indirect_mask) {
    #####:    #####:  669:            state->loop->info->force_unroll = true;
    #####:    #####:  670:            return state->loop->info->force_unroll;
        -:        -:  671:         }
        -:        -:  672:      }
        -:        -:  673:   }
        -:        -:  674:
       37:        1:  675:   return false;
        -:        -:  676:}
        -:        -:  677:
        -:        -:  678:static bool
      167:        7:  679:force_unroll_heuristics(loop_info_state *state, nir_shader *ns,
        -:        -:  680:                        nir_block *block)
        -:        -:  681:{
      547:       47:  682:   nir_foreach_instr(instr, block) {
      380:       40:  683:      if (instr->type != nir_instr_type_intrinsic)
      333:       39:  684:         continue;
        -:        -:  685:
       47:        1:  686:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  687:
        -:        -:  688:      /* Check for arrays variably-indexed by a loop induction variable.
        -:        -:  689:       * Unrolling the loop may convert that access into constant-indexing.
        -:        -:  690:       */
       57:        1:  691:      if (intrin->intrinsic == nir_intrinsic_load_var ||
       20:    #####:  692:          intrin->intrinsic == nir_intrinsic_store_var ||
       10:    #####:  693:          intrin->intrinsic == nir_intrinsic_copy_var) {
       37:        1:  694:         unsigned num_vars =
       37:        1:  695:            nir_intrinsic_infos[intrin->intrinsic].num_variables;
       74:        2:  696:         for (unsigned i = 0; i < num_vars; i++) {
       37:        1:  697:            if (force_unroll_array_access(state, ns, intrin->variables[i]))
    #####:    #####:  698:               return true;
        -:        -:  699:         }
        -:        -:  700:      }
        -:        -:  701:   }
        -:        -:  702:
      167:        7:  703:   return false;
        -:        -:  704:}
        -:        -:  705:
        -:        -:  706:static void
       17:       33:  707:get_loop_info(loop_info_state *state, nir_function_impl *impl)
        -:        -:  708:{
        -:        -:  709:   /* Initialize all variables to "outside_loop". This also marks defs
        -:        -:  710:    * invariant and constant if they are nir_instr_type_load_consts
        -:        -:  711:    */
      558:     1612:  712:   nir_foreach_block(block, impl) {
     2557:     6007:  713:      nir_foreach_instr(instr, block)
     2016:     4428:  714:         nir_foreach_ssa_def(instr, initialize_ssa_def, state);
        -:        -:  715:   }
        -:        -:  716:
        -:        -:  717:   /* Add all entries in the outermost part of the loop to the processing list
        -:        -:  718:    * Mark the entries in conditionals or in nested loops accordingly
        -:        -:  719:    */
      134:      262:  720:   foreach_list_typed_safe(nir_cf_node, node, node, &state->loop->body) {
      117:      229:  721:      switch (node->type) {
        -:        -:  722:
        -:        -:  723:      case nir_cf_node_block:
       67:      131:  724:         init_loop_block(nir_cf_node_as_block(node), state, false);
       67:      131:  725:         break;
        -:        -:  726:
        -:        -:  727:      case nir_cf_node_if:
      150:      246:  728:         nir_foreach_block_in_cf_node(block, node)
      100:      164:  729:            init_loop_block(block, state, true);
       50:       82:  730:         break;
        -:        -:  731:
        -:        -:  732:      case nir_cf_node_loop:
    #####:      128:  733:         nir_foreach_block_in_cf_node(block, node) {
    #####:      112:  734:            init_loop_block(block, state, true);
        -:        -:  735:         }
    #####:       16:  736:         break;
        -:        -:  737:
        -:        -:  738:      case nir_cf_node_function:
    #####:    #####:  739:         break;
        -:        -:  740:      }
        -:        -:  741:   }
        -:        -:  742:
        -:        -:  743:   /* Induction analysis needs invariance information so get that first */
       17:       33:  744:   compute_invariance_information(state);
        -:        -:  745:
        -:        -:  746:   /* We have invariance information so try to find induction variables */
       17:       33:  747:   if (!compute_induction_information(state))
    #####:       16:  748:      return;
        -:        -:  749:
        -:        -:  750:   /* Try to find all simple terminators of the loop. If we can't find any,
        -:        -:  751:    * or we find possible terminators that have side effects then bail.
        -:        -:  752:    */
       17:       17:  753:   if (!find_loop_terminators(state)) {
    #####:       32:  754:      list_for_each_entry_safe(nir_loop_terminator, terminator,
        -:        -:  755:                               &state->loop->info->loop_terminator_list,
        -:        -:  756:                               loop_terminator_link) {
    #####:       16:  757:         list_del(&terminator->loop_terminator_link);
    #####:       16:  758:         ralloc_free(terminator);
        -:        -:  759:      }
    #####:       16:  760:      return;
        -:        -:  761:   }
        -:        -:  762:
        -:        -:  763:   /* Run through each of the terminators and try to compute a trip-count */
       17:        1:  764:   find_trip_count(state);
        -:        -:  765:
       17:        1:  766:   nir_shader *ns = impl->function->shader;
      134:        6:  767:   foreach_list_typed_safe(nir_cf_node, node, node, &state->loop->body) {
      117:        5:  768:      if (node->type == nir_cf_node_block) {
       67:        3:  769:         if (force_unroll_heuristics(state, ns, nir_cf_node_as_block(node)))
    #####:    #####:  770:            break;
        -:        -:  771:      } else {
      150:        6:  772:         nir_foreach_block_in_cf_node(block, node) {
      100:        4:  773:            if (force_unroll_heuristics(state, ns, block))
    #####:    #####:  774:               break;
        -:        -:  775:         }
        -:        -:  776:      }
        -:        -:  777:   }
        -:        -:  778:}
        -:        -:  779:
        -:        -:  780:static loop_info_state *
       17:       33:  781:initialize_loop_info_state(nir_loop *loop, void *mem_ctx,
        -:        -:  782:                           nir_function_impl *impl)
        -:        -:  783:{
       17:       33:  784:   loop_info_state *state = rzalloc(mem_ctx, loop_info_state);
       17:       33:  785:   state->loop_vars = rzalloc_array(mem_ctx, nir_loop_variable,
        -:        -:  786:                                    impl->ssa_alloc);
       17:       33:  787:   state->loop = loop;
        -:        -:  788:
       17:       33:  789:   list_inithead(&state->process_list);
        -:        -:  790:
       17:       33:  791:   if (loop->info)
       12:       24:  792:     ralloc_free(loop->info);
        -:        -:  793:
       17:       33:  794:   loop->info = rzalloc(loop, nir_loop_info);
        -:        -:  795:
       17:       33:  796:   list_inithead(&loop->info->loop_terminator_list);
        -:        -:  797:
       17:       33:  798:   return state;
        -:        -:  799:}
        -:        -:  800:
        -:        -:  801:static void
      356:      532:  802:process_loops(nir_cf_node *cf_node, nir_variable_mode indirect_mask)
        -:        -:  803:{
      356:      532:  804:   switch (cf_node->type) {
        -:        -:  805:   case nir_cf_node_block:
      268:      396:  806:      return;
        -:        -:  807:   case nir_cf_node_if: {
       71:      103:  808:      nir_if *if_stmt = nir_cf_node_as_if(cf_node);
      142:      206:  809:      foreach_list_typed(nir_cf_node, nested_node, node, &if_stmt->then_list)
       71:      103:  810:         process_loops(nested_node, indirect_mask);
      142:      206:  811:      foreach_list_typed(nir_cf_node, nested_node, node, &if_stmt->else_list)
       71:      103:  812:         process_loops(nested_node, indirect_mask);
       71:      103:  813:      return;
        -:        -:  814:   }
        -:        -:  815:   case nir_cf_node_loop: {
       17:       33:  816:      nir_loop *loop = nir_cf_node_as_loop(cf_node);
      134:      262:  817:      foreach_list_typed(nir_cf_node, nested_node, node, &loop->body)
      117:      229:  818:         process_loops(nested_node, indirect_mask);
       17:       33:  819:      break;
        -:        -:  820:   }
        -:        -:  821:   default:
    #####:    #####:  822:      unreachable("unknown cf node type");
        -:        -:  823:   }
        -:        -:  824:
       17:       33:  825:   nir_loop *loop = nir_cf_node_as_loop(cf_node);
       17:       33:  826:   nir_function_impl *impl = nir_cf_node_get_function(cf_node);
       17:       33:  827:   void *mem_ctx = ralloc_context(NULL);
        -:        -:  828:
       17:       33:  829:   loop_info_state *state = initialize_loop_info_state(loop, mem_ctx, impl);
       17:       33:  830:   state->indirect_mask = indirect_mask;
        -:        -:  831:
       17:       33:  832:   get_loop_info(state, impl);
        -:        -:  833:
       17:       33:  834:   ralloc_free(mem_ctx);
        -:        -:  835:}
        -:        -:  836:
        -:        -:  837:void
       21:       21:  838:nir_loop_analyze_impl(nir_function_impl *impl,
        -:        -:  839:                      nir_variable_mode indirect_mask)
        -:        -:  840:{
       21:       21:  841:   nir_index_ssa_defs(impl);
      118:      118:  842:   foreach_list_typed(nir_cf_node, node, node, &impl->body)
       97:       97:  843:      process_loops(node, indirect_mask);
       21:       21:  844:}

src/compiler/nir_lower_64bit_packing.c.gcov

        -:        -:    0:Source:nir/nir_lower_64bit_packing.c
        -:        -:    0:Graph:nir/.libs/nir_lower_64bit_packing.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_64bit_packing.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#include "nir.h"
        -:        -:   26:#include "nir_builder.h"
        -:        -:   27:
        -:        -:   28:/*
        -:        -:   29: * lowers:
        -:        -:   30: *
        -:        -:   31: * packDouble2x32(foo) -> packDouble2x32Split(foo.x, foo.y)
        -:        -:   32: * unpackDouble2x32(foo) -> vec2(unpackDouble2x32_x(foo), unpackDouble2x32_y(foo))
        -:        -:   33: * packInt2x32(foo) -> packInt2x32Split(foo.x, foo.y)
        -:        -:   34: * unpackInt2x32(foo) -> vec2(unpackInt2x32_x(foo), unpackInt2x32_y(foo))
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:static nir_ssa_def *
    #####:    #####:   38:lower_pack_64(nir_builder *b, nir_ssa_def *src)
        -:        -:   39:{
    #####:    #####:   40:   return nir_pack_64_2x32_split(b, nir_channel(b, src, 0),
        -:        -:   41:                                    nir_channel(b, src, 1));
        -:        -:   42:}
        -:        -:   43:
        -:        -:   44:static nir_ssa_def *
    #####:    #####:   45:lower_unpack_64(nir_builder *b, nir_ssa_def *src)
        -:        -:   46:{
    #####:    #####:   47:   return nir_vec2(b, nir_unpack_64_2x32_split_x(b, src),
        -:        -:   48:                      nir_unpack_64_2x32_split_y(b, src));
        -:        -:   49:}
        -:        -:   50:
        -:        -:   51:static bool
       27:       27:   52:lower_64bit_pack_impl(nir_function_impl *impl)
        -:        -:   53:{
        -:        -:   54:   nir_builder b;
       27:       27:   55:   nir_builder_init(&b, impl);
       27:       27:   56:   bool progress = false;
        -:        -:   57:
      302:      430:   58:   nir_foreach_block(block, impl) {
     1525:     1779:   59:      nir_foreach_instr_safe(instr, block) {
     1250:     1376:   60:         if (instr->type != nir_instr_type_alu)
      544:      652:   61:            continue;
        -:        -:   62:
      706:      724:   63:         nir_alu_instr *alu_instr = (nir_alu_instr *) instr;
        -:        -:   64:
     1412:     1448:   65:         if (alu_instr->op != nir_op_pack_64_2x32 &&
      706:      724:   66:             alu_instr->op != nir_op_unpack_64_2x32)
      706:      724:   67:            continue;
        -:        -:   68:
    #####:    #####:   69:         b.cursor = nir_before_instr(&alu_instr->instr);
        -:        -:   70:
    #####:    #####:   71:         nir_ssa_def *src = nir_ssa_for_alu_src(&b, alu_instr, 0);
        -:        -:   72:         nir_ssa_def *dest;
        -:        -:   73:
    #####:    #####:   74:         switch (alu_instr->op) {
        -:        -:   75:         case nir_op_pack_64_2x32:
    #####:    #####:   76:            dest = lower_pack_64(&b, src);
    #####:    #####:   77:            break;
        -:        -:   78:         case nir_op_unpack_64_2x32:
    #####:    #####:   79:            dest = lower_unpack_64(&b, src);
    #####:    #####:   80:            break;
        -:        -:   81:         default:
    #####:    #####:   82:            unreachable("Impossible opcode");
        -:        -:   83:         }
        -:        -:   84:
    #####:    #####:   85:         nir_ssa_def_rewrite_uses(&alu_instr->dest.dest.ssa, nir_src_for_ssa(dest));
    #####:    #####:   86:         nir_instr_remove(&alu_instr->instr);
    #####:    #####:   87:         nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:   88:                                     nir_metadata_dominance);
    #####:    #####:   89:         progress = true;
        -:        -:   90:      }
        -:        -:   91:   }
        -:        -:   92:
       27:       27:   93:   return progress;
        -:        -:   94:}
        -:        -:   95:
        -:        -:   96:bool
       27:       27:   97:nir_lower_64bit_pack(nir_shader *shader)
        -:        -:   98:{
       27:       27:   99:   bool progress = false;
        -:        -:  100:
       54:       54:  101:   nir_foreach_function(function, shader) {
       27:       27:  102:      if (function->impl)
       27:       27:  103:         progress |= lower_64bit_pack_impl(function->impl);
        -:        -:  104:   }
        -:        -:  105:
       27:       27:  106:   return false;
        -:        -:  107:}

src/compiler/nir_lower_alu_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_alu_to_scalar.c
        -:        -:    0:Graph:nir/.libs/nir_lower_alu_to_scalar.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_alu_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014-2015 Broadcom
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:/** @file nir_lower_alu_to_scalar.c
        -:        -:   28: *
        -:        -:   29: * Replaces nir_alu_instr operations with more than one channel used in the
        -:        -:   30: * arguments with individual per-channel operations.
        -:        -:   31: */
        -:        -:   32:
        -:        -:   33:static void
       36:       44:   34:nir_alu_ssa_dest_init(nir_alu_instr *instr, unsigned num_components,
        -:        -:   35:                      unsigned bit_size)
        -:        -:   36:{
       36:       44:   37:   nir_ssa_dest_init(&instr->instr, &instr->dest.dest, num_components,
        -:        -:   38:                     bit_size, NULL);
       36:       44:   39:   instr->dest.write_mask = (1 << num_components) - 1;
       36:       44:   40:}
        -:        -:   41:
        -:        -:   42:static void
    #####:    #####:   43:lower_reduction(nir_alu_instr *instr, nir_op chan_op, nir_op merge_op,
        -:        -:   44:                nir_builder *builder)
        -:        -:   45:{
    #####:    #####:   46:   unsigned num_components = nir_op_infos[instr->op].input_sizes[0];
        -:        -:   47:
    #####:    #####:   48:   nir_ssa_def *last = NULL;
    #####:    #####:   49:   for (unsigned i = 0; i < num_components; i++) {
    #####:    #####:   50:      nir_alu_instr *chan = nir_alu_instr_create(builder->shader, chan_op);
    #####:    #####:   51:      nir_alu_ssa_dest_init(chan, 1, instr->dest.dest.ssa.bit_size);
    #####:    #####:   52:      nir_alu_src_copy(&chan->src[0], &instr->src[0], chan);
    #####:    #####:   53:      chan->src[0].swizzle[0] = chan->src[0].swizzle[i];
    #####:    #####:   54:      if (nir_op_infos[chan_op].num_inputs > 1) {
    #####:    #####:   55:         assert(nir_op_infos[chan_op].num_inputs == 2);
    #####:    #####:   56:         nir_alu_src_copy(&chan->src[1], &instr->src[1], chan);
    #####:    #####:   57:         chan->src[1].swizzle[0] = chan->src[1].swizzle[i];
        -:        -:   58:      }
    #####:    #####:   59:      chan->exact = instr->exact;
        -:        -:   60:
    #####:    #####:   61:      nir_builder_instr_insert(builder, &chan->instr);
        -:        -:   62:
    #####:    #####:   63:      if (i == 0) {
    #####:    #####:   64:         last = &chan->dest.dest.ssa;
        -:        -:   65:      } else {
    #####:    #####:   66:         last = nir_build_alu(builder, merge_op,
        -:        -:   67:                              last, &chan->dest.dest.ssa, NULL, NULL);
        -:        -:   68:      }
        -:        -:   69:   }
        -:        -:   70:
    #####:    #####:   71:   assert(instr->dest.write_mask == 1);
    #####:    #####:   72:   nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(last));
    #####:    #####:   73:   nir_instr_remove(&instr->instr);
    #####:    #####:   74:}
        -:        -:   75:
        -:        -:   76:static bool
      917:      962:   77:lower_alu_instr_scalar(nir_alu_instr *instr, nir_builder *b)
        -:        -:   78:{
      917:      962:   79:   unsigned num_src = nir_op_infos[instr->op].num_inputs;
        -:        -:   80:   unsigned i, chan;
        -:        -:   81:
      917:      962:   82:   assert(instr->dest.dest.is_ssa);
      917:      962:   83:   assert(instr->dest.write_mask != 0);
        -:        -:   84:
      917:      962:   85:   b->cursor = nir_before_instr(&instr->instr);
      917:      962:   86:   b->exact = instr->exact;
        -:        -:   87:
        -:        -:   88:#define LOWER_REDUCTION(name, chan, merge) \
        -:        -:   89:   case name##2: \
        -:        -:   90:   case name##3: \
        -:        -:   91:   case name##4: \
        -:        -:   92:      lower_reduction(instr, chan, merge, b); \
        -:        -:   93:      return true;
        -:        -:   94:
      917:      962:   95:   switch (instr->op) {
        -:        -:   96:   case nir_op_vec4:
        -:        -:   97:   case nir_op_vec3:
        -:        -:   98:   case nir_op_vec2:
        -:        -:   99:      /* We don't need to scalarize these ops, they're the ones generated to
        -:        -:  100:       * group up outputs into a value that can be SSAed.
        -:        -:  101:       */
       13:       15:  102:      return false;
        -:        -:  103:
        -:        -:  104:   case nir_op_pack_half_2x16:
    #####:    #####:  105:      if (!b->shader->options->lower_pack_half_2x16)
    #####:    #####:  106:         return false;
        -:        -:  107:
    #####:    #####:  108:      nir_ssa_def *val =
    #####:    #####:  109:         nir_pack_half_2x16_split(b, nir_channel(b, instr->src[0].src.ssa,
    #####:    #####:  110:                                                 instr->src[0].swizzle[0]),
        -:        -:  111:                                     nir_channel(b, instr->src[0].src.ssa,
    #####:    #####:  112:                                                 instr->src[0].swizzle[1]));
        -:        -:  113:
    #####:    #####:  114:      nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(val));
    #####:    #####:  115:      nir_instr_remove(&instr->instr);
    #####:    #####:  116:      return true;
        -:        -:  117:
        -:        -:  118:   case nir_op_unpack_unorm_4x8:
        -:        -:  119:   case nir_op_unpack_snorm_4x8:
        -:        -:  120:   case nir_op_unpack_unorm_2x16:
        -:        -:  121:   case nir_op_unpack_snorm_2x16:
        -:        -:  122:      /* There is no scalar version of these ops, unless we were to break it
        -:        -:  123:       * down to bitshifts and math (which is definitely not intended).
        -:        -:  124:       */
    #####:    #####:  125:      return false;
        -:        -:  126:
        -:        -:  127:   case nir_op_unpack_half_2x16: {
    #####:    #####:  128:      if (!b->shader->options->lower_unpack_half_2x16)
    #####:    #####:  129:         return false;
        -:        -:  130:
        -:        -:  131:      nir_ssa_def *comps[2];
    #####:    #####:  132:      comps[0] = nir_unpack_half_2x16_split_x(b, instr->src[0].src.ssa);
    #####:    #####:  133:      comps[1] = nir_unpack_half_2x16_split_y(b, instr->src[0].src.ssa);
    #####:    #####:  134:      nir_ssa_def *vec = nir_vec(b, comps, 2);
        -:        -:  135:
    #####:    #####:  136:      nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(vec));
    #####:    #####:  137:      nir_instr_remove(&instr->instr);
    #####:    #####:  138:      return true;
        -:        -:  139:   }
        -:        -:  140:
        -:        -:  141:   case nir_op_pack_uvec2_to_uint: {
    #####:    #####:  142:      assert(b->shader->options->lower_pack_snorm_2x16 ||
        -:        -:  143:             b->shader->options->lower_pack_unorm_2x16);
        -:        -:  144:
    #####:    #####:  145:      nir_ssa_def *word =
    #####:    #####:  146:         nir_extract_u16(b, instr->src[0].src.ssa, nir_imm_int(b, 0));
    #####:    #####:  147:      nir_ssa_def *val =
    #####:    #####:  148:         nir_ior(b, nir_ishl(b, nir_channel(b, word, 1), nir_imm_int(b, 16)),
        -:        -:  149:                                nir_channel(b, word, 0));
        -:        -:  150:
    #####:    #####:  151:      nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(val));
    #####:    #####:  152:      nir_instr_remove(&instr->instr);
    #####:    #####:  153:      break;
        -:        -:  154:   }
        -:        -:  155:
        -:        -:  156:   case nir_op_pack_uvec4_to_uint: {
    #####:    #####:  157:      assert(b->shader->options->lower_pack_snorm_4x8 ||
        -:        -:  158:             b->shader->options->lower_pack_unorm_4x8);
        -:        -:  159:
    #####:    #####:  160:      nir_ssa_def *byte =
    #####:    #####:  161:         nir_extract_u8(b, instr->src[0].src.ssa, nir_imm_int(b, 0));
    #####:    #####:  162:      nir_ssa_def *val =
    #####:    #####:  163:         nir_ior(b, nir_ior(b, nir_ishl(b, nir_channel(b, byte, 3), nir_imm_int(b, 24)),
        -:        -:  164:                               nir_ishl(b, nir_channel(b, byte, 2), nir_imm_int(b, 16))),
        -:        -:  165:                    nir_ior(b, nir_ishl(b, nir_channel(b, byte, 1), nir_imm_int(b, 8)),
        -:        -:  166:                               nir_channel(b, byte, 0)));
        -:        -:  167:
    #####:    #####:  168:      nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(val));
    #####:    #####:  169:      nir_instr_remove(&instr->instr);
    #####:    #####:  170:      break;
        -:        -:  171:   }
        -:        -:  172:
        -:        -:  173:   case nir_op_fdph: {
        -:        -:  174:      nir_ssa_def *sum[4];
    #####:    #####:  175:      for (unsigned i = 0; i < 3; i++) {
    #####:    #####:  176:         sum[i] = nir_fmul(b, nir_channel(b, instr->src[0].src.ssa,
    #####:    #####:  177:                                          instr->src[0].swizzle[i]),
        -:        -:  178:                              nir_channel(b, instr->src[1].src.ssa,
    #####:    #####:  179:                                          instr->src[1].swizzle[i]));
        -:        -:  180:      }
    #####:    #####:  181:      sum[3] = nir_channel(b, instr->src[1].src.ssa, instr->src[1].swizzle[3]);
        -:        -:  182:
    #####:    #####:  183:      nir_ssa_def *val = nir_fadd(b, nir_fadd(b, sum[0], sum[1]),
        -:        -:  184:                                     nir_fadd(b, sum[2], sum[3]));
        -:        -:  185:
    #####:    #####:  186:      nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(val));
    #####:    #####:  187:      nir_instr_remove(&instr->instr);
    #####:    #####:  188:      return true;
        -:        -:  189:   }
        -:        -:  190:
        -:        -:  191:   case nir_op_unpack_64_2x32:
    #####:    #####:  192:      return false;
        -:        -:  193:
    #####:    #####:  194:      LOWER_REDUCTION(nir_op_fdot, nir_op_fmul, nir_op_fadd);
    #####:    #####:  195:      LOWER_REDUCTION(nir_op_ball_fequal, nir_op_feq, nir_op_iand);
    #####:    #####:  196:      LOWER_REDUCTION(nir_op_ball_iequal, nir_op_ieq, nir_op_iand);
    #####:    #####:  197:      LOWER_REDUCTION(nir_op_bany_fnequal, nir_op_fne, nir_op_ior);
    #####:    #####:  198:      LOWER_REDUCTION(nir_op_bany_inequal, nir_op_ine, nir_op_ior);
    #####:    #####:  199:      LOWER_REDUCTION(nir_op_fall_equal, nir_op_seq, nir_op_fand);
    #####:    #####:  200:      LOWER_REDUCTION(nir_op_fany_nequal, nir_op_sne, nir_op_for);
        -:        -:  201:
        -:        -:  202:   default:
      904:      947:  203:      break;
        -:        -:  204:   }
        -:        -:  205:
      904:      947:  206:   if (instr->dest.dest.ssa.num_components == 1)
      895:      936:  207:      return false;
        -:        -:  208:
        9:       11:  209:   unsigned num_components = instr->dest.dest.ssa.num_components;
        9:       11:  210:   nir_ssa_def *comps[] = { NULL, NULL, NULL, NULL };
        -:        -:  211:
       45:       55:  212:   for (chan = 0; chan < 4; chan++) {
       36:       44:  213:      if (!(instr->dest.write_mask & (1 << chan)))
    #####:    #####:  214:         continue;
        -:        -:  215:
       36:       44:  216:      nir_alu_instr *lower = nir_alu_instr_create(b->shader, instr->op);
       80:      104:  217:      for (i = 0; i < num_src; i++) {
        -:        -:  218:         /* We only handle same-size-as-dest (input_sizes[] == 0) or scalar
        -:        -:  219:          * args (input_sizes[] == 1).
        -:        -:  220:          */
       44:       60:  221:         assert(nir_op_infos[instr->op].input_sizes[i] < 2);
       88:      120:  222:         unsigned src_chan = (nir_op_infos[instr->op].input_sizes[i] == 1 ?
       44:       60:  223:                              0 : chan);
        -:        -:  224:
       44:       60:  225:         nir_alu_src_copy(&lower->src[i], &instr->src[i], lower);
      220:      300:  226:         for (int j = 0; j < 4; j++)
      176:      240:  227:            lower->src[i].swizzle[j] = instr->src[i].swizzle[src_chan];
        -:        -:  228:      }
        -:        -:  229:
       36:       44:  230:      nir_alu_ssa_dest_init(lower, 1, instr->dest.dest.ssa.bit_size);
       36:       44:  231:      lower->dest.saturate = instr->dest.saturate;
       36:       44:  232:      comps[chan] = &lower->dest.dest.ssa;
       36:       44:  233:      lower->exact = instr->exact;
        -:        -:  234:
       36:       44:  235:      nir_builder_instr_insert(b, &lower->instr);
        -:        -:  236:   }
        -:        -:  237:
        9:       11:  238:   nir_ssa_def *vec = nir_vec(b, comps, num_components);
        -:        -:  239:
        9:       11:  240:   nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(vec));
        -:        -:  241:
        9:       11:  242:   nir_instr_remove(&instr->instr);
        9:       11:  243:   return true;
        -:        -:  244:}
        -:        -:  245:
        -:        -:  246:static bool
       17:       17:  247:nir_lower_alu_to_scalar_impl(nir_function_impl *impl)
        -:        -:  248:{
        -:        -:  249:   nir_builder builder;
       17:       17:  250:   nir_builder_init(&builder, impl);
       17:       17:  251:   bool progress = false;
        -:        -:  252:
      335:      463:  253:   nir_foreach_block(block, impl) {
     1836:     2141:  254:      nir_foreach_instr_safe(instr, block) {
     1518:     1695:  255:         if (instr->type == nir_instr_type_alu) {
     1834:     1924:  256:            progress = lower_alu_instr_scalar(nir_instr_as_alu(instr),
      917:      962:  257:                                              &builder) || progress;
        -:        -:  258:         }
        -:        -:  259:      }
        -:        -:  260:   }
        -:        -:  261:
       17:       17:  262:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  263:                               nir_metadata_dominance);
        -:        -:  264:
       17:       17:  265:   return progress;
        -:        -:  266:}
        -:        -:  267:
        -:        -:  268:bool
       17:       17:  269:nir_lower_alu_to_scalar(nir_shader *shader)
        -:        -:  270:{
       17:       17:  271:   bool progress = false;
        -:        -:  272:
       34:       34:  273:   nir_foreach_function(function, shader) {
       17:       17:  274:      if (function->impl)
       17:       17:  275:         progress = nir_lower_alu_to_scalar_impl(function->impl) || progress;
        -:        -:  276:   }
        -:        -:  277:
       17:       17:  278:   return progress;
        -:        -:  279:}

src/compiler/nir_lower_atomics.c.gcov

        -:        -:    0:Source:nir/nir_lower_atomics.c
        -:        -:    0:Graph:nir/.libs/nir_lower_atomics.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_atomics.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "compiler/glsl/ir_uniform.h"
        -:        -:   29:#include "nir.h"
        -:        -:   30:#include "main/config.h"
        -:        -:   31:#include <assert.h>
        -:        -:   32:
        -:        -:   33:/*
        -:        -:   34: * replace atomic counter intrinsics that use a variable with intrinsics
        -:        -:   35: * that directly store the buffer index and byte offset
        -:        -:   36: */
        -:        -:   37:
        -:        -:   38:static bool
       24:       30:   39:lower_instr(nir_intrinsic_instr *instr,
        -:        -:   40:            const struct gl_shader_program *shader_program,
        -:        -:   41:            nir_shader *shader)
        -:        -:   42:{
        -:        -:   43:   nir_intrinsic_op op;
       24:       30:   44:   switch (instr->intrinsic) {
        -:        -:   45:   case nir_intrinsic_atomic_counter_read_var:
    #####:    #####:   46:      op = nir_intrinsic_atomic_counter_read;
    #####:    #####:   47:      break;
        -:        -:   48:
        -:        -:   49:   case nir_intrinsic_atomic_counter_inc_var:
    #####:    #####:   50:      op = nir_intrinsic_atomic_counter_inc;
    #####:    #####:   51:      break;
        -:        -:   52:
        -:        -:   53:   case nir_intrinsic_atomic_counter_dec_var:
    #####:    #####:   54:      op = nir_intrinsic_atomic_counter_dec;
    #####:    #####:   55:      break;
        -:        -:   56:
        -:        -:   57:   case nir_intrinsic_atomic_counter_add_var:
    #####:    #####:   58:      op = nir_intrinsic_atomic_counter_add;
    #####:    #####:   59:      break;
        -:        -:   60:
        -:        -:   61:   case nir_intrinsic_atomic_counter_min_var:
    #####:    #####:   62:      op = nir_intrinsic_atomic_counter_min;
    #####:    #####:   63:      break;
        -:        -:   64:
        -:        -:   65:   case nir_intrinsic_atomic_counter_max_var:
    #####:    #####:   66:      op = nir_intrinsic_atomic_counter_max;
    #####:    #####:   67:      break;
        -:        -:   68:
        -:        -:   69:   case nir_intrinsic_atomic_counter_and_var:
    #####:    #####:   70:      op = nir_intrinsic_atomic_counter_and;
    #####:    #####:   71:      break;
        -:        -:   72:
        -:        -:   73:   case nir_intrinsic_atomic_counter_or_var:
    #####:    #####:   74:      op = nir_intrinsic_atomic_counter_or;
    #####:    #####:   75:      break;
        -:        -:   76:
        -:        -:   77:   case nir_intrinsic_atomic_counter_xor_var:
    #####:    #####:   78:      op = nir_intrinsic_atomic_counter_xor;
    #####:    #####:   79:      break;
        -:        -:   80:
        -:        -:   81:   case nir_intrinsic_atomic_counter_exchange_var:
    #####:    #####:   82:      op = nir_intrinsic_atomic_counter_exchange;
    #####:    #####:   83:      break;
        -:        -:   84:
        -:        -:   85:   case nir_intrinsic_atomic_counter_comp_swap_var:
    #####:    #####:   86:      op = nir_intrinsic_atomic_counter_comp_swap;
    #####:    #####:   87:      break;
        -:        -:   88:
        -:        -:   89:   default:
       24:       30:   90:      return false;
        -:        -:   91:   }
        -:        -:   92:
    #####:    #####:   93:   if (instr->variables[0]->var->data.mode != nir_var_uniform &&
    #####:    #####:   94:       instr->variables[0]->var->data.mode != nir_var_shader_storage &&
    #####:    #####:   95:       instr->variables[0]->var->data.mode != nir_var_shared)
    #####:    #####:   96:      return false; /* atomics passed as function arguments can't be lowered */
        -:        -:   97:
    #####:    #####:   98:   void *mem_ctx = ralloc_parent(instr);
    #####:    #####:   99:   unsigned uniform_loc = instr->variables[0]->var->data.location;
        -:        -:  100:
    #####:    #####:  101:   nir_intrinsic_instr *new_instr = nir_intrinsic_instr_create(mem_ctx, op);
    #####:    #####:  102:   nir_intrinsic_set_base(new_instr,
    #####:    #####:  103:      shader_program->data->UniformStorage[uniform_loc].opaque[shader->stage].index);
        -:        -:  104:
    #####:    #####:  105:   nir_load_const_instr *offset_const =
        -:        -:  106:      nir_load_const_instr_create(mem_ctx, 1, 32);
    #####:    #####:  107:   offset_const->value.u32[0] = instr->variables[0]->var->data.offset;
        -:        -:  108:
    #####:    #####:  109:   nir_instr_insert_before(&instr->instr, &offset_const->instr);
        -:        -:  110:
    #####:    #####:  111:   nir_ssa_def *offset_def = &offset_const->def;
        -:        -:  112:
    #####:    #####:  113:   nir_deref *tail = &instr->variables[0]->deref;
    #####:    #####:  114:   while (tail->child != NULL) {
    #####:    #####:  115:      nir_deref_array *deref_array = nir_deref_as_array(tail->child);
    #####:    #####:  116:      tail = tail->child;
        -:        -:  117:
    #####:    #####:  118:      unsigned child_array_elements = tail->child != NULL ?
    #####:    #####:  119:         glsl_get_aoa_size(tail->type) : 1;
        -:        -:  120:
    #####:    #####:  121:      offset_const->value.u32[0] += deref_array->base_offset *
    #####:    #####:  122:         child_array_elements * ATOMIC_COUNTER_SIZE;
        -:        -:  123:
    #####:    #####:  124:      if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  125:         nir_load_const_instr *atomic_counter_size =
        -:        -:  126:            nir_load_const_instr_create(mem_ctx, 1, 32);
    #####:    #####:  127:         atomic_counter_size->value.u32[0] = child_array_elements * ATOMIC_COUNTER_SIZE;
    #####:    #####:  128:         nir_instr_insert_before(&instr->instr, &atomic_counter_size->instr);
        -:        -:  129:
    #####:    #####:  130:         nir_alu_instr *mul = nir_alu_instr_create(mem_ctx, nir_op_imul);
    #####:    #####:  131:         nir_ssa_dest_init(&mul->instr, &mul->dest.dest, 1, 32, NULL);
    #####:    #####:  132:         mul->dest.write_mask = 0x1;
    #####:    #####:  133:         nir_src_copy(&mul->src[0].src, &deref_array->indirect, mul);
    #####:    #####:  134:         mul->src[1].src.is_ssa = true;
    #####:    #####:  135:         mul->src[1].src.ssa = &atomic_counter_size->def;
    #####:    #####:  136:         nir_instr_insert_before(&instr->instr, &mul->instr);
        -:        -:  137:
    #####:    #####:  138:         nir_alu_instr *add = nir_alu_instr_create(mem_ctx, nir_op_iadd);
    #####:    #####:  139:         nir_ssa_dest_init(&add->instr, &add->dest.dest, 1, 32, NULL);
    #####:    #####:  140:         add->dest.write_mask = 0x1;
    #####:    #####:  141:         add->src[0].src.is_ssa = true;
    #####:    #####:  142:         add->src[0].src.ssa = &mul->dest.dest.ssa;
    #####:    #####:  143:         add->src[1].src.is_ssa = true;
    #####:    #####:  144:         add->src[1].src.ssa = offset_def;
    #####:    #####:  145:         nir_instr_insert_before(&instr->instr, &add->instr);
        -:        -:  146:
    #####:    #####:  147:         offset_def = &add->dest.dest.ssa;
        -:        -:  148:      }
        -:        -:  149:   }
        -:        -:  150:
    #####:    #####:  151:   new_instr->src[0].is_ssa = true;
    #####:    #####:  152:   new_instr->src[0].ssa = offset_def;
        -:        -:  153:
        -:        -:  154:   /* Copy the other sources, if any, from the original instruction to the new
        -:        -:  155:    * instruction.
        -:        -:  156:    */
    #####:    #####:  157:   for (unsigned i = 0; i < nir_intrinsic_infos[instr->intrinsic].num_srcs; i++)
    #####:    #####:  158:      new_instr->src[i + 1] = instr->src[i];
        -:        -:  159:
    #####:    #####:  160:   if (instr->dest.is_ssa) {
    #####:    #####:  161:      nir_ssa_dest_init(&new_instr->instr, &new_instr->dest,
    #####:    #####:  162:                        instr->dest.ssa.num_components, 32, NULL);
    #####:    #####:  163:      nir_ssa_def_rewrite_uses(&instr->dest.ssa,
        -:        -:  164:                               nir_src_for_ssa(&new_instr->dest.ssa));
        -:        -:  165:   } else {
    #####:    #####:  166:      nir_dest_copy(&new_instr->dest, &instr->dest, mem_ctx);
        -:        -:  167:   }
        -:        -:  168:
    #####:    #####:  169:   nir_instr_insert_before(&instr->instr, &new_instr->instr);
    #####:    #####:  170:   nir_instr_remove(&instr->instr);
        -:        -:  171:
    #####:    #####:  172:   return true;
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:bool
        3:        3:  176:nir_lower_atomics(nir_shader *shader,
        -:        -:  177:                  const struct gl_shader_program *shader_program)
        -:        -:  178:{
        3:        3:  179:   bool progress = false;
        -:        -:  180:
        6:        6:  181:   nir_foreach_function(function, shader) {
        3:        3:  182:      if (function->impl) {
       37:       53:  183:         nir_foreach_block(block, function->impl) {
      199:      259:  184:            nir_foreach_instr_safe(instr, block) {
      165:      209:  185:               if (instr->type == nir_instr_type_intrinsic)
       24:       30:  186:                  progress |= lower_instr(nir_instr_as_intrinsic(instr),
        -:        -:  187:                                          shader_program, shader);
        -:        -:  188:            }
        -:        -:  189:         }
        -:        -:  190:
        3:        3:  191:         nir_metadata_preserve(function->impl, nir_metadata_block_index |
        -:        -:  192:                                               nir_metadata_dominance);
        -:        -:  193:      }
        -:        -:  194:   }
        -:        -:  195:
        3:        3:  196:   return progress;
        -:        -:  197:}

src/compiler/nir_lower_constant_initializers.c.gcov

        -:        -:    0:Source:nir/nir_lower_constant_initializers.c
        -:        -:    0:Graph:nir/.libs/nir_lower_constant_initializers.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_constant_initializers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:static bool
       37:       39:   28:deref_apply_constant_initializer(nir_deref_var *deref, void *state)
        -:        -:   29:{
       37:       39:   30:   struct nir_builder *b = state;
        -:        -:   31:
       37:       39:   32:   nir_load_const_instr *initializer =
       37:       39:   33:      nir_deref_get_const_initializer_load(b->shader, deref);
       37:       39:   34:   nir_builder_instr_insert(b, &initializer->instr);
        -:        -:   35:
       37:       39:   36:   nir_store_deref_var(b, deref, &initializer->def, 0xf);
        -:        -:   37:
       37:       39:   38:   return true;
        -:        -:   39:}
        -:        -:   40:
        -:        -:   41:static bool
       12:       12:   42:lower_const_initializer(struct nir_builder *b, struct exec_list *var_list)
        -:        -:   43:{
       12:       12:   44:   bool progress = false;
        -:        -:   45:
       12:       12:   46:   b->cursor = nir_before_cf_list(&b->impl->body);
        -:        -:   47:
       74:       76:   48:   nir_foreach_variable(var, var_list) {
       62:       64:   49:      if (!var->constant_initializer)
       25:       25:   50:         continue;
        -:        -:   51:
       37:       39:   52:      progress = true;
        -:        -:   53:
        -:        -:   54:      nir_deref_var deref;
       37:       39:   55:      deref.deref.deref_type = nir_deref_type_var,
       37:       39:   56:      deref.deref.child = NULL;
       37:       39:   57:      deref.deref.type = var->type,
       37:       39:   58:      deref.var = var;
        -:        -:   59:
       37:       39:   60:      nir_deref_foreach_leaf(&deref, deref_apply_constant_initializer, b);
        -:        -:   61:
       37:       39:   62:      var->constant_initializer = NULL;
        -:        -:   63:   }
        -:        -:   64:
       12:       12:   65:   return progress;
        -:        -:   66:}
        -:        -:   67:
        -:        -:   68:bool
        3:        3:   69:nir_lower_constant_initializers(nir_shader *shader, nir_variable_mode modes)
        -:        -:   70:{
        3:        3:   71:   bool progress = false;
        -:        -:   72:
        -:        -:   73:   nir_builder builder;
        3:        3:   74:   if (modes & ~nir_var_local)
        3:        3:   75:      nir_builder_init(&builder, nir_shader_get_entrypoint(shader));
        -:        -:   76:
        3:        3:   77:   if (modes & nir_var_shader_out)
        3:        3:   78:      progress |= lower_const_initializer(&builder, &shader->outputs);
        -:        -:   79:
        3:        3:   80:   if (modes & nir_var_global)
        3:        3:   81:      progress |= lower_const_initializer(&builder, &shader->globals);
        -:        -:   82:
        3:        3:   83:   if (modes & nir_var_system_value)
        3:        3:   84:      progress |= lower_const_initializer(&builder, &shader->system_values);
        -:        -:   85:
        3:        3:   86:   if (progress) {
    #####:    #####:   87:      nir_foreach_function(function, shader) {
    #####:    #####:   88:         if (function->impl) {
    #####:    #####:   89:            nir_metadata_preserve(function->impl, nir_metadata_block_index |
        -:        -:   90:                                                  nir_metadata_dominance |
        -:        -:   91:                                                  nir_metadata_live_ssa_defs);
        -:        -:   92:         }
        -:        -:   93:      }
        -:        -:   94:   }
        -:        -:   95:
        3:        3:   96:   if (modes & nir_var_local) {
        6:        6:   97:      nir_foreach_function(function, shader) {
        3:        3:   98:         if (!function->impl)
    #####:    #####:   99:            continue;
        -:        -:  100:
        3:        3:  101:         nir_builder_init(&builder, function->impl);
        3:        3:  102:         if (lower_const_initializer(&builder, &function->impl->locals)) {
        2:        2:  103:            nir_metadata_preserve(function->impl, nir_metadata_block_index |
        -:        -:  104:                                                  nir_metadata_dominance |
        -:        -:  105:                                                  nir_metadata_live_ssa_defs);
        2:        2:  106:            progress = true;
        -:        -:  107:         }
        -:        -:  108:      }
        -:        -:  109:   }
        -:        -:  110:
        3:        3:  111:   return progress;
        -:        -:  112:}

src/compiler/nir_lower_double_ops.c.gcov

        -:        -:    0:Source:nir/nir_lower_double_ops.c
        -:        -:    0:Graph:nir/.libs/nir_lower_double_ops.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_double_ops.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#include "nir.h"
        -:        -:   26:#include "nir_builder.h"
        -:        -:   27:#include "c99_math.h"
        -:        -:   28:
        -:        -:   29:/*
        -:        -:   30: * Lowers some unsupported double operations, using only:
        -:        -:   31: *
        -:        -:   32: * - pack/unpackDouble2x32
        -:        -:   33: * - conversion to/from single-precision
        -:        -:   34: * - double add, mul, and fma
        -:        -:   35: * - conditional select
        -:        -:   36: * - 32-bit integer and floating point arithmetic
        -:        -:   37: */
        -:        -:   38:
        -:        -:   39:/* Creates a double with the exponent bits set to a given integer value */
        -:        -:   40:static nir_ssa_def *
    #####:    #####:   41:set_exponent(nir_builder *b, nir_ssa_def *src, nir_ssa_def *exp)
        -:        -:   42:{
        -:        -:   43:   /* Split into bits 0-31 and 32-63 */
    #####:    #####:   44:   nir_ssa_def *lo = nir_unpack_64_2x32_split_x(b, src);
    #####:    #####:   45:   nir_ssa_def *hi = nir_unpack_64_2x32_split_y(b, src);
        -:        -:   46:
        -:        -:   47:   /* The exponent is bits 52-62, or 20-30 of the high word, so set the exponent
        -:        -:   48:    * to 1023
        -:        -:   49:    */
    #####:    #####:   50:   nir_ssa_def *new_hi = nir_bfi(b, nir_imm_int(b, 0x7ff00000), exp, hi);
        -:        -:   51:   /* recombine */
    #####:    #####:   52:   return nir_pack_64_2x32_split(b, lo, new_hi);
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:static nir_ssa_def *
    #####:    #####:   56:get_exponent(nir_builder *b, nir_ssa_def *src)
        -:        -:   57:{
        -:        -:   58:   /* get bits 32-63 */
    #####:    #####:   59:   nir_ssa_def *hi = nir_unpack_64_2x32_split_y(b, src);
        -:        -:   60:
        -:        -:   61:   /* extract bits 20-30 of the high word */
    #####:    #####:   62:   return nir_ubitfield_extract(b, hi, nir_imm_int(b, 20), nir_imm_int(b, 11));
        -:        -:   63:}
        -:        -:   64:
        -:        -:   65:/* Return infinity with the sign of the given source which is +/-0 */
        -:        -:   66:
        -:        -:   67:static nir_ssa_def *
    #####:    #####:   68:get_signed_inf(nir_builder *b, nir_ssa_def *zero)
        -:        -:   69:{
    #####:    #####:   70:   nir_ssa_def *zero_hi = nir_unpack_64_2x32_split_y(b, zero);
        -:        -:   71:
        -:        -:   72:   /* The bit pattern for infinity is 0x7ff0000000000000, where the sign bit
        -:        -:   73:    * is the highest bit. Only the sign bit can be non-zero in the passed in
        -:        -:   74:    * source. So we essentially need to OR the infinity and the zero, except
        -:        -:   75:    * the low 32 bits are always 0 so we can construct the correct high 32
        -:        -:   76:    * bits and then pack it together with zero low 32 bits.
        -:        -:   77:    */
    #####:    #####:   78:   nir_ssa_def *inf_hi = nir_ior(b, nir_imm_int(b, 0x7ff00000), zero_hi);
    #####:    #####:   79:   return nir_pack_64_2x32_split(b, nir_imm_int(b, 0), inf_hi);
        -:        -:   80:}
        -:        -:   81:
        -:        -:   82:/*
        -:        -:   83: * Generates the correctly-signed infinity if the source was zero, and flushes
        -:        -:   84: * the result to 0 if the source was infinity or the calculated exponent was
        -:        -:   85: * too small to be representable.
        -:        -:   86: */
        -:        -:   87:
        -:        -:   88:static nir_ssa_def *
    #####:    #####:   89:fix_inv_result(nir_builder *b, nir_ssa_def *res, nir_ssa_def *src,
        -:        -:   90:               nir_ssa_def *exp)
        -:        -:   91:{
        -:        -:   92:   /* If the exponent is too small or the original input was infinity/NaN,
        -:        -:   93:    * force the result to 0 (flush denorms) to avoid the work of handling
        -:        -:   94:    * denorms properly. Note that this doesn't preserve positive/negative
        -:        -:   95:    * zeros, but GLSL doesn't require it.
        -:        -:   96:    */
    #####:    #####:   97:   res = nir_bcsel(b, nir_ior(b, nir_ige(b, nir_imm_int(b, 0), exp),
        -:        -:   98:                              nir_feq(b, nir_fabs(b, src),
        -:        -:   99:                                      nir_imm_double(b, INFINITY))),
        -:        -:  100:                   nir_imm_double(b, 0.0f), res);
        -:        -:  101:
        -:        -:  102:   /* If the original input was 0, generate the correctly-signed infinity */
    #####:    #####:  103:   res = nir_bcsel(b, nir_fne(b, src, nir_imm_double(b, 0.0f)),
        -:        -:  104:                   res, get_signed_inf(b, src));
        -:        -:  105:
    #####:    #####:  106:   return res;
        -:        -:  107:
        -:        -:  108:}
        -:        -:  109:
        -:        -:  110:static nir_ssa_def *
    #####:    #####:  111:lower_rcp(nir_builder *b, nir_ssa_def *src)
        -:        -:  112:{
        -:        -:  113:   /* normalize the input to avoid range issues */
    #####:    #####:  114:   nir_ssa_def *src_norm = set_exponent(b, src, nir_imm_int(b, 1023));
        -:        -:  115:
        -:        -:  116:   /* cast to float, do an rcp, and then cast back to get an approximate
        -:        -:  117:    * result
        -:        -:  118:    */
    #####:    #####:  119:   nir_ssa_def *ra = nir_f2f64(b, nir_frcp(b, nir_f2f32(b, src_norm)));
        -:        -:  120:
        -:        -:  121:   /* Fixup the exponent of the result - note that we check if this is too
        -:        -:  122:    * small below.
        -:        -:  123:    */
    #####:    #####:  124:   nir_ssa_def *new_exp = nir_isub(b, get_exponent(b, ra),
        -:        -:  125:                                   nir_isub(b, get_exponent(b, src),
        -:        -:  126:                                            nir_imm_int(b, 1023)));
        -:        -:  127:
    #####:    #####:  128:   ra = set_exponent(b, ra, new_exp);
        -:        -:  129:
        -:        -:  130:   /* Do a few Newton-Raphson steps to improve precision.
        -:        -:  131:    *
        -:        -:  132:    * Each step doubles the precision, and we started off with around 24 bits,
        -:        -:  133:    * so we only need to do 2 steps to get to full precision. The step is:
        -:        -:  134:    *
        -:        -:  135:    * x_new = x * (2 - x*src)
        -:        -:  136:    *
        -:        -:  137:    * But we can re-arrange this to improve precision by using another fused
        -:        -:  138:    * multiply-add:
        -:        -:  139:    *
        -:        -:  140:    * x_new = x + x * (1 - x*src)
        -:        -:  141:    *
        -:        -:  142:    * See https://en.wikipedia.org/wiki/Division_algorithm for more details.
        -:        -:  143:    */
        -:        -:  144:
    #####:    #####:  145:   ra = nir_ffma(b, ra, nir_ffma(b, ra, src, nir_imm_double(b, -1)), ra);
    #####:    #####:  146:   ra = nir_ffma(b, ra, nir_ffma(b, ra, src, nir_imm_double(b, -1)), ra);
        -:        -:  147:
    #####:    #####:  148:   return fix_inv_result(b, ra, src, new_exp);
        -:        -:  149:}
        -:        -:  150:
        -:        -:  151:static nir_ssa_def *
    #####:    #####:  152:lower_sqrt_rsq(nir_builder *b, nir_ssa_def *src, bool sqrt)
        -:        -:  153:{
        -:        -:  154:   /* We want to compute:
        -:        -:  155:    *
        -:        -:  156:    * 1/sqrt(m * 2^e)
        -:        -:  157:    *
        -:        -:  158:    * When the exponent is even, this is equivalent to:
        -:        -:  159:    *
        -:        -:  160:    * 1/sqrt(m) * 2^(-e/2)
        -:        -:  161:    *
        -:        -:  162:    * and then the exponent is odd, this is equal to:
        -:        -:  163:    *
        -:        -:  164:    * 1/sqrt(m * 2) * 2^(-(e - 1)/2)
        -:        -:  165:    *
        -:        -:  166:    * where the m * 2 is absorbed into the exponent. So we want the exponent
        -:        -:  167:    * inside the square root to be 1 if e is odd and 0 if e is even, and we
        -:        -:  168:    * want to subtract off e/2 from the final exponent, rounded to negative
        -:        -:  169:    * infinity. We can do the former by first computing the unbiased exponent,
        -:        -:  170:    * and then AND'ing it with 1 to get 0 or 1, and we can do the latter by
        -:        -:  171:    * shifting right by 1.
        -:        -:  172:    */
        -:        -:  173:
    #####:    #####:  174:   nir_ssa_def *unbiased_exp = nir_isub(b, get_exponent(b, src),
        -:        -:  175:                                        nir_imm_int(b, 1023));
    #####:    #####:  176:   nir_ssa_def *even = nir_iand(b, unbiased_exp, nir_imm_int(b, 1));
    #####:    #####:  177:   nir_ssa_def *half = nir_ishr(b, unbiased_exp, nir_imm_int(b, 1));
        -:        -:  178:
    #####:    #####:  179:   nir_ssa_def *src_norm = set_exponent(b, src,
        -:        -:  180:                                        nir_iadd(b, nir_imm_int(b, 1023),
        -:        -:  181:                                                 even));
        -:        -:  182:
    #####:    #####:  183:   nir_ssa_def *ra = nir_f2f64(b, nir_frsq(b, nir_f2f32(b, src_norm)));
    #####:    #####:  184:   nir_ssa_def *new_exp = nir_isub(b, get_exponent(b, ra), half);
    #####:    #####:  185:   ra = set_exponent(b, ra, new_exp);
        -:        -:  186:
        -:        -:  187:   /*
        -:        -:  188:    * The following implements an iterative algorithm that's very similar
        -:        -:  189:    * between sqrt and rsqrt. We start with an iteration of Goldschmit's
        -:        -:  190:    * algorithm, which looks like:
        -:        -:  191:    *
        -:        -:  192:    * a = the source
        -:        -:  193:    * y_0 = initial (single-precision) rsqrt estimate
        -:        -:  194:    *
        -:        -:  195:    * h_0 = .5 * y_0
        -:        -:  196:    * g_0 = a * y_0
        -:        -:  197:    * r_0 = .5 - h_0 * g_0
        -:        -:  198:    * g_1 = g_0 * r_0 + g_0
        -:        -:  199:    * h_1 = h_0 * r_0 + h_0
        -:        -:  200:    *
        -:        -:  201:    * Now g_1 ~= sqrt(a), and h_1 ~= 1/(2 * sqrt(a)). We could continue
        -:        -:  202:    * applying another round of Goldschmit, but since we would never refer
        -:        -:  203:    * back to a (the original source), we would add too much rounding error.
        -:        -:  204:    * So instead, we do one last round of Newton-Raphson, which has better
        -:        -:  205:    * rounding characteristics, to get the final rounding correct. This is
        -:        -:  206:    * split into two cases:
        -:        -:  207:    *
        -:        -:  208:    * 1. sqrt
        -:        -:  209:    *
        -:        -:  210:    * Normally, doing a round of Newton-Raphson for sqrt involves taking a
        -:        -:  211:    * reciprocal of the original estimate, which is slow since it isn't
        -:        -:  212:    * supported in HW. But we can take advantage of the fact that we already
        -:        -:  213:    * computed a good estimate of 1/(2 * g_1) by rearranging it like so:
        -:        -:  214:    *
        -:        -:  215:    * g_2 = .5 * (g_1 + a / g_1)
        -:        -:  216:    *     = g_1 + .5 * (a / g_1 - g_1)
        -:        -:  217:    *     = g_1 + (.5 / g_1) * (a - g_1^2)
        -:        -:  218:    *     = g_1 + h_1 * (a - g_1^2)
        -:        -:  219:    *
        -:        -:  220:    * The second term represents the error, and by splitting it out we can get
        -:        -:  221:    * better precision by computing it as part of a fused multiply-add. Since
        -:        -:  222:    * both Newton-Raphson and Goldschmit approximately double the precision of
        -:        -:  223:    * the result, these two steps should be enough.
        -:        -:  224:    *
        -:        -:  225:    * 2. rsqrt
        -:        -:  226:    *
        -:        -:  227:    * First off, note that the first round of the Goldschmit algorithm is
        -:        -:  228:    * really just a Newton-Raphson step in disguise:
        -:        -:  229:    *
        -:        -:  230:    * h_1 = h_0 * (.5 - h_0 * g_0) + h_0
        -:        -:  231:    *     = h_0 * (1.5 - h_0 * g_0)
        -:        -:  232:    *     = h_0 * (1.5 - .5 * a * y_0^2)
        -:        -:  233:    *     = (.5 * y_0) * (1.5 - .5 * a * y_0^2)
        -:        -:  234:    *
        -:        -:  235:    * which is the standard formula multiplied by .5. Unlike in the sqrt case,
        -:        -:  236:    * we don't need the inverse to do a Newton-Raphson step; we just need h_1,
        -:        -:  237:    * so we can skip the calculation of g_1. Instead, we simply do another
        -:        -:  238:    * Newton-Raphson step:
        -:        -:  239:    *
        -:        -:  240:    * y_1 = 2 * h_1
        -:        -:  241:    * r_1 = .5 - h_1 * y_1 * a
        -:        -:  242:    * y_2 = y_1 * r_1 + y_1
        -:        -:  243:    *
        -:        -:  244:    * Where the difference from Goldschmit is that we calculate y_1 * a
        -:        -:  245:    * instead of using g_1. Doing it this way should be as fast as computing
        -:        -:  246:    * y_1 up front instead of h_1, and it lets us share the code for the
        -:        -:  247:    * initial Goldschmit step with the sqrt case.
        -:        -:  248:    *
        -:        -:  249:    * Putting it together, the computations are:
        -:        -:  250:    *
        -:        -:  251:    * h_0 = .5 * y_0
        -:        -:  252:    * g_0 = a * y_0
        -:        -:  253:    * r_0 = .5 - h_0 * g_0
        -:        -:  254:    * h_1 = h_0 * r_0 + h_0
        -:        -:  255:    * if sqrt:
        -:        -:  256:    *    g_1 = g_0 * r_0 + g_0
        -:        -:  257:    *    r_1 = a - g_1 * g_1
        -:        -:  258:    *    g_2 = h_1 * r_1 + g_1
        -:        -:  259:    * else:
        -:        -:  260:    *    y_1 = 2 * h_1
        -:        -:  261:    *    r_1 = .5 - y_1 * (h_1 * a)
        -:        -:  262:    *    y_2 = y_1 * r_1 + y_1
        -:        -:  263:    *
        -:        -:  264:    * For more on the ideas behind this, see "Software Division and Square
        -:        -:  265:    * Root Using Goldschmit's Algorithms" by Markstein and the Wikipedia page
        -:        -:  266:    * on square roots
        -:        -:  267:    * (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots).
        -:        -:  268:    */
        -:        -:  269:
    #####:    #####:  270:   nir_ssa_def *one_half = nir_imm_double(b, 0.5);
    #####:    #####:  271:   nir_ssa_def *h_0 = nir_fmul(b, one_half, ra);
    #####:    #####:  272:   nir_ssa_def *g_0 = nir_fmul(b, src, ra);
    #####:    #####:  273:   nir_ssa_def *r_0 = nir_ffma(b, nir_fneg(b, h_0), g_0, one_half);
    #####:    #####:  274:   nir_ssa_def *h_1 = nir_ffma(b, h_0, r_0, h_0);
        -:        -:  275:   nir_ssa_def *res;
    #####:    #####:  276:   if (sqrt) {
    #####:    #####:  277:      nir_ssa_def *g_1 = nir_ffma(b, g_0, r_0, g_0);
    #####:    #####:  278:      nir_ssa_def *r_1 = nir_ffma(b, nir_fneg(b, g_1), g_1, src);
    #####:    #####:  279:      res = nir_ffma(b, h_1, r_1, g_1);
        -:        -:  280:   } else {
    #####:    #####:  281:      nir_ssa_def *y_1 = nir_fmul(b, nir_imm_double(b, 2.0), h_1);
    #####:    #####:  282:      nir_ssa_def *r_1 = nir_ffma(b, nir_fneg(b, y_1), nir_fmul(b, h_1, src),
        -:        -:  283:                                  one_half);
    #####:    #####:  284:      res = nir_ffma(b, y_1, r_1, y_1);
        -:        -:  285:   }
        -:        -:  286:
    #####:    #####:  287:   if (sqrt) {
        -:        -:  288:      /* Here, the special cases we need to handle are
        -:        -:  289:       * 0 -> 0 and
        -:        -:  290:       * +inf -> +inf
        -:        -:  291:       */
    #####:    #####:  292:      res = nir_bcsel(b, nir_ior(b, nir_feq(b, src, nir_imm_double(b, 0.0)),
        -:        -:  293:                                 nir_feq(b, src, nir_imm_double(b, INFINITY))),
        -:        -:  294:                                 src, res);
        -:        -:  295:   } else {
    #####:    #####:  296:      res = fix_inv_result(b, res, src, new_exp);
        -:        -:  297:   }
        -:        -:  298:
    #####:    #####:  299:   return res;
        -:        -:  300:}
        -:        -:  301:
        -:        -:  302:static nir_ssa_def *
    #####:    #####:  303:lower_trunc(nir_builder *b, nir_ssa_def *src)
        -:        -:  304:{
    #####:    #####:  305:   nir_ssa_def *unbiased_exp = nir_isub(b, get_exponent(b, src),
        -:        -:  306:                                        nir_imm_int(b, 1023));
        -:        -:  307:
    #####:    #####:  308:   nir_ssa_def *frac_bits = nir_isub(b, nir_imm_int(b, 52), unbiased_exp);
        -:        -:  309:
        -:        -:  310:   /*
        -:        -:  311:    * Decide the operation to apply depending on the unbiased exponent:
        -:        -:  312:    *
        -:        -:  313:    * if (unbiased_exp < 0)
        -:        -:  314:    *    return 0
        -:        -:  315:    * else if (unbiased_exp > 52)
        -:        -:  316:    *    return src
        -:        -:  317:    * else
        -:        -:  318:    *    return src & (~0 << frac_bits)
        -:        -:  319:    *
        -:        -:  320:    * Notice that the else branch is a 64-bit integer operation that we need
        -:        -:  321:    * to implement in terms of 32-bit integer arithmetics (at least until we
        -:        -:  322:    * support 64-bit integer arithmetics).
        -:        -:  323:    */
        -:        -:  324:
        -:        -:  325:   /* Compute "~0 << frac_bits" in terms of hi/lo 32-bit integer math */
    #####:    #####:  326:   nir_ssa_def *mask_lo =
    #####:    #####:  327:      nir_bcsel(b,
        -:        -:  328:                nir_ige(b, frac_bits, nir_imm_int(b, 32)),
        -:        -:  329:                nir_imm_int(b, 0),
        -:        -:  330:                nir_ishl(b, nir_imm_int(b, ~0), frac_bits));
        -:        -:  331:
    #####:    #####:  332:   nir_ssa_def *mask_hi =
    #####:    #####:  333:      nir_bcsel(b,
        -:        -:  334:                nir_ilt(b, frac_bits, nir_imm_int(b, 33)),
        -:        -:  335:                nir_imm_int(b, ~0),
        -:        -:  336:                nir_ishl(b,
        -:        -:  337:                         nir_imm_int(b, ~0),
        -:        -:  338:                         nir_isub(b, frac_bits, nir_imm_int(b, 32))));
        -:        -:  339:
    #####:    #####:  340:   nir_ssa_def *src_lo = nir_unpack_64_2x32_split_x(b, src);
    #####:    #####:  341:   nir_ssa_def *src_hi = nir_unpack_64_2x32_split_y(b, src);
        -:        -:  342:
        -:        -:  343:   return
    #####:    #####:  344:      nir_bcsel(b,
        -:        -:  345:                nir_ilt(b, unbiased_exp, nir_imm_int(b, 0)),
        -:        -:  346:                nir_imm_double(b, 0.0),
        -:        -:  347:                nir_bcsel(b, nir_ige(b, unbiased_exp, nir_imm_int(b, 53)),
        -:        -:  348:                          src,
        -:        -:  349:                          nir_pack_64_2x32_split(b,
        -:        -:  350:                                                 nir_iand(b, mask_lo, src_lo),
        -:        -:  351:                                                 nir_iand(b, mask_hi, src_hi))));
        -:        -:  352:}
        -:        -:  353:
        -:        -:  354:static nir_ssa_def *
    #####:    #####:  355:lower_floor(nir_builder *b, nir_ssa_def *src)
        -:        -:  356:{
        -:        -:  357:   /*
        -:        -:  358:    * For x >= 0, floor(x) = trunc(x)
        -:        -:  359:    * For x < 0,
        -:        -:  360:    *    - if x is integer, floor(x) = x
        -:        -:  361:    *    - otherwise, floor(x) = trunc(x) - 1
        -:        -:  362:    */
    #####:    #####:  363:   nir_ssa_def *tr = nir_ftrunc(b, src);
    #####:    #####:  364:   nir_ssa_def *positive = nir_fge(b, src, nir_imm_double(b, 0.0));
    #####:    #####:  365:   return nir_bcsel(b,
        -:        -:  366:                    nir_ior(b, positive, nir_feq(b, src, tr)),
        -:        -:  367:                    tr,
        -:        -:  368:                    nir_fsub(b, tr, nir_imm_double(b, 1.0)));
        -:        -:  369:}
        -:        -:  370:
        -:        -:  371:static nir_ssa_def *
    #####:    #####:  372:lower_ceil(nir_builder *b, nir_ssa_def *src)
        -:        -:  373:{
        -:        -:  374:   /* if x < 0,                    ceil(x) = trunc(x)
        -:        -:  375:    * else if (x - trunc(x) == 0), ceil(x) = x
        -:        -:  376:    * else,                        ceil(x) = trunc(x) + 1
        -:        -:  377:    */
    #####:    #####:  378:   nir_ssa_def *tr = nir_ftrunc(b, src);
    #####:    #####:  379:   nir_ssa_def *negative = nir_flt(b, src, nir_imm_double(b, 0.0));
    #####:    #####:  380:   return nir_bcsel(b,
        -:        -:  381:                    nir_ior(b, negative, nir_feq(b, src, tr)),
        -:        -:  382:                    tr,
        -:        -:  383:                    nir_fadd(b, tr, nir_imm_double(b, 1.0)));
        -:        -:  384:}
        -:        -:  385:
        -:        -:  386:static nir_ssa_def *
    #####:    #####:  387:lower_fract(nir_builder *b, nir_ssa_def *src)
        -:        -:  388:{
    #####:    #####:  389:   return nir_fsub(b, src, nir_ffloor(b, src));
        -:        -:  390:}
        -:        -:  391:
        -:        -:  392:static nir_ssa_def *
    #####:    #####:  393:lower_round_even(nir_builder *b, nir_ssa_def *src)
        -:        -:  394:{
        -:        -:  395:   /* If fract(src) == 0.5, then we will have to decide the rounding direction.
        -:        -:  396:    * We will do this by computing the mod(abs(src), 2) and testing if it
        -:        -:  397:    * is < 1 or not.
        -:        -:  398:    *
        -:        -:  399:    * We compute mod(abs(src), 2) as:
        -:        -:  400:    * abs(src) - 2.0 * floor(abs(src) / 2.0)
        -:        -:  401:    */
    #####:    #####:  402:   nir_ssa_def *two = nir_imm_double(b, 2.0);
    #####:    #####:  403:   nir_ssa_def *abs_src = nir_fabs(b, src);
    #####:    #####:  404:   nir_ssa_def *mod =
    #####:    #####:  405:      nir_fsub(b,
        -:        -:  406:               abs_src,
        -:        -:  407:               nir_fmul(b,
        -:        -:  408:                        two,
        -:        -:  409:                        nir_ffloor(b,
        -:        -:  410:                                   nir_fmul(b,
        -:        -:  411:                                            abs_src,
        -:        -:  412:                                            nir_imm_double(b, 0.5)))));
        -:        -:  413:
        -:        -:  414:   /*
        -:        -:  415:    * If fract(src) != 0.5, then we round as floor(src + 0.5)
        -:        -:  416:    *
        -:        -:  417:    * If fract(src) == 0.5, then we have to check the modulo:
        -:        -:  418:    *
        -:        -:  419:    *   if it is < 1 we need a trunc operation so we get:
        -:        -:  420:    *      0.5 -> 0,   -0.5 -> -0
        -:        -:  421:    *      2.5 -> 2,   -2.5 -> -2
        -:        -:  422:    *
        -:        -:  423:    *   otherwise we need to check if src >= 0, in which case we need to round
        -:        -:  424:    *   upwards, or not, in which case we need to round downwards so we get:
        -:        -:  425:    *      1.5 -> 2,   -1.5 -> -2
        -:        -:  426:    *      3.5 -> 4,   -3.5 -> -4
        -:        -:  427:    */
    #####:    #####:  428:   nir_ssa_def *fract = nir_ffract(b, src);
    #####:    #####:  429:   return nir_bcsel(b,
        -:        -:  430:                    nir_fne(b, fract, nir_imm_double(b, 0.5)),
        -:        -:  431:                    nir_ffloor(b, nir_fadd(b, src, nir_imm_double(b, 0.5))),
        -:        -:  432:                    nir_bcsel(b,
        -:        -:  433:                              nir_flt(b, mod, nir_imm_double(b, 1.0)),
        -:        -:  434:                              nir_ftrunc(b, src),
        -:        -:  435:                              nir_bcsel(b,
        -:        -:  436:                                        nir_fge(b, src, nir_imm_double(b, 0.0)),
        -:        -:  437:                                        nir_fadd(b, src, nir_imm_double(b, 0.5)),
        -:        -:  438:                                        nir_fsub(b, src, nir_imm_double(b, 0.5)))));
        -:        -:  439:}
        -:        -:  440:
        -:        -:  441:static nir_ssa_def *
    #####:    #####:  442:lower_mod(nir_builder *b, nir_ssa_def *src0, nir_ssa_def *src1)
        -:        -:  443:{
        -:        -:  444:   /* mod(x,y) = x - y * floor(x/y)
        -:        -:  445:    *
        -:        -:  446:    * If the division is lowered, it could add some rounding errors that make
        -:        -:  447:    * floor() to return the quotient minus one when x = N * y. If this is the
        -:        -:  448:    * case, we return zero because mod(x, y) output value is [0, y).
        -:        -:  449:    */
    #####:    #####:  450:   nir_ssa_def *floor = nir_ffloor(b, nir_fdiv(b, src0, src1));
    #####:    #####:  451:   nir_ssa_def *mod = nir_fsub(b, src0, nir_fmul(b, src1, floor));
        -:        -:  452:
    #####:    #####:  453:   return nir_bcsel(b,
        -:        -:  454:                    nir_fne(b, mod, src1),
        -:        -:  455:                    mod,
        -:        -:  456:                    nir_imm_double(b, 0.0));
        -:        -:  457:}
        -:        -:  458:
        -:        -:  459:static bool
      706:      724:  460:lower_doubles_instr(nir_alu_instr *instr, nir_lower_doubles_options options)
        -:        -:  461:{
      706:      724:  462:   assert(instr->dest.dest.is_ssa);
      706:      724:  463:   if (instr->dest.dest.ssa.bit_size != 64)
      706:      724:  464:      return false;
        -:        -:  465:
    #####:    #####:  466:   switch (instr->op) {
        -:        -:  467:   case nir_op_frcp:
    #####:    #####:  468:      if (!(options & nir_lower_drcp))
    #####:    #####:  469:         return false;
    #####:    #####:  470:      break;
        -:        -:  471:
        -:        -:  472:   case nir_op_fsqrt:
    #####:    #####:  473:      if (!(options & nir_lower_dsqrt))
    #####:    #####:  474:         return false;
    #####:    #####:  475:      break;
        -:        -:  476:
        -:        -:  477:   case nir_op_frsq:
    #####:    #####:  478:      if (!(options & nir_lower_drsq))
    #####:    #####:  479:         return false;
    #####:    #####:  480:      break;
        -:        -:  481:
        -:        -:  482:   case nir_op_ftrunc:
    #####:    #####:  483:      if (!(options & nir_lower_dtrunc))
    #####:    #####:  484:         return false;
    #####:    #####:  485:      break;
        -:        -:  486:
        -:        -:  487:   case nir_op_ffloor:
    #####:    #####:  488:      if (!(options & nir_lower_dfloor))
    #####:    #####:  489:         return false;
    #####:    #####:  490:      break;
        -:        -:  491:
        -:        -:  492:   case nir_op_fceil:
    #####:    #####:  493:      if (!(options & nir_lower_dceil))
    #####:    #####:  494:         return false;
    #####:    #####:  495:      break;
        -:        -:  496:
        -:        -:  497:   case nir_op_ffract:
    #####:    #####:  498:      if (!(options & nir_lower_dfract))
    #####:    #####:  499:         return false;
    #####:    #####:  500:      break;
        -:        -:  501:
        -:        -:  502:   case nir_op_fround_even:
    #####:    #####:  503:      if (!(options & nir_lower_dround_even))
    #####:    #####:  504:         return false;
    #####:    #####:  505:      break;
        -:        -:  506:
        -:        -:  507:   case nir_op_fmod:
    #####:    #####:  508:      if (!(options & nir_lower_dmod))
    #####:    #####:  509:         return false;
    #####:    #####:  510:      break;
        -:        -:  511:
        -:        -:  512:   default:
    #####:    #####:  513:      return false;
        -:        -:  514:   }
        -:        -:  515:
        -:        -:  516:   nir_builder bld;
    #####:    #####:  517:   nir_builder_init(&bld, nir_cf_node_get_function(&instr->instr.block->cf_node));
    #####:    #####:  518:   bld.cursor = nir_before_instr(&instr->instr);
        -:        -:  519:
    #####:    #####:  520:   nir_ssa_def *src = nir_fmov_alu(&bld, instr->src[0],
    #####:    #####:  521:                                   instr->dest.dest.ssa.num_components);
        -:        -:  522:
        -:        -:  523:   nir_ssa_def *result;
        -:        -:  524:
    #####:    #####:  525:   switch (instr->op) {
        -:        -:  526:   case nir_op_frcp:
    #####:    #####:  527:      result = lower_rcp(&bld, src);
    #####:    #####:  528:      break;
        -:        -:  529:   case nir_op_fsqrt:
    #####:    #####:  530:      result = lower_sqrt_rsq(&bld, src, true);
    #####:    #####:  531:      break;
        -:        -:  532:   case nir_op_frsq:
    #####:    #####:  533:      result = lower_sqrt_rsq(&bld, src, false);
    #####:    #####:  534:      break;
        -:        -:  535:   case nir_op_ftrunc:
    #####:    #####:  536:      result = lower_trunc(&bld, src);
    #####:    #####:  537:      break;
        -:        -:  538:   case nir_op_ffloor:
    #####:    #####:  539:      result = lower_floor(&bld, src);
    #####:    #####:  540:      break;
        -:        -:  541:   case nir_op_fceil:
    #####:    #####:  542:      result = lower_ceil(&bld, src);
    #####:    #####:  543:      break;
        -:        -:  544:   case nir_op_ffract:
    #####:    #####:  545:      result = lower_fract(&bld, src);
    #####:    #####:  546:      break;
        -:        -:  547:   case nir_op_fround_even:
    #####:    #####:  548:      result = lower_round_even(&bld, src);
    #####:    #####:  549:      break;
        -:        -:  550:
        -:        -:  551:   case nir_op_fmod: {
    #####:    #####:  552:      nir_ssa_def *src1 = nir_fmov_alu(&bld, instr->src[1],
    #####:    #####:  553:                                      instr->dest.dest.ssa.num_components);
    #####:    #####:  554:      result = lower_mod(&bld, src, src1);
        -:        -:  555:   }
    #####:    #####:  556:      break;
        -:        -:  557:   default:
    #####:    #####:  558:      unreachable("unhandled opcode");
        -:        -:  559:   }
        -:        -:  560:
    #####:    #####:  561:   nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(result));
    #####:    #####:  562:   nir_instr_remove(&instr->instr);
    #####:    #####:  563:   return true;
        -:        -:  564:}
        -:        -:  565:
        -:        -:  566:static bool
       27:       27:  567:nir_lower_doubles_impl(nir_function_impl *impl,
        -:        -:  568:                       nir_lower_doubles_options options)
        -:        -:  569:{
       27:       27:  570:   bool progress = false;
        -:        -:  571:
      302:      430:  572:   nir_foreach_block(block, impl) {
     1525:     1779:  573:      nir_foreach_instr_safe(instr, block) {
     1250:     1376:  574:         if (instr->type == nir_instr_type_alu)
      706:      724:  575:            progress |= lower_doubles_instr(nir_instr_as_alu(instr),
        -:        -:  576:                                            options);
        -:        -:  577:      }
        -:        -:  578:   }
        -:        -:  579:
       27:       27:  580:   if (progress)
    #####:    #####:  581:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  582:                                  nir_metadata_dominance);
        -:        -:  583:
       27:       27:  584:   return progress;
        -:        -:  585:}
        -:        -:  586:
        -:        -:  587:bool
       27:       27:  588:nir_lower_doubles(nir_shader *shader, nir_lower_doubles_options options)
        -:        -:  589:{
       27:       27:  590:   bool progress = false;
        -:        -:  591:
       54:       54:  592:   nir_foreach_function(function, shader) {
       27:       27:  593:      if (function->impl) {
       27:       27:  594:         progress |= nir_lower_doubles_impl(function->impl, options);
        -:        -:  595:      }
        -:        -:  596:   }
        -:        -:  597:
       27:       27:  598:   return progress;
        -:        -:  599:}

src/compiler/nir_lower_global_vars_to_local.c.gcov

        -:        -:    0:Source:nir/nir_lower_global_vars_to_local.c
        -:        -:    0:Graph:nir/.libs/nir_lower_global_vars_to_local.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_global_vars_to_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:/*
        -:        -:   29: * This lowering pass detects when a global variable is only being used by
        -:        -:   30: * one function and makes it local to that function
        -:        -:   31: */
        -:        -:   32:
        -:        -:   33:#include "nir.h"
        -:        -:   34:
        -:        -:   35:static bool
       89:      105:   36:mark_global_var_uses_block(nir_block *block, nir_function_impl *impl,
        -:        -:   37:                           struct hash_table *var_func_table)
        -:        -:   38:{
      414:      448:   39:   nir_foreach_instr(instr, block) {
      325:      343:   40:      if (instr->type != nir_instr_type_intrinsic)
      123:      133:   41:         continue;
        -:        -:   42:
      202:      210:   43:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
      202:      210:   44:      unsigned num_vars = nir_intrinsic_infos[intrin->intrinsic].num_variables;
        -:        -:   45:
      457:      473:   46:      for (unsigned i = 0; i < num_vars; i++) {
      255:      263:   47:         nir_variable *var = intrin->variables[i]->var;
      255:      263:   48:         if (var->data.mode != nir_var_global)
      246:      254:   49:            continue;
        -:        -:   50:
        9:        9:   51:         struct hash_entry *entry =
        -:        -:   52:            _mesa_hash_table_search(var_func_table, var);
        -:        -:   53:
        9:        9:   54:         if (entry) {
        6:        6:   55:            if (entry->data != impl)
    #####:    #####:   56:               entry->data = NULL;
        -:        -:   57:         } else {
        3:        3:   58:            _mesa_hash_table_insert(var_func_table, var, impl);
        -:        -:   59:         }
        -:        -:   60:      }
        -:        -:   61:   }
        -:        -:   62:
       89:      105:   63:   return true;
        -:        -:   64:}
        -:        -:   65:
        -:        -:   66:bool
        5:        5:   67:nir_lower_global_vars_to_local(nir_shader *shader)
        -:        -:   68:{
        5:        5:   69:   bool progress = false;
        -:        -:   70:
        -:        -:   71:   /* A hash table keyed on variable pointers that stores the unique
        -:        -:   72:    * nir_function_impl that uses the given variable.  If a variable is
        -:        -:   73:    * used in multiple functions, the data for the given key will be NULL.
        -:        -:   74:    */
        5:        5:   75:   struct hash_table *var_func_table =
        -:        -:   76:      _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -:   77:                              _mesa_key_pointer_equal);
        -:        -:   78:
       10:       10:   79:   nir_foreach_function(function, shader) {
        5:        5:   80:      if (function->impl) {
       94:      110:   81:         nir_foreach_block(block, function->impl)
       89:      105:   82:            mark_global_var_uses_block(block, function->impl, var_func_table);
        -:        -:   83:      }
        -:        -:   84:   }
        -:        -:   85:
        -:        -:   86:   struct hash_entry *entry;
        8:        8:   87:   hash_table_foreach(var_func_table, entry) {
        3:        3:   88:      nir_variable *var = (void *)entry->key;
        3:        3:   89:      nir_function_impl *impl = entry->data;
        -:        -:   90:
        3:        3:   91:      assert(var->data.mode == nir_var_global);
        -:        -:   92:
        3:        3:   93:      if (impl != NULL) {
        3:        3:   94:         exec_node_remove(&var->node);
        3:        3:   95:         var->data.mode = nir_var_local;
        3:        3:   96:         exec_list_push_tail(&impl->locals, &var->node);
        3:        3:   97:         nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:   98:                                     nir_metadata_dominance |
        -:        -:   99:                                     nir_metadata_live_ssa_defs);
        3:        3:  100:         progress = true;
        -:        -:  101:      }
        -:        -:  102:   }
        -:        -:  103:
        5:        5:  104:   _mesa_hash_table_destroy(var_func_table, NULL);
        -:        -:  105:
        5:        5:  106:   return progress;
        -:        -:  107:}

src/compiler/nir_lower_indirect_derefs.c.gcov

        -:        -:    0:Source:nir/nir_lower_indirect_derefs.c
        -:        -:    0:Graph:nir/.libs/nir_lower_indirect_derefs.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_indirect_derefs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:static void
        -:        -:   28:emit_load_store(nir_builder *b, nir_intrinsic_instr *orig_instr,
        -:        -:   29:                nir_deref_var *deref, nir_deref *tail,
        -:        -:   30:                nir_ssa_def **dest, nir_ssa_def *src);
        -:        -:   31:
        -:        -:   32:static void
    #####:    #####:   33:emit_indirect_load_store(nir_builder *b, nir_intrinsic_instr *orig_instr,
        -:        -:   34:                         nir_deref_var *deref, nir_deref *arr_parent,
        -:        -:   35:                         int start, int end,
        -:        -:   36:                         nir_ssa_def **dest, nir_ssa_def *src)
        -:        -:   37:{
    #####:    #####:   38:   nir_deref_array *arr = nir_deref_as_array(arr_parent->child);
    #####:    #####:   39:   assert(arr->deref_array_type == nir_deref_array_type_indirect);
    #####:    #####:   40:   assert(arr->indirect.is_ssa);
        -:        -:   41:
    #####:    #####:   42:   assert(start < end);
    #####:    #####:   43:   if (start == end - 1) {
        -:        -:   44:      /* Base case.  Just emit the load/store op */
    #####:    #####:   45:      nir_deref_array direct = *arr;
    #####:    #####:   46:      direct.deref_array_type = nir_deref_array_type_direct;
    #####:    #####:   47:      direct.base_offset += start;
    #####:    #####:   48:      direct.indirect = NIR_SRC_INIT;
        -:        -:   49:
    #####:    #####:   50:      arr_parent->child = &direct.deref;
    #####:    #####:   51:      emit_load_store(b, orig_instr, deref, &direct.deref, dest, src);
    #####:    #####:   52:      arr_parent->child = &arr->deref;
        -:        -:   53:   } else {
    #####:    #####:   54:      int mid = start + (end - start) / 2;
        -:        -:   55:
        -:        -:   56:      nir_ssa_def *then_dest, *else_dest;
        -:        -:   57:
    #####:    #####:   58:      nir_push_if(b, nir_ilt(b, arr->indirect.ssa, nir_imm_int(b, mid)));
    #####:    #####:   59:      emit_indirect_load_store(b, orig_instr, deref, arr_parent,
        -:        -:   60:                               start, mid, &then_dest, src);
    #####:    #####:   61:      nir_push_else(b, NULL);
    #####:    #####:   62:      emit_indirect_load_store(b, orig_instr, deref, arr_parent,
        -:        -:   63:                               mid, end, &else_dest, src);
    #####:    #####:   64:      nir_pop_if(b, NULL);
        -:        -:   65:
    #####:    #####:   66:      if (src == NULL)
    #####:    #####:   67:         *dest = nir_if_phi(b, then_dest, else_dest);
        -:        -:   68:   }
    #####:    #####:   69:}
        -:        -:   70:
        -:        -:   71:static void
    #####:    #####:   72:emit_load_store(nir_builder *b, nir_intrinsic_instr *orig_instr,
        -:        -:   73:                nir_deref_var *deref, nir_deref *tail,
        -:        -:   74:                nir_ssa_def **dest, nir_ssa_def *src)
        -:        -:   75:{
    #####:    #####:   76:   for (; tail->child; tail = tail->child) {
    #####:    #####:   77:      if (tail->child->deref_type != nir_deref_type_array)
    #####:    #####:   78:         continue;
        -:        -:   79:
    #####:    #####:   80:      nir_deref_array *arr = nir_deref_as_array(tail->child);
    #####:    #####:   81:      if (arr->deref_array_type != nir_deref_array_type_indirect)
    #####:    #####:   82:         continue;
        -:        -:   83:
    #####:    #####:   84:      int length = glsl_get_length(tail->type);
        -:        -:   85:
    #####:    #####:   86:      emit_indirect_load_store(b, orig_instr, deref, tail, -arr->base_offset,
    #####:    #####:   87:                               length - arr->base_offset, dest, src);
    #####:    #####:   88:      return;
        -:        -:   89:   }
        -:        -:   90:
    #####:    #####:   91:   assert(tail && tail->child == NULL);
        -:        -:   92:
        -:        -:   93:   /* We reached the end of the deref chain.  Emit the instruction */
        -:        -:   94:
    #####:    #####:   95:   if (src == NULL) {
        -:        -:   96:      /* This is a load instruction */
    #####:    #####:   97:      nir_intrinsic_instr *load =
    #####:    #####:   98:         nir_intrinsic_instr_create(b->shader, nir_intrinsic_load_var);
    #####:    #####:   99:      load->num_components = orig_instr->num_components;
    #####:    #####:  100:      load->variables[0] = nir_deref_var_clone(deref, load);
    #####:    #####:  101:      unsigned bit_size = orig_instr->dest.ssa.bit_size;
    #####:    #####:  102:      nir_ssa_dest_init(&load->instr, &load->dest,
    #####:    #####:  103:                        load->num_components, bit_size, NULL);
    #####:    #####:  104:      nir_builder_instr_insert(b, &load->instr);
    #####:    #####:  105:      *dest = &load->dest.ssa;
        -:        -:  106:   } else {
        -:        -:  107:      /* This is a store instruction */
    #####:    #####:  108:      nir_intrinsic_instr *store =
    #####:    #####:  109:         nir_intrinsic_instr_create(b->shader, nir_intrinsic_store_var);
    #####:    #####:  110:      store->num_components = orig_instr->num_components;
    #####:    #####:  111:      nir_intrinsic_set_write_mask(store, nir_intrinsic_write_mask(orig_instr));
    #####:    #####:  112:      store->variables[0] = nir_deref_var_clone(deref, store);
    #####:    #####:  113:      store->src[0] = nir_src_for_ssa(src);
    #####:    #####:  114:      nir_builder_instr_insert(b, &store->instr);
        -:        -:  115:   }
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:static bool
       30:       32:  119:deref_has_indirect(nir_deref_var *deref)
        -:        -:  120:{
       46:       48:  121:   for (nir_deref *tail = deref->deref.child; tail; tail = tail->child) {
       16:       16:  122:      if (tail->deref_type != nir_deref_type_array)
    #####:    #####:  123:         continue;
        -:        -:  124:
       16:       16:  125:      nir_deref_array *arr = nir_deref_as_array(tail);
       16:       16:  126:      if (arr->deref_array_type == nir_deref_array_type_indirect)
    #####:    #####:  127:         return true;
        -:        -:  128:   }
        -:        -:  129:
       30:       32:  130:   return false;
        -:        -:  131:}
        -:        -:  132:
        -:        -:  133:static bool
       36:       52:  134:lower_indirect_block(nir_block *block, nir_builder *b,
        -:        -:  135:                     nir_variable_mode modes)
        -:        -:  136:{
       36:       52:  137:   bool progress = false;
        -:        -:  138:
      151:      183:  139:   nir_foreach_instr_safe(instr, block) {
      115:      131:  140:      if (instr->type != nir_instr_type_intrinsic)
       85:       99:  141:         continue;
        -:        -:  142:
       30:       32:  143:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       36:       38:  144:      if (intrin->intrinsic != nir_intrinsic_load_var &&
        6:        6:  145:          intrin->intrinsic != nir_intrinsic_store_var)
    #####:    #####:  146:         continue;
        -:        -:  147:
       30:       32:  148:      if (!deref_has_indirect(intrin->variables[0]))
       30:       32:  149:         continue;
        -:        -:  150:
        -:        -:  151:      /* Only lower variables whose mode is in the mask, or compact
        -:        -:  152:       * array variables.  (We can't handle indirects on tightly packed
        -:        -:  153:       * scalar arrays, so we need to lower them regardless.)
        -:        -:  154:       */
    #####:    #####:  155:      if (!(modes & intrin->variables[0]->var->data.mode) &&
    #####:    #####:  156:          !intrin->variables[0]->var->data.compact)
    #####:    #####:  157:         continue;
        -:        -:  158:
    #####:    #####:  159:      b->cursor = nir_before_instr(&intrin->instr);
        -:        -:  160:
    #####:    #####:  161:      if (intrin->intrinsic == nir_intrinsic_load_var) {
        -:        -:  162:         nir_ssa_def *result;
    #####:    #####:  163:         emit_load_store(b, intrin, intrin->variables[0],
    #####:    #####:  164:                         &intrin->variables[0]->deref, &result, NULL);
    #####:    #####:  165:         nir_ssa_def_rewrite_uses(&intrin->dest.ssa, nir_src_for_ssa(result));
        -:        -:  166:      } else {
    #####:    #####:  167:         assert(intrin->src[0].is_ssa);
    #####:    #####:  168:         emit_load_store(b, intrin, intrin->variables[0],
    #####:    #####:  169:                         &intrin->variables[0]->deref, NULL, intrin->src[0].ssa);
        -:        -:  170:      }
    #####:    #####:  171:      nir_instr_remove(&intrin->instr);
    #####:    #####:  172:      progress = true;
        -:        -:  173:   }
        -:        -:  174:
       36:       52:  175:   return progress;
        -:        -:  176:}
        -:        -:  177:
        -:        -:  178:static bool
        5:        5:  179:lower_indirects_impl(nir_function_impl *impl, nir_variable_mode modes)
        -:        -:  180:{
        -:        -:  181:   nir_builder builder;
        5:        5:  182:   nir_builder_init(&builder, impl);
        5:        5:  183:   bool progress = false;
        -:        -:  184:
       41:       57:  185:   nir_foreach_block_safe(block, impl) {
       36:       52:  186:      progress |= lower_indirect_block(block, &builder, modes);
        -:        -:  187:   }
        -:        -:  188:
        5:        5:  189:   if (progress)
    #####:    #####:  190:      nir_metadata_preserve(impl, nir_metadata_none);
        -:        -:  191:
        5:        5:  192:   return progress;
        -:        -:  193:}
        -:        -:  194:
        -:        -:  195:/** Lowers indirect variable loads/stores to direct loads/stores.
        -:        -:  196: *
        -:        -:  197: * The pass works by replacing any indirect load or store with an if-ladder
        -:        -:  198: * that does a binary search on the array index.
        -:        -:  199: */
        -:        -:  200:bool
        5:        5:  201:nir_lower_indirect_derefs(nir_shader *shader, nir_variable_mode modes)
        -:        -:  202:{
        5:        5:  203:   bool progress = false;
        -:        -:  204:
       10:       10:  205:   nir_foreach_function(function, shader) {
        5:        5:  206:      if (function->impl)
        5:        5:  207:         progress = lower_indirects_impl(function->impl, modes) || progress;
        -:        -:  208:   }
        -:        -:  209:
        5:        5:  210:   return progress;
        -:        -:  211:}

src/compiler/nir_lower_int64.c.gcov

        -:        -:    0:Source:nir/nir_lower_int64.c
        -:        -:    0:Graph:nir/.libs/nir_lower_int64.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_int64.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:static nir_ssa_def *
    #####:    #####:   28:lower_imul64(nir_builder *b, nir_ssa_def *x, nir_ssa_def *y)
        -:        -:   29:{
    #####:    #####:   30:   nir_ssa_def *x_lo = nir_unpack_64_2x32_split_x(b, x);
    #####:    #####:   31:   nir_ssa_def *x_hi = nir_unpack_64_2x32_split_y(b, x);
    #####:    #####:   32:   nir_ssa_def *y_lo = nir_unpack_64_2x32_split_x(b, y);
    #####:    #####:   33:   nir_ssa_def *y_hi = nir_unpack_64_2x32_split_y(b, y);
        -:        -:   34:
    #####:    #####:   35:   nir_ssa_def *res_lo = nir_imul(b, x_lo, y_lo);
    #####:    #####:   36:   nir_ssa_def *res_hi = nir_iadd(b, nir_umul_high(b, x_lo, y_lo),
        -:        -:   37:                         nir_iadd(b, nir_imul(b, x_lo, y_hi),
        -:        -:   38:                                     nir_imul(b, x_hi, y_lo)));
        -:        -:   39:
    #####:    #####:   40:   return nir_pack_64_2x32_split(b, res_lo, res_hi);
        -:        -:   41:}
        -:        -:   42:
        -:        -:   43:static nir_ssa_def *
    #####:    #####:   44:lower_isign64(nir_builder *b, nir_ssa_def *x)
        -:        -:   45:{
    #####:    #####:   46:   nir_ssa_def *x_lo = nir_unpack_64_2x32_split_x(b, x);
    #####:    #####:   47:   nir_ssa_def *x_hi = nir_unpack_64_2x32_split_y(b, x);
        -:        -:   48:
    #####:    #####:   49:   nir_ssa_def *is_non_zero = nir_i2b(b, nir_ior(b, x_lo, x_hi));
    #####:    #####:   50:   nir_ssa_def *res_hi = nir_ishr(b, x_hi, nir_imm_int(b, 31));
    #####:    #####:   51:   nir_ssa_def *res_lo = nir_ior(b, res_hi, nir_b2i(b, is_non_zero));
        -:        -:   52:
    #####:    #####:   53:   return nir_pack_64_2x32_split(b, res_lo, res_hi);
        -:        -:   54:}
        -:        -:   55:
        -:        -:   56:static void
    #####:    #####:   57:lower_udiv64_mod64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d,
        -:        -:   58:                   nir_ssa_def **q, nir_ssa_def **r)
        -:        -:   59:{
        -:        -:   60:   /* TODO: We should specially handle the case where the denominator is a
        -:        -:   61:    * constant.  In that case, we should be able to reduce it to a multiply by
        -:        -:   62:    * a constant, some shifts, and an add.
        -:        -:   63:    */
    #####:    #####:   64:   nir_ssa_def *n_lo = nir_unpack_64_2x32_split_x(b, n);
    #####:    #####:   65:   nir_ssa_def *n_hi = nir_unpack_64_2x32_split_y(b, n);
    #####:    #####:   66:   nir_ssa_def *d_lo = nir_unpack_64_2x32_split_x(b, d);
    #####:    #####:   67:   nir_ssa_def *d_hi = nir_unpack_64_2x32_split_y(b, d);
        -:        -:   68:
    #####:    #####:   69:   nir_const_value v = { .u32 = { 0, 0, 0, 0 } };
    #####:    #####:   70:   nir_ssa_def *q_lo = nir_build_imm(b, n->num_components, 32, v);
    #####:    #####:   71:   nir_ssa_def *q_hi = nir_build_imm(b, n->num_components, 32, v);
        -:        -:   72:
    #####:    #####:   73:   nir_ssa_def *n_hi_before_if = n_hi;
    #####:    #####:   74:   nir_ssa_def *q_hi_before_if = q_hi;
        -:        -:   75:
        -:        -:   76:   /* If the upper 32 bits of denom are non-zero, it is impossible for shifts
        -:        -:   77:    * greater than 32 bits to occur.  If the upper 32 bits of the numerator
        -:        -:   78:    * are zero, it is impossible for (denom << [63, 32]) <= numer unless
        -:        -:   79:    * denom == 0.
        -:        -:   80:    */
    #####:    #####:   81:   nir_ssa_def *need_high_div =
    #####:    #####:   82:      nir_iand(b, nir_ieq(b, d_hi, nir_imm_int(b, 0)), nir_uge(b, n_hi, d_lo));
    #####:    #####:   83:   nir_push_if(b, nir_bany(b, need_high_div));
        -:        -:   84:   {
        -:        -:   85:      /* If we only have one component, then the bany above goes away and
        -:        -:   86:       * this is always true within the if statement.
        -:        -:   87:       */
    #####:    #####:   88:      if (n->num_components == 1)
    #####:    #####:   89:         need_high_div = nir_imm_int(b, NIR_TRUE);
        -:        -:   90:
    #####:    #####:   91:      nir_ssa_def *log2_d_lo = nir_ufind_msb(b, d_lo);
        -:        -:   92:
    #####:    #####:   93:      for (int i = 31; i >= 0; i--) {
        -:        -:   94:         /* if ((d.x << i) <= n.y) {
        -:        -:   95:          *    n.y -= d.x << i;
        -:        -:   96:          *    quot.y |= 1U << i;
        -:        -:   97:          * }
        -:        -:   98:          */
    #####:    #####:   99:         nir_ssa_def *d_shift = nir_ishl(b, d_lo, nir_imm_int(b, i));
    #####:    #####:  100:         nir_ssa_def *new_n_hi = nir_isub(b, n_hi, d_shift);
    #####:    #####:  101:         nir_ssa_def *new_q_hi = nir_ior(b, q_hi, nir_imm_int(b, 1u << i));
    #####:    #####:  102:         nir_ssa_def *cond = nir_iand(b, need_high_div,
        -:        -:  103:                                         nir_uge(b, n_hi, d_shift));
    #####:    #####:  104:         if (i != 0) {
        -:        -:  105:            /* log2_d_lo is always <= 31, so we don't need to bother with it
        -:        -:  106:             * in the last iteration.
        -:        -:  107:             */
    #####:    #####:  108:            cond = nir_iand(b, cond,
        -:        -:  109:                               nir_ige(b, nir_imm_int(b, 31 - i), log2_d_lo));
        -:        -:  110:         }
    #####:    #####:  111:         n_hi = nir_bcsel(b, cond, new_n_hi, n_hi);
    #####:    #####:  112:         q_hi = nir_bcsel(b, cond, new_q_hi, q_hi);
        -:        -:  113:      }
        -:        -:  114:   }
    #####:    #####:  115:   nir_pop_if(b, NULL);
    #####:    #####:  116:   n_hi = nir_if_phi(b, n_hi, n_hi_before_if);
    #####:    #####:  117:   q_hi = nir_if_phi(b, q_hi, q_hi_before_if);
        -:        -:  118:
    #####:    #####:  119:   nir_ssa_def *log2_denom = nir_ufind_msb(b, d_hi);
        -:        -:  120:
    #####:    #####:  121:   n = nir_pack_64_2x32_split(b, n_lo, n_hi);
    #####:    #####:  122:   d = nir_pack_64_2x32_split(b, d_lo, d_hi);
    #####:    #####:  123:   for (int i = 31; i >= 0; i--) {
        -:        -:  124:      /* if ((d64 << i) <= n64) {
        -:        -:  125:       *    n64 -= d64 << i;
        -:        -:  126:       *    quot.x |= 1U << i;
        -:        -:  127:       * }
        -:        -:  128:       */
    #####:    #####:  129:      nir_ssa_def *d_shift = nir_ishl(b, d, nir_imm_int(b, i));
    #####:    #####:  130:      nir_ssa_def *new_n = nir_isub(b, n, d_shift);
    #####:    #####:  131:      nir_ssa_def *new_q_lo = nir_ior(b, q_lo, nir_imm_int(b, 1u << i));
    #####:    #####:  132:      nir_ssa_def *cond = nir_uge(b, n, d_shift);
    #####:    #####:  133:      if (i != 0) {
        -:        -:  134:         /* log2_denom is always <= 31, so we don't need to bother with it
        -:        -:  135:          * in the last iteration.
        -:        -:  136:          */
    #####:    #####:  137:         cond = nir_iand(b, cond,
        -:        -:  138:                            nir_ige(b, nir_imm_int(b, 31 - i), log2_denom));
        -:        -:  139:      }
    #####:    #####:  140:      n = nir_bcsel(b, cond, new_n, n);
    #####:    #####:  141:      q_lo = nir_bcsel(b, cond, new_q_lo, q_lo);
        -:        -:  142:   }
        -:        -:  143:
    #####:    #####:  144:   *q = nir_pack_64_2x32_split(b, q_lo, q_hi);
    #####:    #####:  145:   *r = n;
    #####:    #####:  146:}
        -:        -:  147:
        -:        -:  148:static nir_ssa_def *
    #####:    #####:  149:lower_udiv64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d)
        -:        -:  150:{
        -:        -:  151:   nir_ssa_def *q, *r;
    #####:    #####:  152:   lower_udiv64_mod64(b, n, d, &q, &r);
    #####:    #####:  153:   return q;
        -:        -:  154:}
        -:        -:  155:
        -:        -:  156:static nir_ssa_def *
    #####:    #####:  157:lower_idiv64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d)
        -:        -:  158:{
    #####:    #####:  159:   nir_ssa_def *n_hi = nir_unpack_64_2x32_split_y(b, n);
    #####:    #####:  160:   nir_ssa_def *d_hi = nir_unpack_64_2x32_split_y(b, d);
        -:        -:  161:
    #####:    #####:  162:   nir_ssa_def *negate = nir_ine(b, nir_ilt(b, n_hi, nir_imm_int(b, 0)),
        -:        -:  163:                                    nir_ilt(b, d_hi, nir_imm_int(b, 0)));
        -:        -:  164:   nir_ssa_def *q, *r;
    #####:    #####:  165:   lower_udiv64_mod64(b, nir_iabs(b, n), nir_iabs(b, d), &q, &r);
    #####:    #####:  166:   return nir_bcsel(b, negate, nir_ineg(b, q), q);
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:static nir_ssa_def *
    #####:    #####:  170:lower_umod64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d)
        -:        -:  171:{
        -:        -:  172:   nir_ssa_def *q, *r;
    #####:    #####:  173:   lower_udiv64_mod64(b, n, d, &q, &r);
    #####:    #####:  174:   return r;
        -:        -:  175:}
        -:        -:  176:
        -:        -:  177:static nir_ssa_def *
    #####:    #####:  178:lower_imod64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d)
        -:        -:  179:{
    #####:    #####:  180:   nir_ssa_def *n_hi = nir_unpack_64_2x32_split_y(b, n);
    #####:    #####:  181:   nir_ssa_def *d_hi = nir_unpack_64_2x32_split_y(b, d);
    #####:    #####:  182:   nir_ssa_def *n_is_neg = nir_ilt(b, n_hi, nir_imm_int(b, 0));
    #####:    #####:  183:   nir_ssa_def *d_is_neg = nir_ilt(b, d_hi, nir_imm_int(b, 0));
        -:        -:  184:
        -:        -:  185:   nir_ssa_def *q, *r;
    #####:    #####:  186:   lower_udiv64_mod64(b, nir_iabs(b, n), nir_iabs(b, d), &q, &r);
        -:        -:  187:
    #####:    #####:  188:   nir_ssa_def *rem = nir_bcsel(b, n_is_neg, nir_ineg(b, r), r);
        -:        -:  189:
    #####:    #####:  190:   return nir_bcsel(b, nir_ieq(b, r, nir_imm_int64(b, 0)), nir_imm_int64(b, 0),
        -:        -:  191:          nir_bcsel(b, nir_ieq(b, n_is_neg, d_is_neg), rem,
        -:        -:  192:                       nir_iadd(b, rem, d)));
        -:        -:  193:}
        -:        -:  194:
        -:        -:  195:static nir_ssa_def *
    #####:    #####:  196:lower_irem64(nir_builder *b, nir_ssa_def *n, nir_ssa_def *d)
        -:        -:  197:{
    #####:    #####:  198:   nir_ssa_def *n_hi = nir_unpack_64_2x32_split_y(b, n);
    #####:    #####:  199:   nir_ssa_def *n_is_neg = nir_ilt(b, n_hi, nir_imm_int(b, 0));
        -:        -:  200:
        -:        -:  201:   nir_ssa_def *q, *r;
    #####:    #####:  202:   lower_udiv64_mod64(b, nir_iabs(b, n), nir_iabs(b, d), &q, &r);
    #####:    #####:  203:   return nir_bcsel(b, n_is_neg, nir_ineg(b, r), r);
        -:        -:  204:}
        -:        -:  205:
        -:        -:  206:static nir_lower_int64_options
    #####:    #####:  207:opcode_to_options_mask(nir_op opcode)
        -:        -:  208:{
    #####:    #####:  209:   switch (opcode) {
        -:        -:  210:   case nir_op_imul:
    #####:    #####:  211:      return nir_lower_imul64;
        -:        -:  212:   case nir_op_isign:
    #####:    #####:  213:      return nir_lower_isign64;
        -:        -:  214:   case nir_op_udiv:
        -:        -:  215:   case nir_op_idiv:
        -:        -:  216:   case nir_op_umod:
        -:        -:  217:   case nir_op_imod:
        -:        -:  218:   case nir_op_irem:
    #####:    #####:  219:      return nir_lower_divmod64;
        -:        -:  220:   default:
    #####:    #####:  221:      return 0;
        -:        -:  222:   }
        -:        -:  223:}
        -:        -:  224:
        -:        -:  225:static nir_ssa_def *
    #####:    #####:  226:lower_int64_alu_instr(nir_builder *b, nir_alu_instr *alu)
        -:        -:  227:{
        -:        -:  228:   nir_ssa_def *src[4];
    #####:    #####:  229:   for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++)
    #####:    #####:  230:      src[i] = nir_ssa_for_alu_src(b, alu, i);
        -:        -:  231:
    #####:    #####:  232:   switch (alu->op) {
        -:        -:  233:   case nir_op_imul:
    #####:    #####:  234:      return lower_imul64(b, src[0], src[1]);
        -:        -:  235:   case nir_op_isign:
    #####:    #####:  236:      return lower_isign64(b, src[0]);
        -:        -:  237:   case nir_op_udiv:
    #####:    #####:  238:      return lower_udiv64(b, src[0], src[1]);
        -:        -:  239:   case nir_op_idiv:
    #####:    #####:  240:      return lower_idiv64(b, src[0], src[1]);
        -:        -:  241:   case nir_op_umod:
    #####:    #####:  242:      return lower_umod64(b, src[0], src[1]);
        -:        -:  243:   case nir_op_imod:
    #####:    #####:  244:      return lower_imod64(b, src[0], src[1]);
        -:        -:  245:   case nir_op_irem:
    #####:    #####:  246:      return lower_irem64(b, src[0], src[1]);
        -:        -:  247:   default:
    #####:    #####:  248:      unreachable("Invalid ALU opcode to lower");
        -:        -:  249:   }
        -:        -:  250:}
        -:        -:  251:
        -:        -:  252:static bool
        5:        5:  253:lower_int64_impl(nir_function_impl *impl, nir_lower_int64_options options)
        -:        -:  254:{
        -:        -:  255:   nir_builder b;
        5:        5:  256:   nir_builder_init(&b, impl);
        -:        -:  257:
        5:        5:  258:   bool progress = false;
       41:       57:  259:   nir_foreach_block(block, impl) {
      151:      183:  260:      nir_foreach_instr_safe(instr, block) {
      115:      131:  261:         if (instr->type != nir_instr_type_alu)
       56:       70:  262:            continue;
        -:        -:  263:
       59:       61:  264:         nir_alu_instr *alu = nir_instr_as_alu(instr);
       59:       61:  265:         assert(alu->dest.dest.is_ssa);
       59:       61:  266:         if (alu->dest.dest.ssa.bit_size != 64)
       59:       61:  267:            continue;
        -:        -:  268:
    #####:    #####:  269:         if (!(options & opcode_to_options_mask(alu->op)))
    #####:    #####:  270:            continue;
        -:        -:  271:
    #####:    #####:  272:         b.cursor = nir_before_instr(instr);
        -:        -:  273:
    #####:    #####:  274:         nir_ssa_def *lowered = lower_int64_alu_instr(&b, alu);
    #####:    #####:  275:         nir_ssa_def_rewrite_uses(&alu->dest.dest.ssa,
        -:        -:  276:                                  nir_src_for_ssa(lowered));
    #####:    #####:  277:         nir_instr_remove(&alu->instr);
    #####:    #####:  278:         progress = true;
        -:        -:  279:      }
        -:        -:  280:   }
        -:        -:  281:
        5:        5:  282:   return progress;
        -:        -:  283:}
        -:        -:  284:
        -:        -:  285:bool
        5:        5:  286:nir_lower_int64(nir_shader *shader, nir_lower_int64_options options)
        -:        -:  287:{
        5:        5:  288:   bool progress = false;
        -:        -:  289:
       10:       10:  290:   nir_foreach_function(function, shader) {
        5:        5:  291:      if (function->impl)
        5:        5:  292:         progress |= lower_int64_impl(function->impl, options);
        -:        -:  293:   }
        -:        -:  294:
        5:        5:  295:   return progress;
        -:        -:  296:}

src/compiler/nir_lower_io.c.gcov

        -:        -:    0:Source:nir/nir_lower_io.c
        -:        -:    0:Graph:nir/.libs/nir_lower_io.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_io.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   26: *
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:/*
        -:        -:   30: * This lowering pass converts references to input/output variables with
        -:        -:   31: * loads/stores to actual input/output intrinsics.
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:#include "nir.h"
        -:        -:   35:#include "nir_builder.h"
        -:        -:   36:
        -:        -:   37:struct lower_io_state {
        -:        -:   38:   nir_builder builder;
        -:        -:   39:   int (*type_size)(const struct glsl_type *type);
        -:        -:   40:   nir_variable_mode modes;
        -:        -:   41:   nir_lower_io_options options;
        -:        -:   42:};
        -:        -:   43:
        -:        -:   44:void
        4:        4:   45:nir_assign_var_locations(struct exec_list *var_list, unsigned *size,
        -:        -:   46:                         int (*type_size)(const struct glsl_type *))
        -:        -:   47:{
        4:        4:   48:   unsigned location = 0;
        -:        -:   49:
        8:        8:   50:   nir_foreach_variable(var, var_list) {
        -:        -:   51:      /*
        -:        -:   52:       * UBOs have their own address spaces, so don't count them towards the
        -:        -:   53:       * number of global uniforms
        -:        -:   54:       */
        8:        8:   55:      if ((var->data.mode == nir_var_uniform || var->data.mode == nir_var_shader_storage) &&
        4:        4:   56:          var->interface_type != NULL)
    #####:    #####:   57:         continue;
        -:        -:   58:
        4:        4:   59:      var->data.driver_location = location;
        4:        4:   60:      location += type_size(var->type);
        -:        -:   61:   }
        -:        -:   62:
        4:        4:   63:   *size = location;
        4:        4:   64:}
        -:        -:   65:
        -:        -:   66:/**
        -:        -:   67: * Return true if the given variable is a per-vertex input/output array.
        -:        -:   68: * (such as geometry shader inputs).
        -:        -:   69: */
        -:        -:   70:bool
       64:       78:   71:nir_is_per_vertex_io(nir_variable *var, gl_shader_stage stage)
        -:        -:   72:{
       64:       78:   73:   if (var->data.patch || !glsl_type_is_array(var->type))
       48:       62:   74:      return false;
        -:        -:   75:
       16:       16:   76:   if (var->data.mode == nir_var_shader_in)
    #####:    #####:   77:      return stage == MESA_SHADER_GEOMETRY ||
    #####:    #####:   78:             stage == MESA_SHADER_TESS_CTRL ||
        -:        -:   79:             stage == MESA_SHADER_TESS_EVAL;
        -:        -:   80:
       16:       16:   81:   if (var->data.mode == nir_var_shader_out)
    #####:    #####:   82:      return stage == MESA_SHADER_TESS_CTRL;
        -:        -:   83:
       16:       16:   84:   return false;
        -:        -:   85:}
        -:        -:   86:
        -:        -:   87:static nir_ssa_def *
       34:       40:   88:get_io_offset(nir_builder *b, nir_deref_var *deref,
        -:        -:   89:              nir_ssa_def **vertex_index,
        -:        -:   90:              int (*type_size)(const struct glsl_type *),
        -:        -:   91:              unsigned *component)
        -:        -:   92:{
       34:       40:   93:   nir_deref *tail = &deref->deref;
        -:        -:   94:
        -:        -:   95:   /* For per-vertex input arrays (i.e. geometry shader inputs), keep the
        -:        -:   96:    * outermost array index separate.  Process the rest normally.
        -:        -:   97:    */
       34:       40:   98:   if (vertex_index != NULL) {
    #####:    #####:   99:      tail = tail->child;
    #####:    #####:  100:      nir_deref_array *deref_array = nir_deref_as_array(tail);
        -:        -:  101:
    #####:    #####:  102:      nir_ssa_def *vtx = nir_imm_int(b, deref_array->base_offset);
    #####:    #####:  103:      if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  104:         vtx = nir_iadd(b, vtx, nir_ssa_for_src(b, deref_array->indirect, 1));
        -:        -:  105:      }
    #####:    #####:  106:      *vertex_index = vtx;
        -:        -:  107:   }
        -:        -:  108:
       34:       40:  109:   if (deref->var->data.compact) {
    #####:    #####:  110:      assert(tail->child->deref_type == nir_deref_type_array);
    #####:    #####:  111:      assert(glsl_type_is_scalar(glsl_without_array(deref->var->type)));
    #####:    #####:  112:      nir_deref_array *deref_array = nir_deref_as_array(tail->child);
        -:        -:  113:      /* We always lower indirect dereferences for "compact" array vars. */
    #####:    #####:  114:      assert(deref_array->deref_array_type == nir_deref_array_type_direct);
        -:        -:  115:
    #####:    #####:  116:      const unsigned total_offset = *component + deref_array->base_offset;
    #####:    #####:  117:      const unsigned slot_offset = total_offset / 4;
    #####:    #####:  118:      *component = total_offset % 4;
    #####:    #####:  119:      return nir_imm_int(b, type_size(glsl_vec4_type()) * slot_offset);
        -:        -:  120:   }
        -:        -:  121:
        -:        -:  122:   /* Just emit code and let constant-folding go to town */
       34:       40:  123:   nir_ssa_def *offset = nir_imm_int(b, 0);
        -:        -:  124:
       84:       96:  125:   while (tail->child != NULL) {
       16:       16:  126:      const struct glsl_type *parent_type = tail->type;
       16:       16:  127:      tail = tail->child;
        -:        -:  128:
       16:       16:  129:      if (tail->deref_type == nir_deref_type_array) {
       16:       16:  130:         nir_deref_array *deref_array = nir_deref_as_array(tail);
       16:       16:  131:         unsigned size = type_size(tail->type);
        -:        -:  132:
       16:       16:  133:         offset = nir_iadd(b, offset,
       16:       16:  134:                           nir_imm_int(b, size * deref_array->base_offset));
        -:        -:  135:
       16:       16:  136:         if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  137:            nir_ssa_def *mul =
    #####:    #####:  138:               nir_imul(b, nir_imm_int(b, size),
        -:        -:  139:                        nir_ssa_for_src(b, deref_array->indirect, 1));
        -:        -:  140:
    #####:    #####:  141:            offset = nir_iadd(b, offset, mul);
        -:        -:  142:         }
    #####:    #####:  143:      } else if (tail->deref_type == nir_deref_type_struct) {
    #####:    #####:  144:         nir_deref_struct *deref_struct = nir_deref_as_struct(tail);
        -:        -:  145:
    #####:    #####:  146:         unsigned field_offset = 0;
    #####:    #####:  147:         for (unsigned i = 0; i < deref_struct->index; i++) {
    #####:    #####:  148:            field_offset += type_size(glsl_get_struct_field(parent_type, i));
        -:        -:  149:         }
    #####:    #####:  150:         offset = nir_iadd(b, offset, nir_imm_int(b, field_offset));
        -:        -:  151:      }
        -:        -:  152:   }
        -:        -:  153:
       34:       40:  154:   return offset;
        -:        -:  155:}
        -:        -:  156:
        -:        -:  157:static nir_intrinsic_instr *
       28:       34:  158:lower_load(nir_intrinsic_instr *intrin, struct lower_io_state *state,
        -:        -:  159:           nir_ssa_def *vertex_index, nir_ssa_def *offset,
        -:        -:  160:           unsigned component)
        -:        -:  161:{
       28:       34:  162:   const nir_shader *nir = state->builder.shader;
       28:       34:  163:   nir_variable *var = intrin->variables[0]->var;
       28:       34:  164:   nir_variable_mode mode = var->data.mode;
       28:       34:  165:   nir_ssa_def *barycentric = NULL;
        -:        -:  166:
        -:        -:  167:   nir_intrinsic_op op;
       28:       34:  168:   switch (mode) {
        -:        -:  169:   case nir_var_shader_in:
       15:       23:  170:      if (nir->stage == MESA_SHADER_FRAGMENT &&
       12:       20:  171:          nir->options->use_interpolated_input_intrinsics &&
       11:       19:  172:          var->data.interpolation != INTERP_MODE_FLAT) {
        5:        9:  173:         assert(vertex_index == NULL);
        -:        -:  174:
        -:        -:  175:         nir_intrinsic_op bary_op;
       10:       18:  176:         if (var->data.sample ||
        5:        9:  177:             (state->options & nir_lower_io_force_sample_interpolation))
    #####:    #####:  178:            bary_op = nir_intrinsic_load_barycentric_sample;
        5:        9:  179:         else if (var->data.centroid)
    #####:    #####:  180:            bary_op = nir_intrinsic_load_barycentric_centroid;
        -:        -:  181:         else
        5:        9:  182:            bary_op = nir_intrinsic_load_barycentric_pixel;
        -:        -:  183:
        5:        9:  184:         barycentric = nir_load_barycentric(&state->builder, bary_op,
        5:        9:  185:                                            var->data.interpolation);
        5:        9:  186:         op = nir_intrinsic_load_interpolated_input;
        -:        -:  187:      } else {
        4:        4:  188:         op = vertex_index ? nir_intrinsic_load_per_vertex_input :
        -:        -:  189:                             nir_intrinsic_load_input;
        -:        -:  190:      }
        9:       13:  191:      break;
        -:        -:  192:   case nir_var_shader_out:
    #####:    #####:  193:      op = vertex_index ? nir_intrinsic_load_per_vertex_output :
        -:        -:  194:                          nir_intrinsic_load_output;
    #####:    #####:  195:      break;
        -:        -:  196:   case nir_var_uniform:
       19:       21:  197:      op = nir_intrinsic_load_uniform;
       19:       21:  198:      break;
        -:        -:  199:   case nir_var_shared:
    #####:    #####:  200:      op = nir_intrinsic_load_shared;
    #####:    #####:  201:      break;
        -:        -:  202:   default:
    #####:    #####:  203:      unreachable("Unknown variable mode");
        -:        -:  204:   }
        -:        -:  205:
       28:       34:  206:   nir_intrinsic_instr *load =
       28:       34:  207:      nir_intrinsic_instr_create(state->builder.shader, op);
       28:       34:  208:   load->num_components = intrin->num_components;
        -:        -:  209:
       28:       34:  210:   nir_intrinsic_set_base(load, var->data.driver_location);
       28:       34:  211:   if (mode == nir_var_shader_in || mode == nir_var_shader_out)
        9:       13:  212:      nir_intrinsic_set_component(load, component);
        -:        -:  213:
       28:       34:  214:   if (load->intrinsic == nir_intrinsic_load_uniform)
       19:       21:  215:      nir_intrinsic_set_range(load, state->type_size(var->type));
        -:        -:  216:
       28:       34:  217:   if (vertex_index) {
    #####:    #####:  218:      load->src[0] = nir_src_for_ssa(vertex_index);
    #####:    #####:  219:      load->src[1] = nir_src_for_ssa(offset);
       28:       34:  220:   } else if (barycentric) {
        5:        9:  221:      load->src[0] = nir_src_for_ssa(barycentric);
        5:        9:  222:      load->src[1] = nir_src_for_ssa(offset);
        -:        -:  223:   } else {
       23:       25:  224:      load->src[0] = nir_src_for_ssa(offset);
        -:        -:  225:   }
        -:        -:  226:
       28:       34:  227:   return load;
        -:        -:  228:}
        -:        -:  229:
        -:        -:  230:static nir_intrinsic_instr *
        6:        6:  231:lower_store(nir_intrinsic_instr *intrin, struct lower_io_state *state,
        -:        -:  232:            nir_ssa_def *vertex_index, nir_ssa_def *offset,
        -:        -:  233:            unsigned component)
        -:        -:  234:{
        6:        6:  235:   nir_variable *var = intrin->variables[0]->var;
        6:        6:  236:   nir_variable_mode mode = var->data.mode;
        -:        -:  237:
        -:        -:  238:   nir_intrinsic_op op;
        6:        6:  239:   if (mode == nir_var_shared) {
    #####:    #####:  240:      op = nir_intrinsic_store_shared;
        -:        -:  241:   } else {
        6:        6:  242:      assert(mode == nir_var_shader_out);
        6:        6:  243:      op = vertex_index ? nir_intrinsic_store_per_vertex_output :
        -:        -:  244:                          nir_intrinsic_store_output;
        -:        -:  245:   }
        -:        -:  246:
        6:        6:  247:   nir_intrinsic_instr *store =
        6:        6:  248:      nir_intrinsic_instr_create(state->builder.shader, op);
        6:        6:  249:   store->num_components = intrin->num_components;
        -:        -:  250:
        6:        6:  251:   nir_src_copy(&store->src[0], &intrin->src[0], store);
        -:        -:  252:
        6:        6:  253:   nir_intrinsic_set_base(store, var->data.driver_location);
        -:        -:  254:
        6:        6:  255:   if (mode == nir_var_shader_out)
        6:        6:  256:      nir_intrinsic_set_component(store, component);
        -:        -:  257:
        6:        6:  258:   nir_intrinsic_set_write_mask(store, nir_intrinsic_write_mask(intrin));
        -:        -:  259:
        6:        6:  260:   if (vertex_index)
    #####:    #####:  261:      store->src[1] = nir_src_for_ssa(vertex_index);
        -:        -:  262:
        6:        6:  263:   store->src[vertex_index ? 2 : 1] = nir_src_for_ssa(offset);
        -:        -:  264:
        6:        6:  265:   return store;
        -:        -:  266:}
        -:        -:  267:
        -:        -:  268:static nir_intrinsic_instr *
    #####:    #####:  269:lower_atomic(nir_intrinsic_instr *intrin, struct lower_io_state *state,
        -:        -:  270:             nir_ssa_def *offset)
        -:        -:  271:{
    #####:    #####:  272:   nir_variable *var = intrin->variables[0]->var;
        -:        -:  273:
    #####:    #####:  274:   assert(var->data.mode == nir_var_shared);
        -:        -:  275:
        -:        -:  276:   nir_intrinsic_op op;
    #####:    #####:  277:   switch (intrin->intrinsic) {
        -:        -:  278:#define OP(O) case nir_intrinsic_var_##O: op = nir_intrinsic_shared_##O; break;
    #####:    #####:  279:   OP(atomic_exchange)
    #####:    #####:  280:   OP(atomic_comp_swap)
    #####:    #####:  281:   OP(atomic_add)
    #####:    #####:  282:   OP(atomic_imin)
    #####:    #####:  283:   OP(atomic_umin)
    #####:    #####:  284:   OP(atomic_imax)
    #####:    #####:  285:   OP(atomic_umax)
    #####:    #####:  286:   OP(atomic_and)
    #####:    #####:  287:   OP(atomic_or)
    #####:    #####:  288:   OP(atomic_xor)
        -:        -:  289:#undef OP
        -:        -:  290:   default:
    #####:    #####:  291:      unreachable("Invalid atomic");
        -:        -:  292:   }
        -:        -:  293:
    #####:    #####:  294:   nir_intrinsic_instr *atomic =
    #####:    #####:  295:      nir_intrinsic_instr_create(state->builder.shader, op);
        -:        -:  296:
    #####:    #####:  297:   nir_intrinsic_set_base(atomic, var->data.driver_location);
        -:        -:  298:
    #####:    #####:  299:   atomic->src[0] = nir_src_for_ssa(offset);
    #####:    #####:  300:   for (unsigned i = 0; i < nir_intrinsic_infos[intrin->intrinsic].num_srcs; i++) {
    #####:    #####:  301:      nir_src_copy(&atomic->src[i+1], &intrin->src[i], atomic);
        -:        -:  302:   }
        -:        -:  303:
    #####:    #####:  304:   return atomic;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:static nir_intrinsic_instr *
    #####:    #####:  308:lower_interpolate_at(nir_intrinsic_instr *intrin, struct lower_io_state *state,
        -:        -:  309:                     nir_ssa_def *offset, unsigned component)
        -:        -:  310:{
    #####:    #####:  311:   nir_variable *var = intrin->variables[0]->var;
        -:        -:  312:
    #####:    #####:  313:   assert(var->data.mode == nir_var_shader_in);
        -:        -:  314:
        -:        -:  315:   /* Ignore interpolateAt() for flat variables - flat is flat. */
    #####:    #####:  316:   if (var->data.interpolation == INTERP_MODE_FLAT)
    #####:    #####:  317:      return lower_load(intrin, state, NULL, offset, component);
        -:        -:  318:
        -:        -:  319:   nir_intrinsic_op bary_op;
    #####:    #####:  320:   switch (intrin->intrinsic) {
        -:        -:  321:   case nir_intrinsic_interp_var_at_centroid:
    #####:    #####:  322:      bary_op = (state->options & nir_lower_io_force_sample_interpolation) ?
        -:        -:  323:                nir_intrinsic_load_barycentric_sample :
        -:        -:  324:                nir_intrinsic_load_barycentric_centroid;
    #####:    #####:  325:      break;
        -:        -:  326:   case nir_intrinsic_interp_var_at_sample:
    #####:    #####:  327:      bary_op = nir_intrinsic_load_barycentric_at_sample;
    #####:    #####:  328:      break;
        -:        -:  329:   case nir_intrinsic_interp_var_at_offset:
    #####:    #####:  330:      bary_op = nir_intrinsic_load_barycentric_at_offset;
    #####:    #####:  331:      break;
        -:        -:  332:   default:
    #####:    #####:  333:      unreachable("Bogus interpolateAt() intrinsic.");
        -:        -:  334:   }
        -:        -:  335:
    #####:    #####:  336:   nir_intrinsic_instr *bary_setup =
    #####:    #####:  337:      nir_intrinsic_instr_create(state->builder.shader, bary_op);
        -:        -:  338:
    #####:    #####:  339:   nir_ssa_dest_init(&bary_setup->instr, &bary_setup->dest, 2, 32, NULL);
    #####:    #####:  340:   nir_intrinsic_set_interp_mode(bary_setup, var->data.interpolation);
        -:        -:  341:
    #####:    #####:  342:   if (intrin->intrinsic != nir_intrinsic_interp_var_at_centroid)
    #####:    #####:  343:      nir_src_copy(&bary_setup->src[0], &intrin->src[0], bary_setup);
        -:        -:  344:
    #####:    #####:  345:   nir_builder_instr_insert(&state->builder, &bary_setup->instr);
        -:        -:  346:
    #####:    #####:  347:   nir_intrinsic_instr *load =
    #####:    #####:  348:      nir_intrinsic_instr_create(state->builder.shader,
        -:        -:  349:                                 nir_intrinsic_load_interpolated_input);
    #####:    #####:  350:   load->num_components = intrin->num_components;
        -:        -:  351:
    #####:    #####:  352:   nir_intrinsic_set_base(load, var->data.driver_location);
    #####:    #####:  353:   nir_intrinsic_set_component(load, component);
        -:        -:  354:
    #####:    #####:  355:   load->src[0] = nir_src_for_ssa(&bary_setup->dest.ssa);
    #####:    #####:  356:   load->src[1] = nir_src_for_ssa(offset);
        -:        -:  357:
    #####:    #####:  358:   return load;
        -:        -:  359:}
        -:        -:  360:
        -:        -:  361:static bool
      107:      155:  362:nir_lower_io_block(nir_block *block,
        -:        -:  363:                   struct lower_io_state *state)
        -:        -:  364:{
      107:      155:  365:   nir_builder *b = &state->builder;
      107:      155:  366:   const nir_shader_compiler_options *options = b->shader->options;
      107:      155:  367:   bool progress = false;
        -:        -:  368:
      653:      843:  369:   nir_foreach_instr_safe(instr, block) {
      546:      688:  370:      if (instr->type != nir_instr_type_intrinsic)
      953:     1209:  371:         continue;
        -:        -:  372:
      105:      127:  373:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  374:
      105:      127:  375:      switch (intrin->intrinsic) {
        -:        -:  376:      case nir_intrinsic_load_var:
        -:        -:  377:      case nir_intrinsic_store_var:
        -:        -:  378:      case nir_intrinsic_var_atomic_add:
        -:        -:  379:      case nir_intrinsic_var_atomic_imin:
        -:        -:  380:      case nir_intrinsic_var_atomic_umin:
        -:        -:  381:      case nir_intrinsic_var_atomic_imax:
        -:        -:  382:      case nir_intrinsic_var_atomic_umax:
        -:        -:  383:      case nir_intrinsic_var_atomic_and:
        -:        -:  384:      case nir_intrinsic_var_atomic_or:
        -:        -:  385:      case nir_intrinsic_var_atomic_xor:
        -:        -:  386:      case nir_intrinsic_var_atomic_exchange:
        -:        -:  387:      case nir_intrinsic_var_atomic_comp_swap:
        -:        -:  388:         /* We can lower the io for this nir instrinsic */
       53:       63:  389:         break;
        -:        -:  390:      case nir_intrinsic_interp_var_at_centroid:
        -:        -:  391:      case nir_intrinsic_interp_var_at_sample:
        -:        -:  392:      case nir_intrinsic_interp_var_at_offset:
        -:        -:  393:         /* We can optionally lower these to load_interpolated_input */
    #####:    #####:  394:         if (options->use_interpolated_input_intrinsics)
    #####:    #####:  395:            break;
        -:        -:  396:      default:
        -:        -:  397:         /* We can't lower the io for this nir instrinsic, so skip it */
       52:       64:  398:         continue;
        -:        -:  399:      }
        -:        -:  400:
       53:       63:  401:      nir_variable *var = intrin->variables[0]->var;
       53:       63:  402:      nir_variable_mode mode = var->data.mode;
        -:        -:  403:
       53:       63:  404:      if ((state->modes & mode) == 0)
       19:       23:  405:         continue;
        -:        -:  406:
       34:       40:  407:      if (mode != nir_var_shader_in &&
       19:       21:  408:          mode != nir_var_shader_out &&
       19:       21:  409:          mode != nir_var_shared &&
        -:        -:  410:          mode != nir_var_uniform)
    #####:    #####:  411:         continue;
        -:        -:  412:
       34:       40:  413:      b->cursor = nir_before_instr(instr);
        -:        -:  414:
       34:       40:  415:      const bool per_vertex = nir_is_per_vertex_io(var, b->shader->stage);
        -:        -:  416:
        -:        -:  417:      nir_ssa_def *offset;
       34:       40:  418:      nir_ssa_def *vertex_index = NULL;
       34:       40:  419:      unsigned component_offset = var->data.location_frac;
        -:        -:  420:
       34:       40:  421:      offset = get_io_offset(b, intrin->variables[0],
        -:        -:  422:                             per_vertex ? &vertex_index : NULL,
        -:        -:  423:                             state->type_size, &component_offset);
        -:        -:  424:
        -:        -:  425:      nir_intrinsic_instr *replacement;
        -:        -:  426:
       34:       40:  427:      switch (intrin->intrinsic) {
        -:        -:  428:      case nir_intrinsic_load_var:
       28:       34:  429:         replacement = lower_load(intrin, state, vertex_index, offset,
        -:        -:  430:                                  component_offset);
       28:       34:  431:         break;
        -:        -:  432:
        -:        -:  433:      case nir_intrinsic_store_var:
        6:        6:  434:         replacement = lower_store(intrin, state, vertex_index, offset,
        -:        -:  435:                                   component_offset);
        6:        6:  436:         break;
        -:        -:  437:
        -:        -:  438:      case nir_intrinsic_var_atomic_add:
        -:        -:  439:      case nir_intrinsic_var_atomic_imin:
        -:        -:  440:      case nir_intrinsic_var_atomic_umin:
        -:        -:  441:      case nir_intrinsic_var_atomic_imax:
        -:        -:  442:      case nir_intrinsic_var_atomic_umax:
        -:        -:  443:      case nir_intrinsic_var_atomic_and:
        -:        -:  444:      case nir_intrinsic_var_atomic_or:
        -:        -:  445:      case nir_intrinsic_var_atomic_xor:
        -:        -:  446:      case nir_intrinsic_var_atomic_exchange:
        -:        -:  447:      case nir_intrinsic_var_atomic_comp_swap:
    #####:    #####:  448:         assert(vertex_index == NULL);
    #####:    #####:  449:         replacement = lower_atomic(intrin, state, offset);
    #####:    #####:  450:         break;
        -:        -:  451:
        -:        -:  452:      case nir_intrinsic_interp_var_at_centroid:
        -:        -:  453:      case nir_intrinsic_interp_var_at_sample:
        -:        -:  454:      case nir_intrinsic_interp_var_at_offset:
    #####:    #####:  455:         assert(vertex_index == NULL);
    #####:    #####:  456:         replacement = lower_interpolate_at(intrin, state, offset,
        -:        -:  457:                                            component_offset);
    #####:    #####:  458:         break;
        -:        -:  459:
        -:        -:  460:      default:
    #####:    #####:  461:         continue;
        -:        -:  462:      }
        -:        -:  463:
       34:       40:  464:      if (nir_intrinsic_infos[intrin->intrinsic].has_dest) {
       28:       34:  465:         if (intrin->dest.is_ssa) {
       56:       68:  466:            nir_ssa_dest_init(&replacement->instr, &replacement->dest,
       28:       34:  467:                              intrin->dest.ssa.num_components,
       28:       34:  468:                              intrin->dest.ssa.bit_size, NULL);
       28:       34:  469:            nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
        -:        -:  470:                                     nir_src_for_ssa(&replacement->dest.ssa));
        -:        -:  471:         } else {
    #####:    #####:  472:            nir_dest_copy(&replacement->dest, &intrin->dest, &intrin->instr);
        -:        -:  473:         }
        -:        -:  474:      }
        -:        -:  475:
       34:       40:  476:      nir_instr_insert_before(&intrin->instr, &replacement->instr);
       34:       40:  477:      nir_instr_remove(&intrin->instr);
       34:       40:  478:      progress = true;
        -:        -:  479:   }
        -:        -:  480:
      107:      155:  481:   return progress;
        -:        -:  482:}
        -:        -:  483:
        -:        -:  484:static bool
       14:       14:  485:nir_lower_io_impl(nir_function_impl *impl,
        -:        -:  486:                  nir_variable_mode modes,
        -:        -:  487:                  int (*type_size)(const struct glsl_type *),
        -:        -:  488:                  nir_lower_io_options options)
        -:        -:  489:{
        -:        -:  490:   struct lower_io_state state;
       14:       14:  491:   bool progress = false;
        -:        -:  492:
       14:       14:  493:   nir_builder_init(&state.builder, impl);
       14:       14:  494:   state.modes = modes;
       14:       14:  495:   state.type_size = type_size;
       14:       14:  496:   state.options = options;
        -:        -:  497:
      121:      169:  498:   nir_foreach_block(block, impl) {
      107:      155:  499:      progress |= nir_lower_io_block(block, &state);
        -:        -:  500:   }
        -:        -:  501:
       14:       14:  502:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  503:                               nir_metadata_dominance);
       14:       14:  504:   return progress;
        -:        -:  505:}
        -:        -:  506:
        -:        -:  507:bool
       14:       14:  508:nir_lower_io(nir_shader *shader, nir_variable_mode modes,
        -:        -:  509:             int (*type_size)(const struct glsl_type *),
        -:        -:  510:             nir_lower_io_options options)
        -:        -:  511:{
       14:       14:  512:   bool progress = false;
        -:        -:  513:
       28:       28:  514:   nir_foreach_function(function, shader) {
       14:       14:  515:      if (function->impl) {
       14:       14:  516:         progress |= nir_lower_io_impl(function->impl, modes,
        -:        -:  517:                                       type_size, options);
        -:        -:  518:      }
        -:        -:  519:   }
        -:        -:  520:
       14:       14:  521:   return progress;
        -:        -:  522:}
        -:        -:  523:
        -:        -:  524:/**
        -:        -:  525: * Return the offset soruce for a load/store intrinsic.
        -:        -:  526: */
        -:        -:  527:nir_src *
        9:       13:  528:nir_get_io_offset_src(nir_intrinsic_instr *instr)
        -:        -:  529:{
        9:       13:  530:   switch (instr->intrinsic) {
        -:        -:  531:   case nir_intrinsic_load_input:
        -:        -:  532:   case nir_intrinsic_load_output:
        -:        -:  533:   case nir_intrinsic_load_uniform:
        4:        4:  534:      return &instr->src[0];
        -:        -:  535:   case nir_intrinsic_load_ubo:
        -:        -:  536:   case nir_intrinsic_load_ssbo:
        -:        -:  537:   case nir_intrinsic_load_per_vertex_input:
        -:        -:  538:   case nir_intrinsic_load_per_vertex_output:
        -:        -:  539:   case nir_intrinsic_load_interpolated_input:
        -:        -:  540:   case nir_intrinsic_store_output:
        5:        9:  541:      return &instr->src[1];
        -:        -:  542:   case nir_intrinsic_store_ssbo:
        -:        -:  543:   case nir_intrinsic_store_per_vertex_output:
    #####:    #####:  544:      return &instr->src[2];
        -:        -:  545:   default:
    #####:    #####:  546:      return NULL;
        -:        -:  547:   }
        -:        -:  548:}
        -:        -:  549:
        -:        -:  550:/**
        -:        -:  551: * Return the vertex index source for a load/store per_vertex intrinsic.
        -:        -:  552: */
        -:        -:  553:nir_src *
    #####:    #####:  554:nir_get_io_vertex_index_src(nir_intrinsic_instr *instr)
        -:        -:  555:{
    #####:    #####:  556:   switch (instr->intrinsic) {
        -:        -:  557:   case nir_intrinsic_load_per_vertex_input:
        -:        -:  558:   case nir_intrinsic_load_per_vertex_output:
    #####:    #####:  559:      return &instr->src[0];
        -:        -:  560:   case nir_intrinsic_store_per_vertex_output:
    #####:    #####:  561:      return &instr->src[1];
        -:        -:  562:   default:
    #####:    #####:  563:      return NULL;
        -:        -:  564:   }
        -:        -:  565:}

src/compiler/nir_lower_load_const_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_load_const_to_scalar.c
        -:        -:    0:Graph:nir/.libs/nir_lower_load_const_to_scalar.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_load_const_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Broadcom
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "util/macros.h"
        -:        -:   25:#include "nir.h"
        -:        -:   26:#include "nir_builder.h"
        -:        -:   27:
        -:        -:   28:/** @file nir_lower_load_const_to_scalar.c
        -:        -:   29: *
        -:        -:   30: * Replaces vector nir_load_const instructions with a series of loads and a
        -:        -:   31: * vec[234] to reconstruct the original vector (on the assumption that
        -:        -:   32: * nir_lower_alu_to_scalar() will then be used to split it up).
        -:        -:   33: *
        -:        -:   34: * This gives NIR a chance to CSE more operations on a scalar shader, when the
        -:        -:   35: * same value was used in different vector contant loads.
        -:        -:   36: */
        -:        -:   37:
        -:        -:   38:static bool
        4:        4:   39:lower_load_const_instr_scalar(nir_load_const_instr *lower)
        -:        -:   40:{
        4:        4:   41:   if (lower->def.num_components == 1)
        4:        4:   42:      return false;
        -:        -:   43:
        -:        -:   44:   nir_builder b;
    #####:    #####:   45:   nir_builder_init(&b, nir_cf_node_get_function(&lower->instr.block->cf_node));
    #####:    #####:   46:   b.cursor = nir_before_instr(&lower->instr);
        -:        -:   47:
        -:        -:   48:   /* Emit the individual loads. */
        -:        -:   49:   nir_ssa_def *loads[4];
    #####:    #####:   50:   for (unsigned i = 0; i < lower->def.num_components; i++) {
    #####:    #####:   51:      nir_load_const_instr *load_comp =
    #####:    #####:   52:         nir_load_const_instr_create(b.shader, 1, lower->def.bit_size);
    #####:    #####:   53:      if (lower->def.bit_size == 64)
    #####:    #####:   54:         load_comp->value.f64[0] = lower->value.f64[i];
        -:        -:   55:      else
    #####:    #####:   56:         load_comp->value.u32[0] = lower->value.u32[i];
    #####:    #####:   57:      assert(lower->def.bit_size == 64 || lower->def.bit_size == 32);
    #####:    #####:   58:      nir_builder_instr_insert(&b, &load_comp->instr);
    #####:    #####:   59:      loads[i] = &load_comp->def;
        -:        -:   60:   }
        -:        -:   61:
        -:        -:   62:   /* Batch things back together into a vector. */
    #####:    #####:   63:   nir_ssa_def *vec = nir_vec(&b, loads, lower->def.num_components);
        -:        -:   64:
        -:        -:   65:   /* Replace the old load with a reference to our reconstructed vector. */
    #####:    #####:   66:   nir_ssa_def_rewrite_uses(&lower->def, nir_src_for_ssa(vec));
    #####:    #####:   67:   nir_instr_remove(&lower->instr);
    #####:    #####:   68:   return true;
        -:        -:   69:}
        -:        -:   70:
        -:        -:   71:static bool
        3:        3:   72:nir_lower_load_const_to_scalar_impl(nir_function_impl *impl)
        -:        -:   73:{
        3:        3:   74:   bool progress = false;
        -:        -:   75:
       37:       53:   76:   nir_foreach_block(block, impl) {
      131:      163:   77:      nir_foreach_instr_safe(instr, block) {
       97:      113:   78:         if (instr->type == nir_instr_type_load_const)
        4:        4:   79:            progress |=
        4:        4:   80:               lower_load_const_instr_scalar(nir_instr_as_load_const(instr));
        -:        -:   81:      }
        -:        -:   82:   }
        -:        -:   83:
        3:        3:   84:   if (progress)
    #####:    #####:   85:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:   86:                                  nir_metadata_dominance);
        -:        -:   87:
        3:        3:   88:   return progress;
        -:        -:   89:}
        -:        -:   90:
        -:        -:   91:bool
        3:        3:   92:nir_lower_load_const_to_scalar(nir_shader *shader)
        -:        -:   93:{
        3:        3:   94:   bool progress = false;
        -:        -:   95:
        6:        6:   96:   nir_foreach_function(function, shader) {
        3:        3:   97:      if (function->impl)
        3:        3:   98:         progress |= nir_lower_load_const_to_scalar_impl(function->impl);
        -:        -:   99:   }
        -:        -:  100:
        3:        3:  101:   return progress;
        -:        -:  102:}

src/compiler/nir_lower_locals_to_regs.c.gcov

        -:        -:    0:Source:nir/nir_lower_locals_to_regs.c
        -:        -:    0:Graph:nir/.libs/nir_lower_locals_to_regs.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_locals_to_regs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_array.h"
        -:        -:   30:
        -:        -:   31:struct locals_to_regs_state {
        -:        -:   32:   nir_shader *shader;
        -:        -:   33:   nir_function_impl *impl;
        -:        -:   34:
        -:        -:   35:   /* A hash table mapping derefs to registers */
        -:        -:   36:   struct hash_table *regs_table;
        -:        -:   37:
        -:        -:   38:   bool progress;
        -:        -:   39:};
        -:        -:   40:
        -:        -:   41:/* The following two functions implement a hash and equality check for
        -:        -:   42: * variable dreferences.  When the hash or equality function encounters an
        -:        -:   43: * array, it ignores the offset and whether it is direct or indirect
        -:        -:   44: * entirely.
        -:        -:   45: */
        -:        -:   46:static uint32_t
    #####:    #####:   47:hash_deref(const void *void_deref)
        -:        -:   48:{
    #####:    #####:   49:   uint32_t hash = _mesa_fnv32_1a_offset_bias;
        -:        -:   50:
    #####:    #####:   51:   const nir_deref_var *deref_var = void_deref;
    #####:    #####:   52:   hash = _mesa_fnv32_1a_accumulate(hash, deref_var->var);
        -:        -:   53:
    #####:    #####:   54:   for (const nir_deref *deref = deref_var->deref.child;
    #####:    #####:   55:        deref; deref = deref->child) {
    #####:    #####:   56:      if (deref->deref_type == nir_deref_type_struct) {
    #####:    #####:   57:         const nir_deref_struct *deref_struct = nir_deref_as_struct(deref);
    #####:    #####:   58:         hash = _mesa_fnv32_1a_accumulate(hash, deref_struct->index);
        -:        -:   59:      }
        -:        -:   60:   }
        -:        -:   61:
    #####:    #####:   62:   return hash;
        -:        -:   63:}
        -:        -:   64:
        -:        -:   65:static bool
    #####:    #####:   66:derefs_equal(const void *void_a, const void *void_b)
        -:        -:   67:{
    #####:    #####:   68:   const nir_deref_var *a_var = void_a;
    #####:    #####:   69:   const nir_deref_var *b_var = void_b;
        -:        -:   70:
    #####:    #####:   71:   if (a_var->var != b_var->var)
    #####:    #####:   72:      return false;
        -:        -:   73:
    #####:    #####:   74:   for (const nir_deref *a = a_var->deref.child, *b = b_var->deref.child;
    #####:    #####:   75:        a != NULL; a = a->child, b = b->child) {
    #####:    #####:   76:      if (a->deref_type != b->deref_type)
    #####:    #####:   77:         return false;
        -:        -:   78:
    #####:    #####:   79:      if (a->deref_type == nir_deref_type_struct) {
    #####:    #####:   80:         if (nir_deref_as_struct(a)->index != nir_deref_as_struct(b)->index)
    #####:    #####:   81:            return false;
        -:        -:   82:      }
        -:        -:   83:      /* Do nothing for arrays.  They're all the same. */
        -:        -:   84:
    #####:    #####:   85:      assert((a->child == NULL) == (b->child == NULL));
    #####:    #####:   86:      if((a->child == NULL) != (b->child == NULL))
    #####:    #####:   87:         return false;
        -:        -:   88:   }
        -:        -:   89:
    #####:    #####:   90:   return true;
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:static nir_register *
    #####:    #####:   94:get_reg_for_deref(nir_deref_var *deref, struct locals_to_regs_state *state)
        -:        -:   95:{
    #####:    #####:   96:   uint32_t hash = hash_deref(deref);
        -:        -:   97:
    #####:    #####:   98:   assert(deref->var->constant_initializer == NULL);
        -:        -:   99:
    #####:    #####:  100:   struct hash_entry *entry =
    #####:    #####:  101:      _mesa_hash_table_search_pre_hashed(state->regs_table, hash, deref);
    #####:    #####:  102:   if (entry)
    #####:    #####:  103:      return entry->data;
        -:        -:  104:
    #####:    #####:  105:   unsigned array_size = 1;
    #####:    #####:  106:   nir_deref *tail = &deref->deref;
    #####:    #####:  107:   while (tail->child) {
    #####:    #####:  108:      if (tail->child->deref_type == nir_deref_type_array)
    #####:    #####:  109:         array_size *= glsl_get_length(tail->type);
    #####:    #####:  110:      tail = tail->child;
        -:        -:  111:   }
        -:        -:  112:
    #####:    #####:  113:   assert(glsl_type_is_vector(tail->type) || glsl_type_is_scalar(tail->type));
        -:        -:  114:
    #####:    #####:  115:   nir_register *reg = nir_local_reg_create(state->impl);
    #####:    #####:  116:   reg->num_components = glsl_get_vector_elements(tail->type);
    #####:    #####:  117:   reg->num_array_elems = array_size > 1 ? array_size : 0;
    #####:    #####:  118:   reg->bit_size = glsl_get_bit_size(tail->type);
        -:        -:  119:
    #####:    #####:  120:   _mesa_hash_table_insert_pre_hashed(state->regs_table, hash, deref, reg);
        -:        -:  121:
    #####:    #####:  122:   return reg;
        -:        -:  123:}
        -:        -:  124:
        -:        -:  125:static nir_src
    #####:    #####:  126:get_deref_reg_src(nir_deref_var *deref, nir_instr *instr,
        -:        -:  127:                  struct locals_to_regs_state *state)
        -:        -:  128:{
        -:        -:  129:   nir_src src;
        -:        -:  130:
    #####:    #####:  131:   src.is_ssa = false;
    #####:    #####:  132:   src.reg.reg = get_reg_for_deref(deref, state);
    #####:    #####:  133:   src.reg.base_offset = 0;
    #####:    #####:  134:   src.reg.indirect = NULL;
        -:        -:  135:
        -:        -:  136:   /* It is possible for a user to create a shader that has an array with a
        -:        -:  137:    * single element and then proceed to access it indirectly.  Indirectly
        -:        -:  138:    * accessing a non-array register is not allowed in NIR.  In order to
        -:        -:  139:    * handle this case we just convert it to a direct reference.
        -:        -:  140:    */
    #####:    #####:  141:   if (src.reg.reg->num_array_elems == 0)
    #####:    #####:  142:      return src;
        -:        -:  143:
    #####:    #####:  144:   nir_deref *tail = &deref->deref;
    #####:    #####:  145:   while (tail->child != NULL) {
    #####:    #####:  146:      const struct glsl_type *parent_type = tail->type;
    #####:    #####:  147:      tail = tail->child;
        -:        -:  148:
    #####:    #####:  149:      if (tail->deref_type != nir_deref_type_array)
    #####:    #####:  150:         continue;
        -:        -:  151:
    #####:    #####:  152:      nir_deref_array *deref_array = nir_deref_as_array(tail);
        -:        -:  153:
    #####:    #####:  154:      src.reg.base_offset *= glsl_get_length(parent_type);
    #####:    #####:  155:      src.reg.base_offset += deref_array->base_offset;
        -:        -:  156:
    #####:    #####:  157:      if (src.reg.indirect) {
    #####:    #####:  158:         nir_load_const_instr *load_const =
    #####:    #####:  159:            nir_load_const_instr_create(state->shader, 1, 32);
    #####:    #####:  160:         load_const->value.u32[0] = glsl_get_length(parent_type);
    #####:    #####:  161:         nir_instr_insert_before(instr, &load_const->instr);
        -:        -:  162:
    #####:    #####:  163:         nir_alu_instr *mul = nir_alu_instr_create(state->shader, nir_op_imul);
    #####:    #####:  164:         mul->src[0].src = *src.reg.indirect;
    #####:    #####:  165:         mul->src[1].src.is_ssa = true;
    #####:    #####:  166:         mul->src[1].src.ssa = &load_const->def;
    #####:    #####:  167:         mul->dest.write_mask = 1;
    #####:    #####:  168:         nir_ssa_dest_init(&mul->instr, &mul->dest.dest, 1, 32, NULL);
    #####:    #####:  169:         nir_instr_insert_before(instr, &mul->instr);
        -:        -:  170:
    #####:    #####:  171:         src.reg.indirect->is_ssa = true;
    #####:    #####:  172:         src.reg.indirect->ssa = &mul->dest.dest.ssa;
        -:        -:  173:      }
        -:        -:  174:
    #####:    #####:  175:      if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  176:         if (src.reg.indirect == NULL) {
    #####:    #####:  177:            src.reg.indirect = ralloc(state->shader, nir_src);
    #####:    #####:  178:            nir_src_copy(src.reg.indirect, &deref_array->indirect,
    #####:    #####:  179:                         state->shader);
        -:        -:  180:         } else {
    #####:    #####:  181:            nir_alu_instr *add = nir_alu_instr_create(state->shader,
        -:        -:  182:                                                      nir_op_iadd);
    #####:    #####:  183:            add->src[0].src = *src.reg.indirect;
    #####:    #####:  184:            nir_src_copy(&add->src[1].src, &deref_array->indirect, add);
    #####:    #####:  185:            add->dest.write_mask = 1;
    #####:    #####:  186:            nir_ssa_dest_init(&add->instr, &add->dest.dest, 1, 32, NULL);
    #####:    #####:  187:            nir_instr_insert_before(instr, &add->instr);
        -:        -:  188:
    #####:    #####:  189:            src.reg.indirect->is_ssa = true;
    #####:    #####:  190:            src.reg.indirect->ssa = &add->dest.dest.ssa;
        -:        -:  191:         }
        -:        -:  192:      }
        -:        -:  193:   }
        -:        -:  194:
    #####:    #####:  195:   return src;
        -:        -:  196:}
        -:        -:  197:
        -:        -:  198:static bool
       36:       52:  199:lower_locals_to_regs_block(nir_block *block,
        -:        -:  200:                           struct locals_to_regs_state *state)
        -:        -:  201:{
      156:      186:  202:   nir_foreach_instr_safe(instr, block) {
      120:      134:  203:      if (instr->type != nir_instr_type_intrinsic)
       93:      107:  204:         continue;
        -:        -:  205:
       27:       27:  206:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  207:
       27:       27:  208:      switch (intrin->intrinsic) {
        -:        -:  209:      case nir_intrinsic_load_var: {
    #####:    #####:  210:         if (intrin->variables[0]->var->data.mode != nir_var_local)
    #####:    #####:  211:            continue;
        -:        -:  212:
    #####:    #####:  213:         nir_alu_instr *mov = nir_alu_instr_create(state->shader, nir_op_imov);
    #####:    #####:  214:         mov->src[0].src = get_deref_reg_src(intrin->variables[0],
        -:        -:  215:                                             &intrin->instr, state);
    #####:    #####:  216:         mov->dest.write_mask = (1 << intrin->num_components) - 1;
    #####:    #####:  217:         if (intrin->dest.is_ssa) {
    #####:    #####:  218:            nir_ssa_dest_init(&mov->instr, &mov->dest.dest,
    #####:    #####:  219:                              intrin->num_components,
    #####:    #####:  220:                              intrin->dest.ssa.bit_size, NULL);
    #####:    #####:  221:            nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
        -:        -:  222:                                     nir_src_for_ssa(&mov->dest.dest.ssa));
        -:        -:  223:         } else {
    #####:    #####:  224:            nir_dest_copy(&mov->dest.dest, &intrin->dest, &mov->instr);
        -:        -:  225:         }
    #####:    #####:  226:         nir_instr_insert_before(&intrin->instr, &mov->instr);
        -:        -:  227:
    #####:    #####:  228:         nir_instr_remove(&intrin->instr);
    #####:    #####:  229:         state->progress = true;
    #####:    #####:  230:         break;
        -:        -:  231:      }
        -:        -:  232:
        -:        -:  233:      case nir_intrinsic_store_var: {
    #####:    #####:  234:         if (intrin->variables[0]->var->data.mode != nir_var_local)
    #####:    #####:  235:            continue;
        -:        -:  236:
    #####:    #####:  237:         nir_src reg_src = get_deref_reg_src(intrin->variables[0],
        -:        -:  238:                                             &intrin->instr, state);
        -:        -:  239:
    #####:    #####:  240:         nir_alu_instr *mov = nir_alu_instr_create(state->shader, nir_op_imov);
    #####:    #####:  241:         nir_src_copy(&mov->src[0].src, &intrin->src[0], mov);
    #####:    #####:  242:         mov->dest.write_mask = nir_intrinsic_write_mask(intrin);
    #####:    #####:  243:         mov->dest.dest.is_ssa = false;
    #####:    #####:  244:         mov->dest.dest.reg.reg = reg_src.reg.reg;
    #####:    #####:  245:         mov->dest.dest.reg.base_offset = reg_src.reg.base_offset;
    #####:    #####:  246:         mov->dest.dest.reg.indirect = reg_src.reg.indirect;
        -:        -:  247:
    #####:    #####:  248:         nir_instr_insert_before(&intrin->instr, &mov->instr);
        -:        -:  249:
    #####:    #####:  250:         nir_instr_remove(&intrin->instr);
    #####:    #####:  251:         state->progress = true;
    #####:    #####:  252:         break;
        -:        -:  253:      }
        -:        -:  254:
        -:        -:  255:      case nir_intrinsic_copy_var:
    #####:    #####:  256:         unreachable("There should be no copies whatsoever at this point");
        -:        -:  257:         break;
        -:        -:  258:
        -:        -:  259:      default:
       27:       27:  260:         continue;
        -:        -:  261:      }
        -:        -:  262:   }
        -:        -:  263:
       36:       52:  264:   return true;
        -:        -:  265:}
        -:        -:  266:
        -:        -:  267:static bool
        5:        5:  268:nir_lower_locals_to_regs_impl(nir_function_impl *impl)
        -:        -:  269:{
        -:        -:  270:   struct locals_to_regs_state state;
        -:        -:  271:
        5:        5:  272:   state.shader = impl->function->shader;
        5:        5:  273:   state.impl = impl;
        5:        5:  274:   state.progress = false;
        5:        5:  275:   state.regs_table = _mesa_hash_table_create(NULL, hash_deref, derefs_equal);
        -:        -:  276:
        5:        5:  277:   nir_metadata_require(impl, nir_metadata_dominance);
        -:        -:  278:
       41:       57:  279:   nir_foreach_block(block, impl) {
       36:       52:  280:      lower_locals_to_regs_block(block, &state);
        -:        -:  281:   }
        -:        -:  282:
        5:        5:  283:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  284:                               nir_metadata_dominance);
        -:        -:  285:
        5:        5:  286:   _mesa_hash_table_destroy(state.regs_table, NULL);
        -:        -:  287:
        5:        5:  288:   return state.progress;
        -:        -:  289:}
        -:        -:  290:
        -:        -:  291:bool
        5:        5:  292:nir_lower_locals_to_regs(nir_shader *shader)
        -:        -:  293:{
        5:        5:  294:   bool progress = false;
        -:        -:  295:
       10:       10:  296:   nir_foreach_function(function, shader) {
        5:        5:  297:      if (function->impl)
        5:        5:  298:         progress = nir_lower_locals_to_regs_impl(function->impl) || progress;
        -:        -:  299:   }
        -:        -:  300:
        5:        5:  301:   return progress;
        -:        -:  302:}

src/compiler/nir_lower_phis_to_scalar.c.gcov

        -:        -:    0:Source:nir/nir_lower_phis_to_scalar.c
        -:        -:    0:Graph:nir/.libs/nir_lower_phis_to_scalar.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_phis_to_scalar.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:/*
        -:        -:   31: * Implements a pass that lowers vector phi nodes to scalar phi nodes when
        -:        -:   32: * we don't think it will hurt anything.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:struct lower_phis_to_scalar_state {
        -:        -:   36:   void *mem_ctx;
        -:        -:   37:   void *dead_ctx;
        -:        -:   38:
        -:        -:   39:   /* Hash table marking which phi nodes are scalarizable.  The key is
        -:        -:   40:    * pointers to phi instructions and the entry is either NULL for not
        -:        -:   41:    * scalarizable or non-null for scalarizable.
        -:        -:   42:    */
        -:        -:   43:   struct hash_table *phi_table;
        -:        -:   44:};
        -:        -:   45:
        -:        -:   46:static bool
        -:        -:   47:should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state);
        -:        -:   48:
        -:        -:   49:static bool
    #####:    #####:   50:is_phi_src_scalarizable(nir_phi_src *src,
        -:        -:   51:                        struct lower_phis_to_scalar_state *state)
        -:        -:   52:{
        -:        -:   53:   /* Don't know what to do with non-ssa sources */
    #####:    #####:   54:   if (!src->src.is_ssa)
    #####:    #####:   55:      return false;
        -:        -:   56:
    #####:    #####:   57:   nir_instr *src_instr = src->src.ssa->parent_instr;
    #####:    #####:   58:   switch (src_instr->type) {
        -:        -:   59:   case nir_instr_type_alu: {
    #####:    #####:   60:      nir_alu_instr *src_alu = nir_instr_as_alu(src_instr);
        -:        -:   61:
        -:        -:   62:      /* ALU operations with output_size == 0 should be scalarized.  We
        -:        -:   63:       * will also see a bunch of vecN operations from scalarizing ALU
        -:        -:   64:       * operations and, since they can easily be copy-propagated, they
        -:        -:   65:       * are ok too.
        -:        -:   66:       */
    #####:    #####:   67:      return nir_op_infos[src_alu->op].output_size == 0 ||
    #####:    #####:   68:             src_alu->op == nir_op_vec2 ||
    #####:    #####:   69:             src_alu->op == nir_op_vec3 ||
    #####:    #####:   70:             src_alu->op == nir_op_vec4;
        -:        -:   71:   }
        -:        -:   72:
        -:        -:   73:   case nir_instr_type_phi:
        -:        -:   74:      /* A phi is scalarizable if we're going to lower it */
    #####:    #####:   75:      return should_lower_phi(nir_instr_as_phi(src_instr), state);
        -:        -:   76:
        -:        -:   77:   case nir_instr_type_load_const:
        -:        -:   78:   case nir_instr_type_ssa_undef:
        -:        -:   79:      /* These are trivially scalarizable */
    #####:    #####:   80:      return true;
        -:        -:   81:
        -:        -:   82:   case nir_instr_type_intrinsic: {
    #####:    #####:   83:      nir_intrinsic_instr *src_intrin = nir_instr_as_intrinsic(src_instr);
        -:        -:   84:
    #####:    #####:   85:      switch (src_intrin->intrinsic) {
        -:        -:   86:      case nir_intrinsic_load_var:
    #####:    #####:   87:         return src_intrin->variables[0]->var->data.mode == nir_var_shader_in ||
    #####:    #####:   88:                src_intrin->variables[0]->var->data.mode == nir_var_uniform;
        -:        -:   89:
        -:        -:   90:      case nir_intrinsic_interp_var_at_centroid:
        -:        -:   91:      case nir_intrinsic_interp_var_at_sample:
        -:        -:   92:      case nir_intrinsic_interp_var_at_offset:
        -:        -:   93:      case nir_intrinsic_load_uniform:
        -:        -:   94:      case nir_intrinsic_load_ubo:
        -:        -:   95:      case nir_intrinsic_load_ssbo:
        -:        -:   96:      case nir_intrinsic_load_input:
    #####:    #####:   97:         return true;
        -:        -:   98:      default:
    #####:    #####:   99:         break;
        -:        -:  100:      }
        -:        -:  101:   }
        -:        -:  102:
        -:        -:  103:   default:
        -:        -:  104:      /* We can't scalarize this type of instruction */
    #####:    #####:  105:      return false;
        -:        -:  106:   }
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:/**
        -:        -:  110: * Determines if the given phi node should be lowered.  The only phi nodes
        -:        -:  111: * we will scalarize at the moment are those where all of the sources are
        -:        -:  112: * scalarizable.
        -:        -:  113: *
        -:        -:  114: * The reason for this comes down to coalescing.  Since phi sources can't
        -:        -:  115: * swizzle, swizzles on phis have to be resolved by inserting a mov right
        -:        -:  116: * before the phi.  The choice then becomes between movs to pick off
        -:        -:  117: * components for a scalar phi or potentially movs to recombine components
        -:        -:  118: * for a vector phi.  The problem is that the movs generated to pick off
        -:        -:  119: * the components are almost uncoalescable.  We can't coalesce them in NIR
        -:        -:  120: * because we need them to pick off components and we can't coalesce them
        -:        -:  121: * in the backend because the source register is a vector and the
        -:        -:  122: * destination is a scalar that may be used at other places in the program.
        -:        -:  123: * On the other hand, if we have a bunch of scalars going into a vector
        -:        -:  124: * phi, the situation is much better.  In this case, if the SSA def is
        -:        -:  125: * generated in the predecessor block to the corresponding phi source, the
        -:        -:  126: * backend code will be an ALU op into a temporary and then a mov into the
        -:        -:  127: * given vector component;  this move can almost certainly be coalesced
        -:        -:  128: * away.
        -:        -:  129: */
        -:        -:  130:static bool
      190:      254:  131:should_lower_phi(nir_phi_instr *phi, struct lower_phis_to_scalar_state *state)
        -:        -:  132:{
        -:        -:  133:   /* Already scalar */
      190:      254:  134:   if (phi->dest.ssa.num_components == 1)
      190:      254:  135:      return false;
        -:        -:  136:
    #####:    #####:  137:   struct hash_entry *entry = _mesa_hash_table_search(state->phi_table, phi);
    #####:    #####:  138:   if (entry)
    #####:    #####:  139:      return entry->data != NULL;
        -:        -:  140:
        -:        -:  141:   /* Insert an entry and mark it as scalarizable for now. That way
        -:        -:  142:    * we don't recurse forever and a cycle in the dependence graph
        -:        -:  143:    * won't automatically make us fail to scalarize.
        -:        -:  144:    */
    #####:    #####:  145:   entry = _mesa_hash_table_insert(state->phi_table, phi, (void *)(intptr_t)1);
        -:        -:  146:
    #####:    #####:  147:   bool scalarizable = true;
        -:        -:  148:
    #####:    #####:  149:   nir_foreach_phi_src(src, phi) {
    #####:    #####:  150:      scalarizable = is_phi_src_scalarizable(src, state);
    #####:    #####:  151:      if (!scalarizable)
    #####:    #####:  152:         break;
        -:        -:  153:   }
        -:        -:  154:
        -:        -:  155:   /* The hash table entry for 'phi' may have changed while recursing the
        -:        -:  156:    * dependence graph, so we need to reset it */
    #####:    #####:  157:   entry = _mesa_hash_table_search(state->phi_table, phi);
    #####:    #####:  158:   assert(entry);
        -:        -:  159:
    #####:    #####:  160:   entry->data = (void *)(intptr_t)scalarizable;
        -:        -:  161:
    #####:    #####:  162:   return scalarizable;
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:static bool
      318:      446:  166:lower_phis_to_scalar_block(nir_block *block,
        -:        -:  167:                           struct lower_phis_to_scalar_state *state)
        -:        -:  168:{
      318:      446:  169:   bool progress = false;
        -:        -:  170:
        -:        -:  171:   /* Find the last phi node in the block */
      318:      446:  172:   nir_phi_instr *last_phi = NULL;
      508:      700:  173:   nir_foreach_instr(instr, block) {
      424:      538:  174:      if (instr->type != nir_instr_type_phi)
      234:      284:  175:         break;
        -:        -:  176:
      190:      254:  177:      last_phi = nir_instr_as_phi(instr);
        -:        -:  178:   }
        -:        -:  179:
        -:        -:  180:   /* We have to handle the phi nodes in their own pass due to the way
        -:        -:  181:    * we're modifying the linked list of instructions.
        -:        -:  182:    */
      508:      700:  183:   nir_foreach_instr_safe(instr, block) {
      424:      538:  184:      if (instr->type != nir_instr_type_phi)
      234:      284:  185:         break;
        -:        -:  186:
      190:      254:  187:      nir_phi_instr *phi = nir_instr_as_phi(instr);
        -:        -:  188:
      190:      254:  189:      if (!should_lower_phi(phi, state))
      190:      254:  190:         continue;
        -:        -:  191:
    #####:    #####:  192:      unsigned bit_size = phi->dest.ssa.bit_size;
        -:        -:  193:
        -:        -:  194:      /* Create a vecN operation to combine the results.  Most of these
        -:        -:  195:       * will be redundant, but copy propagation should clean them up for
        -:        -:  196:       * us.  No need to add the complexity here.
        -:        -:  197:       */
        -:        -:  198:      nir_op vec_op;
    #####:    #####:  199:      switch (phi->dest.ssa.num_components) {
    #####:    #####:  200:      case 2: vec_op = nir_op_vec2; break;
    #####:    #####:  201:      case 3: vec_op = nir_op_vec3; break;
    #####:    #####:  202:      case 4: vec_op = nir_op_vec4; break;
    #####:    #####:  203:      default: unreachable("Invalid number of components");
        -:        -:  204:      }
        -:        -:  205:
    #####:    #####:  206:      nir_alu_instr *vec = nir_alu_instr_create(state->mem_ctx, vec_op);
    #####:    #####:  207:      nir_ssa_dest_init(&vec->instr, &vec->dest.dest,
    #####:    #####:  208:                        phi->dest.ssa.num_components,
        -:        -:  209:                        bit_size, NULL);
    #####:    #####:  210:      vec->dest.write_mask = (1 << phi->dest.ssa.num_components) - 1;
        -:        -:  211:
    #####:    #####:  212:      for (unsigned i = 0; i < phi->dest.ssa.num_components; i++) {
    #####:    #####:  213:         nir_phi_instr *new_phi = nir_phi_instr_create(state->mem_ctx);
    #####:    #####:  214:         nir_ssa_dest_init(&new_phi->instr, &new_phi->dest, 1,
    #####:    #####:  215:                           phi->dest.ssa.bit_size, NULL);
        -:        -:  216:
    #####:    #####:  217:         vec->src[i].src = nir_src_for_ssa(&new_phi->dest.ssa);
        -:        -:  218:
    #####:    #####:  219:         nir_foreach_phi_src(src, phi) {
        -:        -:  220:            /* We need to insert a mov to grab the i'th component of src */
    #####:    #####:  221:            nir_alu_instr *mov = nir_alu_instr_create(state->mem_ctx,
        -:        -:  222:                                                      nir_op_imov);
    #####:    #####:  223:            nir_ssa_dest_init(&mov->instr, &mov->dest.dest, 1, bit_size, NULL);
    #####:    #####:  224:            mov->dest.write_mask = 1;
    #####:    #####:  225:            nir_src_copy(&mov->src[0].src, &src->src, state->mem_ctx);
    #####:    #####:  226:            mov->src[0].swizzle[0] = i;
        -:        -:  227:
        -:        -:  228:            /* Insert at the end of the predecessor but before the jump */
    #####:    #####:  229:            nir_instr *pred_last_instr = nir_block_last_instr(src->pred);
    #####:    #####:  230:            if (pred_last_instr && pred_last_instr->type == nir_instr_type_jump)
    #####:    #####:  231:               nir_instr_insert_before(pred_last_instr, &mov->instr);
        -:        -:  232:            else
    #####:    #####:  233:               nir_instr_insert_after_block(src->pred, &mov->instr);
        -:        -:  234:
    #####:    #####:  235:            nir_phi_src *new_src = ralloc(new_phi, nir_phi_src);
    #####:    #####:  236:            new_src->pred = src->pred;
    #####:    #####:  237:            new_src->src = nir_src_for_ssa(&mov->dest.dest.ssa);
        -:        -:  238:
    #####:    #####:  239:            exec_list_push_tail(&new_phi->srcs, &new_src->node);
        -:        -:  240:         }
        -:        -:  241:
    #####:    #####:  242:         nir_instr_insert_before(&phi->instr, &new_phi->instr);
        -:        -:  243:      }
        -:        -:  244:
    #####:    #####:  245:      nir_instr_insert_after(&last_phi->instr, &vec->instr);
        -:        -:  246:
    #####:    #####:  247:      nir_ssa_def_rewrite_uses(&phi->dest.ssa,
        -:        -:  248:                               nir_src_for_ssa(&vec->dest.dest.ssa));
        -:        -:  249:
    #####:    #####:  250:      ralloc_steal(state->dead_ctx, phi);
    #####:    #####:  251:      nir_instr_remove(&phi->instr);
        -:        -:  252:
    #####:    #####:  253:      progress = true;
        -:        -:  254:
        -:        -:  255:      /* We're using the safe iterator and inserting all the newly
        -:        -:  256:       * scalarized phi nodes before their non-scalarized version so that's
        -:        -:  257:       * ok.  However, we are also inserting vec operations after all of
        -:        -:  258:       * the last phi node so once we get here, we can't trust even the
        -:        -:  259:       * safe iterator to stop properly.  We have to break manually.
        -:        -:  260:       */
    #####:    #####:  261:      if (instr == &last_phi->instr)
    #####:    #####:  262:         break;
        -:        -:  263:   }
        -:        -:  264:
      318:      446:  265:   return progress;
        -:        -:  266:}
        -:        -:  267:
        -:        -:  268:static bool
       17:       17:  269:lower_phis_to_scalar_impl(nir_function_impl *impl)
        -:        -:  270:{
        -:        -:  271:   struct lower_phis_to_scalar_state state;
       17:       17:  272:   bool progress = false;
        -:        -:  273:
       17:       17:  274:   state.mem_ctx = ralloc_parent(impl);
       17:       17:  275:   state.dead_ctx = ralloc_context(NULL);
       17:       17:  276:   state.phi_table = _mesa_hash_table_create(state.dead_ctx, _mesa_hash_pointer,
        -:        -:  277:                                             _mesa_key_pointer_equal);
        -:        -:  278:
      335:      463:  279:   nir_foreach_block(block, impl) {
      318:      446:  280:      progress = lower_phis_to_scalar_block(block, &state) || progress;
        -:        -:  281:   }
        -:        -:  282:
       17:       17:  283:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  284:                               nir_metadata_dominance);
        -:        -:  285:
       17:       17:  286:   ralloc_free(state.dead_ctx);
       17:       17:  287:   return progress;
        -:        -:  288:}
        -:        -:  289:
        -:        -:  290:/** A pass that lowers vector phi nodes to scalar
        -:        -:  291: *
        -:        -:  292: * This pass loops through the blocks and lowers looks for vector phi nodes
        -:        -:  293: * it can lower to scalar phi nodes.  Not all phi nodes are lowered.  For
        -:        -:  294: * instance, if one of the sources is a non-scalarizable vector, then we
        -:        -:  295: * don't bother lowering because that would generate hard-to-coalesce movs.
        -:        -:  296: */
        -:        -:  297:bool
       17:       17:  298:nir_lower_phis_to_scalar(nir_shader *shader)
        -:        -:  299:{
       17:       17:  300:   bool progress = false;
        -:        -:  301:
       34:       34:  302:   nir_foreach_function(function, shader) {
       17:       17:  303:      if (function->impl)
       17:       17:  304:         progress = lower_phis_to_scalar_impl(function->impl) || progress;
        -:        -:  305:   }
        -:        -:  306:
       17:       17:  307:   return progress;
        -:        -:  308:}

src/compiler/nir_lower_regs_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_regs_to_ssa.c
        -:        -:    0:Graph:nir/.libs/nir_lower_regs_to_ssa.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_regs_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_builder.h"
        -:        -:   30:#include "nir_phi_builder.h"
        -:        -:   31:#include "nir_vla.h"
        -:        -:   32:
        -:        -:   33:struct regs_to_ssa_state {
        -:        -:   34:   nir_shader *shader;
        -:        -:   35:
        -:        -:   36:   struct nir_phi_builder_value **values;
        -:        -:   37:};
        -:        -:   38:
        -:        -:   39:static bool
      454:      474:   40:rewrite_src(nir_src *src, void *_state)
        -:        -:   41:{
      454:      474:   42:   struct regs_to_ssa_state *state = _state;
        -:        -:   43:
      454:      474:   44:   if (src->is_ssa)
      416:      436:   45:      return true;
        -:        -:   46:
       38:       38:   47:   nir_instr *instr = src->parent_instr;
       38:       38:   48:   nir_register *reg = src->reg.reg;
       38:       38:   49:   struct nir_phi_builder_value *value = state->values[reg->index];
       38:       38:   50:   if (!value)
    #####:    #####:   51:      return true;
        -:        -:   52:
        -:        -:   53:   nir_block *block;
       38:       38:   54:   if (instr->type == nir_instr_type_phi) {
    #####:    #####:   55:      nir_phi_src *phi_src = exec_node_data(nir_phi_src, src, src);
    #####:    #####:   56:      block = phi_src->pred;
        -:        -:   57:   } else {
       38:       38:   58:      block = instr->block;
        -:        -:   59:   }
        -:        -:   60:
       38:       38:   61:   nir_ssa_def *def = nir_phi_builder_value_get_block_def(value, block);
       38:       38:   62:   nir_instr_rewrite_src(instr, src, nir_src_for_ssa(def));
        -:        -:   63:
       38:       38:   64:   return true;
        -:        -:   65:}
        -:        -:   66:
        -:        -:   67:static void
        9:       13:   68:rewrite_if_condition(nir_if *nif, struct regs_to_ssa_state *state)
        -:        -:   69:{
        9:       13:   70:   if (nif->condition.is_ssa)
        9:       13:   71:      return;
        -:        -:   72:
    #####:    #####:   73:   nir_block *block = nir_cf_node_as_block(nir_cf_node_prev(&nif->cf_node));
    #####:    #####:   74:   nir_register *reg = nif->condition.reg.reg;
    #####:    #####:   75:   struct nir_phi_builder_value *value = state->values[reg->index];
    #####:    #####:   76:   if (!value)
    #####:    #####:   77:      return;
        -:        -:   78:
    #####:    #####:   79:   nir_ssa_def *def = nir_phi_builder_value_get_block_def(value, block);
    #####:    #####:   80:   nir_if_rewrite_condition(nif, nir_src_for_ssa(def));
        -:        -:   81:}
        -:        -:   82:
        -:        -:   83:static bool
      100:      110:   84:rewrite_dest(nir_dest *dest, void *_state)
        -:        -:   85:{
      100:      110:   86:   struct regs_to_ssa_state *state = _state;
        -:        -:   87:
      100:      110:   88:   if (dest->is_ssa)
       54:       64:   89:      return true;
        -:        -:   90:
       46:       46:   91:   nir_instr *instr = dest->reg.parent_instr;
       46:       46:   92:   nir_register *reg = dest->reg.reg;
       46:       46:   93:   struct nir_phi_builder_value *value = state->values[reg->index];
       46:       46:   94:   if (!value)
    #####:    #####:   95:      return true;
        -:        -:   96:
       46:       46:   97:   list_del(&dest->reg.def_link);
       92:       92:   98:   nir_ssa_dest_init(instr, dest, reg->num_components,
       46:       46:   99:                     reg->bit_size, reg->name);
        -:        -:  100:
       46:       46:  101:   nir_phi_builder_value_set_block_def(value, instr->block, &dest->ssa);
        -:        -:  102:
       46:       46:  103:   return true;
        -:        -:  104:}
        -:        -:  105:
        -:        -:  106:static void
      220:      222:  107:rewrite_alu_instr(nir_alu_instr *alu, struct regs_to_ssa_state *state)
        -:        -:  108:{
      220:      222:  109:   nir_foreach_src(&alu->instr, rewrite_src, state);
        -:        -:  110:
      220:      222:  111:   if (alu->dest.dest.is_ssa)
      386:      390:  112:      return;
        -:        -:  113:
       50:       50:  114:   nir_register *reg = alu->dest.dest.reg.reg;
       50:       50:  115:   struct nir_phi_builder_value *value = state->values[reg->index];
       50:       50:  116:   if (!value)
    #####:    #####:  117:      return;
        -:        -:  118:
       50:       50:  119:   unsigned write_mask = alu->dest.write_mask;
       50:       50:  120:   if (write_mask == (1 << reg->num_components) - 1) {
        -:        -:  121:      /* This is the simple case where the instruction writes all the
        -:        -:  122:       * components.  We can handle that the same as any other destination.
        -:        -:  123:       */
       46:       46:  124:      rewrite_dest(&alu->dest.dest, state);
       46:       46:  125:      return;
        -:        -:  126:   }
        -:        -:  127:
        -:        -:  128:   /* Calculate the number of components the final instruction, which for
        -:        -:  129:    * per-component things is the number of output components of the
        -:        -:  130:    * instruction and non-per-component things is the number of enabled
        -:        -:  131:    * channels in the write mask.
        -:        -:  132:    */
        -:        -:  133:   unsigned num_components;
        4:        4:  134:   unsigned vec_swizzle[4] = { 0, 1, 2, 3 };
        4:        4:  135:   if (nir_op_infos[alu->op].output_size == 0) {
        -:        -:  136:      /* Figure out the swizzle we need on the vecN operation and compute
        -:        -:  137:       * the number of components in the SSA def at the same time.
        -:        -:  138:       */
        4:        4:  139:      num_components = 0;
       20:       20:  140:      for (unsigned index = 0; index < 4; index++) {
       16:       16:  141:         if (write_mask & (1 << index))
        4:        4:  142:            vec_swizzle[index] = num_components++;
        -:        -:  143:      }
        -:        -:  144:
        -:        -:  145:      /* When we change the output writemask, we need to change
        -:        -:  146:       * the swizzles for per-component inputs too
        -:        -:  147:       */
        8:        8:  148:      for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++) {
        4:        4:  149:         if (nir_op_infos[alu->op].input_sizes[i] != 0)
    #####:    #####:  150:            continue;
        -:        -:  151:
        -:        -:  152:         /*
        -:        -:  153:          * We keep two indices:
        -:        -:  154:          * 1. The index of the original (non-SSA) component
        -:        -:  155:          * 2. The index of the post-SSA, compacted, component
        -:        -:  156:          *
        -:        -:  157:          * We need to map the swizzle component at index 1 to the swizzle
        -:        -:  158:          * component at index 2.  Since index 1 is always larger than
        -:        -:  159:          * index 2, we can do it in a single loop.
        -:        -:  160:          */
        -:        -:  161:
        4:        4:  162:         unsigned ssa_index = 0;
       20:       20:  163:         for (unsigned index = 0; index < 4; index++) {
       16:       16:  164:            if (!((write_mask >> index) & 1))
       12:       12:  165:               continue;
        -:        -:  166:
        4:        4:  167:            alu->src[i].swizzle[ssa_index++] = alu->src[i].swizzle[index];
        -:        -:  168:         }
        4:        4:  169:         assert(ssa_index == num_components);
        -:        -:  170:      }
        -:        -:  171:   } else {
    #####:    #####:  172:      num_components = nir_op_infos[alu->op].output_size;
        -:        -:  173:   }
        4:        4:  174:   assert(num_components <= 4);
        -:        -:  175:
        4:        4:  176:   alu->dest.write_mask = (1 << num_components) - 1;
        4:        4:  177:   list_del(&alu->dest.dest.reg.def_link);
        8:        8:  178:   nir_ssa_dest_init(&alu->instr, &alu->dest.dest, num_components,
        4:        4:  179:                     reg->bit_size, reg->name);
        -:        -:  180:
        -:        -:  181:   nir_op vecN_op;
        4:        4:  182:   switch (reg->num_components) {
    #####:    #####:  183:   case 2: vecN_op = nir_op_vec2; break;
    #####:    #####:  184:   case 3: vecN_op = nir_op_vec3; break;
        4:        4:  185:   case 4: vecN_op = nir_op_vec4; break;
    #####:    #####:  186:   default: unreachable("not reached");
        -:        -:  187:   }
        -:        -:  188:
        4:        4:  189:   nir_alu_instr *vec = nir_alu_instr_create(state->shader, vecN_op);
        -:        -:  190:
        4:        4:  191:   nir_ssa_def *old_src =
        4:        4:  192:      nir_phi_builder_value_get_block_def(value, alu->instr.block);
        4:        4:  193:   nir_ssa_def *new_src = &alu->dest.dest.ssa;
        -:        -:  194:
       20:       20:  195:   for (unsigned i = 0; i < reg->num_components; i++) {
       16:       16:  196:      if (write_mask & (1 << i)) {
        4:        4:  197:         vec->src[i].src = nir_src_for_ssa(new_src);
        4:        4:  198:         vec->src[i].swizzle[0] = vec_swizzle[i];
        -:        -:  199:      } else {
       12:       12:  200:         vec->src[i].src = nir_src_for_ssa(old_src);
       12:       12:  201:         vec->src[i].swizzle[0] = i;
        -:        -:  202:      }
        -:        -:  203:   }
        -:        -:  204:
        8:        8:  205:   nir_ssa_dest_init(&vec->instr, &vec->dest.dest, reg->num_components,
        4:        4:  206:                     reg->bit_size, reg->name);
        4:        4:  207:   nir_instr_insert(nir_after_instr(&alu->instr), &vec->instr);
        -:        -:  208:
        4:        4:  209:   nir_phi_builder_value_set_block_def(value, alu->instr.block,
        -:        -:  210:                                       &vec->dest.dest.ssa);
        -:        -:  211:}
        -:        -:  212:
        -:        -:  213:bool
        2:        2:  214:nir_lower_regs_to_ssa_impl(nir_function_impl *impl)
        -:        -:  215:{
        2:        2:  216:   if (exec_list_is_empty(&impl->registers))
    #####:    #####:  217:      return false;
        -:        -:  218:
        2:        2:  219:   nir_metadata_require(impl, nir_metadata_block_index |
        -:        -:  220:                              nir_metadata_dominance);
        2:        2:  221:   nir_index_local_regs(impl);
        -:        -:  222:
        -:        -:  223:   struct regs_to_ssa_state state;
        2:        2:  224:   state.shader = impl->function->shader;
        2:        2:  225:   state.values = malloc(impl->reg_alloc * sizeof(*state.values));
        -:        -:  226:
        2:        2:  227:   struct nir_phi_builder *phi_build = nir_phi_builder_create(impl);
        -:        -:  228:
        2:        2:  229:   const unsigned block_set_words = BITSET_WORDS(impl->num_blocks);
        2:        2:  230:   NIR_VLA(BITSET_WORD, defs, block_set_words);
        -:        -:  231:
       17:       17:  232:   nir_foreach_register(reg, &impl->registers) {
       15:       15:  233:      if (reg->num_array_elems != 0 || reg->is_packed) {
        -:        -:  234:         /* This pass only really works on "plain" registers.  If it's a
        -:        -:  235:          * packed or array register, just set the value to NULL so that the
        -:        -:  236:          * rewrite portion of the pass will know to ignore it.
        -:        -:  237:          */
    #####:    #####:  238:         state.values[reg->index] = NULL;
    #####:    #####:  239:         continue;
        -:        -:  240:      }
        -:        -:  241:
       15:       15:  242:      memset(defs, 0, block_set_words * sizeof(*defs));
        -:        -:  243:
       65:       65:  244:      nir_foreach_def(dest, reg)
       50:       50:  245:         BITSET_SET(defs, dest->reg.parent_instr->block->index);
        -:        -:  246:
       30:       30:  247:      state.values[reg->index] =
       15:       15:  248:         nir_phi_builder_add_value(phi_build, reg->num_components,
       15:       15:  249:                                   reg->bit_size, defs);
        -:        -:  250:   }
        -:        -:  251:
       35:       51:  252:   nir_foreach_block(block, impl) {
      370:      402:  253:      nir_foreach_instr(instr, block) {
      337:      353:  254:         if (instr->type == nir_instr_type_alu) {
      220:      222:  255:            rewrite_alu_instr(nir_instr_as_alu(instr), &state);
        -:        -:  256:         } else {
      117:      131:  257:            nir_foreach_src(instr, rewrite_src, &state);
      117:      131:  258:            nir_foreach_dest(instr, rewrite_dest, &state);
        -:        -:  259:         }
        -:        -:  260:      }
        -:        -:  261:
       33:       49:  262:      nir_if *following_if = nir_block_get_following_if(block);
       33:       49:  263:      if (following_if)
        9:       13:  264:         rewrite_if_condition(following_if, &state);
        -:        -:  265:   }
        -:        -:  266:
        2:        2:  267:   nir_phi_builder_finish(phi_build);
        -:        -:  268:
       17:       17:  269:   nir_foreach_register_safe(reg, &impl->registers) {
       15:       15:  270:      if (state.values[reg->index]) {
       15:       15:  271:         assert(list_empty(®->uses));
       15:       15:  272:         assert(list_empty(®->if_uses));
       15:       15:  273:         assert(list_empty(®->defs));
       15:       15:  274:         exec_node_remove(®->node);
        -:        -:  275:      }
        -:        -:  276:   }
        -:        -:  277:
        2:        2:  278:   free(state.values);
        -:        -:  279:
        2:        2:  280:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  281:                               nir_metadata_dominance);
        2:        2:  282:   return true;
        -:        -:  283:}
        -:        -:  284:
        -:        -:  285:bool
        1:        1:  286:nir_lower_regs_to_ssa(nir_shader *shader)
        -:        -:  287:{
        1:        1:  288:   assert(exec_list_is_empty(&shader->registers));
        1:        1:  289:   bool progress = false;
        -:        -:  290:
        2:        2:  291:   nir_foreach_function(function, shader) {
        1:        1:  292:      if (function->impl)
        1:        1:  293:         progress |= nir_lower_regs_to_ssa_impl(function->impl);
        -:        -:  294:   }
        -:        -:  295:
        1:        1:  296:   return progress;
        -:        -:  297:}

src/compiler/nir_lower_returns.c.gcov

        -:        -:    0:Source:nir/nir_lower_returns.c
        -:        -:    0:Graph:nir/.libs/nir_lower_returns.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_returns.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:#include "nir_control_flow.h"
        -:        -:   27:
        -:        -:   28:struct lower_returns_state {
        -:        -:   29:   nir_builder builder;
        -:        -:   30:   struct exec_list *cf_list;
        -:        -:   31:   nir_loop *loop;
        -:        -:   32:   nir_variable *return_flag;
        -:        -:   33:
        -:        -:   34:   /* This indicates that we have a return which is predicated on some form of
        -:        -:   35:    * control-flow.  Since whether or not the return happens can only be
        -:        -:   36:    * determined dynamically at run-time, everything that occurs afterwards
        -:        -:   37:    * needs to be predicated on the return flag variable.
        -:        -:   38:    */
        -:        -:   39:   bool has_predicated_return;
        -:        -:   40:};
        -:        -:   41:
        -:        -:   42:static bool lower_returns_in_cf_list(struct exec_list *cf_list,
        -:        -:   43:                                     struct lower_returns_state *state);
        -:        -:   44:
        -:        -:   45:static void
    #####:    #####:   46:predicate_following(nir_cf_node *node, struct lower_returns_state *state)
        -:        -:   47:{
    #####:    #####:   48:   nir_builder *b = &state->builder;
    #####:    #####:   49:   b->cursor = nir_after_cf_node_and_phis(node);
        -:        -:   50:
    #####:    #####:   51:   if (nir_cursors_equal(b->cursor, nir_after_cf_list(state->cf_list)))
    #####:    #####:   52:      return; /* Nothing to predicate */
        -:        -:   53:
    #####:    #####:   54:   assert(state->return_flag);
        -:        -:   55:
    #####:    #####:   56:   nir_if *if_stmt = nir_if_create(b->shader);
    #####:    #####:   57:   if_stmt->condition = nir_src_for_ssa(nir_load_var(b, state->return_flag));
    #####:    #####:   58:   nir_cf_node_insert(b->cursor, &if_stmt->cf_node);
        -:        -:   59:
    #####:    #####:   60:   if (state->loop) {
        -:        -:   61:      /* If we're inside of a loop, then all we need to do is insert a
        -:        -:   62:       * conditional break.
        -:        -:   63:       */
    #####:    #####:   64:      nir_jump_instr *brk =
    #####:    #####:   65:         nir_jump_instr_create(state->builder.shader, nir_jump_break);
    #####:    #####:   66:      nir_instr_insert(nir_before_cf_list(&if_stmt->then_list), &brk->instr);
        -:        -:   67:   } else {
        -:        -:   68:      /* Otherwise, we need to actually move everything into the else case
        -:        -:   69:       * of the if statement.
        -:        -:   70:       */
        -:        -:   71:      nir_cf_list list;
    #####:    #####:   72:      nir_cf_extract(&list, nir_after_cf_node(&if_stmt->cf_node),
        -:        -:   73:                            nir_after_cf_list(state->cf_list));
    #####:    #####:   74:      assert(!exec_list_is_empty(&list.list));
    #####:    #####:   75:      nir_cf_reinsert(&list, nir_before_cf_list(&if_stmt->else_list));
        -:        -:   76:   }
        -:        -:   77:}
        -:        -:   78:
        -:        -:   79:static bool
        3:        5:   80:lower_returns_in_loop(nir_loop *loop, struct lower_returns_state *state)
        -:        -:   81:{
        3:        5:   82:   nir_loop *parent = state->loop;
        3:        5:   83:   state->loop = loop;
        3:        5:   84:   bool progress = lower_returns_in_cf_list(&loop->body, state);
        3:        5:   85:   state->loop = parent;
        -:        -:   86:
        -:        -:   87:   /* If the recursive call made progress, then there were returns inside
        -:        -:   88:    * of the loop.  These would have been lowered to breaks with the return
        -:        -:   89:    * flag set to true.  We need to predicate everything following the loop
        -:        -:   90:    * on the return flag.
        -:        -:   91:    */
        3:        5:   92:   if (progress) {
    #####:    #####:   93:      predicate_following(&loop->cf_node, state);
    #####:    #####:   94:      state->has_predicated_return = true;
        -:        -:   95:   }
        -:        -:   96:
        3:        5:   97:   return progress;
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:static bool
       26:       30:  101:lower_returns_in_if(nir_if *if_stmt, struct lower_returns_state *state)
        -:        -:  102:{
        -:        -:  103:   bool progress, then_progress, else_progress;
        -:        -:  104:
       26:       30:  105:   bool has_predicated_return = state->has_predicated_return;
       26:       30:  106:   state->has_predicated_return = false;
        -:        -:  107:
       26:       30:  108:   then_progress = lower_returns_in_cf_list(&if_stmt->then_list, state);
       26:       30:  109:   else_progress = lower_returns_in_cf_list(&if_stmt->else_list, state);
       26:       30:  110:   progress = then_progress || else_progress;
        -:        -:  111:
        -:        -:  112:   /* If either of the recursive calls made progress, then there were
        -:        -:  113:    * returns inside of the body of the if.  If we're in a loop, then these
        -:        -:  114:    * were lowered to breaks which automatically skip to the end of the
        -:        -:  115:    * loop so we don't have to do anything.  If we're not in a loop, then
        -:        -:  116:    * all we know is that the return flag is set appropriately and that the
        -:        -:  117:    * recursive calls ensured that nothing gets executed *inside* the if
        -:        -:  118:    * after a return.  In order to ensure nothing outside gets executed
        -:        -:  119:    * after a return, we need to predicate everything following on the
        -:        -:  120:    * return flag.
        -:        -:  121:    */
       26:       30:  122:   if (progress && !state->loop) {
    #####:    #####:  123:      if (state->has_predicated_return) {
    #####:    #####:  124:         predicate_following(&if_stmt->cf_node, state);
        -:        -:  125:      } else {
        -:        -:  126:         /* If there are no nested returns we can just add the instructions to
        -:        -:  127:          * the end of the branch that doesn't have the return.
        -:        -:  128:          */
        -:        -:  129:         nir_cf_list list;
    #####:    #####:  130:         nir_cf_extract(&list, nir_after_cf_node(&if_stmt->cf_node),
        -:        -:  131:                        nir_after_cf_list(state->cf_list));
        -:        -:  132:
    #####:    #####:  133:         if (then_progress && else_progress) {
        -:        -:  134:            /* Both branches return so delete instructions following the if */
    #####:    #####:  135:            nir_cf_delete(&list);
    #####:    #####:  136:         } else if (then_progress) {
    #####:    #####:  137:            nir_cf_reinsert(&list, nir_after_cf_list(&if_stmt->else_list));
        -:        -:  138:         } else {
    #####:    #####:  139:            nir_cf_reinsert(&list, nir_after_cf_list(&if_stmt->then_list));
        -:        -:  140:         }
        -:        -:  141:      }
        -:        -:  142:   }
        -:        -:  143:
       26:       30:  144:   state->has_predicated_return = progress || has_predicated_return;
        -:        -:  145:
       26:       30:  146:   return progress;
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:static bool
       87:      103:  150:lower_returns_in_block(nir_block *block, struct lower_returns_state *state)
        -:        -:  151:{
       90:      106:  152:   if (block->predecessors->entries == 0 &&
        3:        3:  153:       block != nir_start_block(state->builder.impl)) {
        -:        -:  154:      /* This block is unreachable.  Delete it and everything after it. */
        -:        -:  155:      nir_cf_list list;
    #####:    #####:  156:      nir_cf_extract(&list, nir_before_cf_node(&block->cf_node),
        -:        -:  157:                            nir_after_cf_list(state->cf_list));
        -:        -:  158:
    #####:    #####:  159:      if (exec_list_is_empty(&list.list)) {
        -:        -:  160:         /* There's nothing here, which also means there's nothing in this
        -:        -:  161:          * block so we have nothing to do.
        -:        -:  162:          */
    #####:    #####:  163:         return false;
        -:        -:  164:      } else {
    #####:    #####:  165:         nir_cf_delete(&list);
    #####:    #####:  166:         return true;
        -:        -:  167:      }
        -:        -:  168:   }
        -:        -:  169:
       87:      103:  170:   nir_instr *last_instr = nir_block_last_instr(block);
       87:      103:  171:   if (last_instr == NULL)
       24:       32:  172:      return false;
        -:        -:  173:
       63:       71:  174:   if (last_instr->type != nir_instr_type_jump)
       58:       62:  175:      return false;
        -:        -:  176:
        5:        9:  177:   nir_jump_instr *jump = nir_instr_as_jump(last_instr);
        5:        9:  178:   if (jump->type != nir_jump_return)
        5:        9:  179:      return false;
        -:        -:  180:
    #####:    #####:  181:   nir_instr_remove(&jump->instr);
        -:        -:  182:
    #####:    #####:  183:   nir_builder *b = &state->builder;
        -:        -:  184:
        -:        -:  185:   /* Set the return flag */
    #####:    #####:  186:   if (state->return_flag == NULL) {
    #####:    #####:  187:      state->return_flag =
    #####:    #####:  188:         nir_local_variable_create(b->impl, glsl_bool_type(), "return");
        -:        -:  189:
        -:        -:  190:      /* Initialize the variable to 0 */
    #####:    #####:  191:      b->cursor = nir_before_cf_list(&b->impl->body);
    #####:    #####:  192:      nir_store_var(b, state->return_flag, nir_imm_int(b, NIR_FALSE), 1);
        -:        -:  193:   }
        -:        -:  194:
    #####:    #####:  195:   b->cursor = nir_after_block(block);
    #####:    #####:  196:   nir_store_var(b, state->return_flag, nir_imm_int(b, NIR_TRUE), 1);
        -:        -:  197:
    #####:    #####:  198:   if (state->loop) {
        -:        -:  199:      /* We're in a loop;  we need to break out of it. */
    #####:    #####:  200:      nir_jump(b, nir_jump_break);
        -:        -:  201:   } else {
        -:        -:  202:      /* Not in a loop;  we'll deal with predicating later*/
    #####:    #####:  203:      assert(nir_cf_node_next(&block->cf_node) == NULL);
        -:        -:  204:   }
        -:        -:  205:
    #####:    #####:  206:   return true;
        -:        -:  207:}
        -:        -:  208:
        -:        -:  209:static bool
       58:       68:  210:lower_returns_in_cf_list(struct exec_list *cf_list,
        -:        -:  211:                         struct lower_returns_state *state)
        -:        -:  212:{
       58:       68:  213:   bool progress = false;
        -:        -:  214:
       58:       68:  215:   struct exec_list *parent_list = state->cf_list;
       58:       68:  216:   state->cf_list = cf_list;
        -:        -:  217:
        -:        -:  218:   /* We iterate over the list backwards because any given lower call may
        -:        -:  219:    * take everything following the given CF node and predicate it.  In
        -:        -:  220:    * order to avoid recursion/iteration problems, we want everything after
        -:        -:  221:    * a given node to already be lowered before this happens.
        -:        -:  222:    */
      174:      206:  223:   foreach_list_typed_reverse_safe(nir_cf_node, node, node, cf_list) {
      116:      138:  224:      switch (node->type) {
        -:        -:  225:      case nir_cf_node_block:
       87:      103:  226:         if (lower_returns_in_block(nir_cf_node_as_block(node), state))
    #####:    #####:  227:            progress = true;
       87:      103:  228:         break;
        -:        -:  229:
        -:        -:  230:      case nir_cf_node_if:
       26:       30:  231:         if (lower_returns_in_if(nir_cf_node_as_if(node), state))
    #####:    #####:  232:            progress = true;
       26:       30:  233:         break;
        -:        -:  234:
        -:        -:  235:      case nir_cf_node_loop:
        3:        5:  236:         if (lower_returns_in_loop(nir_cf_node_as_loop(node), state))
    #####:    #####:  237:            progress = true;
        3:        5:  238:         break;
        -:        -:  239:
        -:        -:  240:      default:
    #####:    #####:  241:         unreachable("Invalid inner CF node type");
        -:        -:  242:      }
        -:        -:  243:   }
        -:        -:  244:
       58:       68:  245:   state->cf_list = parent_list;
        -:        -:  246:
       58:       68:  247:   return progress;
        -:        -:  248:}
        -:        -:  249:
        -:        -:  250:bool
        3:        3:  251:nir_lower_returns_impl(nir_function_impl *impl)
        -:        -:  252:{
        -:        -:  253:   struct lower_returns_state state;
        -:        -:  254:
        3:        3:  255:   state.cf_list = &impl->body;
        3:        3:  256:   state.loop = NULL;
        3:        3:  257:   state.return_flag = NULL;
        3:        3:  258:   state.has_predicated_return = false;
        3:        3:  259:   nir_builder_init(&state.builder, impl);
        -:        -:  260:
        3:        3:  261:   bool progress = lower_returns_in_cf_list(&impl->body, &state);
        -:        -:  262:
        3:        3:  263:   if (progress) {
    #####:    #####:  264:      nir_metadata_preserve(impl, nir_metadata_none);
    #####:    #####:  265:      nir_repair_ssa_impl(impl);
        -:        -:  266:   }
        -:        -:  267:
        3:        3:  268:   return progress;
        -:        -:  269:}
        -:        -:  270:
        -:        -:  271:bool
        3:        3:  272:nir_lower_returns(nir_shader *shader)
        -:        -:  273:{
        3:        3:  274:   bool progress = false;
        -:        -:  275:
        6:        6:  276:   nir_foreach_function(function, shader) {
        3:        3:  277:      if (function->impl)
        3:        3:  278:         progress = nir_lower_returns_impl(function->impl) || progress;
        -:        -:  279:   }
        -:        -:  280:
        3:        3:  281:   return progress;
        -:        -:  282:}

src/compiler/nir_lower_samplers.c.gcov

        -:        -:    0:Source:nir/nir_lower_samplers.c
        -:        -:    0:Graph:nir/.libs/nir_lower_samplers.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_samplers.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright (C) 2005-2007  Brian Paul   All Rights Reserved.
        -:        -:    3: * Copyright (C) 2008  VMware, Inc.   All Rights Reserved.
        -:        -:    4: * Copyright © 2014 Intel Corporation
        -:        -:    5: *
        -:        -:    6: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    7: * copy of this software and associated documentation files (the "Software"),
        -:        -:    8: * to deal in the Software without restriction, including without limitation
        -:        -:    9: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:   10: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   11: * Software is furnished to do so, subject to the following conditions:
        -:        -:   12: *
        -:        -:   13: * The above copyright notice and this permission notice (including the next
        -:        -:   14: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   15: * Software.
        -:        -:   16: *
        -:        -:   17: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   18: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   19: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   20: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   21: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   22: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   23: * DEALINGS IN THE SOFTWARE.
        -:        -:   24: */
        -:        -:   25:
        -:        -:   26:#include "nir.h"
        -:        -:   27:#include "nir_builder.h"
        -:        -:   28:#include "compiler/glsl/ir_uniform.h"
        -:        -:   29:
        -:        -:   30:#include "main/compiler.h"
        -:        -:   31:#include "main/mtypes.h"
        -:        -:   32:#include "program/prog_parameter.h"
        -:        -:   33:#include "program/program.h"
        -:        -:   34:
        -:        -:   35:/* Calculate the sampler index based on array indicies and also
        -:        -:   36: * calculate the base uniform location for struct members.
        -:        -:   37: */
        -:        -:   38:static void
    #####:    #####:   39:calc_sampler_offsets(nir_deref *tail, nir_tex_instr *instr,
        -:        -:   40:                     unsigned *array_elements, nir_ssa_def **indirect,
        -:        -:   41:                     nir_builder *b, unsigned *location)
        -:        -:   42:{
    #####:    #####:   43:   if (tail->child == NULL)
    #####:    #####:   44:      return;
        -:        -:   45:
    #####:    #####:   46:   switch (tail->child->deref_type) {
        -:        -:   47:   case nir_deref_type_array: {
    #####:    #####:   48:      nir_deref_array *deref_array = nir_deref_as_array(tail->child);
        -:        -:   49:
    #####:    #####:   50:      assert(deref_array->deref_array_type != nir_deref_array_type_wildcard);
        -:        -:   51:
    #####:    #####:   52:      calc_sampler_offsets(tail->child, instr, array_elements,
        -:        -:   53:                           indirect, b, location);
    #####:    #####:   54:      instr->texture_index += deref_array->base_offset * *array_elements;
        -:        -:   55:
    #####:    #####:   56:      if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:   57:         nir_ssa_def *mul =
    #####:    #####:   58:            nir_imul(b, nir_imm_int(b, *array_elements),
        -:        -:   59:                     nir_ssa_for_src(b, deref_array->indirect, 1));
        -:        -:   60:
    #####:    #####:   61:         nir_instr_rewrite_src(&instr->instr, &deref_array->indirect,
        -:        -:   62:                               NIR_SRC_INIT);
        -:        -:   63:
    #####:    #####:   64:         if (*indirect) {
    #####:    #####:   65:            *indirect = nir_iadd(b, *indirect, mul);
        -:        -:   66:         } else {
    #####:    #####:   67:            *indirect = mul;
        -:        -:   68:         }
        -:        -:   69:      }
        -:        -:   70:
    #####:    #####:   71:      *array_elements *= glsl_get_length(tail->type);
    #####:    #####:   72:       break;
        -:        -:   73:   }
        -:        -:   74:
        -:        -:   75:   case nir_deref_type_struct: {
    #####:    #####:   76:      nir_deref_struct *deref_struct = nir_deref_as_struct(tail->child);
    #####:    #####:   77:      *location += glsl_get_record_location_offset(tail->type, deref_struct->index);
    #####:    #####:   78:      calc_sampler_offsets(tail->child, instr, array_elements,
        -:        -:   79:                           indirect, b, location);
    #####:    #####:   80:      break;
        -:        -:   81:   }
        -:        -:   82:
        -:        -:   83:   default:
    #####:    #####:   84:      unreachable("Invalid deref type");
        -:        -:   85:      break;
        -:        -:   86:   }
        -:        -:   87:}
        -:        -:   88:
        -:        -:   89:static bool
    #####:    #####:   90:lower_sampler(nir_tex_instr *instr, const struct gl_shader_program *shader_program,
        -:        -:   91:              gl_shader_stage stage, nir_builder *b)
        -:        -:   92:{
    #####:    #####:   93:   if (instr->texture == NULL)
    #####:    #####:   94:      return false;
        -:        -:   95:
        -:        -:   96:   /* In GLSL, we only fill out the texture field.  The sampler is inferred */
    #####:    #####:   97:   assert(instr->sampler == NULL);
        -:        -:   98:
    #####:    #####:   99:   instr->texture_index = 0;
    #####:    #####:  100:   unsigned location = instr->texture->var->data.location;
    #####:    #####:  101:   unsigned array_elements = 1;
    #####:    #####:  102:   nir_ssa_def *indirect = NULL;
        -:        -:  103:
    #####:    #####:  104:   b->cursor = nir_before_instr(&instr->instr);
    #####:    #####:  105:   calc_sampler_offsets(&instr->texture->deref, instr, &array_elements,
        -:        -:  106:                        &indirect, b, &location);
        -:        -:  107:
    #####:    #####:  108:   if (indirect) {
    #####:    #####:  109:      assert(array_elements >= 1);
    #####:    #####:  110:      indirect = nir_umin(b, indirect, nir_imm_int(b, array_elements - 1));
        -:        -:  111:
        -:        -:  112:      /* First, we have to resize the array of texture sources */
    #####:    #####:  113:      nir_tex_src *new_srcs = rzalloc_array(instr, nir_tex_src,
        -:        -:  114:                                            instr->num_srcs + 2);
        -:        -:  115:
    #####:    #####:  116:      for (unsigned i = 0; i < instr->num_srcs; i++) {
    #####:    #####:  117:         new_srcs[i].src_type = instr->src[i].src_type;
    #####:    #####:  118:         nir_instr_move_src(&instr->instr, &new_srcs[i].src,
    #####:    #####:  119:                            &instr->src[i].src);
        -:        -:  120:      }
        -:        -:  121:
    #####:    #####:  122:      ralloc_free(instr->src);
    #####:    #####:  123:      instr->src = new_srcs;
        -:        -:  124:
        -:        -:  125:      /* Now we can go ahead and move the source over to being a
        -:        -:  126:       * first-class texture source.
        -:        -:  127:       */
    #####:    #####:  128:      instr->src[instr->num_srcs].src_type = nir_tex_src_texture_offset;
    #####:    #####:  129:      instr->num_srcs++;
    #####:    #####:  130:      nir_instr_rewrite_src(&instr->instr,
    #####:    #####:  131:                            &instr->src[instr->num_srcs - 1].src,
        -:        -:  132:                            nir_src_for_ssa(indirect));
        -:        -:  133:
    #####:    #####:  134:      instr->src[instr->num_srcs].src_type = nir_tex_src_sampler_offset;
    #####:    #####:  135:      instr->num_srcs++;
    #####:    #####:  136:      nir_instr_rewrite_src(&instr->instr,
    #####:    #####:  137:                            &instr->src[instr->num_srcs - 1].src,
        -:        -:  138:                            nir_src_for_ssa(indirect));
        -:        -:  139:
    #####:    #####:  140:      instr->texture_array_size = array_elements;
        -:        -:  141:   }
        -:        -:  142:
    #####:    #####:  143:   assert(location < shader_program->data->NumUniformStorage &&
        -:        -:  144:          shader_program->data->UniformStorage[location].opaque[stage].active);
        -:        -:  145:
    #####:    #####:  146:   instr->texture_index +=
    #####:    #####:  147:      shader_program->data->UniformStorage[location].opaque[stage].index;
        -:        -:  148:
    #####:    #####:  149:   instr->sampler_index = instr->texture_index;
        -:        -:  150:
    #####:    #####:  151:   instr->texture = NULL;
        -:        -:  152:
    #####:    #####:  153:   return true;
        -:        -:  154:}
        -:        -:  155:
        -:        -:  156:static bool
        3:        3:  157:lower_impl(nir_function_impl *impl, const struct gl_shader_program *shader_program,
        -:        -:  158:           gl_shader_stage stage)
        -:        -:  159:{
        -:        -:  160:   nir_builder b;
        3:        3:  161:   nir_builder_init(&b, impl);
        3:        3:  162:   bool progress = false;
        -:        -:  163:
       37:       53:  164:   nir_foreach_block(block, impl) {
      199:      259:  165:      nir_foreach_instr(instr, block) {
      165:      209:  166:         if (instr->type == nir_instr_type_tex)
    #####:    #####:  167:            progress |= lower_sampler(nir_instr_as_tex(instr),
        -:        -:  168:                                      shader_program, stage, &b);
        -:        -:  169:      }
        -:        -:  170:   }
        -:        -:  171:
        3:        3:  172:   return progress;
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:bool
        3:        3:  176:nir_lower_samplers(nir_shader *shader,
        -:        -:  177:                   const struct gl_shader_program *shader_program)
        -:        -:  178:{
        3:        3:  179:   bool progress = false;
        -:        -:  180:
        6:        6:  181:   nir_foreach_function(function, shader) {
        3:        3:  182:      if (function->impl)
        3:        3:  183:         progress |= lower_impl(function->impl, shader_program, shader->stage);
        -:        -:  184:   }
        -:        -:  185:
        3:        3:  186:   return progress;
        -:        -:  187:}

src/compiler/nir_lower_system_values.c.gcov

        -:        -:    0:Source:nir/nir_lower_system_values.c
        -:        -:    0:Graph:nir/.libs/nir_lower_system_values.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_system_values.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_builder.h"
        -:        -:   30:
        -:        -:   31:static bool
       35:       51:   32:convert_block(nir_block *block, nir_builder *b)
        -:        -:   33:{
       35:       51:   34:   bool progress = false;
        -:        -:   35:
      174:      232:   36:   nir_foreach_instr_safe(instr, block) {
      139:      181:   37:      if (instr->type != nir_instr_type_intrinsic)
      107:      143:   38:         continue;
        -:        -:   39:
       32:       38:   40:      nir_intrinsic_instr *load_var = nir_instr_as_intrinsic(instr);
        -:        -:   41:
       32:       38:   42:      if (load_var->intrinsic != nir_intrinsic_load_var)
        5:        5:   43:         continue;
        -:        -:   44:
       27:       33:   45:      nir_variable *var = load_var->variables[0]->var;
       27:       33:   46:      if (var->data.mode != nir_var_system_value)
       27:       33:   47:         continue;
        -:        -:   48:
    #####:    #####:   49:      b->cursor = nir_after_instr(&load_var->instr);
        -:        -:   50:
    #####:    #####:   51:      nir_ssa_def *sysval = NULL;
    #####:    #####:   52:      switch (var->data.location) {
        -:        -:   53:      case SYSTEM_VALUE_GLOBAL_INVOCATION_ID: {
        -:        -:   54:         /* From the GLSL man page for gl_GlobalInvocationID:
        -:        -:   55:          *
        -:        -:   56:          *    "The value of gl_GlobalInvocationID is equal to
        -:        -:   57:          *    gl_WorkGroupID * gl_WorkGroupSize + gl_LocalInvocationID"
        -:        -:   58:          */
        -:        -:   59:
        -:        -:   60:         nir_const_value local_size;
    #####:    #####:   61:         local_size.u32[0] = b->shader->info->cs.local_size[0];
    #####:    #####:   62:         local_size.u32[1] = b->shader->info->cs.local_size[1];
    #####:    #####:   63:         local_size.u32[2] = b->shader->info->cs.local_size[2];
        -:        -:   64:
    #####:    #####:   65:         nir_ssa_def *group_id = nir_load_work_group_id(b);
    #####:    #####:   66:         nir_ssa_def *local_id = nir_load_local_invocation_id(b);
        -:        -:   67:
    #####:    #####:   68:         sysval = nir_iadd(b, nir_imul(b, group_id,
        -:        -:   69:                                       nir_build_imm(b, 3, 32, local_size)),
        -:        -:   70:                              local_id);
    #####:    #####:   71:         break;
        -:        -:   72:      }
        -:        -:   73:
        -:        -:   74:      case SYSTEM_VALUE_LOCAL_INVOCATION_INDEX: {
        -:        -:   75:         /* If lower_cs_local_index_from_id is true, then we derive the local
        -:        -:   76:          * index from the local id.
        -:        -:   77:          */
    #####:    #####:   78:         if (!b->shader->options->lower_cs_local_index_from_id)
    #####:    #####:   79:            break;
        -:        -:   80:
        -:        -:   81:         /* From the GLSL man page for gl_LocalInvocationIndex:
        -:        -:   82:          *
        -:        -:   83:          *    "The value of gl_LocalInvocationIndex is equal to
        -:        -:   84:          *    gl_LocalInvocationID.z * gl_WorkGroupSize.x *
        -:        -:   85:          *    gl_WorkGroupSize.y + gl_LocalInvocationID.y *
        -:        -:   86:          *    gl_WorkGroupSize.x + gl_LocalInvocationID.x"
        -:        -:   87:          */
    #####:    #####:   88:         nir_ssa_def *local_id = nir_load_local_invocation_id(b);
        -:        -:   89:
    #####:    #####:   90:         nir_ssa_def *size_x =
    #####:    #####:   91:            nir_imm_int(b, b->shader->info->cs.local_size[0]);
    #####:    #####:   92:         nir_ssa_def *size_y =
    #####:    #####:   93:            nir_imm_int(b, b->shader->info->cs.local_size[1]);
        -:        -:   94:
    #####:    #####:   95:         sysval = nir_imul(b, nir_channel(b, local_id, 2),
        -:        -:   96:                              nir_imul(b, size_x, size_y));
    #####:    #####:   97:         sysval = nir_iadd(b, sysval,
        -:        -:   98:                              nir_imul(b, nir_channel(b, local_id, 1), size_x));
    #####:    #####:   99:         sysval = nir_iadd(b, sysval, nir_channel(b, local_id, 0));
    #####:    #####:  100:         break;
        -:        -:  101:      }
        -:        -:  102:
        -:        -:  103:      case SYSTEM_VALUE_VERTEX_ID:
    #####:    #####:  104:         if (b->shader->options->vertex_id_zero_based) {
    #####:    #####:  105:            sysval = nir_iadd(b,
        -:        -:  106:                              nir_load_vertex_id_zero_base(b),
        -:        -:  107:                              nir_load_base_vertex(b));
        -:        -:  108:         } else {
    #####:    #####:  109:            sysval = nir_load_vertex_id(b);
        -:        -:  110:         }
    #####:    #####:  111:         break;
        -:        -:  112:
        -:        -:  113:      case SYSTEM_VALUE_INSTANCE_INDEX:
    #####:    #####:  114:         sysval = nir_iadd(b,
        -:        -:  115:                           nir_load_instance_id(b),
        -:        -:  116:                           nir_load_base_instance(b));
    #####:    #####:  117:         break;
        -:        -:  118:
        -:        -:  119:      default:
    #####:    #####:  120:         break;
        -:        -:  121:      }
        -:        -:  122:
    #####:    #####:  123:      if (sysval == NULL) {
    #####:    #####:  124:         nir_intrinsic_op sysval_op =
    #####:    #####:  125:            nir_intrinsic_from_system_value(var->data.location);
    #####:    #####:  126:         sysval = nir_load_system_value(b, sysval_op, 0);
        -:        -:  127:      }
        -:        -:  128:
    #####:    #####:  129:      nir_ssa_def_rewrite_uses(&load_var->dest.ssa, nir_src_for_ssa(sysval));
    #####:    #####:  130:      nir_instr_remove(&load_var->instr);
        -:        -:  131:
    #####:    #####:  132:      progress = true;
        -:        -:  133:   }
        -:        -:  134:
       35:       51:  135:   return progress;
        -:        -:  136:}
        -:        -:  137:
        -:        -:  138:static bool
        4:        4:  139:convert_impl(nir_function_impl *impl)
        -:        -:  140:{
        4:        4:  141:   bool progress = false;
        -:        -:  142:   nir_builder builder;
        4:        4:  143:   nir_builder_init(&builder, impl);
        -:        -:  144:
       39:       55:  145:   nir_foreach_block(block, impl) {
       35:       51:  146:      progress |= convert_block(block, &builder);
        -:        -:  147:   }
        -:        -:  148:
        4:        4:  149:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  150:                               nir_metadata_dominance);
        4:        4:  151:   return progress;
        -:        -:  152:}
        -:        -:  153:
        -:        -:  154:bool
        4:        4:  155:nir_lower_system_values(nir_shader *shader)
        -:        -:  156:{
        4:        4:  157:   bool progress = false;
        -:        -:  158:
        8:        8:  159:   nir_foreach_function(function, shader) {
        4:        4:  160:      if (function->impl)
        4:        4:  161:         progress = convert_impl(function->impl) || progress;
        -:        -:  162:   }
        -:        -:  163:
        4:        4:  164:   exec_list_make_empty(&shader->system_values);
        -:        -:  165:
        4:        4:  166:   return progress;
        -:        -:  167:}

src/compiler/nir_lower_tex.c.gcov

        -:        -:    0:Source:nir/nir_lower_tex.c
        -:        -:    0:Graph:nir/.libs/nir_lower_tex.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_tex.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Broadcom
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/*
        -:        -:   25: * This lowering pass supports (as configured via nir_lower_tex_options)
        -:        -:   26: * various texture related conversions:
        -:        -:   27: *   + texture projector lowering: converts the coordinate division for
        -:        -:   28: *     texture projection to be done in ALU instructions instead of
        -:        -:   29: *     asking the texture operation to do so.
        -:        -:   30: *   + lowering RECT: converts the un-normalized RECT texture coordinates
        -:        -:   31: *     to normalized coordinates with txs plus ALU instructions
        -:        -:   32: *   + saturate s/t/r coords: to emulate certain texture clamp/wrap modes,
        -:        -:   33: *     inserts instructions to clamp specified coordinates to [0.0, 1.0].
        -:        -:   34: *     Note that this automatically triggers texture projector lowering if
        -:        -:   35: *     needed, since clamping must happen after projector lowering.
        -:        -:   36: */
        -:        -:   37:
        -:        -:   38:#include "nir.h"
        -:        -:   39:#include "nir_builder.h"
        -:        -:   40:
        -:        -:   41:static void
    #####:    #####:   42:project_src(nir_builder *b, nir_tex_instr *tex)
        -:        -:   43:{
        -:        -:   44:   /* Find the projector in the srcs list, if present. */
    #####:    #####:   45:   int proj_index = nir_tex_instr_src_index(tex, nir_tex_src_projector);
    #####:    #####:   46:   if (proj_index < 0)
    #####:    #####:   47:      return;
        -:        -:   48:
    #####:    #####:   49:   b->cursor = nir_before_instr(&tex->instr);
        -:        -:   50:
    #####:    #####:   51:   nir_ssa_def *inv_proj =
    #####:    #####:   52:      nir_frcp(b, nir_ssa_for_src(b, tex->src[proj_index].src, 1));
        -:        -:   53:
        -:        -:   54:   /* Walk through the sources projecting the arguments. */
    #####:    #####:   55:   for (unsigned i = 0; i < tex->num_srcs; i++) {
    #####:    #####:   56:      switch (tex->src[i].src_type) {
        -:        -:   57:      case nir_tex_src_coord:
        -:        -:   58:      case nir_tex_src_comparator:
    #####:    #####:   59:         break;
        -:        -:   60:      default:
    #####:    #####:   61:         continue;
        -:        -:   62:      }
    #####:    #####:   63:      nir_ssa_def *unprojected =
    #####:    #####:   64:         nir_ssa_for_src(b, tex->src[i].src, nir_tex_instr_src_size(tex, i));
    #####:    #####:   65:      nir_ssa_def *projected = nir_fmul(b, unprojected, inv_proj);
        -:        -:   66:
        -:        -:   67:      /* Array indices don't get projected, so make an new vector with the
        -:        -:   68:       * coordinate's array index untouched.
        -:        -:   69:       */
    #####:    #####:   70:      if (tex->is_array && tex->src[i].src_type == nir_tex_src_coord) {
    #####:    #####:   71:         switch (tex->coord_components) {
        -:        -:   72:         case 4:
    #####:    #####:   73:            projected = nir_vec4(b,
        -:        -:   74:                                 nir_channel(b, projected, 0),
        -:        -:   75:                                 nir_channel(b, projected, 1),
        -:        -:   76:                                 nir_channel(b, projected, 2),
        -:        -:   77:                                 nir_channel(b, unprojected, 3));
    #####:    #####:   78:            break;
        -:        -:   79:         case 3:
    #####:    #####:   80:            projected = nir_vec3(b,
        -:        -:   81:                                 nir_channel(b, projected, 0),
        -:        -:   82:                                 nir_channel(b, projected, 1),
        -:        -:   83:                                 nir_channel(b, unprojected, 2));
    #####:    #####:   84:            break;
        -:        -:   85:         case 2:
    #####:    #####:   86:            projected = nir_vec2(b,
        -:        -:   87:                                 nir_channel(b, projected, 0),
        -:        -:   88:                                 nir_channel(b, unprojected, 1));
    #####:    #####:   89:            break;
        -:        -:   90:         default:
    #####:    #####:   91:            unreachable("bad texture coord count for array");
        -:        -:   92:            break;
        -:        -:   93:         }
        -:        -:   94:      }
        -:        -:   95:
    #####:    #####:   96:      nir_instr_rewrite_src(&tex->instr,
    #####:    #####:   97:                            &tex->src[i].src,
        -:        -:   98:                            nir_src_for_ssa(projected));
        -:        -:   99:   }
        -:        -:  100:
    #####:    #####:  101:   nir_tex_instr_remove_src(tex, proj_index);
        -:        -:  102:}
        -:        -:  103:
        -:        -:  104:static bool
    #####:    #####:  105:lower_offset(nir_builder *b, nir_tex_instr *tex)
        -:        -:  106:{
    #####:    #####:  107:   int offset_index = nir_tex_instr_src_index(tex, nir_tex_src_offset);
    #####:    #####:  108:   if (offset_index < 0)
    #####:    #####:  109:      return false;
        -:        -:  110:
    #####:    #####:  111:   int coord_index = nir_tex_instr_src_index(tex, nir_tex_src_coord);
    #####:    #####:  112:   assert(coord_index >= 0);
        -:        -:  113:
    #####:    #####:  114:   assert(tex->src[offset_index].src.is_ssa);
    #####:    #####:  115:   assert(tex->src[coord_index].src.is_ssa);
    #####:    #####:  116:   nir_ssa_def *offset = tex->src[offset_index].src.ssa;
    #####:    #####:  117:   nir_ssa_def *coord = tex->src[coord_index].src.ssa;
        -:        -:  118:
    #####:    #####:  119:   b->cursor = nir_before_instr(&tex->instr);
        -:        -:  120:
        -:        -:  121:   nir_ssa_def *offset_coord;
    #####:    #####:  122:   if (nir_tex_instr_src_type(tex, coord_index) == nir_type_float) {
    #####:    #####:  123:      assert(tex->sampler_dim == GLSL_SAMPLER_DIM_RECT);
    #####:    #####:  124:      offset_coord = nir_fadd(b, coord, nir_i2f32(b, offset));
        -:        -:  125:   } else {
    #####:    #####:  126:      offset_coord = nir_iadd(b, coord, offset);
        -:        -:  127:   }
        -:        -:  128:
    #####:    #####:  129:   if (tex->is_array) {
        -:        -:  130:      /* The offset is not applied to the array index */
    #####:    #####:  131:      if (tex->coord_components == 2) {
    #####:    #####:  132:         offset_coord = nir_vec2(b, nir_channel(b, offset_coord, 0),
        -:        -:  133:                                    nir_channel(b, coord, 1));
    #####:    #####:  134:      } else if (tex->coord_components == 3) {
    #####:    #####:  135:         offset_coord = nir_vec3(b, nir_channel(b, offset_coord, 0),
        -:        -:  136:                                    nir_channel(b, offset_coord, 1),
        -:        -:  137:                                    nir_channel(b, coord, 2));
        -:        -:  138:      } else {
    #####:    #####:  139:         unreachable("Invalid number of components");
        -:        -:  140:      }
        -:        -:  141:   }
        -:        -:  142:
    #####:    #####:  143:   nir_instr_rewrite_src(&tex->instr, &tex->src[coord_index].src,
        -:        -:  144:                         nir_src_for_ssa(offset_coord));
        -:        -:  145:
    #####:    #####:  146:   nir_tex_instr_remove_src(tex, offset_index);
        -:        -:  147:
    #####:    #####:  148:   return true;
        -:        -:  149:}
        -:        -:  150:
        -:        -:  151:
        -:        -:  152:static nir_ssa_def *
    #####:    #####:  153:get_texture_size(nir_builder *b, nir_tex_instr *tex)
        -:        -:  154:{
    #####:    #####:  155:   b->cursor = nir_before_instr(&tex->instr);
        -:        -:  156:
        -:        -:  157:   nir_tex_instr *txs;
        -:        -:  158:
    #####:    #####:  159:   txs = nir_tex_instr_create(b->shader, 1);
    #####:    #####:  160:   txs->op = nir_texop_txs;
    #####:    #####:  161:   txs->sampler_dim = tex->sampler_dim;
    #####:    #####:  162:   txs->is_array = tex->is_array;
    #####:    #####:  163:   txs->is_shadow = tex->is_shadow;
    #####:    #####:  164:   txs->is_new_style_shadow = tex->is_new_style_shadow;
    #####:    #####:  165:   txs->texture_index = tex->texture_index;
    #####:    #####:  166:   txs->texture = nir_deref_var_clone(tex->texture, txs);
    #####:    #####:  167:   txs->sampler_index = tex->sampler_index;
    #####:    #####:  168:   txs->sampler = nir_deref_var_clone(tex->sampler, txs);
    #####:    #####:  169:   txs->dest_type = nir_type_int;
        -:        -:  170:
        -:        -:  171:   /* only single src, the lod: */
    #####:    #####:  172:   txs->src[0].src = nir_src_for_ssa(nir_imm_int(b, 0));
    #####:    #####:  173:   txs->src[0].src_type = nir_tex_src_lod;
        -:        -:  174:
    #####:    #####:  175:   nir_ssa_dest_init(&txs->instr, &txs->dest,
        -:        -:  176:                     nir_tex_instr_dest_size(txs), 32, NULL);
    #####:    #####:  177:   nir_builder_instr_insert(b, &txs->instr);
        -:        -:  178:
    #####:    #####:  179:   return nir_i2f32(b, &txs->dest.ssa);
        -:        -:  180:}
        -:        -:  181:
        -:        -:  182:static void
    #####:    #####:  183:lower_rect(nir_builder *b, nir_tex_instr *tex)
        -:        -:  184:{
    #####:    #####:  185:   nir_ssa_def *txs = get_texture_size(b, tex);
    #####:    #####:  186:   nir_ssa_def *scale = nir_frcp(b, txs);
        -:        -:  187:
        -:        -:  188:   /* Walk through the sources normalizing the requested arguments. */
    #####:    #####:  189:   for (unsigned i = 0; i < tex->num_srcs; i++) {
    #####:    #####:  190:      if (tex->src[i].src_type != nir_tex_src_coord)
    #####:    #####:  191:         continue;
        -:        -:  192:
    #####:    #####:  193:      nir_ssa_def *coords =
    #####:    #####:  194:         nir_ssa_for_src(b, tex->src[i].src, tex->coord_components);
    #####:    #####:  195:      nir_instr_rewrite_src(&tex->instr,
    #####:    #####:  196:                            &tex->src[i].src,
        -:        -:  197:                            nir_src_for_ssa(nir_fmul(b, coords, scale)));
        -:        -:  198:   }
        -:        -:  199:
    #####:    #####:  200:   tex->sampler_dim = GLSL_SAMPLER_DIM_2D;
    #####:    #####:  201:}
        -:        -:  202:
        -:        -:  203:static nir_ssa_def *
    #####:    #####:  204:sample_plane(nir_builder *b, nir_tex_instr *tex, int plane)
        -:        -:  205:{
    #####:    #####:  206:   assert(tex->dest.is_ssa);
    #####:    #####:  207:   assert(nir_tex_instr_dest_size(tex) == 4);
    #####:    #####:  208:   assert(nir_alu_type_get_base_type(tex->dest_type) == nir_type_float);
    #####:    #####:  209:   assert(tex->op == nir_texop_tex);
    #####:    #####:  210:   assert(tex->coord_components == 2);
        -:        -:  211:
    #####:    #####:  212:   nir_tex_instr *plane_tex = nir_tex_instr_create(b->shader, 2);
    #####:    #####:  213:   nir_src_copy(&plane_tex->src[0].src, &tex->src[0].src, plane_tex);
    #####:    #####:  214:   plane_tex->src[0].src_type = nir_tex_src_coord;
    #####:    #####:  215:   plane_tex->src[1].src = nir_src_for_ssa(nir_imm_int(b, plane));
    #####:    #####:  216:   plane_tex->src[1].src_type = nir_tex_src_plane;
    #####:    #####:  217:   plane_tex->op = nir_texop_tex;
    #####:    #####:  218:   plane_tex->sampler_dim = GLSL_SAMPLER_DIM_2D;
    #####:    #####:  219:   plane_tex->dest_type = nir_type_float;
    #####:    #####:  220:   plane_tex->coord_components = 2;
        -:        -:  221:
    #####:    #####:  222:   plane_tex->texture_index = tex->texture_index;
    #####:    #####:  223:   plane_tex->texture = nir_deref_var_clone(tex->texture, plane_tex);
    #####:    #####:  224:   plane_tex->sampler_index = tex->sampler_index;
    #####:    #####:  225:   plane_tex->sampler = nir_deref_var_clone(tex->sampler, plane_tex);
        -:        -:  226:
    #####:    #####:  227:   nir_ssa_dest_init(&plane_tex->instr, &plane_tex->dest, 4, 32, NULL);
        -:        -:  228:
    #####:    #####:  229:   nir_builder_instr_insert(b, &plane_tex->instr);
        -:        -:  230:
    #####:    #####:  231:   return &plane_tex->dest.ssa;
        -:        -:  232:}
        -:        -:  233:
        -:        -:  234:static void
    #####:    #####:  235:convert_yuv_to_rgb(nir_builder *b, nir_tex_instr *tex,
        -:        -:  236:                   nir_ssa_def *y, nir_ssa_def *u, nir_ssa_def *v)
        -:        -:  237:{
    #####:    #####:  238:   nir_const_value m[3] = {
        -:        -:  239:      { .f32 = { 1.0f,  0.0f,         1.59602678f, 0.0f } },
        -:        -:  240:      { .f32 = { 1.0f, -0.39176229f, -0.81296764f, 0.0f } },
        -:        -:  241:      { .f32 = { 1.0f,  2.01723214f,  0.0f,        0.0f } }
        -:        -:  242:   };
        -:        -:  243:
    #####:    #####:  244:   nir_ssa_def *yuv =
    #####:    #####:  245:      nir_vec4(b,
        -:        -:  246:               nir_fmul(b, nir_imm_float(b, 1.16438356f),
        -:        -:  247:                        nir_fadd(b, y, nir_imm_float(b, -16.0f / 255.0f))),
        -:        -:  248:               nir_channel(b, nir_fadd(b, u, nir_imm_float(b, -128.0f / 255.0f)), 0),
        -:        -:  249:               nir_channel(b, nir_fadd(b, v, nir_imm_float(b, -128.0f / 255.0f)), 0),
        -:        -:  250:               nir_imm_float(b, 0.0));
        -:        -:  251:
    #####:    #####:  252:   nir_ssa_def *red = nir_fdot4(b, yuv, nir_build_imm(b, 4, 32, m[0]));
    #####:    #####:  253:   nir_ssa_def *green = nir_fdot4(b, yuv, nir_build_imm(b, 4, 32, m[1]));
    #####:    #####:  254:   nir_ssa_def *blue = nir_fdot4(b, yuv, nir_build_imm(b, 4, 32, m[2]));
        -:        -:  255:
    #####:    #####:  256:   nir_ssa_def *result = nir_vec4(b, red, green, blue, nir_imm_float(b, 1.0f));
        -:        -:  257:
    #####:    #####:  258:   nir_ssa_def_rewrite_uses(&tex->dest.ssa, nir_src_for_ssa(result));
    #####:    #####:  259:}
        -:        -:  260:
        -:        -:  261:static void
    #####:    #####:  262:lower_y_uv_external(nir_builder *b, nir_tex_instr *tex)
        -:        -:  263:{
    #####:    #####:  264:   b->cursor = nir_after_instr(&tex->instr);
        -:        -:  265:
    #####:    #####:  266:   nir_ssa_def *y = sample_plane(b, tex, 0);
    #####:    #####:  267:   nir_ssa_def *uv = sample_plane(b, tex, 1);
        -:        -:  268:
    #####:    #####:  269:   convert_yuv_to_rgb(b, tex,
        -:        -:  270:                      nir_channel(b, y, 0),
        -:        -:  271:                      nir_channel(b, uv, 0),
        -:        -:  272:                      nir_channel(b, uv, 1));
    #####:    #####:  273:}
        -:        -:  274:
        -:        -:  275:static void
    #####:    #####:  276:lower_y_u_v_external(nir_builder *b, nir_tex_instr *tex)
        -:        -:  277:{
    #####:    #####:  278:   b->cursor = nir_after_instr(&tex->instr);
        -:        -:  279:
    #####:    #####:  280:   nir_ssa_def *y = sample_plane(b, tex, 0);
    #####:    #####:  281:   nir_ssa_def *u = sample_plane(b, tex, 1);
    #####:    #####:  282:   nir_ssa_def *v = sample_plane(b, tex, 2);
        -:        -:  283:
    #####:    #####:  284:   convert_yuv_to_rgb(b, tex,
        -:        -:  285:                      nir_channel(b, y, 0),
        -:        -:  286:                      nir_channel(b, u, 0),
        -:        -:  287:                      nir_channel(b, v, 0));
    #####:    #####:  288:}
        -:        -:  289:
        -:        -:  290:static void
    #####:    #####:  291:lower_yx_xuxv_external(nir_builder *b, nir_tex_instr *tex)
        -:        -:  292:{
    #####:    #####:  293:   b->cursor = nir_after_instr(&tex->instr);
        -:        -:  294:
    #####:    #####:  295:   nir_ssa_def *y = sample_plane(b, tex, 0);
    #####:    #####:  296:   nir_ssa_def *xuxv = sample_plane(b, tex, 1);
        -:        -:  297:
    #####:    #####:  298:   convert_yuv_to_rgb(b, tex,
        -:        -:  299:                      nir_channel(b, y, 0),
        -:        -:  300:                      nir_channel(b, xuxv, 1),
        -:        -:  301:                      nir_channel(b, xuxv, 3));
    #####:    #####:  302:}
        -:        -:  303:
        -:        -:  304:/*
        -:        -:  305: * Emits a textureLod operation used to replace an existing
        -:        -:  306: * textureGrad instruction.
        -:        -:  307: */
        -:        -:  308:static void
    #####:    #####:  309:replace_gradient_with_lod(nir_builder *b, nir_ssa_def *lod, nir_tex_instr *tex)
        -:        -:  310:{
        -:        -:  311:   /* We are going to emit a textureLod() with the same parameters except that
        -:        -:  312:    * we replace ddx/ddy with lod.
        -:        -:  313:    */
    #####:    #####:  314:   int num_srcs = tex->num_srcs - 1;
    #####:    #####:  315:   nir_tex_instr *txl = nir_tex_instr_create(b->shader, num_srcs);
        -:        -:  316:
    #####:    #####:  317:   txl->op = nir_texop_txl;
    #####:    #####:  318:   txl->sampler_dim = tex->sampler_dim;
    #####:    #####:  319:   txl->texture_index = tex->texture_index;
    #####:    #####:  320:   txl->dest_type = tex->dest_type;
    #####:    #####:  321:   txl->is_array = tex->is_array;
    #####:    #####:  322:   txl->is_shadow = tex->is_shadow;
    #####:    #####:  323:   txl->is_new_style_shadow = tex->is_new_style_shadow;
    #####:    #####:  324:   txl->sampler_index = tex->sampler_index;
    #####:    #####:  325:   txl->texture = nir_deref_var_clone(tex->texture, txl);
    #####:    #####:  326:   txl->sampler = nir_deref_var_clone(tex->sampler, txl);
    #####:    #####:  327:   txl->coord_components = tex->coord_components;
        -:        -:  328:
    #####:    #####:  329:   nir_ssa_dest_init(&txl->instr, &txl->dest, 4, 32, NULL);
        -:        -:  330:
    #####:    #####:  331:   int src_num = 0;
    #####:    #####:  332:   for (int i = 0; i < tex->num_srcs; i++) {
    #####:    #####:  333:      if (tex->src[i].src_type == nir_tex_src_ddx ||
    #####:    #####:  334:          tex->src[i].src_type == nir_tex_src_ddy)
    #####:    #####:  335:         continue;
    #####:    #####:  336:      nir_src_copy(&txl->src[src_num].src, &tex->src[i].src, txl);
    #####:    #####:  337:      txl->src[src_num].src_type = tex->src[i].src_type;
    #####:    #####:  338:      src_num++;
        -:        -:  339:   }
        -:        -:  340:
    #####:    #####:  341:   txl->src[src_num].src = nir_src_for_ssa(lod);
    #####:    #####:  342:   txl->src[src_num].src_type = nir_tex_src_lod;
    #####:    #####:  343:   src_num++;
        -:        -:  344:
    #####:    #####:  345:   assert(src_num == num_srcs);
        -:        -:  346:
    #####:    #####:  347:   nir_ssa_dest_init(&txl->instr, &txl->dest,
    #####:    #####:  348:                     tex->dest.ssa.num_components, 32, NULL);
    #####:    #####:  349:   nir_builder_instr_insert(b, &txl->instr);
        -:        -:  350:
    #####:    #####:  351:   nir_ssa_def_rewrite_uses(&tex->dest.ssa, nir_src_for_ssa(&txl->dest.ssa));
        -:        -:  352:
    #####:    #####:  353:   nir_instr_remove(&tex->instr);
    #####:    #####:  354:}
        -:        -:  355:
        -:        -:  356:static void
    #####:    #####:  357:lower_gradient_cube_map(nir_builder *b, nir_tex_instr *tex)
        -:        -:  358:{
    #####:    #####:  359:   assert(tex->sampler_dim == GLSL_SAMPLER_DIM_CUBE);
    #####:    #####:  360:   assert(tex->op == nir_texop_txd);
    #####:    #####:  361:   assert(tex->dest.is_ssa);
        -:        -:  362:
        -:        -:  363:   /* Use textureSize() to get the width and height of LOD 0 */
    #####:    #####:  364:   nir_ssa_def *size = get_texture_size(b, tex);
        -:        -:  365:
        -:        -:  366:   /* Cubemap texture lookups first generate a texture coordinate normalized
        -:        -:  367:    * to [-1, 1] on the appropiate face. The appropiate face is determined
        -:        -:  368:    * by which component has largest magnitude and its sign. The texture
        -:        -:  369:    * coordinate is the quotient of the remaining texture coordinates against
        -:        -:  370:    * that absolute value of the component of largest magnitude. This
        -:        -:  371:    * division requires that the computing of the derivative of the texel
        -:        -:  372:    * coordinate must use the quotient rule. The high level GLSL code is as
        -:        -:  373:    * follows:
        -:        -:  374:    *
        -:        -:  375:    * Step 1: selection
        -:        -:  376:    *
        -:        -:  377:    * vec3 abs_p, Q, dQdx, dQdy;
        -:        -:  378:    * abs_p = abs(ir->coordinate);
        -:        -:  379:    * if (abs_p.x >= max(abs_p.y, abs_p.z)) {
        -:        -:  380:    *    Q = ir->coordinate.yzx;
        -:        -:  381:    *    dQdx = ir->lod_info.grad.dPdx.yzx;
        -:        -:  382:    *    dQdy = ir->lod_info.grad.dPdy.yzx;
        -:        -:  383:    * }
        -:        -:  384:    * if (abs_p.y >= max(abs_p.x, abs_p.z)) {
        -:        -:  385:    *    Q = ir->coordinate.xzy;
        -:        -:  386:    *    dQdx = ir->lod_info.grad.dPdx.xzy;
        -:        -:  387:    *    dQdy = ir->lod_info.grad.dPdy.xzy;
        -:        -:  388:    * }
        -:        -:  389:    * if (abs_p.z >= max(abs_p.x, abs_p.y)) {
        -:        -:  390:    *    Q = ir->coordinate;
        -:        -:  391:    *    dQdx = ir->lod_info.grad.dPdx;
        -:        -:  392:    *    dQdy = ir->lod_info.grad.dPdy;
        -:        -:  393:    * }
        -:        -:  394:    *
        -:        -:  395:    * Step 2: use quotient rule to compute derivative. The normalized to
        -:        -:  396:    * [-1, 1] texel coordinate is given by Q.xy / (sign(Q.z) * Q.z). We are
        -:        -:  397:    * only concerned with the magnitudes of the derivatives whose values are
        -:        -:  398:    * not affected by the sign. We drop the sign from the computation.
        -:        -:  399:    *
        -:        -:  400:    * vec2 dx, dy;
        -:        -:  401:    * float recip;
        -:        -:  402:    *
        -:        -:  403:    * recip = 1.0 / Q.z;
        -:        -:  404:    * dx = recip * ( dQdx.xy - Q.xy * (dQdx.z * recip) );
        -:        -:  405:    * dy = recip * ( dQdy.xy - Q.xy * (dQdy.z * recip) );
        -:        -:  406:    *
        -:        -:  407:    * Step 3: compute LOD. At this point we have the derivatives of the
        -:        -:  408:    * texture coordinates normalized to [-1,1]. We take the LOD to be
        -:        -:  409:    *  result = log2(max(sqrt(dot(dx, dx)), sqrt(dy, dy)) * 0.5 * L)
        -:        -:  410:    *         = -1.0 + log2(max(sqrt(dot(dx, dx)), sqrt(dy, dy)) * L)
        -:        -:  411:    *         = -1.0 + log2(sqrt(max(dot(dx, dx), dot(dy,dy))) * L)
        -:        -:  412:    *         = -1.0 + log2(sqrt(L * L * max(dot(dx, dx), dot(dy,dy))))
        -:        -:  413:    *         = -1.0 + 0.5 * log2(L * L * max(dot(dx, dx), dot(dy,dy)))
        -:        -:  414:    * where L is the dimension of the cubemap. The code is:
        -:        -:  415:    *
        -:        -:  416:    * float M, result;
        -:        -:  417:    * M = max(dot(dx, dx), dot(dy, dy));
        -:        -:  418:    * L = textureSize(sampler, 0).x;
        -:        -:  419:    * result = -1.0 + 0.5 * log2(L * L * M);
        -:        -:  420:    */
        -:        -:  421:
        -:        -:  422:   /* coordinate */
    #####:    #####:  423:   nir_ssa_def *p =
    #####:    #####:  424:      tex->src[nir_tex_instr_src_index(tex, nir_tex_src_coord)].src.ssa;
        -:        -:  425:
        -:        -:  426:   /* unmodified dPdx, dPdy values */
    #####:    #####:  427:   nir_ssa_def *dPdx =
    #####:    #####:  428:      tex->src[nir_tex_instr_src_index(tex, nir_tex_src_ddx)].src.ssa;
    #####:    #####:  429:   nir_ssa_def *dPdy =
    #####:    #####:  430:      tex->src[nir_tex_instr_src_index(tex, nir_tex_src_ddy)].src.ssa;
        -:        -:  431:
    #####:    #####:  432:   nir_ssa_def *abs_p = nir_fabs(b, p);
    #####:    #####:  433:   nir_ssa_def *abs_p_x = nir_channel(b, abs_p, 0);
    #####:    #####:  434:   nir_ssa_def *abs_p_y = nir_channel(b, abs_p, 1);
    #####:    #####:  435:   nir_ssa_def *abs_p_z = nir_channel(b, abs_p, 2);
        -:        -:  436:
        -:        -:  437:   /* 1. compute selector */
        -:        -:  438:   nir_ssa_def *Q, *dQdx, *dQdy;
        -:        -:  439:
    #####:    #####:  440:   nir_ssa_def *cond_z = nir_fge(b, abs_p_z, nir_fmax(b, abs_p_x, abs_p_y));
    #####:    #####:  441:   nir_ssa_def *cond_y = nir_fge(b, abs_p_y, nir_fmax(b, abs_p_x, abs_p_z));
        -:        -:  442:
    #####:    #####:  443:   unsigned yzx[4] = { 1, 2, 0, 0 };
    #####:    #####:  444:   unsigned xzy[4] = { 0, 2, 1, 0 };
        -:        -:  445:
    #####:    #####:  446:   Q = nir_bcsel(b, cond_z,
        -:        -:  447:                 p,
        -:        -:  448:                 nir_bcsel(b, cond_y,
        -:        -:  449:                           nir_swizzle(b, p, xzy, 3, false),
        -:        -:  450:                           nir_swizzle(b, p, yzx, 3, false)));
        -:        -:  451:
    #####:    #####:  452:   dQdx = nir_bcsel(b, cond_z,
        -:        -:  453:                    dPdx,
        -:        -:  454:                    nir_bcsel(b, cond_y,
        -:        -:  455:                              nir_swizzle(b, dPdx, xzy, 3, false),
        -:        -:  456:                              nir_swizzle(b, dPdx, yzx, 3, false)));
        -:        -:  457:
    #####:    #####:  458:   dQdy = nir_bcsel(b, cond_z,
        -:        -:  459:                    dPdy,
        -:        -:  460:                    nir_bcsel(b, cond_y,
        -:        -:  461:                              nir_swizzle(b, dPdy, xzy, 3, false),
        -:        -:  462:                              nir_swizzle(b, dPdy, yzx, 3, false)));
        -:        -:  463:
        -:        -:  464:   /* 2. quotient rule */
        -:        -:  465:
        -:        -:  466:   /* tmp = Q.xy * recip;
        -:        -:  467:    * dx = recip * ( dQdx.xy - (tmp * dQdx.z) );
        -:        -:  468:    * dy = recip * ( dQdy.xy - (tmp * dQdy.z) );
        -:        -:  469:    */
    #####:    #####:  470:   nir_ssa_def *rcp_Q_z = nir_frcp(b, nir_channel(b, Q, 2));
        -:        -:  471:
    #####:    #####:  472:   unsigned xy[4] = { 0, 1, 0, 0 };
    #####:    #####:  473:   nir_ssa_def *Q_xy = nir_swizzle(b, Q, xy, 2, false);
    #####:    #####:  474:   nir_ssa_def *tmp = nir_fmul(b, Q_xy, rcp_Q_z);
        -:        -:  475:
    #####:    #####:  476:   nir_ssa_def *dQdx_xy = nir_swizzle(b, dQdx, xy, 2, false);
    #####:    #####:  477:   nir_ssa_def *dQdx_z = nir_channel(b, dQdx, 2);
    #####:    #####:  478:   nir_ssa_def *dx =
    #####:    #####:  479:      nir_fmul(b, rcp_Q_z, nir_fsub(b, dQdx_xy, nir_fmul(b, tmp, dQdx_z)));
        -:        -:  480:
    #####:    #####:  481:   nir_ssa_def *dQdy_xy = nir_swizzle(b, dQdy, xy, 2, false);
    #####:    #####:  482:   nir_ssa_def *dQdy_z = nir_channel(b, dQdy, 2);
    #####:    #####:  483:   nir_ssa_def *dy =
    #####:    #####:  484:      nir_fmul(b, rcp_Q_z, nir_fsub(b, dQdy_xy, nir_fmul(b, tmp, dQdy_z)));
        -:        -:  485:
        -:        -:  486:   /* M = max(dot(dx, dx), dot(dy, dy)); */
    #####:    #####:  487:   nir_ssa_def *M = nir_fmax(b, nir_fdot(b, dx, dx), nir_fdot(b, dy, dy));
        -:        -:  488:
        -:        -:  489:   /* size has textureSize() of LOD 0 */
    #####:    #####:  490:   nir_ssa_def *L = nir_channel(b, size, 0);
        -:        -:  491:
        -:        -:  492:   /* lod = -1.0 + 0.5 * log2(L * L * M); */
    #####:    #####:  493:   nir_ssa_def *lod =
    #####:    #####:  494:      nir_fadd(b,
        -:        -:  495:               nir_imm_float(b, -1.0f),
        -:        -:  496:               nir_fmul(b,
        -:        -:  497:                        nir_imm_float(b, 0.5f),
        -:        -:  498:                        nir_flog2(b, nir_fmul(b, L, nir_fmul(b, L, M)))));
        -:        -:  499:
        -:        -:  500:   /* 3. Replace the gradient instruction with an equivalent lod instruction */
    #####:    #####:  501:   replace_gradient_with_lod(b, lod, tex);
    #####:    #####:  502:}
        -:        -:  503:
        -:        -:  504:static void
    #####:    #####:  505:lower_gradient_shadow(nir_builder *b, nir_tex_instr *tex)
        -:        -:  506:{
    #####:    #####:  507:   assert(tex->sampler_dim != GLSL_SAMPLER_DIM_CUBE);
    #####:    #####:  508:   assert(tex->is_shadow);
    #####:    #####:  509:   assert(tex->op == nir_texop_txd);
    #####:    #####:  510:   assert(tex->dest.is_ssa);
        -:        -:  511:
        -:        -:  512:   /* Use textureSize() to get the width and height of LOD 0 */
        -:        -:  513:   unsigned component_mask;
    #####:    #####:  514:   switch (tex->sampler_dim) {
        -:        -:  515:   case GLSL_SAMPLER_DIM_3D:
    #####:    #####:  516:      component_mask = 7;
    #####:    #####:  517:      break;
        -:        -:  518:   case GLSL_SAMPLER_DIM_1D:
    #####:    #####:  519:      component_mask = 1;
    #####:    #####:  520:      break;
        -:        -:  521:   default:
    #####:    #####:  522:      component_mask = 3;
    #####:    #####:  523:      break;
        -:        -:  524:   }
        -:        -:  525:
    #####:    #####:  526:   nir_ssa_def *size =
    #####:    #####:  527:      nir_channels(b, get_texture_size(b, tex), component_mask);
        -:        -:  528:
        -:        -:  529:   /* Scale the gradients by width and height.  Effectively, the incoming
        -:        -:  530:    * gradients are s'(x,y), t'(x,y), and r'(x,y) from equation 3.19 in the
        -:        -:  531:    * GL 3.0 spec; we want u'(x,y), which is w_t * s'(x,y).
        -:        -:  532:    */
    #####:    #####:  533:   nir_ssa_def *ddx =
    #####:    #####:  534:      tex->src[nir_tex_instr_src_index(tex, nir_tex_src_ddx)].src.ssa;
    #####:    #####:  535:   nir_ssa_def *ddy =
    #####:    #####:  536:      tex->src[nir_tex_instr_src_index(tex, nir_tex_src_ddy)].src.ssa;
        -:        -:  537:
    #####:    #####:  538:   nir_ssa_def *dPdx = nir_fmul(b, ddx, size);
    #####:    #####:  539:   nir_ssa_def *dPdy = nir_fmul(b, ddy, size);
        -:        -:  540:
        -:        -:  541:   nir_ssa_def *rho;
    #####:    #####:  542:   if (dPdx->num_components == 1) {
    #####:    #####:  543:      rho = nir_fmax(b, nir_fabs(b, dPdx), nir_fabs(b, dPdy));
        -:        -:  544:   } else {
    #####:    #####:  545:      rho = nir_fmax(b,
        -:        -:  546:                     nir_fsqrt(b, nir_fdot(b, dPdx, dPdx)),
        -:        -:  547:                     nir_fsqrt(b, nir_fdot(b, dPdy, dPdy)));
        -:        -:  548:   }
        -:        -:  549:
        -:        -:  550:   /* lod = log2(rho).  We're ignoring GL state biases for now. */
    #####:    #####:  551:   nir_ssa_def *lod = nir_flog2(b, rho);
        -:        -:  552:
        -:        -:  553:   /* Replace the gradient instruction with an equivalent lod instruction */
    #####:    #####:  554:   replace_gradient_with_lod(b, lod, tex);
    #####:    #####:  555:}
        -:        -:  556:
        -:        -:  557:static void
    #####:    #####:  558:saturate_src(nir_builder *b, nir_tex_instr *tex, unsigned sat_mask)
        -:        -:  559:{
    #####:    #####:  560:   b->cursor = nir_before_instr(&tex->instr);
        -:        -:  561:
        -:        -:  562:   /* Walk through the sources saturating the requested arguments. */
    #####:    #####:  563:   for (unsigned i = 0; i < tex->num_srcs; i++) {
    #####:    #####:  564:      if (tex->src[i].src_type != nir_tex_src_coord)
    #####:    #####:  565:         continue;
        -:        -:  566:
    #####:    #####:  567:      nir_ssa_def *src =
    #####:    #####:  568:         nir_ssa_for_src(b, tex->src[i].src, tex->coord_components);
        -:        -:  569:
        -:        -:  570:      /* split src into components: */
        -:        -:  571:      nir_ssa_def *comp[4];
        -:        -:  572:
    #####:    #####:  573:      assume(tex->coord_components >= 1);
        -:        -:  574:
    #####:    #####:  575:      for (unsigned j = 0; j < tex->coord_components; j++)
    #####:    #####:  576:         comp[j] = nir_channel(b, src, j);
        -:        -:  577:
        -:        -:  578:      /* clamp requested components, array index does not get clamped: */
    #####:    #####:  579:      unsigned ncomp = tex->coord_components;
    #####:    #####:  580:      if (tex->is_array)
    #####:    #####:  581:         ncomp--;
        -:        -:  582:
    #####:    #####:  583:      for (unsigned j = 0; j < ncomp; j++) {
    #####:    #####:  584:         if ((1 << j) & sat_mask) {
    #####:    #####:  585:            if (tex->sampler_dim == GLSL_SAMPLER_DIM_RECT) {
        -:        -:  586:               /* non-normalized texture coords, so clamp to texture
        -:        -:  587:                * size rather than [0.0, 1.0]
        -:        -:  588:                */
    #####:    #####:  589:               nir_ssa_def *txs = get_texture_size(b, tex);
    #####:    #####:  590:               comp[j] = nir_fmax(b, comp[j], nir_imm_float(b, 0.0));
    #####:    #####:  591:               comp[j] = nir_fmin(b, comp[j], nir_channel(b, txs, j));
        -:        -:  592:            } else {
    #####:    #####:  593:               comp[j] = nir_fsat(b, comp[j]);
        -:        -:  594:            }
        -:        -:  595:         }
        -:        -:  596:      }
        -:        -:  597:
        -:        -:  598:      /* and move the result back into a single vecN: */
    #####:    #####:  599:      src = nir_vec(b, comp, tex->coord_components);
        -:        -:  600:
    #####:    #####:  601:      nir_instr_rewrite_src(&tex->instr,
    #####:    #####:  602:                            &tex->src[i].src,
        -:        -:  603:                            nir_src_for_ssa(src));
        -:        -:  604:   }
    #####:    #####:  605:}
        -:        -:  606:
        -:        -:  607:static nir_ssa_def *
    #####:    #####:  608:get_zero_or_one(nir_builder *b, nir_alu_type type, uint8_t swizzle_val)
        -:        -:  609:{
        -:        -:  610:   nir_const_value v;
        -:        -:  611:
    #####:    #####:  612:   memset(&v, 0, sizeof(v));
        -:        -:  613:
    #####:    #####:  614:   if (swizzle_val == 4) {
    #####:    #####:  615:      v.u32[0] = v.u32[1] = v.u32[2] = v.u32[3] = 0;
        -:        -:  616:   } else {
    #####:    #####:  617:      assert(swizzle_val == 5);
    #####:    #####:  618:      if (type == nir_type_float)
    #####:    #####:  619:         v.f32[0] = v.f32[1] = v.f32[2] = v.f32[3] = 1.0;
        -:        -:  620:      else
    #####:    #####:  621:         v.u32[0] = v.u32[1] = v.u32[2] = v.u32[3] = 1;
        -:        -:  622:   }
        -:        -:  623:
    #####:    #####:  624:   return nir_build_imm(b, 4, 32, v);
        -:        -:  625:}
        -:        -:  626:
        -:        -:  627:static void
    #####:    #####:  628:swizzle_result(nir_builder *b, nir_tex_instr *tex, const uint8_t swizzle[4])
        -:        -:  629:{
    #####:    #####:  630:   assert(tex->dest.is_ssa);
        -:        -:  631:
    #####:    #####:  632:   b->cursor = nir_after_instr(&tex->instr);
        -:        -:  633:
        -:        -:  634:   nir_ssa_def *swizzled;
    #####:    #####:  635:   if (tex->op == nir_texop_tg4) {
    #####:    #####:  636:      if (swizzle[tex->component] < 4) {
        -:        -:  637:         /* This one's easy */
    #####:    #####:  638:         tex->component = swizzle[tex->component];
    #####:    #####:  639:         return;
        -:        -:  640:      } else {
    #####:    #####:  641:         swizzled = get_zero_or_one(b, tex->dest_type, swizzle[tex->component]);
        -:        -:  642:      }
        -:        -:  643:   } else {
    #####:    #####:  644:      assert(nir_tex_instr_dest_size(tex) == 4);
    #####:    #####:  645:      if (swizzle[0] < 4 && swizzle[1] < 4 &&
    #####:    #####:  646:          swizzle[2] < 4 && swizzle[3] < 4) {
    #####:    #####:  647:         unsigned swiz[4] = { swizzle[0], swizzle[1], swizzle[2], swizzle[3] };
        -:        -:  648:         /* We have no 0s or 1s, just emit a swizzling MOV */
    #####:    #####:  649:         swizzled = nir_swizzle(b, &tex->dest.ssa, swiz, 4, false);
        -:        -:  650:      } else {
        -:        -:  651:         nir_ssa_def *srcs[4];
    #####:    #####:  652:         for (unsigned i = 0; i < 4; i++) {
    #####:    #####:  653:            if (swizzle[i] < 4) {
    #####:    #####:  654:               srcs[i] = nir_channel(b, &tex->dest.ssa, swizzle[i]);
        -:        -:  655:            } else {
    #####:    #####:  656:               srcs[i] = get_zero_or_one(b, tex->dest_type, swizzle[i]);
        -:        -:  657:            }
        -:        -:  658:         }
    #####:    #####:  659:         swizzled = nir_vec(b, srcs, 4);
        -:        -:  660:      }
        -:        -:  661:   }
        -:        -:  662:
    #####:    #####:  663:   nir_ssa_def_rewrite_uses_after(&tex->dest.ssa, nir_src_for_ssa(swizzled),
        -:        -:  664:                                  swizzled->parent_instr);
        -:        -:  665:}
        -:        -:  666:
        -:        -:  667:static void
    #####:    #####:  668:linearize_srgb_result(nir_builder *b, nir_tex_instr *tex)
        -:        -:  669:{
    #####:    #####:  670:   assert(tex->dest.is_ssa);
    #####:    #####:  671:   assert(nir_tex_instr_dest_size(tex) == 4);
    #####:    #####:  672:   assert(nir_alu_type_get_base_type(tex->dest_type) == nir_type_float);
        -:        -:  673:
    #####:    #####:  674:   b->cursor = nir_after_instr(&tex->instr);
        -:        -:  675:
        -:        -:  676:   static const unsigned swiz[4] = {0, 1, 2, 0};
    #####:    #####:  677:   nir_ssa_def *comp = nir_swizzle(b, &tex->dest.ssa, swiz, 3, true);
        -:        -:  678:
        -:        -:  679:   /* Formula is:
        -:        -:  680:    *    (comp <= 0.04045) ?
        -:        -:  681:    *          (comp / 12.92) :
        -:        -:  682:    *          pow((comp + 0.055) / 1.055, 2.4)
        -:        -:  683:    */
    #####:    #####:  684:   nir_ssa_def *low  = nir_fmul(b, comp, nir_imm_float(b, 1.0 / 12.92));
    #####:    #####:  685:   nir_ssa_def *high = nir_fpow(b,
        -:        -:  686:                                nir_fmul(b,
        -:        -:  687:                                         nir_fadd(b,
        -:        -:  688:                                                  comp,
        -:        -:  689:                                                  nir_imm_float(b, 0.055)),
        -:        -:  690:                                         nir_imm_float(b, 1.0 / 1.055)),
        -:        -:  691:                                nir_imm_float(b, 2.4));
    #####:    #####:  692:   nir_ssa_def *cond = nir_fge(b, nir_imm_float(b, 0.04045), comp);
    #####:    #####:  693:   nir_ssa_def *rgb  = nir_bcsel(b, cond, low, high);
        -:        -:  694:
        -:        -:  695:   /* alpha is untouched: */
    #####:    #####:  696:   nir_ssa_def *result = nir_vec4(b,
        -:        -:  697:                                  nir_channel(b, rgb, 0),
        -:        -:  698:                                  nir_channel(b, rgb, 1),
        -:        -:  699:                                  nir_channel(b, rgb, 2),
        -:        -:  700:                                  nir_channel(b, &tex->dest.ssa, 3));
        -:        -:  701:
    #####:    #####:  702:   nir_ssa_def_rewrite_uses_after(&tex->dest.ssa, nir_src_for_ssa(result),
        -:        -:  703:                                  result->parent_instr);
    #####:    #####:  704:}
        -:        -:  705:
        -:        -:  706:static bool
      125:      157:  707:nir_lower_tex_block(nir_block *block, nir_builder *b,
        -:        -:  708:                    const nir_lower_tex_options *options)
        -:        -:  709:{
      125:      157:  710:   bool progress = false;
        -:        -:  711:
      642:      736:  712:   nir_foreach_instr_safe(instr, block) {
      517:      579:  713:      if (instr->type != nir_instr_type_tex)
      517:      579:  714:         continue;
        -:        -:  715:
    #####:    #####:  716:      nir_tex_instr *tex = nir_instr_as_tex(instr);
    #####:    #####:  717:      bool lower_txp = !!(options->lower_txp & (1 << tex->sampler_dim));
        -:        -:  718:
        -:        -:  719:      /* mask of src coords to saturate (clamp): */
    #####:    #####:  720:      unsigned sat_mask = 0;
        -:        -:  721:
    #####:    #####:  722:      if ((1 << tex->sampler_index) & options->saturate_r)
    #####:    #####:  723:         sat_mask |= (1 << 2);    /* .z */
    #####:    #####:  724:      if ((1 << tex->sampler_index) & options->saturate_t)
    #####:    #####:  725:         sat_mask |= (1 << 1);    /* .y */
    #####:    #####:  726:      if ((1 << tex->sampler_index) & options->saturate_s)
    #####:    #####:  727:         sat_mask |= (1 << 0);    /* .x */
        -:        -:  728:
        -:        -:  729:      /* If we are clamping any coords, we must lower projector first
        -:        -:  730:       * as clamping happens *after* projection:
        -:        -:  731:       */
    #####:    #####:  732:      if (lower_txp || sat_mask) {
    #####:    #####:  733:         project_src(b, tex);
    #####:    #####:  734:         progress = true;
        -:        -:  735:      }
        -:        -:  736:
    #####:    #####:  737:      if ((tex->op == nir_texop_txf && options->lower_txf_offset) ||
    #####:    #####:  738:          (tex->sampler_dim == GLSL_SAMPLER_DIM_RECT &&
    #####:    #####:  739:           options->lower_rect_offset)) {
    #####:    #####:  740:         progress = lower_offset(b, tex) || progress;
        -:        -:  741:      }
        -:        -:  742:
    #####:    #####:  743:      if ((tex->sampler_dim == GLSL_SAMPLER_DIM_RECT) && options->lower_rect) {
    #####:    #####:  744:         lower_rect(b, tex);
    #####:    #####:  745:         progress = true;
        -:        -:  746:      }
        -:        -:  747:
    #####:    #####:  748:      if ((1 << tex->texture_index) & options->lower_y_uv_external) {
    #####:    #####:  749:         lower_y_uv_external(b, tex);
    #####:    #####:  750:         progress = true;
        -:        -:  751:      }
        -:        -:  752:
    #####:    #####:  753:      if ((1 << tex->texture_index) & options->lower_y_u_v_external) {
    #####:    #####:  754:         lower_y_u_v_external(b, tex);
    #####:    #####:  755:         progress = true;
        -:        -:  756:      }
        -:        -:  757:
    #####:    #####:  758:      if ((1 << tex->texture_index) & options->lower_yx_xuxv_external) {
    #####:    #####:  759:         lower_yx_xuxv_external(b, tex);
    #####:    #####:  760:         progress = true;
        -:        -:  761:      }
        -:        -:  762:
        -:        -:  763:
    #####:    #####:  764:      if (sat_mask) {
    #####:    #####:  765:         saturate_src(b, tex, sat_mask);
    #####:    #####:  766:         progress = true;
        -:        -:  767:      }
        -:        -:  768:
    #####:    #####:  769:      if (((1 << tex->texture_index) & options->swizzle_result) &&
    #####:    #####:  770:          !nir_tex_instr_is_query(tex) &&
    #####:    #####:  771:          !(tex->is_shadow && tex->is_new_style_shadow)) {
    #####:    #####:  772:         swizzle_result(b, tex, options->swizzles[tex->texture_index]);
    #####:    #####:  773:         progress = true;
        -:        -:  774:      }
        -:        -:  775:
        -:        -:  776:      /* should be after swizzle so we know which channels are rgb: */
    #####:    #####:  777:      if (((1 << tex->texture_index) & options->lower_srgb) &&
    #####:    #####:  778:          !nir_tex_instr_is_query(tex) && !tex->is_shadow) {
    #####:    #####:  779:         linearize_srgb_result(b, tex);
    #####:    #####:  780:         progress = true;
        -:        -:  781:      }
        -:        -:  782:
    #####:    #####:  783:      if (tex->op == nir_texop_txd &&
    #####:    #####:  784:          tex->sampler_dim == GLSL_SAMPLER_DIM_CUBE &&
    #####:    #####:  785:          (options->lower_txd_cube_map ||
    #####:    #####:  786:           (tex->is_shadow && options->lower_txd_shadow))) {
    #####:    #####:  787:         lower_gradient_cube_map(b, tex);
    #####:    #####:  788:         progress = true;
    #####:    #####:  789:         continue;
        -:        -:  790:      }
        -:        -:  791:
    #####:    #####:  792:      if (tex->op == nir_texop_txd && options->lower_txd_shadow &&
    #####:    #####:  793:          tex->is_shadow && tex->sampler_dim != GLSL_SAMPLER_DIM_CUBE) {
    #####:    #####:  794:         lower_gradient_shadow(b, tex);
    #####:    #####:  795:         progress = true;
    #####:    #####:  796:         continue;
        -:        -:  797:      }
        -:        -:  798:   }
        -:        -:  799:
      125:      157:  800:   return progress;
        -:        -:  801:}
        -:        -:  802:
        -:        -:  803:static bool
       10:       10:  804:nir_lower_tex_impl(nir_function_impl *impl,
        -:        -:  805:                   const nir_lower_tex_options *options)
        -:        -:  806:{
       10:       10:  807:   bool progress = false;
        -:        -:  808:   nir_builder builder;
       10:       10:  809:   nir_builder_init(&builder, impl);
        -:        -:  810:
      135:      167:  811:   nir_foreach_block(block, impl) {
      125:      157:  812:      progress |= nir_lower_tex_block(block, &builder, options);
        -:        -:  813:   }
        -:        -:  814:
       10:       10:  815:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  816:                               nir_metadata_dominance);
       10:       10:  817:   return progress;
        -:        -:  818:}
        -:        -:  819:
        -:        -:  820:bool
       10:       10:  821:nir_lower_tex(nir_shader *shader, const nir_lower_tex_options *options)
        -:        -:  822:{
       10:       10:  823:   bool progress = false;
        -:        -:  824:
       20:       20:  825:   nir_foreach_function(function, shader) {
       10:       10:  826:      if (function->impl)
       10:       10:  827:         progress |= nir_lower_tex_impl(function->impl, options);
        -:        -:  828:   }
        -:        -:  829:
       10:       10:  830:   return progress;
        -:        -:  831:}

src/compiler/nir_lower_to_source_mods.c.gcov

        -:        -:    0:Source:nir/nir_lower_to_source_mods.c
        -:        -:    0:Graph:nir/.libs/nir_lower_to_source_mods.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_to_source_mods.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:/*
        -:        -:   31: * This pass lowers the neg, abs, and sat operations to source modifiers on
        -:        -:   32: * ALU operations to make things nicer for the backend.  It's just much
        -:        -:   33: * easier to not have them when we're doing optimizations.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:static bool
       36:       52:   37:nir_lower_to_source_mods_block(nir_block *block)
        -:        -:   38:{
       36:       52:   39:   bool progress = false;
        -:        -:   40:
      176:      211:   41:   nir_foreach_instr(instr, block) {
      140:      159:   42:      if (instr->type != nir_instr_type_alu)
       68:       80:   43:         continue;
        -:        -:   44:
       72:       79:   45:      nir_alu_instr *alu = nir_instr_as_alu(instr);
        -:        -:   46:
      204:      221:   47:      for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++) {
      132:      142:   48:         if (!alu->src[i].src.is_ssa)
    #####:    #####:   49:            continue;
        -:        -:   50:
      132:      142:   51:         if (alu->src[i].src.ssa->parent_instr->type != nir_instr_type_alu)
       60:       66:   52:            continue;
        -:        -:   53:
       72:       76:   54:         nir_alu_instr *parent = nir_instr_as_alu(alu->src[i].src.ssa->parent_instr);
        -:        -:   55:
       72:       76:   56:         if (parent->dest.saturate)
    #####:    #####:   57:            continue;
        -:        -:   58:
       72:       76:   59:         switch (nir_alu_type_get_base_type(nir_op_infos[alu->op].input_types[i])) {
        -:        -:   60:         case nir_type_float:
       61:       63:   61:            if (parent->op != nir_op_fmov)
       56:       56:   62:               continue;
        5:        7:   63:            break;
        -:        -:   64:         case nir_type_int:
        4:        6:   65:            if (parent->op != nir_op_imov)
        4:        6:   66:               continue;
    #####:    #####:   67:            break;
        -:        -:   68:         default:
        7:        7:   69:            continue;
        -:        -:   70:         }
        -:        -:   71:
        -:        -:   72:         /* We can only do a rewrite if the source we are copying is SSA.
        -:        -:   73:          * Otherwise, moving the read might invalidly reorder reads/writes
        -:        -:   74:          * on a register.
        -:        -:   75:          */
        5:        7:   76:         if (!parent->src[0].src.is_ssa)
    #####:    #####:   77:            continue;
        -:        -:   78:
        5:        7:   79:         nir_instr_rewrite_src(instr, &alu->src[i].src, parent->src[0].src);
        5:        7:   80:         if (alu->src[i].abs) {
        -:        -:   81:            /* abs trumps both neg and abs, do nothing */
        -:        -:   82:         } else {
        5:        7:   83:            alu->src[i].negate = (alu->src[i].negate != parent->src[0].negate);
        5:        7:   84:            alu->src[i].abs |= parent->src[0].abs;
        -:        -:   85:         }
        -:        -:   86:
       25:       35:   87:         for (int j = 0; j < 4; ++j) {
       20:       28:   88:            if (!nir_alu_instr_channel_used(alu, i, j))
       15:       21:   89:               continue;
        5:        7:   90:            alu->src[i].swizzle[j] = parent->src[0].swizzle[alu->src[i].swizzle[j]];
        -:        -:   91:         }
        -:        -:   92:
       10:       14:   93:         if (list_empty(&parent->dest.dest.ssa.uses) &&
        5:        7:   94:             list_empty(&parent->dest.dest.ssa.if_uses))
        5:        7:   95:            nir_instr_remove(&parent->instr);
        -:        -:   96:
        5:        7:   97:         progress = true;
        -:        -:   98:      }
        -:        -:   99:
       72:       79:  100:      switch (alu->op) {
        -:        -:  101:      case nir_op_fsat:
    #####:    #####:  102:         alu->op = nir_op_fmov;
    #####:    #####:  103:         alu->dest.saturate = true;
    #####:    #####:  104:         break;
        -:        -:  105:      case nir_op_ineg:
    #####:    #####:  106:         alu->op = nir_op_imov;
    #####:    #####:  107:         alu->src[0].negate = !alu->src[0].negate;
    #####:    #####:  108:         break;
        -:        -:  109:      case nir_op_fneg:
       10:       12:  110:         alu->op = nir_op_fmov;
       10:       12:  111:         alu->src[0].negate = !alu->src[0].negate;
       10:       12:  112:         break;
        -:        -:  113:      case nir_op_iabs:
    #####:    #####:  114:         alu->op = nir_op_imov;
    #####:    #####:  115:         alu->src[0].abs = true;
    #####:    #####:  116:         alu->src[0].negate = false;
    #####:    #####:  117:         break;
        -:        -:  118:      case nir_op_fabs:
    #####:    #####:  119:         alu->op = nir_op_fmov;
    #####:    #####:  120:         alu->src[0].abs = true;
    #####:    #####:  121:         alu->src[0].negate = false;
    #####:    #####:  122:         break;
        -:        -:  123:      default:
       62:       67:  124:         break;
        -:        -:  125:      }
        -:        -:  126:
        -:        -:  127:      /* We've covered sources.  Now we're going to try and saturate the
        -:        -:  128:       * destination if we can.
        -:        -:  129:       */
        -:        -:  130:
       72:       79:  131:      if (!alu->dest.dest.is_ssa)
    #####:    #####:  132:         continue;
        -:        -:  133:
        -:        -:  134:      /* We can only saturate float destinations */
       72:       79:  135:      if (nir_alu_type_get_base_type(nir_op_infos[alu->op].output_type) !=
        -:        -:  136:          nir_type_float)
       20:       24:  137:         continue;
        -:        -:  138:
       52:       55:  139:      if (!list_empty(&alu->dest.dest.ssa.if_uses))
    #####:    #####:  140:         continue;
        -:        -:  141:
       52:       55:  142:      bool all_children_are_sat = true;
      118:      123:  143:      nir_foreach_use(child_src, &alu->dest.dest.ssa) {
       66:       68:  144:         assert(child_src->is_ssa);
       66:       68:  145:         nir_instr *child = child_src->parent_instr;
       66:       68:  146:         if (child->type != nir_instr_type_alu) {
        6:        6:  147:            all_children_are_sat = false;
        6:        6:  148:            continue;
        -:        -:  149:         }
        -:        -:  150:
       60:       62:  151:         nir_alu_instr *child_alu = nir_instr_as_alu(child);
       60:       62:  152:         if (child_alu->src[0].negate || child_alu->src[0].abs) {
    #####:    #####:  153:            all_children_are_sat = false;
    #####:    #####:  154:            continue;
        -:        -:  155:         }
        -:        -:  156:
      120:      124:  157:         if (child_alu->op != nir_op_fsat &&
       60:       62:  158:             !(child_alu->op == nir_op_fmov && child_alu->dest.saturate)) {
       60:       62:  159:            all_children_are_sat = false;
       60:       62:  160:            continue;
        -:        -:  161:         }
        -:        -:  162:      }
        -:        -:  163:
       52:       55:  164:      if (!all_children_are_sat)
       46:       48:  165:         continue;
        -:        -:  166:
        6:        7:  167:      alu->dest.saturate = true;
        6:        7:  168:      progress = true;
        -:        -:  169:
        6:        7:  170:      nir_foreach_use(child_src, &alu->dest.dest.ssa) {
    #####:    #####:  171:         assert(child_src->is_ssa);
    #####:    #####:  172:         nir_alu_instr *child_alu = nir_instr_as_alu(child_src->parent_instr);
        -:        -:  173:
    #####:    #####:  174:         child_alu->op = nir_op_fmov;
    #####:    #####:  175:         child_alu->dest.saturate = false;
        -:        -:  176:         /* We could propagate the dest of our instruction to the
        -:        -:  177:          * destinations of the uses here.  However, one quick round of
        -:        -:  178:          * copy propagation will clean that all up and then we don't have
        -:        -:  179:          * the complexity.
        -:        -:  180:          */
        -:        -:  181:      }
        -:        -:  182:   }
        -:        -:  183:
       36:       52:  184:   return progress;
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:static bool
        5:        5:  188:nir_lower_to_source_mods_impl(nir_function_impl *impl)
        -:        -:  189:{
        5:        5:  190:   bool progress = false;
        -:        -:  191:
       41:       57:  192:   nir_foreach_block(block, impl) {
       36:       52:  193:      progress |= nir_lower_to_source_mods_block(block);
        -:        -:  194:   }
        -:        -:  195:
        5:        5:  196:   if (progress)
        1:        1:  197:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  198:                                  nir_metadata_dominance);
        -:        -:  199:
        5:        5:  200:   return progress;
        -:        -:  201:}
        -:        -:  202:
        -:        -:  203:bool
        5:        5:  204:nir_lower_to_source_mods(nir_shader *shader)
        -:        -:  205:{
        5:        5:  206:   bool progress = false;
        -:        -:  207:
       10:       10:  208:   nir_foreach_function(function, shader) {
        5:        5:  209:      if (function->impl) {
        5:        5:  210:         progress |= nir_lower_to_source_mods_impl(function->impl);
        -:        -:  211:      }
        -:        -:  212:   }
        -:        -:  213:
        5:        5:  214:   return progress;
        -:        -:  215:}

src/compiler/nir_lower_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_lower_var_copies.c
        -:        -:    0:Graph:nir/.libs/nir_lower_var_copies.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "compiler/nir_types.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Lowers all copy intrinsics to sequences of load/store intrinsics.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:/* Walks down the deref chain and returns the next deref in the chain whose
        -:        -:   36: * child is a wildcard.  In other words, given the chain  a[1].foo[*].bar,
        -:        -:   37: * this function will return the deref to foo.  Calling it a second time
        -:        -:   38: * with the [*].bar, it will return NULL.
        -:        -:   39: */
        -:        -:   40:static nir_deref *
      106:      106:   41:deref_next_wildcard_parent(nir_deref *deref)
        -:        -:   42:{
      112:      112:   43:   for (nir_deref *tail = deref; tail->child; tail = tail->child) {
        6:        6:   44:      if (tail->child->deref_type != nir_deref_type_array)
    #####:    #####:   45:         continue;
        -:        -:   46:
        6:        6:   47:      nir_deref_array *arr = nir_deref_as_array(tail->child);
        -:        -:   48:
        6:        6:   49:      if (arr->deref_array_type == nir_deref_array_type_wildcard)
    #####:    #####:   50:         return tail;
        -:        -:   51:   }
        -:        -:   52:
      106:      106:   53:   return NULL;
        -:        -:   54:}
        -:        -:   55:
        -:        -:   56:/* This function recursively walks the given deref chain and replaces the
        -:        -:   57: * given copy instruction with an equivalent sequence load/store
        -:        -:   58: * operations.
        -:        -:   59: *
        -:        -:   60: * @copy_instr    The copy instruction to replace; new instructions will be
        -:        -:   61: *                inserted before this one
        -:        -:   62: *
        -:        -:   63: * @dest_head     The head of the destination variable deref chain
        -:        -:   64: *
        -:        -:   65: * @src_head      The head of the source variable deref chain
        -:        -:   66: *
        -:        -:   67: * @dest_tail     The current tail of the destination variable deref chain;
        -:        -:   68: *                this is used for recursion and external callers of this
        -:        -:   69: *                function should call it with tail == head
        -:        -:   70: *
        -:        -:   71: * @src_tail      The current tail of the source variable deref chain;
        -:        -:   72: *                this is used for recursion and external callers of this
        -:        -:   73: *                function should call it with tail == head
        -:        -:   74: *
        -:        -:   75: * @state         The current variable lowering state
        -:        -:   76: */
        -:        -:   77:static void
       53:       53:   78:emit_copy_load_store(nir_intrinsic_instr *copy_instr,
        -:        -:   79:                     nir_deref_var *dest_head, nir_deref_var *src_head,
        -:        -:   80:                     nir_deref *dest_tail, nir_deref *src_tail,
        -:        -:   81:                     nir_shader *shader)
        -:        -:   82:{
        -:        -:   83:   /* Find the next pair of wildcards */
       53:       53:   84:   nir_deref *src_arr_parent = deref_next_wildcard_parent(src_tail);
       53:       53:   85:   nir_deref *dest_arr_parent = deref_next_wildcard_parent(dest_tail);
        -:        -:   86:
       53:       53:   87:   if (src_arr_parent || dest_arr_parent) {
        -:        -:   88:      /* Wildcards had better come in matched pairs */
    #####:    #####:   89:      assert(src_arr_parent && dest_arr_parent);
        -:        -:   90:
    #####:    #####:   91:      nir_deref_array *src_arr = nir_deref_as_array(src_arr_parent->child);
    #####:    #####:   92:      nir_deref_array *dest_arr = nir_deref_as_array(dest_arr_parent->child);
        -:        -:   93:
    #####:    #####:   94:      unsigned length = glsl_get_length(src_arr_parent->type);
        -:        -:   95:      /* The wildcards should represent the same number of elements */
    #####:    #####:   96:      assert(length == glsl_get_length(dest_arr_parent->type));
    #####:    #####:   97:      assert(length > 0);
        -:        -:   98:
        -:        -:   99:      /* Walk over all of the elements that this wildcard refers to and
        -:        -:  100:       * call emit_copy_load_store on each one of them */
    #####:    #####:  101:      src_arr->deref_array_type = nir_deref_array_type_direct;
    #####:    #####:  102:      dest_arr->deref_array_type = nir_deref_array_type_direct;
    #####:    #####:  103:      for (unsigned i = 0; i < length; i++) {
    #####:    #####:  104:         src_arr->base_offset = i;
    #####:    #####:  105:         dest_arr->base_offset = i;
    #####:    #####:  106:         emit_copy_load_store(copy_instr, dest_head, src_head,
        -:        -:  107:                              &dest_arr->deref, &src_arr->deref, shader);
        -:        -:  108:      }
    #####:    #####:  109:      src_arr->deref_array_type = nir_deref_array_type_wildcard;
    #####:    #####:  110:      dest_arr->deref_array_type = nir_deref_array_type_wildcard;
        -:        -:  111:   } else {
        -:        -:  112:      /* In this case, we have no wildcards anymore, so all we have to do
        -:        -:  113:       * is just emit the load and store operations. */
       53:       53:  114:      src_tail = nir_deref_tail(src_tail);
       53:       53:  115:      dest_tail = nir_deref_tail(dest_tail);
        -:        -:  116:
       53:       53:  117:      assert(src_tail->type == dest_tail->type);
        -:        -:  118:
       53:       53:  119:      unsigned num_components = glsl_get_vector_elements(src_tail->type);
       53:       53:  120:      unsigned bit_size = glsl_get_bit_size(src_tail->type);
        -:        -:  121:
       53:       53:  122:      nir_intrinsic_instr *load =
        -:        -:  123:         nir_intrinsic_instr_create(shader, nir_intrinsic_load_var);
       53:       53:  124:      load->num_components = num_components;
       53:       53:  125:      load->variables[0] = nir_deref_var_clone(src_head, load);
       53:       53:  126:      nir_ssa_dest_init(&load->instr, &load->dest, num_components, bit_size,
        -:        -:  127:                        NULL);
        -:        -:  128:
       53:       53:  129:      nir_instr_insert_before(©_instr->instr, &load->instr);
        -:        -:  130:
       53:       53:  131:      nir_intrinsic_instr *store =
        -:        -:  132:         nir_intrinsic_instr_create(shader, nir_intrinsic_store_var);
       53:       53:  133:      store->num_components = num_components;
       53:       53:  134:      nir_intrinsic_set_write_mask(store, (1 << num_components) - 1);
       53:       53:  135:      store->variables[0] = nir_deref_var_clone(dest_head, store);
        -:        -:  136:
       53:       53:  137:      store->src[0].is_ssa = true;
       53:       53:  138:      store->src[0].ssa = &load->dest.ssa;
        -:        -:  139:
       53:       53:  140:      nir_instr_insert_before(©_instr->instr, &store->instr);
        -:        -:  141:   }
       53:       53:  142:}
        -:        -:  143:
        -:        -:  144:/* Lowers a copy instruction to a sequence of load/store instructions
        -:        -:  145: *
        -:        -:  146: * The new instructions are placed before the copy instruction in the IR.
        -:        -:  147: */
        -:        -:  148:void
       53:       53:  149:nir_lower_var_copy_instr(nir_intrinsic_instr *copy, nir_shader *shader)
        -:        -:  150:{
       53:       53:  151:   assert(copy->intrinsic == nir_intrinsic_copy_var);
      106:      106:  152:   emit_copy_load_store(copy, copy->variables[0], copy->variables[1],
       53:       53:  153:                        ©->variables[0]->deref,
       53:       53:  154:                        ©->variables[1]->deref, shader);
       53:       53:  155:}
        -:        -:  156:
        -:        -:  157:static bool
        5:        5:  158:lower_var_copies_impl(nir_function_impl *impl)
        -:        -:  159:{
        5:        5:  160:   nir_shader *shader = impl->function->shader;
        5:        5:  161:   bool progress = false;
        -:        -:  162:
       41:       57:  163:   nir_foreach_block(block, impl) {
      150:      182:  164:      nir_foreach_instr_safe(instr, block) {
      114:      130:  165:         if (instr->type != nir_instr_type_intrinsic)
       85:       99:  166:            continue;
        -:        -:  167:
       29:       31:  168:         nir_intrinsic_instr *copy = nir_instr_as_intrinsic(instr);
       29:       31:  169:         if (copy->intrinsic != nir_intrinsic_copy_var)
       28:       30:  170:            continue;
        -:        -:  171:
        1:        1:  172:         nir_lower_var_copy_instr(copy, shader);
        -:        -:  173:
        1:        1:  174:         nir_instr_remove(©->instr);
        1:        1:  175:         progress = true;
        1:        1:  176:         ralloc_free(copy);
        -:        -:  177:      }
        -:        -:  178:   }
        -:        -:  179:
        5:        5:  180:   if (progress)
        1:        1:  181:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  182:                                  nir_metadata_dominance);
        -:        -:  183:
        5:        5:  184:   return progress;
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:/* Lowers every copy_var instruction in the program to a sequence of
        -:        -:  188: * load/store instructions.
        -:        -:  189: */
        -:        -:  190:bool
        5:        5:  191:nir_lower_var_copies(nir_shader *shader)
        -:        -:  192:{
        5:        5:  193:   bool progress = false;
        -:        -:  194:
       10:       10:  195:   nir_foreach_function(function, shader) {
        5:        5:  196:      if (function->impl)
        5:        5:  197:         progress |= lower_var_copies_impl(function->impl);
        -:        -:  198:   }
        -:        -:  199:
        5:        5:  200:   return progress;
        -:        -:  201:}

src/compiler/nir_lower_vars_to_ssa.c.gcov

        -:        -:    0:Source:nir/nir_lower_vars_to_ssa.c
        -:        -:    0:Graph:nir/.libs/nir_lower_vars_to_ssa.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_vars_to_ssa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_builder.h"
        -:        -:   30:#include "nir_phi_builder.h"
        -:        -:   31:#include "nir_vla.h"
        -:        -:   32:
        -:        -:   33:
        -:        -:   34:struct deref_node {
        -:        -:   35:   struct deref_node *parent;
        -:        -:   36:   const struct glsl_type *type;
        -:        -:   37:
        -:        -:   38:   bool lower_to_ssa;
        -:        -:   39:
        -:        -:   40:   /* Only valid for things that end up in the direct list.
        -:        -:   41:    * Note that multiple nir_deref_vars may correspond to this node, but they
        -:        -:   42:    * will all be equivalent, so any is as good as the other.
        -:        -:   43:    */
        -:        -:   44:   nir_deref_var *deref;
        -:        -:   45:   struct exec_node direct_derefs_link;
        -:        -:   46:
        -:        -:   47:   struct set *loads;
        -:        -:   48:   struct set *stores;
        -:        -:   49:   struct set *copies;
        -:        -:   50:
        -:        -:   51:   struct nir_phi_builder_value *pb_value;
        -:        -:   52:
        -:        -:   53:   struct deref_node *wildcard;
        -:        -:   54:   struct deref_node *indirect;
        -:        -:   55:   struct deref_node *children[0];
        -:        -:   56:};
        -:        -:   57:
        -:        -:   58:struct lower_variables_state {
        -:        -:   59:   nir_shader *shader;
        -:        -:   60:   void *dead_ctx;
        -:        -:   61:   nir_function_impl *impl;
        -:        -:   62:
        -:        -:   63:   /* A hash table mapping variables to deref_node data */
        -:        -:   64:   struct hash_table *deref_var_nodes;
        -:        -:   65:
        -:        -:   66:   /* A hash table mapping fully-qualified direct dereferences, i.e.
        -:        -:   67:    * dereferences with no indirect or wildcard array dereferences, to
        -:        -:   68:    * deref_node data.
        -:        -:   69:    *
        -:        -:   70:    * At the moment, we only lower loads, stores, and copies that can be
        -:        -:   71:    * trivially lowered to loads and stores, i.e. copies with no indirects
        -:        -:   72:    * and no wildcards.  If a part of a variable that is being loaded from
        -:        -:   73:    * and/or stored into is also involved in a copy operation with
        -:        -:   74:    * wildcards, then we lower that copy operation to loads and stores, but
        -:        -:   75:    * otherwise we leave copies with wildcards alone. Since the only derefs
        -:        -:   76:    * used in these loads, stores, and trivial copies are ones with no
        -:        -:   77:    * wildcards and no indirects, these are precisely the derefs that we
        -:        -:   78:    * can actually consider lowering.
        -:        -:   79:    */
        -:        -:   80:   struct exec_list direct_deref_nodes;
        -:        -:   81:
        -:        -:   82:   /* Controls whether get_deref_node will add variables to the
        -:        -:   83:    * direct_deref_nodes table.  This is turned on when we are initially
        -:        -:   84:    * scanning for load/store instructions.  It is then turned off so we
        -:        -:   85:    * don't accidentally change the direct_deref_nodes table while we're
        -:        -:   86:    * iterating throug it.
        -:        -:   87:    */
        -:        -:   88:   bool add_to_direct_deref_nodes;
        -:        -:   89:
        -:        -:   90:   struct nir_phi_builder *phi_builder;
        -:        -:   91:};
        -:        -:   92:
        -:        -:   93:static struct deref_node *
      159:      161:   94:deref_node_create(struct deref_node *parent,
        -:        -:   95:                  const struct glsl_type *type, nir_shader *shader)
        -:        -:   96:{
      159:      161:   97:   size_t size = sizeof(struct deref_node) +
      159:      161:   98:                 glsl_get_length(type) * sizeof(struct deref_node *);
        -:        -:   99:
      159:      161:  100:   struct deref_node *node = rzalloc_size(shader, size);
      159:      161:  101:   node->type = type;
      159:      161:  102:   node->parent = parent;
      159:      161:  103:   node->deref = NULL;
      159:      161:  104:   exec_node_init(&node->direct_derefs_link);
        -:        -:  105:
      159:      161:  106:   return node;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:/* Returns the deref node associated with the given variable.  This will be
        -:        -:  110: * the root of the tree representing all of the derefs of the given variable.
        -:        -:  111: */
        -:        -:  112:static struct deref_node *
     1073:     1111:  113:get_deref_node_for_var(nir_variable *var, struct lower_variables_state *state)
        -:        -:  114:{
        -:        -:  115:   struct deref_node *node;
        -:        -:  116:
     1073:     1111:  117:   struct hash_entry *var_entry =
     1073:     1111:  118:      _mesa_hash_table_search(state->deref_var_nodes, var);
        -:        -:  119:
     1073:     1111:  120:   if (var_entry) {
      956:      992:  121:      return var_entry->data;
        -:        -:  122:   } else {
      117:      119:  123:      node = deref_node_create(NULL, var->type, state->dead_ctx);
      117:      119:  124:      _mesa_hash_table_insert(state->deref_var_nodes, var, node);
      117:      119:  125:      return node;
        -:        -:  126:   }
        -:        -:  127:}
        -:        -:  128:
        -:        -:  129:/* Gets the deref_node for the given deref chain and creates it if it
        -:        -:  130: * doesn't yet exist.  If the deref is fully-qualified and direct and
        -:        -:  131: * state->add_to_direct_deref_nodes is true, it will be added to the hash
        -:        -:  132: * table of of fully-qualified direct derefs.
        -:        -:  133: */
        -:        -:  134:static struct deref_node *
     1011:     1047:  135:get_deref_node(nir_deref_var *deref, struct lower_variables_state *state)
        -:        -:  136:{
     1011:     1047:  137:   bool is_direct = true;
        -:        -:  138:
        -:        -:  139:   /* Start at the base of the chain. */
     1011:     1047:  140:   struct deref_node *node = get_deref_node_for_var(deref->var, state);
     1011:     1047:  141:   assert(deref->deref.type == node->type);
        -:        -:  142:
     1134:     1170:  143:   for (nir_deref *tail = deref->deref.child; tail; tail = tail->child) {
      123:      123:  144:      switch (tail->deref_type) {
        -:        -:  145:      case nir_deref_type_struct: {
    #####:    #####:  146:         nir_deref_struct *deref_struct = nir_deref_as_struct(tail);
        -:        -:  147:
    #####:    #####:  148:         assert(deref_struct->index < glsl_get_length(node->type));
        -:        -:  149:
    #####:    #####:  150:         if (node->children[deref_struct->index] == NULL)
    #####:    #####:  151:            node->children[deref_struct->index] =
    #####:    #####:  152:               deref_node_create(node, tail->type, state->dead_ctx);
        -:        -:  153:
    #####:    #####:  154:         node = node->children[deref_struct->index];
    #####:    #####:  155:         break;
        -:        -:  156:      }
        -:        -:  157:
        -:        -:  158:      case nir_deref_type_array: {
      123:      123:  159:         nir_deref_array *arr = nir_deref_as_array(tail);
        -:        -:  160:
      123:      123:  161:         switch (arr->deref_array_type) {
        -:        -:  162:         case nir_deref_array_type_direct:
        -:        -:  163:            /* This is possible if a loop unrolls and generates an
        -:        -:  164:             * out-of-bounds offset.  We need to handle this at least
        -:        -:  165:             * somewhat gracefully.
        -:        -:  166:             */
      123:      123:  167:            if (arr->base_offset >= glsl_get_length(node->type))
    #####:    #####:  168:               return NULL;
        -:        -:  169:
      123:      123:  170:            if (node->children[arr->base_offset] == NULL)
       84:       84:  171:               node->children[arr->base_offset] =
       42:       42:  172:                  deref_node_create(node, tail->type, state->dead_ctx);
        -:        -:  173:
      123:      123:  174:            node = node->children[arr->base_offset];
      123:      123:  175:            break;
        -:        -:  176:
        -:        -:  177:         case nir_deref_array_type_indirect:
    #####:    #####:  178:            if (node->indirect == NULL)
    #####:    #####:  179:               node->indirect = deref_node_create(node, tail->type,
    #####:    #####:  180:                                                  state->dead_ctx);
        -:        -:  181:
    #####:    #####:  182:            node = node->indirect;
    #####:    #####:  183:            is_direct = false;
    #####:    #####:  184:            break;
        -:        -:  185:
        -:        -:  186:         case nir_deref_array_type_wildcard:
    #####:    #####:  187:            if (node->wildcard == NULL)
    #####:    #####:  188:               node->wildcard = deref_node_create(node, tail->type,
    #####:    #####:  189:                                                  state->dead_ctx);
        -:        -:  190:
    #####:    #####:  191:            node = node->wildcard;
    #####:    #####:  192:            is_direct = false;
    #####:    #####:  193:            break;
        -:        -:  194:
        -:        -:  195:         default:
    #####:    #####:  196:            unreachable("Invalid array deref type");
        -:        -:  197:         }
      123:      123:  198:         break;
        -:        -:  199:      }
        -:        -:  200:      default:
    #####:    #####:  201:         unreachable("Invalid deref type");
        -:        -:  202:      }
        -:        -:  203:   }
        -:        -:  204:
     1011:     1047:  205:   assert(node);
        -:        -:  206:
        -:        -:  207:   /* Only insert if it isn't already in the list. */
     1372:     1426:  208:   if (is_direct && state->add_to_direct_deref_nodes &&
      361:      379:  209:       node->direct_derefs_link.next == NULL) {
      150:      152:  210:      node->deref = deref;
      150:      152:  211:      assert(deref->var != NULL);
      150:      152:  212:      exec_list_push_tail(&state->direct_deref_nodes,
        -:        -:  213:                          &node->direct_derefs_link);
        -:        -:  214:   }
        -:        -:  215:
     1011:     1047:  216:   return node;
        -:        -:  217:}
        -:        -:  218:
        -:        -:  219:/* \sa foreach_deref_node_match */
        -:        -:  220:static bool
       62:       64:  221:foreach_deref_node_worker(struct deref_node *node, nir_deref *deref,
        -:        -:  222:                          bool (* cb)(struct deref_node *node,
        -:        -:  223:                                      struct lower_variables_state *state),
        -:        -:  224:                          struct lower_variables_state *state)
        -:        -:  225:{
       62:       64:  226:   if (deref->child == NULL) {
       62:       64:  227:      return cb(node, state);
        -:        -:  228:   } else {
    #####:    #####:  229:      switch (deref->child->deref_type) {
        -:        -:  230:      case nir_deref_type_array: {
    #####:    #####:  231:         nir_deref_array *arr = nir_deref_as_array(deref->child);
    #####:    #####:  232:         assert(arr->deref_array_type == nir_deref_array_type_direct);
    #####:    #####:  233:         if (node->children[arr->base_offset] &&
    #####:    #####:  234:             !foreach_deref_node_worker(node->children[arr->base_offset],
    #####:    #####:  235:                                        deref->child, cb, state))
    #####:    #####:  236:            return false;
        -:        -:  237:
    #####:    #####:  238:         if (node->wildcard &&
    #####:    #####:  239:             !foreach_deref_node_worker(node->wildcard,
    #####:    #####:  240:                                        deref->child, cb, state))
    #####:    #####:  241:            return false;
        -:        -:  242:
    #####:    #####:  243:         return true;
        -:        -:  244:      }
        -:        -:  245:
        -:        -:  246:      case nir_deref_type_struct: {
    #####:    #####:  247:         nir_deref_struct *str = nir_deref_as_struct(deref->child);
    #####:    #####:  248:         return foreach_deref_node_worker(node->children[str->index],
    #####:    #####:  249:                                          deref->child, cb, state);
        -:        -:  250:      }
        -:        -:  251:
        -:        -:  252:      default:
    #####:    #####:  253:         unreachable("Invalid deref child type");
        -:        -:  254:      }
        -:        -:  255:   }
        -:        -:  256:}
        -:        -:  257:
        -:        -:  258:/* Walks over every "matching" deref_node and calls the callback.  A node
        -:        -:  259: * is considered to "match" if either refers to that deref or matches up t
        -:        -:  260: * a wildcard.  In other words, the following would match a[6].foo[3].bar:
        -:        -:  261: *
        -:        -:  262: * a[6].foo[3].bar
        -:        -:  263: * a[*].foo[3].bar
        -:        -:  264: * a[6].foo[*].bar
        -:        -:  265: * a[*].foo[*].bar
        -:        -:  266: *
        -:        -:  267: * The given deref must be a full-length and fully qualified (no wildcards
        -:        -:  268: * or indirects) deref chain.
        -:        -:  269: */
        -:        -:  270:static bool
       62:       64:  271:foreach_deref_node_match(nir_deref_var *deref,
        -:        -:  272:                         bool (* cb)(struct deref_node *node,
        -:        -:  273:                                     struct lower_variables_state *state),
        -:        -:  274:                         struct lower_variables_state *state)
        -:        -:  275:{
       62:       64:  276:   nir_deref_var var_deref = *deref;
       62:       64:  277:   var_deref.deref.child = NULL;
       62:       64:  278:   struct deref_node *node = get_deref_node(&var_deref, state);
        -:        -:  279:
       62:       64:  280:   if (node == NULL)
    #####:    #####:  281:      return false;
        -:        -:  282:
       62:       64:  283:   return foreach_deref_node_worker(node, &deref->deref, cb, state);
        -:        -:  284:}
        -:        -:  285:
        -:        -:  286:/* \sa deref_may_be_aliased */
        -:        -:  287:static bool
       62:       64:  288:deref_may_be_aliased_node(struct deref_node *node, nir_deref *deref,
        -:        -:  289:                          struct lower_variables_state *state)
        -:        -:  290:{
       62:       64:  291:   if (deref->child == NULL) {
       62:       64:  292:      return false;
        -:        -:  293:   } else {
    #####:    #####:  294:      switch (deref->child->deref_type) {
        -:        -:  295:      case nir_deref_type_array: {
    #####:    #####:  296:         nir_deref_array *arr = nir_deref_as_array(deref->child);
    #####:    #####:  297:         if (arr->deref_array_type == nir_deref_array_type_indirect)
    #####:    #####:  298:            return true;
        -:        -:  299:
        -:        -:  300:         /* If there is an indirect at this level, we're aliased. */
    #####:    #####:  301:         if (node->indirect)
    #####:    #####:  302:            return true;
        -:        -:  303:
    #####:    #####:  304:         assert(arr->deref_array_type == nir_deref_array_type_direct);
        -:        -:  305:
    #####:    #####:  306:         if (node->children[arr->base_offset] &&
    #####:    #####:  307:             deref_may_be_aliased_node(node->children[arr->base_offset],
    #####:    #####:  308:                                       deref->child, state))
    #####:    #####:  309:            return true;
        -:        -:  310:
    #####:    #####:  311:         if (node->wildcard &&
    #####:    #####:  312:             deref_may_be_aliased_node(node->wildcard, deref->child, state))
    #####:    #####:  313:            return true;
        -:        -:  314:
    #####:    #####:  315:         return false;
        -:        -:  316:      }
        -:        -:  317:
        -:        -:  318:      case nir_deref_type_struct: {
    #####:    #####:  319:         nir_deref_struct *str = nir_deref_as_struct(deref->child);
    #####:    #####:  320:         if (node->children[str->index]) {
    #####:    #####:  321:             return deref_may_be_aliased_node(node->children[str->index],
    #####:    #####:  322:                                              deref->child, state);
        -:        -:  323:         } else {
    #####:    #####:  324:            return false;
        -:        -:  325:         }
        -:        -:  326:      }
        -:        -:  327:
        -:        -:  328:      default:
    #####:    #####:  329:         unreachable("Invalid nir_deref child type");
        -:        -:  330:      }
        -:        -:  331:   }
        -:        -:  332:}
        -:        -:  333:
        -:        -:  334:/* Returns true if there are no indirects that can ever touch this deref.
        -:        -:  335: *
        -:        -:  336: * For example, if the given deref is a[6].foo, then any uses of a[i].foo
        -:        -:  337: * would cause this to return false, but a[i].bar would not affect it
        -:        -:  338: * because it's a different structure member.  A var_copy involving of
        -:        -:  339: * a[*].bar also doesn't affect it because that can be lowered to entirely
        -:        -:  340: * direct load/stores.
        -:        -:  341: *
        -:        -:  342: * We only support asking this question about fully-qualified derefs.
        -:        -:  343: * Obviously, it's pointless to ask this about indirects, but we also
        -:        -:  344: * rule-out wildcards.  Handling Wildcard dereferences would involve
        -:        -:  345: * checking each array index to make sure that there aren't any indirect
        -:        -:  346: * references.
        -:        -:  347: */
        -:        -:  348:static bool
       62:       64:  349:deref_may_be_aliased(nir_deref_var *deref,
        -:        -:  350:                     struct lower_variables_state *state)
        -:        -:  351:{
       62:       64:  352:   return deref_may_be_aliased_node(get_deref_node_for_var(deref->var, state),
        -:        -:  353:                                    &deref->deref, state);
        -:        -:  354:}
        -:        -:  355:
        -:        -:  356:static void
      317:      339:  357:register_load_instr(nir_intrinsic_instr *load_instr,
        -:        -:  358:                    struct lower_variables_state *state)
        -:        -:  359:{
      317:      339:  360:   struct deref_node *node = get_deref_node(load_instr->variables[0], state);
      317:      339:  361:   if (node == NULL)
    #####:    #####:  362:      return;
        -:        -:  363:
      317:      339:  364:   if (node->loads == NULL)
      129:      131:  365:      node->loads = _mesa_set_create(state->dead_ctx, _mesa_hash_pointer,
        -:        -:  366:                                     _mesa_key_pointer_equal);
        -:        -:  367:
      317:      339:  368:   _mesa_set_add(node->loads, load_instr);
        -:        -:  369:}
        -:        -:  370:
        -:        -:  371:static void
      180:      184:  372:register_store_instr(nir_intrinsic_instr *store_instr,
        -:        -:  373:                     struct lower_variables_state *state)
        -:        -:  374:{
      180:      184:  375:   struct deref_node *node = get_deref_node(store_instr->variables[0], state);
      180:      184:  376:   if (node == NULL)
    #####:    #####:  377:      return;
        -:        -:  378:
      180:      184:  379:   if (node->stores == NULL)
       81:       83:  380:      node->stores = _mesa_set_create(state->dead_ctx, _mesa_hash_pointer,
        -:        -:  381:                                     _mesa_key_pointer_equal);
        -:        -:  382:
      180:      184:  383:   _mesa_set_add(node->stores, store_instr);
        -:        -:  384:}
        -:        -:  385:
        -:        -:  386:static void
       53:       53:  387:register_copy_instr(nir_intrinsic_instr *copy_instr,
        -:        -:  388:                    struct lower_variables_state *state)
        -:        -:  389:{
      159:      159:  390:   for (unsigned idx = 0; idx < 2; idx++) {
      106:      106:  391:      struct deref_node *node =
      106:      106:  392:         get_deref_node(copy_instr->variables[idx], state);
        -:        -:  393:
      106:      106:  394:      if (node == NULL)
    #####:    #####:  395:         continue;
        -:        -:  396:
      106:      106:  397:      if (node->copies == NULL)
       44:       44:  398:         node->copies = _mesa_set_create(state->dead_ctx, _mesa_hash_pointer,
        -:        -:  399:                                         _mesa_key_pointer_equal);
        -:        -:  400:
      106:      106:  401:      _mesa_set_add(node->copies, copy_instr);
        -:        -:  402:   }
       53:       53:  403:}
        -:        -:  404:
        -:        -:  405:/* Registers all variable uses in the given block. */
        -:        -:  406:static bool
      415:      559:  407:register_variable_uses_block(nir_block *block,
        -:        -:  408:                             struct lower_variables_state *state)
        -:        -:  409:{
     2302:     2633:  410:   nir_foreach_instr_safe(instr, block) {
     1887:     2074:  411:      if (instr->type != nir_instr_type_intrinsic)
     1271:     1422:  412:         continue;
        -:        -:  413:
      616:      652:  414:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  415:
      616:      652:  416:      switch (intrin->intrinsic) {
        -:        -:  417:      case nir_intrinsic_load_var:
      317:      339:  418:         register_load_instr(intrin, state);
      317:      339:  419:         break;
        -:        -:  420:
        -:        -:  421:      case nir_intrinsic_store_var:
      180:      184:  422:         register_store_instr(intrin, state);
      180:      184:  423:         break;
        -:        -:  424:
        -:        -:  425:      case nir_intrinsic_copy_var:
       53:       53:  426:         register_copy_instr(intrin, state);
       53:       53:  427:         break;
        -:        -:  428:
        -:        -:  429:      default:
       66:       76:  430:         continue;
        -:        -:  431:      }
        -:        -:  432:   }
        -:        -:  433:
      415:      559:  434:   return true;
        -:        -:  435:}
        -:        -:  436:
        -:        -:  437:/* Walks over all of the copy instructions to or from the given deref_node
        -:        -:  438: * and lowers them to load/store intrinsics.
        -:        -:  439: */
        -:        -:  440:static bool
       62:       64:  441:lower_copies_to_load_store(struct deref_node *node,
        -:        -:  442:                           struct lower_variables_state *state)
        -:        -:  443:{
       62:       64:  444:   if (!node->copies)
       26:       28:  445:      return true;
        -:        -:  446:
        -:        -:  447:   struct set_entry *copy_entry;
       88:       88:  448:   set_foreach(node->copies, copy_entry) {
       52:       52:  449:      nir_intrinsic_instr *copy = (void *)copy_entry->key;
        -:        -:  450:
       52:       52:  451:      nir_lower_var_copy_instr(copy, state->shader);
        -:        -:  452:
      156:      156:  453:      for (unsigned i = 0; i < 2; ++i) {
      104:      104:  454:         struct deref_node *arg_node =
      104:      104:  455:            get_deref_node(copy->variables[i], state);
        -:        -:  456:
        -:        -:  457:         /* Only bother removing copy entries for other nodes */
      104:      104:  458:         if (arg_node == NULL || arg_node == node)
       52:       52:  459:            continue;
        -:        -:  460:
       52:       52:  461:         struct set_entry *arg_entry = _mesa_set_search(arg_node->copies, copy);
       52:       52:  462:         assert(arg_entry);
       52:       52:  463:         _mesa_set_remove(node->copies, arg_entry);
        -:        -:  464:      }
        -:        -:  465:
       52:       52:  466:      nir_instr_remove(©->instr);
        -:        -:  467:   }
        -:        -:  468:
       36:       36:  469:   node->copies = NULL;
        -:        -:  470:
       36:       36:  471:   return true;
        -:        -:  472:}
        -:        -:  473:
        -:        -:  474:/* Performs variable renaming
        -:        -:  475: *
        -:        -:  476: * This algorithm is very similar to the one outlined in "Efficiently
        -:        -:  477: * Computing Static Single Assignment Form and the Control Dependence
        -:        -:  478: * Graph" by Cytron et al.  The primary difference is that we only put one
        -:        -:  479: * SSA def on the stack per block.
        -:        -:  480: */
        -:        -:  481:static bool
        3:        3:  482:rename_variables(struct lower_variables_state *state)
        -:        -:  483:{
        -:        -:  484:   nir_builder b;
        3:        3:  485:   nir_builder_init(&b, state->impl);
        -:        -:  486:
       90:      106:  487:   nir_foreach_block(block, state->impl) {
      423:      457:  488:      nir_foreach_instr_safe(instr, block) {
      336:      354:  489:         if (instr->type != nir_instr_type_intrinsic)
       94:      104:  490:            continue;
        -:        -:  491:
      242:      250:  492:         nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  493:
      242:      250:  494:         switch (intrin->intrinsic) {
        -:        -:  495:         case nir_intrinsic_load_var: {
      134:      140:  496:            struct deref_node *node =
      134:      140:  497:               get_deref_node(intrin->variables[0], state);
        -:        -:  498:
      134:      140:  499:            if (node == NULL) {
        -:        -:  500:               /* If we hit this path then we are referencing an invalid
        -:        -:  501:                * value.  Most likely, we unrolled something and are
        -:        -:  502:                * reading past the end of some array.  In any case, this
        -:        -:  503:                * should result in an undefined value.
        -:        -:  504:                */
    #####:    #####:  505:               nir_ssa_undef_instr *undef =
    #####:    #####:  506:                  nir_ssa_undef_instr_create(state->shader,
    #####:    #####:  507:                                             intrin->num_components,
    #####:    #####:  508:                                             intrin->dest.ssa.bit_size);
        -:        -:  509:
    #####:    #####:  510:               nir_instr_insert_before(&intrin->instr, &undef->instr);
    #####:    #####:  511:               nir_instr_remove(&intrin->instr);
        -:        -:  512:
    #####:    #####:  513:               nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
        -:        -:  514:                                        nir_src_for_ssa(&undef->def));
    #####:    #####:  515:               continue;
        -:        -:  516:            }
        -:        -:  517:
      134:      140:  518:            if (!node->lower_to_ssa)
       20:       22:  519:               continue;
        -:        -:  520:
      114:      118:  521:            nir_alu_instr *mov = nir_alu_instr_create(state->shader,
        -:        -:  522:                                                      nir_op_imov);
      114:      118:  523:            mov->src[0].src = nir_src_for_ssa(
        -:        -:  524:               nir_phi_builder_value_get_block_def(node->pb_value, block));
      443:      459:  525:            for (unsigned i = intrin->num_components; i < 4; i++)
      329:      341:  526:               mov->src[0].swizzle[i] = 0;
        -:        -:  527:
      114:      118:  528:            assert(intrin->dest.is_ssa);
        -:        -:  529:
      114:      118:  530:            mov->dest.write_mask = (1 << intrin->num_components) - 1;
      228:      236:  531:            nir_ssa_dest_init(&mov->instr, &mov->dest.dest,
      114:      118:  532:                              intrin->num_components,
      114:      118:  533:                              intrin->dest.ssa.bit_size, NULL);
        -:        -:  534:
      114:      118:  535:            nir_instr_insert_before(&intrin->instr, &mov->instr);
      114:      118:  536:            nir_instr_remove(&intrin->instr);
        -:        -:  537:
      114:      118:  538:            nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
        -:        -:  539:                                     nir_src_for_ssa(&mov->dest.dest.ssa));
      114:      118:  540:            break;
        -:        -:  541:         }
        -:        -:  542:
        -:        -:  543:         case nir_intrinsic_store_var: {
      108:      110:  544:            struct deref_node *node =
      108:      110:  545:               get_deref_node(intrin->variables[0], state);
        -:        -:  546:
      108:      110:  547:            if (node == NULL) {
        -:        -:  548:               /* Probably an out-of-bounds array store.  That should be a
        -:        -:  549:                * no-op. */
    #####:    #####:  550:               nir_instr_remove(&intrin->instr);
    #####:    #####:  551:               continue;
        -:        -:  552:            }
        -:        -:  553:
      108:      110:  554:            if (!node->lower_to_ssa)
        3:        3:  555:               continue;
        -:        -:  556:
      105:      107:  557:            assert(intrin->num_components ==
        -:        -:  558:                   glsl_get_vector_elements(node->type));
        -:        -:  559:
      105:      107:  560:            assert(intrin->src[0].is_ssa);
        -:        -:  561:
        -:        -:  562:            nir_ssa_def *new_def;
      105:      107:  563:            b.cursor = nir_before_instr(&intrin->instr);
        -:        -:  564:
      105:      107:  565:            unsigned wrmask = nir_intrinsic_write_mask(intrin);
      105:      107:  566:            if (wrmask == (1 << intrin->num_components) - 1) {
        -:        -:  567:               /* Whole variable store - just copy the source.  Note that
        -:        -:  568:                * intrin->num_components and intrin->src[0].ssa->num_components
        -:        -:  569:                * may differ.
        -:        -:  570:                */
        -:        -:  571:               unsigned swiz[4];
      495:      505:  572:               for (unsigned i = 0; i < 4; i++)
      396:      404:  573:                  swiz[i] = i < intrin->num_components ? i : 0;
        -:        -:  574:
       99:      101:  575:               new_def = nir_swizzle(&b, intrin->src[0].ssa, swiz,
       99:      101:  576:                                     intrin->num_components, false);
        -:        -:  577:            } else {
        6:        6:  578:               nir_ssa_def *old_def =
        6:        6:  579:                  nir_phi_builder_value_get_block_def(node->pb_value, block);
        -:        -:  580:               /* For writemasked store_var intrinsics, we combine the newly
        -:        -:  581:                * written values with the existing contents of unwritten
        -:        -:  582:                * channels, creating a new SSA value for the whole vector.
        -:        -:  583:                */
        -:        -:  584:               nir_ssa_def *srcs[4];
       30:       30:  585:               for (unsigned i = 0; i < intrin->num_components; i++) {
       24:       24:  586:                  if (wrmask & (1 << i)) {
        8:        8:  587:                     srcs[i] = nir_channel(&b, intrin->src[0].ssa, i);
        -:        -:  588:                  } else {
       16:       16:  589:                     srcs[i] = nir_channel(&b, old_def, i);
        -:        -:  590:                  }
        -:        -:  591:               }
        6:        6:  592:               new_def = nir_vec(&b, srcs, intrin->num_components);
        -:        -:  593:            }
        -:        -:  594:
      105:      107:  595:            assert(new_def->num_components == intrin->num_components);
        -:        -:  596:
      105:      107:  597:            nir_phi_builder_value_set_block_def(node->pb_value, block, new_def);
      105:      107:  598:            nir_instr_remove(&intrin->instr);
      105:      107:  599:            break;
        -:        -:  600:         }
        -:        -:  601:
        -:        -:  602:         default:
    #####:    #####:  603:            break;
        -:        -:  604:         }
        -:        -:  605:      }
        -:        -:  606:   }
        -:        -:  607:
        3:        3:  608:   return true;
        -:        -:  609:}
        -:        -:  610:
        -:        -:  611:/** Implements a pass to lower variable uses to SSA values
        -:        -:  612: *
        -:        -:  613: * This path walks the list of instructions and tries to lower as many
        -:        -:  614: * local variable load/store operations to SSA defs and uses as it can.
        -:        -:  615: * The process involves four passes:
        -:        -:  616: *
        -:        -:  617: *  1) Iterate over all of the instructions and mark where each local
        -:        -:  618: *     variable deref is used in a load, store, or copy.  While we're at
        -:        -:  619: *     it, we keep track of all of the fully-qualified (no wildcards) and
        -:        -:  620: *     fully-direct references we see and store them in the
        -:        -:  621: *     direct_deref_nodes hash table.
        -:        -:  622: *
        -:        -:  623: *  2) Walk over the list of fully-qualified direct derefs generated in
        -:        -:  624: *     the previous pass.  For each deref, we determine if it can ever be
        -:        -:  625: *     aliased, i.e. if there is an indirect reference anywhere that may
        -:        -:  626: *     refer to it.  If it cannot be aliased, we mark it for lowering to an
        -:        -:  627: *     SSA value.  At this point, we lower any var_copy instructions that
        -:        -:  628: *     use the given deref to load/store operations.
        -:        -:  629: *
        -:        -:  630: *  3) Walk over the list of derefs we plan to lower to SSA values and
        -:        -:  631: *     insert phi nodes as needed.
        -:        -:  632: *
        -:        -:  633: *  4) Perform "variable renaming" by replacing the load/store instructions
        -:        -:  634: *     with SSA definitions and SSA uses.
        -:        -:  635: */
        -:        -:  636:static bool
       27:       27:  637:nir_lower_vars_to_ssa_impl(nir_function_impl *impl)
        -:        -:  638:{
        -:        -:  639:   struct lower_variables_state state;
        -:        -:  640:
       27:       27:  641:   state.shader = impl->function->shader;
       27:       27:  642:   state.dead_ctx = ralloc_context(state.shader);
       27:       27:  643:   state.impl = impl;
        -:        -:  644:
       27:       27:  645:   state.deref_var_nodes = _mesa_hash_table_create(state.dead_ctx,
        -:        -:  646:                                                   _mesa_hash_pointer,
        -:        -:  647:                                                   _mesa_key_pointer_equal);
       27:       27:  648:   exec_list_make_empty(&state.direct_deref_nodes);
        -:        -:  649:
        -:        -:  650:   /* Build the initial deref structures and direct_deref_nodes table */
       27:       27:  651:   state.add_to_direct_deref_nodes = true;
        -:        -:  652:
      355:      483:  653:   nir_foreach_block(block, impl) {
      328:      456:  654:      register_variable_uses_block(block, &state);
        -:        -:  655:   }
        -:        -:  656:
       27:       27:  657:   bool progress = false;
        -:        -:  658:
       27:       27:  659:   nir_metadata_require(impl, nir_metadata_block_index);
        -:        -:  660:
        -:        -:  661:   /* We're about to iterate through direct_deref_nodes.  Don't modify it. */
       27:       27:  662:   state.add_to_direct_deref_nodes = false;
        -:        -:  663:
      177:      179:  664:   foreach_list_typed_safe(struct deref_node, node, direct_derefs_link,
        -:        -:  665:                           &state.direct_deref_nodes) {
      150:      152:  666:      nir_deref_var *deref = node->deref;
        -:        -:  667:
      150:      152:  668:      if (deref->var->data.mode != nir_var_local) {
       88:       88:  669:         exec_node_remove(&node->direct_derefs_link);
       88:       88:  670:         continue;
        -:        -:  671:      }
        -:        -:  672:
       62:       64:  673:      if (deref_may_be_aliased(deref, &state)) {
    #####:    #####:  674:         exec_node_remove(&node->direct_derefs_link);
    #####:    #####:  675:         continue;
        -:        -:  676:      }
        -:        -:  677:
       62:       64:  678:      node->lower_to_ssa = true;
       62:       64:  679:      progress = true;
        -:        -:  680:
       62:       64:  681:      foreach_deref_node_match(deref, lower_copies_to_load_store, &state);
        -:        -:  682:   }
        -:        -:  683:
       27:       27:  684:   if (!progress)
       24:       24:  685:      return false;
        -:        -:  686:
        3:        3:  687:   nir_metadata_require(impl, nir_metadata_dominance);
        -:        -:  688:
        -:        -:  689:   /* We may have lowered some copy instructions to load/store
        -:        -:  690:    * instructions.  The uses from the copy instructions hav already been
        -:        -:  691:    * removed but we need to rescan to ensure that the uses from the newly
        -:        -:  692:    * added load/store instructions are registered.  We need this
        -:        -:  693:    * information for phi node insertion below.
        -:        -:  694:    */
       90:      106:  695:   nir_foreach_block(block, impl) {
       87:      103:  696:      register_variable_uses_block(block, &state);
        -:        -:  697:   }
        -:        -:  698:
        3:        3:  699:   state.phi_builder = nir_phi_builder_create(state.impl);
        -:        -:  700:
        3:        3:  701:   NIR_VLA(BITSET_WORD, store_blocks, BITSET_WORDS(state.impl->num_blocks));
       65:       67:  702:   foreach_list_typed(struct deref_node, node, direct_derefs_link,
        -:        -:  703:                      &state.direct_deref_nodes) {
       62:       64:  704:      if (!node->lower_to_ssa)
    #####:    #####:  705:         continue;
        -:        -:  706:
       62:       64:  707:      memset(store_blocks, 0,
       62:       64:  708:             BITSET_WORDS(state.impl->num_blocks) * sizeof(*store_blocks));
        -:        -:  709:
       62:       64:  710:      assert(node->deref->var->constant_initializer == NULL);
        -:        -:  711:
       62:       64:  712:      if (node->stores) {
        -:        -:  713:         struct set_entry *store_entry;
      167:      171:  714:         set_foreach(node->stores, store_entry) {
      105:      107:  715:            nir_intrinsic_instr *store =
        -:        -:  716:               (nir_intrinsic_instr *)store_entry->key;
      105:      107:  717:            BITSET_SET(store_blocks, store->instr.block->index);
        -:        -:  718:         }
        -:        -:  719:      }
        -:        -:  720:
       62:       64:  721:      node->pb_value =
       62:       64:  722:         nir_phi_builder_add_value(state.phi_builder,
        -:        -:  723:                                   glsl_get_vector_elements(node->type),
        -:        -:  724:                                   glsl_get_bit_size(node->type),
        -:        -:  725:                                   store_blocks);
        -:        -:  726:   }
        -:        -:  727:
        3:        3:  728:   rename_variables(&state);
        -:        -:  729:
        3:        3:  730:   nir_phi_builder_finish(state.phi_builder);
        -:        -:  731:
        3:        3:  732:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  733:                               nir_metadata_dominance);
        -:        -:  734:
        3:        3:  735:   ralloc_free(state.dead_ctx);
        -:        -:  736:
        3:        3:  737:   return progress;
        -:        -:  738:}
        -:        -:  739:
        -:        -:  740:bool
       27:       27:  741:nir_lower_vars_to_ssa(nir_shader *shader)
        -:        -:  742:{
       27:       27:  743:   bool progress = false;
        -:        -:  744:
       54:       54:  745:   nir_foreach_function(function, shader) {
       27:       27:  746:      if (function->impl)
       27:       27:  747:         progress |= nir_lower_vars_to_ssa_impl(function->impl);
        -:        -:  748:   }
        -:        -:  749:
       27:       27:  750:   return progress;
        -:        -:  751:}

src/compiler/nir_lower_wpos_ytransform.c.gcov

        -:        -:    0:Source:nir/nir_lower_wpos_ytransform.c
        -:        -:    0:Graph:nir/.libs/nir_lower_wpos_ytransform.gcno
        -:        -:    0:Data:nir/.libs/nir_lower_wpos_ytransform.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Red Hat
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        -:        -:   20: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        -:        -:   21: * SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:#include "program/prog_instruction.h"
        -:        -:   27:
        -:        -:   28:/* Lower gl_FragCoord (and fddy) to account for driver's requested coordinate-
        -:        -:   29: * origin and pixel-center vs. shader.  If transformation is required, a
        -:        -:   30: * gl_FbWposYTransform uniform is inserted (with the specified state-slots)
        -:        -:   31: * and additional instructions are inserted to transform gl_FragCoord (and
        -:        -:   32: * fddy src arg).
        -:        -:   33: *
        -:        -:   34: * This is based on the logic in emit_wpos()/emit_wpos_adjustment() in TGSI
        -:        -:   35: * compiler.
        -:        -:   36: *
        -:        -:   37: * Run before nir_lower_io.
        -:        -:   38: */
        -:        -:   39:
        -:        -:   40:typedef struct {
        -:        -:   41:   const nir_lower_wpos_ytransform_options *options;
        -:        -:   42:   nir_shader   *shader;
        -:        -:   43:   nir_builder   b;
        -:        -:   44:   nir_variable *transform;
        -:        -:   45:} lower_wpos_ytransform_state;
        -:        -:   46:
        -:        -:   47:static nir_ssa_def *
        2:        4:   48:get_transform(lower_wpos_ytransform_state *state)
        -:        -:   49:{
        2:        4:   50:   if (state->transform == NULL) {
        -:        -:   51:      /* NOTE: name must be prefixed w/ "gl_" to trigger slot based
        -:        -:   52:       * special handling in uniform setup:
        -:        -:   53:       */
        1:        1:   54:      nir_variable *var = nir_variable_create(state->shader,
        -:        -:   55:                                              nir_var_uniform,
        -:        -:   56:                                              glsl_vec4_type(),
        -:        -:   57:                                              "gl_FbWposYTransform");
        -:        -:   58:
        1:        1:   59:      var->num_state_slots = 1;
        1:        1:   60:      var->state_slots = ralloc_array(var, nir_state_slot, 1);
        1:        1:   61:      var->state_slots[0].swizzle = SWIZZLE_XYZW;
        1:        1:   62:      memcpy(var->state_slots[0].tokens, state->options->state_tokens,
        -:        -:   63:             sizeof(var->state_slots[0].tokens));
        -:        -:   64:
        1:        1:   65:      state->transform = var;
        -:        -:   66:   }
        2:        4:   67:   return nir_load_var(&state->b, state->transform);
        -:        -:   68:}
        -:        -:   69:
        -:        -:   70:/* NIR equiv of TGSI CMP instruction: */
        -:        -:   71:static nir_ssa_def *
    #####:    #####:   72:nir_cmp(nir_builder *b, nir_ssa_def *src0, nir_ssa_def *src1, nir_ssa_def *src2)
        -:        -:   73:{
    #####:    #####:   74:   return nir_bcsel(b, nir_flt(b, src0, nir_imm_float(b, 0.0)), src1, src2);
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:/* see emit_wpos_adjustment() in st_mesa_to_tgsi.c */
        -:        -:   78:static void
        2:        4:   79:emit_wpos_adjustment(lower_wpos_ytransform_state *state,
        -:        -:   80:                     nir_intrinsic_instr *intr,
        -:        -:   81:                     bool invert, float adjX, float adjY[2])
        -:        -:   82:{
        2:        4:   83:   nir_builder *b = &state->b;
        2:        4:   84:   nir_variable *fragcoord = intr->variables[0]->var;
        -:        -:   85:   nir_ssa_def *wpostrans, *wpos_temp, *wpos_temp_y, *wpos_input;
        -:        -:   86:
        2:        4:   87:   assert(intr->dest.is_ssa);
        -:        -:   88:
        2:        4:   89:   b->cursor = nir_before_instr(&intr->instr);
        -:        -:   90:
        2:        4:   91:   wpostrans = get_transform(state);
        2:        4:   92:   wpos_input = nir_load_var(b, fragcoord);
        -:        -:   93:
        -:        -:   94:   /* First, apply the coordinate shift: */
        2:        4:   95:   if (adjX || adjY[0] || adjY[1]) {
        2:        4:   96:      if (adjY[0] != adjY[1]) {
        -:        -:   97:         /* Adjust the y coordinate by adjY[1] or adjY[0] respectively
        -:        -:   98:          * depending on whether inversion is actually going to be applied
        -:        -:   99:          * or not, which is determined by testing against the inversion
        -:        -:  100:          * state variable used below, which will be either +1 or -1.
        -:        -:  101:          */
        -:        -:  102:         nir_ssa_def *adj_temp;
        -:        -:  103:
    #####:    #####:  104:         adj_temp = nir_cmp(b,
        -:        -:  105:                            nir_channel(b, wpostrans, invert ? 2 : 0),
        -:        -:  106:                            nir_imm_vec4(b, adjX, adjY[0], 0.0f, 0.0f),
    #####:    #####:  107:                            nir_imm_vec4(b, adjX, adjY[1], 0.0f, 0.0f));
        -:        -:  108:
    #####:    #####:  109:         wpos_temp = nir_fadd(b, wpos_input, adj_temp);
        -:        -:  110:      } else {
        2:        4:  111:         wpos_temp = nir_fadd(b,
        -:        -:  112:                              wpos_input,
        -:        -:  113:                              nir_imm_vec4(b, adjX, adjY[0], 0.0f, 0.0f));
        -:        -:  114:      }
        2:        4:  115:      wpos_input = wpos_temp;
        -:        -:  116:   } else {
        -:        -:  117:      /* MOV wpos_temp, input[wpos]
        -:        -:  118:       */
    #####:    #####:  119:      wpos_temp = wpos_input;
        -:        -:  120:   }
        -:        -:  121:
        -:        -:  122:   /* Now the conditional y flip: STATE_FB_WPOS_Y_TRANSFORM.xy/zw will be
        -:        -:  123:    * inversion/identity, or the other way around if we're drawing to an FBO.
        -:        -:  124:    */
        2:        4:  125:   if (invert) {
        -:        -:  126:      /* wpos_temp.y = wpos_input * wpostrans.xxxx + wpostrans.yyyy */
        2:        4:  127:      wpos_temp_y = nir_fadd(b, nir_fmul(b, nir_channel(b, wpos_temp, 1),
        -:        -:  128:                                            nir_channel(b, wpostrans, 0)),
        -:        -:  129:                                nir_channel(b, wpostrans, 1));
        -:        -:  130:   } else {
        -:        -:  131:      /* wpos_temp.y = wpos_input * wpostrans.zzzz + wpostrans.wwww */
    #####:    #####:  132:      wpos_temp_y = nir_fadd(b, nir_fmul(b, nir_channel(b, wpos_temp, 1),
        -:        -:  133:                                            nir_channel(b, wpostrans, 2)),
        -:        -:  134:                                nir_channel(b, wpostrans, 3));
        -:        -:  135:   }
        -:        -:  136:
        2:        4:  137:   wpos_temp = nir_vec4(b,
        -:        -:  138:                        nir_channel(b, wpos_temp, 0),
        -:        -:  139:                        wpos_temp_y,
        -:        -:  140:                        nir_channel(b, wpos_temp, 2),
        -:        -:  141:                        nir_channel(b, wpos_temp, 3));
        -:        -:  142:
        2:        4:  143:   nir_ssa_def_rewrite_uses(&intr->dest.ssa, nir_src_for_ssa(wpos_temp));
        2:        4:  144:}
        -:        -:  145:
        -:        -:  146:static void
        2:        4:  147:lower_fragcoord(lower_wpos_ytransform_state *state, nir_intrinsic_instr *intr)
        -:        -:  148:{
        2:        4:  149:   const nir_lower_wpos_ytransform_options *options = state->options;
        2:        4:  150:   nir_variable *fragcoord = intr->variables[0]->var;
        2:        4:  151:   float adjX = 0.0f;
        2:        4:  152:   float adjY[2] = { 0.0f, 0.0f };
        2:        4:  153:   bool invert = false;
        -:        -:  154:
        -:        -:  155:   /* Based on logic in emit_wpos():
        -:        -:  156:    *
        -:        -:  157:    * Query the pixel center conventions supported by the pipe driver and set
        -:        -:  158:    * adjX, adjY to help out if it cannot handle the requested one internally.
        -:        -:  159:    *
        -:        -:  160:    * The bias of the y-coordinate depends on whether y-inversion takes place
        -:        -:  161:    * (adjY[1]) or not (adjY[0]), which is in turn dependent on whether we are
        -:        -:  162:    * drawing to an FBO (causes additional inversion), and whether the pipe
        -:        -:  163:    * driver origin and the requested origin differ (the latter condition is
        -:        -:  164:    * stored in the 'invert' variable).
        -:        -:  165:    *
        -:        -:  166:    * For height = 100 (i = integer, h = half-integer, l = lower, u = upper):
        -:        -:  167:    *
        -:        -:  168:    * center shift only:
        -:        -:  169:    * i -> h: +0.5
        -:        -:  170:    * h -> i: -0.5
        -:        -:  171:    *
        -:        -:  172:    * inversion only:
        -:        -:  173:    * l,i -> u,i: ( 0.0 + 1.0) * -1 + 100 = 99
        -:        -:  174:    * l,h -> u,h: ( 0.5 + 0.0) * -1 + 100 = 99.5
        -:        -:  175:    * u,i -> l,i: (99.0 + 1.0) * -1 + 100 = 0
        -:        -:  176:    * u,h -> l,h: (99.5 + 0.0) * -1 + 100 = 0.5
        -:        -:  177:    *
        -:        -:  178:    * inversion and center shift:
        -:        -:  179:    * l,i -> u,h: ( 0.0 + 0.5) * -1 + 100 = 99.5
        -:        -:  180:    * l,h -> u,i: ( 0.5 + 0.5) * -1 + 100 = 99
        -:        -:  181:    * u,i -> l,h: (99.0 + 0.5) * -1 + 100 = 0.5
        -:        -:  182:    * u,h -> l,i: (99.5 + 0.5) * -1 + 100 = 0
        -:        -:  183:    */
        -:        -:  184:
        2:        4:  185:   if (fragcoord->data.origin_upper_left) {
        -:        -:  186:      /* Fragment shader wants origin in upper-left */
    #####:    #####:  187:      if (options->fs_coord_origin_upper_left) {
        -:        -:  188:         /* the driver supports upper-left origin */
    #####:    #####:  189:      } else if (options->fs_coord_origin_lower_left) {
        -:        -:  190:         /* the driver supports lower-left origin, need to invert Y */
    #####:    #####:  191:         invert = true;
        -:        -:  192:      } else {
    #####:    #####:  193:         unreachable("invalid options");
        -:        -:  194:      }
        -:        -:  195:   } else {
        -:        -:  196:      /* Fragment shader wants origin in lower-left */
        2:        4:  197:      if (options->fs_coord_origin_lower_left) {
        -:        -:  198:         /* the driver supports lower-left origin */
        2:        4:  199:      } else if (options->fs_coord_origin_upper_left) {
        -:        -:  200:         /* the driver supports upper-left origin, need to invert Y */
        2:        4:  201:         invert = true;
        -:        -:  202:      } else {
    #####:    #####:  203:         unreachable("invalid options");
        -:        -:  204:      }
        -:        -:  205:   }
        -:        -:  206:
        2:        4:  207:   if (fragcoord->data.pixel_center_integer) {
        -:        -:  208:      /* Fragment shader wants pixel center integer */
    #####:    #####:  209:      if (options->fs_coord_pixel_center_integer) {
        -:        -:  210:         /* the driver supports pixel center integer */
    #####:    #####:  211:         adjY[1] = 1.0f;
    #####:    #####:  212:      } else if (options->fs_coord_pixel_center_half_integer) {
        -:        -:  213:         /* the driver supports pixel center half integer, need to bias X,Y */
    #####:    #####:  214:         adjX = -0.5f;
    #####:    #####:  215:         adjY[0] = -0.5f;
    #####:    #####:  216:         adjY[1] = 0.5f;
        -:        -:  217:      } else {
    #####:    #####:  218:         unreachable("invalid options");
        -:        -:  219:      }
        -:        -:  220:   } else {
        -:        -:  221:      /* Fragment shader wants pixel center half integer */
        2:        4:  222:      if (options->fs_coord_pixel_center_half_integer) {
        -:        -:  223:         /* the driver supports pixel center half integer */
        2:        4:  224:      } else if (options->fs_coord_pixel_center_integer) {
        -:        -:  225:         /* the driver supports pixel center integer, need to bias X,Y */
        2:        4:  226:         adjX = adjY[0] = adjY[1] = 0.5f;
        -:        -:  227:      } else {
    #####:    #####:  228:         unreachable("invalid options");
        -:        -:  229:      }
        -:        -:  230:   }
        -:        -:  231:
        2:        4:  232:   emit_wpos_adjustment(state, intr, invert, adjX, adjY);
        2:        4:  233:}
        -:        -:  234:
        -:        -:  235:/* turns 'fddy(p)' into 'fddy(fmul(p, transform.x))' */
        -:        -:  236:static void
    #####:    #####:  237:lower_fddy(lower_wpos_ytransform_state *state, nir_alu_instr *fddy)
        -:        -:  238:{
    #####:    #####:  239:   nir_builder *b = &state->b;
        -:        -:  240:   nir_ssa_def *p, *pt, *trans;
        -:        -:  241:
    #####:    #####:  242:   b->cursor = nir_before_instr(&fddy->instr);
        -:        -:  243:
    #####:    #####:  244:   p = nir_ssa_for_alu_src(b, fddy, 0);
    #####:    #####:  245:   trans = get_transform(state);
    #####:    #####:  246:   pt = nir_fmul(b, p, nir_channel(b, trans, 0));
        -:        -:  247:
    #####:    #####:  248:   nir_instr_rewrite_src(&fddy->instr,
        -:        -:  249:                         &fddy->src[0].src,
        -:        -:  250:                         nir_src_for_ssa(pt));
        -:        -:  251:
    #####:    #####:  252:   for (unsigned i = 0; i < 4; i++)
    #####:    #####:  253:      fddy->src[0].swizzle[i] = MIN2(i, pt->num_components - 1);
    #####:    #####:  254:}
        -:        -:  255:
        -:        -:  256:/* Multiply interp_var_at_offset's offset by transform.x to flip it. */
        -:        -:  257:static void
    #####:    #####:  258:lower_interp_var_at_offset(lower_wpos_ytransform_state *state,
        -:        -:  259:                           nir_intrinsic_instr *interp)
        -:        -:  260:{
    #####:    #####:  261:   nir_builder *b = &state->b;
        -:        -:  262:   nir_ssa_def *offset;
        -:        -:  263:   nir_ssa_def *flip_y;
        -:        -:  264:
    #####:    #####:  265:   b->cursor = nir_before_instr(&interp->instr);
        -:        -:  266:
    #####:    #####:  267:   offset = nir_ssa_for_src(b, interp->src[0], 2);
    #####:    #####:  268:   flip_y = nir_fmul(b, nir_channel(b, offset, 1),
        -:        -:  269:                        nir_channel(b, get_transform(state), 0));
    #####:    #####:  270:   nir_instr_rewrite_src(&interp->instr, &interp->src[0],
        -:        -:  271:                         nir_src_for_ssa(nir_vec2(b, nir_channel(b, offset, 0),
        -:        -:  272:                                                     flip_y)));
    #####:    #####:  273:}
        -:        -:  274:
        -:        -:  275:static void
    #####:    #####:  276:lower_load_sample_pos(lower_wpos_ytransform_state *state,
        -:        -:  277:                      nir_intrinsic_instr *intr)
        -:        -:  278:{
    #####:    #####:  279:   nir_builder *b = &state->b;
    #####:    #####:  280:   b->cursor = nir_after_instr(&intr->instr);
        -:        -:  281:
    #####:    #####:  282:   nir_ssa_def *pos = &intr->dest.ssa;
    #####:    #####:  283:   nir_ssa_def *scale = nir_channel(b, get_transform(state), 0);
    #####:    #####:  284:   nir_ssa_def *neg_scale = nir_channel(b, get_transform(state), 2);
        -:        -:  285:   /* Either y or 1-y for scale equal to 1 or -1 respectively. */
    #####:    #####:  286:   nir_ssa_def *flipped_y =
    #####:    #####:  287:               nir_fadd(b, nir_fmax(b, neg_scale, nir_imm_float(b, 0.0)),
        -:        -:  288:                        nir_fmul(b, nir_channel(b, pos, 1), scale));
    #####:    #####:  289:   nir_ssa_def *flipped_pos = nir_vec2(b, nir_channel(b, pos, 0), flipped_y);
        -:        -:  290:
    #####:    #####:  291:   nir_ssa_def_rewrite_uses_after(&intr->dest.ssa, nir_src_for_ssa(flipped_pos),
        -:        -:  292:                                  flipped_pos->parent_instr);
    #####:    #####:  293:}
        -:        -:  294:
        -:        -:  295:static void
       33:       49:  296:lower_wpos_ytransform_block(lower_wpos_ytransform_state *state, nir_block *block)
        -:        -:  297:{
      129:      161:  298:   nir_foreach_instr_safe(instr, block) {
       96:      112:  299:      if (instr->type == nir_instr_type_intrinsic) {
       18:       20:  300:         nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
       18:       20:  301:         if (intr->intrinsic == nir_intrinsic_load_var) {
       16:       18:  302:            nir_deref_var *dvar = intr->variables[0];
       16:       18:  303:            nir_variable *var = dvar->var;
        -:        -:  304:
       19:       23:  305:            if (var->data.mode == nir_var_shader_in &&
        3:        5:  306:                var->data.location == VARYING_SLOT_POS) {
        -:        -:  307:               /* gl_FragCoord should not have array/struct derefs: */
        2:        4:  308:               assert(dvar->deref.child == NULL);
        2:        4:  309:               lower_fragcoord(state, intr);
       14:       14:  310:            } else if (var->data.mode == nir_var_system_value &&
    #####:    #####:  311:                       var->data.location == SYSTEM_VALUE_SAMPLE_POS) {
    #####:    #####:  312:               assert(dvar->deref.child == NULL);
    #####:    #####:  313:               lower_load_sample_pos(state, intr);
        -:        -:  314:            }
        2:        2:  315:         } else if (intr->intrinsic == nir_intrinsic_interp_var_at_offset) {
    #####:    #####:  316:            lower_interp_var_at_offset(state, intr);
        -:        -:  317:         }
       78:       92:  318:      } else if (instr->type == nir_instr_type_alu) {
       53:       55:  319:         nir_alu_instr *alu = nir_instr_as_alu(instr);
      106:      110:  320:         if (alu->op == nir_op_fddy ||
      106:      110:  321:             alu->op == nir_op_fddy_fine ||
       53:       55:  322:             alu->op == nir_op_fddy_coarse)
    #####:    #####:  323:            lower_fddy(state, alu);
        -:        -:  324:      }
        -:        -:  325:   }
       33:       49:  326:}
        -:        -:  327:
        -:        -:  328:static void
        2:        2:  329:lower_wpos_ytransform_impl(lower_wpos_ytransform_state *state, nir_function_impl *impl)
        -:        -:  330:{
        2:        2:  331:   nir_builder_init(&state->b, impl);
        -:        -:  332:
       35:       51:  333:   nir_foreach_block(block, impl) {
       33:       49:  334:      lower_wpos_ytransform_block(state, block);
        -:        -:  335:   }
        2:        2:  336:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  337:                               nir_metadata_dominance);
        2:        2:  338:}
        -:        -:  339:
        -:        -:  340:bool
        2:        2:  341:nir_lower_wpos_ytransform(nir_shader *shader,
        -:        -:  342:                          const nir_lower_wpos_ytransform_options *options)
        -:        -:  343:{
        2:        2:  344:   lower_wpos_ytransform_state state = {
        -:        -:  345:      .options = options,
        -:        -:  346:      .shader = shader,
        -:        -:  347:   };
        -:        -:  348:
        2:        2:  349:   assert(shader->stage == MESA_SHADER_FRAGMENT);
        -:        -:  350:
        4:        4:  351:   nir_foreach_function(function, shader) {
        2:        2:  352:      if (function->impl)
        2:        2:  353:         lower_wpos_ytransform_impl(&state, function->impl);
        -:        -:  354:   }
        -:        -:  355:
        2:        2:  356:   return state.transform != NULL;
        -:        -:  357:}

src/compiler/nir_metadata.c.gcov

        -:        -:    0:Source:nir/nir_metadata.c
        -:        -:    0:Graph:nir/.libs/nir_metadata.gcno
        -:        -:    0:Data:nir/.libs/nir_metadata.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: */
        -:        -:   26:
        -:        -:   27:#include "nir.h"
        -:        -:   28:
        -:        -:   29:/*
        -:        -:   30: * Handles management of the metadata.
        -:        -:   31: */
        -:        -:   32:
        -:        -:   33:void
      139:      139:   34:nir_metadata_require(nir_function_impl *impl, nir_metadata required, ...)
        -:        -:   35:{
        -:        -:   36:#define NEEDS_UPDATE(X) ((required & ~impl->valid_metadata) & (X))
        -:        -:   37:
      139:      139:   38:   if (NEEDS_UPDATE(nir_metadata_block_index))
       14:       14:   39:      nir_index_blocks(impl);
      139:      139:   40:   if (NEEDS_UPDATE(nir_metadata_dominance))
       12:       12:   41:      nir_calc_dominance_impl(impl);
      139:      139:   42:   if (NEEDS_UPDATE(nir_metadata_live_ssa_defs))
        6:        6:   43:      nir_live_ssa_defs_impl(impl);
      139:      139:   44:   if (NEEDS_UPDATE(nir_metadata_loop_analysis)) {
        -:        -:   45:      va_list ap;
       21:       21:   46:      va_start(ap, required);
       21:       21:   47:      nir_loop_analyze_impl(impl, va_arg(ap, nir_variable_mode));
       21:       21:   48:      va_end(ap);
        -:        -:   49:   }
        -:        -:   50:
        -:        -:   51:#undef NEEDS_UPDATE
        -:        -:   52:
      139:      139:   53:   impl->valid_metadata |= required;
      139:      139:   54:}
        -:        -:   55:
        -:        -:   56:void
      206:      218:   57:nir_metadata_preserve(nir_function_impl *impl, nir_metadata preserved)
        -:        -:   58:{
      206:      218:   59:   impl->valid_metadata &= preserved;
      206:      218:   60:}
        -:        -:   61:
        -:        -:   62:#ifdef DEBUG
        -:        -:   63:/**
        -:        -:   64: * Make sure passes properly invalidate metadata (part 1).
        -:        -:   65: *
        -:        -:   66: * Call this before running a pass to set a bogus metadata flag, which will
        -:        -:   67: * only be preserved if the pass forgets to call nir_metadata_preserve().
        -:        -:   68: */
        -:        -:   69:void
      581:      581:   70:nir_metadata_set_validation_flag(nir_shader *shader)
        -:        -:   71:{
     1162:     1162:   72:   nir_foreach_function(function, shader) {
      581:      581:   73:      if (function->impl) {
      581:      581:   74:         function->impl->valid_metadata |= nir_metadata_not_properly_reset;
        -:        -:   75:      }
        -:        -:   76:   }
      581:      581:   77:}
        -:        -:   78:
        -:        -:   79:/**
        -:        -:   80: * Make sure passes properly invalidate metadata (part 2).
        -:        -:   81: *
        -:        -:   82: * Call this after a pass makes progress to verify that the bogus metadata set by
        -:        -:   83: * the earlier function was properly thrown away.  Note that passes may not call
        -:        -:   84: * nir_metadata_preserve() if they don't actually make any changes at all.
        -:        -:   85: */
        -:        -:   86:void
       63:       65:   87:nir_metadata_check_validation_flag(nir_shader *shader)
        -:        -:   88:{
      126:      130:   89:   nir_foreach_function(function, shader) {
       63:       65:   90:      if (function->impl) {
       63:       65:   91:         assert(!(function->impl->valid_metadata &
        -:        -:   92:                  nir_metadata_not_properly_reset));
        -:        -:   93:      }
        -:        -:   94:   }
       63:       65:   95:}
        -:        -:   96:#endif

src/compiler/nir_normalize_cubemap_coords.c.gcov

        -:        -:    0:Source:nir/nir_normalize_cubemap_coords.c
        -:        -:    0:Graph:nir/.libs/nir_normalize_cubemap_coords.gcno
        -:        -:    0:Data:nir/.libs/nir_normalize_cubemap_coords.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand <jason@jlekstrand.net>
        -:        -:   25: */
        -:        -:   26:
        -:        -:   27:#include "nir.h"
        -:        -:   28:#include "nir_builder.h"
        -:        -:   29:
        -:        -:   30:/**
        -:        -:   31: * This file implements a NIR lowering pass to perform the normalization of
        -:        -:   32: * the cubemap coordinates to have the largest magnitude component be -1.0
        -:        -:   33: * or 1.0.  This is based on the old GLSL IR based pass by Eric.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:static bool
       89:      105:   37:normalize_cubemap_coords_block(nir_block *block, nir_builder *b)
        -:        -:   38:{
       89:      105:   39:   bool progress = false;
        -:        -:   40:
      414:      448:   41:   nir_foreach_instr(instr, block) {
      325:      343:   42:      if (instr->type != nir_instr_type_tex)
      325:      343:   43:         continue;
        -:        -:   44:
    #####:    #####:   45:      nir_tex_instr *tex = nir_instr_as_tex(instr);
    #####:    #####:   46:      if (tex->sampler_dim != GLSL_SAMPLER_DIM_CUBE)
    #####:    #####:   47:         continue;
        -:        -:   48:
    #####:    #####:   49:      b->cursor = nir_before_instr(&tex->instr);
        -:        -:   50:
    #####:    #####:   51:      for (unsigned i = 0; i < tex->num_srcs; i++) {
    #####:    #####:   52:         if (tex->src[i].src_type != nir_tex_src_coord)
    #####:    #####:   53:            continue;
        -:        -:   54:
    #####:    #####:   55:         nir_ssa_def *orig_coord =
    #####:    #####:   56:            nir_ssa_for_src(b, tex->src[i].src, nir_tex_instr_src_size(tex, i));
    #####:    #####:   57:         assert(orig_coord->num_components >= 3);
        -:        -:   58:
    #####:    #####:   59:         nir_ssa_def *abs = nir_fabs(b, orig_coord);
    #####:    #####:   60:         nir_ssa_def *norm = nir_fmax(b, nir_channel(b, abs, 0),
        -:        -:   61:                                         nir_fmax(b, nir_channel(b, abs, 1),
        -:        -:   62:                                                     nir_channel(b, abs, 2)));
        -:        -:   63:
    #####:    #####:   64:         nir_ssa_def *normalized = nir_fmul(b, orig_coord, nir_frcp(b, norm));
        -:        -:   65:
        -:        -:   66:         /* Array indices don't have to be normalized, so make a new vector
        -:        -:   67:          * with the coordinate's array index untouched.
        -:        -:   68:          */
    #####:    #####:   69:         if (tex->coord_components == 4) {
    #####:    #####:   70:            normalized = nir_vec4(b,
        -:        -:   71:                                  nir_channel(b, normalized, 0),
        -:        -:   72:                                  nir_channel(b, normalized, 1),
        -:        -:   73:                                  nir_channel(b, normalized, 2),
        -:        -:   74:                                  nir_channel(b, orig_coord, 3));
        -:        -:   75:         }
        -:        -:   76:
    #####:    #####:   77:         nir_instr_rewrite_src(&tex->instr,
    #####:    #####:   78:                               &tex->src[i].src,
        -:        -:   79:                               nir_src_for_ssa(normalized));
        -:        -:   80:
    #####:    #####:   81:         progress = true;
        -:        -:   82:      }
        -:        -:   83:   }
        -:        -:   84:
       89:      105:   85:   return progress;
        -:        -:   86:}
        -:        -:   87:
        -:        -:   88:static bool
        5:        5:   89:normalize_cubemap_coords_impl(nir_function_impl *impl)
        -:        -:   90:{
        -:        -:   91:   nir_builder b;
        5:        5:   92:   nir_builder_init(&b, impl);
        5:        5:   93:   bool progress = false;
        -:        -:   94:
       94:      110:   95:   nir_foreach_block(block, impl) {
       89:      105:   96:      progress |= normalize_cubemap_coords_block(block, &b);
        -:        -:   97:   }
        -:        -:   98:
        5:        5:   99:   nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  100:                               nir_metadata_dominance);
        -:        -:  101:
        5:        5:  102:   return progress;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:bool
        5:        5:  106:nir_normalize_cubemap_coords(nir_shader *shader)
        -:        -:  107:{
        5:        5:  108:   bool progress = false;
        -:        -:  109:
       10:       10:  110:   nir_foreach_function(function, shader) {
        5:        5:  111:      if (function->impl)
        5:        5:  112:         progress = normalize_cubemap_coords_impl(function->impl) || progress;
        -:        -:  113:   }
        -:        -:  114:
        5:        5:  115:   return progress;
        -:        -:  116:}

src/compiler/nir_opt_algebraic.c.gcov

        -:        -:    0:Source:nir/nir_opt_algebraic.c
        -:        -:    0:Graph:nir/.libs/nir_opt_algebraic.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:
        -:        -:    2:#include "nir.h"
        -:        -:    3:#include "nir_search.h"
        -:        -:    4:#include "nir_search_helpers.h"
        -:        -:    5:
        -:        -:    6:#ifndef NIR_OPT_ALGEBRAIC_STRUCT_DEFS
        -:        -:    7:#define NIR_OPT_ALGEBRAIC_STRUCT_DEFS
        -:        -:    8:
        -:        -:    9:struct transform {
        -:        -:   10:   const nir_search_expression *search;
        -:        -:   11:   const nir_search_value *replace;
        -:        -:   12:   unsigned condition_offset;
        -:        -:   13:};
        -:        -:   14:
        -:        -:   15:#endif
        -:        -:   16:
        -:        -:   17:   
        -:        -:   18:static const nir_search_variable search123_0 = {
        -:        -:   19:   { nir_search_value_variable, 32 },
        -:        -:   20:   0, /* a */
        -:        -:   21:   false,
        -:        -:   22:   nir_type_bool32,
        -:        -:   23:   NULL,
        -:        -:   24:};
        -:        -:   25:
        -:        -:   26:static const nir_search_constant search123_1 = {
        -:        -:   27:   { nir_search_value_constant, 0 },
        -:        -:   28:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:   29:};
        -:        -:   30:static const nir_search_expression search123 = {
        -:        -:   31:   { nir_search_value_expression, 0 },
        -:        -:   32:   false,
        -:        -:   33:   nir_op_iand,
        -:        -:   34:   { &search123_0.value, &search123_1.value },
        -:        -:   35:   NULL,
        -:        -:   36:};
        -:        -:   37:   
        -:        -:   38:static const nir_search_variable replace123_0 = {
        -:        -:   39:   { nir_search_value_variable, 0 },
        -:        -:   40:   0, /* a */
        -:        -:   41:   false,
        -:        -:   42:   nir_type_invalid,
        -:        -:   43:   NULL,
        -:        -:   44:};
        -:        -:   45:static const nir_search_expression replace123 = {
        -:        -:   46:   { nir_search_value_expression, 0 },
        -:        -:   47:   false,
        -:        -:   48:   nir_op_b2f,
        -:        -:   49:   { &replace123_0.value },
        -:        -:   50:   NULL,
        -:        -:   51:};
        -:        -:   52:   
        -:        -:   53:static const nir_search_variable search134_0 = {
        -:        -:   54:   { nir_search_value_variable, 0 },
        -:        -:   55:   0, /* a */
        -:        -:   56:   false,
        -:        -:   57:   nir_type_invalid,
        -:        -:   58:   NULL,
        -:        -:   59:};
        -:        -:   60:
        -:        -:   61:static const nir_search_variable search134_1 = {
        -:        -:   62:   { nir_search_value_variable, 0 },
        -:        -:   63:   0, /* a */
        -:        -:   64:   false,
        -:        -:   65:   nir_type_invalid,
        -:        -:   66:   NULL,
        -:        -:   67:};
        -:        -:   68:static const nir_search_expression search134 = {
        -:        -:   69:   { nir_search_value_expression, 0 },
        -:        -:   70:   false,
        -:        -:   71:   nir_op_iand,
        -:        -:   72:   { &search134_0.value, &search134_1.value },
        -:        -:   73:   NULL,
        -:        -:   74:};
        -:        -:   75:   
        -:        -:   76:static const nir_search_variable replace134 = {
        -:        -:   77:   { nir_search_value_variable, 0 },
        -:        -:   78:   0, /* a */
        -:        -:   79:   false,
        -:        -:   80:   nir_type_invalid,
        -:        -:   81:   NULL,
        -:        -:   82:};
        -:        -:   83:   
        -:        -:   84:static const nir_search_variable search135_0 = {
        -:        -:   85:   { nir_search_value_variable, 0 },
        -:        -:   86:   0, /* a */
        -:        -:   87:   false,
        -:        -:   88:   nir_type_invalid,
        -:        -:   89:   NULL,
        -:        -:   90:};
        -:        -:   91:
        -:        -:   92:static const nir_search_constant search135_1 = {
        -:        -:   93:   { nir_search_value_constant, 0 },
        -:        -:   94:   nir_type_int, { -0x1 /* -1 */ },
        -:        -:   95:};
        -:        -:   96:static const nir_search_expression search135 = {
        -:        -:   97:   { nir_search_value_expression, 0 },
        -:        -:   98:   false,
        -:        -:   99:   nir_op_iand,
        -:        -:  100:   { &search135_0.value, &search135_1.value },
        -:        -:  101:   NULL,
        -:        -:  102:};
        -:        -:  103:   
        -:        -:  104:static const nir_search_variable replace135 = {
        -:        -:  105:   { nir_search_value_variable, 0 },
        -:        -:  106:   0, /* a */
        -:        -:  107:   false,
        -:        -:  108:   nir_type_invalid,
        -:        -:  109:   NULL,
        -:        -:  110:};
        -:        -:  111:   
        -:        -:  112:static const nir_search_variable search136_0 = {
        -:        -:  113:   { nir_search_value_variable, 0 },
        -:        -:  114:   0, /* a */
        -:        -:  115:   false,
        -:        -:  116:   nir_type_invalid,
        -:        -:  117:   NULL,
        -:        -:  118:};
        -:        -:  119:
        -:        -:  120:static const nir_search_constant search136_1 = {
        -:        -:  121:   { nir_search_value_constant, 0 },
        -:        -:  122:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:  123:};
        -:        -:  124:static const nir_search_expression search136 = {
        -:        -:  125:   { nir_search_value_expression, 0 },
        -:        -:  126:   false,
        -:        -:  127:   nir_op_iand,
        -:        -:  128:   { &search136_0.value, &search136_1.value },
        -:        -:  129:   NULL,
        -:        -:  130:};
        -:        -:  131:   
        -:        -:  132:static const nir_search_constant replace136 = {
        -:        -:  133:   { nir_search_value_constant, 0 },
        -:        -:  134:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:  135:};
        -:        -:  136:   
        -:        -:  137:static const nir_search_variable search144_0_0 = {
        -:        -:  138:   { nir_search_value_variable, 0 },
        -:        -:  139:   0, /* a */
        -:        -:  140:   false,
        -:        -:  141:   nir_type_invalid,
        -:        -:  142:   NULL,
        -:        -:  143:};
        -:        -:  144:static const nir_search_expression search144_0 = {
        -:        -:  145:   { nir_search_value_expression, 0 },
        -:        -:  146:   false,
        -:        -:  147:   nir_op_inot,
        -:        -:  148:   { &search144_0_0.value },
        -:        -:  149:   NULL,
        -:        -:  150:};
        -:        -:  151:
        -:        -:  152:static const nir_search_variable search144_1_0 = {
        -:        -:  153:   { nir_search_value_variable, 0 },
        -:        -:  154:   1, /* b */
        -:        -:  155:   false,
        -:        -:  156:   nir_type_invalid,
        -:        -:  157:   NULL,
        -:        -:  158:};
        -:        -:  159:static const nir_search_expression search144_1 = {
        -:        -:  160:   { nir_search_value_expression, 0 },
        -:        -:  161:   false,
        -:        -:  162:   nir_op_inot,
        -:        -:  163:   { &search144_1_0.value },
        -:        -:  164:   NULL,
        -:        -:  165:};
        -:        -:  166:static const nir_search_expression search144 = {
        -:        -:  167:   { nir_search_value_expression, 0 },
        -:        -:  168:   false,
        -:        -:  169:   nir_op_iand,
        -:        -:  170:   { &search144_0.value, &search144_1.value },
        -:        -:  171:   NULL,
        -:        -:  172:};
        -:        -:  173:   
        -:        -:  174:static const nir_search_variable replace144_0_0 = {
        -:        -:  175:   { nir_search_value_variable, 0 },
        -:        -:  176:   0, /* a */
        -:        -:  177:   false,
        -:        -:  178:   nir_type_invalid,
        -:        -:  179:   NULL,
        -:        -:  180:};
        -:        -:  181:
        -:        -:  182:static const nir_search_variable replace144_0_1 = {
        -:        -:  183:   { nir_search_value_variable, 0 },
        -:        -:  184:   1, /* b */
        -:        -:  185:   false,
        -:        -:  186:   nir_type_invalid,
        -:        -:  187:   NULL,
        -:        -:  188:};
        -:        -:  189:static const nir_search_expression replace144_0 = {
        -:        -:  190:   { nir_search_value_expression, 0 },
        -:        -:  191:   false,
        -:        -:  192:   nir_op_ior,
        -:        -:  193:   { &replace144_0_0.value, &replace144_0_1.value },
        -:        -:  194:   NULL,
        -:        -:  195:};
        -:        -:  196:static const nir_search_expression replace144 = {
        -:        -:  197:   { nir_search_value_expression, 0 },
        -:        -:  198:   false,
        -:        -:  199:   nir_op_inot,
        -:        -:  200:   { &replace144_0.value },
        -:        -:  201:   NULL,
        -:        -:  202:};
        -:        -:  203:   
        -:        -:  204:static const nir_search_constant search152_0 = {
        -:        -:  205:   { nir_search_value_constant, 0 },
        -:        -:  206:   nir_type_int, { 0xff /* 255 */ },
        -:        -:  207:};
        -:        -:  208:
        -:        -:  209:static const nir_search_variable search152_1_0 = {
        -:        -:  210:   { nir_search_value_variable, 0 },
        -:        -:  211:   0, /* a */
        -:        -:  212:   false,
        -:        -:  213:   nir_type_invalid,
        -:        -:  214:   NULL,
        -:        -:  215:};
        -:        -:  216:
        -:        -:  217:static const nir_search_constant search152_1_1 = {
        -:        -:  218:   { nir_search_value_constant, 0 },
        -:        -:  219:   nir_type_int, { 0x18 /* 24 */ },
        -:        -:  220:};
        -:        -:  221:static const nir_search_expression search152_1 = {
        -:        -:  222:   { nir_search_value_expression, 0 },
        -:        -:  223:   false,
        -:        -:  224:   nir_op_ushr,
        -:        -:  225:   { &search152_1_0.value, &search152_1_1.value },
        -:        -:  226:   NULL,
        -:        -:  227:};
        -:        -:  228:static const nir_search_expression search152 = {
        -:        -:  229:   { nir_search_value_expression, 0 },
        -:        -:  230:   false,
        -:        -:  231:   nir_op_iand,
        -:        -:  232:   { &search152_0.value, &search152_1.value },
        -:        -:  233:   NULL,
        -:        -:  234:};
        -:        -:  235:   
        -:        -:  236:static const nir_search_variable replace152_0 = {
        -:        -:  237:   { nir_search_value_variable, 0 },
        -:        -:  238:   0, /* a */
        -:        -:  239:   false,
        -:        -:  240:   nir_type_invalid,
        -:        -:  241:   NULL,
        -:        -:  242:};
        -:        -:  243:
        -:        -:  244:static const nir_search_constant replace152_1 = {
        -:        -:  245:   { nir_search_value_constant, 0 },
        -:        -:  246:   nir_type_int, { 0x18 /* 24 */ },
        -:        -:  247:};
        -:        -:  248:static const nir_search_expression replace152 = {
        -:        -:  249:   { nir_search_value_expression, 0 },
        -:        -:  250:   false,
        -:        -:  251:   nir_op_ushr,
        -:        -:  252:   { &replace152_0.value, &replace152_1.value },
        -:        -:  253:   NULL,
        -:        -:  254:};
        -:        -:  255:   
        -:        -:  256:static const nir_search_constant search153_0 = {
        -:        -:  257:   { nir_search_value_constant, 0 },
        -:        -:  258:   nir_type_int, { 0xffff /* 65535 */ },
        -:        -:  259:};
        -:        -:  260:
        -:        -:  261:static const nir_search_variable search153_1_0 = {
        -:        -:  262:   { nir_search_value_variable, 0 },
        -:        -:  263:   0, /* a */
        -:        -:  264:   false,
        -:        -:  265:   nir_type_invalid,
        -:        -:  266:   NULL,
        -:        -:  267:};
        -:        -:  268:
        -:        -:  269:static const nir_search_constant search153_1_1 = {
        -:        -:  270:   { nir_search_value_constant, 0 },
        -:        -:  271:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:  272:};
        -:        -:  273:static const nir_search_expression search153_1 = {
        -:        -:  274:   { nir_search_value_expression, 0 },
        -:        -:  275:   false,
        -:        -:  276:   nir_op_ushr,
        -:        -:  277:   { &search153_1_0.value, &search153_1_1.value },
        -:        -:  278:   NULL,
        -:        -:  279:};
        -:        -:  280:static const nir_search_expression search153 = {
        -:        -:  281:   { nir_search_value_expression, 0 },
        -:        -:  282:   false,
        -:        -:  283:   nir_op_iand,
        -:        -:  284:   { &search153_0.value, &search153_1.value },
        -:        -:  285:   NULL,
        -:        -:  286:};
        -:        -:  287:   
        -:        -:  288:static const nir_search_variable replace153_0 = {
        -:        -:  289:   { nir_search_value_variable, 0 },
        -:        -:  290:   0, /* a */
        -:        -:  291:   false,
        -:        -:  292:   nir_type_invalid,
        -:        -:  293:   NULL,
        -:        -:  294:};
        -:        -:  295:
        -:        -:  296:static const nir_search_constant replace153_1 = {
        -:        -:  297:   { nir_search_value_constant, 0 },
        -:        -:  298:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:  299:};
        -:        -:  300:static const nir_search_expression replace153 = {
        -:        -:  301:   { nir_search_value_expression, 0 },
        -:        -:  302:   false,
        -:        -:  303:   nir_op_ushr,
        -:        -:  304:   { &replace153_0.value, &replace153_1.value },
        -:        -:  305:   NULL,
        -:        -:  306:};
        -:        -:  307:   
        -:        -:  308:static const nir_search_constant search205_0 = {
        -:        -:  309:   { nir_search_value_constant, 0 },
        -:        -:  310:   nir_type_int, { 0xff /* 255 */ },
        -:        -:  311:};
        -:        -:  312:
        -:        -:  313:static const nir_search_variable search205_1_0 = {
        -:        -:  314:   { nir_search_value_variable, 0 },
        -:        -:  315:   0, /* a */
        -:        -:  316:   false,
        -:        -:  317:   nir_type_invalid,
        -:        -:  318:   NULL,
        -:        -:  319:};
        -:        -:  320:
        -:        -:  321:static const nir_search_constant search205_1_1 = {
        -:        -:  322:   { nir_search_value_constant, 0 },
        -:        -:  323:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:  324:};
        -:        -:  325:static const nir_search_expression search205_1 = {
        -:        -:  326:   { nir_search_value_expression, 0 },
        -:        -:  327:   false,
        -:        -:  328:   nir_op_ushr,
        -:        -:  329:   { &search205_1_0.value, &search205_1_1.value },
        -:        -:  330:   NULL,
        -:        -:  331:};
        -:        -:  332:static const nir_search_expression search205 = {
        -:        -:  333:   { nir_search_value_expression, 0 },
        -:        -:  334:   false,
        -:        -:  335:   nir_op_iand,
        -:        -:  336:   { &search205_0.value, &search205_1.value },
        -:        -:  337:   NULL,
        -:        -:  338:};
        -:        -:  339:   
        -:        -:  340:static const nir_search_variable replace205_0 = {
        -:        -:  341:   { nir_search_value_variable, 0 },
        -:        -:  342:   0, /* a */
        -:        -:  343:   false,
        -:        -:  344:   nir_type_invalid,
        -:        -:  345:   NULL,
        -:        -:  346:};
        -:        -:  347:
        -:        -:  348:static const nir_search_constant replace205_1 = {
        -:        -:  349:   { nir_search_value_constant, 0 },
        -:        -:  350:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:  351:};
        -:        -:  352:static const nir_search_expression replace205 = {
        -:        -:  353:   { nir_search_value_expression, 0 },
        -:        -:  354:   false,
        -:        -:  355:   nir_op_extract_u8,
        -:        -:  356:   { &replace205_0.value, &replace205_1.value },
        -:        -:  357:   NULL,
        -:        -:  358:};
        -:        -:  359:   
        -:        -:  360:static const nir_search_constant search206_0 = {
        -:        -:  361:   { nir_search_value_constant, 0 },
        -:        -:  362:   nir_type_int, { 0xff /* 255 */ },
        -:        -:  363:};
        -:        -:  364:
        -:        -:  365:static const nir_search_variable search206_1_0 = {
        -:        -:  366:   { nir_search_value_variable, 0 },
        -:        -:  367:   0, /* a */
        -:        -:  368:   false,
        -:        -:  369:   nir_type_invalid,
        -:        -:  370:   NULL,
        -:        -:  371:};
        -:        -:  372:
        -:        -:  373:static const nir_search_constant search206_1_1 = {
        -:        -:  374:   { nir_search_value_constant, 0 },
        -:        -:  375:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:  376:};
        -:        -:  377:static const nir_search_expression search206_1 = {
        -:        -:  378:   { nir_search_value_expression, 0 },
        -:        -:  379:   false,
        -:        -:  380:   nir_op_ushr,
        -:        -:  381:   { &search206_1_0.value, &search206_1_1.value },
        -:        -:  382:   NULL,
        -:        -:  383:};
        -:        -:  384:static const nir_search_expression search206 = {
        -:        -:  385:   { nir_search_value_expression, 0 },
        -:        -:  386:   false,
        -:        -:  387:   nir_op_iand,
        -:        -:  388:   { &search206_0.value, &search206_1.value },
        -:        -:  389:   NULL,
        -:        -:  390:};
        -:        -:  391:   
        -:        -:  392:static const nir_search_variable replace206_0 = {
        -:        -:  393:   { nir_search_value_variable, 0 },
        -:        -:  394:   0, /* a */
        -:        -:  395:   false,
        -:        -:  396:   nir_type_invalid,
        -:        -:  397:   NULL,
        -:        -:  398:};
        -:        -:  399:
        -:        -:  400:static const nir_search_constant replace206_1 = {
        -:        -:  401:   { nir_search_value_constant, 0 },
        -:        -:  402:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:  403:};
        -:        -:  404:static const nir_search_expression replace206 = {
        -:        -:  405:   { nir_search_value_expression, 0 },
        -:        -:  406:   false,
        -:        -:  407:   nir_op_extract_u8,
        -:        -:  408:   { &replace206_0.value, &replace206_1.value },
        -:        -:  409:   NULL,
        -:        -:  410:};
        -:        -:  411:   
        -:        -:  412:static const nir_search_constant search207_0 = {
        -:        -:  413:   { nir_search_value_constant, 0 },
        -:        -:  414:   nir_type_int, { 0xff /* 255 */ },
        -:        -:  415:};
        -:        -:  416:
        -:        -:  417:static const nir_search_variable search207_1 = {
        -:        -:  418:   { nir_search_value_variable, 0 },
        -:        -:  419:   0, /* a */
        -:        -:  420:   false,
        -:        -:  421:   nir_type_invalid,
        -:        -:  422:   NULL,
        -:        -:  423:};
        -:        -:  424:static const nir_search_expression search207 = {
        -:        -:  425:   { nir_search_value_expression, 0 },
        -:        -:  426:   false,
        -:        -:  427:   nir_op_iand,
        -:        -:  428:   { &search207_0.value, &search207_1.value },
        -:        -:  429:   NULL,
        -:        -:  430:};
        -:        -:  431:   
        -:        -:  432:static const nir_search_variable replace207_0 = {
        -:        -:  433:   { nir_search_value_variable, 0 },
        -:        -:  434:   0, /* a */
        -:        -:  435:   false,
        -:        -:  436:   nir_type_invalid,
        -:        -:  437:   NULL,
        -:        -:  438:};
        -:        -:  439:
        -:        -:  440:static const nir_search_constant replace207_1 = {
        -:        -:  441:   { nir_search_value_constant, 0 },
        -:        -:  442:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:  443:};
        -:        -:  444:static const nir_search_expression replace207 = {
        -:        -:  445:   { nir_search_value_expression, 0 },
        -:        -:  446:   false,
        -:        -:  447:   nir_op_extract_u8,
        -:        -:  448:   { &replace207_0.value, &replace207_1.value },
        -:        -:  449:   NULL,
        -:        -:  450:};
        -:        -:  451:   
        -:        -:  452:static const nir_search_constant search209_0 = {
        -:        -:  453:   { nir_search_value_constant, 0 },
        -:        -:  454:   nir_type_int, { 0xffff /* 65535 */ },
        -:        -:  455:};
        -:        -:  456:
        -:        -:  457:static const nir_search_variable search209_1 = {
        -:        -:  458:   { nir_search_value_variable, 0 },
        -:        -:  459:   0, /* a */
        -:        -:  460:   false,
        -:        -:  461:   nir_type_invalid,
        -:        -:  462:   NULL,
        -:        -:  463:};
        -:        -:  464:static const nir_search_expression search209 = {
        -:        -:  465:   { nir_search_value_expression, 0 },
        -:        -:  466:   false,
        -:        -:  467:   nir_op_iand,
        -:        -:  468:   { &search209_0.value, &search209_1.value },
        -:        -:  469:   NULL,
        -:        -:  470:};
        -:        -:  471:   
        -:        -:  472:static const nir_search_variable replace209_0 = {
        -:        -:  473:   { nir_search_value_variable, 0 },
        -:        -:  474:   0, /* a */
        -:        -:  475:   false,
        -:        -:  476:   nir_type_invalid,
        -:        -:  477:   NULL,
        -:        -:  478:};
        -:        -:  479:
        -:        -:  480:static const nir_search_constant replace209_1 = {
        -:        -:  481:   { nir_search_value_constant, 0 },
        -:        -:  482:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:  483:};
        -:        -:  484:static const nir_search_expression replace209 = {
        -:        -:  485:   { nir_search_value_expression, 0 },
        -:        -:  486:   false,
        -:        -:  487:   nir_op_extract_u16,
        -:        -:  488:   { &replace209_0.value, &replace209_1.value },
        -:        -:  489:   NULL,
        -:        -:  490:};
        -:        -:  491:   
        -:        -:  492:static const nir_search_variable search251_0_0 = {
        -:        -:  493:   { nir_search_value_variable, 0 },
        -:        -:  494:   0, /* a */
        -:        -:  495:   false,
        -:        -:  496:   nir_type_invalid,
        -:        -:  497:   NULL,
        -:        -:  498:};
        -:        -:  499:
        -:        -:  500:static const nir_search_variable search251_0_1 = {
        -:        -:  501:   { nir_search_value_variable, 0 },
        -:        -:  502:   0, /* a */
        -:        -:  503:   false,
        -:        -:  504:   nir_type_invalid,
        -:        -:  505:   NULL,
        -:        -:  506:};
        -:        -:  507:static const nir_search_expression search251_0 = {
        -:        -:  508:   { nir_search_value_expression, 0 },
        -:        -:  509:   false,
        -:        -:  510:   nir_op_feq,
        -:        -:  511:   { &search251_0_0.value, &search251_0_1.value },
        -:        -:  512:   NULL,
        -:        -:  513:};
        -:        -:  514:
        -:        -:  515:static const nir_search_variable search251_1_0 = {
        -:        -:  516:   { nir_search_value_variable, 0 },
        -:        -:  517:   0, /* a */
        -:        -:  518:   false,
        -:        -:  519:   nir_type_invalid,
        -:        -:  520:   NULL,
        -:        -:  521:};
        -:        -:  522:
        -:        -:  523:static const nir_search_variable search251_1_1 = {
        -:        -:  524:   { nir_search_value_variable, 0 },
        -:        -:  525:   1, /* b */
        -:        -:  526:   false,
        -:        -:  527:   nir_type_invalid,
        -:        -:  528:   NULL,
        -:        -:  529:};
        -:        -:  530:static const nir_search_expression search251_1 = {
        -:        -:  531:   { nir_search_value_expression, 0 },
        -:        -:  532:   false,
        -:        -:  533:   nir_op_flt,
        -:        -:  534:   { &search251_1_0.value, &search251_1_1.value },
        -:        -:  535:   NULL,
        -:        -:  536:};
        -:        -:  537:static const nir_search_expression search251 = {
        -:        -:  538:   { nir_search_value_expression, 0 },
        -:        -:  539:   false,
        -:        -:  540:   nir_op_iand,
        -:        -:  541:   { &search251_0.value, &search251_1.value },
        -:        -:  542:   NULL,
        -:        -:  543:};
        -:        -:  544:   
        -:        -:  545:static const nir_search_variable replace251_0 = {
        -:        -:  546:   { nir_search_value_variable, 0 },
        -:        -:  547:   0, /* a */
        -:        -:  548:   false,
        -:        -:  549:   nir_type_invalid,
        -:        -:  550:   NULL,
        -:        -:  551:};
        -:        -:  552:
        -:        -:  553:static const nir_search_variable replace251_1 = {
        -:        -:  554:   { nir_search_value_variable, 0 },
        -:        -:  555:   1, /* b */
        -:        -:  556:   false,
        -:        -:  557:   nir_type_invalid,
        -:        -:  558:   NULL,
        -:        -:  559:};
        -:        -:  560:static const nir_search_expression replace251 = {
        -:        -:  561:   { nir_search_value_expression, 0 },
        -:        -:  562:   false,
        -:        -:  563:   nir_op_flt,
        -:        -:  564:   { &replace251_0.value, &replace251_1.value },
        -:        -:  565:   NULL,
        -:        -:  566:};
        -:        -:  567:   
        -:        -:  568:static const nir_search_variable search252_0_0 = {
        -:        -:  569:   { nir_search_value_variable, 0 },
        -:        -:  570:   0, /* a */
        -:        -:  571:   false,
        -:        -:  572:   nir_type_invalid,
        -:        -:  573:   NULL,
        -:        -:  574:};
        -:        -:  575:
        -:        -:  576:static const nir_search_variable search252_0_1 = {
        -:        -:  577:   { nir_search_value_variable, 0 },
        -:        -:  578:   0, /* a */
        -:        -:  579:   false,
        -:        -:  580:   nir_type_invalid,
        -:        -:  581:   NULL,
        -:        -:  582:};
        -:        -:  583:static const nir_search_expression search252_0 = {
        -:        -:  584:   { nir_search_value_expression, 0 },
        -:        -:  585:   false,
        -:        -:  586:   nir_op_feq,
        -:        -:  587:   { &search252_0_0.value, &search252_0_1.value },
        -:        -:  588:   NULL,
        -:        -:  589:};
        -:        -:  590:
        -:        -:  591:static const nir_search_variable search252_1_0 = {
        -:        -:  592:   { nir_search_value_variable, 0 },
        -:        -:  593:   1, /* b */
        -:        -:  594:   false,
        -:        -:  595:   nir_type_invalid,
        -:        -:  596:   NULL,
        -:        -:  597:};
        -:        -:  598:
        -:        -:  599:static const nir_search_variable search252_1_1 = {
        -:        -:  600:   { nir_search_value_variable, 0 },
        -:        -:  601:   0, /* a */
        -:        -:  602:   false,
        -:        -:  603:   nir_type_invalid,
        -:        -:  604:   NULL,
        -:        -:  605:};
        -:        -:  606:static const nir_search_expression search252_1 = {
        -:        -:  607:   { nir_search_value_expression, 0 },
        -:        -:  608:   false,
        -:        -:  609:   nir_op_flt,
        -:        -:  610:   { &search252_1_0.value, &search252_1_1.value },
        -:        -:  611:   NULL,
        -:        -:  612:};
        -:        -:  613:static const nir_search_expression search252 = {
        -:        -:  614:   { nir_search_value_expression, 0 },
        -:        -:  615:   false,
        -:        -:  616:   nir_op_iand,
        -:        -:  617:   { &search252_0.value, &search252_1.value },
        -:        -:  618:   NULL,
        -:        -:  619:};
        -:        -:  620:   
        -:        -:  621:static const nir_search_variable replace252_0 = {
        -:        -:  622:   { nir_search_value_variable, 0 },
        -:        -:  623:   1, /* b */
        -:        -:  624:   false,
        -:        -:  625:   nir_type_invalid,
        -:        -:  626:   NULL,
        -:        -:  627:};
        -:        -:  628:
        -:        -:  629:static const nir_search_variable replace252_1 = {
        -:        -:  630:   { nir_search_value_variable, 0 },
        -:        -:  631:   0, /* a */
        -:        -:  632:   false,
        -:        -:  633:   nir_type_invalid,
        -:        -:  634:   NULL,
        -:        -:  635:};
        -:        -:  636:static const nir_search_expression replace252 = {
        -:        -:  637:   { nir_search_value_expression, 0 },
        -:        -:  638:   false,
        -:        -:  639:   nir_op_flt,
        -:        -:  640:   { &replace252_0.value, &replace252_1.value },
        -:        -:  641:   NULL,
        -:        -:  642:};
        -:        -:  643:   
        -:        -:  644:static const nir_search_variable search253_0_0 = {
        -:        -:  645:   { nir_search_value_variable, 0 },
        -:        -:  646:   0, /* a */
        -:        -:  647:   false,
        -:        -:  648:   nir_type_invalid,
        -:        -:  649:   NULL,
        -:        -:  650:};
        -:        -:  651:
        -:        -:  652:static const nir_search_variable search253_0_1 = {
        -:        -:  653:   { nir_search_value_variable, 0 },
        -:        -:  654:   0, /* a */
        -:        -:  655:   false,
        -:        -:  656:   nir_type_invalid,
        -:        -:  657:   NULL,
        -:        -:  658:};
        -:        -:  659:static const nir_search_expression search253_0 = {
        -:        -:  660:   { nir_search_value_expression, 0 },
        -:        -:  661:   false,
        -:        -:  662:   nir_op_feq,
        -:        -:  663:   { &search253_0_0.value, &search253_0_1.value },
        -:        -:  664:   NULL,
        -:        -:  665:};
        -:        -:  666:
        -:        -:  667:static const nir_search_variable search253_1_0 = {
        -:        -:  668:   { nir_search_value_variable, 0 },
        -:        -:  669:   0, /* a */
        -:        -:  670:   false,
        -:        -:  671:   nir_type_invalid,
        -:        -:  672:   NULL,
        -:        -:  673:};
        -:        -:  674:
        -:        -:  675:static const nir_search_variable search253_1_1 = {
        -:        -:  676:   { nir_search_value_variable, 0 },
        -:        -:  677:   1, /* b */
        -:        -:  678:   false,
        -:        -:  679:   nir_type_invalid,
        -:        -:  680:   NULL,
        -:        -:  681:};
        -:        -:  682:static const nir_search_expression search253_1 = {
        -:        -:  683:   { nir_search_value_expression, 0 },
        -:        -:  684:   false,
        -:        -:  685:   nir_op_fge,
        -:        -:  686:   { &search253_1_0.value, &search253_1_1.value },
        -:        -:  687:   NULL,
        -:        -:  688:};
        -:        -:  689:static const nir_search_expression search253 = {
        -:        -:  690:   { nir_search_value_expression, 0 },
        -:        -:  691:   false,
        -:        -:  692:   nir_op_iand,
        -:        -:  693:   { &search253_0.value, &search253_1.value },
        -:        -:  694:   NULL,
        -:        -:  695:};
        -:        -:  696:   
        -:        -:  697:static const nir_search_variable replace253_0 = {
        -:        -:  698:   { nir_search_value_variable, 0 },
        -:        -:  699:   0, /* a */
        -:        -:  700:   false,
        -:        -:  701:   nir_type_invalid,
        -:        -:  702:   NULL,
        -:        -:  703:};
        -:        -:  704:
        -:        -:  705:static const nir_search_variable replace253_1 = {
        -:        -:  706:   { nir_search_value_variable, 0 },
        -:        -:  707:   1, /* b */
        -:        -:  708:   false,
        -:        -:  709:   nir_type_invalid,
        -:        -:  710:   NULL,
        -:        -:  711:};
        -:        -:  712:static const nir_search_expression replace253 = {
        -:        -:  713:   { nir_search_value_expression, 0 },
        -:        -:  714:   false,
        -:        -:  715:   nir_op_fge,
        -:        -:  716:   { &replace253_0.value, &replace253_1.value },
        -:        -:  717:   NULL,
        -:        -:  718:};
        -:        -:  719:   
        -:        -:  720:static const nir_search_variable search254_0_0 = {
        -:        -:  721:   { nir_search_value_variable, 0 },
        -:        -:  722:   0, /* a */
        -:        -:  723:   false,
        -:        -:  724:   nir_type_invalid,
        -:        -:  725:   NULL,
        -:        -:  726:};
        -:        -:  727:
        -:        -:  728:static const nir_search_variable search254_0_1 = {
        -:        -:  729:   { nir_search_value_variable, 0 },
        -:        -:  730:   0, /* a */
        -:        -:  731:   false,
        -:        -:  732:   nir_type_invalid,
        -:        -:  733:   NULL,
        -:        -:  734:};
        -:        -:  735:static const nir_search_expression search254_0 = {
        -:        -:  736:   { nir_search_value_expression, 0 },
        -:        -:  737:   false,
        -:        -:  738:   nir_op_feq,
        -:        -:  739:   { &search254_0_0.value, &search254_0_1.value },
        -:        -:  740:   NULL,
        -:        -:  741:};
        -:        -:  742:
        -:        -:  743:static const nir_search_variable search254_1_0 = {
        -:        -:  744:   { nir_search_value_variable, 0 },
        -:        -:  745:   1, /* b */
        -:        -:  746:   false,
        -:        -:  747:   nir_type_invalid,
        -:        -:  748:   NULL,
        -:        -:  749:};
        -:        -:  750:
        -:        -:  751:static const nir_search_variable search254_1_1 = {
        -:        -:  752:   { nir_search_value_variable, 0 },
        -:        -:  753:   0, /* a */
        -:        -:  754:   false,
        -:        -:  755:   nir_type_invalid,
        -:        -:  756:   NULL,
        -:        -:  757:};
        -:        -:  758:static const nir_search_expression search254_1 = {
        -:        -:  759:   { nir_search_value_expression, 0 },
        -:        -:  760:   false,
        -:        -:  761:   nir_op_fge,
        -:        -:  762:   { &search254_1_0.value, &search254_1_1.value },
        -:        -:  763:   NULL,
        -:        -:  764:};
        -:        -:  765:static const nir_search_expression search254 = {
        -:        -:  766:   { nir_search_value_expression, 0 },
        -:        -:  767:   false,
        -:        -:  768:   nir_op_iand,
        -:        -:  769:   { &search254_0.value, &search254_1.value },
        -:        -:  770:   NULL,
        -:        -:  771:};
        -:        -:  772:   
        -:        -:  773:static const nir_search_variable replace254_0 = {
        -:        -:  774:   { nir_search_value_variable, 0 },
        -:        -:  775:   1, /* b */
        -:        -:  776:   false,
        -:        -:  777:   nir_type_invalid,
        -:        -:  778:   NULL,
        -:        -:  779:};
        -:        -:  780:
        -:        -:  781:static const nir_search_variable replace254_1 = {
        -:        -:  782:   { nir_search_value_variable, 0 },
        -:        -:  783:   0, /* a */
        -:        -:  784:   false,
        -:        -:  785:   nir_type_invalid,
        -:        -:  786:   NULL,
        -:        -:  787:};
        -:        -:  788:static const nir_search_expression replace254 = {
        -:        -:  789:   { nir_search_value_expression, 0 },
        -:        -:  790:   false,
        -:        -:  791:   nir_op_fge,
        -:        -:  792:   { &replace254_0.value, &replace254_1.value },
        -:        -:  793:   NULL,
        -:        -:  794:};
        -:        -:  795:   
        -:        -:  796:static const nir_search_variable search255_0_0 = {
        -:        -:  797:   { nir_search_value_variable, 0 },
        -:        -:  798:   0, /* a */
        -:        -:  799:   false,
        -:        -:  800:   nir_type_invalid,
        -:        -:  801:   NULL,
        -:        -:  802:};
        -:        -:  803:
        -:        -:  804:static const nir_search_variable search255_0_1 = {
        -:        -:  805:   { nir_search_value_variable, 0 },
        -:        -:  806:   0, /* a */
        -:        -:  807:   false,
        -:        -:  808:   nir_type_invalid,
        -:        -:  809:   NULL,
        -:        -:  810:};
        -:        -:  811:static const nir_search_expression search255_0 = {
        -:        -:  812:   { nir_search_value_expression, 0 },
        -:        -:  813:   false,
        -:        -:  814:   nir_op_feq,
        -:        -:  815:   { &search255_0_0.value, &search255_0_1.value },
        -:        -:  816:   NULL,
        -:        -:  817:};
        -:        -:  818:
        -:        -:  819:static const nir_search_variable search255_1_0 = {
        -:        -:  820:   { nir_search_value_variable, 0 },
        -:        -:  821:   0, /* a */
        -:        -:  822:   false,
        -:        -:  823:   nir_type_invalid,
        -:        -:  824:   NULL,
        -:        -:  825:};
        -:        -:  826:
        -:        -:  827:static const nir_search_variable search255_1_1 = {
        -:        -:  828:   { nir_search_value_variable, 0 },
        -:        -:  829:   1, /* b */
        -:        -:  830:   false,
        -:        -:  831:   nir_type_invalid,
        -:        -:  832:   NULL,
        -:        -:  833:};
        -:        -:  834:static const nir_search_expression search255_1 = {
        -:        -:  835:   { nir_search_value_expression, 0 },
        -:        -:  836:   false,
        -:        -:  837:   nir_op_feq,
        -:        -:  838:   { &search255_1_0.value, &search255_1_1.value },
        -:        -:  839:   NULL,
        -:        -:  840:};
        -:        -:  841:static const nir_search_expression search255 = {
        -:        -:  842:   { nir_search_value_expression, 0 },
        -:        -:  843:   false,
        -:        -:  844:   nir_op_iand,
        -:        -:  845:   { &search255_0.value, &search255_1.value },
        -:        -:  846:   NULL,
        -:        -:  847:};
        -:        -:  848:   
        -:        -:  849:static const nir_search_variable replace255_0 = {
        -:        -:  850:   { nir_search_value_variable, 0 },
        -:        -:  851:   0, /* a */
        -:        -:  852:   false,
        -:        -:  853:   nir_type_invalid,
        -:        -:  854:   NULL,
        -:        -:  855:};
        -:        -:  856:
        -:        -:  857:static const nir_search_variable replace255_1 = {
        -:        -:  858:   { nir_search_value_variable, 0 },
        -:        -:  859:   1, /* b */
        -:        -:  860:   false,
        -:        -:  861:   nir_type_invalid,
        -:        -:  862:   NULL,
        -:        -:  863:};
        -:        -:  864:static const nir_search_expression replace255 = {
        -:        -:  865:   { nir_search_value_expression, 0 },
        -:        -:  866:   false,
        -:        -:  867:   nir_op_feq,
        -:        -:  868:   { &replace255_0.value, &replace255_1.value },
        -:        -:  869:   NULL,
        -:        -:  870:};
        -:        -:  871:   
        -:        -:  872:static const nir_search_variable search256_0_0 = {
        -:        -:  873:   { nir_search_value_variable, 0 },
        -:        -:  874:   0, /* a */
        -:        -:  875:   false,
        -:        -:  876:   nir_type_invalid,
        -:        -:  877:   NULL,
        -:        -:  878:};
        -:        -:  879:
        -:        -:  880:static const nir_search_variable search256_0_1 = {
        -:        -:  881:   { nir_search_value_variable, 0 },
        -:        -:  882:   0, /* a */
        -:        -:  883:   false,
        -:        -:  884:   nir_type_invalid,
        -:        -:  885:   NULL,
        -:        -:  886:};
        -:        -:  887:static const nir_search_expression search256_0 = {
        -:        -:  888:   { nir_search_value_expression, 0 },
        -:        -:  889:   false,
        -:        -:  890:   nir_op_feq,
        -:        -:  891:   { &search256_0_0.value, &search256_0_1.value },
        -:        -:  892:   NULL,
        -:        -:  893:};
        -:        -:  894:
        -:        -:  895:static const nir_search_variable search256_1_0 = {
        -:        -:  896:   { nir_search_value_variable, 0 },
        -:        -:  897:   1, /* b */
        -:        -:  898:   false,
        -:        -:  899:   nir_type_invalid,
        -:        -:  900:   NULL,
        -:        -:  901:};
        -:        -:  902:
        -:        -:  903:static const nir_search_variable search256_1_1 = {
        -:        -:  904:   { nir_search_value_variable, 0 },
        -:        -:  905:   0, /* a */
        -:        -:  906:   false,
        -:        -:  907:   nir_type_invalid,
        -:        -:  908:   NULL,
        -:        -:  909:};
        -:        -:  910:static const nir_search_expression search256_1 = {
        -:        -:  911:   { nir_search_value_expression, 0 },
        -:        -:  912:   false,
        -:        -:  913:   nir_op_feq,
        -:        -:  914:   { &search256_1_0.value, &search256_1_1.value },
        -:        -:  915:   NULL,
        -:        -:  916:};
        -:        -:  917:static const nir_search_expression search256 = {
        -:        -:  918:   { nir_search_value_expression, 0 },
        -:        -:  919:   false,
        -:        -:  920:   nir_op_iand,
        -:        -:  921:   { &search256_0.value, &search256_1.value },
        -:        -:  922:   NULL,
        -:        -:  923:};
        -:        -:  924:   
        -:        -:  925:static const nir_search_variable replace256_0 = {
        -:        -:  926:   { nir_search_value_variable, 0 },
        -:        -:  927:   1, /* b */
        -:        -:  928:   false,
        -:        -:  929:   nir_type_invalid,
        -:        -:  930:   NULL,
        -:        -:  931:};
        -:        -:  932:
        -:        -:  933:static const nir_search_variable replace256_1 = {
        -:        -:  934:   { nir_search_value_variable, 0 },
        -:        -:  935:   0, /* a */
        -:        -:  936:   false,
        -:        -:  937:   nir_type_invalid,
        -:        -:  938:   NULL,
        -:        -:  939:};
        -:        -:  940:static const nir_search_expression replace256 = {
        -:        -:  941:   { nir_search_value_expression, 0 },
        -:        -:  942:   false,
        -:        -:  943:   nir_op_feq,
        -:        -:  944:   { &replace256_0.value, &replace256_1.value },
        -:        -:  945:   NULL,
        -:        -:  946:};
        -:        -:  947:
        -:        -:  948:static const struct transform nir_opt_algebraic_iand_xforms[] = {
        -:        -:  949:   { &search123, &replace123.value, 0 },
        -:        -:  950:   { &search134, &replace134.value, 0 },
        -:        -:  951:   { &search135, &replace135.value, 0 },
        -:        -:  952:   { &search136, &replace136.value, 0 },
        -:        -:  953:   { &search144, &replace144.value, 0 },
        -:        -:  954:   { &search152, &replace152.value, 0 },
        -:        -:  955:   { &search153, &replace153.value, 0 },
        -:        -:  956:   { &search205, &replace205.value, 17 },
        -:        -:  957:   { &search206, &replace206.value, 17 },
        -:        -:  958:   { &search207, &replace207.value, 17 },
        -:        -:  959:   { &search209, &replace209.value, 18 },
        -:        -:  960:   { &search251, &replace251.value, 0 },
        -:        -:  961:   { &search252, &replace252.value, 0 },
        -:        -:  962:   { &search253, &replace253.value, 0 },
        -:        -:  963:   { &search254, &replace254.value, 0 },
        -:        -:  964:   { &search255, &replace255.value, 0 },
        -:        -:  965:   { &search256, &replace256.value, 0 },
        -:        -:  966:};
        -:        -:  967:   
        -:        -:  968:static const nir_search_variable search194_0_0 = {
        -:        -:  969:   { nir_search_value_variable, 0 },
        -:        -:  970:   0, /* a */
        -:        -:  971:   false,
        -:        -:  972:   nir_type_invalid,
        -:        -:  973:   NULL,
        -:        -:  974:};
        -:        -:  975:static const nir_search_expression search194_0 = {
        -:        -:  976:   { nir_search_value_expression, 0 },
        -:        -:  977:   false,
        -:        -:  978:   nir_op_b2i,
        -:        -:  979:   { &search194_0_0.value },
        -:        -:  980:   NULL,
        -:        -:  981:};
        -:        -:  982:static const nir_search_expression search194 = {
        -:        -:  983:   { nir_search_value_expression, 0 },
        -:        -:  984:   false,
        -:        -:  985:   nir_op_i2b,
        -:        -:  986:   { &search194_0.value },
        -:        -:  987:   NULL,
        -:        -:  988:};
        -:        -:  989:   
        -:        -:  990:static const nir_search_variable replace194 = {
        -:        -:  991:   { nir_search_value_variable, 0 },
        -:        -:  992:   0, /* a */
        -:        -:  993:   false,
        -:        -:  994:   nir_type_invalid,
        -:        -:  995:   NULL,
        -:        -:  996:};
        -:        -:  997:   
        -:        -:  998:static const nir_search_variable search197_0_0 = {
        -:        -:  999:   { nir_search_value_variable, 0 },
        -:        -: 1000:   0, /* a */
        -:        -: 1001:   false,
        -:        -: 1002:   nir_type_invalid,
        -:        -: 1003:   NULL,
        -:        -: 1004:};
        -:        -: 1005:static const nir_search_expression search197_0 = {
        -:        -: 1006:   { nir_search_value_expression, 0 },
        -:        -: 1007:   false,
        -:        -: 1008:   nir_op_ineg,
        -:        -: 1009:   { &search197_0_0.value },
        -:        -: 1010:   NULL,
        -:        -: 1011:};
        -:        -: 1012:static const nir_search_expression search197 = {
        -:        -: 1013:   { nir_search_value_expression, 0 },
        -:        -: 1014:   false,
        -:        -: 1015:   nir_op_i2b,
        -:        -: 1016:   { &search197_0.value },
        -:        -: 1017:   NULL,
        -:        -: 1018:};
        -:        -: 1019:   
        -:        -: 1020:static const nir_search_variable replace197_0 = {
        -:        -: 1021:   { nir_search_value_variable, 0 },
        -:        -: 1022:   0, /* a */
        -:        -: 1023:   false,
        -:        -: 1024:   nir_type_invalid,
        -:        -: 1025:   NULL,
        -:        -: 1026:};
        -:        -: 1027:static const nir_search_expression replace197 = {
        -:        -: 1028:   { nir_search_value_expression, 0 },
        -:        -: 1029:   false,
        -:        -: 1030:   nir_op_i2b,
        -:        -: 1031:   { &replace197_0.value },
        -:        -: 1032:   NULL,
        -:        -: 1033:};
        -:        -: 1034:   
        -:        -: 1035:static const nir_search_variable search198_0_0 = {
        -:        -: 1036:   { nir_search_value_variable, 0 },
        -:        -: 1037:   0, /* a */
        -:        -: 1038:   false,
        -:        -: 1039:   nir_type_invalid,
        -:        -: 1040:   NULL,
        -:        -: 1041:};
        -:        -: 1042:static const nir_search_expression search198_0 = {
        -:        -: 1043:   { nir_search_value_expression, 0 },
        -:        -: 1044:   false,
        -:        -: 1045:   nir_op_iabs,
        -:        -: 1046:   { &search198_0_0.value },
        -:        -: 1047:   NULL,
        -:        -: 1048:};
        -:        -: 1049:static const nir_search_expression search198 = {
        -:        -: 1050:   { nir_search_value_expression, 0 },
        -:        -: 1051:   false,
        -:        -: 1052:   nir_op_i2b,
        -:        -: 1053:   { &search198_0.value },
        -:        -: 1054:   NULL,
        -:        -: 1055:};
        -:        -: 1056:   
        -:        -: 1057:static const nir_search_variable replace198_0 = {
        -:        -: 1058:   { nir_search_value_variable, 0 },
        -:        -: 1059:   0, /* a */
        -:        -: 1060:   false,
        -:        -: 1061:   nir_type_invalid,
        -:        -: 1062:   NULL,
        -:        -: 1063:};
        -:        -: 1064:static const nir_search_expression replace198 = {
        -:        -: 1065:   { nir_search_value_expression, 0 },
        -:        -: 1066:   false,
        -:        -: 1067:   nir_op_i2b,
        -:        -: 1068:   { &replace198_0.value },
        -:        -: 1069:   NULL,
        -:        -: 1070:};
        -:        -: 1071:
        -:        -: 1072:static const struct transform nir_opt_algebraic_i2b_xforms[] = {
        -:        -: 1073:   { &search194, &replace194.value, 0 },
        -:        -: 1074:   { &search197, &replace197.value, 0 },
        -:        -: 1075:   { &search198, &replace198.value, 0 },
        -:        -: 1076:};
        -:        -: 1077:   
        -:        -: 1078:static const nir_search_variable search141_0 = {
        -:        -: 1079:   { nir_search_value_variable, 0 },
        -:        -: 1080:   0, /* a */
        -:        -: 1081:   false,
        -:        -: 1082:   nir_type_invalid,
        -:        -: 1083:   NULL,
        -:        -: 1084:};
        -:        -: 1085:
        -:        -: 1086:static const nir_search_variable search141_1 = {
        -:        -: 1087:   { nir_search_value_variable, 0 },
        -:        -: 1088:   0, /* a */
        -:        -: 1089:   false,
        -:        -: 1090:   nir_type_invalid,
        -:        -: 1091:   NULL,
        -:        -: 1092:};
        -:        -: 1093:static const nir_search_expression search141 = {
        -:        -: 1094:   { nir_search_value_expression, 0 },
        -:        -: 1095:   false,
        -:        -: 1096:   nir_op_ixor,
        -:        -: 1097:   { &search141_0.value, &search141_1.value },
        -:        -: 1098:   NULL,
        -:        -: 1099:};
        -:        -: 1100:   
        -:        -: 1101:static const nir_search_constant replace141 = {
        -:        -: 1102:   { nir_search_value_constant, 0 },
        -:        -: 1103:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 1104:};
        -:        -: 1105:   
        -:        -: 1106:static const nir_search_variable search142_0 = {
        -:        -: 1107:   { nir_search_value_variable, 0 },
        -:        -: 1108:   0, /* a */
        -:        -: 1109:   false,
        -:        -: 1110:   nir_type_invalid,
        -:        -: 1111:   NULL,
        -:        -: 1112:};
        -:        -: 1113:
        -:        -: 1114:static const nir_search_constant search142_1 = {
        -:        -: 1115:   { nir_search_value_constant, 0 },
        -:        -: 1116:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 1117:};
        -:        -: 1118:static const nir_search_expression search142 = {
        -:        -: 1119:   { nir_search_value_expression, 0 },
        -:        -: 1120:   false,
        -:        -: 1121:   nir_op_ixor,
        -:        -: 1122:   { &search142_0.value, &search142_1.value },
        -:        -: 1123:   NULL,
        -:        -: 1124:};
        -:        -: 1125:   
        -:        -: 1126:static const nir_search_variable replace142 = {
        -:        -: 1127:   { nir_search_value_variable, 0 },
        -:        -: 1128:   0, /* a */
        -:        -: 1129:   false,
        -:        -: 1130:   nir_type_invalid,
        -:        -: 1131:   NULL,
        -:        -: 1132:};
        -:        -: 1133:
        -:        -: 1134:static const struct transform nir_opt_algebraic_ixor_xforms[] = {
        -:        -: 1135:   { &search141, &replace141.value, 0 },
        -:        -: 1136:   { &search142, &replace142.value, 0 },
        -:        -: 1137:};
        -:        -: 1138:   
        -:        -: 1139:static const nir_search_variable search116_0 = {
        -:        -: 1140:   { nir_search_value_variable, 0 },
        -:        -: 1141:   0, /* a */
        -:        -: 1142:   false,
        -:        -: 1143:   nir_type_invalid,
        -:        -: 1144:   NULL,
        -:        -: 1145:};
        -:        -: 1146:
        -:        -: 1147:static const nir_search_variable search116_1 = {
        -:        -: 1148:   { nir_search_value_variable, 0 },
        -:        -: 1149:   1, /* b */
        -:        -: 1150:   false,
        -:        -: 1151:   nir_type_invalid,
        -:        -: 1152:   NULL,
        -:        -: 1153:};
        -:        -: 1154:static const nir_search_expression search116 = {
        -:        -: 1155:   { nir_search_value_expression, 0 },
        -:        -: 1156:   false,
        -:        -: 1157:   nir_op_seq,
        -:        -: 1158:   { &search116_0.value, &search116_1.value },
        -:        -: 1159:   NULL,
        -:        -: 1160:};
        -:        -: 1161:   
        -:        -: 1162:static const nir_search_variable replace116_0_0 = {
        -:        -: 1163:   { nir_search_value_variable, 0 },
        -:        -: 1164:   0, /* a */
        -:        -: 1165:   false,
        -:        -: 1166:   nir_type_invalid,
        -:        -: 1167:   NULL,
        -:        -: 1168:};
        -:        -: 1169:
        -:        -: 1170:static const nir_search_variable replace116_0_1 = {
        -:        -: 1171:   { nir_search_value_variable, 0 },
        -:        -: 1172:   1, /* b */
        -:        -: 1173:   false,
        -:        -: 1174:   nir_type_invalid,
        -:        -: 1175:   NULL,
        -:        -: 1176:};
        -:        -: 1177:static const nir_search_expression replace116_0 = {
        -:        -: 1178:   { nir_search_value_expression, 0 },
        -:        -: 1179:   false,
        -:        -: 1180:   nir_op_feq,
        -:        -: 1181:   { &replace116_0_0.value, &replace116_0_1.value },
        -:        -: 1182:   NULL,
        -:        -: 1183:};
        -:        -: 1184:static const nir_search_expression replace116 = {
        -:        -: 1185:   { nir_search_value_expression, 0 },
        -:        -: 1186:   false,
        -:        -: 1187:   nir_op_b2f,
        -:        -: 1188:   { &replace116_0.value },
        -:        -: 1189:   NULL,
        -:        -: 1190:};
        -:        -: 1191:
        -:        -: 1192:static const struct transform nir_opt_algebraic_seq_xforms[] = {
        -:        -: 1193:   { &search116, &replace116.value, 11 },
        -:        -: 1194:};
        -:        -: 1195:   
        -:        -: 1196:static const nir_search_variable search127_0 = {
        -:        -: 1197:   { nir_search_value_variable, 0 },
        -:        -: 1198:   0, /* a */
        -:        -: 1199:   false,
        -:        -: 1200:   nir_type_invalid,
        -:        -: 1201:   NULL,
        -:        -: 1202:};
        -:        -: 1203:
        -:        -: 1204:static const nir_search_variable search127_1 = {
        -:        -: 1205:   { nir_search_value_variable, 0 },
        -:        -: 1206:   0, /* a */
        -:        -: 1207:   false,
        -:        -: 1208:   nir_type_invalid,
        -:        -: 1209:   NULL,
        -:        -: 1210:};
        -:        -: 1211:static const nir_search_expression search127 = {
        -:        -: 1212:   { nir_search_value_expression, 0 },
        -:        -: 1213:   false,
        -:        -: 1214:   nir_op_ilt,
        -:        -: 1215:   { &search127_0.value, &search127_1.value },
        -:        -: 1216:   NULL,
        -:        -: 1217:};
        -:        -: 1218:   
        -:        -: 1219:static const nir_search_constant replace127 = {
        -:        -: 1220:   { nir_search_value_constant, 32 },
        -:        -: 1221:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -: 1222:};
        -:        -: 1223:   
        -:        -: 1224:static const nir_search_variable search265_0_0 = {
        -:        -: 1225:   { nir_search_value_variable, 0 },
        -:        -: 1226:   0, /* a */
        -:        -: 1227:   false,
        -:        -: 1228:   nir_type_invalid,
        -:        -: 1229:   NULL,
        -:        -: 1230:};
        -:        -: 1231:
        -:        -: 1232:static const nir_search_variable search265_0_1 = {
        -:        -: 1233:   { nir_search_value_variable, 0 },
        -:        -: 1234:   1, /* b */
        -:        -: 1235:   true,
        -:        -: 1236:   nir_type_invalid,
        -:        -: 1237:   NULL,
        -:        -: 1238:};
        -:        -: 1239:
        -:        -: 1240:static const nir_search_variable search265_0_2 = {
        -:        -: 1241:   { nir_search_value_variable, 0 },
        -:        -: 1242:   2, /* c */
        -:        -: 1243:   true,
        -:        -: 1244:   nir_type_invalid,
        -:        -: 1245:   NULL,
        -:        -: 1246:};
        -:        -: 1247:static const nir_search_expression search265_0 = {
        -:        -: 1248:   { nir_search_value_expression, 0 },
        -:        -: 1249:   false,
        -:        -: 1250:   nir_op_bcsel,
        -:        -: 1251:   { &search265_0_0.value, &search265_0_1.value, &search265_0_2.value },
        -:        -: 1252:   NULL,
        -:        -: 1253:};
        -:        -: 1254:
        -:        -: 1255:static const nir_search_variable search265_1 = {
        -:        -: 1256:   { nir_search_value_variable, 0 },
        -:        -: 1257:   3, /* d */
        -:        -: 1258:   true,
        -:        -: 1259:   nir_type_invalid,
        -:        -: 1260:   NULL,
        -:        -: 1261:};
        -:        -: 1262:static const nir_search_expression search265 = {
        -:        -: 1263:   { nir_search_value_expression, 0 },
        -:        -: 1264:   false,
        -:        -: 1265:   nir_op_ilt,
        -:        -: 1266:   { &search265_0.value, &search265_1.value },
        -:        -: 1267:   NULL,
        -:        -: 1268:};
        -:        -: 1269:   
        -:        -: 1270:static const nir_search_variable replace265_0 = {
        -:        -: 1271:   { nir_search_value_variable, 0 },
        -:        -: 1272:   0, /* a */
        -:        -: 1273:   false,
        -:        -: 1274:   nir_type_invalid,
        -:        -: 1275:   NULL,
        -:        -: 1276:};
        -:        -: 1277:
        -:        -: 1278:static const nir_search_variable replace265_1_0 = {
        -:        -: 1279:   { nir_search_value_variable, 0 },
        -:        -: 1280:   1, /* b */
        -:        -: 1281:   false,
        -:        -: 1282:   nir_type_invalid,
        -:        -: 1283:   NULL,
        -:        -: 1284:};
        -:        -: 1285:
        -:        -: 1286:static const nir_search_variable replace265_1_1 = {
        -:        -: 1287:   { nir_search_value_variable, 0 },
        -:        -: 1288:   3, /* d */
        -:        -: 1289:   false,
        -:        -: 1290:   nir_type_invalid,
        -:        -: 1291:   NULL,
        -:        -: 1292:};
        -:        -: 1293:static const nir_search_expression replace265_1 = {
        -:        -: 1294:   { nir_search_value_expression, 0 },
        -:        -: 1295:   false,
        -:        -: 1296:   nir_op_ilt,
        -:        -: 1297:   { &replace265_1_0.value, &replace265_1_1.value },
        -:        -: 1298:   NULL,
        -:        -: 1299:};
        -:        -: 1300:
        -:        -: 1301:static const nir_search_variable replace265_2_0 = {
        -:        -: 1302:   { nir_search_value_variable, 0 },
        -:        -: 1303:   2, /* c */
        -:        -: 1304:   false,
        -:        -: 1305:   nir_type_invalid,
        -:        -: 1306:   NULL,
        -:        -: 1307:};
        -:        -: 1308:
        -:        -: 1309:static const nir_search_variable replace265_2_1 = {
        -:        -: 1310:   { nir_search_value_variable, 0 },
        -:        -: 1311:   3, /* d */
        -:        -: 1312:   false,
        -:        -: 1313:   nir_type_invalid,
        -:        -: 1314:   NULL,
        -:        -: 1315:};
        -:        -: 1316:static const nir_search_expression replace265_2 = {
        -:        -: 1317:   { nir_search_value_expression, 0 },
        -:        -: 1318:   false,
        -:        -: 1319:   nir_op_ilt,
        -:        -: 1320:   { &replace265_2_0.value, &replace265_2_1.value },
        -:        -: 1321:   NULL,
        -:        -: 1322:};
        -:        -: 1323:static const nir_search_expression replace265 = {
        -:        -: 1324:   { nir_search_value_expression, 0 },
        -:        -: 1325:   false,
        -:        -: 1326:   nir_op_bcsel,
        -:        -: 1327:   { &replace265_0.value, &replace265_1.value, &replace265_2.value },
        -:        -: 1328:   NULL,
        -:        -: 1329:};
        -:        -: 1330:   
        -:        -: 1331:static const nir_search_variable search266_0 = {
        -:        -: 1332:   { nir_search_value_variable, 0 },
        -:        -: 1333:   0, /* d */
        -:        -: 1334:   true,
        -:        -: 1335:   nir_type_invalid,
        -:        -: 1336:   NULL,
        -:        -: 1337:};
        -:        -: 1338:
        -:        -: 1339:static const nir_search_variable search266_1_0 = {
        -:        -: 1340:   { nir_search_value_variable, 0 },
        -:        -: 1341:   1, /* a */
        -:        -: 1342:   false,
        -:        -: 1343:   nir_type_invalid,
        -:        -: 1344:   NULL,
        -:        -: 1345:};
        -:        -: 1346:
        -:        -: 1347:static const nir_search_variable search266_1_1 = {
        -:        -: 1348:   { nir_search_value_variable, 0 },
        -:        -: 1349:   2, /* b */
        -:        -: 1350:   true,
        -:        -: 1351:   nir_type_invalid,
        -:        -: 1352:   NULL,
        -:        -: 1353:};
        -:        -: 1354:
        -:        -: 1355:static const nir_search_variable search266_1_2 = {
        -:        -: 1356:   { nir_search_value_variable, 0 },
        -:        -: 1357:   3, /* c */
        -:        -: 1358:   true,
        -:        -: 1359:   nir_type_invalid,
        -:        -: 1360:   NULL,
        -:        -: 1361:};
        -:        -: 1362:static const nir_search_expression search266_1 = {
        -:        -: 1363:   { nir_search_value_expression, 0 },
        -:        -: 1364:   false,
        -:        -: 1365:   nir_op_bcsel,
        -:        -: 1366:   { &search266_1_0.value, &search266_1_1.value, &search266_1_2.value },
        -:        -: 1367:   NULL,
        -:        -: 1368:};
        -:        -: 1369:static const nir_search_expression search266 = {
        -:        -: 1370:   { nir_search_value_expression, 0 },
        -:        -: 1371:   false,
        -:        -: 1372:   nir_op_ilt,
        -:        -: 1373:   { &search266_0.value, &search266_1.value },
        -:        -: 1374:   NULL,
        -:        -: 1375:};
        -:        -: 1376:   
        -:        -: 1377:static const nir_search_variable replace266_0 = {
        -:        -: 1378:   { nir_search_value_variable, 0 },
        -:        -: 1379:   1, /* a */
        -:        -: 1380:   false,
        -:        -: 1381:   nir_type_invalid,
        -:        -: 1382:   NULL,
        -:        -: 1383:};
        -:        -: 1384:
        -:        -: 1385:static const nir_search_variable replace266_1_0 = {
        -:        -: 1386:   { nir_search_value_variable, 0 },
        -:        -: 1387:   0, /* d */
        -:        -: 1388:   false,
        -:        -: 1389:   nir_type_invalid,
        -:        -: 1390:   NULL,
        -:        -: 1391:};
        -:        -: 1392:
        -:        -: 1393:static const nir_search_variable replace266_1_1 = {
        -:        -: 1394:   { nir_search_value_variable, 0 },
        -:        -: 1395:   2, /* b */
        -:        -: 1396:   false,
        -:        -: 1397:   nir_type_invalid,
        -:        -: 1398:   NULL,
        -:        -: 1399:};
        -:        -: 1400:static const nir_search_expression replace266_1 = {
        -:        -: 1401:   { nir_search_value_expression, 0 },
        -:        -: 1402:   false,
        -:        -: 1403:   nir_op_ilt,
        -:        -: 1404:   { &replace266_1_0.value, &replace266_1_1.value },
        -:        -: 1405:   NULL,
        -:        -: 1406:};
        -:        -: 1407:
        -:        -: 1408:static const nir_search_variable replace266_2_0 = {
        -:        -: 1409:   { nir_search_value_variable, 0 },
        -:        -: 1410:   0, /* d */
        -:        -: 1411:   false,
        -:        -: 1412:   nir_type_invalid,
        -:        -: 1413:   NULL,
        -:        -: 1414:};
        -:        -: 1415:
        -:        -: 1416:static const nir_search_variable replace266_2_1 = {
        -:        -: 1417:   { nir_search_value_variable, 0 },
        -:        -: 1418:   3, /* c */
        -:        -: 1419:   false,
        -:        -: 1420:   nir_type_invalid,
        -:        -: 1421:   NULL,
        -:        -: 1422:};
        -:        -: 1423:static const nir_search_expression replace266_2 = {
        -:        -: 1424:   { nir_search_value_expression, 0 },
        -:        -: 1425:   false,
        -:        -: 1426:   nir_op_ilt,
        -:        -: 1427:   { &replace266_2_0.value, &replace266_2_1.value },
        -:        -: 1428:   NULL,
        -:        -: 1429:};
        -:        -: 1430:static const nir_search_expression replace266 = {
        -:        -: 1431:   { nir_search_value_expression, 0 },
        -:        -: 1432:   false,
        -:        -: 1433:   nir_op_bcsel,
        -:        -: 1434:   { &replace266_0.value, &replace266_1.value, &replace266_2.value },
        -:        -: 1435:   NULL,
        -:        -: 1436:};
        -:        -: 1437:
        -:        -: 1438:static const struct transform nir_opt_algebraic_ilt_xforms[] = {
        -:        -: 1439:   { &search127, &replace127.value, 0 },
        -:        -: 1440:   { &search265, &replace265.value, 0 },
        -:        -: 1441:   { &search266, &replace266.value, 0 },
        -:        -: 1442:};
        -:        -: 1443:   
        -:        -: 1444:static const nir_search_variable search4_0 = {
        -:        -: 1445:   { nir_search_value_variable, 0 },
        -:        -: 1446:   0, /* a */
        -:        -: 1447:   false,
        -:        -: 1448:   nir_type_invalid,
        -:        -: 1449:   NULL,
        -:        -: 1450:};
        -:        -: 1451:
        -:        -: 1452:static const nir_search_constant search4_1 = {
        -:        -: 1453:   { nir_search_value_constant, 0 },
        -:        -: 1454:   nir_type_int, { 0x1 /* 1 */ },
        -:        -: 1455:};
        -:        -: 1456:static const nir_search_expression search4 = {
        -:        -: 1457:   { nir_search_value_expression, 0 },
        -:        -: 1458:   false,
        -:        -: 1459:   nir_op_umod,
        -:        -: 1460:   { &search4_0.value, &search4_1.value },
        -:        -: 1461:   NULL,
        -:        -: 1462:};
        -:        -: 1463:   
        -:        -: 1464:static const nir_search_constant replace4 = {
        -:        -: 1465:   { nir_search_value_constant, 0 },
        -:        -: 1466:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 1467:};
        -:        -: 1468:   
        -:        -: 1469:static const nir_search_variable search9_0 = {
        -:        -: 1470:   { nir_search_value_variable, 0 },
        -:        -: 1471:   0, /* a */
        -:        -: 1472:   false,
        -:        -: 1473:   nir_type_invalid,
        -:        -: 1474:   NULL,
        -:        -: 1475:};
        -:        -: 1476:
        -:        -: 1477:static const nir_search_variable search9_1 = {
        -:        -: 1478:   { nir_search_value_variable, 0 },
        -:        -: 1479:   1, /* b */
        -:        -: 1480:   true,
        -:        -: 1481:   nir_type_invalid,
        -:        -: 1482:   (is_pos_power_of_two),
        -:        -: 1483:};
        -:        -: 1484:static const nir_search_expression search9 = {
        -:        -: 1485:   { nir_search_value_expression, 0 },
        -:        -: 1486:   false,
        -:        -: 1487:   nir_op_umod,
        -:        -: 1488:   { &search9_0.value, &search9_1.value },
        -:        -: 1489:   NULL,
        -:        -: 1490:};
        -:        -: 1491:   
        -:        -: 1492:static const nir_search_variable replace9_0 = {
        -:        -: 1493:   { nir_search_value_variable, 0 },
        -:        -: 1494:   0, /* a */
        -:        -: 1495:   false,
        -:        -: 1496:   nir_type_invalid,
        -:        -: 1497:   NULL,
        -:        -: 1498:};
        -:        -: 1499:
        -:        -: 1500:static const nir_search_variable replace9_1_0 = {
        -:        -: 1501:   { nir_search_value_variable, 0 },
        -:        -: 1502:   1, /* b */
        -:        -: 1503:   false,
        -:        -: 1504:   nir_type_invalid,
        -:        -: 1505:   NULL,
        -:        -: 1506:};
        -:        -: 1507:
        -:        -: 1508:static const nir_search_constant replace9_1_1 = {
        -:        -: 1509:   { nir_search_value_constant, 0 },
        -:        -: 1510:   nir_type_int, { 0x1 /* 1 */ },
        -:        -: 1511:};
        -:        -: 1512:static const nir_search_expression replace9_1 = {
        -:        -: 1513:   { nir_search_value_expression, 0 },
        -:        -: 1514:   false,
        -:        -: 1515:   nir_op_isub,
        -:        -: 1516:   { &replace9_1_0.value, &replace9_1_1.value },
        -:        -: 1517:   NULL,
        -:        -: 1518:};
        -:        -: 1519:static const nir_search_expression replace9 = {
        -:        -: 1520:   { nir_search_value_expression, 0 },
        -:        -: 1521:   false,
        -:        -: 1522:   nir_op_iand,
        -:        -: 1523:   { &replace9_0.value, &replace9_1.value },
        -:        -: 1524:   NULL,
        -:        -: 1525:};
        -:        -: 1526:
        -:        -: 1527:static const struct transform nir_opt_algebraic_umod_xforms[] = {
        -:        -: 1528:   { &search4, &replace4.value, 0 },
        -:        -: 1529:   { &search9, &replace9.value, 0 },
        -:        -: 1530:};
        -:        -: 1531:   
        -:        -: 1532:static const nir_search_variable search0_0 = {
        -:        -: 1533:   { nir_search_value_variable, 0 },
        -:        -: 1534:   0, /* a */
        -:        -: 1535:   false,
        -:        -: 1536:   nir_type_invalid,
        -:        -: 1537:   NULL,
        -:        -: 1538:};
        -:        -: 1539:
        -:        -: 1540:static const nir_search_variable search0_1 = {
        -:        -: 1541:   { nir_search_value_variable, 32 },
        -:        -: 1542:   1, /* b */
        -:        -: 1543:   true,
        -:        -: 1544:   nir_type_invalid,
        -:        -: 1545:   (is_pos_power_of_two),
        -:        -: 1546:};
        -:        -: 1547:static const nir_search_expression search0 = {
        -:        -: 1548:   { nir_search_value_expression, 0 },
        -:        -: 1549:   false,
        -:        -: 1550:   nir_op_imul,
        -:        -: 1551:   { &search0_0.value, &search0_1.value },
        -:        -: 1552:   NULL,
        -:        -: 1553:};
        -:        -: 1554:   
        -:        -: 1555:static const nir_search_variable replace0_0 = {
        -:        -: 1556:   { nir_search_value_variable, 0 },
        -:        -: 1557:   0, /* a */
        -:        -: 1558:   false,
        -:        -: 1559:   nir_type_invalid,
        -:        -: 1560:   NULL,
        -:        -: 1561:};
        -:        -: 1562:
        -:        -: 1563:static const nir_search_variable replace0_1_0 = {
        -:        -: 1564:   { nir_search_value_variable, 0 },
        -:        -: 1565:   1, /* b */
        -:        -: 1566:   false,
        -:        -: 1567:   nir_type_invalid,
        -:        -: 1568:   NULL,
        -:        -: 1569:};
        -:        -: 1570:static const nir_search_expression replace0_1 = {
        -:        -: 1571:   { nir_search_value_expression, 0 },
        -:        -: 1572:   false,
        -:        -: 1573:   nir_op_find_lsb,
        -:        -: 1574:   { &replace0_1_0.value },
        -:        -: 1575:   NULL,
        -:        -: 1576:};
        -:        -: 1577:static const nir_search_expression replace0 = {
        -:        -: 1578:   { nir_search_value_expression, 0 },
        -:        -: 1579:   false,
        -:        -: 1580:   nir_op_ishl,
        -:        -: 1581:   { &replace0_0.value, &replace0_1.value },
        -:        -: 1582:   NULL,
        -:        -: 1583:};
        -:        -: 1584:   
        -:        -: 1585:static const nir_search_variable search1_0 = {
        -:        -: 1586:   { nir_search_value_variable, 0 },
        -:        -: 1587:   0, /* a */
        -:        -: 1588:   false,
        -:        -: 1589:   nir_type_invalid,
        -:        -: 1590:   NULL,
        -:        -: 1591:};
        -:        -: 1592:
        -:        -: 1593:static const nir_search_variable search1_1 = {
        -:        -: 1594:   { nir_search_value_variable, 32 },
        -:        -: 1595:   1, /* b */
        -:        -: 1596:   true,
        -:        -: 1597:   nir_type_invalid,
        -:        -: 1598:   (is_neg_power_of_two),
        -:        -: 1599:};
        -:        -: 1600:static const nir_search_expression search1 = {
        -:        -: 1601:   { nir_search_value_expression, 0 },
        -:        -: 1602:   false,
        -:        -: 1603:   nir_op_imul,
        -:        -: 1604:   { &search1_0.value, &search1_1.value },
        -:        -: 1605:   NULL,
        -:        -: 1606:};
        -:        -: 1607:   
        -:        -: 1608:static const nir_search_variable replace1_0_0 = {
        -:        -: 1609:   { nir_search_value_variable, 0 },
        -:        -: 1610:   0, /* a */
        -:        -: 1611:   false,
        -:        -: 1612:   nir_type_invalid,
        -:        -: 1613:   NULL,
        -:        -: 1614:};
        -:        -: 1615:
        -:        -: 1616:static const nir_search_variable replace1_0_1_0_0 = {
        -:        -: 1617:   { nir_search_value_variable, 0 },
        -:        -: 1618:   1, /* b */
        -:        -: 1619:   false,
        -:        -: 1620:   nir_type_invalid,
        -:        -: 1621:   NULL,
        -:        -: 1622:};
        -:        -: 1623:static const nir_search_expression replace1_0_1_0 = {
        -:        -: 1624:   { nir_search_value_expression, 0 },
        -:        -: 1625:   false,
        -:        -: 1626:   nir_op_iabs,
        -:        -: 1627:   { &replace1_0_1_0_0.value },
        -:        -: 1628:   NULL,
        -:        -: 1629:};
        -:        -: 1630:static const nir_search_expression replace1_0_1 = {
        -:        -: 1631:   { nir_search_value_expression, 0 },
        -:        -: 1632:   false,
        -:        -: 1633:   nir_op_find_lsb,
        -:        -: 1634:   { &replace1_0_1_0.value },
        -:        -: 1635:   NULL,
        -:        -: 1636:};
        -:        -: 1637:static const nir_search_expression replace1_0 = {
        -:        -: 1638:   { nir_search_value_expression, 0 },
        -:        -: 1639:   false,
        -:        -: 1640:   nir_op_ishl,
        -:        -: 1641:   { &replace1_0_0.value, &replace1_0_1.value },
        -:        -: 1642:   NULL,
        -:        -: 1643:};
        -:        -: 1644:static const nir_search_expression replace1 = {
        -:        -: 1645:   { nir_search_value_expression, 0 },
        -:        -: 1646:   false,
        -:        -: 1647:   nir_op_ineg,
        -:        -: 1648:   { &replace1_0.value },
        -:        -: 1649:   NULL,
        -:        -: 1650:};
        -:        -: 1651:   
        -:        -: 1652:static const nir_search_variable search30_0 = {
        -:        -: 1653:   { nir_search_value_variable, 0 },
        -:        -: 1654:   0, /* a */
        -:        -: 1655:   false,
        -:        -: 1656:   nir_type_invalid,
        -:        -: 1657:   NULL,
        -:        -: 1658:};
        -:        -: 1659:
        -:        -: 1660:static const nir_search_constant search30_1 = {
        -:        -: 1661:   { nir_search_value_constant, 0 },
        -:        -: 1662:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 1663:};
        -:        -: 1664:static const nir_search_expression search30 = {
        -:        -: 1665:   { nir_search_value_expression, 0 },
        -:        -: 1666:   false,
        -:        -: 1667:   nir_op_imul,
        -:        -: 1668:   { &search30_0.value, &search30_1.value },
        -:        -: 1669:   NULL,
        -:        -: 1670:};
        -:        -: 1671:   
        -:        -: 1672:static const nir_search_constant replace30 = {
        -:        -: 1673:   { nir_search_value_constant, 0 },
        -:        -: 1674:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 1675:};
        -:        -: 1676:   
        -:        -: 1677:static const nir_search_variable search34_0 = {
        -:        -: 1678:   { nir_search_value_variable, 0 },
        -:        -: 1679:   0, /* a */
        -:        -: 1680:   false,
        -:        -: 1681:   nir_type_invalid,
        -:        -: 1682:   NULL,
        -:        -: 1683:};
        -:        -: 1684:
        -:        -: 1685:static const nir_search_constant search34_1 = {
        -:        -: 1686:   { nir_search_value_constant, 0 },
        -:        -: 1687:   nir_type_int, { 0x1 /* 1 */ },
        -:        -: 1688:};
        -:        -: 1689:static const nir_search_expression search34 = {
        -:        -: 1690:   { nir_search_value_expression, 0 },
        -:        -: 1691:   false,
        -:        -: 1692:   nir_op_imul,
        -:        -: 1693:   { &search34_0.value, &search34_1.value },
        -:        -: 1694:   NULL,
        -:        -: 1695:};
        -:        -: 1696:   
        -:        -: 1697:static const nir_search_variable replace34 = {
        -:        -: 1698:   { nir_search_value_variable, 0 },
        -:        -: 1699:   0, /* a */
        -:        -: 1700:   false,
        -:        -: 1701:   nir_type_invalid,
        -:        -: 1702:   NULL,
        -:        -: 1703:};
        -:        -: 1704:   
        -:        -: 1705:static const nir_search_variable search36_0 = {
        -:        -: 1706:   { nir_search_value_variable, 0 },
        -:        -: 1707:   0, /* a */
        -:        -: 1708:   false,
        -:        -: 1709:   nir_type_invalid,
        -:        -: 1710:   NULL,
        -:        -: 1711:};
        -:        -: 1712:
        -:        -: 1713:static const nir_search_constant search36_1 = {
        -:        -: 1714:   { nir_search_value_constant, 0 },
        -:        -: 1715:   nir_type_int, { -0x1 /* -1 */ },
        -:        -: 1716:};
        -:        -: 1717:static const nir_search_expression search36 = {
        -:        -: 1718:   { nir_search_value_expression, 0 },
        -:        -: 1719:   false,
        -:        -: 1720:   nir_op_imul,
        -:        -: 1721:   { &search36_0.value, &search36_1.value },
        -:        -: 1722:   NULL,
        -:        -: 1723:};
        -:        -: 1724:   
        -:        -: 1725:static const nir_search_variable replace36_0 = {
        -:        -: 1726:   { nir_search_value_variable, 0 },
        -:        -: 1727:   0, /* a */
        -:        -: 1728:   false,
        -:        -: 1729:   nir_type_invalid,
        -:        -: 1730:   NULL,
        -:        -: 1731:};
        -:        -: 1732:static const nir_search_expression replace36 = {
        -:        -: 1733:   { nir_search_value_expression, 0 },
        -:        -: 1734:   false,
        -:        -: 1735:   nir_op_ineg,
        -:        -: 1736:   { &replace36_0.value },
        -:        -: 1737:   NULL,
        -:        -: 1738:};
        -:        -: 1739:   
        -:        -: 1740:static const nir_search_variable search120_0_0 = {
        -:        -: 1741:   { nir_search_value_variable, 0 },
        -:        -: 1742:   0, /* a */
        -:        -: 1743:   false,
        -:        -: 1744:   nir_type_invalid,
        -:        -: 1745:   NULL,
        -:        -: 1746:};
        -:        -: 1747:static const nir_search_expression search120_0 = {
        -:        -: 1748:   { nir_search_value_expression, 0 },
        -:        -: 1749:   false,
        -:        -: 1750:   nir_op_b2i,
        -:        -: 1751:   { &search120_0_0.value },
        -:        -: 1752:   NULL,
        -:        -: 1753:};
        -:        -: 1754:
        -:        -: 1755:static const nir_search_variable search120_1_0 = {
        -:        -: 1756:   { nir_search_value_variable, 0 },
        -:        -: 1757:   1, /* b */
        -:        -: 1758:   false,
        -:        -: 1759:   nir_type_invalid,
        -:        -: 1760:   NULL,
        -:        -: 1761:};
        -:        -: 1762:static const nir_search_expression search120_1 = {
        -:        -: 1763:   { nir_search_value_expression, 0 },
        -:        -: 1764:   false,
        -:        -: 1765:   nir_op_b2i,
        -:        -: 1766:   { &search120_1_0.value },
        -:        -: 1767:   NULL,
        -:        -: 1768:};
        -:        -: 1769:static const nir_search_expression search120 = {
        -:        -: 1770:   { nir_search_value_expression, 0 },
        -:        -: 1771:   false,
        -:        -: 1772:   nir_op_imul,
        -:        -: 1773:   { &search120_0.value, &search120_1.value },
        -:        -: 1774:   NULL,
        -:        -: 1775:};
        -:        -: 1776:   
        -:        -: 1777:static const nir_search_variable replace120_0_0 = {
        -:        -: 1778:   { nir_search_value_variable, 0 },
        -:        -: 1779:   0, /* a */
        -:        -: 1780:   false,
        -:        -: 1781:   nir_type_invalid,
        -:        -: 1782:   NULL,
        -:        -: 1783:};
        -:        -: 1784:
        -:        -: 1785:static const nir_search_variable replace120_0_1 = {
        -:        -: 1786:   { nir_search_value_variable, 0 },
        -:        -: 1787:   1, /* b */
        -:        -: 1788:   false,
        -:        -: 1789:   nir_type_invalid,
        -:        -: 1790:   NULL,
        -:        -: 1791:};
        -:        -: 1792:static const nir_search_expression replace120_0 = {
        -:        -: 1793:   { nir_search_value_expression, 0 },
        -:        -: 1794:   false,
        -:        -: 1795:   nir_op_iand,
        -:        -: 1796:   { &replace120_0_0.value, &replace120_0_1.value },
        -:        -: 1797:   NULL,
        -:        -: 1798:};
        -:        -: 1799:static const nir_search_expression replace120 = {
        -:        -: 1800:   { nir_search_value_expression, 0 },
        -:        -: 1801:   false,
        -:        -: 1802:   nir_op_b2i,
        -:        -: 1803:   { &replace120_0.value },
        -:        -: 1804:   NULL,
        -:        -: 1805:};
        -:        -: 1806:   
        -:        -: 1807:static const nir_search_variable search223_0_0 = {
        -:        -: 1808:   { nir_search_value_variable, 0 },
        -:        -: 1809:   0, /* a */
        -:        -: 1810:   false,
        -:        -: 1811:   nir_type_invalid,
        -:        -: 1812:   NULL,
        -:        -: 1813:};
        -:        -: 1814:static const nir_search_expression search223_0 = {
        -:        -: 1815:   { nir_search_value_expression, 0 },
        -:        -: 1816:   false,
        -:        -: 1817:   nir_op_ineg,
        -:        -: 1818:   { &search223_0_0.value },
        -:        -: 1819:   NULL,
        -:        -: 1820:};
        -:        -: 1821:
        -:        -: 1822:static const nir_search_variable search223_1 = {
        -:        -: 1823:   { nir_search_value_variable, 0 },
        -:        -: 1824:   1, /* b */
        -:        -: 1825:   false,
        -:        -: 1826:   nir_type_invalid,
        -:        -: 1827:   NULL,
        -:        -: 1828:};
        -:        -: 1829:static const nir_search_expression search223 = {
        -:        -: 1830:   { nir_search_value_expression, 0 },
        -:        -: 1831:   false,
        -:        -: 1832:   nir_op_imul,
        -:        -: 1833:   { &search223_0.value, &search223_1.value },
        -:        -: 1834:   NULL,
        -:        -: 1835:};
        -:        -: 1836:   
        -:        -: 1837:static const nir_search_variable replace223_0_0 = {
        -:        -: 1838:   { nir_search_value_variable, 0 },
        -:        -: 1839:   0, /* a */
        -:        -: 1840:   false,
        -:        -: 1841:   nir_type_invalid,
        -:        -: 1842:   NULL,
        -:        -: 1843:};
        -:        -: 1844:
        -:        -: 1845:static const nir_search_variable replace223_0_1 = {
        -:        -: 1846:   { nir_search_value_variable, 0 },
        -:        -: 1847:   1, /* b */
        -:        -: 1848:   false,
        -:        -: 1849:   nir_type_invalid,
        -:        -: 1850:   NULL,
        -:        -: 1851:};
        -:        -: 1852:static const nir_search_expression replace223_0 = {
        -:        -: 1853:   { nir_search_value_expression, 0 },
        -:        -: 1854:   false,
        -:        -: 1855:   nir_op_imul,
        -:        -: 1856:   { &replace223_0_0.value, &replace223_0_1.value },
        -:        -: 1857:   NULL,
        -:        -: 1858:};
        -:        -: 1859:static const nir_search_expression replace223 = {
        -:        -: 1860:   { nir_search_value_expression, 0 },
        -:        -: 1861:   false,
        -:        -: 1862:   nir_op_ineg,
        -:        -: 1863:   { &replace223_0.value },
        -:        -: 1864:   NULL,
        -:        -: 1865:};
        -:        -: 1866:   
        -:        -: 1867:static const nir_search_variable search225_0 = {
        -:        -: 1868:   { nir_search_value_variable, 0 },
        -:        -: 1869:   0, /* a */
        -:        -: 1870:   true,
        -:        -: 1871:   nir_type_invalid,
        -:        -: 1872:   NULL,
        -:        -: 1873:};
        -:        -: 1874:
        -:        -: 1875:static const nir_search_variable search225_1_0 = {
        -:        -: 1876:   { nir_search_value_variable, 0 },
        -:        -: 1877:   1, /* b */
        -:        -: 1878:   false,
        -:        -: 1879:   nir_type_invalid,
        -:        -: 1880:   NULL,
        -:        -: 1881:};
        -:        -: 1882:
        -:        -: 1883:static const nir_search_variable search225_1_1 = {
        -:        -: 1884:   { nir_search_value_variable, 0 },
        -:        -: 1885:   2, /* c */
        -:        -: 1886:   true,
        -:        -: 1887:   nir_type_invalid,
        -:        -: 1888:   NULL,
        -:        -: 1889:};
        -:        -: 1890:static const nir_search_expression search225_1 = {
        -:        -: 1891:   { nir_search_value_expression, 0 },
        -:        -: 1892:   false,
        -:        -: 1893:   nir_op_imul,
        -:        -: 1894:   { &search225_1_0.value, &search225_1_1.value },
        -:        -: 1895:   NULL,
        -:        -: 1896:};
        -:        -: 1897:static const nir_search_expression search225 = {
        -:        -: 1898:   { nir_search_value_expression, 0 },
        -:        -: 1899:   false,
        -:        -: 1900:   nir_op_imul,
        -:        -: 1901:   { &search225_0.value, &search225_1.value },
        -:        -: 1902:   NULL,
        -:        -: 1903:};
        -:        -: 1904:   
        -:        -: 1905:static const nir_search_variable replace225_0_0 = {
        -:        -: 1906:   { nir_search_value_variable, 0 },
        -:        -: 1907:   0, /* a */
        -:        -: 1908:   false,
        -:        -: 1909:   nir_type_invalid,
        -:        -: 1910:   NULL,
        -:        -: 1911:};
        -:        -: 1912:
        -:        -: 1913:static const nir_search_variable replace225_0_1 = {
        -:        -: 1914:   { nir_search_value_variable, 0 },
        -:        -: 1915:   2, /* c */
        -:        -: 1916:   false,
        -:        -: 1917:   nir_type_invalid,
        -:        -: 1918:   NULL,
        -:        -: 1919:};
        -:        -: 1920:static const nir_search_expression replace225_0 = {
        -:        -: 1921:   { nir_search_value_expression, 0 },
        -:        -: 1922:   false,
        -:        -: 1923:   nir_op_imul,
        -:        -: 1924:   { &replace225_0_0.value, &replace225_0_1.value },
        -:        -: 1925:   NULL,
        -:        -: 1926:};
        -:        -: 1927:
        -:        -: 1928:static const nir_search_variable replace225_1 = {
        -:        -: 1929:   { nir_search_value_variable, 0 },
        -:        -: 1930:   1, /* b */
        -:        -: 1931:   false,
        -:        -: 1932:   nir_type_invalid,
        -:        -: 1933:   NULL,
        -:        -: 1934:};
        -:        -: 1935:static const nir_search_expression replace225 = {
        -:        -: 1936:   { nir_search_value_expression, 0 },
        -:        -: 1937:   false,
        -:        -: 1938:   nir_op_imul,
        -:        -: 1939:   { &replace225_0.value, &replace225_1.value },
        -:        -: 1940:   NULL,
        -:        -: 1941:};
        -:        -: 1942:
        -:        -: 1943:static const struct transform nir_opt_algebraic_imul_xforms[] = {
        -:        -: 1944:   { &search0, &replace0.value, 0 },
        -:        -: 1945:   { &search1, &replace1.value, 0 },
        -:        -: 1946:   { &search30, &replace30.value, 0 },
        -:        -: 1947:   { &search34, &replace34.value, 0 },
        -:        -: 1948:   { &search36, &replace36.value, 0 },
        -:        -: 1949:   { &search120, &replace120.value, 0 },
        -:        -: 1950:   { &search223, &replace223.value, 0 },
        -:        -: 1951:   { &search225, &replace225.value, 0 },
        -:        -: 1952:};
        -:        -: 1953:   
        -:        -: 1954:static const nir_search_variable search132_0 = {
        -:        -: 1955:   { nir_search_value_variable, 0 },
        -:        -: 1956:   0, /* a */
        -:        -: 1957:   false,
        -:        -: 1958:   nir_type_invalid,
        -:        -: 1959:   NULL,
        -:        -: 1960:};
        -:        -: 1961:
        -:        -: 1962:static const nir_search_variable search132_1 = {
        -:        -: 1963:   { nir_search_value_variable, 0 },
        -:        -: 1964:   0, /* a */
        -:        -: 1965:   false,
        -:        -: 1966:   nir_type_invalid,
        -:        -: 1967:   NULL,
        -:        -: 1968:};
        -:        -: 1969:static const nir_search_expression search132 = {
        -:        -: 1970:   { nir_search_value_expression, 0 },
        -:        -: 1971:   false,
        -:        -: 1972:   nir_op_uge,
        -:        -: 1973:   { &search132_0.value, &search132_1.value },
        -:        -: 1974:   NULL,
        -:        -: 1975:};
        -:        -: 1976:   
        -:        -: 1977:static const nir_search_constant replace132 = {
        -:        -: 1978:   { nir_search_value_constant, 32 },
        -:        -: 1979:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 1980:};
        -:        -: 1981:   
        -:        -: 1982:static const nir_search_variable search275_0_0 = {
        -:        -: 1983:   { nir_search_value_variable, 0 },
        -:        -: 1984:   0, /* a */
        -:        -: 1985:   false,
        -:        -: 1986:   nir_type_invalid,
        -:        -: 1987:   NULL,
        -:        -: 1988:};
        -:        -: 1989:
        -:        -: 1990:static const nir_search_variable search275_0_1 = {
        -:        -: 1991:   { nir_search_value_variable, 0 },
        -:        -: 1992:   1, /* b */
        -:        -: 1993:   true,
        -:        -: 1994:   nir_type_invalid,
        -:        -: 1995:   NULL,
        -:        -: 1996:};
        -:        -: 1997:
        -:        -: 1998:static const nir_search_variable search275_0_2 = {
        -:        -: 1999:   { nir_search_value_variable, 0 },
        -:        -: 2000:   2, /* c */
        -:        -: 2001:   true,
        -:        -: 2002:   nir_type_invalid,
        -:        -: 2003:   NULL,
        -:        -: 2004:};
        -:        -: 2005:static const nir_search_expression search275_0 = {
        -:        -: 2006:   { nir_search_value_expression, 0 },
        -:        -: 2007:   false,
        -:        -: 2008:   nir_op_bcsel,
        -:        -: 2009:   { &search275_0_0.value, &search275_0_1.value, &search275_0_2.value },
        -:        -: 2010:   NULL,
        -:        -: 2011:};
        -:        -: 2012:
        -:        -: 2013:static const nir_search_variable search275_1 = {
        -:        -: 2014:   { nir_search_value_variable, 0 },
        -:        -: 2015:   3, /* d */
        -:        -: 2016:   true,
        -:        -: 2017:   nir_type_invalid,
        -:        -: 2018:   NULL,
        -:        -: 2019:};
        -:        -: 2020:static const nir_search_expression search275 = {
        -:        -: 2021:   { nir_search_value_expression, 0 },
        -:        -: 2022:   false,
        -:        -: 2023:   nir_op_uge,
        -:        -: 2024:   { &search275_0.value, &search275_1.value },
        -:        -: 2025:   NULL,
        -:        -: 2026:};
        -:        -: 2027:   
        -:        -: 2028:static const nir_search_variable replace275_0 = {
        -:        -: 2029:   { nir_search_value_variable, 0 },
        -:        -: 2030:   0, /* a */
        -:        -: 2031:   false,
        -:        -: 2032:   nir_type_invalid,
        -:        -: 2033:   NULL,
        -:        -: 2034:};
        -:        -: 2035:
        -:        -: 2036:static const nir_search_variable replace275_1_0 = {
        -:        -: 2037:   { nir_search_value_variable, 0 },
        -:        -: 2038:   1, /* b */
        -:        -: 2039:   false,
        -:        -: 2040:   nir_type_invalid,
        -:        -: 2041:   NULL,
        -:        -: 2042:};
        -:        -: 2043:
        -:        -: 2044:static const nir_search_variable replace275_1_1 = {
        -:        -: 2045:   { nir_search_value_variable, 0 },
        -:        -: 2046:   3, /* d */
        -:        -: 2047:   false,
        -:        -: 2048:   nir_type_invalid,
        -:        -: 2049:   NULL,
        -:        -: 2050:};
        -:        -: 2051:static const nir_search_expression replace275_1 = {
        -:        -: 2052:   { nir_search_value_expression, 0 },
        -:        -: 2053:   false,
        -:        -: 2054:   nir_op_uge,
        -:        -: 2055:   { &replace275_1_0.value, &replace275_1_1.value },
        -:        -: 2056:   NULL,
        -:        -: 2057:};
        -:        -: 2058:
        -:        -: 2059:static const nir_search_variable replace275_2_0 = {
        -:        -: 2060:   { nir_search_value_variable, 0 },
        -:        -: 2061:   2, /* c */
        -:        -: 2062:   false,
        -:        -: 2063:   nir_type_invalid,
        -:        -: 2064:   NULL,
        -:        -: 2065:};
        -:        -: 2066:
        -:        -: 2067:static const nir_search_variable replace275_2_1 = {
        -:        -: 2068:   { nir_search_value_variable, 0 },
        -:        -: 2069:   3, /* d */
        -:        -: 2070:   false,
        -:        -: 2071:   nir_type_invalid,
        -:        -: 2072:   NULL,
        -:        -: 2073:};
        -:        -: 2074:static const nir_search_expression replace275_2 = {
        -:        -: 2075:   { nir_search_value_expression, 0 },
        -:        -: 2076:   false,
        -:        -: 2077:   nir_op_uge,
        -:        -: 2078:   { &replace275_2_0.value, &replace275_2_1.value },
        -:        -: 2079:   NULL,
        -:        -: 2080:};
        -:        -: 2081:static const nir_search_expression replace275 = {
        -:        -: 2082:   { nir_search_value_expression, 0 },
        -:        -: 2083:   false,
        -:        -: 2084:   nir_op_bcsel,
        -:        -: 2085:   { &replace275_0.value, &replace275_1.value, &replace275_2.value },
        -:        -: 2086:   NULL,
        -:        -: 2087:};
        -:        -: 2088:   
        -:        -: 2089:static const nir_search_variable search276_0 = {
        -:        -: 2090:   { nir_search_value_variable, 0 },
        -:        -: 2091:   0, /* d */
        -:        -: 2092:   true,
        -:        -: 2093:   nir_type_invalid,
        -:        -: 2094:   NULL,
        -:        -: 2095:};
        -:        -: 2096:
        -:        -: 2097:static const nir_search_variable search276_1_0 = {
        -:        -: 2098:   { nir_search_value_variable, 0 },
        -:        -: 2099:   1, /* a */
        -:        -: 2100:   false,
        -:        -: 2101:   nir_type_invalid,
        -:        -: 2102:   NULL,
        -:        -: 2103:};
        -:        -: 2104:
        -:        -: 2105:static const nir_search_variable search276_1_1 = {
        -:        -: 2106:   { nir_search_value_variable, 0 },
        -:        -: 2107:   2, /* b */
        -:        -: 2108:   true,
        -:        -: 2109:   nir_type_invalid,
        -:        -: 2110:   NULL,
        -:        -: 2111:};
        -:        -: 2112:
        -:        -: 2113:static const nir_search_variable search276_1_2 = {
        -:        -: 2114:   { nir_search_value_variable, 0 },
        -:        -: 2115:   3, /* c */
        -:        -: 2116:   true,
        -:        -: 2117:   nir_type_invalid,
        -:        -: 2118:   NULL,
        -:        -: 2119:};
        -:        -: 2120:static const nir_search_expression search276_1 = {
        -:        -: 2121:   { nir_search_value_expression, 0 },
        -:        -: 2122:   false,
        -:        -: 2123:   nir_op_bcsel,
        -:        -: 2124:   { &search276_1_0.value, &search276_1_1.value, &search276_1_2.value },
        -:        -: 2125:   NULL,
        -:        -: 2126:};
        -:        -: 2127:static const nir_search_expression search276 = {
        -:        -: 2128:   { nir_search_value_expression, 0 },
        -:        -: 2129:   false,
        -:        -: 2130:   nir_op_uge,
        -:        -: 2131:   { &search276_0.value, &search276_1.value },
        -:        -: 2132:   NULL,
        -:        -: 2133:};
        -:        -: 2134:   
        -:        -: 2135:static const nir_search_variable replace276_0 = {
        -:        -: 2136:   { nir_search_value_variable, 0 },
        -:        -: 2137:   1, /* a */
        -:        -: 2138:   false,
        -:        -: 2139:   nir_type_invalid,
        -:        -: 2140:   NULL,
        -:        -: 2141:};
        -:        -: 2142:
        -:        -: 2143:static const nir_search_variable replace276_1_0 = {
        -:        -: 2144:   { nir_search_value_variable, 0 },
        -:        -: 2145:   0, /* d */
        -:        -: 2146:   false,
        -:        -: 2147:   nir_type_invalid,
        -:        -: 2148:   NULL,
        -:        -: 2149:};
        -:        -: 2150:
        -:        -: 2151:static const nir_search_variable replace276_1_1 = {
        -:        -: 2152:   { nir_search_value_variable, 0 },
        -:        -: 2153:   2, /* b */
        -:        -: 2154:   false,
        -:        -: 2155:   nir_type_invalid,
        -:        -: 2156:   NULL,
        -:        -: 2157:};
        -:        -: 2158:static const nir_search_expression replace276_1 = {
        -:        -: 2159:   { nir_search_value_expression, 0 },
        -:        -: 2160:   false,
        -:        -: 2161:   nir_op_uge,
        -:        -: 2162:   { &replace276_1_0.value, &replace276_1_1.value },
        -:        -: 2163:   NULL,
        -:        -: 2164:};
        -:        -: 2165:
        -:        -: 2166:static const nir_search_variable replace276_2_0 = {
        -:        -: 2167:   { nir_search_value_variable, 0 },
        -:        -: 2168:   0, /* d */
        -:        -: 2169:   false,
        -:        -: 2170:   nir_type_invalid,
        -:        -: 2171:   NULL,
        -:        -: 2172:};
        -:        -: 2173:
        -:        -: 2174:static const nir_search_variable replace276_2_1 = {
        -:        -: 2175:   { nir_search_value_variable, 0 },
        -:        -: 2176:   3, /* c */
        -:        -: 2177:   false,
        -:        -: 2178:   nir_type_invalid,
        -:        -: 2179:   NULL,
        -:        -: 2180:};
        -:        -: 2181:static const nir_search_expression replace276_2 = {
        -:        -: 2182:   { nir_search_value_expression, 0 },
        -:        -: 2183:   false,
        -:        -: 2184:   nir_op_uge,
        -:        -: 2185:   { &replace276_2_0.value, &replace276_2_1.value },
        -:        -: 2186:   NULL,
        -:        -: 2187:};
        -:        -: 2188:static const nir_search_expression replace276 = {
        -:        -: 2189:   { nir_search_value_expression, 0 },
        -:        -: 2190:   false,
        -:        -: 2191:   nir_op_bcsel,
        -:        -: 2192:   { &replace276_0.value, &replace276_1.value, &replace276_2.value },
        -:        -: 2193:   NULL,
        -:        -: 2194:};
        -:        -: 2195:
        -:        -: 2196:static const struct transform nir_opt_algebraic_uge_xforms[] = {
        -:        -: 2197:   { &search132, &replace132.value, 0 },
        -:        -: 2198:   { &search275, &replace275.value, 0 },
        -:        -: 2199:   { &search276, &replace276.value, 0 },
        -:        -: 2200:};
        -:        -: 2201:   
        -:        -: 2202:static const nir_search_variable search11_0_0 = {
        -:        -: 2203:   { nir_search_value_variable, 0 },
        -:        -: 2204:   0, /* a */
        -:        -: 2205:   false,
        -:        -: 2206:   nir_type_invalid,
        -:        -: 2207:   NULL,
        -:        -: 2208:};
        -:        -: 2209:static const nir_search_expression search11_0 = {
        -:        -: 2210:   { nir_search_value_expression, 0 },
        -:        -: 2211:   false,
        -:        -: 2212:   nir_op_ineg,
        -:        -: 2213:   { &search11_0_0.value },
        -:        -: 2214:   NULL,
        -:        -: 2215:};
        -:        -: 2216:static const nir_search_expression search11 = {
        -:        -: 2217:   { nir_search_value_expression, 0 },
        -:        -: 2218:   false,
        -:        -: 2219:   nir_op_ineg,
        -:        -: 2220:   { &search11_0.value },
        -:        -: 2221:   NULL,
        -:        -: 2222:};
        -:        -: 2223:   
        -:        -: 2224:static const nir_search_variable replace11 = {
        -:        -: 2225:   { nir_search_value_variable, 0 },
        -:        -: 2226:   0, /* a */
        -:        -: 2227:   false,
        -:        -: 2228:   nir_type_invalid,
        -:        -: 2229:   NULL,
        -:        -: 2230:};
        -:        -: 2231:   
        -:        -: 2232:static const nir_search_variable search124_0_0 = {
        -:        -: 2233:   { nir_search_value_variable, 0 },
        -:        -: 2234:   0, /* a */
        -:        -: 2235:   false,
        -:        -: 2236:   nir_type_invalid,
        -:        -: 2237:   NULL,
        -:        -: 2238:};
        -:        -: 2239:static const nir_search_expression search124_0 = {
        -:        -: 2240:   { nir_search_value_expression, 32 },
        -:        -: 2241:   false,
        -:        -: 2242:   nir_op_b2i,
        -:        -: 2243:   { &search124_0_0.value },
        -:        -: 2244:   NULL,
        -:        -: 2245:};
        -:        -: 2246:static const nir_search_expression search124 = {
        -:        -: 2247:   { nir_search_value_expression, 0 },
        -:        -: 2248:   false,
        -:        -: 2249:   nir_op_ineg,
        -:        -: 2250:   { &search124_0.value },
        -:        -: 2251:   NULL,
        -:        -: 2252:};
        -:        -: 2253:   
        -:        -: 2254:static const nir_search_variable replace124 = {
        -:        -: 2255:   { nir_search_value_variable, 0 },
        -:        -: 2256:   0, /* a */
        -:        -: 2257:   false,
        -:        -: 2258:   nir_type_invalid,
        -:        -: 2259:   NULL,
        -:        -: 2260:};
        -:        -: 2261:   
        -:        -: 2262:static const nir_search_variable search217_0 = {
        -:        -: 2263:   { nir_search_value_variable, 0 },
        -:        -: 2264:   0, /* a */
        -:        -: 2265:   false,
        -:        -: 2266:   nir_type_invalid,
        -:        -: 2267:   NULL,
        -:        -: 2268:};
        -:        -: 2269:static const nir_search_expression search217 = {
        -:        -: 2270:   { nir_search_value_expression, 0 },
        -:        -: 2271:   false,
        -:        -: 2272:   nir_op_ineg,
        -:        -: 2273:   { &search217_0.value },
        -:        -: 2274:   NULL,
        -:        -: 2275:};
        -:        -: 2276:   
        -:        -: 2277:static const nir_search_constant replace217_0 = {
        -:        -: 2278:   { nir_search_value_constant, 0 },
        -:        -: 2279:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 2280:};
        -:        -: 2281:
        -:        -: 2282:static const nir_search_variable replace217_1 = {
        -:        -: 2283:   { nir_search_value_variable, 0 },
        -:        -: 2284:   0, /* a */
        -:        -: 2285:   false,
        -:        -: 2286:   nir_type_invalid,
        -:        -: 2287:   NULL,
        -:        -: 2288:};
        -:        -: 2289:static const nir_search_expression replace217 = {
        -:        -: 2290:   { nir_search_value_expression, 0 },
        -:        -: 2291:   false,
        -:        -: 2292:   nir_op_isub,
        -:        -: 2293:   { &replace217_0.value, &replace217_1.value },
        -:        -: 2294:   NULL,
        -:        -: 2295:};
        -:        -: 2296:
        -:        -: 2297:static const struct transform nir_opt_algebraic_ineg_xforms[] = {
        -:        -: 2298:   { &search11, &replace11.value, 0 },
        -:        -: 2299:   { &search124, &replace124.value, 0 },
        -:        -: 2300:   { &search217, &replace217.value, 20 },
        -:        -: 2301:};
        -:        -: 2302:   
        -:        -: 2303:static const nir_search_variable search29_0 = {
        -:        -: 2304:   { nir_search_value_variable, 0 },
        -:        -: 2305:   0, /* a */
        -:        -: 2306:   false,
        -:        -: 2307:   nir_type_invalid,
        -:        -: 2308:   NULL,
        -:        -: 2309:};
        -:        -: 2310:
        -:        -: 2311:static const nir_search_constant search29_1 = {
        -:        -: 2312:   { nir_search_value_constant, 0 },
        -:        -: 2313:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 2314:};
        -:        -: 2315:static const nir_search_expression search29 = {
        -:        -: 2316:   { nir_search_value_expression, 0 },
        -:        -: 2317:   true,
        -:        -: 2318:   nir_op_fmul,
        -:        -: 2319:   { &search29_0.value, &search29_1.value },
        -:        -: 2320:   NULL,
        -:        -: 2321:};
        -:        -: 2322:   
        -:        -: 2323:static const nir_search_constant replace29 = {
        -:        -: 2324:   { nir_search_value_constant, 0 },
        -:        -: 2325:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 2326:};
        -:        -: 2327:   
        -:        -: 2328:static const nir_search_variable search33_0 = {
        -:        -: 2329:   { nir_search_value_variable, 0 },
        -:        -: 2330:   0, /* a */
        -:        -: 2331:   false,
        -:        -: 2332:   nir_type_invalid,
        -:        -: 2333:   NULL,
        -:        -: 2334:};
        -:        -: 2335:
        -:        -: 2336:static const nir_search_constant search33_1 = {
        -:        -: 2337:   { nir_search_value_constant, 0 },
        -:        -: 2338:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 2339:};
        -:        -: 2340:static const nir_search_expression search33 = {
        -:        -: 2341:   { nir_search_value_expression, 0 },
        -:        -: 2342:   false,
        -:        -: 2343:   nir_op_fmul,
        -:        -: 2344:   { &search33_0.value, &search33_1.value },
        -:        -: 2345:   NULL,
        -:        -: 2346:};
        -:        -: 2347:   
        -:        -: 2348:static const nir_search_variable replace33 = {
        -:        -: 2349:   { nir_search_value_variable, 0 },
        -:        -: 2350:   0, /* a */
        -:        -: 2351:   false,
        -:        -: 2352:   nir_type_invalid,
        -:        -: 2353:   NULL,
        -:        -: 2354:};
        -:        -: 2355:   
        -:        -: 2356:static const nir_search_variable search35_0 = {
        -:        -: 2357:   { nir_search_value_variable, 0 },
        -:        -: 2358:   0, /* a */
        -:        -: 2359:   false,
        -:        -: 2360:   nir_type_invalid,
        -:        -: 2361:   NULL,
        -:        -: 2362:};
        -:        -: 2363:
        -:        -: 2364:static const nir_search_constant search35_1 = {
        -:        -: 2365:   { nir_search_value_constant, 0 },
        -:        -: 2366:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -: 2367:};
        -:        -: 2368:static const nir_search_expression search35 = {
        -:        -: 2369:   { nir_search_value_expression, 0 },
        -:        -: 2370:   false,
        -:        -: 2371:   nir_op_fmul,
        -:        -: 2372:   { &search35_0.value, &search35_1.value },
        -:        -: 2373:   NULL,
        -:        -: 2374:};
        -:        -: 2375:   
        -:        -: 2376:static const nir_search_variable replace35_0 = {
        -:        -: 2377:   { nir_search_value_variable, 0 },
        -:        -: 2378:   0, /* a */
        -:        -: 2379:   false,
        -:        -: 2380:   nir_type_invalid,
        -:        -: 2381:   NULL,
        -:        -: 2382:};
        -:        -: 2383:static const nir_search_expression replace35 = {
        -:        -: 2384:   { nir_search_value_expression, 0 },
        -:        -: 2385:   false,
        -:        -: 2386:   nir_op_fneg,
        -:        -: 2387:   { &replace35_0.value },
        -:        -: 2388:   NULL,
        -:        -: 2389:};
        -:        -: 2390:   
        -:        -: 2391:static const nir_search_variable search121_0_0 = {
        -:        -: 2392:   { nir_search_value_variable, 0 },
        -:        -: 2393:   0, /* a */
        -:        -: 2394:   false,
        -:        -: 2395:   nir_type_invalid,
        -:        -: 2396:   NULL,
        -:        -: 2397:};
        -:        -: 2398:static const nir_search_expression search121_0 = {
        -:        -: 2399:   { nir_search_value_expression, 0 },
        -:        -: 2400:   false,
        -:        -: 2401:   nir_op_b2f,
        -:        -: 2402:   { &search121_0_0.value },
        -:        -: 2403:   NULL,
        -:        -: 2404:};
        -:        -: 2405:
        -:        -: 2406:static const nir_search_variable search121_1_0 = {
        -:        -: 2407:   { nir_search_value_variable, 0 },
        -:        -: 2408:   1, /* b */
        -:        -: 2409:   false,
        -:        -: 2410:   nir_type_invalid,
        -:        -: 2411:   NULL,
        -:        -: 2412:};
        -:        -: 2413:static const nir_search_expression search121_1 = {
        -:        -: 2414:   { nir_search_value_expression, 0 },
        -:        -: 2415:   false,
        -:        -: 2416:   nir_op_b2f,
        -:        -: 2417:   { &search121_1_0.value },
        -:        -: 2418:   NULL,
        -:        -: 2419:};
        -:        -: 2420:static const nir_search_expression search121 = {
        -:        -: 2421:   { nir_search_value_expression, 0 },
        -:        -: 2422:   false,
        -:        -: 2423:   nir_op_fmul,
        -:        -: 2424:   { &search121_0.value, &search121_1.value },
        -:        -: 2425:   NULL,
        -:        -: 2426:};
        -:        -: 2427:   
        -:        -: 2428:static const nir_search_variable replace121_0_0 = {
        -:        -: 2429:   { nir_search_value_variable, 0 },
        -:        -: 2430:   0, /* a */
        -:        -: 2431:   false,
        -:        -: 2432:   nir_type_invalid,
        -:        -: 2433:   NULL,
        -:        -: 2434:};
        -:        -: 2435:
        -:        -: 2436:static const nir_search_variable replace121_0_1 = {
        -:        -: 2437:   { nir_search_value_variable, 0 },
        -:        -: 2438:   1, /* b */
        -:        -: 2439:   false,
        -:        -: 2440:   nir_type_invalid,
        -:        -: 2441:   NULL,
        -:        -: 2442:};
        -:        -: 2443:static const nir_search_expression replace121_0 = {
        -:        -: 2444:   { nir_search_value_expression, 0 },
        -:        -: 2445:   false,
        -:        -: 2446:   nir_op_iand,
        -:        -: 2447:   { &replace121_0_0.value, &replace121_0_1.value },
        -:        -: 2448:   NULL,
        -:        -: 2449:};
        -:        -: 2450:static const nir_search_expression replace121 = {
        -:        -: 2451:   { nir_search_value_expression, 0 },
        -:        -: 2452:   false,
        -:        -: 2453:   nir_op_b2f,
        -:        -: 2454:   { &replace121_0.value },
        -:        -: 2455:   NULL,
        -:        -: 2456:};
        -:        -: 2457:   
        -:        -: 2458:static const nir_search_variable search172_0_0 = {
        -:        -: 2459:   { nir_search_value_variable, 0 },
        -:        -: 2460:   0, /* a */
        -:        -: 2461:   false,
        -:        -: 2462:   nir_type_invalid,
        -:        -: 2463:   NULL,
        -:        -: 2464:};
        -:        -: 2465:static const nir_search_expression search172_0 = {
        -:        -: 2466:   { nir_search_value_expression, 0 },
        -:        -: 2467:   false,
        -:        -: 2468:   nir_op_fexp2,
        -:        -: 2469:   { &search172_0_0.value },
        -:        -: 2470:   NULL,
        -:        -: 2471:};
        -:        -: 2472:
        -:        -: 2473:static const nir_search_variable search172_1_0 = {
        -:        -: 2474:   { nir_search_value_variable, 0 },
        -:        -: 2475:   1, /* b */
        -:        -: 2476:   false,
        -:        -: 2477:   nir_type_invalid,
        -:        -: 2478:   NULL,
        -:        -: 2479:};
        -:        -: 2480:static const nir_search_expression search172_1 = {
        -:        -: 2481:   { nir_search_value_expression, 0 },
        -:        -: 2482:   false,
        -:        -: 2483:   nir_op_fexp2,
        -:        -: 2484:   { &search172_1_0.value },
        -:        -: 2485:   NULL,
        -:        -: 2486:};
        -:        -: 2487:static const nir_search_expression search172 = {
        -:        -: 2488:   { nir_search_value_expression, 0 },
        -:        -: 2489:   true,
        -:        -: 2490:   nir_op_fmul,
        -:        -: 2491:   { &search172_0.value, &search172_1.value },
        -:        -: 2492:   NULL,
        -:        -: 2493:};
        -:        -: 2494:   
        -:        -: 2495:static const nir_search_variable replace172_0_0 = {
        -:        -: 2496:   { nir_search_value_variable, 0 },
        -:        -: 2497:   0, /* a */
        -:        -: 2498:   false,
        -:        -: 2499:   nir_type_invalid,
        -:        -: 2500:   NULL,
        -:        -: 2501:};
        -:        -: 2502:
        -:        -: 2503:static const nir_search_variable replace172_0_1 = {
        -:        -: 2504:   { nir_search_value_variable, 0 },
        -:        -: 2505:   1, /* b */
        -:        -: 2506:   false,
        -:        -: 2507:   nir_type_invalid,
        -:        -: 2508:   NULL,
        -:        -: 2509:};
        -:        -: 2510:static const nir_search_expression replace172_0 = {
        -:        -: 2511:   { nir_search_value_expression, 0 },
        -:        -: 2512:   false,
        -:        -: 2513:   nir_op_fadd,
        -:        -: 2514:   { &replace172_0_0.value, &replace172_0_1.value },
        -:        -: 2515:   NULL,
        -:        -: 2516:};
        -:        -: 2517:static const nir_search_expression replace172 = {
        -:        -: 2518:   { nir_search_value_expression, 0 },
        -:        -: 2519:   false,
        -:        -: 2520:   nir_op_fexp2,
        -:        -: 2521:   { &replace172_0.value },
        -:        -: 2522:   NULL,
        -:        -: 2523:};
        -:        -: 2524:   
        -:        -: 2525:static const nir_search_variable search222_0_0 = {
        -:        -: 2526:   { nir_search_value_variable, 0 },
        -:        -: 2527:   0, /* a */
        -:        -: 2528:   false,
        -:        -: 2529:   nir_type_invalid,
        -:        -: 2530:   NULL,
        -:        -: 2531:};
        -:        -: 2532:static const nir_search_expression search222_0 = {
        -:        -: 2533:   { nir_search_value_expression, 0 },
        -:        -: 2534:   false,
        -:        -: 2535:   nir_op_fneg,
        -:        -: 2536:   { &search222_0_0.value },
        -:        -: 2537:   NULL,
        -:        -: 2538:};
        -:        -: 2539:
        -:        -: 2540:static const nir_search_variable search222_1 = {
        -:        -: 2541:   { nir_search_value_variable, 0 },
        -:        -: 2542:   1, /* b */
        -:        -: 2543:   false,
        -:        -: 2544:   nir_type_invalid,
        -:        -: 2545:   NULL,
        -:        -: 2546:};
        -:        -: 2547:static const nir_search_expression search222 = {
        -:        -: 2548:   { nir_search_value_expression, 0 },
        -:        -: 2549:   false,
        -:        -: 2550:   nir_op_fmul,
        -:        -: 2551:   { &search222_0.value, &search222_1.value },
        -:        -: 2552:   NULL,
        -:        -: 2553:};
        -:        -: 2554:   
        -:        -: 2555:static const nir_search_variable replace222_0_0 = {
        -:        -: 2556:   { nir_search_value_variable, 0 },
        -:        -: 2557:   0, /* a */
        -:        -: 2558:   false,
        -:        -: 2559:   nir_type_invalid,
        -:        -: 2560:   NULL,
        -:        -: 2561:};
        -:        -: 2562:
        -:        -: 2563:static const nir_search_variable replace222_0_1 = {
        -:        -: 2564:   { nir_search_value_variable, 0 },
        -:        -: 2565:   1, /* b */
        -:        -: 2566:   false,
        -:        -: 2567:   nir_type_invalid,
        -:        -: 2568:   NULL,
        -:        -: 2569:};
        -:        -: 2570:static const nir_search_expression replace222_0 = {
        -:        -: 2571:   { nir_search_value_expression, 0 },
        -:        -: 2572:   false,
        -:        -: 2573:   nir_op_fmul,
        -:        -: 2574:   { &replace222_0_0.value, &replace222_0_1.value },
        -:        -: 2575:   NULL,
        -:        -: 2576:};
        -:        -: 2577:static const nir_search_expression replace222 = {
        -:        -: 2578:   { nir_search_value_expression, 0 },
        -:        -: 2579:   false,
        -:        -: 2580:   nir_op_fneg,
        -:        -: 2581:   { &replace222_0.value },
        -:        -: 2582:   NULL,
        -:        -: 2583:};
        -:        -: 2584:   
        -:        -: 2585:static const nir_search_variable search224_0 = {
        -:        -: 2586:   { nir_search_value_variable, 0 },
        -:        -: 2587:   0, /* a */
        -:        -: 2588:   true,
        -:        -: 2589:   nir_type_invalid,
        -:        -: 2590:   NULL,
        -:        -: 2591:};
        -:        -: 2592:
        -:        -: 2593:static const nir_search_variable search224_1_0 = {
        -:        -: 2594:   { nir_search_value_variable, 0 },
        -:        -: 2595:   1, /* b */
        -:        -: 2596:   false,
        -:        -: 2597:   nir_type_invalid,
        -:        -: 2598:   NULL,
        -:        -: 2599:};
        -:        -: 2600:
        -:        -: 2601:static const nir_search_variable search224_1_1 = {
        -:        -: 2602:   { nir_search_value_variable, 0 },
        -:        -: 2603:   2, /* c */
        -:        -: 2604:   true,
        -:        -: 2605:   nir_type_invalid,
        -:        -: 2606:   NULL,
        -:        -: 2607:};
        -:        -: 2608:static const nir_search_expression search224_1 = {
        -:        -: 2609:   { nir_search_value_expression, 0 },
        -:        -: 2610:   false,
        -:        -: 2611:   nir_op_fmul,
        -:        -: 2612:   { &search224_1_0.value, &search224_1_1.value },
        -:        -: 2613:   NULL,
        -:        -: 2614:};
        -:        -: 2615:static const nir_search_expression search224 = {
        -:        -: 2616:   { nir_search_value_expression, 0 },
        -:        -: 2617:   true,
        -:        -: 2618:   nir_op_fmul,
        -:        -: 2619:   { &search224_0.value, &search224_1.value },
        -:        -: 2620:   NULL,
        -:        -: 2621:};
        -:        -: 2622:   
        -:        -: 2623:static const nir_search_variable replace224_0_0 = {
        -:        -: 2624:   { nir_search_value_variable, 0 },
        -:        -: 2625:   0, /* a */
        -:        -: 2626:   false,
        -:        -: 2627:   nir_type_invalid,
        -:        -: 2628:   NULL,
        -:        -: 2629:};
        -:        -: 2630:
        -:        -: 2631:static const nir_search_variable replace224_0_1 = {
        -:        -: 2632:   { nir_search_value_variable, 0 },
        -:        -: 2633:   2, /* c */
        -:        -: 2634:   false,
        -:        -: 2635:   nir_type_invalid,
        -:        -: 2636:   NULL,
        -:        -: 2637:};
        -:        -: 2638:static const nir_search_expression replace224_0 = {
        -:        -: 2639:   { nir_search_value_expression, 0 },
        -:        -: 2640:   false,
        -:        -: 2641:   nir_op_fmul,
        -:        -: 2642:   { &replace224_0_0.value, &replace224_0_1.value },
        -:        -: 2643:   NULL,
        -:        -: 2644:};
        -:        -: 2645:
        -:        -: 2646:static const nir_search_variable replace224_1 = {
        -:        -: 2647:   { nir_search_value_variable, 0 },
        -:        -: 2648:   1, /* b */
        -:        -: 2649:   false,
        -:        -: 2650:   nir_type_invalid,
        -:        -: 2651:   NULL,
        -:        -: 2652:};
        -:        -: 2653:static const nir_search_expression replace224 = {
        -:        -: 2654:   { nir_search_value_expression, 0 },
        -:        -: 2655:   false,
        -:        -: 2656:   nir_op_fmul,
        -:        -: 2657:   { &replace224_0.value, &replace224_1.value },
        -:        -: 2658:   NULL,
        -:        -: 2659:};
        -:        -: 2660:
        -:        -: 2661:static const struct transform nir_opt_algebraic_fmul_xforms[] = {
        -:        -: 2662:   { &search29, &replace29.value, 0 },
        -:        -: 2663:   { &search33, &replace33.value, 0 },
        -:        -: 2664:   { &search35, &replace35.value, 0 },
        -:        -: 2665:   { &search121, &replace121.value, 0 },
        -:        -: 2666:   { &search172, &replace172.value, 0 },
        -:        -: 2667:   { &search222, &replace222.value, 0 },
        -:        -: 2668:   { &search224, &replace224.value, 0 },
        -:        -: 2669:};
        -:        -: 2670:   
        -:        -: 2671:static const nir_search_variable search201_0_0 = {
        -:        -: 2672:   { nir_search_value_variable, 0 },
        -:        -: 2673:   0, /* a */
        -:        -: 2674:   false,
        -:        -: 2675:   nir_type_invalid,
        -:        -: 2676:   NULL,
        -:        -: 2677:};
        -:        -: 2678:
        -:        -: 2679:static const nir_search_variable search201_0_1 = {
        -:        -: 2680:   { nir_search_value_variable, 0 },
        -:        -: 2681:   1, /* b */
        -:        -: 2682:   false,
        -:        -: 2683:   nir_type_invalid,
        -:        -: 2684:   NULL,
        -:        -: 2685:};
        -:        -: 2686:static const nir_search_expression search201_0 = {
        -:        -: 2687:   { nir_search_value_expression, 0 },
        -:        -: 2688:   false,
        -:        -: 2689:   nir_op_pack_64_2x32_split,
        -:        -: 2690:   { &search201_0_0.value, &search201_0_1.value },
        -:        -: 2691:   NULL,
        -:        -: 2692:};
        -:        -: 2693:static const nir_search_expression search201 = {
        -:        -: 2694:   { nir_search_value_expression, 0 },
        -:        -: 2695:   false,
        -:        -: 2696:   nir_op_unpack_64_2x32_split_x,
        -:        -: 2697:   { &search201_0.value },
        -:        -: 2698:   NULL,
        -:        -: 2699:};
        -:        -: 2700:   
        -:        -: 2701:static const nir_search_variable replace201 = {
        -:        -: 2702:   { nir_search_value_variable, 0 },
        -:        -: 2703:   0, /* a */
        -:        -: 2704:   false,
        -:        -: 2705:   nir_type_invalid,
        -:        -: 2706:   NULL,
        -:        -: 2707:};
        -:        -: 2708:
        -:        -: 2709:static const struct transform nir_opt_algebraic_unpack_64_2x32_split_x_xforms[] = {
        -:        -: 2710:   { &search201, &replace201.value, 0 },
        -:        -: 2711:};
        -:        -: 2712:   
        -:        -: 2713:static const nir_search_constant search37_0 = {
        -:        -: 2714:   { nir_search_value_constant, 0 },
        -:        -: 2715:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 2716:};
        -:        -: 2717:
        -:        -: 2718:static const nir_search_variable search37_1 = {
        -:        -: 2719:   { nir_search_value_variable, 0 },
        -:        -: 2720:   0, /* a */
        -:        -: 2721:   false,
        -:        -: 2722:   nir_type_invalid,
        -:        -: 2723:   NULL,
        -:        -: 2724:};
        -:        -: 2725:
        -:        -: 2726:static const nir_search_variable search37_2 = {
        -:        -: 2727:   { nir_search_value_variable, 0 },
        -:        -: 2728:   1, /* b */
        -:        -: 2729:   false,
        -:        -: 2730:   nir_type_invalid,
        -:        -: 2731:   NULL,
        -:        -: 2732:};
        -:        -: 2733:static const nir_search_expression search37 = {
        -:        -: 2734:   { nir_search_value_expression, 0 },
        -:        -: 2735:   true,
        -:        -: 2736:   nir_op_ffma,
        -:        -: 2737:   { &search37_0.value, &search37_1.value, &search37_2.value },
        -:        -: 2738:   NULL,
        -:        -: 2739:};
        -:        -: 2740:   
        -:        -: 2741:static const nir_search_variable replace37 = {
        -:        -: 2742:   { nir_search_value_variable, 0 },
        -:        -: 2743:   1, /* b */
        -:        -: 2744:   false,
        -:        -: 2745:   nir_type_invalid,
        -:        -: 2746:   NULL,
        -:        -: 2747:};
        -:        -: 2748:   
        -:        -: 2749:static const nir_search_variable search38_0 = {
        -:        -: 2750:   { nir_search_value_variable, 0 },
        -:        -: 2751:   0, /* a */
        -:        -: 2752:   false,
        -:        -: 2753:   nir_type_invalid,
        -:        -: 2754:   NULL,
        -:        -: 2755:};
        -:        -: 2756:
        -:        -: 2757:static const nir_search_constant search38_1 = {
        -:        -: 2758:   { nir_search_value_constant, 0 },
        -:        -: 2759:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 2760:};
        -:        -: 2761:
        -:        -: 2762:static const nir_search_variable search38_2 = {
        -:        -: 2763:   { nir_search_value_variable, 0 },
        -:        -: 2764:   1, /* b */
        -:        -: 2765:   false,
        -:        -: 2766:   nir_type_invalid,
        -:        -: 2767:   NULL,
        -:        -: 2768:};
        -:        -: 2769:static const nir_search_expression search38 = {
        -:        -: 2770:   { nir_search_value_expression, 0 },
        -:        -: 2771:   true,
        -:        -: 2772:   nir_op_ffma,
        -:        -: 2773:   { &search38_0.value, &search38_1.value, &search38_2.value },
        -:        -: 2774:   NULL,
        -:        -: 2775:};
        -:        -: 2776:   
        -:        -: 2777:static const nir_search_variable replace38 = {
        -:        -: 2778:   { nir_search_value_variable, 0 },
        -:        -: 2779:   1, /* b */
        -:        -: 2780:   false,
        -:        -: 2781:   nir_type_invalid,
        -:        -: 2782:   NULL,
        -:        -: 2783:};
        -:        -: 2784:   
        -:        -: 2785:static const nir_search_variable search39_0 = {
        -:        -: 2786:   { nir_search_value_variable, 0 },
        -:        -: 2787:   0, /* a */
        -:        -: 2788:   false,
        -:        -: 2789:   nir_type_invalid,
        -:        -: 2790:   NULL,
        -:        -: 2791:};
        -:        -: 2792:
        -:        -: 2793:static const nir_search_variable search39_1 = {
        -:        -: 2794:   { nir_search_value_variable, 0 },
        -:        -: 2795:   1, /* b */
        -:        -: 2796:   false,
        -:        -: 2797:   nir_type_invalid,
        -:        -: 2798:   NULL,
        -:        -: 2799:};
        -:        -: 2800:
        -:        -: 2801:static const nir_search_constant search39_2 = {
        -:        -: 2802:   { nir_search_value_constant, 0 },
        -:        -: 2803:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 2804:};
        -:        -: 2805:static const nir_search_expression search39 = {
        -:        -: 2806:   { nir_search_value_expression, 0 },
        -:        -: 2807:   true,
        -:        -: 2808:   nir_op_ffma,
        -:        -: 2809:   { &search39_0.value, &search39_1.value, &search39_2.value },
        -:        -: 2810:   NULL,
        -:        -: 2811:};
        -:        -: 2812:   
        -:        -: 2813:static const nir_search_variable replace39_0 = {
        -:        -: 2814:   { nir_search_value_variable, 0 },
        -:        -: 2815:   0, /* a */
        -:        -: 2816:   false,
        -:        -: 2817:   nir_type_invalid,
        -:        -: 2818:   NULL,
        -:        -: 2819:};
        -:        -: 2820:
        -:        -: 2821:static const nir_search_variable replace39_1 = {
        -:        -: 2822:   { nir_search_value_variable, 0 },
        -:        -: 2823:   1, /* b */
        -:        -: 2824:   false,
        -:        -: 2825:   nir_type_invalid,
        -:        -: 2826:   NULL,
        -:        -: 2827:};
        -:        -: 2828:static const nir_search_expression replace39 = {
        -:        -: 2829:   { nir_search_value_expression, 0 },
        -:        -: 2830:   false,
        -:        -: 2831:   nir_op_fmul,
        -:        -: 2832:   { &replace39_0.value, &replace39_1.value },
        -:        -: 2833:   NULL,
        -:        -: 2834:};
        -:        -: 2835:   
        -:        -: 2836:static const nir_search_variable search40_0 = {
        -:        -: 2837:   { nir_search_value_variable, 0 },
        -:        -: 2838:   0, /* a */
        -:        -: 2839:   false,
        -:        -: 2840:   nir_type_invalid,
        -:        -: 2841:   NULL,
        -:        -: 2842:};
        -:        -: 2843:
        -:        -: 2844:static const nir_search_constant search40_1 = {
        -:        -: 2845:   { nir_search_value_constant, 0 },
        -:        -: 2846:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 2847:};
        -:        -: 2848:
        -:        -: 2849:static const nir_search_variable search40_2 = {
        -:        -: 2850:   { nir_search_value_variable, 0 },
        -:        -: 2851:   1, /* b */
        -:        -: 2852:   false,
        -:        -: 2853:   nir_type_invalid,
        -:        -: 2854:   NULL,
        -:        -: 2855:};
        -:        -: 2856:static const nir_search_expression search40 = {
        -:        -: 2857:   { nir_search_value_expression, 0 },
        -:        -: 2858:   false,
        -:        -: 2859:   nir_op_ffma,
        -:        -: 2860:   { &search40_0.value, &search40_1.value, &search40_2.value },
        -:        -: 2861:   NULL,
        -:        -: 2862:};
        -:        -: 2863:   
        -:        -: 2864:static const nir_search_variable replace40_0 = {
        -:        -: 2865:   { nir_search_value_variable, 0 },
        -:        -: 2866:   0, /* a */
        -:        -: 2867:   false,
        -:        -: 2868:   nir_type_invalid,
        -:        -: 2869:   NULL,
        -:        -: 2870:};
        -:        -: 2871:
        -:        -: 2872:static const nir_search_variable replace40_1 = {
        -:        -: 2873:   { nir_search_value_variable, 0 },
        -:        -: 2874:   1, /* b */
        -:        -: 2875:   false,
        -:        -: 2876:   nir_type_invalid,
        -:        -: 2877:   NULL,
        -:        -: 2878:};
        -:        -: 2879:static const nir_search_expression replace40 = {
        -:        -: 2880:   { nir_search_value_expression, 0 },
        -:        -: 2881:   false,
        -:        -: 2882:   nir_op_fadd,
        -:        -: 2883:   { &replace40_0.value, &replace40_1.value },
        -:        -: 2884:   NULL,
        -:        -: 2885:};
        -:        -: 2886:   
        -:        -: 2887:static const nir_search_constant search41_0 = {
        -:        -: 2888:   { nir_search_value_constant, 0 },
        -:        -: 2889:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 2890:};
        -:        -: 2891:
        -:        -: 2892:static const nir_search_variable search41_1 = {
        -:        -: 2893:   { nir_search_value_variable, 0 },
        -:        -: 2894:   0, /* a */
        -:        -: 2895:   false,
        -:        -: 2896:   nir_type_invalid,
        -:        -: 2897:   NULL,
        -:        -: 2898:};
        -:        -: 2899:
        -:        -: 2900:static const nir_search_variable search41_2 = {
        -:        -: 2901:   { nir_search_value_variable, 0 },
        -:        -: 2902:   1, /* b */
        -:        -: 2903:   false,
        -:        -: 2904:   nir_type_invalid,
        -:        -: 2905:   NULL,
        -:        -: 2906:};
        -:        -: 2907:static const nir_search_expression search41 = {
        -:        -: 2908:   { nir_search_value_expression, 0 },
        -:        -: 2909:   false,
        -:        -: 2910:   nir_op_ffma,
        -:        -: 2911:   { &search41_0.value, &search41_1.value, &search41_2.value },
        -:        -: 2912:   NULL,
        -:        -: 2913:};
        -:        -: 2914:   
        -:        -: 2915:static const nir_search_variable replace41_0 = {
        -:        -: 2916:   { nir_search_value_variable, 0 },
        -:        -: 2917:   0, /* a */
        -:        -: 2918:   false,
        -:        -: 2919:   nir_type_invalid,
        -:        -: 2920:   NULL,
        -:        -: 2921:};
        -:        -: 2922:
        -:        -: 2923:static const nir_search_variable replace41_1 = {
        -:        -: 2924:   { nir_search_value_variable, 0 },
        -:        -: 2925:   1, /* b */
        -:        -: 2926:   false,
        -:        -: 2927:   nir_type_invalid,
        -:        -: 2928:   NULL,
        -:        -: 2929:};
        -:        -: 2930:static const nir_search_expression replace41 = {
        -:        -: 2931:   { nir_search_value_expression, 0 },
        -:        -: 2932:   false,
        -:        -: 2933:   nir_op_fadd,
        -:        -: 2934:   { &replace41_0.value, &replace41_1.value },
        -:        -: 2935:   NULL,
        -:        -: 2936:};
        -:        -: 2937:   
        -:        -: 2938:static const nir_search_variable search57_0 = {
        -:        -: 2939:   { nir_search_value_variable, 0 },
        -:        -: 2940:   0, /* a */
        -:        -: 2941:   false,
        -:        -: 2942:   nir_type_invalid,
        -:        -: 2943:   NULL,
        -:        -: 2944:};
        -:        -: 2945:
        -:        -: 2946:static const nir_search_variable search57_1 = {
        -:        -: 2947:   { nir_search_value_variable, 0 },
        -:        -: 2948:   1, /* b */
        -:        -: 2949:   false,
        -:        -: 2950:   nir_type_invalid,
        -:        -: 2951:   NULL,
        -:        -: 2952:};
        -:        -: 2953:
        -:        -: 2954:static const nir_search_variable search57_2 = {
        -:        -: 2955:   { nir_search_value_variable, 0 },
        -:        -: 2956:   2, /* c */
        -:        -: 2957:   false,
        -:        -: 2958:   nir_type_invalid,
        -:        -: 2959:   NULL,
        -:        -: 2960:};
        -:        -: 2961:static const nir_search_expression search57 = {
        -:        -: 2962:   { nir_search_value_expression, 0 },
        -:        -: 2963:   false,
        -:        -: 2964:   nir_op_ffma,
        -:        -: 2965:   { &search57_0.value, &search57_1.value, &search57_2.value },
        -:        -: 2966:   NULL,
        -:        -: 2967:};
        -:        -: 2968:   
        -:        -: 2969:static const nir_search_variable replace57_0_0 = {
        -:        -: 2970:   { nir_search_value_variable, 0 },
        -:        -: 2971:   0, /* a */
        -:        -: 2972:   false,
        -:        -: 2973:   nir_type_invalid,
        -:        -: 2974:   NULL,
        -:        -: 2975:};
        -:        -: 2976:
        -:        -: 2977:static const nir_search_variable replace57_0_1 = {
        -:        -: 2978:   { nir_search_value_variable, 0 },
        -:        -: 2979:   1, /* b */
        -:        -: 2980:   false,
        -:        -: 2981:   nir_type_invalid,
        -:        -: 2982:   NULL,
        -:        -: 2983:};
        -:        -: 2984:static const nir_search_expression replace57_0 = {
        -:        -: 2985:   { nir_search_value_expression, 0 },
        -:        -: 2986:   false,
        -:        -: 2987:   nir_op_fmul,
        -:        -: 2988:   { &replace57_0_0.value, &replace57_0_1.value },
        -:        -: 2989:   NULL,
        -:        -: 2990:};
        -:        -: 2991:
        -:        -: 2992:static const nir_search_variable replace57_1 = {
        -:        -: 2993:   { nir_search_value_variable, 0 },
        -:        -: 2994:   2, /* c */
        -:        -: 2995:   false,
        -:        -: 2996:   nir_type_invalid,
        -:        -: 2997:   NULL,
        -:        -: 2998:};
        -:        -: 2999:static const nir_search_expression replace57 = {
        -:        -: 3000:   { nir_search_value_expression, 0 },
        -:        -: 3001:   false,
        -:        -: 3002:   nir_op_fadd,
        -:        -: 3003:   { &replace57_0.value, &replace57_1.value },
        -:        -: 3004:   NULL,
        -:        -: 3005:};
        -:        -: 3006:
        -:        -: 3007:static const struct transform nir_opt_algebraic_ffma_xforms[] = {
        -:        -: 3008:   { &search37, &replace37.value, 0 },
        -:        -: 3009:   { &search38, &replace38.value, 0 },
        -:        -: 3010:   { &search39, &replace39.value, 0 },
        -:        -: 3011:   { &search40, &replace40.value, 0 },
        -:        -: 3012:   { &search41, &replace41.value, 0 },
        -:        -: 3013:   { &search57, &replace57.value, 7 },
        -:        -: 3014:};
        -:        -: 3015:   
        -:        -: 3016:static const nir_search_variable search82_0 = {
        -:        -: 3017:   { nir_search_value_variable, 0 },
        -:        -: 3018:   0, /* a */
        -:        -: 3019:   false,
        -:        -: 3020:   nir_type_invalid,
        -:        -: 3021:   NULL,
        -:        -: 3022:};
        -:        -: 3023:
        -:        -: 3024:static const nir_search_variable search82_1 = {
        -:        -: 3025:   { nir_search_value_variable, 0 },
        -:        -: 3026:   0, /* a */
        -:        -: 3027:   false,
        -:        -: 3028:   nir_type_invalid,
        -:        -: 3029:   NULL,
        -:        -: 3030:};
        -:        -: 3031:static const nir_search_expression search82 = {
        -:        -: 3032:   { nir_search_value_expression, 0 },
        -:        -: 3033:   false,
        -:        -: 3034:   nir_op_umin,
        -:        -: 3035:   { &search82_0.value, &search82_1.value },
        -:        -: 3036:   NULL,
        -:        -: 3037:};
        -:        -: 3038:   
        -:        -: 3039:static const nir_search_variable replace82 = {
        -:        -: 3040:   { nir_search_value_variable, 0 },
        -:        -: 3041:   0, /* a */
        -:        -: 3042:   false,
        -:        -: 3043:   nir_type_invalid,
        -:        -: 3044:   NULL,
        -:        -: 3045:};
        -:        -: 3046:   
        -:        -: 3047:static const nir_search_variable search102_0_0_0_0 = {
        -:        -: 3048:   { nir_search_value_variable, 0 },
        -:        -: 3049:   0, /* a */
        -:        -: 3050:   false,
        -:        -: 3051:   nir_type_invalid,
        -:        -: 3052:   NULL,
        -:        -: 3053:};
        -:        -: 3054:
        -:        -: 3055:static const nir_search_variable search102_0_0_0_1 = {
        -:        -: 3056:   { nir_search_value_variable, 0 },
        -:        -: 3057:   1, /* b */
        -:        -: 3058:   false,
        -:        -: 3059:   nir_type_invalid,
        -:        -: 3060:   NULL,
        -:        -: 3061:};
        -:        -: 3062:static const nir_search_expression search102_0_0_0 = {
        -:        -: 3063:   { nir_search_value_expression, 0 },
        -:        -: 3064:   false,
        -:        -: 3065:   nir_op_umax,
        -:        -: 3066:   { &search102_0_0_0_0.value, &search102_0_0_0_1.value },
        -:        -: 3067:   NULL,
        -:        -: 3068:};
        -:        -: 3069:
        -:        -: 3070:static const nir_search_variable search102_0_0_1 = {
        -:        -: 3071:   { nir_search_value_variable, 0 },
        -:        -: 3072:   2, /* c */
        -:        -: 3073:   false,
        -:        -: 3074:   nir_type_invalid,
        -:        -: 3075:   NULL,
        -:        -: 3076:};
        -:        -: 3077:static const nir_search_expression search102_0_0 = {
        -:        -: 3078:   { nir_search_value_expression, 0 },
        -:        -: 3079:   false,
        -:        -: 3080:   nir_op_umin,
        -:        -: 3081:   { &search102_0_0_0.value, &search102_0_0_1.value },
        -:        -: 3082:   NULL,
        -:        -: 3083:};
        -:        -: 3084:
        -:        -: 3085:static const nir_search_variable search102_0_1 = {
        -:        -: 3086:   { nir_search_value_variable, 0 },
        -:        -: 3087:   1, /* b */
        -:        -: 3088:   false,
        -:        -: 3089:   nir_type_invalid,
        -:        -: 3090:   NULL,
        -:        -: 3091:};
        -:        -: 3092:static const nir_search_expression search102_0 = {
        -:        -: 3093:   { nir_search_value_expression, 0 },
        -:        -: 3094:   false,
        -:        -: 3095:   nir_op_umax,
        -:        -: 3096:   { &search102_0_0.value, &search102_0_1.value },
        -:        -: 3097:   NULL,
        -:        -: 3098:};
        -:        -: 3099:
        -:        -: 3100:static const nir_search_variable search102_1 = {
        -:        -: 3101:   { nir_search_value_variable, 0 },
        -:        -: 3102:   2, /* c */
        -:        -: 3103:   false,
        -:        -: 3104:   nir_type_invalid,
        -:        -: 3105:   NULL,
        -:        -: 3106:};
        -:        -: 3107:static const nir_search_expression search102 = {
        -:        -: 3108:   { nir_search_value_expression, 0 },
        -:        -: 3109:   false,
        -:        -: 3110:   nir_op_umin,
        -:        -: 3111:   { &search102_0.value, &search102_1.value },
        -:        -: 3112:   NULL,
        -:        -: 3113:};
        -:        -: 3114:   
        -:        -: 3115:static const nir_search_variable replace102_0_0 = {
        -:        -: 3116:   { nir_search_value_variable, 0 },
        -:        -: 3117:   0, /* a */
        -:        -: 3118:   false,
        -:        -: 3119:   nir_type_invalid,
        -:        -: 3120:   NULL,
        -:        -: 3121:};
        -:        -: 3122:
        -:        -: 3123:static const nir_search_variable replace102_0_1 = {
        -:        -: 3124:   { nir_search_value_variable, 0 },
        -:        -: 3125:   1, /* b */
        -:        -: 3126:   false,
        -:        -: 3127:   nir_type_invalid,
        -:        -: 3128:   NULL,
        -:        -: 3129:};
        -:        -: 3130:static const nir_search_expression replace102_0 = {
        -:        -: 3131:   { nir_search_value_expression, 0 },
        -:        -: 3132:   false,
        -:        -: 3133:   nir_op_umax,
        -:        -: 3134:   { &replace102_0_0.value, &replace102_0_1.value },
        -:        -: 3135:   NULL,
        -:        -: 3136:};
        -:        -: 3137:
        -:        -: 3138:static const nir_search_variable replace102_1 = {
        -:        -: 3139:   { nir_search_value_variable, 0 },
        -:        -: 3140:   2, /* c */
        -:        -: 3141:   false,
        -:        -: 3142:   nir_type_invalid,
        -:        -: 3143:   NULL,
        -:        -: 3144:};
        -:        -: 3145:static const nir_search_expression replace102 = {
        -:        -: 3146:   { nir_search_value_expression, 0 },
        -:        -: 3147:   false,
        -:        -: 3148:   nir_op_umin,
        -:        -: 3149:   { &replace102_0.value, &replace102_1.value },
        -:        -: 3150:   NULL,
        -:        -: 3151:};
        -:        -: 3152:
        -:        -: 3153:static const struct transform nir_opt_algebraic_umin_xforms[] = {
        -:        -: 3154:   { &search82, &replace82.value, 0 },
        -:        -: 3155:   { &search102, &replace102.value, 0 },
        -:        -: 3156:};
        -:        -: 3157:   
        -:        -: 3158:static const nir_search_variable search83_0 = {
        -:        -: 3159:   { nir_search_value_variable, 0 },
        -:        -: 3160:   0, /* a */
        -:        -: 3161:   false,
        -:        -: 3162:   nir_type_invalid,
        -:        -: 3163:   NULL,
        -:        -: 3164:};
        -:        -: 3165:
        -:        -: 3166:static const nir_search_variable search83_1 = {
        -:        -: 3167:   { nir_search_value_variable, 0 },
        -:        -: 3168:   0, /* a */
        -:        -: 3169:   false,
        -:        -: 3170:   nir_type_invalid,
        -:        -: 3171:   NULL,
        -:        -: 3172:};
        -:        -: 3173:static const nir_search_expression search83 = {
        -:        -: 3174:   { nir_search_value_expression, 0 },
        -:        -: 3175:   false,
        -:        -: 3176:   nir_op_umax,
        -:        -: 3177:   { &search83_0.value, &search83_1.value },
        -:        -: 3178:   NULL,
        -:        -: 3179:};
        -:        -: 3180:   
        -:        -: 3181:static const nir_search_variable replace83 = {
        -:        -: 3182:   { nir_search_value_variable, 0 },
        -:        -: 3183:   0, /* a */
        -:        -: 3184:   false,
        -:        -: 3185:   nir_type_invalid,
        -:        -: 3186:   NULL,
        -:        -: 3187:};
        -:        -: 3188:
        -:        -: 3189:static const struct transform nir_opt_algebraic_umax_xforms[] = {
        -:        -: 3190:   { &search83, &replace83.value, 0 },
        -:        -: 3191:};
        -:        -: 3192:   
        -:        -: 3193:static const nir_search_variable search73_0_0 = {
        -:        -: 3194:   { nir_search_value_variable, 0 },
        -:        -: 3195:   0, /* b */
        -:        -: 3196:   false,
        -:        -: 3197:   nir_type_invalid,
        -:        -: 3198:   NULL,
        -:        -: 3199:};
        -:        -: 3200:
        -:        -: 3201:static const nir_search_variable search73_0_1 = {
        -:        -: 3202:   { nir_search_value_variable, 0 },
        -:        -: 3203:   1, /* a */
        -:        -: 3204:   false,
        -:        -: 3205:   nir_type_invalid,
        -:        -: 3206:   NULL,
        -:        -: 3207:};
        -:        -: 3208:static const nir_search_expression search73_0 = {
        -:        -: 3209:   { nir_search_value_expression, 0 },
        -:        -: 3210:   false,
        -:        -: 3211:   nir_op_flt,
        -:        -: 3212:   { &search73_0_0.value, &search73_0_1.value },
        -:        -: 3213:   NULL,
        -:        -: 3214:};
        -:        -: 3215:
        -:        -: 3216:static const nir_search_variable search73_1 = {
        -:        -: 3217:   { nir_search_value_variable, 0 },
        -:        -: 3218:   0, /* b */
        -:        -: 3219:   false,
        -:        -: 3220:   nir_type_invalid,
        -:        -: 3221:   NULL,
        -:        -: 3222:};
        -:        -: 3223:
        -:        -: 3224:static const nir_search_variable search73_2 = {
        -:        -: 3225:   { nir_search_value_variable, 0 },
        -:        -: 3226:   1, /* a */
        -:        -: 3227:   false,
        -:        -: 3228:   nir_type_invalid,
        -:        -: 3229:   NULL,
        -:        -: 3230:};
        -:        -: 3231:static const nir_search_expression search73 = {
        -:        -: 3232:   { nir_search_value_expression, 0 },
        -:        -: 3233:   false,
        -:        -: 3234:   nir_op_bcsel,
        -:        -: 3235:   { &search73_0.value, &search73_1.value, &search73_2.value },
        -:        -: 3236:   NULL,
        -:        -: 3237:};
        -:        -: 3238:   
        -:        -: 3239:static const nir_search_variable replace73_0 = {
        -:        -: 3240:   { nir_search_value_variable, 0 },
        -:        -: 3241:   1, /* a */
        -:        -: 3242:   false,
        -:        -: 3243:   nir_type_invalid,
        -:        -: 3244:   NULL,
        -:        -: 3245:};
        -:        -: 3246:
        -:        -: 3247:static const nir_search_variable replace73_1 = {
        -:        -: 3248:   { nir_search_value_variable, 0 },
        -:        -: 3249:   0, /* b */
        -:        -: 3250:   false,
        -:        -: 3251:   nir_type_invalid,
        -:        -: 3252:   NULL,
        -:        -: 3253:};
        -:        -: 3254:static const nir_search_expression replace73 = {
        -:        -: 3255:   { nir_search_value_expression, 0 },
        -:        -: 3256:   false,
        -:        -: 3257:   nir_op_fmin,
        -:        -: 3258:   { &replace73_0.value, &replace73_1.value },
        -:        -: 3259:   NULL,
        -:        -: 3260:};
        -:        -: 3261:   
        -:        -: 3262:static const nir_search_variable search74_0_0 = {
        -:        -: 3263:   { nir_search_value_variable, 0 },
        -:        -: 3264:   0, /* a */
        -:        -: 3265:   false,
        -:        -: 3266:   nir_type_invalid,
        -:        -: 3267:   NULL,
        -:        -: 3268:};
        -:        -: 3269:
        -:        -: 3270:static const nir_search_variable search74_0_1 = {
        -:        -: 3271:   { nir_search_value_variable, 0 },
        -:        -: 3272:   1, /* b */
        -:        -: 3273:   false,
        -:        -: 3274:   nir_type_invalid,
        -:        -: 3275:   NULL,
        -:        -: 3276:};
        -:        -: 3277:static const nir_search_expression search74_0 = {
        -:        -: 3278:   { nir_search_value_expression, 0 },
        -:        -: 3279:   false,
        -:        -: 3280:   nir_op_flt,
        -:        -: 3281:   { &search74_0_0.value, &search74_0_1.value },
        -:        -: 3282:   NULL,
        -:        -: 3283:};
        -:        -: 3284:
        -:        -: 3285:static const nir_search_variable search74_1 = {
        -:        -: 3286:   { nir_search_value_variable, 0 },
        -:        -: 3287:   1, /* b */
        -:        -: 3288:   false,
        -:        -: 3289:   nir_type_invalid,
        -:        -: 3290:   NULL,
        -:        -: 3291:};
        -:        -: 3292:
        -:        -: 3293:static const nir_search_variable search74_2 = {
        -:        -: 3294:   { nir_search_value_variable, 0 },
        -:        -: 3295:   0, /* a */
        -:        -: 3296:   false,
        -:        -: 3297:   nir_type_invalid,
        -:        -: 3298:   NULL,
        -:        -: 3299:};
        -:        -: 3300:static const nir_search_expression search74 = {
        -:        -: 3301:   { nir_search_value_expression, 0 },
        -:        -: 3302:   false,
        -:        -: 3303:   nir_op_bcsel,
        -:        -: 3304:   { &search74_0.value, &search74_1.value, &search74_2.value },
        -:        -: 3305:   NULL,
        -:        -: 3306:};
        -:        -: 3307:   
        -:        -: 3308:static const nir_search_variable replace74_0 = {
        -:        -: 3309:   { nir_search_value_variable, 0 },
        -:        -: 3310:   0, /* a */
        -:        -: 3311:   false,
        -:        -: 3312:   nir_type_invalid,
        -:        -: 3313:   NULL,
        -:        -: 3314:};
        -:        -: 3315:
        -:        -: 3316:static const nir_search_variable replace74_1 = {
        -:        -: 3317:   { nir_search_value_variable, 0 },
        -:        -: 3318:   1, /* b */
        -:        -: 3319:   false,
        -:        -: 3320:   nir_type_invalid,
        -:        -: 3321:   NULL,
        -:        -: 3322:};
        -:        -: 3323:static const nir_search_expression replace74 = {
        -:        -: 3324:   { nir_search_value_expression, 0 },
        -:        -: 3325:   false,
        -:        -: 3326:   nir_op_fmax,
        -:        -: 3327:   { &replace74_0.value, &replace74_1.value },
        -:        -: 3328:   NULL,
        -:        -: 3329:};
        -:        -: 3330:   
        -:        -: 3331:static const nir_search_variable search75_0_0 = {
        -:        -: 3332:   { nir_search_value_variable, 0 },
        -:        -: 3333:   0, /* a */
        -:        -: 3334:   false,
        -:        -: 3335:   nir_type_invalid,
        -:        -: 3336:   NULL,
        -:        -: 3337:};
        -:        -: 3338:static const nir_search_expression search75_0 = {
        -:        -: 3339:   { nir_search_value_expression, 0 },
        -:        -: 3340:   false,
        -:        -: 3341:   nir_op_inot,
        -:        -: 3342:   { &search75_0_0.value },
        -:        -: 3343:   NULL,
        -:        -: 3344:};
        -:        -: 3345:
        -:        -: 3346:static const nir_search_variable search75_1 = {
        -:        -: 3347:   { nir_search_value_variable, 0 },
        -:        -: 3348:   1, /* b */
        -:        -: 3349:   false,
        -:        -: 3350:   nir_type_invalid,
        -:        -: 3351:   NULL,
        -:        -: 3352:};
        -:        -: 3353:
        -:        -: 3354:static const nir_search_variable search75_2 = {
        -:        -: 3355:   { nir_search_value_variable, 0 },
        -:        -: 3356:   2, /* c */
        -:        -: 3357:   false,
        -:        -: 3358:   nir_type_invalid,
        -:        -: 3359:   NULL,
        -:        -: 3360:};
        -:        -: 3361:static const nir_search_expression search75 = {
        -:        -: 3362:   { nir_search_value_expression, 0 },
        -:        -: 3363:   false,
        -:        -: 3364:   nir_op_bcsel,
        -:        -: 3365:   { &search75_0.value, &search75_1.value, &search75_2.value },
        -:        -: 3366:   NULL,
        -:        -: 3367:};
        -:        -: 3368:   
        -:        -: 3369:static const nir_search_variable replace75_0 = {
        -:        -: 3370:   { nir_search_value_variable, 0 },
        -:        -: 3371:   0, /* a */
        -:        -: 3372:   false,
        -:        -: 3373:   nir_type_invalid,
        -:        -: 3374:   NULL,
        -:        -: 3375:};
        -:        -: 3376:
        -:        -: 3377:static const nir_search_variable replace75_1 = {
        -:        -: 3378:   { nir_search_value_variable, 0 },
        -:        -: 3379:   2, /* c */
        -:        -: 3380:   false,
        -:        -: 3381:   nir_type_invalid,
        -:        -: 3382:   NULL,
        -:        -: 3383:};
        -:        -: 3384:
        -:        -: 3385:static const nir_search_variable replace75_2 = {
        -:        -: 3386:   { nir_search_value_variable, 0 },
        -:        -: 3387:   1, /* b */
        -:        -: 3388:   false,
        -:        -: 3389:   nir_type_invalid,
        -:        -: 3390:   NULL,
        -:        -: 3391:};
        -:        -: 3392:static const nir_search_expression replace75 = {
        -:        -: 3393:   { nir_search_value_expression, 0 },
        -:        -: 3394:   false,
        -:        -: 3395:   nir_op_bcsel,
        -:        -: 3396:   { &replace75_0.value, &replace75_1.value, &replace75_2.value },
        -:        -: 3397:   NULL,
        -:        -: 3398:};
        -:        -: 3399:   
        -:        -: 3400:static const nir_search_variable search76_0 = {
        -:        -: 3401:   { nir_search_value_variable, 0 },
        -:        -: 3402:   0, /* a */
        -:        -: 3403:   false,
        -:        -: 3404:   nir_type_invalid,
        -:        -: 3405:   NULL,
        -:        -: 3406:};
        -:        -: 3407:
        -:        -: 3408:static const nir_search_variable search76_1_0 = {
        -:        -: 3409:   { nir_search_value_variable, 0 },
        -:        -: 3410:   0, /* a */
        -:        -: 3411:   false,
        -:        -: 3412:   nir_type_invalid,
        -:        -: 3413:   NULL,
        -:        -: 3414:};
        -:        -: 3415:
        -:        -: 3416:static const nir_search_variable search76_1_1 = {
        -:        -: 3417:   { nir_search_value_variable, 0 },
        -:        -: 3418:   1, /* b */
        -:        -: 3419:   false,
        -:        -: 3420:   nir_type_invalid,
        -:        -: 3421:   NULL,
        -:        -: 3422:};
        -:        -: 3423:
        -:        -: 3424:static const nir_search_variable search76_1_2 = {
        -:        -: 3425:   { nir_search_value_variable, 0 },
        -:        -: 3426:   2, /* c */
        -:        -: 3427:   false,
        -:        -: 3428:   nir_type_invalid,
        -:        -: 3429:   NULL,
        -:        -: 3430:};
        -:        -: 3431:static const nir_search_expression search76_1 = {
        -:        -: 3432:   { nir_search_value_expression, 0 },
        -:        -: 3433:   false,
        -:        -: 3434:   nir_op_bcsel,
        -:        -: 3435:   { &search76_1_0.value, &search76_1_1.value, &search76_1_2.value },
        -:        -: 3436:   NULL,
        -:        -: 3437:};
        -:        -: 3438:
        -:        -: 3439:static const nir_search_variable search76_2 = {
        -:        -: 3440:   { nir_search_value_variable, 0 },
        -:        -: 3441:   3, /* d */
        -:        -: 3442:   false,
        -:        -: 3443:   nir_type_invalid,
        -:        -: 3444:   NULL,
        -:        -: 3445:};
        -:        -: 3446:static const nir_search_expression search76 = {
        -:        -: 3447:   { nir_search_value_expression, 0 },
        -:        -: 3448:   false,
        -:        -: 3449:   nir_op_bcsel,
        -:        -: 3450:   { &search76_0.value, &search76_1.value, &search76_2.value },
        -:        -: 3451:   NULL,
        -:        -: 3452:};
        -:        -: 3453:   
        -:        -: 3454:static const nir_search_variable replace76_0 = {
        -:        -: 3455:   { nir_search_value_variable, 0 },
        -:        -: 3456:   0, /* a */
        -:        -: 3457:   false,
        -:        -: 3458:   nir_type_invalid,
        -:        -: 3459:   NULL,
        -:        -: 3460:};
        -:        -: 3461:
        -:        -: 3462:static const nir_search_variable replace76_1 = {
        -:        -: 3463:   { nir_search_value_variable, 0 },
        -:        -: 3464:   1, /* b */
        -:        -: 3465:   false,
        -:        -: 3466:   nir_type_invalid,
        -:        -: 3467:   NULL,
        -:        -: 3468:};
        -:        -: 3469:
        -:        -: 3470:static const nir_search_variable replace76_2 = {
        -:        -: 3471:   { nir_search_value_variable, 0 },
        -:        -: 3472:   3, /* d */
        -:        -: 3473:   false,
        -:        -: 3474:   nir_type_invalid,
        -:        -: 3475:   NULL,
        -:        -: 3476:};
        -:        -: 3477:static const nir_search_expression replace76 = {
        -:        -: 3478:   { nir_search_value_expression, 0 },
        -:        -: 3479:   false,
        -:        -: 3480:   nir_op_bcsel,
        -:        -: 3481:   { &replace76_0.value, &replace76_1.value, &replace76_2.value },
        -:        -: 3482:   NULL,
        -:        -: 3483:};
        -:        -: 3484:   
        -:        -: 3485:static const nir_search_variable search77_0 = {
        -:        -: 3486:   { nir_search_value_variable, 0 },
        -:        -: 3487:   0, /* a */
        -:        -: 3488:   false,
        -:        -: 3489:   nir_type_invalid,
        -:        -: 3490:   NULL,
        -:        -: 3491:};
        -:        -: 3492:
        -:        -: 3493:static const nir_search_constant search77_1 = {
        -:        -: 3494:   { nir_search_value_constant, 32 },
        -:        -: 3495:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 3496:};
        -:        -: 3497:
        -:        -: 3498:static const nir_search_variable search77_2 = {
        -:        -: 3499:   { nir_search_value_variable, 32 },
        -:        -: 3500:   1, /* b */
        -:        -: 3501:   false,
        -:        -: 3502:   nir_type_bool32,
        -:        -: 3503:   NULL,
        -:        -: 3504:};
        -:        -: 3505:static const nir_search_expression search77 = {
        -:        -: 3506:   { nir_search_value_expression, 0 },
        -:        -: 3507:   false,
        -:        -: 3508:   nir_op_bcsel,
        -:        -: 3509:   { &search77_0.value, &search77_1.value, &search77_2.value },
        -:        -: 3510:   NULL,
        -:        -: 3511:};
        -:        -: 3512:   
        -:        -: 3513:static const nir_search_variable replace77_0 = {
        -:        -: 3514:   { nir_search_value_variable, 0 },
        -:        -: 3515:   0, /* a */
        -:        -: 3516:   false,
        -:        -: 3517:   nir_type_invalid,
        -:        -: 3518:   NULL,
        -:        -: 3519:};
        -:        -: 3520:
        -:        -: 3521:static const nir_search_variable replace77_1 = {
        -:        -: 3522:   { nir_search_value_variable, 0 },
        -:        -: 3523:   1, /* b */
        -:        -: 3524:   false,
        -:        -: 3525:   nir_type_invalid,
        -:        -: 3526:   NULL,
        -:        -: 3527:};
        -:        -: 3528:static const nir_search_expression replace77 = {
        -:        -: 3529:   { nir_search_value_expression, 0 },
        -:        -: 3530:   false,
        -:        -: 3531:   nir_op_ior,
        -:        -: 3532:   { &replace77_0.value, &replace77_1.value },
        -:        -: 3533:   NULL,
        -:        -: 3534:};
        -:        -: 3535:   
        -:        -: 3536:static const nir_search_variable search183_0 = {
        -:        -: 3537:   { nir_search_value_variable, 0 },
        -:        -: 3538:   0, /* a */
        -:        -: 3539:   false,
        -:        -: 3540:   nir_type_invalid,
        -:        -: 3541:   NULL,
        -:        -: 3542:};
        -:        -: 3543:
        -:        -: 3544:static const nir_search_constant search183_1 = {
        -:        -: 3545:   { nir_search_value_constant, 32 },
        -:        -: 3546:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 3547:};
        -:        -: 3548:
        -:        -: 3549:static const nir_search_constant search183_2 = {
        -:        -: 3550:   { nir_search_value_constant, 32 },
        -:        -: 3551:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -: 3552:};
        -:        -: 3553:static const nir_search_expression search183 = {
        -:        -: 3554:   { nir_search_value_expression, 0 },
        -:        -: 3555:   false,
        -:        -: 3556:   nir_op_bcsel,
        -:        -: 3557:   { &search183_0.value, &search183_1.value, &search183_2.value },
        -:        -: 3558:   NULL,
        -:        -: 3559:};
        -:        -: 3560:   
        -:        -: 3561:static const nir_search_variable replace183 = {
        -:        -: 3562:   { nir_search_value_variable, 0 },
        -:        -: 3563:   0, /* a */
        -:        -: 3564:   false,
        -:        -: 3565:   nir_type_invalid,
        -:        -: 3566:   NULL,
        -:        -: 3567:};
        -:        -: 3568:   
        -:        -: 3569:static const nir_search_variable search184_0 = {
        -:        -: 3570:   { nir_search_value_variable, 0 },
        -:        -: 3571:   0, /* a */
        -:        -: 3572:   false,
        -:        -: 3573:   nir_type_invalid,
        -:        -: 3574:   NULL,
        -:        -: 3575:};
        -:        -: 3576:
        -:        -: 3577:static const nir_search_constant search184_1 = {
        -:        -: 3578:   { nir_search_value_constant, 32 },
        -:        -: 3579:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -: 3580:};
        -:        -: 3581:
        -:        -: 3582:static const nir_search_constant search184_2 = {
        -:        -: 3583:   { nir_search_value_constant, 32 },
        -:        -: 3584:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 3585:};
        -:        -: 3586:static const nir_search_expression search184 = {
        -:        -: 3587:   { nir_search_value_expression, 0 },
        -:        -: 3588:   false,
        -:        -: 3589:   nir_op_bcsel,
        -:        -: 3590:   { &search184_0.value, &search184_1.value, &search184_2.value },
        -:        -: 3591:   NULL,
        -:        -: 3592:};
        -:        -: 3593:   
        -:        -: 3594:static const nir_search_variable replace184_0 = {
        -:        -: 3595:   { nir_search_value_variable, 0 },
        -:        -: 3596:   0, /* a */
        -:        -: 3597:   false,
        -:        -: 3598:   nir_type_invalid,
        -:        -: 3599:   NULL,
        -:        -: 3600:};
        -:        -: 3601:static const nir_search_expression replace184 = {
        -:        -: 3602:   { nir_search_value_expression, 0 },
        -:        -: 3603:   false,
        -:        -: 3604:   nir_op_inot,
        -:        -: 3605:   { &replace184_0.value },
        -:        -: 3606:   NULL,
        -:        -: 3607:};
        -:        -: 3608:   
        -:        -: 3609:static const nir_search_variable search185_0 = {
        -:        -: 3610:   { nir_search_value_variable, 0 },
        -:        -: 3611:   0, /* a */
        -:        -: 3612:   false,
        -:        -: 3613:   nir_type_invalid,
        -:        -: 3614:   NULL,
        -:        -: 3615:};
        -:        -: 3616:
        -:        -: 3617:static const nir_search_constant search185_1 = {
        -:        -: 3618:   { nir_search_value_constant, 0 },
        -:        -: 3619:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 3620:};
        -:        -: 3621:
        -:        -: 3622:static const nir_search_constant search185_2 = {
        -:        -: 3623:   { nir_search_value_constant, 0 },
        -:        -: 3624:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 3625:};
        -:        -: 3626:static const nir_search_expression search185 = {
        -:        -: 3627:   { nir_search_value_expression, 32 },
        -:        -: 3628:   false,
        -:        -: 3629:   nir_op_bcsel,
        -:        -: 3630:   { &search185_0.value, &search185_1.value, &search185_2.value },
        -:        -: 3631:   NULL,
        -:        -: 3632:};
        -:        -: 3633:   
        -:        -: 3634:static const nir_search_variable replace185_0 = {
        -:        -: 3635:   { nir_search_value_variable, 0 },
        -:        -: 3636:   0, /* a */
        -:        -: 3637:   false,
        -:        -: 3638:   nir_type_invalid,
        -:        -: 3639:   NULL,
        -:        -: 3640:};
        -:        -: 3641:static const nir_search_expression replace185 = {
        -:        -: 3642:   { nir_search_value_expression, 0 },
        -:        -: 3643:   false,
        -:        -: 3644:   nir_op_b2f,
        -:        -: 3645:   { &replace185_0.value },
        -:        -: 3646:   NULL,
        -:        -: 3647:};
        -:        -: 3648:   
        -:        -: 3649:static const nir_search_variable search186_0 = {
        -:        -: 3650:   { nir_search_value_variable, 0 },
        -:        -: 3651:   0, /* a */
        -:        -: 3652:   false,
        -:        -: 3653:   nir_type_invalid,
        -:        -: 3654:   NULL,
        -:        -: 3655:};
        -:        -: 3656:
        -:        -: 3657:static const nir_search_constant search186_1 = {
        -:        -: 3658:   { nir_search_value_constant, 0 },
        -:        -: 3659:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 3660:};
        -:        -: 3661:
        -:        -: 3662:static const nir_search_constant search186_2 = {
        -:        -: 3663:   { nir_search_value_constant, 0 },
        -:        -: 3664:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 3665:};
        -:        -: 3666:static const nir_search_expression search186 = {
        -:        -: 3667:   { nir_search_value_expression, 32 },
        -:        -: 3668:   false,
        -:        -: 3669:   nir_op_bcsel,
        -:        -: 3670:   { &search186_0.value, &search186_1.value, &search186_2.value },
        -:        -: 3671:   NULL,
        -:        -: 3672:};
        -:        -: 3673:   
        -:        -: 3674:static const nir_search_variable replace186_0_0 = {
        -:        -: 3675:   { nir_search_value_variable, 0 },
        -:        -: 3676:   0, /* a */
        -:        -: 3677:   false,
        -:        -: 3678:   nir_type_invalid,
        -:        -: 3679:   NULL,
        -:        -: 3680:};
        -:        -: 3681:static const nir_search_expression replace186_0 = {
        -:        -: 3682:   { nir_search_value_expression, 0 },
        -:        -: 3683:   false,
        -:        -: 3684:   nir_op_inot,
        -:        -: 3685:   { &replace186_0_0.value },
        -:        -: 3686:   NULL,
        -:        -: 3687:};
        -:        -: 3688:static const nir_search_expression replace186 = {
        -:        -: 3689:   { nir_search_value_expression, 0 },
        -:        -: 3690:   false,
        -:        -: 3691:   nir_op_b2f,
        -:        -: 3692:   { &replace186_0.value },
        -:        -: 3693:   NULL,
        -:        -: 3694:};
        -:        -: 3695:   
        -:        -: 3696:static const nir_search_variable search187_0 = {
        -:        -: 3697:   { nir_search_value_variable, 0 },
        -:        -: 3698:   0, /* a */
        -:        -: 3699:   false,
        -:        -: 3700:   nir_type_invalid,
        -:        -: 3701:   NULL,
        -:        -: 3702:};
        -:        -: 3703:
        -:        -: 3704:static const nir_search_constant search187_1 = {
        -:        -: 3705:   { nir_search_value_constant, 0 },
        -:        -: 3706:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -: 3707:};
        -:        -: 3708:
        -:        -: 3709:static const nir_search_constant search187_2 = {
        -:        -: 3710:   { nir_search_value_constant, 0 },
        -:        -: 3711:   nir_type_float, { 0x8000000000000000L /* -0.0 */ },
        -:        -: 3712:};
        -:        -: 3713:static const nir_search_expression search187 = {
        -:        -: 3714:   { nir_search_value_expression, 32 },
        -:        -: 3715:   false,
        -:        -: 3716:   nir_op_bcsel,
        -:        -: 3717:   { &search187_0.value, &search187_1.value, &search187_2.value },
        -:        -: 3718:   NULL,
        -:        -: 3719:};
        -:        -: 3720:   
        -:        -: 3721:static const nir_search_variable replace187_0_0 = {
        -:        -: 3722:   { nir_search_value_variable, 0 },
        -:        -: 3723:   0, /* a */
        -:        -: 3724:   false,
        -:        -: 3725:   nir_type_invalid,
        -:        -: 3726:   NULL,
        -:        -: 3727:};
        -:        -: 3728:static const nir_search_expression replace187_0 = {
        -:        -: 3729:   { nir_search_value_expression, 0 },
        -:        -: 3730:   false,
        -:        -: 3731:   nir_op_b2f,
        -:        -: 3732:   { &replace187_0_0.value },
        -:        -: 3733:   NULL,
        -:        -: 3734:};
        -:        -: 3735:static const nir_search_expression replace187 = {
        -:        -: 3736:   { nir_search_value_expression, 0 },
        -:        -: 3737:   false,
        -:        -: 3738:   nir_op_fneg,
        -:        -: 3739:   { &replace187_0.value },
        -:        -: 3740:   NULL,
        -:        -: 3741:};
        -:        -: 3742:   
        -:        -: 3743:static const nir_search_variable search188_0 = {
        -:        -: 3744:   { nir_search_value_variable, 0 },
        -:        -: 3745:   0, /* a */
        -:        -: 3746:   false,
        -:        -: 3747:   nir_type_invalid,
        -:        -: 3748:   NULL,
        -:        -: 3749:};
        -:        -: 3750:
        -:        -: 3751:static const nir_search_constant search188_1 = {
        -:        -: 3752:   { nir_search_value_constant, 0 },
        -:        -: 3753:   nir_type_float, { 0x8000000000000000L /* -0.0 */ },
        -:        -: 3754:};
        -:        -: 3755:
        -:        -: 3756:static const nir_search_constant search188_2 = {
        -:        -: 3757:   { nir_search_value_constant, 0 },
        -:        -: 3758:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -: 3759:};
        -:        -: 3760:static const nir_search_expression search188 = {
        -:        -: 3761:   { nir_search_value_expression, 32 },
        -:        -: 3762:   false,
        -:        -: 3763:   nir_op_bcsel,
        -:        -: 3764:   { &search188_0.value, &search188_1.value, &search188_2.value },
        -:        -: 3765:   NULL,
        -:        -: 3766:};
        -:        -: 3767:   
        -:        -: 3768:static const nir_search_variable replace188_0_0_0 = {
        -:        -: 3769:   { nir_search_value_variable, 0 },
        -:        -: 3770:   0, /* a */
        -:        -: 3771:   false,
        -:        -: 3772:   nir_type_invalid,
        -:        -: 3773:   NULL,
        -:        -: 3774:};
        -:        -: 3775:static const nir_search_expression replace188_0_0 = {
        -:        -: 3776:   { nir_search_value_expression, 0 },
        -:        -: 3777:   false,
        -:        -: 3778:   nir_op_inot,
        -:        -: 3779:   { &replace188_0_0_0.value },
        -:        -: 3780:   NULL,
        -:        -: 3781:};
        -:        -: 3782:static const nir_search_expression replace188_0 = {
        -:        -: 3783:   { nir_search_value_expression, 0 },
        -:        -: 3784:   false,
        -:        -: 3785:   nir_op_b2f,
        -:        -: 3786:   { &replace188_0_0.value },
        -:        -: 3787:   NULL,
        -:        -: 3788:};
        -:        -: 3789:static const nir_search_expression replace188 = {
        -:        -: 3790:   { nir_search_value_expression, 0 },
        -:        -: 3791:   false,
        -:        -: 3792:   nir_op_fneg,
        -:        -: 3793:   { &replace188_0.value },
        -:        -: 3794:   NULL,
        -:        -: 3795:};
        -:        -: 3796:   
        -:        -: 3797:static const nir_search_constant search189_0 = {
        -:        -: 3798:   { nir_search_value_constant, 32 },
        -:        -: 3799:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 3800:};
        -:        -: 3801:
        -:        -: 3802:static const nir_search_variable search189_1 = {
        -:        -: 3803:   { nir_search_value_variable, 0 },
        -:        -: 3804:   0, /* b */
        -:        -: 3805:   false,
        -:        -: 3806:   nir_type_invalid,
        -:        -: 3807:   NULL,
        -:        -: 3808:};
        -:        -: 3809:
        -:        -: 3810:static const nir_search_variable search189_2 = {
        -:        -: 3811:   { nir_search_value_variable, 0 },
        -:        -: 3812:   1, /* c */
        -:        -: 3813:   false,
        -:        -: 3814:   nir_type_invalid,
        -:        -: 3815:   NULL,
        -:        -: 3816:};
        -:        -: 3817:static const nir_search_expression search189 = {
        -:        -: 3818:   { nir_search_value_expression, 0 },
        -:        -: 3819:   false,
        -:        -: 3820:   nir_op_bcsel,
        -:        -: 3821:   { &search189_0.value, &search189_1.value, &search189_2.value },
        -:        -: 3822:   NULL,
        -:        -: 3823:};
        -:        -: 3824:   
        -:        -: 3825:static const nir_search_variable replace189 = {
        -:        -: 3826:   { nir_search_value_variable, 0 },
        -:        -: 3827:   0, /* b */
        -:        -: 3828:   false,
        -:        -: 3829:   nir_type_invalid,
        -:        -: 3830:   NULL,
        -:        -: 3831:};
        -:        -: 3832:   
        -:        -: 3833:static const nir_search_constant search190_0 = {
        -:        -: 3834:   { nir_search_value_constant, 32 },
        -:        -: 3835:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -: 3836:};
        -:        -: 3837:
        -:        -: 3838:static const nir_search_variable search190_1 = {
        -:        -: 3839:   { nir_search_value_variable, 0 },
        -:        -: 3840:   0, /* b */
        -:        -: 3841:   false,
        -:        -: 3842:   nir_type_invalid,
        -:        -: 3843:   NULL,
        -:        -: 3844:};
        -:        -: 3845:
        -:        -: 3846:static const nir_search_variable search190_2 = {
        -:        -: 3847:   { nir_search_value_variable, 0 },
        -:        -: 3848:   1, /* c */
        -:        -: 3849:   false,
        -:        -: 3850:   nir_type_invalid,
        -:        -: 3851:   NULL,
        -:        -: 3852:};
        -:        -: 3853:static const nir_search_expression search190 = {
        -:        -: 3854:   { nir_search_value_expression, 0 },
        -:        -: 3855:   false,
        -:        -: 3856:   nir_op_bcsel,
        -:        -: 3857:   { &search190_0.value, &search190_1.value, &search190_2.value },
        -:        -: 3858:   NULL,
        -:        -: 3859:};
        -:        -: 3860:   
        -:        -: 3861:static const nir_search_variable replace190 = {
        -:        -: 3862:   { nir_search_value_variable, 0 },
        -:        -: 3863:   1, /* c */
        -:        -: 3864:   false,
        -:        -: 3865:   nir_type_invalid,
        -:        -: 3866:   NULL,
        -:        -: 3867:};
        -:        -: 3868:   
        -:        -: 3869:static const nir_search_variable search191_0 = {
        -:        -: 3870:   { nir_search_value_variable, 0 },
        -:        -: 3871:   0, /* a */
        -:        -: 3872:   true,
        -:        -: 3873:   nir_type_invalid,
        -:        -: 3874:   NULL,
        -:        -: 3875:};
        -:        -: 3876:
        -:        -: 3877:static const nir_search_variable search191_1 = {
        -:        -: 3878:   { nir_search_value_variable, 0 },
        -:        -: 3879:   1, /* b */
        -:        -: 3880:   false,
        -:        -: 3881:   nir_type_invalid,
        -:        -: 3882:   NULL,
        -:        -: 3883:};
        -:        -: 3884:
        -:        -: 3885:static const nir_search_variable search191_2 = {
        -:        -: 3886:   { nir_search_value_variable, 0 },
        -:        -: 3887:   2, /* c */
        -:        -: 3888:   false,
        -:        -: 3889:   nir_type_invalid,
        -:        -: 3890:   NULL,
        -:        -: 3891:};
        -:        -: 3892:static const nir_search_expression search191 = {
        -:        -: 3893:   { nir_search_value_expression, 0 },
        -:        -: 3894:   false,
        -:        -: 3895:   nir_op_bcsel,
        -:        -: 3896:   { &search191_0.value, &search191_1.value, &search191_2.value },
        -:        -: 3897:   NULL,
        -:        -: 3898:};
        -:        -: 3899:   
        -:        -: 3900:static const nir_search_variable replace191_0_0 = {
        -:        -: 3901:   { nir_search_value_variable, 0 },
        -:        -: 3902:   0, /* a */
        -:        -: 3903:   false,
        -:        -: 3904:   nir_type_invalid,
        -:        -: 3905:   NULL,
        -:        -: 3906:};
        -:        -: 3907:
        -:        -: 3908:static const nir_search_constant replace191_0_1 = {
        -:        -: 3909:   { nir_search_value_constant, 0 },
        -:        -: 3910:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 3911:};
        -:        -: 3912:static const nir_search_expression replace191_0 = {
        -:        -: 3913:   { nir_search_value_expression, 0 },
        -:        -: 3914:   false,
        -:        -: 3915:   nir_op_ine,
        -:        -: 3916:   { &replace191_0_0.value, &replace191_0_1.value },
        -:        -: 3917:   NULL,
        -:        -: 3918:};
        -:        -: 3919:
        -:        -: 3920:static const nir_search_variable replace191_1 = {
        -:        -: 3921:   { nir_search_value_variable, 0 },
        -:        -: 3922:   1, /* b */
        -:        -: 3923:   false,
        -:        -: 3924:   nir_type_invalid,
        -:        -: 3925:   NULL,
        -:        -: 3926:};
        -:        -: 3927:
        -:        -: 3928:static const nir_search_variable replace191_2 = {
        -:        -: 3929:   { nir_search_value_variable, 0 },
        -:        -: 3930:   2, /* c */
        -:        -: 3931:   false,
        -:        -: 3932:   nir_type_invalid,
        -:        -: 3933:   NULL,
        -:        -: 3934:};
        -:        -: 3935:static const nir_search_expression replace191 = {
        -:        -: 3936:   { nir_search_value_expression, 0 },
        -:        -: 3937:   false,
        -:        -: 3938:   nir_op_bcsel,
        -:        -: 3939:   { &replace191_0.value, &replace191_1.value, &replace191_2.value },
        -:        -: 3940:   NULL,
        -:        -: 3941:};
        -:        -: 3942:   
        -:        -: 3943:static const nir_search_variable search192_0 = {
        -:        -: 3944:   { nir_search_value_variable, 0 },
        -:        -: 3945:   0, /* a */
        -:        -: 3946:   false,
        -:        -: 3947:   nir_type_invalid,
        -:        -: 3948:   NULL,
        -:        -: 3949:};
        -:        -: 3950:
        -:        -: 3951:static const nir_search_variable search192_1 = {
        -:        -: 3952:   { nir_search_value_variable, 0 },
        -:        -: 3953:   1, /* b */
        -:        -: 3954:   false,
        -:        -: 3955:   nir_type_invalid,
        -:        -: 3956:   NULL,
        -:        -: 3957:};
        -:        -: 3958:
        -:        -: 3959:static const nir_search_variable search192_2 = {
        -:        -: 3960:   { nir_search_value_variable, 0 },
        -:        -: 3961:   1, /* b */
        -:        -: 3962:   false,
        -:        -: 3963:   nir_type_invalid,
        -:        -: 3964:   NULL,
        -:        -: 3965:};
        -:        -: 3966:static const nir_search_expression search192 = {
        -:        -: 3967:   { nir_search_value_expression, 0 },
        -:        -: 3968:   false,
        -:        -: 3969:   nir_op_bcsel,
        -:        -: 3970:   { &search192_0.value, &search192_1.value, &search192_2.value },
        -:        -: 3971:   NULL,
        -:        -: 3972:};
        -:        -: 3973:   
        -:        -: 3974:static const nir_search_variable replace192 = {
        -:        -: 3975:   { nir_search_value_variable, 0 },
        -:        -: 3976:   1, /* b */
        -:        -: 3977:   false,
        -:        -: 3978:   nir_type_invalid,
        -:        -: 3979:   NULL,
        -:        -: 3980:};
        -:        -: 3981:
        -:        -: 3982:static const struct transform nir_opt_algebraic_bcsel_xforms[] = {
        -:        -: 3983:   { &search73, &replace73.value, 0 },
        -:        -: 3984:   { &search74, &replace74.value, 0 },
        -:        -: 3985:   { &search75, &replace75.value, 0 },
        -:        -: 3986:   { &search76, &replace76.value, 0 },
        -:        -: 3987:   { &search77, &replace77.value, 0 },
        -:        -: 3988:   { &search183, &replace183.value, 0 },
        -:        -: 3989:   { &search184, &replace184.value, 0 },
        -:        -: 3990:   { &search185, &replace185.value, 0 },
        -:        -: 3991:   { &search186, &replace186.value, 0 },
        -:        -: 3992:   { &search187, &replace187.value, 0 },
        -:        -: 3993:   { &search188, &replace188.value, 0 },
        -:        -: 3994:   { &search189, &replace189.value, 0 },
        -:        -: 3995:   { &search190, &replace190.value, 0 },
        -:        -: 3996:   { &search191, &replace191.value, 0 },
        -:        -: 3997:   { &search192, &replace192.value, 0 },
        -:        -: 3998:};
        -:        -: 3999:   
        -:        -: 4000:static const nir_search_variable search115_0 = {
        -:        -: 4001:   { nir_search_value_variable, 0 },
        -:        -: 4002:   0, /* a */
        -:        -: 4003:   false,
        -:        -: 4004:   nir_type_invalid,
        -:        -: 4005:   NULL,
        -:        -: 4006:};
        -:        -: 4007:
        -:        -: 4008:static const nir_search_variable search115_1 = {
        -:        -: 4009:   { nir_search_value_variable, 0 },
        -:        -: 4010:   1, /* b */
        -:        -: 4011:   false,
        -:        -: 4012:   nir_type_invalid,
        -:        -: 4013:   NULL,
        -:        -: 4014:};
        -:        -: 4015:static const nir_search_expression search115 = {
        -:        -: 4016:   { nir_search_value_expression, 0 },
        -:        -: 4017:   false,
        -:        -: 4018:   nir_op_sge,
        -:        -: 4019:   { &search115_0.value, &search115_1.value },
        -:        -: 4020:   NULL,
        -:        -: 4021:};
        -:        -: 4022:   
        -:        -: 4023:static const nir_search_variable replace115_0_0 = {
        -:        -: 4024:   { nir_search_value_variable, 0 },
        -:        -: 4025:   0, /* a */
        -:        -: 4026:   false,
        -:        -: 4027:   nir_type_invalid,
        -:        -: 4028:   NULL,
        -:        -: 4029:};
        -:        -: 4030:
        -:        -: 4031:static const nir_search_variable replace115_0_1 = {
        -:        -: 4032:   { nir_search_value_variable, 0 },
        -:        -: 4033:   1, /* b */
        -:        -: 4034:   false,
        -:        -: 4035:   nir_type_invalid,
        -:        -: 4036:   NULL,
        -:        -: 4037:};
        -:        -: 4038:static const nir_search_expression replace115_0 = {
        -:        -: 4039:   { nir_search_value_expression, 0 },
        -:        -: 4040:   false,
        -:        -: 4041:   nir_op_fge,
        -:        -: 4042:   { &replace115_0_0.value, &replace115_0_1.value },
        -:        -: 4043:   NULL,
        -:        -: 4044:};
        -:        -: 4045:static const nir_search_expression replace115 = {
        -:        -: 4046:   { nir_search_value_expression, 0 },
        -:        -: 4047:   false,
        -:        -: 4048:   nir_op_b2f,
        -:        -: 4049:   { &replace115_0.value },
        -:        -: 4050:   NULL,
        -:        -: 4051:};
        -:        -: 4052:
        -:        -: 4053:static const struct transform nir_opt_algebraic_sge_xforms[] = {
        -:        -: 4054:   { &search115, &replace115.value, 11 },
        -:        -: 4055:};
        -:        -: 4056:   
        -:        -: 4057:static const nir_search_variable search165_0_0 = {
        -:        -: 4058:   { nir_search_value_variable, 0 },
        -:        -: 4059:   0, /* a */
        -:        -: 4060:   false,
        -:        -: 4061:   nir_type_invalid,
        -:        -: 4062:   NULL,
        -:        -: 4063:};
        -:        -: 4064:static const nir_search_expression search165_0 = {
        -:        -: 4065:   { nir_search_value_expression, 0 },
        -:        -: 4066:   false,
        -:        -: 4067:   nir_op_fexp2,
        -:        -: 4068:   { &search165_0_0.value },
        -:        -: 4069:   NULL,
        -:        -: 4070:};
        -:        -: 4071:static const nir_search_expression search165 = {
        -:        -: 4072:   { nir_search_value_expression, 0 },
        -:        -: 4073:   true,
        -:        -: 4074:   nir_op_fsqrt,
        -:        -: 4075:   { &search165_0.value },
        -:        -: 4076:   NULL,
        -:        -: 4077:};
        -:        -: 4078:   
        -:        -: 4079:static const nir_search_constant replace165_0_0 = {
        -:        -: 4080:   { nir_search_value_constant, 0 },
        -:        -: 4081:   nir_type_float, { 0x3fe0000000000000 /* 0.5 */ },
        -:        -: 4082:};
        -:        -: 4083:
        -:        -: 4084:static const nir_search_variable replace165_0_1 = {
        -:        -: 4085:   { nir_search_value_variable, 0 },
        -:        -: 4086:   0, /* a */
        -:        -: 4087:   false,
        -:        -: 4088:   nir_type_invalid,
        -:        -: 4089:   NULL,
        -:        -: 4090:};
        -:        -: 4091:static const nir_search_expression replace165_0 = {
        -:        -: 4092:   { nir_search_value_expression, 0 },
        -:        -: 4093:   false,
        -:        -: 4094:   nir_op_fmul,
        -:        -: 4095:   { &replace165_0_0.value, &replace165_0_1.value },
        -:        -: 4096:   NULL,
        -:        -: 4097:};
        -:        -: 4098:static const nir_search_expression replace165 = {
        -:        -: 4099:   { nir_search_value_expression, 0 },
        -:        -: 4100:   false,
        -:        -: 4101:   nir_op_fexp2,
        -:        -: 4102:   { &replace165_0.value },
        -:        -: 4103:   NULL,
        -:        -: 4104:};
        -:        -: 4105:   
        -:        -: 4106:static const nir_search_variable search177_0 = {
        -:        -: 4107:   { nir_search_value_variable, 0 },
        -:        -: 4108:   0, /* a */
        -:        -: 4109:   false,
        -:        -: 4110:   nir_type_invalid,
        -:        -: 4111:   NULL,
        -:        -: 4112:};
        -:        -: 4113:static const nir_search_expression search177 = {
        -:        -: 4114:   { nir_search_value_expression, 0 },
        -:        -: 4115:   false,
        -:        -: 4116:   nir_op_fsqrt,
        -:        -: 4117:   { &search177_0.value },
        -:        -: 4118:   NULL,
        -:        -: 4119:};
        -:        -: 4120:   
        -:        -: 4121:static const nir_search_variable replace177_0_0 = {
        -:        -: 4122:   { nir_search_value_variable, 0 },
        -:        -: 4123:   0, /* a */
        -:        -: 4124:   false,
        -:        -: 4125:   nir_type_invalid,
        -:        -: 4126:   NULL,
        -:        -: 4127:};
        -:        -: 4128:static const nir_search_expression replace177_0 = {
        -:        -: 4129:   { nir_search_value_expression, 0 },
        -:        -: 4130:   false,
        -:        -: 4131:   nir_op_frsq,
        -:        -: 4132:   { &replace177_0_0.value },
        -:        -: 4133:   NULL,
        -:        -: 4134:};
        -:        -: 4135:static const nir_search_expression replace177 = {
        -:        -: 4136:   { nir_search_value_expression, 0 },
        -:        -: 4137:   false,
        -:        -: 4138:   nir_op_frcp,
        -:        -: 4139:   { &replace177_0.value },
        -:        -: 4140:   NULL,
        -:        -: 4141:};
        -:        -: 4142:
        -:        -: 4143:static const struct transform nir_opt_algebraic_fsqrt_xforms[] = {
        -:        -: 4144:   { &search165, &replace165.value, 0 },
        -:        -: 4145:   { &search177, &replace177.value, 15 },
        -:        -: 4146:};
        -:        -: 4147:   
        -:        -: 4148:static const nir_search_variable search18_0 = {
        -:        -: 4149:   { nir_search_value_variable, 0 },
        -:        -: 4150:   0, /* a */
        -:        -: 4151:   false,
        -:        -: 4152:   nir_type_invalid,
        -:        -: 4153:   NULL,
        -:        -: 4154:};
        -:        -: 4155:
        -:        -: 4156:static const nir_search_constant search18_1 = {
        -:        -: 4157:   { nir_search_value_constant, 0 },
        -:        -: 4158:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 4159:};
        -:        -: 4160:static const nir_search_expression search18 = {
        -:        -: 4161:   { nir_search_value_expression, 0 },
        -:        -: 4162:   false,
        -:        -: 4163:   nir_op_iadd,
        -:        -: 4164:   { &search18_0.value, &search18_1.value },
        -:        -: 4165:   NULL,
        -:        -: 4166:};
        -:        -: 4167:   
        -:        -: 4168:static const nir_search_variable replace18 = {
        -:        -: 4169:   { nir_search_value_variable, 0 },
        -:        -: 4170:   0, /* a */
        -:        -: 4171:   false,
        -:        -: 4172:   nir_type_invalid,
        -:        -: 4173:   NULL,
        -:        -: 4174:};
        -:        -: 4175:   
        -:        -: 4176:static const nir_search_variable search22_0_0 = {
        -:        -: 4177:   { nir_search_value_variable, 0 },
        -:        -: 4178:   0, /* a */
        -:        -: 4179:   false,
        -:        -: 4180:   nir_type_invalid,
        -:        -: 4181:   NULL,
        -:        -: 4182:};
        -:        -: 4183:
        -:        -: 4184:static const nir_search_variable search22_0_1 = {
        -:        -: 4185:   { nir_search_value_variable, 0 },
        -:        -: 4186:   1, /* b */
        -:        -: 4187:   false,
        -:        -: 4188:   nir_type_invalid,
        -:        -: 4189:   NULL,
        -:        -: 4190:};
        -:        -: 4191:static const nir_search_expression search22_0 = {
        -:        -: 4192:   { nir_search_value_expression, 0 },
        -:        -: 4193:   false,
        -:        -: 4194:   nir_op_imul,
        -:        -: 4195:   { &search22_0_0.value, &search22_0_1.value },
        -:        -: 4196:   NULL,
        -:        -: 4197:};
        -:        -: 4198:
        -:        -: 4199:static const nir_search_variable search22_1_0 = {
        -:        -: 4200:   { nir_search_value_variable, 0 },
        -:        -: 4201:   0, /* a */
        -:        -: 4202:   false,
        -:        -: 4203:   nir_type_invalid,
        -:        -: 4204:   NULL,
        -:        -: 4205:};
        -:        -: 4206:
        -:        -: 4207:static const nir_search_variable search22_1_1 = {
        -:        -: 4208:   { nir_search_value_variable, 0 },
        -:        -: 4209:   2, /* c */
        -:        -: 4210:   false,
        -:        -: 4211:   nir_type_invalid,
        -:        -: 4212:   NULL,
        -:        -: 4213:};
        -:        -: 4214:static const nir_search_expression search22_1 = {
        -:        -: 4215:   { nir_search_value_expression, 0 },
        -:        -: 4216:   false,
        -:        -: 4217:   nir_op_imul,
        -:        -: 4218:   { &search22_1_0.value, &search22_1_1.value },
        -:        -: 4219:   NULL,
        -:        -: 4220:};
        -:        -: 4221:static const nir_search_expression search22 = {
        -:        -: 4222:   { nir_search_value_expression, 0 },
        -:        -: 4223:   false,
        -:        -: 4224:   nir_op_iadd,
        -:        -: 4225:   { &search22_0.value, &search22_1.value },
        -:        -: 4226:   NULL,
        -:        -: 4227:};
        -:        -: 4228:   
        -:        -: 4229:static const nir_search_variable replace22_0 = {
        -:        -: 4230:   { nir_search_value_variable, 0 },
        -:        -: 4231:   0, /* a */
        -:        -: 4232:   false,
        -:        -: 4233:   nir_type_invalid,
        -:        -: 4234:   NULL,
        -:        -: 4235:};
        -:        -: 4236:
        -:        -: 4237:static const nir_search_variable replace22_1_0 = {
        -:        -: 4238:   { nir_search_value_variable, 0 },
        -:        -: 4239:   1, /* b */
        -:        -: 4240:   false,
        -:        -: 4241:   nir_type_invalid,
        -:        -: 4242:   NULL,
        -:        -: 4243:};
        -:        -: 4244:
        -:        -: 4245:static const nir_search_variable replace22_1_1 = {
        -:        -: 4246:   { nir_search_value_variable, 0 },
        -:        -: 4247:   2, /* c */
        -:        -: 4248:   false,
        -:        -: 4249:   nir_type_invalid,
        -:        -: 4250:   NULL,
        -:        -: 4251:};
        -:        -: 4252:static const nir_search_expression replace22_1 = {
        -:        -: 4253:   { nir_search_value_expression, 0 },
        -:        -: 4254:   false,
        -:        -: 4255:   nir_op_iadd,
        -:        -: 4256:   { &replace22_1_0.value, &replace22_1_1.value },
        -:        -: 4257:   NULL,
        -:        -: 4258:};
        -:        -: 4259:static const nir_search_expression replace22 = {
        -:        -: 4260:   { nir_search_value_expression, 0 },
        -:        -: 4261:   false,
        -:        -: 4262:   nir_op_imul,
        -:        -: 4263:   { &replace22_0.value, &replace22_1.value },
        -:        -: 4264:   NULL,
        -:        -: 4265:};
        -:        -: 4266:   
        -:        -: 4267:static const nir_search_variable search24_0_0 = {
        -:        -: 4268:   { nir_search_value_variable, 0 },
        -:        -: 4269:   0, /* a */
        -:        -: 4270:   false,
        -:        -: 4271:   nir_type_invalid,
        -:        -: 4272:   NULL,
        -:        -: 4273:};
        -:        -: 4274:static const nir_search_expression search24_0 = {
        -:        -: 4275:   { nir_search_value_expression, 0 },
        -:        -: 4276:   false,
        -:        -: 4277:   nir_op_ineg,
        -:        -: 4278:   { &search24_0_0.value },
        -:        -: 4279:   NULL,
        -:        -: 4280:};
        -:        -: 4281:
        -:        -: 4282:static const nir_search_variable search24_1 = {
        -:        -: 4283:   { nir_search_value_variable, 0 },
        -:        -: 4284:   0, /* a */
        -:        -: 4285:   false,
        -:        -: 4286:   nir_type_invalid,
        -:        -: 4287:   NULL,
        -:        -: 4288:};
        -:        -: 4289:static const nir_search_expression search24 = {
        -:        -: 4290:   { nir_search_value_expression, 0 },
        -:        -: 4291:   false,
        -:        -: 4292:   nir_op_iadd,
        -:        -: 4293:   { &search24_0.value, &search24_1.value },
        -:        -: 4294:   NULL,
        -:        -: 4295:};
        -:        -: 4296:   
        -:        -: 4297:static const nir_search_constant replace24 = {
        -:        -: 4298:   { nir_search_value_constant, 0 },
        -:        -: 4299:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 4300:};
        -:        -: 4301:   
        -:        -: 4302:static const nir_search_variable search25_0_0 = {
        -:        -: 4303:   { nir_search_value_variable, 0 },
        -:        -: 4304:   0, /* a */
        -:        -: 4305:   false,
        -:        -: 4306:   nir_type_invalid,
        -:        -: 4307:   NULL,
        -:        -: 4308:};
        -:        -: 4309:static const nir_search_expression search25_0 = {
        -:        -: 4310:   { nir_search_value_expression, 0 },
        -:        -: 4311:   false,
        -:        -: 4312:   nir_op_ineg,
        -:        -: 4313:   { &search25_0_0.value },
        -:        -: 4314:   NULL,
        -:        -: 4315:};
        -:        -: 4316:
        -:        -: 4317:static const nir_search_variable search25_1_0 = {
        -:        -: 4318:   { nir_search_value_variable, 0 },
        -:        -: 4319:   0, /* a */
        -:        -: 4320:   false,
        -:        -: 4321:   nir_type_invalid,
        -:        -: 4322:   NULL,
        -:        -: 4323:};
        -:        -: 4324:
        -:        -: 4325:static const nir_search_variable search25_1_1 = {
        -:        -: 4326:   { nir_search_value_variable, 0 },
        -:        -: 4327:   1, /* b */
        -:        -: 4328:   false,
        -:        -: 4329:   nir_type_invalid,
        -:        -: 4330:   NULL,
        -:        -: 4331:};
        -:        -: 4332:static const nir_search_expression search25_1 = {
        -:        -: 4333:   { nir_search_value_expression, 0 },
        -:        -: 4334:   false,
        -:        -: 4335:   nir_op_iadd,
        -:        -: 4336:   { &search25_1_0.value, &search25_1_1.value },
        -:        -: 4337:   NULL,
        -:        -: 4338:};
        -:        -: 4339:static const nir_search_expression search25 = {
        -:        -: 4340:   { nir_search_value_expression, 0 },
        -:        -: 4341:   false,
        -:        -: 4342:   nir_op_iadd,
        -:        -: 4343:   { &search25_0.value, &search25_1.value },
        -:        -: 4344:   NULL,
        -:        -: 4345:};
        -:        -: 4346:   
        -:        -: 4347:static const nir_search_variable replace25 = {
        -:        -: 4348:   { nir_search_value_variable, 0 },
        -:        -: 4349:   1, /* b */
        -:        -: 4350:   false,
        -:        -: 4351:   nir_type_invalid,
        -:        -: 4352:   NULL,
        -:        -: 4353:};
        -:        -: 4354:   
        -:        -: 4355:static const nir_search_variable search26_0 = {
        -:        -: 4356:   { nir_search_value_variable, 0 },
        -:        -: 4357:   0, /* a */
        -:        -: 4358:   false,
        -:        -: 4359:   nir_type_invalid,
        -:        -: 4360:   NULL,
        -:        -: 4361:};
        -:        -: 4362:
        -:        -: 4363:static const nir_search_variable search26_1_0_0 = {
        -:        -: 4364:   { nir_search_value_variable, 0 },
        -:        -: 4365:   0, /* a */
        -:        -: 4366:   false,
        -:        -: 4367:   nir_type_invalid,
        -:        -: 4368:   NULL,
        -:        -: 4369:};
        -:        -: 4370:static const nir_search_expression search26_1_0 = {
        -:        -: 4371:   { nir_search_value_expression, 0 },
        -:        -: 4372:   false,
        -:        -: 4373:   nir_op_ineg,
        -:        -: 4374:   { &search26_1_0_0.value },
        -:        -: 4375:   NULL,
        -:        -: 4376:};
        -:        -: 4377:
        -:        -: 4378:static const nir_search_variable search26_1_1 = {
        -:        -: 4379:   { nir_search_value_variable, 0 },
        -:        -: 4380:   1, /* b */
        -:        -: 4381:   false,
        -:        -: 4382:   nir_type_invalid,
        -:        -: 4383:   NULL,
        -:        -: 4384:};
        -:        -: 4385:static const nir_search_expression search26_1 = {
        -:        -: 4386:   { nir_search_value_expression, 0 },
        -:        -: 4387:   false,
        -:        -: 4388:   nir_op_iadd,
        -:        -: 4389:   { &search26_1_0.value, &search26_1_1.value },
        -:        -: 4390:   NULL,
        -:        -: 4391:};
        -:        -: 4392:static const nir_search_expression search26 = {
        -:        -: 4393:   { nir_search_value_expression, 0 },
        -:        -: 4394:   false,
        -:        -: 4395:   nir_op_iadd,
        -:        -: 4396:   { &search26_0.value, &search26_1.value },
        -:        -: 4397:   NULL,
        -:        -: 4398:};
        -:        -: 4399:   
        -:        -: 4400:static const nir_search_variable replace26 = {
        -:        -: 4401:   { nir_search_value_variable, 0 },
        -:        -: 4402:   1, /* b */
        -:        -: 4403:   false,
        -:        -: 4404:   nir_type_invalid,
        -:        -: 4405:   NULL,
        -:        -: 4406:};
        -:        -: 4407:   
        -:        -: 4408:static const nir_search_variable search219_0 = {
        -:        -: 4409:   { nir_search_value_variable, 0 },
        -:        -: 4410:   0, /* a */
        -:        -: 4411:   false,
        -:        -: 4412:   nir_type_invalid,
        -:        -: 4413:   NULL,
        -:        -: 4414:};
        -:        -: 4415:
        -:        -: 4416:static const nir_search_constant search219_1_0 = {
        -:        -: 4417:   { nir_search_value_constant, 0 },
        -:        -: 4418:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 4419:};
        -:        -: 4420:
        -:        -: 4421:static const nir_search_variable search219_1_1 = {
        -:        -: 4422:   { nir_search_value_variable, 0 },
        -:        -: 4423:   1, /* b */
        -:        -: 4424:   false,
        -:        -: 4425:   nir_type_invalid,
        -:        -: 4426:   NULL,
        -:        -: 4427:};
        -:        -: 4428:static const nir_search_expression search219_1 = {
        -:        -: 4429:   { nir_search_value_expression, 0 },
        -:        -: 4430:   false,
        -:        -: 4431:   nir_op_isub,
        -:        -: 4432:   { &search219_1_0.value, &search219_1_1.value },
        -:        -: 4433:   NULL,
        -:        -: 4434:};
        -:        -: 4435:static const nir_search_expression search219 = {
        -:        -: 4436:   { nir_search_value_expression, 0 },
        -:        -: 4437:   false,
        -:        -: 4438:   nir_op_iadd,
        -:        -: 4439:   { &search219_0.value, &search219_1.value },
        -:        -: 4440:   NULL,
        -:        -: 4441:};
        -:        -: 4442:   
        -:        -: 4443:static const nir_search_variable replace219_0 = {
        -:        -: 4444:   { nir_search_value_variable, 0 },
        -:        -: 4445:   0, /* a */
        -:        -: 4446:   false,
        -:        -: 4447:   nir_type_invalid,
        -:        -: 4448:   NULL,
        -:        -: 4449:};
        -:        -: 4450:
        -:        -: 4451:static const nir_search_variable replace219_1 = {
        -:        -: 4452:   { nir_search_value_variable, 0 },
        -:        -: 4453:   1, /* b */
        -:        -: 4454:   false,
        -:        -: 4455:   nir_type_invalid,
        -:        -: 4456:   NULL,
        -:        -: 4457:};
        -:        -: 4458:static const nir_search_expression replace219 = {
        -:        -: 4459:   { nir_search_value_expression, 0 },
        -:        -: 4460:   false,
        -:        -: 4461:   nir_op_isub,
        -:        -: 4462:   { &replace219_0.value, &replace219_1.value },
        -:        -: 4463:   NULL,
        -:        -: 4464:};
        -:        -: 4465:   
        -:        -: 4466:static const nir_search_variable search227_0 = {
        -:        -: 4467:   { nir_search_value_variable, 0 },
        -:        -: 4468:   0, /* a */
        -:        -: 4469:   true,
        -:        -: 4470:   nir_type_invalid,
        -:        -: 4471:   NULL,
        -:        -: 4472:};
        -:        -: 4473:
        -:        -: 4474:static const nir_search_variable search227_1_0 = {
        -:        -: 4475:   { nir_search_value_variable, 0 },
        -:        -: 4476:   1, /* b */
        -:        -: 4477:   false,
        -:        -: 4478:   nir_type_invalid,
        -:        -: 4479:   NULL,
        -:        -: 4480:};
        -:        -: 4481:
        -:        -: 4482:static const nir_search_variable search227_1_1 = {
        -:        -: 4483:   { nir_search_value_variable, 0 },
        -:        -: 4484:   2, /* c */
        -:        -: 4485:   true,
        -:        -: 4486:   nir_type_invalid,
        -:        -: 4487:   NULL,
        -:        -: 4488:};
        -:        -: 4489:static const nir_search_expression search227_1 = {
        -:        -: 4490:   { nir_search_value_expression, 0 },
        -:        -: 4491:   false,
        -:        -: 4492:   nir_op_iadd,
        -:        -: 4493:   { &search227_1_0.value, &search227_1_1.value },
        -:        -: 4494:   NULL,
        -:        -: 4495:};
        -:        -: 4496:static const nir_search_expression search227 = {
        -:        -: 4497:   { nir_search_value_expression, 0 },
        -:        -: 4498:   false,
        -:        -: 4499:   nir_op_iadd,
        -:        -: 4500:   { &search227_0.value, &search227_1.value },
        -:        -: 4501:   NULL,
        -:        -: 4502:};
        -:        -: 4503:   
        -:        -: 4504:static const nir_search_variable replace227_0_0 = {
        -:        -: 4505:   { nir_search_value_variable, 0 },
        -:        -: 4506:   0, /* a */
        -:        -: 4507:   false,
        -:        -: 4508:   nir_type_invalid,
        -:        -: 4509:   NULL,
        -:        -: 4510:};
        -:        -: 4511:
        -:        -: 4512:static const nir_search_variable replace227_0_1 = {
        -:        -: 4513:   { nir_search_value_variable, 0 },
        -:        -: 4514:   2, /* c */
        -:        -: 4515:   false,
        -:        -: 4516:   nir_type_invalid,
        -:        -: 4517:   NULL,
        -:        -: 4518:};
        -:        -: 4519:static const nir_search_expression replace227_0 = {
        -:        -: 4520:   { nir_search_value_expression, 0 },
        -:        -: 4521:   false,
        -:        -: 4522:   nir_op_iadd,
        -:        -: 4523:   { &replace227_0_0.value, &replace227_0_1.value },
        -:        -: 4524:   NULL,
        -:        -: 4525:};
        -:        -: 4526:
        -:        -: 4527:static const nir_search_variable replace227_1 = {
        -:        -: 4528:   { nir_search_value_variable, 0 },
        -:        -: 4529:   1, /* b */
        -:        -: 4530:   false,
        -:        -: 4531:   nir_type_invalid,
        -:        -: 4532:   NULL,
        -:        -: 4533:};
        -:        -: 4534:static const nir_search_expression replace227 = {
        -:        -: 4535:   { nir_search_value_expression, 0 },
        -:        -: 4536:   false,
        -:        -: 4537:   nir_op_iadd,
        -:        -: 4538:   { &replace227_0.value, &replace227_1.value },
        -:        -: 4539:   NULL,
        -:        -: 4540:};
        -:        -: 4541:
        -:        -: 4542:static const struct transform nir_opt_algebraic_iadd_xforms[] = {
        -:        -: 4543:   { &search18, &replace18.value, 0 },
        -:        -: 4544:   { &search22, &replace22.value, 0 },
        -:        -: 4545:   { &search24, &replace24.value, 0 },
        -:        -: 4546:   { &search25, &replace25.value, 0 },
        -:        -: 4547:   { &search26, &replace26.value, 0 },
        -:        -: 4548:   { &search219, &replace219.value, 0 },
        -:        -: 4549:   { &search227, &replace227.value, 0 },
        -:        -: 4550:};
        -:        -: 4551:   
        -:        -: 4552:static const nir_search_variable search240_0 = {
        -:        -: 4553:   { nir_search_value_variable, 0 },
        -:        -: 4554:   0, /* v */
        -:        -: 4555:   false,
        -:        -: 4556:   nir_type_invalid,
        -:        -: 4557:   NULL,
        -:        -: 4558:};
        -:        -: 4559:static const nir_search_expression search240 = {
        -:        -: 4560:   { nir_search_value_expression, 0 },
        -:        -: 4561:   false,
        -:        -: 4562:   nir_op_pack_unorm_2x16,
        -:        -: 4563:   { &search240_0.value },
        -:        -: 4564:   NULL,
        -:        -: 4565:};
        -:        -: 4566:   
        -:        -: 4567:static const nir_search_variable replace240_0_0_0_0_0 = {
        -:        -: 4568:   { nir_search_value_variable, 0 },
        -:        -: 4569:   0, /* v */
        -:        -: 4570:   false,
        -:        -: 4571:   nir_type_invalid,
        -:        -: 4572:   NULL,
        -:        -: 4573:};
        -:        -: 4574:static const nir_search_expression replace240_0_0_0_0 = {
        -:        -: 4575:   { nir_search_value_expression, 0 },
        -:        -: 4576:   false,
        -:        -: 4577:   nir_op_fsat,
        -:        -: 4578:   { &replace240_0_0_0_0_0.value },
        -:        -: 4579:   NULL,
        -:        -: 4580:};
        -:        -: 4581:
        -:        -: 4582:static const nir_search_constant replace240_0_0_0_1 = {
        -:        -: 4583:   { nir_search_value_constant, 0 },
        -:        -: 4584:   nir_type_float, { 0x40efffe000000000 /* 65535.0 */ },
        -:        -: 4585:};
        -:        -: 4586:static const nir_search_expression replace240_0_0_0 = {
        -:        -: 4587:   { nir_search_value_expression, 0 },
        -:        -: 4588:   false,
        -:        -: 4589:   nir_op_fmul,
        -:        -: 4590:   { &replace240_0_0_0_0.value, &replace240_0_0_0_1.value },
        -:        -: 4591:   NULL,
        -:        -: 4592:};
        -:        -: 4593:static const nir_search_expression replace240_0_0 = {
        -:        -: 4594:   { nir_search_value_expression, 0 },
        -:        -: 4595:   false,
        -:        -: 4596:   nir_op_fround_even,
        -:        -: 4597:   { &replace240_0_0_0.value },
        -:        -: 4598:   NULL,
        -:        -: 4599:};
        -:        -: 4600:static const nir_search_expression replace240_0 = {
        -:        -: 4601:   { nir_search_value_expression, 0 },
        -:        -: 4602:   false,
        -:        -: 4603:   nir_op_f2u32,
        -:        -: 4604:   { &replace240_0_0.value },
        -:        -: 4605:   NULL,
        -:        -: 4606:};
        -:        -: 4607:static const nir_search_expression replace240 = {
        -:        -: 4608:   { nir_search_value_expression, 0 },
        -:        -: 4609:   false,
        -:        -: 4610:   nir_op_pack_uvec2_to_uint,
        -:        -: 4611:   { &replace240_0.value },
        -:        -: 4612:   NULL,
        -:        -: 4613:};
        -:        -: 4614:
        -:        -: 4615:static const struct transform nir_opt_algebraic_pack_unorm_2x16_xforms[] = {
        -:        -: 4616:   { &search240, &replace240.value, 29 },
        -:        -: 4617:};
        -:        -: 4618:   
        -:        -: 4619:static const nir_search_variable search241_0 = {
        -:        -: 4620:   { nir_search_value_variable, 0 },
        -:        -: 4621:   0, /* v */
        -:        -: 4622:   false,
        -:        -: 4623:   nir_type_invalid,
        -:        -: 4624:   NULL,
        -:        -: 4625:};
        -:        -: 4626:static const nir_search_expression search241 = {
        -:        -: 4627:   { nir_search_value_expression, 0 },
        -:        -: 4628:   false,
        -:        -: 4629:   nir_op_pack_unorm_4x8,
        -:        -: 4630:   { &search241_0.value },
        -:        -: 4631:   NULL,
        -:        -: 4632:};
        -:        -: 4633:   
        -:        -: 4634:static const nir_search_variable replace241_0_0_0_0_0 = {
        -:        -: 4635:   { nir_search_value_variable, 0 },
        -:        -: 4636:   0, /* v */
        -:        -: 4637:   false,
        -:        -: 4638:   nir_type_invalid,
        -:        -: 4639:   NULL,
        -:        -: 4640:};
        -:        -: 4641:static const nir_search_expression replace241_0_0_0_0 = {
        -:        -: 4642:   { nir_search_value_expression, 0 },
        -:        -: 4643:   false,
        -:        -: 4644:   nir_op_fsat,
        -:        -: 4645:   { &replace241_0_0_0_0_0.value },
        -:        -: 4646:   NULL,
        -:        -: 4647:};
        -:        -: 4648:
        -:        -: 4649:static const nir_search_constant replace241_0_0_0_1 = {
        -:        -: 4650:   { nir_search_value_constant, 0 },
        -:        -: 4651:   nir_type_float, { 0x406fe00000000000 /* 255.0 */ },
        -:        -: 4652:};
        -:        -: 4653:static const nir_search_expression replace241_0_0_0 = {
        -:        -: 4654:   { nir_search_value_expression, 0 },
        -:        -: 4655:   false,
        -:        -: 4656:   nir_op_fmul,
        -:        -: 4657:   { &replace241_0_0_0_0.value, &replace241_0_0_0_1.value },
        -:        -: 4658:   NULL,
        -:        -: 4659:};
        -:        -: 4660:static const nir_search_expression replace241_0_0 = {
        -:        -: 4661:   { nir_search_value_expression, 0 },
        -:        -: 4662:   false,
        -:        -: 4663:   nir_op_fround_even,
        -:        -: 4664:   { &replace241_0_0_0.value },
        -:        -: 4665:   NULL,
        -:        -: 4666:};
        -:        -: 4667:static const nir_search_expression replace241_0 = {
        -:        -: 4668:   { nir_search_value_expression, 0 },
        -:        -: 4669:   false,
        -:        -: 4670:   nir_op_f2u32,
        -:        -: 4671:   { &replace241_0_0.value },
        -:        -: 4672:   NULL,
        -:        -: 4673:};
        -:        -: 4674:static const nir_search_expression replace241 = {
        -:        -: 4675:   { nir_search_value_expression, 0 },
        -:        -: 4676:   false,
        -:        -: 4677:   nir_op_pack_uvec4_to_uint,
        -:        -: 4678:   { &replace241_0.value },
        -:        -: 4679:   NULL,
        -:        -: 4680:};
        -:        -: 4681:
        -:        -: 4682:static const struct transform nir_opt_algebraic_pack_unorm_4x8_xforms[] = {
        -:        -: 4683:   { &search241, &replace241.value, 30 },
        -:        -: 4684:};
        -:        -: 4685:   
        -:        -: 4686:static const nir_search_variable search243_0 = {
        -:        -: 4687:   { nir_search_value_variable, 0 },
        -:        -: 4688:   0, /* v */
        -:        -: 4689:   false,
        -:        -: 4690:   nir_type_invalid,
        -:        -: 4691:   NULL,
        -:        -: 4692:};
        -:        -: 4693:static const nir_search_expression search243 = {
        -:        -: 4694:   { nir_search_value_expression, 0 },
        -:        -: 4695:   false,
        -:        -: 4696:   nir_op_pack_snorm_4x8,
        -:        -: 4697:   { &search243_0.value },
        -:        -: 4698:   NULL,
        -:        -: 4699:};
        -:        -: 4700:   
        -:        -: 4701:static const nir_search_constant replace243_0_0_0_0_0 = {
        -:        -: 4702:   { nir_search_value_constant, 0 },
        -:        -: 4703:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 4704:};
        -:        -: 4705:
        -:        -: 4706:static const nir_search_constant replace243_0_0_0_0_1_0 = {
        -:        -: 4707:   { nir_search_value_constant, 0 },
        -:        -: 4708:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -: 4709:};
        -:        -: 4710:
        -:        -: 4711:static const nir_search_variable replace243_0_0_0_0_1_1 = {
        -:        -: 4712:   { nir_search_value_variable, 0 },
        -:        -: 4713:   0, /* v */
        -:        -: 4714:   false,
        -:        -: 4715:   nir_type_invalid,
        -:        -: 4716:   NULL,
        -:        -: 4717:};
        -:        -: 4718:static const nir_search_expression replace243_0_0_0_0_1 = {
        -:        -: 4719:   { nir_search_value_expression, 0 },
        -:        -: 4720:   false,
        -:        -: 4721:   nir_op_fmax,
        -:        -: 4722:   { &replace243_0_0_0_0_1_0.value, &replace243_0_0_0_0_1_1.value },
        -:        -: 4723:   NULL,
        -:        -: 4724:};
        -:        -: 4725:static const nir_search_expression replace243_0_0_0_0 = {
        -:        -: 4726:   { nir_search_value_expression, 0 },
        -:        -: 4727:   false,
        -:        -: 4728:   nir_op_fmin,
        -:        -: 4729:   { &replace243_0_0_0_0_0.value, &replace243_0_0_0_0_1.value },
        -:        -: 4730:   NULL,
        -:        -: 4731:};
        -:        -: 4732:
        -:        -: 4733:static const nir_search_constant replace243_0_0_0_1 = {
        -:        -: 4734:   { nir_search_value_constant, 0 },
        -:        -: 4735:   nir_type_float, { 0x405fc00000000000 /* 127.0 */ },
        -:        -: 4736:};
        -:        -: 4737:static const nir_search_expression replace243_0_0_0 = {
        -:        -: 4738:   { nir_search_value_expression, 0 },
        -:        -: 4739:   false,
        -:        -: 4740:   nir_op_fmul,
        -:        -: 4741:   { &replace243_0_0_0_0.value, &replace243_0_0_0_1.value },
        -:        -: 4742:   NULL,
        -:        -: 4743:};
        -:        -: 4744:static const nir_search_expression replace243_0_0 = {
        -:        -: 4745:   { nir_search_value_expression, 0 },
        -:        -: 4746:   false,
        -:        -: 4747:   nir_op_fround_even,
        -:        -: 4748:   { &replace243_0_0_0.value },
        -:        -: 4749:   NULL,
        -:        -: 4750:};
        -:        -: 4751:static const nir_search_expression replace243_0 = {
        -:        -: 4752:   { nir_search_value_expression, 0 },
        -:        -: 4753:   false,
        -:        -: 4754:   nir_op_f2i32,
        -:        -: 4755:   { &replace243_0_0.value },
        -:        -: 4756:   NULL,
        -:        -: 4757:};
        -:        -: 4758:static const nir_search_expression replace243 = {
        -:        -: 4759:   { nir_search_value_expression, 0 },
        -:        -: 4760:   false,
        -:        -: 4761:   nir_op_pack_uvec4_to_uint,
        -:        -: 4762:   { &replace243_0.value },
        -:        -: 4763:   NULL,
        -:        -: 4764:};
        -:        -: 4765:
        -:        -: 4766:static const struct transform nir_opt_algebraic_pack_snorm_4x8_xforms[] = {
        -:        -: 4767:   { &search243, &replace243.value, 32 },
        -:        -: 4768:};
        -:        -: 4769:   
        -:        -: 4770:static const nir_search_variable search133_0 = {
        -:        -: 4771:   { nir_search_value_variable, 0 },
        -:        -: 4772:   0, /* a */
        -:        -: 4773:   false,
        -:        -: 4774:   nir_type_invalid,
        -:        -: 4775:   NULL,
        -:        -: 4776:};
        -:        -: 4777:
        -:        -: 4778:static const nir_search_constant search133_1 = {
        -:        -: 4779:   { nir_search_value_constant, 0 },
        -:        -: 4780:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 4781:};
        -:        -: 4782:static const nir_search_expression search133 = {
        -:        -: 4783:   { nir_search_value_expression, 0 },
        -:        -: 4784:   false,
        -:        -: 4785:   nir_op_fand,
        -:        -: 4786:   { &search133_0.value, &search133_1.value },
        -:        -: 4787:   NULL,
        -:        -: 4788:};
        -:        -: 4789:   
        -:        -: 4790:static const nir_search_constant replace133 = {
        -:        -: 4791:   { nir_search_value_constant, 0 },
        -:        -: 4792:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 4793:};
        -:        -: 4794:
        -:        -: 4795:static const struct transform nir_opt_algebraic_fand_xforms[] = {
        -:        -: 4796:   { &search133, &replace133.value, 0 },
        -:        -: 4797:};
        -:        -: 4798:   
        -:        -: 4799:static const nir_search_variable search12_0_0 = {
        -:        -: 4800:   { nir_search_value_variable, 0 },
        -:        -: 4801:   0, /* a */
        -:        -: 4802:   false,
        -:        -: 4803:   nir_type_invalid,
        -:        -: 4804:   NULL,
        -:        -: 4805:};
        -:        -: 4806:static const nir_search_expression search12_0 = {
        -:        -: 4807:   { nir_search_value_expression, 0 },
        -:        -: 4808:   false,
        -:        -: 4809:   nir_op_fabs,
        -:        -: 4810:   { &search12_0_0.value },
        -:        -: 4811:   NULL,
        -:        -: 4812:};
        -:        -: 4813:static const nir_search_expression search12 = {
        -:        -: 4814:   { nir_search_value_expression, 0 },
        -:        -: 4815:   false,
        -:        -: 4816:   nir_op_fabs,
        -:        -: 4817:   { &search12_0.value },
        -:        -: 4818:   NULL,
        -:        -: 4819:};
        -:        -: 4820:   
        -:        -: 4821:static const nir_search_variable replace12_0 = {
        -:        -: 4822:   { nir_search_value_variable, 0 },
        -:        -: 4823:   0, /* a */
        -:        -: 4824:   false,
        -:        -: 4825:   nir_type_invalid,
        -:        -: 4826:   NULL,
        -:        -: 4827:};
        -:        -: 4828:static const nir_search_expression replace12 = {
        -:        -: 4829:   { nir_search_value_expression, 0 },
        -:        -: 4830:   false,
        -:        -: 4831:   nir_op_fabs,
        -:        -: 4832:   { &replace12_0.value },
        -:        -: 4833:   NULL,
        -:        -: 4834:};
        -:        -: 4835:   
        -:        -: 4836:static const nir_search_variable search13_0_0 = {
        -:        -: 4837:   { nir_search_value_variable, 0 },
        -:        -: 4838:   0, /* a */
        -:        -: 4839:   false,
        -:        -: 4840:   nir_type_invalid,
        -:        -: 4841:   NULL,
        -:        -: 4842:};
        -:        -: 4843:static const nir_search_expression search13_0 = {
        -:        -: 4844:   { nir_search_value_expression, 0 },
        -:        -: 4845:   false,
        -:        -: 4846:   nir_op_fneg,
        -:        -: 4847:   { &search13_0_0.value },
        -:        -: 4848:   NULL,
        -:        -: 4849:};
        -:        -: 4850:static const nir_search_expression search13 = {
        -:        -: 4851:   { nir_search_value_expression, 0 },
        -:        -: 4852:   false,
        -:        -: 4853:   nir_op_fabs,
        -:        -: 4854:   { &search13_0.value },
        -:        -: 4855:   NULL,
        -:        -: 4856:};
        -:        -: 4857:   
        -:        -: 4858:static const nir_search_variable replace13_0 = {
        -:        -: 4859:   { nir_search_value_variable, 0 },
        -:        -: 4860:   0, /* a */
        -:        -: 4861:   false,
        -:        -: 4862:   nir_type_invalid,
        -:        -: 4863:   NULL,
        -:        -: 4864:};
        -:        -: 4865:static const nir_search_expression replace13 = {
        -:        -: 4866:   { nir_search_value_expression, 0 },
        -:        -: 4867:   false,
        -:        -: 4868:   nir_op_fabs,
        -:        -: 4869:   { &replace13_0.value },
        -:        -: 4870:   NULL,
        -:        -: 4871:};
        -:        -: 4872:   
        -:        -: 4873:static const nir_search_variable search14_0_0 = {
        -:        -: 4874:   { nir_search_value_variable, 0 },
        -:        -: 4875:   0, /* a */
        -:        -: 4876:   false,
        -:        -: 4877:   nir_type_invalid,
        -:        -: 4878:   NULL,
        -:        -: 4879:};
        -:        -: 4880:static const nir_search_expression search14_0 = {
        -:        -: 4881:   { nir_search_value_expression, 0 },
        -:        -: 4882:   false,
        -:        -: 4883:   nir_op_u2f32,
        -:        -: 4884:   { &search14_0_0.value },
        -:        -: 4885:   NULL,
        -:        -: 4886:};
        -:        -: 4887:static const nir_search_expression search14 = {
        -:        -: 4888:   { nir_search_value_expression, 0 },
        -:        -: 4889:   false,
        -:        -: 4890:   nir_op_fabs,
        -:        -: 4891:   { &search14_0.value },
        -:        -: 4892:   NULL,
        -:        -: 4893:};
        -:        -: 4894:   
        -:        -: 4895:static const nir_search_variable replace14_0 = {
        -:        -: 4896:   { nir_search_value_variable, 0 },
        -:        -: 4897:   0, /* a */
        -:        -: 4898:   false,
        -:        -: 4899:   nir_type_invalid,
        -:        -: 4900:   NULL,
        -:        -: 4901:};
        -:        -: 4902:static const nir_search_expression replace14 = {
        -:        -: 4903:   { nir_search_value_expression, 0 },
        -:        -: 4904:   false,
        -:        -: 4905:   nir_op_u2f32,
        -:        -: 4906:   { &replace14_0.value },
        -:        -: 4907:   NULL,
        -:        -: 4908:};
        -:        -: 4909:   
        -:        -: 4910:static const nir_search_variable search110_0_0 = {
        -:        -: 4911:   { nir_search_value_variable, 0 },
        -:        -: 4912:   0, /* a */
        -:        -: 4913:   false,
        -:        -: 4914:   nir_type_invalid,
        -:        -: 4915:   NULL,
        -:        -: 4916:};
        -:        -: 4917:
        -:        -: 4918:static const nir_search_variable search110_0_1 = {
        -:        -: 4919:   { nir_search_value_variable, 0 },
        -:        -: 4920:   1, /* b */
        -:        -: 4921:   false,
        -:        -: 4922:   nir_type_invalid,
        -:        -: 4923:   NULL,
        -:        -: 4924:};
        -:        -: 4925:static const nir_search_expression search110_0 = {
        -:        -: 4926:   { nir_search_value_expression, 0 },
        -:        -: 4927:   false,
        -:        -: 4928:   nir_op_slt,
        -:        -: 4929:   { &search110_0_0.value, &search110_0_1.value },
        -:        -: 4930:   NULL,
        -:        -: 4931:};
        -:        -: 4932:static const nir_search_expression search110 = {
        -:        -: 4933:   { nir_search_value_expression, 0 },
        -:        -: 4934:   false,
        -:        -: 4935:   nir_op_fabs,
        -:        -: 4936:   { &search110_0.value },
        -:        -: 4937:   NULL,
        -:        -: 4938:};
        -:        -: 4939:   
        -:        -: 4940:static const nir_search_variable replace110_0 = {
        -:        -: 4941:   { nir_search_value_variable, 0 },
        -:        -: 4942:   0, /* a */
        -:        -: 4943:   false,
        -:        -: 4944:   nir_type_invalid,
        -:        -: 4945:   NULL,
        -:        -: 4946:};
        -:        -: 4947:
        -:        -: 4948:static const nir_search_variable replace110_1 = {
        -:        -: 4949:   { nir_search_value_variable, 0 },
        -:        -: 4950:   1, /* b */
        -:        -: 4951:   false,
        -:        -: 4952:   nir_type_invalid,
        -:        -: 4953:   NULL,
        -:        -: 4954:};
        -:        -: 4955:static const nir_search_expression replace110 = {
        -:        -: 4956:   { nir_search_value_expression, 0 },
        -:        -: 4957:   false,
        -:        -: 4958:   nir_op_slt,
        -:        -: 4959:   { &replace110_0.value, &replace110_1.value },
        -:        -: 4960:   NULL,
        -:        -: 4961:};
        -:        -: 4962:   
        -:        -: 4963:static const nir_search_variable search111_0_0 = {
        -:        -: 4964:   { nir_search_value_variable, 0 },
        -:        -: 4965:   0, /* a */
        -:        -: 4966:   false,
        -:        -: 4967:   nir_type_invalid,
        -:        -: 4968:   NULL,
        -:        -: 4969:};
        -:        -: 4970:
        -:        -: 4971:static const nir_search_variable search111_0_1 = {
        -:        -: 4972:   { nir_search_value_variable, 0 },
        -:        -: 4973:   1, /* b */
        -:        -: 4974:   false,
        -:        -: 4975:   nir_type_invalid,
        -:        -: 4976:   NULL,
        -:        -: 4977:};
        -:        -: 4978:static const nir_search_expression search111_0 = {
        -:        -: 4979:   { nir_search_value_expression, 0 },
        -:        -: 4980:   false,
        -:        -: 4981:   nir_op_sge,
        -:        -: 4982:   { &search111_0_0.value, &search111_0_1.value },
        -:        -: 4983:   NULL,
        -:        -: 4984:};
        -:        -: 4985:static const nir_search_expression search111 = {
        -:        -: 4986:   { nir_search_value_expression, 0 },
        -:        -: 4987:   false,
        -:        -: 4988:   nir_op_fabs,
        -:        -: 4989:   { &search111_0.value },
        -:        -: 4990:   NULL,
        -:        -: 4991:};
        -:        -: 4992:   
        -:        -: 4993:static const nir_search_variable replace111_0 = {
        -:        -: 4994:   { nir_search_value_variable, 0 },
        -:        -: 4995:   0, /* a */
        -:        -: 4996:   false,
        -:        -: 4997:   nir_type_invalid,
        -:        -: 4998:   NULL,
        -:        -: 4999:};
        -:        -: 5000:
        -:        -: 5001:static const nir_search_variable replace111_1 = {
        -:        -: 5002:   { nir_search_value_variable, 0 },
        -:        -: 5003:   1, /* b */
        -:        -: 5004:   false,
        -:        -: 5005:   nir_type_invalid,
        -:        -: 5006:   NULL,
        -:        -: 5007:};
        -:        -: 5008:static const nir_search_expression replace111 = {
        -:        -: 5009:   { nir_search_value_expression, 0 },
        -:        -: 5010:   false,
        -:        -: 5011:   nir_op_sge,
        -:        -: 5012:   { &replace111_0.value, &replace111_1.value },
        -:        -: 5013:   NULL,
        -:        -: 5014:};
        -:        -: 5015:   
        -:        -: 5016:static const nir_search_variable search112_0_0 = {
        -:        -: 5017:   { nir_search_value_variable, 0 },
        -:        -: 5018:   0, /* a */
        -:        -: 5019:   false,
        -:        -: 5020:   nir_type_invalid,
        -:        -: 5021:   NULL,
        -:        -: 5022:};
        -:        -: 5023:
        -:        -: 5024:static const nir_search_variable search112_0_1 = {
        -:        -: 5025:   { nir_search_value_variable, 0 },
        -:        -: 5026:   1, /* b */
        -:        -: 5027:   false,
        -:        -: 5028:   nir_type_invalid,
        -:        -: 5029:   NULL,
        -:        -: 5030:};
        -:        -: 5031:static const nir_search_expression search112_0 = {
        -:        -: 5032:   { nir_search_value_expression, 0 },
        -:        -: 5033:   false,
        -:        -: 5034:   nir_op_seq,
        -:        -: 5035:   { &search112_0_0.value, &search112_0_1.value },
        -:        -: 5036:   NULL,
        -:        -: 5037:};
        -:        -: 5038:static const nir_search_expression search112 = {
        -:        -: 5039:   { nir_search_value_expression, 0 },
        -:        -: 5040:   false,
        -:        -: 5041:   nir_op_fabs,
        -:        -: 5042:   { &search112_0.value },
        -:        -: 5043:   NULL,
        -:        -: 5044:};
        -:        -: 5045:   
        -:        -: 5046:static const nir_search_variable replace112_0 = {
        -:        -: 5047:   { nir_search_value_variable, 0 },
        -:        -: 5048:   0, /* a */
        -:        -: 5049:   false,
        -:        -: 5050:   nir_type_invalid,
        -:        -: 5051:   NULL,
        -:        -: 5052:};
        -:        -: 5053:
        -:        -: 5054:static const nir_search_variable replace112_1 = {
        -:        -: 5055:   { nir_search_value_variable, 0 },
        -:        -: 5056:   1, /* b */
        -:        -: 5057:   false,
        -:        -: 5058:   nir_type_invalid,
        -:        -: 5059:   NULL,
        -:        -: 5060:};
        -:        -: 5061:static const nir_search_expression replace112 = {
        -:        -: 5062:   { nir_search_value_expression, 0 },
        -:        -: 5063:   false,
        -:        -: 5064:   nir_op_seq,
        -:        -: 5065:   { &replace112_0.value, &replace112_1.value },
        -:        -: 5066:   NULL,
        -:        -: 5067:};
        -:        -: 5068:   
        -:        -: 5069:static const nir_search_variable search113_0_0 = {
        -:        -: 5070:   { nir_search_value_variable, 0 },
        -:        -: 5071:   0, /* a */
        -:        -: 5072:   false,
        -:        -: 5073:   nir_type_invalid,
        -:        -: 5074:   NULL,
        -:        -: 5075:};
        -:        -: 5076:
        -:        -: 5077:static const nir_search_variable search113_0_1 = {
        -:        -: 5078:   { nir_search_value_variable, 0 },
        -:        -: 5079:   1, /* b */
        -:        -: 5080:   false,
        -:        -: 5081:   nir_type_invalid,
        -:        -: 5082:   NULL,
        -:        -: 5083:};
        -:        -: 5084:static const nir_search_expression search113_0 = {
        -:        -: 5085:   { nir_search_value_expression, 0 },
        -:        -: 5086:   false,
        -:        -: 5087:   nir_op_sne,
        -:        -: 5088:   { &search113_0_0.value, &search113_0_1.value },
        -:        -: 5089:   NULL,
        -:        -: 5090:};
        -:        -: 5091:static const nir_search_expression search113 = {
        -:        -: 5092:   { nir_search_value_expression, 0 },
        -:        -: 5093:   false,
        -:        -: 5094:   nir_op_fabs,
        -:        -: 5095:   { &search113_0.value },
        -:        -: 5096:   NULL,
        -:        -: 5097:};
        -:        -: 5098:   
        -:        -: 5099:static const nir_search_variable replace113_0 = {
        -:        -: 5100:   { nir_search_value_variable, 0 },
        -:        -: 5101:   0, /* a */
        -:        -: 5102:   false,
        -:        -: 5103:   nir_type_invalid,
        -:        -: 5104:   NULL,
        -:        -: 5105:};
        -:        -: 5106:
        -:        -: 5107:static const nir_search_variable replace113_1 = {
        -:        -: 5108:   { nir_search_value_variable, 0 },
        -:        -: 5109:   1, /* b */
        -:        -: 5110:   false,
        -:        -: 5111:   nir_type_invalid,
        -:        -: 5112:   NULL,
        -:        -: 5113:};
        -:        -: 5114:static const nir_search_expression replace113 = {
        -:        -: 5115:   { nir_search_value_expression, 0 },
        -:        -: 5116:   false,
        -:        -: 5117:   nir_op_sne,
        -:        -: 5118:   { &replace113_0.value, &replace113_1.value },
        -:        -: 5119:   NULL,
        -:        -: 5120:};
        -:        -: 5121:   
        -:        -: 5122:static const nir_search_variable search199_0_0 = {
        -:        -: 5123:   { nir_search_value_variable, 0 },
        -:        -: 5124:   0, /* a */
        -:        -: 5125:   false,
        -:        -: 5126:   nir_type_invalid,
        -:        -: 5127:   NULL,
        -:        -: 5128:};
        -:        -: 5129:static const nir_search_expression search199_0 = {
        -:        -: 5130:   { nir_search_value_expression, 0 },
        -:        -: 5131:   false,
        -:        -: 5132:   nir_op_b2f,
        -:        -: 5133:   { &search199_0_0.value },
        -:        -: 5134:   NULL,
        -:        -: 5135:};
        -:        -: 5136:static const nir_search_expression search199 = {
        -:        -: 5137:   { nir_search_value_expression, 0 },
        -:        -: 5138:   false,
        -:        -: 5139:   nir_op_fabs,
        -:        -: 5140:   { &search199_0.value },
        -:        -: 5141:   NULL,
        -:        -: 5142:};
        -:        -: 5143:   
        -:        -: 5144:static const nir_search_variable replace199_0 = {
        -:        -: 5145:   { nir_search_value_variable, 0 },
        -:        -: 5146:   0, /* a */
        -:        -: 5147:   false,
        -:        -: 5148:   nir_type_invalid,
        -:        -: 5149:   NULL,
        -:        -: 5150:};
        -:        -: 5151:static const nir_search_expression replace199 = {
        -:        -: 5152:   { nir_search_value_expression, 0 },
        -:        -: 5153:   false,
        -:        -: 5154:   nir_op_b2f,
        -:        -: 5155:   { &replace199_0.value },
        -:        -: 5156:   NULL,
        -:        -: 5157:};
        -:        -: 5158:   
        -:        -: 5159:static const nir_search_constant search220_0_0 = {
        -:        -: 5160:   { nir_search_value_constant, 0 },
        -:        -: 5161:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 5162:};
        -:        -: 5163:
        -:        -: 5164:static const nir_search_variable search220_0_1 = {
        -:        -: 5165:   { nir_search_value_variable, 0 },
        -:        -: 5166:   0, /* a */
        -:        -: 5167:   false,
        -:        -: 5168:   nir_type_invalid,
        -:        -: 5169:   NULL,
        -:        -: 5170:};
        -:        -: 5171:static const nir_search_expression search220_0 = {
        -:        -: 5172:   { nir_search_value_expression, 0 },
        -:        -: 5173:   false,
        -:        -: 5174:   nir_op_fsub,
        -:        -: 5175:   { &search220_0_0.value, &search220_0_1.value },
        -:        -: 5176:   NULL,
        -:        -: 5177:};
        -:        -: 5178:static const nir_search_expression search220 = {
        -:        -: 5179:   { nir_search_value_expression, 0 },
        -:        -: 5180:   false,
        -:        -: 5181:   nir_op_fabs,
        -:        -: 5182:   { &search220_0.value },
        -:        -: 5183:   NULL,
        -:        -: 5184:};
        -:        -: 5185:   
        -:        -: 5186:static const nir_search_variable replace220_0 = {
        -:        -: 5187:   { nir_search_value_variable, 0 },
        -:        -: 5188:   0, /* a */
        -:        -: 5189:   false,
        -:        -: 5190:   nir_type_invalid,
        -:        -: 5191:   NULL,
        -:        -: 5192:};
        -:        -: 5193:static const nir_search_expression replace220 = {
        -:        -: 5194:   { nir_search_value_expression, 0 },
        -:        -: 5195:   false,
        -:        -: 5196:   nir_op_fabs,
        -:        -: 5197:   { &replace220_0.value },
        -:        -: 5198:   NULL,
        -:        -: 5199:};
        -:        -: 5200:
        -:        -: 5201:static const struct transform nir_opt_algebraic_fabs_xforms[] = {
        -:        -: 5202:   { &search12, &replace12.value, 0 },
        -:        -: 5203:   { &search13, &replace13.value, 0 },
        -:        -: 5204:   { &search14, &replace14.value, 0 },
        -:        -: 5205:   { &search110, &replace110.value, 0 },
        -:        -: 5206:   { &search111, &replace111.value, 0 },
        -:        -: 5207:   { &search112, &replace112.value, 0 },
        -:        -: 5208:   { &search113, &replace113.value, 0 },
        -:        -: 5209:   { &search199, &replace199.value, 0 },
        -:        -: 5210:   { &search220, &replace220.value, 0 },
        -:        -: 5211:};
        -:        -: 5212:   
        -:        -: 5213:static const nir_search_variable search5_0 = {
        -:        -: 5214:   { nir_search_value_variable, 0 },
        -:        -: 5215:   0, /* a */
        -:        -: 5216:   false,
        -:        -: 5217:   nir_type_invalid,
        -:        -: 5218:   NULL,
        -:        -: 5219:};
        -:        -: 5220:
        -:        -: 5221:static const nir_search_constant search5_1 = {
        -:        -: 5222:   { nir_search_value_constant, 0 },
        -:        -: 5223:   nir_type_int, { 0x1 /* 1 */ },
        -:        -: 5224:};
        -:        -: 5225:static const nir_search_expression search5 = {
        -:        -: 5226:   { nir_search_value_expression, 0 },
        -:        -: 5227:   false,
        -:        -: 5228:   nir_op_imod,
        -:        -: 5229:   { &search5_0.value, &search5_1.value },
        -:        -: 5230:   NULL,
        -:        -: 5231:};
        -:        -: 5232:   
        -:        -: 5233:static const nir_search_constant replace5 = {
        -:        -: 5234:   { nir_search_value_constant, 0 },
        -:        -: 5235:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 5236:};
        -:        -: 5237:
        -:        -: 5238:static const struct transform nir_opt_algebraic_imod_xforms[] = {
        -:        -: 5239:   { &search5, &replace5.value, 0 },
        -:        -: 5240:};
        -:        -: 5241:   
        -:        -: 5242:static const nir_search_variable search129_0 = {
        -:        -: 5243:   { nir_search_value_variable, 0 },
        -:        -: 5244:   0, /* a */
        -:        -: 5245:   false,
        -:        -: 5246:   nir_type_invalid,
        -:        -: 5247:   NULL,
        -:        -: 5248:};
        -:        -: 5249:
        -:        -: 5250:static const nir_search_variable search129_1 = {
        -:        -: 5251:   { nir_search_value_variable, 0 },
        -:        -: 5252:   0, /* a */
        -:        -: 5253:   false,
        -:        -: 5254:   nir_type_invalid,
        -:        -: 5255:   NULL,
        -:        -: 5256:};
        -:        -: 5257:static const nir_search_expression search129 = {
        -:        -: 5258:   { nir_search_value_expression, 0 },
        -:        -: 5259:   false,
        -:        -: 5260:   nir_op_ieq,
        -:        -: 5261:   { &search129_0.value, &search129_1.value },
        -:        -: 5262:   NULL,
        -:        -: 5263:};
        -:        -: 5264:   
        -:        -: 5265:static const nir_search_constant replace129 = {
        -:        -: 5266:   { nir_search_value_constant, 32 },
        -:        -: 5267:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 5268:};
        -:        -: 5269:   
        -:        -: 5270:static const nir_search_variable search179_0 = {
        -:        -: 5271:   { nir_search_value_variable, 32 },
        -:        -: 5272:   0, /* a */
        -:        -: 5273:   false,
        -:        -: 5274:   nir_type_bool32,
        -:        -: 5275:   NULL,
        -:        -: 5276:};
        -:        -: 5277:
        -:        -: 5278:static const nir_search_constant search179_1 = {
        -:        -: 5279:   { nir_search_value_constant, 32 },
        -:        -: 5280:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 5281:};
        -:        -: 5282:static const nir_search_expression search179 = {
        -:        -: 5283:   { nir_search_value_expression, 0 },
        -:        -: 5284:   false,
        -:        -: 5285:   nir_op_ieq,
        -:        -: 5286:   { &search179_0.value, &search179_1.value },
        -:        -: 5287:   NULL,
        -:        -: 5288:};
        -:        -: 5289:   
        -:        -: 5290:static const nir_search_variable replace179 = {
        -:        -: 5291:   { nir_search_value_variable, 0 },
        -:        -: 5292:   0, /* a */
        -:        -: 5293:   false,
        -:        -: 5294:   nir_type_invalid,
        -:        -: 5295:   NULL,
        -:        -: 5296:};
        -:        -: 5297:   
        -:        -: 5298:static const nir_search_variable search182_0 = {
        -:        -: 5299:   { nir_search_value_variable, 32 },
        -:        -: 5300:   0, /* a */
        -:        -: 5301:   false,
        -:        -: 5302:   nir_type_bool32,
        -:        -: 5303:   NULL,
        -:        -: 5304:};
        -:        -: 5305:
        -:        -: 5306:static const nir_search_constant search182_1 = {
        -:        -: 5307:   { nir_search_value_constant, 32 },
        -:        -: 5308:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -: 5309:};
        -:        -: 5310:static const nir_search_expression search182 = {
        -:        -: 5311:   { nir_search_value_expression, 0 },
        -:        -: 5312:   false,
        -:        -: 5313:   nir_op_ieq,
        -:        -: 5314:   { &search182_0.value, &search182_1.value },
        -:        -: 5315:   (is_not_used_by_if),
        -:        -: 5316:};
        -:        -: 5317:   
        -:        -: 5318:static const nir_search_variable replace182_0 = {
        -:        -: 5319:   { nir_search_value_variable, 0 },
        -:        -: 5320:   0, /* a */
        -:        -: 5321:   false,
        -:        -: 5322:   nir_type_invalid,
        -:        -: 5323:   NULL,
        -:        -: 5324:};
        -:        -: 5325:static const nir_search_expression replace182 = {
        -:        -: 5326:   { nir_search_value_expression, 0 },
        -:        -: 5327:   false,
        -:        -: 5328:   nir_op_inot,
        -:        -: 5329:   { &replace182_0.value },
        -:        -: 5330:   NULL,
        -:        -: 5331:};
        -:        -: 5332:   
        -:        -: 5333:static const nir_search_variable search269_0_0 = {
        -:        -: 5334:   { nir_search_value_variable, 0 },
        -:        -: 5335:   0, /* a */
        -:        -: 5336:   false,
        -:        -: 5337:   nir_type_invalid,
        -:        -: 5338:   NULL,
        -:        -: 5339:};
        -:        -: 5340:
        -:        -: 5341:static const nir_search_variable search269_0_1 = {
        -:        -: 5342:   { nir_search_value_variable, 0 },
        -:        -: 5343:   1, /* b */
        -:        -: 5344:   true,
        -:        -: 5345:   nir_type_invalid,
        -:        -: 5346:   NULL,
        -:        -: 5347:};
        -:        -: 5348:
        -:        -: 5349:static const nir_search_variable search269_0_2 = {
        -:        -: 5350:   { nir_search_value_variable, 0 },
        -:        -: 5351:   2, /* c */
        -:        -: 5352:   true,
        -:        -: 5353:   nir_type_invalid,
        -:        -: 5354:   NULL,
        -:        -: 5355:};
        -:        -: 5356:static const nir_search_expression search269_0 = {
        -:        -: 5357:   { nir_search_value_expression, 0 },
        -:        -: 5358:   false,
        -:        -: 5359:   nir_op_bcsel,
        -:        -: 5360:   { &search269_0_0.value, &search269_0_1.value, &search269_0_2.value },
        -:        -: 5361:   NULL,
        -:        -: 5362:};
        -:        -: 5363:
        -:        -: 5364:static const nir_search_variable search269_1 = {
        -:        -: 5365:   { nir_search_value_variable, 0 },
        -:        -: 5366:   3, /* d */
        -:        -: 5367:   true,
        -:        -: 5368:   nir_type_invalid,
        -:        -: 5369:   NULL,
        -:        -: 5370:};
        -:        -: 5371:static const nir_search_expression search269 = {
        -:        -: 5372:   { nir_search_value_expression, 0 },
        -:        -: 5373:   false,
        -:        -: 5374:   nir_op_ieq,
        -:        -: 5375:   { &search269_0.value, &search269_1.value },
        -:        -: 5376:   NULL,
        -:        -: 5377:};
        -:        -: 5378:   
        -:        -: 5379:static const nir_search_variable replace269_0 = {
        -:        -: 5380:   { nir_search_value_variable, 0 },
        -:        -: 5381:   0, /* a */
        -:        -: 5382:   false,
        -:        -: 5383:   nir_type_invalid,
        -:        -: 5384:   NULL,
        -:        -: 5385:};
        -:        -: 5386:
        -:        -: 5387:static const nir_search_variable replace269_1_0 = {
        -:        -: 5388:   { nir_search_value_variable, 0 },
        -:        -: 5389:   1, /* b */
        -:        -: 5390:   false,
        -:        -: 5391:   nir_type_invalid,
        -:        -: 5392:   NULL,
        -:        -: 5393:};
        -:        -: 5394:
        -:        -: 5395:static const nir_search_variable replace269_1_1 = {
        -:        -: 5396:   { nir_search_value_variable, 0 },
        -:        -: 5397:   3, /* d */
        -:        -: 5398:   false,
        -:        -: 5399:   nir_type_invalid,
        -:        -: 5400:   NULL,
        -:        -: 5401:};
        -:        -: 5402:static const nir_search_expression replace269_1 = {
        -:        -: 5403:   { nir_search_value_expression, 0 },
        -:        -: 5404:   false,
        -:        -: 5405:   nir_op_ieq,
        -:        -: 5406:   { &replace269_1_0.value, &replace269_1_1.value },
        -:        -: 5407:   NULL,
        -:        -: 5408:};
        -:        -: 5409:
        -:        -: 5410:static const nir_search_variable replace269_2_0 = {
        -:        -: 5411:   { nir_search_value_variable, 0 },
        -:        -: 5412:   2, /* c */
        -:        -: 5413:   false,
        -:        -: 5414:   nir_type_invalid,
        -:        -: 5415:   NULL,
        -:        -: 5416:};
        -:        -: 5417:
        -:        -: 5418:static const nir_search_variable replace269_2_1 = {
        -:        -: 5419:   { nir_search_value_variable, 0 },
        -:        -: 5420:   3, /* d */
        -:        -: 5421:   false,
        -:        -: 5422:   nir_type_invalid,
        -:        -: 5423:   NULL,
        -:        -: 5424:};
        -:        -: 5425:static const nir_search_expression replace269_2 = {
        -:        -: 5426:   { nir_search_value_expression, 0 },
        -:        -: 5427:   false,
        -:        -: 5428:   nir_op_ieq,
        -:        -: 5429:   { &replace269_2_0.value, &replace269_2_1.value },
        -:        -: 5430:   NULL,
        -:        -: 5431:};
        -:        -: 5432:static const nir_search_expression replace269 = {
        -:        -: 5433:   { nir_search_value_expression, 0 },
        -:        -: 5434:   false,
        -:        -: 5435:   nir_op_bcsel,
        -:        -: 5436:   { &replace269_0.value, &replace269_1.value, &replace269_2.value },
        -:        -: 5437:   NULL,
        -:        -: 5438:};
        -:        -: 5439:   
        -:        -: 5440:static const nir_search_variable search270_0 = {
        -:        -: 5441:   { nir_search_value_variable, 0 },
        -:        -: 5442:   0, /* d */
        -:        -: 5443:   true,
        -:        -: 5444:   nir_type_invalid,
        -:        -: 5445:   NULL,
        -:        -: 5446:};
        -:        -: 5447:
        -:        -: 5448:static const nir_search_variable search270_1_0 = {
        -:        -: 5449:   { nir_search_value_variable, 0 },
        -:        -: 5450:   1, /* a */
        -:        -: 5451:   false,
        -:        -: 5452:   nir_type_invalid,
        -:        -: 5453:   NULL,
        -:        -: 5454:};
        -:        -: 5455:
        -:        -: 5456:static const nir_search_variable search270_1_1 = {
        -:        -: 5457:   { nir_search_value_variable, 0 },
        -:        -: 5458:   2, /* b */
        -:        -: 5459:   true,
        -:        -: 5460:   nir_type_invalid,
        -:        -: 5461:   NULL,
        -:        -: 5462:};
        -:        -: 5463:
        -:        -: 5464:static const nir_search_variable search270_1_2 = {
        -:        -: 5465:   { nir_search_value_variable, 0 },
        -:        -: 5466:   3, /* c */
        -:        -: 5467:   true,
        -:        -: 5468:   nir_type_invalid,
        -:        -: 5469:   NULL,
        -:        -: 5470:};
        -:        -: 5471:static const nir_search_expression search270_1 = {
        -:        -: 5472:   { nir_search_value_expression, 0 },
        -:        -: 5473:   false,
        -:        -: 5474:   nir_op_bcsel,
        -:        -: 5475:   { &search270_1_0.value, &search270_1_1.value, &search270_1_2.value },
        -:        -: 5476:   NULL,
        -:        -: 5477:};
        -:        -: 5478:static const nir_search_expression search270 = {
        -:        -: 5479:   { nir_search_value_expression, 0 },
        -:        -: 5480:   false,
        -:        -: 5481:   nir_op_ieq,
        -:        -: 5482:   { &search270_0.value, &search270_1.value },
        -:        -: 5483:   NULL,
        -:        -: 5484:};
        -:        -: 5485:   
        -:        -: 5486:static const nir_search_variable replace270_0 = {
        -:        -: 5487:   { nir_search_value_variable, 0 },
        -:        -: 5488:   1, /* a */
        -:        -: 5489:   false,
        -:        -: 5490:   nir_type_invalid,
        -:        -: 5491:   NULL,
        -:        -: 5492:};
        -:        -: 5493:
        -:        -: 5494:static const nir_search_variable replace270_1_0 = {
        -:        -: 5495:   { nir_search_value_variable, 0 },
        -:        -: 5496:   0, /* d */
        -:        -: 5497:   false,
        -:        -: 5498:   nir_type_invalid,
        -:        -: 5499:   NULL,
        -:        -: 5500:};
        -:        -: 5501:
        -:        -: 5502:static const nir_search_variable replace270_1_1 = {
        -:        -: 5503:   { nir_search_value_variable, 0 },
        -:        -: 5504:   2, /* b */
        -:        -: 5505:   false,
        -:        -: 5506:   nir_type_invalid,
        -:        -: 5507:   NULL,
        -:        -: 5508:};
        -:        -: 5509:static const nir_search_expression replace270_1 = {
        -:        -: 5510:   { nir_search_value_expression, 0 },
        -:        -: 5511:   false,
        -:        -: 5512:   nir_op_ieq,
        -:        -: 5513:   { &replace270_1_0.value, &replace270_1_1.value },
        -:        -: 5514:   NULL,
        -:        -: 5515:};
        -:        -: 5516:
        -:        -: 5517:static const nir_search_variable replace270_2_0 = {
        -:        -: 5518:   { nir_search_value_variable, 0 },
        -:        -: 5519:   0, /* d */
        -:        -: 5520:   false,
        -:        -: 5521:   nir_type_invalid,
        -:        -: 5522:   NULL,
        -:        -: 5523:};
        -:        -: 5524:
        -:        -: 5525:static const nir_search_variable replace270_2_1 = {
        -:        -: 5526:   { nir_search_value_variable, 0 },
        -:        -: 5527:   3, /* c */
        -:        -: 5528:   false,
        -:        -: 5529:   nir_type_invalid,
        -:        -: 5530:   NULL,
        -:        -: 5531:};
        -:        -: 5532:static const nir_search_expression replace270_2 = {
        -:        -: 5533:   { nir_search_value_expression, 0 },
        -:        -: 5534:   false,
        -:        -: 5535:   nir_op_ieq,
        -:        -: 5536:   { &replace270_2_0.value, &replace270_2_1.value },
        -:        -: 5537:   NULL,
        -:        -: 5538:};
        -:        -: 5539:static const nir_search_expression replace270 = {
        -:        -: 5540:   { nir_search_value_expression, 0 },
        -:        -: 5541:   false,
        -:        -: 5542:   nir_op_bcsel,
        -:        -: 5543:   { &replace270_0.value, &replace270_1.value, &replace270_2.value },
        -:        -: 5544:   NULL,
        -:        -: 5545:};
        -:        -: 5546:
        -:        -: 5547:static const struct transform nir_opt_algebraic_ieq_xforms[] = {
        -:        -: 5548:   { &search129, &replace129.value, 0 },
        -:        -: 5549:   { &search179, &replace179.value, 0 },
        -:        -: 5550:   { &search182, &replace182.value, 0 },
        -:        -: 5551:   { &search269, &replace269.value, 0 },
        -:        -: 5552:   { &search270, &replace270.value, 0 },
        -:        -: 5553:};
        -:        -: 5554:   
        -:        -: 5555:static const nir_search_variable search232_0 = {
        -:        -: 5556:   { nir_search_value_variable, 0 },
        -:        -: 5557:   0, /* a */
        -:        -: 5558:   false,
        -:        -: 5559:   nir_type_invalid,
        -:        -: 5560:   NULL,
        -:        -: 5561:};
        -:        -: 5562:
        -:        -: 5563:static const nir_search_variable search232_1 = {
        -:        -: 5564:   { nir_search_value_variable, 0 },
        -:        -: 5565:   1, /* b */
        -:        -: 5566:   false,
        -:        -: 5567:   nir_type_invalid,
        -:        -: 5568:   NULL,
        -:        -: 5569:};
        -:        -: 5570:static const nir_search_expression search232 = {
        -:        -: 5571:   { nir_search_value_expression, 32 },
        -:        -: 5572:   false,
        -:        -: 5573:   nir_op_usub_borrow,
        -:        -: 5574:   { &search232_0.value, &search232_1.value },
        -:        -: 5575:   NULL,
        -:        -: 5576:};
        -:        -: 5577:   
        -:        -: 5578:static const nir_search_variable replace232_0_0 = {
        -:        -: 5579:   { nir_search_value_variable, 0 },
        -:        -: 5580:   0, /* a */
        -:        -: 5581:   false,
        -:        -: 5582:   nir_type_invalid,
        -:        -: 5583:   NULL,
        -:        -: 5584:};
        -:        -: 5585:
        -:        -: 5586:static const nir_search_variable replace232_0_1 = {
        -:        -: 5587:   { nir_search_value_variable, 0 },
        -:        -: 5588:   1, /* b */
        -:        -: 5589:   false,
        -:        -: 5590:   nir_type_invalid,
        -:        -: 5591:   NULL,
        -:        -: 5592:};
        -:        -: 5593:static const nir_search_expression replace232_0 = {
        -:        -: 5594:   { nir_search_value_expression, 0 },
        -:        -: 5595:   false,
        -:        -: 5596:   nir_op_ult,
        -:        -: 5597:   { &replace232_0_0.value, &replace232_0_1.value },
        -:        -: 5598:   NULL,
        -:        -: 5599:};
        -:        -: 5600:static const nir_search_expression replace232 = {
        -:        -: 5601:   { nir_search_value_expression, 0 },
        -:        -: 5602:   false,
        -:        -: 5603:   nir_op_b2i,
        -:        -: 5604:   { &replace232_0.value },
        -:        -: 5605:   NULL,
        -:        -: 5606:};
        -:        -: 5607:
        -:        -: 5608:static const struct transform nir_opt_algebraic_usub_borrow_xforms[] = {
        -:        -: 5609:   { &search232, &replace232.value, 24 },
        -:        -: 5610:};
        -:        -: 5611:   
        -:        -: 5612:static const nir_search_variable search80_0 = {
        -:        -: 5613:   { nir_search_value_variable, 0 },
        -:        -: 5614:   0, /* a */
        -:        -: 5615:   false,
        -:        -: 5616:   nir_type_invalid,
        -:        -: 5617:   NULL,
        -:        -: 5618:};
        -:        -: 5619:
        -:        -: 5620:static const nir_search_variable search80_1 = {
        -:        -: 5621:   { nir_search_value_variable, 0 },
        -:        -: 5622:   0, /* a */
        -:        -: 5623:   false,
        -:        -: 5624:   nir_type_invalid,
        -:        -: 5625:   NULL,
        -:        -: 5626:};
        -:        -: 5627:static const nir_search_expression search80 = {
        -:        -: 5628:   { nir_search_value_expression, 0 },
        -:        -: 5629:   false,
        -:        -: 5630:   nir_op_imin,
        -:        -: 5631:   { &search80_0.value, &search80_1.value },
        -:        -: 5632:   NULL,
        -:        -: 5633:};
        -:        -: 5634:   
        -:        -: 5635:static const nir_search_variable replace80 = {
        -:        -: 5636:   { nir_search_value_variable, 0 },
        -:        -: 5637:   0, /* a */
        -:        -: 5638:   false,
        -:        -: 5639:   nir_type_invalid,
        -:        -: 5640:   NULL,
        -:        -: 5641:};
        -:        -: 5642:   
        -:        -: 5643:static const nir_search_variable search85_0 = {
        -:        -: 5644:   { nir_search_value_variable, 0 },
        -:        -: 5645:   0, /* a */
        -:        -: 5646:   false,
        -:        -: 5647:   nir_type_invalid,
        -:        -: 5648:   NULL,
        -:        -: 5649:};
        -:        -: 5650:
        -:        -: 5651:static const nir_search_variable search85_1_0 = {
        -:        -: 5652:   { nir_search_value_variable, 0 },
        -:        -: 5653:   0, /* a */
        -:        -: 5654:   false,
        -:        -: 5655:   nir_type_invalid,
        -:        -: 5656:   NULL,
        -:        -: 5657:};
        -:        -: 5658:static const nir_search_expression search85_1 = {
        -:        -: 5659:   { nir_search_value_expression, 0 },
        -:        -: 5660:   false,
        -:        -: 5661:   nir_op_ineg,
        -:        -: 5662:   { &search85_1_0.value },
        -:        -: 5663:   NULL,
        -:        -: 5664:};
        -:        -: 5665:static const nir_search_expression search85 = {
        -:        -: 5666:   { nir_search_value_expression, 0 },
        -:        -: 5667:   false,
        -:        -: 5668:   nir_op_imin,
        -:        -: 5669:   { &search85_0.value, &search85_1.value },
        -:        -: 5670:   NULL,
        -:        -: 5671:};
        -:        -: 5672:   
        -:        -: 5673:static const nir_search_variable replace85_0_0 = {
        -:        -: 5674:   { nir_search_value_variable, 0 },
        -:        -: 5675:   0, /* a */
        -:        -: 5676:   false,
        -:        -: 5677:   nir_type_invalid,
        -:        -: 5678:   NULL,
        -:        -: 5679:};
        -:        -: 5680:static const nir_search_expression replace85_0 = {
        -:        -: 5681:   { nir_search_value_expression, 0 },
        -:        -: 5682:   false,
        -:        -: 5683:   nir_op_iabs,
        -:        -: 5684:   { &replace85_0_0.value },
        -:        -: 5685:   NULL,
        -:        -: 5686:};
        -:        -: 5687:static const nir_search_expression replace85 = {
        -:        -: 5688:   { nir_search_value_expression, 0 },
        -:        -: 5689:   false,
        -:        -: 5690:   nir_op_ineg,
        -:        -: 5691:   { &replace85_0.value },
        -:        -: 5692:   NULL,
        -:        -: 5693:};
        -:        -: 5694:   
        -:        -: 5695:static const nir_search_variable search87_0 = {
        -:        -: 5696:   { nir_search_value_variable, 0 },
        -:        -: 5697:   0, /* a */
        -:        -: 5698:   false,
        -:        -: 5699:   nir_type_invalid,
        -:        -: 5700:   NULL,
        -:        -: 5701:};
        -:        -: 5702:
        -:        -: 5703:static const nir_search_variable search87_1_0_0 = {
        -:        -: 5704:   { nir_search_value_variable, 0 },
        -:        -: 5705:   0, /* a */
        -:        -: 5706:   false,
        -:        -: 5707:   nir_type_invalid,
        -:        -: 5708:   NULL,
        -:        -: 5709:};
        -:        -: 5710:static const nir_search_expression search87_1_0 = {
        -:        -: 5711:   { nir_search_value_expression, 0 },
        -:        -: 5712:   false,
        -:        -: 5713:   nir_op_iabs,
        -:        -: 5714:   { &search87_1_0_0.value },
        -:        -: 5715:   NULL,
        -:        -: 5716:};
        -:        -: 5717:static const nir_search_expression search87_1 = {
        -:        -: 5718:   { nir_search_value_expression, 0 },
        -:        -: 5719:   false,
        -:        -: 5720:   nir_op_ineg,
        -:        -: 5721:   { &search87_1_0.value },
        -:        -: 5722:   NULL,
        -:        -: 5723:};
        -:        -: 5724:static const nir_search_expression search87 = {
        -:        -: 5725:   { nir_search_value_expression, 0 },
        -:        -: 5726:   false,
        -:        -: 5727:   nir_op_imin,
        -:        -: 5728:   { &search87_0.value, &search87_1.value },
        -:        -: 5729:   NULL,
        -:        -: 5730:};
        -:        -: 5731:   
        -:        -: 5732:static const nir_search_variable replace87_0_0 = {
        -:        -: 5733:   { nir_search_value_variable, 0 },
        -:        -: 5734:   0, /* a */
        -:        -: 5735:   false,
        -:        -: 5736:   nir_type_invalid,
        -:        -: 5737:   NULL,
        -:        -: 5738:};
        -:        -: 5739:static const nir_search_expression replace87_0 = {
        -:        -: 5740:   { nir_search_value_expression, 0 },
        -:        -: 5741:   false,
        -:        -: 5742:   nir_op_iabs,
        -:        -: 5743:   { &replace87_0_0.value },
        -:        -: 5744:   NULL,
        -:        -: 5745:};
        -:        -: 5746:static const nir_search_expression replace87 = {
        -:        -: 5747:   { nir_search_value_expression, 0 },
        -:        -: 5748:   false,
        -:        -: 5749:   nir_op_ineg,
        -:        -: 5750:   { &replace87_0.value },
        -:        -: 5751:   NULL,
        -:        -: 5752:};
        -:        -: 5753:   
        -:        -: 5754:static const nir_search_variable search89_0 = {
        -:        -: 5755:   { nir_search_value_variable, 0 },
        -:        -: 5756:   0, /* a */
        -:        -: 5757:   false,
        -:        -: 5758:   nir_type_invalid,
        -:        -: 5759:   NULL,
        -:        -: 5760:};
        -:        -: 5761:
        -:        -: 5762:static const nir_search_variable search89_1_0 = {
        -:        -: 5763:   { nir_search_value_variable, 0 },
        -:        -: 5764:   0, /* a */
        -:        -: 5765:   false,
        -:        -: 5766:   nir_type_invalid,
        -:        -: 5767:   NULL,
        -:        -: 5768:};
        -:        -: 5769:static const nir_search_expression search89_1 = {
        -:        -: 5770:   { nir_search_value_expression, 0 },
        -:        -: 5771:   false,
        -:        -: 5772:   nir_op_iabs,
        -:        -: 5773:   { &search89_1_0.value },
        -:        -: 5774:   NULL,
        -:        -: 5775:};
        -:        -: 5776:static const nir_search_expression search89 = {
        -:        -: 5777:   { nir_search_value_expression, 0 },
        -:        -: 5778:   false,
        -:        -: 5779:   nir_op_imin,
        -:        -: 5780:   { &search89_0.value, &search89_1.value },
        -:        -: 5781:   NULL,
        -:        -: 5782:};
        -:        -: 5783:   
        -:        -: 5784:static const nir_search_variable replace89 = {
        -:        -: 5785:   { nir_search_value_variable, 0 },
        -:        -: 5786:   0, /* a */
        -:        -: 5787:   false,
        -:        -: 5788:   nir_type_invalid,
        -:        -: 5789:   NULL,
        -:        -: 5790:};
        -:        -: 5791:   
        -:        -: 5792:static const nir_search_variable search101_0_0_0_0 = {
        -:        -: 5793:   { nir_search_value_variable, 0 },
        -:        -: 5794:   0, /* a */
        -:        -: 5795:   false,
        -:        -: 5796:   nir_type_invalid,
        -:        -: 5797:   NULL,
        -:        -: 5798:};
        -:        -: 5799:
        -:        -: 5800:static const nir_search_variable search101_0_0_0_1 = {
        -:        -: 5801:   { nir_search_value_variable, 0 },
        -:        -: 5802:   1, /* b */
        -:        -: 5803:   false,
        -:        -: 5804:   nir_type_invalid,
        -:        -: 5805:   NULL,
        -:        -: 5806:};
        -:        -: 5807:static const nir_search_expression search101_0_0_0 = {
        -:        -: 5808:   { nir_search_value_expression, 0 },
        -:        -: 5809:   false,
        -:        -: 5810:   nir_op_imax,
        -:        -: 5811:   { &search101_0_0_0_0.value, &search101_0_0_0_1.value },
        -:        -: 5812:   NULL,
        -:        -: 5813:};
        -:        -: 5814:
        -:        -: 5815:static const nir_search_variable search101_0_0_1 = {
        -:        -: 5816:   { nir_search_value_variable, 0 },
        -:        -: 5817:   2, /* c */
        -:        -: 5818:   false,
        -:        -: 5819:   nir_type_invalid,
        -:        -: 5820:   NULL,
        -:        -: 5821:};
        -:        -: 5822:static const nir_search_expression search101_0_0 = {
        -:        -: 5823:   { nir_search_value_expression, 0 },
        -:        -: 5824:   false,
        -:        -: 5825:   nir_op_imin,
        -:        -: 5826:   { &search101_0_0_0.value, &search101_0_0_1.value },
        -:        -: 5827:   NULL,
        -:        -: 5828:};
        -:        -: 5829:
        -:        -: 5830:static const nir_search_variable search101_0_1 = {
        -:        -: 5831:   { nir_search_value_variable, 0 },
        -:        -: 5832:   1, /* b */
        -:        -: 5833:   false,
        -:        -: 5834:   nir_type_invalid,
        -:        -: 5835:   NULL,
        -:        -: 5836:};
        -:        -: 5837:static const nir_search_expression search101_0 = {
        -:        -: 5838:   { nir_search_value_expression, 0 },
        -:        -: 5839:   false,
        -:        -: 5840:   nir_op_imax,
        -:        -: 5841:   { &search101_0_0.value, &search101_0_1.value },
        -:        -: 5842:   NULL,
        -:        -: 5843:};
        -:        -: 5844:
        -:        -: 5845:static const nir_search_variable search101_1 = {
        -:        -: 5846:   { nir_search_value_variable, 0 },
        -:        -: 5847:   2, /* c */
        -:        -: 5848:   false,
        -:        -: 5849:   nir_type_invalid,
        -:        -: 5850:   NULL,
        -:        -: 5851:};
        -:        -: 5852:static const nir_search_expression search101 = {
        -:        -: 5853:   { nir_search_value_expression, 0 },
        -:        -: 5854:   false,
        -:        -: 5855:   nir_op_imin,
        -:        -: 5856:   { &search101_0.value, &search101_1.value },
        -:        -: 5857:   NULL,
        -:        -: 5858:};
        -:        -: 5859:   
        -:        -: 5860:static const nir_search_variable replace101_0_0 = {
        -:        -: 5861:   { nir_search_value_variable, 0 },
        -:        -: 5862:   0, /* a */
        -:        -: 5863:   false,
        -:        -: 5864:   nir_type_invalid,
        -:        -: 5865:   NULL,
        -:        -: 5866:};
        -:        -: 5867:
        -:        -: 5868:static const nir_search_variable replace101_0_1 = {
        -:        -: 5869:   { nir_search_value_variable, 0 },
        -:        -: 5870:   1, /* b */
        -:        -: 5871:   false,
        -:        -: 5872:   nir_type_invalid,
        -:        -: 5873:   NULL,
        -:        -: 5874:};
        -:        -: 5875:static const nir_search_expression replace101_0 = {
        -:        -: 5876:   { nir_search_value_expression, 0 },
        -:        -: 5877:   false,
        -:        -: 5878:   nir_op_imax,
        -:        -: 5879:   { &replace101_0_0.value, &replace101_0_1.value },
        -:        -: 5880:   NULL,
        -:        -: 5881:};
        -:        -: 5882:
        -:        -: 5883:static const nir_search_variable replace101_1 = {
        -:        -: 5884:   { nir_search_value_variable, 0 },
        -:        -: 5885:   2, /* c */
        -:        -: 5886:   false,
        -:        -: 5887:   nir_type_invalid,
        -:        -: 5888:   NULL,
        -:        -: 5889:};
        -:        -: 5890:static const nir_search_expression replace101 = {
        -:        -: 5891:   { nir_search_value_expression, 0 },
        -:        -: 5892:   false,
        -:        -: 5893:   nir_op_imin,
        -:        -: 5894:   { &replace101_0.value, &replace101_1.value },
        -:        -: 5895:   NULL,
        -:        -: 5896:};
        -:        -: 5897:
        -:        -: 5898:static const struct transform nir_opt_algebraic_imin_xforms[] = {
        -:        -: 5899:   { &search80, &replace80.value, 0 },
        -:        -: 5900:   { &search85, &replace85.value, 0 },
        -:        -: 5901:   { &search87, &replace87.value, 0 },
        -:        -: 5902:   { &search89, &replace89.value, 0 },
        -:        -: 5903:   { &search101, &replace101.value, 0 },
        -:        -: 5904:};
        -:        -: 5905:   
        -:        -: 5906:static const nir_search_variable search167_0_0 = {
        -:        -: 5907:   { nir_search_value_variable, 0 },
        -:        -: 5908:   0, /* a */
        -:        -: 5909:   false,
        -:        -: 5910:   nir_type_invalid,
        -:        -: 5911:   NULL,
        -:        -: 5912:};
        -:        -: 5913:static const nir_search_expression search167_0 = {
        -:        -: 5914:   { nir_search_value_expression, 0 },
        -:        -: 5915:   false,
        -:        -: 5916:   nir_op_fexp2,
        -:        -: 5917:   { &search167_0_0.value },
        -:        -: 5918:   NULL,
        -:        -: 5919:};
        -:        -: 5920:static const nir_search_expression search167 = {
        -:        -: 5921:   { nir_search_value_expression, 0 },
        -:        -: 5922:   true,
        -:        -: 5923:   nir_op_frsq,
        -:        -: 5924:   { &search167_0.value },
        -:        -: 5925:   NULL,
        -:        -: 5926:};
        -:        -: 5927:   
        -:        -: 5928:static const nir_search_constant replace167_0_0 = {
        -:        -: 5929:   { nir_search_value_constant, 0 },
        -:        -: 5930:   nir_type_float, { 0xbfe0000000000000L /* -0.5 */ },
        -:        -: 5931:};
        -:        -: 5932:
        -:        -: 5933:static const nir_search_variable replace167_0_1 = {
        -:        -: 5934:   { nir_search_value_variable, 0 },
        -:        -: 5935:   0, /* a */
        -:        -: 5936:   false,
        -:        -: 5937:   nir_type_invalid,
        -:        -: 5938:   NULL,
        -:        -: 5939:};
        -:        -: 5940:static const nir_search_expression replace167_0 = {
        -:        -: 5941:   { nir_search_value_expression, 0 },
        -:        -: 5942:   false,
        -:        -: 5943:   nir_op_fmul,
        -:        -: 5944:   { &replace167_0_0.value, &replace167_0_1.value },
        -:        -: 5945:   NULL,
        -:        -: 5946:};
        -:        -: 5947:static const nir_search_expression replace167 = {
        -:        -: 5948:   { nir_search_value_expression, 0 },
        -:        -: 5949:   false,
        -:        -: 5950:   nir_op_fexp2,
        -:        -: 5951:   { &replace167_0.value },
        -:        -: 5952:   NULL,
        -:        -: 5953:};
        -:        -: 5954:
        -:        -: 5955:static const struct transform nir_opt_algebraic_frsq_xforms[] = {
        -:        -: 5956:   { &search167, &replace167.value, 0 },
        -:        -: 5957:};
        -:        -: 5958:   
        -:        -: 5959:static const nir_search_variable search19_0 = {
        -:        -: 5960:   { nir_search_value_variable, 0 },
        -:        -: 5961:   0, /* a */
        -:        -: 5962:   false,
        -:        -: 5963:   nir_type_invalid,
        -:        -: 5964:   NULL,
        -:        -: 5965:};
        -:        -: 5966:
        -:        -: 5967:static const nir_search_constant search19_1 = {
        -:        -: 5968:   { nir_search_value_constant, 0 },
        -:        -: 5969:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 5970:};
        -:        -: 5971:static const nir_search_expression search19 = {
        -:        -: 5972:   { nir_search_value_expression, 0 },
        -:        -: 5973:   false,
        -:        -: 5974:   nir_op_usadd_4x8,
        -:        -: 5975:   { &search19_0.value, &search19_1.value },
        -:        -: 5976:   NULL,
        -:        -: 5977:};
        -:        -: 5978:   
        -:        -: 5979:static const nir_search_variable replace19 = {
        -:        -: 5980:   { nir_search_value_variable, 0 },
        -:        -: 5981:   0, /* a */
        -:        -: 5982:   false,
        -:        -: 5983:   nir_type_invalid,
        -:        -: 5984:   NULL,
        -:        -: 5985:};
        -:        -: 5986:   
        -:        -: 5987:static const nir_search_variable search20_0 = {
        -:        -: 5988:   { nir_search_value_variable, 0 },
        -:        -: 5989:   0, /* a */
        -:        -: 5990:   false,
        -:        -: 5991:   nir_type_invalid,
        -:        -: 5992:   NULL,
        -:        -: 5993:};
        -:        -: 5994:
        -:        -: 5995:static const nir_search_constant search20_1 = {
        -:        -: 5996:   { nir_search_value_constant, 0 },
        -:        -: 5997:   nir_type_int, { -0x1 /* -1 */ },
        -:        -: 5998:};
        -:        -: 5999:static const nir_search_expression search20 = {
        -:        -: 6000:   { nir_search_value_expression, 0 },
        -:        -: 6001:   false,
        -:        -: 6002:   nir_op_usadd_4x8,
        -:        -: 6003:   { &search20_0.value, &search20_1.value },
        -:        -: 6004:   NULL,
        -:        -: 6005:};
        -:        -: 6006:   
        -:        -: 6007:static const nir_search_constant replace20 = {
        -:        -: 6008:   { nir_search_value_constant, 0 },
        -:        -: 6009:   nir_type_int, { -0x1 /* -1 */ },
        -:        -: 6010:};
        -:        -: 6011:
        -:        -: 6012:static const struct transform nir_opt_algebraic_usadd_4x8_xforms[] = {
        -:        -: 6013:   { &search19, &replace19.value, 0 },
        -:        -: 6014:   { &search20, &replace20.value, 0 },
        -:        -: 6015:};
        -:        -: 6016:   
        -:        -: 6017:static const nir_search_variable search3_0 = {
        -:        -: 6018:   { nir_search_value_variable, 0 },
        -:        -: 6019:   0, /* a */
        -:        -: 6020:   false,
        -:        -: 6021:   nir_type_invalid,
        -:        -: 6022:   NULL,
        -:        -: 6023:};
        -:        -: 6024:
        -:        -: 6025:static const nir_search_constant search3_1 = {
        -:        -: 6026:   { nir_search_value_constant, 0 },
        -:        -: 6027:   nir_type_int, { 0x1 /* 1 */ },
        -:        -: 6028:};
        -:        -: 6029:static const nir_search_expression search3 = {
        -:        -: 6030:   { nir_search_value_expression, 0 },
        -:        -: 6031:   false,
        -:        -: 6032:   nir_op_idiv,
        -:        -: 6033:   { &search3_0.value, &search3_1.value },
        -:        -: 6034:   NULL,
        -:        -: 6035:};
        -:        -: 6036:   
        -:        -: 6037:static const nir_search_variable replace3 = {
        -:        -: 6038:   { nir_search_value_variable, 0 },
        -:        -: 6039:   0, /* a */
        -:        -: 6040:   false,
        -:        -: 6041:   nir_type_invalid,
        -:        -: 6042:   NULL,
        -:        -: 6043:};
        -:        -: 6044:   
        -:        -: 6045:static const nir_search_variable search7_0 = {
        -:        -: 6046:   { nir_search_value_variable, 0 },
        -:        -: 6047:   0, /* a */
        -:        -: 6048:   false,
        -:        -: 6049:   nir_type_invalid,
        -:        -: 6050:   NULL,
        -:        -: 6051:};
        -:        -: 6052:
        -:        -: 6053:static const nir_search_variable search7_1 = {
        -:        -: 6054:   { nir_search_value_variable, 32 },
        -:        -: 6055:   1, /* b */
        -:        -: 6056:   true,
        -:        -: 6057:   nir_type_invalid,
        -:        -: 6058:   (is_pos_power_of_two),
        -:        -: 6059:};
        -:        -: 6060:static const nir_search_expression search7 = {
        -:        -: 6061:   { nir_search_value_expression, 0 },
        -:        -: 6062:   false,
        -:        -: 6063:   nir_op_idiv,
        -:        -: 6064:   { &search7_0.value, &search7_1.value },
        -:        -: 6065:   NULL,
        -:        -: 6066:};
        -:        -: 6067:   
        -:        -: 6068:static const nir_search_variable replace7_0_0 = {
        -:        -: 6069:   { nir_search_value_variable, 0 },
        -:        -: 6070:   0, /* a */
        -:        -: 6071:   false,
        -:        -: 6072:   nir_type_invalid,
        -:        -: 6073:   NULL,
        -:        -: 6074:};
        -:        -: 6075:static const nir_search_expression replace7_0 = {
        -:        -: 6076:   { nir_search_value_expression, 0 },
        -:        -: 6077:   false,
        -:        -: 6078:   nir_op_isign,
        -:        -: 6079:   { &replace7_0_0.value },
        -:        -: 6080:   NULL,
        -:        -: 6081:};
        -:        -: 6082:
        -:        -: 6083:static const nir_search_variable replace7_1_0_0 = {
        -:        -: 6084:   { nir_search_value_variable, 0 },
        -:        -: 6085:   0, /* a */
        -:        -: 6086:   false,
        -:        -: 6087:   nir_type_invalid,
        -:        -: 6088:   NULL,
        -:        -: 6089:};
        -:        -: 6090:static const nir_search_expression replace7_1_0 = {
        -:        -: 6091:   { nir_search_value_expression, 0 },
        -:        -: 6092:   false,
        -:        -: 6093:   nir_op_iabs,
        -:        -: 6094:   { &replace7_1_0_0.value },
        -:        -: 6095:   NULL,
        -:        -: 6096:};
        -:        -: 6097:
        -:        -: 6098:static const nir_search_variable replace7_1_1_0 = {
        -:        -: 6099:   { nir_search_value_variable, 0 },
        -:        -: 6100:   1, /* b */
        -:        -: 6101:   false,
        -:        -: 6102:   nir_type_invalid,
        -:        -: 6103:   NULL,
        -:        -: 6104:};
        -:        -: 6105:static const nir_search_expression replace7_1_1 = {
        -:        -: 6106:   { nir_search_value_expression, 0 },
        -:        -: 6107:   false,
        -:        -: 6108:   nir_op_find_lsb,
        -:        -: 6109:   { &replace7_1_1_0.value },
        -:        -: 6110:   NULL,
        -:        -: 6111:};
        -:        -: 6112:static const nir_search_expression replace7_1 = {
        -:        -: 6113:   { nir_search_value_expression, 0 },
        -:        -: 6114:   false,
        -:        -: 6115:   nir_op_ushr,
        -:        -: 6116:   { &replace7_1_0.value, &replace7_1_1.value },
        -:        -: 6117:   NULL,
        -:        -: 6118:};
        -:        -: 6119:static const nir_search_expression replace7 = {
        -:        -: 6120:   { nir_search_value_expression, 0 },
        -:        -: 6121:   false,
        -:        -: 6122:   nir_op_imul,
        -:        -: 6123:   { &replace7_0.value, &replace7_1.value },
        -:        -: 6124:   NULL,
        -:        -: 6125:};
        -:        -: 6126:   
        -:        -: 6127:static const nir_search_variable search8_0 = {
        -:        -: 6128:   { nir_search_value_variable, 0 },
        -:        -: 6129:   0, /* a */
        -:        -: 6130:   false,
        -:        -: 6131:   nir_type_invalid,
        -:        -: 6132:   NULL,
        -:        -: 6133:};
        -:        -: 6134:
        -:        -: 6135:static const nir_search_variable search8_1 = {
        -:        -: 6136:   { nir_search_value_variable, 32 },
        -:        -: 6137:   1, /* b */
        -:        -: 6138:   true,
        -:        -: 6139:   nir_type_invalid,
        -:        -: 6140:   (is_neg_power_of_two),
        -:        -: 6141:};
        -:        -: 6142:static const nir_search_expression search8 = {
        -:        -: 6143:   { nir_search_value_expression, 0 },
        -:        -: 6144:   false,
        -:        -: 6145:   nir_op_idiv,
        -:        -: 6146:   { &search8_0.value, &search8_1.value },
        -:        -: 6147:   NULL,
        -:        -: 6148:};
        -:        -: 6149:   
        -:        -: 6150:static const nir_search_variable replace8_0_0_0 = {
        -:        -: 6151:   { nir_search_value_variable, 0 },
        -:        -: 6152:   0, /* a */
        -:        -: 6153:   false,
        -:        -: 6154:   nir_type_invalid,
        -:        -: 6155:   NULL,
        -:        -: 6156:};
        -:        -: 6157:static const nir_search_expression replace8_0_0 = {
        -:        -: 6158:   { nir_search_value_expression, 0 },
        -:        -: 6159:   false,
        -:        -: 6160:   nir_op_isign,
        -:        -: 6161:   { &replace8_0_0_0.value },
        -:        -: 6162:   NULL,
        -:        -: 6163:};
        -:        -: 6164:
        -:        -: 6165:static const nir_search_variable replace8_0_1_0_0 = {
        -:        -: 6166:   { nir_search_value_variable, 0 },
        -:        -: 6167:   0, /* a */
        -:        -: 6168:   false,
        -:        -: 6169:   nir_type_invalid,
        -:        -: 6170:   NULL,
        -:        -: 6171:};
        -:        -: 6172:static const nir_search_expression replace8_0_1_0 = {
        -:        -: 6173:   { nir_search_value_expression, 0 },
        -:        -: 6174:   false,
        -:        -: 6175:   nir_op_iabs,
        -:        -: 6176:   { &replace8_0_1_0_0.value },
        -:        -: 6177:   NULL,
        -:        -: 6178:};
        -:        -: 6179:
        -:        -: 6180:static const nir_search_variable replace8_0_1_1_0_0 = {
        -:        -: 6181:   { nir_search_value_variable, 0 },
        -:        -: 6182:   1, /* b */
        -:        -: 6183:   false,
        -:        -: 6184:   nir_type_invalid,
        -:        -: 6185:   NULL,
        -:        -: 6186:};
        -:        -: 6187:static const nir_search_expression replace8_0_1_1_0 = {
        -:        -: 6188:   { nir_search_value_expression, 0 },
        -:        -: 6189:   false,
        -:        -: 6190:   nir_op_iabs,
        -:        -: 6191:   { &replace8_0_1_1_0_0.value },
        -:        -: 6192:   NULL,
        -:        -: 6193:};
        -:        -: 6194:static const nir_search_expression replace8_0_1_1 = {
        -:        -: 6195:   { nir_search_value_expression, 0 },
        -:        -: 6196:   false,
        -:        -: 6197:   nir_op_find_lsb,
        -:        -: 6198:   { &replace8_0_1_1_0.value },
        -:        -: 6199:   NULL,
        -:        -: 6200:};
        -:        -: 6201:static const nir_search_expression replace8_0_1 = {
        -:        -: 6202:   { nir_search_value_expression, 0 },
        -:        -: 6203:   false,
        -:        -: 6204:   nir_op_ushr,
        -:        -: 6205:   { &replace8_0_1_0.value, &replace8_0_1_1.value },
        -:        -: 6206:   NULL,
        -:        -: 6207:};
        -:        -: 6208:static const nir_search_expression replace8_0 = {
        -:        -: 6209:   { nir_search_value_expression, 0 },
        -:        -: 6210:   false,
        -:        -: 6211:   nir_op_imul,
        -:        -: 6212:   { &replace8_0_0.value, &replace8_0_1.value },
        -:        -: 6213:   NULL,
        -:        -: 6214:};
        -:        -: 6215:static const nir_search_expression replace8 = {
        -:        -: 6216:   { nir_search_value_expression, 0 },
        -:        -: 6217:   false,
        -:        -: 6218:   nir_op_ineg,
        -:        -: 6219:   { &replace8_0.value },
        -:        -: 6220:   NULL,
        -:        -: 6221:};
        -:        -: 6222:
        -:        -: 6223:static const struct transform nir_opt_algebraic_idiv_xforms[] = {
        -:        -: 6224:   { &search3, &replace3.value, 0 },
        -:        -: 6225:   { &search7, &replace7.value, 1 },
        -:        -: 6226:   { &search8, &replace8.value, 1 },
        -:        -: 6227:};
        -:        -: 6228:   
        -:        -: 6229:static const nir_search_variable search105_0_0_0 = {
        -:        -: 6230:   { nir_search_value_variable, 0 },
        -:        -: 6231:   0, /* a */
        -:        -: 6232:   false,
        -:        -: 6233:   nir_type_invalid,
        -:        -: 6234:   NULL,
        -:        -: 6235:};
        -:        -: 6236:
        -:        -: 6237:static const nir_search_constant search105_0_0_1 = {
        -:        -: 6238:   { nir_search_value_constant, 0 },
        -:        -: 6239:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 6240:};
        -:        -: 6241:static const nir_search_expression search105_0_0 = {
        -:        -: 6242:   { nir_search_value_expression, 0 },
        -:        -: 6243:   false,
        -:        -: 6244:   nir_op_imax,
        -:        -: 6245:   { &search105_0_0_0.value, &search105_0_0_1.value },
        -:        -: 6246:   NULL,
        -:        -: 6247:};
        -:        -: 6248:
        -:        -: 6249:static const nir_search_constant search105_0_1 = {
        -:        -: 6250:   { nir_search_value_constant, 0 },
        -:        -: 6251:   nir_type_int, { 0xff /* 255 */ },
        -:        -: 6252:};
        -:        -: 6253:static const nir_search_expression search105_0 = {
        -:        -: 6254:   { nir_search_value_expression, 0 },
        -:        -: 6255:   false,
        -:        -: 6256:   nir_op_imin,
        -:        -: 6257:   { &search105_0_0.value, &search105_0_1.value },
        -:        -: 6258:   NULL,
        -:        -: 6259:};
        -:        -: 6260:
        -:        -: 6261:static const nir_search_constant search105_1 = {
        -:        -: 6262:   { nir_search_value_constant, 0 },
        -:        -: 6263:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 6264:};
        -:        -: 6265:static const nir_search_expression search105 = {
        -:        -: 6266:   { nir_search_value_expression, 0 },
        -:        -: 6267:   false,
        -:        -: 6268:   nir_op_extract_u8,
        -:        -: 6269:   { &search105_0.value, &search105_1.value },
        -:        -: 6270:   NULL,
        -:        -: 6271:};
        -:        -: 6272:   
        -:        -: 6273:static const nir_search_variable replace105_0_0 = {
        -:        -: 6274:   { nir_search_value_variable, 0 },
        -:        -: 6275:   0, /* a */
        -:        -: 6276:   false,
        -:        -: 6277:   nir_type_invalid,
        -:        -: 6278:   NULL,
        -:        -: 6279:};
        -:        -: 6280:
        -:        -: 6281:static const nir_search_constant replace105_0_1 = {
        -:        -: 6282:   { nir_search_value_constant, 0 },
        -:        -: 6283:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 6284:};
        -:        -: 6285:static const nir_search_expression replace105_0 = {
        -:        -: 6286:   { nir_search_value_expression, 0 },
        -:        -: 6287:   false,
        -:        -: 6288:   nir_op_imax,
        -:        -: 6289:   { &replace105_0_0.value, &replace105_0_1.value },
        -:        -: 6290:   NULL,
        -:        -: 6291:};
        -:        -: 6292:
        -:        -: 6293:static const nir_search_constant replace105_1 = {
        -:        -: 6294:   { nir_search_value_constant, 0 },
        -:        -: 6295:   nir_type_int, { 0xff /* 255 */ },
        -:        -: 6296:};
        -:        -: 6297:static const nir_search_expression replace105 = {
        -:        -: 6298:   { nir_search_value_expression, 0 },
        -:        -: 6299:   false,
        -:        -: 6300:   nir_op_imin,
        -:        -: 6301:   { &replace105_0.value, &replace105_1.value },
        -:        -: 6302:   NULL,
        -:        -: 6303:};
        -:        -: 6304:   
        -:        -: 6305:static const nir_search_variable search237_0 = {
        -:        -: 6306:   { nir_search_value_variable, 0 },
        -:        -: 6307:   0, /* a */
        -:        -: 6308:   false,
        -:        -: 6309:   nir_type_invalid,
        -:        -: 6310:   NULL,
        -:        -: 6311:};
        -:        -: 6312:
        -:        -: 6313:static const nir_search_variable search237_1 = {
        -:        -: 6314:   { nir_search_value_variable, 32 },
        -:        -: 6315:   1, /* b */
        -:        -: 6316:   false,
        -:        -: 6317:   nir_type_invalid,
        -:        -: 6318:   NULL,
        -:        -: 6319:};
        -:        -: 6320:static const nir_search_expression search237 = {
        -:        -: 6321:   { nir_search_value_expression, 0 },
        -:        -: 6322:   false,
        -:        -: 6323:   nir_op_extract_u8,
        -:        -: 6324:   { &search237_0.value, &search237_1.value },
        -:        -: 6325:   NULL,
        -:        -: 6326:};
        -:        -: 6327:   
        -:        -: 6328:static const nir_search_variable replace237_0_0 = {
        -:        -: 6329:   { nir_search_value_variable, 0 },
        -:        -: 6330:   0, /* a */
        -:        -: 6331:   false,
        -:        -: 6332:   nir_type_invalid,
        -:        -: 6333:   NULL,
        -:        -: 6334:};
        -:        -: 6335:
        -:        -: 6336:static const nir_search_variable replace237_0_1_0 = {
        -:        -: 6337:   { nir_search_value_variable, 0 },
        -:        -: 6338:   1, /* b */
        -:        -: 6339:   false,
        -:        -: 6340:   nir_type_invalid,
        -:        -: 6341:   NULL,
        -:        -: 6342:};
        -:        -: 6343:
        -:        -: 6344:static const nir_search_constant replace237_0_1_1 = {
        -:        -: 6345:   { nir_search_value_constant, 0 },
        -:        -: 6346:   nir_type_int, { 0x8 /* 8 */ },
        -:        -: 6347:};
        -:        -: 6348:static const nir_search_expression replace237_0_1 = {
        -:        -: 6349:   { nir_search_value_expression, 0 },
        -:        -: 6350:   false,
        -:        -: 6351:   nir_op_imul,
        -:        -: 6352:   { &replace237_0_1_0.value, &replace237_0_1_1.value },
        -:        -: 6353:   NULL,
        -:        -: 6354:};
        -:        -: 6355:static const nir_search_expression replace237_0 = {
        -:        -: 6356:   { nir_search_value_expression, 0 },
        -:        -: 6357:   false,
        -:        -: 6358:   nir_op_ushr,
        -:        -: 6359:   { &replace237_0_0.value, &replace237_0_1.value },
        -:        -: 6360:   NULL,
        -:        -: 6361:};
        -:        -: 6362:
        -:        -: 6363:static const nir_search_constant replace237_1 = {
        -:        -: 6364:   { nir_search_value_constant, 0 },
        -:        -: 6365:   nir_type_int, { 0xff /* 255 */ },
        -:        -: 6366:};
        -:        -: 6367:static const nir_search_expression replace237 = {
        -:        -: 6368:   { nir_search_value_expression, 0 },
        -:        -: 6369:   false,
        -:        -: 6370:   nir_op_iand,
        -:        -: 6371:   { &replace237_0.value, &replace237_1.value },
        -:        -: 6372:   NULL,
        -:        -: 6373:};
        -:        -: 6374:
        -:        -: 6375:static const struct transform nir_opt_algebraic_extract_u8_xforms[] = {
        -:        -: 6376:   { &search105, &replace105.value, 0 },
        -:        -: 6377:   { &search237, &replace237.value, 27 },
        -:        -: 6378:};
        -:        -: 6379:   
        -:        -: 6380:static const nir_search_variable search242_0 = {
        -:        -: 6381:   { nir_search_value_variable, 0 },
        -:        -: 6382:   0, /* v */
        -:        -: 6383:   false,
        -:        -: 6384:   nir_type_invalid,
        -:        -: 6385:   NULL,
        -:        -: 6386:};
        -:        -: 6387:static const nir_search_expression search242 = {
        -:        -: 6388:   { nir_search_value_expression, 0 },
        -:        -: 6389:   false,
        -:        -: 6390:   nir_op_pack_snorm_2x16,
        -:        -: 6391:   { &search242_0.value },
        -:        -: 6392:   NULL,
        -:        -: 6393:};
        -:        -: 6394:   
        -:        -: 6395:static const nir_search_constant replace242_0_0_0_0_0 = {
        -:        -: 6396:   { nir_search_value_constant, 0 },
        -:        -: 6397:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 6398:};
        -:        -: 6399:
        -:        -: 6400:static const nir_search_constant replace242_0_0_0_0_1_0 = {
        -:        -: 6401:   { nir_search_value_constant, 0 },
        -:        -: 6402:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -: 6403:};
        -:        -: 6404:
        -:        -: 6405:static const nir_search_variable replace242_0_0_0_0_1_1 = {
        -:        -: 6406:   { nir_search_value_variable, 0 },
        -:        -: 6407:   0, /* v */
        -:        -: 6408:   false,
        -:        -: 6409:   nir_type_invalid,
        -:        -: 6410:   NULL,
        -:        -: 6411:};
        -:        -: 6412:static const nir_search_expression replace242_0_0_0_0_1 = {
        -:        -: 6413:   { nir_search_value_expression, 0 },
        -:        -: 6414:   false,
        -:        -: 6415:   nir_op_fmax,
        -:        -: 6416:   { &replace242_0_0_0_0_1_0.value, &replace242_0_0_0_0_1_1.value },
        -:        -: 6417:   NULL,
        -:        -: 6418:};
        -:        -: 6419:static const nir_search_expression replace242_0_0_0_0 = {
        -:        -: 6420:   { nir_search_value_expression, 0 },
        -:        -: 6421:   false,
        -:        -: 6422:   nir_op_fmin,
        -:        -: 6423:   { &replace242_0_0_0_0_0.value, &replace242_0_0_0_0_1.value },
        -:        -: 6424:   NULL,
        -:        -: 6425:};
        -:        -: 6426:
        -:        -: 6427:static const nir_search_constant replace242_0_0_0_1 = {
        -:        -: 6428:   { nir_search_value_constant, 0 },
        -:        -: 6429:   nir_type_float, { 0x40dfffc000000000 /* 32767.0 */ },
        -:        -: 6430:};
        -:        -: 6431:static const nir_search_expression replace242_0_0_0 = {
        -:        -: 6432:   { nir_search_value_expression, 0 },
        -:        -: 6433:   false,
        -:        -: 6434:   nir_op_fmul,
        -:        -: 6435:   { &replace242_0_0_0_0.value, &replace242_0_0_0_1.value },
        -:        -: 6436:   NULL,
        -:        -: 6437:};
        -:        -: 6438:static const nir_search_expression replace242_0_0 = {
        -:        -: 6439:   { nir_search_value_expression, 0 },
        -:        -: 6440:   false,
        -:        -: 6441:   nir_op_fround_even,
        -:        -: 6442:   { &replace242_0_0_0.value },
        -:        -: 6443:   NULL,
        -:        -: 6444:};
        -:        -: 6445:static const nir_search_expression replace242_0 = {
        -:        -: 6446:   { nir_search_value_expression, 0 },
        -:        -: 6447:   false,
        -:        -: 6448:   nir_op_f2i32,
        -:        -: 6449:   { &replace242_0_0.value },
        -:        -: 6450:   NULL,
        -:        -: 6451:};
        -:        -: 6452:static const nir_search_expression replace242 = {
        -:        -: 6453:   { nir_search_value_expression, 0 },
        -:        -: 6454:   false,
        -:        -: 6455:   nir_op_pack_uvec2_to_uint,
        -:        -: 6456:   { &replace242_0.value },
        -:        -: 6457:   NULL,
        -:        -: 6458:};
        -:        -: 6459:
        -:        -: 6460:static const struct transform nir_opt_algebraic_pack_snorm_2x16_xforms[] = {
        -:        -: 6461:   { &search242, &replace242.value, 31 },
        -:        -: 6462:};
        -:        -: 6463:   
        -:        -: 6464:static const nir_search_variable search156_0 = {
        -:        -: 6465:   { nir_search_value_variable, 0 },
        -:        -: 6466:   0, /* a */
        -:        -: 6467:   false,
        -:        -: 6468:   nir_type_invalid,
        -:        -: 6469:   NULL,
        -:        -: 6470:};
        -:        -: 6471:
        -:        -: 6472:static const nir_search_variable search156_1 = {
        -:        -: 6473:   { nir_search_value_variable, 0 },
        -:        -: 6474:   1, /* b */
        -:        -: 6475:   false,
        -:        -: 6476:   nir_type_invalid,
        -:        -: 6477:   NULL,
        -:        -: 6478:};
        -:        -: 6479:static const nir_search_expression search156 = {
        -:        -: 6480:   { nir_search_value_expression, 0 },
        -:        -: 6481:   false,
        -:        -: 6482:   nir_op_fpow,
        -:        -: 6483:   { &search156_0.value, &search156_1.value },
        -:        -: 6484:   NULL,
        -:        -: 6485:};
        -:        -: 6486:   
        -:        -: 6487:static const nir_search_variable replace156_0_0_0 = {
        -:        -: 6488:   { nir_search_value_variable, 0 },
        -:        -: 6489:   0, /* a */
        -:        -: 6490:   false,
        -:        -: 6491:   nir_type_invalid,
        -:        -: 6492:   NULL,
        -:        -: 6493:};
        -:        -: 6494:static const nir_search_expression replace156_0_0 = {
        -:        -: 6495:   { nir_search_value_expression, 0 },
        -:        -: 6496:   false,
        -:        -: 6497:   nir_op_flog2,
        -:        -: 6498:   { &replace156_0_0_0.value },
        -:        -: 6499:   NULL,
        -:        -: 6500:};
        -:        -: 6501:
        -:        -: 6502:static const nir_search_variable replace156_0_1 = {
        -:        -: 6503:   { nir_search_value_variable, 0 },
        -:        -: 6504:   1, /* b */
        -:        -: 6505:   false,
        -:        -: 6506:   nir_type_invalid,
        -:        -: 6507:   NULL,
        -:        -: 6508:};
        -:        -: 6509:static const nir_search_expression replace156_0 = {
        -:        -: 6510:   { nir_search_value_expression, 0 },
        -:        -: 6511:   false,
        -:        -: 6512:   nir_op_fmul,
        -:        -: 6513:   { &replace156_0_0.value, &replace156_0_1.value },
        -:        -: 6514:   NULL,
        -:        -: 6515:};
        -:        -: 6516:static const nir_search_expression replace156 = {
        -:        -: 6517:   { nir_search_value_expression, 0 },
        -:        -: 6518:   false,
        -:        -: 6519:   nir_op_fexp2,
        -:        -: 6520:   { &replace156_0.value },
        -:        -: 6521:   NULL,
        -:        -: 6522:};
        -:        -: 6523:   
        -:        -: 6524:static const nir_search_variable search159_0 = {
        -:        -: 6525:   { nir_search_value_variable, 0 },
        -:        -: 6526:   0, /* a */
        -:        -: 6527:   false,
        -:        -: 6528:   nir_type_invalid,
        -:        -: 6529:   NULL,
        -:        -: 6530:};
        -:        -: 6531:
        -:        -: 6532:static const nir_search_constant search159_1 = {
        -:        -: 6533:   { nir_search_value_constant, 0 },
        -:        -: 6534:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 6535:};
        -:        -: 6536:static const nir_search_expression search159 = {
        -:        -: 6537:   { nir_search_value_expression, 0 },
        -:        -: 6538:   true,
        -:        -: 6539:   nir_op_fpow,
        -:        -: 6540:   { &search159_0.value, &search159_1.value },
        -:        -: 6541:   NULL,
        -:        -: 6542:};
        -:        -: 6543:   
        -:        -: 6544:static const nir_search_variable replace159 = {
        -:        -: 6545:   { nir_search_value_variable, 0 },
        -:        -: 6546:   0, /* a */
        -:        -: 6547:   false,
        -:        -: 6548:   nir_type_invalid,
        -:        -: 6549:   NULL,
        -:        -: 6550:};
        -:        -: 6551:   
        -:        -: 6552:static const nir_search_variable search160_0 = {
        -:        -: 6553:   { nir_search_value_variable, 0 },
        -:        -: 6554:   0, /* a */
        -:        -: 6555:   false,
        -:        -: 6556:   nir_type_invalid,
        -:        -: 6557:   NULL,
        -:        -: 6558:};
        -:        -: 6559:
        -:        -: 6560:static const nir_search_constant search160_1 = {
        -:        -: 6561:   { nir_search_value_constant, 0 },
        -:        -: 6562:   nir_type_float, { 0x4000000000000000 /* 2.0 */ },
        -:        -: 6563:};
        -:        -: 6564:static const nir_search_expression search160 = {
        -:        -: 6565:   { nir_search_value_expression, 0 },
        -:        -: 6566:   true,
        -:        -: 6567:   nir_op_fpow,
        -:        -: 6568:   { &search160_0.value, &search160_1.value },
        -:        -: 6569:   NULL,
        -:        -: 6570:};
        -:        -: 6571:   
        -:        -: 6572:static const nir_search_variable replace160_0 = {
        -:        -: 6573:   { nir_search_value_variable, 0 },
        -:        -: 6574:   0, /* a */
        -:        -: 6575:   false,
        -:        -: 6576:   nir_type_invalid,
        -:        -: 6577:   NULL,
        -:        -: 6578:};
        -:        -: 6579:
        -:        -: 6580:static const nir_search_variable replace160_1 = {
        -:        -: 6581:   { nir_search_value_variable, 0 },
        -:        -: 6582:   0, /* a */
        -:        -: 6583:   false,
        -:        -: 6584:   nir_type_invalid,
        -:        -: 6585:   NULL,
        -:        -: 6586:};
        -:        -: 6587:static const nir_search_expression replace160 = {
        -:        -: 6588:   { nir_search_value_expression, 0 },
        -:        -: 6589:   false,
        -:        -: 6590:   nir_op_fmul,
        -:        -: 6591:   { &replace160_0.value, &replace160_1.value },
        -:        -: 6592:   NULL,
        -:        -: 6593:};
        -:        -: 6594:   
        -:        -: 6595:static const nir_search_variable search161_0 = {
        -:        -: 6596:   { nir_search_value_variable, 0 },
        -:        -: 6597:   0, /* a */
        -:        -: 6598:   false,
        -:        -: 6599:   nir_type_invalid,
        -:        -: 6600:   NULL,
        -:        -: 6601:};
        -:        -: 6602:
        -:        -: 6603:static const nir_search_constant search161_1 = {
        -:        -: 6604:   { nir_search_value_constant, 0 },
        -:        -: 6605:   nir_type_float, { 0x4010000000000000 /* 4.0 */ },
        -:        -: 6606:};
        -:        -: 6607:static const nir_search_expression search161 = {
        -:        -: 6608:   { nir_search_value_expression, 0 },
        -:        -: 6609:   true,
        -:        -: 6610:   nir_op_fpow,
        -:        -: 6611:   { &search161_0.value, &search161_1.value },
        -:        -: 6612:   NULL,
        -:        -: 6613:};
        -:        -: 6614:   
        -:        -: 6615:static const nir_search_variable replace161_0_0 = {
        -:        -: 6616:   { nir_search_value_variable, 0 },
        -:        -: 6617:   0, /* a */
        -:        -: 6618:   false,
        -:        -: 6619:   nir_type_invalid,
        -:        -: 6620:   NULL,
        -:        -: 6621:};
        -:        -: 6622:
        -:        -: 6623:static const nir_search_variable replace161_0_1 = {
        -:        -: 6624:   { nir_search_value_variable, 0 },
        -:        -: 6625:   0, /* a */
        -:        -: 6626:   false,
        -:        -: 6627:   nir_type_invalid,
        -:        -: 6628:   NULL,
        -:        -: 6629:};
        -:        -: 6630:static const nir_search_expression replace161_0 = {
        -:        -: 6631:   { nir_search_value_expression, 0 },
        -:        -: 6632:   false,
        -:        -: 6633:   nir_op_fmul,
        -:        -: 6634:   { &replace161_0_0.value, &replace161_0_1.value },
        -:        -: 6635:   NULL,
        -:        -: 6636:};
        -:        -: 6637:
        -:        -: 6638:static const nir_search_variable replace161_1_0 = {
        -:        -: 6639:   { nir_search_value_variable, 0 },
        -:        -: 6640:   0, /* a */
        -:        -: 6641:   false,
        -:        -: 6642:   nir_type_invalid,
        -:        -: 6643:   NULL,
        -:        -: 6644:};
        -:        -: 6645:
        -:        -: 6646:static const nir_search_variable replace161_1_1 = {
        -:        -: 6647:   { nir_search_value_variable, 0 },
        -:        -: 6648:   0, /* a */
        -:        -: 6649:   false,
        -:        -: 6650:   nir_type_invalid,
        -:        -: 6651:   NULL,
        -:        -: 6652:};
        -:        -: 6653:static const nir_search_expression replace161_1 = {
        -:        -: 6654:   { nir_search_value_expression, 0 },
        -:        -: 6655:   false,
        -:        -: 6656:   nir_op_fmul,
        -:        -: 6657:   { &replace161_1_0.value, &replace161_1_1.value },
        -:        -: 6658:   NULL,
        -:        -: 6659:};
        -:        -: 6660:static const nir_search_expression replace161 = {
        -:        -: 6661:   { nir_search_value_expression, 0 },
        -:        -: 6662:   false,
        -:        -: 6663:   nir_op_fmul,
        -:        -: 6664:   { &replace161_0.value, &replace161_1.value },
        -:        -: 6665:   NULL,
        -:        -: 6666:};
        -:        -: 6667:   
        -:        -: 6668:static const nir_search_constant search162_0 = {
        -:        -: 6669:   { nir_search_value_constant, 0 },
        -:        -: 6670:   nir_type_float, { 0x4000000000000000 /* 2.0 */ },
        -:        -: 6671:};
        -:        -: 6672:
        -:        -: 6673:static const nir_search_variable search162_1 = {
        -:        -: 6674:   { nir_search_value_variable, 0 },
        -:        -: 6675:   0, /* a */
        -:        -: 6676:   false,
        -:        -: 6677:   nir_type_invalid,
        -:        -: 6678:   NULL,
        -:        -: 6679:};
        -:        -: 6680:static const nir_search_expression search162 = {
        -:        -: 6681:   { nir_search_value_expression, 0 },
        -:        -: 6682:   true,
        -:        -: 6683:   nir_op_fpow,
        -:        -: 6684:   { &search162_0.value, &search162_1.value },
        -:        -: 6685:   NULL,
        -:        -: 6686:};
        -:        -: 6687:   
        -:        -: 6688:static const nir_search_variable replace162_0 = {
        -:        -: 6689:   { nir_search_value_variable, 0 },
        -:        -: 6690:   0, /* a */
        -:        -: 6691:   false,
        -:        -: 6692:   nir_type_invalid,
        -:        -: 6693:   NULL,
        -:        -: 6694:};
        -:        -: 6695:static const nir_search_expression replace162 = {
        -:        -: 6696:   { nir_search_value_expression, 0 },
        -:        -: 6697:   false,
        -:        -: 6698:   nir_op_fexp2,
        -:        -: 6699:   { &replace162_0.value },
        -:        -: 6700:   NULL,
        -:        -: 6701:};
        -:        -: 6702:   
        -:        -: 6703:static const nir_search_variable search163_0_0 = {
        -:        -: 6704:   { nir_search_value_variable, 0 },
        -:        -: 6705:   0, /* a */
        -:        -: 6706:   false,
        -:        -: 6707:   nir_type_invalid,
        -:        -: 6708:   NULL,
        -:        -: 6709:};
        -:        -: 6710:
        -:        -: 6711:static const nir_search_constant search163_0_1 = {
        -:        -: 6712:   { nir_search_value_constant, 0 },
        -:        -: 6713:   nir_type_float, { 0x400199999999999a /* 2.2 */ },
        -:        -: 6714:};
        -:        -: 6715:static const nir_search_expression search163_0 = {
        -:        -: 6716:   { nir_search_value_expression, 0 },
        -:        -: 6717:   false,
        -:        -: 6718:   nir_op_fpow,
        -:        -: 6719:   { &search163_0_0.value, &search163_0_1.value },
        -:        -: 6720:   NULL,
        -:        -: 6721:};
        -:        -: 6722:
        -:        -: 6723:static const nir_search_constant search163_1 = {
        -:        -: 6724:   { nir_search_value_constant, 0 },
        -:        -: 6725:   nir_type_float, { 0x3fdd1743e963dc48 /* 0.454545 */ },
        -:        -: 6726:};
        -:        -: 6727:static const nir_search_expression search163 = {
        -:        -: 6728:   { nir_search_value_expression, 0 },
        -:        -: 6729:   true,
        -:        -: 6730:   nir_op_fpow,
        -:        -: 6731:   { &search163_0.value, &search163_1.value },
        -:        -: 6732:   NULL,
        -:        -: 6733:};
        -:        -: 6734:   
        -:        -: 6735:static const nir_search_variable replace163 = {
        -:        -: 6736:   { nir_search_value_variable, 0 },
        -:        -: 6737:   0, /* a */
        -:        -: 6738:   false,
        -:        -: 6739:   nir_type_invalid,
        -:        -: 6740:   NULL,
        -:        -: 6741:};
        -:        -: 6742:   
        -:        -: 6743:static const nir_search_variable search164_0_0_0 = {
        -:        -: 6744:   { nir_search_value_variable, 0 },
        -:        -: 6745:   0, /* a */
        -:        -: 6746:   false,
        -:        -: 6747:   nir_type_invalid,
        -:        -: 6748:   NULL,
        -:        -: 6749:};
        -:        -: 6750:
        -:        -: 6751:static const nir_search_constant search164_0_0_1 = {
        -:        -: 6752:   { nir_search_value_constant, 0 },
        -:        -: 6753:   nir_type_float, { 0x400199999999999a /* 2.2 */ },
        -:        -: 6754:};
        -:        -: 6755:static const nir_search_expression search164_0_0 = {
        -:        -: 6756:   { nir_search_value_expression, 0 },
        -:        -: 6757:   false,
        -:        -: 6758:   nir_op_fpow,
        -:        -: 6759:   { &search164_0_0_0.value, &search164_0_0_1.value },
        -:        -: 6760:   NULL,
        -:        -: 6761:};
        -:        -: 6762:static const nir_search_expression search164_0 = {
        -:        -: 6763:   { nir_search_value_expression, 0 },
        -:        -: 6764:   false,
        -:        -: 6765:   nir_op_fabs,
        -:        -: 6766:   { &search164_0_0.value },
        -:        -: 6767:   NULL,
        -:        -: 6768:};
        -:        -: 6769:
        -:        -: 6770:static const nir_search_constant search164_1 = {
        -:        -: 6771:   { nir_search_value_constant, 0 },
        -:        -: 6772:   nir_type_float, { 0x3fdd1743e963dc48 /* 0.454545 */ },
        -:        -: 6773:};
        -:        -: 6774:static const nir_search_expression search164 = {
        -:        -: 6775:   { nir_search_value_expression, 0 },
        -:        -: 6776:   true,
        -:        -: 6777:   nir_op_fpow,
        -:        -: 6778:   { &search164_0.value, &search164_1.value },
        -:        -: 6779:   NULL,
        -:        -: 6780:};
        -:        -: 6781:   
        -:        -: 6782:static const nir_search_variable replace164_0 = {
        -:        -: 6783:   { nir_search_value_variable, 0 },
        -:        -: 6784:   0, /* a */
        -:        -: 6785:   false,
        -:        -: 6786:   nir_type_invalid,
        -:        -: 6787:   NULL,
        -:        -: 6788:};
        -:        -: 6789:static const nir_search_expression replace164 = {
        -:        -: 6790:   { nir_search_value_expression, 0 },
        -:        -: 6791:   false,
        -:        -: 6792:   nir_op_fabs,
        -:        -: 6793:   { &replace164_0.value },
        -:        -: 6794:   NULL,
        -:        -: 6795:};
        -:        -: 6796:
        -:        -: 6797:static const struct transform nir_opt_algebraic_fpow_xforms[] = {
        -:        -: 6798:   { &search156, &replace156.value, 12 },
        -:        -: 6799:   { &search159, &replace159.value, 0 },
        -:        -: 6800:   { &search160, &replace160.value, 0 },
        -:        -: 6801:   { &search161, &replace161.value, 0 },
        -:        -: 6802:   { &search162, &replace162.value, 0 },
        -:        -: 6803:   { &search163, &replace163.value, 0 },
        -:        -: 6804:   { &search164, &replace164.value, 0 },
        -:        -: 6805:};
        -:        -: 6806:   
        -:        -: 6807:static const nir_search_variable search128_0 = {
        -:        -: 6808:   { nir_search_value_variable, 0 },
        -:        -: 6809:   0, /* a */
        -:        -: 6810:   false,
        -:        -: 6811:   nir_type_invalid,
        -:        -: 6812:   NULL,
        -:        -: 6813:};
        -:        -: 6814:
        -:        -: 6815:static const nir_search_variable search128_1 = {
        -:        -: 6816:   { nir_search_value_variable, 0 },
        -:        -: 6817:   0, /* a */
        -:        -: 6818:   false,
        -:        -: 6819:   nir_type_invalid,
        -:        -: 6820:   NULL,
        -:        -: 6821:};
        -:        -: 6822:static const nir_search_expression search128 = {
        -:        -: 6823:   { nir_search_value_expression, 0 },
        -:        -: 6824:   false,
        -:        -: 6825:   nir_op_ige,
        -:        -: 6826:   { &search128_0.value, &search128_1.value },
        -:        -: 6827:   NULL,
        -:        -: 6828:};
        -:        -: 6829:   
        -:        -: 6830:static const nir_search_constant replace128 = {
        -:        -: 6831:   { nir_search_value_constant, 32 },
        -:        -: 6832:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -: 6833:};
        -:        -: 6834:   
        -:        -: 6835:static const nir_search_variable search267_0_0 = {
        -:        -: 6836:   { nir_search_value_variable, 0 },
        -:        -: 6837:   0, /* a */
        -:        -: 6838:   false,
        -:        -: 6839:   nir_type_invalid,
        -:        -: 6840:   NULL,
        -:        -: 6841:};
        -:        -: 6842:
        -:        -: 6843:static const nir_search_variable search267_0_1 = {
        -:        -: 6844:   { nir_search_value_variable, 0 },
        -:        -: 6845:   1, /* b */
        -:        -: 6846:   true,
        -:        -: 6847:   nir_type_invalid,
        -:        -: 6848:   NULL,
        -:        -: 6849:};
        -:        -: 6850:
        -:        -: 6851:static const nir_search_variable search267_0_2 = {
        -:        -: 6852:   { nir_search_value_variable, 0 },
        -:        -: 6853:   2, /* c */
        -:        -: 6854:   true,
        -:        -: 6855:   nir_type_invalid,
        -:        -: 6856:   NULL,
        -:        -: 6857:};
        -:        -: 6858:static const nir_search_expression search267_0 = {
        -:        -: 6859:   { nir_search_value_expression, 0 },
        -:        -: 6860:   false,
        -:        -: 6861:   nir_op_bcsel,
        -:        -: 6862:   { &search267_0_0.value, &search267_0_1.value, &search267_0_2.value },
        -:        -: 6863:   NULL,
        -:        -: 6864:};
        -:        -: 6865:
        -:        -: 6866:static const nir_search_variable search267_1 = {
        -:        -: 6867:   { nir_search_value_variable, 0 },
        -:        -: 6868:   3, /* d */
        -:        -: 6869:   true,
        -:        -: 6870:   nir_type_invalid,
        -:        -: 6871:   NULL,
        -:        -: 6872:};
        -:        -: 6873:static const nir_search_expression search267 = {
        -:        -: 6874:   { nir_search_value_expression, 0 },
        -:        -: 6875:   false,
        -:        -: 6876:   nir_op_ige,
        -:        -: 6877:   { &search267_0.value, &search267_1.value },
        -:        -: 6878:   NULL,
        -:        -: 6879:};
        -:        -: 6880:   
        -:        -: 6881:static const nir_search_variable replace267_0 = {
        -:        -: 6882:   { nir_search_value_variable, 0 },
        -:        -: 6883:   0, /* a */
        -:        -: 6884:   false,
        -:        -: 6885:   nir_type_invalid,
        -:        -: 6886:   NULL,
        -:        -: 6887:};
        -:        -: 6888:
        -:        -: 6889:static const nir_search_variable replace267_1_0 = {
        -:        -: 6890:   { nir_search_value_variable, 0 },
        -:        -: 6891:   1, /* b */
        -:        -: 6892:   false,
        -:        -: 6893:   nir_type_invalid,
        -:        -: 6894:   NULL,
        -:        -: 6895:};
        -:        -: 6896:
        -:        -: 6897:static const nir_search_variable replace267_1_1 = {
        -:        -: 6898:   { nir_search_value_variable, 0 },
        -:        -: 6899:   3, /* d */
        -:        -: 6900:   false,
        -:        -: 6901:   nir_type_invalid,
        -:        -: 6902:   NULL,
        -:        -: 6903:};
        -:        -: 6904:static const nir_search_expression replace267_1 = {
        -:        -: 6905:   { nir_search_value_expression, 0 },
        -:        -: 6906:   false,
        -:        -: 6907:   nir_op_ige,
        -:        -: 6908:   { &replace267_1_0.value, &replace267_1_1.value },
        -:        -: 6909:   NULL,
        -:        -: 6910:};
        -:        -: 6911:
        -:        -: 6912:static const nir_search_variable replace267_2_0 = {
        -:        -: 6913:   { nir_search_value_variable, 0 },
        -:        -: 6914:   2, /* c */
        -:        -: 6915:   false,
        -:        -: 6916:   nir_type_invalid,
        -:        -: 6917:   NULL,
        -:        -: 6918:};
        -:        -: 6919:
        -:        -: 6920:static const nir_search_variable replace267_2_1 = {
        -:        -: 6921:   { nir_search_value_variable, 0 },
        -:        -: 6922:   3, /* d */
        -:        -: 6923:   false,
        -:        -: 6924:   nir_type_invalid,
        -:        -: 6925:   NULL,
        -:        -: 6926:};
        -:        -: 6927:static const nir_search_expression replace267_2 = {
        -:        -: 6928:   { nir_search_value_expression, 0 },
        -:        -: 6929:   false,
        -:        -: 6930:   nir_op_ige,
        -:        -: 6931:   { &replace267_2_0.value, &replace267_2_1.value },
        -:        -: 6932:   NULL,
        -:        -: 6933:};
        -:        -: 6934:static const nir_search_expression replace267 = {
        -:        -: 6935:   { nir_search_value_expression, 0 },
        -:        -: 6936:   false,
        -:        -: 6937:   nir_op_bcsel,
        -:        -: 6938:   { &replace267_0.value, &replace267_1.value, &replace267_2.value },
        -:        -: 6939:   NULL,
        -:        -: 6940:};
        -:        -: 6941:   
        -:        -: 6942:static const nir_search_variable search268_0 = {
        -:        -: 6943:   { nir_search_value_variable, 0 },
        -:        -: 6944:   0, /* d */
        -:        -: 6945:   true,
        -:        -: 6946:   nir_type_invalid,
        -:        -: 6947:   NULL,
        -:        -: 6948:};
        -:        -: 6949:
        -:        -: 6950:static const nir_search_variable search268_1_0 = {
        -:        -: 6951:   { nir_search_value_variable, 0 },
        -:        -: 6952:   1, /* a */
        -:        -: 6953:   false,
        -:        -: 6954:   nir_type_invalid,
        -:        -: 6955:   NULL,
        -:        -: 6956:};
        -:        -: 6957:
        -:        -: 6958:static const nir_search_variable search268_1_1 = {
        -:        -: 6959:   { nir_search_value_variable, 0 },
        -:        -: 6960:   2, /* b */
        -:        -: 6961:   true,
        -:        -: 6962:   nir_type_invalid,
        -:        -: 6963:   NULL,
        -:        -: 6964:};
        -:        -: 6965:
        -:        -: 6966:static const nir_search_variable search268_1_2 = {
        -:        -: 6967:   { nir_search_value_variable, 0 },
        -:        -: 6968:   3, /* c */
        -:        -: 6969:   true,
        -:        -: 6970:   nir_type_invalid,
        -:        -: 6971:   NULL,
        -:        -: 6972:};
        -:        -: 6973:static const nir_search_expression search268_1 = {
        -:        -: 6974:   { nir_search_value_expression, 0 },
        -:        -: 6975:   false,
        -:        -: 6976:   nir_op_bcsel,
        -:        -: 6977:   { &search268_1_0.value, &search268_1_1.value, &search268_1_2.value },
        -:        -: 6978:   NULL,
        -:        -: 6979:};
        -:        -: 6980:static const nir_search_expression search268 = {
        -:        -: 6981:   { nir_search_value_expression, 0 },
        -:        -: 6982:   false,
        -:        -: 6983:   nir_op_ige,
        -:        -: 6984:   { &search268_0.value, &search268_1.value },
        -:        -: 6985:   NULL,
        -:        -: 6986:};
        -:        -: 6987:   
        -:        -: 6988:static const nir_search_variable replace268_0 = {
        -:        -: 6989:   { nir_search_value_variable, 0 },
        -:        -: 6990:   1, /* a */
        -:        -: 6991:   false,
        -:        -: 6992:   nir_type_invalid,
        -:        -: 6993:   NULL,
        -:        -: 6994:};
        -:        -: 6995:
        -:        -: 6996:static const nir_search_variable replace268_1_0 = {
        -:        -: 6997:   { nir_search_value_variable, 0 },
        -:        -: 6998:   0, /* d */
        -:        -: 6999:   false,
        -:        -: 7000:   nir_type_invalid,
        -:        -: 7001:   NULL,
        -:        -: 7002:};
        -:        -: 7003:
        -:        -: 7004:static const nir_search_variable replace268_1_1 = {
        -:        -: 7005:   { nir_search_value_variable, 0 },
        -:        -: 7006:   2, /* b */
        -:        -: 7007:   false,
        -:        -: 7008:   nir_type_invalid,
        -:        -: 7009:   NULL,
        -:        -: 7010:};
        -:        -: 7011:static const nir_search_expression replace268_1 = {
        -:        -: 7012:   { nir_search_value_expression, 0 },
        -:        -: 7013:   false,
        -:        -: 7014:   nir_op_ige,
        -:        -: 7015:   { &replace268_1_0.value, &replace268_1_1.value },
        -:        -: 7016:   NULL,
        -:        -: 7017:};
        -:        -: 7018:
        -:        -: 7019:static const nir_search_variable replace268_2_0 = {
        -:        -: 7020:   { nir_search_value_variable, 0 },
        -:        -: 7021:   0, /* d */
        -:        -: 7022:   false,
        -:        -: 7023:   nir_type_invalid,
        -:        -: 7024:   NULL,
        -:        -: 7025:};
        -:        -: 7026:
        -:        -: 7027:static const nir_search_variable replace268_2_1 = {
        -:        -: 7028:   { nir_search_value_variable, 0 },
        -:        -: 7029:   3, /* c */
        -:        -: 7030:   false,
        -:        -: 7031:   nir_type_invalid,
        -:        -: 7032:   NULL,
        -:        -: 7033:};
        -:        -: 7034:static const nir_search_expression replace268_2 = {
        -:        -: 7035:   { nir_search_value_expression, 0 },
        -:        -: 7036:   false,
        -:        -: 7037:   nir_op_ige,
        -:        -: 7038:   { &replace268_2_0.value, &replace268_2_1.value },
        -:        -: 7039:   NULL,
        -:        -: 7040:};
        -:        -: 7041:static const nir_search_expression replace268 = {
        -:        -: 7042:   { nir_search_value_expression, 0 },
        -:        -: 7043:   false,
        -:        -: 7044:   nir_op_bcsel,
        -:        -: 7045:   { &replace268_0.value, &replace268_1.value, &replace268_2.value },
        -:        -: 7046:   NULL,
        -:        -: 7047:};
        -:        -: 7048:
        -:        -: 7049:static const struct transform nir_opt_algebraic_ige_xforms[] = {
        -:        -: 7050:   { &search128, &replace128.value, 0 },
        -:        -: 7051:   { &search267, &replace267.value, 0 },
        -:        -: 7052:   { &search268, &replace268.value, 0 },
        -:        -: 7053:};
        -:        -: 7054:   
        -:        -: 7055:static const nir_search_constant search173_0 = {
        -:        -: 7056:   { nir_search_value_constant, 0 },
        -:        -: 7057:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 7058:};
        -:        -: 7059:
        -:        -: 7060:static const nir_search_variable search173_1 = {
        -:        -: 7061:   { nir_search_value_variable, 0 },
        -:        -: 7062:   0, /* a */
        -:        -: 7063:   false,
        -:        -: 7064:   nir_type_invalid,
        -:        -: 7065:   NULL,
        -:        -: 7066:};
        -:        -: 7067:static const nir_search_expression search173 = {
        -:        -: 7068:   { nir_search_value_expression, 0 },
        -:        -: 7069:   true,
        -:        -: 7070:   nir_op_fdiv,
        -:        -: 7071:   { &search173_0.value, &search173_1.value },
        -:        -: 7072:   NULL,
        -:        -: 7073:};
        -:        -: 7074:   
        -:        -: 7075:static const nir_search_variable replace173_0 = {
        -:        -: 7076:   { nir_search_value_variable, 0 },
        -:        -: 7077:   0, /* a */
        -:        -: 7078:   false,
        -:        -: 7079:   nir_type_invalid,
        -:        -: 7080:   NULL,
        -:        -: 7081:};
        -:        -: 7082:static const nir_search_expression replace173 = {
        -:        -: 7083:   { nir_search_value_expression, 0 },
        -:        -: 7084:   false,
        -:        -: 7085:   nir_op_frcp,
        -:        -: 7086:   { &replace173_0.value },
        -:        -: 7087:   NULL,
        -:        -: 7088:};
        -:        -: 7089:   
        -:        -: 7090:static const nir_search_variable search174_0 = {
        -:        -: 7091:   { nir_search_value_variable, 0 },
        -:        -: 7092:   0, /* a */
        -:        -: 7093:   false,
        -:        -: 7094:   nir_type_invalid,
        -:        -: 7095:   NULL,
        -:        -: 7096:};
        -:        -: 7097:
        -:        -: 7098:static const nir_search_variable search174_1 = {
        -:        -: 7099:   { nir_search_value_variable, 0 },
        -:        -: 7100:   1, /* b */
        -:        -: 7101:   false,
        -:        -: 7102:   nir_type_invalid,
        -:        -: 7103:   NULL,
        -:        -: 7104:};
        -:        -: 7105:static const nir_search_expression search174 = {
        -:        -: 7106:   { nir_search_value_expression, 0 },
        -:        -: 7107:   false,
        -:        -: 7108:   nir_op_fdiv,
        -:        -: 7109:   { &search174_0.value, &search174_1.value },
        -:        -: 7110:   NULL,
        -:        -: 7111:};
        -:        -: 7112:   
        -:        -: 7113:static const nir_search_variable replace174_0 = {
        -:        -: 7114:   { nir_search_value_variable, 0 },
        -:        -: 7115:   0, /* a */
        -:        -: 7116:   false,
        -:        -: 7117:   nir_type_invalid,
        -:        -: 7118:   NULL,
        -:        -: 7119:};
        -:        -: 7120:
        -:        -: 7121:static const nir_search_variable replace174_1_0 = {
        -:        -: 7122:   { nir_search_value_variable, 0 },
        -:        -: 7123:   1, /* b */
        -:        -: 7124:   false,
        -:        -: 7125:   nir_type_invalid,
        -:        -: 7126:   NULL,
        -:        -: 7127:};
        -:        -: 7128:static const nir_search_expression replace174_1 = {
        -:        -: 7129:   { nir_search_value_expression, 0 },
        -:        -: 7130:   false,
        -:        -: 7131:   nir_op_frcp,
        -:        -: 7132:   { &replace174_1_0.value },
        -:        -: 7133:   NULL,
        -:        -: 7134:};
        -:        -: 7135:static const nir_search_expression replace174 = {
        -:        -: 7136:   { nir_search_value_expression, 0 },
        -:        -: 7137:   false,
        -:        -: 7138:   nir_op_fmul,
        -:        -: 7139:   { &replace174_0.value, &replace174_1.value },
        -:        -: 7140:   NULL,
        -:        -: 7141:};
        -:        -: 7142:
        -:        -: 7143:static const struct transform nir_opt_algebraic_fdiv_xforms[] = {
        -:        -: 7144:   { &search173, &replace173.value, 0 },
        -:        -: 7145:   { &search174, &replace174.value, 14 },
        -:        -: 7146:};
        -:        -: 7147:   
        -:        -: 7148:static const nir_search_variable search50_0 = {
        -:        -: 7149:   { nir_search_value_variable, 0 },
        -:        -: 7150:   0, /* a */
        -:        -: 7151:   false,
        -:        -: 7152:   nir_type_invalid,
        -:        -: 7153:   NULL,
        -:        -: 7154:};
        -:        -: 7155:static const nir_search_expression search50 = {
        -:        -: 7156:   { nir_search_value_expression, 0 },
        -:        -: 7157:   false,
        -:        -: 7158:   nir_op_ffract,
        -:        -: 7159:   { &search50_0.value },
        -:        -: 7160:   NULL,
        -:        -: 7161:};
        -:        -: 7162:   
        -:        -: 7163:static const nir_search_variable replace50_0 = {
        -:        -: 7164:   { nir_search_value_variable, 0 },
        -:        -: 7165:   0, /* a */
        -:        -: 7166:   false,
        -:        -: 7167:   nir_type_invalid,
        -:        -: 7168:   NULL,
        -:        -: 7169:};
        -:        -: 7170:
        -:        -: 7171:static const nir_search_variable replace50_1_0 = {
        -:        -: 7172:   { nir_search_value_variable, 0 },
        -:        -: 7173:   0, /* a */
        -:        -: 7174:   false,
        -:        -: 7175:   nir_type_invalid,
        -:        -: 7176:   NULL,
        -:        -: 7177:};
        -:        -: 7178:static const nir_search_expression replace50_1 = {
        -:        -: 7179:   { nir_search_value_expression, 0 },
        -:        -: 7180:   false,
        -:        -: 7181:   nir_op_ffloor,
        -:        -: 7182:   { &replace50_1_0.value },
        -:        -: 7183:   NULL,
        -:        -: 7184:};
        -:        -: 7185:static const nir_search_expression replace50 = {
        -:        -: 7186:   { nir_search_value_expression, 0 },
        -:        -: 7187:   false,
        -:        -: 7188:   nir_op_fsub,
        -:        -: 7189:   { &replace50_0.value, &replace50_1.value },
        -:        -: 7190:   NULL,
        -:        -: 7191:};
        -:        -: 7192:
        -:        -: 7193:static const struct transform nir_opt_algebraic_ffract_xforms[] = {
        -:        -: 7194:   { &search50, &replace50.value, 4 },
        -:        -: 7195:};
        -:        -: 7196:   
        -:        -: 7197:static const nir_search_variable search17_0 = {
        -:        -: 7198:   { nir_search_value_variable, 0 },
        -:        -: 7199:   0, /* a */
        -:        -: 7200:   false,
        -:        -: 7201:   nir_type_invalid,
        -:        -: 7202:   NULL,
        -:        -: 7203:};
        -:        -: 7204:
        -:        -: 7205:static const nir_search_constant search17_1 = {
        -:        -: 7206:   { nir_search_value_constant, 0 },
        -:        -: 7207:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 7208:};
        -:        -: 7209:static const nir_search_expression search17 = {
        -:        -: 7210:   { nir_search_value_expression, 0 },
        -:        -: 7211:   true,
        -:        -: 7212:   nir_op_fadd,
        -:        -: 7213:   { &search17_0.value, &search17_1.value },
        -:        -: 7214:   NULL,
        -:        -: 7215:};
        -:        -: 7216:   
        -:        -: 7217:static const nir_search_variable replace17 = {
        -:        -: 7218:   { nir_search_value_variable, 0 },
        -:        -: 7219:   0, /* a */
        -:        -: 7220:   false,
        -:        -: 7221:   nir_type_invalid,
        -:        -: 7222:   NULL,
        -:        -: 7223:};
        -:        -: 7224:   
        -:        -: 7225:static const nir_search_variable search21_0_0 = {
        -:        -: 7226:   { nir_search_value_variable, 0 },
        -:        -: 7227:   0, /* a */
        -:        -: 7228:   false,
        -:        -: 7229:   nir_type_invalid,
        -:        -: 7230:   NULL,
        -:        -: 7231:};
        -:        -: 7232:
        -:        -: 7233:static const nir_search_variable search21_0_1 = {
        -:        -: 7234:   { nir_search_value_variable, 0 },
        -:        -: 7235:   1, /* b */
        -:        -: 7236:   false,
        -:        -: 7237:   nir_type_invalid,
        -:        -: 7238:   NULL,
        -:        -: 7239:};
        -:        -: 7240:static const nir_search_expression search21_0 = {
        -:        -: 7241:   { nir_search_value_expression, 0 },
        -:        -: 7242:   false,
        -:        -: 7243:   nir_op_fmul,
        -:        -: 7244:   { &search21_0_0.value, &search21_0_1.value },
        -:        -: 7245:   NULL,
        -:        -: 7246:};
        -:        -: 7247:
        -:        -: 7248:static const nir_search_variable search21_1_0 = {
        -:        -: 7249:   { nir_search_value_variable, 0 },
        -:        -: 7250:   0, /* a */
        -:        -: 7251:   false,
        -:        -: 7252:   nir_type_invalid,
        -:        -: 7253:   NULL,
        -:        -: 7254:};
        -:        -: 7255:
        -:        -: 7256:static const nir_search_variable search21_1_1 = {
        -:        -: 7257:   { nir_search_value_variable, 0 },
        -:        -: 7258:   2, /* c */
        -:        -: 7259:   false,
        -:        -: 7260:   nir_type_invalid,
        -:        -: 7261:   NULL,
        -:        -: 7262:};
        -:        -: 7263:static const nir_search_expression search21_1 = {
        -:        -: 7264:   { nir_search_value_expression, 0 },
        -:        -: 7265:   false,
        -:        -: 7266:   nir_op_fmul,
        -:        -: 7267:   { &search21_1_0.value, &search21_1_1.value },
        -:        -: 7268:   NULL,
        -:        -: 7269:};
        -:        -: 7270:static const nir_search_expression search21 = {
        -:        -: 7271:   { nir_search_value_expression, 0 },
        -:        -: 7272:   true,
        -:        -: 7273:   nir_op_fadd,
        -:        -: 7274:   { &search21_0.value, &search21_1.value },
        -:        -: 7275:   NULL,
        -:        -: 7276:};
        -:        -: 7277:   
        -:        -: 7278:static const nir_search_variable replace21_0 = {
        -:        -: 7279:   { nir_search_value_variable, 0 },
        -:        -: 7280:   0, /* a */
        -:        -: 7281:   false,
        -:        -: 7282:   nir_type_invalid,
        -:        -: 7283:   NULL,
        -:        -: 7284:};
        -:        -: 7285:
        -:        -: 7286:static const nir_search_variable replace21_1_0 = {
        -:        -: 7287:   { nir_search_value_variable, 0 },
        -:        -: 7288:   1, /* b */
        -:        -: 7289:   false,
        -:        -: 7290:   nir_type_invalid,
        -:        -: 7291:   NULL,
        -:        -: 7292:};
        -:        -: 7293:
        -:        -: 7294:static const nir_search_variable replace21_1_1 = {
        -:        -: 7295:   { nir_search_value_variable, 0 },
        -:        -: 7296:   2, /* c */
        -:        -: 7297:   false,
        -:        -: 7298:   nir_type_invalid,
        -:        -: 7299:   NULL,
        -:        -: 7300:};
        -:        -: 7301:static const nir_search_expression replace21_1 = {
        -:        -: 7302:   { nir_search_value_expression, 0 },
        -:        -: 7303:   false,
        -:        -: 7304:   nir_op_fadd,
        -:        -: 7305:   { &replace21_1_0.value, &replace21_1_1.value },
        -:        -: 7306:   NULL,
        -:        -: 7307:};
        -:        -: 7308:static const nir_search_expression replace21 = {
        -:        -: 7309:   { nir_search_value_expression, 0 },
        -:        -: 7310:   false,
        -:        -: 7311:   nir_op_fmul,
        -:        -: 7312:   { &replace21_0.value, &replace21_1.value },
        -:        -: 7313:   NULL,
        -:        -: 7314:};
        -:        -: 7315:   
        -:        -: 7316:static const nir_search_variable search23_0_0 = {
        -:        -: 7317:   { nir_search_value_variable, 0 },
        -:        -: 7318:   0, /* a */
        -:        -: 7319:   false,
        -:        -: 7320:   nir_type_invalid,
        -:        -: 7321:   NULL,
        -:        -: 7322:};
        -:        -: 7323:static const nir_search_expression search23_0 = {
        -:        -: 7324:   { nir_search_value_expression, 0 },
        -:        -: 7325:   false,
        -:        -: 7326:   nir_op_fneg,
        -:        -: 7327:   { &search23_0_0.value },
        -:        -: 7328:   NULL,
        -:        -: 7329:};
        -:        -: 7330:
        -:        -: 7331:static const nir_search_variable search23_1 = {
        -:        -: 7332:   { nir_search_value_variable, 0 },
        -:        -: 7333:   0, /* a */
        -:        -: 7334:   false,
        -:        -: 7335:   nir_type_invalid,
        -:        -: 7336:   NULL,
        -:        -: 7337:};
        -:        -: 7338:static const nir_search_expression search23 = {
        -:        -: 7339:   { nir_search_value_expression, 0 },
        -:        -: 7340:   true,
        -:        -: 7341:   nir_op_fadd,
        -:        -: 7342:   { &search23_0.value, &search23_1.value },
        -:        -: 7343:   NULL,
        -:        -: 7344:};
        -:        -: 7345:   
        -:        -: 7346:static const nir_search_constant replace23 = {
        -:        -: 7347:   { nir_search_value_constant, 0 },
        -:        -: 7348:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 7349:};
        -:        -: 7350:   
        -:        -: 7351:static const nir_search_variable search27_0_0 = {
        -:        -: 7352:   { nir_search_value_variable, 0 },
        -:        -: 7353:   0, /* a */
        -:        -: 7354:   false,
        -:        -: 7355:   nir_type_invalid,
        -:        -: 7356:   NULL,
        -:        -: 7357:};
        -:        -: 7358:static const nir_search_expression search27_0 = {
        -:        -: 7359:   { nir_search_value_expression, 0 },
        -:        -: 7360:   false,
        -:        -: 7361:   nir_op_fneg,
        -:        -: 7362:   { &search27_0_0.value },
        -:        -: 7363:   NULL,
        -:        -: 7364:};
        -:        -: 7365:
        -:        -: 7366:static const nir_search_variable search27_1_0 = {
        -:        -: 7367:   { nir_search_value_variable, 0 },
        -:        -: 7368:   0, /* a */
        -:        -: 7369:   false,
        -:        -: 7370:   nir_type_invalid,
        -:        -: 7371:   NULL,
        -:        -: 7372:};
        -:        -: 7373:
        -:        -: 7374:static const nir_search_variable search27_1_1 = {
        -:        -: 7375:   { nir_search_value_variable, 0 },
        -:        -: 7376:   1, /* b */
        -:        -: 7377:   false,
        -:        -: 7378:   nir_type_invalid,
        -:        -: 7379:   NULL,
        -:        -: 7380:};
        -:        -: 7381:static const nir_search_expression search27_1 = {
        -:        -: 7382:   { nir_search_value_expression, 0 },
        -:        -: 7383:   false,
        -:        -: 7384:   nir_op_fadd,
        -:        -: 7385:   { &search27_1_0.value, &search27_1_1.value },
        -:        -: 7386:   NULL,
        -:        -: 7387:};
        -:        -: 7388:static const nir_search_expression search27 = {
        -:        -: 7389:   { nir_search_value_expression, 0 },
        -:        -: 7390:   true,
        -:        -: 7391:   nir_op_fadd,
        -:        -: 7392:   { &search27_0.value, &search27_1.value },
        -:        -: 7393:   NULL,
        -:        -: 7394:};
        -:        -: 7395:   
        -:        -: 7396:static const nir_search_variable replace27 = {
        -:        -: 7397:   { nir_search_value_variable, 0 },
        -:        -: 7398:   1, /* b */
        -:        -: 7399:   false,
        -:        -: 7400:   nir_type_invalid,
        -:        -: 7401:   NULL,
        -:        -: 7402:};
        -:        -: 7403:   
        -:        -: 7404:static const nir_search_variable search28_0 = {
        -:        -: 7405:   { nir_search_value_variable, 0 },
        -:        -: 7406:   0, /* a */
        -:        -: 7407:   false,
        -:        -: 7408:   nir_type_invalid,
        -:        -: 7409:   NULL,
        -:        -: 7410:};
        -:        -: 7411:
        -:        -: 7412:static const nir_search_variable search28_1_0_0 = {
        -:        -: 7413:   { nir_search_value_variable, 0 },
        -:        -: 7414:   0, /* a */
        -:        -: 7415:   false,
        -:        -: 7416:   nir_type_invalid,
        -:        -: 7417:   NULL,
        -:        -: 7418:};
        -:        -: 7419:static const nir_search_expression search28_1_0 = {
        -:        -: 7420:   { nir_search_value_expression, 0 },
        -:        -: 7421:   false,
        -:        -: 7422:   nir_op_fneg,
        -:        -: 7423:   { &search28_1_0_0.value },
        -:        -: 7424:   NULL,
        -:        -: 7425:};
        -:        -: 7426:
        -:        -: 7427:static const nir_search_variable search28_1_1 = {
        -:        -: 7428:   { nir_search_value_variable, 0 },
        -:        -: 7429:   1, /* b */
        -:        -: 7430:   false,
        -:        -: 7431:   nir_type_invalid,
        -:        -: 7432:   NULL,
        -:        -: 7433:};
        -:        -: 7434:static const nir_search_expression search28_1 = {
        -:        -: 7435:   { nir_search_value_expression, 0 },
        -:        -: 7436:   false,
        -:        -: 7437:   nir_op_fadd,
        -:        -: 7438:   { &search28_1_0.value, &search28_1_1.value },
        -:        -: 7439:   NULL,
        -:        -: 7440:};
        -:        -: 7441:static const nir_search_expression search28 = {
        -:        -: 7442:   { nir_search_value_expression, 0 },
        -:        -: 7443:   true,
        -:        -: 7444:   nir_op_fadd,
        -:        -: 7445:   { &search28_0.value, &search28_1.value },
        -:        -: 7446:   NULL,
        -:        -: 7447:};
        -:        -: 7448:   
        -:        -: 7449:static const nir_search_variable replace28 = {
        -:        -: 7450:   { nir_search_value_variable, 0 },
        -:        -: 7451:   1, /* b */
        -:        -: 7452:   false,
        -:        -: 7453:   nir_type_invalid,
        -:        -: 7454:   NULL,
        -:        -: 7455:};
        -:        -: 7456:   
        -:        -: 7457:static const nir_search_variable search51_0_0 = {
        -:        -: 7458:   { nir_search_value_variable, 0 },
        -:        -: 7459:   0, /* a */
        -:        -: 7460:   false,
        -:        -: 7461:   nir_type_invalid,
        -:        -: 7462:   NULL,
        -:        -: 7463:};
        -:        -: 7464:
        -:        -: 7465:static const nir_search_constant search51_0_1_0 = {
        -:        -: 7466:   { nir_search_value_constant, 0 },
        -:        -: 7467:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 7468:};
        -:        -: 7469:
        -:        -: 7470:static const nir_search_variable search51_0_1_1_0_0 = {
        -:        -: 7471:   { nir_search_value_variable, 0 },
        -:        -: 7472:   1, /* c */
        -:        -: 7473:   false,
        -:        -: 7474:   nir_type_invalid,
        -:        -: 7475:   NULL,
        -:        -: 7476:};
        -:        -: 7477:static const nir_search_expression search51_0_1_1_0 = {
        -:        -: 7478:   { nir_search_value_expression, 0 },
        -:        -: 7479:   false,
        -:        -: 7480:   nir_op_b2f,
        -:        -: 7481:   { &search51_0_1_1_0_0.value },
        -:        -: 7482:   NULL,
        -:        -: 7483:};
        -:        -: 7484:static const nir_search_expression search51_0_1_1 = {
        -:        -: 7485:   { nir_search_value_expression, 0 },
        -:        -: 7486:   false,
        -:        -: 7487:   nir_op_fneg,
        -:        -: 7488:   { &search51_0_1_1_0.value },
        -:        -: 7489:   NULL,
        -:        -: 7490:};
        -:        -: 7491:static const nir_search_expression search51_0_1 = {
        -:        -: 7492:   { nir_search_value_expression, 0 },
        -:        -: 7493:   false,
        -:        -: 7494:   nir_op_fadd,
        -:        -: 7495:   { &search51_0_1_0.value, &search51_0_1_1.value },
        -:        -: 7496:   NULL,
        -:        -: 7497:};
        -:        -: 7498:static const nir_search_expression search51_0 = {
        -:        -: 7499:   { nir_search_value_expression, 0 },
        -:        -: 7500:   false,
        -:        -: 7501:   nir_op_fmul,
        -:        -: 7502:   { &search51_0_0.value, &search51_0_1.value },
        -:        -: 7503:   NULL,
        -:        -: 7504:};
        -:        -: 7505:
        -:        -: 7506:static const nir_search_variable search51_1_0 = {
        -:        -: 7507:   { nir_search_value_variable, 0 },
        -:        -: 7508:   2, /* b */
        -:        -: 7509:   false,
        -:        -: 7510:   nir_type_invalid,
        -:        -: 7511:   NULL,
        -:        -: 7512:};
        -:        -: 7513:
        -:        -: 7514:static const nir_search_variable search51_1_1_0 = {
        -:        -: 7515:   { nir_search_value_variable, 0 },
        -:        -: 7516:   1, /* c */
        -:        -: 7517:   false,
        -:        -: 7518:   nir_type_invalid,
        -:        -: 7519:   NULL,
        -:        -: 7520:};
        -:        -: 7521:static const nir_search_expression search51_1_1 = {
        -:        -: 7522:   { nir_search_value_expression, 0 },
        -:        -: 7523:   false,
        -:        -: 7524:   nir_op_b2f,
        -:        -: 7525:   { &search51_1_1_0.value },
        -:        -: 7526:   NULL,
        -:        -: 7527:};
        -:        -: 7528:static const nir_search_expression search51_1 = {
        -:        -: 7529:   { nir_search_value_expression, 0 },
        -:        -: 7530:   false,
        -:        -: 7531:   nir_op_fmul,
        -:        -: 7532:   { &search51_1_0.value, &search51_1_1.value },
        -:        -: 7533:   NULL,
        -:        -: 7534:};
        -:        -: 7535:static const nir_search_expression search51 = {
        -:        -: 7536:   { nir_search_value_expression, 0 },
        -:        -: 7537:   true,
        -:        -: 7538:   nir_op_fadd,
        -:        -: 7539:   { &search51_0.value, &search51_1.value },
        -:        -: 7540:   NULL,
        -:        -: 7541:};
        -:        -: 7542:   
        -:        -: 7543:static const nir_search_variable replace51_0 = {
        -:        -: 7544:   { nir_search_value_variable, 0 },
        -:        -: 7545:   1, /* c */
        -:        -: 7546:   false,
        -:        -: 7547:   nir_type_invalid,
        -:        -: 7548:   NULL,
        -:        -: 7549:};
        -:        -: 7550:
        -:        -: 7551:static const nir_search_variable replace51_1 = {
        -:        -: 7552:   { nir_search_value_variable, 0 },
        -:        -: 7553:   2, /* b */
        -:        -: 7554:   false,
        -:        -: 7555:   nir_type_invalid,
        -:        -: 7556:   NULL,
        -:        -: 7557:};
        -:        -: 7558:
        -:        -: 7559:static const nir_search_variable replace51_2 = {
        -:        -: 7560:   { nir_search_value_variable, 0 },
        -:        -: 7561:   0, /* a */
        -:        -: 7562:   false,
        -:        -: 7563:   nir_type_invalid,
        -:        -: 7564:   NULL,
        -:        -: 7565:};
        -:        -: 7566:static const nir_search_expression replace51 = {
        -:        -: 7567:   { nir_search_value_expression, 0 },
        -:        -: 7568:   false,
        -:        -: 7569:   nir_op_bcsel,
        -:        -: 7570:   { &replace51_0.value, &replace51_1.value, &replace51_2.value },
        -:        -: 7571:   NULL,
        -:        -: 7572:};
        -:        -: 7573:   
        -:        -: 7574:static const nir_search_variable search52_0_0 = {
        -:        -: 7575:   { nir_search_value_variable, 0 },
        -:        -: 7576:   0, /* a */
        -:        -: 7577:   false,
        -:        -: 7578:   nir_type_invalid,
        -:        -: 7579:   NULL,
        -:        -: 7580:};
        -:        -: 7581:
        -:        -: 7582:static const nir_search_constant search52_0_1_0 = {
        -:        -: 7583:   { nir_search_value_constant, 0 },
        -:        -: 7584:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 7585:};
        -:        -: 7586:
        -:        -: 7587:static const nir_search_variable search52_0_1_1_0 = {
        -:        -: 7588:   { nir_search_value_variable, 0 },
        -:        -: 7589:   1, /* c */
        -:        -: 7590:   false,
        -:        -: 7591:   nir_type_invalid,
        -:        -: 7592:   NULL,
        -:        -: 7593:};
        -:        -: 7594:static const nir_search_expression search52_0_1_1 = {
        -:        -: 7595:   { nir_search_value_expression, 0 },
        -:        -: 7596:   false,
        -:        -: 7597:   nir_op_fneg,
        -:        -: 7598:   { &search52_0_1_1_0.value },
        -:        -: 7599:   NULL,
        -:        -: 7600:};
        -:        -: 7601:static const nir_search_expression search52_0_1 = {
        -:        -: 7602:   { nir_search_value_expression, 0 },
        -:        -: 7603:   false,
        -:        -: 7604:   nir_op_fadd,
        -:        -: 7605:   { &search52_0_1_0.value, &search52_0_1_1.value },
        -:        -: 7606:   NULL,
        -:        -: 7607:};
        -:        -: 7608:static const nir_search_expression search52_0 = {
        -:        -: 7609:   { nir_search_value_expression, 0 },
        -:        -: 7610:   false,
        -:        -: 7611:   nir_op_fmul,
        -:        -: 7612:   { &search52_0_0.value, &search52_0_1.value },
        -:        -: 7613:   NULL,
        -:        -: 7614:};
        -:        -: 7615:
        -:        -: 7616:static const nir_search_variable search52_1_0 = {
        -:        -: 7617:   { nir_search_value_variable, 0 },
        -:        -: 7618:   2, /* b */
        -:        -: 7619:   false,
        -:        -: 7620:   nir_type_invalid,
        -:        -: 7621:   NULL,
        -:        -: 7622:};
        -:        -: 7623:
        -:        -: 7624:static const nir_search_variable search52_1_1 = {
        -:        -: 7625:   { nir_search_value_variable, 0 },
        -:        -: 7626:   1, /* c */
        -:        -: 7627:   false,
        -:        -: 7628:   nir_type_invalid,
        -:        -: 7629:   NULL,
        -:        -: 7630:};
        -:        -: 7631:static const nir_search_expression search52_1 = {
        -:        -: 7632:   { nir_search_value_expression, 0 },
        -:        -: 7633:   false,
        -:        -: 7634:   nir_op_fmul,
        -:        -: 7635:   { &search52_1_0.value, &search52_1_1.value },
        -:        -: 7636:   NULL,
        -:        -: 7637:};
        -:        -: 7638:static const nir_search_expression search52 = {
        -:        -: 7639:   { nir_search_value_expression, 32 },
        -:        -: 7640:   true,
        -:        -: 7641:   nir_op_fadd,
        -:        -: 7642:   { &search52_0.value, &search52_1.value },
        -:        -: 7643:   NULL,
        -:        -: 7644:};
        -:        -: 7645:   
        -:        -: 7646:static const nir_search_variable replace52_0 = {
        -:        -: 7647:   { nir_search_value_variable, 0 },
        -:        -: 7648:   0, /* a */
        -:        -: 7649:   false,
        -:        -: 7650:   nir_type_invalid,
        -:        -: 7651:   NULL,
        -:        -: 7652:};
        -:        -: 7653:
        -:        -: 7654:static const nir_search_variable replace52_1 = {
        -:        -: 7655:   { nir_search_value_variable, 0 },
        -:        -: 7656:   2, /* b */
        -:        -: 7657:   false,
        -:        -: 7658:   nir_type_invalid,
        -:        -: 7659:   NULL,
        -:        -: 7660:};
        -:        -: 7661:
        -:        -: 7662:static const nir_search_variable replace52_2 = {
        -:        -: 7663:   { nir_search_value_variable, 0 },
        -:        -: 7664:   1, /* c */
        -:        -: 7665:   false,
        -:        -: 7666:   nir_type_invalid,
        -:        -: 7667:   NULL,
        -:        -: 7668:};
        -:        -: 7669:static const nir_search_expression replace52 = {
        -:        -: 7670:   { nir_search_value_expression, 0 },
        -:        -: 7671:   false,
        -:        -: 7672:   nir_op_flrp,
        -:        -: 7673:   { &replace52_0.value, &replace52_1.value, &replace52_2.value },
        -:        -: 7674:   NULL,
        -:        -: 7675:};
        -:        -: 7676:   
        -:        -: 7677:static const nir_search_variable search53_0_0 = {
        -:        -: 7678:   { nir_search_value_variable, 0 },
        -:        -: 7679:   0, /* a */
        -:        -: 7680:   false,
        -:        -: 7681:   nir_type_invalid,
        -:        -: 7682:   NULL,
        -:        -: 7683:};
        -:        -: 7684:
        -:        -: 7685:static const nir_search_constant search53_0_1_0 = {
        -:        -: 7686:   { nir_search_value_constant, 0 },
        -:        -: 7687:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 7688:};
        -:        -: 7689:
        -:        -: 7690:static const nir_search_variable search53_0_1_1_0 = {
        -:        -: 7691:   { nir_search_value_variable, 0 },
        -:        -: 7692:   1, /* c */
        -:        -: 7693:   false,
        -:        -: 7694:   nir_type_invalid,
        -:        -: 7695:   NULL,
        -:        -: 7696:};
        -:        -: 7697:static const nir_search_expression search53_0_1_1 = {
        -:        -: 7698:   { nir_search_value_expression, 0 },
        -:        -: 7699:   false,
        -:        -: 7700:   nir_op_fneg,
        -:        -: 7701:   { &search53_0_1_1_0.value },
        -:        -: 7702:   NULL,
        -:        -: 7703:};
        -:        -: 7704:static const nir_search_expression search53_0_1 = {
        -:        -: 7705:   { nir_search_value_expression, 0 },
        -:        -: 7706:   false,
        -:        -: 7707:   nir_op_fadd,
        -:        -: 7708:   { &search53_0_1_0.value, &search53_0_1_1.value },
        -:        -: 7709:   NULL,
        -:        -: 7710:};
        -:        -: 7711:static const nir_search_expression search53_0 = {
        -:        -: 7712:   { nir_search_value_expression, 0 },
        -:        -: 7713:   false,
        -:        -: 7714:   nir_op_fmul,
        -:        -: 7715:   { &search53_0_0.value, &search53_0_1.value },
        -:        -: 7716:   NULL,
        -:        -: 7717:};
        -:        -: 7718:
        -:        -: 7719:static const nir_search_variable search53_1_0 = {
        -:        -: 7720:   { nir_search_value_variable, 0 },
        -:        -: 7721:   2, /* b */
        -:        -: 7722:   false,
        -:        -: 7723:   nir_type_invalid,
        -:        -: 7724:   NULL,
        -:        -: 7725:};
        -:        -: 7726:
        -:        -: 7727:static const nir_search_variable search53_1_1 = {
        -:        -: 7728:   { nir_search_value_variable, 0 },
        -:        -: 7729:   1, /* c */
        -:        -: 7730:   false,
        -:        -: 7731:   nir_type_invalid,
        -:        -: 7732:   NULL,
        -:        -: 7733:};
        -:        -: 7734:static const nir_search_expression search53_1 = {
        -:        -: 7735:   { nir_search_value_expression, 0 },
        -:        -: 7736:   false,
        -:        -: 7737:   nir_op_fmul,
        -:        -: 7738:   { &search53_1_0.value, &search53_1_1.value },
        -:        -: 7739:   NULL,
        -:        -: 7740:};
        -:        -: 7741:static const nir_search_expression search53 = {
        -:        -: 7742:   { nir_search_value_expression, 64 },
        -:        -: 7743:   true,
        -:        -: 7744:   nir_op_fadd,
        -:        -: 7745:   { &search53_0.value, &search53_1.value },
        -:        -: 7746:   NULL,
        -:        -: 7747:};
        -:        -: 7748:   
        -:        -: 7749:static const nir_search_variable replace53_0 = {
        -:        -: 7750:   { nir_search_value_variable, 0 },
        -:        -: 7751:   0, /* a */
        -:        -: 7752:   false,
        -:        -: 7753:   nir_type_invalid,
        -:        -: 7754:   NULL,
        -:        -: 7755:};
        -:        -: 7756:
        -:        -: 7757:static const nir_search_variable replace53_1 = {
        -:        -: 7758:   { nir_search_value_variable, 0 },
        -:        -: 7759:   2, /* b */
        -:        -: 7760:   false,
        -:        -: 7761:   nir_type_invalid,
        -:        -: 7762:   NULL,
        -:        -: 7763:};
        -:        -: 7764:
        -:        -: 7765:static const nir_search_variable replace53_2 = {
        -:        -: 7766:   { nir_search_value_variable, 0 },
        -:        -: 7767:   1, /* c */
        -:        -: 7768:   false,
        -:        -: 7769:   nir_type_invalid,
        -:        -: 7770:   NULL,
        -:        -: 7771:};
        -:        -: 7772:static const nir_search_expression replace53 = {
        -:        -: 7773:   { nir_search_value_expression, 0 },
        -:        -: 7774:   false,
        -:        -: 7775:   nir_op_flrp,
        -:        -: 7776:   { &replace53_0.value, &replace53_1.value, &replace53_2.value },
        -:        -: 7777:   NULL,
        -:        -: 7778:};
        -:        -: 7779:   
        -:        -: 7780:static const nir_search_variable search54_0 = {
        -:        -: 7781:   { nir_search_value_variable, 0 },
        -:        -: 7782:   0, /* a */
        -:        -: 7783:   false,
        -:        -: 7784:   nir_type_invalid,
        -:        -: 7785:   NULL,
        -:        -: 7786:};
        -:        -: 7787:
        -:        -: 7788:static const nir_search_variable search54_1_0_0 = {
        -:        -: 7789:   { nir_search_value_variable, 0 },
        -:        -: 7790:   1, /* c */
        -:        -: 7791:   false,
        -:        -: 7792:   nir_type_invalid,
        -:        -: 7793:   NULL,
        -:        -: 7794:};
        -:        -: 7795:static const nir_search_expression search54_1_0 = {
        -:        -: 7796:   { nir_search_value_expression, 0 },
        -:        -: 7797:   false,
        -:        -: 7798:   nir_op_b2f,
        -:        -: 7799:   { &search54_1_0_0.value },
        -:        -: 7800:   NULL,
        -:        -: 7801:};
        -:        -: 7802:
        -:        -: 7803:static const nir_search_variable search54_1_1_0 = {
        -:        -: 7804:   { nir_search_value_variable, 0 },
        -:        -: 7805:   2, /* b */
        -:        -: 7806:   false,
        -:        -: 7807:   nir_type_invalid,
        -:        -: 7808:   NULL,
        -:        -: 7809:};
        -:        -: 7810:
        -:        -: 7811:static const nir_search_variable search54_1_1_1_0 = {
        -:        -: 7812:   { nir_search_value_variable, 0 },
        -:        -: 7813:   0, /* a */
        -:        -: 7814:   false,
        -:        -: 7815:   nir_type_invalid,
        -:        -: 7816:   NULL,
        -:        -: 7817:};
        -:        -: 7818:static const nir_search_expression search54_1_1_1 = {
        -:        -: 7819:   { nir_search_value_expression, 0 },
        -:        -: 7820:   false,
        -:        -: 7821:   nir_op_fneg,
        -:        -: 7822:   { &search54_1_1_1_0.value },
        -:        -: 7823:   NULL,
        -:        -: 7824:};
        -:        -: 7825:static const nir_search_expression search54_1_1 = {
        -:        -: 7826:   { nir_search_value_expression, 0 },
        -:        -: 7827:   false,
        -:        -: 7828:   nir_op_fadd,
        -:        -: 7829:   { &search54_1_1_0.value, &search54_1_1_1.value },
        -:        -: 7830:   NULL,
        -:        -: 7831:};
        -:        -: 7832:static const nir_search_expression search54_1 = {
        -:        -: 7833:   { nir_search_value_expression, 0 },
        -:        -: 7834:   false,
        -:        -: 7835:   nir_op_fmul,
        -:        -: 7836:   { &search54_1_0.value, &search54_1_1.value },
        -:        -: 7837:   NULL,
        -:        -: 7838:};
        -:        -: 7839:static const nir_search_expression search54 = {
        -:        -: 7840:   { nir_search_value_expression, 0 },
        -:        -: 7841:   true,
        -:        -: 7842:   nir_op_fadd,
        -:        -: 7843:   { &search54_0.value, &search54_1.value },
        -:        -: 7844:   NULL,
        -:        -: 7845:};
        -:        -: 7846:   
        -:        -: 7847:static const nir_search_variable replace54_0 = {
        -:        -: 7848:   { nir_search_value_variable, 0 },
        -:        -: 7849:   1, /* c */
        -:        -: 7850:   false,
        -:        -: 7851:   nir_type_invalid,
        -:        -: 7852:   NULL,
        -:        -: 7853:};
        -:        -: 7854:
        -:        -: 7855:static const nir_search_variable replace54_1 = {
        -:        -: 7856:   { nir_search_value_variable, 0 },
        -:        -: 7857:   2, /* b */
        -:        -: 7858:   false,
        -:        -: 7859:   nir_type_invalid,
        -:        -: 7860:   NULL,
        -:        -: 7861:};
        -:        -: 7862:
        -:        -: 7863:static const nir_search_variable replace54_2 = {
        -:        -: 7864:   { nir_search_value_variable, 0 },
        -:        -: 7865:   0, /* a */
        -:        -: 7866:   false,
        -:        -: 7867:   nir_type_invalid,
        -:        -: 7868:   NULL,
        -:        -: 7869:};
        -:        -: 7870:static const nir_search_expression replace54 = {
        -:        -: 7871:   { nir_search_value_expression, 0 },
        -:        -: 7872:   false,
        -:        -: 7873:   nir_op_bcsel,
        -:        -: 7874:   { &replace54_0.value, &replace54_1.value, &replace54_2.value },
        -:        -: 7875:   NULL,
        -:        -: 7876:};
        -:        -: 7877:   
        -:        -: 7878:static const nir_search_variable search55_0 = {
        -:        -: 7879:   { nir_search_value_variable, 0 },
        -:        -: 7880:   0, /* a */
        -:        -: 7881:   false,
        -:        -: 7882:   nir_type_invalid,
        -:        -: 7883:   NULL,
        -:        -: 7884:};
        -:        -: 7885:
        -:        -: 7886:static const nir_search_variable search55_1_0 = {
        -:        -: 7887:   { nir_search_value_variable, 0 },
        -:        -: 7888:   1, /* c */
        -:        -: 7889:   false,
        -:        -: 7890:   nir_type_invalid,
        -:        -: 7891:   NULL,
        -:        -: 7892:};
        -:        -: 7893:
        -:        -: 7894:static const nir_search_variable search55_1_1_0 = {
        -:        -: 7895:   { nir_search_value_variable, 0 },
        -:        -: 7896:   2, /* b */
        -:        -: 7897:   false,
        -:        -: 7898:   nir_type_invalid,
        -:        -: 7899:   NULL,
        -:        -: 7900:};
        -:        -: 7901:
        -:        -: 7902:static const nir_search_variable search55_1_1_1_0 = {
        -:        -: 7903:   { nir_search_value_variable, 0 },
        -:        -: 7904:   0, /* a */
        -:        -: 7905:   false,
        -:        -: 7906:   nir_type_invalid,
        -:        -: 7907:   NULL,
        -:        -: 7908:};
        -:        -: 7909:static const nir_search_expression search55_1_1_1 = {
        -:        -: 7910:   { nir_search_value_expression, 0 },
        -:        -: 7911:   false,
        -:        -: 7912:   nir_op_fneg,
        -:        -: 7913:   { &search55_1_1_1_0.value },
        -:        -: 7914:   NULL,
        -:        -: 7915:};
        -:        -: 7916:static const nir_search_expression search55_1_1 = {
        -:        -: 7917:   { nir_search_value_expression, 0 },
        -:        -: 7918:   false,
        -:        -: 7919:   nir_op_fadd,
        -:        -: 7920:   { &search55_1_1_0.value, &search55_1_1_1.value },
        -:        -: 7921:   NULL,
        -:        -: 7922:};
        -:        -: 7923:static const nir_search_expression search55_1 = {
        -:        -: 7924:   { nir_search_value_expression, 0 },
        -:        -: 7925:   false,
        -:        -: 7926:   nir_op_fmul,
        -:        -: 7927:   { &search55_1_0.value, &search55_1_1.value },
        -:        -: 7928:   NULL,
        -:        -: 7929:};
        -:        -: 7930:static const nir_search_expression search55 = {
        -:        -: 7931:   { nir_search_value_expression, 32 },
        -:        -: 7932:   true,
        -:        -: 7933:   nir_op_fadd,
        -:        -: 7934:   { &search55_0.value, &search55_1.value },
        -:        -: 7935:   NULL,
        -:        -: 7936:};
        -:        -: 7937:   
        -:        -: 7938:static const nir_search_variable replace55_0 = {
        -:        -: 7939:   { nir_search_value_variable, 0 },
        -:        -: 7940:   0, /* a */
        -:        -: 7941:   false,
        -:        -: 7942:   nir_type_invalid,
        -:        -: 7943:   NULL,
        -:        -: 7944:};
        -:        -: 7945:
        -:        -: 7946:static const nir_search_variable replace55_1 = {
        -:        -: 7947:   { nir_search_value_variable, 0 },
        -:        -: 7948:   2, /* b */
        -:        -: 7949:   false,
        -:        -: 7950:   nir_type_invalid,
        -:        -: 7951:   NULL,
        -:        -: 7952:};
        -:        -: 7953:
        -:        -: 7954:static const nir_search_variable replace55_2 = {
        -:        -: 7955:   { nir_search_value_variable, 0 },
        -:        -: 7956:   1, /* c */
        -:        -: 7957:   false,
        -:        -: 7958:   nir_type_invalid,
        -:        -: 7959:   NULL,
        -:        -: 7960:};
        -:        -: 7961:static const nir_search_expression replace55 = {
        -:        -: 7962:   { nir_search_value_expression, 0 },
        -:        -: 7963:   false,
        -:        -: 7964:   nir_op_flrp,
        -:        -: 7965:   { &replace55_0.value, &replace55_1.value, &replace55_2.value },
        -:        -: 7966:   NULL,
        -:        -: 7967:};
        -:        -: 7968:   
        -:        -: 7969:static const nir_search_variable search56_0 = {
        -:        -: 7970:   { nir_search_value_variable, 0 },
        -:        -: 7971:   0, /* a */
        -:        -: 7972:   false,
        -:        -: 7973:   nir_type_invalid,
        -:        -: 7974:   NULL,
        -:        -: 7975:};
        -:        -: 7976:
        -:        -: 7977:static const nir_search_variable search56_1_0 = {
        -:        -: 7978:   { nir_search_value_variable, 0 },
        -:        -: 7979:   1, /* c */
        -:        -: 7980:   false,
        -:        -: 7981:   nir_type_invalid,
        -:        -: 7982:   NULL,
        -:        -: 7983:};
        -:        -: 7984:
        -:        -: 7985:static const nir_search_variable search56_1_1_0 = {
        -:        -: 7986:   { nir_search_value_variable, 0 },
        -:        -: 7987:   2, /* b */
        -:        -: 7988:   false,
        -:        -: 7989:   nir_type_invalid,
        -:        -: 7990:   NULL,
        -:        -: 7991:};
        -:        -: 7992:
        -:        -: 7993:static const nir_search_variable search56_1_1_1_0 = {
        -:        -: 7994:   { nir_search_value_variable, 0 },
        -:        -: 7995:   0, /* a */
        -:        -: 7996:   false,
        -:        -: 7997:   nir_type_invalid,
        -:        -: 7998:   NULL,
        -:        -: 7999:};
        -:        -: 8000:static const nir_search_expression search56_1_1_1 = {
        -:        -: 8001:   { nir_search_value_expression, 0 },
        -:        -: 8002:   false,
        -:        -: 8003:   nir_op_fneg,
        -:        -: 8004:   { &search56_1_1_1_0.value },
        -:        -: 8005:   NULL,
        -:        -: 8006:};
        -:        -: 8007:static const nir_search_expression search56_1_1 = {
        -:        -: 8008:   { nir_search_value_expression, 0 },
        -:        -: 8009:   false,
        -:        -: 8010:   nir_op_fadd,
        -:        -: 8011:   { &search56_1_1_0.value, &search56_1_1_1.value },
        -:        -: 8012:   NULL,
        -:        -: 8013:};
        -:        -: 8014:static const nir_search_expression search56_1 = {
        -:        -: 8015:   { nir_search_value_expression, 0 },
        -:        -: 8016:   false,
        -:        -: 8017:   nir_op_fmul,
        -:        -: 8018:   { &search56_1_0.value, &search56_1_1.value },
        -:        -: 8019:   NULL,
        -:        -: 8020:};
        -:        -: 8021:static const nir_search_expression search56 = {
        -:        -: 8022:   { nir_search_value_expression, 64 },
        -:        -: 8023:   true,
        -:        -: 8024:   nir_op_fadd,
        -:        -: 8025:   { &search56_0.value, &search56_1.value },
        -:        -: 8026:   NULL,
        -:        -: 8027:};
        -:        -: 8028:   
        -:        -: 8029:static const nir_search_variable replace56_0 = {
        -:        -: 8030:   { nir_search_value_variable, 0 },
        -:        -: 8031:   0, /* a */
        -:        -: 8032:   false,
        -:        -: 8033:   nir_type_invalid,
        -:        -: 8034:   NULL,
        -:        -: 8035:};
        -:        -: 8036:
        -:        -: 8037:static const nir_search_variable replace56_1 = {
        -:        -: 8038:   { nir_search_value_variable, 0 },
        -:        -: 8039:   2, /* b */
        -:        -: 8040:   false,
        -:        -: 8041:   nir_type_invalid,
        -:        -: 8042:   NULL,
        -:        -: 8043:};
        -:        -: 8044:
        -:        -: 8045:static const nir_search_variable replace56_2 = {
        -:        -: 8046:   { nir_search_value_variable, 0 },
        -:        -: 8047:   1, /* c */
        -:        -: 8048:   false,
        -:        -: 8049:   nir_type_invalid,
        -:        -: 8050:   NULL,
        -:        -: 8051:};
        -:        -: 8052:static const nir_search_expression replace56 = {
        -:        -: 8053:   { nir_search_value_expression, 0 },
        -:        -: 8054:   false,
        -:        -: 8055:   nir_op_flrp,
        -:        -: 8056:   { &replace56_0.value, &replace56_1.value, &replace56_2.value },
        -:        -: 8057:   NULL,
        -:        -: 8058:};
        -:        -: 8059:   
        -:        -: 8060:static const nir_search_variable search58_0_0 = {
        -:        -: 8061:   { nir_search_value_variable, 0 },
        -:        -: 8062:   0, /* a */
        -:        -: 8063:   false,
        -:        -: 8064:   nir_type_invalid,
        -:        -: 8065:   NULL,
        -:        -: 8066:};
        -:        -: 8067:
        -:        -: 8068:static const nir_search_variable search58_0_1 = {
        -:        -: 8069:   { nir_search_value_variable, 0 },
        -:        -: 8070:   1, /* b */
        -:        -: 8071:   false,
        -:        -: 8072:   nir_type_invalid,
        -:        -: 8073:   NULL,
        -:        -: 8074:};
        -:        -: 8075:static const nir_search_expression search58_0 = {
        -:        -: 8076:   { nir_search_value_expression, 0 },
        -:        -: 8077:   false,
        -:        -: 8078:   nir_op_fmul,
        -:        -: 8079:   { &search58_0_0.value, &search58_0_1.value },
        -:        -: 8080:   NULL,
        -:        -: 8081:};
        -:        -: 8082:
        -:        -: 8083:static const nir_search_variable search58_1 = {
        -:        -: 8084:   { nir_search_value_variable, 0 },
        -:        -: 8085:   2, /* c */
        -:        -: 8086:   false,
        -:        -: 8087:   nir_type_invalid,
        -:        -: 8088:   NULL,
        -:        -: 8089:};
        -:        -: 8090:static const nir_search_expression search58 = {
        -:        -: 8091:   { nir_search_value_expression, 0 },
        -:        -: 8092:   true,
        -:        -: 8093:   nir_op_fadd,
        -:        -: 8094:   { &search58_0.value, &search58_1.value },
        -:        -: 8095:   NULL,
        -:        -: 8096:};
        -:        -: 8097:   
        -:        -: 8098:static const nir_search_variable replace58_0 = {
        -:        -: 8099:   { nir_search_value_variable, 0 },
        -:        -: 8100:   0, /* a */
        -:        -: 8101:   false,
        -:        -: 8102:   nir_type_invalid,
        -:        -: 8103:   NULL,
        -:        -: 8104:};
        -:        -: 8105:
        -:        -: 8106:static const nir_search_variable replace58_1 = {
        -:        -: 8107:   { nir_search_value_variable, 0 },
        -:        -: 8108:   1, /* b */
        -:        -: 8109:   false,
        -:        -: 8110:   nir_type_invalid,
        -:        -: 8111:   NULL,
        -:        -: 8112:};
        -:        -: 8113:
        -:        -: 8114:static const nir_search_variable replace58_2 = {
        -:        -: 8115:   { nir_search_value_variable, 0 },
        -:        -: 8116:   2, /* c */
        -:        -: 8117:   false,
        -:        -: 8118:   nir_type_invalid,
        -:        -: 8119:   NULL,
        -:        -: 8120:};
        -:        -: 8121:static const nir_search_expression replace58 = {
        -:        -: 8122:   { nir_search_value_expression, 0 },
        -:        -: 8123:   false,
        -:        -: 8124:   nir_op_ffma,
        -:        -: 8125:   { &replace58_0.value, &replace58_1.value, &replace58_2.value },
        -:        -: 8126:   NULL,
        -:        -: 8127:};
        -:        -: 8128:   
        -:        -: 8129:static const nir_search_variable search218_0 = {
        -:        -: 8130:   { nir_search_value_variable, 0 },
        -:        -: 8131:   0, /* a */
        -:        -: 8132:   false,
        -:        -: 8133:   nir_type_invalid,
        -:        -: 8134:   NULL,
        -:        -: 8135:};
        -:        -: 8136:
        -:        -: 8137:static const nir_search_constant search218_1_0 = {
        -:        -: 8138:   { nir_search_value_constant, 0 },
        -:        -: 8139:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 8140:};
        -:        -: 8141:
        -:        -: 8142:static const nir_search_variable search218_1_1 = {
        -:        -: 8143:   { nir_search_value_variable, 0 },
        -:        -: 8144:   1, /* b */
        -:        -: 8145:   false,
        -:        -: 8146:   nir_type_invalid,
        -:        -: 8147:   NULL,
        -:        -: 8148:};
        -:        -: 8149:static const nir_search_expression search218_1 = {
        -:        -: 8150:   { nir_search_value_expression, 0 },
        -:        -: 8151:   false,
        -:        -: 8152:   nir_op_fsub,
        -:        -: 8153:   { &search218_1_0.value, &search218_1_1.value },
        -:        -: 8154:   NULL,
        -:        -: 8155:};
        -:        -: 8156:static const nir_search_expression search218 = {
        -:        -: 8157:   { nir_search_value_expression, 0 },
        -:        -: 8158:   true,
        -:        -: 8159:   nir_op_fadd,
        -:        -: 8160:   { &search218_0.value, &search218_1.value },
        -:        -: 8161:   NULL,
        -:        -: 8162:};
        -:        -: 8163:   
        -:        -: 8164:static const nir_search_variable replace218_0 = {
        -:        -: 8165:   { nir_search_value_variable, 0 },
        -:        -: 8166:   0, /* a */
        -:        -: 8167:   false,
        -:        -: 8168:   nir_type_invalid,
        -:        -: 8169:   NULL,
        -:        -: 8170:};
        -:        -: 8171:
        -:        -: 8172:static const nir_search_variable replace218_1 = {
        -:        -: 8173:   { nir_search_value_variable, 0 },
        -:        -: 8174:   1, /* b */
        -:        -: 8175:   false,
        -:        -: 8176:   nir_type_invalid,
        -:        -: 8177:   NULL,
        -:        -: 8178:};
        -:        -: 8179:static const nir_search_expression replace218 = {
        -:        -: 8180:   { nir_search_value_expression, 0 },
        -:        -: 8181:   false,
        -:        -: 8182:   nir_op_fsub,
        -:        -: 8183:   { &replace218_0.value, &replace218_1.value },
        -:        -: 8184:   NULL,
        -:        -: 8185:};
        -:        -: 8186:   
        -:        -: 8187:static const nir_search_variable search226_0 = {
        -:        -: 8188:   { nir_search_value_variable, 0 },
        -:        -: 8189:   0, /* a */
        -:        -: 8190:   true,
        -:        -: 8191:   nir_type_invalid,
        -:        -: 8192:   NULL,
        -:        -: 8193:};
        -:        -: 8194:
        -:        -: 8195:static const nir_search_variable search226_1_0 = {
        -:        -: 8196:   { nir_search_value_variable, 0 },
        -:        -: 8197:   1, /* b */
        -:        -: 8198:   false,
        -:        -: 8199:   nir_type_invalid,
        -:        -: 8200:   NULL,
        -:        -: 8201:};
        -:        -: 8202:
        -:        -: 8203:static const nir_search_variable search226_1_1 = {
        -:        -: 8204:   { nir_search_value_variable, 0 },
        -:        -: 8205:   2, /* c */
        -:        -: 8206:   true,
        -:        -: 8207:   nir_type_invalid,
        -:        -: 8208:   NULL,
        -:        -: 8209:};
        -:        -: 8210:static const nir_search_expression search226_1 = {
        -:        -: 8211:   { nir_search_value_expression, 0 },
        -:        -: 8212:   false,
        -:        -: 8213:   nir_op_fadd,
        -:        -: 8214:   { &search226_1_0.value, &search226_1_1.value },
        -:        -: 8215:   NULL,
        -:        -: 8216:};
        -:        -: 8217:static const nir_search_expression search226 = {
        -:        -: 8218:   { nir_search_value_expression, 0 },
        -:        -: 8219:   true,
        -:        -: 8220:   nir_op_fadd,
        -:        -: 8221:   { &search226_0.value, &search226_1.value },
        -:        -: 8222:   NULL,
        -:        -: 8223:};
        -:        -: 8224:   
        -:        -: 8225:static const nir_search_variable replace226_0_0 = {
        -:        -: 8226:   { nir_search_value_variable, 0 },
        -:        -: 8227:   0, /* a */
        -:        -: 8228:   false,
        -:        -: 8229:   nir_type_invalid,
        -:        -: 8230:   NULL,
        -:        -: 8231:};
        -:        -: 8232:
        -:        -: 8233:static const nir_search_variable replace226_0_1 = {
        -:        -: 8234:   { nir_search_value_variable, 0 },
        -:        -: 8235:   2, /* c */
        -:        -: 8236:   false,
        -:        -: 8237:   nir_type_invalid,
        -:        -: 8238:   NULL,
        -:        -: 8239:};
        -:        -: 8240:static const nir_search_expression replace226_0 = {
        -:        -: 8241:   { nir_search_value_expression, 0 },
        -:        -: 8242:   false,
        -:        -: 8243:   nir_op_fadd,
        -:        -: 8244:   { &replace226_0_0.value, &replace226_0_1.value },
        -:        -: 8245:   NULL,
        -:        -: 8246:};
        -:        -: 8247:
        -:        -: 8248:static const nir_search_variable replace226_1 = {
        -:        -: 8249:   { nir_search_value_variable, 0 },
        -:        -: 8250:   1, /* b */
        -:        -: 8251:   false,
        -:        -: 8252:   nir_type_invalid,
        -:        -: 8253:   NULL,
        -:        -: 8254:};
        -:        -: 8255:static const nir_search_expression replace226 = {
        -:        -: 8256:   { nir_search_value_expression, 0 },
        -:        -: 8257:   false,
        -:        -: 8258:   nir_op_fadd,
        -:        -: 8259:   { &replace226_0.value, &replace226_1.value },
        -:        -: 8260:   NULL,
        -:        -: 8261:};
        -:        -: 8262:
        -:        -: 8263:static const struct transform nir_opt_algebraic_fadd_xforms[] = {
        -:        -: 8264:   { &search17, &replace17.value, 0 },
        -:        -: 8265:   { &search21, &replace21.value, 0 },
        -:        -: 8266:   { &search23, &replace23.value, 0 },
        -:        -: 8267:   { &search27, &replace27.value, 0 },
        -:        -: 8268:   { &search28, &replace28.value, 0 },
        -:        -: 8269:   { &search51, &replace51.value, 2 },
        -:        -: 8270:   { &search52, &replace52.value, 5 },
        -:        -: 8271:   { &search53, &replace53.value, 6 },
        -:        -: 8272:   { &search54, &replace54.value, 2 },
        -:        -: 8273:   { &search55, &replace55.value, 5 },
        -:        -: 8274:   { &search56, &replace56.value, 6 },
        -:        -: 8275:   { &search58, &replace58.value, 8 },
        -:        -: 8276:   { &search218, &replace218.value, 0 },
        -:        -: 8277:   { &search226, &replace226.value, 0 },
        -:        -: 8278:};
        -:        -: 8279:   
        -:        -: 8280:static const nir_search_variable search59_0_0_0 = {
        -:        -: 8281:   { nir_search_value_variable, 0 },
        -:        -: 8282:   0, /* a */
        -:        -: 8283:   false,
        -:        -: 8284:   nir_type_invalid,
        -:        -: 8285:   NULL,
        -:        -: 8286:};
        -:        -: 8287:
        -:        -: 8288:static const nir_search_variable search59_0_0_1 = {
        -:        -: 8289:   { nir_search_value_variable, 0 },
        -:        -: 8290:   1, /* b */
        -:        -: 8291:   true,
        -:        -: 8292:   nir_type_invalid,
        -:        -: 8293:   NULL,
        -:        -: 8294:};
        -:        -: 8295:static const nir_search_expression search59_0_0 = {
        -:        -: 8296:   { nir_search_value_expression, 0 },
        -:        -: 8297:   false,
        -:        -: 8298:   nir_op_imul,
        -:        -: 8299:   { &search59_0_0_0.value, &search59_0_0_1.value },
        -:        -: 8300:   NULL,
        -:        -: 8301:};
        -:        -: 8302:
        -:        -: 8303:static const nir_search_variable search59_0_1 = {
        -:        -: 8304:   { nir_search_value_variable, 0 },
        -:        -: 8305:   2, /* c */
        -:        -: 8306:   true,
        -:        -: 8307:   nir_type_invalid,
        -:        -: 8308:   NULL,
        -:        -: 8309:};
        -:        -: 8310:static const nir_search_expression search59_0 = {
        -:        -: 8311:   { nir_search_value_expression, 0 },
        -:        -: 8312:   false,
        -:        -: 8313:   nir_op_iadd,
        -:        -: 8314:   { &search59_0_0.value, &search59_0_1.value },
        -:        -: 8315:   NULL,
        -:        -: 8316:};
        -:        -: 8317:
        -:        -: 8318:static const nir_search_variable search59_1 = {
        -:        -: 8319:   { nir_search_value_variable, 0 },
        -:        -: 8320:   3, /* d */
        -:        -: 8321:   true,
        -:        -: 8322:   nir_type_invalid,
        -:        -: 8323:   NULL,
        -:        -: 8324:};
        -:        -: 8325:static const nir_search_expression search59 = {
        -:        -: 8326:   { nir_search_value_expression, 0 },
        -:        -: 8327:   false,
        -:        -: 8328:   nir_op_ishl,
        -:        -: 8329:   { &search59_0.value, &search59_1.value },
        -:        -: 8330:   NULL,
        -:        -: 8331:};
        -:        -: 8332:   
        -:        -: 8333:static const nir_search_variable replace59_0_0 = {
        -:        -: 8334:   { nir_search_value_variable, 0 },
        -:        -: 8335:   0, /* a */
        -:        -: 8336:   false,
        -:        -: 8337:   nir_type_invalid,
        -:        -: 8338:   NULL,
        -:        -: 8339:};
        -:        -: 8340:
        -:        -: 8341:static const nir_search_variable replace59_0_1_0 = {
        -:        -: 8342:   { nir_search_value_variable, 0 },
        -:        -: 8343:   1, /* b */
        -:        -: 8344:   false,
        -:        -: 8345:   nir_type_invalid,
        -:        -: 8346:   NULL,
        -:        -: 8347:};
        -:        -: 8348:
        -:        -: 8349:static const nir_search_variable replace59_0_1_1 = {
        -:        -: 8350:   { nir_search_value_variable, 0 },
        -:        -: 8351:   3, /* d */
        -:        -: 8352:   false,
        -:        -: 8353:   nir_type_invalid,
        -:        -: 8354:   NULL,
        -:        -: 8355:};
        -:        -: 8356:static const nir_search_expression replace59_0_1 = {
        -:        -: 8357:   { nir_search_value_expression, 0 },
        -:        -: 8358:   false,
        -:        -: 8359:   nir_op_ishl,
        -:        -: 8360:   { &replace59_0_1_0.value, &replace59_0_1_1.value },
        -:        -: 8361:   NULL,
        -:        -: 8362:};
        -:        -: 8363:static const nir_search_expression replace59_0 = {
        -:        -: 8364:   { nir_search_value_expression, 0 },
        -:        -: 8365:   false,
        -:        -: 8366:   nir_op_imul,
        -:        -: 8367:   { &replace59_0_0.value, &replace59_0_1.value },
        -:        -: 8368:   NULL,
        -:        -: 8369:};
        -:        -: 8370:
        -:        -: 8371:static const nir_search_variable replace59_1_0 = {
        -:        -: 8372:   { nir_search_value_variable, 0 },
        -:        -: 8373:   2, /* c */
        -:        -: 8374:   false,
        -:        -: 8375:   nir_type_invalid,
        -:        -: 8376:   NULL,
        -:        -: 8377:};
        -:        -: 8378:
        -:        -: 8379:static const nir_search_variable replace59_1_1 = {
        -:        -: 8380:   { nir_search_value_variable, 0 },
        -:        -: 8381:   3, /* d */
        -:        -: 8382:   false,
        -:        -: 8383:   nir_type_invalid,
        -:        -: 8384:   NULL,
        -:        -: 8385:};
        -:        -: 8386:static const nir_search_expression replace59_1 = {
        -:        -: 8387:   { nir_search_value_expression, 0 },
        -:        -: 8388:   false,
        -:        -: 8389:   nir_op_ishl,
        -:        -: 8390:   { &replace59_1_0.value, &replace59_1_1.value },
        -:        -: 8391:   NULL,
        -:        -: 8392:};
        -:        -: 8393:static const nir_search_expression replace59 = {
        -:        -: 8394:   { nir_search_value_expression, 0 },
        -:        -: 8395:   false,
        -:        -: 8396:   nir_op_iadd,
        -:        -: 8397:   { &replace59_0.value, &replace59_1.value },
        -:        -: 8398:   NULL,
        -:        -: 8399:};
        -:        -: 8400:   
        -:        -: 8401:static const nir_search_variable search60_0_0 = {
        -:        -: 8402:   { nir_search_value_variable, 0 },
        -:        -: 8403:   0, /* a */
        -:        -: 8404:   false,
        -:        -: 8405:   nir_type_invalid,
        -:        -: 8406:   NULL,
        -:        -: 8407:};
        -:        -: 8408:
        -:        -: 8409:static const nir_search_variable search60_0_1 = {
        -:        -: 8410:   { nir_search_value_variable, 0 },
        -:        -: 8411:   1, /* b */
        -:        -: 8412:   true,
        -:        -: 8413:   nir_type_invalid,
        -:        -: 8414:   NULL,
        -:        -: 8415:};
        -:        -: 8416:static const nir_search_expression search60_0 = {
        -:        -: 8417:   { nir_search_value_expression, 0 },
        -:        -: 8418:   false,
        -:        -: 8419:   nir_op_imul,
        -:        -: 8420:   { &search60_0_0.value, &search60_0_1.value },
        -:        -: 8421:   NULL,
        -:        -: 8422:};
        -:        -: 8423:
        -:        -: 8424:static const nir_search_variable search60_1 = {
        -:        -: 8425:   { nir_search_value_variable, 0 },
        -:        -: 8426:   2, /* c */
        -:        -: 8427:   true,
        -:        -: 8428:   nir_type_invalid,
        -:        -: 8429:   NULL,
        -:        -: 8430:};
        -:        -: 8431:static const nir_search_expression search60 = {
        -:        -: 8432:   { nir_search_value_expression, 0 },
        -:        -: 8433:   false,
        -:        -: 8434:   nir_op_ishl,
        -:        -: 8435:   { &search60_0.value, &search60_1.value },
        -:        -: 8436:   NULL,
        -:        -: 8437:};
        -:        -: 8438:   
        -:        -: 8439:static const nir_search_variable replace60_0 = {
        -:        -: 8440:   { nir_search_value_variable, 0 },
        -:        -: 8441:   0, /* a */
        -:        -: 8442:   false,
        -:        -: 8443:   nir_type_invalid,
        -:        -: 8444:   NULL,
        -:        -: 8445:};
        -:        -: 8446:
        -:        -: 8447:static const nir_search_variable replace60_1_0 = {
        -:        -: 8448:   { nir_search_value_variable, 0 },
        -:        -: 8449:   1, /* b */
        -:        -: 8450:   false,
        -:        -: 8451:   nir_type_invalid,
        -:        -: 8452:   NULL,
        -:        -: 8453:};
        -:        -: 8454:
        -:        -: 8455:static const nir_search_variable replace60_1_1 = {
        -:        -: 8456:   { nir_search_value_variable, 0 },
        -:        -: 8457:   2, /* c */
        -:        -: 8458:   false,
        -:        -: 8459:   nir_type_invalid,
        -:        -: 8460:   NULL,
        -:        -: 8461:};
        -:        -: 8462:static const nir_search_expression replace60_1 = {
        -:        -: 8463:   { nir_search_value_expression, 0 },
        -:        -: 8464:   false,
        -:        -: 8465:   nir_op_ishl,
        -:        -: 8466:   { &replace60_1_0.value, &replace60_1_1.value },
        -:        -: 8467:   NULL,
        -:        -: 8468:};
        -:        -: 8469:static const nir_search_expression replace60 = {
        -:        -: 8470:   { nir_search_value_expression, 0 },
        -:        -: 8471:   false,
        -:        -: 8472:   nir_op_imul,
        -:        -: 8473:   { &replace60_0.value, &replace60_1.value },
        -:        -: 8474:   NULL,
        -:        -: 8475:};
        -:        -: 8476:   
        -:        -: 8477:static const nir_search_constant search146_0 = {
        -:        -: 8478:   { nir_search_value_constant, 0 },
        -:        -: 8479:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 8480:};
        -:        -: 8481:
        -:        -: 8482:static const nir_search_variable search146_1 = {
        -:        -: 8483:   { nir_search_value_variable, 0 },
        -:        -: 8484:   0, /* a */
        -:        -: 8485:   false,
        -:        -: 8486:   nir_type_invalid,
        -:        -: 8487:   NULL,
        -:        -: 8488:};
        -:        -: 8489:static const nir_search_expression search146 = {
        -:        -: 8490:   { nir_search_value_expression, 0 },
        -:        -: 8491:   false,
        -:        -: 8492:   nir_op_ishl,
        -:        -: 8493:   { &search146_0.value, &search146_1.value },
        -:        -: 8494:   NULL,
        -:        -: 8495:};
        -:        -: 8496:   
        -:        -: 8497:static const nir_search_constant replace146 = {
        -:        -: 8498:   { nir_search_value_constant, 0 },
        -:        -: 8499:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 8500:};
        -:        -: 8501:   
        -:        -: 8502:static const nir_search_variable search147_0 = {
        -:        -: 8503:   { nir_search_value_variable, 0 },
        -:        -: 8504:   0, /* a */
        -:        -: 8505:   false,
        -:        -: 8506:   nir_type_invalid,
        -:        -: 8507:   NULL,
        -:        -: 8508:};
        -:        -: 8509:
        -:        -: 8510:static const nir_search_constant search147_1 = {
        -:        -: 8511:   { nir_search_value_constant, 0 },
        -:        -: 8512:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 8513:};
        -:        -: 8514:static const nir_search_expression search147 = {
        -:        -: 8515:   { nir_search_value_expression, 0 },
        -:        -: 8516:   false,
        -:        -: 8517:   nir_op_ishl,
        -:        -: 8518:   { &search147_0.value, &search147_1.value },
        -:        -: 8519:   NULL,
        -:        -: 8520:};
        -:        -: 8521:   
        -:        -: 8522:static const nir_search_variable replace147 = {
        -:        -: 8523:   { nir_search_value_variable, 0 },
        -:        -: 8524:   0, /* a */
        -:        -: 8525:   false,
        -:        -: 8526:   nir_type_invalid,
        -:        -: 8527:   NULL,
        -:        -: 8528:};
        -:        -: 8529:
        -:        -: 8530:static const struct transform nir_opt_algebraic_ishl_xforms[] = {
        -:        -: 8531:   { &search59, &replace59.value, 0 },
        -:        -: 8532:   { &search60, &replace60.value, 0 },
        -:        -: 8533:   { &search146, &replace146.value, 0 },
        -:        -: 8534:   { &search147, &replace147.value, 0 },
        -:        -: 8535:};
        -:        -: 8536:   
        -:        -: 8537:static const nir_search_variable search196_0_0 = {
        -:        -: 8538:   { nir_search_value_variable, 0 },
        -:        -: 8539:   0, /* a */
        -:        -: 8540:   false,
        -:        -: 8541:   nir_type_invalid,
        -:        -: 8542:   NULL,
        -:        -: 8543:};
        -:        -: 8544:static const nir_search_expression search196_0 = {
        -:        -: 8545:   { nir_search_value_expression, 0 },
        -:        -: 8546:   false,
        -:        -: 8547:   nir_op_ftrunc,
        -:        -: 8548:   { &search196_0_0.value },
        -:        -: 8549:   NULL,
        -:        -: 8550:};
        -:        -: 8551:static const nir_search_expression search196 = {
        -:        -: 8552:   { nir_search_value_expression, 0 },
        -:        -: 8553:   false,
        -:        -: 8554:   nir_op_f2u32,
        -:        -: 8555:   { &search196_0.value },
        -:        -: 8556:   NULL,
        -:        -: 8557:};
        -:        -: 8558:   
        -:        -: 8559:static const nir_search_variable replace196_0 = {
        -:        -: 8560:   { nir_search_value_variable, 0 },
        -:        -: 8561:   0, /* a */
        -:        -: 8562:   false,
        -:        -: 8563:   nir_type_invalid,
        -:        -: 8564:   NULL,
        -:        -: 8565:};
        -:        -: 8566:static const nir_search_expression replace196 = {
        -:        -: 8567:   { nir_search_value_expression, 0 },
        -:        -: 8568:   false,
        -:        -: 8569:   nir_op_f2u32,
        -:        -: 8570:   { &replace196_0.value },
        -:        -: 8571:   NULL,
        -:        -: 8572:};
        -:        -: 8573:
        -:        -: 8574:static const struct transform nir_opt_algebraic_f2u32_xforms[] = {
        -:        -: 8575:   { &search196, &replace196.value, 0 },
        -:        -: 8576:};
        -:        -: 8577:   
        -:        -: 8578:static const nir_search_variable search155_0_0 = {
        -:        -: 8579:   { nir_search_value_variable, 0 },
        -:        -: 8580:   0, /* a */
        -:        -: 8581:   false,
        -:        -: 8582:   nir_type_invalid,
        -:        -: 8583:   NULL,
        -:        -: 8584:};
        -:        -: 8585:static const nir_search_expression search155_0 = {
        -:        -: 8586:   { nir_search_value_expression, 0 },
        -:        -: 8587:   false,
        -:        -: 8588:   nir_op_fexp2,
        -:        -: 8589:   { &search155_0_0.value },
        -:        -: 8590:   NULL,
        -:        -: 8591:};
        -:        -: 8592:static const nir_search_expression search155 = {
        -:        -: 8593:   { nir_search_value_expression, 0 },
        -:        -: 8594:   true,
        -:        -: 8595:   nir_op_flog2,
        -:        -: 8596:   { &search155_0.value },
        -:        -: 8597:   NULL,
        -:        -: 8598:};
        -:        -: 8599:   
        -:        -: 8600:static const nir_search_variable replace155 = {
        -:        -: 8601:   { nir_search_value_variable, 0 },
        -:        -: 8602:   0, /* a */
        -:        -: 8603:   false,
        -:        -: 8604:   nir_type_invalid,
        -:        -: 8605:   NULL,
        -:        -: 8606:};
        -:        -: 8607:   
        -:        -: 8608:static const nir_search_variable search168_0_0 = {
        -:        -: 8609:   { nir_search_value_variable, 0 },
        -:        -: 8610:   0, /* a */
        -:        -: 8611:   false,
        -:        -: 8612:   nir_type_invalid,
        -:        -: 8613:   NULL,
        -:        -: 8614:};
        -:        -: 8615:static const nir_search_expression search168_0 = {
        -:        -: 8616:   { nir_search_value_expression, 0 },
        -:        -: 8617:   false,
        -:        -: 8618:   nir_op_fsqrt,
        -:        -: 8619:   { &search168_0_0.value },
        -:        -: 8620:   NULL,
        -:        -: 8621:};
        -:        -: 8622:static const nir_search_expression search168 = {
        -:        -: 8623:   { nir_search_value_expression, 0 },
        -:        -: 8624:   true,
        -:        -: 8625:   nir_op_flog2,
        -:        -: 8626:   { &search168_0.value },
        -:        -: 8627:   NULL,
        -:        -: 8628:};
        -:        -: 8629:   
        -:        -: 8630:static const nir_search_constant replace168_0 = {
        -:        -: 8631:   { nir_search_value_constant, 0 },
        -:        -: 8632:   nir_type_float, { 0x3fe0000000000000 /* 0.5 */ },
        -:        -: 8633:};
        -:        -: 8634:
        -:        -: 8635:static const nir_search_variable replace168_1_0 = {
        -:        -: 8636:   { nir_search_value_variable, 0 },
        -:        -: 8637:   0, /* a */
        -:        -: 8638:   false,
        -:        -: 8639:   nir_type_invalid,
        -:        -: 8640:   NULL,
        -:        -: 8641:};
        -:        -: 8642:static const nir_search_expression replace168_1 = {
        -:        -: 8643:   { nir_search_value_expression, 0 },
        -:        -: 8644:   false,
        -:        -: 8645:   nir_op_flog2,
        -:        -: 8646:   { &replace168_1_0.value },
        -:        -: 8647:   NULL,
        -:        -: 8648:};
        -:        -: 8649:static const nir_search_expression replace168 = {
        -:        -: 8650:   { nir_search_value_expression, 0 },
        -:        -: 8651:   false,
        -:        -: 8652:   nir_op_fmul,
        -:        -: 8653:   { &replace168_0.value, &replace168_1.value },
        -:        -: 8654:   NULL,
        -:        -: 8655:};
        -:        -: 8656:   
        -:        -: 8657:static const nir_search_variable search169_0_0 = {
        -:        -: 8658:   { nir_search_value_variable, 0 },
        -:        -: 8659:   0, /* a */
        -:        -: 8660:   false,
        -:        -: 8661:   nir_type_invalid,
        -:        -: 8662:   NULL,
        -:        -: 8663:};
        -:        -: 8664:static const nir_search_expression search169_0 = {
        -:        -: 8665:   { nir_search_value_expression, 0 },
        -:        -: 8666:   false,
        -:        -: 8667:   nir_op_frcp,
        -:        -: 8668:   { &search169_0_0.value },
        -:        -: 8669:   NULL,
        -:        -: 8670:};
        -:        -: 8671:static const nir_search_expression search169 = {
        -:        -: 8672:   { nir_search_value_expression, 0 },
        -:        -: 8673:   true,
        -:        -: 8674:   nir_op_flog2,
        -:        -: 8675:   { &search169_0.value },
        -:        -: 8676:   NULL,
        -:        -: 8677:};
        -:        -: 8678:   
        -:        -: 8679:static const nir_search_variable replace169_0_0 = {
        -:        -: 8680:   { nir_search_value_variable, 0 },
        -:        -: 8681:   0, /* a */
        -:        -: 8682:   false,
        -:        -: 8683:   nir_type_invalid,
        -:        -: 8684:   NULL,
        -:        -: 8685:};
        -:        -: 8686:static const nir_search_expression replace169_0 = {
        -:        -: 8687:   { nir_search_value_expression, 0 },
        -:        -: 8688:   false,
        -:        -: 8689:   nir_op_flog2,
        -:        -: 8690:   { &replace169_0_0.value },
        -:        -: 8691:   NULL,
        -:        -: 8692:};
        -:        -: 8693:static const nir_search_expression replace169 = {
        -:        -: 8694:   { nir_search_value_expression, 0 },
        -:        -: 8695:   false,
        -:        -: 8696:   nir_op_fneg,
        -:        -: 8697:   { &replace169_0.value },
        -:        -: 8698:   NULL,
        -:        -: 8699:};
        -:        -: 8700:   
        -:        -: 8701:static const nir_search_variable search170_0_0 = {
        -:        -: 8702:   { nir_search_value_variable, 0 },
        -:        -: 8703:   0, /* a */
        -:        -: 8704:   false,
        -:        -: 8705:   nir_type_invalid,
        -:        -: 8706:   NULL,
        -:        -: 8707:};
        -:        -: 8708:static const nir_search_expression search170_0 = {
        -:        -: 8709:   { nir_search_value_expression, 0 },
        -:        -: 8710:   false,
        -:        -: 8711:   nir_op_frsq,
        -:        -: 8712:   { &search170_0_0.value },
        -:        -: 8713:   NULL,
        -:        -: 8714:};
        -:        -: 8715:static const nir_search_expression search170 = {
        -:        -: 8716:   { nir_search_value_expression, 0 },
        -:        -: 8717:   true,
        -:        -: 8718:   nir_op_flog2,
        -:        -: 8719:   { &search170_0.value },
        -:        -: 8720:   NULL,
        -:        -: 8721:};
        -:        -: 8722:   
        -:        -: 8723:static const nir_search_constant replace170_0 = {
        -:        -: 8724:   { nir_search_value_constant, 0 },
        -:        -: 8725:   nir_type_float, { 0xbfe0000000000000L /* -0.5 */ },
        -:        -: 8726:};
        -:        -: 8727:
        -:        -: 8728:static const nir_search_variable replace170_1_0 = {
        -:        -: 8729:   { nir_search_value_variable, 0 },
        -:        -: 8730:   0, /* a */
        -:        -: 8731:   false,
        -:        -: 8732:   nir_type_invalid,
        -:        -: 8733:   NULL,
        -:        -: 8734:};
        -:        -: 8735:static const nir_search_expression replace170_1 = {
        -:        -: 8736:   { nir_search_value_expression, 0 },
        -:        -: 8737:   false,
        -:        -: 8738:   nir_op_flog2,
        -:        -: 8739:   { &replace170_1_0.value },
        -:        -: 8740:   NULL,
        -:        -: 8741:};
        -:        -: 8742:static const nir_search_expression replace170 = {
        -:        -: 8743:   { nir_search_value_expression, 0 },
        -:        -: 8744:   false,
        -:        -: 8745:   nir_op_fmul,
        -:        -: 8746:   { &replace170_0.value, &replace170_1.value },
        -:        -: 8747:   NULL,
        -:        -: 8748:};
        -:        -: 8749:   
        -:        -: 8750:static const nir_search_variable search171_0_0 = {
        -:        -: 8751:   { nir_search_value_variable, 0 },
        -:        -: 8752:   0, /* a */
        -:        -: 8753:   false,
        -:        -: 8754:   nir_type_invalid,
        -:        -: 8755:   NULL,
        -:        -: 8756:};
        -:        -: 8757:
        -:        -: 8758:static const nir_search_variable search171_0_1 = {
        -:        -: 8759:   { nir_search_value_variable, 0 },
        -:        -: 8760:   1, /* b */
        -:        -: 8761:   false,
        -:        -: 8762:   nir_type_invalid,
        -:        -: 8763:   NULL,
        -:        -: 8764:};
        -:        -: 8765:static const nir_search_expression search171_0 = {
        -:        -: 8766:   { nir_search_value_expression, 0 },
        -:        -: 8767:   false,
        -:        -: 8768:   nir_op_fpow,
        -:        -: 8769:   { &search171_0_0.value, &search171_0_1.value },
        -:        -: 8770:   NULL,
        -:        -: 8771:};
        -:        -: 8772:static const nir_search_expression search171 = {
        -:        -: 8773:   { nir_search_value_expression, 0 },
        -:        -: 8774:   true,
        -:        -: 8775:   nir_op_flog2,
        -:        -: 8776:   { &search171_0.value },
        -:        -: 8777:   NULL,
        -:        -: 8778:};
        -:        -: 8779:   
        -:        -: 8780:static const nir_search_variable replace171_0 = {
        -:        -: 8781:   { nir_search_value_variable, 0 },
        -:        -: 8782:   1, /* b */
        -:        -: 8783:   false,
        -:        -: 8784:   nir_type_invalid,
        -:        -: 8785:   NULL,
        -:        -: 8786:};
        -:        -: 8787:
        -:        -: 8788:static const nir_search_variable replace171_1_0 = {
        -:        -: 8789:   { nir_search_value_variable, 0 },
        -:        -: 8790:   0, /* a */
        -:        -: 8791:   false,
        -:        -: 8792:   nir_type_invalid,
        -:        -: 8793:   NULL,
        -:        -: 8794:};
        -:        -: 8795:static const nir_search_expression replace171_1 = {
        -:        -: 8796:   { nir_search_value_expression, 0 },
        -:        -: 8797:   false,
        -:        -: 8798:   nir_op_flog2,
        -:        -: 8799:   { &replace171_1_0.value },
        -:        -: 8800:   NULL,
        -:        -: 8801:};
        -:        -: 8802:static const nir_search_expression replace171 = {
        -:        -: 8803:   { nir_search_value_expression, 0 },
        -:        -: 8804:   false,
        -:        -: 8805:   nir_op_fmul,
        -:        -: 8806:   { &replace171_0.value, &replace171_1.value },
        -:        -: 8807:   NULL,
        -:        -: 8808:};
        -:        -: 8809:
        -:        -: 8810:static const struct transform nir_opt_algebraic_flog2_xforms[] = {
        -:        -: 8811:   { &search155, &replace155.value, 0 },
        -:        -: 8812:   { &search168, &replace168.value, 0 },
        -:        -: 8813:   { &search169, &replace169.value, 0 },
        -:        -: 8814:   { &search170, &replace170.value, 0 },
        -:        -: 8815:   { &search171, &replace171.value, 0 },
        -:        -: 8816:};
        -:        -: 8817:   
        -:        -: 8818:static const nir_search_variable search61_0_0 = {
        -:        -: 8819:   { nir_search_value_variable, 0 },
        -:        -: 8820:   0, /* a */
        -:        -: 8821:   false,
        -:        -: 8822:   nir_type_invalid,
        -:        -: 8823:   NULL,
        -:        -: 8824:};
        -:        -: 8825:
        -:        -: 8826:static const nir_search_variable search61_0_1 = {
        -:        -: 8827:   { nir_search_value_variable, 0 },
        -:        -: 8828:   1, /* b */
        -:        -: 8829:   false,
        -:        -: 8830:   nir_type_invalid,
        -:        -: 8831:   NULL,
        -:        -: 8832:};
        -:        -: 8833:static const nir_search_expression search61_0 = {
        -:        -: 8834:   { nir_search_value_expression, 0 },
        -:        -: 8835:   false,
        -:        -: 8836:   nir_op_flt,
        -:        -: 8837:   { &search61_0_0.value, &search61_0_1.value },
        -:        -: 8838:   NULL,
        -:        -: 8839:};
        -:        -: 8840:static const nir_search_expression search61 = {
        -:        -: 8841:   { nir_search_value_expression, 0 },
        -:        -: 8842:   true,
        -:        -: 8843:   nir_op_inot,
        -:        -: 8844:   { &search61_0.value },
        -:        -: 8845:   NULL,
        -:        -: 8846:};
        -:        -: 8847:   
        -:        -: 8848:static const nir_search_variable replace61_0 = {
        -:        -: 8849:   { nir_search_value_variable, 0 },
        -:        -: 8850:   0, /* a */
        -:        -: 8851:   false,
        -:        -: 8852:   nir_type_invalid,
        -:        -: 8853:   NULL,
        -:        -: 8854:};
        -:        -: 8855:
        -:        -: 8856:static const nir_search_variable replace61_1 = {
        -:        -: 8857:   { nir_search_value_variable, 0 },
        -:        -: 8858:   1, /* b */
        -:        -: 8859:   false,
        -:        -: 8860:   nir_type_invalid,
        -:        -: 8861:   NULL,
        -:        -: 8862:};
        -:        -: 8863:static const nir_search_expression replace61 = {
        -:        -: 8864:   { nir_search_value_expression, 0 },
        -:        -: 8865:   false,
        -:        -: 8866:   nir_op_fge,
        -:        -: 8867:   { &replace61_0.value, &replace61_1.value },
        -:        -: 8868:   NULL,
        -:        -: 8869:};
        -:        -: 8870:   
        -:        -: 8871:static const nir_search_variable search62_0_0 = {
        -:        -: 8872:   { nir_search_value_variable, 0 },
        -:        -: 8873:   0, /* a */
        -:        -: 8874:   false,
        -:        -: 8875:   nir_type_invalid,
        -:        -: 8876:   NULL,
        -:        -: 8877:};
        -:        -: 8878:
        -:        -: 8879:static const nir_search_variable search62_0_1 = {
        -:        -: 8880:   { nir_search_value_variable, 0 },
        -:        -: 8881:   1, /* b */
        -:        -: 8882:   false,
        -:        -: 8883:   nir_type_invalid,
        -:        -: 8884:   NULL,
        -:        -: 8885:};
        -:        -: 8886:static const nir_search_expression search62_0 = {
        -:        -: 8887:   { nir_search_value_expression, 0 },
        -:        -: 8888:   false,
        -:        -: 8889:   nir_op_fge,
        -:        -: 8890:   { &search62_0_0.value, &search62_0_1.value },
        -:        -: 8891:   NULL,
        -:        -: 8892:};
        -:        -: 8893:static const nir_search_expression search62 = {
        -:        -: 8894:   { nir_search_value_expression, 0 },
        -:        -: 8895:   true,
        -:        -: 8896:   nir_op_inot,
        -:        -: 8897:   { &search62_0.value },
        -:        -: 8898:   NULL,
        -:        -: 8899:};
        -:        -: 8900:   
        -:        -: 8901:static const nir_search_variable replace62_0 = {
        -:        -: 8902:   { nir_search_value_variable, 0 },
        -:        -: 8903:   0, /* a */
        -:        -: 8904:   false,
        -:        -: 8905:   nir_type_invalid,
        -:        -: 8906:   NULL,
        -:        -: 8907:};
        -:        -: 8908:
        -:        -: 8909:static const nir_search_variable replace62_1 = {
        -:        -: 8910:   { nir_search_value_variable, 0 },
        -:        -: 8911:   1, /* b */
        -:        -: 8912:   false,
        -:        -: 8913:   nir_type_invalid,
        -:        -: 8914:   NULL,
        -:        -: 8915:};
        -:        -: 8916:static const nir_search_expression replace62 = {
        -:        -: 8917:   { nir_search_value_expression, 0 },
        -:        -: 8918:   false,
        -:        -: 8919:   nir_op_flt,
        -:        -: 8920:   { &replace62_0.value, &replace62_1.value },
        -:        -: 8921:   NULL,
        -:        -: 8922:};
        -:        -: 8923:   
        -:        -: 8924:static const nir_search_variable search63_0_0 = {
        -:        -: 8925:   { nir_search_value_variable, 0 },
        -:        -: 8926:   0, /* a */
        -:        -: 8927:   false,
        -:        -: 8928:   nir_type_invalid,
        -:        -: 8929:   NULL,
        -:        -: 8930:};
        -:        -: 8931:
        -:        -: 8932:static const nir_search_variable search63_0_1 = {
        -:        -: 8933:   { nir_search_value_variable, 0 },
        -:        -: 8934:   1, /* b */
        -:        -: 8935:   false,
        -:        -: 8936:   nir_type_invalid,
        -:        -: 8937:   NULL,
        -:        -: 8938:};
        -:        -: 8939:static const nir_search_expression search63_0 = {
        -:        -: 8940:   { nir_search_value_expression, 0 },
        -:        -: 8941:   false,
        -:        -: 8942:   nir_op_feq,
        -:        -: 8943:   { &search63_0_0.value, &search63_0_1.value },
        -:        -: 8944:   NULL,
        -:        -: 8945:};
        -:        -: 8946:static const nir_search_expression search63 = {
        -:        -: 8947:   { nir_search_value_expression, 0 },
        -:        -: 8948:   true,
        -:        -: 8949:   nir_op_inot,
        -:        -: 8950:   { &search63_0.value },
        -:        -: 8951:   NULL,
        -:        -: 8952:};
        -:        -: 8953:   
        -:        -: 8954:static const nir_search_variable replace63_0 = {
        -:        -: 8955:   { nir_search_value_variable, 0 },
        -:        -: 8956:   0, /* a */
        -:        -: 8957:   false,
        -:        -: 8958:   nir_type_invalid,
        -:        -: 8959:   NULL,
        -:        -: 8960:};
        -:        -: 8961:
        -:        -: 8962:static const nir_search_variable replace63_1 = {
        -:        -: 8963:   { nir_search_value_variable, 0 },
        -:        -: 8964:   1, /* b */
        -:        -: 8965:   false,
        -:        -: 8966:   nir_type_invalid,
        -:        -: 8967:   NULL,
        -:        -: 8968:};
        -:        -: 8969:static const nir_search_expression replace63 = {
        -:        -: 8970:   { nir_search_value_expression, 0 },
        -:        -: 8971:   false,
        -:        -: 8972:   nir_op_fne,
        -:        -: 8973:   { &replace63_0.value, &replace63_1.value },
        -:        -: 8974:   NULL,
        -:        -: 8975:};
        -:        -: 8976:   
        -:        -: 8977:static const nir_search_variable search64_0_0 = {
        -:        -: 8978:   { nir_search_value_variable, 0 },
        -:        -: 8979:   0, /* a */
        -:        -: 8980:   false,
        -:        -: 8981:   nir_type_invalid,
        -:        -: 8982:   NULL,
        -:        -: 8983:};
        -:        -: 8984:
        -:        -: 8985:static const nir_search_variable search64_0_1 = {
        -:        -: 8986:   { nir_search_value_variable, 0 },
        -:        -: 8987:   1, /* b */
        -:        -: 8988:   false,
        -:        -: 8989:   nir_type_invalid,
        -:        -: 8990:   NULL,
        -:        -: 8991:};
        -:        -: 8992:static const nir_search_expression search64_0 = {
        -:        -: 8993:   { nir_search_value_expression, 0 },
        -:        -: 8994:   false,
        -:        -: 8995:   nir_op_fne,
        -:        -: 8996:   { &search64_0_0.value, &search64_0_1.value },
        -:        -: 8997:   NULL,
        -:        -: 8998:};
        -:        -: 8999:static const nir_search_expression search64 = {
        -:        -: 9000:   { nir_search_value_expression, 0 },
        -:        -: 9001:   true,
        -:        -: 9002:   nir_op_inot,
        -:        -: 9003:   { &search64_0.value },
        -:        -: 9004:   NULL,
        -:        -: 9005:};
        -:        -: 9006:   
        -:        -: 9007:static const nir_search_variable replace64_0 = {
        -:        -: 9008:   { nir_search_value_variable, 0 },
        -:        -: 9009:   0, /* a */
        -:        -: 9010:   false,
        -:        -: 9011:   nir_type_invalid,
        -:        -: 9012:   NULL,
        -:        -: 9013:};
        -:        -: 9014:
        -:        -: 9015:static const nir_search_variable replace64_1 = {
        -:        -: 9016:   { nir_search_value_variable, 0 },
        -:        -: 9017:   1, /* b */
        -:        -: 9018:   false,
        -:        -: 9019:   nir_type_invalid,
        -:        -: 9020:   NULL,
        -:        -: 9021:};
        -:        -: 9022:static const nir_search_expression replace64 = {
        -:        -: 9023:   { nir_search_value_expression, 0 },
        -:        -: 9024:   false,
        -:        -: 9025:   nir_op_feq,
        -:        -: 9026:   { &replace64_0.value, &replace64_1.value },
        -:        -: 9027:   NULL,
        -:        -: 9028:};
        -:        -: 9029:   
        -:        -: 9030:static const nir_search_variable search65_0_0 = {
        -:        -: 9031:   { nir_search_value_variable, 0 },
        -:        -: 9032:   0, /* a */
        -:        -: 9033:   false,
        -:        -: 9034:   nir_type_invalid,
        -:        -: 9035:   NULL,
        -:        -: 9036:};
        -:        -: 9037:
        -:        -: 9038:static const nir_search_variable search65_0_1 = {
        -:        -: 9039:   { nir_search_value_variable, 0 },
        -:        -: 9040:   1, /* b */
        -:        -: 9041:   false,
        -:        -: 9042:   nir_type_invalid,
        -:        -: 9043:   NULL,
        -:        -: 9044:};
        -:        -: 9045:static const nir_search_expression search65_0 = {
        -:        -: 9046:   { nir_search_value_expression, 0 },
        -:        -: 9047:   false,
        -:        -: 9048:   nir_op_ilt,
        -:        -: 9049:   { &search65_0_0.value, &search65_0_1.value },
        -:        -: 9050:   NULL,
        -:        -: 9051:};
        -:        -: 9052:static const nir_search_expression search65 = {
        -:        -: 9053:   { nir_search_value_expression, 0 },
        -:        -: 9054:   false,
        -:        -: 9055:   nir_op_inot,
        -:        -: 9056:   { &search65_0.value },
        -:        -: 9057:   NULL,
        -:        -: 9058:};
        -:        -: 9059:   
        -:        -: 9060:static const nir_search_variable replace65_0 = {
        -:        -: 9061:   { nir_search_value_variable, 0 },
        -:        -: 9062:   0, /* a */
        -:        -: 9063:   false,
        -:        -: 9064:   nir_type_invalid,
        -:        -: 9065:   NULL,
        -:        -: 9066:};
        -:        -: 9067:
        -:        -: 9068:static const nir_search_variable replace65_1 = {
        -:        -: 9069:   { nir_search_value_variable, 0 },
        -:        -: 9070:   1, /* b */
        -:        -: 9071:   false,
        -:        -: 9072:   nir_type_invalid,
        -:        -: 9073:   NULL,
        -:        -: 9074:};
        -:        -: 9075:static const nir_search_expression replace65 = {
        -:        -: 9076:   { nir_search_value_expression, 0 },
        -:        -: 9077:   false,
        -:        -: 9078:   nir_op_ige,
        -:        -: 9079:   { &replace65_0.value, &replace65_1.value },
        -:        -: 9080:   NULL,
        -:        -: 9081:};
        -:        -: 9082:   
        -:        -: 9083:static const nir_search_variable search66_0_0 = {
        -:        -: 9084:   { nir_search_value_variable, 0 },
        -:        -: 9085:   0, /* a */
        -:        -: 9086:   false,
        -:        -: 9087:   nir_type_invalid,
        -:        -: 9088:   NULL,
        -:        -: 9089:};
        -:        -: 9090:
        -:        -: 9091:static const nir_search_variable search66_0_1 = {
        -:        -: 9092:   { nir_search_value_variable, 0 },
        -:        -: 9093:   1, /* b */
        -:        -: 9094:   false,
        -:        -: 9095:   nir_type_invalid,
        -:        -: 9096:   NULL,
        -:        -: 9097:};
        -:        -: 9098:static const nir_search_expression search66_0 = {
        -:        -: 9099:   { nir_search_value_expression, 0 },
        -:        -: 9100:   false,
        -:        -: 9101:   nir_op_ige,
        -:        -: 9102:   { &search66_0_0.value, &search66_0_1.value },
        -:        -: 9103:   NULL,
        -:        -: 9104:};
        -:        -: 9105:static const nir_search_expression search66 = {
        -:        -: 9106:   { nir_search_value_expression, 0 },
        -:        -: 9107:   false,
        -:        -: 9108:   nir_op_inot,
        -:        -: 9109:   { &search66_0.value },
        -:        -: 9110:   NULL,
        -:        -: 9111:};
        -:        -: 9112:   
        -:        -: 9113:static const nir_search_variable replace66_0 = {
        -:        -: 9114:   { nir_search_value_variable, 0 },
        -:        -: 9115:   0, /* a */
        -:        -: 9116:   false,
        -:        -: 9117:   nir_type_invalid,
        -:        -: 9118:   NULL,
        -:        -: 9119:};
        -:        -: 9120:
        -:        -: 9121:static const nir_search_variable replace66_1 = {
        -:        -: 9122:   { nir_search_value_variable, 0 },
        -:        -: 9123:   1, /* b */
        -:        -: 9124:   false,
        -:        -: 9125:   nir_type_invalid,
        -:        -: 9126:   NULL,
        -:        -: 9127:};
        -:        -: 9128:static const nir_search_expression replace66 = {
        -:        -: 9129:   { nir_search_value_expression, 0 },
        -:        -: 9130:   false,
        -:        -: 9131:   nir_op_ilt,
        -:        -: 9132:   { &replace66_0.value, &replace66_1.value },
        -:        -: 9133:   NULL,
        -:        -: 9134:};
        -:        -: 9135:   
        -:        -: 9136:static const nir_search_variable search67_0_0 = {
        -:        -: 9137:   { nir_search_value_variable, 0 },
        -:        -: 9138:   0, /* a */
        -:        -: 9139:   false,
        -:        -: 9140:   nir_type_invalid,
        -:        -: 9141:   NULL,
        -:        -: 9142:};
        -:        -: 9143:
        -:        -: 9144:static const nir_search_variable search67_0_1 = {
        -:        -: 9145:   { nir_search_value_variable, 0 },
        -:        -: 9146:   1, /* b */
        -:        -: 9147:   false,
        -:        -: 9148:   nir_type_invalid,
        -:        -: 9149:   NULL,
        -:        -: 9150:};
        -:        -: 9151:static const nir_search_expression search67_0 = {
        -:        -: 9152:   { nir_search_value_expression, 0 },
        -:        -: 9153:   false,
        -:        -: 9154:   nir_op_ieq,
        -:        -: 9155:   { &search67_0_0.value, &search67_0_1.value },
        -:        -: 9156:   NULL,
        -:        -: 9157:};
        -:        -: 9158:static const nir_search_expression search67 = {
        -:        -: 9159:   { nir_search_value_expression, 0 },
        -:        -: 9160:   false,
        -:        -: 9161:   nir_op_inot,
        -:        -: 9162:   { &search67_0.value },
        -:        -: 9163:   NULL,
        -:        -: 9164:};
        -:        -: 9165:   
        -:        -: 9166:static const nir_search_variable replace67_0 = {
        -:        -: 9167:   { nir_search_value_variable, 0 },
        -:        -: 9168:   0, /* a */
        -:        -: 9169:   false,
        -:        -: 9170:   nir_type_invalid,
        -:        -: 9171:   NULL,
        -:        -: 9172:};
        -:        -: 9173:
        -:        -: 9174:static const nir_search_variable replace67_1 = {
        -:        -: 9175:   { nir_search_value_variable, 0 },
        -:        -: 9176:   1, /* b */
        -:        -: 9177:   false,
        -:        -: 9178:   nir_type_invalid,
        -:        -: 9179:   NULL,
        -:        -: 9180:};
        -:        -: 9181:static const nir_search_expression replace67 = {
        -:        -: 9182:   { nir_search_value_expression, 0 },
        -:        -: 9183:   false,
        -:        -: 9184:   nir_op_ine,
        -:        -: 9185:   { &replace67_0.value, &replace67_1.value },
        -:        -: 9186:   NULL,
        -:        -: 9187:};
        -:        -: 9188:   
        -:        -: 9189:static const nir_search_variable search68_0_0 = {
        -:        -: 9190:   { nir_search_value_variable, 0 },
        -:        -: 9191:   0, /* a */
        -:        -: 9192:   false,
        -:        -: 9193:   nir_type_invalid,
        -:        -: 9194:   NULL,
        -:        -: 9195:};
        -:        -: 9196:
        -:        -: 9197:static const nir_search_variable search68_0_1 = {
        -:        -: 9198:   { nir_search_value_variable, 0 },
        -:        -: 9199:   1, /* b */
        -:        -: 9200:   false,
        -:        -: 9201:   nir_type_invalid,
        -:        -: 9202:   NULL,
        -:        -: 9203:};
        -:        -: 9204:static const nir_search_expression search68_0 = {
        -:        -: 9205:   { nir_search_value_expression, 0 },
        -:        -: 9206:   false,
        -:        -: 9207:   nir_op_ine,
        -:        -: 9208:   { &search68_0_0.value, &search68_0_1.value },
        -:        -: 9209:   NULL,
        -:        -: 9210:};
        -:        -: 9211:static const nir_search_expression search68 = {
        -:        -: 9212:   { nir_search_value_expression, 0 },
        -:        -: 9213:   false,
        -:        -: 9214:   nir_op_inot,
        -:        -: 9215:   { &search68_0.value },
        -:        -: 9216:   NULL,
        -:        -: 9217:};
        -:        -: 9218:   
        -:        -: 9219:static const nir_search_variable replace68_0 = {
        -:        -: 9220:   { nir_search_value_variable, 0 },
        -:        -: 9221:   0, /* a */
        -:        -: 9222:   false,
        -:        -: 9223:   nir_type_invalid,
        -:        -: 9224:   NULL,
        -:        -: 9225:};
        -:        -: 9226:
        -:        -: 9227:static const nir_search_variable replace68_1 = {
        -:        -: 9228:   { nir_search_value_variable, 0 },
        -:        -: 9229:   1, /* b */
        -:        -: 9230:   false,
        -:        -: 9231:   nir_type_invalid,
        -:        -: 9232:   NULL,
        -:        -: 9233:};
        -:        -: 9234:static const nir_search_expression replace68 = {
        -:        -: 9235:   { nir_search_value_expression, 0 },
        -:        -: 9236:   false,
        -:        -: 9237:   nir_op_ieq,
        -:        -: 9238:   { &replace68_0.value, &replace68_1.value },
        -:        -: 9239:   NULL,
        -:        -: 9240:};
        -:        -: 9241:   
        -:        -: 9242:static const nir_search_variable search143_0_0 = {
        -:        -: 9243:   { nir_search_value_variable, 0 },
        -:        -: 9244:   0, /* a */
        -:        -: 9245:   false,
        -:        -: 9246:   nir_type_invalid,
        -:        -: 9247:   NULL,
        -:        -: 9248:};
        -:        -: 9249:static const nir_search_expression search143_0 = {
        -:        -: 9250:   { nir_search_value_expression, 0 },
        -:        -: 9251:   false,
        -:        -: 9252:   nir_op_inot,
        -:        -: 9253:   { &search143_0_0.value },
        -:        -: 9254:   NULL,
        -:        -: 9255:};
        -:        -: 9256:static const nir_search_expression search143 = {
        -:        -: 9257:   { nir_search_value_expression, 0 },
        -:        -: 9258:   false,
        -:        -: 9259:   nir_op_inot,
        -:        -: 9260:   { &search143_0.value },
        -:        -: 9261:   NULL,
        -:        -: 9262:};
        -:        -: 9263:   
        -:        -: 9264:static const nir_search_variable replace143 = {
        -:        -: 9265:   { nir_search_value_variable, 0 },
        -:        -: 9266:   0, /* a */
        -:        -: 9267:   false,
        -:        -: 9268:   nir_type_invalid,
        -:        -: 9269:   NULL,
        -:        -: 9270:};
        -:        -: 9271:
        -:        -: 9272:static const struct transform nir_opt_algebraic_inot_xforms[] = {
        -:        -: 9273:   { &search61, &replace61.value, 0 },
        -:        -: 9274:   { &search62, &replace62.value, 0 },
        -:        -: 9275:   { &search63, &replace63.value, 0 },
        -:        -: 9276:   { &search64, &replace64.value, 0 },
        -:        -: 9277:   { &search65, &replace65.value, 0 },
        -:        -: 9278:   { &search66, &replace66.value, 0 },
        -:        -: 9279:   { &search67, &replace67.value, 0 },
        -:        -: 9280:   { &search68, &replace68.value, 0 },
        -:        -: 9281:   { &search143, &replace143.value, 0 },
        -:        -: 9282:};
        -:        -: 9283:   
        -:        -: 9284:static const nir_search_variable search117_0 = {
        -:        -: 9285:   { nir_search_value_variable, 0 },
        -:        -: 9286:   0, /* a */
        -:        -: 9287:   false,
        -:        -: 9288:   nir_type_invalid,
        -:        -: 9289:   NULL,
        -:        -: 9290:};
        -:        -: 9291:
        -:        -: 9292:static const nir_search_variable search117_1 = {
        -:        -: 9293:   { nir_search_value_variable, 0 },
        -:        -: 9294:   1, /* b */
        -:        -: 9295:   false,
        -:        -: 9296:   nir_type_invalid,
        -:        -: 9297:   NULL,
        -:        -: 9298:};
        -:        -: 9299:static const nir_search_expression search117 = {
        -:        -: 9300:   { nir_search_value_expression, 0 },
        -:        -: 9301:   false,
        -:        -: 9302:   nir_op_sne,
        -:        -: 9303:   { &search117_0.value, &search117_1.value },
        -:        -: 9304:   NULL,
        -:        -: 9305:};
        -:        -: 9306:   
        -:        -: 9307:static const nir_search_variable replace117_0_0 = {
        -:        -: 9308:   { nir_search_value_variable, 0 },
        -:        -: 9309:   0, /* a */
        -:        -: 9310:   false,
        -:        -: 9311:   nir_type_invalid,
        -:        -: 9312:   NULL,
        -:        -: 9313:};
        -:        -: 9314:
        -:        -: 9315:static const nir_search_variable replace117_0_1 = {
        -:        -: 9316:   { nir_search_value_variable, 0 },
        -:        -: 9317:   1, /* b */
        -:        -: 9318:   false,
        -:        -: 9319:   nir_type_invalid,
        -:        -: 9320:   NULL,
        -:        -: 9321:};
        -:        -: 9322:static const nir_search_expression replace117_0 = {
        -:        -: 9323:   { nir_search_value_expression, 0 },
        -:        -: 9324:   false,
        -:        -: 9325:   nir_op_fne,
        -:        -: 9326:   { &replace117_0_0.value, &replace117_0_1.value },
        -:        -: 9327:   NULL,
        -:        -: 9328:};
        -:        -: 9329:static const nir_search_expression replace117 = {
        -:        -: 9330:   { nir_search_value_expression, 0 },
        -:        -: 9331:   false,
        -:        -: 9332:   nir_op_b2f,
        -:        -: 9333:   { &replace117_0.value },
        -:        -: 9334:   NULL,
        -:        -: 9335:};
        -:        -: 9336:
        -:        -: 9337:static const struct transform nir_opt_algebraic_sne_xforms[] = {
        -:        -: 9338:   { &search117, &replace117.value, 11 },
        -:        -: 9339:};
        -:        -: 9340:   
        -:        -: 9341:static const nir_search_variable search228_0 = {
        -:        -: 9342:   { nir_search_value_variable, 0 },
        -:        -: 9343:   0, /* a */
        -:        -: 9344:   false,
        -:        -: 9345:   nir_type_invalid,
        -:        -: 9346:   NULL,
        -:        -: 9347:};
        -:        -: 9348:
        -:        -: 9349:static const nir_search_variable search228_1 = {
        -:        -: 9350:   { nir_search_value_variable, 0 },
        -:        -: 9351:   1, /* b */
        -:        -: 9352:   false,
        -:        -: 9353:   nir_type_invalid,
        -:        -: 9354:   NULL,
        -:        -: 9355:};
        -:        -: 9356:static const nir_search_expression search228 = {
        -:        -: 9357:   { nir_search_value_expression, 32 },
        -:        -: 9358:   false,
        -:        -: 9359:   nir_op_fmod,
        -:        -: 9360:   { &search228_0.value, &search228_1.value },
        -:        -: 9361:   NULL,
        -:        -: 9362:};
        -:        -: 9363:   
        -:        -: 9364:static const nir_search_variable replace228_0 = {
        -:        -: 9365:   { nir_search_value_variable, 0 },
        -:        -: 9366:   0, /* a */
        -:        -: 9367:   false,
        -:        -: 9368:   nir_type_invalid,
        -:        -: 9369:   NULL,
        -:        -: 9370:};
        -:        -: 9371:
        -:        -: 9372:static const nir_search_variable replace228_1_0 = {
        -:        -: 9373:   { nir_search_value_variable, 0 },
        -:        -: 9374:   1, /* b */
        -:        -: 9375:   false,
        -:        -: 9376:   nir_type_invalid,
        -:        -: 9377:   NULL,
        -:        -: 9378:};
        -:        -: 9379:
        -:        -: 9380:static const nir_search_variable replace228_1_1_0_0 = {
        -:        -: 9381:   { nir_search_value_variable, 0 },
        -:        -: 9382:   0, /* a */
        -:        -: 9383:   false,
        -:        -: 9384:   nir_type_invalid,
        -:        -: 9385:   NULL,
        -:        -: 9386:};
        -:        -: 9387:
        -:        -: 9388:static const nir_search_variable replace228_1_1_0_1 = {
        -:        -: 9389:   { nir_search_value_variable, 0 },
        -:        -: 9390:   1, /* b */
        -:        -: 9391:   false,
        -:        -: 9392:   nir_type_invalid,
        -:        -: 9393:   NULL,
        -:        -: 9394:};
        -:        -: 9395:static const nir_search_expression replace228_1_1_0 = {
        -:        -: 9396:   { nir_search_value_expression, 0 },
        -:        -: 9397:   false,
        -:        -: 9398:   nir_op_fdiv,
        -:        -: 9399:   { &replace228_1_1_0_0.value, &replace228_1_1_0_1.value },
        -:        -: 9400:   NULL,
        -:        -: 9401:};
        -:        -: 9402:static const nir_search_expression replace228_1_1 = {
        -:        -: 9403:   { nir_search_value_expression, 0 },
        -:        -: 9404:   false,
        -:        -: 9405:   nir_op_ffloor,
        -:        -: 9406:   { &replace228_1_1_0.value },
        -:        -: 9407:   NULL,
        -:        -: 9408:};
        -:        -: 9409:static const nir_search_expression replace228_1 = {
        -:        -: 9410:   { nir_search_value_expression, 0 },
        -:        -: 9411:   false,
        -:        -: 9412:   nir_op_fmul,
        -:        -: 9413:   { &replace228_1_0.value, &replace228_1_1.value },
        -:        -: 9414:   NULL,
        -:        -: 9415:};
        -:        -: 9416:static const nir_search_expression replace228 = {
        -:        -: 9417:   { nir_search_value_expression, 0 },
        -:        -: 9418:   false,
        -:        -: 9419:   nir_op_fsub,
        -:        -: 9420:   { &replace228_0.value, &replace228_1.value },
        -:        -: 9421:   NULL,
        -:        -: 9422:};
        -:        -: 9423:   
        -:        -: 9424:static const nir_search_variable search229_0 = {
        -:        -: 9425:   { nir_search_value_variable, 0 },
        -:        -: 9426:   0, /* a */
        -:        -: 9427:   false,
        -:        -: 9428:   nir_type_invalid,
        -:        -: 9429:   NULL,
        -:        -: 9430:};
        -:        -: 9431:
        -:        -: 9432:static const nir_search_variable search229_1 = {
        -:        -: 9433:   { nir_search_value_variable, 0 },
        -:        -: 9434:   1, /* b */
        -:        -: 9435:   false,
        -:        -: 9436:   nir_type_invalid,
        -:        -: 9437:   NULL,
        -:        -: 9438:};
        -:        -: 9439:static const nir_search_expression search229 = {
        -:        -: 9440:   { nir_search_value_expression, 64 },
        -:        -: 9441:   false,
        -:        -: 9442:   nir_op_fmod,
        -:        -: 9443:   { &search229_0.value, &search229_1.value },
        -:        -: 9444:   NULL,
        -:        -: 9445:};
        -:        -: 9446:   
        -:        -: 9447:static const nir_search_variable replace229_0 = {
        -:        -: 9448:   { nir_search_value_variable, 0 },
        -:        -: 9449:   0, /* a */
        -:        -: 9450:   false,
        -:        -: 9451:   nir_type_invalid,
        -:        -: 9452:   NULL,
        -:        -: 9453:};
        -:        -: 9454:
        -:        -: 9455:static const nir_search_variable replace229_1_0 = {
        -:        -: 9456:   { nir_search_value_variable, 0 },
        -:        -: 9457:   1, /* b */
        -:        -: 9458:   false,
        -:        -: 9459:   nir_type_invalid,
        -:        -: 9460:   NULL,
        -:        -: 9461:};
        -:        -: 9462:
        -:        -: 9463:static const nir_search_variable replace229_1_1_0_0 = {
        -:        -: 9464:   { nir_search_value_variable, 0 },
        -:        -: 9465:   0, /* a */
        -:        -: 9466:   false,
        -:        -: 9467:   nir_type_invalid,
        -:        -: 9468:   NULL,
        -:        -: 9469:};
        -:        -: 9470:
        -:        -: 9471:static const nir_search_variable replace229_1_1_0_1 = {
        -:        -: 9472:   { nir_search_value_variable, 0 },
        -:        -: 9473:   1, /* b */
        -:        -: 9474:   false,
        -:        -: 9475:   nir_type_invalid,
        -:        -: 9476:   NULL,
        -:        -: 9477:};
        -:        -: 9478:static const nir_search_expression replace229_1_1_0 = {
        -:        -: 9479:   { nir_search_value_expression, 0 },
        -:        -: 9480:   false,
        -:        -: 9481:   nir_op_fdiv,
        -:        -: 9482:   { &replace229_1_1_0_0.value, &replace229_1_1_0_1.value },
        -:        -: 9483:   NULL,
        -:        -: 9484:};
        -:        -: 9485:static const nir_search_expression replace229_1_1 = {
        -:        -: 9486:   { nir_search_value_expression, 0 },
        -:        -: 9487:   false,
        -:        -: 9488:   nir_op_ffloor,
        -:        -: 9489:   { &replace229_1_1_0.value },
        -:        -: 9490:   NULL,
        -:        -: 9491:};
        -:        -: 9492:static const nir_search_expression replace229_1 = {
        -:        -: 9493:   { nir_search_value_expression, 0 },
        -:        -: 9494:   false,
        -:        -: 9495:   nir_op_fmul,
        -:        -: 9496:   { &replace229_1_0.value, &replace229_1_1.value },
        -:        -: 9497:   NULL,
        -:        -: 9498:};
        -:        -: 9499:static const nir_search_expression replace229 = {
        -:        -: 9500:   { nir_search_value_expression, 0 },
        -:        -: 9501:   false,
        -:        -: 9502:   nir_op_fsub,
        -:        -: 9503:   { &replace229_0.value, &replace229_1.value },
        -:        -: 9504:   NULL,
        -:        -: 9505:};
        -:        -: 9506:
        -:        -: 9507:static const struct transform nir_opt_algebraic_fmod_xforms[] = {
        -:        -: 9508:   { &search228, &replace228.value, 21 },
        -:        -: 9509:   { &search229, &replace229.value, 22 },
        -:        -: 9510:};
        -:        -: 9511:   
        -:        -: 9512:static const nir_search_variable search203_0_0 = {
        -:        -: 9513:   { nir_search_value_variable, 0 },
        -:        -: 9514:   0, /* a */
        -:        -: 9515:   false,
        -:        -: 9516:   nir_type_invalid,
        -:        -: 9517:   NULL,
        -:        -: 9518:};
        -:        -: 9519:static const nir_search_expression search203_0 = {
        -:        -: 9520:   { nir_search_value_expression, 0 },
        -:        -: 9521:   false,
        -:        -: 9522:   nir_op_unpack_64_2x32_split_x,
        -:        -: 9523:   { &search203_0_0.value },
        -:        -: 9524:   NULL,
        -:        -: 9525:};
        -:        -: 9526:
        -:        -: 9527:static const nir_search_variable search203_1_0 = {
        -:        -: 9528:   { nir_search_value_variable, 0 },
        -:        -: 9529:   0, /* a */
        -:        -: 9530:   false,
        -:        -: 9531:   nir_type_invalid,
        -:        -: 9532:   NULL,
        -:        -: 9533:};
        -:        -: 9534:static const nir_search_expression search203_1 = {
        -:        -: 9535:   { nir_search_value_expression, 0 },
        -:        -: 9536:   false,
        -:        -: 9537:   nir_op_unpack_64_2x32_split_y,
        -:        -: 9538:   { &search203_1_0.value },
        -:        -: 9539:   NULL,
        -:        -: 9540:};
        -:        -: 9541:static const nir_search_expression search203 = {
        -:        -: 9542:   { nir_search_value_expression, 0 },
        -:        -: 9543:   false,
        -:        -: 9544:   nir_op_pack_64_2x32_split,
        -:        -: 9545:   { &search203_0.value, &search203_1.value },
        -:        -: 9546:   NULL,
        -:        -: 9547:};
        -:        -: 9548:   
        -:        -: 9549:static const nir_search_variable replace203 = {
        -:        -: 9550:   { nir_search_value_variable, 0 },
        -:        -: 9551:   0, /* a */
        -:        -: 9552:   false,
        -:        -: 9553:   nir_type_invalid,
        -:        -: 9554:   NULL,
        -:        -: 9555:};
        -:        -: 9556:
        -:        -: 9557:static const struct transform nir_opt_algebraic_pack_64_2x32_split_xforms[] = {
        -:        -: 9558:   { &search203, &replace203.value, 0 },
        -:        -: 9559:};
        -:        -: 9560:   
        -:        -: 9561:static const nir_search_variable search193_0 = {
        -:        -: 9562:   { nir_search_value_variable, 0 },
        -:        -: 9563:   0, /* a */
        -:        -: 9564:   false,
        -:        -: 9565:   nir_type_invalid,
        -:        -: 9566:   NULL,
        -:        -: 9567:};
        -:        -: 9568:
        -:        -: 9569:static const nir_search_variable search193_1 = {
        -:        -: 9570:   { nir_search_value_variable, 0 },
        -:        -: 9571:   1, /* b */
        -:        -: 9572:   false,
        -:        -: 9573:   nir_type_invalid,
        -:        -: 9574:   NULL,
        -:        -: 9575:};
        -:        -: 9576:
        -:        -: 9577:static const nir_search_variable search193_2 = {
        -:        -: 9578:   { nir_search_value_variable, 0 },
        -:        -: 9579:   1, /* b */
        -:        -: 9580:   false,
        -:        -: 9581:   nir_type_invalid,
        -:        -: 9582:   NULL,
        -:        -: 9583:};
        -:        -: 9584:static const nir_search_expression search193 = {
        -:        -: 9585:   { nir_search_value_expression, 0 },
        -:        -: 9586:   false,
        -:        -: 9587:   nir_op_fcsel,
        -:        -: 9588:   { &search193_0.value, &search193_1.value, &search193_2.value },
        -:        -: 9589:   NULL,
        -:        -: 9590:};
        -:        -: 9591:   
        -:        -: 9592:static const nir_search_variable replace193 = {
        -:        -: 9593:   { nir_search_value_variable, 0 },
        -:        -: 9594:   1, /* b */
        -:        -: 9595:   false,
        -:        -: 9596:   nir_type_invalid,
        -:        -: 9597:   NULL,
        -:        -: 9598:};
        -:        -: 9599:
        -:        -: 9600:static const struct transform nir_opt_algebraic_fcsel_xforms[] = {
        -:        -: 9601:   { &search193, &replace193.value, 0 },
        -:        -: 9602:};
        -:        -: 9603:   
        -:        -: 9604:static const nir_search_variable search211_0 = {
        -:        -: 9605:   { nir_search_value_variable, 0 },
        -:        -: 9606:   0, /* a */
        -:        -: 9607:   false,
        -:        -: 9608:   nir_type_invalid,
        -:        -: 9609:   NULL,
        -:        -: 9610:};
        -:        -: 9611:
        -:        -: 9612:static const nir_search_constant search211_1_0 = {
        -:        -: 9613:   { nir_search_value_constant, 0 },
        -:        -: 9614:   nir_type_int, { 0x0 /* 0 */ },
        -:        -: 9615:};
        -:        -: 9616:
        -:        -: 9617:static const nir_search_variable search211_1_1 = {
        -:        -: 9618:   { nir_search_value_variable, 0 },
        -:        -: 9619:   1, /* b */
        -:        -: 9620:   false,
        -:        -: 9621:   nir_type_invalid,
        -:        -: 9622:   NULL,
        -:        -: 9623:};
        -:        -: 9624:static const nir_search_expression search211_1 = {
        -:        -: 9625:   { nir_search_value_expression, 0 },
        -:        -: 9626:   false,
        -:        -: 9627:   nir_op_isub,
        -:        -: 9628:   { &search211_1_0.value, &search211_1_1.value },
        -:        -: 9629:   NULL,
        -:        -: 9630:};
        -:        -: 9631:static const nir_search_expression search211 = {
        -:        -: 9632:   { nir_search_value_expression, 0 },
        -:        -: 9633:   false,
        -:        -: 9634:   nir_op_isub,
        -:        -: 9635:   { &search211_0.value, &search211_1.value },
        -:        -: 9636:   NULL,
        -:        -: 9637:};
        -:        -: 9638:   
        -:        -: 9639:static const nir_search_variable replace211_0 = {
        -:        -: 9640:   { nir_search_value_variable, 0 },
        -:        -: 9641:   0, /* a */
        -:        -: 9642:   false,
        -:        -: 9643:   nir_type_invalid,
        -:        -: 9644:   NULL,
        -:        -: 9645:};
        -:        -: 9646:
        -:        -: 9647:static const nir_search_variable replace211_1 = {
        -:        -: 9648:   { nir_search_value_variable, 0 },
        -:        -: 9649:   1, /* b */
        -:        -: 9650:   false,
        -:        -: 9651:   nir_type_invalid,
        -:        -: 9652:   NULL,
        -:        -: 9653:};
        -:        -: 9654:static const nir_search_expression replace211 = {
        -:        -: 9655:   { nir_search_value_expression, 0 },
        -:        -: 9656:   false,
        -:        -: 9657:   nir_op_iadd,
        -:        -: 9658:   { &replace211_0.value, &replace211_1.value },
        -:        -: 9659:   NULL,
        -:        -: 9660:};
        -:        -: 9661:   
        -:        -: 9662:static const nir_search_variable search215_0 = {
        -:        -: 9663:   { nir_search_value_variable, 0 },
        -:        -: 9664:   0, /* a */
        -:        -: 9665:   false,
        -:        -: 9666:   nir_type_invalid,
        -:        -: 9667:   NULL,
        -:        -: 9668:};
        -:        -: 9669:
        -:        -: 9670:static const nir_search_variable search215_1 = {
        -:        -: 9671:   { nir_search_value_variable, 0 },
        -:        -: 9672:   1, /* b */
        -:        -: 9673:   false,
        -:        -: 9674:   nir_type_invalid,
        -:        -: 9675:   NULL,
        -:        -: 9676:};
        -:        -: 9677:static const nir_search_expression search215 = {
        -:        -: 9678:   { nir_search_value_expression, 0 },
        -:        -: 9679:   false,
        -:        -: 9680:   nir_op_isub,
        -:        -: 9681:   { &search215_0.value, &search215_1.value },
        -:        -: 9682:   NULL,
        -:        -: 9683:};
        -:        -: 9684:   
        -:        -: 9685:static const nir_search_variable replace215_0 = {
        -:        -: 9686:   { nir_search_value_variable, 0 },
        -:        -: 9687:   0, /* a */
        -:        -: 9688:   false,
        -:        -: 9689:   nir_type_invalid,
        -:        -: 9690:   NULL,
        -:        -: 9691:};
        -:        -: 9692:
        -:        -: 9693:static const nir_search_variable replace215_1_0 = {
        -:        -: 9694:   { nir_search_value_variable, 0 },
        -:        -: 9695:   1, /* b */
        -:        -: 9696:   false,
        -:        -: 9697:   nir_type_invalid,
        -:        -: 9698:   NULL,
        -:        -: 9699:};
        -:        -: 9700:static const nir_search_expression replace215_1 = {
        -:        -: 9701:   { nir_search_value_expression, 0 },
        -:        -: 9702:   false,
        -:        -: 9703:   nir_op_ineg,
        -:        -: 9704:   { &replace215_1_0.value },
        -:        -: 9705:   NULL,
        -:        -: 9706:};
        -:        -: 9707:static const nir_search_expression replace215 = {
        -:        -: 9708:   { nir_search_value_expression, 0 },
        -:        -: 9709:   false,
        -:        -: 9710:   nir_op_iadd,
        -:        -: 9711:   { &replace215_0.value, &replace215_1.value },
        -:        -: 9712:   NULL,
        -:        -: 9713:};
        -:        -: 9714:
        -:        -: 9715:static const struct transform nir_opt_algebraic_isub_xforms[] = {
        -:        -: 9716:   { &search211, &replace211.value, 0 },
        -:        -: 9717:   { &search215, &replace215.value, 19 },
        -:        -: 9718:};
        -:        -: 9719:   
        -:        -: 9720:static const nir_search_variable search79_0 = {
        -:        -: 9721:   { nir_search_value_variable, 0 },
        -:        -: 9722:   0, /* a */
        -:        -: 9723:   false,
        -:        -: 9724:   nir_type_invalid,
        -:        -: 9725:   NULL,
        -:        -: 9726:};
        -:        -: 9727:
        -:        -: 9728:static const nir_search_variable search79_1 = {
        -:        -: 9729:   { nir_search_value_variable, 0 },
        -:        -: 9730:   0, /* a */
        -:        -: 9731:   false,
        -:        -: 9732:   nir_type_invalid,
        -:        -: 9733:   NULL,
        -:        -: 9734:};
        -:        -: 9735:static const nir_search_expression search79 = {
        -:        -: 9736:   { nir_search_value_expression, 0 },
        -:        -: 9737:   false,
        -:        -: 9738:   nir_op_fmax,
        -:        -: 9739:   { &search79_0.value, &search79_1.value },
        -:        -: 9740:   NULL,
        -:        -: 9741:};
        -:        -: 9742:   
        -:        -: 9743:static const nir_search_variable replace79 = {
        -:        -: 9744:   { nir_search_value_variable, 0 },
        -:        -: 9745:   0, /* a */
        -:        -: 9746:   false,
        -:        -: 9747:   nir_type_invalid,
        -:        -: 9748:   NULL,
        -:        -: 9749:};
        -:        -: 9750:   
        -:        -: 9751:static const nir_search_variable search90_0 = {
        -:        -: 9752:   { nir_search_value_variable, 0 },
        -:        -: 9753:   0, /* a */
        -:        -: 9754:   false,
        -:        -: 9755:   nir_type_invalid,
        -:        -: 9756:   NULL,
        -:        -: 9757:};
        -:        -: 9758:
        -:        -: 9759:static const nir_search_variable search90_1_0_0 = {
        -:        -: 9760:   { nir_search_value_variable, 0 },
        -:        -: 9761:   0, /* a */
        -:        -: 9762:   false,
        -:        -: 9763:   nir_type_invalid,
        -:        -: 9764:   NULL,
        -:        -: 9765:};
        -:        -: 9766:static const nir_search_expression search90_1_0 = {
        -:        -: 9767:   { nir_search_value_expression, 0 },
        -:        -: 9768:   false,
        -:        -: 9769:   nir_op_fabs,
        -:        -: 9770:   { &search90_1_0_0.value },
        -:        -: 9771:   NULL,
        -:        -: 9772:};
        -:        -: 9773:static const nir_search_expression search90_1 = {
        -:        -: 9774:   { nir_search_value_expression, 0 },
        -:        -: 9775:   false,
        -:        -: 9776:   nir_op_fneg,
        -:        -: 9777:   { &search90_1_0.value },
        -:        -: 9778:   NULL,
        -:        -: 9779:};
        -:        -: 9780:static const nir_search_expression search90 = {
        -:        -: 9781:   { nir_search_value_expression, 0 },
        -:        -: 9782:   false,
        -:        -: 9783:   nir_op_fmax,
        -:        -: 9784:   { &search90_0.value, &search90_1.value },
        -:        -: 9785:   NULL,
        -:        -: 9786:};
        -:        -: 9787:   
        -:        -: 9788:static const nir_search_variable replace90 = {
        -:        -: 9789:   { nir_search_value_variable, 0 },
        -:        -: 9790:   0, /* a */
        -:        -: 9791:   false,
        -:        -: 9792:   nir_type_invalid,
        -:        -: 9793:   NULL,
        -:        -: 9794:};
        -:        -: 9795:   
        -:        -: 9796:static const nir_search_variable search92_0 = {
        -:        -: 9797:   { nir_search_value_variable, 0 },
        -:        -: 9798:   0, /* a */
        -:        -: 9799:   false,
        -:        -: 9800:   nir_type_invalid,
        -:        -: 9801:   NULL,
        -:        -: 9802:};
        -:        -: 9803:
        -:        -: 9804:static const nir_search_variable search92_1_0 = {
        -:        -: 9805:   { nir_search_value_variable, 0 },
        -:        -: 9806:   0, /* a */
        -:        -: 9807:   false,
        -:        -: 9808:   nir_type_invalid,
        -:        -: 9809:   NULL,
        -:        -: 9810:};
        -:        -: 9811:static const nir_search_expression search92_1 = {
        -:        -: 9812:   { nir_search_value_expression, 0 },
        -:        -: 9813:   false,
        -:        -: 9814:   nir_op_fabs,
        -:        -: 9815:   { &search92_1_0.value },
        -:        -: 9816:   NULL,
        -:        -: 9817:};
        -:        -: 9818:static const nir_search_expression search92 = {
        -:        -: 9819:   { nir_search_value_expression, 0 },
        -:        -: 9820:   false,
        -:        -: 9821:   nir_op_fmax,
        -:        -: 9822:   { &search92_0.value, &search92_1.value },
        -:        -: 9823:   NULL,
        -:        -: 9824:};
        -:        -: 9825:   
        -:        -: 9826:static const nir_search_variable replace92_0 = {
        -:        -: 9827:   { nir_search_value_variable, 0 },
        -:        -: 9828:   0, /* a */
        -:        -: 9829:   false,
        -:        -: 9830:   nir_type_invalid,
        -:        -: 9831:   NULL,
        -:        -: 9832:};
        -:        -: 9833:static const nir_search_expression replace92 = {
        -:        -: 9834:   { nir_search_value_expression, 0 },
        -:        -: 9835:   false,
        -:        -: 9836:   nir_op_fabs,
        -:        -: 9837:   { &replace92_0.value },
        -:        -: 9838:   NULL,
        -:        -: 9839:};
        -:        -: 9840:   
        -:        -: 9841:static const nir_search_variable search94_0 = {
        -:        -: 9842:   { nir_search_value_variable, 0 },
        -:        -: 9843:   0, /* a */
        -:        -: 9844:   false,
        -:        -: 9845:   nir_type_invalid,
        -:        -: 9846:   NULL,
        -:        -: 9847:};
        -:        -: 9848:
        -:        -: 9849:static const nir_search_variable search94_1_0 = {
        -:        -: 9850:   { nir_search_value_variable, 0 },
        -:        -: 9851:   0, /* a */
        -:        -: 9852:   false,
        -:        -: 9853:   nir_type_invalid,
        -:        -: 9854:   NULL,
        -:        -: 9855:};
        -:        -: 9856:static const nir_search_expression search94_1 = {
        -:        -: 9857:   { nir_search_value_expression, 0 },
        -:        -: 9858:   false,
        -:        -: 9859:   nir_op_fneg,
        -:        -: 9860:   { &search94_1_0.value },
        -:        -: 9861:   NULL,
        -:        -: 9862:};
        -:        -: 9863:static const nir_search_expression search94 = {
        -:        -: 9864:   { nir_search_value_expression, 0 },
        -:        -: 9865:   false,
        -:        -: 9866:   nir_op_fmax,
        -:        -: 9867:   { &search94_0.value, &search94_1.value },
        -:        -: 9868:   NULL,
        -:        -: 9869:};
        -:        -: 9870:   
        -:        -: 9871:static const nir_search_variable replace94_0 = {
        -:        -: 9872:   { nir_search_value_variable, 0 },
        -:        -: 9873:   0, /* a */
        -:        -: 9874:   false,
        -:        -: 9875:   nir_type_invalid,
        -:        -: 9876:   NULL,
        -:        -: 9877:};
        -:        -: 9878:static const nir_search_expression replace94 = {
        -:        -: 9879:   { nir_search_value_expression, 0 },
        -:        -: 9880:   false,
        -:        -: 9881:   nir_op_fabs,
        -:        -: 9882:   { &replace94_0.value },
        -:        -: 9883:   NULL,
        -:        -: 9884:};
        -:        -: 9885:   
        -:        -: 9886:static const nir_search_variable search97_0_0 = {
        -:        -: 9887:   { nir_search_value_variable, 0 },
        -:        -: 9888:   0, /* a */
        -:        -: 9889:   false,
        -:        -: 9890:   nir_type_invalid,
        -:        -: 9891:   NULL,
        -:        -: 9892:};
        -:        -: 9893:
        -:        -: 9894:static const nir_search_constant search97_0_1 = {
        -:        -: 9895:   { nir_search_value_constant, 0 },
        -:        -: 9896:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -: 9897:};
        -:        -: 9898:static const nir_search_expression search97_0 = {
        -:        -: 9899:   { nir_search_value_expression, 0 },
        -:        -: 9900:   false,
        -:        -: 9901:   nir_op_fmin,
        -:        -: 9902:   { &search97_0_0.value, &search97_0_1.value },
        -:        -: 9903:   NULL,
        -:        -: 9904:};
        -:        -: 9905:
        -:        -: 9906:static const nir_search_constant search97_1 = {
        -:        -: 9907:   { nir_search_value_constant, 0 },
        -:        -: 9908:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -: 9909:};
        -:        -: 9910:static const nir_search_expression search97 = {
        -:        -: 9911:   { nir_search_value_expression, 0 },
        -:        -: 9912:   true,
        -:        -: 9913:   nir_op_fmax,
        -:        -: 9914:   { &search97_0.value, &search97_1.value },
        -:        -: 9915:   NULL,
        -:        -: 9916:};
        -:        -: 9917:   
        -:        -: 9918:static const nir_search_variable replace97_0 = {
        -:        -: 9919:   { nir_search_value_variable, 0 },
        -:        -: 9920:   0, /* a */
        -:        -: 9921:   false,
        -:        -: 9922:   nir_type_invalid,
        -:        -: 9923:   NULL,
        -:        -: 9924:};
        -:        -: 9925:static const nir_search_expression replace97 = {
        -:        -: 9926:   { nir_search_value_expression, 0 },
        -:        -: 9927:   false,
        -:        -: 9928:   nir_op_fsat,
        -:        -: 9929:   { &replace97_0.value },
        -:        -: 9930:   NULL,
        -:        -: 9931:};
        -:        -: 9932:   
        -:        -: 9933:static const nir_search_variable search103_0_0 = {
        -:        -: 9934:   { nir_search_value_variable, 0 },
        -:        -: 9935:   0, /* a */
        -:        -: 9936:   false,
        -:        -: 9937:   nir_type_invalid,
        -:        -: 9938:   NULL,
        -:        -: 9939:};
        -:        -: 9940:static const nir_search_expression search103_0 = {
        -:        -: 9941:   { nir_search_value_expression, 0 },
        -:        -: 9942:   false,
        -:        -: 9943:   nir_op_fsat,
        -:        -: 9944:   { &search103_0_0.value },
        -:        -: 9945:   NULL,
        -:        -: 9946:};
        -:        -: 9947:
        -:        -: 9948:static const nir_search_variable search103_1 = {
        -:        -: 9949:   { nir_search_value_variable, 32 },
        -:        -: 9950:   1, /* b */
        -:        -: 9951:   true,
        -:        -: 9952:   nir_type_invalid,
        -:        -: 9953:   (is_zero_to_one),
        -:        -: 9954:};
        -:        -: 9955:static const nir_search_expression search103 = {
        -:        -: 9956:   { nir_search_value_expression, 0 },
        -:        -: 9957:   false,
        -:        -: 9958:   nir_op_fmax,
        -:        -: 9959:   { &search103_0.value, &search103_1.value },
        -:        -: 9960:   NULL,
        -:        -: 9961:};
        -:        -: 9962:   
        -:        -: 9963:static const nir_search_variable replace103_0_0 = {
        -:        -: 9964:   { nir_search_value_variable, 0 },
        -:        -: 9965:   0, /* a */
        -:        -: 9966:   false,
        -:        -: 9967:   nir_type_invalid,
        -:        -: 9968:   NULL,
        -:        -: 9969:};
        -:        -: 9970:
        -:        -: 9971:static const nir_search_variable replace103_0_1 = {
        -:        -: 9972:   { nir_search_value_variable, 0 },
        -:        -: 9973:   1, /* b */
        -:        -: 9974:   false,
        -:        -: 9975:   nir_type_invalid,
        -:        -: 9976:   NULL,
        -:        -: 9977:};
        -:        -: 9978:static const nir_search_expression replace103_0 = {
        -:        -: 9979:   { nir_search_value_expression, 0 },
        -:        -: 9980:   false,
        -:        -: 9981:   nir_op_fmax,
        -:        -: 9982:   { &replace103_0_0.value, &replace103_0_1.value },
        -:        -: 9983:   NULL,
        -:        -: 9984:};
        -:        -: 9985:static const nir_search_expression replace103 = {
        -:        -: 9986:   { nir_search_value_expression, 0 },
        -:        -: 9987:   false,
        -:        -: 9988:   nir_op_fsat,
        -:        -: 9989:   { &replace103_0.value },
        -:        -: 9990:   NULL,
        -:        -: 9991:};
        -:        -: 9992:
        -:        -: 9993:static const struct transform nir_opt_algebraic_fmax_xforms[] = {
        -:        -: 9994:   { &search79, &replace79.value, 0 },
        -:        -: 9995:   { &search90, &replace90.value, 0 },
        -:        -: 9996:   { &search92, &replace92.value, 0 },
        -:        -: 9997:   { &search94, &replace94.value, 0 },
        -:        -: 9998:   { &search97, &replace97.value, 9 },
        -:        -: 9999:   { &search103, &replace103.value, 0 },
        -:        -:10000:};
        -:        -:10001:   
        -:        -:10002:static const nir_search_variable search31_0 = {
        -:        -:10003:   { nir_search_value_variable, 0 },
        -:        -:10004:   0, /* a */
        -:        -:10005:   false,
        -:        -:10006:   nir_type_invalid,
        -:        -:10007:   NULL,
        -:        -:10008:};
        -:        -:10009:
        -:        -:10010:static const nir_search_constant search31_1 = {
        -:        -:10011:   { nir_search_value_constant, 0 },
        -:        -:10012:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:10013:};
        -:        -:10014:static const nir_search_expression search31 = {
        -:        -:10015:   { nir_search_value_expression, 0 },
        -:        -:10016:   false,
        -:        -:10017:   nir_op_umul_unorm_4x8,
        -:        -:10018:   { &search31_0.value, &search31_1.value },
        -:        -:10019:   NULL,
        -:        -:10020:};
        -:        -:10021:   
        -:        -:10022:static const nir_search_constant replace31 = {
        -:        -:10023:   { nir_search_value_constant, 0 },
        -:        -:10024:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:10025:};
        -:        -:10026:   
        -:        -:10027:static const nir_search_variable search32_0 = {
        -:        -:10028:   { nir_search_value_variable, 0 },
        -:        -:10029:   0, /* a */
        -:        -:10030:   false,
        -:        -:10031:   nir_type_invalid,
        -:        -:10032:   NULL,
        -:        -:10033:};
        -:        -:10034:
        -:        -:10035:static const nir_search_constant search32_1 = {
        -:        -:10036:   { nir_search_value_constant, 0 },
        -:        -:10037:   nir_type_int, { -0x1 /* -1 */ },
        -:        -:10038:};
        -:        -:10039:static const nir_search_expression search32 = {
        -:        -:10040:   { nir_search_value_expression, 0 },
        -:        -:10041:   false,
        -:        -:10042:   nir_op_umul_unorm_4x8,
        -:        -:10043:   { &search32_0.value, &search32_1.value },
        -:        -:10044:   NULL,
        -:        -:10045:};
        -:        -:10046:   
        -:        -:10047:static const nir_search_variable replace32 = {
        -:        -:10048:   { nir_search_value_variable, 0 },
        -:        -:10049:   0, /* a */
        -:        -:10050:   false,
        -:        -:10051:   nir_type_invalid,
        -:        -:10052:   NULL,
        -:        -:10053:};
        -:        -:10054:
        -:        -:10055:static const struct transform nir_opt_algebraic_umul_unorm_4x8_xforms[] = {
        -:        -:10056:   { &search31, &replace31.value, 0 },
        -:        -:10057:   { &search32, &replace32.value, 0 },
        -:        -:10058:};
        -:        -:10059:   
        -:        -:10060:static const nir_search_variable search233_0 = {
        -:        -:10061:   { nir_search_value_variable, 0 },
        -:        -:10062:   0, /* base */
        -:        -:10063:   false,
        -:        -:10064:   nir_type_invalid,
        -:        -:10065:   NULL,
        -:        -:10066:};
        -:        -:10067:
        -:        -:10068:static const nir_search_variable search233_1 = {
        -:        -:10069:   { nir_search_value_variable, 0 },
        -:        -:10070:   1, /* insert */
        -:        -:10071:   false,
        -:        -:10072:   nir_type_invalid,
        -:        -:10073:   NULL,
        -:        -:10074:};
        -:        -:10075:
        -:        -:10076:static const nir_search_variable search233_2 = {
        -:        -:10077:   { nir_search_value_variable, 0 },
        -:        -:10078:   2, /* offset */
        -:        -:10079:   false,
        -:        -:10080:   nir_type_invalid,
        -:        -:10081:   NULL,
        -:        -:10082:};
        -:        -:10083:
        -:        -:10084:static const nir_search_variable search233_3 = {
        -:        -:10085:   { nir_search_value_variable, 0 },
        -:        -:10086:   3, /* bits */
        -:        -:10087:   false,
        -:        -:10088:   nir_type_invalid,
        -:        -:10089:   NULL,
        -:        -:10090:};
        -:        -:10091:static const nir_search_expression search233 = {
        -:        -:10092:   { nir_search_value_expression, 0 },
        -:        -:10093:   false,
        -:        -:10094:   nir_op_bitfield_insert,
        -:        -:10095:   { &search233_0.value, &search233_1.value, &search233_2.value, &search233_3.value },
        -:        -:10096:   NULL,
        -:        -:10097:};
        -:        -:10098:   
        -:        -:10099:static const nir_search_constant replace233_0_0 = {
        -:        -:10100:   { nir_search_value_constant, 0 },
        -:        -:10101:   nir_type_int, { 0x1f /* 31 */ },
        -:        -:10102:};
        -:        -:10103:
        -:        -:10104:static const nir_search_variable replace233_0_1 = {
        -:        -:10105:   { nir_search_value_variable, 0 },
        -:        -:10106:   3, /* bits */
        -:        -:10107:   false,
        -:        -:10108:   nir_type_invalid,
        -:        -:10109:   NULL,
        -:        -:10110:};
        -:        -:10111:static const nir_search_expression replace233_0 = {
        -:        -:10112:   { nir_search_value_expression, 0 },
        -:        -:10113:   false,
        -:        -:10114:   nir_op_ilt,
        -:        -:10115:   { &replace233_0_0.value, &replace233_0_1.value },
        -:        -:10116:   NULL,
        -:        -:10117:};
        -:        -:10118:
        -:        -:10119:static const nir_search_variable replace233_1 = {
        -:        -:10120:   { nir_search_value_variable, 0 },
        -:        -:10121:   1, /* insert */
        -:        -:10122:   false,
        -:        -:10123:   nir_type_invalid,
        -:        -:10124:   NULL,
        -:        -:10125:};
        -:        -:10126:
        -:        -:10127:static const nir_search_variable replace233_2_0_0 = {
        -:        -:10128:   { nir_search_value_variable, 0 },
        -:        -:10129:   3, /* bits */
        -:        -:10130:   false,
        -:        -:10131:   nir_type_invalid,
        -:        -:10132:   NULL,
        -:        -:10133:};
        -:        -:10134:
        -:        -:10135:static const nir_search_variable replace233_2_0_1 = {
        -:        -:10136:   { nir_search_value_variable, 0 },
        -:        -:10137:   2, /* offset */
        -:        -:10138:   false,
        -:        -:10139:   nir_type_invalid,
        -:        -:10140:   NULL,
        -:        -:10141:};
        -:        -:10142:static const nir_search_expression replace233_2_0 = {
        -:        -:10143:   { nir_search_value_expression, 0 },
        -:        -:10144:   false,
        -:        -:10145:   nir_op_bfm,
        -:        -:10146:   { &replace233_2_0_0.value, &replace233_2_0_1.value },
        -:        -:10147:   NULL,
        -:        -:10148:};
        -:        -:10149:
        -:        -:10150:static const nir_search_variable replace233_2_1 = {
        -:        -:10151:   { nir_search_value_variable, 0 },
        -:        -:10152:   1, /* insert */
        -:        -:10153:   false,
        -:        -:10154:   nir_type_invalid,
        -:        -:10155:   NULL,
        -:        -:10156:};
        -:        -:10157:
        -:        -:10158:static const nir_search_variable replace233_2_2 = {
        -:        -:10159:   { nir_search_value_variable, 0 },
        -:        -:10160:   0, /* base */
        -:        -:10161:   false,
        -:        -:10162:   nir_type_invalid,
        -:        -:10163:   NULL,
        -:        -:10164:};
        -:        -:10165:static const nir_search_expression replace233_2 = {
        -:        -:10166:   { nir_search_value_expression, 0 },
        -:        -:10167:   false,
        -:        -:10168:   nir_op_bfi,
        -:        -:10169:   { &replace233_2_0.value, &replace233_2_1.value, &replace233_2_2.value },
        -:        -:10170:   NULL,
        -:        -:10171:};
        -:        -:10172:static const nir_search_expression replace233 = {
        -:        -:10173:   { nir_search_value_expression, 0 },
        -:        -:10174:   false,
        -:        -:10175:   nir_op_bcsel,
        -:        -:10176:   { &replace233_0.value, &replace233_1.value, &replace233_2.value },
        -:        -:10177:   NULL,
        -:        -:10178:};
        -:        -:10179:
        -:        -:10180:static const struct transform nir_opt_algebraic_bitfield_insert_xforms[] = {
        -:        -:10181:   { &search233, &replace233.value, 25 },
        -:        -:10182:};
        -:        -:10183:   
        -:        -:10184:static const nir_search_variable search119_0_0 = {
        -:        -:10185:   { nir_search_value_variable, 0 },
        -:        -:10186:   0, /* a */
        -:        -:10187:   false,
        -:        -:10188:   nir_type_invalid,
        -:        -:10189:   NULL,
        -:        -:10190:};
        -:        -:10191:static const nir_search_expression search119_0 = {
        -:        -:10192:   { nir_search_value_expression, 0 },
        -:        -:10193:   false,
        -:        -:10194:   nir_op_fneg,
        -:        -:10195:   { &search119_0_0.value },
        -:        -:10196:   NULL,
        -:        -:10197:};
        -:        -:10198:
        -:        -:10199:static const nir_search_variable search119_1 = {
        -:        -:10200:   { nir_search_value_variable, 0 },
        -:        -:10201:   0, /* a */
        -:        -:10202:   false,
        -:        -:10203:   nir_type_invalid,
        -:        -:10204:   NULL,
        -:        -:10205:};
        -:        -:10206:static const nir_search_expression search119 = {
        -:        -:10207:   { nir_search_value_expression, 0 },
        -:        -:10208:   false,
        -:        -:10209:   nir_op_feq,
        -:        -:10210:   { &search119_0.value, &search119_1.value },
        -:        -:10211:   NULL,
        -:        -:10212:};
        -:        -:10213:   
        -:        -:10214:static const nir_search_variable replace119_0 = {
        -:        -:10215:   { nir_search_value_variable, 0 },
        -:        -:10216:   0, /* a */
        -:        -:10217:   false,
        -:        -:10218:   nir_type_invalid,
        -:        -:10219:   NULL,
        -:        -:10220:};
        -:        -:10221:
        -:        -:10222:static const nir_search_constant replace119_1 = {
        -:        -:10223:   { nir_search_value_constant, 0 },
        -:        -:10224:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:10225:};
        -:        -:10226:static const nir_search_expression replace119 = {
        -:        -:10227:   { nir_search_value_expression, 0 },
        -:        -:10228:   false,
        -:        -:10229:   nir_op_feq,
        -:        -:10230:   { &replace119_0.value, &replace119_1.value },
        -:        -:10231:   NULL,
        -:        -:10232:};
        -:        -:10233:   
        -:        -:10234:static const nir_search_variable search261_0_0 = {
        -:        -:10235:   { nir_search_value_variable, 0 },
        -:        -:10236:   0, /* a */
        -:        -:10237:   false,
        -:        -:10238:   nir_type_invalid,
        -:        -:10239:   NULL,
        -:        -:10240:};
        -:        -:10241:
        -:        -:10242:static const nir_search_variable search261_0_1 = {
        -:        -:10243:   { nir_search_value_variable, 0 },
        -:        -:10244:   1, /* b */
        -:        -:10245:   true,
        -:        -:10246:   nir_type_invalid,
        -:        -:10247:   NULL,
        -:        -:10248:};
        -:        -:10249:
        -:        -:10250:static const nir_search_variable search261_0_2 = {
        -:        -:10251:   { nir_search_value_variable, 0 },
        -:        -:10252:   2, /* c */
        -:        -:10253:   true,
        -:        -:10254:   nir_type_invalid,
        -:        -:10255:   NULL,
        -:        -:10256:};
        -:        -:10257:static const nir_search_expression search261_0 = {
        -:        -:10258:   { nir_search_value_expression, 0 },
        -:        -:10259:   false,
        -:        -:10260:   nir_op_bcsel,
        -:        -:10261:   { &search261_0_0.value, &search261_0_1.value, &search261_0_2.value },
        -:        -:10262:   NULL,
        -:        -:10263:};
        -:        -:10264:
        -:        -:10265:static const nir_search_variable search261_1 = {
        -:        -:10266:   { nir_search_value_variable, 0 },
        -:        -:10267:   3, /* d */
        -:        -:10268:   true,
        -:        -:10269:   nir_type_invalid,
        -:        -:10270:   NULL,
        -:        -:10271:};
        -:        -:10272:static const nir_search_expression search261 = {
        -:        -:10273:   { nir_search_value_expression, 0 },
        -:        -:10274:   false,
        -:        -:10275:   nir_op_feq,
        -:        -:10276:   { &search261_0.value, &search261_1.value },
        -:        -:10277:   NULL,
        -:        -:10278:};
        -:        -:10279:   
        -:        -:10280:static const nir_search_variable replace261_0 = {
        -:        -:10281:   { nir_search_value_variable, 0 },
        -:        -:10282:   0, /* a */
        -:        -:10283:   false,
        -:        -:10284:   nir_type_invalid,
        -:        -:10285:   NULL,
        -:        -:10286:};
        -:        -:10287:
        -:        -:10288:static const nir_search_variable replace261_1_0 = {
        -:        -:10289:   { nir_search_value_variable, 0 },
        -:        -:10290:   1, /* b */
        -:        -:10291:   false,
        -:        -:10292:   nir_type_invalid,
        -:        -:10293:   NULL,
        -:        -:10294:};
        -:        -:10295:
        -:        -:10296:static const nir_search_variable replace261_1_1 = {
        -:        -:10297:   { nir_search_value_variable, 0 },
        -:        -:10298:   3, /* d */
        -:        -:10299:   false,
        -:        -:10300:   nir_type_invalid,
        -:        -:10301:   NULL,
        -:        -:10302:};
        -:        -:10303:static const nir_search_expression replace261_1 = {
        -:        -:10304:   { nir_search_value_expression, 0 },
        -:        -:10305:   false,
        -:        -:10306:   nir_op_feq,
        -:        -:10307:   { &replace261_1_0.value, &replace261_1_1.value },
        -:        -:10308:   NULL,
        -:        -:10309:};
        -:        -:10310:
        -:        -:10311:static const nir_search_variable replace261_2_0 = {
        -:        -:10312:   { nir_search_value_variable, 0 },
        -:        -:10313:   2, /* c */
        -:        -:10314:   false,
        -:        -:10315:   nir_type_invalid,
        -:        -:10316:   NULL,
        -:        -:10317:};
        -:        -:10318:
        -:        -:10319:static const nir_search_variable replace261_2_1 = {
        -:        -:10320:   { nir_search_value_variable, 0 },
        -:        -:10321:   3, /* d */
        -:        -:10322:   false,
        -:        -:10323:   nir_type_invalid,
        -:        -:10324:   NULL,
        -:        -:10325:};
        -:        -:10326:static const nir_search_expression replace261_2 = {
        -:        -:10327:   { nir_search_value_expression, 0 },
        -:        -:10328:   false,
        -:        -:10329:   nir_op_feq,
        -:        -:10330:   { &replace261_2_0.value, &replace261_2_1.value },
        -:        -:10331:   NULL,
        -:        -:10332:};
        -:        -:10333:static const nir_search_expression replace261 = {
        -:        -:10334:   { nir_search_value_expression, 0 },
        -:        -:10335:   false,
        -:        -:10336:   nir_op_bcsel,
        -:        -:10337:   { &replace261_0.value, &replace261_1.value, &replace261_2.value },
        -:        -:10338:   NULL,
        -:        -:10339:};
        -:        -:10340:   
        -:        -:10341:static const nir_search_variable search262_0 = {
        -:        -:10342:   { nir_search_value_variable, 0 },
        -:        -:10343:   0, /* d */
        -:        -:10344:   true,
        -:        -:10345:   nir_type_invalid,
        -:        -:10346:   NULL,
        -:        -:10347:};
        -:        -:10348:
        -:        -:10349:static const nir_search_variable search262_1_0 = {
        -:        -:10350:   { nir_search_value_variable, 0 },
        -:        -:10351:   1, /* a */
        -:        -:10352:   false,
        -:        -:10353:   nir_type_invalid,
        -:        -:10354:   NULL,
        -:        -:10355:};
        -:        -:10356:
        -:        -:10357:static const nir_search_variable search262_1_1 = {
        -:        -:10358:   { nir_search_value_variable, 0 },
        -:        -:10359:   2, /* b */
        -:        -:10360:   true,
        -:        -:10361:   nir_type_invalid,
        -:        -:10362:   NULL,
        -:        -:10363:};
        -:        -:10364:
        -:        -:10365:static const nir_search_variable search262_1_2 = {
        -:        -:10366:   { nir_search_value_variable, 0 },
        -:        -:10367:   3, /* c */
        -:        -:10368:   true,
        -:        -:10369:   nir_type_invalid,
        -:        -:10370:   NULL,
        -:        -:10371:};
        -:        -:10372:static const nir_search_expression search262_1 = {
        -:        -:10373:   { nir_search_value_expression, 0 },
        -:        -:10374:   false,
        -:        -:10375:   nir_op_bcsel,
        -:        -:10376:   { &search262_1_0.value, &search262_1_1.value, &search262_1_2.value },
        -:        -:10377:   NULL,
        -:        -:10378:};
        -:        -:10379:static const nir_search_expression search262 = {
        -:        -:10380:   { nir_search_value_expression, 0 },
        -:        -:10381:   false,
        -:        -:10382:   nir_op_feq,
        -:        -:10383:   { &search262_0.value, &search262_1.value },
        -:        -:10384:   NULL,
        -:        -:10385:};
        -:        -:10386:   
        -:        -:10387:static const nir_search_variable replace262_0 = {
        -:        -:10388:   { nir_search_value_variable, 0 },
        -:        -:10389:   1, /* a */
        -:        -:10390:   false,
        -:        -:10391:   nir_type_invalid,
        -:        -:10392:   NULL,
        -:        -:10393:};
        -:        -:10394:
        -:        -:10395:static const nir_search_variable replace262_1_0 = {
        -:        -:10396:   { nir_search_value_variable, 0 },
        -:        -:10397:   0, /* d */
        -:        -:10398:   false,
        -:        -:10399:   nir_type_invalid,
        -:        -:10400:   NULL,
        -:        -:10401:};
        -:        -:10402:
        -:        -:10403:static const nir_search_variable replace262_1_1 = {
        -:        -:10404:   { nir_search_value_variable, 0 },
        -:        -:10405:   2, /* b */
        -:        -:10406:   false,
        -:        -:10407:   nir_type_invalid,
        -:        -:10408:   NULL,
        -:        -:10409:};
        -:        -:10410:static const nir_search_expression replace262_1 = {
        -:        -:10411:   { nir_search_value_expression, 0 },
        -:        -:10412:   false,
        -:        -:10413:   nir_op_feq,
        -:        -:10414:   { &replace262_1_0.value, &replace262_1_1.value },
        -:        -:10415:   NULL,
        -:        -:10416:};
        -:        -:10417:
        -:        -:10418:static const nir_search_variable replace262_2_0 = {
        -:        -:10419:   { nir_search_value_variable, 0 },
        -:        -:10420:   0, /* d */
        -:        -:10421:   false,
        -:        -:10422:   nir_type_invalid,
        -:        -:10423:   NULL,
        -:        -:10424:};
        -:        -:10425:
        -:        -:10426:static const nir_search_variable replace262_2_1 = {
        -:        -:10427:   { nir_search_value_variable, 0 },
        -:        -:10428:   3, /* c */
        -:        -:10429:   false,
        -:        -:10430:   nir_type_invalid,
        -:        -:10431:   NULL,
        -:        -:10432:};
        -:        -:10433:static const nir_search_expression replace262_2 = {
        -:        -:10434:   { nir_search_value_expression, 0 },
        -:        -:10435:   false,
        -:        -:10436:   nir_op_feq,
        -:        -:10437:   { &replace262_2_0.value, &replace262_2_1.value },
        -:        -:10438:   NULL,
        -:        -:10439:};
        -:        -:10440:static const nir_search_expression replace262 = {
        -:        -:10441:   { nir_search_value_expression, 0 },
        -:        -:10442:   false,
        -:        -:10443:   nir_op_bcsel,
        -:        -:10444:   { &replace262_0.value, &replace262_1.value, &replace262_2.value },
        -:        -:10445:   NULL,
        -:        -:10446:};
        -:        -:10447:
        -:        -:10448:static const struct transform nir_opt_algebraic_feq_xforms[] = {
        -:        -:10449:   { &search119, &replace119.value, 0 },
        -:        -:10450:   { &search261, &replace261.value, 0 },
        -:        -:10451:   { &search262, &replace262.value, 0 },
        -:        -:10452:};
        -:        -:10453:   
        -:        -:10454:static const nir_search_variable search42_0 = {
        -:        -:10455:   { nir_search_value_variable, 0 },
        -:        -:10456:   0, /* a */
        -:        -:10457:   false,
        -:        -:10458:   nir_type_invalid,
        -:        -:10459:   NULL,
        -:        -:10460:};
        -:        -:10461:
        -:        -:10462:static const nir_search_variable search42_1 = {
        -:        -:10463:   { nir_search_value_variable, 0 },
        -:        -:10464:   1, /* b */
        -:        -:10465:   false,
        -:        -:10466:   nir_type_invalid,
        -:        -:10467:   NULL,
        -:        -:10468:};
        -:        -:10469:
        -:        -:10470:static const nir_search_constant search42_2 = {
        -:        -:10471:   { nir_search_value_constant, 0 },
        -:        -:10472:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:10473:};
        -:        -:10474:static const nir_search_expression search42 = {
        -:        -:10475:   { nir_search_value_expression, 0 },
        -:        -:10476:   true,
        -:        -:10477:   nir_op_flrp,
        -:        -:10478:   { &search42_0.value, &search42_1.value, &search42_2.value },
        -:        -:10479:   NULL,
        -:        -:10480:};
        -:        -:10481:   
        -:        -:10482:static const nir_search_variable replace42 = {
        -:        -:10483:   { nir_search_value_variable, 0 },
        -:        -:10484:   0, /* a */
        -:        -:10485:   false,
        -:        -:10486:   nir_type_invalid,
        -:        -:10487:   NULL,
        -:        -:10488:};
        -:        -:10489:   
        -:        -:10490:static const nir_search_variable search43_0 = {
        -:        -:10491:   { nir_search_value_variable, 0 },
        -:        -:10492:   0, /* a */
        -:        -:10493:   false,
        -:        -:10494:   nir_type_invalid,
        -:        -:10495:   NULL,
        -:        -:10496:};
        -:        -:10497:
        -:        -:10498:static const nir_search_variable search43_1 = {
        -:        -:10499:   { nir_search_value_variable, 0 },
        -:        -:10500:   1, /* b */
        -:        -:10501:   false,
        -:        -:10502:   nir_type_invalid,
        -:        -:10503:   NULL,
        -:        -:10504:};
        -:        -:10505:
        -:        -:10506:static const nir_search_constant search43_2 = {
        -:        -:10507:   { nir_search_value_constant, 0 },
        -:        -:10508:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:10509:};
        -:        -:10510:static const nir_search_expression search43 = {
        -:        -:10511:   { nir_search_value_expression, 0 },
        -:        -:10512:   true,
        -:        -:10513:   nir_op_flrp,
        -:        -:10514:   { &search43_0.value, &search43_1.value, &search43_2.value },
        -:        -:10515:   NULL,
        -:        -:10516:};
        -:        -:10517:   
        -:        -:10518:static const nir_search_variable replace43 = {
        -:        -:10519:   { nir_search_value_variable, 0 },
        -:        -:10520:   1, /* b */
        -:        -:10521:   false,
        -:        -:10522:   nir_type_invalid,
        -:        -:10523:   NULL,
        -:        -:10524:};
        -:        -:10525:   
        -:        -:10526:static const nir_search_variable search44_0 = {
        -:        -:10527:   { nir_search_value_variable, 0 },
        -:        -:10528:   0, /* a */
        -:        -:10529:   false,
        -:        -:10530:   nir_type_invalid,
        -:        -:10531:   NULL,
        -:        -:10532:};
        -:        -:10533:
        -:        -:10534:static const nir_search_variable search44_1 = {
        -:        -:10535:   { nir_search_value_variable, 0 },
        -:        -:10536:   0, /* a */
        -:        -:10537:   false,
        -:        -:10538:   nir_type_invalid,
        -:        -:10539:   NULL,
        -:        -:10540:};
        -:        -:10541:
        -:        -:10542:static const nir_search_variable search44_2 = {
        -:        -:10543:   { nir_search_value_variable, 0 },
        -:        -:10544:   1, /* b */
        -:        -:10545:   false,
        -:        -:10546:   nir_type_invalid,
        -:        -:10547:   NULL,
        -:        -:10548:};
        -:        -:10549:static const nir_search_expression search44 = {
        -:        -:10550:   { nir_search_value_expression, 0 },
        -:        -:10551:   true,
        -:        -:10552:   nir_op_flrp,
        -:        -:10553:   { &search44_0.value, &search44_1.value, &search44_2.value },
        -:        -:10554:   NULL,
        -:        -:10555:};
        -:        -:10556:   
        -:        -:10557:static const nir_search_variable replace44 = {
        -:        -:10558:   { nir_search_value_variable, 0 },
        -:        -:10559:   0, /* a */
        -:        -:10560:   false,
        -:        -:10561:   nir_type_invalid,
        -:        -:10562:   NULL,
        -:        -:10563:};
        -:        -:10564:   
        -:        -:10565:static const nir_search_constant search45_0 = {
        -:        -:10566:   { nir_search_value_constant, 0 },
        -:        -:10567:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:10568:};
        -:        -:10569:
        -:        -:10570:static const nir_search_variable search45_1 = {
        -:        -:10571:   { nir_search_value_variable, 0 },
        -:        -:10572:   0, /* a */
        -:        -:10573:   false,
        -:        -:10574:   nir_type_invalid,
        -:        -:10575:   NULL,
        -:        -:10576:};
        -:        -:10577:
        -:        -:10578:static const nir_search_variable search45_2 = {
        -:        -:10579:   { nir_search_value_variable, 0 },
        -:        -:10580:   1, /* b */
        -:        -:10581:   false,
        -:        -:10582:   nir_type_invalid,
        -:        -:10583:   NULL,
        -:        -:10584:};
        -:        -:10585:static const nir_search_expression search45 = {
        -:        -:10586:   { nir_search_value_expression, 0 },
        -:        -:10587:   true,
        -:        -:10588:   nir_op_flrp,
        -:        -:10589:   { &search45_0.value, &search45_1.value, &search45_2.value },
        -:        -:10590:   NULL,
        -:        -:10591:};
        -:        -:10592:   
        -:        -:10593:static const nir_search_variable replace45_0 = {
        -:        -:10594:   { nir_search_value_variable, 0 },
        -:        -:10595:   0, /* a */
        -:        -:10596:   false,
        -:        -:10597:   nir_type_invalid,
        -:        -:10598:   NULL,
        -:        -:10599:};
        -:        -:10600:
        -:        -:10601:static const nir_search_variable replace45_1 = {
        -:        -:10602:   { nir_search_value_variable, 0 },
        -:        -:10603:   1, /* b */
        -:        -:10604:   false,
        -:        -:10605:   nir_type_invalid,
        -:        -:10606:   NULL,
        -:        -:10607:};
        -:        -:10608:static const nir_search_expression replace45 = {
        -:        -:10609:   { nir_search_value_expression, 0 },
        -:        -:10610:   false,
        -:        -:10611:   nir_op_fmul,
        -:        -:10612:   { &replace45_0.value, &replace45_1.value },
        -:        -:10613:   NULL,
        -:        -:10614:};
        -:        -:10615:   
        -:        -:10616:static const nir_search_variable search46_0 = {
        -:        -:10617:   { nir_search_value_variable, 0 },
        -:        -:10618:   0, /* a */
        -:        -:10619:   false,
        -:        -:10620:   nir_type_invalid,
        -:        -:10621:   NULL,
        -:        -:10622:};
        -:        -:10623:
        -:        -:10624:static const nir_search_variable search46_1 = {
        -:        -:10625:   { nir_search_value_variable, 0 },
        -:        -:10626:   1, /* b */
        -:        -:10627:   false,
        -:        -:10628:   nir_type_invalid,
        -:        -:10629:   NULL,
        -:        -:10630:};
        -:        -:10631:
        -:        -:10632:static const nir_search_variable search46_2_0 = {
        -:        -:10633:   { nir_search_value_variable, 0 },
        -:        -:10634:   2, /* c */
        -:        -:10635:   false,
        -:        -:10636:   nir_type_invalid,
        -:        -:10637:   NULL,
        -:        -:10638:};
        -:        -:10639:static const nir_search_expression search46_2 = {
        -:        -:10640:   { nir_search_value_expression, 0 },
        -:        -:10641:   false,
        -:        -:10642:   nir_op_b2f,
        -:        -:10643:   { &search46_2_0.value },
        -:        -:10644:   NULL,
        -:        -:10645:};
        -:        -:10646:static const nir_search_expression search46 = {
        -:        -:10647:   { nir_search_value_expression, 0 },
        -:        -:10648:   true,
        -:        -:10649:   nir_op_flrp,
        -:        -:10650:   { &search46_0.value, &search46_1.value, &search46_2.value },
        -:        -:10651:   NULL,
        -:        -:10652:};
        -:        -:10653:   
        -:        -:10654:static const nir_search_variable replace46_0 = {
        -:        -:10655:   { nir_search_value_variable, 0 },
        -:        -:10656:   2, /* c */
        -:        -:10657:   false,
        -:        -:10658:   nir_type_invalid,
        -:        -:10659:   NULL,
        -:        -:10660:};
        -:        -:10661:
        -:        -:10662:static const nir_search_variable replace46_1 = {
        -:        -:10663:   { nir_search_value_variable, 0 },
        -:        -:10664:   1, /* b */
        -:        -:10665:   false,
        -:        -:10666:   nir_type_invalid,
        -:        -:10667:   NULL,
        -:        -:10668:};
        -:        -:10669:
        -:        -:10670:static const nir_search_variable replace46_2 = {
        -:        -:10671:   { nir_search_value_variable, 0 },
        -:        -:10672:   0, /* a */
        -:        -:10673:   false,
        -:        -:10674:   nir_type_invalid,
        -:        -:10675:   NULL,
        -:        -:10676:};
        -:        -:10677:static const nir_search_expression replace46 = {
        -:        -:10678:   { nir_search_value_expression, 0 },
        -:        -:10679:   false,
        -:        -:10680:   nir_op_bcsel,
        -:        -:10681:   { &replace46_0.value, &replace46_1.value, &replace46_2.value },
        -:        -:10682:   NULL,
        -:        -:10683:};
        -:        -:10684:   
        -:        -:10685:static const nir_search_variable search47_0 = {
        -:        -:10686:   { nir_search_value_variable, 0 },
        -:        -:10687:   0, /* a */
        -:        -:10688:   false,
        -:        -:10689:   nir_type_invalid,
        -:        -:10690:   NULL,
        -:        -:10691:};
        -:        -:10692:
        -:        -:10693:static const nir_search_constant search47_1 = {
        -:        -:10694:   { nir_search_value_constant, 0 },
        -:        -:10695:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:10696:};
        -:        -:10697:
        -:        -:10698:static const nir_search_variable search47_2 = {
        -:        -:10699:   { nir_search_value_variable, 0 },
        -:        -:10700:   1, /* c */
        -:        -:10701:   false,
        -:        -:10702:   nir_type_invalid,
        -:        -:10703:   NULL,
        -:        -:10704:};
        -:        -:10705:static const nir_search_expression search47 = {
        -:        -:10706:   { nir_search_value_expression, 0 },
        -:        -:10707:   true,
        -:        -:10708:   nir_op_flrp,
        -:        -:10709:   { &search47_0.value, &search47_1.value, &search47_2.value },
        -:        -:10710:   NULL,
        -:        -:10711:};
        -:        -:10712:   
        -:        -:10713:static const nir_search_variable replace47_0_0_0 = {
        -:        -:10714:   { nir_search_value_variable, 0 },
        -:        -:10715:   0, /* a */
        -:        -:10716:   false,
        -:        -:10717:   nir_type_invalid,
        -:        -:10718:   NULL,
        -:        -:10719:};
        -:        -:10720:static const nir_search_expression replace47_0_0 = {
        -:        -:10721:   { nir_search_value_expression, 0 },
        -:        -:10722:   false,
        -:        -:10723:   nir_op_fneg,
        -:        -:10724:   { &replace47_0_0_0.value },
        -:        -:10725:   NULL,
        -:        -:10726:};
        -:        -:10727:
        -:        -:10728:static const nir_search_variable replace47_0_1 = {
        -:        -:10729:   { nir_search_value_variable, 0 },
        -:        -:10730:   1, /* c */
        -:        -:10731:   false,
        -:        -:10732:   nir_type_invalid,
        -:        -:10733:   NULL,
        -:        -:10734:};
        -:        -:10735:static const nir_search_expression replace47_0 = {
        -:        -:10736:   { nir_search_value_expression, 0 },
        -:        -:10737:   false,
        -:        -:10738:   nir_op_fmul,
        -:        -:10739:   { &replace47_0_0.value, &replace47_0_1.value },
        -:        -:10740:   NULL,
        -:        -:10741:};
        -:        -:10742:
        -:        -:10743:static const nir_search_variable replace47_1 = {
        -:        -:10744:   { nir_search_value_variable, 0 },
        -:        -:10745:   0, /* a */
        -:        -:10746:   false,
        -:        -:10747:   nir_type_invalid,
        -:        -:10748:   NULL,
        -:        -:10749:};
        -:        -:10750:static const nir_search_expression replace47 = {
        -:        -:10751:   { nir_search_value_expression, 0 },
        -:        -:10752:   false,
        -:        -:10753:   nir_op_fadd,
        -:        -:10754:   { &replace47_0.value, &replace47_1.value },
        -:        -:10755:   NULL,
        -:        -:10756:};
        -:        -:10757:   
        -:        -:10758:static const nir_search_variable search48_0 = {
        -:        -:10759:   { nir_search_value_variable, 0 },
        -:        -:10760:   0, /* a */
        -:        -:10761:   false,
        -:        -:10762:   nir_type_invalid,
        -:        -:10763:   NULL,
        -:        -:10764:};
        -:        -:10765:
        -:        -:10766:static const nir_search_variable search48_1 = {
        -:        -:10767:   { nir_search_value_variable, 0 },
        -:        -:10768:   1, /* b */
        -:        -:10769:   false,
        -:        -:10770:   nir_type_invalid,
        -:        -:10771:   NULL,
        -:        -:10772:};
        -:        -:10773:
        -:        -:10774:static const nir_search_variable search48_2 = {
        -:        -:10775:   { nir_search_value_variable, 0 },
        -:        -:10776:   2, /* c */
        -:        -:10777:   false,
        -:        -:10778:   nir_type_invalid,
        -:        -:10779:   NULL,
        -:        -:10780:};
        -:        -:10781:static const nir_search_expression search48 = {
        -:        -:10782:   { nir_search_value_expression, 32 },
        -:        -:10783:   false,
        -:        -:10784:   nir_op_flrp,
        -:        -:10785:   { &search48_0.value, &search48_1.value, &search48_2.value },
        -:        -:10786:   NULL,
        -:        -:10787:};
        -:        -:10788:   
        -:        -:10789:static const nir_search_variable replace48_0_0 = {
        -:        -:10790:   { nir_search_value_variable, 0 },
        -:        -:10791:   2, /* c */
        -:        -:10792:   false,
        -:        -:10793:   nir_type_invalid,
        -:        -:10794:   NULL,
        -:        -:10795:};
        -:        -:10796:
        -:        -:10797:static const nir_search_variable replace48_0_1_0 = {
        -:        -:10798:   { nir_search_value_variable, 0 },
        -:        -:10799:   1, /* b */
        -:        -:10800:   false,
        -:        -:10801:   nir_type_invalid,
        -:        -:10802:   NULL,
        -:        -:10803:};
        -:        -:10804:
        -:        -:10805:static const nir_search_variable replace48_0_1_1 = {
        -:        -:10806:   { nir_search_value_variable, 0 },
        -:        -:10807:   0, /* a */
        -:        -:10808:   false,
        -:        -:10809:   nir_type_invalid,
        -:        -:10810:   NULL,
        -:        -:10811:};
        -:        -:10812:static const nir_search_expression replace48_0_1 = {
        -:        -:10813:   { nir_search_value_expression, 0 },
        -:        -:10814:   false,
        -:        -:10815:   nir_op_fsub,
        -:        -:10816:   { &replace48_0_1_0.value, &replace48_0_1_1.value },
        -:        -:10817:   NULL,
        -:        -:10818:};
        -:        -:10819:static const nir_search_expression replace48_0 = {
        -:        -:10820:   { nir_search_value_expression, 0 },
        -:        -:10821:   false,
        -:        -:10822:   nir_op_fmul,
        -:        -:10823:   { &replace48_0_0.value, &replace48_0_1.value },
        -:        -:10824:   NULL,
        -:        -:10825:};
        -:        -:10826:
        -:        -:10827:static const nir_search_variable replace48_1 = {
        -:        -:10828:   { nir_search_value_variable, 0 },
        -:        -:10829:   0, /* a */
        -:        -:10830:   false,
        -:        -:10831:   nir_type_invalid,
        -:        -:10832:   NULL,
        -:        -:10833:};
        -:        -:10834:static const nir_search_expression replace48 = {
        -:        -:10835:   { nir_search_value_expression, 0 },
        -:        -:10836:   false,
        -:        -:10837:   nir_op_fadd,
        -:        -:10838:   { &replace48_0.value, &replace48_1.value },
        -:        -:10839:   NULL,
        -:        -:10840:};
        -:        -:10841:   
        -:        -:10842:static const nir_search_variable search49_0 = {
        -:        -:10843:   { nir_search_value_variable, 0 },
        -:        -:10844:   0, /* a */
        -:        -:10845:   false,
        -:        -:10846:   nir_type_invalid,
        -:        -:10847:   NULL,
        -:        -:10848:};
        -:        -:10849:
        -:        -:10850:static const nir_search_variable search49_1 = {
        -:        -:10851:   { nir_search_value_variable, 0 },
        -:        -:10852:   1, /* b */
        -:        -:10853:   false,
        -:        -:10854:   nir_type_invalid,
        -:        -:10855:   NULL,
        -:        -:10856:};
        -:        -:10857:
        -:        -:10858:static const nir_search_variable search49_2 = {
        -:        -:10859:   { nir_search_value_variable, 0 },
        -:        -:10860:   2, /* c */
        -:        -:10861:   false,
        -:        -:10862:   nir_type_invalid,
        -:        -:10863:   NULL,
        -:        -:10864:};
        -:        -:10865:static const nir_search_expression search49 = {
        -:        -:10866:   { nir_search_value_expression, 64 },
        -:        -:10867:   false,
        -:        -:10868:   nir_op_flrp,
        -:        -:10869:   { &search49_0.value, &search49_1.value, &search49_2.value },
        -:        -:10870:   NULL,
        -:        -:10871:};
        -:        -:10872:   
        -:        -:10873:static const nir_search_variable replace49_0_0 = {
        -:        -:10874:   { nir_search_value_variable, 0 },
        -:        -:10875:   2, /* c */
        -:        -:10876:   false,
        -:        -:10877:   nir_type_invalid,
        -:        -:10878:   NULL,
        -:        -:10879:};
        -:        -:10880:
        -:        -:10881:static const nir_search_variable replace49_0_1_0 = {
        -:        -:10882:   { nir_search_value_variable, 0 },
        -:        -:10883:   1, /* b */
        -:        -:10884:   false,
        -:        -:10885:   nir_type_invalid,
        -:        -:10886:   NULL,
        -:        -:10887:};
        -:        -:10888:
        -:        -:10889:static const nir_search_variable replace49_0_1_1 = {
        -:        -:10890:   { nir_search_value_variable, 0 },
        -:        -:10891:   0, /* a */
        -:        -:10892:   false,
        -:        -:10893:   nir_type_invalid,
        -:        -:10894:   NULL,
        -:        -:10895:};
        -:        -:10896:static const nir_search_expression replace49_0_1 = {
        -:        -:10897:   { nir_search_value_expression, 0 },
        -:        -:10898:   false,
        -:        -:10899:   nir_op_fsub,
        -:        -:10900:   { &replace49_0_1_0.value, &replace49_0_1_1.value },
        -:        -:10901:   NULL,
        -:        -:10902:};
        -:        -:10903:static const nir_search_expression replace49_0 = {
        -:        -:10904:   { nir_search_value_expression, 0 },
        -:        -:10905:   false,
        -:        -:10906:   nir_op_fmul,
        -:        -:10907:   { &replace49_0_0.value, &replace49_0_1.value },
        -:        -:10908:   NULL,
        -:        -:10909:};
        -:        -:10910:
        -:        -:10911:static const nir_search_variable replace49_1 = {
        -:        -:10912:   { nir_search_value_variable, 0 },
        -:        -:10913:   0, /* a */
        -:        -:10914:   false,
        -:        -:10915:   nir_type_invalid,
        -:        -:10916:   NULL,
        -:        -:10917:};
        -:        -:10918:static const nir_search_expression replace49 = {
        -:        -:10919:   { nir_search_value_expression, 0 },
        -:        -:10920:   false,
        -:        -:10921:   nir_op_fadd,
        -:        -:10922:   { &replace49_0.value, &replace49_1.value },
        -:        -:10923:   NULL,
        -:        -:10924:};
        -:        -:10925:
        -:        -:10926:static const struct transform nir_opt_algebraic_flrp_xforms[] = {
        -:        -:10927:   { &search42, &replace42.value, 0 },
        -:        -:10928:   { &search43, &replace43.value, 0 },
        -:        -:10929:   { &search44, &replace44.value, 0 },
        -:        -:10930:   { &search45, &replace45.value, 0 },
        -:        -:10931:   { &search46, &replace46.value, 2 },
        -:        -:10932:   { &search47, &replace47.value, 0 },
        -:        -:10933:   { &search48, &replace48.value, 2 },
        -:        -:10934:   { &search49, &replace49.value, 3 },
        -:        -:10935:};
        -:        -:10936:   
        -:        -:10937:static const nir_search_variable search106_0_0 = {
        -:        -:10938:   { nir_search_value_variable, 0 },
        -:        -:10939:   0, /* a */
        -:        -:10940:   false,
        -:        -:10941:   nir_type_invalid,
        -:        -:10942:   NULL,
        -:        -:10943:};
        -:        -:10944:
        -:        -:10945:static const nir_search_variable search106_0_1 = {
        -:        -:10946:   { nir_search_value_variable, 0 },
        -:        -:10947:   1, /* b */
        -:        -:10948:   false,
        -:        -:10949:   nir_type_invalid,
        -:        -:10950:   NULL,
        -:        -:10951:};
        -:        -:10952:static const nir_search_expression search106_0 = {
        -:        -:10953:   { nir_search_value_expression, 0 },
        -:        -:10954:   false,
        -:        -:10955:   nir_op_flt,
        -:        -:10956:   { &search106_0_0.value, &search106_0_1.value },
        -:        -:10957:   NULL,
        -:        -:10958:};
        -:        -:10959:
        -:        -:10960:static const nir_search_variable search106_1_0 = {
        -:        -:10961:   { nir_search_value_variable, 0 },
        -:        -:10962:   0, /* a */
        -:        -:10963:   false,
        -:        -:10964:   nir_type_invalid,
        -:        -:10965:   NULL,
        -:        -:10966:};
        -:        -:10967:
        -:        -:10968:static const nir_search_variable search106_1_1 = {
        -:        -:10969:   { nir_search_value_variable, 0 },
        -:        -:10970:   2, /* c */
        -:        -:10971:   false,
        -:        -:10972:   nir_type_invalid,
        -:        -:10973:   NULL,
        -:        -:10974:};
        -:        -:10975:static const nir_search_expression search106_1 = {
        -:        -:10976:   { nir_search_value_expression, 0 },
        -:        -:10977:   false,
        -:        -:10978:   nir_op_flt,
        -:        -:10979:   { &search106_1_0.value, &search106_1_1.value },
        -:        -:10980:   NULL,
        -:        -:10981:};
        -:        -:10982:static const nir_search_expression search106 = {
        -:        -:10983:   { nir_search_value_expression, 0 },
        -:        -:10984:   true,
        -:        -:10985:   nir_op_ior,
        -:        -:10986:   { &search106_0.value, &search106_1.value },
        -:        -:10987:   NULL,
        -:        -:10988:};
        -:        -:10989:   
        -:        -:10990:static const nir_search_variable replace106_0 = {
        -:        -:10991:   { nir_search_value_variable, 0 },
        -:        -:10992:   0, /* a */
        -:        -:10993:   false,
        -:        -:10994:   nir_type_invalid,
        -:        -:10995:   NULL,
        -:        -:10996:};
        -:        -:10997:
        -:        -:10998:static const nir_search_variable replace106_1_0 = {
        -:        -:10999:   { nir_search_value_variable, 0 },
        -:        -:11000:   1, /* b */
        -:        -:11001:   false,
        -:        -:11002:   nir_type_invalid,
        -:        -:11003:   NULL,
        -:        -:11004:};
        -:        -:11005:
        -:        -:11006:static const nir_search_variable replace106_1_1 = {
        -:        -:11007:   { nir_search_value_variable, 0 },
        -:        -:11008:   2, /* c */
        -:        -:11009:   false,
        -:        -:11010:   nir_type_invalid,
        -:        -:11011:   NULL,
        -:        -:11012:};
        -:        -:11013:static const nir_search_expression replace106_1 = {
        -:        -:11014:   { nir_search_value_expression, 0 },
        -:        -:11015:   false,
        -:        -:11016:   nir_op_fmax,
        -:        -:11017:   { &replace106_1_0.value, &replace106_1_1.value },
        -:        -:11018:   NULL,
        -:        -:11019:};
        -:        -:11020:static const nir_search_expression replace106 = {
        -:        -:11021:   { nir_search_value_expression, 0 },
        -:        -:11022:   false,
        -:        -:11023:   nir_op_flt,
        -:        -:11024:   { &replace106_0.value, &replace106_1.value },
        -:        -:11025:   NULL,
        -:        -:11026:};
        -:        -:11027:   
        -:        -:11028:static const nir_search_variable search107_0_0 = {
        -:        -:11029:   { nir_search_value_variable, 0 },
        -:        -:11030:   0, /* a */
        -:        -:11031:   false,
        -:        -:11032:   nir_type_invalid,
        -:        -:11033:   NULL,
        -:        -:11034:};
        -:        -:11035:
        -:        -:11036:static const nir_search_variable search107_0_1 = {
        -:        -:11037:   { nir_search_value_variable, 0 },
        -:        -:11038:   1, /* c */
        -:        -:11039:   false,
        -:        -:11040:   nir_type_invalid,
        -:        -:11041:   NULL,
        -:        -:11042:};
        -:        -:11043:static const nir_search_expression search107_0 = {
        -:        -:11044:   { nir_search_value_expression, 0 },
        -:        -:11045:   false,
        -:        -:11046:   nir_op_flt,
        -:        -:11047:   { &search107_0_0.value, &search107_0_1.value },
        -:        -:11048:   NULL,
        -:        -:11049:};
        -:        -:11050:
        -:        -:11051:static const nir_search_variable search107_1_0 = {
        -:        -:11052:   { nir_search_value_variable, 0 },
        -:        -:11053:   2, /* b */
        -:        -:11054:   false,
        -:        -:11055:   nir_type_invalid,
        -:        -:11056:   NULL,
        -:        -:11057:};
        -:        -:11058:
        -:        -:11059:static const nir_search_variable search107_1_1 = {
        -:        -:11060:   { nir_search_value_variable, 0 },
        -:        -:11061:   1, /* c */
        -:        -:11062:   false,
        -:        -:11063:   nir_type_invalid,
        -:        -:11064:   NULL,
        -:        -:11065:};
        -:        -:11066:static const nir_search_expression search107_1 = {
        -:        -:11067:   { nir_search_value_expression, 0 },
        -:        -:11068:   false,
        -:        -:11069:   nir_op_flt,
        -:        -:11070:   { &search107_1_0.value, &search107_1_1.value },
        -:        -:11071:   NULL,
        -:        -:11072:};
        -:        -:11073:static const nir_search_expression search107 = {
        -:        -:11074:   { nir_search_value_expression, 0 },
        -:        -:11075:   true,
        -:        -:11076:   nir_op_ior,
        -:        -:11077:   { &search107_0.value, &search107_1.value },
        -:        -:11078:   NULL,
        -:        -:11079:};
        -:        -:11080:   
        -:        -:11081:static const nir_search_variable replace107_0_0 = {
        -:        -:11082:   { nir_search_value_variable, 0 },
        -:        -:11083:   0, /* a */
        -:        -:11084:   false,
        -:        -:11085:   nir_type_invalid,
        -:        -:11086:   NULL,
        -:        -:11087:};
        -:        -:11088:
        -:        -:11089:static const nir_search_variable replace107_0_1 = {
        -:        -:11090:   { nir_search_value_variable, 0 },
        -:        -:11091:   2, /* b */
        -:        -:11092:   false,
        -:        -:11093:   nir_type_invalid,
        -:        -:11094:   NULL,
        -:        -:11095:};
        -:        -:11096:static const nir_search_expression replace107_0 = {
        -:        -:11097:   { nir_search_value_expression, 0 },
        -:        -:11098:   false,
        -:        -:11099:   nir_op_fmin,
        -:        -:11100:   { &replace107_0_0.value, &replace107_0_1.value },
        -:        -:11101:   NULL,
        -:        -:11102:};
        -:        -:11103:
        -:        -:11104:static const nir_search_variable replace107_1 = {
        -:        -:11105:   { nir_search_value_variable, 0 },
        -:        -:11106:   1, /* c */
        -:        -:11107:   false,
        -:        -:11108:   nir_type_invalid,
        -:        -:11109:   NULL,
        -:        -:11110:};
        -:        -:11111:static const nir_search_expression replace107 = {
        -:        -:11112:   { nir_search_value_expression, 0 },
        -:        -:11113:   false,
        -:        -:11114:   nir_op_flt,
        -:        -:11115:   { &replace107_0.value, &replace107_1.value },
        -:        -:11116:   NULL,
        -:        -:11117:};
        -:        -:11118:   
        -:        -:11119:static const nir_search_variable search108_0_0 = {
        -:        -:11120:   { nir_search_value_variable, 0 },
        -:        -:11121:   0, /* a */
        -:        -:11122:   false,
        -:        -:11123:   nir_type_invalid,
        -:        -:11124:   NULL,
        -:        -:11125:};
        -:        -:11126:
        -:        -:11127:static const nir_search_variable search108_0_1 = {
        -:        -:11128:   { nir_search_value_variable, 0 },
        -:        -:11129:   1, /* b */
        -:        -:11130:   false,
        -:        -:11131:   nir_type_invalid,
        -:        -:11132:   NULL,
        -:        -:11133:};
        -:        -:11134:static const nir_search_expression search108_0 = {
        -:        -:11135:   { nir_search_value_expression, 0 },
        -:        -:11136:   false,
        -:        -:11137:   nir_op_fge,
        -:        -:11138:   { &search108_0_0.value, &search108_0_1.value },
        -:        -:11139:   NULL,
        -:        -:11140:};
        -:        -:11141:
        -:        -:11142:static const nir_search_variable search108_1_0 = {
        -:        -:11143:   { nir_search_value_variable, 0 },
        -:        -:11144:   0, /* a */
        -:        -:11145:   false,
        -:        -:11146:   nir_type_invalid,
        -:        -:11147:   NULL,
        -:        -:11148:};
        -:        -:11149:
        -:        -:11150:static const nir_search_variable search108_1_1 = {
        -:        -:11151:   { nir_search_value_variable, 0 },
        -:        -:11152:   2, /* c */
        -:        -:11153:   false,
        -:        -:11154:   nir_type_invalid,
        -:        -:11155:   NULL,
        -:        -:11156:};
        -:        -:11157:static const nir_search_expression search108_1 = {
        -:        -:11158:   { nir_search_value_expression, 0 },
        -:        -:11159:   false,
        -:        -:11160:   nir_op_fge,
        -:        -:11161:   { &search108_1_0.value, &search108_1_1.value },
        -:        -:11162:   NULL,
        -:        -:11163:};
        -:        -:11164:static const nir_search_expression search108 = {
        -:        -:11165:   { nir_search_value_expression, 0 },
        -:        -:11166:   true,
        -:        -:11167:   nir_op_ior,
        -:        -:11168:   { &search108_0.value, &search108_1.value },
        -:        -:11169:   NULL,
        -:        -:11170:};
        -:        -:11171:   
        -:        -:11172:static const nir_search_variable replace108_0 = {
        -:        -:11173:   { nir_search_value_variable, 0 },
        -:        -:11174:   0, /* a */
        -:        -:11175:   false,
        -:        -:11176:   nir_type_invalid,
        -:        -:11177:   NULL,
        -:        -:11178:};
        -:        -:11179:
        -:        -:11180:static const nir_search_variable replace108_1_0 = {
        -:        -:11181:   { nir_search_value_variable, 0 },
        -:        -:11182:   1, /* b */
        -:        -:11183:   false,
        -:        -:11184:   nir_type_invalid,
        -:        -:11185:   NULL,
        -:        -:11186:};
        -:        -:11187:
        -:        -:11188:static const nir_search_variable replace108_1_1 = {
        -:        -:11189:   { nir_search_value_variable, 0 },
        -:        -:11190:   2, /* c */
        -:        -:11191:   false,
        -:        -:11192:   nir_type_invalid,
        -:        -:11193:   NULL,
        -:        -:11194:};
        -:        -:11195:static const nir_search_expression replace108_1 = {
        -:        -:11196:   { nir_search_value_expression, 0 },
        -:        -:11197:   false,
        -:        -:11198:   nir_op_fmin,
        -:        -:11199:   { &replace108_1_0.value, &replace108_1_1.value },
        -:        -:11200:   NULL,
        -:        -:11201:};
        -:        -:11202:static const nir_search_expression replace108 = {
        -:        -:11203:   { nir_search_value_expression, 0 },
        -:        -:11204:   false,
        -:        -:11205:   nir_op_fge,
        -:        -:11206:   { &replace108_0.value, &replace108_1.value },
        -:        -:11207:   NULL,
        -:        -:11208:};
        -:        -:11209:   
        -:        -:11210:static const nir_search_variable search109_0_0 = {
        -:        -:11211:   { nir_search_value_variable, 0 },
        -:        -:11212:   0, /* a */
        -:        -:11213:   false,
        -:        -:11214:   nir_type_invalid,
        -:        -:11215:   NULL,
        -:        -:11216:};
        -:        -:11217:
        -:        -:11218:static const nir_search_variable search109_0_1 = {
        -:        -:11219:   { nir_search_value_variable, 0 },
        -:        -:11220:   1, /* c */
        -:        -:11221:   false,
        -:        -:11222:   nir_type_invalid,
        -:        -:11223:   NULL,
        -:        -:11224:};
        -:        -:11225:static const nir_search_expression search109_0 = {
        -:        -:11226:   { nir_search_value_expression, 0 },
        -:        -:11227:   false,
        -:        -:11228:   nir_op_fge,
        -:        -:11229:   { &search109_0_0.value, &search109_0_1.value },
        -:        -:11230:   NULL,
        -:        -:11231:};
        -:        -:11232:
        -:        -:11233:static const nir_search_variable search109_1_0 = {
        -:        -:11234:   { nir_search_value_variable, 0 },
        -:        -:11235:   2, /* b */
        -:        -:11236:   false,
        -:        -:11237:   nir_type_invalid,
        -:        -:11238:   NULL,
        -:        -:11239:};
        -:        -:11240:
        -:        -:11241:static const nir_search_variable search109_1_1 = {
        -:        -:11242:   { nir_search_value_variable, 0 },
        -:        -:11243:   1, /* c */
        -:        -:11244:   false,
        -:        -:11245:   nir_type_invalid,
        -:        -:11246:   NULL,
        -:        -:11247:};
        -:        -:11248:static const nir_search_expression search109_1 = {
        -:        -:11249:   { nir_search_value_expression, 0 },
        -:        -:11250:   false,
        -:        -:11251:   nir_op_fge,
        -:        -:11252:   { &search109_1_0.value, &search109_1_1.value },
        -:        -:11253:   NULL,
        -:        -:11254:};
        -:        -:11255:static const nir_search_expression search109 = {
        -:        -:11256:   { nir_search_value_expression, 0 },
        -:        -:11257:   true,
        -:        -:11258:   nir_op_ior,
        -:        -:11259:   { &search109_0.value, &search109_1.value },
        -:        -:11260:   NULL,
        -:        -:11261:};
        -:        -:11262:   
        -:        -:11263:static const nir_search_variable replace109_0_0 = {
        -:        -:11264:   { nir_search_value_variable, 0 },
        -:        -:11265:   0, /* a */
        -:        -:11266:   false,
        -:        -:11267:   nir_type_invalid,
        -:        -:11268:   NULL,
        -:        -:11269:};
        -:        -:11270:
        -:        -:11271:static const nir_search_variable replace109_0_1 = {
        -:        -:11272:   { nir_search_value_variable, 0 },
        -:        -:11273:   2, /* b */
        -:        -:11274:   false,
        -:        -:11275:   nir_type_invalid,
        -:        -:11276:   NULL,
        -:        -:11277:};
        -:        -:11278:static const nir_search_expression replace109_0 = {
        -:        -:11279:   { nir_search_value_expression, 0 },
        -:        -:11280:   false,
        -:        -:11281:   nir_op_fmax,
        -:        -:11282:   { &replace109_0_0.value, &replace109_0_1.value },
        -:        -:11283:   NULL,
        -:        -:11284:};
        -:        -:11285:
        -:        -:11286:static const nir_search_variable replace109_1 = {
        -:        -:11287:   { nir_search_value_variable, 0 },
        -:        -:11288:   1, /* c */
        -:        -:11289:   false,
        -:        -:11290:   nir_type_invalid,
        -:        -:11291:   NULL,
        -:        -:11292:};
        -:        -:11293:static const nir_search_expression replace109 = {
        -:        -:11294:   { nir_search_value_expression, 0 },
        -:        -:11295:   false,
        -:        -:11296:   nir_op_fge,
        -:        -:11297:   { &replace109_0.value, &replace109_1.value },
        -:        -:11298:   NULL,
        -:        -:11299:};
        -:        -:11300:   
        -:        -:11301:static const nir_search_variable search137_0 = {
        -:        -:11302:   { nir_search_value_variable, 0 },
        -:        -:11303:   0, /* a */
        -:        -:11304:   false,
        -:        -:11305:   nir_type_invalid,
        -:        -:11306:   NULL,
        -:        -:11307:};
        -:        -:11308:
        -:        -:11309:static const nir_search_variable search137_1 = {
        -:        -:11310:   { nir_search_value_variable, 0 },
        -:        -:11311:   0, /* a */
        -:        -:11312:   false,
        -:        -:11313:   nir_type_invalid,
        -:        -:11314:   NULL,
        -:        -:11315:};
        -:        -:11316:static const nir_search_expression search137 = {
        -:        -:11317:   { nir_search_value_expression, 0 },
        -:        -:11318:   false,
        -:        -:11319:   nir_op_ior,
        -:        -:11320:   { &search137_0.value, &search137_1.value },
        -:        -:11321:   NULL,
        -:        -:11322:};
        -:        -:11323:   
        -:        -:11324:static const nir_search_variable replace137 = {
        -:        -:11325:   { nir_search_value_variable, 0 },
        -:        -:11326:   0, /* a */
        -:        -:11327:   false,
        -:        -:11328:   nir_type_invalid,
        -:        -:11329:   NULL,
        -:        -:11330:};
        -:        -:11331:   
        -:        -:11332:static const nir_search_variable search138_0 = {
        -:        -:11333:   { nir_search_value_variable, 0 },
        -:        -:11334:   0, /* a */
        -:        -:11335:   false,
        -:        -:11336:   nir_type_invalid,
        -:        -:11337:   NULL,
        -:        -:11338:};
        -:        -:11339:
        -:        -:11340:static const nir_search_constant search138_1 = {
        -:        -:11341:   { nir_search_value_constant, 0 },
        -:        -:11342:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:11343:};
        -:        -:11344:static const nir_search_expression search138 = {
        -:        -:11345:   { nir_search_value_expression, 0 },
        -:        -:11346:   false,
        -:        -:11347:   nir_op_ior,
        -:        -:11348:   { &search138_0.value, &search138_1.value },
        -:        -:11349:   NULL,
        -:        -:11350:};
        -:        -:11351:   
        -:        -:11352:static const nir_search_variable replace138 = {
        -:        -:11353:   { nir_search_value_variable, 0 },
        -:        -:11354:   0, /* a */
        -:        -:11355:   false,
        -:        -:11356:   nir_type_invalid,
        -:        -:11357:   NULL,
        -:        -:11358:};
        -:        -:11359:   
        -:        -:11360:static const nir_search_variable search139_0 = {
        -:        -:11361:   { nir_search_value_variable, 0 },
        -:        -:11362:   0, /* a */
        -:        -:11363:   false,
        -:        -:11364:   nir_type_invalid,
        -:        -:11365:   NULL,
        -:        -:11366:};
        -:        -:11367:
        -:        -:11368:static const nir_search_constant search139_1 = {
        -:        -:11369:   { nir_search_value_constant, 32 },
        -:        -:11370:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -:11371:};
        -:        -:11372:static const nir_search_expression search139 = {
        -:        -:11373:   { nir_search_value_expression, 0 },
        -:        -:11374:   false,
        -:        -:11375:   nir_op_ior,
        -:        -:11376:   { &search139_0.value, &search139_1.value },
        -:        -:11377:   NULL,
        -:        -:11378:};
        -:        -:11379:   
        -:        -:11380:static const nir_search_constant replace139 = {
        -:        -:11381:   { nir_search_value_constant, 32 },
        -:        -:11382:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -:11383:};
        -:        -:11384:   
        -:        -:11385:static const nir_search_variable search145_0_0 = {
        -:        -:11386:   { nir_search_value_variable, 0 },
        -:        -:11387:   0, /* a */
        -:        -:11388:   false,
        -:        -:11389:   nir_type_invalid,
        -:        -:11390:   NULL,
        -:        -:11391:};
        -:        -:11392:static const nir_search_expression search145_0 = {
        -:        -:11393:   { nir_search_value_expression, 0 },
        -:        -:11394:   false,
        -:        -:11395:   nir_op_inot,
        -:        -:11396:   { &search145_0_0.value },
        -:        -:11397:   NULL,
        -:        -:11398:};
        -:        -:11399:
        -:        -:11400:static const nir_search_variable search145_1_0 = {
        -:        -:11401:   { nir_search_value_variable, 0 },
        -:        -:11402:   1, /* b */
        -:        -:11403:   false,
        -:        -:11404:   nir_type_invalid,
        -:        -:11405:   NULL,
        -:        -:11406:};
        -:        -:11407:static const nir_search_expression search145_1 = {
        -:        -:11408:   { nir_search_value_expression, 0 },
        -:        -:11409:   false,
        -:        -:11410:   nir_op_inot,
        -:        -:11411:   { &search145_1_0.value },
        -:        -:11412:   NULL,
        -:        -:11413:};
        -:        -:11414:static const nir_search_expression search145 = {
        -:        -:11415:   { nir_search_value_expression, 0 },
        -:        -:11416:   false,
        -:        -:11417:   nir_op_ior,
        -:        -:11418:   { &search145_0.value, &search145_1.value },
        -:        -:11419:   NULL,
        -:        -:11420:};
        -:        -:11421:   
        -:        -:11422:static const nir_search_variable replace145_0_0 = {
        -:        -:11423:   { nir_search_value_variable, 0 },
        -:        -:11424:   0, /* a */
        -:        -:11425:   false,
        -:        -:11426:   nir_type_invalid,
        -:        -:11427:   NULL,
        -:        -:11428:};
        -:        -:11429:
        -:        -:11430:static const nir_search_variable replace145_0_1 = {
        -:        -:11431:   { nir_search_value_variable, 0 },
        -:        -:11432:   1, /* b */
        -:        -:11433:   false,
        -:        -:11434:   nir_type_invalid,
        -:        -:11435:   NULL,
        -:        -:11436:};
        -:        -:11437:static const nir_search_expression replace145_0 = {
        -:        -:11438:   { nir_search_value_expression, 0 },
        -:        -:11439:   false,
        -:        -:11440:   nir_op_iand,
        -:        -:11441:   { &replace145_0_0.value, &replace145_0_1.value },
        -:        -:11442:   NULL,
        -:        -:11443:};
        -:        -:11444:static const nir_search_expression replace145 = {
        -:        -:11445:   { nir_search_value_expression, 0 },
        -:        -:11446:   false,
        -:        -:11447:   nir_op_inot,
        -:        -:11448:   { &replace145_0.value },
        -:        -:11449:   NULL,
        -:        -:11450:};
        -:        -:11451:   
        -:        -:11452:static const nir_search_variable search250_0_0_0_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11453:   { nir_search_value_variable, 32 },
        -:        -:11454:   0, /* x */
        -:        -:11455:   false,
        -:        -:11456:   nir_type_invalid,
        -:        -:11457:   NULL,
        -:        -:11458:};
        -:        -:11459:
        -:        -:11460:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11461:   { nir_search_value_constant, 0 },
        -:        -:11462:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11463:};
        -:        -:11464:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11465:   { nir_search_value_expression, 0 },
        -:        -:11466:   false,
        -:        -:11467:   nir_op_ishl,
        -:        -:11468:   { &search250_0_0_0_0_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11469:   NULL,
        -:        -:11470:};
        -:        -:11471:
        -:        -:11472:static const nir_search_variable search250_0_0_0_0_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:11473:   { nir_search_value_variable, 32 },
        -:        -:11474:   0, /* x */
        -:        -:11475:   false,
        -:        -:11476:   nir_type_invalid,
        -:        -:11477:   NULL,
        -:        -:11478:};
        -:        -:11479:
        -:        -:11480:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:11481:   { nir_search_value_constant, 0 },
        -:        -:11482:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11483:};
        -:        -:11484:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11485:   { nir_search_value_expression, 0 },
        -:        -:11486:   false,
        -:        -:11487:   nir_op_ushr,
        -:        -:11488:   { &search250_0_0_0_0_0_0_0_0_0_0_0_0_1_0.value, &search250_0_0_0_0_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:11489:   NULL,
        -:        -:11490:};
        -:        -:11491:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11492:   { nir_search_value_expression, 0 },
        -:        -:11493:   false,
        -:        -:11494:   nir_op_ior,
        -:        -:11495:   { &search250_0_0_0_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11496:   NULL,
        -:        -:11497:};
        -:        -:11498:
        -:        -:11499:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11500:   { nir_search_value_constant, 0 },
        -:        -:11501:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:11502:};
        -:        -:11503:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11504:   { nir_search_value_expression, 0 },
        -:        -:11505:   false,
        -:        -:11506:   nir_op_iand,
        -:        -:11507:   { &search250_0_0_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11508:   NULL,
        -:        -:11509:};
        -:        -:11510:
        -:        -:11511:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11512:   { nir_search_value_constant, 0 },
        -:        -:11513:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11514:};
        -:        -:11515:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11516:   { nir_search_value_expression, 0 },
        -:        -:11517:   false,
        -:        -:11518:   nir_op_ishl,
        -:        -:11519:   { &search250_0_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11520:   NULL,
        -:        -:11521:};
        -:        -:11522:
        -:        -:11523:static const nir_search_variable search250_0_0_0_0_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:11524:   { nir_search_value_variable, 32 },
        -:        -:11525:   0, /* x */
        -:        -:11526:   false,
        -:        -:11527:   nir_type_invalid,
        -:        -:11528:   NULL,
        -:        -:11529:};
        -:        -:11530:
        -:        -:11531:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:11532:   { nir_search_value_constant, 0 },
        -:        -:11533:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11534:};
        -:        -:11535:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_1_0_0_0 = {
        -:        -:11536:   { nir_search_value_expression, 0 },
        -:        -:11537:   false,
        -:        -:11538:   nir_op_ishl,
        -:        -:11539:   { &search250_0_0_0_0_0_0_0_0_0_1_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:11540:   NULL,
        -:        -:11541:};
        -:        -:11542:
        -:        -:11543:static const nir_search_variable search250_0_0_0_0_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:11544:   { nir_search_value_variable, 32 },
        -:        -:11545:   0, /* x */
        -:        -:11546:   false,
        -:        -:11547:   nir_type_invalid,
        -:        -:11548:   NULL,
        -:        -:11549:};
        -:        -:11550:
        -:        -:11551:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:11552:   { nir_search_value_constant, 0 },
        -:        -:11553:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11554:};
        -:        -:11555:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_1_0_0_1 = {
        -:        -:11556:   { nir_search_value_expression, 0 },
        -:        -:11557:   false,
        -:        -:11558:   nir_op_ushr,
        -:        -:11559:   { &search250_0_0_0_0_0_0_0_0_0_1_0_0_1_0.value, &search250_0_0_0_0_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:11560:   NULL,
        -:        -:11561:};
        -:        -:11562:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_1_0_0 = {
        -:        -:11563:   { nir_search_value_expression, 0 },
        -:        -:11564:   false,
        -:        -:11565:   nir_op_ior,
        -:        -:11566:   { &search250_0_0_0_0_0_0_0_0_0_1_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_1_0_0_1.value },
        -:        -:11567:   NULL,
        -:        -:11568:};
        -:        -:11569:
        -:        -:11570:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_1_0_1 = {
        -:        -:11571:   { nir_search_value_constant, 0 },
        -:        -:11572:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:11573:};
        -:        -:11574:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:11575:   { nir_search_value_expression, 0 },
        -:        -:11576:   false,
        -:        -:11577:   nir_op_iand,
        -:        -:11578:   { &search250_0_0_0_0_0_0_0_0_0_1_0_0.value, &search250_0_0_0_0_0_0_0_0_0_1_0_1.value },
        -:        -:11579:   NULL,
        -:        -:11580:};
        -:        -:11581:
        -:        -:11582:static const nir_search_constant search250_0_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:11583:   { nir_search_value_constant, 0 },
        -:        -:11584:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11585:};
        -:        -:11586:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11587:   { nir_search_value_expression, 0 },
        -:        -:11588:   false,
        -:        -:11589:   nir_op_ushr,
        -:        -:11590:   { &search250_0_0_0_0_0_0_0_0_0_1_0.value, &search250_0_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:11591:   NULL,
        -:        -:11592:};
        -:        -:11593:static const nir_search_expression search250_0_0_0_0_0_0_0_0_0 = {
        -:        -:11594:   { nir_search_value_expression, 0 },
        -:        -:11595:   false,
        -:        -:11596:   nir_op_ior,
        -:        -:11597:   { &search250_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11598:   NULL,
        -:        -:11599:};
        -:        -:11600:
        -:        -:11601:static const nir_search_constant search250_0_0_0_0_0_0_0_0_1 = {
        -:        -:11602:   { nir_search_value_constant, 0 },
        -:        -:11603:   nir_type_int, { 0xf0f0f0f /* 252645135 */ },
        -:        -:11604:};
        -:        -:11605:static const nir_search_expression search250_0_0_0_0_0_0_0_0 = {
        -:        -:11606:   { nir_search_value_expression, 0 },
        -:        -:11607:   false,
        -:        -:11608:   nir_op_iand,
        -:        -:11609:   { &search250_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_0_1.value },
        -:        -:11610:   NULL,
        -:        -:11611:};
        -:        -:11612:
        -:        -:11613:static const nir_search_constant search250_0_0_0_0_0_0_0_1 = {
        -:        -:11614:   { nir_search_value_constant, 0 },
        -:        -:11615:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:11616:};
        -:        -:11617:static const nir_search_expression search250_0_0_0_0_0_0_0 = {
        -:        -:11618:   { nir_search_value_expression, 0 },
        -:        -:11619:   false,
        -:        -:11620:   nir_op_ishl,
        -:        -:11621:   { &search250_0_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_0_1.value },
        -:        -:11622:   NULL,
        -:        -:11623:};
        -:        -:11624:
        -:        -:11625:static const nir_search_variable search250_0_0_0_0_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:11626:   { nir_search_value_variable, 32 },
        -:        -:11627:   0, /* x */
        -:        -:11628:   false,
        -:        -:11629:   nir_type_invalid,
        -:        -:11630:   NULL,
        -:        -:11631:};
        -:        -:11632:
        -:        -:11633:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:11634:   { nir_search_value_constant, 0 },
        -:        -:11635:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11636:};
        -:        -:11637:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_0_0_0_0 = {
        -:        -:11638:   { nir_search_value_expression, 0 },
        -:        -:11639:   false,
        -:        -:11640:   nir_op_ishl,
        -:        -:11641:   { &search250_0_0_0_0_0_0_1_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:11642:   NULL,
        -:        -:11643:};
        -:        -:11644:
        -:        -:11645:static const nir_search_variable search250_0_0_0_0_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:11646:   { nir_search_value_variable, 32 },
        -:        -:11647:   0, /* x */
        -:        -:11648:   false,
        -:        -:11649:   nir_type_invalid,
        -:        -:11650:   NULL,
        -:        -:11651:};
        -:        -:11652:
        -:        -:11653:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:11654:   { nir_search_value_constant, 0 },
        -:        -:11655:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11656:};
        -:        -:11657:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_0_0_0_1 = {
        -:        -:11658:   { nir_search_value_expression, 0 },
        -:        -:11659:   false,
        -:        -:11660:   nir_op_ushr,
        -:        -:11661:   { &search250_0_0_0_0_0_0_1_0_0_0_0_0_1_0.value, &search250_0_0_0_0_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:11662:   NULL,
        -:        -:11663:};
        -:        -:11664:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_0_0_0 = {
        -:        -:11665:   { nir_search_value_expression, 0 },
        -:        -:11666:   false,
        -:        -:11667:   nir_op_ior,
        -:        -:11668:   { &search250_0_0_0_0_0_0_1_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_0_0_0_1.value },
        -:        -:11669:   NULL,
        -:        -:11670:};
        -:        -:11671:
        -:        -:11672:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_0_0_1 = {
        -:        -:11673:   { nir_search_value_constant, 0 },
        -:        -:11674:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:11675:};
        -:        -:11676:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:11677:   { nir_search_value_expression, 0 },
        -:        -:11678:   false,
        -:        -:11679:   nir_op_iand,
        -:        -:11680:   { &search250_0_0_0_0_0_0_1_0_0_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_0_0_1.value },
        -:        -:11681:   NULL,
        -:        -:11682:};
        -:        -:11683:
        -:        -:11684:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:11685:   { nir_search_value_constant, 0 },
        -:        -:11686:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11687:};
        -:        -:11688:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_0 = {
        -:        -:11689:   { nir_search_value_expression, 0 },
        -:        -:11690:   false,
        -:        -:11691:   nir_op_ishl,
        -:        -:11692:   { &search250_0_0_0_0_0_0_1_0_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:11693:   NULL,
        -:        -:11694:};
        -:        -:11695:
        -:        -:11696:static const nir_search_variable search250_0_0_0_0_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:11697:   { nir_search_value_variable, 32 },
        -:        -:11698:   0, /* x */
        -:        -:11699:   false,
        -:        -:11700:   nir_type_invalid,
        -:        -:11701:   NULL,
        -:        -:11702:};
        -:        -:11703:
        -:        -:11704:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:11705:   { nir_search_value_constant, 0 },
        -:        -:11706:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11707:};
        -:        -:11708:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_1_0_0_0 = {
        -:        -:11709:   { nir_search_value_expression, 0 },
        -:        -:11710:   false,
        -:        -:11711:   nir_op_ishl,
        -:        -:11712:   { &search250_0_0_0_0_0_0_1_0_0_1_0_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:11713:   NULL,
        -:        -:11714:};
        -:        -:11715:
        -:        -:11716:static const nir_search_variable search250_0_0_0_0_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:11717:   { nir_search_value_variable, 32 },
        -:        -:11718:   0, /* x */
        -:        -:11719:   false,
        -:        -:11720:   nir_type_invalid,
        -:        -:11721:   NULL,
        -:        -:11722:};
        -:        -:11723:
        -:        -:11724:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:11725:   { nir_search_value_constant, 0 },
        -:        -:11726:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11727:};
        -:        -:11728:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_1_0_0_1 = {
        -:        -:11729:   { nir_search_value_expression, 0 },
        -:        -:11730:   false,
        -:        -:11731:   nir_op_ushr,
        -:        -:11732:   { &search250_0_0_0_0_0_0_1_0_0_1_0_0_1_0.value, &search250_0_0_0_0_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:11733:   NULL,
        -:        -:11734:};
        -:        -:11735:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_1_0_0 = {
        -:        -:11736:   { nir_search_value_expression, 0 },
        -:        -:11737:   false,
        -:        -:11738:   nir_op_ior,
        -:        -:11739:   { &search250_0_0_0_0_0_0_1_0_0_1_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_1_0_0_1.value },
        -:        -:11740:   NULL,
        -:        -:11741:};
        -:        -:11742:
        -:        -:11743:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_1_0_1 = {
        -:        -:11744:   { nir_search_value_constant, 0 },
        -:        -:11745:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:11746:};
        -:        -:11747:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:11748:   { nir_search_value_expression, 0 },
        -:        -:11749:   false,
        -:        -:11750:   nir_op_iand,
        -:        -:11751:   { &search250_0_0_0_0_0_0_1_0_0_1_0_0.value, &search250_0_0_0_0_0_0_1_0_0_1_0_1.value },
        -:        -:11752:   NULL,
        -:        -:11753:};
        -:        -:11754:
        -:        -:11755:static const nir_search_constant search250_0_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:11756:   { nir_search_value_constant, 0 },
        -:        -:11757:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11758:};
        -:        -:11759:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0_1 = {
        -:        -:11760:   { nir_search_value_expression, 0 },
        -:        -:11761:   false,
        -:        -:11762:   nir_op_ushr,
        -:        -:11763:   { &search250_0_0_0_0_0_0_1_0_0_1_0.value, &search250_0_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:11764:   NULL,
        -:        -:11765:};
        -:        -:11766:static const nir_search_expression search250_0_0_0_0_0_0_1_0_0 = {
        -:        -:11767:   { nir_search_value_expression, 0 },
        -:        -:11768:   false,
        -:        -:11769:   nir_op_ior,
        -:        -:11770:   { &search250_0_0_0_0_0_0_1_0_0_0.value, &search250_0_0_0_0_0_0_1_0_0_1.value },
        -:        -:11771:   NULL,
        -:        -:11772:};
        -:        -:11773:
        -:        -:11774:static const nir_search_constant search250_0_0_0_0_0_0_1_0_1 = {
        -:        -:11775:   { nir_search_value_constant, 0 },
        -:        -:11776:   nir_type_int, { 0xf0f0f0f0 /* 4042322160 */ },
        -:        -:11777:};
        -:        -:11778:static const nir_search_expression search250_0_0_0_0_0_0_1_0 = {
        -:        -:11779:   { nir_search_value_expression, 0 },
        -:        -:11780:   false,
        -:        -:11781:   nir_op_iand,
        -:        -:11782:   { &search250_0_0_0_0_0_0_1_0_0.value, &search250_0_0_0_0_0_0_1_0_1.value },
        -:        -:11783:   NULL,
        -:        -:11784:};
        -:        -:11785:
        -:        -:11786:static const nir_search_constant search250_0_0_0_0_0_0_1_1 = {
        -:        -:11787:   { nir_search_value_constant, 0 },
        -:        -:11788:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:11789:};
        -:        -:11790:static const nir_search_expression search250_0_0_0_0_0_0_1 = {
        -:        -:11791:   { nir_search_value_expression, 0 },
        -:        -:11792:   false,
        -:        -:11793:   nir_op_ushr,
        -:        -:11794:   { &search250_0_0_0_0_0_0_1_0.value, &search250_0_0_0_0_0_0_1_1.value },
        -:        -:11795:   NULL,
        -:        -:11796:};
        -:        -:11797:static const nir_search_expression search250_0_0_0_0_0_0 = {
        -:        -:11798:   { nir_search_value_expression, 0 },
        -:        -:11799:   false,
        -:        -:11800:   nir_op_ior,
        -:        -:11801:   { &search250_0_0_0_0_0_0_0.value, &search250_0_0_0_0_0_0_1.value },
        -:        -:11802:   NULL,
        -:        -:11803:};
        -:        -:11804:
        -:        -:11805:static const nir_search_constant search250_0_0_0_0_0_1 = {
        -:        -:11806:   { nir_search_value_constant, 0 },
        -:        -:11807:   nir_type_int, { 0x33333333 /* 858993459 */ },
        -:        -:11808:};
        -:        -:11809:static const nir_search_expression search250_0_0_0_0_0 = {
        -:        -:11810:   { nir_search_value_expression, 0 },
        -:        -:11811:   false,
        -:        -:11812:   nir_op_iand,
        -:        -:11813:   { &search250_0_0_0_0_0_0.value, &search250_0_0_0_0_0_1.value },
        -:        -:11814:   NULL,
        -:        -:11815:};
        -:        -:11816:
        -:        -:11817:static const nir_search_constant search250_0_0_0_0_1 = {
        -:        -:11818:   { nir_search_value_constant, 0 },
        -:        -:11819:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:11820:};
        -:        -:11821:static const nir_search_expression search250_0_0_0_0 = {
        -:        -:11822:   { nir_search_value_expression, 0 },
        -:        -:11823:   false,
        -:        -:11824:   nir_op_ishl,
        -:        -:11825:   { &search250_0_0_0_0_0.value, &search250_0_0_0_0_1.value },
        -:        -:11826:   NULL,
        -:        -:11827:};
        -:        -:11828:
        -:        -:11829:static const nir_search_variable search250_0_0_0_1_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:11830:   { nir_search_value_variable, 32 },
        -:        -:11831:   0, /* x */
        -:        -:11832:   false,
        -:        -:11833:   nir_type_invalid,
        -:        -:11834:   NULL,
        -:        -:11835:};
        -:        -:11836:
        -:        -:11837:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:11838:   { nir_search_value_constant, 0 },
        -:        -:11839:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11840:};
        -:        -:11841:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_0_0_0_0 = {
        -:        -:11842:   { nir_search_value_expression, 0 },
        -:        -:11843:   false,
        -:        -:11844:   nir_op_ishl,
        -:        -:11845:   { &search250_0_0_0_1_0_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:11846:   NULL,
        -:        -:11847:};
        -:        -:11848:
        -:        -:11849:static const nir_search_variable search250_0_0_0_1_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:11850:   { nir_search_value_variable, 32 },
        -:        -:11851:   0, /* x */
        -:        -:11852:   false,
        -:        -:11853:   nir_type_invalid,
        -:        -:11854:   NULL,
        -:        -:11855:};
        -:        -:11856:
        -:        -:11857:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:11858:   { nir_search_value_constant, 0 },
        -:        -:11859:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11860:};
        -:        -:11861:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_0_0_0_1 = {
        -:        -:11862:   { nir_search_value_expression, 0 },
        -:        -:11863:   false,
        -:        -:11864:   nir_op_ushr,
        -:        -:11865:   { &search250_0_0_0_1_0_0_0_0_0_0_0_0_1_0.value, &search250_0_0_0_1_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:11866:   NULL,
        -:        -:11867:};
        -:        -:11868:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_0_0_0 = {
        -:        -:11869:   { nir_search_value_expression, 0 },
        -:        -:11870:   false,
        -:        -:11871:   nir_op_ior,
        -:        -:11872:   { &search250_0_0_0_1_0_0_0_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_0_0_0_1.value },
        -:        -:11873:   NULL,
        -:        -:11874:};
        -:        -:11875:
        -:        -:11876:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_0_0_1 = {
        -:        -:11877:   { nir_search_value_constant, 0 },
        -:        -:11878:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:11879:};
        -:        -:11880:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:11881:   { nir_search_value_expression, 0 },
        -:        -:11882:   false,
        -:        -:11883:   nir_op_iand,
        -:        -:11884:   { &search250_0_0_0_1_0_0_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_0_0_1.value },
        -:        -:11885:   NULL,
        -:        -:11886:};
        -:        -:11887:
        -:        -:11888:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:11889:   { nir_search_value_constant, 0 },
        -:        -:11890:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11891:};
        -:        -:11892:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_0 = {
        -:        -:11893:   { nir_search_value_expression, 0 },
        -:        -:11894:   false,
        -:        -:11895:   nir_op_ishl,
        -:        -:11896:   { &search250_0_0_0_1_0_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:11897:   NULL,
        -:        -:11898:};
        -:        -:11899:
        -:        -:11900:static const nir_search_variable search250_0_0_0_1_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:11901:   { nir_search_value_variable, 32 },
        -:        -:11902:   0, /* x */
        -:        -:11903:   false,
        -:        -:11904:   nir_type_invalid,
        -:        -:11905:   NULL,
        -:        -:11906:};
        -:        -:11907:
        -:        -:11908:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:11909:   { nir_search_value_constant, 0 },
        -:        -:11910:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11911:};
        -:        -:11912:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_1_0_0_0 = {
        -:        -:11913:   { nir_search_value_expression, 0 },
        -:        -:11914:   false,
        -:        -:11915:   nir_op_ishl,
        -:        -:11916:   { &search250_0_0_0_1_0_0_0_0_0_1_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:11917:   NULL,
        -:        -:11918:};
        -:        -:11919:
        -:        -:11920:static const nir_search_variable search250_0_0_0_1_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:11921:   { nir_search_value_variable, 32 },
        -:        -:11922:   0, /* x */
        -:        -:11923:   false,
        -:        -:11924:   nir_type_invalid,
        -:        -:11925:   NULL,
        -:        -:11926:};
        -:        -:11927:
        -:        -:11928:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:11929:   { nir_search_value_constant, 0 },
        -:        -:11930:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:11931:};
        -:        -:11932:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_1_0_0_1 = {
        -:        -:11933:   { nir_search_value_expression, 0 },
        -:        -:11934:   false,
        -:        -:11935:   nir_op_ushr,
        -:        -:11936:   { &search250_0_0_0_1_0_0_0_0_0_1_0_0_1_0.value, &search250_0_0_0_1_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:11937:   NULL,
        -:        -:11938:};
        -:        -:11939:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_1_0_0 = {
        -:        -:11940:   { nir_search_value_expression, 0 },
        -:        -:11941:   false,
        -:        -:11942:   nir_op_ior,
        -:        -:11943:   { &search250_0_0_0_1_0_0_0_0_0_1_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_1_0_0_1.value },
        -:        -:11944:   NULL,
        -:        -:11945:};
        -:        -:11946:
        -:        -:11947:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_1_0_1 = {
        -:        -:11948:   { nir_search_value_constant, 0 },
        -:        -:11949:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:11950:};
        -:        -:11951:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:11952:   { nir_search_value_expression, 0 },
        -:        -:11953:   false,
        -:        -:11954:   nir_op_iand,
        -:        -:11955:   { &search250_0_0_0_1_0_0_0_0_0_1_0_0.value, &search250_0_0_0_1_0_0_0_0_0_1_0_1.value },
        -:        -:11956:   NULL,
        -:        -:11957:};
        -:        -:11958:
        -:        -:11959:static const nir_search_constant search250_0_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:11960:   { nir_search_value_constant, 0 },
        -:        -:11961:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:11962:};
        -:        -:11963:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0_1 = {
        -:        -:11964:   { nir_search_value_expression, 0 },
        -:        -:11965:   false,
        -:        -:11966:   nir_op_ushr,
        -:        -:11967:   { &search250_0_0_0_1_0_0_0_0_0_1_0.value, &search250_0_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:11968:   NULL,
        -:        -:11969:};
        -:        -:11970:static const nir_search_expression search250_0_0_0_1_0_0_0_0_0 = {
        -:        -:11971:   { nir_search_value_expression, 0 },
        -:        -:11972:   false,
        -:        -:11973:   nir_op_ior,
        -:        -:11974:   { &search250_0_0_0_1_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_0_1.value },
        -:        -:11975:   NULL,
        -:        -:11976:};
        -:        -:11977:
        -:        -:11978:static const nir_search_constant search250_0_0_0_1_0_0_0_0_1 = {
        -:        -:11979:   { nir_search_value_constant, 0 },
        -:        -:11980:   nir_type_int, { 0xf0f0f0f /* 252645135 */ },
        -:        -:11981:};
        -:        -:11982:static const nir_search_expression search250_0_0_0_1_0_0_0_0 = {
        -:        -:11983:   { nir_search_value_expression, 0 },
        -:        -:11984:   false,
        -:        -:11985:   nir_op_iand,
        -:        -:11986:   { &search250_0_0_0_1_0_0_0_0_0.value, &search250_0_0_0_1_0_0_0_0_1.value },
        -:        -:11987:   NULL,
        -:        -:11988:};
        -:        -:11989:
        -:        -:11990:static const nir_search_constant search250_0_0_0_1_0_0_0_1 = {
        -:        -:11991:   { nir_search_value_constant, 0 },
        -:        -:11992:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:11993:};
        -:        -:11994:static const nir_search_expression search250_0_0_0_1_0_0_0 = {
        -:        -:11995:   { nir_search_value_expression, 0 },
        -:        -:11996:   false,
        -:        -:11997:   nir_op_ishl,
        -:        -:11998:   { &search250_0_0_0_1_0_0_0_0.value, &search250_0_0_0_1_0_0_0_1.value },
        -:        -:11999:   NULL,
        -:        -:12000:};
        -:        -:12001:
        -:        -:12002:static const nir_search_variable search250_0_0_0_1_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:12003:   { nir_search_value_variable, 32 },
        -:        -:12004:   0, /* x */
        -:        -:12005:   false,
        -:        -:12006:   nir_type_invalid,
        -:        -:12007:   NULL,
        -:        -:12008:};
        -:        -:12009:
        -:        -:12010:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:12011:   { nir_search_value_constant, 0 },
        -:        -:12012:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12013:};
        -:        -:12014:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_0_0_0_0 = {
        -:        -:12015:   { nir_search_value_expression, 0 },
        -:        -:12016:   false,
        -:        -:12017:   nir_op_ishl,
        -:        -:12018:   { &search250_0_0_0_1_0_0_1_0_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:12019:   NULL,
        -:        -:12020:};
        -:        -:12021:
        -:        -:12022:static const nir_search_variable search250_0_0_0_1_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:12023:   { nir_search_value_variable, 32 },
        -:        -:12024:   0, /* x */
        -:        -:12025:   false,
        -:        -:12026:   nir_type_invalid,
        -:        -:12027:   NULL,
        -:        -:12028:};
        -:        -:12029:
        -:        -:12030:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:12031:   { nir_search_value_constant, 0 },
        -:        -:12032:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12033:};
        -:        -:12034:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_0_0_0_1 = {
        -:        -:12035:   { nir_search_value_expression, 0 },
        -:        -:12036:   false,
        -:        -:12037:   nir_op_ushr,
        -:        -:12038:   { &search250_0_0_0_1_0_0_1_0_0_0_0_0_1_0.value, &search250_0_0_0_1_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:12039:   NULL,
        -:        -:12040:};
        -:        -:12041:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_0_0_0 = {
        -:        -:12042:   { nir_search_value_expression, 0 },
        -:        -:12043:   false,
        -:        -:12044:   nir_op_ior,
        -:        -:12045:   { &search250_0_0_0_1_0_0_1_0_0_0_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_0_0_0_1.value },
        -:        -:12046:   NULL,
        -:        -:12047:};
        -:        -:12048:
        -:        -:12049:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_0_0_1 = {
        -:        -:12050:   { nir_search_value_constant, 0 },
        -:        -:12051:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:12052:};
        -:        -:12053:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:12054:   { nir_search_value_expression, 0 },
        -:        -:12055:   false,
        -:        -:12056:   nir_op_iand,
        -:        -:12057:   { &search250_0_0_0_1_0_0_1_0_0_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_0_0_1.value },
        -:        -:12058:   NULL,
        -:        -:12059:};
        -:        -:12060:
        -:        -:12061:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:12062:   { nir_search_value_constant, 0 },
        -:        -:12063:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12064:};
        -:        -:12065:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_0 = {
        -:        -:12066:   { nir_search_value_expression, 0 },
        -:        -:12067:   false,
        -:        -:12068:   nir_op_ishl,
        -:        -:12069:   { &search250_0_0_0_1_0_0_1_0_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:12070:   NULL,
        -:        -:12071:};
        -:        -:12072:
        -:        -:12073:static const nir_search_variable search250_0_0_0_1_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:12074:   { nir_search_value_variable, 32 },
        -:        -:12075:   0, /* x */
        -:        -:12076:   false,
        -:        -:12077:   nir_type_invalid,
        -:        -:12078:   NULL,
        -:        -:12079:};
        -:        -:12080:
        -:        -:12081:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:12082:   { nir_search_value_constant, 0 },
        -:        -:12083:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12084:};
        -:        -:12085:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_1_0_0_0 = {
        -:        -:12086:   { nir_search_value_expression, 0 },
        -:        -:12087:   false,
        -:        -:12088:   nir_op_ishl,
        -:        -:12089:   { &search250_0_0_0_1_0_0_1_0_0_1_0_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:12090:   NULL,
        -:        -:12091:};
        -:        -:12092:
        -:        -:12093:static const nir_search_variable search250_0_0_0_1_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:12094:   { nir_search_value_variable, 32 },
        -:        -:12095:   0, /* x */
        -:        -:12096:   false,
        -:        -:12097:   nir_type_invalid,
        -:        -:12098:   NULL,
        -:        -:12099:};
        -:        -:12100:
        -:        -:12101:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:12102:   { nir_search_value_constant, 0 },
        -:        -:12103:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12104:};
        -:        -:12105:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_1_0_0_1 = {
        -:        -:12106:   { nir_search_value_expression, 0 },
        -:        -:12107:   false,
        -:        -:12108:   nir_op_ushr,
        -:        -:12109:   { &search250_0_0_0_1_0_0_1_0_0_1_0_0_1_0.value, &search250_0_0_0_1_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:12110:   NULL,
        -:        -:12111:};
        -:        -:12112:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_1_0_0 = {
        -:        -:12113:   { nir_search_value_expression, 0 },
        -:        -:12114:   false,
        -:        -:12115:   nir_op_ior,
        -:        -:12116:   { &search250_0_0_0_1_0_0_1_0_0_1_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_1_0_0_1.value },
        -:        -:12117:   NULL,
        -:        -:12118:};
        -:        -:12119:
        -:        -:12120:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_1_0_1 = {
        -:        -:12121:   { nir_search_value_constant, 0 },
        -:        -:12122:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:12123:};
        -:        -:12124:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:12125:   { nir_search_value_expression, 0 },
        -:        -:12126:   false,
        -:        -:12127:   nir_op_iand,
        -:        -:12128:   { &search250_0_0_0_1_0_0_1_0_0_1_0_0.value, &search250_0_0_0_1_0_0_1_0_0_1_0_1.value },
        -:        -:12129:   NULL,
        -:        -:12130:};
        -:        -:12131:
        -:        -:12132:static const nir_search_constant search250_0_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:12133:   { nir_search_value_constant, 0 },
        -:        -:12134:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12135:};
        -:        -:12136:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0_1 = {
        -:        -:12137:   { nir_search_value_expression, 0 },
        -:        -:12138:   false,
        -:        -:12139:   nir_op_ushr,
        -:        -:12140:   { &search250_0_0_0_1_0_0_1_0_0_1_0.value, &search250_0_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:12141:   NULL,
        -:        -:12142:};
        -:        -:12143:static const nir_search_expression search250_0_0_0_1_0_0_1_0_0 = {
        -:        -:12144:   { nir_search_value_expression, 0 },
        -:        -:12145:   false,
        -:        -:12146:   nir_op_ior,
        -:        -:12147:   { &search250_0_0_0_1_0_0_1_0_0_0.value, &search250_0_0_0_1_0_0_1_0_0_1.value },
        -:        -:12148:   NULL,
        -:        -:12149:};
        -:        -:12150:
        -:        -:12151:static const nir_search_constant search250_0_0_0_1_0_0_1_0_1 = {
        -:        -:12152:   { nir_search_value_constant, 0 },
        -:        -:12153:   nir_type_int, { 0xf0f0f0f0 /* 4042322160 */ },
        -:        -:12154:};
        -:        -:12155:static const nir_search_expression search250_0_0_0_1_0_0_1_0 = {
        -:        -:12156:   { nir_search_value_expression, 0 },
        -:        -:12157:   false,
        -:        -:12158:   nir_op_iand,
        -:        -:12159:   { &search250_0_0_0_1_0_0_1_0_0.value, &search250_0_0_0_1_0_0_1_0_1.value },
        -:        -:12160:   NULL,
        -:        -:12161:};
        -:        -:12162:
        -:        -:12163:static const nir_search_constant search250_0_0_0_1_0_0_1_1 = {
        -:        -:12164:   { nir_search_value_constant, 0 },
        -:        -:12165:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:12166:};
        -:        -:12167:static const nir_search_expression search250_0_0_0_1_0_0_1 = {
        -:        -:12168:   { nir_search_value_expression, 0 },
        -:        -:12169:   false,
        -:        -:12170:   nir_op_ushr,
        -:        -:12171:   { &search250_0_0_0_1_0_0_1_0.value, &search250_0_0_0_1_0_0_1_1.value },
        -:        -:12172:   NULL,
        -:        -:12173:};
        -:        -:12174:static const nir_search_expression search250_0_0_0_1_0_0 = {
        -:        -:12175:   { nir_search_value_expression, 0 },
        -:        -:12176:   false,
        -:        -:12177:   nir_op_ior,
        -:        -:12178:   { &search250_0_0_0_1_0_0_0.value, &search250_0_0_0_1_0_0_1.value },
        -:        -:12179:   NULL,
        -:        -:12180:};
        -:        -:12181:
        -:        -:12182:static const nir_search_constant search250_0_0_0_1_0_1 = {
        -:        -:12183:   { nir_search_value_constant, 0 },
        -:        -:12184:   nir_type_int, { 0xcccccccc /* 3435973836 */ },
        -:        -:12185:};
        -:        -:12186:static const nir_search_expression search250_0_0_0_1_0 = {
        -:        -:12187:   { nir_search_value_expression, 0 },
        -:        -:12188:   false,
        -:        -:12189:   nir_op_iand,
        -:        -:12190:   { &search250_0_0_0_1_0_0.value, &search250_0_0_0_1_0_1.value },
        -:        -:12191:   NULL,
        -:        -:12192:};
        -:        -:12193:
        -:        -:12194:static const nir_search_constant search250_0_0_0_1_1 = {
        -:        -:12195:   { nir_search_value_constant, 0 },
        -:        -:12196:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:12197:};
        -:        -:12198:static const nir_search_expression search250_0_0_0_1 = {
        -:        -:12199:   { nir_search_value_expression, 0 },
        -:        -:12200:   false,
        -:        -:12201:   nir_op_ushr,
        -:        -:12202:   { &search250_0_0_0_1_0.value, &search250_0_0_0_1_1.value },
        -:        -:12203:   NULL,
        -:        -:12204:};
        -:        -:12205:static const nir_search_expression search250_0_0_0 = {
        -:        -:12206:   { nir_search_value_expression, 0 },
        -:        -:12207:   false,
        -:        -:12208:   nir_op_ior,
        -:        -:12209:   { &search250_0_0_0_0.value, &search250_0_0_0_1.value },
        -:        -:12210:   NULL,
        -:        -:12211:};
        -:        -:12212:
        -:        -:12213:static const nir_search_constant search250_0_0_1 = {
        -:        -:12214:   { nir_search_value_constant, 0 },
        -:        -:12215:   nir_type_int, { 0x55555555 /* 1431655765 */ },
        -:        -:12216:};
        -:        -:12217:static const nir_search_expression search250_0_0 = {
        -:        -:12218:   { nir_search_value_expression, 0 },
        -:        -:12219:   false,
        -:        -:12220:   nir_op_iand,
        -:        -:12221:   { &search250_0_0_0.value, &search250_0_0_1.value },
        -:        -:12222:   NULL,
        -:        -:12223:};
        -:        -:12224:
        -:        -:12225:static const nir_search_constant search250_0_1 = {
        -:        -:12226:   { nir_search_value_constant, 0 },
        -:        -:12227:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:12228:};
        -:        -:12229:static const nir_search_expression search250_0 = {
        -:        -:12230:   { nir_search_value_expression, 0 },
        -:        -:12231:   false,
        -:        -:12232:   nir_op_ishl,
        -:        -:12233:   { &search250_0_0.value, &search250_0_1.value },
        -:        -:12234:   NULL,
        -:        -:12235:};
        -:        -:12236:
        -:        -:12237:static const nir_search_variable search250_1_0_0_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:12238:   { nir_search_value_variable, 32 },
        -:        -:12239:   0, /* x */
        -:        -:12240:   false,
        -:        -:12241:   nir_type_invalid,
        -:        -:12242:   NULL,
        -:        -:12243:};
        -:        -:12244:
        -:        -:12245:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:12246:   { nir_search_value_constant, 0 },
        -:        -:12247:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12248:};
        -:        -:12249:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:12250:   { nir_search_value_expression, 0 },
        -:        -:12251:   false,
        -:        -:12252:   nir_op_ishl,
        -:        -:12253:   { &search250_1_0_0_0_0_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:12254:   NULL,
        -:        -:12255:};
        -:        -:12256:
        -:        -:12257:static const nir_search_variable search250_1_0_0_0_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:12258:   { nir_search_value_variable, 32 },
        -:        -:12259:   0, /* x */
        -:        -:12260:   false,
        -:        -:12261:   nir_type_invalid,
        -:        -:12262:   NULL,
        -:        -:12263:};
        -:        -:12264:
        -:        -:12265:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:12266:   { nir_search_value_constant, 0 },
        -:        -:12267:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12268:};
        -:        -:12269:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:12270:   { nir_search_value_expression, 0 },
        -:        -:12271:   false,
        -:        -:12272:   nir_op_ushr,
        -:        -:12273:   { &search250_1_0_0_0_0_0_0_0_0_0_0_0_1_0.value, &search250_1_0_0_0_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:12274:   NULL,
        -:        -:12275:};
        -:        -:12276:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:12277:   { nir_search_value_expression, 0 },
        -:        -:12278:   false,
        -:        -:12279:   nir_op_ior,
        -:        -:12280:   { &search250_1_0_0_0_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:12281:   NULL,
        -:        -:12282:};
        -:        -:12283:
        -:        -:12284:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:12285:   { nir_search_value_constant, 0 },
        -:        -:12286:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:12287:};
        -:        -:12288:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:12289:   { nir_search_value_expression, 0 },
        -:        -:12290:   false,
        -:        -:12291:   nir_op_iand,
        -:        -:12292:   { &search250_1_0_0_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:12293:   NULL,
        -:        -:12294:};
        -:        -:12295:
        -:        -:12296:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:12297:   { nir_search_value_constant, 0 },
        -:        -:12298:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12299:};
        -:        -:12300:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_0 = {
        -:        -:12301:   { nir_search_value_expression, 0 },
        -:        -:12302:   false,
        -:        -:12303:   nir_op_ishl,
        -:        -:12304:   { &search250_1_0_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:12305:   NULL,
        -:        -:12306:};
        -:        -:12307:
        -:        -:12308:static const nir_search_variable search250_1_0_0_0_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:12309:   { nir_search_value_variable, 32 },
        -:        -:12310:   0, /* x */
        -:        -:12311:   false,
        -:        -:12312:   nir_type_invalid,
        -:        -:12313:   NULL,
        -:        -:12314:};
        -:        -:12315:
        -:        -:12316:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:12317:   { nir_search_value_constant, 0 },
        -:        -:12318:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12319:};
        -:        -:12320:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_1_0_0_0 = {
        -:        -:12321:   { nir_search_value_expression, 0 },
        -:        -:12322:   false,
        -:        -:12323:   nir_op_ishl,
        -:        -:12324:   { &search250_1_0_0_0_0_0_0_0_0_1_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:12325:   NULL,
        -:        -:12326:};
        -:        -:12327:
        -:        -:12328:static const nir_search_variable search250_1_0_0_0_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:12329:   { nir_search_value_variable, 32 },
        -:        -:12330:   0, /* x */
        -:        -:12331:   false,
        -:        -:12332:   nir_type_invalid,
        -:        -:12333:   NULL,
        -:        -:12334:};
        -:        -:12335:
        -:        -:12336:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:12337:   { nir_search_value_constant, 0 },
        -:        -:12338:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12339:};
        -:        -:12340:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_1_0_0_1 = {
        -:        -:12341:   { nir_search_value_expression, 0 },
        -:        -:12342:   false,
        -:        -:12343:   nir_op_ushr,
        -:        -:12344:   { &search250_1_0_0_0_0_0_0_0_0_1_0_0_1_0.value, &search250_1_0_0_0_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:12345:   NULL,
        -:        -:12346:};
        -:        -:12347:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_1_0_0 = {
        -:        -:12348:   { nir_search_value_expression, 0 },
        -:        -:12349:   false,
        -:        -:12350:   nir_op_ior,
        -:        -:12351:   { &search250_1_0_0_0_0_0_0_0_0_1_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_1_0_0_1.value },
        -:        -:12352:   NULL,
        -:        -:12353:};
        -:        -:12354:
        -:        -:12355:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_1_0_1 = {
        -:        -:12356:   { nir_search_value_constant, 0 },
        -:        -:12357:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:12358:};
        -:        -:12359:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:12360:   { nir_search_value_expression, 0 },
        -:        -:12361:   false,
        -:        -:12362:   nir_op_iand,
        -:        -:12363:   { &search250_1_0_0_0_0_0_0_0_0_1_0_0.value, &search250_1_0_0_0_0_0_0_0_0_1_0_1.value },
        -:        -:12364:   NULL,
        -:        -:12365:};
        -:        -:12366:
        -:        -:12367:static const nir_search_constant search250_1_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:12368:   { nir_search_value_constant, 0 },
        -:        -:12369:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12370:};
        -:        -:12371:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0_1 = {
        -:        -:12372:   { nir_search_value_expression, 0 },
        -:        -:12373:   false,
        -:        -:12374:   nir_op_ushr,
        -:        -:12375:   { &search250_1_0_0_0_0_0_0_0_0_1_0.value, &search250_1_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:12376:   NULL,
        -:        -:12377:};
        -:        -:12378:static const nir_search_expression search250_1_0_0_0_0_0_0_0_0 = {
        -:        -:12379:   { nir_search_value_expression, 0 },
        -:        -:12380:   false,
        -:        -:12381:   nir_op_ior,
        -:        -:12382:   { &search250_1_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_0_1.value },
        -:        -:12383:   NULL,
        -:        -:12384:};
        -:        -:12385:
        -:        -:12386:static const nir_search_constant search250_1_0_0_0_0_0_0_0_1 = {
        -:        -:12387:   { nir_search_value_constant, 0 },
        -:        -:12388:   nir_type_int, { 0xf0f0f0f /* 252645135 */ },
        -:        -:12389:};
        -:        -:12390:static const nir_search_expression search250_1_0_0_0_0_0_0_0 = {
        -:        -:12391:   { nir_search_value_expression, 0 },
        -:        -:12392:   false,
        -:        -:12393:   nir_op_iand,
        -:        -:12394:   { &search250_1_0_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_0_1.value },
        -:        -:12395:   NULL,
        -:        -:12396:};
        -:        -:12397:
        -:        -:12398:static const nir_search_constant search250_1_0_0_0_0_0_0_1 = {
        -:        -:12399:   { nir_search_value_constant, 0 },
        -:        -:12400:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:12401:};
        -:        -:12402:static const nir_search_expression search250_1_0_0_0_0_0_0 = {
        -:        -:12403:   { nir_search_value_expression, 0 },
        -:        -:12404:   false,
        -:        -:12405:   nir_op_ishl,
        -:        -:12406:   { &search250_1_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_0_1.value },
        -:        -:12407:   NULL,
        -:        -:12408:};
        -:        -:12409:
        -:        -:12410:static const nir_search_variable search250_1_0_0_0_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:12411:   { nir_search_value_variable, 32 },
        -:        -:12412:   0, /* x */
        -:        -:12413:   false,
        -:        -:12414:   nir_type_invalid,
        -:        -:12415:   NULL,
        -:        -:12416:};
        -:        -:12417:
        -:        -:12418:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:12419:   { nir_search_value_constant, 0 },
        -:        -:12420:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12421:};
        -:        -:12422:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_0_0_0_0 = {
        -:        -:12423:   { nir_search_value_expression, 0 },
        -:        -:12424:   false,
        -:        -:12425:   nir_op_ishl,
        -:        -:12426:   { &search250_1_0_0_0_0_0_1_0_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:12427:   NULL,
        -:        -:12428:};
        -:        -:12429:
        -:        -:12430:static const nir_search_variable search250_1_0_0_0_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:12431:   { nir_search_value_variable, 32 },
        -:        -:12432:   0, /* x */
        -:        -:12433:   false,
        -:        -:12434:   nir_type_invalid,
        -:        -:12435:   NULL,
        -:        -:12436:};
        -:        -:12437:
        -:        -:12438:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:12439:   { nir_search_value_constant, 0 },
        -:        -:12440:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12441:};
        -:        -:12442:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_0_0_0_1 = {
        -:        -:12443:   { nir_search_value_expression, 0 },
        -:        -:12444:   false,
        -:        -:12445:   nir_op_ushr,
        -:        -:12446:   { &search250_1_0_0_0_0_0_1_0_0_0_0_0_1_0.value, &search250_1_0_0_0_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:12447:   NULL,
        -:        -:12448:};
        -:        -:12449:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_0_0_0 = {
        -:        -:12450:   { nir_search_value_expression, 0 },
        -:        -:12451:   false,
        -:        -:12452:   nir_op_ior,
        -:        -:12453:   { &search250_1_0_0_0_0_0_1_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_0_0_0_1.value },
        -:        -:12454:   NULL,
        -:        -:12455:};
        -:        -:12456:
        -:        -:12457:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_0_0_1 = {
        -:        -:12458:   { nir_search_value_constant, 0 },
        -:        -:12459:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:12460:};
        -:        -:12461:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:12462:   { nir_search_value_expression, 0 },
        -:        -:12463:   false,
        -:        -:12464:   nir_op_iand,
        -:        -:12465:   { &search250_1_0_0_0_0_0_1_0_0_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_0_0_1.value },
        -:        -:12466:   NULL,
        -:        -:12467:};
        -:        -:12468:
        -:        -:12469:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:12470:   { nir_search_value_constant, 0 },
        -:        -:12471:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12472:};
        -:        -:12473:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_0 = {
        -:        -:12474:   { nir_search_value_expression, 0 },
        -:        -:12475:   false,
        -:        -:12476:   nir_op_ishl,
        -:        -:12477:   { &search250_1_0_0_0_0_0_1_0_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:12478:   NULL,
        -:        -:12479:};
        -:        -:12480:
        -:        -:12481:static const nir_search_variable search250_1_0_0_0_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:12482:   { nir_search_value_variable, 32 },
        -:        -:12483:   0, /* x */
        -:        -:12484:   false,
        -:        -:12485:   nir_type_invalid,
        -:        -:12486:   NULL,
        -:        -:12487:};
        -:        -:12488:
        -:        -:12489:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:12490:   { nir_search_value_constant, 0 },
        -:        -:12491:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12492:};
        -:        -:12493:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_1_0_0_0 = {
        -:        -:12494:   { nir_search_value_expression, 0 },
        -:        -:12495:   false,
        -:        -:12496:   nir_op_ishl,
        -:        -:12497:   { &search250_1_0_0_0_0_0_1_0_0_1_0_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:12498:   NULL,
        -:        -:12499:};
        -:        -:12500:
        -:        -:12501:static const nir_search_variable search250_1_0_0_0_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:12502:   { nir_search_value_variable, 32 },
        -:        -:12503:   0, /* x */
        -:        -:12504:   false,
        -:        -:12505:   nir_type_invalid,
        -:        -:12506:   NULL,
        -:        -:12507:};
        -:        -:12508:
        -:        -:12509:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:12510:   { nir_search_value_constant, 0 },
        -:        -:12511:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12512:};
        -:        -:12513:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_1_0_0_1 = {
        -:        -:12514:   { nir_search_value_expression, 0 },
        -:        -:12515:   false,
        -:        -:12516:   nir_op_ushr,
        -:        -:12517:   { &search250_1_0_0_0_0_0_1_0_0_1_0_0_1_0.value, &search250_1_0_0_0_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:12518:   NULL,
        -:        -:12519:};
        -:        -:12520:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_1_0_0 = {
        -:        -:12521:   { nir_search_value_expression, 0 },
        -:        -:12522:   false,
        -:        -:12523:   nir_op_ior,
        -:        -:12524:   { &search250_1_0_0_0_0_0_1_0_0_1_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_1_0_0_1.value },
        -:        -:12525:   NULL,
        -:        -:12526:};
        -:        -:12527:
        -:        -:12528:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_1_0_1 = {
        -:        -:12529:   { nir_search_value_constant, 0 },
        -:        -:12530:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:12531:};
        -:        -:12532:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:12533:   { nir_search_value_expression, 0 },
        -:        -:12534:   false,
        -:        -:12535:   nir_op_iand,
        -:        -:12536:   { &search250_1_0_0_0_0_0_1_0_0_1_0_0.value, &search250_1_0_0_0_0_0_1_0_0_1_0_1.value },
        -:        -:12537:   NULL,
        -:        -:12538:};
        -:        -:12539:
        -:        -:12540:static const nir_search_constant search250_1_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:12541:   { nir_search_value_constant, 0 },
        -:        -:12542:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12543:};
        -:        -:12544:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0_1 = {
        -:        -:12545:   { nir_search_value_expression, 0 },
        -:        -:12546:   false,
        -:        -:12547:   nir_op_ushr,
        -:        -:12548:   { &search250_1_0_0_0_0_0_1_0_0_1_0.value, &search250_1_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:12549:   NULL,
        -:        -:12550:};
        -:        -:12551:static const nir_search_expression search250_1_0_0_0_0_0_1_0_0 = {
        -:        -:12552:   { nir_search_value_expression, 0 },
        -:        -:12553:   false,
        -:        -:12554:   nir_op_ior,
        -:        -:12555:   { &search250_1_0_0_0_0_0_1_0_0_0.value, &search250_1_0_0_0_0_0_1_0_0_1.value },
        -:        -:12556:   NULL,
        -:        -:12557:};
        -:        -:12558:
        -:        -:12559:static const nir_search_constant search250_1_0_0_0_0_0_1_0_1 = {
        -:        -:12560:   { nir_search_value_constant, 0 },
        -:        -:12561:   nir_type_int, { 0xf0f0f0f0 /* 4042322160 */ },
        -:        -:12562:};
        -:        -:12563:static const nir_search_expression search250_1_0_0_0_0_0_1_0 = {
        -:        -:12564:   { nir_search_value_expression, 0 },
        -:        -:12565:   false,
        -:        -:12566:   nir_op_iand,
        -:        -:12567:   { &search250_1_0_0_0_0_0_1_0_0.value, &search250_1_0_0_0_0_0_1_0_1.value },
        -:        -:12568:   NULL,
        -:        -:12569:};
        -:        -:12570:
        -:        -:12571:static const nir_search_constant search250_1_0_0_0_0_0_1_1 = {
        -:        -:12572:   { nir_search_value_constant, 0 },
        -:        -:12573:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:12574:};
        -:        -:12575:static const nir_search_expression search250_1_0_0_0_0_0_1 = {
        -:        -:12576:   { nir_search_value_expression, 0 },
        -:        -:12577:   false,
        -:        -:12578:   nir_op_ushr,
        -:        -:12579:   { &search250_1_0_0_0_0_0_1_0.value, &search250_1_0_0_0_0_0_1_1.value },
        -:        -:12580:   NULL,
        -:        -:12581:};
        -:        -:12582:static const nir_search_expression search250_1_0_0_0_0_0 = {
        -:        -:12583:   { nir_search_value_expression, 0 },
        -:        -:12584:   false,
        -:        -:12585:   nir_op_ior,
        -:        -:12586:   { &search250_1_0_0_0_0_0_0.value, &search250_1_0_0_0_0_0_1.value },
        -:        -:12587:   NULL,
        -:        -:12588:};
        -:        -:12589:
        -:        -:12590:static const nir_search_constant search250_1_0_0_0_0_1 = {
        -:        -:12591:   { nir_search_value_constant, 0 },
        -:        -:12592:   nir_type_int, { 0x33333333 /* 858993459 */ },
        -:        -:12593:};
        -:        -:12594:static const nir_search_expression search250_1_0_0_0_0 = {
        -:        -:12595:   { nir_search_value_expression, 0 },
        -:        -:12596:   false,
        -:        -:12597:   nir_op_iand,
        -:        -:12598:   { &search250_1_0_0_0_0_0.value, &search250_1_0_0_0_0_1.value },
        -:        -:12599:   NULL,
        -:        -:12600:};
        -:        -:12601:
        -:        -:12602:static const nir_search_constant search250_1_0_0_0_1 = {
        -:        -:12603:   { nir_search_value_constant, 0 },
        -:        -:12604:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:12605:};
        -:        -:12606:static const nir_search_expression search250_1_0_0_0 = {
        -:        -:12607:   { nir_search_value_expression, 0 },
        -:        -:12608:   false,
        -:        -:12609:   nir_op_ishl,
        -:        -:12610:   { &search250_1_0_0_0_0.value, &search250_1_0_0_0_1.value },
        -:        -:12611:   NULL,
        -:        -:12612:};
        -:        -:12613:
        -:        -:12614:static const nir_search_variable search250_1_0_0_1_0_0_0_0_0_0_0_0_0_0 = {
        -:        -:12615:   { nir_search_value_variable, 32 },
        -:        -:12616:   0, /* x */
        -:        -:12617:   false,
        -:        -:12618:   nir_type_invalid,
        -:        -:12619:   NULL,
        -:        -:12620:};
        -:        -:12621:
        -:        -:12622:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_0_0_0_0_1 = {
        -:        -:12623:   { nir_search_value_constant, 0 },
        -:        -:12624:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12625:};
        -:        -:12626:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_0_0_0_0 = {
        -:        -:12627:   { nir_search_value_expression, 0 },
        -:        -:12628:   false,
        -:        -:12629:   nir_op_ishl,
        -:        -:12630:   { &search250_1_0_0_1_0_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_0_0_0_0_1.value },
        -:        -:12631:   NULL,
        -:        -:12632:};
        -:        -:12633:
        -:        -:12634:static const nir_search_variable search250_1_0_0_1_0_0_0_0_0_0_0_0_1_0 = {
        -:        -:12635:   { nir_search_value_variable, 32 },
        -:        -:12636:   0, /* x */
        -:        -:12637:   false,
        -:        -:12638:   nir_type_invalid,
        -:        -:12639:   NULL,
        -:        -:12640:};
        -:        -:12641:
        -:        -:12642:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_0_0_0_1_1 = {
        -:        -:12643:   { nir_search_value_constant, 0 },
        -:        -:12644:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12645:};
        -:        -:12646:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_0_0_0_1 = {
        -:        -:12647:   { nir_search_value_expression, 0 },
        -:        -:12648:   false,
        -:        -:12649:   nir_op_ushr,
        -:        -:12650:   { &search250_1_0_0_1_0_0_0_0_0_0_0_0_1_0.value, &search250_1_0_0_1_0_0_0_0_0_0_0_0_1_1.value },
        -:        -:12651:   NULL,
        -:        -:12652:};
        -:        -:12653:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_0_0_0 = {
        -:        -:12654:   { nir_search_value_expression, 0 },
        -:        -:12655:   false,
        -:        -:12656:   nir_op_ior,
        -:        -:12657:   { &search250_1_0_0_1_0_0_0_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_0_0_0_1.value },
        -:        -:12658:   NULL,
        -:        -:12659:};
        -:        -:12660:
        -:        -:12661:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_0_0_1 = {
        -:        -:12662:   { nir_search_value_constant, 0 },
        -:        -:12663:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:12664:};
        -:        -:12665:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:12666:   { nir_search_value_expression, 0 },
        -:        -:12667:   false,
        -:        -:12668:   nir_op_iand,
        -:        -:12669:   { &search250_1_0_0_1_0_0_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_0_0_1.value },
        -:        -:12670:   NULL,
        -:        -:12671:};
        -:        -:12672:
        -:        -:12673:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:12674:   { nir_search_value_constant, 0 },
        -:        -:12675:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12676:};
        -:        -:12677:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_0 = {
        -:        -:12678:   { nir_search_value_expression, 0 },
        -:        -:12679:   false,
        -:        -:12680:   nir_op_ishl,
        -:        -:12681:   { &search250_1_0_0_1_0_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:12682:   NULL,
        -:        -:12683:};
        -:        -:12684:
        -:        -:12685:static const nir_search_variable search250_1_0_0_1_0_0_0_0_0_1_0_0_0_0 = {
        -:        -:12686:   { nir_search_value_variable, 32 },
        -:        -:12687:   0, /* x */
        -:        -:12688:   false,
        -:        -:12689:   nir_type_invalid,
        -:        -:12690:   NULL,
        -:        -:12691:};
        -:        -:12692:
        -:        -:12693:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_1_0_0_0_1 = {
        -:        -:12694:   { nir_search_value_constant, 0 },
        -:        -:12695:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12696:};
        -:        -:12697:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_1_0_0_0 = {
        -:        -:12698:   { nir_search_value_expression, 0 },
        -:        -:12699:   false,
        -:        -:12700:   nir_op_ishl,
        -:        -:12701:   { &search250_1_0_0_1_0_0_0_0_0_1_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_1_0_0_0_1.value },
        -:        -:12702:   NULL,
        -:        -:12703:};
        -:        -:12704:
        -:        -:12705:static const nir_search_variable search250_1_0_0_1_0_0_0_0_0_1_0_0_1_0 = {
        -:        -:12706:   { nir_search_value_variable, 32 },
        -:        -:12707:   0, /* x */
        -:        -:12708:   false,
        -:        -:12709:   nir_type_invalid,
        -:        -:12710:   NULL,
        -:        -:12711:};
        -:        -:12712:
        -:        -:12713:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_1_0_0_1_1 = {
        -:        -:12714:   { nir_search_value_constant, 0 },
        -:        -:12715:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12716:};
        -:        -:12717:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_1_0_0_1 = {
        -:        -:12718:   { nir_search_value_expression, 0 },
        -:        -:12719:   false,
        -:        -:12720:   nir_op_ushr,
        -:        -:12721:   { &search250_1_0_0_1_0_0_0_0_0_1_0_0_1_0.value, &search250_1_0_0_1_0_0_0_0_0_1_0_0_1_1.value },
        -:        -:12722:   NULL,
        -:        -:12723:};
        -:        -:12724:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_1_0_0 = {
        -:        -:12725:   { nir_search_value_expression, 0 },
        -:        -:12726:   false,
        -:        -:12727:   nir_op_ior,
        -:        -:12728:   { &search250_1_0_0_1_0_0_0_0_0_1_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_1_0_0_1.value },
        -:        -:12729:   NULL,
        -:        -:12730:};
        -:        -:12731:
        -:        -:12732:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_1_0_1 = {
        -:        -:12733:   { nir_search_value_constant, 0 },
        -:        -:12734:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:12735:};
        -:        -:12736:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:12737:   { nir_search_value_expression, 0 },
        -:        -:12738:   false,
        -:        -:12739:   nir_op_iand,
        -:        -:12740:   { &search250_1_0_0_1_0_0_0_0_0_1_0_0.value, &search250_1_0_0_1_0_0_0_0_0_1_0_1.value },
        -:        -:12741:   NULL,
        -:        -:12742:};
        -:        -:12743:
        -:        -:12744:static const nir_search_constant search250_1_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:12745:   { nir_search_value_constant, 0 },
        -:        -:12746:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12747:};
        -:        -:12748:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0_1 = {
        -:        -:12749:   { nir_search_value_expression, 0 },
        -:        -:12750:   false,
        -:        -:12751:   nir_op_ushr,
        -:        -:12752:   { &search250_1_0_0_1_0_0_0_0_0_1_0.value, &search250_1_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:12753:   NULL,
        -:        -:12754:};
        -:        -:12755:static const nir_search_expression search250_1_0_0_1_0_0_0_0_0 = {
        -:        -:12756:   { nir_search_value_expression, 0 },
        -:        -:12757:   false,
        -:        -:12758:   nir_op_ior,
        -:        -:12759:   { &search250_1_0_0_1_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_0_1.value },
        -:        -:12760:   NULL,
        -:        -:12761:};
        -:        -:12762:
        -:        -:12763:static const nir_search_constant search250_1_0_0_1_0_0_0_0_1 = {
        -:        -:12764:   { nir_search_value_constant, 0 },
        -:        -:12765:   nir_type_int, { 0xf0f0f0f /* 252645135 */ },
        -:        -:12766:};
        -:        -:12767:static const nir_search_expression search250_1_0_0_1_0_0_0_0 = {
        -:        -:12768:   { nir_search_value_expression, 0 },
        -:        -:12769:   false,
        -:        -:12770:   nir_op_iand,
        -:        -:12771:   { &search250_1_0_0_1_0_0_0_0_0.value, &search250_1_0_0_1_0_0_0_0_1.value },
        -:        -:12772:   NULL,
        -:        -:12773:};
        -:        -:12774:
        -:        -:12775:static const nir_search_constant search250_1_0_0_1_0_0_0_1 = {
        -:        -:12776:   { nir_search_value_constant, 0 },
        -:        -:12777:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:12778:};
        -:        -:12779:static const nir_search_expression search250_1_0_0_1_0_0_0 = {
        -:        -:12780:   { nir_search_value_expression, 0 },
        -:        -:12781:   false,
        -:        -:12782:   nir_op_ishl,
        -:        -:12783:   { &search250_1_0_0_1_0_0_0_0.value, &search250_1_0_0_1_0_0_0_1.value },
        -:        -:12784:   NULL,
        -:        -:12785:};
        -:        -:12786:
        -:        -:12787:static const nir_search_variable search250_1_0_0_1_0_0_1_0_0_0_0_0_0_0 = {
        -:        -:12788:   { nir_search_value_variable, 32 },
        -:        -:12789:   0, /* x */
        -:        -:12790:   false,
        -:        -:12791:   nir_type_invalid,
        -:        -:12792:   NULL,
        -:        -:12793:};
        -:        -:12794:
        -:        -:12795:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_0_0_0_0_1 = {
        -:        -:12796:   { nir_search_value_constant, 0 },
        -:        -:12797:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12798:};
        -:        -:12799:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_0_0_0_0 = {
        -:        -:12800:   { nir_search_value_expression, 0 },
        -:        -:12801:   false,
        -:        -:12802:   nir_op_ishl,
        -:        -:12803:   { &search250_1_0_0_1_0_0_1_0_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_0_0_0_0_1.value },
        -:        -:12804:   NULL,
        -:        -:12805:};
        -:        -:12806:
        -:        -:12807:static const nir_search_variable search250_1_0_0_1_0_0_1_0_0_0_0_0_1_0 = {
        -:        -:12808:   { nir_search_value_variable, 32 },
        -:        -:12809:   0, /* x */
        -:        -:12810:   false,
        -:        -:12811:   nir_type_invalid,
        -:        -:12812:   NULL,
        -:        -:12813:};
        -:        -:12814:
        -:        -:12815:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_0_0_0_1_1 = {
        -:        -:12816:   { nir_search_value_constant, 0 },
        -:        -:12817:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12818:};
        -:        -:12819:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_0_0_0_1 = {
        -:        -:12820:   { nir_search_value_expression, 0 },
        -:        -:12821:   false,
        -:        -:12822:   nir_op_ushr,
        -:        -:12823:   { &search250_1_0_0_1_0_0_1_0_0_0_0_0_1_0.value, &search250_1_0_0_1_0_0_1_0_0_0_0_0_1_1.value },
        -:        -:12824:   NULL,
        -:        -:12825:};
        -:        -:12826:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_0_0_0 = {
        -:        -:12827:   { nir_search_value_expression, 0 },
        -:        -:12828:   false,
        -:        -:12829:   nir_op_ior,
        -:        -:12830:   { &search250_1_0_0_1_0_0_1_0_0_0_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_0_0_0_1.value },
        -:        -:12831:   NULL,
        -:        -:12832:};
        -:        -:12833:
        -:        -:12834:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_0_0_1 = {
        -:        -:12835:   { nir_search_value_constant, 0 },
        -:        -:12836:   nir_type_int, { 0xff00ff /* 16711935 */ },
        -:        -:12837:};
        -:        -:12838:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:12839:   { nir_search_value_expression, 0 },
        -:        -:12840:   false,
        -:        -:12841:   nir_op_iand,
        -:        -:12842:   { &search250_1_0_0_1_0_0_1_0_0_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_0_0_1.value },
        -:        -:12843:   NULL,
        -:        -:12844:};
        -:        -:12845:
        -:        -:12846:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:12847:   { nir_search_value_constant, 0 },
        -:        -:12848:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12849:};
        -:        -:12850:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_0 = {
        -:        -:12851:   { nir_search_value_expression, 0 },
        -:        -:12852:   false,
        -:        -:12853:   nir_op_ishl,
        -:        -:12854:   { &search250_1_0_0_1_0_0_1_0_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:12855:   NULL,
        -:        -:12856:};
        -:        -:12857:
        -:        -:12858:static const nir_search_variable search250_1_0_0_1_0_0_1_0_0_1_0_0_0_0 = {
        -:        -:12859:   { nir_search_value_variable, 32 },
        -:        -:12860:   0, /* x */
        -:        -:12861:   false,
        -:        -:12862:   nir_type_invalid,
        -:        -:12863:   NULL,
        -:        -:12864:};
        -:        -:12865:
        -:        -:12866:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_1_0_0_0_1 = {
        -:        -:12867:   { nir_search_value_constant, 0 },
        -:        -:12868:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12869:};
        -:        -:12870:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_1_0_0_0 = {
        -:        -:12871:   { nir_search_value_expression, 0 },
        -:        -:12872:   false,
        -:        -:12873:   nir_op_ishl,
        -:        -:12874:   { &search250_1_0_0_1_0_0_1_0_0_1_0_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_1_0_0_0_1.value },
        -:        -:12875:   NULL,
        -:        -:12876:};
        -:        -:12877:
        -:        -:12878:static const nir_search_variable search250_1_0_0_1_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:12879:   { nir_search_value_variable, 32 },
        -:        -:12880:   0, /* x */
        -:        -:12881:   false,
        -:        -:12882:   nir_type_invalid,
        -:        -:12883:   NULL,
        -:        -:12884:};
        -:        -:12885:
        -:        -:12886:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:12887:   { nir_search_value_constant, 0 },
        -:        -:12888:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:12889:};
        -:        -:12890:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_1_0_0_1 = {
        -:        -:12891:   { nir_search_value_expression, 0 },
        -:        -:12892:   false,
        -:        -:12893:   nir_op_ushr,
        -:        -:12894:   { &search250_1_0_0_1_0_0_1_0_0_1_0_0_1_0.value, &search250_1_0_0_1_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:12895:   NULL,
        -:        -:12896:};
        -:        -:12897:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_1_0_0 = {
        -:        -:12898:   { nir_search_value_expression, 0 },
        -:        -:12899:   false,
        -:        -:12900:   nir_op_ior,
        -:        -:12901:   { &search250_1_0_0_1_0_0_1_0_0_1_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_1_0_0_1.value },
        -:        -:12902:   NULL,
        -:        -:12903:};
        -:        -:12904:
        -:        -:12905:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_1_0_1 = {
        -:        -:12906:   { nir_search_value_constant, 0 },
        -:        -:12907:   nir_type_int, { 0xff00ff00 /* 4278255360 */ },
        -:        -:12908:};
        -:        -:12909:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_1_0 = {
        -:        -:12910:   { nir_search_value_expression, 0 },
        -:        -:12911:   false,
        -:        -:12912:   nir_op_iand,
        -:        -:12913:   { &search250_1_0_0_1_0_0_1_0_0_1_0_0.value, &search250_1_0_0_1_0_0_1_0_0_1_0_1.value },
        -:        -:12914:   NULL,
        -:        -:12915:};
        -:        -:12916:
        -:        -:12917:static const nir_search_constant search250_1_0_0_1_0_0_1_0_0_1_1 = {
        -:        -:12918:   { nir_search_value_constant, 0 },
        -:        -:12919:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:12920:};
        -:        -:12921:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0_1 = {
        -:        -:12922:   { nir_search_value_expression, 0 },
        -:        -:12923:   false,
        -:        -:12924:   nir_op_ushr,
        -:        -:12925:   { &search250_1_0_0_1_0_0_1_0_0_1_0.value, &search250_1_0_0_1_0_0_1_0_0_1_1.value },
        -:        -:12926:   NULL,
        -:        -:12927:};
        -:        -:12928:static const nir_search_expression search250_1_0_0_1_0_0_1_0_0 = {
        -:        -:12929:   { nir_search_value_expression, 0 },
        -:        -:12930:   false,
        -:        -:12931:   nir_op_ior,
        -:        -:12932:   { &search250_1_0_0_1_0_0_1_0_0_0.value, &search250_1_0_0_1_0_0_1_0_0_1.value },
        -:        -:12933:   NULL,
        -:        -:12934:};
        -:        -:12935:
        -:        -:12936:static const nir_search_constant search250_1_0_0_1_0_0_1_0_1 = {
        -:        -:12937:   { nir_search_value_constant, 0 },
        -:        -:12938:   nir_type_int, { 0xf0f0f0f0 /* 4042322160 */ },
        -:        -:12939:};
        -:        -:12940:static const nir_search_expression search250_1_0_0_1_0_0_1_0 = {
        -:        -:12941:   { nir_search_value_expression, 0 },
        -:        -:12942:   false,
        -:        -:12943:   nir_op_iand,
        -:        -:12944:   { &search250_1_0_0_1_0_0_1_0_0.value, &search250_1_0_0_1_0_0_1_0_1.value },
        -:        -:12945:   NULL,
        -:        -:12946:};
        -:        -:12947:
        -:        -:12948:static const nir_search_constant search250_1_0_0_1_0_0_1_1 = {
        -:        -:12949:   { nir_search_value_constant, 0 },
        -:        -:12950:   nir_type_int, { 0x4 /* 4 */ },
        -:        -:12951:};
        -:        -:12952:static const nir_search_expression search250_1_0_0_1_0_0_1 = {
        -:        -:12953:   { nir_search_value_expression, 0 },
        -:        -:12954:   false,
        -:        -:12955:   nir_op_ushr,
        -:        -:12956:   { &search250_1_0_0_1_0_0_1_0.value, &search250_1_0_0_1_0_0_1_1.value },
        -:        -:12957:   NULL,
        -:        -:12958:};
        -:        -:12959:static const nir_search_expression search250_1_0_0_1_0_0 = {
        -:        -:12960:   { nir_search_value_expression, 0 },
        -:        -:12961:   false,
        -:        -:12962:   nir_op_ior,
        -:        -:12963:   { &search250_1_0_0_1_0_0_0.value, &search250_1_0_0_1_0_0_1.value },
        -:        -:12964:   NULL,
        -:        -:12965:};
        -:        -:12966:
        -:        -:12967:static const nir_search_constant search250_1_0_0_1_0_1 = {
        -:        -:12968:   { nir_search_value_constant, 0 },
        -:        -:12969:   nir_type_int, { 0xcccccccc /* 3435973836 */ },
        -:        -:12970:};
        -:        -:12971:static const nir_search_expression search250_1_0_0_1_0 = {
        -:        -:12972:   { nir_search_value_expression, 0 },
        -:        -:12973:   false,
        -:        -:12974:   nir_op_iand,
        -:        -:12975:   { &search250_1_0_0_1_0_0.value, &search250_1_0_0_1_0_1.value },
        -:        -:12976:   NULL,
        -:        -:12977:};
        -:        -:12978:
        -:        -:12979:static const nir_search_constant search250_1_0_0_1_1 = {
        -:        -:12980:   { nir_search_value_constant, 0 },
        -:        -:12981:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:12982:};
        -:        -:12983:static const nir_search_expression search250_1_0_0_1 = {
        -:        -:12984:   { nir_search_value_expression, 0 },
        -:        -:12985:   false,
        -:        -:12986:   nir_op_ushr,
        -:        -:12987:   { &search250_1_0_0_1_0.value, &search250_1_0_0_1_1.value },
        -:        -:12988:   NULL,
        -:        -:12989:};
        -:        -:12990:static const nir_search_expression search250_1_0_0 = {
        -:        -:12991:   { nir_search_value_expression, 0 },
        -:        -:12992:   false,
        -:        -:12993:   nir_op_ior,
        -:        -:12994:   { &search250_1_0_0_0.value, &search250_1_0_0_1.value },
        -:        -:12995:   NULL,
        -:        -:12996:};
        -:        -:12997:
        -:        -:12998:static const nir_search_constant search250_1_0_1 = {
        -:        -:12999:   { nir_search_value_constant, 0 },
        -:        -:13000:   nir_type_int, { 0xaaaaaaaa /* 2863311530 */ },
        -:        -:13001:};
        -:        -:13002:static const nir_search_expression search250_1_0 = {
        -:        -:13003:   { nir_search_value_expression, 0 },
        -:        -:13004:   false,
        -:        -:13005:   nir_op_iand,
        -:        -:13006:   { &search250_1_0_0.value, &search250_1_0_1.value },
        -:        -:13007:   NULL,
        -:        -:13008:};
        -:        -:13009:
        -:        -:13010:static const nir_search_constant search250_1_1 = {
        -:        -:13011:   { nir_search_value_constant, 0 },
        -:        -:13012:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:13013:};
        -:        -:13014:static const nir_search_expression search250_1 = {
        -:        -:13015:   { nir_search_value_expression, 0 },
        -:        -:13016:   false,
        -:        -:13017:   nir_op_ushr,
        -:        -:13018:   { &search250_1_0.value, &search250_1_1.value },
        -:        -:13019:   NULL,
        -:        -:13020:};
        -:        -:13021:static const nir_search_expression search250 = {
        -:        -:13022:   { nir_search_value_expression, 0 },
        -:        -:13023:   false,
        -:        -:13024:   nir_op_ior,
        -:        -:13025:   { &search250_0.value, &search250_1.value },
        -:        -:13026:   NULL,
        -:        -:13027:};
        -:        -:13028:   
        -:        -:13029:static const nir_search_variable replace250_0 = {
        -:        -:13030:   { nir_search_value_variable, 0 },
        -:        -:13031:   0, /* x */
        -:        -:13032:   false,
        -:        -:13033:   nir_type_invalid,
        -:        -:13034:   NULL,
        -:        -:13035:};
        -:        -:13036:static const nir_search_expression replace250 = {
        -:        -:13037:   { nir_search_value_expression, 0 },
        -:        -:13038:   false,
        -:        -:13039:   nir_op_bitfield_reverse,
        -:        -:13040:   { &replace250_0.value },
        -:        -:13041:   NULL,
        -:        -:13042:};
        -:        -:13043:
        -:        -:13044:static const struct transform nir_opt_algebraic_ior_xforms[] = {
        -:        -:13045:   { &search106, &replace106.value, 0 },
        -:        -:13046:   { &search107, &replace107.value, 0 },
        -:        -:13047:   { &search108, &replace108.value, 0 },
        -:        -:13048:   { &search109, &replace109.value, 0 },
        -:        -:13049:   { &search137, &replace137.value, 0 },
        -:        -:13050:   { &search138, &replace138.value, 0 },
        -:        -:13051:   { &search139, &replace139.value, 0 },
        -:        -:13052:   { &search145, &replace145.value, 0 },
        -:        -:13053:   { &search250, &replace250.value, 0 },
        -:        -:13054:};
        -:        -:13055:   
        -:        -:13056:static const nir_search_variable search212_0 = {
        -:        -:13057:   { nir_search_value_variable, 0 },
        -:        -:13058:   0, /* a */
        -:        -:13059:   false,
        -:        -:13060:   nir_type_invalid,
        -:        -:13061:   NULL,
        -:        -:13062:};
        -:        -:13063:
        -:        -:13064:static const nir_search_constant search212_1 = {
        -:        -:13065:   { nir_search_value_constant, 0 },
        -:        -:13066:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:13067:};
        -:        -:13068:static const nir_search_expression search212 = {
        -:        -:13069:   { nir_search_value_expression, 0 },
        -:        -:13070:   false,
        -:        -:13071:   nir_op_ussub_4x8,
        -:        -:13072:   { &search212_0.value, &search212_1.value },
        -:        -:13073:   NULL,
        -:        -:13074:};
        -:        -:13075:   
        -:        -:13076:static const nir_search_variable replace212 = {
        -:        -:13077:   { nir_search_value_variable, 0 },
        -:        -:13078:   0, /* a */
        -:        -:13079:   false,
        -:        -:13080:   nir_type_invalid,
        -:        -:13081:   NULL,
        -:        -:13082:};
        -:        -:13083:   
        -:        -:13084:static const nir_search_variable search213_0 = {
        -:        -:13085:   { nir_search_value_variable, 0 },
        -:        -:13086:   0, /* a */
        -:        -:13087:   false,
        -:        -:13088:   nir_type_invalid,
        -:        -:13089:   NULL,
        -:        -:13090:};
        -:        -:13091:
        -:        -:13092:static const nir_search_constant search213_1 = {
        -:        -:13093:   { nir_search_value_constant, 0 },
        -:        -:13094:   nir_type_int, { -0x1 /* -1 */ },
        -:        -:13095:};
        -:        -:13096:static const nir_search_expression search213 = {
        -:        -:13097:   { nir_search_value_expression, 0 },
        -:        -:13098:   false,
        -:        -:13099:   nir_op_ussub_4x8,
        -:        -:13100:   { &search213_0.value, &search213_1.value },
        -:        -:13101:   NULL,
        -:        -:13102:};
        -:        -:13103:   
        -:        -:13104:static const nir_search_constant replace213 = {
        -:        -:13105:   { nir_search_value_constant, 0 },
        -:        -:13106:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:13107:};
        -:        -:13108:
        -:        -:13109:static const struct transform nir_opt_algebraic_ussub_4x8_xforms[] = {
        -:        -:13110:   { &search212, &replace212.value, 0 },
        -:        -:13111:   { &search213, &replace213.value, 0 },
        -:        -:13112:};
        -:        -:13113:   
        -:        -:13114:static const nir_search_variable search247_0 = {
        -:        -:13115:   { nir_search_value_variable, 0 },
        -:        -:13116:   0, /* v */
        -:        -:13117:   false,
        -:        -:13118:   nir_type_invalid,
        -:        -:13119:   NULL,
        -:        -:13120:};
        -:        -:13121:static const nir_search_expression search247 = {
        -:        -:13122:   { nir_search_value_expression, 0 },
        -:        -:13123:   false,
        -:        -:13124:   nir_op_unpack_snorm_4x8,
        -:        -:13125:   { &search247_0.value },
        -:        -:13126:   NULL,
        -:        -:13127:};
        -:        -:13128:   
        -:        -:13129:static const nir_search_constant replace247_0 = {
        -:        -:13130:   { nir_search_value_constant, 0 },
        -:        -:13131:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:13132:};
        -:        -:13133:
        -:        -:13134:static const nir_search_constant replace247_1_0 = {
        -:        -:13135:   { nir_search_value_constant, 0 },
        -:        -:13136:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -:13137:};
        -:        -:13138:
        -:        -:13139:static const nir_search_variable replace247_1_1_0_0_0_0 = {
        -:        -:13140:   { nir_search_value_variable, 0 },
        -:        -:13141:   0, /* v */
        -:        -:13142:   false,
        -:        -:13143:   nir_type_invalid,
        -:        -:13144:   NULL,
        -:        -:13145:};
        -:        -:13146:
        -:        -:13147:static const nir_search_constant replace247_1_1_0_0_0_1 = {
        -:        -:13148:   { nir_search_value_constant, 0 },
        -:        -:13149:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:13150:};
        -:        -:13151:static const nir_search_expression replace247_1_1_0_0_0 = {
        -:        -:13152:   { nir_search_value_expression, 0 },
        -:        -:13153:   false,
        -:        -:13154:   nir_op_extract_i8,
        -:        -:13155:   { &replace247_1_1_0_0_0_0.value, &replace247_1_1_0_0_0_1.value },
        -:        -:13156:   NULL,
        -:        -:13157:};
        -:        -:13158:
        -:        -:13159:static const nir_search_variable replace247_1_1_0_0_1_0 = {
        -:        -:13160:   { nir_search_value_variable, 0 },
        -:        -:13161:   0, /* v */
        -:        -:13162:   false,
        -:        -:13163:   nir_type_invalid,
        -:        -:13164:   NULL,
        -:        -:13165:};
        -:        -:13166:
        -:        -:13167:static const nir_search_constant replace247_1_1_0_0_1_1 = {
        -:        -:13168:   { nir_search_value_constant, 0 },
        -:        -:13169:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:13170:};
        -:        -:13171:static const nir_search_expression replace247_1_1_0_0_1 = {
        -:        -:13172:   { nir_search_value_expression, 0 },
        -:        -:13173:   false,
        -:        -:13174:   nir_op_extract_i8,
        -:        -:13175:   { &replace247_1_1_0_0_1_0.value, &replace247_1_1_0_0_1_1.value },
        -:        -:13176:   NULL,
        -:        -:13177:};
        -:        -:13178:
        -:        -:13179:static const nir_search_variable replace247_1_1_0_0_2_0 = {
        -:        -:13180:   { nir_search_value_variable, 0 },
        -:        -:13181:   0, /* v */
        -:        -:13182:   false,
        -:        -:13183:   nir_type_invalid,
        -:        -:13184:   NULL,
        -:        -:13185:};
        -:        -:13186:
        -:        -:13187:static const nir_search_constant replace247_1_1_0_0_2_1 = {
        -:        -:13188:   { nir_search_value_constant, 0 },
        -:        -:13189:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:13190:};
        -:        -:13191:static const nir_search_expression replace247_1_1_0_0_2 = {
        -:        -:13192:   { nir_search_value_expression, 0 },
        -:        -:13193:   false,
        -:        -:13194:   nir_op_extract_i8,
        -:        -:13195:   { &replace247_1_1_0_0_2_0.value, &replace247_1_1_0_0_2_1.value },
        -:        -:13196:   NULL,
        -:        -:13197:};
        -:        -:13198:
        -:        -:13199:static const nir_search_variable replace247_1_1_0_0_3_0 = {
        -:        -:13200:   { nir_search_value_variable, 0 },
        -:        -:13201:   0, /* v */
        -:        -:13202:   false,
        -:        -:13203:   nir_type_invalid,
        -:        -:13204:   NULL,
        -:        -:13205:};
        -:        -:13206:
        -:        -:13207:static const nir_search_constant replace247_1_1_0_0_3_1 = {
        -:        -:13208:   { nir_search_value_constant, 0 },
        -:        -:13209:   nir_type_int, { 0x3 /* 3 */ },
        -:        -:13210:};
        -:        -:13211:static const nir_search_expression replace247_1_1_0_0_3 = {
        -:        -:13212:   { nir_search_value_expression, 0 },
        -:        -:13213:   false,
        -:        -:13214:   nir_op_extract_i8,
        -:        -:13215:   { &replace247_1_1_0_0_3_0.value, &replace247_1_1_0_0_3_1.value },
        -:        -:13216:   NULL,
        -:        -:13217:};
        -:        -:13218:static const nir_search_expression replace247_1_1_0_0 = {
        -:        -:13219:   { nir_search_value_expression, 0 },
        -:        -:13220:   false,
        -:        -:13221:   nir_op_vec4,
        -:        -:13222:   { &replace247_1_1_0_0_0.value, &replace247_1_1_0_0_1.value, &replace247_1_1_0_0_2.value, &replace247_1_1_0_0_3.value },
        -:        -:13223:   NULL,
        -:        -:13224:};
        -:        -:13225:static const nir_search_expression replace247_1_1_0 = {
        -:        -:13226:   { nir_search_value_expression, 0 },
        -:        -:13227:   false,
        -:        -:13228:   nir_op_i2f32,
        -:        -:13229:   { &replace247_1_1_0_0.value },
        -:        -:13230:   NULL,
        -:        -:13231:};
        -:        -:13232:
        -:        -:13233:static const nir_search_constant replace247_1_1_1 = {
        -:        -:13234:   { nir_search_value_constant, 0 },
        -:        -:13235:   nir_type_float, { 0x405fc00000000000 /* 127.0 */ },
        -:        -:13236:};
        -:        -:13237:static const nir_search_expression replace247_1_1 = {
        -:        -:13238:   { nir_search_value_expression, 0 },
        -:        -:13239:   false,
        -:        -:13240:   nir_op_fdiv,
        -:        -:13241:   { &replace247_1_1_0.value, &replace247_1_1_1.value },
        -:        -:13242:   NULL,
        -:        -:13243:};
        -:        -:13244:static const nir_search_expression replace247_1 = {
        -:        -:13245:   { nir_search_value_expression, 0 },
        -:        -:13246:   false,
        -:        -:13247:   nir_op_fmax,
        -:        -:13248:   { &replace247_1_0.value, &replace247_1_1.value },
        -:        -:13249:   NULL,
        -:        -:13250:};
        -:        -:13251:static const nir_search_expression replace247 = {
        -:        -:13252:   { nir_search_value_expression, 0 },
        -:        -:13253:   false,
        -:        -:13254:   nir_op_fmin,
        -:        -:13255:   { &replace247_0.value, &replace247_1.value },
        -:        -:13256:   NULL,
        -:        -:13257:};
        -:        -:13258:
        -:        -:13259:static const struct transform nir_opt_algebraic_unpack_snorm_4x8_xforms[] = {
        -:        -:13260:   { &search247, &replace247.value, 36 },
        -:        -:13261:};
        -:        -:13262:   
        -:        -:13263:static const nir_search_variable search230_0 = {
        -:        -:13264:   { nir_search_value_variable, 0 },
        -:        -:13265:   0, /* a */
        -:        -:13266:   false,
        -:        -:13267:   nir_type_invalid,
        -:        -:13268:   NULL,
        -:        -:13269:};
        -:        -:13270:
        -:        -:13271:static const nir_search_variable search230_1 = {
        -:        -:13272:   { nir_search_value_variable, 0 },
        -:        -:13273:   1, /* b */
        -:        -:13274:   false,
        -:        -:13275:   nir_type_invalid,
        -:        -:13276:   NULL,
        -:        -:13277:};
        -:        -:13278:static const nir_search_expression search230 = {
        -:        -:13279:   { nir_search_value_expression, 0 },
        -:        -:13280:   false,
        -:        -:13281:   nir_op_frem,
        -:        -:13282:   { &search230_0.value, &search230_1.value },
        -:        -:13283:   NULL,
        -:        -:13284:};
        -:        -:13285:   
        -:        -:13286:static const nir_search_variable replace230_0 = {
        -:        -:13287:   { nir_search_value_variable, 0 },
        -:        -:13288:   0, /* a */
        -:        -:13289:   false,
        -:        -:13290:   nir_type_invalid,
        -:        -:13291:   NULL,
        -:        -:13292:};
        -:        -:13293:
        -:        -:13294:static const nir_search_variable replace230_1_0 = {
        -:        -:13295:   { nir_search_value_variable, 0 },
        -:        -:13296:   1, /* b */
        -:        -:13297:   false,
        -:        -:13298:   nir_type_invalid,
        -:        -:13299:   NULL,
        -:        -:13300:};
        -:        -:13301:
        -:        -:13302:static const nir_search_variable replace230_1_1_0_0 = {
        -:        -:13303:   { nir_search_value_variable, 0 },
        -:        -:13304:   0, /* a */
        -:        -:13305:   false,
        -:        -:13306:   nir_type_invalid,
        -:        -:13307:   NULL,
        -:        -:13308:};
        -:        -:13309:
        -:        -:13310:static const nir_search_variable replace230_1_1_0_1 = {
        -:        -:13311:   { nir_search_value_variable, 0 },
        -:        -:13312:   1, /* b */
        -:        -:13313:   false,
        -:        -:13314:   nir_type_invalid,
        -:        -:13315:   NULL,
        -:        -:13316:};
        -:        -:13317:static const nir_search_expression replace230_1_1_0 = {
        -:        -:13318:   { nir_search_value_expression, 0 },
        -:        -:13319:   false,
        -:        -:13320:   nir_op_fdiv,
        -:        -:13321:   { &replace230_1_1_0_0.value, &replace230_1_1_0_1.value },
        -:        -:13322:   NULL,
        -:        -:13323:};
        -:        -:13324:static const nir_search_expression replace230_1_1 = {
        -:        -:13325:   { nir_search_value_expression, 0 },
        -:        -:13326:   false,
        -:        -:13327:   nir_op_ftrunc,
        -:        -:13328:   { &replace230_1_1_0.value },
        -:        -:13329:   NULL,
        -:        -:13330:};
        -:        -:13331:static const nir_search_expression replace230_1 = {
        -:        -:13332:   { nir_search_value_expression, 0 },
        -:        -:13333:   false,
        -:        -:13334:   nir_op_fmul,
        -:        -:13335:   { &replace230_1_0.value, &replace230_1_1.value },
        -:        -:13336:   NULL,
        -:        -:13337:};
        -:        -:13338:static const nir_search_expression replace230 = {
        -:        -:13339:   { nir_search_value_expression, 0 },
        -:        -:13340:   false,
        -:        -:13341:   nir_op_fsub,
        -:        -:13342:   { &replace230_0.value, &replace230_1.value },
        -:        -:13343:   NULL,
        -:        -:13344:};
        -:        -:13345:
        -:        -:13346:static const struct transform nir_opt_algebraic_frem_xforms[] = {
        -:        -:13347:   { &search230, &replace230.value, 21 },
        -:        -:13348:};
        -:        -:13349:   
        -:        -:13350:static const nir_search_variable search202_0_0 = {
        -:        -:13351:   { nir_search_value_variable, 0 },
        -:        -:13352:   0, /* a */
        -:        -:13353:   false,
        -:        -:13354:   nir_type_invalid,
        -:        -:13355:   NULL,
        -:        -:13356:};
        -:        -:13357:
        -:        -:13358:static const nir_search_variable search202_0_1 = {
        -:        -:13359:   { nir_search_value_variable, 0 },
        -:        -:13360:   1, /* b */
        -:        -:13361:   false,
        -:        -:13362:   nir_type_invalid,
        -:        -:13363:   NULL,
        -:        -:13364:};
        -:        -:13365:static const nir_search_expression search202_0 = {
        -:        -:13366:   { nir_search_value_expression, 0 },
        -:        -:13367:   false,
        -:        -:13368:   nir_op_pack_64_2x32_split,
        -:        -:13369:   { &search202_0_0.value, &search202_0_1.value },
        -:        -:13370:   NULL,
        -:        -:13371:};
        -:        -:13372:static const nir_search_expression search202 = {
        -:        -:13373:   { nir_search_value_expression, 0 },
        -:        -:13374:   false,
        -:        -:13375:   nir_op_unpack_64_2x32_split_y,
        -:        -:13376:   { &search202_0.value },
        -:        -:13377:   NULL,
        -:        -:13378:};
        -:        -:13379:   
        -:        -:13380:static const nir_search_variable replace202 = {
        -:        -:13381:   { nir_search_value_variable, 0 },
        -:        -:13382:   1, /* b */
        -:        -:13383:   false,
        -:        -:13384:   nir_type_invalid,
        -:        -:13385:   NULL,
        -:        -:13386:};
        -:        -:13387:
        -:        -:13388:static const struct transform nir_opt_algebraic_unpack_64_2x32_split_y_xforms[] = {
        -:        -:13389:   { &search202, &replace202.value, 0 },
        -:        -:13390:};
        -:        -:13391:   
        -:        -:13392:static const nir_search_variable search244_0 = {
        -:        -:13393:   { nir_search_value_variable, 0 },
        -:        -:13394:   0, /* v */
        -:        -:13395:   false,
        -:        -:13396:   nir_type_invalid,
        -:        -:13397:   NULL,
        -:        -:13398:};
        -:        -:13399:static const nir_search_expression search244 = {
        -:        -:13400:   { nir_search_value_expression, 0 },
        -:        -:13401:   false,
        -:        -:13402:   nir_op_unpack_unorm_2x16,
        -:        -:13403:   { &search244_0.value },
        -:        -:13404:   NULL,
        -:        -:13405:};
        -:        -:13406:   
        -:        -:13407:static const nir_search_variable replace244_0_0_0_0 = {
        -:        -:13408:   { nir_search_value_variable, 0 },
        -:        -:13409:   0, /* v */
        -:        -:13410:   false,
        -:        -:13411:   nir_type_invalid,
        -:        -:13412:   NULL,
        -:        -:13413:};
        -:        -:13414:
        -:        -:13415:static const nir_search_constant replace244_0_0_0_1 = {
        -:        -:13416:   { nir_search_value_constant, 0 },
        -:        -:13417:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:13418:};
        -:        -:13419:static const nir_search_expression replace244_0_0_0 = {
        -:        -:13420:   { nir_search_value_expression, 0 },
        -:        -:13421:   false,
        -:        -:13422:   nir_op_extract_u16,
        -:        -:13423:   { &replace244_0_0_0_0.value, &replace244_0_0_0_1.value },
        -:        -:13424:   NULL,
        -:        -:13425:};
        -:        -:13426:
        -:        -:13427:static const nir_search_variable replace244_0_0_1_0 = {
        -:        -:13428:   { nir_search_value_variable, 0 },
        -:        -:13429:   0, /* v */
        -:        -:13430:   false,
        -:        -:13431:   nir_type_invalid,
        -:        -:13432:   NULL,
        -:        -:13433:};
        -:        -:13434:
        -:        -:13435:static const nir_search_constant replace244_0_0_1_1 = {
        -:        -:13436:   { nir_search_value_constant, 0 },
        -:        -:13437:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:13438:};
        -:        -:13439:static const nir_search_expression replace244_0_0_1 = {
        -:        -:13440:   { nir_search_value_expression, 0 },
        -:        -:13441:   false,
        -:        -:13442:   nir_op_extract_u16,
        -:        -:13443:   { &replace244_0_0_1_0.value, &replace244_0_0_1_1.value },
        -:        -:13444:   NULL,
        -:        -:13445:};
        -:        -:13446:static const nir_search_expression replace244_0_0 = {
        -:        -:13447:   { nir_search_value_expression, 0 },
        -:        -:13448:   false,
        -:        -:13449:   nir_op_vec2,
        -:        -:13450:   { &replace244_0_0_0.value, &replace244_0_0_1.value },
        -:        -:13451:   NULL,
        -:        -:13452:};
        -:        -:13453:static const nir_search_expression replace244_0 = {
        -:        -:13454:   { nir_search_value_expression, 0 },
        -:        -:13455:   false,
        -:        -:13456:   nir_op_u2f32,
        -:        -:13457:   { &replace244_0_0.value },
        -:        -:13458:   NULL,
        -:        -:13459:};
        -:        -:13460:
        -:        -:13461:static const nir_search_constant replace244_1 = {
        -:        -:13462:   { nir_search_value_constant, 0 },
        -:        -:13463:   nir_type_float, { 0x40efffe000000000 /* 65535.0 */ },
        -:        -:13464:};
        -:        -:13465:static const nir_search_expression replace244 = {
        -:        -:13466:   { nir_search_value_expression, 0 },
        -:        -:13467:   false,
        -:        -:13468:   nir_op_fdiv,
        -:        -:13469:   { &replace244_0.value, &replace244_1.value },
        -:        -:13470:   NULL,
        -:        -:13471:};
        -:        -:13472:
        -:        -:13473:static const struct transform nir_opt_algebraic_unpack_unorm_2x16_xforms[] = {
        -:        -:13474:   { &search244, &replace244.value, 33 },
        -:        -:13475:};
        -:        -:13476:   
        -:        -:13477:static const nir_search_variable search246_0 = {
        -:        -:13478:   { nir_search_value_variable, 0 },
        -:        -:13479:   0, /* v */
        -:        -:13480:   false,
        -:        -:13481:   nir_type_invalid,
        -:        -:13482:   NULL,
        -:        -:13483:};
        -:        -:13484:static const nir_search_expression search246 = {
        -:        -:13485:   { nir_search_value_expression, 0 },
        -:        -:13486:   false,
        -:        -:13487:   nir_op_unpack_snorm_2x16,
        -:        -:13488:   { &search246_0.value },
        -:        -:13489:   NULL,
        -:        -:13490:};
        -:        -:13491:   
        -:        -:13492:static const nir_search_constant replace246_0 = {
        -:        -:13493:   { nir_search_value_constant, 0 },
        -:        -:13494:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:13495:};
        -:        -:13496:
        -:        -:13497:static const nir_search_constant replace246_1_0 = {
        -:        -:13498:   { nir_search_value_constant, 0 },
        -:        -:13499:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -:13500:};
        -:        -:13501:
        -:        -:13502:static const nir_search_variable replace246_1_1_0_0_0_0 = {
        -:        -:13503:   { nir_search_value_variable, 0 },
        -:        -:13504:   0, /* v */
        -:        -:13505:   false,
        -:        -:13506:   nir_type_invalid,
        -:        -:13507:   NULL,
        -:        -:13508:};
        -:        -:13509:
        -:        -:13510:static const nir_search_constant replace246_1_1_0_0_0_1 = {
        -:        -:13511:   { nir_search_value_constant, 0 },
        -:        -:13512:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:13513:};
        -:        -:13514:static const nir_search_expression replace246_1_1_0_0_0 = {
        -:        -:13515:   { nir_search_value_expression, 0 },
        -:        -:13516:   false,
        -:        -:13517:   nir_op_extract_i16,
        -:        -:13518:   { &replace246_1_1_0_0_0_0.value, &replace246_1_1_0_0_0_1.value },
        -:        -:13519:   NULL,
        -:        -:13520:};
        -:        -:13521:
        -:        -:13522:static const nir_search_variable replace246_1_1_0_0_1_0 = {
        -:        -:13523:   { nir_search_value_variable, 0 },
        -:        -:13524:   0, /* v */
        -:        -:13525:   false,
        -:        -:13526:   nir_type_invalid,
        -:        -:13527:   NULL,
        -:        -:13528:};
        -:        -:13529:
        -:        -:13530:static const nir_search_constant replace246_1_1_0_0_1_1 = {
        -:        -:13531:   { nir_search_value_constant, 0 },
        -:        -:13532:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:13533:};
        -:        -:13534:static const nir_search_expression replace246_1_1_0_0_1 = {
        -:        -:13535:   { nir_search_value_expression, 0 },
        -:        -:13536:   false,
        -:        -:13537:   nir_op_extract_i16,
        -:        -:13538:   { &replace246_1_1_0_0_1_0.value, &replace246_1_1_0_0_1_1.value },
        -:        -:13539:   NULL,
        -:        -:13540:};
        -:        -:13541:static const nir_search_expression replace246_1_1_0_0 = {
        -:        -:13542:   { nir_search_value_expression, 0 },
        -:        -:13543:   false,
        -:        -:13544:   nir_op_vec2,
        -:        -:13545:   { &replace246_1_1_0_0_0.value, &replace246_1_1_0_0_1.value },
        -:        -:13546:   NULL,
        -:        -:13547:};
        -:        -:13548:static const nir_search_expression replace246_1_1_0 = {
        -:        -:13549:   { nir_search_value_expression, 0 },
        -:        -:13550:   false,
        -:        -:13551:   nir_op_i2f32,
        -:        -:13552:   { &replace246_1_1_0_0.value },
        -:        -:13553:   NULL,
        -:        -:13554:};
        -:        -:13555:
        -:        -:13556:static const nir_search_constant replace246_1_1_1 = {
        -:        -:13557:   { nir_search_value_constant, 0 },
        -:        -:13558:   nir_type_float, { 0x40dfffc000000000 /* 32767.0 */ },
        -:        -:13559:};
        -:        -:13560:static const nir_search_expression replace246_1_1 = {
        -:        -:13561:   { nir_search_value_expression, 0 },
        -:        -:13562:   false,
        -:        -:13563:   nir_op_fdiv,
        -:        -:13564:   { &replace246_1_1_0.value, &replace246_1_1_1.value },
        -:        -:13565:   NULL,
        -:        -:13566:};
        -:        -:13567:static const nir_search_expression replace246_1 = {
        -:        -:13568:   { nir_search_value_expression, 0 },
        -:        -:13569:   false,
        -:        -:13570:   nir_op_fmax,
        -:        -:13571:   { &replace246_1_0.value, &replace246_1_1.value },
        -:        -:13572:   NULL,
        -:        -:13573:};
        -:        -:13574:static const nir_search_expression replace246 = {
        -:        -:13575:   { nir_search_value_expression, 0 },
        -:        -:13576:   false,
        -:        -:13577:   nir_op_fmin,
        -:        -:13578:   { &replace246_0.value, &replace246_1.value },
        -:        -:13579:   NULL,
        -:        -:13580:};
        -:        -:13581:
        -:        -:13582:static const struct transform nir_opt_algebraic_unpack_snorm_2x16_xforms[] = {
        -:        -:13583:   { &search246, &replace246.value, 35 },
        -:        -:13584:};
        -:        -:13585:   
        -:        -:13586:static const nir_search_variable search81_0 = {
        -:        -:13587:   { nir_search_value_variable, 0 },
        -:        -:13588:   0, /* a */
        -:        -:13589:   false,
        -:        -:13590:   nir_type_invalid,
        -:        -:13591:   NULL,
        -:        -:13592:};
        -:        -:13593:
        -:        -:13594:static const nir_search_variable search81_1 = {
        -:        -:13595:   { nir_search_value_variable, 0 },
        -:        -:13596:   0, /* a */
        -:        -:13597:   false,
        -:        -:13598:   nir_type_invalid,
        -:        -:13599:   NULL,
        -:        -:13600:};
        -:        -:13601:static const nir_search_expression search81 = {
        -:        -:13602:   { nir_search_value_expression, 0 },
        -:        -:13603:   false,
        -:        -:13604:   nir_op_imax,
        -:        -:13605:   { &search81_0.value, &search81_1.value },
        -:        -:13606:   NULL,
        -:        -:13607:};
        -:        -:13608:   
        -:        -:13609:static const nir_search_variable replace81 = {
        -:        -:13610:   { nir_search_value_variable, 0 },
        -:        -:13611:   0, /* a */
        -:        -:13612:   false,
        -:        -:13613:   nir_type_invalid,
        -:        -:13614:   NULL,
        -:        -:13615:};
        -:        -:13616:   
        -:        -:13617:static const nir_search_variable search91_0 = {
        -:        -:13618:   { nir_search_value_variable, 0 },
        -:        -:13619:   0, /* a */
        -:        -:13620:   false,
        -:        -:13621:   nir_type_invalid,
        -:        -:13622:   NULL,
        -:        -:13623:};
        -:        -:13624:
        -:        -:13625:static const nir_search_variable search91_1_0_0 = {
        -:        -:13626:   { nir_search_value_variable, 0 },
        -:        -:13627:   0, /* a */
        -:        -:13628:   false,
        -:        -:13629:   nir_type_invalid,
        -:        -:13630:   NULL,
        -:        -:13631:};
        -:        -:13632:static const nir_search_expression search91_1_0 = {
        -:        -:13633:   { nir_search_value_expression, 0 },
        -:        -:13634:   false,
        -:        -:13635:   nir_op_iabs,
        -:        -:13636:   { &search91_1_0_0.value },
        -:        -:13637:   NULL,
        -:        -:13638:};
        -:        -:13639:static const nir_search_expression search91_1 = {
        -:        -:13640:   { nir_search_value_expression, 0 },
        -:        -:13641:   false,
        -:        -:13642:   nir_op_ineg,
        -:        -:13643:   { &search91_1_0.value },
        -:        -:13644:   NULL,
        -:        -:13645:};
        -:        -:13646:static const nir_search_expression search91 = {
        -:        -:13647:   { nir_search_value_expression, 0 },
        -:        -:13648:   false,
        -:        -:13649:   nir_op_imax,
        -:        -:13650:   { &search91_0.value, &search91_1.value },
        -:        -:13651:   NULL,
        -:        -:13652:};
        -:        -:13653:   
        -:        -:13654:static const nir_search_variable replace91 = {
        -:        -:13655:   { nir_search_value_variable, 0 },
        -:        -:13656:   0, /* a */
        -:        -:13657:   false,
        -:        -:13658:   nir_type_invalid,
        -:        -:13659:   NULL,
        -:        -:13660:};
        -:        -:13661:   
        -:        -:13662:static const nir_search_variable search93_0 = {
        -:        -:13663:   { nir_search_value_variable, 0 },
        -:        -:13664:   0, /* a */
        -:        -:13665:   false,
        -:        -:13666:   nir_type_invalid,
        -:        -:13667:   NULL,
        -:        -:13668:};
        -:        -:13669:
        -:        -:13670:static const nir_search_variable search93_1_0 = {
        -:        -:13671:   { nir_search_value_variable, 0 },
        -:        -:13672:   0, /* a */
        -:        -:13673:   false,
        -:        -:13674:   nir_type_invalid,
        -:        -:13675:   NULL,
        -:        -:13676:};
        -:        -:13677:static const nir_search_expression search93_1 = {
        -:        -:13678:   { nir_search_value_expression, 0 },
        -:        -:13679:   false,
        -:        -:13680:   nir_op_iabs,
        -:        -:13681:   { &search93_1_0.value },
        -:        -:13682:   NULL,
        -:        -:13683:};
        -:        -:13684:static const nir_search_expression search93 = {
        -:        -:13685:   { nir_search_value_expression, 0 },
        -:        -:13686:   false,
        -:        -:13687:   nir_op_imax,
        -:        -:13688:   { &search93_0.value, &search93_1.value },
        -:        -:13689:   NULL,
        -:        -:13690:};
        -:        -:13691:   
        -:        -:13692:static const nir_search_variable replace93_0 = {
        -:        -:13693:   { nir_search_value_variable, 0 },
        -:        -:13694:   0, /* a */
        -:        -:13695:   false,
        -:        -:13696:   nir_type_invalid,
        -:        -:13697:   NULL,
        -:        -:13698:};
        -:        -:13699:static const nir_search_expression replace93 = {
        -:        -:13700:   { nir_search_value_expression, 0 },
        -:        -:13701:   false,
        -:        -:13702:   nir_op_iabs,
        -:        -:13703:   { &replace93_0.value },
        -:        -:13704:   NULL,
        -:        -:13705:};
        -:        -:13706:   
        -:        -:13707:static const nir_search_variable search95_0 = {
        -:        -:13708:   { nir_search_value_variable, 0 },
        -:        -:13709:   0, /* a */
        -:        -:13710:   false,
        -:        -:13711:   nir_type_invalid,
        -:        -:13712:   NULL,
        -:        -:13713:};
        -:        -:13714:
        -:        -:13715:static const nir_search_variable search95_1_0 = {
        -:        -:13716:   { nir_search_value_variable, 0 },
        -:        -:13717:   0, /* a */
        -:        -:13718:   false,
        -:        -:13719:   nir_type_invalid,
        -:        -:13720:   NULL,
        -:        -:13721:};
        -:        -:13722:static const nir_search_expression search95_1 = {
        -:        -:13723:   { nir_search_value_expression, 0 },
        -:        -:13724:   false,
        -:        -:13725:   nir_op_ineg,
        -:        -:13726:   { &search95_1_0.value },
        -:        -:13727:   NULL,
        -:        -:13728:};
        -:        -:13729:static const nir_search_expression search95 = {
        -:        -:13730:   { nir_search_value_expression, 0 },
        -:        -:13731:   false,
        -:        -:13732:   nir_op_imax,
        -:        -:13733:   { &search95_0.value, &search95_1.value },
        -:        -:13734:   NULL,
        -:        -:13735:};
        -:        -:13736:   
        -:        -:13737:static const nir_search_variable replace95_0 = {
        -:        -:13738:   { nir_search_value_variable, 0 },
        -:        -:13739:   0, /* a */
        -:        -:13740:   false,
        -:        -:13741:   nir_type_invalid,
        -:        -:13742:   NULL,
        -:        -:13743:};
        -:        -:13744:static const nir_search_expression replace95 = {
        -:        -:13745:   { nir_search_value_expression, 0 },
        -:        -:13746:   false,
        -:        -:13747:   nir_op_iabs,
        -:        -:13748:   { &replace95_0.value },
        -:        -:13749:   NULL,
        -:        -:13750:};
        -:        -:13751:
        -:        -:13752:static const struct transform nir_opt_algebraic_imax_xforms[] = {
        -:        -:13753:   { &search81, &replace81.value, 0 },
        -:        -:13754:   { &search91, &replace91.value, 0 },
        -:        -:13755:   { &search93, &replace93.value, 0 },
        -:        -:13756:   { &search95, &replace95.value, 0 },
        -:        -:13757:};
        -:        -:13758:   
        -:        -:13759:static const nir_search_variable search98_0 = {
        -:        -:13760:   { nir_search_value_variable, 0 },
        -:        -:13761:   0, /* a */
        -:        -:13762:   false,
        -:        -:13763:   nir_type_invalid,
        -:        -:13764:   NULL,
        -:        -:13765:};
        -:        -:13766:static const nir_search_expression search98 = {
        -:        -:13767:   { nir_search_value_expression, 0 },
        -:        -:13768:   false,
        -:        -:13769:   nir_op_fsat,
        -:        -:13770:   { &search98_0.value },
        -:        -:13771:   NULL,
        -:        -:13772:};
        -:        -:13773:   
        -:        -:13774:static const nir_search_variable replace98_0_0 = {
        -:        -:13775:   { nir_search_value_variable, 0 },
        -:        -:13776:   0, /* a */
        -:        -:13777:   false,
        -:        -:13778:   nir_type_invalid,
        -:        -:13779:   NULL,
        -:        -:13780:};
        -:        -:13781:
        -:        -:13782:static const nir_search_constant replace98_0_1 = {
        -:        -:13783:   { nir_search_value_constant, 0 },
        -:        -:13784:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:13785:};
        -:        -:13786:static const nir_search_expression replace98_0 = {
        -:        -:13787:   { nir_search_value_expression, 0 },
        -:        -:13788:   false,
        -:        -:13789:   nir_op_fmax,
        -:        -:13790:   { &replace98_0_0.value, &replace98_0_1.value },
        -:        -:13791:   NULL,
        -:        -:13792:};
        -:        -:13793:
        -:        -:13794:static const nir_search_constant replace98_1 = {
        -:        -:13795:   { nir_search_value_constant, 0 },
        -:        -:13796:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:13797:};
        -:        -:13798:static const nir_search_expression replace98 = {
        -:        -:13799:   { nir_search_value_expression, 0 },
        -:        -:13800:   false,
        -:        -:13801:   nir_op_fmin,
        -:        -:13802:   { &replace98_0.value, &replace98_1.value },
        -:        -:13803:   NULL,
        -:        -:13804:};
        -:        -:13805:   
        -:        -:13806:static const nir_search_variable search99_0_0 = {
        -:        -:13807:   { nir_search_value_variable, 0 },
        -:        -:13808:   0, /* a */
        -:        -:13809:   false,
        -:        -:13810:   nir_type_invalid,
        -:        -:13811:   NULL,
        -:        -:13812:};
        -:        -:13813:static const nir_search_expression search99_0 = {
        -:        -:13814:   { nir_search_value_expression, 0 },
        -:        -:13815:   false,
        -:        -:13816:   nir_op_fsat,
        -:        -:13817:   { &search99_0_0.value },
        -:        -:13818:   NULL,
        -:        -:13819:};
        -:        -:13820:static const nir_search_expression search99 = {
        -:        -:13821:   { nir_search_value_expression, 0 },
        -:        -:13822:   false,
        -:        -:13823:   nir_op_fsat,
        -:        -:13824:   { &search99_0.value },
        -:        -:13825:   NULL,
        -:        -:13826:};
        -:        -:13827:   
        -:        -:13828:static const nir_search_variable replace99_0 = {
        -:        -:13829:   { nir_search_value_variable, 0 },
        -:        -:13830:   0, /* a */
        -:        -:13831:   false,
        -:        -:13832:   nir_type_invalid,
        -:        -:13833:   NULL,
        -:        -:13834:};
        -:        -:13835:static const nir_search_expression replace99 = {
        -:        -:13836:   { nir_search_value_expression, 0 },
        -:        -:13837:   false,
        -:        -:13838:   nir_op_fsat,
        -:        -:13839:   { &replace99_0.value },
        -:        -:13840:   NULL,
        -:        -:13841:};
        -:        -:13842:   
        -:        -:13843:static const nir_search_variable search122_0_0_0 = {
        -:        -:13844:   { nir_search_value_variable, 0 },
        -:        -:13845:   0, /* a */
        -:        -:13846:   false,
        -:        -:13847:   nir_type_invalid,
        -:        -:13848:   NULL,
        -:        -:13849:};
        -:        -:13850:static const nir_search_expression search122_0_0 = {
        -:        -:13851:   { nir_search_value_expression, 0 },
        -:        -:13852:   false,
        -:        -:13853:   nir_op_b2f,
        -:        -:13854:   { &search122_0_0_0.value },
        -:        -:13855:   NULL,
        -:        -:13856:};
        -:        -:13857:
        -:        -:13858:static const nir_search_variable search122_0_1_0 = {
        -:        -:13859:   { nir_search_value_variable, 0 },
        -:        -:13860:   1, /* b */
        -:        -:13861:   false,
        -:        -:13862:   nir_type_invalid,
        -:        -:13863:   NULL,
        -:        -:13864:};
        -:        -:13865:static const nir_search_expression search122_0_1 = {
        -:        -:13866:   { nir_search_value_expression, 0 },
        -:        -:13867:   false,
        -:        -:13868:   nir_op_b2f,
        -:        -:13869:   { &search122_0_1_0.value },
        -:        -:13870:   NULL,
        -:        -:13871:};
        -:        -:13872:static const nir_search_expression search122_0 = {
        -:        -:13873:   { nir_search_value_expression, 0 },
        -:        -:13874:   false,
        -:        -:13875:   nir_op_fadd,
        -:        -:13876:   { &search122_0_0.value, &search122_0_1.value },
        -:        -:13877:   NULL,
        -:        -:13878:};
        -:        -:13879:static const nir_search_expression search122 = {
        -:        -:13880:   { nir_search_value_expression, 0 },
        -:        -:13881:   false,
        -:        -:13882:   nir_op_fsat,
        -:        -:13883:   { &search122_0.value },
        -:        -:13884:   NULL,
        -:        -:13885:};
        -:        -:13886:   
        -:        -:13887:static const nir_search_variable replace122_0_0 = {
        -:        -:13888:   { nir_search_value_variable, 0 },
        -:        -:13889:   0, /* a */
        -:        -:13890:   false,
        -:        -:13891:   nir_type_invalid,
        -:        -:13892:   NULL,
        -:        -:13893:};
        -:        -:13894:
        -:        -:13895:static const nir_search_variable replace122_0_1 = {
        -:        -:13896:   { nir_search_value_variable, 0 },
        -:        -:13897:   1, /* b */
        -:        -:13898:   false,
        -:        -:13899:   nir_type_invalid,
        -:        -:13900:   NULL,
        -:        -:13901:};
        -:        -:13902:static const nir_search_expression replace122_0 = {
        -:        -:13903:   { nir_search_value_expression, 0 },
        -:        -:13904:   false,
        -:        -:13905:   nir_op_ior,
        -:        -:13906:   { &replace122_0_0.value, &replace122_0_1.value },
        -:        -:13907:   NULL,
        -:        -:13908:};
        -:        -:13909:static const nir_search_expression replace122 = {
        -:        -:13910:   { nir_search_value_expression, 0 },
        -:        -:13911:   false,
        -:        -:13912:   nir_op_b2f,
        -:        -:13913:   { &replace122_0.value },
        -:        -:13914:   NULL,
        -:        -:13915:};
        -:        -:13916:
        -:        -:13917:static const struct transform nir_opt_algebraic_fsat_xforms[] = {
        -:        -:13918:   { &search98, &replace98.value, 10 },
        -:        -:13919:   { &search99, &replace99.value, 0 },
        -:        -:13920:   { &search122, &replace122.value, 0 },
        -:        -:13921:};
        -:        -:13922:   
        -:        -:13923:static const nir_search_variable search239_0 = {
        -:        -:13924:   { nir_search_value_variable, 0 },
        -:        -:13925:   0, /* a */
        -:        -:13926:   false,
        -:        -:13927:   nir_type_invalid,
        -:        -:13928:   NULL,
        -:        -:13929:};
        -:        -:13930:
        -:        -:13931:static const nir_search_variable search239_1 = {
        -:        -:13932:   { nir_search_value_variable, 32 },
        -:        -:13933:   1, /* b */
        -:        -:13934:   false,
        -:        -:13935:   nir_type_invalid,
        -:        -:13936:   NULL,
        -:        -:13937:};
        -:        -:13938:static const nir_search_expression search239 = {
        -:        -:13939:   { nir_search_value_expression, 0 },
        -:        -:13940:   false,
        -:        -:13941:   nir_op_extract_u16,
        -:        -:13942:   { &search239_0.value, &search239_1.value },
        -:        -:13943:   NULL,
        -:        -:13944:};
        -:        -:13945:   
        -:        -:13946:static const nir_search_variable replace239_0_0 = {
        -:        -:13947:   { nir_search_value_variable, 0 },
        -:        -:13948:   0, /* a */
        -:        -:13949:   false,
        -:        -:13950:   nir_type_invalid,
        -:        -:13951:   NULL,
        -:        -:13952:};
        -:        -:13953:
        -:        -:13954:static const nir_search_variable replace239_0_1_0 = {
        -:        -:13955:   { nir_search_value_variable, 0 },
        -:        -:13956:   1, /* b */
        -:        -:13957:   false,
        -:        -:13958:   nir_type_invalid,
        -:        -:13959:   NULL,
        -:        -:13960:};
        -:        -:13961:
        -:        -:13962:static const nir_search_constant replace239_0_1_1 = {
        -:        -:13963:   { nir_search_value_constant, 0 },
        -:        -:13964:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:13965:};
        -:        -:13966:static const nir_search_expression replace239_0_1 = {
        -:        -:13967:   { nir_search_value_expression, 0 },
        -:        -:13968:   false,
        -:        -:13969:   nir_op_imul,
        -:        -:13970:   { &replace239_0_1_0.value, &replace239_0_1_1.value },
        -:        -:13971:   NULL,
        -:        -:13972:};
        -:        -:13973:static const nir_search_expression replace239_0 = {
        -:        -:13974:   { nir_search_value_expression, 0 },
        -:        -:13975:   false,
        -:        -:13976:   nir_op_ushr,
        -:        -:13977:   { &replace239_0_0.value, &replace239_0_1.value },
        -:        -:13978:   NULL,
        -:        -:13979:};
        -:        -:13980:
        -:        -:13981:static const nir_search_constant replace239_1 = {
        -:        -:13982:   { nir_search_value_constant, 0 },
        -:        -:13983:   nir_type_int, { 0xffff /* 65535 */ },
        -:        -:13984:};
        -:        -:13985:static const nir_search_expression replace239 = {
        -:        -:13986:   { nir_search_value_expression, 0 },
        -:        -:13987:   false,
        -:        -:13988:   nir_op_iand,
        -:        -:13989:   { &replace239_0.value, &replace239_1.value },
        -:        -:13990:   NULL,
        -:        -:13991:};
        -:        -:13992:
        -:        -:13993:static const struct transform nir_opt_algebraic_extract_u16_xforms[] = {
        -:        -:13994:   { &search239, &replace239.value, 28 },
        -:        -:13995:};
        -:        -:13996:   
        -:        -:13997:static const nir_search_constant search69_0 = {
        -:        -:13998:   { nir_search_value_constant, 0 },
        -:        -:13999:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:14000:};
        -:        -:14001:
        -:        -:14002:static const nir_search_variable search69_1_0 = {
        -:        -:14003:   { nir_search_value_variable, 0 },
        -:        -:14004:   0, /* a */
        -:        -:14005:   false,
        -:        -:14006:   nir_type_invalid,
        -:        -:14007:   NULL,
        -:        -:14008:};
        -:        -:14009:static const nir_search_expression search69_1 = {
        -:        -:14010:   { nir_search_value_expression, 0 },
        -:        -:14011:   false,
        -:        -:14012:   nir_op_b2f,
        -:        -:14013:   { &search69_1_0.value },
        -:        -:14014:   NULL,
        -:        -:14015:};
        -:        -:14016:static const nir_search_expression search69 = {
        -:        -:14017:   { nir_search_value_expression, 0 },
        -:        -:14018:   false,
        -:        -:14019:   nir_op_fge,
        -:        -:14020:   { &search69_0.value, &search69_1.value },
        -:        -:14021:   NULL,
        -:        -:14022:};
        -:        -:14023:   
        -:        -:14024:static const nir_search_variable replace69_0 = {
        -:        -:14025:   { nir_search_value_variable, 0 },
        -:        -:14026:   0, /* a */
        -:        -:14027:   false,
        -:        -:14028:   nir_type_invalid,
        -:        -:14029:   NULL,
        -:        -:14030:};
        -:        -:14031:static const nir_search_expression replace69 = {
        -:        -:14032:   { nir_search_value_expression, 0 },
        -:        -:14033:   false,
        -:        -:14034:   nir_op_inot,
        -:        -:14035:   { &replace69_0.value },
        -:        -:14036:   NULL,
        -:        -:14037:};
        -:        -:14038:   
        -:        -:14039:static const nir_search_variable search70_0_0_0 = {
        -:        -:14040:   { nir_search_value_variable, 0 },
        -:        -:14041:   0, /* a */
        -:        -:14042:   false,
        -:        -:14043:   nir_type_invalid,
        -:        -:14044:   NULL,
        -:        -:14045:};
        -:        -:14046:static const nir_search_expression search70_0_0 = {
        -:        -:14047:   { nir_search_value_expression, 0 },
        -:        -:14048:   false,
        -:        -:14049:   nir_op_b2f,
        -:        -:14050:   { &search70_0_0_0.value },
        -:        -:14051:   NULL,
        -:        -:14052:};
        -:        -:14053:static const nir_search_expression search70_0 = {
        -:        -:14054:   { nir_search_value_expression, 0 },
        -:        -:14055:   false,
        -:        -:14056:   nir_op_fneg,
        -:        -:14057:   { &search70_0_0.value },
        -:        -:14058:   NULL,
        -:        -:14059:};
        -:        -:14060:
        -:        -:14061:static const nir_search_constant search70_1 = {
        -:        -:14062:   { nir_search_value_constant, 0 },
        -:        -:14063:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:14064:};
        -:        -:14065:static const nir_search_expression search70 = {
        -:        -:14066:   { nir_search_value_expression, 0 },
        -:        -:14067:   false,
        -:        -:14068:   nir_op_fge,
        -:        -:14069:   { &search70_0.value, &search70_1.value },
        -:        -:14070:   NULL,
        -:        -:14071:};
        -:        -:14072:   
        -:        -:14073:static const nir_search_variable replace70_0 = {
        -:        -:14074:   { nir_search_value_variable, 0 },
        -:        -:14075:   0, /* a */
        -:        -:14076:   false,
        -:        -:14077:   nir_type_invalid,
        -:        -:14078:   NULL,
        -:        -:14079:};
        -:        -:14080:static const nir_search_expression replace70 = {
        -:        -:14081:   { nir_search_value_expression, 0 },
        -:        -:14082:   false,
        -:        -:14083:   nir_op_inot,
        -:        -:14084:   { &replace70_0.value },
        -:        -:14085:   NULL,
        -:        -:14086:};
        -:        -:14087:   
        -:        -:14088:static const nir_search_variable search72_0_0_0 = {
        -:        -:14089:   { nir_search_value_variable, 0 },
        -:        -:14090:   0, /* a */
        -:        -:14091:   false,
        -:        -:14092:   nir_type_invalid,
        -:        -:14093:   NULL,
        -:        -:14094:};
        -:        -:14095:static const nir_search_expression search72_0_0 = {
        -:        -:14096:   { nir_search_value_expression, 0 },
        -:        -:14097:   false,
        -:        -:14098:   nir_op_fabs,
        -:        -:14099:   { &search72_0_0_0.value },
        -:        -:14100:   NULL,
        -:        -:14101:};
        -:        -:14102:static const nir_search_expression search72_0 = {
        -:        -:14103:   { nir_search_value_expression, 0 },
        -:        -:14104:   false,
        -:        -:14105:   nir_op_fneg,
        -:        -:14106:   { &search72_0_0.value },
        -:        -:14107:   NULL,
        -:        -:14108:};
        -:        -:14109:
        -:        -:14110:static const nir_search_constant search72_1 = {
        -:        -:14111:   { nir_search_value_constant, 0 },
        -:        -:14112:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:14113:};
        -:        -:14114:static const nir_search_expression search72 = {
        -:        -:14115:   { nir_search_value_expression, 0 },
        -:        -:14116:   false,
        -:        -:14117:   nir_op_fge,
        -:        -:14118:   { &search72_0.value, &search72_1.value },
        -:        -:14119:   NULL,
        -:        -:14120:};
        -:        -:14121:   
        -:        -:14122:static const nir_search_variable replace72_0 = {
        -:        -:14123:   { nir_search_value_variable, 0 },
        -:        -:14124:   0, /* a */
        -:        -:14125:   false,
        -:        -:14126:   nir_type_invalid,
        -:        -:14127:   NULL,
        -:        -:14128:};
        -:        -:14129:
        -:        -:14130:static const nir_search_constant replace72_1 = {
        -:        -:14131:   { nir_search_value_constant, 0 },
        -:        -:14132:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:14133:};
        -:        -:14134:static const nir_search_expression replace72 = {
        -:        -:14135:   { nir_search_value_expression, 0 },
        -:        -:14136:   false,
        -:        -:14137:   nir_op_feq,
        -:        -:14138:   { &replace72_0.value, &replace72_1.value },
        -:        -:14139:   NULL,
        -:        -:14140:};
        -:        -:14141:   
        -:        -:14142:static const nir_search_variable search259_0_0 = {
        -:        -:14143:   { nir_search_value_variable, 0 },
        -:        -:14144:   0, /* a */
        -:        -:14145:   false,
        -:        -:14146:   nir_type_invalid,
        -:        -:14147:   NULL,
        -:        -:14148:};
        -:        -:14149:
        -:        -:14150:static const nir_search_variable search259_0_1 = {
        -:        -:14151:   { nir_search_value_variable, 0 },
        -:        -:14152:   1, /* b */
        -:        -:14153:   true,
        -:        -:14154:   nir_type_invalid,
        -:        -:14155:   NULL,
        -:        -:14156:};
        -:        -:14157:
        -:        -:14158:static const nir_search_variable search259_0_2 = {
        -:        -:14159:   { nir_search_value_variable, 0 },
        -:        -:14160:   2, /* c */
        -:        -:14161:   true,
        -:        -:14162:   nir_type_invalid,
        -:        -:14163:   NULL,
        -:        -:14164:};
        -:        -:14165:static const nir_search_expression search259_0 = {
        -:        -:14166:   { nir_search_value_expression, 0 },
        -:        -:14167:   false,
        -:        -:14168:   nir_op_bcsel,
        -:        -:14169:   { &search259_0_0.value, &search259_0_1.value, &search259_0_2.value },
        -:        -:14170:   NULL,
        -:        -:14171:};
        -:        -:14172:
        -:        -:14173:static const nir_search_variable search259_1 = {
        -:        -:14174:   { nir_search_value_variable, 0 },
        -:        -:14175:   3, /* d */
        -:        -:14176:   true,
        -:        -:14177:   nir_type_invalid,
        -:        -:14178:   NULL,
        -:        -:14179:};
        -:        -:14180:static const nir_search_expression search259 = {
        -:        -:14181:   { nir_search_value_expression, 0 },
        -:        -:14182:   false,
        -:        -:14183:   nir_op_fge,
        -:        -:14184:   { &search259_0.value, &search259_1.value },
        -:        -:14185:   NULL,
        -:        -:14186:};
        -:        -:14187:   
        -:        -:14188:static const nir_search_variable replace259_0 = {
        -:        -:14189:   { nir_search_value_variable, 0 },
        -:        -:14190:   0, /* a */
        -:        -:14191:   false,
        -:        -:14192:   nir_type_invalid,
        -:        -:14193:   NULL,
        -:        -:14194:};
        -:        -:14195:
        -:        -:14196:static const nir_search_variable replace259_1_0 = {
        -:        -:14197:   { nir_search_value_variable, 0 },
        -:        -:14198:   1, /* b */
        -:        -:14199:   false,
        -:        -:14200:   nir_type_invalid,
        -:        -:14201:   NULL,
        -:        -:14202:};
        -:        -:14203:
        -:        -:14204:static const nir_search_variable replace259_1_1 = {
        -:        -:14205:   { nir_search_value_variable, 0 },
        -:        -:14206:   3, /* d */
        -:        -:14207:   false,
        -:        -:14208:   nir_type_invalid,
        -:        -:14209:   NULL,
        -:        -:14210:};
        -:        -:14211:static const nir_search_expression replace259_1 = {
        -:        -:14212:   { nir_search_value_expression, 0 },
        -:        -:14213:   false,
        -:        -:14214:   nir_op_fge,
        -:        -:14215:   { &replace259_1_0.value, &replace259_1_1.value },
        -:        -:14216:   NULL,
        -:        -:14217:};
        -:        -:14218:
        -:        -:14219:static const nir_search_variable replace259_2_0 = {
        -:        -:14220:   { nir_search_value_variable, 0 },
        -:        -:14221:   2, /* c */
        -:        -:14222:   false,
        -:        -:14223:   nir_type_invalid,
        -:        -:14224:   NULL,
        -:        -:14225:};
        -:        -:14226:
        -:        -:14227:static const nir_search_variable replace259_2_1 = {
        -:        -:14228:   { nir_search_value_variable, 0 },
        -:        -:14229:   3, /* d */
        -:        -:14230:   false,
        -:        -:14231:   nir_type_invalid,
        -:        -:14232:   NULL,
        -:        -:14233:};
        -:        -:14234:static const nir_search_expression replace259_2 = {
        -:        -:14235:   { nir_search_value_expression, 0 },
        -:        -:14236:   false,
        -:        -:14237:   nir_op_fge,
        -:        -:14238:   { &replace259_2_0.value, &replace259_2_1.value },
        -:        -:14239:   NULL,
        -:        -:14240:};
        -:        -:14241:static const nir_search_expression replace259 = {
        -:        -:14242:   { nir_search_value_expression, 0 },
        -:        -:14243:   false,
        -:        -:14244:   nir_op_bcsel,
        -:        -:14245:   { &replace259_0.value, &replace259_1.value, &replace259_2.value },
        -:        -:14246:   NULL,
        -:        -:14247:};
        -:        -:14248:   
        -:        -:14249:static const nir_search_variable search260_0 = {
        -:        -:14250:   { nir_search_value_variable, 0 },
        -:        -:14251:   0, /* d */
        -:        -:14252:   true,
        -:        -:14253:   nir_type_invalid,
        -:        -:14254:   NULL,
        -:        -:14255:};
        -:        -:14256:
        -:        -:14257:static const nir_search_variable search260_1_0 = {
        -:        -:14258:   { nir_search_value_variable, 0 },
        -:        -:14259:   1, /* a */
        -:        -:14260:   false,
        -:        -:14261:   nir_type_invalid,
        -:        -:14262:   NULL,
        -:        -:14263:};
        -:        -:14264:
        -:        -:14265:static const nir_search_variable search260_1_1 = {
        -:        -:14266:   { nir_search_value_variable, 0 },
        -:        -:14267:   2, /* b */
        -:        -:14268:   true,
        -:        -:14269:   nir_type_invalid,
        -:        -:14270:   NULL,
        -:        -:14271:};
        -:        -:14272:
        -:        -:14273:static const nir_search_variable search260_1_2 = {
        -:        -:14274:   { nir_search_value_variable, 0 },
        -:        -:14275:   3, /* c */
        -:        -:14276:   true,
        -:        -:14277:   nir_type_invalid,
        -:        -:14278:   NULL,
        -:        -:14279:};
        -:        -:14280:static const nir_search_expression search260_1 = {
        -:        -:14281:   { nir_search_value_expression, 0 },
        -:        -:14282:   false,
        -:        -:14283:   nir_op_bcsel,
        -:        -:14284:   { &search260_1_0.value, &search260_1_1.value, &search260_1_2.value },
        -:        -:14285:   NULL,
        -:        -:14286:};
        -:        -:14287:static const nir_search_expression search260 = {
        -:        -:14288:   { nir_search_value_expression, 0 },
        -:        -:14289:   false,
        -:        -:14290:   nir_op_fge,
        -:        -:14291:   { &search260_0.value, &search260_1.value },
        -:        -:14292:   NULL,
        -:        -:14293:};
        -:        -:14294:   
        -:        -:14295:static const nir_search_variable replace260_0 = {
        -:        -:14296:   { nir_search_value_variable, 0 },
        -:        -:14297:   1, /* a */
        -:        -:14298:   false,
        -:        -:14299:   nir_type_invalid,
        -:        -:14300:   NULL,
        -:        -:14301:};
        -:        -:14302:
        -:        -:14303:static const nir_search_variable replace260_1_0 = {
        -:        -:14304:   { nir_search_value_variable, 0 },
        -:        -:14305:   0, /* d */
        -:        -:14306:   false,
        -:        -:14307:   nir_type_invalid,
        -:        -:14308:   NULL,
        -:        -:14309:};
        -:        -:14310:
        -:        -:14311:static const nir_search_variable replace260_1_1 = {
        -:        -:14312:   { nir_search_value_variable, 0 },
        -:        -:14313:   2, /* b */
        -:        -:14314:   false,
        -:        -:14315:   nir_type_invalid,
        -:        -:14316:   NULL,
        -:        -:14317:};
        -:        -:14318:static const nir_search_expression replace260_1 = {
        -:        -:14319:   { nir_search_value_expression, 0 },
        -:        -:14320:   false,
        -:        -:14321:   nir_op_fge,
        -:        -:14322:   { &replace260_1_0.value, &replace260_1_1.value },
        -:        -:14323:   NULL,
        -:        -:14324:};
        -:        -:14325:
        -:        -:14326:static const nir_search_variable replace260_2_0 = {
        -:        -:14327:   { nir_search_value_variable, 0 },
        -:        -:14328:   0, /* d */
        -:        -:14329:   false,
        -:        -:14330:   nir_type_invalid,
        -:        -:14331:   NULL,
        -:        -:14332:};
        -:        -:14333:
        -:        -:14334:static const nir_search_variable replace260_2_1 = {
        -:        -:14335:   { nir_search_value_variable, 0 },
        -:        -:14336:   3, /* c */
        -:        -:14337:   false,
        -:        -:14338:   nir_type_invalid,
        -:        -:14339:   NULL,
        -:        -:14340:};
        -:        -:14341:static const nir_search_expression replace260_2 = {
        -:        -:14342:   { nir_search_value_expression, 0 },
        -:        -:14343:   false,
        -:        -:14344:   nir_op_fge,
        -:        -:14345:   { &replace260_2_0.value, &replace260_2_1.value },
        -:        -:14346:   NULL,
        -:        -:14347:};
        -:        -:14348:static const nir_search_expression replace260 = {
        -:        -:14349:   { nir_search_value_expression, 0 },
        -:        -:14350:   false,
        -:        -:14351:   nir_op_bcsel,
        -:        -:14352:   { &replace260_0.value, &replace260_1.value, &replace260_2.value },
        -:        -:14353:   NULL,
        -:        -:14354:};
        -:        -:14355:
        -:        -:14356:static const struct transform nir_opt_algebraic_fge_xforms[] = {
        -:        -:14357:   { &search69, &replace69.value, 0 },
        -:        -:14358:   { &search70, &replace70.value, 0 },
        -:        -:14359:   { &search72, &replace72.value, 0 },
        -:        -:14360:   { &search259, &replace259.value, 0 },
        -:        -:14361:   { &search260, &replace260.value, 0 },
        -:        -:14362:};
        -:        -:14363:   
        -:        -:14364:static const nir_search_variable search166_0_0 = {
        -:        -:14365:   { nir_search_value_variable, 0 },
        -:        -:14366:   0, /* a */
        -:        -:14367:   false,
        -:        -:14368:   nir_type_invalid,
        -:        -:14369:   NULL,
        -:        -:14370:};
        -:        -:14371:static const nir_search_expression search166_0 = {
        -:        -:14372:   { nir_search_value_expression, 0 },
        -:        -:14373:   false,
        -:        -:14374:   nir_op_fexp2,
        -:        -:14375:   { &search166_0_0.value },
        -:        -:14376:   NULL,
        -:        -:14377:};
        -:        -:14378:static const nir_search_expression search166 = {
        -:        -:14379:   { nir_search_value_expression, 0 },
        -:        -:14380:   true,
        -:        -:14381:   nir_op_frcp,
        -:        -:14382:   { &search166_0.value },
        -:        -:14383:   NULL,
        -:        -:14384:};
        -:        -:14385:   
        -:        -:14386:static const nir_search_variable replace166_0_0 = {
        -:        -:14387:   { nir_search_value_variable, 0 },
        -:        -:14388:   0, /* a */
        -:        -:14389:   false,
        -:        -:14390:   nir_type_invalid,
        -:        -:14391:   NULL,
        -:        -:14392:};
        -:        -:14393:static const nir_search_expression replace166_0 = {
        -:        -:14394:   { nir_search_value_expression, 0 },
        -:        -:14395:   false,
        -:        -:14396:   nir_op_fneg,
        -:        -:14397:   { &replace166_0_0.value },
        -:        -:14398:   NULL,
        -:        -:14399:};
        -:        -:14400:static const nir_search_expression replace166 = {
        -:        -:14401:   { nir_search_value_expression, 0 },
        -:        -:14402:   false,
        -:        -:14403:   nir_op_fexp2,
        -:        -:14404:   { &replace166_0.value },
        -:        -:14405:   NULL,
        -:        -:14406:};
        -:        -:14407:   
        -:        -:14408:static const nir_search_variable search175_0_0 = {
        -:        -:14409:   { nir_search_value_variable, 0 },
        -:        -:14410:   0, /* a */
        -:        -:14411:   false,
        -:        -:14412:   nir_type_invalid,
        -:        -:14413:   NULL,
        -:        -:14414:};
        -:        -:14415:static const nir_search_expression search175_0 = {
        -:        -:14416:   { nir_search_value_expression, 0 },
        -:        -:14417:   false,
        -:        -:14418:   nir_op_frcp,
        -:        -:14419:   { &search175_0_0.value },
        -:        -:14420:   NULL,
        -:        -:14421:};
        -:        -:14422:static const nir_search_expression search175 = {
        -:        -:14423:   { nir_search_value_expression, 0 },
        -:        -:14424:   true,
        -:        -:14425:   nir_op_frcp,
        -:        -:14426:   { &search175_0.value },
        -:        -:14427:   NULL,
        -:        -:14428:};
        -:        -:14429:   
        -:        -:14430:static const nir_search_variable replace175 = {
        -:        -:14431:   { nir_search_value_variable, 0 },
        -:        -:14432:   0, /* a */
        -:        -:14433:   false,
        -:        -:14434:   nir_type_invalid,
        -:        -:14435:   NULL,
        -:        -:14436:};
        -:        -:14437:   
        -:        -:14438:static const nir_search_variable search176_0_0 = {
        -:        -:14439:   { nir_search_value_variable, 0 },
        -:        -:14440:   0, /* a */
        -:        -:14441:   false,
        -:        -:14442:   nir_type_invalid,
        -:        -:14443:   NULL,
        -:        -:14444:};
        -:        -:14445:static const nir_search_expression search176_0 = {
        -:        -:14446:   { nir_search_value_expression, 0 },
        -:        -:14447:   false,
        -:        -:14448:   nir_op_fsqrt,
        -:        -:14449:   { &search176_0_0.value },
        -:        -:14450:   NULL,
        -:        -:14451:};
        -:        -:14452:static const nir_search_expression search176 = {
        -:        -:14453:   { nir_search_value_expression, 0 },
        -:        -:14454:   true,
        -:        -:14455:   nir_op_frcp,
        -:        -:14456:   { &search176_0.value },
        -:        -:14457:   NULL,
        -:        -:14458:};
        -:        -:14459:   
        -:        -:14460:static const nir_search_variable replace176_0 = {
        -:        -:14461:   { nir_search_value_variable, 0 },
        -:        -:14462:   0, /* a */
        -:        -:14463:   false,
        -:        -:14464:   nir_type_invalid,
        -:        -:14465:   NULL,
        -:        -:14466:};
        -:        -:14467:static const nir_search_expression replace176 = {
        -:        -:14468:   { nir_search_value_expression, 0 },
        -:        -:14469:   false,
        -:        -:14470:   nir_op_frsq,
        -:        -:14471:   { &replace176_0.value },
        -:        -:14472:   NULL,
        -:        -:14473:};
        -:        -:14474:   
        -:        -:14475:static const nir_search_variable search178_0_0 = {
        -:        -:14476:   { nir_search_value_variable, 0 },
        -:        -:14477:   0, /* a */
        -:        -:14478:   false,
        -:        -:14479:   nir_type_invalid,
        -:        -:14480:   NULL,
        -:        -:14481:};
        -:        -:14482:static const nir_search_expression search178_0 = {
        -:        -:14483:   { nir_search_value_expression, 0 },
        -:        -:14484:   false,
        -:        -:14485:   nir_op_frsq,
        -:        -:14486:   { &search178_0_0.value },
        -:        -:14487:   NULL,
        -:        -:14488:};
        -:        -:14489:static const nir_search_expression search178 = {
        -:        -:14490:   { nir_search_value_expression, 0 },
        -:        -:14491:   true,
        -:        -:14492:   nir_op_frcp,
        -:        -:14493:   { &search178_0.value },
        -:        -:14494:   NULL,
        -:        -:14495:};
        -:        -:14496:   
        -:        -:14497:static const nir_search_variable replace178_0 = {
        -:        -:14498:   { nir_search_value_variable, 0 },
        -:        -:14499:   0, /* a */
        -:        -:14500:   false,
        -:        -:14501:   nir_type_invalid,
        -:        -:14502:   NULL,
        -:        -:14503:};
        -:        -:14504:static const nir_search_expression replace178 = {
        -:        -:14505:   { nir_search_value_expression, 0 },
        -:        -:14506:   false,
        -:        -:14507:   nir_op_fsqrt,
        -:        -:14508:   { &replace178_0.value },
        -:        -:14509:   NULL,
        -:        -:14510:};
        -:        -:14511:
        -:        -:14512:static const struct transform nir_opt_algebraic_frcp_xforms[] = {
        -:        -:14513:   { &search166, &replace166.value, 0 },
        -:        -:14514:   { &search175, &replace175.value, 0 },
        -:        -:14515:   { &search176, &replace176.value, 0 },
        -:        -:14516:   { &search178, &replace178.value, 16 },
        -:        -:14517:};
        -:        -:14518:   
        -:        -:14519:static const nir_search_variable search140_0 = {
        -:        -:14520:   { nir_search_value_variable, 0 },
        -:        -:14521:   0, /* a */
        -:        -:14522:   false,
        -:        -:14523:   nir_type_invalid,
        -:        -:14524:   NULL,
        -:        -:14525:};
        -:        -:14526:
        -:        -:14527:static const nir_search_variable search140_1 = {
        -:        -:14528:   { nir_search_value_variable, 0 },
        -:        -:14529:   0, /* a */
        -:        -:14530:   false,
        -:        -:14531:   nir_type_invalid,
        -:        -:14532:   NULL,
        -:        -:14533:};
        -:        -:14534:static const nir_search_expression search140 = {
        -:        -:14535:   { nir_search_value_expression, 0 },
        -:        -:14536:   false,
        -:        -:14537:   nir_op_fxor,
        -:        -:14538:   { &search140_0.value, &search140_1.value },
        -:        -:14539:   NULL,
        -:        -:14540:};
        -:        -:14541:   
        -:        -:14542:static const nir_search_constant replace140 = {
        -:        -:14543:   { nir_search_value_constant, 0 },
        -:        -:14544:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:14545:};
        -:        -:14546:
        -:        -:14547:static const struct transform nir_opt_algebraic_fxor_xforms[] = {
        -:        -:14548:   { &search140, &replace140.value, 0 },
        -:        -:14549:};
        -:        -:14550:   
        -:        -:14551:static const nir_search_constant search150_0 = {
        -:        -:14552:   { nir_search_value_constant, 0 },
        -:        -:14553:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14554:};
        -:        -:14555:
        -:        -:14556:static const nir_search_variable search150_1 = {
        -:        -:14557:   { nir_search_value_variable, 0 },
        -:        -:14558:   0, /* a */
        -:        -:14559:   false,
        -:        -:14560:   nir_type_invalid,
        -:        -:14561:   NULL,
        -:        -:14562:};
        -:        -:14563:static const nir_search_expression search150 = {
        -:        -:14564:   { nir_search_value_expression, 0 },
        -:        -:14565:   false,
        -:        -:14566:   nir_op_ushr,
        -:        -:14567:   { &search150_0.value, &search150_1.value },
        -:        -:14568:   NULL,
        -:        -:14569:};
        -:        -:14570:   
        -:        -:14571:static const nir_search_constant replace150 = {
        -:        -:14572:   { nir_search_value_constant, 0 },
        -:        -:14573:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14574:};
        -:        -:14575:   
        -:        -:14576:static const nir_search_variable search151_0 = {
        -:        -:14577:   { nir_search_value_variable, 0 },
        -:        -:14578:   0, /* a */
        -:        -:14579:   false,
        -:        -:14580:   nir_type_invalid,
        -:        -:14581:   NULL,
        -:        -:14582:};
        -:        -:14583:
        -:        -:14584:static const nir_search_constant search151_1 = {
        -:        -:14585:   { nir_search_value_constant, 0 },
        -:        -:14586:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14587:};
        -:        -:14588:static const nir_search_expression search151 = {
        -:        -:14589:   { nir_search_value_expression, 0 },
        -:        -:14590:   false,
        -:        -:14591:   nir_op_ushr,
        -:        -:14592:   { &search151_0.value, &search151_1.value },
        -:        -:14593:   NULL,
        -:        -:14594:};
        -:        -:14595:   
        -:        -:14596:static const nir_search_variable replace151 = {
        -:        -:14597:   { nir_search_value_variable, 0 },
        -:        -:14598:   0, /* a */
        -:        -:14599:   false,
        -:        -:14600:   nir_type_invalid,
        -:        -:14601:   NULL,
        -:        -:14602:};
        -:        -:14603:   
        -:        -:14604:static const nir_search_variable search204_0 = {
        -:        -:14605:   { nir_search_value_variable, 0 },
        -:        -:14606:   0, /* a */
        -:        -:14607:   false,
        -:        -:14608:   nir_type_invalid,
        -:        -:14609:   NULL,
        -:        -:14610:};
        -:        -:14611:
        -:        -:14612:static const nir_search_constant search204_1 = {
        -:        -:14613:   { nir_search_value_constant, 0 },
        -:        -:14614:   nir_type_int, { 0x18 /* 24 */ },
        -:        -:14615:};
        -:        -:14616:static const nir_search_expression search204 = {
        -:        -:14617:   { nir_search_value_expression, 0 },
        -:        -:14618:   false,
        -:        -:14619:   nir_op_ushr,
        -:        -:14620:   { &search204_0.value, &search204_1.value },
        -:        -:14621:   NULL,
        -:        -:14622:};
        -:        -:14623:   
        -:        -:14624:static const nir_search_variable replace204_0 = {
        -:        -:14625:   { nir_search_value_variable, 0 },
        -:        -:14626:   0, /* a */
        -:        -:14627:   false,
        -:        -:14628:   nir_type_invalid,
        -:        -:14629:   NULL,
        -:        -:14630:};
        -:        -:14631:
        -:        -:14632:static const nir_search_constant replace204_1 = {
        -:        -:14633:   { nir_search_value_constant, 0 },
        -:        -:14634:   nir_type_int, { 0x3 /* 3 */ },
        -:        -:14635:};
        -:        -:14636:static const nir_search_expression replace204 = {
        -:        -:14637:   { nir_search_value_expression, 0 },
        -:        -:14638:   false,
        -:        -:14639:   nir_op_extract_u8,
        -:        -:14640:   { &replace204_0.value, &replace204_1.value },
        -:        -:14641:   NULL,
        -:        -:14642:};
        -:        -:14643:   
        -:        -:14644:static const nir_search_variable search208_0 = {
        -:        -:14645:   { nir_search_value_variable, 0 },
        -:        -:14646:   0, /* a */
        -:        -:14647:   false,
        -:        -:14648:   nir_type_invalid,
        -:        -:14649:   NULL,
        -:        -:14650:};
        -:        -:14651:
        -:        -:14652:static const nir_search_constant search208_1 = {
        -:        -:14653:   { nir_search_value_constant, 0 },
        -:        -:14654:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:14655:};
        -:        -:14656:static const nir_search_expression search208 = {
        -:        -:14657:   { nir_search_value_expression, 0 },
        -:        -:14658:   false,
        -:        -:14659:   nir_op_ushr,
        -:        -:14660:   { &search208_0.value, &search208_1.value },
        -:        -:14661:   NULL,
        -:        -:14662:};
        -:        -:14663:   
        -:        -:14664:static const nir_search_variable replace208_0 = {
        -:        -:14665:   { nir_search_value_variable, 0 },
        -:        -:14666:   0, /* a */
        -:        -:14667:   false,
        -:        -:14668:   nir_type_invalid,
        -:        -:14669:   NULL,
        -:        -:14670:};
        -:        -:14671:
        -:        -:14672:static const nir_search_constant replace208_1 = {
        -:        -:14673:   { nir_search_value_constant, 0 },
        -:        -:14674:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:14675:};
        -:        -:14676:static const nir_search_expression replace208 = {
        -:        -:14677:   { nir_search_value_expression, 0 },
        -:        -:14678:   false,
        -:        -:14679:   nir_op_extract_u16,
        -:        -:14680:   { &replace208_0.value, &replace208_1.value },
        -:        -:14681:   NULL,
        -:        -:14682:};
        -:        -:14683:
        -:        -:14684:static const struct transform nir_opt_algebraic_ushr_xforms[] = {
        -:        -:14685:   { &search150, &replace150.value, 0 },
        -:        -:14686:   { &search151, &replace151.value, 0 },
        -:        -:14687:   { &search204, &replace204.value, 17 },
        -:        -:14688:   { &search208, &replace208.value, 18 },
        -:        -:14689:};
        -:        -:14690:   
        -:        -:14691:static const nir_search_variable search154_0_0 = {
        -:        -:14692:   { nir_search_value_variable, 0 },
        -:        -:14693:   0, /* a */
        -:        -:14694:   false,
        -:        -:14695:   nir_type_invalid,
        -:        -:14696:   NULL,
        -:        -:14697:};
        -:        -:14698:static const nir_search_expression search154_0 = {
        -:        -:14699:   { nir_search_value_expression, 0 },
        -:        -:14700:   false,
        -:        -:14701:   nir_op_flog2,
        -:        -:14702:   { &search154_0_0.value },
        -:        -:14703:   NULL,
        -:        -:14704:};
        -:        -:14705:static const nir_search_expression search154 = {
        -:        -:14706:   { nir_search_value_expression, 0 },
        -:        -:14707:   true,
        -:        -:14708:   nir_op_fexp2,
        -:        -:14709:   { &search154_0.value },
        -:        -:14710:   NULL,
        -:        -:14711:};
        -:        -:14712:   
        -:        -:14713:static const nir_search_variable replace154 = {
        -:        -:14714:   { nir_search_value_variable, 0 },
        -:        -:14715:   0, /* a */
        -:        -:14716:   false,
        -:        -:14717:   nir_type_invalid,
        -:        -:14718:   NULL,
        -:        -:14719:};
        -:        -:14720:   
        -:        -:14721:static const nir_search_variable search157_0_0_0 = {
        -:        -:14722:   { nir_search_value_variable, 0 },
        -:        -:14723:   0, /* a */
        -:        -:14724:   false,
        -:        -:14725:   nir_type_invalid,
        -:        -:14726:   NULL,
        -:        -:14727:};
        -:        -:14728:static const nir_search_expression search157_0_0 = {
        -:        -:14729:   { nir_search_value_expression, 0 },
        -:        -:14730:   false,
        -:        -:14731:   nir_op_flog2,
        -:        -:14732:   { &search157_0_0_0.value },
        -:        -:14733:   NULL,
        -:        -:14734:};
        -:        -:14735:
        -:        -:14736:static const nir_search_variable search157_0_1 = {
        -:        -:14737:   { nir_search_value_variable, 0 },
        -:        -:14738:   1, /* b */
        -:        -:14739:   false,
        -:        -:14740:   nir_type_invalid,
        -:        -:14741:   NULL,
        -:        -:14742:};
        -:        -:14743:static const nir_search_expression search157_0 = {
        -:        -:14744:   { nir_search_value_expression, 0 },
        -:        -:14745:   false,
        -:        -:14746:   nir_op_fmul,
        -:        -:14747:   { &search157_0_0.value, &search157_0_1.value },
        -:        -:14748:   NULL,
        -:        -:14749:};
        -:        -:14750:static const nir_search_expression search157 = {
        -:        -:14751:   { nir_search_value_expression, 0 },
        -:        -:14752:   true,
        -:        -:14753:   nir_op_fexp2,
        -:        -:14754:   { &search157_0.value },
        -:        -:14755:   NULL,
        -:        -:14756:};
        -:        -:14757:   
        -:        -:14758:static const nir_search_variable replace157_0 = {
        -:        -:14759:   { nir_search_value_variable, 0 },
        -:        -:14760:   0, /* a */
        -:        -:14761:   false,
        -:        -:14762:   nir_type_invalid,
        -:        -:14763:   NULL,
        -:        -:14764:};
        -:        -:14765:
        -:        -:14766:static const nir_search_variable replace157_1 = {
        -:        -:14767:   { nir_search_value_variable, 0 },
        -:        -:14768:   1, /* b */
        -:        -:14769:   false,
        -:        -:14770:   nir_type_invalid,
        -:        -:14771:   NULL,
        -:        -:14772:};
        -:        -:14773:static const nir_search_expression replace157 = {
        -:        -:14774:   { nir_search_value_expression, 0 },
        -:        -:14775:   false,
        -:        -:14776:   nir_op_fpow,
        -:        -:14777:   { &replace157_0.value, &replace157_1.value },
        -:        -:14778:   NULL,
        -:        -:14779:};
        -:        -:14780:   
        -:        -:14781:static const nir_search_variable search158_0_0_0_0 = {
        -:        -:14782:   { nir_search_value_variable, 0 },
        -:        -:14783:   0, /* a */
        -:        -:14784:   false,
        -:        -:14785:   nir_type_invalid,
        -:        -:14786:   NULL,
        -:        -:14787:};
        -:        -:14788:static const nir_search_expression search158_0_0_0 = {
        -:        -:14789:   { nir_search_value_expression, 0 },
        -:        -:14790:   false,
        -:        -:14791:   nir_op_flog2,
        -:        -:14792:   { &search158_0_0_0_0.value },
        -:        -:14793:   NULL,
        -:        -:14794:};
        -:        -:14795:
        -:        -:14796:static const nir_search_variable search158_0_0_1 = {
        -:        -:14797:   { nir_search_value_variable, 0 },
        -:        -:14798:   1, /* b */
        -:        -:14799:   false,
        -:        -:14800:   nir_type_invalid,
        -:        -:14801:   NULL,
        -:        -:14802:};
        -:        -:14803:static const nir_search_expression search158_0_0 = {
        -:        -:14804:   { nir_search_value_expression, 0 },
        -:        -:14805:   false,
        -:        -:14806:   nir_op_fmul,
        -:        -:14807:   { &search158_0_0_0.value, &search158_0_0_1.value },
        -:        -:14808:   NULL,
        -:        -:14809:};
        -:        -:14810:
        -:        -:14811:static const nir_search_variable search158_0_1_0_0 = {
        -:        -:14812:   { nir_search_value_variable, 0 },
        -:        -:14813:   2, /* c */
        -:        -:14814:   false,
        -:        -:14815:   nir_type_invalid,
        -:        -:14816:   NULL,
        -:        -:14817:};
        -:        -:14818:static const nir_search_expression search158_0_1_0 = {
        -:        -:14819:   { nir_search_value_expression, 0 },
        -:        -:14820:   false,
        -:        -:14821:   nir_op_flog2,
        -:        -:14822:   { &search158_0_1_0_0.value },
        -:        -:14823:   NULL,
        -:        -:14824:};
        -:        -:14825:
        -:        -:14826:static const nir_search_variable search158_0_1_1 = {
        -:        -:14827:   { nir_search_value_variable, 0 },
        -:        -:14828:   3, /* d */
        -:        -:14829:   false,
        -:        -:14830:   nir_type_invalid,
        -:        -:14831:   NULL,
        -:        -:14832:};
        -:        -:14833:static const nir_search_expression search158_0_1 = {
        -:        -:14834:   { nir_search_value_expression, 0 },
        -:        -:14835:   false,
        -:        -:14836:   nir_op_fmul,
        -:        -:14837:   { &search158_0_1_0.value, &search158_0_1_1.value },
        -:        -:14838:   NULL,
        -:        -:14839:};
        -:        -:14840:static const nir_search_expression search158_0 = {
        -:        -:14841:   { nir_search_value_expression, 0 },
        -:        -:14842:   false,
        -:        -:14843:   nir_op_fadd,
        -:        -:14844:   { &search158_0_0.value, &search158_0_1.value },
        -:        -:14845:   NULL,
        -:        -:14846:};
        -:        -:14847:static const nir_search_expression search158 = {
        -:        -:14848:   { nir_search_value_expression, 0 },
        -:        -:14849:   true,
        -:        -:14850:   nir_op_fexp2,
        -:        -:14851:   { &search158_0.value },
        -:        -:14852:   NULL,
        -:        -:14853:};
        -:        -:14854:   
        -:        -:14855:static const nir_search_variable replace158_0_0 = {
        -:        -:14856:   { nir_search_value_variable, 0 },
        -:        -:14857:   0, /* a */
        -:        -:14858:   false,
        -:        -:14859:   nir_type_invalid,
        -:        -:14860:   NULL,
        -:        -:14861:};
        -:        -:14862:
        -:        -:14863:static const nir_search_variable replace158_0_1 = {
        -:        -:14864:   { nir_search_value_variable, 0 },
        -:        -:14865:   1, /* b */
        -:        -:14866:   false,
        -:        -:14867:   nir_type_invalid,
        -:        -:14868:   NULL,
        -:        -:14869:};
        -:        -:14870:static const nir_search_expression replace158_0 = {
        -:        -:14871:   { nir_search_value_expression, 0 },
        -:        -:14872:   false,
        -:        -:14873:   nir_op_fpow,
        -:        -:14874:   { &replace158_0_0.value, &replace158_0_1.value },
        -:        -:14875:   NULL,
        -:        -:14876:};
        -:        -:14877:
        -:        -:14878:static const nir_search_variable replace158_1_0 = {
        -:        -:14879:   { nir_search_value_variable, 0 },
        -:        -:14880:   2, /* c */
        -:        -:14881:   false,
        -:        -:14882:   nir_type_invalid,
        -:        -:14883:   NULL,
        -:        -:14884:};
        -:        -:14885:
        -:        -:14886:static const nir_search_variable replace158_1_1 = {
        -:        -:14887:   { nir_search_value_variable, 0 },
        -:        -:14888:   3, /* d */
        -:        -:14889:   false,
        -:        -:14890:   nir_type_invalid,
        -:        -:14891:   NULL,
        -:        -:14892:};
        -:        -:14893:static const nir_search_expression replace158_1 = {
        -:        -:14894:   { nir_search_value_expression, 0 },
        -:        -:14895:   false,
        -:        -:14896:   nir_op_fpow,
        -:        -:14897:   { &replace158_1_0.value, &replace158_1_1.value },
        -:        -:14898:   NULL,
        -:        -:14899:};
        -:        -:14900:static const nir_search_expression replace158 = {
        -:        -:14901:   { nir_search_value_expression, 0 },
        -:        -:14902:   true,
        -:        -:14903:   nir_op_fmul,
        -:        -:14904:   { &replace158_0.value, &replace158_1.value },
        -:        -:14905:   NULL,
        -:        -:14906:};
        -:        -:14907:
        -:        -:14908:static const struct transform nir_opt_algebraic_fexp2_xforms[] = {
        -:        -:14909:   { &search154, &replace154.value, 0 },
        -:        -:14910:   { &search157, &replace157.value, 13 },
        -:        -:14911:   { &search158, &replace158.value, 13 },
        -:        -:14912:};
        -:        -:14913:   
        -:        -:14914:static const nir_search_constant search148_0 = {
        -:        -:14915:   { nir_search_value_constant, 0 },
        -:        -:14916:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14917:};
        -:        -:14918:
        -:        -:14919:static const nir_search_variable search148_1 = {
        -:        -:14920:   { nir_search_value_variable, 0 },
        -:        -:14921:   0, /* a */
        -:        -:14922:   false,
        -:        -:14923:   nir_type_invalid,
        -:        -:14924:   NULL,
        -:        -:14925:};
        -:        -:14926:static const nir_search_expression search148 = {
        -:        -:14927:   { nir_search_value_expression, 0 },
        -:        -:14928:   false,
        -:        -:14929:   nir_op_ishr,
        -:        -:14930:   { &search148_0.value, &search148_1.value },
        -:        -:14931:   NULL,
        -:        -:14932:};
        -:        -:14933:   
        -:        -:14934:static const nir_search_constant replace148 = {
        -:        -:14935:   { nir_search_value_constant, 0 },
        -:        -:14936:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14937:};
        -:        -:14938:   
        -:        -:14939:static const nir_search_variable search149_0 = {
        -:        -:14940:   { nir_search_value_variable, 0 },
        -:        -:14941:   0, /* a */
        -:        -:14942:   false,
        -:        -:14943:   nir_type_invalid,
        -:        -:14944:   NULL,
        -:        -:14945:};
        -:        -:14946:
        -:        -:14947:static const nir_search_constant search149_1 = {
        -:        -:14948:   { nir_search_value_constant, 0 },
        -:        -:14949:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:14950:};
        -:        -:14951:static const nir_search_expression search149 = {
        -:        -:14952:   { nir_search_value_expression, 0 },
        -:        -:14953:   false,
        -:        -:14954:   nir_op_ishr,
        -:        -:14955:   { &search149_0.value, &search149_1.value },
        -:        -:14956:   NULL,
        -:        -:14957:};
        -:        -:14958:   
        -:        -:14959:static const nir_search_variable replace149 = {
        -:        -:14960:   { nir_search_value_variable, 0 },
        -:        -:14961:   0, /* a */
        -:        -:14962:   false,
        -:        -:14963:   nir_type_invalid,
        -:        -:14964:   NULL,
        -:        -:14965:};
        -:        -:14966:
        -:        -:14967:static const struct transform nir_opt_algebraic_ishr_xforms[] = {
        -:        -:14968:   { &search148, &replace148.value, 0 },
        -:        -:14969:   { &search149, &replace149.value, 0 },
        -:        -:14970:};
        -:        -:14971:   
        -:        -:14972:static const nir_search_variable search235_0 = {
        -:        -:14973:   { nir_search_value_variable, 0 },
        -:        -:14974:   0, /* value */
        -:        -:14975:   false,
        -:        -:14976:   nir_type_invalid,
        -:        -:14977:   NULL,
        -:        -:14978:};
        -:        -:14979:
        -:        -:14980:static const nir_search_variable search235_1 = {
        -:        -:14981:   { nir_search_value_variable, 0 },
        -:        -:14982:   1, /* offset */
        -:        -:14983:   false,
        -:        -:14984:   nir_type_invalid,
        -:        -:14985:   NULL,
        -:        -:14986:};
        -:        -:14987:
        -:        -:14988:static const nir_search_variable search235_2 = {
        -:        -:14989:   { nir_search_value_variable, 0 },
        -:        -:14990:   2, /* bits */
        -:        -:14991:   false,
        -:        -:14992:   nir_type_invalid,
        -:        -:14993:   NULL,
        -:        -:14994:};
        -:        -:14995:static const nir_search_expression search235 = {
        -:        -:14996:   { nir_search_value_expression, 0 },
        -:        -:14997:   false,
        -:        -:14998:   nir_op_ubitfield_extract,
        -:        -:14999:   { &search235_0.value, &search235_1.value, &search235_2.value },
        -:        -:15000:   NULL,
        -:        -:15001:};
        -:        -:15002:   
        -:        -:15003:static const nir_search_constant replace235_0_0 = {
        -:        -:15004:   { nir_search_value_constant, 0 },
        -:        -:15005:   nir_type_int, { 0x1f /* 31 */ },
        -:        -:15006:};
        -:        -:15007:
        -:        -:15008:static const nir_search_variable replace235_0_1 = {
        -:        -:15009:   { nir_search_value_variable, 0 },
        -:        -:15010:   2, /* bits */
        -:        -:15011:   false,
        -:        -:15012:   nir_type_invalid,
        -:        -:15013:   NULL,
        -:        -:15014:};
        -:        -:15015:static const nir_search_expression replace235_0 = {
        -:        -:15016:   { nir_search_value_expression, 0 },
        -:        -:15017:   false,
        -:        -:15018:   nir_op_ult,
        -:        -:15019:   { &replace235_0_0.value, &replace235_0_1.value },
        -:        -:15020:   NULL,
        -:        -:15021:};
        -:        -:15022:
        -:        -:15023:static const nir_search_variable replace235_1 = {
        -:        -:15024:   { nir_search_value_variable, 0 },
        -:        -:15025:   0, /* value */
        -:        -:15026:   false,
        -:        -:15027:   nir_type_invalid,
        -:        -:15028:   NULL,
        -:        -:15029:};
        -:        -:15030:
        -:        -:15031:static const nir_search_variable replace235_2_0 = {
        -:        -:15032:   { nir_search_value_variable, 0 },
        -:        -:15033:   0, /* value */
        -:        -:15034:   false,
        -:        -:15035:   nir_type_invalid,
        -:        -:15036:   NULL,
        -:        -:15037:};
        -:        -:15038:
        -:        -:15039:static const nir_search_variable replace235_2_1 = {
        -:        -:15040:   { nir_search_value_variable, 0 },
        -:        -:15041:   1, /* offset */
        -:        -:15042:   false,
        -:        -:15043:   nir_type_invalid,
        -:        -:15044:   NULL,
        -:        -:15045:};
        -:        -:15046:
        -:        -:15047:static const nir_search_variable replace235_2_2 = {
        -:        -:15048:   { nir_search_value_variable, 0 },
        -:        -:15049:   2, /* bits */
        -:        -:15050:   false,
        -:        -:15051:   nir_type_invalid,
        -:        -:15052:   NULL,
        -:        -:15053:};
        -:        -:15054:static const nir_search_expression replace235_2 = {
        -:        -:15055:   { nir_search_value_expression, 0 },
        -:        -:15056:   false,
        -:        -:15057:   nir_op_ubfe,
        -:        -:15058:   { &replace235_2_0.value, &replace235_2_1.value, &replace235_2_2.value },
        -:        -:15059:   NULL,
        -:        -:15060:};
        -:        -:15061:static const nir_search_expression replace235 = {
        -:        -:15062:   { nir_search_value_expression, 0 },
        -:        -:15063:   false,
        -:        -:15064:   nir_op_bcsel,
        -:        -:15065:   { &replace235_0.value, &replace235_1.value, &replace235_2.value },
        -:        -:15066:   NULL,
        -:        -:15067:};
        -:        -:15068:
        -:        -:15069:static const struct transform nir_opt_algebraic_ubitfield_extract_xforms[] = {
        -:        -:15070:   { &search235, &replace235.value, 26 },
        -:        -:15071:};
        -:        -:15072:   
        -:        -:15073:static const nir_search_variable search114_0 = {
        -:        -:15074:   { nir_search_value_variable, 0 },
        -:        -:15075:   0, /* a */
        -:        -:15076:   false,
        -:        -:15077:   nir_type_invalid,
        -:        -:15078:   NULL,
        -:        -:15079:};
        -:        -:15080:
        -:        -:15081:static const nir_search_variable search114_1 = {
        -:        -:15082:   { nir_search_value_variable, 0 },
        -:        -:15083:   1, /* b */
        -:        -:15084:   false,
        -:        -:15085:   nir_type_invalid,
        -:        -:15086:   NULL,
        -:        -:15087:};
        -:        -:15088:static const nir_search_expression search114 = {
        -:        -:15089:   { nir_search_value_expression, 0 },
        -:        -:15090:   false,
        -:        -:15091:   nir_op_slt,
        -:        -:15092:   { &search114_0.value, &search114_1.value },
        -:        -:15093:   NULL,
        -:        -:15094:};
        -:        -:15095:   
        -:        -:15096:static const nir_search_variable replace114_0_0 = {
        -:        -:15097:   { nir_search_value_variable, 0 },
        -:        -:15098:   0, /* a */
        -:        -:15099:   false,
        -:        -:15100:   nir_type_invalid,
        -:        -:15101:   NULL,
        -:        -:15102:};
        -:        -:15103:
        -:        -:15104:static const nir_search_variable replace114_0_1 = {
        -:        -:15105:   { nir_search_value_variable, 0 },
        -:        -:15106:   1, /* b */
        -:        -:15107:   false,
        -:        -:15108:   nir_type_invalid,
        -:        -:15109:   NULL,
        -:        -:15110:};
        -:        -:15111:static const nir_search_expression replace114_0 = {
        -:        -:15112:   { nir_search_value_expression, 0 },
        -:        -:15113:   false,
        -:        -:15114:   nir_op_flt,
        -:        -:15115:   { &replace114_0_0.value, &replace114_0_1.value },
        -:        -:15116:   NULL,
        -:        -:15117:};
        -:        -:15118:static const nir_search_expression replace114 = {
        -:        -:15119:   { nir_search_value_expression, 0 },
        -:        -:15120:   false,
        -:        -:15121:   nir_op_b2f,
        -:        -:15122:   { &replace114_0.value },
        -:        -:15123:   NULL,
        -:        -:15124:};
        -:        -:15125:
        -:        -:15126:static const struct transform nir_opt_algebraic_slt_xforms[] = {
        -:        -:15127:   { &search114, &replace114.value, 11 },
        -:        -:15128:};
        -:        -:15129:   
        -:        -:15130:static const nir_search_constant search71_0 = {
        -:        -:15131:   { nir_search_value_constant, 0 },
        -:        -:15132:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:15133:};
        -:        -:15134:
        -:        -:15135:static const nir_search_variable search71_1_0 = {
        -:        -:15136:   { nir_search_value_variable, 0 },
        -:        -:15137:   0, /* a */
        -:        -:15138:   false,
        -:        -:15139:   nir_type_invalid,
        -:        -:15140:   NULL,
        -:        -:15141:};
        -:        -:15142:static const nir_search_expression search71_1 = {
        -:        -:15143:   { nir_search_value_expression, 0 },
        -:        -:15144:   false,
        -:        -:15145:   nir_op_fabs,
        -:        -:15146:   { &search71_1_0.value },
        -:        -:15147:   NULL,
        -:        -:15148:};
        -:        -:15149:static const nir_search_expression search71 = {
        -:        -:15150:   { nir_search_value_expression, 0 },
        -:        -:15151:   false,
        -:        -:15152:   nir_op_flt,
        -:        -:15153:   { &search71_0.value, &search71_1.value },
        -:        -:15154:   NULL,
        -:        -:15155:};
        -:        -:15156:   
        -:        -:15157:static const nir_search_variable replace71_0 = {
        -:        -:15158:   { nir_search_value_variable, 0 },
        -:        -:15159:   0, /* a */
        -:        -:15160:   false,
        -:        -:15161:   nir_type_invalid,
        -:        -:15162:   NULL,
        -:        -:15163:};
        -:        -:15164:
        -:        -:15165:static const nir_search_constant replace71_1 = {
        -:        -:15166:   { nir_search_value_constant, 0 },
        -:        -:15167:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:15168:};
        -:        -:15169:static const nir_search_expression replace71 = {
        -:        -:15170:   { nir_search_value_expression, 0 },
        -:        -:15171:   false,
        -:        -:15172:   nir_op_fne,
        -:        -:15173:   { &replace71_0.value, &replace71_1.value },
        -:        -:15174:   NULL,
        -:        -:15175:};
        -:        -:15176:   
        -:        -:15177:static const nir_search_variable search125_0_0_0 = {
        -:        -:15178:   { nir_search_value_variable, 0 },
        -:        -:15179:   0, /* a */
        -:        -:15180:   false,
        -:        -:15181:   nir_type_invalid,
        -:        -:15182:   NULL,
        -:        -:15183:};
        -:        -:15184:static const nir_search_expression search125_0_0 = {
        -:        -:15185:   { nir_search_value_expression, 0 },
        -:        -:15186:   false,
        -:        -:15187:   nir_op_b2f,
        -:        -:15188:   { &search125_0_0_0.value },
        -:        -:15189:   NULL,
        -:        -:15190:};
        -:        -:15191:static const nir_search_expression search125_0 = {
        -:        -:15192:   { nir_search_value_expression, 0 },
        -:        -:15193:   false,
        -:        -:15194:   nir_op_fneg,
        -:        -:15195:   { &search125_0_0.value },
        -:        -:15196:   NULL,
        -:        -:15197:};
        -:        -:15198:
        -:        -:15199:static const nir_search_constant search125_1 = {
        -:        -:15200:   { nir_search_value_constant, 0 },
        -:        -:15201:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:15202:};
        -:        -:15203:static const nir_search_expression search125 = {
        -:        -:15204:   { nir_search_value_expression, 0 },
        -:        -:15205:   false,
        -:        -:15206:   nir_op_flt,
        -:        -:15207:   { &search125_0.value, &search125_1.value },
        -:        -:15208:   NULL,
        -:        -:15209:};
        -:        -:15210:   
        -:        -:15211:static const nir_search_variable replace125 = {
        -:        -:15212:   { nir_search_value_variable, 0 },
        -:        -:15213:   0, /* a */
        -:        -:15214:   false,
        -:        -:15215:   nir_type_invalid,
        -:        -:15216:   NULL,
        -:        -:15217:};
        -:        -:15218:   
        -:        -:15219:static const nir_search_constant search126_0_0 = {
        -:        -:15220:   { nir_search_value_constant, 0 },
        -:        -:15221:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:15222:};
        -:        -:15223:
        -:        -:15224:static const nir_search_variable search126_0_1_0 = {
        -:        -:15225:   { nir_search_value_variable, 0 },
        -:        -:15226:   0, /* a */
        -:        -:15227:   false,
        -:        -:15228:   nir_type_invalid,
        -:        -:15229:   NULL,
        -:        -:15230:};
        -:        -:15231:static const nir_search_expression search126_0_1 = {
        -:        -:15232:   { nir_search_value_expression, 0 },
        -:        -:15233:   false,
        -:        -:15234:   nir_op_b2f,
        -:        -:15235:   { &search126_0_1_0.value },
        -:        -:15236:   NULL,
        -:        -:15237:};
        -:        -:15238:static const nir_search_expression search126_0 = {
        -:        -:15239:   { nir_search_value_expression, 0 },
        -:        -:15240:   false,
        -:        -:15241:   nir_op_fsub,
        -:        -:15242:   { &search126_0_0.value, &search126_0_1.value },
        -:        -:15243:   NULL,
        -:        -:15244:};
        -:        -:15245:
        -:        -:15246:static const nir_search_constant search126_1 = {
        -:        -:15247:   { nir_search_value_constant, 0 },
        -:        -:15248:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:15249:};
        -:        -:15250:static const nir_search_expression search126 = {
        -:        -:15251:   { nir_search_value_expression, 0 },
        -:        -:15252:   false,
        -:        -:15253:   nir_op_flt,
        -:        -:15254:   { &search126_0.value, &search126_1.value },
        -:        -:15255:   NULL,
        -:        -:15256:};
        -:        -:15257:   
        -:        -:15258:static const nir_search_variable replace126 = {
        -:        -:15259:   { nir_search_value_variable, 0 },
        -:        -:15260:   0, /* a */
        -:        -:15261:   false,
        -:        -:15262:   nir_type_invalid,
        -:        -:15263:   NULL,
        -:        -:15264:};
        -:        -:15265:   
        -:        -:15266:static const nir_search_variable search257_0_0 = {
        -:        -:15267:   { nir_search_value_variable, 0 },
        -:        -:15268:   0, /* a */
        -:        -:15269:   false,
        -:        -:15270:   nir_type_invalid,
        -:        -:15271:   NULL,
        -:        -:15272:};
        -:        -:15273:
        -:        -:15274:static const nir_search_variable search257_0_1 = {
        -:        -:15275:   { nir_search_value_variable, 0 },
        -:        -:15276:   1, /* b */
        -:        -:15277:   true,
        -:        -:15278:   nir_type_invalid,
        -:        -:15279:   NULL,
        -:        -:15280:};
        -:        -:15281:
        -:        -:15282:static const nir_search_variable search257_0_2 = {
        -:        -:15283:   { nir_search_value_variable, 0 },
        -:        -:15284:   2, /* c */
        -:        -:15285:   true,
        -:        -:15286:   nir_type_invalid,
        -:        -:15287:   NULL,
        -:        -:15288:};
        -:        -:15289:static const nir_search_expression search257_0 = {
        -:        -:15290:   { nir_search_value_expression, 0 },
        -:        -:15291:   false,
        -:        -:15292:   nir_op_bcsel,
        -:        -:15293:   { &search257_0_0.value, &search257_0_1.value, &search257_0_2.value },
        -:        -:15294:   NULL,
        -:        -:15295:};
        -:        -:15296:
        -:        -:15297:static const nir_search_variable search257_1 = {
        -:        -:15298:   { nir_search_value_variable, 0 },
        -:        -:15299:   3, /* d */
        -:        -:15300:   true,
        -:        -:15301:   nir_type_invalid,
        -:        -:15302:   NULL,
        -:        -:15303:};
        -:        -:15304:static const nir_search_expression search257 = {
        -:        -:15305:   { nir_search_value_expression, 0 },
        -:        -:15306:   false,
        -:        -:15307:   nir_op_flt,
        -:        -:15308:   { &search257_0.value, &search257_1.value },
        -:        -:15309:   NULL,
        -:        -:15310:};
        -:        -:15311:   
        -:        -:15312:static const nir_search_variable replace257_0 = {
        -:        -:15313:   { nir_search_value_variable, 0 },
        -:        -:15314:   0, /* a */
        -:        -:15315:   false,
        -:        -:15316:   nir_type_invalid,
        -:        -:15317:   NULL,
        -:        -:15318:};
        -:        -:15319:
        -:        -:15320:static const nir_search_variable replace257_1_0 = {
        -:        -:15321:   { nir_search_value_variable, 0 },
        -:        -:15322:   1, /* b */
        -:        -:15323:   false,
        -:        -:15324:   nir_type_invalid,
        -:        -:15325:   NULL,
        -:        -:15326:};
        -:        -:15327:
        -:        -:15328:static const nir_search_variable replace257_1_1 = {
        -:        -:15329:   { nir_search_value_variable, 0 },
        -:        -:15330:   3, /* d */
        -:        -:15331:   false,
        -:        -:15332:   nir_type_invalid,
        -:        -:15333:   NULL,
        -:        -:15334:};
        -:        -:15335:static const nir_search_expression replace257_1 = {
        -:        -:15336:   { nir_search_value_expression, 0 },
        -:        -:15337:   false,
        -:        -:15338:   nir_op_flt,
        -:        -:15339:   { &replace257_1_0.value, &replace257_1_1.value },
        -:        -:15340:   NULL,
        -:        -:15341:};
        -:        -:15342:
        -:        -:15343:static const nir_search_variable replace257_2_0 = {
        -:        -:15344:   { nir_search_value_variable, 0 },
        -:        -:15345:   2, /* c */
        -:        -:15346:   false,
        -:        -:15347:   nir_type_invalid,
        -:        -:15348:   NULL,
        -:        -:15349:};
        -:        -:15350:
        -:        -:15351:static const nir_search_variable replace257_2_1 = {
        -:        -:15352:   { nir_search_value_variable, 0 },
        -:        -:15353:   3, /* d */
        -:        -:15354:   false,
        -:        -:15355:   nir_type_invalid,
        -:        -:15356:   NULL,
        -:        -:15357:};
        -:        -:15358:static const nir_search_expression replace257_2 = {
        -:        -:15359:   { nir_search_value_expression, 0 },
        -:        -:15360:   false,
        -:        -:15361:   nir_op_flt,
        -:        -:15362:   { &replace257_2_0.value, &replace257_2_1.value },
        -:        -:15363:   NULL,
        -:        -:15364:};
        -:        -:15365:static const nir_search_expression replace257 = {
        -:        -:15366:   { nir_search_value_expression, 0 },
        -:        -:15367:   false,
        -:        -:15368:   nir_op_bcsel,
        -:        -:15369:   { &replace257_0.value, &replace257_1.value, &replace257_2.value },
        -:        -:15370:   NULL,
        -:        -:15371:};
        -:        -:15372:   
        -:        -:15373:static const nir_search_variable search258_0 = {
        -:        -:15374:   { nir_search_value_variable, 0 },
        -:        -:15375:   0, /* d */
        -:        -:15376:   true,
        -:        -:15377:   nir_type_invalid,
        -:        -:15378:   NULL,
        -:        -:15379:};
        -:        -:15380:
        -:        -:15381:static const nir_search_variable search258_1_0 = {
        -:        -:15382:   { nir_search_value_variable, 0 },
        -:        -:15383:   1, /* a */
        -:        -:15384:   false,
        -:        -:15385:   nir_type_invalid,
        -:        -:15386:   NULL,
        -:        -:15387:};
        -:        -:15388:
        -:        -:15389:static const nir_search_variable search258_1_1 = {
        -:        -:15390:   { nir_search_value_variable, 0 },
        -:        -:15391:   2, /* b */
        -:        -:15392:   true,
        -:        -:15393:   nir_type_invalid,
        -:        -:15394:   NULL,
        -:        -:15395:};
        -:        -:15396:
        -:        -:15397:static const nir_search_variable search258_1_2 = {
        -:        -:15398:   { nir_search_value_variable, 0 },
        -:        -:15399:   3, /* c */
        -:        -:15400:   true,
        -:        -:15401:   nir_type_invalid,
        -:        -:15402:   NULL,
        -:        -:15403:};
        -:        -:15404:static const nir_search_expression search258_1 = {
        -:        -:15405:   { nir_search_value_expression, 0 },
        -:        -:15406:   false,
        -:        -:15407:   nir_op_bcsel,
        -:        -:15408:   { &search258_1_0.value, &search258_1_1.value, &search258_1_2.value },
        -:        -:15409:   NULL,
        -:        -:15410:};
        -:        -:15411:static const nir_search_expression search258 = {
        -:        -:15412:   { nir_search_value_expression, 0 },
        -:        -:15413:   false,
        -:        -:15414:   nir_op_flt,
        -:        -:15415:   { &search258_0.value, &search258_1.value },
        -:        -:15416:   NULL,
        -:        -:15417:};
        -:        -:15418:   
        -:        -:15419:static const nir_search_variable replace258_0 = {
        -:        -:15420:   { nir_search_value_variable, 0 },
        -:        -:15421:   1, /* a */
        -:        -:15422:   false,
        -:        -:15423:   nir_type_invalid,
        -:        -:15424:   NULL,
        -:        -:15425:};
        -:        -:15426:
        -:        -:15427:static const nir_search_variable replace258_1_0 = {
        -:        -:15428:   { nir_search_value_variable, 0 },
        -:        -:15429:   0, /* d */
        -:        -:15430:   false,
        -:        -:15431:   nir_type_invalid,
        -:        -:15432:   NULL,
        -:        -:15433:};
        -:        -:15434:
        -:        -:15435:static const nir_search_variable replace258_1_1 = {
        -:        -:15436:   { nir_search_value_variable, 0 },
        -:        -:15437:   2, /* b */
        -:        -:15438:   false,
        -:        -:15439:   nir_type_invalid,
        -:        -:15440:   NULL,
        -:        -:15441:};
        -:        -:15442:static const nir_search_expression replace258_1 = {
        -:        -:15443:   { nir_search_value_expression, 0 },
        -:        -:15444:   false,
        -:        -:15445:   nir_op_flt,
        -:        -:15446:   { &replace258_1_0.value, &replace258_1_1.value },
        -:        -:15447:   NULL,
        -:        -:15448:};
        -:        -:15449:
        -:        -:15450:static const nir_search_variable replace258_2_0 = {
        -:        -:15451:   { nir_search_value_variable, 0 },
        -:        -:15452:   0, /* d */
        -:        -:15453:   false,
        -:        -:15454:   nir_type_invalid,
        -:        -:15455:   NULL,
        -:        -:15456:};
        -:        -:15457:
        -:        -:15458:static const nir_search_variable replace258_2_1 = {
        -:        -:15459:   { nir_search_value_variable, 0 },
        -:        -:15460:   3, /* c */
        -:        -:15461:   false,
        -:        -:15462:   nir_type_invalid,
        -:        -:15463:   NULL,
        -:        -:15464:};
        -:        -:15465:static const nir_search_expression replace258_2 = {
        -:        -:15466:   { nir_search_value_expression, 0 },
        -:        -:15467:   false,
        -:        -:15468:   nir_op_flt,
        -:        -:15469:   { &replace258_2_0.value, &replace258_2_1.value },
        -:        -:15470:   NULL,
        -:        -:15471:};
        -:        -:15472:static const nir_search_expression replace258 = {
        -:        -:15473:   { nir_search_value_expression, 0 },
        -:        -:15474:   false,
        -:        -:15475:   nir_op_bcsel,
        -:        -:15476:   { &replace258_0.value, &replace258_1.value, &replace258_2.value },
        -:        -:15477:   NULL,
        -:        -:15478:};
        -:        -:15479:
        -:        -:15480:static const struct transform nir_opt_algebraic_flt_xforms[] = {
        -:        -:15481:   { &search71, &replace71.value, 0 },
        -:        -:15482:   { &search125, &replace125.value, 0 },
        -:        -:15483:   { &search126, &replace126.value, 0 },
        -:        -:15484:   { &search257, &replace257.value, 0 },
        -:        -:15485:   { &search258, &replace258.value, 0 },
        -:        -:15486:};
        -:        -:15487:   
        -:        -:15488:static const nir_search_variable search131_0 = {
        -:        -:15489:   { nir_search_value_variable, 0 },
        -:        -:15490:   0, /* a */
        -:        -:15491:   false,
        -:        -:15492:   nir_type_invalid,
        -:        -:15493:   NULL,
        -:        -:15494:};
        -:        -:15495:
        -:        -:15496:static const nir_search_variable search131_1 = {
        -:        -:15497:   { nir_search_value_variable, 0 },
        -:        -:15498:   0, /* a */
        -:        -:15499:   false,
        -:        -:15500:   nir_type_invalid,
        -:        -:15501:   NULL,
        -:        -:15502:};
        -:        -:15503:static const nir_search_expression search131 = {
        -:        -:15504:   { nir_search_value_expression, 0 },
        -:        -:15505:   false,
        -:        -:15506:   nir_op_ult,
        -:        -:15507:   { &search131_0.value, &search131_1.value },
        -:        -:15508:   NULL,
        -:        -:15509:};
        -:        -:15510:   
        -:        -:15511:static const nir_search_constant replace131 = {
        -:        -:15512:   { nir_search_value_constant, 32 },
        -:        -:15513:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -:15514:};
        -:        -:15515:   
        -:        -:15516:static const nir_search_variable search273_0_0 = {
        -:        -:15517:   { nir_search_value_variable, 0 },
        -:        -:15518:   0, /* a */
        -:        -:15519:   false,
        -:        -:15520:   nir_type_invalid,
        -:        -:15521:   NULL,
        -:        -:15522:};
        -:        -:15523:
        -:        -:15524:static const nir_search_variable search273_0_1 = {
        -:        -:15525:   { nir_search_value_variable, 0 },
        -:        -:15526:   1, /* b */
        -:        -:15527:   true,
        -:        -:15528:   nir_type_invalid,
        -:        -:15529:   NULL,
        -:        -:15530:};
        -:        -:15531:
        -:        -:15532:static const nir_search_variable search273_0_2 = {
        -:        -:15533:   { nir_search_value_variable, 0 },
        -:        -:15534:   2, /* c */
        -:        -:15535:   true,
        -:        -:15536:   nir_type_invalid,
        -:        -:15537:   NULL,
        -:        -:15538:};
        -:        -:15539:static const nir_search_expression search273_0 = {
        -:        -:15540:   { nir_search_value_expression, 0 },
        -:        -:15541:   false,
        -:        -:15542:   nir_op_bcsel,
        -:        -:15543:   { &search273_0_0.value, &search273_0_1.value, &search273_0_2.value },
        -:        -:15544:   NULL,
        -:        -:15545:};
        -:        -:15546:
        -:        -:15547:static const nir_search_variable search273_1 = {
        -:        -:15548:   { nir_search_value_variable, 0 },
        -:        -:15549:   3, /* d */
        -:        -:15550:   true,
        -:        -:15551:   nir_type_invalid,
        -:        -:15552:   NULL,
        -:        -:15553:};
        -:        -:15554:static const nir_search_expression search273 = {
        -:        -:15555:   { nir_search_value_expression, 0 },
        -:        -:15556:   false,
        -:        -:15557:   nir_op_ult,
        -:        -:15558:   { &search273_0.value, &search273_1.value },
        -:        -:15559:   NULL,
        -:        -:15560:};
        -:        -:15561:   
        -:        -:15562:static const nir_search_variable replace273_0 = {
        -:        -:15563:   { nir_search_value_variable, 0 },
        -:        -:15564:   0, /* a */
        -:        -:15565:   false,
        -:        -:15566:   nir_type_invalid,
        -:        -:15567:   NULL,
        -:        -:15568:};
        -:        -:15569:
        -:        -:15570:static const nir_search_variable replace273_1_0 = {
        -:        -:15571:   { nir_search_value_variable, 0 },
        -:        -:15572:   1, /* b */
        -:        -:15573:   false,
        -:        -:15574:   nir_type_invalid,
        -:        -:15575:   NULL,
        -:        -:15576:};
        -:        -:15577:
        -:        -:15578:static const nir_search_variable replace273_1_1 = {
        -:        -:15579:   { nir_search_value_variable, 0 },
        -:        -:15580:   3, /* d */
        -:        -:15581:   false,
        -:        -:15582:   nir_type_invalid,
        -:        -:15583:   NULL,
        -:        -:15584:};
        -:        -:15585:static const nir_search_expression replace273_1 = {
        -:        -:15586:   { nir_search_value_expression, 0 },
        -:        -:15587:   false,
        -:        -:15588:   nir_op_ult,
        -:        -:15589:   { &replace273_1_0.value, &replace273_1_1.value },
        -:        -:15590:   NULL,
        -:        -:15591:};
        -:        -:15592:
        -:        -:15593:static const nir_search_variable replace273_2_0 = {
        -:        -:15594:   { nir_search_value_variable, 0 },
        -:        -:15595:   2, /* c */
        -:        -:15596:   false,
        -:        -:15597:   nir_type_invalid,
        -:        -:15598:   NULL,
        -:        -:15599:};
        -:        -:15600:
        -:        -:15601:static const nir_search_variable replace273_2_1 = {
        -:        -:15602:   { nir_search_value_variable, 0 },
        -:        -:15603:   3, /* d */
        -:        -:15604:   false,
        -:        -:15605:   nir_type_invalid,
        -:        -:15606:   NULL,
        -:        -:15607:};
        -:        -:15608:static const nir_search_expression replace273_2 = {
        -:        -:15609:   { nir_search_value_expression, 0 },
        -:        -:15610:   false,
        -:        -:15611:   nir_op_ult,
        -:        -:15612:   { &replace273_2_0.value, &replace273_2_1.value },
        -:        -:15613:   NULL,
        -:        -:15614:};
        -:        -:15615:static const nir_search_expression replace273 = {
        -:        -:15616:   { nir_search_value_expression, 0 },
        -:        -:15617:   false,
        -:        -:15618:   nir_op_bcsel,
        -:        -:15619:   { &replace273_0.value, &replace273_1.value, &replace273_2.value },
        -:        -:15620:   NULL,
        -:        -:15621:};
        -:        -:15622:   
        -:        -:15623:static const nir_search_variable search274_0 = {
        -:        -:15624:   { nir_search_value_variable, 0 },
        -:        -:15625:   0, /* d */
        -:        -:15626:   true,
        -:        -:15627:   nir_type_invalid,
        -:        -:15628:   NULL,
        -:        -:15629:};
        -:        -:15630:
        -:        -:15631:static const nir_search_variable search274_1_0 = {
        -:        -:15632:   { nir_search_value_variable, 0 },
        -:        -:15633:   1, /* a */
        -:        -:15634:   false,
        -:        -:15635:   nir_type_invalid,
        -:        -:15636:   NULL,
        -:        -:15637:};
        -:        -:15638:
        -:        -:15639:static const nir_search_variable search274_1_1 = {
        -:        -:15640:   { nir_search_value_variable, 0 },
        -:        -:15641:   2, /* b */
        -:        -:15642:   true,
        -:        -:15643:   nir_type_invalid,
        -:        -:15644:   NULL,
        -:        -:15645:};
        -:        -:15646:
        -:        -:15647:static const nir_search_variable search274_1_2 = {
        -:        -:15648:   { nir_search_value_variable, 0 },
        -:        -:15649:   3, /* c */
        -:        -:15650:   true,
        -:        -:15651:   nir_type_invalid,
        -:        -:15652:   NULL,
        -:        -:15653:};
        -:        -:15654:static const nir_search_expression search274_1 = {
        -:        -:15655:   { nir_search_value_expression, 0 },
        -:        -:15656:   false,
        -:        -:15657:   nir_op_bcsel,
        -:        -:15658:   { &search274_1_0.value, &search274_1_1.value, &search274_1_2.value },
        -:        -:15659:   NULL,
        -:        -:15660:};
        -:        -:15661:static const nir_search_expression search274 = {
        -:        -:15662:   { nir_search_value_expression, 0 },
        -:        -:15663:   false,
        -:        -:15664:   nir_op_ult,
        -:        -:15665:   { &search274_0.value, &search274_1.value },
        -:        -:15666:   NULL,
        -:        -:15667:};
        -:        -:15668:   
        -:        -:15669:static const nir_search_variable replace274_0 = {
        -:        -:15670:   { nir_search_value_variable, 0 },
        -:        -:15671:   1, /* a */
        -:        -:15672:   false,
        -:        -:15673:   nir_type_invalid,
        -:        -:15674:   NULL,
        -:        -:15675:};
        -:        -:15676:
        -:        -:15677:static const nir_search_variable replace274_1_0 = {
        -:        -:15678:   { nir_search_value_variable, 0 },
        -:        -:15679:   0, /* d */
        -:        -:15680:   false,
        -:        -:15681:   nir_type_invalid,
        -:        -:15682:   NULL,
        -:        -:15683:};
        -:        -:15684:
        -:        -:15685:static const nir_search_variable replace274_1_1 = {
        -:        -:15686:   { nir_search_value_variable, 0 },
        -:        -:15687:   2, /* b */
        -:        -:15688:   false,
        -:        -:15689:   nir_type_invalid,
        -:        -:15690:   NULL,
        -:        -:15691:};
        -:        -:15692:static const nir_search_expression replace274_1 = {
        -:        -:15693:   { nir_search_value_expression, 0 },
        -:        -:15694:   false,
        -:        -:15695:   nir_op_ult,
        -:        -:15696:   { &replace274_1_0.value, &replace274_1_1.value },
        -:        -:15697:   NULL,
        -:        -:15698:};
        -:        -:15699:
        -:        -:15700:static const nir_search_variable replace274_2_0 = {
        -:        -:15701:   { nir_search_value_variable, 0 },
        -:        -:15702:   0, /* d */
        -:        -:15703:   false,
        -:        -:15704:   nir_type_invalid,
        -:        -:15705:   NULL,
        -:        -:15706:};
        -:        -:15707:
        -:        -:15708:static const nir_search_variable replace274_2_1 = {
        -:        -:15709:   { nir_search_value_variable, 0 },
        -:        -:15710:   3, /* c */
        -:        -:15711:   false,
        -:        -:15712:   nir_type_invalid,
        -:        -:15713:   NULL,
        -:        -:15714:};
        -:        -:15715:static const nir_search_expression replace274_2 = {
        -:        -:15716:   { nir_search_value_expression, 0 },
        -:        -:15717:   false,
        -:        -:15718:   nir_op_ult,
        -:        -:15719:   { &replace274_2_0.value, &replace274_2_1.value },
        -:        -:15720:   NULL,
        -:        -:15721:};
        -:        -:15722:static const nir_search_expression replace274 = {
        -:        -:15723:   { nir_search_value_expression, 0 },
        -:        -:15724:   false,
        -:        -:15725:   nir_op_bcsel,
        -:        -:15726:   { &replace274_0.value, &replace274_1.value, &replace274_2.value },
        -:        -:15727:   NULL,
        -:        -:15728:};
        -:        -:15729:
        -:        -:15730:static const struct transform nir_opt_algebraic_ult_xforms[] = {
        -:        -:15731:   { &search131, &replace131.value, 0 },
        -:        -:15732:   { &search273, &replace273.value, 0 },
        -:        -:15733:   { &search274, &replace274.value, 0 },
        -:        -:15734:};
        -:        -:15735:   
        -:        -:15736:static const nir_search_variable search195_0_0 = {
        -:        -:15737:   { nir_search_value_variable, 0 },
        -:        -:15738:   0, /* a */
        -:        -:15739:   false,
        -:        -:15740:   nir_type_invalid,
        -:        -:15741:   NULL,
        -:        -:15742:};
        -:        -:15743:static const nir_search_expression search195_0 = {
        -:        -:15744:   { nir_search_value_expression, 0 },
        -:        -:15745:   false,
        -:        -:15746:   nir_op_ftrunc,
        -:        -:15747:   { &search195_0_0.value },
        -:        -:15748:   NULL,
        -:        -:15749:};
        -:        -:15750:static const nir_search_expression search195 = {
        -:        -:15751:   { nir_search_value_expression, 0 },
        -:        -:15752:   false,
        -:        -:15753:   nir_op_f2i32,
        -:        -:15754:   { &search195_0.value },
        -:        -:15755:   NULL,
        -:        -:15756:};
        -:        -:15757:   
        -:        -:15758:static const nir_search_variable replace195_0 = {
        -:        -:15759:   { nir_search_value_variable, 0 },
        -:        -:15760:   0, /* a */
        -:        -:15761:   false,
        -:        -:15762:   nir_type_invalid,
        -:        -:15763:   NULL,
        -:        -:15764:};
        -:        -:15765:static const nir_search_expression replace195 = {
        -:        -:15766:   { nir_search_value_expression, 0 },
        -:        -:15767:   false,
        -:        -:15768:   nir_op_f2i32,
        -:        -:15769:   { &replace195_0.value },
        -:        -:15770:   NULL,
        -:        -:15771:};
        -:        -:15772:
        -:        -:15773:static const struct transform nir_opt_algebraic_f2i32_xforms[] = {
        -:        -:15774:   { &search195, &replace195.value, 0 },
        -:        -:15775:};
        -:        -:15776:   
        -:        -:15777:static const nir_search_variable search10_0_0 = {
        -:        -:15778:   { nir_search_value_variable, 0 },
        -:        -:15779:   0, /* a */
        -:        -:15780:   false,
        -:        -:15781:   nir_type_invalid,
        -:        -:15782:   NULL,
        -:        -:15783:};
        -:        -:15784:static const nir_search_expression search10_0 = {
        -:        -:15785:   { nir_search_value_expression, 0 },
        -:        -:15786:   false,
        -:        -:15787:   nir_op_fneg,
        -:        -:15788:   { &search10_0_0.value },
        -:        -:15789:   NULL,
        -:        -:15790:};
        -:        -:15791:static const nir_search_expression search10 = {
        -:        -:15792:   { nir_search_value_expression, 0 },
        -:        -:15793:   false,
        -:        -:15794:   nir_op_fneg,
        -:        -:15795:   { &search10_0.value },
        -:        -:15796:   NULL,
        -:        -:15797:};
        -:        -:15798:   
        -:        -:15799:static const nir_search_variable replace10 = {
        -:        -:15800:   { nir_search_value_variable, 0 },
        -:        -:15801:   0, /* a */
        -:        -:15802:   false,
        -:        -:15803:   nir_type_invalid,
        -:        -:15804:   NULL,
        -:        -:15805:};
        -:        -:15806:   
        -:        -:15807:static const nir_search_variable search216_0 = {
        -:        -:15808:   { nir_search_value_variable, 0 },
        -:        -:15809:   0, /* a */
        -:        -:15810:   false,
        -:        -:15811:   nir_type_invalid,
        -:        -:15812:   NULL,
        -:        -:15813:};
        -:        -:15814:static const nir_search_expression search216 = {
        -:        -:15815:   { nir_search_value_expression, 0 },
        -:        -:15816:   false,
        -:        -:15817:   nir_op_fneg,
        -:        -:15818:   { &search216_0.value },
        -:        -:15819:   NULL,
        -:        -:15820:};
        -:        -:15821:   
        -:        -:15822:static const nir_search_constant replace216_0 = {
        -:        -:15823:   { nir_search_value_constant, 0 },
        -:        -:15824:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:15825:};
        -:        -:15826:
        -:        -:15827:static const nir_search_variable replace216_1 = {
        -:        -:15828:   { nir_search_value_variable, 0 },
        -:        -:15829:   0, /* a */
        -:        -:15830:   false,
        -:        -:15831:   nir_type_invalid,
        -:        -:15832:   NULL,
        -:        -:15833:};
        -:        -:15834:static const nir_search_expression replace216 = {
        -:        -:15835:   { nir_search_value_expression, 0 },
        -:        -:15836:   false,
        -:        -:15837:   nir_op_fsub,
        -:        -:15838:   { &replace216_0.value, &replace216_1.value },
        -:        -:15839:   NULL,
        -:        -:15840:};
        -:        -:15841:
        -:        -:15842:static const struct transform nir_opt_algebraic_fneg_xforms[] = {
        -:        -:15843:   { &search10, &replace10.value, 0 },
        -:        -:15844:   { &search216, &replace216.value, 20 },
        -:        -:15845:};
        -:        -:15846:   
        -:        -:15847:static const nir_search_variable search210_0 = {
        -:        -:15848:   { nir_search_value_variable, 0 },
        -:        -:15849:   0, /* a */
        -:        -:15850:   false,
        -:        -:15851:   nir_type_invalid,
        -:        -:15852:   NULL,
        -:        -:15853:};
        -:        -:15854:
        -:        -:15855:static const nir_search_constant search210_1_0 = {
        -:        -:15856:   { nir_search_value_constant, 0 },
        -:        -:15857:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:15858:};
        -:        -:15859:
        -:        -:15860:static const nir_search_variable search210_1_1 = {
        -:        -:15861:   { nir_search_value_variable, 0 },
        -:        -:15862:   1, /* b */
        -:        -:15863:   false,
        -:        -:15864:   nir_type_invalid,
        -:        -:15865:   NULL,
        -:        -:15866:};
        -:        -:15867:static const nir_search_expression search210_1 = {
        -:        -:15868:   { nir_search_value_expression, 0 },
        -:        -:15869:   false,
        -:        -:15870:   nir_op_fsub,
        -:        -:15871:   { &search210_1_0.value, &search210_1_1.value },
        -:        -:15872:   NULL,
        -:        -:15873:};
        -:        -:15874:static const nir_search_expression search210 = {
        -:        -:15875:   { nir_search_value_expression, 0 },
        -:        -:15876:   true,
        -:        -:15877:   nir_op_fsub,
        -:        -:15878:   { &search210_0.value, &search210_1.value },
        -:        -:15879:   NULL,
        -:        -:15880:};
        -:        -:15881:   
        -:        -:15882:static const nir_search_variable replace210_0 = {
        -:        -:15883:   { nir_search_value_variable, 0 },
        -:        -:15884:   0, /* a */
        -:        -:15885:   false,
        -:        -:15886:   nir_type_invalid,
        -:        -:15887:   NULL,
        -:        -:15888:};
        -:        -:15889:
        -:        -:15890:static const nir_search_variable replace210_1 = {
        -:        -:15891:   { nir_search_value_variable, 0 },
        -:        -:15892:   1, /* b */
        -:        -:15893:   false,
        -:        -:15894:   nir_type_invalid,
        -:        -:15895:   NULL,
        -:        -:15896:};
        -:        -:15897:static const nir_search_expression replace210 = {
        -:        -:15898:   { nir_search_value_expression, 0 },
        -:        -:15899:   false,
        -:        -:15900:   nir_op_fadd,
        -:        -:15901:   { &replace210_0.value, &replace210_1.value },
        -:        -:15902:   NULL,
        -:        -:15903:};
        -:        -:15904:   
        -:        -:15905:static const nir_search_variable search214_0 = {
        -:        -:15906:   { nir_search_value_variable, 0 },
        -:        -:15907:   0, /* a */
        -:        -:15908:   false,
        -:        -:15909:   nir_type_invalid,
        -:        -:15910:   NULL,
        -:        -:15911:};
        -:        -:15912:
        -:        -:15913:static const nir_search_variable search214_1 = {
        -:        -:15914:   { nir_search_value_variable, 0 },
        -:        -:15915:   1, /* b */
        -:        -:15916:   false,
        -:        -:15917:   nir_type_invalid,
        -:        -:15918:   NULL,
        -:        -:15919:};
        -:        -:15920:static const nir_search_expression search214 = {
        -:        -:15921:   { nir_search_value_expression, 0 },
        -:        -:15922:   false,
        -:        -:15923:   nir_op_fsub,
        -:        -:15924:   { &search214_0.value, &search214_1.value },
        -:        -:15925:   NULL,
        -:        -:15926:};
        -:        -:15927:   
        -:        -:15928:static const nir_search_variable replace214_0 = {
        -:        -:15929:   { nir_search_value_variable, 0 },
        -:        -:15930:   0, /* a */
        -:        -:15931:   false,
        -:        -:15932:   nir_type_invalid,
        -:        -:15933:   NULL,
        -:        -:15934:};
        -:        -:15935:
        -:        -:15936:static const nir_search_variable replace214_1_0 = {
        -:        -:15937:   { nir_search_value_variable, 0 },
        -:        -:15938:   1, /* b */
        -:        -:15939:   false,
        -:        -:15940:   nir_type_invalid,
        -:        -:15941:   NULL,
        -:        -:15942:};
        -:        -:15943:static const nir_search_expression replace214_1 = {
        -:        -:15944:   { nir_search_value_expression, 0 },
        -:        -:15945:   false,
        -:        -:15946:   nir_op_fneg,
        -:        -:15947:   { &replace214_1_0.value },
        -:        -:15948:   NULL,
        -:        -:15949:};
        -:        -:15950:static const nir_search_expression replace214 = {
        -:        -:15951:   { nir_search_value_expression, 0 },
        -:        -:15952:   false,
        -:        -:15953:   nir_op_fadd,
        -:        -:15954:   { &replace214_0.value, &replace214_1.value },
        -:        -:15955:   NULL,
        -:        -:15956:};
        -:        -:15957:
        -:        -:15958:static const struct transform nir_opt_algebraic_fsub_xforms[] = {
        -:        -:15959:   { &search210, &replace210.value, 0 },
        -:        -:15960:   { &search214, &replace214.value, 19 },
        -:        -:15961:};
        -:        -:15962:   
        -:        -:15963:static const nir_search_variable search118_0_0 = {
        -:        -:15964:   { nir_search_value_variable, 0 },
        -:        -:15965:   0, /* a */
        -:        -:15966:   false,
        -:        -:15967:   nir_type_invalid,
        -:        -:15968:   NULL,
        -:        -:15969:};
        -:        -:15970:static const nir_search_expression search118_0 = {
        -:        -:15971:   { nir_search_value_expression, 0 },
        -:        -:15972:   false,
        -:        -:15973:   nir_op_fneg,
        -:        -:15974:   { &search118_0_0.value },
        -:        -:15975:   NULL,
        -:        -:15976:};
        -:        -:15977:
        -:        -:15978:static const nir_search_variable search118_1 = {
        -:        -:15979:   { nir_search_value_variable, 0 },
        -:        -:15980:   0, /* a */
        -:        -:15981:   false,
        -:        -:15982:   nir_type_invalid,
        -:        -:15983:   NULL,
        -:        -:15984:};
        -:        -:15985:static const nir_search_expression search118 = {
        -:        -:15986:   { nir_search_value_expression, 0 },
        -:        -:15987:   false,
        -:        -:15988:   nir_op_fne,
        -:        -:15989:   { &search118_0.value, &search118_1.value },
        -:        -:15990:   NULL,
        -:        -:15991:};
        -:        -:15992:   
        -:        -:15993:static const nir_search_variable replace118_0 = {
        -:        -:15994:   { nir_search_value_variable, 0 },
        -:        -:15995:   0, /* a */
        -:        -:15996:   false,
        -:        -:15997:   nir_type_invalid,
        -:        -:15998:   NULL,
        -:        -:15999:};
        -:        -:16000:
        -:        -:16001:static const nir_search_constant replace118_1 = {
        -:        -:16002:   { nir_search_value_constant, 0 },
        -:        -:16003:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:16004:};
        -:        -:16005:static const nir_search_expression replace118 = {
        -:        -:16006:   { nir_search_value_expression, 0 },
        -:        -:16007:   false,
        -:        -:16008:   nir_op_fne,
        -:        -:16009:   { &replace118_0.value, &replace118_1.value },
        -:        -:16010:   NULL,
        -:        -:16011:};
        -:        -:16012:   
        -:        -:16013:static const nir_search_variable search263_0_0 = {
        -:        -:16014:   { nir_search_value_variable, 0 },
        -:        -:16015:   0, /* a */
        -:        -:16016:   false,
        -:        -:16017:   nir_type_invalid,
        -:        -:16018:   NULL,
        -:        -:16019:};
        -:        -:16020:
        -:        -:16021:static const nir_search_variable search263_0_1 = {
        -:        -:16022:   { nir_search_value_variable, 0 },
        -:        -:16023:   1, /* b */
        -:        -:16024:   true,
        -:        -:16025:   nir_type_invalid,
        -:        -:16026:   NULL,
        -:        -:16027:};
        -:        -:16028:
        -:        -:16029:static const nir_search_variable search263_0_2 = {
        -:        -:16030:   { nir_search_value_variable, 0 },
        -:        -:16031:   2, /* c */
        -:        -:16032:   true,
        -:        -:16033:   nir_type_invalid,
        -:        -:16034:   NULL,
        -:        -:16035:};
        -:        -:16036:static const nir_search_expression search263_0 = {
        -:        -:16037:   { nir_search_value_expression, 0 },
        -:        -:16038:   false,
        -:        -:16039:   nir_op_bcsel,
        -:        -:16040:   { &search263_0_0.value, &search263_0_1.value, &search263_0_2.value },
        -:        -:16041:   NULL,
        -:        -:16042:};
        -:        -:16043:
        -:        -:16044:static const nir_search_variable search263_1 = {
        -:        -:16045:   { nir_search_value_variable, 0 },
        -:        -:16046:   3, /* d */
        -:        -:16047:   true,
        -:        -:16048:   nir_type_invalid,
        -:        -:16049:   NULL,
        -:        -:16050:};
        -:        -:16051:static const nir_search_expression search263 = {
        -:        -:16052:   { nir_search_value_expression, 0 },
        -:        -:16053:   false,
        -:        -:16054:   nir_op_fne,
        -:        -:16055:   { &search263_0.value, &search263_1.value },
        -:        -:16056:   NULL,
        -:        -:16057:};
        -:        -:16058:   
        -:        -:16059:static const nir_search_variable replace263_0 = {
        -:        -:16060:   { nir_search_value_variable, 0 },
        -:        -:16061:   0, /* a */
        -:        -:16062:   false,
        -:        -:16063:   nir_type_invalid,
        -:        -:16064:   NULL,
        -:        -:16065:};
        -:        -:16066:
        -:        -:16067:static const nir_search_variable replace263_1_0 = {
        -:        -:16068:   { nir_search_value_variable, 0 },
        -:        -:16069:   1, /* b */
        -:        -:16070:   false,
        -:        -:16071:   nir_type_invalid,
        -:        -:16072:   NULL,
        -:        -:16073:};
        -:        -:16074:
        -:        -:16075:static const nir_search_variable replace263_1_1 = {
        -:        -:16076:   { nir_search_value_variable, 0 },
        -:        -:16077:   3, /* d */
        -:        -:16078:   false,
        -:        -:16079:   nir_type_invalid,
        -:        -:16080:   NULL,
        -:        -:16081:};
        -:        -:16082:static const nir_search_expression replace263_1 = {
        -:        -:16083:   { nir_search_value_expression, 0 },
        -:        -:16084:   false,
        -:        -:16085:   nir_op_fne,
        -:        -:16086:   { &replace263_1_0.value, &replace263_1_1.value },
        -:        -:16087:   NULL,
        -:        -:16088:};
        -:        -:16089:
        -:        -:16090:static const nir_search_variable replace263_2_0 = {
        -:        -:16091:   { nir_search_value_variable, 0 },
        -:        -:16092:   2, /* c */
        -:        -:16093:   false,
        -:        -:16094:   nir_type_invalid,
        -:        -:16095:   NULL,
        -:        -:16096:};
        -:        -:16097:
        -:        -:16098:static const nir_search_variable replace263_2_1 = {
        -:        -:16099:   { nir_search_value_variable, 0 },
        -:        -:16100:   3, /* d */
        -:        -:16101:   false,
        -:        -:16102:   nir_type_invalid,
        -:        -:16103:   NULL,
        -:        -:16104:};
        -:        -:16105:static const nir_search_expression replace263_2 = {
        -:        -:16106:   { nir_search_value_expression, 0 },
        -:        -:16107:   false,
        -:        -:16108:   nir_op_fne,
        -:        -:16109:   { &replace263_2_0.value, &replace263_2_1.value },
        -:        -:16110:   NULL,
        -:        -:16111:};
        -:        -:16112:static const nir_search_expression replace263 = {
        -:        -:16113:   { nir_search_value_expression, 0 },
        -:        -:16114:   false,
        -:        -:16115:   nir_op_bcsel,
        -:        -:16116:   { &replace263_0.value, &replace263_1.value, &replace263_2.value },
        -:        -:16117:   NULL,
        -:        -:16118:};
        -:        -:16119:   
        -:        -:16120:static const nir_search_variable search264_0 = {
        -:        -:16121:   { nir_search_value_variable, 0 },
        -:        -:16122:   0, /* d */
        -:        -:16123:   true,
        -:        -:16124:   nir_type_invalid,
        -:        -:16125:   NULL,
        -:        -:16126:};
        -:        -:16127:
        -:        -:16128:static const nir_search_variable search264_1_0 = {
        -:        -:16129:   { nir_search_value_variable, 0 },
        -:        -:16130:   1, /* a */
        -:        -:16131:   false,
        -:        -:16132:   nir_type_invalid,
        -:        -:16133:   NULL,
        -:        -:16134:};
        -:        -:16135:
        -:        -:16136:static const nir_search_variable search264_1_1 = {
        -:        -:16137:   { nir_search_value_variable, 0 },
        -:        -:16138:   2, /* b */
        -:        -:16139:   true,
        -:        -:16140:   nir_type_invalid,
        -:        -:16141:   NULL,
        -:        -:16142:};
        -:        -:16143:
        -:        -:16144:static const nir_search_variable search264_1_2 = {
        -:        -:16145:   { nir_search_value_variable, 0 },
        -:        -:16146:   3, /* c */
        -:        -:16147:   true,
        -:        -:16148:   nir_type_invalid,
        -:        -:16149:   NULL,
        -:        -:16150:};
        -:        -:16151:static const nir_search_expression search264_1 = {
        -:        -:16152:   { nir_search_value_expression, 0 },
        -:        -:16153:   false,
        -:        -:16154:   nir_op_bcsel,
        -:        -:16155:   { &search264_1_0.value, &search264_1_1.value, &search264_1_2.value },
        -:        -:16156:   NULL,
        -:        -:16157:};
        -:        -:16158:static const nir_search_expression search264 = {
        -:        -:16159:   { nir_search_value_expression, 0 },
        -:        -:16160:   false,
        -:        -:16161:   nir_op_fne,
        -:        -:16162:   { &search264_0.value, &search264_1.value },
        -:        -:16163:   NULL,
        -:        -:16164:};
        -:        -:16165:   
        -:        -:16166:static const nir_search_variable replace264_0 = {
        -:        -:16167:   { nir_search_value_variable, 0 },
        -:        -:16168:   1, /* a */
        -:        -:16169:   false,
        -:        -:16170:   nir_type_invalid,
        -:        -:16171:   NULL,
        -:        -:16172:};
        -:        -:16173:
        -:        -:16174:static const nir_search_variable replace264_1_0 = {
        -:        -:16175:   { nir_search_value_variable, 0 },
        -:        -:16176:   0, /* d */
        -:        -:16177:   false,
        -:        -:16178:   nir_type_invalid,
        -:        -:16179:   NULL,
        -:        -:16180:};
        -:        -:16181:
        -:        -:16182:static const nir_search_variable replace264_1_1 = {
        -:        -:16183:   { nir_search_value_variable, 0 },
        -:        -:16184:   2, /* b */
        -:        -:16185:   false,
        -:        -:16186:   nir_type_invalid,
        -:        -:16187:   NULL,
        -:        -:16188:};
        -:        -:16189:static const nir_search_expression replace264_1 = {
        -:        -:16190:   { nir_search_value_expression, 0 },
        -:        -:16191:   false,
        -:        -:16192:   nir_op_fne,
        -:        -:16193:   { &replace264_1_0.value, &replace264_1_1.value },
        -:        -:16194:   NULL,
        -:        -:16195:};
        -:        -:16196:
        -:        -:16197:static const nir_search_variable replace264_2_0 = {
        -:        -:16198:   { nir_search_value_variable, 0 },
        -:        -:16199:   0, /* d */
        -:        -:16200:   false,
        -:        -:16201:   nir_type_invalid,
        -:        -:16202:   NULL,
        -:        -:16203:};
        -:        -:16204:
        -:        -:16205:static const nir_search_variable replace264_2_1 = {
        -:        -:16206:   { nir_search_value_variable, 0 },
        -:        -:16207:   3, /* c */
        -:        -:16208:   false,
        -:        -:16209:   nir_type_invalid,
        -:        -:16210:   NULL,
        -:        -:16211:};
        -:        -:16212:static const nir_search_expression replace264_2 = {
        -:        -:16213:   { nir_search_value_expression, 0 },
        -:        -:16214:   false,
        -:        -:16215:   nir_op_fne,
        -:        -:16216:   { &replace264_2_0.value, &replace264_2_1.value },
        -:        -:16217:   NULL,
        -:        -:16218:};
        -:        -:16219:static const nir_search_expression replace264 = {
        -:        -:16220:   { nir_search_value_expression, 0 },
        -:        -:16221:   false,
        -:        -:16222:   nir_op_bcsel,
        -:        -:16223:   { &replace264_0.value, &replace264_1.value, &replace264_2.value },
        -:        -:16224:   NULL,
        -:        -:16225:};
        -:        -:16226:
        -:        -:16227:static const struct transform nir_opt_algebraic_fne_xforms[] = {
        -:        -:16228:   { &search118, &replace118.value, 0 },
        -:        -:16229:   { &search263, &replace263.value, 0 },
        -:        -:16230:   { &search264, &replace264.value, 0 },
        -:        -:16231:};
        -:        -:16232:   
        -:        -:16233:static const nir_search_variable search15_0_0 = {
        -:        -:16234:   { nir_search_value_variable, 0 },
        -:        -:16235:   0, /* a */
        -:        -:16236:   false,
        -:        -:16237:   nir_type_invalid,
        -:        -:16238:   NULL,
        -:        -:16239:};
        -:        -:16240:static const nir_search_expression search15_0 = {
        -:        -:16241:   { nir_search_value_expression, 0 },
        -:        -:16242:   false,
        -:        -:16243:   nir_op_iabs,
        -:        -:16244:   { &search15_0_0.value },
        -:        -:16245:   NULL,
        -:        -:16246:};
        -:        -:16247:static const nir_search_expression search15 = {
        -:        -:16248:   { nir_search_value_expression, 0 },
        -:        -:16249:   false,
        -:        -:16250:   nir_op_iabs,
        -:        -:16251:   { &search15_0.value },
        -:        -:16252:   NULL,
        -:        -:16253:};
        -:        -:16254:   
        -:        -:16255:static const nir_search_variable replace15_0 = {
        -:        -:16256:   { nir_search_value_variable, 0 },
        -:        -:16257:   0, /* a */
        -:        -:16258:   false,
        -:        -:16259:   nir_type_invalid,
        -:        -:16260:   NULL,
        -:        -:16261:};
        -:        -:16262:static const nir_search_expression replace15 = {
        -:        -:16263:   { nir_search_value_expression, 0 },
        -:        -:16264:   false,
        -:        -:16265:   nir_op_iabs,
        -:        -:16266:   { &replace15_0.value },
        -:        -:16267:   NULL,
        -:        -:16268:};
        -:        -:16269:   
        -:        -:16270:static const nir_search_variable search16_0_0 = {
        -:        -:16271:   { nir_search_value_variable, 0 },
        -:        -:16272:   0, /* a */
        -:        -:16273:   false,
        -:        -:16274:   nir_type_invalid,
        -:        -:16275:   NULL,
        -:        -:16276:};
        -:        -:16277:static const nir_search_expression search16_0 = {
        -:        -:16278:   { nir_search_value_expression, 0 },
        -:        -:16279:   false,
        -:        -:16280:   nir_op_ineg,
        -:        -:16281:   { &search16_0_0.value },
        -:        -:16282:   NULL,
        -:        -:16283:};
        -:        -:16284:static const nir_search_expression search16 = {
        -:        -:16285:   { nir_search_value_expression, 0 },
        -:        -:16286:   false,
        -:        -:16287:   nir_op_iabs,
        -:        -:16288:   { &search16_0.value },
        -:        -:16289:   NULL,
        -:        -:16290:};
        -:        -:16291:   
        -:        -:16292:static const nir_search_variable replace16_0 = {
        -:        -:16293:   { nir_search_value_variable, 0 },
        -:        -:16294:   0, /* a */
        -:        -:16295:   false,
        -:        -:16296:   nir_type_invalid,
        -:        -:16297:   NULL,
        -:        -:16298:};
        -:        -:16299:static const nir_search_expression replace16 = {
        -:        -:16300:   { nir_search_value_expression, 0 },
        -:        -:16301:   false,
        -:        -:16302:   nir_op_iabs,
        -:        -:16303:   { &replace16_0.value },
        -:        -:16304:   NULL,
        -:        -:16305:};
        -:        -:16306:   
        -:        -:16307:static const nir_search_variable search200_0_0 = {
        -:        -:16308:   { nir_search_value_variable, 0 },
        -:        -:16309:   0, /* a */
        -:        -:16310:   false,
        -:        -:16311:   nir_type_invalid,
        -:        -:16312:   NULL,
        -:        -:16313:};
        -:        -:16314:static const nir_search_expression search200_0 = {
        -:        -:16315:   { nir_search_value_expression, 0 },
        -:        -:16316:   false,
        -:        -:16317:   nir_op_b2i,
        -:        -:16318:   { &search200_0_0.value },
        -:        -:16319:   NULL,
        -:        -:16320:};
        -:        -:16321:static const nir_search_expression search200 = {
        -:        -:16322:   { nir_search_value_expression, 0 },
        -:        -:16323:   false,
        -:        -:16324:   nir_op_iabs,
        -:        -:16325:   { &search200_0.value },
        -:        -:16326:   NULL,
        -:        -:16327:};
        -:        -:16328:   
        -:        -:16329:static const nir_search_variable replace200_0 = {
        -:        -:16330:   { nir_search_value_variable, 0 },
        -:        -:16331:   0, /* a */
        -:        -:16332:   false,
        -:        -:16333:   nir_type_invalid,
        -:        -:16334:   NULL,
        -:        -:16335:};
        -:        -:16336:static const nir_search_expression replace200 = {
        -:        -:16337:   { nir_search_value_expression, 0 },
        -:        -:16338:   false,
        -:        -:16339:   nir_op_b2i,
        -:        -:16340:   { &replace200_0.value },
        -:        -:16341:   NULL,
        -:        -:16342:};
        -:        -:16343:   
        -:        -:16344:static const nir_search_constant search221_0_0 = {
        -:        -:16345:   { nir_search_value_constant, 0 },
        -:        -:16346:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:16347:};
        -:        -:16348:
        -:        -:16349:static const nir_search_variable search221_0_1 = {
        -:        -:16350:   { nir_search_value_variable, 0 },
        -:        -:16351:   0, /* a */
        -:        -:16352:   false,
        -:        -:16353:   nir_type_invalid,
        -:        -:16354:   NULL,
        -:        -:16355:};
        -:        -:16356:static const nir_search_expression search221_0 = {
        -:        -:16357:   { nir_search_value_expression, 0 },
        -:        -:16358:   false,
        -:        -:16359:   nir_op_isub,
        -:        -:16360:   { &search221_0_0.value, &search221_0_1.value },
        -:        -:16361:   NULL,
        -:        -:16362:};
        -:        -:16363:static const nir_search_expression search221 = {
        -:        -:16364:   { nir_search_value_expression, 0 },
        -:        -:16365:   false,
        -:        -:16366:   nir_op_iabs,
        -:        -:16367:   { &search221_0.value },
        -:        -:16368:   NULL,
        -:        -:16369:};
        -:        -:16370:   
        -:        -:16371:static const nir_search_variable replace221_0 = {
        -:        -:16372:   { nir_search_value_variable, 0 },
        -:        -:16373:   0, /* a */
        -:        -:16374:   false,
        -:        -:16375:   nir_type_invalid,
        -:        -:16376:   NULL,
        -:        -:16377:};
        -:        -:16378:static const nir_search_expression replace221 = {
        -:        -:16379:   { nir_search_value_expression, 0 },
        -:        -:16380:   false,
        -:        -:16381:   nir_op_iabs,
        -:        -:16382:   { &replace221_0.value },
        -:        -:16383:   NULL,
        -:        -:16384:};
        -:        -:16385:
        -:        -:16386:static const struct transform nir_opt_algebraic_iabs_xforms[] = {
        -:        -:16387:   { &search15, &replace15.value, 0 },
        -:        -:16388:   { &search16, &replace16.value, 0 },
        -:        -:16389:   { &search200, &replace200.value, 0 },
        -:        -:16390:   { &search221, &replace221.value, 0 },
        -:        -:16391:};
        -:        -:16392:   
        -:        -:16393:static const nir_search_variable search245_0 = {
        -:        -:16394:   { nir_search_value_variable, 0 },
        -:        -:16395:   0, /* v */
        -:        -:16396:   false,
        -:        -:16397:   nir_type_invalid,
        -:        -:16398:   NULL,
        -:        -:16399:};
        -:        -:16400:static const nir_search_expression search245 = {
        -:        -:16401:   { nir_search_value_expression, 0 },
        -:        -:16402:   false,
        -:        -:16403:   nir_op_unpack_unorm_4x8,
        -:        -:16404:   { &search245_0.value },
        -:        -:16405:   NULL,
        -:        -:16406:};
        -:        -:16407:   
        -:        -:16408:static const nir_search_variable replace245_0_0_0_0 = {
        -:        -:16409:   { nir_search_value_variable, 0 },
        -:        -:16410:   0, /* v */
        -:        -:16411:   false,
        -:        -:16412:   nir_type_invalid,
        -:        -:16413:   NULL,
        -:        -:16414:};
        -:        -:16415:
        -:        -:16416:static const nir_search_constant replace245_0_0_0_1 = {
        -:        -:16417:   { nir_search_value_constant, 0 },
        -:        -:16418:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:16419:};
        -:        -:16420:static const nir_search_expression replace245_0_0_0 = {
        -:        -:16421:   { nir_search_value_expression, 0 },
        -:        -:16422:   false,
        -:        -:16423:   nir_op_extract_u8,
        -:        -:16424:   { &replace245_0_0_0_0.value, &replace245_0_0_0_1.value },
        -:        -:16425:   NULL,
        -:        -:16426:};
        -:        -:16427:
        -:        -:16428:static const nir_search_variable replace245_0_0_1_0 = {
        -:        -:16429:   { nir_search_value_variable, 0 },
        -:        -:16430:   0, /* v */
        -:        -:16431:   false,
        -:        -:16432:   nir_type_invalid,
        -:        -:16433:   NULL,
        -:        -:16434:};
        -:        -:16435:
        -:        -:16436:static const nir_search_constant replace245_0_0_1_1 = {
        -:        -:16437:   { nir_search_value_constant, 0 },
        -:        -:16438:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:16439:};
        -:        -:16440:static const nir_search_expression replace245_0_0_1 = {
        -:        -:16441:   { nir_search_value_expression, 0 },
        -:        -:16442:   false,
        -:        -:16443:   nir_op_extract_u8,
        -:        -:16444:   { &replace245_0_0_1_0.value, &replace245_0_0_1_1.value },
        -:        -:16445:   NULL,
        -:        -:16446:};
        -:        -:16447:
        -:        -:16448:static const nir_search_variable replace245_0_0_2_0 = {
        -:        -:16449:   { nir_search_value_variable, 0 },
        -:        -:16450:   0, /* v */
        -:        -:16451:   false,
        -:        -:16452:   nir_type_invalid,
        -:        -:16453:   NULL,
        -:        -:16454:};
        -:        -:16455:
        -:        -:16456:static const nir_search_constant replace245_0_0_2_1 = {
        -:        -:16457:   { nir_search_value_constant, 0 },
        -:        -:16458:   nir_type_int, { 0x2 /* 2 */ },
        -:        -:16459:};
        -:        -:16460:static const nir_search_expression replace245_0_0_2 = {
        -:        -:16461:   { nir_search_value_expression, 0 },
        -:        -:16462:   false,
        -:        -:16463:   nir_op_extract_u8,
        -:        -:16464:   { &replace245_0_0_2_0.value, &replace245_0_0_2_1.value },
        -:        -:16465:   NULL,
        -:        -:16466:};
        -:        -:16467:
        -:        -:16468:static const nir_search_variable replace245_0_0_3_0 = {
        -:        -:16469:   { nir_search_value_variable, 0 },
        -:        -:16470:   0, /* v */
        -:        -:16471:   false,
        -:        -:16472:   nir_type_invalid,
        -:        -:16473:   NULL,
        -:        -:16474:};
        -:        -:16475:
        -:        -:16476:static const nir_search_constant replace245_0_0_3_1 = {
        -:        -:16477:   { nir_search_value_constant, 0 },
        -:        -:16478:   nir_type_int, { 0x3 /* 3 */ },
        -:        -:16479:};
        -:        -:16480:static const nir_search_expression replace245_0_0_3 = {
        -:        -:16481:   { nir_search_value_expression, 0 },
        -:        -:16482:   false,
        -:        -:16483:   nir_op_extract_u8,
        -:        -:16484:   { &replace245_0_0_3_0.value, &replace245_0_0_3_1.value },
        -:        -:16485:   NULL,
        -:        -:16486:};
        -:        -:16487:static const nir_search_expression replace245_0_0 = {
        -:        -:16488:   { nir_search_value_expression, 0 },
        -:        -:16489:   false,
        -:        -:16490:   nir_op_vec4,
        -:        -:16491:   { &replace245_0_0_0.value, &replace245_0_0_1.value, &replace245_0_0_2.value, &replace245_0_0_3.value },
        -:        -:16492:   NULL,
        -:        -:16493:};
        -:        -:16494:static const nir_search_expression replace245_0 = {
        -:        -:16495:   { nir_search_value_expression, 0 },
        -:        -:16496:   false,
        -:        -:16497:   nir_op_u2f32,
        -:        -:16498:   { &replace245_0_0.value },
        -:        -:16499:   NULL,
        -:        -:16500:};
        -:        -:16501:
        -:        -:16502:static const nir_search_constant replace245_1 = {
        -:        -:16503:   { nir_search_value_constant, 0 },
        -:        -:16504:   nir_type_float, { 0x406fe00000000000 /* 255.0 */ },
        -:        -:16505:};
        -:        -:16506:static const nir_search_expression replace245 = {
        -:        -:16507:   { nir_search_value_expression, 0 },
        -:        -:16508:   false,
        -:        -:16509:   nir_op_fdiv,
        -:        -:16510:   { &replace245_0.value, &replace245_1.value },
        -:        -:16511:   NULL,
        -:        -:16512:};
        -:        -:16513:
        -:        -:16514:static const struct transform nir_opt_algebraic_unpack_unorm_4x8_xforms[] = {
        -:        -:16515:   { &search245, &replace245.value, 34 },
        -:        -:16516:};
        -:        -:16517:   
        -:        -:16518:static const nir_search_variable search78_0 = {
        -:        -:16519:   { nir_search_value_variable, 0 },
        -:        -:16520:   0, /* a */
        -:        -:16521:   false,
        -:        -:16522:   nir_type_invalid,
        -:        -:16523:   NULL,
        -:        -:16524:};
        -:        -:16525:
        -:        -:16526:static const nir_search_variable search78_1 = {
        -:        -:16527:   { nir_search_value_variable, 0 },
        -:        -:16528:   0, /* a */
        -:        -:16529:   false,
        -:        -:16530:   nir_type_invalid,
        -:        -:16531:   NULL,
        -:        -:16532:};
        -:        -:16533:static const nir_search_expression search78 = {
        -:        -:16534:   { nir_search_value_expression, 0 },
        -:        -:16535:   false,
        -:        -:16536:   nir_op_fmin,
        -:        -:16537:   { &search78_0.value, &search78_1.value },
        -:        -:16538:   NULL,
        -:        -:16539:};
        -:        -:16540:   
        -:        -:16541:static const nir_search_variable replace78 = {
        -:        -:16542:   { nir_search_value_variable, 0 },
        -:        -:16543:   0, /* a */
        -:        -:16544:   false,
        -:        -:16545:   nir_type_invalid,
        -:        -:16546:   NULL,
        -:        -:16547:};
        -:        -:16548:   
        -:        -:16549:static const nir_search_variable search84_0 = {
        -:        -:16550:   { nir_search_value_variable, 0 },
        -:        -:16551:   0, /* a */
        -:        -:16552:   false,
        -:        -:16553:   nir_type_invalid,
        -:        -:16554:   NULL,
        -:        -:16555:};
        -:        -:16556:
        -:        -:16557:static const nir_search_variable search84_1_0 = {
        -:        -:16558:   { nir_search_value_variable, 0 },
        -:        -:16559:   0, /* a */
        -:        -:16560:   false,
        -:        -:16561:   nir_type_invalid,
        -:        -:16562:   NULL,
        -:        -:16563:};
        -:        -:16564:static const nir_search_expression search84_1 = {
        -:        -:16565:   { nir_search_value_expression, 0 },
        -:        -:16566:   false,
        -:        -:16567:   nir_op_fneg,
        -:        -:16568:   { &search84_1_0.value },
        -:        -:16569:   NULL,
        -:        -:16570:};
        -:        -:16571:static const nir_search_expression search84 = {
        -:        -:16572:   { nir_search_value_expression, 0 },
        -:        -:16573:   false,
        -:        -:16574:   nir_op_fmin,
        -:        -:16575:   { &search84_0.value, &search84_1.value },
        -:        -:16576:   NULL,
        -:        -:16577:};
        -:        -:16578:   
        -:        -:16579:static const nir_search_variable replace84_0_0 = {
        -:        -:16580:   { nir_search_value_variable, 0 },
        -:        -:16581:   0, /* a */
        -:        -:16582:   false,
        -:        -:16583:   nir_type_invalid,
        -:        -:16584:   NULL,
        -:        -:16585:};
        -:        -:16586:static const nir_search_expression replace84_0 = {
        -:        -:16587:   { nir_search_value_expression, 0 },
        -:        -:16588:   false,
        -:        -:16589:   nir_op_fabs,
        -:        -:16590:   { &replace84_0_0.value },
        -:        -:16591:   NULL,
        -:        -:16592:};
        -:        -:16593:static const nir_search_expression replace84 = {
        -:        -:16594:   { nir_search_value_expression, 0 },
        -:        -:16595:   false,
        -:        -:16596:   nir_op_fneg,
        -:        -:16597:   { &replace84_0.value },
        -:        -:16598:   NULL,
        -:        -:16599:};
        -:        -:16600:   
        -:        -:16601:static const nir_search_variable search86_0 = {
        -:        -:16602:   { nir_search_value_variable, 0 },
        -:        -:16603:   0, /* a */
        -:        -:16604:   false,
        -:        -:16605:   nir_type_invalid,
        -:        -:16606:   NULL,
        -:        -:16607:};
        -:        -:16608:
        -:        -:16609:static const nir_search_variable search86_1_0_0 = {
        -:        -:16610:   { nir_search_value_variable, 0 },
        -:        -:16611:   0, /* a */
        -:        -:16612:   false,
        -:        -:16613:   nir_type_invalid,
        -:        -:16614:   NULL,
        -:        -:16615:};
        -:        -:16616:static const nir_search_expression search86_1_0 = {
        -:        -:16617:   { nir_search_value_expression, 0 },
        -:        -:16618:   false,
        -:        -:16619:   nir_op_fabs,
        -:        -:16620:   { &search86_1_0_0.value },
        -:        -:16621:   NULL,
        -:        -:16622:};
        -:        -:16623:static const nir_search_expression search86_1 = {
        -:        -:16624:   { nir_search_value_expression, 0 },
        -:        -:16625:   false,
        -:        -:16626:   nir_op_fneg,
        -:        -:16627:   { &search86_1_0.value },
        -:        -:16628:   NULL,
        -:        -:16629:};
        -:        -:16630:static const nir_search_expression search86 = {
        -:        -:16631:   { nir_search_value_expression, 0 },
        -:        -:16632:   false,
        -:        -:16633:   nir_op_fmin,
        -:        -:16634:   { &search86_0.value, &search86_1.value },
        -:        -:16635:   NULL,
        -:        -:16636:};
        -:        -:16637:   
        -:        -:16638:static const nir_search_variable replace86_0_0 = {
        -:        -:16639:   { nir_search_value_variable, 0 },
        -:        -:16640:   0, /* a */
        -:        -:16641:   false,
        -:        -:16642:   nir_type_invalid,
        -:        -:16643:   NULL,
        -:        -:16644:};
        -:        -:16645:static const nir_search_expression replace86_0 = {
        -:        -:16646:   { nir_search_value_expression, 0 },
        -:        -:16647:   false,
        -:        -:16648:   nir_op_fabs,
        -:        -:16649:   { &replace86_0_0.value },
        -:        -:16650:   NULL,
        -:        -:16651:};
        -:        -:16652:static const nir_search_expression replace86 = {
        -:        -:16653:   { nir_search_value_expression, 0 },
        -:        -:16654:   false,
        -:        -:16655:   nir_op_fneg,
        -:        -:16656:   { &replace86_0.value },
        -:        -:16657:   NULL,
        -:        -:16658:};
        -:        -:16659:   
        -:        -:16660:static const nir_search_variable search88_0 = {
        -:        -:16661:   { nir_search_value_variable, 0 },
        -:        -:16662:   0, /* a */
        -:        -:16663:   false,
        -:        -:16664:   nir_type_invalid,
        -:        -:16665:   NULL,
        -:        -:16666:};
        -:        -:16667:
        -:        -:16668:static const nir_search_variable search88_1_0 = {
        -:        -:16669:   { nir_search_value_variable, 0 },
        -:        -:16670:   0, /* a */
        -:        -:16671:   false,
        -:        -:16672:   nir_type_invalid,
        -:        -:16673:   NULL,
        -:        -:16674:};
        -:        -:16675:static const nir_search_expression search88_1 = {
        -:        -:16676:   { nir_search_value_expression, 0 },
        -:        -:16677:   false,
        -:        -:16678:   nir_op_fabs,
        -:        -:16679:   { &search88_1_0.value },
        -:        -:16680:   NULL,
        -:        -:16681:};
        -:        -:16682:static const nir_search_expression search88 = {
        -:        -:16683:   { nir_search_value_expression, 0 },
        -:        -:16684:   false,
        -:        -:16685:   nir_op_fmin,
        -:        -:16686:   { &search88_0.value, &search88_1.value },
        -:        -:16687:   NULL,
        -:        -:16688:};
        -:        -:16689:   
        -:        -:16690:static const nir_search_variable replace88 = {
        -:        -:16691:   { nir_search_value_variable, 0 },
        -:        -:16692:   0, /* a */
        -:        -:16693:   false,
        -:        -:16694:   nir_type_invalid,
        -:        -:16695:   NULL,
        -:        -:16696:};
        -:        -:16697:   
        -:        -:16698:static const nir_search_variable search96_0_0 = {
        -:        -:16699:   { nir_search_value_variable, 0 },
        -:        -:16700:   0, /* a */
        -:        -:16701:   false,
        -:        -:16702:   nir_type_invalid,
        -:        -:16703:   NULL,
        -:        -:16704:};
        -:        -:16705:
        -:        -:16706:static const nir_search_constant search96_0_1 = {
        -:        -:16707:   { nir_search_value_constant, 0 },
        -:        -:16708:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:16709:};
        -:        -:16710:static const nir_search_expression search96_0 = {
        -:        -:16711:   { nir_search_value_expression, 0 },
        -:        -:16712:   false,
        -:        -:16713:   nir_op_fmax,
        -:        -:16714:   { &search96_0_0.value, &search96_0_1.value },
        -:        -:16715:   NULL,
        -:        -:16716:};
        -:        -:16717:
        -:        -:16718:static const nir_search_constant search96_1 = {
        -:        -:16719:   { nir_search_value_constant, 0 },
        -:        -:16720:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:16721:};
        -:        -:16722:static const nir_search_expression search96 = {
        -:        -:16723:   { nir_search_value_expression, 0 },
        -:        -:16724:   true,
        -:        -:16725:   nir_op_fmin,
        -:        -:16726:   { &search96_0.value, &search96_1.value },
        -:        -:16727:   NULL,
        -:        -:16728:};
        -:        -:16729:   
        -:        -:16730:static const nir_search_variable replace96_0 = {
        -:        -:16731:   { nir_search_value_variable, 0 },
        -:        -:16732:   0, /* a */
        -:        -:16733:   false,
        -:        -:16734:   nir_type_invalid,
        -:        -:16735:   NULL,
        -:        -:16736:};
        -:        -:16737:static const nir_search_expression replace96 = {
        -:        -:16738:   { nir_search_value_expression, 0 },
        -:        -:16739:   false,
        -:        -:16740:   nir_op_fsat,
        -:        -:16741:   { &replace96_0.value },
        -:        -:16742:   NULL,
        -:        -:16743:};
        -:        -:16744:   
        -:        -:16745:static const nir_search_variable search100_0_0_0_0 = {
        -:        -:16746:   { nir_search_value_variable, 0 },
        -:        -:16747:   0, /* a */
        -:        -:16748:   false,
        -:        -:16749:   nir_type_invalid,
        -:        -:16750:   NULL,
        -:        -:16751:};
        -:        -:16752:
        -:        -:16753:static const nir_search_variable search100_0_0_0_1 = {
        -:        -:16754:   { nir_search_value_variable, 0 },
        -:        -:16755:   1, /* b */
        -:        -:16756:   false,
        -:        -:16757:   nir_type_invalid,
        -:        -:16758:   NULL,
        -:        -:16759:};
        -:        -:16760:static const nir_search_expression search100_0_0_0 = {
        -:        -:16761:   { nir_search_value_expression, 0 },
        -:        -:16762:   false,
        -:        -:16763:   nir_op_fmax,
        -:        -:16764:   { &search100_0_0_0_0.value, &search100_0_0_0_1.value },
        -:        -:16765:   NULL,
        -:        -:16766:};
        -:        -:16767:
        -:        -:16768:static const nir_search_variable search100_0_0_1 = {
        -:        -:16769:   { nir_search_value_variable, 0 },
        -:        -:16770:   2, /* c */
        -:        -:16771:   false,
        -:        -:16772:   nir_type_invalid,
        -:        -:16773:   NULL,
        -:        -:16774:};
        -:        -:16775:static const nir_search_expression search100_0_0 = {
        -:        -:16776:   { nir_search_value_expression, 0 },
        -:        -:16777:   false,
        -:        -:16778:   nir_op_fmin,
        -:        -:16779:   { &search100_0_0_0.value, &search100_0_0_1.value },
        -:        -:16780:   NULL,
        -:        -:16781:};
        -:        -:16782:
        -:        -:16783:static const nir_search_variable search100_0_1 = {
        -:        -:16784:   { nir_search_value_variable, 0 },
        -:        -:16785:   1, /* b */
        -:        -:16786:   false,
        -:        -:16787:   nir_type_invalid,
        -:        -:16788:   NULL,
        -:        -:16789:};
        -:        -:16790:static const nir_search_expression search100_0 = {
        -:        -:16791:   { nir_search_value_expression, 0 },
        -:        -:16792:   false,
        -:        -:16793:   nir_op_fmax,
        -:        -:16794:   { &search100_0_0.value, &search100_0_1.value },
        -:        -:16795:   NULL,
        -:        -:16796:};
        -:        -:16797:
        -:        -:16798:static const nir_search_variable search100_1 = {
        -:        -:16799:   { nir_search_value_variable, 0 },
        -:        -:16800:   2, /* c */
        -:        -:16801:   false,
        -:        -:16802:   nir_type_invalid,
        -:        -:16803:   NULL,
        -:        -:16804:};
        -:        -:16805:static const nir_search_expression search100 = {
        -:        -:16806:   { nir_search_value_expression, 0 },
        -:        -:16807:   false,
        -:        -:16808:   nir_op_fmin,
        -:        -:16809:   { &search100_0.value, &search100_1.value },
        -:        -:16810:   NULL,
        -:        -:16811:};
        -:        -:16812:   
        -:        -:16813:static const nir_search_variable replace100_0_0 = {
        -:        -:16814:   { nir_search_value_variable, 0 },
        -:        -:16815:   0, /* a */
        -:        -:16816:   false,
        -:        -:16817:   nir_type_invalid,
        -:        -:16818:   NULL,
        -:        -:16819:};
        -:        -:16820:
        -:        -:16821:static const nir_search_variable replace100_0_1 = {
        -:        -:16822:   { nir_search_value_variable, 0 },
        -:        -:16823:   1, /* b */
        -:        -:16824:   false,
        -:        -:16825:   nir_type_invalid,
        -:        -:16826:   NULL,
        -:        -:16827:};
        -:        -:16828:static const nir_search_expression replace100_0 = {
        -:        -:16829:   { nir_search_value_expression, 0 },
        -:        -:16830:   false,
        -:        -:16831:   nir_op_fmax,
        -:        -:16832:   { &replace100_0_0.value, &replace100_0_1.value },
        -:        -:16833:   NULL,
        -:        -:16834:};
        -:        -:16835:
        -:        -:16836:static const nir_search_variable replace100_1 = {
        -:        -:16837:   { nir_search_value_variable, 0 },
        -:        -:16838:   2, /* c */
        -:        -:16839:   false,
        -:        -:16840:   nir_type_invalid,
        -:        -:16841:   NULL,
        -:        -:16842:};
        -:        -:16843:static const nir_search_expression replace100 = {
        -:        -:16844:   { nir_search_value_expression, 0 },
        -:        -:16845:   false,
        -:        -:16846:   nir_op_fmin,
        -:        -:16847:   { &replace100_0.value, &replace100_1.value },
        -:        -:16848:   NULL,
        -:        -:16849:};
        -:        -:16850:   
        -:        -:16851:static const nir_search_variable search104_0_0 = {
        -:        -:16852:   { nir_search_value_variable, 0 },
        -:        -:16853:   0, /* a */
        -:        -:16854:   false,
        -:        -:16855:   nir_type_invalid,
        -:        -:16856:   NULL,
        -:        -:16857:};
        -:        -:16858:static const nir_search_expression search104_0 = {
        -:        -:16859:   { nir_search_value_expression, 0 },
        -:        -:16860:   false,
        -:        -:16861:   nir_op_fsat,
        -:        -:16862:   { &search104_0_0.value },
        -:        -:16863:   NULL,
        -:        -:16864:};
        -:        -:16865:
        -:        -:16866:static const nir_search_variable search104_1 = {
        -:        -:16867:   { nir_search_value_variable, 32 },
        -:        -:16868:   1, /* b */
        -:        -:16869:   true,
        -:        -:16870:   nir_type_invalid,
        -:        -:16871:   (is_zero_to_one),
        -:        -:16872:};
        -:        -:16873:static const nir_search_expression search104 = {
        -:        -:16874:   { nir_search_value_expression, 0 },
        -:        -:16875:   false,
        -:        -:16876:   nir_op_fmin,
        -:        -:16877:   { &search104_0.value, &search104_1.value },
        -:        -:16878:   NULL,
        -:        -:16879:};
        -:        -:16880:   
        -:        -:16881:static const nir_search_variable replace104_0_0 = {
        -:        -:16882:   { nir_search_value_variable, 0 },
        -:        -:16883:   0, /* a */
        -:        -:16884:   false,
        -:        -:16885:   nir_type_invalid,
        -:        -:16886:   NULL,
        -:        -:16887:};
        -:        -:16888:
        -:        -:16889:static const nir_search_variable replace104_0_1 = {
        -:        -:16890:   { nir_search_value_variable, 0 },
        -:        -:16891:   1, /* b */
        -:        -:16892:   false,
        -:        -:16893:   nir_type_invalid,
        -:        -:16894:   NULL,
        -:        -:16895:};
        -:        -:16896:static const nir_search_expression replace104_0 = {
        -:        -:16897:   { nir_search_value_expression, 0 },
        -:        -:16898:   false,
        -:        -:16899:   nir_op_fmin,
        -:        -:16900:   { &replace104_0_0.value, &replace104_0_1.value },
        -:        -:16901:   NULL,
        -:        -:16902:};
        -:        -:16903:static const nir_search_expression replace104 = {
        -:        -:16904:   { nir_search_value_expression, 0 },
        -:        -:16905:   false,
        -:        -:16906:   nir_op_fsat,
        -:        -:16907:   { &replace104_0.value },
        -:        -:16908:   NULL,
        -:        -:16909:};
        -:        -:16910:
        -:        -:16911:static const struct transform nir_opt_algebraic_fmin_xforms[] = {
        -:        -:16912:   { &search78, &replace78.value, 0 },
        -:        -:16913:   { &search84, &replace84.value, 0 },
        -:        -:16914:   { &search86, &replace86.value, 0 },
        -:        -:16915:   { &search88, &replace88.value, 0 },
        -:        -:16916:   { &search96, &replace96.value, 9 },
        -:        -:16917:   { &search100, &replace100.value, 0 },
        -:        -:16918:   { &search104, &replace104.value, 0 },
        -:        -:16919:};
        -:        -:16920:   
        -:        -:16921:static const nir_search_variable search130_0 = {
        -:        -:16922:   { nir_search_value_variable, 0 },
        -:        -:16923:   0, /* a */
        -:        -:16924:   false,
        -:        -:16925:   nir_type_invalid,
        -:        -:16926:   NULL,
        -:        -:16927:};
        -:        -:16928:
        -:        -:16929:static const nir_search_variable search130_1 = {
        -:        -:16930:   { nir_search_value_variable, 0 },
        -:        -:16931:   0, /* a */
        -:        -:16932:   false,
        -:        -:16933:   nir_type_invalid,
        -:        -:16934:   NULL,
        -:        -:16935:};
        -:        -:16936:static const nir_search_expression search130 = {
        -:        -:16937:   { nir_search_value_expression, 0 },
        -:        -:16938:   false,
        -:        -:16939:   nir_op_ine,
        -:        -:16940:   { &search130_0.value, &search130_1.value },
        -:        -:16941:   NULL,
        -:        -:16942:};
        -:        -:16943:   
        -:        -:16944:static const nir_search_constant replace130 = {
        -:        -:16945:   { nir_search_value_constant, 32 },
        -:        -:16946:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -:16947:};
        -:        -:16948:   
        -:        -:16949:static const nir_search_variable search180_0 = {
        -:        -:16950:   { nir_search_value_variable, 32 },
        -:        -:16951:   0, /* a */
        -:        -:16952:   false,
        -:        -:16953:   nir_type_bool32,
        -:        -:16954:   NULL,
        -:        -:16955:};
        -:        -:16956:
        -:        -:16957:static const nir_search_constant search180_1 = {
        -:        -:16958:   { nir_search_value_constant, 32 },
        -:        -:16959:   nir_type_bool32, { NIR_TRUE /* True */ },
        -:        -:16960:};
        -:        -:16961:static const nir_search_expression search180 = {
        -:        -:16962:   { nir_search_value_expression, 0 },
        -:        -:16963:   false,
        -:        -:16964:   nir_op_ine,
        -:        -:16965:   { &search180_0.value, &search180_1.value },
        -:        -:16966:   (is_not_used_by_if),
        -:        -:16967:};
        -:        -:16968:   
        -:        -:16969:static const nir_search_variable replace180_0 = {
        -:        -:16970:   { nir_search_value_variable, 0 },
        -:        -:16971:   0, /* a */
        -:        -:16972:   false,
        -:        -:16973:   nir_type_invalid,
        -:        -:16974:   NULL,
        -:        -:16975:};
        -:        -:16976:static const nir_search_expression replace180 = {
        -:        -:16977:   { nir_search_value_expression, 0 },
        -:        -:16978:   false,
        -:        -:16979:   nir_op_inot,
        -:        -:16980:   { &replace180_0.value },
        -:        -:16981:   NULL,
        -:        -:16982:};
        -:        -:16983:   
        -:        -:16984:static const nir_search_variable search181_0 = {
        -:        -:16985:   { nir_search_value_variable, 32 },
        -:        -:16986:   0, /* a */
        -:        -:16987:   false,
        -:        -:16988:   nir_type_bool32,
        -:        -:16989:   NULL,
        -:        -:16990:};
        -:        -:16991:
        -:        -:16992:static const nir_search_constant search181_1 = {
        -:        -:16993:   { nir_search_value_constant, 32 },
        -:        -:16994:   nir_type_bool32, { NIR_FALSE /* False */ },
        -:        -:16995:};
        -:        -:16996:static const nir_search_expression search181 = {
        -:        -:16997:   { nir_search_value_expression, 0 },
        -:        -:16998:   false,
        -:        -:16999:   nir_op_ine,
        -:        -:17000:   { &search181_0.value, &search181_1.value },
        -:        -:17001:   NULL,
        -:        -:17002:};
        -:        -:17003:   
        -:        -:17004:static const nir_search_variable replace181 = {
        -:        -:17005:   { nir_search_value_variable, 0 },
        -:        -:17006:   0, /* a */
        -:        -:17007:   false,
        -:        -:17008:   nir_type_invalid,
        -:        -:17009:   NULL,
        -:        -:17010:};
        -:        -:17011:   
        -:        -:17012:static const nir_search_variable search271_0_0 = {
        -:        -:17013:   { nir_search_value_variable, 0 },
        -:        -:17014:   0, /* a */
        -:        -:17015:   false,
        -:        -:17016:   nir_type_invalid,
        -:        -:17017:   NULL,
        -:        -:17018:};
        -:        -:17019:
        -:        -:17020:static const nir_search_variable search271_0_1 = {
        -:        -:17021:   { nir_search_value_variable, 0 },
        -:        -:17022:   1, /* b */
        -:        -:17023:   true,
        -:        -:17024:   nir_type_invalid,
        -:        -:17025:   NULL,
        -:        -:17026:};
        -:        -:17027:
        -:        -:17028:static const nir_search_variable search271_0_2 = {
        -:        -:17029:   { nir_search_value_variable, 0 },
        -:        -:17030:   2, /* c */
        -:        -:17031:   true,
        -:        -:17032:   nir_type_invalid,
        -:        -:17033:   NULL,
        -:        -:17034:};
        -:        -:17035:static const nir_search_expression search271_0 = {
        -:        -:17036:   { nir_search_value_expression, 0 },
        -:        -:17037:   false,
        -:        -:17038:   nir_op_bcsel,
        -:        -:17039:   { &search271_0_0.value, &search271_0_1.value, &search271_0_2.value },
        -:        -:17040:   NULL,
        -:        -:17041:};
        -:        -:17042:
        -:        -:17043:static const nir_search_variable search271_1 = {
        -:        -:17044:   { nir_search_value_variable, 0 },
        -:        -:17045:   3, /* d */
        -:        -:17046:   true,
        -:        -:17047:   nir_type_invalid,
        -:        -:17048:   NULL,
        -:        -:17049:};
        -:        -:17050:static const nir_search_expression search271 = {
        -:        -:17051:   { nir_search_value_expression, 0 },
        -:        -:17052:   false,
        -:        -:17053:   nir_op_ine,
        -:        -:17054:   { &search271_0.value, &search271_1.value },
        -:        -:17055:   NULL,
        -:        -:17056:};
        -:        -:17057:   
        -:        -:17058:static const nir_search_variable replace271_0 = {
        -:        -:17059:   { nir_search_value_variable, 0 },
        -:        -:17060:   0, /* a */
        -:        -:17061:   false,
        -:        -:17062:   nir_type_invalid,
        -:        -:17063:   NULL,
        -:        -:17064:};
        -:        -:17065:
        -:        -:17066:static const nir_search_variable replace271_1_0 = {
        -:        -:17067:   { nir_search_value_variable, 0 },
        -:        -:17068:   1, /* b */
        -:        -:17069:   false,
        -:        -:17070:   nir_type_invalid,
        -:        -:17071:   NULL,
        -:        -:17072:};
        -:        -:17073:
        -:        -:17074:static const nir_search_variable replace271_1_1 = {
        -:        -:17075:   { nir_search_value_variable, 0 },
        -:        -:17076:   3, /* d */
        -:        -:17077:   false,
        -:        -:17078:   nir_type_invalid,
        -:        -:17079:   NULL,
        -:        -:17080:};
        -:        -:17081:static const nir_search_expression replace271_1 = {
        -:        -:17082:   { nir_search_value_expression, 0 },
        -:        -:17083:   false,
        -:        -:17084:   nir_op_ine,
        -:        -:17085:   { &replace271_1_0.value, &replace271_1_1.value },
        -:        -:17086:   NULL,
        -:        -:17087:};
        -:        -:17088:
        -:        -:17089:static const nir_search_variable replace271_2_0 = {
        -:        -:17090:   { nir_search_value_variable, 0 },
        -:        -:17091:   2, /* c */
        -:        -:17092:   false,
        -:        -:17093:   nir_type_invalid,
        -:        -:17094:   NULL,
        -:        -:17095:};
        -:        -:17096:
        -:        -:17097:static const nir_search_variable replace271_2_1 = {
        -:        -:17098:   { nir_search_value_variable, 0 },
        -:        -:17099:   3, /* d */
        -:        -:17100:   false,
        -:        -:17101:   nir_type_invalid,
        -:        -:17102:   NULL,
        -:        -:17103:};
        -:        -:17104:static const nir_search_expression replace271_2 = {
        -:        -:17105:   { nir_search_value_expression, 0 },
        -:        -:17106:   false,
        -:        -:17107:   nir_op_ine,
        -:        -:17108:   { &replace271_2_0.value, &replace271_2_1.value },
        -:        -:17109:   NULL,
        -:        -:17110:};
        -:        -:17111:static const nir_search_expression replace271 = {
        -:        -:17112:   { nir_search_value_expression, 0 },
        -:        -:17113:   false,
        -:        -:17114:   nir_op_bcsel,
        -:        -:17115:   { &replace271_0.value, &replace271_1.value, &replace271_2.value },
        -:        -:17116:   NULL,
        -:        -:17117:};
        -:        -:17118:   
        -:        -:17119:static const nir_search_variable search272_0 = {
        -:        -:17120:   { nir_search_value_variable, 0 },
        -:        -:17121:   0, /* d */
        -:        -:17122:   true,
        -:        -:17123:   nir_type_invalid,
        -:        -:17124:   NULL,
        -:        -:17125:};
        -:        -:17126:
        -:        -:17127:static const nir_search_variable search272_1_0 = {
        -:        -:17128:   { nir_search_value_variable, 0 },
        -:        -:17129:   1, /* a */
        -:        -:17130:   false,
        -:        -:17131:   nir_type_invalid,
        -:        -:17132:   NULL,
        -:        -:17133:};
        -:        -:17134:
        -:        -:17135:static const nir_search_variable search272_1_1 = {
        -:        -:17136:   { nir_search_value_variable, 0 },
        -:        -:17137:   2, /* b */
        -:        -:17138:   true,
        -:        -:17139:   nir_type_invalid,
        -:        -:17140:   NULL,
        -:        -:17141:};
        -:        -:17142:
        -:        -:17143:static const nir_search_variable search272_1_2 = {
        -:        -:17144:   { nir_search_value_variable, 0 },
        -:        -:17145:   3, /* c */
        -:        -:17146:   true,
        -:        -:17147:   nir_type_invalid,
        -:        -:17148:   NULL,
        -:        -:17149:};
        -:        -:17150:static const nir_search_expression search272_1 = {
        -:        -:17151:   { nir_search_value_expression, 0 },
        -:        -:17152:   false,
        -:        -:17153:   nir_op_bcsel,
        -:        -:17154:   { &search272_1_0.value, &search272_1_1.value, &search272_1_2.value },
        -:        -:17155:   NULL,
        -:        -:17156:};
        -:        -:17157:static const nir_search_expression search272 = {
        -:        -:17158:   { nir_search_value_expression, 0 },
        -:        -:17159:   false,
        -:        -:17160:   nir_op_ine,
        -:        -:17161:   { &search272_0.value, &search272_1.value },
        -:        -:17162:   NULL,
        -:        -:17163:};
        -:        -:17164:   
        -:        -:17165:static const nir_search_variable replace272_0 = {
        -:        -:17166:   { nir_search_value_variable, 0 },
        -:        -:17167:   1, /* a */
        -:        -:17168:   false,
        -:        -:17169:   nir_type_invalid,
        -:        -:17170:   NULL,
        -:        -:17171:};
        -:        -:17172:
        -:        -:17173:static const nir_search_variable replace272_1_0 = {
        -:        -:17174:   { nir_search_value_variable, 0 },
        -:        -:17175:   0, /* d */
        -:        -:17176:   false,
        -:        -:17177:   nir_type_invalid,
        -:        -:17178:   NULL,
        -:        -:17179:};
        -:        -:17180:
        -:        -:17181:static const nir_search_variable replace272_1_1 = {
        -:        -:17182:   { nir_search_value_variable, 0 },
        -:        -:17183:   2, /* b */
        -:        -:17184:   false,
        -:        -:17185:   nir_type_invalid,
        -:        -:17186:   NULL,
        -:        -:17187:};
        -:        -:17188:static const nir_search_expression replace272_1 = {
        -:        -:17189:   { nir_search_value_expression, 0 },
        -:        -:17190:   false,
        -:        -:17191:   nir_op_ine,
        -:        -:17192:   { &replace272_1_0.value, &replace272_1_1.value },
        -:        -:17193:   NULL,
        -:        -:17194:};
        -:        -:17195:
        -:        -:17196:static const nir_search_variable replace272_2_0 = {
        -:        -:17197:   { nir_search_value_variable, 0 },
        -:        -:17198:   0, /* d */
        -:        -:17199:   false,
        -:        -:17200:   nir_type_invalid,
        -:        -:17201:   NULL,
        -:        -:17202:};
        -:        -:17203:
        -:        -:17204:static const nir_search_variable replace272_2_1 = {
        -:        -:17205:   { nir_search_value_variable, 0 },
        -:        -:17206:   3, /* c */
        -:        -:17207:   false,
        -:        -:17208:   nir_type_invalid,
        -:        -:17209:   NULL,
        -:        -:17210:};
        -:        -:17211:static const nir_search_expression replace272_2 = {
        -:        -:17212:   { nir_search_value_expression, 0 },
        -:        -:17213:   false,
        -:        -:17214:   nir_op_ine,
        -:        -:17215:   { &replace272_2_0.value, &replace272_2_1.value },
        -:        -:17216:   NULL,
        -:        -:17217:};
        -:        -:17218:static const nir_search_expression replace272 = {
        -:        -:17219:   { nir_search_value_expression, 0 },
        -:        -:17220:   false,
        -:        -:17221:   nir_op_bcsel,
        -:        -:17222:   { &replace272_0.value, &replace272_1.value, &replace272_2.value },
        -:        -:17223:   NULL,
        -:        -:17224:};
        -:        -:17225:
        -:        -:17226:static const struct transform nir_opt_algebraic_ine_xforms[] = {
        -:        -:17227:   { &search130, &replace130.value, 0 },
        -:        -:17228:   { &search180, &replace180.value, 0 },
        -:        -:17229:   { &search181, &replace181.value, 0 },
        -:        -:17230:   { &search271, &replace271.value, 0 },
        -:        -:17231:   { &search272, &replace272.value, 0 },
        -:        -:17232:};
        -:        -:17233:   
        -:        -:17234:static const nir_search_variable search2_0 = {
        -:        -:17235:   { nir_search_value_variable, 0 },
        -:        -:17236:   0, /* a */
        -:        -:17237:   false,
        -:        -:17238:   nir_type_invalid,
        -:        -:17239:   NULL,
        -:        -:17240:};
        -:        -:17241:
        -:        -:17242:static const nir_search_constant search2_1 = {
        -:        -:17243:   { nir_search_value_constant, 0 },
        -:        -:17244:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:17245:};
        -:        -:17246:static const nir_search_expression search2 = {
        -:        -:17247:   { nir_search_value_expression, 0 },
        -:        -:17248:   false,
        -:        -:17249:   nir_op_udiv,
        -:        -:17250:   { &search2_0.value, &search2_1.value },
        -:        -:17251:   NULL,
        -:        -:17252:};
        -:        -:17253:   
        -:        -:17254:static const nir_search_variable replace2 = {
        -:        -:17255:   { nir_search_value_variable, 0 },
        -:        -:17256:   0, /* a */
        -:        -:17257:   false,
        -:        -:17258:   nir_type_invalid,
        -:        -:17259:   NULL,
        -:        -:17260:};
        -:        -:17261:   
        -:        -:17262:static const nir_search_variable search6_0 = {
        -:        -:17263:   { nir_search_value_variable, 0 },
        -:        -:17264:   0, /* a */
        -:        -:17265:   false,
        -:        -:17266:   nir_type_invalid,
        -:        -:17267:   NULL,
        -:        -:17268:};
        -:        -:17269:
        -:        -:17270:static const nir_search_variable search6_1 = {
        -:        -:17271:   { nir_search_value_variable, 32 },
        -:        -:17272:   1, /* b */
        -:        -:17273:   true,
        -:        -:17274:   nir_type_invalid,
        -:        -:17275:   (is_pos_power_of_two),
        -:        -:17276:};
        -:        -:17277:static const nir_search_expression search6 = {
        -:        -:17278:   { nir_search_value_expression, 0 },
        -:        -:17279:   false,
        -:        -:17280:   nir_op_udiv,
        -:        -:17281:   { &search6_0.value, &search6_1.value },
        -:        -:17282:   NULL,
        -:        -:17283:};
        -:        -:17284:   
        -:        -:17285:static const nir_search_variable replace6_0 = {
        -:        -:17286:   { nir_search_value_variable, 0 },
        -:        -:17287:   0, /* a */
        -:        -:17288:   false,
        -:        -:17289:   nir_type_invalid,
        -:        -:17290:   NULL,
        -:        -:17291:};
        -:        -:17292:
        -:        -:17293:static const nir_search_variable replace6_1_0 = {
        -:        -:17294:   { nir_search_value_variable, 0 },
        -:        -:17295:   1, /* b */
        -:        -:17296:   false,
        -:        -:17297:   nir_type_invalid,
        -:        -:17298:   NULL,
        -:        -:17299:};
        -:        -:17300:static const nir_search_expression replace6_1 = {
        -:        -:17301:   { nir_search_value_expression, 0 },
        -:        -:17302:   false,
        -:        -:17303:   nir_op_find_lsb,
        -:        -:17304:   { &replace6_1_0.value },
        -:        -:17305:   NULL,
        -:        -:17306:};
        -:        -:17307:static const nir_search_expression replace6 = {
        -:        -:17308:   { nir_search_value_expression, 0 },
        -:        -:17309:   false,
        -:        -:17310:   nir_op_ushr,
        -:        -:17311:   { &replace6_0.value, &replace6_1.value },
        -:        -:17312:   NULL,
        -:        -:17313:};
        -:        -:17314:
        -:        -:17315:static const struct transform nir_opt_algebraic_udiv_xforms[] = {
        -:        -:17316:   { &search2, &replace2.value, 0 },
        -:        -:17317:   { &search6, &replace6.value, 0 },
        -:        -:17318:};
        -:        -:17319:   
        -:        -:17320:static const nir_search_variable search236_0 = {
        -:        -:17321:   { nir_search_value_variable, 0 },
        -:        -:17322:   0, /* a */
        -:        -:17323:   false,
        -:        -:17324:   nir_type_invalid,
        -:        -:17325:   NULL,
        -:        -:17326:};
        -:        -:17327:
        -:        -:17328:static const nir_search_variable search236_1 = {
        -:        -:17329:   { nir_search_value_variable, 32 },
        -:        -:17330:   1, /* b */
        -:        -:17331:   false,
        -:        -:17332:   nir_type_invalid,
        -:        -:17333:   NULL,
        -:        -:17334:};
        -:        -:17335:static const nir_search_expression search236 = {
        -:        -:17336:   { nir_search_value_expression, 0 },
        -:        -:17337:   false,
        -:        -:17338:   nir_op_extract_i8,
        -:        -:17339:   { &search236_0.value, &search236_1.value },
        -:        -:17340:   NULL,
        -:        -:17341:};
        -:        -:17342:   
        -:        -:17343:static const nir_search_variable replace236_0_0 = {
        -:        -:17344:   { nir_search_value_variable, 0 },
        -:        -:17345:   0, /* a */
        -:        -:17346:   false,
        -:        -:17347:   nir_type_invalid,
        -:        -:17348:   NULL,
        -:        -:17349:};
        -:        -:17350:
        -:        -:17351:static const nir_search_constant replace236_0_1_0_0 = {
        -:        -:17352:   { nir_search_value_constant, 0 },
        -:        -:17353:   nir_type_int, { 0x3 /* 3 */ },
        -:        -:17354:};
        -:        -:17355:
        -:        -:17356:static const nir_search_variable replace236_0_1_0_1 = {
        -:        -:17357:   { nir_search_value_variable, 0 },
        -:        -:17358:   1, /* b */
        -:        -:17359:   false,
        -:        -:17360:   nir_type_invalid,
        -:        -:17361:   NULL,
        -:        -:17362:};
        -:        -:17363:static const nir_search_expression replace236_0_1_0 = {
        -:        -:17364:   { nir_search_value_expression, 0 },
        -:        -:17365:   false,
        -:        -:17366:   nir_op_isub,
        -:        -:17367:   { &replace236_0_1_0_0.value, &replace236_0_1_0_1.value },
        -:        -:17368:   NULL,
        -:        -:17369:};
        -:        -:17370:
        -:        -:17371:static const nir_search_constant replace236_0_1_1 = {
        -:        -:17372:   { nir_search_value_constant, 0 },
        -:        -:17373:   nir_type_int, { 0x8 /* 8 */ },
        -:        -:17374:};
        -:        -:17375:static const nir_search_expression replace236_0_1 = {
        -:        -:17376:   { nir_search_value_expression, 0 },
        -:        -:17377:   false,
        -:        -:17378:   nir_op_imul,
        -:        -:17379:   { &replace236_0_1_0.value, &replace236_0_1_1.value },
        -:        -:17380:   NULL,
        -:        -:17381:};
        -:        -:17382:static const nir_search_expression replace236_0 = {
        -:        -:17383:   { nir_search_value_expression, 0 },
        -:        -:17384:   false,
        -:        -:17385:   nir_op_ishl,
        -:        -:17386:   { &replace236_0_0.value, &replace236_0_1.value },
        -:        -:17387:   NULL,
        -:        -:17388:};
        -:        -:17389:
        -:        -:17390:static const nir_search_constant replace236_1 = {
        -:        -:17391:   { nir_search_value_constant, 0 },
        -:        -:17392:   nir_type_int, { 0x18 /* 24 */ },
        -:        -:17393:};
        -:        -:17394:static const nir_search_expression replace236 = {
        -:        -:17395:   { nir_search_value_expression, 0 },
        -:        -:17396:   false,
        -:        -:17397:   nir_op_ishr,
        -:        -:17398:   { &replace236_0.value, &replace236_1.value },
        -:        -:17399:   NULL,
        -:        -:17400:};
        -:        -:17401:
        -:        -:17402:static const struct transform nir_opt_algebraic_extract_i8_xforms[] = {
        -:        -:17403:   { &search236, &replace236.value, 27 },
        -:        -:17404:};
        -:        -:17405:   
        -:        -:17406:static const nir_search_variable search231_0 = {
        -:        -:17407:   { nir_search_value_variable, 0 },
        -:        -:17408:   0, /* a */
        -:        -:17409:   false,
        -:        -:17410:   nir_type_invalid,
        -:        -:17411:   NULL,
        -:        -:17412:};
        -:        -:17413:
        -:        -:17414:static const nir_search_variable search231_1 = {
        -:        -:17415:   { nir_search_value_variable, 0 },
        -:        -:17416:   1, /* b */
        -:        -:17417:   false,
        -:        -:17418:   nir_type_invalid,
        -:        -:17419:   NULL,
        -:        -:17420:};
        -:        -:17421:static const nir_search_expression search231 = {
        -:        -:17422:   { nir_search_value_expression, 32 },
        -:        -:17423:   false,
        -:        -:17424:   nir_op_uadd_carry,
        -:        -:17425:   { &search231_0.value, &search231_1.value },
        -:        -:17426:   NULL,
        -:        -:17427:};
        -:        -:17428:   
        -:        -:17429:static const nir_search_variable replace231_0_0_0 = {
        -:        -:17430:   { nir_search_value_variable, 0 },
        -:        -:17431:   0, /* a */
        -:        -:17432:   false,
        -:        -:17433:   nir_type_invalid,
        -:        -:17434:   NULL,
        -:        -:17435:};
        -:        -:17436:
        -:        -:17437:static const nir_search_variable replace231_0_0_1 = {
        -:        -:17438:   { nir_search_value_variable, 0 },
        -:        -:17439:   1, /* b */
        -:        -:17440:   false,
        -:        -:17441:   nir_type_invalid,
        -:        -:17442:   NULL,
        -:        -:17443:};
        -:        -:17444:static const nir_search_expression replace231_0_0 = {
        -:        -:17445:   { nir_search_value_expression, 0 },
        -:        -:17446:   false,
        -:        -:17447:   nir_op_iadd,
        -:        -:17448:   { &replace231_0_0_0.value, &replace231_0_0_1.value },
        -:        -:17449:   NULL,
        -:        -:17450:};
        -:        -:17451:
        -:        -:17452:static const nir_search_variable replace231_0_1 = {
        -:        -:17453:   { nir_search_value_variable, 0 },
        -:        -:17454:   0, /* a */
        -:        -:17455:   false,
        -:        -:17456:   nir_type_invalid,
        -:        -:17457:   NULL,
        -:        -:17458:};
        -:        -:17459:static const nir_search_expression replace231_0 = {
        -:        -:17460:   { nir_search_value_expression, 0 },
        -:        -:17461:   false,
        -:        -:17462:   nir_op_ult,
        -:        -:17463:   { &replace231_0_0.value, &replace231_0_1.value },
        -:        -:17464:   NULL,
        -:        -:17465:};
        -:        -:17466:static const nir_search_expression replace231 = {
        -:        -:17467:   { nir_search_value_expression, 0 },
        -:        -:17468:   false,
        -:        -:17469:   nir_op_b2i,
        -:        -:17470:   { &replace231_0.value },
        -:        -:17471:   NULL,
        -:        -:17472:};
        -:        -:17473:
        -:        -:17474:static const struct transform nir_opt_algebraic_uadd_carry_xforms[] = {
        -:        -:17475:   { &search231, &replace231.value, 23 },
        -:        -:17476:};
        -:        -:17477:   
        -:        -:17478:static const nir_search_variable search234_0 = {
        -:        -:17479:   { nir_search_value_variable, 0 },
        -:        -:17480:   0, /* value */
        -:        -:17481:   false,
        -:        -:17482:   nir_type_invalid,
        -:        -:17483:   NULL,
        -:        -:17484:};
        -:        -:17485:
        -:        -:17486:static const nir_search_variable search234_1 = {
        -:        -:17487:   { nir_search_value_variable, 0 },
        -:        -:17488:   1, /* offset */
        -:        -:17489:   false,
        -:        -:17490:   nir_type_invalid,
        -:        -:17491:   NULL,
        -:        -:17492:};
        -:        -:17493:
        -:        -:17494:static const nir_search_variable search234_2 = {
        -:        -:17495:   { nir_search_value_variable, 0 },
        -:        -:17496:   2, /* bits */
        -:        -:17497:   false,
        -:        -:17498:   nir_type_invalid,
        -:        -:17499:   NULL,
        -:        -:17500:};
        -:        -:17501:static const nir_search_expression search234 = {
        -:        -:17502:   { nir_search_value_expression, 0 },
        -:        -:17503:   false,
        -:        -:17504:   nir_op_ibitfield_extract,
        -:        -:17505:   { &search234_0.value, &search234_1.value, &search234_2.value },
        -:        -:17506:   NULL,
        -:        -:17507:};
        -:        -:17508:   
        -:        -:17509:static const nir_search_constant replace234_0_0 = {
        -:        -:17510:   { nir_search_value_constant, 0 },
        -:        -:17511:   nir_type_int, { 0x1f /* 31 */ },
        -:        -:17512:};
        -:        -:17513:
        -:        -:17514:static const nir_search_variable replace234_0_1 = {
        -:        -:17515:   { nir_search_value_variable, 0 },
        -:        -:17516:   2, /* bits */
        -:        -:17517:   false,
        -:        -:17518:   nir_type_invalid,
        -:        -:17519:   NULL,
        -:        -:17520:};
        -:        -:17521:static const nir_search_expression replace234_0 = {
        -:        -:17522:   { nir_search_value_expression, 0 },
        -:        -:17523:   false,
        -:        -:17524:   nir_op_ilt,
        -:        -:17525:   { &replace234_0_0.value, &replace234_0_1.value },
        -:        -:17526:   NULL,
        -:        -:17527:};
        -:        -:17528:
        -:        -:17529:static const nir_search_variable replace234_1 = {
        -:        -:17530:   { nir_search_value_variable, 0 },
        -:        -:17531:   0, /* value */
        -:        -:17532:   false,
        -:        -:17533:   nir_type_invalid,
        -:        -:17534:   NULL,
        -:        -:17535:};
        -:        -:17536:
        -:        -:17537:static const nir_search_variable replace234_2_0 = {
        -:        -:17538:   { nir_search_value_variable, 0 },
        -:        -:17539:   0, /* value */
        -:        -:17540:   false,
        -:        -:17541:   nir_type_invalid,
        -:        -:17542:   NULL,
        -:        -:17543:};
        -:        -:17544:
        -:        -:17545:static const nir_search_variable replace234_2_1 = {
        -:        -:17546:   { nir_search_value_variable, 0 },
        -:        -:17547:   1, /* offset */
        -:        -:17548:   false,
        -:        -:17549:   nir_type_invalid,
        -:        -:17550:   NULL,
        -:        -:17551:};
        -:        -:17552:
        -:        -:17553:static const nir_search_variable replace234_2_2 = {
        -:        -:17554:   { nir_search_value_variable, 0 },
        -:        -:17555:   2, /* bits */
        -:        -:17556:   false,
        -:        -:17557:   nir_type_invalid,
        -:        -:17558:   NULL,
        -:        -:17559:};
        -:        -:17560:static const nir_search_expression replace234_2 = {
        -:        -:17561:   { nir_search_value_expression, 0 },
        -:        -:17562:   false,
        -:        -:17563:   nir_op_ibfe,
        -:        -:17564:   { &replace234_2_0.value, &replace234_2_1.value, &replace234_2_2.value },
        -:        -:17565:   NULL,
        -:        -:17566:};
        -:        -:17567:static const nir_search_expression replace234 = {
        -:        -:17568:   { nir_search_value_expression, 0 },
        -:        -:17569:   false,
        -:        -:17570:   nir_op_bcsel,
        -:        -:17571:   { &replace234_0.value, &replace234_1.value, &replace234_2.value },
        -:        -:17572:   NULL,
        -:        -:17573:};
        -:        -:17574:
        -:        -:17575:static const struct transform nir_opt_algebraic_ibitfield_extract_xforms[] = {
        -:        -:17576:   { &search234, &replace234.value, 26 },
        -:        -:17577:};
        -:        -:17578:   
        -:        -:17579:static const nir_search_variable search248_0 = {
        -:        -:17580:   { nir_search_value_variable, 0 },
        -:        -:17581:   0, /* x */
        -:        -:17582:   false,
        -:        -:17583:   nir_type_invalid,
        -:        -:17584:   NULL,
        -:        -:17585:};
        -:        -:17586:
        -:        -:17587:static const nir_search_variable search248_1 = {
        -:        -:17588:   { nir_search_value_variable, 0 },
        -:        -:17589:   1, /* exp */
        -:        -:17590:   false,
        -:        -:17591:   nir_type_invalid,
        -:        -:17592:   NULL,
        -:        -:17593:};
        -:        -:17594:static const nir_search_expression search248 = {
        -:        -:17595:   { nir_search_value_expression, 32 },
        -:        -:17596:   false,
        -:        -:17597:   nir_op_ldexp,
        -:        -:17598:   { &search248_0.value, &search248_1.value },
        -:        -:17599:   NULL,
        -:        -:17600:};
        -:        -:17601:   
        -:        -:17602:static const nir_search_variable replace248_0_0 = {
        -:        -:17603:   { nir_search_value_variable, 0 },
        -:        -:17604:   0, /* x */
        -:        -:17605:   false,
        -:        -:17606:   nir_type_invalid,
        -:        -:17607:   NULL,
        -:        -:17608:};
        -:        -:17609:
        -:        -:17610:static const nir_search_variable replace248_0_1_0_0_0_0_0 = {
        -:        -:17611:   { nir_search_value_variable, 0 },
        -:        -:17612:   1, /* exp */
        -:        -:17613:   false,
        -:        -:17614:   nir_type_invalid,
        -:        -:17615:   NULL,
        -:        -:17616:};
        -:        -:17617:
        -:        -:17618:static const nir_search_constant replace248_0_1_0_0_0_0_1 = {
        -:        -:17619:   { nir_search_value_constant, 0 },
        -:        -:17620:   nir_type_int, { -0xfc /* -252 */ },
        -:        -:17621:};
        -:        -:17622:static const nir_search_expression replace248_0_1_0_0_0_0 = {
        -:        -:17623:   { nir_search_value_expression, 0 },
        -:        -:17624:   false,
        -:        -:17625:   nir_op_imax,
        -:        -:17626:   { &replace248_0_1_0_0_0_0_0.value, &replace248_0_1_0_0_0_0_1.value },
        -:        -:17627:   NULL,
        -:        -:17628:};
        -:        -:17629:
        -:        -:17630:static const nir_search_constant replace248_0_1_0_0_0_1 = {
        -:        -:17631:   { nir_search_value_constant, 0 },
        -:        -:17632:   nir_type_int, { 0xfe /* 254 */ },
        -:        -:17633:};
        -:        -:17634:static const nir_search_expression replace248_0_1_0_0_0 = {
        -:        -:17635:   { nir_search_value_expression, 0 },
        -:        -:17636:   false,
        -:        -:17637:   nir_op_imin,
        -:        -:17638:   { &replace248_0_1_0_0_0_0.value, &replace248_0_1_0_0_0_1.value },
        -:        -:17639:   NULL,
        -:        -:17640:};
        -:        -:17641:
        -:        -:17642:static const nir_search_constant replace248_0_1_0_0_1 = {
        -:        -:17643:   { nir_search_value_constant, 0 },
        -:        -:17644:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:17645:};
        -:        -:17646:static const nir_search_expression replace248_0_1_0_0 = {
        -:        -:17647:   { nir_search_value_expression, 0 },
        -:        -:17648:   false,
        -:        -:17649:   nir_op_ishr,
        -:        -:17650:   { &replace248_0_1_0_0_0.value, &replace248_0_1_0_0_1.value },
        -:        -:17651:   NULL,
        -:        -:17652:};
        -:        -:17653:
        -:        -:17654:static const nir_search_constant replace248_0_1_0_1 = {
        -:        -:17655:   { nir_search_value_constant, 0 },
        -:        -:17656:   nir_type_int, { 0x7f /* 127 */ },
        -:        -:17657:};
        -:        -:17658:static const nir_search_expression replace248_0_1_0 = {
        -:        -:17659:   { nir_search_value_expression, 0 },
        -:        -:17660:   false,
        -:        -:17661:   nir_op_iadd,
        -:        -:17662:   { &replace248_0_1_0_0.value, &replace248_0_1_0_1.value },
        -:        -:17663:   NULL,
        -:        -:17664:};
        -:        -:17665:
        -:        -:17666:static const nir_search_constant replace248_0_1_1 = {
        -:        -:17667:   { nir_search_value_constant, 0 },
        -:        -:17668:   nir_type_int, { 0x17 /* 23 */ },
        -:        -:17669:};
        -:        -:17670:static const nir_search_expression replace248_0_1 = {
        -:        -:17671:   { nir_search_value_expression, 0 },
        -:        -:17672:   false,
        -:        -:17673:   nir_op_ishl,
        -:        -:17674:   { &replace248_0_1_0.value, &replace248_0_1_1.value },
        -:        -:17675:   NULL,
        -:        -:17676:};
        -:        -:17677:static const nir_search_expression replace248_0 = {
        -:        -:17678:   { nir_search_value_expression, 0 },
        -:        -:17679:   false,
        -:        -:17680:   nir_op_fmul,
        -:        -:17681:   { &replace248_0_0.value, &replace248_0_1.value },
        -:        -:17682:   NULL,
        -:        -:17683:};
        -:        -:17684:
        -:        -:17685:static const nir_search_variable replace248_1_0_0_0_0_0 = {
        -:        -:17686:   { nir_search_value_variable, 0 },
        -:        -:17687:   1, /* exp */
        -:        -:17688:   false,
        -:        -:17689:   nir_type_invalid,
        -:        -:17690:   NULL,
        -:        -:17691:};
        -:        -:17692:
        -:        -:17693:static const nir_search_constant replace248_1_0_0_0_0_1 = {
        -:        -:17694:   { nir_search_value_constant, 0 },
        -:        -:17695:   nir_type_int, { -0xfc /* -252 */ },
        -:        -:17696:};
        -:        -:17697:static const nir_search_expression replace248_1_0_0_0_0 = {
        -:        -:17698:   { nir_search_value_expression, 0 },
        -:        -:17699:   false,
        -:        -:17700:   nir_op_imax,
        -:        -:17701:   { &replace248_1_0_0_0_0_0.value, &replace248_1_0_0_0_0_1.value },
        -:        -:17702:   NULL,
        -:        -:17703:};
        -:        -:17704:
        -:        -:17705:static const nir_search_constant replace248_1_0_0_0_1 = {
        -:        -:17706:   { nir_search_value_constant, 0 },
        -:        -:17707:   nir_type_int, { 0xfe /* 254 */ },
        -:        -:17708:};
        -:        -:17709:static const nir_search_expression replace248_1_0_0_0 = {
        -:        -:17710:   { nir_search_value_expression, 0 },
        -:        -:17711:   false,
        -:        -:17712:   nir_op_imin,
        -:        -:17713:   { &replace248_1_0_0_0_0.value, &replace248_1_0_0_0_1.value },
        -:        -:17714:   NULL,
        -:        -:17715:};
        -:        -:17716:
        -:        -:17717:static const nir_search_variable replace248_1_0_0_1_0_0_0 = {
        -:        -:17718:   { nir_search_value_variable, 0 },
        -:        -:17719:   1, /* exp */
        -:        -:17720:   false,
        -:        -:17721:   nir_type_invalid,
        -:        -:17722:   NULL,
        -:        -:17723:};
        -:        -:17724:
        -:        -:17725:static const nir_search_constant replace248_1_0_0_1_0_0_1 = {
        -:        -:17726:   { nir_search_value_constant, 0 },
        -:        -:17727:   nir_type_int, { -0xfc /* -252 */ },
        -:        -:17728:};
        -:        -:17729:static const nir_search_expression replace248_1_0_0_1_0_0 = {
        -:        -:17730:   { nir_search_value_expression, 0 },
        -:        -:17731:   false,
        -:        -:17732:   nir_op_imax,
        -:        -:17733:   { &replace248_1_0_0_1_0_0_0.value, &replace248_1_0_0_1_0_0_1.value },
        -:        -:17734:   NULL,
        -:        -:17735:};
        -:        -:17736:
        -:        -:17737:static const nir_search_constant replace248_1_0_0_1_0_1 = {
        -:        -:17738:   { nir_search_value_constant, 0 },
        -:        -:17739:   nir_type_int, { 0xfe /* 254 */ },
        -:        -:17740:};
        -:        -:17741:static const nir_search_expression replace248_1_0_0_1_0 = {
        -:        -:17742:   { nir_search_value_expression, 0 },
        -:        -:17743:   false,
        -:        -:17744:   nir_op_imin,
        -:        -:17745:   { &replace248_1_0_0_1_0_0.value, &replace248_1_0_0_1_0_1.value },
        -:        -:17746:   NULL,
        -:        -:17747:};
        -:        -:17748:
        -:        -:17749:static const nir_search_constant replace248_1_0_0_1_1 = {
        -:        -:17750:   { nir_search_value_constant, 0 },
        -:        -:17751:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:17752:};
        -:        -:17753:static const nir_search_expression replace248_1_0_0_1 = {
        -:        -:17754:   { nir_search_value_expression, 0 },
        -:        -:17755:   false,
        -:        -:17756:   nir_op_ishr,
        -:        -:17757:   { &replace248_1_0_0_1_0.value, &replace248_1_0_0_1_1.value },
        -:        -:17758:   NULL,
        -:        -:17759:};
        -:        -:17760:static const nir_search_expression replace248_1_0_0 = {
        -:        -:17761:   { nir_search_value_expression, 0 },
        -:        -:17762:   false,
        -:        -:17763:   nir_op_isub,
        -:        -:17764:   { &replace248_1_0_0_0.value, &replace248_1_0_0_1.value },
        -:        -:17765:   NULL,
        -:        -:17766:};
        -:        -:17767:
        -:        -:17768:static const nir_search_constant replace248_1_0_1 = {
        -:        -:17769:   { nir_search_value_constant, 0 },
        -:        -:17770:   nir_type_int, { 0x7f /* 127 */ },
        -:        -:17771:};
        -:        -:17772:static const nir_search_expression replace248_1_0 = {
        -:        -:17773:   { nir_search_value_expression, 0 },
        -:        -:17774:   false,
        -:        -:17775:   nir_op_iadd,
        -:        -:17776:   { &replace248_1_0_0.value, &replace248_1_0_1.value },
        -:        -:17777:   NULL,
        -:        -:17778:};
        -:        -:17779:
        -:        -:17780:static const nir_search_constant replace248_1_1 = {
        -:        -:17781:   { nir_search_value_constant, 0 },
        -:        -:17782:   nir_type_int, { 0x17 /* 23 */ },
        -:        -:17783:};
        -:        -:17784:static const nir_search_expression replace248_1 = {
        -:        -:17785:   { nir_search_value_expression, 0 },
        -:        -:17786:   false,
        -:        -:17787:   nir_op_ishl,
        -:        -:17788:   { &replace248_1_0.value, &replace248_1_1.value },
        -:        -:17789:   NULL,
        -:        -:17790:};
        -:        -:17791:static const nir_search_expression replace248 = {
        -:        -:17792:   { nir_search_value_expression, 0 },
        -:        -:17793:   false,
        -:        -:17794:   nir_op_fmul,
        -:        -:17795:   { &replace248_0.value, &replace248_1.value },
        -:        -:17796:   NULL,
        -:        -:17797:};
        -:        -:17798:   
        -:        -:17799:static const nir_search_variable search249_0 = {
        -:        -:17800:   { nir_search_value_variable, 0 },
        -:        -:17801:   0, /* x */
        -:        -:17802:   false,
        -:        -:17803:   nir_type_invalid,
        -:        -:17804:   NULL,
        -:        -:17805:};
        -:        -:17806:
        -:        -:17807:static const nir_search_variable search249_1 = {
        -:        -:17808:   { nir_search_value_variable, 0 },
        -:        -:17809:   1, /* exp */
        -:        -:17810:   false,
        -:        -:17811:   nir_type_invalid,
        -:        -:17812:   NULL,
        -:        -:17813:};
        -:        -:17814:static const nir_search_expression search249 = {
        -:        -:17815:   { nir_search_value_expression, 64 },
        -:        -:17816:   false,
        -:        -:17817:   nir_op_ldexp,
        -:        -:17818:   { &search249_0.value, &search249_1.value },
        -:        -:17819:   NULL,
        -:        -:17820:};
        -:        -:17821:   
        -:        -:17822:static const nir_search_variable replace249_0_0 = {
        -:        -:17823:   { nir_search_value_variable, 0 },
        -:        -:17824:   0, /* x */
        -:        -:17825:   false,
        -:        -:17826:   nir_type_invalid,
        -:        -:17827:   NULL,
        -:        -:17828:};
        -:        -:17829:
        -:        -:17830:static const nir_search_constant replace249_0_1_0 = {
        -:        -:17831:   { nir_search_value_constant, 0 },
        -:        -:17832:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:17833:};
        -:        -:17834:
        -:        -:17835:static const nir_search_variable replace249_0_1_1_0_0_0_0_0 = {
        -:        -:17836:   { nir_search_value_variable, 0 },
        -:        -:17837:   1, /* exp */
        -:        -:17838:   false,
        -:        -:17839:   nir_type_invalid,
        -:        -:17840:   NULL,
        -:        -:17841:};
        -:        -:17842:
        -:        -:17843:static const nir_search_constant replace249_0_1_1_0_0_0_0_1 = {
        -:        -:17844:   { nir_search_value_constant, 0 },
        -:        -:17845:   nir_type_int, { -0x7fc /* -2044 */ },
        -:        -:17846:};
        -:        -:17847:static const nir_search_expression replace249_0_1_1_0_0_0_0 = {
        -:        -:17848:   { nir_search_value_expression, 0 },
        -:        -:17849:   false,
        -:        -:17850:   nir_op_imax,
        -:        -:17851:   { &replace249_0_1_1_0_0_0_0_0.value, &replace249_0_1_1_0_0_0_0_1.value },
        -:        -:17852:   NULL,
        -:        -:17853:};
        -:        -:17854:
        -:        -:17855:static const nir_search_constant replace249_0_1_1_0_0_0_1 = {
        -:        -:17856:   { nir_search_value_constant, 0 },
        -:        -:17857:   nir_type_int, { 0x7fe /* 2046 */ },
        -:        -:17858:};
        -:        -:17859:static const nir_search_expression replace249_0_1_1_0_0_0 = {
        -:        -:17860:   { nir_search_value_expression, 0 },
        -:        -:17861:   false,
        -:        -:17862:   nir_op_imin,
        -:        -:17863:   { &replace249_0_1_1_0_0_0_0.value, &replace249_0_1_1_0_0_0_1.value },
        -:        -:17864:   NULL,
        -:        -:17865:};
        -:        -:17866:
        -:        -:17867:static const nir_search_constant replace249_0_1_1_0_0_1 = {
        -:        -:17868:   { nir_search_value_constant, 0 },
        -:        -:17869:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:17870:};
        -:        -:17871:static const nir_search_expression replace249_0_1_1_0_0 = {
        -:        -:17872:   { nir_search_value_expression, 0 },
        -:        -:17873:   false,
        -:        -:17874:   nir_op_ishr,
        -:        -:17875:   { &replace249_0_1_1_0_0_0.value, &replace249_0_1_1_0_0_1.value },
        -:        -:17876:   NULL,
        -:        -:17877:};
        -:        -:17878:
        -:        -:17879:static const nir_search_constant replace249_0_1_1_0_1 = {
        -:        -:17880:   { nir_search_value_constant, 0 },
        -:        -:17881:   nir_type_int, { 0x3ff /* 1023 */ },
        -:        -:17882:};
        -:        -:17883:static const nir_search_expression replace249_0_1_1_0 = {
        -:        -:17884:   { nir_search_value_expression, 0 },
        -:        -:17885:   false,
        -:        -:17886:   nir_op_iadd,
        -:        -:17887:   { &replace249_0_1_1_0_0.value, &replace249_0_1_1_0_1.value },
        -:        -:17888:   NULL,
        -:        -:17889:};
        -:        -:17890:
        -:        -:17891:static const nir_search_constant replace249_0_1_1_1 = {
        -:        -:17892:   { nir_search_value_constant, 0 },
        -:        -:17893:   nir_type_int, { 0x14 /* 20 */ },
        -:        -:17894:};
        -:        -:17895:static const nir_search_expression replace249_0_1_1 = {
        -:        -:17896:   { nir_search_value_expression, 0 },
        -:        -:17897:   false,
        -:        -:17898:   nir_op_ishl,
        -:        -:17899:   { &replace249_0_1_1_0.value, &replace249_0_1_1_1.value },
        -:        -:17900:   NULL,
        -:        -:17901:};
        -:        -:17902:static const nir_search_expression replace249_0_1 = {
        -:        -:17903:   { nir_search_value_expression, 0 },
        -:        -:17904:   false,
        -:        -:17905:   nir_op_pack_64_2x32_split,
        -:        -:17906:   { &replace249_0_1_0.value, &replace249_0_1_1.value },
        -:        -:17907:   NULL,
        -:        -:17908:};
        -:        -:17909:static const nir_search_expression replace249_0 = {
        -:        -:17910:   { nir_search_value_expression, 0 },
        -:        -:17911:   false,
        -:        -:17912:   nir_op_fmul,
        -:        -:17913:   { &replace249_0_0.value, &replace249_0_1.value },
        -:        -:17914:   NULL,
        -:        -:17915:};
        -:        -:17916:
        -:        -:17917:static const nir_search_constant replace249_1_0 = {
        -:        -:17918:   { nir_search_value_constant, 0 },
        -:        -:17919:   nir_type_int, { 0x0 /* 0 */ },
        -:        -:17920:};
        -:        -:17921:
        -:        -:17922:static const nir_search_variable replace249_1_1_0_0_0_0_0 = {
        -:        -:17923:   { nir_search_value_variable, 0 },
        -:        -:17924:   1, /* exp */
        -:        -:17925:   false,
        -:        -:17926:   nir_type_invalid,
        -:        -:17927:   NULL,
        -:        -:17928:};
        -:        -:17929:
        -:        -:17930:static const nir_search_constant replace249_1_1_0_0_0_0_1 = {
        -:        -:17931:   { nir_search_value_constant, 0 },
        -:        -:17932:   nir_type_int, { -0x7fc /* -2044 */ },
        -:        -:17933:};
        -:        -:17934:static const nir_search_expression replace249_1_1_0_0_0_0 = {
        -:        -:17935:   { nir_search_value_expression, 0 },
        -:        -:17936:   false,
        -:        -:17937:   nir_op_imax,
        -:        -:17938:   { &replace249_1_1_0_0_0_0_0.value, &replace249_1_1_0_0_0_0_1.value },
        -:        -:17939:   NULL,
        -:        -:17940:};
        -:        -:17941:
        -:        -:17942:static const nir_search_constant replace249_1_1_0_0_0_1 = {
        -:        -:17943:   { nir_search_value_constant, 0 },
        -:        -:17944:   nir_type_int, { 0x7fe /* 2046 */ },
        -:        -:17945:};
        -:        -:17946:static const nir_search_expression replace249_1_1_0_0_0 = {
        -:        -:17947:   { nir_search_value_expression, 0 },
        -:        -:17948:   false,
        -:        -:17949:   nir_op_imin,
        -:        -:17950:   { &replace249_1_1_0_0_0_0.value, &replace249_1_1_0_0_0_1.value },
        -:        -:17951:   NULL,
        -:        -:17952:};
        -:        -:17953:
        -:        -:17954:static const nir_search_variable replace249_1_1_0_0_1_0_0_0 = {
        -:        -:17955:   { nir_search_value_variable, 0 },
        -:        -:17956:   1, /* exp */
        -:        -:17957:   false,
        -:        -:17958:   nir_type_invalid,
        -:        -:17959:   NULL,
        -:        -:17960:};
        -:        -:17961:
        -:        -:17962:static const nir_search_constant replace249_1_1_0_0_1_0_0_1 = {
        -:        -:17963:   { nir_search_value_constant, 0 },
        -:        -:17964:   nir_type_int, { -0x7fc /* -2044 */ },
        -:        -:17965:};
        -:        -:17966:static const nir_search_expression replace249_1_1_0_0_1_0_0 = {
        -:        -:17967:   { nir_search_value_expression, 0 },
        -:        -:17968:   false,
        -:        -:17969:   nir_op_imax,
        -:        -:17970:   { &replace249_1_1_0_0_1_0_0_0.value, &replace249_1_1_0_0_1_0_0_1.value },
        -:        -:17971:   NULL,
        -:        -:17972:};
        -:        -:17973:
        -:        -:17974:static const nir_search_constant replace249_1_1_0_0_1_0_1 = {
        -:        -:17975:   { nir_search_value_constant, 0 },
        -:        -:17976:   nir_type_int, { 0x7fe /* 2046 */ },
        -:        -:17977:};
        -:        -:17978:static const nir_search_expression replace249_1_1_0_0_1_0 = {
        -:        -:17979:   { nir_search_value_expression, 0 },
        -:        -:17980:   false,
        -:        -:17981:   nir_op_imin,
        -:        -:17982:   { &replace249_1_1_0_0_1_0_0.value, &replace249_1_1_0_0_1_0_1.value },
        -:        -:17983:   NULL,
        -:        -:17984:};
        -:        -:17985:
        -:        -:17986:static const nir_search_constant replace249_1_1_0_0_1_1 = {
        -:        -:17987:   { nir_search_value_constant, 0 },
        -:        -:17988:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:17989:};
        -:        -:17990:static const nir_search_expression replace249_1_1_0_0_1 = {
        -:        -:17991:   { nir_search_value_expression, 0 },
        -:        -:17992:   false,
        -:        -:17993:   nir_op_ishr,
        -:        -:17994:   { &replace249_1_1_0_0_1_0.value, &replace249_1_1_0_0_1_1.value },
        -:        -:17995:   NULL,
        -:        -:17996:};
        -:        -:17997:static const nir_search_expression replace249_1_1_0_0 = {
        -:        -:17998:   { nir_search_value_expression, 0 },
        -:        -:17999:   false,
        -:        -:18000:   nir_op_isub,
        -:        -:18001:   { &replace249_1_1_0_0_0.value, &replace249_1_1_0_0_1.value },
        -:        -:18002:   NULL,
        -:        -:18003:};
        -:        -:18004:
        -:        -:18005:static const nir_search_constant replace249_1_1_0_1 = {
        -:        -:18006:   { nir_search_value_constant, 0 },
        -:        -:18007:   nir_type_int, { 0x3ff /* 1023 */ },
        -:        -:18008:};
        -:        -:18009:static const nir_search_expression replace249_1_1_0 = {
        -:        -:18010:   { nir_search_value_expression, 0 },
        -:        -:18011:   false,
        -:        -:18012:   nir_op_iadd,
        -:        -:18013:   { &replace249_1_1_0_0.value, &replace249_1_1_0_1.value },
        -:        -:18014:   NULL,
        -:        -:18015:};
        -:        -:18016:
        -:        -:18017:static const nir_search_constant replace249_1_1_1 = {
        -:        -:18018:   { nir_search_value_constant, 0 },
        -:        -:18019:   nir_type_int, { 0x14 /* 20 */ },
        -:        -:18020:};
        -:        -:18021:static const nir_search_expression replace249_1_1 = {
        -:        -:18022:   { nir_search_value_expression, 0 },
        -:        -:18023:   false,
        -:        -:18024:   nir_op_ishl,
        -:        -:18025:   { &replace249_1_1_0.value, &replace249_1_1_1.value },
        -:        -:18026:   NULL,
        -:        -:18027:};
        -:        -:18028:static const nir_search_expression replace249_1 = {
        -:        -:18029:   { nir_search_value_expression, 0 },
        -:        -:18030:   false,
        -:        -:18031:   nir_op_pack_64_2x32_split,
        -:        -:18032:   { &replace249_1_0.value, &replace249_1_1.value },
        -:        -:18033:   NULL,
        -:        -:18034:};
        -:        -:18035:static const nir_search_expression replace249 = {
        -:        -:18036:   { nir_search_value_expression, 0 },
        -:        -:18037:   false,
        -:        -:18038:   nir_op_fmul,
        -:        -:18039:   { &replace249_0.value, &replace249_1.value },
        -:        -:18040:   NULL,
        -:        -:18041:};
        -:        -:18042:
        -:        -:18043:static const struct transform nir_opt_algebraic_ldexp_xforms[] = {
        -:        -:18044:   { &search248, &replace248.value, 0 },
        -:        -:18045:   { &search249, &replace249.value, 0 },
        -:        -:18046:};
        -:        -:18047:   
        -:        -:18048:static const nir_search_variable search238_0 = {
        -:        -:18049:   { nir_search_value_variable, 0 },
        -:        -:18050:   0, /* a */
        -:        -:18051:   false,
        -:        -:18052:   nir_type_invalid,
        -:        -:18053:   NULL,
        -:        -:18054:};
        -:        -:18055:
        -:        -:18056:static const nir_search_variable search238_1 = {
        -:        -:18057:   { nir_search_value_variable, 32 },
        -:        -:18058:   1, /* b */
        -:        -:18059:   false,
        -:        -:18060:   nir_type_invalid,
        -:        -:18061:   NULL,
        -:        -:18062:};
        -:        -:18063:static const nir_search_expression search238 = {
        -:        -:18064:   { nir_search_value_expression, 0 },
        -:        -:18065:   false,
        -:        -:18066:   nir_op_extract_i16,
        -:        -:18067:   { &search238_0.value, &search238_1.value },
        -:        -:18068:   NULL,
        -:        -:18069:};
        -:        -:18070:   
        -:        -:18071:static const nir_search_variable replace238_0_0 = {
        -:        -:18072:   { nir_search_value_variable, 0 },
        -:        -:18073:   0, /* a */
        -:        -:18074:   false,
        -:        -:18075:   nir_type_invalid,
        -:        -:18076:   NULL,
        -:        -:18077:};
        -:        -:18078:
        -:        -:18079:static const nir_search_constant replace238_0_1_0_0 = {
        -:        -:18080:   { nir_search_value_constant, 0 },
        -:        -:18081:   nir_type_int, { 0x1 /* 1 */ },
        -:        -:18082:};
        -:        -:18083:
        -:        -:18084:static const nir_search_variable replace238_0_1_0_1 = {
        -:        -:18085:   { nir_search_value_variable, 0 },
        -:        -:18086:   1, /* b */
        -:        -:18087:   false,
        -:        -:18088:   nir_type_invalid,
        -:        -:18089:   NULL,
        -:        -:18090:};
        -:        -:18091:static const nir_search_expression replace238_0_1_0 = {
        -:        -:18092:   { nir_search_value_expression, 0 },
        -:        -:18093:   false,
        -:        -:18094:   nir_op_isub,
        -:        -:18095:   { &replace238_0_1_0_0.value, &replace238_0_1_0_1.value },
        -:        -:18096:   NULL,
        -:        -:18097:};
        -:        -:18098:
        -:        -:18099:static const nir_search_constant replace238_0_1_1 = {
        -:        -:18100:   { nir_search_value_constant, 0 },
        -:        -:18101:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:18102:};
        -:        -:18103:static const nir_search_expression replace238_0_1 = {
        -:        -:18104:   { nir_search_value_expression, 0 },
        -:        -:18105:   false,
        -:        -:18106:   nir_op_imul,
        -:        -:18107:   { &replace238_0_1_0.value, &replace238_0_1_1.value },
        -:        -:18108:   NULL,
        -:        -:18109:};
        -:        -:18110:static const nir_search_expression replace238_0 = {
        -:        -:18111:   { nir_search_value_expression, 0 },
        -:        -:18112:   false,
        -:        -:18113:   nir_op_ishl,
        -:        -:18114:   { &replace238_0_0.value, &replace238_0_1.value },
        -:        -:18115:   NULL,
        -:        -:18116:};
        -:        -:18117:
        -:        -:18118:static const nir_search_constant replace238_1 = {
        -:        -:18119:   { nir_search_value_constant, 0 },
        -:        -:18120:   nir_type_int, { 0x10 /* 16 */ },
        -:        -:18121:};
        -:        -:18122:static const nir_search_expression replace238 = {
        -:        -:18123:   { nir_search_value_expression, 0 },
        -:        -:18124:   false,
        -:        -:18125:   nir_op_ishr,
        -:        -:18126:   { &replace238_0.value, &replace238_1.value },
        -:        -:18127:   NULL,
        -:        -:18128:};
        -:        -:18129:
        -:        -:18130:static const struct transform nir_opt_algebraic_extract_i16_xforms[] = {
        -:        -:18131:   { &search238, &replace238.value, 28 },
        -:        -:18132:};
        -:        -:18133:
        -:        -:18134:static bool
      274:      402:18135:nir_opt_algebraic_block(nir_block *block, const bool *condition_flags,
        -:        -:18136:                   void *mem_ctx)
        -:        -:18137:{
      274:      402:18138:   bool progress = false;
        -:        -:18139:
     1295:     1549:18140:   nir_foreach_instr_reverse_safe(instr, block) {
     1021:     1147:18141:      if (instr->type != nir_instr_type_alu)
      480:      588:18142:         continue;
        -:        -:18143:
      541:      559:18144:      nir_alu_instr *alu = nir_instr_as_alu(instr);
      541:      559:18145:      if (!alu->dest.dest.is_ssa)
    #####:    #####:18146:         continue;
        -:        -:18147:
      541:      559:18148:      switch (alu->op) {
        -:        -:18149:      case nir_op_iand:
    #####:    #####:18150:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_iand_xforms); i++) {
    #####:    #####:18151:            const struct transform *xform = &nir_opt_algebraic_iand_xforms[i];
    #####:    #####:18152:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18153:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18154:                                  mem_ctx)) {
    #####:    #####:18155:               progress = true;
    #####:    #####:18156:               break;
        -:        -:18157:            }
        -:        -:18158:         }
    #####:    #####:18159:         break;
        -:        -:18160:      case nir_op_i2b:
    #####:    #####:18161:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_i2b_xforms); i++) {
    #####:    #####:18162:            const struct transform *xform = &nir_opt_algebraic_i2b_xforms[i];
    #####:    #####:18163:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18164:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18165:                                  mem_ctx)) {
    #####:    #####:18166:               progress = true;
    #####:    #####:18167:               break;
        -:        -:18168:            }
        -:        -:18169:         }
    #####:    #####:18170:         break;
        -:        -:18171:      case nir_op_ixor:
    #####:    #####:18172:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ixor_xforms); i++) {
    #####:    #####:18173:            const struct transform *xform = &nir_opt_algebraic_ixor_xforms[i];
    #####:    #####:18174:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18175:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18176:                                  mem_ctx)) {
    #####:    #####:18177:               progress = true;
    #####:    #####:18178:               break;
        -:        -:18179:            }
        -:        -:18180:         }
    #####:    #####:18181:         break;
        -:        -:18182:      case nir_op_seq:
    #####:    #####:18183:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_seq_xforms); i++) {
    #####:    #####:18184:            const struct transform *xform = &nir_opt_algebraic_seq_xforms[i];
    #####:    #####:18185:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18186:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18187:                                  mem_ctx)) {
    #####:    #####:18188:               progress = true;
    #####:    #####:18189:               break;
        -:        -:18190:            }
        -:        -:18191:         }
    #####:    #####:18192:         break;
        -:        -:18193:      case nir_op_ilt:
    #####:    #####:18194:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ilt_xforms); i++) {
    #####:    #####:18195:            const struct transform *xform = &nir_opt_algebraic_ilt_xforms[i];
    #####:    #####:18196:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18197:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18198:                                  mem_ctx)) {
    #####:    #####:18199:               progress = true;
    #####:    #####:18200:               break;
        -:        -:18201:            }
        -:        -:18202:         }
    #####:    #####:18203:         break;
        -:        -:18204:      case nir_op_umod:
    #####:    #####:18205:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_umod_xforms); i++) {
    #####:    #####:18206:            const struct transform *xform = &nir_opt_algebraic_umod_xforms[i];
    #####:    #####:18207:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18208:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18209:                                  mem_ctx)) {
    #####:    #####:18210:               progress = true;
    #####:    #####:18211:               break;
        -:        -:18212:            }
        -:        -:18213:         }
    #####:    #####:18214:         break;
        -:        -:18215:      case nir_op_imul:
    #####:    #####:18216:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_imul_xforms); i++) {
    #####:    #####:18217:            const struct transform *xform = &nir_opt_algebraic_imul_xforms[i];
    #####:    #####:18218:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18219:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18220:                                  mem_ctx)) {
    #####:    #####:18221:               progress = true;
    #####:    #####:18222:               break;
        -:        -:18223:            }
        -:        -:18224:         }
    #####:    #####:18225:         break;
        -:        -:18226:      case nir_op_uge:
    #####:    #####:18227:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_uge_xforms); i++) {
    #####:    #####:18228:            const struct transform *xform = &nir_opt_algebraic_uge_xforms[i];
    #####:    #####:18229:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18230:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18231:                                  mem_ctx)) {
    #####:    #####:18232:               progress = true;
    #####:    #####:18233:               break;
        -:        -:18234:            }
        -:        -:18235:         }
    #####:    #####:18236:         break;
        -:        -:18237:      case nir_op_ineg:
    #####:    #####:18238:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ineg_xforms); i++) {
    #####:    #####:18239:            const struct transform *xform = &nir_opt_algebraic_ineg_xforms[i];
    #####:    #####:18240:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18241:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18242:                                  mem_ctx)) {
    #####:    #####:18243:               progress = true;
    #####:    #####:18244:               break;
        -:        -:18245:            }
        -:        -:18246:         }
    #####:    #####:18247:         break;
        -:        -:18248:      case nir_op_fmul:
      776:      776:18249:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fmul_xforms); i++) {
      679:      679:18250:            const struct transform *xform = &nir_opt_algebraic_fmul_xforms[i];
     1358:     1358:18251:            if (condition_flags[xform->condition_offset] &&
      679:      679:18252:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18253:                                  mem_ctx)) {
    #####:    #####:18254:               progress = true;
    #####:    #####:18255:               break;
        -:        -:18256:            }
        -:        -:18257:         }
       97:       97:18258:         break;
        -:        -:18259:      case nir_op_unpack_64_2x32_split_x:
    #####:    #####:18260:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_64_2x32_split_x_xforms); i++) {
    #####:    #####:18261:            const struct transform *xform = &nir_opt_algebraic_unpack_64_2x32_split_x_xforms[i];
    #####:    #####:18262:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18263:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18264:                                  mem_ctx)) {
    #####:    #####:18265:               progress = true;
    #####:    #####:18266:               break;
        -:        -:18267:            }
        -:        -:18268:         }
    #####:    #####:18269:         break;
        -:        -:18270:      case nir_op_ffma:
    #####:    #####:18271:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ffma_xforms); i++) {
    #####:    #####:18272:            const struct transform *xform = &nir_opt_algebraic_ffma_xforms[i];
    #####:    #####:18273:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18274:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18275:                                  mem_ctx)) {
    #####:    #####:18276:               progress = true;
    #####:    #####:18277:               break;
        -:        -:18278:            }
        -:        -:18279:         }
    #####:    #####:18280:         break;
        -:        -:18281:      case nir_op_umin:
    #####:    #####:18282:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_umin_xforms); i++) {
    #####:    #####:18283:            const struct transform *xform = &nir_opt_algebraic_umin_xforms[i];
    #####:    #####:18284:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18285:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18286:                                  mem_ctx)) {
    #####:    #####:18287:               progress = true;
    #####:    #####:18288:               break;
        -:        -:18289:            }
        -:        -:18290:         }
    #####:    #####:18291:         break;
        -:        -:18292:      case nir_op_umax:
    #####:    #####:18293:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_umax_xforms); i++) {
    #####:    #####:18294:            const struct transform *xform = &nir_opt_algebraic_umax_xforms[i];
    #####:    #####:18295:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18296:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18297:                                  mem_ctx)) {
    #####:    #####:18298:               progress = true;
    #####:    #####:18299:               break;
        -:        -:18300:            }
        -:        -:18301:         }
    #####:    #####:18302:         break;
        -:        -:18303:      case nir_op_bcsel:
     1634:     1634:18304:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_bcsel_xforms); i++) {
     1563:     1563:18305:            const struct transform *xform = &nir_opt_algebraic_bcsel_xforms[i];
     3126:     3126:18306:            if (condition_flags[xform->condition_offset] &&
     1563:     1563:18307:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18308:                                  mem_ctx)) {
       39:       39:18309:               progress = true;
       39:       39:18310:               break;
        -:        -:18311:            }
        -:        -:18312:         }
      110:      110:18313:         break;
        -:        -:18314:      case nir_op_sge:
    #####:    #####:18315:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_sge_xforms); i++) {
    #####:    #####:18316:            const struct transform *xform = &nir_opt_algebraic_sge_xforms[i];
    #####:    #####:18317:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18318:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18319:                                  mem_ctx)) {
    #####:    #####:18320:               progress = true;
    #####:    #####:18321:               break;
        -:        -:18322:            }
        -:        -:18323:         }
    #####:    #####:18324:         break;
        -:        -:18325:      case nir_op_fsqrt:
    #####:    #####:18326:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fsqrt_xforms); i++) {
    #####:    #####:18327:            const struct transform *xform = &nir_opt_algebraic_fsqrt_xforms[i];
    #####:    #####:18328:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18329:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18330:                                  mem_ctx)) {
    #####:    #####:18331:               progress = true;
    #####:    #####:18332:               break;
        -:        -:18333:            }
        -:        -:18334:         }
    #####:    #####:18335:         break;
        -:        -:18336:      case nir_op_iadd:
      144:      144:18337:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_iadd_xforms); i++) {
      127:      127:18338:            const struct transform *xform = &nir_opt_algebraic_iadd_xforms[i];
      254:      254:18339:            if (condition_flags[xform->condition_offset] &&
      127:      127:18340:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18341:                                  mem_ctx)) {
        2:        2:18342:               progress = true;
        2:        2:18343:               break;
        -:        -:18344:            }
        -:        -:18345:         }
       19:       19:18346:         break;
        -:        -:18347:      case nir_op_pack_unorm_2x16:
    #####:    #####:18348:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_pack_unorm_2x16_xforms); i++) {
    #####:    #####:18349:            const struct transform *xform = &nir_opt_algebraic_pack_unorm_2x16_xforms[i];
    #####:    #####:18350:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18351:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18352:                                  mem_ctx)) {
    #####:    #####:18353:               progress = true;
    #####:    #####:18354:               break;
        -:        -:18355:            }
        -:        -:18356:         }
    #####:    #####:18357:         break;
        -:        -:18358:      case nir_op_pack_unorm_4x8:
    #####:    #####:18359:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_pack_unorm_4x8_xforms); i++) {
    #####:    #####:18360:            const struct transform *xform = &nir_opt_algebraic_pack_unorm_4x8_xforms[i];
    #####:    #####:18361:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18362:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18363:                                  mem_ctx)) {
    #####:    #####:18364:               progress = true;
    #####:    #####:18365:               break;
        -:        -:18366:            }
        -:        -:18367:         }
    #####:    #####:18368:         break;
        -:        -:18369:      case nir_op_pack_snorm_4x8:
    #####:    #####:18370:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_pack_snorm_4x8_xforms); i++) {
    #####:    #####:18371:            const struct transform *xform = &nir_opt_algebraic_pack_snorm_4x8_xforms[i];
    #####:    #####:18372:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18373:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18374:                                  mem_ctx)) {
    #####:    #####:18375:               progress = true;
    #####:    #####:18376:               break;
        -:        -:18377:            }
        -:        -:18378:         }
    #####:    #####:18379:         break;
        -:        -:18380:      case nir_op_fand:
    #####:    #####:18381:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fand_xforms); i++) {
    #####:    #####:18382:            const struct transform *xform = &nir_opt_algebraic_fand_xforms[i];
    #####:    #####:18383:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18384:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18385:                                  mem_ctx)) {
    #####:    #####:18386:               progress = true;
    #####:    #####:18387:               break;
        -:        -:18388:            }
        -:        -:18389:         }
    #####:    #####:18390:         break;
        -:        -:18391:      case nir_op_fabs:
    #####:    #####:18392:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fabs_xforms); i++) {
    #####:    #####:18393:            const struct transform *xform = &nir_opt_algebraic_fabs_xforms[i];
    #####:    #####:18394:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18395:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18396:                                  mem_ctx)) {
    #####:    #####:18397:               progress = true;
    #####:    #####:18398:               break;
        -:        -:18399:            }
        -:        -:18400:         }
    #####:    #####:18401:         break;
        -:        -:18402:      case nir_op_imod:
    #####:    #####:18403:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_imod_xforms); i++) {
    #####:    #####:18404:            const struct transform *xform = &nir_opt_algebraic_imod_xforms[i];
    #####:    #####:18405:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18406:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18407:                                  mem_ctx)) {
    #####:    #####:18408:               progress = true;
    #####:    #####:18409:               break;
        -:        -:18410:            }
        -:        -:18411:         }
    #####:    #####:18412:         break;
        -:        -:18413:      case nir_op_ieq:
       91:       91:18414:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ieq_xforms); i++) {
       76:       76:18415:            const struct transform *xform = &nir_opt_algebraic_ieq_xforms[i];
      152:      152:18416:            if (condition_flags[xform->condition_offset] &&
       76:       76:18417:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18418:                                  mem_ctx)) {
        1:        1:18419:               progress = true;
        1:        1:18420:               break;
        -:        -:18421:            }
        -:        -:18422:         }
       16:       16:18423:         break;
        -:        -:18424:      case nir_op_usub_borrow:
    #####:    #####:18425:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_usub_borrow_xforms); i++) {
    #####:    #####:18426:            const struct transform *xform = &nir_opt_algebraic_usub_borrow_xforms[i];
    #####:    #####:18427:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18428:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18429:                                  mem_ctx)) {
    #####:    #####:18430:               progress = true;
    #####:    #####:18431:               break;
        -:        -:18432:            }
        -:        -:18433:         }
    #####:    #####:18434:         break;
        -:        -:18435:      case nir_op_imin:
    #####:    #####:18436:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_imin_xforms); i++) {
    #####:    #####:18437:            const struct transform *xform = &nir_opt_algebraic_imin_xforms[i];
    #####:    #####:18438:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18439:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18440:                                  mem_ctx)) {
    #####:    #####:18441:               progress = true;
    #####:    #####:18442:               break;
        -:        -:18443:            }
        -:        -:18444:         }
    #####:    #####:18445:         break;
        -:        -:18446:      case nir_op_frsq:
    #####:    #####:18447:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_frsq_xforms); i++) {
    #####:    #####:18448:            const struct transform *xform = &nir_opt_algebraic_frsq_xforms[i];
    #####:    #####:18449:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18450:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18451:                                  mem_ctx)) {
    #####:    #####:18452:               progress = true;
    #####:    #####:18453:               break;
        -:        -:18454:            }
        -:        -:18455:         }
    #####:    #####:18456:         break;
        -:        -:18457:      case nir_op_usadd_4x8:
    #####:    #####:18458:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_usadd_4x8_xforms); i++) {
    #####:    #####:18459:            const struct transform *xform = &nir_opt_algebraic_usadd_4x8_xforms[i];
    #####:    #####:18460:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18461:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18462:                                  mem_ctx)) {
    #####:    #####:18463:               progress = true;
    #####:    #####:18464:               break;
        -:        -:18465:            }
        -:        -:18466:         }
    #####:    #####:18467:         break;
        -:        -:18468:      case nir_op_idiv:
    #####:    #####:18469:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_idiv_xforms); i++) {
    #####:    #####:18470:            const struct transform *xform = &nir_opt_algebraic_idiv_xforms[i];
    #####:    #####:18471:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18472:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18473:                                  mem_ctx)) {
    #####:    #####:18474:               progress = true;
    #####:    #####:18475:               break;
        -:        -:18476:            }
        -:        -:18477:         }
    #####:    #####:18478:         break;
        -:        -:18479:      case nir_op_extract_u8:
    #####:    #####:18480:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_extract_u8_xforms); i++) {
    #####:    #####:18481:            const struct transform *xform = &nir_opt_algebraic_extract_u8_xforms[i];
    #####:    #####:18482:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18483:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18484:                                  mem_ctx)) {
    #####:    #####:18485:               progress = true;
    #####:    #####:18486:               break;
        -:        -:18487:            }
        -:        -:18488:         }
    #####:    #####:18489:         break;
        -:        -:18490:      case nir_op_pack_snorm_2x16:
    #####:    #####:18491:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_pack_snorm_2x16_xforms); i++) {
    #####:    #####:18492:            const struct transform *xform = &nir_opt_algebraic_pack_snorm_2x16_xforms[i];
    #####:    #####:18493:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18494:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18495:                                  mem_ctx)) {
    #####:    #####:18496:               progress = true;
    #####:    #####:18497:               break;
        -:        -:18498:            }
        -:        -:18499:         }
    #####:    #####:18500:         break;
        -:        -:18501:      case nir_op_fpow:
    #####:    #####:18502:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fpow_xforms); i++) {
    #####:    #####:18503:            const struct transform *xform = &nir_opt_algebraic_fpow_xforms[i];
    #####:    #####:18504:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18505:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18506:                                  mem_ctx)) {
    #####:    #####:18507:               progress = true;
    #####:    #####:18508:               break;
        -:        -:18509:            }
        -:        -:18510:         }
    #####:    #####:18511:         break;
        -:        -:18512:      case nir_op_ige:
       68:       68:18513:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ige_xforms); i++) {
       51:       51:18514:            const struct transform *xform = &nir_opt_algebraic_ige_xforms[i];
      102:      102:18515:            if (condition_flags[xform->condition_offset] &&
       51:       51:18516:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18517:                                  mem_ctx)) {
    #####:    #####:18518:               progress = true;
    #####:    #####:18519:               break;
        -:        -:18520:            }
        -:        -:18521:         }
       17:       17:18522:         break;
        -:        -:18523:      case nir_op_fdiv:
       10:       10:18524:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fdiv_xforms); i++) {
       10:       10:18525:            const struct transform *xform = &nir_opt_algebraic_fdiv_xforms[i];
       20:       20:18526:            if (condition_flags[xform->condition_offset] &&
       10:       10:18527:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18528:                                  mem_ctx)) {
        5:        5:18529:               progress = true;
        5:        5:18530:               break;
        -:        -:18531:            }
        -:        -:18532:         }
        5:        5:18533:         break;
        -:        -:18534:      case nir_op_ffract:
    #####:    #####:18535:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ffract_xforms); i++) {
    #####:    #####:18536:            const struct transform *xform = &nir_opt_algebraic_ffract_xforms[i];
    #####:    #####:18537:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18538:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18539:                                  mem_ctx)) {
    #####:    #####:18540:               progress = true;
    #####:    #####:18541:               break;
        -:        -:18542:            }
        -:        -:18543:         }
    #####:    #####:18544:         break;
        -:        -:18545:      case nir_op_fadd:
      900:      930:18546:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fadd_xforms); i++) {
      840:      868:18547:            const struct transform *xform = &nir_opt_algebraic_fadd_xforms[i];
     1380:     1426:18548:            if (condition_flags[xform->condition_offset] &&
      540:      558:18549:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18550:                                  mem_ctx)) {
    #####:    #####:18551:               progress = true;
    #####:    #####:18552:               break;
        -:        -:18553:            }
        -:        -:18554:         }
       60:       62:18555:         break;
        -:        -:18556:      case nir_op_ishl:
    #####:    #####:18557:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ishl_xforms); i++) {
    #####:    #####:18558:            const struct transform *xform = &nir_opt_algebraic_ishl_xforms[i];
    #####:    #####:18559:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18560:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18561:                                  mem_ctx)) {
    #####:    #####:18562:               progress = true;
    #####:    #####:18563:               break;
        -:        -:18564:            }
        -:        -:18565:         }
    #####:    #####:18566:         break;
        -:        -:18567:      case nir_op_f2u32:
    #####:    #####:18568:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_f2u32_xforms); i++) {
    #####:    #####:18569:            const struct transform *xform = &nir_opt_algebraic_f2u32_xforms[i];
    #####:    #####:18570:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18571:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18572:                                  mem_ctx)) {
    #####:    #####:18573:               progress = true;
    #####:    #####:18574:               break;
        -:        -:18575:            }
        -:        -:18576:         }
    #####:    #####:18577:         break;
        -:        -:18578:      case nir_op_flog2:
    #####:    #####:18579:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_flog2_xforms); i++) {
    #####:    #####:18580:            const struct transform *xform = &nir_opt_algebraic_flog2_xforms[i];
    #####:    #####:18581:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18582:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18583:                                  mem_ctx)) {
    #####:    #####:18584:               progress = true;
    #####:    #####:18585:               break;
        -:        -:18586:            }
        -:        -:18587:         }
    #####:    #####:18588:         break;
        -:        -:18589:      case nir_op_inot:
    #####:    #####:18590:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_inot_xforms); i++) {
    #####:    #####:18591:            const struct transform *xform = &nir_opt_algebraic_inot_xforms[i];
    #####:    #####:18592:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18593:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18594:                                  mem_ctx)) {
    #####:    #####:18595:               progress = true;
    #####:    #####:18596:               break;
        -:        -:18597:            }
        -:        -:18598:         }
    #####:    #####:18599:         break;
        -:        -:18600:      case nir_op_sne:
    #####:    #####:18601:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_sne_xforms); i++) {
    #####:    #####:18602:            const struct transform *xform = &nir_opt_algebraic_sne_xforms[i];
    #####:    #####:18603:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18604:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18605:                                  mem_ctx)) {
    #####:    #####:18606:               progress = true;
    #####:    #####:18607:               break;
        -:        -:18608:            }
        -:        -:18609:         }
    #####:    #####:18610:         break;
        -:        -:18611:      case nir_op_fmod:
        5:        5:18612:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fmod_xforms); i++) {
        5:        5:18613:            const struct transform *xform = &nir_opt_algebraic_fmod_xforms[i];
       10:       10:18614:            if (condition_flags[xform->condition_offset] &&
        5:        5:18615:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18616:                                  mem_ctx)) {
        5:        5:18617:               progress = true;
        5:        5:18618:               break;
        -:        -:18619:            }
        -:        -:18620:         }
        5:        5:18621:         break;
        -:        -:18622:      case nir_op_pack_64_2x32_split:
    #####:    #####:18623:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_pack_64_2x32_split_xforms); i++) {
    #####:    #####:18624:            const struct transform *xform = &nir_opt_algebraic_pack_64_2x32_split_xforms[i];
    #####:    #####:18625:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18626:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18627:                                  mem_ctx)) {
    #####:    #####:18628:               progress = true;
    #####:    #####:18629:               break;
        -:        -:18630:            }
        -:        -:18631:         }
    #####:    #####:18632:         break;
        -:        -:18633:      case nir_op_fcsel:
    #####:    #####:18634:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fcsel_xforms); i++) {
    #####:    #####:18635:            const struct transform *xform = &nir_opt_algebraic_fcsel_xforms[i];
    #####:    #####:18636:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18637:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18638:                                  mem_ctx)) {
    #####:    #####:18639:               progress = true;
    #####:    #####:18640:               break;
        -:        -:18641:            }
        -:        -:18642:         }
    #####:    #####:18643:         break;
        -:        -:18644:      case nir_op_isub:
    #####:    #####:18645:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_isub_xforms); i++) {
    #####:    #####:18646:            const struct transform *xform = &nir_opt_algebraic_isub_xforms[i];
    #####:    #####:18647:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18648:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18649:                                  mem_ctx)) {
    #####:    #####:18650:               progress = true;
    #####:    #####:18651:               break;
        -:        -:18652:            }
        -:        -:18653:         }
    #####:    #####:18654:         break;
        -:        -:18655:      case nir_op_fmax:
    #####:    #####:18656:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fmax_xforms); i++) {
    #####:    #####:18657:            const struct transform *xform = &nir_opt_algebraic_fmax_xforms[i];
    #####:    #####:18658:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18659:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18660:                                  mem_ctx)) {
    #####:    #####:18661:               progress = true;
    #####:    #####:18662:               break;
        -:        -:18663:            }
        -:        -:18664:         }
    #####:    #####:18665:         break;
        -:        -:18666:      case nir_op_umul_unorm_4x8:
    #####:    #####:18667:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_umul_unorm_4x8_xforms); i++) {
    #####:    #####:18668:            const struct transform *xform = &nir_opt_algebraic_umul_unorm_4x8_xforms[i];
    #####:    #####:18669:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18670:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18671:                                  mem_ctx)) {
    #####:    #####:18672:               progress = true;
    #####:    #####:18673:               break;
        -:        -:18674:            }
        -:        -:18675:         }
    #####:    #####:18676:         break;
        -:        -:18677:      case nir_op_bitfield_insert:
    #####:    #####:18678:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_bitfield_insert_xforms); i++) {
    #####:    #####:18679:            const struct transform *xform = &nir_opt_algebraic_bitfield_insert_xforms[i];
    #####:    #####:18680:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18681:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18682:                                  mem_ctx)) {
    #####:    #####:18683:               progress = true;
    #####:    #####:18684:               break;
        -:        -:18685:            }
        -:        -:18686:         }
    #####:    #####:18687:         break;
        -:        -:18688:      case nir_op_feq:
    #####:    #####:18689:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_feq_xforms); i++) {
    #####:    #####:18690:            const struct transform *xform = &nir_opt_algebraic_feq_xforms[i];
    #####:    #####:18691:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18692:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18693:                                  mem_ctx)) {
    #####:    #####:18694:               progress = true;
    #####:    #####:18695:               break;
        -:        -:18696:            }
        -:        -:18697:         }
    #####:    #####:18698:         break;
        -:        -:18699:      case nir_op_flrp:
    #####:    #####:18700:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_flrp_xforms); i++) {
    #####:    #####:18701:            const struct transform *xform = &nir_opt_algebraic_flrp_xforms[i];
    #####:    #####:18702:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18703:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18704:                                  mem_ctx)) {
    #####:    #####:18705:               progress = true;
    #####:    #####:18706:               break;
        -:        -:18707:            }
        -:        -:18708:         }
    #####:    #####:18709:         break;
        -:        -:18710:      case nir_op_ior:
    #####:    #####:18711:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ior_xforms); i++) {
    #####:    #####:18712:            const struct transform *xform = &nir_opt_algebraic_ior_xforms[i];
    #####:    #####:18713:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18714:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18715:                                  mem_ctx)) {
    #####:    #####:18716:               progress = true;
    #####:    #####:18717:               break;
        -:        -:18718:            }
        -:        -:18719:         }
    #####:    #####:18720:         break;
        -:        -:18721:      case nir_op_ussub_4x8:
    #####:    #####:18722:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ussub_4x8_xforms); i++) {
    #####:    #####:18723:            const struct transform *xform = &nir_opt_algebraic_ussub_4x8_xforms[i];
    #####:    #####:18724:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18725:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18726:                                  mem_ctx)) {
    #####:    #####:18727:               progress = true;
    #####:    #####:18728:               break;
        -:        -:18729:            }
        -:        -:18730:         }
    #####:    #####:18731:         break;
        -:        -:18732:      case nir_op_unpack_snorm_4x8:
    #####:    #####:18733:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_snorm_4x8_xforms); i++) {
    #####:    #####:18734:            const struct transform *xform = &nir_opt_algebraic_unpack_snorm_4x8_xforms[i];
    #####:    #####:18735:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18736:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18737:                                  mem_ctx)) {
    #####:    #####:18738:               progress = true;
    #####:    #####:18739:               break;
        -:        -:18740:            }
        -:        -:18741:         }
    #####:    #####:18742:         break;
        -:        -:18743:      case nir_op_frem:
    #####:    #####:18744:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_frem_xforms); i++) {
    #####:    #####:18745:            const struct transform *xform = &nir_opt_algebraic_frem_xforms[i];
    #####:    #####:18746:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18747:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18748:                                  mem_ctx)) {
    #####:    #####:18749:               progress = true;
    #####:    #####:18750:               break;
        -:        -:18751:            }
        -:        -:18752:         }
    #####:    #####:18753:         break;
        -:        -:18754:      case nir_op_unpack_64_2x32_split_y:
    #####:    #####:18755:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_64_2x32_split_y_xforms); i++) {
    #####:    #####:18756:            const struct transform *xform = &nir_opt_algebraic_unpack_64_2x32_split_y_xforms[i];
    #####:    #####:18757:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18758:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18759:                                  mem_ctx)) {
    #####:    #####:18760:               progress = true;
    #####:    #####:18761:               break;
        -:        -:18762:            }
        -:        -:18763:         }
    #####:    #####:18764:         break;
        -:        -:18765:      case nir_op_unpack_unorm_2x16:
    #####:    #####:18766:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_unorm_2x16_xforms); i++) {
    #####:    #####:18767:            const struct transform *xform = &nir_opt_algebraic_unpack_unorm_2x16_xforms[i];
    #####:    #####:18768:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18769:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18770:                                  mem_ctx)) {
    #####:    #####:18771:               progress = true;
    #####:    #####:18772:               break;
        -:        -:18773:            }
        -:        -:18774:         }
    #####:    #####:18775:         break;
        -:        -:18776:      case nir_op_unpack_snorm_2x16:
    #####:    #####:18777:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_snorm_2x16_xforms); i++) {
    #####:    #####:18778:            const struct transform *xform = &nir_opt_algebraic_unpack_snorm_2x16_xforms[i];
    #####:    #####:18779:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18780:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18781:                                  mem_ctx)) {
    #####:    #####:18782:               progress = true;
    #####:    #####:18783:               break;
        -:        -:18784:            }
        -:        -:18785:         }
    #####:    #####:18786:         break;
        -:        -:18787:      case nir_op_imax:
    #####:    #####:18788:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_imax_xforms); i++) {
    #####:    #####:18789:            const struct transform *xform = &nir_opt_algebraic_imax_xforms[i];
    #####:    #####:18790:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18791:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18792:                                  mem_ctx)) {
    #####:    #####:18793:               progress = true;
    #####:    #####:18794:               break;
        -:        -:18795:            }
        -:        -:18796:         }
    #####:    #####:18797:         break;
        -:        -:18798:      case nir_op_fsat:
    #####:    #####:18799:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fsat_xforms); i++) {
    #####:    #####:18800:            const struct transform *xform = &nir_opt_algebraic_fsat_xforms[i];
    #####:    #####:18801:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18802:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18803:                                  mem_ctx)) {
    #####:    #####:18804:               progress = true;
    #####:    #####:18805:               break;
        -:        -:18806:            }
        -:        -:18807:         }
    #####:    #####:18808:         break;
        -:        -:18809:      case nir_op_extract_u16:
    #####:    #####:18810:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_extract_u16_xforms); i++) {
    #####:    #####:18811:            const struct transform *xform = &nir_opt_algebraic_extract_u16_xforms[i];
    #####:    #####:18812:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18813:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18814:                                  mem_ctx)) {
    #####:    #####:18815:               progress = true;
    #####:    #####:18816:               break;
        -:        -:18817:            }
        -:        -:18818:         }
    #####:    #####:18819:         break;
        -:        -:18820:      case nir_op_fge:
      324:      420:18821:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fge_xforms); i++) {
      270:      350:18822:            const struct transform *xform = &nir_opt_algebraic_fge_xforms[i];
      540:      700:18823:            if (condition_flags[xform->condition_offset] &&
      270:      350:18824:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18825:                                  mem_ctx)) {
    #####:    #####:18826:               progress = true;
    #####:    #####:18827:               break;
        -:        -:18828:            }
        -:        -:18829:         }
       54:       70:18830:         break;
        -:        -:18831:      case nir_op_frcp:
      130:      130:18832:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_frcp_xforms); i++) {
      104:      104:18833:            const struct transform *xform = &nir_opt_algebraic_frcp_xforms[i];
      208:      208:18834:            if (condition_flags[xform->condition_offset] &&
      104:      104:18835:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18836:                                  mem_ctx)) {
    #####:    #####:18837:               progress = true;
    #####:    #####:18838:               break;
        -:        -:18839:            }
        -:        -:18840:         }
       26:       26:18841:         break;
        -:        -:18842:      case nir_op_fxor:
    #####:    #####:18843:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fxor_xforms); i++) {
    #####:    #####:18844:            const struct transform *xform = &nir_opt_algebraic_fxor_xforms[i];
    #####:    #####:18845:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18846:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18847:                                  mem_ctx)) {
    #####:    #####:18848:               progress = true;
    #####:    #####:18849:               break;
        -:        -:18850:            }
        -:        -:18851:         }
    #####:    #####:18852:         break;
        -:        -:18853:      case nir_op_ushr:
    #####:    #####:18854:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ushr_xforms); i++) {
    #####:    #####:18855:            const struct transform *xform = &nir_opt_algebraic_ushr_xforms[i];
    #####:    #####:18856:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18857:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18858:                                  mem_ctx)) {
    #####:    #####:18859:               progress = true;
    #####:    #####:18860:               break;
        -:        -:18861:            }
        -:        -:18862:         }
    #####:    #####:18863:         break;
        -:        -:18864:      case nir_op_fexp2:
    #####:    #####:18865:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fexp2_xforms); i++) {
    #####:    #####:18866:            const struct transform *xform = &nir_opt_algebraic_fexp2_xforms[i];
    #####:    #####:18867:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18868:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18869:                                  mem_ctx)) {
    #####:    #####:18870:               progress = true;
    #####:    #####:18871:               break;
        -:        -:18872:            }
        -:        -:18873:         }
    #####:    #####:18874:         break;
        -:        -:18875:      case nir_op_ishr:
    #####:    #####:18876:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ishr_xforms); i++) {
    #####:    #####:18877:            const struct transform *xform = &nir_opt_algebraic_ishr_xforms[i];
    #####:    #####:18878:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18879:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18880:                                  mem_ctx)) {
    #####:    #####:18881:               progress = true;
    #####:    #####:18882:               break;
        -:        -:18883:            }
        -:        -:18884:         }
    #####:    #####:18885:         break;
        -:        -:18886:      case nir_op_ubitfield_extract:
    #####:    #####:18887:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ubitfield_extract_xforms); i++) {
    #####:    #####:18888:            const struct transform *xform = &nir_opt_algebraic_ubitfield_extract_xforms[i];
    #####:    #####:18889:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18890:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18891:                                  mem_ctx)) {
    #####:    #####:18892:               progress = true;
    #####:    #####:18893:               break;
        -:        -:18894:            }
        -:        -:18895:         }
    #####:    #####:18896:         break;
        -:        -:18897:      case nir_op_slt:
    #####:    #####:18898:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_slt_xforms); i++) {
    #####:    #####:18899:            const struct transform *xform = &nir_opt_algebraic_slt_xforms[i];
    #####:    #####:18900:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18901:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18902:                                  mem_ctx)) {
    #####:    #####:18903:               progress = true;
    #####:    #####:18904:               break;
        -:        -:18905:            }
        -:        -:18906:         }
    #####:    #####:18907:         break;
        -:        -:18908:      case nir_op_flt:
    #####:    #####:18909:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_flt_xforms); i++) {
    #####:    #####:18910:            const struct transform *xform = &nir_opt_algebraic_flt_xforms[i];
    #####:    #####:18911:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18912:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18913:                                  mem_ctx)) {
    #####:    #####:18914:               progress = true;
    #####:    #####:18915:               break;
        -:        -:18916:            }
        -:        -:18917:         }
    #####:    #####:18918:         break;
        -:        -:18919:      case nir_op_ult:
    #####:    #####:18920:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ult_xforms); i++) {
    #####:    #####:18921:            const struct transform *xform = &nir_opt_algebraic_ult_xforms[i];
    #####:    #####:18922:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18923:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18924:                                  mem_ctx)) {
    #####:    #####:18925:               progress = true;
    #####:    #####:18926:               break;
        -:        -:18927:            }
        -:        -:18928:         }
    #####:    #####:18929:         break;
        -:        -:18930:      case nir_op_f2i32:
    #####:    #####:18931:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_f2i32_xforms); i++) {
    #####:    #####:18932:            const struct transform *xform = &nir_opt_algebraic_f2i32_xforms[i];
    #####:    #####:18933:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18934:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18935:                                  mem_ctx)) {
    #####:    #####:18936:               progress = true;
    #####:    #####:18937:               break;
        -:        -:18938:            }
        -:        -:18939:         }
    #####:    #####:18940:         break;
        -:        -:18941:      case nir_op_fneg:
       90:       90:18942:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fneg_xforms); i++) {
       60:       60:18943:            const struct transform *xform = &nir_opt_algebraic_fneg_xforms[i];
       90:       90:18944:            if (condition_flags[xform->condition_offset] &&
       30:       30:18945:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18946:                                  mem_ctx)) {
    #####:    #####:18947:               progress = true;
    #####:    #####:18948:               break;
        -:        -:18949:            }
        -:        -:18950:         }
       30:       30:18951:         break;
        -:        -:18952:      case nir_op_fsub:
       10:       10:18953:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fsub_xforms); i++) {
       10:       10:18954:            const struct transform *xform = &nir_opt_algebraic_fsub_xforms[i];
       20:       20:18955:            if (condition_flags[xform->condition_offset] &&
       10:       10:18956:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18957:                                  mem_ctx)) {
        5:        5:18958:               progress = true;
        5:        5:18959:               break;
        -:        -:18960:            }
        -:        -:18961:         }
        5:        5:18962:         break;
        -:        -:18963:      case nir_op_fne:
    #####:    #####:18964:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fne_xforms); i++) {
    #####:    #####:18965:            const struct transform *xform = &nir_opt_algebraic_fne_xforms[i];
    #####:    #####:18966:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18967:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18968:                                  mem_ctx)) {
    #####:    #####:18969:               progress = true;
    #####:    #####:18970:               break;
        -:        -:18971:            }
        -:        -:18972:         }
    #####:    #####:18973:         break;
        -:        -:18974:      case nir_op_iabs:
    #####:    #####:18975:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_iabs_xforms); i++) {
    #####:    #####:18976:            const struct transform *xform = &nir_opt_algebraic_iabs_xforms[i];
    #####:    #####:18977:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18978:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18979:                                  mem_ctx)) {
    #####:    #####:18980:               progress = true;
    #####:    #####:18981:               break;
        -:        -:18982:            }
        -:        -:18983:         }
    #####:    #####:18984:         break;
        -:        -:18985:      case nir_op_unpack_unorm_4x8:
    #####:    #####:18986:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_unpack_unorm_4x8_xforms); i++) {
    #####:    #####:18987:            const struct transform *xform = &nir_opt_algebraic_unpack_unorm_4x8_xforms[i];
    #####:    #####:18988:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:18989:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:18990:                                  mem_ctx)) {
    #####:    #####:18991:               progress = true;
    #####:    #####:18992:               break;
        -:        -:18993:            }
        -:        -:18994:         }
    #####:    #####:18995:         break;
        -:        -:18996:      case nir_op_fmin:
    #####:    #####:18997:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_fmin_xforms); i++) {
    #####:    #####:18998:            const struct transform *xform = &nir_opt_algebraic_fmin_xforms[i];
    #####:    #####:18999:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19000:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19001:                                  mem_ctx)) {
    #####:    #####:19002:               progress = true;
    #####:    #####:19003:               break;
        -:        -:19004:            }
        -:        -:19005:         }
    #####:    #####:19006:         break;
        -:        -:19007:      case nir_op_ine:
    #####:    #####:19008:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ine_xforms); i++) {
    #####:    #####:19009:            const struct transform *xform = &nir_opt_algebraic_ine_xforms[i];
    #####:    #####:19010:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19011:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19012:                                  mem_ctx)) {
    #####:    #####:19013:               progress = true;
    #####:    #####:19014:               break;
        -:        -:19015:            }
        -:        -:19016:         }
    #####:    #####:19017:         break;
        -:        -:19018:      case nir_op_udiv:
    #####:    #####:19019:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_udiv_xforms); i++) {
    #####:    #####:19020:            const struct transform *xform = &nir_opt_algebraic_udiv_xforms[i];
    #####:    #####:19021:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19022:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19023:                                  mem_ctx)) {
    #####:    #####:19024:               progress = true;
    #####:    #####:19025:               break;
        -:        -:19026:            }
        -:        -:19027:         }
    #####:    #####:19028:         break;
        -:        -:19029:      case nir_op_extract_i8:
    #####:    #####:19030:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_extract_i8_xforms); i++) {
    #####:    #####:19031:            const struct transform *xform = &nir_opt_algebraic_extract_i8_xforms[i];
    #####:    #####:19032:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19033:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19034:                                  mem_ctx)) {
    #####:    #####:19035:               progress = true;
    #####:    #####:19036:               break;
        -:        -:19037:            }
        -:        -:19038:         }
    #####:    #####:19039:         break;
        -:        -:19040:      case nir_op_uadd_carry:
    #####:    #####:19041:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_uadd_carry_xforms); i++) {
    #####:    #####:19042:            const struct transform *xform = &nir_opt_algebraic_uadd_carry_xforms[i];
    #####:    #####:19043:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19044:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19045:                                  mem_ctx)) {
    #####:    #####:19046:               progress = true;
    #####:    #####:19047:               break;
        -:        -:19048:            }
        -:        -:19049:         }
    #####:    #####:19050:         break;
        -:        -:19051:      case nir_op_ibitfield_extract:
    #####:    #####:19052:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ibitfield_extract_xforms); i++) {
    #####:    #####:19053:            const struct transform *xform = &nir_opt_algebraic_ibitfield_extract_xforms[i];
    #####:    #####:19054:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19055:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19056:                                  mem_ctx)) {
    #####:    #####:19057:               progress = true;
    #####:    #####:19058:               break;
        -:        -:19059:            }
        -:        -:19060:         }
    #####:    #####:19061:         break;
        -:        -:19062:      case nir_op_ldexp:
    #####:    #####:19063:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_ldexp_xforms); i++) {
    #####:    #####:19064:            const struct transform *xform = &nir_opt_algebraic_ldexp_xforms[i];
    #####:    #####:19065:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19066:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19067:                                  mem_ctx)) {
    #####:    #####:19068:               progress = true;
    #####:    #####:19069:               break;
        -:        -:19070:            }
        -:        -:19071:         }
    #####:    #####:19072:         break;
        -:        -:19073:      case nir_op_extract_i16:
    #####:    #####:19074:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_extract_i16_xforms); i++) {
    #####:    #####:19075:            const struct transform *xform = &nir_opt_algebraic_extract_i16_xforms[i];
    #####:    #####:19076:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19077:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19078:                                  mem_ctx)) {
    #####:    #####:19079:               progress = true;
    #####:    #####:19080:               break;
        -:        -:19081:            }
        -:        -:19082:         }
    #####:    #####:19083:         break;
        -:        -:19084:      default:
       97:       97:19085:         break;
        -:        -:19086:      }
        -:        -:19087:   }
        -:        -:19088:
      274:      402:19089:   return progress;
        -:        -:19090:}
        -:        -:19091:
        -:        -:19092:static bool
       27:       27:19093:nir_opt_algebraic_impl(nir_function_impl *impl, const bool *condition_flags)
        -:        -:19094:{
       27:       27:19095:   void *mem_ctx = ralloc_parent(impl);
       27:       27:19096:   bool progress = false;
        -:        -:19097:
      301:      429:19098:   nir_foreach_block_reverse(block, impl) {
      274:      402:19099:      progress |= nir_opt_algebraic_block(block, condition_flags, mem_ctx);
        -:        -:19100:   }
        -:        -:19101:
       27:       27:19102:   if (progress)
        3:        3:19103:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:19104:                                  nir_metadata_dominance);
        -:        -:19105:
       27:       27:19106:   return progress;
        -:        -:19107:}
        -:        -:19108:
        -:        -:19109:
        -:        -:19110:bool
       27:       27:19111:nir_opt_algebraic(nir_shader *shader)
        -:        -:19112:{
       27:       27:19113:   bool progress = false;
        -:        -:19114:   bool condition_flags[37];
       27:       27:19115:   const nir_shader_compiler_options *options = shader->options;
        -:        -:19116:   (void) options;
        -:        -:19117:
       27:       27:19118:   condition_flags[0] = true;
       27:       27:19119:   condition_flags[1] = options->lower_idiv;
       27:       27:19120:   condition_flags[2] = options->lower_flrp32;
       27:       27:19121:   condition_flags[3] = options->lower_flrp64;
       27:       27:19122:   condition_flags[4] = options->lower_ffract;
       27:       27:19123:   condition_flags[5] = !options->lower_flrp32;
       27:       27:19124:   condition_flags[6] = !options->lower_flrp64;
       27:       27:19125:   condition_flags[7] = options->lower_ffma;
       27:       27:19126:   condition_flags[8] = options->fuse_ffma;
       27:       27:19127:   condition_flags[9] = !options->lower_fsat;
       27:       27:19128:   condition_flags[10] = options->lower_fsat;
       27:       27:19129:   condition_flags[11] = options->lower_scmp;
       27:       27:19130:   condition_flags[12] = options->lower_fpow;
       27:       27:19131:   condition_flags[13] = !options->lower_fpow;
       27:       27:19132:   condition_flags[14] = options->lower_fdiv;
       27:       27:19133:   condition_flags[15] = options->lower_fsqrt;
       27:       27:19134:   condition_flags[16] = !options->lower_fsqrt;
       27:       27:19135:   condition_flags[17] = !options->lower_extract_byte;
       27:       27:19136:   condition_flags[18] = !options->lower_extract_word;
       27:       27:19137:   condition_flags[19] = options->lower_sub;
       27:       27:19138:   condition_flags[20] = options->lower_negate;
       27:       27:19139:   condition_flags[21] = options->lower_fmod32;
       27:       27:19140:   condition_flags[22] = options->lower_fmod64;
       27:       27:19141:   condition_flags[23] = options->lower_uadd_carry;
       27:       27:19142:   condition_flags[24] = options->lower_usub_borrow;
       27:       27:19143:   condition_flags[25] = options->lower_bitfield_insert;
       27:       27:19144:   condition_flags[26] = options->lower_bitfield_extract;
       27:       27:19145:   condition_flags[27] = options->lower_extract_byte;
       27:       27:19146:   condition_flags[28] = options->lower_extract_word;
       27:       27:19147:   condition_flags[29] = options->lower_pack_unorm_2x16;
       27:       27:19148:   condition_flags[30] = options->lower_pack_unorm_4x8;
       27:       27:19149:   condition_flags[31] = options->lower_pack_snorm_2x16;
       27:       27:19150:   condition_flags[32] = options->lower_pack_snorm_4x8;
       27:       27:19151:   condition_flags[33] = options->lower_unpack_unorm_2x16;
       27:       27:19152:   condition_flags[34] = options->lower_unpack_unorm_4x8;
       27:       27:19153:   condition_flags[35] = options->lower_unpack_snorm_2x16;
       27:       27:19154:   condition_flags[36] = options->lower_unpack_snorm_4x8;
        -:        -:19155:
       54:       54:19156:   nir_foreach_function(function, shader) {
       27:       27:19157:      if (function->impl)
       27:       27:19158:         progress |= nir_opt_algebraic_impl(function->impl, condition_flags);
        -:        -:19159:   }
        -:        -:19160:
       27:       27:19161:   return progress;
        -:        -:19162:}
        -:        -:19163:
        -:        -:19164:
        -:        -:19165:#include "nir.h"
        -:        -:19166:#include "nir_search.h"
        -:        -:19167:#include "nir_search_helpers.h"
        -:        -:19168:
        -:        -:19169:#ifndef NIR_OPT_ALGEBRAIC_STRUCT_DEFS
        -:        -:19170:#define NIR_OPT_ALGEBRAIC_STRUCT_DEFS
        -:        -:19171:
        -:        -:19172:struct transform {
        -:        -:19173:   const nir_search_expression *search;
        -:        -:19174:   const nir_search_value *replace;
        -:        -:19175:   unsigned condition_offset;
        -:        -:19176:};
        -:        -:19177:
        -:        -:19178:#endif
        -:        -:19179:
        -:        -:19180:   
        -:        -:19181:static const nir_search_variable search285_0_0 = {
        -:        -:19182:   { nir_search_value_variable, 0 },
        -:        -:19183:   0, /* a */
        -:        -:19184:   false,
        -:        -:19185:   nir_type_invalid,
        -:        -:19186:   NULL,
        -:        -:19187:};
        -:        -:19188:static const nir_search_expression search285_0 = {
        -:        -:19189:   { nir_search_value_expression, 0 },
        -:        -:19190:   false,
        -:        -:19191:   nir_op_inot,
        -:        -:19192:   { &search285_0_0.value },
        -:        -:19193:   NULL,
        -:        -:19194:};
        -:        -:19195:static const nir_search_expression search285 = {
        -:        -:19196:   { nir_search_value_expression, 0 },
        -:        -:19197:   false,
        -:        -:19198:   nir_op_b2f,
        -:        -:19199:   { &search285_0.value },
        -:        -:19200:   (is_used_more_than_once),
        -:        -:19201:};
        -:        -:19202:   
        -:        -:19203:static const nir_search_variable replace285_0 = {
        -:        -:19204:   { nir_search_value_variable, 0 },
        -:        -:19205:   0, /* a */
        -:        -:19206:   false,
        -:        -:19207:   nir_type_invalid,
        -:        -:19208:   NULL,
        -:        -:19209:};
        -:        -:19210:
        -:        -:19211:static const nir_search_constant replace285_1 = {
        -:        -:19212:   { nir_search_value_constant, 0 },
        -:        -:19213:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:19214:};
        -:        -:19215:
        -:        -:19216:static const nir_search_constant replace285_2 = {
        -:        -:19217:   { nir_search_value_constant, 0 },
        -:        -:19218:   nir_type_float, { 0x3ff0000000000000 /* 1.0 */ },
        -:        -:19219:};
        -:        -:19220:static const nir_search_expression replace285 = {
        -:        -:19221:   { nir_search_value_expression, 0 },
        -:        -:19222:   false,
        -:        -:19223:   nir_op_bcsel,
        -:        -:19224:   { &replace285_0.value, &replace285_1.value, &replace285_2.value },
        -:        -:19225:   NULL,
        -:        -:19226:};
        -:        -:19227:
        -:        -:19228:static const struct transform nir_opt_algebraic_late_b2f_xforms[] = {
        -:        -:19229:   { &search285, &replace285.value, 0 },
        -:        -:19230:};
        -:        -:19231:   
        -:        -:19232:static const nir_search_variable search283_0 = {
        -:        -:19233:   { nir_search_value_variable, 0 },
        -:        -:19234:   0, /* a */
        -:        -:19235:   false,
        -:        -:19236:   nir_type_invalid,
        -:        -:19237:   NULL,
        -:        -:19238:};
        -:        -:19239:
        -:        -:19240:static const nir_search_variable search283_1 = {
        -:        -:19241:   { nir_search_value_variable, 0 },
        -:        -:19242:   1, /* b */
        -:        -:19243:   false,
        -:        -:19244:   nir_type_invalid,
        -:        -:19245:   NULL,
        -:        -:19246:};
        -:        -:19247:static const nir_search_expression search283 = {
        -:        -:19248:   { nir_search_value_expression, 0 },
        -:        -:19249:   false,
        -:        -:19250:   nir_op_fdot4,
        -:        -:19251:   { &search283_0.value, &search283_1.value },
        -:        -:19252:   NULL,
        -:        -:19253:};
        -:        -:19254:   
        -:        -:19255:static const nir_search_variable replace283_0 = {
        -:        -:19256:   { nir_search_value_variable, 0 },
        -:        -:19257:   0, /* a */
        -:        -:19258:   false,
        -:        -:19259:   nir_type_invalid,
        -:        -:19260:   NULL,
        -:        -:19261:};
        -:        -:19262:
        -:        -:19263:static const nir_search_variable replace283_1 = {
        -:        -:19264:   { nir_search_value_variable, 0 },
        -:        -:19265:   1, /* b */
        -:        -:19266:   false,
        -:        -:19267:   nir_type_invalid,
        -:        -:19268:   NULL,
        -:        -:19269:};
        -:        -:19270:static const nir_search_expression replace283 = {
        -:        -:19271:   { nir_search_value_expression, 0 },
        -:        -:19272:   false,
        -:        -:19273:   nir_op_fdot_replicated4,
        -:        -:19274:   { &replace283_0.value, &replace283_1.value },
        -:        -:19275:   NULL,
        -:        -:19276:};
        -:        -:19277:
        -:        -:19278:static const struct transform nir_opt_algebraic_late_fdot4_xforms[] = {
        -:        -:19279:   { &search283, &replace283.value, 37 },
        -:        -:19280:};
        -:        -:19281:   
        -:        -:19282:static const nir_search_variable search277_0_0 = {
        -:        -:19283:   { nir_search_value_variable, 0 },
        -:        -:19284:   0, /* a */
        -:        -:19285:   false,
        -:        -:19286:   nir_type_invalid,
        -:        -:19287:   NULL,
        -:        -:19288:};
        -:        -:19289:
        -:        -:19290:static const nir_search_variable search277_0_1 = {
        -:        -:19291:   { nir_search_value_variable, 0 },
        -:        -:19292:   1, /* b */
        -:        -:19293:   false,
        -:        -:19294:   nir_type_invalid,
        -:        -:19295:   NULL,
        -:        -:19296:};
        -:        -:19297:static const nir_search_expression search277_0 = {
        -:        -:19298:   { nir_search_value_expression, 0 },
        -:        -:19299:   false,
        -:        -:19300:   nir_op_fadd,
        -:        -:19301:   { &search277_0_0.value, &search277_0_1.value },
        -:        -:19302:   NULL,
        -:        -:19303:};
        -:        -:19304:
        -:        -:19305:static const nir_search_constant search277_1 = {
        -:        -:19306:   { nir_search_value_constant, 0 },
        -:        -:19307:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:19308:};
        -:        -:19309:static const nir_search_expression search277 = {
        -:        -:19310:   { nir_search_value_expression, 0 },
        -:        -:19311:   false,
        -:        -:19312:   nir_op_flt,
        -:        -:19313:   { &search277_0.value, &search277_1.value },
        -:        -:19314:   NULL,
        -:        -:19315:};
        -:        -:19316:   
        -:        -:19317:static const nir_search_variable replace277_0 = {
        -:        -:19318:   { nir_search_value_variable, 0 },
        -:        -:19319:   0, /* a */
        -:        -:19320:   false,
        -:        -:19321:   nir_type_invalid,
        -:        -:19322:   NULL,
        -:        -:19323:};
        -:        -:19324:
        -:        -:19325:static const nir_search_variable replace277_1_0 = {
        -:        -:19326:   { nir_search_value_variable, 0 },
        -:        -:19327:   1, /* b */
        -:        -:19328:   false,
        -:        -:19329:   nir_type_invalid,
        -:        -:19330:   NULL,
        -:        -:19331:};
        -:        -:19332:static const nir_search_expression replace277_1 = {
        -:        -:19333:   { nir_search_value_expression, 0 },
        -:        -:19334:   false,
        -:        -:19335:   nir_op_fneg,
        -:        -:19336:   { &replace277_1_0.value },
        -:        -:19337:   NULL,
        -:        -:19338:};
        -:        -:19339:static const nir_search_expression replace277 = {
        -:        -:19340:   { nir_search_value_expression, 0 },
        -:        -:19341:   false,
        -:        -:19342:   nir_op_flt,
        -:        -:19343:   { &replace277_0.value, &replace277_1.value },
        -:        -:19344:   NULL,
        -:        -:19345:};
        -:        -:19346:
        -:        -:19347:static const struct transform nir_opt_algebraic_late_flt_xforms[] = {
        -:        -:19348:   { &search277, &replace277.value, 0 },
        -:        -:19349:};
        -:        -:19350:   
        -:        -:19351:static const nir_search_variable search281_0 = {
        -:        -:19352:   { nir_search_value_variable, 0 },
        -:        -:19353:   0, /* a */
        -:        -:19354:   false,
        -:        -:19355:   nir_type_invalid,
        -:        -:19356:   NULL,
        -:        -:19357:};
        -:        -:19358:
        -:        -:19359:static const nir_search_variable search281_1 = {
        -:        -:19360:   { nir_search_value_variable, 0 },
        -:        -:19361:   1, /* b */
        -:        -:19362:   false,
        -:        -:19363:   nir_type_invalid,
        -:        -:19364:   NULL,
        -:        -:19365:};
        -:        -:19366:static const nir_search_expression search281 = {
        -:        -:19367:   { nir_search_value_expression, 0 },
        -:        -:19368:   false,
        -:        -:19369:   nir_op_fdot2,
        -:        -:19370:   { &search281_0.value, &search281_1.value },
        -:        -:19371:   NULL,
        -:        -:19372:};
        -:        -:19373:   
        -:        -:19374:static const nir_search_variable replace281_0 = {
        -:        -:19375:   { nir_search_value_variable, 0 },
        -:        -:19376:   0, /* a */
        -:        -:19377:   false,
        -:        -:19378:   nir_type_invalid,
        -:        -:19379:   NULL,
        -:        -:19380:};
        -:        -:19381:
        -:        -:19382:static const nir_search_variable replace281_1 = {
        -:        -:19383:   { nir_search_value_variable, 0 },
        -:        -:19384:   1, /* b */
        -:        -:19385:   false,
        -:        -:19386:   nir_type_invalid,
        -:        -:19387:   NULL,
        -:        -:19388:};
        -:        -:19389:static const nir_search_expression replace281 = {
        -:        -:19390:   { nir_search_value_expression, 0 },
        -:        -:19391:   false,
        -:        -:19392:   nir_op_fdot_replicated2,
        -:        -:19393:   { &replace281_0.value, &replace281_1.value },
        -:        -:19394:   NULL,
        -:        -:19395:};
        -:        -:19396:
        -:        -:19397:static const struct transform nir_opt_algebraic_late_fdot2_xforms[] = {
        -:        -:19398:   { &search281, &replace281.value, 37 },
        -:        -:19399:};
        -:        -:19400:   
        -:        -:19401:static const nir_search_variable search282_0 = {
        -:        -:19402:   { nir_search_value_variable, 0 },
        -:        -:19403:   0, /* a */
        -:        -:19404:   false,
        -:        -:19405:   nir_type_invalid,
        -:        -:19406:   NULL,
        -:        -:19407:};
        -:        -:19408:
        -:        -:19409:static const nir_search_variable search282_1 = {
        -:        -:19410:   { nir_search_value_variable, 0 },
        -:        -:19411:   1, /* b */
        -:        -:19412:   false,
        -:        -:19413:   nir_type_invalid,
        -:        -:19414:   NULL,
        -:        -:19415:};
        -:        -:19416:static const nir_search_expression search282 = {
        -:        -:19417:   { nir_search_value_expression, 0 },
        -:        -:19418:   false,
        -:        -:19419:   nir_op_fdot3,
        -:        -:19420:   { &search282_0.value, &search282_1.value },
        -:        -:19421:   NULL,
        -:        -:19422:};
        -:        -:19423:   
        -:        -:19424:static const nir_search_variable replace282_0 = {
        -:        -:19425:   { nir_search_value_variable, 0 },
        -:        -:19426:   0, /* a */
        -:        -:19427:   false,
        -:        -:19428:   nir_type_invalid,
        -:        -:19429:   NULL,
        -:        -:19430:};
        -:        -:19431:
        -:        -:19432:static const nir_search_variable replace282_1 = {
        -:        -:19433:   { nir_search_value_variable, 0 },
        -:        -:19434:   1, /* b */
        -:        -:19435:   false,
        -:        -:19436:   nir_type_invalid,
        -:        -:19437:   NULL,
        -:        -:19438:};
        -:        -:19439:static const nir_search_expression replace282 = {
        -:        -:19440:   { nir_search_value_expression, 0 },
        -:        -:19441:   false,
        -:        -:19442:   nir_op_fdot_replicated3,
        -:        -:19443:   { &replace282_0.value, &replace282_1.value },
        -:        -:19444:   NULL,
        -:        -:19445:};
        -:        -:19446:
        -:        -:19447:static const struct transform nir_opt_algebraic_late_fdot3_xforms[] = {
        -:        -:19448:   { &search282, &replace282.value, 37 },
        -:        -:19449:};
        -:        -:19450:   
        -:        -:19451:static const nir_search_variable search286_0_0_0 = {
        -:        -:19452:   { nir_search_value_variable, 0 },
        -:        -:19453:   0, /* a */
        -:        -:19454:   false,
        -:        -:19455:   nir_type_invalid,
        -:        -:19456:   NULL,
        -:        -:19457:};
        -:        -:19458:static const nir_search_expression search286_0_0 = {
        -:        -:19459:   { nir_search_value_expression, 0 },
        -:        -:19460:   false,
        -:        -:19461:   nir_op_inot,
        -:        -:19462:   { &search286_0_0_0.value },
        -:        -:19463:   NULL,
        -:        -:19464:};
        -:        -:19465:static const nir_search_expression search286_0 = {
        -:        -:19466:   { nir_search_value_expression, 0 },
        -:        -:19467:   false,
        -:        -:19468:   nir_op_b2f,
        -:        -:19469:   { &search286_0_0.value },
        -:        -:19470:   NULL,
        -:        -:19471:};
        -:        -:19472:static const nir_search_expression search286 = {
        -:        -:19473:   { nir_search_value_expression, 0 },
        -:        -:19474:   false,
        -:        -:19475:   nir_op_fneg,
        -:        -:19476:   { &search286_0.value },
        -:        -:19477:   (is_used_more_than_once),
        -:        -:19478:};
        -:        -:19479:   
        -:        -:19480:static const nir_search_variable replace286_0 = {
        -:        -:19481:   { nir_search_value_variable, 0 },
        -:        -:19482:   0, /* a */
        -:        -:19483:   false,
        -:        -:19484:   nir_type_invalid,
        -:        -:19485:   NULL,
        -:        -:19486:};
        -:        -:19487:
        -:        -:19488:static const nir_search_constant replace286_1 = {
        -:        -:19489:   { nir_search_value_constant, 0 },
        -:        -:19490:   nir_type_float, { 0x8000000000000000L /* -0.0 */ },
        -:        -:19491:};
        -:        -:19492:
        -:        -:19493:static const nir_search_constant replace286_2 = {
        -:        -:19494:   { nir_search_value_constant, 0 },
        -:        -:19495:   nir_type_float, { 0xbff0000000000000L /* -1.0 */ },
        -:        -:19496:};
        -:        -:19497:static const nir_search_expression replace286 = {
        -:        -:19498:   { nir_search_value_expression, 0 },
        -:        -:19499:   false,
        -:        -:19500:   nir_op_bcsel,
        -:        -:19501:   { &replace286_0.value, &replace286_1.value, &replace286_2.value },
        -:        -:19502:   NULL,
        -:        -:19503:};
        -:        -:19504:
        -:        -:19505:static const struct transform nir_opt_algebraic_late_fneg_xforms[] = {
        -:        -:19506:   { &search286, &replace286.value, 0 },
        -:        -:19507:};
        -:        -:19508:   
        -:        -:19509:static const nir_search_variable search288_0_0 = {
        -:        -:19510:   { nir_search_value_variable, 0 },
        -:        -:19511:   0, /* c */
        -:        -:19512:   true,
        -:        -:19513:   nir_type_invalid,
        -:        -:19514:   NULL,
        -:        -:19515:};
        -:        -:19516:
        -:        -:19517:static const nir_search_variable search288_0_1 = {
        -:        -:19518:   { nir_search_value_variable, 0 },
        -:        -:19519:   1, /* a */
        -:        -:19520:   false,
        -:        -:19521:   nir_type_invalid,
        -:        -:19522:   NULL,
        -:        -:19523:};
        -:        -:19524:static const nir_search_expression search288_0 = {
        -:        -:19525:   { nir_search_value_expression, 0 },
        -:        -:19526:   false,
        -:        -:19527:   nir_op_fadd,
        -:        -:19528:   { &search288_0_0.value, &search288_0_1.value },
        -:        -:19529:   (is_used_once),
        -:        -:19530:};
        -:        -:19531:
        -:        -:19532:static const nir_search_variable search288_1_0 = {
        -:        -:19533:   { nir_search_value_variable, 0 },
        -:        -:19534:   0, /* c */
        -:        -:19535:   true,
        -:        -:19536:   nir_type_invalid,
        -:        -:19537:   NULL,
        -:        -:19538:};
        -:        -:19539:
        -:        -:19540:static const nir_search_variable search288_1_1 = {
        -:        -:19541:   { nir_search_value_variable, 0 },
        -:        -:19542:   2, /* b */
        -:        -:19543:   false,
        -:        -:19544:   nir_type_invalid,
        -:        -:19545:   NULL,
        -:        -:19546:};
        -:        -:19547:static const nir_search_expression search288_1 = {
        -:        -:19548:   { nir_search_value_expression, 0 },
        -:        -:19549:   false,
        -:        -:19550:   nir_op_fadd,
        -:        -:19551:   { &search288_1_0.value, &search288_1_1.value },
        -:        -:19552:   (is_used_once),
        -:        -:19553:};
        -:        -:19554:static const nir_search_expression search288 = {
        -:        -:19555:   { nir_search_value_expression, 0 },
        -:        -:19556:   false,
        -:        -:19557:   nir_op_fmax,
        -:        -:19558:   { &search288_0.value, &search288_1.value },
        -:        -:19559:   NULL,
        -:        -:19560:};
        -:        -:19561:   
        -:        -:19562:static const nir_search_variable replace288_0 = {
        -:        -:19563:   { nir_search_value_variable, 0 },
        -:        -:19564:   0, /* c */
        -:        -:19565:   false,
        -:        -:19566:   nir_type_invalid,
        -:        -:19567:   NULL,
        -:        -:19568:};
        -:        -:19569:
        -:        -:19570:static const nir_search_variable replace288_1_0 = {
        -:        -:19571:   { nir_search_value_variable, 0 },
        -:        -:19572:   1, /* a */
        -:        -:19573:   false,
        -:        -:19574:   nir_type_invalid,
        -:        -:19575:   NULL,
        -:        -:19576:};
        -:        -:19577:
        -:        -:19578:static const nir_search_variable replace288_1_1 = {
        -:        -:19579:   { nir_search_value_variable, 0 },
        -:        -:19580:   2, /* b */
        -:        -:19581:   false,
        -:        -:19582:   nir_type_invalid,
        -:        -:19583:   NULL,
        -:        -:19584:};
        -:        -:19585:static const nir_search_expression replace288_1 = {
        -:        -:19586:   { nir_search_value_expression, 0 },
        -:        -:19587:   false,
        -:        -:19588:   nir_op_fmax,
        -:        -:19589:   { &replace288_1_0.value, &replace288_1_1.value },
        -:        -:19590:   NULL,
        -:        -:19591:};
        -:        -:19592:static const nir_search_expression replace288 = {
        -:        -:19593:   { nir_search_value_expression, 0 },
        -:        -:19594:   false,
        -:        -:19595:   nir_op_fadd,
        -:        -:19596:   { &replace288_0.value, &replace288_1.value },
        -:        -:19597:   NULL,
        -:        -:19598:};
        -:        -:19599:
        -:        -:19600:static const struct transform nir_opt_algebraic_late_fmax_xforms[] = {
        -:        -:19601:   { &search288, &replace288.value, 0 },
        -:        -:19602:};
        -:        -:19603:   
        -:        -:19604:static const nir_search_variable search280_0_0 = {
        -:        -:19605:   { nir_search_value_variable, 0 },
        -:        -:19606:   0, /* a */
        -:        -:19607:   false,
        -:        -:19608:   nir_type_invalid,
        -:        -:19609:   NULL,
        -:        -:19610:};
        -:        -:19611:
        -:        -:19612:static const nir_search_variable search280_0_1 = {
        -:        -:19613:   { nir_search_value_variable, 0 },
        -:        -:19614:   1, /* b */
        -:        -:19615:   false,
        -:        -:19616:   nir_type_invalid,
        -:        -:19617:   NULL,
        -:        -:19618:};
        -:        -:19619:static const nir_search_expression search280_0 = {
        -:        -:19620:   { nir_search_value_expression, 0 },
        -:        -:19621:   false,
        -:        -:19622:   nir_op_fadd,
        -:        -:19623:   { &search280_0_0.value, &search280_0_1.value },
        -:        -:19624:   NULL,
        -:        -:19625:};
        -:        -:19626:
        -:        -:19627:static const nir_search_constant search280_1 = {
        -:        -:19628:   { nir_search_value_constant, 0 },
        -:        -:19629:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:19630:};
        -:        -:19631:static const nir_search_expression search280 = {
        -:        -:19632:   { nir_search_value_expression, 0 },
        -:        -:19633:   true,
        -:        -:19634:   nir_op_fne,
        -:        -:19635:   { &search280_0.value, &search280_1.value },
        -:        -:19636:   NULL,
        -:        -:19637:};
        -:        -:19638:   
        -:        -:19639:static const nir_search_variable replace280_0 = {
        -:        -:19640:   { nir_search_value_variable, 0 },
        -:        -:19641:   0, /* a */
        -:        -:19642:   false,
        -:        -:19643:   nir_type_invalid,
        -:        -:19644:   NULL,
        -:        -:19645:};
        -:        -:19646:
        -:        -:19647:static const nir_search_variable replace280_1_0 = {
        -:        -:19648:   { nir_search_value_variable, 0 },
        -:        -:19649:   1, /* b */
        -:        -:19650:   false,
        -:        -:19651:   nir_type_invalid,
        -:        -:19652:   NULL,
        -:        -:19653:};
        -:        -:19654:static const nir_search_expression replace280_1 = {
        -:        -:19655:   { nir_search_value_expression, 0 },
        -:        -:19656:   false,
        -:        -:19657:   nir_op_fneg,
        -:        -:19658:   { &replace280_1_0.value },
        -:        -:19659:   NULL,
        -:        -:19660:};
        -:        -:19661:static const nir_search_expression replace280 = {
        -:        -:19662:   { nir_search_value_expression, 0 },
        -:        -:19663:   false,
        -:        -:19664:   nir_op_fne,
        -:        -:19665:   { &replace280_0.value, &replace280_1.value },
        -:        -:19666:   NULL,
        -:        -:19667:};
        -:        -:19668:
        -:        -:19669:static const struct transform nir_opt_algebraic_late_fne_xforms[] = {
        -:        -:19670:   { &search280, &replace280.value, 0 },
        -:        -:19671:};
        -:        -:19672:   
        -:        -:19673:static const nir_search_variable search287_0_0 = {
        -:        -:19674:   { nir_search_value_variable, 0 },
        -:        -:19675:   0, /* c */
        -:        -:19676:   true,
        -:        -:19677:   nir_type_invalid,
        -:        -:19678:   NULL,
        -:        -:19679:};
        -:        -:19680:
        -:        -:19681:static const nir_search_variable search287_0_1 = {
        -:        -:19682:   { nir_search_value_variable, 0 },
        -:        -:19683:   1, /* a */
        -:        -:19684:   false,
        -:        -:19685:   nir_type_invalid,
        -:        -:19686:   NULL,
        -:        -:19687:};
        -:        -:19688:static const nir_search_expression search287_0 = {
        -:        -:19689:   { nir_search_value_expression, 0 },
        -:        -:19690:   false,
        -:        -:19691:   nir_op_fadd,
        -:        -:19692:   { &search287_0_0.value, &search287_0_1.value },
        -:        -:19693:   (is_used_once),
        -:        -:19694:};
        -:        -:19695:
        -:        -:19696:static const nir_search_variable search287_1_0 = {
        -:        -:19697:   { nir_search_value_variable, 0 },
        -:        -:19698:   0, /* c */
        -:        -:19699:   true,
        -:        -:19700:   nir_type_invalid,
        -:        -:19701:   NULL,
        -:        -:19702:};
        -:        -:19703:
        -:        -:19704:static const nir_search_variable search287_1_1 = {
        -:        -:19705:   { nir_search_value_variable, 0 },
        -:        -:19706:   2, /* b */
        -:        -:19707:   false,
        -:        -:19708:   nir_type_invalid,
        -:        -:19709:   NULL,
        -:        -:19710:};
        -:        -:19711:static const nir_search_expression search287_1 = {
        -:        -:19712:   { nir_search_value_expression, 0 },
        -:        -:19713:   false,
        -:        -:19714:   nir_op_fadd,
        -:        -:19715:   { &search287_1_0.value, &search287_1_1.value },
        -:        -:19716:   (is_used_once),
        -:        -:19717:};
        -:        -:19718:static const nir_search_expression search287 = {
        -:        -:19719:   { nir_search_value_expression, 0 },
        -:        -:19720:   false,
        -:        -:19721:   nir_op_fmin,
        -:        -:19722:   { &search287_0.value, &search287_1.value },
        -:        -:19723:   NULL,
        -:        -:19724:};
        -:        -:19725:   
        -:        -:19726:static const nir_search_variable replace287_0 = {
        -:        -:19727:   { nir_search_value_variable, 0 },
        -:        -:19728:   0, /* c */
        -:        -:19729:   false,
        -:        -:19730:   nir_type_invalid,
        -:        -:19731:   NULL,
        -:        -:19732:};
        -:        -:19733:
        -:        -:19734:static const nir_search_variable replace287_1_0 = {
        -:        -:19735:   { nir_search_value_variable, 0 },
        -:        -:19736:   1, /* a */
        -:        -:19737:   false,
        -:        -:19738:   nir_type_invalid,
        -:        -:19739:   NULL,
        -:        -:19740:};
        -:        -:19741:
        -:        -:19742:static const nir_search_variable replace287_1_1 = {
        -:        -:19743:   { nir_search_value_variable, 0 },
        -:        -:19744:   2, /* b */
        -:        -:19745:   false,
        -:        -:19746:   nir_type_invalid,
        -:        -:19747:   NULL,
        -:        -:19748:};
        -:        -:19749:static const nir_search_expression replace287_1 = {
        -:        -:19750:   { nir_search_value_expression, 0 },
        -:        -:19751:   false,
        -:        -:19752:   nir_op_fmin,
        -:        -:19753:   { &replace287_1_0.value, &replace287_1_1.value },
        -:        -:19754:   NULL,
        -:        -:19755:};
        -:        -:19756:static const nir_search_expression replace287 = {
        -:        -:19757:   { nir_search_value_expression, 0 },
        -:        -:19758:   false,
        -:        -:19759:   nir_op_fadd,
        -:        -:19760:   { &replace287_0.value, &replace287_1.value },
        -:        -:19761:   NULL,
        -:        -:19762:};
        -:        -:19763:
        -:        -:19764:static const struct transform nir_opt_algebraic_late_fmin_xforms[] = {
        -:        -:19765:   { &search287, &replace287.value, 0 },
        -:        -:19766:};
        -:        -:19767:   
        -:        -:19768:static const nir_search_variable search279_0_0 = {
        -:        -:19769:   { nir_search_value_variable, 0 },
        -:        -:19770:   0, /* a */
        -:        -:19771:   false,
        -:        -:19772:   nir_type_invalid,
        -:        -:19773:   NULL,
        -:        -:19774:};
        -:        -:19775:
        -:        -:19776:static const nir_search_variable search279_0_1 = {
        -:        -:19777:   { nir_search_value_variable, 0 },
        -:        -:19778:   1, /* b */
        -:        -:19779:   false,
        -:        -:19780:   nir_type_invalid,
        -:        -:19781:   NULL,
        -:        -:19782:};
        -:        -:19783:static const nir_search_expression search279_0 = {
        -:        -:19784:   { nir_search_value_expression, 0 },
        -:        -:19785:   false,
        -:        -:19786:   nir_op_fadd,
        -:        -:19787:   { &search279_0_0.value, &search279_0_1.value },
        -:        -:19788:   NULL,
        -:        -:19789:};
        -:        -:19790:
        -:        -:19791:static const nir_search_constant search279_1 = {
        -:        -:19792:   { nir_search_value_constant, 0 },
        -:        -:19793:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:19794:};
        -:        -:19795:static const nir_search_expression search279 = {
        -:        -:19796:   { nir_search_value_expression, 0 },
        -:        -:19797:   true,
        -:        -:19798:   nir_op_feq,
        -:        -:19799:   { &search279_0.value, &search279_1.value },
        -:        -:19800:   NULL,
        -:        -:19801:};
        -:        -:19802:   
        -:        -:19803:static const nir_search_variable replace279_0 = {
        -:        -:19804:   { nir_search_value_variable, 0 },
        -:        -:19805:   0, /* a */
        -:        -:19806:   false,
        -:        -:19807:   nir_type_invalid,
        -:        -:19808:   NULL,
        -:        -:19809:};
        -:        -:19810:
        -:        -:19811:static const nir_search_variable replace279_1_0 = {
        -:        -:19812:   { nir_search_value_variable, 0 },
        -:        -:19813:   1, /* b */
        -:        -:19814:   false,
        -:        -:19815:   nir_type_invalid,
        -:        -:19816:   NULL,
        -:        -:19817:};
        -:        -:19818:static const nir_search_expression replace279_1 = {
        -:        -:19819:   { nir_search_value_expression, 0 },
        -:        -:19820:   false,
        -:        -:19821:   nir_op_fneg,
        -:        -:19822:   { &replace279_1_0.value },
        -:        -:19823:   NULL,
        -:        -:19824:};
        -:        -:19825:static const nir_search_expression replace279 = {
        -:        -:19826:   { nir_search_value_expression, 0 },
        -:        -:19827:   false,
        -:        -:19828:   nir_op_feq,
        -:        -:19829:   { &replace279_0.value, &replace279_1.value },
        -:        -:19830:   NULL,
        -:        -:19831:};
        -:        -:19832:
        -:        -:19833:static const struct transform nir_opt_algebraic_late_feq_xforms[] = {
        -:        -:19834:   { &search279, &replace279.value, 0 },
        -:        -:19835:};
        -:        -:19836:   
        -:        -:19837:static const nir_search_variable search278_0_0 = {
        -:        -:19838:   { nir_search_value_variable, 0 },
        -:        -:19839:   0, /* a */
        -:        -:19840:   false,
        -:        -:19841:   nir_type_invalid,
        -:        -:19842:   NULL,
        -:        -:19843:};
        -:        -:19844:
        -:        -:19845:static const nir_search_variable search278_0_1 = {
        -:        -:19846:   { nir_search_value_variable, 0 },
        -:        -:19847:   1, /* b */
        -:        -:19848:   false,
        -:        -:19849:   nir_type_invalid,
        -:        -:19850:   NULL,
        -:        -:19851:};
        -:        -:19852:static const nir_search_expression search278_0 = {
        -:        -:19853:   { nir_search_value_expression, 0 },
        -:        -:19854:   false,
        -:        -:19855:   nir_op_fadd,
        -:        -:19856:   { &search278_0_0.value, &search278_0_1.value },
        -:        -:19857:   NULL,
        -:        -:19858:};
        -:        -:19859:
        -:        -:19860:static const nir_search_constant search278_1 = {
        -:        -:19861:   { nir_search_value_constant, 0 },
        -:        -:19862:   nir_type_float, { 0x0 /* 0.0 */ },
        -:        -:19863:};
        -:        -:19864:static const nir_search_expression search278 = {
        -:        -:19865:   { nir_search_value_expression, 0 },
        -:        -:19866:   true,
        -:        -:19867:   nir_op_fge,
        -:        -:19868:   { &search278_0.value, &search278_1.value },
        -:        -:19869:   NULL,
        -:        -:19870:};
        -:        -:19871:   
        -:        -:19872:static const nir_search_variable replace278_0 = {
        -:        -:19873:   { nir_search_value_variable, 0 },
        -:        -:19874:   0, /* a */
        -:        -:19875:   false,
        -:        -:19876:   nir_type_invalid,
        -:        -:19877:   NULL,
        -:        -:19878:};
        -:        -:19879:
        -:        -:19880:static const nir_search_variable replace278_1_0 = {
        -:        -:19881:   { nir_search_value_variable, 0 },
        -:        -:19882:   1, /* b */
        -:        -:19883:   false,
        -:        -:19884:   nir_type_invalid,
        -:        -:19885:   NULL,
        -:        -:19886:};
        -:        -:19887:static const nir_search_expression replace278_1 = {
        -:        -:19888:   { nir_search_value_expression, 0 },
        -:        -:19889:   false,
        -:        -:19890:   nir_op_fneg,
        -:        -:19891:   { &replace278_1_0.value },
        -:        -:19892:   NULL,
        -:        -:19893:};
        -:        -:19894:static const nir_search_expression replace278 = {
        -:        -:19895:   { nir_search_value_expression, 0 },
        -:        -:19896:   false,
        -:        -:19897:   nir_op_fge,
        -:        -:19898:   { &replace278_0.value, &replace278_1.value },
        -:        -:19899:   NULL,
        -:        -:19900:};
        -:        -:19901:
        -:        -:19902:static const struct transform nir_opt_algebraic_late_fge_xforms[] = {
        -:        -:19903:   { &search278, &replace278.value, 0 },
        -:        -:19904:};
        -:        -:19905:   
        -:        -:19906:static const nir_search_variable search284_0 = {
        -:        -:19907:   { nir_search_value_variable, 0 },
        -:        -:19908:   0, /* a */
        -:        -:19909:   false,
        -:        -:19910:   nir_type_invalid,
        -:        -:19911:   NULL,
        -:        -:19912:};
        -:        -:19913:
        -:        -:19914:static const nir_search_variable search284_1 = {
        -:        -:19915:   { nir_search_value_variable, 0 },
        -:        -:19916:   1, /* b */
        -:        -:19917:   false,
        -:        -:19918:   nir_type_invalid,
        -:        -:19919:   NULL,
        -:        -:19920:};
        -:        -:19921:static const nir_search_expression search284 = {
        -:        -:19922:   { nir_search_value_expression, 0 },
        -:        -:19923:   false,
        -:        -:19924:   nir_op_fdph,
        -:        -:19925:   { &search284_0.value, &search284_1.value },
        -:        -:19926:   NULL,
        -:        -:19927:};
        -:        -:19928:   
        -:        -:19929:static const nir_search_variable replace284_0 = {
        -:        -:19930:   { nir_search_value_variable, 0 },
        -:        -:19931:   0, /* a */
        -:        -:19932:   false,
        -:        -:19933:   nir_type_invalid,
        -:        -:19934:   NULL,
        -:        -:19935:};
        -:        -:19936:
        -:        -:19937:static const nir_search_variable replace284_1 = {
        -:        -:19938:   { nir_search_value_variable, 0 },
        -:        -:19939:   1, /* b */
        -:        -:19940:   false,
        -:        -:19941:   nir_type_invalid,
        -:        -:19942:   NULL,
        -:        -:19943:};
        -:        -:19944:static const nir_search_expression replace284 = {
        -:        -:19945:   { nir_search_value_expression, 0 },
        -:        -:19946:   false,
        -:        -:19947:   nir_op_fdph_replicated,
        -:        -:19948:   { &replace284_0.value, &replace284_1.value },
        -:        -:19949:   NULL,
        -:        -:19950:};
        -:        -:19951:
        -:        -:19952:static const struct transform nir_opt_algebraic_late_fdph_xforms[] = {
        -:        -:19953:   { &search284, &replace284.value, 37 },
        -:        -:19954:};
        -:        -:19955:
        -:        -:19956:static bool
       36:       52:19957:nir_opt_algebraic_late_block(nir_block *block, const bool *condition_flags,
        -:        -:19958:                   void *mem_ctx)
        -:        -:19959:{
       36:       52:19960:   bool progress = false;
        -:        -:19961:
      172:      203:19962:   nir_foreach_instr_reverse_safe(instr, block) {
      136:      151:19963:      if (instr->type != nir_instr_type_alu)
       68:       80:19964:         continue;
        -:        -:19965:
       68:       71:19966:      nir_alu_instr *alu = nir_instr_as_alu(instr);
       68:       71:19967:      if (!alu->dest.dest.is_ssa)
    #####:    #####:19968:         continue;
        -:        -:19969:
       68:       71:19970:      switch (alu->op) {
        -:        -:19971:      case nir_op_b2f:
    #####:    #####:19972:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_b2f_xforms); i++) {
    #####:    #####:19973:            const struct transform *xform = &nir_opt_algebraic_late_b2f_xforms[i];
    #####:    #####:19974:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19975:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19976:                                  mem_ctx)) {
    #####:    #####:19977:               progress = true;
    #####:    #####:19978:               break;
        -:        -:19979:            }
        -:        -:19980:         }
    #####:    #####:19981:         break;
        -:        -:19982:      case nir_op_fdot4:
        4:        4:19983:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fdot4_xforms); i++) {
        4:        4:19984:            const struct transform *xform = &nir_opt_algebraic_late_fdot4_xforms[i];
        8:        8:19985:            if (condition_flags[xform->condition_offset] &&
        4:        4:19986:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19987:                                  mem_ctx)) {
        4:        4:19988:               progress = true;
        4:        4:19989:               break;
        -:        -:19990:            }
        -:        -:19991:         }
        4:        4:19992:         break;
        -:        -:19993:      case nir_op_flt:
    #####:    #####:19994:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_flt_xforms); i++) {
    #####:    #####:19995:            const struct transform *xform = &nir_opt_algebraic_late_flt_xforms[i];
    #####:    #####:19996:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:19997:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:19998:                                  mem_ctx)) {
    #####:    #####:19999:               progress = true;
    #####:    #####:20000:               break;
        -:        -:20001:            }
        -:        -:20002:         }
    #####:    #####:20003:         break;
        -:        -:20004:      case nir_op_fdot2:
    #####:    #####:20005:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fdot2_xforms); i++) {
    #####:    #####:20006:            const struct transform *xform = &nir_opt_algebraic_late_fdot2_xforms[i];
    #####:    #####:20007:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20008:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20009:                                  mem_ctx)) {
    #####:    #####:20010:               progress = true;
    #####:    #####:20011:               break;
        -:        -:20012:            }
        -:        -:20013:         }
    #####:    #####:20014:         break;
        -:        -:20015:      case nir_op_fdot3:
    #####:    #####:20016:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fdot3_xforms); i++) {
    #####:    #####:20017:            const struct transform *xform = &nir_opt_algebraic_late_fdot3_xforms[i];
    #####:    #####:20018:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20019:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20020:                                  mem_ctx)) {
    #####:    #####:20021:               progress = true;
    #####:    #####:20022:               break;
        -:        -:20023:            }
        -:        -:20024:         }
    #####:    #####:20025:         break;
        -:        -:20026:      case nir_op_fneg:
       20:       20:20027:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fneg_xforms); i++) {
       10:       10:20028:            const struct transform *xform = &nir_opt_algebraic_late_fneg_xforms[i];
       20:       20:20029:            if (condition_flags[xform->condition_offset] &&
       10:       10:20030:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20031:                                  mem_ctx)) {
    #####:    #####:20032:               progress = true;
    #####:    #####:20033:               break;
        -:        -:20034:            }
        -:        -:20035:         }
       10:       10:20036:         break;
        -:        -:20037:      case nir_op_fmax:
    #####:    #####:20038:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fmax_xforms); i++) {
    #####:    #####:20039:            const struct transform *xform = &nir_opt_algebraic_late_fmax_xforms[i];
    #####:    #####:20040:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20041:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20042:                                  mem_ctx)) {
    #####:    #####:20043:               progress = true;
    #####:    #####:20044:               break;
        -:        -:20045:            }
        -:        -:20046:         }
    #####:    #####:20047:         break;
        -:        -:20048:      case nir_op_fne:
    #####:    #####:20049:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fne_xforms); i++) {
    #####:    #####:20050:            const struct transform *xform = &nir_opt_algebraic_late_fne_xforms[i];
    #####:    #####:20051:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20052:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20053:                                  mem_ctx)) {
    #####:    #####:20054:               progress = true;
    #####:    #####:20055:               break;
        -:        -:20056:            }
        -:        -:20057:         }
    #####:    #####:20058:         break;
        -:        -:20059:      case nir_op_fmin:
    #####:    #####:20060:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fmin_xforms); i++) {
    #####:    #####:20061:            const struct transform *xform = &nir_opt_algebraic_late_fmin_xforms[i];
    #####:    #####:20062:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20063:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20064:                                  mem_ctx)) {
    #####:    #####:20065:               progress = true;
    #####:    #####:20066:               break;
        -:        -:20067:            }
        -:        -:20068:         }
    #####:    #####:20069:         break;
        -:        -:20070:      case nir_op_feq:
    #####:    #####:20071:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_feq_xforms); i++) {
    #####:    #####:20072:            const struct transform *xform = &nir_opt_algebraic_late_feq_xforms[i];
    #####:    #####:20073:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20074:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20075:                                  mem_ctx)) {
    #####:    #####:20076:               progress = true;
    #####:    #####:20077:               break;
        -:        -:20078:            }
        -:        -:20079:         }
    #####:    #####:20080:         break;
        -:        -:20081:      case nir_op_fge:
       14:       16:20082:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fge_xforms); i++) {
        7:        9:20083:            const struct transform *xform = &nir_opt_algebraic_late_fge_xforms[i];
       14:       18:20084:            if (condition_flags[xform->condition_offset] &&
        7:        9:20085:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20086:                                  mem_ctx)) {
    #####:        2:20087:               progress = true;
    #####:        2:20088:               break;
        -:        -:20089:            }
        -:        -:20090:         }
        7:        9:20091:         break;
        -:        -:20092:      case nir_op_fdph:
    #####:    #####:20093:         for (unsigned i = 0; i < ARRAY_SIZE(nir_opt_algebraic_late_fdph_xforms); i++) {
    #####:    #####:20094:            const struct transform *xform = &nir_opt_algebraic_late_fdph_xforms[i];
    #####:    #####:20095:            if (condition_flags[xform->condition_offset] &&
    #####:    #####:20096:                nir_replace_instr(alu, xform->search, xform->replace,
        -:        -:20097:                                  mem_ctx)) {
    #####:    #####:20098:               progress = true;
    #####:    #####:20099:               break;
        -:        -:20100:            }
        -:        -:20101:         }
    #####:    #####:20102:         break;
        -:        -:20103:      default:
       47:       48:20104:         break;
        -:        -:20105:      }
        -:        -:20106:   }
        -:        -:20107:
       36:       52:20108:   return progress;
        -:        -:20109:}
        -:        -:20110:
        -:        -:20111:static bool
        5:        5:20112:nir_opt_algebraic_late_impl(nir_function_impl *impl, const bool *condition_flags)
        -:        -:20113:{
        5:        5:20114:   void *mem_ctx = ralloc_parent(impl);
        5:        5:20115:   bool progress = false;
        -:        -:20116:
       41:       57:20117:   nir_foreach_block_reverse(block, impl) {
       36:       52:20118:      progress |= nir_opt_algebraic_late_block(block, condition_flags, mem_ctx);
        -:        -:20119:   }
        -:        -:20120:
        5:        5:20121:   if (progress)
        1:        2:20122:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:20123:                                  nir_metadata_dominance);
        -:        -:20124:
        5:        5:20125:   return progress;
        -:        -:20126:}
        -:        -:20127:
        -:        -:20128:
        -:        -:20129:bool
        5:        5:20130:nir_opt_algebraic_late(nir_shader *shader)
        -:        -:20131:{
        5:        5:20132:   bool progress = false;
        -:        -:20133:   bool condition_flags[38];
        5:        5:20134:   const nir_shader_compiler_options *options = shader->options;
        -:        -:20135:   (void) options;
        -:        -:20136:
        5:        5:20137:   condition_flags[0] = true;
        5:        5:20138:   condition_flags[1] = options->lower_idiv;
        5:        5:20139:   condition_flags[2] = options->lower_flrp32;
        5:        5:20140:   condition_flags[3] = options->lower_flrp64;
        5:        5:20141:   condition_flags[4] = options->lower_ffract;
        5:        5:20142:   condition_flags[5] = !options->lower_flrp32;
        5:        5:20143:   condition_flags[6] = !options->lower_flrp64;
        5:        5:20144:   condition_flags[7] = options->lower_ffma;
        5:        5:20145:   condition_flags[8] = options->fuse_ffma;
        5:        5:20146:   condition_flags[9] = !options->lower_fsat;
        5:        5:20147:   condition_flags[10] = options->lower_fsat;
        5:        5:20148:   condition_flags[11] = options->lower_scmp;
        5:        5:20149:   condition_flags[12] = options->lower_fpow;
        5:        5:20150:   condition_flags[13] = !options->lower_fpow;
        5:        5:20151:   condition_flags[14] = options->lower_fdiv;
        5:        5:20152:   condition_flags[15] = options->lower_fsqrt;
        5:        5:20153:   condition_flags[16] = !options->lower_fsqrt;
        5:        5:20154:   condition_flags[17] = !options->lower_extract_byte;
        5:        5:20155:   condition_flags[18] = !options->lower_extract_word;
        5:        5:20156:   condition_flags[19] = options->lower_sub;
        5:        5:20157:   condition_flags[20] = options->lower_negate;
        5:        5:20158:   condition_flags[21] = options->lower_fmod32;
        5:        5:20159:   condition_flags[22] = options->lower_fmod64;
        5:        5:20160:   condition_flags[23] = options->lower_uadd_carry;
        5:        5:20161:   condition_flags[24] = options->lower_usub_borrow;
        5:        5:20162:   condition_flags[25] = options->lower_bitfield_insert;
        5:        5:20163:   condition_flags[26] = options->lower_bitfield_extract;
        5:        5:20164:   condition_flags[27] = options->lower_extract_byte;
        5:        5:20165:   condition_flags[28] = options->lower_extract_word;
        5:        5:20166:   condition_flags[29] = options->lower_pack_unorm_2x16;
        5:        5:20167:   condition_flags[30] = options->lower_pack_unorm_4x8;
        5:        5:20168:   condition_flags[31] = options->lower_pack_snorm_2x16;
        5:        5:20169:   condition_flags[32] = options->lower_pack_snorm_4x8;
        5:        5:20170:   condition_flags[33] = options->lower_unpack_unorm_2x16;
        5:        5:20171:   condition_flags[34] = options->lower_unpack_unorm_4x8;
        5:        5:20172:   condition_flags[35] = options->lower_unpack_snorm_2x16;
        5:        5:20173:   condition_flags[36] = options->lower_unpack_snorm_4x8;
        5:        5:20174:   condition_flags[37] = options->fdot_replicates;
        -:        -:20175:
       10:       10:20176:   nir_foreach_function(function, shader) {
        5:        5:20177:      if (function->impl)
        5:        5:20178:         progress |= nir_opt_algebraic_late_impl(function->impl, condition_flags);
        -:        -:20179:   }
        -:        -:20180:
        5:        5:20181:   return progress;
        -:        -:20182:}
        -:        -:20183:

src/compiler/nir_opt_constant_folding.c.gcov

        -:        -:    0:Source:nir/nir_opt_constant_folding.c
        -:        -:    0:Graph:nir/.libs/nir_opt_constant_folding.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir_constant_expressions.h"
        -:        -:   29:#include <math.h>
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Implements SSA-based constant folding.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:struct constant_fold_state {
        -:        -:   36:   void *mem_ctx;
        -:        -:   37:   nir_function_impl *impl;
        -:        -:   38:   bool progress;
        -:        -:   39:};
        -:        -:   40:
        -:        -:   41:static bool
      678:      718:   42:constant_fold_alu_instr(nir_alu_instr *instr, void *mem_ctx)
        -:        -:   43:{
        -:        -:   44:   nir_const_value src[4];
        -:        -:   45:
      678:      718:   46:   if (!instr->dest.dest.is_ssa)
    #####:    #####:   47:      return false;
        -:        -:   48:
        -:        -:   49:   /* In the case that any outputs/inputs have unsized types, then we need to
        -:        -:   50:    * guess the bit-size. In this case, the validator ensures that all
        -:        -:   51:    * bit-sizes match so we can just take the bit-size from first
        -:        -:   52:    * output/input with an unsized type. If all the outputs/inputs are sized
        -:        -:   53:    * then we don't need to guess the bit-size at all because the code we
        -:        -:   54:    * generate for constant opcodes in this case already knows the sizes of
        -:        -:   55:    * the types involved and does not need the provided bit-size for anything
        -:        -:   56:    * (although it still requires to receive a valid bit-size).
        -:        -:   57:    */
      678:      718:   58:   unsigned bit_size = 0;
      678:      718:   59:   if (!nir_alu_type_get_type_size(nir_op_infos[instr->op].output_type))
      565:      587:   60:      bit_size = instr->dest.dest.ssa.bit_size;
        -:        -:   61:
      778:      818:   62:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
      746:      786:   63:      if (!instr->src[i].src.is_ssa)
    #####:    #####:   64:         return false;
        -:        -:   65:
      859:      917:   66:      if (bit_size == 0 &&
      113:      131:   67:          !nir_alu_type_get_type_size(nir_op_infos[instr->op].input_sizes[i])) {
      113:      131:   68:         bit_size = instr->src[i].src.ssa->bit_size;
        -:        -:   69:      }
        -:        -:   70:
      746:      786:   71:      nir_instr *src_instr = instr->src[i].src.ssa->parent_instr;
        -:        -:   72:
      746:      786:   73:      if (src_instr->type != nir_instr_type_load_const)
      646:      686:   74:         return false;
      100:      100:   75:      nir_load_const_instr* load_const = nir_instr_as_load_const(src_instr);
        -:        -:   76:
      300:      300:   77:      for (unsigned j = 0; j < nir_ssa_alu_instr_src_components(instr, i);
      100:      100:   78:           j++) {
      100:      100:   79:         if (load_const->def.bit_size == 64)
    #####:    #####:   80:            src[i].u64[j] = load_const->value.u64[instr->src[i].swizzle[j]];
        -:        -:   81:         else
      100:      100:   82:            src[i].u32[j] = load_const->value.u32[instr->src[i].swizzle[j]];
        -:        -:   83:      }
        -:        -:   84:
        -:        -:   85:      /* We shouldn't have any source modifiers in the optimization loop. */
      100:      100:   86:      assert(!instr->src[i].abs && !instr->src[i].negate);
        -:        -:   87:   }
        -:        -:   88:
       32:       32:   89:   if (bit_size == 0)
    #####:    #####:   90:      bit_size = 32;
        -:        -:   91:
        -:        -:   92:   /* We shouldn't have any saturate modifiers in the optimization loop. */
       32:       32:   93:   assert(!instr->dest.saturate);
        -:        -:   94:
       32:       32:   95:   nir_const_value dest =
       32:       32:   96:      nir_eval_const_opcode(instr->op, instr->dest.dest.ssa.num_components,
        -:        -:   97:                            bit_size, src);
        -:        -:   98:
       32:       32:   99:   nir_load_const_instr *new_instr =
       64:       64:  100:      nir_load_const_instr_create(mem_ctx,
       32:       32:  101:                                  instr->dest.dest.ssa.num_components,
       32:       32:  102:                                  instr->dest.dest.ssa.bit_size);
        -:        -:  103:
       32:       32:  104:   new_instr->value = dest;
        -:        -:  105:
       32:       32:  106:   nir_instr_insert_before(&instr->instr, &new_instr->instr);
        -:        -:  107:
       32:       32:  108:   nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa,
        -:        -:  109:                            nir_src_for_ssa(&new_instr->def));
        -:        -:  110:
       32:       32:  111:   nir_instr_remove(&instr->instr);
       32:       32:  112:   ralloc_free(instr);
        -:        -:  113:
       32:       32:  114:   return true;
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:static bool
      140:      152:  118:constant_fold_deref(nir_instr *instr, nir_deref_var *deref)
        -:        -:  119:{
      140:      152:  120:   bool progress = false;
        -:        -:  121:
      222:      234:  122:   for (nir_deref *tail = deref->deref.child; tail; tail = tail->child) {
       82:       82:  123:      if (tail->deref_type != nir_deref_type_array)
    #####:    #####:  124:         continue;
        -:        -:  125:
       82:       82:  126:      nir_deref_array *arr = nir_deref_as_array(tail);
        -:        -:  127:
       82:       82:  128:      if (arr->deref_array_type == nir_deref_array_type_indirect &&
    #####:    #####:  129:          arr->indirect.is_ssa &&
    #####:    #####:  130:          arr->indirect.ssa->parent_instr->type == nir_instr_type_load_const) {
    #####:    #####:  131:         nir_load_const_instr *indirect =
    #####:    #####:  132:            nir_instr_as_load_const(arr->indirect.ssa->parent_instr);
        -:        -:  133:
    #####:    #####:  134:         arr->base_offset += indirect->value.u32[0];
        -:        -:  135:
        -:        -:  136:         /* Clear out the source */
    #####:    #####:  137:         nir_instr_rewrite_src(instr, &arr->indirect, nir_src_for_ssa(NULL));
        -:        -:  138:
    #####:    #####:  139:         arr->deref_array_type = nir_deref_array_type_direct;
        -:        -:  140:
    #####:    #####:  141:         progress = true;
        -:        -:  142:      }
        -:        -:  143:   }
        -:        -:  144:
      140:      152:  145:   return progress;
        -:        -:  146:}
        -:        -:  147:
        -:        -:  148:static bool
      226:      248:  149:constant_fold_intrinsic_instr(nir_intrinsic_instr *instr)
        -:        -:  150:{
      226:      248:  151:   bool progress = false;
        -:        -:  152:
      226:      248:  153:   unsigned num_vars = nir_intrinsic_infos[instr->intrinsic].num_variables;
      366:      400:  154:   for (unsigned i = 0; i < num_vars; i++) {
      140:      152:  155:      progress |= constant_fold_deref(&instr->instr, instr->variables[i]);
        -:        -:  156:   }
        -:        -:  157:
      226:      248:  158:   if (instr->intrinsic == nir_intrinsic_discard_if) {
    #####:    #####:  159:      nir_const_value *src_val = nir_src_as_const_value(instr->src[0]);
    #####:    #####:  160:      if (src_val && src_val->u32[0] == 0) {
    #####:    #####:  161:         nir_instr_remove(&instr->instr);
    #####:    #####:  162:         progress = true;
        -:        -:  163:      }
        -:        -:  164:   }
        -:        -:  165:
      226:      248:  166:   return progress;
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:static bool
    #####:    #####:  170:constant_fold_tex_instr(nir_tex_instr *instr)
        -:        -:  171:{
    #####:    #####:  172:   bool progress = false;
        -:        -:  173:
    #####:    #####:  174:   if (instr->texture)
    #####:    #####:  175:      progress |= constant_fold_deref(&instr->instr, instr->texture);
        -:        -:  176:
    #####:    #####:  177:   if (instr->sampler)
    #####:    #####:  178:      progress |= constant_fold_deref(&instr->instr, instr->sampler);
        -:        -:  179:
    #####:    #####:  180:   return progress;
        -:        -:  181:}
        -:        -:  182:
        -:        -:  183:static bool
      310:      454:  184:constant_fold_block(nir_block *block, void *mem_ctx)
        -:        -:  185:{
      310:      454:  186:   bool progress = false;
        -:        -:  187:
     1580:     1902:  188:   nir_foreach_instr_safe(instr, block) {
     1270:     1448:  189:      switch (instr->type) {
        -:        -:  190:      case nir_instr_type_alu:
      678:      718:  191:         progress |= constant_fold_alu_instr(nir_instr_as_alu(instr), mem_ctx);
      678:      718:  192:         break;
        -:        -:  193:      case nir_instr_type_intrinsic:
      226:      248:  194:         progress |=
      226:      248:  195:            constant_fold_intrinsic_instr(nir_instr_as_intrinsic(instr));
      226:      248:  196:         break;
        -:        -:  197:      case nir_instr_type_tex:
    #####:    #####:  198:         progress |= constant_fold_tex_instr(nir_instr_as_tex(instr));
    #####:    #####:  199:         break;
        -:        -:  200:      default:
        -:        -:  201:         /* Don't know how to constant fold */
      366:      482:  202:         break;
        -:        -:  203:      }
        -:        -:  204:   }
        -:        -:  205:
      310:      454:  206:   return progress;
        -:        -:  207:}
        -:        -:  208:
        -:        -:  209:static bool
       32:       32:  210:nir_opt_constant_folding_impl(nir_function_impl *impl)
        -:        -:  211:{
       32:       32:  212:   void *mem_ctx = ralloc_parent(impl);
       32:       32:  213:   bool progress = false;
        -:        -:  214:
      342:      486:  215:   nir_foreach_block(block, impl) {
      310:      454:  216:      progress |= constant_fold_block(block, mem_ctx);
        -:        -:  217:   }
        -:        -:  218:
       32:       32:  219:   if (progress)
        3:        3:  220:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  221:                                  nir_metadata_dominance);
        -:        -:  222:
       32:       32:  223:   return progress;
        -:        -:  224:}
        -:        -:  225:
        -:        -:  226:bool
       32:       32:  227:nir_opt_constant_folding(nir_shader *shader)
        -:        -:  228:{
       32:       32:  229:   bool progress = false;
        -:        -:  230:
       64:       64:  231:   nir_foreach_function(function, shader) {
       32:       32:  232:      if (function->impl)
       32:       32:  233:         progress |= nir_opt_constant_folding_impl(function->impl);
        -:        -:  234:   }
        -:        -:  235:
       32:       32:  236:   return progress;
        -:        -:  237:}

src/compiler/nir_opt_copy_propagate.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_propagate.c
        -:        -:    0:Graph:nir/.libs/nir_opt_copy_propagate.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_copy_propagate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include <main/imports.h>
        -:        -:   30:
        -:        -:   31:/**
        -:        -:   32: * SSA-based copy propagation
        -:        -:   33: */
        -:        -:   34:
     2481:     2611:   35:static bool is_move(nir_alu_instr *instr)
        -:        -:   36:{
     4948:     5208:   37:   if (instr->op != nir_op_fmov &&
     2467:     2597:   38:       instr->op != nir_op_imov)
     1984:     2092:   39:      return false;
        -:        -:   40:
      497:      519:   41:   if (instr->dest.saturate)
    #####:    #####:   42:      return false;
        -:        -:   43:
        -:        -:   44:   /* we handle modifiers in a separate pass */
        -:        -:   45:
      497:      519:   46:   if (instr->src[0].abs || instr->src[0].negate)
    #####:    #####:   47:      return false;
        -:        -:   48:
      497:      519:   49:   if (!instr->src[0].src.is_ssa)
    #####:    #####:   50:      return false;
        -:        -:   51:
      497:      519:   52:   return true;
        -:        -:   53:
        -:        -:   54:}
        -:        -:   55:
     1984:     2092:   56:static bool is_vec(nir_alu_instr *instr)
        -:        -:   57:{
     6129:     6471:   58:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
     4150:     4386:   59:      if (!instr->src[i].src.is_ssa)
    #####:    #####:   60:         return false;
        -:        -:   61:
        -:        -:   62:      /* we handle modifiers in a separate pass */
     4150:     4386:   63:      if (instr->src[i].abs || instr->src[i].negate)
        5:        7:   64:         return false;
        -:        -:   65:   }
        -:        -:   66:
     5937:     6255:   67:   return instr->op == nir_op_vec2 ||
     3958:     4170:   68:          instr->op == nir_op_vec3 ||
     1979:     2085:   69:          instr->op == nir_op_vec4;
        -:        -:   70:}
        -:        -:   71:
        -:        -:   72:static bool
      539:      575:   73:is_swizzleless_move(nir_alu_instr *instr)
        -:        -:   74:{
      539:      575:   75:   if (is_move(instr)) {
      170:      178:   76:      for (unsigned i = 0; i < 4; i++) {
      168:      176:   77:         if (!((instr->dest.write_mask >> i) & 1))
       80:       84:   78:            break;
       88:       92:   79:         if (instr->src[0].swizzle[i] != i)
    #####:    #####:   80:            return false;
        -:        -:   81:      }
       82:       86:   82:      return true;
      457:      489:   83:   } else if (is_vec(instr)) {
       40:       40:   84:      nir_ssa_def *def = NULL;
       94:       94:   85:      for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
       93:       93:   86:         if (instr->src[i].swizzle[0] != i)
       39:       39:   87:            return false;
        -:        -:   88:
       54:       54:   89:         if (def == NULL) {
       40:       40:   90:            def = instr->src[i].src.ssa;
       14:       14:   91:         } else if (instr->src[i].src.ssa != def) {
    #####:    #####:   92:            return false;
        -:        -:   93:         }
        -:        -:   94:      }
        1:        1:   95:      return true;
        -:        -:   96:   } else {
      417:      449:   97:      return false;
        -:        -:   98:   }
        -:        -:   99:}
        -:        -:  100:
        -:        -:  101:static bool
     1285:     1645:  102:copy_prop_src(nir_src *src, nir_instr *parent_instr, nir_if *parent_if,
        -:        -:  103:              unsigned num_components)
        -:        -:  104:{
     1285:     1645:  105:   if (!src->is_ssa) {
    #####:    #####:  106:      if (src->reg.indirect)
    #####:    #####:  107:         return copy_prop_src(src->reg.indirect, parent_instr, parent_if, 1);
    #####:    #####:  108:      return false;
        -:        -:  109:   }
        -:        -:  110:
     1285:     1645:  111:   nir_instr *src_instr = src->ssa->parent_instr;
     1285:     1645:  112:   if (src_instr->type != nir_instr_type_alu)
      746:     1070:  113:      return false;
        -:        -:  114:
      539:      575:  115:   nir_alu_instr *alu_instr = nir_instr_as_alu(src_instr);
      539:      575:  116:   if (!is_swizzleless_move(alu_instr))
      456:      488:  117:      return false;
        -:        -:  118:
       83:       87:  119:   if (alu_instr->src[0].src.ssa->num_components != num_components)
    #####:    #####:  120:      return false;
        -:        -:  121:
       83:       87:  122:   if (parent_instr) {
       81:       81:  123:      nir_instr_rewrite_src(parent_instr, src,
        -:        -:  124:                            nir_src_for_ssa(alu_instr->src[0].src.ssa));
        -:        -:  125:   } else {
        2:        6:  126:      assert(src == &parent_if->condition);
        2:        6:  127:      nir_if_rewrite_condition(parent_if,
        -:        -:  128:                               nir_src_for_ssa(alu_instr->src[0].src.ssa));
        -:        -:  129:   }
        -:        -:  130:
       83:       87:  131:   return true;
        -:        -:  132:}
        -:        -:  133:
        -:        -:  134:static bool
     3870:     4094:  135:copy_prop_alu_src(nir_alu_instr *parent_alu_instr, unsigned index)
        -:        -:  136:{
     3870:     4094:  137:   nir_alu_src *src = &parent_alu_instr->src[index];
     3870:     4094:  138:   if (!src->src.is_ssa) {
    #####:    #####:  139:      if (src->src.reg.indirect)
    #####:    #####:  140:         return copy_prop_src(src->src.reg.indirect, &parent_alu_instr->instr,
        -:        -:  141:                              NULL, 1);
    #####:    #####:  142:      return false;
        -:        -:  143:   }
        -:        -:  144:
     3870:     4094:  145:   nir_instr *src_instr =  src->src.ssa->parent_instr;
     3870:     4094:  146:   if (src_instr->type != nir_instr_type_alu)
     1928:     2058:  147:      return false;
        -:        -:  148:
     1942:     2036:  149:   nir_alu_instr *alu_instr = nir_instr_as_alu(src_instr);
     1942:     2036:  150:   if (!is_move(alu_instr) && !is_vec(alu_instr))
     1479:     1545:  151:      return false;
        -:        -:  152:
        -:        -:  153:   nir_ssa_def *def;
      463:      491:  154:   unsigned new_swizzle[4] = {0, 0, 0, 0};
        -:        -:  155:
      913:      969:  156:   if (alu_instr->op == nir_op_fmov ||
      450:      478:  157:       alu_instr->op == nir_op_imov) {
     2075:     2165:  158:      for (unsigned i = 0; i < 4; i++)
     1660:     1732:  159:         new_swizzle[i] = alu_instr->src[0].swizzle[src->swizzle[i]];
      415:      433:  160:      def = alu_instr->src[0].src.ssa;
        -:        -:  161:   } else {
       48:       58:  162:      def = NULL;
        -:        -:  163:
      228:      278:  164:      for (unsigned i = 0; i < 4; i++) {
      186:      226:  165:         if (!nir_alu_instr_channel_used(parent_alu_instr, index, i))
      126:      156:  166:            continue;
        -:        -:  167:
       60:       70:  168:         nir_ssa_def *new_def = alu_instr->src[src->swizzle[i]].src.ssa;
       60:       70:  169:         if (def == NULL)
       48:       58:  170:            def = new_def;
        -:        -:  171:         else {
       12:       12:  172:            if (def != new_def)
        6:        6:  173:               return false;
        -:        -:  174:         }
       54:       64:  175:         new_swizzle[i] = alu_instr->src[src->swizzle[i]].swizzle[0];
        -:        -:  176:      }
        -:        -:  177:   }
        -:        -:  178:
     2285:     2425:  179:   for (unsigned i = 0; i < 4; i++)
     1828:     1940:  180:      src->swizzle[i] = new_swizzle[i];
        -:        -:  181:
      457:      485:  182:   nir_instr_rewrite_src(&parent_alu_instr->instr, &src->src,
        -:        -:  183:                         nir_src_for_ssa(def));
        -:        -:  184:
      457:      485:  185:   return true;
        -:        -:  186:}
        -:        -:  187:
        -:        -:  188:static bool
     2454:     2609:  189:copy_prop_dest(nir_dest *dest, nir_instr *instr)
        -:        -:  190:{
     2454:     2609:  191:   if (!dest->is_ssa && dest->reg.indirect)
    #####:    #####:  192:      return copy_prop_src(dest->reg.indirect, instr, NULL, 1);
        -:        -:  193:
     2454:     2609:  194:   return false;
        -:        -:  195:}
        -:        -:  196:
        -:        -:  197:static bool
      268:      292:  198:copy_prop_deref_var(nir_instr *instr, nir_deref_var *deref_var)
        -:        -:  199:{
      268:      292:  200:   if (!deref_var)
    #####:    #####:  201:      return false;
        -:        -:  202:
      268:      292:  203:   bool progress = false;
      700:      748:  204:   for (nir_deref *deref = deref_var->deref.child;
      164:      164:  205:        deref; deref = deref->child) {
      164:      164:  206:      if (deref->deref_type != nir_deref_type_array)
    #####:    #####:  207:         continue;
        -:        -:  208:
      164:      164:  209:      nir_deref_array *arr = nir_deref_as_array(deref);
      164:      164:  210:      if (arr->deref_array_type != nir_deref_array_type_indirect)
      164:      164:  211:         continue;
        -:        -:  212:
    #####:    #####:  213:      while (copy_prop_src(&arr->indirect, instr, NULL, 1))
    #####:    #####:  214:         progress = true;
        -:        -:  215:   }
      268:      292:  216:   return progress;
        -:        -:  217:}
        -:        -:  218:
        -:        -:  219:static bool
     3547:     3934:  220:copy_prop_instr(nir_instr *instr)
        -:        -:  221:{
     3547:     3934:  222:   bool progress = false;
     3547:     3934:  223:   switch (instr->type) {
        -:        -:  224:   case nir_instr_type_alu: {
     2099:     2210:  225:      nir_alu_instr *alu_instr = nir_instr_as_alu(instr);
        -:        -:  226:
     5512:     5819:  227:      for (unsigned i = 0; i < nir_op_infos[alu_instr->op].num_inputs; i++)
     7283:     7703:  228:         while (copy_prop_alu_src(alu_instr, i))
      457:      485:  229:            progress = true;
        -:        -:  230:
     4198:     4420:  231:      while (copy_prop_dest(&alu_instr->dest.dest, instr))
    #####:    #####:  232:         progress = true;
        -:        -:  233:
     2099:     2210:  234:      return progress;
        -:        -:  235:   }
        -:        -:  236:
        -:        -:  237:   case nir_instr_type_tex: {
    #####:    #####:  238:      nir_tex_instr *tex = nir_instr_as_tex(instr);
    #####:    #####:  239:      for (unsigned i = 0; i < tex->num_srcs; i++) {
    #####:    #####:  240:         unsigned num_components = nir_tex_instr_src_size(tex, i);
    #####:    #####:  241:         while (copy_prop_src(&tex->src[i].src, instr, NULL, num_components))
    #####:    #####:  242:            progress = true;
        -:        -:  243:      }
        -:        -:  244:
    #####:    #####:  245:      if (copy_prop_deref_var(instr, tex->texture))
    #####:    #####:  246:         progress = true;
    #####:    #####:  247:      if (copy_prop_deref_var(instr, tex->sampler))
    #####:    #####:  248:         progress = true;
        -:        -:  249:
    #####:    #####:  250:      while (copy_prop_dest(&tex->dest, instr))
    #####:    #####:  251:         progress = true;
        -:        -:  252:
    #####:    #####:  253:      return progress;
        -:        -:  254:   }
        -:        -:  255:
        -:        -:  256:   case nir_instr_type_intrinsic: {
      425:      469:  257:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
     1077:     1185:  258:      for (unsigned i = 0;
      227:      247:  259:           i < nir_intrinsic_infos[intrin->intrinsic].num_srcs; i++) {
      227:      247:  260:         unsigned num_components =
      227:      247:  261:            nir_intrinsic_infos[intrin->intrinsic].src_components[i];
      227:      247:  262:         if (!num_components)
       68:       68:  263:            num_components = intrin->num_components;
        -:        -:  264:
      457:      497:  265:         while (copy_prop_src(&intrin->src[i], instr, NULL, num_components))
        3:        3:  266:            progress = true;
        -:        -:  267:      }
        -:        -:  268:
     1118:     1230:  269:      for (unsigned i = 0;
      268:      292:  270:           i < nir_intrinsic_infos[intrin->intrinsic].num_variables; i++) {
      268:      292:  271:         if (copy_prop_deref_var(instr, intrin->variables[i]))
    #####:    #####:  272:            progress = true;
        -:        -:  273:      }
        -:        -:  274:
      425:      469:  275:      if (nir_intrinsic_infos[intrin->intrinsic].has_dest) {
      710:      798:  276:         while (copy_prop_dest(&intrin->dest, instr))
    #####:    #####:  277:            progress = true;
        -:        -:  278:      }
        -:        -:  279:
      425:      469:  280:      return progress;
        -:        -:  281:   }
        -:        -:  282:
        -:        -:  283:   case nir_instr_type_phi: {
      395:      531:  284:      nir_phi_instr *phi = nir_instr_as_phi(instr);
      395:      531:  285:      assert(phi->dest.is_ssa);
      395:      531:  286:      unsigned num_components = phi->dest.ssa.num_components;
     1185:     1593:  287:      nir_foreach_phi_src(src, phi) {
     1658:     2202:  288:         while (copy_prop_src(&src->src, instr, NULL, num_components))
       78:       78:  289:            progress = true;
        -:        -:  290:      }
        -:        -:  291:
      395:      531:  292:      return progress;
        -:        -:  293:   }
        -:        -:  294:
        -:        -:  295:   default:
      628:      724:  296:      return false;
        -:        -:  297:   }
        -:        -:  298:}
        -:        -:  299:
        -:        -:  300:static bool
      187:      255:  301:copy_prop_if(nir_if *if_stmt)
        -:        -:  302:{
      187:      255:  303:   return copy_prop_src(&if_stmt->condition, NULL, if_stmt, 1);
        -:        -:  304:}
        -:        -:  305:
        -:        -:  306:static bool
       59:       59:  307:nir_copy_prop_impl(nir_function_impl *impl)
        -:        -:  308:{
       59:       59:  309:   bool progress = false;
        -:        -:  310:
      751:     1023:  311:   nir_foreach_block(block, impl) {
     4239:     4898:  312:      nir_foreach_instr(instr, block) {
     3547:     3934:  313:         if (copy_prop_instr(instr))
      427:      449:  314:            progress = true;
        -:        -:  315:      }
        -:        -:  316:
      692:      964:  317:      nir_if *if_stmt = nir_block_get_following_if(block);
      692:      964:  318:      if (if_stmt && copy_prop_if(if_stmt))
        2:        6:  319:         progress = true;
        -:        -:  320:      }
        -:        -:  321:
       59:       59:  322:   if (progress) {
        9:       10:  323:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  324:                                  nir_metadata_dominance);
        -:        -:  325:   }
        -:        -:  326:
       59:       59:  327:   return progress;
        -:        -:  328:}
        -:        -:  329:
        -:        -:  330:bool
       59:       59:  331:nir_copy_prop(nir_shader *shader)
        -:        -:  332:{
       59:       59:  333:   bool progress = false;
        -:        -:  334:
      118:      118:  335:   nir_foreach_function(function, shader) {
       59:       59:  336:      if (function->impl && nir_copy_prop_impl(function->impl))
        9:       10:  337:         progress = true;
        -:        -:  338:   }
        -:        -:  339:
       59:       59:  340:   return progress;
        -:        -:  341:}

src/compiler/nir_opt_copy_prop_vars.c.gcov

        -:        -:    0:Source:nir/nir_opt_copy_prop_vars.c
        -:        -:    0:Graph:nir/.libs/nir_opt_copy_prop_vars.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_copy_prop_vars.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:#include "util/bitscan.h"
        -:        -:   28:
        -:        -:   29:/**
        -:        -:   30: * Variable-based copy propagation
        -:        -:   31: *
        -:        -:   32: * Normally, NIR trusts in SSA form for most of its copy-propagation needs.
        -:        -:   33: * However, there are cases, especially when dealing with indirects, where SSA
        -:        -:   34: * won't help you.  This pass is for those times.  Specifically, it handles
        -:        -:   35: * the following things that the rest of NIR can't:
        -:        -:   36: *
        -:        -:   37: *  1) Copy-propagation on variables that have indirect access.  This includes
        -:        -:   38: *     propagating from indirect stores into indirect loads.
        -:        -:   39: *
        -:        -:   40: *  2) Dead code elimination of store_var and copy_var intrinsics based on
        -:        -:   41: *     killed destination values.
        -:        -:   42: *
        -:        -:   43: *  3) Removal of redundant load_var intrinsics.  We can't trust regular CSE
        -:        -:   44: *     to do this because it isn't aware of variable writes that may alias the
        -:        -:   45: *     value and make the former load invalid.
        -:        -:   46: *
        -:        -:   47: * Unfortunately, properly handling all of those cases makes this path rather
        -:        -:   48: * complex.  In order to avoid additional complexity, this pass is entirely
        -:        -:   49: * block-local.  If we tried to make it global, the data-flow analysis would
        -:        -:   50: * rapidly get out of hand.  Fortunately, for anything that is only ever
        -:        -:   51: * accessed directly, we get SSA based copy-propagation which is extremely
        -:        -:   52: * powerful so this isn't that great a loss.
        -:        -:   53: */
        -:        -:   54:
        -:        -:   55:struct value {
        -:        -:   56:   bool is_ssa;
        -:        -:   57:   union {
        -:        -:   58:      nir_ssa_def *ssa[4];
        -:        -:   59:      nir_deref_var *deref;
        -:        -:   60:   };
        -:        -:   61:};
        -:        -:   62:
        -:        -:   63:struct copy_entry {
        -:        -:   64:   struct list_head link;
        -:        -:   65:
        -:        -:   66:   nir_instr *store_instr[4];
        -:        -:   67:
        -:        -:   68:   unsigned comps_may_be_read;
        -:        -:   69:   struct value src;
        -:        -:   70:
        -:        -:   71:   nir_deref_var *dst;
        -:        -:   72:};
        -:        -:   73:
        -:        -:   74:struct copy_prop_var_state {
        -:        -:   75:   nir_shader *shader;
        -:        -:   76:
        -:        -:   77:   void *mem_ctx;
        -:        -:   78:
        -:        -:   79:   struct list_head copies;
        -:        -:   80:
        -:        -:   81:   /* We're going to be allocating and deleting a lot of copy entries so we'll
        -:        -:   82:    * keep a free list to avoid thrashing malloc too badly.
        -:        -:   83:    */
        -:        -:   84:   struct list_head copy_free_list;
        -:        -:   85:
        -:        -:   86:   bool progress;
        -:        -:   87:};
        -:        -:   88:
        -:        -:   89:static struct copy_entry *
      133:      145:   90:copy_entry_create(struct copy_prop_var_state *state,
        -:        -:   91:                  nir_deref_var *dst_deref)
        -:        -:   92:{
        -:        -:   93:   struct copy_entry *entry;
      133:      145:   94:   if (!list_empty(&state->copy_free_list)) {
       70:       82:   95:      struct list_head *item = state->copy_free_list.next;
       70:       82:   96:      list_del(item);
       70:       82:   97:      entry = LIST_ENTRY(struct copy_entry, item, link);
       70:       82:   98:      memset(entry, 0, sizeof(*entry));
        -:        -:   99:   } else {
       63:       63:  100:      entry = rzalloc(state->mem_ctx, struct copy_entry);
        -:        -:  101:   }
        -:        -:  102:
      133:      145:  103:   entry->dst = dst_deref;
      133:      145:  104:   list_add(&entry->link, &state->copies);
        -:        -:  105:
      133:      145:  106:   return entry;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:static void
       82:       94:  110:copy_entry_remove(struct copy_prop_var_state *state, struct copy_entry *entry)
        -:        -:  111:{
       82:       94:  112:   list_del(&entry->link);
       82:       94:  113:   list_add(&entry->link, &state->copy_free_list);
       82:       94:  114:}
        -:        -:  115:
        -:        -:  116:enum deref_compare_result {
        -:        -:  117:   derefs_equal_bit = (1 << 0),
        -:        -:  118:   derefs_may_alias_bit = (1 << 1),
        -:        -:  119:   derefs_a_contains_b_bit = (1 << 2),
        -:        -:  120:   derefs_b_contains_a_bit = (1 << 3),
        -:        -:  121:};
        -:        -:  122:
        -:        -:  123:/** Returns true if the storage referrenced to by deref completely contains
        -:        -:  124: * the storage referenced by sub.
        -:        -:  125: *
        -:        -:  126: * NOTE: This is fairly general and could be moved to core NIR if someone else
        -:        -:  127: * ever needs it.
        -:        -:  128: */
        -:        -:  129:static enum deref_compare_result
      347:      347:  130:compare_derefs(nir_deref_var *a, nir_deref_var *b)
        -:        -:  131:{
      347:      347:  132:   if (a->var != b->var)
      209:      209:  133:      return 0;
        -:        -:  134:
        -:        -:  135:   /* Start off assuming they fully compare.  We ignore equality for now.  In
        -:        -:  136:    * the end, we'll determine that by containment.
        -:        -:  137:    */
      138:      138:  138:   enum deref_compare_result result = derefs_may_alias_bit |
        -:        -:  139:                                      derefs_a_contains_b_bit |
        -:        -:  140:                                      derefs_b_contains_a_bit;
        -:        -:  141:
      138:      138:  142:   nir_deref *a_tail = &a->deref;
      138:      138:  143:   nir_deref *b_tail = &b->deref;
      291:      291:  144:   while (a_tail->child && b_tail->child) {
      129:      129:  145:      a_tail = a_tail->child;
      129:      129:  146:      b_tail = b_tail->child;
        -:        -:  147:
      129:      129:  148:      assert(a_tail->deref_type == b_tail->deref_type);
      129:      129:  149:      switch (a_tail->deref_type) {
        -:        -:  150:      case nir_deref_type_array: {
      129:      129:  151:         nir_deref_array *a_arr = nir_deref_as_array(a_tail);
      129:      129:  152:         nir_deref_array *b_arr = nir_deref_as_array(b_tail);
        -:        -:  153:
      258:      258:  154:         if (a_arr->deref_array_type == nir_deref_array_type_direct &&
      129:      129:  155:             b_arr->deref_array_type == nir_deref_array_type_direct) {
        -:        -:  156:            /* If they're both direct and have different offsets, they
        -:        -:  157:             * don't even alias much less anything else.
        -:        -:  158:             */
      144:      144:  159:            if (a_arr->base_offset != b_arr->base_offset)
      114:      114:  160:               return 0;
    #####:    #####:  161:         } else if (a_arr->deref_array_type == nir_deref_array_type_wildcard) {
    #####:    #####:  162:            if (b_arr->deref_array_type != nir_deref_array_type_wildcard)
    #####:    #####:  163:               result &= ~derefs_b_contains_a_bit;
    #####:    #####:  164:         } else if (b_arr->deref_array_type == nir_deref_array_type_wildcard) {
    #####:    #####:  165:            if (a_arr->deref_array_type != nir_deref_array_type_wildcard)
    #####:    #####:  166:               result &= ~derefs_a_contains_b_bit;
    #####:    #####:  167:         } else if (a_arr->deref_array_type == nir_deref_array_type_indirect &&
    #####:    #####:  168:                    b_arr->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####:  169:            assert(a_arr->indirect.is_ssa && b_arr->indirect.is_ssa);
    #####:    #####:  170:            if (a_arr->indirect.ssa == b_arr->indirect.ssa) {
        -:        -:  171:               /* If they're different constant offsets from the same indirect
        -:        -:  172:                * then they don't alias at all.
        -:        -:  173:                */
    #####:    #####:  174:               if (a_arr->base_offset != b_arr->base_offset)
    #####:    #####:  175:                  return 0;
        -:        -:  176:               /* Otherwise the indirect and base both match */
        -:        -:  177:            } else {
        -:        -:  178:               /* If they're have different indirect offsets then we can't
        -:        -:  179:                * prove anything about containment.
        -:        -:  180:                */
    #####:    #####:  181:               result &= ~(derefs_a_contains_b_bit | derefs_b_contains_a_bit);
        -:        -:  182:            }
        -:        -:  183:         } else {
        -:        -:  184:            /* In this case, one is indirect and the other direct so we can't
        -:        -:  185:             * prove anything about containment.
        -:        -:  186:             */
    #####:    #####:  187:            result &= ~(derefs_a_contains_b_bit | derefs_b_contains_a_bit);
        -:        -:  188:         }
       15:       15:  189:         break;
        -:        -:  190:      }
        -:        -:  191:
        -:        -:  192:      case nir_deref_type_struct: {
    #####:    #####:  193:         nir_deref_struct *a_struct = nir_deref_as_struct(a_tail);
    #####:    #####:  194:         nir_deref_struct *b_struct = nir_deref_as_struct(b_tail);
        -:        -:  195:
        -:        -:  196:         /* If they're different struct members, they don't even alias */
    #####:    #####:  197:         if (a_struct->index != b_struct->index)
    #####:    #####:  198:            return 0;
    #####:    #####:  199:         break;
        -:        -:  200:      }
        -:        -:  201:
        -:        -:  202:      default:
    #####:    #####:  203:         unreachable("Invalid deref type");
        -:        -:  204:      }
        -:        -:  205:   }
        -:        -:  206:
        -:        -:  207:   /* If a is longer than b, then it can't contain b */
       24:       24:  208:   if (a_tail->child)
    #####:    #####:  209:      result &= ~derefs_a_contains_b_bit;
       24:       24:  210:   if (b_tail->child)
    #####:    #####:  211:      result &= ~derefs_b_contains_a_bit;
        -:        -:  212:
        -:        -:  213:   /* If a contains b and b contains a they must be equal. */
       24:       24:  214:   if ((result & derefs_a_contains_b_bit) && (result & derefs_b_contains_a_bit))
       24:       24:  215:      result |= derefs_equal_bit;
        -:        -:  216:
       24:       24:  217:   return result;
        -:        -:  218:}
        -:        -:  219:
        -:        -:  220:static void
    #####:    #####:  221:remove_dead_writes(struct copy_prop_var_state *state,
        -:        -:  222:                   struct copy_entry *entry, unsigned write_mask)
        -:        -:  223:{
        -:        -:  224:   /* We're overwriting another entry.  Some of it's components may not
        -:        -:  225:    * have been read yet and, if that's the case, we may be able to delete
        -:        -:  226:    * some instructions but we have to be careful.
        -:        -:  227:    */
    #####:    #####:  228:   unsigned dead_comps = write_mask & ~entry->comps_may_be_read;
        -:        -:  229:
    #####:    #####:  230:   for (unsigned mask = dead_comps; mask;) {
    #####:    #####:  231:      unsigned i = u_bit_scan(&mask);
        -:        -:  232:
    #####:    #####:  233:      nir_instr *instr = entry->store_instr[i];
        -:        -:  234:
        -:        -:  235:      /* We may have already deleted it on a previous iteration */
    #####:    #####:  236:      if (!instr)
    #####:    #####:  237:         continue;
        -:        -:  238:
        -:        -:  239:      /* See if this instr is used anywhere that it's not dead */
    #####:    #####:  240:      bool keep = false;
    #####:    #####:  241:      for (unsigned j = 0; j < 4; j++) {
    #####:    #####:  242:         if (entry->store_instr[j] == instr) {
    #####:    #####:  243:            if (dead_comps & (1 << j)) {
    #####:    #####:  244:               entry->store_instr[j] = NULL;
        -:        -:  245:            } else {
    #####:    #####:  246:               keep = true;
        -:        -:  247:            }
        -:        -:  248:         }
        -:        -:  249:      }
        -:        -:  250:
    #####:    #####:  251:      if (!keep) {
    #####:    #####:  252:         nir_instr_remove(instr);
    #####:    #####:  253:         state->progress = true;
        -:        -:  254:      }
        -:        -:  255:   }
    #####:    #####:  256:}
        -:        -:  257:
        -:        -:  258:static struct copy_entry *
      243:      267:  259:lookup_entry_for_deref(struct copy_prop_var_state *state,
        -:        -:  260:                       nir_deref_var *deref,
        -:        -:  261:                       enum deref_compare_result allowed_comparisons)
        -:        -:  262:{
      423:      447:  263:   list_for_each_entry(struct copy_entry, iter, &state->copies, link) {
      196:      196:  264:      if (compare_derefs(iter->dst, deref) & allowed_comparisons)
       16:       16:  265:         return iter;
        -:        -:  266:   }
        -:        -:  267:
      227:      251:  268:   return NULL;
        -:        -:  269:}
        -:        -:  270:
        -:        -:  271:static void
      122:      134:  272:mark_aliased_entries_as_read(struct copy_prop_var_state *state,
        -:        -:  273:                             nir_deref_var *deref, unsigned components)
        -:        -:  274:{
      220:      232:  275:   list_for_each_entry(struct copy_entry, iter, &state->copies, link) {
       98:       98:  276:      if (compare_derefs(iter->dst, deref) & derefs_may_alias_bit)
        8:        8:  277:         iter->comps_may_be_read |= components;
        -:        -:  278:   }
      122:      134:  279:}
        -:        -:  280:
        -:        -:  281:static struct copy_entry *
       20:       20:  282:get_entry_and_kill_aliases(struct copy_prop_var_state *state,
        -:        -:  283:                           nir_deref_var *deref,
        -:        -:  284:                           unsigned write_mask)
        -:        -:  285:{
       20:       20:  286:   struct copy_entry *entry = NULL;
       72:       72:  287:   list_for_each_entry_safe(struct copy_entry, iter, &state->copies, link) {
       52:       52:  288:      if (!iter->src.is_ssa) {
        -:        -:  289:         /* If this write aliases the source of some entry, get rid of it */
    #####:    #####:  290:         if (compare_derefs(iter->src.deref, deref) & derefs_may_alias_bit) {
    #####:    #####:  291:            copy_entry_remove(state, iter);
    #####:    #####:  292:            continue;
        -:        -:  293:         }
        -:        -:  294:      }
        -:        -:  295:
       52:       52:  296:      enum deref_compare_result comp = compare_derefs(iter->dst, deref);
        -:        -:  297:      /* This is a store operation.  If we completely overwrite some value, we
        -:        -:  298:       * want to delete any dead writes that may be present.
        -:        -:  299:       */
       52:       52:  300:      if (comp & derefs_b_contains_a_bit)
    #####:    #####:  301:         remove_dead_writes(state, iter, write_mask);
        -:        -:  302:
       52:       52:  303:      if (comp & derefs_equal_bit) {
    #####:    #####:  304:         assert(entry == NULL);
    #####:    #####:  305:         entry = iter;
       52:       52:  306:      } else if (comp & derefs_may_alias_bit) {
    #####:    #####:  307:         copy_entry_remove(state, iter);
        -:        -:  308:      }
        -:        -:  309:   }
        -:        -:  310:
       20:       20:  311:   if (entry == NULL)
       20:       20:  312:      entry = copy_entry_create(state, deref);
        -:        -:  313:
       20:       20:  314:   return entry;
        -:        -:  315:}
        -:        -:  316:
        -:        -:  317:static void
    #####:    #####:  318:apply_barrier_for_modes(struct copy_prop_var_state *state,
        -:        -:  319:                        nir_variable_mode modes)
        -:        -:  320:{
    #####:    #####:  321:   list_for_each_entry_safe(struct copy_entry, iter, &state->copies, link) {
    #####:    #####:  322:      if ((iter->dst->var->data.mode & modes) ||
    #####:    #####:  323:          (!iter->src.is_ssa && (iter->src.deref->var->data.mode & modes)))
    #####:    #####:  324:         copy_entry_remove(state, iter);
        -:        -:  325:   }
    #####:    #####:  326:}
        -:        -:  327:
        -:        -:  328:static void
      141:      153:  329:store_to_entry(struct copy_prop_var_state *state, struct copy_entry *entry,
        -:        -:  330:               const struct value *value, unsigned write_mask,
        -:        -:  331:               nir_instr *store_instr)
        -:        -:  332:{
      141:      153:  333:   entry->comps_may_be_read &= ~write_mask;
      141:      153:  334:   if (value->is_ssa) {
      140:      152:  335:      entry->src.is_ssa = true;
        -:        -:  336:      /* Only overwrite the written components */
      700:      760:  337:      for (unsigned i = 0; i < 4; i++) {
      560:      608:  338:         if (write_mask & (1 << i)) {
      317:      365:  339:            entry->store_instr[i] = store_instr;
      317:      365:  340:            entry->src.ssa[i] = value->ssa[i];
        -:        -:  341:         }
        -:        -:  342:      }
        -:        -:  343:   } else {
        -:        -:  344:      /* Non-ssa stores always write everything */
        1:        1:  345:      entry->src.is_ssa = false;
        1:        1:  346:      entry->src.deref = value->deref;
        5:        5:  347:      for (unsigned i = 0; i < 4; i++)
        4:        4:  348:         entry->store_instr[i] = store_instr;
        -:        -:  349:   }
      141:      153:  350:}
        -:        -:  351:
        -:        -:  352:/* Remove an instruction and return a cursor pointing to where it was */
        -:        -:  353:static nir_cursor
        8:        8:  354:instr_remove_cursor(nir_instr *instr)
        -:        -:  355:{
        -:        -:  356:   nir_cursor cursor;
        8:        8:  357:   nir_instr *prev = nir_instr_prev(instr);
        8:        8:  358:   if (prev) {
        8:        8:  359:      cursor = nir_after_instr(prev);
        -:        -:  360:   } else {
    #####:    #####:  361:      cursor = nir_before_block(instr->block);
        -:        -:  362:   }
        8:        8:  363:   nir_instr_remove(instr);
        8:        8:  364:   return cursor;
        -:        -:  365:}
        -:        -:  366:
        -:        -:  367:/* Do a "load" from an SSA-based entry return it in "value" as a value with a
        -:        -:  368: * single SSA def.  Because an entry could reference up to 4 different SSA
        -:        -:  369: * defs, a vecN operation may be inserted to combine them into a single SSA
        -:        -:  370: * def before handing it back to the caller.  If the load instruction is no
        -:        -:  371: * longer needed, it is removed and nir_instr::block is set to NULL.  (It is
        -:        -:  372: * possible, in some cases, for the load to be used in the vecN operation in
        -:        -:  373: * which case it isn't deleted.)
        -:        -:  374: */
        -:        -:  375:static bool
        8:        8:  376:load_from_ssa_entry_value(struct copy_prop_var_state *state,
        -:        -:  377:                          struct copy_entry *entry,
        -:        -:  378:                          nir_builder *b, nir_intrinsic_instr *intrin,
        -:        -:  379:                          struct value *value)
        -:        -:  380:{
        8:        8:  381:   *value = entry->src;
        8:        8:  382:   assert(value->is_ssa);
        -:        -:  383:
        8:        8:  384:   const struct glsl_type *type = nir_deref_tail(&entry->dst->deref)->type;
        8:        8:  385:   unsigned num_components = glsl_get_vector_elements(type);
        -:        -:  386:
        8:        8:  387:   uint8_t available = 0;
        8:        8:  388:   bool all_same = true;
       25:       25:  389:   for (unsigned i = 0; i < num_components; i++) {
       17:       17:  390:      if (value->ssa[i])
       17:       17:  391:         available |= (1 << i);
        -:        -:  392:
       17:       17:  393:      if (value->ssa[i] != value->ssa[0])
    #####:    #####:  394:         all_same = false;
        -:        -:  395:   }
        -:        -:  396:
        8:        8:  397:   if (all_same) {
        -:        -:  398:      /* Our work here is done */
        8:        8:  399:      b->cursor = instr_remove_cursor(&intrin->instr);
        8:        8:  400:      intrin->instr.block = NULL;
        8:        8:  401:      return true;
        -:        -:  402:   }
        -:        -:  403:
    #####:    #####:  404:   if (available != (1 << num_components) - 1 &&
    #####:    #####:  405:       intrin->intrinsic == nir_intrinsic_load_var &&
    #####:    #####:  406:       (available & nir_ssa_def_components_read(&intrin->dest.ssa)) == 0) {
        -:        -:  407:      /* If none of the components read are available as SSA values, then we
        -:        -:  408:       * should just bail.  Otherwise, we would end up replacing the uses of
        -:        -:  409:       * the load_var a vecN() that just gathers up its components.
        -:        -:  410:       */
    #####:    #####:  411:      return false;
        -:        -:  412:   }
        -:        -:  413:
    #####:    #####:  414:   b->cursor = nir_after_instr(&intrin->instr);
        -:        -:  415:
    #####:    #####:  416:   nir_ssa_def *load_def =
    #####:    #####:  417:      intrin->intrinsic == nir_intrinsic_load_var ? &intrin->dest.ssa : NULL;
        -:        -:  418:
    #####:    #####:  419:   bool keep_intrin = false;
        -:        -:  420:   nir_ssa_def *comps[4];
    #####:    #####:  421:   for (unsigned i = 0; i < num_components; i++) {
    #####:    #####:  422:      if (value->ssa[i]) {
    #####:    #####:  423:         comps[i] = nir_channel(b, value->ssa[i], i);
        -:        -:  424:      } else {
        -:        -:  425:         /* We don't have anything for this component in our
        -:        -:  426:          * list.  Just re-use a channel from the load.
        -:        -:  427:          */
    #####:    #####:  428:         if (load_def == NULL)
    #####:    #####:  429:            load_def = nir_load_deref_var(b, entry->dst);
        -:        -:  430:
    #####:    #####:  431:         if (load_def->parent_instr == &intrin->instr)
    #####:    #####:  432:            keep_intrin = true;
        -:        -:  433:
    #####:    #####:  434:         comps[i] = nir_channel(b, load_def, i);
        -:        -:  435:      }
        -:        -:  436:   }
        -:        -:  437:
    #####:    #####:  438:   nir_ssa_def *vec = nir_vec(b, comps, num_components);
    #####:    #####:  439:   for (unsigned i = 0; i < num_components; i++)
    #####:    #####:  440:      value->ssa[i] = vec;
        -:        -:  441:
    #####:    #####:  442:   if (!keep_intrin) {
        -:        -:  443:      /* Removing this instruction should not touch the cursor because we
        -:        -:  444:       * created the cursor after the intrinsic and have added at least one
        -:        -:  445:       * instruction (the vec) since then.
        -:        -:  446:       */
    #####:    #####:  447:      assert(b->cursor.instr != &intrin->instr);
    #####:    #####:  448:      nir_instr_remove(&intrin->instr);
    #####:    #####:  449:      intrin->instr.block = NULL;
        -:        -:  450:   }
        -:        -:  451:
    #####:    #####:  452:   return true;
        -:        -:  453:}
        -:        -:  454:
        -:        -:  455:/**
        -:        -:  456: * Specialize the wildcards in a deref chain
        -:        -:  457: *
        -:        -:  458: * This function returns a deref chain identical to \param deref except that
        -:        -:  459: * some of its wildcards are replaced with indices from \param specific.  The
        -:        -:  460: * process is guided by \param guide which references the same type as \param
        -:        -:  461: * specific but has the same wildcard array lengths as \param deref.
        -:        -:  462: */
        -:        -:  463:static nir_deref_var *
    #####:    #####:  464:specialize_wildcards(nir_deref_var *deref,
        -:        -:  465:                     nir_deref_var *guide,
        -:        -:  466:                     nir_deref_var *specific,
        -:        -:  467:                     void *mem_ctx)
        -:        -:  468:{
    #####:    #####:  469:   nir_deref_var *ret = nir_deref_var_create(mem_ctx, deref->var);
        -:        -:  470:
    #####:    #####:  471:   nir_deref *deref_tail = deref->deref.child;
    #####:    #####:  472:   nir_deref *guide_tail = guide->deref.child;
    #####:    #####:  473:   nir_deref *spec_tail = specific->deref.child;
    #####:    #####:  474:   nir_deref *ret_tail = &ret->deref;
    #####:    #####:  475:   while (deref_tail) {
    #####:    #####:  476:      switch (deref_tail->deref_type) {
        -:        -:  477:      case nir_deref_type_array: {
    #####:    #####:  478:         nir_deref_array *deref_arr = nir_deref_as_array(deref_tail);
        -:        -:  479:
    #####:    #####:  480:         nir_deref_array *ret_arr = nir_deref_array_create(ret_tail);
    #####:    #####:  481:         ret_arr->deref.type = deref_arr->deref.type;
    #####:    #####:  482:         ret_arr->deref_array_type = deref_arr->deref_array_type;
        -:        -:  483:
    #####:    #####:  484:         switch (deref_arr->deref_array_type) {
        -:        -:  485:         case nir_deref_array_type_direct:
    #####:    #####:  486:            ret_arr->base_offset = deref_arr->base_offset;
    #####:    #####:  487:            break;
        -:        -:  488:         case nir_deref_array_type_indirect:
    #####:    #####:  489:            ret_arr->base_offset = deref_arr->base_offset;
    #####:    #####:  490:            assert(deref_arr->indirect.is_ssa);
    #####:    #####:  491:            ret_arr->indirect = deref_arr->indirect;
    #####:    #####:  492:            break;
        -:        -:  493:         case nir_deref_array_type_wildcard:
        -:        -:  494:            /* This is where things get tricky.  We have to search through
        -:        -:  495:             * the entry deref to find its corresponding wildcard and fill
        -:        -:  496:             * this slot in with the value from the src.
        -:        -:  497:             */
    #####:    #####:  498:            while (guide_tail) {
    #####:    #####:  499:               if (guide_tail->deref_type == nir_deref_type_array &&
    #####:    #####:  500:                   nir_deref_as_array(guide_tail)->deref_array_type ==
        -:        -:  501:                   nir_deref_array_type_wildcard)
    #####:    #####:  502:                  break;
        -:        -:  503:
    #####:    #####:  504:               guide_tail = guide_tail->child;
    #####:    #####:  505:               spec_tail = spec_tail->child;
        -:        -:  506:            }
        -:        -:  507:
    #####:    #####:  508:            nir_deref_array *spec_arr = nir_deref_as_array(spec_tail);
    #####:    #####:  509:            ret_arr->deref_array_type = spec_arr->deref_array_type;
    #####:    #####:  510:            ret_arr->base_offset = spec_arr->base_offset;
    #####:    #####:  511:            ret_arr->indirect = spec_arr->indirect;
        -:        -:  512:         }
        -:        -:  513:
    #####:    #####:  514:         ret_tail->child = &ret_arr->deref;
    #####:    #####:  515:         break;
        -:        -:  516:      }
        -:        -:  517:      case nir_deref_type_struct: {
    #####:    #####:  518:         nir_deref_struct *deref_struct = nir_deref_as_struct(deref_tail);
        -:        -:  519:
    #####:    #####:  520:         nir_deref_struct *ret_struct =
    #####:    #####:  521:            nir_deref_struct_create(ret_tail, deref_struct->index);
    #####:    #####:  522:         ret_struct->deref.type = deref_struct->deref.type;
        -:        -:  523:
    #####:    #####:  524:         ret_tail->child = &ret_struct->deref;
    #####:    #####:  525:         break;
        -:        -:  526:      }
        -:        -:  527:      case nir_deref_type_var:
    #####:    #####:  528:         unreachable("Invalid deref type");
        -:        -:  529:      }
        -:        -:  530:
    #####:    #####:  531:      deref_tail = deref_tail->child;
    #####:    #####:  532:      ret_tail = ret_tail->child;
        -:        -:  533:   }
        -:        -:  534:
    #####:    #####:  535:   return ret;
        -:        -:  536:}
        -:        -:  537:
        -:        -:  538:/* Do a "load" from an deref-based entry return it in "value" as a value.  The
        -:        -:  539: * deref returned in "value" will always be a fresh copy so the caller can
        -:        -:  540: * steal it and assign it to the instruction directly without copying it
        -:        -:  541: * again.
        -:        -:  542: */
        -:        -:  543:static bool
    #####:    #####:  544:load_from_deref_entry_value(struct copy_prop_var_state *state,
        -:        -:  545:                            struct copy_entry *entry,
        -:        -:  546:                            nir_builder *b, nir_intrinsic_instr *intrin,
        -:        -:  547:                            nir_deref_var *src, struct value *value)
        -:        -:  548:{
    #####:    #####:  549:   *value = entry->src;
        -:        -:  550:
        -:        -:  551:   /* Walk the deref to get the two tails and also figure out if we need to
        -:        -:  552:    * specialize any wildcards.
        -:        -:  553:    */
    #####:    #####:  554:   bool need_to_specialize_wildcards = false;
    #####:    #####:  555:   nir_deref *entry_tail = &entry->dst->deref;
    #####:    #####:  556:   nir_deref *src_tail = &src->deref;
    #####:    #####:  557:   while (entry_tail->child && src_tail->child) {
    #####:    #####:  558:      assert(src_tail->child->deref_type == entry_tail->child->deref_type);
    #####:    #####:  559:      if (src_tail->child->deref_type == nir_deref_type_array) {
    #####:    #####:  560:         nir_deref_array *entry_arr = nir_deref_as_array(entry_tail->child);
    #####:    #####:  561:         nir_deref_array *src_arr = nir_deref_as_array(src_tail->child);
        -:        -:  562:
    #####:    #####:  563:         if (src_arr->deref_array_type != nir_deref_array_type_wildcard &&
    #####:    #####:  564:             entry_arr->deref_array_type == nir_deref_array_type_wildcard)
    #####:    #####:  565:            need_to_specialize_wildcards = true;
        -:        -:  566:      }
        -:        -:  567:
    #####:    #####:  568:      entry_tail = entry_tail->child;
    #####:    #####:  569:      src_tail = src_tail->child;
        -:        -:  570:   }
        -:        -:  571:
        -:        -:  572:   /* If the entry deref is longer than the source deref then it refers to a
        -:        -:  573:    * smaller type and we can't source from it.
        -:        -:  574:    */
    #####:    #####:  575:   assert(entry_tail->child == NULL);
        -:        -:  576:
    #####:    #####:  577:   if (need_to_specialize_wildcards) {
        -:        -:  578:      /* The entry has some wildcards that are not in src.  This means we need
        -:        -:  579:       * to construct a new deref based on the entry but using the wildcards
        -:        -:  580:       * from the source and guided by the entry dst.  Oof.
        -:        -:  581:       */
    #####:    #####:  582:      value->deref = specialize_wildcards(entry->src.deref, entry->dst, src,
        -:        -:  583:                                          state->mem_ctx);
        -:        -:  584:   } else {
        -:        -:  585:      /* We're going to need to make a copy in case we modify it below */
    #####:    #####:  586:      value->deref = nir_deref_var_clone(value->deref, state->mem_ctx);
        -:        -:  587:   }
        -:        -:  588:
    #####:    #####:  589:   if (src_tail->child) {
        -:        -:  590:      /* If our source deref is longer than the entry deref, that's ok because
        -:        -:  591:       * it just means the entry deref needs to be extended a bit.
        -:        -:  592:       */
    #####:    #####:  593:      nir_deref *value_tail = nir_deref_tail(&value->deref->deref);
    #####:    #####:  594:      value_tail->child = nir_deref_clone(src_tail->child, value_tail);
        -:        -:  595:   }
        -:        -:  596:
    #####:    #####:  597:   b->cursor = instr_remove_cursor(&intrin->instr);
        -:        -:  598:
    #####:    #####:  599:   return true;
        -:        -:  600:}
        -:        -:  601:
        -:        -:  602:static bool
      122:      134:  603:try_load_from_entry(struct copy_prop_var_state *state, struct copy_entry *entry,
        -:        -:  604:                    nir_builder *b, nir_intrinsic_instr *intrin,
        -:        -:  605:                    nir_deref_var *src, struct value *value)
        -:        -:  606:{
      122:      134:  607:   if (entry == NULL)
      114:      126:  608:      return false;
        -:        -:  609:
        8:        8:  610:   if (entry->src.is_ssa) {
        8:        8:  611:      return load_from_ssa_entry_value(state, entry, b, intrin, value);
        -:        -:  612:   } else {
    #####:    #####:  613:      return load_from_deref_entry_value(state, entry, b, intrin, src, value);
        -:        -:  614:   }
        -:        -:  615:}
        -:        -:  616:
        -:        -:  617:static void
      328:      456:  618:copy_prop_vars_block(struct copy_prop_var_state *state,
        -:        -:  619:                     nir_builder *b, nir_block *block)
        -:        -:  620:{
        -:        -:  621:   /* Start each block with a blank slate */
      410:      550:  622:   list_for_each_entry_safe(struct copy_entry, iter, &state->copies, link)
       82:       94:  623:      copy_entry_remove(state, iter);
        -:        -:  624:
     2006:     2311:  625:   nir_foreach_instr_safe(instr, block) {
     1678:     1855:  626:      if (instr->type != nir_instr_type_intrinsic)
     1471:     1626:  627:         continue;
        -:        -:  628:
      207:      229:  629:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
      207:      229:  630:      switch (intrin->intrinsic) {
        -:        -:  631:      case nir_intrinsic_barrier:
        -:        -:  632:      case nir_intrinsic_memory_barrier:
        -:        -:  633:         /* If we hit a barrier, we need to trash everything that may possibly
        -:        -:  634:          * be accessible to another thread.  Locals, globals, and things of
        -:        -:  635:          * the like are safe, however.
        -:        -:  636:          */
    #####:    #####:  637:         apply_barrier_for_modes(state, ~(nir_var_local | nir_var_global |
        -:        -:  638:                                          nir_var_shader_in | nir_var_uniform));
    #####:    #####:  639:         break;
        -:        -:  640:
        -:        -:  641:      case nir_intrinsic_emit_vertex:
        -:        -:  642:      case nir_intrinsic_emit_vertex_with_counter:
    #####:    #####:  643:         apply_barrier_for_modes(state, nir_var_shader_out);
    #####:    #####:  644:         break;
        -:        -:  645:
        -:        -:  646:      case nir_intrinsic_load_var: {
      121:      133:  647:         nir_deref_var *src = intrin->variables[0];
        -:        -:  648:
      121:      133:  649:         uint8_t comps_read = nir_ssa_def_components_read(&intrin->dest.ssa);
      121:      133:  650:         mark_aliased_entries_as_read(state, src, comps_read);
        -:        -:  651:
      121:      133:  652:         struct copy_entry *src_entry =
        -:        -:  653:            lookup_entry_for_deref(state, src, derefs_a_contains_b_bit);
        -:        -:  654:         struct value value;
      121:      133:  655:         if (try_load_from_entry(state, src_entry, b, intrin, src, &value)) {
        8:        8:  656:            if (value.is_ssa) {
        -:        -:  657:               /* lookup_load has already ensured that we get a single SSA
        -:        -:  658:                * value that has all of the channels.  We just have to do the
        -:        -:  659:                * rewrite operation.
        -:        -:  660:                */
        8:        8:  661:               if (intrin->instr.block) {
        -:        -:  662:                  /* The lookup left our instruction in-place.  This means it
        -:        -:  663:                   * must have used it to vec up a bunch of different sources.
        -:        -:  664:                   * We need to be careful when rewriting uses so we don't
        -:        -:  665:                   * rewrite the vecN itself.
        -:        -:  666:                   */
    #####:    #####:  667:                  nir_ssa_def_rewrite_uses_after(&intrin->dest.ssa,
        -:        -:  668:                                                 nir_src_for_ssa(value.ssa[0]),
    #####:    #####:  669:                                                 value.ssa[0]->parent_instr);
        -:        -:  670:               } else {
        8:        8:  671:                  nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
        -:        -:  672:                                           nir_src_for_ssa(value.ssa[0]));
        -:        -:  673:               }
        -:        -:  674:            } else {
        -:        -:  675:               /* We're turning it into a load of a different variable */
    #####:    #####:  676:               ralloc_steal(intrin, value.deref);
    #####:    #####:  677:               intrin->variables[0] = value.deref;
        -:        -:  678:
        -:        -:  679:               /* Put it back in again. */
    #####:    #####:  680:               nir_builder_instr_insert(b, instr);
        -:        -:  681:
    #####:    #####:  682:               value.is_ssa = true;
    #####:    #####:  683:               for (unsigned i = 0; i < intrin->num_components; i++)
    #####:    #####:  684:                  value.ssa[i] = &intrin->dest.ssa;
        -:        -:  685:            }
        8:        8:  686:            state->progress = true;
        -:        -:  687:         } else {
      113:      125:  688:            value.is_ssa = true;
      337:      397:  689:            for (unsigned i = 0; i < intrin->num_components; i++)
      224:      272:  690:               value.ssa[i] = &intrin->dest.ssa;
        -:        -:  691:         }
        -:        -:  692:
        -:        -:  693:         /* Now that we have a value, we're going to store it back so that we
        -:        -:  694:          * have the right value next time we come looking for it.  In order
        -:        -:  695:          * to do this, we need an exact match, not just something that
        -:        -:  696:          * contains what we're looking for.
        -:        -:  697:          */
      121:      133:  698:         struct copy_entry *store_entry =
        -:        -:  699:            lookup_entry_for_deref(state, src, derefs_equal_bit);
      121:      133:  700:         if (!store_entry)
      113:      125:  701:            store_entry = copy_entry_create(state, src);
        -:        -:  702:
        -:        -:  703:         /* Set up a store to this entry with the value of the load.  This way
        -:        -:  704:          * we can potentially remove subsequent loads.  However, we use a
        -:        -:  705:          * NULL instruction so we don't try and delete the load on a
        -:        -:  706:          * subsequent store.
        -:        -:  707:          */
      121:      133:  708:         store_to_entry(state, store_entry, &value,
      121:      133:  709:                        ((1 << intrin->num_components) - 1), NULL);
      121:      133:  710:         break;
        -:        -:  711:      }
        -:        -:  712:
        -:        -:  713:      case nir_intrinsic_store_var: {
       19:       19:  714:         struct value value = {
        -:        -:  715:            .is_ssa = true
        -:        -:  716:         };
        -:        -:  717:
       95:       95:  718:         for (unsigned i = 0; i < intrin->num_components; i++)
       76:       76:  719:            value.ssa[i] = intrin->src[0].ssa;
        -:        -:  720:
       19:       19:  721:         nir_deref_var *dst = intrin->variables[0];
       19:       19:  722:         unsigned wrmask = nir_intrinsic_write_mask(intrin);
       19:       19:  723:         struct copy_entry *entry =
        -:        -:  724:            get_entry_and_kill_aliases(state, dst, wrmask);
       19:       19:  725:         store_to_entry(state, entry, &value, wrmask, &intrin->instr);
       19:       19:  726:         break;
        -:        -:  727:      }
        -:        -:  728:
        -:        -:  729:      case nir_intrinsic_copy_var: {
        1:        1:  730:         nir_deref_var *dst = intrin->variables[0];
        1:        1:  731:         nir_deref_var *src = intrin->variables[1];
        -:        -:  732:
        1:        1:  733:         if (compare_derefs(src, dst) & derefs_equal_bit) {
        -:        -:  734:            /* This is a no-op self-copy.  Get rid of it */
    #####:    #####:  735:            nir_instr_remove(instr);
    #####:    #####:  736:            continue;
        -:        -:  737:         }
        -:        -:  738:
        1:        1:  739:         mark_aliased_entries_as_read(state, src, 0xf);
        -:        -:  740:
        1:        1:  741:         struct copy_entry *src_entry =
        -:        -:  742:            lookup_entry_for_deref(state, src, derefs_a_contains_b_bit);
        -:        -:  743:         struct value value;
        1:        1:  744:         if (try_load_from_entry(state, src_entry, b, intrin, src, &value)) {
    #####:    #####:  745:            if (value.is_ssa) {
    #####:    #####:  746:               nir_store_deref_var(b, dst, value.ssa[0], 0xf);
    #####:    #####:  747:               intrin = nir_instr_as_intrinsic(nir_builder_last_instr(b));
        -:        -:  748:            } else {
        -:        -:  749:               /* If this would be a no-op self-copy, don't bother. */
    #####:    #####:  750:               if (compare_derefs(value.deref, dst) & derefs_equal_bit)
    #####:    #####:  751:                  continue;
        -:        -:  752:
        -:        -:  753:               /* Just turn it into a copy of a different deref */
    #####:    #####:  754:               ralloc_steal(intrin, value.deref);
    #####:    #####:  755:               intrin->variables[1] = value.deref;
        -:        -:  756:
        -:        -:  757:               /* Put it back in again. */
    #####:    #####:  758:               nir_builder_instr_insert(b, instr);
        -:        -:  759:            }
        -:        -:  760:
    #####:    #####:  761:            state->progress = true;
        -:        -:  762:         } else {
        1:        1:  763:            value = (struct value) {
        -:        -:  764:               .is_ssa = false,
        -:        -:  765:               { .deref = src },
        -:        -:  766:            };
        -:        -:  767:         }
        -:        -:  768:
        1:        1:  769:         struct copy_entry *dst_entry =
        -:        -:  770:            get_entry_and_kill_aliases(state, dst, 0xf);
        1:        1:  771:         store_to_entry(state, dst_entry, &value, 0xf, &intrin->instr);
        1:        1:  772:         break;
        -:        -:  773:      }
        -:        -:  774:
        -:        -:  775:      default:
       66:       76:  776:         break;
        -:        -:  777:      }
        -:        -:  778:   }
      328:      456:  779:}
        -:        -:  780:
        -:        -:  781:bool
       27:       27:  782:nir_opt_copy_prop_vars(nir_shader *shader)
        -:        -:  783:{
        -:        -:  784:   struct copy_prop_var_state state;
        -:        -:  785:
       27:       27:  786:   state.shader = shader;
       27:       27:  787:   state.mem_ctx = ralloc_context(NULL);
       27:       27:  788:   list_inithead(&state.copies);
       27:       27:  789:   list_inithead(&state.copy_free_list);
        -:        -:  790:
       27:       27:  791:   bool global_progress = false;
       54:       54:  792:   nir_foreach_function(function, shader) {
       27:       27:  793:      if (!function->impl)
    #####:    #####:  794:         continue;
        -:        -:  795:
        -:        -:  796:      nir_builder b;
       27:       27:  797:      nir_builder_init(&b, function->impl);
        -:        -:  798:
       27:       27:  799:      state.progress = false;
      355:      483:  800:      nir_foreach_block(block, function->impl)
      328:      456:  801:         copy_prop_vars_block(&state, &b, block);
        -:        -:  802:
       27:       27:  803:      if (state.progress) {
        2:        2:  804:         nir_metadata_preserve(function->impl, nir_metadata_block_index |
        -:        -:  805:                                               nir_metadata_dominance);
        2:        2:  806:         global_progress = true;
        -:        -:  807:      }
        -:        -:  808:   }
        -:        -:  809:
       27:       27:  810:   ralloc_free(state.mem_ctx);
        -:        -:  811:
       27:       27:  812:   return global_progress;
        -:        -:  813:}

src/compiler/nir_opt_cse.c.gcov

        -:        -:    0:Source:nir/nir_opt_cse.c
        -:        -:    0:Graph:nir/.libs/nir_opt_cse.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   26: *
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:#include "nir_instr_set.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Implements common subexpression elimination
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:/*
        -:        -:   36: * Visits and CSEs the given block and all its descendants in the dominance
        -:        -:   37: * tree recursively. Note that the instr_set is guaranteed to only ever
        -:        -:   38: * contain instructions that dominate the current block.
        -:        -:   39: */
        -:        -:   40:
        -:        -:   41:static bool
      328:      456:   42:cse_block(nir_block *block, struct set *instr_set)
        -:        -:   43:{
      328:      456:   44:   bool progress = false;
        -:        -:   45:
     1431:     1696:   46:   nir_foreach_instr_safe(instr, block) {
     1103:     1240:   47:      if (nir_instr_set_add_or_rewrite(instr_set, instr)) {
       82:       93:   48:         progress = true;
       82:       93:   49:         nir_instr_remove(instr);
        -:        -:   50:      }
        -:        -:   51:   }
        -:        -:   52:
      629:      885:   53:   for (unsigned i = 0; i < block->num_dom_children; i++) {
      301:      429:   54:      nir_block *child = block->dom_children[i];
      301:      429:   55:      progress |= cse_block(child, instr_set);
        -:        -:   56:   }
        -:        -:   57:
     1349:     1603:   58:   nir_foreach_instr(instr, block)
     1021:     1147:   59:     nir_instr_set_remove(instr_set, instr);
        -:        -:   60:
      328:      456:   61:   return progress;
        -:        -:   62:}
        -:        -:   63:
        -:        -:   64:static bool
       27:       27:   65:nir_opt_cse_impl(nir_function_impl *impl)
        -:        -:   66:{
       27:       27:   67:   struct set *instr_set = nir_instr_set_create(NULL);
        -:        -:   68:
       27:       27:   69:   nir_metadata_require(impl, nir_metadata_dominance);
        -:        -:   70:
       27:       27:   71:   bool progress = cse_block(nir_start_block(impl), instr_set);
        -:        -:   72:
       27:       27:   73:   if (progress)
        8:        8:   74:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:   75:                                  nir_metadata_dominance);
        -:        -:   76:
       27:       27:   77:   nir_instr_set_destroy(instr_set);
       27:       27:   78:   return progress;
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:bool
       27:       27:   82:nir_opt_cse(nir_shader *shader)
        -:        -:   83:{
       27:       27:   84:   bool progress = false;
        -:        -:   85:
       54:       54:   86:   nir_foreach_function(function, shader) {
       27:       27:   87:      if (function->impl)
       27:       27:   88:         progress |= nir_opt_cse_impl(function->impl);
        -:        -:   89:   }
        -:        -:   90:
       27:       27:   91:   return progress;
        -:        -:   92:}
        -:        -:   93:

src/compiler/nir_opt_dce.c.gcov

        -:        -:    0:Source:nir/nir_opt_dce.c
        -:        -:    0:Graph:nir/.libs/nir_opt_dce.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_dce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:/* SSA-based mark-and-sweep dead code elimination */
        -:        -:   31:
        -:        -:   32:typedef struct {
        -:        -:   33:   struct exec_node node;
        -:        -:   34:   nir_instr *instr;
        -:        -:   35:} worklist_elem;
        -:        -:   36:
        -:        -:   37:static void
     1223:     1374:   38:worklist_push(struct exec_list *worklist, nir_instr *instr)
        -:        -:   39:{
     1223:     1374:   40:   worklist_elem *elem = ralloc(worklist, worklist_elem);
     1223:     1374:   41:   elem->instr = instr;
     1223:     1374:   42:   instr->pass_flags = 1;
     1223:     1374:   43:   exec_list_push_tail(worklist, &elem->node);
     1223:     1374:   44:}
        -:        -:   45:
        -:        -:   46:static nir_instr *
     1223:     1374:   47:worklist_pop(struct exec_list *worklist)
        -:        -:   48:{
     1223:     1374:   49:   struct exec_node *node = exec_list_pop_head(worklist);
     1223:     1374:   50:   worklist_elem *elem = exec_node_data(worklist_elem, node, node);
     1223:     1374:   51:   return elem->instr;
        -:        -:   52:}
        -:        -:   53:
        -:        -:   54:static bool
     1734:     1924:   55:mark_live_cb(nir_src *src, void *_state)
        -:        -:   56:{
     1734:     1924:   57:   struct exec_list *worklist = (struct exec_list *) _state;
        -:        -:   58:
     1734:     1924:   59:   if (src->is_ssa && !src->ssa->parent_instr->pass_flags) {
     1050:     1129:   60:      worklist_push(worklist, src->ssa->parent_instr);
        -:        -:   61:   }
        -:        -:   62:
     1734:     1924:   63:   return true;
        -:        -:   64:}
        -:        -:   65:
        -:        -:   66:static void
     1841:     2043:   67:init_instr(nir_instr *instr, struct exec_list *worklist)
        -:        -:   68:{
        -:        -:   69:   nir_alu_instr *alu_instr;
        -:        -:   70:   nir_intrinsic_instr *intrin_instr;
        -:        -:   71:   nir_tex_instr *tex_instr;
        -:        -:   72:
        -:        -:   73:   /* We use the pass_flags to store the live/dead information.  In DCE, we
        -:        -:   74:    * just treat it as a zero/non-zero boolean for whether or not the
        -:        -:   75:    * instruction is live.
        -:        -:   76:    */
     1841:     2043:   77:   instr->pass_flags = 0;
        -:        -:   78:
     1841:     2043:   79:   switch (instr->type) {
        -:        -:   80:   case nir_instr_type_call:
        -:        -:   81:   case nir_instr_type_jump:
       37:       73:   82:      worklist_push(worklist, instr);
       37:       73:   83:      break;
        -:        -:   84:
        -:        -:   85:   case nir_instr_type_alu:
     1083:     1141:   86:      alu_instr = nir_instr_as_alu(instr);
     1083:     1141:   87:      if (!alu_instr->dest.dest.is_ssa)
    #####:    #####:   88:         worklist_push(worklist, instr);
     1083:     1141:   89:      break;
        -:        -:   90:
        -:        -:   91:   case nir_instr_type_intrinsic:
      226:      248:   92:      intrin_instr = nir_instr_as_intrinsic(instr);
      226:      248:   93:      if (nir_intrinsic_infos[intrin_instr->intrinsic].flags &
        -:        -:   94:          NIR_INTRINSIC_CAN_ELIMINATE) {
      376:      420:   95:         if (nir_intrinsic_infos[intrin_instr->intrinsic].has_dest &&
      188:      210:   96:             !intrin_instr->dest.is_ssa) {
    #####:    #####:   97:            worklist_push(worklist, instr);
        -:        -:   98:         }
        -:        -:   99:      } else {
       38:       38:  100:         worklist_push(worklist, instr);
        -:        -:  101:      }
      226:      248:  102:      break;
        -:        -:  103:
        -:        -:  104:   case nir_instr_type_tex:
    #####:    #####:  105:      tex_instr = nir_instr_as_tex(instr);
    #####:    #####:  106:      if (!tex_instr->dest.is_ssa)
    #####:    #####:  107:         worklist_push(worklist, instr);
    #####:    #####:  108:      break;
        -:        -:  109:
        -:        -:  110:   default:
      495:      581:  111:      break;
        -:        -:  112:   }
     1841:     2043:  113:}
        -:        -:  114:
        -:        -:  115:static bool
      364:      508:  116:init_block(nir_block *block, struct exec_list *worklist)
        -:        -:  117:{
     2205:     2551:  118:   nir_foreach_instr(instr, block)
     1841:     2043:  119:      init_instr(instr, worklist);
        -:        -:  120:
      364:      508:  121:   nir_if *following_if = nir_block_get_following_if(block);
      364:      508:  122:   if (following_if) {
      196:      268:  123:      if (following_if->condition.is_ssa &&
       98:      134:  124:          !following_if->condition.ssa->parent_instr->pass_flags)
       98:      134:  125:         worklist_push(worklist, following_if->condition.ssa->parent_instr);
        -:        -:  126:   }
        -:        -:  127:
      364:      508:  128:   return true;
        -:        -:  129:}
        -:        -:  130:
        -:        -:  131:static bool
       32:       32:  132:nir_opt_dce_impl(nir_function_impl *impl)
        -:        -:  133:{
       32:       32:  134:   struct exec_list *worklist = rzalloc(NULL, struct exec_list);
       32:       32:  135:   exec_list_make_empty(worklist);
        -:        -:  136:
      396:      540:  137:   nir_foreach_block(block, impl) {
      364:      508:  138:      init_block(block, worklist);
        -:        -:  139:   }
        -:        -:  140:
     1287:     1438:  141:   while (!exec_list_is_empty(worklist)) {
     1223:     1374:  142:      nir_instr *instr = worklist_pop(worklist);
     1223:     1374:  143:      nir_foreach_src(instr, mark_live_cb, worklist);
        -:        -:  144:   }
        -:        -:  145:
       32:       32:  146:   ralloc_free(worklist);
        -:        -:  147:
       32:       32:  148:   bool progress = false;
        -:        -:  149:
      396:      540:  150:   nir_foreach_block(block, impl) {
     2205:     2551:  151:      nir_foreach_instr_safe(instr, block) {
     1841:     2043:  152:         if (!instr->pass_flags) {
      618:      669:  153:            nir_instr_remove(instr);
      618:      669:  154:            progress = true;
        -:        -:  155:         }
        -:        -:  156:      }
        -:        -:  157:   }
        -:        -:  158:
       32:       32:  159:   if (progress)
       14:       14:  160:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  161:                                  nir_metadata_dominance);
        -:        -:  162:
       32:       32:  163:   return progress;
        -:        -:  164:}
        -:        -:  165:
        -:        -:  166:bool
       32:       32:  167:nir_opt_dce(nir_shader *shader)
        -:        -:  168:{
       32:       32:  169:   bool progress = false;
       64:       64:  170:   nir_foreach_function(function, shader) {
       32:       32:  171:      if (function->impl && nir_opt_dce_impl(function->impl))
       14:       14:  172:         progress = true;
        -:        -:  173:   }
        -:        -:  174:
       32:       32:  175:   return progress;
        -:        -:  176:}

src/compiler/nir_opt_dead_cf.c.gcov

        -:        -:    0:Source:nir/nir_opt_dead_cf.c
        -:        -:    0:Graph:nir/.libs/nir_opt_dead_cf.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_dead_cf.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_control_flow.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * This file implements an optimization that deletes statically
        -:        -:   33: * unreachable/dead code. In NIR, one way this can happen is when an if
        -:        -:   34: * statement has a constant condition:
        -:        -:   35: *
        -:        -:   36: * if (true) {
        -:        -:   37: *    ...
        -:        -:   38: * }
        -:        -:   39: *
        -:        -:   40: * We delete the if statement and paste the contents of the always-executed
        -:        -:   41: * branch into the surrounding control flow, possibly removing more code if
        -:        -:   42: * the branch had a jump at the end.
        -:        -:   43: *
        -:        -:   44: * Another way is that control flow can end in a jump so that code after it
        -:        -:   45: * never gets executed. In particular, this can happen after optimizing
        -:        -:   46: * something like:
        -:        -:   47: *
        -:        -:   48: * if (true) {
        -:        -:   49: *    ...
        -:        -:   50: *    break;
        -:        -:   51: * }
        -:        -:   52: * ...
        -:        -:   53: *
        -:        -:   54: * We also consider the case where both branches of an if end in a jump, e.g.:
        -:        -:   55: *
        -:        -:   56: * if (...) {
        -:        -:   57: *    break;
        -:        -:   58: * } else {
        -:        -:   59: *    continue;
        -:        -:   60: * }
        -:        -:   61: * ...
        -:        -:   62: *
        -:        -:   63: * Finally, we also handle removing useless loops, i.e. loops with no side
        -:        -:   64: * effects and without any definitions that are used elsewhere. This case is a
        -:        -:   65: * little different from the first two in that the code is actually run (it
        -:        -:   66: * just never does anything), but there are similar issues with needing to
        -:        -:   67: * be careful with restarting after deleting the cf_node (see dead_cf_list())
        -:        -:   68: * so this is a convenient place to remove them.
        -:        -:   69: */
        -:        -:   70:
        -:        -:   71:static void
    #####:    #####:   72:remove_after_cf_node(nir_cf_node *node)
        -:        -:   73:{
    #####:    #####:   74:   nir_cf_node *end = node;
    #####:    #####:   75:   while (!nir_cf_node_is_last(end))
    #####:    #####:   76:      end = nir_cf_node_next(end);
        -:        -:   77:
        -:        -:   78:   nir_cf_list list;
    #####:    #####:   79:   nir_cf_extract(&list, nir_after_cf_node(node), nir_after_cf_node(end));
    #####:    #####:   80:   nir_cf_delete(&list);
    #####:    #####:   81:}
        -:        -:   82:
        -:        -:   83:static void
    #####:    #####:   84:opt_constant_if(nir_if *if_stmt, bool condition)
        -:        -:   85:{
        -:        -:   86:   /* First, we need to remove any phi nodes after the if by rewriting uses to
        -:        -:   87:    * point to the correct source.
        -:        -:   88:    */
    #####:    #####:   89:   nir_block *after = nir_cf_node_as_block(nir_cf_node_next(&if_stmt->cf_node));
    #####:    #####:   90:   nir_block *last_block = condition ? nir_if_last_then_block(if_stmt)
    #####:    #####:   91:                                     : nir_if_last_else_block(if_stmt);
        -:        -:   92:
    #####:    #####:   93:   nir_foreach_instr_safe(instr, after) {
    #####:    #####:   94:      if (instr->type != nir_instr_type_phi)
    #####:    #####:   95:         break;
        -:        -:   96:
    #####:    #####:   97:      nir_phi_instr *phi = nir_instr_as_phi(instr);
    #####:    #####:   98:      nir_ssa_def *def = NULL;
    #####:    #####:   99:      nir_foreach_phi_src(phi_src, phi) {
    #####:    #####:  100:         if (phi_src->pred != last_block)
    #####:    #####:  101:            continue;
        -:        -:  102:
    #####:    #####:  103:         assert(phi_src->src.is_ssa);
    #####:    #####:  104:         def = phi_src->src.ssa;
        -:        -:  105:      }
        -:        -:  106:
    #####:    #####:  107:      assert(def);
    #####:    #####:  108:      assert(phi->dest.is_ssa);
    #####:    #####:  109:      nir_ssa_def_rewrite_uses(&phi->dest.ssa, nir_src_for_ssa(def));
    #####:    #####:  110:      nir_instr_remove(instr);
        -:        -:  111:   }
        -:        -:  112:
        -:        -:  113:   /* The control flow list we're about to paste in may include a jump at the
        -:        -:  114:    * end, and in that case we have to delete the rest of the control flow
        -:        -:  115:    * list after the if since it's unreachable and the validator will balk if
        -:        -:  116:    * we don't.
        -:        -:  117:    */
        -:        -:  118:
    #####:    #####:  119:   if (!exec_list_is_empty(&last_block->instr_list)) {
    #####:    #####:  120:      nir_instr *last_instr = nir_block_last_instr(last_block);
    #####:    #####:  121:      if (last_instr->type == nir_instr_type_jump)
    #####:    #####:  122:         remove_after_cf_node(&if_stmt->cf_node);
        -:        -:  123:   }
        -:        -:  124:
        -:        -:  125:   /* Finally, actually paste in the then or else branch and delete the if. */
    #####:    #####:  126:   struct exec_list *cf_list = condition ? &if_stmt->then_list
    #####:    #####:  127:                                         : &if_stmt->else_list;
        -:        -:  128:
        -:        -:  129:   nir_cf_list list;
    #####:    #####:  130:   nir_cf_list_extract(&list, cf_list);
    #####:    #####:  131:   nir_cf_reinsert(&list, nir_after_cf_node(&if_stmt->cf_node));
    #####:    #####:  132:   nir_cf_node_remove(&if_stmt->cf_node);
    #####:    #####:  133:}
        -:        -:  134:
        -:        -:  135:static bool
        1:        1:  136:cf_node_has_side_effects(nir_cf_node *node)
        -:        -:  137:{
        8:        8:  138:   nir_foreach_block_in_cf_node(block, node) {
       47:       47:  139:      nir_foreach_instr(instr, block) {
       40:       40:  140:         if (instr->type == nir_instr_type_call)
    #####:    #####:  141:            return true;
        -:        -:  142:
        -:        -:  143:         /* Return instructions can cause us to skip over other side-effecting
        -:        -:  144:          * instructions after the loop, so consider them to have side effects
        -:        -:  145:          * here.
        -:        -:  146:          */
        -:        -:  147:
       41:       41:  148:         if (instr->type == nir_instr_type_jump &&
        1:        1:  149:             nir_instr_as_jump(instr)->type == nir_jump_return)
    #####:    #####:  150:            return true;
        -:        -:  151:
       40:       40:  152:         if (instr->type != nir_instr_type_intrinsic)
       39:       39:  153:            continue;
        -:        -:  154:
        1:        1:  155:         nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        1:        1:  156:         if (!(nir_intrinsic_infos[intrin->intrinsic].flags &
        -:        -:  157:             NIR_INTRINSIC_CAN_ELIMINATE))
    #####:    #####:  158:            return true;
        -:        -:  159:      }
        -:        -:  160:   }
        -:        -:  161:
        1:        1:  162:   return false;
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:static bool
        4:        4:  166:def_not_live_out(nir_ssa_def *def, void *state)
        -:        -:  167:{
        4:        4:  168:   nir_block *after = state;
        -:        -:  169:
        4:        4:  170:   return !BITSET_TEST(after->live_in, def->live_index);
        -:        -:  171:}
        -:        -:  172:
        -:        -:  173:/*
        -:        -:  174: * Test if a loop is dead. A loop is dead if:
        -:        -:  175: *
        -:        -:  176: * 1) It has no side effects (i.e. intrinsics which could possibly affect the
        -:        -:  177: * state of the program aside from producing an SSA value, indicated by a lack
        -:        -:  178: * of NIR_INTRINSIC_CAN_ELIMINATE).
        -:        -:  179: *
        -:        -:  180: * 2) It has no phi nodes after it, since those indicate values inside the
        -:        -:  181: * loop being used after the loop.
        -:        -:  182: *
        -:        -:  183: * 3) If there are no phi nodes after the loop, then the only way a value
        -:        -:  184: * defined inside the loop can be used outside the loop is if its definition
        -:        -:  185: * dominates the block after the loop. If none of the definitions that
        -:        -:  186: * dominate the loop exit are used outside the loop, then the loop is dead
        -:        -:  187: * and it can be deleted.
        -:        -:  188: */
        -:        -:  189:
        -:        -:  190:static bool
       17:       33:  191:loop_is_dead(nir_loop *loop)
        -:        -:  192:{
       17:       33:  193:   nir_block *before = nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node));
       17:       33:  194:   nir_block *after = nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node));
        -:        -:  195:
       34:       66:  196:   if (!exec_list_is_empty(&after->instr_list) &&
       17:       33:  197:       nir_block_first_instr(after)->type == nir_instr_type_phi)
       16:       32:  198:      return false;
        -:        -:  199:
        1:        1:  200:   if (cf_node_has_side_effects(&loop->cf_node))
    #####:    #####:  201:      return false;
        -:        -:  202:
        1:        1:  203:   nir_function_impl *impl = nir_cf_node_get_function(&loop->cf_node);
        1:        1:  204:   nir_metadata_require(impl, nir_metadata_live_ssa_defs |
        -:        -:  205:                              nir_metadata_dominance);
        -:        -:  206:
        3:        3:  207:   for (nir_block *cur = after->imm_dom; cur && cur != before;
        1:        1:  208:        cur = cur->imm_dom) {
        6:        6:  209:      nir_foreach_instr(instr, cur) {
        5:        5:  210:         if (!nir_foreach_ssa_def(instr, def_not_live_out, after))
        1:        1:  211:            return false;
        -:        -:  212:      }
        -:        -:  213:   }
        -:        -:  214:
    #####:    #####:  215:   return true;
        -:        -:  216:}
        -:        -:  217:
        -:        -:  218:static bool
      274:      402:  219:dead_cf_block(nir_block *block)
        -:        -:  220:{
      274:      402:  221:   nir_if *following_if = nir_block_get_following_if(block);
      274:      402:  222:   if (following_if) {
       71:      103:  223:      nir_const_value *const_value =
        -:        -:  224:         nir_src_as_const_value(following_if->condition);
        -:        -:  225:
       71:      103:  226:      if (!const_value)
       71:      103:  227:         return false;
        -:        -:  228:
    #####:    #####:  229:      opt_constant_if(following_if, const_value->u32[0] != 0);
    #####:    #####:  230:      return true;
        -:        -:  231:   }
        -:        -:  232:
      203:      299:  233:   nir_loop *following_loop = nir_block_get_following_loop(block);
      203:      299:  234:   if (!following_loop)
      186:      266:  235:      return false;
        -:        -:  236:
       17:       33:  237:   if (!loop_is_dead(following_loop))
       17:       33:  238:      return false;
        -:        -:  239:
    #####:    #####:  240:   nir_cf_node_remove(&following_loop->cf_node);
    #####:    #####:  241:   return true;
        -:        -:  242:}
        -:        -:  243:
        -:        -:  244:static bool
      274:      402:  245:ends_in_jump(nir_block *block)
        -:        -:  246:{
      274:      402:  247:   if (exec_list_is_empty(&block->instr_list))
       71:      119:  248:      return false;
        -:        -:  249:
      203:      283:  250:   nir_instr *instr = nir_block_last_instr(block);
      203:      283:  251:   return instr->type == nir_instr_type_jump;
        -:        -:  252:}
        -:        -:  253:
        -:        -:  254:static bool
      186:      266:  255:dead_cf_list(struct exec_list *list, bool *list_ends_in_jump)
        -:        -:  256:{
      186:      266:  257:   bool progress = false;
      186:      266:  258:   *list_ends_in_jump = false;
        -:        -:  259:
      186:      266:  260:   nir_cf_node *prev = NULL;
        -:        -:  261:
      548:      804:  262:   foreach_list_typed(nir_cf_node, cur, node, list) {
      362:      538:  263:      switch (cur->type) {
        -:        -:  264:      case nir_cf_node_block: {
      274:      402:  265:         nir_block *block = nir_cf_node_as_block(cur);
      274:      402:  266:         if (dead_cf_block(block)) {
        -:        -:  267:            /* We just deleted the if or loop after this block, so we may have
        -:        -:  268:             * deleted the block before or after it -- which one is an
        -:        -:  269:             * implementation detail. Therefore, to recover the place we were
        -:        -:  270:             * at, we have to use the previous cf_node.
        -:        -:  271:             */
        -:        -:  272:
    #####:    #####:  273:            if (prev) {
    #####:    #####:  274:               cur = nir_cf_node_next(prev);
        -:        -:  275:            } else {
    #####:    #####:  276:               cur = exec_node_data(nir_cf_node, exec_list_get_head(list),
        -:        -:  277:                                    node);
        -:        -:  278:            }
        -:        -:  279:
    #####:    #####:  280:            block = nir_cf_node_as_block(cur);
        -:        -:  281:
    #####:    #####:  282:            progress = true;
        -:        -:  283:         }
        -:        -:  284:
      274:      402:  285:         if (ends_in_jump(block)) {
       33:       65:  286:            *list_ends_in_jump = true;
        -:        -:  287:
       33:       65:  288:            if (!exec_node_is_tail_sentinel(cur->node.next)) {
    #####:    #####:  289:               remove_after_cf_node(cur);
    #####:    #####:  290:               return true;
        -:        -:  291:            }
        -:        -:  292:         }
        -:        -:  293:
      274:      402:  294:         break;
        -:        -:  295:      }
        -:        -:  296:
        -:        -:  297:      case nir_cf_node_if: {
       71:      103:  298:         nir_if *if_stmt = nir_cf_node_as_if(cur);
        -:        -:  299:         bool then_ends_in_jump, else_ends_in_jump;
       71:      103:  300:         progress |= dead_cf_list(&if_stmt->then_list, &then_ends_in_jump);
       71:      103:  301:         progress |= dead_cf_list(&if_stmt->else_list, &else_ends_in_jump);
        -:        -:  302:
       71:      103:  303:         if (then_ends_in_jump && else_ends_in_jump) {
    #####:    #####:  304:            *list_ends_in_jump = true;
    #####:    #####:  305:            nir_block *next = nir_cf_node_as_block(nir_cf_node_next(cur));
    #####:    #####:  306:            if (!exec_list_is_empty(&next->instr_list) ||
    #####:    #####:  307:                !exec_node_is_tail_sentinel(next->cf_node.node.next)) {
    #####:    #####:  308:               remove_after_cf_node(cur);
    #####:    #####:  309:               return true;
        -:        -:  310:            }
        -:        -:  311:         }
        -:        -:  312:
       71:      103:  313:         break;
        -:        -:  314:      }
        -:        -:  315:
        -:        -:  316:      case nir_cf_node_loop: {
       17:       33:  317:         nir_loop *loop = nir_cf_node_as_loop(cur);
        -:        -:  318:         bool dummy;
       17:       33:  319:         progress |= dead_cf_list(&loop->body, &dummy);
        -:        -:  320:
       17:       33:  321:         break;
        -:        -:  322:      }
        -:        -:  323:
        -:        -:  324:      default:
    #####:    #####:  325:         unreachable("unknown cf node type");
        -:        -:  326:      }
        -:        -:  327:
      362:      538:  328:      prev = cur;
        -:        -:  329:   }
        -:        -:  330:
      186:      266:  331:   return progress;
        -:        -:  332:}
        -:        -:  333:
        -:        -:  334:static bool
       27:       27:  335:opt_dead_cf_impl(nir_function_impl *impl)
        -:        -:  336:{
        -:        -:  337:   bool dummy;
       27:       27:  338:   bool progress = dead_cf_list(&impl->body, &dummy);
        -:        -:  339:
       27:       27:  340:   if (progress)
    #####:    #####:  341:      nir_metadata_preserve(impl, nir_metadata_none);
        -:        -:  342:
       27:       27:  343:   return progress;
        -:        -:  344:}
        -:        -:  345:
        -:        -:  346:bool
       27:       27:  347:nir_opt_dead_cf(nir_shader *shader)
        -:        -:  348:{
       27:       27:  349:   bool progress = false;
        -:        -:  350:
       54:       54:  351:   nir_foreach_function(function, shader)
       27:       27:  352:      if (function->impl)
       27:       27:  353:         progress |= opt_dead_cf_impl(function->impl);
        -:        -:  354:
       27:       27:  355:   return progress;
        -:        -:  356:}

src/compiler/nir_opt_if.c.gcov

        -:        -:    0:Source:nir/nir_opt_if.c
        -:        -:    0:Graph:nir/.libs/nir_opt_if.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_if.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_control_flow.h"
        -:        -:   26:
        -:        -:   27:/**
        -:        -:   28: * This optimization detects if statements at the tops of loops where the
        -:        -:   29: * condition is a phi node of two constants and moves half of the if to above
        -:        -:   30: * the loop and the other half of the if to the end of the loop.  A simple for
        -:        -:   31: * loop "for (int i = 0; i < 4; i++)", when run through the SPIR-V front-end,
        -:        -:   32: * ends up looking something like this:
        -:        -:   33: *
        -:        -:   34: * vec1 32 ssa_0 = load_const (0x00000000)
        -:        -:   35: * vec1 32 ssa_1 = load_const (0xffffffff)
        -:        -:   36: * loop {
        -:        -:   37: *    block block_1:
        -:        -:   38: *    vec1 32 ssa_2 = phi block_0: ssa_0, block_7: ssa_5
        -:        -:   39: *    vec1 32 ssa_3 = phi block_0: ssa_0, block_7: ssa_1
        -:        -:   40: *    if ssa_2 {
        -:        -:   41: *       block block_2:
        -:        -:   42: *       vec1 32 ssa_4 = load_const (0x00000001)
        -:        -:   43: *       vec1 32 ssa_5 = iadd ssa_2, ssa_4
        -:        -:   44: *    } else {
        -:        -:   45: *       block block_3:
        -:        -:   46: *    }
        -:        -:   47: *    block block_4:
        -:        -:   48: *    vec1 32 ssa_6 = load_const (0x00000004)
        -:        -:   49: *    vec1 32 ssa_7 = ilt ssa_5, ssa_6
        -:        -:   50: *    if ssa_7 {
        -:        -:   51: *       block block_5:
        -:        -:   52: *    } else {
        -:        -:   53: *       block block_6:
        -:        -:   54: *       break
        -:        -:   55: *    }
        -:        -:   56: *    block block_7:
        -:        -:   57: * }
        -:        -:   58: *
        -:        -:   59: * This turns it into something like this:
        -:        -:   60: *
        -:        -:   61: * // Stuff from block 1
        -:        -:   62: * // Stuff from block 3
        -:        -:   63: * loop {
        -:        -:   64: *    block block_1:
        -:        -:   65: *    vec1 32 ssa_3 = phi block_0: ssa_0, block_7: ssa_1
        -:        -:   66: *    vec1 32 ssa_6 = load_const (0x00000004)
        -:        -:   67: *    vec1 32 ssa_7 = ilt ssa_5, ssa_6
        -:        -:   68: *    if ssa_7 {
        -:        -:   69: *       block block_5:
        -:        -:   70: *    } else {
        -:        -:   71: *       block block_6:
        -:        -:   72: *       break
        -:        -:   73: *    }
        -:        -:   74: *    block block_7:
        -:        -:   75: *    // Stuff from block 1
        -:        -:   76: *    // Stuff from block 2
        -:        -:   77: *    vec1 32 ssa_4 = load_const (0x00000001)
        -:        -:   78: *    vec1 32 ssa_5 = iadd ssa_2, ssa_4
        -:        -:   79: * }
        -:        -:   80: */
        -:        -:   81:static bool
       17:       33:   82:opt_peel_loop_initial_if(nir_loop *loop)
        -:        -:   83:{
       17:       33:   84:   nir_block *header_block = nir_loop_first_block(loop);
       17:       33:   85:   nir_block *prev_block =
       17:       33:   86:      nir_cf_node_as_block(nir_cf_node_prev(&loop->cf_node));
        -:        -:   87:
        -:        -:   88:   /* It would be insane if this were not true */
       17:       33:   89:   assert(_mesa_set_search(header_block->predecessors, prev_block));
        -:        -:   90:
        -:        -:   91:   /* The loop must have exactly one continue block which could be a block
        -:        -:   92:    * ending in a continue instruction or the "natural" continue from the
        -:        -:   93:    * last block in the loop back to the top.
        -:        -:   94:    */
       17:       33:   95:   if (header_block->predecessors->entries != 2)
    #####:    #####:   96:      return false;
        -:        -:   97:
       17:       33:   98:   nir_block *continue_block = NULL;
        -:        -:   99:   struct set_entry *pred_entry;
       51:       99:  100:   set_foreach(header_block->predecessors, pred_entry) {
       34:       66:  101:      if (pred_entry->key != prev_block)
       17:       33:  102:         continue_block = (void *)pred_entry->key;
        -:        -:  103:   }
        -:        -:  104:
       17:       33:  105:   nir_cf_node *if_node = nir_cf_node_next(&header_block->cf_node);
       17:       33:  106:   if (!if_node || if_node->type != nir_cf_node_if)
    #####:    #####:  107:      return false;
        -:        -:  108:
       17:       33:  109:   nir_if *nif = nir_cf_node_as_if(if_node);
       17:       33:  110:   assert(nif->condition.is_ssa);
        -:        -:  111:
       17:       33:  112:   nir_ssa_def *cond = nif->condition.ssa;
       17:       33:  113:   if (cond->parent_instr->type != nir_instr_type_phi)
       17:       33:  114:      return false;
        -:        -:  115:
    #####:    #####:  116:   nir_phi_instr *cond_phi = nir_instr_as_phi(cond->parent_instr);
    #####:    #####:  117:   if (cond->parent_instr->block != header_block)
    #####:    #####:  118:      return false;
        -:        -:  119:
        -:        -:  120:   /* We already know we have exactly one continue */
    #####:    #####:  121:   assert(exec_list_length(&cond_phi->srcs) == 2);
        -:        -:  122:
    #####:    #####:  123:   uint32_t entry_val = 0, continue_val = 0;
    #####:    #####:  124:   nir_foreach_phi_src(src, cond_phi) {
    #####:    #####:  125:      assert(src->src.is_ssa);
    #####:    #####:  126:      nir_const_value *const_src = nir_src_as_const_value(src->src);
    #####:    #####:  127:      if (!const_src)
    #####:    #####:  128:         return false;
        -:        -:  129:
    #####:    #####:  130:      if (src->pred == continue_block) {
    #####:    #####:  131:         continue_val = const_src->u32[0];
        -:        -:  132:      } else {
    #####:    #####:  133:         assert(src->pred == prev_block);
    #####:    #####:  134:         entry_val = const_src->u32[0];
        -:        -:  135:      }
        -:        -:  136:   }
        -:        -:  137:
        -:        -:  138:   /* If they both execute or both don't execute, this is a job for
        -:        -:  139:    * nir_dead_cf, not this pass.
        -:        -:  140:    */
    #####:    #####:  141:   if ((entry_val && continue_val) || (!entry_val && !continue_val))
    #####:    #####:  142:      return false;
        -:        -:  143:
        -:        -:  144:   struct exec_list *continue_list, *entry_list;
    #####:    #####:  145:   if (continue_val) {
    #####:    #####:  146:      continue_list = &nif->then_list;
    #####:    #####:  147:      entry_list = &nif->else_list;
        -:        -:  148:   } else {
    #####:    #####:  149:      continue_list = &nif->else_list;
    #####:    #####:  150:      entry_list = &nif->then_list;
        -:        -:  151:   }
        -:        -:  152:
        -:        -:  153:   /* We want to be moving the contents of entry_list to above the loop so it
        -:        -:  154:    * can't contain any break or continue instructions.
        -:        -:  155:    */
    #####:    #####:  156:   foreach_list_typed(nir_cf_node, cf_node, node, entry_list) {
    #####:    #####:  157:      nir_foreach_block_in_cf_node(block, cf_node) {
    #####:    #####:  158:         nir_instr *last_instr = nir_block_last_instr(block);
    #####:    #####:  159:         if (last_instr && last_instr->type == nir_instr_type_jump)
    #####:    #####:  160:            return false;
        -:        -:  161:      }
        -:        -:  162:   }
        -:        -:  163:
        -:        -:  164:   /* Before we do anything, convert the loop to LCSSA.  We're about to
        -:        -:  165:    * replace a bunch of SSA defs with registers and this will prevent any of
        -:        -:  166:    * it from leaking outside the loop.
        -:        -:  167:    */
    #####:    #####:  168:   nir_convert_loop_to_lcssa(loop);
        -:        -:  169:
    #####:    #####:  170:   nir_block *after_if_block =
    #####:    #####:  171:      nir_cf_node_as_block(nir_cf_node_next(&nif->cf_node));
        -:        -:  172:
        -:        -:  173:   /* Get rid of phis in the header block since we will be duplicating it */
    #####:    #####:  174:   nir_lower_phis_to_regs_block(header_block);
        -:        -:  175:   /* Get rid of phis after the if since dominance will change */
    #####:    #####:  176:   nir_lower_phis_to_regs_block(after_if_block);
        -:        -:  177:
        -:        -:  178:   /* Get rid of SSA defs in the pieces we're about to move around */
    #####:    #####:  179:   nir_lower_ssa_defs_to_regs_block(header_block);
    #####:    #####:  180:   nir_foreach_block_in_cf_node(block, &nif->cf_node)
    #####:    #####:  181:      nir_lower_ssa_defs_to_regs_block(block);
        -:        -:  182:
        -:        -:  183:   nir_cf_list header, tmp;
    #####:    #####:  184:   nir_cf_extract(&header, nir_before_block(header_block),
        -:        -:  185:                           nir_after_block(header_block));
        -:        -:  186:
    #####:    #####:  187:   nir_cf_list_clone(&tmp, &header, &loop->cf_node, NULL);
    #####:    #####:  188:   nir_cf_reinsert(&tmp, nir_before_cf_node(&loop->cf_node));
    #####:    #####:  189:   nir_cf_extract(&tmp, nir_before_cf_list(entry_list),
        -:        -:  190:                        nir_after_cf_list(entry_list));
    #####:    #####:  191:   nir_cf_reinsert(&tmp, nir_before_cf_node(&loop->cf_node));
        -:        -:  192:
    #####:    #####:  193:   nir_cf_reinsert(&header, nir_after_block_before_jump(continue_block));
    #####:    #####:  194:   nir_cf_extract(&tmp, nir_before_cf_list(continue_list),
        -:        -:  195:                        nir_after_cf_list(continue_list));
    #####:    #####:  196:   nir_cf_reinsert(&tmp, nir_after_block_before_jump(continue_block));
        -:        -:  197:
    #####:    #####:  198:   nir_cf_node_remove(&nif->cf_node);
        -:        -:  199:
    #####:    #####:  200:   return true;
        -:        -:  201:}
        -:        -:  202:
        -:        -:  203:static bool
      186:      266:  204:opt_if_cf_list(struct exec_list *cf_list)
        -:        -:  205:{
      186:      266:  206:   bool progress = false;
      548:      804:  207:   foreach_list_typed(nir_cf_node, cf_node, node, cf_list) {
      362:      538:  208:      switch (cf_node->type) {
        -:        -:  209:      case nir_cf_node_block:
      274:      402:  210:         break;
        -:        -:  211:
        -:        -:  212:      case nir_cf_node_if: {
       71:      103:  213:         nir_if *nif = nir_cf_node_as_if(cf_node);
       71:      103:  214:         progress |= opt_if_cf_list(&nif->then_list);
       71:      103:  215:         progress |= opt_if_cf_list(&nif->else_list);
       71:      103:  216:         break;
        -:        -:  217:      }
        -:        -:  218:
        -:        -:  219:      case nir_cf_node_loop: {
       17:       33:  220:         nir_loop *loop = nir_cf_node_as_loop(cf_node);
       17:       33:  221:         progress |= opt_if_cf_list(&loop->body);
       17:       33:  222:         progress |= opt_peel_loop_initial_if(loop);
       17:       33:  223:         break;
        -:        -:  224:      }
        -:        -:  225:
        -:        -:  226:      case nir_cf_node_function:
    #####:    #####:  227:         unreachable("Invalid cf type");
        -:        -:  228:      }
        -:        -:  229:   }
        -:        -:  230:
      186:      266:  231:   return progress;
        -:        -:  232:}
        -:        -:  233:
        -:        -:  234:bool
       27:       27:  235:nir_opt_if(nir_shader *shader)
        -:        -:  236:{
       27:       27:  237:   bool progress = false;
        -:        -:  238:
       54:       54:  239:   nir_foreach_function(function, shader) {
       27:       27:  240:      if (function->impl == NULL)
    #####:    #####:  241:         continue;
        -:        -:  242:
       27:       27:  243:      if (opt_if_cf_list(&function->impl->body)) {
    #####:    #####:  244:         nir_metadata_preserve(function->impl, nir_metadata_none);
        -:        -:  245:
        -:        -:  246:         /* If that made progress, we're no longer really in SSA form.  We
        -:        -:  247:          * need to convert registers back into SSA defs and clean up SSA defs
        -:        -:  248:          * that don't dominate their uses.
        -:        -:  249:          */
    #####:    #####:  250:         nir_lower_regs_to_ssa_impl(function->impl);
    #####:    #####:  251:         progress = true;
        -:        -:  252:      }
        -:        -:  253:   }
        -:        -:  254:
       27:       27:  255:   return progress;
        -:        -:  256:}

src/compiler/nir_opt_loop_unroll.c.gcov

        -:        -:    0:Source:nir/nir_opt_loop_unroll.c
        -:        -:    0:Graph:nir/.libs/nir_opt_loop_unroll.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_loop_unroll.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:#include "nir_control_flow.h"
        -:        -:   27:#include "nir_loop_analyze.h"
        -:        -:   28:
        -:        -:   29:
        -:        -:   30:/* This limit is chosen fairly arbitrarily.  GLSL IR max iteration is 32
        -:        -:   31: * instructions. (Multiply counting nodes and magic number 5.)  But there is
        -:        -:   32: * no 1:1 mapping between GLSL IR and NIR so 25 was picked because it seemed
        -:        -:   33: * to give about the same results. Around 5 instructions per node.  But some
        -:        -:   34: * loops that would unroll with GLSL IR fail to unroll if we set this to 25 so
        -:        -:   35: * we set it to 26.
        -:        -:   36: */
        -:        -:   37:#define LOOP_UNROLL_LIMIT 26
        -:        -:   38:
        -:        -:   39:/* Prepare this loop for unrolling by first converting to lcssa and then
        -:        -:   40: * converting the phis from the loops first block and the block that follows
        -:        -:   41: * the loop into regs.  Partially converting out of SSA allows us to unroll
        -:        -:   42: * the loop without having to keep track of and update phis along the way
        -:        -:   43: * which gets tricky and doesn't add much value over conveting to regs.
        -:        -:   44: *
        -:        -:   45: * The loop may have a continue instruction at the end of the loop which does
        -:        -:   46: * nothing.  Once we're out of SSA, we can safely delete it so we don't have
        -:        -:   47: * to deal with it later.
        -:        -:   48: */
        -:        -:   49:static void
        1:        1:   50:loop_prepare_for_unroll(nir_loop *loop)
        -:        -:   51:{
        1:        1:   52:   nir_convert_loop_to_lcssa(loop);
        -:        -:   53:
        1:        1:   54:   nir_lower_phis_to_regs_block(nir_loop_first_block(loop));
        -:        -:   55:
        1:        1:   56:   nir_block *block_after_loop =
        1:        1:   57:      nir_cf_node_as_block(nir_cf_node_next(&loop->cf_node));
        -:        -:   58:
        1:        1:   59:   nir_lower_phis_to_regs_block(block_after_loop);
        -:        -:   60:
        1:        1:   61:   nir_instr *last_instr = nir_block_last_instr(nir_loop_last_block(loop));
        1:        1:   62:   if (last_instr && last_instr->type == nir_instr_type_jump) {
    #####:    #####:   63:      assert(nir_instr_as_jump(last_instr)->type == nir_jump_continue);
    #####:    #####:   64:      nir_instr_remove(last_instr);
        -:        -:   65:   }
        1:        1:   66:}
        -:        -:   67:
        -:        -:   68:static void
        1:        1:   69:get_first_blocks_in_terminator(nir_loop_terminator *term,
        -:        -:   70:                               nir_block **first_break_block,
        -:        -:   71:                               nir_block **first_continue_block)
        -:        -:   72:{
        1:        1:   73:   if (term->continue_from_then) {
    #####:    #####:   74:      *first_continue_block = nir_if_first_then_block(term->nif);
    #####:    #####:   75:      *first_break_block = nir_if_first_else_block(term->nif);
        -:        -:   76:   } else {
        1:        1:   77:      *first_continue_block = nir_if_first_else_block(term->nif);
        1:        1:   78:      *first_break_block = nir_if_first_then_block(term->nif);
        -:        -:   79:   }
        1:        1:   80:}
        -:        -:   81:
        -:        -:   82:/**
        -:        -:   83: * Unroll a loop where we know exactly how many iterations there are and there
        -:        -:   84: * is only a single exit point.  Note here we can unroll loops with multiple
        -:        -:   85: * theoretical exits that only have a single terminating exit that we always
        -:        -:   86: * know is the "real" exit.
        -:        -:   87: *
        -:        -:   88: *     loop {
        -:        -:   89: *         ...instrs...
        -:        -:   90: *     }
        -:        -:   91: *
        -:        -:   92: * And the iteration count is 3, the output will be:
        -:        -:   93: *
        -:        -:   94: *     ...instrs... ...instrs... ...instrs...
        -:        -:   95: */
        -:        -:   96:static void
        1:        1:   97:simple_unroll(nir_loop *loop)
        -:        -:   98:{
        1:        1:   99:   nir_loop_terminator *limiting_term = loop->info->limiting_terminator;
        1:        1:  100:   assert(nir_is_trivial_loop_if(limiting_term->nif,
        -:        -:  101:                                 limiting_term->break_block));
        -:        -:  102:
        1:        1:  103:   loop_prepare_for_unroll(loop);
        -:        -:  104:
        -:        -:  105:   /* Skip over loop terminator and get the loop body. */
        2:        2:  106:   list_for_each_entry(nir_loop_terminator, terminator,
        -:        -:  107:                       &loop->info->loop_terminator_list,
        -:        -:  108:                       loop_terminator_link) {
        -:        -:  109:
        -:        -:  110:      /* Remove all but the limiting terminator as we know the other exit
        -:        -:  111:       * conditions can never be met. Note we need to extract any instructions
        -:        -:  112:       * in the continue from branch and insert then into the loop body before
        -:        -:  113:       * removing it.
        -:        -:  114:       */
        1:        1:  115:      if (terminator->nif != limiting_term->nif) {
        -:        -:  116:         nir_block *first_break_block;
        -:        -:  117:         nir_block *first_continue_block;
    #####:    #####:  118:         get_first_blocks_in_terminator(terminator, &first_break_block,
        -:        -:  119:                                        &first_continue_block);
        -:        -:  120:
    #####:    #####:  121:         assert(nir_is_trivial_loop_if(terminator->nif,
        -:        -:  122:                                       terminator->break_block));
        -:        -:  123:
        -:        -:  124:         nir_cf_list continue_from_lst;
    #####:    #####:  125:         nir_cf_extract(&continue_from_lst,
        -:        -:  126:                        nir_before_block(first_continue_block),
        -:        -:  127:                        nir_after_block(terminator->continue_from_block));
    #####:    #####:  128:         nir_cf_reinsert(&continue_from_lst,
    #####:    #####:  129:                         nir_after_cf_node(&terminator->nif->cf_node));
        -:        -:  130:
    #####:    #####:  131:         nir_cf_node_remove(&terminator->nif->cf_node);
        -:        -:  132:      }
        -:        -:  133:   }
        -:        -:  134:
        -:        -:  135:   nir_block *first_break_block;
        -:        -:  136:   nir_block *first_continue_block;
        1:        1:  137:   get_first_blocks_in_terminator(limiting_term, &first_break_block,
        -:        -:  138:                                  &first_continue_block);
        -:        -:  139:
        -:        -:  140:   /* Pluck out the loop header */
        1:        1:  141:   nir_block *header_blk = nir_loop_first_block(loop);
        -:        -:  142:   nir_cf_list lp_header;
        1:        1:  143:   nir_cf_extract(&lp_header, nir_before_block(header_blk),
        1:        1:  144:                  nir_before_cf_node(&limiting_term->nif->cf_node));
        -:        -:  145:
        -:        -:  146:   /* Add the continue from block of the limiting terminator to the loop body
        -:        -:  147:    */
        -:        -:  148:   nir_cf_list continue_from_lst;
        1:        1:  149:   nir_cf_extract(&continue_from_lst, nir_before_block(first_continue_block),
        -:        -:  150:                  nir_after_block(limiting_term->continue_from_block));
        1:        1:  151:   nir_cf_reinsert(&continue_from_lst,
        1:        1:  152:                   nir_after_cf_node(&limiting_term->nif->cf_node));
        -:        -:  153:
        -:        -:  154:   /* Pluck out the loop body */
        -:        -:  155:   nir_cf_list loop_body;
        1:        1:  156:   nir_cf_extract(&loop_body, nir_after_cf_node(&limiting_term->nif->cf_node),
        -:        -:  157:                  nir_after_block(nir_loop_last_block(loop)));
        -:        -:  158:
        1:        1:  159:   struct hash_table *remap_table =
        -:        -:  160:      _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -:  161:                              _mesa_key_pointer_equal);
        -:        -:  162:
        -:        -:  163:   /* Clone the loop header */
        -:        -:  164:   nir_cf_list cloned_header;
        1:        1:  165:   nir_cf_list_clone(&cloned_header, &lp_header, loop->cf_node.parent,
        -:        -:  166:                     remap_table);
        -:        -:  167:
        -:        -:  168:   /* Insert cloned loop header before the loop */
        1:        1:  169:   nir_cf_reinsert(&cloned_header, nir_before_cf_node(&loop->cf_node));
        -:        -:  170:
        -:        -:  171:   /* Temp list to store the cloned loop body as we unroll */
        -:        -:  172:   nir_cf_list unrolled_lp_body;
        -:        -:  173:
        -:        -:  174:   /* Clone loop header and append to the loop body */
        4:        4:  175:   for (unsigned i = 0; i < loop->info->trip_count; i++) {
        -:        -:  176:      /* Clone loop body */
        3:        3:  177:      nir_cf_list_clone(&unrolled_lp_body, &loop_body, loop->cf_node.parent,
        -:        -:  178:                        remap_table);
        -:        -:  179:
        -:        -:  180:      /* Insert unrolled loop body before the loop */
        3:        3:  181:      nir_cf_reinsert(&unrolled_lp_body, nir_before_cf_node(&loop->cf_node));
        -:        -:  182:
        -:        -:  183:      /* Clone loop header */
        3:        3:  184:      nir_cf_list_clone(&cloned_header, &lp_header, loop->cf_node.parent,
        -:        -:  185:                        remap_table);
        -:        -:  186:
        -:        -:  187:      /* Insert loop header after loop body */
        3:        3:  188:      nir_cf_reinsert(&cloned_header, nir_before_cf_node(&loop->cf_node));
        -:        -:  189:   }
        -:        -:  190:
        -:        -:  191:   /* Remove the break from the loop terminator and add instructions from
        -:        -:  192:    * the break block after the unrolled loop.
        -:        -:  193:    */
        1:        1:  194:   nir_instr *break_instr = nir_block_last_instr(limiting_term->break_block);
        1:        1:  195:   nir_instr_remove(break_instr);
        -:        -:  196:   nir_cf_list break_list;
        1:        1:  197:   nir_cf_extract(&break_list, nir_before_block(first_break_block),
        -:        -:  198:                  nir_after_block(limiting_term->break_block));
        -:        -:  199:
        -:        -:  200:   /* Clone so things get properly remapped */
        -:        -:  201:   nir_cf_list cloned_break_list;
        1:        1:  202:   nir_cf_list_clone(&cloned_break_list, &break_list, loop->cf_node.parent,
        -:        -:  203:                     remap_table);
        -:        -:  204:
        1:        1:  205:   nir_cf_reinsert(&cloned_break_list, nir_before_cf_node(&loop->cf_node));
        -:        -:  206:
        -:        -:  207:   /* Remove the loop */
        1:        1:  208:   nir_cf_node_remove(&loop->cf_node);
        -:        -:  209:
        -:        -:  210:   /* Delete the original loop body, break block & header */
        1:        1:  211:   nir_cf_delete(&lp_header);
        1:        1:  212:   nir_cf_delete(&loop_body);
        1:        1:  213:   nir_cf_delete(&break_list);
        -:        -:  214:
        1:        1:  215:   _mesa_hash_table_destroy(remap_table, NULL);
        1:        1:  216:}
        -:        -:  217:
        -:        -:  218:static void
    #####:    #####:  219:move_cf_list_into_loop_term(nir_cf_list *lst, nir_loop_terminator *term)
        -:        -:  220:{
        -:        -:  221:   /* Move the rest of the loop inside the continue-from-block */
    #####:    #####:  222:   nir_cf_reinsert(lst, nir_after_block(term->continue_from_block));
        -:        -:  223:
        -:        -:  224:   /* Remove the break */
    #####:    #####:  225:   nir_instr_remove(nir_block_last_instr(term->break_block));
    #####:    #####:  226:}
        -:        -:  227:
        -:        -:  228:static nir_cursor
    #####:    #####:  229:get_complex_unroll_insert_location(nir_cf_node *node, bool continue_from_then)
        -:        -:  230:{
    #####:    #####:  231:   if (node->type == nir_cf_node_loop) {
    #####:    #####:  232:      return nir_before_cf_node(node);
        -:        -:  233:   } else {
    #####:    #####:  234:      nir_if *if_stmt = nir_cf_node_as_if(node);
    #####:    #####:  235:      if (continue_from_then) {
    #####:    #####:  236:         return nir_after_block(nir_if_last_then_block(if_stmt));
        -:        -:  237:      } else {
    #####:    #####:  238:         return nir_after_block(nir_if_last_else_block(if_stmt));
        -:        -:  239:      }
        -:        -:  240:   }
        -:        -:  241:}
        -:        -:  242:
        -:        -:  243:/**
        -:        -:  244: * Unroll a loop with two exists when the trip count of one of the exits is
        -:        -:  245: * unknown.  If continue_from_then is true, the loop is repeated only when the
        -:        -:  246: * "then" branch of the if is taken; otherwise it is repeated only
        -:        -:  247: * when the "else" branch of the if is taken.
        -:        -:  248: *
        -:        -:  249: * For example, if the input is:
        -:        -:  250: *
        -:        -:  251: *      loop {
        -:        -:  252: *         ...phis/condition...
        -:        -:  253: *         if condition {
        -:        -:  254: *            ...then instructions...
        -:        -:  255: *         } else {
        -:        -:  256: *            ...continue instructions...
        -:        -:  257: *            break
        -:        -:  258: *         }
        -:        -:  259: *         ...body...
        -:        -:  260: *      }
        -:        -:  261: *
        -:        -:  262: * And the iteration count is 3, and unlimit_term->continue_from_then is true,
        -:        -:  263: * then the output will be:
        -:        -:  264: *
        -:        -:  265: *      ...condition...
        -:        -:  266: *      if condition {
        -:        -:  267: *         ...then instructions...
        -:        -:  268: *         ...body...
        -:        -:  269: *         if condition {
        -:        -:  270: *            ...then instructions...
        -:        -:  271: *            ...body...
        -:        -:  272: *            if condition {
        -:        -:  273: *               ...then instructions...
        -:        -:  274: *               ...body...
        -:        -:  275: *            } else {
        -:        -:  276: *               ...continue instructions...
        -:        -:  277: *            }
        -:        -:  278: *         } else {
        -:        -:  279: *            ...continue instructions...
        -:        -:  280: *         }
        -:        -:  281: *      } else {
        -:        -:  282: *         ...continue instructions...
        -:        -:  283: *      }
        -:        -:  284: */
        -:        -:  285:static void
    #####:    #####:  286:complex_unroll(nir_loop *loop, nir_loop_terminator *unlimit_term,
        -:        -:  287:               bool limiting_term_second)
        -:        -:  288:{
    #####:    #####:  289:   assert(nir_is_trivial_loop_if(unlimit_term->nif,
        -:        -:  290:                                 unlimit_term->break_block));
        -:        -:  291:
    #####:    #####:  292:   nir_loop_terminator *limiting_term = loop->info->limiting_terminator;
    #####:    #####:  293:   assert(nir_is_trivial_loop_if(limiting_term->nif,
        -:        -:  294:                                 limiting_term->break_block));
        -:        -:  295:
    #####:    #####:  296:   loop_prepare_for_unroll(loop);
        -:        -:  297:
    #####:    #####:  298:   nir_block *header_blk = nir_loop_first_block(loop);
        -:        -:  299:
        -:        -:  300:   nir_cf_list lp_header;
        -:        -:  301:   nir_cf_list limit_break_list;
        -:        -:  302:   unsigned num_times_to_clone;
    #####:    #####:  303:   if (limiting_term_second) {
        -:        -:  304:      /* Pluck out the loop header */
    #####:    #####:  305:      nir_cf_extract(&lp_header, nir_before_block(header_blk),
    #####:    #####:  306:                     nir_before_cf_node(&unlimit_term->nif->cf_node));
        -:        -:  307:
        -:        -:  308:      /* We need some special handling when its the second terminator causing
        -:        -:  309:       * us to exit the loop for example:
        -:        -:  310:       *
        -:        -:  311:       *   for (int i = 0; i < uniform_lp_count; i++) {
        -:        -:  312:       *      colour = vec4(0.0, 1.0, 0.0, 1.0);
        -:        -:  313:       *
        -:        -:  314:       *      if (i == 1) {
        -:        -:  315:       *         break;
        -:        -:  316:       *      }
        -:        -:  317:       *      ... any further code is unreachable after i == 1 ...
        -:        -:  318:       *   }
        -:        -:  319:       */
        -:        -:  320:      nir_cf_list after_lt;
    #####:    #####:  321:      nir_if *limit_if = limiting_term->nif;
    #####:    #####:  322:      nir_cf_extract(&after_lt, nir_after_cf_node(&limit_if->cf_node),
        -:        -:  323:                     nir_after_block(nir_loop_last_block(loop)));
    #####:    #####:  324:      move_cf_list_into_loop_term(&after_lt, limiting_term);
        -:        -:  325:
        -:        -:  326:      /* Because the trip count is the number of times we pass over the entire
        -:        -:  327:       * loop before hitting a break when the second terminator is the
        -:        -:  328:       * limiting terminator we can actually execute code inside the loop when
        -:        -:  329:       * trip count == 0 e.g. the code above the break.  So we need to bump
        -:        -:  330:       * the trip_count in order for the code below to clone anything.  When
        -:        -:  331:       * trip count == 1 we execute the code above the break twice and the
        -:        -:  332:       * code below it once so we need clone things twice and so on.
        -:        -:  333:       */
    #####:    #####:  334:      num_times_to_clone = loop->info->trip_count + 1;
        -:        -:  335:   } else {
        -:        -:  336:      /* Pluck out the loop header */
    #####:    #####:  337:      nir_cf_extract(&lp_header, nir_before_block(header_blk),
    #####:    #####:  338:                     nir_before_cf_node(&limiting_term->nif->cf_node));
        -:        -:  339:
        -:        -:  340:      nir_block *first_break_block;
        -:        -:  341:      nir_block *first_continue_block;
    #####:    #####:  342:      get_first_blocks_in_terminator(limiting_term, &first_break_block,
        -:        -:  343:                                     &first_continue_block);
        -:        -:  344:
        -:        -:  345:      /* Remove the break then extract instructions from the break block so we
        -:        -:  346:       * can insert them in the innermost else of the unrolled loop.
        -:        -:  347:       */
    #####:    #####:  348:      nir_instr *break_instr = nir_block_last_instr(limiting_term->break_block);
    #####:    #####:  349:      nir_instr_remove(break_instr);
    #####:    #####:  350:      nir_cf_extract(&limit_break_list, nir_before_block(first_break_block),
        -:        -:  351:                     nir_after_block(limiting_term->break_block));
        -:        -:  352:
        -:        -:  353:      nir_cf_list continue_list;
    #####:    #####:  354:      nir_cf_extract(&continue_list, nir_before_block(first_continue_block),
        -:        -:  355:                     nir_after_block(limiting_term->continue_from_block));
        -:        -:  356:
    #####:    #####:  357:      nir_cf_reinsert(&continue_list,
    #####:    #####:  358:                      nir_after_cf_node(&limiting_term->nif->cf_node));
        -:        -:  359:
    #####:    #####:  360:      nir_cf_node_remove(&limiting_term->nif->cf_node);
        -:        -:  361:
    #####:    #####:  362:      num_times_to_clone = loop->info->trip_count;
        -:        -:  363:   }
        -:        -:  364:
        -:        -:  365:   /* In the terminator that we have no trip count for move everything after
        -:        -:  366:    * the terminator into the continue from branch.
        -:        -:  367:    */
        -:        -:  368:   nir_cf_list loop_end;
    #####:    #####:  369:   nir_cf_extract(&loop_end, nir_after_cf_node(&unlimit_term->nif->cf_node),
        -:        -:  370:                  nir_after_block(nir_loop_last_block(loop)));
    #####:    #####:  371:   move_cf_list_into_loop_term(&loop_end, unlimit_term);
        -:        -:  372:
        -:        -:  373:   /* Pluck out the loop body. */
        -:        -:  374:   nir_cf_list loop_body;
    #####:    #####:  375:   nir_cf_extract(&loop_body, nir_before_block(nir_loop_first_block(loop)),
        -:        -:  376:                  nir_after_block(nir_loop_last_block(loop)));
        -:        -:  377:
    #####:    #####:  378:   struct hash_table *remap_table =
        -:        -:  379:      _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -:  380:                              _mesa_key_pointer_equal);
        -:        -:  381:
        -:        -:  382:   /* Set unroll_loc to the loop as we will insert the unrolled loop before it
        -:        -:  383:    */
    #####:    #####:  384:   nir_cf_node *unroll_loc = &loop->cf_node;
        -:        -:  385:
        -:        -:  386:   /* Temp lists to store the cloned loop as we unroll */
        -:        -:  387:   nir_cf_list unrolled_lp_body;
        -:        -:  388:   nir_cf_list cloned_header;
        -:        -:  389:
    #####:    #####:  390:   for (unsigned i = 0; i < num_times_to_clone; i++) {
        -:        -:  391:      /* Clone loop header */
    #####:    #####:  392:      nir_cf_list_clone(&cloned_header, &lp_header, loop->cf_node.parent,
        -:        -:  393:                        remap_table);
        -:        -:  394:
    #####:    #####:  395:      nir_cursor cursor =
    #####:    #####:  396:         get_complex_unroll_insert_location(unroll_loc,
    #####:    #####:  397:                                            unlimit_term->continue_from_then);
        -:        -:  398:
        -:        -:  399:      /* Insert cloned loop header */
    #####:    #####:  400:      nir_cf_reinsert(&cloned_header, cursor);
        -:        -:  401:
    #####:    #####:  402:      cursor =
    #####:    #####:  403:         get_complex_unroll_insert_location(unroll_loc,
    #####:    #####:  404:                                            unlimit_term->continue_from_then);
        -:        -:  405:
        -:        -:  406:      /* Clone loop body */
    #####:    #####:  407:      nir_cf_list_clone(&unrolled_lp_body, &loop_body, loop->cf_node.parent,
        -:        -:  408:                        remap_table);
        -:        -:  409:
    #####:    #####:  410:      unroll_loc = exec_node_data(nir_cf_node,
        -:        -:  411:                                  exec_list_get_tail(&unrolled_lp_body.list),
        -:        -:  412:                                  node);
    #####:    #####:  413:      assert(unroll_loc->type == nir_cf_node_block &&
        -:        -:  414:             exec_list_is_empty(&nir_cf_node_as_block(unroll_loc)->instr_list));
        -:        -:  415:
        -:        -:  416:      /* Get the unrolled if node */
    #####:    #####:  417:      unroll_loc = nir_cf_node_prev(unroll_loc);
        -:        -:  418:
        -:        -:  419:      /* Insert unrolled loop body */
    #####:    #####:  420:      nir_cf_reinsert(&unrolled_lp_body, cursor);
        -:        -:  421:   }
        -:        -:  422:
    #####:    #####:  423:   if (!limiting_term_second) {
    #####:    #####:  424:      assert(unroll_loc->type == nir_cf_node_if);
        -:        -:  425:
    #####:    #####:  426:      nir_cf_list_clone(&cloned_header, &lp_header, loop->cf_node.parent,
        -:        -:  427:                        remap_table);
        -:        -:  428:
    #####:    #####:  429:      nir_cursor cursor =
    #####:    #####:  430:         get_complex_unroll_insert_location(unroll_loc,
    #####:    #####:  431:                                            unlimit_term->continue_from_then);
        -:        -:  432:
        -:        -:  433:      /* Insert cloned loop header */
    #####:    #####:  434:      nir_cf_reinsert(&cloned_header, cursor);
        -:        -:  435:
        -:        -:  436:      /* Clone so things get properly remapped, and insert break block from
        -:        -:  437:       * the limiting terminator.
        -:        -:  438:       */
        -:        -:  439:      nir_cf_list cloned_break_blk;
    #####:    #####:  440:      nir_cf_list_clone(&cloned_break_blk, &limit_break_list,
    #####:    #####:  441:                        loop->cf_node.parent, remap_table);
        -:        -:  442:
    #####:    #####:  443:      cursor =
    #####:    #####:  444:         get_complex_unroll_insert_location(unroll_loc,
    #####:    #####:  445:                                            unlimit_term->continue_from_then);
        -:        -:  446:
    #####:    #####:  447:      nir_cf_reinsert(&cloned_break_blk, cursor);
    #####:    #####:  448:      nir_cf_delete(&limit_break_list);
        -:        -:  449:   }
        -:        -:  450:
        -:        -:  451:   /* The loop has been unrolled so remove it. */
    #####:    #####:  452:   nir_cf_node_remove(&loop->cf_node);
        -:        -:  453:
        -:        -:  454:   /* Delete the original loop header and body */
    #####:    #####:  455:   nir_cf_delete(&lp_header);
    #####:    #####:  456:   nir_cf_delete(&loop_body);
        -:        -:  457:
    #####:    #####:  458:   _mesa_hash_table_destroy(remap_table, NULL);
    #####:    #####:  459:}
        -:        -:  460:
        -:        -:  461:static bool
       17:        1:  462:is_loop_small_enough_to_unroll(nir_shader *shader, nir_loop_info *li)
        -:        -:  463:{
       17:        1:  464:   unsigned max_iter = shader->options->max_unroll_iterations;
        -:        -:  465:
       17:        1:  466:   if (li->trip_count > max_iter)
       16:    #####:  467:      return false;
        -:        -:  468:
        1:        1:  469:   if (li->force_unroll)
    #####:    #####:  470:      return true;
        -:        -:  471:
        1:        1:  472:   bool loop_not_too_large =
        1:        1:  473:      li->num_instructions * li->trip_count <= max_iter * LOOP_UNROLL_LIMIT;
        -:        -:  474:
        1:        1:  475:   return loop_not_too_large;
        -:        -:  476:}
        -:        -:  477:
        -:        -:  478:static bool
      361:      537:  479:process_loops(nir_shader *sh, nir_cf_node *cf_node, bool *innermost_loop)
        -:        -:  480:{
      361:      537:  481:   bool progress = false;
        -:        -:  482:   nir_loop *loop;
        -:        -:  483:
      361:      537:  484:   switch (cf_node->type) {
        -:        -:  485:   case nir_cf_node_block:
      273:      401:  486:      return progress;
        -:        -:  487:   case nir_cf_node_if: {
       71:      103:  488:      nir_if *if_stmt = nir_cf_node_as_if(cf_node);
      142:      206:  489:      foreach_list_typed_safe(nir_cf_node, nested_node, node, &if_stmt->then_list)
       71:      103:  490:         progress |= process_loops(sh, nested_node, innermost_loop);
      142:      206:  491:      foreach_list_typed_safe(nir_cf_node, nested_node, node, &if_stmt->else_list)
       71:      103:  492:         progress |= process_loops(sh, nested_node, innermost_loop);
       71:      103:  493:      return progress;
        -:        -:  494:   }
        -:        -:  495:   case nir_cf_node_loop: {
       17:       33:  496:      loop = nir_cf_node_as_loop(cf_node);
      134:      262:  497:      foreach_list_typed_safe(nir_cf_node, nested_node, node, &loop->body)
      117:      229:  498:         progress |= process_loops(sh, nested_node, innermost_loop);
       17:       33:  499:      break;
        -:        -:  500:   }
        -:        -:  501:   default:
    #####:    #####:  502:      unreachable("unknown cf node type");
        -:        -:  503:   }
        -:        -:  504:
       17:       33:  505:   if (*innermost_loop) {
        -:        -:  506:      /* Don't attempt to unroll outer loops or a second inner loop in
        -:        -:  507:       * this pass wait until the next pass as we have altered the cf.
        -:        -:  508:       */
       17:       17:  509:      *innermost_loop = false;
        -:        -:  510:
       17:       17:  511:      if (loop->info->limiting_terminator == NULL)
    #####:       16:  512:         return progress;
        -:        -:  513:
       17:        1:  514:      if (!is_loop_small_enough_to_unroll(sh, loop->info))
       16:    #####:  515:         return progress;
        -:        -:  516:
        1:        1:  517:      if (loop->info->is_trip_count_known) {
        1:        1:  518:         simple_unroll(loop);
        1:        1:  519:         progress = true;
        -:        -:  520:      } else {
        -:        -:  521:         /* Attempt to unroll loops with two terminators. */
    #####:    #####:  522:         unsigned num_lt = list_length(&loop->info->loop_terminator_list);
    #####:    #####:  523:         if (num_lt == 2) {
    #####:    #####:  524:            bool limiting_term_second = true;
    #####:    #####:  525:            nir_loop_terminator *terminator =
    #####:    #####:  526:               list_last_entry(&loop->info->loop_terminator_list,
        -:        -:  527:                                nir_loop_terminator, loop_terminator_link);
        -:        -:  528:
        -:        -:  529:
    #####:    #####:  530:            if (terminator->nif == loop->info->limiting_terminator->nif) {
    #####:    #####:  531:               limiting_term_second = false;
    #####:    #####:  532:               terminator =
    #####:    #####:  533:                  list_first_entry(&loop->info->loop_terminator_list,
        -:        -:  534:                                  nir_loop_terminator, loop_terminator_link);
        -:        -:  535:            }
        -:        -:  536:
        -:        -:  537:            /* If the first terminator has a trip count of zero and is the
        -:        -:  538:             * limiting terminator just do a simple unroll as the second
        -:        -:  539:             * terminator can never be reached.
        -:        -:  540:             */
    #####:    #####:  541:            if (loop->info->trip_count == 0 && !limiting_term_second) {
    #####:    #####:  542:               simple_unroll(loop);
        -:        -:  543:            } else {
    #####:    #####:  544:               complex_unroll(loop, terminator, limiting_term_second);
        -:        -:  545:            }
    #####:    #####:  546:            progress = true;
        -:        -:  547:         }
        -:        -:  548:      }
        -:        -:  549:   }
        -:        -:  550:
        1:       17:  551:   return progress;
        -:        -:  552:}
        -:        -:  553:
        -:        -:  554:static bool
       27:       27:  555:nir_opt_loop_unroll_impl(nir_function_impl *impl,
        -:        -:  556:                         nir_variable_mode indirect_mask)
        -:        -:  557:{
       27:       27:  558:   bool progress = false;
       27:       27:  559:   nir_metadata_require(impl, nir_metadata_loop_analysis, indirect_mask);
       27:       27:  560:   nir_metadata_require(impl, nir_metadata_block_index);
        -:        -:  561:
      129:      129:  562:   foreach_list_typed_safe(nir_cf_node, node, node, &impl->body) {
      102:      102:  563:      bool innermost_loop = true;
      102:      102:  564:      progress |= process_loops(impl->function->shader, node,
        -:        -:  565:                                &innermost_loop);
        -:        -:  566:   }
        -:        -:  567:
       27:       27:  568:   if (progress)
        1:        1:  569:      nir_lower_regs_to_ssa_impl(impl);
        -:        -:  570:
       27:       27:  571:   return progress;
        -:        -:  572:}
        -:        -:  573:
        -:        -:  574:bool
       27:       27:  575:nir_opt_loop_unroll(nir_shader *shader, nir_variable_mode indirect_mask)
        -:        -:  576:{
       27:       27:  577:   bool progress = false;
        -:        -:  578:
       54:       54:  579:   nir_foreach_function(function, shader) {
       27:       27:  580:      if (function->impl) {
       27:       27:  581:         progress |= nir_opt_loop_unroll_impl(function->impl, indirect_mask);
        -:        -:  582:      }
        -:        -:  583:   }
       27:       27:  584:   return progress;
        -:        -:  585:}

src/compiler/nir_opt_move_comparisons.c.gcov

        -:        -:    0:Source:nir/nir_opt_move_comparisons.c
        -:        -:    0:Graph:nir/.libs/nir_opt_move_comparisons.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_move_comparisons.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:
        -:        -:   26:/**
        -:        -:   27: * \file nir_opt_move_comparisons.c
        -:        -:   28: *
        -:        -:   29: * This pass moves ALU comparison operations just before their first use.
        -:        -:   30: *
        -:        -:   31: * It only moves instructions within a single basic block; cross-block
        -:        -:   32: * movement is left to global code motion.
        -:        -:   33: *
        -:        -:   34: * Many GPUs generate condition codes for comparisons, and use predication
        -:        -:   35: * for conditional selects and control flow.  In a sequence such as:
        -:        -:   36: *
        -:        -:   37: *     vec1 32 ssa_1 = flt a b
        -:        -:   38: *     <some other operations>
        -:        -:   39: *     vec1 32 ssa_2 = bcsel ssa_1 c d
        -:        -:   40: *
        -:        -:   41: * the backend would likely do the comparison, producing condition codes,
        -:        -:   42: * then save those to a boolean value.  The intervening operations might
        -:        -:   43: * trash the condition codes.  Then, in order to do the bcsel, it would
        -:        -:   44: * need to re-populate the condition code register based on the boolean.
        -:        -:   45: *
        -:        -:   46: * By moving the comparison just before the bcsel, the condition codes could
        -:        -:   47: * be used directly.  This eliminates the need to reload them from the boolean
        -:        -:   48: * (generally eliminating an instruction).  It may also eliminate the need to
        -:        -:   49: * create a boolean value altogether (unless it's used elsewhere), which could
        -:        -:   50: * lower register pressure.
        -:        -:   51: */
        -:        -:   52:
        -:        -:   53:static bool
       46:       48:   54:is_comparison(nir_op op)
        -:        -:   55:{
       46:       48:   56:   switch (op) {
        -:        -:   57:   case nir_op_flt:
        -:        -:   58:   case nir_op_fge:
        -:        -:   59:   case nir_op_feq:
        -:        -:   60:   case nir_op_fne:
        -:        -:   61:   case nir_op_ilt:
        -:        -:   62:   case nir_op_ult:
        -:        -:   63:   case nir_op_ige:
        -:        -:   64:   case nir_op_uge:
        -:        -:   65:   case nir_op_ieq:
        -:        -:   66:   case nir_op_ine:
        -:        -:   67:   case nir_op_i2b:
        -:        -:   68:   case nir_op_f2b:
        -:        -:   69:   case nir_op_inot:
        -:        -:   70:   case nir_op_fnot:
        9:       11:   71:      return true;
        -:        -:   72:   default:
       37:       37:   73:      return false;
        -:        -:   74:   }
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:static bool
      148:      156:   78:move_comparison_source(nir_src *src, nir_block *block, nir_instr *before)
        -:        -:   79:{
      148:      156:   80:   if (!src->is_ssa)
    #####:    #####:   81:      return false;
        -:        -:   82:
      148:      156:   83:   nir_instr *src_instr = src->ssa->parent_instr;
        -:        -:   84:
      254:      266:   85:   if (src_instr->block == block &&
      152:      158:   86:       src_instr->type == nir_instr_type_alu &&
       46:       48:   87:       is_comparison(nir_instr_as_alu(src_instr)->op)) {
        -:        -:   88:
        9:       11:   89:      exec_node_remove(&src_instr->node);
        -:        -:   90:
        9:       11:   91:      if (before)
    #####:    #####:   92:         exec_node_insert_node_before(&before->node, &src_instr->node);
        -:        -:   93:      else
        9:       11:   94:         exec_list_push_tail(&block->instr_list, &src_instr->node);
        -:        -:   95:
        9:       11:   96:      return true;
        -:        -:   97:   }
        -:        -:   98:
      139:      145:   99:   return false;
        -:        -:  100:}
        -:        -:  101:
        -:        -:  102:static bool
       33:       33:  103:move_comparison_source_cb(nir_src *src, void *data)
        -:        -:  104:{
       33:       33:  105:   bool *progress = data;
        -:        -:  106:
       33:       33:  107:   nir_instr *instr = src->parent_instr;
       33:       33:  108:   if (move_comparison_source(src, instr->block, instr))
    #####:    #####:  109:      *progress = true;
        -:        -:  110:
       33:       33:  111:   return true; /* nir_foreach_src should keep going */
        -:        -:  112:}
        -:        -:  113:
        -:        -:  114:static bool
       36:       52:  115:move_comparisons(nir_block *block)
        -:        -:  116:{
       36:       52:  117:   bool progress = false;
        -:        -:  118:
        -:        -:  119:   /* We use a simple approach: walk instructions backwards.
        -:        -:  120:    *
        -:        -:  121:    * If the instruction's source is a comparison from the same block,
        -:        -:  122:    * simply move it here.  This may break SSA if it's used earlier in
        -:        -:  123:    * the block as well.  However, as we walk backwards, we'll find the
        -:        -:  124:    * earlier use and move it again, further up.  It eventually ends up
        -:        -:  125:    * dominating all uses again, restoring SSA form.
        -:        -:  126:    *
        -:        -:  127:    * Before walking instructions, we consider the if-condition at the
        -:        -:  128:    * end of the block, if one exists.  It's effectively a use at the
        -:        -:  129:    * bottom of the block.
        -:        -:  130:    */
       36:       52:  131:   nir_if *iff = nir_block_get_following_if(block);
       36:       52:  132:   if (iff) {
        9:       13:  133:      progress |= move_comparison_source(&iff->condition, block, NULL);
        -:        -:  134:   }
        -:        -:  135:
      141:      163:  136:   nir_foreach_instr_reverse(instr, block) {
        -:        -:  137:      /* The sources of phi instructions happen after the predecessor block
        -:        -:  138:       * but before this block.  (Yes, that's between blocks).  This means
        -:        -:  139:       * that we don't need to move them in order for them to be correct.
        -:        -:  140:       * We could move them to encourage comparisons that are used in a phi to
        -:        -:  141:       * the end of the block, doing so correctly would make the pass
        -:        -:  142:       * substantially more complicated and wouldn't gain us anything since
        -:        -:  143:       * the phi can't use a flag value anyway.
        -:        -:  144:       */
      114:      122:  145:      if (instr->type == nir_instr_type_phi) {
        -:        -:  146:         /* We're going backwards so everything else is a phi too */
        9:       11:  147:         break;
      105:      111:  148:      } else if (instr->type == nir_instr_type_alu) {
        -:        -:  149:         /* Walk ALU instruction sources backwards so that bcsel's boolean
        -:        -:  150:          * condition is processed last.
        -:        -:  151:          */
       52:       54:  152:         nir_alu_instr *alu = nir_instr_as_alu(instr);
      158:      164:  153:         for (int i = nir_op_infos[alu->op].num_inputs - 1; i >= 0; i--) {
      106:      110:  154:            progress |= move_comparison_source(&alu->src[i].src,
        -:        -:  155:                                               block, instr);
        -:        -:  156:         }
        -:        -:  157:      } else {
       53:       57:  158:         nir_foreach_src(instr, move_comparison_source_cb, &progress);
        -:        -:  159:      }
        -:        -:  160:   }
        -:        -:  161:
       36:       52:  162:   return progress;
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:bool
        5:        5:  166:nir_opt_move_comparisons(nir_shader *shader)
        -:        -:  167:{
        5:        5:  168:   bool progress = false;
        -:        -:  169:
       10:       10:  170:   nir_foreach_function(func, shader) {
        5:        5:  171:      if (!func->impl)
    #####:    #####:  172:         continue;
        -:        -:  173:
       41:       57:  174:      nir_foreach_block(block, func->impl) {
       36:       52:  175:         if (move_comparisons(block)) {
        9:       11:  176:            nir_metadata_preserve(func->impl, nir_metadata_block_index |
        -:        -:  177:                                              nir_metadata_dominance |
        -:        -:  178:                                              nir_metadata_live_ssa_defs);
        9:       11:  179:            progress = true;
        -:        -:  180:         }
        -:        -:  181:      }
        -:        -:  182:   }
        -:        -:  183:
        5:        5:  184:   return progress;
        -:        -:  185:}

src/compiler/nir_opt_peephole_select.c.gcov

        -:        -:    0:Source:nir/nir_opt_peephole_select.c
        -:        -:    0:Graph:nir/.libs/nir_opt_peephole_select.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_peephole_select.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_control_flow.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Implements a small peephole optimization that looks for
        -:        -:   33: *
        -:        -:   34: * if (cond) {
        -:        -:   35: *    <then SSA defs>
        -:        -:   36: * } else {
        -:        -:   37: *    <else SSA defs>
        -:        -:   38: * }
        -:        -:   39: * phi
        -:        -:   40: * ...
        -:        -:   41: * phi
        -:        -:   42: *
        -:        -:   43: * and replaces it with:
        -:        -:   44: *
        -:        -:   45: * <then SSA defs>
        -:        -:   46: * <else SSA defs>
        -:        -:   47: * bcsel
        -:        -:   48: * ...
        -:        -:   49: * bcsel
        -:        -:   50: *
        -:        -:   51: * where the SSA defs are ALU operations or other cheap instructions (not
        -:        -:   52: * texturing, for example).
        -:        -:   53: *
        -:        -:   54: * If the number of ALU operations in the branches is greater than the limit
        -:        -:   55: * parameter, then the optimization is skipped.  In limit=0 mode, the SSA defs
        -:        -:   56: * must only be MOVs which we expect to get copy-propagated away once they're
        -:        -:   57: * out of the inner blocks.
        -:        -:   58: */
        -:        -:   59:
        -:        -:   60:static bool
      107:      139:   61:block_check_for_allowed_instrs(nir_block *block, unsigned *count, bool alu_ok)
        -:        -:   62:{
      123:      155:   63:   nir_foreach_instr(instr, block) {
       87:      119:   64:      switch (instr->type) {
        -:        -:   65:      case nir_instr_type_intrinsic: {
       16:       16:   66:         nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:   67:
       16:       16:   68:         switch (intrin->intrinsic) {
        -:        -:   69:         case nir_intrinsic_load_var:
       12:       12:   70:            switch (intrin->variables[0]->var->data.mode) {
        -:        -:   71:            case nir_var_shader_in:
        -:        -:   72:            case nir_var_uniform:
       12:       12:   73:               break;
        -:        -:   74:
        -:        -:   75:            default:
    #####:    #####:   76:               return false;
        -:        -:   77:            }
       12:       12:   78:            break;
        -:        -:   79:
        -:        -:   80:         case nir_intrinsic_load_uniform:
        4:        4:   81:            if (!alu_ok)
        4:        4:   82:               return false;
    #####:    #####:   83:            break;
        -:        -:   84:
        -:        -:   85:         default:
    #####:    #####:   86:            return false;
        -:        -:   87:         }
        -:        -:   88:
       12:       12:   89:         break;
        -:        -:   90:      }
        -:        -:   91:
        -:        -:   92:      case nir_instr_type_load_const:
        4:        4:   93:         break;
        -:        -:   94:
        -:        -:   95:      case nir_instr_type_alu: {
       34:       34:   96:         nir_alu_instr *mov = nir_instr_as_alu(instr);
       34:       34:   97:         switch (mov->op) {
        -:        -:   98:         case nir_op_fmov:
        -:        -:   99:         case nir_op_imov:
        -:        -:  100:         case nir_op_fneg:
        -:        -:  101:         case nir_op_ineg:
        -:        -:  102:         case nir_op_fabs:
        -:        -:  103:         case nir_op_iabs:
        -:        -:  104:         case nir_op_vec2:
        -:        -:  105:         case nir_op_vec3:
        -:        -:  106:         case nir_op_vec4:
    #####:    #####:  107:            break;
        -:        -:  108:         default:
       34:       34:  109:            if (!alu_ok) {
        -:        -:  110:               /* It must be a move-like operation. */
       34:       34:  111:               return false;
        -:        -:  112:            }
    #####:    #####:  113:            break;
        -:        -:  114:         }
        -:        -:  115:
        -:        -:  116:         /* It must be SSA */
    #####:    #####:  117:         if (!mov->dest.dest.is_ssa)
    #####:    #####:  118:            return false;
        -:        -:  119:
    #####:    #####:  120:         if (alu_ok) {
    #####:    #####:  121:            (*count)++;
        -:        -:  122:         } else {
        -:        -:  123:            /* Can't handle saturate */
    #####:    #####:  124:            if (mov->dest.saturate)
    #####:    #####:  125:               return false;
        -:        -:  126:
        -:        -:  127:            /* It cannot have any if-uses */
    #####:    #####:  128:            if (!list_empty(&mov->dest.dest.ssa.if_uses))
    #####:    #####:  129:               return false;
        -:        -:  130:
        -:        -:  131:            /* The only uses of this definition must be phis in the successor */
    #####:    #####:  132:            nir_foreach_use(use, &mov->dest.dest.ssa) {
    #####:    #####:  133:               if (use->parent_instr->type != nir_instr_type_phi ||
    #####:    #####:  134:                   use->parent_instr->block != block->successors[0])
    #####:    #####:  135:                  return false;
        -:        -:  136:            }
        -:        -:  137:         }
    #####:    #####:  138:         break;
        -:        -:  139:      }
        -:        -:  140:
        -:        -:  141:      default:
       33:       65:  142:         return false;
        -:        -:  143:      }
        -:        -:  144:   }
        -:        -:  145:
       36:       36:  146:   return true;
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:static bool
      328:      456:  150:nir_opt_peephole_select_block(nir_block *block, nir_shader *shader,
        -:        -:  151:                              unsigned limit)
        -:        -:  152:{
      328:      456:  153:   if (nir_cf_node_is_first(&block->cf_node))
      222:      302:  154:      return false;
        -:        -:  155:
      106:      154:  156:   nir_cf_node *prev_node = nir_cf_node_prev(&block->cf_node);
      106:      154:  157:   if (prev_node->type != nir_cf_node_if)
       17:       33:  158:      return false;
        -:        -:  159:
       89:      121:  160:   nir_if *if_stmt = nir_cf_node_as_if(prev_node);
       89:      121:  161:   nir_block *then_block = nir_if_first_then_block(if_stmt);
       89:      121:  162:   nir_block *else_block = nir_if_first_else_block(if_stmt);
        -:        -:  163:
        -:        -:  164:   /* We can only have one block in each side ... */
      178:      242:  165:   if (nir_if_last_then_block(if_stmt) != then_block ||
       89:      121:  166:       nir_if_last_else_block(if_stmt) != else_block)
    #####:    #####:  167:      return false;
        -:        -:  168:
        -:        -:  169:   /* ... and those blocks must only contain "allowed" instructions. */
       89:      121:  170:   unsigned count = 0;
      107:      139:  171:   if (!block_check_for_allowed_instrs(then_block, &count, limit != 0) ||
       18:       18:  172:       !block_check_for_allowed_instrs(else_block, &count, limit != 0))
       71:      103:  173:      return false;
        -:        -:  174:
       18:       18:  175:   if (count > limit)
    #####:    #####:  176:      return false;
        -:        -:  177:
        -:        -:  178:   /* At this point, we know that the previous CFG node is an if-then
        -:        -:  179:    * statement containing only moves to phi nodes in this block.  We can
        -:        -:  180:    * just remove that entire CF node and replace all of the phi nodes with
        -:        -:  181:    * selects.
        -:        -:  182:    */
        -:        -:  183:
       18:       18:  184:   nir_block *prev_block = nir_cf_node_as_block(nir_cf_node_prev(prev_node));
        -:        -:  185:
        -:        -:  186:   /* First, we move the remaining instructions from the blocks to the
        -:        -:  187:    * block before.  We have already guaranteed that this is safe by
        -:        -:  188:    * calling block_check_for_allowed_instrs()
        -:        -:  189:    */
       18:       18:  190:   nir_foreach_instr_safe(instr, then_block) {
    #####:    #####:  191:      exec_node_remove(&instr->node);
    #####:    #####:  192:      instr->block = prev_block;
    #####:    #####:  193:      exec_list_push_tail(&prev_block->instr_list, &instr->node);
        -:        -:  194:   }
        -:        -:  195:
       18:       18:  196:   nir_foreach_instr_safe(instr, else_block) {
    #####:    #####:  197:      exec_node_remove(&instr->node);
    #####:    #####:  198:      instr->block = prev_block;
    #####:    #####:  199:      exec_list_push_tail(&prev_block->instr_list, &instr->node);
        -:        -:  200:   }
        -:        -:  201:
       36:       36:  202:   nir_foreach_instr_safe(instr, block) {
       25:       25:  203:      if (instr->type != nir_instr_type_phi)
        7:        7:  204:         break;
        -:        -:  205:
       18:       18:  206:      nir_phi_instr *phi = nir_instr_as_phi(instr);
       18:       18:  207:      nir_alu_instr *sel = nir_alu_instr_create(shader, nir_op_bcsel);
       18:       18:  208:      nir_src_copy(&sel->src[0].src, &if_stmt->condition, sel);
        -:        -:  209:      /* Splat the condition to all channels */
       18:       18:  210:      memset(sel->src[0].swizzle, 0, sizeof sel->src[0].swizzle);
        -:        -:  211:
       18:       18:  212:      assert(exec_list_length(&phi->srcs) == 2);
       54:       54:  213:      nir_foreach_phi_src(src, phi) {
       36:       36:  214:         assert(src->pred == then_block || src->pred == else_block);
       36:       36:  215:         assert(src->src.is_ssa);
        -:        -:  216:
       36:       36:  217:         unsigned idx = src->pred == then_block ? 1 : 2;
       36:       36:  218:         nir_src_copy(&sel->src[idx].src, &src->src, sel);
        -:        -:  219:      }
        -:        -:  220:
       54:       54:  221:      nir_ssa_dest_init(&sel->instr, &sel->dest.dest,
       18:       18:  222:                        phi->dest.ssa.num_components,
       18:       18:  223:                        phi->dest.ssa.bit_size, phi->dest.ssa.name);
       18:       18:  224:      sel->dest.write_mask = (1 << phi->dest.ssa.num_components) - 1;
        -:        -:  225:
       18:       18:  226:      nir_ssa_def_rewrite_uses(&phi->dest.ssa,
        -:        -:  227:                               nir_src_for_ssa(&sel->dest.dest.ssa));
        -:        -:  228:
       18:       18:  229:      nir_instr_insert_before(&phi->instr, &sel->instr);
       18:       18:  230:      nir_instr_remove(&phi->instr);
        -:        -:  231:   }
        -:        -:  232:
       18:       18:  233:   nir_cf_node_remove(&if_stmt->cf_node);
       18:       18:  234:   return true;
        -:        -:  235:}
        -:        -:  236:
        -:        -:  237:static bool
       27:       27:  238:nir_opt_peephole_select_impl(nir_function_impl *impl, unsigned limit)
        -:        -:  239:{
       27:       27:  240:   nir_shader *shader = impl->function->shader;
       27:       27:  241:   bool progress = false;
        -:        -:  242:
      355:      483:  243:   nir_foreach_block_safe(block, impl) {
      328:      456:  244:      progress |= nir_opt_peephole_select_block(block, shader, limit);
        -:        -:  245:   }
        -:        -:  246:
       27:       27:  247:   if (progress)
        1:        1:  248:      nir_metadata_preserve(impl, nir_metadata_none);
        -:        -:  249:
       27:       27:  250:   return progress;
        -:        -:  251:}
        -:        -:  252:
        -:        -:  253:bool
       27:       27:  254:nir_opt_peephole_select(nir_shader *shader, unsigned limit)
        -:        -:  255:{
       27:       27:  256:   bool progress = false;
        -:        -:  257:
       54:       54:  258:   nir_foreach_function(function, shader) {
       27:       27:  259:      if (function->impl)
       27:       27:  260:         progress |= nir_opt_peephole_select_impl(function->impl, limit);
        -:        -:  261:   }
        -:        -:  262:
       27:       27:  263:   return progress;
        -:        -:  264:}

src/compiler/nir_opt_remove_phis.c.gcov

        -:        -:    0:Source:nir/nir_opt_remove_phis.c
        -:        -:    0:Graph:nir/.libs/nir_opt_remove_phis.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_remove_phis.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include "nir_builder.h"
        -:        -:   30:
        -:        -:   31:static nir_alu_instr *
      204:      268:   32:get_parent_mov(nir_ssa_def *ssa)
        -:        -:   33:{
      204:      268:   34:   if (ssa->parent_instr->type != nir_instr_type_alu)
       99:      163:   35:      return NULL;
        -:        -:   36:
      105:      105:   37:   nir_alu_instr *alu = nir_instr_as_alu(ssa->parent_instr);
      105:      105:   38:   return (alu->op == nir_op_imov || alu->op == nir_op_fmov) ? alu : NULL;
        -:        -:   39:}
        -:        -:   40:
        -:        -:   41:static bool
      170:      234:   42:matching_mov(nir_alu_instr *mov1, nir_ssa_def *ssa)
        -:        -:   43:{
      170:      234:   44:   if (!mov1)
      145:      209:   45:      return false;
        -:        -:   46:
       25:       25:   47:   nir_alu_instr *mov2 = get_parent_mov(ssa);
       25:       25:   48:   return mov2 && nir_alu_srcs_equal(mov1, mov2, 0, 0);
        -:        -:   49:}
        -:        -:   50:
        -:        -:   51:/*
        -:        -:   52: * This is a pass for removing phi nodes that look like:
        -:        -:   53: * a = phi(b, b, b, ...)
        -:        -:   54: *
        -:        -:   55: * Note that we can't ignore undef sources here, or else we may create a
        -:        -:   56: * situation where the definition of b isn't dominated by its uses. We're
        -:        -:   57: * allowed to do this since the definition of b must dominate all of the
        -:        -:   58: * phi node's predecessors, which means it must dominate the phi node as well
        -:        -:   59: * as all of the phi node's uses. In essence, the phi node acts as a copy
        -:        -:   60: * instruction. b can't be another phi node in the same block, since the only
        -:        -:   61: * time when phi nodes can source other phi nodes defined in the same block is
        -:        -:   62: * at the loop header, and in that case one of the sources of the phi has to
        -:        -:   63: * be from before the loop and that source can't be b.
        -:        -:   64: */
        -:        -:   65:
        -:        -:   66:static bool
      275:      403:   67:remove_phis_block(nir_block *block, nir_builder *b)
        -:        -:   68:{
      275:      403:   69:   bool progress = false;
        -:        -:   70:
      454:      646:   71:   nir_foreach_instr_safe(instr, block) {
      385:      497:   72:      if (instr->type != nir_instr_type_phi)
      206:      254:   73:         break;
        -:        -:   74:
      179:      243:   75:      nir_phi_instr *phi = nir_instr_as_phi(instr);
        -:        -:   76:
      179:      243:   77:      nir_ssa_def *def = NULL;
      179:      243:   78:      nir_alu_instr *mov = NULL;
      179:      243:   79:      bool srcs_same = true;
        -:        -:   80:
      376:      504:   81:      nir_foreach_phi_src(src, phi) {
      358:      486:   82:         assert(src->src.is_ssa);
        -:        -:   83:
        -:        -:   84:         /* For phi nodes at the beginning of loops, we may encounter some
        -:        -:   85:          * sources from backedges that point back to the destination of the
        -:        -:   86:          * same phi, i.e. something like:
        -:        -:   87:          *
        -:        -:   88:          * a = phi(a, b, ...)
        -:        -:   89:          *
        -:        -:   90:          * We can safely ignore these sources, since if all of the normal
        -:        -:   91:          * sources point to the same definition, then that definition must
        -:        -:   92:          * still dominate the phi node, and the phi will still always take
        -:        -:   93:          * the value of that definition.
        -:        -:   94:          */
      358:      486:   95:         if (src->src.ssa == &phi->dest.ssa)
    #####:    #####:   96:            continue;
        -:        -:   97:         
      358:      486:   98:         if (def == NULL) {
      179:      243:   99:            def  = src->src.ssa;
      179:      243:  100:            mov = get_parent_mov(def);
        -:        -:  101:         } else {
      179:      243:  102:            if (src->src.ssa != def && !matching_mov(mov, src->src.ssa)) {
      161:      225:  103:               srcs_same = false;
      161:      225:  104:               break;
        -:        -:  105:            }
        -:        -:  106:         }
        -:        -:  107:      }
        -:        -:  108:
      179:      243:  109:      if (!srcs_same)
      161:      225:  110:         continue;
        -:        -:  111:
        -:        -:  112:      /* We must have found at least one definition, since there must be at
        -:        -:  113:       * least one forward edge.
        -:        -:  114:       */
       18:       18:  115:      assert(def != NULL);
        -:        -:  116:
       18:       18:  117:      if (mov) {
        -:        -:  118:         /* If the sources were all movs from the same source with the same
        -:        -:  119:          * swizzle, then we can't just pick a random move because it may not
        -:        -:  120:          * dominate the phi node. Instead, we need to emit our own move after
        -:        -:  121:          * the phi which uses the shared source, and rewrite uses of the phi
        -:        -:  122:          * to use the move instead. This is ok, because while the movs may
        -:        -:  123:          * not all dominate the phi node, their shared source does.
        -:        -:  124:          */
        -:        -:  125:
        9:        9:  126:         b->cursor = nir_after_phis(block);
       18:       18:  127:         def = mov->op == nir_op_imov ?
        9:        9:  128:            nir_imov_alu(b, mov->src[0], def->num_components) :
    #####:    #####:  129:            nir_fmov_alu(b, mov->src[0], def->num_components);
        -:        -:  130:      }
        -:        -:  131:
       18:       18:  132:      assert(phi->dest.is_ssa);
       18:       18:  133:      nir_ssa_def_rewrite_uses(&phi->dest.ssa, nir_src_for_ssa(def));
       18:       18:  134:      nir_instr_remove(instr);
        -:        -:  135:
       18:       18:  136:      progress = true;
        -:        -:  137:   }
        -:        -:  138:
      275:      403:  139:   return progress;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:static bool
       27:       27:  143:remove_phis_impl(nir_function_impl *impl)
        -:        -:  144:{
       27:       27:  145:   bool progress = false;
        -:        -:  146:   nir_builder bld;
       27:       27:  147:   nir_builder_init(&bld, impl);
        -:        -:  148:
      302:      430:  149:   nir_foreach_block(block, impl) {
      275:      403:  150:      progress |= remove_phis_block(block, &bld);
        -:        -:  151:   }
        -:        -:  152:
       27:       27:  153:   if (progress) {
        2:        2:  154:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  155:                                  nir_metadata_dominance);
        -:        -:  156:   }
        -:        -:  157:
       27:       27:  158:   return progress;
        -:        -:  159:}
        -:        -:  160:
        -:        -:  161:bool
       27:       27:  162:nir_opt_remove_phis(nir_shader *shader)
        -:        -:  163:{
       27:       27:  164:   bool progress = false;
        -:        -:  165:
       54:       54:  166:   nir_foreach_function(function, shader)
       27:       27:  167:      if (function->impl)
       27:       27:  168:         progress = remove_phis_impl(function->impl) || progress;
        -:        -:  169:
       27:       27:  170:   return progress;
        -:        -:  171:}
        -:        -:  172:

src/compiler/nir_opt_trivial_continues.c.gcov

        -:        -:    0:Source:nir/nir_opt_trivial_continues.c
        -:        -:    0:Graph:nir/.libs/nir_opt_trivial_continues.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_trivial_continues.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:
        -:        -:   26:static bool
       34:       66:   27:instr_is_continue(nir_instr *instr)
        -:        -:   28:{
       34:       66:   29:   if (instr->type != nir_instr_type_jump)
       34:       34:   30:      return false;
        -:        -:   31:
    #####:       32:   32:   return nir_instr_as_jump(instr)->type == nir_jump_continue;
        -:        -:   33:}
        -:        -:   34:
        -:        -:   35:static bool
       17:       65:   36:lower_trivial_continues_block(nir_block *block, nir_loop *loop)
        -:        -:   37:{
       17:       65:   38:   bool progress = false;
       17:       65:   39:   nir_instr *first_instr = nir_block_first_instr(block);
       17:       65:   40:   if (!first_instr || instr_is_continue(first_instr)) {
        -:        -:   41:      /* The block contains only a continue if anything */
    #####:       32:   42:      nir_cf_node *prev_node = nir_cf_node_prev(&block->cf_node);
    #####:       32:   43:      if (prev_node && prev_node->type == nir_cf_node_if) {
    #####:       16:   44:         nir_if *prev_if = nir_cf_node_as_if(prev_node);
    #####:       16:   45:         progress |= lower_trivial_continues_block(
        -:        -:   46:            nir_if_last_then_block(prev_if), loop);
    #####:       16:   47:         progress |= lower_trivial_continues_block(
        -:        -:   48:            nir_if_last_else_block(prev_if), loop);
        -:        -:   49:      }
        -:        -:   50:
        -:        -:   51:      /* The lower_phis_to_regs helper is smart enough to push phi sources as
        -:        -:   52:       * far up if-ladders as it possibly can.  In other words, the recursive
        -:        -:   53:       * calls above shouldn't be adding instructions to this block since it
        -:        -:   54:       * follows an if statement.
        -:        -:   55:       */
    #####:       32:   56:      first_instr = nir_block_first_instr(block);
    #####:       32:   57:      assert(!first_instr || instr_is_continue(first_instr));
        -:        -:   58:   }
        -:        -:   59:
       17:       65:   60:   nir_instr *last_instr = nir_block_last_instr(block);
       17:       65:   61:   if (!last_instr || !instr_is_continue(last_instr))
       17:       65:   62:      return progress;
        -:        -:   63:
        -:        -:   64:   /* We're at the end of a block that goes straight through to the end of the
        -:        -:   65:    * loop and continues to the top.  We can exit normally instead of jump.
        -:        -:   66:    */
    #####:    #####:   67:   nir_lower_phis_to_regs_block(nir_loop_first_block(loop));
    #####:    #####:   68:   nir_instr_remove(last_instr);
    #####:    #####:   69:   return true;
        -:        -:   70:}
        -:        -:   71:
        -:        -:   72:static bool
      186:      266:   73:lower_trivial_continues_list(struct exec_list *cf_list,
        -:        -:   74:                             bool list_ends_at_loop_tail,
        -:        -:   75:                             nir_loop *loop)
        -:        -:   76:{
      186:      266:   77:   bool progress = false;
      548:      804:   78:   foreach_list_typed(nir_cf_node, cf_node, node, cf_list) {
      479:      767:   79:      bool at_loop_tail = list_ends_at_loop_tail &&
      117:      229:   80:                          &cf_node->node == exec_list_get_tail(cf_list);
      362:      538:   81:      switch (cf_node->type) {
        -:        -:   82:      case nir_cf_node_block:
      274:      402:   83:         break;
        -:        -:   84:
        -:        -:   85:      case nir_cf_node_if: {
       71:      103:   86:         nir_if *nif = nir_cf_node_as_if(cf_node);
       71:      103:   87:         if (lower_trivial_continues_list(&nif->then_list, at_loop_tail, loop))
    #####:    #####:   88:            progress = true;
       71:      103:   89:         if (lower_trivial_continues_list(&nif->else_list, at_loop_tail, loop))
    #####:    #####:   90:            progress = true;
       71:      103:   91:         break;
        -:        -:   92:      }
        -:        -:   93:
        -:        -:   94:      case nir_cf_node_loop: {
       17:       33:   95:         nir_loop *loop = nir_cf_node_as_loop(cf_node);
       17:       33:   96:         if (lower_trivial_continues_list(&loop->body, true, loop))
    #####:    #####:   97:            progress = true;
       17:       33:   98:         if (lower_trivial_continues_block(nir_loop_last_block(loop), loop))
    #####:    #####:   99:            progress = true;
       17:       33:  100:         break;
        -:        -:  101:      }
        -:        -:  102:
        -:        -:  103:      case nir_cf_node_function:
    #####:    #####:  104:         unreachable("Invalid cf type");
        -:        -:  105:      }
        -:        -:  106:   }
        -:        -:  107:
      186:      266:  108:   return progress;
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:/**
        -:        -:  112: * This simple pass gets rid of any "trivial" continues, i.e. those that are
        -:        -:  113: * at the tail of a loop where we can just delete the continue instruction and
        -:        -:  114: * control-flow will naturally and harmlessly take us back to the top of the
        -:        -:  115: * loop.
        -:        -:  116: */
        -:        -:  117:bool
       27:       27:  118:nir_opt_trivial_continues(nir_shader *shader)
        -:        -:  119:{
       27:       27:  120:   bool progress = false;
        -:        -:  121:
       54:       54:  122:   nir_foreach_function(function, shader) {
       27:       27:  123:      if (function->impl == NULL)
    #####:    #####:  124:         continue;
        -:        -:  125:
        -:        -:  126:      /* First we run the simple pass to get rid of pesky continues */
       27:       27:  127:      if (lower_trivial_continues_list(&function->impl->body, false, NULL)) {
    #####:    #####:  128:         nir_metadata_preserve(function->impl, nir_metadata_none);
        -:        -:  129:
        -:        -:  130:         /* If that made progress, we're no longer really in SSA form. */
    #####:    #####:  131:         nir_lower_regs_to_ssa_impl(function->impl);
    #####:    #####:  132:         progress = true;
        -:        -:  133:      }
        -:        -:  134:   }
        -:        -:  135:
       27:       27:  136:   return progress;
        -:        -:  137:}

src/compiler/nir_opt_undef.c.gcov

        -:        -:    0:Source:nir/nir_opt_undef.c
        -:        -:    0:Graph:nir/.libs/nir_opt_undef.gcno
        -:        -:    0:Data:nir/.libs/nir_opt_undef.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Broadcom
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:#include "nir_builder.h"
        -:        -:   26:
        -:        -:   27:/** @file nir_opt_undef.c
        -:        -:   28: *
        -:        -:   29: * Handles optimization of operations involving ssa_undef.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:/**
        -:        -:   33: * Turn conditional selects between an undef and some other value into a move
        -:        -:   34: * of that other value (on the assumption that the condition's going to be
        -:        -:   35: * choosing the defined value).  This reduces work after if flattening when
        -:        -:   36: * each side of the if is defining a variable.
        -:        -:   37: */
        -:        -:   38:static bool
      706:      724:   39:opt_undef_csel(nir_alu_instr *instr)
        -:        -:   40:{
      706:      724:   41:   if (instr->op != nir_op_bcsel && instr->op != nir_op_fcsel)
      603:      621:   42:      return false;
        -:        -:   43:
      103:      103:   44:   assert(instr->dest.dest.is_ssa);
        -:        -:   45:
      306:      306:   46:   for (int i = 1; i <= 2; i++) {
      206:      206:   47:      if (!instr->src[i].src.is_ssa)
      203:      203:   48:         continue;
        -:        -:   49:
      206:      206:   50:      nir_instr *parent = instr->src[i].src.ssa->parent_instr;
      206:      206:   51:      if (parent->type != nir_instr_type_ssa_undef)
      203:      203:   52:         continue;
        -:        -:   53:
        -:        -:   54:      /* We can't just use nir_alu_src_copy, because we need the def/use
        -:        -:   55:       * updated.
        -:        -:   56:       */
        3:        3:   57:      nir_instr_rewrite_src(&instr->instr, &instr->src[0].src,
        3:        3:   58:                            instr->src[i == 1 ? 2 : 1].src);
        3:        3:   59:      nir_alu_src_copy(&instr->src[0], &instr->src[i == 1 ? 2 : 1],
        3:        3:   60:                       ralloc_parent(instr));
        -:        -:   61:
        -:        -:   62:      nir_src empty_src;
        3:        3:   63:      memset(&empty_src, 0, sizeof(empty_src));
        3:        3:   64:      nir_instr_rewrite_src(&instr->instr, &instr->src[1].src, empty_src);
        3:        3:   65:      nir_instr_rewrite_src(&instr->instr, &instr->src[2].src, empty_src);
        3:        3:   66:      instr->op = nir_op_imov;
        -:        -:   67:
        3:        3:   68:      return true;
        -:        -:   69:   }
        -:        -:   70:
      100:      100:   71:   return false;
        -:        -:   72:}
        -:        -:   73:
        -:        -:   74:/**
        -:        -:   75: * Replace vecN(undef, undef, ...) with a single undef.
        -:        -:   76: */
        -:        -:   77:static bool
      706:      724:   78:opt_undef_vecN(nir_builder *b, nir_alu_instr *alu)
        -:        -:   79:{
     1412:     1448:   80:   if (alu->op != nir_op_vec2 &&
     1412:     1448:   81:       alu->op != nir_op_vec3 &&
     1394:     1430:   82:       alu->op != nir_op_vec4 &&
     1376:     1412:   83:       alu->op != nir_op_fmov &&
      688:      706:   84:       alu->op != nir_op_imov)
      541:      559:   85:      return false;
        -:        -:   86:
      165:      165:   87:   assert(alu->dest.dest.is_ssa);
        -:        -:   88:
      177:      177:   89:   for (unsigned i = 0; i < nir_op_infos[alu->op].num_inputs; i++) {
      330:      330:   90:      if (!alu->src[i].src.is_ssa ||
      165:      165:   91:          alu->src[i].src.ssa->parent_instr->type != nir_instr_type_ssa_undef)
      153:      153:   92:         return false;
        -:        -:   93:   }
        -:        -:   94:
       12:       12:   95:   b->cursor = nir_before_instr(&alu->instr);
       12:       12:   96:   nir_ssa_def *undef = nir_ssa_undef(b, alu->dest.dest.ssa.num_components,
        -:        -:   97:                                      nir_dest_bit_size(alu->dest.dest));
       12:       12:   98:   nir_ssa_def_rewrite_uses(&alu->dest.dest.ssa, nir_src_for_ssa(undef));
        -:        -:   99:
       12:       12:  100:   return true;
        -:        -:  101:}
        -:        -:  102:
        -:        -:  103:/**
        -:        -:  104: * Remove any store intrinsics whose value is undefined (the existing
        -:        -:  105: * value is a fine representation of "undefined").
        -:        -:  106: */
        -:        -:  107:static bool
      189:      201:  108:opt_undef_store(nir_intrinsic_instr *intrin)
        -:        -:  109:{
      189:      201:  110:   switch (intrin->intrinsic) {
        -:        -:  111:   case nir_intrinsic_store_var:
        -:        -:  112:   case nir_intrinsic_store_output:
        -:        -:  113:   case nir_intrinsic_store_per_vertex_output:
        -:        -:  114:   case nir_intrinsic_store_ssbo:
        -:        -:  115:   case nir_intrinsic_store_shared:
       31:       31:  116:      break;
        -:        -:  117:   default:
      158:      170:  118:      return false;
        -:        -:  119:   }
        -:        -:  120:
       62:       62:  121:   if (!intrin->src[0].is_ssa ||
       31:       31:  122:       intrin->src[0].ssa->parent_instr->type != nir_instr_type_ssa_undef)
       31:       31:  123:      return false;
        -:        -:  124:
    #####:    #####:  125:   nir_instr_remove(&intrin->instr);
        -:        -:  126:
    #####:    #####:  127:   return true;
        -:        -:  128:}
        -:        -:  129:
        -:        -:  130:bool
       27:       27:  131:nir_opt_undef(nir_shader *shader)
        -:        -:  132:{
        -:        -:  133:   nir_builder b;
       27:       27:  134:   bool progress = false;
        -:        -:  135:
       54:       54:  136:   nir_foreach_function(function, shader) {
       27:       27:  137:      if (function->impl) {
       27:       27:  138:         nir_builder_init(&b, function->impl);
      302:      430:  139:         nir_foreach_block(block, function->impl) {
     1513:     1767:  140:            nir_foreach_instr_safe(instr, block) {
     1238:     1364:  141:               if (instr->type == nir_instr_type_alu) {
      706:      724:  142:                  nir_alu_instr *alu = nir_instr_as_alu(instr);
        -:        -:  143:
      706:      724:  144:                  progress = opt_undef_csel(alu) || progress;
      706:      724:  145:                  progress = opt_undef_vecN(&b, alu) || progress;
      532:      640:  146:               } else if (instr->type == nir_instr_type_intrinsic) {
      189:      201:  147:                  nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
      189:      201:  148:                  progress = opt_undef_store(intrin) || progress;
        -:        -:  149:               }
        -:        -:  150:            }
        -:        -:  151:         }
        -:        -:  152:
       27:       27:  153:         if (progress)
        1:        1:  154:            nir_metadata_preserve(function->impl,
        -:        -:  155:                                  nir_metadata_block_index |
        -:        -:  156:                                  nir_metadata_dominance);
        -:        -:  157:      }
        -:        -:  158:   }
        -:        -:  159:
       27:       27:  160:   return progress;
        -:        -:  161:}

src/compiler/nir_phi_builder.c.gcov

        -:        -:    0:Source:nir/nir_phi_builder.c
        -:        -:    0:Graph:nir/.libs/nir_phi_builder.gcno
        -:        -:    0:Data:nir/.libs/nir_phi_builder.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir_phi_builder.h"
        -:        -:   25:#include "nir/nir_vla.h"
        -:        -:   26:
        -:        -:   27:struct nir_phi_builder {
        -:        -:   28:   nir_shader *shader;
        -:        -:   29:   nir_function_impl *impl;
        -:        -:   30:
        -:        -:   31:   /* Copied from the impl for easy access */
        -:        -:   32:   unsigned num_blocks;
        -:        -:   33:
        -:        -:   34:   /* Array of all blocks indexed by block->index. */
        -:        -:   35:   nir_block **blocks;
        -:        -:   36:
        -:        -:   37:   /* Hold on to the values so we can easily iterate over them. */
        -:        -:   38:   struct exec_list values;
        -:        -:   39:
        -:        -:   40:   /* Worklist for phi adding */
        -:        -:   41:   unsigned iter_count;
        -:        -:   42:   unsigned *work;
        -:        -:   43:   nir_block **W;
        -:        -:   44:};
        -:        -:   45:
        -:        -:   46:#define NEEDS_PHI ((nir_ssa_def *)(intptr_t)-1)
        -:        -:   47:
        -:        -:   48:struct nir_phi_builder_value {
        -:        -:   49:   struct exec_node node;
        -:        -:   50:
        -:        -:   51:   struct nir_phi_builder *builder;
        -:        -:   52:
        -:        -:   53:   /* Needed so we can create phis and undefs */
        -:        -:   54:   unsigned num_components;
        -:        -:   55:   unsigned bit_size;
        -:        -:   56:
        -:        -:   57:   /* The list of phi nodes associated with this value.  Phi nodes are not
        -:        -:   58:    * added directly.  Instead, they are created, the instr->block pointer
        -:        -:   59:    * set, and then added to this list.  Later, in phi_builder_finish, we
        -:        -:   60:    * set up their sources and add them to the top of their respective
        -:        -:   61:    * blocks.
        -:        -:   62:    */
        -:        -:   63:   struct exec_list phis;
        -:        -:   64:
        -:        -:   65:   /* Array of SSA defs, indexed by block.  For each block, this array has has
        -:        -:   66:    * one of three types of values:
        -:        -:   67:    *
        -:        -:   68:    *  - NULL. Indicates that there is no known definition in this block.  If
        -:        -:   69:    *    you need to find one, look at the block's immediate dominator.
        -:        -:   70:    *
        -:        -:   71:    *  - NEEDS_PHI. Indicates that the block may need a phi node but none has
        -:        -:   72:    *    been created yet.  If a def is requested for a block, a phi will need
        -:        -:   73:    *    to be created.
        -:        -:   74:    *
        -:        -:   75:    *  - A regular SSA def.  This will be either the result of a phi node or
        -:        -:   76:    *    one of the defs provided by nir_phi_builder_value_set_blocK_def().
        -:        -:   77:    */
        -:        -:   78:   nir_ssa_def *defs[0];
        -:        -:   79:};
        -:        -:   80:
        -:        -:   81:struct nir_phi_builder *
        5:        5:   82:nir_phi_builder_create(nir_function_impl *impl)
        -:        -:   83:{
        5:        5:   84:   struct nir_phi_builder *pb = rzalloc(NULL, struct nir_phi_builder);
        -:        -:   85:
        5:        5:   86:   pb->shader = impl->function->shader;
        5:        5:   87:   pb->impl = impl;
        -:        -:   88:
        5:        5:   89:   assert(impl->valid_metadata & (nir_metadata_block_index |
        -:        -:   90:                                  nir_metadata_dominance));
        -:        -:   91:
        5:        5:   92:   pb->num_blocks = impl->num_blocks;
        5:        5:   93:   pb->blocks = ralloc_array(pb, nir_block *, pb->num_blocks);
      125:      157:   94:   nir_foreach_block(block, impl) {
      120:      152:   95:      pb->blocks[block->index] = block;
        -:        -:   96:   }
        -:        -:   97:
        5:        5:   98:   exec_list_make_empty(&pb->values);
        -:        -:   99:
        5:        5:  100:   pb->iter_count = 0;
        5:        5:  101:   pb->work = rzalloc_array(pb, unsigned, pb->num_blocks);
        5:        5:  102:   pb->W = ralloc_array(pb, nir_block *, pb->num_blocks);
        -:        -:  103:
        5:        5:  104:   return pb;
        -:        -:  105:}
        -:        -:  106:
        -:        -:  107:struct nir_phi_builder_value *
       77:       79:  108:nir_phi_builder_add_value(struct nir_phi_builder *pb, unsigned num_components,
        -:        -:  109:                          unsigned bit_size, const BITSET_WORD *defs)
        -:        -:  110:{
        -:        -:  111:   struct nir_phi_builder_value *val;
       77:       79:  112:   unsigned i, w_start = 0, w_end = 0;
        -:        -:  113:
       77:       79:  114:   val = rzalloc_size(pb, sizeof(*val) + sizeof(val->defs[0]) * pb->num_blocks);
       77:       79:  115:   val->builder = pb;
       77:       79:  116:   val->num_components = num_components;
       77:       79:  117:   val->bit_size = bit_size;
       77:       79:  118:   exec_list_make_empty(&val->phis);
       77:       79:  119:   exec_list_push_tail(&pb->values, &val->node);
        -:        -:  120:
       77:       79:  121:   pb->iter_count++;
        -:        -:  122:
        -:        -:  123:   BITSET_WORD tmp;
      301:      307:  124:   BITSET_FOREACH_SET(i, tmp, defs, pb->num_blocks) {
      147:      149:  125:      if (pb->work[i] < pb->iter_count)
      147:      149:  126:         pb->W[w_end++] = pb->blocks[i];
      147:      149:  127:      pb->work[i] = pb->iter_count;
        -:        -:  128:   }
        -:        -:  129:
      370:      384:  130:   while (w_start != w_end) {
      216:      226:  131:      nir_block *cur = pb->W[w_start++];
        -:        -:  132:      struct set_entry *dom_entry;
      328:      350:  133:      set_foreach(cur->dom_frontier, dom_entry) {
      112:      124:  134:         nir_block *next = (nir_block *) dom_entry->key;
        -:        -:  135:
        -:        -:  136:         /* If there's more than one return statement, then the end block
        -:        -:  137:          * can be a join point for some definitions. However, there are
        -:        -:  138:          * no instructions in the end block, so nothing would use those
        -:        -:  139:          * phi nodes. Of course, we couldn't place those phi nodes
        -:        -:  140:          * anyways due to the restriction of having no instructions in the
        -:        -:  141:          * end block...
        -:        -:  142:          */
      112:      124:  143:         if (next == pb->impl->end_block)
    #####:    #####:  144:            continue;
        -:        -:  145:
      112:      124:  146:         if (val->defs[next->index] == NULL) {
        -:        -:  147:            /* Instead of creating a phi node immediately, we simply set the
        -:        -:  148:             * value to the magic value NEEDS_PHI.  Later, we create phi nodes
        -:        -:  149:             * on demand in nir_phi_builder_value_get_block_def().
        -:        -:  150:             */
       69:       77:  151:            val->defs[next->index] = NEEDS_PHI;
        -:        -:  152:
       69:       77:  153:            if (pb->work[next->index] < pb->iter_count) {
       69:       77:  154:               pb->work[next->index] = pb->iter_count;
       69:       77:  155:               pb->W[w_end++] = next;
        -:        -:  156:            }
        -:        -:  157:         }
        -:        -:  158:      }
        -:        -:  159:   }
        -:        -:  160:
       77:       79:  161:   return val;
        -:        -:  162:}
        -:        -:  163:
        -:        -:  164:void
      155:      157:  165:nir_phi_builder_value_set_block_def(struct nir_phi_builder_value *val,
        -:        -:  166:                                    nir_block *block, nir_ssa_def *def)
        -:        -:  167:{
      155:      157:  168:   val->defs[block->index] = def;
      155:      157:  169:}
        -:        -:  170:
        -:        -:  171:nir_ssa_def *
      268:      288:  172:nir_phi_builder_value_get_block_def(struct nir_phi_builder_value *val,
        -:        -:  173:                                    nir_block *block)
        -:        -:  174:{
        -:        -:  175:   /* Crawl up the dominance tree and find the closest dominator for which we
        -:        -:  176:    * have a valid ssa_def, if any.
        -:        -:  177:    */
      268:      288:  178:   nir_block *dom = block;
     1165:     1274:  179:   while (dom && val->defs[dom->index] == NULL)
      629:      698:  180:      dom = dom->imm_dom;
        -:        -:  181:
        -:        -:  182:   nir_ssa_def *def;
      268:      288:  183:   if (dom == NULL) {
        -:        -:  184:      /* No dominator means either that we crawled to the top without ever
        -:        -:  185:       * finding a definition or that this block is unreachable.  In either
        -:        -:  186:       * case, the value is undefined so we need an SSA undef.
        -:        -:  187:       */
        8:        8:  188:      nir_ssa_undef_instr *undef =
        8:        8:  189:         nir_ssa_undef_instr_create(val->builder->shader,
        -:        -:  190:                                    val->num_components,
        -:        -:  191:                                    val->bit_size);
        8:        8:  192:      nir_instr_insert(nir_before_cf_list(&val->builder->impl->body),
        -:        -:  193:                       &undef->instr);
        8:        8:  194:      def = &undef->def;
      260:      280:  195:   } else if (val->defs[dom->index] == NEEDS_PHI) {
        -:        -:  196:      /* The magic value NEEDS_PHI indicates that the block needs a phi node
        -:        -:  197:       * but none has been created.  We need to create one now so we can
        -:        -:  198:       * return it to the caller.
        -:        -:  199:       *
        -:        -:  200:       * Because a phi node may use SSA defs that it does not dominate (this
        -:        -:  201:       * happens in loops), we do not yet have enough information to fully
        -:        -:  202:       * fill out the phi node.  Instead, the phi nodes we create here will be
        -:        -:  203:       * empty (have no sources) and won't actually be placed in the block's
        -:        -:  204:       * instruction list yet.  Later, in nir_phi_builder_finish(), we walk
        -:        -:  205:       * over all of the phi instructions, fill out the sources lists, and
        -:        -:  206:       * place them at the top of their respective block's instruction list.
        -:        -:  207:       *
        -:        -:  208:       * Creating phi nodes on-demand allows us to avoid creating dead phi
        -:        -:  209:       * nodes that will just get deleted later. While this probably isn't a
        -:        -:  210:       * big win for a full into-SSA pass, other users may use the phi builder
        -:        -:  211:       * to make small SSA form repairs where most of the phi nodes will never
        -:        -:  212:       * be used.
        -:        -:  213:       */
       53:       61:  214:      nir_phi_instr *phi = nir_phi_instr_create(val->builder->shader);
       53:       61:  215:      nir_ssa_dest_init(&phi->instr, &phi->dest, val->num_components,
        -:        -:  216:                        val->bit_size, NULL);
       53:       61:  217:      phi->instr.block = dom;
       53:       61:  218:      exec_list_push_tail(&val->phis, &phi->instr.node);
       53:       61:  219:      def = val->defs[dom->index] = &phi->dest.ssa;
        -:        -:  220:   } else {
        -:        -:  221:      /* In this case, we have an actual SSA def.  It's either the result of a
        -:        -:  222:       * phi node created by the case above or one passed to us through
        -:        -:  223:       * nir_phi_builder_value_set_block_def().
        -:        -:  224:       */
      207:      219:  225:      def = val->defs[dom->index];
        -:        -:  226:   }
        -:        -:  227:
        -:        -:  228:   /* Walk the chain and stash the def in all of the applicable blocks.  We do
        -:        -:  229:    * this for two reasons:
        -:        -:  230:    *
        -:        -:  231:    *  1) To speed up lookup next time even if the next time is called from a
        -:        -:  232:    *     block that is not dominated by this one.
        -:        -:  233:    *  2) To avoid unneeded recreation of phi nodes and undefs.
        -:        -:  234:    */
      897:      986:  235:   for (dom = block; dom && val->defs[dom->index] == NULL; dom = dom->imm_dom)
      629:      698:  236:      val->defs[dom->index] = def;
        -:        -:  237:
      268:      288:  238:   return def;
        -:        -:  239:}
        -:        -:  240:
        -:        -:  241:static int
       53:       61:  242:compare_blocks(const void *_a, const void *_b)
        -:        -:  243:{
       53:       61:  244:   const nir_block * const * a = _a;
       53:       61:  245:   const nir_block * const * b = _b;
        -:        -:  246:
       53:       61:  247:   return (*a)->index - (*b)->index;
        -:        -:  248:}
        -:        -:  249:
        -:        -:  250:void
        5:        5:  251:nir_phi_builder_finish(struct nir_phi_builder *pb)
        -:        -:  252:{
        5:        5:  253:   const unsigned num_blocks = pb->num_blocks;
        5:        5:  254:   NIR_VLA(nir_block *, preds, num_blocks);
        -:        -:  255:
       82:       84:  256:   foreach_list_typed(struct nir_phi_builder_value, val, node, &pb->values) {
        -:        -:  257:      /* We treat the linked list of phi nodes like a worklist.  The list is
        -:        -:  258:       * pre-populated by calls to nir_phi_builder_value_get_block_def() that
        -:        -:  259:       * create phi nodes.  As we fill in the sources of phi nodes, more may
        -:        -:  260:       * be created and are added to the end of the list.
        -:        -:  261:       *
        -:        -:  262:       * Because we are adding and removing phi nodes from the list as we go,
        -:        -:  263:       * we can't iterate over it normally.  Instead, we just iterate until
        -:        -:  264:       * the list is empty.
        -:        -:  265:       */
      207:      219:  266:      while (!exec_list_is_empty(&val->phis)) {
       53:       61:  267:         struct exec_node *head = exec_list_get_head(&val->phis);
       53:       61:  268:         nir_phi_instr *phi = exec_node_data(nir_phi_instr, head, instr.node);
       53:       61:  269:         assert(phi->instr.type == nir_instr_type_phi);
        -:        -:  270:
       53:       61:  271:         exec_node_remove(&phi->instr.node);
        -:        -:  272:
        -:        -:  273:         /* Construct an array of predecessors.  We sort it to ensure
        -:        -:  274:          * determinism in the phi insertion algorithm.
        -:        -:  275:          *
        -:        -:  276:          * XXX: Calling qsort this many times seems expensive.
        -:        -:  277:          */
       53:       61:  278:         int num_preds = 0;
        -:        -:  279:         struct set_entry *entry;
      159:      183:  280:         set_foreach(phi->instr.block->predecessors, entry)
      106:      122:  281:            preds[num_preds++] = (nir_block *)entry->key;
       53:       61:  282:         qsort(preds, num_preds, sizeof(*preds), compare_blocks);
        -:        -:  283:
      159:      183:  284:         for (unsigned i = 0; i < num_preds; i++) {
      106:      122:  285:            nir_phi_src *src = ralloc(phi, nir_phi_src);
      106:      122:  286:            src->pred = preds[i];
      106:      122:  287:            src->src = nir_src_for_ssa(
      106:      122:  288:               nir_phi_builder_value_get_block_def(val, preds[i]));
      106:      122:  289:            exec_list_push_tail(&phi->srcs, &src->node);
        -:        -:  290:         }
        -:        -:  291:
       53:       61:  292:         nir_instr_insert(nir_before_block(phi->instr.block), &phi->instr);
        -:        -:  293:      }
        -:        -:  294:   }
        -:        -:  295:
        5:        5:  296:   ralloc_free(pb);
        5:        5:  297:}

src/compiler/nir_remove_dead_variables.c.gcov

        -:        -:    0:Source:nir/nir_remove_dead_variables.c
        -:        -:    0:Graph:nir/.libs/nir_remove_dead_variables.gcno
        -:        -:    0:Data:nir/.libs/nir_remove_dead_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:static void
      219:      229:   31:add_var_use_intrinsic(nir_intrinsic_instr *instr, struct set *live)
        -:        -:   32:{
      219:      229:   33:   unsigned num_vars = nir_intrinsic_infos[instr->intrinsic].num_variables;
        -:        -:   34:
      219:      229:   35:   switch (instr->intrinsic) {
        -:        -:   36:   case nir_intrinsic_copy_var:
       49:       49:   37:      _mesa_set_add(live, instr->variables[1]->var);
        -:        -:   38:      /* Fall through */
        -:        -:   39:   case nir_intrinsic_store_var: {
        -:        -:   40:      /* The first source in both copy_var and store_var is the destination.
        -:        -:   41:       * If the variable is a local that never escapes the shader, then we
        -:        -:   42:       * don't mark it as live for just a store.
        -:        -:   43:       */
      112:      114:   44:      nir_variable_mode mode = instr->variables[0]->var->data.mode;
      112:      114:   45:      if (!(mode & (nir_var_local | nir_var_global | nir_var_shared)))
       13:       13:   46:         _mesa_set_add(live, instr->variables[0]->var);
      112:      114:   47:      break;
        -:        -:   48:   }
        -:        -:   49:
        -:        -:   50:   default:
      214:      230:   51:      for (unsigned i = 0; i < num_vars; i++) {
      107:      115:   52:         _mesa_set_add(live, instr->variables[i]->var);
        -:        -:   53:      }
      107:      115:   54:      break;
        -:        -:   55:   }
      219:      229:   56:}
        -:        -:   57:
        -:        -:   58:static void
    #####:    #####:   59:add_var_use_call(nir_call_instr *instr, struct set *live)
        -:        -:   60:{
    #####:    #####:   61:   if (instr->return_deref != NULL) {
    #####:    #####:   62:      nir_variable *var = instr->return_deref->var;
    #####:    #####:   63:      _mesa_set_add(live, var);
        -:        -:   64:   }
        -:        -:   65:
    #####:    #####:   66:   for (unsigned i = 0; i < instr->num_params; i++) {
    #####:    #####:   67:      nir_variable *var = instr->params[i]->var;
    #####:    #####:   68:      _mesa_set_add(live, var);
        -:        -:   69:   }
    #####:    #####:   70:}
        -:        -:   71:
        -:        -:   72:static void
    #####:    #####:   73:add_var_use_tex(nir_tex_instr *instr, struct set *live)
        -:        -:   74:{
    #####:    #####:   75:   if (instr->texture != NULL) {
    #####:    #####:   76:      nir_variable *var = instr->texture->var;
    #####:    #####:   77:      _mesa_set_add(live, var);
        -:        -:   78:   }
        -:        -:   79:
    #####:    #####:   80:   if (instr->sampler != NULL) {
    #####:    #####:   81:      nir_variable *var = instr->sampler->var;
    #####:    #####:   82:      _mesa_set_add(live, var);
        -:        -:   83:   }
    #####:    #####:   84:}
        -:        -:   85:
        -:        -:   86:static void
        9:        9:   87:add_var_use_shader(nir_shader *shader, struct set *live)
        -:        -:   88:{
       18:       18:   89:   nir_foreach_function(function, shader) {
        9:        9:   90:      if (function->impl) {
      133:      165:   91:         nir_foreach_block(block, function->impl) {
      522:      588:   92:            nir_foreach_instr(instr, block) {
      398:      432:   93:               switch(instr->type) {
        -:        -:   94:               case nir_instr_type_intrinsic:
      219:      229:   95:                  add_var_use_intrinsic(nir_instr_as_intrinsic(instr), live);
      219:      229:   96:                  break;
        -:        -:   97:
        -:        -:   98:               case nir_instr_type_call:
    #####:    #####:   99:                  add_var_use_call(nir_instr_as_call(instr), live);
    #####:    #####:  100:                  break;
        -:        -:  101:
        -:        -:  102:               case nir_instr_type_tex:
    #####:    #####:  103:                  add_var_use_tex(nir_instr_as_tex(instr), live);
    #####:    #####:  104:                  break;
        -:        -:  105:
        -:        -:  106:               default:
      179:      203:  107:                  break;
        -:        -:  108:               }
        -:        -:  109:            }
        -:        -:  110:         }
        -:        -:  111:      }
        -:        -:  112:   }
        9:        9:  113:}
        -:        -:  114:
        -:        -:  115:static void
        3:        3:  116:remove_dead_var_writes(nir_shader *shader, struct set *live)
        -:        -:  117:{
        6:        6:  118:   nir_foreach_function(function, shader) {
        3:        3:  119:      if (!function->impl)
    #####:    #####:  120:         continue;
        -:        -:  121:
       37:       53:  122:      nir_foreach_block(block, function->impl) {
      134:      166:  123:         nir_foreach_instr_safe(instr, block) {
      100:      116:  124:            if (instr->type != nir_instr_type_intrinsic)
       80:       94:  125:               continue;
        -:        -:  126:
       20:       22:  127:            nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       40:       44:  128:            if (intrin->intrinsic != nir_intrinsic_copy_var &&
       20:       22:  129:                intrin->intrinsic != nir_intrinsic_store_var)
       17:       19:  130:               continue;
        -:        -:  131:
        -:        -:  132:            /* Stores to dead variables need to be removed */
        3:        3:  133:            if (intrin->variables[0]->var->data.mode == 0)
    #####:    #####:  134:               nir_instr_remove(instr);
        -:        -:  135:         }
        -:        -:  136:      }
        -:        -:  137:   }
        3:        3:  138:}
        -:        -:  139:
        -:        -:  140:static bool
       12:       12:  141:remove_dead_vars(struct exec_list *var_list, struct set *live)
        -:        -:  142:{
       12:       12:  143:   bool progress = false;
        -:        -:  144:
       81:       83:  145:   foreach_list_typed_safe(nir_variable, var, node, var_list) {
       69:       71:  146:      struct set_entry *entry = _mesa_set_search(live, var);
       69:       71:  147:      if (entry == NULL) {
        -:        -:  148:         /* Mark this variable as used by setting the mode to 0 */
       62:       64:  149:         var->data.mode = 0;
       62:       64:  150:         exec_node_remove(&var->node);
       62:       64:  151:         progress = true;
        -:        -:  152:      }
        -:        -:  153:   }
        -:        -:  154:
       12:       12:  155:   return progress;
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:bool
        9:        9:  159:nir_remove_dead_variables(nir_shader *shader, nir_variable_mode modes)
        -:        -:  160:{
        9:        9:  161:   bool progress = false;
        9:        9:  162:   struct set *live =
        -:        -:  163:      _mesa_set_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
        -:        -:  164:
        9:        9:  165:   add_var_use_shader(shader, live);
        -:        -:  166:
        9:        9:  167:   if (modes & nir_var_uniform)
    #####:    #####:  168:      progress = remove_dead_vars(&shader->uniforms, live) || progress;
        -:        -:  169:
        9:        9:  170:   if (modes & nir_var_shader_in)
        4:        4:  171:      progress = remove_dead_vars(&shader->inputs, live) || progress;
        -:        -:  172:
        9:        9:  173:   if (modes & nir_var_shader_out)
        3:        3:  174:      progress = remove_dead_vars(&shader->outputs, live) || progress;
        -:        -:  175:
        9:        9:  176:   if (modes & nir_var_global)
    #####:    #####:  177:      progress = remove_dead_vars(&shader->globals, live) || progress;
        -:        -:  178:
        9:        9:  179:   if (modes & nir_var_system_value)
    #####:    #####:  180:      progress = remove_dead_vars(&shader->system_values, live) || progress;
        -:        -:  181:
        9:        9:  182:   if (modes & nir_var_shared)
    #####:    #####:  183:      progress = remove_dead_vars(&shader->shared, live) || progress;
        -:        -:  184:
        9:        9:  185:   if (modes & nir_var_local) {
       10:       10:  186:      nir_foreach_function(function, shader) {
        5:        5:  187:         if (function->impl) {
        5:        5:  188:            if (remove_dead_vars(&function->impl->locals, live))
        3:        3:  189:               progress = true;
        -:        -:  190:         }
        -:        -:  191:      }
        -:        -:  192:   }
        -:        -:  193:
        9:        9:  194:   if (progress) {
        3:        3:  195:      remove_dead_var_writes(shader, live);
        -:        -:  196:
        6:        6:  197:      nir_foreach_function(function, shader) {
        3:        3:  198:         if (function->impl) {
        3:        3:  199:            nir_metadata_preserve(function->impl, nir_metadata_block_index |
        -:        -:  200:                                                  nir_metadata_dominance);
        -:        -:  201:         }
        -:        -:  202:      }
        -:        -:  203:   }
        -:        -:  204:
        9:        9:  205:   _mesa_set_destroy(live, NULL);
        9:        9:  206:   return progress;
        -:        -:  207:}

src/compiler/nir_search.c.gcov

        -:        -:    0:Source:nir/nir_search.c
        -:        -:    0:Graph:nir/.libs/nir_search.gcno
        -:        -:    0:Data:nir/.libs/nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include <inttypes.h>
        -:        -:   29:#include "nir_search.h"
        -:        -:   30:
        -:        -:   31:struct match_state {
        -:        -:   32:   bool inexact_match;
        -:        -:   33:   bool has_exact_alu;
        -:        -:   34:   unsigned variables_seen;
        -:        -:   35:   nir_alu_src variables[NIR_SEARCH_MAX_VARIABLES];
        -:        -:   36:};
        -:        -:   37:
        -:        -:   38:static bool
        -:        -:   39:match_expression(const nir_search_expression *expr, nir_alu_instr *instr,
        -:        -:   40:                 unsigned num_components, const uint8_t *swizzle,
        -:        -:   41:                 struct match_state *state);
        -:        -:   42:
        -:        -:   43:static const uint8_t identity_swizzle[] = { 0, 1, 2, 3 };
        -:        -:   44:
        -:        -:   45:/**
        -:        -:   46: * Check if a source produces a value of the given type.
        -:        -:   47: *
        -:        -:   48: * Used for satisfying 'a@type' constraints.
        -:        -:   49: */
        -:        -:   50:static bool
       60:       60:   51:src_is_type(nir_src src, nir_alu_type type)
        -:        -:   52:{
       60:       60:   53:   assert(type != nir_type_invalid);
        -:        -:   54:
       60:       60:   55:   if (!src.is_ssa)
    #####:    #####:   56:      return false;
        -:        -:   57:
        -:        -:   58:   /* Turn nir_type_bool32 into nir_type_bool...they're the same thing. */
       60:       60:   59:   if (nir_alu_type_get_base_type(type) == nir_type_bool)
       60:       60:   60:      type = nir_type_bool;
        -:        -:   61:
       60:       60:   62:   if (src.ssa->parent_instr->type == nir_instr_type_alu) {
       16:       16:   63:      nir_alu_instr *src_alu = nir_instr_as_alu(src.ssa->parent_instr);
       16:       16:   64:      nir_alu_type output_type = nir_op_infos[src_alu->op].output_type;
        -:        -:   65:
       16:       16:   66:      if (type == nir_type_bool) {
       16:       16:   67:         switch (src_alu->op) {
        -:        -:   68:         case nir_op_iand:
        -:        -:   69:         case nir_op_ior:
        -:        -:   70:         case nir_op_ixor:
    #####:    #####:   71:            return src_is_type(src_alu->src[0].src, nir_type_bool) &&
    #####:    #####:   72:                   src_is_type(src_alu->src[1].src, nir_type_bool);
        -:        -:   73:         case nir_op_inot:
    #####:    #####:   74:            return src_is_type(src_alu->src[0].src, nir_type_bool);
        -:        -:   75:         default:
       16:       16:   76:            break;
        -:        -:   77:         }
        -:        -:   78:      }
        -:        -:   79:
       16:       16:   80:      return nir_alu_type_get_base_type(output_type) == type;
       44:       44:   81:   } else if (src.ssa->parent_instr->type == nir_instr_type_intrinsic) {
    #####:    #####:   82:      nir_intrinsic_instr *intr = nir_instr_as_intrinsic(src.ssa->parent_instr);
        -:        -:   83:
    #####:    #####:   84:      if (type == nir_type_bool) {
    #####:    #####:   85:         return intr->intrinsic == nir_intrinsic_load_front_face ||
    #####:    #####:   86:                intr->intrinsic == nir_intrinsic_load_helper_invocation;
        -:        -:   87:      }
        -:        -:   88:   }
        -:        -:   89:
        -:        -:   90:   /* don't know */
       44:       44:   91:   return false;
        -:        -:   92:}
        -:        -:   93:
        -:        -:   94:static bool
     7476:     7618:   95:match_value(const nir_search_value *value, nir_alu_instr *instr, unsigned src,
        -:        -:   96:            unsigned num_components, const uint8_t *swizzle,
        -:        -:   97:            struct match_state *state)
        -:        -:   98:{
        -:        -:   99:   uint8_t new_swizzle[4];
        -:        -:  100:
        -:        -:  101:   /* Searching only works on SSA values because, if it's not SSA, we can't
        -:        -:  102:    * know if the value changed between one instance of that value in the
        -:        -:  103:    * expression and another.  Also, the replace operation will place reads of
        -:        -:  104:    * that value right before the last instruction in the expression we're
        -:        -:  105:    * replacing so those reads will happen after the original reads and may
        -:        -:  106:    * not be valid if they're register reads.
        -:        -:  107:    */
     7476:     7618:  108:   if (!instr->src[src].src.is_ssa)
    #####:    #####:  109:      return false;
        -:        -:  110:
        -:        -:  111:   /* If the source is an explicitly sized source, then we need to reset
        -:        -:  112:    * both the number of components and the swizzle.
        -:        -:  113:    */
     7476:     7618:  114:   if (nir_op_infos[instr->op].input_sizes[src] != 0) {
        8:        8:  115:      num_components = nir_op_infos[instr->op].input_sizes[src];
        8:        8:  116:      swizzle = identity_swizzle;
        -:        -:  117:   }
        -:        -:  118:
    14976:    15260:  119:   for (unsigned i = 0; i < num_components; ++i)
     7500:     7642:  120:      new_swizzle[i] = instr->src[src].swizzle[swizzle[i]];
        -:        -:  121:
        -:        -:  122:   /* If the value has a specific bit size and it doesn't match, bail */
     8077:     8219:  123:   if (value->bit_size &&
      601:      601:  124:       nir_src_bit_size(instr->src[src].src) != value->bit_size)
    #####:    #####:  125:      return false;
        -:        -:  126:
     7476:     7618:  127:   switch (value->type) {
        -:        -:  128:   case nir_search_value_expression:
     2483:     2563:  129:      if (instr->src[src].src.ssa->parent_instr->type != nir_instr_type_alu)
     1209:     1275:  130:         return false;
        -:        -:  131:
     1274:     1288:  132:      return match_expression(nir_search_value_as_expression(value),
     1274:     1288:  133:                              nir_instr_as_alu(instr->src[src].src.ssa->parent_instr),
        -:        -:  134:                              num_components, new_swizzle, state);
        -:        -:  135:
        -:        -:  136:   case nir_search_value_variable: {
     3208:     3248:  137:      nir_search_variable *var = nir_search_value_as_variable(value);
     3208:     3248:  138:      assert(var->variable < NIR_SEARCH_MAX_VARIABLES);
        -:        -:  139:
     3208:     3248:  140:      if (state->variables_seen & (1 << var->variable)) {
      151:      151:  141:         if (state->variables[var->variable].src.ssa != instr->src[src].src.ssa)
      150:      150:  142:            return false;
        -:        -:  143:
        1:        1:  144:         assert(!instr->src[src].abs && !instr->src[src].negate);
        -:        -:  145:
        2:        2:  146:         for (unsigned i = 0; i < num_components; ++i) {
        1:        1:  147:            if (state->variables[var->variable].swizzle[i] != new_swizzle[i])
    #####:    #####:  148:               return false;
        -:        -:  149:         }
        -:        -:  150:
        1:        1:  151:         return true;
        -:        -:  152:      } else {
     3596:     3656:  153:         if (var->is_constant &&
      539:      559:  154:             instr->src[src].src.ssa->parent_instr->type != nir_instr_type_load_const)
      498:      516:  155:            return false;
        -:        -:  156:
     2559:     2581:  157:         if (var->cond && !var->cond(instr, src, num_components, new_swizzle))
    #####:    #####:  158:            return false;
        -:        -:  159:
     2619:     2641:  160:         if (var->type != nir_type_invalid &&
       60:       60:  161:             !src_is_type(instr->src[src].src, var->type))
       60:       60:  162:            return false;
        -:        -:  163:
     2499:     2521:  164:         state->variables_seen |= (1 << var->variable);
     2499:     2521:  165:         state->variables[var->variable].src = instr->src[src].src;
     2499:     2521:  166:         state->variables[var->variable].abs = false;
     2499:     2521:  167:         state->variables[var->variable].negate = false;
        -:        -:  168:
    12495:    12605:  169:         for (unsigned i = 0; i < 4; ++i) {
     9996:    10084:  170:            if (i < num_components)
     2523:     2545:  171:               state->variables[var->variable].swizzle[i] = new_swizzle[i];
        -:        -:  172:            else
     7473:     7539:  173:               state->variables[var->variable].swizzle[i] = 0;
        -:        -:  174:         }
        -:        -:  175:
     2499:     2521:  176:         return true;
        -:        -:  177:      }
        -:        -:  178:   }
        -:        -:  179:
        -:        -:  180:   case nir_search_value_constant: {
     1785:     1807:  181:      nir_search_constant *const_val = nir_search_value_as_constant(value);
        -:        -:  182:
     1785:     1807:  183:      if (!instr->src[src].src.is_ssa)
    #####:    #####:  184:         return false;
        -:        -:  185:
     1785:     1807:  186:      if (instr->src[src].src.ssa->parent_instr->type != nir_instr_type_load_const)
     1690:     1708:  187:         return false;
        -:        -:  188:
       95:       99:  189:      nir_load_const_instr *load =
       95:       99:  190:         nir_instr_as_load_const(instr->src[src].src.ssa->parent_instr);
        -:        -:  191:
       95:       99:  192:      switch (const_val->type) {
        -:        -:  193:      case nir_type_float:
        6:       12:  194:         for (unsigned i = 0; i < num_components; ++i) {
        -:        -:  195:            double val;
        6:       10:  196:            switch (load->def.bit_size) {
        -:        -:  197:            case 32:
        6:       10:  198:               val = load->value.f32[new_swizzle[i]];
        6:       10:  199:               break;
        -:        -:  200:            case 64:
    #####:    #####:  201:               val = load->value.f64[new_swizzle[i]];
    #####:    #####:  202:               break;
        -:        -:  203:            default:
    #####:    #####:  204:               unreachable("unknown bit size");
        -:        -:  205:            }
        -:        -:  206:
        6:       10:  207:            if (val != const_val->data.d)
        6:        8:  208:               return false;
        -:        -:  209:         }
    #####:        2:  210:         return true;
        -:        -:  211:
        -:        -:  212:      case nir_type_int:
        -:        -:  213:      case nir_type_uint:
        -:        -:  214:      case nir_type_bool32:
       89:       89:  215:         switch (load->def.bit_size) {
        -:        -:  216:         case 32:
      129:      129:  217:            for (unsigned i = 0; i < num_components; ++i) {
      178:      178:  218:               if (load->value.u32[new_swizzle[i]] !=
       89:       89:  219:                   (uint32_t)const_val->data.u)
       49:       49:  220:                  return false;
        -:        -:  221:            }
       40:       40:  222:            return true;
        -:        -:  223:
        -:        -:  224:         case 64:
    #####:    #####:  225:            for (unsigned i = 0; i < num_components; ++i) {
    #####:    #####:  226:               if (load->value.u64[new_swizzle[i]] != const_val->data.u)
    #####:    #####:  227:                  return false;
        -:        -:  228:            }
    #####:    #####:  229:            return true;
        -:        -:  230:
        -:        -:  231:         default:
    #####:    #####:  232:            unreachable("unknown bit size");
        -:        -:  233:         }
        -:        -:  234:
        -:        -:  235:      default:
    #####:    #####:  236:         unreachable("Invalid alu source type");
        -:        -:  237:      }
        -:        -:  238:   }
        -:        -:  239:
        -:        -:  240:   default:
    #####:    #####:  241:      unreachable("Invalid search value type");
        -:        -:  242:   }
        -:        -:  243:}
        -:        -:  244:
        -:        -:  245:static bool
     4760:     4874:  246:match_expression(const nir_search_expression *expr, nir_alu_instr *instr,
        -:        -:  247:                 unsigned num_components, const uint8_t *swizzle,
        -:        -:  248:                 struct match_state *state)
        -:        -:  249:{
     4760:     4874:  250:   if (expr->cond && !expr->cond(instr))
       10:       10:  251:      return false;
        -:        -:  252:
     4750:     4864:  253:   if (instr->op != expr->opcode)
     1183:     1195:  254:      return false;
        -:        -:  255:
     3567:     3669:  256:   assert(instr->dest.dest.is_ssa);
        -:        -:  257:
     4132:     4238:  258:   if (expr->value.bit_size &&
      565:      569:  259:       instr->dest.dest.ssa.bit_size != expr->value.bit_size)
    #####:    #####:  260:      return false;
        -:        -:  261:
     3567:     3669:  262:   state->inexact_match = expr->inexact || state->inexact_match;
     3567:     3669:  263:   state->has_exact_alu = instr->exact || state->has_exact_alu;
     3567:     3669:  264:   if (state->inexact_match && state->has_exact_alu)
    #####:    #####:  265:      return false;
        -:        -:  266:
     3567:     3669:  267:   assert(!instr->dest.saturate);
     3567:     3669:  268:   assert(nir_op_infos[instr->op].num_inputs > 0);
        -:        -:  269:
        -:        -:  270:   /* If we have an explicitly sized destination, we can only handle the
        -:        -:  271:    * identity swizzle.  While dot(vec3(a, b, c).zxy) is a valid
        -:        -:  272:    * expression, we don't have the information right now to propagate that
        -:        -:  273:    * swizzle through.  We can only properly propagate swizzles if the
        -:        -:  274:    * instruction is vectorized.
        -:        -:  275:    */
     3567:     3669:  276:   if (nir_op_infos[instr->op].output_size != 0) {
        8:        8:  277:      for (unsigned i = 0; i < num_components; i++) {
        4:        4:  278:         if (swizzle[i] != i)
    #####:    #####:  279:            return false;
        -:        -:  280:      }
        -:        -:  281:   }
        -:        -:  282:
        -:        -:  283:   /* Stash off the current variables_seen bitmask.  This way we can
        -:        -:  284:    * restore it prior to matching in the commutative case below.
        -:        -:  285:    */
     3567:     3669:  286:   unsigned variables_seen_stash = state->variables_seen;
        -:        -:  287:
     3567:     3669:  288:   bool matched = true;
     5465:     5583:  289:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
     5342:     5456:  290:      if (!match_value(expr->srcs[i], instr, i, num_components,
        -:        -:  291:                       swizzle, state)) {
     3444:     3542:  292:         matched = false;
     3444:     3542:  293:         break;
        -:        -:  294:      }
        -:        -:  295:   }
        -:        -:  296:
     3567:     3669:  297:   if (matched)
      123:      127:  298:      return true;
        -:        -:  299:
     3444:     3542:  300:   if (nir_op_infos[instr->op].algebraic_properties & NIR_OP_IS_COMMUTATIVE) {
     1430:     1448:  301:      assert(nir_op_infos[instr->op].num_inputs == 2);
        -:        -:  302:
        -:        -:  303:      /* Restore the variables_seen bitmask.  If we don't do this, then we
        -:        -:  304:       * could end up with an erroneous failure due to variables found in the
        -:        -:  305:       * first match attempt above not matching those in the second.
        -:        -:  306:       */
     1430:     1448:  307:      state->variables_seen = variables_seen_stash;
        -:        -:  308:
     1430:     1448:  309:      if (!match_value(expr->srcs[0], instr, 1, num_components,
        -:        -:  310:                       swizzle, state))
      726:      734:  311:         return false;
        -:        -:  312:
      704:      714:  313:      return match_value(expr->srcs[1], instr, 0, num_components,
        -:        -:  314:                         swizzle, state);
        -:        -:  315:   } else {
     2014:     2094:  316:      return false;
        -:        -:  317:   }
        -:        -:  318:}
        -:        -:  319:
        -:        -:  320:typedef struct bitsize_tree {
        -:        -:  321:   unsigned num_srcs;
        -:        -:  322:   struct bitsize_tree *srcs[4];
        -:        -:  323:
        -:        -:  324:   unsigned common_size;
        -:        -:  325:   bool is_src_sized[4];
        -:        -:  326:   bool is_dest_sized;
        -:        -:  327:
        -:        -:  328:   unsigned dest_size;
        -:        -:  329:   unsigned src_size[4];
        -:        -:  330:} bitsize_tree;
        -:        -:  331:
        -:        -:  332:static bitsize_tree *
      138:      146:  333:build_bitsize_tree(void *mem_ctx, struct match_state *state,
        -:        -:  334:                   const nir_search_value *value)
        -:        -:  335:{
      138:      146:  336:   bitsize_tree *tree = rzalloc(mem_ctx, bitsize_tree);
        -:        -:  337:
      138:      146:  338:   switch (value->type) {
        -:        -:  339:   case nir_search_value_expression: {
       46:       50:  340:      nir_search_expression *expr = nir_search_value_as_expression(value);
       46:       50:  341:      nir_op_info info = nir_op_infos[expr->opcode];
       46:       50:  342:      tree->num_srcs = info.num_inputs;
       46:       50:  343:      tree->common_size = 0;
      123:      133:  344:      for (unsigned i = 0; i < info.num_inputs; i++) {
       77:       83:  345:         tree->is_src_sized[i] = !!nir_alu_type_get_type_size(info.input_types[i]);
       77:       83:  346:         if (tree->is_src_sized[i])
    #####:    #####:  347:            tree->src_size[i] = nir_alu_type_get_type_size(info.input_types[i]);
       77:       83:  348:         tree->srcs[i] = build_bitsize_tree(mem_ctx, state, expr->srcs[i]);
        -:        -:  349:      }
       46:       50:  350:      tree->is_dest_sized = !!nir_alu_type_get_type_size(info.output_type);
       46:       50:  351:      if (tree->is_dest_sized)
    #####:        2:  352:         tree->dest_size = nir_alu_type_get_type_size(info.output_type);
       46:       50:  353:      break;
        -:        -:  354:   }
        -:        -:  355:
        -:        -:  356:   case nir_search_value_variable: {
       91:       95:  357:      nir_search_variable *var = nir_search_value_as_variable(value);
       91:       95:  358:      tree->num_srcs = 0;
       91:       95:  359:      tree->is_dest_sized = true;
       91:       95:  360:      tree->dest_size = nir_src_bit_size(state->variables[var->variable].src);
       91:       95:  361:      break;
        -:        -:  362:   }
        -:        -:  363:
        -:        -:  364:   case nir_search_value_constant: {
        1:        1:  365:      tree->num_srcs = 0;
        1:        1:  366:      tree->is_dest_sized = false;
        1:        1:  367:      tree->common_size = 0;
        1:        1:  368:      break;
        -:        -:  369:   }
        -:        -:  370:   }
        -:        -:  371:
      138:      146:  372:   if (value->bit_size) {
        1:        1:  373:      assert(!tree->is_dest_sized || tree->dest_size == value->bit_size);
        1:        1:  374:      tree->common_size = value->bit_size;
        -:        -:  375:   }
        -:        -:  376:
      138:      146:  377:   return tree;
        -:        -:  378:}
        -:        -:  379:
        -:        -:  380:static unsigned
      138:      146:  381:bitsize_tree_filter_up(bitsize_tree *tree)
        -:        -:  382:{
      215:      229:  383:   for (unsigned i = 0; i < tree->num_srcs; i++) {
       77:       83:  384:      unsigned src_size = bitsize_tree_filter_up(tree->srcs[i]);
       77:       83:  385:      if (src_size == 0)
    #####:    #####:  386:         continue;
        -:        -:  387:
       77:       83:  388:      if (tree->is_src_sized[i]) {
    #####:    #####:  389:         assert(src_size == tree->src_size[i]);
       77:       83:  390:      } else if (tree->common_size != 0) {
       31:       33:  391:         assert(src_size == tree->common_size);
       31:       33:  392:         tree->src_size[i] = src_size;
        -:        -:  393:      } else {
       46:       50:  394:         tree->common_size = src_size;
       46:       50:  395:         tree->src_size[i] = src_size;
        -:        -:  396:      }
        -:        -:  397:   }
        -:        -:  398:
      138:      146:  399:   if (tree->num_srcs && tree->common_size) {
       46:       50:  400:      if (tree->dest_size == 0)
       46:       48:  401:         tree->dest_size = tree->common_size;
    #####:        2:  402:      else if (!tree->is_dest_sized)
    #####:    #####:  403:         assert(tree->dest_size == tree->common_size);
        -:        -:  404:
      123:      133:  405:      for (unsigned i = 0; i < tree->num_srcs; i++) {
       77:       83:  406:         if (!tree->src_size[i])
    #####:    #####:  407:            tree->src_size[i] = tree->common_size;
        -:        -:  408:      }
        -:        -:  409:   }
        -:        -:  410:
      138:      146:  411:   return tree->dest_size;
        -:        -:  412:}
        -:        -:  413:
        -:        -:  414:static void
      138:      146:  415:bitsize_tree_filter_down(bitsize_tree *tree, unsigned size)
        -:        -:  416:{
      138:      146:  417:   if (tree->dest_size)
      137:      145:  418:      assert(tree->dest_size == size);
        -:        -:  419:   else
        1:        1:  420:      tree->dest_size = size;
        -:        -:  421:
      138:      146:  422:   if (!tree->is_dest_sized) {
       47:       49:  423:      if (tree->common_size)
       47:       49:  424:         assert(tree->common_size == size);
        -:        -:  425:      else
    #####:    #####:  426:         tree->common_size = size;
        -:        -:  427:   }
        -:        -:  428:
      215:      229:  429:   for (unsigned i = 0; i < tree->num_srcs; i++) {
       77:       83:  430:      if (!tree->src_size[i]) {
    #####:    #####:  431:         assert(tree->common_size);
    #####:    #####:  432:         tree->src_size[i] = tree->common_size;
        -:        -:  433:      }
       77:       83:  434:      bitsize_tree_filter_down(tree->srcs[i], tree->src_size[i]);
        -:        -:  435:   }
      138:      146:  436:}
        -:        -:  437:
        -:        -:  438:static nir_alu_src
      138:      146:  439:construct_value(const nir_search_value *value,
        -:        -:  440:                unsigned num_components, bitsize_tree *bitsize,
        -:        -:  441:                struct match_state *state,
        -:        -:  442:                nir_instr *instr, void *mem_ctx)
        -:        -:  443:{
      138:      146:  444:   switch (value->type) {
        -:        -:  445:   case nir_search_value_expression: {
       46:       50:  446:      const nir_search_expression *expr = nir_search_value_as_expression(value);
        -:        -:  447:
       46:       50:  448:      if (nir_op_infos[expr->opcode].output_size != 0)
        4:        4:  449:         num_components = nir_op_infos[expr->opcode].output_size;
        -:        -:  450:
       46:       50:  451:      nir_alu_instr *alu = nir_alu_instr_create(mem_ctx, expr->opcode);
       46:       50:  452:      nir_ssa_dest_init(&alu->instr, &alu->dest.dest, num_components,
        -:        -:  453:                        bitsize->dest_size, NULL);
       46:       50:  454:      alu->dest.write_mask = (1 << num_components) - 1;
       46:       50:  455:      alu->dest.saturate = false;
        -:        -:  456:
        -:        -:  457:      /* We have no way of knowing what values in a given search expression
        -:        -:  458:       * map to a particular replacement value.  Therefore, if the
        -:        -:  459:       * expression we are replacing has any exact values, the entire
        -:        -:  460:       * replacement should be exact.
        -:        -:  461:       */
       46:       50:  462:      alu->exact = state->has_exact_alu;
        -:        -:  463:
      123:      133:  464:      for (unsigned i = 0; i < nir_op_infos[expr->opcode].num_inputs; i++) {
        -:        -:  465:         /* If the source is an explicitly sized source, then we need to reset
        -:        -:  466:          * the number of components to match.
        -:        -:  467:          */
       77:       83:  468:         if (nir_op_infos[alu->op].input_sizes[i] != 0)
        8:        8:  469:            num_components = nir_op_infos[alu->op].input_sizes[i];
        -:        -:  470:
       77:       83:  471:         alu->src[i] = construct_value(expr->srcs[i],
       77:       83:  472:                                       num_components, bitsize->srcs[i],
        -:        -:  473:                                       state, instr, mem_ctx);
        -:        -:  474:      }
        -:        -:  475:
       46:       50:  476:      nir_instr_insert_before(instr, &alu->instr);
        -:        -:  477:
        -:        -:  478:      nir_alu_src val;
       46:       50:  479:      val.src = nir_src_for_ssa(&alu->dest.dest.ssa);
       46:       50:  480:      val.negate = false;
       46:       50:  481:      val.abs = false,
       46:       50:  482:      memcpy(val.swizzle, identity_swizzle, sizeof val.swizzle);
        -:        -:  483:
       46:       50:  484:      return val;
        -:        -:  485:   }
        -:        -:  486:
        -:        -:  487:   case nir_search_value_variable: {
       91:       95:  488:      const nir_search_variable *var = nir_search_value_as_variable(value);
       91:       95:  489:      assert(state->variables_seen & (1 << var->variable));
        -:        -:  490:
       91:       95:  491:      nir_alu_src val = { NIR_SRC_INIT };
       91:       95:  492:      nir_alu_src_copy(&val, &state->variables[var->variable], mem_ctx);
        -:        -:  493:
       91:       95:  494:      assert(!var->is_constant);
        -:        -:  495:
       91:       95:  496:      return val;
        -:        -:  497:   }
        -:        -:  498:
        -:        -:  499:   case nir_search_value_constant: {
        1:        1:  500:      const nir_search_constant *c = nir_search_value_as_constant(value);
        1:        1:  501:      nir_load_const_instr *load =
        1:        1:  502:         nir_load_const_instr_create(mem_ctx, 1, bitsize->dest_size);
        -:        -:  503:
        1:        1:  504:      switch (c->type) {
        -:        -:  505:      case nir_type_float:
    #####:    #####:  506:         load->def.name = ralloc_asprintf(load, "%f", c->data.d);
    #####:    #####:  507:         switch (bitsize->dest_size) {
        -:        -:  508:         case 32:
    #####:    #####:  509:            load->value.f32[0] = c->data.d;
    #####:    #####:  510:            break;
        -:        -:  511:         case 64:
    #####:    #####:  512:            load->value.f64[0] = c->data.d;
    #####:    #####:  513:            break;
        -:        -:  514:         default:
    #####:    #####:  515:            unreachable("unknown bit size");
        -:        -:  516:         }
    #####:    #####:  517:         break;
        -:        -:  518:
        -:        -:  519:      case nir_type_int:
    #####:    #####:  520:         load->def.name = ralloc_asprintf(load, "%" PRIi64, c->data.i);
    #####:    #####:  521:         switch (bitsize->dest_size) {
        -:        -:  522:         case 32:
    #####:    #####:  523:            load->value.i32[0] = c->data.i;
    #####:    #####:  524:            break;
        -:        -:  525:         case 64:
    #####:    #####:  526:            load->value.i64[0] = c->data.i;
    #####:    #####:  527:            break;
        -:        -:  528:         default:
    #####:    #####:  529:            unreachable("unknown bit size");
        -:        -:  530:         }
    #####:    #####:  531:         break;
        -:        -:  532:
        -:        -:  533:      case nir_type_uint:
    #####:    #####:  534:         load->def.name = ralloc_asprintf(load, "%" PRIu64, c->data.u);
    #####:    #####:  535:         switch (bitsize->dest_size) {
        -:        -:  536:         case 32:
    #####:    #####:  537:            load->value.u32[0] = c->data.u;
    #####:    #####:  538:            break;
        -:        -:  539:         case 64:
    #####:    #####:  540:            load->value.u64[0] = c->data.u;
    #####:    #####:  541:            break;
        -:        -:  542:         default:
    #####:    #####:  543:            unreachable("unknown bit size");
        -:        -:  544:         }
    #####:    #####:  545:         break;
        -:        -:  546:
        -:        -:  547:      case nir_type_bool32:
        1:        1:  548:         load->value.u32[0] = c->data.u;
        1:        1:  549:         break;
        -:        -:  550:      default:
    #####:    #####:  551:         unreachable("Invalid alu source type");
        -:        -:  552:      }
        -:        -:  553:
        1:        1:  554:      nir_instr_insert_before(instr, &load->instr);
        -:        -:  555:
        -:        -:  556:      nir_alu_src val;
        1:        1:  557:      val.src = nir_src_for_ssa(&load->def);
        1:        1:  558:      val.negate = false;
        1:        1:  559:      val.abs = false,
        1:        1:  560:      memset(val.swizzle, 0, sizeof val.swizzle);
        -:        -:  561:
        1:        1:  562:      return val;
        -:        -:  563:   }
        -:        -:  564:
        -:        -:  565:   default:
    #####:    #####:  566:      unreachable("Invalid search value type");
        -:        -:  567:   }
        -:        -:  568:}
        -:        -:  569:
        -:        -:  570:nir_alu_instr *
     3486:     3586:  571:nir_replace_instr(nir_alu_instr *instr, const nir_search_expression *search,
        -:        -:  572:                  const nir_search_value *replace, void *mem_ctx)
        -:        -:  573:{
     3486:     3586:  574:   uint8_t swizzle[4] = { 0, 0, 0, 0 };
        -:        -:  575:
     6972:     7172:  576:   for (unsigned i = 0; i < instr->dest.dest.ssa.num_components; ++i)
     3486:     3586:  577:      swizzle[i] = i;
        -:        -:  578:
     3486:     3586:  579:   assert(instr->dest.dest.is_ssa);
        -:        -:  580:
        -:        -:  581:   struct match_state state;
     3486:     3586:  582:   state.inexact_match = false;
     3486:     3586:  583:   state.has_exact_alu = false;
     3486:     3586:  584:   state.variables_seen = 0;
        -:        -:  585:
     3486:     3586:  586:   if (!match_expression(search, instr, instr->dest.dest.ssa.num_components,
        -:        -:  587:                         swizzle, &state))
     3425:     3523:  588:      return NULL;
        -:        -:  589:
       61:       63:  590:   void *bitsize_ctx = ralloc_context(NULL);
       61:       63:  591:   bitsize_tree *tree = build_bitsize_tree(bitsize_ctx, &state, replace);
       61:       63:  592:   bitsize_tree_filter_up(tree);
       61:       63:  593:   bitsize_tree_filter_down(tree, instr->dest.dest.ssa.bit_size);
        -:        -:  594:
        -:        -:  595:   /* Inserting a mov may be unnecessary.  However, it's much easier to
        -:        -:  596:    * simply let copy propagation clean this up than to try to go through
        -:        -:  597:    * and rewrite swizzles ourselves.
        -:        -:  598:    */
       61:       63:  599:   nir_alu_instr *mov = nir_alu_instr_create(mem_ctx, nir_op_imov);
       61:       63:  600:   mov->dest.write_mask = instr->dest.write_mask;
      122:      126:  601:   nir_ssa_dest_init(&mov->instr, &mov->dest.dest,
       61:       63:  602:                     instr->dest.dest.ssa.num_components,
       61:       63:  603:                     instr->dest.dest.ssa.bit_size, NULL);
        -:        -:  604:
      122:      126:  605:   mov->src[0] = construct_value(replace,
       61:       63:  606:                                 instr->dest.dest.ssa.num_components, tree,
        -:        -:  607:                                 &state, &instr->instr, mem_ctx);
       61:       63:  608:   nir_instr_insert_before(&instr->instr, &mov->instr);
        -:        -:  609:
       61:       63:  610:   nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa,
        -:        -:  611:                            nir_src_for_ssa(&mov->dest.dest.ssa));
        -:        -:  612:
        -:        -:  613:   /* We know this one has no more uses because we just rewrote them all,
        -:        -:  614:    * so we can remove it.  The rest of the matched expression, however, we
        -:        -:  615:    * don't know so much about.  We'll just let dead code clean them up.
        -:        -:  616:    */
       61:       63:  617:   nir_instr_remove(&instr->instr);
        -:        -:  618:
       61:       63:  619:   ralloc_free(bitsize_ctx);
        -:        -:  620:
       61:       63:  621:   return mov;
        -:        -:  622:}

src/compiler/nir_search.h.gcov

        -:        -:    0:Source:nir/nir_search.h
        -:        -:    0:Graph:nir/.libs/nir_search.gcno
        -:        -:    0:Data:nir/.libs/nir_search.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef _NIR_SEARCH_
        -:        -:   29:#define _NIR_SEARCH_
        -:        -:   30:
        -:        -:   31:#include "nir.h"
        -:        -:   32:
        -:        -:   33:#define NIR_SEARCH_MAX_VARIABLES 16
        -:        -:   34:
        -:        -:   35:typedef enum {
        -:        -:   36:   nir_search_value_expression,
        -:        -:   37:   nir_search_value_variable,
        -:        -:   38:   nir_search_value_constant,
        -:        -:   39:} nir_search_value_type;
        -:        -:   40:
        -:        -:   41:typedef struct {
        -:        -:   42:   nir_search_value_type type;
        -:        -:   43:
        -:        -:   44:   unsigned bit_size;
        -:        -:   45:} nir_search_value;
        -:        -:   46:
        -:        -:   47:typedef struct {
        -:        -:   48:   nir_search_value value;
        -:        -:   49:
        -:        -:   50:   /** The variable index;  Must be less than NIR_SEARCH_MAX_VARIABLES */
        -:        -:   51:   unsigned variable;
        -:        -:   52:
        -:        -:   53:   /** Indicates that the given variable must be a constant
        -:        -:   54:    *
        -:        -:   55:    * This is only allowed in search expressions and indicates that the
        -:        -:   56:    * given variable is only allowed to match constant values.
        -:        -:   57:    */
        -:        -:   58:   bool is_constant;
        -:        -:   59:
        -:        -:   60:   /** Indicates that the given variable must have a certain type
        -:        -:   61:    *
        -:        -:   62:    * This is only allowed in search expressions and indicates that the
        -:        -:   63:    * given variable is only allowed to match values that come from an ALU
        -:        -:   64:    * instruction with the given output type.  A type of nir_type_void
        -:        -:   65:    * means it can match any type.
        -:        -:   66:    *
        -:        -:   67:    * Note: A variable that is both constant and has a non-void type will
        -:        -:   68:    * never match anything.
        -:        -:   69:    */
        -:        -:   70:   nir_alu_type type;
        -:        -:   71:
        -:        -:   72:   /** Optional condition fxn ptr
        -:        -:   73:    *
        -:        -:   74:    * This is only allowed in search expressions, and allows additional
        -:        -:   75:    * constraints to be placed on the match.  Typically used for 'is_constant'
        -:        -:   76:    * variables to require, for example, power-of-two in order for the search
        -:        -:   77:    * to match.
        -:        -:   78:    */
        -:        -:   79:   bool (*cond)(nir_alu_instr *instr, unsigned src,
        -:        -:   80:                unsigned num_components, const uint8_t *swizzle);
        -:        -:   81:} nir_search_variable;
        -:        -:   82:
        -:        -:   83:typedef struct {
        -:        -:   84:   nir_search_value value;
        -:        -:   85:
        -:        -:   86:   nir_alu_type type;
        -:        -:   87:
        -:        -:   88:   union {
        -:        -:   89:      uint64_t u;
        -:        -:   90:      int64_t i;
        -:        -:   91:      double d;
        -:        -:   92:   } data;
        -:        -:   93:} nir_search_constant;
        -:        -:   94:
        -:        -:   95:typedef struct {
        -:        -:   96:   nir_search_value value;
        -:        -:   97:
        -:        -:   98:   /* When set on a search expression, the expression will only match an SSA
        -:        -:   99:    * value that does *not* have the exact bit set.  If unset, the exact bit
        -:        -:  100:    * on the SSA value is ignored.
        -:        -:  101:    */
        -:        -:  102:   bool inexact;
        -:        -:  103:
        -:        -:  104:   nir_op opcode;
        -:        -:  105:   const nir_search_value *srcs[4];
        -:        -:  106:
        -:        -:  107:   /** Optional condition fxn ptr
        -:        -:  108:    *
        -:        -:  109:    * This allows additional constraints on expression matching, it is
        -:        -:  110:    * typically used to match an expressions uses such as the number of times
        -:        -:  111:    * the expression is used, and whether its used by an if.
        -:        -:  112:    */
        -:        -:  113:   bool (*cond)(nir_alu_instr *instr);
        -:        -:  114:} nir_search_expression;
        -:        -:  115:
     3390:     3438:  116:NIR_DEFINE_CAST(nir_search_value_as_variable, nir_search_value,
        -:        -:  117:                nir_search_variable, value,
        -:        -:  118:                type, nir_search_value_variable)
     1786:     1808:  119:NIR_DEFINE_CAST(nir_search_value_as_constant, nir_search_value,
        -:        -:  120:                nir_search_constant, value,
        -:        -:  121:                type, nir_search_value_constant)
     1366:     1388:  122:NIR_DEFINE_CAST(nir_search_value_as_expression, nir_search_value,
        -:        -:  123:                nir_search_expression, value,
        -:        -:  124:                type, nir_search_value_expression)
        -:        -:  125:
        -:        -:  126:nir_alu_instr *
        -:        -:  127:nir_replace_instr(nir_alu_instr *instr, const nir_search_expression *search,
        -:        -:  128:                  const nir_search_value *replace, void *mem_ctx);
        -:        -:  129:
        -:        -:  130:#endif /* _NIR_SEARCH_ */

src/compiler/nir_split_var_copies.c.gcov

        -:        -:    0:Source:nir/nir_split_var_copies.c
        -:        -:    0:Graph:nir/.libs/nir_split_var_copies.gcno
        -:        -:    0:Data:nir/.libs/nir_split_var_copies.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:
        -:        -:   30:/*
        -:        -:   31: * Implements "copy splitting" which is similar to structure splitting only
        -:        -:   32: * it works on copy operations rather than the datatypes themselves.  The
        -:        -:   33: * GLSL language allows you to copy one variable to another an entire
        -:        -:   34: * structure (which may contain arrays or other structures) at a time.
        -:        -:   35: * Normally, in a language such as C this would be handled by a "structure
        -:        -:   36: * splitting" pass that breaks up the structures.  Unfortunately for us,
        -:        -:   37: * structures used in inputs or outputs can't be split.  Therefore,
        -:        -:   38: * regardlesss of what we do, we have to be able to copy to/from
        -:        -:   39: * structures.
        -:        -:   40: *
        -:        -:   41: * The primary purpose of structure splitting is to allow you to better
        -:        -:   42: * optimize variable access and lower things to registers where you can.
        -:        -:   43: * The primary issue here is that, if you lower the copy to a bunch of
        -:        -:   44: * loads and stores, you loose a lot of information about the copy
        -:        -:   45: * operation that you would like to keep around.  To solve this problem, we
        -:        -:   46: * have a "copy splitting" pass that, instead of splitting the structures
        -:        -:   47: * or lowering the copy into loads and storres, splits the copy operation
        -:        -:   48: * into a bunch of copy operations one for each leaf of the structure tree.
        -:        -:   49: * If an intermediate array is encountered, it is referenced with a
        -:        -:   50: * wildcard reference to indicate that the entire array is to be copied.
        -:        -:   51: *
        -:        -:   52: * As things become direct, array copies may be able to be losslessly
        -:        -:   53: * lowered to having fewer and fewer wildcards.  However, until that
        -:        -:   54: * happens we want to keep the information about the arrays intact.
        -:        -:   55: *
        -:        -:   56: * Prior to the copy splitting pass, there are no wildcard references but
        -:        -:   57: * there may be incomplete references where the tail of the deref chain is
        -:        -:   58: * an array or a structure and not a specific element.  After the copy
        -:        -:   59: * splitting pass has completed, every variable deref will be a full-length
        -:        -:   60: * dereference pointing to a single leaf in the structure type tree with
        -:        -:   61: * possibly a few wildcard array dereferences.
        -:        -:   62: */
        -:        -:   63:
        -:        -:   64:struct split_var_copies_state {
        -:        -:   65:   nir_shader *shader;
        -:        -:   66:   void *dead_ctx;
        -:        -:   67:   bool progress;
        -:        -:   68:};
        -:        -:   69:
        -:        -:   70:/* Recursively constructs deref chains to split a copy instruction into
        -:        -:   71: * multiple (if needed) copy instructions with full-length deref chains.
        -:        -:   72: * External callers of this function should pass the tail and head of the
        -:        -:   73: * deref chains found as the source and destination of the copy instruction
        -:        -:   74: * into this function.
        -:        -:   75: *
        -:        -:   76: * \param  old_copy  The copy instruction we are splitting
        -:        -:   77: * \param  dest_head The head of the destination deref chain we are building
        -:        -:   78: * \param  src_head  The head of the source deref chain we are building
        -:        -:   79: * \param  dest_tail The tail of the destination deref chain we are building
        -:        -:   80: * \param  src_tail  The tail of the source deref chain we are building
        -:        -:   81: * \param  state     The current split_var_copies_state object
        -:        -:   82: */
        -:        -:   83:static void
    #####:    #####:   84:split_var_copy_instr(nir_intrinsic_instr *old_copy,
        -:        -:   85:                     nir_deref_var *dest_head, nir_deref_var *src_head,
        -:        -:   86:                     nir_deref *dest_tail, nir_deref *src_tail,
        -:        -:   87:                     struct split_var_copies_state *state)
        -:        -:   88:{
    #####:    #####:   89:   assert(src_tail->type == dest_tail->type);
        -:        -:   90:
        -:        -:   91:   /* Make sure these really are the tails of the deref chains */
    #####:    #####:   92:   assert(dest_tail->child == NULL);
    #####:    #####:   93:   assert(src_tail->child == NULL);
        -:        -:   94:
    #####:    #####:   95:   switch (glsl_get_base_type(src_tail->type)) {
        -:        -:   96:   case GLSL_TYPE_ARRAY: {
        -:        -:   97:      /* Make a wildcard dereference */
    #####:    #####:   98:      nir_deref_array *deref = nir_deref_array_create(state->dead_ctx);
    #####:    #####:   99:      deref->deref.type = glsl_get_array_element(src_tail->type);
    #####:    #####:  100:      deref->deref_array_type = nir_deref_array_type_wildcard;
        -:        -:  101:
        -:        -:  102:      /* Set the tail of both as the newly created wildcard deref.  It is
        -:        -:  103:       * safe to use the same wildcard in both places because a) we will be
        -:        -:  104:       * copying it before we put it in an actual instruction and b)
        -:        -:  105:       * everything that will potentially add another link in the deref
        -:        -:  106:       * chain will also add the same thing to both chains.
        -:        -:  107:       */
    #####:    #####:  108:      src_tail->child = &deref->deref;
    #####:    #####:  109:      dest_tail->child = &deref->deref;
        -:        -:  110:
    #####:    #####:  111:      split_var_copy_instr(old_copy, dest_head, src_head,
    #####:    #####:  112:                           dest_tail->child, src_tail->child, state);
        -:        -:  113:
        -:        -:  114:      /* Set it back to the way we found it */
    #####:    #####:  115:      src_tail->child = NULL;
    #####:    #####:  116:      dest_tail->child = NULL;
    #####:    #####:  117:      break;
        -:        -:  118:   }
        -:        -:  119:
        -:        -:  120:   case GLSL_TYPE_STRUCT:
        -:        -:  121:      /* This is the only part that actually does any interesting
        -:        -:  122:       * splitting.  For array types, we just use wildcards and resolve
        -:        -:  123:       * them later.  For structure types, we need to emit one copy
        -:        -:  124:       * instruction for every structure element.  Because we may have
        -:        -:  125:       * structs inside structs, we just recurse and let the next level
        -:        -:  126:       * take care of any additional structures.
        -:        -:  127:       */
    #####:    #####:  128:      for (unsigned i = 0; i < glsl_get_length(src_tail->type); i++) {
    #####:    #####:  129:         nir_deref_struct *deref = nir_deref_struct_create(state->dead_ctx, i);
    #####:    #####:  130:         deref->deref.type = glsl_get_struct_field(src_tail->type, i);
        -:        -:  131:
        -:        -:  132:         /* Set the tail of both as the newly created structure deref.  It
        -:        -:  133:          * is safe to use the same wildcard in both places because a) we
        -:        -:  134:          * will be copying it before we put it in an actual instruction
        -:        -:  135:          * and b) everything that will potentially add another link in the
        -:        -:  136:          * deref chain will also add the same thing to both chains.
        -:        -:  137:          */
    #####:    #####:  138:         src_tail->child = &deref->deref;
    #####:    #####:  139:         dest_tail->child = &deref->deref;
        -:        -:  140:
    #####:    #####:  141:         split_var_copy_instr(old_copy, dest_head, src_head,
    #####:    #####:  142:                              dest_tail->child, src_tail->child, state);
        -:        -:  143:      }
        -:        -:  144:      /* Set it back to the way we found it */
    #####:    #####:  145:      src_tail->child = NULL;
    #####:    #####:  146:      dest_tail->child = NULL;
    #####:    #####:  147:      break;
        -:        -:  148:
        -:        -:  149:   case GLSL_TYPE_UINT:
        -:        -:  150:   case GLSL_TYPE_UINT64:
        -:        -:  151:   case GLSL_TYPE_INT:
        -:        -:  152:   case GLSL_TYPE_INT64:
        -:        -:  153:   case GLSL_TYPE_FLOAT:
        -:        -:  154:   case GLSL_TYPE_DOUBLE:
        -:        -:  155:   case GLSL_TYPE_BOOL:
    #####:    #####:  156:      if (glsl_type_is_matrix(src_tail->type)) {
    #####:    #####:  157:         nir_deref_array *deref = nir_deref_array_create(state->dead_ctx);
    #####:    #####:  158:         deref->deref.type = glsl_get_column_type(src_tail->type);
    #####:    #####:  159:         deref->deref_array_type = nir_deref_array_type_wildcard;
        -:        -:  160:
        -:        -:  161:         /* Set the tail of both as the newly created wildcard deref.  It
        -:        -:  162:          * is safe to use the same wildcard in both places because a) we
        -:        -:  163:          * will be copying it before we put it in an actual instruction
        -:        -:  164:          * and b) everything that will potentially add another link in the
        -:        -:  165:          * deref chain will also add the same thing to both chains.
        -:        -:  166:          */
    #####:    #####:  167:         src_tail->child = &deref->deref;
    #####:    #####:  168:         dest_tail->child = &deref->deref;
        -:        -:  169:
    #####:    #####:  170:         split_var_copy_instr(old_copy, dest_head, src_head,
    #####:    #####:  171:                              dest_tail->child, src_tail->child, state);
        -:        -:  172:
        -:        -:  173:         /* Set it back to the way we found it */
    #####:    #####:  174:         src_tail->child = NULL;
    #####:    #####:  175:         dest_tail->child = NULL;
        -:        -:  176:      } else {
        -:        -:  177:         /* At this point, we have fully built our deref chains and can
        -:        -:  178:          * actually add the new copy instruction.
        -:        -:  179:          */
    #####:    #####:  180:         nir_intrinsic_instr *new_copy =
    #####:    #####:  181:            nir_intrinsic_instr_create(state->shader, nir_intrinsic_copy_var);
        -:        -:  182:
        -:        -:  183:         /* We need to make copies because a) this deref chain actually
        -:        -:  184:          * belongs to the copy instruction and b) the deref chains may
        -:        -:  185:          * have some of the same links due to the way we constructed them
        -:        -:  186:          */
    #####:    #####:  187:         new_copy->variables[0] = nir_deref_var_clone(dest_head, new_copy);
    #####:    #####:  188:         new_copy->variables[1] = nir_deref_var_clone(src_head, new_copy);
        -:        -:  189:
        -:        -:  190:         /* Emit the copy instruction after the old instruction.  We'll
        -:        -:  191:          * remove the old one later.
        -:        -:  192:          */
    #####:    #####:  193:         nir_instr_insert_after(&old_copy->instr, &new_copy->instr);
    #####:    #####:  194:         state->progress = true;
        -:        -:  195:      }
    #####:    #####:  196:      break;
        -:        -:  197:
        -:        -:  198:   case GLSL_TYPE_SAMPLER:
        -:        -:  199:   case GLSL_TYPE_IMAGE:
        -:        -:  200:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -:  201:   case GLSL_TYPE_INTERFACE:
        -:        -:  202:   default:
    #####:    #####:  203:      unreachable("Cannot copy these types");
        -:        -:  204:   }
    #####:    #####:  205:}
        -:        -:  206:
        -:        -:  207:static bool
       89:      105:  208:split_var_copies_block(nir_block *block, struct split_var_copies_state *state)
        -:        -:  209:{
      414:      448:  210:   nir_foreach_instr_safe(instr, block) {
      325:      343:  211:      if (instr->type != nir_instr_type_intrinsic)
      123:      133:  212:         continue;
        -:        -:  213:
      202:      210:  214:      nir_intrinsic_instr *intrinsic = nir_instr_as_intrinsic(instr);
      202:      210:  215:      if (intrinsic->intrinsic != nir_intrinsic_copy_var)
      149:      157:  216:         continue;
        -:        -:  217:
       53:       53:  218:      nir_deref_var *dest_head = intrinsic->variables[0];
       53:       53:  219:      nir_deref_var *src_head = intrinsic->variables[1];
       53:       53:  220:      nir_deref *dest_tail = nir_deref_tail(&dest_head->deref);
       53:       53:  221:      nir_deref *src_tail = nir_deref_tail(&src_head->deref);
        -:        -:  222:
       53:       53:  223:      switch (glsl_get_base_type(src_tail->type)) {
        -:        -:  224:      case GLSL_TYPE_ARRAY:
        -:        -:  225:      case GLSL_TYPE_STRUCT:
    #####:    #####:  226:         split_var_copy_instr(intrinsic, dest_head, src_head,
        -:        -:  227:                              dest_tail, src_tail, state);
    #####:    #####:  228:         nir_instr_remove(&intrinsic->instr);
    #####:    #####:  229:         ralloc_steal(state->dead_ctx, instr);
    #####:    #####:  230:         break;
        -:        -:  231:      case GLSL_TYPE_FLOAT:
        -:        -:  232:      case GLSL_TYPE_DOUBLE:
       42:       42:  233:         if (glsl_type_is_matrix(src_tail->type)) {
    #####:    #####:  234:            split_var_copy_instr(intrinsic, dest_head, src_head,
        -:        -:  235:                                 dest_tail, src_tail, state);
    #####:    #####:  236:            nir_instr_remove(&intrinsic->instr);
    #####:    #####:  237:            ralloc_steal(state->dead_ctx, instr);
        -:        -:  238:         }
       42:       42:  239:         break;
        -:        -:  240:      case GLSL_TYPE_INT:
        -:        -:  241:      case GLSL_TYPE_UINT:
        -:        -:  242:      case GLSL_TYPE_INT64:
        -:        -:  243:      case GLSL_TYPE_UINT64:
        -:        -:  244:      case GLSL_TYPE_BOOL:
       11:       11:  245:         assert(!glsl_type_is_matrix(src_tail->type));
       11:       11:  246:         break;
        -:        -:  247:      default:
    #####:    #####:  248:         unreachable("Invalid type");
        -:        -:  249:         break;
        -:        -:  250:      }
        -:        -:  251:   }
        -:        -:  252:
       89:      105:  253:   return true;
        -:        -:  254:}
        -:        -:  255:
        -:        -:  256:static bool
        5:        5:  257:split_var_copies_impl(nir_function_impl *impl)
        -:        -:  258:{
        -:        -:  259:   struct split_var_copies_state state;
        -:        -:  260:
        5:        5:  261:   state.shader = impl->function->shader;
        5:        5:  262:   state.dead_ctx = ralloc_context(NULL);
        5:        5:  263:   state.progress = false;
        -:        -:  264:
       94:      110:  265:   nir_foreach_block(block, impl) {
       89:      105:  266:      split_var_copies_block(block, &state);
        -:        -:  267:   }
        -:        -:  268:
        5:        5:  269:   ralloc_free(state.dead_ctx);
        -:        -:  270:
        5:        5:  271:   if (state.progress) {
    #####:    #####:  272:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  273:                                  nir_metadata_dominance);
        -:        -:  274:   }
        -:        -:  275:
        5:        5:  276:   return state.progress;
        -:        -:  277:}
        -:        -:  278:
        -:        -:  279:bool
        5:        5:  280:nir_split_var_copies(nir_shader *shader)
        -:        -:  281:{
        5:        5:  282:   bool progress = false;
        -:        -:  283:
       10:       10:  284:   nir_foreach_function(function, shader) {
        5:        5:  285:      if (function->impl)
        5:        5:  286:         progress = split_var_copies_impl(function->impl) || progress;
        -:        -:  287:   }
        -:        -:  288:
        5:        5:  289:   return progress;
        -:        -:  290:}

src/compiler/nir_sweep.c.gcov

        -:        -:    0:Source:nir/nir_sweep.c
        -:        -:    0:Graph:nir/.libs/nir_sweep.gcno
        -:        -:    0:Data:nir/.libs/nir_sweep.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "nir.h"
        -:        -:   25:
        -:        -:   26:/**
        -:        -:   27: * \file nir_sweep.c
        -:        -:   28: *
        -:        -:   29: * The nir_sweep() pass performs a mark and sweep pass over a nir_shader's associated
        -:        -:   30: * memory - anything still connected to the program will be kept, and any dead memory
        -:        -:   31: * we dropped on the floor will be freed.
        -:        -:   32: *
        -:        -:   33: * The expectation is that drivers should call this when finished compiling the shader
        -:        -:   34: * (after any optimization, lowering, and so on).  However, it's also fine to call it
        -:        -:   35: * earlier, and even many times, trading CPU cycles for memory savings.
        -:        -:   36: */
        -:        -:   37:
        -:        -:   38:#define steal_list(mem_ctx, type, list) \
        -:        -:   39:   foreach_list_typed(type, obj, node, list) { ralloc_steal(mem_ctx, obj); }
        -:        -:   40:
        -:        -:   41:static void sweep_cf_node(nir_shader *nir, nir_cf_node *cf_node);
        -:        -:   42:
        -:        -:   43:static bool
      142:      146:   44:sweep_src_indirect(nir_src *src, void *nir)
        -:        -:   45:{
      142:      146:   46:   if (!src->is_ssa && src->reg.indirect)
    #####:    #####:   47:      ralloc_steal(nir, src->reg.indirect);
        -:        -:   48:
      142:      146:   49:   return true;
        -:        -:   50:}
        -:        -:   51:
        -:        -:   52:static bool
       82:       84:   53:sweep_dest_indirect(nir_dest *dest, void *nir)
        -:        -:   54:{
       82:       84:   55:   if (!dest->is_ssa && dest->reg.indirect)
    #####:    #####:   56:      ralloc_steal(nir, dest->reg.indirect);
        -:        -:   57:
       82:       84:   58:   return true;
        -:        -:   59:}
        -:        -:   60:
        -:        -:   61:static void
       41:       57:   62:sweep_block(nir_shader *nir, nir_block *block)
        -:        -:   63:{
       41:       57:   64:   ralloc_steal(nir, block);
        -:        -:   65:
      153:      175:   66:   nir_foreach_instr(instr, block) {
      112:      118:   67:      ralloc_steal(nir, instr);
        -:        -:   68:
      112:      118:   69:      nir_foreach_src(instr, sweep_src_indirect, nir);
      112:      118:   70:      nir_foreach_dest(instr, sweep_dest_indirect, nir);
        -:        -:   71:   }
       41:       57:   72:}
        -:        -:   73:
        -:        -:   74:static void
        9:       13:   75:sweep_if(nir_shader *nir, nir_if *iff)
        -:        -:   76:{
        9:       13:   77:   ralloc_steal(nir, iff);
        -:        -:   78:
       18:       26:   79:   foreach_list_typed(nir_cf_node, cf_node, node, &iff->then_list) {
        9:       13:   80:      sweep_cf_node(nir, cf_node);
        -:        -:   81:   }
        -:        -:   82:
       18:       26:   83:   foreach_list_typed(nir_cf_node, cf_node, node, &iff->else_list) {
        9:       13:   84:      sweep_cf_node(nir, cf_node);
        -:        -:   85:   }
        9:       13:   86:}
        -:        -:   87:
        -:        -:   88:static void
        2:        4:   89:sweep_loop(nir_shader *nir, nir_loop *loop)
        -:        -:   90:{
        2:        4:   91:   ralloc_steal(nir, loop);
        -:        -:   92:
       16:       32:   93:   foreach_list_typed(nir_cf_node, cf_node, node, &loop->body) {
       14:       28:   94:      sweep_cf_node(nir, cf_node);
        -:        -:   95:   }
        2:        4:   96:}
        -:        -:   97:
        -:        -:   98:static void
       47:       69:   99:sweep_cf_node(nir_shader *nir, nir_cf_node *cf_node)
        -:        -:  100:{
       47:       69:  101:   switch (cf_node->type) {
        -:        -:  102:   case nir_cf_node_block:
       36:       52:  103:      sweep_block(nir, nir_cf_node_as_block(cf_node));
       36:       52:  104:      break;
        -:        -:  105:   case nir_cf_node_if:
        9:       13:  106:      sweep_if(nir, nir_cf_node_as_if(cf_node));
        9:       13:  107:      break;
        -:        -:  108:   case nir_cf_node_loop:
        2:        4:  109:      sweep_loop(nir, nir_cf_node_as_loop(cf_node));
        2:        4:  110:      break;
        -:        -:  111:   default:
    #####:    #####:  112:      unreachable("Invalid CF node type");
        -:        -:  113:   }
       47:       69:  114:}
        -:        -:  115:
        -:        -:  116:static void
        5:        5:  117:sweep_impl(nir_shader *nir, nir_function_impl *impl)
        -:        -:  118:{
        5:        5:  119:   ralloc_steal(nir, impl);
        -:        -:  120:
        5:        5:  121:   ralloc_steal(nir, impl->params);
        5:        5:  122:   for (unsigned i = 0; i < impl->num_params; i++)
    #####:    #####:  123:      ralloc_steal(nir, impl->params[i]);
        5:        5:  124:   ralloc_steal(nir, impl->return_var);
        5:        5:  125:   steal_list(nir, nir_variable, &impl->locals);
        5:        5:  126:   steal_list(nir, nir_register, &impl->registers);
        -:        -:  127:
       20:       20:  128:   foreach_list_typed(nir_cf_node, cf_node, node, &impl->body) {
       15:       15:  129:      sweep_cf_node(nir, cf_node);
        -:        -:  130:   }
        -:        -:  131:
        5:        5:  132:   sweep_block(nir, impl->end_block);
        -:        -:  133:
        -:        -:  134:   /* Wipe out all the metadata, if any. */
        5:        5:  135:   nir_metadata_preserve(impl, nir_metadata_none);
        5:        5:  136:}
        -:        -:  137:
        -:        -:  138:static void
        5:        5:  139:sweep_function(nir_shader *nir, nir_function *f)
        -:        -:  140:{
        5:        5:  141:   ralloc_steal(nir, f);
        5:        5:  142:   ralloc_steal(nir, f->params);
        -:        -:  143:
        5:        5:  144:   if (f->impl)
        5:        5:  145:      sweep_impl(nir, f->impl);
        5:        5:  146:}
        -:        -:  147:
        -:        -:  148:void
        5:        5:  149:nir_sweep(nir_shader *nir)
        -:        -:  150:{
        5:        5:  151:   void *rubbish = ralloc_context(NULL);
        -:        -:  152:
        -:        -:  153:   /* The shader may not own shader_info so check first */
        5:        5:  154:   bool steal_info = false;
        5:        5:  155:   if (nir == ralloc_parent(nir->info))
        5:        5:  156:      steal_info = true;
        -:        -:  157:
        -:        -:  158:   /* First, move ownership of all the memory to a temporary context; assume dead. */
        5:        5:  159:   ralloc_adopt(rubbish, nir);
        -:        -:  160:
        5:        5:  161:   if (steal_info)
        5:        5:  162:      ralloc_steal(nir, nir->info);
        -:        -:  163:
        5:        5:  164:   ralloc_steal(nir, (char *)nir->info->name);
        5:        5:  165:   if (nir->info->label)
    #####:    #####:  166:      ralloc_steal(nir, (char *)nir->info->label);
        -:        -:  167:
        -:        -:  168:   /* Variables and registers are not dead.  Steal them back. */
        5:        5:  169:   steal_list(nir, nir_variable, &nir->uniforms);
        5:        5:  170:   steal_list(nir, nir_variable, &nir->inputs);
        5:        5:  171:   steal_list(nir, nir_variable, &nir->outputs);
        5:        5:  172:   steal_list(nir, nir_variable, &nir->shared);
        5:        5:  173:   steal_list(nir, nir_variable, &nir->globals);
        5:        5:  174:   steal_list(nir, nir_variable, &nir->system_values);
        5:        5:  175:   steal_list(nir, nir_register, &nir->registers);
        -:        -:  176:
        -:        -:  177:   /* Recurse into functions, stealing their contents back. */
       10:       10:  178:   foreach_list_typed(nir_function, func, node, &nir->functions) {
        5:        5:  179:      sweep_function(nir, func);
        -:        -:  180:   }
        -:        -:  181:
        -:        -:  182:   /* Free everything we didn't steal back. */
        5:        5:  183:   ralloc_free(rubbish);
        5:        5:  184:}

src/compiler/nir_types.cpp.gcov

        -:        -:    0:Source:nir_types.cpp
        -:        -:    0:Graph:.libs/nir_types.gcno
        -:        -:    0:Data:.libs/nir_types.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir_types.h"
        -:        -:   29:#include "compiler/glsl/ir.h"
        -:        -:   30:
        -:        -:   31:const char *
    #####:    #####:   32:glsl_get_type_name(const glsl_type *type)
        -:        -:   33:{
    #####:    #####:   34:   return type->name;
        -:        -:   35:}
        -:        -:   36:
        -:        -:   37:const glsl_type *
     1766:     1766:   38:glsl_get_array_element(const glsl_type* type)
        -:        -:   39:{
     1766:     1766:   40:   if (type->is_matrix())
    #####:    #####:   41:      return type->column_type();
     1766:     1766:   42:   return type->fields.array;
        -:        -:   43:}
        -:        -:   44:
        -:        -:   45:const glsl_type *
        8:        8:   46:glsl_without_array(const glsl_type *type)
        -:        -:   47:{
        8:        8:   48:   return type->without_array();
        -:        -:   49:}
        -:        -:   50:
        -:        -:   51:const glsl_type *
    #####:    #####:   52:glsl_get_struct_field(const glsl_type *type, unsigned index)
        -:        -:   53:{
    #####:    #####:   54:   return type->fields.structure[index].type;
        -:        -:   55:}
        -:        -:   56:
        -:        -:   57:const glsl_type *
    #####:    #####:   58:glsl_get_function_return_type(const glsl_type *type)
        -:        -:   59:{
    #####:    #####:   60:   return type->fields.parameters[0].type;
        -:        -:   61:}
        -:        -:   62:
        -:        -:   63:const glsl_function_param *
    #####:    #####:   64:glsl_get_function_param(const glsl_type *type, unsigned index)
        -:        -:   65:{
    #####:    #####:   66:   return &type->fields.parameters[index + 1];
        -:        -:   67:}
        -:        -:   68:
        -:        -:   69:const struct glsl_type *
    #####:    #####:   70:glsl_get_column_type(const struct glsl_type *type)
        -:        -:   71:{
    #####:    #####:   72:   return type->column_type();
        -:        -:   73:}
        -:        -:   74:
        -:        -:   75:enum glsl_base_type
     4056:     4390:   76:glsl_get_base_type(const struct glsl_type *type)
        -:        -:   77:{
     4056:     4390:   78:   return type->base_type;
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:unsigned
     3999:     4327:   82:glsl_get_vector_elements(const struct glsl_type *type)
        -:        -:   83:{
     3999:     4327:   84:   return type->vector_elements;
        -:        -:   85:}
        -:        -:   86:
        -:        -:   87:unsigned
    #####:    #####:   88:glsl_get_components(const struct glsl_type *type)
        -:        -:   89:{
    #####:    #####:   90:   return type->components();
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:unsigned
    #####:    #####:   94:glsl_get_matrix_columns(const struct glsl_type *type)
        -:        -:   95:{
    #####:    #####:   96:   return type->matrix_columns;
        -:        -:   97:}
        -:        -:   98:
        -:        -:   99:unsigned
      282:      284:  100:glsl_get_length(const struct glsl_type *type)
        -:        -:  101:{
      282:      284:  102:   return type->is_matrix() ? type->matrix_columns : type->length;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:unsigned
        2:        2:  106:glsl_get_aoa_size(const struct glsl_type *type)
        -:        -:  107:{
        2:        2:  108:   return type->arrays_of_arrays_size();
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:unsigned
       15:       19:  112:glsl_count_attribute_slots(const struct glsl_type *type,
        -:        -:  113:                           bool is_vertex_input)
        -:        -:  114:{
       15:       19:  115:   return type->count_attribute_slots(is_vertex_input);
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:const char *
    #####:    #####:  119:glsl_get_struct_elem_name(const struct glsl_type *type, unsigned index)
        -:        -:  120:{
    #####:    #####:  121:   return type->fields.structure[index].name;
        -:        -:  122:}
        -:        -:  123:
        -:        -:  124:glsl_sampler_dim
    #####:    #####:  125:glsl_get_sampler_dim(const struct glsl_type *type)
        -:        -:  126:{
    #####:    #####:  127:   assert(glsl_type_is_sampler(type) || glsl_type_is_image(type));
    #####:    #####:  128:   return (glsl_sampler_dim)type->sampler_dimensionality;
        -:        -:  129:}
        -:        -:  130:
        -:        -:  131:glsl_base_type
    #####:    #####:  132:glsl_get_sampler_result_type(const struct glsl_type *type)
        -:        -:  133:{
    #####:    #####:  134:   assert(glsl_type_is_sampler(type) || glsl_type_is_image(type));
    #####:    #####:  135:   return (glsl_base_type)type->sampled_type;
        -:        -:  136:}
        -:        -:  137:
        -:        -:  138:unsigned
    #####:    #####:  139:glsl_get_record_location_offset(const struct glsl_type *type,
        -:        -:  140:                                unsigned length)
        -:        -:  141:{
    #####:    #####:  142:   return type->record_location_offset(length);
        -:        -:  143:}
        -:        -:  144:
        -:        -:  145:bool
      613:      613:  146:glsl_type_is_void(const glsl_type *type)
        -:        -:  147:{
      613:      613:  148:   return type->is_void();
        -:        -:  149:}
        -:        -:  150:
        -:        -:  151:bool
    #####:    #####:  152:glsl_type_is_error(const glsl_type *type)
        -:        -:  153:{
    #####:    #####:  154:   return type->is_error();
        -:        -:  155:}
        -:        -:  156:
        -:        -:  157:bool
    #####:    #####:  158:glsl_type_is_vector(const struct glsl_type *type)
        -:        -:  159:{
    #####:    #####:  160:   return type->is_vector();
        -:        -:  161:}
        -:        -:  162:
        -:        -:  163:bool
    #####:    #####:  164:glsl_type_is_scalar(const struct glsl_type *type)
        -:        -:  165:{
    #####:    #####:  166:   return type->is_scalar();
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:bool
     3728:     4046:  170:glsl_type_is_vector_or_scalar(const struct glsl_type *type)
        -:        -:  171:{
     3728:     4046:  172:   return type->is_vector() || type->is_scalar();
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:bool
       68:       72:  176:glsl_type_is_matrix(const struct glsl_type *type)
        -:        -:  177:{
       68:       72:  178:   return type->is_matrix();
        -:        -:  179:}
        -:        -:  180:
        -:        -:  181:bool
       83:      101:  182:glsl_type_is_array(const struct glsl_type *type)
        -:        -:  183:{
       83:      101:  184:   return type->is_array();
        -:        -:  185:}
        -:        -:  186:
        -:        -:  187:bool
    #####:    #####:  188:glsl_type_is_array_of_arrays(const struct glsl_type *type)
        -:        -:  189:{
    #####:    #####:  190:   return type->is_array_of_arrays();
        -:        -:  191:}
        -:        -:  192:
        -:        -:  193:bool
    #####:    #####:  194:glsl_type_is_struct(const struct glsl_type *type)
        -:        -:  195:{
    #####:    #####:  196:   return type->is_record() || type->is_interface();
        -:        -:  197:}
        -:        -:  198:
        -:        -:  199:bool
        4:        4:  200:glsl_type_is_sampler(const struct glsl_type *type)
        -:        -:  201:{
        4:        4:  202:   return type->is_sampler();
        -:        -:  203:}
        -:        -:  204:
        -:        -:  205:bool
        4:        4:  206:glsl_type_is_image(const struct glsl_type *type)
        -:        -:  207:{
        4:        4:  208:   return type->is_image();
        -:        -:  209:}
        -:        -:  210:
        -:        -:  211:bool
    #####:    #####:  212:glsl_sampler_type_is_shadow(const struct glsl_type *type)
        -:        -:  213:{
    #####:    #####:  214:   assert(glsl_type_is_sampler(type));
    #####:    #####:  215:   return type->sampler_shadow;
        -:        -:  216:}
        -:        -:  217:
        -:        -:  218:bool
    #####:    #####:  219:glsl_sampler_type_is_array(const struct glsl_type *type)
        -:        -:  220:{
    #####:    #####:  221:   assert(glsl_type_is_sampler(type) || glsl_type_is_image(type));
    #####:    #####:  222:   return type->sampler_array;
        -:        -:  223:}
        -:        -:  224:
        -:        -:  225:bool
        6:        6:  226:glsl_type_is_dual_slot(const struct glsl_type *type)
        -:        -:  227:{
        6:        6:  228:   return type->is_dual_slot();
        -:        -:  229:}
        -:        -:  230:
        -:        -:  231:bool
    #####:    #####:  232:glsl_type_is_numeric(const struct glsl_type *type)
        -:        -:  233:{
    #####:    #####:  234:   return type->is_numeric();
        -:        -:  235:}
        -:        -:  236:
        -:        -:  237:bool
    #####:    #####:  238:glsl_type_is_boolean(const struct glsl_type *type)
        -:        -:  239:{
    #####:    #####:  240:   return type->is_boolean();
        -:        -:  241:}
        -:        -:  242:
        -:        -:  243:const glsl_type *
       21:       21:  244:glsl_void_type(void)
        -:        -:  245:{
       21:       21:  246:   return glsl_type::void_type;
        -:        -:  247:}
        -:        -:  248:
        -:        -:  249:const glsl_type *
    #####:    #####:  250:glsl_float_type(void)
        -:        -:  251:{
    #####:    #####:  252:   return glsl_type::float_type;
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:const glsl_type *
    #####:    #####:  256:glsl_double_type(void)
        -:        -:  257:{
    #####:    #####:  258:   return glsl_type::double_type;
        -:        -:  259:}
        -:        -:  260:
        -:        -:  261:const glsl_type *
    #####:    #####:  262:glsl_vec_type(unsigned n)
        -:        -:  263:{
    #####:    #####:  264:   return glsl_type::vec(n);
        -:        -:  265:}
        -:        -:  266:
        -:        -:  267:const glsl_type *
    #####:    #####:  268:glsl_dvec_type(unsigned n)
        -:        -:  269:{
    #####:    #####:  270:   return glsl_type::dvec(n);
        -:        -:  271:}
        -:        -:  272:
        -:        -:  273:const glsl_type *
       12:       12:  274:glsl_vec4_type(void)
        -:        -:  275:{
       12:       12:  276:   return glsl_type::vec4_type;
        -:        -:  277:}
        -:        -:  278:
        -:        -:  279:const glsl_type *
    #####:    #####:  280:glsl_int_type(void)
        -:        -:  281:{
    #####:    #####:  282:   return glsl_type::int_type;
        -:        -:  283:}
        -:        -:  284:
        -:        -:  285:const glsl_type *
    #####:    #####:  286:glsl_uint_type(void)
        -:        -:  287:{
    #####:    #####:  288:   return glsl_type::uint_type;
        -:        -:  289:}
        -:        -:  290:
        -:        -:  291:const glsl_type *
    #####:    #####:  292:glsl_int64_t_type(void)
        -:        -:  293:{
    #####:    #####:  294:   return glsl_type::int64_t_type;
        -:        -:  295:}
        -:        -:  296:
        -:        -:  297:const glsl_type *
    #####:    #####:  298:glsl_uint64_t_type(void)
        -:        -:  299:{
    #####:    #####:  300:   return glsl_type::uint64_t_type;
        -:        -:  301:}
        -:        -:  302:
        -:        -:  303:const glsl_type *
    #####:    #####:  304:glsl_bool_type(void)
        -:        -:  305:{
    #####:    #####:  306:   return glsl_type::bool_type;
        -:        -:  307:}
        -:        -:  308:
        -:        -:  309:const glsl_type *
    #####:    #####:  310:glsl_scalar_type(enum glsl_base_type base_type)
        -:        -:  311:{
    #####:    #####:  312:   return glsl_type::get_instance(base_type, 1, 1);
        -:        -:  313:}
        -:        -:  314:
        -:        -:  315:const glsl_type *
    #####:    #####:  316:glsl_vector_type(enum glsl_base_type base_type, unsigned components)
        -:        -:  317:{
    #####:    #####:  318:   assert(components > 1 && components <= 4);
    #####:    #####:  319:   return glsl_type::get_instance(base_type, components, 1);
        -:        -:  320:}
        -:        -:  321:
        -:        -:  322:const glsl_type *
    #####:    #####:  323:glsl_matrix_type(enum glsl_base_type base_type, unsigned rows, unsigned columns)
        -:        -:  324:{
    #####:    #####:  325:   assert(rows > 1 && rows <= 4 && columns >= 1 && columns <= 4);
    #####:    #####:  326:   return glsl_type::get_instance(base_type, rows, columns);
        -:        -:  327:}
        -:        -:  328:
        -:        -:  329:const glsl_type *
        1:        1:  330:glsl_array_type(const glsl_type *base, unsigned elements)
        -:        -:  331:{
        1:        1:  332:   return glsl_type::get_array_instance(base, elements);
        -:        -:  333:}
        -:        -:  334:
        -:        -:  335:const glsl_type *
    #####:    #####:  336:glsl_struct_type(const glsl_struct_field *fields,
        -:        -:  337:                 unsigned num_fields, const char *name)
        -:        -:  338:{
    #####:    #####:  339:   return glsl_type::get_record_instance(fields, num_fields, name);
        -:        -:  340:}
        -:        -:  341:
        -:        -:  342:const struct glsl_type *
    #####:    #####:  343:glsl_sampler_type(enum glsl_sampler_dim dim, bool is_shadow, bool is_array,
        -:        -:  344:                  enum glsl_base_type base_type)
        -:        -:  345:{
    #####:    #####:  346:   return glsl_type::get_sampler_instance(dim, is_shadow, is_array, base_type);
        -:        -:  347:}
        -:        -:  348:
        -:        -:  349:const struct glsl_type *
    #####:    #####:  350:glsl_bare_sampler_type()
        -:        -:  351:{
    #####:    #####:  352:   return glsl_type::sampler_type;
        -:        -:  353:}
        -:        -:  354:
        -:        -:  355:const struct glsl_type *
    #####:    #####:  356:glsl_image_type(enum glsl_sampler_dim dim, bool is_array,
        -:        -:  357:                enum glsl_base_type base_type)
        -:        -:  358:{
    #####:    #####:  359:   return glsl_type::get_image_instance(dim, is_array, base_type);
        -:        -:  360:}
        -:        -:  361:
        -:        -:  362:const glsl_type *
    #####:    #####:  363:glsl_function_type(const glsl_type *return_type,
        -:        -:  364:                   const glsl_function_param *params, unsigned num_params)
        -:        -:  365:{
    #####:    #####:  366:   return glsl_type::get_function_instance(return_type, params, num_params);
        -:        -:  367:}
        -:        -:  368:
        -:        -:  369:const glsl_type *
    #####:    #####:  370:glsl_transposed_type(const struct glsl_type *type)
        -:        -:  371:{
    #####:    #####:  372:   assert(glsl_type_is_matrix(type));
    #####:    #####:  373:   return glsl_type::get_instance(type->base_type, type->matrix_columns,
    #####:    #####:  374:                                  type->vector_elements);
        -:        -:  375:}

src/compiler/nir_types.h.gcov

        -:        -:    0:Source:../../src/compiler/nir_types.h
        -:        -:    0:Graph:glsl/.libs/glsl_to_nir.gcno
        -:        -:    0:Data:glsl/.libs/glsl_to_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef NIR_TYPES_H
        -:        -:   29:#define NIR_TYPES_H
        -:        -:   30:
        -:        -:   31:#include <stdio.h>
        -:        -:   32:#include <stdbool.h>
        -:        -:   33:
        -:        -:   34:/* C wrapper around compiler/glsl_types.h */
        -:        -:   35:
        -:        -:   36:#include "glsl_types.h"
        -:        -:   37:
        -:        -:   38:#ifdef __cplusplus
        -:        -:   39:extern "C" {
        -:        -:   40:#else
        -:        -:   41:struct glsl_type;
        -:        -:   42:#endif
        -:        -:   43:
        -:        -:   44:const char *glsl_get_type_name(const struct glsl_type *type);
        -:        -:   45:
        -:        -:   46:const struct glsl_type *glsl_get_struct_field(const struct glsl_type *type,
        -:        -:   47:                                              unsigned index);
        -:        -:   48:
        -:        -:   49:const struct glsl_type *glsl_get_array_element(const struct glsl_type *type);
        -:        -:   50:const struct glsl_type *glsl_without_array(const struct glsl_type *type);
        -:        -:   51:
        -:        -:   52:const struct glsl_type *glsl_get_column_type(const struct glsl_type *type);
        -:        -:   53:
        -:        -:   54:const struct glsl_type *
        -:        -:   55:glsl_get_function_return_type(const struct glsl_type *type);
        -:        -:   56:
        -:        -:   57:const struct glsl_function_param *
        -:        -:   58:glsl_get_function_param(const struct glsl_type *type, unsigned index);
        -:        -:   59:
        -:        -:   60:enum glsl_base_type glsl_get_base_type(const struct glsl_type *type);
        -:        -:   61:
        -:        -:   62:unsigned glsl_get_vector_elements(const struct glsl_type *type);
        -:        -:   63:
        -:        -:   64:unsigned glsl_get_components(const struct glsl_type *type);
        -:        -:   65:
        -:        -:   66:unsigned glsl_get_matrix_columns(const struct glsl_type *type);
        -:        -:   67:
        -:        -:   68:unsigned glsl_get_length(const struct glsl_type *type);
        -:        -:   69:
        -:        -:   70:unsigned glsl_get_aoa_size(const struct glsl_type *type);
        -:        -:   71:
        -:        -:   72:unsigned glsl_count_attribute_slots(const struct glsl_type *type,
        -:        -:   73:                                    bool is_vertex_input);
        -:        -:   74:
        -:        -:   75:const char *glsl_get_struct_elem_name(const struct glsl_type *type,
        -:        -:   76:                                      unsigned index);
        -:        -:   77:
        -:        -:   78:enum glsl_sampler_dim glsl_get_sampler_dim(const struct glsl_type *type);
        -:        -:   79:enum glsl_base_type glsl_get_sampler_result_type(const struct glsl_type *type);
        -:        -:   80:
        -:        -:   81:unsigned glsl_get_record_location_offset(const struct glsl_type *type,
        -:        -:   82:                                         unsigned length);
        -:        -:   83:
        -:        -:   84:static inline unsigned
       82:       88:   85:glsl_get_bit_size(const struct glsl_type *type)
        -:        -:   86:{
       82:       88:   87:   switch (glsl_get_base_type(type)) {
        -:        -:   88:   case GLSL_TYPE_INT:
        -:        -:   89:   case GLSL_TYPE_UINT:
        -:        -:   90:   case GLSL_TYPE_BOOL:
        -:        -:   91:   case GLSL_TYPE_FLOAT: /* TODO handle mediump */
        -:        -:   92:   case GLSL_TYPE_SUBROUTINE:
       82:       88:   93:      return 32;
        -:        -:   94:
        -:        -:   95:   case GLSL_TYPE_DOUBLE:
        -:        -:   96:   case GLSL_TYPE_INT64:
        -:        -:   97:   case GLSL_TYPE_UINT64:
    #####:    #####:   98:      return 64;
        -:        -:   99:
        -:        -:  100:   default:
    #####:    #####:  101:      unreachable("unknown base type");
        -:        -:  102:   }
        -:        -:  103:
        -:        -:  104:   return 0;
        -:        -:  105:}
        -:        -:  106:
        -:        -:  107:bool glsl_type_is_void(const struct glsl_type *type);
        -:        -:  108:bool glsl_type_is_error(const struct glsl_type *type);
        -:        -:  109:bool glsl_type_is_vector(const struct glsl_type *type);
        -:        -:  110:bool glsl_type_is_scalar(const struct glsl_type *type);
        -:        -:  111:bool glsl_type_is_vector_or_scalar(const struct glsl_type *type);
        -:        -:  112:bool glsl_type_is_matrix(const struct glsl_type *type);
        -:        -:  113:bool glsl_type_is_array(const struct glsl_type *type);
        -:        -:  114:bool glsl_type_is_array_of_arrays(const struct glsl_type *type);
        -:        -:  115:bool glsl_type_is_struct(const struct glsl_type *type);
        -:        -:  116:bool glsl_type_is_sampler(const struct glsl_type *type);
        -:        -:  117:bool glsl_type_is_image(const struct glsl_type *type);
        -:        -:  118:bool glsl_type_is_dual_slot(const struct glsl_type *type);
        -:        -:  119:bool glsl_type_is_numeric(const struct glsl_type *type);
        -:        -:  120:bool glsl_type_is_boolean(const struct glsl_type *type);
        -:        -:  121:bool glsl_sampler_type_is_shadow(const struct glsl_type *type);
        -:        -:  122:bool glsl_sampler_type_is_array(const struct glsl_type *type);
        -:        -:  123:
        -:        -:  124:const struct glsl_type *glsl_void_type(void);
        -:        -:  125:const struct glsl_type *glsl_float_type(void);
        -:        -:  126:const struct glsl_type *glsl_double_type(void);
        -:        -:  127:const struct glsl_type *glsl_vec_type(unsigned n);
        -:        -:  128:const struct glsl_type *glsl_dvec_type(unsigned n);
        -:        -:  129:const struct glsl_type *glsl_vec4_type(void);
        -:        -:  130:const struct glsl_type *glsl_int_type(void);
        -:        -:  131:const struct glsl_type *glsl_uint_type(void);
        -:        -:  132:const struct glsl_type *glsl_int64_t_type(void);
        -:        -:  133:const struct glsl_type *glsl_uint64_t_type(void);
        -:        -:  134:const struct glsl_type *glsl_bool_type(void);
        -:        -:  135:
        -:        -:  136:const struct glsl_type *glsl_scalar_type(enum glsl_base_type base_type);
        -:        -:  137:const struct glsl_type *glsl_vector_type(enum glsl_base_type base_type,
        -:        -:  138:                                         unsigned components);
        -:        -:  139:const struct glsl_type *glsl_matrix_type(enum glsl_base_type base_type,
        -:        -:  140:                                         unsigned rows, unsigned columns);
        -:        -:  141:const struct glsl_type *glsl_array_type(const struct glsl_type *base,
        -:        -:  142:                                        unsigned elements);
        -:        -:  143:const struct glsl_type *glsl_struct_type(const struct glsl_struct_field *fields,
        -:        -:  144:                                         unsigned num_fields, const char *name);
        -:        -:  145:const struct glsl_type *glsl_sampler_type(enum glsl_sampler_dim dim,
        -:        -:  146:                                          bool is_shadow, bool is_array,
        -:        -:  147:                                          enum glsl_base_type base_type);
        -:        -:  148:const struct glsl_type *glsl_bare_sampler_type();
        -:        -:  149:const struct glsl_type *glsl_image_type(enum glsl_sampler_dim dim,
        -:        -:  150:                                        bool is_array,
        -:        -:  151:                                        enum glsl_base_type base_type);
        -:        -:  152:const struct glsl_type * glsl_function_type(const struct glsl_type *return_type,
        -:        -:  153:                                            const struct glsl_function_param *params,
        -:        -:  154:                                            unsigned num_params);
        -:        -:  155:
        -:        -:  156:const struct glsl_type *glsl_transposed_type(const struct glsl_type *type);
        -:        -:  157:
        -:        -:  158:#ifdef __cplusplus
        -:        -:  159:}
        -:        -:  160:#endif
        -:        -:  161:
        -:        -:  162:#endif /* NIR_TYPES_H */

src/compiler/nir_validate.c.gcov

        -:        -:    0:Source:nir/nir_validate.c
        -:        -:    0:Graph:nir/.libs/nir_validate.gcno
        -:        -:    0:Data:nir/.libs/nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Connor Abbott (cwabbott0@gmail.com)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir.h"
        -:        -:   29:#include <assert.h>
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * This file checks for invalid IR indicating a bug somewhere in the compiler.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:/* Since this file is just a pile of asserts, don't bother compiling it if
        -:        -:   36: * we're not building a debug build.
        -:        -:   37: */
        -:        -:   38:#ifdef DEBUG
        -:        -:   39:
        -:        -:   40:/*
        -:        -:   41: * Per-register validation state.
        -:        -:   42: */
        -:        -:   43:
        -:        -:   44:typedef struct {
        -:        -:   45:   /*
        -:        -:   46:    * equivalent to the uses and defs in nir_register, but built up by the
        -:        -:   47:    * validator. At the end, we verify that the sets have the same entries.
        -:        -:   48:    */
        -:        -:   49:   struct set *uses, *if_uses, *defs;
        -:        -:   50:   nir_function_impl *where_defined; /* NULL for global registers */
        -:        -:   51:} reg_validate_state;
        -:        -:   52:
        -:        -:   53:typedef struct {
        -:        -:   54:   /*
        -:        -:   55:    * equivalent to the uses in nir_ssa_def, but built up by the validator.
        -:        -:   56:    * At the end, we verify that the sets have the same entries.
        -:        -:   57:    */
        -:        -:   58:   struct set *uses, *if_uses;
        -:        -:   59:   nir_function_impl *where_defined;
        -:        -:   60:} ssa_def_validate_state;
        -:        -:   61:
        -:        -:   62:typedef struct {
        -:        -:   63:   /* map of register -> validation state (struct above) */
        -:        -:   64:   struct hash_table *regs;
        -:        -:   65:
        -:        -:   66:   /* the current shader being validated */
        -:        -:   67:   nir_shader *shader;
        -:        -:   68:
        -:        -:   69:   /* the current instruction being validated */
        -:        -:   70:   nir_instr *instr;
        -:        -:   71:
        -:        -:   72:   /* the current variable being validated */
        -:        -:   73:   nir_variable *var;
        -:        -:   74:
        -:        -:   75:   /* the current basic block being validated */
        -:        -:   76:   nir_block *block;
        -:        -:   77:
        -:        -:   78:   /* the current if statement being validated */
        -:        -:   79:   nir_if *if_stmt;
        -:        -:   80:
        -:        -:   81:   /* the current loop being visited */
        -:        -:   82:   nir_loop *loop;
        -:        -:   83:
        -:        -:   84:   /* the parent of the current cf node being visited */
        -:        -:   85:   nir_cf_node *parent_node;
        -:        -:   86:
        -:        -:   87:   /* the current function implementation being validated */
        -:        -:   88:   nir_function_impl *impl;
        -:        -:   89:
        -:        -:   90:   /* map of SSA value -> function implementation where it is defined */
        -:        -:   91:   struct hash_table *ssa_defs;
        -:        -:   92:
        -:        -:   93:   /* bitset of ssa definitions we have found; used to check uniqueness */
        -:        -:   94:   BITSET_WORD *ssa_defs_found;
        -:        -:   95:
        -:        -:   96:   /* bitset of registers we have currently found; used to check uniqueness */
        -:        -:   97:   BITSET_WORD *regs_found;
        -:        -:   98:
        -:        -:   99:   /* map of local variable -> function implementation where it is defined */
        -:        -:  100:   struct hash_table *var_defs;
        -:        -:  101:
        -:        -:  102:   /* map of instruction/var/etc to failed assert string */
        -:        -:  103:   struct hash_table *errors;
        -:        -:  104:} validate_state;
        -:        -:  105:
        -:        -:  106:static void
    #####:    #####:  107:log_error(validate_state *state, const char *cond, const char *file, int line)
        -:        -:  108:{
        -:        -:  109:   const void *obj;
        -:        -:  110:
    #####:    #####:  111:   if (state->instr)
    #####:    #####:  112:      obj = state->instr;
    #####:    #####:  113:   else if (state->var)
    #####:    #####:  114:      obj = state->var;
        -:        -:  115:   else
    #####:    #####:  116:      obj = cond;
        -:        -:  117:
    #####:    #####:  118:   char *msg = ralloc_asprintf(state->errors, "error: %s (%s:%d)",
        -:        -:  119:                               cond, file, line);
        -:        -:  120:
    #####:    #####:  121:   _mesa_hash_table_insert(state->errors, obj, msg);
    #####:    #####:  122:}
        -:        -:  123:
        -:        -:  124:#define validate_assert(state, cond) do {             \
        -:        -:  125:      if (!(cond))                                    \
        -:        -:  126:         log_error(state, #cond, __FILE__, __LINE__); \
        -:        -:  127:   } while (0)
        -:        -:  128:
        -:        -:  129:static void validate_src(nir_src *src, validate_state *state,
        -:        -:  130:                         unsigned bit_size, unsigned num_components);
        -:        -:  131:
        -:        -:  132:static void
       36:       38:  133:validate_reg_src(nir_src *src, validate_state *state,
        -:        -:  134:                 unsigned bit_size, unsigned num_components)
        -:        -:  135:{
       36:       38:  136:   validate_assert(state, src->reg.reg != NULL);
        -:        -:  137:
        -:        -:  138:   struct hash_entry *entry;
       36:       38:  139:   entry = _mesa_hash_table_search(state->regs, src->reg.reg);
       36:       38:  140:   validate_assert(state, entry);
        -:        -:  141:
       36:       38:  142:   reg_validate_state *reg_state = (reg_validate_state *) entry->data;
        -:        -:  143:
       36:       38:  144:   if (state->instr) {
       36:       36:  145:      _mesa_set_add(reg_state->uses, src);
        -:        -:  146:   } else {
    #####:        2:  147:      validate_assert(state, state->if_stmt);
    #####:        2:  148:      _mesa_set_add(reg_state->if_uses, src);
        -:        -:  149:   }
        -:        -:  150:
       36:       38:  151:   if (!src->reg.reg->is_global) {
       36:       38:  152:      validate_assert(state, reg_state->where_defined == state->impl &&
        -:        -:  153:             "using a register declared in a different function");
        -:        -:  154:   }
        -:        -:  155:
       36:       38:  156:   if (!src->reg.reg->is_packed) {
       36:       38:  157:      if (bit_size)
    #####:        2:  158:         validate_assert(state, src->reg.reg->bit_size == bit_size);
       36:       38:  159:      if (num_components)
        2:        4:  160:         validate_assert(state, src->reg.reg->num_components == num_components);
        -:        -:  161:   }
        -:        -:  162:
       36:       38:  163:   validate_assert(state, (src->reg.reg->num_array_elems == 0 ||
        -:        -:  164:          src->reg.base_offset < src->reg.reg->num_array_elems) &&
        -:        -:  165:          "definitely out-of-bounds array access");
        -:        -:  166:
       36:       38:  167:   if (src->reg.indirect) {
    #####:    #####:  168:      validate_assert(state, src->reg.reg->num_array_elems != 0);
    #####:    #####:  169:      validate_assert(state, (src->reg.indirect->is_ssa ||
        -:        -:  170:              src->reg.indirect->reg.indirect == NULL) &&
        -:        -:  171:             "only one level of indirection allowed");
    #####:    #####:  172:      validate_src(src->reg.indirect, state, 32, 1);
        -:        -:  173:   }
       36:       38:  174:}
        -:        -:  175:
        -:        -:  176:static void
    39136:    44022:  177:validate_ssa_src(nir_src *src, validate_state *state,
        -:        -:  178:                 unsigned bit_size, unsigned num_components)
        -:        -:  179:{
    39136:    44022:  180:   validate_assert(state, src->ssa != NULL);
        -:        -:  181:
    39136:    44022:  182:   struct hash_entry *entry = _mesa_hash_table_search(state->ssa_defs, src->ssa);
        -:        -:  183:
    39136:    44022:  184:   validate_assert(state, entry);
        -:        -:  185:
    39136:    44022:  186:   if (!entry)
    #####:    #####:  187:      return;
        -:        -:  188:
    39136:    44022:  189:   ssa_def_validate_state *def_state = (ssa_def_validate_state *)entry->data;
        -:        -:  190:
    39136:    44022:  191:   validate_assert(state, def_state->where_defined == state->impl &&
        -:        -:  192:          "using an SSA value defined in a different function");
        -:        -:  193:
    39136:    44022:  194:   if (state->instr) {
    37285:    41461:  195:      _mesa_set_add(def_state->uses, src);
        -:        -:  196:   } else {
     1851:     2561:  197:      validate_assert(state, state->if_stmt);
     1851:     2561:  198:      _mesa_set_add(def_state->if_uses, src);
        -:        -:  199:   }
        -:        -:  200:
    39136:    44022:  201:   if (bit_size)
     9830:    13274:  202:      validate_assert(state, src->ssa->bit_size == bit_size);
    39136:    44022:  203:   if (num_components)
    11512:    15046:  204:      validate_assert(state, src->ssa->num_components == num_components);
        -:        -:  205:
        -:        -:  206:   /* TODO validate that the use is dominated by the definition */
        -:        -:  207:}
        -:        -:  208:
        -:        -:  209:static void
    39172:    44060:  210:validate_src(nir_src *src, validate_state *state,
        -:        -:  211:             unsigned bit_size, unsigned num_components)
        -:        -:  212:{
    39172:    44060:  213:   if (state->instr)
    37321:    41497:  214:      validate_assert(state, src->parent_instr == state->instr);
        -:        -:  215:   else
     1851:     2563:  216:      validate_assert(state, src->parent_if == state->if_stmt);
        -:        -:  217:
    39172:    44060:  218:   if (src->is_ssa)
    39136:    44022:  219:      validate_ssa_src(src, state, bit_size, num_components);
        -:        -:  220:   else
       36:       38:  221:      validate_reg_src(src, state, bit_size, num_components);
    39172:    44060:  222:}
        -:        -:  223:
        -:        -:  224:static void
    27658:    29010:  225:validate_alu_src(nir_alu_instr *instr, unsigned index, validate_state *state)
        -:        -:  226:{
    27658:    29010:  227:   nir_alu_src *src = &instr->src[index];
        -:        -:  228:
        -:        -:  229:   unsigned num_components;
    27658:    29010:  230:   if (src->src.is_ssa) {
    27624:    28976:  231:      num_components = src->src.ssa->num_components;
        -:        -:  232:   } else {
       34:       34:  233:      if (src->src.reg.reg->is_packed)
    #####:    #####:  234:         num_components = 4; /* can't check anything */
        -:        -:  235:      else
       34:       34:  236:         num_components = src->src.reg.reg->num_components;
        -:        -:  237:   }
   138290:   145050:  238:   for (unsigned i = 0; i < 4; i++) {
   110632:   116040:  239:      validate_assert(state, src->swizzle[i] < 4);
        -:        -:  240:
   110632:   116040:  241:      if (nir_alu_instr_channel_used(instr, index, i))
    30848:    32308:  242:         validate_assert(state, src->swizzle[i] < num_components);
        -:        -:  243:   }
        -:        -:  244:
    27658:    29010:  245:   validate_src(&src->src, state, 0, 0);
    27658:    29010:  246:}
        -:        -:  247:
        -:        -:  248:static void
       26:       26:  249:validate_reg_dest(nir_reg_dest *dest, validate_state *state,
        -:        -:  250:                  unsigned bit_size, unsigned num_components)
        -:        -:  251:{
       26:       26:  252:   validate_assert(state, dest->reg != NULL);
        -:        -:  253:
       26:       26:  254:   validate_assert(state, dest->parent_instr == state->instr);
        -:        -:  255:
        -:        -:  256:   struct hash_entry *entry2;
       26:       26:  257:   entry2 = _mesa_hash_table_search(state->regs, dest->reg);
        -:        -:  258:
       26:       26:  259:   validate_assert(state, entry2);
        -:        -:  260:
       26:       26:  261:   reg_validate_state *reg_state = (reg_validate_state *) entry2->data;
       26:       26:  262:   _mesa_set_add(reg_state->defs, dest);
        -:        -:  263:
       26:       26:  264:   if (!dest->reg->is_global) {
       26:       26:  265:      validate_assert(state, reg_state->where_defined == state->impl &&
        -:        -:  266:             "writing to a register declared in a different function");
        -:        -:  267:   }
        -:        -:  268:
       26:       26:  269:   if (!dest->reg->is_packed) {
       26:       26:  270:      if (bit_size)
    #####:    #####:  271:         validate_assert(state, dest->reg->bit_size == bit_size);
       26:       26:  272:      if (num_components)
        1:        1:  273:         validate_assert(state, dest->reg->num_components == num_components);
        -:        -:  274:   }
        -:        -:  275:
       26:       26:  276:   validate_assert(state, (dest->reg->num_array_elems == 0 ||
        -:        -:  277:          dest->base_offset < dest->reg->num_array_elems) &&
        -:        -:  278:          "definitely out-of-bounds array access");
        -:        -:  279:
       26:       26:  280:   if (dest->indirect) {
    #####:    #####:  281:      validate_assert(state, dest->reg->num_array_elems != 0);
    #####:    #####:  282:      validate_assert(state, (dest->indirect->is_ssa || dest->indirect->reg.indirect == NULL) &&
        -:        -:  283:             "only one level of indirection allowed");
    #####:    #####:  284:      validate_src(dest->indirect, state, 32, 1);
        -:        -:  285:   }
       26:       26:  286:}
        -:        -:  287:
        -:        -:  288:static void
    27243:    29894:  289:validate_ssa_def(nir_ssa_def *def, validate_state *state)
        -:        -:  290:{
    27243:    29894:  291:   validate_assert(state, def->index < state->impl->ssa_alloc);
    27243:    29894:  292:   validate_assert(state, !BITSET_TEST(state->ssa_defs_found, def->index));
    27243:    29894:  293:   BITSET_SET(state->ssa_defs_found, def->index);
        -:        -:  294:
    27243:    29894:  295:   validate_assert(state, def->parent_instr == state->instr);
        -:        -:  296:
    27243:    29894:  297:   validate_assert(state, def->num_components <= 4);
        -:        -:  298:
    27243:    29894:  299:   list_validate(&def->uses);
    27243:    29894:  300:   list_validate(&def->if_uses);
        -:        -:  301:
    27243:    29894:  302:   ssa_def_validate_state *def_state = ralloc(state->ssa_defs,
        -:        -:  303:                                              ssa_def_validate_state);
    27243:    29894:  304:   def_state->where_defined = state->impl;
    27243:    29894:  305:   def_state->uses = _mesa_set_create(def_state, _mesa_hash_pointer,
        -:        -:  306:                                      _mesa_key_pointer_equal);
    27243:    29894:  307:   def_state->if_uses = _mesa_set_create(def_state, _mesa_hash_pointer,
        -:        -:  308:                                         _mesa_key_pointer_equal);
    27243:    29894:  309:   _mesa_hash_table_insert(state->ssa_defs, def, def_state);
    27243:    29894:  310:}
        -:        -:  311:
        -:        -:  312:static void
    23308:    25815:  313:validate_dest(nir_dest *dest, validate_state *state,
        -:        -:  314:              unsigned bit_size, unsigned num_components)
        -:        -:  315:{
    23308:    25815:  316:   if (dest->is_ssa) {
    23282:    25789:  317:      if (bit_size)
     2906:     3208:  318:         validate_assert(state, dest->ssa.bit_size == bit_size);
    23282:    25789:  319:      if (num_components)
     4037:     4429:  320:         validate_assert(state, dest->ssa.num_components == num_components);
    23282:    25789:  321:      validate_ssa_def(&dest->ssa, state);
        -:        -:  322:   } else {
       26:       26:  323:      validate_reg_dest(&dest->reg, state, bit_size, num_components);
        -:        -:  324:   }
    23308:    25815:  325:}
        -:        -:  326:
        -:        -:  327:static void
    15673:    16428:  328:validate_alu_dest(nir_alu_instr *instr, validate_state *state)
        -:        -:  329:{
    15673:    16428:  330:   nir_alu_dest *dest = &instr->dest;
        -:        -:  331:
    15673:    16428:  332:   unsigned dest_size =
    31321:    32831:  333:      dest->dest.is_ssa ? dest->dest.ssa.num_components
    31321:    32831:  334:                        : dest->dest.reg.reg->num_components;
    15673:    16428:  335:   bool is_packed = !dest->dest.is_ssa && dest->dest.reg.reg->is_packed;
        -:        -:  336:   /*
        -:        -:  337:    * validate that the instruction doesn't write to components not in the
        -:        -:  338:    * register/SSA value
        -:        -:  339:    */
    15673:    16428:  340:   validate_assert(state, is_packed || !(dest->write_mask & ~((1 << dest_size) - 1)));
        -:        -:  341:
        -:        -:  342:   /* validate that saturate is only ever used on instructions with
        -:        -:  343:    * destinations of type float
        -:        -:  344:    */
    15673:    16428:  345:   nir_alu_instr *alu = nir_instr_as_alu(state->instr);
    15673:    16428:  346:   validate_assert(state,
        -:        -:  347:          (nir_alu_type_get_base_type(nir_op_infos[alu->op].output_type) ==
        -:        -:  348:           nir_type_float) ||
        -:        -:  349:          !dest->saturate);
        -:        -:  350:
    15673:    16428:  351:   validate_dest(&dest->dest, state, 0, 0);
    15673:    16428:  352:}
        -:        -:  353:
        -:        -:  354:static void
    15673:    16428:  355:validate_alu_instr(nir_alu_instr *instr, validate_state *state)
        -:        -:  356:{
    15673:    16428:  357:   validate_assert(state, instr->op < nir_num_opcodes);
        -:        -:  358:
    15673:    16428:  359:   unsigned instr_bit_size = 0;
    43331:    45438:  360:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
    27658:    29010:  361:      nir_alu_type src_type = nir_op_infos[instr->op].input_types[i];
    27658:    29010:  362:      unsigned src_bit_size = nir_src_bit_size(instr->src[i].src);
    27658:    29010:  363:      if (nir_alu_type_get_type_size(src_type)) {
     1787:     1787:  364:         validate_assert(state, src_bit_size == nir_alu_type_get_type_size(src_type));
    25871:    27223:  365:      } else if (instr_bit_size) {
    10198:    10795:  366:         validate_assert(state, src_bit_size == instr_bit_size);
        -:        -:  367:      } else {
    15673:    16428:  368:         instr_bit_size = src_bit_size;
        -:        -:  369:      }
        -:        -:  370:
    27658:    29010:  371:      if (nir_alu_type_get_base_type(src_type) == nir_type_float) {
        -:        -:  372:         /* 8-bit float isn't a thing */
    13682:    14674:  373:         validate_assert(state, src_bit_size == 16 || src_bit_size == 32 ||
        -:        -:  374:                                src_bit_size == 64);
        -:        -:  375:      }
        -:        -:  376:
    27658:    29010:  377:      validate_alu_src(instr, i, state);
        -:        -:  378:   }
        -:        -:  379:
    15673:    16428:  380:   nir_alu_type dest_type = nir_op_infos[instr->op].output_type;
    15673:    16428:  381:   unsigned dest_bit_size = nir_dest_bit_size(instr->dest.dest);
    15673:    16428:  382:   if (nir_alu_type_get_type_size(dest_type)) {
     2440:     2796:  383:      validate_assert(state, dest_bit_size == nir_alu_type_get_type_size(dest_type));
    13233:    13632:  384:   } else if (instr_bit_size) {
    13233:    13632:  385:      validate_assert(state, dest_bit_size == instr_bit_size);
        -:        -:  386:   } else {
        -:        -:  387:      /* The only unsized thing is the destination so it's vacuously valid */
        -:        -:  388:   }
        -:        -:  389:
    15673:    16428:  390:   if (nir_alu_type_get_base_type(dest_type) == nir_type_float) {
        -:        -:  391:      /* 8-bit float isn't a thing */
     7234:     7375:  392:      validate_assert(state, dest_bit_size == 16 || dest_bit_size == 32 ||
        -:        -:  393:                             dest_bit_size == 64);
        -:        -:  394:   }
        -:        -:  395:
    15673:    16428:  396:   validate_alu_dest(instr, state);
    15673:    16428:  397:}
        -:        -:  398:
        -:        -:  399:static void
     4461:     4777:  400:validate_deref_chain(nir_deref *deref, validate_state *state)
        -:        -:  401:{
     4461:     4777:  402:   validate_assert(state, deref->child == NULL || ralloc_parent(deref->child) == deref);
        -:        -:  403:
     4461:     4777:  404:   nir_deref *parent = NULL;
    15149:    16097:  405:   while (deref != NULL) {
     6227:     6543:  406:      switch (deref->deref_type) {
        -:        -:  407:      case nir_deref_type_array:
     1766:     1766:  408:         validate_assert(state, deref->type == glsl_get_array_element(parent->type));
     1766:     1766:  409:         if (nir_deref_as_array(deref)->deref_array_type ==
        -:        -:  410:             nir_deref_array_type_indirect)
    #####:    #####:  411:            validate_src(&nir_deref_as_array(deref)->indirect, state, 32, 1);
     1766:     1766:  412:         break;
        -:        -:  413:
        -:        -:  414:      case nir_deref_type_struct:
    #####:    #####:  415:         assume(parent); /* cannot happen: deref change starts w/ nir_deref_var */
    #####:    #####:  416:         validate_assert(state, deref->type ==
        -:        -:  417:                glsl_get_struct_field(parent->type,
        -:        -:  418:                                      nir_deref_as_struct(deref)->index));
    #####:    #####:  419:         break;
        -:        -:  420:
        -:        -:  421:      case nir_deref_type_var:
     4461:     4777:  422:         break;
        -:        -:  423:
        -:        -:  424:      default:
    #####:    #####:  425:         validate_assert(state, !"Invalid deref type");
    #####:    #####:  426:         break;
        -:        -:  427:      }
        -:        -:  428:
     6227:     6543:  429:      parent = deref;
     6227:     6543:  430:      deref = deref->child;
        -:        -:  431:   }
     4461:     4777:  432:}
        -:        -:  433:
        -:        -:  434:static void
     4461:     4777:  435:validate_var_use(nir_variable *var, validate_state *state)
        -:        -:  436:{
     4461:     4777:  437:   if (var->data.mode == nir_var_local) {
     1488:     1530:  438:      struct hash_entry *entry = _mesa_hash_table_search(state->var_defs, var);
        -:        -:  439:
     1488:     1530:  440:      validate_assert(state, entry);
     1488:     1530:  441:      validate_assert(state, (nir_function_impl *) entry->data == state->impl);
        -:        -:  442:   }
     4461:     4777:  443:}
        -:        -:  444:
        -:        -:  445:static void
     4461:     4777:  446:validate_deref_var(void *parent_mem_ctx, nir_deref_var *deref, validate_state *state)
        -:        -:  447:{
     4461:     4777:  448:   validate_assert(state, deref != NULL);
     4461:     4777:  449:   validate_assert(state, ralloc_parent(deref) == parent_mem_ctx);
     4461:     4777:  450:   validate_assert(state, deref->deref.type == deref->var->type);
        -:        -:  451:
     4461:     4777:  452:   validate_var_use(deref->var, state);
        -:        -:  453:
     4461:     4777:  454:   validate_deref_chain(&deref->deref, state);
     4461:     4777:  455:}
        -:        -:  456:
        -:        -:  457:static void
     5484:     5890:  458:validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state)
        -:        -:  459:{
     5484:     5890:  460:   unsigned bit_size = 0;
     8062:     8572:  461:   if (instr->intrinsic == nir_intrinsic_load_var ||
     2578:     2682:  462:       instr->intrinsic == nir_intrinsic_store_var) {
     3691:     4007:  463:      const struct glsl_type *type =
     3691:     4007:  464:         nir_deref_tail(&instr->variables[0]->deref)->type;
     3691:     4007:  465:      bit_size = glsl_get_bit_size(type);
        -:        -:  466:   }
        -:        -:  467:
     5484:     5890:  468:   unsigned num_srcs = nir_intrinsic_infos[instr->intrinsic].num_srcs;
     7953:     8463:  469:   for (unsigned i = 0; i < num_srcs; i++) {
     2469:     2573:  470:      unsigned components_read =
     2469:     2573:  471:         nir_intrinsic_infos[instr->intrinsic].src_components[i];
     2469:     2573:  472:      if (components_read == 0)
     1061:     1075:  473:         components_read = instr->num_components;
        -:        -:  474:
     2469:     2573:  475:      validate_assert(state, components_read > 0);
        -:        -:  476:
     2469:     2573:  477:      validate_src(&instr->src[i], state, bit_size, components_read);
        -:        -:  478:   }
        -:        -:  479:
     5484:     5890:  480:   unsigned num_vars = nir_intrinsic_infos[instr->intrinsic].num_variables;
     9945:    10667:  481:   for (unsigned i = 0; i < num_vars; i++) {
     4461:     4777:  482:      validate_deref_var(instr, instr->variables[i], state);
        -:        -:  483:   }
        -:        -:  484:
     5484:     5890:  485:   if (nir_intrinsic_infos[instr->intrinsic].has_dest) {
     4038:     4430:  486:      unsigned components_written =
     4038:     4430:  487:         nir_intrinsic_infos[instr->intrinsic].dest_components;
     4038:     4430:  488:      if (components_written == 0)
     3917:     4275:  489:         components_written = instr->num_components;
        -:        -:  490:
     4038:     4430:  491:      validate_assert(state, components_written > 0);
        -:        -:  492:
     4038:     4430:  493:      validate_dest(&instr->dest, state, bit_size, components_written);
        -:        -:  494:   }
        -:        -:  495:
     5484:     5890:  496:   switch (instr->intrinsic) {
        -:        -:  497:   case nir_intrinsic_load_var: {
     2906:     3208:  498:      const struct glsl_type *type =
     2906:     3208:  499:         nir_deref_tail(&instr->variables[0]->deref)->type;
     2906:     3208:  500:      validate_assert(state, glsl_type_is_vector_or_scalar(type) ||
        -:        -:  501:             (instr->variables[0]->var->data.mode == nir_var_uniform &&
        -:        -:  502:              glsl_get_base_type(type) == GLSL_TYPE_SUBROUTINE));
     2906:     3208:  503:      validate_assert(state, instr->num_components == glsl_get_vector_elements(type));
     2906:     3208:  504:      break;
        -:        -:  505:   }
        -:        -:  506:   case nir_intrinsic_store_var: {
      785:      799:  507:      const struct glsl_type *type =
      785:      799:  508:         nir_deref_tail(&instr->variables[0]->deref)->type;
      785:      799:  509:      validate_assert(state, glsl_type_is_vector_or_scalar(type) ||
        -:        -:  510:             (instr->variables[0]->var->data.mode == nir_var_uniform &&
        -:        -:  511:              glsl_get_base_type(type) == GLSL_TYPE_SUBROUTINE));
      785:      799:  512:      validate_assert(state, instr->num_components == glsl_get_vector_elements(type));
      785:      799:  513:      validate_assert(state, instr->variables[0]->var->data.mode != nir_var_shader_in &&
        -:        -:  514:             instr->variables[0]->var->data.mode != nir_var_uniform &&
        -:        -:  515:             instr->variables[0]->var->data.mode != nir_var_shader_storage);
      785:      799:  516:      validate_assert(state, (nir_intrinsic_write_mask(instr) & ~((1 << instr->num_components) - 1)) == 0);
      785:      799:  517:      break;
        -:        -:  518:   }
        -:        -:  519:   case nir_intrinsic_copy_var:
      385:      385:  520:      validate_assert(state, nir_deref_tail(&instr->variables[0]->deref)->type ==
        -:        -:  521:             nir_deref_tail(&instr->variables[1]->deref)->type);
      385:      385:  522:      validate_assert(state, instr->variables[0]->var->data.mode != nir_var_shader_in &&
        -:        -:  523:             instr->variables[0]->var->data.mode != nir_var_uniform &&
        -:        -:  524:             instr->variables[0]->var->data.mode != nir_var_shader_storage);
      385:      385:  525:      break;
        -:        -:  526:   default:
     1408:     1498:  527:      break;
        -:        -:  528:   }
     5484:     5890:  529:}
        -:        -:  530:
        -:        -:  531:static void
    #####:    #####:  532:validate_tex_instr(nir_tex_instr *instr, validate_state *state)
        -:        -:  533:{
        -:        -:  534:   bool src_type_seen[nir_num_tex_src_types];
    #####:    #####:  535:   for (unsigned i = 0; i < nir_num_tex_src_types; i++)
    #####:    #####:  536:      src_type_seen[i] = false;
        -:        -:  537:
    #####:    #####:  538:   for (unsigned i = 0; i < instr->num_srcs; i++) {
    #####:    #####:  539:      validate_assert(state, !src_type_seen[instr->src[i].src_type]);
    #####:    #####:  540:      src_type_seen[instr->src[i].src_type] = true;
    #####:    #####:  541:      validate_src(&instr->src[i].src, state,
        -:        -:  542:                   0, nir_tex_instr_src_size(instr, i));
        -:        -:  543:   }
        -:        -:  544:
    #####:    #####:  545:   if (instr->texture != NULL)
    #####:    #####:  546:      validate_deref_var(instr, instr->texture, state);
        -:        -:  547:
    #####:    #####:  548:   if (instr->sampler != NULL)
    #####:    #####:  549:      validate_deref_var(instr, instr->sampler, state);
        -:        -:  550:
    #####:    #####:  551:   validate_dest(&instr->dest, state, 0, nir_tex_instr_dest_size(instr));
    #####:    #####:  552:}
        -:        -:  553:
        -:        -:  554:static void
    #####:    #####:  555:validate_call_instr(nir_call_instr *instr, validate_state *state)
        -:        -:  556:{
    #####:    #####:  557:   if (instr->return_deref == NULL) {
    #####:    #####:  558:      validate_assert(state, glsl_type_is_void(instr->callee->return_type));
        -:        -:  559:   } else {
    #####:    #####:  560:      validate_assert(state, instr->return_deref->deref.type == instr->callee->return_type);
    #####:    #####:  561:      validate_deref_var(instr, instr->return_deref, state);
        -:        -:  562:   }
        -:        -:  563:
    #####:    #####:  564:   validate_assert(state, instr->num_params == instr->callee->num_params);
        -:        -:  565:
    #####:    #####:  566:   for (unsigned i = 0; i < instr->num_params; i++) {
    #####:    #####:  567:      validate_assert(state, instr->callee->params[i].type == instr->params[i]->deref.type);
    #####:    #####:  568:      validate_deref_var(instr, instr->params[i], state);
        -:        -:  569:   }
    #####:    #####:  570:}
        -:        -:  571:
        -:        -:  572:static void
     2913:     3057:  573:validate_load_const_instr(nir_load_const_instr *instr, validate_state *state)
        -:        -:  574:{
     2913:     3057:  575:   validate_ssa_def(&instr->def, state);
     2913:     3057:  576:}
        -:        -:  577:
        -:        -:  578:static void
     1048:     1048:  579:validate_ssa_undef_instr(nir_ssa_undef_instr *instr, validate_state *state)
        -:        -:  580:{
     1048:     1048:  581:   validate_ssa_def(&instr->def, state);
     1048:     1048:  582:}
        -:        -:  583:
        -:        -:  584:static void
     3597:     4957:  585:validate_phi_instr(nir_phi_instr *instr, validate_state *state)
        -:        -:  586:{
        -:        -:  587:   /*
        -:        -:  588:    * don't validate the sources until we get to them from their predecessor
        -:        -:  589:    * basic blocks, to avoid validating an SSA use before its definition.
        -:        -:  590:    */
        -:        -:  591:
     3597:     4957:  592:   validate_dest(&instr->dest, state, 0, 0);
        -:        -:  593:
     3597:     4957:  594:   exec_list_validate(&instr->srcs);
     3597:     4957:  595:   validate_assert(state, exec_list_length(&instr->srcs) ==
        -:        -:  596:          state->block->predecessors->entries);
     3597:     4957:  597:}
        -:        -:  598:
        -:        -:  599:static void
    29448:    32825:  600:validate_instr(nir_instr *instr, validate_state *state)
        -:        -:  601:{
    29448:    32825:  602:   validate_assert(state, instr->block == state->block);
        -:        -:  603:
    29448:    32825:  604:   state->instr = instr;
        -:        -:  605:
    29448:    32825:  606:   switch (instr->type) {
        -:        -:  607:   case nir_instr_type_alu:
    15673:    16428:  608:      validate_alu_instr(nir_instr_as_alu(instr), state);
    15673:    16428:  609:      break;
        -:        -:  610:
        -:        -:  611:   case nir_instr_type_call:
    #####:    #####:  612:      validate_call_instr(nir_instr_as_call(instr), state);
    #####:    #####:  613:      break;
        -:        -:  614:
        -:        -:  615:   case nir_instr_type_intrinsic:
     5484:     5890:  616:      validate_intrinsic_instr(nir_instr_as_intrinsic(instr), state);
     5484:     5890:  617:      break;
        -:        -:  618:
        -:        -:  619:   case nir_instr_type_tex:
    #####:    #####:  620:      validate_tex_instr(nir_instr_as_tex(instr), state);
    #####:    #####:  621:      break;
        -:        -:  622:
        -:        -:  623:   case nir_instr_type_load_const:
     2913:     3057:  624:      validate_load_const_instr(nir_instr_as_load_const(instr), state);
     2913:     3057:  625:      break;
        -:        -:  626:
        -:        -:  627:   case nir_instr_type_phi:
     3597:     4957:  628:      validate_phi_instr(nir_instr_as_phi(instr), state);
     3597:     4957:  629:      break;
        -:        -:  630:
        -:        -:  631:   case nir_instr_type_ssa_undef:
     1048:     1048:  632:      validate_ssa_undef_instr(nir_instr_as_ssa_undef(instr), state);
     1048:     1048:  633:      break;
        -:        -:  634:
        -:        -:  635:   case nir_instr_type_jump:
      733:     1445:  636:      break;
        -:        -:  637:
        -:        -:  638:   default:
    #####:    #####:  639:      validate_assert(state, !"Invalid ALU instruction type");
    #####:    #####:  640:      break;
        -:        -:  641:   }
        -:        -:  642:
    29448:    32825:  643:   state->instr = NULL;
    29448:    32825:  644:}
        -:        -:  645:
        -:        -:  646:static void
     7194:     9914:  647:validate_phi_src(nir_phi_instr *instr, nir_block *pred, validate_state *state)
        -:        -:  648:{
     7194:     9914:  649:   state->instr = &instr->instr;
        -:        -:  650:
     7194:     9914:  651:   validate_assert(state, instr->dest.is_ssa);
        -:        -:  652:
     7194:     9914:  653:   exec_list_validate(&instr->srcs);
    10791:    14871:  654:   nir_foreach_phi_src(src, instr) {
    10791:    14871:  655:      if (src->pred == pred) {
     7194:     9914:  656:         validate_assert(state, src->src.is_ssa);
     7194:     9914:  657:         validate_src(&src->src, state, instr->dest.ssa.bit_size,
     7194:     9914:  658:                      instr->dest.ssa.num_components);
     7194:     9914:  659:         state->instr = NULL;
    14388:    19828:  660:         return;
        -:        -:  661:      }
        -:        -:  662:   }
        -:        -:  663:
    #####:    #####:  664:   abort();
        -:        -:  665:}
        -:        -:  666:
        -:        -:  667:static void
     8766:    12326:  668:validate_phi_srcs(nir_block *block, nir_block *succ, validate_state *state)
        -:        -:  669:{
    15960:    22240:  670:   nir_foreach_instr(instr, succ) {
    13491:    17331:  671:      if (instr->type != nir_instr_type_phi)
     6297:     7417:  672:         break;
        -:        -:  673:
     7194:     9914:  674:      validate_phi_src(nir_instr_as_phi(instr), block, state);
        -:        -:  675:   }
     8766:    12326:  676:}
        -:        -:  677:
        -:        -:  678:static void validate_cf_node(nir_cf_node *node, validate_state *state);
        -:        -:  679:
        -:        -:  680:static void
     6915:     9763:  681:validate_block(nir_block *block, validate_state *state)
        -:        -:  682:{
     6915:     9763:  683:   validate_assert(state, block->cf_node.parent == state->parent_node);
        -:        -:  684:
     6915:     9763:  685:   state->block = block;
        -:        -:  686:
     6915:     9763:  687:   exec_list_validate(&block->instr_list);
    36363:    42588:  688:   nir_foreach_instr(instr, block) {
    29448:    32825:  689:      if (instr->type == nir_instr_type_phi) {
     3597:     4957:  690:         validate_assert(state, instr == nir_block_first_instr(block) ||
        -:        -:  691:                nir_instr_prev(instr)->type == nir_instr_type_phi);
        -:        -:  692:      }
        -:        -:  693:
    29448:    32825:  694:      if (instr->type == nir_instr_type_jump) {
      733:     1445:  695:         validate_assert(state, instr == nir_block_last_instr(block));
        -:        -:  696:      }
        -:        -:  697:
    29448:    32825:  698:      validate_instr(instr, state);
        -:        -:  699:   }
        -:        -:  700:
     6915:     9763:  701:   validate_assert(state, block->successors[0] != NULL);
     6915:     9763:  702:   validate_assert(state, block->successors[0] != block->successors[1]);
        -:        -:  703:
    20745:    29289:  704:   for (unsigned i = 0; i < 2; i++) {
    13830:    19526:  705:      if (block->successors[i] != NULL) {
     8766:    12326:  706:         struct set_entry *entry =
     8766:    12326:  707:            _mesa_set_search(block->successors[i]->predecessors, block);
     8766:    12326:  708:         validate_assert(state, entry);
        -:        -:  709:
     8766:    12326:  710:         validate_phi_srcs(block, block->successors[i], state);
        -:        -:  711:      }
        -:        -:  712:   }
        -:        -:  713:
        -:        -:  714:   struct set_entry *entry;
    15073:    21481:  715:   set_foreach(block->predecessors, entry) {
     8158:    11718:  716:      const nir_block *pred = entry->key;
     8158:    11718:  717:      validate_assert(state, pred->successors[0] == block ||
        -:        -:  718:             pred->successors[1] == block);
        -:        -:  719:   }
        -:        -:  720:
    12001:    16611:  721:   if (!exec_list_is_empty(&block->instr_list) &&
     5819:     8293:  722:       nir_block_last_instr(block)->type == nir_instr_type_jump) {
      733:     1445:  723:      validate_assert(state, block->successors[1] == NULL);
      733:     1445:  724:      nir_jump_instr *jump = nir_instr_as_jump(nir_block_last_instr(block));
      733:     1445:  725:      switch (jump->type) {
        -:        -:  726:      case nir_jump_break: {
      733:     1445:  727:         nir_block *after =
      733:     1445:  728:            nir_cf_node_as_block(nir_cf_node_next(&state->loop->cf_node));
      733:     1445:  729:         validate_assert(state, block->successors[0] == after);
      733:     1445:  730:         break;
        -:        -:  731:      }
        -:        -:  732:
        -:        -:  733:      case nir_jump_continue: {
    #####:    #####:  734:         nir_block *first = nir_loop_first_block(state->loop);
    #####:    #####:  735:         validate_assert(state, block->successors[0] == first);
    #####:    #####:  736:         break;
        -:        -:  737:      }
        -:        -:  738:
        -:        -:  739:      case nir_jump_return:
    #####:    #####:  740:         validate_assert(state, block->successors[0] == state->impl->end_block);
    #####:    #####:  741:         break;
        -:        -:  742:
        -:        -:  743:      default:
    #####:    #####:  744:         unreachable("bad jump type");
        -:        -:  745:      }
        -:        -:  746:   } else {
     6182:     8318:  747:      nir_cf_node *next = nir_cf_node_next(&block->cf_node);
     6182:     8318:  748:      if (next == NULL) {
     3954:     5022:  749:         switch (state->parent_node->type) {
        -:        -:  750:         case nir_cf_node_loop: {
      377:      733:  751:            nir_block *first = nir_loop_first_block(state->loop);
      377:      733:  752:            validate_assert(state, block->successors[0] == first);
        -:        -:  753:            /* due to the hack for infinite loops, block->successors[1] may
        -:        -:  754:             * point to the block after the loop.
        -:        -:  755:             */
      377:      733:  756:            break;
        -:        -:  757:         }
        -:        -:  758:
        -:        -:  759:         case nir_cf_node_if: {
     2969:     3681:  760:            nir_block *after =
     2969:     3681:  761:               nir_cf_node_as_block(nir_cf_node_next(state->parent_node));
     2969:     3681:  762:            validate_assert(state, block->successors[0] == after);
     2969:     3681:  763:            validate_assert(state, block->successors[1] == NULL);
     2969:     3681:  764:            break;
        -:        -:  765:         }
        -:        -:  766:
        -:        -:  767:         case nir_cf_node_function:
      608:      608:  768:            validate_assert(state, block->successors[0] == state->impl->end_block);
      608:      608:  769:            validate_assert(state, block->successors[1] == NULL);
      608:      608:  770:            break;
        -:        -:  771:
        -:        -:  772:         default:
    #####:    #####:  773:            unreachable("unknown control flow node type");
        -:        -:  774:         }
        -:        -:  775:      } else {
     2228:     3296:  776:         if (next->type == nir_cf_node_if) {
     1851:     2563:  777:            nir_if *if_stmt = nir_cf_node_as_if(next);
     1851:     2563:  778:            validate_assert(state, block->successors[0] ==
        -:        -:  779:                   nir_if_first_then_block(if_stmt));
     1851:     2563:  780:            validate_assert(state, block->successors[1] ==
        -:        -:  781:                   nir_if_first_else_block(if_stmt));
        -:        -:  782:         } else {
      377:      733:  783:            validate_assert(state, next->type == nir_cf_node_loop);
      377:      733:  784:            nir_loop *loop = nir_cf_node_as_loop(next);
      377:      733:  785:            validate_assert(state, block->successors[0] ==
        -:        -:  786:                   nir_loop_first_block(loop));
      377:      733:  787:            validate_assert(state, block->successors[1] == NULL);
        -:        -:  788:         }
        -:        -:  789:      }
        -:        -:  790:   }
     6915:     9763:  791:}
        -:        -:  792:
        -:        -:  793:static void
     1851:     2563:  794:validate_if(nir_if *if_stmt, validate_state *state)
        -:        -:  795:{
     1851:     2563:  796:   state->if_stmt = if_stmt;
        -:        -:  797:
     1851:     2563:  798:   validate_assert(state, !exec_node_is_head_sentinel(if_stmt->cf_node.node.prev));
     1851:     2563:  799:   nir_cf_node *prev_node = nir_cf_node_prev(&if_stmt->cf_node);
     1851:     2563:  800:   validate_assert(state, prev_node->type == nir_cf_node_block);
        -:        -:  801:
     1851:     2563:  802:   validate_assert(state, !exec_node_is_tail_sentinel(if_stmt->cf_node.node.next));
     1851:     2563:  803:   nir_cf_node *next_node = nir_cf_node_next(&if_stmt->cf_node);
     1851:     2563:  804:   validate_assert(state, next_node->type == nir_cf_node_block);
        -:        -:  805:
     1851:     2563:  806:   validate_src(&if_stmt->condition, state, 32, 1);
        -:        -:  807:
     1851:     2563:  808:   validate_assert(state, !exec_list_is_empty(&if_stmt->then_list));
     1851:     2563:  809:   validate_assert(state, !exec_list_is_empty(&if_stmt->else_list));
        -:        -:  810:
     1851:     2563:  811:   nir_cf_node *old_parent = state->parent_node;
     1851:     2563:  812:   state->parent_node = &if_stmt->cf_node;
        -:        -:  813:
     1851:     2563:  814:   exec_list_validate(&if_stmt->then_list);
     4062:     5486:  815:   foreach_list_typed(nir_cf_node, cf_node, node, &if_stmt->then_list) {
     2211:     2923:  816:      validate_cf_node(cf_node, state);
        -:        -:  817:   }
        -:        -:  818:
     1851:     2563:  819:   exec_list_validate(&if_stmt->else_list);
     3702:     5126:  820:   foreach_list_typed(nir_cf_node, cf_node, node, &if_stmt->else_list) {
     1851:     2563:  821:      validate_cf_node(cf_node, state);
        -:        -:  822:   }
        -:        -:  823:
     1851:     2563:  824:   state->parent_node = old_parent;
     1851:     2563:  825:   state->if_stmt = NULL;
     1851:     2563:  826:}
        -:        -:  827:
        -:        -:  828:static void
      377:      733:  829:validate_loop(nir_loop *loop, validate_state *state)
        -:        -:  830:{
      377:      733:  831:   validate_assert(state, !exec_node_is_head_sentinel(loop->cf_node.node.prev));
      377:      733:  832:   nir_cf_node *prev_node = nir_cf_node_prev(&loop->cf_node);
      377:      733:  833:   validate_assert(state, prev_node->type == nir_cf_node_block);
        -:        -:  834:
      377:      733:  835:   validate_assert(state, !exec_node_is_tail_sentinel(loop->cf_node.node.next));
      377:      733:  836:   nir_cf_node *next_node = nir_cf_node_next(&loop->cf_node);
      377:      733:  837:   validate_assert(state, next_node->type == nir_cf_node_block);
        -:        -:  838:
      377:      733:  839:   validate_assert(state, !exec_list_is_empty(&loop->body));
        -:        -:  840:
      377:      733:  841:   nir_cf_node *old_parent = state->parent_node;
      377:      733:  842:   state->parent_node = &loop->cf_node;
      377:      733:  843:   nir_loop *old_loop = state->loop;
      377:      733:  844:   state->loop = loop;
        -:        -:  845:
      377:      733:  846:   exec_list_validate(&loop->body);
     3094:     5942:  847:   foreach_list_typed(nir_cf_node, cf_node, node, &loop->body) {
     2717:     5209:  848:      validate_cf_node(cf_node, state);
        -:        -:  849:   }
        -:        -:  850:
      377:      733:  851:   state->parent_node = old_parent;
      377:      733:  852:   state->loop = old_loop;
      377:      733:  853:}
        -:        -:  854:
        -:        -:  855:static void
     9143:    13059:  856:validate_cf_node(nir_cf_node *node, validate_state *state)
        -:        -:  857:{
     9143:    13059:  858:   validate_assert(state, node->parent == state->parent_node);
        -:        -:  859:
     9143:    13059:  860:   switch (node->type) {
        -:        -:  861:   case nir_cf_node_block:
     6915:     9763:  862:      validate_block(nir_cf_node_as_block(node), state);
     6915:     9763:  863:      break;
        -:        -:  864:
        -:        -:  865:   case nir_cf_node_if:
     1851:     2563:  866:      validate_if(nir_cf_node_as_if(node), state);
     1851:     2563:  867:      break;
        -:        -:  868:
        -:        -:  869:   case nir_cf_node_loop:
      377:      733:  870:      validate_loop(nir_cf_node_as_loop(node), state);
      377:      733:  871:      break;
        -:        -:  872:
        -:        -:  873:   default:
    #####:    #####:  874:      unreachable("Invalid CF node type");
        -:        -:  875:   }
     9143:    13059:  876:}
        -:        -:  877:
        -:        -:  878:static void
       13:       13:  879:prevalidate_reg_decl(nir_register *reg, bool is_global, validate_state *state)
        -:        -:  880:{
       13:       13:  881:   validate_assert(state, reg->is_global == is_global);
        -:        -:  882:
       13:       13:  883:   if (is_global)
    #####:    #####:  884:      validate_assert(state, reg->index < state->shader->reg_alloc);
        -:        -:  885:   else
       13:       13:  886:      validate_assert(state, reg->index < state->impl->reg_alloc);
       13:       13:  887:   validate_assert(state, !BITSET_TEST(state->regs_found, reg->index));
       13:       13:  888:   BITSET_SET(state->regs_found, reg->index);
        -:        -:  889:
       13:       13:  890:   list_validate(®->uses);
       13:       13:  891:   list_validate(®->defs);
       13:       13:  892:   list_validate(®->if_uses);
        -:        -:  893:
       13:       13:  894:   reg_validate_state *reg_state = ralloc(state->regs, reg_validate_state);
       13:       13:  895:   reg_state->uses = _mesa_set_create(reg_state, _mesa_hash_pointer,
        -:        -:  896:                                      _mesa_key_pointer_equal);
       13:       13:  897:   reg_state->if_uses = _mesa_set_create(reg_state, _mesa_hash_pointer,
        -:        -:  898:                                         _mesa_key_pointer_equal);
       13:       13:  899:   reg_state->defs = _mesa_set_create(reg_state, _mesa_hash_pointer,
        -:        -:  900:                                      _mesa_key_pointer_equal);
        -:        -:  901:
       13:       13:  902:   reg_state->where_defined = is_global ? NULL : state->impl;
        -:        -:  903:
       13:       13:  904:   _mesa_hash_table_insert(state->regs, reg, reg_state);
       13:       13:  905:}
        -:        -:  906:
        -:        -:  907:static void
       13:       13:  908:postvalidate_reg_decl(nir_register *reg, validate_state *state)
        -:        -:  909:{
       13:       13:  910:   struct hash_entry *entry = _mesa_hash_table_search(state->regs, reg);
        -:        -:  911:
       13:       13:  912:   assume(entry);
       13:       13:  913:   reg_validate_state *reg_state = (reg_validate_state *) entry->data;
        -:        -:  914:
       49:       49:  915:   nir_foreach_use(src, reg) {
       36:       36:  916:      struct set_entry *entry = _mesa_set_search(reg_state->uses, src);
       36:       36:  917:      validate_assert(state, entry);
       36:       36:  918:      _mesa_set_remove(reg_state->uses, entry);
        -:        -:  919:   }
        -:        -:  920:
       13:       13:  921:   if (reg_state->uses->entries != 0) {
    #####:    #####:  922:      printf("extra entries in register uses:\n");
        -:        -:  923:      struct set_entry *entry;
    #####:    #####:  924:      set_foreach(reg_state->uses, entry)
    #####:    #####:  925:         printf("%p\n", entry->key);
        -:        -:  926:
    #####:    #####:  927:      abort();
        -:        -:  928:   }
        -:        -:  929:
       13:       15:  930:   nir_foreach_if_use(src, reg) {
    #####:        2:  931:      struct set_entry *entry = _mesa_set_search(reg_state->if_uses, src);
    #####:        2:  932:      validate_assert(state, entry);
    #####:        2:  933:      _mesa_set_remove(reg_state->if_uses, entry);
        -:        -:  934:   }
        -:        -:  935:
       13:       13:  936:   if (reg_state->if_uses->entries != 0) {
    #####:    #####:  937:      printf("extra entries in register if_uses:\n");
        -:        -:  938:      struct set_entry *entry;
    #####:    #####:  939:      set_foreach(reg_state->if_uses, entry)
    #####:    #####:  940:         printf("%p\n", entry->key);
        -:        -:  941:
    #####:    #####:  942:      abort();
        -:        -:  943:   }
        -:        -:  944:
       39:       39:  945:   nir_foreach_def(src, reg) {
       26:       26:  946:      struct set_entry *entry = _mesa_set_search(reg_state->defs, src);
       26:       26:  947:      validate_assert(state, entry);
       26:       26:  948:      _mesa_set_remove(reg_state->defs, entry);
        -:        -:  949:   }
        -:        -:  950:
       13:       13:  951:   if (reg_state->defs->entries != 0) {
    #####:    #####:  952:      printf("extra entries in register defs:\n");
        -:        -:  953:      struct set_entry *entry;
    #####:    #####:  954:      set_foreach(reg_state->defs, entry)
    #####:    #####:  955:         printf("%p\n", entry->key);
        -:        -:  956:
    #####:    #####:  957:      abort();
        -:        -:  958:   }
       13:       13:  959:}
        -:        -:  960:
        -:        -:  961:static void
     9379:     9627:  962:validate_var_decl(nir_variable *var, bool is_global, validate_state *state)
        -:        -:  963:{
     9379:     9627:  964:   state->var = var;
        -:        -:  965:
     9379:     9627:  966:   validate_assert(state, is_global == nir_variable_is_global(var));
        -:        -:  967:
        -:        -:  968:   /* Must have exactly one mode set */
     9379:     9627:  969:   validate_assert(state, util_bitcount(var->data.mode) == 1);
        -:        -:  970:
     9379:     9627:  971:   if (var->data.compact) {
        -:        -:  972:      /* The "compact" flag is only valid on arrays of scalars. */
    #####:    #####:  973:      assert(glsl_type_is_array(var->type));
        -:        -:  974:
    #####:    #####:  975:      const struct glsl_type *type = glsl_get_array_element(var->type);
    #####:    #####:  976:      if (nir_is_per_vertex_io(var, state->shader->stage)) {
    #####:    #####:  977:         assert(glsl_type_is_array(type));
    #####:    #####:  978:         assert(glsl_type_is_scalar(glsl_get_array_element(type)));
        -:        -:  979:      } else {
    #####:    #####:  980:         assert(glsl_type_is_scalar(type));
        -:        -:  981:      }
        -:        -:  982:   }
        -:        -:  983:
        -:        -:  984:   /*
        -:        -:  985:    * TODO validate some things ir_validate.cpp does (requires more GLSL type
        -:        -:  986:    * support)
        -:        -:  987:    */
        -:        -:  988:
     9379:     9627:  989:   if (!is_global) {
     7424:     7672:  990:      _mesa_hash_table_insert(state->var_defs, var, state->impl);
        -:        -:  991:   }
        -:        -:  992:
     9379:     9627:  993:   state->var = NULL;
     9379:     9627:  994:}
        -:        -:  995:
        -:        -:  996:static bool
    27243:    29894:  997:postvalidate_ssa_def(nir_ssa_def *def, void *void_state)
        -:        -:  998:{
    27243:    29894:  999:   validate_state *state = void_state;
        -:        -: 1000:
    27243:    29894: 1001:   struct hash_entry *entry = _mesa_hash_table_search(state->ssa_defs, def);
        -:        -: 1002:
    27243:    29894: 1003:   assume(entry);
    27243:    29894: 1004:   ssa_def_validate_state *def_state = (ssa_def_validate_state *)entry->data;
        -:        -: 1005:
    64528:    71355: 1006:   nir_foreach_use(src, def) {
    37285:    41461: 1007:      struct set_entry *entry = _mesa_set_search(def_state->uses, src);
    37285:    41461: 1008:      validate_assert(state, entry);
    37285:    41461: 1009:      _mesa_set_remove(def_state->uses, entry);
        -:        -: 1010:   }
        -:        -: 1011:
    27243:    29894: 1012:   if (def_state->uses->entries != 0) {
    #####:    #####: 1013:      printf("extra entries in SSA def uses:\n");
        -:        -: 1014:      struct set_entry *entry;
    #####:    #####: 1015:      set_foreach(def_state->uses, entry)
    #####:    #####: 1016:         printf("%p\n", entry->key);
        -:        -: 1017:
    #####:    #####: 1018:      abort();
        -:        -: 1019:   }
        -:        -: 1020:
    29094:    32455: 1021:   nir_foreach_if_use(src, def) {
     1851:     2561: 1022:      struct set_entry *entry = _mesa_set_search(def_state->if_uses, src);
     1851:     2561: 1023:      validate_assert(state, entry);
     1851:     2561: 1024:      _mesa_set_remove(def_state->if_uses, entry);
        -:        -: 1025:   }
        -:        -: 1026:
    27243:    29894: 1027:   if (def_state->if_uses->entries != 0) {
    #####:    #####: 1028:      printf("extra entries in SSA def uses:\n");
        -:        -: 1029:      struct set_entry *entry;
    #####:    #####: 1030:      set_foreach(def_state->if_uses, entry)
    #####:    #####: 1031:         printf("%p\n", entry->key);
        -:        -: 1032:
    #####:    #####: 1033:      abort();
        -:        -: 1034:   }
        -:        -: 1035:
    27243:    29894: 1036:   return true;
        -:        -: 1037:}
        -:        -: 1038:
        -:        -: 1039:static void
      608:      608: 1040:validate_function_impl(nir_function_impl *impl, validate_state *state)
        -:        -: 1041:{
      608:      608: 1042:   validate_assert(state, impl->function->impl == impl);
      608:      608: 1043:   validate_assert(state, impl->cf_node.parent == NULL);
        -:        -: 1044:
      608:      608: 1045:   validate_assert(state, impl->num_params == impl->function->num_params);
      608:      608: 1046:   for (unsigned i = 0; i < impl->num_params; i++) {
    #####:    #####: 1047:      validate_assert(state, impl->params[i]->type == impl->function->params[i].type);
    #####:    #####: 1048:      validate_assert(state, impl->params[i]->data.mode == nir_var_param);
    #####:    #####: 1049:      validate_assert(state, impl->params[i]->data.location == i);
    #####:    #####: 1050:      validate_var_decl(impl->params[i], false, state);
        -:        -: 1051:   }
        -:        -: 1052:
      608:      608: 1053:   if (glsl_type_is_void(impl->function->return_type)) {
      608:      608: 1054:      validate_assert(state, impl->return_var == NULL);
        -:        -: 1055:   } else {
    #####:    #####: 1056:      validate_assert(state, impl->return_var->type == impl->function->return_type);
    #####:    #####: 1057:      validate_assert(state, impl->return_var->data.mode == nir_var_param);
    #####:    #####: 1058:      validate_assert(state, impl->return_var->data.location == -1);
    #####:    #####: 1059:      validate_var_decl(impl->return_var, false, state);
        -:        -: 1060:   }
        -:        -: 1061:
      608:      608: 1062:   validate_assert(state, exec_list_is_empty(&impl->end_block->instr_list));
      608:      608: 1063:   validate_assert(state, impl->end_block->successors[0] == NULL);
      608:      608: 1064:   validate_assert(state, impl->end_block->successors[1] == NULL);
        -:        -: 1065:
      608:      608: 1066:   state->impl = impl;
      608:      608: 1067:   state->parent_node = &impl->cf_node;
        -:        -: 1068:
      608:      608: 1069:   exec_list_validate(&impl->locals);
     8032:     8280: 1070:   nir_foreach_variable(var, &impl->locals) {
     7424:     7672: 1071:      validate_var_decl(var, false, state);
        -:        -: 1072:   }
        -:        -: 1073:
      608:      608: 1074:   state->regs_found = realloc(state->regs_found,
      608:      608: 1075:                               BITSET_WORDS(impl->reg_alloc) *
        -:        -: 1076:                               sizeof(BITSET_WORD));
      608:      608: 1077:   memset(state->regs_found, 0, BITSET_WORDS(impl->reg_alloc) *
        -:        -: 1078:                                sizeof(BITSET_WORD));
      608:      608: 1079:   exec_list_validate(&impl->registers);
      621:      621: 1080:   foreach_list_typed(nir_register, reg, node, &impl->registers) {
       13:       13: 1081:      prevalidate_reg_decl(reg, false, state);
        -:        -: 1082:   }
        -:        -: 1083:
      608:      608: 1084:   state->ssa_defs_found = realloc(state->ssa_defs_found,
      608:      608: 1085:                                   BITSET_WORDS(impl->ssa_alloc) *
        -:        -: 1086:                                   sizeof(BITSET_WORD));
      608:      608: 1087:   memset(state->ssa_defs_found, 0, BITSET_WORDS(impl->ssa_alloc) *
        -:        -: 1088:                                    sizeof(BITSET_WORD));
      608:      608: 1089:   exec_list_validate(&impl->body);
     2972:     2972: 1090:   foreach_list_typed(nir_cf_node, node, node, &impl->body) {
     2364:     2364: 1091:      validate_cf_node(node, state);
        -:        -: 1092:   }
        -:        -: 1093:
      621:      621: 1094:   foreach_list_typed(nir_register, reg, node, &impl->registers) {
       13:       13: 1095:      postvalidate_reg_decl(reg, state);
        -:        -: 1096:   }
        -:        -: 1097:
     7523:    10371: 1098:   nir_foreach_block(block, impl) {
    36363:    42588: 1099:      nir_foreach_instr(instr, block)
    29448:    32825: 1100:         nir_foreach_ssa_def(instr, postvalidate_ssa_def, state);
        -:        -: 1101:   }
      608:      608: 1102:}
        -:        -: 1103:
        -:        -: 1104:static void
      608:      608: 1105:validate_function(nir_function *func, validate_state *state)
        -:        -: 1106:{
      608:      608: 1107:   if (func->impl != NULL) {
      608:      608: 1108:      validate_assert(state, func->impl->function == func);
      608:      608: 1109:      validate_function_impl(func->impl, state);
        -:        -: 1110:   }
      608:      608: 1111:}
        -:        -: 1112:
        -:        -: 1113:static void
      608:      608: 1114:init_validate_state(validate_state *state)
        -:        -: 1115:{
      608:      608: 1116:   state->regs = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -: 1117:                                         _mesa_key_pointer_equal);
      608:      608: 1118:   state->ssa_defs = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -: 1119:                                             _mesa_key_pointer_equal);
      608:      608: 1120:   state->ssa_defs_found = NULL;
      608:      608: 1121:   state->regs_found = NULL;
      608:      608: 1122:   state->var_defs = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -: 1123:                                             _mesa_key_pointer_equal);
      608:      608: 1124:   state->errors = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
        -:        -: 1125:                                           _mesa_key_pointer_equal);
        -:        -: 1126:
      608:      608: 1127:   state->loop = NULL;
      608:      608: 1128:   state->instr = NULL;
      608:      608: 1129:   state->var = NULL;
      608:      608: 1130:}
        -:        -: 1131:
        -:        -: 1132:static void
      608:      608: 1133:destroy_validate_state(validate_state *state)
        -:        -: 1134:{
      608:      608: 1135:   _mesa_hash_table_destroy(state->regs, NULL);
      608:      608: 1136:   _mesa_hash_table_destroy(state->ssa_defs, NULL);
      608:      608: 1137:   free(state->ssa_defs_found);
      608:      608: 1138:   free(state->regs_found);
      608:      608: 1139:   _mesa_hash_table_destroy(state->var_defs, NULL);
      608:      608: 1140:   _mesa_hash_table_destroy(state->errors, NULL);
      608:      608: 1141:}
        -:        -: 1142:
        -:        -: 1143:static void
    #####:    #####: 1144:dump_errors(validate_state *state)
        -:        -: 1145:{
    #####:    #####: 1146:   struct hash_table *errors = state->errors;
        -:        -: 1147:
    #####:    #####: 1148:   fprintf(stderr, "%d errors:\n", _mesa_hash_table_num_entries(errors));
        -:        -: 1149:
    #####:    #####: 1150:   nir_print_shader_annotated(state->shader, stderr, errors);
        -:        -: 1151:
    #####:    #####: 1152:   if (_mesa_hash_table_num_entries(errors) > 0) {
    #####:    #####: 1153:      fprintf(stderr, "%d additional errors:\n",
        -:        -: 1154:              _mesa_hash_table_num_entries(errors));
        -:        -: 1155:      struct hash_entry *entry;
    #####:    #####: 1156:      hash_table_foreach(errors, entry) {
    #####:    #####: 1157:         fprintf(stderr, "%s\n", (char *)entry->data);
        -:        -: 1158:      }
        -:        -: 1159:   }
        -:        -: 1160:
    #####:    #####: 1161:   abort();
        -:        -: 1162:}
        -:        -: 1163:
        -:        -: 1164:void
      608:      608: 1165:nir_validate_shader(nir_shader *shader)
        -:        -: 1166:{
        -:        -: 1167:   static int should_validate = -1;
      608:      608: 1168:   if (should_validate < 0)
        1:        1: 1169:      should_validate = env_var_as_boolean("NIR_VALIDATE", true);
      608:      608: 1170:   if (!should_validate)
    #####:    #####: 1171:      return;
        -:        -: 1172:
        -:        -: 1173:   validate_state state;
      608:      608: 1174:   init_validate_state(&state);
        -:        -: 1175:
      608:      608: 1176:   state.shader = shader;
        -:        -: 1177:
      608:      608: 1178:   exec_list_validate(&shader->uniforms);
     1123:     1123: 1179:   nir_foreach_variable(var, &shader->uniforms) {
      515:      515: 1180:      validate_var_decl(var, true, &state);
        -:        -: 1181:   }
        -:        -: 1182:
      608:      608: 1183:   exec_list_validate(&shader->inputs);
     1322:     1322: 1184:   nir_foreach_variable(var, &shader->inputs) {
      714:      714: 1185:     validate_var_decl(var, true, &state);
        -:        -: 1186:   }
        -:        -: 1187:
      608:      608: 1188:   exec_list_validate(&shader->outputs);
     1322:     1322: 1189:   nir_foreach_variable(var, &shader->outputs) {
      714:      714: 1190:     validate_var_decl(var, true, &state);
        -:        -: 1191:   }
        -:        -: 1192:
      608:      608: 1193:   exec_list_validate(&shader->shared);
      608:      608: 1194:   nir_foreach_variable(var, &shader->shared) {
    #####:    #####: 1195:      validate_var_decl(var, true, &state);
        -:        -: 1196:   }
        -:        -: 1197:
      608:      608: 1198:   exec_list_validate(&shader->globals);
      620:      620: 1199:   nir_foreach_variable(var, &shader->globals) {
       12:       12: 1200:     validate_var_decl(var, true, &state);
        -:        -: 1201:   }
        -:        -: 1202:
      608:      608: 1203:   exec_list_validate(&shader->system_values);
      608:      608: 1204:   nir_foreach_variable(var, &shader->system_values) {
    #####:    #####: 1205:     validate_var_decl(var, true, &state);
        -:        -: 1206:   }
        -:        -: 1207:
      608:      608: 1208:   state.regs_found = realloc(state.regs_found,
      608:      608: 1209:                              BITSET_WORDS(shader->reg_alloc) *
        -:        -: 1210:                              sizeof(BITSET_WORD));
      608:      608: 1211:   memset(state.regs_found, 0, BITSET_WORDS(shader->reg_alloc) *
        -:        -: 1212:                               sizeof(BITSET_WORD));
      608:      608: 1213:   exec_list_validate(&shader->registers);
      608:      608: 1214:   foreach_list_typed(nir_register, reg, node, &shader->registers) {
    #####:    #####: 1215:      prevalidate_reg_decl(reg, true, &state);
        -:        -: 1216:   }
        -:        -: 1217:
      608:      608: 1218:   exec_list_validate(&shader->functions);
     1216:     1216: 1219:   foreach_list_typed(nir_function, func, node, &shader->functions) {
      608:      608: 1220:      validate_function(func, &state);
        -:        -: 1221:   }
        -:        -: 1222:
      608:      608: 1223:   foreach_list_typed(nir_register, reg, node, &shader->registers) {
    #####:    #####: 1224:      postvalidate_reg_decl(reg, &state);
        -:        -: 1225:   }
        -:        -: 1226:
      608:      608: 1227:   if (_mesa_hash_table_num_entries(state.errors) > 0)
    #####:    #####: 1228:      dump_errors(&state);
        -:        -: 1229:
      608:      608: 1230:   destroy_validate_state(&state);
        -:        -: 1231:}
        -:        -: 1232:
        -:        -: 1233:#endif /* NDEBUG */

src/compiler/nir_worklist.c.gcov

        -:        -:    0:Source:nir/nir_worklist.c
        -:        -:    0:Graph:nir/.libs/nir_worklist.gcno
        -:        -:    0:Data:nir/.libs/nir_worklist.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "nir_worklist.h"
        -:        -:   29:
        -:        -:   30:void
        6:        6:   31:nir_block_worklist_init(nir_block_worklist *w, unsigned num_blocks,
        -:        -:   32:                        void *mem_ctx)
        -:        -:   33:{
        6:        6:   34:   w->size = num_blocks;
        6:        6:   35:   w->count = 0;
        6:        6:   36:   w->start = 0;
        -:        -:   37:
        6:        6:   38:   w->blocks_present = rzalloc_array(mem_ctx, BITSET_WORD,
        -:        -:   39:                                     BITSET_WORDS(num_blocks));
        6:        6:   40:   w->blocks = rzalloc_array(mem_ctx, nir_block *, num_blocks);
        6:        6:   41:}
        -:        -:   42:
        -:        -:   43:void
        6:        6:   44:nir_block_worklist_fini(nir_block_worklist *w)
        -:        -:   45:{
        6:        6:   46:   ralloc_free(w->blocks_present);
        6:        6:   47:   ralloc_free(w->blocks);
        6:        6:   48:}
        -:        -:   49:
        -:        -:   50:void
    #####:    #####:   51:nir_block_worklist_add_all(nir_block_worklist *w, nir_function_impl *impl)
        -:        -:   52:{
    #####:    #####:   53:   nir_foreach_block(block, impl) {
    #####:    #####:   54:      nir_block_worklist_push_tail(w, block);
        -:        -:   55:   }
    #####:    #####:   56:}
        -:        -:   57:
        -:        -:   58:void
       67:       99:   59:nir_block_worklist_push_head(nir_block_worklist *w, nir_block *block)
        -:        -:   60:{
        -:        -:   61:   /* Pushing a block we already have is a no-op */
       67:       99:   62:   if (BITSET_TEST(w->blocks_present, block->index))
    #####:    #####:   63:      return;
        -:        -:   64:
       67:       99:   65:   assert(w->count < w->size);
        -:        -:   66:
       67:       99:   67:   if (w->start == 0)
        6:        6:   68:      w->start = w->size - 1;
        -:        -:   69:   else
       61:       93:   70:      w->start--;
        -:        -:   71:
       67:       99:   72:   w->count++;
        -:        -:   73:
       67:       99:   74:   w->blocks[w->start] = block;
       67:       99:   75:   BITSET_SET(w->blocks_present, block->index);
        -:        -:   76:}
        -:        -:   77:
        -:        -:   78:nir_block *
    #####:    #####:   79:nir_block_worklist_peek_head(const nir_block_worklist *w)
        -:        -:   80:{
    #####:    #####:   81:   assert(w->count > 0);
        -:        -:   82:
    #####:    #####:   83:   return w->blocks[w->start];
        -:        -:   84:}
        -:        -:   85:
        -:        -:   86:nir_block *
       91:      157:   87:nir_block_worklist_pop_head(nir_block_worklist *w)
        -:        -:   88:{
       91:      157:   89:   assert(w->count > 0);
        -:        -:   90:
       91:      157:   91:   unsigned head = w->start;
        -:        -:   92:
       91:      157:   93:   w->start = (w->start + 1) % w->size;
       91:      157:   94:   w->count--;
        -:        -:   95:
       91:      157:   96:   BITSET_CLEAR(w->blocks_present, w->blocks[head]->index);
       91:      157:   97:   return w->blocks[head];
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:void
       85:      147:  101:nir_block_worklist_push_tail(nir_block_worklist *w, nir_block *block)
        -:        -:  102:{
        -:        -:  103:   /* Pushing a block we already have is a no-op */
       85:      147:  104:   if (BITSET_TEST(w->blocks_present, block->index))
       61:       89:  105:      return;
        -:        -:  106:
       24:       58:  107:   assert(w->count < w->size);
        -:        -:  108:
       24:       58:  109:   w->count++;
        -:        -:  110:
       24:       58:  111:   unsigned tail = (w->start + w->count - 1) % w->size;
        -:        -:  112:
       24:       58:  113:   w->blocks[tail] = block;
       24:       58:  114:   BITSET_SET(w->blocks_present, block->index);
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:nir_block *
    #####:    #####:  118:nir_block_worklist_peek_tail(const nir_block_worklist *w)
        -:        -:  119:{
    #####:    #####:  120:   assert(w->count > 0);
        -:        -:  121:
    #####:    #####:  122:   unsigned tail = (w->start + w->count - 1) % w->size;
        -:        -:  123:
    #####:    #####:  124:   return w->blocks[tail];
        -:        -:  125:}
        -:        -:  126:
        -:        -:  127:nir_block *
    #####:    #####:  128:nir_block_worklist_pop_tail(nir_block_worklist *w)
        -:        -:  129:{
    #####:    #####:  130:   assert(w->count > 0);
        -:        -:  131:
    #####:    #####:  132:   unsigned tail = (w->start + w->count - 1) % w->size;
        -:        -:  133:
    #####:    #####:  134:   w->count--;
        -:        -:  135:
    #####:    #####:  136:   BITSET_CLEAR(w->blocks_present, w->blocks[tail]->index);
    #####:    #####:  137:   return w->blocks[tail];
        -:        -:  138:}

src/compiler/nir_worklist.h.gcov

        -:        -:    0:Source:nir/nir_worklist.h
        -:        -:    0:Graph:nir/.libs/nir_liveness.gcno
        -:        -:    0:Data:nir/.libs/nir_liveness.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:
        -:        -:   29:#ifndef _NIR_WORKLIST_
        -:        -:   30:#define _NIR_WORKLIST_
        -:        -:   31:
        -:        -:   32:#include "nir.h"
        -:        -:   33:
        -:        -:   34:#ifdef __cplusplus
        -:        -:   35:extern "C" {
        -:        -:   36:#endif
        -:        -:   37:
        -:        -:   38:/** Represents a double-ended queue of unique blocks
        -:        -:   39: *
        -:        -:   40: * The worklist datastructure guarantees that eacy block is in the queue at
        -:        -:   41: * most once.  Pushing a block onto either end of the queue is a no-op if
        -:        -:   42: * the block is already in the queue.  In order for this to work, the
        -:        -:   43: * caller must ensure that the blocks are properly indexed.
        -:        -:   44: */
        -:        -:   45:typedef struct {
        -:        -:   46:   /* The total size of the worklist */
        -:        -:   47:   unsigned size;
        -:        -:   48:
        -:        -:   49:   /* The number of blocks currently in the worklist */
        -:        -:   50:   unsigned count;
        -:        -:   51:
        -:        -:   52:   /* The offset in the array of blocks at which the list starts */
        -:        -:   53:   unsigned start;
        -:        -:   54:
        -:        -:   55:   /* A bitset of all of the blocks currently present in the worklist */
        -:        -:   56:   BITSET_WORD *blocks_present;
        -:        -:   57:
        -:        -:   58:   /* The actual worklist */
        -:        -:   59:   nir_block **blocks;
        -:        -:   60:} nir_block_worklist;
        -:        -:   61:
        -:        -:   62:void nir_block_worklist_init(nir_block_worklist *w, unsigned num_blocks,
        -:        -:   63:                             void *mem_ctx);
        -:        -:   64:void nir_block_worklist_fini(nir_block_worklist *w);
        -:        -:   65:
        -:        -:   66:void nir_block_worklist_add_all(nir_block_worklist *w, nir_function_impl *impl);
        -:        -:   67:
        -:        -:   68:static inline bool
       97:      163:   69:nir_block_worklist_is_empty(const nir_block_worklist *w)
        -:        -:   70:{
       97:      163:   71:   return w->count == 0;
        -:        -:   72:}
        -:        -:   73:
        -:        -:   74:void nir_block_worklist_push_head(nir_block_worklist *w, nir_block *block);
        -:        -:   75:
        -:        -:   76:nir_block *nir_block_worklist_peek_head(const nir_block_worklist *w);
        -:        -:   77:
        -:        -:   78:nir_block *nir_block_worklist_pop_head(nir_block_worklist *w);
        -:        -:   79:
        -:        -:   80:void nir_block_worklist_push_tail(nir_block_worklist *w, nir_block *block);
        -:        -:   81:
        -:        -:   82:nir_block *nir_block_worklist_peek_tail(const nir_block_worklist *w);
        -:        -:   83:
        -:        -:   84:nir_block *nir_block_worklist_pop_tail(nir_block_worklist *w);
        -:        -:   85:
        -:        -:   86:#ifdef __cplusplus
        -:        -:   87:} /* extern "C" */
        -:        -:   88:#endif
        -:        -:   89:
        -:        -:   90:#endif /* _NIR_WORKLIST_ */

src/compiler/opt_algebraic.cpp.gcov

        -:        -:    0:Source:glsl/opt_algebraic.cpp
        -:        -:    0:Graph:glsl/.libs/opt_algebraic.gcno
        -:        -:    0:Data:glsl/.libs/opt_algebraic.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_algebraic.cpp
        -:        -:   26: *
        -:        -:   27: * Takes advantage of association, commutivity, and other algebraic
        -:        -:   28: * properties to simplify expressions.
        -:        -:   29: */
        -:        -:   30:
        -:        -:   31:#include "ir.h"
        -:        -:   32:#include "ir_visitor.h"
        -:        -:   33:#include "ir_rvalue_visitor.h"
        -:        -:   34:#include "ir_optimization.h"
        -:        -:   35:#include "ir_builder.h"
        -:        -:   36:#include "compiler/glsl_types.h"
        -:        -:   37:
        -:        -:   38:using namespace ir_builder;
        -:        -:   39:
        -:        -:   40:namespace {
        -:        -:   41:
        -:        -:   42:/**
        -:        -:   43: * Visitor class for replacing expressions with ir_constant values.
        -:        -:   44: */
        -:        -:   45:
        -:        -:   46:class ir_algebraic_visitor : public ir_rvalue_visitor {
        -:        -:   47:public:
       18:       18:   48:   ir_algebraic_visitor(bool native_integers,
        -:        -:   49:                        const struct gl_shader_compiler_options *options)
       18:       18:   50:      : options(options)
        -:        -:   51:   {
       18:       18:   52:      this->progress = false;
       18:       18:   53:      this->mem_ctx = NULL;
       18:       18:   54:      this->native_integers = native_integers;
       18:       18:   55:   }
        -:        -:   56:
       18:       18:   57:   virtual ~ir_algebraic_visitor()
       18:       18:   58:   {
       18:       18:   59:   }
        -:        -:   60:
        -:        -:   61:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   62:
        -:        -:   63:   ir_rvalue *handle_expression(ir_expression *ir);
        -:        -:   64:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   65:   bool reassociate_constant(ir_expression *ir1,
        -:        -:   66:			     int const_index,
        -:        -:   67:			     ir_constant *constant,
        -:        -:   68:			     ir_expression *ir2);
        -:        -:   69:   void reassociate_operands(ir_expression *ir1,
        -:        -:   70:			     int op1,
        -:        -:   71:			     ir_expression *ir2,
        -:        -:   72:			     int op2);
        -:        -:   73:   ir_rvalue *swizzle_if_required(ir_expression *expr,
        -:        -:   74:				  ir_rvalue *operand);
        -:        -:   75:
        -:        -:   76:   const struct gl_shader_compiler_options *options;
        -:        -:   77:   void *mem_ctx;
        -:        -:   78:
        -:        -:   79:   bool native_integers;
        -:        -:   80:   bool progress;
        -:        -:   81:};
        -:        -:   82:
        -:        -:   83:} /* unnamed namespace */
        -:        -:   84:
        -:        -:   85:ir_visitor_status
      407:      407:   86:ir_algebraic_visitor::visit_enter(ir_assignment *ir)
        -:        -:   87:{
      407:      407:   88:   ir_variable *var = ir->lhs->variable_referenced();
      407:      407:   89:   if (var->data.invariant || var->data.precise) {
        -:        -:   90:      /* If we're assigning to an invariant or precise variable, just bail.
        -:        -:   91:       * Most of the algebraic optimizations aren't precision-safe.
        -:        -:   92:       *
        -:        -:   93:       * FINISHME: Find out which optimizations are precision-safe and enable
        -:        -:   94:       * then only for invariant or precise trees.
        -:        -:   95:       */
    #####:    #####:   96:      return visit_continue_with_parent;
        -:        -:   97:   } else {
      407:      407:   98:      return visit_continue;
        -:        -:   99:   }
        -:        -:  100:}
        -:        -:  101:
        -:        -:  102:static inline bool
      120:      120:  103:is_vec_zero(ir_constant *ir)
        -:        -:  104:{
      120:      120:  105:   return (ir == NULL) ? false : ir->is_zero();
        -:        -:  106:}
        -:        -:  107:
        -:        -:  108:static inline bool
       36:       36:  109:is_vec_one(ir_constant *ir)
        -:        -:  110:{
       36:       36:  111:   return (ir == NULL) ? false : ir->is_one();
        -:        -:  112:}
        -:        -:  113:
        -:        -:  114:static inline bool
    #####:    #####:  115:is_vec_two(ir_constant *ir)
        -:        -:  116:{
    #####:    #####:  117:   return (ir == NULL) ? false : ir->is_value(2.0, 2);
        -:        -:  118:}
        -:        -:  119:
        -:        -:  120:static inline bool
    #####:    #####:  121:is_vec_four(ir_constant *ir)
        -:        -:  122:{
    #####:    #####:  123:   return (ir == NULL) ? false : ir->is_value(4.0, 4);
        -:        -:  124:}
        -:        -:  125:
        -:        -:  126:static inline bool
       24:       24:  127:is_vec_negative_one(ir_constant *ir)
        -:        -:  128:{
       24:       24:  129:   return (ir == NULL) ? false : ir->is_negative_one();
        -:        -:  130:}
        -:        -:  131:
        -:        -:  132:static inline bool
    #####:    #####:  133:is_valid_vec_const(ir_constant *ir)
        -:        -:  134:{
    #####:    #####:  135:   if (ir == NULL)
    #####:    #####:  136:      return false;
        -:        -:  137:
    #####:    #####:  138:   if (!ir->type->is_scalar() && !ir->type->is_vector())
    #####:    #####:  139:      return false;
        -:        -:  140:
    #####:    #####:  141:   return true;
        -:        -:  142:}
        -:        -:  143:
        -:        -:  144:static inline bool
    #####:    #####:  145:is_less_than_one(ir_constant *ir)
        -:        -:  146:{
    #####:    #####:  147:   assert(ir->type->base_type == GLSL_TYPE_FLOAT);
        -:        -:  148:
    #####:    #####:  149:   if (!is_valid_vec_const(ir))
    #####:    #####:  150:      return false;
        -:        -:  151:
    #####:    #####:  152:   unsigned component = 0;
    #####:    #####:  153:   for (int c = 0; c < ir->type->vector_elements; c++) {
    #####:    #####:  154:      if (ir->get_float_component(c) < 1.0f)
    #####:    #####:  155:         component++;
        -:        -:  156:   }
        -:        -:  157:
    #####:    #####:  158:   return (component == ir->type->vector_elements);
        -:        -:  159:}
        -:        -:  160:
        -:        -:  161:static inline bool
    #####:    #####:  162:is_greater_than_zero(ir_constant *ir)
        -:        -:  163:{
    #####:    #####:  164:   assert(ir->type->base_type == GLSL_TYPE_FLOAT);
        -:        -:  165:
    #####:    #####:  166:   if (!is_valid_vec_const(ir))
    #####:    #####:  167:      return false;
        -:        -:  168:
    #####:    #####:  169:   unsigned component = 0;
    #####:    #####:  170:   for (int c = 0; c < ir->type->vector_elements; c++) {
    #####:    #####:  171:      if (ir->get_float_component(c) > 0.0f)
    #####:    #####:  172:         component++;
        -:        -:  173:   }
        -:        -:  174:
    #####:    #####:  175:   return (component == ir->type->vector_elements);
        -:        -:  176:}
        -:        -:  177:
        -:        -:  178:static void
    #####:    #####:  179:update_type(ir_expression *ir)
        -:        -:  180:{
    #####:    #####:  181:   if (ir->operands[0]->type->is_vector())
    #####:    #####:  182:      ir->type = ir->operands[0]->type;
        -:        -:  183:   else
    #####:    #####:  184:      ir->type = ir->operands[1]->type;
    #####:    #####:  185:}
        -:        -:  186:
        -:        -:  187:/* Recognize (v.x + v.y) + (v.z + v.w) as dot(v, 1.0) */
        -:        -:  188:static ir_expression *
    #####:    #####:  189:try_replace_with_dot(ir_expression *expr0, ir_expression *expr1, void *mem_ctx)
        -:        -:  190:{
    #####:    #####:  191:   if (expr0 && expr0->operation == ir_binop_add &&
    #####:    #####:  192:       expr0->type->is_float() &&
    #####:    #####:  193:       expr1 && expr1->operation == ir_binop_add &&
    #####:    #####:  194:       expr1->type->is_float()) {
    #####:    #####:  195:      ir_swizzle *x = expr0->operands[0]->as_swizzle();
    #####:    #####:  196:      ir_swizzle *y = expr0->operands[1]->as_swizzle();
    #####:    #####:  197:      ir_swizzle *z = expr1->operands[0]->as_swizzle();
    #####:    #####:  198:      ir_swizzle *w = expr1->operands[1]->as_swizzle();
        -:        -:  199:
    #####:    #####:  200:      if (!x || x->mask.num_components != 1 ||
    #####:    #####:  201:          !y || y->mask.num_components != 1 ||
    #####:    #####:  202:          !z || z->mask.num_components != 1 ||
    #####:    #####:  203:          !w || w->mask.num_components != 1) {
    #####:    #####:  204:         return NULL;
        -:        -:  205:      }
        -:        -:  206:
    #####:    #####:  207:      bool swiz_seen[4] = {false, false, false, false};
    #####:    #####:  208:      swiz_seen[x->mask.x] = true;
    #####:    #####:  209:      swiz_seen[y->mask.x] = true;
    #####:    #####:  210:      swiz_seen[z->mask.x] = true;
    #####:    #####:  211:      swiz_seen[w->mask.x] = true;
        -:        -:  212:
    #####:    #####:  213:      if (!swiz_seen[0] || !swiz_seen[1] ||
    #####:    #####:  214:          !swiz_seen[2] || !swiz_seen[3]) {
    #####:    #####:  215:         return NULL;
        -:        -:  216:      }
        -:        -:  217:
    #####:    #####:  218:      if (x->val->equals(y->val) &&
    #####:    #####:  219:          x->val->equals(z->val) &&
    #####:    #####:  220:          x->val->equals(w->val)) {
    #####:    #####:  221:         return dot(x->val, new(mem_ctx) ir_constant(1.0f, 4));
        -:        -:  222:      }
        -:        -:  223:   }
    #####:    #####:  224:   return NULL;
        -:        -:  225:}
        -:        -:  226:
        -:        -:  227:void
    #####:    #####:  228:ir_algebraic_visitor::reassociate_operands(ir_expression *ir1,
        -:        -:  229:					   int op1,
        -:        -:  230:					   ir_expression *ir2,
        -:        -:  231:					   int op2)
        -:        -:  232:{
    #####:    #####:  233:   ir_rvalue *temp = ir2->operands[op2];
    #####:    #####:  234:   ir2->operands[op2] = ir1->operands[op1];
    #####:    #####:  235:   ir1->operands[op1] = temp;
        -:        -:  236:
        -:        -:  237:   /* Update the type of ir2.  The type of ir1 won't have changed --
        -:        -:  238:    * base types matched, and at least one of the operands of the 2
        -:        -:  239:    * binops is still a vector if any of them were.
        -:        -:  240:    */
    #####:    #####:  241:   update_type(ir2);
        -:        -:  242:
    #####:    #####:  243:   this->progress = true;
    #####:    #####:  244:}
        -:        -:  245:
        -:        -:  246:/**
        -:        -:  247: * Reassociates a constant down a tree of adds or multiplies.
        -:        -:  248: *
        -:        -:  249: * Consider (2 * (a * (b * 0.5))).  We want to send up with a * b.
        -:        -:  250: */
        -:        -:  251:bool
       24:       24:  252:ir_algebraic_visitor::reassociate_constant(ir_expression *ir1, int const_index,
        -:        -:  253:					   ir_constant *constant,
        -:        -:  254:					   ir_expression *ir2)
        -:        -:  255:{
       24:       24:  256:   if (!ir2 || ir1->operation != ir2->operation)
       24:       24:  257:      return false;
        -:        -:  258:
        -:        -:  259:   /* Don't want to even think about matrices. */
    #####:    #####:  260:   if (ir1->operands[0]->type->is_matrix() ||
    #####:    #####:  261:       ir1->operands[1]->type->is_matrix() ||
    #####:    #####:  262:       ir2->operands[0]->type->is_matrix() ||
    #####:    #####:  263:       ir2->operands[1]->type->is_matrix())
    #####:    #####:  264:      return false;
        -:        -:  265:
        -:        -:  266:   ir_constant *ir2_const[2];
    #####:    #####:  267:   ir2_const[0] = ir2->operands[0]->constant_expression_value();
    #####:    #####:  268:   ir2_const[1] = ir2->operands[1]->constant_expression_value();
        -:        -:  269:
    #####:    #####:  270:   if (ir2_const[0] && ir2_const[1])
    #####:    #####:  271:      return false;
        -:        -:  272:
    #####:    #####:  273:   if (ir2_const[0]) {
    #####:    #####:  274:      reassociate_operands(ir1, const_index, ir2, 1);
    #####:    #####:  275:      return true;
    #####:    #####:  276:   } else if (ir2_const[1]) {
    #####:    #####:  277:      reassociate_operands(ir1, const_index, ir2, 0);
    #####:    #####:  278:      return true;
        -:        -:  279:   }
        -:        -:  280:
    #####:    #####:  281:   if (reassociate_constant(ir1, const_index, constant,
    #####:    #####:  282:			    ir2->operands[0]->as_expression())) {
    #####:    #####:  283:      update_type(ir2);
    #####:    #####:  284:      return true;
        -:        -:  285:   }
        -:        -:  286:
    #####:    #####:  287:   if (reassociate_constant(ir1, const_index, constant,
    #####:    #####:  288:			    ir2->operands[1]->as_expression())) {
    #####:    #####:  289:      update_type(ir2);
    #####:    #####:  290:      return true;
        -:        -:  291:   }
        -:        -:  292:
    #####:    #####:  293:   return false;
        -:        -:  294:}
        -:        -:  295:
        -:        -:  296:/* When eliminating an expression and just returning one of its operands,
        -:        -:  297: * we may need to swizzle that operand out to a vector if the expression was
        -:        -:  298: * vector type.
        -:        -:  299: */
        -:        -:  300:ir_rvalue *
        2:        3:  301:ir_algebraic_visitor::swizzle_if_required(ir_expression *expr,
        -:        -:  302:					  ir_rvalue *operand)
        -:        -:  303:{
        2:        3:  304:   if (expr->type->is_vector() && operand->type->is_scalar()) {
        -:        -:  305:      return new(mem_ctx) ir_swizzle(operand, 0, 0, 0, 0,
    #####:    #####:  306:				     expr->type->vector_elements);
        -:        -:  307:   } else
        2:        3:  308:      return operand;
        -:        -:  309:}
        -:        -:  310:
        -:        -:  311:ir_rvalue *
      263:      279:  312:ir_algebraic_visitor::handle_expression(ir_expression *ir)
        -:        -:  313:{
      263:      279:  314:   ir_constant *op_const[4] = {NULL, NULL, NULL, NULL};
      263:      279:  315:   ir_expression *op_expr[4] = {NULL, NULL, NULL, NULL};
        -:        -:  316:   unsigned int i;
        -:        -:  317:
      538:      570:  318:   if (ir->operation == ir_binop_mul &&
      263:      279:  319:       ir->operands[0]->type->is_matrix() &&
    #####:    #####:  320:       ir->operands[1]->type->is_vector()) {
    #####:    #####:  321:      ir_expression *matrix_mul = ir->operands[0]->as_expression();
        -:        -:  322:
    #####:    #####:  323:      if (matrix_mul && matrix_mul->operation == ir_binop_mul &&
    #####:    #####:  324:         matrix_mul->operands[0]->type->is_matrix() &&
    #####:    #####:  325:         matrix_mul->operands[1]->type->is_matrix()) {
        -:        -:  326:
    #####:    #####:  327:         return mul(matrix_mul->operands[0],
    #####:    #####:  328:                    mul(matrix_mul->operands[1], ir->operands[1]));
        -:        -:  329:      }
        -:        -:  330:   }
        -:        -:  331:
      263:      279:  332:   assert(ir->get_num_operands() <= 4);
      745:      792:  333:   for (i = 0; i < ir->get_num_operands(); i++) {
      482:      513:  334:      if (ir->operands[i]->type->is_matrix())
    #####:    #####:  335:	 return ir;
        -:        -:  336:
      482:      513:  337:      op_const[i] = ir->operands[i]->constant_expression_value();
      482:      513:  338:      op_expr[i] = ir->operands[i]->as_expression();
        -:        -:  339:   }
        -:        -:  340:
      263:      279:  341:   if (this->mem_ctx == NULL)
        9:        9:  342:      this->mem_ctx = ralloc_parent(ir);
        -:        -:  343:
      263:      279:  344:   switch (ir->operation) {
        -:        -:  345:   case ir_unop_bit_not:
    #####:    #####:  346:      if (op_expr[0] && op_expr[0]->operation == ir_unop_bit_not)
    #####:    #####:  347:         return op_expr[0]->operands[0];
    #####:    #####:  348:      break;
        -:        -:  349:
        -:        -:  350:   case ir_unop_abs:
    #####:    #####:  351:      if (op_expr[0] == NULL)
    #####:    #####:  352:	 break;
        -:        -:  353:
    #####:    #####:  354:      switch (op_expr[0]->operation) {
        -:        -:  355:      case ir_unop_abs:
        -:        -:  356:      case ir_unop_neg:
    #####:    #####:  357:         return abs(op_expr[0]->operands[0]);
        -:        -:  358:      default:
    #####:    #####:  359:         break;
        -:        -:  360:      }
    #####:    #####:  361:      break;
        -:        -:  362:
        -:        -:  363:   case ir_unop_neg:
    #####:    #####:  364:      if (op_expr[0] == NULL)
    #####:    #####:  365:	 break;
        -:        -:  366:
    #####:    #####:  367:      if (op_expr[0]->operation == ir_unop_neg) {
    #####:    #####:  368:         return op_expr[0]->operands[0];
        -:        -:  369:      }
    #####:    #####:  370:      break;
        -:        -:  371:
        -:        -:  372:   case ir_unop_exp:
    #####:    #####:  373:      if (op_expr[0] == NULL)
    #####:    #####:  374:	 break;
        -:        -:  375:
    #####:    #####:  376:      if (op_expr[0]->operation == ir_unop_log) {
    #####:    #####:  377:         return op_expr[0]->operands[0];
        -:        -:  378:      }
    #####:    #####:  379:      break;
        -:        -:  380:
        -:        -:  381:   case ir_unop_log:
    #####:    #####:  382:      if (op_expr[0] == NULL)
    #####:    #####:  383:	 break;
        -:        -:  384:
    #####:    #####:  385:      if (op_expr[0]->operation == ir_unop_exp) {
    #####:    #####:  386:         return op_expr[0]->operands[0];
        -:        -:  387:      }
    #####:    #####:  388:      break;
        -:        -:  389:
        -:        -:  390:   case ir_unop_exp2:
    #####:    #####:  391:      if (op_expr[0] == NULL)
    #####:    #####:  392:	 break;
        -:        -:  393:
    #####:    #####:  394:      if (op_expr[0]->operation == ir_unop_log2) {
    #####:    #####:  395:         return op_expr[0]->operands[0];
        -:        -:  396:      }
        -:        -:  397:
    #####:    #####:  398:      if (!options->EmitNoPow && op_expr[0]->operation == ir_binop_mul) {
    #####:    #####:  399:         for (int log2_pos = 0; log2_pos < 2; log2_pos++) {
        -:        -:  400:            ir_expression *log2_expr =
    #####:    #####:  401:               op_expr[0]->operands[log2_pos]->as_expression();
        -:        -:  402:
    #####:    #####:  403:            if (log2_expr && log2_expr->operation == ir_unop_log2) {
        -:        -:  404:               return new(mem_ctx) ir_expression(ir_binop_pow,
        -:        -:  405:                                                 ir->type,
        -:        -:  406:                                                 log2_expr->operands[0],
    #####:    #####:  407:                                                 op_expr[0]->operands[1 - log2_pos]);
        -:        -:  408:            }
        -:        -:  409:         }
        -:        -:  410:      }
    #####:    #####:  411:      break;
        -:        -:  412:
        -:        -:  413:   case ir_unop_log2:
    #####:    #####:  414:      if (op_expr[0] == NULL)
    #####:    #####:  415:	 break;
        -:        -:  416:
    #####:    #####:  417:      if (op_expr[0]->operation == ir_unop_exp2) {
    #####:    #####:  418:         return op_expr[0]->operands[0];
        -:        -:  419:      }
    #####:    #####:  420:      break;
        -:        -:  421:
        -:        -:  422:   case ir_unop_f2i:
        -:        -:  423:   case ir_unop_f2u:
    #####:    #####:  424:      if (op_expr[0] && op_expr[0]->operation == ir_unop_trunc) {
    #####:    #####:  425:         return new(mem_ctx) ir_expression(ir->operation,
        -:        -:  426:                                           ir->type,
    #####:    #####:  427:                                           op_expr[0]->operands[0]);
        -:        -:  428:      }
    #####:    #####:  429:      break;
        -:        -:  430:
        -:        -:  431:   case ir_unop_logic_not: {
        2:        3:  432:      enum ir_expression_operation new_op = ir_unop_logic_not;
        -:        -:  433:
        2:        3:  434:      if (op_expr[0] == NULL)
    #####:    #####:  435:	 break;
        -:        -:  436:
        2:        3:  437:      switch (op_expr[0]->operation) {
        2:        3:  438:      case ir_binop_less:    new_op = ir_binop_gequal;  break;
    #####:    #####:  439:      case ir_binop_greater: new_op = ir_binop_lequal;  break;
    #####:    #####:  440:      case ir_binop_lequal:  new_op = ir_binop_greater; break;
    #####:    #####:  441:      case ir_binop_gequal:  new_op = ir_binop_less;    break;
    #####:    #####:  442:      case ir_binop_equal:   new_op = ir_binop_nequal;  break;
    #####:    #####:  443:      case ir_binop_nequal:  new_op = ir_binop_equal;   break;
    #####:    #####:  444:      case ir_binop_all_equal:   new_op = ir_binop_any_nequal;  break;
    #####:    #####:  445:      case ir_binop_any_nequal:  new_op = ir_binop_all_equal;   break;
        -:        -:  446:
        -:        -:  447:      default:
        -:        -:  448:	 /* The default case handler is here to silence a warning from GCC.
        -:        -:  449:	  */
    #####:    #####:  450:	 break;
        -:        -:  451:      }
        -:        -:  452:
        2:        3:  453:      if (new_op != ir_unop_logic_not) {
        -:        -:  454:	 return new(mem_ctx) ir_expression(new_op,
        -:        -:  455:					   ir->type,
        2:        3:  456:					   op_expr[0]->operands[0],
        4:        6:  457:					   op_expr[0]->operands[1]);
        -:        -:  458:      }
        -:        -:  459:
    #####:    #####:  460:      break;
        -:        -:  461:   }
        -:        -:  462:
        -:        -:  463:   case ir_unop_saturate:
    #####:    #####:  464:      if (op_expr[0] && op_expr[0]->operation == ir_binop_add) {
    #####:    #####:  465:         ir_expression *b2f_0 = op_expr[0]->operands[0]->as_expression();
    #####:    #####:  466:         ir_expression *b2f_1 = op_expr[0]->operands[1]->as_expression();
        -:        -:  467:
    #####:    #####:  468:         if (b2f_0 && b2f_0->operation == ir_unop_b2f &&
    #####:    #####:  469:             b2f_1 && b2f_1->operation == ir_unop_b2f) {
    #####:    #####:  470:            return b2f(logic_or(b2f_0->operands[0], b2f_1->operands[0]));
        -:        -:  471:         }
        -:        -:  472:      }
    #####:    #####:  473:      break;
        -:        -:  474:
        -:        -:  475:      /* This macro CANNOT use the do { } while(true) mechanism because
        -:        -:  476:       * then the breaks apply to the loop instead of the switch!
        -:        -:  477:       */
        -:        -:  478:#define HANDLE_PACK_UNPACK_INVERSE(inverse_operation)                   \
        -:        -:  479:      {                                                                 \
        -:        -:  480:         ir_expression *const op = ir->operands[0]->as_expression();    \
        -:        -:  481:         if (op == NULL)                                                \
        -:        -:  482:            break;                                                      \
        -:        -:  483:         if (op->operation == (inverse_operation))                      \
        -:        -:  484:            return op->operands[0];                                     \
        -:        -:  485:         break;                                                         \
        -:        -:  486:      }
        -:        -:  487:
        -:        -:  488:   case ir_unop_unpack_uint_2x32:
    #####:    #####:  489:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_pack_uint_2x32);
        -:        -:  490:   case ir_unop_pack_uint_2x32:
    #####:    #####:  491:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_unpack_uint_2x32);
        -:        -:  492:   case ir_unop_unpack_int_2x32:
    #####:    #####:  493:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_pack_int_2x32);
        -:        -:  494:   case ir_unop_pack_int_2x32:
    #####:    #####:  495:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_unpack_int_2x32);
        -:        -:  496:   case ir_unop_unpack_double_2x32:
    #####:    #####:  497:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_pack_double_2x32);
        -:        -:  498:   case ir_unop_pack_double_2x32:
    #####:    #####:  499:      HANDLE_PACK_UNPACK_INVERSE(ir_unop_unpack_double_2x32);
        -:        -:  500:
        -:        -:  501:#undef HANDLE_PACK_UNPACK_INVERSE
        -:        -:  502:
        -:        -:  503:   case ir_binop_add:
       48:       48:  504:      if (is_vec_zero(op_const[0]))
    #####:    #####:  505:	 return ir->operands[1];
       48:       48:  506:      if (is_vec_zero(op_const[1]))
    #####:    #####:  507:	 return ir->operands[0];
        -:        -:  508:
        -:        -:  509:      /* Reassociate addition of constants so that we can do constant
        -:        -:  510:       * folding.
        -:        -:  511:       */
       48:       48:  512:      if (op_const[0] && !op_const[1])
    #####:    #####:  513:	 reassociate_constant(ir, 0, op_const[0], op_expr[1]);
       48:       48:  514:      if (op_const[1] && !op_const[0])
       24:       24:  515:	 reassociate_constant(ir, 1, op_const[1], op_expr[0]);
        -:        -:  516:
        -:        -:  517:      /* Recognize (v.x + v.y) + (v.z + v.w) as dot(v, 1.0) */
       48:       48:  518:      if (options->OptimizeForAOS) {
    #####:    #####:  519:         ir_expression *expr = try_replace_with_dot(op_expr[0], op_expr[1],
    #####:    #####:  520:                                                    mem_ctx);
    #####:    #####:  521:         if (expr)
    #####:    #####:  522:            return expr;
        -:        -:  523:      }
        -:        -:  524:
        -:        -:  525:      /* Replace (-x + y) * a + x and commutative variations with lrp(x, y, a).
        -:        -:  526:       *
        -:        -:  527:       * (-x + y) * a + x
        -:        -:  528:       * (x * -a) + (y * a) + x
        -:        -:  529:       * x + (x * -a) + (y * a)
        -:        -:  530:       * x * (1 - a) + y * a
        -:        -:  531:       * lrp(x, y, a)
        -:        -:  532:       */
      144:      144:  533:      for (int mul_pos = 0; mul_pos < 2; mul_pos++) {
       96:       96:  534:         ir_expression *mul = op_expr[mul_pos];
        -:        -:  535:
       96:       96:  536:         if (!mul || mul->operation != ir_binop_mul)
       96:       96:  537:            continue;
        -:        -:  538:
        -:        -:  539:         /* Multiply found on one of the operands. Now check for an
        -:        -:  540:          * inner addition operation.
        -:        -:  541:          */
    #####:    #####:  542:         for (int inner_add_pos = 0; inner_add_pos < 2; inner_add_pos++) {
        -:        -:  543:            ir_expression *inner_add =
    #####:    #####:  544:               mul->operands[inner_add_pos]->as_expression();
        -:        -:  545:
    #####:    #####:  546:            if (!inner_add || inner_add->operation != ir_binop_add)
    #####:    #####:  547:               continue;
        -:        -:  548:
        -:        -:  549:            /* Inner addition found on one of the operands. Now check for
        -:        -:  550:             * one of the operands of the inner addition to be the negative
        -:        -:  551:             * of x_operand.
        -:        -:  552:             */
    #####:    #####:  553:            for (int neg_pos = 0; neg_pos < 2; neg_pos++) {
        -:        -:  554:               ir_expression *neg =
    #####:    #####:  555:                  inner_add->operands[neg_pos]->as_expression();
        -:        -:  556:
    #####:    #####:  557:               if (!neg || neg->operation != ir_unop_neg)
    #####:    #####:  558:                  continue;
        -:        -:  559:
    #####:    #####:  560:               ir_rvalue *x_operand = ir->operands[1 - mul_pos];
        -:        -:  561:
    #####:    #####:  562:               if (!neg->operands[0]->equals(x_operand))
    #####:    #####:  563:                  continue;
        -:        -:  564:
    #####:    #####:  565:               ir_rvalue *y_operand = inner_add->operands[1 - neg_pos];
    #####:    #####:  566:               ir_rvalue *a_operand = mul->operands[1 - inner_add_pos];
        -:        -:  567:
    #####:    #####:  568:               if (x_operand->type != y_operand->type ||
    #####:    #####:  569:                   x_operand->type != a_operand->type)
    #####:    #####:  570:                  continue;
        -:        -:  571:
    #####:    #####:  572:               return lrp(x_operand, y_operand, a_operand);
        -:        -:  573:            }
        -:        -:  574:         }
        -:        -:  575:      }
        -:        -:  576:
       48:       48:  577:      break;
        -:        -:  578:
        -:        -:  579:   case ir_binop_sub:
    #####:    #####:  580:      if (is_vec_zero(op_const[0]))
    #####:    #####:  581:	 return neg(ir->operands[1]);
    #####:    #####:  582:      if (is_vec_zero(op_const[1]))
    #####:    #####:  583:	 return ir->operands[0];
    #####:    #####:  584:      break;
        -:        -:  585:
        -:        -:  586:   case ir_binop_mul:
       12:       12:  587:      if (is_vec_one(op_const[0]))
    #####:    #####:  588:	 return ir->operands[1];
       12:       12:  589:      if (is_vec_one(op_const[1]))
    #####:    #####:  590:	 return ir->operands[0];
        -:        -:  591:
       12:       12:  592:      if (is_vec_zero(op_const[0]) || is_vec_zero(op_const[1]))
    #####:    #####:  593:	 return ir_constant::zero(ir, ir->type);
        -:        -:  594:
       12:       12:  595:      if (is_vec_negative_one(op_const[0]))
    #####:    #####:  596:         return neg(ir->operands[1]);
       12:       12:  597:      if (is_vec_negative_one(op_const[1]))
    #####:    #####:  598:         return neg(ir->operands[0]);
        -:        -:  599:
       12:       12:  600:      if (op_expr[0] && op_expr[0]->operation == ir_unop_b2f &&
    #####:    #####:  601:          op_expr[1] && op_expr[1]->operation == ir_unop_b2f) {
    #####:    #####:  602:         return b2f(logic_and(op_expr[0]->operands[0], op_expr[1]->operands[0]));
        -:        -:  603:      }
        -:        -:  604:
        -:        -:  605:      /* Reassociate multiplication of constants so that we can do
        -:        -:  606:       * constant folding.
        -:        -:  607:       */
       12:       12:  608:      if (op_const[0] && !op_const[1])
    #####:    #####:  609:	 reassociate_constant(ir, 0, op_const[0], op_expr[1]);
       12:       12:  610:      if (op_const[1] && !op_const[0])
    #####:    #####:  611:	 reassociate_constant(ir, 1, op_const[1], op_expr[0]);
        -:        -:  612:
        -:        -:  613:      /* Optimizes
        -:        -:  614:       *
        -:        -:  615:       *    (mul (floor (add (abs x) 0.5) (sign x)))
        -:        -:  616:       *
        -:        -:  617:       * into
        -:        -:  618:       *
        -:        -:  619:       *    (trunc (add x (mul (sign x) 0.5)))
        -:        -:  620:       */
       36:       36:  621:      for (int i = 0; i < 2; i++) {
       24:       24:  622:         ir_expression *sign_expr = ir->operands[i]->as_expression();
       24:       24:  623:         ir_expression *floor_expr = ir->operands[1 - i]->as_expression();
        -:        -:  624:
       24:       24:  625:         if (!sign_expr || sign_expr->operation != ir_unop_sign ||
    #####:    #####:  626:             !floor_expr || floor_expr->operation != ir_unop_floor)
       24:       24:  627:            continue;
        -:        -:  628:
    #####:    #####:  629:         ir_expression *add_expr = floor_expr->operands[0]->as_expression();
    #####:    #####:  630:         if (!add_expr || add_expr->operation != ir_binop_add)
    #####:    #####:  631:            continue;
        -:        -:  632:
    #####:    #####:  633:         for (int j = 0; j < 2; j++) {
    #####:    #####:  634:            ir_expression *abs_expr = add_expr->operands[j]->as_expression();
    #####:    #####:  635:            if (!abs_expr || abs_expr->operation != ir_unop_abs)
    #####:    #####:  636:               continue;
        -:        -:  637:
    #####:    #####:  638:            ir_constant *point_five = add_expr->operands[1 - j]->as_constant();
    #####:    #####:  639:            if (!point_five || !point_five->is_value(0.5, 0))
    #####:    #####:  640:               continue;
        -:        -:  641:
    #####:    #####:  642:            if (abs_expr->operands[0]->equals(sign_expr->operands[0])) {
    #####:    #####:  643:               return trunc(add(abs_expr->operands[0],
    #####:    #####:  644:                                mul(sign_expr, point_five)));
        -:        -:  645:            }
        -:        -:  646:         }
        -:        -:  647:      }
       12:       12:  648:      break;
        -:        -:  649:
        -:        -:  650:   case ir_binop_div:
        6:        6:  651:      if (is_vec_one(op_const[0]) && (
    #####:    #####:  652:                ir->type->base_type == GLSL_TYPE_FLOAT ||
    #####:    #####:  653:                ir->type->base_type == GLSL_TYPE_DOUBLE)) {
        -:        -:  654:	 return new(mem_ctx) ir_expression(ir_unop_rcp,
    #####:    #####:  655:					   ir->operands[1]->type,
        -:        -:  656:					   ir->operands[1],
    #####:    #####:  657:					   NULL);
        -:        -:  658:      }
        6:        6:  659:      if (is_vec_one(op_const[1]))
    #####:    #####:  660:	 return ir->operands[0];
        6:        6:  661:      break;
        -:        -:  662:
        -:        -:  663:   case ir_binop_dot:
    #####:    #####:  664:      if (is_vec_zero(op_const[0]) || is_vec_zero(op_const[1]))
    #####:    #####:  665:	 return ir_constant::zero(mem_ctx, ir->type);
        -:        -:  666:
    #####:    #####:  667:      for (int i = 0; i < 2; i++) {
    #####:    #####:  668:         if (!op_const[i])
    #####:    #####:  669:            continue;
        -:        -:  670:
    #####:    #####:  671:         unsigned components[4] = { 0 }, count = 0;
        -:        -:  672:
    #####:    #####:  673:         for (unsigned c = 0; c < op_const[i]->type->vector_elements; c++) {
    #####:    #####:  674:            if (op_const[i]->is_zero())
    #####:    #####:  675:               continue;
        -:        -:  676:
    #####:    #####:  677:            components[count] = c;
    #####:    #####:  678:            count++;
        -:        -:  679:         }
        -:        -:  680:
        -:        -:  681:         /* No channels had zero values; bail. */
    #####:    #####:  682:         if (count >= op_const[i]->type->vector_elements)
    #####:    #####:  683:            break;
        -:        -:  684:
        -:        -:  685:         ir_expression_operation op = count == 1 ?
    #####:    #####:  686:            ir_binop_mul : ir_binop_dot;
        -:        -:  687:
        -:        -:  688:         /* Swizzle both operands to remove the channels that were zero. */
        -:        -:  689:         return new(mem_ctx)
        -:        -:  690:            ir_expression(op, ir->type,
        -:        -:  691:                          new(mem_ctx) ir_swizzle(ir->operands[0],
    #####:    #####:  692:                                                  components, count),
        -:        -:  693:                          new(mem_ctx) ir_swizzle(ir->operands[1],
    #####:    #####:  694:                                                  components, count));
        -:        -:  695:      }
    #####:    #####:  696:      break;
        -:        -:  697:
        -:        -:  698:   case ir_binop_less:
        -:        -:  699:   case ir_binop_lequal:
        -:        -:  700:   case ir_binop_greater:
        -:        -:  701:   case ir_binop_gequal:
        -:        -:  702:   case ir_binop_equal:
        -:        -:  703:   case ir_binop_nequal:
      333:      378:  704:      for (int add_pos = 0; add_pos < 2; add_pos++) {
      222:      252:  705:         ir_expression *add = op_expr[add_pos];
        -:        -:  706:
      222:      252:  707:         if (!add || add->operation != ir_binop_add)
      222:      252:  708:            continue;
        -:        -:  709:
    #####:    #####:  710:         ir_constant *zero = op_const[1 - add_pos];
    #####:    #####:  711:         if (!is_vec_zero(zero))
    #####:    #####:  712:            continue;
        -:        -:  713:
        -:        -:  714:         /* Depending of the zero position we want to optimize
        -:        -:  715:          * (0 cmp x+y) into (-x cmp y) or (x+y cmp 0) into (x cmp -y)
        -:        -:  716:          */
    #####:    #####:  717:         if (add_pos == 1) {
    #####:    #####:  718:            return new(mem_ctx) ir_expression(ir->operation,
    #####:    #####:  719:                                              neg(add->operands[0]),
    #####:    #####:  720:                                              add->operands[1]);
        -:        -:  721:         } else {
    #####:    #####:  722:            return new(mem_ctx) ir_expression(ir->operation,
        -:        -:  723:                                              add->operands[0],
    #####:    #####:  724:                                              neg(add->operands[1]));
        -:        -:  725:         }
        -:        -:  726:      }
      111:      126:  727:      break;
        -:        -:  728:
        -:        -:  729:   case ir_binop_all_equal:
        -:        -:  730:   case ir_binop_any_nequal:
    #####:    #####:  731:      if (ir->operands[0]->type->is_scalar() &&
    #####:    #####:  732:          ir->operands[1]->type->is_scalar())
    #####:    #####:  733:         return new(mem_ctx) ir_expression(ir->operation == ir_binop_all_equal
        -:        -:  734:                                           ? ir_binop_equal : ir_binop_nequal,
        -:        -:  735:                                           ir->operands[0],
    #####:    #####:  736:                                           ir->operands[1]);
    #####:    #####:  737:      break;
        -:        -:  738:
        -:        -:  739:   case ir_binop_rshift:
        -:        -:  740:   case ir_binop_lshift:
        -:        -:  741:      /* 0 >> x == 0 */
    #####:    #####:  742:      if (is_vec_zero(op_const[0]))
    #####:    #####:  743:         return ir->operands[0];
        -:        -:  744:      /* x >> 0 == x */
    #####:    #####:  745:      if (is_vec_zero(op_const[1]))
    #####:    #####:  746:         return ir->operands[0];
    #####:    #####:  747:      break;
        -:        -:  748:
        -:        -:  749:   case ir_binop_logic_and:
    #####:    #####:  750:      if (is_vec_one(op_const[0])) {
    #####:    #####:  751:	 return ir->operands[1];
    #####:    #####:  752:      } else if (is_vec_one(op_const[1])) {
    #####:    #####:  753:	 return ir->operands[0];
    #####:    #####:  754:      } else if (is_vec_zero(op_const[0]) || is_vec_zero(op_const[1])) {
    #####:    #####:  755:	 return ir_constant::zero(mem_ctx, ir->type);
    #####:    #####:  756:      } else if (op_expr[0] && op_expr[0]->operation == ir_unop_logic_not &&
    #####:    #####:  757:                 op_expr[1] && op_expr[1]->operation == ir_unop_logic_not) {
        -:        -:  758:         /* De Morgan's Law:
        -:        -:  759:          *    (not A) and (not B) === not (A or B)
        -:        -:  760:          */
    #####:    #####:  761:         return logic_not(logic_or(op_expr[0]->operands[0],
    #####:    #####:  762:                                   op_expr[1]->operands[0]));
    #####:    #####:  763:      } else if (ir->operands[0]->equals(ir->operands[1])) {
        -:        -:  764:         /* (a && a) == a */
    #####:    #####:  765:         return ir->operands[0];
        -:        -:  766:      }
    #####:    #####:  767:      break;
        -:        -:  768:
        -:        -:  769:   case ir_binop_logic_xor:
    #####:    #####:  770:      if (is_vec_zero(op_const[0])) {
    #####:    #####:  771:	 return ir->operands[1];
    #####:    #####:  772:      } else if (is_vec_zero(op_const[1])) {
    #####:    #####:  773:	 return ir->operands[0];
    #####:    #####:  774:      } else if (is_vec_one(op_const[0])) {
    #####:    #####:  775:	 return logic_not(ir->operands[1]);
    #####:    #####:  776:      } else if (is_vec_one(op_const[1])) {
    #####:    #####:  777:	 return logic_not(ir->operands[0]);
    #####:    #####:  778:      } else if (ir->operands[0]->equals(ir->operands[1])) {
        -:        -:  779:         /* (a ^^ a) == false */
    #####:    #####:  780:	 return ir_constant::zero(mem_ctx, ir->type);
        -:        -:  781:      }
    #####:    #####:  782:      break;
        -:        -:  783:
        -:        -:  784:   case ir_binop_logic_or:
    #####:    #####:  785:      if (is_vec_zero(op_const[0])) {
    #####:    #####:  786:	 return ir->operands[1];
    #####:    #####:  787:      } else if (is_vec_zero(op_const[1])) {
    #####:    #####:  788:	 return ir->operands[0];
    #####:    #####:  789:      } else if (is_vec_one(op_const[0]) || is_vec_one(op_const[1])) {
        -:        -:  790:	 ir_constant_data data;
        -:        -:  791:
    #####:    #####:  792:	 for (unsigned i = 0; i < 16; i++)
    #####:    #####:  793:	    data.b[i] = true;
        -:        -:  794:
    #####:    #####:  795:	 return new(mem_ctx) ir_constant(ir->type, &data);
    #####:    #####:  796:      } else if (op_expr[0] && op_expr[0]->operation == ir_unop_logic_not &&
    #####:    #####:  797:                 op_expr[1] && op_expr[1]->operation == ir_unop_logic_not) {
        -:        -:  798:         /* De Morgan's Law:
        -:        -:  799:          *    (not A) or (not B) === not (A and B)
        -:        -:  800:          */
    #####:    #####:  801:         return logic_not(logic_and(op_expr[0]->operands[0],
    #####:    #####:  802:                                    op_expr[1]->operands[0]));
    #####:    #####:  803:      } else if (ir->operands[0]->equals(ir->operands[1])) {
        -:        -:  804:         /* (a || a) == a */
    #####:    #####:  805:         return ir->operands[0];
        -:        -:  806:      }
    #####:    #####:  807:      break;
        -:        -:  808:
        -:        -:  809:   case ir_binop_pow:
        -:        -:  810:      /* 1^x == 1 */
    #####:    #####:  811:      if (is_vec_one(op_const[0]))
    #####:    #####:  812:         return op_const[0];
        -:        -:  813:
        -:        -:  814:      /* x^1 == x */
    #####:    #####:  815:      if (is_vec_one(op_const[1]))
    #####:    #####:  816:         return ir->operands[0];
        -:        -:  817:
        -:        -:  818:      /* pow(2,x) == exp2(x) */
    #####:    #####:  819:      if (is_vec_two(op_const[0]))
    #####:    #####:  820:         return expr(ir_unop_exp2, ir->operands[1]);
        -:        -:  821:
    #####:    #####:  822:      if (is_vec_two(op_const[1])) {
    #####:    #####:  823:         ir_variable *x = new(ir) ir_variable(ir->operands[1]->type, "x",
    #####:    #####:  824:                                              ir_var_temporary);
    #####:    #####:  825:         base_ir->insert_before(x);
    #####:    #####:  826:         base_ir->insert_before(assign(x, ir->operands[0]));
    #####:    #####:  827:         return mul(x, x);
        -:        -:  828:      }
        -:        -:  829:
    #####:    #####:  830:      if (is_vec_four(op_const[1])) {
    #####:    #####:  831:         ir_variable *x = new(ir) ir_variable(ir->operands[1]->type, "x",
    #####:    #####:  832:                                              ir_var_temporary);
    #####:    #####:  833:         base_ir->insert_before(x);
    #####:    #####:  834:         base_ir->insert_before(assign(x, ir->operands[0]));
        -:        -:  835:
    #####:    #####:  836:         ir_variable *squared = new(ir) ir_variable(ir->operands[1]->type,
        -:        -:  837:                                                    "squared",
    #####:    #####:  838:                                                    ir_var_temporary);
    #####:    #####:  839:         base_ir->insert_before(squared);
    #####:    #####:  840:         base_ir->insert_before(assign(squared, mul(x, x)));
    #####:    #####:  841:         return mul(squared, squared);
        -:        -:  842:      }
        -:        -:  843:
    #####:    #####:  844:      break;
        -:        -:  845:
        -:        -:  846:   case ir_binop_min:
        -:        -:  847:   case ir_binop_max:
    #####:    #####:  848:      if (ir->type->base_type != GLSL_TYPE_FLOAT || options->EmitNoSat)
        -:        -:  849:         break;
        -:        -:  850:
        -:        -:  851:      /* Replace min(max) operations and its commutative combinations with
        -:        -:  852:       * a saturate operation
        -:        -:  853:       */
    #####:    #####:  854:      for (int op = 0; op < 2; op++) {
    #####:    #####:  855:         ir_expression *inner_expr = op_expr[op];
    #####:    #####:  856:         ir_constant *outer_const = op_const[1 - op];
    #####:    #####:  857:         ir_expression_operation op_cond = (ir->operation == ir_binop_max) ?
    #####:    #####:  858:            ir_binop_min : ir_binop_max;
        -:        -:  859:
    #####:    #####:  860:         if (!inner_expr || !outer_const || (inner_expr->operation != op_cond))
    #####:    #####:  861:            continue;
        -:        -:  862:
        -:        -:  863:         /* One of these has to be a constant */
    #####:    #####:  864:         if (!inner_expr->operands[0]->as_constant() &&
    #####:    #####:  865:             !inner_expr->operands[1]->as_constant())
    #####:    #####:  866:            break;
        -:        -:  867:
        -:        -:  868:         /* Found a min(max) combination. Now try to see if its operands
        -:        -:  869:          * meet our conditions that we can do just a single saturate operation
        -:        -:  870:          */
    #####:    #####:  871:         for (int minmax_op = 0; minmax_op < 2; minmax_op++) {
    #####:    #####:  872:            ir_rvalue *x = inner_expr->operands[minmax_op];
    #####:    #####:  873:            ir_rvalue *y = inner_expr->operands[1 - minmax_op];
        -:        -:  874:
    #####:    #####:  875:            ir_constant *inner_const = y->as_constant();
    #####:    #####:  876:            if (!inner_const)
    #####:    #####:  877:               continue;
        -:        -:  878:
        -:        -:  879:            /* min(max(x, 0.0), 1.0) is sat(x) */
    #####:    #####:  880:            if (ir->operation == ir_binop_min &&
    #####:    #####:  881:                inner_const->is_zero() &&
    #####:    #####:  882:                outer_const->is_one())
    #####:    #####:  883:               return saturate(x);
        -:        -:  884:
        -:        -:  885:            /* max(min(x, 1.0), 0.0) is sat(x) */
    #####:    #####:  886:            if (ir->operation == ir_binop_max &&
    #####:    #####:  887:                inner_const->is_one() &&
    #####:    #####:  888:                outer_const->is_zero())
    #####:    #####:  889:               return saturate(x);
        -:        -:  890:
        -:        -:  891:            /* min(max(x, 0.0), b) where b < 1.0 is sat(min(x, b)) */
    #####:    #####:  892:            if (ir->operation == ir_binop_min &&
    #####:    #####:  893:                inner_const->is_zero() &&
    #####:    #####:  894:                is_less_than_one(outer_const))
    #####:    #####:  895:               return saturate(expr(ir_binop_min, x, outer_const));
        -:        -:  896:
        -:        -:  897:            /* max(min(x, b), 0.0) where b < 1.0 is sat(min(x, b)) */
    #####:    #####:  898:            if (ir->operation == ir_binop_max &&
    #####:    #####:  899:                is_less_than_one(inner_const) &&
    #####:    #####:  900:                outer_const->is_zero())
    #####:    #####:  901:               return saturate(expr(ir_binop_min, x, inner_const));
        -:        -:  902:
        -:        -:  903:            /* max(min(x, 1.0), b) where b > 0.0 is sat(max(x, b)) */
    #####:    #####:  904:            if (ir->operation == ir_binop_max &&
    #####:    #####:  905:                inner_const->is_one() &&
    #####:    #####:  906:                is_greater_than_zero(outer_const))
    #####:    #####:  907:               return saturate(expr(ir_binop_max, x, outer_const));
        -:        -:  908:
        -:        -:  909:            /* min(max(x, b), 1.0) where b > 0.0 is sat(max(x, b)) */
    #####:    #####:  910:            if (ir->operation == ir_binop_min &&
    #####:    #####:  911:                is_greater_than_zero(inner_const) &&
    #####:    #####:  912:                outer_const->is_one())
    #####:    #####:  913:               return saturate(expr(ir_binop_max, x, inner_const));
        -:        -:  914:         }
        -:        -:  915:      }
        -:        -:  916:
    #####:    #####:  917:      break;
        -:        -:  918:
        -:        -:  919:   case ir_unop_rcp:
        3:        3:  920:      if (op_expr[0] && op_expr[0]->operation == ir_unop_rcp)
    #####:    #####:  921:	 return op_expr[0]->operands[0];
        -:        -:  922:
        3:        3:  923:      if (op_expr[0] && (op_expr[0]->operation == ir_unop_exp2 ||
    #####:    #####:  924:                         op_expr[0]->operation == ir_unop_exp)) {
    #####:    #####:  925:         return new(mem_ctx) ir_expression(op_expr[0]->operation, ir->type,
    #####:    #####:  926:                                           neg(op_expr[0]->operands[0]));
        -:        -:  927:      }
        -:        -:  928:
        -:        -:  929:      /* While ir_to_mesa.cpp will lower sqrt(x) to rcp(rsq(x)), it does so at
        -:        -:  930:       * its IR level, so we can always apply this transformation.
        -:        -:  931:       */
        3:        3:  932:      if (op_expr[0] && op_expr[0]->operation == ir_unop_rsq)
    #####:    #####:  933:         return sqrt(op_expr[0]->operands[0]);
        -:        -:  934:
        -:        -:  935:      /* As far as we know, all backends are OK with rsq. */
        3:        3:  936:      if (op_expr[0] && op_expr[0]->operation == ir_unop_sqrt) {
    #####:    #####:  937:	 return rsq(op_expr[0]->operands[0]);
        -:        -:  938:      }
        -:        -:  939:
        3:        3:  940:      break;
        -:        -:  941:
        -:        -:  942:   case ir_triop_fma:
        -:        -:  943:      /* Operands are op0 * op1 + op2. */
    #####:    #####:  944:      if (is_vec_zero(op_const[0]) || is_vec_zero(op_const[1])) {
    #####:    #####:  945:         return ir->operands[2];
    #####:    #####:  946:      } else if (is_vec_zero(op_const[2])) {
    #####:    #####:  947:         return mul(ir->operands[0], ir->operands[1]);
    #####:    #####:  948:      } else if (is_vec_one(op_const[0])) {
    #####:    #####:  949:         return add(ir->operands[1], ir->operands[2]);
    #####:    #####:  950:      } else if (is_vec_one(op_const[1])) {
    #####:    #####:  951:         return add(ir->operands[0], ir->operands[2]);
        -:        -:  952:      }
    #####:    #####:  953:      break;
        -:        -:  954:
        -:        -:  955:   case ir_triop_lrp:
        -:        -:  956:      /* Operands are (x, y, a). */
    #####:    #####:  957:      if (is_vec_zero(op_const[2])) {
    #####:    #####:  958:         return ir->operands[0];
    #####:    #####:  959:      } else if (is_vec_one(op_const[2])) {
    #####:    #####:  960:         return ir->operands[1];
    #####:    #####:  961:      } else if (ir->operands[0]->equals(ir->operands[1])) {
    #####:    #####:  962:         return ir->operands[0];
    #####:    #####:  963:      } else if (is_vec_zero(op_const[0])) {
    #####:    #####:  964:         return mul(ir->operands[1], ir->operands[2]);
    #####:    #####:  965:      } else if (is_vec_zero(op_const[1])) {
    #####:    #####:  966:         unsigned op2_components = ir->operands[2]->type->vector_elements;
        -:        -:  967:         ir_constant *one;
        -:        -:  968:
    #####:    #####:  969:         switch (ir->type->base_type) {
        -:        -:  970:         case GLSL_TYPE_FLOAT:
    #####:    #####:  971:            one = new(mem_ctx) ir_constant(1.0f, op2_components);
    #####:    #####:  972:            break;
        -:        -:  973:         case GLSL_TYPE_DOUBLE:
    #####:    #####:  974:            one = new(mem_ctx) ir_constant(1.0, op2_components);
    #####:    #####:  975:            break;
        -:        -:  976:         default:
    #####:    #####:  977:            one = NULL;
    #####:    #####:  978:            unreachable("unexpected type");
        -:        -:  979:         }
        -:        -:  980:
    #####:    #####:  981:         return mul(ir->operands[0], add(one, neg(ir->operands[2])));
        -:        -:  982:      }
    #####:    #####:  983:      break;
        -:        -:  984:
        -:        -:  985:   case ir_triop_csel:
    #####:    #####:  986:      if (is_vec_one(op_const[0]))
    #####:    #####:  987:	 return ir->operands[1];
    #####:    #####:  988:      if (is_vec_zero(op_const[0]))
    #####:    #####:  989:	 return ir->operands[2];
    #####:    #####:  990:      break;
        -:        -:  991:
        -:        -:  992:   /* Remove interpolateAt* instructions for demoted inputs. They are
        -:        -:  993:    * assigned a constant expression to facilitate this.
        -:        -:  994:    */
        -:        -:  995:   case ir_unop_interpolate_at_centroid:
        -:        -:  996:   case ir_binop_interpolate_at_offset:
        -:        -:  997:   case ir_binop_interpolate_at_sample:
    #####:    #####:  998:      if (op_const[0])
    #####:    #####:  999:         return ir->operands[0];
    #####:    #####: 1000:      break;
        -:        -: 1001:
        -:        -: 1002:   default:
       81:       81: 1003:      break;
        -:        -: 1004:   }
        -:        -: 1005:
      261:      276: 1006:   return ir;
        -:        -: 1007:}
        -:        -: 1008:
        -:        -: 1009:void
     1790:     1867: 1010:ir_algebraic_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -: 1011:{
     1790:     1867: 1012:   if (!*rvalue)
      371:      371: 1013:      return;
        -:        -: 1014:
     1419:     1496: 1015:   ir_expression *expr = (*rvalue)->as_expression();
     1419:     1496: 1016:   if (!expr || expr->operation == ir_quadop_vector)
     1156:     1217: 1017:      return;
        -:        -: 1018:
      263:      279: 1019:   ir_rvalue *new_rvalue = handle_expression(expr);
      263:      279: 1020:   if (new_rvalue == *rvalue)
      261:      276: 1021:      return;
        -:        -: 1022:
        -:        -: 1023:   /* If the expr used to be some vec OP scalar returning a vector, and the
        -:        -: 1024:    * optimization gave us back a scalar, we still need to turn it into a
        -:        -: 1025:    * vector.
        -:        -: 1026:    */
        2:        3: 1027:   *rvalue = swizzle_if_required(expr, new_rvalue);
        -:        -: 1028:
        2:        3: 1029:   this->progress = true;
        -:        -: 1030:}
        -:        -: 1031:
        -:        -: 1032:bool
       18:       18: 1033:do_algebraic(exec_list *instructions, bool native_integers,
        -:        -: 1034:             const struct gl_shader_compiler_options *options)
        -:        -: 1035:{
       36:       36: 1036:   ir_algebraic_visitor v(native_integers, options);
        -:        -: 1037:
       18:       18: 1038:   visit_list_elements(&v, instructions);
        -:        -: 1039:
       36:       36: 1040:   return v.progress;
        -:        -: 1041:}

src/compiler/opt_array_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_array_splitting.cpp
        -:        -:    0:Graph:glsl/.libs/opt_array_splitting.gcno
        -:        -:    0:Data:glsl/.libs/opt_array_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_array_splitting.cpp
        -:        -:   26: *
        -:        -:   27: * If an array is always dereferenced with a constant index, then
        -:        -:   28: * split it apart into its elements, making it more amenable to other
        -:        -:   29: * optimization passes.
        -:        -:   30: *
        -:        -:   31: * This skips uniform/varying arrays, which would need careful
        -:        -:   32: * handling due to their ir->location fields tying them to the GL API
        -:        -:   33: * and other shader stages.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include "ir.h"
        -:        -:   37:#include "ir_visitor.h"
        -:        -:   38:#include "ir_rvalue_visitor.h"
        -:        -:   39:#include "compiler/glsl_types.h"
        -:        -:   40:
        -:        -:   41:static bool debug = false;
        -:        -:   42:
        -:        -:   43:namespace {
        -:        -:   44:
        -:        -:   45:namespace opt_array_splitting {
        -:        -:   46:
        -:        -:   47:class variable_entry : public exec_node
        -:        -:   48:{
        -:        -:   49:public:
    #####:    #####:   50:   variable_entry(ir_variable *var)
    #####:    #####:   51:   {
    #####:    #####:   52:      this->var = var;
    #####:    #####:   53:      this->split = true;
    #####:    #####:   54:      this->declaration = false;
    #####:    #####:   55:      this->components = NULL;
    #####:    #####:   56:      this->mem_ctx = NULL;
    #####:    #####:   57:      if (var->type->is_array())
    #####:    #####:   58:         this->size = var->type->length;
        -:        -:   59:      else
    #####:    #####:   60:         this->size = var->type->matrix_columns;
    #####:    #####:   61:   }
        -:        -:   62:
        -:        -:   63:   ir_variable *var; /* The key: the variable's pointer. */
        -:        -:   64:   unsigned size; /* array length or matrix columns */
        -:        -:   65:
        -:        -:   66:   /** Whether this array should be split or not. */
        -:        -:   67:   bool split;
        -:        -:   68:
        -:        -:   69:   /* If the variable had a decl we can work with in the instruction
        -:        -:   70:    * stream.  We can't do splitting on function arguments, which
        -:        -:   71:    * don't get this variable set.
        -:        -:   72:    */
        -:        -:   73:   bool declaration;
        -:        -:   74:
        -:        -:   75:   ir_variable **components;
        -:        -:   76:
        -:        -:   77:   /** ralloc_parent(this->var) -- the shader's talloc context. */
        -:        -:   78:   void *mem_ctx;
        -:        -:   79:};
        -:        -:   80:
        -:        -:   81:} /* namespace */
        -:        -:   82:
        -:        -:   83:using namespace opt_array_splitting;
        -:        -:   84:
        -:        -:   85:/**
        -:        -:   86: * This class does a walk over the tree, coming up with the set of
        -:        -:   87: * variables that could be split by looking to see if they are arrays
        -:        -:   88: * that are only ever constant-index dereferenced.
        -:        -:   89: */
        -:        -:   90:class ir_array_reference_visitor : public ir_hierarchical_visitor {
        -:        -:   91:public:
       18:       18:   92:   ir_array_reference_visitor(void)
       18:       18:   93:   {
       18:       18:   94:      this->mem_ctx = ralloc_context(NULL);
       18:       18:   95:      this->variable_list.make_empty();
       18:       18:   96:      this->in_whole_array_copy = false;
       18:       18:   97:   }
        -:        -:   98:
       18:       18:   99:   ~ir_array_reference_visitor(void)
       36:       36:  100:   {
       18:       18:  101:      ralloc_free(mem_ctx);
       18:       18:  102:   }
        -:        -:  103:
        -:        -:  104:   bool get_split_list(exec_list *instructions, bool linked);
        -:        -:  105:
        -:        -:  106:   virtual ir_visitor_status visit(ir_variable *);
        -:        -:  107:   virtual ir_visitor_status visit(ir_dereference_variable *);
        -:        -:  108:   virtual ir_visitor_status visit_enter(ir_assignment *);
        -:        -:  109:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:  110:   virtual ir_visitor_status visit_enter(ir_dereference_array *);
        -:        -:  111:   virtual ir_visitor_status visit_enter(ir_function_signature *);
        -:        -:  112:
        -:        -:  113:   variable_entry *get_variable_entry(ir_variable *var);
        -:        -:  114:
        -:        -:  115:   /* List of variable_entry */
        -:        -:  116:   exec_list variable_list;
        -:        -:  117:
        -:        -:  118:   void *mem_ctx;
        -:        -:  119:
        -:        -:  120:   bool in_whole_array_copy;
        -:        -:  121:};
        -:        -:  122:
        -:        -:  123:} /* namespace */
        -:        -:  124:
        -:        -:  125:variable_entry *
     2152:     2184:  126:ir_array_reference_visitor::get_variable_entry(ir_variable *var)
        -:        -:  127:{
     2152:     2184:  128:   assert(var);
        -:        -:  129:
     3695:     3759:  130:   if (var->data.mode != ir_var_auto &&
     1543:     1575:  131:       var->data.mode != ir_var_temporary)
      933:      948:  132:      return NULL;
        -:        -:  133:
     1219:     1236:  134:   if (!(var->type->is_array() || var->type->is_matrix()))
     1219:     1236:  135:      return NULL;
        -:        -:  136:
        -:        -:  137:   /* If the array hasn't been sized yet, we can't split it.  After
        -:        -:  138:    * linking, this should be resolved.
        -:        -:  139:    */
    #####:    #####:  140:   if (var->type->is_unsized_array())
    #####:    #####:  141:      return NULL;
        -:        -:  142:
    #####:    #####:  143:   foreach_in_list(variable_entry, entry, &this->variable_list) {
    #####:    #####:  144:      if (entry->var == var)
    #####:    #####:  145:         return entry;
        -:        -:  146:   }
        -:        -:  147:
    #####:    #####:  148:   variable_entry *entry = new(mem_ctx) variable_entry(var);
    #####:    #####:  149:   this->variable_list.push_tail(entry);
    #####:    #####:  150:   return entry;
        -:        -:  151:}
        -:        -:  152:
        -:        -:  153:
        -:        -:  154:ir_visitor_status
      660:      660:  155:ir_array_reference_visitor::visit(ir_variable *ir)
        -:        -:  156:{
      660:      660:  157:   variable_entry *entry = this->get_variable_entry(ir);
        -:        -:  158:
      660:      660:  159:   if (entry)
    #####:    #####:  160:      entry->declaration = true;
        -:        -:  161:
      660:      660:  162:   return visit_continue;
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:ir_visitor_status
      417:      417:  166:ir_array_reference_visitor::visit_enter(ir_assignment *ir)
        -:        -:  167:{
        -:        -:  168:   in_whole_array_copy =
      417:      417:  169:      ir->lhs->type->is_array() && ir->whole_variable_written();
        -:        -:  170:
      417:      417:  171:   return visit_continue;
        -:        -:  172:}
        -:        -:  173:
        -:        -:  174:ir_visitor_status
      417:      417:  175:ir_array_reference_visitor::visit_leave(ir_assignment *ir)
        -:        -:  176:{
      417:      417:  177:   in_whole_array_copy = false;
        -:        -:  178:
      417:      417:  179:   return visit_continue;
        -:        -:  180:}
        -:        -:  181:
        -:        -:  182:ir_visitor_status
      909:      941:  183:ir_array_reference_visitor::visit(ir_dereference_variable *ir)
        -:        -:  184:{
      909:      941:  185:   variable_entry *entry = this->get_variable_entry(ir->var);
        -:        -:  186:
        -:        -:  187:   /* Allow whole-array assignments on the LHS.  We can split those
        -:        -:  188:    * by "unrolling" the assignment into component-wise assignments.
        -:        -:  189:    */
      909:      941:  190:   if (in_assignee && in_whole_array_copy)
    #####:    #####:  191:      return visit_continue;
        -:        -:  192:
        -:        -:  193:   /* If we made it to here without seeing an ir_dereference_array,
        -:        -:  194:    * then the dereference of this array didn't have a constant index
        -:        -:  195:    * (see the visit_continue_with_parent below), so we can't split
        -:        -:  196:    * the variable.
        -:        -:  197:    */
      909:      941:  198:   if (entry)
    #####:    #####:  199:      entry->split = false;
        -:        -:  200:
      909:      941:  201:   return visit_continue;
        -:        -:  202:}
        -:        -:  203:
        -:        -:  204:ir_visitor_status
      150:      150:  205:ir_array_reference_visitor::visit_enter(ir_dereference_array *ir)
        -:        -:  206:{
      150:      150:  207:   ir_dereference_variable *deref = ir->array->as_dereference_variable();
      150:      150:  208:   if (!deref)
    #####:    #####:  209:      return visit_continue;
        -:        -:  210:
      150:      150:  211:   variable_entry *entry = this->get_variable_entry(deref->var);
        -:        -:  212:
        -:        -:  213:   /* If the access to the array has a variable index, we wouldn't
        -:        -:  214:    * know which split variable this dereference should go to.
        -:        -:  215:    */
      150:      150:  216:   if (!ir->array_index->as_constant()) {
       24:       24:  217:      if (entry)
    #####:    #####:  218:         entry->split = false;
        -:        -:  219:      /* This variable indexing could come from a different array dereference
        -:        -:  220:       * that also has variable indexing, that is, something like a[b[a[b[0]]]].
        -:        -:  221:       * If we return visit_continue_with_parent here for the first appearence
        -:        -:  222:       * of a, then we can miss that b also has indirect indexing (if this is
        -:        -:  223:       * the only place in the program where such indirect indexing into b
        -:        -:  224:       * happens), so keep going.
        -:        -:  225:       */
       24:       24:  226:      return visit_continue;
        -:        -:  227:   }
        -:        -:  228:
        -:        -:  229:   /* If the index is also array dereference, visit index. */
      126:      126:  230:   if (ir->array_index->as_dereference_array())
    #####:    #####:  231:      visit_enter(ir->array_index->as_dereference_array());
        -:        -:  232:
      126:      126:  233:   return visit_continue_with_parent;
        -:        -:  234:}
        -:        -:  235:
        -:        -:  236:ir_visitor_status
       21:       21:  237:ir_array_reference_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  238:{
        -:        -:  239:   /* We don't have logic for array-splitting function arguments,
        -:        -:  240:    * so just look at the body instructions and not the parameter
        -:        -:  241:    * declarations.
        -:        -:  242:    */
       21:       21:  243:   visit_list_elements(this, &ir->body);
       21:       21:  244:   return visit_continue_with_parent;
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:bool
       18:       18:  248:ir_array_reference_visitor::get_split_list(exec_list *instructions,
        -:        -:  249:                                           bool linked)
        -:        -:  250:{
       18:       18:  251:   visit_list_elements(this, instructions);
        -:        -:  252:
        -:        -:  253:   /* If the shaders aren't linked yet, we can't mess with global
        -:        -:  254:    * declarations, which need to be matched by name across shaders.
        -:        -:  255:    */
       18:       18:  256:   if (!linked) {
      448:      448:  257:      foreach_in_list(ir_instruction, node, instructions) {
      442:      442:  258:         ir_variable *var = node->as_variable();
      442:      442:  259:         if (var) {
      433:      433:  260:            variable_entry *entry = get_variable_entry(var);
      433:      433:  261:            if (entry)
    #####:    #####:  262:               entry->remove();
        -:        -:  263:         }
        -:        -:  264:      }
        -:        -:  265:   }
        -:        -:  266:
        -:        -:  267:   /* Trim out variables we found that we can't split. */
       18:       18:  268:   foreach_in_list_safe(variable_entry, entry, &variable_list) {
    #####:    #####:  269:      if (debug) {
    #####:    #####:  270:         printf("array %s@%p: decl %d, split %d\n",
    #####:    #####:  271:                entry->var->name, (void *) entry->var, entry->declaration,
    #####:    #####:  272:                entry->split);
        -:        -:  273:      }
        -:        -:  274:
    #####:    #####:  275:      if (!(entry->declaration && entry->split)) {
    #####:    #####:  276:         entry->remove();
        -:        -:  277:      }
        -:        -:  278:   }
        -:        -:  279:
       18:       18:  280:   return !variable_list.is_empty();
        -:        -:  281:}
        -:        -:  282:
        -:        -:  283:/**
        -:        -:  284: * This class rewrites the dereferences of arrays that have been split
        -:        -:  285: * to use the newly created ir_variables for each component.
        -:        -:  286: */
        -:        -:  287:class ir_array_splitting_visitor : public ir_rvalue_visitor {
        -:        -:  288:public:
    #####:    #####:  289:   ir_array_splitting_visitor(exec_list *vars)
    #####:    #####:  290:   {
    #####:    #####:  291:      this->variable_list = vars;
    #####:    #####:  292:   }
        -:        -:  293:
    #####:    #####:  294:   virtual ~ir_array_splitting_visitor()
    #####:    #####:  295:   {
    #####:    #####:  296:   }
        -:        -:  297:
        -:        -:  298:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:  299:
        -:        -:  300:   void split_deref(ir_dereference **deref);
        -:        -:  301:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  302:   variable_entry *get_splitting_entry(ir_variable *var);
        -:        -:  303:
        -:        -:  304:   exec_list *variable_list;
        -:        -:  305:};
        -:        -:  306:
        -:        -:  307:variable_entry *
    #####:    #####:  308:ir_array_splitting_visitor::get_splitting_entry(ir_variable *var)
        -:        -:  309:{
    #####:    #####:  310:   assert(var);
        -:        -:  311:
    #####:    #####:  312:   foreach_in_list(variable_entry, entry, this->variable_list) {
    #####:    #####:  313:      if (entry->var == var) {
    #####:    #####:  314:         return entry;
        -:        -:  315:      }
        -:        -:  316:   }
        -:        -:  317:
    #####:    #####:  318:   return NULL;
        -:        -:  319:}
        -:        -:  320:
        -:        -:  321:void
    #####:    #####:  322:ir_array_splitting_visitor::split_deref(ir_dereference **deref)
        -:        -:  323:{
    #####:    #####:  324:   ir_dereference_array *deref_array = (*deref)->as_dereference_array();
    #####:    #####:  325:   if (!deref_array)
    #####:    #####:  326:      return;
        -:        -:  327:
    #####:    #####:  328:   ir_dereference_variable *deref_var = deref_array->array->as_dereference_variable();
    #####:    #####:  329:   if (!deref_var)
    #####:    #####:  330:      return;
    #####:    #####:  331:   ir_variable *var = deref_var->var;
        -:        -:  332:
    #####:    #####:  333:   variable_entry *entry = get_splitting_entry(var);
    #####:    #####:  334:   if (!entry)
    #####:    #####:  335:      return;
        -:        -:  336:
    #####:    #####:  337:   ir_constant *constant = deref_array->array_index->as_constant();
    #####:    #####:  338:   assert(constant);
        -:        -:  339:
    #####:    #####:  340:   if (constant->value.i[0] >= 0 && constant->value.i[0] < (int)entry->size) {
        -:        -:  341:      *deref = new(entry->mem_ctx)
    #####:    #####:  342:               ir_dereference_variable(entry->components[constant->value.i[0]]);
        -:        -:  343:   } else {
        -:        -:  344:      /* There was a constant array access beyond the end of the
        -:        -:  345:       * array.  This might have happened due to constant folding
        -:        -:  346:       * after the initial parse.  This produces an undefined value,
        -:        -:  347:       * but shouldn't crash.  Just give them an uninitialized
        -:        -:  348:       * variable.
        -:        -:  349:       */
        -:        -:  350:      ir_variable *temp = new(entry->mem_ctx) ir_variable(deref_array->type,
        -:        -:  351:                                                          "undef",
    #####:    #####:  352:                                                          ir_var_temporary);
    #####:    #####:  353:      entry->components[0]->insert_before(temp);
    #####:    #####:  354:      *deref = new(entry->mem_ctx) ir_dereference_variable(temp);
        -:        -:  355:   }
        -:        -:  356:}
        -:        -:  357:
        -:        -:  358:void
    #####:    #####:  359:ir_array_splitting_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  360:{
    #####:    #####:  361:   if (!*rvalue)
    #####:    #####:  362:      return;
        -:        -:  363:
    #####:    #####:  364:   ir_dereference *deref = (*rvalue)->as_dereference();
        -:        -:  365:
    #####:    #####:  366:   if (!deref)
    #####:    #####:  367:      return;
        -:        -:  368:
    #####:    #####:  369:   split_deref(&deref);
    #####:    #####:  370:   *rvalue = deref;
        -:        -:  371:}
        -:        -:  372:
        -:        -:  373:ir_visitor_status
    #####:    #####:  374:ir_array_splitting_visitor::visit_leave(ir_assignment *ir)
        -:        -:  375:{
        -:        -:  376:   /* The normal rvalue visitor skips the LHS of assignments, but we
        -:        -:  377:    * need to process those just the same.
        -:        -:  378:    */
    #####:    #####:  379:   ir_rvalue *lhs = ir->lhs;
        -:        -:  380:
        -:        -:  381:   /* "Unroll" any whole array assignments, creating assignments for
        -:        -:  382:    * each array element.  Then, do splitting on each new assignment.
        -:        -:  383:    */
    #####:    #####:  384:   if (lhs->type->is_array() && ir->whole_variable_written() &&
    #####:    #####:  385:       get_splitting_entry(ir->whole_variable_written())) {
    #####:    #####:  386:      void *mem_ctx = ralloc_parent(ir);
        -:        -:  387:
    #####:    #####:  388:      for (unsigned i = 0; i < lhs->type->length; i++) {
        -:        -:  389:         ir_rvalue *lhs_i =
    #####:    #####:  390:            new(mem_ctx) ir_dereference_array(ir->lhs->clone(mem_ctx, NULL),
    #####:    #####:  391:                                              new(mem_ctx) ir_constant(i));
        -:        -:  392:         ir_rvalue *rhs_i =
    #####:    #####:  393:            new(mem_ctx) ir_dereference_array(ir->rhs->clone(mem_ctx, NULL),
    #####:    #####:  394:                                              new(mem_ctx) ir_constant(i));
        -:        -:  395:         ir_rvalue *condition_i =
    #####:    #####:  396:            ir->condition ? ir->condition->clone(mem_ctx, NULL) : NULL;
        -:        -:  397:
        -:        -:  398:         ir_assignment *assign_i =
    #####:    #####:  399:            new(mem_ctx) ir_assignment(lhs_i, rhs_i, condition_i);
        -:        -:  400:
    #####:    #####:  401:         ir->insert_before(assign_i);
    #####:    #####:  402:         assign_i->accept(this);
        -:        -:  403:      }
    #####:    #####:  404:      ir->remove();
    #####:    #####:  405:      return visit_continue;
        -:        -:  406:   }
        -:        -:  407:
    #####:    #####:  408:   handle_rvalue(&lhs);
    #####:    #####:  409:   ir->lhs = lhs->as_dereference();
        -:        -:  410:
    #####:    #####:  411:   ir->lhs->accept(this);
        -:        -:  412:
    #####:    #####:  413:   handle_rvalue(&ir->rhs);
    #####:    #####:  414:   ir->rhs->accept(this);
        -:        -:  415:
    #####:    #####:  416:   if (ir->condition) {
    #####:    #####:  417:      handle_rvalue(&ir->condition);
    #####:    #####:  418:      ir->condition->accept(this);
        -:        -:  419:   }
        -:        -:  420:
    #####:    #####:  421:   return visit_continue;
        -:        -:  422:}
        -:        -:  423:
        -:        -:  424:bool
       18:       18:  425:optimize_split_arrays(exec_list *instructions, bool linked)
        -:        -:  426:{
       36:       36:  427:   ir_array_reference_visitor refs;
       18:       18:  428:   if (!refs.get_split_list(instructions, linked))
       18:       18:  429:      return false;
        -:        -:  430:
    #####:    #####:  431:   void *mem_ctx = ralloc_context(NULL);
        -:        -:  432:
        -:        -:  433:   /* Replace the decls of the arrays to be split with their split
        -:        -:  434:    * components.
        -:        -:  435:    */
    #####:    #####:  436:   foreach_in_list(variable_entry, entry, &refs.variable_list) {
    #####:    #####:  437:      const struct glsl_type *type = entry->var->type;
        -:        -:  438:      const struct glsl_type *subtype;
        -:        -:  439:
    #####:    #####:  440:      if (type->is_matrix())
    #####:    #####:  441:         subtype = type->column_type();
        -:        -:  442:      else
    #####:    #####:  443:         subtype = type->fields.array;
        -:        -:  444:
    #####:    #####:  445:      entry->mem_ctx = ralloc_parent(entry->var);
        -:        -:  446:
    #####:    #####:  447:      entry->components = ralloc_array(mem_ctx, ir_variable *, entry->size);
        -:        -:  448:
    #####:    #####:  449:      for (unsigned int i = 0; i < entry->size; i++) {
    #####:    #####:  450:         const char *name = ralloc_asprintf(mem_ctx, "%s_%d",
    #####:    #####:  451:                                            entry->var->name, i);
        -:        -:  452:
    #####:    #####:  453:         entry->components[i] =
    #####:    #####:  454:            new(entry->mem_ctx) ir_variable(subtype, name, ir_var_temporary);
    #####:    #####:  455:         entry->var->insert_before(entry->components[i]);
        -:        -:  456:      }
        -:        -:  457:
    #####:    #####:  458:      entry->var->remove();
        -:        -:  459:   }
        -:        -:  460:
    #####:    #####:  461:   ir_array_splitting_visitor split(&refs.variable_list);
    #####:    #####:  462:   visit_list_elements(&split, instructions);
        -:        -:  463:
    #####:    #####:  464:   if (debug)
    #####:    #####:  465:      _mesa_print_ir(stdout, instructions, NULL);
        -:        -:  466:
    #####:    #####:  467:   ralloc_free(mem_ctx);
        -:        -:  468:
    #####:    #####:  469:   return true;
        -:        -:  470:
        -:        -:  471:}

src/compiler/opt_conditional_discard.cpp.gcov

        -:        -:    0:Source:glsl/opt_conditional_discard.cpp
        -:        -:    0:Graph:glsl/.libs/opt_conditional_discard.gcno
        -:        -:    0:Data:glsl/.libs/opt_conditional_discard.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_conditional_discard.cpp
        -:        -:   26: *
        -:        -:   27: * Replace
        -:        -:   28: *
        -:        -:   29: *    if (cond) discard;
        -:        -:   30: *
        -:        -:   31: * with
        -:        -:   32: *
        -:        -:   33: *    (discard <condition>)
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include "compiler/glsl_types.h"
        -:        -:   37:#include "ir.h"
        -:        -:   38:
        -:        -:   39:namespace {
        -:        -:   40:
        -:        -:   41:class opt_conditional_discard_visitor : public ir_hierarchical_visitor {
        -:        -:   42:public:
       18:       18:   43:   opt_conditional_discard_visitor()
       18:       18:   44:   {
       18:       18:   45:      progress = false;
       18:       18:   46:   }
        -:        -:   47:
        -:        -:   48:   ir_visitor_status visit_leave(ir_if *);
        -:        -:   49:
        -:        -:   50:   bool progress;
        -:        -:   51:};
        -:        -:   52:
        -:        -:   53:} /* anonymous namespace */
        -:        -:   54:
        -:        -:   55:bool
       18:       18:   56:opt_conditional_discard(exec_list *instructions)
        -:        -:   57:{
       18:       18:   58:   opt_conditional_discard_visitor v;
       18:       18:   59:   v.run(instructions);
       18:       18:   60:   return v.progress;
        -:        -:   61:}
        -:        -:   62:
        -:        -:   63:ir_visitor_status
       92:      123:   64:opt_conditional_discard_visitor::visit_leave(ir_if *ir)
        -:        -:   65:{
        -:        -:   66:   /* Look for "if (...) discard" with no else clause or extra statements. */
      276:      369:   67:   if (ir->then_instructions.is_empty() ||
      166:      228:   68:       !ir->then_instructions.get_head_raw()->next->is_tail_sentinel() ||
      166:      228:   69:       !((ir_instruction *) ir->then_instructions.get_head_raw())->as_discard() ||
    #####:    #####:   70:       !ir->else_instructions.is_empty())
       92:      123:   71:      return visit_continue;
        -:        -:   72:
        -:        -:   73:   /* Move the condition and replace the ir_if with the ir_discard. */
    #####:    #####:   74:   ir_discard *discard = (ir_discard *) ir->then_instructions.get_head_raw();
    #####:    #####:   75:   if (!discard->condition)
    #####:    #####:   76:      discard->condition = ir->condition;
        -:        -:   77:   else {
    #####:    #####:   78:      void *ctx = ralloc_parent(ir);
        -:        -:   79:      discard->condition = new(ctx) ir_expression(ir_binop_logic_and,
        -:        -:   80:                                                  ir->condition,
    #####:    #####:   81:                                                  discard->condition);
        -:        -:   82:   }
    #####:    #####:   83:   ir->replace_with(discard);
        -:        -:   84:
    #####:    #####:   85:   progress = true;
        -:        -:   86:
    #####:    #####:   87:   return visit_continue;
        -:        -:   88:}

src/compiler/opt_constant_folding.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_folding.cpp
        -:        -:    0:Graph:glsl/.libs/opt_constant_folding.gcno
        -:        -:    0:Data:glsl/.libs/opt_constant_folding.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_constant_folding.cpp
        -:        -:   26: * Replace constant-valued expressions with references to constant values.
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:#include "ir.h"
        -:        -:   30:#include "ir_visitor.h"
        -:        -:   31:#include "ir_rvalue_visitor.h"
        -:        -:   32:#include "ir_optimization.h"
        -:        -:   33:#include "compiler/glsl_types.h"
        -:        -:   34:
        -:        -:   35:namespace {
        -:        -:   36:
        -:        -:   37:/**
        -:        -:   38: * Visitor class for replacing expressions with ir_constant values.
        -:        -:   39: */
        -:        -:   40:
        -:        -:   41:class ir_constant_folding_visitor : public ir_rvalue_visitor {
        -:        -:   42:public:
       18:       18:   43:   ir_constant_folding_visitor()
       18:       18:   44:   {
       18:       18:   45:      this->progress = false;
       18:       18:   46:   }
        -:        -:   47:
       18:       18:   48:   virtual ~ir_constant_folding_visitor()
       18:       18:   49:   {
        -:        -:   50:      /* empty */
       18:       18:   51:   }
        -:        -:   52:
        -:        -:   53:   virtual ir_visitor_status visit_enter(ir_discard *ir);
        -:        -:   54:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   55:   virtual ir_visitor_status visit_enter(ir_call *ir);
        -:        -:   56:
        -:        -:   57:   virtual void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   58:
        -:        -:   59:   bool progress;
        -:        -:   60:};
        -:        -:   61:
        -:        -:   62:} /* unnamed namespace */
        -:        -:   63:
        -:        -:   64:bool
     2793:     2947:   65:ir_constant_fold(ir_rvalue **rvalue)
        -:        -:   66:{
     2793:     2947:   67:   if (*rvalue == NULL || (*rvalue)->ir_type == ir_type_constant)
      623:      653:   68:      return false;
        -:        -:   69:
        -:        -:   70:   /* Note that we do rvalue visitoring on leaving.  So if an
        -:        -:   71:    * expression has a non-constant operand, no need to go looking
        -:        -:   72:    * down it to find if it's constant.  This cuts the time of this
        -:        -:   73:    * pass down drastically.
        -:        -:   74:    */
     2170:     2294:   75:   ir_expression *expr = (*rvalue)->as_expression();
     2170:     2294:   76:   if (expr) {
      490:      522:   77:      for (unsigned int i = 0; i < expr->get_num_operands(); i++) {
      490:      522:   78:	 if (!expr->operands[i]->as_constant())
      490:      522:   79:	    return false;
        -:        -:   80:      }
        -:        -:   81:   }
        -:        -:   82:
        -:        -:   83:   /* Ditto for swizzles. */
     1680:     1772:   84:   ir_swizzle *swiz = (*rvalue)->as_swizzle();
     1680:     1772:   85:   if (swiz && !swiz->val->as_constant())
      172:      202:   86:      return false;
        -:        -:   87:
        -:        -:   88:   /* Ditto for array dereferences */
     1508:     1570:   89:   ir_dereference_array *array_ref = (*rvalue)->as_dereference_array();
     1508:     1570:   90:   if (array_ref && (!array_ref->array->as_constant() ||
    #####:    #####:   91:                     !array_ref->array_index->as_constant()))
      288:      288:   92:      return false;
        -:        -:   93:
        -:        -:   94:   /* No constant folding can be performed on variable dereferences.  We need
        -:        -:   95:    * to explicitly avoid them, as calling constant_expression_value() on a
        -:        -:   96:    * variable dereference will return a clone of var->constant_value.  This
        -:        -:   97:    * would make us propagate the value into the tree, which isn't our job.
        -:        -:   98:    */
     1220:     1282:   99:   ir_dereference_variable *var_ref = (*rvalue)->as_dereference_variable();
     1220:     1282:  100:   if (var_ref)
     1208:     1270:  101:      return false;
        -:        -:  102:
       12:       12:  103:   ir_constant *constant = (*rvalue)->constant_expression_value();
       12:       12:  104:   if (constant) {
       12:       12:  105:      *rvalue = constant;
       12:       12:  106:      return true;
        -:        -:  107:   }
    #####:    #####:  108:   return false;
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:void
     1403:     1480:  112:ir_constant_folding_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  113:{
     1403:     1480:  114:   if (ir_constant_fold(rvalue))
    #####:    #####:  115:      this->progress = true;
     1403:     1480:  116:}
        -:        -:  117:
        -:        -:  118:ir_visitor_status
    #####:    #####:  119:ir_constant_folding_visitor::visit_enter(ir_discard *ir)
        -:        -:  120:{
    #####:    #####:  121:   if (ir->condition) {
    #####:    #####:  122:      ir->condition->accept(this);
    #####:    #####:  123:      handle_rvalue(&ir->condition);
        -:        -:  124:
    #####:    #####:  125:      ir_constant *const_val = ir->condition->as_constant();
        -:        -:  126:      /* If the condition is constant, either remove the condition or
        -:        -:  127:       * remove the never-executed assignment.
        -:        -:  128:       */
    #####:    #####:  129:      if (const_val) {
    #####:    #####:  130:         if (const_val->value.b[0])
    #####:    #####:  131:            ir->condition = NULL;
        -:        -:  132:         else
    #####:    #####:  133:            ir->remove();
    #####:    #####:  134:         this->progress = true;
        -:        -:  135:      }
        -:        -:  136:   }
        -:        -:  137:
    #####:    #####:  138:   return visit_continue_with_parent;
        -:        -:  139:}
        -:        -:  140:
        -:        -:  141:ir_visitor_status
      408:      408:  142:ir_constant_folding_visitor::visit_enter(ir_assignment *ir)
        -:        -:  143:{
      408:      408:  144:   ir->rhs->accept(this);
      408:      408:  145:   handle_rvalue(&ir->rhs);
        -:        -:  146:
      408:      408:  147:   if (ir->condition) {
       37:       37:  148:      ir->condition->accept(this);
       37:       37:  149:      handle_rvalue(&ir->condition);
        -:        -:  150:
       37:       37:  151:      ir_constant *const_val = ir->condition->as_constant();
        -:        -:  152:      /* If the condition is constant, either remove the condition or
        -:        -:  153:       * remove the never-executed assignment.
        -:        -:  154:       */
       37:       37:  155:      if (const_val) {
        1:        1:  156:	 if (const_val->value.b[0])
    #####:    #####:  157:	    ir->condition = NULL;
        -:        -:  158:	 else
        1:        1:  159:	    ir->remove();
        1:        1:  160:	 this->progress = true;
        -:        -:  161:      }
        -:        -:  162:   }
        -:        -:  163:
        -:        -:  164:   /* Don't descend into the LHS because we want it to stay as a
        -:        -:  165:    * variable dereference.  FINISHME: We probably should to get array
        -:        -:  166:    * indices though.
        -:        -:  167:    */
      408:      408:  168:   return visit_continue_with_parent;
        -:        -:  169:}
        -:        -:  170:
        -:        -:  171:ir_visitor_status
        6:        6:  172:ir_constant_folding_visitor::visit_enter(ir_call *ir)
        -:        -:  173:{
        -:        -:  174:   /* Attempt to constant fold parameters */
       18:       18:  175:   foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  176:                     actual_node, &ir->actual_parameters) {
       12:       12:  177:      ir_rvalue *param_rval = (ir_rvalue *) actual_node;
       12:       12:  178:      ir_variable *sig_param = (ir_variable *) formal_node;
        -:        -:  179:
       12:       12:  180:      if (sig_param->data.mode == ir_var_function_in
    #####:    #####:  181:          || sig_param->data.mode == ir_var_const_in) {
       12:       12:  182:	 ir_rvalue *new_param = param_rval;
        -:        -:  183:
       12:       12:  184:	 handle_rvalue(&new_param);
       12:       12:  185:	 if (new_param != param_rval) {
    #####:    #####:  186:	    param_rval->replace_with(new_param);
        -:        -:  187:	 }
        -:        -:  188:      }
        -:        -:  189:   }
        -:        -:  190:
        -:        -:  191:   /* Next, see if the call can be replaced with an assignment of a constant */
        6:        6:  192:   ir_constant *const_val = ir->constant_expression_value();
        -:        -:  193:
        6:        6:  194:   if (const_val != NULL) {
        -:        -:  195:      ir_assignment *assignment =
    #####:    #####:  196:	 new(ralloc_parent(ir)) ir_assignment(ir->return_deref, const_val);
    #####:    #####:  197:      ir->replace_with(assignment);
        -:        -:  198:   }
        -:        -:  199:
        6:        6:  200:   return visit_continue_with_parent;
        -:        -:  201:}
        -:        -:  202:
        -:        -:  203:bool
       18:       18:  204:do_constant_folding(exec_list *instructions)
        -:        -:  205:{
       36:       36:  206:   ir_constant_folding_visitor constant_folding;
        -:        -:  207:
       18:       18:  208:   visit_list_elements(&constant_folding, instructions);
        -:        -:  209:
       36:       36:  210:   return constant_folding.progress;
        -:        -:  211:}

src/compiler/opt_constant_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_constant_propagation.cpp
        -:        -:    0:Graph:glsl/.libs/opt_constant_propagation.gcno
        -:        -:    0:Data:glsl/.libs/opt_constant_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * constant of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, constant, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above constantright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR CONSTANTRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_constant_propagation.cpp
        -:        -:   26: *
        -:        -:   27: * Tracks assignments of constants to channels of variables, and
        -:        -:   28: * usage of those constant channels with direct usage of the constants.
        -:        -:   29: *
        -:        -:   30: * This can lead to constant folding and algebraic optimizations in
        -:        -:   31: * those later expressions, while causing no increase in instruction
        -:        -:   32: * count (due to constants being generally free to load from a
        -:        -:   33: * constant push buffer or as instruction immediate values) and
        -:        -:   34: * possibly reducing register pressure.
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:#include "ir.h"
        -:        -:   38:#include "ir_visitor.h"
        -:        -:   39:#include "ir_rvalue_visitor.h"
        -:        -:   40:#include "ir_basic_block.h"
        -:        -:   41:#include "ir_optimization.h"
        -:        -:   42:#include "compiler/glsl_types.h"
        -:        -:   43:#include "util/hash_table.h"
        -:        -:   44:
        -:        -:   45:namespace {
        -:        -:   46:
        -:        -:   47:class acp_entry : public exec_node
        -:        -:   48:{
        -:        -:   49:public:
        -:        -:   50:   /* override operator new from exec_node */
      119:      119:   51:   DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(acp_entry)
        -:        -:   52:
       89:       89:   53:   acp_entry(ir_variable *var, unsigned write_mask, ir_constant *constant)
       89:       89:   54:   {
       89:       89:   55:      assert(var);
       89:       89:   56:      assert(constant);
       89:       89:   57:      this->var = var;
       89:       89:   58:      this->write_mask = write_mask;
       89:       89:   59:      this->constant = constant;
       89:       89:   60:      this->initial_values = write_mask;
       89:       89:   61:   }
        -:        -:   62:
       30:       30:   63:   acp_entry(const acp_entry *src)
       30:       30:   64:   {
       30:       30:   65:      this->var = src->var;
       30:       30:   66:      this->write_mask = src->write_mask;
       30:       30:   67:      this->constant = src->constant;
       30:       30:   68:      this->initial_values = src->initial_values;
       30:       30:   69:   }
        -:        -:   70:
        -:        -:   71:   ir_variable *var;
        -:        -:   72:   ir_constant *constant;
        -:        -:   73:   unsigned write_mask;
        -:        -:   74:
        -:        -:   75:   /** Mask of values initially available in the constant. */
        -:        -:   76:   unsigned initial_values;
        -:        -:   77:};
        -:        -:   78:
        -:        -:   79:
        -:        -:   80:class kill_entry : public exec_node
        -:        -:   81:{
        -:        -:   82:public:
        -:        -:   83:   /* override operator new from exec_node */
      435:      463:   84:   DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(kill_entry)
        -:        -:   85:
      435:      463:   86:   kill_entry(ir_variable *var, unsigned write_mask)
      435:      463:   87:   {
      435:      463:   88:      assert(var);
      435:      463:   89:      this->var = var;
      435:      463:   90:      this->write_mask = write_mask;
      435:      463:   91:   }
        -:        -:   92:
        -:        -:   93:   ir_variable *var;
        -:        -:   94:   unsigned write_mask;
        -:        -:   95:};
        -:        -:   96:
        -:        -:   97:class ir_constant_propagation_visitor : public ir_rvalue_visitor {
        -:        -:   98:public:
       18:       18:   99:   ir_constant_propagation_visitor()
       18:       18:  100:   {
       18:       18:  101:      progress = false;
       18:       18:  102:      killed_all = false;
       18:       18:  103:      mem_ctx = ralloc_context(0);
       18:       18:  104:      this->lin_ctx = linear_alloc_parent(this->mem_ctx, 0);
       18:       18:  105:      this->acp = new(mem_ctx) exec_list;
       18:       18:  106:      this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
       18:       18:  107:                                            _mesa_key_pointer_equal);
       18:       18:  108:   }
       18:       18:  109:   ~ir_constant_propagation_visitor()
       36:       36:  110:   {
       18:       18:  111:      ralloc_free(mem_ctx);
       18:       18:  112:   }
        -:        -:  113:
        -:        -:  114:   virtual ir_visitor_status visit_enter(class ir_loop *);
        -:        -:  115:   virtual ir_visitor_status visit_enter(class ir_function_signature *);
        -:        -:  116:   virtual ir_visitor_status visit_enter(class ir_function *);
        -:        -:  117:   virtual ir_visitor_status visit_leave(class ir_assignment *);
        -:        -:  118:   virtual ir_visitor_status visit_enter(class ir_call *);
        -:        -:  119:   virtual ir_visitor_status visit_enter(class ir_if *);
        -:        -:  120:
        -:        -:  121:   void add_constant(ir_assignment *ir);
        -:        -:  122:   void constant_folding(ir_rvalue **rvalue);
        -:        -:  123:   void constant_propagation(ir_rvalue **rvalue);
        -:        -:  124:   void kill(ir_variable *ir, unsigned write_mask);
        -:        -:  125:   void handle_if_block(exec_list *instructions);
        -:        -:  126:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  127:
        -:        -:  128:   /** List of acp_entry: The available constants to propagate */
        -:        -:  129:   exec_list *acp;
        -:        -:  130:
        -:        -:  131:   /**
        -:        -:  132:    * Hash table of kill_entry: The masks of variables whose values were
        -:        -:  133:    * killed in this block.
        -:        -:  134:    */
        -:        -:  135:   hash_table *kills;
        -:        -:  136:
        -:        -:  137:   bool progress;
        -:        -:  138:
        -:        -:  139:   bool killed_all;
        -:        -:  140:
        -:        -:  141:   void *mem_ctx;
        -:        -:  142:   void *lin_ctx;
        -:        -:  143:};
        -:        -:  144:
        -:        -:  145:
        -:        -:  146:void
     1396:     1473:  147:ir_constant_propagation_visitor::constant_folding(ir_rvalue **rvalue)
        -:        -:  148:{
     1396:     1473:  149:   if (this->in_assignee || *rvalue == NULL)
        6:        6:  150:      return;
        -:        -:  151:
     1390:     1467:  152:   if (ir_constant_fold(rvalue))
       12:       12:  153:      this->progress = true;
        -:        -:  154:
     1390:     1467:  155:   ir_dereference_variable *var_ref = (*rvalue)->as_dereference_variable();
     1390:     1467:  156:   if (var_ref && !var_ref->type->is_array()) {
      484:      515:  157:      ir_constant *constant = var_ref->constant_expression_value();
      484:      515:  158:      if (constant) {
    #####:    #####:  159:         *rvalue = constant;
    #####:    #####:  160:         this->progress = true;
        -:        -:  161:      }
        -:        -:  162:   }
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:void
      988:     1065:  166:ir_constant_propagation_visitor::constant_propagation(ir_rvalue **rvalue) {
        -:        -:  167:
      988:     1065:  168:   if (this->in_assignee || !*rvalue)
      982:     1059:  169:      return;
        -:        -:  170:
      982:     1059:  171:   const glsl_type *type = (*rvalue)->type;
      982:     1059:  172:   if (!type->is_scalar() && !type->is_vector())
      126:      126:  173:      return;
        -:        -:  174:
      856:      933:  175:   ir_swizzle *swiz = NULL;
      856:      933:  176:   ir_dereference_variable *deref = (*rvalue)->as_dereference_variable();
      856:      933:  177:   if (!deref) {
      511:      557:  178:      swiz = (*rvalue)->as_swizzle();
      511:      557:  179:      if (!swiz)
      430:      461:  180:	 return;
        -:        -:  181:
       81:       96:  182:      deref = swiz->val->as_dereference_variable();
       81:       96:  183:      if (!deref)
       16:       16:  184:	 return;
        -:        -:  185:   }
        -:        -:  186:
        -:        -:  187:   ir_constant_data data;
      410:      456:  188:   memset(&data, 0, sizeof(data));
        -:        -:  189:
      458:      504:  190:   for (unsigned int i = 0; i < type->components(); i++) {
        -:        -:  191:      int channel;
      446:      492:  192:      acp_entry *found = NULL;
        -:        -:  193:
      446:      492:  194:      if (swiz) {
       65:       80:  195:	 switch (i) {
       65:       80:  196:	 case 0: channel = swiz->mask.x; break;
    #####:    #####:  197:	 case 1: channel = swiz->mask.y; break;
    #####:    #####:  198:	 case 2: channel = swiz->mask.z; break;
    #####:    #####:  199:	 case 3: channel = swiz->mask.w; break;
    #####:    #####:  200:	 default: assert(!"shouldn't be reached"); channel = 0; break;
        -:        -:  201:	 }
        -:        -:  202:      } else {
      381:      412:  203:	 channel = i;
        -:        -:  204:      }
        -:        -:  205:
      588:      634:  206:      foreach_in_list(acp_entry, entry, this->acp) {
      190:      190:  207:	 if (entry->var == deref->var && entry->write_mask & (1 << channel)) {
       48:       48:  208:	    found = entry;
       48:       48:  209:	    break;
        -:        -:  210:	 }
        -:        -:  211:      }
        -:        -:  212:
      446:      492:  213:      if (!found)
      398:      444:  214:	 return;
        -:        -:  215:
       48:       48:  216:      int rhs_channel = 0;
      120:      120:  217:      for (int j = 0; j < 4; j++) {
      120:      120:  218:	 if (j == channel)
       48:       48:  219:	    break;
       72:       72:  220:	 if (found->initial_values & (1 << j))
       72:       72:  221:	    rhs_channel++;
        -:        -:  222:      }
        -:        -:  223:
       48:       48:  224:      switch (type->base_type) {
        -:        -:  225:      case GLSL_TYPE_FLOAT:
    #####:    #####:  226:	 data.f[i] = found->constant->value.f[rhs_channel];
    #####:    #####:  227:	 break;
        -:        -:  228:      case GLSL_TYPE_DOUBLE:
    #####:    #####:  229:	 data.d[i] = found->constant->value.d[rhs_channel];
    #####:    #####:  230:	 break;
        -:        -:  231:      case GLSL_TYPE_INT:
       48:       48:  232:	 data.i[i] = found->constant->value.i[rhs_channel];
       48:       48:  233:	 break;
        -:        -:  234:      case GLSL_TYPE_UINT:
    #####:    #####:  235:	 data.u[i] = found->constant->value.u[rhs_channel];
    #####:    #####:  236:	 break;
        -:        -:  237:      case GLSL_TYPE_BOOL:
    #####:    #####:  238:	 data.b[i] = found->constant->value.b[rhs_channel];
    #####:    #####:  239:	 break;
        -:        -:  240:      default:
    #####:    #####:  241:	 assert(!"not reached");
        -:        -:  242:	 break;
        -:        -:  243:      }
        -:        -:  244:   }
        -:        -:  245:
       12:       12:  246:   *rvalue = new(ralloc_parent(deref)) ir_constant(type, &data);
       12:       12:  247:   this->progress = true;
        -:        -:  248:}
        -:        -:  249:
        -:        -:  250:void
      988:     1065:  251:ir_constant_propagation_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  252:{
      988:     1065:  253:   constant_propagation(rvalue);
      988:     1065:  254:   constant_folding(rvalue);
      988:     1065:  255:}
        -:        -:  256:
        -:        -:  257:ir_visitor_status
       21:       21:  258:ir_constant_propagation_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  259:{
        -:        -:  260:   /* Treat entry into a function signature as a completely separate
        -:        -:  261:    * block.  Any instructions at global scope will be shuffled into
        -:        -:  262:    * main() at link time, so they're irrelevant to us.
        -:        -:  263:    */
       21:       21:  264:   exec_list *orig_acp = this->acp;
       21:       21:  265:   hash_table *orig_kills = this->kills;
       21:       21:  266:   bool orig_killed_all = this->killed_all;
        -:        -:  267:
       21:       21:  268:   this->acp = new(mem_ctx) exec_list;
       21:       21:  269:   this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
       21:       21:  270:                                         _mesa_key_pointer_equal);
       21:       21:  271:   this->killed_all = false;
        -:        -:  272:
       21:       21:  273:   visit_list_elements(this, &ir->body);
        -:        -:  274:
       21:       21:  275:   this->kills = orig_kills;
       21:       21:  276:   this->acp = orig_acp;
       21:       21:  277:   this->killed_all = orig_killed_all;
        -:        -:  278:
       21:       21:  279:   return visit_continue_with_parent;
        -:        -:  280:}
        -:        -:  281:
        -:        -:  282:ir_visitor_status
      408:      408:  283:ir_constant_propagation_visitor::visit_leave(ir_assignment *ir)
        -:        -:  284:{
      408:      408:  285:  constant_folding(&ir->rhs);
        -:        -:  286:
      408:      408:  287:   if (this->in_assignee)
    #####:    #####:  288:      return visit_continue;
        -:        -:  289:
      408:      408:  290:   unsigned kill_mask = ir->write_mask;
      408:      408:  291:   if (ir->lhs->as_dereference_array()) {
        -:        -:  292:      /* The LHS of the assignment uses an array indexing operator (e.g. v[i]
        -:        -:  293:       * = ...;).  Since we only try to constant propagate vectors and
        -:        -:  294:       * scalars, this means that either (a) array indexing is being used to
        -:        -:  295:       * select a vector component, or (b) the variable in question is neither
        -:        -:  296:       * a scalar or a vector, so we don't care about it.  In the former case,
        -:        -:  297:       * we want to kill the whole vector, since in general we can't predict
        -:        -:  298:       * which vector component will be selected by array indexing.  In the
        -:        -:  299:       * latter case, it doesn't matter what we do, so go ahead and kill the
        -:        -:  300:       * whole variable anyway.
        -:        -:  301:       *
        -:        -:  302:       * Note that if the array index is constant (e.g. v[2] = ...;), we could
        -:        -:  303:       * in principle be smarter, but we don't need to, because a future
        -:        -:  304:       * optimization pass will convert it to a simple assignment with the
        -:        -:  305:       * correct mask.
        -:        -:  306:       */
        6:        6:  307:      kill_mask = ~0;
        -:        -:  308:   }
      408:      408:  309:   kill(ir->lhs->variable_referenced(), kill_mask);
        -:        -:  310:
      408:      408:  311:   add_constant(ir);
        -:        -:  312:
      408:      408:  313:   return visit_continue;
        -:        -:  314:}
        -:        -:  315:
        -:        -:  316:ir_visitor_status
       21:       21:  317:ir_constant_propagation_visitor::visit_enter(ir_function *ir)
        -:        -:  318:{
        -:        -:  319:   (void) ir;
       21:       21:  320:   return visit_continue;
        -:        -:  321:}
        -:        -:  322:
        -:        -:  323:ir_visitor_status
        6:        6:  324:ir_constant_propagation_visitor::visit_enter(ir_call *ir)
        -:        -:  325:{
        -:        -:  326:   /* Do constant propagation on call parameters, but skip any out params */
       18:       18:  327:   foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  328:                     actual_node, &ir->actual_parameters) {
       12:       12:  329:      ir_variable *sig_param = (ir_variable *) formal_node;
       12:       12:  330:      ir_rvalue *param = (ir_rvalue *) actual_node;
       12:       12:  331:      if (sig_param->data.mode != ir_var_function_out
       12:       12:  332:          && sig_param->data.mode != ir_var_function_inout) {
       12:       12:  333:	 ir_rvalue *new_param = param;
       12:       12:  334:	 handle_rvalue(&new_param);
       12:       12:  335:         if (new_param != param)
    #####:    #####:  336:	    param->replace_with(new_param);
        -:        -:  337:	 else
       12:       12:  338:	    param->accept(this);
        -:        -:  339:      }
        -:        -:  340:   }
        -:        -:  341:
        -:        -:  342:   /* Since we're unlinked, we don't (necssarily) know the side effects of
        -:        -:  343:    * this call.  So kill all copies.
        -:        -:  344:    */
        6:        6:  345:   acp->make_empty();
        6:        6:  346:   this->killed_all = true;
        -:        -:  347:
        6:        6:  348:   return visit_continue_with_parent;
        -:        -:  349:}
        -:        -:  350:
        -:        -:  351:void
      184:      246:  352:ir_constant_propagation_visitor::handle_if_block(exec_list *instructions)
        -:        -:  353:{
      184:      246:  354:   exec_list *orig_acp = this->acp;
      184:      246:  355:   hash_table *orig_kills = this->kills;
      184:      246:  356:   bool orig_killed_all = this->killed_all;
        -:        -:  357:
      184:      246:  358:   this->acp = new(mem_ctx) exec_list;
      184:      246:  359:   this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
      184:      246:  360:                                         _mesa_key_pointer_equal);
      184:      246:  361:   this->killed_all = false;
        -:        -:  362:
        -:        -:  363:   /* Populate the initial acp with a constant of the original */
      214:      276:  364:   foreach_in_list(acp_entry, a, orig_acp) {
       30:       30:  365:      this->acp->push_tail(new(this->lin_ctx) acp_entry(a));
        -:        -:  366:   }
        -:        -:  367:
      184:      246:  368:   visit_list_elements(this, instructions);
        -:        -:  369:
      184:      246:  370:   if (this->killed_all) {
    #####:    #####:  371:      orig_acp->make_empty();
        -:        -:  372:   }
        -:        -:  373:
      184:      246:  374:   hash_table *new_kills = this->kills;
      184:      246:  375:   this->kills = orig_kills;
      184:      246:  376:   this->acp = orig_acp;
      184:      246:  377:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  378:
        -:        -:  379:   hash_entry *htk;
      323:      385:  380:   hash_table_foreach(new_kills, htk) {
      139:      139:  381:      kill_entry *k = (kill_entry *) htk->data;
      139:      139:  382:      kill(k->var, k->write_mask);
        -:        -:  383:   }
      184:      246:  384:}
        -:        -:  385:
        -:        -:  386:ir_visitor_status
       92:      123:  387:ir_constant_propagation_visitor::visit_enter(ir_if *ir)
        -:        -:  388:{
       92:      123:  389:   ir->condition->accept(this);
       92:      123:  390:   handle_rvalue(&ir->condition);
        -:        -:  391:
       92:      123:  392:   handle_if_block(&ir->then_instructions);
       92:      123:  393:   handle_if_block(&ir->else_instructions);
        -:        -:  394:
        -:        -:  395:   /* handle_if_block() already descended into the children. */
       92:      123:  396:   return visit_continue_with_parent;
        -:        -:  397:}
        -:        -:  398:
        -:        -:  399:ir_visitor_status
       24:       39:  400:ir_constant_propagation_visitor::visit_enter(ir_loop *ir)
        -:        -:  401:{
       24:       39:  402:   exec_list *orig_acp = this->acp;
       24:       39:  403:   hash_table *orig_kills = this->kills;
       24:       39:  404:   bool orig_killed_all = this->killed_all;
        -:        -:  405:
        -:        -:  406:   /* FINISHME: For now, the initial acp for loops is totally empty.
        -:        -:  407:    * We could go through once, then go through again with the acp
        -:        -:  408:    * cloned minus the killed entries after the first run through.
        -:        -:  409:    */
       24:       39:  410:   this->acp = new(mem_ctx) exec_list;
       24:       39:  411:   this->kills = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
       24:       39:  412:                                         _mesa_key_pointer_equal);
       24:       39:  413:   this->killed_all = false;
        -:        -:  414:
       24:       39:  415:   visit_list_elements(this, &ir->body_instructions);
        -:        -:  416:
       24:       39:  417:   if (this->killed_all) {
    #####:    #####:  418:      orig_acp->make_empty();
        -:        -:  419:   }
        -:        -:  420:
       24:       39:  421:   hash_table *new_kills = this->kills;
       24:       39:  422:   this->kills = orig_kills;
       24:       39:  423:   this->acp = orig_acp;
       24:       39:  424:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  425:
        -:        -:  426:   hash_entry *htk;
      151:      194:  427:   hash_table_foreach(new_kills, htk) {
      127:      155:  428:      kill_entry *k = (kill_entry *) htk->data;
      127:      155:  429:      kill(k->var, k->write_mask);
        -:        -:  430:   }
        -:        -:  431:
        -:        -:  432:   /* already descended into the children. */
       24:       39:  433:   return visit_continue_with_parent;
        -:        -:  434:}
        -:        -:  435:
        -:        -:  436:void
      674:      702:  437:ir_constant_propagation_visitor::kill(ir_variable *var, unsigned write_mask)
        -:        -:  438:{
      674:      702:  439:   assert(var != NULL);
        -:        -:  440:
        -:        -:  441:   /* We don't track non-vectors. */
      674:      702:  442:   if (!var->type->is_vector() && !var->type->is_scalar())
    #####:    #####:  443:      return;
        -:        -:  444:
        -:        -:  445:   /* Remove any entries currently in the ACP for this kill. */
      957:      984:  446:   foreach_in_list_safe(acp_entry, entry, this->acp) {
      283:      282:  447:      if (entry->var == var) {
       43:       43:  448:	 entry->write_mask &= ~write_mask;
       43:       43:  449:	 if (entry->write_mask == 0)
       38:       38:  450:	    entry->remove();
        -:        -:  451:      }
        -:        -:  452:   }
        -:        -:  453:
        -:        -:  454:   /* Add this writemask of the variable to the hash table of killed
        -:        -:  455:    * variables in this block.
        -:        -:  456:    */
      674:      702:  457:   hash_entry *kill_hash_entry = _mesa_hash_table_search(this->kills, var);
      674:      702:  458:   if (kill_hash_entry) {
      239:      239:  459:      kill_entry *entry = (kill_entry *) kill_hash_entry->data;
      239:      239:  460:      entry->write_mask |= write_mask;
      239:      239:  461:      return;
        -:        -:  462:   }
        -:        -:  463:   /* Not already in the hash table.  Make new entry. */
      870:      926:  464:   _mesa_hash_table_insert(this->kills, var,
      870:      926:  465:                           new(this->lin_ctx) kill_entry(var, write_mask));
        -:        -:  466:}
        -:        -:  467:
        -:        -:  468:/**
        -:        -:  469: * Adds an entry to the available constant list if it's a plain assignment
        -:        -:  470: * of a variable to a variable.
        -:        -:  471: */
        -:        -:  472:void
      408:      408:  473:ir_constant_propagation_visitor::add_constant(ir_assignment *ir)
        -:        -:  474:{
        -:        -:  475:   acp_entry *entry;
        -:        -:  476:
      408:      408:  477:   if (ir->condition)
       37:       37:  478:      return;
        -:        -:  479:
      371:      371:  480:   if (!ir->write_mask)
    #####:    #####:  481:      return;
        -:        -:  482:
      371:      371:  483:   ir_dereference_variable *deref = ir->lhs->as_dereference_variable();
      371:      371:  484:   ir_constant *constant = ir->rhs->as_constant();
        -:        -:  485:
      371:      371:  486:   if (!deref || !constant)
      282:      282:  487:      return;
        -:        -:  488:
        -:        -:  489:   /* Only do constant propagation on vectors.  Constant matrices,
        -:        -:  490:    * arrays, or structures would require more work elsewhere.
        -:        -:  491:    */
       89:       89:  492:   if (!deref->var->type->is_vector() && !deref->var->type->is_scalar())
    #####:    #####:  493:      return;
        -:        -:  494:
        -:        -:  495:   /* We can't do copy propagation on buffer variables, since the underlying
        -:        -:  496:    * memory storage is shared across multiple threads we can't be sure that
        -:        -:  497:    * the variable value isn't modified between this assignment and the next
        -:        -:  498:    * instruction where its value is read.
        -:        -:  499:    */
      178:      178:  500:   if (deref->var->data.mode == ir_var_shader_storage ||
       89:       89:  501:       deref->var->data.mode == ir_var_shader_shared)
    #####:    #####:  502:      return;
        -:        -:  503:
       89:       89:  504:   entry = new(this->lin_ctx) acp_entry(deref->var, ir->write_mask, constant);
       89:       89:  505:   this->acp->push_tail(entry);
        -:        -:  506:}
        -:        -:  507:
        -:        -:  508:} /* unnamed namespace */
        -:        -:  509:
        -:        -:  510:/**
        -:        -:  511: * Does a constant propagation pass on the code present in the instruction stream.
        -:        -:  512: */
        -:        -:  513:bool
       18:       18:  514:do_constant_propagation(exec_list *instructions)
        -:        -:  515:{
       36:       36:  516:   ir_constant_propagation_visitor v;
        -:        -:  517:
       18:       18:  518:   visit_list_elements(&v, instructions);
        -:        -:  519:
       36:       36:  520:   return v.progress;
        -:        -:  521:}

src/compiler/opt_copy_propagation.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation.cpp
        -:        -:    0:Graph:glsl/.libs/opt_copy_propagation.gcno
        -:        -:    0:Data:glsl/.libs/opt_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_copy_propagation.cpp
        -:        -:   26: *
        -:        -:   27: * Moves usage of recently-copied variables to the previous copy of
        -:        -:   28: * the variable.
        -:        -:   29: *
        -:        -:   30: * This should reduce the number of MOV instructions in the generated
        -:        -:   31: * programs unless copy propagation is also done on the LIR, and may
        -:        -:   32: * help anyway by triggering other optimizations that live in the HIR.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:#include "ir.h"
        -:        -:   36:#include "ir_visitor.h"
        -:        -:   37:#include "ir_basic_block.h"
        -:        -:   38:#include "ir_optimization.h"
        -:        -:   39:#include "compiler/glsl_types.h"
        -:        -:   40:#include "util/hash_table.h"
        -:        -:   41:#include "util/set.h"
        -:        -:   42:
        -:        -:   43:namespace {
        -:        -:   44:
        -:        -:   45:class ir_copy_propagation_visitor : public ir_hierarchical_visitor {
        -:        -:   46:public:
       18:       18:   47:   ir_copy_propagation_visitor()
       18:       18:   48:   {
       18:       18:   49:      progress = false;
       18:       18:   50:      mem_ctx = ralloc_context(0);
       18:       18:   51:      lin_ctx = linear_alloc_parent(mem_ctx, 0);
       18:       18:   52:      acp = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
       18:       18:   53:                                    _mesa_key_pointer_equal);
       18:       18:   54:      kills = _mesa_set_create(mem_ctx, _mesa_hash_pointer,
       18:       18:   55:                               _mesa_key_pointer_equal);
       18:       18:   56:      killed_all = false;
       18:       18:   57:   }
       18:       18:   58:   ~ir_copy_propagation_visitor()
       36:       36:   59:   {
       18:       18:   60:      ralloc_free(mem_ctx);
       18:       18:   61:   }
        -:        -:   62:
        -:        -:   63:   virtual ir_visitor_status visit(class ir_dereference_variable *);
        -:        -:   64:   void handle_loop(class ir_loop *, bool keep_acp);
        -:        -:   65:   virtual ir_visitor_status visit_enter(class ir_loop *);
        -:        -:   66:   virtual ir_visitor_status visit_enter(class ir_function_signature *);
        -:        -:   67:   virtual ir_visitor_status visit_enter(class ir_function *);
        -:        -:   68:   virtual ir_visitor_status visit_leave(class ir_assignment *);
        -:        -:   69:   virtual ir_visitor_status visit_enter(class ir_call *);
        -:        -:   70:   virtual ir_visitor_status visit_enter(class ir_if *);
        -:        -:   71:
        -:        -:   72:   void add_copy(ir_assignment *ir);
        -:        -:   73:   void kill(ir_variable *ir);
        -:        -:   74:   void handle_if_block(exec_list *instructions);
        -:        -:   75:
        -:        -:   76:   /** Hash of lhs->rhs: The available copies to propagate */
        -:        -:   77:   hash_table *acp;
        -:        -:   78:
        -:        -:   79:   /**
        -:        -:   80:    * Set of ir_variables: Whose values were killed in this block.
        -:        -:   81:    */
        -:        -:   82:   set *kills;
        -:        -:   83:
        -:        -:   84:   bool progress;
        -:        -:   85:
        -:        -:   86:   bool killed_all;
        -:        -:   87:
        -:        -:   88:   void *mem_ctx;
        -:        -:   89:   void *lin_ctx;
        -:        -:   90:};
        -:        -:   91:
        -:        -:   92:} /* unnamed namespace */
        -:        -:   93:
        -:        -:   94:ir_visitor_status
       21:       21:   95:ir_copy_propagation_visitor::visit_enter(ir_function_signature *ir)
        -:        -:   96:{
        -:        -:   97:   /* Treat entry into a function signature as a completely separate
        -:        -:   98:    * block.  Any instructions at global scope will be shuffled into
        -:        -:   99:    * main() at link time, so they're irrelevant to us.
        -:        -:  100:    */
       21:       21:  101:   hash_table *orig_acp = this->acp;
       21:       21:  102:   set *orig_kills = this->kills;
       21:       21:  103:   bool orig_killed_all = this->killed_all;
        -:        -:  104:
       21:       21:  105:   acp = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
       21:       21:  106:                                 _mesa_key_pointer_equal);
       21:       21:  107:   kills = _mesa_set_create(NULL, _mesa_hash_pointer,
       21:       21:  108:                            _mesa_key_pointer_equal);
       21:       21:  109:   this->killed_all = false;
        -:        -:  110:
       21:       21:  111:   visit_list_elements(this, &ir->body);
        -:        -:  112:
       21:       21:  113:   _mesa_hash_table_destroy(acp, NULL);
       21:       21:  114:   _mesa_set_destroy(kills, NULL);
        -:        -:  115:
       21:       21:  116:   this->kills = orig_kills;
       21:       21:  117:   this->acp = orig_acp;
       21:       21:  118:   this->killed_all = orig_killed_all;
        -:        -:  119:
       21:       21:  120:   return visit_continue_with_parent;
        -:        -:  121:}
        -:        -:  122:
        -:        -:  123:ir_visitor_status
      710:      766:  124:ir_copy_propagation_visitor::visit_leave(ir_assignment *ir)
        -:        -:  125:{
      710:      766:  126:   kill(ir->lhs->variable_referenced());
        -:        -:  127:
      710:      766:  128:   add_copy(ir);
        -:        -:  129:
      710:      766:  130:   return visit_continue;
        -:        -:  131:}
        -:        -:  132:
        -:        -:  133:ir_visitor_status
       21:       21:  134:ir_copy_propagation_visitor::visit_enter(ir_function *ir)
        -:        -:  135:{
        -:        -:  136:   (void) ir;
       21:       21:  137:   return visit_continue;
        -:        -:  138:}
        -:        -:  139:
        -:        -:  140:/**
        -:        -:  141: * Replaces dereferences of ACP RHS variables with ACP LHS variables.
        -:        -:  142: *
        -:        -:  143: * This is where the actual copy propagation occurs.  Note that the
        -:        -:  144: * rewriting of ir_dereference means that the ir_dereference instance
        -:        -:  145: * must not be shared by multiple IR operations!
        -:        -:  146: */
        -:        -:  147:ir_visitor_status
     1836:     2078:  148:ir_copy_propagation_visitor::visit(ir_dereference_variable *ir)
        -:        -:  149:{
     1836:     2078:  150:   if (this->in_assignee)
      710:      766:  151:      return visit_continue;
        -:        -:  152:
     1126:     1312:  153:   struct hash_entry *entry = _mesa_hash_table_search(acp, ir->var);
     1126:     1312:  154:   if (entry) {
       37:       37:  155:      ir->var = (ir_variable *) entry->data;
       37:       37:  156:      progress = true;
        -:        -:  157:   }
        -:        -:  158:
     1126:     1312:  159:   return visit_continue;
        -:        -:  160:}
        -:        -:  161:
        -:        -:  162:
        -:        -:  163:ir_visitor_status
        6:        6:  164:ir_copy_propagation_visitor::visit_enter(ir_call *ir)
        -:        -:  165:{
        -:        -:  166:   /* Do copy propagation on call parameters, but skip any out params */
       18:       18:  167:   foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  168:                     actual_node, &ir->actual_parameters) {
       12:       12:  169:      ir_variable *sig_param = (ir_variable *) formal_node;
       12:       12:  170:      ir_rvalue *ir = (ir_rvalue *) actual_node;
       12:       12:  171:      if (sig_param->data.mode != ir_var_function_out
       12:       12:  172:          && sig_param->data.mode != ir_var_function_inout) {
       12:       12:  173:         ir->accept(this);
        -:        -:  174:      }
        -:        -:  175:   }
        -:        -:  176:
        -:        -:  177:   /* Since this pass can run when unlinked, we don't (necessarily) know
        -:        -:  178:    * the side effects of calls.  (When linked, most calls are inlined
        -:        -:  179:    * anyway, so it doesn't matter much.)
        -:        -:  180:    *
        -:        -:  181:    * One place where this does matter is IR intrinsics.  They're never
        -:        -:  182:    * inlined.  We also know what they do - while some have side effects
        -:        -:  183:    * (such as image writes), none edit random global variables.  So we
        -:        -:  184:    * can assume they're side-effect free (other than the return value
        -:        -:  185:    * and out parameters).
        -:        -:  186:    */
        6:        6:  187:   if (!ir->callee->is_intrinsic()) {
        6:        6:  188:      _mesa_hash_table_clear(acp, NULL);
        6:        6:  189:      this->killed_all = true;
        -:        -:  190:   } else {
    #####:    #####:  191:      if (ir->return_deref)
    #####:    #####:  192:         kill(ir->return_deref->var);
        -:        -:  193:
    #####:    #####:  194:      foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  195:                        actual_node, &ir->actual_parameters) {
    #####:    #####:  196:         ir_variable *sig_param = (ir_variable *) formal_node;
    #####:    #####:  197:         if (sig_param->data.mode == ir_var_function_out ||
    #####:    #####:  198:             sig_param->data.mode == ir_var_function_inout) {
    #####:    #####:  199:            ir_rvalue *ir = (ir_rvalue *) actual_node;
    #####:    #####:  200:            ir_variable *var = ir->variable_referenced();
    #####:    #####:  201:            kill(var);
        -:        -:  202:         }
        -:        -:  203:      }
        -:        -:  204:   }
        -:        -:  205:
        6:        6:  206:   return visit_continue_with_parent;
        -:        -:  207:}
        -:        -:  208:
        -:        -:  209:void
      340:      592:  210:ir_copy_propagation_visitor::handle_if_block(exec_list *instructions)
        -:        -:  211:{
      340:      592:  212:   hash_table *orig_acp = this->acp;
      340:      592:  213:   set *orig_kills = this->kills;
      340:      592:  214:   bool orig_killed_all = this->killed_all;
        -:        -:  215:
      340:      592:  216:   acp = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
      340:      592:  217:                                 _mesa_key_pointer_equal);
      340:      592:  218:   kills = _mesa_set_create(NULL, _mesa_hash_pointer,
      340:      592:  219:                            _mesa_key_pointer_equal);
      340:      592:  220:   this->killed_all = false;
        -:        -:  221:
        -:        -:  222:   /* Populate the initial acp with a copy of the original */
        -:        -:  223:   struct hash_entry *entry;
     1092:     1434:  224:   hash_table_foreach(orig_acp, entry) {
      752:      842:  225:      _mesa_hash_table_insert(acp, entry->key, entry->data);
        -:        -:  226:   }
        -:        -:  227:
      340:      592:  228:   visit_list_elements(this, instructions);
        -:        -:  229:
      340:      592:  230:   if (this->killed_all) {
    #####:    #####:  231:      _mesa_hash_table_clear(orig_acp, NULL);
        -:        -:  232:   }
        -:        -:  233:
      340:      592:  234:   set *new_kills = this->kills;
      340:      592:  235:   this->kills = orig_kills;
      340:      592:  236:   _mesa_hash_table_destroy(acp, NULL);
      340:      592:  237:   this->acp = orig_acp;
      340:      592:  238:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  239:
        -:        -:  240:   struct set_entry *s_entry;
      645:      953:  241:   set_foreach(new_kills, s_entry) {
      305:      361:  242:      kill((ir_variable *) s_entry->key);
        -:        -:  243:   }
        -:        -:  244:
      340:      592:  245:   _mesa_set_destroy(new_kills, NULL);
      340:      592:  246:}
        -:        -:  247:
        -:        -:  248:ir_visitor_status
      170:      296:  249:ir_copy_propagation_visitor::visit_enter(ir_if *ir)
        -:        -:  250:{
      170:      296:  251:   ir->condition->accept(this);
        -:        -:  252:
      170:      296:  253:   handle_if_block(&ir->then_instructions);
      170:      296:  254:   handle_if_block(&ir->else_instructions);
        -:        -:  255:
        -:        -:  256:   /* handle_if_block() already descended into the children. */
      170:      296:  257:   return visit_continue_with_parent;
        -:        -:  258:}
        -:        -:  259:
        -:        -:  260:void
       48:      108:  261:ir_copy_propagation_visitor::handle_loop(ir_loop *ir, bool keep_acp)
        -:        -:  262:{
       48:      108:  263:   hash_table *orig_acp = this->acp;
       48:      108:  264:   set *orig_kills = this->kills;
       48:      108:  265:   bool orig_killed_all = this->killed_all;
        -:        -:  266:
       48:      108:  267:   acp = _mesa_hash_table_create(NULL, _mesa_hash_pointer,
       48:      108:  268:                                 _mesa_key_pointer_equal);
       48:      108:  269:   kills = _mesa_set_create(NULL, _mesa_hash_pointer,
       48:      108:  270:                            _mesa_key_pointer_equal);
       48:      108:  271:   this->killed_all = false;
        -:        -:  272:
       48:      108:  273:   if (keep_acp) {
        -:        -:  274:      struct hash_entry *entry;
       47:       97:  275:      hash_table_foreach(orig_acp, entry) {
       23:       43:  276:         _mesa_hash_table_insert(acp, entry->key, entry->data);
        -:        -:  277:      }
        -:        -:  278:   }
        -:        -:  279:
       48:      108:  280:   visit_list_elements(this, &ir->body_instructions);
        -:        -:  281:
       48:      108:  282:   if (this->killed_all) {
    #####:    #####:  283:      _mesa_hash_table_clear(orig_acp, NULL);
        -:        -:  284:   }
        -:        -:  285:
       48:      108:  286:   set *new_kills = this->kills;
       48:      108:  287:   this->kills = orig_kills;
       48:      108:  288:   _mesa_hash_table_destroy(acp, NULL);
       48:      108:  289:   this->acp = orig_acp;
       48:      108:  290:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  291:
        -:        -:  292:   struct set_entry *entry;
      408:      580:  293:   set_foreach(new_kills, entry) {
      360:      472:  294:      kill((ir_variable *) entry->key);
        -:        -:  295:   }
        -:        -:  296:
       48:      108:  297:   _mesa_set_destroy(new_kills, NULL);
       48:      108:  298:}
        -:        -:  299:
        -:        -:  300:ir_visitor_status
       24:       54:  301:ir_copy_propagation_visitor::visit_enter(ir_loop *ir)
        -:        -:  302:{
        -:        -:  303:   /* Make a conservative first pass over the loop with an empty ACP set.
        -:        -:  304:    * This also removes any killed entries from the original ACP set.
        -:        -:  305:    */
       24:       54:  306:   handle_loop(ir, false);
        -:        -:  307:
        -:        -:  308:   /* Then, run it again with the real ACP set, minus any killed entries.
        -:        -:  309:    * This takes care of propagating values from before the loop into it.
        -:        -:  310:    */
       24:       54:  311:   handle_loop(ir, true);
        -:        -:  312:
        -:        -:  313:   /* already descended into the children. */
       24:       54:  314:   return visit_continue_with_parent;
        -:        -:  315:}
        -:        -:  316:
        -:        -:  317:void
     1375:     1599:  318:ir_copy_propagation_visitor::kill(ir_variable *var)
        -:        -:  319:{
     1375:     1599:  320:   assert(var != NULL);
        -:        -:  321:
        -:        -:  322:   /* Remove any entries currently in the ACP for this kill. */
     1375:     1599:  323:   struct hash_entry *entry = _mesa_hash_table_search(acp, var);
     1375:     1599:  324:   if (entry) {
       62:       62:  325:      _mesa_hash_table_remove(acp, entry);
        -:        -:  326:   }
        -:        -:  327:
     5697:     5906:  328:   hash_table_foreach(acp, entry) {
     4322:     4307:  329:      if (var == (ir_variable *) entry->data) {
       38:       38:  330:         _mesa_hash_table_remove(acp, entry);
        -:        -:  331:      }
        -:        -:  332:   }
        -:        -:  333:
        -:        -:  334:   /* Add the LHS variable to the set of killed variables in this block. */
     1375:     1599:  335:   _mesa_set_add(kills, var);
     1375:     1599:  336:}
        -:        -:  337:
        -:        -:  338:/**
        -:        -:  339: * Adds an entry to the available copy list if it's a plain assignment
        -:        -:  340: * of a variable to a variable.
        -:        -:  341: */
        -:        -:  342:void
      710:      766:  343:ir_copy_propagation_visitor::add_copy(ir_assignment *ir)
        -:        -:  344:{
      710:      766:  345:   if (ir->condition)
       72:       72:  346:      return;
        -:        -:  347:
      638:      694:  348:   ir_variable *lhs_var = ir->whole_variable_written();
      638:      694:  349:   ir_variable *rhs_var = ir->rhs->whole_variable_referenced();
        -:        -:  350:
      638:      694:  351:   if ((lhs_var != NULL) && (rhs_var != NULL)) {
      209:      237:  352:      if (lhs_var == rhs_var) {
        -:        -:  353:	 /* This is a dumb assignment, but we've conveniently noticed
        -:        -:  354:	  * it here.  Removing it now would mess up the loop iteration
        -:        -:  355:	  * calling us.  Just flag it to not execute, and someone else
        -:        -:  356:	  * will clean up the mess.
        -:        -:  357:	  */
        1:        1:  358:	 ir->condition = new(ralloc_parent(ir)) ir_constant(false);
        1:        1:  359:	 this->progress = true;
      416:      472:  360:      } else if (lhs_var->data.mode != ir_var_shader_storage &&
      416:      472:  361:                 lhs_var->data.mode != ir_var_shader_shared &&
      208:      236:  362:                 lhs_var->data.precise == rhs_var->data.precise) {
      208:      236:  363:         assert(lhs_var);
      208:      236:  364:         assert(rhs_var);
      208:      236:  365:         _mesa_hash_table_insert(acp, lhs_var, rhs_var);
        -:        -:  366:      }
        -:        -:  367:   }
        -:        -:  368:}
        -:        -:  369:
        -:        -:  370:/**
        -:        -:  371: * Does a copy propagation pass on the code present in the instruction stream.
        -:        -:  372: */
        -:        -:  373:bool
       18:       18:  374:do_copy_propagation(exec_list *instructions)
        -:        -:  375:{
       36:       36:  376:   ir_copy_propagation_visitor v;
        -:        -:  377:
       18:       18:  378:   visit_list_elements(&v, instructions);
        -:        -:  379:
       36:       36:  380:   return v.progress;
        -:        -:  381:}

src/compiler/opt_copy_propagation_elements.cpp.gcov

        -:        -:    0:Source:glsl/opt_copy_propagation_elements.cpp
        -:        -:    0:Graph:glsl/.libs/opt_copy_propagation_elements.gcno
        -:        -:    0:Data:glsl/.libs/opt_copy_propagation_elements.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_copy_propagation_elements.cpp
        -:        -:   26: *
        -:        -:   27: * Replaces usage of recently-copied components of variables with the
        -:        -:   28: * previous copy of the variable.
        -:        -:   29: *
        -:        -:   30: * This pass can be compared with opt_copy_propagation, which operands
        -:        -:   31: * on arbitrary whole-variable copies.  However, in order to handle
        -:        -:   32: * the copy propagation of swizzled variables or writemasked writes,
        -:        -:   33: * we want to track things on a channel-wise basis.  I found that
        -:        -:   34: * trying to mix the swizzled/writemasked support here with the
        -:        -:   35: * whole-variable stuff in opt_copy_propagation.cpp just made a mess,
        -:        -:   36: * so this is separate despite the ACP handling being somewhat
        -:        -:   37: * similar.
        -:        -:   38: *
        -:        -:   39: * This should reduce the number of MOV instructions in the generated
        -:        -:   40: * programs unless copy propagation is also done on the LIR, and may
        -:        -:   41: * help anyway by triggering other optimizations that live in the HIR.
        -:        -:   42: */
        -:        -:   43:
        -:        -:   44:#include "ir.h"
        -:        -:   45:#include "ir_rvalue_visitor.h"
        -:        -:   46:#include "ir_basic_block.h"
        -:        -:   47:#include "ir_optimization.h"
        -:        -:   48:#include "compiler/glsl_types.h"
        -:        -:   49:#include "util/hash_table.h"
        -:        -:   50:
        -:        -:   51:static bool debug = false;
        -:        -:   52:
        -:        -:   53:namespace {
        -:        -:   54:
        -:        -:   55:class acp_entry;
        -:        -:   56:
        -:        -:   57:/* Class that refers to acp_entry in another exec_list. Used
        -:        -:   58: * when making removals based on rhs.
        -:        -:   59: */
        -:        -:   60:class acp_ref : public exec_node
        -:        -:   61:{
        -:        -:   62:public:
      256:      284:   63:   acp_ref(acp_entry *e)
      256:      284:   64:   {
      256:      284:   65:      entry = e;
      256:      284:   66:   }
        -:        -:   67:   acp_entry *entry;
        -:        -:   68:};
        -:        -:   69:
        -:        -:   70:class acp_entry : public exec_node
        -:        -:   71:{
        -:        -:   72:public:
        -:        -:   73:   /* override operator new from exec_node */
      256:      284:   74:   DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(acp_entry)
        -:        -:   75:
      256:      284:   76:   acp_entry(ir_variable *lhs, ir_variable *rhs, int write_mask, int swizzle[4])
      256:      284:   77:      : rhs_node(this)
        -:        -:   78:   {
      256:      284:   79:      this->lhs = lhs;
      256:      284:   80:      this->rhs = rhs;
      256:      284:   81:      this->write_mask = write_mask;
      256:      284:   82:      memcpy(this->swizzle, swizzle, sizeof(this->swizzle));
      256:      284:   83:   }
        -:        -:   84:
        -:        -:   85:   ir_variable *lhs;
        -:        -:   86:   ir_variable *rhs;
        -:        -:   87:   unsigned int write_mask;
        -:        -:   88:   int swizzle[4];
        -:        -:   89:   acp_ref rhs_node;
        -:        -:   90:};
        -:        -:   91:
        -:        -:   92:
        -:        -:   93:class kill_entry : public exec_node
        -:        -:   94:{
        -:        -:   95:public:
        -:        -:   96:   /* override operator new from exec_node */
      710:      766:   97:   DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(kill_entry)
        -:        -:   98:
      710:      766:   99:   kill_entry(ir_variable *var, int write_mask)
      710:      766:  100:   {
      710:      766:  101:      this->var = var;
      710:      766:  102:      this->write_mask = write_mask;
      710:      766:  103:   }
        -:        -:  104:
        -:        -:  105:   ir_variable *var;
        -:        -:  106:   unsigned int write_mask;
        -:        -:  107:};
        -:        -:  108:
        -:        -:  109:class ir_copy_propagation_elements_visitor : public ir_rvalue_visitor {
        -:        -:  110:public:
       18:       18:  111:   ir_copy_propagation_elements_visitor()
       18:       18:  112:   {
       18:       18:  113:      this->progress = false;
       18:       18:  114:      this->killed_all = false;
       18:       18:  115:      this->mem_ctx = ralloc_context(NULL);
       18:       18:  116:      this->lin_ctx = linear_alloc_parent(this->mem_ctx, 0);
       18:       18:  117:      this->shader_mem_ctx = NULL;
       18:       18:  118:      this->kills = new(mem_ctx) exec_list;
        -:        -:  119:
       18:       18:  120:      create_acp();
       18:       18:  121:   }
       18:       18:  122:   ~ir_copy_propagation_elements_visitor()
       36:       36:  123:   {
       18:       18:  124:      ralloc_free(mem_ctx);
       18:       18:  125:   }
        -:        -:  126:
      427:      739:  127:   void create_acp()
        -:        -:  128:   {
      427:      739:  129:      lhs_ht = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
      427:      739:  130:                                       _mesa_key_pointer_equal);
      427:      739:  131:      rhs_ht = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
      427:      739:  132:                                       _mesa_key_pointer_equal);
      427:      739:  133:   }
        -:        -:  134:
      409:      721:  135:   void destroy_acp()
        -:        -:  136:   {
      409:      721:  137:      _mesa_hash_table_destroy(lhs_ht, NULL);
      409:      721:  138:      _mesa_hash_table_destroy(rhs_ht, NULL);
      409:      721:  139:   }
        -:        -:  140:
      364:      646:  141:   void populate_acp(hash_table *lhs, hash_table *rhs)
        -:        -:  142:   {
        -:        -:  143:      struct hash_entry *entry;
        -:        -:  144:
     1530:     1971:  145:      hash_table_foreach(lhs, entry) {
     1166:     1325:  146:         _mesa_hash_table_insert(lhs_ht, entry->key, entry->data);
        -:        -:  147:      }
        -:        -:  148:
     1262:     1690:  149:      hash_table_foreach(rhs, entry) {
      898:     1044:  150:         _mesa_hash_table_insert(rhs_ht, entry->key, entry->data);
        -:        -:  151:      }
      364:      646:  152:   }
        -:        -:  153:
        -:        -:  154:   void handle_loop(ir_loop *, bool keep_acp);
        -:        -:  155:   virtual ir_visitor_status visit_enter(class ir_loop *);
        -:        -:  156:   virtual ir_visitor_status visit_enter(class ir_function_signature *);
        -:        -:  157:   virtual ir_visitor_status visit_leave(class ir_assignment *);
        -:        -:  158:   virtual ir_visitor_status visit_enter(class ir_call *);
        -:        -:  159:   virtual ir_visitor_status visit_enter(class ir_if *);
        -:        -:  160:   virtual ir_visitor_status visit_leave(class ir_swizzle *);
        -:        -:  161:
        -:        -:  162:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  163:
        -:        -:  164:   void add_copy(ir_assignment *ir);
        -:        -:  165:   void kill(kill_entry *k);
        -:        -:  166:   void handle_if_block(exec_list *instructions);
        -:        -:  167:
        -:        -:  168:   /** Hash of acp_entry: The available copies to propagate */
        -:        -:  169:   hash_table *lhs_ht;
        -:        -:  170:   hash_table *rhs_ht;
        -:        -:  171:
        -:        -:  172:   /**
        -:        -:  173:    * List of kill_entry: The variables whose values were killed in this
        -:        -:  174:    * block.
        -:        -:  175:    */
        -:        -:  176:   exec_list *kills;
        -:        -:  177:
        -:        -:  178:   bool progress;
        -:        -:  179:
        -:        -:  180:   bool killed_all;
        -:        -:  181:
        -:        -:  182:   /* Context for our local data structures. */
        -:        -:  183:   void *mem_ctx;
        -:        -:  184:   void *lin_ctx;
        -:        -:  185:   /* Context for allocating new shader nodes. */
        -:        -:  186:   void *shader_mem_ctx;
        -:        -:  187:};
        -:        -:  188:
        -:        -:  189:} /* unnamed namespace */
        -:        -:  190:
        -:        -:  191:ir_visitor_status
       21:       21:  192:ir_copy_propagation_elements_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  193:{
        -:        -:  194:   /* Treat entry into a function signature as a completely separate
        -:        -:  195:    * block.  Any instructions at global scope will be shuffled into
        -:        -:  196:    * main() at link time, so they're irrelevant to us.
        -:        -:  197:    */
       21:       21:  198:   exec_list *orig_kills = this->kills;
       21:       21:  199:   bool orig_killed_all = this->killed_all;
        -:        -:  200:
       21:       21:  201:   hash_table *orig_lhs_ht = lhs_ht;
       21:       21:  202:   hash_table *orig_rhs_ht = rhs_ht;
        -:        -:  203:
       21:       21:  204:   this->kills = new(mem_ctx) exec_list;
       21:       21:  205:   this->killed_all = false;
        -:        -:  206:
       21:       21:  207:   create_acp();
        -:        -:  208:
       21:       21:  209:   visit_list_elements(this, &ir->body);
        -:        -:  210:
       21:       21:  211:   ralloc_free(this->kills);
        -:        -:  212:
       21:       21:  213:   destroy_acp();
        -:        -:  214:
       21:       21:  215:   this->kills = orig_kills;
       21:       21:  216:   this->killed_all = orig_killed_all;
        -:        -:  217:
       21:       21:  218:   lhs_ht = orig_lhs_ht;
       21:       21:  219:   rhs_ht = orig_rhs_ht;
        -:        -:  220:
       21:       21:  221:   return visit_continue_with_parent;
        -:        -:  222:}
        -:        -:  223:
        -:        -:  224:ir_visitor_status
      710:      766:  225:ir_copy_propagation_elements_visitor::visit_leave(ir_assignment *ir)
        -:        -:  226:{
      710:      766:  227:   ir_dereference_variable *lhs = ir->lhs->as_dereference_variable();
      710:      766:  228:   ir_variable *var = ir->lhs->variable_referenced();
        -:        -:  229:
      710:      766:  230:   if (var->type->is_scalar() || var->type->is_vector()) {
        -:        -:  231:      kill_entry *k;
        -:        -:  232:
      710:      766:  233:      if (lhs)
      698:      754:  234:	 k = new(this->lin_ctx) kill_entry(var, ir->write_mask);
        -:        -:  235:      else
       12:       12:  236:	 k = new(this->lin_ctx) kill_entry(var, ~0);
        -:        -:  237:
      710:      766:  238:      kill(k);
        -:        -:  239:   }
        -:        -:  240:
      710:      766:  241:   add_copy(ir);
        -:        -:  242:
      710:      766:  243:   return visit_continue;
        -:        -:  244:}
        -:        -:  245:
        -:        -:  246:ir_visitor_status
      142:      222:  247:ir_copy_propagation_elements_visitor::visit_leave(ir_swizzle *)
        -:        -:  248:{
        -:        -:  249:   /* Don't visit the values of swizzles since they are handled while
        -:        -:  250:    * visiting the swizzle itself.
        -:        -:  251:    */
      142:      222:  252:   return visit_continue;
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:/**
        -:        -:  256: * Replaces dereferences of ACP RHS variables with ACP LHS variables.
        -:        -:  257: *
        -:        -:  258: * This is where the actual copy propagation occurs.  Note that the
        -:        -:  259: * rewriting of ir_dereference means that the ir_dereference instance
        -:        -:  260: * must not be shared by multiple IR operations!
        -:        -:  261: */
        -:        -:  262:void
     1293:     1509:  263:ir_copy_propagation_elements_visitor::handle_rvalue(ir_rvalue **ir)
        -:        -:  264:{
        -:        -:  265:   int swizzle_chan[4];
        -:        -:  266:   ir_dereference_variable *deref_var;
     1293:     1509:  267:   ir_variable *source[4] = {NULL, NULL, NULL, NULL};
     1293:     1509:  268:   int source_chan[4] = {0, 0, 0, 0};
        -:        -:  269:   int chans;
     1293:     1509:  270:   bool noop_swizzle = true;
        -:        -:  271:
     1293:     1509:  272:   if (!*ir)
     1274:     1490:  273:      return;
        -:        -:  274:
     1293:     1509:  275:   ir_swizzle *swizzle = (*ir)->as_swizzle();
     1293:     1509:  276:   if (swizzle) {
       98:      178:  277:      deref_var = swizzle->val->as_dereference_variable();
       98:      178:  278:      if (!deref_var)
    #####:    #####:  279:	 return;
        -:        -:  280:
       98:      178:  281:      swizzle_chan[0] = swizzle->mask.x;
       98:      178:  282:      swizzle_chan[1] = swizzle->mask.y;
       98:      178:  283:      swizzle_chan[2] = swizzle->mask.z;
       98:      178:  284:      swizzle_chan[3] = swizzle->mask.w;
       98:      178:  285:      chans = swizzle->type->vector_elements;
        -:        -:  286:   } else {
     1195:     1331:  287:      deref_var = (*ir)->as_dereference_variable();
     1195:     1331:  288:      if (!deref_var)
      553:      647:  289:	 return;
        -:        -:  290:
      642:      684:  291:      swizzle_chan[0] = 0;
      642:      684:  292:      swizzle_chan[1] = 1;
      642:      684:  293:      swizzle_chan[2] = 2;
      642:      684:  294:      swizzle_chan[3] = 3;
      642:      684:  295:      chans = deref_var->type->vector_elements;
        -:        -:  296:   }
        -:        -:  297:
      740:      862:  298:   if (this->in_assignee)
       12:       12:  299:      return;
        -:        -:  300:
      728:      850:  301:   ir_variable *var = deref_var->var;
        -:        -:  302:
        -:        -:  303:   /* Try to find ACP entries covering swizzle_chan[], hoping they're
        -:        -:  304:    * the same source variable.
        -:        -:  305:    */
      728:      850:  306:   hash_entry *ht_entry = _mesa_hash_table_search(lhs_ht, var);
      728:      850:  307:   if (ht_entry) {
       71:       71:  308:      exec_list *ht_list = (exec_list *) ht_entry->data;
       94:       94:  309:      foreach_in_list(acp_entry, entry, ht_list) {
       46:       46:  310:         for (int c = 0; c < chans; c++) {
       23:       23:  311:            if (entry->write_mask & (1 << swizzle_chan[c])) {
       19:       19:  312:               source[c] = entry->rhs;
       19:       19:  313:               source_chan[c] = entry->swizzle[swizzle_chan[c]];
        -:        -:  314:
       19:       19:  315:               if (source_chan[c] != swizzle_chan[c])
       13:       13:  316:                  noop_swizzle = false;
        -:        -:  317:            }
        -:        -:  318:         }
        -:        -:  319:      }
        -:        -:  320:   }
        -:        -:  321:
        -:        -:  322:   /* Make sure all channels are copying from the same source variable. */
      728:      850:  323:   if (!source[0])
      709:      831:  324:      return;
       19:       19:  325:   for (int c = 1; c < chans; c++) {
    #####:    #####:  326:      if (source[c] != source[0])
    #####:    #####:  327:	 return;
        -:        -:  328:   }
        -:        -:  329:
       19:       19:  330:   if (!shader_mem_ctx)
        4:        4:  331:      shader_mem_ctx = ralloc_parent(deref_var);
        -:        -:  332:
        -:        -:  333:   /* Don't pointlessly replace the rvalue with itself (or a noop swizzle
        -:        -:  334:    * of itself, which would just be deleted by opt_noop_swizzle).
        -:        -:  335:    */
       19:       19:  336:   if (source[0] == var && noop_swizzle)
    #####:    #####:  337:      return;
        -:        -:  338:
       19:       19:  339:   if (debug) {
    #####:    #####:  340:      printf("Copy propagation from:\n");
    #####:    #####:  341:      (*ir)->print();
        -:        -:  342:   }
        -:        -:  343:
       19:       19:  344:   deref_var = new(shader_mem_ctx) ir_dereference_variable(source[0]);
        -:        -:  345:   *ir = new(shader_mem_ctx) ir_swizzle(deref_var,
       19:       19:  346:					source_chan[0],
       19:       19:  347:					source_chan[1],
       19:       19:  348:					source_chan[2],
       19:       19:  349:					source_chan[3],
       95:       95:  350:					chans);
       19:       19:  351:   progress = true;
        -:        -:  352:
       19:       19:  353:   if (debug) {
    #####:    #####:  354:      printf("to:\n");
    #####:    #####:  355:      (*ir)->print();
    #####:    #####:  356:      printf("\n");
        -:        -:  357:   }
        -:        -:  358:}
        -:        -:  359:
        -:        -:  360:
        -:        -:  361:ir_visitor_status
        6:        6:  362:ir_copy_propagation_elements_visitor::visit_enter(ir_call *ir)
        -:        -:  363:{
        -:        -:  364:   /* Do copy propagation on call parameters, but skip any out params */
       18:       18:  365:   foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  366:                     actual_node, &ir->actual_parameters) {
       12:       12:  367:      ir_variable *sig_param = (ir_variable *) formal_node;
       12:       12:  368:      ir_rvalue *ir = (ir_rvalue *) actual_node;
       12:       12:  369:      if (sig_param->data.mode != ir_var_function_out
       12:       12:  370:          && sig_param->data.mode != ir_var_function_inout) {
       12:       12:  371:         ir->accept(this);
        -:        -:  372:      }
        -:        -:  373:   }
        -:        -:  374:
        -:        -:  375:   /* Since we're unlinked, we don't (necessarily) know the side effects of
        -:        -:  376:    * this call.  So kill all copies.
        -:        -:  377:    */
        6:        6:  378:   _mesa_hash_table_clear(lhs_ht, NULL);
        6:        6:  379:   _mesa_hash_table_clear(rhs_ht, NULL);
        -:        -:  380:
        6:        6:  381:   this->killed_all = true;
        -:        -:  382:
        6:        6:  383:   return visit_continue_with_parent;
        -:        -:  384:}
        -:        -:  385:
        -:        -:  386:void
      340:      592:  387:ir_copy_propagation_elements_visitor::handle_if_block(exec_list *instructions)
        -:        -:  388:{
      340:      592:  389:   exec_list *orig_kills = this->kills;
      340:      592:  390:   bool orig_killed_all = this->killed_all;
        -:        -:  391:
      340:      592:  392:   hash_table *orig_lhs_ht = lhs_ht;
      340:      592:  393:   hash_table *orig_rhs_ht = rhs_ht;
        -:        -:  394:
      340:      592:  395:   this->kills = new(mem_ctx) exec_list;
      340:      592:  396:   this->killed_all = false;
        -:        -:  397:
      340:      592:  398:   create_acp();
        -:        -:  399:
        -:        -:  400:   /* Populate the initial acp with a copy of the original */
      340:      592:  401:   populate_acp(orig_lhs_ht, orig_rhs_ht);
        -:        -:  402:
      340:      592:  403:   visit_list_elements(this, instructions);
        -:        -:  404:
      340:      592:  405:   if (this->killed_all) {
    #####:    #####:  406:      _mesa_hash_table_clear(orig_lhs_ht, NULL);
    #####:    #####:  407:      _mesa_hash_table_clear(orig_rhs_ht, NULL);
        -:        -:  408:   }
        -:        -:  409:
      340:      592:  410:   exec_list *new_kills = this->kills;
      340:      592:  411:   this->kills = orig_kills;
      340:      592:  412:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  413:
      340:      592:  414:   destroy_acp();
        -:        -:  415:
      340:      592:  416:   lhs_ht = orig_lhs_ht;
      340:      592:  417:   rhs_ht = orig_rhs_ht;
        -:        -:  418:
        -:        -:  419:   /* Move the new kills into the parent block's list, removing them
        -:        -:  420:    * from the parent's ACP list in the process.
        -:        -:  421:    */
      705:     1013:  422:   foreach_in_list_safe(kill_entry, k, new_kills) {
      365:      421:  423:      kill(k);
        -:        -:  424:   }
        -:        -:  425:
      340:      592:  426:   ralloc_free(new_kills);
      340:      592:  427:}
        -:        -:  428:
        -:        -:  429:ir_visitor_status
      170:      296:  430:ir_copy_propagation_elements_visitor::visit_enter(ir_if *ir)
        -:        -:  431:{
      170:      296:  432:   ir->condition->accept(this);
        -:        -:  433:
      170:      296:  434:   handle_if_block(&ir->then_instructions);
      170:      296:  435:   handle_if_block(&ir->else_instructions);
        -:        -:  436:
        -:        -:  437:   /* handle_if_block() already descended into the children. */
      170:      296:  438:   return visit_continue_with_parent;
        -:        -:  439:}
        -:        -:  440:
        -:        -:  441:void
       48:      108:  442:ir_copy_propagation_elements_visitor::handle_loop(ir_loop *ir, bool keep_acp)
        -:        -:  443:{
       48:      108:  444:   exec_list *orig_kills = this->kills;
       48:      108:  445:   bool orig_killed_all = this->killed_all;
        -:        -:  446:
       48:      108:  447:   hash_table *orig_lhs_ht = lhs_ht;
       48:      108:  448:   hash_table *orig_rhs_ht = rhs_ht;
        -:        -:  449:
        -:        -:  450:   /* FINISHME: For now, the initial acp for loops is totally empty.
        -:        -:  451:    * We could go through once, then go through again with the acp
        -:        -:  452:    * cloned minus the killed entries after the first run through.
        -:        -:  453:    */
       48:      108:  454:   this->kills = new(mem_ctx) exec_list;
       48:      108:  455:   this->killed_all = false;
        -:        -:  456:
       48:      108:  457:   create_acp();
        -:        -:  458:
       48:      108:  459:   if (keep_acp) {
        -:        -:  460:      /* Populate the initial acp with a copy of the original */
       24:       54:  461:      populate_acp(orig_lhs_ht, orig_rhs_ht);
        -:        -:  462:   }
        -:        -:  463:
       48:      108:  464:   visit_list_elements(this, &ir->body_instructions);
        -:        -:  465:
       48:      108:  466:   if (this->killed_all) {
    #####:    #####:  467:      _mesa_hash_table_clear(orig_lhs_ht, NULL);
    #####:    #####:  468:      _mesa_hash_table_clear(orig_rhs_ht, NULL);
        -:        -:  469:   }
        -:        -:  470:
       48:      108:  471:   exec_list *new_kills = this->kills;
       48:      108:  472:   this->kills = orig_kills;
       48:      108:  473:   this->killed_all = this->killed_all || orig_killed_all;
        -:        -:  474:
       48:      108:  475:   destroy_acp();
        -:        -:  476:
       48:      108:  477:   lhs_ht = orig_lhs_ht;
       48:      108:  478:   rhs_ht = orig_rhs_ht;
        -:        -:  479:
      486:      714:  480:   foreach_in_list_safe(kill_entry, k, new_kills) {
      438:      606:  481:      kill(k);
        -:        -:  482:   }
        -:        -:  483:
       48:      108:  484:   ralloc_free(new_kills);
       48:      108:  485:}
        -:        -:  486:
        -:        -:  487:ir_visitor_status
       24:       54:  488:ir_copy_propagation_elements_visitor::visit_enter(ir_loop *ir)
        -:        -:  489:{
       24:       54:  490:   handle_loop(ir, false);
       24:       54:  491:   handle_loop(ir, true);
        -:        -:  492:
        -:        -:  493:   /* already descended into the children. */
       24:       54:  494:   return visit_continue_with_parent;
        -:        -:  495:}
        -:        -:  496:
        -:        -:  497:/* Remove any entries currently in the ACP for this kill. */
        -:        -:  498:void
     1513:     1793:  499:ir_copy_propagation_elements_visitor::kill(kill_entry *k)
        -:        -:  500:{
        -:        -:  501:   /* removal of lhs entries */
     1513:     1793:  502:   hash_entry *ht_entry = _mesa_hash_table_search(lhs_ht, k->var);
     1513:     1793:  503:   if (ht_entry) {
      155:      155:  504:      exec_list *lhs_list = (exec_list *) ht_entry->data;
      273:      273:  505:      foreach_in_list_safe(acp_entry, entry, lhs_list) {
      118:      118:  506:         entry->write_mask = entry->write_mask & ~k->write_mask;
      118:      118:  507:         if (entry->write_mask == 0) {
       80:       80:  508:            entry->remove();
       80:       80:  509:            continue;
        -:        -:  510:         }
        -:        -:  511:      }
        -:        -:  512:   }
        -:        -:  513:
        -:        -:  514:   /* removal of rhs entries */
     1513:     1793:  515:   ht_entry = _mesa_hash_table_search(rhs_ht, k->var);
     1513:     1793:  516:   if (ht_entry) {
       41:       41:  517:      exec_list *rhs_list = (exec_list *) ht_entry->data;
        -:        -:  518:      acp_ref *ref;
        -:        -:  519:
      175:      175:  520:      while ((ref = (acp_ref *) rhs_list->pop_head()) != NULL) {
       67:       67:  521:         acp_entry *entry = ref->entry;
        -:        -:  522:
        -:        -:  523:         /* If entry is still in a list (not already removed by lhs entry
        -:        -:  524:          * removal above), remove it.
        -:        -:  525:          */
       67:       67:  526:         if (entry->prev || entry->next)
       43:       43:  527:            entry->remove();
        -:        -:  528:      }
        -:        -:  529:   }
        -:        -:  530:
        -:        -:  531:   /* If we were on a list, remove ourselves before inserting */
     1513:     1793:  532:   if (k->next)
      803:     1027:  533:      k->remove();
        -:        -:  534:
     1513:     1793:  535:   this->kills->push_tail(k);
     1513:     1793:  536:}
        -:        -:  537:
        -:        -:  538:/**
        -:        -:  539: * Adds directly-copied channels between vector variables to the available
        -:        -:  540: * copy propagation list.
        -:        -:  541: */
        -:        -:  542:void
      710:      766:  543:ir_copy_propagation_elements_visitor::add_copy(ir_assignment *ir)
        -:        -:  544:{
        -:        -:  545:   acp_entry *entry;
      710:      766:  546:   int orig_swizzle[4] = {0, 1, 2, 3};
        -:        -:  547:   int swizzle[4];
        -:        -:  548:
      710:      766:  549:   if (ir->condition)
      527:      555:  550:      return;
        -:        -:  551:
      637:      693:  552:   ir_dereference_variable *lhs = ir->lhs->as_dereference_variable();
      637:      693:  553:   if (!lhs || !(lhs->type->is_scalar() || lhs->type->is_vector()))
       12:       12:  554:      return;
        -:        -:  555:
      625:      681:  556:   ir_dereference_variable *rhs = ir->rhs->as_dereference_variable();
      625:      681:  557:   if (!rhs) {
      391:      419:  558:      ir_swizzle *swiz = ir->rhs->as_swizzle();
      391:      419:  559:      if (!swiz)
      359:      387:  560:	 return;
        -:        -:  561:
       32:       32:  562:      rhs = swiz->val->as_dereference_variable();
       32:       32:  563:      if (!rhs)
       10:       10:  564:	 return;
        -:        -:  565:
       22:       22:  566:      orig_swizzle[0] = swiz->mask.x;
       22:       22:  567:      orig_swizzle[1] = swiz->mask.y;
       22:       22:  568:      orig_swizzle[2] = swiz->mask.z;
       22:       22:  569:      orig_swizzle[3] = swiz->mask.w;
        -:        -:  570:   }
        -:        -:  571:
        -:        -:  572:   /* Move the swizzle channels out to the positions they match in the
        -:        -:  573:    * destination.  We don't want to have to rewrite the swizzle[]
        -:        -:  574:    * array every time we clear a bit of the write_mask.
        -:        -:  575:    */
      256:      284:  576:   int j = 0;
     1280:     1420:  577:   for (int i = 0; i < 4; i++) {
     1024:     1136:  578:      if (ir->write_mask & (1 << i))
      345:      373:  579:	 swizzle[i] = orig_swizzle[j++];
        -:        -:  580:   }
        -:        -:  581:
      256:      284:  582:   int write_mask = ir->write_mask;
      256:      284:  583:   if (lhs->var == rhs->var) {
        -:        -:  584:      /* If this is a copy from the variable to itself, then we need
        -:        -:  585:       * to be sure not to include the updated channels from this
        -:        -:  586:       * instruction in the set of new source channels to be
        -:        -:  587:       * copy-propagated from.
        -:        -:  588:       */
    #####:    #####:  589:      for (int i = 0; i < 4; i++) {
    #####:    #####:  590:	 if (ir->write_mask & (1 << orig_swizzle[i]))
    #####:    #####:  591:	    write_mask &= ~(1 << i);
        -:        -:  592:      }
        -:        -:  593:   }
        -:        -:  594:
      256:      284:  595:   if (lhs->var->data.precise != rhs->var->data.precise)
    #####:    #####:  596:      return;
        -:        -:  597:
        -:        -:  598:   entry = new(this->lin_ctx) acp_entry(lhs->var, rhs->var, write_mask,
      256:      284:  599:					swizzle);
        -:        -:  600:
        -:        -:  601:   /* lhs hash, hash of lhs -> acp_entry lists */
      256:      284:  602:   hash_entry *ht_entry = _mesa_hash_table_search(lhs_ht, lhs->var);
      256:      284:  603:   if (ht_entry) {
       49:       49:  604:      exec_list *lhs_list = (exec_list *) ht_entry->data;
       49:       49:  605:      lhs_list->push_tail(entry);
        -:        -:  606:   } else {
      207:      235:  607:      exec_list *lhs_list = new(mem_ctx) exec_list;
      207:      235:  608:      lhs_list->push_tail(entry);
      207:      235:  609:      _mesa_hash_table_insert(lhs_ht, lhs->var, lhs_list);
        -:        -:  610:   }
        -:        -:  611:
        -:        -:  612:   /* rhs hash, hash of rhs -> acp_entry pointers to lhs lists */
      256:      284:  613:   ht_entry = _mesa_hash_table_search(rhs_ht, rhs->var);
      256:      284:  614:   if (ht_entry) {
       44:       44:  615:      exec_list *rhs_list = (exec_list *) ht_entry->data;
       44:       44:  616:      rhs_list->push_tail(&entry->rhs_node);
        -:        -:  617:   } else {
      212:      240:  618:      exec_list *rhs_list = new(mem_ctx) exec_list;
      212:      240:  619:      rhs_list->push_tail(&entry->rhs_node);
      212:      240:  620:      _mesa_hash_table_insert(rhs_ht, rhs->var, rhs_list);
        -:        -:  621:   }
        -:        -:  622:}
        -:        -:  623:
        -:        -:  624:bool
       18:       18:  625:do_copy_propagation_elements(exec_list *instructions)
        -:        -:  626:{
       36:       36:  627:   ir_copy_propagation_elements_visitor v;
        -:        -:  628:
       18:       18:  629:   visit_list_elements(&v, instructions);
        -:        -:  630:
       36:       36:  631:   return v.progress;
        -:        -:  632:}

src/compiler/opt_dead_builtin_varyings.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_builtin_varyings.cpp
        -:        -:    0:Graph:glsl/.libs/opt_dead_builtin_varyings.gcno
        -:        -:    0:Data:glsl/.libs/opt_dead_builtin_varyings.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Marek Olšák <maraeo@gmail.com>
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_dead_builtin_varyings.cpp
        -:        -:   26: *
        -:        -:   27: * This eliminates the built-in shader outputs which are either not written
        -:        -:   28: * at all or not used by the next stage. It also eliminates unused elements
        -:        -:   29: * of gl_TexCoord inputs, which reduces the overall varying usage.
        -:        -:   30: * The varyings handled here are the primary and secondary color, the fog,
        -:        -:   31: * and the texture coordinates (gl_TexCoord).
        -:        -:   32: *
        -:        -:   33: * This pass is necessary, because the Mesa GLSL linker cannot eliminate
        -:        -:   34: * built-in varyings like it eliminates user-defined varyings, because
        -:        -:   35: * the built-in varyings have pre-assigned locations. Also, the elimination
        -:        -:   36: * of unused gl_TexCoord elements requires its own lowering pass anyway.
        -:        -:   37: *
        -:        -:   38: * It's implemented by replacing all occurrences of dead varyings with
        -:        -:   39: * temporary variables, which creates dead code. It is recommended to run
        -:        -:   40: * a dead-code elimination pass after this.
        -:        -:   41: *
        -:        -:   42: * If any texture coordinate slots can be eliminated, the gl_TexCoord array is
        -:        -:   43: * broken down into separate vec4 variables with locations equal to
        -:        -:   44: * VARYING_SLOT_TEX0 + i.
        -:        -:   45: *
        -:        -:   46: * The same is done for the gl_FragData fragment shader output.
        -:        -:   47: */
        -:        -:   48:
        -:        -:   49:#include "main/core.h" /* for snprintf and ARRAY_SIZE */
        -:        -:   50:#include "ir.h"
        -:        -:   51:#include "ir_rvalue_visitor.h"
        -:        -:   52:#include "ir_optimization.h"
        -:        -:   53:#include "ir_print_visitor.h"
        -:        -:   54:#include "compiler/glsl_types.h"
        -:        -:   55:#include "link_varyings.h"
        -:        -:   56:
        -:        -:   57:namespace {
        -:        -:   58:
        -:        -:   59:/**
        -:        -:   60: * This obtains detailed information about built-in varyings from shader code.
        -:        -:   61: */
        -:        -:   62:class varying_info_visitor : public ir_hierarchical_visitor {
        -:        -:   63:public:
        -:        -:   64:   /* "mode" can be either ir_var_shader_in or ir_var_shader_out */
        8:        8:   65:   varying_info_visitor(ir_variable_mode mode, bool find_frag_outputs = false)
        -:        -:   66:      : lower_texcoord_array(true),
        -:        -:   67:        texcoord_array(NULL),
        -:        -:   68:        texcoord_usage(0),
        -:        -:   69:        find_frag_outputs(find_frag_outputs),
        -:        -:   70:        lower_fragdata_array(true),
        -:        -:   71:        fragdata_array(NULL),
        -:        -:   72:        fragdata_usage(0),
        -:        -:   73:        color_usage(0),
        -:        -:   74:        tfeedback_color_usage(0),
        -:        -:   75:        fog(NULL),
        -:        -:   76:        has_fog(false),
        -:        -:   77:        tfeedback_has_fog(false),
        8:        8:   78:        mode(mode)
        -:        -:   79:   {
        8:        8:   80:      memset(color, 0, sizeof(color));
        8:        8:   81:      memset(backcolor, 0, sizeof(backcolor));
        8:        8:   82:   }
        -:        -:   83:
       38:       38:   84:   virtual ir_visitor_status visit_enter(ir_dereference_array *ir)
        -:        -:   85:   {
       38:       38:   86:      ir_variable *var = ir->variable_referenced();
        -:        -:   87:
       38:       38:   88:      if (!var || var->data.mode != this->mode || !var->type->is_array() ||
    #####:    #####:   89:          !is_gl_identifier(var->name))
       38:       38:   90:         return visit_continue;
        -:        -:   91:
        -:        -:   92:      /* Only match gl_FragData[], not gl_SecondaryFragDataEXT[] or
        -:        -:   93:       * gl_LastFragData[].
        -:        -:   94:       */
    #####:    #####:   95:      if (this->find_frag_outputs && strcmp(var->name, "gl_FragData") == 0) {
    #####:    #####:   96:         this->fragdata_array = var;
        -:        -:   97:
    #####:    #####:   98:         ir_constant *index = ir->array_index->as_constant();
    #####:    #####:   99:         if (index == NULL) {
        -:        -:  100:            /* This is variable indexing. */
    #####:    #####:  101:            this->fragdata_usage |= (1 << var->type->array_size()) - 1;
    #####:    #####:  102:            this->lower_fragdata_array = false;
        -:        -:  103:         }
        -:        -:  104:         else {
    #####:    #####:  105:            this->fragdata_usage |= 1 << index->get_uint_component(0);
        -:        -:  106:            /* Don't lower fragdata array if the output variable
        -:        -:  107:             * is not a float variable (or float vector) because it will
        -:        -:  108:             * generate wrong register assignments because of different
        -:        -:  109:             * data types.
        -:        -:  110:             */
    #####:    #####:  111:            if (var->type->gl_type != GL_FLOAT &&
    #####:    #####:  112:                var->type->gl_type != GL_FLOAT_VEC2 &&
    #####:    #####:  113:                var->type->gl_type != GL_FLOAT_VEC3 &&
    #####:    #####:  114:                var->type->gl_type != GL_FLOAT_VEC4)
    #####:    #####:  115:               this->lower_fragdata_array = false;
        -:        -:  116:         }
        -:        -:  117:
        -:        -:  118:         /* Don't visit the leaves of ir_dereference_array. */
    #####:    #####:  119:         return visit_continue_with_parent;
        -:        -:  120:      }
        -:        -:  121:
    #####:    #####:  122:      if (!this->find_frag_outputs && var->data.location == VARYING_SLOT_TEX0) {
    #####:    #####:  123:         this->texcoord_array = var;
        -:        -:  124:
    #####:    #####:  125:         ir_constant *index = ir->array_index->as_constant();
    #####:    #####:  126:         if (index == NULL) {
        -:        -:  127:            /* There is variable indexing, we can't lower the texcoord array.
        -:        -:  128:             */
    #####:    #####:  129:            this->texcoord_usage |= (1 << var->type->array_size()) - 1;
    #####:    #####:  130:            this->lower_texcoord_array = false;
        -:        -:  131:         }
        -:        -:  132:         else {
    #####:    #####:  133:            this->texcoord_usage |= 1 << index->get_uint_component(0);
        -:        -:  134:         }
        -:        -:  135:
        -:        -:  136:         /* Don't visit the leaves of ir_dereference_array. */
    #####:    #####:  137:         return visit_continue_with_parent;
        -:        -:  138:      }
        -:        -:  139:
    #####:    #####:  140:      return visit_continue;
        -:        -:  141:   }
        -:        -:  142:
      199:      207:  143:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:  144:   {
      199:      207:  145:      ir_variable *var = ir->variable_referenced();
        -:        -:  146:
      199:      207:  147:      if (var->data.mode != this->mode || !var->type->is_array())
      199:      207:  148:         return visit_continue;
        -:        -:  149:
    #####:    #####:  150:      if (this->find_frag_outputs && var->data.location == FRAG_RESULT_DATA0 &&
    #####:    #####:  151:          var->data.index == 0) {
        -:        -:  152:         /* This is a whole array dereference. */
    #####:    #####:  153:         this->fragdata_usage |= (1 << var->type->array_size()) - 1;
    #####:    #####:  154:         this->lower_fragdata_array = false;
    #####:    #####:  155:         return visit_continue;
        -:        -:  156:      }
        -:        -:  157:
    #####:    #####:  158:      if (!this->find_frag_outputs && var->data.location == VARYING_SLOT_TEX0) {
        -:        -:  159:         /* This is a whole array dereference like "gl_TexCoord = x;",
        -:        -:  160:          * there's probably no point in lowering that.
        -:        -:  161:          */
    #####:    #####:  162:         this->texcoord_usage |= (1 << var->type->array_size()) - 1;
    #####:    #####:  163:         this->lower_texcoord_array = false;
        -:        -:  164:      }
    #####:    #####:  165:      return visit_continue;
        -:        -:  166:   }
        -:        -:  167:
       45:       45:  168:   virtual ir_visitor_status visit(ir_variable *var)
        -:        -:  169:   {
       45:       45:  170:      if (var->data.mode != this->mode)
       39:       39:  171:         return visit_continue;
        -:        -:  172:
        -:        -:  173:      /* Nothing to do here for fragment outputs. */
        6:        6:  174:      if (this->find_frag_outputs)
        2:        2:  175:         return visit_continue;
        -:        -:  176:
        -:        -:  177:      /* Handle colors and fog. */
        4:        4:  178:      switch (var->data.location) {
        -:        -:  179:      case VARYING_SLOT_COL0:
        1:        1:  180:         this->color[0] = var;
        1:        1:  181:         this->color_usage |= 1;
        1:        1:  182:         break;
        -:        -:  183:      case VARYING_SLOT_COL1:
        1:        1:  184:         this->color[1] = var;
        1:        1:  185:         this->color_usage |= 2;
        1:        1:  186:         break;
        -:        -:  187:      case VARYING_SLOT_BFC0:
    #####:    #####:  188:         this->backcolor[0] = var;
    #####:    #####:  189:         this->color_usage |= 1;
    #####:    #####:  190:         break;
        -:        -:  191:      case VARYING_SLOT_BFC1:
    #####:    #####:  192:         this->backcolor[1] = var;
    #####:    #####:  193:         this->color_usage |= 2;
    #####:    #####:  194:         break;
        -:        -:  195:      case VARYING_SLOT_FOGC:
    #####:    #####:  196:         this->fog = var;
    #####:    #####:  197:         this->has_fog = true;
    #####:    #####:  198:         break;
        -:        -:  199:      }
        -:        -:  200:
        4:        4:  201:      return visit_continue;
        -:        -:  202:   }
        -:        -:  203:
        6:        6:  204:   void get(exec_list *ir,
        -:        -:  205:            unsigned num_tfeedback_decls,
        -:        -:  206:            tfeedback_decl *tfeedback_decls)
        -:        -:  207:   {
        -:        -:  208:      /* Handle the transform feedback varyings. */
        6:        6:  209:      for (unsigned i = 0; i < num_tfeedback_decls; i++) {
    #####:    #####:  210:         if (!tfeedback_decls[i].is_varying())
    #####:    #####:  211:            continue;
        -:        -:  212:
    #####:    #####:  213:         unsigned location = tfeedback_decls[i].get_location();
        -:        -:  214:
    #####:    #####:  215:         switch (location) {
        -:        -:  216:         case VARYING_SLOT_COL0:
        -:        -:  217:         case VARYING_SLOT_BFC0:
    #####:    #####:  218:            this->tfeedback_color_usage |= 1;
    #####:    #####:  219:            break;
        -:        -:  220:         case VARYING_SLOT_COL1:
        -:        -:  221:         case VARYING_SLOT_BFC1:
    #####:    #####:  222:            this->tfeedback_color_usage |= 2;
    #####:    #####:  223:            break;
        -:        -:  224:         case VARYING_SLOT_FOGC:
    #####:    #####:  225:            this->tfeedback_has_fog = true;
    #####:    #####:  226:            break;
        -:        -:  227:         default:
    #####:    #####:  228:            if (location >= VARYING_SLOT_TEX0 &&
        -:        -:  229:                location <= VARYING_SLOT_TEX7) {
    #####:    #####:  230:               this->lower_texcoord_array = false;
        -:        -:  231:            }
        -:        -:  232:         }
        -:        -:  233:      }
        -:        -:  234:
        -:        -:  235:      /* Process the shader. */
        6:        6:  236:      visit_list_elements(this, ir);
        -:        -:  237:
        6:        6:  238:      if (!this->texcoord_array) {
        6:        6:  239:         this->lower_texcoord_array = false;
        -:        -:  240:      }
        6:        6:  241:      if (!this->fragdata_array) {
        6:        6:  242:         this->lower_fragdata_array = false;
        -:        -:  243:      }
        6:        6:  244:   }
        -:        -:  245:
        -:        -:  246:   bool lower_texcoord_array;
        -:        -:  247:   ir_variable *texcoord_array;
        -:        -:  248:   unsigned texcoord_usage; /* bitmask */
        -:        -:  249:
        -:        -:  250:   bool find_frag_outputs; /* false if it's looking for varyings */
        -:        -:  251:   bool lower_fragdata_array;
        -:        -:  252:   ir_variable *fragdata_array;
        -:        -:  253:   unsigned fragdata_usage; /* bitmask */
        -:        -:  254:
        -:        -:  255:   ir_variable *color[2];
        -:        -:  256:   ir_variable *backcolor[2];
        -:        -:  257:   unsigned color_usage; /* bitmask */
        -:        -:  258:   unsigned tfeedback_color_usage; /* bitmask */
        -:        -:  259:
        -:        -:  260:   ir_variable *fog;
        -:        -:  261:   bool has_fog;
        -:        -:  262:   bool tfeedback_has_fog;
        -:        -:  263:
        -:        -:  264:   ir_variable_mode mode;
        -:        -:  265:};
        -:        -:  266:
        -:        -:  267:
        -:        -:  268:/**
        -:        -:  269: * This replaces unused varyings with temporary variables.
        -:        -:  270: *
        -:        -:  271: * If "ir" is the producer, the "external" usage should come from
        -:        -:  272: * the consumer. It also works the other way around. If either one is
        -:        -:  273: * missing, set the "external" usage to a full mask.
        -:        -:  274: */
        -:        -:  275:class replace_varyings_visitor : public ir_rvalue_visitor {
        -:        -:  276:public:
        2:        2:  277:   replace_varyings_visitor(struct gl_linked_shader *sha,
        -:        -:  278:                            const varying_info_visitor *info,
        -:        -:  279:                            unsigned external_texcoord_usage,
        -:        -:  280:                            unsigned external_color_usage,
        -:        -:  281:                            bool external_has_fog)
        2:        2:  282:      : shader(sha), info(info), new_fog(NULL)
        -:        -:  283:   {
        2:        2:  284:      void *const ctx = shader->ir;
        -:        -:  285:
        2:        2:  286:      memset(this->new_fragdata, 0, sizeof(this->new_fragdata));
        2:        2:  287:      memset(this->new_texcoord, 0, sizeof(this->new_texcoord));
        2:        2:  288:      memset(this->new_color, 0, sizeof(this->new_color));
        2:        2:  289:      memset(this->new_backcolor, 0, sizeof(this->new_backcolor));
        -:        -:  290:
        -:        -:  291:      const char *mode_str =
        2:        2:  292:         info->mode == ir_var_shader_in ? "in" : "out";
        -:        -:  293:
        -:        -:  294:      /* Handle texcoord outputs.
        -:        -:  295:       *
        -:        -:  296:       * We're going to break down the gl_TexCoord array into separate
        -:        -:  297:       * variables. First, add declarations of the new variables all
        -:        -:  298:       * occurrences of gl_TexCoord will be replaced with.
        -:        -:  299:       */
        2:        2:  300:      if (info->lower_texcoord_array) {
    #####:    #####:  301:         prepare_array(shader->ir, this->new_texcoord,
    #####:    #####:  302:                       ARRAY_SIZE(this->new_texcoord),
        -:        -:  303:                       VARYING_SLOT_TEX0, "TexCoord", mode_str,
    #####:    #####:  304:                       info->texcoord_usage, external_texcoord_usage);
        -:        -:  305:      }
        -:        -:  306:
        -:        -:  307:      /* Handle gl_FragData in the same way like gl_TexCoord. */
        2:        2:  308:      if (info->lower_fragdata_array) {
    #####:    #####:  309:         prepare_array(shader->ir, this->new_fragdata,
    #####:    #####:  310:                       ARRAY_SIZE(this->new_fragdata),
        -:        -:  311:                       FRAG_RESULT_DATA0, "FragData", mode_str,
    #####:    #####:  312:                       info->fragdata_usage, (1 << MAX_DRAW_BUFFERS) - 1);
        -:        -:  313:      }
        -:        -:  314:
        -:        -:  315:      /* Create dummy variables which will replace set-but-unused color and
        -:        -:  316:       * fog outputs.
        -:        -:  317:       */
        2:        2:  318:      external_color_usage |= info->tfeedback_color_usage;
        -:        -:  319:
        6:        6:  320:      for (int i = 0; i < 2; i++) {
        -:        -:  321:         char name[32];
        -:        -:  322:
        4:        4:  323:         if (!(external_color_usage & (1 << i))) {
        4:        4:  324:            if (info->color[i]) {
    #####:    #####:  325:               snprintf(name, 32, "gl_%s_FrontColor%i_dummy", mode_str, i);
        -:        -:  326:               this->new_color[i] =
        -:        -:  327:                  new (ctx) ir_variable(glsl_type::vec4_type, name,
    #####:    #####:  328:                                        ir_var_temporary);
        -:        -:  329:            }
        -:        -:  330:
        4:        4:  331:            if (info->backcolor[i]) {
    #####:    #####:  332:               snprintf(name, 32, "gl_%s_BackColor%i_dummy", mode_str, i);
        -:        -:  333:               this->new_backcolor[i] =
        -:        -:  334:                  new (ctx) ir_variable(glsl_type::vec4_type, name,
    #####:    #####:  335:                                        ir_var_temporary);
        -:        -:  336:            }
        -:        -:  337:         }
        -:        -:  338:      }
        -:        -:  339:
        4:        4:  340:      if (!external_has_fog && !info->tfeedback_has_fog &&
        2:        2:  341:          info->fog) {
        -:        -:  342:         char name[32];
        -:        -:  343:
    #####:    #####:  344:         snprintf(name, 32, "gl_%s_FogFragCoord_dummy", mode_str);
        -:        -:  345:         this->new_fog = new (ctx) ir_variable(glsl_type::float_type, name,
    #####:    #####:  346:                                               ir_var_temporary);
        -:        -:  347:      }
        -:        -:  348:
        -:        -:  349:      /* Now do the replacing. */
        2:        2:  350:      visit_list_elements(this, shader->ir);
        2:        2:  351:   }
        -:        -:  352:
    #####:    #####:  353:   void prepare_array(exec_list *ir,
        -:        -:  354:                      ir_variable **new_var,
        -:        -:  355:                      int max_elements, unsigned start_location,
        -:        -:  356:                      const char *var_name, const char *mode_str,
        -:        -:  357:                      unsigned usage, unsigned external_usage)
        -:        -:  358:   {
    #####:    #####:  359:      void *const ctx = ir;
        -:        -:  360:
    #####:    #####:  361:      for (int i = max_elements-1; i >= 0; i--) {
    #####:    #####:  362:         if (usage & (1 << i)) {
        -:        -:  363:            char name[32];
        -:        -:  364:
    #####:    #####:  365:            if (!(external_usage & (1 << i))) {
        -:        -:  366:               /* This varying is unused in the next stage. Declare
        -:        -:  367:                * a temporary instead of an output. */
    #####:    #####:  368:               snprintf(name, 32, "gl_%s_%s%i_dummy", mode_str, var_name, i);
    #####:    #####:  369:               new_var[i] =
        -:        -:  370:                  new (ctx) ir_variable(glsl_type::vec4_type, name,
    #####:    #####:  371:                                        ir_var_temporary);
        -:        -:  372:            }
        -:        -:  373:            else {
    #####:    #####:  374:               snprintf(name, 32, "gl_%s_%s%i", mode_str, var_name, i);
    #####:    #####:  375:               new_var[i] =
        -:        -:  376:                  new(ctx) ir_variable(glsl_type::vec4_type, name,
    #####:    #####:  377:                                       this->info->mode);
    #####:    #####:  378:               new_var[i]->data.location = start_location + i;
    #####:    #####:  379:               new_var[i]->data.explicit_location = true;
    #####:    #####:  380:               new_var[i]->data.explicit_index = 0;
        -:        -:  381:            }
        -:        -:  382:
    #####:    #####:  383:            ir->get_head_raw()->insert_before(new_var[i]);
        -:        -:  384:         }
        -:        -:  385:      }
    #####:    #####:  386:   }
        -:        -:  387:
       20:       20:  388:   virtual ir_visitor_status visit(ir_variable *var)
        -:        -:  389:   {
        -:        -:  390:      /* Remove the gl_TexCoord array. */
       20:       20:  391:      if (this->info->lower_texcoord_array &&
    #####:    #####:  392:          var == this->info->texcoord_array) {
    #####:    #####:  393:         var->remove();
        -:        -:  394:      }
        -:        -:  395:
        -:        -:  396:      /* Remove the gl_FragData array. */
       20:       20:  397:      if (this->info->lower_fragdata_array &&
    #####:    #####:  398:          var == this->info->fragdata_array) {
        -:        -:  399:
        -:        -:  400:         /* Clone variable for program resource list before it is removed. */
    #####:    #####:  401:         if (!shader->fragdata_arrays)
    #####:    #####:  402:            shader->fragdata_arrays = new (shader) exec_list;
        -:        -:  403:
    #####:    #####:  404:         shader->fragdata_arrays->push_tail(var->clone(shader, NULL));
        -:        -:  405:
    #####:    #####:  406:         var->remove();
        -:        -:  407:      }
        -:        -:  408:
        -:        -:  409:      /* Replace set-but-unused color and fog outputs with dummy variables. */
       60:       60:  410:      for (int i = 0; i < 2; i++) {
       40:       40:  411:         if (var == this->info->color[i] && this->new_color[i]) {
    #####:    #####:  412:            var->replace_with(this->new_color[i]);
        -:        -:  413:         }
       40:       40:  414:         if (var == this->info->backcolor[i] &&
    #####:    #####:  415:             this->new_backcolor[i]) {
    #####:    #####:  416:            var->replace_with(this->new_backcolor[i]);
        -:        -:  417:         }
        -:        -:  418:      }
        -:        -:  419:
       20:       20:  420:      if (var == this->info->fog && this->new_fog) {
    #####:    #####:  421:         var->replace_with(this->new_fog);
        -:        -:  422:      }
        -:        -:  423:
       20:       20:  424:      return visit_continue;
        -:        -:  425:   }
        -:        -:  426:
      218:      228:  427:   virtual void handle_rvalue(ir_rvalue **rvalue)
        -:        -:  428:   {
      218:      228:  429:      if (!*rvalue)
       39:       39:  430:         return;
        -:        -:  431:
      179:      189:  432:      void *ctx = ralloc_parent(*rvalue);
        -:        -:  433:
        -:        -:  434:      /* Replace an array dereference gl_TexCoord[i] with a single
        -:        -:  435:       * variable dereference representing gl_TexCoord[i].
        -:        -:  436:       */
      179:      189:  437:      if (this->info->lower_texcoord_array) {
        -:        -:  438:         /* gl_TexCoord[i] occurrence */
    #####:    #####:  439:         ir_dereference_array *const da = (*rvalue)->as_dereference_array();
        -:        -:  440:
    #####:    #####:  441:         if (da && da->variable_referenced() ==
    #####:    #####:  442:             this->info->texcoord_array) {
    #####:    #####:  443:            unsigned i = da->array_index->as_constant()->get_uint_component(0);
        -:        -:  444:
    #####:    #####:  445:            *rvalue = new(ctx) ir_dereference_variable(this->new_texcoord[i]);
    #####:    #####:  446:            return;
        -:        -:  447:         }
        -:        -:  448:      }
        -:        -:  449:
        -:        -:  450:      /* Same for gl_FragData. */
      179:      189:  451:      if (this->info->lower_fragdata_array) {
        -:        -:  452:         /* gl_FragData[i] occurrence */
    #####:    #####:  453:         ir_dereference_array *const da = (*rvalue)->as_dereference_array();
        -:        -:  454:
    #####:    #####:  455:         if (da && da->variable_referenced() == this->info->fragdata_array) {
    #####:    #####:  456:            unsigned i = da->array_index->as_constant()->get_uint_component(0);
        -:        -:  457:
    #####:    #####:  458:            *rvalue = new(ctx) ir_dereference_variable(this->new_fragdata[i]);
    #####:    #####:  459:            return;
        -:        -:  460:         }
        -:        -:  461:      }
        -:        -:  462:
        -:        -:  463:      /* Replace set-but-unused color and fog outputs with dummy variables. */
      179:      189:  464:      ir_dereference_variable *const dv = (*rvalue)->as_dereference_variable();
      179:      189:  465:      if (!dv)
       83:       89:  466:         return;
        -:        -:  467:
       96:      100:  468:      ir_variable *var = dv->variable_referenced();
        -:        -:  469:
      288:      300:  470:      for (int i = 0; i < 2; i++) {
      192:      200:  471:         if (var == this->info->color[i] && this->new_color[i]) {
    #####:    #####:  472:            *rvalue = new(ctx) ir_dereference_variable(this->new_color[i]);
    #####:    #####:  473:            return;
        -:        -:  474:         }
      192:      200:  475:         if (var == this->info->backcolor[i] &&
    #####:    #####:  476:             this->new_backcolor[i]) {
    #####:    #####:  477:            *rvalue = new(ctx) ir_dereference_variable(this->new_backcolor[i]);
    #####:    #####:  478:            return;
        -:        -:  479:         }
        -:        -:  480:      }
        -:        -:  481:
       96:      100:  482:      if (var == this->info->fog && this->new_fog) {
    #####:    #####:  483:         *rvalue = new(ctx) ir_dereference_variable(this->new_fog);
        -:        -:  484:      }
        -:        -:  485:   }
        -:        -:  486:
       39:       39:  487:   virtual ir_visitor_status visit_leave(ir_assignment *ir)
        -:        -:  488:   {
       39:       39:  489:      handle_rvalue(&ir->rhs);
       39:       39:  490:      handle_rvalue(&ir->condition);
        -:        -:  491:
        -:        -:  492:      /* We have to use set_lhs when changing the LHS of an assignment. */
       39:       39:  493:      ir_rvalue *lhs = ir->lhs;
        -:        -:  494:
       39:       39:  495:      handle_rvalue(&lhs);
       39:       39:  496:      if (lhs != ir->lhs) {
    #####:    #####:  497:         ir->set_lhs(lhs);
        -:        -:  498:      }
        -:        -:  499:
       39:       39:  500:      return visit_continue;
        -:        -:  501:   }
        -:        -:  502:
        -:        -:  503:private:
        -:        -:  504:   struct gl_linked_shader *shader;
        -:        -:  505:   const varying_info_visitor *info;
        -:        -:  506:   ir_variable *new_fragdata[MAX_DRAW_BUFFERS];
        -:        -:  507:   ir_variable *new_texcoord[MAX_TEXTURE_COORD_UNITS];
        -:        -:  508:   ir_variable *new_color[2];
        -:        -:  509:   ir_variable *new_backcolor[2];
        -:        -:  510:   ir_variable *new_fog;
        -:        -:  511:};
        -:        -:  512:
        -:        -:  513:} /* anonymous namespace */
        -:        -:  514:
        -:        -:  515:static void
    #####:    #####:  516:lower_texcoord_array(struct gl_linked_shader *shader, const varying_info_visitor *info)
        -:        -:  517:{
        -:        -:  518:   replace_varyings_visitor(shader, info,
        -:        -:  519:                            (1 << MAX_TEXTURE_COORD_UNITS) - 1,
    #####:    #####:  520:                            1 | 2, true);
    #####:    #####:  521:}
        -:        -:  522:
        -:        -:  523:static void
        2:        2:  524:lower_fragdata_array(struct gl_linked_shader *shader)
        -:        -:  525:{
        2:        2:  526:   varying_info_visitor info(ir_var_shader_out, true);
        2:        2:  527:   info.get(shader->ir, 0, NULL);
        -:        -:  528:
        2:        2:  529:   replace_varyings_visitor(shader, &info, 0, 0, 0);
        2:        2:  530:}
        -:        -:  531:
        -:        -:  532:
        -:        -:  533:void
        3:        3:  534:do_dead_builtin_varyings(struct gl_context *ctx,
        -:        -:  535:                         gl_linked_shader *producer,
        -:        -:  536:                         gl_linked_shader *consumer,
        -:        -:  537:                         unsigned num_tfeedback_decls,
        -:        -:  538:                         tfeedback_decl *tfeedback_decls)
        -:        -:  539:{
        -:        -:  540:   /* Lower the gl_FragData array to separate variables. */
        3:        3:  541:   if (consumer && consumer->Stage == MESA_SHADER_FRAGMENT) {
        2:        2:  542:      lower_fragdata_array(consumer);
        -:        -:  543:   }
        -:        -:  544:
        -:        -:  545:   /* Lowering of built-in varyings has no effect with the core context and
        -:        -:  546:    * GLES2, because they are not available there.
        -:        -:  547:    */
        6:        6:  548:   if (ctx->API == API_OPENGL_CORE ||
        3:        3:  549:       ctx->API == API_OPENGLES2) {
        2:        2:  550:      return;
        -:        -:  551:   }
        -:        -:  552:
        -:        -:  553:   /* Information about built-in varyings. */
        3:        3:  554:   varying_info_visitor producer_info(ir_var_shader_out);
        3:        3:  555:   varying_info_visitor consumer_info(ir_var_shader_in);
        -:        -:  556:
        3:        3:  557:   if (producer) {
        2:        2:  558:      producer_info.get(producer->ir, num_tfeedback_decls, tfeedback_decls);
        -:        -:  559:
        2:        2:  560:      if (!consumer) {
        -:        -:  561:         /* At least eliminate unused gl_TexCoord elements. */
        1:        1:  562:         if (producer_info.lower_texcoord_array) {
    #####:    #####:  563:            lower_texcoord_array(producer, &producer_info);
        -:        -:  564:         }
        1:        1:  565:         return;
        -:        -:  566:      }
        -:        -:  567:   }
        -:        -:  568:
        2:        2:  569:   if (consumer) {
        2:        2:  570:      consumer_info.get(consumer->ir, 0, NULL);
        -:        -:  571:
        2:        2:  572:      if (!producer) {
        -:        -:  573:         /* At least eliminate unused gl_TexCoord elements. */
        1:        1:  574:         if (consumer_info.lower_texcoord_array) {
    #####:    #####:  575:            lower_texcoord_array(consumer, &consumer_info);
        -:        -:  576:         }
        1:        1:  577:         return;
        -:        -:  578:      }
        -:        -:  579:   }
        -:        -:  580:
        -:        -:  581:   /* Eliminate the outputs unused by the consumer. */
        2:        2:  582:   if (producer_info.lower_texcoord_array ||
        2:        2:  583:       producer_info.color_usage ||
        1:        1:  584:       producer_info.has_fog) {
        -:        -:  585:      replace_varyings_visitor(producer,
        -:        -:  586:                               &producer_info,
        -:        -:  587:                               consumer_info.texcoord_usage,
        -:        -:  588:                               consumer_info.color_usage,
    #####:    #####:  589:                               consumer_info.has_fog);
        -:        -:  590:   }
        -:        -:  591:
        -:        -:  592:   /* The gl_TexCoord fragment shader inputs can be initialized
        -:        -:  593:    * by GL_COORD_REPLACE, so we can't eliminate them.
        -:        -:  594:    *
        -:        -:  595:    * This doesn't prevent elimination of the gl_TexCoord elements which
        -:        -:  596:    * are not read by the fragment shader. We want to eliminate those anyway.
        -:        -:  597:    */
        1:        1:  598:   if (consumer->Stage == MESA_SHADER_FRAGMENT) {
        1:        1:  599:      producer_info.texcoord_usage = (1 << MAX_TEXTURE_COORD_UNITS) - 1;
        -:        -:  600:   }
        -:        -:  601:
        -:        -:  602:   /* Eliminate the inputs uninitialized by the producer. */
        2:        2:  603:   if (consumer_info.lower_texcoord_array ||
        2:        2:  604:       consumer_info.color_usage ||
        1:        1:  605:       consumer_info.has_fog) {
        -:        -:  606:      replace_varyings_visitor(consumer,
        -:        -:  607:                               &consumer_info,
        -:        -:  608:                               producer_info.texcoord_usage,
        -:        -:  609:                               producer_info.color_usage,
    #####:    #####:  610:                               producer_info.has_fog);
        -:        -:  611:   }
        -:        -:  612:}

src/compiler/opt_dead_code.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code.cpp
        -:        -:    0:Graph:glsl/.libs/opt_dead_code.gcno
        -:        -:    0:Data:glsl/.libs/opt_dead_code.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_dead_code.cpp
        -:        -:   26: *
        -:        -:   27: * Eliminates dead assignments and variable declarations from the code.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "ir.h"
        -:        -:   31:#include "ir_visitor.h"
        -:        -:   32:#include "ir_variable_refcount.h"
        -:        -:   33:#include "compiler/glsl_types.h"
        -:        -:   34:#include "util/hash_table.h"
        -:        -:   35:
        -:        -:   36:static bool debug = false;
        -:        -:   37:
        -:        -:   38:/**
        -:        -:   39: * Do a dead code pass over instructions and everything that instructions
        -:        -:   40: * references.
        -:        -:   41: *
        -:        -:   42: * Note that this will remove assignments to globals, so it is not suitable
        -:        -:   43: * for usage on an unlinked instruction stream.
        -:        -:   44: */
        -:        -:   45:bool
       25:       25:   46:do_dead_code(exec_list *instructions, bool uniform_locations_assigned)
        -:        -:   47:{
       50:       50:   48:   ir_variable_refcount_visitor v;
       25:       25:   49:   bool progress = false;
        -:        -:   50:
       25:       25:   51:   v.run(instructions);
        -:        -:   52:
        -:        -:   53:   struct hash_entry *e;
      496:      499:   54:   hash_table_foreach(v.ht, e) {
      471:      474:   55:      ir_variable_refcount_entry *entry = (ir_variable_refcount_entry *)e->data;
        -:        -:   56:
        -:        -:   57:      /* Since each assignment is a reference, the refereneced count must be
        -:        -:   58:       * greater than or equal to the assignment count.  If they are equal,
        -:        -:   59:       * then all of the references are assignments, and the variable is
        -:        -:   60:       * dead.
        -:        -:   61:       *
        -:        -:   62:       * Note that if the variable is neither assigned nor referenced, both
        -:        -:   63:       * counts will be zero and will be caught by the equality test.
        -:        -:   64:       */
      471:      474:   65:      assert(entry->referenced_count >= entry->assigned_count);
        -:        -:   66:
      471:      474:   67:      if (debug) {
    #####:    #####:   68:	 printf("%s@%p: %d refs, %d assigns, %sdeclared in our scope\n",
    #####:    #####:   69:		entry->var->name, (void *) entry->var,
        -:        -:   70:		entry->referenced_count, entry->assigned_count,
    #####:    #####:   71:		entry->declaration ? "" : "not ");
        -:        -:   72:      }
        -:        -:   73:
      471:      474:   74:      if ((entry->referenced_count > entry->assigned_count)
      200:      200:   75:	  || !entry->declaration)
      277:      280:   76:	 continue;
        -:        -:   77:
        -:        -:   78:      /* Section 7.4.1 (Shader Interface Matching) of the OpenGL 4.5
        -:        -:   79:       * (Core Profile) spec says:
        -:        -:   80:       *
        -:        -:   81:       *    "With separable program objects, interfaces between shader
        -:        -:   82:       *    stages may involve the outputs from one program object and the
        -:        -:   83:       *    inputs from a second program object.  For such interfaces, it is
        -:        -:   84:       *    not possible to detect mismatches at link time, because the
        -:        -:   85:       *    programs are linked separately. When each such program is
        -:        -:   86:       *    linked, all inputs or outputs interfacing with another program
        -:        -:   87:       *    stage are treated as active."
        -:        -:   88:       */
      194:      194:   89:      if (entry->var->data.always_active_io)
    #####:    #####:   90:         continue;
        -:        -:   91:
      194:      194:   92:      if (!entry->assign_list.is_empty()) {
        -:        -:   93:	 /* Remove all the dead assignments to the variable we found.
        -:        -:   94:	  * Don't do so if it's a shader or function output, though.
        -:        -:   95:	  */
      132:      132:   96:	 if (entry->var->data.mode != ir_var_function_out &&
      132:      132:   97:	     entry->var->data.mode != ir_var_function_inout &&
      116:      116:   98:             entry->var->data.mode != ir_var_shader_out &&
       50:       50:   99:             entry->var->data.mode != ir_var_shader_storage) {
        -:        -:  100:
      154:      154:  101:            while (!entry->assign_list.is_empty()) {
        -:        -:  102:               struct assignment_entry *assignment_entry =
       52:       52:  103:                  exec_node_data(struct assignment_entry,
        -:        -:  104:                                 entry->assign_list.get_head_raw(), link);
        -:        -:  105:
       52:       52:  106:	       assignment_entry->assign->remove();
        -:        -:  107:
       52:       52:  108:	       if (debug) {
    #####:    #####:  109:	          printf("Removed assignment to %s@%p\n",
    #####:    #####:  110:		         entry->var->name, (void *) entry->var);
        -:        -:  111:               }
        -:        -:  112:
       52:       52:  113:               assignment_entry->link.remove();
       52:       52:  114:               free(assignment_entry);
        -:        -:  115:            }
       50:       50:  116:            progress = true;
        -:        -:  117:	 }
        -:        -:  118:      }
        -:        -:  119:
      194:      194:  120:      if (entry->assign_list.is_empty()) {
        -:        -:  121:	 /* If there are no assignments or references to the variable left,
        -:        -:  122:	  * then we can remove its declaration.
        -:        -:  123:	  */
        -:        -:  124:
        -:        -:  125:	 /* uniform initializers are precious, and could get used by another
        -:        -:  126:	  * stage.  Also, once uniform locations have been assigned, the
        -:        -:  127:	  * declaration cannot be deleted.
        -:        -:  128:	  */
      296:      296:  129:         if (entry->var->data.mode == ir_var_uniform ||
      118:      118:  130:             entry->var->data.mode == ir_var_shader_storage) {
       60:       60:  131:            if (uniform_locations_assigned || entry->var->constant_initializer)
    #####:    #####:  132:               continue;
        -:        -:  133:
        -:        -:  134:            /* Section 2.11.6 (Uniform Variables) of the OpenGL ES 3.0.3 spec
        -:        -:  135:             * says:
        -:        -:  136:             *
        -:        -:  137:             *     "All members of a named uniform block declared with a
        -:        -:  138:             *     shared or std140 layout qualifier are considered active,
        -:        -:  139:             *     even if they are not referenced in any shader in the
        -:        -:  140:             *     program. The uniform block itself is also considered
        -:        -:  141:             *     active, even if no member of the block is referenced."
        -:        -:  142:             *
        -:        -:  143:             * If the variable is in a uniform block with one of those
        -:        -:  144:             * layouts, do not eliminate it.
        -:        -:  145:             */
       60:       60:  146:            if (entry->var->is_in_buffer_block()) {
    #####:    #####:  147:               if (entry->var->get_interface_type_packing() !=
        -:        -:  148:                   GLSL_INTERFACE_PACKING_PACKED)
    #####:    #####:  149:                  continue;
        -:        -:  150:            }
        -:        -:  151:
       60:       60:  152:            if (entry->var->type->is_subroutine())
    #####:    #####:  153:               continue;
        -:        -:  154:         }
        -:        -:  155:
      178:      178:  156:	 entry->var->remove();
      178:      178:  157:	 progress = true;
        -:        -:  158:
      178:      178:  159:	 if (debug) {
    #####:    #####:  160:	    printf("Removed declaration of %s@%p\n",
    #####:    #####:  161:		   entry->var->name, (void *) entry->var);
        -:        -:  162:	 }
        -:        -:  163:      }
        -:        -:  164:   }
        -:        -:  165:
       50:       50:  166:   return progress;
        -:        -:  167:}
        -:        -:  168:
        -:        -:  169:/**
        -:        -:  170: * Does a dead code pass on the functions present in the instruction stream.
        -:        -:  171: *
        -:        -:  172: * This is suitable for use while the program is not linked, as it will
        -:        -:  173: * ignore variable declarations (and the assignments to them) for variables
        -:        -:  174: * with global scope.
        -:        -:  175: */
        -:        -:  176:bool
        6:        6:  177:do_dead_code_unlinked(exec_list *instructions)
        -:        -:  178:{
        6:        6:  179:   bool progress = false;
        -:        -:  180:
      448:      448:  181:   foreach_in_list(ir_instruction, ir, instructions) {
      442:      442:  182:      ir_function *f = ir->as_function();
      442:      442:  183:      if (f) {
       18:       18:  184:	 foreach_in_list(ir_function_signature, sig, &f->signatures) {
        -:        -:  185:	    /* The setting of the uniform_locations_assigned flag here is
        -:        -:  186:	     * irrelevent.  If there is a uniform declaration encountered
        -:        -:  187:	     * inside the body of the function, something has already gone
        -:        -:  188:	     * terribly, terribly wrong.
        -:        -:  189:	     */
        9:        9:  190:	    if (do_dead_code(&sig->body, false))
        4:        4:  191:	       progress = true;
        -:        -:  192:	 }
        -:        -:  193:      }
        -:        -:  194:   }
        -:        -:  195:
        6:        6:  196:   return progress;
        -:        -:  197:}

src/compiler/opt_dead_code_local.cpp.gcov

        -:        -:    0:Source:glsl/opt_dead_code_local.cpp
        -:        -:    0:Graph:glsl/.libs/opt_dead_code_local.gcno
        -:        -:    0:Data:glsl/.libs/opt_dead_code_local.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_dead_code_local.cpp
        -:        -:   26: *
        -:        -:   27: * Eliminates local dead assignments from the code.
        -:        -:   28: *
        -:        -:   29: * This operates on basic blocks, tracking assignments and finding if
        -:        -:   30: * they're used before the variable is completely reassigned.
        -:        -:   31: *
        -:        -:   32: * Compare this to ir_dead_code.cpp, which operates globally looking
        -:        -:   33: * for assignments to variables that are never read.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:#include "ir.h"
        -:        -:   37:#include "ir_basic_block.h"
        -:        -:   38:#include "ir_optimization.h"
        -:        -:   39:#include "compiler/glsl_types.h"
        -:        -:   40:
        -:        -:   41:static bool debug = false;
        -:        -:   42:
        -:        -:   43:namespace {
        -:        -:   44:
        -:        -:   45:class assignment_entry : public exec_node
        -:        -:   46:{
        -:        -:   47:public:
        -:        -:   48:   /* override operator new from exec_node */
      439:      439:   49:   DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(assignment_entry)
        -:        -:   50:
      439:      439:   51:   assignment_entry(ir_variable *lhs, ir_assignment *ir)
      439:      439:   52:   {
      439:      439:   53:      assert(lhs);
      439:      439:   54:      assert(ir);
      439:      439:   55:      this->lhs = lhs;
      439:      439:   56:      this->ir = ir;
      439:      439:   57:      this->unused = ir->write_mask;
      439:      439:   58:   }
        -:        -:   59:
        -:        -:   60:   ir_variable *lhs;
        -:        -:   61:   ir_assignment *ir;
        -:        -:   62:
        -:        -:   63:   /* bitmask of xyzw channels written that haven't been used so far. */
        -:        -:   64:   int unused;
        -:        -:   65:};
        -:        -:   66:
        -:        -:   67:class kill_for_derefs_visitor : public ir_hierarchical_visitor {
        -:        -:   68:public:
     1284:     1361:   69:   kill_for_derefs_visitor(exec_list *assignments)
     1284:     1361:   70:   {
     1284:     1361:   71:      this->assignments = assignments;
     1284:     1361:   72:   }
        -:        -:   73:
     2740:     2923:   74:   void use_channels(ir_variable *const var, int used)
        -:        -:   75:   {
     4488:     4714:   76:      foreach_in_list_safe(assignment_entry, entry, this->assignments) {
     1748:     1791:   77:	 if (entry->lhs == var) {
      233:      233:   78:	    if (var->type->is_scalar() || var->type->is_vector()) {
      233:      233:   79:	       if (debug)
    #####:    #####:   80:		  printf("used %s (0x%01x - 0x%01x)\n", entry->lhs->name,
    #####:    #####:   81:			 entry->unused, used & 0xf);
      233:      233:   82:	       entry->unused &= ~used;
      233:      233:   83:	       if (!entry->unused)
      233:      233:   84:		  entry->remove();
        -:        -:   85:	    } else {
    #####:    #####:   86:	       if (debug)
    #####:    #####:   87:		  printf("used %s\n", entry->lhs->name);
    #####:    #####:   88:	       entry->remove();
        -:        -:   89:	    }
        -:        -:   90:	 }
        -:        -:   91:      }
     2740:     2923:   92:   }
        -:        -:   93:
     2740:     2923:   94:   virtual ir_visitor_status visit(ir_dereference_variable *ir)
        -:        -:   95:   {
     2740:     2923:   96:      use_channels(ir->var, ~0);
        -:        -:   97:
     2740:     2923:   98:      return visit_continue;
        -:        -:   99:   }
        -:        -:  100:
    #####:    #####:  101:   virtual ir_visitor_status visit(ir_swizzle *ir)
        -:        -:  102:   {
    #####:    #####:  103:      ir_dereference_variable *deref = ir->val->as_dereference_variable();
    #####:    #####:  104:      if (!deref)
    #####:    #####:  105:	 return visit_continue;
        -:        -:  106:
    #####:    #####:  107:      int used = 0;
    #####:    #####:  108:      used |= 1 << ir->mask.x;
    #####:    #####:  109:      if (ir->mask.num_components > 1)
    #####:    #####:  110:         used |= 1 << ir->mask.y;
    #####:    #####:  111:      if (ir->mask.num_components > 2)
    #####:    #####:  112:         used |= 1 << ir->mask.z;
    #####:    #####:  113:      if (ir->mask.num_components > 3)
    #####:    #####:  114:         used |= 1 << ir->mask.w;
        -:        -:  115:
    #####:    #####:  116:      use_channels(deref->var, used);
        -:        -:  117:
    #####:    #####:  118:      return visit_continue_with_parent;
        -:        -:  119:   }
        -:        -:  120:
    #####:    #####:  121:   virtual ir_visitor_status visit_leave(ir_emit_vertex *)
        -:        -:  122:   {
        -:        -:  123:      /* For the purpose of dead code elimination, emitting a vertex counts as
        -:        -:  124:       * "reading" all of the currently assigned output variables.
        -:        -:  125:       */
    #####:    #####:  126:      foreach_in_list_safe(assignment_entry, entry, this->assignments) {
    #####:    #####:  127:         if (entry->lhs->data.mode == ir_var_shader_out) {
    #####:    #####:  128:            if (debug)
    #####:    #####:  129:               printf("kill %s\n", entry->lhs->name);
    #####:    #####:  130:            entry->remove();
        -:        -:  131:         }
        -:        -:  132:      }
        -:        -:  133:
    #####:    #####:  134:      return visit_continue;
        -:        -:  135:   }
        -:        -:  136:
        -:        -:  137:private:
        -:        -:  138:   exec_list *assignments;
        -:        -:  139:};
        -:        -:  140:
        -:        -:  141:class array_index_visit : public ir_hierarchical_visitor {
        -:        -:  142:public:
      439:      439:  143:   array_index_visit(ir_hierarchical_visitor *v)
      439:      439:  144:   {
      439:      439:  145:      this->visitor = v;
      439:      439:  146:   }
        -:        -:  147:
        6:        6:  148:   virtual ir_visitor_status visit_enter(class ir_dereference_array *ir)
        -:        -:  149:   {
        6:        6:  150:      ir->array_index->accept(visitor);
        6:        6:  151:      return visit_continue;
        -:        -:  152:   }
        -:        -:  153:
      439:      439:  154:   static void run(ir_instruction *ir, ir_hierarchical_visitor *v)
        -:        -:  155:   {
      439:      439:  156:      array_index_visit top_visit(v);
      439:      439:  157:      ir->accept(& top_visit);
      439:      439:  158:   }
        -:        -:  159:
        -:        -:  160:   ir_hierarchical_visitor *visitor;
        -:        -:  161:};
        -:        -:  162:
        -:        -:  163:} /* unnamed namespace */
        -:        -:  164:
        -:        -:  165:/**
        -:        -:  166: * Adds an entry to the available copy list if it's a plain assignment
        -:        -:  167: * of a variable to a variable.
        -:        -:  168: */
        -:        -:  169:static bool
      439:      439:  170:process_assignment(void *lin_ctx, ir_assignment *ir, exec_list *assignments)
        -:        -:  171:{
      439:      439:  172:   ir_variable *var = NULL;
      439:      439:  173:   bool progress = false;
      439:      439:  174:   kill_for_derefs_visitor v(assignments);
        -:        -:  175:
        -:        -:  176:   /* Kill assignment entries for things used to produce this assignment. */
      439:      439:  177:   ir->rhs->accept(&v);
      439:      439:  178:   if (ir->condition) {
       37:       37:  179:      ir->condition->accept(&v);
        -:        -:  180:   }
        -:        -:  181:
        -:        -:  182:   /* Kill assignment enties used as array indices.
        -:        -:  183:    */
      439:      439:  184:   array_index_visit::run(ir->lhs, &v);
      439:      439:  185:   var = ir->lhs->variable_referenced();
      439:      439:  186:   assert(var);
        -:        -:  187:
        -:        -:  188:   /* Now, check if we did a whole-variable assignment. */
      439:      439:  189:   if (!ir->condition) {
      402:      402:  190:      ir_dereference_variable *deref_var = ir->lhs->as_dereference_variable();
        -:        -:  191:
        -:        -:  192:      /* If it's a vector type, we can do per-channel elimination of
        -:        -:  193:       * use of the RHS.
        -:        -:  194:       */
      508:      508:  195:      if (deref_var && (deref_var->var->type->is_scalar() ||
      106:      106:  196:			deref_var->var->type->is_vector())) {
        -:        -:  197:
      396:      396:  198:	 if (debug)
    #####:    #####:  199:	    printf("looking for %s.0x%01x to remove\n", var->name,
    #####:    #####:  200:		   ir->write_mask);
        -:        -:  201:
      899:      899:  202:	 foreach_in_list_safe(assignment_entry, entry, assignments) {
      503:      503:  203:	    if (entry->lhs != var)
      441:      441:  204:	       continue;
        -:        -:  205:
        -:        -:  206:            /* Skip if the assignment we're trying to eliminate isn't a plain
        -:        -:  207:             * variable deref. */
       62:       62:  208:            if (entry->ir->lhs->ir_type != ir_type_dereference_variable)
    #####:    #####:  209:               continue;
        -:        -:  210:
       62:       62:  211:	    int remove = entry->unused & ir->write_mask;
       62:       62:  212:	    if (debug) {
    #####:    #####:  213:	       printf("%s 0x%01x - 0x%01x = 0x%01x\n",
        -:        -:  214:		      var->name,
    #####:    #####:  215:		      entry->ir->write_mask,
    #####:    #####:  216:		      remove, entry->ir->write_mask & ~remove);
        -:        -:  217:	    }
       62:       62:  218:	    if (remove) {
    #####:    #####:  219:	       progress = true;
        -:        -:  220:
    #####:    #####:  221:	       if (debug) {
    #####:    #####:  222:		  printf("rewriting:\n  ");
    #####:    #####:  223:		  entry->ir->print();
    #####:    #####:  224:		  printf("\n");
        -:        -:  225:	       }
        -:        -:  226:
    #####:    #####:  227:	       entry->ir->write_mask &= ~remove;
    #####:    #####:  228:	       entry->unused &= ~remove;
    #####:    #####:  229:	       if (entry->ir->write_mask == 0) {
        -:        -:  230:		  /* Delete the dead assignment. */
    #####:    #####:  231:		  entry->ir->remove();
    #####:    #####:  232:		  entry->remove();
        -:        -:  233:	       } else {
    #####:    #####:  234:		  void *mem_ctx = ralloc_parent(entry->ir);
        -:        -:  235:		  /* Reswizzle the RHS arguments according to the new
        -:        -:  236:		   * write_mask.
        -:        -:  237:		   */
        -:        -:  238:		  unsigned components[4];
    #####:    #####:  239:		  unsigned channels = 0;
    #####:    #####:  240:		  unsigned next = 0;
        -:        -:  241:
    #####:    #####:  242:		  for (int i = 0; i < 4; i++) {
    #####:    #####:  243:		     if ((entry->ir->write_mask | remove) & (1 << i)) {
    #####:    #####:  244:			if (!(remove & (1 << i)))
    #####:    #####:  245:			   components[channels++] = next;
    #####:    #####:  246:			next++;
        -:        -:  247:		     }
        -:        -:  248:		  }
        -:        -:  249:
    #####:    #####:  250:		  entry->ir->rhs = new(mem_ctx) ir_swizzle(entry->ir->rhs,
        -:        -:  251:							   components,
    #####:    #####:  252:							   channels);
    #####:    #####:  253:		  if (debug) {
    #####:    #####:  254:		     printf("to:\n  ");
    #####:    #####:  255:		     entry->ir->print();
    #####:    #####:  256:		     printf("\n");
        -:        -:  257:		  }
        -:        -:  258:	       }
        -:        -:  259:	    }
        -:        -:  260:	 }
        6:        6:  261:      } else if (ir->whole_variable_written() != NULL) {
        -:        -:  262:	 /* We did a whole-variable assignment.  So, any instruction in
        -:        -:  263:	  * the assignment list with the same LHS is dead.
        -:        -:  264:	  */
    #####:    #####:  265:	 if (debug)
    #####:    #####:  266:	    printf("looking for %s to remove\n", var->name);
    #####:    #####:  267:	 foreach_in_list_safe(assignment_entry, entry, assignments) {
    #####:    #####:  268:	    if (entry->lhs == var) {
    #####:    #####:  269:	       if (debug)
    #####:    #####:  270:		  printf("removing %s\n", var->name);
    #####:    #####:  271:	       entry->ir->remove();
    #####:    #####:  272:	       entry->remove();
    #####:    #####:  273:	       progress = true;
        -:        -:  274:	    }
        -:        -:  275:	 }
        -:        -:  276:      }
        -:        -:  277:   }
        -:        -:  278:
        -:        -:  279:   /* Add this instruction to the assignment list available to be removed. */
      439:      439:  280:   assignment_entry *entry = new(lin_ctx) assignment_entry(var, ir);
      439:      439:  281:   assignments->push_tail(entry);
        -:        -:  282:
      439:      439:  283:   if (debug) {
    #####:    #####:  284:      printf("add %s\n", var->name);
        -:        -:  285:
    #####:    #####:  286:      printf("current entries\n");
    #####:    #####:  287:      foreach_in_list(assignment_entry, entry, assignments) {
    #####:    #####:  288:	 printf("    %s (0x%01x)\n", entry->lhs->name, entry->unused);
        -:        -:  289:      }
        -:        -:  290:   }
        -:        -:  291:
      439:      439:  292:   return progress;
        -:        -:  293:}
        -:        -:  294:
        -:        -:  295:static void
      288:      365:  296:dead_code_local_basic_block(ir_instruction *first,
        -:        -:  297:			     ir_instruction *last,
        -:        -:  298:			     void *data)
        -:        -:  299:{
        -:        -:  300:   ir_instruction *ir, *ir_next;
        -:        -:  301:   /* List of avaialble_copy */
      288:      365:  302:   exec_list assignments;
      288:      365:  303:   bool *out_progress = (bool *)data;
      288:      365:  304:   bool progress = false;
        -:        -:  305:
      288:      365:  306:   void *ctx = ralloc_context(NULL);
      288:      365:  307:   void *lin_ctx = linear_alloc_parent(ctx, 0);
        -:        -:  308:
        -:        -:  309:   /* Safe looping, since process_assignment */
     2280:     2357:  310:   for (ir = first, ir_next = (ir_instruction *)first->next;;
      996:      996:  311:	ir = ir_next, ir_next = (ir_instruction *)ir->next) {
     1284:     1361:  312:      ir_assignment *ir_assign = ir->as_assignment();
        -:        -:  313:
     1284:     1361:  314:      if (debug) {
    #####:    #####:  315:	 ir->print();
    #####:    #####:  316:	 printf("\n");
        -:        -:  317:      }
        -:        -:  318:
     1284:     1361:  319:      if (ir_assign) {
      439:      439:  320:	 progress = process_assignment(lin_ctx, ir_assign, &assignments) ||
      439:      439:  321:                    progress;
        -:        -:  322:      } else {
      845:      922:  323:	 kill_for_derefs_visitor kill(&assignments);
      845:      922:  324:	 ir->accept(&kill);
        -:        -:  325:      }
        -:        -:  326:
     1284:     1361:  327:      if (ir == last)
      288:      365:  328:	 break;
        -:        -:  329:   }
      288:      365:  330:   *out_progress = progress;
      288:      365:  331:   ralloc_free(ctx);
      288:      365:  332:}
        -:        -:  333:
        -:        -:  334:/**
        -:        -:  335: * Does a copy propagation pass on the code present in the instruction stream.
        -:        -:  336: */
        -:        -:  337:bool
       18:       18:  338:do_dead_code_local(exec_list *instructions)
        -:        -:  339:{
       18:       18:  340:   bool progress = false;
        -:        -:  341:
       18:       18:  342:   call_for_basic_blocks(instructions, dead_code_local_basic_block, &progress);
        -:        -:  343:
       18:       18:  344:   return progress;
        -:        -:  345:}

src/compiler/opt_flatten_nested_if_blocks.cpp.gcov

        -:        -:    0:Source:glsl/opt_flatten_nested_if_blocks.cpp
        -:        -:    0:Graph:glsl/.libs/opt_flatten_nested_if_blocks.gcno
        -:        -:    0:Data:glsl/.libs/opt_flatten_nested_if_blocks.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_flatten_nested_if_blocks.cpp
        -:        -:   26: *
        -:        -:   27: * Flattens nested if blocks such as:
        -:        -:   28: *
        -:        -:   29: * if (x) {
        -:        -:   30: *    if (y) {
        -:        -:   31: *       ...
        -:        -:   32: *    }
        -:        -:   33: * }
        -:        -:   34: *
        -:        -:   35: * into a single if block with a combined condition:
        -:        -:   36: *
        -:        -:   37: * if (x && y) {
        -:        -:   38: *    ...
        -:        -:   39: * }
        -:        -:   40: */
        -:        -:   41:
        -:        -:   42:#include "ir.h"
        -:        -:   43:#include "ir_builder.h"
        -:        -:   44:
        -:        -:   45:using namespace ir_builder;
        -:        -:   46:
        -:        -:   47:namespace {
        -:        -:   48:
        -:        -:   49:class nested_if_flattener : public ir_hierarchical_visitor {
        -:        -:   50:public:
       18:       18:   51:   nested_if_flattener()
       18:       18:   52:   {
       18:       18:   53:      progress = false;
       18:       18:   54:   }
        -:        -:   55:
        -:        -:   56:   ir_visitor_status visit_leave(ir_if *);
        -:        -:   57:   ir_visitor_status visit_enter(ir_assignment *);
        -:        -:   58:
        -:        -:   59:   bool progress;
        -:        -:   60:};
        -:        -:   61:
        -:        -:   62:} /* unnamed namespace */
        -:        -:   63:
        -:        -:   64:/* We only care about the top level "if" instructions, so don't
        -:        -:   65: * descend into expressions.
        -:        -:   66: */
        -:        -:   67:ir_visitor_status
      491:      491:   68:nested_if_flattener::visit_enter(ir_assignment *ir)
        -:        -:   69:{
        -:        -:   70:   (void) ir;
      491:      491:   71:   return visit_continue_with_parent;
        -:        -:   72:}
        -:        -:   73:
        -:        -:   74:bool
       18:       18:   75:opt_flatten_nested_if_blocks(exec_list *instructions)
        -:        -:   76:{
       18:       18:   77:   nested_if_flattener v;
        -:        -:   78:
       18:       18:   79:   v.run(instructions);
       18:       18:   80:   return v.progress;
        -:        -:   81:}
        -:        -:   82:
        -:        -:   83:
        -:        -:   84:ir_visitor_status
       92:      123:   85:nested_if_flattener::visit_leave(ir_if *ir)
        -:        -:   86:{
        -:        -:   87:   /* Only handle a single ir_if within the then clause of an ir_if.  No extra
        -:        -:   88:    * instructions, no else clauses, nothing.
        -:        -:   89:    */
       92:      123:   90:   if (ir->then_instructions.is_empty() || !ir->else_instructions.is_empty())
       14:       14:   91:      return visit_continue;
        -:        -:   92:
       78:      109:   93:   ir_if *inner = ((ir_instruction *) ir->then_instructions.get_head_raw())->as_if();
       78:      109:   94:   if (!inner || !inner->next->is_tail_sentinel() ||
    #####:    #####:   95:       !inner->else_instructions.is_empty())
       78:      109:   96:      return visit_continue;
        -:        -:   97:
    #####:    #####:   98:   ir->condition = logic_and(ir->condition, inner->condition);
    #####:    #####:   99:   inner->then_instructions.move_nodes_to(&ir->then_instructions);
        -:        -:  100:
    #####:    #####:  101:   progress = true;
    #####:    #####:  102:   return visit_continue;
        -:        -:  103:}

src/compiler/opt_function_inlining.cpp.gcov

        -:        -:    0:Source:glsl/opt_function_inlining.cpp
        -:        -:    0:Graph:glsl/.libs/opt_function_inlining.gcno
        -:        -:    0:Data:glsl/.libs/opt_function_inlining.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_function_inlining.cpp
        -:        -:   26: *
        -:        -:   27: * Replaces calls to functions with the body of the function.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "ir.h"
        -:        -:   31:#include "ir_visitor.h"
        -:        -:   32:#include "ir_function_inlining.h"
        -:        -:   33:#include "ir_expression_flattening.h"
        -:        -:   34:#include "compiler/glsl_types.h"
        -:        -:   35:#include "util/hash_table.h"
        -:        -:   36:
        -:        -:   37:static void
        -:        -:   38:do_variable_replacement(exec_list *instructions,
        -:        -:   39:                        ir_variable *orig,
        -:        -:   40:                        ir_dereference *repl);
        -:        -:   41:
        -:        -:   42:namespace {
        -:        -:   43:
        -:        -:   44:class ir_function_inlining_visitor : public ir_hierarchical_visitor {
        -:        -:   45:public:
       12:       12:   46:   ir_function_inlining_visitor()
       12:       12:   47:   {
       12:       12:   48:      progress = false;
       12:       12:   49:   }
        -:        -:   50:
       12:       12:   51:   virtual ~ir_function_inlining_visitor()
       12:       12:   52:   {
        -:        -:   53:      /* empty */
       12:       12:   54:   }
        -:        -:   55:
        -:        -:   56:   virtual ir_visitor_status visit_enter(ir_expression *);
        -:        -:   57:   virtual ir_visitor_status visit_enter(ir_call *);
        -:        -:   58:   virtual ir_visitor_status visit_enter(ir_return *);
        -:        -:   59:   virtual ir_visitor_status visit_enter(ir_texture *);
        -:        -:   60:   virtual ir_visitor_status visit_enter(ir_swizzle *);
        -:        -:   61:
        -:        -:   62:   bool progress;
        -:        -:   63:};
        -:        -:   64:
    #####:    #####:   65:class ir_save_lvalue_visitor : public ir_hierarchical_visitor {
        -:        -:   66:public:
        -:        -:   67:   virtual ir_visitor_status visit_enter(ir_dereference_array *);
        -:        -:   68:};
        -:        -:   69:
        -:        -:   70:} /* unnamed namespace */
        -:        -:   71:
        -:        -:   72:bool
       12:       12:   73:do_function_inlining(exec_list *instructions)
        -:        -:   74:{
       24:       24:   75:   ir_function_inlining_visitor v;
        -:        -:   76:
       12:       12:   77:   v.run(instructions);
        -:        -:   78:
       24:       24:   79:   return v.progress;
        -:        -:   80:}
        -:        -:   81:
        -:        -:   82:static void
      167:      193:   83:replace_return_with_assignment(ir_instruction *ir, void *data)
        -:        -:   84:{
      167:      193:   85:   void *ctx = ralloc_parent(ir);
      167:      193:   86:   ir_dereference *orig_deref = (ir_dereference *) data;
      167:      193:   87:   ir_return *ret = ir->as_return();
        -:        -:   88:
      167:      193:   89:   if (ret) {
        7:        7:   90:      if (ret->value) {
        7:        7:   91:	 ir_rvalue *lhs = orig_deref->clone(ctx, NULL);
        7:        7:   92:	 ret->replace_with(new(ctx) ir_assignment(lhs, ret->value, NULL));
        -:        -:   93:      } else {
        -:        -:   94:	 /* un-valued return has to be the last return, or we shouldn't
        -:        -:   95:	  * have reached here. (see can_inline()).
        -:        -:   96:	  */
    #####:    #####:   97:	 assert(ret->next->is_tail_sentinel());
    #####:    #####:   98:	 ret->remove();
        -:        -:   99:      }
        -:        -:  100:   }
      167:      193:  101:}
        -:        -:  102:
        -:        -:  103:/* Save the given lvalue before the given instruction.
        -:        -:  104: *
        -:        -:  105: * This is done by adding temporary variables into which the current value
        -:        -:  106: * of any array indices are saved, and then modifying the dereference chain
        -:        -:  107: * in-place to point to those temporary variables.
        -:        -:  108: *
        -:        -:  109: * The hierarchical visitor is only used to traverse the left-hand-side chain
        -:        -:  110: * of derefs.
        -:        -:  111: */
        -:        -:  112:ir_visitor_status
    #####:    #####:  113:ir_save_lvalue_visitor::visit_enter(ir_dereference_array *deref)
        -:        -:  114:{
    #####:    #####:  115:   if (deref->array_index->ir_type != ir_type_constant) {
    #####:    #####:  116:      void *ctx = ralloc_parent(deref);
        -:        -:  117:      ir_variable *index;
        -:        -:  118:      ir_assignment *assignment;
        -:        -:  119:
    #####:    #####:  120:      index = new(ctx) ir_variable(deref->array_index->type, "saved_idx", ir_var_temporary);
    #####:    #####:  121:      base_ir->insert_before(index);
        -:        -:  122:
    #####:    #####:  123:      assignment = new(ctx) ir_assignment(new(ctx) ir_dereference_variable(index),
    #####:    #####:  124:                                          deref->array_index, 0);
    #####:    #####:  125:      base_ir->insert_before(assignment);
        -:        -:  126:
    #####:    #####:  127:      deref->array_index = new(ctx) ir_dereference_variable(index);
        -:        -:  128:   }
        -:        -:  129:
    #####:    #####:  130:   deref->array->accept(this);
    #####:    #####:  131:   return visit_stop;
        -:        -:  132:}
        -:        -:  133:
        -:        -:  134:void
        7:        7:  135:ir_call::generate_inline(ir_instruction *next_ir)
        -:        -:  136:{
        7:        7:  137:   void *ctx = ralloc_parent(this);
        -:        -:  138:   ir_variable **parameters;
        -:        -:  139:   unsigned num_parameters;
        -:        -:  140:   int i;
        -:        -:  141:   struct hash_table *ht;
        -:        -:  142:
        7:        7:  143:   ht = _mesa_hash_table_create(NULL, _mesa_hash_pointer, _mesa_key_pointer_equal);
        -:        -:  144:
        7:        7:  145:   num_parameters = this->callee->parameters.length();
        7:        7:  146:   parameters = new ir_variable *[num_parameters];
        -:        -:  147:
        -:        -:  148:   /* Generate the declarations for the parameters to our inlined code,
        -:        -:  149:    * and set up the mapping of real function body variables to ours.
        -:        -:  150:    */
        7:        7:  151:   i = 0;
       20:       20:  152:   foreach_two_lists(formal_node, &this->callee->parameters,
        -:        -:  153:                     actual_node, &this->actual_parameters) {
       13:       13:  154:      ir_variable *sig_param = (ir_variable *) formal_node;
       13:       13:  155:      ir_rvalue *param = (ir_rvalue *) actual_node;
        -:        -:  156:
        -:        -:  157:      /* Generate a new variable for the parameter. */
       13:       13:  158:      if (sig_param->type->contains_opaque()) {
        -:        -:  159:	 /* For opaque types, we want the inlined variable references
        -:        -:  160:	  * referencing the passed in variable, since that will have
        -:        -:  161:	  * the location information, which an assignment of an opaque
        -:        -:  162:	  * variable wouldn't.  Fix it up below.
        -:        -:  163:	  */
    #####:    #####:  164:	 parameters[i] = NULL;
        -:        -:  165:      } else {
       13:       13:  166:	 parameters[i] = sig_param->clone(ctx, ht);
       13:       13:  167:	 parameters[i]->data.mode = ir_var_temporary;
        -:        -:  168:
        -:        -:  169:	 /* Remove the read-only decoration because we're going to write
        -:        -:  170:	  * directly to this variable.  If the cloned variable is left
        -:        -:  171:	  * read-only and the inlined function is inside a loop, the loop
        -:        -:  172:	  * analysis code will get confused.
        -:        -:  173:	  */
       13:       13:  174:	 parameters[i]->data.read_only = false;
       13:       13:  175:	 next_ir->insert_before(parameters[i]);
        -:        -:  176:      }
        -:        -:  177:
        -:        -:  178:      /* Section 6.1.1 (Function Calling Conventions) of the OpenGL Shading
        -:        -:  179:       * Language 4.5 spec says:
        -:        -:  180:       *
        -:        -:  181:       *    "All arguments are evaluated at call time, exactly once, in order,
        -:        -:  182:       *     from left to right. [...] Evaluation of an out parameter results
        -:        -:  183:       *     in an l-value that is used to copy out a value when the function
        -:        -:  184:       *     returns."
        -:        -:  185:       *
        -:        -:  186:       * I.e., we have to take temporary copies of any relevant array indices
        -:        -:  187:       * before the function body is executed.
        -:        -:  188:       *
        -:        -:  189:       * This ensures that
        -:        -:  190:       * (a) if an array index expressions refers to a variable that is
        -:        -:  191:       *     modified by the execution of the function body, we use the
        -:        -:  192:       *     original value as intended, and
        -:        -:  193:       * (b) if an array index expression has side effects, those side effects
        -:        -:  194:       *     are only executed once and at the right time.
        -:        -:  195:       */
       13:       13:  196:      if (parameters[i]) {
       13:       13:  197:         if (sig_param->data.mode == ir_var_function_in ||
    #####:    #####:  198:             sig_param->data.mode == ir_var_const_in) {
        -:        -:  199:            ir_assignment *assign;
        -:        -:  200:
       13:       13:  201:            assign = new(ctx) ir_assignment(new(ctx) ir_dereference_variable(parameters[i]),
       26:       26:  202:                                            param, NULL);
       13:       13:  203:            next_ir->insert_before(assign);
        -:        -:  204:         } else {
    #####:    #####:  205:            assert(sig_param->data.mode == ir_var_function_out ||
    #####:    #####:  206:                   sig_param->data.mode == ir_var_function_inout);
    #####:    #####:  207:            assert(param->is_lvalue());
        -:        -:  208:
    #####:    #####:  209:            ir_save_lvalue_visitor v;
    #####:    #####:  210:            v.base_ir = next_ir;
        -:        -:  211:
    #####:    #####:  212:            param->accept(&v);
        -:        -:  213:
    #####:    #####:  214:            if (sig_param->data.mode == ir_var_function_inout) {
        -:        -:  215:               ir_assignment *assign;
        -:        -:  216:
    #####:    #####:  217:               assign = new(ctx) ir_assignment(new(ctx) ir_dereference_variable(parameters[i]),
    #####:    #####:  218:                                               param->clone(ctx, NULL)->as_rvalue(), NULL);
    #####:    #####:  219:               next_ir->insert_before(assign);
        -:        -:  220:            }
        -:        -:  221:         }
        -:        -:  222:      }
        -:        -:  223:
       13:       13:  224:      ++i;
        -:        -:  225:   }
        -:        -:  226:
        7:        7:  227:   exec_list new_instructions;
        -:        -:  228:
        -:        -:  229:   /* Generate the inlined body of the function to a new list */
       32:       32:  230:   foreach_in_list(ir_instruction, ir, &callee->body) {
       25:       25:  231:      ir_instruction *new_ir = ir->clone(ctx, ht);
        -:        -:  232:
       25:       25:  233:      new_instructions.push_tail(new_ir);
       25:       25:  234:      visit_tree(new_ir, replace_return_with_assignment, this->return_deref);
        -:        -:  235:   }
        -:        -:  236:
        -:        -:  237:   /* If any opaque types were passed in, replace any deref of the
        -:        -:  238:    * opaque variable with a deref of the argument.
        -:        -:  239:    */
       20:       20:  240:   foreach_two_lists(formal_node, &this->callee->parameters,
        -:        -:  241:                     actual_node, &this->actual_parameters) {
       13:       13:  242:      ir_rvalue *const param = (ir_rvalue *) actual_node;
       13:       13:  243:      ir_variable *sig_param = (ir_variable *) formal_node;
        -:        -:  244:
       13:       13:  245:      if (sig_param->type->contains_opaque()) {
    #####:    #####:  246:	 ir_dereference *deref = param->as_dereference();
        -:        -:  247:
    #####:    #####:  248:	 assert(deref);
    #####:    #####:  249:	 do_variable_replacement(&new_instructions, sig_param, deref);
        -:        -:  250:      }
        -:        -:  251:   }
        -:        -:  252:
        -:        -:  253:   /* Now push those new instructions in. */
        7:        7:  254:   next_ir->insert_before(&new_instructions);
        -:        -:  255:
        -:        -:  256:   /* Copy back the value of any 'out' parameters from the function body
        -:        -:  257:    * variables to our own.
        -:        -:  258:    */
        7:        7:  259:   i = 0;
       20:       20:  260:   foreach_two_lists(formal_node, &this->callee->parameters,
        -:        -:  261:                     actual_node, &this->actual_parameters) {
       13:       13:  262:      ir_rvalue *const param = (ir_rvalue *) actual_node;
       13:       13:  263:      const ir_variable *const sig_param = (ir_variable *) formal_node;
        -:        -:  264:
        -:        -:  265:      /* Move our param variable into the actual param if it's an 'out' type. */
       26:       26:  266:      if (parameters[i] && (sig_param->data.mode == ir_var_function_out ||
       13:       13:  267:			    sig_param->data.mode == ir_var_function_inout)) {
        -:        -:  268:	 ir_assignment *assign;
        -:        -:  269:
        -:        -:  270:         assign = new(ctx) ir_assignment(param,
    #####:    #####:  271:					 new(ctx) ir_dereference_variable(parameters[i]),
    #####:    #####:  272:					 NULL);
    #####:    #####:  273:	 next_ir->insert_before(assign);
        -:        -:  274:      }
        -:        -:  275:
       13:       13:  276:      ++i;
        -:        -:  277:   }
        -:        -:  278:
        7:        7:  279:   delete [] parameters;
        -:        -:  280:
        7:        7:  281:   _mesa_hash_table_destroy(ht, NULL);
        7:        7:  282:}
        -:        -:  283:
        -:        -:  284:
        -:        -:  285:ir_visitor_status
      168:      179:  286:ir_function_inlining_visitor::visit_enter(ir_expression *ir)
        -:        -:  287:{
        -:        -:  288:   (void) ir;
      168:      179:  289:   return visit_continue_with_parent;
        -:        -:  290:}
        -:        -:  291:
        -:        -:  292:
        -:        -:  293:ir_visitor_status
        1:        1:  294:ir_function_inlining_visitor::visit_enter(ir_return *ir)
        -:        -:  295:{
        -:        -:  296:   (void) ir;
        1:        1:  297:   return visit_continue_with_parent;
        -:        -:  298:}
        -:        -:  299:
        -:        -:  300:
        -:        -:  301:ir_visitor_status
    #####:    #####:  302:ir_function_inlining_visitor::visit_enter(ir_texture *ir)
        -:        -:  303:{
        -:        -:  304:   (void) ir;
    #####:    #####:  305:   return visit_continue_with_parent;
        -:        -:  306:}
        -:        -:  307:
        -:        -:  308:
        -:        -:  309:ir_visitor_status
       11:       11:  310:ir_function_inlining_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  311:{
        -:        -:  312:   (void) ir;
       11:       11:  313:   return visit_continue_with_parent;
        -:        -:  314:}
        -:        -:  315:
        -:        -:  316:
        -:        -:  317:ir_visitor_status
        2:        2:  318:ir_function_inlining_visitor::visit_enter(ir_call *ir)
        -:        -:  319:{
        2:        2:  320:   if (can_inline(ir)) {
        2:        2:  321:      ir->generate_inline(ir);
        2:        2:  322:      ir->remove();
        2:        2:  323:      this->progress = true;
        -:        -:  324:   }
        -:        -:  325:
        2:        2:  326:   return visit_continue;
        -:        -:  327:}
        -:        -:  328:
        -:        -:  329:
        -:        -:  330:/**
        -:        -:  331: * Replaces references to the "orig" variable with a clone of "repl."
        -:        -:  332: *
        -:        -:  333: * From the spec, opaque types can appear in the tree as function
        -:        -:  334: * (non-out) parameters and as the result of array indexing and
        -:        -:  335: * structure field selection.  In our builtin implementation, they
        -:        -:  336: * also appear in the sampler field of an ir_tex instruction.
        -:        -:  337: */
        -:        -:  338:
        -:        -:  339:class ir_variable_replacement_visitor : public ir_hierarchical_visitor {
        -:        -:  340:public:
    #####:    #####:  341:   ir_variable_replacement_visitor(ir_variable *orig, ir_dereference *repl)
    #####:    #####:  342:   {
    #####:    #####:  343:      this->orig = orig;
    #####:    #####:  344:      this->repl = repl;
    #####:    #####:  345:   }
        -:        -:  346:
    #####:    #####:  347:   virtual ~ir_variable_replacement_visitor()
    #####:    #####:  348:   {
    #####:    #####:  349:   }
        -:        -:  350:
        -:        -:  351:   virtual ir_visitor_status visit_leave(ir_call *);
        -:        -:  352:   virtual ir_visitor_status visit_leave(ir_dereference_array *);
        -:        -:  353:   virtual ir_visitor_status visit_leave(ir_dereference_record *);
        -:        -:  354:   virtual ir_visitor_status visit_leave(ir_texture *);
        -:        -:  355:
        -:        -:  356:   void replace_deref(ir_dereference **deref);
        -:        -:  357:   void replace_rvalue(ir_rvalue **rvalue);
        -:        -:  358:
        -:        -:  359:   ir_variable *orig;
        -:        -:  360:   ir_dereference *repl;
        -:        -:  361:};
        -:        -:  362:
        -:        -:  363:void
    #####:    #####:  364:ir_variable_replacement_visitor::replace_deref(ir_dereference **deref)
        -:        -:  365:{
    #####:    #####:  366:   ir_dereference_variable *deref_var = (*deref)->as_dereference_variable();
    #####:    #####:  367:   if (deref_var && deref_var->var == this->orig) {
    #####:    #####:  368:      *deref = this->repl->clone(ralloc_parent(*deref), NULL);
        -:        -:  369:   }
    #####:    #####:  370:}
        -:        -:  371:
        -:        -:  372:void
    #####:    #####:  373:ir_variable_replacement_visitor::replace_rvalue(ir_rvalue **rvalue)
        -:        -:  374:{
    #####:    #####:  375:   if (!*rvalue)
    #####:    #####:  376:      return;
        -:        -:  377:
    #####:    #####:  378:   ir_dereference *deref = (*rvalue)->as_dereference();
        -:        -:  379:
    #####:    #####:  380:   if (!deref)
    #####:    #####:  381:      return;
        -:        -:  382:
    #####:    #####:  383:   replace_deref(&deref);
    #####:    #####:  384:   *rvalue = deref;
        -:        -:  385:}
        -:        -:  386:
        -:        -:  387:ir_visitor_status
    #####:    #####:  388:ir_variable_replacement_visitor::visit_leave(ir_texture *ir)
        -:        -:  389:{
    #####:    #####:  390:   replace_deref(&ir->sampler);
        -:        -:  391:
    #####:    #####:  392:   return visit_continue;
        -:        -:  393:}
        -:        -:  394:
        -:        -:  395:ir_visitor_status
    #####:    #####:  396:ir_variable_replacement_visitor::visit_leave(ir_dereference_array *ir)
        -:        -:  397:{
    #####:    #####:  398:   replace_rvalue(&ir->array);
    #####:    #####:  399:   return visit_continue;
        -:        -:  400:}
        -:        -:  401:
        -:        -:  402:ir_visitor_status
    #####:    #####:  403:ir_variable_replacement_visitor::visit_leave(ir_dereference_record *ir)
        -:        -:  404:{
    #####:    #####:  405:   replace_rvalue(&ir->record);
    #####:    #####:  406:   return visit_continue;
        -:        -:  407:}
        -:        -:  408:
        -:        -:  409:ir_visitor_status
    #####:    #####:  410:ir_variable_replacement_visitor::visit_leave(ir_call *ir)
        -:        -:  411:{
    #####:    #####:  412:   foreach_in_list_safe(ir_rvalue, param, &ir->actual_parameters) {
    #####:    #####:  413:      ir_rvalue *new_param = param;
    #####:    #####:  414:      replace_rvalue(&new_param);
        -:        -:  415:
    #####:    #####:  416:      if (new_param != param) {
    #####:    #####:  417:	 param->replace_with(new_param);
        -:        -:  418:      }
        -:        -:  419:   }
    #####:    #####:  420:   return visit_continue;
        -:        -:  421:}
        -:        -:  422:
        -:        -:  423:static void
    #####:    #####:  424:do_variable_replacement(exec_list *instructions,
        -:        -:  425:                        ir_variable *orig,
        -:        -:  426:                        ir_dereference *repl)
        -:        -:  427:{
    #####:    #####:  428:   ir_variable_replacement_visitor v(orig, repl);
        -:        -:  429:
    #####:    #####:  430:   visit_list_elements(&v, instructions);
    #####:    #####:  431:}

src/compiler/opt_if_simplification.cpp.gcov

        -:        -:    0:Source:glsl/opt_if_simplification.cpp
        -:        -:    0:Graph:glsl/.libs/opt_if_simplification.gcno
        -:        -:    0:Data:glsl/.libs/opt_if_simplification.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_if_simplification.cpp
        -:        -:   26: *
        -:        -:   27: * Moves constant branches of if statements out to the surrounding
        -:        -:   28: * instruction stream, and inverts if conditionals to avoid empty
        -:        -:   29: * "then" blocks.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:#include "ir.h"
        -:        -:   33:
        -:        -:   34:namespace {
        -:        -:   35:
        -:        -:   36:class ir_if_simplification_visitor : public ir_hierarchical_visitor {
        -:        -:   37:public:
       18:       18:   38:   ir_if_simplification_visitor()
       18:       18:   39:   {
       18:       18:   40:      this->made_progress = false;
       18:       18:   41:   }
        -:        -:   42:
        -:        -:   43:   ir_visitor_status visit_leave(ir_if *);
        -:        -:   44:   ir_visitor_status visit_enter(ir_assignment *);
        -:        -:   45:
        -:        -:   46:   bool made_progress;
        -:        -:   47:};
        -:        -:   48:
        -:        -:   49:} /* unnamed namespace */
        -:        -:   50:
        -:        -:   51:/* We only care about the top level "if" instructions, so don't
        -:        -:   52: * descend into expressions.
        -:        -:   53: */
        -:        -:   54:ir_visitor_status
      491:      491:   55:ir_if_simplification_visitor::visit_enter(ir_assignment *ir)
        -:        -:   56:{
        -:        -:   57:   (void) ir;
      491:      491:   58:   return visit_continue_with_parent;
        -:        -:   59:}
        -:        -:   60:
        -:        -:   61:bool
       18:       18:   62:do_if_simplification(exec_list *instructions)
        -:        -:   63:{
       18:       18:   64:   ir_if_simplification_visitor v;
        -:        -:   65:
       18:       18:   66:   v.run(instructions);
       18:       18:   67:   return v.made_progress;
        -:        -:   68:}
        -:        -:   69:
        -:        -:   70:
        -:        -:   71:ir_visitor_status
       95:      128:   72:ir_if_simplification_visitor::visit_leave(ir_if *ir)
        -:        -:   73:{
        -:        -:   74:   /* If the if statement has nothing on either side, remove it. */
       95:      128:   75:   if (ir->then_instructions.is_empty() &&
    #####:    #####:   76:       ir->else_instructions.is_empty()) {
    #####:    #####:   77:      ir->remove();
    #####:    #####:   78:      this->made_progress = true;
    #####:    #####:   79:      return visit_continue;
        -:        -:   80:   }
        -:        -:   81:
        -:        -:   82:   /* FINISHME: Ideally there would be a way to note that the condition results
        -:        -:   83:    * FINISHME: in a constant before processing both of the other subtrees.
        -:        -:   84:    * FINISHME: This can probably be done with some flags, but it would take
        -:        -:   85:    * FINISHME: some work to get right.
        -:        -:   86:    */
       95:      128:   87:   ir_constant *condition_constant = ir->condition->constant_expression_value();
       95:      128:   88:   if (condition_constant) {
        -:        -:   89:      /* Move the contents of the one branch of the conditional
        -:        -:   90:       * that matters out.
        -:        -:   91:       */
        3:        5:   92:      if (condition_constant->value.b[0]) {
    #####:    #####:   93:         ir->insert_before(&ir->then_instructions);
        -:        -:   94:      } else {
        3:        5:   95:         ir->insert_before(&ir->else_instructions);
        -:        -:   96:      }
        3:        5:   97:      ir->remove();
        3:        5:   98:      this->made_progress = true;
        3:        5:   99:      return visit_continue;
        -:        -:  100:   }
        -:        -:  101:
        -:        -:  102:   /* Turn:
        -:        -:  103:    *
        -:        -:  104:    *     if (cond) {
        -:        -:  105:    *     } else {
        -:        -:  106:    *         do_work();
        -:        -:  107:    *     }
        -:        -:  108:    *
        -:        -:  109:    * into :
        -:        -:  110:    *
        -:        -:  111:    *     if (!cond)
        -:        -:  112:    *         do_work();
        -:        -:  113:    *
        -:        -:  114:    * which avoids control flow for "else" (which is usually more
        -:        -:  115:    * expensive than normal operations), and the "not" can usually be
        -:        -:  116:    * folded into the generation of "cond" anyway.
        -:        -:  117:    */
       92:      123:  118:   if (ir->then_instructions.is_empty()) {
    #####:    #####:  119:      ir->condition = new(ralloc_parent(ir->condition))
    #####:    #####:  120:	 ir_expression(ir_unop_logic_not, ir->condition);
    #####:    #####:  121:      ir->else_instructions.move_nodes_to(&ir->then_instructions);
    #####:    #####:  122:      this->made_progress = true;
        -:        -:  123:   }
        -:        -:  124:
       92:      123:  125:   return visit_continue;
        -:        -:  126:}

src/compiler/opt_minmax.cpp.gcov

        -:        -:    0:Source:glsl/opt_minmax.cpp
        -:        -:    0:Graph:glsl/.libs/opt_minmax.gcno
        -:        -:    0:Data:glsl/.libs/opt_minmax.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_minmax.cpp
        -:        -:   26: *
        -:        -:   27: * Drop operands from an expression tree of only min/max operations if they
        -:        -:   28: * can be proven to not contribute to the final result.
        -:        -:   29: *
        -:        -:   30: * The algorithm is similar to alpha-beta pruning on a minmax search.
        -:        -:   31: */
        -:        -:   32:
        -:        -:   33:#include "ir.h"
        -:        -:   34:#include "ir_visitor.h"
        -:        -:   35:#include "ir_rvalue_visitor.h"
        -:        -:   36:#include "ir_optimization.h"
        -:        -:   37:#include "ir_builder.h"
        -:        -:   38:#include "program/prog_instruction.h"
        -:        -:   39:#include "compiler/glsl_types.h"
        -:        -:   40:#include "main/macros.h"
        -:        -:   41:
        -:        -:   42:using namespace ir_builder;
        -:        -:   43:
        -:        -:   44:namespace {
        -:        -:   45:
        -:        -:   46:enum compare_components_result {
        -:        -:   47:   LESS,
        -:        -:   48:   LESS_OR_EQUAL,
        -:        -:   49:   EQUAL,
        -:        -:   50:   GREATER_OR_EQUAL,
        -:        -:   51:   GREATER,
        -:        -:   52:   MIXED
        -:        -:   53:};
        -:        -:   54:
        -:        -:   55:class minmax_range {
        -:        -:   56:public:
    #####:    #####:   57:   minmax_range(ir_constant *low = NULL, ir_constant *high = NULL)
        -:        -:   58:   {
    #####:    #####:   59:      this->low = low;
    #####:    #####:   60:      this->high = high;
    #####:    #####:   61:   }
        -:        -:   62:
        -:        -:   63:   /* low is the lower limit of the range, high is the higher limit. NULL on
        -:        -:   64:    * low means negative infinity (unlimited) and on high positive infinity
        -:        -:   65:    * (unlimited). Because of the two interpretations of the value NULL,
        -:        -:   66:    * arbitrary comparison between ir_constants is impossible.
        -:        -:   67:    */
        -:        -:   68:   ir_constant *low;
        -:        -:   69:   ir_constant *high;
        -:        -:   70:};
        -:        -:   71:
        -:        -:   72:class ir_minmax_visitor : public ir_rvalue_enter_visitor {
        -:        -:   73:public:
       18:       18:   74:   ir_minmax_visitor()
       18:       18:   75:      : progress(false)
        -:        -:   76:   {
       18:       18:   77:   }
        -:        -:   78:
        -:        -:   79:   ir_rvalue *prune_expression(ir_expression *expr, minmax_range baserange);
        -:        -:   80:
        -:        -:   81:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   82:
        -:        -:   83:   bool progress;
        -:        -:   84:};
        -:        -:   85:
        -:        -:   86:/*
        -:        -:   87: * Returns LESS if all vector components of `a' are strictly lower than of `b',
        -:        -:   88: * GREATER if all vector components of `a' are strictly greater than of `b',
        -:        -:   89: * MIXED if some vector components of `a' are strictly lower than of `b' while
        -:        -:   90: * others are strictly greater, or EQUAL otherwise.
        -:        -:   91: */
        -:        -:   92:static enum compare_components_result
    #####:    #####:   93:compare_components(ir_constant *a, ir_constant *b)
        -:        -:   94:{
    #####:    #####:   95:   assert(a != NULL);
    #####:    #####:   96:   assert(b != NULL);
        -:        -:   97:
    #####:    #####:   98:   assert(a->type->base_type == b->type->base_type);
        -:        -:   99:
    #####:    #####:  100:   unsigned a_inc = a->type->is_scalar() ? 0 : 1;
    #####:    #####:  101:   unsigned b_inc = b->type->is_scalar() ? 0 : 1;
    #####:    #####:  102:   unsigned components = MAX2(a->type->components(), b->type->components());
        -:        -:  103:
    #####:    #####:  104:   bool foundless = false;
    #####:    #####:  105:   bool foundgreater = false;
    #####:    #####:  106:   bool foundequal = false;
        -:        -:  107:
    #####:    #####:  108:   for (unsigned i = 0, c0 = 0, c1 = 0;
    #####:    #####:  109:        i < components;
        -:        -:  110:        c0 += a_inc, c1 += b_inc, ++i) {
    #####:    #####:  111:      switch (a->type->base_type) {
        -:        -:  112:      case GLSL_TYPE_UINT:
    #####:    #####:  113:         if (a->value.u[c0] < b->value.u[c1])
    #####:    #####:  114:            foundless = true;
    #####:    #####:  115:         else if (a->value.u[c0] > b->value.u[c1])
    #####:    #####:  116:            foundgreater = true;
        -:        -:  117:         else
    #####:    #####:  118:            foundequal = true;
    #####:    #####:  119:         break;
        -:        -:  120:      case GLSL_TYPE_INT:
    #####:    #####:  121:         if (a->value.i[c0] < b->value.i[c1])
    #####:    #####:  122:            foundless = true;
    #####:    #####:  123:         else if (a->value.i[c0] > b->value.i[c1])
    #####:    #####:  124:            foundgreater = true;
        -:        -:  125:         else
    #####:    #####:  126:            foundequal = true;
    #####:    #####:  127:         break;
        -:        -:  128:      case GLSL_TYPE_FLOAT:
    #####:    #####:  129:         if (a->value.f[c0] < b->value.f[c1])
    #####:    #####:  130:            foundless = true;
    #####:    #####:  131:         else if (a->value.f[c0] > b->value.f[c1])
    #####:    #####:  132:            foundgreater = true;
        -:        -:  133:         else
    #####:    #####:  134:            foundequal = true;
    #####:    #####:  135:         break;
        -:        -:  136:      case GLSL_TYPE_DOUBLE:
    #####:    #####:  137:         if (a->value.d[c0] < b->value.d[c1])
    #####:    #####:  138:            foundless = true;
    #####:    #####:  139:         else if (a->value.d[c0] > b->value.d[c1])
    #####:    #####:  140:            foundgreater = true;
        -:        -:  141:         else
    #####:    #####:  142:            foundequal = true;
    #####:    #####:  143:         break;
        -:        -:  144:      default:
    #####:    #####:  145:         unreachable("not reached");
        -:        -:  146:      }
        -:        -:  147:   }
        -:        -:  148:
    #####:    #####:  149:   if (foundless && foundgreater) {
        -:        -:  150:      /* Some components are strictly lower, others are strictly greater */
    #####:    #####:  151:      return MIXED;
        -:        -:  152:   }
        -:        -:  153:
    #####:    #####:  154:   if (foundequal) {
        -:        -:  155:       /* It is not mixed, but it is not strictly lower or greater */
    #####:    #####:  156:      if (foundless)
    #####:    #####:  157:         return LESS_OR_EQUAL;
    #####:    #####:  158:      if (foundgreater)
    #####:    #####:  159:         return GREATER_OR_EQUAL;
    #####:    #####:  160:      return EQUAL;
        -:        -:  161:   }
        -:        -:  162:
        -:        -:  163:   /* All components are strictly lower or strictly greater */
    #####:    #####:  164:   return foundless ? LESS : GREATER;
        -:        -:  165:}
        -:        -:  166:
        -:        -:  167:static ir_constant *
    #####:    #####:  168:combine_constant(bool ismin, ir_constant *a, ir_constant *b)
        -:        -:  169:{
    #####:    #####:  170:   void *mem_ctx = ralloc_parent(a);
    #####:    #####:  171:   ir_constant *c = a->clone(mem_ctx, NULL);
    #####:    #####:  172:   for (unsigned i = 0; i < c->type->components(); i++) {
    #####:    #####:  173:      switch (c->type->base_type) {
        -:        -:  174:      case GLSL_TYPE_UINT:
    #####:    #####:  175:         if ((ismin && b->value.u[i] < c->value.u[i]) ||
    #####:    #####:  176:             (!ismin && b->value.u[i] > c->value.u[i]))
    #####:    #####:  177:            c->value.u[i] = b->value.u[i];
    #####:    #####:  178:         break;
        -:        -:  179:      case GLSL_TYPE_INT:
    #####:    #####:  180:         if ((ismin && b->value.i[i] < c->value.i[i]) ||
    #####:    #####:  181:             (!ismin && b->value.i[i] > c->value.i[i]))
    #####:    #####:  182:            c->value.i[i] = b->value.i[i];
    #####:    #####:  183:         break;
        -:        -:  184:      case GLSL_TYPE_FLOAT:
    #####:    #####:  185:         if ((ismin && b->value.f[i] < c->value.f[i]) ||
    #####:    #####:  186:             (!ismin && b->value.f[i] > c->value.f[i]))
    #####:    #####:  187:            c->value.f[i] = b->value.f[i];
    #####:    #####:  188:         break;
        -:        -:  189:      case GLSL_TYPE_DOUBLE:
    #####:    #####:  190:         if ((ismin && b->value.d[i] < c->value.d[i]) ||
    #####:    #####:  191:             (!ismin && b->value.d[i] > c->value.d[i]))
    #####:    #####:  192:            c->value.d[i] = b->value.d[i];
    #####:    #####:  193:         break;
        -:        -:  194:      default:
    #####:    #####:  195:         assert(!"not reached");
        -:        -:  196:      }
        -:        -:  197:   }
    #####:    #####:  198:   return c;
        -:        -:  199:}
        -:        -:  200:
        -:        -:  201:static ir_constant *
    #####:    #####:  202:smaller_constant(ir_constant *a, ir_constant *b)
        -:        -:  203:{
    #####:    #####:  204:   assert(a != NULL);
    #####:    #####:  205:   assert(b != NULL);
        -:        -:  206:
    #####:    #####:  207:   enum compare_components_result ret = compare_components(a, b);
    #####:    #####:  208:   if (ret == MIXED)
    #####:    #####:  209:      return combine_constant(true, a, b);
    #####:    #####:  210:   else if (ret < EQUAL)
    #####:    #####:  211:      return a;
        -:        -:  212:   else
    #####:    #####:  213:      return b;
        -:        -:  214:}
        -:        -:  215:
        -:        -:  216:static ir_constant *
    #####:    #####:  217:larger_constant(ir_constant *a, ir_constant *b)
        -:        -:  218:{
    #####:    #####:  219:   assert(a != NULL);
    #####:    #####:  220:   assert(b != NULL);
        -:        -:  221:
    #####:    #####:  222:   enum compare_components_result ret = compare_components(a, b);
    #####:    #####:  223:   if (ret == MIXED)
    #####:    #####:  224:      return combine_constant(false, a, b);
    #####:    #####:  225:   else if (ret < EQUAL)
    #####:    #####:  226:      return b;
        -:        -:  227:   else
    #####:    #####:  228:      return a;
        -:        -:  229:}
        -:        -:  230:
        -:        -:  231:/* Combines two ranges by doing an element-wise min() / max() depending on the
        -:        -:  232: * operation.
        -:        -:  233: */
        -:        -:  234:static minmax_range
    #####:    #####:  235:combine_range(minmax_range r0, minmax_range r1, bool ismin)
        -:        -:  236:{
    #####:    #####:  237:   minmax_range ret;
        -:        -:  238:
    #####:    #####:  239:   if (!r0.low) {
    #####:    #####:  240:      ret.low = ismin ? r0.low : r1.low;
    #####:    #####:  241:   } else if (!r1.low) {
    #####:    #####:  242:      ret.low = ismin ? r1.low : r0.low;
        -:        -:  243:   } else {
    #####:    #####:  244:      ret.low = ismin ? smaller_constant(r0.low, r1.low) :
    #####:    #####:  245:         larger_constant(r0.low, r1.low);
        -:        -:  246:   }
        -:        -:  247:
    #####:    #####:  248:   if (!r0.high) {
    #####:    #####:  249:      ret.high = ismin ? r1.high : r0.high;
    #####:    #####:  250:   } else if (!r1.high) {
    #####:    #####:  251:      ret.high = ismin ? r0.high : r1.high;
        -:        -:  252:   } else {
    #####:    #####:  253:      ret.high = ismin ? smaller_constant(r0.high, r1.high) :
    #####:    #####:  254:         larger_constant(r0.high, r1.high);
        -:        -:  255:   }
        -:        -:  256:
    #####:    #####:  257:   return ret;
        -:        -:  258:}
        -:        -:  259:
        -:        -:  260:/* Returns a range so that lower limit is the larger of the two lower limits,
        -:        -:  261: * and higher limit is the smaller of the two higher limits.
        -:        -:  262: */
        -:        -:  263:static minmax_range
    #####:    #####:  264:range_intersection(minmax_range r0, minmax_range r1)
        -:        -:  265:{
    #####:    #####:  266:   minmax_range ret;
        -:        -:  267:
    #####:    #####:  268:   if (!r0.low)
    #####:    #####:  269:      ret.low = r1.low;
    #####:    #####:  270:   else if (!r1.low)
    #####:    #####:  271:      ret.low = r0.low;
        -:        -:  272:   else
    #####:    #####:  273:      ret.low = larger_constant(r0.low, r1.low);
        -:        -:  274:
    #####:    #####:  275:   if (!r0.high)
    #####:    #####:  276:      ret.high = r1.high;
    #####:    #####:  277:   else if (!r1.high)
    #####:    #####:  278:      ret.high = r0.high;
        -:        -:  279:   else
    #####:    #####:  280:      ret.high = smaller_constant(r0.high, r1.high);
        -:        -:  281:
    #####:    #####:  282:   return ret;
        -:        -:  283:}
        -:        -:  284:
        -:        -:  285:static minmax_range
    #####:    #####:  286:get_range(ir_rvalue *rval)
        -:        -:  287:{
    #####:    #####:  288:   ir_expression *expr = rval->as_expression();
    #####:    #####:  289:   if (expr && (expr->operation == ir_binop_min ||
    #####:    #####:  290:                expr->operation == ir_binop_max)) {
    #####:    #####:  291:      minmax_range r0 = get_range(expr->operands[0]);
    #####:    #####:  292:      minmax_range r1 = get_range(expr->operands[1]);
    #####:    #####:  293:      return combine_range(r0, r1, expr->operation == ir_binop_min);
        -:        -:  294:   }
        -:        -:  295:
    #####:    #####:  296:   ir_constant *c = rval->as_constant();
    #####:    #####:  297:   if (c) {
    #####:    #####:  298:      return minmax_range(c, c);
        -:        -:  299:   }
        -:        -:  300:
    #####:    #####:  301:   return minmax_range();
        -:        -:  302:}
        -:        -:  303:
        -:        -:  304:/**
        -:        -:  305: * Prunes a min/max expression considering the base range of the parent
        -:        -:  306: * min/max expression.
        -:        -:  307: *
        -:        -:  308: * @param baserange the range that the parents of this min/max expression
        -:        -:  309: * in the min/max tree will clamp its value to.
        -:        -:  310: */
        -:        -:  311:ir_rvalue *
    #####:    #####:  312:ir_minmax_visitor::prune_expression(ir_expression *expr, minmax_range baserange)
        -:        -:  313:{
    #####:    #####:  314:   assert(expr->operation == ir_binop_min ||
    #####:    #####:  315:          expr->operation == ir_binop_max);
        -:        -:  316:
    #####:    #####:  317:   bool ismin = expr->operation == ir_binop_min;
    #####:    #####:  318:   minmax_range limits[2];
        -:        -:  319:
        -:        -:  320:   /* Recurse to get the ranges for each of the subtrees of this
        -:        -:  321:    * expression. We need to do this as a separate step because we need to
        -:        -:  322:    * know the ranges of each of the subtrees before we prune either one.
        -:        -:  323:    * Consider something like this:
        -:        -:  324:    *
        -:        -:  325:    *        max
        -:        -:  326:    *     /       \
        -:        -:  327:    *    max     max
        -:        -:  328:    *   /   \   /   \
        -:        -:  329:    *  3    a   b    2
        -:        -:  330:    *
        -:        -:  331:    * We would like to prune away the max on the bottom-right, but to do so
        -:        -:  332:    * we need to know the range of the expression on the left beforehand,
        -:        -:  333:    * and there's no guarantee that we will visit either subtree in a
        -:        -:  334:    * particular order.
        -:        -:  335:    */
    #####:    #####:  336:   for (unsigned i = 0; i < 2; ++i)
    #####:    #####:  337:      limits[i] = get_range(expr->operands[i]);
        -:        -:  338:
    #####:    #####:  339:   for (unsigned i = 0; i < 2; ++i) {
    #####:    #####:  340:      bool is_redundant = false;
        -:        -:  341:
    #####:    #####:  342:      enum compare_components_result cr = LESS;
    #####:    #####:  343:      if (ismin) {
        -:        -:  344:         /* If this operand will always be greater than the other one, it's
        -:        -:  345:          * redundant.
        -:        -:  346:          */
    #####:    #####:  347:         if (limits[i].low && limits[1 - i].high) {
    #####:    #####:  348:               cr = compare_components(limits[i].low, limits[1 - i].high);
    #####:    #####:  349:            if (cr >= EQUAL && cr != MIXED)
    #####:    #####:  350:               is_redundant = true;
        -:        -:  351:         }
        -:        -:  352:         /* If this operand is always greater than baserange, then even if
        -:        -:  353:          * it's smaller than the other one it'll get clamped, so it's
        -:        -:  354:          * redundant.
        -:        -:  355:          */
    #####:    #####:  356:         if (!is_redundant && limits[i].low && baserange.high) {
    #####:    #####:  357:            cr = compare_components(limits[i].low, baserange.high);
    #####:    #####:  358:            if (cr > EQUAL && cr != MIXED)
    #####:    #####:  359:               is_redundant = true;
        -:        -:  360:         }
        -:        -:  361:      } else {
        -:        -:  362:         /* If this operand will always be lower than the other one, it's
        -:        -:  363:          * redundant.
        -:        -:  364:          */
    #####:    #####:  365:         if (limits[i].high && limits[1 - i].low) {
    #####:    #####:  366:            cr = compare_components(limits[i].high, limits[1 - i].low);
    #####:    #####:  367:            if (cr <= EQUAL)
    #####:    #####:  368:               is_redundant = true;
        -:        -:  369:         }
        -:        -:  370:         /* If this operand is always lower than baserange, then even if
        -:        -:  371:          * it's greater than the other one it'll get clamped, so it's
        -:        -:  372:          * redundant.
        -:        -:  373:          */
    #####:    #####:  374:         if (!is_redundant && limits[i].high && baserange.low) {
    #####:    #####:  375:            cr = compare_components(limits[i].high, baserange.low);
    #####:    #####:  376:            if (cr < EQUAL)
    #####:    #####:  377:               is_redundant = true;
        -:        -:  378:         }
        -:        -:  379:      }
        -:        -:  380:
    #####:    #####:  381:      if (is_redundant) {
    #####:    #####:  382:         progress = true;
        -:        -:  383:
        -:        -:  384:         /* Recurse if necessary. */
    #####:    #####:  385:         ir_expression *op_expr = expr->operands[1 - i]->as_expression();
    #####:    #####:  386:         if (op_expr && (op_expr->operation == ir_binop_min ||
    #####:    #####:  387:                         op_expr->operation == ir_binop_max)) {
    #####:    #####:  388:            return prune_expression(op_expr, baserange);
        -:        -:  389:         }
        -:        -:  390:
    #####:    #####:  391:         return expr->operands[1 - i];
    #####:    #####:  392:      } else if (cr == MIXED) {
        -:        -:  393:         /* If we have mixed vector operands, we can try to resolve the minmax
        -:        -:  394:          * expression by doing a component-wise minmax:
        -:        -:  395:          *
        -:        -:  396:          *             min                          min
        -:        -:  397:          *           /    \                       /    \
        -:        -:  398:          *         min     a       ===>        [1,1]    a
        -:        -:  399:          *       /    \
        -:        -:  400:          *    [1,3]   [3,1]
        -:        -:  401:          *
        -:        -:  402:          */
    #####:    #####:  403:         ir_constant *a = expr->operands[0]->as_constant();
    #####:    #####:  404:         ir_constant *b = expr->operands[1]->as_constant();
    #####:    #####:  405:         if (a && b)
    #####:    #####:  406:            return combine_constant(ismin, a, b);
        -:        -:  407:      }
        -:        -:  408:   }
        -:        -:  409:
        -:        -:  410:   /* Now recurse to operands giving them the proper baserange. The baserange
        -:        -:  411:    * to pass is the intersection of our baserange and the other operand's
        -:        -:  412:    * limit with one of the ranges unlimited. If we can't compute a valid
        -:        -:  413:    * intersection, we use the current baserange.
        -:        -:  414:    */
    #####:    #####:  415:   for (unsigned i = 0; i < 2; ++i) {
    #####:    #####:  416:      ir_expression *op_expr = expr->operands[i]->as_expression();
    #####:    #####:  417:      if (op_expr && (op_expr->operation == ir_binop_min ||
    #####:    #####:  418:                      op_expr->operation == ir_binop_max)) {
        -:        -:  419:         /* We can only compute a new baserange for this operand if we managed
        -:        -:  420:          * to compute a valid range for the other operand.
        -:        -:  421:          */
    #####:    #####:  422:         if (ismin)
    #####:    #####:  423:            limits[1 - i].low = NULL;
        -:        -:  424:         else
    #####:    #####:  425:            limits[1 - i].high = NULL;
    #####:    #####:  426:         minmax_range base = range_intersection(limits[1 - i], baserange);
    #####:    #####:  427:         expr->operands[i] = prune_expression(op_expr, base);
        -:        -:  428:      }
        -:        -:  429:   }
        -:        -:  430:
        -:        -:  431:   /* If we got here we could not discard any of the operands of the minmax
        -:        -:  432:    * expression, but we can still try to resolve the expression if both
        -:        -:  433:    * operands are constant. We do this after the loop above, to make sure
        -:        -:  434:    * that if our operands are minmax expressions we have tried to prune them
        -:        -:  435:    * first (hopefully reducing them to constants).
        -:        -:  436:    */
    #####:    #####:  437:   ir_constant *a = expr->operands[0]->as_constant();
    #####:    #####:  438:   ir_constant *b = expr->operands[1]->as_constant();
    #####:    #####:  439:   if (a && b)
    #####:    #####:  440:      return combine_constant(ismin, a, b);
        -:        -:  441:
    #####:    #####:  442:   return expr;
        -:        -:  443:}
        -:        -:  444:
        -:        -:  445:static ir_rvalue *
    #####:    #####:  446:swizzle_if_required(ir_expression *expr, ir_rvalue *rval)
        -:        -:  447:{
    #####:    #####:  448:   if (expr->type->is_vector() && rval->type->is_scalar()) {
    #####:    #####:  449:      return swizzle(rval, SWIZZLE_XXXX, expr->type->vector_elements);
        -:        -:  450:   } else {
    #####:    #####:  451:      return rval;
        -:        -:  452:   }
        -:        -:  453:}
        -:        -:  454:
        -:        -:  455:void
     1790:     1867:  456:ir_minmax_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  457:{
     1790:     1867:  458:   if (!*rvalue)
      371:      371:  459:      return;
        -:        -:  460:
     1419:     1496:  461:   ir_expression *expr = (*rvalue)->as_expression();
     1682:     1775:  462:   if (!expr || (expr->operation != ir_binop_min &&
      263:      279:  463:                 expr->operation != ir_binop_max))
     1419:     1496:  464:      return;
        -:        -:  465:
    #####:    #####:  466:   ir_rvalue *new_rvalue = prune_expression(expr, minmax_range());
    #####:    #####:  467:   if (new_rvalue == *rvalue)
    #####:    #####:  468:      return;
        -:        -:  469:
        -:        -:  470:   /* If the expression type is a vector and the optimization leaves a scalar
        -:        -:  471:    * as the result, we need to turn it into a vector.
        -:        -:  472:    */
    #####:    #####:  473:   *rvalue = swizzle_if_required(expr, new_rvalue);
        -:        -:  474:
    #####:    #####:  475:   progress = true;
        -:        -:  476:}
        -:        -:  477:
        -:        -:  478:}
        -:        -:  479:
        -:        -:  480:bool
       18:       18:  481:do_minmax_prune(exec_list *instructions)
        -:        -:  482:{
       18:       18:  483:   ir_minmax_visitor v;
        -:        -:  484:
       18:       18:  485:   visit_list_elements(&v, instructions);
        -:        -:  486:
       18:       18:  487:   return v.progress;
        -:        -:  488:}

src/compiler/opt_noop_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_noop_swizzle.cpp
        -:        -:    0:Graph:glsl/.libs/opt_noop_swizzle.gcno
        -:        -:    0:Data:glsl/.libs/opt_noop_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_noop_swizzle.cpp
        -:        -:   26: *
        -:        -:   27: * If a swizzle doesn't change the order or count of components, then
        -:        -:   28: * remove the swizzle so that other optimization passes see the value
        -:        -:   29: * behind it.
        -:        -:   30: */
        -:        -:   31:
        -:        -:   32:#include "ir.h"
        -:        -:   33:#include "ir_visitor.h"
        -:        -:   34:#include "ir_rvalue_visitor.h"
        -:        -:   35:#include "compiler/glsl_types.h"
        -:        -:   36:
        -:        -:   37:namespace {
        -:        -:   38:
        -:        -:   39:class ir_noop_swizzle_visitor : public ir_rvalue_visitor {
        -:        -:   40:public:
       18:       18:   41:   ir_noop_swizzle_visitor()
       18:       18:   42:   {
       18:       18:   43:      this->progress = false;
       18:       18:   44:   }
        -:        -:   45:
        -:        -:   46:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:   47:   bool progress;
        -:        -:   48:};
        -:        -:   49:
        -:        -:   50:} /* unnamed namespace */
        -:        -:   51:
        -:        -:   52:void
     1802:     1879:   53:ir_noop_swizzle_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:   54:{
     1802:     1879:   55:   if (!*rvalue)
      381:      381:   56:      return;
        -:        -:   57:
     1421:     1498:   58:   ir_swizzle *swiz = (*rvalue)->as_swizzle();
     1421:     1498:   59:   if (!swiz || swiz->type != swiz->val->type)
     1390:     1467:   60:      return;
        -:        -:   61:
       31:       31:   62:   int elems = swiz->val->type->vector_elements;
       31:       31:   63:   if (swiz->mask.x != 0)
    #####:    #####:   64:      return;
       31:       31:   65:   if (elems >= 2 && swiz->mask.y != 1)
    #####:    #####:   66:      return;
       31:       31:   67:   if (elems >= 3 && swiz->mask.z != 2)
    #####:    #####:   68:      return;
       31:       31:   69:   if (elems >= 4 && swiz->mask.w != 3)
    #####:    #####:   70:      return;
        -:        -:   71:
       31:       31:   72:   this->progress = true;
       31:       31:   73:   *rvalue = swiz->val;
        -:        -:   74:}
        -:        -:   75:
        -:        -:   76:bool
       18:       18:   77:do_noop_swizzle(exec_list *instructions)
        -:        -:   78:{
       18:       18:   79:   ir_noop_swizzle_visitor v;
       18:       18:   80:   visit_list_elements(&v, instructions);
        -:        -:   81:
       18:       18:   82:   return v.progress;
        -:        -:   83:}

src/compiler/opt_rebalance_tree.cpp.gcov

        -:        -:    0:Source:glsl/opt_rebalance_tree.cpp
        -:        -:    0:Graph:glsl/.libs/opt_rebalance_tree.gcno
        -:        -:    0:Data:glsl/.libs/opt_rebalance_tree.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_rebalance_tree.cpp
        -:        -:   26: *
        -:        -:   27: * Rebalances a reduction expression tree.
        -:        -:   28: *
        -:        -:   29: * For reduction operations (e.g., x + y + z + w) we generate an expression
        -:        -:   30: * tree like
        -:        -:   31: *
        -:        -:   32: *        +
        -:        -:   33: *       / \
        -:        -:   34: *      +   w
        -:        -:   35: *     / \
        -:        -:   36: *    +   z
        -:        -:   37: *   / \
        -:        -:   38: *  x   y
        -:        -:   39: *
        -:        -:   40: * which we can rebalance into
        -:        -:   41: *
        -:        -:   42: *       +
        -:        -:   43: *      / \
        -:        -:   44: *     /   \
        -:        -:   45: *    +     +
        -:        -:   46: *   / \   / \
        -:        -:   47: *  x   y z   w
        -:        -:   48: *
        -:        -:   49: * to get a better instruction scheduling.
        -:        -:   50: *
        -:        -:   51: * See "Tree Rebalancing in Optimal Editor Time and Space" by Quentin F. Stout
        -:        -:   52: * and Bette L. Warren.
        -:        -:   53: *
        -:        -:   54: * Also see http://penguin.ewu.edu/~trolfe/DSWpaper/ for a very readable
        -:        -:   55: * explanation of the of the tree_to_vine() (rightward rotation) and
        -:        -:   56: * vine_to_tree() (leftward rotation) algorithms.
        -:        -:   57: */
        -:        -:   58:
        -:        -:   59:#include "ir.h"
        -:        -:   60:#include "ir_visitor.h"
        -:        -:   61:#include "ir_rvalue_visitor.h"
        -:        -:   62:#include "ir_optimization.h"
        -:        -:   63:#include "main/macros.h" /* for MAX2 */
        -:        -:   64:
        -:        -:   65:/* The DSW algorithm generates a degenerate tree (really, a linked list) in
        -:        -:   66: * tree_to_vine(). We'd rather not leave a binary expression with only one
        -:        -:   67: * operand, so trivial modifications (the ternary operators below) are needed
        -:        -:   68: * to ensure that we only rotate around the ir_expression nodes of the tree.
        -:        -:   69: */
        -:        -:   70:static unsigned
    #####:    #####:   71:tree_to_vine(ir_expression *root)
        -:        -:   72:{
    #####:    #####:   73:   unsigned size = 0;
    #####:    #####:   74:   ir_rvalue *vine_tail = root;
    #####:    #####:   75:   ir_rvalue *remainder = root->operands[1];
        -:        -:   76:
    #####:    #####:   77:   while (remainder != NULL) {
    #####:    #####:   78:      ir_expression *remainder_temp = remainder->as_expression();
        -:        -:   79:      ir_expression *remainder_left = remainder_temp ?
    #####:    #####:   80:         remainder_temp->operands[0]->as_expression() : NULL;
        -:        -:   81:
    #####:    #####:   82:      if (remainder_left == NULL) {
        -:        -:   83:         /* move vine_tail down one */
    #####:    #####:   84:         vine_tail = remainder;
    #####:    #####:   85:         remainder = remainder->as_expression() ?
    #####:    #####:   86:            ((ir_expression *)remainder)->operands[1] : NULL;
    #####:    #####:   87:         size++;
        -:        -:   88:      } else {
        -:        -:   89:         /* rotate */
    #####:    #####:   90:         ir_expression *tempptr = remainder_left;
    #####:    #####:   91:         ((ir_expression *)remainder)->operands[0] = tempptr->operands[1];
    #####:    #####:   92:         tempptr->operands[1] = remainder;
    #####:    #####:   93:         remainder = tempptr;
    #####:    #####:   94:         ((ir_expression *)vine_tail)->operands[1] = tempptr;
        -:        -:   95:      }
        -:        -:   96:   }
        -:        -:   97:
    #####:    #####:   98:   return size;
        -:        -:   99:}
        -:        -:  100:
        -:        -:  101:static void
    #####:    #####:  102:compression(ir_expression *root, unsigned count)
        -:        -:  103:{
    #####:    #####:  104:   ir_expression *scanner = root;
        -:        -:  105:
    #####:    #####:  106:   for (unsigned i = 0; i < count; i++) {
    #####:    #####:  107:      ir_expression *child = (ir_expression *)scanner->operands[1];
    #####:    #####:  108:      scanner->operands[1] = child->operands[1];
    #####:    #####:  109:      scanner = (ir_expression *)scanner->operands[1];
    #####:    #####:  110:      child->operands[1] = scanner->operands[0];
    #####:    #####:  111:      scanner->operands[0] = child;
        -:        -:  112:   }
    #####:    #####:  113:}
        -:        -:  114:
        -:        -:  115:static void
    #####:    #####:  116:vine_to_tree(ir_expression *root, unsigned size)
        -:        -:  117:{
    #####:    #####:  118:   int n = size - 1;
    #####:    #####:  119:   for (int m = n / 2; m > 0; m = n / 2) {
    #####:    #####:  120:      compression(root, m);
    #####:    #####:  121:      n -= m + 1;
        -:        -:  122:   }
    #####:    #####:  123:}
        -:        -:  124:
        -:        -:  125:namespace {
        -:        -:  126:
        -:        -:  127:class ir_rebalance_visitor : public ir_rvalue_enter_visitor {
        -:        -:  128:public:
       18:       18:  129:   ir_rebalance_visitor()
       18:       18:  130:   {
       18:       18:  131:      progress = false;
       18:       18:  132:   }
        -:        -:  133:
        -:        -:  134:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:  135:
        -:        -:  136:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  137:
        -:        -:  138:   bool progress;
        -:        -:  139:};
        -:        -:  140:
        -:        -:  141:struct is_reduction_data {
        -:        -:  142:   ir_expression_operation operation;
        -:        -:  143:   const glsl_type *type;
        -:        -:  144:   unsigned num_expr;
        -:        -:  145:   bool is_reduction;
        -:        -:  146:   bool contains_constant;
        -:        -:  147:};
        -:        -:  148:
        -:        -:  149:} /* anonymous namespace */
        -:        -:  150:
        -:        -:  151:ir_visitor_status
      407:      407:  152:ir_rebalance_visitor::visit_enter(ir_assignment *ir)
        -:        -:  153:{
      407:      407:  154:   ir_variable *var = ir->lhs->variable_referenced();
      407:      407:  155:   if (var->data.invariant || var->data.precise) {
        -:        -:  156:      /* If we're assigning to an invariant variable, just bail.  Tree
        -:        -:  157:       * rebalancing (reassociation) isn't precision-safe.
        -:        -:  158:       */
    #####:    #####:  159:      return visit_continue_with_parent;
        -:        -:  160:   } else {
      407:      407:  161:      return visit_continue;
        -:        -:  162:   }
        -:        -:  163:}
        -:        -:  164:
        -:        -:  165:static bool
      130:      146:  166:is_reduction_operation(ir_expression_operation operation)
        -:        -:  167:{
      130:      146:  168:   switch (operation) {
        -:        -:  169:   case ir_binop_add:
        -:        -:  170:   case ir_binop_mul:
        -:        -:  171:   case ir_binop_bit_and:
        -:        -:  172:   case ir_binop_bit_xor:
        -:        -:  173:   case ir_binop_bit_or:
        -:        -:  174:   case ir_binop_logic_and:
        -:        -:  175:   case ir_binop_logic_xor:
        -:        -:  176:   case ir_binop_logic_or:
        -:        -:  177:   case ir_binop_min:
        -:        -:  178:   case ir_binop_max:
        8:        8:  179:      return true;
        -:        -:  180:   default:
      122:      138:  181:      return false;
        -:        -:  182:   }
        -:        -:  183:}
        -:        -:  184:
        -:        -:  185:/* Note that this function does not attempt to recognize that reduction trees
        -:        -:  186: * are already balanced.
        -:        -:  187: *
        -:        -:  188: * We return false from this function for a number of reasons other than an
        -:        -:  189: * expression tree not being a mathematical reduction. Namely,
        -:        -:  190: *
        -:        -:  191: *    - if the tree contains multiple constants that we may be able to combine.
        -:        -:  192: *    - if the tree contains matrices:
        -:        -:  193: *       - they might contain vec4's with many constant components that we can
        -:        -:  194: *         simplify after splitting.
        -:        -:  195: *       - applying the matrix chain ordering optimization is more than just
        -:        -:  196: *         balancing an expression tree.
        -:        -:  197: *    - if the tree contains operations on multiple types.
        -:        -:  198: *    - if the tree contains ir_dereference_{array,record}, since foo[a+b] + c
        -:        -:  199: *      would trick the visiting pass.
        -:        -:  200: */
        -:        -:  201:static void
       26:       26:  202:is_reduction(ir_instruction *ir, void *data)
        -:        -:  203:{
       26:       26:  204:   struct is_reduction_data *ird = (struct is_reduction_data *)data;
       26:       26:  205:   if (!ird->is_reduction)
        9:        9:  206:      return;
        -:        -:  207:
        -:        -:  208:   /* We don't want to balance a tree that contains multiple constants, since
        -:        -:  209:    * we'll be able to constant fold them if they're not in separate subtrees.
        -:        -:  210:    */
       17:       17:  211:   if (ir->as_constant()) {
    #####:    #####:  212:      if (ird->contains_constant) {
    #####:    #####:  213:         ird->is_reduction = false;
        -:        -:  214:      }
    #####:    #####:  215:      ird->contains_constant = true;
    #####:    #####:  216:      return;
        -:        -:  217:   }
        -:        -:  218:
        -:        -:  219:   /* Array/record dereferences have subtrees that are not part of the expr
        -:        -:  220:    * tree we're balancing. Skip trees containing them.
        -:        -:  221:    */
       34:       34:  222:   if (ir->ir_type == ir_type_dereference_array ||
       17:       17:  223:       ir->ir_type == ir_type_dereference_record) {
    #####:    #####:  224:      ird->is_reduction = false;
    #####:    #####:  225:      return;
        -:        -:  226:   }
        -:        -:  227:
       17:       17:  228:   ir_expression *expr = ir->as_expression();
       17:       17:  229:   if (!expr)
       10:       10:  230:      return;
        -:        -:  231:
        -:        -:  232:   /* Non-constant matrices might still contain constant vec4 that we can
        -:        -:  233:    * constant fold once split up. Handling matrices will need some more
        -:        -:  234:    * work.
        -:        -:  235:    */
       21:       21:  236:   if (expr->type->is_matrix() ||
       14:       14:  237:       expr->operands[0]->type->is_matrix() ||
       11:       11:  238:       (expr->operands[1] && expr->operands[1]->type->is_matrix())) {
    #####:    #####:  239:      ird->is_reduction = false;
    #####:    #####:  240:      return;
        -:        -:  241:   }
        -:        -:  242:
        7:        7:  243:   if (ird->type != NULL && ird->type != expr->type) {
    #####:    #####:  244:      ird->is_reduction = false;
    #####:    #####:  245:      return;
        -:        -:  246:   }
        7:        7:  247:   ird->type = expr->type;
        -:        -:  248:
        7:        7:  249:   ird->num_expr++;
        7:        7:  250:   if (is_reduction_operation(expr->operation)) {
        4:        4:  251:      if (ird->operation != 0 && ird->operation != expr->operation)
    #####:    #####:  252:         ird->is_reduction = false;
        4:        4:  253:      ird->operation = expr->operation;
        -:        -:  254:   } else {
        3:        3:  255:      ird->is_reduction = false;
        -:        -:  256:   }
        -:        -:  257:}
        -:        -:  258:
        -:        -:  259:static ir_rvalue *
        4:        4:  260:handle_expression(ir_expression *expr)
        -:        -:  261:{
        -:        -:  262:   struct is_reduction_data ird;
        4:        4:  263:   ird.operation = (ir_expression_operation)0;
        4:        4:  264:   ird.type = NULL;
        4:        4:  265:   ird.num_expr = 0;
        4:        4:  266:   ird.is_reduction = true;
        4:        4:  267:   ird.contains_constant = false;
        -:        -:  268:
        4:        4:  269:   visit_tree(expr, is_reduction, (void *)&ird);
        -:        -:  270:
        4:        4:  271:   if (ird.is_reduction && ird.num_expr > 2) {
    #####:    #####:  272:      ir_constant z = ir_constant(0.0f);
    #####:    #####:  273:      ir_expression pseudo_root = ir_expression(ir_binop_add, &z, expr);
        -:        -:  274:
    #####:    #####:  275:      unsigned size = tree_to_vine(&pseudo_root);
    #####:    #####:  276:      vine_to_tree(&pseudo_root, size);
        -:        -:  277:
    #####:    #####:  278:      expr = (ir_expression *)pseudo_root.operands[1];
        -:        -:  279:   }
        4:        4:  280:   return expr;
        -:        -:  281:}
        -:        -:  282:
        -:        -:  283:static void
    #####:    #####:  284:update_types(ir_instruction *ir, void *)
        -:        -:  285:{
    #####:    #####:  286:   ir_expression *expr = ir->as_expression();
    #####:    #####:  287:   if (!expr)
    #####:    #####:  288:      return;
        -:        -:  289:
        -:        -:  290:   const glsl_type *const new_type =
    #####:    #####:  291:      glsl_type::get_instance(expr->type->base_type,
    #####:    #####:  292:                              MAX2(expr->operands[0]->type->vector_elements,
        -:        -:  293:                                   expr->operands[1]->type->vector_elements),
    #####:    #####:  294:                              1);
    #####:    #####:  295:   assert(new_type != glsl_type::error_type);
    #####:    #####:  296:   expr->type = new_type;
        -:        -:  297:}
        -:        -:  298:
        -:        -:  299:void
      976:     1053:  300:ir_rebalance_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  301:{
      976:     1053:  302:   if (!*rvalue)
    #####:    #####:  303:      return;
        -:        -:  304:
      976:     1053:  305:   ir_expression *expr = (*rvalue)->as_expression();
      976:     1053:  306:   if (!expr || !is_reduction_operation(expr->operation))
      972:     1049:  307:      return;
        -:        -:  308:
        4:        4:  309:   ir_rvalue *new_rvalue = handle_expression(expr);
        -:        -:  310:
        -:        -:  311:   /* If we failed to rebalance the tree (e.g., because it wasn't a reduction,
        -:        -:  312:    * or some other set of cases) new_rvalue will point to the same root as
        -:        -:  313:    * before.
        -:        -:  314:    *
        -:        -:  315:    * Similarly, if the tree rooted at *rvalue was a reduction and was already
        -:        -:  316:    * balanced, the algorithm will rearrange the tree but will ultimately
        -:        -:  317:    * return an identical tree, so this check will handle that as well and
        -:        -:  318:    * will not set progress = true.
        -:        -:  319:    */
        4:        4:  320:   if (new_rvalue == *rvalue)
        4:        4:  321:      return;
        -:        -:  322:
    #####:    #####:  323:   visit_tree(new_rvalue, NULL, NULL, update_types);
        -:        -:  324:
    #####:    #####:  325:   *rvalue = new_rvalue;
    #####:    #####:  326:   this->progress = true;
        -:        -:  327:}
        -:        -:  328:
        -:        -:  329:bool
       18:       18:  330:do_rebalance_tree(exec_list *instructions)
        -:        -:  331:{
       18:       18:  332:   ir_rebalance_visitor v;
        -:        -:  333:
       18:       18:  334:   v.run(instructions);
        -:        -:  335:
       18:       18:  336:   return v.progress;
        -:        -:  337:}

src/compiler/opt_redundant_jumps.cpp.gcov

        -:        -:    0:Source:glsl/opt_redundant_jumps.cpp
        -:        -:    0:Graph:glsl/.libs/opt_redundant_jumps.gcno
        -:        -:    0:Data:glsl/.libs/opt_redundant_jumps.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_redundant_jumps.cpp
        -:        -:   26: * Remove certain types of redundant jumps
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:#include "ir.h"
        -:        -:   30:
        -:        -:   31:namespace {
        -:        -:   32:
        -:        -:   33:class redundant_jumps_visitor : public ir_hierarchical_visitor {
        -:        -:   34:public:
       18:       18:   35:   redundant_jumps_visitor()
       18:       18:   36:   {
       18:       18:   37:      this->progress = false;
       18:       18:   38:   }
        -:        -:   39:
        -:        -:   40:   virtual ir_visitor_status visit_leave(ir_if *);
        -:        -:   41:   virtual ir_visitor_status visit_leave(ir_loop *);
        -:        -:   42:   virtual ir_visitor_status visit_enter(ir_assignment *);
        -:        -:   43:
        -:        -:   44:   bool progress;
        -:        -:   45:};
        -:        -:   46:
        -:        -:   47:} /* unnamed namespace */
        -:        -:   48:
        -:        -:   49:/* We only care about the top level instructions, so don't descend
        -:        -:   50: * into expressions.
        -:        -:   51: */
        -:        -:   52:ir_visitor_status
      417:      417:   53:redundant_jumps_visitor::visit_enter(ir_assignment *)
        -:        -:   54:{
      417:      417:   55:   return visit_continue_with_parent;
        -:        -:   56:}
        -:        -:   57:
        -:        -:   58:ir_visitor_status
       93:      125:   59:redundant_jumps_visitor::visit_leave(ir_if *ir)
        -:        -:   60:{
        -:        -:   61:   /* If the last instruction in both branches is a 'break' or a 'continue',
        -:        -:   62:    * pull it out of the branches and insert it after the if-statment.  Note
        -:        -:   63:    * that both must be the same type (either 'break' or 'continue').
        -:        -:   64:    */
        -:        -:   65:   ir_instruction *const last_then =
       93:      125:   66:      (ir_instruction *) ir->then_instructions.get_tail();
        -:        -:   67:   ir_instruction *const last_else =
       93:      125:   68:      (ir_instruction *) ir->else_instructions.get_tail();
        -:        -:   69:
       93:      125:   70:   if ((last_then == NULL) || (last_else == NULL))
       78:      110:   71:      return visit_continue;
        -:        -:   72:
       15:       15:   73:   if ((last_then->ir_type != ir_type_loop_jump)
    #####:    #####:   74:       || (last_else->ir_type != ir_type_loop_jump))
       15:       15:   75:      return visit_continue;
        -:        -:   76:
    #####:    #####:   77:   ir_loop_jump *const then_jump = (ir_loop_jump *) last_then;
    #####:    #####:   78:   ir_loop_jump *const else_jump = (ir_loop_jump *) last_else;
        -:        -:   79:
    #####:    #####:   80:   if (then_jump->mode != else_jump->mode)
    #####:    #####:   81:      return visit_continue;
        -:        -:   82:
    #####:    #####:   83:   then_jump->remove();
    #####:    #####:   84:   else_jump->remove();
    #####:    #####:   85:   this->progress = true;
        -:        -:   86:
    #####:    #####:   87:   ir->insert_after(then_jump);
        -:        -:   88:
        -:        -:   89:   /* If both branchs of the if-statement are now empty, remove the
        -:        -:   90:    * if-statement.
        -:        -:   91:    */
    #####:    #####:   92:   if (ir->then_instructions.is_empty() && ir->else_instructions.is_empty())
    #####:    #####:   93:      ir->remove();
        -:        -:   94:
    #####:    #####:   95:   return visit_continue;
        -:        -:   96:}
        -:        -:   97:
        -:        -:   98:
        -:        -:   99:ir_visitor_status
       24:       39:  100:redundant_jumps_visitor::visit_leave(ir_loop *ir)
        -:        -:  101:{
        -:        -:  102:   /* If the last instruction of a loop body is a 'continue', remove it.
        -:        -:  103:    */
        -:        -:  104:   ir_instruction *const last =
       24:       39:  105:      (ir_instruction *) ir->body_instructions.get_tail();
        -:        -:  106:
       24:       39:  107:   if (last && (last->ir_type == ir_type_loop_jump)
    #####:    #####:  108:       && (((ir_loop_jump *) last)->mode == ir_loop_jump::jump_continue)) {
    #####:    #####:  109:      last->remove();
    #####:    #####:  110:      this->progress = true;
        -:        -:  111:   }
        -:        -:  112:
       24:       39:  113:   return visit_continue;
        -:        -:  114:}
        -:        -:  115:
        -:        -:  116:
        -:        -:  117:bool
       18:       18:  118:optimize_redundant_jumps(exec_list *instructions)
        -:        -:  119:{
       18:       18:  120:   redundant_jumps_visitor v;
        -:        -:  121:
       18:       18:  122:   v.run(instructions);
       18:       18:  123:   return v.progress;
        -:        -:  124:}

src/compiler/opt_structure_splitting.cpp.gcov

        -:        -:    0:Source:glsl/opt_structure_splitting.cpp
        -:        -:    0:Graph:glsl/.libs/opt_structure_splitting.gcno
        -:        -:    0:Data:glsl/.libs/opt_structure_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_structure_splitting.cpp
        -:        -:   26: *
        -:        -:   27: * If a structure is only ever referenced by its components, then
        -:        -:   28: * split those components out to individual variables so they can be
        -:        -:   29: * handled normally by other optimization passes.
        -:        -:   30: *
        -:        -:   31: * This skips structures like uniforms, which need to be accessible as
        -:        -:   32: * structures for their access by the GL.
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:#include "ir.h"
        -:        -:   36:#include "ir_visitor.h"
        -:        -:   37:#include "ir_rvalue_visitor.h"
        -:        -:   38:#include "compiler/glsl_types.h"
        -:        -:   39:
        -:        -:   40:namespace {
        -:        -:   41:
        -:        -:   42:static bool debug = false;
        -:        -:   43:
        -:        -:   44:class variable_entry : public exec_node
        -:        -:   45:{
        -:        -:   46:public:
    #####:    #####:   47:   variable_entry(ir_variable *var)
    #####:    #####:   48:   {
    #####:    #####:   49:      this->var = var;
    #####:    #####:   50:      this->whole_structure_access = 0;
    #####:    #####:   51:      this->declaration = false;
    #####:    #####:   52:      this->components = NULL;
    #####:    #####:   53:      this->mem_ctx = NULL;
    #####:    #####:   54:   }
        -:        -:   55:
        -:        -:   56:   ir_variable *var; /* The key: the variable's pointer. */
        -:        -:   57:
        -:        -:   58:   /** Number of times the variable is referenced, including assignments. */
        -:        -:   59:   unsigned whole_structure_access;
        -:        -:   60:
        -:        -:   61:   /* If the variable had a decl we can work with in the instruction
        -:        -:   62:    * stream.  We can't do splitting on function arguments, which
        -:        -:   63:    * don't get this variable set.
        -:        -:   64:    */
        -:        -:   65:   bool declaration;
        -:        -:   66:
        -:        -:   67:   ir_variable **components;
        -:        -:   68:
        -:        -:   69:   /** ralloc_parent(this->var) -- the shader's ralloc context. */
        -:        -:   70:   void *mem_ctx;
        -:        -:   71:};
        -:        -:   72:
        -:        -:   73:
        -:        -:   74:class ir_structure_reference_visitor : public ir_hierarchical_visitor {
        -:        -:   75:public:
       12:       12:   76:   ir_structure_reference_visitor(void)
       12:       12:   77:   {
       12:       12:   78:      this->mem_ctx = ralloc_context(NULL);
       12:       12:   79:      this->variable_list.make_empty();
       12:       12:   80:   }
        -:        -:   81:
       12:       12:   82:   ~ir_structure_reference_visitor(void)
       24:       24:   83:   {
       12:       12:   84:      ralloc_free(mem_ctx);
       12:       12:   85:   }
        -:        -:   86:
        -:        -:   87:   virtual ir_visitor_status visit(ir_variable *);
        -:        -:   88:   virtual ir_visitor_status visit(ir_dereference_variable *);
        -:        -:   89:   virtual ir_visitor_status visit_enter(ir_dereference_record *);
        -:        -:   90:   virtual ir_visitor_status visit_enter(ir_assignment *);
        -:        -:   91:   virtual ir_visitor_status visit_enter(ir_function_signature *);
        -:        -:   92:
        -:        -:   93:   variable_entry *get_variable_entry(ir_variable *var);
        -:        -:   94:
        -:        -:   95:   /* List of variable_entry */
        -:        -:   96:   exec_list variable_list;
        -:        -:   97:
        -:        -:   98:   void *mem_ctx;
        -:        -:   99:};
        -:        -:  100:
        -:        -:  101:variable_entry *
      446:      474:  102:ir_structure_reference_visitor::get_variable_entry(ir_variable *var)
        -:        -:  103:{
      446:      474:  104:   assert(var);
        -:        -:  105:
      900:      956:  106:   if (!var->type->is_record() ||
        8:        8:  107:       var->data.mode == ir_var_uniform || var->data.mode == ir_var_shader_storage ||
      446:      474:  108:       var->data.mode == ir_var_shader_in || var->data.mode == ir_var_shader_out)
      446:      474:  109:      return NULL;
        -:        -:  110:
    #####:    #####:  111:   foreach_in_list(variable_entry, entry, &this->variable_list) {
    #####:    #####:  112:      if (entry->var == var)
    #####:    #####:  113:	 return entry;
        -:        -:  114:   }
        -:        -:  115:
    #####:    #####:  116:   variable_entry *entry = new(mem_ctx) variable_entry(var);
    #####:    #####:  117:   this->variable_list.push_tail(entry);
    #####:    #####:  118:   return entry;
        -:        -:  119:}
        -:        -:  120:
        -:        -:  121:
        -:        -:  122:ir_visitor_status
      335:      335:  123:ir_structure_reference_visitor::visit(ir_variable *ir)
        -:        -:  124:{
      335:      335:  125:   variable_entry *entry = this->get_variable_entry(ir);
        -:        -:  126:
      335:      335:  127:   if (entry)
    #####:    #####:  128:      entry->declaration = true;
        -:        -:  129:
      335:      335:  130:   return visit_continue;
        -:        -:  131:}
        -:        -:  132:
        -:        -:  133:ir_visitor_status
      111:      139:  134:ir_structure_reference_visitor::visit(ir_dereference_variable *ir)
        -:        -:  135:{
      111:      139:  136:   ir_variable *const var = ir->variable_referenced();
      111:      139:  137:   variable_entry *entry = this->get_variable_entry(var);
        -:        -:  138:
      111:      139:  139:   if (entry)
    #####:    #####:  140:      entry->whole_structure_access++;
        -:        -:  141:
      111:      139:  142:   return visit_continue;
        -:        -:  143:}
        -:        -:  144:
        -:        -:  145:ir_visitor_status
    #####:    #####:  146:ir_structure_reference_visitor::visit_enter(ir_dereference_record *ir)
        -:        -:  147:{
        -:        -:  148:   (void) ir;
        -:        -:  149:   /* Don't descend into the ir_dereference_variable below. */
    #####:    #####:  150:   return visit_continue_with_parent;
        -:        -:  151:}
        -:        -:  152:
        -:        -:  153:ir_visitor_status
      383:      383:  154:ir_structure_reference_visitor::visit_enter(ir_assignment *ir)
        -:        -:  155:{
        -:        -:  156:   /* If there are no structure references yet, no need to bother with
        -:        -:  157:    * processing the expression tree.
        -:        -:  158:    */
      383:      383:  159:   if (this->variable_list.is_empty())
      383:      383:  160:      return visit_continue_with_parent;
        -:        -:  161:
    #####:    #####:  162:   if (ir->lhs->as_dereference_variable() &&
    #####:    #####:  163:       ir->rhs->as_dereference_variable() &&
    #####:    #####:  164:       !ir->condition) {
        -:        -:  165:      /* We'll split copies of a structure to copies of components, so don't
        -:        -:  166:       * descend to the ir_dereference_variables.
        -:        -:  167:       */
    #####:    #####:  168:      return visit_continue_with_parent;
        -:        -:  169:   }
    #####:    #####:  170:   return visit_continue;
        -:        -:  171:}
        -:        -:  172:
        -:        -:  173:ir_visitor_status
       12:       12:  174:ir_structure_reference_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  175:{
        -:        -:  176:   /* We don't have logic for structure-splitting function arguments,
        -:        -:  177:    * so just look at the body instructions and not the parameter
        -:        -:  178:    * declarations.
        -:        -:  179:    */
       12:       12:  180:   visit_list_elements(this, &ir->body);
       12:       12:  181:   return visit_continue_with_parent;
        -:        -:  182:}
        -:        -:  183:
        -:        -:  184:class ir_structure_splitting_visitor : public ir_rvalue_visitor {
        -:        -:  185:public:
    #####:    #####:  186:   ir_structure_splitting_visitor(exec_list *vars)
    #####:    #####:  187:   {
    #####:    #####:  188:      this->variable_list = vars;
    #####:    #####:  189:   }
        -:        -:  190:
    #####:    #####:  191:   virtual ~ir_structure_splitting_visitor()
    #####:    #####:  192:   {
    #####:    #####:  193:   }
        -:        -:  194:
        -:        -:  195:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:  196:
        -:        -:  197:   void split_deref(ir_dereference **deref);
        -:        -:  198:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  199:   variable_entry *get_splitting_entry(ir_variable *var);
        -:        -:  200:
        -:        -:  201:   exec_list *variable_list;
        -:        -:  202:};
        -:        -:  203:
        -:        -:  204:variable_entry *
    #####:    #####:  205:ir_structure_splitting_visitor::get_splitting_entry(ir_variable *var)
        -:        -:  206:{
    #####:    #####:  207:   assert(var);
        -:        -:  208:
    #####:    #####:  209:   if (!var->type->is_record())
    #####:    #####:  210:      return NULL;
        -:        -:  211:
    #####:    #####:  212:   foreach_in_list(variable_entry, entry, this->variable_list) {
    #####:    #####:  213:      if (entry->var == var) {
    #####:    #####:  214:	 return entry;
        -:        -:  215:      }
        -:        -:  216:   }
        -:        -:  217:
    #####:    #####:  218:   return NULL;
        -:        -:  219:}
        -:        -:  220:
        -:        -:  221:void
    #####:    #####:  222:ir_structure_splitting_visitor::split_deref(ir_dereference **deref)
        -:        -:  223:{
    #####:    #####:  224:   if ((*deref)->ir_type != ir_type_dereference_record)
    #####:    #####:  225:      return;
        -:        -:  226:
    #####:    #####:  227:   ir_dereference_record *deref_record = (ir_dereference_record *)*deref;
    #####:    #####:  228:   ir_dereference_variable *deref_var = deref_record->record->as_dereference_variable();
    #####:    #####:  229:   if (!deref_var)
    #####:    #####:  230:      return;
        -:        -:  231:
    #####:    #####:  232:   variable_entry *entry = get_splitting_entry(deref_var->var);
    #####:    #####:  233:   if (!entry)
    #####:    #####:  234:      return;
        -:        -:  235:
        -:        -:  236:   unsigned int i;
    #####:    #####:  237:   for (i = 0; i < entry->var->type->length; i++) {
    #####:    #####:  238:      if (strcmp(deref_record->field,
    #####:    #####:  239:		 entry->var->type->fields.structure[i].name) == 0)
    #####:    #####:  240:	 break;
        -:        -:  241:   }
    #####:    #####:  242:   assert(i != entry->var->type->length);
        -:        -:  243:
    #####:    #####:  244:   *deref = new(entry->mem_ctx) ir_dereference_variable(entry->components[i]);
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:void
    #####:    #####:  248:ir_structure_splitting_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  249:{
    #####:    #####:  250:   if (!*rvalue)
    #####:    #####:  251:      return;
        -:        -:  252:
    #####:    #####:  253:   ir_dereference *deref = (*rvalue)->as_dereference();
        -:        -:  254:
    #####:    #####:  255:   if (!deref)
    #####:    #####:  256:      return;
        -:        -:  257:
    #####:    #####:  258:   split_deref(&deref);
    #####:    #####:  259:   *rvalue = deref;
        -:        -:  260:}
        -:        -:  261:
        -:        -:  262:ir_visitor_status
    #####:    #####:  263:ir_structure_splitting_visitor::visit_leave(ir_assignment *ir)
        -:        -:  264:{
    #####:    #####:  265:   ir_dereference_variable *lhs_deref = ir->lhs->as_dereference_variable();
    #####:    #####:  266:   ir_dereference_variable *rhs_deref = ir->rhs->as_dereference_variable();
    #####:    #####:  267:   variable_entry *lhs_entry = lhs_deref ? get_splitting_entry(lhs_deref->var) : NULL;
    #####:    #####:  268:   variable_entry *rhs_entry = rhs_deref ? get_splitting_entry(rhs_deref->var) : NULL;
    #####:    #####:  269:   const glsl_type *type = ir->rhs->type;
        -:        -:  270:
    #####:    #####:  271:   if ((lhs_entry || rhs_entry) && !ir->condition) {
    #####:    #####:  272:      for (unsigned int i = 0; i < type->length; i++) {
        -:        -:  273:	 ir_dereference *new_lhs, *new_rhs;
    #####:    #####:  274:	 void *mem_ctx = lhs_entry ? lhs_entry->mem_ctx : rhs_entry->mem_ctx;
        -:        -:  275:
    #####:    #####:  276:	 if (lhs_entry) {
    #####:    #####:  277:	    new_lhs = new(mem_ctx) ir_dereference_variable(lhs_entry->components[i]);
        -:        -:  278:	 } else {
        -:        -:  279:	    new_lhs = new(mem_ctx)
    #####:    #####:  280:	       ir_dereference_record(ir->lhs->clone(mem_ctx, NULL),
    #####:    #####:  281:				     type->fields.structure[i].name);
        -:        -:  282:	 }
        -:        -:  283:
    #####:    #####:  284:	 if (rhs_entry) {
    #####:    #####:  285:	    new_rhs = new(mem_ctx) ir_dereference_variable(rhs_entry->components[i]);
        -:        -:  286:	 } else {
        -:        -:  287:	    new_rhs = new(mem_ctx)
    #####:    #####:  288:	       ir_dereference_record(ir->rhs->clone(mem_ctx, NULL),
    #####:    #####:  289:				     type->fields.structure[i].name);
        -:        -:  290:	 }
        -:        -:  291:
    #####:    #####:  292:	 ir->insert_before(new(mem_ctx) ir_assignment(new_lhs,
        -:        -:  293:						      new_rhs,
    #####:    #####:  294:						      NULL));
        -:        -:  295:      }
    #####:    #####:  296:      ir->remove();
        -:        -:  297:   } else {
    #####:    #####:  298:      handle_rvalue(&ir->rhs);
    #####:    #####:  299:      split_deref(&ir->lhs);
        -:        -:  300:   }
        -:        -:  301:
    #####:    #####:  302:   handle_rvalue(&ir->condition);
        -:        -:  303:
    #####:    #####:  304:   return visit_continue;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:} /* unnamed namespace */
        -:        -:  308:
        -:        -:  309:bool
       12:       12:  310:do_structure_splitting(exec_list *instructions)
        -:        -:  311:{
       24:       24:  312:   ir_structure_reference_visitor refs;
        -:        -:  313:
       12:       12:  314:   visit_list_elements(&refs, instructions);
        -:        -:  315:
        -:        -:  316:   /* Trim out variables we can't split. */
       12:       12:  317:   foreach_in_list_safe(variable_entry, entry, &refs.variable_list) {
    #####:    #####:  318:      if (debug) {
    #####:    #####:  319:	 printf("structure %s@%p: decl %d, whole_access %d\n",
    #####:    #####:  320:		entry->var->name, (void *) entry->var, entry->declaration,
    #####:    #####:  321:		entry->whole_structure_access);
        -:        -:  322:      }
        -:        -:  323:
    #####:    #####:  324:      if (!entry->declaration || entry->whole_structure_access) {
    #####:    #####:  325:	 entry->remove();
        -:        -:  326:      }
        -:        -:  327:   }
        -:        -:  328:
       12:       12:  329:   if (refs.variable_list.is_empty())
       12:       12:  330:      return false;
        -:        -:  331:
    #####:    #####:  332:   void *mem_ctx = ralloc_context(NULL);
        -:        -:  333:
        -:        -:  334:   /* Replace the decls of the structures to be split with their split
        -:        -:  335:    * components.
        -:        -:  336:    */
    #####:    #####:  337:   foreach_in_list_safe(variable_entry, entry, &refs.variable_list) {
    #####:    #####:  338:      const struct glsl_type *type = entry->var->type;
        -:        -:  339:
    #####:    #####:  340:      entry->mem_ctx = ralloc_parent(entry->var);
        -:        -:  341:
    #####:    #####:  342:      entry->components = ralloc_array(mem_ctx,
        -:        -:  343:				       ir_variable *,
    #####:    #####:  344:				       type->length);
        -:        -:  345:
    #####:    #####:  346:      for (unsigned int i = 0; i < entry->var->type->length; i++) {
    #####:    #####:  347:	 const char *name = ralloc_asprintf(mem_ctx, "%s_%s",
    #####:    #####:  348:					    entry->var->name,
    #####:    #####:  349:					    type->fields.structure[i].name);
        -:        -:  350:
    #####:    #####:  351:	 entry->components[i] =
    #####:    #####:  352:	    new(entry->mem_ctx) ir_variable(type->fields.structure[i].type,
        -:        -:  353:					    name,
    #####:    #####:  354:					    (ir_variable_mode) entry->var->data.mode);
    #####:    #####:  355:	 entry->var->insert_before(entry->components[i]);
        -:        -:  356:      }
        -:        -:  357:
    #####:    #####:  358:      entry->var->remove();
        -:        -:  359:   }
        -:        -:  360:
    #####:    #####:  361:   ir_structure_splitting_visitor split(&refs.variable_list);
    #####:    #####:  362:   visit_list_elements(&split, instructions);
        -:        -:  363:
    #####:    #####:  364:   ralloc_free(mem_ctx);
        -:        -:  365:
    #####:    #####:  366:   return true;
        -:        -:  367:}

src/compiler/opt_swizzle_swizzle.cpp.gcov

        -:        -:    0:Source:glsl/opt_swizzle_swizzle.cpp
        -:        -:    0:Graph:glsl/.libs/opt_swizzle_swizzle.gcno
        -:        -:    0:Data:glsl/.libs/opt_swizzle_swizzle.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_swizzle_swizzle.cpp
        -:        -:   26: *
        -:        -:   27: * Eliminates the second swizzle in a swizzle chain.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "ir.h"
        -:        -:   31:#include "ir_visitor.h"
        -:        -:   32:#include "ir_optimization.h"
        -:        -:   33:#include "compiler/glsl_types.h"
        -:        -:   34:
        -:        -:   35:namespace {
        -:        -:   36:
        -:        -:   37:class ir_swizzle_swizzle_visitor : public ir_hierarchical_visitor {
        -:        -:   38:public:
       18:       18:   39:   ir_swizzle_swizzle_visitor()
       18:       18:   40:   {
       18:       18:   41:      progress = false;
       18:       18:   42:   }
        -:        -:   43:
        -:        -:   44:   virtual ir_visitor_status visit_enter(ir_swizzle *);
        -:        -:   45:
        -:        -:   46:   bool progress;
        -:        -:   47:};
        -:        -:   48:
        -:        -:   49:} /* unnamed namespace */
        -:        -:   50:
        -:        -:   51:ir_visitor_status
       80:       95:   52:ir_swizzle_swizzle_visitor::visit_enter(ir_swizzle *ir)
        -:        -:   53:{
        -:        -:   54:   int mask2[4];
        -:        -:   55:
       80:       95:   56:   ir_swizzle *swiz2 = ir->val->as_swizzle();
       80:       95:   57:   if (!swiz2)
       74:       89:   58:      return visit_continue;
        -:        -:   59:
        6:        6:   60:   memset(&mask2, 0, sizeof(mask2));
        6:        6:   61:   if (swiz2->mask.num_components >= 1)
        6:        6:   62:      mask2[0] = swiz2->mask.x;
        6:        6:   63:   if (swiz2->mask.num_components >= 2)
        6:        6:   64:      mask2[1] = swiz2->mask.y;
        6:        6:   65:   if (swiz2->mask.num_components >= 3)
        6:        6:   66:      mask2[2] = swiz2->mask.z;
        6:        6:   67:   if (swiz2->mask.num_components >= 4)
        6:        6:   68:      mask2[3] = swiz2->mask.w;
        -:        -:   69:
        6:        6:   70:   if (ir->mask.num_components >= 1)
        6:        6:   71:      ir->mask.x = mask2[ir->mask.x];
        6:        6:   72:   if (ir->mask.num_components >= 2)
    #####:    #####:   73:      ir->mask.y = mask2[ir->mask.y];
        6:        6:   74:   if (ir->mask.num_components >= 3)
    #####:    #####:   75:      ir->mask.z = mask2[ir->mask.z];
        6:        6:   76:   if (ir->mask.num_components >= 4)
    #####:    #####:   77:      ir->mask.w = mask2[ir->mask.w];
        -:        -:   78:
        6:        6:   79:   ir->val = swiz2->val;
        -:        -:   80:
        6:        6:   81:   this->progress = true;
        -:        -:   82:
        6:        6:   83:   return visit_continue;
        -:        -:   84:}
        -:        -:   85:
        -:        -:   86:/**
        -:        -:   87: * Does a copy propagation pass on the code present in the instruction stream.
        -:        -:   88: */
        -:        -:   89:bool
       18:       18:   90:do_swizzle_swizzle(exec_list *instructions)
        -:        -:   91:{
       18:       18:   92:   ir_swizzle_swizzle_visitor v;
        -:        -:   93:
       18:       18:   94:   v.run(instructions);
        -:        -:   95:
       18:       18:   96:   return v.progress;
        -:        -:   97:}

src/compiler/opt_tree_grafting.cpp.gcov

        -:        -:    0:Source:glsl/opt_tree_grafting.cpp
        -:        -:    0:Graph:glsl/.libs/opt_tree_grafting.gcno
        -:        -:    0:Data:glsl/.libs/opt_tree_grafting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file opt_tree_grafting.cpp
        -:        -:   26: *
        -:        -:   27: * Takes assignments to variables that are dereferenced only once and
        -:        -:   28: * pastes the RHS expression into where the variable is dereferenced.
        -:        -:   29: *
        -:        -:   30: * In the process of various operations like function inlining and
        -:        -:   31: * tertiary op handling, we'll end up with our expression trees having
        -:        -:   32: * been chopped up into a series of assignments of short expressions
        -:        -:   33: * to temps.  Other passes like ir_algebraic.cpp would prefer to see
        -:        -:   34: * the deepest expression trees they can to try to optimize them.
        -:        -:   35: *
        -:        -:   36: * This is a lot like copy propagaton.  In comparison, copy
        -:        -:   37: * propagation only acts on plain copies, not arbitrary expressions on
        -:        -:   38: * the RHS.  Generally, we wouldn't want to go pasting some
        -:        -:   39: * complicated expression everywhere it got used, though, so we don't
        -:        -:   40: * handle expressions in that pass.
        -:        -:   41: *
        -:        -:   42: * The hard part is making sure we don't move an expression across
        -:        -:   43: * some other assignments that would change the value of the
        -:        -:   44: * expression.  So we split this into two passes: First, find the
        -:        -:   45: * variables in our scope which are written to once and read once, and
        -:        -:   46: * then go through basic blocks seeing if we find an opportunity to
        -:        -:   47: * move those expressions safely.
        -:        -:   48: */
        -:        -:   49:
        -:        -:   50:#include "ir.h"
        -:        -:   51:#include "ir_visitor.h"
        -:        -:   52:#include "ir_variable_refcount.h"
        -:        -:   53:#include "ir_basic_block.h"
        -:        -:   54:#include "ir_optimization.h"
        -:        -:   55:#include "compiler/glsl_types.h"
        -:        -:   56:
        -:        -:   57:namespace {
        -:        -:   58:
        -:        -:   59:static bool debug = false;
        -:        -:   60:
        -:        -:   61:class ir_tree_grafting_visitor : public ir_hierarchical_visitor {
        -:        -:   62:public:
       49:       49:   63:   ir_tree_grafting_visitor(ir_assignment *graft_assign,
        -:        -:   64:			    ir_variable *graft_var)
       49:       49:   65:   {
       49:       49:   66:      this->progress = false;
       49:       49:   67:      this->graft_assign = graft_assign;
       49:       49:   68:      this->graft_var = graft_var;
       49:       49:   69:   }
        -:        -:   70:
        -:        -:   71:   virtual ir_visitor_status visit_leave(class ir_assignment *);
        -:        -:   72:   virtual ir_visitor_status visit_enter(class ir_call *);
        -:        -:   73:   virtual ir_visitor_status visit_enter(class ir_expression *);
        -:        -:   74:   virtual ir_visitor_status visit_enter(class ir_function *);
        -:        -:   75:   virtual ir_visitor_status visit_enter(class ir_function_signature *);
        -:        -:   76:   virtual ir_visitor_status visit_enter(class ir_if *);
        -:        -:   77:   virtual ir_visitor_status visit_enter(class ir_loop *);
        -:        -:   78:   virtual ir_visitor_status visit_enter(class ir_swizzle *);
        -:        -:   79:   virtual ir_visitor_status visit_enter(class ir_texture *);
        -:        -:   80:
        -:        -:   81:   ir_visitor_status check_graft(ir_instruction *ir, ir_variable *var);
        -:        -:   82:
        -:        -:   83:   bool do_graft(ir_rvalue **rvalue);
        -:        -:   84:
        -:        -:   85:   bool progress;
        -:        -:   86:   ir_variable *graft_var;
        -:        -:   87:   ir_assignment *graft_assign;
        -:        -:   88:};
        -:        -:   89:
        -:        -:   90:struct find_deref_info {
        -:        -:   91:   ir_variable *var;
        -:        -:   92:   bool found;
        -:        -:   93:};
        -:        -:   94:
        -:        -:   95:void
      219:      219:   96:dereferences_variable_callback(ir_instruction *ir, void *data)
        -:        -:   97:{
      219:      219:   98:   struct find_deref_info *info = (struct find_deref_info *)data;
      219:      219:   99:   ir_dereference_variable *deref = ir->as_dereference_variable();
        -:        -:  100:
      219:      219:  101:   if (deref && deref->var == info->var)
    #####:    #####:  102:      info->found = true;
      219:      219:  103:}
        -:        -:  104:
        -:        -:  105:static bool
       51:       51:  106:dereferences_variable(ir_instruction *ir, ir_variable *var)
        -:        -:  107:{
        -:        -:  108:   struct find_deref_info info;
        -:        -:  109:
       51:       51:  110:   info.var = var;
       51:       51:  111:   info.found = false;
        -:        -:  112:
       51:       51:  113:   visit_tree(ir, dereferences_variable_callback, &info);
        -:        -:  114:
       51:       51:  115:   return info.found;
        -:        -:  116:}
        -:        -:  117:
        -:        -:  118:bool
      313:      313:  119:ir_tree_grafting_visitor::do_graft(ir_rvalue **rvalue)
        -:        -:  120:{
      313:      313:  121:   if (!*rvalue)
       30:       30:  122:      return false;
        -:        -:  123:
      283:      283:  124:   ir_dereference_variable *deref = (*rvalue)->as_dereference_variable();
        -:        -:  125:
      283:      283:  126:   if (!deref || deref->var != this->graft_var)
      252:      252:  127:      return false;
        -:        -:  128:
       31:       31:  129:   if (debug) {
    #####:    #####:  130:      fprintf(stderr, "GRAFTING:\n");
    #####:    #####:  131:      this->graft_assign->fprint(stderr);
    #####:    #####:  132:      fprintf(stderr, "\n");
    #####:    #####:  133:      fprintf(stderr, "TO:\n");
    #####:    #####:  134:      (*rvalue)->fprint(stderr);
    #####:    #####:  135:      fprintf(stderr, "\n");
        -:        -:  136:   }
        -:        -:  137:
       31:       31:  138:   this->graft_assign->remove();
       31:       31:  139:   *rvalue = this->graft_assign->rhs;
        -:        -:  140:
       31:       31:  141:   this->progress = true;
       31:       31:  142:   return true;
        -:        -:  143:}
        -:        -:  144:
        -:        -:  145:ir_visitor_status
    #####:    #####:  146:ir_tree_grafting_visitor::visit_enter(ir_loop *ir)
        -:        -:  147:{
        -:        -:  148:   (void)ir;
        -:        -:  149:   /* Do not traverse into the body of the loop since that is a
        -:        -:  150:    * different basic block.
        -:        -:  151:    */
    #####:    #####:  152:   return visit_stop;
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:/**
        -:        -:  156: * Check if we can continue grafting after writing to a variable.  If the
        -:        -:  157: * expression we're trying to graft references the variable, we must stop.
        -:        -:  158: *
        -:        -:  159: * \param ir   An instruction that writes to a variable.
        -:        -:  160: * \param var  The variable being updated.
        -:        -:  161: */
        -:        -:  162:ir_visitor_status
       51:       51:  163:ir_tree_grafting_visitor::check_graft(ir_instruction *ir, ir_variable *var)
        -:        -:  164:{
       51:       51:  165:   if (dereferences_variable(this->graft_assign->rhs, var)) {
    #####:    #####:  166:      if (debug) {
    #####:    #####:  167:	 fprintf(stderr, "graft killed by: ");
    #####:    #####:  168:	 ir->fprint(stderr);
    #####:    #####:  169:	 fprintf(stderr, "\n");
        -:        -:  170:      }
    #####:    #####:  171:      return visit_stop;
        -:        -:  172:   }
        -:        -:  173:
       51:       51:  174:   return visit_continue;
        -:        -:  175:}
        -:        -:  176:
        -:        -:  177:ir_visitor_status
       67:       67:  178:ir_tree_grafting_visitor::visit_leave(ir_assignment *ir)
        -:        -:  179:{
      127:      127:  180:   if (do_graft(&ir->rhs) ||
       60:       60:  181:       do_graft(&ir->condition))
       19:       19:  182:      return visit_stop;
        -:        -:  183:
        -:        -:  184:   /* If this assignment updates a variable used in the assignment
        -:        -:  185:    * we're trying to graft, then we're done.
        -:        -:  186:    */
       48:       48:  187:   return check_graft(ir, ir->lhs->variable_referenced());
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:ir_visitor_status
    #####:    #####:  191:ir_tree_grafting_visitor::visit_enter(ir_function *ir)
        -:        -:  192:{
        -:        -:  193:   (void) ir;
    #####:    #####:  194:   return visit_continue_with_parent;
        -:        -:  195:}
        -:        -:  196:
        -:        -:  197:ir_visitor_status
    #####:    #####:  198:ir_tree_grafting_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  199:{
        -:        -:  200:   (void)ir;
    #####:    #####:  201:   return visit_continue_with_parent;
        -:        -:  202:}
        -:        -:  203:
        -:        -:  204:ir_visitor_status
        3:        3:  205:ir_tree_grafting_visitor::visit_enter(ir_call *ir)
        -:        -:  206:{
        9:        9:  207:   foreach_two_lists(formal_node, &ir->callee->parameters,
        -:        -:  208:                     actual_node, &ir->actual_parameters) {
        6:        6:  209:      ir_variable *sig_param = (ir_variable *) formal_node;
        6:        6:  210:      ir_rvalue *ir = (ir_rvalue *) actual_node;
        6:        6:  211:      ir_rvalue *new_ir = ir;
        -:        -:  212:
        6:        6:  213:      if (sig_param->data.mode != ir_var_function_in
    #####:    #####:  214:          && sig_param->data.mode != ir_var_const_in) {
    #####:    #####:  215:	 if (check_graft(ir, sig_param) == visit_stop)
    #####:    #####:  216:	    return visit_stop;
    #####:    #####:  217:	 continue;
        -:        -:  218:      }
        -:        -:  219:
        6:        6:  220:      if (do_graft(&new_ir)) {
    #####:    #####:  221:	 ir->replace_with(new_ir);
    #####:    #####:  222:	 return visit_stop;
        -:        -:  223:      }
        -:        -:  224:   }
        -:        -:  225:
        3:        3:  226:   if (ir->return_deref && check_graft(ir, ir->return_deref->var) == visit_stop)
    #####:    #####:  227:      return visit_stop;
        -:        -:  228:
        3:        3:  229:   return visit_continue;
        -:        -:  230:}
        -:        -:  231:
        -:        -:  232:ir_visitor_status
       41:       41:  233:ir_tree_grafting_visitor::visit_enter(ir_expression *ir)
        -:        -:  234:{
      116:      116:  235:   for (unsigned int i = 0; i < ir->get_num_operands(); i++) {
       80:       80:  236:      if (do_graft(&ir->operands[i]))
        5:        5:  237:	 return visit_stop;
        -:        -:  238:   }
        -:        -:  239:
       36:       36:  240:   return visit_continue;
        -:        -:  241:}
        -:        -:  242:
        -:        -:  243:ir_visitor_status
       19:       19:  244:ir_tree_grafting_visitor::visit_enter(ir_if *ir)
        -:        -:  245:{
       19:       19:  246:   if (do_graft(&ir->condition))
        4:        4:  247:      return visit_stop;
        -:        -:  248:
        -:        -:  249:   /* Do not traverse into the body of the if-statement since that is a
        -:        -:  250:    * different basic block.
        -:        -:  251:    */
       15:       15:  252:   return visit_continue_with_parent;
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:ir_visitor_status
       81:       81:  256:ir_tree_grafting_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  257:{
       81:       81:  258:   if (do_graft(&ir->val))
        3:        3:  259:      return visit_stop;
        -:        -:  260:
       78:       78:  261:   return visit_continue;
        -:        -:  262:}
        -:        -:  263:
        -:        -:  264:ir_visitor_status
    #####:    #####:  265:ir_tree_grafting_visitor::visit_enter(ir_texture *ir)
        -:        -:  266:{
    #####:    #####:  267:   if (do_graft(&ir->coordinate) ||
    #####:    #####:  268:       do_graft(&ir->projector) ||
    #####:    #####:  269:       do_graft(&ir->offset) ||
    #####:    #####:  270:       do_graft(&ir->shadow_comparator))
    #####:    #####:  271:	 return visit_stop;
        -:        -:  272:
    #####:    #####:  273:   switch (ir->op) {
        -:        -:  274:   case ir_tex:
        -:        -:  275:   case ir_lod:
        -:        -:  276:   case ir_query_levels:
        -:        -:  277:   case ir_texture_samples:
        -:        -:  278:   case ir_samples_identical:
    #####:    #####:  279:      break;
        -:        -:  280:   case ir_txb:
    #####:    #####:  281:      if (do_graft(&ir->lod_info.bias))
    #####:    #####:  282:	 return visit_stop;
    #####:    #####:  283:      break;
        -:        -:  284:   case ir_txf:
        -:        -:  285:   case ir_txl:
        -:        -:  286:   case ir_txs:
    #####:    #####:  287:      if (do_graft(&ir->lod_info.lod))
    #####:    #####:  288:	 return visit_stop;
    #####:    #####:  289:      break;
        -:        -:  290:   case ir_txf_ms:
    #####:    #####:  291:      if (do_graft(&ir->lod_info.sample_index))
    #####:    #####:  292:         return visit_stop;
    #####:    #####:  293:      break;
        -:        -:  294:   case ir_txd:
    #####:    #####:  295:      if (do_graft(&ir->lod_info.grad.dPdx) ||
    #####:    #####:  296:	  do_graft(&ir->lod_info.grad.dPdy))
    #####:    #####:  297:	 return visit_stop;
    #####:    #####:  298:      break;
        -:        -:  299:   case ir_tg4:
    #####:    #####:  300:      if (do_graft(&ir->lod_info.component))
    #####:    #####:  301:         return visit_stop;
    #####:    #####:  302:      break;
        -:        -:  303:   }
        -:        -:  304:
    #####:    #####:  305:   return visit_continue;
        -:        -:  306:}
        -:        -:  307:
        -:        -:  308:struct tree_grafting_info {
        -:        -:  309:   ir_variable_refcount_visitor *refs;
        -:        -:  310:   bool progress;
        -:        -:  311:};
        -:        -:  312:
        -:        -:  313:static bool
       49:       49:  314:try_tree_grafting(ir_assignment *start,
        -:        -:  315:		  ir_variable *lhs_var,
        -:        -:  316:		  ir_instruction *bb_last)
        -:        -:  317:{
       49:       49:  318:   ir_tree_grafting_visitor v(start, lhs_var);
        -:        -:  319:
       49:       49:  320:   if (debug) {
    #####:    #####:  321:      fprintf(stderr, "trying to graft: ");
    #####:    #####:  322:      lhs_var->fprint(stderr);
    #####:    #####:  323:      fprintf(stderr, "\n");
        -:        -:  324:   }
        -:        -:  325:
      118:      118:  326:   for (ir_instruction *ir = (ir_instruction *)start->next;
      118:      118:  327:	ir != bb_last->next;
       69:       69:  328:	ir = (ir_instruction *)ir->next) {
        -:        -:  329:
      100:      100:  330:      if (debug) {
    #####:    #####:  331:	 fprintf(stderr, "- ");
    #####:    #####:  332:	 ir->fprint(stderr);
    #####:    #####:  333:	 fprintf(stderr, "\n");
        -:        -:  334:      }
        -:        -:  335:
      100:      100:  336:      ir_visitor_status s = ir->accept(&v);
      100:      100:  337:      if (s == visit_stop)
       31:       31:  338:	 return v.progress;
        -:        -:  339:   }
        -:        -:  340:
       18:       18:  341:   return false;
        -:        -:  342:}
        -:        -:  343:
        -:        -:  344:static void
      288:      365:  345:tree_grafting_basic_block(ir_instruction *bb_first,
        -:        -:  346:			  ir_instruction *bb_last,
        -:        -:  347:			  void *data)
        -:        -:  348:{
      288:      365:  349:   struct tree_grafting_info *info = (struct tree_grafting_info *)data;
        -:        -:  350:   ir_instruction *ir, *next;
        -:        -:  351:
     2856:     3087:  352:   for (ir = bb_first, next = (ir_instruction *)ir->next;
     1572:     1726:  353:	ir != bb_last->next;
     1284:     1361:  354:	ir = next, next = (ir_instruction *)ir->next) {
     1284:     1361:  355:      ir_assignment *assign = ir->as_assignment();
        -:        -:  356:
     1284:     1361:  357:      if (!assign)
      845:      922:  358:	 continue;
        -:        -:  359:
      439:      439:  360:      ir_variable *lhs_var = assign->whole_variable_written();
      439:      439:  361:      if (!lhs_var)
       88:       88:  362:	 continue;
        -:        -:  363:
      702:      702:  364:      if (lhs_var->data.mode == ir_var_function_out ||
      702:      702:  365:          lhs_var->data.mode == ir_var_function_inout ||
      687:      687:  366:          lhs_var->data.mode == ir_var_shader_out ||
      672:      672:  367:          lhs_var->data.mode == ir_var_shader_storage ||
      336:      336:  368:          lhs_var->data.mode == ir_var_shader_shared)
       15:       15:  369:         continue;
        -:        -:  370:
      336:      336:  371:      if (lhs_var->data.precise)
    #####:    #####:  372:         continue;
        -:        -:  373:
      336:      336:  374:      ir_variable_refcount_entry *entry = info->refs->get_variable_entry(lhs_var);
        -:        -:  375:
      672:      672:  376:      if (!entry->declaration ||
      401:      401:  377:	  entry->assigned_count != 1 ||
       65:       65:  378:	  entry->referenced_count != 2)
      287:      287:  379:	 continue;
        -:        -:  380:
        -:        -:  381:      /* Found a possibly graftable assignment.  Now, walk through the
        -:        -:  382:       * rest of the BB seeing if the deref is here, and if nothing interfered with
        -:        -:  383:       * pasting its expression's values in between.
        -:        -:  384:       */
       49:       49:  385:      info->progress |= try_tree_grafting(assign, lhs_var, bb_last);
        -:        -:  386:   }
      288:      365:  387:}
        -:        -:  388:
        -:        -:  389:} /* unnamed namespace */
        -:        -:  390:
        -:        -:  391:/**
        -:        -:  392: * Does a copy propagation pass on the code present in the instruction stream.
        -:        -:  393: */
        -:        -:  394:bool
       18:       18:  395:do_tree_grafting(exec_list *instructions)
        -:        -:  396:{
       36:       36:  397:   ir_variable_refcount_visitor refs;
        -:        -:  398:   struct tree_grafting_info info;
        -:        -:  399:
       18:       18:  400:   info.progress = false;
       18:       18:  401:   info.refs = &refs;
        -:        -:  402:
       18:       18:  403:   visit_list_elements(info.refs, instructions);
        -:        -:  404:
       18:       18:  405:   call_for_basic_blocks(instructions, tree_grafting_basic_block, &info);
        -:        -:  406:
       36:       36:  407:   return info.progress;
        -:        -:  408:}

src/compiler/propagate_invariance.cpp.gcov

        -:        -:    0:Source:glsl/propagate_invariance.cpp
        -:        -:    0:Graph:glsl/.libs/propagate_invariance.gcno
        -:        -:    0:Data:glsl/.libs/propagate_invariance.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2016 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file propagate_invariance.cpp
        -:        -:   26: * Propagate the "invariant" and "precise" qualifiers to variables used to
        -:        -:   27: * compute invariant or precise values.
        -:        -:   28: *
        -:        -:   29: * The GLSL spec (depending on what version you read) says, among the
        -:        -:   30: * conditions for getting bit-for-bit the same values on an invariant output:
        -:        -:   31: *
        -:        -:   32: *    "All operations in the consuming expressions and any intermediate
        -:        -:   33: *    expressions must be the same, with the same order of operands and same
        -:        -:   34: *    associativity, to give the same order of evaluation."
        -:        -:   35: *
        -:        -:   36: * This effectively means that if a variable is used to compute an invariant
        -:        -:   37: * value then that variable becomes invariant.  The same should apply to the
        -:        -:   38: * "precise" qualifier.
        -:        -:   39: */
        -:        -:   40:
        -:        -:   41:#include "ir.h"
        -:        -:   42:#include "ir_visitor.h"
        -:        -:   43:#include "ir_rvalue_visitor.h"
        -:        -:   44:#include "ir_optimization.h"
        -:        -:   45:#include "compiler/glsl_types.h"
        -:        -:   46:
        -:        -:   47:namespace {
        -:        -:   48:
        -:        -:   49:class ir_invariance_propagation_visitor : public ir_hierarchical_visitor {
        -:        -:   50:public:
       21:       21:   51:   ir_invariance_propagation_visitor()
       21:       21:   52:   {
       21:       21:   53:      this->progress = false;
       21:       21:   54:      this->dst_var = NULL;
       21:       21:   55:   }
        -:        -:   56:
       21:       21:   57:   virtual ~ir_invariance_propagation_visitor()
       21:       21:   58:   {
        -:        -:   59:      /* empty */
       21:       21:   60:   }
        -:        -:   61:
        -:        -:   62:   virtual ir_visitor_status visit_enter(ir_assignment *ir);
        -:        -:   63:   virtual ir_visitor_status visit_leave(ir_assignment *ir);
        -:        -:   64:   virtual ir_visitor_status visit(ir_dereference_variable *ir);
        -:        -:   65:
        -:        -:   66:   ir_variable *dst_var;
        -:        -:   67:   bool progress;
        -:        -:   68:};
        -:        -:   69:
        -:        -:   70:} /* unnamed namespace */
        -:        -:   71:
        -:        -:   72:ir_visitor_status
      533:      533:   73:ir_invariance_propagation_visitor::visit_enter(ir_assignment *ir)
        -:        -:   74:{
      533:      533:   75:   assert(this->dst_var == NULL);
      533:      533:   76:   ir_variable *var = ir->lhs->variable_referenced();
      533:      533:   77:   if (var->data.invariant || var->data.precise) {
    #####:    #####:   78:      this->dst_var = var;
    #####:    #####:   79:      return visit_continue;
        -:        -:   80:   } else {
      533:      533:   81:      return visit_continue_with_parent;
        -:        -:   82:   }
        -:        -:   83:}
        -:        -:   84:
        -:        -:   85:ir_visitor_status
    #####:    #####:   86:ir_invariance_propagation_visitor::visit_leave(ir_assignment *)
        -:        -:   87:{
    #####:    #####:   88:   this->dst_var = NULL;
        -:        -:   89:
    #####:    #####:   90:   return visit_continue;
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:ir_visitor_status
      178:      215:   94:ir_invariance_propagation_visitor::visit(ir_dereference_variable *ir)
        -:        -:   95:{
      178:      215:   96:   if (this->dst_var == NULL)
      178:      215:   97:      return visit_continue;
        -:        -:   98:
    #####:    #####:   99:   if (this->dst_var->data.invariant) {
    #####:    #####:  100:      if (!ir->var->data.invariant)
    #####:    #####:  101:         this->progress = true;
        -:        -:  102:
    #####:    #####:  103:      ir->var->data.invariant = true;
        -:        -:  104:   }
        -:        -:  105:
    #####:    #####:  106:   if (this->dst_var->data.precise) {
    #####:    #####:  107:      if (!ir->var->data.precise)
    #####:    #####:  108:         this->progress = true;
        -:        -:  109:
    #####:    #####:  110:      ir->var->data.precise = true;
        -:        -:  111:   }
        -:        -:  112:
    #####:    #####:  113:   return visit_continue;
        -:        -:  114:}
        -:        -:  115:
        -:        -:  116:void
       21:       21:  117:propagate_invariance(exec_list *instructions)
        -:        -:  118:{
       42:       42:  119:   ir_invariance_propagation_visitor visitor;
        -:        -:  120:
    #####:    #####:  121:   do {
       21:       21:  122:      visitor.progress = false;
       21:       21:  123:      visit_list_elements(&visitor, instructions);
       21:       21:  124:   } while (visitor.progress);
       21:       21:  125:}

src/compiler/u_math.h.gcov

        -:        -:    0:Source:../../src/gallium/auxiliary/util/u_math.h
        -:        -:    0:Graph:nir/.libs/nir_validate.gcno
        -:        -:    0:Data:nir/.libs/nir_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/**************************************************************************
        -:        -:    2: * 
        -:        -:    3: * Copyright 2008 VMware, Inc.
        -:        -:    4: * All Rights Reserved.
        -:        -:    5: * 
        -:        -:    6: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    7: * copy of this software and associated documentation files (the
        -:        -:    8: * "Software"), to deal in the Software without restriction, including
        -:        -:    9: * without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   10: * distribute, sub license, and/or sell copies of the Software, and to
        -:        -:   11: * permit persons to whom the Software is furnished to do so, subject to
        -:        -:   12: * the following conditions:
        -:        -:   13: * 
        -:        -:   14: * The above copyright notice and this permission notice (including the
        -:        -:   15: * next paragraph) shall be included in all copies or substantial portions
        -:        -:   16: * of the Software.
        -:        -:   17: * 
        -:        -:   18: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
        -:        -:   19: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   20: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
        -:        -:   21: * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
        -:        -:   22: * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        -:        -:   23: * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
        -:        -:   24: * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   25: * 
        -:        -:   26: **************************************************************************/
        -:        -:   27:
        -:        -:   28:
        -:        -:   29:/**
        -:        -:   30: * Math utilities and approximations for common math functions.
        -:        -:   31: * Reduced precision is usually acceptable in shaders...
        -:        -:   32: *
        -:        -:   33: * "fast" is used in the names of functions which are low-precision,
        -:        -:   34: * or at least lower-precision than the normal C lib functions.
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:
        -:        -:   38:#ifndef U_MATH_H
        -:        -:   39:#define U_MATH_H
        -:        -:   40:
        -:        -:   41:
        -:        -:   42:#include "pipe/p_compiler.h"
        -:        -:   43:
        -:        -:   44:#include "c99_math.h"
        -:        -:   45:#include <assert.h>
        -:        -:   46:#include <float.h>
        -:        -:   47:#include <stdarg.h>
        -:        -:   48:
        -:        -:   49:#include "util/bitscan.h"
        -:        -:   50:
        -:        -:   51:#ifdef __cplusplus
        -:        -:   52:extern "C" {
        -:        -:   53:#endif
        -:        -:   54:
        -:        -:   55:
        -:        -:   56:#ifndef M_SQRT2
        -:        -:   57:#define M_SQRT2 1.41421356237309504880
        -:        -:   58:#endif
        -:        -:   59:
        -:        -:   60:#define POW2_TABLE_SIZE_LOG2 9
        -:        -:   61:#define POW2_TABLE_SIZE (1 << POW2_TABLE_SIZE_LOG2)
        -:        -:   62:#define POW2_TABLE_OFFSET (POW2_TABLE_SIZE/2)
        -:        -:   63:#define POW2_TABLE_SCALE ((float)(POW2_TABLE_SIZE/2))
        -:        -:   64:extern float pow2_table[POW2_TABLE_SIZE];
        -:        -:   65:
        -:        -:   66:
        -:        -:   67:/**
        -:        -:   68: * Initialize math module.  This should be called before using any
        -:        -:   69: * other functions in this module.
        -:        -:   70: */
        -:        -:   71:extern void
        -:        -:   72:util_init_math(void);
        -:        -:   73:
        -:        -:   74:
        -:        -:   75:union fi {
        -:        -:   76:   float f;
        -:        -:   77:   int32_t i;
        -:        -:   78:   uint32_t ui;
        -:        -:   79:};
        -:        -:   80:
        -:        -:   81:
        -:        -:   82:union di {
        -:        -:   83:   double d;
        -:        -:   84:   int64_t i;
        -:        -:   85:   uint64_t ui;
        -:        -:   86:};
        -:        -:   87:
        -:        -:   88:
        -:        -:   89:/**
        -:        -:   90: * Extract the IEEE float32 exponent.
        -:        -:   91: */
        -:        -:   92:static inline signed
        -:        -:   93:util_get_float32_exponent(float x)
        -:        -:   94:{
        -:        -:   95:   union fi f;
        -:        -:   96:
        -:        -:   97:   f.f = x;
        -:        -:   98:
        -:        -:   99:   return ((f.ui >> 23) & 0xff) - 127;
        -:        -:  100:}
        -:        -:  101:
        -:        -:  102:
        -:        -:  103:/**
        -:        -:  104: * Fast version of 2^x
        -:        -:  105: * Identity: exp2(a + b) = exp2(a) * exp2(b)
        -:        -:  106: * Let ipart = int(x)
        -:        -:  107: * Let fpart = x - ipart;
        -:        -:  108: * So, exp2(x) = exp2(ipart) * exp2(fpart)
        -:        -:  109: * Compute exp2(ipart) with i << ipart
        -:        -:  110: * Compute exp2(fpart) with lookup table.
        -:        -:  111: */
        -:        -:  112:static inline float
        -:        -:  113:util_fast_exp2(float x)
        -:        -:  114:{
        -:        -:  115:   int32_t ipart;
        -:        -:  116:   float fpart, mpart;
        -:        -:  117:   union fi epart;
        -:        -:  118:
        -:        -:  119:   if(x > 129.00000f)
        -:        -:  120:      return 3.402823466e+38f;
        -:        -:  121:
        -:        -:  122:   if (x < -126.99999f)
        -:        -:  123:      return 0.0f;
        -:        -:  124:
        -:        -:  125:   ipart = (int32_t) x;
        -:        -:  126:   fpart = x - (float) ipart;
        -:        -:  127:
        -:        -:  128:   /* same as
        -:        -:  129:    *   epart.f = (float) (1 << ipart)
        -:        -:  130:    * but faster and without integer overflow for ipart > 31
        -:        -:  131:    */
        -:        -:  132:   epart.i = (ipart + 127 ) << 23;
        -:        -:  133:
        -:        -:  134:   mpart = pow2_table[POW2_TABLE_OFFSET + (int)(fpart * POW2_TABLE_SCALE)];
        -:        -:  135:
        -:        -:  136:   return epart.f * mpart;
        -:        -:  137:}
        -:        -:  138:
        -:        -:  139:
        -:        -:  140:/**
        -:        -:  141: * Fast approximation to exp(x).
        -:        -:  142: */
        -:        -:  143:static inline float
        -:        -:  144:util_fast_exp(float x)
        -:        -:  145:{
        -:        -:  146:   const float k = 1.44269f; /* = log2(e) */
        -:        -:  147:   return util_fast_exp2(k * x);
        -:        -:  148:}
        -:        -:  149:
        -:        -:  150:
        -:        -:  151:#define LOG2_TABLE_SIZE_LOG2 16
        -:        -:  152:#define LOG2_TABLE_SCALE (1 << LOG2_TABLE_SIZE_LOG2)
        -:        -:  153:#define LOG2_TABLE_SIZE (LOG2_TABLE_SCALE + 1)
        -:        -:  154:extern float log2_table[LOG2_TABLE_SIZE];
        -:        -:  155:
        -:        -:  156:
        -:        -:  157:/**
        -:        -:  158: * Fast approximation to log2(x).
        -:        -:  159: */
        -:        -:  160:static inline float
        -:        -:  161:util_fast_log2(float x)
        -:        -:  162:{
        -:        -:  163:   union fi num;
        -:        -:  164:   float epart, mpart;
        -:        -:  165:   num.f = x;
        -:        -:  166:   epart = (float)(((num.i & 0x7f800000) >> 23) - 127);
        -:        -:  167:   /* mpart = log2_table[mantissa*LOG2_TABLE_SCALE + 0.5] */
        -:        -:  168:   mpart = log2_table[((num.i & 0x007fffff) + (1 << (22 - LOG2_TABLE_SIZE_LOG2))) >> (23 - LOG2_TABLE_SIZE_LOG2)];
        -:        -:  169:   return epart + mpart;
        -:        -:  170:}
        -:        -:  171:
        -:        -:  172:
        -:        -:  173:/**
        -:        -:  174: * Fast approximation to x^y.
        -:        -:  175: */
        -:        -:  176:static inline float
        -:        -:  177:util_fast_pow(float x, float y)
        -:        -:  178:{
        -:        -:  179:   return util_fast_exp2(util_fast_log2(x) * y);
        -:        -:  180:}
        -:        -:  181:
        -:        -:  182:/* Note that this counts zero as a power of two.
        -:        -:  183: */
        -:        -:  184:static inline boolean
        -:        -:  185:util_is_power_of_two( unsigned v )
        -:        -:  186:{
        -:        -:  187:   return (v & (v-1)) == 0;
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:
        -:        -:  191:/**
        -:        -:  192: * Floor(x), returned as int.
        -:        -:  193: */
        -:        -:  194:static inline int
        -:        -:  195:util_ifloor(float f)
        -:        -:  196:{
        -:        -:  197:   int ai, bi;
        -:        -:  198:   double af, bf;
        -:        -:  199:   union fi u;
        -:        -:  200:   af = (3 << 22) + 0.5 + (double) f;
        -:        -:  201:   bf = (3 << 22) + 0.5 - (double) f;
        -:        -:  202:   u.f = (float) af;  ai = u.i;
        -:        -:  203:   u.f = (float) bf;  bi = u.i;
        -:        -:  204:   return (ai - bi) >> 1;
        -:        -:  205:}
        -:        -:  206:
        -:        -:  207:
        -:        -:  208:/**
        -:        -:  209: * Round float to nearest int.
        -:        -:  210: */
        -:        -:  211:static inline int
        -:        -:  212:util_iround(float f)
        -:        -:  213:{
        -:        -:  214:#if defined(PIPE_CC_GCC) && defined(PIPE_ARCH_X86) 
        -:        -:  215:   int r;
        -:        -:  216:   __asm__ ("fistpl %0" : "=m" (r) : "t" (f) : "st");
        -:        -:  217:   return r;
        -:        -:  218:#elif defined(PIPE_CC_MSVC) && defined(PIPE_ARCH_X86)
        -:        -:  219:   int r;
        -:        -:  220:   _asm {
        -:        -:  221:      fld f
        -:        -:  222:      fistp r
        -:        -:  223:   }
        -:        -:  224:   return r;
        -:        -:  225:#else
        -:        -:  226:   if (f >= 0.0f)
        -:        -:  227:      return (int) (f + 0.5f);
        -:        -:  228:   else
        -:        -:  229:      return (int) (f - 0.5f);
        -:        -:  230:#endif
        -:        -:  231:}
        -:        -:  232:
        -:        -:  233:
        -:        -:  234:/**
        -:        -:  235: * Approximate floating point comparison
        -:        -:  236: */
        -:        -:  237:static inline boolean
        -:        -:  238:util_is_approx(float a, float b, float tol)
        -:        -:  239:{
        -:        -:  240:   return fabsf(b - a) <= tol;
        -:        -:  241:}
        -:        -:  242:
        -:        -:  243:
        -:        -:  244:/**
        -:        -:  245: * util_is_X_inf_or_nan = test if x is NaN or +/- Inf
        -:        -:  246: * util_is_X_nan        = test if x is NaN
        -:        -:  247: * util_X_inf_sign      = return +1 for +Inf, -1 for -Inf, or 0 for not Inf
        -:        -:  248: *
        -:        -:  249: * NaN can be checked with x != x, however this fails with the fast math flag
        -:        -:  250: **/
        -:        -:  251:
        -:        -:  252:
        -:        -:  253:/**
        -:        -:  254: * Single-float
        -:        -:  255: */
        -:        -:  256:static inline boolean
        -:        -:  257:util_is_inf_or_nan(float x)
        -:        -:  258:{
        -:        -:  259:   union fi tmp;
        -:        -:  260:   tmp.f = x;
        -:        -:  261:   return (tmp.ui & 0x7f800000) == 0x7f800000;
        -:        -:  262:}
        -:        -:  263:
        -:        -:  264:
        -:        -:  265:static inline boolean
        -:        -:  266:util_is_nan(float x)
        -:        -:  267:{
        -:        -:  268:   union fi tmp;
        -:        -:  269:   tmp.f = x;
        -:        -:  270:   return (tmp.ui & 0x7fffffff) > 0x7f800000;
        -:        -:  271:}
        -:        -:  272:
        -:        -:  273:
        -:        -:  274:static inline int
        -:        -:  275:util_inf_sign(float x)
        -:        -:  276:{
        -:        -:  277:   union fi tmp;
        -:        -:  278:   tmp.f = x;
        -:        -:  279:   if ((tmp.ui & 0x7fffffff) != 0x7f800000) {
        -:        -:  280:      return 0;
        -:        -:  281:   }
        -:        -:  282:
        -:        -:  283:   return (x < 0) ? -1 : 1;
        -:        -:  284:}
        -:        -:  285:
        -:        -:  286:
        -:        -:  287:/**
        -:        -:  288: * Double-float
        -:        -:  289: */
        -:        -:  290:static inline boolean
        -:        -:  291:util_is_double_inf_or_nan(double x)
        -:        -:  292:{
        -:        -:  293:   union di tmp;
        -:        -:  294:   tmp.d = x;
        -:        -:  295:   return (tmp.ui & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL;
        -:        -:  296:}
        -:        -:  297:
        -:        -:  298:
        -:        -:  299:static inline boolean
        -:        -:  300:util_is_double_nan(double x)
        -:        -:  301:{
        -:        -:  302:   union di tmp;
        -:        -:  303:   tmp.d = x;
        -:        -:  304:   return (tmp.ui & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL;
        -:        -:  305:}
        -:        -:  306:
        -:        -:  307:
        -:        -:  308:static inline int
        -:        -:  309:util_double_inf_sign(double x)
        -:        -:  310:{
        -:        -:  311:   union di tmp;
        -:        -:  312:   tmp.d = x;
        -:        -:  313:   if ((tmp.ui & 0x7fffffffffffffffULL) != 0x7ff0000000000000ULL) {
        -:        -:  314:      return 0;
        -:        -:  315:   }
        -:        -:  316:
        -:        -:  317:   return (x < 0) ? -1 : 1;
        -:        -:  318:}
        -:        -:  319:
        -:        -:  320:
        -:        -:  321:/**
        -:        -:  322: * Half-float
        -:        -:  323: */
        -:        -:  324:static inline boolean
        -:        -:  325:util_is_half_inf_or_nan(int16_t x)
        -:        -:  326:{
        -:        -:  327:   return (x & 0x7c00) == 0x7c00;
        -:        -:  328:}
        -:        -:  329:
        -:        -:  330:
        -:        -:  331:static inline boolean
        -:        -:  332:util_is_half_nan(int16_t x)
        -:        -:  333:{
        -:        -:  334:   return (x & 0x7fff) > 0x7c00;
        -:        -:  335:}
        -:        -:  336:
        -:        -:  337:
        -:        -:  338:static inline int
        -:        -:  339:util_half_inf_sign(int16_t x)
        -:        -:  340:{
        -:        -:  341:   if ((x & 0x7fff) != 0x7c00) {
        -:        -:  342:      return 0;
        -:        -:  343:   }
        -:        -:  344:
        -:        -:  345:   return (x < 0) ? -1 : 1;
        -:        -:  346:}
        -:        -:  347:
        -:        -:  348:
        -:        -:  349:/**
        -:        -:  350: * Return float bits.
        -:        -:  351: */
        -:        -:  352:static inline unsigned
        -:        -:  353:fui( float f )
        -:        -:  354:{
        -:        -:  355:   union fi fi;
        -:        -:  356:   fi.f = f;
        -:        -:  357:   return fi.ui;
        -:        -:  358:}
        -:        -:  359:
        -:        -:  360:static inline float
        -:        -:  361:uif(uint32_t ui)
        -:        -:  362:{
        -:        -:  363:   union fi fi;
        -:        -:  364:   fi.ui = ui;
        -:        -:  365:   return fi.f;
        -:        -:  366:}
        -:        -:  367:
        -:        -:  368:
        -:        -:  369:/**
        -:        -:  370: * Convert ubyte to float in [0, 1].
        -:        -:  371: * XXX a 256-entry lookup table would be slightly faster.
        -:        -:  372: */
        -:        -:  373:static inline float
        -:        -:  374:ubyte_to_float(ubyte ub)
        -:        -:  375:{
        -:        -:  376:   return (float) ub * (1.0f / 255.0f);
        -:        -:  377:}
        -:        -:  378:
        -:        -:  379:
        -:        -:  380:/**
        -:        -:  381: * Convert float in [0,1] to ubyte in [0,255] with clamping.
        -:        -:  382: */
        -:        -:  383:static inline ubyte
        -:        -:  384:float_to_ubyte(float f)
        -:        -:  385:{
        -:        -:  386:   union fi tmp;
        -:        -:  387:
        -:        -:  388:   tmp.f = f;
        -:        -:  389:   if (tmp.i < 0) {
        -:        -:  390:      return (ubyte) 0;
        -:        -:  391:   }
        -:        -:  392:   else if (tmp.i >= 0x3f800000 /* 1.0f */) {
        -:        -:  393:      return (ubyte) 255;
        -:        -:  394:   }
        -:        -:  395:   else {
        -:        -:  396:      tmp.f = tmp.f * (255.0f/256.0f) + 32768.0f;
        -:        -:  397:      return (ubyte) tmp.i;
        -:        -:  398:   }
        -:        -:  399:}
        -:        -:  400:
        -:        -:  401:static inline float
        -:        -:  402:byte_to_float_tex(int8_t b)
        -:        -:  403:{
        -:        -:  404:   return (b == -128) ? -1.0F : b * 1.0F / 127.0F;
        -:        -:  405:}
        -:        -:  406:
        -:        -:  407:static inline int8_t
        -:        -:  408:float_to_byte_tex(float f)
        -:        -:  409:{
        -:        -:  410:   return (int8_t) (127.0F * f);
        -:        -:  411:}
        -:        -:  412:
        -:        -:  413:/**
        -:        -:  414: * Calc log base 2
        -:        -:  415: */
        -:        -:  416:static inline unsigned
        -:        -:  417:util_logbase2(unsigned n)
        -:        -:  418:{
        -:        -:  419:#if defined(HAVE___BUILTIN_CLZ)
        -:        -:  420:   return ((sizeof(unsigned) * 8 - 1) - __builtin_clz(n | 1));
        -:        -:  421:#else
        -:        -:  422:   unsigned pos = 0;
        -:        -:  423:   if (n >= 1<<16) { n >>= 16; pos += 16; }
        -:        -:  424:   if (n >= 1<< 8) { n >>=  8; pos +=  8; }
        -:        -:  425:   if (n >= 1<< 4) { n >>=  4; pos +=  4; }
        -:        -:  426:   if (n >= 1<< 2) { n >>=  2; pos +=  2; }
        -:        -:  427:   if (n >= 1<< 1) {           pos +=  1; }
        -:        -:  428:   return pos;
        -:        -:  429:#endif
        -:        -:  430:}
        -:        -:  431:
        -:        -:  432:/**
        -:        -:  433: * Returns the ceiling of log n base 2, and 0 when n == 0. Equivalently,
        -:        -:  434: * returns the smallest x such that n <= 2**x.
        -:        -:  435: */
        -:        -:  436:static inline unsigned
        -:        -:  437:util_logbase2_ceil(unsigned n)
        -:        -:  438:{
        -:        -:  439:   if (n <= 1)
        -:        -:  440:      return 0;
        -:        -:  441:
        -:        -:  442:   return 1 + util_logbase2(n - 1);
        -:        -:  443:}
        -:        -:  444:
        -:        -:  445:/**
        -:        -:  446: * Returns the smallest power of two >= x
        -:        -:  447: */
        -:        -:  448:static inline unsigned
        -:        -:  449:util_next_power_of_two(unsigned x)
        -:        -:  450:{
        -:        -:  451:#if defined(HAVE___BUILTIN_CLZ)
        -:        -:  452:   if (x <= 1)
        -:        -:  453:       return 1;
        -:        -:  454:
        -:        -:  455:   return (1 << ((sizeof(unsigned) * 8) - __builtin_clz(x - 1)));
        -:        -:  456:#else
        -:        -:  457:   unsigned val = x;
        -:        -:  458:
        -:        -:  459:   if (x <= 1)
        -:        -:  460:      return 1;
        -:        -:  461:
        -:        -:  462:   if (util_is_power_of_two(x))
        -:        -:  463:      return x;
        -:        -:  464:
        -:        -:  465:   val--;
        -:        -:  466:   val = (val >> 1) | val;
        -:        -:  467:   val = (val >> 2) | val;
        -:        -:  468:   val = (val >> 4) | val;
        -:        -:  469:   val = (val >> 8) | val;
        -:        -:  470:   val = (val >> 16) | val;
        -:        -:  471:   val++;
        -:        -:  472:   return val;
        -:        -:  473:#endif
        -:        -:  474:}
        -:        -:  475:
        -:        -:  476:
        -:        -:  477:/**
        -:        -:  478: * Return number of bits set in n.
        -:        -:  479: */
        -:        -:  480:static inline unsigned
     9379:     9627:  481:util_bitcount(unsigned n)
        -:        -:  482:{
        -:        -:  483:#if defined(HAVE___BUILTIN_POPCOUNT)
     9379:     9627:  484:   return __builtin_popcount(n);
        -:        -:  485:#else
        -:        -:  486:   /* K&R classic bitcount.
        -:        -:  487:    *
        -:        -:  488:    * For each iteration, clear the LSB from the bitfield.
        -:        -:  489:    * Requires only one iteration per set bit, instead of
        -:        -:  490:    * one iteration per bit less than highest set bit.
        -:        -:  491:    */
        -:        -:  492:   unsigned bits;
        -:        -:  493:   for (bits = 0; n; bits++) {
        -:        -:  494:      n &= n - 1;
        -:        -:  495:   }
        -:        -:  496:   return bits;
        -:        -:  497:#endif
        -:        -:  498:}
        -:        -:  499:
        -:        -:  500:
        -:        -:  501:static inline unsigned
        -:        -:  502:util_bitcount64(uint64_t n)
        -:        -:  503:{
        -:        -:  504:#ifdef HAVE___BUILTIN_POPCOUNTLL
        -:        -:  505:   return __builtin_popcountll(n);
        -:        -:  506:#else
        -:        -:  507:   return util_bitcount(n) + util_bitcount(n >> 32);
        -:        -:  508:#endif
        -:        -:  509:}
        -:        -:  510:
        -:        -:  511:
        -:        -:  512:/**
        -:        -:  513: * Reverse bits in n
        -:        -:  514: * Algorithm taken from:
        -:        -:  515: * http://stackoverflow.com/questions/9144800/c-reverse-bits-in-unsigned-integer
        -:        -:  516: */
        -:        -:  517:static inline unsigned
        -:        -:  518:util_bitreverse(unsigned n)
        -:        -:  519:{
        -:        -:  520:    n = ((n >> 1) & 0x55555555u) | ((n & 0x55555555u) << 1);
        -:        -:  521:    n = ((n >> 2) & 0x33333333u) | ((n & 0x33333333u) << 2);
        -:        -:  522:    n = ((n >> 4) & 0x0f0f0f0fu) | ((n & 0x0f0f0f0fu) << 4);
        -:        -:  523:    n = ((n >> 8) & 0x00ff00ffu) | ((n & 0x00ff00ffu) << 8);
        -:        -:  524:    n = ((n >> 16) & 0xffffu) | ((n & 0xffffu) << 16);
        -:        -:  525:    return n;
        -:        -:  526:}
        -:        -:  527:
        -:        -:  528:/**
        -:        -:  529: * Convert from little endian to CPU byte order.
        -:        -:  530: */
        -:        -:  531:
        -:        -:  532:#ifdef PIPE_ARCH_BIG_ENDIAN
        -:        -:  533:#define util_le64_to_cpu(x) util_bswap64(x)
        -:        -:  534:#define util_le32_to_cpu(x) util_bswap32(x)
        -:        -:  535:#define util_le16_to_cpu(x) util_bswap16(x)
        -:        -:  536:#else
        -:        -:  537:#define util_le64_to_cpu(x) (x)
        -:        -:  538:#define util_le32_to_cpu(x) (x)
        -:        -:  539:#define util_le16_to_cpu(x) (x)
        -:        -:  540:#endif
        -:        -:  541:
        -:        -:  542:#define util_cpu_to_le64(x) util_le64_to_cpu(x)
        -:        -:  543:#define util_cpu_to_le32(x) util_le32_to_cpu(x)
        -:        -:  544:#define util_cpu_to_le16(x) util_le16_to_cpu(x)
        -:        -:  545:
        -:        -:  546:/**
        -:        -:  547: * Reverse byte order of a 32 bit word.
        -:        -:  548: */
        -:        -:  549:static inline uint32_t
        -:        -:  550:util_bswap32(uint32_t n)
        -:        -:  551:{
        -:        -:  552:#if defined(HAVE___BUILTIN_BSWAP32)
        -:        -:  553:   return __builtin_bswap32(n);
        -:        -:  554:#else
        -:        -:  555:   return (n >> 24) |
        -:        -:  556:          ((n >> 8) & 0x0000ff00) |
        -:        -:  557:          ((n << 8) & 0x00ff0000) |
        -:        -:  558:          (n << 24);
        -:        -:  559:#endif
        -:        -:  560:}
        -:        -:  561:
        -:        -:  562:/**
        -:        -:  563: * Reverse byte order of a 64bit word.
        -:        -:  564: */
        -:        -:  565:static inline uint64_t
        -:        -:  566:util_bswap64(uint64_t n)
        -:        -:  567:{
        -:        -:  568:#if defined(HAVE___BUILTIN_BSWAP64)
        -:        -:  569:   return __builtin_bswap64(n);
        -:        -:  570:#else
        -:        -:  571:   return ((uint64_t)util_bswap32((uint32_t)n) << 32) |
        -:        -:  572:          util_bswap32((n >> 32));
        -:        -:  573:#endif
        -:        -:  574:}
        -:        -:  575:
        -:        -:  576:
        -:        -:  577:/**
        -:        -:  578: * Reverse byte order of a 16 bit word.
        -:        -:  579: */
        -:        -:  580:static inline uint16_t
        -:        -:  581:util_bswap16(uint16_t n)
        -:        -:  582:{
        -:        -:  583:   return (n >> 8) |
        -:        -:  584:          (n << 8);
        -:        -:  585:}
        -:        -:  586:
        -:        -:  587:static inline void*
        -:        -:  588:util_memcpy_cpu_to_le32(void * restrict dest, const void * restrict src, size_t n)
        -:        -:  589:{
        -:        -:  590:#ifdef PIPE_ARCH_BIG_ENDIAN
        -:        -:  591:   size_t i, e;
        -:        -:  592:   assert(n % 4 == 0);
        -:        -:  593:
        -:        -:  594:   for (i = 0, e = n / 4; i < e; i++) {
        -:        -:  595:      uint32_t * restrict d = (uint32_t* restrict)dest;
        -:        -:  596:      const uint32_t * restrict s = (const uint32_t* restrict)src;
        -:        -:  597:      d[i] = util_bswap32(s[i]);
        -:        -:  598:   }
        -:        -:  599:   return dest;
        -:        -:  600:#else
        -:        -:  601:   return memcpy(dest, src, n);
        -:        -:  602:#endif
        -:        -:  603:}
        -:        -:  604:
        -:        -:  605:/**
        -:        -:  606: * Clamp X to [MIN, MAX].
        -:        -:  607: * This is a macro to allow float, int, uint, etc. types.
        -:        -:  608: */
        -:        -:  609:#define CLAMP( X, MIN, MAX )  ( (X)<(MIN) ? (MIN) : ((X)>(MAX) ? (MAX) : (X)) )
        -:        -:  610:
        -:        -:  611:#define MIN2( A, B )   ( (A)<(B) ? (A) : (B) )
        -:        -:  612:#define MAX2( A, B )   ( (A)>(B) ? (A) : (B) )
        -:        -:  613:
        -:        -:  614:#define MIN3( A, B, C ) ((A) < (B) ? MIN2(A, C) : MIN2(B, C))
        -:        -:  615:#define MAX3( A, B, C ) ((A) > (B) ? MAX2(A, C) : MAX2(B, C))
        -:        -:  616:
        -:        -:  617:#define MIN4( A, B, C, D ) ((A) < (B) ? MIN3(A, C, D) : MIN3(B, C, D))
        -:        -:  618:#define MAX4( A, B, C, D ) ((A) > (B) ? MAX3(A, C, D) : MAX3(B, C, D))
        -:        -:  619:
        -:        -:  620:
        -:        -:  621:/**
        -:        -:  622: * Align a value, only works pot alignemnts.
        -:        -:  623: */
        -:        -:  624:static inline int
        -:        -:  625:align(int value, int alignment)
        -:        -:  626:{
        -:        -:  627:   return (value + alignment - 1) & ~(alignment - 1);
        -:        -:  628:}
        -:        -:  629:
        -:        -:  630:static inline uint64_t
        -:        -:  631:align64(uint64_t value, unsigned alignment)
        -:        -:  632:{
        -:        -:  633:   return (value + alignment - 1) & ~((uint64_t)alignment - 1);
        -:        -:  634:}
        -:        -:  635:
        -:        -:  636:/**
        -:        -:  637: * Works like align but on npot alignments.
        -:        -:  638: */
        -:        -:  639:static inline size_t
        -:        -:  640:util_align_npot(size_t value, size_t alignment)
        -:        -:  641:{
        -:        -:  642:   if (value % alignment)
        -:        -:  643:      return value + (alignment - (value % alignment));
        -:        -:  644:   return value;
        -:        -:  645:}
        -:        -:  646:
        -:        -:  647:static inline unsigned
        -:        -:  648:u_minify(unsigned value, unsigned levels)
        -:        -:  649:{
        -:        -:  650:    return MAX2(1, value >> levels);
        -:        -:  651:}
        -:        -:  652:
        -:        -:  653:#ifndef COPY_4V
        -:        -:  654:#define COPY_4V( DST, SRC )         \
        -:        -:  655:do {                                \
        -:        -:  656:   (DST)[0] = (SRC)[0];             \
        -:        -:  657:   (DST)[1] = (SRC)[1];             \
        -:        -:  658:   (DST)[2] = (SRC)[2];             \
        -:        -:  659:   (DST)[3] = (SRC)[3];             \
        -:        -:  660:} while (0)
        -:        -:  661:#endif
        -:        -:  662:
        -:        -:  663:
        -:        -:  664:#ifndef COPY_4FV
        -:        -:  665:#define COPY_4FV( DST, SRC )  COPY_4V(DST, SRC)
        -:        -:  666:#endif
        -:        -:  667:
        -:        -:  668:
        -:        -:  669:#ifndef ASSIGN_4V
        -:        -:  670:#define ASSIGN_4V( DST, V0, V1, V2, V3 ) \
        -:        -:  671:do {                                     \
        -:        -:  672:   (DST)[0] = (V0);                      \
        -:        -:  673:   (DST)[1] = (V1);                      \
        -:        -:  674:   (DST)[2] = (V2);                      \
        -:        -:  675:   (DST)[3] = (V3);                      \
        -:        -:  676:} while (0)
        -:        -:  677:#endif
        -:        -:  678:
        -:        -:  679:
        -:        -:  680:static inline uint32_t
        -:        -:  681:util_unsigned_fixed(float value, unsigned frac_bits)
        -:        -:  682:{
        -:        -:  683:   return value < 0 ? 0 : (uint32_t)(value * (1<<frac_bits));
        -:        -:  684:}
        -:        -:  685:
        -:        -:  686:static inline int32_t
        -:        -:  687:util_signed_fixed(float value, unsigned frac_bits)
        -:        -:  688:{
        -:        -:  689:   return (int32_t)(value * (1<<frac_bits));
        -:        -:  690:}
        -:        -:  691:
        -:        -:  692:unsigned
        -:        -:  693:util_fpstate_get(void);
        -:        -:  694:unsigned
        -:        -:  695:util_fpstate_set_denorms_to_zero(unsigned current_fpstate);
        -:        -:  696:void
        -:        -:  697:util_fpstate_set(unsigned fpstate);
        -:        -:  698:
        -:        -:  699:
        -:        -:  700:
        -:        -:  701:#ifdef __cplusplus
        -:        -:  702:}
        -:        -:  703:#endif
        -:        -:  704:
        -:        -:  705:#endif /* U_MATH_H */

src/hash_table.h.gcov

        -:        -:    0:Source:util/hash_table.h
        -:        -:    0:Graph:mesa/program/.libs/symbol_table.gcno
        -:        -:    0:Data:mesa/program/.libs/symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009,2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef _HASH_TABLE_H
        -:        -:   29:#define _HASH_TABLE_H
        -:        -:   30:
        -:        -:   31:#include <stdlib.h>
        -:        -:   32:#include <inttypes.h>
        -:        -:   33:#include <stdbool.h>
        -:        -:   34:#include "c99_compat.h"
        -:        -:   35:#include "macros.h"
        -:        -:   36:
        -:        -:   37:#ifdef __cplusplus
        -:        -:   38:extern "C" {
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:struct hash_entry {
        -:        -:   42:   uint32_t hash;
        -:        -:   43:   const void *key;
        -:        -:   44:   void *data;
        -:        -:   45:};
        -:        -:   46:
        -:        -:   47:struct hash_table {
        -:        -:   48:   struct hash_entry *table;
        -:        -:   49:   uint32_t (*key_hash_function)(const void *key);
        -:        -:   50:   bool (*key_equals_function)(const void *a, const void *b);
        -:        -:   51:   const void *deleted_key;
        -:        -:   52:   uint32_t size;
        -:        -:   53:   uint32_t rehash;
        -:        -:   54:   uint32_t max_entries;
        -:        -:   55:   uint32_t size_index;
        -:        -:   56:   uint32_t entries;
        -:        -:   57:   uint32_t deleted_entries;
        -:        -:   58:};
        -:        -:   59:
        -:        -:   60:struct hash_table *
        -:        -:   61:_mesa_hash_table_create(void *mem_ctx,
        -:        -:   62:                        uint32_t (*key_hash_function)(const void *key),
        -:        -:   63:                        bool (*key_equals_function)(const void *a,
        -:        -:   64:                                                    const void *b));
        -:        -:   65:void _mesa_hash_table_destroy(struct hash_table *ht,
        -:        -:   66:                              void (*delete_function)(struct hash_entry *entry));
        -:        -:   67:void _mesa_hash_table_clear(struct hash_table *ht,
        -:        -:   68:                            void (*delete_function)(struct hash_entry *entry));
        -:        -:   69:void _mesa_hash_table_set_deleted_key(struct hash_table *ht,
        -:        -:   70:                                      const void *deleted_key);
        -:        -:   71:
        -:        -:   72:static inline uint32_t _mesa_hash_table_num_entries(struct hash_table *ht)
        -:        -:   73:{
        -:        -:   74:   return ht->entries;
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:struct hash_entry *
        -:        -:   78:_mesa_hash_table_insert(struct hash_table *ht, const void *key, void *data);
        -:        -:   79:struct hash_entry *
        -:        -:   80:_mesa_hash_table_insert_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   81:                                   const void *key, void *data);
        -:        -:   82:struct hash_entry *
        -:        -:   83:_mesa_hash_table_search(struct hash_table *ht, const void *key);
        -:        -:   84:struct hash_entry *
        -:        -:   85:_mesa_hash_table_search_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   86:                                  const void *key);
        -:        -:   87:void _mesa_hash_table_remove(struct hash_table *ht,
        -:        -:   88:                             struct hash_entry *entry);
        -:        -:   89:
        -:        -:   90:struct hash_entry *_mesa_hash_table_next_entry(struct hash_table *ht,
        -:        -:   91:                                               struct hash_entry *entry);
        -:        -:   92:struct hash_entry *
        -:        -:   93:_mesa_hash_table_random_entry(struct hash_table *ht,
        -:        -:   94:                              bool (*predicate)(struct hash_entry *entry));
        -:        -:   95:
        -:        -:   96:uint32_t _mesa_hash_data(const void *data, size_t size);
        -:        -:   97:uint32_t _mesa_hash_string(const char *key);
        -:        -:   98:bool _mesa_key_string_equal(const void *a, const void *b);
        -:        -:   99:bool _mesa_key_pointer_equal(const void *a, const void *b);
        -:        -:  100:
     4099:     4103:  101:static inline uint32_t _mesa_key_hash_string(const void *key)
        -:        -:  102:{
     4099:     4103:  103:   return _mesa_hash_string((const char *)key);
        -:        -:  104:}
        -:        -:  105:
        -:        -:  106:static inline uint32_t _mesa_hash_pointer(const void *pointer)
        -:        -:  107:{
        -:        -:  108:   return _mesa_hash_data(&pointer, sizeof(pointer));
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:enum {
        -:        -:  112:   _mesa_fnv32_1a_offset_bias = 2166136261u,
        -:        -:  113:};
        -:        -:  114:
        -:        -:  115:static inline uint32_t
        -:        -:  116:_mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size)
        -:        -:  117:{
        -:        -:  118:   const uint8_t *bytes = (const uint8_t *)data;
        -:        -:  119:
        -:        -:  120:   while (size-- != 0) {
        -:        -:  121:      hash ^= *bytes;
        -:        -:  122:      hash = hash * 0x01000193;
        -:        -:  123:      bytes++;
        -:        -:  124:   }
        -:        -:  125:
        -:        -:  126:   return hash;
        -:        -:  127:}
        -:        -:  128:
        -:        -:  129:#define _mesa_fnv32_1a_accumulate(hash, expr) \
        -:        -:  130:   _mesa_fnv32_1a_accumulate_block(hash, &(expr), sizeof(expr))
        -:        -:  131:
        -:        -:  132:/**
        -:        -:  133: * This foreach function is safe against deletion (which just replaces
        -:        -:  134: * an entry's data with the deleted marker), but not against insertion
        -:        -:  135: * (which may rehash the table, making entry a dangling pointer).
        -:        -:  136: */
        -:        -:  137:#define hash_table_foreach(ht, entry)                   \
        -:        -:  138:   for (entry = _mesa_hash_table_next_entry(ht, NULL);  \
        -:        -:  139:        entry != NULL;                                  \
        -:        -:  140:        entry = _mesa_hash_table_next_entry(ht, entry))
        -:        -:  141:
        -:        -:  142:static inline void
        -:        -:  143:hash_table_call_foreach(struct hash_table *ht,
        -:        -:  144:                        void (*callback)(const void *key,
        -:        -:  145:                                         void *data,
        -:        -:  146:                                         void *closure),
        -:        -:  147:                        void *closure)
        -:        -:  148:{
        -:        -:  149:   struct hash_entry *entry;
        -:        -:  150:
        -:        -:  151:   hash_table_foreach(ht, entry)
        -:        -:  152:      callback(entry->key, entry->data, closure);
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:#ifdef __cplusplus
        -:        -:  156:} /* extern C */
        -:        -:  157:#endif
        -:        -:  158:
        -:        -:  159:#endif /* _HASH_TABLE_H */

src/intel/brw_cfg.cpp.gcov

        -:        -:    0:Source:compiler/brw_cfg.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_cfg.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_cfg.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "brw_cfg.h"
        -:        -:   29:
        -:        -:   30:/** @file brw_cfg.cpp
        -:        -:   31: *
        -:        -:   32: * Walks the shader instructions generated and creates a set of basic
        -:        -:   33: * blocks with successor/predecessor edges connecting them.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:static bblock_t *
       44:       68:   37:pop_stack(exec_list *list)
        -:        -:   38:{
       44:       68:   39:   bblock_link *link = (bblock_link *)list->get_tail();
       44:       68:   40:   bblock_t *block = link->block;
       44:       68:   41:   link->link.remove();
        -:        -:   42:
       44:       68:   43:   return block;
        -:        -:   44:}
        -:        -:   45:
        -:        -:   46:static exec_node *
      184:      408:   47:link(void *mem_ctx, bblock_t *block)
        -:        -:   48:{
      184:      408:   49:   bblock_link *l = new(mem_ctx) bblock_link(block);
      184:      408:   50:   return &l->link;
        -:        -:   51:}
        -:        -:   52:
       60:       92:   53:bblock_t::bblock_t(cfg_t *cfg) :
       60:       92:   54:   cfg(cfg), idom(NULL), start_ip(0), end_ip(0), num(0), cycle_count(0)
        -:        -:   55:{
       60:       92:   56:   instructions.make_empty();
       60:       92:   57:   parents.make_empty();
       60:       92:   58:   children.make_empty();
       60:       92:   59:}
        -:        -:   60:
        -:        -:   61:void
       70:      142:   62:bblock_t::add_successor(void *mem_ctx, bblock_t *successor)
        -:        -:   63:{
       70:      142:   64:   successor->parents.push_tail(::link(mem_ctx, this));
       70:      142:   65:   children.push_tail(::link(mem_ctx, successor));
       70:      142:   66:}
        -:        -:   67:
        -:        -:   68:bool
    #####:       56:   69:bblock_t::is_predecessor_of(const bblock_t *block) const
        -:        -:   70:{
    #####:       88:   71:   foreach_list_typed_safe (bblock_link, parent, link, &block->parents) {
    #####:       60:   72:      if (parent->block == this) {
    #####:       28:   73:         return true;
        -:        -:   74:      }
        -:        -:   75:   }
        -:        -:   76:
    #####:       28:   77:   return false;
        -:        -:   78:}
        -:        -:   79:
        -:        -:   80:bool
    #####:       56:   81:bblock_t::is_successor_of(const bblock_t *block) const
        -:        -:   82:{
    #####:       80:   83:   foreach_list_typed_safe (bblock_link, child, link, &block->children) {
    #####:       52:   84:      if (child->block == this) {
    #####:       28:   85:         return true;
        -:        -:   86:      }
        -:        -:   87:   }
        -:        -:   88:
    #####:       28:   89:   return false;
        -:        -:   90:}
        -:        -:   91:
        -:        -:   92:static bool
    #####:       32:   93:ends_block(const backend_instruction *inst)
        -:        -:   94:{
    #####:       32:   95:   enum opcode op = inst->opcode;
        -:        -:   96:
    #####:       32:   97:   return op == BRW_OPCODE_IF ||
    #####:       32:   98:          op == BRW_OPCODE_ELSE ||
    #####:       32:   99:          op == BRW_OPCODE_CONTINUE ||
    #####:       64:  100:          op == BRW_OPCODE_BREAK ||
    #####:       32:  101:          op == BRW_OPCODE_WHILE;
        -:        -:  102:}
        -:        -:  103:
        -:        -:  104:static bool
    #####:       32:  105:starts_block(const backend_instruction *inst)
        -:        -:  106:{
    #####:       32:  107:   enum opcode op = inst->opcode;
        -:        -:  108:
    #####:       32:  109:   return op == BRW_OPCODE_DO ||
    #####:       32:  110:          op == BRW_OPCODE_ENDIF;
        -:        -:  111:}
        -:        -:  112:
        -:        -:  113:bool
    #####:       32:  114:bblock_t::can_combine_with(const bblock_t *that) const
        -:        -:  115:{
    #####:       32:  116:   if ((const bblock_t *)this->link.next != that)
    #####:    #####:  117:      return false;
        -:        -:  118:
    #####:       64:  119:   if (ends_block(this->end()) ||
    #####:       32:  120:       starts_block(that->start()))
    #####:    #####:  121:      return false;
        -:        -:  122:
    #####:       32:  123:   return true;
        -:        -:  124:}
        -:        -:  125:
        -:        -:  126:void
    #####:       16:  127:bblock_t::combine_with(bblock_t *that)
        -:        -:  128:{
    #####:       16:  129:   assert(this->can_combine_with(that));
    #####:       32:  130:   foreach_list_typed (bblock_link, link, link, &this->children) {
    #####:       16:  131:      assert(link->block == that);
        -:        -:  132:   }
    #####:       48:  133:   foreach_list_typed (bblock_link, link, link, &that->parents) {
    #####:       32:  134:      assert(link->block == this);
        -:        -:  135:   }
        -:        -:  136:
    #####:       16:  137:   this->end_ip = that->end_ip;
    #####:       16:  138:   this->instructions.append_list(&that->instructions);
        -:        -:  139:
    #####:       16:  140:   this->cfg->remove_block(that);
    #####:       16:  141:}
        -:        -:  142:
        -:        -:  143:void
    #####:    #####:  144:bblock_t::dump(backend_shader *s) const
        -:        -:  145:{
    #####:    #####:  146:   int ip = this->start_ip;
    #####:    #####:  147:   foreach_inst_in_block(backend_instruction, inst, this) {
    #####:    #####:  148:      fprintf(stderr, "%5d: ", ip);
    #####:    #####:  149:      s->dump_instruction(inst);
    #####:    #####:  150:      ip++;
        -:        -:  151:   }
    #####:    #####:  152:}
        -:        -:  153:
        8:        8:  154:cfg_t::cfg_t(exec_list *instructions)
        -:        -:  155:{
        8:        8:  156:   mem_ctx = ralloc_context(NULL);
        8:        8:  157:   block_list.make_empty();
        8:        8:  158:   blocks = NULL;
        8:        8:  159:   num_blocks = 0;
        8:        8:  160:   idom_dirty = true;
        8:        8:  161:   cycle_count = 0;
        -:        -:  162:
        8:        8:  163:   bblock_t *cur = NULL;
        8:        8:  164:   int ip = 0;
        -:        -:  165:
        8:        8:  166:   bblock_t *entry = new_block();
        8:        8:  167:   bblock_t *cur_if = NULL;    /**< BB ending with IF. */
        8:        8:  168:   bblock_t *cur_else = NULL;  /**< BB ending with ELSE. */
        8:        8:  169:   bblock_t *cur_endif = NULL; /**< BB starting with ENDIF. */
        8:        8:  170:   bblock_t *cur_do = NULL;    /**< BB starting with DO. */
        8:        8:  171:   bblock_t *cur_while = NULL; /**< BB immediately following WHILE. */
        8:        8:  172:   exec_list if_stack, else_stack, do_stack, while_stack;
        -:        -:  173:   bblock_t *next;
        -:        -:  174:
        8:        8:  175:   set_next_block(&cur, entry, ip);
        -:        -:  176:
      377:      429:  177:   foreach_in_list_safe(backend_instruction, inst, instructions) {
        -:        -:  178:      /* set_next_block wants the post-incremented ip */
      369:      421:  179:      ip++;
        -:        -:  180:
      369:      421:  181:      inst->exec_node::remove();
        -:        -:  182:
      369:      421:  183:      switch (inst->opcode) {
        -:        -:  184:      case BRW_OPCODE_IF:
       18:       26:  185:         cur->instructions.push_tail(inst);
        -:        -:  186:
        -:        -:  187:	 /* Push our information onto a stack so we can recover from
        -:        -:  188:	  * nested ifs.
        -:        -:  189:	  */
       18:       26:  190:	 if_stack.push_tail(link(mem_ctx, cur_if));
       18:       26:  191:	 else_stack.push_tail(link(mem_ctx, cur_else));
        -:        -:  192:
       18:       26:  193:	 cur_if = cur;
       18:       26:  194:	 cur_else = NULL;
       18:       26:  195:         cur_endif = NULL;
        -:        -:  196:
        -:        -:  197:	 /* Set up our immediately following block, full of "then"
        -:        -:  198:	  * instructions.
        -:        -:  199:	  */
       18:       26:  200:	 next = new_block();
       18:       26:  201:	 cur_if->add_successor(mem_ctx, next);
        -:        -:  202:
       18:       26:  203:	 set_next_block(&cur, next, ip);
       18:       26:  204:	 break;
        -:        -:  205:
        -:        -:  206:      case BRW_OPCODE_ELSE:
       18:       26:  207:         cur->instructions.push_tail(inst);
        -:        -:  208:
       18:       26:  209:         cur_else = cur;
        -:        -:  210:
       18:       26:  211:	 next = new_block();
       18:       26:  212:         assert(cur_if != NULL);
       18:       26:  213:	 cur_if->add_successor(mem_ctx, next);
        -:        -:  214:
       18:       26:  215:	 set_next_block(&cur, next, ip);
       18:       26:  216:	 break;
        -:        -:  217:
        -:        -:  218:      case BRW_OPCODE_ENDIF: {
       18:       26:  219:         if (cur->instructions.is_empty()) {
        -:        -:  220:            /* New block was just created; use it. */
       18:       26:  221:            cur_endif = cur;
        -:        -:  222:         } else {
    #####:    #####:  223:            cur_endif = new_block();
        -:        -:  224:
    #####:    #####:  225:            cur->add_successor(mem_ctx, cur_endif);
        -:        -:  226:
    #####:    #####:  227:            set_next_block(&cur, cur_endif, ip - 1);
        -:        -:  228:         }
        -:        -:  229:
       18:       26:  230:         cur->instructions.push_tail(inst);
        -:        -:  231:
       18:       26:  232:         if (cur_else) {
       18:       26:  233:            cur_else->add_successor(mem_ctx, cur_endif);
        -:        -:  234:         } else {
    #####:    #####:  235:            assert(cur_if != NULL);
    #####:    #####:  236:            cur_if->add_successor(mem_ctx, cur_endif);
        -:        -:  237:         }
        -:        -:  238:
       18:       26:  239:         assert(cur_if->end()->opcode == BRW_OPCODE_IF);
       18:       26:  240:         assert(!cur_else || cur_else->end()->opcode == BRW_OPCODE_ELSE);
        -:        -:  241:
        -:        -:  242:	 /* Pop the stack so we're in the previous if/else/endif */
       18:       26:  243:	 cur_if = pop_stack(&if_stack);
       18:       26:  244:	 cur_else = pop_stack(&else_stack);
       18:       26:  245:	 break;
        -:        -:  246:      }
        -:        -:  247:      case BRW_OPCODE_DO:
        -:        -:  248:	 /* Push our information onto a stack so we can recover from
        -:        -:  249:	  * nested loops.
        -:        -:  250:	  */
        4:        8:  251:	 do_stack.push_tail(link(mem_ctx, cur_do));
        4:        8:  252:	 while_stack.push_tail(link(mem_ctx, cur_while));
        -:        -:  253:
        -:        -:  254:	 /* Set up the block just after the while.  Don't know when exactly
        -:        -:  255:	  * it will start, yet.
        -:        -:  256:	  */
        4:        8:  257:	 cur_while = new_block();
        -:        -:  258:
        4:        8:  259:         if (cur->instructions.is_empty()) {
        -:        -:  260:            /* New block was just created; use it. */
    #####:    #####:  261:            cur_do = cur;
        -:        -:  262:         } else {
        4:        8:  263:            cur_do = new_block();
        -:        -:  264:
        4:        8:  265:            cur->add_successor(mem_ctx, cur_do);
        -:        -:  266:
        4:        8:  267:            set_next_block(&cur, cur_do, ip - 1);
        -:        -:  268:         }
        -:        -:  269:
        4:        8:  270:         cur->instructions.push_tail(inst);
        4:        8:  271:	 break;
        -:        -:  272:
        -:        -:  273:      case BRW_OPCODE_CONTINUE:
    #####:    #####:  274:         cur->instructions.push_tail(inst);
        -:        -:  275:
    #####:    #####:  276:         assert(cur_do != NULL);
    #####:    #####:  277:	 cur->add_successor(mem_ctx, cur_do);
        -:        -:  278:
    #####:    #####:  279:	 next = new_block();
    #####:    #####:  280:	 if (inst->predicate)
    #####:    #####:  281:	    cur->add_successor(mem_ctx, next);
        -:        -:  282:
    #####:    #####:  283:	 set_next_block(&cur, next, ip);
    #####:    #####:  284:	 break;
        -:        -:  285:
        -:        -:  286:      case BRW_OPCODE_BREAK:
        8:       16:  287:         cur->instructions.push_tail(inst);
        -:        -:  288:
        8:       16:  289:         assert(cur_while != NULL);
        8:       16:  290:	 cur->add_successor(mem_ctx, cur_while);
        -:        -:  291:
        8:       16:  292:	 next = new_block();
        8:       16:  293:	 if (inst->predicate)
    #####:    #####:  294:	    cur->add_successor(mem_ctx, next);
        -:        -:  295:
        8:       16:  296:	 set_next_block(&cur, next, ip);
        8:       16:  297:	 break;
        -:        -:  298:
        -:        -:  299:      case BRW_OPCODE_WHILE:
        4:        8:  300:         cur->instructions.push_tail(inst);
        -:        -:  301:
        4:        8:  302:         assert(cur_do != NULL && cur_while != NULL);
        4:        8:  303:	 cur->add_successor(mem_ctx, cur_do);
        -:        -:  304:
        4:        8:  305:         if (inst->predicate)
    #####:    #####:  306:            cur->add_successor(mem_ctx, cur_while);
        -:        -:  307:
        4:        8:  308:	 set_next_block(&cur, cur_while, ip);
        -:        -:  309:
        -:        -:  310:	 /* Pop the stack so we're in the previous loop */
        4:        8:  311:	 cur_do = pop_stack(&do_stack);
        4:        8:  312:	 cur_while = pop_stack(&while_stack);
        4:        8:  313:	 break;
        -:        -:  314:
        -:        -:  315:      default:
      299:      311:  316:         cur->instructions.push_tail(inst);
      299:      311:  317:	 break;
        -:        -:  318:      }
        -:        -:  319:   }
        -:        -:  320:
        8:        8:  321:   cur->end_ip = ip - 1;
        -:        -:  322:
        8:        8:  323:   make_block_array();
        8:        8:  324:}
        -:        -:  325:
       16:       16:  326:cfg_t::~cfg_t()
        -:        -:  327:{
        8:        8:  328:   ralloc_free(mem_ctx);
        8:        8:  329:}
        -:        -:  330:
        -:        -:  331:void
        8:       32:  332:cfg_t::remove_block(bblock_t *block)
        -:        -:  333:{
        8:       64:  334:   foreach_list_typed_safe (bblock_link, predecessor, link, &block->parents) {
        -:        -:  335:      /* Remove block from all of its predecessors' successor lists. */
    #####:       76:  336:      foreach_list_typed_safe (bblock_link, successor, link,
        -:        -:  337:                               &predecessor->block->children) {
    #####:       44:  338:         if (block == successor->block) {
    #####:       16:  339:            successor->link.remove();
    #####:       16:  340:            ralloc_free(successor);
        -:        -:  341:         }
        -:        -:  342:      }
        -:        -:  343:
        -:        -:  344:      /* Add removed-block's successors to its predecessors' successor lists. */
    #####:       88:  345:      foreach_list_typed (bblock_link, successor, link, &block->children) {
    #####:       56:  346:         if (!successor->block->is_successor_of(predecessor->block)) {
    #####:       28:  347:            predecessor->block->children.push_tail(link(mem_ctx,
    #####:       28:  348:                                                        successor->block));
        -:        -:  349:         }
        -:        -:  350:      }
        -:        -:  351:   }
        -:        -:  352:
       16:       76:  353:   foreach_list_typed_safe (bblock_link, successor, link, &block->children) {
        -:        -:  354:      /* Remove block from all of its childrens' parents lists. */
       24:      120:  355:      foreach_list_typed_safe (bblock_link, predecessor, link,
        -:        -:  356:                               &successor->block->parents) {
       16:       76:  357:         if (block == predecessor->block) {
        8:       44:  358:            predecessor->link.remove();
        8:       44:  359:            ralloc_free(predecessor);
        -:        -:  360:         }
        -:        -:  361:      }
        -:        -:  362:
        -:        -:  363:      /* Add removed-block's predecessors to its successors' predecessor lists. */
        8:      100:  364:      foreach_list_typed (bblock_link, predecessor, link, &block->parents) {
    #####:       56:  365:         if (!predecessor->block->is_predecessor_of(successor->block)) {
    #####:       28:  366:            successor->block->parents.push_tail(link(mem_ctx,
    #####:       28:  367:                                                     predecessor->block));
        -:        -:  368:         }
        -:        -:  369:      }
        -:        -:  370:   }
        -:        -:  371:
        8:       32:  372:   block->link.remove();
        -:        -:  373:
      132:      700:  374:   for (int b = block->num; b < this->num_blocks - 1; b++) {
      124:      668:  375:      this->blocks[b] = this->blocks[b + 1];
      124:      668:  376:      this->blocks[b]->num = b;
        -:        -:  377:   }
        -:        -:  378:
        8:       32:  379:   this->blocks[this->num_blocks - 1]->num = this->num_blocks - 2;
        8:       32:  380:   this->num_blocks--;
        8:       32:  381:   idom_dirty = true;
        8:       32:  382:}
        -:        -:  383:
        -:        -:  384:bblock_t *
       60:       92:  385:cfg_t::new_block()
        -:        -:  386:{
       60:       92:  387:   bblock_t *block = new(mem_ctx) bblock_t(this);
        -:        -:  388:
       60:       92:  389:   return block;
        -:        -:  390:}
        -:        -:  391:
        -:        -:  392:void
       60:       92:  393:cfg_t::set_next_block(bblock_t **cur, bblock_t *block, int ip)
        -:        -:  394:{
       60:       92:  395:   if (*cur) {
       52:       84:  396:      (*cur)->end_ip = ip - 1;
        -:        -:  397:   }
        -:        -:  398:
       60:       92:  399:   block->start_ip = ip;
       60:       92:  400:   block->num = num_blocks++;
       60:       92:  401:   block_list.push_tail(&block->link);
       60:       92:  402:   *cur = block;
       60:       92:  403:}
        -:        -:  404:
        -:        -:  405:void
        8:        8:  406:cfg_t::make_block_array()
        -:        -:  407:{
        8:        8:  408:   blocks = ralloc_array(mem_ctx, bblock_t *, num_blocks);
        -:        -:  409:
        8:        8:  410:   int i = 0;
       68:      100:  411:   foreach_block (block, this) {
       60:       92:  412:      blocks[i++] = block;
        -:        -:  413:   }
        8:        8:  414:   assert(i == num_blocks);
        8:        8:  415:}
        -:        -:  416:
        -:        -:  417:void
    #####:    #####:  418:cfg_t::dump(backend_shader *s)
        -:        -:  419:{
    #####:    #####:  420:   if (idom_dirty)
    #####:    #####:  421:      calculate_idom();
        -:        -:  422:
    #####:    #####:  423:   foreach_block (block, this) {
    #####:    #####:  424:      if (block->idom)
    #####:    #####:  425:         fprintf(stderr, "START B%d IDOM(B%d)", block->num, block->idom->num);
        -:        -:  426:      else
    #####:    #####:  427:         fprintf(stderr, "START B%d IDOM(none)", block->num);
        -:        -:  428:
    #####:    #####:  429:      foreach_list_typed(bblock_link, link, link, &block->parents) {
    #####:    #####:  430:         fprintf(stderr, " <-B%d",
    #####:    #####:  431:                 link->block->num);
        -:        -:  432:      }
    #####:    #####:  433:      fprintf(stderr, "\n");
    #####:    #####:  434:      if (s != NULL)
    #####:    #####:  435:         block->dump(s);
    #####:    #####:  436:      fprintf(stderr, "END B%d", block->num);
    #####:    #####:  437:      foreach_list_typed(bblock_link, link, link, &block->children) {
    #####:    #####:  438:         fprintf(stderr, " ->B%d",
    #####:    #####:  439:                 link->block->num);
        -:        -:  440:      }
    #####:    #####:  441:      fprintf(stderr, "\n");
        -:        -:  442:   }
    #####:    #####:  443:}
        -:        -:  444:
        -:        -:  445:/* Calculates the immediate dominator of each block, according to "A Simple,
        -:        -:  446: * Fast Dominance Algorithm" by Keith D. Cooper, Timothy J. Harvey, and Ken
        -:        -:  447: * Kennedy.
        -:        -:  448: *
        -:        -:  449: * The authors claim that for control flow graphs of sizes normally encountered
        -:        -:  450: * (less than 1000 nodes) that this algorithm is significantly faster than
        -:        -:  451: * others like Lengauer-Tarjan.
        -:        -:  452: */
        -:        -:  453:void
        5:        5:  454:cfg_t::calculate_idom()
        -:        -:  455:{
       54:       62:  456:   foreach_block(block, this) {
       49:       57:  457:      block->idom = NULL;
        -:        -:  458:   }
        5:        5:  459:   blocks[0]->idom = blocks[0];
        -:        -:  460:
        -:        -:  461:   bool changed;
        7:        7:  462:   do {
        7:        7:  463:      changed = false;
        -:        -:  464:
      102:      118:  465:      foreach_block(block, this) {
       95:      111:  466:         if (block->num == 0)
        7:        7:  467:            continue;
        -:        -:  468:
       88:      104:  469:         bblock_t *new_idom = NULL;
      212:      252:  470:         foreach_list_typed(bblock_link, parent, link, &block->parents) {
      124:      148:  471:            if (parent->block->idom) {
      120:      140:  472:               if (new_idom == NULL) {
       88:      104:  473:                  new_idom = parent->block;
       32:       36:  474:               } else if (parent->block->idom != NULL) {
       32:       36:  475:                  new_idom = intersect(parent->block, new_idom);
        -:        -:  476:               }
        -:        -:  477:            }
        -:        -:  478:         }
        -:        -:  479:
       88:      104:  480:         if (block->idom != new_idom) {
       44:       52:  481:            block->idom = new_idom;
       44:       52:  482:            changed = true;
        -:        -:  483:         }
        -:        -:  484:      }
        -:        -:  485:   } while (changed);
        -:        -:  486:
        5:        5:  487:   idom_dirty = false;
        5:        5:  488:}
        -:        -:  489:
        -:        -:  490:bblock_t *
       64:       72:  491:cfg_t::intersect(bblock_t *b1, bblock_t *b2)
        -:        -:  492:{
        -:        -:  493:   /* Note, the comparisons here are the opposite of what the paper says
        -:        -:  494:    * because we index blocks from beginning -> end (i.e. reverse post-order)
        -:        -:  495:    * instead of post-order like they assume.
        -:        -:  496:    */
       96:      108:  497:   while (b1->num != b2->num) {
      152:      228:  498:      while (b1->num > b2->num)
       60:       96:  499:         b1 = b1->idom;
       48:       36:  500:      while (b2->num > b1->num)
        8:    #####:  501:         b2 = b2->idom;
        -:        -:  502:   }
       32:       36:  503:   assert(b1);
       32:       36:  504:   return b1;
        -:        -:  505:}
        -:        -:  506:
        -:        -:  507:void
    #####:    #####:  508:cfg_t::dump_cfg()
        -:        -:  509:{
    #####:    #####:  510:   printf("digraph CFG {\n");
    #####:    #####:  511:   for (int b = 0; b < num_blocks; b++) {
    #####:    #####:  512:      bblock_t *block = this->blocks[b];
        -:        -:  513:
    #####:    #####:  514:      foreach_list_typed_safe (bblock_link, child, link, &block->children) {
    #####:    #####:  515:         printf("\t%d -> %d\n", b, child->block->num);
        -:        -:  516:      }
        -:        -:  517:   }
    #####:    #####:  518:   printf("}\n");
    #####:    #####:  519:}
        -:        -:  520:
        -:        -:  521:void
    #####:    #####:  522:cfg_t::dump_domtree()
        -:        -:  523:{
    #####:    #####:  524:   printf("digraph DominanceTree {\n");
    #####:    #####:  525:   foreach_block(block, this) {
    #####:    #####:  526:      if (block->idom) {
    #####:    #####:  527:         printf("\t%d -> %d\n", block->idom->num, block->num);
        -:        -:  528:      }
        -:        -:  529:   }
    #####:    #####:  530:   printf("}\n");
    #####:    #####:  531:}

src/intel/brw_dead_control_flow.cpp.gcov

        -:        -:    0:Source:compiler/brw_dead_control_flow.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_dead_control_flow.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_dead_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_dead_control_flow.cpp
        -:        -:   25: *
        -:        -:   26: * This file implements the dead control flow elimination optimization pass.
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:#include "brw_shader.h"
        -:        -:   30:#include "brw_cfg.h"
        -:        -:   31:
        -:        -:   32:/* Look for and eliminate dead control flow:
        -:        -:   33: *
        -:        -:   34: *   - if/endif
        -:        -:   35: *   - else in else/endif
        -:        -:   36: *   - then in if/else/endif
        -:        -:   37: */
        -:        -:   38:bool
       18:       20:   39:dead_control_flow_eliminate(backend_shader *s)
        -:        -:   40:{
       18:       20:   41:   bool progress = false;
        -:        -:   42:
      176:      280:   43:   foreach_block_safe (block, s->cfg) {
      158:      260:   44:      bblock_t *prev_block = block->prev();
        -:        -:   45:
      158:      260:   46:      if (!prev_block)
       18:       20:   47:         continue;
        -:        -:   48:
      140:      240:   49:      backend_instruction *const inst = block->start();
      140:      240:   50:      backend_instruction *const prev_inst = prev_block->end();
        -:        -:   51:
        -:        -:   52:      /* ENDIF instructions, by definition, can only be found at the start of
        -:        -:   53:       * basic blocks.
        -:        -:   54:       */
      194:      308:   55:      if (inst->opcode == BRW_OPCODE_ENDIF &&
       54:       68:   56:          prev_inst->opcode == BRW_OPCODE_ELSE) {
       18:       26:   57:         bblock_t *const else_block = prev_block;
       18:       26:   58:         backend_instruction *const else_inst = prev_inst;
        -:        -:   59:
       18:       26:   60:         else_inst->remove(else_block);
       18:       26:   61:         progress = true;
      158:      256:   62:      } else if (inst->opcode == BRW_OPCODE_ENDIF &&
       36:       42:   63:                 prev_inst->opcode == BRW_OPCODE_IF) {
    #####:    #####:   64:         bblock_t *const endif_block = block;
    #####:    #####:   65:         bblock_t *const if_block = prev_block;
    #####:    #####:   66:         backend_instruction *const endif_inst = inst;
    #####:    #####:   67:         backend_instruction *const if_inst = prev_inst;
        -:        -:   68:
    #####:    #####:   69:         bblock_t *earlier_block = NULL, *later_block = NULL;
        -:        -:   70:
    #####:    #####:   71:         if (if_block->start_ip == if_block->end_ip) {
    #####:    #####:   72:            earlier_block = if_block->prev();
        -:        -:   73:         } else {
    #####:    #####:   74:            earlier_block = if_block;
        -:        -:   75:         }
    #####:    #####:   76:         if_inst->remove(if_block);
        -:        -:   77:
    #####:    #####:   78:         if (endif_block->start_ip == endif_block->end_ip) {
    #####:    #####:   79:            later_block = endif_block->next();
        -:        -:   80:         } else {
    #####:    #####:   81:            later_block = endif_block;
        -:        -:   82:         }
    #####:    #####:   83:         endif_inst->remove(endif_block);
        -:        -:   84:
    #####:    #####:   85:         assert((earlier_block == NULL) == (later_block == NULL));
    #####:    #####:   86:         if (earlier_block && earlier_block->can_combine_with(later_block)) {
    #####:    #####:   87:            earlier_block->combine_with(later_block);
        -:        -:   88:
        -:        -:   89:            /* If ENDIF was in its own block, then we've now deleted it and
        -:        -:   90:             * merged the two surrounding blocks, the latter of which the
        -:        -:   91:             * __next block pointer was pointing to.
        -:        -:   92:             */
    #####:    #####:   93:            if (endif_block != later_block) {
    #####:    #####:   94:               __next = earlier_block->next();
        -:        -:   95:            }
        -:        -:   96:         }
        -:        -:   97:
    #####:    #####:   98:         progress = true;
      130:      230:   99:      } else if (inst->opcode == BRW_OPCODE_ELSE &&
        8:       16:  100:                 prev_inst->opcode == BRW_OPCODE_IF) {
    #####:    #####:  101:         bblock_t *const else_block = block;
    #####:    #####:  102:         backend_instruction *const if_inst = prev_inst;
    #####:    #####:  103:         backend_instruction *const else_inst = inst;
        -:        -:  104:
        -:        -:  105:         /* Since the else-branch is becoming the new then-branch, the
        -:        -:  106:          * condition has to be inverted.
        -:        -:  107:          */
    #####:    #####:  108:         if_inst->predicate_inverse = !if_inst->predicate_inverse;
    #####:    #####:  109:         else_inst->remove(else_block);
        -:        -:  110:
    #####:    #####:  111:         progress = true;
        -:        -:  112:      }
        -:        -:  113:   }
        -:        -:  114:
       18:       20:  115:   if (progress)
        2:        2:  116:      s->invalidate_live_intervals();
        -:        -:  117:
       18:       20:  118:   return progress;
        -:        -:  119:}

src/intel/brw_eu.c.gcov

        -:        -:    0:Source:compiler/brw_eu.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_eu.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_eu.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: Copyright (C) Intel Corp.  2006.  All Rights Reserved.
        -:        -:    3: Intel funded Tungsten Graphics to
        -:        -:    4: develop this 3D driver.
        -:        -:    5:
        -:        -:    6: Permission is hereby granted, free of charge, to any person obtaining
        -:        -:    7: a copy of this software and associated documentation files (the
        -:        -:    8: "Software"), to deal in the Software without restriction, including
        -:        -:    9: without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   10: distribute, sublicense, and/or sell copies of the Software, and to
        -:        -:   11: permit persons to whom the Software is furnished to do so, subject to
        -:        -:   12: the following conditions:
        -:        -:   13:
        -:        -:   14: The above copyright notice and this permission notice (including the
        -:        -:   15: next paragraph) shall be included in all copies or substantial
        -:        -:   16: portions of the Software.
        -:        -:   17:
        -:        -:   18: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        -:        -:   19: EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   20: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        -:        -:   21: IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
        -:        -:   22: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
        -:        -:   23: OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
        -:        -:   24: WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   25:
        -:        -:   26: **********************************************************************/
        -:        -:   27: /*
        -:        -:   28:  * Authors:
        -:        -:   29:  *   Keith Whitwell <keithw@vmware.com>
        -:        -:   30:  */
        -:        -:   31:
        -:        -:   32:
        -:        -:   33:#include "brw_eu_defines.h"
        -:        -:   34:#include "brw_eu.h"
        -:        -:   35:#include "brw_shader.h"
        -:        -:   36:#include "common/gen_debug.h"
        -:        -:   37:
        -:        -:   38:#include "util/ralloc.h"
        -:        -:   39:
        -:        -:   40:/**
        -:        -:   41: * Converts a BRW_REGISTER_TYPE_* enum to a short string (F, UD, and so on).
        -:        -:   42: *
        -:        -:   43: * This is different than reg_encoding from brw_disasm.c in that it operates
        -:        -:   44: * on the abstract enum values, rather than the generation-specific encoding.
        -:        -:   45: */
        -:        -:   46:const char *
    #####:    #####:   47:brw_reg_type_letters(unsigned type)
        -:        -:   48:{
    #####:    #####:   49:   const char *names[] = {
        -:        -:   50:      [BRW_REGISTER_TYPE_UD] = "UD",
        -:        -:   51:      [BRW_REGISTER_TYPE_D]  = "D",
        -:        -:   52:      [BRW_REGISTER_TYPE_UW] = "UW",
        -:        -:   53:      [BRW_REGISTER_TYPE_W]  = "W",
        -:        -:   54:      [BRW_REGISTER_TYPE_F]  = "F",
        -:        -:   55:      [BRW_REGISTER_TYPE_UB] = "UB",
        -:        -:   56:      [BRW_REGISTER_TYPE_B]  = "B",
        -:        -:   57:      [BRW_REGISTER_TYPE_UV] = "UV",
        -:        -:   58:      [BRW_REGISTER_TYPE_V]  = "V",
        -:        -:   59:      [BRW_REGISTER_TYPE_VF] = "VF",
        -:        -:   60:      [BRW_REGISTER_TYPE_DF] = "DF",
        -:        -:   61:      [BRW_REGISTER_TYPE_HF] = "HF",
        -:        -:   62:      [BRW_REGISTER_TYPE_UQ] = "UQ",
        -:        -:   63:      [BRW_REGISTER_TYPE_Q]  = "Q",
        -:        -:   64:   };
    #####:    #####:   65:   assert(type <= BRW_REGISTER_TYPE_Q);
    #####:    #####:   66:   return names[type];
        -:        -:   67:}
        -:        -:   68:
        -:        -:   69:/* Returns a conditional modifier that negates the condition. */
        -:        -:   70:enum brw_conditional_mod
    #####:    #####:   71:brw_negate_cmod(uint32_t cmod)
        -:        -:   72:{
    #####:    #####:   73:   switch (cmod) {
        -:        -:   74:   case BRW_CONDITIONAL_Z:
    #####:    #####:   75:      return BRW_CONDITIONAL_NZ;
        -:        -:   76:   case BRW_CONDITIONAL_NZ:
    #####:    #####:   77:      return BRW_CONDITIONAL_Z;
        -:        -:   78:   case BRW_CONDITIONAL_G:
    #####:    #####:   79:      return BRW_CONDITIONAL_LE;
        -:        -:   80:   case BRW_CONDITIONAL_GE:
    #####:    #####:   81:      return BRW_CONDITIONAL_L;
        -:        -:   82:   case BRW_CONDITIONAL_L:
    #####:    #####:   83:      return BRW_CONDITIONAL_GE;
        -:        -:   84:   case BRW_CONDITIONAL_LE:
    #####:    #####:   85:      return BRW_CONDITIONAL_G;
        -:        -:   86:   default:
    #####:    #####:   87:      return ~0;
        -:        -:   88:   }
        -:        -:   89:}
        -:        -:   90:
        -:        -:   91:/* Returns the corresponding conditional mod for swapping src0 and
        -:        -:   92: * src1 in e.g. CMP.
        -:        -:   93: */
        -:        -:   94:enum brw_conditional_mod
    #####:    #####:   95:brw_swap_cmod(uint32_t cmod)
        -:        -:   96:{
    #####:    #####:   97:   switch (cmod) {
        -:        -:   98:   case BRW_CONDITIONAL_Z:
        -:        -:   99:   case BRW_CONDITIONAL_NZ:
    #####:    #####:  100:      return cmod;
        -:        -:  101:   case BRW_CONDITIONAL_G:
    #####:    #####:  102:      return BRW_CONDITIONAL_L;
        -:        -:  103:   case BRW_CONDITIONAL_GE:
    #####:    #####:  104:      return BRW_CONDITIONAL_LE;
        -:        -:  105:   case BRW_CONDITIONAL_L:
    #####:    #####:  106:      return BRW_CONDITIONAL_G;
        -:        -:  107:   case BRW_CONDITIONAL_LE:
    #####:    #####:  108:      return BRW_CONDITIONAL_GE;
        -:        -:  109:   default:
    #####:    #####:  110:      return BRW_CONDITIONAL_NONE;
        -:        -:  111:   }
        -:        -:  112:}
        -:        -:  113:
        -:        -:  114:/**
        -:        -:  115: * Get the least significant bit offset of the i+1-th component of immediate
        -:        -:  116: * type \p type.  For \p i equal to the two's complement of j, return the
        -:        -:  117: * offset of the j-th component starting from the end of the vector.  For
        -:        -:  118: * scalar register types return zero.
        -:        -:  119: */
        -:        -:  120:static unsigned
    #####:    #####:  121:imm_shift(enum brw_reg_type type, unsigned i)
        -:        -:  122:{
    #####:    #####:  123:   assert(type != BRW_REGISTER_TYPE_UV && type != BRW_REGISTER_TYPE_V &&
        -:        -:  124:          "Not implemented.");
        -:        -:  125:
    #####:    #####:  126:   if (type == BRW_REGISTER_TYPE_VF)
    #####:    #####:  127:      return 8 * (i & 3);
        -:        -:  128:   else
    #####:    #####:  129:      return 0;
        -:        -:  130:}
        -:        -:  131:
        -:        -:  132:/**
        -:        -:  133: * Swizzle an arbitrary immediate \p x of the given type according to the
        -:        -:  134: * permutation specified as \p swz.
        -:        -:  135: */
        -:        -:  136:uint32_t
    #####:    #####:  137:brw_swizzle_immediate(enum brw_reg_type type, uint32_t x, unsigned swz)
        -:        -:  138:{
    #####:    #####:  139:   if (imm_shift(type, 1)) {
    #####:    #####:  140:      const unsigned n = 32 / imm_shift(type, 1);
    #####:    #####:  141:      uint32_t y = 0;
        -:        -:  142:
    #####:    #####:  143:      for (unsigned i = 0; i < n; i++) {
        -:        -:  144:         /* Shift the specified component all the way to the right and left to
        -:        -:  145:          * discard any undesired L/MSBs, then shift it right into component i.
        -:        -:  146:          */
    #####:    #####:  147:         y |= x >> imm_shift(type, (i & ~3) + BRW_GET_SWZ(swz, i & 3))
    #####:    #####:  148:                << imm_shift(type, ~0u)
    #####:    #####:  149:                >> imm_shift(type, ~0u - i);
        -:        -:  150:      }
        -:        -:  151:
    #####:    #####:  152:      return y;
        -:        -:  153:   } else {
    #####:    #####:  154:      return x;
        -:        -:  155:   }
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:void
      221:      233:  159:brw_set_default_exec_size(struct brw_codegen *p, unsigned value)
        -:        -:  160:{
      221:      233:  161:   brw_inst_set_exec_size(p->devinfo, p->current, value);
      221:      233:  162:}
        -:        -:  163:
      219:      231:  164:void brw_set_default_predicate_control( struct brw_codegen *p, unsigned pc )
        -:        -:  165:{
      219:      231:  166:   brw_inst_set_pred_control(p->devinfo, p->current, pc);
      219:      231:  167:}
        -:        -:  168:
      214:      226:  169:void brw_set_default_predicate_inverse(struct brw_codegen *p, bool predicate_inverse)
        -:        -:  170:{
      214:      226:  171:   brw_inst_set_pred_inv(p->devinfo, p->current, predicate_inverse);
      214:      226:  172:}
        -:        -:  173:
      214:      226:  174:void brw_set_default_flag_reg(struct brw_codegen *p, int reg, int subreg)
        -:        -:  175:{
      214:      226:  176:   if (p->devinfo->gen >= 7)
    #####:    #####:  177:      brw_inst_set_flag_reg_nr(p->devinfo, p->current, reg);
        -:        -:  178:
      214:      226:  179:   brw_inst_set_flag_subreg_nr(p->devinfo, p->current, subreg);
      214:      226:  180:}
        -:        -:  181:
      223:      235:  182:void brw_set_default_access_mode( struct brw_codegen *p, unsigned access_mode )
        -:        -:  183:{
      223:      235:  184:   brw_inst_set_access_mode(p->devinfo, p->current, access_mode);
      223:      235:  185:}
        -:        -:  186:
        -:        -:  187:void
        7:        7:  188:brw_set_default_compression_control(struct brw_codegen *p,
        -:        -:  189:			    enum brw_compression compression_control)
        -:        -:  190:{
        7:        7:  191:   if (p->devinfo->gen >= 6) {
        -:        -:  192:      /* Since we don't use the SIMD32 support in gen6, we translate
        -:        -:  193:       * the pre-gen6 compression control here.
        -:        -:  194:       */
        7:        7:  195:      switch (compression_control) {
        -:        -:  196:      case BRW_COMPRESSION_NONE:
        -:        -:  197:	 /* This is the "use the first set of bits of dmask/vmask/arf
        -:        -:  198:	  * according to execsize" option.
        -:        -:  199:	  */
        7:        7:  200:         brw_inst_set_qtr_control(p->devinfo, p->current, GEN6_COMPRESSION_1Q);
        7:        7:  201:	 break;
        -:        -:  202:      case BRW_COMPRESSION_2NDHALF:
        -:        -:  203:	 /* For SIMD8, this is "use the second set of 8 bits." */
    #####:    #####:  204:         brw_inst_set_qtr_control(p->devinfo, p->current, GEN6_COMPRESSION_2Q);
    #####:    #####:  205:	 break;
        -:        -:  206:      case BRW_COMPRESSION_COMPRESSED:
        -:        -:  207:	 /* For SIMD16 instruction compression, use the first set of 16 bits
        -:        -:  208:	  * since we don't do SIMD32 dispatch.
        -:        -:  209:	  */
    #####:    #####:  210:         brw_inst_set_qtr_control(p->devinfo, p->current, GEN6_COMPRESSION_1H);
    #####:    #####:  211:	 break;
        -:        -:  212:      default:
    #####:    #####:  213:         unreachable("not reached");
        -:        -:  214:      }
        -:        -:  215:   } else {
    #####:    #####:  216:      brw_inst_set_qtr_control(p->devinfo, p->current, compression_control);
        -:        -:  217:   }
        7:        7:  218:}
        -:        -:  219:
        -:        -:  220:/**
        -:        -:  221: * Enable or disable instruction compression on the given instruction leaving
        -:        -:  222: * the currently selected channel enable group untouched.
        -:        -:  223: */
        -:        -:  224:void
      208:      220:  225:brw_inst_set_compression(const struct gen_device_info *devinfo,
        -:        -:  226:                         brw_inst *inst, bool on)
        -:        -:  227:{
      208:      220:  228:   if (devinfo->gen >= 6) {
        -:        -:  229:      /* No-op, the EU will figure out for us whether the instruction needs to
        -:        -:  230:       * be compressed.
        -:        -:  231:       */
        -:        -:  232:   } else {
        -:        -:  233:      /* The channel group and compression controls are non-orthogonal, there
        -:        -:  234:       * are two possible representations for uncompressed instructions and we
        -:        -:  235:       * may need to preserve the current one to avoid changing the selected
        -:        -:  236:       * channel group inadvertently.
        -:        -:  237:       */
    #####:    #####:  238:      if (on)
    #####:    #####:  239:         brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_COMPRESSED);
    #####:    #####:  240:      else if (brw_inst_qtr_control(devinfo, inst)
        -:        -:  241:               == BRW_COMPRESSION_COMPRESSED)
    #####:    #####:  242:         brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_NONE);
        -:        -:  243:   }
      208:      220:  244:}
        -:        -:  245:
        -:        -:  246:void
      203:      215:  247:brw_set_default_compression(struct brw_codegen *p, bool on)
        -:        -:  248:{
      203:      215:  249:   brw_inst_set_compression(p->devinfo, p->current, on);
      203:      215:  250:}
        -:        -:  251:
        -:        -:  252:/**
        -:        -:  253: * Apply the range of channel enable signals given by
        -:        -:  254: * [group, group + exec_size) to the instruction passed as argument.
        -:        -:  255: */
        -:        -:  256:void
      214:      226:  257:brw_inst_set_group(const struct gen_device_info *devinfo,
        -:        -:  258:                   brw_inst *inst, unsigned group)
        -:        -:  259:{
      214:      226:  260:   if (devinfo->gen >= 7) {
    #####:    #####:  261:      assert(group % 4 == 0 && group < 32);
    #####:    #####:  262:      brw_inst_set_qtr_control(devinfo, inst, group / 8);
    #####:    #####:  263:      brw_inst_set_nib_control(devinfo, inst, (group / 4) % 2);
        -:        -:  264:
      214:      226:  265:   } else if (devinfo->gen == 6) {
      214:      226:  266:      assert(group % 8 == 0 && group < 32);
      214:      226:  267:      brw_inst_set_qtr_control(devinfo, inst, group / 8);
        -:        -:  268:
        -:        -:  269:   } else {
    #####:    #####:  270:      assert(group % 8 == 0 && group < 16);
        -:        -:  271:      /* The channel group and compression controls are non-orthogonal, there
        -:        -:  272:       * are two possible representations for group zero and we may need to
        -:        -:  273:       * preserve the current one to avoid changing the selected compression
        -:        -:  274:       * enable inadvertently.
        -:        -:  275:       */
    #####:    #####:  276:      if (group == 8)
    #####:    #####:  277:         brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_2NDHALF);
    #####:    #####:  278:      else if (brw_inst_qtr_control(devinfo, inst) == BRW_COMPRESSION_2NDHALF)
    #####:    #####:  279:         brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_NONE);
        -:        -:  280:   }
      214:      226:  281:}
        -:        -:  282:
        -:        -:  283:void
      214:      226:  284:brw_set_default_group(struct brw_codegen *p, unsigned group)
        -:        -:  285:{
      214:      226:  286:   brw_inst_set_group(p->devinfo, p->current, group);
      214:      226:  287:}
        -:        -:  288:
      221:      233:  289:void brw_set_default_mask_control( struct brw_codegen *p, unsigned value )
        -:        -:  290:{
      221:      233:  291:   brw_inst_set_mask_control(p->devinfo, p->current, value);
      221:      233:  292:}
        -:        -:  293:
      219:      231:  294:void brw_set_default_saturate( struct brw_codegen *p, bool enable )
        -:        -:  295:{
      219:      231:  296:   brw_inst_set_saturate(p->devinfo, p->current, enable);
      219:      231:  297:}
        -:        -:  298:
      214:      226:  299:void brw_set_default_acc_write_control(struct brw_codegen *p, unsigned value)
        -:        -:  300:{
      214:      226:  301:   if (p->devinfo->gen >= 6)
      214:      226:  302:      brw_inst_set_acc_wr_control(p->devinfo, p->current, value);
      214:      226:  303:}
        -:        -:  304:
        2:        2:  305:void brw_push_insn_state( struct brw_codegen *p )
        -:        -:  306:{
        2:        2:  307:   assert(p->current != &p->stack[BRW_EU_MAX_INSN_STACK-1]);
        2:        2:  308:   memcpy(p->current + 1, p->current, sizeof(brw_inst));
        2:        2:  309:   p->current++;
        2:        2:  310:}
        -:        -:  311:
        2:        2:  312:void brw_pop_insn_state( struct brw_codegen *p )
        -:        -:  313:{
        2:        2:  314:   assert(p->current != p->stack);
        2:        2:  315:   p->current--;
        2:        2:  316:}
        -:        -:  317:
        -:        -:  318:
        -:        -:  319:/***********************************************************************
        -:        -:  320: */
        -:        -:  321:void
        5:        5:  322:brw_init_codegen(const struct gen_device_info *devinfo,
        -:        -:  323:                 struct brw_codegen *p, void *mem_ctx)
        -:        -:  324:{
        5:        5:  325:   memset(p, 0, sizeof(*p));
        -:        -:  326:
        5:        5:  327:   p->devinfo = devinfo;
        -:        -:  328:   /*
        -:        -:  329:    * Set the initial instruction store array size to 1024, if found that
        -:        -:  330:    * isn't enough, then it will double the store size at brw_next_insn()
        -:        -:  331:    * until out of memory.
        -:        -:  332:    */
        5:        5:  333:   p->store_size = 1024;
        5:        5:  334:   p->store = rzalloc_array(mem_ctx, brw_inst, p->store_size);
        5:        5:  335:   p->nr_insn = 0;
        5:        5:  336:   p->current = p->stack;
        5:        5:  337:   memset(p->current, 0, sizeof(p->current[0]));
        -:        -:  338:
        5:        5:  339:   p->mem_ctx = mem_ctx;
        -:        -:  340:
        -:        -:  341:   /* Some defaults?
        -:        -:  342:    */
        5:        5:  343:   brw_set_default_exec_size(p, BRW_EXECUTE_8);
        5:        5:  344:   brw_set_default_mask_control(p, BRW_MASK_ENABLE); /* what does this do? */
        5:        5:  345:   brw_set_default_saturate(p, 0);
        5:        5:  346:   brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
        -:        -:  347:
        -:        -:  348:   /* Set up control flow stack */
        5:        5:  349:   p->if_stack_depth = 0;
        5:        5:  350:   p->if_stack_array_size = 16;
        5:        5:  351:   p->if_stack = rzalloc_array(mem_ctx, int, p->if_stack_array_size);
        -:        -:  352:
        5:        5:  353:   p->loop_stack_depth = 0;
        5:        5:  354:   p->loop_stack_array_size = 16;
        5:        5:  355:   p->loop_stack = rzalloc_array(mem_ctx, int, p->loop_stack_array_size);
        5:        5:  356:   p->if_depth_in_loop = rzalloc_array(mem_ctx, int, p->loop_stack_array_size);
        5:        5:  357:}
        -:        -:  358:
        -:        -:  359:
        5:        5:  360:const unsigned *brw_get_program( struct brw_codegen *p,
        -:        -:  361:			       unsigned *sz )
        -:        -:  362:{
        5:        5:  363:   *sz = p->next_insn_offset;
        5:        5:  364:   return (const unsigned *)p->store;
        -:        -:  365:}
        -:        -:  366:
        -:        -:  367:void
    #####:    #####:  368:brw_disassemble(const struct gen_device_info *devinfo,
        -:        -:  369:                void *assembly, int start, int end, FILE *out)
        -:        -:  370:{
    #####:    #####:  371:   bool dump_hex = (INTEL_DEBUG & DEBUG_HEX) != 0;
        -:        -:  372:
    #####:    #####:  373:   for (int offset = start; offset < end;) {
    #####:    #####:  374:      brw_inst *insn = assembly + offset;
        -:        -:  375:      brw_inst uncompacted;
    #####:    #####:  376:      bool compacted = brw_inst_cmpt_control(devinfo, insn);
        -:        -:  377:      if (0)
        -:        -:  378:         fprintf(out, "0x%08x: ", offset);
        -:        -:  379:
    #####:    #####:  380:      if (compacted) {
    #####:    #####:  381:         brw_compact_inst *compacted = (void *)insn;
    #####:    #####:  382:	 if (dump_hex) {
    #####:    #####:  383:	    fprintf(out, "0x%08x 0x%08x                       ",
    #####:    #####:  384:		    ((uint32_t *)insn)[1],
        -:        -:  385:		    ((uint32_t *)insn)[0]);
        -:        -:  386:	 }
        -:        -:  387:
    #####:    #####:  388:	 brw_uncompact_instruction(devinfo, &uncompacted, compacted);
    #####:    #####:  389:	 insn = &uncompacted;
    #####:    #####:  390:	 offset += 8;
        -:        -:  391:      } else {
    #####:    #####:  392:	 if (dump_hex) {
    #####:    #####:  393:	    fprintf(out, "0x%08x 0x%08x 0x%08x 0x%08x ",
    #####:    #####:  394:		    ((uint32_t *)insn)[3],
    #####:    #####:  395:		    ((uint32_t *)insn)[2],
    #####:    #####:  396:		    ((uint32_t *)insn)[1],
        -:        -:  397:		    ((uint32_t *)insn)[0]);
        -:        -:  398:	 }
    #####:    #####:  399:	 offset += 16;
        -:        -:  400:      }
        -:        -:  401:
    #####:    #####:  402:      brw_disassemble_inst(out, devinfo, insn, compacted);
        -:        -:  403:   }
    #####:    #####:  404:}
        -:        -:  405:
        -:        -:  406:enum gen {
        -:        -:  407:   GEN4  = (1 << 0),
        -:        -:  408:   GEN45 = (1 << 1),
        -:        -:  409:   GEN5  = (1 << 2),
        -:        -:  410:   GEN6  = (1 << 3),
        -:        -:  411:   GEN7  = (1 << 4),
        -:        -:  412:   GEN75 = (1 << 5),
        -:        -:  413:   GEN8  = (1 << 6),
        -:        -:  414:   GEN9  = (1 << 7),
        -:        -:  415:   GEN_ALL = ~0
        -:        -:  416:};
        -:        -:  417:
        -:        -:  418:#define GEN_LT(gen) ((gen) - 1)
        -:        -:  419:#define GEN_GE(gen) (~GEN_LT(gen))
        -:        -:  420:#define GEN_LE(gen) (GEN_LT(gen) | (gen))
        -:        -:  421:
        -:        -:  422:static const struct opcode_desc opcode_10_descs[] = {
        -:        -:  423:   { .name = "dim",   .nsrc = 1, .ndst = 1, .gens = GEN75 },
        -:        -:  424:   { .name = "smov",  .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN8) },
        -:        -:  425:};
        -:        -:  426:
        -:        -:  427:static const struct opcode_desc opcode_35_descs[] = {
        -:        -:  428:   { .name = "iff",   .nsrc = 0, .ndst = 0, .gens = GEN_LE(GEN5) },
        -:        -:  429:   { .name = "brc",   .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN7) },
        -:        -:  430:};
        -:        -:  431:
        -:        -:  432:static const struct opcode_desc opcode_38_descs[] = {
        -:        -:  433:   { .name = "do",    .nsrc = 0, .ndst = 0, .gens = GEN_LE(GEN5) },
        -:        -:  434:   { .name = "case",  .nsrc = 0, .ndst = 0, .gens = GEN6 },
        -:        -:  435:};
        -:        -:  436:
        -:        -:  437:static const struct opcode_desc opcode_44_descs[] = {
        -:        -:  438:   { .name = "msave", .nsrc = 0, .ndst = 0, .gens = GEN_LE(GEN5) },
        -:        -:  439:   { .name = "call",  .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN6) },
        -:        -:  440:};
        -:        -:  441:
        -:        -:  442:static const struct opcode_desc opcode_45_descs[] = {
        -:        -:  443:   { .name = "mrest", .nsrc = 0, .ndst = 0, .gens = GEN_LE(GEN5) },
        -:        -:  444:   { .name = "ret",   .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN6) },
        -:        -:  445:};
        -:        -:  446:
        -:        -:  447:static const struct opcode_desc opcode_46_descs[] = {
        -:        -:  448:   { .name = "push",  .nsrc = 0, .ndst = 0, .gens = GEN_LE(GEN5) },
        -:        -:  449:   { .name = "fork",  .nsrc = 0, .ndst = 0, .gens = GEN6 },
        -:        -:  450:   { .name = "goto",  .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN8) },
        -:        -:  451:};
        -:        -:  452:
        -:        -:  453:static const struct opcode_desc opcode_descs[128] = {
        -:        -:  454:   [BRW_OPCODE_ILLEGAL] = {
        -:        -:  455:      .name = "illegal", .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  456:   },
        -:        -:  457:   [BRW_OPCODE_MOV] = {
        -:        -:  458:      .name = "mov",     .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  459:   },
        -:        -:  460:   [BRW_OPCODE_SEL] = {
        -:        -:  461:      .name = "sel",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  462:   },
        -:        -:  463:   [BRW_OPCODE_MOVI] = {
        -:        -:  464:      .name = "movi",    .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN45),
        -:        -:  465:   },
        -:        -:  466:   [BRW_OPCODE_NOT] = {
        -:        -:  467:      .name = "not",     .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  468:   },
        -:        -:  469:   [BRW_OPCODE_AND] = {
        -:        -:  470:      .name = "and",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  471:   },
        -:        -:  472:   [BRW_OPCODE_OR] = {
        -:        -:  473:      .name = "or",      .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  474:   },
        -:        -:  475:   [BRW_OPCODE_XOR] = {
        -:        -:  476:      .name = "xor",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  477:   },
        -:        -:  478:   [BRW_OPCODE_SHR] = {
        -:        -:  479:      .name = "shr",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  480:   },
        -:        -:  481:   [BRW_OPCODE_SHL] = {
        -:        -:  482:      .name = "shl",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  483:   },
        -:        -:  484:   [10] = {
        -:        -:  485:      .table = opcode_10_descs, .size = ARRAY_SIZE(opcode_10_descs),
        -:        -:  486:   },
        -:        -:  487:   /* Reserved - 11 */
        -:        -:  488:   [BRW_OPCODE_ASR] = {
        -:        -:  489:      .name = "asr",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  490:   },
        -:        -:  491:   /* Reserved - 13-15 */
        -:        -:  492:   [BRW_OPCODE_CMP] = {
        -:        -:  493:      .name = "cmp",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  494:   },
        -:        -:  495:   [BRW_OPCODE_CMPN] = {
        -:        -:  496:      .name = "cmpn",    .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  497:   },
        -:        -:  498:   [BRW_OPCODE_CSEL] = {
        -:        -:  499:      .name = "csel",    .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN8),
        -:        -:  500:   },
        -:        -:  501:   [BRW_OPCODE_F32TO16] = {
        -:        -:  502:      .name = "f32to16", .nsrc = 1, .ndst = 1, .gens = GEN7 | GEN75,
        -:        -:  503:   },
        -:        -:  504:   [BRW_OPCODE_F16TO32] = {
        -:        -:  505:      .name = "f16to32", .nsrc = 1, .ndst = 1, .gens = GEN7 | GEN75,
        -:        -:  506:   },
        -:        -:  507:   /* Reserved - 21-22 */
        -:        -:  508:   [BRW_OPCODE_BFREV] = {
        -:        -:  509:      .name = "bfrev",   .nsrc = 1, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  510:   },
        -:        -:  511:   [BRW_OPCODE_BFE] = {
        -:        -:  512:      .name = "bfe",     .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  513:   },
        -:        -:  514:   [BRW_OPCODE_BFI1] = {
        -:        -:  515:      .name = "bfi1",    .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  516:   },
        -:        -:  517:   [BRW_OPCODE_BFI2] = {
        -:        -:  518:      .name = "bfi2",    .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  519:   },
        -:        -:  520:   /* Reserved - 27-31 */
        -:        -:  521:   [BRW_OPCODE_JMPI] = {
        -:        -:  522:      .name = "jmpi",    .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  523:   },
        -:        -:  524:   [33] = {
        -:        -:  525:      .name = "brd",     .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN7),
        -:        -:  526:   },
        -:        -:  527:   [BRW_OPCODE_IF] = {
        -:        -:  528:      .name = "if",      .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  529:   },
        -:        -:  530:   [35] = {
        -:        -:  531:      .table = opcode_35_descs, .size = ARRAY_SIZE(opcode_35_descs),
        -:        -:  532:   },
        -:        -:  533:   [BRW_OPCODE_ELSE] = {
        -:        -:  534:      .name = "else",    .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  535:   },
        -:        -:  536:   [BRW_OPCODE_ENDIF] = {
        -:        -:  537:      .name = "endif",   .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  538:   },
        -:        -:  539:   [38] = {
        -:        -:  540:      .table = opcode_38_descs, .size = ARRAY_SIZE(opcode_38_descs),
        -:        -:  541:   },
        -:        -:  542:   [BRW_OPCODE_WHILE] = {
        -:        -:  543:      .name = "while",   .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  544:   },
        -:        -:  545:   [BRW_OPCODE_BREAK] = {
        -:        -:  546:      .name = "break",   .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  547:   },
        -:        -:  548:   [BRW_OPCODE_CONTINUE] = {
        -:        -:  549:      .name = "cont",    .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  550:   },
        -:        -:  551:   [BRW_OPCODE_HALT] = {
        -:        -:  552:      .name = "halt",    .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  553:   },
        -:        -:  554:   [43] = {
        -:        -:  555:      .name = "calla",   .nsrc = 0, .ndst = 0, .gens = GEN_GE(GEN75),
        -:        -:  556:   },
        -:        -:  557:   [44] = {
        -:        -:  558:      .table = opcode_44_descs, .size = ARRAY_SIZE(opcode_44_descs),
        -:        -:  559:   },
        -:        -:  560:   [45] = {
        -:        -:  561:      .table = opcode_45_descs, .size = ARRAY_SIZE(opcode_45_descs),
        -:        -:  562:   },
        -:        -:  563:   [46] = {
        -:        -:  564:      .table = opcode_46_descs, .size = ARRAY_SIZE(opcode_46_descs),
        -:        -:  565:   },
        -:        -:  566:   [47] = {
        -:        -:  567:      .name = "pop",     .nsrc = 2, .ndst = 0, .gens = GEN_LE(GEN5),
        -:        -:  568:   },
        -:        -:  569:   [BRW_OPCODE_WAIT] = {
        -:        -:  570:      .name = "wait",    .nsrc = 1, .ndst = 0, .gens = GEN_ALL,
        -:        -:  571:   },
        -:        -:  572:   [BRW_OPCODE_SEND] = {
        -:        -:  573:      .name = "send",    .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  574:   },
        -:        -:  575:   [BRW_OPCODE_SENDC] = {
        -:        -:  576:      .name = "sendc",   .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  577:   },
        -:        -:  578:   [BRW_OPCODE_SENDS] = {
        -:        -:  579:      .name = "sends",   .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN9),
        -:        -:  580:   },
        -:        -:  581:   [BRW_OPCODE_SENDSC] = {
        -:        -:  582:      .name = "sendsc",  .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN9),
        -:        -:  583:   },
        -:        -:  584:   /* Reserved 53-55 */
        -:        -:  585:   [BRW_OPCODE_MATH] = {
        -:        -:  586:      .name = "math",    .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN6),
        -:        -:  587:   },
        -:        -:  588:   /* Reserved 57-63 */
        -:        -:  589:   [BRW_OPCODE_ADD] = {
        -:        -:  590:      .name = "add",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  591:   },
        -:        -:  592:   [BRW_OPCODE_MUL] = {
        -:        -:  593:      .name = "mul",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  594:   },
        -:        -:  595:   [BRW_OPCODE_AVG] = {
        -:        -:  596:      .name = "avg",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  597:   },
        -:        -:  598:   [BRW_OPCODE_FRC] = {
        -:        -:  599:      .name = "frc",     .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  600:   },
        -:        -:  601:   [BRW_OPCODE_RNDU] = {
        -:        -:  602:      .name = "rndu",    .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  603:   },
        -:        -:  604:   [BRW_OPCODE_RNDD] = {
        -:        -:  605:      .name = "rndd",    .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  606:   },
        -:        -:  607:   [BRW_OPCODE_RNDE] = {
        -:        -:  608:      .name = "rnde",    .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  609:   },
        -:        -:  610:   [BRW_OPCODE_RNDZ] = {
        -:        -:  611:      .name = "rndz",    .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  612:   },
        -:        -:  613:   [BRW_OPCODE_MAC] = {
        -:        -:  614:      .name = "mac",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  615:   },
        -:        -:  616:   [BRW_OPCODE_MACH] = {
        -:        -:  617:      .name = "mach",    .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  618:   },
        -:        -:  619:   [BRW_OPCODE_LZD] = {
        -:        -:  620:      .name = "lzd",     .nsrc = 1, .ndst = 1, .gens = GEN_ALL,
        -:        -:  621:   },
        -:        -:  622:   [BRW_OPCODE_FBH] = {
        -:        -:  623:      .name = "fbh",     .nsrc = 1, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  624:   },
        -:        -:  625:   [BRW_OPCODE_FBL] = {
        -:        -:  626:      .name = "fbl",     .nsrc = 1, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  627:   },
        -:        -:  628:   [BRW_OPCODE_CBIT] = {
        -:        -:  629:      .name = "cbit",    .nsrc = 1, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  630:   },
        -:        -:  631:   [BRW_OPCODE_ADDC] = {
        -:        -:  632:      .name = "addc",    .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  633:   },
        -:        -:  634:   [BRW_OPCODE_SUBB] = {
        -:        -:  635:      .name = "subb",    .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN7),
        -:        -:  636:   },
        -:        -:  637:   [BRW_OPCODE_SAD2] = {
        -:        -:  638:      .name = "sad2",    .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  639:   },
        -:        -:  640:   [BRW_OPCODE_SADA2] = {
        -:        -:  641:      .name = "sada2",   .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  642:   },
        -:        -:  643:   /* Reserved 82-83 */
        -:        -:  644:   [BRW_OPCODE_DP4] = {
        -:        -:  645:      .name = "dp4",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  646:   },
        -:        -:  647:   [BRW_OPCODE_DPH] = {
        -:        -:  648:      .name = "dph",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  649:   },
        -:        -:  650:   [BRW_OPCODE_DP3] = {
        -:        -:  651:      .name = "dp3",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  652:   },
        -:        -:  653:   [BRW_OPCODE_DP2] = {
        -:        -:  654:      .name = "dp2",     .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  655:   },
        -:        -:  656:   /* Reserved 88 */
        -:        -:  657:   [BRW_OPCODE_LINE] = {
        -:        -:  658:      .name = "line",    .nsrc = 2, .ndst = 1, .gens = GEN_ALL,
        -:        -:  659:   },
        -:        -:  660:   [BRW_OPCODE_PLN] = {
        -:        -:  661:      .name = "pln",     .nsrc = 2, .ndst = 1, .gens = GEN_GE(GEN45),
        -:        -:  662:   },
        -:        -:  663:   [BRW_OPCODE_MAD] = {
        -:        -:  664:      .name = "mad",     .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN6),
        -:        -:  665:   },
        -:        -:  666:   [BRW_OPCODE_LRP] = {
        -:        -:  667:      .name = "lrp",     .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN6),
        -:        -:  668:   },
        -:        -:  669:   [93] = {
        -:        -:  670:      .name = "madm",    .nsrc = 3, .ndst = 1, .gens = GEN_GE(GEN8),
        -:        -:  671:   },
        -:        -:  672:   /* Reserved 94-124 */
        -:        -:  673:   [BRW_OPCODE_NENOP] = {
        -:        -:  674:      .name = "nenop",   .nsrc = 0, .ndst = 0, .gens = GEN45,
        -:        -:  675:   },
        -:        -:  676:   [BRW_OPCODE_NOP] = {
        -:        -:  677:      .name = "nop",     .nsrc = 0, .ndst = 0, .gens = GEN_ALL,
        -:        -:  678:   },
        -:        -:  679:};
        -:        -:  680:
        -:        -:  681:static enum gen
     2414:     2518:  682:gen_from_devinfo(const struct gen_device_info *devinfo)
        -:        -:  683:{
     2414:     2518:  684:   switch (devinfo->gen) {
    #####:    #####:  685:   case 4: return devinfo->is_g4x ? GEN45 : GEN4;
    #####:    #####:  686:   case 5: return GEN5;
     2414:     2518:  687:   case 6: return GEN6;
    #####:    #####:  688:   case 7: return devinfo->is_haswell ? GEN75 : GEN7;
    #####:    #####:  689:   case 8: return GEN8;
    #####:    #####:  690:   case 9: return GEN9;
        -:        -:  691:   default:
    #####:    #####:  692:      unreachable("not reached");
        -:        -:  693:   }
        -:        -:  694:}
        -:        -:  695:
        -:        -:  696:/* Return the matching opcode_desc for the specified opcode number and
        -:        -:  697: * hardware generation, or NULL if the opcode is not supported by the device.
        -:        -:  698: */
        -:        -:  699:const struct opcode_desc *
     2449:     2553:  700:brw_opcode_desc(const struct gen_device_info *devinfo, enum opcode opcode)
        -:        -:  701:{
     2449:     2553:  702:   if (opcode >= ARRAY_SIZE(opcode_descs))
       35:       35:  703:      return NULL;
        -:        -:  704:
     2414:     2518:  705:   enum gen gen = gen_from_devinfo(devinfo);
     2414:     2518:  706:   if (opcode_descs[opcode].gens != 0) {
     2410:     2510:  707:      if ((opcode_descs[opcode].gens & gen) != 0) {
     2410:     2510:  708:         return &opcode_descs[opcode];
        -:        -:  709:      }
        4:        8:  710:   } else if (opcode_descs[opcode].table != NULL) {
        4:        8:  711:      const struct opcode_desc *table = opcode_descs[opcode].table;
        8:       16:  712:      for (unsigned i = 0; i < opcode_descs[opcode].size; i++) {
        8:       16:  713:         if ((table[i].gens & gen) != 0) {
        4:        8:  714:            return &table[i];
        -:        -:  715:         }
        -:        -:  716:      }
        -:        -:  717:   }
    #####:    #####:  718:   return NULL;
        -:        -:  719:}

src/intel/brw_eu_compact.c.gcov

        -:        -:    0:Source:compiler/brw_eu_compact.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_eu_compact.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_eu_compact.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_eu_compact.c
        -:        -:   25: *
        -:        -:   26: * Instruction compaction is a feature of G45 and newer hardware that allows
        -:        -:   27: * for a smaller instruction encoding.
        -:        -:   28: *
        -:        -:   29: * The instruction cache is on the order of 32KB, and many programs generate
        -:        -:   30: * far more instructions than that.  The instruction cache is built to barely
        -:        -:   31: * keep up with instruction dispatch ability in cache hit cases -- L1
        -:        -:   32: * instruction cache misses that still hit in the next level could limit
        -:        -:   33: * throughput by around 50%.
        -:        -:   34: *
        -:        -:   35: * The idea of instruction compaction is that most instructions use a tiny
        -:        -:   36: * subset of the GPU functionality, so we can encode what would be a 16 byte
        -:        -:   37: * instruction in 8 bytes using some lookup tables for various fields.
        -:        -:   38: *
        -:        -:   39: *
        -:        -:   40: * Instruction compaction capabilities vary subtly by generation.
        -:        -:   41: *
        -:        -:   42: * G45's support for instruction compaction is very limited. Jump counts on
        -:        -:   43: * this generation are in units of 16-byte uncompacted instructions. As such,
        -:        -:   44: * all jump targets must be 16-byte aligned. Also, all instructions must be
        -:        -:   45: * naturally aligned, i.e. uncompacted instructions must be 16-byte aligned.
        -:        -:   46: * A G45-only instruction, NENOP, must be used to provide padding to align
        -:        -:   47: * uncompacted instructions.
        -:        -:   48: *
        -:        -:   49: * Gen5 removes these restrictions and changes jump counts to be in units of
        -:        -:   50: * 8-byte compacted instructions, allowing jump targets to be only 8-byte
        -:        -:   51: * aligned. Uncompacted instructions can also be placed on 8-byte boundaries.
        -:        -:   52: *
        -:        -:   53: * Gen6 adds the ability to compact instructions with a limited range of
        -:        -:   54: * immediate values. Compactable immediates have 12 unrestricted bits, and a
        -:        -:   55: * 13th bit that's replicated through the high 20 bits, to create the 32-bit
        -:        -:   56: * value of DW3 in the uncompacted instruction word.
        -:        -:   57: *
        -:        -:   58: * On Gen7 we can compact some control flow instructions with a small positive
        -:        -:   59: * immediate in the low bits of DW3, like ENDIF with the JIP field. Other
        -:        -:   60: * control flow instructions with UIP cannot be compacted, because of the
        -:        -:   61: * replicated 13th bit. No control flow instructions can be compacted on Gen6
        -:        -:   62: * since the jump count field is not in DW3.
        -:        -:   63: *
        -:        -:   64: *    break    JIP/UIP
        -:        -:   65: *    cont     JIP/UIP
        -:        -:   66: *    halt     JIP/UIP
        -:        -:   67: *    if       JIP/UIP
        -:        -:   68: *    else     JIP (plus UIP on BDW+)
        -:        -:   69: *    endif    JIP
        -:        -:   70: *    while    JIP (must be negative)
        -:        -:   71: *
        -:        -:   72: * Gen 8 adds support for compacting 3-src instructions.
        -:        -:   73: */
        -:        -:   74:
        -:        -:   75:#include "brw_eu.h"
        -:        -:   76:#include "brw_shader.h"
        -:        -:   77:#include "intel_asm_annotation.h"
        -:        -:   78:#include "common/gen_debug.h"
        -:        -:   79:
        -:        -:   80:static const uint32_t g45_control_index_table[32] = {
        -:        -:   81:   0b00000000000000000,
        -:        -:   82:   0b01000000000000000,
        -:        -:   83:   0b00110000000000000,
        -:        -:   84:   0b00000000000000010,
        -:        -:   85:   0b00100000000000000,
        -:        -:   86:   0b00010000000000000,
        -:        -:   87:   0b01000000000100000,
        -:        -:   88:   0b01000000100000000,
        -:        -:   89:   0b01010000000100000,
        -:        -:   90:   0b00000000100000010,
        -:        -:   91:   0b11000000000000000,
        -:        -:   92:   0b00001000100000010,
        -:        -:   93:   0b01001000100000000,
        -:        -:   94:   0b00000000100000000,
        -:        -:   95:   0b11000000000100000,
        -:        -:   96:   0b00001000100000000,
        -:        -:   97:   0b10110000000000000,
        -:        -:   98:   0b11010000000100000,
        -:        -:   99:   0b00110000100000000,
        -:        -:  100:   0b00100000100000000,
        -:        -:  101:   0b01000000000001000,
        -:        -:  102:   0b01000000000000100,
        -:        -:  103:   0b00111100000000000,
        -:        -:  104:   0b00101011000000000,
        -:        -:  105:   0b00110000000010000,
        -:        -:  106:   0b00010000100000000,
        -:        -:  107:   0b01000000000100100,
        -:        -:  108:   0b01000000000101000,
        -:        -:  109:   0b00110000000000110,
        -:        -:  110:   0b00000000000001010,
        -:        -:  111:   0b01010000000101000,
        -:        -:  112:   0b01010000000100100
        -:        -:  113:};
        -:        -:  114:
        -:        -:  115:static const uint32_t g45_datatype_table[32] = {
        -:        -:  116:   0b001000000000100001,
        -:        -:  117:   0b001011010110101101,
        -:        -:  118:   0b001000001000110001,
        -:        -:  119:   0b001111011110111101,
        -:        -:  120:   0b001011010110101100,
        -:        -:  121:   0b001000000110101101,
        -:        -:  122:   0b001000000000100000,
        -:        -:  123:   0b010100010110110001,
        -:        -:  124:   0b001100011000101101,
        -:        -:  125:   0b001000000000100010,
        -:        -:  126:   0b001000001000110110,
        -:        -:  127:   0b010000001000110001,
        -:        -:  128:   0b001000001000110010,
        -:        -:  129:   0b011000001000110010,
        -:        -:  130:   0b001111011110111100,
        -:        -:  131:   0b001000000100101000,
        -:        -:  132:   0b010100011000110001,
        -:        -:  133:   0b001010010100101001,
        -:        -:  134:   0b001000001000101001,
        -:        -:  135:   0b010000001000110110,
        -:        -:  136:   0b101000001000110001,
        -:        -:  137:   0b001011011000101101,
        -:        -:  138:   0b001000000100001001,
        -:        -:  139:   0b001011011000101100,
        -:        -:  140:   0b110100011000110001,
        -:        -:  141:   0b001000001110111101,
        -:        -:  142:   0b110000001000110001,
        -:        -:  143:   0b011000000100101010,
        -:        -:  144:   0b101000001000101001,
        -:        -:  145:   0b001011010110001100,
        -:        -:  146:   0b001000000110100001,
        -:        -:  147:   0b001010010100001000
        -:        -:  148:};
        -:        -:  149:
        -:        -:  150:static const uint16_t g45_subreg_table[32] = {
        -:        -:  151:   0b000000000000000,
        -:        -:  152:   0b000000010000000,
        -:        -:  153:   0b000001000000000,
        -:        -:  154:   0b000100000000000,
        -:        -:  155:   0b000000000100000,
        -:        -:  156:   0b100000000000000,
        -:        -:  157:   0b000000000010000,
        -:        -:  158:   0b001100000000000,
        -:        -:  159:   0b001010000000000,
        -:        -:  160:   0b000000100000000,
        -:        -:  161:   0b001000000000000,
        -:        -:  162:   0b000000000001000,
        -:        -:  163:   0b000000001000000,
        -:        -:  164:   0b000000000000001,
        -:        -:  165:   0b000010000000000,
        -:        -:  166:   0b000000010100000,
        -:        -:  167:   0b000000000000111,
        -:        -:  168:   0b000001000100000,
        -:        -:  169:   0b011000000000000,
        -:        -:  170:   0b000000110000000,
        -:        -:  171:   0b000000000000010,
        -:        -:  172:   0b000000000000100,
        -:        -:  173:   0b000000001100000,
        -:        -:  174:   0b000100000000010,
        -:        -:  175:   0b001110011000110,
        -:        -:  176:   0b001110100001000,
        -:        -:  177:   0b000110011000110,
        -:        -:  178:   0b000001000011000,
        -:        -:  179:   0b000110010000100,
        -:        -:  180:   0b001100000000110,
        -:        -:  181:   0b000000010000110,
        -:        -:  182:   0b000001000110000
        -:        -:  183:};
        -:        -:  184:
        -:        -:  185:static const uint16_t g45_src_index_table[32] = {
        -:        -:  186:   0b000000000000,
        -:        -:  187:   0b010001101000,
        -:        -:  188:   0b010110001000,
        -:        -:  189:   0b011010010000,
        -:        -:  190:   0b001101001000,
        -:        -:  191:   0b010110001010,
        -:        -:  192:   0b010101110000,
        -:        -:  193:   0b011001111000,
        -:        -:  194:   0b001000101000,
        -:        -:  195:   0b000000101000,
        -:        -:  196:   0b010001010000,
        -:        -:  197:   0b111101101100,
        -:        -:  198:   0b010110001100,
        -:        -:  199:   0b010001101100,
        -:        -:  200:   0b011010010100,
        -:        -:  201:   0b010001001100,
        -:        -:  202:   0b001100101000,
        -:        -:  203:   0b000000000010,
        -:        -:  204:   0b111101001100,
        -:        -:  205:   0b011001101000,
        -:        -:  206:   0b010101001000,
        -:        -:  207:   0b000000000100,
        -:        -:  208:   0b000000101100,
        -:        -:  209:   0b010001101010,
        -:        -:  210:   0b000000111000,
        -:        -:  211:   0b010101011000,
        -:        -:  212:   0b000100100000,
        -:        -:  213:   0b010110000000,
        -:        -:  214:   0b010000000100,
        -:        -:  215:   0b010000111000,
        -:        -:  216:   0b000101100000,
        -:        -:  217:   0b111101110100
        -:        -:  218:};
        -:        -:  219:
        -:        -:  220:static const uint32_t gen6_control_index_table[32] = {
        -:        -:  221:   0b00000000000000000,
        -:        -:  222:   0b01000000000000000,
        -:        -:  223:   0b00110000000000000,
        -:        -:  224:   0b00000000100000000,
        -:        -:  225:   0b00010000000000000,
        -:        -:  226:   0b00001000100000000,
        -:        -:  227:   0b00000000100000010,
        -:        -:  228:   0b00000000000000010,
        -:        -:  229:   0b01000000100000000,
        -:        -:  230:   0b01010000000000000,
        -:        -:  231:   0b10110000000000000,
        -:        -:  232:   0b00100000000000000,
        -:        -:  233:   0b11010000000000000,
        -:        -:  234:   0b11000000000000000,
        -:        -:  235:   0b01001000100000000,
        -:        -:  236:   0b01000000000001000,
        -:        -:  237:   0b01000000000000100,
        -:        -:  238:   0b00000000000001000,
        -:        -:  239:   0b00000000000000100,
        -:        -:  240:   0b00111000100000000,
        -:        -:  241:   0b00001000100000010,
        -:        -:  242:   0b00110000100000000,
        -:        -:  243:   0b00110000000000001,
        -:        -:  244:   0b00100000000000001,
        -:        -:  245:   0b00110000000000010,
        -:        -:  246:   0b00110000000000101,
        -:        -:  247:   0b00110000000001001,
        -:        -:  248:   0b00110000000010000,
        -:        -:  249:   0b00110000000000011,
        -:        -:  250:   0b00110000000000100,
        -:        -:  251:   0b00110000100001000,
        -:        -:  252:   0b00100000000001001
        -:        -:  253:};
        -:        -:  254:
        -:        -:  255:static const uint32_t gen6_datatype_table[32] = {
        -:        -:  256:   0b001001110000000000,
        -:        -:  257:   0b001000110000100000,
        -:        -:  258:   0b001001110000000001,
        -:        -:  259:   0b001000000001100000,
        -:        -:  260:   0b001010110100101001,
        -:        -:  261:   0b001000000110101101,
        -:        -:  262:   0b001100011000101100,
        -:        -:  263:   0b001011110110101101,
        -:        -:  264:   0b001000000111101100,
        -:        -:  265:   0b001000000001100001,
        -:        -:  266:   0b001000110010100101,
        -:        -:  267:   0b001000000001000001,
        -:        -:  268:   0b001000001000110001,
        -:        -:  269:   0b001000001000101001,
        -:        -:  270:   0b001000000000100000,
        -:        -:  271:   0b001000001000110010,
        -:        -:  272:   0b001010010100101001,
        -:        -:  273:   0b001011010010100101,
        -:        -:  274:   0b001000000110100101,
        -:        -:  275:   0b001100011000101001,
        -:        -:  276:   0b001011011000101100,
        -:        -:  277:   0b001011010110100101,
        -:        -:  278:   0b001011110110100101,
        -:        -:  279:   0b001111011110111101,
        -:        -:  280:   0b001111011110111100,
        -:        -:  281:   0b001111011110111101,
        -:        -:  282:   0b001111011110011101,
        -:        -:  283:   0b001111011110111110,
        -:        -:  284:   0b001000000000100001,
        -:        -:  285:   0b001000000000100010,
        -:        -:  286:   0b001001111111011101,
        -:        -:  287:   0b001000001110111110,
        -:        -:  288:};
        -:        -:  289:
        -:        -:  290:static const uint16_t gen6_subreg_table[32] = {
        -:        -:  291:   0b000000000000000,
        -:        -:  292:   0b000000000000100,
        -:        -:  293:   0b000000110000000,
        -:        -:  294:   0b111000000000000,
        -:        -:  295:   0b011110000001000,
        -:        -:  296:   0b000010000000000,
        -:        -:  297:   0b000000000010000,
        -:        -:  298:   0b000110000001100,
        -:        -:  299:   0b001000000000000,
        -:        -:  300:   0b000001000000000,
        -:        -:  301:   0b000001010010100,
        -:        -:  302:   0b000000001010110,
        -:        -:  303:   0b010000000000000,
        -:        -:  304:   0b110000000000000,
        -:        -:  305:   0b000100000000000,
        -:        -:  306:   0b000000010000000,
        -:        -:  307:   0b000000000001000,
        -:        -:  308:   0b100000000000000,
        -:        -:  309:   0b000001010000000,
        -:        -:  310:   0b001010000000000,
        -:        -:  311:   0b001100000000000,
        -:        -:  312:   0b000000001010100,
        -:        -:  313:   0b101101010010100,
        -:        -:  314:   0b010100000000000,
        -:        -:  315:   0b000000010001111,
        -:        -:  316:   0b011000000000000,
        -:        -:  317:   0b111110000000000,
        -:        -:  318:   0b101000000000000,
        -:        -:  319:   0b000000000001111,
        -:        -:  320:   0b000100010001111,
        -:        -:  321:   0b001000010001111,
        -:        -:  322:   0b000110000000000,
        -:        -:  323:};
        -:        -:  324:
        -:        -:  325:static const uint16_t gen6_src_index_table[32] = {
        -:        -:  326:   0b000000000000,
        -:        -:  327:   0b010110001000,
        -:        -:  328:   0b010001101000,
        -:        -:  329:   0b001000101000,
        -:        -:  330:   0b011010010000,
        -:        -:  331:   0b000100100000,
        -:        -:  332:   0b010001101100,
        -:        -:  333:   0b010101110000,
        -:        -:  334:   0b011001111000,
        -:        -:  335:   0b001100101000,
        -:        -:  336:   0b010110001100,
        -:        -:  337:   0b001000100000,
        -:        -:  338:   0b010110001010,
        -:        -:  339:   0b000000000010,
        -:        -:  340:   0b010101010000,
        -:        -:  341:   0b010101101000,
        -:        -:  342:   0b111101001100,
        -:        -:  343:   0b111100101100,
        -:        -:  344:   0b011001110000,
        -:        -:  345:   0b010110001001,
        -:        -:  346:   0b010101011000,
        -:        -:  347:   0b001101001000,
        -:        -:  348:   0b010000101100,
        -:        -:  349:   0b010000000000,
        -:        -:  350:   0b001101110000,
        -:        -:  351:   0b001100010000,
        -:        -:  352:   0b001100000000,
        -:        -:  353:   0b010001101010,
        -:        -:  354:   0b001101111000,
        -:        -:  355:   0b000001110000,
        -:        -:  356:   0b001100100000,
        -:        -:  357:   0b001101010000,
        -:        -:  358:};
        -:        -:  359:
        -:        -:  360:static const uint32_t gen7_control_index_table[32] = {
        -:        -:  361:   0b0000000000000000010,
        -:        -:  362:   0b0000100000000000000,
        -:        -:  363:   0b0000100000000000001,
        -:        -:  364:   0b0000100000000000010,
        -:        -:  365:   0b0000100000000000011,
        -:        -:  366:   0b0000100000000000100,
        -:        -:  367:   0b0000100000000000101,
        -:        -:  368:   0b0000100000000000111,
        -:        -:  369:   0b0000100000000001000,
        -:        -:  370:   0b0000100000000001001,
        -:        -:  371:   0b0000100000000001101,
        -:        -:  372:   0b0000110000000000000,
        -:        -:  373:   0b0000110000000000001,
        -:        -:  374:   0b0000110000000000010,
        -:        -:  375:   0b0000110000000000011,
        -:        -:  376:   0b0000110000000000100,
        -:        -:  377:   0b0000110000000000101,
        -:        -:  378:   0b0000110000000000111,
        -:        -:  379:   0b0000110000000001001,
        -:        -:  380:   0b0000110000000001101,
        -:        -:  381:   0b0000110000000010000,
        -:        -:  382:   0b0000110000100000000,
        -:        -:  383:   0b0001000000000000000,
        -:        -:  384:   0b0001000000000000010,
        -:        -:  385:   0b0001000000000000100,
        -:        -:  386:   0b0001000000100000000,
        -:        -:  387:   0b0010110000000000000,
        -:        -:  388:   0b0010110000000010000,
        -:        -:  389:   0b0011000000000000000,
        -:        -:  390:   0b0011000000100000000,
        -:        -:  391:   0b0101000000000000000,
        -:        -:  392:   0b0101000000100000000
        -:        -:  393:};
        -:        -:  394:
        -:        -:  395:static const uint32_t gen7_datatype_table[32] = {
        -:        -:  396:   0b001000000000000001,
        -:        -:  397:   0b001000000000100000,
        -:        -:  398:   0b001000000000100001,
        -:        -:  399:   0b001000000001100001,
        -:        -:  400:   0b001000000010111101,
        -:        -:  401:   0b001000001011111101,
        -:        -:  402:   0b001000001110100001,
        -:        -:  403:   0b001000001110100101,
        -:        -:  404:   0b001000001110111101,
        -:        -:  405:   0b001000010000100001,
        -:        -:  406:   0b001000110000100000,
        -:        -:  407:   0b001000110000100001,
        -:        -:  408:   0b001001010010100101,
        -:        -:  409:   0b001001110010100100,
        -:        -:  410:   0b001001110010100101,
        -:        -:  411:   0b001111001110111101,
        -:        -:  412:   0b001111011110011101,
        -:        -:  413:   0b001111011110111100,
        -:        -:  414:   0b001111011110111101,
        -:        -:  415:   0b001111111110111100,
        -:        -:  416:   0b000000001000001100,
        -:        -:  417:   0b001000000000111101,
        -:        -:  418:   0b001000000010100101,
        -:        -:  419:   0b001000010000100000,
        -:        -:  420:   0b001001010010100100,
        -:        -:  421:   0b001001110010000100,
        -:        -:  422:   0b001010010100001001,
        -:        -:  423:   0b001101111110111101,
        -:        -:  424:   0b001111111110111101,
        -:        -:  425:   0b001011110110101100,
        -:        -:  426:   0b001010010100101000,
        -:        -:  427:   0b001010110100101000
        -:        -:  428:};
        -:        -:  429:
        -:        -:  430:static const uint16_t gen7_subreg_table[32] = {
        -:        -:  431:   0b000000000000000,
        -:        -:  432:   0b000000000000001,
        -:        -:  433:   0b000000000001000,
        -:        -:  434:   0b000000000001111,
        -:        -:  435:   0b000000000010000,
        -:        -:  436:   0b000000010000000,
        -:        -:  437:   0b000000100000000,
        -:        -:  438:   0b000000110000000,
        -:        -:  439:   0b000001000000000,
        -:        -:  440:   0b000001000010000,
        -:        -:  441:   0b000010100000000,
        -:        -:  442:   0b001000000000000,
        -:        -:  443:   0b001000000000001,
        -:        -:  444:   0b001000010000001,
        -:        -:  445:   0b001000010000010,
        -:        -:  446:   0b001000010000011,
        -:        -:  447:   0b001000010000100,
        -:        -:  448:   0b001000010000111,
        -:        -:  449:   0b001000010001000,
        -:        -:  450:   0b001000010001110,
        -:        -:  451:   0b001000010001111,
        -:        -:  452:   0b001000110000000,
        -:        -:  453:   0b001000111101000,
        -:        -:  454:   0b010000000000000,
        -:        -:  455:   0b010000110000000,
        -:        -:  456:   0b011000000000000,
        -:        -:  457:   0b011110010000111,
        -:        -:  458:   0b100000000000000,
        -:        -:  459:   0b101000000000000,
        -:        -:  460:   0b110000000000000,
        -:        -:  461:   0b111000000000000,
        -:        -:  462:   0b111000000011100
        -:        -:  463:};
        -:        -:  464:
        -:        -:  465:static const uint16_t gen7_src_index_table[32] = {
        -:        -:  466:   0b000000000000,
        -:        -:  467:   0b000000000010,
        -:        -:  468:   0b000000010000,
        -:        -:  469:   0b000000010010,
        -:        -:  470:   0b000000011000,
        -:        -:  471:   0b000000100000,
        -:        -:  472:   0b000000101000,
        -:        -:  473:   0b000001001000,
        -:        -:  474:   0b000001010000,
        -:        -:  475:   0b000001110000,
        -:        -:  476:   0b000001111000,
        -:        -:  477:   0b001100000000,
        -:        -:  478:   0b001100000010,
        -:        -:  479:   0b001100001000,
        -:        -:  480:   0b001100010000,
        -:        -:  481:   0b001100010010,
        -:        -:  482:   0b001100100000,
        -:        -:  483:   0b001100101000,
        -:        -:  484:   0b001100111000,
        -:        -:  485:   0b001101000000,
        -:        -:  486:   0b001101000010,
        -:        -:  487:   0b001101001000,
        -:        -:  488:   0b001101010000,
        -:        -:  489:   0b001101100000,
        -:        -:  490:   0b001101101000,
        -:        -:  491:   0b001101110000,
        -:        -:  492:   0b001101110001,
        -:        -:  493:   0b001101111000,
        -:        -:  494:   0b010001101000,
        -:        -:  495:   0b010001101001,
        -:        -:  496:   0b010001101010,
        -:        -:  497:   0b010110001000
        -:        -:  498:};
        -:        -:  499:
        -:        -:  500:static const uint32_t gen8_control_index_table[32] = {
        -:        -:  501:   0b0000000000000000010,
        -:        -:  502:   0b0000100000000000000,
        -:        -:  503:   0b0000100000000000001,
        -:        -:  504:   0b0000100000000000010,
        -:        -:  505:   0b0000100000000000011,
        -:        -:  506:   0b0000100000000000100,
        -:        -:  507:   0b0000100000000000101,
        -:        -:  508:   0b0000100000000000111,
        -:        -:  509:   0b0000100000000001000,
        -:        -:  510:   0b0000100000000001001,
        -:        -:  511:   0b0000100000000001101,
        -:        -:  512:   0b0000110000000000000,
        -:        -:  513:   0b0000110000000000001,
        -:        -:  514:   0b0000110000000000010,
        -:        -:  515:   0b0000110000000000011,
        -:        -:  516:   0b0000110000000000100,
        -:        -:  517:   0b0000110000000000101,
        -:        -:  518:   0b0000110000000000111,
        -:        -:  519:   0b0000110000000001001,
        -:        -:  520:   0b0000110000000001101,
        -:        -:  521:   0b0000110000000010000,
        -:        -:  522:   0b0000110000100000000,
        -:        -:  523:   0b0001000000000000000,
        -:        -:  524:   0b0001000000000000010,
        -:        -:  525:   0b0001000000000000100,
        -:        -:  526:   0b0001000000100000000,
        -:        -:  527:   0b0010110000000000000,
        -:        -:  528:   0b0010110000000010000,
        -:        -:  529:   0b0011000000000000000,
        -:        -:  530:   0b0011000000100000000,
        -:        -:  531:   0b0101000000000000000,
        -:        -:  532:   0b0101000000100000000
        -:        -:  533:};
        -:        -:  534:
        -:        -:  535:static const uint32_t gen8_datatype_table[32] = {
        -:        -:  536:   0b001000000000000000001,
        -:        -:  537:   0b001000000000001000000,
        -:        -:  538:   0b001000000000001000001,
        -:        -:  539:   0b001000000000011000001,
        -:        -:  540:   0b001000000000101011101,
        -:        -:  541:   0b001000000010111011101,
        -:        -:  542:   0b001000000011101000001,
        -:        -:  543:   0b001000000011101000101,
        -:        -:  544:   0b001000000011101011101,
        -:        -:  545:   0b001000001000001000001,
        -:        -:  546:   0b001000011000001000000,
        -:        -:  547:   0b001000011000001000001,
        -:        -:  548:   0b001000101000101000101,
        -:        -:  549:   0b001000111000101000100,
        -:        -:  550:   0b001000111000101000101,
        -:        -:  551:   0b001011100011101011101,
        -:        -:  552:   0b001011101011100011101,
        -:        -:  553:   0b001011101011101011100,
        -:        -:  554:   0b001011101011101011101,
        -:        -:  555:   0b001011111011101011100,
        -:        -:  556:   0b000000000010000001100,
        -:        -:  557:   0b001000000000001011101,
        -:        -:  558:   0b001000000000101000101,
        -:        -:  559:   0b001000001000001000000,
        -:        -:  560:   0b001000101000101000100,
        -:        -:  561:   0b001000111000100000100,
        -:        -:  562:   0b001001001001000001001,
        -:        -:  563:   0b001010111011101011101,
        -:        -:  564:   0b001011111011101011101,
        -:        -:  565:   0b001001111001101001100,
        -:        -:  566:   0b001001001001001001000,
        -:        -:  567:   0b001001011001001001000
        -:        -:  568:};
        -:        -:  569:
        -:        -:  570:static const uint16_t gen8_subreg_table[32] = {
        -:        -:  571:   0b000000000000000,
        -:        -:  572:   0b000000000000001,
        -:        -:  573:   0b000000000001000,
        -:        -:  574:   0b000000000001111,
        -:        -:  575:   0b000000000010000,
        -:        -:  576:   0b000000010000000,
        -:        -:  577:   0b000000100000000,
        -:        -:  578:   0b000000110000000,
        -:        -:  579:   0b000001000000000,
        -:        -:  580:   0b000001000010000,
        -:        -:  581:   0b000001010000000,
        -:        -:  582:   0b001000000000000,
        -:        -:  583:   0b001000000000001,
        -:        -:  584:   0b001000010000001,
        -:        -:  585:   0b001000010000010,
        -:        -:  586:   0b001000010000011,
        -:        -:  587:   0b001000010000100,
        -:        -:  588:   0b001000010000111,
        -:        -:  589:   0b001000010001000,
        -:        -:  590:   0b001000010001110,
        -:        -:  591:   0b001000010001111,
        -:        -:  592:   0b001000110000000,
        -:        -:  593:   0b001000111101000,
        -:        -:  594:   0b010000000000000,
        -:        -:  595:   0b010000110000000,
        -:        -:  596:   0b011000000000000,
        -:        -:  597:   0b011110010000111,
        -:        -:  598:   0b100000000000000,
        -:        -:  599:   0b101000000000000,
        -:        -:  600:   0b110000000000000,
        -:        -:  601:   0b111000000000000,
        -:        -:  602:   0b111000000011100
        -:        -:  603:};
        -:        -:  604:
        -:        -:  605:static const uint16_t gen8_src_index_table[32] = {
        -:        -:  606:   0b000000000000,
        -:        -:  607:   0b000000000010,
        -:        -:  608:   0b000000010000,
        -:        -:  609:   0b000000010010,
        -:        -:  610:   0b000000011000,
        -:        -:  611:   0b000000100000,
        -:        -:  612:   0b000000101000,
        -:        -:  613:   0b000001001000,
        -:        -:  614:   0b000001010000,
        -:        -:  615:   0b000001110000,
        -:        -:  616:   0b000001111000,
        -:        -:  617:   0b001100000000,
        -:        -:  618:   0b001100000010,
        -:        -:  619:   0b001100001000,
        -:        -:  620:   0b001100010000,
        -:        -:  621:   0b001100010010,
        -:        -:  622:   0b001100100000,
        -:        -:  623:   0b001100101000,
        -:        -:  624:   0b001100111000,
        -:        -:  625:   0b001101000000,
        -:        -:  626:   0b001101000010,
        -:        -:  627:   0b001101001000,
        -:        -:  628:   0b001101010000,
        -:        -:  629:   0b001101100000,
        -:        -:  630:   0b001101101000,
        -:        -:  631:   0b001101110000,
        -:        -:  632:   0b001101110001,
        -:        -:  633:   0b001101111000,
        -:        -:  634:   0b010001101000,
        -:        -:  635:   0b010001101001,
        -:        -:  636:   0b010001101010,
        -:        -:  637:   0b010110001000
        -:        -:  638:};
        -:        -:  639:
        -:        -:  640:/* This is actually the control index table for Cherryview (26 bits), but the
        -:        -:  641: * only difference from Broadwell (24 bits) is that it has two extra 0-bits at
        -:        -:  642: * the start.
        -:        -:  643: *
        -:        -:  644: * The low 24 bits have the same mappings on both hardware.
        -:        -:  645: */
        -:        -:  646:static const uint32_t gen8_3src_control_index_table[4] = {
        -:        -:  647:   0b00100000000110000000000001,
        -:        -:  648:   0b00000000000110000000000001,
        -:        -:  649:   0b00000000001000000000000001,
        -:        -:  650:   0b00000000001000000000100001
        -:        -:  651:};
        -:        -:  652:
        -:        -:  653:/* This is actually the control index table for Cherryview (49 bits), but the
        -:        -:  654: * only difference from Broadwell (46 bits) is that it has three extra 0-bits
        -:        -:  655: * at the start.
        -:        -:  656: *
        -:        -:  657: * The low 44 bits have the same mappings on both hardware, and since the high
        -:        -:  658: * three bits on Broadwell are zero, we can reuse Cherryview's table.
        -:        -:  659: */
        -:        -:  660:static const uint64_t gen8_3src_source_index_table[4] = {
        -:        -:  661:   0b0000001110010011100100111001000001111000000000000,
        -:        -:  662:   0b0000001110010011100100111001000001111000000000010,
        -:        -:  663:   0b0000001110010011100100111001000001111000000001000,
        -:        -:  664:   0b0000001110010011100100111001000001111000000100000
        -:        -:  665:};
        -:        -:  666:
        -:        -:  667:static const uint32_t *control_index_table;
        -:        -:  668:static const uint32_t *datatype_table;
        -:        -:  669:static const uint16_t *subreg_table;
        -:        -:  670:static const uint16_t *src_index_table;
        -:        -:  671:
        -:        -:  672:static bool
      171:      171:  673:set_control_index(const struct gen_device_info *devinfo,
        -:        -:  674:                  brw_compact_inst *dst, brw_inst *src)
        -:        -:  675:{
      513:      513:  676:   uint32_t uncompacted = devinfo->gen >= 8  /* 17b/G45; 19b/IVB+ */
    #####:    #####:  677:      ? (brw_inst_bits(src, 33, 31) << 16) | /*  3b */
    #####:    #####:  678:        (brw_inst_bits(src, 23, 12) <<  4) | /* 12b */
    #####:    #####:  679:        (brw_inst_bits(src, 10,  9) <<  2) | /*  2b */
    #####:    #####:  680:        (brw_inst_bits(src, 34, 34) <<  1) | /*  1b */
    #####:    #####:  681:        (brw_inst_bits(src,  8,  8))         /*  1b */
      171:      171:  682:      : (brw_inst_bits(src, 31, 31) << 16) | /*  1b */
      171:      171:  683:        (brw_inst_bits(src, 23,  8));        /* 16b */
        -:        -:  684:
        -:        -:  685:   /* On gen7, the flag register and subregister numbers are integrated into
        -:        -:  686:    * the control index.
        -:        -:  687:    */
      171:      171:  688:   if (devinfo->gen == 7)
    #####:    #####:  689:      uncompacted |= brw_inst_bits(src, 90, 89) << 17; /* 2b */
        -:        -:  690:
     1108:     1116:  691:   for (int i = 0; i < 32; i++) {
     1104:     1112:  692:      if (control_index_table[i] == uncompacted) {
      167:      167:  693:         brw_compact_inst_set_control_index(devinfo, dst, i);
      167:      167:  694:	 return true;
        -:        -:  695:      }
        -:        -:  696:   }
        -:        -:  697:
        4:        4:  698:   return false;
        -:        -:  699:}
        -:        -:  700:
        -:        -:  701:static bool
      167:      167:  702:set_datatype_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
        -:        -:  703:                   brw_inst *src)
        -:        -:  704:{
      501:      501:  705:   uint32_t uncompacted = devinfo->gen >= 8  /* 18b/G45+; 21b/BDW+ */
    #####:    #####:  706:      ? (brw_inst_bits(src, 63, 61) << 18) | /*  3b */
    #####:    #####:  707:        (brw_inst_bits(src, 94, 89) << 12) | /*  6b */
    #####:    #####:  708:        (brw_inst_bits(src, 46, 35))         /* 12b */
      167:      167:  709:      : (brw_inst_bits(src, 63, 61) << 15) | /*  3b */
      167:      167:  710:        (brw_inst_bits(src, 46, 32));        /* 15b */
        -:        -:  711:
     4849:     4733:  712:   for (int i = 0; i < 32; i++) {
     4746:     4634:  713:      if (datatype_table[i] == uncompacted) {
       64:       68:  714:         brw_compact_inst_set_datatype_index(devinfo, dst, i);
       64:       68:  715:	 return true;
        -:        -:  716:      }
        -:        -:  717:   }
        -:        -:  718:
      103:       99:  719:   return false;
        -:        -:  720:}
        -:        -:  721:
        -:        -:  722:static bool
       64:       68:  723:set_subreg_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
        -:        -:  724:                 brw_inst *src, bool is_immediate)
        -:        -:  725:{
      128:      136:  726:   uint16_t uncompacted =                 /* 15b */
       64:       68:  727:      (brw_inst_bits(src, 52, 48) << 0) | /*  5b */
       64:       68:  728:      (brw_inst_bits(src, 68, 64) << 5);  /*  5b */
        -:        -:  729:
       64:       68:  730:   if (!is_immediate)
       52:       52:  731:      uncompacted |= brw_inst_bits(src, 100, 96) << 10; /* 5b */
        -:        -:  732:
      510:      514:  733:   for (int i = 0; i < 32; i++) {
      508:      512:  734:      if (subreg_table[i] == uncompacted) {
       62:       66:  735:         brw_compact_inst_set_subreg_index(devinfo, dst, i);
       62:       66:  736:	 return true;
        -:        -:  737:      }
        -:        -:  738:   }
        -:        -:  739:
        2:        2:  740:   return false;
        -:        -:  741:}
        -:        -:  742:
        -:        -:  743:static bool
      112:      116:  744:get_src_index(uint16_t uncompacted,
        -:        -:  745:              uint16_t *compacted)
        -:        -:  746:{
      296:      300:  747:   for (int i = 0; i < 32; i++) {
      296:      300:  748:      if (src_index_table[i] == uncompacted) {
      112:      116:  749:	 *compacted = i;
      112:      116:  750:	 return true;
        -:        -:  751:      }
        -:        -:  752:   }
        -:        -:  753:
    #####:    #####:  754:   return false;
        -:        -:  755:}
        -:        -:  756:
        -:        -:  757:static bool
       62:       66:  758:set_src0_index(const struct gen_device_info *devinfo,
        -:        -:  759:               brw_compact_inst *dst, brw_inst *src)
        -:        -:  760:{
        -:        -:  761:   uint16_t compacted;
       62:       66:  762:   uint16_t uncompacted = brw_inst_bits(src, 88, 77); /* 12b */
        -:        -:  763:
       62:       66:  764:   if (!get_src_index(uncompacted, &compacted))
    #####:    #####:  765:      return false;
        -:        -:  766:
       62:       66:  767:   brw_compact_inst_set_src0_index(devinfo, dst, compacted);
        -:        -:  768:
       62:       66:  769:   return true;
        -:        -:  770:}
        -:        -:  771:
        -:        -:  772:static bool
       62:       66:  773:set_src1_index(const struct gen_device_info *devinfo, brw_compact_inst *dst,
        -:        -:  774:               brw_inst *src, bool is_immediate)
        -:        -:  775:{
        -:        -:  776:   uint16_t compacted;
        -:        -:  777:
       62:       66:  778:   if (is_immediate) {
       12:       16:  779:      compacted = (brw_inst_imm_ud(devinfo, src) >> 8) & 0x1f;
        -:        -:  780:   } else {
       50:       50:  781:      uint16_t uncompacted = brw_inst_bits(src, 120, 109); /* 12b */
        -:        -:  782:
       50:       50:  783:      if (!get_src_index(uncompacted, &compacted))
    #####:    #####:  784:         return false;
        -:        -:  785:   }
        -:        -:  786:
       62:       66:  787:   brw_compact_inst_set_src1_index(devinfo, dst, compacted);
        -:        -:  788:
       62:       66:  789:   return true;
        -:        -:  790:}
        -:        -:  791:
        -:        -:  792:static bool
    #####:    #####:  793:set_3src_control_index(const struct gen_device_info *devinfo,
        -:        -:  794:                       brw_compact_inst *dst, brw_inst *src)
        -:        -:  795:{
    #####:    #####:  796:   assert(devinfo->gen >= 8);
        -:        -:  797:
    #####:    #####:  798:   uint32_t uncompacted =                  /* 24b/BDW; 26b/CHV */
    #####:    #####:  799:      (brw_inst_bits(src, 34, 32) << 21) | /*  3b */
    #####:    #####:  800:      (brw_inst_bits(src, 28,  8));        /* 21b */
        -:        -:  801:
    #####:    #####:  802:   if (devinfo->gen >= 9 || devinfo->is_cherryview)
    #####:    #####:  803:      uncompacted |= brw_inst_bits(src, 36, 35) << 24; /* 2b */
        -:        -:  804:
    #####:    #####:  805:   for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_control_index_table); i++) {
    #####:    #####:  806:      if (gen8_3src_control_index_table[i] == uncompacted) {
    #####:    #####:  807:         brw_compact_inst_set_3src_control_index(devinfo, dst, i);
    #####:    #####:  808:	 return true;
        -:        -:  809:      }
        -:        -:  810:   }
        -:        -:  811:
    #####:    #####:  812:   return false;
        -:        -:  813:}
        -:        -:  814:
        -:        -:  815:static bool
    #####:    #####:  816:set_3src_source_index(const struct gen_device_info *devinfo,
        -:        -:  817:                      brw_compact_inst *dst, brw_inst *src)
        -:        -:  818:{
    #####:    #####:  819:   assert(devinfo->gen >= 8);
        -:        -:  820:
    #####:    #####:  821:   uint64_t uncompacted =                    /* 46b/BDW; 49b/CHV */
    #####:    #####:  822:      (brw_inst_bits(src,  83,  83) << 43) | /*  1b */
    #####:    #####:  823:      (brw_inst_bits(src, 114, 107) << 35) | /*  8b */
    #####:    #####:  824:      (brw_inst_bits(src,  93,  86) << 27) | /*  8b */
    #####:    #####:  825:      (brw_inst_bits(src,  72,  65) << 19) | /*  8b */
    #####:    #####:  826:      (brw_inst_bits(src,  55,  37));        /* 19b */
        -:        -:  827:
    #####:    #####:  828:   if (devinfo->gen >= 9 || devinfo->is_cherryview) {
    #####:    #####:  829:      uncompacted |=
    #####:    #####:  830:         (brw_inst_bits(src, 126, 125) << 47) | /* 2b */
    #####:    #####:  831:         (brw_inst_bits(src, 105, 104) << 45) | /* 2b */
    #####:    #####:  832:         (brw_inst_bits(src,  84,  84) << 44);  /* 1b */
        -:        -:  833:   } else {
    #####:    #####:  834:      uncompacted |=
    #####:    #####:  835:         (brw_inst_bits(src, 125, 125) << 45) | /* 1b */
    #####:    #####:  836:         (brw_inst_bits(src, 104, 104) << 44);  /* 1b */
        -:        -:  837:   }
        -:        -:  838:
    #####:    #####:  839:   for (unsigned i = 0; i < ARRAY_SIZE(gen8_3src_source_index_table); i++) {
    #####:    #####:  840:      if (gen8_3src_source_index_table[i] == uncompacted) {
    #####:    #####:  841:         brw_compact_inst_set_3src_source_index(devinfo, dst, i);
    #####:    #####:  842:	 return true;
        -:        -:  843:      }
        -:        -:  844:   }
        -:        -:  845:
    #####:    #####:  846:   return false;
        -:        -:  847:}
        -:        -:  848:
        -:        -:  849:static bool
      171:      171:  850:has_unmapped_bits(const struct gen_device_info *devinfo, brw_inst *src)
        -:        -:  851:{
        -:        -:  852:   /* EOT can only be mapped on a send if the src1 is an immediate */
      342:      342:  853:   if ((brw_inst_opcode(devinfo, src) == BRW_OPCODE_SENDC ||
      171:      171:  854:        brw_inst_opcode(devinfo, src) == BRW_OPCODE_SEND) &&
    #####:    #####:  855:       brw_inst_eot(devinfo, src))
    #####:    #####:  856:      return true;
        -:        -:  857:
        -:        -:  858:   /* Check for instruction bits that don't map to any of the fields of the
        -:        -:  859:    * compacted instruction.  The instruction cannot be compacted if any of
        -:        -:  860:    * them are set.  They overlap with:
        -:        -:  861:    *  - NibCtrl (bit 47 on Gen7, bit 11 on Gen8)
        -:        -:  862:    *  - Dst.AddrImm[9] (bit 47 on Gen8)
        -:        -:  863:    *  - Src0.AddrImm[9] (bit 95 on Gen8)
        -:        -:  864:    *  - Imm64[27:31] (bits 91-95 on Gen7, bit 95 on Gen8)
        -:        -:  865:    *  - UIP[31] (bit 95 on Gen8)
        -:        -:  866:    */
      171:      171:  867:   if (devinfo->gen >= 8) {
    #####:    #####:  868:      assert(!brw_inst_bits(src, 7,  7));
    #####:    #####:  869:      return brw_inst_bits(src, 95, 95) ||
    #####:    #####:  870:             brw_inst_bits(src, 47, 47) ||
    #####:    #####:  871:             brw_inst_bits(src, 11, 11);
        -:        -:  872:   } else {
      171:      171:  873:      assert(!brw_inst_bits(src, 7,  7) &&
        -:        -:  874:             !(devinfo->gen < 7 && brw_inst_bits(src, 90, 90)));
      342:      342:  875:      return brw_inst_bits(src, 95, 91) ||
      171:      171:  876:             brw_inst_bits(src, 47, 47);
        -:        -:  877:   }
        -:        -:  878:}
        -:        -:  879:
        -:        -:  880:static bool
    #####:    #####:  881:has_3src_unmapped_bits(const struct gen_device_info *devinfo, brw_inst *src)
        -:        -:  882:{
        -:        -:  883:   /* Check for three-source instruction bits that don't map to any of the
        -:        -:  884:    * fields of the compacted instruction.  All of them seem to be reserved
        -:        -:  885:    * bits currently.
        -:        -:  886:    */
    #####:    #####:  887:   if (devinfo->gen >= 9 || devinfo->is_cherryview) {
    #####:    #####:  888:      assert(!brw_inst_bits(src, 127, 127) &&
        -:        -:  889:             !brw_inst_bits(src, 7,  7));
        -:        -:  890:   } else {
    #####:    #####:  891:      assert(devinfo->gen >= 8);
    #####:    #####:  892:      assert(!brw_inst_bits(src, 127, 126) &&
        -:        -:  893:             !brw_inst_bits(src, 105, 105) &&
        -:        -:  894:             !brw_inst_bits(src, 84, 84) &&
        -:        -:  895:             !brw_inst_bits(src, 36, 35) &&
        -:        -:  896:             !brw_inst_bits(src, 7,  7));
        -:        -:  897:   }
        -:        -:  898:
    #####:    #####:  899:   return false;
        -:        -:  900:}
        -:        -:  901:
        -:        -:  902:static bool
    #####:    #####:  903:brw_try_compact_3src_instruction(const struct gen_device_info *devinfo,
        -:        -:  904:                                 brw_compact_inst *dst, brw_inst *src)
        -:        -:  905:{
    #####:    #####:  906:   assert(devinfo->gen >= 8);
        -:        -:  907:
    #####:    #####:  908:   if (has_3src_unmapped_bits(devinfo, src))
    #####:    #####:  909:      return false;
        -:        -:  910:
        -:        -:  911:#define compact(field) \
        -:        -:  912:   brw_compact_inst_set_3src_##field(devinfo, dst, brw_inst_3src_##field(devinfo, src))
        -:        -:  913:
    #####:    #####:  914:   compact(opcode);
        -:        -:  915:
    #####:    #####:  916:   if (!set_3src_control_index(devinfo, dst, src))
    #####:    #####:  917:      return false;
        -:        -:  918:
    #####:    #####:  919:   if (!set_3src_source_index(devinfo, dst, src))
    #####:    #####:  920:      return false;
        -:        -:  921:
    #####:    #####:  922:   compact(dst_reg_nr);
    #####:    #####:  923:   compact(src0_rep_ctrl);
    #####:    #####:  924:   brw_compact_inst_set_3src_cmpt_control(devinfo, dst, true);
    #####:    #####:  925:   compact(debug_control);
    #####:    #####:  926:   compact(saturate);
    #####:    #####:  927:   compact(src1_rep_ctrl);
    #####:    #####:  928:   compact(src2_rep_ctrl);
    #####:    #####:  929:   compact(src0_reg_nr);
    #####:    #####:  930:   compact(src1_reg_nr);
    #####:    #####:  931:   compact(src2_reg_nr);
    #####:    #####:  932:   compact(src0_subreg_nr);
    #####:    #####:  933:   compact(src1_subreg_nr);
    #####:    #####:  934:   compact(src2_subreg_nr);
        -:        -:  935:
        -:        -:  936:#undef compact
        -:        -:  937:
    #####:    #####:  938:   return true;
        -:        -:  939:}
        -:        -:  940:
        -:        -:  941:/* Compacted instructions have 12-bits for immediate sources, and a 13th bit
        -:        -:  942: * that's replicated through the high 20 bits.
        -:        -:  943: *
        -:        -:  944: * Effectively this means we get 12-bit integers, 0.0f, and some limited uses
        -:        -:  945: * of packed vectors as compactable immediates.
        -:        -:  946: */
        -:        -:  947:static bool
       49:       61:  948:is_compactable_immediate(unsigned imm)
        -:        -:  949:{
        -:        -:  950:   /* We get the low 12 bits as-is. */
       49:       61:  951:   imm &= ~0xfff;
        -:        -:  952:
        -:        -:  953:   /* We get one bit replicated through the top 20 bits. */
       49:       61:  954:   return imm == 0 || imm == 0xfffff000;
        -:        -:  955:}
        -:        -:  956:
        -:        -:  957:/**
        -:        -:  958: * Tries to compact instruction src into dst.
        -:        -:  959: *
        -:        -:  960: * It doesn't modify dst unless src is compactable, which is relied on by
        -:        -:  961: * brw_compact_instructions().
        -:        -:  962: */
        -:        -:  963:bool
      212:      220:  964:brw_try_compact_instruction(const struct gen_device_info *devinfo,
        -:        -:  965:                            brw_compact_inst *dst, brw_inst *src)
        -:        -:  966:{
        -:        -:  967:   brw_compact_inst temp;
        -:        -:  968:
      212:      220:  969:   assert(brw_inst_cmpt_control(devinfo, src) == 0);
        -:        -:  970:
      212:      220:  971:   if (is_3src(devinfo, brw_inst_opcode(devinfo, src))) {
       18:       18:  972:      if (devinfo->gen >= 8) {
    #####:    #####:  973:         memset(&temp, 0, sizeof(temp));
    #####:    #####:  974:         if (brw_try_compact_3src_instruction(devinfo, &temp, src)) {
    #####:    #####:  975:            *dst = temp;
    #####:    #####:  976:            return true;
        -:        -:  977:         } else {
    #####:    #####:  978:            return false;
        -:        -:  979:         }
        -:        -:  980:      } else {
       18:       18:  981:         return false;
        -:        -:  982:      }
        -:        -:  983:   }
        -:        -:  984:
      194:      202:  985:   bool is_immediate =
      373:      385:  986:      brw_inst_src0_reg_file(devinfo, src) == BRW_IMMEDIATE_VALUE ||
      179:      183:  987:      brw_inst_src1_reg_file(devinfo, src) == BRW_IMMEDIATE_VALUE;
      243:      263:  988:   if (is_immediate &&
       98:      122:  989:       (devinfo->gen < 6 ||
       49:       61:  990:        !is_compactable_immediate(brw_inst_imm_ud(devinfo, src)))) {
       23:       31:  991:      return false;
        -:        -:  992:   }
        -:        -:  993:
      171:      171:  994:   if (has_unmapped_bits(devinfo, src))
    #####:    #####:  995:      return false;
        -:        -:  996:
      171:      171:  997:   memset(&temp, 0, sizeof(temp));
        -:        -:  998:
        -:        -:  999:#define compact(field) \
        -:        -: 1000:   brw_compact_inst_set_##field(devinfo, &temp, brw_inst_##field(devinfo, src))
        -:        -: 1001:
      171:      171: 1002:   compact(opcode);
      171:      171: 1003:   compact(debug_control);
        -:        -: 1004:
      171:      171: 1005:   if (!set_control_index(devinfo, &temp, src))
        4:        4: 1006:      return false;
      167:      167: 1007:   if (!set_datatype_index(devinfo, &temp, src))
      103:       99: 1008:      return false;
       64:       68: 1009:   if (!set_subreg_index(devinfo, &temp, src, is_immediate))
        2:        2: 1010:      return false;
        -:        -: 1011:
       62:       66: 1012:   if (devinfo->gen >= 6) {
       62:       66: 1013:      compact(acc_wr_control);
        -:        -: 1014:   } else {
    #####:    #####: 1015:      compact(mask_control_ex);
        -:        -: 1016:   }
        -:        -: 1017:
       62:       66: 1018:   compact(cond_modifier);
        -:        -: 1019:
       62:       66: 1020:   if (devinfo->gen <= 6)
       62:       66: 1021:      compact(flag_subreg_nr);
        -:        -: 1022:
       62:       66: 1023:   brw_compact_inst_set_cmpt_control(devinfo, &temp, true);
        -:        -: 1024:
       62:       66: 1025:   if (!set_src0_index(devinfo, &temp, src))
    #####:    #####: 1026:      return false;
       62:       66: 1027:   if (!set_src1_index(devinfo, &temp, src, is_immediate))
    #####:    #####: 1028:      return false;
        -:        -: 1029:
       62:       66: 1030:   brw_compact_inst_set_dst_reg_nr(devinfo, &temp,
       62:       66: 1031:                                   brw_inst_dst_da_reg_nr(devinfo, src));
       62:       66: 1032:   brw_compact_inst_set_src0_reg_nr(devinfo, &temp,
       62:       66: 1033:                                    brw_inst_src0_da_reg_nr(devinfo, src));
        -:        -: 1034:
       62:       66: 1035:   if (is_immediate) {
       12:       16: 1036:      brw_compact_inst_set_src1_reg_nr(devinfo, &temp,
       12:       16: 1037:                                       brw_inst_imm_ud(devinfo, src) & 0xff);
        -:        -: 1038:   } else {
       50:       50: 1039:      brw_compact_inst_set_src1_reg_nr(devinfo, &temp,
       50:       50: 1040:                                       brw_inst_src1_da_reg_nr(devinfo, src));
        -:        -: 1041:   }
        -:        -: 1042:
        -:        -: 1043:#undef compact
        -:        -: 1044:
       62:       66: 1045:   *dst = temp;
        -:        -: 1046:
       62:       66: 1047:   return true;
        -:        -: 1048:}
        -:        -: 1049:
        -:        -: 1050:static void
    #####:    #####: 1051:set_uncompacted_control(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1052:                        brw_compact_inst *src)
        -:        -: 1053:{
    #####:    #####: 1054:   uint32_t uncompacted =
    #####:    #####: 1055:      control_index_table[brw_compact_inst_control_index(devinfo, src)];
        -:        -: 1056:
    #####:    #####: 1057:   if (devinfo->gen >= 8) {
    #####:    #####: 1058:      brw_inst_set_bits(dst, 33, 31, (uncompacted >> 16));
    #####:    #####: 1059:      brw_inst_set_bits(dst, 23, 12, (uncompacted >>  4) & 0xfff);
    #####:    #####: 1060:      brw_inst_set_bits(dst, 10,  9, (uncompacted >>  2) & 0x3);
    #####:    #####: 1061:      brw_inst_set_bits(dst, 34, 34, (uncompacted >>  1) & 0x1);
    #####:    #####: 1062:      brw_inst_set_bits(dst,  8,  8, (uncompacted >>  0) & 0x1);
        -:        -: 1063:   } else {
    #####:    #####: 1064:      brw_inst_set_bits(dst, 31, 31, (uncompacted >> 16) & 0x1);
    #####:    #####: 1065:      brw_inst_set_bits(dst, 23,  8, (uncompacted & 0xffff));
        -:        -: 1066:
    #####:    #####: 1067:      if (devinfo->gen == 7)
    #####:    #####: 1068:         brw_inst_set_bits(dst, 90, 89, uncompacted >> 17);
        -:        -: 1069:   }
    #####:    #####: 1070:}
        -:        -: 1071:
        -:        -: 1072:static void
    #####:    #####: 1073:set_uncompacted_datatype(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1074:                         brw_compact_inst *src)
        -:        -: 1075:{
    #####:    #####: 1076:   uint32_t uncompacted =
    #####:    #####: 1077:      datatype_table[brw_compact_inst_datatype_index(devinfo, src)];
        -:        -: 1078:
    #####:    #####: 1079:   if (devinfo->gen >= 8) {
    #####:    #####: 1080:      brw_inst_set_bits(dst, 63, 61, (uncompacted >> 18));
    #####:    #####: 1081:      brw_inst_set_bits(dst, 94, 89, (uncompacted >> 12) & 0x3f);
    #####:    #####: 1082:      brw_inst_set_bits(dst, 46, 35, (uncompacted >>  0) & 0xfff);
        -:        -: 1083:   } else {
    #####:    #####: 1084:      brw_inst_set_bits(dst, 63, 61, (uncompacted >> 15));
    #####:    #####: 1085:      brw_inst_set_bits(dst, 46, 32, (uncompacted & 0x7fff));
        -:        -: 1086:   }
    #####:    #####: 1087:}
        -:        -: 1088:
        -:        -: 1089:static void
    #####:    #####: 1090:set_uncompacted_subreg(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1091:                       brw_compact_inst *src)
        -:        -: 1092:{
    #####:    #####: 1093:   uint16_t uncompacted =
    #####:    #####: 1094:      subreg_table[brw_compact_inst_subreg_index(devinfo, src)];
        -:        -: 1095:
    #####:    #####: 1096:   brw_inst_set_bits(dst, 100, 96, (uncompacted >> 10));
    #####:    #####: 1097:   brw_inst_set_bits(dst,  68, 64, (uncompacted >>  5) & 0x1f);
    #####:    #####: 1098:   brw_inst_set_bits(dst,  52, 48, (uncompacted >>  0) & 0x1f);
    #####:    #####: 1099:}
        -:        -: 1100:
        -:        -: 1101:static void
    #####:    #####: 1102:set_uncompacted_src0(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1103:                     brw_compact_inst *src)
        -:        -: 1104:{
    #####:    #####: 1105:   uint32_t compacted = brw_compact_inst_src0_index(devinfo, src);
    #####:    #####: 1106:   uint16_t uncompacted = src_index_table[compacted];
        -:        -: 1107:
    #####:    #####: 1108:   brw_inst_set_bits(dst, 88, 77, uncompacted);
    #####:    #####: 1109:}
        -:        -: 1110:
        -:        -: 1111:static void
    #####:    #####: 1112:set_uncompacted_src1(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1113:                     brw_compact_inst *src, bool is_immediate)
        -:        -: 1114:{
    #####:    #####: 1115:   if (is_immediate) {
    #####:    #####: 1116:      signed high5 = brw_compact_inst_src1_index(devinfo, src);
        -:        -: 1117:      /* Replicate top bit of src1_index into high 20 bits of the immediate. */
    #####:    #####: 1118:      brw_inst_set_imm_ud(devinfo, dst, (high5 << 27) >> 19);
        -:        -: 1119:   } else {
    #####:    #####: 1120:      uint16_t uncompacted =
    #####:    #####: 1121:         src_index_table[brw_compact_inst_src1_index(devinfo, src)];
        -:        -: 1122:
    #####:    #####: 1123:      brw_inst_set_bits(dst, 120, 109, uncompacted);
        -:        -: 1124:   }
    #####:    #####: 1125:}
        -:        -: 1126:
        -:        -: 1127:static void
    #####:    #####: 1128:set_uncompacted_3src_control_index(const struct gen_device_info *devinfo,
        -:        -: 1129:                                   brw_inst *dst, brw_compact_inst *src)
        -:        -: 1130:{
    #####:    #####: 1131:   assert(devinfo->gen >= 8);
        -:        -: 1132:
    #####:    #####: 1133:   uint32_t compacted = brw_compact_inst_3src_control_index(devinfo, src);
    #####:    #####: 1134:   uint32_t uncompacted = gen8_3src_control_index_table[compacted];
        -:        -: 1135:
    #####:    #####: 1136:   brw_inst_set_bits(dst, 34, 32, (uncompacted >> 21) & 0x7);
    #####:    #####: 1137:   brw_inst_set_bits(dst, 28,  8, (uncompacted >>  0) & 0x1fffff);
        -:        -: 1138:
    #####:    #####: 1139:   if (devinfo->gen >= 9 || devinfo->is_cherryview)
    #####:    #####: 1140:      brw_inst_set_bits(dst, 36, 35, (uncompacted >> 24) & 0x3);
    #####:    #####: 1141:}
        -:        -: 1142:
        -:        -: 1143:static void
    #####:    #####: 1144:set_uncompacted_3src_source_index(const struct gen_device_info *devinfo,
        -:        -: 1145:                                  brw_inst *dst, brw_compact_inst *src)
        -:        -: 1146:{
    #####:    #####: 1147:   assert(devinfo->gen >= 8);
        -:        -: 1148:
    #####:    #####: 1149:   uint32_t compacted = brw_compact_inst_3src_source_index(devinfo, src);
    #####:    #####: 1150:   uint64_t uncompacted = gen8_3src_source_index_table[compacted];
        -:        -: 1151:
    #####:    #####: 1152:   brw_inst_set_bits(dst,  83,  83, (uncompacted >> 43) & 0x1);
    #####:    #####: 1153:   brw_inst_set_bits(dst, 114, 107, (uncompacted >> 35) & 0xff);
    #####:    #####: 1154:   brw_inst_set_bits(dst,  93,  86, (uncompacted >> 27) & 0xff);
    #####:    #####: 1155:   brw_inst_set_bits(dst,  72,  65, (uncompacted >> 19) & 0xff);
    #####:    #####: 1156:   brw_inst_set_bits(dst,  55,  37, (uncompacted >>  0) & 0x7ffff);
        -:        -: 1157:
    #####:    #####: 1158:   if (devinfo->gen >= 9 || devinfo->is_cherryview) {
    #####:    #####: 1159:      brw_inst_set_bits(dst, 126, 125, (uncompacted >> 47) & 0x3);
    #####:    #####: 1160:      brw_inst_set_bits(dst, 105, 104, (uncompacted >> 45) & 0x3);
    #####:    #####: 1161:      brw_inst_set_bits(dst,  84,  84, (uncompacted >> 44) & 0x1);
        -:        -: 1162:   } else {
    #####:    #####: 1163:      brw_inst_set_bits(dst, 125, 125, (uncompacted >> 45) & 0x1);
    #####:    #####: 1164:      brw_inst_set_bits(dst, 104, 104, (uncompacted >> 44) & 0x1);
        -:        -: 1165:   }
    #####:    #####: 1166:}
        -:        -: 1167:
        -:        -: 1168:static void
    #####:    #####: 1169:brw_uncompact_3src_instruction(const struct gen_device_info *devinfo,
        -:        -: 1170:                               brw_inst *dst, brw_compact_inst *src)
        -:        -: 1171:{
    #####:    #####: 1172:   assert(devinfo->gen >= 8);
        -:        -: 1173:
        -:        -: 1174:#define uncompact(field) \
        -:        -: 1175:   brw_inst_set_3src_##field(devinfo, dst, brw_compact_inst_3src_##field(devinfo, src))
        -:        -: 1176:
    #####:    #####: 1177:   uncompact(opcode);
        -:        -: 1178:
    #####:    #####: 1179:   set_uncompacted_3src_control_index(devinfo, dst, src);
    #####:    #####: 1180:   set_uncompacted_3src_source_index(devinfo, dst, src);
        -:        -: 1181:
    #####:    #####: 1182:   uncompact(dst_reg_nr);
    #####:    #####: 1183:   uncompact(src0_rep_ctrl);
    #####:    #####: 1184:   brw_inst_set_3src_cmpt_control(devinfo, dst, false);
    #####:    #####: 1185:   uncompact(debug_control);
    #####:    #####: 1186:   uncompact(saturate);
    #####:    #####: 1187:   uncompact(src1_rep_ctrl);
    #####:    #####: 1188:   uncompact(src2_rep_ctrl);
    #####:    #####: 1189:   uncompact(src0_reg_nr);
    #####:    #####: 1190:   uncompact(src1_reg_nr);
    #####:    #####: 1191:   uncompact(src2_reg_nr);
    #####:    #####: 1192:   uncompact(src0_subreg_nr);
    #####:    #####: 1193:   uncompact(src1_subreg_nr);
    #####:    #####: 1194:   uncompact(src2_subreg_nr);
        -:        -: 1195:
        -:        -: 1196:#undef uncompact
    #####:    #####: 1197:}
        -:        -: 1198:
        -:        -: 1199:void
    #####:    #####: 1200:brw_uncompact_instruction(const struct gen_device_info *devinfo, brw_inst *dst,
        -:        -: 1201:                          brw_compact_inst *src)
        -:        -: 1202:{
    #####:    #####: 1203:   memset(dst, 0, sizeof(*dst));
        -:        -: 1204:
    #####:    #####: 1205:   if (devinfo->gen >= 8 &&
    #####:    #####: 1206:       is_3src(devinfo, brw_compact_inst_3src_opcode(devinfo, src))) {
    #####:    #####: 1207:      brw_uncompact_3src_instruction(devinfo, dst, src);
    #####:    #####: 1208:      return;
        -:        -: 1209:   }
        -:        -: 1210:
        -:        -: 1211:#define uncompact(field) \
        -:        -: 1212:   brw_inst_set_##field(devinfo, dst, brw_compact_inst_##field(devinfo, src))
        -:        -: 1213:
    #####:    #####: 1214:   uncompact(opcode);
    #####:    #####: 1215:   uncompact(debug_control);
        -:        -: 1216:
    #####:    #####: 1217:   set_uncompacted_control(devinfo, dst, src);
    #####:    #####: 1218:   set_uncompacted_datatype(devinfo, dst, src);
        -:        -: 1219:
        -:        -: 1220:   /* src0/1 register file fields are in the datatype table. */
    #####:    #####: 1221:   bool is_immediate = brw_inst_src0_reg_file(devinfo, dst) == BRW_IMMEDIATE_VALUE ||
    #####:    #####: 1222:                       brw_inst_src1_reg_file(devinfo, dst) == BRW_IMMEDIATE_VALUE;
        -:        -: 1223:
    #####:    #####: 1224:   set_uncompacted_subreg(devinfo, dst, src);
        -:        -: 1225:
    #####:    #####: 1226:   if (devinfo->gen >= 6) {
    #####:    #####: 1227:      uncompact(acc_wr_control);
        -:        -: 1228:   } else {
    #####:    #####: 1229:      uncompact(mask_control_ex);
        -:        -: 1230:   }
        -:        -: 1231:
    #####:    #####: 1232:   uncompact(cond_modifier);
        -:        -: 1233:
    #####:    #####: 1234:   if (devinfo->gen <= 6)
    #####:    #####: 1235:      uncompact(flag_subreg_nr);
        -:        -: 1236:
    #####:    #####: 1237:   set_uncompacted_src0(devinfo, dst, src);
    #####:    #####: 1238:   set_uncompacted_src1(devinfo, dst, src, is_immediate);
        -:        -: 1239:
    #####:    #####: 1240:   brw_inst_set_dst_da_reg_nr(devinfo, dst,
    #####:    #####: 1241:                              brw_compact_inst_dst_reg_nr(devinfo, src));
    #####:    #####: 1242:   brw_inst_set_src0_da_reg_nr(devinfo, dst,
    #####:    #####: 1243:                               brw_compact_inst_src0_reg_nr(devinfo, src));
        -:        -: 1244:
    #####:    #####: 1245:   if (is_immediate) {
    #####:    #####: 1246:      brw_inst_set_imm_ud(devinfo, dst,
    #####:    #####: 1247:                          brw_inst_imm_ud(devinfo, dst) |
    #####:    #####: 1248:                          brw_compact_inst_src1_reg_nr(devinfo, src));
        -:        -: 1249:   } else {
    #####:    #####: 1250:      brw_inst_set_src1_da_reg_nr(devinfo, dst,
    #####:    #####: 1251:                                  brw_compact_inst_src1_reg_nr(devinfo, src));
        -:        -: 1252:   }
        -:        -: 1253:
        -:        -: 1254:#undef uncompact
        -:        -: 1255:}
        -:        -: 1256:
    #####:    #####: 1257:void brw_debug_compact_uncompact(const struct gen_device_info *devinfo,
        -:        -: 1258:                                 brw_inst *orig,
        -:        -: 1259:                                 brw_inst *uncompacted)
        -:        -: 1260:{
    #####:    #####: 1261:   fprintf(stderr, "Instruction compact/uncompact changed (gen%d):\n",
        -:        -: 1262:           devinfo->gen);
        -:        -: 1263:
    #####:    #####: 1264:   fprintf(stderr, "  before: ");
    #####:    #####: 1265:   brw_disassemble_inst(stderr, devinfo, orig, true);
        -:        -: 1266:
    #####:    #####: 1267:   fprintf(stderr, "  after:  ");
    #####:    #####: 1268:   brw_disassemble_inst(stderr, devinfo, uncompacted, false);
        -:        -: 1269:
    #####:    #####: 1270:   uint32_t *before_bits = (uint32_t *)orig;
    #####:    #####: 1271:   uint32_t *after_bits = (uint32_t *)uncompacted;
    #####:    #####: 1272:   fprintf(stderr, "  changed bits:\n");
    #####:    #####: 1273:   for (int i = 0; i < 128; i++) {
    #####:    #####: 1274:      uint32_t before = before_bits[i / 32] & (1 << (i & 31));
    #####:    #####: 1275:      uint32_t after = after_bits[i / 32] & (1 << (i & 31));
        -:        -: 1276:
    #####:    #####: 1277:      if (before != after) {
    #####:    #####: 1278:         fprintf(stderr, "  bit %d, %s to %s\n", i,
        -:        -: 1279:                 before ? "set" : "unset",
        -:        -: 1280:                 after ? "set" : "unset");
        -:        -: 1281:      }
        -:        -: 1282:   }
    #####:    #####: 1283:}
        -:        -: 1284:
        -:        -: 1285:static int
       16:       24: 1286:compacted_between(int old_ip, int old_target_ip, int *compacted_counts)
        -:        -: 1287:{
       16:       24: 1288:   int this_compacted_count = compacted_counts[old_ip];
       16:       24: 1289:   int target_compacted_count = compacted_counts[old_target_ip];
       16:       24: 1290:   return target_compacted_count - this_compacted_count;
        -:        -: 1291:}
        -:        -: 1292:
        -:        -: 1293:static void
        8:       12: 1294:update_uip_jip(const struct gen_device_info *devinfo, brw_inst *insn,
        -:        -: 1295:               int this_old_ip, int *compacted_counts)
        -:        -: 1296:{
        -:        -: 1297:   /* JIP and UIP are in units of:
        -:        -: 1298:    *    - bytes on Gen8+; and
        -:        -: 1299:    *    - compacted instructions on Gen6+.
        -:        -: 1300:    */
        8:       12: 1301:   int shift = devinfo->gen >= 8 ? 3 : 0;
        -:        -: 1302:
        8:       12: 1303:   int32_t jip_compacted = brw_inst_jip(devinfo, insn) >> shift;
        8:       12: 1304:   jip_compacted -= compacted_between(this_old_ip,
        8:       12: 1305:                                      this_old_ip + (jip_compacted / 2),
        -:        -: 1306:                                      compacted_counts);
        8:       12: 1307:   brw_inst_set_jip(devinfo, insn, jip_compacted << shift);
        -:        -: 1308:
       16:       24: 1309:   if (brw_inst_opcode(devinfo, insn) == BRW_OPCODE_ENDIF ||
       16:       24: 1310:       brw_inst_opcode(devinfo, insn) == BRW_OPCODE_WHILE ||
        8:       12: 1311:       (brw_inst_opcode(devinfo, insn) == BRW_OPCODE_ELSE && devinfo->gen <= 7))
    #####:    #####: 1312:      return;
        -:        -: 1313:
        8:       12: 1314:   int32_t uip_compacted = brw_inst_uip(devinfo, insn) >> shift;
        8:       12: 1315:   uip_compacted -= compacted_between(this_old_ip,
        8:       12: 1316:                                      this_old_ip + (uip_compacted / 2),
        -:        -: 1317:                                      compacted_counts);
        8:       12: 1318:   brw_inst_set_uip(devinfo, insn, uip_compacted << shift);
        -:        -: 1319:}
        -:        -: 1320:
        -:        -: 1321:static void
    #####:    #####: 1322:update_gen4_jump_count(const struct gen_device_info *devinfo, brw_inst *insn,
        -:        -: 1323:                       int this_old_ip, int *compacted_counts)
        -:        -: 1324:{
    #####:    #####: 1325:   assert(devinfo->gen == 5 || devinfo->is_g4x);
        -:        -: 1326:
        -:        -: 1327:   /* Jump Count is in units of:
        -:        -: 1328:    *    - uncompacted instructions on G45; and
        -:        -: 1329:    *    - compacted instructions on Gen5.
        -:        -: 1330:    */
    #####:    #####: 1331:   int shift = devinfo->is_g4x ? 1 : 0;
        -:        -: 1332:
    #####:    #####: 1333:   int jump_count_compacted = brw_inst_gen4_jump_count(devinfo, insn) << shift;
        -:        -: 1334:
    #####:    #####: 1335:   int target_old_ip = this_old_ip + (jump_count_compacted / 2);
        -:        -: 1336:
    #####:    #####: 1337:   int this_compacted_count = compacted_counts[this_old_ip];
    #####:    #####: 1338:   int target_compacted_count = compacted_counts[target_old_ip];
        -:        -: 1339:
    #####:    #####: 1340:   jump_count_compacted -= (target_compacted_count - this_compacted_count);
    #####:    #####: 1341:   brw_inst_set_gen4_jump_count(devinfo, insn, jump_count_compacted >> shift);
    #####:    #####: 1342:}
        -:        -: 1343:
        -:        -: 1344:void
        1:        1: 1345:brw_init_compaction_tables(const struct gen_device_info *devinfo)
        -:        -: 1346:{
        1:        1: 1347:   assert(g45_control_index_table[ARRAY_SIZE(g45_control_index_table) - 1] != 0);
        1:        1: 1348:   assert(g45_datatype_table[ARRAY_SIZE(g45_datatype_table) - 1] != 0);
        1:        1: 1349:   assert(g45_subreg_table[ARRAY_SIZE(g45_subreg_table) - 1] != 0);
        1:        1: 1350:   assert(g45_src_index_table[ARRAY_SIZE(g45_src_index_table) - 1] != 0);
        1:        1: 1351:   assert(gen6_control_index_table[ARRAY_SIZE(gen6_control_index_table) - 1] != 0);
        1:        1: 1352:   assert(gen6_datatype_table[ARRAY_SIZE(gen6_datatype_table) - 1] != 0);
        1:        1: 1353:   assert(gen6_subreg_table[ARRAY_SIZE(gen6_subreg_table) - 1] != 0);
        1:        1: 1354:   assert(gen6_src_index_table[ARRAY_SIZE(gen6_src_index_table) - 1] != 0);
        1:        1: 1355:   assert(gen7_control_index_table[ARRAY_SIZE(gen7_control_index_table) - 1] != 0);
        1:        1: 1356:   assert(gen7_datatype_table[ARRAY_SIZE(gen7_datatype_table) - 1] != 0);
        1:        1: 1357:   assert(gen7_subreg_table[ARRAY_SIZE(gen7_subreg_table) - 1] != 0);
        1:        1: 1358:   assert(gen7_src_index_table[ARRAY_SIZE(gen7_src_index_table) - 1] != 0);
        1:        1: 1359:   assert(gen8_control_index_table[ARRAY_SIZE(gen8_control_index_table) - 1] != 0);
        1:        1: 1360:   assert(gen8_datatype_table[ARRAY_SIZE(gen8_datatype_table) - 1] != 0);
        1:        1: 1361:   assert(gen8_subreg_table[ARRAY_SIZE(gen8_subreg_table) - 1] != 0);
        1:        1: 1362:   assert(gen8_src_index_table[ARRAY_SIZE(gen8_src_index_table) - 1] != 0);
        -:        -: 1363:
        1:        1: 1364:   switch (devinfo->gen) {
        -:        -: 1365:   case 9:
        -:        -: 1366:   case 8:
    #####:    #####: 1367:      control_index_table = gen8_control_index_table;
    #####:    #####: 1368:      datatype_table = gen8_datatype_table;
    #####:    #####: 1369:      subreg_table = gen8_subreg_table;
    #####:    #####: 1370:      src_index_table = gen8_src_index_table;
    #####:    #####: 1371:      break;
        -:        -: 1372:   case 7:
    #####:    #####: 1373:      control_index_table = gen7_control_index_table;
    #####:    #####: 1374:      datatype_table = gen7_datatype_table;
    #####:    #####: 1375:      subreg_table = gen7_subreg_table;
    #####:    #####: 1376:      src_index_table = gen7_src_index_table;
    #####:    #####: 1377:      break;
        -:        -: 1378:   case 6:
        1:        1: 1379:      control_index_table = gen6_control_index_table;
        1:        1: 1380:      datatype_table = gen6_datatype_table;
        1:        1: 1381:      subreg_table = gen6_subreg_table;
        1:        1: 1382:      src_index_table = gen6_src_index_table;
        1:        1: 1383:      break;
        -:        -: 1384:   case 5:
        -:        -: 1385:   case 4:
    #####:    #####: 1386:      control_index_table = g45_control_index_table;
    #####:    #####: 1387:      datatype_table = g45_datatype_table;
    #####:    #####: 1388:      subreg_table = g45_subreg_table;
    #####:    #####: 1389:      src_index_table = g45_src_index_table;
    #####:    #####: 1390:      break;
        -:        -: 1391:   default:
    #####:    #####: 1392:      unreachable("unknown generation");
        -:        -: 1393:   }
        1:        1: 1394:}
        -:        -: 1395:
        -:        -: 1396:void
        7:        7: 1397:brw_compact_instructions(struct brw_codegen *p, int start_offset,
        -:        -: 1398:                         int num_annotations, struct annotation *annotation)
        7:        7: 1399:{
        7:        7: 1400:   if (unlikely(INTEL_DEBUG & DEBUG_NO_COMPACTION))
    #####:    #####: 1401:      return;
        -:        -: 1402:
        7:        7: 1403:   const struct gen_device_info *devinfo = p->devinfo;
        7:        7: 1404:   void *store = p->store + start_offset / 16;
        -:        -: 1405:   /* For an instruction at byte offset 16*i before compaction, this is the
        -:        -: 1406:    * number of compacted instructions minus the number of padding NOP/NENOPs
        -:        -: 1407:    * that preceded it.
        -:        -: 1408:    */
        7:        7: 1409:   int compacted_counts[(p->next_insn_offset - start_offset) / sizeof(brw_inst)];
        -:        -: 1410:   /* For an instruction at byte offset 8*i after compaction, this was its IP
        -:        -: 1411:    * (in 16-byte units) before compaction.
        -:        -: 1412:    */
        7:        7: 1413:   int old_ip[(p->next_insn_offset - start_offset) / sizeof(brw_compact_inst)];
        -:        -: 1414:
        7:        7: 1415:   if (devinfo->gen == 4 && !devinfo->is_g4x)
    #####:    #####: 1416:      return;
        -:        -: 1417:
        7:        7: 1418:   int offset = 0;
        7:        7: 1419:   int compacted_count = 0;
      226:      234: 1420:   for (int src_offset = 0; src_offset < p->next_insn_offset - start_offset;
      212:      220: 1421:        src_offset += sizeof(brw_inst)) {
      212:      220: 1422:      brw_inst *src = store + src_offset;
      212:      220: 1423:      void *dst = store + offset;
        -:        -: 1424:
      212:      220: 1425:      old_ip[offset / sizeof(brw_compact_inst)] = src_offset / sizeof(brw_inst);
      212:      220: 1426:      compacted_counts[src_offset / sizeof(brw_inst)] = compacted_count;
        -:        -: 1427:
      212:      220: 1428:      brw_inst saved = *src;
        -:        -: 1429:
      212:      220: 1430:      if (brw_try_compact_instruction(devinfo, dst, src)) {
       62:       66: 1431:         compacted_count++;
        -:        -: 1432:
       62:       66: 1433:         if (INTEL_DEBUG) {
        -:        -: 1434:            brw_inst uncompacted;
    #####:    #####: 1435:            brw_uncompact_instruction(devinfo, &uncompacted, dst);
    #####:    #####: 1436:            if (memcmp(&saved, &uncompacted, sizeof(uncompacted))) {
    #####:    #####: 1437:               brw_debug_compact_uncompact(devinfo, &saved, &uncompacted);
        -:        -: 1438:            }
        -:        -: 1439:         }
        -:        -: 1440:
       62:       66: 1441:         offset += sizeof(brw_compact_inst);
        -:        -: 1442:      } else {
        -:        -: 1443:         /* All uncompacted instructions need to be aligned on G45. */
      150:      154: 1444:         if ((offset & sizeof(brw_compact_inst)) != 0 && devinfo->is_g4x){
    #####:    #####: 1445:            brw_compact_inst *align = store + offset;
    #####:    #####: 1446:            memset(align, 0, sizeof(*align));
    #####:    #####: 1447:            brw_compact_inst_set_opcode(devinfo, align, BRW_OPCODE_NENOP);
    #####:    #####: 1448:            brw_compact_inst_set_cmpt_control(devinfo, align, true);
    #####:    #####: 1449:            offset += sizeof(brw_compact_inst);
    #####:    #####: 1450:            compacted_count--;
    #####:    #####: 1451:            compacted_counts[src_offset / sizeof(brw_inst)] = compacted_count;
    #####:    #####: 1452:            old_ip[offset / sizeof(brw_compact_inst)] = src_offset / sizeof(brw_inst);
        -:        -: 1453:
    #####:    #####: 1454:            dst = store + offset;
        -:        -: 1455:         }
        -:        -: 1456:
        -:        -: 1457:         /* If we didn't compact this intruction, we need to move it down into
        -:        -: 1458:          * place.
        -:        -: 1459:          */
      150:      154: 1460:         if (offset != src_offset) {
      130:      140: 1461:            memmove(dst, src, sizeof(brw_inst));
        -:        -: 1462:         }
      150:      154: 1463:         offset += sizeof(brw_inst);
        -:        -: 1464:      }
        -:        -: 1465:   }
        -:        -: 1466:
        -:        -: 1467:   /* Fix up control flow offsets. */
        7:        7: 1468:   p->next_insn_offset = start_offset + offset;
      226:      234: 1469:   for (offset = 0; offset < p->next_insn_offset - start_offset;
      212:      220: 1470:        offset = next_offset(devinfo, store, offset)) {
      212:      220: 1471:      brw_inst *insn = store + offset;
      212:      220: 1472:      int this_old_ip = old_ip[offset / sizeof(brw_compact_inst)];
      212:      220: 1473:      int this_compacted_count = compacted_counts[this_old_ip];
        -:        -: 1474:
      212:      220: 1475:      switch (brw_inst_opcode(devinfo, insn)) {
        -:        -: 1476:      case BRW_OPCODE_BREAK:
        -:        -: 1477:      case BRW_OPCODE_CONTINUE:
        -:        -: 1478:      case BRW_OPCODE_HALT:
        8:       12: 1479:         if (devinfo->gen >= 6) {
        8:       12: 1480:            update_uip_jip(devinfo, insn, this_old_ip, compacted_counts);
        -:        -: 1481:         } else {
    #####:    #####: 1482:            update_gen4_jump_count(devinfo, insn, this_old_ip,
    #####:    #####: 1483:                                   compacted_counts);
        -:        -: 1484:         }
        8:       12: 1485:         break;
        -:        -: 1486:
        -:        -: 1487:      case BRW_OPCODE_IF:
        -:        -: 1488:      case BRW_OPCODE_IFF:
        -:        -: 1489:      case BRW_OPCODE_ELSE:
        -:        -: 1490:      case BRW_OPCODE_ENDIF:
        -:        -: 1491:      case BRW_OPCODE_WHILE:
       40:       36: 1492:         if (devinfo->gen >= 7) {
    #####:    #####: 1493:            if (brw_inst_cmpt_control(devinfo, insn)) {
        -:        -: 1494:               brw_inst uncompacted;
    #####:    #####: 1495:               brw_uncompact_instruction(devinfo, &uncompacted,
        -:        -: 1496:                                         (brw_compact_inst *)insn);
        -:        -: 1497:
    #####:    #####: 1498:               update_uip_jip(devinfo, &uncompacted, this_old_ip,
    #####:    #####: 1499:                              compacted_counts);
        -:        -: 1500:
    #####:    #####: 1501:               bool ret = brw_try_compact_instruction(devinfo,
        -:        -: 1502:                                                      (brw_compact_inst *)insn,
        -:        -: 1503:                                                      &uncompacted);
    #####:    #####: 1504:               assert(ret); (void)ret;
        -:        -: 1505:            } else {
    #####:    #####: 1506:               update_uip_jip(devinfo, insn, this_old_ip, compacted_counts);
        -:        -: 1507:            }
       40:       36: 1508:         } else if (devinfo->gen == 6) {
       40:       36: 1509:            assert(!brw_inst_cmpt_control(devinfo, insn));
        -:        -: 1510:
        -:        -: 1511:            /* Jump Count is in units of compacted instructions on Gen6. */
       40:       36: 1512:            int jump_count_compacted = brw_inst_gen6_jump_count(devinfo, insn);
        -:        -: 1513:
       40:       36: 1514:            int target_old_ip = this_old_ip + (jump_count_compacted / 2);
       40:       36: 1515:            int target_compacted_count = compacted_counts[target_old_ip];
       40:       36: 1516:            jump_count_compacted -= (target_compacted_count - this_compacted_count);
       40:       36: 1517:            brw_inst_set_gen6_jump_count(devinfo, insn, jump_count_compacted);
        -:        -: 1518:         } else {
    #####:    #####: 1519:            update_gen4_jump_count(devinfo, insn, this_old_ip,
    #####:    #####: 1520:                                   compacted_counts);
        -:        -: 1521:         }
       40:       36: 1522:         break;
        -:        -: 1523:
        -:        -: 1524:      case BRW_OPCODE_ADD:
        -:        -: 1525:         /* Add instructions modifying the IP register use an immediate src1,
        -:        -: 1526:          * and Gens that use this cannot compact instructions with immediate
        -:        -: 1527:          * operands.
        -:        -: 1528:          */
       17:       17: 1529:         if (brw_inst_cmpt_control(devinfo, insn))
        6:        6: 1530:            break;
        -:        -: 1531:
       11:       11: 1532:         if (brw_inst_dst_reg_file(devinfo, insn) == BRW_ARCHITECTURE_REGISTER_FILE &&
    #####:    #####: 1533:             brw_inst_dst_da_reg_nr(devinfo, insn) == BRW_ARF_IP) {
    #####:    #####: 1534:            assert(brw_inst_src1_reg_file(devinfo, insn) == BRW_IMMEDIATE_VALUE);
        -:        -: 1535:
    #####:    #####: 1536:            int shift = 3;
    #####:    #####: 1537:            int jump_compacted = brw_inst_imm_d(devinfo, insn) >> shift;
        -:        -: 1538:
    #####:    #####: 1539:            int target_old_ip = this_old_ip + (jump_compacted / 2);
    #####:    #####: 1540:            int target_compacted_count = compacted_counts[target_old_ip];
    #####:    #####: 1541:            jump_compacted -= (target_compacted_count - this_compacted_count);
    #####:    #####: 1542:            brw_inst_set_imm_ud(devinfo, insn, jump_compacted << shift);
        -:        -: 1543:         }
       11:       11: 1544:         break;
        -:        -: 1545:      }
        -:        -: 1546:   }
        -:        -: 1547:
        -:        -: 1548:   /* p->nr_insn is counting the number of uncompacted instructions still, so
        -:        -: 1549:    * divide.  We do want to be sure there's a valid instruction in any
        -:        -: 1550:    * alignment padding, so that the next compression pass (for the FS 8/16
        -:        -: 1551:    * compile passes) parses correctly.
        -:        -: 1552:    */
        7:        7: 1553:   if (p->next_insn_offset & sizeof(brw_compact_inst)) {
        2:        2: 1554:      brw_compact_inst *align = store + offset;
        2:        2: 1555:      memset(align, 0, sizeof(*align));
        2:        2: 1556:      brw_compact_inst_set_opcode(devinfo, align, BRW_OPCODE_NOP);
        2:        2: 1557:      brw_compact_inst_set_cmpt_control(devinfo, align, true);
        2:        2: 1558:      p->next_insn_offset += sizeof(brw_compact_inst);
        -:        -: 1559:   }
        7:        7: 1560:   p->nr_insn = p->next_insn_offset / sizeof(brw_inst);
        -:        -: 1561:
        -:        -: 1562:   /* Update the instruction offsets for each annotation. */
        7:        7: 1563:   if (annotation) {
    #####:    #####: 1564:      for (int offset = 0, i = 0; i < num_annotations; i++) {
    #####:    #####: 1565:         while (start_offset + old_ip[offset / sizeof(brw_compact_inst)] *
    #####:    #####: 1566:                sizeof(brw_inst) != annotation[i].offset) {
    #####:    #####: 1567:            assert(start_offset + old_ip[offset / sizeof(brw_compact_inst)] *
        -:        -: 1568:                   sizeof(brw_inst) < annotation[i].offset);
    #####:    #####: 1569:            offset = next_offset(devinfo, store, offset);
        -:        -: 1570:         }
        -:        -: 1571:
    #####:    #####: 1572:         annotation[i].offset = start_offset + offset;
        -:        -: 1573:
    #####:    #####: 1574:         offset = next_offset(devinfo, store, offset);
        -:        -: 1575:      }
        -:        -: 1576:
    #####:    #####: 1577:      annotation[num_annotations].offset = p->next_insn_offset;
        -:        -: 1578:   }
        -:        -: 1579:}

src/intel/brw_eu_emit.c.gcov

        -:        -:    0:Source:compiler/brw_eu_emit.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_eu_emit.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_eu_emit.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: Copyright (C) Intel Corp.  2006.  All Rights Reserved.
        -:        -:    3: Intel funded Tungsten Graphics to
        -:        -:    4: develop this 3D driver.
        -:        -:    5:
        -:        -:    6: Permission is hereby granted, free of charge, to any person obtaining
        -:        -:    7: a copy of this software and associated documentation files (the
        -:        -:    8: "Software"), to deal in the Software without restriction, including
        -:        -:    9: without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   10: distribute, sublicense, and/or sell copies of the Software, and to
        -:        -:   11: permit persons to whom the Software is furnished to do so, subject to
        -:        -:   12: the following conditions:
        -:        -:   13:
        -:        -:   14: The above copyright notice and this permission notice (including the
        -:        -:   15: next paragraph) shall be included in all copies or substantial
        -:        -:   16: portions of the Software.
        -:        -:   17:
        -:        -:   18: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        -:        -:   19: EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   20: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        -:        -:   21: IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
        -:        -:   22: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
        -:        -:   23: OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
        -:        -:   24: WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   25:
        -:        -:   26: **********************************************************************/
        -:        -:   27: /*
        -:        -:   28:  * Authors:
        -:        -:   29:  *   Keith Whitwell <keithw@vmware.com>
        -:        -:   30:  */
        -:        -:   31:
        -:        -:   32:
        -:        -:   33:#include "brw_eu_defines.h"
        -:        -:   34:#include "brw_eu.h"
        -:        -:   35:
        -:        -:   36:#include "util/ralloc.h"
        -:        -:   37:
        -:        -:   38:/**
        -:        -:   39: * Prior to Sandybridge, the SEND instruction accepted non-MRF source
        -:        -:   40: * registers, implicitly moving the operand to a message register.
        -:        -:   41: *
        -:        -:   42: * On Sandybridge, this is no longer the case.  This function performs the
        -:        -:   43: * explicit move; it should be called before emitting a SEND instruction.
        -:        -:   44: */
        -:        -:   45:void
        2:        2:   46:gen6_resolve_implied_move(struct brw_codegen *p,
        -:        -:   47:			  struct brw_reg *src,
        -:        -:   48:			  unsigned msg_reg_nr)
        -:        -:   49:{
        2:        2:   50:   const struct gen_device_info *devinfo = p->devinfo;
        2:        2:   51:   if (devinfo->gen < 6)
    #####:    #####:   52:      return;
        -:        -:   53:
        2:        2:   54:   if (src->file == BRW_MESSAGE_REGISTER_FILE)
    #####:    #####:   55:      return;
        -:        -:   56:
        2:        2:   57:   if (src->file != BRW_ARCHITECTURE_REGISTER_FILE || src->nr != BRW_ARF_NULL) {
        2:        2:   58:      brw_push_insn_state(p);
        2:        2:   59:      brw_set_default_exec_size(p, BRW_EXECUTE_8);
        2:        2:   60:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        2:        2:   61:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
        2:        2:   62:      brw_MOV(p, retype(brw_message_reg(msg_reg_nr), BRW_REGISTER_TYPE_UD),
        -:        -:   63:	      retype(*src, BRW_REGISTER_TYPE_UD));
        2:        2:   64:      brw_pop_insn_state(p);
        -:        -:   65:   }
        2:        2:   66:   *src = brw_message_reg(msg_reg_nr);
        -:        -:   67:}
        -:        -:   68:
        -:        -:   69:static void
      548:      568:   70:gen7_convert_mrf_to_grf(struct brw_codegen *p, struct brw_reg *reg)
        -:        -:   71:{
        -:        -:   72:   /* From the Ivybridge PRM, Volume 4 Part 3, page 218 ("send"):
        -:        -:   73:    * "The send with EOT should use register space R112-R127 for <src>. This is
        -:        -:   74:    *  to enable loading of a new thread into the same slot while the message
        -:        -:   75:    *  with EOT for current thread is pending dispatch."
        -:        -:   76:    *
        -:        -:   77:    * Since we're pretending to have 16 MRFs anyway, we may as well use the
        -:        -:   78:    * registers required for messages with EOT.
        -:        -:   79:    */
      548:      568:   80:   const struct gen_device_info *devinfo = p->devinfo;
      548:      568:   81:   if (devinfo->gen >= 7 && reg->file == BRW_MESSAGE_REGISTER_FILE) {
    #####:    #####:   82:      reg->file = BRW_GENERAL_REGISTER_FILE;
    #####:    #####:   83:      reg->nr += GEN7_MRF_HACK_START;
        -:        -:   84:   }
      548:      568:   85:}
        -:        -:   86:
        -:        -:   87:/**
        -:        -:   88: * Convert a brw_reg_type enumeration value into the hardware representation.
        -:        -:   89: *
        -:        -:   90: * The hardware encoding may depend on whether the value is an immediate.
        -:        -:   91: */
        -:        -:   92:unsigned
      530:      550:   93:brw_reg_type_to_hw_type(const struct gen_device_info *devinfo,
        -:        -:   94:                        enum brw_reg_type type, enum brw_reg_file file)
        -:        -:   95:{
      530:      550:   96:   if (file == BRW_IMMEDIATE_VALUE) {
        -:        -:   97:      static const int imm_hw_types[] = {
        -:        -:   98:         [BRW_REGISTER_TYPE_UD] = BRW_HW_REG_TYPE_UD,
        -:        -:   99:         [BRW_REGISTER_TYPE_D]  = BRW_HW_REG_TYPE_D,
        -:        -:  100:         [BRW_REGISTER_TYPE_UW] = BRW_HW_REG_TYPE_UW,
        -:        -:  101:         [BRW_REGISTER_TYPE_W]  = BRW_HW_REG_TYPE_W,
        -:        -:  102:         [BRW_REGISTER_TYPE_F]  = BRW_HW_REG_TYPE_F,
        -:        -:  103:         [BRW_REGISTER_TYPE_UB] = -1,
        -:        -:  104:         [BRW_REGISTER_TYPE_B]  = -1,
        -:        -:  105:         [BRW_REGISTER_TYPE_UV] = BRW_HW_REG_IMM_TYPE_UV,
        -:        -:  106:         [BRW_REGISTER_TYPE_VF] = BRW_HW_REG_IMM_TYPE_VF,
        -:        -:  107:         [BRW_REGISTER_TYPE_V]  = BRW_HW_REG_IMM_TYPE_V,
        -:        -:  108:         [BRW_REGISTER_TYPE_DF] = GEN8_HW_REG_IMM_TYPE_DF,
        -:        -:  109:         [BRW_REGISTER_TYPE_HF] = GEN8_HW_REG_IMM_TYPE_HF,
        -:        -:  110:         [BRW_REGISTER_TYPE_UQ] = GEN8_HW_REG_TYPE_UQ,
        -:        -:  111:         [BRW_REGISTER_TYPE_Q]  = GEN8_HW_REG_TYPE_Q,
        -:        -:  112:      };
       91:       99:  113:      assert(type < ARRAY_SIZE(imm_hw_types));
       91:       99:  114:      assert(imm_hw_types[type] != -1);
       91:       99:  115:      assert(devinfo->gen >= 8 || type < BRW_REGISTER_TYPE_DF);
       91:       99:  116:      return imm_hw_types[type];
        -:        -:  117:   } else {
        -:        -:  118:      /* Non-immediate registers */
        -:        -:  119:      static const int hw_types[] = {
        -:        -:  120:         [BRW_REGISTER_TYPE_UD] = BRW_HW_REG_TYPE_UD,
        -:        -:  121:         [BRW_REGISTER_TYPE_D]  = BRW_HW_REG_TYPE_D,
        -:        -:  122:         [BRW_REGISTER_TYPE_UW] = BRW_HW_REG_TYPE_UW,
        -:        -:  123:         [BRW_REGISTER_TYPE_W]  = BRW_HW_REG_TYPE_W,
        -:        -:  124:         [BRW_REGISTER_TYPE_UB] = BRW_HW_REG_NON_IMM_TYPE_UB,
        -:        -:  125:         [BRW_REGISTER_TYPE_B]  = BRW_HW_REG_NON_IMM_TYPE_B,
        -:        -:  126:         [BRW_REGISTER_TYPE_F]  = BRW_HW_REG_TYPE_F,
        -:        -:  127:         [BRW_REGISTER_TYPE_UV] = -1,
        -:        -:  128:         [BRW_REGISTER_TYPE_VF] = -1,
        -:        -:  129:         [BRW_REGISTER_TYPE_V]  = -1,
        -:        -:  130:         [BRW_REGISTER_TYPE_DF] = GEN7_HW_REG_NON_IMM_TYPE_DF,
        -:        -:  131:         [BRW_REGISTER_TYPE_HF] = GEN8_HW_REG_NON_IMM_TYPE_HF,
        -:        -:  132:         [BRW_REGISTER_TYPE_UQ] = GEN8_HW_REG_TYPE_UQ,
        -:        -:  133:         [BRW_REGISTER_TYPE_Q]  = GEN8_HW_REG_TYPE_Q,
        -:        -:  134:      };
      439:      451:  135:      assert(type < ARRAY_SIZE(hw_types));
      439:      451:  136:      assert(hw_types[type] != -1);
      439:      451:  137:      assert(devinfo->gen >= 7 || type < BRW_REGISTER_TYPE_DF);
      439:      451:  138:      assert(devinfo->gen >= 8 || type < BRW_REGISTER_TYPE_Q);
      439:      451:  139:      return hw_types[type];
        -:        -:  140:   }
        -:        -:  141:}
        -:        -:  142:
        -:        -:  143:/**
        -:        -:  144: * Return the element size given a hardware register type and file.
        -:        -:  145: *
        -:        -:  146: * The hardware encoding may depend on whether the value is an immediate.
        -:        -:  147: */
        -:        -:  148:unsigned
      769:      793:  149:brw_hw_reg_type_to_size(const struct gen_device_info *devinfo,
        -:        -:  150:                        unsigned type, enum brw_reg_file file)
        -:        -:  151:{
      769:      793:  152:   if (file == BRW_IMMEDIATE_VALUE) {
        -:        -:  153:      static const unsigned imm_hw_sizes[] = {
        -:        -:  154:         [BRW_HW_REG_TYPE_UD]      = 4,
        -:        -:  155:         [BRW_HW_REG_TYPE_D]       = 4,
        -:        -:  156:         [BRW_HW_REG_TYPE_UW]      = 2,
        -:        -:  157:         [BRW_HW_REG_TYPE_W]       = 2,
        -:        -:  158:         [BRW_HW_REG_IMM_TYPE_UV]  = 2,
        -:        -:  159:         [BRW_HW_REG_IMM_TYPE_VF]  = 4,
        -:        -:  160:         [BRW_HW_REG_IMM_TYPE_V]   = 2,
        -:        -:  161:         [BRW_HW_REG_TYPE_F]       = 4,
        -:        -:  162:         [GEN8_HW_REG_TYPE_UQ]     = 8,
        -:        -:  163:         [GEN8_HW_REG_TYPE_Q]      = 8,
        -:        -:  164:         [GEN8_HW_REG_IMM_TYPE_DF] = 8,
        -:        -:  165:         [GEN8_HW_REG_IMM_TYPE_HF] = 2,
        -:        -:  166:      };
    #####:    #####:  167:      assert(type < ARRAY_SIZE(imm_hw_sizes));
    #####:    #####:  168:      assert(devinfo->gen >= 6 || type != BRW_HW_REG_IMM_TYPE_UV);
    #####:    #####:  169:      assert(devinfo->gen >= 8 || type <= BRW_HW_REG_TYPE_F);
    #####:    #####:  170:      return imm_hw_sizes[type];
        -:        -:  171:   } else {
        -:        -:  172:      /* Non-immediate registers */
        -:        -:  173:      static const unsigned hw_sizes[] = {
        -:        -:  174:         [BRW_HW_REG_TYPE_UD]          = 4,
        -:        -:  175:         [BRW_HW_REG_TYPE_D]           = 4,
        -:        -:  176:         [BRW_HW_REG_TYPE_UW]          = 2,
        -:        -:  177:         [BRW_HW_REG_TYPE_W]           = 2,
        -:        -:  178:         [BRW_HW_REG_NON_IMM_TYPE_UB]  = 1,
        -:        -:  179:         [BRW_HW_REG_NON_IMM_TYPE_B]   = 1,
        -:        -:  180:         [GEN7_HW_REG_NON_IMM_TYPE_DF] = 8,
        -:        -:  181:         [BRW_HW_REG_TYPE_F]           = 4,
        -:        -:  182:         [GEN8_HW_REG_TYPE_UQ]         = 8,
        -:        -:  183:         [GEN8_HW_REG_TYPE_Q]          = 8,
        -:        -:  184:         [GEN8_HW_REG_NON_IMM_TYPE_HF] = 2,
        -:        -:  185:      };
      769:      793:  186:      assert(type < ARRAY_SIZE(hw_sizes));
      769:      793:  187:      assert(devinfo->gen >= 7 ||
        -:        -:  188:             (type < GEN7_HW_REG_NON_IMM_TYPE_DF || type == BRW_HW_REG_TYPE_F));
      769:      793:  189:      assert(devinfo->gen >= 8 || type <= BRW_HW_REG_TYPE_F);
      769:      793:  190:      return hw_sizes[type];
        -:        -:  191:   }
        -:        -:  192:}
        -:        -:  193:
        -:        -:  194:void
      194:      202:  195:brw_set_dest(struct brw_codegen *p, brw_inst *inst, struct brw_reg dest)
        -:        -:  196:{
      194:      202:  197:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  198:
      194:      202:  199:   if (dest.file == BRW_MESSAGE_REGISTER_FILE)
       22:       22:  200:      assert((dest.nr & ~BRW_MRF_COMPR4) < BRW_MAX_MRF(devinfo->gen));
      172:      180:  201:   else if (dest.file != BRW_ARCHITECTURE_REGISTER_FILE)
      135:      131:  202:      assert(dest.nr < 128);
        -:        -:  203:
      194:      202:  204:   gen7_convert_mrf_to_grf(p, &dest);
        -:        -:  205:
      194:      202:  206:   brw_inst_set_dst_reg_file(devinfo, inst, dest.file);
      194:      202:  207:   brw_inst_set_dst_reg_type(devinfo, inst,
      194:      202:  208:                             brw_reg_type_to_hw_type(devinfo, dest.type,
      194:      202:  209:                                                     dest.file));
      194:      202:  210:   brw_inst_set_dst_address_mode(devinfo, inst, dest.address_mode);
        -:        -:  211:
      194:      202:  212:   if (dest.address_mode == BRW_ADDRESS_DIRECT) {
      194:      202:  213:      brw_inst_set_dst_da_reg_nr(devinfo, inst, dest.nr);
        -:        -:  214:
      194:      202:  215:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
      181:      189:  216:         brw_inst_set_dst_da1_subreg_nr(devinfo, inst, dest.subnr);
      181:      189:  217:	 if (dest.hstride == BRW_HORIZONTAL_STRIDE_0)
       40:       36:  218:	    dest.hstride = BRW_HORIZONTAL_STRIDE_1;
      181:      189:  219:         brw_inst_set_dst_hstride(devinfo, inst, dest.hstride);
        -:        -:  220:      } else {
       13:       13:  221:         brw_inst_set_dst_da16_subreg_nr(devinfo, inst, dest.subnr / 16);
       13:       13:  222:         brw_inst_set_da16_writemask(devinfo, inst, dest.writemask);
       26:       26:  223:         if (dest.file == BRW_GENERAL_REGISTER_FILE ||
       13:       13:  224:             dest.file == BRW_MESSAGE_REGISTER_FILE) {
       11:       11:  225:            assert(dest.writemask != 0);
        -:        -:  226:         }
        -:        -:  227:	 /* From the Ivybridge PRM, Vol 4, Part 3, Section 5.2.4.1:
        -:        -:  228:	  *    Although Dst.HorzStride is a don't care for Align16, HW needs
        -:        -:  229:	  *    this to be programmed as "01".
        -:        -:  230:	  */
       13:       13:  231:         brw_inst_set_dst_hstride(devinfo, inst, 1);
        -:        -:  232:      }
        -:        -:  233:   } else {
    #####:    #####:  234:      brw_inst_set_dst_ia_subreg_nr(devinfo, inst, dest.subnr);
        -:        -:  235:
        -:        -:  236:      /* These are different sizes in align1 vs align16:
        -:        -:  237:       */
    #####:    #####:  238:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
    #####:    #####:  239:         brw_inst_set_dst_ia1_addr_imm(devinfo, inst,
    #####:    #####:  240:                                       dest.indirect_offset);
    #####:    #####:  241:	 if (dest.hstride == BRW_HORIZONTAL_STRIDE_0)
    #####:    #####:  242:	    dest.hstride = BRW_HORIZONTAL_STRIDE_1;
    #####:    #####:  243:         brw_inst_set_dst_hstride(devinfo, inst, dest.hstride);
        -:        -:  244:      } else {
    #####:    #####:  245:         brw_inst_set_dst_ia16_addr_imm(devinfo, inst,
    #####:    #####:  246:                                        dest.indirect_offset);
        -:        -:  247:	 /* even ignored in da16, still need to set as '01' */
    #####:    #####:  248:         brw_inst_set_dst_hstride(devinfo, inst, 1);
        -:        -:  249:      }
        -:        -:  250:   }
        -:        -:  251:
        -:        -:  252:   /* Generators should set a default exec_size of either 8 (SIMD4x2 or SIMD8)
        -:        -:  253:    * or 16 (SIMD16), as that's normally correct.  However, when dealing with
        -:        -:  254:    * small registers, we automatically reduce it to match the register size.
        -:        -:  255:    *
        -:        -:  256:    * In platforms that support fp64 we can emit instructions with a width of
        -:        -:  257:    * 4 that need two SIMD8 registers and an exec_size of 8 or 16. In these
        -:        -:  258:    * cases we need to make sure that these instructions have their exec sizes
        -:        -:  259:    * set properly when they are emitted and we can't rely on this code to fix
        -:        -:  260:    * it.
        -:        -:  261:    */
        -:        -:  262:   bool fix_exec_size;
      194:      202:  263:   if (devinfo->gen >= 6)
      194:      202:  264:      fix_exec_size = dest.width < BRW_EXECUTE_4;
        -:        -:  265:   else
    #####:    #####:  266:      fix_exec_size = dest.width < BRW_EXECUTE_8;
        -:        -:  267:
      194:      202:  268:   if (fix_exec_size)
       40:       36:  269:      brw_inst_set_exec_size(devinfo, inst, dest.width);
      194:      202:  270:}
        -:        -:  271:
        -:        -:  272:static void
      336:      348:  273:validate_reg(const struct gen_device_info *devinfo,
        -:        -:  274:             brw_inst *inst, struct brw_reg reg)
        -:        -:  275:{
      336:      348:  276:   const int hstride_for_reg[] = {0, 1, 2, 4};
      336:      348:  277:   const int vstride_for_reg[] = {0, 1, 2, 4, 8, 16, 32};
      336:      348:  278:   const int width_for_reg[] = {1, 2, 4, 8, 16};
      336:      348:  279:   const int execsize_for_reg[] = {1, 2, 4, 8, 16, 32};
        -:        -:  280:   int width, hstride, vstride, execsize;
        -:        -:  281:
      336:      348:  282:   if (reg.file == BRW_IMMEDIATE_VALUE) {
        -:        -:  283:      /* 3.3.6: Region Parameters.  Restriction: Immediate vectors
        -:        -:  284:       * mean the destination has to be 128-bit aligned and the
        -:        -:  285:       * destination horiz stride has to be a word.
        -:        -:  286:       */
       51:       63:  287:      if (reg.type == BRW_REGISTER_TYPE_V) {
        3:        3:  288:         unsigned UNUSED elem_size = brw_element_size(devinfo, inst, dst);
        3:        3:  289:         assert(hstride_for_reg[brw_inst_dst_hstride(devinfo, inst)] *
        -:        -:  290:                elem_size == 2);
        -:        -:  291:      }
        -:        -:  292:
      202:      222:  293:      return;
        -:        -:  294:   }
        -:        -:  295:
      385:      381:  296:   if (reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
      100:       96:  297:       reg.file == BRW_ARF_NULL)
      100:       96:  298:      return;
        -:        -:  299:
        -:        -:  300:   /* From the IVB PRM Vol. 4, Pt. 3, Section 3.3.3.5:
        -:        -:  301:    *
        -:        -:  302:    *    "Swizzling is not allowed when an accumulator is used as an implicit
        -:        -:  303:    *    source or an explicit source in an instruction."
        -:        -:  304:    */
      185:      189:  305:   if (reg.file == BRW_ARCHITECTURE_REGISTER_FILE &&
    #####:    #####:  306:       reg.nr == BRW_ARF_ACCUMULATOR)
    #####:    #####:  307:      assert(reg.swizzle == BRW_SWIZZLE_XYZW);
        -:        -:  308:
        -:        -:  309:   assert(reg.hstride >= 0 && reg.hstride < ARRAY_SIZE(hstride_for_reg));
      185:      189:  310:   hstride = hstride_for_reg[reg.hstride];
        -:        -:  311:
      185:      189:  312:   if (reg.vstride == 0xf) {
    #####:    #####:  313:      vstride = -1;
        -:        -:  314:   } else {
      185:      189:  315:      assert(reg.vstride >= 0 && reg.vstride < ARRAY_SIZE(vstride_for_reg));
      185:      189:  316:      vstride = vstride_for_reg[reg.vstride];
        -:        -:  317:   }
        -:        -:  318:
      185:      189:  319:   assert(reg.width >= 0 && reg.width < ARRAY_SIZE(width_for_reg));
      185:      189:  320:   width = width_for_reg[reg.width];
        -:        -:  321:
      185:      189:  322:   assert(brw_inst_exec_size(devinfo, inst) >= 0 &&
        -:        -:  323:          brw_inst_exec_size(devinfo, inst) < ARRAY_SIZE(execsize_for_reg));
      185:      189:  324:   execsize = execsize_for_reg[brw_inst_exec_size(devinfo, inst)];
        -:        -:  325:
        -:        -:  326:   /* Restrictions from 3.3.10: Register Region Restrictions. */
        -:        -:  327:   /* 3. */
      185:      189:  328:   assert(execsize >= width);
        -:        -:  329:
        -:        -:  330:   /* 4. */
      185:      189:  331:   if (execsize == width && hstride != 0) {
       74:       76:  332:      assert(vstride == -1 || vstride == width * hstride);
        -:        -:  333:   }
        -:        -:  334:
        -:        -:  335:   /* 5. */
        -:        -:  336:   if (execsize == width && hstride == 0) {
        -:        -:  337:      /* no restriction on vstride. */
        -:        -:  338:   }
        -:        -:  339:
        -:        -:  340:   /* 6. */
      185:      189:  341:   if (width == 1) {
       34:       34:  342:      assert(hstride == 0);
        -:        -:  343:   }
        -:        -:  344:
        -:        -:  345:   /* 7. */
      185:      189:  346:   if (execsize == 1 && width == 1) {
    #####:    #####:  347:      assert(hstride == 0);
    #####:    #####:  348:      assert(vstride == 0);
        -:        -:  349:   }
        -:        -:  350:
        -:        -:  351:   /* 8. */
      185:      189:  352:   if (vstride == 0 && hstride == 0) {
       34:       34:  353:      assert(width == 1);
        -:        -:  354:   }
        -:        -:  355:
        -:        -:  356:   /* 10. Check destination issues. */
        -:        -:  357:}
        -:        -:  358:
        -:        -:  359:static bool
       15:       19:  360:is_compactable_immediate(unsigned imm)
        -:        -:  361:{
        -:        -:  362:   /* We get the low 12 bits as-is. */
       15:       19:  363:   imm &= ~0xfff;
        -:        -:  364:
        -:        -:  365:   /* We get one bit replicated through the top 20 bits. */
       15:       19:  366:   return imm == 0 || imm == 0xfffff000;
        -:        -:  367:}
        -:        -:  368:
        -:        -:  369:void
      194:      202:  370:brw_set_src0(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg)
        -:        -:  371:{
      194:      202:  372:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  373:
      194:      202:  374:   if (reg.file == BRW_MESSAGE_REGISTER_FILE)
        7:        7:  375:      assert((reg.nr & ~BRW_MRF_COMPR4) < BRW_MAX_MRF(devinfo->gen));
      187:      195:  376:   else if (reg.file != BRW_ARCHITECTURE_REGISTER_FILE)
      139:      147:  377:      assert(reg.nr < 128);
        -:        -:  378:
      194:      202:  379:   gen7_convert_mrf_to_grf(p, ®);
        -:        -:  380:
      386:      402:  381:   if (devinfo->gen >= 6 && (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND ||
      192:      200:  382:                             brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SENDC)) {
        -:        -:  383:      /* Any source modifiers or regions will be ignored, since this just
        -:        -:  384:       * identifies the MRF/GRF to start reading the message contents from.
        -:        -:  385:       * Check for some likely failures.
        -:        -:  386:       */
        7:        7:  387:      assert(!reg.negate);
        7:        7:  388:      assert(!reg.abs);
        7:        7:  389:      assert(reg.address_mode == BRW_ADDRESS_DIRECT);
        -:        -:  390:   }
        -:        -:  391:
      194:      202:  392:   validate_reg(devinfo, inst, reg);
        -:        -:  393:
      194:      202:  394:   brw_inst_set_src0_reg_file(devinfo, inst, reg.file);
      194:      202:  395:   brw_inst_set_src0_reg_type(devinfo, inst,
      194:      202:  396:                              brw_reg_type_to_hw_type(devinfo, reg.type, reg.file));
      194:      202:  397:   brw_inst_set_src0_abs(devinfo, inst, reg.abs);
      194:      202:  398:   brw_inst_set_src0_negate(devinfo, inst, reg.negate);
      194:      202:  399:   brw_inst_set_src0_address_mode(devinfo, inst, reg.address_mode);
        -:        -:  400:
      194:      202:  401:   if (reg.file == BRW_IMMEDIATE_VALUE) {
       30:       38:  402:      if (reg.type == BRW_REGISTER_TYPE_DF ||
       15:       19:  403:          brw_inst_opcode(devinfo, inst) == BRW_OPCODE_DIM)
    #####:    #####:  404:         brw_inst_set_imm_df(devinfo, inst, reg.df);
       30:       38:  405:      else if (reg.type == BRW_REGISTER_TYPE_UQ ||
       15:       19:  406:               reg.type == BRW_REGISTER_TYPE_Q)
    #####:    #####:  407:         brw_inst_set_imm_uq(devinfo, inst, reg.u64);
        -:        -:  408:      else
       15:       19:  409:         brw_inst_set_imm_ud(devinfo, inst, reg.ud);
        -:        -:  410:
        -:        -:  411:      /* The Bspec's section titled "Non-present Operands" claims that if src0
        -:        -:  412:       * is an immediate that src1's type must be the same as that of src0.
        -:        -:  413:       *
        -:        -:  414:       * The SNB+ DataTypeIndex instruction compaction tables contain mappings
        -:        -:  415:       * that do not follow this rule. E.g., from the IVB/HSW table:
        -:        -:  416:       *
        -:        -:  417:       *  DataTypeIndex   18-Bit Mapping       Mapped Meaning
        -:        -:  418:       *        3         001000001011111101   r:f | i:vf | a:ud | <1> | dir |
        -:        -:  419:       *
        -:        -:  420:       * And from the SNB table:
        -:        -:  421:       *
        -:        -:  422:       *  DataTypeIndex   18-Bit Mapping       Mapped Meaning
        -:        -:  423:       *        8         001000000111101100   a:w | i:w | a:ud | <1> | dir |
        -:        -:  424:       *
        -:        -:  425:       * Neither of these cause warnings from the simulator when used,
        -:        -:  426:       * compacted or otherwise. In fact, all compaction mappings that have an
        -:        -:  427:       * immediate in src0 use a:ud for src1.
        -:        -:  428:       *
        -:        -:  429:       * The GM45 instruction compaction tables do not contain mapped meanings
        -:        -:  430:       * so it's not clear whether it has the restriction. We'll assume it was
        -:        -:  431:       * lifted on SNB. (FINISHME: decode the GM45 tables and check.)
        -:        -:  432:       *
        -:        -:  433:       * Don't do any of this for 64-bit immediates, since the src1 fields
        -:        -:  434:       * overlap with the immediate and setting them would overwrite the
        -:        -:  435:       * immediate we set.
        -:        -:  436:       */
       15:       19:  437:      if (type_sz(reg.type) < 8) {
       15:       19:  438:         brw_inst_set_src1_reg_file(devinfo, inst,
        -:        -:  439:                                    BRW_ARCHITECTURE_REGISTER_FILE);
       15:       19:  440:         if (devinfo->gen < 6) {
    #####:    #####:  441:            brw_inst_set_src1_reg_type(devinfo, inst,
        -:        -:  442:                                       brw_inst_src0_reg_type(devinfo, inst));
        -:        -:  443:         } else {
       15:       19:  444:            brw_inst_set_src1_reg_type(devinfo, inst, BRW_HW_REG_TYPE_UD);
        -:        -:  445:         }
        -:        -:  446:      }
        -:        -:  447:
        -:        -:  448:      /* Compacted instructions only have 12-bits (plus 1 for the other 20)
        -:        -:  449:       * for immediate values. Presumably the hardware engineers realized
        -:        -:  450:       * that the only useful floating-point value that could be represented
        -:        -:  451:       * in this format is 0.0, which can also be represented as a VF-typed
        -:        -:  452:       * immediate, so they gave us the previously mentioned mapping on IVB+.
        -:        -:  453:       *
        -:        -:  454:       * Strangely, we do have a mapping for imm:f in src1, so we don't need
        -:        -:  455:       * to do this there.
        -:        -:  456:       *
        -:        -:  457:       * If we see a 0.0:F, change the type to VF so that it can be compacted.
        -:        -:  458:       */
       21:       29:  459:      if (brw_inst_imm_ud(devinfo, inst) == 0x0 &&
        6:       10:  460:          brw_inst_src0_reg_type(devinfo, inst) == BRW_HW_REG_TYPE_F &&
    #####:    #####:  461:          brw_inst_dst_reg_type(devinfo, inst) != GEN7_HW_REG_NON_IMM_TYPE_DF) {
    #####:    #####:  462:         brw_inst_set_src0_reg_type(devinfo, inst, BRW_HW_REG_IMM_TYPE_VF);
        -:        -:  463:      }
        -:        -:  464:
        -:        -:  465:      /* There are no mappings for dst:d | i:d, so if the immediate is suitable
        -:        -:  466:       * set the types to :UD so the instruction can be compacted.
        -:        -:  467:       */
       29:       37:  468:      if (is_compactable_immediate(brw_inst_imm_ud(devinfo, inst)) &&
       28:       36:  469:          brw_inst_cond_modifier(devinfo, inst) == BRW_CONDITIONAL_NONE &&
       28:       36:  470:          brw_inst_src0_reg_type(devinfo, inst) == BRW_HW_REG_TYPE_D &&
       14:       18:  471:          brw_inst_dst_reg_type(devinfo, inst) == BRW_HW_REG_TYPE_D) {
       14:       18:  472:         brw_inst_set_src0_reg_type(devinfo, inst, BRW_HW_REG_TYPE_UD);
       14:       18:  473:         brw_inst_set_dst_reg_type(devinfo, inst, BRW_HW_REG_TYPE_UD);
        -:        -:  474:      }
        -:        -:  475:   } else {
      179:      183:  476:      if (reg.address_mode == BRW_ADDRESS_DIRECT) {
      179:      183:  477:         brw_inst_set_src0_da_reg_nr(devinfo, inst, reg.nr);
      179:      183:  478:         if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
      169:      173:  479:             brw_inst_set_src0_da1_subreg_nr(devinfo, inst, reg.subnr);
        -:        -:  480:	 } else {
       10:       10:  481:            brw_inst_set_src0_da16_subreg_nr(devinfo, inst, reg.subnr / 16);
        -:        -:  482:	 }
        -:        -:  483:      } else {
    #####:    #####:  484:         brw_inst_set_src0_ia_subreg_nr(devinfo, inst, reg.subnr);
        -:        -:  485:
    #####:    #####:  486:         if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
    #####:    #####:  487:            brw_inst_set_src0_ia1_addr_imm(devinfo, inst, reg.indirect_offset);
        -:        -:  488:	 } else {
    #####:    #####:  489:            brw_inst_set_src0_ia16_addr_imm(devinfo, inst, reg.indirect_offset);
        -:        -:  490:	 }
        -:        -:  491:      }
        -:        -:  492:
      179:      183:  493:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
      211:      211:  494:	 if (reg.width == BRW_WIDTH_1 &&
       42:       38:  495:             brw_inst_exec_size(devinfo, inst) == BRW_EXECUTE_1) {
       18:       14:  496:            brw_inst_set_src0_hstride(devinfo, inst, BRW_HORIZONTAL_STRIDE_0);
       18:       14:  497:            brw_inst_set_src0_width(devinfo, inst, BRW_WIDTH_1);
       18:       14:  498:            brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_0);
        -:        -:  499:	 } else {
      151:      159:  500:            brw_inst_set_src0_hstride(devinfo, inst, reg.hstride);
      151:      159:  501:            brw_inst_set_src0_width(devinfo, inst, reg.width);
      151:      159:  502:            brw_inst_set_src0_vstride(devinfo, inst, reg.vstride);
        -:        -:  503:	 }
        -:        -:  504:      } else {
       10:       10:  505:         brw_inst_set_src0_da16_swiz_x(devinfo, inst,
       10:       10:  506:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_X));
       10:       10:  507:         brw_inst_set_src0_da16_swiz_y(devinfo, inst,
       10:       10:  508:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_Y));
       10:       10:  509:         brw_inst_set_src0_da16_swiz_z(devinfo, inst,
       10:       10:  510:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_Z));
       10:       10:  511:         brw_inst_set_src0_da16_swiz_w(devinfo, inst,
       10:       10:  512:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_W));
        -:        -:  513:
       10:       10:  514:         if (reg.vstride == BRW_VERTICAL_STRIDE_8) {
        -:        -:  515:            /* This is an oddity of the fact we're using the same
        -:        -:  516:             * descriptions for registers in align_16 as align_1:
        -:        -:  517:             */
        4:        4:  518:            brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
        6:        6:  519:         } else if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####:  520:                    reg.type == BRW_REGISTER_TYPE_DF &&
    #####:    #####:  521:                    reg.vstride == BRW_VERTICAL_STRIDE_2) {
        -:        -:  522:            /* From SNB PRM:
        -:        -:  523:             *
        -:        -:  524:             * "For Align16 access mode, only encodings of 0000 and 0011
        -:        -:  525:             *  are allowed. Other codes are reserved."
        -:        -:  526:             *
        -:        -:  527:             * Presumably the DevSNB behavior applies to IVB as well.
        -:        -:  528:             */
    #####:    #####:  529:            brw_inst_set_src0_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
        -:        -:  530:         } else {
        6:        6:  531:            brw_inst_set_src0_vstride(devinfo, inst, reg.vstride);
        -:        -:  532:         }
        -:        -:  533:      }
        -:        -:  534:   }
      194:      202:  535:}
        -:        -:  536:
        -:        -:  537:
        -:        -:  538:void
      142:      146:  539:brw_set_src1(struct brw_codegen *p, brw_inst *inst, struct brw_reg reg)
        -:        -:  540:{
      142:      146:  541:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  542:
      142:      146:  543:   if (reg.file != BRW_ARCHITECTURE_REGISTER_FILE)
       90:       98:  544:      assert(reg.nr < 128);
        -:        -:  545:
        -:        -:  546:   /* From the IVB PRM Vol. 4, Pt. 3, Section 3.3.3.5:
        -:        -:  547:    *
        -:        -:  548:    *    "Accumulator registers may be accessed explicitly as src0
        -:        -:  549:    *    operands only."
        -:        -:  550:    */
      142:      146:  551:   assert(reg.file != BRW_ARCHITECTURE_REGISTER_FILE ||
        -:        -:  552:          reg.nr != BRW_ARF_ACCUMULATOR);
        -:        -:  553:
      142:      146:  554:   gen7_convert_mrf_to_grf(p, ®);
      142:      146:  555:   assert(reg.file != BRW_MESSAGE_REGISTER_FILE);
        -:        -:  556:
      142:      146:  557:   validate_reg(devinfo, inst, reg);
        -:        -:  558:
      142:      146:  559:   brw_inst_set_src1_reg_file(devinfo, inst, reg.file);
      142:      146:  560:   brw_inst_set_src1_reg_type(devinfo, inst,
      142:      146:  561:                              brw_reg_type_to_hw_type(devinfo, reg.type, reg.file));
      142:      146:  562:   brw_inst_set_src1_abs(devinfo, inst, reg.abs);
      142:      146:  563:   brw_inst_set_src1_negate(devinfo, inst, reg.negate);
        -:        -:  564:
        -:        -:  565:   /* Only src1 can be immediate in two-argument instructions.
        -:        -:  566:    */
      142:      146:  567:   assert(brw_inst_src0_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE);
        -:        -:  568:
      142:      146:  569:   if (reg.file == BRW_IMMEDIATE_VALUE) {
        -:        -:  570:      /* two-argument instructions can only use 32-bit immediates */
       36:       44:  571:      assert(type_sz(reg.type) < 8);
       36:       44:  572:      brw_inst_set_imm_ud(devinfo, inst, reg.ud);
        -:        -:  573:   } else {
        -:        -:  574:      /* This is a hardware restriction, which may or may not be lifted
        -:        -:  575:       * in the future:
        -:        -:  576:       */
      106:      102:  577:      assert (reg.address_mode == BRW_ADDRESS_DIRECT);
        -:        -:  578:      /* assert (reg.file == BRW_GENERAL_REGISTER_FILE); */
        -:        -:  579:
      106:      102:  580:      brw_inst_set_src1_da_reg_nr(devinfo, inst, reg.nr);
      106:      102:  581:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
      102:       98:  582:         brw_inst_set_src1_da1_subreg_nr(devinfo, inst, reg.subnr);
        -:        -:  583:      } else {
        4:        4:  584:         brw_inst_set_src1_da16_subreg_nr(devinfo, inst, reg.subnr / 16);
        -:        -:  585:      }
        -:        -:  586:
      106:      102:  587:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1) {
      130:      122:  588:	 if (reg.width == BRW_WIDTH_1 &&
       28:       24:  589:             brw_inst_exec_size(devinfo, inst) == BRW_EXECUTE_1) {
       18:       14:  590:            brw_inst_set_src1_hstride(devinfo, inst, BRW_HORIZONTAL_STRIDE_0);
       18:       14:  591:            brw_inst_set_src1_width(devinfo, inst, BRW_WIDTH_1);
       18:       14:  592:            brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_0);
        -:        -:  593:	 } else {
       84:       84:  594:            brw_inst_set_src1_hstride(devinfo, inst, reg.hstride);
       84:       84:  595:            brw_inst_set_src1_width(devinfo, inst, reg.width);
       84:       84:  596:            brw_inst_set_src1_vstride(devinfo, inst, reg.vstride);
        -:        -:  597:	 }
        -:        -:  598:      } else {
        4:        4:  599:         brw_inst_set_src1_da16_swiz_x(devinfo, inst,
        4:        4:  600:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_X));
        4:        4:  601:         brw_inst_set_src1_da16_swiz_y(devinfo, inst,
        4:        4:  602:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_Y));
        4:        4:  603:         brw_inst_set_src1_da16_swiz_z(devinfo, inst,
        4:        4:  604:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_Z));
        4:        4:  605:         brw_inst_set_src1_da16_swiz_w(devinfo, inst,
        4:        4:  606:            BRW_GET_SWZ(reg.swizzle, BRW_CHANNEL_W));
        -:        -:  607:
        4:        4:  608:         if (reg.vstride == BRW_VERTICAL_STRIDE_8) {
        -:        -:  609:            /* This is an oddity of the fact we're using the same
        -:        -:  610:             * descriptions for registers in align_16 as align_1:
        -:        -:  611:             */
    #####:    #####:  612:            brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
        4:        4:  613:         } else if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####:  614:                    reg.type == BRW_REGISTER_TYPE_DF &&
    #####:    #####:  615:                    reg.vstride == BRW_VERTICAL_STRIDE_2) {
        -:        -:  616:            /* From SNB PRM:
        -:        -:  617:             *
        -:        -:  618:             * "For Align16 access mode, only encodings of 0000 and 0011
        -:        -:  619:             *  are allowed. Other codes are reserved."
        -:        -:  620:             *
        -:        -:  621:             * Presumably the DevSNB behavior applies to IVB as well.
        -:        -:  622:             */
    #####:    #####:  623:            brw_inst_set_src1_vstride(devinfo, inst, BRW_VERTICAL_STRIDE_4);
        -:        -:  624:         } else {
        4:        4:  625:            brw_inst_set_src1_vstride(devinfo, inst, reg.vstride);
        -:        -:  626:         }
        -:        -:  627:      }
        -:        -:  628:   }
      142:      146:  629:}
        -:        -:  630:
        -:        -:  631:/**
        -:        -:  632: * Set the Message Descriptor and Extended Message Descriptor fields
        -:        -:  633: * for SEND messages.
        -:        -:  634: *
        -:        -:  635: * \note This zeroes out the Function Control bits, so it must be called
        -:        -:  636: *       \b before filling out any message-specific data.  Callers can
        -:        -:  637: *       choose not to fill in irrelevant bits; they will be zero.
        -:        -:  638: */
        -:        -:  639:void
        7:        7:  640:brw_set_message_descriptor(struct brw_codegen *p,
        -:        -:  641:			   brw_inst *inst,
        -:        -:  642:			   enum brw_message_target sfid,
        -:        -:  643:			   unsigned msg_length,
        -:        -:  644:			   unsigned response_length,
        -:        -:  645:			   bool header_present,
        -:        -:  646:			   bool end_of_thread)
        -:        -:  647:{
        7:        7:  648:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  649:
        7:        7:  650:   brw_set_src1(p, inst, brw_imm_d(0));
        -:        -:  651:
        -:        -:  652:   /* For indirect sends, `inst` will not be the SEND/SENDC instruction
        -:        -:  653:    * itself; instead, it will be a MOV/OR into the address register.
        -:        -:  654:    *
        -:        -:  655:    * In this case, we avoid setting the extended message descriptor bits,
        -:        -:  656:    * since they go on the later SEND/SENDC instead and if set here would
        -:        -:  657:    * instead clobber the conditionalmod bits.
        -:        -:  658:    */
        7:        7:  659:   unsigned opcode = brw_inst_opcode(devinfo, inst);
        7:        7:  660:   if (opcode == BRW_OPCODE_SEND || opcode == BRW_OPCODE_SENDC) {
        7:        7:  661:      brw_inst_set_sfid(devinfo, inst, sfid);
        -:        -:  662:   }
        -:        -:  663:
        7:        7:  664:   brw_inst_set_mlen(devinfo, inst, msg_length);
        7:        7:  665:   brw_inst_set_rlen(devinfo, inst, response_length);
        7:        7:  666:   brw_inst_set_eot(devinfo, inst, end_of_thread);
        -:        -:  667:
        7:        7:  668:   if (devinfo->gen >= 5) {
        7:        7:  669:      brw_inst_set_header_present(devinfo, inst, header_present);
        -:        -:  670:   }
        7:        7:  671:}
        -:        -:  672:
    #####:    #####:  673:static void brw_set_math_message( struct brw_codegen *p,
        -:        -:  674:				  brw_inst *inst,
        -:        -:  675:				  unsigned function,
        -:        -:  676:				  unsigned integer_type,
        -:        -:  677:				  bool low_precision,
        -:        -:  678:				  unsigned dataType )
        -:        -:  679:{
    #####:    #####:  680:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  681:   unsigned msg_length;
        -:        -:  682:   unsigned response_length;
        -:        -:  683:
        -:        -:  684:   /* Infer message length from the function */
    #####:    #####:  685:   switch (function) {
        -:        -:  686:   case BRW_MATH_FUNCTION_POW:
        -:        -:  687:   case BRW_MATH_FUNCTION_INT_DIV_QUOTIENT:
        -:        -:  688:   case BRW_MATH_FUNCTION_INT_DIV_REMAINDER:
        -:        -:  689:   case BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER:
    #####:    #####:  690:      msg_length = 2;
    #####:    #####:  691:      break;
        -:        -:  692:   default:
    #####:    #####:  693:      msg_length = 1;
    #####:    #####:  694:      break;
        -:        -:  695:   }
        -:        -:  696:
        -:        -:  697:   /* Infer response length from the function */
    #####:    #####:  698:   switch (function) {
        -:        -:  699:   case BRW_MATH_FUNCTION_SINCOS:
        -:        -:  700:   case BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER:
    #####:    #####:  701:      response_length = 2;
    #####:    #####:  702:      break;
        -:        -:  703:   default:
    #####:    #####:  704:      response_length = 1;
    #####:    #####:  705:      break;
        -:        -:  706:   }
        -:        -:  707:
        -:        -:  708:
    #####:    #####:  709:   brw_set_message_descriptor(p, inst, BRW_SFID_MATH,
        -:        -:  710:			      msg_length, response_length, false, false);
    #####:    #####:  711:   brw_inst_set_math_msg_function(devinfo, inst, function);
    #####:    #####:  712:   brw_inst_set_math_msg_signed_int(devinfo, inst, integer_type);
    #####:    #####:  713:   brw_inst_set_math_msg_precision(devinfo, inst, low_precision);
    #####:    #####:  714:   brw_inst_set_math_msg_saturate(devinfo, inst, brw_inst_saturate(devinfo, inst));
    #####:    #####:  715:   brw_inst_set_math_msg_data_type(devinfo, inst, dataType);
    #####:    #####:  716:   brw_inst_set_saturate(devinfo, inst, 0);
    #####:    #####:  717:}
        -:        -:  718:
        -:        -:  719:
    #####:    #####:  720:static void brw_set_ff_sync_message(struct brw_codegen *p,
        -:        -:  721:				    brw_inst *insn,
        -:        -:  722:				    bool allocate,
        -:        -:  723:				    unsigned response_length,
        -:        -:  724:				    bool end_of_thread)
        -:        -:  725:{
    #####:    #####:  726:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  727:
    #####:    #####:  728:   brw_set_message_descriptor(p, insn, BRW_SFID_URB,
        -:        -:  729:			      1, response_length, true, end_of_thread);
    #####:    #####:  730:   brw_inst_set_urb_opcode(devinfo, insn, 1); /* FF_SYNC */
    #####:    #####:  731:   brw_inst_set_urb_allocate(devinfo, insn, allocate);
        -:        -:  732:   /* The following fields are not used by FF_SYNC: */
    #####:    #####:  733:   brw_inst_set_urb_global_offset(devinfo, insn, 0);
    #####:    #####:  734:   brw_inst_set_urb_swizzle_control(devinfo, insn, 0);
    #####:    #####:  735:   brw_inst_set_urb_used(devinfo, insn, 0);
    #####:    #####:  736:   brw_inst_set_urb_complete(devinfo, insn, 0);
    #####:    #####:  737:}
        -:        -:  738:
        2:        2:  739:static void brw_set_urb_message( struct brw_codegen *p,
        -:        -:  740:				 brw_inst *insn,
        -:        -:  741:                                 enum brw_urb_write_flags flags,
        -:        -:  742:				 unsigned msg_length,
        -:        -:  743:				 unsigned response_length,
        -:        -:  744:				 unsigned offset,
        -:        -:  745:				 unsigned swizzle_control )
        -:        -:  746:{
        2:        2:  747:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  748:
        2:        2:  749:   assert(devinfo->gen < 7 || swizzle_control != BRW_URB_SWIZZLE_TRANSPOSE);
        2:        2:  750:   assert(devinfo->gen < 7 || !(flags & BRW_URB_WRITE_ALLOCATE));
        2:        2:  751:   assert(devinfo->gen >= 7 || !(flags & BRW_URB_WRITE_PER_SLOT_OFFSET));
        -:        -:  752:
        2:        2:  753:   brw_set_message_descriptor(p, insn, BRW_SFID_URB,
        -:        -:  754:			      msg_length, response_length, true,
        2:        2:  755:                              flags & BRW_URB_WRITE_EOT);
        -:        -:  756:
        2:        2:  757:   if (flags & BRW_URB_WRITE_OWORD) {
    #####:    #####:  758:      assert(msg_length == 2); /* header + one OWORD of data */
    #####:    #####:  759:      brw_inst_set_urb_opcode(devinfo, insn, BRW_URB_OPCODE_WRITE_OWORD);
        -:        -:  760:   } else {
        2:        2:  761:      brw_inst_set_urb_opcode(devinfo, insn, BRW_URB_OPCODE_WRITE_HWORD);
        -:        -:  762:   }
        -:        -:  763:
        2:        2:  764:   brw_inst_set_urb_global_offset(devinfo, insn, offset);
        2:        2:  765:   brw_inst_set_urb_swizzle_control(devinfo, insn, swizzle_control);
        -:        -:  766:
        2:        2:  767:   if (devinfo->gen < 8) {
        2:        2:  768:      brw_inst_set_urb_complete(devinfo, insn, !!(flags & BRW_URB_WRITE_COMPLETE));
        -:        -:  769:   }
        -:        -:  770:
        2:        2:  771:   if (devinfo->gen < 7) {
        2:        2:  772:      brw_inst_set_urb_allocate(devinfo, insn, !!(flags & BRW_URB_WRITE_ALLOCATE));
        2:        2:  773:      brw_inst_set_urb_used(devinfo, insn, !(flags & BRW_URB_WRITE_UNUSED));
        -:        -:  774:   } else {
    #####:    #####:  775:      brw_inst_set_urb_per_slot_offset(devinfo, insn,
    #####:    #####:  776:         !!(flags & BRW_URB_WRITE_PER_SLOT_OFFSET));
        -:        -:  777:   }
        2:        2:  778:}
        -:        -:  779:
        -:        -:  780:void
        5:        5:  781:brw_set_dp_write_message(struct brw_codegen *p,
        -:        -:  782:			 brw_inst *insn,
        -:        -:  783:			 unsigned binding_table_index,
        -:        -:  784:			 unsigned msg_control,
        -:        -:  785:			 unsigned msg_type,
        -:        -:  786:                         unsigned target_cache,
        -:        -:  787:			 unsigned msg_length,
        -:        -:  788:			 bool header_present,
        -:        -:  789:			 unsigned last_render_target,
        -:        -:  790:			 unsigned response_length,
        -:        -:  791:			 unsigned end_of_thread,
        -:        -:  792:			 unsigned send_commit_msg)
        -:        -:  793:{
        5:        5:  794:   const struct gen_device_info *devinfo = p->devinfo;
        5:        5:  795:   const unsigned sfid = (devinfo->gen >= 6 ? target_cache :
        -:        -:  796:                          BRW_SFID_DATAPORT_WRITE);
        -:        -:  797:
        5:        5:  798:   brw_set_message_descriptor(p, insn, sfid, msg_length, response_length,
        -:        -:  799:			      header_present, end_of_thread);
        -:        -:  800:
        5:        5:  801:   brw_inst_set_binding_table_index(devinfo, insn, binding_table_index);
        5:        5:  802:   brw_inst_set_dp_write_msg_type(devinfo, insn, msg_type);
        5:        5:  803:   brw_inst_set_dp_write_msg_control(devinfo, insn, msg_control);
        5:        5:  804:   brw_inst_set_rt_last(devinfo, insn, last_render_target);
        5:        5:  805:   if (devinfo->gen < 7) {
        5:        5:  806:      brw_inst_set_dp_write_commit(devinfo, insn, send_commit_msg);
        -:        -:  807:   }
        5:        5:  808:}
        -:        -:  809:
        -:        -:  810:void
    #####:    #####:  811:brw_set_dp_read_message(struct brw_codegen *p,
        -:        -:  812:			brw_inst *insn,
        -:        -:  813:			unsigned binding_table_index,
        -:        -:  814:			unsigned msg_control,
        -:        -:  815:			unsigned msg_type,
        -:        -:  816:			unsigned target_cache,
        -:        -:  817:			unsigned msg_length,
        -:        -:  818:                        bool header_present,
        -:        -:  819:			unsigned response_length)
        -:        -:  820:{
    #####:    #####:  821:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####:  822:   const unsigned sfid = (devinfo->gen >= 6 ? target_cache :
        -:        -:  823:                          BRW_SFID_DATAPORT_READ);
        -:        -:  824:
    #####:    #####:  825:   brw_set_message_descriptor(p, insn, sfid, msg_length, response_length,
        -:        -:  826:			      header_present, false);
        -:        -:  827:
    #####:    #####:  828:   brw_inst_set_binding_table_index(devinfo, insn, binding_table_index);
    #####:    #####:  829:   brw_inst_set_dp_read_msg_type(devinfo, insn, msg_type);
    #####:    #####:  830:   brw_inst_set_dp_read_msg_control(devinfo, insn, msg_control);
    #####:    #####:  831:   if (devinfo->gen < 6)
    #####:    #####:  832:      brw_inst_set_dp_read_target_cache(devinfo, insn, target_cache);
    #####:    #####:  833:}
        -:        -:  834:
        -:        -:  835:void
    #####:    #####:  836:brw_set_sampler_message(struct brw_codegen *p,
        -:        -:  837:                        brw_inst *inst,
        -:        -:  838:                        unsigned binding_table_index,
        -:        -:  839:                        unsigned sampler,
        -:        -:  840:                        unsigned msg_type,
        -:        -:  841:                        unsigned response_length,
        -:        -:  842:                        unsigned msg_length,
        -:        -:  843:                        unsigned header_present,
        -:        -:  844:                        unsigned simd_mode,
        -:        -:  845:                        unsigned return_format)
        -:        -:  846:{
    #####:    #####:  847:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  848:
    #####:    #####:  849:   brw_set_message_descriptor(p, inst, BRW_SFID_SAMPLER, msg_length,
        -:        -:  850:			      response_length, header_present, false);
        -:        -:  851:
    #####:    #####:  852:   brw_inst_set_binding_table_index(devinfo, inst, binding_table_index);
    #####:    #####:  853:   brw_inst_set_sampler(devinfo, inst, sampler);
    #####:    #####:  854:   brw_inst_set_sampler_msg_type(devinfo, inst, msg_type);
    #####:    #####:  855:   if (devinfo->gen >= 5) {
    #####:    #####:  856:      brw_inst_set_sampler_simd_mode(devinfo, inst, simd_mode);
    #####:    #####:  857:   } else if (devinfo->gen == 4 && !devinfo->is_g4x) {
    #####:    #####:  858:      brw_inst_set_sampler_return_format(devinfo, inst, return_format);
        -:        -:  859:   }
    #####:    #####:  860:}
        -:        -:  861:
        -:        -:  862:static void
    #####:    #####:  863:gen7_set_dp_scratch_message(struct brw_codegen *p,
        -:        -:  864:                            brw_inst *inst,
        -:        -:  865:                            bool write,
        -:        -:  866:                            bool dword,
        -:        -:  867:                            bool invalidate_after_read,
        -:        -:  868:                            unsigned num_regs,
        -:        -:  869:                            unsigned addr_offset,
        -:        -:  870:                            unsigned mlen,
        -:        -:  871:                            unsigned rlen,
        -:        -:  872:                            bool header_present)
        -:        -:  873:{
    #####:    #####:  874:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####:  875:   assert(num_regs == 1 || num_regs == 2 || num_regs == 4 ||
        -:        -:  876:          (devinfo->gen >= 8 && num_regs == 8));
    #####:    #####:  877:   const unsigned block_size = (devinfo->gen >= 8 ? _mesa_logbase2(num_regs) :
        -:        -:  878:                                num_regs - 1);
        -:        -:  879:
    #####:    #####:  880:   brw_set_message_descriptor(p, inst, GEN7_SFID_DATAPORT_DATA_CACHE,
        -:        -:  881:                              mlen, rlen, header_present, false);
    #####:    #####:  882:   brw_inst_set_dp_category(devinfo, inst, 1); /* Scratch Block Read/Write msgs */
    #####:    #####:  883:   brw_inst_set_scratch_read_write(devinfo, inst, write);
    #####:    #####:  884:   brw_inst_set_scratch_type(devinfo, inst, dword);
    #####:    #####:  885:   brw_inst_set_scratch_invalidate_after_read(devinfo, inst, invalidate_after_read);
    #####:    #####:  886:   brw_inst_set_scratch_block_size(devinfo, inst, block_size);
    #####:    #####:  887:   brw_inst_set_scratch_addr_offset(devinfo, inst, addr_offset);
    #####:    #####:  888:}
        -:        -:  889:
        -:        -:  890:#define next_insn brw_next_insn
        -:        -:  891:brw_inst *
      214:      223:  892:brw_next_insn(struct brw_codegen *p, unsigned opcode)
        -:        -:  893:{
      214:      223:  894:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -:  895:   brw_inst *insn;
        -:        -:  896:
      214:      223:  897:   if (p->nr_insn + 1 > p->store_size) {
    #####:    #####:  898:      p->store_size <<= 1;
    #####:    #####:  899:      p->store = reralloc(p->mem_ctx, p->store, brw_inst, p->store_size);
        -:        -:  900:   }
        -:        -:  901:
      214:      223:  902:   p->next_insn_offset += 16;
      214:      223:  903:   insn = &p->store[p->nr_insn++];
      214:      223:  904:   memcpy(insn, p->current, sizeof(*insn));
        -:        -:  905:
      214:      223:  906:   brw_inst_set_opcode(devinfo, insn, opcode);
      214:      223:  907:   return insn;
        -:        -:  908:}
        -:        -:  909:
        -:        -:  910:static brw_inst *
       54:       58:  911:brw_alu1(struct brw_codegen *p, unsigned opcode,
        -:        -:  912:         struct brw_reg dest, struct brw_reg src)
        -:        -:  913:{
       54:       58:  914:   brw_inst *insn = next_insn(p, opcode);
       54:       58:  915:   brw_set_dest(p, insn, dest);
       54:       58:  916:   brw_set_src0(p, insn, src);
       54:       58:  917:   return insn;
        -:        -:  918:}
        -:        -:  919:
        -:        -:  920:static brw_inst *
       51:       51:  921:brw_alu2(struct brw_codegen *p, unsigned opcode,
        -:        -:  922:         struct brw_reg dest, struct brw_reg src0, struct brw_reg src1)
        -:        -:  923:{
        -:        -:  924:   /* 64-bit immediates are only supported on 1-src instructions */
       51:       51:  925:   assert(src0.file != BRW_IMMEDIATE_VALUE || type_sz(src0.type) <= 4);
       51:       51:  926:   assert(src1.file != BRW_IMMEDIATE_VALUE || type_sz(src1.type) <= 4);
        -:        -:  927:
       51:       51:  928:   brw_inst *insn = next_insn(p, opcode);
       51:       51:  929:   brw_set_dest(p, insn, dest);
       51:       51:  930:   brw_set_src0(p, insn, src0);
       51:       51:  931:   brw_set_src1(p, insn, src1);
       51:       51:  932:   return insn;
        -:        -:  933:}
        -:        -:  934:
        -:        -:  935:static int
       54:       54:  936:get_3src_subreg_nr(struct brw_reg reg)
        -:        -:  937:{
        -:        -:  938:   /* Normally, SubRegNum is in bytes (0..31).  However, 3-src instructions
        -:        -:  939:    * use 32-bit units (components 0..7).  Since they only support F/D/UD
        -:        -:  940:    * types, this doesn't lose any flexibility, but uses fewer bits.
        -:        -:  941:    */
       54:       54:  942:   return reg.subnr / 4;
        -:        -:  943:}
        -:        -:  944:
        -:        -:  945:static brw_inst *
       18:       18:  946:brw_alu3(struct brw_codegen *p, unsigned opcode, struct brw_reg dest,
        -:        -:  947:         struct brw_reg src0, struct brw_reg src1, struct brw_reg src2)
        -:        -:  948:{
       18:       18:  949:   const struct gen_device_info *devinfo = p->devinfo;
       18:       18:  950:   brw_inst *inst = next_insn(p, opcode);
        -:        -:  951:
       18:       18:  952:   gen7_convert_mrf_to_grf(p, &dest);
        -:        -:  953:
       18:       18:  954:   assert(brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_16);
        -:        -:  955:
       18:       18:  956:   assert(dest.file == BRW_GENERAL_REGISTER_FILE ||
        -:        -:  957:	  dest.file == BRW_MESSAGE_REGISTER_FILE);
       18:       18:  958:   assert(dest.nr < 128);
       18:       18:  959:   assert(dest.address_mode == BRW_ADDRESS_DIRECT);
       18:       18:  960:   assert(dest.type == BRW_REGISTER_TYPE_F  ||
        -:        -:  961:          dest.type == BRW_REGISTER_TYPE_DF ||
        -:        -:  962:          dest.type == BRW_REGISTER_TYPE_D  ||
        -:        -:  963:          dest.type == BRW_REGISTER_TYPE_UD);
       18:       18:  964:   if (devinfo->gen == 6) {
       18:       18:  965:      brw_inst_set_3src_dst_reg_file(devinfo, inst,
       18:       18:  966:                                     dest.file == BRW_MESSAGE_REGISTER_FILE);
        -:        -:  967:   }
       18:       18:  968:   brw_inst_set_3src_dst_reg_nr(devinfo, inst, dest.nr);
       18:       18:  969:   brw_inst_set_3src_dst_subreg_nr(devinfo, inst, dest.subnr / 16);
       18:       18:  970:   brw_inst_set_3src_dst_writemask(devinfo, inst, dest.writemask);
        -:        -:  971:
       18:       18:  972:   assert(src0.file == BRW_GENERAL_REGISTER_FILE);
       18:       18:  973:   assert(src0.address_mode == BRW_ADDRESS_DIRECT);
       18:       18:  974:   assert(src0.nr < 128);
       18:       18:  975:   brw_inst_set_3src_src0_swizzle(devinfo, inst, src0.swizzle);
       18:       18:  976:   brw_inst_set_3src_src0_subreg_nr(devinfo, inst, get_3src_subreg_nr(src0));
       18:       18:  977:   brw_inst_set_3src_src0_reg_nr(devinfo, inst, src0.nr);
       18:       18:  978:   brw_inst_set_3src_src0_abs(devinfo, inst, src0.abs);
       18:       18:  979:   brw_inst_set_3src_src0_negate(devinfo, inst, src0.negate);
       18:       18:  980:   brw_inst_set_3src_src0_rep_ctrl(devinfo, inst,
       18:       18:  981:                                   src0.vstride == BRW_VERTICAL_STRIDE_0);
        -:        -:  982:
       18:       18:  983:   assert(src1.file == BRW_GENERAL_REGISTER_FILE);
       18:       18:  984:   assert(src1.address_mode == BRW_ADDRESS_DIRECT);
       18:       18:  985:   assert(src1.nr < 128);
       18:       18:  986:   brw_inst_set_3src_src1_swizzle(devinfo, inst, src1.swizzle);
       18:       18:  987:   brw_inst_set_3src_src1_subreg_nr(devinfo, inst, get_3src_subreg_nr(src1));
       18:       18:  988:   brw_inst_set_3src_src1_reg_nr(devinfo, inst, src1.nr);
       18:       18:  989:   brw_inst_set_3src_src1_abs(devinfo, inst, src1.abs);
       18:       18:  990:   brw_inst_set_3src_src1_negate(devinfo, inst, src1.negate);
       18:       18:  991:   brw_inst_set_3src_src1_rep_ctrl(devinfo, inst,
       18:       18:  992:                                   src1.vstride == BRW_VERTICAL_STRIDE_0);
        -:        -:  993:
       18:       18:  994:   assert(src2.file == BRW_GENERAL_REGISTER_FILE);
       18:       18:  995:   assert(src2.address_mode == BRW_ADDRESS_DIRECT);
       18:       18:  996:   assert(src2.nr < 128);
       18:       18:  997:   brw_inst_set_3src_src2_swizzle(devinfo, inst, src2.swizzle);
       18:       18:  998:   brw_inst_set_3src_src2_subreg_nr(devinfo, inst, get_3src_subreg_nr(src2));
       18:       18:  999:   brw_inst_set_3src_src2_reg_nr(devinfo, inst, src2.nr);
       18:       18: 1000:   brw_inst_set_3src_src2_abs(devinfo, inst, src2.abs);
       18:       18: 1001:   brw_inst_set_3src_src2_negate(devinfo, inst, src2.negate);
       18:       18: 1002:   brw_inst_set_3src_src2_rep_ctrl(devinfo, inst,
       18:       18: 1003:                                   src2.vstride == BRW_VERTICAL_STRIDE_0);
        -:        -: 1004:
       18:       18: 1005:   if (devinfo->gen >= 7) {
        -:        -: 1006:      /* Set both the source and destination types based on dest.type,
        -:        -: 1007:       * ignoring the source register types.  The MAD and LRP emitters ensure
        -:        -: 1008:       * that all four types are float.  The BFE and BFI2 emitters, however,
        -:        -: 1009:       * may send us mixed D and UD types and want us to ignore that and use
        -:        -: 1010:       * the destination type.
        -:        -: 1011:       */
    #####:    #####: 1012:      switch (dest.type) {
        -:        -: 1013:      case BRW_REGISTER_TYPE_F:
    #####:    #####: 1014:         brw_inst_set_3src_src_type(devinfo, inst, BRW_3SRC_TYPE_F);
    #####:    #####: 1015:         brw_inst_set_3src_dst_type(devinfo, inst, BRW_3SRC_TYPE_F);
    #####:    #####: 1016:         break;
        -:        -: 1017:      case BRW_REGISTER_TYPE_DF:
    #####:    #####: 1018:         brw_inst_set_3src_src_type(devinfo, inst, BRW_3SRC_TYPE_DF);
    #####:    #####: 1019:         brw_inst_set_3src_dst_type(devinfo, inst, BRW_3SRC_TYPE_DF);
    #####:    #####: 1020:         break;
        -:        -: 1021:      case BRW_REGISTER_TYPE_D:
    #####:    #####: 1022:         brw_inst_set_3src_src_type(devinfo, inst, BRW_3SRC_TYPE_D);
    #####:    #####: 1023:         brw_inst_set_3src_dst_type(devinfo, inst, BRW_3SRC_TYPE_D);
    #####:    #####: 1024:         break;
        -:        -: 1025:      case BRW_REGISTER_TYPE_UD:
    #####:    #####: 1026:         brw_inst_set_3src_src_type(devinfo, inst, BRW_3SRC_TYPE_UD);
    #####:    #####: 1027:         brw_inst_set_3src_dst_type(devinfo, inst, BRW_3SRC_TYPE_UD);
    #####:    #####: 1028:         break;
        -:        -: 1029:      default:
    #####:    #####: 1030:         unreachable("not reached");
        -:        -: 1031:      }
        -:        -: 1032:   }
        -:        -: 1033:
       18:       18: 1034:   return inst;
        -:        -: 1035:}
        -:        -: 1036:
        -:        -: 1037:
        -:        -: 1038:/***********************************************************************
        -:        -: 1039: * Convenience routines.
        -:        -: 1040: */
        -:        -: 1041:#define ALU1(OP)					\
        -:        -: 1042:brw_inst *brw_##OP(struct brw_codegen *p,		\
        -:        -: 1043:	      struct brw_reg dest,			\
        -:        -: 1044:	      struct brw_reg src0)   			\
        -:        -: 1045:{							\
        -:        -: 1046:   return brw_alu1(p, BRW_OPCODE_##OP, dest, src0);    	\
        -:        -: 1047:}
        -:        -: 1048:
        -:        -: 1049:#define ALU2(OP)					\
        -:        -: 1050:brw_inst *brw_##OP(struct brw_codegen *p,		\
        -:        -: 1051:	      struct brw_reg dest,			\
        -:        -: 1052:	      struct brw_reg src0,			\
        -:        -: 1053:	      struct brw_reg src1)   			\
        -:        -: 1054:{							\
        -:        -: 1055:   return brw_alu2(p, BRW_OPCODE_##OP, dest, src0, src1);	\
        -:        -: 1056:}
        -:        -: 1057:
        -:        -: 1058:#define ALU3(OP)					\
        -:        -: 1059:brw_inst *brw_##OP(struct brw_codegen *p,		\
        -:        -: 1060:	      struct brw_reg dest,			\
        -:        -: 1061:	      struct brw_reg src0,			\
        -:        -: 1062:	      struct brw_reg src1,			\
        -:        -: 1063:	      struct brw_reg src2)   			\
        -:        -: 1064:{							\
        -:        -: 1065:   return brw_alu3(p, BRW_OPCODE_##OP, dest, src0, src1, src2);	\
        -:        -: 1066:}
        -:        -: 1067:
        -:        -: 1068:#define ALU3F(OP)                                               \
        -:        -: 1069:brw_inst *brw_##OP(struct brw_codegen *p,         \
        -:        -: 1070:                                 struct brw_reg dest,           \
        -:        -: 1071:                                 struct brw_reg src0,           \
        -:        -: 1072:                                 struct brw_reg src1,           \
        -:        -: 1073:                                 struct brw_reg src2)           \
        -:        -: 1074:{                                                               \
        -:        -: 1075:   assert(dest.type == BRW_REGISTER_TYPE_F ||                   \
        -:        -: 1076:          dest.type == BRW_REGISTER_TYPE_DF);                   \
        -:        -: 1077:   if (dest.type == BRW_REGISTER_TYPE_F) {                      \
        -:        -: 1078:      assert(src0.type == BRW_REGISTER_TYPE_F);                 \
        -:        -: 1079:      assert(src1.type == BRW_REGISTER_TYPE_F);                 \
        -:        -: 1080:      assert(src2.type == BRW_REGISTER_TYPE_F);                 \
        -:        -: 1081:   } else if (dest.type == BRW_REGISTER_TYPE_DF) {              \
        -:        -: 1082:      assert(src0.type == BRW_REGISTER_TYPE_DF);                \
        -:        -: 1083:      assert(src1.type == BRW_REGISTER_TYPE_DF);                \
        -:        -: 1084:      assert(src2.type == BRW_REGISTER_TYPE_DF);                \
        -:        -: 1085:   }                                                            \
        -:        -: 1086:   return brw_alu3(p, BRW_OPCODE_##OP, dest, src0, src1, src2); \
        -:        -: 1087:}
        -:        -: 1088:
        -:        -: 1089:/* Rounding operations (other than RNDD) require two instructions - the first
        -:        -: 1090: * stores a rounded value (possibly the wrong way) in the dest register, but
        -:        -: 1091: * also sets a per-channel "increment bit" in the flag register.  A predicated
        -:        -: 1092: * add of 1.0 fixes dest to contain the desired result.
        -:        -: 1093: *
        -:        -: 1094: * Sandybridge and later appear to round correctly without an ADD.
        -:        -: 1095: */
        -:        -: 1096:#define ROUND(OP)							      \
        -:        -: 1097:void brw_##OP(struct brw_codegen *p,					      \
        -:        -: 1098:	      struct brw_reg dest,					      \
        -:        -: 1099:	      struct brw_reg src)					      \
        -:        -: 1100:{									      \
        -:        -: 1101:   const struct gen_device_info *devinfo = p->devinfo;					      \
        -:        -: 1102:   brw_inst *rnd, *add;							      \
        -:        -: 1103:   rnd = next_insn(p, BRW_OPCODE_##OP);					      \
        -:        -: 1104:   brw_set_dest(p, rnd, dest);						      \
        -:        -: 1105:   brw_set_src0(p, rnd, src);						      \
        -:        -: 1106:									      \
        -:        -: 1107:   if (devinfo->gen < 6) {							      \
        -:        -: 1108:      /* turn on round-increments */					      \
        -:        -: 1109:      brw_inst_set_cond_modifier(devinfo, rnd, BRW_CONDITIONAL_R);            \
        -:        -: 1110:      add = brw_ADD(p, dest, dest, brw_imm_f(1.0f));			      \
        -:        -: 1111:      brw_inst_set_pred_control(devinfo, add, BRW_PREDICATE_NORMAL);          \
        -:        -: 1112:   }									      \
        -:        -: 1113:}
        -:        -: 1114:
        -:        -: 1115:
        4:        4: 1116:ALU2(SEL)
    #####:    #####: 1117:ALU1(NOT)
    #####:    #####: 1118:ALU2(AND)
    #####:    #####: 1119:ALU2(OR)
    #####:    #####: 1120:ALU2(XOR)
    #####:    #####: 1121:ALU2(SHR)
    #####:    #####: 1122:ALU2(SHL)
    #####:    #####: 1123:ALU1(DIM)
    #####:    #####: 1124:ALU2(ASR)
    #####:    #####: 1125:ALU1(FRC)
       12:       12: 1126:ALU1(RNDD)
    #####:    #####: 1127:ALU2(MAC)
    #####:    #####: 1128:ALU2(MACH)
    #####:    #####: 1129:ALU1(LZD)
        4:        4: 1130:ALU2(DP4)
    #####:    #####: 1131:ALU2(DPH)
    #####:    #####: 1132:ALU2(DP3)
    #####:    #####: 1133:ALU2(DP2)
       18:       18: 1134:ALU3F(MAD)
    #####:    #####: 1135:ALU3F(LRP)
    #####:    #####: 1136:ALU1(BFREV)
    #####:    #####: 1137:ALU3(BFE)
    #####:    #####: 1138:ALU2(BFI1)
    #####:    #####: 1139:ALU3(BFI2)
    #####:    #####: 1140:ALU1(FBH)
    #####:    #####: 1141:ALU1(FBL)
    #####:    #####: 1142:ALU1(CBIT)
    #####:    #####: 1143:ALU2(ADDC)
    #####:    #####: 1144:ALU2(SUBB)
        -:        -: 1145:
    #####:    #####: 1146:ROUND(RNDZ)
    #####:    #####: 1147:ROUND(RNDE)
        -:        -: 1148:
        -:        -: 1149:brw_inst *
       42:       46: 1150:brw_MOV(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0)
        -:        -: 1151:{
       42:       46: 1152:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1153:
        -:        -: 1154:   /* When converting F->DF on IVB/BYT, every odd source channel is ignored.
        -:        -: 1155:    * To avoid the problems that causes, we use a <1,2,0> source region to read
        -:        -: 1156:    * each element twice.
        -:        -: 1157:    */
       42:       46: 1158:   if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####: 1159:       brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1 &&
    #####:    #####: 1160:       dest.type == BRW_REGISTER_TYPE_DF &&
    #####:    #####: 1161:       (src0.type == BRW_REGISTER_TYPE_F ||
    #####:    #####: 1162:        src0.type == BRW_REGISTER_TYPE_D ||
    #####:    #####: 1163:        src0.type == BRW_REGISTER_TYPE_UD) &&
    #####:    #####: 1164:       !has_scalar_region(src0)) {
    #####:    #####: 1165:      assert(src0.vstride == BRW_VERTICAL_STRIDE_4 &&
        -:        -: 1166:             src0.width == BRW_WIDTH_4 &&
        -:        -: 1167:             src0.hstride == BRW_HORIZONTAL_STRIDE_1);
        -:        -: 1168:
    #####:    #####: 1169:      src0.vstride = BRW_VERTICAL_STRIDE_1;
    #####:    #####: 1170:      src0.width = BRW_WIDTH_2;
    #####:    #####: 1171:      src0.hstride = BRW_HORIZONTAL_STRIDE_0;
        -:        -: 1172:   }
        -:        -: 1173:
       42:       46: 1174:   return brw_alu1(p, BRW_OPCODE_MOV, dest, src0);
        -:        -: 1175:}
        -:        -: 1176:
        -:        -: 1177:brw_inst *
       17:       17: 1178:brw_ADD(struct brw_codegen *p, struct brw_reg dest,
        -:        -: 1179:        struct brw_reg src0, struct brw_reg src1)
        -:        -: 1180:{
        -:        -: 1181:   /* 6.2.2: add */
       24:       24: 1182:   if (src0.type == BRW_REGISTER_TYPE_F ||
        7:        7: 1183:       (src0.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1184:	src0.type == BRW_REGISTER_TYPE_VF)) {
       10:       10: 1185:      assert(src1.type != BRW_REGISTER_TYPE_UD);
       10:       10: 1186:      assert(src1.type != BRW_REGISTER_TYPE_D);
        -:        -: 1187:   }
        -:        -: 1188:
       24:       24: 1189:   if (src1.type == BRW_REGISTER_TYPE_F ||
       14:       14: 1190:       (src1.file == BRW_IMMEDIATE_VALUE &&
        7:        7: 1191:	src1.type == BRW_REGISTER_TYPE_VF)) {
       10:       10: 1192:      assert(src0.type != BRW_REGISTER_TYPE_UD);
       10:       10: 1193:      assert(src0.type != BRW_REGISTER_TYPE_D);
        -:        -: 1194:   }
        -:        -: 1195:
       17:       17: 1196:   return brw_alu2(p, BRW_OPCODE_ADD, dest, src0, src1);
        -:        -: 1197:}
        -:        -: 1198:
        -:        -: 1199:brw_inst *
    #####:    #####: 1200:brw_AVG(struct brw_codegen *p, struct brw_reg dest,
        -:        -: 1201:        struct brw_reg src0, struct brw_reg src1)
        -:        -: 1202:{
    #####:    #####: 1203:   assert(dest.type == src0.type);
    #####:    #####: 1204:   assert(src0.type == src1.type);
    #####:    #####: 1205:   switch (src0.type) {
        -:        -: 1206:   case BRW_REGISTER_TYPE_B:
        -:        -: 1207:   case BRW_REGISTER_TYPE_UB:
        -:        -: 1208:   case BRW_REGISTER_TYPE_W:
        -:        -: 1209:   case BRW_REGISTER_TYPE_UW:
        -:        -: 1210:   case BRW_REGISTER_TYPE_D:
        -:        -: 1211:   case BRW_REGISTER_TYPE_UD:
    #####:    #####: 1212:      break;
        -:        -: 1213:   default:
    #####:    #####: 1214:      unreachable("Bad type for brw_AVG");
        -:        -: 1215:   }
        -:        -: 1216:
    #####:    #####: 1217:   return brw_alu2(p, BRW_OPCODE_AVG, dest, src0, src1);
        -:        -: 1218:}
        -:        -: 1219:
        -:        -: 1220:brw_inst *
       18:       18: 1221:brw_MUL(struct brw_codegen *p, struct brw_reg dest,
        -:        -: 1222:        struct brw_reg src0, struct brw_reg src1)
        -:        -: 1223:{
        -:        -: 1224:   /* 6.32.38: mul */
       36:       36: 1225:   if (src0.type == BRW_REGISTER_TYPE_D ||
       36:       36: 1226:       src0.type == BRW_REGISTER_TYPE_UD ||
       36:       36: 1227:       src1.type == BRW_REGISTER_TYPE_D ||
       18:       18: 1228:       src1.type == BRW_REGISTER_TYPE_UD) {
    #####:    #####: 1229:      assert(dest.type != BRW_REGISTER_TYPE_F);
        -:        -: 1230:   }
        -:        -: 1231:
       18:       18: 1232:   if (src0.type == BRW_REGISTER_TYPE_F ||
    #####:    #####: 1233:       (src0.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1234:	src0.type == BRW_REGISTER_TYPE_VF)) {
       18:       18: 1235:      assert(src1.type != BRW_REGISTER_TYPE_UD);
       18:       18: 1236:      assert(src1.type != BRW_REGISTER_TYPE_D);
        -:        -: 1237:   }
        -:        -: 1238:
       18:       18: 1239:   if (src1.type == BRW_REGISTER_TYPE_F ||
    #####:    #####: 1240:       (src1.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1241:	src1.type == BRW_REGISTER_TYPE_VF)) {
       18:       18: 1242:      assert(src0.type != BRW_REGISTER_TYPE_UD);
       18:       18: 1243:      assert(src0.type != BRW_REGISTER_TYPE_D);
        -:        -: 1244:   }
        -:        -: 1245:
       18:       18: 1246:   assert(src0.file != BRW_ARCHITECTURE_REGISTER_FILE ||
        -:        -: 1247:	  src0.nr != BRW_ARF_ACCUMULATOR);
       18:       18: 1248:   assert(src1.file != BRW_ARCHITECTURE_REGISTER_FILE ||
        -:        -: 1249:	  src1.nr != BRW_ARF_ACCUMULATOR);
        -:        -: 1250:
       18:       18: 1251:   return brw_alu2(p, BRW_OPCODE_MUL, dest, src0, src1);
        -:        -: 1252:}
        -:        -: 1253:
        -:        -: 1254:brw_inst *
    #####:    #####: 1255:brw_LINE(struct brw_codegen *p, struct brw_reg dest,
        -:        -: 1256:         struct brw_reg src0, struct brw_reg src1)
        -:        -: 1257:{
    #####:    #####: 1258:   src0.vstride = BRW_VERTICAL_STRIDE_0;
    #####:    #####: 1259:   src0.width = BRW_WIDTH_1;
    #####:    #####: 1260:   src0.hstride = BRW_HORIZONTAL_STRIDE_0;
    #####:    #####: 1261:   return brw_alu2(p, BRW_OPCODE_LINE, dest, src0, src1);
        -:        -: 1262:}
        -:        -: 1263:
        -:        -: 1264:brw_inst *
        8:        8: 1265:brw_PLN(struct brw_codegen *p, struct brw_reg dest,
        -:        -: 1266:        struct brw_reg src0, struct brw_reg src1)
        -:        -: 1267:{
        8:        8: 1268:   src0.vstride = BRW_VERTICAL_STRIDE_0;
        8:        8: 1269:   src0.width = BRW_WIDTH_1;
        8:        8: 1270:   src0.hstride = BRW_HORIZONTAL_STRIDE_0;
        8:        8: 1271:   src1.vstride = BRW_VERTICAL_STRIDE_8;
        8:        8: 1272:   src1.width = BRW_WIDTH_8;
        8:        8: 1273:   src1.hstride = BRW_HORIZONTAL_STRIDE_1;
        8:        8: 1274:   return brw_alu2(p, BRW_OPCODE_PLN, dest, src0, src1);
        -:        -: 1275:}
        -:        -: 1276:
        -:        -: 1277:brw_inst *
    #####:    #####: 1278:brw_F32TO16(struct brw_codegen *p, struct brw_reg dst, struct brw_reg src)
        -:        -: 1279:{
    #####:    #####: 1280:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 1281:   const bool align16 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_16;
        -:        -: 1282:   /* The F32TO16 instruction doesn't support 32-bit destination types in
        -:        -: 1283:    * Align1 mode, and neither does the Gen8 implementation in terms of a
        -:        -: 1284:    * converting MOV.  Gen7 does zero out the high 16 bits in Align16 mode as
        -:        -: 1285:    * an undocumented feature.
        -:        -: 1286:    */
    #####:    #####: 1287:   const bool needs_zero_fill = (dst.type == BRW_REGISTER_TYPE_UD &&
    #####:    #####: 1288:                                 (!align16 || devinfo->gen >= 8));
        -:        -: 1289:   brw_inst *inst;
        -:        -: 1290:
    #####:    #####: 1291:   if (align16) {
    #####:    #####: 1292:      assert(dst.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1293:   } else {
    #####:    #####: 1294:      assert(dst.type == BRW_REGISTER_TYPE_UD ||
        -:        -: 1295:             dst.type == BRW_REGISTER_TYPE_W ||
        -:        -: 1296:             dst.type == BRW_REGISTER_TYPE_UW ||
        -:        -: 1297:             dst.type == BRW_REGISTER_TYPE_HF);
        -:        -: 1298:   }
        -:        -: 1299:
    #####:    #####: 1300:   brw_push_insn_state(p);
        -:        -: 1301:
    #####:    #####: 1302:   if (needs_zero_fill) {
    #####:    #####: 1303:      brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 1304:      dst = spread(retype(dst, BRW_REGISTER_TYPE_W), 2);
        -:        -: 1305:   }
        -:        -: 1306:
    #####:    #####: 1307:   if (devinfo->gen >= 8) {
    #####:    #####: 1308:      inst = brw_MOV(p, retype(dst, BRW_REGISTER_TYPE_HF), src);
        -:        -: 1309:   } else {
    #####:    #####: 1310:      assert(devinfo->gen == 7);
    #####:    #####: 1311:      inst = brw_alu1(p, BRW_OPCODE_F32TO16, dst, src);
        -:        -: 1312:   }
        -:        -: 1313:
    #####:    #####: 1314:   if (needs_zero_fill) {
    #####:    #####: 1315:      brw_inst_set_no_dd_clear(devinfo, inst, true);
    #####:    #####: 1316:      inst = brw_MOV(p, suboffset(dst, 1), brw_imm_w(0));
    #####:    #####: 1317:      brw_inst_set_no_dd_check(devinfo, inst, true);
        -:        -: 1318:   }
        -:        -: 1319:
    #####:    #####: 1320:   brw_pop_insn_state(p);
    #####:    #####: 1321:   return inst;
        -:        -: 1322:}
        -:        -: 1323:
        -:        -: 1324:brw_inst *
    #####:    #####: 1325:brw_F16TO32(struct brw_codegen *p, struct brw_reg dst, struct brw_reg src)
        -:        -: 1326:{
    #####:    #####: 1327:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 1328:   bool align16 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_16;
        -:        -: 1329:
    #####:    #####: 1330:   if (align16) {
    #####:    #####: 1331:      assert(src.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1332:   } else {
        -:        -: 1333:      /* From the Ivybridge PRM, Vol4, Part3, Section 6.26 f16to32:
        -:        -: 1334:       *
        -:        -: 1335:       *   Because this instruction does not have a 16-bit floating-point
        -:        -: 1336:       *   type, the source data type must be Word (W). The destination type
        -:        -: 1337:       *   must be F (Float).
        -:        -: 1338:       */
    #####:    #####: 1339:      if (src.type == BRW_REGISTER_TYPE_UD)
    #####:    #####: 1340:         src = spread(retype(src, BRW_REGISTER_TYPE_W), 2);
        -:        -: 1341:
    #####:    #####: 1342:      assert(src.type == BRW_REGISTER_TYPE_W ||
        -:        -: 1343:             src.type == BRW_REGISTER_TYPE_UW ||
        -:        -: 1344:             src.type == BRW_REGISTER_TYPE_HF);
        -:        -: 1345:   }
        -:        -: 1346:
    #####:    #####: 1347:   if (devinfo->gen >= 8) {
    #####:    #####: 1348:      return brw_MOV(p, dst, retype(src, BRW_REGISTER_TYPE_HF));
        -:        -: 1349:   } else {
    #####:    #####: 1350:      assert(devinfo->gen == 7);
    #####:    #####: 1351:      return brw_alu1(p, BRW_OPCODE_F16TO32, dst, src);
        -:        -: 1352:   }
        -:        -: 1353:}
        -:        -: 1354:
        -:        -: 1355:
        2:        3: 1356:void brw_NOP(struct brw_codegen *p)
        -:        -: 1357:{
        2:        3: 1358:   brw_inst *insn = next_insn(p, BRW_OPCODE_NOP);
        2:        3: 1359:   memset(insn, 0, sizeof(*insn));
        2:        3: 1360:   brw_inst_set_opcode(p->devinfo, insn, BRW_OPCODE_NOP);
        2:        3: 1361:}
        -:        -: 1362:
        -:        -: 1363:
        -:        -: 1364:
        -:        -: 1365:
        -:        -: 1366:
        -:        -: 1367:/***********************************************************************
        -:        -: 1368: * Comparisons, if/else/endif
        -:        -: 1369: */
        -:        -: 1370:
        -:        -: 1371:brw_inst *
    #####:    #####: 1372:brw_JMPI(struct brw_codegen *p, struct brw_reg index,
        -:        -: 1373:         unsigned predicate_control)
        -:        -: 1374:{
    #####:    #####: 1375:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 1376:   struct brw_reg ip = brw_ip_reg();
    #####:    #####: 1377:   brw_inst *inst = brw_alu2(p, BRW_OPCODE_JMPI, ip, ip, index);
        -:        -: 1378:
    #####:    #####: 1379:   brw_inst_set_exec_size(devinfo, inst, BRW_EXECUTE_2);
    #####:    #####: 1380:   brw_inst_set_qtr_control(devinfo, inst, BRW_COMPRESSION_NONE);
    #####:    #####: 1381:   brw_inst_set_mask_control(devinfo, inst, BRW_MASK_DISABLE);
    #####:    #####: 1382:   brw_inst_set_pred_control(devinfo, inst, predicate_control);
        -:        -: 1383:
    #####:    #####: 1384:   return inst;
        -:        -: 1385:}
        -:        -: 1386:
        -:        -: 1387:static void
       18:       14: 1388:push_if_stack(struct brw_codegen *p, brw_inst *inst)
        -:        -: 1389:{
       18:       14: 1390:   p->if_stack[p->if_stack_depth] = inst - p->store;
        -:        -: 1391:
       18:       14: 1392:   p->if_stack_depth++;
       18:       14: 1393:   if (p->if_stack_array_size <= p->if_stack_depth) {
    #####:    #####: 1394:      p->if_stack_array_size *= 2;
    #####:    #####: 1395:      p->if_stack = reralloc(p->mem_ctx, p->if_stack, int,
        -:        -: 1396:			     p->if_stack_array_size);
        -:        -: 1397:   }
       18:       14: 1398:}
        -:        -: 1399:
        -:        -: 1400:static brw_inst *
       18:       14: 1401:pop_if_stack(struct brw_codegen *p)
        -:        -: 1402:{
       18:       14: 1403:   p->if_stack_depth--;
       18:       14: 1404:   return &p->store[p->if_stack[p->if_stack_depth]];
        -:        -: 1405:}
        -:        -: 1406:
        -:        -: 1407:static void
        4:        8: 1408:push_loop_stack(struct brw_codegen *p, brw_inst *inst)
        -:        -: 1409:{
        4:        8: 1410:   if (p->loop_stack_array_size <= (p->loop_stack_depth + 1)) {
    #####:    #####: 1411:      p->loop_stack_array_size *= 2;
    #####:    #####: 1412:      p->loop_stack = reralloc(p->mem_ctx, p->loop_stack, int,
        -:        -: 1413:			       p->loop_stack_array_size);
    #####:    #####: 1414:      p->if_depth_in_loop = reralloc(p->mem_ctx, p->if_depth_in_loop, int,
        -:        -: 1415:				     p->loop_stack_array_size);
        -:        -: 1416:   }
        -:        -: 1417:
        4:        8: 1418:   p->loop_stack[p->loop_stack_depth] = inst - p->store;
        4:        8: 1419:   p->loop_stack_depth++;
        4:        8: 1420:   p->if_depth_in_loop[p->loop_stack_depth] = 0;
        4:        8: 1421:}
        -:        -: 1422:
        -:        -: 1423:static brw_inst *
        4:        8: 1424:get_inner_do_insn(struct brw_codegen *p)
        -:        -: 1425:{
        4:        8: 1426:   return &p->store[p->loop_stack[p->loop_stack_depth - 1]];
        -:        -: 1427:}
        -:        -: 1428:
        -:        -: 1429:/* EU takes the value from the flag register and pushes it onto some
        -:        -: 1430: * sort of a stack (presumably merging with any flag value already on
        -:        -: 1431: * the stack).  Within an if block, the flags at the top of the stack
        -:        -: 1432: * control execution on each channel of the unit, eg. on each of the
        -:        -: 1433: * 16 pixel values in our wm programs.
        -:        -: 1434: *
        -:        -: 1435: * When the matching 'else' instruction is reached (presumably by
        -:        -: 1436: * countdown of the instruction count patched in by our ELSE/ENDIF
        -:        -: 1437: * functions), the relevant flags are inverted.
        -:        -: 1438: *
        -:        -: 1439: * When the matching 'endif' instruction is reached, the flags are
        -:        -: 1440: * popped off.  If the stack is now empty, normal execution resumes.
        -:        -: 1441: */
        -:        -: 1442:brw_inst *
       18:       14: 1443:brw_IF(struct brw_codegen *p, unsigned execute_size)
        -:        -: 1444:{
       18:       14: 1445:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1446:   brw_inst *insn;
        -:        -: 1447:
       18:       14: 1448:   insn = next_insn(p, BRW_OPCODE_IF);
        -:        -: 1449:
        -:        -: 1450:   /* Override the defaults for this instruction:
        -:        -: 1451:    */
       18:       14: 1452:   if (devinfo->gen < 6) {
    #####:    #####: 1453:      brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1454:      brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1455:      brw_set_src1(p, insn, brw_imm_d(0x0));
       18:       14: 1456:   } else if (devinfo->gen == 6) {
       18:       14: 1457:      brw_set_dest(p, insn, brw_imm_w(0));
       18:       14: 1458:      brw_inst_set_gen6_jump_count(devinfo, insn, 0);
       18:       14: 1459:      brw_set_src0(p, insn, vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)));
       18:       14: 1460:      brw_set_src1(p, insn, vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)));
    #####:    #####: 1461:   } else if (devinfo->gen == 7) {
    #####:    #####: 1462:      brw_set_dest(p, insn, vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)));
    #####:    #####: 1463:      brw_set_src0(p, insn, vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)));
    #####:    #####: 1464:      brw_set_src1(p, insn, brw_imm_w(0));
    #####:    #####: 1465:      brw_inst_set_jip(devinfo, insn, 0);
    #####:    #####: 1466:      brw_inst_set_uip(devinfo, insn, 0);
        -:        -: 1467:   } else {
    #####:    #####: 1468:      brw_set_dest(p, insn, vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_D)));
    #####:    #####: 1469:      brw_set_src0(p, insn, brw_imm_d(0));
    #####:    #####: 1470:      brw_inst_set_jip(devinfo, insn, 0);
    #####:    #####: 1471:      brw_inst_set_uip(devinfo, insn, 0);
        -:        -: 1472:   }
        -:        -: 1473:
       18:       14: 1474:   brw_inst_set_exec_size(devinfo, insn, execute_size);
       18:       14: 1475:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
       18:       14: 1476:   brw_inst_set_pred_control(devinfo, insn, BRW_PREDICATE_NORMAL);
       18:       14: 1477:   brw_inst_set_mask_control(devinfo, insn, BRW_MASK_ENABLE);
       18:       14: 1478:   if (!p->single_program_flow && devinfo->gen < 6)
    #####:    #####: 1479:      brw_inst_set_thread_control(devinfo, insn, BRW_THREAD_SWITCH);
        -:        -: 1480:
       18:       14: 1481:   push_if_stack(p, insn);
       18:       14: 1482:   p->if_depth_in_loop[p->loop_stack_depth]++;
       18:       14: 1483:   return insn;
        -:        -: 1484:}
        -:        -: 1485:
        -:        -: 1486:/* This function is only used for gen6-style IF instructions with an
        -:        -: 1487: * embedded comparison (conditional modifier).  It is not used on gen7.
        -:        -: 1488: */
        -:        -: 1489:brw_inst *
    #####:    #####: 1490:gen6_IF(struct brw_codegen *p, enum brw_conditional_mod conditional,
        -:        -: 1491:	struct brw_reg src0, struct brw_reg src1)
        -:        -: 1492:{
    #####:    #####: 1493:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1494:   brw_inst *insn;
        -:        -: 1495:
    #####:    #####: 1496:   insn = next_insn(p, BRW_OPCODE_IF);
        -:        -: 1497:
    #####:    #####: 1498:   brw_set_dest(p, insn, brw_imm_w(0));
    #####:    #####: 1499:   brw_inst_set_exec_size(devinfo, insn,
    #####:    #####: 1500:                          brw_inst_exec_size(devinfo, p->current));
    #####:    #####: 1501:   brw_inst_set_gen6_jump_count(devinfo, insn, 0);
    #####:    #####: 1502:   brw_set_src0(p, insn, src0);
    #####:    #####: 1503:   brw_set_src1(p, insn, src1);
        -:        -: 1504:
    #####:    #####: 1505:   assert(brw_inst_qtr_control(devinfo, insn) == BRW_COMPRESSION_NONE);
    #####:    #####: 1506:   assert(brw_inst_pred_control(devinfo, insn) == BRW_PREDICATE_NONE);
    #####:    #####: 1507:   brw_inst_set_cond_modifier(devinfo, insn, conditional);
        -:        -: 1508:
    #####:    #####: 1509:   push_if_stack(p, insn);
    #####:    #####: 1510:   return insn;
        -:        -: 1511:}
        -:        -: 1512:
        -:        -: 1513:/**
        -:        -: 1514: * In single-program-flow (SPF) mode, convert IF and ELSE into ADDs.
        -:        -: 1515: */
        -:        -: 1516:static void
    #####:    #####: 1517:convert_IF_ELSE_to_ADD(struct brw_codegen *p,
        -:        -: 1518:                       brw_inst *if_inst, brw_inst *else_inst)
        -:        -: 1519:{
    #####:    #####: 1520:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1521:
        -:        -: 1522:   /* The next instruction (where the ENDIF would be, if it existed) */
    #####:    #####: 1523:   brw_inst *next_inst = &p->store[p->nr_insn];
        -:        -: 1524:
    #####:    #####: 1525:   assert(p->single_program_flow);
    #####:    #####: 1526:   assert(if_inst != NULL && brw_inst_opcode(devinfo, if_inst) == BRW_OPCODE_IF);
    #####:    #####: 1527:   assert(else_inst == NULL || brw_inst_opcode(devinfo, else_inst) == BRW_OPCODE_ELSE);
    #####:    #####: 1528:   assert(brw_inst_exec_size(devinfo, if_inst) == BRW_EXECUTE_1);
        -:        -: 1529:
        -:        -: 1530:   /* Convert IF to an ADD instruction that moves the instruction pointer
        -:        -: 1531:    * to the first instruction of the ELSE block.  If there is no ELSE
        -:        -: 1532:    * block, point to where ENDIF would be.  Reverse the predicate.
        -:        -: 1533:    *
        -:        -: 1534:    * There's no need to execute an ENDIF since we don't need to do any
        -:        -: 1535:    * stack operations, and if we're currently executing, we just want to
        -:        -: 1536:    * continue normally.
        -:        -: 1537:    */
    #####:    #####: 1538:   brw_inst_set_opcode(devinfo, if_inst, BRW_OPCODE_ADD);
    #####:    #####: 1539:   brw_inst_set_pred_inv(devinfo, if_inst, true);
        -:        -: 1540:
    #####:    #####: 1541:   if (else_inst != NULL) {
        -:        -: 1542:      /* Convert ELSE to an ADD instruction that points where the ENDIF
        -:        -: 1543:       * would be.
        -:        -: 1544:       */
    #####:    #####: 1545:      brw_inst_set_opcode(devinfo, else_inst, BRW_OPCODE_ADD);
        -:        -: 1546:
    #####:    #####: 1547:      brw_inst_set_imm_ud(devinfo, if_inst, (else_inst - if_inst + 1) * 16);
    #####:    #####: 1548:      brw_inst_set_imm_ud(devinfo, else_inst, (next_inst - else_inst) * 16);
        -:        -: 1549:   } else {
    #####:    #####: 1550:      brw_inst_set_imm_ud(devinfo, if_inst, (next_inst - if_inst) * 16);
        -:        -: 1551:   }
    #####:    #####: 1552:}
        -:        -: 1553:
        -:        -: 1554:/**
        -:        -: 1555: * Patch IF and ELSE instructions with appropriate jump targets.
        -:        -: 1556: */
        -:        -: 1557:static void
       18:       14: 1558:patch_IF_ELSE(struct brw_codegen *p,
        -:        -: 1559:              brw_inst *if_inst, brw_inst *else_inst, brw_inst *endif_inst)
        -:        -: 1560:{
       18:       14: 1561:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1562:
        -:        -: 1563:   /* We shouldn't be patching IF and ELSE instructions in single program flow
        -:        -: 1564:    * mode when gen < 6, because in single program flow mode on those
        -:        -: 1565:    * platforms, we convert flow control instructions to conditional ADDs that
        -:        -: 1566:    * operate on IP (see brw_ENDIF).
        -:        -: 1567:    *
        -:        -: 1568:    * However, on Gen6, writing to IP doesn't work in single program flow mode
        -:        -: 1569:    * (see the SandyBridge PRM, Volume 4 part 2, p79: "When SPF is ON, IP may
        -:        -: 1570:    * not be updated by non-flow control instructions.").  And on later
        -:        -: 1571:    * platforms, there is no significant benefit to converting control flow
        -:        -: 1572:    * instructions to conditional ADDs.  So we do patch IF and ELSE
        -:        -: 1573:    * instructions in single program flow mode on those platforms.
        -:        -: 1574:    */
       18:       14: 1575:   if (devinfo->gen < 6)
    #####:    #####: 1576:      assert(!p->single_program_flow);
        -:        -: 1577:
       18:       14: 1578:   assert(if_inst != NULL && brw_inst_opcode(devinfo, if_inst) == BRW_OPCODE_IF);
       18:       14: 1579:   assert(endif_inst != NULL);
       18:       14: 1580:   assert(else_inst == NULL || brw_inst_opcode(devinfo, else_inst) == BRW_OPCODE_ELSE);
        -:        -: 1581:
       18:       14: 1582:   unsigned br = brw_jump_scale(devinfo);
        -:        -: 1583:
       18:       14: 1584:   assert(brw_inst_opcode(devinfo, endif_inst) == BRW_OPCODE_ENDIF);
       18:       14: 1585:   brw_inst_set_exec_size(devinfo, endif_inst, brw_inst_exec_size(devinfo, if_inst));
        -:        -: 1586:
       18:       14: 1587:   if (else_inst == NULL) {
        -:        -: 1588:      /* Patch IF -> ENDIF */
       18:       14: 1589:      if (devinfo->gen < 6) {
        -:        -: 1590:	 /* Turn it into an IFF, which means no mask stack operations for
        -:        -: 1591:	  * all-false and jumping past the ENDIF.
        -:        -: 1592:	  */
    #####:    #####: 1593:         brw_inst_set_opcode(devinfo, if_inst, BRW_OPCODE_IFF);
    #####:    #####: 1594:         brw_inst_set_gen4_jump_count(devinfo, if_inst,
    #####:    #####: 1595:                                      br * (endif_inst - if_inst + 1));
    #####:    #####: 1596:         brw_inst_set_gen4_pop_count(devinfo, if_inst, 0);
       18:       14: 1597:      } else if (devinfo->gen == 6) {
        -:        -: 1598:	 /* As of gen6, there is no IFF and IF must point to the ENDIF. */
       18:       14: 1599:         brw_inst_set_gen6_jump_count(devinfo, if_inst, br*(endif_inst - if_inst));
        -:        -: 1600:      } else {
    #####:    #####: 1601:         brw_inst_set_uip(devinfo, if_inst, br * (endif_inst - if_inst));
    #####:    #####: 1602:         brw_inst_set_jip(devinfo, if_inst, br * (endif_inst - if_inst));
        -:        -: 1603:      }
        -:        -: 1604:   } else {
    #####:    #####: 1605:      brw_inst_set_exec_size(devinfo, else_inst, brw_inst_exec_size(devinfo, if_inst));
        -:        -: 1606:
        -:        -: 1607:      /* Patch IF -> ELSE */
    #####:    #####: 1608:      if (devinfo->gen < 6) {
    #####:    #####: 1609:         brw_inst_set_gen4_jump_count(devinfo, if_inst,
    #####:    #####: 1610:                                      br * (else_inst - if_inst));
    #####:    #####: 1611:         brw_inst_set_gen4_pop_count(devinfo, if_inst, 0);
    #####:    #####: 1612:      } else if (devinfo->gen == 6) {
    #####:    #####: 1613:         brw_inst_set_gen6_jump_count(devinfo, if_inst,
    #####:    #####: 1614:                                      br * (else_inst - if_inst + 1));
        -:        -: 1615:      }
        -:        -: 1616:
        -:        -: 1617:      /* Patch ELSE -> ENDIF */
    #####:    #####: 1618:      if (devinfo->gen < 6) {
        -:        -: 1619:	 /* BRW_OPCODE_ELSE pre-gen6 should point just past the
        -:        -: 1620:	  * matching ENDIF.
        -:        -: 1621:	  */
    #####:    #####: 1622:         brw_inst_set_gen4_jump_count(devinfo, else_inst,
    #####:    #####: 1623:                                      br * (endif_inst - else_inst + 1));
    #####:    #####: 1624:         brw_inst_set_gen4_pop_count(devinfo, else_inst, 1);
    #####:    #####: 1625:      } else if (devinfo->gen == 6) {
        -:        -: 1626:	 /* BRW_OPCODE_ELSE on gen6 should point to the matching ENDIF. */
    #####:    #####: 1627:         brw_inst_set_gen6_jump_count(devinfo, else_inst,
    #####:    #####: 1628:                                      br * (endif_inst - else_inst));
        -:        -: 1629:      } else {
        -:        -: 1630:	 /* The IF instruction's JIP should point just past the ELSE */
    #####:    #####: 1631:         brw_inst_set_jip(devinfo, if_inst, br * (else_inst - if_inst + 1));
        -:        -: 1632:	 /* The IF instruction's UIP and ELSE's JIP should point to ENDIF */
    #####:    #####: 1633:         brw_inst_set_uip(devinfo, if_inst, br * (endif_inst - if_inst));
    #####:    #####: 1634:         brw_inst_set_jip(devinfo, else_inst, br * (endif_inst - else_inst));
    #####:    #####: 1635:         if (devinfo->gen >= 8) {
        -:        -: 1636:            /* Since we don't set branch_ctrl, the ELSE's JIP and UIP both
        -:        -: 1637:             * should point to ENDIF.
        -:        -: 1638:             */
    #####:    #####: 1639:            brw_inst_set_uip(devinfo, else_inst, br * (endif_inst - else_inst));
        -:        -: 1640:         }
        -:        -: 1641:      }
        -:        -: 1642:   }
       18:       14: 1643:}
        -:        -: 1644:
        -:        -: 1645:void
    #####:    #####: 1646:brw_ELSE(struct brw_codegen *p)
        -:        -: 1647:{
    #####:    #####: 1648:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1649:   brw_inst *insn;
        -:        -: 1650:
    #####:    #####: 1651:   insn = next_insn(p, BRW_OPCODE_ELSE);
        -:        -: 1652:
    #####:    #####: 1653:   if (devinfo->gen < 6) {
    #####:    #####: 1654:      brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1655:      brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1656:      brw_set_src1(p, insn, brw_imm_d(0x0));
    #####:    #####: 1657:   } else if (devinfo->gen == 6) {
    #####:    #####: 1658:      brw_set_dest(p, insn, brw_imm_w(0));
    #####:    #####: 1659:      brw_inst_set_gen6_jump_count(devinfo, insn, 0);
    #####:    #####: 1660:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1661:      brw_set_src1(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1662:   } else if (devinfo->gen == 7) {
    #####:    #####: 1663:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1664:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1665:      brw_set_src1(p, insn, brw_imm_w(0));
    #####:    #####: 1666:      brw_inst_set_jip(devinfo, insn, 0);
    #####:    #####: 1667:      brw_inst_set_uip(devinfo, insn, 0);
        -:        -: 1668:   } else {
    #####:    #####: 1669:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1670:      brw_set_src0(p, insn, brw_imm_d(0));
    #####:    #####: 1671:      brw_inst_set_jip(devinfo, insn, 0);
    #####:    #####: 1672:      brw_inst_set_uip(devinfo, insn, 0);
        -:        -: 1673:   }
        -:        -: 1674:
    #####:    #####: 1675:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
    #####:    #####: 1676:   brw_inst_set_mask_control(devinfo, insn, BRW_MASK_ENABLE);
    #####:    #####: 1677:   if (!p->single_program_flow && devinfo->gen < 6)
    #####:    #####: 1678:      brw_inst_set_thread_control(devinfo, insn, BRW_THREAD_SWITCH);
        -:        -: 1679:
    #####:    #####: 1680:   push_if_stack(p, insn);
    #####:    #####: 1681:}
        -:        -: 1682:
        -:        -: 1683:void
       18:       14: 1684:brw_ENDIF(struct brw_codegen *p)
        -:        -: 1685:{
       18:       14: 1686:   const struct gen_device_info *devinfo = p->devinfo;
       18:       14: 1687:   brw_inst *insn = NULL;
       18:       14: 1688:   brw_inst *else_inst = NULL;
       18:       14: 1689:   brw_inst *if_inst = NULL;
        -:        -: 1690:   brw_inst *tmp;
       18:       14: 1691:   bool emit_endif = true;
        -:        -: 1692:
        -:        -: 1693:   /* In single program flow mode, we can express IF and ELSE instructions
        -:        -: 1694:    * equivalently as ADD instructions that operate on IP.  On platforms prior
        -:        -: 1695:    * to Gen6, flow control instructions cause an implied thread switch, so
        -:        -: 1696:    * this is a significant savings.
        -:        -: 1697:    *
        -:        -: 1698:    * However, on Gen6, writing to IP doesn't work in single program flow mode
        -:        -: 1699:    * (see the SandyBridge PRM, Volume 4 part 2, p79: "When SPF is ON, IP may
        -:        -: 1700:    * not be updated by non-flow control instructions.").  And on later
        -:        -: 1701:    * platforms, there is no significant benefit to converting control flow
        -:        -: 1702:    * instructions to conditional ADDs.  So we only do this trick on Gen4 and
        -:        -: 1703:    * Gen5.
        -:        -: 1704:    */
       18:       14: 1705:   if (devinfo->gen < 6 && p->single_program_flow)
    #####:    #####: 1706:      emit_endif = false;
        -:        -: 1707:
        -:        -: 1708:   /*
        -:        -: 1709:    * A single next_insn() may change the base address of instruction store
        -:        -: 1710:    * memory(p->store), so call it first before referencing the instruction
        -:        -: 1711:    * store pointer from an index
        -:        -: 1712:    */
       18:       14: 1713:   if (emit_endif)
       18:       14: 1714:      insn = next_insn(p, BRW_OPCODE_ENDIF);
        -:        -: 1715:
        -:        -: 1716:   /* Pop the IF and (optional) ELSE instructions from the stack */
       18:       14: 1717:   p->if_depth_in_loop[p->loop_stack_depth]--;
       18:       14: 1718:   tmp = pop_if_stack(p);
       18:       14: 1719:   if (brw_inst_opcode(devinfo, tmp) == BRW_OPCODE_ELSE) {
    #####:    #####: 1720:      else_inst = tmp;
    #####:    #####: 1721:      tmp = pop_if_stack(p);
        -:        -: 1722:   }
       18:       14: 1723:   if_inst = tmp;
        -:        -: 1724:
       18:       14: 1725:   if (!emit_endif) {
        -:        -: 1726:      /* ENDIF is useless; don't bother emitting it. */
    #####:    #####: 1727:      convert_IF_ELSE_to_ADD(p, if_inst, else_inst);
    #####:    #####: 1728:      return;
        -:        -: 1729:   }
        -:        -: 1730:
       18:       14: 1731:   if (devinfo->gen < 6) {
    #####:    #####: 1732:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1733:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1734:      brw_set_src1(p, insn, brw_imm_d(0x0));
       18:       14: 1735:   } else if (devinfo->gen == 6) {
       18:       14: 1736:      brw_set_dest(p, insn, brw_imm_w(0));
       18:       14: 1737:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
       18:       14: 1738:      brw_set_src1(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1739:   } else if (devinfo->gen == 7) {
    #####:    #####: 1740:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1741:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1742:      brw_set_src1(p, insn, brw_imm_w(0));
        -:        -: 1743:   } else {
    #####:    #####: 1744:      brw_set_src0(p, insn, brw_imm_d(0));
        -:        -: 1745:   }
        -:        -: 1746:
       18:       14: 1747:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
       18:       14: 1748:   brw_inst_set_mask_control(devinfo, insn, BRW_MASK_ENABLE);
       18:       14: 1749:   if (devinfo->gen < 6)
    #####:    #####: 1750:      brw_inst_set_thread_control(devinfo, insn, BRW_THREAD_SWITCH);
        -:        -: 1751:
        -:        -: 1752:   /* Also pop item off the stack in the endif instruction: */
       18:       14: 1753:   if (devinfo->gen < 6) {
    #####:    #####: 1754:      brw_inst_set_gen4_jump_count(devinfo, insn, 0);
    #####:    #####: 1755:      brw_inst_set_gen4_pop_count(devinfo, insn, 1);
       18:       14: 1756:   } else if (devinfo->gen == 6) {
       18:       14: 1757:      brw_inst_set_gen6_jump_count(devinfo, insn, 2);
        -:        -: 1758:   } else {
    #####:    #####: 1759:      brw_inst_set_jip(devinfo, insn, 2);
        -:        -: 1760:   }
       18:       14: 1761:   patch_IF_ELSE(p, if_inst, else_inst, insn);
        -:        -: 1762:}
        -:        -: 1763:
        -:        -: 1764:brw_inst *
        8:       12: 1765:brw_BREAK(struct brw_codegen *p)
        -:        -: 1766:{
        8:       12: 1767:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1768:   brw_inst *insn;
        -:        -: 1769:
        8:       12: 1770:   insn = next_insn(p, BRW_OPCODE_BREAK);
        8:       12: 1771:   if (devinfo->gen >= 8) {
    #####:    #####: 1772:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1773:      brw_set_src0(p, insn, brw_imm_d(0x0));
        8:       12: 1774:   } else if (devinfo->gen >= 6) {
        8:       12: 1775:      brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
        8:       12: 1776:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
        8:       12: 1777:      brw_set_src1(p, insn, brw_imm_d(0x0));
        -:        -: 1778:   } else {
    #####:    #####: 1779:      brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1780:      brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1781:      brw_set_src1(p, insn, brw_imm_d(0x0));
    #####:    #####: 1782:      brw_inst_set_gen4_pop_count(devinfo, insn,
    #####:    #####: 1783:                                  p->if_depth_in_loop[p->loop_stack_depth]);
        -:        -: 1784:   }
        8:       12: 1785:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
        8:       12: 1786:   brw_inst_set_exec_size(devinfo, insn,
        8:       12: 1787:                          brw_inst_exec_size(devinfo, p->current));
        -:        -: 1788:
        8:       12: 1789:   return insn;
        -:        -: 1790:}
        -:        -: 1791:
        -:        -: 1792:brw_inst *
    #####:    #####: 1793:brw_CONT(struct brw_codegen *p)
        -:        -: 1794:{
    #####:    #####: 1795:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1796:   brw_inst *insn;
        -:        -: 1797:
    #####:    #####: 1798:   insn = next_insn(p, BRW_OPCODE_CONTINUE);
    #####:    #####: 1799:   brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1800:   if (devinfo->gen >= 8) {
    #####:    #####: 1801:      brw_set_src0(p, insn, brw_imm_d(0x0));
        -:        -: 1802:   } else {
    #####:    #####: 1803:      brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1804:      brw_set_src1(p, insn, brw_imm_d(0x0));
        -:        -: 1805:   }
        -:        -: 1806:
    #####:    #####: 1807:   if (devinfo->gen < 6) {
    #####:    #####: 1808:      brw_inst_set_gen4_pop_count(devinfo, insn,
    #####:    #####: 1809:                                  p->if_depth_in_loop[p->loop_stack_depth]);
        -:        -: 1810:   }
    #####:    #####: 1811:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
    #####:    #####: 1812:   brw_inst_set_exec_size(devinfo, insn,
    #####:    #####: 1813:                          brw_inst_exec_size(devinfo, p->current));
    #####:    #####: 1814:   return insn;
        -:        -: 1815:}
        -:        -: 1816:
        -:        -: 1817:brw_inst *
    #####:    #####: 1818:gen6_HALT(struct brw_codegen *p)
        -:        -: 1819:{
    #####:    #####: 1820:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1821:   brw_inst *insn;
        -:        -: 1822:
    #####:    #####: 1823:   insn = next_insn(p, BRW_OPCODE_HALT);
    #####:    #####: 1824:   brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1825:   if (devinfo->gen >= 8) {
    #####:    #####: 1826:      brw_set_src0(p, insn, brw_imm_d(0x0));
        -:        -: 1827:   } else {
    #####:    #####: 1828:      brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1829:      brw_set_src1(p, insn, brw_imm_d(0x0)); /* UIP and JIP, updated later. */
        -:        -: 1830:   }
        -:        -: 1831:
    #####:    #####: 1832:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
    #####:    #####: 1833:   brw_inst_set_exec_size(devinfo, insn,
    #####:    #####: 1834:                          brw_inst_exec_size(devinfo, p->current));
    #####:    #####: 1835:   return insn;
        -:        -: 1836:}
        -:        -: 1837:
        -:        -: 1838:/* DO/WHILE loop:
        -:        -: 1839: *
        -:        -: 1840: * The DO/WHILE is just an unterminated loop -- break or continue are
        -:        -: 1841: * used for control within the loop.  We have a few ways they can be
        -:        -: 1842: * done.
        -:        -: 1843: *
        -:        -: 1844: * For uniform control flow, the WHILE is just a jump, so ADD ip, ip,
        -:        -: 1845: * jip and no DO instruction.
        -:        -: 1846: *
        -:        -: 1847: * For non-uniform control flow pre-gen6, there's a DO instruction to
        -:        -: 1848: * push the mask, and a WHILE to jump back, and BREAK to get out and
        -:        -: 1849: * pop the mask.
        -:        -: 1850: *
        -:        -: 1851: * For gen6, there's no more mask stack, so no need for DO.  WHILE
        -:        -: 1852: * just points back to the first instruction of the loop.
        -:        -: 1853: */
        -:        -: 1854:brw_inst *
        4:        8: 1855:brw_DO(struct brw_codegen *p, unsigned execute_size)
        -:        -: 1856:{
        4:        8: 1857:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1858:
        4:        8: 1859:   if (devinfo->gen >= 6 || p->single_program_flow) {
        4:        8: 1860:      push_loop_stack(p, &p->store[p->nr_insn]);
        4:        8: 1861:      return &p->store[p->nr_insn];
        -:        -: 1862:   } else {
    #####:    #####: 1863:      brw_inst *insn = next_insn(p, BRW_OPCODE_DO);
        -:        -: 1864:
    #####:    #####: 1865:      push_loop_stack(p, insn);
        -:        -: 1866:
        -:        -: 1867:      /* Override the defaults for this instruction:
        -:        -: 1868:       */
    #####:    #####: 1869:      brw_set_dest(p, insn, brw_null_reg());
    #####:    #####: 1870:      brw_set_src0(p, insn, brw_null_reg());
    #####:    #####: 1871:      brw_set_src1(p, insn, brw_null_reg());
        -:        -: 1872:
    #####:    #####: 1873:      brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
    #####:    #####: 1874:      brw_inst_set_exec_size(devinfo, insn, execute_size);
    #####:    #####: 1875:      brw_inst_set_pred_control(devinfo, insn, BRW_PREDICATE_NONE);
        -:        -: 1876:
    #####:    #####: 1877:      return insn;
        -:        -: 1878:   }
        -:        -: 1879:}
        -:        -: 1880:
        -:        -: 1881:/**
        -:        -: 1882: * For pre-gen6, we patch BREAK/CONT instructions to point at the WHILE
        -:        -: 1883: * instruction here.
        -:        -: 1884: *
        -:        -: 1885: * For gen6+, see brw_set_uip_jip(), which doesn't care so much about the loop
        -:        -: 1886: * nesting, since it can always just point to the end of the block/current loop.
        -:        -: 1887: */
        -:        -: 1888:static void
    #####:    #####: 1889:brw_patch_break_cont(struct brw_codegen *p, brw_inst *while_inst)
        -:        -: 1890:{
    #####:    #####: 1891:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 1892:   brw_inst *do_inst = get_inner_do_insn(p);
        -:        -: 1893:   brw_inst *inst;
    #####:    #####: 1894:   unsigned br = brw_jump_scale(devinfo);
        -:        -: 1895:
    #####:    #####: 1896:   assert(devinfo->gen < 6);
        -:        -: 1897:
    #####:    #####: 1898:   for (inst = while_inst - 1; inst != do_inst; inst--) {
        -:        -: 1899:      /* If the jump count is != 0, that means that this instruction has already
        -:        -: 1900:       * been patched because it's part of a loop inside of the one we're
        -:        -: 1901:       * patching.
        -:        -: 1902:       */
    #####:    #####: 1903:      if (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_BREAK &&
    #####:    #####: 1904:          brw_inst_gen4_jump_count(devinfo, inst) == 0) {
    #####:    #####: 1905:         brw_inst_set_gen4_jump_count(devinfo, inst, br*((while_inst - inst) + 1));
    #####:    #####: 1906:      } else if (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_CONTINUE &&
    #####:    #####: 1907:                 brw_inst_gen4_jump_count(devinfo, inst) == 0) {
    #####:    #####: 1908:         brw_inst_set_gen4_jump_count(devinfo, inst, br * (while_inst - inst));
        -:        -: 1909:      }
        -:        -: 1910:   }
    #####:    #####: 1911:}
        -:        -: 1912:
        -:        -: 1913:brw_inst *
        4:        8: 1914:brw_WHILE(struct brw_codegen *p)
        -:        -: 1915:{
        4:        8: 1916:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 1917:   brw_inst *insn, *do_insn;
        4:        8: 1918:   unsigned br = brw_jump_scale(devinfo);
        -:        -: 1919:
        4:        8: 1920:   if (devinfo->gen >= 6) {
        4:        8: 1921:      insn = next_insn(p, BRW_OPCODE_WHILE);
        4:        8: 1922:      do_insn = get_inner_do_insn(p);
        -:        -: 1923:
        4:        8: 1924:      if (devinfo->gen >= 8) {
    #####:    #####: 1925:         brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1926:         brw_set_src0(p, insn, brw_imm_d(0));
    #####:    #####: 1927:         brw_inst_set_jip(devinfo, insn, br * (do_insn - insn));
        4:        8: 1928:      } else if (devinfo->gen == 7) {
    #####:    #####: 1929:         brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1930:         brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
    #####:    #####: 1931:         brw_set_src1(p, insn, brw_imm_w(0));
    #####:    #####: 1932:         brw_inst_set_jip(devinfo, insn, br * (do_insn - insn));
        -:        -: 1933:      } else {
        4:        8: 1934:         brw_set_dest(p, insn, brw_imm_w(0));
        4:        8: 1935:         brw_inst_set_gen6_jump_count(devinfo, insn, br * (do_insn - insn));
        4:        8: 1936:         brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
        4:        8: 1937:         brw_set_src1(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
        -:        -: 1938:      }
        -:        -: 1939:
        4:        8: 1940:      brw_inst_set_exec_size(devinfo, insn,
        4:        8: 1941:                             brw_inst_exec_size(devinfo, p->current));
        -:        -: 1942:
        -:        -: 1943:   } else {
    #####:    #####: 1944:      if (p->single_program_flow) {
    #####:    #####: 1945:	 insn = next_insn(p, BRW_OPCODE_ADD);
    #####:    #####: 1946:         do_insn = get_inner_do_insn(p);
        -:        -: 1947:
    #####:    #####: 1948:	 brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1949:	 brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1950:	 brw_set_src1(p, insn, brw_imm_d((do_insn - insn) * 16));
    #####:    #####: 1951:         brw_inst_set_exec_size(devinfo, insn, BRW_EXECUTE_1);
        -:        -: 1952:      } else {
    #####:    #####: 1953:	 insn = next_insn(p, BRW_OPCODE_WHILE);
    #####:    #####: 1954:         do_insn = get_inner_do_insn(p);
        -:        -: 1955:
    #####:    #####: 1956:         assert(brw_inst_opcode(devinfo, do_insn) == BRW_OPCODE_DO);
        -:        -: 1957:
    #####:    #####: 1958:	 brw_set_dest(p, insn, brw_ip_reg());
    #####:    #####: 1959:	 brw_set_src0(p, insn, brw_ip_reg());
    #####:    #####: 1960:	 brw_set_src1(p, insn, brw_imm_d(0));
        -:        -: 1961:
    #####:    #####: 1962:         brw_inst_set_exec_size(devinfo, insn, brw_inst_exec_size(devinfo, do_insn));
    #####:    #####: 1963:         brw_inst_set_gen4_jump_count(devinfo, insn, br * (do_insn - insn + 1));
    #####:    #####: 1964:         brw_inst_set_gen4_pop_count(devinfo, insn, 0);
        -:        -: 1965:
    #####:    #####: 1966:	 brw_patch_break_cont(p, insn);
        -:        -: 1967:      }
        -:        -: 1968:   }
        4:        8: 1969:   brw_inst_set_qtr_control(devinfo, insn, BRW_COMPRESSION_NONE);
        -:        -: 1970:
        4:        8: 1971:   p->loop_stack_depth--;
        -:        -: 1972:
        4:        8: 1973:   return insn;
        -:        -: 1974:}
        -:        -: 1975:
        -:        -: 1976:/* FORWARD JUMPS:
        -:        -: 1977: */
    #####:    #####: 1978:void brw_land_fwd_jump(struct brw_codegen *p, int jmp_insn_idx)
        -:        -: 1979:{
    #####:    #####: 1980:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 1981:   brw_inst *jmp_insn = &p->store[jmp_insn_idx];
    #####:    #####: 1982:   unsigned jmpi = 1;
        -:        -: 1983:
    #####:    #####: 1984:   if (devinfo->gen >= 5)
    #####:    #####: 1985:      jmpi = 2;
        -:        -: 1986:
    #####:    #####: 1987:   assert(brw_inst_opcode(devinfo, jmp_insn) == BRW_OPCODE_JMPI);
    #####:    #####: 1988:   assert(brw_inst_src1_reg_file(devinfo, jmp_insn) == BRW_IMMEDIATE_VALUE);
        -:        -: 1989:
    #####:    #####: 1990:   brw_inst_set_gen4_jump_count(devinfo, jmp_insn,
    #####:    #####: 1991:                                jmpi * (p->nr_insn - jmp_insn_idx - 1));
    #####:    #####: 1992:}
        -:        -: 1993:
        -:        -: 1994:/* To integrate with the above, it makes sense that the comparison
        -:        -: 1995: * instruction should populate the flag register.  It might be simpler
        -:        -: 1996: * just to use the flag reg for most WM tasks?
        -:        -: 1997: */
       22:       26: 1998:void brw_CMP(struct brw_codegen *p,
        -:        -: 1999:	     struct brw_reg dest,
        -:        -: 2000:	     unsigned conditional,
        -:        -: 2001:	     struct brw_reg src0,
        -:        -: 2002:	     struct brw_reg src1)
        -:        -: 2003:{
       22:       26: 2004:   const struct gen_device_info *devinfo = p->devinfo;
       22:       26: 2005:   brw_inst *insn = next_insn(p, BRW_OPCODE_CMP);
        -:        -: 2006:
       22:       26: 2007:   brw_inst_set_cond_modifier(devinfo, insn, conditional);
       22:       26: 2008:   brw_set_dest(p, insn, dest);
       22:       26: 2009:   brw_set_src0(p, insn, src0);
       22:       26: 2010:   brw_set_src1(p, insn, src1);
        -:        -: 2011:
        -:        -: 2012:   /* Item WaCMPInstNullDstForcesThreadSwitch in the Haswell Bspec workarounds
        -:        -: 2013:    * page says:
        -:        -: 2014:    *    "Any CMP instruction with a null destination must use a {switch}."
        -:        -: 2015:    *
        -:        -: 2016:    * It also applies to other Gen7 platforms (IVB, BYT) even though it isn't
        -:        -: 2017:    * mentioned on their work-arounds pages.
        -:        -: 2018:    */
       22:       26: 2019:   if (devinfo->gen == 7) {
    #####:    #####: 2020:      if (dest.file == BRW_ARCHITECTURE_REGISTER_FILE &&
    #####:    #####: 2021:          dest.nr == BRW_ARF_NULL) {
    #####:    #####: 2022:         brw_inst_set_thread_control(devinfo, insn, BRW_THREAD_SWITCH);
        -:        -: 2023:      }
        -:        -: 2024:   }
       22:       26: 2025:}
        -:        -: 2026:
        -:        -: 2027:/***********************************************************************
        -:        -: 2028: * Helpers for the various SEND message types:
        -:        -: 2029: */
        -:        -: 2030:
        -:        -: 2031:/** Extended math function, float[8].
        -:        -: 2032: */
    #####:    #####: 2033:void gen4_math(struct brw_codegen *p,
        -:        -: 2034:	       struct brw_reg dest,
        -:        -: 2035:	       unsigned function,
        -:        -: 2036:	       unsigned msg_reg_nr,
        -:        -: 2037:	       struct brw_reg src,
        -:        -: 2038:	       unsigned precision )
        -:        -: 2039:{
    #####:    #####: 2040:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 2041:   brw_inst *insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2042:   unsigned data_type;
    #####:    #####: 2043:   if (has_scalar_region(src)) {
    #####:    #####: 2044:      data_type = BRW_MATH_DATA_SCALAR;
        -:        -: 2045:   } else {
    #####:    #####: 2046:      data_type = BRW_MATH_DATA_VECTOR;
        -:        -: 2047:   }
        -:        -: 2048:
    #####:    #####: 2049:   assert(devinfo->gen < 6);
        -:        -: 2050:
        -:        -: 2051:   /* Example code doesn't set predicate_control for send
        -:        -: 2052:    * instructions.
        -:        -: 2053:    */
    #####:    #####: 2054:   brw_inst_set_pred_control(devinfo, insn, 0);
    #####:    #####: 2055:   brw_inst_set_base_mrf(devinfo, insn, msg_reg_nr);
        -:        -: 2056:
    #####:    #####: 2057:   brw_set_dest(p, insn, dest);
    #####:    #####: 2058:   brw_set_src0(p, insn, src);
    #####:    #####: 2059:   brw_set_math_message(p,
        -:        -: 2060:                        insn,
        -:        -: 2061:                        function,
    #####:    #####: 2062:                        src.type == BRW_REGISTER_TYPE_D,
        -:        -: 2063:                        precision,
        -:        -: 2064:                        data_type);
    #####:    #####: 2065:}
        -:        -: 2066:
       12:       12: 2067:void gen6_math(struct brw_codegen *p,
        -:        -: 2068:	       struct brw_reg dest,
        -:        -: 2069:	       unsigned function,
        -:        -: 2070:	       struct brw_reg src0,
        -:        -: 2071:	       struct brw_reg src1)
        -:        -: 2072:{
       12:       12: 2073:   const struct gen_device_info *devinfo = p->devinfo;
       12:       12: 2074:   brw_inst *insn = next_insn(p, BRW_OPCODE_MATH);
        -:        -: 2075:
       12:       12: 2076:   assert(devinfo->gen >= 6);
        -:        -: 2077:
       12:       12: 2078:   assert(dest.file == BRW_GENERAL_REGISTER_FILE ||
        -:        -: 2079:          (devinfo->gen >= 7 && dest.file == BRW_MESSAGE_REGISTER_FILE));
        -:        -: 2080:
       12:       12: 2081:   assert(dest.hstride == BRW_HORIZONTAL_STRIDE_1);
       12:       12: 2082:   if (devinfo->gen == 6) {
       12:       12: 2083:      assert(src0.hstride == BRW_HORIZONTAL_STRIDE_1);
       12:       12: 2084:      assert(src1.hstride == BRW_HORIZONTAL_STRIDE_1);
        -:        -: 2085:   }
        -:        -: 2086:
       12:       12: 2087:   if (function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT ||
       12:       12: 2088:       function == BRW_MATH_FUNCTION_INT_DIV_REMAINDER ||
        -:        -: 2089:       function == BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER) {
    #####:    #####: 2090:      assert(src0.type != BRW_REGISTER_TYPE_F);
    #####:    #####: 2091:      assert(src1.type != BRW_REGISTER_TYPE_F);
    #####:    #####: 2092:      assert(src1.file == BRW_GENERAL_REGISTER_FILE ||
        -:        -: 2093:             (devinfo->gen >= 8 && src1.file == BRW_IMMEDIATE_VALUE));
        -:        -: 2094:   } else {
       12:       12: 2095:      assert(src0.type == BRW_REGISTER_TYPE_F);
       12:       12: 2096:      assert(src1.type == BRW_REGISTER_TYPE_F);
        -:        -: 2097:   }
        -:        -: 2098:
        -:        -: 2099:   /* Source modifiers are ignored for extended math instructions on Gen6. */
       12:       12: 2100:   if (devinfo->gen == 6) {
       12:       12: 2101:      assert(!src0.negate);
       12:       12: 2102:      assert(!src0.abs);
       12:       12: 2103:      assert(!src1.negate);
       12:       12: 2104:      assert(!src1.abs);
        -:        -: 2105:   }
        -:        -: 2106:
       12:       12: 2107:   brw_inst_set_math_function(devinfo, insn, function);
        -:        -: 2108:
       12:       12: 2109:   brw_set_dest(p, insn, dest);
       12:       12: 2110:   brw_set_src0(p, insn, src0);
       12:       12: 2111:   brw_set_src1(p, insn, src1);
       12:       12: 2112:}
        -:        -: 2113:
        -:        -: 2114:/**
        -:        -: 2115: * Return the right surface index to access the thread scratch space using
        -:        -: 2116: * stateless dataport messages.
        -:        -: 2117: */
        -:        -: 2118:unsigned
    #####:    #####: 2119:brw_scratch_surface_idx(const struct brw_codegen *p)
        -:        -: 2120:{
        -:        -: 2121:   /* The scratch space is thread-local so IA coherency is unnecessary. */
    #####:    #####: 2122:   if (p->devinfo->gen >= 8)
    #####:    #####: 2123:      return GEN8_BTI_STATELESS_NON_COHERENT;
        -:        -: 2124:   else
    #####:    #####: 2125:      return BRW_BTI_STATELESS;
        -:        -: 2126:}
        -:        -: 2127:
        -:        -: 2128:/**
        -:        -: 2129: * Write a block of OWORDs (half a GRF each) from the scratch buffer,
        -:        -: 2130: * using a constant offset per channel.
        -:        -: 2131: *
        -:        -: 2132: * The offset must be aligned to oword size (16 bytes).  Used for
        -:        -: 2133: * register spilling.
        -:        -: 2134: */
    #####:    #####: 2135:void brw_oword_block_write_scratch(struct brw_codegen *p,
        -:        -: 2136:				   struct brw_reg mrf,
        -:        -: 2137:				   int num_regs,
        -:        -: 2138:				   unsigned offset)
        -:        -: 2139:{
    #####:    #####: 2140:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 2141:   const unsigned target_cache =
    #####:    #####: 2142:      (devinfo->gen >= 7 ? GEN7_SFID_DATAPORT_DATA_CACHE :
    #####:    #####: 2143:       devinfo->gen >= 6 ? GEN6_SFID_DATAPORT_RENDER_CACHE :
        -:        -: 2144:       BRW_DATAPORT_READ_TARGET_RENDER_CACHE);
        -:        -: 2145:   uint32_t msg_type;
        -:        -: 2146:
    #####:    #####: 2147:   if (devinfo->gen >= 6)
    #####:    #####: 2148:      offset /= 16;
        -:        -: 2149:
    #####:    #####: 2150:   mrf = retype(mrf, BRW_REGISTER_TYPE_UD);
        -:        -: 2151:
    #####:    #####: 2152:   const unsigned mlen = 1 + num_regs;
        -:        -: 2153:
        -:        -: 2154:   /* Set up the message header.  This is g0, with g0.2 filled with
        -:        -: 2155:    * the offset.  We don't want to leave our offset around in g0 or
        -:        -: 2156:    * it'll screw up texture samples, so set it up inside the message
        -:        -: 2157:    * reg.
        -:        -: 2158:    */
        -:        -: 2159:   {
    #####:    #####: 2160:      brw_push_insn_state(p);
    #####:    #####: 2161:      brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####: 2162:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 2163:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
        -:        -: 2164:
    #####:    #####: 2165:      brw_MOV(p, mrf, retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
        -:        -: 2166:
        -:        -: 2167:      /* set message header global offset field (reg 0, element 2) */
    #####:    #####: 2168:      brw_MOV(p,
        -:        -: 2169:	      retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE,
    #####:    #####: 2170:				  mrf.nr,
        -:        -: 2171:				  2), BRW_REGISTER_TYPE_UD),
        -:        -: 2172:	      brw_imm_ud(offset));
        -:        -: 2173:
    #####:    #####: 2174:      brw_pop_insn_state(p);
        -:        -: 2175:   }
        -:        -: 2176:
        -:        -: 2177:   {
        -:        -: 2178:      struct brw_reg dest;
    #####:    #####: 2179:      brw_inst *insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2180:      int send_commit_msg;
    #####:    #####: 2181:      struct brw_reg src_header = retype(brw_vec8_grf(0, 0),
        -:        -: 2182:					 BRW_REGISTER_TYPE_UW);
        -:        -: 2183:
    #####:    #####: 2184:      brw_inst_set_compression(devinfo, insn, false);
        -:        -: 2185:
    #####:    #####: 2186:      if (brw_inst_exec_size(devinfo, insn) >= 16)
    #####:    #####: 2187:	 src_header = vec16(src_header);
        -:        -: 2188:
    #####:    #####: 2189:      assert(brw_inst_pred_control(devinfo, insn) == BRW_PREDICATE_NONE);
    #####:    #####: 2190:      if (devinfo->gen < 6)
    #####:    #####: 2191:         brw_inst_set_base_mrf(devinfo, insn, mrf.nr);
        -:        -: 2192:
        -:        -: 2193:      /* Until gen6, writes followed by reads from the same location
        -:        -: 2194:       * are not guaranteed to be ordered unless write_commit is set.
        -:        -: 2195:       * If set, then a no-op write is issued to the destination
        -:        -: 2196:       * register to set a dependency, and a read from the destination
        -:        -: 2197:       * can be used to ensure the ordering.
        -:        -: 2198:       *
        -:        -: 2199:       * For gen6, only writes between different threads need ordering
        -:        -: 2200:       * protection.  Our use of DP writes is all about register
        -:        -: 2201:       * spilling within a thread.
        -:        -: 2202:       */
    #####:    #####: 2203:      if (devinfo->gen >= 6) {
    #####:    #####: 2204:	 dest = retype(vec16(brw_null_reg()), BRW_REGISTER_TYPE_UW);
    #####:    #####: 2205:	 send_commit_msg = 0;
        -:        -: 2206:      } else {
    #####:    #####: 2207:	 dest = src_header;
    #####:    #####: 2208:	 send_commit_msg = 1;
        -:        -: 2209:      }
        -:        -: 2210:
    #####:    #####: 2211:      brw_set_dest(p, insn, dest);
    #####:    #####: 2212:      if (devinfo->gen >= 6) {
    #####:    #####: 2213:	 brw_set_src0(p, insn, mrf);
        -:        -: 2214:      } else {
    #####:    #####: 2215:	 brw_set_src0(p, insn, brw_null_reg());
        -:        -: 2216:      }
        -:        -: 2217:
    #####:    #####: 2218:      if (devinfo->gen >= 6)
    #####:    #####: 2219:	 msg_type = GEN6_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE;
        -:        -: 2220:      else
    #####:    #####: 2221:	 msg_type = BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE;
        -:        -: 2222:
    #####:    #####: 2223:      brw_set_dp_write_message(p,
        -:        -: 2224:			       insn,
        -:        -: 2225:                               brw_scratch_surface_idx(p),
    #####:    #####: 2226:			       BRW_DATAPORT_OWORD_BLOCK_DWORDS(num_regs * 8),
        -:        -: 2227:			       msg_type,
        -:        -: 2228:                               target_cache,
        -:        -: 2229:			       mlen,
        -:        -: 2230:			       true, /* header_present */
        -:        -: 2231:			       0, /* not a render target */
        -:        -: 2232:			       send_commit_msg, /* response_length */
        -:        -: 2233:			       0, /* eot */
        -:        -: 2234:			       send_commit_msg);
        -:        -: 2235:   }
    #####:    #####: 2236:}
        -:        -: 2237:
        -:        -: 2238:
        -:        -: 2239:/**
        -:        -: 2240: * Read a block of owords (half a GRF each) from the scratch buffer
        -:        -: 2241: * using a constant index per channel.
        -:        -: 2242: *
        -:        -: 2243: * Offset must be aligned to oword size (16 bytes).  Used for register
        -:        -: 2244: * spilling.
        -:        -: 2245: */
        -:        -: 2246:void
    #####:    #####: 2247:brw_oword_block_read_scratch(struct brw_codegen *p,
        -:        -: 2248:			     struct brw_reg dest,
        -:        -: 2249:			     struct brw_reg mrf,
        -:        -: 2250:			     int num_regs,
        -:        -: 2251:			     unsigned offset)
        -:        -: 2252:{
    #####:    #####: 2253:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2254:
    #####:    #####: 2255:   if (devinfo->gen >= 6)
    #####:    #####: 2256:      offset /= 16;
        -:        -: 2257:
    #####:    #####: 2258:   if (p->devinfo->gen >= 7) {
        -:        -: 2259:      /* On gen 7 and above, we no longer have message registers and we can
        -:        -: 2260:       * send from any register we want.  By using the destination register
        -:        -: 2261:       * for the message, we guarantee that the implied message write won't
        -:        -: 2262:       * accidentally overwrite anything.  This has been a problem because
        -:        -: 2263:       * the MRF registers and source for the final FB write are both fixed
        -:        -: 2264:       * and may overlap.
        -:        -: 2265:       */
    #####:    #####: 2266:      mrf = retype(dest, BRW_REGISTER_TYPE_UD);
        -:        -: 2267:   } else {
    #####:    #####: 2268:      mrf = retype(mrf, BRW_REGISTER_TYPE_UD);
        -:        -: 2269:   }
    #####:    #####: 2270:   dest = retype(dest, BRW_REGISTER_TYPE_UW);
        -:        -: 2271:
    #####:    #####: 2272:   const unsigned rlen = num_regs;
    #####:    #####: 2273:   const unsigned target_cache =
    #####:    #####: 2274:      (devinfo->gen >= 7 ? GEN7_SFID_DATAPORT_DATA_CACHE :
    #####:    #####: 2275:       devinfo->gen >= 6 ? GEN6_SFID_DATAPORT_RENDER_CACHE :
        -:        -: 2276:       BRW_DATAPORT_READ_TARGET_RENDER_CACHE);
        -:        -: 2277:
        -:        -: 2278:   {
    #####:    #####: 2279:      brw_push_insn_state(p);
    #####:    #####: 2280:      brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####: 2281:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####: 2282:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 2283:
    #####:    #####: 2284:      brw_MOV(p, mrf, retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
        -:        -: 2285:
        -:        -: 2286:      /* set message header global offset field (reg 0, element 2) */
    #####:    #####: 2287:      brw_MOV(p, get_element_ud(mrf, 2), brw_imm_ud(offset));
        -:        -: 2288:
    #####:    #####: 2289:      brw_pop_insn_state(p);
        -:        -: 2290:   }
        -:        -: 2291:
        -:        -: 2292:   {
    #####:    #####: 2293:      brw_inst *insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2294:
    #####:    #####: 2295:      assert(brw_inst_pred_control(devinfo, insn) == 0);
    #####:    #####: 2296:      brw_inst_set_compression(devinfo, insn, false);
        -:        -: 2297:
    #####:    #####: 2298:      brw_set_dest(p, insn, dest);	/* UW? */
    #####:    #####: 2299:      if (devinfo->gen >= 6) {
    #####:    #####: 2300:	 brw_set_src0(p, insn, mrf);
        -:        -: 2301:      } else {
    #####:    #####: 2302:	 brw_set_src0(p, insn, brw_null_reg());
    #####:    #####: 2303:         brw_inst_set_base_mrf(devinfo, insn, mrf.nr);
        -:        -: 2304:      }
        -:        -: 2305:
    #####:    #####: 2306:      brw_set_dp_read_message(p,
        -:        -: 2307:			      insn,
        -:        -: 2308:                              brw_scratch_surface_idx(p),
    #####:    #####: 2309:			      BRW_DATAPORT_OWORD_BLOCK_DWORDS(num_regs * 8),
        -:        -: 2310:			      BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ, /* msg_type */
        -:        -: 2311:			      target_cache,
        -:        -: 2312:			      1, /* msg_length */
        -:        -: 2313:                              true, /* header_present */
        -:        -: 2314:			      rlen);
        -:        -: 2315:   }
    #####:    #####: 2316:}
        -:        -: 2317:
        -:        -: 2318:void
    #####:    #####: 2319:gen7_block_read_scratch(struct brw_codegen *p,
        -:        -: 2320:                        struct brw_reg dest,
        -:        -: 2321:                        int num_regs,
        -:        -: 2322:                        unsigned offset)
        -:        -: 2323:{
    #####:    #####: 2324:   brw_inst *insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2325:   assert(brw_inst_pred_control(p->devinfo, insn) == BRW_PREDICATE_NONE);
        -:        -: 2326:
    #####:    #####: 2327:   brw_set_dest(p, insn, retype(dest, BRW_REGISTER_TYPE_UW));
        -:        -: 2328:
        -:        -: 2329:   /* The HW requires that the header is present; this is to get the g0.5
        -:        -: 2330:    * scratch offset.
        -:        -: 2331:    */
    #####:    #####: 2332:   brw_set_src0(p, insn, brw_vec8_grf(0, 0));
        -:        -: 2333:
        -:        -: 2334:   /* According to the docs, offset is "A 12-bit HWord offset into the memory
        -:        -: 2335:    * Immediate Memory buffer as specified by binding table 0xFF."  An HWORD
        -:        -: 2336:    * is 32 bytes, which happens to be the size of a register.
        -:        -: 2337:    */
    #####:    #####: 2338:   offset /= REG_SIZE;
    #####:    #####: 2339:   assert(offset < (1 << 12));
        -:        -: 2340:
    #####:    #####: 2341:   gen7_set_dp_scratch_message(p, insn,
        -:        -: 2342:                               false, /* scratch read */
        -:        -: 2343:                               false, /* OWords */
        -:        -: 2344:                               false, /* invalidate after read */
        -:        -: 2345:                               num_regs,
        -:        -: 2346:                               offset,
        -:        -: 2347:                               1,        /* mlen: just g0 */
        -:        -: 2348:                               num_regs, /* rlen */
        -:        -: 2349:                               true);    /* header present */
    #####:    #####: 2350:}
        -:        -: 2351:
        -:        -: 2352:/**
        -:        -: 2353: * Read float[4] vectors from the data port constant cache.
        -:        -: 2354: * Location (in buffer) should be a multiple of 16.
        -:        -: 2355: * Used for fetching shader constants.
        -:        -: 2356: */
    #####:    #####: 2357:void brw_oword_block_read(struct brw_codegen *p,
        -:        -: 2358:			  struct brw_reg dest,
        -:        -: 2359:			  struct brw_reg mrf,
        -:        -: 2360:			  uint32_t offset,
        -:        -: 2361:			  uint32_t bind_table_index)
        -:        -: 2362:{
    #####:    #####: 2363:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 2364:   const unsigned target_cache =
    #####:    #####: 2365:      (devinfo->gen >= 6 ? GEN6_SFID_DATAPORT_CONSTANT_CACHE :
        -:        -: 2366:       BRW_DATAPORT_READ_TARGET_DATA_CACHE);
    #####:    #####: 2367:   const unsigned exec_size = 1 << brw_inst_exec_size(devinfo, p->current);
        -:        -: 2368:
        -:        -: 2369:   /* On newer hardware, offset is in units of owords. */
    #####:    #####: 2370:   if (devinfo->gen >= 6)
    #####:    #####: 2371:      offset /= 16;
        -:        -: 2372:
    #####:    #####: 2373:   mrf = retype(mrf, BRW_REGISTER_TYPE_UD);
        -:        -: 2374:
    #####:    #####: 2375:   brw_push_insn_state(p);
    #####:    #####: 2376:   brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
    #####:    #####: 2377:   brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####: 2378:   brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 2379:
    #####:    #####: 2380:   brw_push_insn_state(p);
    #####:    #####: 2381:   brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####: 2382:   brw_MOV(p, mrf, retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
        -:        -: 2383:
        -:        -: 2384:   /* set message header global offset field (reg 0, element 2) */
    #####:    #####: 2385:   brw_MOV(p,
        -:        -: 2386:	   retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE,
    #####:    #####: 2387:			       mrf.nr,
        -:        -: 2388:			       2), BRW_REGISTER_TYPE_UD),
        -:        -: 2389:	   brw_imm_ud(offset));
    #####:    #####: 2390:   brw_pop_insn_state(p);
        -:        -: 2391:
    #####:    #####: 2392:   brw_inst *insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2393:
        -:        -: 2394:   /* cast dest to a uword[8] vector */
    #####:    #####: 2395:   dest = retype(vec8(dest), BRW_REGISTER_TYPE_UW);
        -:        -: 2396:
    #####:    #####: 2397:   brw_set_dest(p, insn, dest);
    #####:    #####: 2398:   if (devinfo->gen >= 6) {
    #####:    #####: 2399:      brw_set_src0(p, insn, mrf);
        -:        -: 2400:   } else {
    #####:    #####: 2401:      brw_set_src0(p, insn, brw_null_reg());
    #####:    #####: 2402:      brw_inst_set_base_mrf(devinfo, insn, mrf.nr);
        -:        -: 2403:   }
        -:        -: 2404:
    #####:    #####: 2405:   brw_set_dp_read_message(p, insn, bind_table_index,
    #####:    #####: 2406:                           BRW_DATAPORT_OWORD_BLOCK_DWORDS(exec_size),
        -:        -: 2407:			   BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ,
        -:        -: 2408:			   target_cache,
        -:        -: 2409:			   1, /* msg_length */
        -:        -: 2410:                           true, /* header_present */
    #####:    #####: 2411:			   DIV_ROUND_UP(exec_size, 8)); /* response_length */
        -:        -: 2412:
    #####:    #####: 2413:   brw_pop_insn_state(p);
    #####:    #####: 2414:}
        -:        -: 2415:
        -:        -: 2416:
        5:        5: 2417:void brw_fb_WRITE(struct brw_codegen *p,
        -:        -: 2418:                  struct brw_reg payload,
        -:        -: 2419:                  struct brw_reg implied_header,
        -:        -: 2420:                  unsigned msg_control,
        -:        -: 2421:                  unsigned binding_table_index,
        -:        -: 2422:                  unsigned msg_length,
        -:        -: 2423:                  unsigned response_length,
        -:        -: 2424:                  bool eot,
        -:        -: 2425:                  bool last_render_target,
        -:        -: 2426:                  bool header_present)
        -:        -: 2427:{
        5:        5: 2428:   const struct gen_device_info *devinfo = p->devinfo;
        5:        5: 2429:   const unsigned target_cache =
        5:        5: 2430:      (devinfo->gen >= 6 ? GEN6_SFID_DATAPORT_RENDER_CACHE :
        -:        -: 2431:       BRW_DATAPORT_READ_TARGET_RENDER_CACHE);
        -:        -: 2432:   brw_inst *insn;
        -:        -: 2433:   unsigned msg_type;
        -:        -: 2434:   struct brw_reg dest, src0;
        -:        -: 2435:
        5:        5: 2436:   if (brw_inst_exec_size(devinfo, p->current) >= BRW_EXECUTE_16)
        3:        3: 2437:      dest = retype(vec16(brw_null_reg()), BRW_REGISTER_TYPE_UW);
        -:        -: 2438:   else
        2:        2: 2439:      dest = retype(vec8(brw_null_reg()), BRW_REGISTER_TYPE_UW);
        -:        -: 2440:
        5:        5: 2441:   if (devinfo->gen >= 6) {
        5:        5: 2442:      insn = next_insn(p, BRW_OPCODE_SENDC);
        -:        -: 2443:   } else {
    #####:    #####: 2444:      insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2445:   }
        5:        5: 2446:   brw_inst_set_compression(devinfo, insn, false);
        -:        -: 2447:
        5:        5: 2448:   if (devinfo->gen >= 6) {
        -:        -: 2449:      /* headerless version, just submit color payload */
        5:        5: 2450:      src0 = payload;
        -:        -: 2451:
        5:        5: 2452:      msg_type = GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE;
        -:        -: 2453:   } else {
    #####:    #####: 2454:      assert(payload.file == BRW_MESSAGE_REGISTER_FILE);
    #####:    #####: 2455:      brw_inst_set_base_mrf(devinfo, insn, payload.nr);
    #####:    #####: 2456:      src0 = implied_header;
        -:        -: 2457:
    #####:    #####: 2458:      msg_type = BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE;
        -:        -: 2459:   }
        -:        -: 2460:
        5:        5: 2461:   brw_set_dest(p, insn, dest);
        5:        5: 2462:   brw_set_src0(p, insn, src0);
        5:        5: 2463:   brw_set_dp_write_message(p,
        -:        -: 2464:			    insn,
        -:        -: 2465:			    binding_table_index,
        -:        -: 2466:			    msg_control,
        -:        -: 2467:			    msg_type,
        -:        -: 2468:                            target_cache,
        -:        -: 2469:			    msg_length,
        -:        -: 2470:			    header_present,
        -:        -: 2471:			    last_render_target,
        -:        -: 2472:			    response_length,
        -:        -: 2473:			    eot,
        -:        -: 2474:			    0 /* send_commit_msg */);
        5:        5: 2475:}
        -:        -: 2476:
        -:        -: 2477:brw_inst *
    #####:    #####: 2478:gen9_fb_READ(struct brw_codegen *p,
        -:        -: 2479:             struct brw_reg dst,
        -:        -: 2480:             struct brw_reg payload,
        -:        -: 2481:             unsigned binding_table_index,
        -:        -: 2482:             unsigned msg_length,
        -:        -: 2483:             unsigned response_length,
        -:        -: 2484:             bool per_sample)
        -:        -: 2485:{
    #####:    #####: 2486:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 2487:   assert(devinfo->gen >= 9);
    #####:    #####: 2488:   const unsigned msg_subtype =
    #####:    #####: 2489:      brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_16 ? 0 : 1;
    #####:    #####: 2490:   brw_inst *insn = next_insn(p, BRW_OPCODE_SENDC);
        -:        -: 2491:
    #####:    #####: 2492:   brw_set_dest(p, insn, dst);
    #####:    #####: 2493:   brw_set_src0(p, insn, payload);
    #####:    #####: 2494:   brw_set_dp_read_message(p, insn, binding_table_index,
    #####:    #####: 2495:                           per_sample << 5 | msg_subtype,
        -:        -: 2496:                           GEN9_DATAPORT_RC_RENDER_TARGET_READ,
        -:        -: 2497:                           GEN6_SFID_DATAPORT_RENDER_CACHE,
        -:        -: 2498:                           msg_length, true /* header_present */,
        -:        -: 2499:                           response_length);
    #####:    #####: 2500:   brw_inst_set_rt_slot_group(devinfo, insn,
    #####:    #####: 2501:                              brw_inst_qtr_control(devinfo, p->current) / 2);
        -:        -: 2502:
    #####:    #####: 2503:   return insn;
        -:        -: 2504:}
        -:        -: 2505:
        -:        -: 2506:/**
        -:        -: 2507: * Texture sample instruction.
        -:        -: 2508: * Note: the msg_type plus msg_length values determine exactly what kind
        -:        -: 2509: * of sampling operation is performed.  See volume 4, page 161 of docs.
        -:        -: 2510: */
    #####:    #####: 2511:void brw_SAMPLE(struct brw_codegen *p,
        -:        -: 2512:		struct brw_reg dest,
        -:        -: 2513:		unsigned msg_reg_nr,
        -:        -: 2514:		struct brw_reg src0,
        -:        -: 2515:		unsigned binding_table_index,
        -:        -: 2516:		unsigned sampler,
        -:        -: 2517:		unsigned msg_type,
        -:        -: 2518:		unsigned response_length,
        -:        -: 2519:		unsigned msg_length,
        -:        -: 2520:		unsigned header_present,
        -:        -: 2521:		unsigned simd_mode,
        -:        -: 2522:		unsigned return_format)
        -:        -: 2523:{
    #####:    #####: 2524:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2525:   brw_inst *insn;
        -:        -: 2526:
    #####:    #####: 2527:   if (msg_reg_nr != -1)
    #####:    #####: 2528:      gen6_resolve_implied_move(p, &src0, msg_reg_nr);
        -:        -: 2529:
    #####:    #####: 2530:   insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2531:   brw_inst_set_pred_control(devinfo, insn, BRW_PREDICATE_NONE); /* XXX */
        -:        -: 2532:
        -:        -: 2533:   /* From the 965 PRM (volume 4, part 1, section 14.2.41):
        -:        -: 2534:    *
        -:        -: 2535:    *    "Instruction compression is not allowed for this instruction (that
        -:        -: 2536:    *     is, send). The hardware behavior is undefined if this instruction is
        -:        -: 2537:    *     set as compressed. However, compress control can be set to "SecHalf"
        -:        -: 2538:    *     to affect the EMask generation."
        -:        -: 2539:    *
        -:        -: 2540:    * No similar wording is found in later PRMs, but there are examples
        -:        -: 2541:    * utilizing send with SecHalf.  More importantly, SIMD8 sampler messages
        -:        -: 2542:    * are allowed in SIMD16 mode and they could not work without SecHalf.  For
        -:        -: 2543:    * these reasons, we allow BRW_COMPRESSION_2NDHALF here.
        -:        -: 2544:    */
    #####:    #####: 2545:   brw_inst_set_compression(devinfo, insn, false);
        -:        -: 2546:
    #####:    #####: 2547:   if (devinfo->gen < 6)
    #####:    #####: 2548:      brw_inst_set_base_mrf(devinfo, insn, msg_reg_nr);
        -:        -: 2549:
    #####:    #####: 2550:   brw_set_dest(p, insn, dest);
    #####:    #####: 2551:   brw_set_src0(p, insn, src0);
    #####:    #####: 2552:   brw_set_sampler_message(p, insn,
        -:        -: 2553:                           binding_table_index,
        -:        -: 2554:                           sampler,
        -:        -: 2555:                           msg_type,
        -:        -: 2556:                           response_length,
        -:        -: 2557:                           msg_length,
        -:        -: 2558:                           header_present,
        -:        -: 2559:                           simd_mode,
        -:        -: 2560:                           return_format);
    #####:    #####: 2561:}
        -:        -: 2562:
        -:        -: 2563:/* Adjust the message header's sampler state pointer to
        -:        -: 2564: * select the correct group of 16 samplers.
        -:        -: 2565: */
    #####:    #####: 2566:void brw_adjust_sampler_state_pointer(struct brw_codegen *p,
        -:        -: 2567:                                      struct brw_reg header,
        -:        -: 2568:                                      struct brw_reg sampler_index)
        -:        -: 2569:{
        -:        -: 2570:   /* The "Sampler Index" field can only store values between 0 and 15.
        -:        -: 2571:    * However, we can add an offset to the "Sampler State Pointer"
        -:        -: 2572:    * field, effectively selecting a different set of 16 samplers.
        -:        -: 2573:    *
        -:        -: 2574:    * The "Sampler State Pointer" needs to be aligned to a 32-byte
        -:        -: 2575:    * offset, and each sampler state is only 16-bytes, so we can't
        -:        -: 2576:    * exclusively use the offset - we have to use both.
        -:        -: 2577:    */
        -:        -: 2578:
    #####:    #####: 2579:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2580:
    #####:    #####: 2581:   if (sampler_index.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####: 2582:      const int sampler_state_size = 16; /* 16 bytes */
    #####:    #####: 2583:      uint32_t sampler = sampler_index.ud;
        -:        -: 2584:
    #####:    #####: 2585:      if (sampler >= 16) {
    #####:    #####: 2586:         assert(devinfo->is_haswell || devinfo->gen >= 8);
    #####:    #####: 2587:         brw_ADD(p,
        -:        -: 2588:                 get_element_ud(header, 3),
        -:        -: 2589:                 get_element_ud(brw_vec8_grf(0, 0), 3),
    #####:    #####: 2590:                 brw_imm_ud(16 * (sampler / 16) * sampler_state_size));
        -:        -: 2591:      }
        -:        -: 2592:   } else {
        -:        -: 2593:      /* Non-const sampler array indexing case */
    #####:    #####: 2594:      if (devinfo->gen < 8 && !devinfo->is_haswell) {
    #####:    #####: 2595:         return;
        -:        -: 2596:      }
        -:        -: 2597:
    #####:    #####: 2598:      struct brw_reg temp = get_element_ud(header, 3);
        -:        -: 2599:
    #####:    #####: 2600:      brw_AND(p, temp, get_element_ud(sampler_index, 0), brw_imm_ud(0x0f0));
    #####:    #####: 2601:      brw_SHL(p, temp, temp, brw_imm_ud(4));
    #####:    #####: 2602:      brw_ADD(p,
        -:        -: 2603:              get_element_ud(header, 3),
        -:        -: 2604:              get_element_ud(brw_vec8_grf(0, 0), 3),
        -:        -: 2605:              temp);
        -:        -: 2606:   }
        -:        -: 2607:}
        -:        -: 2608:
        -:        -: 2609:/* All these variables are pretty confusing - we might be better off
        -:        -: 2610: * using bitmasks and macros for this, in the old style.  Or perhaps
        -:        -: 2611: * just having the caller instantiate the fields in dword3 itself.
        -:        -: 2612: */
        2:        2: 2613:void brw_urb_WRITE(struct brw_codegen *p,
        -:        -: 2614:		   struct brw_reg dest,
        -:        -: 2615:		   unsigned msg_reg_nr,
        -:        -: 2616:		   struct brw_reg src0,
        -:        -: 2617:                   enum brw_urb_write_flags flags,
        -:        -: 2618:		   unsigned msg_length,
        -:        -: 2619:		   unsigned response_length,
        -:        -: 2620:		   unsigned offset,
        -:        -: 2621:		   unsigned swizzle)
        -:        -: 2622:{
        2:        2: 2623:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2624:   brw_inst *insn;
        -:        -: 2625:
        2:        2: 2626:   gen6_resolve_implied_move(p, &src0, msg_reg_nr);
        -:        -: 2627:
        2:        2: 2628:   if (devinfo->gen >= 7 && !(flags & BRW_URB_WRITE_USE_CHANNEL_MASKS)) {
        -:        -: 2629:      /* Enable Channel Masks in the URB_WRITE_HWORD message header */
    #####:    #####: 2630:      brw_push_insn_state(p);
    #####:    #####: 2631:      brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 2632:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 2633:      brw_OR(p, retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE, msg_reg_nr, 5),
        -:        -: 2634:		       BRW_REGISTER_TYPE_UD),
        -:        -: 2635:	        retype(brw_vec1_grf(0, 5), BRW_REGISTER_TYPE_UD),
        -:        -: 2636:		brw_imm_ud(0xff00));
    #####:    #####: 2637:      brw_pop_insn_state(p);
        -:        -: 2638:   }
        -:        -: 2639:
        2:        2: 2640:   insn = next_insn(p, BRW_OPCODE_SEND);
        -:        -: 2641:
        2:        2: 2642:   assert(msg_length < BRW_MAX_MRF(devinfo->gen));
        -:        -: 2643:
        2:        2: 2644:   brw_set_dest(p, insn, dest);
        2:        2: 2645:   brw_set_src0(p, insn, src0);
        2:        2: 2646:   brw_set_src1(p, insn, brw_imm_d(0));
        -:        -: 2647:
        2:        2: 2648:   if (devinfo->gen < 6)
    #####:    #####: 2649:      brw_inst_set_base_mrf(devinfo, insn, msg_reg_nr);
        -:        -: 2650:
        2:        2: 2651:   brw_set_urb_message(p,
        -:        -: 2652:		       insn,
        -:        -: 2653:		       flags,
        -:        -: 2654:		       msg_length,
        -:        -: 2655:		       response_length,
        -:        -: 2656:		       offset,
        -:        -: 2657:		       swizzle);
        2:        2: 2658:}
        -:        -: 2659:
        -:        -: 2660:struct brw_inst *
    #####:    #####: 2661:brw_send_indirect_message(struct brw_codegen *p,
        -:        -: 2662:                          unsigned sfid,
        -:        -: 2663:                          struct brw_reg dst,
        -:        -: 2664:                          struct brw_reg payload,
        -:        -: 2665:                          struct brw_reg desc)
        -:        -: 2666:{
    #####:    #####: 2667:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2668:   struct brw_inst *send;
        -:        -: 2669:   int setup;
        -:        -: 2670:
    #####:    #####: 2671:   dst = retype(dst, BRW_REGISTER_TYPE_UW);
        -:        -: 2672:
    #####:    #####: 2673:   assert(desc.type == BRW_REGISTER_TYPE_UD);
        -:        -: 2674:
        -:        -: 2675:   /* We hold on to the setup instruction (the SEND in the direct case, the OR
        -:        -: 2676:    * in the indirect case) by its index in the instruction store.  The
        -:        -: 2677:    * pointer returned by next_insn() may become invalid if emitting the SEND
        -:        -: 2678:    * in the indirect case reallocs the store.
        -:        -: 2679:    */
        -:        -: 2680:
    #####:    #####: 2681:   if (desc.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####: 2682:      setup = p->nr_insn;
    #####:    #####: 2683:      send = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2684:      brw_set_src1(p, send, desc);
        -:        -: 2685:
        -:        -: 2686:   } else {
    #####:    #####: 2687:      struct brw_reg addr = retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD);
        -:        -: 2688:
    #####:    #####: 2689:      brw_push_insn_state(p);
    #####:    #####: 2690:      brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 2691:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 2692:      brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
        -:        -: 2693:
        -:        -: 2694:      /* Load the indirect descriptor to an address register using OR so the
        -:        -: 2695:       * caller can specify additional descriptor bits with the usual
        -:        -: 2696:       * brw_set_*_message() helper functions.
        -:        -: 2697:       */
    #####:    #####: 2698:      setup = p->nr_insn;
    #####:    #####: 2699:      brw_OR(p, addr, desc, brw_imm_ud(0));
        -:        -: 2700:
    #####:    #####: 2701:      brw_pop_insn_state(p);
        -:        -: 2702:
    #####:    #####: 2703:      send = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2704:      brw_set_src1(p, send, addr);
        -:        -: 2705:   }
        -:        -: 2706:
    #####:    #####: 2707:   if (dst.width < BRW_EXECUTE_8)
    #####:    #####: 2708:      brw_inst_set_exec_size(devinfo, send, dst.width);
        -:        -: 2709:
    #####:    #####: 2710:   brw_set_dest(p, send, dst);
    #####:    #####: 2711:   brw_set_src0(p, send, retype(payload, BRW_REGISTER_TYPE_UD));
    #####:    #####: 2712:   brw_inst_set_sfid(devinfo, send, sfid);
        -:        -: 2713:
    #####:    #####: 2714:   return &p->store[setup];
        -:        -: 2715:}
        -:        -: 2716:
        -:        -: 2717:static struct brw_inst *
    #####:    #####: 2718:brw_send_indirect_surface_message(struct brw_codegen *p,
        -:        -: 2719:                                  unsigned sfid,
        -:        -: 2720:                                  struct brw_reg dst,
        -:        -: 2721:                                  struct brw_reg payload,
        -:        -: 2722:                                  struct brw_reg surface,
        -:        -: 2723:                                  unsigned message_len,
        -:        -: 2724:                                  unsigned response_len,
        -:        -: 2725:                                  bool header_present)
        -:        -: 2726:{
    #####:    #####: 2727:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2728:   struct brw_inst *insn;
        -:        -: 2729:
    #####:    #####: 2730:   if (surface.file != BRW_IMMEDIATE_VALUE) {
    #####:    #####: 2731:      struct brw_reg addr = retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD);
        -:        -: 2732:
    #####:    #####: 2733:      brw_push_insn_state(p);
    #####:    #####: 2734:      brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 2735:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 2736:      brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
        -:        -: 2737:
        -:        -: 2738:      /* Mask out invalid bits from the surface index to avoid hangs e.g. when
        -:        -: 2739:       * some surface array is accessed out of bounds.
        -:        -: 2740:       */
    #####:    #####: 2741:      insn = brw_AND(p, addr,
        -:        -: 2742:                     suboffset(vec1(retype(surface, BRW_REGISTER_TYPE_UD)),
    #####:    #####: 2743:                               BRW_GET_SWZ(surface.swizzle, 0)),
        -:        -: 2744:                     brw_imm_ud(0xff));
        -:        -: 2745:
    #####:    #####: 2746:      brw_pop_insn_state(p);
        -:        -: 2747:
    #####:    #####: 2748:      surface = addr;
        -:        -: 2749:   }
        -:        -: 2750:
    #####:    #####: 2751:   insn = brw_send_indirect_message(p, sfid, dst, payload, surface);
    #####:    #####: 2752:   brw_inst_set_mlen(devinfo, insn, message_len);
    #####:    #####: 2753:   brw_inst_set_rlen(devinfo, insn, response_len);
    #####:    #####: 2754:   brw_inst_set_header_present(devinfo, insn, header_present);
        -:        -: 2755:
    #####:    #####: 2756:   return insn;
        -:        -: 2757:}
        -:        -: 2758:
        -:        -: 2759:static bool
      123:      259: 2760:while_jumps_before_offset(const struct gen_device_info *devinfo,
        -:        -: 2761:                          brw_inst *insn, int while_offset, int start_offset)
        -:        -: 2762:{
      123:      259: 2763:   int scale = 16 / brw_jump_scale(devinfo);
      369:      777: 2764:   int jip = devinfo->gen == 6 ? brw_inst_gen6_jump_count(devinfo, insn)
      246:      518: 2765:                               : brw_inst_jip(devinfo, insn);
      123:      259: 2766:   assert(jip < 0);
      123:      259: 2767:   return while_offset + jip * scale <= start_offset;
        -:        -: 2768:}
        -:        -: 2769:
        -:        -: 2770:
        -:        -: 2771:static int
      212:      220: 2772:brw_find_next_block_end(struct brw_codegen *p, int start_offset)
        -:        -: 2773:{
        -:        -: 2774:   int offset;
      212:      220: 2775:   void *store = p->store;
      212:      220: 2776:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2777:
      212:      220: 2778:   int depth = 0;
        -:        -: 2779:
     4413:     5029: 2780:   for (offset = next_offset(devinfo, store, start_offset);
     4201:     4809: 2781:        offset < p->next_insn_offset;
     3989:     4589: 2782:        offset = next_offset(devinfo, store, offset)) {
     4096:     4700: 2783:      brw_inst *insn = store + offset;
        -:        -: 2784:
     4096:     4700: 2785:      switch (brw_inst_opcode(devinfo, insn)) {
        -:        -: 2786:      case BRW_OPCODE_IF:
      397:      365: 2787:         depth++;
      397:      365: 2788:         break;
        -:        -: 2789:      case BRW_OPCODE_ENDIF:
      445:      401: 2790:         if (depth == 0)
       48:       36: 2791:            return offset;
      397:      365: 2792:         depth--;
      397:      365: 2793:         break;
        -:        -: 2794:      case BRW_OPCODE_WHILE:
        -:        -: 2795:         /* If the while doesn't jump before our instruction, it's the end
        -:        -: 2796:          * of a sibling do...while loop.  Ignore it.
        -:        -: 2797:          */
      115:      243: 2798:         if (!while_jumps_before_offset(devinfo, insn, offset, start_offset))
       56:      168: 2799:            continue;
        -:        -: 2800:         /* fallthrough */
        -:        -: 2801:      case BRW_OPCODE_ELSE:
        -:        -: 2802:      case BRW_OPCODE_HALT:
       59:       75: 2803:         if (depth == 0)
       59:       75: 2804:            return offset;
        -:        -: 2805:      }
        -:        -: 2806:   }
        -:        -: 2807:
      105:      109: 2808:   return 0;
        -:        -: 2809:}
        -:        -: 2810:
        -:        -: 2811:/* There is no DO instruction on gen6, so to find the end of the loop
        -:        -: 2812: * we have to see if the loop is jumping back before our start
        -:        -: 2813: * instruction.
        -:        -: 2814: */
        -:        -: 2815:static int
        8:       12: 2816:brw_find_loop_end(struct brw_codegen *p, int start_offset)
        -:        -: 2817:{
        8:       12: 2818:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2819:   int offset;
        8:       12: 2820:   void *store = p->store;
        -:        -: 2821:
        8:       12: 2822:   assert(devinfo->gen >= 6);
        -:        -: 2823:
        -:        -: 2824:   /* Always start after the instruction (such as a WHILE) we're trying to fix
        -:        -: 2825:    * up.
        -:        -: 2826:    */
      103:      127: 2827:   for (offset = next_offset(devinfo, store, start_offset);
       95:      115: 2828:        offset < p->next_insn_offset;
       87:      103: 2829:        offset = next_offset(devinfo, store, offset)) {
       95:      115: 2830:      brw_inst *insn = store + offset;
        -:        -: 2831:
       95:      115: 2832:      if (brw_inst_opcode(devinfo, insn) == BRW_OPCODE_WHILE) {
        8:       16: 2833:	 if (while_jumps_before_offset(devinfo, insn, offset, start_offset))
        8:       12: 2834:	    return offset;
        -:        -: 2835:      }
        -:        -: 2836:   }
    #####:    #####: 2837:   assert(!"not reached");
        -:        -: 2838:   return start_offset;
        -:        -: 2839:}
        -:        -: 2840:
        -:        -: 2841:/* After program generation, go back and update the UIP and JIP of
        -:        -: 2842: * BREAK, CONT, and HALT instructions to their correct locations.
        -:        -: 2843: */
        -:        -: 2844:void
        7:        7: 2845:brw_set_uip_jip(struct brw_codegen *p, int start_offset)
        -:        -: 2846:{
        7:        7: 2847:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2848:   int offset;
        7:        7: 2849:   int br = brw_jump_scale(devinfo);
        7:        7: 2850:   int scale = 16 / br;
        7:        7: 2851:   void *store = p->store;
        -:        -: 2852:
        7:        7: 2853:   if (devinfo->gen < 6)
    #####:    #####: 2854:      return;
        -:        -: 2855:
      219:      227: 2856:   for (offset = start_offset; offset < p->next_insn_offset; offset += 16) {
      212:      220: 2857:      brw_inst *insn = store + offset;
      212:      220: 2858:      assert(brw_inst_cmpt_control(devinfo, insn) == 0);
        -:        -: 2859:
      212:      220: 2860:      int block_end_offset = brw_find_next_block_end(p, offset);
      212:      220: 2861:      switch (brw_inst_opcode(devinfo, insn)) {
        -:        -: 2862:      case BRW_OPCODE_BREAK:
        8:       12: 2863:         assert(block_end_offset != 0);
        8:       12: 2864:         brw_inst_set_jip(devinfo, insn, (block_end_offset - offset) / scale);
        -:        -: 2865:	 /* Gen7 UIP points to WHILE; Gen6 points just after it */
        8:       12: 2866:         brw_inst_set_uip(devinfo, insn,
       16:       24: 2867:	    (brw_find_loop_end(p, offset) - offset +
        8:       12: 2868:             (devinfo->gen == 6 ? 16 : 0)) / scale);
        8:       12: 2869:	 break;
        -:        -: 2870:      case BRW_OPCODE_CONTINUE:
    #####:    #####: 2871:         assert(block_end_offset != 0);
    #####:    #####: 2872:         brw_inst_set_jip(devinfo, insn, (block_end_offset - offset) / scale);
    #####:    #####: 2873:         brw_inst_set_uip(devinfo, insn,
    #####:    #####: 2874:            (brw_find_loop_end(p, offset) - offset) / scale);
        -:        -: 2875:
    #####:    #####: 2876:         assert(brw_inst_uip(devinfo, insn) != 0);
    #####:    #####: 2877:         assert(brw_inst_jip(devinfo, insn) != 0);
    #####:    #####: 2878:	 break;
        -:        -: 2879:
        -:        -: 2880:      case BRW_OPCODE_ENDIF: {
       18:       14: 2881:         int32_t jump = (block_end_offset == 0) ?
       18:       14: 2882:                        1 * br : (block_end_offset - offset) / scale;
       18:       14: 2883:         if (devinfo->gen >= 7)
    #####:    #####: 2884:            brw_inst_set_jip(devinfo, insn, jump);
        -:        -: 2885:         else
       18:       14: 2886:            brw_inst_set_gen6_jump_count(devinfo, insn, jump);
       18:       14: 2887:	 break;
        -:        -: 2888:      }
        -:        -: 2889:
        -:        -: 2890:      case BRW_OPCODE_HALT:
        -:        -: 2891:	 /* From the Sandy Bridge PRM (volume 4, part 2, section 8.3.19):
        -:        -: 2892:	  *
        -:        -: 2893:	  *    "In case of the halt instruction not inside any conditional
        -:        -: 2894:	  *     code block, the value of <JIP> and <UIP> should be the
        -:        -: 2895:	  *     same. In case of the halt instruction inside conditional code
        -:        -: 2896:	  *     block, the <UIP> should be the end of the program, and the
        -:        -: 2897:	  *     <JIP> should be end of the most inner conditional code block."
        -:        -: 2898:	  *
        -:        -: 2899:	  * The uip will have already been set by whoever set up the
        -:        -: 2900:	  * instruction.
        -:        -: 2901:	  */
    #####:    #####: 2902:	 if (block_end_offset == 0) {
    #####:    #####: 2903:            brw_inst_set_jip(devinfo, insn, brw_inst_uip(devinfo, insn));
        -:        -: 2904:	 } else {
    #####:    #####: 2905:            brw_inst_set_jip(devinfo, insn, (block_end_offset - offset) / scale);
        -:        -: 2906:	 }
    #####:    #####: 2907:         assert(brw_inst_uip(devinfo, insn) != 0);
    #####:    #####: 2908:         assert(brw_inst_jip(devinfo, insn) != 0);
    #####:    #####: 2909:	 break;
        -:        -: 2910:      }
        -:        -: 2911:   }
        -:        -: 2912:}
        -:        -: 2913:
    #####:    #####: 2914:void brw_ff_sync(struct brw_codegen *p,
        -:        -: 2915:		   struct brw_reg dest,
        -:        -: 2916:		   unsigned msg_reg_nr,
        -:        -: 2917:		   struct brw_reg src0,
        -:        -: 2918:		   bool allocate,
        -:        -: 2919:		   unsigned response_length,
        -:        -: 2920:		   bool eot)
        -:        -: 2921:{
    #####:    #####: 2922:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 2923:   brw_inst *insn;
        -:        -: 2924:
    #####:    #####: 2925:   gen6_resolve_implied_move(p, &src0, msg_reg_nr);
        -:        -: 2926:
    #####:    #####: 2927:   insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2928:   brw_set_dest(p, insn, dest);
    #####:    #####: 2929:   brw_set_src0(p, insn, src0);
    #####:    #####: 2930:   brw_set_src1(p, insn, brw_imm_d(0));
        -:        -: 2931:
    #####:    #####: 2932:   if (devinfo->gen < 6)
    #####:    #####: 2933:      brw_inst_set_base_mrf(devinfo, insn, msg_reg_nr);
        -:        -: 2934:
    #####:    #####: 2935:   brw_set_ff_sync_message(p,
        -:        -: 2936:			   insn,
        -:        -: 2937:			   allocate,
        -:        -: 2938:			   response_length,
        -:        -: 2939:			   eot);
    #####:    #####: 2940:}
        -:        -: 2941:
        -:        -: 2942:/**
        -:        -: 2943: * Emit the SEND instruction necessary to generate stream output data on Gen6
        -:        -: 2944: * (for transform feedback).
        -:        -: 2945: *
        -:        -: 2946: * If send_commit_msg is true, this is the last piece of stream output data
        -:        -: 2947: * from this thread, so send the data as a committed write.  According to the
        -:        -: 2948: * Sandy Bridge PRM (volume 2 part 1, section 4.5.1):
        -:        -: 2949: *
        -:        -: 2950: *   "Prior to End of Thread with a URB_WRITE, the kernel must ensure all
        -:        -: 2951: *   writes are complete by sending the final write as a committed write."
        -:        -: 2952: */
        -:        -: 2953:void
    #####:    #####: 2954:brw_svb_write(struct brw_codegen *p,
        -:        -: 2955:              struct brw_reg dest,
        -:        -: 2956:              unsigned msg_reg_nr,
        -:        -: 2957:              struct brw_reg src0,
        -:        -: 2958:              unsigned binding_table_index,
        -:        -: 2959:              bool   send_commit_msg)
        -:        -: 2960:{
    #####:    #####: 2961:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 2962:   const unsigned target_cache =
    #####:    #####: 2963:      (devinfo->gen >= 7 ? GEN7_SFID_DATAPORT_DATA_CACHE :
    #####:    #####: 2964:       devinfo->gen >= 6 ? GEN6_SFID_DATAPORT_RENDER_CACHE :
        -:        -: 2965:       BRW_DATAPORT_READ_TARGET_RENDER_CACHE);
        -:        -: 2966:   brw_inst *insn;
        -:        -: 2967:
    #####:    #####: 2968:   gen6_resolve_implied_move(p, &src0, msg_reg_nr);
        -:        -: 2969:
    #####:    #####: 2970:   insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 2971:   brw_set_dest(p, insn, dest);
    #####:    #####: 2972:   brw_set_src0(p, insn, src0);
    #####:    #####: 2973:   brw_set_src1(p, insn, brw_imm_d(0));
    #####:    #####: 2974:   brw_set_dp_write_message(p, insn,
        -:        -: 2975:                            binding_table_index,
        -:        -: 2976:                            0, /* msg_control: ignored */
        -:        -: 2977:                            GEN6_DATAPORT_WRITE_MESSAGE_STREAMED_VB_WRITE,
        -:        -: 2978:                            target_cache,
        -:        -: 2979:                            1, /* msg_length */
        -:        -: 2980:                            true, /* header_present */
        -:        -: 2981:                            0, /* last_render_target: ignored */
        -:        -: 2982:                            send_commit_msg, /* response_length */
        -:        -: 2983:                            0, /* end_of_thread */
        -:        -: 2984:                            send_commit_msg); /* send_commit_msg */
    #####:    #####: 2985:}
        -:        -: 2986:
        -:        -: 2987:static unsigned
    #####:    #####: 2988:brw_surface_payload_size(struct brw_codegen *p,
        -:        -: 2989:                         unsigned num_channels,
        -:        -: 2990:                         bool has_simd4x2,
        -:        -: 2991:                         bool has_simd16)
        -:        -: 2992:{
    #####:    #####: 2993:   if (has_simd4x2 &&
    #####:    #####: 2994:       brw_inst_access_mode(p->devinfo, p->current) == BRW_ALIGN_16)
    #####:    #####: 2995:      return 1;
    #####:    #####: 2996:   else if (has_simd16 &&
    #####:    #####: 2997:            brw_inst_exec_size(p->devinfo, p->current) == BRW_EXECUTE_16)
    #####:    #####: 2998:      return 2 * num_channels;
        -:        -: 2999:   else
    #####:    #####: 3000:      return num_channels;
        -:        -: 3001:}
        -:        -: 3002:
        -:        -: 3003:static void
    #####:    #####: 3004:brw_set_dp_untyped_atomic_message(struct brw_codegen *p,
        -:        -: 3005:                                  brw_inst *insn,
        -:        -: 3006:                                  unsigned atomic_op,
        -:        -: 3007:                                  bool response_expected)
        -:        -: 3008:{
    #####:    #####: 3009:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3010:   unsigned msg_control =
    #####:    #####: 3011:      atomic_op | /* Atomic Operation Type: BRW_AOP_* */
        -:        -: 3012:      (response_expected ? 1 << 5 : 0); /* Return data expected */
        -:        -: 3013:
    #####:    #####: 3014:   if (devinfo->gen >= 8 || devinfo->is_haswell) {
    #####:    #####: 3015:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3016:         if (brw_inst_exec_size(devinfo, p->current) != BRW_EXECUTE_16)
    #####:    #####: 3017:            msg_control |= 1 << 4; /* SIMD8 mode */
        -:        -: 3018:
    #####:    #####: 3019:         brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3020:                                  HSW_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_OP);
        -:        -: 3021:      } else {
    #####:    #####: 3022:         brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3023:            HSW_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_OP_SIMD4X2);
        -:        -: 3024:      }
        -:        -: 3025:   } else {
    #####:    #####: 3026:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3027:                               GEN7_DATAPORT_DC_UNTYPED_ATOMIC_OP);
        -:        -: 3028:
    #####:    #####: 3029:      if (brw_inst_exec_size(devinfo, p->current) != BRW_EXECUTE_16)
    #####:    #####: 3030:         msg_control |= 1 << 4; /* SIMD8 mode */
        -:        -: 3031:   }
        -:        -: 3032:
    #####:    #####: 3033:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3034:}
        -:        -: 3035:
        -:        -: 3036:void
    #####:    #####: 3037:brw_untyped_atomic(struct brw_codegen *p,
        -:        -: 3038:                   struct brw_reg dst,
        -:        -: 3039:                   struct brw_reg payload,
        -:        -: 3040:                   struct brw_reg surface,
        -:        -: 3041:                   unsigned atomic_op,
        -:        -: 3042:                   unsigned msg_length,
        -:        -: 3043:                   bool response_expected)
        -:        -: 3044:{
    #####:    #####: 3045:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3046:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3047:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3048:                          GEN7_SFID_DATAPORT_DATA_CACHE);
    #####:    #####: 3049:   const bool align1 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1;
        -:        -: 3050:   /* Mask out unused components -- This is especially important in Align16
        -:        -: 3051:    * mode on generations that don't have native support for SIMD4x2 atomics,
        -:        -: 3052:    * because unused but enabled components will cause the dataport to perform
        -:        -: 3053:    * additional atomic operations on the addresses that happen to be in the
        -:        -: 3054:    * uninitialized Y, Z and W coordinates of the payload.
        -:        -: 3055:    */
    #####:    #####: 3056:   const unsigned mask = align1 ? WRITEMASK_XYZW : WRITEMASK_X;
    #####:    #####: 3057:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3058:      p, sfid, brw_writemask(dst, mask), payload, surface, msg_length,
        -:        -: 3059:      brw_surface_payload_size(p, response_expected,
    #####:    #####: 3060:                               devinfo->gen >= 8 || devinfo->is_haswell, true),
        -:        -: 3061:      align1);
        -:        -: 3062:
    #####:    #####: 3063:   brw_set_dp_untyped_atomic_message(
        -:        -: 3064:      p, insn, atomic_op, response_expected);
    #####:    #####: 3065:}
        -:        -: 3066:
        -:        -: 3067:static void
    #####:    #####: 3068:brw_set_dp_untyped_surface_read_message(struct brw_codegen *p,
        -:        -: 3069:                                        struct brw_inst *insn,
        -:        -: 3070:                                        unsigned num_channels)
        -:        -: 3071:{
    #####:    #####: 3072:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3073:   /* Set mask of 32-bit channels to drop. */
    #####:    #####: 3074:   unsigned msg_control = 0xf & (0xf << num_channels);
        -:        -: 3075:
    #####:    #####: 3076:   if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3077:      if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_16)
    #####:    #####: 3078:         msg_control |= 1 << 4; /* SIMD16 mode */
        -:        -: 3079:      else
    #####:    #####: 3080:         msg_control |= 2 << 4; /* SIMD8 mode */
        -:        -: 3081:   }
        -:        -: 3082:
    #####:    #####: 3083:   brw_inst_set_dp_msg_type(devinfo, insn,
    #####:    #####: 3084:                            (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3085:                             HSW_DATAPORT_DC_PORT1_UNTYPED_SURFACE_READ :
        -:        -: 3086:                             GEN7_DATAPORT_DC_UNTYPED_SURFACE_READ));
    #####:    #####: 3087:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3088:}
        -:        -: 3089:
        -:        -: 3090:void
    #####:    #####: 3091:brw_untyped_surface_read(struct brw_codegen *p,
        -:        -: 3092:                         struct brw_reg dst,
        -:        -: 3093:                         struct brw_reg payload,
        -:        -: 3094:                         struct brw_reg surface,
        -:        -: 3095:                         unsigned msg_length,
        -:        -: 3096:                         unsigned num_channels)
        -:        -: 3097:{
    #####:    #####: 3098:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3099:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3100:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3101:                          GEN7_SFID_DATAPORT_DATA_CACHE);
    #####:    #####: 3102:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3103:      p, sfid, dst, payload, surface, msg_length,
        -:        -: 3104:      brw_surface_payload_size(p, num_channels, true, true),
        -:        -: 3105:      false);
        -:        -: 3106:
    #####:    #####: 3107:   brw_set_dp_untyped_surface_read_message(
        -:        -: 3108:      p, insn, num_channels);
    #####:    #####: 3109:}
        -:        -: 3110:
        -:        -: 3111:static void
    #####:    #####: 3112:brw_set_dp_untyped_surface_write_message(struct brw_codegen *p,
        -:        -: 3113:                                         struct brw_inst *insn,
        -:        -: 3114:                                         unsigned num_channels)
        -:        -: 3115:{
    #####:    #####: 3116:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3117:   /* Set mask of 32-bit channels to drop. */
    #####:    #####: 3118:   unsigned msg_control = 0xf & (0xf << num_channels);
        -:        -: 3119:
    #####:    #####: 3120:   if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3121:      if (brw_inst_exec_size(devinfo, p->current) == BRW_EXECUTE_16)
    #####:    #####: 3122:         msg_control |= 1 << 4; /* SIMD16 mode */
        -:        -: 3123:      else
    #####:    #####: 3124:         msg_control |= 2 << 4; /* SIMD8 mode */
        -:        -: 3125:   } else {
    #####:    #####: 3126:      if (devinfo->gen >= 8 || devinfo->is_haswell)
    #####:    #####: 3127:         msg_control |= 0 << 4; /* SIMD4x2 mode */
        -:        -: 3128:      else
    #####:    #####: 3129:         msg_control |= 2 << 4; /* SIMD8 mode */
        -:        -: 3130:   }
        -:        -: 3131:
    #####:    #####: 3132:   brw_inst_set_dp_msg_type(devinfo, insn,
    #####:    #####: 3133:                            devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3134:                             HSW_DATAPORT_DC_PORT1_UNTYPED_SURFACE_WRITE :
        -:        -: 3135:                             GEN7_DATAPORT_DC_UNTYPED_SURFACE_WRITE);
    #####:    #####: 3136:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3137:}
        -:        -: 3138:
        -:        -: 3139:void
    #####:    #####: 3140:brw_untyped_surface_write(struct brw_codegen *p,
        -:        -: 3141:                          struct brw_reg payload,
        -:        -: 3142:                          struct brw_reg surface,
        -:        -: 3143:                          unsigned msg_length,
        -:        -: 3144:                          unsigned num_channels)
        -:        -: 3145:{
    #####:    #####: 3146:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3147:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3148:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3149:                          GEN7_SFID_DATAPORT_DATA_CACHE);
    #####:    #####: 3150:   const bool align1 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1;
        -:        -: 3151:   /* Mask out unused components -- See comment in brw_untyped_atomic(). */
    #####:    #####: 3152:   const unsigned mask = devinfo->gen == 7 && !devinfo->is_haswell && !align1 ?
        -:        -: 3153:                          WRITEMASK_X : WRITEMASK_XYZW;
    #####:    #####: 3154:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3155:      p, sfid, brw_writemask(brw_null_reg(), mask),
        -:        -: 3156:      payload, surface, msg_length, 0, align1);
        -:        -: 3157:
    #####:    #####: 3158:   brw_set_dp_untyped_surface_write_message(
        -:        -: 3159:      p, insn, num_channels);
    #####:    #####: 3160:}
        -:        -: 3161:
        -:        -: 3162:static void
    #####:    #####: 3163:brw_set_dp_typed_atomic_message(struct brw_codegen *p,
        -:        -: 3164:                                struct brw_inst *insn,
        -:        -: 3165:                                unsigned atomic_op,
        -:        -: 3166:                                bool response_expected)
        -:        -: 3167:{
    #####:    #####: 3168:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3169:   unsigned msg_control =
    #####:    #####: 3170:      atomic_op | /* Atomic Operation Type: BRW_AOP_* */
        -:        -: 3171:      (response_expected ? 1 << 5 : 0); /* Return data expected */
        -:        -: 3172:
    #####:    #####: 3173:   if (devinfo->gen >= 8 || devinfo->is_haswell) {
    #####:    #####: 3174:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3175:         if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3176:            msg_control |= 1 << 4; /* Use high 8 slots of the sample mask */
        -:        -: 3177:
    #####:    #####: 3178:         brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3179:                                  HSW_DATAPORT_DC_PORT1_TYPED_ATOMIC_OP);
        -:        -: 3180:      } else {
    #####:    #####: 3181:         brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3182:                                  HSW_DATAPORT_DC_PORT1_TYPED_ATOMIC_OP_SIMD4X2);
        -:        -: 3183:      }
        -:        -: 3184:
        -:        -: 3185:   } else {
    #####:    #####: 3186:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3187:                               GEN7_DATAPORT_RC_TYPED_ATOMIC_OP);
        -:        -: 3188:
    #####:    #####: 3189:      if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3190:         msg_control |= 1 << 4; /* Use high 8 slots of the sample mask */
        -:        -: 3191:   }
        -:        -: 3192:
    #####:    #####: 3193:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3194:}
        -:        -: 3195:
        -:        -: 3196:void
    #####:    #####: 3197:brw_typed_atomic(struct brw_codegen *p,
        -:        -: 3198:                 struct brw_reg dst,
        -:        -: 3199:                 struct brw_reg payload,
        -:        -: 3200:                 struct brw_reg surface,
        -:        -: 3201:                 unsigned atomic_op,
        -:        -: 3202:                 unsigned msg_length,
        -:        -: 3203:                 bool response_expected) {
    #####:    #####: 3204:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3205:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3206:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3207:                          GEN6_SFID_DATAPORT_RENDER_CACHE);
    #####:    #####: 3208:   const bool align1 = (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1);
        -:        -: 3209:   /* Mask out unused components -- See comment in brw_untyped_atomic(). */
    #####:    #####: 3210:   const unsigned mask = align1 ? WRITEMASK_XYZW : WRITEMASK_X;
    #####:    #####: 3211:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3212:      p, sfid, brw_writemask(dst, mask), payload, surface, msg_length,
        -:        -: 3213:      brw_surface_payload_size(p, response_expected,
    #####:    #####: 3214:                               devinfo->gen >= 8 || devinfo->is_haswell, false),
        -:        -: 3215:      true);
        -:        -: 3216:
    #####:    #####: 3217:   brw_set_dp_typed_atomic_message(
        -:        -: 3218:      p, insn, atomic_op, response_expected);
    #####:    #####: 3219:}
        -:        -: 3220:
        -:        -: 3221:static void
    #####:    #####: 3222:brw_set_dp_typed_surface_read_message(struct brw_codegen *p,
        -:        -: 3223:                                      struct brw_inst *insn,
        -:        -: 3224:                                      unsigned num_channels)
        -:        -: 3225:{
    #####:    #####: 3226:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3227:   /* Set mask of unused channels. */
    #####:    #####: 3228:   unsigned msg_control = 0xf & (0xf << num_channels);
        -:        -: 3229:
    #####:    #####: 3230:   if (devinfo->gen >= 8 || devinfo->is_haswell) {
    #####:    #####: 3231:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3232:         if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3233:            msg_control |= 2 << 4; /* Use high 8 slots of the sample mask */
        -:        -: 3234:         else
    #####:    #####: 3235:            msg_control |= 1 << 4; /* Use low 8 slots of the sample mask */
        -:        -: 3236:      }
        -:        -: 3237:
    #####:    #####: 3238:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3239:                               HSW_DATAPORT_DC_PORT1_TYPED_SURFACE_READ);
        -:        -: 3240:   } else {
    #####:    #####: 3241:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3242:         if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3243:            msg_control |= 1 << 5; /* Use high 8 slots of the sample mask */
        -:        -: 3244:      }
        -:        -: 3245:
    #####:    #####: 3246:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3247:                               GEN7_DATAPORT_RC_TYPED_SURFACE_READ);
        -:        -: 3248:   }
        -:        -: 3249:
    #####:    #####: 3250:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3251:}
        -:        -: 3252:
        -:        -: 3253:void
    #####:    #####: 3254:brw_typed_surface_read(struct brw_codegen *p,
        -:        -: 3255:                       struct brw_reg dst,
        -:        -: 3256:                       struct brw_reg payload,
        -:        -: 3257:                       struct brw_reg surface,
        -:        -: 3258:                       unsigned msg_length,
        -:        -: 3259:                       unsigned num_channels)
        -:        -: 3260:{
    #####:    #####: 3261:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3262:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3263:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3264:                          GEN6_SFID_DATAPORT_RENDER_CACHE);
    #####:    #####: 3265:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3266:      p, sfid, dst, payload, surface, msg_length,
        -:        -: 3267:      brw_surface_payload_size(p, num_channels,
    #####:    #####: 3268:                               devinfo->gen >= 8 || devinfo->is_haswell, false),
        -:        -: 3269:      true);
        -:        -: 3270:
    #####:    #####: 3271:   brw_set_dp_typed_surface_read_message(
        -:        -: 3272:      p, insn, num_channels);
    #####:    #####: 3273:}
        -:        -: 3274:
        -:        -: 3275:static void
    #####:    #####: 3276:brw_set_dp_typed_surface_write_message(struct brw_codegen *p,
        -:        -: 3277:                                       struct brw_inst *insn,
        -:        -: 3278:                                       unsigned num_channels)
        -:        -: 3279:{
    #####:    #####: 3280:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3281:   /* Set mask of unused channels. */
    #####:    #####: 3282:   unsigned msg_control = 0xf & (0xf << num_channels);
        -:        -: 3283:
    #####:    #####: 3284:   if (devinfo->gen >= 8 || devinfo->is_haswell) {
    #####:    #####: 3285:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3286:         if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3287:            msg_control |= 2 << 4; /* Use high 8 slots of the sample mask */
        -:        -: 3288:         else
    #####:    #####: 3289:            msg_control |= 1 << 4; /* Use low 8 slots of the sample mask */
        -:        -: 3290:      }
        -:        -: 3291:
    #####:    #####: 3292:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3293:                               HSW_DATAPORT_DC_PORT1_TYPED_SURFACE_WRITE);
        -:        -: 3294:
        -:        -: 3295:   } else {
    #####:    #####: 3296:      if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3297:         if (brw_inst_qtr_control(devinfo, p->current) % 2 == 1)
    #####:    #####: 3298:            msg_control |= 1 << 5; /* Use high 8 slots of the sample mask */
        -:        -: 3299:      }
        -:        -: 3300:
    #####:    #####: 3301:      brw_inst_set_dp_msg_type(devinfo, insn,
        -:        -: 3302:                               GEN7_DATAPORT_RC_TYPED_SURFACE_WRITE);
        -:        -: 3303:   }
        -:        -: 3304:
    #####:    #####: 3305:   brw_inst_set_dp_msg_control(devinfo, insn, msg_control);
    #####:    #####: 3306:}
        -:        -: 3307:
        -:        -: 3308:void
    #####:    #####: 3309:brw_typed_surface_write(struct brw_codegen *p,
        -:        -: 3310:                        struct brw_reg payload,
        -:        -: 3311:                        struct brw_reg surface,
        -:        -: 3312:                        unsigned msg_length,
        -:        -: 3313:                        unsigned num_channels)
        -:        -: 3314:{
    #####:    #####: 3315:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3316:   const unsigned sfid = (devinfo->gen >= 8 || devinfo->is_haswell ?
        -:        -: 3317:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3318:                          GEN6_SFID_DATAPORT_RENDER_CACHE);
    #####:    #####: 3319:   const bool align1 = (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1);
        -:        -: 3320:   /* Mask out unused components -- See comment in brw_untyped_atomic(). */
    #####:    #####: 3321:   const unsigned mask = (devinfo->gen == 7 && !devinfo->is_haswell && !align1 ?
        -:        -: 3322:                          WRITEMASK_X : WRITEMASK_XYZW);
    #####:    #####: 3323:   struct brw_inst *insn = brw_send_indirect_surface_message(
        -:        -: 3324:      p, sfid, brw_writemask(brw_null_reg(), mask),
        -:        -: 3325:      payload, surface, msg_length, 0, true);
        -:        -: 3326:
    #####:    #####: 3327:   brw_set_dp_typed_surface_write_message(
        -:        -: 3328:      p, insn, num_channels);
    #####:    #####: 3329:}
        -:        -: 3330:
        -:        -: 3331:static void
    #####:    #####: 3332:brw_set_memory_fence_message(struct brw_codegen *p,
        -:        -: 3333:                             struct brw_inst *insn,
        -:        -: 3334:                             enum brw_message_target sfid,
        -:        -: 3335:                             bool commit_enable)
        -:        -: 3336:{
    #####:    #####: 3337:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3338:
    #####:    #####: 3339:   brw_set_message_descriptor(p, insn, sfid,
        -:        -: 3340:                              1 /* message length */,
        -:        -: 3341:                              (commit_enable ? 1 : 0) /* response length */,
        -:        -: 3342:                              true /* header present */,
        -:        -: 3343:                              false);
        -:        -: 3344:
    #####:    #####: 3345:   switch (sfid) {
        -:        -: 3346:   case GEN6_SFID_DATAPORT_RENDER_CACHE:
    #####:    #####: 3347:      brw_inst_set_dp_msg_type(devinfo, insn, GEN7_DATAPORT_RC_MEMORY_FENCE);
    #####:    #####: 3348:      break;
        -:        -: 3349:   case GEN7_SFID_DATAPORT_DATA_CACHE:
    #####:    #####: 3350:      brw_inst_set_dp_msg_type(devinfo, insn, GEN7_DATAPORT_DC_MEMORY_FENCE);
    #####:    #####: 3351:      break;
        -:        -: 3352:   default:
    #####:    #####: 3353:      unreachable("Not reached");
        -:        -: 3354:   }
        -:        -: 3355:
    #####:    #####: 3356:   if (commit_enable)
    #####:    #####: 3357:      brw_inst_set_dp_msg_control(devinfo, insn, 1 << 5);
    #####:    #####: 3358:}
        -:        -: 3359:
        -:        -: 3360:void
    #####:    #####: 3361:brw_memory_fence(struct brw_codegen *p,
        -:        -: 3362:                 struct brw_reg dst)
        -:        -: 3363:{
    #####:    #####: 3364:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3365:   const bool commit_enable = devinfo->gen == 7 && !devinfo->is_haswell;
        -:        -: 3366:   struct brw_inst *insn;
        -:        -: 3367:
    #####:    #####: 3368:   brw_push_insn_state(p);
    #####:    #####: 3369:   brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 3370:   brw_set_default_exec_size(p, BRW_EXECUTE_1);
    #####:    #####: 3371:   dst = vec1(dst);
        -:        -: 3372:
        -:        -: 3373:   /* Set dst as destination for dependency tracking, the MEMORY_FENCE
        -:        -: 3374:    * message doesn't write anything back.
        -:        -: 3375:    */
    #####:    #####: 3376:   insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 3377:   dst = retype(dst, BRW_REGISTER_TYPE_UW);
    #####:    #####: 3378:   brw_set_dest(p, insn, dst);
    #####:    #####: 3379:   brw_set_src0(p, insn, dst);
    #####:    #####: 3380:   brw_set_memory_fence_message(p, insn, GEN7_SFID_DATAPORT_DATA_CACHE,
        -:        -: 3381:                                commit_enable);
        -:        -: 3382:
    #####:    #####: 3383:   if (devinfo->gen == 7 && !devinfo->is_haswell) {
        -:        -: 3384:      /* IVB does typed surface access through the render cache, so we need to
        -:        -: 3385:       * flush it too.  Use a different register so both flushes can be
        -:        -: 3386:       * pipelined by the hardware.
        -:        -: 3387:       */
    #####:    #####: 3388:      insn = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 3389:      brw_set_dest(p, insn, offset(dst, 1));
    #####:    #####: 3390:      brw_set_src0(p, insn, offset(dst, 1));
    #####:    #####: 3391:      brw_set_memory_fence_message(p, insn, GEN6_SFID_DATAPORT_RENDER_CACHE,
        -:        -: 3392:                                   commit_enable);
        -:        -: 3393:
        -:        -: 3394:      /* Now write the response of the second message into the response of the
        -:        -: 3395:       * first to trigger a pipeline stall -- This way future render and data
        -:        -: 3396:       * cache messages will be properly ordered with respect to past data and
        -:        -: 3397:       * render cache messages.
        -:        -: 3398:       */
    #####:    #####: 3399:      brw_MOV(p, dst, offset(dst, 1));
        -:        -: 3400:   }
        -:        -: 3401:
    #####:    #####: 3402:   brw_pop_insn_state(p);
    #####:    #####: 3403:}
        -:        -: 3404:
        -:        -: 3405:void
    #####:    #####: 3406:brw_pixel_interpolator_query(struct brw_codegen *p,
        -:        -: 3407:                             struct brw_reg dest,
        -:        -: 3408:                             struct brw_reg mrf,
        -:        -: 3409:                             bool noperspective,
        -:        -: 3410:                             unsigned mode,
        -:        -: 3411:                             struct brw_reg data,
        -:        -: 3412:                             unsigned msg_length,
        -:        -: 3413:                             unsigned response_length)
        -:        -: 3414:{
    #####:    #####: 3415:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3416:   struct brw_inst *insn;
    #####:    #####: 3417:   const uint16_t exec_size = brw_inst_exec_size(devinfo, p->current);
        -:        -: 3418:
        -:        -: 3419:   /* brw_send_indirect_message will automatically use a direct send message
        -:        -: 3420:    * if data is actually immediate.
        -:        -: 3421:    */
    #####:    #####: 3422:   insn = brw_send_indirect_message(p,
        -:        -: 3423:                                    GEN7_SFID_PIXEL_INTERPOLATOR,
        -:        -: 3424:                                    dest,
        -:        -: 3425:                                    mrf,
        -:        -: 3426:                                    vec1(data));
    #####:    #####: 3427:   brw_inst_set_mlen(devinfo, insn, msg_length);
    #####:    #####: 3428:   brw_inst_set_rlen(devinfo, insn, response_length);
        -:        -: 3429:
    #####:    #####: 3430:   brw_inst_set_pi_simd_mode(devinfo, insn, exec_size == BRW_EXECUTE_16);
    #####:    #####: 3431:   brw_inst_set_pi_slot_group(devinfo, insn, 0); /* zero unless 32/64px dispatch */
    #####:    #####: 3432:   brw_inst_set_pi_nopersp(devinfo, insn, noperspective);
    #####:    #####: 3433:   brw_inst_set_pi_message_type(devinfo, insn, mode);
    #####:    #####: 3434:}
        -:        -: 3435:
        -:        -: 3436:void
    #####:    #####: 3437:brw_find_live_channel(struct brw_codegen *p, struct brw_reg dst,
        -:        -: 3438:                      struct brw_reg mask)
        -:        -: 3439:{
    #####:    #####: 3440:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3441:   const unsigned exec_size = 1 << brw_inst_exec_size(devinfo, p->current);
    #####:    #####: 3442:   const unsigned qtr_control = brw_inst_qtr_control(devinfo, p->current);
        -:        -: 3443:   brw_inst *inst;
        -:        -: 3444:
    #####:    #####: 3445:   assert(devinfo->gen >= 7);
    #####:    #####: 3446:   assert(mask.type == BRW_REGISTER_TYPE_UD);
        -:        -: 3447:
    #####:    #####: 3448:   brw_push_insn_state(p);
        -:        -: 3449:
    #####:    #####: 3450:   if (brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1) {
    #####:    #####: 3451:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 3452:
    #####:    #####: 3453:      if (devinfo->gen >= 8) {
        -:        -: 3454:         /* Getting the first active channel index is easy on Gen8: Just find
        -:        -: 3455:          * the first bit set in the execution mask.  The register exists on
        -:        -: 3456:          * HSW already but it reads back as all ones when the current
        -:        -: 3457:          * instruction has execution masking disabled, so it's kind of
        -:        -: 3458:          * useless.
        -:        -: 3459:          */
    #####:    #####: 3460:         struct brw_reg exec_mask =
    #####:    #####: 3461:            retype(brw_mask_reg(0), BRW_REGISTER_TYPE_UD);
        -:        -: 3462:
    #####:    #####: 3463:         if (mask.file != BRW_IMMEDIATE_VALUE || mask.ud != 0xffffffff) {
        -:        -: 3464:            /* Unfortunately, ce0 does not take into account the thread
        -:        -: 3465:             * dispatch mask, which may be a problem in cases where it's not
        -:        -: 3466:             * tightly packed (i.e. it doesn't have the form '2^n - 1' for
        -:        -: 3467:             * some n).  Combine ce0 with the given dispatch (or vector) mask
        -:        -: 3468:             * to mask off those channels which were never dispatched by the
        -:        -: 3469:             * hardware.
        -:        -: 3470:             */
    #####:    #####: 3471:            brw_SHR(p, vec1(dst), mask, brw_imm_ud(qtr_control * 8));
    #####:    #####: 3472:            brw_AND(p, vec1(dst), exec_mask, vec1(dst));
    #####:    #####: 3473:            exec_mask = vec1(dst);
        -:        -: 3474:         }
        -:        -: 3475:
        -:        -: 3476:         /* Quarter control has the effect of magically shifting the value of
        -:        -: 3477:          * ce0 so you'll get the first active channel relative to the
        -:        -: 3478:          * specified quarter control as result.
        -:        -: 3479:          */
    #####:    #####: 3480:         inst = brw_FBL(p, vec1(dst), exec_mask);
        -:        -: 3481:      } else {
    #####:    #####: 3482:         const struct brw_reg flag = brw_flag_reg(1, 0);
        -:        -: 3483:
    #####:    #####: 3484:         brw_MOV(p, retype(flag, BRW_REGISTER_TYPE_UD), brw_imm_ud(0));
        -:        -: 3485:
        -:        -: 3486:         /* Run enough instructions returning zero with execution masking and
        -:        -: 3487:          * a conditional modifier enabled in order to get the full execution
        -:        -: 3488:          * mask in f1.0.  We could use a single 32-wide move here if it
        -:        -: 3489:          * weren't because of the hardware bug that causes channel enables to
        -:        -: 3490:          * be applied incorrectly to the second half of 32-wide instructions
        -:        -: 3491:          * on Gen7.
        -:        -: 3492:          */
    #####:    #####: 3493:         const unsigned lower_size = MIN2(16, exec_size);
    #####:    #####: 3494:         for (unsigned i = 0; i < exec_size / lower_size; i++) {
    #####:    #####: 3495:            inst = brw_MOV(p, retype(brw_null_reg(), BRW_REGISTER_TYPE_UW),
        -:        -: 3496:                           brw_imm_uw(0));
    #####:    #####: 3497:            brw_inst_set_mask_control(devinfo, inst, BRW_MASK_ENABLE);
    #####:    #####: 3498:            brw_inst_set_group(devinfo, inst, lower_size * i + 8 * qtr_control);
    #####:    #####: 3499:            brw_inst_set_cond_modifier(devinfo, inst, BRW_CONDITIONAL_Z);
    #####:    #####: 3500:            brw_inst_set_flag_reg_nr(devinfo, inst, 1);
    #####:    #####: 3501:            brw_inst_set_exec_size(devinfo, inst, cvt(lower_size) - 1);
        -:        -: 3502:         }
        -:        -: 3503:
        -:        -: 3504:         /* Find the first bit set in the exec_size-wide portion of the flag
        -:        -: 3505:          * register that was updated by the last sequence of MOV
        -:        -: 3506:          * instructions.
        -:        -: 3507:          */
    #####:    #####: 3508:         const enum brw_reg_type type = brw_int_type(exec_size / 8, false);
    #####:    #####: 3509:         brw_FBL(p, vec1(dst), byte_offset(retype(flag, type), qtr_control));
        -:        -: 3510:      }
        -:        -: 3511:   } else {
    #####:    #####: 3512:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 3513:
    #####:    #####: 3514:      if (devinfo->gen >= 8 &&
    #####:    #####: 3515:          mask.file == BRW_IMMEDIATE_VALUE && mask.ud == 0xffffffff) {
        -:        -: 3516:         /* In SIMD4x2 mode the first active channel index is just the
        -:        -: 3517:          * negation of the first bit of the mask register.  Note that ce0
        -:        -: 3518:          * doesn't take into account the dispatch mask, so the Gen7 path
        -:        -: 3519:          * should be used instead unless you have the guarantee that the
        -:        -: 3520:          * dispatch mask is tightly packed (i.e. it has the form '2^n - 1'
        -:        -: 3521:          * for some n).
        -:        -: 3522:          */
    #####:    #####: 3523:         inst = brw_AND(p, brw_writemask(dst, WRITEMASK_X),
        -:        -: 3524:                        negate(retype(brw_mask_reg(0), BRW_REGISTER_TYPE_UD)),
        -:        -: 3525:                        brw_imm_ud(1));
        -:        -: 3526:
        -:        -: 3527:      } else {
        -:        -: 3528:         /* Overwrite the destination without and with execution masking to
        -:        -: 3529:          * find out which of the channels is active.
        -:        -: 3530:          */
    #####:    #####: 3531:         brw_push_insn_state(p);
    #####:    #####: 3532:         brw_set_default_exec_size(p, BRW_EXECUTE_4);
    #####:    #####: 3533:         brw_MOV(p, brw_writemask(vec4(dst), WRITEMASK_X),
        -:        -: 3534:                 brw_imm_ud(1));
        -:        -: 3535:
    #####:    #####: 3536:         inst = brw_MOV(p, brw_writemask(vec4(dst), WRITEMASK_X),
        -:        -: 3537:                        brw_imm_ud(0));
    #####:    #####: 3538:         brw_pop_insn_state(p);
    #####:    #####: 3539:         brw_inst_set_mask_control(devinfo, inst, BRW_MASK_ENABLE);
        -:        -: 3540:      }
        -:        -: 3541:   }
        -:        -: 3542:
    #####:    #####: 3543:   brw_pop_insn_state(p);
    #####:    #####: 3544:}
        -:        -: 3545:
        -:        -: 3546:void
    #####:    #####: 3547:brw_broadcast(struct brw_codegen *p,
        -:        -: 3548:              struct brw_reg dst,
        -:        -: 3549:              struct brw_reg src,
        -:        -: 3550:              struct brw_reg idx)
        -:        -: 3551:{
    #####:    #####: 3552:   const struct gen_device_info *devinfo = p->devinfo;
    #####:    #####: 3553:   const bool align1 = brw_inst_access_mode(devinfo, p->current) == BRW_ALIGN_1;
        -:        -: 3554:   brw_inst *inst;
        -:        -: 3555:
    #####:    #####: 3556:   brw_push_insn_state(p);
    #####:    #####: 3557:   brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 3558:   brw_set_default_exec_size(p, align1 ? BRW_EXECUTE_1 : BRW_EXECUTE_4);
        -:        -: 3559:
    #####:    #####: 3560:   assert(src.file == BRW_GENERAL_REGISTER_FILE &&
        -:        -: 3561:          src.address_mode == BRW_ADDRESS_DIRECT);
        -:        -: 3562:
    #####:    #####: 3563:   if ((src.vstride == 0 && (src.hstride == 0 || !align1)) ||
    #####:    #####: 3564:       idx.file == BRW_IMMEDIATE_VALUE) {
        -:        -: 3565:      /* Trivial, the source is already uniform or the index is a constant.
        -:        -: 3566:       * We will typically not get here if the optimizer is doing its job, but
        -:        -: 3567:       * asserting would be mean.
        -:        -: 3568:       */
    #####:    #####: 3569:      const unsigned i = idx.file == BRW_IMMEDIATE_VALUE ? idx.ud : 0;
    #####:    #####: 3570:      brw_MOV(p, dst,
    #####:    #####: 3571:              (align1 ? stride(suboffset(src, i), 0, 1, 0) :
    #####:    #####: 3572:               stride(suboffset(src, 4 * i), 0, 4, 1)));
        -:        -: 3573:   } else {
    #####:    #####: 3574:      if (align1) {
    #####:    #####: 3575:         const struct brw_reg addr =
    #####:    #####: 3576:            retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD);
    #####:    #####: 3577:         const unsigned offset = src.nr * REG_SIZE + src.subnr;
        -:        -: 3578:         /* Limit in bytes of the signed indirect addressing immediate. */
    #####:    #####: 3579:         const unsigned limit = 512;
        -:        -: 3580:
    #####:    #####: 3581:         brw_push_insn_state(p);
    #####:    #####: 3582:         brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 3583:         brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
        -:        -: 3584:
        -:        -: 3585:         /* Take into account the component size and horizontal stride. */
    #####:    #####: 3586:         assert(src.vstride == src.hstride + src.width);
    #####:    #####: 3587:         brw_SHL(p, addr, vec1(idx),
    #####:    #####: 3588:                 brw_imm_ud(_mesa_logbase2(type_sz(src.type)) +
    #####:    #####: 3589:                            src.hstride - 1));
        -:        -: 3590:
        -:        -: 3591:         /* We can only address up to limit bytes using the indirect
        -:        -: 3592:          * addressing immediate, account for the difference if the source
        -:        -: 3593:          * register is above this limit.
        -:        -: 3594:          */
    #####:    #####: 3595:         if (offset >= limit)
    #####:    #####: 3596:            brw_ADD(p, addr, addr, brw_imm_ud(offset - offset % limit));
        -:        -: 3597:
    #####:    #####: 3598:         brw_pop_insn_state(p);
        -:        -: 3599:
        -:        -: 3600:         /* Use indirect addressing to fetch the specified component. */
    #####:    #####: 3601:         brw_MOV(p, dst,
    #####:    #####: 3602:                 retype(brw_vec1_indirect(addr.subnr, offset % limit),
    #####:    #####: 3603:                        src.type));
        -:        -: 3604:      } else {
        -:        -: 3605:         /* In SIMD4x2 mode the index can be either zero or one, replicate it
        -:        -: 3606:          * to all bits of a flag register,
        -:        -: 3607:          */
    #####:    #####: 3608:         inst = brw_MOV(p,
        -:        -: 3609:                        brw_null_reg(),
        -:        -: 3610:                        stride(brw_swizzle(idx, BRW_SWIZZLE_XXXX), 4, 4, 1));
    #####:    #####: 3611:         brw_inst_set_pred_control(devinfo, inst, BRW_PREDICATE_NONE);
    #####:    #####: 3612:         brw_inst_set_cond_modifier(devinfo, inst, BRW_CONDITIONAL_NZ);
    #####:    #####: 3613:         brw_inst_set_flag_reg_nr(devinfo, inst, 1);
        -:        -: 3614:
        -:        -: 3615:         /* and use predicated SEL to pick the right channel. */
    #####:    #####: 3616:         inst = brw_SEL(p, dst,
        -:        -: 3617:                        stride(suboffset(src, 4), 4, 4, 1),
        -:        -: 3618:                        stride(src, 4, 4, 1));
    #####:    #####: 3619:         brw_inst_set_pred_control(devinfo, inst, BRW_PREDICATE_NORMAL);
    #####:    #####: 3620:         brw_inst_set_flag_reg_nr(devinfo, inst, 1);
        -:        -: 3621:      }
        -:        -: 3622:   }
        -:        -: 3623:
    #####:    #####: 3624:   brw_pop_insn_state(p);
    #####:    #####: 3625:}
        -:        -: 3626:
        -:        -: 3627:/**
        -:        -: 3628: * This instruction is generated as a single-channel align1 instruction by
        -:        -: 3629: * both the VS and FS stages when using INTEL_DEBUG=shader_time.
        -:        -: 3630: *
        -:        -: 3631: * We can't use the typed atomic op in the FS because that has the execution
        -:        -: 3632: * mask ANDed with the pixel mask, but we just want to write the one dword for
        -:        -: 3633: * all the pixels.
        -:        -: 3634: *
        -:        -: 3635: * We don't use the SIMD4x2 atomic ops in the VS because want to just write
        -:        -: 3636: * one u32.  So we use the same untyped atomic write message as the pixel
        -:        -: 3637: * shader.
        -:        -: 3638: *
        -:        -: 3639: * The untyped atomic operation requires a BUFFER surface type with RAW
        -:        -: 3640: * format, and is only accessible through the legacy DATA_CACHE dataport
        -:        -: 3641: * messages.
        -:        -: 3642: */
    #####:    #####: 3643:void brw_shader_time_add(struct brw_codegen *p,
        -:        -: 3644:                         struct brw_reg payload,
        -:        -: 3645:                         uint32_t surf_index)
        -:        -: 3646:{
    #####:    #####: 3647:   const unsigned sfid = (p->devinfo->gen >= 8 || p->devinfo->is_haswell ?
        -:        -: 3648:                          HSW_SFID_DATAPORT_DATA_CACHE_1 :
        -:        -: 3649:                          GEN7_SFID_DATAPORT_DATA_CACHE);
    #####:    #####: 3650:   assert(p->devinfo->gen >= 7);
        -:        -: 3651:
    #####:    #####: 3652:   brw_push_insn_state(p);
    #####:    #####: 3653:   brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 3654:   brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 3655:   brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####: 3656:   brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND);
        -:        -: 3657:
        -:        -: 3658:   /* We use brw_vec1_reg and unmasked because we want to increment the given
        -:        -: 3659:    * offset only once.
        -:        -: 3660:    */
    #####:    #####: 3661:   brw_set_dest(p, send, brw_vec1_reg(BRW_ARCHITECTURE_REGISTER_FILE,
        -:        -: 3662:                                      BRW_ARF_NULL, 0));
    #####:    #####: 3663:   brw_set_src0(p, send, brw_vec1_reg(payload.file,
    #####:    #####: 3664:                                      payload.nr, 0));
    #####:    #####: 3665:   brw_set_src1(p, send, brw_imm_ud(0));
    #####:    #####: 3666:   brw_set_message_descriptor(p, send, sfid, 2, 0, false, false);
    #####:    #####: 3667:   brw_inst_set_binding_table_index(p->devinfo, send, surf_index);
    #####:    #####: 3668:   brw_set_dp_untyped_atomic_message(p, send, BRW_AOP_ADD, false);
        -:        -: 3669:
    #####:    #####: 3670:   brw_pop_insn_state(p);
    #####:    #####: 3671:}
        -:        -: 3672:
        -:        -: 3673:
        -:        -: 3674:/**
        -:        -: 3675: * Emit the SEND message for a barrier
        -:        -: 3676: */
        -:        -: 3677:void
    #####:    #####: 3678:brw_barrier(struct brw_codegen *p, struct brw_reg src)
        -:        -: 3679:{
    #####:    #####: 3680:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3681:   struct brw_inst *inst;
        -:        -: 3682:
    #####:    #####: 3683:   assert(devinfo->gen >= 7);
        -:        -: 3684:
    #####:    #####: 3685:   brw_push_insn_state(p);
    #####:    #####: 3686:   brw_set_default_access_mode(p, BRW_ALIGN_1);
    #####:    #####: 3687:   inst = next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 3688:   brw_set_dest(p, inst, retype(brw_null_reg(), BRW_REGISTER_TYPE_UW));
    #####:    #####: 3689:   brw_set_src0(p, inst, src);
    #####:    #####: 3690:   brw_set_src1(p, inst, brw_null_reg());
        -:        -: 3691:
    #####:    #####: 3692:   brw_set_message_descriptor(p, inst, BRW_SFID_MESSAGE_GATEWAY,
        -:        -: 3693:                              1 /* msg_length */,
        -:        -: 3694:                              0 /* response_length */,
        -:        -: 3695:                              false /* header_present */,
        -:        -: 3696:                              false /* end_of_thread */);
        -:        -: 3697:
    #####:    #####: 3698:   brw_inst_set_gateway_notify(devinfo, inst, 1);
    #####:    #####: 3699:   brw_inst_set_gateway_subfuncid(devinfo, inst,
        -:        -: 3700:                                  BRW_MESSAGE_GATEWAY_SFID_BARRIER_MSG);
        -:        -: 3701:
    #####:    #####: 3702:   brw_inst_set_mask_control(devinfo, inst, BRW_MASK_DISABLE);
    #####:    #####: 3703:   brw_pop_insn_state(p);
    #####:    #####: 3704:}
        -:        -: 3705:
        -:        -: 3706:
        -:        -: 3707:/**
        -:        -: 3708: * Emit the wait instruction for a barrier
        -:        -: 3709: */
        -:        -: 3710:void
    #####:    #####: 3711:brw_WAIT(struct brw_codegen *p)
        -:        -: 3712:{
    #####:    #####: 3713:   const struct gen_device_info *devinfo = p->devinfo;
        -:        -: 3714:   struct brw_inst *insn;
        -:        -: 3715:
    #####:    #####: 3716:   struct brw_reg src = brw_notification_reg();
        -:        -: 3717:
    #####:    #####: 3718:   insn = next_insn(p, BRW_OPCODE_WAIT);
    #####:    #####: 3719:   brw_set_dest(p, insn, src);
    #####:    #####: 3720:   brw_set_src0(p, insn, src);
    #####:    #####: 3721:   brw_set_src1(p, insn, brw_null_reg());
        -:        -: 3722:
    #####:    #####: 3723:   brw_inst_set_exec_size(devinfo, insn, BRW_EXECUTE_1);
    #####:    #####: 3724:   brw_inst_set_mask_control(devinfo, insn, BRW_MASK_DISABLE);
    #####:    #####: 3725:}

src/intel/brw_eu.h.gcov

        -:        -:    0:Source:compiler/brw_eu.h
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: Copyright (C) Intel Corp.  2006.  All Rights Reserved.
        -:        -:    3: Intel funded Tungsten Graphics to
        -:        -:    4: develop this 3D driver.
        -:        -:    5:
        -:        -:    6: Permission is hereby granted, free of charge, to any person obtaining
        -:        -:    7: a copy of this software and associated documentation files (the
        -:        -:    8: "Software"), to deal in the Software without restriction, including
        -:        -:    9: without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   10: distribute, sublicense, and/or sell copies of the Software, and to
        -:        -:   11: permit persons to whom the Software is furnished to do so, subject to
        -:        -:   12: the following conditions:
        -:        -:   13:
        -:        -:   14: The above copyright notice and this permission notice (including the
        -:        -:   15: next paragraph) shall be included in all copies or substantial
        -:        -:   16: portions of the Software.
        -:        -:   17:
        -:        -:   18: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        -:        -:   19: EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   20: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        -:        -:   21: IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
        -:        -:   22: LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
        -:        -:   23: OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
        -:        -:   24: WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   25:
        -:        -:   26: **********************************************************************/
        -:        -:   27: /*
        -:        -:   28:  * Authors:
        -:        -:   29:  *   Keith Whitwell <keithw@vmware.com>
        -:        -:   30:  */
        -:        -:   31:
        -:        -:   32:
        -:        -:   33:#ifndef BRW_EU_H
        -:        -:   34:#define BRW_EU_H
        -:        -:   35:
        -:        -:   36:#include <stdbool.h>
        -:        -:   37:#include "brw_inst.h"
        -:        -:   38:#include "brw_eu_defines.h"
        -:        -:   39:#include "brw_reg.h"
        -:        -:   40:#include "intel_asm_annotation.h"
        -:        -:   41:
        -:        -:   42:#ifdef __cplusplus
        -:        -:   43:extern "C" {
        -:        -:   44:#endif
        -:        -:   45:
        -:        -:   46:#define BRW_EU_MAX_INSN_STACK 5
        -:        -:   47:
        -:        -:   48:/* A helper for accessing the last instruction emitted.  This makes it easy
        -:        -:   49: * to set various bits on an instruction without having to create temporary
        -:        -:   50: * variable and assign the emitted instruction to those.
        -:        -:   51: */
        -:        -:   52:#define brw_last_inst (&p->store[p->nr_insn - 1])
        -:        -:   53:
        -:        -:   54:struct brw_codegen {
        -:        -:   55:   brw_inst *store;
        -:        -:   56:   int store_size;
        -:        -:   57:   unsigned nr_insn;
        -:        -:   58:   unsigned int next_insn_offset;
        -:        -:   59:
        -:        -:   60:   void *mem_ctx;
        -:        -:   61:
        -:        -:   62:   /* Allow clients to push/pop instruction state:
        -:        -:   63:    */
        -:        -:   64:   brw_inst stack[BRW_EU_MAX_INSN_STACK];
        -:        -:   65:   bool compressed_stack[BRW_EU_MAX_INSN_STACK];
        -:        -:   66:   brw_inst *current;
        -:        -:   67:
        -:        -:   68:   bool single_program_flow;
        -:        -:   69:   const struct gen_device_info *devinfo;
        -:        -:   70:
        -:        -:   71:   /* Control flow stacks:
        -:        -:   72:    * - if_stack contains IF and ELSE instructions which must be patched
        -:        -:   73:    *   (and popped) once the matching ENDIF instruction is encountered.
        -:        -:   74:    *
        -:        -:   75:    *   Just store the instruction pointer(an index).
        -:        -:   76:    */
        -:        -:   77:   int *if_stack;
        -:        -:   78:   int if_stack_depth;
        -:        -:   79:   int if_stack_array_size;
        -:        -:   80:
        -:        -:   81:   /**
        -:        -:   82:    * loop_stack contains the instruction pointers of the starts of loops which
        -:        -:   83:    * must be patched (and popped) once the matching WHILE instruction is
        -:        -:   84:    * encountered.
        -:        -:   85:    */
        -:        -:   86:   int *loop_stack;
        -:        -:   87:   /**
        -:        -:   88:    * pre-gen6, the BREAK and CONT instructions had to tell how many IF/ENDIF
        -:        -:   89:    * blocks they were popping out of, to fix up the mask stack.  This tracks
        -:        -:   90:    * the IF/ENDIF nesting in each current nested loop level.
        -:        -:   91:    */
        -:        -:   92:   int *if_depth_in_loop;
        -:        -:   93:   int loop_stack_depth;
        -:        -:   94:   int loop_stack_array_size;
        -:        -:   95:};
        -:        -:   96:
        -:        -:   97:void brw_pop_insn_state( struct brw_codegen *p );
        -:        -:   98:void brw_push_insn_state( struct brw_codegen *p );
        -:        -:   99:void brw_set_default_exec_size(struct brw_codegen *p, unsigned value);
        -:        -:  100:void brw_set_default_mask_control( struct brw_codegen *p, unsigned value );
        -:        -:  101:void brw_set_default_saturate( struct brw_codegen *p, bool enable );
        -:        -:  102:void brw_set_default_access_mode( struct brw_codegen *p, unsigned access_mode );
        -:        -:  103:void brw_inst_set_compression(const struct gen_device_info *devinfo,
        -:        -:  104:                              brw_inst *inst, bool on);
        -:        -:  105:void brw_set_default_compression(struct brw_codegen *p, bool on);
        -:        -:  106:void brw_inst_set_group(const struct gen_device_info *devinfo,
        -:        -:  107:                        brw_inst *inst, unsigned group);
        -:        -:  108:void brw_set_default_group(struct brw_codegen *p, unsigned group);
        -:        -:  109:void brw_set_default_compression_control(struct brw_codegen *p, enum brw_compression c);
        -:        -:  110:void brw_set_default_predicate_control( struct brw_codegen *p, unsigned pc );
        -:        -:  111:void brw_set_default_predicate_inverse(struct brw_codegen *p, bool predicate_inverse);
        -:        -:  112:void brw_set_default_flag_reg(struct brw_codegen *p, int reg, int subreg);
        -:        -:  113:void brw_set_default_acc_write_control(struct brw_codegen *p, unsigned value);
        -:        -:  114:
        -:        -:  115:void brw_init_codegen(const struct gen_device_info *, struct brw_codegen *p,
        -:        -:  116:		      void *mem_ctx);
        -:        -:  117:int brw_disassemble_inst(FILE *file, const struct gen_device_info *devinfo,
        -:        -:  118:                         struct brw_inst *inst, bool is_compacted);
        -:        -:  119:void brw_disassemble(const struct gen_device_info *devinfo, void *assembly,
        -:        -:  120:                     int start, int end, FILE *out);
        -:        -:  121:const unsigned *brw_get_program( struct brw_codegen *p, unsigned *sz );
        -:        -:  122:
        -:        -:  123:brw_inst *brw_next_insn(struct brw_codegen *p, unsigned opcode);
        -:        -:  124:void brw_set_dest(struct brw_codegen *p, brw_inst *insn, struct brw_reg dest);
        -:        -:  125:void brw_set_src0(struct brw_codegen *p, brw_inst *insn, struct brw_reg reg);
        -:        -:  126:
        -:        -:  127:void gen6_resolve_implied_move(struct brw_codegen *p,
        -:        -:  128:			       struct brw_reg *src,
        -:        -:  129:			       unsigned msg_reg_nr);
        -:        -:  130:
        -:        -:  131:/* Helpers for regular instructions:
        -:        -:  132: */
        -:        -:  133:#define ALU1(OP)				\
        -:        -:  134:brw_inst *brw_##OP(struct brw_codegen *p,	\
        -:        -:  135:	      struct brw_reg dest,		\
        -:        -:  136:	      struct brw_reg src0);
        -:        -:  137:
        -:        -:  138:#define ALU2(OP)				\
        -:        -:  139:brw_inst *brw_##OP(struct brw_codegen *p,	\
        -:        -:  140:	      struct brw_reg dest,		\
        -:        -:  141:	      struct brw_reg src0,		\
        -:        -:  142:	      struct brw_reg src1);
        -:        -:  143:
        -:        -:  144:#define ALU3(OP)				\
        -:        -:  145:brw_inst *brw_##OP(struct brw_codegen *p,	\
        -:        -:  146:	      struct brw_reg dest,		\
        -:        -:  147:	      struct brw_reg src0,		\
        -:        -:  148:	      struct brw_reg src1,		\
        -:        -:  149:	      struct brw_reg src2);
        -:        -:  150:
        -:        -:  151:#define ROUND(OP) \
        -:        -:  152:void brw_##OP(struct brw_codegen *p, struct brw_reg dest, struct brw_reg src0);
        -:        -:  153:
        -:        -:  154:ALU1(MOV)
        -:        -:  155:ALU2(SEL)
        -:        -:  156:ALU1(NOT)
        -:        -:  157:ALU2(AND)
        -:        -:  158:ALU2(OR)
        -:        -:  159:ALU2(XOR)
        -:        -:  160:ALU2(SHR)
        -:        -:  161:ALU2(SHL)
        -:        -:  162:ALU1(DIM)
        -:        -:  163:ALU2(ASR)
        -:        -:  164:ALU1(F32TO16)
        -:        -:  165:ALU1(F16TO32)
        -:        -:  166:ALU2(ADD)
        -:        -:  167:ALU2(AVG)
        -:        -:  168:ALU2(MUL)
        -:        -:  169:ALU1(FRC)
        -:        -:  170:ALU1(RNDD)
        -:        -:  171:ALU2(MAC)
        -:        -:  172:ALU2(MACH)
        -:        -:  173:ALU1(LZD)
        -:        -:  174:ALU2(DP4)
        -:        -:  175:ALU2(DPH)
        -:        -:  176:ALU2(DP3)
        -:        -:  177:ALU2(DP2)
        -:        -:  178:ALU2(LINE)
        -:        -:  179:ALU2(PLN)
        -:        -:  180:ALU3(MAD)
        -:        -:  181:ALU3(LRP)
        -:        -:  182:ALU1(BFREV)
        -:        -:  183:ALU3(BFE)
        -:        -:  184:ALU2(BFI1)
        -:        -:  185:ALU3(BFI2)
        -:        -:  186:ALU1(FBH)
        -:        -:  187:ALU1(FBL)
        -:        -:  188:ALU1(CBIT)
        -:        -:  189:ALU2(ADDC)
        -:        -:  190:ALU2(SUBB)
        -:        -:  191:ALU2(MAC)
        -:        -:  192:
        -:        -:  193:ROUND(RNDZ)
        -:        -:  194:ROUND(RNDE)
        -:        -:  195:
        -:        -:  196:#undef ALU1
        -:        -:  197:#undef ALU2
        -:        -:  198:#undef ALU3
        -:        -:  199:#undef ROUND
        -:        -:  200:
        -:        -:  201:
        -:        -:  202:/* Helpers for SEND instruction:
        -:        -:  203: */
        -:        -:  204:void brw_set_sampler_message(struct brw_codegen *p,
        -:        -:  205:                             brw_inst *insn,
        -:        -:  206:                             unsigned binding_table_index,
        -:        -:  207:                             unsigned sampler,
        -:        -:  208:                             unsigned msg_type,
        -:        -:  209:                             unsigned response_length,
        -:        -:  210:                             unsigned msg_length,
        -:        -:  211:                             unsigned header_present,
        -:        -:  212:                             unsigned simd_mode,
        -:        -:  213:                             unsigned return_format);
        -:        -:  214:
        -:        -:  215:void brw_set_message_descriptor(struct brw_codegen *p,
        -:        -:  216:                                brw_inst *inst,
        -:        -:  217:                                enum brw_message_target sfid,
        -:        -:  218:                                unsigned msg_length,
        -:        -:  219:                                unsigned response_length,
        -:        -:  220:                                bool header_present,
        -:        -:  221:                                bool end_of_thread);
        -:        -:  222:
        -:        -:  223:void brw_set_dp_read_message(struct brw_codegen *p,
        -:        -:  224:			     brw_inst *insn,
        -:        -:  225:			     unsigned binding_table_index,
        -:        -:  226:			     unsigned msg_control,
        -:        -:  227:			     unsigned msg_type,
        -:        -:  228:			     unsigned target_cache,
        -:        -:  229:			     unsigned msg_length,
        -:        -:  230:                             bool header_present,
        -:        -:  231:			     unsigned response_length);
        -:        -:  232:
        -:        -:  233:void brw_set_dp_write_message(struct brw_codegen *p,
        -:        -:  234:			      brw_inst *insn,
        -:        -:  235:			      unsigned binding_table_index,
        -:        -:  236:			      unsigned msg_control,
        -:        -:  237:			      unsigned msg_type,
        -:        -:  238:                              unsigned target_cache,
        -:        -:  239:			      unsigned msg_length,
        -:        -:  240:			      bool header_present,
        -:        -:  241:			      unsigned last_render_target,
        -:        -:  242:			      unsigned response_length,
        -:        -:  243:			      unsigned end_of_thread,
        -:        -:  244:			      unsigned send_commit_msg);
        -:        -:  245:
        -:        -:  246:void brw_urb_WRITE(struct brw_codegen *p,
        -:        -:  247:		   struct brw_reg dest,
        -:        -:  248:		   unsigned msg_reg_nr,
        -:        -:  249:		   struct brw_reg src0,
        -:        -:  250:                   enum brw_urb_write_flags flags,
        -:        -:  251:		   unsigned msg_length,
        -:        -:  252:		   unsigned response_length,
        -:        -:  253:		   unsigned offset,
        -:        -:  254:		   unsigned swizzle);
        -:        -:  255:
        -:        -:  256:/**
        -:        -:  257: * Send message to shared unit \p sfid with a possibly indirect descriptor \p
        -:        -:  258: * desc.  If \p desc is not an immediate it will be transparently loaded to an
        -:        -:  259: * address register using an OR instruction.  The returned instruction can be
        -:        -:  260: * passed as argument to the usual brw_set_*_message() functions in order to
        -:        -:  261: * specify any additional descriptor bits -- If \p desc is an immediate this
        -:        -:  262: * will be the SEND instruction itself, otherwise it will be the OR
        -:        -:  263: * instruction.
        -:        -:  264: */
        -:        -:  265:struct brw_inst *
        -:        -:  266:brw_send_indirect_message(struct brw_codegen *p,
        -:        -:  267:                          unsigned sfid,
        -:        -:  268:                          struct brw_reg dst,
        -:        -:  269:                          struct brw_reg payload,
        -:        -:  270:                          struct brw_reg desc);
        -:        -:  271:
        -:        -:  272:void brw_ff_sync(struct brw_codegen *p,
        -:        -:  273:		   struct brw_reg dest,
        -:        -:  274:		   unsigned msg_reg_nr,
        -:        -:  275:		   struct brw_reg src0,
        -:        -:  276:		   bool allocate,
        -:        -:  277:		   unsigned response_length,
        -:        -:  278:		   bool eot);
        -:        -:  279:
        -:        -:  280:void brw_svb_write(struct brw_codegen *p,
        -:        -:  281:                   struct brw_reg dest,
        -:        -:  282:                   unsigned msg_reg_nr,
        -:        -:  283:                   struct brw_reg src0,
        -:        -:  284:                   unsigned binding_table_index,
        -:        -:  285:                   bool   send_commit_msg);
        -:        -:  286:
        -:        -:  287:void brw_fb_WRITE(struct brw_codegen *p,
        -:        -:  288:		   struct brw_reg payload,
        -:        -:  289:		   struct brw_reg implied_header,
        -:        -:  290:		   unsigned msg_control,
        -:        -:  291:		   unsigned binding_table_index,
        -:        -:  292:		   unsigned msg_length,
        -:        -:  293:		   unsigned response_length,
        -:        -:  294:		   bool eot,
        -:        -:  295:		   bool last_render_target,
        -:        -:  296:		   bool header_present);
        -:        -:  297:
        -:        -:  298:brw_inst *gen9_fb_READ(struct brw_codegen *p,
        -:        -:  299:                       struct brw_reg dst,
        -:        -:  300:                       struct brw_reg payload,
        -:        -:  301:                       unsigned binding_table_index,
        -:        -:  302:                       unsigned msg_length,
        -:        -:  303:                       unsigned response_length,
        -:        -:  304:                       bool per_sample);
        -:        -:  305:
        -:        -:  306:void brw_SAMPLE(struct brw_codegen *p,
        -:        -:  307:		struct brw_reg dest,
        -:        -:  308:		unsigned msg_reg_nr,
        -:        -:  309:		struct brw_reg src0,
        -:        -:  310:		unsigned binding_table_index,
        -:        -:  311:		unsigned sampler,
        -:        -:  312:		unsigned msg_type,
        -:        -:  313:		unsigned response_length,
        -:        -:  314:		unsigned msg_length,
        -:        -:  315:		unsigned header_present,
        -:        -:  316:		unsigned simd_mode,
        -:        -:  317:		unsigned return_format);
        -:        -:  318:
        -:        -:  319:void brw_adjust_sampler_state_pointer(struct brw_codegen *p,
        -:        -:  320:                                      struct brw_reg header,
        -:        -:  321:                                      struct brw_reg sampler_index);
        -:        -:  322:
        -:        -:  323:void gen4_math(struct brw_codegen *p,
        -:        -:  324:	       struct brw_reg dest,
        -:        -:  325:	       unsigned function,
        -:        -:  326:	       unsigned msg_reg_nr,
        -:        -:  327:	       struct brw_reg src,
        -:        -:  328:	       unsigned precision );
        -:        -:  329:
        -:        -:  330:void gen6_math(struct brw_codegen *p,
        -:        -:  331:	       struct brw_reg dest,
        -:        -:  332:	       unsigned function,
        -:        -:  333:	       struct brw_reg src0,
        -:        -:  334:	       struct brw_reg src1);
        -:        -:  335:
        -:        -:  336:void brw_oword_block_read(struct brw_codegen *p,
        -:        -:  337:			  struct brw_reg dest,
        -:        -:  338:			  struct brw_reg mrf,
        -:        -:  339:			  uint32_t offset,
        -:        -:  340:			  uint32_t bind_table_index);
        -:        -:  341:
        -:        -:  342:unsigned brw_scratch_surface_idx(const struct brw_codegen *p);
        -:        -:  343:
        -:        -:  344:void brw_oword_block_read_scratch(struct brw_codegen *p,
        -:        -:  345:				  struct brw_reg dest,
        -:        -:  346:				  struct brw_reg mrf,
        -:        -:  347:				  int num_regs,
        -:        -:  348:				  unsigned offset);
        -:        -:  349:
        -:        -:  350:void brw_oword_block_write_scratch(struct brw_codegen *p,
        -:        -:  351:				   struct brw_reg mrf,
        -:        -:  352:				   int num_regs,
        -:        -:  353:				   unsigned offset);
        -:        -:  354:
        -:        -:  355:void gen7_block_read_scratch(struct brw_codegen *p,
        -:        -:  356:                             struct brw_reg dest,
        -:        -:  357:                             int num_regs,
        -:        -:  358:                             unsigned offset);
        -:        -:  359:
        -:        -:  360:void brw_shader_time_add(struct brw_codegen *p,
        -:        -:  361:                         struct brw_reg payload,
        -:        -:  362:                         uint32_t surf_index);
        -:        -:  363:
        -:        -:  364:/**
        -:        -:  365: * Return the generation-specific jump distance scaling factor.
        -:        -:  366: *
        -:        -:  367: * Given the number of instructions to jump, we need to scale by
        -:        -:  368: * some number to obtain the actual jump distance to program in an
        -:        -:  369: * instruction.
        -:        -:  370: */
        -:        -:  371:static inline unsigned
        -:        -:  372:brw_jump_scale(const struct gen_device_info *devinfo)
        -:        -:  373:{
        -:        -:  374:   /* Broadwell measures jump targets in bytes. */
        -:        -:  375:   if (devinfo->gen >= 8)
        -:        -:  376:      return 16;
        -:        -:  377:
        -:        -:  378:   /* Ironlake and later measure jump targets in 64-bit data chunks (in order
        -:        -:  379:    * (to support compaction), so each 128-bit instruction requires 2 chunks.
        -:        -:  380:    */
        -:        -:  381:   if (devinfo->gen >= 5)
        -:        -:  382:      return 2;
        -:        -:  383:
        -:        -:  384:   /* Gen4 simply uses the number of 128-bit instructions. */
        -:        -:  385:   return 1;
        -:        -:  386:}
        -:        -:  387:
        -:        -:  388:void brw_barrier(struct brw_codegen *p, struct brw_reg src);
        -:        -:  389:
        -:        -:  390:/* If/else/endif.  Works by manipulating the execution flags on each
        -:        -:  391: * channel.
        -:        -:  392: */
        -:        -:  393:brw_inst *brw_IF(struct brw_codegen *p, unsigned execute_size);
        -:        -:  394:brw_inst *gen6_IF(struct brw_codegen *p, enum brw_conditional_mod conditional,
        -:        -:  395:                  struct brw_reg src0, struct brw_reg src1);
        -:        -:  396:
        -:        -:  397:void brw_ELSE(struct brw_codegen *p);
        -:        -:  398:void brw_ENDIF(struct brw_codegen *p);
        -:        -:  399:
        -:        -:  400:/* DO/WHILE loops:
        -:        -:  401: */
        -:        -:  402:brw_inst *brw_DO(struct brw_codegen *p, unsigned execute_size);
        -:        -:  403:
        -:        -:  404:brw_inst *brw_WHILE(struct brw_codegen *p);
        -:        -:  405:
        -:        -:  406:brw_inst *brw_BREAK(struct brw_codegen *p);
        -:        -:  407:brw_inst *brw_CONT(struct brw_codegen *p);
        -:        -:  408:brw_inst *gen6_HALT(struct brw_codegen *p);
        -:        -:  409:
        -:        -:  410:/* Forward jumps:
        -:        -:  411: */
        -:        -:  412:void brw_land_fwd_jump(struct brw_codegen *p, int jmp_insn_idx);
        -:        -:  413:
        -:        -:  414:brw_inst *brw_JMPI(struct brw_codegen *p, struct brw_reg index,
        -:        -:  415:                   unsigned predicate_control);
        -:        -:  416:
        -:        -:  417:void brw_NOP(struct brw_codegen *p);
        -:        -:  418:
        -:        -:  419:void brw_WAIT(struct brw_codegen *p);
        -:        -:  420:
        -:        -:  421:/* Special case: there is never a destination, execution size will be
        -:        -:  422: * taken from src0:
        -:        -:  423: */
        -:        -:  424:void brw_CMP(struct brw_codegen *p,
        -:        -:  425:	     struct brw_reg dest,
        -:        -:  426:	     unsigned conditional,
        -:        -:  427:	     struct brw_reg src0,
        -:        -:  428:	     struct brw_reg src1);
        -:        -:  429:
        -:        -:  430:void
        -:        -:  431:brw_untyped_atomic(struct brw_codegen *p,
        -:        -:  432:                   struct brw_reg dst,
        -:        -:  433:                   struct brw_reg payload,
        -:        -:  434:                   struct brw_reg surface,
        -:        -:  435:                   unsigned atomic_op,
        -:        -:  436:                   unsigned msg_length,
        -:        -:  437:                   bool response_expected);
        -:        -:  438:
        -:        -:  439:void
        -:        -:  440:brw_untyped_surface_read(struct brw_codegen *p,
        -:        -:  441:                         struct brw_reg dst,
        -:        -:  442:                         struct brw_reg payload,
        -:        -:  443:                         struct brw_reg surface,
        -:        -:  444:                         unsigned msg_length,
        -:        -:  445:                         unsigned num_channels);
        -:        -:  446:
        -:        -:  447:void
        -:        -:  448:brw_untyped_surface_write(struct brw_codegen *p,
        -:        -:  449:                          struct brw_reg payload,
        -:        -:  450:                          struct brw_reg surface,
        -:        -:  451:                          unsigned msg_length,
        -:        -:  452:                          unsigned num_channels);
        -:        -:  453:
        -:        -:  454:void
        -:        -:  455:brw_typed_atomic(struct brw_codegen *p,
        -:        -:  456:                 struct brw_reg dst,
        -:        -:  457:                 struct brw_reg payload,
        -:        -:  458:                 struct brw_reg surface,
        -:        -:  459:                 unsigned atomic_op,
        -:        -:  460:                 unsigned msg_length,
        -:        -:  461:                 bool response_expected);
        -:        -:  462:
        -:        -:  463:void
        -:        -:  464:brw_typed_surface_read(struct brw_codegen *p,
        -:        -:  465:                       struct brw_reg dst,
        -:        -:  466:                       struct brw_reg payload,
        -:        -:  467:                       struct brw_reg surface,
        -:        -:  468:                       unsigned msg_length,
        -:        -:  469:                       unsigned num_channels);
        -:        -:  470:
        -:        -:  471:void
        -:        -:  472:brw_typed_surface_write(struct brw_codegen *p,
        -:        -:  473:                        struct brw_reg payload,
        -:        -:  474:                        struct brw_reg surface,
        -:        -:  475:                        unsigned msg_length,
        -:        -:  476:                        unsigned num_channels);
        -:        -:  477:
        -:        -:  478:void
        -:        -:  479:brw_memory_fence(struct brw_codegen *p,
        -:        -:  480:                 struct brw_reg dst);
        -:        -:  481:
        -:        -:  482:void
        -:        -:  483:brw_pixel_interpolator_query(struct brw_codegen *p,
        -:        -:  484:                             struct brw_reg dest,
        -:        -:  485:                             struct brw_reg mrf,
        -:        -:  486:                             bool noperspective,
        -:        -:  487:                             unsigned mode,
        -:        -:  488:                             struct brw_reg data,
        -:        -:  489:                             unsigned msg_length,
        -:        -:  490:                             unsigned response_length);
        -:        -:  491:
        -:        -:  492:void
        -:        -:  493:brw_find_live_channel(struct brw_codegen *p,
        -:        -:  494:                      struct brw_reg dst,
        -:        -:  495:                      struct brw_reg mask);
        -:        -:  496:
        -:        -:  497:void
        -:        -:  498:brw_broadcast(struct brw_codegen *p,
        -:        -:  499:              struct brw_reg dst,
        -:        -:  500:              struct brw_reg src,
        -:        -:  501:              struct brw_reg idx);
        -:        -:  502:
        -:        -:  503:/***********************************************************************
        -:        -:  504: * brw_eu_util.c:
        -:        -:  505: */
        -:        -:  506:
        -:        -:  507:void brw_copy_indirect_to_indirect(struct brw_codegen *p,
        -:        -:  508:				   struct brw_indirect dst_ptr,
        -:        -:  509:				   struct brw_indirect src_ptr,
        -:        -:  510:				   unsigned count);
        -:        -:  511:
        -:        -:  512:void brw_copy_from_indirect(struct brw_codegen *p,
        -:        -:  513:			    struct brw_reg dst,
        -:        -:  514:			    struct brw_indirect ptr,
        -:        -:  515:			    unsigned count);
        -:        -:  516:
        -:        -:  517:void brw_copy4(struct brw_codegen *p,
        -:        -:  518:	       struct brw_reg dst,
        -:        -:  519:	       struct brw_reg src,
        -:        -:  520:	       unsigned count);
        -:        -:  521:
        -:        -:  522:void brw_copy8(struct brw_codegen *p,
        -:        -:  523:	       struct brw_reg dst,
        -:        -:  524:	       struct brw_reg src,
        -:        -:  525:	       unsigned count);
        -:        -:  526:
        -:        -:  527:void brw_math_invert( struct brw_codegen *p,
        -:        -:  528:		      struct brw_reg dst,
        -:        -:  529:		      struct brw_reg src);
        -:        -:  530:
        -:        -:  531:void brw_set_src1(struct brw_codegen *p, brw_inst *insn, struct brw_reg reg);
        -:        -:  532:
        -:        -:  533:void brw_set_uip_jip(struct brw_codegen *p, int start_offset);
        -:        -:  534:
        -:        -:  535:enum brw_conditional_mod brw_negate_cmod(uint32_t cmod);
        -:        -:  536:enum brw_conditional_mod brw_swap_cmod(uint32_t cmod);
        -:        -:  537:
        -:        -:  538:/* brw_eu_compact.c */
        -:        -:  539:void brw_init_compaction_tables(const struct gen_device_info *devinfo);
        -:        -:  540:void brw_compact_instructions(struct brw_codegen *p, int start_offset,
        -:        -:  541:                              int num_annotations, struct annotation *annotation);
        -:        -:  542:void brw_uncompact_instruction(const struct gen_device_info *devinfo,
        -:        -:  543:                               brw_inst *dst, brw_compact_inst *src);
        -:        -:  544:bool brw_try_compact_instruction(const struct gen_device_info *devinfo,
        -:        -:  545:                                 brw_compact_inst *dst, brw_inst *src);
        -:        -:  546:
        -:        -:  547:void brw_debug_compact_uncompact(const struct gen_device_info *devinfo,
        -:        -:  548:                                 brw_inst *orig, brw_inst *uncompacted);
        -:        -:  549:
        -:        -:  550:/* brw_eu_validate.c */
        -:        -:  551:bool brw_validate_instructions(const struct brw_codegen *p, int start_offset,
        -:        -:  552:                               struct annotation_info *annotation);
        -:        -:  553:
        -:        -:  554:static inline int
        -:        -:  555:next_offset(const struct gen_device_info *devinfo, void *store, int offset)
        -:        -:  556:{
        -:        -:  557:   brw_inst *insn = (brw_inst *)((char *)store + offset);
        -:        -:  558:
        -:        -:  559:   if (brw_inst_cmpt_control(devinfo, insn))
        -:        -:  560:      return offset + 8;
        -:        -:  561:   else
        -:        -:  562:      return offset + 16;
        -:        -:  563:}
        -:        -:  564:
        -:        -:  565:struct opcode_desc {
        -:        -:  566:   /* The union is an implementation detail used by brw_opcode_desc() to handle
        -:        -:  567:    * opcodes that have been reused for different instructions across hardware
        -:        -:  568:    * generations.
        -:        -:  569:    *
        -:        -:  570:    * The gens field acts as a tag. If it is non-zero, name points to a string
        -:        -:  571:    * containing the instruction mnemonic. If it is zero, the table field is
        -:        -:  572:    * valid and either points to a secondary opcode_desc table with 'size'
        -:        -:  573:    * elements or is NULL and no such instruction exists for the opcode.
        -:        -:  574:    */
        -:        -:  575:   union {
        -:        -:  576:      struct {
        -:        -:  577:         char    *name;
        -:        -:  578:         int      nsrc;
        -:        -:  579:      };
        -:        -:  580:      struct {
        -:        -:  581:         const struct opcode_desc *table;
        -:        -:  582:         unsigned size;
        -:        -:  583:      };
        -:        -:  584:   };
        -:        -:  585:   int      ndst;
        -:        -:  586:   int      gens;
        -:        -:  587:};
        -:        -:  588:
        -:        -:  589:const struct opcode_desc *
        -:        -:  590:brw_opcode_desc(const struct gen_device_info *devinfo, enum opcode opcode);
        -:        -:  591:
        -:        -:  592:static inline bool
      402:      426:  593:is_3src(const struct gen_device_info *devinfo, enum opcode opcode)
        -:        -:  594:{
      402:      426:  595:   const struct opcode_desc *desc = brw_opcode_desc(devinfo, opcode);
      402:      426:  596:   return desc && desc->nsrc == 3;
        -:        -:  597:}
        -:        -:  598:
        -:        -:  599:/** Maximum SEND message length */
        -:        -:  600:#define BRW_MAX_MSG_LENGTH 15
        -:        -:  601:
        -:        -:  602:/** First MRF register used by pull loads */
        -:        -:  603:#define FIRST_SPILL_MRF(gen) ((gen) == 6 ? 21 : 13)
        -:        -:  604:
        -:        -:  605:/** First MRF register used by spills */
        -:        -:  606:#define FIRST_PULL_LOAD_MRF(gen) ((gen) == 6 ? 16 : 13)
        -:        -:  607:
        -:        -:  608:#ifdef __cplusplus
        -:        -:  609:}
        -:        -:  610:#endif
        -:        -:  611:
        -:        -:  612:#endif

src/intel/brw_eu_validate.c.gcov

        -:        -:    0:Source:compiler/brw_eu_validate.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_eu_validate.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_eu_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_eu_validate.c
        -:        -:   25: *
        -:        -:   26: * This file implements a pass that validates shader assembly.
        -:        -:   27: */
        -:        -:   28:
        -:        -:   29:#include "brw_eu.h"
        -:        -:   30:
        -:        -:   31:/* We're going to do lots of string concatenation, so this should help. */
        -:        -:   32:struct string {
        -:        -:   33:   char *str;
        -:        -:   34:   size_t len;
        -:        -:   35:};
        -:        -:   36:
        -:        -:   37:static void
    #####:    #####:   38:cat(struct string *dest, const struct string src)
        -:        -:   39:{
    #####:    #####:   40:   dest->str = realloc(dest->str, dest->len + src.len + 1);
    #####:    #####:   41:   memcpy(dest->str + dest->len, src.str, src.len);
    #####:    #####:   42:   dest->str[dest->len + src.len] = '\0';
    #####:    #####:   43:   dest->len = dest->len + src.len;
    #####:    #####:   44:}
        -:        -:   45:#define CAT(dest, src) cat(&dest, (struct string){src, strlen(src)})
        -:        -:   46:
        -:        -:   47:#define error(str)   "\tERROR: " str "\n"
        -:        -:   48:#define ERROR_INDENT "\t       "
        -:        -:   49:
        -:        -:   50:#define ERROR(msg) ERROR_IF(true, msg)
        -:        -:   51:#define ERROR_IF(cond, msg)          \
        -:        -:   52:   do {                              \
        -:        -:   53:      if (cond) {                    \
        -:        -:   54:         CAT(error_msg, error(msg)); \
        -:        -:   55:      }                              \
        -:        -:   56:   } while(0)
        -:        -:   57:
        -:        -:   58:#define CHECK(func, args...)                             \
        -:        -:   59:   do {                                                  \
        -:        -:   60:      struct string __msg = func(devinfo, inst, ##args); \
        -:        -:   61:      if (__msg.str) {                                   \
        -:        -:   62:         cat(&error_msg, __msg);                         \
        -:        -:   63:         free(__msg.str);                                \
        -:        -:   64:      }                                                  \
        -:        -:   65:   } while (0)
        -:        -:   66:
        -:        -:   67:static bool
      514:      538:   68:inst_is_send(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:   69:{
      514:      538:   70:   switch (brw_inst_opcode(devinfo, inst)) {
        -:        -:   71:   case BRW_OPCODE_SEND:
        -:        -:   72:   case BRW_OPCODE_SENDC:
        -:        -:   73:   case BRW_OPCODE_SENDS:
        -:        -:   74:   case BRW_OPCODE_SENDSC:
       12:       12:   75:      return true;
        -:        -:   76:   default:
      502:      526:   77:      return false;
        -:        -:   78:   }
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:static unsigned
    #####:    #####:   82:signed_type(unsigned type)
        -:        -:   83:{
    #####:    #####:   84:   switch (type) {
    #####:    #####:   85:   case BRW_HW_REG_TYPE_UD:         return BRW_HW_REG_TYPE_D;
    #####:    #####:   86:   case BRW_HW_REG_TYPE_UW:         return BRW_HW_REG_TYPE_W;
    #####:    #####:   87:   case BRW_HW_REG_NON_IMM_TYPE_UB: return BRW_HW_REG_NON_IMM_TYPE_B;
    #####:    #####:   88:   case GEN8_HW_REG_TYPE_UQ:        return GEN8_HW_REG_TYPE_Q;
    #####:    #####:   89:   default:                         return type;
        -:        -:   90:   }
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:static bool
    #####:    #####:   94:inst_is_raw_move(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:   95:{
    #####:    #####:   96:   unsigned dst_type = signed_type(brw_inst_dst_reg_type(devinfo, inst));
    #####:    #####:   97:   unsigned src_type = signed_type(brw_inst_src0_reg_type(devinfo, inst));
        -:        -:   98:
    #####:    #####:   99:   if (brw_inst_src0_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE &&
    #####:    #####:  100:       (brw_inst_src0_negate(devinfo, inst) ||
    #####:    #####:  101:        brw_inst_src0_abs(devinfo, inst)))
    #####:    #####:  102:      return false;
        -:        -:  103:
    #####:    #####:  104:   return brw_inst_opcode(devinfo, inst) == BRW_OPCODE_MOV &&
    #####:    #####:  105:          brw_inst_saturate(devinfo, inst) == 0 &&
        -:        -:  106:          dst_type == src_type;
        -:        -:  107:}
        -:        -:  108:
        -:        -:  109:static bool
      274:      290:  110:dst_is_null(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  111:{
      325:      357:  112:   return brw_inst_dst_reg_file(devinfo, inst) == BRW_ARCHITECTURE_REGISTER_FILE &&
       51:       67:  113:          brw_inst_dst_da_reg_nr(devinfo, inst) == BRW_ARF_NULL;
        -:        -:  114:}
        -:        -:  115:
        -:        -:  116:static bool
      146:      154:  117:src0_is_null(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  118:{
      146:      154:  119:   return brw_inst_src0_reg_file(devinfo, inst) == BRW_ARCHITECTURE_REGISTER_FILE &&
    #####:    #####:  120:          brw_inst_src0_da_reg_nr(devinfo, inst) == BRW_ARF_NULL;
        -:        -:  121:}
        -:        -:  122:
        -:        -:  123:static bool
       73:       77:  124:src1_is_null(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  125:{
       73:       77:  126:   return brw_inst_src1_reg_file(devinfo, inst) == BRW_ARCHITECTURE_REGISTER_FILE &&
    #####:    #####:  127:          brw_inst_src1_da_reg_nr(devinfo, inst) == BRW_ARF_NULL;
        -:        -:  128:}
        -:        -:  129:
        -:        -:  130:static bool
    #####:    #####:  131:src0_is_grf(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  132:{
    #####:    #####:  133:   return brw_inst_src0_reg_file(devinfo, inst) == BRW_GENERAL_REGISTER_FILE;
        -:        -:  134:}
        -:        -:  135:
        -:        -:  136:static bool
       12:       12:  137:src0_has_scalar_region(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  138:{
       34:       34:  139:   return brw_inst_src0_vstride(devinfo, inst) == BRW_VERTICAL_STRIDE_0 &&
       22:       22:  140:          brw_inst_src0_width(devinfo, inst) == BRW_WIDTH_1 &&
       10:       10:  141:          brw_inst_src0_hstride(devinfo, inst) == BRW_HORIZONTAL_STRIDE_0;
        -:        -:  142:}
        -:        -:  143:
        -:        -:  144:static bool
        2:        2:  145:src1_has_scalar_region(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  146:{
        6:        6:  147:   return brw_inst_src1_vstride(devinfo, inst) == BRW_VERTICAL_STRIDE_0 &&
        4:        4:  148:          brw_inst_src1_width(devinfo, inst) == BRW_WIDTH_1 &&
        2:        2:  149:          brw_inst_src1_hstride(devinfo, inst) == BRW_HORIZONTAL_STRIDE_0;
        -:        -:  150:}
        -:        -:  151:
        -:        -:  152:static unsigned
      987:     1027:  153:num_sources_from_inst(const struct gen_device_info *devinfo,
        -:        -:  154:                      const brw_inst *inst)
        -:        -:  155:{
      987:     1027:  156:   const struct opcode_desc *desc =
      987:     1027:  157:      brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst));
        -:        -:  158:   unsigned math_function;
        -:        -:  159:
      987:     1027:  160:   if (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_MATH) {
       60:       60:  161:      math_function = brw_inst_math_function(devinfo, inst);
      927:      967:  162:   } else if (devinfo->gen < 6 &&
    #####:    #####:  163:              brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND) {
    #####:    #####:  164:      if (brw_inst_sfid(devinfo, inst) == BRW_SFID_MATH) {
        -:        -:  165:         /* src1 must be a descriptor (including the information to determine
        -:        -:  166:          * that the SEND is doing an extended math operation), but src0 can
        -:        -:  167:          * actually be null since it serves as the source of the implicit GRF
        -:        -:  168:          * to MRF move.
        -:        -:  169:          *
        -:        -:  170:          * If we stop using that functionality, we'll have to revisit this.
        -:        -:  171:          */
    #####:    #####:  172:         return 2;
        -:        -:  173:      } else {
        -:        -:  174:         /* Send instructions are allowed to have null sources since they use
        -:        -:  175:          * the base_mrf field to specify which message register source.
        -:        -:  176:          */
    #####:    #####:  177:         return 0;
        -:        -:  178:      }
        -:        -:  179:   } else {
      927:      967:  180:      assert(desc->nsrc < 4);
      927:      967:  181:      return desc->nsrc;
        -:        -:  182:   }
        -:        -:  183:
       60:       60:  184:   switch (math_function) {
        -:        -:  185:   case BRW_MATH_FUNCTION_INV:
        -:        -:  186:   case BRW_MATH_FUNCTION_LOG:
        -:        -:  187:   case BRW_MATH_FUNCTION_EXP:
        -:        -:  188:   case BRW_MATH_FUNCTION_SQRT:
        -:        -:  189:   case BRW_MATH_FUNCTION_RSQ:
        -:        -:  190:   case BRW_MATH_FUNCTION_SIN:
        -:        -:  191:   case BRW_MATH_FUNCTION_COS:
        -:        -:  192:   case BRW_MATH_FUNCTION_SINCOS:
        -:        -:  193:   case GEN8_MATH_FUNCTION_INVM:
        -:        -:  194:   case GEN8_MATH_FUNCTION_RSQRTM:
       60:       60:  195:      return 1;
        -:        -:  196:   case BRW_MATH_FUNCTION_FDIV:
        -:        -:  197:   case BRW_MATH_FUNCTION_POW:
        -:        -:  198:   case BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER:
        -:        -:  199:   case BRW_MATH_FUNCTION_INT_DIV_QUOTIENT:
        -:        -:  200:   case BRW_MATH_FUNCTION_INT_DIV_REMAINDER:
    #####:    #####:  201:      return 2;
        -:        -:  202:   default:
    #####:    #####:  203:      unreachable("not reached");
        -:        -:  204:   }
        -:        -:  205:}
        -:        -:  206:
        -:        -:  207:static struct string
      212:      220:  208:sources_not_null(const struct gen_device_info *devinfo,
        -:        -:  209:                 const brw_inst *inst)
        -:        -:  210:{
      212:      220:  211:   unsigned num_sources = num_sources_from_inst(devinfo, inst);
      212:      220:  212:   struct string error_msg = { .str = NULL, .len = 0 };
        -:        -:  213:
        -:        -:  214:   /* Nothing to test. 3-src instructions can only have GRF sources, and
        -:        -:  215:    * there's no bit to control the file.
        -:        -:  216:    */
      212:      220:  217:   if (num_sources == 3)
       18:       18:  218:      return (struct string){};
        -:        -:  219:
      194:      202:  220:   if (num_sources >= 1)
      146:      154:  221:      ERROR_IF(src0_is_null(devinfo, inst), "src0 is null");
        -:        -:  222:
      194:      202:  223:   if (num_sources == 2)
       73:       77:  224:      ERROR_IF(src1_is_null(devinfo, inst), "src1 is null");
        -:        -:  225:
      194:      202:  226:   return error_msg;
        -:        -:  227:}
        -:        -:  228:
        -:        -:  229:static struct string
      212:      220:  230:send_restrictions(const struct gen_device_info *devinfo,
        -:        -:  231:                  const brw_inst *inst)
        -:        -:  232:{
      212:      220:  233:   struct string error_msg = { .str = NULL, .len = 0 };
        -:        -:  234:
      212:      220:  235:   if (brw_inst_opcode(devinfo, inst) == BRW_OPCODE_SEND) {
        2:        2:  236:      ERROR_IF(brw_inst_src0_address_mode(devinfo, inst) != BRW_ADDRESS_DIRECT,
        -:        -:  237:               "send must use direct addressing");
        -:        -:  238:
        2:        2:  239:      if (devinfo->gen >= 7) {
    #####:    #####:  240:         ERROR_IF(!src0_is_grf(devinfo, inst), "send from non-GRF");
    #####:    #####:  241:         ERROR_IF(brw_inst_eot(devinfo, inst) &&
        -:        -:  242:                  brw_inst_src0_da_reg_nr(devinfo, inst) < 112,
        -:        -:  243:                  "send with EOT must use g112-g127");
        -:        -:  244:      }
        -:        -:  245:   }
        -:        -:  246:
      212:      220:  247:   return error_msg;
        -:        -:  248:}
        -:        -:  249:
        -:        -:  250:static bool
      212:      220:  251:is_unsupported_inst(const struct gen_device_info *devinfo,
        -:        -:  252:                    const brw_inst *inst)
        -:        -:  253:{
      212:      220:  254:   return brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst)) == NULL;
        -:        -:  255:}
        -:        -:  256:
        -:        -:  257:static unsigned
      212:      224:  258:execution_type_for_type(unsigned type, bool is_immediate)
        -:        -:  259:{
        -:        -:  260:   /* The meaning of the type bits is dependent on whether the operand is an
        -:        -:  261:    * immediate, so normalize them first.
        -:        -:  262:    */
      212:      224:  263:   if (is_immediate) {
       34:       42:  264:      switch (type) {
        -:        -:  265:      case BRW_HW_REG_IMM_TYPE_UV:
        -:        -:  266:      case BRW_HW_REG_IMM_TYPE_V:
        3:        3:  267:         type = BRW_HW_REG_TYPE_W;
        3:        3:  268:         break;
        -:        -:  269:      case BRW_HW_REG_IMM_TYPE_VF:
        1:        1:  270:         type = BRW_HW_REG_TYPE_F;
        1:        1:  271:         break;
        -:        -:  272:      case GEN8_HW_REG_IMM_TYPE_DF:
    #####:    #####:  273:         type = GEN7_HW_REG_NON_IMM_TYPE_DF;
    #####:    #####:  274:         break;
        -:        -:  275:      case GEN8_HW_REG_IMM_TYPE_HF:
    #####:    #####:  276:         type = GEN8_HW_REG_NON_IMM_TYPE_HF;
    #####:    #####:  277:         break;
        -:        -:  278:      default:
       30:       38:  279:         break;
        -:        -:  280:      }
        -:        -:  281:   }
        -:        -:  282:
      212:      224:  283:   switch (type) {
        -:        -:  284:   case BRW_HW_REG_TYPE_UD:
        -:        -:  285:   case BRW_HW_REG_TYPE_D:
       59:       63:  286:      return BRW_HW_REG_TYPE_D;
        -:        -:  287:   case BRW_HW_REG_TYPE_UW:
        -:        -:  288:   case BRW_HW_REG_TYPE_W:
        -:        -:  289:   case BRW_HW_REG_NON_IMM_TYPE_UB:
        -:        -:  290:   case BRW_HW_REG_NON_IMM_TYPE_B:
       10:       10:  291:      return BRW_HW_REG_TYPE_W;
        -:        -:  292:   case GEN8_HW_REG_TYPE_UQ:
        -:        -:  293:   case GEN8_HW_REG_TYPE_Q:
    #####:    #####:  294:      return GEN8_HW_REG_TYPE_Q;
        -:        -:  295:   case BRW_HW_REG_TYPE_F:
        -:        -:  296:   case GEN7_HW_REG_NON_IMM_TYPE_DF:
        -:        -:  297:   case GEN8_HW_REG_NON_IMM_TYPE_HF:
      143:      151:  298:      return type;
        -:        -:  299:   default:
    #####:    #####:  300:      unreachable("not reached");
        -:        -:  301:   }
        -:        -:  302:}
        -:        -:  303:
        -:        -:  304:/**
        -:        -:  305: * Returns the execution type of an instruction \p inst
        -:        -:  306: */
        -:        -:  307:static unsigned
      139:      147:  308:execution_type(const struct gen_device_info *devinfo, const brw_inst *inst)
        -:        -:  309:{
      139:      147:  310:   unsigned num_sources = num_sources_from_inst(devinfo, inst);
        -:        -:  311:   unsigned src0_exec_type, src1_exec_type;
      139:      147:  312:   unsigned src0_type = brw_inst_src0_reg_type(devinfo, inst);
      139:      147:  313:   unsigned src1_type = brw_inst_src1_reg_type(devinfo, inst);
        -:        -:  314:
      139:      147:  315:   bool src0_is_immediate =
      139:      147:  316:      brw_inst_src0_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE;
      139:      147:  317:   bool src1_is_immediate =
      139:      147:  318:      brw_inst_src1_reg_file(devinfo, inst) == BRW_IMMEDIATE_VALUE;
        -:        -:  319:
        -:        -:  320:   /* Execution data type is independent of destination data type, except in
        -:        -:  321:    * mixed F/HF instructions on CHV and SKL+.
        -:        -:  322:    */
      139:      147:  323:   unsigned dst_exec_type = brw_inst_dst_reg_type(devinfo, inst);
        -:        -:  324:
      139:      147:  325:   src0_exec_type = execution_type_for_type(src0_type, src0_is_immediate);
      139:      147:  326:   if (num_sources == 1) {
       66:       70:  327:      if ((devinfo->gen >= 9 || devinfo->is_cherryview) &&
        -:        -:  328:          src0_exec_type == GEN8_HW_REG_NON_IMM_TYPE_HF) {
    #####:    #####:  329:         return dst_exec_type;
        -:        -:  330:      }
       66:       70:  331:      return src0_exec_type;
        -:        -:  332:   }
        -:        -:  333:
       73:       77:  334:   src1_exec_type = execution_type_for_type(src1_type, src1_is_immediate);
       73:       77:  335:   if (src0_exec_type == src1_exec_type)
       73:       77:  336:      return src0_exec_type;
        -:        -:  337:
        -:        -:  338:   /* Mixed operand types where one is float is float on Gen < 6
        -:        -:  339:    * (and not allowed on later platforms)
        -:        -:  340:    */
    #####:    #####:  341:   if (devinfo->gen < 6 &&
    #####:    #####:  342:       (src0_exec_type == BRW_HW_REG_TYPE_F ||
        -:        -:  343:        src1_exec_type == BRW_HW_REG_TYPE_F))
    #####:    #####:  344:      return BRW_HW_REG_TYPE_F;
        -:        -:  345:
    #####:    #####:  346:   if (src0_exec_type == GEN8_HW_REG_TYPE_Q ||
        -:        -:  347:       src1_exec_type == GEN8_HW_REG_TYPE_Q)
    #####:    #####:  348:      return GEN8_HW_REG_TYPE_Q;
        -:        -:  349:
    #####:    #####:  350:   if (src0_exec_type == BRW_HW_REG_TYPE_D ||
        -:        -:  351:       src1_exec_type == BRW_HW_REG_TYPE_D)
    #####:    #####:  352:      return BRW_HW_REG_TYPE_D;
        -:        -:  353:
    #####:    #####:  354:   if (src0_exec_type == BRW_HW_REG_TYPE_W ||
        -:        -:  355:       src1_exec_type == BRW_HW_REG_TYPE_W)
    #####:    #####:  356:      return BRW_HW_REG_TYPE_W;
        -:        -:  357:
    #####:    #####:  358:   if (src0_exec_type == GEN7_HW_REG_NON_IMM_TYPE_DF ||
        -:        -:  359:       src1_exec_type == GEN7_HW_REG_NON_IMM_TYPE_DF)
    #####:    #####:  360:      return GEN7_HW_REG_NON_IMM_TYPE_DF;
        -:        -:  361:
    #####:    #####:  362:   if (devinfo->gen >= 9 || devinfo->is_cherryview) {
    #####:    #####:  363:      if (dst_exec_type == BRW_HW_REG_TYPE_F ||
    #####:    #####:  364:          src0_exec_type == BRW_HW_REG_TYPE_F ||
        -:        -:  365:          src1_exec_type == BRW_HW_REG_TYPE_F) {
    #####:    #####:  366:         return BRW_HW_REG_TYPE_F;
        -:        -:  367:      } else {
    #####:    #####:  368:         return GEN8_HW_REG_NON_IMM_TYPE_HF;
        -:        -:  369:      }
        -:        -:  370:   }
        -:        -:  371:
    #####:    #####:  372:   assert(src0_exec_type == BRW_HW_REG_TYPE_F);
    #####:    #####:  373:   return BRW_HW_REG_TYPE_F;
        -:        -:  374:}
        -:        -:  375:
        -:        -:  376:/**
        -:        -:  377: * Returns whether a region is packed
        -:        -:  378: *
        -:        -:  379: * A region is packed if its elements are adjacent in memory, with no
        -:        -:  380: * intervening space, no overlap, and no replicated values.
        -:        -:  381: */
        -:        -:  382:static bool
      112:      112:  383:is_packed(unsigned vstride, unsigned width, unsigned hstride)
        -:        -:  384:{
      112:      112:  385:   if (vstride == width) {
       90:       90:  386:      if (vstride == 1) {
    #####:    #####:  387:         return hstride == 0;
        -:        -:  388:      } else {
       90:       90:  389:         return hstride == 1;
        -:        -:  390:      }
        -:        -:  391:   }
        -:        -:  392:
       22:       22:  393:   return false;
        -:        -:  394:}
        -:        -:  395:
        -:        -:  396:/**
        -:        -:  397: * Checks restrictions listed in "General Restrictions Based on Operand Types"
        -:        -:  398: * in the "Register Region Restrictions" section.
        -:        -:  399: */
        -:        -:  400:static struct string
      212:      220:  401:general_restrictions_based_on_operand_types(const struct gen_device_info *devinfo,
        -:        -:  402:                                            const brw_inst *inst)
        -:        -:  403:{
      212:      220:  404:   const struct opcode_desc *desc =
      212:      220:  405:      brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst));
      212:      220:  406:   unsigned num_sources = num_sources_from_inst(devinfo, inst);
      212:      220:  407:   unsigned exec_size = 1 << brw_inst_exec_size(devinfo, inst);
      212:      220:  408:   struct string error_msg = { .str = NULL, .len = 0 };
        -:        -:  409:
      212:      220:  410:   if (num_sources == 3)
       18:       18:  411:      return (struct string){};
        -:        -:  412:
      194:      202:  413:   if (inst_is_send(devinfo, inst))
        7:        7:  414:      return (struct string){};
        -:        -:  415:
      187:      195:  416:   if (exec_size == 1)
    #####:    #####:  417:      return (struct string){};
        -:        -:  418:
      187:      195:  419:   if (desc->ndst == 0)
       48:       48:  420:      return (struct string){};
        -:        -:  421:
        -:        -:  422:   /* The PRMs say:
        -:        -:  423:    *
        -:        -:  424:    *    Where n is the largest element size in bytes for any source or
        -:        -:  425:    *    destination operand type, ExecSize * n must be <= 64.
        -:        -:  426:    *
        -:        -:  427:    * But we do not attempt to enforce it, because it is implied by other
        -:        -:  428:    * rules:
        -:        -:  429:    *
        -:        -:  430:    *    - that the destination stride must match the execution data type
        -:        -:  431:    *    - sources may not span more than two adjacent GRF registers
        -:        -:  432:    *    - destination may not span more than two adjacent GRF registers
        -:        -:  433:    *
        -:        -:  434:    * In fact, checking it would weaken testing of the other rules.
        -:        -:  435:    */
        -:        -:  436:
      139:      147:  437:   if (num_sources == 3)
    #####:    #####:  438:      return (struct string){};
        -:        -:  439:
      139:      147:  440:   if (exec_size == 1)
    #####:    #####:  441:      return (struct string){};
        -:        -:  442:
      139:      147:  443:   if (inst_is_send(devinfo, inst))
    #####:    #####:  444:      return (struct string){};
        -:        -:  445:
      139:      147:  446:   if (desc->ndst == 0)
    #####:    #####:  447:      return (struct string){};
        -:        -:  448:
      139:      147:  449:   unsigned dst_stride = 1 << (brw_inst_dst_hstride(devinfo, inst) - 1);
      139:      147:  450:   bool dst_type_is_byte =
      278:      294:  451:      brw_inst_dst_reg_type(devinfo, inst) == BRW_HW_REG_NON_IMM_TYPE_B ||
      139:      147:  452:      brw_inst_dst_reg_type(devinfo, inst) == BRW_HW_REG_NON_IMM_TYPE_UB;
        -:        -:  453:
      139:      147:  454:   if (dst_type_is_byte) {
    #####:    #####:  455:      if (is_packed(exec_size * dst_stride, exec_size, dst_stride)) {
    #####:    #####:  456:         if (!inst_is_raw_move(devinfo, inst)) {
    #####:    #####:  457:            ERROR("Only raw MOV supports a packed-byte destination");
    #####:    #####:  458:            return error_msg;
        -:        -:  459:         } else {
    #####:    #####:  460:            return (struct string){};
        -:        -:  461:         }
        -:        -:  462:      }
        -:        -:  463:   }
        -:        -:  464:
      139:      147:  465:   unsigned exec_type = execution_type(devinfo, inst);
      139:      147:  466:   unsigned exec_type_size =
        -:        -:  467:      brw_hw_reg_type_to_size(devinfo, exec_type, BRW_GENERAL_REGISTER_FILE);
      139:      147:  468:   unsigned dst_type_size = brw_element_size(devinfo, inst, dst);
        -:        -:  469:
        -:        -:  470:   /* On IVB/BYT, region parameters and execution size for DF are in terms of
        -:        -:  471:    * 32-bit elements, so they are doubled. For evaluating the validity of an
        -:        -:  472:    * instruction, we halve them.
        -:        -:  473:    */
      139:      147:  474:   if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####:  475:       exec_type_size == 8 && dst_type_size == 4)
    #####:    #####:  476:      dst_type_size = 8;
        -:        -:  477:
      139:      147:  478:   if (exec_type_size > dst_type_size) {
    #####:    #####:  479:      ERROR_IF(dst_stride * dst_type_size != exec_type_size,
        -:        -:  480:               "Destination stride must be equal to the ratio of the sizes of "
        -:        -:  481:               "the execution data type to the destination type");
        -:        -:  482:
    #####:    #####:  483:      unsigned subreg = brw_inst_dst_da1_subreg_nr(devinfo, inst);
        -:        -:  484:
    #####:    #####:  485:      if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_1 &&
    #####:    #####:  486:          brw_inst_dst_address_mode(devinfo, inst) == BRW_ADDRESS_DIRECT) {
        -:        -:  487:         /* The i965 PRM says:
        -:        -:  488:          *
        -:        -:  489:          *    Implementation Restriction: The relaxed alignment rule for byte
        -:        -:  490:          *    destination (#10.5) is not supported.
        -:        -:  491:          */
    #####:    #####:  492:         if ((devinfo->gen > 4 || devinfo->is_g4x) && dst_type_is_byte) {
    #####:    #####:  493:            ERROR_IF(subreg % exec_type_size != 0 &&
        -:        -:  494:                     subreg % exec_type_size != 1,
        -:        -:  495:                     "Destination subreg must be aligned to the size of the "
        -:        -:  496:                     "execution data type (or to the next lowest byte for byte "
        -:        -:  497:                     "destinations)");
        -:        -:  498:         } else {
    #####:    #####:  499:            ERROR_IF(subreg % exec_type_size != 0,
        -:        -:  500:                     "Destination subreg must be aligned to the size of the "
        -:        -:  501:                     "execution data type");
        -:        -:  502:         }
        -:        -:  503:      }
        -:        -:  504:   }
        -:        -:  505:
      139:      147:  506:   return error_msg;
        -:        -:  507:}
        -:        -:  508:
        -:        -:  509:/**
        -:        -:  510: * Checks restrictions listed in "General Restrictions on Regioning Parameters"
        -:        -:  511: * in the "Register Region Restrictions" section.
        -:        -:  512: */
        -:        -:  513:static struct string
      212:      220:  514:general_restrictions_on_region_parameters(const struct gen_device_info *devinfo,
        -:        -:  515:                                          const brw_inst *inst)
        -:        -:  516:{
      212:      220:  517:   const struct opcode_desc *desc =
      212:      220:  518:      brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst));
      212:      220:  519:   unsigned num_sources = num_sources_from_inst(devinfo, inst);
      212:      220:  520:   unsigned exec_size = 1 << brw_inst_exec_size(devinfo, inst);
      212:      220:  521:   struct string error_msg = { .str = NULL, .len = 0 };
        -:        -:  522:
      212:      220:  523:   if (num_sources == 3)
       18:       18:  524:      return (struct string){};
        -:        -:  525:
      194:      202:  526:   if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_16) {
       13:       13:  527:      if (desc->ndst != 0 && !dst_is_null(devinfo, inst))
       11:       11:  528:         ERROR_IF(brw_inst_dst_hstride(devinfo, inst) != BRW_HORIZONTAL_STRIDE_1,
        -:        -:  529:                  "Destination Horizontal Stride must be 1");
        -:        -:  530:
       13:       13:  531:      if (num_sources >= 1) {
       13:       13:  532:         if (devinfo->is_haswell || devinfo->gen >= 8) {
    #####:    #####:  533:            ERROR_IF(brw_inst_src0_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE &&
        -:        -:  534:                     brw_inst_src0_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_0 &&
        -:        -:  535:                     brw_inst_src0_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_2 &&
        -:        -:  536:                     brw_inst_src0_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_4,
        -:        -:  537:                     "In Align16 mode, only VertStride of 0, 2, or 4 is allowed");
        -:        -:  538:         } else {
       13:       13:  539:            ERROR_IF(brw_inst_src0_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE &&
        -:        -:  540:                     brw_inst_src0_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_0 &&
        -:        -:  541:                     brw_inst_src0_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_4,
        -:        -:  542:                     "In Align16 mode, only VertStride of 0 or 4 is allowed");
        -:        -:  543:         }
        -:        -:  544:      }
        -:        -:  545:
       13:       13:  546:      if (num_sources == 2) {
        4:        4:  547:         if (devinfo->is_haswell || devinfo->gen >= 8) {
    #####:    #####:  548:            ERROR_IF(brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE &&
        -:        -:  549:                     brw_inst_src1_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_0 &&
        -:        -:  550:                     brw_inst_src1_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_2 &&
        -:        -:  551:                     brw_inst_src1_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_4,
        -:        -:  552:                     "In Align16 mode, only VertStride of 0, 2, or 4 is allowed");
        -:        -:  553:         } else {
        4:        4:  554:            ERROR_IF(brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE &&
        -:        -:  555:                     brw_inst_src1_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_0 &&
        -:        -:  556:                     brw_inst_src1_vstride(devinfo, inst) != BRW_VERTICAL_STRIDE_4,
        -:        -:  557:                     "In Align16 mode, only VertStride of 0 or 4 is allowed");
        -:        -:  558:         }
        -:        -:  559:      }
        -:        -:  560:
       13:       13:  561:      return error_msg;
        -:        -:  562:   }
        -:        -:  563:
      383:      403:  564:   for (unsigned i = 0; i < num_sources; i++) {
        -:        -:  565:      unsigned vstride, width, hstride, element_size, subreg;
        -:        -:  566:
        -:        -:  567:#define DO_SRC(n)                                                              \
        -:        -:  568:      if (brw_inst_src ## n ## _reg_file(devinfo, inst) ==                     \
        -:        -:  569:          BRW_IMMEDIATE_VALUE)                                                 \
        -:        -:  570:         continue;                                                             \
        -:        -:  571:                                                                               \
        -:        -:  572:      vstride = brw_inst_src ## n ## _vstride(devinfo, inst) ?                 \
        -:        -:  573:                (1 << (brw_inst_src ## n ## _vstride(devinfo, inst) - 1)) : 0; \
        -:        -:  574:      width = 1 << brw_inst_src ## n ## _width(devinfo, inst);                 \
        -:        -:  575:      hstride = brw_inst_src ## n ## _hstride(devinfo, inst) ?                 \
        -:        -:  576:                (1 << (brw_inst_src ## n ## _hstride(devinfo, inst) - 1)) : 0; \
        -:        -:  577:      element_size = brw_element_size(devinfo, inst, src ## n);                \
        -:        -:  578:      subreg = brw_inst_src ## n ## _da1_subreg_nr(devinfo, inst)
        -:        -:  579:
      202:      214:  580:      if (i == 0) {
      133:      141:  581:         DO_SRC(0);
       69:       73:  582:      } else if (i == 1) {
       69:       73:  583:         DO_SRC(1);
        -:        -:  584:      }
        -:        -:  585:#undef DO_SRC
        -:        -:  586:
        -:        -:  587:      /* On IVB/BYT, region parameters and execution size for DF are in terms of
        -:        -:  588:       * 32-bit elements, so they are doubled. For evaluating the validity of an
        -:        -:  589:       * instruction, we halve them.
        -:        -:  590:       */
      171:      175:  591:      if (devinfo->gen == 7 && !devinfo->is_haswell &&
        -:        -:  592:          element_size == 8)
    #####:    #####:  593:         element_size = 4;
        -:        -:  594:
        -:        -:  595:      /* ExecSize must be greater than or equal to Width. */
      171:      175:  596:      ERROR_IF(exec_size < width, "ExecSize must be greater than or equal "
        -:        -:  597:                                  "to Width");
        -:        -:  598:
        -:        -:  599:      /* If ExecSize = Width and HorzStride ≠ 0,
        -:        -:  600:       * VertStride must be set to Width * HorzStride.
        -:        -:  601:       */
      171:      175:  602:      if (exec_size == width && hstride != 0) {
       70:       72:  603:         ERROR_IF(vstride != width * hstride,
        -:        -:  604:                  "If ExecSize = Width and HorzStride ≠ 0, "
        -:        -:  605:                  "VertStride must be set to Width * HorzStride");
        -:        -:  606:      }
        -:        -:  607:
        -:        -:  608:      /* If Width = 1, HorzStride must be 0 regardless of the values of
        -:        -:  609:       * ExecSize and VertStride.
        -:        -:  610:       */
      171:      175:  611:      if (width == 1) {
       34:       34:  612:         ERROR_IF(hstride != 0,
        -:        -:  613:                  "If Width = 1, HorzStride must be 0 regardless "
        -:        -:  614:                  "of the values of ExecSize and VertStride");
        -:        -:  615:      }
        -:        -:  616:
        -:        -:  617:      /* If ExecSize = Width = 1, both VertStride and HorzStride must be 0. */
      171:      175:  618:      if (exec_size == 1 && width == 1) {
    #####:    #####:  619:         ERROR_IF(vstride != 0 || hstride != 0,
        -:        -:  620:                  "If ExecSize = Width = 1, both VertStride "
        -:        -:  621:                  "and HorzStride must be 0");
        -:        -:  622:      }
        -:        -:  623:
        -:        -:  624:      /* If VertStride = HorzStride = 0, Width must be 1 regardless of the
        -:        -:  625:       * value of ExecSize.
        -:        -:  626:       */
      171:      175:  627:      if (vstride == 0 && hstride == 0) {
       34:       34:  628:         ERROR_IF(width != 1,
        -:        -:  629:                  "If VertStride = HorzStride = 0, Width must be "
        -:        -:  630:                  "1 regardless of the value of ExecSize");
        -:        -:  631:      }
        -:        -:  632:
        -:        -:  633:      /* VertStride must be used to cross GRF register boundaries. This rule
        -:        -:  634:       * implies that elements within a 'Width' cannot cross GRF boundaries.
        -:        -:  635:       */
      171:      175:  636:      const uint64_t mask = (1 << element_size) - 1;
      171:      175:  637:      unsigned rowbase = subreg;
        -:        -:  638:
      789:      799:  639:      for (int y = 0; y < exec_size / width; y++) {
      618:      624:  640:         uint64_t access_mask = 0;
      618:      624:  641:         unsigned offset = rowbase;
        -:        -:  642:
     2630:     2684:  643:         for (int x = 0; x < width; x++) {
     2012:     2060:  644:            access_mask |= mask << offset;
     2012:     2060:  645:            offset += hstride * element_size;
        -:        -:  646:         }
        -:        -:  647:
      618:      624:  648:         rowbase += vstride * element_size;
        -:        -:  649:
      618:      624:  650:         if ((uint32_t)access_mask != 0 && (access_mask >> 32) != 0) {
    #####:    #####:  651:            ERROR("VertStride must be used to cross GRF register boundaries");
    #####:    #####:  652:            break;
        -:        -:  653:         }
        -:        -:  654:      }
        -:        -:  655:   }
        -:        -:  656:
        -:        -:  657:   /* Dst.HorzStride must not be 0. */
      181:      189:  658:   if (desc->ndst != 0 && !dst_is_null(devinfo, inst)) {
      106:      106:  659:      ERROR_IF(brw_inst_dst_hstride(devinfo, inst) == BRW_HORIZONTAL_STRIDE_0,
        -:        -:  660:               "Destination Horizontal Stride must not be 0");
        -:        -:  661:   }
        -:        -:  662:
      181:      189:  663:   return error_msg;
        -:        -:  664:}
        -:        -:  665:
        -:        -:  666:/**
        -:        -:  667: * Creates an \p access_mask for an \p exec_size, \p element_size, and a region
        -:        -:  668: *
        -:        -:  669: * An \p access_mask is a 32-element array of uint64_t, where each uint64_t is
        -:        -:  670: * a bitmask of bytes accessed by the region.
        -:        -:  671: *
        -:        -:  672: * For instance the access mask of the source gX.1<4,2,2>F in an exec_size = 4
        -:        -:  673: * instruction would be
        -:        -:  674: *
        -:        -:  675: *    access_mask[0] = 0x00000000000000F0
        -:        -:  676: *    access_mask[1] = 0x000000000000F000
        -:        -:  677: *    access_mask[2] = 0x0000000000F00000
        -:        -:  678: *    access_mask[3] = 0x00000000F0000000
        -:        -:  679: *    access_mask[4-31] = 0
        -:        -:  680: *
        -:        -:  681: * because the first execution channel accesses bytes 7-4 and the second
        -:        -:  682: * execution channel accesses bytes 15-12, etc.
        -:        -:  683: */
        -:        -:  684:static void
      272:      276:  685:align1_access_mask(uint64_t access_mask[static 32],
        -:        -:  686:                   unsigned exec_size, unsigned element_size, unsigned subreg,
        -:        -:  687:                   unsigned vstride, unsigned width, unsigned hstride)
        -:        -:  688:{
      272:      276:  689:   const uint64_t mask = (1 << element_size) - 1;
      272:      276:  690:   unsigned rowbase = subreg;
      272:      276:  691:   unsigned element = 0;
        -:        -:  692:
      988:      998:  693:   for (int y = 0; y < exec_size / width; y++) {
      716:      722:  694:      unsigned offset = rowbase;
        -:        -:  695:
     3892:     3946:  696:      for (int x = 0; x < width; x++) {
     3176:     3224:  697:         access_mask[element++] = mask << offset;
     3176:     3224:  698:         offset += hstride * element_size;
        -:        -:  699:      }
        -:        -:  700:
      716:      722:  701:      rowbase += vstride * element_size;
        -:        -:  702:   }
        -:        -:  703:
      272:      276:  704:   assert(element == 0 || element == exec_size);
      272:      276:  705:}
        -:        -:  706:
        -:        -:  707:/**
        -:        -:  708: * Returns the number of registers accessed according to the \p access_mask
        -:        -:  709: */
        -:        -:  710:static int
      318:      318:  711:registers_read(const uint64_t access_mask[static 32])
        -:        -:  712:{
      318:      318:  713:   int regs_read = 0;
        -:        -:  714:
     8352:     8352:  715:   for (unsigned i = 0; i < 32; i++) {
     8123:     8123:  716:      if (access_mask[i] > 0xFFFFFFFF) {
       89:       89:  717:         return 2;
     8034:     8034:  718:      } else if (access_mask[i]) {
     2038:     2038:  719:         regs_read = 1;
        -:        -:  720:      }
        -:        -:  721:   }
        -:        -:  722:
      229:      229:  723:   return regs_read;
        -:        -:  724:}
        -:        -:  725:
        -:        -:  726:/**
        -:        -:  727: * Checks restrictions listed in "Region Alignment Rules" in the "Register
        -:        -:  728: * Region Restrictions" section.
        -:        -:  729: */
        -:        -:  730:static struct string
      212:      220:  731:region_alignment_rules(const struct gen_device_info *devinfo,
        -:        -:  732:                       const brw_inst *inst)
        -:        -:  733:{
      212:      220:  734:   const struct opcode_desc *desc =
      212:      220:  735:      brw_opcode_desc(devinfo, brw_inst_opcode(devinfo, inst));
      212:      220:  736:   unsigned num_sources = num_sources_from_inst(devinfo, inst);
      212:      220:  737:   unsigned exec_size = 1 << brw_inst_exec_size(devinfo, inst);
        -:        -:  738:   uint64_t dst_access_mask[32], src0_access_mask[32], src1_access_mask[32];
      212:      220:  739:   struct string error_msg = { .str = NULL, .len = 0 };
        -:        -:  740:
      212:      220:  741:   if (num_sources == 3)
       18:       18:  742:      return (struct string){};
        -:        -:  743:
      194:      202:  744:   if (brw_inst_access_mode(devinfo, inst) == BRW_ALIGN_16)
       13:       13:  745:      return (struct string){};
        -:        -:  746:
      181:      189:  747:   if (inst_is_send(devinfo, inst))
        5:        5:  748:      return (struct string){};
        -:        -:  749:
      176:      184:  750:   memset(dst_access_mask, 0, sizeof(dst_access_mask));
      176:      184:  751:   memset(src0_access_mask, 0, sizeof(src0_access_mask));
      176:      184:  752:   memset(src1_access_mask, 0, sizeof(src1_access_mask));
        -:        -:  753:
      373:      393:  754:   for (unsigned i = 0; i < num_sources; i++) {
        -:        -:  755:      unsigned vstride, width, hstride, element_size, subreg;
        -:        -:  756:
        -:        -:  757:      /* In Direct Addressing mode, a source cannot span more than 2 adjacent
        -:        -:  758:       * GRF registers.
        -:        -:  759:       */
        -:        -:  760:
        -:        -:  761:#define DO_SRC(n)                                                              \
        -:        -:  762:      if (brw_inst_src ## n ## _address_mode(devinfo, inst) !=                 \
        -:        -:  763:          BRW_ADDRESS_DIRECT)                                                  \
        -:        -:  764:         continue;                                                             \
        -:        -:  765:                                                                               \
        -:        -:  766:      if (brw_inst_src ## n ## _reg_file(devinfo, inst) ==                     \
        -:        -:  767:          BRW_IMMEDIATE_VALUE)                                                 \
        -:        -:  768:         continue;                                                             \
        -:        -:  769:                                                                               \
        -:        -:  770:      vstride = brw_inst_src ## n ## _vstride(devinfo, inst) ?                 \
        -:        -:  771:                (1 << (brw_inst_src ## n ## _vstride(devinfo, inst) - 1)) : 0; \
        -:        -:  772:      width = 1 << brw_inst_src ## n ## _width(devinfo, inst);                 \
        -:        -:  773:      hstride = brw_inst_src ## n ## _hstride(devinfo, inst) ?                 \
        -:        -:  774:                (1 << (brw_inst_src ## n ## _hstride(devinfo, inst) - 1)) : 0; \
        -:        -:  775:      element_size = brw_element_size(devinfo, inst, src ## n);                \
        -:        -:  776:      subreg = brw_inst_src ## n ## _da1_subreg_nr(devinfo, inst);             \
        -:        -:  777:      align1_access_mask(src ## n ## _access_mask,                             \
        -:        -:  778:                         exec_size, element_size, subreg,                      \
        -:        -:  779:                         vstride, width, hstride)
        -:        -:  780:
      197:      209:  781:      if (i == 0) {
      128:      136:  782:         DO_SRC(0);
       69:       73:  783:      } else if (i == 1) {
       69:       73:  784:         DO_SRC(1);
        -:        -:  785:      }
        -:        -:  786:#undef DO_SRC
        -:        -:  787:
      166:      170:  788:      unsigned num_vstride = exec_size / width;
      166:      170:  789:      unsigned num_hstride = width;
      166:      170:  790:      unsigned vstride_elements = (num_vstride - 1) * vstride;
      166:      170:  791:      unsigned hstride_elements = (num_hstride - 1) * hstride;
      166:      170:  792:      unsigned offset = (vstride_elements + hstride_elements) * element_size +
        -:        -:  793:                        subreg;
      166:      170:  794:      ERROR_IF(offset >= 64,
        -:        -:  795:               "A source cannot span more than 2 adjacent GRF registers");
        -:        -:  796:   }
        -:        -:  797:
      176:      184:  798:   if (desc->ndst == 0 || dst_is_null(devinfo, inst))
       70:       78:  799:      return error_msg;
        -:        -:  800:
      106:      106:  801:   unsigned stride = 1 << (brw_inst_dst_hstride(devinfo, inst) - 1);
      106:      106:  802:   unsigned element_size = brw_element_size(devinfo, inst, dst);
      106:      106:  803:   unsigned subreg = brw_inst_dst_da1_subreg_nr(devinfo, inst);
      106:      106:  804:   unsigned offset = ((exec_size - 1) * stride * element_size) + subreg;
      106:      106:  805:   ERROR_IF(offset >= 64,
        -:        -:  806:            "A destination cannot span more than 2 adjacent GRF registers");
        -:        -:  807:
      106:      106:  808:   if (error_msg.str)
    #####:    #####:  809:      return error_msg;
        -:        -:  810:
        -:        -:  811:   /* On IVB/BYT, region parameters and execution size for DF are in terms of
        -:        -:  812:    * 32-bit elements, so they are doubled. For evaluating the validity of an
        -:        -:  813:    * instruction, we halve them.
        -:        -:  814:    */
      106:      106:  815:   if (devinfo->gen == 7 && !devinfo->is_haswell &&
        -:        -:  816:       element_size == 8)
    #####:    #####:  817:      element_size = 4;
        -:        -:  818:
      106:      106:  819:   align1_access_mask(dst_access_mask, exec_size, element_size, subreg,
        -:        -:  820:                      exec_size == 1 ? 0 : exec_size * stride,
        -:        -:  821:                      exec_size == 1 ? 1 : exec_size,
        -:        -:  822:                      exec_size == 1 ? 0 : stride);
        -:        -:  823:
      106:      106:  824:   unsigned dst_regs = registers_read(dst_access_mask);
      106:      106:  825:   unsigned src0_regs = registers_read(src0_access_mask);
      106:      106:  826:   unsigned src1_regs = registers_read(src1_access_mask);
        -:        -:  827:
        -:        -:  828:   /* The SNB, IVB, HSW, BDW, and CHV PRMs say:
        -:        -:  829:    *
        -:        -:  830:    *    When an instruction has a source region spanning two registers and a
        -:        -:  831:    *    destination region contained in one register, the number of elements
        -:        -:  832:    *    must be the same between two sources and one of the following must be
        -:        -:  833:    *    true:
        -:        -:  834:    *
        -:        -:  835:    *       1. The destination region is entirely contained in the lower OWord
        -:        -:  836:    *          of a register.
        -:        -:  837:    *       2. The destination region is entirely contained in the upper OWord
        -:        -:  838:    *          of a register.
        -:        -:  839:    *       3. The destination elements are evenly split between the two OWords
        -:        -:  840:    *          of a register.
        -:        -:  841:    */
      106:      106:  842:   if (devinfo->gen <= 8) {
      106:      106:  843:      if (dst_regs == 1 && (src0_regs == 2 || src1_regs == 2)) {
        1:        1:  844:         unsigned upper_oword_writes = 0, lower_oword_writes = 0;
        -:        -:  845:
        5:        5:  846:         for (unsigned i = 0; i < exec_size; i++) {
        4:        4:  847:            if (dst_access_mask[i] > 0x0000FFFF) {
    #####:    #####:  848:               upper_oword_writes++;
        -:        -:  849:            } else {
        4:        4:  850:               assert(dst_access_mask[i] != 0);
        4:        4:  851:               lower_oword_writes++;
        -:        -:  852:            }
        -:        -:  853:         }
        -:        -:  854:
        1:        1:  855:         ERROR_IF(lower_oword_writes != 0 &&
        -:        -:  856:                  upper_oword_writes != 0 &&
        -:        -:  857:                  upper_oword_writes != lower_oword_writes,
        -:        -:  858:                  "Writes must be to only one OWord or "
        -:        -:  859:                  "evenly split between OWords");
        -:        -:  860:      }
        -:        -:  861:   }
        -:        -:  862:
        -:        -:  863:   /* The IVB and HSW PRMs say:
        -:        -:  864:    *
        -:        -:  865:    *    When an instruction has a source region that spans two registers and
        -:        -:  866:    *    the destination spans two registers, the destination elements must be
        -:        -:  867:    *    evenly split between the two registers [...]
        -:        -:  868:    *
        -:        -:  869:    * The SNB PRM contains similar wording (but written in a much more
        -:        -:  870:    * confusing manner).
        -:        -:  871:    *
        -:        -:  872:    * The BDW PRM says:
        -:        -:  873:    *
        -:        -:  874:    *    When destination spans two registers, the source may be one or two
        -:        -:  875:    *    registers. The destination elements must be evenly split between the
        -:        -:  876:    *    two registers.
        -:        -:  877:    *
        -:        -:  878:    * The SKL PRM says:
        -:        -:  879:    *
        -:        -:  880:    *    When destination of MATH instruction spans two registers, the
        -:        -:  881:    *    destination elements must be evenly split between the two registers.
        -:        -:  882:    *
        -:        -:  883:    * It is not known whether this restriction applies to KBL other Gens after
        -:        -:  884:    * SKL.
        -:        -:  885:    */
      106:      106:  886:   if (devinfo->gen <= 8 ||
    #####:    #####:  887:       brw_inst_opcode(devinfo, inst) == BRW_OPCODE_MATH) {
        -:        -:  888:
        -:        -:  889:      /* Nothing explicitly states that on Gen < 8 elements must be evenly
        -:        -:  890:       * split between two destination registers in the two exceptional
        -:        -:  891:       * source-region-spans-one-register cases, but since Broadwell requires
        -:        -:  892:       * evenly split writes regardless of source region, we assume that it was
        -:        -:  893:       * an oversight and require it.
        -:        -:  894:       */
      106:      106:  895:      if (dst_regs == 2) {
       45:       45:  896:         unsigned upper_reg_writes = 0, lower_reg_writes = 0;
        -:        -:  897:
      765:      765:  898:         for (unsigned i = 0; i < exec_size; i++) {
      720:      720:  899:            if (dst_access_mask[i] > 0xFFFFFFFF) {
      360:      360:  900:               upper_reg_writes++;
        -:        -:  901:            } else {
      360:      360:  902:               assert(dst_access_mask[i] != 0);
      360:      360:  903:               lower_reg_writes++;
        -:        -:  904:            }
        -:        -:  905:         }
        -:        -:  906:
       45:       45:  907:         ERROR_IF(upper_reg_writes != lower_reg_writes,
        -:        -:  908:                  "Writes must be evenly split between the two "
        -:        -:  909:                  "destination registers");
        -:        -:  910:      }
        -:        -:  911:   }
        -:        -:  912:
        -:        -:  913:   /* The IVB and HSW PRMs say:
        -:        -:  914:    *
        -:        -:  915:    *    When an instruction has a source region that spans two registers and
        -:        -:  916:    *    the destination spans two registers, the destination elements must be
        -:        -:  917:    *    evenly split between the two registers and each destination register
        -:        -:  918:    *    must be entirely derived from one source register.
        -:        -:  919:    *
        -:        -:  920:    *    Note: In such cases, the regioning parameters must ensure that the
        -:        -:  921:    *    offset from the two source registers is the same.
        -:        -:  922:    *
        -:        -:  923:    * The SNB PRM contains similar wording (but written in a much more
        -:        -:  924:    * confusing manner).
        -:        -:  925:    *
        -:        -:  926:    * There are effectively three rules stated here:
        -:        -:  927:    *
        -:        -:  928:    *    For an instruction with a source and a destination spanning two
        -:        -:  929:    *    registers,
        -:        -:  930:    *
        -:        -:  931:    *       (1) destination elements must be evenly split between the two
        -:        -:  932:    *           registers
        -:        -:  933:    *       (2) all destination elements in a register must be derived
        -:        -:  934:    *           from one source register
        -:        -:  935:    *       (3) the offset (i.e. the starting location in each of the two
        -:        -:  936:    *           registers spanned by a region) must be the same in the two
        -:        -:  937:    *           registers spanned by a region
        -:        -:  938:    *
        -:        -:  939:    * It is impossible to violate rule (1) without violating (2) or (3), so we
        -:        -:  940:    * do not attempt to validate it.
        -:        -:  941:    */
      106:      106:  942:   if (devinfo->gen <= 7 && dst_regs == 2) {
      112:      112:  943:      for (unsigned i = 0; i < num_sources; i++) {
        -:        -:  944:#define DO_SRC(n)                                                             \
        -:        -:  945:         if (src ## n ## _regs <= 1)                                          \
        -:        -:  946:            continue;                                                         \
        -:        -:  947:                                                                              \
        -:        -:  948:         for (unsigned i = 0; i < exec_size; i++) {                           \
        -:        -:  949:            if ((dst_access_mask[i] > 0xFFFFFFFF) !=                          \
        -:        -:  950:                (src ## n ## _access_mask[i] > 0xFFFFFFFF)) {                 \
        -:        -:  951:               ERROR("Each destination register must be entirely derived "    \
        -:        -:  952:                     "from one source register");                             \
        -:        -:  953:               break;                                                         \
        -:        -:  954:            }                                                                 \
        -:        -:  955:         }                                                                    \
        -:        -:  956:                                                                              \
        -:        -:  957:         unsigned offset_0 =                                                  \
        -:        -:  958:            brw_inst_src ## n ## _da1_subreg_nr(devinfo, inst);               \
        -:        -:  959:         unsigned offset_1 = offset_0;                                        \
        -:        -:  960:                                                                              \
        -:        -:  961:         for (unsigned i = 0; i < exec_size; i++) {                           \
        -:        -:  962:            if (src ## n ## _access_mask[i] > 0xFFFFFFFF) {                   \
        -:        -:  963:               offset_1 = __builtin_ctzll(src ## n ## _access_mask[i]) - 32;  \
        -:        -:  964:               break;                                                         \
        -:        -:  965:            }                                                                 \
        -:        -:  966:         }                                                                    \
        -:        -:  967:                                                                              \
        -:        -:  968:         ERROR_IF(offset_0 != offset_1,                                       \
        -:        -:  969:                  "The offset from the two source registers "                 \
        -:        -:  970:                  "must be the same")
        -:        -:  971:
       67:       67:  972:         if (i == 0) {
       45:       45:  973:            DO_SRC(0);
       22:       22:  974:         } else if (i == 1) {
       22:       22:  975:            DO_SRC(1);
        -:        -:  976:         }
        -:        -:  977:#undef DO_SRC
        -:        -:  978:      }
        -:        -:  979:   }
        -:        -:  980:
        -:        -:  981:   /* The IVB and HSW PRMs say:
        -:        -:  982:    *
        -:        -:  983:    *    When destination spans two registers, the source MUST span two
        -:        -:  984:    *    registers. The exception to the above rule:
        -:        -:  985:    *        1. When source is scalar, the source registers are not
        -:        -:  986:    *           incremented.
        -:        -:  987:    *        2. When source is packed integer Word and destination is packed
        -:        -:  988:    *           integer DWord, the source register is not incremented by the
        -:        -:  989:    *           source sub register is incremented.
        -:        -:  990:    *
        -:        -:  991:    * The SNB PRM does not contain this rule, but the internal documentation
        -:        -:  992:    * indicates that it applies to SNB as well. We assume that the rule applies
        -:        -:  993:    * to Gen <= 5 although their PRMs do not state it.
        -:        -:  994:    *
        -:        -:  995:    * While the documentation explicitly says in exception (2) that the
        -:        -:  996:    * destination must be an integer DWord, the hardware allows at least a
        -:        -:  997:    * float destination type as well. We emit such instructions from
        -:        -:  998:    *
        -:        -:  999:    *    fs_visitor::emit_interpolation_setup_gen6
        -:        -: 1000:    *    fs_visitor::emit_fragcoord_interpolation
        -:        -: 1001:    *
        -:        -: 1002:    * and have for years with no ill effects.
        -:        -: 1003:    *
        -:        -: 1004:    * Additionally the simulator source code indicates that the real condition
        -:        -: 1005:    * is that the size of the destination type is 4 bytes.
        -:        -: 1006:    */
      106:      106: 1007:   if (devinfo->gen <= 7 && dst_regs == 2) {
       45:       45: 1008:      bool dst_is_packed_dword =
       90:       90: 1009:         is_packed(exec_size * stride, exec_size, stride) &&
       45:       45: 1010:         brw_element_size(devinfo, inst, dst) == 4;
        -:        -: 1011:
      112:      112: 1012:      for (unsigned i = 0; i < num_sources; i++) {
        -:        -: 1013:#define DO_SRC(n)                                                                  \
        -:        -: 1014:         unsigned vstride, width, hstride;                                         \
        -:        -: 1015:         vstride = brw_inst_src ## n ## _vstride(devinfo, inst) ?                  \
        -:        -: 1016:                   (1 << (brw_inst_src ## n ## _vstride(devinfo, inst) - 1)) : 0;  \
        -:        -: 1017:         width = 1 << brw_inst_src ## n ## _width(devinfo, inst);                  \
        -:        -: 1018:         hstride = brw_inst_src ## n ## _hstride(devinfo, inst) ?                  \
        -:        -: 1019:                   (1 << (brw_inst_src ## n ## _hstride(devinfo, inst) - 1)) : 0;  \
        -:        -: 1020:         bool src ## n ## _is_packed_word =                                        \
        -:        -: 1021:            is_packed(vstride, width, hstride) &&                                  \
        -:        -: 1022:            (brw_inst_src ## n ## _reg_type(devinfo, inst) == BRW_HW_REG_TYPE_W || \
        -:        -: 1023:             brw_inst_src ## n ## _reg_type(devinfo, inst) == BRW_HW_REG_TYPE_UW); \
        -:        -: 1024:                                                                                   \
        -:        -: 1025:         ERROR_IF(src ## n ## _regs == 1 &&                                        \
        -:        -: 1026:                  !src ## n ## _has_scalar_region(devinfo, inst) &&                \
        -:        -: 1027:                  !(dst_is_packed_dword && src ## n ## _is_packed_word),           \
        -:        -: 1028:                  "When the destination spans two registers, the source must "     \
        -:        -: 1029:                  "span two registers\n" ERROR_INDENT "(exceptions for scalar "    \
        -:        -: 1030:                  "source and packed-word to packed-dword expansion)")
        -:        -: 1031:
       67:       67: 1032:         if (i == 0) {
       45:       45: 1033:            DO_SRC(0);
       22:       22: 1034:         } else if (i == 1) {
       22:       22: 1035:            DO_SRC(1);
        -:        -: 1036:         }
        -:        -: 1037:#undef DO_SRC
        -:        -: 1038:      }
        -:        -: 1039:   }
        -:        -: 1040:
      106:      106: 1041:   return error_msg;
        -:        -: 1042:}
        -:        -: 1043:
        -:        -: 1044:bool
        7:        7: 1045:brw_validate_instructions(const struct brw_codegen *p, int start_offset,
        -:        -: 1046:                          struct annotation_info *annotation)
        -:        -: 1047:{
        7:        7: 1048:   const struct gen_device_info *devinfo = p->devinfo;
        7:        7: 1049:   const void *store = p->store;
        7:        7: 1050:   bool valid = true;
        -:        -: 1051:
      226:      234: 1052:   for (int src_offset = start_offset; src_offset < p->next_insn_offset;
      212:      220: 1053:        src_offset += sizeof(brw_inst)) {
      212:      220: 1054:      struct string error_msg = { .str = NULL, .len = 0 };
      212:      220: 1055:      const brw_inst *inst = store + src_offset;
        -:        -: 1056:
      212:      220: 1057:      if (is_unsupported_inst(devinfo, inst)) {
    #####:    #####: 1058:         ERROR("Instruction not supported on this Gen");
        -:        -: 1059:      } else {
      212:      220: 1060:         CHECK(sources_not_null);
      212:      220: 1061:         CHECK(send_restrictions);
      212:      220: 1062:         CHECK(general_restrictions_based_on_operand_types);
      212:      220: 1063:         CHECK(general_restrictions_on_region_parameters);
      212:      220: 1064:         CHECK(region_alignment_rules);
        -:        -: 1065:      }
        -:        -: 1066:
      212:      220: 1067:      if (error_msg.str && annotation) {
    #####:    #####: 1068:         annotation_insert_error(annotation, src_offset, error_msg.str);
        -:        -: 1069:      }
      212:      220: 1070:      valid = valid && error_msg.len == 0;
      212:      220: 1071:      free(error_msg.str);
        -:        -: 1072:   }
        -:        -: 1073:
        7:        7: 1074:   return valid;
        -:        -: 1075:}

src/intel/brw_fs_cmod_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cmod_propagation.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_cfg.h"
        -:        -:   26:#include "brw_eu.h"
        -:        -:   27:
        -:        -:   28:/** @file brw_fs_cmod_propagation.cpp
        -:        -:   29: *
        -:        -:   30: * Implements a pass that propagates the conditional modifier from a CMP x 0.0
        -:        -:   31: * instruction into the instruction that generated x. For instance, in this
        -:        -:   32: * sequence
        -:        -:   33: *
        -:        -:   34: *    add(8)          g70<1>F    g69<8,8,1>F    4096F
        -:        -:   35: *    cmp.ge.f0(8)    null       g70<8,8,1>F    0F
        -:        -:   36: *
        -:        -:   37: * we can do the comparison as part of the ADD instruction directly:
        -:        -:   38: *
        -:        -:   39: *    add.ge.f0(8)    g70<1>F    g69<8,8,1>F    4096F
        -:        -:   40: *
        -:        -:   41: * If there had been a use of the flag register and another CMP using g70
        -:        -:   42: *
        -:        -:   43: *    add.ge.f0(8)    g70<1>F    g69<8,8,1>F    4096F
        -:        -:   44: *    (+f0) sel(8)    g71<F>     g72<8,8,1>F    g73<8,8,1>F
        -:        -:   45: *    cmp.ge.f0(8)    null       g70<8,8,1>F    0F
        -:        -:   46: *
        -:        -:   47: * we can recognize that the CMP is generating the flag value that already
        -:        -:   48: * exists and therefore remove the instruction.
        -:        -:   49: */
        -:        -:   50:
        -:        -:   51:static bool
      152:      254:   52:opt_cmod_propagation_local(const gen_device_info *devinfo, bblock_t *block)
        -:        -:   53:{
      152:      254:   54:   bool progress = false;
      152:      254:   55:   int ip = block->end_ip + 1;
        -:        -:   56:
      873:     1244:   57:   foreach_inst_in_block_reverse_safe(fs_inst, inst, block) {
      721:      990:   58:      ip--;
        -:        -:   59:
     2163:     2970:   60:      if ((inst->opcode != BRW_OPCODE_AND &&
     1376:     1876:   61:           inst->opcode != BRW_OPCODE_CMP &&
      934:     1255:   62:           inst->opcode != BRW_OPCODE_MOV) ||
      558:      738:   63:          inst->predicate != BRW_PREDICATE_NONE ||
      345:      489:   64:          !inst->dst.is_null() ||
      845:     1210:   65:          inst->src[0].file != VGRF ||
       58:      100:   66:          inst->src[0].abs)
      663:      890:   67:         continue;
        -:        -:   68:
        -:        -:   69:      /* Only an AND.NZ can be propagated.  Many AND.Z instructions are
        -:        -:   70:       * generated (for ir_unop_not in fs_visitor::emit_bool_to_cond_code).
        -:        -:   71:       * Propagating those would require inverting the condition on the CMP.
        -:        -:   72:       * This changes both the flag value and the register destination of the
        -:        -:   73:       * CMP.  That result may be used elsewhere, so we can't change its value
        -:        -:   74:       * on a whim.
        -:        -:   75:       */
       58:      100:   76:      if (inst->opcode == BRW_OPCODE_AND &&
    #####:    #####:   77:          !(inst->src[1].is_one() &&
    #####:    #####:   78:            inst->conditional_mod == BRW_CONDITIONAL_NZ &&
    #####:    #####:   79:            !inst->src[0].negate))
    #####:    #####:   80:         continue;
        -:        -:   81:
       58:      100:   82:      if (inst->opcode == BRW_OPCODE_CMP && !inst->src[1].is_zero())
       28:       54:   83:         continue;
        -:        -:   84:
       48:       76:   85:      if (inst->opcode == BRW_OPCODE_MOV &&
       18:       30:   86:          inst->conditional_mod != BRW_CONDITIONAL_NZ)
    #####:    #####:   87:         continue;
        -:        -:   88:
       30:       46:   89:      bool read_flag = false;
       30:       46:   90:      foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
       36:       44:   91:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
       18:       22:   92:                             inst->src[0], inst->size_read(0))) {
       54:       66:   93:            if (scan_inst->is_partial_write() ||
       36:       44:   94:                scan_inst->dst.offset != inst->src[0].offset ||
       18:       22:   95:                scan_inst->exec_size != inst->exec_size)
    #####:    #####:   96:               break;
        -:        -:   97:
        -:        -:   98:            /* CMP's result is the same regardless of dest type. */
       36:       44:   99:            if (inst->conditional_mod == BRW_CONDITIONAL_NZ &&
       36:       44:  100:                scan_inst->opcode == BRW_OPCODE_CMP &&
       18:       22:  101:                (inst->dst.type == BRW_REGISTER_TYPE_D ||
    #####:    #####:  102:                 inst->dst.type == BRW_REGISTER_TYPE_UD)) {
       18:       22:  103:               inst->remove(block);
       18:       22:  104:               progress = true;
       18:       22:  105:               break;
        -:        -:  106:            }
        -:        -:  107:
        -:        -:  108:            /* If the AND wasn't handled by the previous case, it isn't safe
        -:        -:  109:             * to remove it.
        -:        -:  110:             */
    #####:    #####:  111:            if (inst->opcode == BRW_OPCODE_AND)
    #####:    #####:  112:               break;
        -:        -:  113:
        -:        -:  114:            /* Comparisons operate differently for ints and floats */
    #####:    #####:  115:            if (scan_inst->dst.type != inst->dst.type &&
    #####:    #####:  116:                (scan_inst->dst.type == BRW_REGISTER_TYPE_F ||
    #####:    #####:  117:                 inst->dst.type == BRW_REGISTER_TYPE_F))
        -:        -:  118:               break;
        -:        -:  119:
        -:        -:  120:            /* If the instruction generating inst's source also wrote the
        -:        -:  121:             * flag, and inst is doing a simple .nz comparison, then inst
        -:        -:  122:             * is redundant - the appropriate value is already in the flag
        -:        -:  123:             * register.  Delete inst.
        -:        -:  124:             */
    #####:    #####:  125:            if (inst->conditional_mod == BRW_CONDITIONAL_NZ &&
    #####:    #####:  126:                !inst->src[0].negate &&
    #####:    #####:  127:                scan_inst->flags_written()) {
    #####:    #####:  128:               inst->remove(block);
    #####:    #####:  129:               progress = true;
    #####:    #####:  130:               break;
        -:        -:  131:            }
        -:        -:  132:
        -:        -:  133:            /* The conditional mod of the CMP/CMPN instructions behaves
        -:        -:  134:             * specially because the flag output is not calculated from the
        -:        -:  135:             * result of the instruction, but the other way around, which
        -:        -:  136:             * means that even if the condmod to propagate and the condmod
        -:        -:  137:             * from the CMP instruction are the same they will in general give
        -:        -:  138:             * different results because they are evaluated based on different
        -:        -:  139:             * inputs.
        -:        -:  140:             */
    #####:    #####:  141:            if (scan_inst->opcode == BRW_OPCODE_CMP ||
    #####:    #####:  142:                scan_inst->opcode == BRW_OPCODE_CMPN)
        -:        -:  143:               break;
        -:        -:  144:
        -:        -:  145:            /* Otherwise, try propagating the conditional. */
        -:        -:  146:            enum brw_conditional_mod cond =
    #####:    #####:  147:               inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
    #####:    #####:  148:                                   : inst->conditional_mod;
        -:        -:  149:
    #####:    #####:  150:            if (scan_inst->can_do_cmod() &&
    #####:    #####:  151:                ((!read_flag && scan_inst->conditional_mod == BRW_CONDITIONAL_NONE) ||
    #####:    #####:  152:                 scan_inst->conditional_mod == cond)) {
    #####:    #####:  153:               scan_inst->conditional_mod = cond;
    #####:    #####:  154:               inst->remove(block);
    #####:    #####:  155:               progress = true;
        -:        -:  156:            }
    #####:    #####:  157:            break;
        -:        -:  158:         }
        -:        -:  159:
    #####:    #####:  160:         if (scan_inst->flags_written())
    #####:    #####:  161:            break;
        -:        -:  162:
    #####:    #####:  163:         read_flag = read_flag || scan_inst->flags_read(devinfo);
        -:        -:  164:      }
        -:        -:  165:   }
        -:        -:  166:
      152:      254:  167:   return progress;
        -:        -:  168:}
        -:        -:  169:
        -:        -:  170:bool
       12:       14:  171:fs_visitor::opt_cmod_propagation()
        -:        -:  172:{
       12:       14:  173:   bool progress = false;
        -:        -:  174:
      164:      268:  175:   foreach_block_reverse(block, cfg) {
      152:      254:  176:      progress = opt_cmod_propagation_local(devinfo, block) || progress;
        -:        -:  177:   }
        -:        -:  178:
       12:       14:  179:   if (progress)
        2:        2:  180:      invalidate_live_intervals();
        -:        -:  181:
       12:       14:  182:   return progress;
        3:        3:  183:}

src/intel/brw_fs_combine_constants.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_combine_constants.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_combine_constants.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_combine_constants.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs_combine_constants.cpp
        -:        -:   25: *
        -:        -:   26: * This file contains the opt_combine_constants() pass that runs after the
        -:        -:   27: * regular optimization loop. It passes over the instruction list and
        -:        -:   28: * selectively promotes immediate values to registers by emitting a mov(1)
        -:        -:   29: * instruction.
        -:        -:   30: *
        -:        -:   31: * This is useful on Gen 7 particularly, because a few instructions can be
        -:        -:   32: * coissued (i.e., issued in the same cycle as another thread on the same EU
        -:        -:   33: * issues an instruction) under some circumstances, one of which is that they
        -:        -:   34: * cannot use immediate values.
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:#include "brw_fs.h"
        -:        -:   38:#include "brw_cfg.h"
        -:        -:   39:
        -:        -:   40:using namespace brw;
        -:        -:   41:
        -:        -:   42:static const bool debug = false;
        -:        -:   43:
        -:        -:   44:/* Returns whether an instruction could co-issue if its immediate source were
        -:        -:   45: * replaced with a GRF source.
        -:        -:   46: */
        -:        -:   47:static bool
      206:      218:   48:could_coissue(const struct gen_device_info *devinfo, const fs_inst *inst)
        -:        -:   49:{
      206:      218:   50:   if (devinfo->gen != 7)
      206:      218:   51:      return false;
        -:        -:   52:
    #####:    #####:   53:   switch (inst->opcode) {
        -:        -:   54:   case BRW_OPCODE_MOV:
        -:        -:   55:   case BRW_OPCODE_CMP:
        -:        -:   56:   case BRW_OPCODE_ADD:
        -:        -:   57:   case BRW_OPCODE_MUL:
    #####:    #####:   58:      return true;
        -:        -:   59:   default:
    #####:    #####:   60:      return false;
        -:        -:   61:   }
        -:        -:   62:}
        -:        -:   63:
        -:        -:   64:/**
        -:        -:   65: * Returns true for instructions that don't support immediate sources.
        -:        -:   66: */
        -:        -:   67:static bool
      206:      218:   68:must_promote_imm(const struct gen_device_info *devinfo, const fs_inst *inst)
        -:        -:   69:{
      206:      218:   70:   switch (inst->opcode) {
        -:        -:   71:   case SHADER_OPCODE_POW:
    #####:    #####:   72:      return devinfo->gen < 8;
        -:        -:   73:   case BRW_OPCODE_MAD:
        -:        -:   74:   case BRW_OPCODE_LRP:
       18:       18:   75:      return true;
        -:        -:   76:   default:
      188:      200:   77:      return false;
        -:        -:   78:   }
        -:        -:   79:}
        -:        -:   80:
        -:        -:   81:/** A box for putting fs_regs in a linked list. */
        -:        -:   82:struct reg_link {
    #####:    #####:   83:   DECLARE_RALLOC_CXX_OPERATORS(reg_link)
        -:        -:   84:
    #####:    #####:   85:   reg_link(fs_reg *reg) : reg(reg) {}
        -:        -:   86:
        -:        -:   87:   struct exec_node link;
        -:        -:   88:   fs_reg *reg;
        -:        -:   89:};
        -:        -:   90:
        -:        -:   91:static struct exec_node *
    #####:    #####:   92:link(void *mem_ctx, fs_reg *reg)
        -:        -:   93:{
    #####:    #####:   94:   reg_link *l = new(mem_ctx) reg_link(reg);
    #####:    #####:   95:   return &l->link;
        -:        -:   96:}
        -:        -:   97:
        -:        -:   98:/**
        -:        -:   99: * Information about an immediate value.
        -:        -:  100: */
        -:        -:  101:struct imm {
        -:        -:  102:   /** The common ancestor of all blocks using this immediate value. */
        -:        -:  103:   bblock_t *block;
        -:        -:  104:
        -:        -:  105:   /**
        -:        -:  106:    * The instruction generating the immediate value, if all uses are contained
        -:        -:  107:    * within a single basic block. Otherwise, NULL.
        -:        -:  108:    */
        -:        -:  109:   fs_inst *inst;
        -:        -:  110:
        -:        -:  111:   /**
        -:        -:  112:    * A list of fs_regs that refer to this immediate.  If we promote it, we'll
        -:        -:  113:    * have to patch these up to refer to the new GRF.
        -:        -:  114:    */
        -:        -:  115:   exec_list *uses;
        -:        -:  116:
        -:        -:  117:   /** The immediate value.  We currently only handle floats. */
        -:        -:  118:   float val;
        -:        -:  119:
        -:        -:  120:   /**
        -:        -:  121:    * The GRF register and subregister number where we've decided to store the
        -:        -:  122:    * constant value.
        -:        -:  123:    */
        -:        -:  124:   uint8_t subreg_offset;
        -:        -:  125:   uint16_t nr;
        -:        -:  126:
        -:        -:  127:   /** The number of coissuable instructions using this immediate. */
        -:        -:  128:   uint16_t uses_by_coissue;
        -:        -:  129:
        -:        -:  130:   /**
        -:        -:  131:    * Whether this constant is used by an instruction that can't handle an
        -:        -:  132:    * immediate source (and already has to be promoted to a GRF).
        -:        -:  133:    */
        -:        -:  134:   bool must_promote;
        -:        -:  135:
        -:        -:  136:   uint16_t first_use_ip;
        -:        -:  137:   uint16_t last_use_ip;
        -:        -:  138:};
        -:        -:  139:
        -:        -:  140:/** The working set of information about immediates. */
        -:        -:  141:struct table {
        -:        -:  142:   struct imm *imm;
        -:        -:  143:   int size;
        -:        -:  144:   int len;
        -:        -:  145:};
        -:        -:  146:
        -:        -:  147:static struct imm *
    #####:    #####:  148:find_imm(struct table *table, float val)
        -:        -:  149:{
    #####:    #####:  150:   for (int i = 0; i < table->len; i++) {
    #####:    #####:  151:      if (table->imm[i].val == val) {
    #####:    #####:  152:         return &table->imm[i];
        -:        -:  153:      }
        -:        -:  154:   }
    #####:    #####:  155:   return NULL;
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:static struct imm *
    #####:    #####:  159:new_imm(struct table *table, void *mem_ctx)
        -:        -:  160:{
    #####:    #####:  161:   if (table->len == table->size) {
    #####:    #####:  162:      table->size *= 2;
    #####:    #####:  163:      table->imm = reralloc(mem_ctx, table->imm, struct imm, table->size);
        -:        -:  164:   }
    #####:    #####:  165:   return &table->imm[table->len++];
        -:        -:  166:}
        -:        -:  167:
        -:        -:  168:/**
        -:        -:  169: * Comparator used for sorting an array of imm structures.
        -:        -:  170: *
        -:        -:  171: * We sort by basic block number, then last use IP, then first use IP (least
        -:        -:  172: * to greatest). This sorting causes immediates live in the same area to be
        -:        -:  173: * allocated to the same register in the hopes that all values will be dead
        -:        -:  174: * about the same time and the register can be reused.
        -:        -:  175: */
        -:        -:  176:static int
    #####:    #####:  177:compare(const void *_a, const void *_b)
        -:        -:  178:{
    #####:    #####:  179:   const struct imm *a = (const struct imm *)_a,
    #####:    #####:  180:                    *b = (const struct imm *)_b;
        -:        -:  181:
    #####:    #####:  182:   int block_diff = a->block->num - b->block->num;
    #####:    #####:  183:   if (block_diff)
    #####:    #####:  184:      return block_diff;
        -:        -:  185:
    #####:    #####:  186:   int end_diff = a->last_use_ip - b->last_use_ip;
    #####:    #####:  187:   if (end_diff)
    #####:    #####:  188:      return end_diff;
        -:        -:  189:
    #####:    #####:  190:   return a->first_use_ip - b->first_use_ip;
        -:        -:  191:}
        -:        -:  192:
        -:        -:  193:bool
        5:        5:  194:fs_visitor::opt_combine_constants()
        -:        -:  195:{
        5:        5:  196:   void *const_ctx = ralloc_context(NULL);
        -:        -:  197:
        -:        -:  198:   struct table table;
        5:        5:  199:   table.size = 8;
        5:        5:  200:   table.len = 0;
        5:        5:  201:   table.imm = ralloc_array(const_ctx, struct imm, table.size);
        -:        -:  202:
        5:        5:  203:   cfg->calculate_idom();
        5:        5:  204:   unsigned ip = -1;
        -:        -:  205:
        -:        -:  206:   /* Make a pass through all instructions and count the number of times each
        -:        -:  207:    * constant is used by coissueable instructions or instructions that cannot
        -:        -:  208:    * take immediate arguments.
        -:        -:  209:    */
      211:      223:  210:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      206:      218:  211:      ip++;
        -:        -:  212:
      206:      218:  213:      if (!could_coissue(devinfo, inst) && !must_promote_imm(devinfo, inst))
      188:      200:  214:         continue;
        -:        -:  215:
       72:       72:  216:      for (int i = 0; i < inst->sources; i++) {
       54:       54:  217:         if (inst->src[i].file != IMM ||
    #####:    #####:  218:             inst->src[i].type != BRW_REGISTER_TYPE_F)
       54:       54:  219:            continue;
        -:        -:  220:
    #####:    #####:  221:         float val = !inst->can_do_source_mods(devinfo) ? inst->src[i].f :
    #####:    #####:  222:                     fabs(inst->src[i].f);
    #####:    #####:  223:         struct imm *imm = find_imm(&table, val);
        -:        -:  224:
    #####:    #####:  225:         if (imm) {
    #####:    #####:  226:            bblock_t *intersection = cfg_t::intersect(block, imm->block);
    #####:    #####:  227:            if (intersection != imm->block)
    #####:    #####:  228:               imm->inst = NULL;
    #####:    #####:  229:            imm->block = intersection;
    #####:    #####:  230:            imm->uses->push_tail(link(const_ctx, &inst->src[i]));
    #####:    #####:  231:            imm->uses_by_coissue += could_coissue(devinfo, inst);
    #####:    #####:  232:            imm->must_promote = imm->must_promote || must_promote_imm(devinfo, inst);
    #####:    #####:  233:            imm->last_use_ip = ip;
        -:        -:  234:         } else {
    #####:    #####:  235:            imm = new_imm(&table, const_ctx);
    #####:    #####:  236:            imm->block = block;
    #####:    #####:  237:            imm->inst = inst;
    #####:    #####:  238:            imm->uses = new(const_ctx) exec_list();
    #####:    #####:  239:            imm->uses->push_tail(link(const_ctx, &inst->src[i]));
    #####:    #####:  240:            imm->val = val;
    #####:    #####:  241:            imm->uses_by_coissue = could_coissue(devinfo, inst);
    #####:    #####:  242:            imm->must_promote = must_promote_imm(devinfo, inst);
    #####:    #####:  243:            imm->first_use_ip = ip;
    #####:    #####:  244:            imm->last_use_ip = ip;
        -:        -:  245:         }
        -:        -:  246:      }
        -:        -:  247:   }
        -:        -:  248:
        -:        -:  249:   /* Remove constants from the table that don't have enough uses to make them
        -:        -:  250:    * profitable to store in a register.
        -:        -:  251:    */
        5:        5:  252:   for (int i = 0; i < table.len;) {
    #####:    #####:  253:      struct imm *imm = &table.imm[i];
        -:        -:  254:
    #####:    #####:  255:      if (!imm->must_promote && imm->uses_by_coissue < 4) {
    #####:    #####:  256:         table.imm[i] = table.imm[table.len - 1];
    #####:    #####:  257:         table.len--;
    #####:    #####:  258:         continue;
        -:        -:  259:      }
    #####:    #####:  260:      i++;
        -:        -:  261:   }
        5:        5:  262:   if (table.len == 0) {
        5:        5:  263:      ralloc_free(const_ctx);
        5:        5:  264:      return false;
        -:        -:  265:   }
    #####:    #####:  266:   if (cfg->num_blocks != 1)
    #####:    #####:  267:      qsort(table.imm, table.len, sizeof(struct imm), compare);
        -:        -:  268:
        -:        -:  269:   /* Insert MOVs to load the constant values into GRFs. */
    #####:    #####:  270:   fs_reg reg(VGRF, alloc.allocate(1));
    #####:    #####:  271:   reg.stride = 0;
    #####:    #####:  272:   for (int i = 0; i < table.len; i++) {
    #####:    #####:  273:      struct imm *imm = &table.imm[i];
        -:        -:  274:      /* Insert it either before the instruction that generated the immediate
        -:        -:  275:       * or after the last non-control flow instruction of the common ancestor.
        -:        -:  276:       */
    #####:    #####:  277:      exec_node *n = (imm->inst ? imm->inst :
    #####:    #####:  278:                      imm->block->last_non_control_flow_inst()->next);
    #####:    #####:  279:      const fs_builder ibld = bld.at(imm->block, n).exec_all().group(1, 0);
        -:        -:  280:
    #####:    #####:  281:      ibld.MOV(reg, brw_imm_f(imm->val));
    #####:    #####:  282:      imm->nr = reg.nr;
    #####:    #####:  283:      imm->subreg_offset = reg.offset;
        -:        -:  284:
    #####:    #####:  285:      reg.offset += sizeof(float);
    #####:    #####:  286:      if (reg.offset == 8 * sizeof(float)) {
    #####:    #####:  287:         reg.nr = alloc.allocate(1);
    #####:    #####:  288:         reg.offset = 0;
        -:        -:  289:      }
        -:        -:  290:   }
    #####:    #####:  291:   promoted_constants = table.len;
        -:        -:  292:
        -:        -:  293:   /* Rewrite the immediate sources to refer to the new GRFs. */
    #####:    #####:  294:   for (int i = 0; i < table.len; i++) {
    #####:    #####:  295:      foreach_list_typed(reg_link, link, link, table.imm[i].uses) {
    #####:    #####:  296:         fs_reg *reg = link->reg;
    #####:    #####:  297:         reg->file = VGRF;
    #####:    #####:  298:         reg->nr = table.imm[i].nr;
    #####:    #####:  299:         reg->offset = table.imm[i].subreg_offset;
    #####:    #####:  300:         reg->stride = 0;
    #####:    #####:  301:         reg->negate = signbit(reg->f) != signbit(table.imm[i].val);
    #####:    #####:  302:         assert((isnan(reg->f) && isnan(table.imm[i].val)) ||
    #####:    #####:  303:                fabsf(reg->f) == fabs(table.imm[i].val));
        -:        -:  304:      }
        -:        -:  305:   }
        -:        -:  306:
        -:        -:  307:   if (debug) {
        -:        -:  308:      for (int i = 0; i < table.len; i++) {
        -:        -:  309:         struct imm *imm = &table.imm[i];
        -:        -:  310:
        -:        -:  311:         printf("%.3fF - block %3d, reg %3d sub %2d, Uses: (%2d, %2d), "
        -:        -:  312:                "IP: %4d to %4d, length %4d\n",
        -:        -:  313:                imm->val,
        -:        -:  314:                imm->block->num,
        -:        -:  315:                imm->nr,
        -:        -:  316:                imm->subreg_offset,
        -:        -:  317:                imm->must_promote,
        -:        -:  318:                imm->uses_by_coissue,
        -:        -:  319:                imm->first_use_ip,
        -:        -:  320:                imm->last_use_ip,
        -:        -:  321:                imm->last_use_ip - imm->first_use_ip);
        -:        -:  322:      }
        -:        -:  323:   }
        -:        -:  324:
    #####:    #####:  325:   ralloc_free(const_ctx);
    #####:    #####:  326:   invalidate_live_intervals();
        -:        -:  327:
    #####:    #####:  328:   return true;
        3:        3:  329:}

src/intel/brw_fs_copy_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_copy_propagation.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_copy_propagation.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs_copy_propagation.cpp
        -:        -:   25: *
        -:        -:   26: * Support for global copy propagation in two passes: A local pass that does
        -:        -:   27: * intra-block copy (and constant) propagation, and a global pass that uses
        -:        -:   28: * dataflow analysis on the copies available at the end of each block to re-do
        -:        -:   29: * local copy propagation with more copies available.
        -:        -:   30: *
        -:        -:   31: * See Muchnick's Advanced Compiler Design and Implementation, section
        -:        -:   32: * 12.5 (p356).
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:#define ACP_HASH_SIZE 16
        -:        -:   36:
        -:        -:   37:#include "util/bitset.h"
        -:        -:   38:#include "brw_fs.h"
        -:        -:   39:#include "brw_cfg.h"
        -:        -:   40:#include "brw_eu.h"
        -:        -:   41:
        -:        -:   42:namespace { /* avoid conflict with opt_copy_propagation_elements */
        -:        -:   43:struct acp_entry : public exec_node {
        -:        -:   44:   fs_reg dst;
        -:        -:   45:   fs_reg src;
        -:        -:   46:   uint8_t size_written;
        -:        -:   47:   uint8_t size_read;
        -:        -:   48:   enum opcode opcode;
        -:        -:   49:   bool saturate;
        -:        -:   50:};
        -:        -:   51:
        -:        -:   52:struct block_data {
        -:        -:   53:   /**
        -:        -:   54:    * Which entries in the fs_copy_prop_dataflow acp table are live at the
        -:        -:   55:    * start of this block.  This is the useful output of the analysis, since
        -:        -:   56:    * it lets us plug those into the local copy propagation on the second
        -:        -:   57:    * pass.
        -:        -:   58:    */
        -:        -:   59:   BITSET_WORD *livein;
        -:        -:   60:
        -:        -:   61:   /**
        -:        -:   62:    * Which entries in the fs_copy_prop_dataflow acp table are live at the end
        -:        -:   63:    * of this block.  This is done in initial setup from the per-block acps
        -:        -:   64:    * returned by the first local copy prop pass.
        -:        -:   65:    */
        -:        -:   66:   BITSET_WORD *liveout;
        -:        -:   67:
        -:        -:   68:   /**
        -:        -:   69:    * Which entries in the fs_copy_prop_dataflow acp table are generated by
        -:        -:   70:    * instructions in this block which reach the end of the block without
        -:        -:   71:    * being killed.
        -:        -:   72:    */
        -:        -:   73:   BITSET_WORD *copy;
        -:        -:   74:
        -:        -:   75:   /**
        -:        -:   76:    * Which entries in the fs_copy_prop_dataflow acp table are killed over the
        -:        -:   77:    * course of this block.
        -:        -:   78:    */
        -:        -:   79:   BITSET_WORD *kill;
        -:        -:   80:};
        -:        -:   81:
        -:        -:   82:class fs_copy_prop_dataflow
        -:        -:   83:{
        -:        -:   84:public:
        -:        -:   85:   fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg,
        -:        -:   86:                         exec_list *out_acp[ACP_HASH_SIZE]);
        -:        -:   87:
        -:        -:   88:   void setup_initial_values();
        -:        -:   89:   void run();
        -:        -:   90:
        -:        -:   91:   void dump_block_data() const UNUSED;
        -:        -:   92:
        -:        -:   93:   void *mem_ctx;
        -:        -:   94:   cfg_t *cfg;
        -:        -:   95:
        -:        -:   96:   acp_entry **acp;
        -:        -:   97:   int num_acp;
        -:        -:   98:   int bitset_words;
        -:        -:   99:
        -:        -:  100:  struct block_data *bd;
        -:        -:  101:};
        -:        -:  102:} /* anonymous namespace */
        -:        -:  103:
       17:       19:  104:fs_copy_prop_dataflow::fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg,
        -:        -:  105:                                             exec_list *out_acp[ACP_HASH_SIZE])
       17:       19:  106:   : mem_ctx(mem_ctx), cfg(cfg)
        -:        -:  107:{
       17:       19:  108:   bd = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
        -:        -:  109:
       17:       19:  110:   num_acp = 0;
      218:      346:  111:   foreach_block (block, cfg) {
     3417:     5559:  112:      for (int i = 0; i < ACP_HASH_SIZE; i++) {
     3216:     5232:  113:         num_acp += out_acp[block->num][i].length();
        -:        -:  114:      }
        -:        -:  115:   }
        -:        -:  116:
       17:       19:  117:   acp = rzalloc_array(mem_ctx, struct acp_entry *, num_acp);
        -:        -:  118:
       17:       19:  119:   bitset_words = BITSET_WORDS(num_acp);
        -:        -:  120:
       17:       19:  121:   int next_acp = 0;
      218:      346:  122:   foreach_block (block, cfg) {
      201:      327:  123:      bd[block->num].livein = rzalloc_array(bd, BITSET_WORD, bitset_words);
      201:      327:  124:      bd[block->num].liveout = rzalloc_array(bd, BITSET_WORD, bitset_words);
      201:      327:  125:      bd[block->num].copy = rzalloc_array(bd, BITSET_WORD, bitset_words);
      201:      327:  126:      bd[block->num].kill = rzalloc_array(bd, BITSET_WORD, bitset_words);
        -:        -:  127:
     3417:     5559:  128:      for (int i = 0; i < ACP_HASH_SIZE; i++) {
     3413:     5455:  129:         foreach_in_list(acp_entry, entry, &out_acp[block->num][i]) {
      197:      223:  130:            acp[next_acp] = entry;
        -:        -:  131:
        -:        -:  132:            /* opt_copy_propagation_local populates out_acp with copies created
        -:        -:  133:             * in a block which are still live at the end of the block.  This
        -:        -:  134:             * is exactly what we want in the COPY set.
        -:        -:  135:             */
      197:      223:  136:            BITSET_SET(bd[block->num].copy, next_acp);
        -:        -:  137:
      197:      223:  138:            next_acp++;
        -:        -:  139:         }
        -:        -:  140:      }
        -:        -:  141:   }
        -:        -:  142:
       17:       19:  143:   assert(next_acp == num_acp);
        -:        -:  144:
       17:       19:  145:   setup_initial_values();
       17:       19:  146:   run();
       17:       19:  147:}
        -:        -:  148:
        -:        -:  149:/**
        -:        -:  150: * Set up initial values for each of the data flow sets, prior to running
        -:        -:  151: * the fixed-point algorithm.
        -:        -:  152: */
        -:        -:  153:void
       17:       19:  154:fs_copy_prop_dataflow::setup_initial_values()
        -:        -:  155:{
        -:        -:  156:   /* Initialize the COPY and KILL sets. */
      218:      346:  157:   foreach_block (block, cfg) {
     1131:     1566:  158:      foreach_inst_in_block(fs_inst, inst, block) {
      930:     1239:  159:         if (inst->dst.file != VGRF)
      336:      536:  160:            continue;
        -:        -:  161:
        -:        -:  162:         /* Mark ACP entries which are killed by this instruction. */
    15515:    17209:  163:         for (int i = 0; i < num_acp; i++) {
    44763:    49518:  164:            if (regions_overlap(inst->dst, inst->size_written,
    59423:    65721:  165:                                acp[i]->dst, acp[i]->size_written) ||
    29320:    32406:  166:                regions_overlap(inst->dst, inst->size_written,
    29320:    32406:  167:                                acp[i]->src, acp[i]->size_read)) {
      347:      391:  168:               BITSET_SET(bd[block->num].kill, i);
        -:        -:  169:            }
        -:        -:  170:         }
        -:        -:  171:      }
        -:        -:  172:   }
        -:        -:  173:
        -:        -:  174:   /* Populate the initial values for the livein and liveout sets.  For the
        -:        -:  175:    * block at the start of the program, livein = 0 and liveout = copy.
        -:        -:  176:    * For the others, set liveout to 0 (the empty set) and livein to ~0
        -:        -:  177:    * (the universal set).
        -:        -:  178:    */
      218:      346:  179:   foreach_block (block, cfg) {
      201:      327:  180:      if (block->parents.is_empty()) {
       54:       82:  181:         for (int i = 0; i < bitset_words; i++) {
       29:       47:  182:            bd[block->num].livein[i] = 0u;
       29:       47:  183:            bd[block->num].liveout[i] = bd[block->num].copy[i];
        -:        -:  184:         }
        -:        -:  185:      } else {
      396:      652:  186:         for (int i = 0; i < bitset_words; i++) {
      220:      360:  187:            bd[block->num].liveout[i] = 0u;
      220:      360:  188:            bd[block->num].livein[i] = ~0u;
        -:        -:  189:         }
        -:        -:  190:      }
        -:        -:  191:   }
       17:       19:  192:}
        -:        -:  193:
        -:        -:  194:/**
        -:        -:  195: * Walk the set of instructions in the block, marking which entries in the acp
        -:        -:  196: * are killed by the block.
        -:        -:  197: */
        -:        -:  198:void
       93:      141:  199:fs_copy_prop_dataflow::run()
        -:        -:  200:{
        -:        -:  201:   bool progress;
        -:        -:  202:
       93:      141:  203:   do {
       93:      141:  204:      progress = false;
        -:        -:  205:
        -:        -:  206:      /* Update liveout for all blocks. */
     2106:     4242:  207:      foreach_block (block, cfg) {
     2013:     4101:  208:         if (block->parents.is_empty())
      165:      285:  209:            continue;
        -:        -:  210:
     4092:     8244:  211:         for (int i = 0; i < bitset_words; i++) {
     2244:     4428:  212:            const BITSET_WORD old_liveout = bd[block->num].liveout[i];
        -:        -:  213:
     2244:     4428:  214:            bd[block->num].liveout[i] =
     4488:     8856:  215:               bd[block->num].copy[i] | (bd[block->num].livein[i] &
     4488:     8856:  216:                                         ~bd[block->num].kill[i]);
        -:        -:  217:
     2244:     4428:  218:            if (old_liveout != bd[block->num].liveout[i])
      828:     1294:  219:               progress = true;
        -:        -:  220:         }
        -:        -:  221:      }
        -:        -:  222:
        -:        -:  223:      /* Update livein for all blocks.  If a copy is live out of all parent
        -:        -:  224:       * blocks, it's live coming in to this block.
        -:        -:  225:       */
     2106:     4242:  226:      foreach_block (block, cfg) {
     2013:     4101:  227:         if (block->parents.is_empty())
      165:      285:  228:            continue;
        -:        -:  229:
     4092:     8244:  230:         for (int i = 0; i < bitset_words; i++) {
     2244:     4428:  231:            const BITSET_WORD old_livein = bd[block->num].livein[i];
        -:        -:  232:
     2244:     4428:  233:            bd[block->num].livein[i] = ~0u;
     5550:    10926:  234:            foreach_list_typed(bblock_link, parent_link, link, &block->parents) {
     3306:     6498:  235:               bblock_t *parent = parent_link->block;
     3306:     6498:  236:               bd[block->num].livein[i] &= bd[parent->num].liveout[i];
        -:        -:  237:            }
        -:        -:  238:
     2244:     4428:  239:            if (old_livein != bd[block->num].livein[i])
      628:      956:  240:               progress = true;
        -:        -:  241:         }
        -:        -:  242:      }
        -:        -:  243:   } while (progress);
       17:       19:  244:}
        -:        -:  245:
        -:        -:  246:void
    #####:    #####:  247:fs_copy_prop_dataflow::dump_block_data() const
        -:        -:  248:{
    #####:    #####:  249:   foreach_block (block, cfg) {
    #####:    #####:  250:      fprintf(stderr, "Block %d [%d, %d] (parents ", block->num,
    #####:    #####:  251:             block->start_ip, block->end_ip);
    #####:    #####:  252:      foreach_list_typed(bblock_link, link, link, &block->parents) {
    #####:    #####:  253:         bblock_t *parent = link->block;
    #####:    #####:  254:         fprintf(stderr, "%d ", parent->num);
        -:        -:  255:      }
    #####:    #####:  256:      fprintf(stderr, "):\n");
    #####:    #####:  257:      fprintf(stderr, "       livein = 0x");
    #####:    #####:  258:      for (int i = 0; i < bitset_words; i++)
    #####:    #####:  259:         fprintf(stderr, "%08x", bd[block->num].livein[i]);
    #####:    #####:  260:      fprintf(stderr, ", liveout = 0x");
    #####:    #####:  261:      for (int i = 0; i < bitset_words; i++)
    #####:    #####:  262:         fprintf(stderr, "%08x", bd[block->num].liveout[i]);
    #####:    #####:  263:      fprintf(stderr, ",\n       copy   = 0x");
    #####:    #####:  264:      for (int i = 0; i < bitset_words; i++)
    #####:    #####:  265:         fprintf(stderr, "%08x", bd[block->num].copy[i]);
    #####:    #####:  266:      fprintf(stderr, ", kill    = 0x");
    #####:    #####:  267:      for (int i = 0; i < bitset_words; i++)
    #####:    #####:  268:         fprintf(stderr, "%08x", bd[block->num].kill[i]);
    #####:    #####:  269:      fprintf(stderr, "\n");
        -:        -:  270:   }
    #####:    #####:  271:}
        -:        -:  272:
        -:        -:  273:static bool
    #####:    #####:  274:is_logic_op(enum opcode opcode)
        -:        -:  275:{
    #####:    #####:  276:   return (opcode == BRW_OPCODE_AND ||
    #####:    #####:  277:           opcode == BRW_OPCODE_OR  ||
    #####:    #####:  278:           opcode == BRW_OPCODE_XOR ||
    #####:    #####:  279:           opcode == BRW_OPCODE_NOT);
        -:        -:  280:}
        -:        -:  281:
        -:        -:  282:static bool
       38:       38:  283:can_take_stride(fs_inst *inst, unsigned arg, unsigned stride,
        -:        -:  284:                const gen_device_info *devinfo)
        -:        -:  285:{
       38:       38:  286:   if (stride > 4)
    #####:    #####:  287:      return false;
        -:        -:  288:
        -:        -:  289:   /* 3-source instructions can only be Align16, which restricts what strides
        -:        -:  290:    * they can take. They can only take a stride of 1 (the usual case), or 0
        -:        -:  291:    * with a special "repctrl" bit. But the repctrl bit doesn't work for
        -:        -:  292:    * 64-bit datatypes, so if the source type is 64-bit then only a stride of
        -:        -:  293:    * 1 is allowed. From the Broadwell PRM, Volume 7 "3D Media GPGPU", page
        -:        -:  294:    * 944:
        -:        -:  295:    *
        -:        -:  296:    *    This is applicable to 32b datatypes and 16b datatype. 64b datatypes
        -:        -:  297:    *    cannot use the replicate control.
        -:        -:  298:    */
       38:       38:  299:   if (inst->is_3src(devinfo)) {
       10:       10:  300:      if (type_sz(inst->src[arg].type) > 4)
    #####:    #####:  301:         return stride == 1;
        -:        -:  302:      else
       10:       10:  303:         return stride == 1 || stride == 0;
        -:        -:  304:   }
        -:        -:  305:
        -:        -:  306:   /* From the Broadwell PRM, Volume 2a "Command Reference - Instructions",
        -:        -:  307:    * page 391 ("Extended Math Function"):
        -:        -:  308:    *
        -:        -:  309:    *     The following restrictions apply for align1 mode: Scalar source is
        -:        -:  310:    *     supported. Source and destination horizontal stride must be the
        -:        -:  311:    *     same.
        -:        -:  312:    *
        -:        -:  313:    * From the Haswell PRM Volume 2b "Command Reference - Instructions", page
        -:        -:  314:    * 134 ("Extended Math Function"):
        -:        -:  315:    *
        -:        -:  316:    *    Scalar source is supported. Source and destination horizontal stride
        -:        -:  317:    *    must be 1.
        -:        -:  318:    *
        -:        -:  319:    * and similar language exists for IVB and SNB. Pre-SNB, math instructions
        -:        -:  320:    * are sends, so the sources are moved to MRF's and there are no
        -:        -:  321:    * restrictions.
        -:        -:  322:    */
       28:       28:  323:   if (inst->is_math()) {
    #####:    #####:  324:      if (devinfo->gen == 6 || devinfo->gen == 7) {
    #####:    #####:  325:         assert(inst->dst.stride == 1);
    #####:    #####:  326:         return stride == 1 || stride == 0;
    #####:    #####:  327:      } else if (devinfo->gen >= 8) {
    #####:    #####:  328:         return stride == inst->dst.stride || stride == 0;
        -:        -:  329:      }
        -:        -:  330:   }
        -:        -:  331:
       28:       28:  332:   return true;
        -:        -:  333:}
        -:        -:  334:
        -:        -:  335:bool
      192:      256:  336:fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
        -:        -:  337:{
      192:      256:  338:   if (inst->src[arg].file != VGRF)
        3:        3:  339:      return false;
        -:        -:  340:
      189:      253:  341:   if (entry->src.file == IMM)
       19:       56:  342:      return false;
      277:      334:  343:   assert(entry->src.file == VGRF || entry->src.file == UNIFORM ||
      170:      197:  344:          entry->src.file == ATTR);
        -:        -:  345:
      170:      197:  346:   if (entry->opcode == SHADER_OPCODE_LOAD_PAYLOAD &&
    #####:    #####:  347:       inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD)
    #####:    #####:  348:      return false;
        -:        -:  349:
      170:      197:  350:   assert(entry->dst.file == VGRF);
      170:      197:  351:   if (inst->src[arg].nr != entry->dst.nr)
       57:       76:  352:      return false;
        -:        -:  353:
        -:        -:  354:   /* Bail if inst is reading a range that isn't contained in the range
        -:        -:  355:    * that entry is writing.
        -:        -:  356:    */
      113:      121:  357:   if (!region_contained_in(inst->src[arg], inst->size_read(arg),
      113:      121:  358:                            entry->dst, entry->size_written))
       50:       52:  359:      return false;
        -:        -:  360:
        -:        -:  361:   /* we can't generally copy-propagate UD negations because we
        -:        -:  362:    * can end up accessing the resulting values as signed integers
        -:        -:  363:    * instead. See also resolve_ud_negate() and comment in
        -:        -:  364:    * fs_generator::generate_code.
        -:        -:  365:    */
       63:       69:  366:   if (entry->src.type == BRW_REGISTER_TYPE_UD &&
        -:        -:  367:       entry->src.negate)
    #####:    #####:  368:      return false;
        -:        -:  369:
       63:       69:  370:   bool has_source_modifiers = entry->src.abs || entry->src.negate;
        -:        -:  371:
      134:      146:  372:   if ((has_source_modifiers || entry->src.file == UNIFORM ||
      126:      138:  373:        !entry->src.is_contiguous()) &&
       55:       61:  374:       !inst->can_do_source_mods(devinfo))
       25:       31:  375:      return false;
        -:        -:  376:
       38:       38:  377:   if (has_source_modifiers &&
    #####:    #####:  378:       inst->opcode == SHADER_OPCODE_GEN4_SCRATCH_WRITE)
    #####:    #####:  379:      return false;
        -:        -:  380:
        -:        -:  381:   /* Bail if the result of composing both strides would exceed the
        -:        -:  382:    * hardware limit.
        -:        -:  383:    */
       38:       38:  384:   if (!can_take_stride(inst, arg, entry->src.stride * inst->src[arg].stride,
       38:       38:  385:                        devinfo))
    #####:    #####:  386:      return false;
        -:        -:  387:
        -:        -:  388:   /* Bail if the instruction type is larger than the execution type of the
        -:        -:  389:    * copy, what implies that each channel is reading multiple channels of the
        -:        -:  390:    * destination of the copy, and simply replacing the sources would give a
        -:        -:  391:    * program with different semantics.
        -:        -:  392:    */
       38:       38:  393:   if (type_sz(entry->dst.type) < type_sz(inst->src[arg].type))
    #####:    #####:  394:      return false;
        -:        -:  395:
        -:        -:  396:   /* Bail if the result of composing both strides cannot be expressed
        -:        -:  397:    * as another stride. This avoids, for example, trying to transform
        -:        -:  398:    * this:
        -:        -:  399:    *
        -:        -:  400:    *     MOV (8) rX<1>UD rY<0;1,0>UD
        -:        -:  401:    *     FOO (8) ...     rX<8;8,1>UW
        -:        -:  402:    *
        -:        -:  403:    * into this:
        -:        -:  404:    *
        -:        -:  405:    *     FOO (8) ...     rY<0;1,0>UW
        -:        -:  406:    *
        -:        -:  407:    * Which would have different semantics.
        -:        -:  408:    */
       68:       68:  409:   if (entry->src.stride != 1 &&
       60:       60:  410:       (inst->src[arg].stride *
       60:       60:  411:        type_sz(inst->src[arg].type)) % type_sz(entry->src.type) != 0)
    #####:    #####:  412:      return false;
        -:        -:  413:
        -:        -:  414:   /* Since semantics of source modifiers are type-dependent we need to
        -:        -:  415:    * ensure that the meaning of the instruction remains the same if we
        -:        -:  416:    * change the type. If the sizes of the types are different the new
        -:        -:  417:    * instruction will read a different amount of data than the original
        -:        -:  418:    * and the semantics will always be different.
        -:        -:  419:    */
       38:       38:  420:   if (has_source_modifiers &&
       38:       38:  421:       entry->dst.type != inst->src[arg].type &&
    #####:    #####:  422:       (!inst->can_change_types() ||
    #####:    #####:  423:        type_sz(entry->dst.type) != type_sz(inst->src[arg].type)))
    #####:    #####:  424:      return false;
        -:        -:  425:
       38:       38:  426:   if (devinfo->gen >= 8 && (entry->src.negate || entry->src.abs) &&
    #####:    #####:  427:       is_logic_op(inst->opcode)) {
    #####:    #####:  428:      return false;
        -:        -:  429:   }
        -:        -:  430:
       38:       38:  431:   if (entry->saturate) {
    #####:    #####:  432:      switch(inst->opcode) {
        -:        -:  433:      case BRW_OPCODE_SEL:
    #####:    #####:  434:         if ((inst->conditional_mod != BRW_CONDITIONAL_GE &&
    #####:    #####:  435:              inst->conditional_mod != BRW_CONDITIONAL_L) ||
    #####:    #####:  436:             inst->src[1].file != IMM ||
    #####:    #####:  437:             inst->src[1].f < 0.0 ||
    #####:    #####:  438:             inst->src[1].f > 1.0) {
    #####:    #####:  439:            return false;
        -:        -:  440:         }
    #####:    #####:  441:         break;
        -:        -:  442:      default:
    #####:    #####:  443:         return false;
        -:        -:  444:      }
        -:        -:  445:   }
        -:        -:  446:
       38:       38:  447:   inst->src[arg].file = entry->src.file;
       38:       38:  448:   inst->src[arg].nr = entry->src.nr;
       38:       38:  449:   inst->src[arg].stride *= entry->src.stride;
       38:       38:  450:   inst->saturate = inst->saturate || entry->saturate;
        -:        -:  451:
        -:        -:  452:   /* Compute the offset of inst->src[arg] relative to entry->dst */
       38:       38:  453:   const unsigned rel_offset = inst->src[arg].offset - entry->dst.offset;
        -:        -:  454:
        -:        -:  455:   /* Compute the first component of the copy that the instruction is
        -:        -:  456:    * reading, and the base byte offset within that component.
        -:        -:  457:    */
       38:       38:  458:   assert(entry->dst.offset % REG_SIZE == 0 && entry->dst.stride == 1);
       38:       38:  459:   const unsigned component = rel_offset / type_sz(entry->dst.type);
       38:       38:  460:   const unsigned suboffset = rel_offset % type_sz(entry->dst.type);
        -:        -:  461:
        -:        -:  462:   /* Calculate the byte offset at the origin of the copy of the given
        -:        -:  463:    * component and suboffset.
        -:        -:  464:    */
       38:       38:  465:   inst->src[arg].offset = suboffset +
       76:       76:  466:      component * entry->src.stride * type_sz(entry->src.type) +
       76:       76:  467:      entry->src.offset;
        -:        -:  468:
       38:       38:  469:   if (has_source_modifiers) {
    #####:    #####:  470:      if (entry->dst.type != inst->src[arg].type) {
        -:        -:  471:         /* We are propagating source modifiers from a MOV with a different
        -:        -:  472:          * type.  If we got here, then we can just change the source and
        -:        -:  473:          * destination types of the instruction and keep going.
        -:        -:  474:          */
    #####:    #####:  475:         assert(inst->can_change_types());
    #####:    #####:  476:         for (int i = 0; i < inst->sources; i++) {
    #####:    #####:  477:            inst->src[i].type = entry->dst.type;
        -:        -:  478:         }
    #####:    #####:  479:         inst->dst.type = entry->dst.type;
        -:        -:  480:      }
        -:        -:  481:
    #####:    #####:  482:      if (!inst->src[arg].abs) {
    #####:    #####:  483:         inst->src[arg].abs = entry->src.abs;
    #####:    #####:  484:         inst->src[arg].negate ^= entry->src.negate;
        -:        -:  485:      }
        -:        -:  486:   }
        -:        -:  487:
       38:       38:  488:   return true;
        -:        -:  489:}
        -:        -:  490:
        -:        -:  491:
        -:        -:  492:bool
      216:      286:  493:fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry)
        -:        -:  494:{
      216:      286:  495:   bool progress = false;
        -:        -:  496:
      216:      286:  497:   if (entry->src.file != IMM)
      172:      199:  498:      return false;
       44:       87:  499:   if (type_sz(entry->src.type) > 4)
    #####:    #####:  500:      return false;
       44:       87:  501:   if (entry->saturate)
    #####:    #####:  502:      return false;
        -:        -:  503:
      118:      243:  504:   for (int i = inst->sources - 1; i >= 0; i--) {
       74:      156:  505:      if (inst->src[i].file != VGRF)
       62:      150:  506:         continue;
        -:        -:  507:
       62:      120:  508:      assert(entry->dst.file == VGRF);
       62:      120:  509:      if (inst->src[i].nr != entry->dst.nr)
       38:       78:  510:         continue;
        -:        -:  511:
        -:        -:  512:      /* Bail if inst is reading a range that isn't contained in the range
        -:        -:  513:       * that entry is writing.
        -:        -:  514:       */
       24:       42:  515:      if (!region_contained_in(inst->src[i], inst->size_read(i),
       24:       42:  516:                               entry->dst, entry->size_written))
    #####:    #####:  517:         continue;
        -:        -:  518:
        -:        -:  519:      /* If the type sizes don't match each channel of the instruction is
        -:        -:  520:       * either extracting a portion of the constant (which could be handled
        -:        -:  521:       * with some effort but the code below doesn't) or reading multiple
        -:        -:  522:       * channels of the source at once.
        -:        -:  523:       */
       24:       42:  524:      if (type_sz(inst->src[i].type) != type_sz(entry->dst.type))
    #####:    #####:  525:         continue;
        -:        -:  526:
       24:       42:  527:      fs_reg val = entry->src;
       24:       42:  528:      val.type = inst->src[i].type;
        -:        -:  529:
       24:       42:  530:      if (inst->src[i].abs) {
    #####:    #####:  531:         if ((devinfo->gen >= 8 && is_logic_op(inst->opcode)) ||
    #####:    #####:  532:             !brw_abs_immediate(val.type, &val.as_brw_reg())) {
    #####:    #####:  533:            continue;
        -:        -:  534:         }
        -:        -:  535:      }
        -:        -:  536:
       24:       42:  537:      if (inst->src[i].negate) {
    #####:        8:  538:         if ((devinfo->gen >= 8 && is_logic_op(inst->opcode)) ||
    #####:        4:  539:             !brw_negate_immediate(val.type, &val.as_brw_reg())) {
    #####:    #####:  540:            continue;
        -:        -:  541:         }
        -:        -:  542:      }
        -:        -:  543:
       24:       42:  544:      switch (inst->opcode) {
        -:        -:  545:      case BRW_OPCODE_MOV:
        -:        -:  546:      case SHADER_OPCODE_LOAD_PAYLOAD:
        -:        -:  547:      case FS_OPCODE_PACK:
       12:       14:  548:         inst->src[i] = val;
       12:       14:  549:         progress = true;
       12:       14:  550:         break;
        -:        -:  551:
        -:        -:  552:      case SHADER_OPCODE_INT_QUOTIENT:
        -:        -:  553:      case SHADER_OPCODE_INT_REMAINDER:
        -:        -:  554:         /* FINISHME: Promote non-float constants and remove this. */
    #####:    #####:  555:         if (devinfo->gen < 8)
    #####:    #####:  556:            break;
        -:        -:  557:         /* fallthrough */
        -:        -:  558:      case SHADER_OPCODE_POW:
        -:        -:  559:         /* Allow constant propagation into src1 (except on Gen 6 which
        -:        -:  560:          * doesn't support scalar source math), and let constant combining
        -:        -:  561:          * promote the constant on Gen < 8.
        -:        -:  562:          */
    #####:    #####:  563:         if (devinfo->gen == 6)
    #####:    #####:  564:            break;
        -:        -:  565:         /* fallthrough */
        -:        -:  566:      case BRW_OPCODE_BFI1:
        -:        -:  567:      case BRW_OPCODE_ASR:
        -:        -:  568:      case BRW_OPCODE_SHL:
        -:        -:  569:      case BRW_OPCODE_SHR:
        -:        -:  570:      case BRW_OPCODE_SUBB:
    #####:    #####:  571:         if (i == 1) {
    #####:    #####:  572:            inst->src[i] = val;
    #####:    #####:  573:            progress = true;
        -:        -:  574:         }
    #####:    #####:  575:         break;
        -:        -:  576:
        -:        -:  577:      case BRW_OPCODE_MACH:
        -:        -:  578:      case BRW_OPCODE_MUL:
        -:        -:  579:      case SHADER_OPCODE_MULH:
        -:        -:  580:      case BRW_OPCODE_ADD:
        -:        -:  581:      case BRW_OPCODE_OR:
        -:        -:  582:      case BRW_OPCODE_AND:
        -:        -:  583:      case BRW_OPCODE_XOR:
        -:        -:  584:      case BRW_OPCODE_ADDC:
        8:        8:  585:         if (i == 1) {
        8:        8:  586:            inst->src[i] = val;
        8:        8:  587:            progress = true;
    #####:    #####:  588:         } else if (i == 0 && inst->src[1].file != IMM) {
        -:        -:  589:            /* Fit this constant in by commuting the operands.
        -:        -:  590:             * Exception: we can't do this for 32-bit integer MUL/MACH
        -:        -:  591:             * because it's asymmetric.
        -:        -:  592:             *
        -:        -:  593:             * The BSpec says for Broadwell that
        -:        -:  594:             *
        -:        -:  595:             *    "When multiplying DW x DW, the dst cannot be accumulator."
        -:        -:  596:             *
        -:        -:  597:             * Integer MUL with a non-accumulator destination will be lowered
        -:        -:  598:             * by lower_integer_multiplication(), so don't restrict it.
        -:        -:  599:             */
    #####:    #####:  600:            if (((inst->opcode == BRW_OPCODE_MUL &&
    #####:    #####:  601:                  inst->dst.is_accumulator()) ||
    #####:    #####:  602:                 inst->opcode == BRW_OPCODE_MACH) &&
    #####:    #####:  603:                (inst->src[1].type == BRW_REGISTER_TYPE_D ||
    #####:    #####:  604:                 inst->src[1].type == BRW_REGISTER_TYPE_UD))
    #####:    #####:  605:               break;
    #####:    #####:  606:            inst->src[0] = inst->src[1];
    #####:    #####:  607:            inst->src[1] = val;
    #####:    #####:  608:            progress = true;
        -:        -:  609:         }
        8:        8:  610:         break;
        -:        -:  611:
        -:        -:  612:      case BRW_OPCODE_CMP:
        -:        -:  613:      case BRW_OPCODE_IF:
        4:       20:  614:         if (i == 1) {
        4:        8:  615:            inst->src[i] = val;
        4:        8:  616:            progress = true;
    #####:       12:  617:         } else if (i == 0 && inst->src[1].file != IMM) {
        -:        -:  618:            enum brw_conditional_mod new_cmod;
        -:        -:  619:
    #####:    #####:  620:            new_cmod = brw_swap_cmod(inst->conditional_mod);
    #####:    #####:  621:            if (new_cmod != BRW_CONDITIONAL_NONE) {
        -:        -:  622:               /* Fit this constant in by swapping the operands and
        -:        -:  623:                * flipping the test
        -:        -:  624:                */
    #####:    #####:  625:               inst->src[0] = inst->src[1];
    #####:    #####:  626:               inst->src[1] = val;
    #####:    #####:  627:               inst->conditional_mod = new_cmod;
    #####:    #####:  628:               progress = true;
        -:        -:  629:            }
        -:        -:  630:         }
        4:       20:  631:         break;
        -:        -:  632:
        -:        -:  633:      case BRW_OPCODE_SEL:
    #####:    #####:  634:         if (i == 1) {
    #####:    #####:  635:            inst->src[i] = val;
    #####:    #####:  636:            progress = true;
    #####:    #####:  637:         } else if (i == 0 && inst->src[1].file != IMM) {
    #####:    #####:  638:            inst->src[0] = inst->src[1];
    #####:    #####:  639:            inst->src[1] = val;
        -:        -:  640:
        -:        -:  641:            /* If this was predicated, flipping operands means
        -:        -:  642:             * we also need to flip the predicate.
        -:        -:  643:             */
    #####:    #####:  644:            if (inst->conditional_mod == BRW_CONDITIONAL_NONE) {
        -:        -:  645:               inst->predicate_inverse =
    #####:    #####:  646:                  !inst->predicate_inverse;
        -:        -:  647:            }
    #####:    #####:  648:            progress = true;
        -:        -:  649:         }
    #####:    #####:  650:         break;
        -:        -:  651:
        -:        -:  652:      case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:  653:      case SHADER_OPCODE_UNTYPED_SURFACE_READ:
        -:        -:  654:      case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
        -:        -:  655:      case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:  656:      case SHADER_OPCODE_TYPED_SURFACE_READ:
        -:        -:  657:      case SHADER_OPCODE_TYPED_SURFACE_WRITE:
        -:        -:  658:         /* We only propagate into the surface argument of the
        -:        -:  659:          * instruction. Everything else goes through LOAD_PAYLOAD.
        -:        -:  660:          */
    #####:    #####:  661:         if (i == 1) {
    #####:    #####:  662:            inst->src[i] = val;
    #####:    #####:  663:            progress = true;
        -:        -:  664:         }
    #####:    #####:  665:         break;
        -:        -:  666:
        -:        -:  667:      case FS_OPCODE_FB_WRITE_LOGICAL:
        -:        -:  668:         /* The stencil and omask sources of FS_OPCODE_FB_WRITE_LOGICAL are
        -:        -:  669:          * bit-cast using a strided region so they cannot be immediates.
        -:        -:  670:          */
    #####:    #####:  671:         if (i != FB_WRITE_LOGICAL_SRC_SRC_STENCIL &&
        -:        -:  672:             i != FB_WRITE_LOGICAL_SRC_OMASK) {
    #####:    #####:  673:            inst->src[i] = val;
    #####:    #####:  674:            progress = true;
        -:        -:  675:         }
    #####:    #####:  676:         break;
        -:        -:  677:
        -:        -:  678:      case SHADER_OPCODE_TEX_LOGICAL:
        -:        -:  679:      case SHADER_OPCODE_TXD_LOGICAL:
        -:        -:  680:      case SHADER_OPCODE_TXF_LOGICAL:
        -:        -:  681:      case SHADER_OPCODE_TXL_LOGICAL:
        -:        -:  682:      case SHADER_OPCODE_TXS_LOGICAL:
        -:        -:  683:      case FS_OPCODE_TXB_LOGICAL:
        -:        -:  684:      case SHADER_OPCODE_TXF_CMS_LOGICAL:
        -:        -:  685:      case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
        -:        -:  686:      case SHADER_OPCODE_TXF_UMS_LOGICAL:
        -:        -:  687:      case SHADER_OPCODE_TXF_MCS_LOGICAL:
        -:        -:  688:      case SHADER_OPCODE_LOD_LOGICAL:
        -:        -:  689:      case SHADER_OPCODE_TG4_LOGICAL:
        -:        -:  690:      case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
        -:        -:  691:      case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -:  692:      case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
        -:        -:  693:      case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
        -:        -:  694:      case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
        -:        -:  695:      case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
        -:        -:  696:      case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####:  697:         inst->src[i] = val;
    #####:    #####:  698:         progress = true;
    #####:    #####:  699:         break;
        -:        -:  700:
        -:        -:  701:      case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
        -:        -:  702:      case SHADER_OPCODE_BROADCAST:
    #####:    #####:  703:         inst->src[i] = val;
    #####:    #####:  704:         progress = true;
    #####:    #####:  705:         break;
        -:        -:  706:
        -:        -:  707:      case BRW_OPCODE_MAD:
        -:        -:  708:      case BRW_OPCODE_LRP:
    #####:    #####:  709:         inst->src[i] = val;
    #####:    #####:  710:         progress = true;
    #####:    #####:  711:         break;
        -:        -:  712:
        -:        -:  713:      default:
    #####:    #####:  714:         break;
        -:        -:  715:      }
        -:        -:  716:   }
        -:        -:  717:
       44:       87:  718:   return progress;
        -:        -:  719:}
        -:        -:  720:
        -:        -:  721:static bool
     1860:     2478:  722:can_propagate_from(fs_inst *inst)
        -:        -:  723:{
     2346:     3076:  724:   return (inst->opcode == BRW_OPCODE_MOV &&
      936:     1112:  725:           inst->dst.file == VGRF &&
      632:      708:  726:           ((inst->src[0].file == VGRF &&
      364:      388:  727:             !regions_overlap(inst->dst, inst->size_written,
      632:      708:  728:                              inst->src[0], inst->size_read(0))) ||
      536:      640:  729:            inst->src[0].file == ATTR ||
      432:      520:  730:            inst->src[0].file == UNIFORM ||
      610:      710:  731:            inst->src[0].file == IMM) &&
     2700:     3434:  732:           inst->src[0].type == inst->dst.type &&
     2254:     2924:  733:           !inst->is_partial_write());
        -:        -:  734:}
        -:        -:  735:
        -:        -:  736:/* Walks a basic block and does copy propagation on it using the acp
        -:        -:  737: * list.
        -:        -:  738: */
        -:        -:  739:bool
      402:      654:  740:fs_visitor::opt_copy_propagation_local(void *copy_prop_ctx, bblock_t *block,
        -:        -:  741:                                       exec_list *acp)
        -:        -:  742:{
      402:      654:  743:   bool progress = false;
        -:        -:  744:
     2262:     3132:  745:   foreach_inst_in_block(fs_inst, inst, block) {
        -:        -:  746:      /* Try propagating into this instruction. */
     4216:     5418:  747:      for (int i = 0; i < inst->sources; i++) {
     2356:     2940:  748:         if (inst->src[i].file != VGRF)
      864:     1082:  749:            continue;
        -:        -:  750:
     1708:     2144:  751:         foreach_in_list(acp_entry, entry, &acp[inst->src[i].nr % ACP_HASH_SIZE]) {
      216:      286:  752:            if (try_constant_propagate(inst, entry))
       24:       30:  753:               progress = true;
      192:      256:  754:            else if (try_copy_propagate(inst, i, entry))
       38:       38:  755:               progress = true;
        -:        -:  756:         }
        -:        -:  757:      }
        -:        -:  758:
        -:        -:  759:      /* kill the destination from the ACP */
     1860:     2478:  760:      if (inst->dst.file == VGRF) {
     1363:     1625:  761:         foreach_in_list_safe(acp_entry, entry, &acp[inst->dst.nr % ACP_HASH_SIZE]) {
      175:      219:  762:            if (regions_overlap(entry->dst, entry->size_written,
        -:        -:  763:                                inst->dst, inst->size_written))
    #####:       12:  764:               entry->remove();
        -:        -:  765:         }
        -:        -:  766:
        -:        -:  767:         /* Oops, we only have the chaining hash based on the destination, not
        -:        -:  768:          * the source, so walk across the entire table.
        -:        -:  769:          */
    20196:    23902:  770:         for (int i = 0; i < ACP_HASH_SIZE; i++) {
    21648:    25986:  771:            foreach_in_list_safe(acp_entry, entry, &acp[i]) {
        -:        -:  772:               /* Make sure we kill the entry if this instruction overwrites
        -:        -:  773:                * _any_ of the registers that it reads
        -:        -:  774:                */
     2640:     3490:  775:               if (regions_overlap(entry->src, entry->size_read,
        -:        -:  776:                                   inst->dst, inst->size_written))
    #####:    #####:  777:                  entry->remove();
        -:        -:  778:            }
        -:        -:  779:	 }
        -:        -:  780:      }
        -:        -:  781:
        -:        -:  782:      /* If this instruction's source could potentially be folded into the
        -:        -:  783:       * operand of another instruction, add it to the ACP.
        -:        -:  784:       */
     1860:     2478:  785:      if (can_propagate_from(inst)) {
      394:      446:  786:         acp_entry *entry = ralloc(copy_prop_ctx, acp_entry);
      394:      446:  787:         entry->dst = inst->dst;
      394:      446:  788:         entry->src = inst->src[0];
      394:      446:  789:         entry->size_written = inst->size_written;
      394:      446:  790:         entry->size_read = inst->size_read(0);
      394:      446:  791:         entry->opcode = inst->opcode;
      394:      446:  792:         entry->saturate = inst->saturate;
      394:      446:  793:         acp[entry->dst.nr % ACP_HASH_SIZE].push_tail(entry);
     1476:     2042:  794:      } else if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD &&
       10:       10:  795:                 inst->dst.file == VGRF) {
    #####:    #####:  796:         int offset = 0;
    #####:    #####:  797:         for (int i = 0; i < inst->sources; i++) {
    #####:    #####:  798:            int effective_width = i < inst->header_size ? 8 : inst->exec_size;
    #####:    #####:  799:            assert(effective_width * type_sz(inst->src[i].type) % REG_SIZE == 0);
    #####:    #####:  800:            const unsigned size_written = effective_width *
    #####:    #####:  801:                                          type_sz(inst->src[i].type);
    #####:    #####:  802:            if (inst->src[i].file == VGRF) {
    #####:    #####:  803:               acp_entry *entry = rzalloc(copy_prop_ctx, acp_entry);
    #####:    #####:  804:               entry->dst = byte_offset(inst->dst, offset);
    #####:    #####:  805:               entry->src = inst->src[i];
    #####:    #####:  806:               entry->size_written = size_written;
    #####:    #####:  807:               entry->size_read = inst->size_read(i);
    #####:    #####:  808:               entry->opcode = inst->opcode;
    #####:    #####:  809:               if (!entry->dst.equals(inst->src[i])) {
    #####:    #####:  810:                  acp[entry->dst.nr % ACP_HASH_SIZE].push_tail(entry);
        -:        -:  811:               } else {
    #####:    #####:  812:                  ralloc_free(entry);
        -:        -:  813:               }
        -:        -:  814:            }
    #####:    #####:  815:            offset += size_written;
        -:        -:  816:         }
        -:        -:  817:      }
        -:        -:  818:   }
        -:        -:  819:
      402:      654:  820:   return progress;
        -:        -:  821:}
        -:        -:  822:
        -:        -:  823:bool
       17:       19:  824:fs_visitor::opt_copy_propagation()
        -:        -:  825:{
       17:       19:  826:   bool progress = false;
       17:       19:  827:   void *copy_prop_ctx = ralloc_context(NULL);
       17:       19:  828:   exec_list *out_acp[cfg->num_blocks];
        -:        -:  829:
      218:      346:  830:   for (int i = 0; i < cfg->num_blocks; i++)
      201:      327:  831:      out_acp[i] = new exec_list [ACP_HASH_SIZE];
        -:        -:  832:
        -:        -:  833:   /* First, walk through each block doing local copy propagation and getting
        -:        -:  834:    * the set of copies available at the end of the block.
        -:        -:  835:    */
      218:      346:  836:   foreach_block (block, cfg) {
      201:      327:  837:      progress = opt_copy_propagation_local(copy_prop_ctx, block,
      402:      654:  838:                                            out_acp[block->num]) || progress;
        -:        -:  839:   }
        -:        -:  840:
        -:        -:  841:   /* Do dataflow analysis for those available copies. */
       17:       19:  842:   fs_copy_prop_dataflow dataflow(copy_prop_ctx, cfg, out_acp);
        -:        -:  843:
        -:        -:  844:   /* Next, re-run local copy propagation, this time with the set of copies
        -:        -:  845:    * provided by the dataflow analysis available at the start of a block.
        -:        -:  846:    */
      218:      346:  847:   foreach_block (block, cfg) {
      201:      327:  848:      exec_list in_acp[ACP_HASH_SIZE];
        -:        -:  849:
     4810:     7862:  850:      for (int i = 0; i < dataflow.num_acp; i++) {
     4609:     7535:  851:         if (BITSET_TEST(dataflow.bd[block->num].livein, i)) {
      536:     1148:  852:            struct acp_entry *entry = dataflow.acp[i];
      536:     1148:  853:            in_acp[entry->dst.nr % ACP_HASH_SIZE].push_tail(entry);
        -:        -:  854:         }
        -:        -:  855:      }
        -:        -:  856:
      201:      327:  857:      progress = opt_copy_propagation_local(copy_prop_ctx, block, in_acp) ||
      201:      327:  858:                 progress;
        -:        -:  859:   }
        -:        -:  860:
      218:      346:  861:   for (int i = 0; i < cfg->num_blocks; i++)
      201:      327:  862:      delete [] out_acp[i];
       17:       19:  863:   ralloc_free(copy_prop_ctx);
        -:        -:  864:
       17:       19:  865:   if (progress)
        6:        8:  866:      invalidate_live_intervals();
        -:        -:  867:
       34:       38:  868:   return progress;
        3:        3:  869:}

src/intel/brw_fs.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs.cpp
        -:        -:   25: *
        -:        -:   26: * This file drives the GLSL IR -> LIR translation, contains the
        -:        -:   27: * optimizations on the LIR, and drives the generation of native code
        -:        -:   28: * from the LIR.
        -:        -:   29: */
        -:        -:   30:
        -:        -:   31:#include "main/macros.h"
        -:        -:   32:#include "brw_eu.h"
        -:        -:   33:#include "brw_fs.h"
        -:        -:   34:#include "brw_nir.h"
        -:        -:   35:#include "brw_vec4_gs_visitor.h"
        -:        -:   36:#include "brw_cfg.h"
        -:        -:   37:#include "brw_dead_control_flow.h"
        -:        -:   38:#include "common/gen_debug.h"
        -:        -:   39:#include "compiler/glsl_types.h"
        -:        -:   40:#include "compiler/nir/nir_builder.h"
        -:        -:   41:#include "program/prog_parameter.h"
        -:        -:   42:
        -:        -:   43:using namespace brw;
        -:        -:   44:
        -:        -:   45:static unsigned get_lowered_simd_width(const struct gen_device_info *devinfo,
        -:        -:   46:                                       const fs_inst *inst);
        -:        -:   47:
        -:        -:   48:void
      367:      419:   49:fs_inst::init(enum opcode opcode, uint8_t exec_size, const fs_reg &dst,
        -:        -:   50:              const fs_reg *src, unsigned sources)
        -:        -:   51:{
      367:      419:   52:   memset(this, 0, sizeof(*this));
        -:        -:   53:
      367:      419:   54:   this->src = new fs_reg[MAX2(sources, 3)];
      810:      878:   55:   for (unsigned i = 0; i < sources; i++)
      443:      459:   56:      this->src[i] = src[i];
        -:        -:   57:
      367:      419:   58:   this->opcode = opcode;
      367:      419:   59:   this->dst = dst;
      367:      419:   60:   this->sources = sources;
      367:      419:   61:   this->exec_size = exec_size;
      367:      419:   62:   this->base_mrf = -1;
        -:        -:   63:
      367:      419:   64:   assert(dst.file != IMM && dst.file != UNIFORM);
        -:        -:   65:
      367:      419:   66:   assert(this->exec_size != 0);
        -:        -:   67:
      367:      419:   68:   this->conditional_mod = BRW_CONDITIONAL_NONE;
        -:        -:   69:
        -:        -:   70:   /* This will be the case for almost all instructions. */
      367:      419:   71:   switch (dst.file) {
        -:        -:   72:   case VGRF:
        -:        -:   73:   case ARF:
        -:        -:   74:   case FIXED_GRF:
        -:        -:   75:   case MRF:
        -:        -:   76:   case ATTR:
      291:      303:   77:      this->size_written = dst.component_size(exec_size);
      291:      303:   78:      break;
        -:        -:   79:   case BAD_FILE:
       76:      116:   80:      this->size_written = 0;
       76:      116:   81:      break;
        -:        -:   82:   case IMM:
        -:        -:   83:   case UNIFORM:
    #####:    #####:   84:      unreachable("Invalid destination register file");
        -:        -:   85:   }
        -:        -:   86:
      367:      419:   87:   this->writes_accumulator = false;
      367:      419:   88:}
        -:        -:   89:
    #####:    #####:   90:fs_inst::fs_inst()
        -:        -:   91:{
    #####:    #####:   92:   init(BRW_OPCODE_NOP, 8, dst, NULL, 0);
    #####:    #####:   93:}
        -:        -:   94:
       71:      111:   95:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_size)
        -:        -:   96:{
       71:      111:   97:   init(opcode, exec_size, reg_undef, NULL, 0);
       71:      111:   98:}
        -:        -:   99:
    #####:    #####:  100:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_size, const fs_reg &dst)
        -:        -:  101:{
    #####:    #####:  102:   init(opcode, exec_size, dst, NULL, 0);
    #####:    #####:  103:}
        -:        -:  104:
      201:      209:  105:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_size, const fs_reg &dst,
      201:      209:  106:                 const fs_reg &src0)
        -:        -:  107:{
      201:      209:  108:   const fs_reg src[1] = { src0 };
      201:      209:  109:   init(opcode, exec_size, dst, src, 1);
      201:      209:  110:}
        -:        -:  111:
       73:       77:  112:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_size, const fs_reg &dst,
       73:       77:  113:                 const fs_reg &src0, const fs_reg &src1)
        -:        -:  114:{
       73:       77:  115:   const fs_reg src[2] = { src0, src1 };
       73:       77:  116:   init(opcode, exec_size, dst, src, 2);
       73:       77:  117:}
        -:        -:  118:
       12:       12:  119:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_size, const fs_reg &dst,
       12:       12:  120:                 const fs_reg &src0, const fs_reg &src1, const fs_reg &src2)
        -:        -:  121:{
       12:       12:  122:   const fs_reg src[3] = { src0, src1, src2 };
       12:       12:  123:   init(opcode, exec_size, dst, src, 3);
       12:       12:  124:}
        -:        -:  125:
       10:       10:  126:fs_inst::fs_inst(enum opcode opcode, uint8_t exec_width, const fs_reg &dst,
       10:       10:  127:                 const fs_reg src[], unsigned sources)
        -:        -:  128:{
       10:       10:  129:   init(opcode, exec_width, dst, src, sources);
       10:       10:  130:}
        -:        -:  131:
      407:      459:  132:fs_inst::fs_inst(const fs_inst &that)
        -:        -:  133:{
      407:      459:  134:   memcpy(this, &that, sizeof(that));
        -:        -:  135:
      407:      459:  136:   this->src = new fs_reg[MAX2(that.sources, 3)];
        -:        -:  137:
      938:     1006:  138:   for (unsigned i = 0; i < that.sources; i++)
      531:      547:  139:      this->src[i] = that.src[i];
      407:      459:  140:}
        -:        -:  141:
     1548:     1756:  142:fs_inst::~fs_inst()
        -:        -:  143:{
      774:      878:  144:   delete[] this->src;
      774:      878:  145:}
        -:        -:  146:
        -:        -:  147:void
        5:        5:  148:fs_inst::resize_sources(uint8_t num_sources)
        -:        -:  149:{
        5:        5:  150:   if (this->sources != num_sources) {
        5:        5:  151:      fs_reg *src = new fs_reg[MAX2(num_sources, 3)];
        -:        -:  152:
        5:        5:  153:      for (unsigned i = 0; i < MIN2(this->sources, num_sources); ++i)
    #####:    #####:  154:         src[i] = this->src[i];
        -:        -:  155:
        5:        5:  156:      delete[] this->src;
        5:        5:  157:      this->src = src;
        5:        5:  158:      this->sources = num_sources;
        -:        -:  159:   }
        5:        5:  160:}
        -:        -:  161:
        -:        -:  162:void
    #####:    #####:  163:fs_visitor::VARYING_PULL_CONSTANT_LOAD(const fs_builder &bld,
        -:        -:  164:                                       const fs_reg &dst,
        -:        -:  165:                                       const fs_reg &surf_index,
        -:        -:  166:                                       const fs_reg &varying_offset,
        -:        -:  167:                                       uint32_t const_offset)
        -:        -:  168:{
        -:        -:  169:   /* We have our constant surface use a pitch of 4 bytes, so our index can
        -:        -:  170:    * be any component of a vector, and then we load 4 contiguous
        -:        -:  171:    * components starting from that.
        -:        -:  172:    *
        -:        -:  173:    * We break down the const_offset to a portion added to the variable offset
        -:        -:  174:    * and a portion done using fs_reg::offset, which means that if you have
        -:        -:  175:    * GLSL using something like "uniform vec4 a[20]; gl_FragColor = a[i]",
        -:        -:  176:    * we'll temporarily generate 4 vec4 loads from offset i * 4, and CSE can
        -:        -:  177:    * later notice that those loads are all the same and eliminate the
        -:        -:  178:    * redundant ones.
        -:        -:  179:    */
    #####:    #####:  180:   fs_reg vec4_offset = vgrf(glsl_type::uint_type);
    #####:    #####:  181:   bld.ADD(vec4_offset, varying_offset, brw_imm_ud(const_offset & ~0xf));
        -:        -:  182:
        -:        -:  183:   /* The pull load message will load a vec4 (16 bytes). If we are loading
        -:        -:  184:    * a double this means we are only loading 2 elements worth of data.
        -:        -:  185:    * We also want to use a 32-bit data type for the dst of the load operation
        -:        -:  186:    * so other parts of the driver don't get confused about the size of the
        -:        -:  187:    * result.
        -:        -:  188:    */
    #####:    #####:  189:   fs_reg vec4_result = bld.vgrf(BRW_REGISTER_TYPE_F, 4);
        -:        -:  190:   fs_inst *inst = bld.emit(FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL,
    #####:    #####:  191:                            vec4_result, surf_index, vec4_offset);
    #####:    #####:  192:   inst->size_written = 4 * vec4_result.component_size(inst->exec_size);
        -:        -:  193:
    #####:    #####:  194:   if (type_sz(dst.type) == 8) {
        -:        -:  195:      shuffle_32bit_load_result_to_64bit_data(
    #####:    #####:  196:         bld, retype(vec4_result, dst.type), vec4_result, 2);
        -:        -:  197:   }
        -:        -:  198:
    #####:    #####:  199:   vec4_result.type = dst.type;
    #####:    #####:  200:   bld.MOV(dst, offset(vec4_result, bld,
    #####:    #####:  201:                       (const_offset & 0xf) / type_sz(vec4_result.type)));
    #####:    #####:  202:}
        -:        -:  203:
        -:        -:  204:/**
        -:        -:  205: * A helper for MOV generation for fixing up broken hardware SEND dependency
        -:        -:  206: * handling.
        -:        -:  207: */
        -:        -:  208:void
    #####:    #####:  209:fs_visitor::DEP_RESOLVE_MOV(const fs_builder &bld, int grf)
        -:        -:  210:{
        -:        -:  211:   /* The caller always wants uncompressed to emit the minimal extra
        -:        -:  212:    * dependencies, and to avoid having to deal with aligning its regs to 2.
        -:        -:  213:    */
    #####:    #####:  214:   const fs_builder ubld = bld.annotate("send dependency resolve")
    #####:    #####:  215:                              .half(0);
        -:        -:  216:
    #####:    #####:  217:   ubld.MOV(ubld.null_reg_f(), fs_reg(VGRF, grf, BRW_REGISTER_TYPE_F));
    #####:    #####:  218:}
        -:        -:  219:
        -:        -:  220:bool
    #####:    #####:  221:fs_inst::equals(fs_inst *inst) const
        -:        -:  222:{
    #####:    #####:  223:   return (opcode == inst->opcode &&
    #####:    #####:  224:           dst.equals(inst->dst) &&
    #####:    #####:  225:           src[0].equals(inst->src[0]) &&
    #####:    #####:  226:           src[1].equals(inst->src[1]) &&
    #####:    #####:  227:           src[2].equals(inst->src[2]) &&
    #####:    #####:  228:           saturate == inst->saturate &&
    #####:    #####:  229:           predicate == inst->predicate &&
    #####:    #####:  230:           conditional_mod == inst->conditional_mod &&
    #####:    #####:  231:           mlen == inst->mlen &&
    #####:    #####:  232:           base_mrf == inst->base_mrf &&
    #####:    #####:  233:           target == inst->target &&
    #####:    #####:  234:           eot == inst->eot &&
    #####:    #####:  235:           header_size == inst->header_size &&
    #####:    #####:  236:           shadow_compare == inst->shadow_compare &&
    #####:    #####:  237:           exec_size == inst->exec_size &&
    #####:    #####:  238:           offset == inst->offset);
        -:        -:  239:}
        -:        -:  240:
        -:        -:  241:bool
      285:      425:  242:fs_inst::is_send_from_grf() const
        -:        -:  243:{
      285:      425:  244:   switch (opcode) {
        -:        -:  245:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
        -:        -:  246:   case SHADER_OPCODE_SHADER_TIME_ADD:
        -:        -:  247:   case FS_OPCODE_INTERPOLATE_AT_SAMPLE:
        -:        -:  248:   case FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET:
        -:        -:  249:   case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
        -:        -:  250:   case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:  251:   case SHADER_OPCODE_UNTYPED_SURFACE_READ:
        -:        -:  252:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
        -:        -:  253:   case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:  254:   case SHADER_OPCODE_TYPED_SURFACE_READ:
        -:        -:  255:   case SHADER_OPCODE_TYPED_SURFACE_WRITE:
        -:        -:  256:   case SHADER_OPCODE_URB_WRITE_SIMD8:
        -:        -:  257:   case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
        -:        -:  258:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
        -:        -:  259:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
        -:        -:  260:   case SHADER_OPCODE_URB_READ_SIMD8:
        -:        -:  261:   case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
    #####:    #####:  262:      return true;
        -:        -:  263:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
    #####:    #####:  264:      return src[1].file == VGRF;
        -:        -:  265:   case FS_OPCODE_FB_WRITE:
        -:        -:  266:   case FS_OPCODE_FB_READ:
        5:        5:  267:      return src[0].file == VGRF;
        -:        -:  268:   default:
      280:      420:  269:      if (is_tex())
    #####:    #####:  270:         return src[0].file == VGRF;
        -:        -:  271:
      280:      420:  272:      return false;
        -:        -:  273:   }
        -:        -:  274:}
        -:        -:  275:
        -:        -:  276:/**
        -:        -:  277: * Returns true if this instruction's sources and destinations cannot
        -:        -:  278: * safely be the same register.
        -:        -:  279: *
        -:        -:  280: * In most cases, a register can be written over safely by the same
        -:        -:  281: * instruction that is its last use.  For a single instruction, the
        -:        -:  282: * sources are dereferenced before writing of the destination starts
        -:        -:  283: * (naturally).
        -:        -:  284: *
        -:        -:  285: * However, there are a few cases where this can be problematic:
        -:        -:  286: *
        -:        -:  287: * - Virtual opcodes that translate to multiple instructions in the
        -:        -:  288: *   code generator: if src == dst and one instruction writes the
        -:        -:  289: *   destination before a later instruction reads the source, then
        -:        -:  290: *   src will have been clobbered.
        -:        -:  291: *
        -:        -:  292: * - SIMD16 compressed instructions with certain regioning (see below).
        -:        -:  293: *
        -:        -:  294: * The register allocator uses this information to set up conflicts between
        -:        -:  295: * GRF sources and the destination.
        -:        -:  296: */
        -:        -:  297:bool
      104:      104:  298:fs_inst::has_source_and_destination_hazard() const
        -:        -:  299:{
      104:      104:  300:   switch (opcode) {
        -:        -:  301:   case FS_OPCODE_PACK_HALF_2x16_SPLIT:
        -:        -:  302:      /* Multiple partial writes to the destination */
    #####:    #####:  303:      return true;
        -:        -:  304:   default:
        -:        -:  305:      /* The SIMD16 compressed instruction
        -:        -:  306:       *
        -:        -:  307:       * add(16)      g4<1>F      g4<8,8,1>F   g6<8,8,1>F
        -:        -:  308:       *
        -:        -:  309:       * is actually decoded in hardware as:
        -:        -:  310:       *
        -:        -:  311:       * add(8)       g4<1>F      g4<8,8,1>F   g6<8,8,1>F
        -:        -:  312:       * add(8)       g5<1>F      g5<8,8,1>F   g7<8,8,1>F
        -:        -:  313:       *
        -:        -:  314:       * Which is safe.  However, if we have uniform accesses
        -:        -:  315:       * happening, we get into trouble:
        -:        -:  316:       *
        -:        -:  317:       * add(8)       g4<1>F      g4<0,1,0>F   g6<8,8,1>F
        -:        -:  318:       * add(8)       g5<1>F      g4<0,1,0>F   g7<8,8,1>F
        -:        -:  319:       *
        -:        -:  320:       * Now our destination for the first instruction overwrote the
        -:        -:  321:       * second instruction's src0, and we get garbage for those 8
        -:        -:  322:       * pixels.  There's a similar issue for the pre-gen6
        -:        -:  323:       * pixel_x/pixel_y, which are registers of 16-bit values and thus
        -:        -:  324:       * would get stomped by the first decode as well.
        -:        -:  325:       */
      104:      104:  326:      if (exec_size == 16) {
      105:      105:  327:         for (int i = 0; i < sources; i++) {
      105:      105:  328:            if (src[i].file == VGRF && (src[i].stride == 0 ||
       80:       80:  329:                                        src[i].type == BRW_REGISTER_TYPE_UW ||
       78:       78:  330:                                        src[i].type == BRW_REGISTER_TYPE_W ||
       78:       78:  331:                                        src[i].type == BRW_REGISTER_TYPE_UB ||
       39:       39:  332:                                        src[i].type == BRW_REGISTER_TYPE_B)) {
        2:        2:  333:               return true;
        -:        -:  334:            }
        -:        -:  335:         }
        -:        -:  336:      }
      102:      102:  337:      return false;
        -:        -:  338:   }
        -:        -:  339:}
        -:        -:  340:
        -:        -:  341:bool
        5:        5:  342:fs_inst::is_copy_payload(const brw::simple_allocator &grf_alloc) const
        -:        -:  343:{
        5:        5:  344:   if (this->opcode != SHADER_OPCODE_LOAD_PAYLOAD)
    #####:    #####:  345:      return false;
        -:        -:  346:
        5:        5:  347:   fs_reg reg = this->src[0];
        5:        5:  348:   if (reg.file != VGRF || reg.offset != 0 || reg.stride != 1)
    #####:    #####:  349:      return false;
        -:        -:  350:
        5:        5:  351:   if (grf_alloc.sizes[reg.nr] * REG_SIZE != this->size_written)
    #####:    #####:  352:      return false;
        -:        -:  353:
       23:       23:  354:   for (int i = 0; i < this->sources; i++) {
       20:       20:  355:      reg.type = this->src[i].type;
       20:       20:  356:      if (!this->src[i].equals(reg))
        2:        2:  357:         return false;
        -:        -:  358:
       18:       18:  359:      if (i < this->header_size) {
    #####:    #####:  360:         reg.offset += REG_SIZE;
        -:        -:  361:      } else {
       18:       18:  362:         reg = horiz_offset(reg, this->exec_size);
        -:        -:  363:      }
        -:        -:  364:   }
        -:        -:  365:
        3:        3:  366:   return true;
        -:        -:  367:}
        -:        -:  368:
        -:        -:  369:bool
       55:       61:  370:fs_inst::can_do_source_mods(const struct gen_device_info *devinfo)
        -:        -:  371:{
       55:       61:  372:   if (devinfo->gen == 6 && is_math())
       25:       31:  373:      return false;
        -:        -:  374:
       30:       30:  375:   if (is_send_from_grf())
    #####:    #####:  376:      return false;
        -:        -:  377:
       30:       30:  378:   if (!backend_instruction::can_do_source_mods())
    #####:    #####:  379:      return false;
        -:        -:  380:
       30:       30:  381:   return true;
        -:        -:  382:}
        -:        -:  383:
        -:        -:  384:bool
    #####:    #####:  385:fs_inst::can_change_types() const
        -:        -:  386:{
    #####:    #####:  387:   return dst.type == src[0].type &&
    #####:    #####:  388:          !src[0].abs && !src[0].negate && !saturate &&
    #####:    #####:  389:          (opcode == BRW_OPCODE_MOV ||
    #####:    #####:  390:           (opcode == BRW_OPCODE_SEL &&
    #####:    #####:  391:            dst.type == src[1].type &&
    #####:    #####:  392:            predicate != BRW_PREDICATE_NONE &&
    #####:    #####:  393:            !src[1].abs && !src[1].negate));
        -:        -:  394:}
        -:        -:  395:
        -:        -:  396:bool
      513:      597:  397:fs_inst::has_side_effects() const
        -:        -:  398:{
      513:      597:  399:   return this->eot || backend_instruction::has_side_effects();
        -:        -:  400:}
        -:        -:  401:
        -:        -:  402:void
     4964:     5416:  403:fs_reg::init()
        -:        -:  404:{
     4964:     5416:  405:   memset(this, 0, sizeof(*this));
     4964:     5416:  406:   stride = 1;
     4964:     5416:  407:}
        -:        -:  408:
        -:        -:  409:/** Generic unset register constructor. */
     4752:     5200:  410:fs_reg::fs_reg()
        -:        -:  411:{
     4752:     5200:  412:   init();
     4752:     5200:  413:   this->file = BAD_FILE;
     4752:     5200:  414:}
        -:        -:  415:
      280:      290:  416:fs_reg::fs_reg(struct ::brw_reg reg) :
      280:      290:  417:   backend_reg(reg)
        -:        -:  418:{
      280:      290:  419:   this->offset = 0;
      280:      290:  420:   this->stride = 1;
      335:      345:  421:   if (this->file == IMM &&
      103:      103:  422:       (this->type != BRW_REGISTER_TYPE_V &&
       96:       96:  423:        this->type != BRW_REGISTER_TYPE_UV &&
       48:       48:  424:        this->type != BRW_REGISTER_TYPE_VF)) {
       48:       48:  425:      this->stride = 0;
        -:        -:  426:   }
      280:      290:  427:}
        -:        -:  428:
        -:        -:  429:bool
      765:      877:  430:fs_reg::equals(const fs_reg &r) const
        -:        -:  431:{
     1013:     1209:  432:   return (this->backend_reg::equals(r) &&
     1013:     1209:  433:           stride == r.stride);
        -:        -:  434:}
        -:        -:  435:
        -:        -:  436:bool
     4710:     5564:  437:fs_reg::is_contiguous() const
        -:        -:  438:{
     4710:     5564:  439:   return stride == 1;
        -:        -:  440:}
        -:        -:  441:
        -:        -:  442:unsigned
    94889:   112351:  443:fs_reg::component_size(unsigned width) const
        -:        -:  444:{
   189734:   224642:  445:   const unsigned stride = ((file != ARF && file != FIXED_GRF) ? this->stride :
     4165:     4241:  446:                            hstride == 0 ? 0 :
   189778:   224702:  447:                            1 << (hstride - 1));
    94889:   112351:  448:   return MAX2(width * stride, 1) * type_sz(type);
        -:        -:  449:}
        -:        -:  450:
        -:        -:  451:extern "C" int
       62:       64:  452:type_size_scalar(const struct glsl_type *type)
        -:        -:  453:{
        -:        -:  454:   unsigned int size, i;
        -:        -:  455:
       62:       64:  456:   switch (type->base_type) {
        -:        -:  457:   case GLSL_TYPE_UINT:
        -:        -:  458:   case GLSL_TYPE_INT:
        -:        -:  459:   case GLSL_TYPE_FLOAT:
        -:        -:  460:   case GLSL_TYPE_BOOL:
       49:       51:  461:      return type->components();
        -:        -:  462:   case GLSL_TYPE_DOUBLE:
        -:        -:  463:   case GLSL_TYPE_UINT64:
        -:        -:  464:   case GLSL_TYPE_INT64:
    #####:    #####:  465:      return type->components() * 2;
        -:        -:  466:   case GLSL_TYPE_ARRAY:
       13:       13:  467:      return type_size_scalar(type->fields.array) * type->length;
        -:        -:  468:   case GLSL_TYPE_STRUCT:
    #####:    #####:  469:      size = 0;
    #####:    #####:  470:      for (i = 0; i < type->length; i++) {
    #####:    #####:  471:	 size += type_size_scalar(type->fields.structure[i].type);
        -:        -:  472:      }
    #####:    #####:  473:      return size;
        -:        -:  474:   case GLSL_TYPE_SAMPLER:
        -:        -:  475:      /* Samplers take up no register space, since they're baked in at
        -:        -:  476:       * link time.
        -:        -:  477:       */
    #####:    #####:  478:      return 0;
        -:        -:  479:   case GLSL_TYPE_ATOMIC_UINT:
    #####:    #####:  480:      return 0;
        -:        -:  481:   case GLSL_TYPE_SUBROUTINE:
    #####:    #####:  482:      return 1;
        -:        -:  483:   case GLSL_TYPE_IMAGE:
    #####:    #####:  484:      return BRW_IMAGE_PARAM_SIZE;
        -:        -:  485:   case GLSL_TYPE_VOID:
        -:        -:  486:   case GLSL_TYPE_ERROR:
        -:        -:  487:   case GLSL_TYPE_INTERFACE:
        -:        -:  488:   case GLSL_TYPE_FUNCTION:
    #####:    #####:  489:      unreachable("not reached");
        -:        -:  490:   }
        -:        -:  491:
    #####:    #####:  492:   return 0;
        -:        -:  493:}
        -:        -:  494:
        -:        -:  495:/**
        -:        -:  496: * Create a MOV to read the timestamp register.
        -:        -:  497: *
        -:        -:  498: * The caller is responsible for emitting the MOV.  The return value is
        -:        -:  499: * the destination of the MOV, with extra parameters set.
        -:        -:  500: */
        -:        -:  501:fs_reg
    #####:    #####:  502:fs_visitor::get_timestamp(const fs_builder &bld)
        -:        -:  503:{
    #####:    #####:  504:   assert(devinfo->gen >= 7);
        -:        -:  505:
        -:        -:  506:   fs_reg ts = fs_reg(retype(brw_vec4_reg(BRW_ARCHITECTURE_REGISTER_FILE,
        -:        -:  507:                                          BRW_ARF_TIMESTAMP,
        -:        -:  508:                                          0),
    #####:    #####:  509:                             BRW_REGISTER_TYPE_UD));
        -:        -:  510:
    #####:    #####:  511:   fs_reg dst = fs_reg(VGRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD);
        -:        -:  512:
        -:        -:  513:   /* We want to read the 3 fields we care about even if it's not enabled in
        -:        -:  514:    * the dispatch.
        -:        -:  515:    */
    #####:    #####:  516:   bld.group(4, 0).exec_all().MOV(dst, ts);
        -:        -:  517:
    #####:    #####:  518:   return dst;
        -:        -:  519:}
        -:        -:  520:
        -:        -:  521:void
    #####:    #####:  522:fs_visitor::emit_shader_time_begin()
        -:        -:  523:{
        -:        -:  524:   /* We want only the low 32 bits of the timestamp.  Since it's running
        -:        -:  525:    * at the GPU clock rate of ~1.2ghz, it will roll over every ~3 seconds,
        -:        -:  526:    * which is plenty of time for our purposes.  It is identical across the
        -:        -:  527:    * EUs, but since it's tracking GPU core speed it will increment at a
        -:        -:  528:    * varying rate as render P-states change.
        -:        -:  529:    */
    #####:    #####:  530:   shader_start_time = component(
    #####:    #####:  531:      get_timestamp(bld.annotate("shader time start")), 0);
    #####:    #####:  532:}
        -:        -:  533:
        -:        -:  534:void
    #####:    #####:  535:fs_visitor::emit_shader_time_end()
        -:        -:  536:{
        -:        -:  537:   /* Insert our code just before the final SEND with EOT. */
    #####:    #####:  538:   exec_node *end = this->instructions.get_tail();
    #####:    #####:  539:   assert(end && ((fs_inst *) end)->eot);
    #####:    #####:  540:   const fs_builder ibld = bld.annotate("shader time end")
    #####:    #####:  541:                              .exec_all().at(NULL, end);
    #####:    #####:  542:   const fs_reg timestamp = get_timestamp(ibld);
        -:        -:  543:
        -:        -:  544:   /* We only use the low 32 bits of the timestamp - see
        -:        -:  545:    * emit_shader_time_begin()).
        -:        -:  546:    *
        -:        -:  547:    * We could also check if render P-states have changed (or anything
        -:        -:  548:    * else that might disrupt timing) by setting smear to 2 and checking if
        -:        -:  549:    * that field is != 0.
        -:        -:  550:    */
    #####:    #####:  551:   const fs_reg shader_end_time = component(timestamp, 0);
        -:        -:  552:
        -:        -:  553:   /* Check that there weren't any timestamp reset events (assuming these
        -:        -:  554:    * were the only two timestamp reads that happened).
        -:        -:  555:    */
    #####:    #####:  556:   const fs_reg reset = component(timestamp, 2);
    #####:    #####:  557:   set_condmod(BRW_CONDITIONAL_Z,
    #####:    #####:  558:               ibld.AND(ibld.null_reg_ud(), reset, brw_imm_ud(1u)));
    #####:    #####:  559:   ibld.IF(BRW_PREDICATE_NORMAL);
        -:        -:  560:
    #####:    #####:  561:   fs_reg start = shader_start_time;
    #####:    #####:  562:   start.negate = true;
    #####:    #####:  563:   const fs_reg diff = component(fs_reg(VGRF, alloc.allocate(1),
        -:        -:  564:                                        BRW_REGISTER_TYPE_UD),
    #####:    #####:  565:                                 0);
    #####:    #####:  566:   const fs_builder cbld = ibld.group(1, 0);
    #####:    #####:  567:   cbld.group(1, 0).ADD(diff, start, shader_end_time);
        -:        -:  568:
        -:        -:  569:   /* If there were no instructions between the two timestamp gets, the diff
        -:        -:  570:    * is 2 cycles.  Remove that overhead, so I can forget about that when
        -:        -:  571:    * trying to determine the time taken for single instructions.
        -:        -:  572:    */
    #####:    #####:  573:   cbld.ADD(diff, diff, brw_imm_ud(-2u));
    #####:    #####:  574:   SHADER_TIME_ADD(cbld, 0, diff);
    #####:    #####:  575:   SHADER_TIME_ADD(cbld, 1, brw_imm_ud(1u));
    #####:    #####:  576:   ibld.emit(BRW_OPCODE_ELSE);
    #####:    #####:  577:   SHADER_TIME_ADD(cbld, 2, brw_imm_ud(1u));
    #####:    #####:  578:   ibld.emit(BRW_OPCODE_ENDIF);
    #####:    #####:  579:}
        -:        -:  580:
        -:        -:  581:void
    #####:    #####:  582:fs_visitor::SHADER_TIME_ADD(const fs_builder &bld,
        -:        -:  583:                            int shader_time_subindex,
        -:        -:  584:                            fs_reg value)
        -:        -:  585:{
    #####:    #####:  586:   int index = shader_time_index * 3 + shader_time_subindex;
    #####:    #####:  587:   struct brw_reg offset = brw_imm_d(index * BRW_SHADER_TIME_STRIDE);
        -:        -:  588:
    #####:    #####:  589:   fs_reg payload;
    #####:    #####:  590:   if (dispatch_width == 8)
    #####:    #####:  591:      payload = vgrf(glsl_type::uvec2_type);
        -:        -:  592:   else
    #####:    #####:  593:      payload = vgrf(glsl_type::uint_type);
        -:        -:  594:
    #####:    #####:  595:   bld.emit(SHADER_OPCODE_SHADER_TIME_ADD, fs_reg(), payload, offset, value);
    #####:    #####:  596:}
        -:        -:  597:
        -:        -:  598:void
    #####:    #####:  599:fs_visitor::vfail(const char *format, va_list va)
        -:        -:  600:{
        -:        -:  601:   char *msg;
        -:        -:  602:
    #####:    #####:  603:   if (failed)
    #####:    #####:  604:      return;
        -:        -:  605:
    #####:    #####:  606:   failed = true;
        -:        -:  607:
    #####:    #####:  608:   msg = ralloc_vasprintf(mem_ctx, format, va);
    #####:    #####:  609:   msg = ralloc_asprintf(mem_ctx, "%s compile failed: %s\n", stage_abbrev, msg);
        -:        -:  610:
    #####:    #####:  611:   this->fail_msg = msg;
        -:        -:  612:
    #####:    #####:  613:   if (debug_enabled) {
    #####:    #####:  614:      fprintf(stderr, "%s",  msg);
        -:        -:  615:   }
        -:        -:  616:}
        -:        -:  617:
        -:        -:  618:void
    #####:    #####:  619:fs_visitor::fail(const char *format, ...)
        -:        -:  620:{
        -:        -:  621:   va_list va;
        -:        -:  622:
    #####:    #####:  623:   va_start(va, format);
    #####:    #####:  624:   vfail(format, va);
    #####:    #####:  625:   va_end(va);
    #####:    #####:  626:}
        -:        -:  627:
        -:        -:  628:/**
        -:        -:  629: * Mark this program as impossible to compile with dispatch width greater
        -:        -:  630: * than n.
        -:        -:  631: *
        -:        -:  632: * During the SIMD8 compile (which happens first), we can detect and flag
        -:        -:  633: * things that are unsupported in SIMD16+ mode, so the compiler can skip the
        -:        -:  634: * SIMD16+ compile altogether.
        -:        -:  635: *
        -:        -:  636: * During a compile of dispatch width greater than n (if one happens anyway),
        -:        -:  637: * this just calls fail().
        -:        -:  638: */
        -:        -:  639:void
    #####:    #####:  640:fs_visitor::limit_dispatch_width(unsigned n, const char *msg)
        -:        -:  641:{
    #####:    #####:  642:   if (dispatch_width > n) {
    #####:    #####:  643:      fail("%s", msg);
        -:        -:  644:   } else {
    #####:    #####:  645:      max_dispatch_width = n;
    #####:    #####:  646:      compiler->shader_perf_log(log_data,
        -:        -:  647:                                "Shader dispatch width limited to SIMD%d: %s",
    #####:    #####:  648:                                n, msg);
        -:        -:  649:   }
    #####:    #####:  650:}
        -:        -:  651:
        -:        -:  652:/**
        -:        -:  653: * Returns true if the instruction has a flag that means it won't
        -:        -:  654: * update an entire destination register.
        -:        -:  655: *
        -:        -:  656: * For example, dead code elimination and live variable analysis want to know
        -:        -:  657: * when a write to a variable screens off any preceding values that were in
        -:        -:  658: * it.
        -:        -:  659: */
        -:        -:  660:bool
     4577:     5415:  661:fs_inst::is_partial_write() const
        -:        -:  662:{
     9274:    10974:  663:   return ((this->predicate && this->opcode != BRW_OPCODE_SEL) ||
     9154:    10830:  664:           (this->exec_size * type_sz(this->dst.type)) < 32 ||
    13731:    16245:  665:           !this->dst.is_contiguous() ||
     9154:    10830:  666:           this->dst.offset % REG_SIZE != 0);
        -:        -:  667:}
        -:        -:  668:
        -:        -:  669:unsigned
    94842:   112510:  670:fs_inst::components_read(unsigned i) const
        -:        -:  671:{
        -:        -:  672:   /* Return zero if the source is not present. */
    94842:   112510:  673:   if (src[i].file == BAD_FILE)
    #####:    #####:  674:      return 0;
        -:        -:  675:
    94842:   112510:  676:   switch (opcode) {
        -:        -:  677:   case FS_OPCODE_LINTERP:
     1032:     1032:  678:      if (i == 0)
     1032:     1032:  679:         return 2;
        -:        -:  680:      else
    #####:    #####:  681:         return 1;
        -:        -:  682:
        -:        -:  683:   case FS_OPCODE_PIXEL_X:
        -:        -:  684:   case FS_OPCODE_PIXEL_Y:
     1120:     1288:  685:      assert(i == 0);
     1120:     1288:  686:      return 2;
        -:        -:  687:
        -:        -:  688:   case FS_OPCODE_FB_WRITE_LOGICAL:
     2088:     2378:  689:      assert(src[FB_WRITE_LOGICAL_SRC_COMPONENTS].file == IMM);
        -:        -:  690:      /* First/second FB write color. */
     2088:     2378:  691:      if (i < 2)
     2088:     2378:  692:         return src[FB_WRITE_LOGICAL_SRC_COMPONENTS].ud;
        -:        -:  693:      else
    #####:    #####:  694:         return 1;
        -:        -:  695:
        -:        -:  696:   case SHADER_OPCODE_TEX_LOGICAL:
        -:        -:  697:   case SHADER_OPCODE_TXD_LOGICAL:
        -:        -:  698:   case SHADER_OPCODE_TXF_LOGICAL:
        -:        -:  699:   case SHADER_OPCODE_TXL_LOGICAL:
        -:        -:  700:   case SHADER_OPCODE_TXS_LOGICAL:
        -:        -:  701:   case FS_OPCODE_TXB_LOGICAL:
        -:        -:  702:   case SHADER_OPCODE_TXF_CMS_LOGICAL:
        -:        -:  703:   case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
        -:        -:  704:   case SHADER_OPCODE_TXF_UMS_LOGICAL:
        -:        -:  705:   case SHADER_OPCODE_TXF_MCS_LOGICAL:
        -:        -:  706:   case SHADER_OPCODE_LOD_LOGICAL:
        -:        -:  707:   case SHADER_OPCODE_TG4_LOGICAL:
        -:        -:  708:   case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
        -:        -:  709:   case SHADER_OPCODE_SAMPLEINFO_LOGICAL:
    #####:    #####:  710:      assert(src[TEX_LOGICAL_SRC_COORD_COMPONENTS].file == IMM &&
    #####:    #####:  711:             src[TEX_LOGICAL_SRC_GRAD_COMPONENTS].file == IMM);
        -:        -:  712:      /* Texture coordinates. */
    #####:    #####:  713:      if (i == TEX_LOGICAL_SRC_COORDINATE)
    #####:    #####:  714:         return src[TEX_LOGICAL_SRC_COORD_COMPONENTS].ud;
        -:        -:  715:      /* Texture derivatives. */
    #####:    #####:  716:      else if ((i == TEX_LOGICAL_SRC_LOD || i == TEX_LOGICAL_SRC_LOD2) &&
    #####:    #####:  717:               opcode == SHADER_OPCODE_TXD_LOGICAL)
    #####:    #####:  718:         return src[TEX_LOGICAL_SRC_GRAD_COMPONENTS].ud;
        -:        -:  719:      /* Texture offset. */
    #####:    #####:  720:      else if (i == TEX_LOGICAL_SRC_TG4_OFFSET)
    #####:    #####:  721:         return 2;
        -:        -:  722:      /* MCS */
    #####:    #####:  723:      else if (i == TEX_LOGICAL_SRC_MCS && opcode == SHADER_OPCODE_TXF_CMS_W_LOGICAL)
    #####:    #####:  724:         return 2;
        -:        -:  725:      else
    #####:    #####:  726:         return 1;
        -:        -:  727:
        -:        -:  728:   case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
        -:        -:  729:   case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
    #####:    #####:  730:      assert(src[3].file == IMM);
        -:        -:  731:      /* Surface coordinates. */
    #####:    #####:  732:      if (i == 0)
    #####:    #####:  733:         return src[3].ud;
        -:        -:  734:      /* Surface operation source (ignored for reads). */
    #####:    #####:  735:      else if (i == 1)
    #####:    #####:  736:         return 0;
        -:        -:  737:      else
    #####:    #####:  738:         return 1;
        -:        -:  739:
        -:        -:  740:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
        -:        -:  741:   case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####:  742:      assert(src[3].file == IMM &&
    #####:    #####:  743:             src[4].file == IMM);
        -:        -:  744:      /* Surface coordinates. */
    #####:    #####:  745:      if (i == 0)
    #####:    #####:  746:         return src[3].ud;
        -:        -:  747:      /* Surface operation source. */
    #####:    #####:  748:      else if (i == 1)
    #####:    #####:  749:         return src[4].ud;
        -:        -:  750:      else
    #####:    #####:  751:         return 1;
        -:        -:  752:
        -:        -:  753:   case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -:  754:   case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL: {
    #####:    #####:  755:      assert(src[3].file == IMM &&
    #####:    #####:  756:             src[4].file == IMM);
    #####:    #####:  757:      const unsigned op = src[4].ud;
        -:        -:  758:      /* Surface coordinates. */
    #####:    #####:  759:      if (i == 0)
    #####:    #####:  760:         return src[3].ud;
        -:        -:  761:      /* Surface operation source. */
    #####:    #####:  762:      else if (i == 1 && op == BRW_AOP_CMPWR)
    #####:    #####:  763:         return 2;
    #####:    #####:  764:      else if (i == 1 && (op == BRW_AOP_INC || op == BRW_AOP_DEC ||
        -:        -:  765:                          op == BRW_AOP_PREDEC))
    #####:    #####:  766:         return 0;
        -:        -:  767:      else
    #####:    #####:  768:         return 1;
        -:        -:  769:   }
        -:        -:  770:
        -:        -:  771:   default:
    90602:   107812:  772:      return 1;
        -:        -:  773:   }
        -:        -:  774:}
        -:        -:  775:
        -:        -:  776:unsigned
    95345:   113013:  777:fs_inst::size_read(int arg) const
        -:        -:  778:{
    95345:   113013:  779:   switch (opcode) {
        -:        -:  780:   case FS_OPCODE_FB_WRITE:
        -:        -:  781:   case FS_OPCODE_FB_READ:
        -:        -:  782:   case SHADER_OPCODE_URB_WRITE_SIMD8:
        -:        -:  783:   case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
        -:        -:  784:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
        -:        -:  785:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
        -:        -:  786:   case SHADER_OPCODE_URB_READ_SIMD8:
        -:        -:  787:   case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
        -:        -:  788:   case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:  789:   case SHADER_OPCODE_UNTYPED_SURFACE_READ:
        -:        -:  790:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
        -:        -:  791:   case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:  792:   case SHADER_OPCODE_TYPED_SURFACE_READ:
        -:        -:  793:   case SHADER_OPCODE_TYPED_SURFACE_WRITE:
        -:        -:  794:   case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
    #####:    #####:  795:      if (arg == 0)
    #####:    #####:  796:         return mlen * REG_SIZE;
    #####:    #####:  797:      break;
        -:        -:  798:
        -:        -:  799:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7:
        -:        -:  800:      /* The payload is actually stored in src1 */
    #####:    #####:  801:      if (arg == 1)
    #####:    #####:  802:         return mlen * REG_SIZE;
    #####:    #####:  803:      break;
        -:        -:  804:
        -:        -:  805:   case FS_OPCODE_LINTERP:
     1616:     1616:  806:      if (arg == 1)
      584:      584:  807:         return 16;
     1032:     1032:  808:      break;
        -:        -:  809:
        -:        -:  810:   case SHADER_OPCODE_LOAD_PAYLOAD:
     1090:     1090:  811:      if (arg < this->header_size)
    #####:    #####:  812:         return REG_SIZE;
     1090:     1090:  813:      break;
        -:        -:  814:
        -:        -:  815:   case CS_OPCODE_CS_TERMINATE:
        -:        -:  816:   case SHADER_OPCODE_BARRIER:
    #####:    #####:  817:      return REG_SIZE;
        -:        -:  818:
        -:        -:  819:   case SHADER_OPCODE_MOV_INDIRECT:
    #####:    #####:  820:      if (arg == 0) {
    #####:    #####:  821:         assert(src[2].file == IMM);
    #####:    #####:  822:         return src[2].ud;
        -:        -:  823:      }
    #####:    #####:  824:      break;
        -:        -:  825:
        -:        -:  826:   default:
    92639:   110307:  827:      if (is_tex() && arg == 0 && src[0].file == VGRF)
    #####:    #####:  828:         return mlen * REG_SIZE;
    92639:   110307:  829:      break;
        -:        -:  830:   }
        -:        -:  831:
    94761:   112429:  832:   switch (src[arg].file) {
        -:        -:  833:   case UNIFORM:
        -:        -:  834:   case IMM:
     1049:     1295:  835:      return components_read(arg) * type_sz(src[arg].type);
        -:        -:  836:   case BAD_FILE:
        -:        -:  837:   case ARF:
        -:        -:  838:   case FIXED_GRF:
        -:        -:  839:   case VGRF:
        -:        -:  840:   case ATTR:
    93712:   111134:  841:      return components_read(arg) * src[arg].component_size(exec_size);
        -:        -:  842:   case MRF:
    #####:    #####:  843:      unreachable("MRF registers are not allowed as sources");
        -:        -:  844:   }
    #####:    #####:  845:   return 0;
        -:        -:  846:}
        -:        -:  847:
        -:        -:  848:namespace {
        -:        -:  849:   /* Return the subset of flag registers that an instruction could
        -:        -:  850:    * potentially read or write based on the execution controls and flag
        -:        -:  851:    * subregister number of the instruction.
        -:        -:  852:    */
        -:        -:  853:   unsigned
     1373:     2085:  854:   flag_mask(const fs_inst *inst)
        -:        -:  855:   {
     1373:     2085:  856:      const unsigned start = inst->flag_subreg * 16 + inst->group;
     1373:     2085:  857:      const unsigned end = start + inst->exec_size;
     1373:     2085:  858:      return ((1 << DIV_ROUND_UP(end, 8)) - 1) & ~((1 << (start / 8)) - 1);
        -:        -:  859:   }
        -:        -:  860:}
        -:        -:  861:
        -:        -:  862:unsigned
     4670:     5769:  863:fs_inst::flags_read(const gen_device_info *devinfo) const
        -:        -:  864:{
        -:        -:  865:   /* XXX - This doesn't consider explicit uses of the flag register as source
        -:        -:  866:    *       region.
        -:        -:  867:    */
     9340:    11538:  868:   if (predicate == BRW_PREDICATE_ALIGN1_ANYV ||
     4670:     5769:  869:       predicate == BRW_PREDICATE_ALIGN1_ALLV) {
        -:        -:  870:      /* The vertical predication modes combine corresponding bits from
        -:        -:  871:       * f0.0 and f1.0 on Gen7+, and f0.0 and f0.1 on older hardware.
        -:        -:  872:       */
    #####:    #####:  873:      const unsigned shift = devinfo->gen >= 7 ? 4 : 2;
    #####:    #####:  874:      return flag_mask(this) << shift | flag_mask(this);
     4670:     5769:  875:   } else if (predicate) {
      462:      720:  876:      return flag_mask(this);
        -:        -:  877:   } else {
     4208:     5049:  878:      return 0;
        -:        -:  879:   }
        -:        -:  880:}
        -:        -:  881:
        -:        -:  882:unsigned
     6311:     7582:  883:fs_inst::flags_written() const
        -:        -:  884:{
        -:        -:  885:   /* XXX - This doesn't consider explicit uses of the flag register as
        -:        -:  886:    *       destination region.
        -:        -:  887:    */
     7222:     8947:  888:   if ((conditional_mod && (opcode != BRW_OPCODE_SEL &&
     1822:     2730:  889:                            opcode != BRW_OPCODE_IF &&
     6311:     7582:  890:                            opcode != BRW_OPCODE_WHILE)) ||
     5400:     6217:  891:       opcode == FS_OPCODE_MOV_DISPATCH_TO_FLAGS) {
      911:     1365:  892:      return flag_mask(this);
        -:        -:  893:   } else {
     5400:     6217:  894:      return 0;
        -:        -:  895:   }
        -:        -:  896:}
        -:        -:  897:
        -:        -:  898:/**
        -:        -:  899: * Returns how many MRFs an FS opcode will write over.
        -:        -:  900: *
        -:        -:  901: * Note that this is not the 0 or 1 implied writes in an actual gen
        -:        -:  902: * instruction -- the FS opcodes often generate MOVs in addition.
        -:        -:  903: */
        -:        -:  904:int
       69:       69:  905:fs_visitor::implied_mrf_writes(fs_inst *inst)
        -:        -:  906:{
       69:       69:  907:   if (inst->mlen == 0)
    #####:    #####:  908:      return 0;
        -:        -:  909:
       69:       69:  910:   if (inst->base_mrf == -1)
    #####:    #####:  911:      return 0;
        -:        -:  912:
       69:       69:  913:   switch (inst->opcode) {
        -:        -:  914:   case SHADER_OPCODE_RCP:
        -:        -:  915:   case SHADER_OPCODE_RSQ:
        -:        -:  916:   case SHADER_OPCODE_SQRT:
        -:        -:  917:   case SHADER_OPCODE_EXP2:
        -:        -:  918:   case SHADER_OPCODE_LOG2:
        -:        -:  919:   case SHADER_OPCODE_SIN:
        -:        -:  920:   case SHADER_OPCODE_COS:
    #####:    #####:  921:      return 1 * dispatch_width / 8;
        -:        -:  922:   case SHADER_OPCODE_POW:
        -:        -:  923:   case SHADER_OPCODE_INT_QUOTIENT:
        -:        -:  924:   case SHADER_OPCODE_INT_REMAINDER:
    #####:    #####:  925:      return 2 * dispatch_width / 8;
        -:        -:  926:   case SHADER_OPCODE_TEX:
        -:        -:  927:   case FS_OPCODE_TXB:
        -:        -:  928:   case SHADER_OPCODE_TXD:
        -:        -:  929:   case SHADER_OPCODE_TXF:
        -:        -:  930:   case SHADER_OPCODE_TXF_CMS:
        -:        -:  931:   case SHADER_OPCODE_TXF_MCS:
        -:        -:  932:   case SHADER_OPCODE_TG4:
        -:        -:  933:   case SHADER_OPCODE_TG4_OFFSET:
        -:        -:  934:   case SHADER_OPCODE_TXL:
        -:        -:  935:   case SHADER_OPCODE_TXS:
        -:        -:  936:   case SHADER_OPCODE_LOD:
        -:        -:  937:   case SHADER_OPCODE_SAMPLEINFO:
    #####:    #####:  938:      return 1;
        -:        -:  939:   case FS_OPCODE_FB_WRITE:
       69:       69:  940:      return 2;
        -:        -:  941:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
        -:        -:  942:   case SHADER_OPCODE_GEN4_SCRATCH_READ:
    #####:    #####:  943:      return 1;
        -:        -:  944:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN4:
    #####:    #####:  945:      return inst->mlen;
        -:        -:  946:   case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
    #####:    #####:  947:      return inst->mlen;
        -:        -:  948:   default:
    #####:    #####:  949:      unreachable("not reached");
        -:        -:  950:   }
        -:        -:  951:}
        -:        -:  952:
        -:        -:  953:fs_reg
       19:       19:  954:fs_visitor::vgrf(const glsl_type *const type)
        -:        -:  955:{
       19:       19:  956:   int reg_width = dispatch_width / 8;
       19:       19:  957:   return fs_reg(VGRF, alloc.allocate(type_size_scalar(type) * reg_width),
       38:       38:  958:                 brw_type_for_base_type(type));
        -:        -:  959:}
        -:        -:  960:
    #####:    #####:  961:fs_reg::fs_reg(enum brw_reg_file file, int nr)
        -:        -:  962:{
    #####:    #####:  963:   init();
    #####:    #####:  964:   this->file = file;
    #####:    #####:  965:   this->nr = nr;
    #####:    #####:  966:   this->type = BRW_REGISTER_TYPE_F;
    #####:    #####:  967:   this->stride = (file == UNIFORM ? 0 : 1);
    #####:    #####:  968:}
        -:        -:  969:
      212:      216:  970:fs_reg::fs_reg(enum brw_reg_file file, int nr, enum brw_reg_type type)
        -:        -:  971:{
      212:      216:  972:   init();
      212:      216:  973:   this->file = file;
      212:      216:  974:   this->nr = nr;
      212:      216:  975:   this->type = type;
      212:      216:  976:   this->stride = (file == UNIFORM ? 0 : 1);
      212:      216:  977:}
        -:        -:  978:
        -:        -:  979:/* For SIMD16, we need to follow from the uniform setup of SIMD8 dispatch.
        -:        -:  980: * This brings in those uniform definitions
        -:        -:  981: */
        -:        -:  982:void
        3:        3:  983:fs_visitor::import_uniforms(fs_visitor *v)
        -:        -:  984:{
        3:        3:  985:   this->push_constant_loc = v->push_constant_loc;
        3:        3:  986:   this->pull_constant_loc = v->pull_constant_loc;
        3:        3:  987:   this->uniforms = v->uniforms;
        3:        3:  988:}
        -:        -:  989:
        -:        -:  990:void
        2:        2:  991:fs_visitor::emit_fragcoord_interpolation(fs_reg wpos)
        -:        -:  992:{
        2:        2:  993:   assert(stage == MESA_SHADER_FRAGMENT);
        -:        -:  994:
        -:        -:  995:   /* gl_FragCoord.x */
        2:        2:  996:   bld.MOV(wpos, this->pixel_x);
        2:        2:  997:   wpos = offset(wpos, bld, 1);
        -:        -:  998:
        -:        -:  999:   /* gl_FragCoord.y */
        2:        2: 1000:   bld.MOV(wpos, this->pixel_y);
        2:        2: 1001:   wpos = offset(wpos, bld, 1);
        -:        -: 1002:
        -:        -: 1003:   /* gl_FragCoord.z */
        2:        2: 1004:   if (devinfo->gen >= 6) {
        2:        2: 1005:      bld.MOV(wpos, fs_reg(brw_vec8_grf(payload.source_depth_reg, 0)));
        -:        -: 1006:   } else {
    #####:    #####: 1007:      bld.emit(FS_OPCODE_LINTERP, wpos,
        -:        -: 1008:           this->delta_xy[BRW_BARYCENTRIC_PERSPECTIVE_PIXEL],
    #####:    #####: 1009:           interp_reg(VARYING_SLOT_POS, 2));
        -:        -: 1010:   }
        2:        2: 1011:   wpos = offset(wpos, bld, 1);
        -:        -: 1012:
        -:        -: 1013:   /* gl_FragCoord.w: Already set up in emit_interpolation */
        2:        2: 1014:   bld.MOV(wpos, this->wpos_w);
        2:        2: 1015:}
        -:        -: 1016:
        -:        -: 1017:enum brw_barycentric_mode
        3:        3: 1018:brw_barycentric_mode(enum glsl_interp_mode mode, nir_intrinsic_op op)
        -:        -: 1019:{
        -:        -: 1020:   /* Barycentric modes don't make sense for flat inputs. */
        3:        3: 1021:   assert(mode != INTERP_MODE_FLAT);
        -:        -: 1022:
        -:        -: 1023:   unsigned bary;
        3:        3: 1024:   switch (op) {
        -:        -: 1025:   case nir_intrinsic_load_barycentric_pixel:
        -:        -: 1026:   case nir_intrinsic_load_barycentric_at_offset:
        3:        3: 1027:      bary = BRW_BARYCENTRIC_PERSPECTIVE_PIXEL;
        3:        3: 1028:      break;
        -:        -: 1029:   case nir_intrinsic_load_barycentric_centroid:
    #####:    #####: 1030:      bary = BRW_BARYCENTRIC_PERSPECTIVE_CENTROID;
    #####:    #####: 1031:      break;
        -:        -: 1032:   case nir_intrinsic_load_barycentric_sample:
        -:        -: 1033:   case nir_intrinsic_load_barycentric_at_sample:
    #####:    #####: 1034:      bary = BRW_BARYCENTRIC_PERSPECTIVE_SAMPLE;
    #####:    #####: 1035:      break;
        -:        -: 1036:   default:
    #####:    #####: 1037:      unreachable("invalid intrinsic");
        -:        -: 1038:   }
        -:        -: 1039:
        3:        3: 1040:   if (mode == INTERP_MODE_NOPERSPECTIVE)
    #####:    #####: 1041:      bary += 3;
        -:        -: 1042:
        3:        3: 1043:   return (enum brw_barycentric_mode) bary;
        -:        -: 1044:}
        -:        -: 1045:
        -:        -: 1046:/**
        -:        -: 1047: * Turn one of the two CENTROID barycentric modes into PIXEL mode.
        -:        -: 1048: */
        -:        -: 1049:static enum brw_barycentric_mode
    #####:    #####: 1050:centroid_to_pixel(enum brw_barycentric_mode bary)
        -:        -: 1051:{
    #####:    #####: 1052:   assert(bary == BRW_BARYCENTRIC_PERSPECTIVE_CENTROID ||
    #####:    #####: 1053:          bary == BRW_BARYCENTRIC_NONPERSPECTIVE_CENTROID);
    #####:    #####: 1054:   return (enum brw_barycentric_mode) ((unsigned) bary - 1);
        -:        -: 1055:}
        -:        -: 1056:
        -:        -: 1057:fs_reg *
    #####:    #####: 1058:fs_visitor::emit_frontfacing_interpolation()
        -:        -: 1059:{
    #####:    #####: 1060:   fs_reg *reg = new(this->mem_ctx) fs_reg(vgrf(glsl_type::bool_type));
        -:        -: 1061:
    #####:    #####: 1062:   if (devinfo->gen >= 6) {
        -:        -: 1063:      /* Bit 15 of g0.0 is 0 if the polygon is front facing. We want to create
        -:        -: 1064:       * a boolean result from this (~0/true or 0/false).
        -:        -: 1065:       *
        -:        -: 1066:       * We can use the fact that bit 15 is the MSB of g0.0:W to accomplish
        -:        -: 1067:       * this task in only one instruction:
        -:        -: 1068:       *    - a negation source modifier will flip the bit; and
        -:        -: 1069:       *    - a W -> D type conversion will sign extend the bit into the high
        -:        -: 1070:       *      word of the destination.
        -:        -: 1071:       *
        -:        -: 1072:       * An ASR 15 fills the low word of the destination.
        -:        -: 1073:       */
    #####:    #####: 1074:      fs_reg g0 = fs_reg(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_W));
    #####:    #####: 1075:      g0.negate = true;
        -:        -: 1076:
    #####:    #####: 1077:      bld.ASR(*reg, g0, brw_imm_d(15));
        -:        -: 1078:   } else {
        -:        -: 1079:      /* Bit 31 of g1.6 is 0 if the polygon is front facing. We want to create
        -:        -: 1080:       * a boolean result from this (1/true or 0/false).
        -:        -: 1081:       *
        -:        -: 1082:       * Like in the above case, since the bit is the MSB of g1.6:UD we can use
        -:        -: 1083:       * the negation source modifier to flip it. Unfortunately the SHR
        -:        -: 1084:       * instruction only operates on UD (or D with an abs source modifier)
        -:        -: 1085:       * sources without negation.
        -:        -: 1086:       *
        -:        -: 1087:       * Instead, use ASR (which will give ~0/true or 0/false).
        -:        -: 1088:       */
    #####:    #####: 1089:      fs_reg g1_6 = fs_reg(retype(brw_vec1_grf(1, 6), BRW_REGISTER_TYPE_D));
    #####:    #####: 1090:      g1_6.negate = true;
        -:        -: 1091:
    #####:    #####: 1092:      bld.ASR(*reg, g1_6, brw_imm_d(31));
        -:        -: 1093:   }
        -:        -: 1094:
    #####:    #####: 1095:   return reg;
        -:        -: 1096:}
        -:        -: 1097:
        -:        -: 1098:void
    #####:    #####: 1099:fs_visitor::compute_sample_position(fs_reg dst, fs_reg int_sample_pos)
        -:        -: 1100:{
    #####:    #####: 1101:   assert(stage == MESA_SHADER_FRAGMENT);
    #####:    #####: 1102:   struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(this->prog_data);
    #####:    #####: 1103:   assert(dst.type == BRW_REGISTER_TYPE_F);
        -:        -: 1104:
    #####:    #####: 1105:   if (wm_prog_data->persample_dispatch) {
        -:        -: 1106:      /* Convert int_sample_pos to floating point */
    #####:    #####: 1107:      bld.MOV(dst, int_sample_pos);
        -:        -: 1108:      /* Scale to the range [0, 1] */
    #####:    #####: 1109:      bld.MUL(dst, dst, brw_imm_f(1 / 16.0f));
        -:        -: 1110:   }
        -:        -: 1111:   else {
        -:        -: 1112:      /* From ARB_sample_shading specification:
        -:        -: 1113:       * "When rendering to a non-multisample buffer, or if multisample
        -:        -: 1114:       *  rasterization is disabled, gl_SamplePosition will always be
        -:        -: 1115:       *  (0.5, 0.5).
        -:        -: 1116:       */
    #####:    #####: 1117:      bld.MOV(dst, brw_imm_f(0.5f));
        -:        -: 1118:   }
    #####:    #####: 1119:}
        -:        -: 1120:
        -:        -: 1121:fs_reg *
    #####:    #####: 1122:fs_visitor::emit_samplepos_setup()
        -:        -: 1123:{
    #####:    #####: 1124:   assert(devinfo->gen >= 6);
        -:        -: 1125:
    #####:    #####: 1126:   const fs_builder abld = bld.annotate("compute sample position");
    #####:    #####: 1127:   fs_reg *reg = new(this->mem_ctx) fs_reg(vgrf(glsl_type::vec2_type));
    #####:    #####: 1128:   fs_reg pos = *reg;
    #####:    #####: 1129:   fs_reg int_sample_x = vgrf(glsl_type::int_type);
    #####:    #####: 1130:   fs_reg int_sample_y = vgrf(glsl_type::int_type);
        -:        -: 1131:
        -:        -: 1132:   /* WM will be run in MSDISPMODE_PERSAMPLE. So, only one of SIMD8 or SIMD16
        -:        -: 1133:    * mode will be enabled.
        -:        -: 1134:    *
        -:        -: 1135:    * From the Ivy Bridge PRM, volume 2 part 1, page 344:
        -:        -: 1136:    * R31.1:0         Position Offset X/Y for Slot[3:0]
        -:        -: 1137:    * R31.3:2         Position Offset X/Y for Slot[7:4]
        -:        -: 1138:    * .....
        -:        -: 1139:    *
        -:        -: 1140:    * The X, Y sample positions come in as bytes in  thread payload. So, read
        -:        -: 1141:    * the positions using vstride=16, width=8, hstride=2.
        -:        -: 1142:    */
        -:        -: 1143:   struct brw_reg sample_pos_reg =
    #####:    #####: 1144:      stride(retype(brw_vec1_grf(payload.sample_pos_reg, 0),
    #####:    #####: 1145:                    BRW_REGISTER_TYPE_B), 16, 8, 2);
        -:        -: 1146:
    #####:    #####: 1147:   if (dispatch_width == 8) {
    #####:    #####: 1148:      abld.MOV(int_sample_x, fs_reg(sample_pos_reg));
        -:        -: 1149:   } else {
    #####:    #####: 1150:      abld.half(0).MOV(half(int_sample_x, 0), fs_reg(sample_pos_reg));
    #####:    #####: 1151:      abld.half(1).MOV(half(int_sample_x, 1),
    #####:    #####: 1152:                       fs_reg(suboffset(sample_pos_reg, 16)));
        -:        -: 1153:   }
        -:        -: 1154:   /* Compute gl_SamplePosition.x */
    #####:    #####: 1155:   compute_sample_position(pos, int_sample_x);
    #####:    #####: 1156:   pos = offset(pos, abld, 1);
    #####:    #####: 1157:   if (dispatch_width == 8) {
    #####:    #####: 1158:      abld.MOV(int_sample_y, fs_reg(suboffset(sample_pos_reg, 1)));
        -:        -: 1159:   } else {
    #####:    #####: 1160:      abld.half(0).MOV(half(int_sample_y, 0),
    #####:    #####: 1161:                       fs_reg(suboffset(sample_pos_reg, 1)));
    #####:    #####: 1162:      abld.half(1).MOV(half(int_sample_y, 1),
    #####:    #####: 1163:                       fs_reg(suboffset(sample_pos_reg, 17)));
        -:        -: 1164:   }
        -:        -: 1165:   /* Compute gl_SamplePosition.y */
    #####:    #####: 1166:   compute_sample_position(pos, int_sample_y);
    #####:    #####: 1167:   return reg;
        -:        -: 1168:}
        -:        -: 1169:
        -:        -: 1170:fs_reg *
    #####:    #####: 1171:fs_visitor::emit_sampleid_setup()
        -:        -: 1172:{
    #####:    #####: 1173:   assert(stage == MESA_SHADER_FRAGMENT);
    #####:    #####: 1174:   brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
    #####:    #####: 1175:   assert(devinfo->gen >= 6);
        -:        -: 1176:
    #####:    #####: 1177:   const fs_builder abld = bld.annotate("compute sample id");
    #####:    #####: 1178:   fs_reg *reg = new(this->mem_ctx) fs_reg(vgrf(glsl_type::int_type));
        -:        -: 1179:
    #####:    #####: 1180:   if (!key->multisample_fbo) {
        -:        -: 1181:      /* As per GL_ARB_sample_shading specification:
        -:        -: 1182:       * "When rendering to a non-multisample buffer, or if multisample
        -:        -: 1183:       *  rasterization is disabled, gl_SampleID will always be zero."
        -:        -: 1184:       */
    #####:    #####: 1185:      abld.MOV(*reg, brw_imm_d(0));
    #####:    #####: 1186:   } else if (devinfo->gen >= 8) {
        -:        -: 1187:      /* Sample ID comes in as 4-bit numbers in g1.0:
        -:        -: 1188:       *
        -:        -: 1189:       *    15:12 Slot 3 SampleID (only used in SIMD16)
        -:        -: 1190:       *     11:8 Slot 2 SampleID (only used in SIMD16)
        -:        -: 1191:       *      7:4 Slot 1 SampleID
        -:        -: 1192:       *      3:0 Slot 0 SampleID
        -:        -: 1193:       *
        -:        -: 1194:       * Each slot corresponds to four channels, so we want to replicate each
        -:        -: 1195:       * half-byte value to 4 channels in a row:
        -:        -: 1196:       *
        -:        -: 1197:       *    dst+0:    .7    .6    .5    .4    .3    .2    .1    .0
        -:        -: 1198:       *             7:4   7:4   7:4   7:4   3:0   3:0   3:0   3:0
        -:        -: 1199:       *
        -:        -: 1200:       *    dst+1:    .7    .6    .5    .4    .3    .2    .1    .0  (if SIMD16)
        -:        -: 1201:       *           15:12 15:12 15:12 15:12  11:8  11:8  11:8  11:8
        -:        -: 1202:       *
        -:        -: 1203:       * First, we read g1.0 with a <1,8,0>UB region, causing the first 8
        -:        -: 1204:       * channels to read the first byte (7:0), and the second group of 8
        -:        -: 1205:       * channels to read the second byte (15:8).  Then, we shift right by
        -:        -: 1206:       * a vector immediate of <4, 4, 4, 4, 0, 0, 0, 0>, moving the slot 1 / 3
        -:        -: 1207:       * values into place.  Finally, we AND with 0xf to keep the low nibble.
        -:        -: 1208:       *
        -:        -: 1209:       *    shr(16) tmp<1>W g1.0<1,8,0>B 0x44440000:V
        -:        -: 1210:       *    and(16) dst<1>D tmp<8,8,1>W  0xf:W
        -:        -: 1211:       *
        -:        -: 1212:       * TODO: These payload bits exist on Gen7 too, but they appear to always
        -:        -: 1213:       *       be zero, so this code fails to work.  We should find out why.
        -:        -: 1214:       */
    #####:    #####: 1215:      fs_reg tmp(VGRF, alloc.allocate(1), BRW_REGISTER_TYPE_W);
        -:        -: 1216:
    #####:    #####: 1217:      abld.SHR(tmp, fs_reg(stride(retype(brw_vec1_grf(1, 0),
        -:        -: 1218:                                         BRW_REGISTER_TYPE_B), 1, 8, 0)),
    #####:    #####: 1219:                    brw_imm_v(0x44440000));
    #####:    #####: 1220:      abld.AND(*reg, tmp, brw_imm_w(0xf));
        -:        -: 1221:   } else {
    #####:    #####: 1222:      const fs_reg t1 = component(fs_reg(VGRF, alloc.allocate(1),
    #####:    #####: 1223:                                         BRW_REGISTER_TYPE_D), 0);
    #####:    #####: 1224:      const fs_reg t2(VGRF, alloc.allocate(1), BRW_REGISTER_TYPE_W);
        -:        -: 1225:
        -:        -: 1226:      /* The PS will be run in MSDISPMODE_PERSAMPLE. For example with
        -:        -: 1227:       * 8x multisampling, subspan 0 will represent sample N (where N
        -:        -: 1228:       * is 0, 2, 4 or 6), subspan 1 will represent sample 1, 3, 5 or
        -:        -: 1229:       * 7. We can find the value of N by looking at R0.0 bits 7:6
        -:        -: 1230:       * ("Starting Sample Pair Index (SSPI)") and multiplying by two
        -:        -: 1231:       * (since samples are always delivered in pairs). That is, we
        -:        -: 1232:       * compute 2*((R0.0 & 0xc0) >> 6) == (R0.0 & 0xc0) >> 5. Then
        -:        -: 1233:       * we need to add N to the sequence (0, 0, 0, 0, 1, 1, 1, 1) in
        -:        -: 1234:       * case of SIMD8 and sequence (0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2,
        -:        -: 1235:       * 2, 3, 3, 3, 3) in case of SIMD16. We compute this sequence by
        -:        -: 1236:       * populating a temporary variable with the sequence (0, 1, 2, 3),
        -:        -: 1237:       * and then reading from it using vstride=1, width=4, hstride=0.
        -:        -: 1238:       * These computations hold good for 4x multisampling as well.
        -:        -: 1239:       *
        -:        -: 1240:       * For 2x MSAA and SIMD16, we want to use the sequence (0, 1, 0, 1):
        -:        -: 1241:       * the first four slots are sample 0 of subspan 0; the next four
        -:        -: 1242:       * are sample 1 of subspan 0; the third group is sample 0 of
        -:        -: 1243:       * subspan 1, and finally sample 1 of subspan 1.
        -:        -: 1244:       */
        -:        -: 1245:
        -:        -: 1246:      /* SKL+ has an extra bit for the Starting Sample Pair Index to
        -:        -: 1247:       * accomodate 16x MSAA.
        -:        -: 1248:       */
    #####:    #####: 1249:      abld.exec_all().group(1, 0)
    #####:    #####: 1250:          .AND(t1, fs_reg(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_D)),
    #####:    #####: 1251:               brw_imm_ud(0xc0));
    #####:    #####: 1252:      abld.exec_all().group(1, 0).SHR(t1, t1, brw_imm_d(5));
        -:        -: 1253:
        -:        -: 1254:      /* This works for both SIMD8 and SIMD16 */
    #####:    #####: 1255:      abld.exec_all().group(4, 0).MOV(t2, brw_imm_v(0x3210));
        -:        -: 1256:
        -:        -: 1257:      /* This special instruction takes care of setting vstride=1,
        -:        -: 1258:       * width=4, hstride=0 of t2 during an ADD instruction.
        -:        -: 1259:       */
    #####:    #####: 1260:      abld.emit(FS_OPCODE_SET_SAMPLE_ID, *reg, t1, t2);
        -:        -: 1261:   }
        -:        -: 1262:
    #####:    #####: 1263:   return reg;
        -:        -: 1264:}
        -:        -: 1265:
        -:        -: 1266:fs_reg *
    #####:    #####: 1267:fs_visitor::emit_samplemaskin_setup()
        -:        -: 1268:{
    #####:    #####: 1269:   assert(stage == MESA_SHADER_FRAGMENT);
    #####:    #####: 1270:   struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(this->prog_data);
    #####:    #####: 1271:   assert(devinfo->gen >= 6);
        -:        -: 1272:
    #####:    #####: 1273:   fs_reg *reg = new(this->mem_ctx) fs_reg(vgrf(glsl_type::int_type));
        -:        -: 1274:
    #####:    #####: 1275:   fs_reg coverage_mask(retype(brw_vec8_grf(payload.sample_mask_in_reg, 0),
    #####:    #####: 1276:                               BRW_REGISTER_TYPE_D));
        -:        -: 1277:
    #####:    #####: 1278:   if (wm_prog_data->persample_dispatch) {
        -:        -: 1279:      /* gl_SampleMaskIn[] comes from two sources: the input coverage mask,
        -:        -: 1280:       * and a mask representing which sample is being processed by the
        -:        -: 1281:       * current shader invocation.
        -:        -: 1282:       *
        -:        -: 1283:       * From the OES_sample_variables specification:
        -:        -: 1284:       * "When per-sample shading is active due to the use of a fragment input
        -:        -: 1285:       *  qualified by "sample" or due to the use of the gl_SampleID or
        -:        -: 1286:       *  gl_SamplePosition variables, only the bit for the current sample is
        -:        -: 1287:       *  set in gl_SampleMaskIn."
        -:        -: 1288:       */
    #####:    #####: 1289:      const fs_builder abld = bld.annotate("compute gl_SampleMaskIn");
        -:        -: 1290:
    #####:    #####: 1291:      if (nir_system_values[SYSTEM_VALUE_SAMPLE_ID].file == BAD_FILE)
    #####:    #####: 1292:         nir_system_values[SYSTEM_VALUE_SAMPLE_ID] = *emit_sampleid_setup();
        -:        -: 1293:
    #####:    #####: 1294:      fs_reg one = vgrf(glsl_type::int_type);
    #####:    #####: 1295:      fs_reg enabled_mask = vgrf(glsl_type::int_type);
    #####:    #####: 1296:      abld.MOV(one, brw_imm_d(1));
    #####:    #####: 1297:      abld.SHL(enabled_mask, one, nir_system_values[SYSTEM_VALUE_SAMPLE_ID]);
    #####:    #####: 1298:      abld.AND(*reg, enabled_mask, coverage_mask);
        -:        -: 1299:   } else {
        -:        -: 1300:      /* In per-pixel mode, the coverage mask is sufficient. */
    #####:    #####: 1301:      *reg = coverage_mask;
        -:        -: 1302:   }
    #####:    #####: 1303:   return reg;
        -:        -: 1304:}
        -:        -: 1305:
        -:        -: 1306:fs_reg
    #####:    #####: 1307:fs_visitor::resolve_source_modifiers(const fs_reg &src)
        -:        -: 1308:{
    #####:    #####: 1309:   if (!src.abs && !src.negate)
    #####:    #####: 1310:      return src;
        -:        -: 1311:
    #####:    #####: 1312:   fs_reg temp = bld.vgrf(src.type);
    #####:    #####: 1313:   bld.MOV(temp, src);
        -:        -: 1314:
    #####:    #####: 1315:   return temp;
        -:        -: 1316:}
        -:        -: 1317:
        -:        -: 1318:void
    #####:    #####: 1319:fs_visitor::emit_discard_jump()
        -:        -: 1320:{
    #####:    #####: 1321:   assert(brw_wm_prog_data(this->prog_data)->uses_kill);
        -:        -: 1322:
        -:        -: 1323:   /* For performance, after a discard, jump to the end of the
        -:        -: 1324:    * shader if all relevant channels have been discarded.
        -:        -: 1325:    */
    #####:    #####: 1326:   fs_inst *discard_jump = bld.emit(FS_OPCODE_DISCARD_JUMP);
    #####:    #####: 1327:   discard_jump->flag_subreg = 1;
        -:        -: 1328:
    #####:    #####: 1329:   discard_jump->predicate = BRW_PREDICATE_ALIGN1_ANY4H;
    #####:    #####: 1330:   discard_jump->predicate_inverse = true;
    #####:    #####: 1331:}
        -:        -: 1332:
        -:        -: 1333:void
    #####:    #####: 1334:fs_visitor::emit_gs_thread_end()
        -:        -: 1335:{
    #####:    #####: 1336:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 1337:
    #####:    #####: 1338:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
        -:        -: 1339:
    #####:    #####: 1340:   if (gs_compile->control_data_header_size_bits > 0) {
    #####:    #####: 1341:      emit_gs_control_data_bits(this->final_gs_vertex_count);
        -:        -: 1342:   }
        -:        -: 1343:
    #####:    #####: 1344:   const fs_builder abld = bld.annotate("thread end");
        -:        -: 1345:   fs_inst *inst;
        -:        -: 1346:
    #####:    #####: 1347:   if (gs_prog_data->static_vertex_count != -1) {
    #####:    #####: 1348:      foreach_in_list_reverse(fs_inst, prev, &this->instructions) {
    #####:    #####: 1349:         if (prev->opcode == SHADER_OPCODE_URB_WRITE_SIMD8 ||
    #####:    #####: 1350:             prev->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_MASKED ||
    #####:    #####: 1351:             prev->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT ||
    #####:    #####: 1352:             prev->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT) {
    #####:    #####: 1353:            prev->eot = true;
        -:        -: 1354:
        -:        -: 1355:            /* Delete now dead instructions. */
    #####:    #####: 1356:            foreach_in_list_reverse_safe(exec_node, dead, &this->instructions) {
    #####:    #####: 1357:               if (dead == prev)
    #####:    #####: 1358:                  break;
    #####:    #####: 1359:               dead->remove();
        -:        -: 1360:            }
    #####:    #####: 1361:            return;
    #####:    #####: 1362:         } else if (prev->is_control_flow() || prev->has_side_effects()) {
    #####:    #####: 1363:            break;
        -:        -: 1364:         }
        -:        -: 1365:      }
    #####:    #####: 1366:      fs_reg hdr = abld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1367:      abld.MOV(hdr, fs_reg(retype(brw_vec8_grf(1, 0), BRW_REGISTER_TYPE_UD)));
    #####:    #####: 1368:      inst = abld.emit(SHADER_OPCODE_URB_WRITE_SIMD8, reg_undef, hdr);
    #####:    #####: 1369:      inst->mlen = 1;
        -:        -: 1370:   } else {
    #####:    #####: 1371:      fs_reg payload = abld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 1372:      fs_reg *sources = ralloc_array(mem_ctx, fs_reg, 2);
    #####:    #####: 1373:      sources[0] = fs_reg(retype(brw_vec8_grf(1, 0), BRW_REGISTER_TYPE_UD));
    #####:    #####: 1374:      sources[1] = this->final_gs_vertex_count;
    #####:    #####: 1375:      abld.LOAD_PAYLOAD(payload, sources, 2, 2);
    #####:    #####: 1376:      inst = abld.emit(SHADER_OPCODE_URB_WRITE_SIMD8, reg_undef, payload);
    #####:    #####: 1377:      inst->mlen = 2;
        -:        -: 1378:   }
    #####:    #####: 1379:   inst->eot = true;
    #####:    #####: 1380:   inst->offset = 0;
        -:        -: 1381:}
        -:        -: 1382:
        -:        -: 1383:void
        6:        6: 1384:fs_visitor::assign_curb_setup()
        -:        -: 1385:{
        6:        6: 1386:   prog_data->curb_read_length = ALIGN(stage_prog_data->nr_params, 8) / 8;
        -:        -: 1387:
        -:        -: 1388:   /* Map the offsets in the UNIFORM file to fixed HW regs. */
      214:      226: 1389:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      463:      487: 1390:      for (unsigned int i = 0; i < inst->sources; i++) {
      255:      267: 1391:	 if (inst->src[i].file == UNIFORM) {
       41:       41: 1392:            int uniform_nr = inst->src[i].nr + inst->src[i].offset / 4;
        -:        -: 1393:            int constant_nr;
       41:       41: 1394:            if (uniform_nr >= 0 && uniform_nr < (int) uniforms) {
       41:       41: 1395:               constant_nr = push_constant_loc[uniform_nr];
        -:        -: 1396:            } else {
        -:        -: 1397:               /* Section 5.11 of the OpenGL 4.1 spec says:
        -:        -: 1398:                * "Out-of-bounds reads return undefined values, which include
        -:        -: 1399:                *  values from other variables of the active program or zero."
        -:        -: 1400:                * Just return the first push constant.
        -:        -: 1401:                */
    #####:    #####: 1402:               constant_nr = 0;
        -:        -: 1403:            }
        -:        -: 1404:
       82:       82: 1405:	    struct brw_reg brw_reg = brw_vec1_grf(payload.num_regs +
       41:       41: 1406:						  constant_nr / 8,
       82:       82: 1407:						  constant_nr % 8);
       41:       41: 1408:            brw_reg.abs = inst->src[i].abs;
       41:       41: 1409:            brw_reg.negate = inst->src[i].negate;
        -:        -: 1410:
       41:       41: 1411:            assert(inst->src[i].stride == 0);
       41:       41: 1412:            inst->src[i] = byte_offset(
       41:       41: 1413:               retype(brw_reg, inst->src[i].type),
       82:       82: 1414:               inst->src[i].offset % 4);
        -:        -: 1415:	 }
        -:        -: 1416:      }
        -:        -: 1417:   }
        -:        -: 1418:
        -:        -: 1419:   /* This may be updated in assign_urb_setup or assign_vs_urb_setup. */
        6:        6: 1420:   this->first_non_payload_grf = payload.num_regs + prog_data->curb_read_length;
        6:        6: 1421:}
        -:        -: 1422:
        -:        -: 1423:void
        5:        5: 1424:fs_visitor::calculate_urb_setup()
        -:        -: 1425:{
        5:        5: 1426:   assert(stage == MESA_SHADER_FRAGMENT);
        5:        5: 1427:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        5:        5: 1428:   brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
        -:        -: 1429:
        5:        5: 1430:   memset(prog_data->urb_setup, -1,
        5:        5: 1431:          sizeof(prog_data->urb_setup[0]) * VARYING_SLOT_MAX);
        -:        -: 1432:
        5:        5: 1433:   int urb_next = 0;
        -:        -: 1434:   /* Figure out where each of the incoming setup attributes lands. */
        5:        5: 1435:   if (devinfo->gen >= 6) {
        5:        5: 1436:      if (_mesa_bitcount_64(nir->info->inputs_read &
        -:        -: 1437:                            BRW_FS_VARYING_INPUT_MASK) <= 16) {
        -:        -: 1438:         /* The SF/SBE pipeline stage can do arbitrary rearrangement of the
        -:        -: 1439:          * first 16 varying inputs, so we can put them wherever we want.
        -:        -: 1440:          * Just put them in order.
        -:        -: 1441:          *
        -:        -: 1442:          * This is useful because it means that (a) inputs not used by the
        -:        -: 1443:          * fragment shader won't take up valuable register space, and (b) we
        -:        -: 1444:          * won't have to recompile the fragment shader if it gets paired with
        -:        -: 1445:          * a different vertex (or geometry) shader.
        -:        -: 1446:          */
      315:      315: 1447:         for (unsigned int i = 0; i < VARYING_SLOT_MAX; i++) {
      620:      620: 1448:            if (nir->info->inputs_read & BRW_FS_VARYING_INPUT_MASK &
      310:      310: 1449:                BITFIELD64_BIT(i)) {
        3:        3: 1450:               prog_data->urb_setup[i] = urb_next++;
        -:        -: 1451:            }
        -:        -: 1452:         }
        -:        -: 1453:      } else {
        -:        -: 1454:         bool include_vue_header =
    #####:    #####: 1455:            nir->info->inputs_read & (VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT);
        -:        -: 1456:
        -:        -: 1457:         /* We have enough input varyings that the SF/SBE pipeline stage can't
        -:        -: 1458:          * arbitrarily rearrange them to suit our whim; we have to put them
        -:        -: 1459:          * in an order that matches the output of the previous pipeline stage
        -:        -: 1460:          * (geometry or vertex shader).
        -:        -: 1461:          */
        -:        -: 1462:         struct brw_vue_map prev_stage_vue_map;
    #####:    #####: 1463:         brw_compute_vue_map(devinfo, &prev_stage_vue_map,
        -:        -: 1464:                             key->input_slots_valid,
    #####:    #####: 1465:                             nir->info->separate_shader);
        -:        -: 1466:         int first_slot =
    #####:    #####: 1467:            include_vue_header ? 0 : 2 * BRW_SF_URB_ENTRY_READ_OFFSET;
        -:        -: 1468:
    #####:    #####: 1469:         assert(prev_stage_vue_map.num_slots <= first_slot + 32);
    #####:    #####: 1470:         for (int slot = first_slot; slot < prev_stage_vue_map.num_slots;
        -:        -: 1471:              slot++) {
    #####:    #####: 1472:            int varying = prev_stage_vue_map.slot_to_varying[slot];
    #####:    #####: 1473:            if (varying != BRW_VARYING_SLOT_PAD &&
    #####:    #####: 1474:                (nir->info->inputs_read & BRW_FS_VARYING_INPUT_MASK &
    #####:    #####: 1475:                 BITFIELD64_BIT(varying))) {
    #####:    #####: 1476:               prog_data->urb_setup[varying] = slot - first_slot;
        -:        -: 1477:            }
        -:        -: 1478:         }
    #####:    #####: 1479:         urb_next = prev_stage_vue_map.num_slots - first_slot;
        -:        -: 1480:      }
        -:        -: 1481:   } else {
        -:        -: 1482:      /* FINISHME: The sf doesn't map VS->FS inputs for us very well. */
    #####:    #####: 1483:      for (unsigned int i = 0; i < VARYING_SLOT_MAX; i++) {
        -:        -: 1484:         /* Point size is packed into the header, not as a general attribute */
    #####:    #####: 1485:         if (i == VARYING_SLOT_PSIZ)
    #####:    #####: 1486:            continue;
        -:        -: 1487:
    #####:    #####: 1488:	 if (key->input_slots_valid & BITFIELD64_BIT(i)) {
        -:        -: 1489:	    /* The back color slot is skipped when the front color is
        -:        -: 1490:	     * also written to.  In addition, some slots can be
        -:        -: 1491:	     * written in the vertex shader and not read in the
        -:        -: 1492:	     * fragment shader.  So the register number must always be
        -:        -: 1493:	     * incremented, mapped or not.
        -:        -: 1494:	     */
    #####:    #####: 1495:	    if (_mesa_varying_slot_in_fs((gl_varying_slot) i))
    #####:    #####: 1496:	       prog_data->urb_setup[i] = urb_next;
    #####:    #####: 1497:            urb_next++;
        -:        -: 1498:	 }
        -:        -: 1499:      }
        -:        -: 1500:
        -:        -: 1501:      /*
        -:        -: 1502:       * It's a FS only attribute, and we did interpolation for this attribute
        -:        -: 1503:       * in SF thread. So, count it here, too.
        -:        -: 1504:       *
        -:        -: 1505:       * See compile_sf_prog() for more info.
        -:        -: 1506:       */
    #####:    #####: 1507:      if (nir->info->inputs_read & BITFIELD64_BIT(VARYING_SLOT_PNTC))
    #####:    #####: 1508:         prog_data->urb_setup[VARYING_SLOT_PNTC] = urb_next++;
        -:        -: 1509:   }
        -:        -: 1510:
        5:        5: 1511:   prog_data->num_varying_inputs = urb_next;
        5:        5: 1512:}
        -:        -: 1513:
        -:        -: 1514:void
        5:        5: 1515:fs_visitor::assign_urb_setup()
        -:        -: 1516:{
        5:        5: 1517:   assert(stage == MESA_SHADER_FRAGMENT);
        5:        5: 1518:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        -:        -: 1519:
        5:        5: 1520:   int urb_start = payload.num_regs + prog_data->base.curb_read_length;
        -:        -: 1521:
        -:        -: 1522:   /* Offset all the urb_setup[] index by the actual position of the
        -:        -: 1523:    * setup regs, now that the location of the constants has been chosen.
        -:        -: 1524:    */
      211:      223: 1525:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      206:      218: 1526:      if (inst->opcode == FS_OPCODE_LINTERP) {
        8:        8: 1527:	 assert(inst->src[1].file == FIXED_GRF);
        8:        8: 1528:         inst->src[1].nr += urb_start;
        -:        -: 1529:      }
        -:        -: 1530:
      206:      218: 1531:      if (inst->opcode == FS_OPCODE_CINTERP) {
        4:        4: 1532:	 assert(inst->src[0].file == FIXED_GRF);
        4:        4: 1533:         inst->src[0].nr += urb_start;
        -:        -: 1534:      }
        -:        -: 1535:   }
        -:        -: 1536:
        -:        -: 1537:   /* Each attribute is 4 setup channels, each of which is half a reg. */
        5:        5: 1538:   this->first_non_payload_grf += prog_data->num_varying_inputs * 2;
        5:        5: 1539:}
        -:        -: 1540:
        -:        -: 1541:void
    #####:    #####: 1542:fs_visitor::convert_attr_sources_to_hw_regs(fs_inst *inst)
        -:        -: 1543:{
    #####:    #####: 1544:   for (int i = 0; i < inst->sources; i++) {
    #####:    #####: 1545:      if (inst->src[i].file == ATTR) {
    #####:    #####: 1546:         int grf = payload.num_regs +
    #####:    #####: 1547:                   prog_data->curb_read_length +
    #####:    #####: 1548:                   inst->src[i].nr +
    #####:    #####: 1549:                   inst->src[i].offset / REG_SIZE;
        -:        -: 1550:
        -:        -: 1551:         /* As explained at brw_reg_from_fs_reg, From the Haswell PRM:
        -:        -: 1552:          *
        -:        -: 1553:          * VertStride must be used to cross GRF register boundaries. This
        -:        -: 1554:          * rule implies that elements within a 'Width' cannot cross GRF
        -:        -: 1555:          * boundaries.
        -:        -: 1556:          *
        -:        -: 1557:          * So, for registers that are large enough, we have to split the exec
        -:        -: 1558:          * size in two and trust the compression state to sort it out.
        -:        -: 1559:          */
    #####:    #####: 1560:         unsigned total_size = inst->exec_size *
    #####:    #####: 1561:                               inst->src[i].stride *
    #####:    #####: 1562:                               type_sz(inst->src[i].type);
        -:        -: 1563:
    #####:    #####: 1564:         assert(total_size <= 2 * REG_SIZE);
        -:        -: 1565:         const unsigned exec_size =
    #####:    #####: 1566:            (total_size <= REG_SIZE) ? inst->exec_size : inst->exec_size / 2;
        -:        -: 1567:
    #####:    #####: 1568:         unsigned width = inst->src[i].stride == 0 ? 1 : exec_size;
        -:        -: 1569:         struct brw_reg reg =
    #####:    #####: 1570:            stride(byte_offset(retype(brw_vec8_grf(grf, 0), inst->src[i].type),
    #####:    #####: 1571:                               inst->src[i].offset % REG_SIZE),
    #####:    #####: 1572:                   exec_size * inst->src[i].stride,
    #####:    #####: 1573:                   width, inst->src[i].stride);
    #####:    #####: 1574:         reg.abs = inst->src[i].abs;
    #####:    #####: 1575:         reg.negate = inst->src[i].negate;
        -:        -: 1576:
    #####:    #####: 1577:         inst->src[i] = reg;
        -:        -: 1578:      }
        -:        -: 1579:   }
    #####:    #####: 1580:}
        -:        -: 1581:
        -:        -: 1582:void
    #####:    #####: 1583:fs_visitor::assign_vs_urb_setup()
        -:        -: 1584:{
    #####:    #####: 1585:   struct brw_vs_prog_data *vs_prog_data = brw_vs_prog_data(prog_data);
        -:        -: 1586:
    #####:    #####: 1587:   assert(stage == MESA_SHADER_VERTEX);
        -:        -: 1588:
        -:        -: 1589:   /* Each attribute is 4 regs. */
    #####:    #####: 1590:   this->first_non_payload_grf += 4 * vs_prog_data->nr_attribute_slots;
        -:        -: 1591:
    #####:    #####: 1592:   assert(vs_prog_data->base.urb_read_length <= 15);
        -:        -: 1593:
        -:        -: 1594:   /* Rewrite all ATTR file references to the hw grf that they land in. */
    #####:    #####: 1595:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####: 1596:      convert_attr_sources_to_hw_regs(inst);
        -:        -: 1597:   }
    #####:    #####: 1598:}
        -:        -: 1599:
        -:        -: 1600:void
    #####:    #####: 1601:fs_visitor::assign_tcs_single_patch_urb_setup()
        -:        -: 1602:{
    #####:    #####: 1603:   assert(stage == MESA_SHADER_TESS_CTRL);
        -:        -: 1604:
        -:        -: 1605:   /* Rewrite all ATTR file references to HW_REGs. */
    #####:    #####: 1606:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####: 1607:      convert_attr_sources_to_hw_regs(inst);
        -:        -: 1608:   }
    #####:    #####: 1609:}
        -:        -: 1610:
        -:        -: 1611:void
    #####:    #####: 1612:fs_visitor::assign_tes_urb_setup()
        -:        -: 1613:{
    #####:    #####: 1614:   assert(stage == MESA_SHADER_TESS_EVAL);
        -:        -: 1615:
    #####:    #####: 1616:   struct brw_vue_prog_data *vue_prog_data = brw_vue_prog_data(prog_data);
        -:        -: 1617:
    #####:    #####: 1618:   first_non_payload_grf += 8 * vue_prog_data->urb_read_length;
        -:        -: 1619:
        -:        -: 1620:   /* Rewrite all ATTR file references to HW_REGs. */
    #####:    #####: 1621:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####: 1622:      convert_attr_sources_to_hw_regs(inst);
        -:        -: 1623:   }
    #####:    #####: 1624:}
        -:        -: 1625:
        -:        -: 1626:void
    #####:    #####: 1627:fs_visitor::assign_gs_urb_setup()
        -:        -: 1628:{
    #####:    #####: 1629:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 1630:
    #####:    #####: 1631:   struct brw_vue_prog_data *vue_prog_data = brw_vue_prog_data(prog_data);
        -:        -: 1632:
        -:        -: 1633:   first_non_payload_grf +=
    #####:    #####: 1634:      8 * vue_prog_data->urb_read_length * nir->info->gs.vertices_in;
        -:        -: 1635:
    #####:    #####: 1636:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
        -:        -: 1637:      /* Rewrite all ATTR file references to GRFs. */
    #####:    #####: 1638:      convert_attr_sources_to_hw_regs(inst);
        -:        -: 1639:   }
    #####:    #####: 1640:}
        -:        -: 1641:
        -:        -: 1642:
        -:        -: 1643:/**
        -:        -: 1644: * Split large virtual GRFs into separate components if we can.
        -:        -: 1645: *
        -:        -: 1646: * This is mostly duplicated with what brw_fs_vector_splitting does,
        -:        -: 1647: * but that's really conservative because it's afraid of doing
        -:        -: 1648: * splitting that doesn't result in real progress after the rest of
        -:        -: 1649: * the optimization phases, which would cause infinite looping in
        -:        -: 1650: * optimization.  We can do it once here, safely.  This also has the
        -:        -: 1651: * opportunity to split interpolated values, or maybe even uniforms,
        -:        -: 1652: * which we don't have at the IR level.
        -:        -: 1653: *
        -:        -: 1654: * We want to split, because virtual GRFs are what we register
        -:        -: 1655: * allocate and spill (due to contiguousness requirements for some
        -:        -: 1656: * instructions), and they're what we naturally generate in the
        -:        -: 1657: * codegen process, but most virtual GRFs don't actually need to be
        -:        -: 1658: * contiguous sets of GRFs.  If we split, we'll end up with reduced
        -:        -: 1659: * live intervals and better dead code elimination and coalescing.
        -:        -: 1660: */
        -:        -: 1661:void
       10:       10: 1662:fs_visitor::split_virtual_grfs()
        -:        -: 1663:{
        -:        -: 1664:   /* Compact the register file so we eliminate dead vgrfs.  This
        -:        -: 1665:    * only defines split points for live registers, so if we have
        -:        -: 1666:    * too large dead registers they will hit assertions later.
        -:        -: 1667:    */
       10:       10: 1668:   compact_virtual_grfs();
        -:        -: 1669:
       10:       10: 1670:   int num_vars = this->alloc.count;
        -:        -: 1671:
        -:        -: 1672:   /* Count the total number of registers */
       10:       10: 1673:   int reg_count = 0;
       10:       10: 1674:   int vgrf_to_reg[num_vars];
      261:      265: 1675:   for (int i = 0; i < num_vars; i++) {
      251:      255: 1676:      vgrf_to_reg[i] = reg_count;
      251:      255: 1677:      reg_count += alloc.sizes[i];
        -:        -: 1678:   }
        -:        -: 1679:
        -:        -: 1680:   /* An array of "split points".  For each register slot, this indicates
        -:        -: 1681:    * if this slot can be separated from the previous slot.  Every time an
        -:        -: 1682:    * instruction uses multiple elements of a register (as a source or
        -:        -: 1683:    * destination), we mark the used slots as inseparable.  Then we go
        -:        -: 1684:    * through and split the registers into the smallest pieces we can.
        -:        -: 1685:    */
       10:       10: 1686:   bool split_points[reg_count];
       10:       10: 1687:   memset(split_points, 0, sizeof(split_points));
        -:        -: 1688:
        -:        -: 1689:   /* Mark all used registers as fully splittable */
      574:      638: 1690:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      564:      628: 1691:      if (inst->dst.file == VGRF) {
      368:      372: 1692:         int reg = vgrf_to_reg[inst->dst.nr];
      968:      974: 1693:         for (unsigned j = 1; j < this->alloc.sizes[inst->dst.nr]; j++)
      600:      602: 1694:            split_points[reg + j] = true;
        -:        -: 1695:      }
        -:        -: 1696:
     1238:     1330: 1697:      for (int i = 0; i < inst->sources; i++) {
      674:      702: 1698:         if (inst->src[i].file == VGRF) {
      434:      454: 1699:            int reg = vgrf_to_reg[inst->src[i].nr];
      904:      970: 1700:            for (unsigned j = 1; j < this->alloc.sizes[inst->src[i].nr]; j++)
      470:      516: 1701:               split_points[reg + j] = true;
        -:        -: 1702:         }
        -:        -: 1703:      }
        -:        -: 1704:   }
        -:        -: 1705:
      574:      638: 1706:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      564:      628: 1707:      if (inst->dst.file == VGRF) {
      368:      372: 1708:         int reg = vgrf_to_reg[inst->dst.nr] + inst->dst.offset / REG_SIZE;
      524:      530: 1709:         for (unsigned j = 1; j < regs_written(inst); j++)
      156:      158: 1710:            split_points[reg + j] = false;
        -:        -: 1711:      }
     1238:     1330: 1712:      for (int i = 0; i < inst->sources; i++) {
      674:      702: 1713:         if (inst->src[i].file == VGRF) {
      434:      454: 1714:            int reg = vgrf_to_reg[inst->src[i].nr] + inst->src[i].offset / REG_SIZE;
      635:      665: 1715:            for (unsigned j = 1; j < regs_read(inst, i); j++)
      201:      211: 1716:               split_points[reg + j] = false;
        -:        -: 1717:         }
        -:        -: 1718:      }
        -:        -: 1719:   }
        -:        -: 1720:
       10:       10: 1721:   int new_virtual_grf[reg_count];
       10:       10: 1722:   int new_reg_offset[reg_count];
        -:        -: 1723:
       10:       10: 1724:   int reg = 0;
      261:      265: 1725:   for (int i = 0; i < num_vars; i++) {
        -:        -: 1726:      /* The first one should always be 0 as a quick sanity check. */
      251:      255: 1727:      assert(split_points[reg] == false);
        -:        -: 1728:
        -:        -: 1729:      /* j = 0 case */
      251:      255: 1730:      new_reg_offset[reg] = 0;
      251:      255: 1731:      reg++;
      251:      255: 1732:      int offset = 1;
        -:        -: 1733:
        -:        -: 1734:      /* j > 0 case */
      474:      480: 1735:      for (unsigned j = 1; j < alloc.sizes[i]; j++) {
        -:        -: 1736:         /* If this is a split point, reset the offset to 0 and allocate a
        -:        -: 1737:          * new virtual GRF for the previous offset many registers
        -:        -: 1738:          */
      223:      225: 1739:         if (split_points[reg]) {
       60:       60: 1740:            assert(offset <= MAX_VGRF_SIZE);
       60:       60: 1741:            int grf = alloc.allocate(offset);
      145:      145: 1742:            for (int k = reg - offset; k < reg; k++)
       85:       85: 1743:               new_virtual_grf[k] = grf;
       60:       60: 1744:            offset = 0;
        -:        -: 1745:         }
      223:      225: 1746:         new_reg_offset[reg] = offset;
      223:      225: 1747:         offset++;
      223:      225: 1748:         reg++;
        -:        -: 1749:      }
        -:        -: 1750:
        -:        -: 1751:      /* The last one gets the original register number */
      251:      255: 1752:      assert(offset <= MAX_VGRF_SIZE);
      251:      255: 1753:      alloc.sizes[i] = offset;
      640:      650: 1754:      for (int k = reg - offset; k < reg; k++)
      389:      395: 1755:         new_virtual_grf[k] = i;
        -:        -: 1756:   }
       10:       10: 1757:   assert(reg == reg_count);
        -:        -: 1758:
      574:      638: 1759:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      564:      628: 1760:      if (inst->dst.file == VGRF) {
      368:      372: 1761:         reg = vgrf_to_reg[inst->dst.nr] + inst->dst.offset / REG_SIZE;
      368:      372: 1762:         inst->dst.nr = new_virtual_grf[reg];
      368:      372: 1763:         inst->dst.offset = new_reg_offset[reg] * REG_SIZE +
      368:      372: 1764:                            inst->dst.offset % REG_SIZE;
      368:      372: 1765:         assert((unsigned)new_reg_offset[reg] < alloc.sizes[new_virtual_grf[reg]]);
        -:        -: 1766:      }
     1238:     1330: 1767:      for (int i = 0; i < inst->sources; i++) {
      674:      702: 1768:	 if (inst->src[i].file == VGRF) {
      434:      454: 1769:            reg = vgrf_to_reg[inst->src[i].nr] + inst->src[i].offset / REG_SIZE;
      434:      454: 1770:            inst->src[i].nr = new_virtual_grf[reg];
      434:      454: 1771:            inst->src[i].offset = new_reg_offset[reg] * REG_SIZE +
      434:      454: 1772:                                  inst->src[i].offset % REG_SIZE;
      434:      454: 1773:            assert((unsigned)new_reg_offset[reg] < alloc.sizes[new_virtual_grf[reg]]);
        -:        -: 1774:         }
        -:        -: 1775:      }
        -:        -: 1776:   }
       20:       20: 1777:   invalidate_live_intervals();
       10:       10: 1778:}
        -:        -: 1779:
        -:        -: 1780:/**
        -:        -: 1781: * Remove unused virtual GRFs and compact the virtual_grf_* arrays.
        -:        -: 1782: *
        -:        -: 1783: * During code generation, we create tons of temporary variables, many of
        -:        -: 1784: * which get immediately killed and are never used again.  Yet, in later
        -:        -: 1785: * optimization and analysis passes, such as compute_live_intervals, we need
        -:        -: 1786: * to loop over all the virtual GRFs.  Compacting them can save a lot of
        -:        -: 1787: * overhead.
        -:        -: 1788: */
        -:        -: 1789:bool
       22:       24: 1790:fs_visitor::compact_virtual_grfs()
        -:        -: 1791:{
       22:       24: 1792:   bool progress = false;
       22:       24: 1793:   int remap_table[this->alloc.count];
       22:       24: 1794:   memset(remap_table, -1, sizeof(remap_table));
        -:        -: 1795:
        -:        -: 1796:   /* Mark which virtual GRFs are used. */
     1161:     1484: 1797:   foreach_block_and_inst(block, const fs_inst, inst, cfg) {
     1139:     1460: 1798:      if (inst->dst.file == VGRF)
      709:      818: 1799:         remap_table[inst->dst.nr] = 0;
        -:        -: 1800:
     2587:     3212: 1801:      for (int i = 0; i < inst->sources; i++) {
     1448:     1752: 1802:         if (inst->src[i].file == VGRF)
      902:     1090: 1803:            remap_table[inst->src[i].nr] = 0;
        -:        -: 1804:      }
        -:        -: 1805:   }
        -:        -: 1806:
        -:        -: 1807:   /* Compact the GRF arrays. */
       22:       24: 1808:   int new_index = 0;
      676:      767: 1809:   for (unsigned i = 0; i < this->alloc.count; i++) {
      654:      743: 1810:      if (remap_table[i] == -1) {
        -:        -: 1811:         /* We just found an unused register.  This means that we are
        -:        -: 1812:          * actually going to compact something.
        -:        -: 1813:          */
      152:      156: 1814:         progress = true;
        -:        -: 1815:      } else {
      502:      587: 1816:         remap_table[i] = new_index;
      502:      587: 1817:         alloc.sizes[new_index] = alloc.sizes[i];
      502:      587: 1818:         invalidate_live_intervals();
      502:      587: 1819:         ++new_index;
        -:        -: 1820:      }
        -:        -: 1821:   }
        -:        -: 1822:
       22:       24: 1823:   this->alloc.count = new_index;
        -:        -: 1824:
        -:        -: 1825:   /* Patch all the instructions to use the newly renumbered registers */
     1161:     1484: 1826:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
     1139:     1460: 1827:      if (inst->dst.file == VGRF)
      709:      818: 1828:         inst->dst.nr = remap_table[inst->dst.nr];
        -:        -: 1829:
     2587:     3212: 1830:      for (int i = 0; i < inst->sources; i++) {
     1448:     1752: 1831:         if (inst->src[i].file == VGRF)
      902:     1090: 1832:            inst->src[i].nr = remap_table[inst->src[i].nr];
        -:        -: 1833:      }
        -:        -: 1834:   }
        -:        -: 1835:
        -:        -: 1836:   /* Patch all the references to delta_xy, since they're used in register
        -:        -: 1837:    * allocation.  If they're unused, switch them to BAD_FILE so we don't
        -:        -: 1838:    * think some random VGRF is delta_xy.
        -:        -: 1839:    */
      154:      168: 1840:   for (unsigned i = 0; i < ARRAY_SIZE(delta_xy); i++) {
      132:      144: 1841:      if (delta_xy[i].file == VGRF) {
    #####:    #####: 1842:         if (remap_table[delta_xy[i].nr] != -1) {
    #####:    #####: 1843:            delta_xy[i].nr = remap_table[delta_xy[i].nr];
        -:        -: 1844:         } else {
    #####:    #####: 1845:            delta_xy[i].file = BAD_FILE;
        -:        -: 1846:         }
        -:        -: 1847:      }
        -:        -: 1848:   }
        -:        -: 1849:
       44:       48: 1850:   return progress;
        -:        -: 1851:}
        -:        -: 1852:
        -:        -: 1853:static void
       22:       22: 1854:set_push_pull_constant_loc(unsigned uniform, int *chunk_start,
        -:        -: 1855:                           unsigned *max_chunk_bitsize,
        -:        -: 1856:                           bool contiguous, unsigned bitsize,
        -:        -: 1857:                           const unsigned target_bitsize,
        -:        -: 1858:                           int *push_constant_loc, int *pull_constant_loc,
        -:        -: 1859:                           unsigned *num_push_constants,
        -:        -: 1860:                           unsigned *num_pull_constants,
        -:        -: 1861:                           const unsigned max_push_components,
        -:        -: 1862:                           const unsigned max_chunk_size,
        -:        -: 1863:                           struct brw_stage_prog_data *stage_prog_data)
        -:        -: 1864:{
        -:        -: 1865:   /* This is the first live uniform in the chunk */
       22:       22: 1866:   if (*chunk_start < 0)
       22:       22: 1867:      *chunk_start = uniform;
        -:        -: 1868:
        -:        -: 1869:   /* Keep track of the maximum bit size access in contiguous uniforms */
       22:       22: 1870:   *max_chunk_bitsize = MAX2(*max_chunk_bitsize, bitsize);
        -:        -: 1871:
        -:        -: 1872:   /* If this element does not need to be contiguous with the next, we
        -:        -: 1873:    * split at this point and everything between chunk_start and u forms a
        -:        -: 1874:    * single chunk.
        -:        -: 1875:    */
       22:       22: 1876:   if (!contiguous) {
        -:        -: 1877:      /* If bitsize doesn't match the target one, skip it */
       22:       22: 1878:      if (*max_chunk_bitsize != target_bitsize) {
        -:        -: 1879:         /* FIXME: right now we only support 32 and 64-bit accesses */
       11:       11: 1880:         assert(*max_chunk_bitsize == 4 || *max_chunk_bitsize == 8);
       11:       11: 1881:         *max_chunk_bitsize = 0;
       11:       11: 1882:         *chunk_start = -1;
       11:       11: 1883:         return;
        -:        -: 1884:      }
        -:        -: 1885:
       11:       11: 1886:      unsigned chunk_size = uniform - *chunk_start + 1;
        -:        -: 1887:
        -:        -: 1888:      /* Decide whether we should push or pull this parameter.  In the
        -:        -: 1889:       * Vulkan driver, push constants are explicitly exposed via the API
        -:        -: 1890:       * so we push everything.  In GL, we only push small arrays.
        -:        -: 1891:       */
       22:       22: 1892:      if (stage_prog_data->pull_param == NULL ||
       22:       22: 1893:          (*num_push_constants + chunk_size <= max_push_components &&
        -:        -: 1894:           chunk_size <= max_chunk_size)) {
       11:       11: 1895:         assert(*num_push_constants + chunk_size <= max_push_components);
       22:       22: 1896:         for (unsigned j = *chunk_start; j <= uniform; j++)
       22:       22: 1897:            push_constant_loc[j] = (*num_push_constants)++;
        -:        -: 1898:      } else {
    #####:    #####: 1899:         for (unsigned j = *chunk_start; j <= uniform; j++)
    #####:    #####: 1900:            pull_constant_loc[j] = (*num_pull_constants)++;
        -:        -: 1901:      }
        -:        -: 1902:
       11:       11: 1903:      *max_chunk_bitsize = 0;
       11:       11: 1904:      *chunk_start = -1;
        -:        -: 1905:   }
        -:        -: 1906:}
        -:        -: 1907:
        -:        -: 1908:/**
        -:        -: 1909: * Assign UNIFORM file registers to either push constants or pull constants.
        -:        -: 1910: *
        -:        -: 1911: * We allow a fragment shader to have more than the specified minimum
        -:        -: 1912: * maximum number of fragment shader uniform components (64).  If
        -:        -: 1913: * there are too many of these, they'd fill up all of register space.
        -:        -: 1914: * So, this will push some of them out to the pull constant buffer and
        -:        -: 1915: * update the program to load them.
        -:        -: 1916: */
        -:        -: 1917:void
        6:        6: 1918:fs_visitor::assign_constant_locations()
        -:        -: 1919:{
        -:        -: 1920:   /* Only the first compile gets to decide on locations. */
        6:        6: 1921:   if (dispatch_width != min_dispatch_width)
        3:        3: 1922:      return;
        -:        -: 1923:
        3:        3: 1924:   bool is_live[uniforms];
        3:        3: 1925:   memset(is_live, 0, sizeof(is_live));
        3:        3: 1926:   unsigned bitsize_access[uniforms];
        3:        3: 1927:   memset(bitsize_access, 0, sizeof(bitsize_access));
        -:        -: 1928:
        -:        -: 1929:   /* For each uniform slot, a value of true indicates that the given slot and
        -:        -: 1930:    * the next slot must remain contiguous.  This is used to keep us from
        -:        -: 1931:    * splitting arrays apart.
        -:        -: 1932:    */
        3:        3: 1933:   bool contiguous[uniforms];
        3:        3: 1934:   memset(contiguous, 0, sizeof(contiguous));
        -:        -: 1935:
        -:        -: 1936:   int thread_local_id_index =
        3:        3: 1937:      (stage == MESA_SHADER_COMPUTE) ?
        3:        3: 1938:      brw_cs_prog_data(stage_prog_data)->thread_local_id_index : -1;
        -:        -: 1939:
        -:        -: 1940:   /* First, we walk through the instructions and do two things:
        -:        -: 1941:    *
        -:        -: 1942:    *  1) Figure out which uniforms are live.
        -:        -: 1943:    *
        -:        -: 1944:    *  2) Mark any indirectly used ranges of registers as contiguous.
        -:        -: 1945:    *
        -:        -: 1946:    * Note that we don't move constant-indexed accesses to arrays.  No
        -:        -: 1947:    * testing has been done of the performance impact of this choice.
        -:        -: 1948:    */
      179:      205: 1949:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      386:      420: 1950:      for (int i = 0 ; i < inst->sources; i++) {
      210:      218: 1951:         if (inst->src[i].file != UNIFORM)
      197:      205: 1952:            continue;
        -:        -: 1953:
       13:       13: 1954:         int constant_nr = inst->src[i].nr + inst->src[i].offset / 4;
        -:        -: 1955:
       13:       13: 1956:         if (inst->opcode == SHADER_OPCODE_MOV_INDIRECT && i == 0) {
    #####:    #####: 1957:            assert(inst->src[2].ud % 4 == 0);
    #####:    #####: 1958:            unsigned last = constant_nr + (inst->src[2].ud / 4) - 1;
    #####:    #####: 1959:            assert(last < uniforms);
        -:        -: 1960:
    #####:    #####: 1961:            for (unsigned j = constant_nr; j < last; j++) {
    #####:    #####: 1962:               is_live[j] = true;
    #####:    #####: 1963:               contiguous[j] = true;
    #####:    #####: 1964:               bitsize_access[j] = MAX2(bitsize_access[j], type_sz(inst->src[i].type));
        -:        -: 1965:            }
    #####:    #####: 1966:            is_live[last] = true;
    #####:    #####: 1967:            bitsize_access[last] = MAX2(bitsize_access[last], type_sz(inst->src[i].type));
        -:        -: 1968:         } else {
       13:       13: 1969:            if (constant_nr >= 0 && constant_nr < (int) uniforms) {
       26:       26: 1970:               int regs_read = inst->components_read(i) *
       26:       26: 1971:                  type_sz(inst->src[i].type) / 4;
       26:       26: 1972:               for (int j = 0; j < regs_read; j++) {
       13:       13: 1973:                  is_live[constant_nr + j] = true;
       13:       13: 1974:                  bitsize_access[constant_nr + j] =
       13:       13: 1975:                     MAX2(bitsize_access[constant_nr + j], type_sz(inst->src[i].type));
        -:        -: 1976:               }
        -:        -: 1977:            }
        -:        -: 1978:         }
        -:        -: 1979:      }
        -:        -: 1980:   }
        -:        -: 1981:
        3:        3: 1982:   if (thread_local_id_index >= 0 && !is_live[thread_local_id_index])
    #####:    #####: 1983:      thread_local_id_index = -1;
        -:        -: 1984:
        -:        -: 1985:   /* Only allow 16 registers (128 uniform components) as push constants.
        -:        -: 1986:    *
        -:        -: 1987:    * Just demote the end of the list.  We could probably do better
        -:        -: 1988:    * here, demoting things that are rarely used in the program first.
        -:        -: 1989:    *
        -:        -: 1990:    * If changing this value, note the limitation about total_regs in
        -:        -: 1991:    * brw_curbe.c.
        -:        -: 1992:    */
        3:        3: 1993:   unsigned int max_push_components = 16 * 8;
        3:        3: 1994:   if (thread_local_id_index >= 0)
    #####:    #####: 1995:      max_push_components--; /* Save a slot for the thread ID */
        -:        -: 1996:
        -:        -: 1997:   /* We push small arrays, but no bigger than 16 floats.  This is big enough
        -:        -: 1998:    * for a vec4 but hopefully not large enough to push out other stuff.  We
        -:        -: 1999:    * should probably use a better heuristic at some point.
        -:        -: 2000:    */
        3:        3: 2001:   const unsigned int max_chunk_size = 16;
        -:        -: 2002:
        3:        3: 2003:   unsigned int num_push_constants = 0;
        3:        3: 2004:   unsigned int num_pull_constants = 0;
        -:        -: 2005:
        3:        3: 2006:   push_constant_loc = ralloc_array(mem_ctx, int, uniforms);
        3:        3: 2007:   pull_constant_loc = ralloc_array(mem_ctx, int, uniforms);
        -:        -: 2008:
        -:        -: 2009:   /* Default to -1 meaning no location */
        3:        3: 2010:   memset(push_constant_loc, -1, uniforms * sizeof(*push_constant_loc));
        3:        3: 2011:   memset(pull_constant_loc, -1, uniforms * sizeof(*pull_constant_loc));
        -:        -: 2012:
        3:        3: 2013:   int chunk_start = -1;
        3:        3: 2014:   unsigned max_chunk_bitsize = 0;
        -:        -: 2015:
        -:        -: 2016:   /* First push 64-bit uniforms to ensure they are properly aligned */
        3:        3: 2017:   const unsigned uniform_64_bit_size = type_sz(BRW_REGISTER_TYPE_DF);
       14:       14: 2018:   for (unsigned u = 0; u < uniforms; u++) {
       11:       11: 2019:      if (!is_live[u])
    #####:    #####: 2020:         continue;
        -:        -: 2021:
       22:       22: 2022:      set_push_pull_constant_loc(u, &chunk_start, &max_chunk_bitsize,
       11:       11: 2023:                                 contiguous[u], bitsize_access[u],
        -:        -: 2024:                                 uniform_64_bit_size,
        -:        -: 2025:                                 push_constant_loc, pull_constant_loc,
        -:        -: 2026:                                 &num_push_constants, &num_pull_constants,
        -:        -: 2027:                                 max_push_components, max_chunk_size,
       22:       22: 2028:                                 stage_prog_data);
        -:        -: 2029:
        -:        -: 2030:   }
        -:        -: 2031:
        -:        -: 2032:   /* Then push the rest of uniforms */
        3:        3: 2033:   const unsigned uniform_32_bit_size = type_sz(BRW_REGISTER_TYPE_F);
       14:       14: 2034:   for (unsigned u = 0; u < uniforms; u++) {
       11:       11: 2035:      if (!is_live[u])
    #####:    #####: 2036:         continue;
        -:        -: 2037:
        -:        -: 2038:      /* Skip thread_local_id_index to put it in the last push register. */
       11:       11: 2039:      if (thread_local_id_index == (int)u)
    #####:    #####: 2040:         continue;
        -:        -: 2041:
       22:       22: 2042:      set_push_pull_constant_loc(u, &chunk_start, &max_chunk_bitsize,
       11:       11: 2043:                                 contiguous[u], bitsize_access[u],
        -:        -: 2044:                                 uniform_32_bit_size,
        -:        -: 2045:                                 push_constant_loc, pull_constant_loc,
        -:        -: 2046:                                 &num_push_constants, &num_pull_constants,
        -:        -: 2047:                                 max_push_components, max_chunk_size,
       22:       22: 2048:                                 stage_prog_data);
        -:        -: 2049:   }
        -:        -: 2050:
        -:        -: 2051:   /* Add the CS local thread ID uniform at the end of the push constants */
        3:        3: 2052:   if (thread_local_id_index >= 0)
    #####:    #####: 2053:      push_constant_loc[thread_local_id_index] = num_push_constants++;
        -:        -: 2054:
        -:        -: 2055:   /* As the uniforms are going to be reordered, take the data from a temporary
        -:        -: 2056:    * copy of the original param[].
        -:        -: 2057:    */
        3:        3: 2058:   gl_constant_value **param = ralloc_array(NULL, gl_constant_value*,
        -:        -: 2059:                                            stage_prog_data->nr_params);
        3:        3: 2060:   memcpy(param, stage_prog_data->param,
        6:        6: 2061:          sizeof(gl_constant_value*) * stage_prog_data->nr_params);
        3:        3: 2062:   stage_prog_data->nr_params = num_push_constants;
        3:        3: 2063:   stage_prog_data->nr_pull_params = num_pull_constants;
        -:        -: 2064:
        -:        -: 2065:   /* Up until now, the param[] array has been indexed by reg + offset
        -:        -: 2066:    * of UNIFORM registers.  Move pull constants into pull_param[] and
        -:        -: 2067:    * condense param[] to only contain the uniforms we chose to push.
        -:        -: 2068:    *
        -:        -: 2069:    * NOTE: Because we are condensing the params[] array, we know that
        -:        -: 2070:    * push_constant_loc[i] <= i and we can do it in one smooth loop without
        -:        -: 2071:    * having to make a copy.
        -:        -: 2072:    */
        3:        3: 2073:   int new_thread_local_id_index = -1;
       14:       14: 2074:   for (unsigned int i = 0; i < uniforms; i++) {
       11:       11: 2075:      const gl_constant_value *value = param[i];
        -:        -: 2076:
       11:       11: 2077:      if (pull_constant_loc[i] != -1) {
    #####:    #####: 2078:         stage_prog_data->pull_param[pull_constant_loc[i]] = value;
       11:       11: 2079:      } else if (push_constant_loc[i] != -1) {
       11:       11: 2080:         stage_prog_data->param[push_constant_loc[i]] = value;
       11:       11: 2081:         if (thread_local_id_index == (int)i)
    #####:    #####: 2082:            new_thread_local_id_index = push_constant_loc[i];
        -:        -: 2083:      }
        -:        -: 2084:   }
        3:        3: 2085:   ralloc_free(param);
        -:        -: 2086:
        3:        3: 2087:   if (stage == MESA_SHADER_COMPUTE)
    #####:    #####: 2088:      brw_cs_prog_data(stage_prog_data)->thread_local_id_index =
        6:        6: 2089:         new_thread_local_id_index;
        -:        -: 2090:}
        -:        -: 2091:
        -:        -: 2092:/**
        -:        -: 2093: * Replace UNIFORM register file access with either UNIFORM_PULL_CONSTANT_LOAD
        -:        -: 2094: * or VARYING_PULL_CONSTANT_LOAD instructions which load values into VGRFs.
        -:        -: 2095: */
        -:        -: 2096:void
        5:        5: 2097:fs_visitor::lower_constant_loads()
        -:        -: 2098:{
        5:        5: 2099:   const unsigned index = stage_prog_data->binding_table.pull_constants_start;
        -:        -: 2100:
      345:      397: 2101:   foreach_block_and_inst_safe (block, fs_inst, inst, cfg) {
        -:        -: 2102:      /* Set up the annotation tracking for new generated instructions. */
      340:      392: 2103:      const fs_builder ibld(this, block, inst);
        -:        -: 2104:
      742:      810: 2105:      for (int i = 0; i < inst->sources; i++) {
      402:      418: 2106:	 if (inst->src[i].file != UNIFORM)
      778:      810: 2107:	    continue;
        -:        -: 2108:
        -:        -: 2109:         /* We'll handle this case later */
       26:       26: 2110:         if (inst->opcode == SHADER_OPCODE_MOV_INDIRECT && i == 0)
    #####:    #####: 2111:            continue;
        -:        -: 2112:
       26:       26: 2113:         unsigned location = inst->src[i].nr + inst->src[i].offset / 4;
       26:       26: 2114:         if (location >= uniforms)
    #####:    #####: 2115:            continue; /* Out of bounds access */
        -:        -: 2116:
       26:       26: 2117:         int pull_index = pull_constant_loc[location];
        -:        -: 2118:
       26:       26: 2119:         if (pull_index == -1)
       26:       26: 2120:	    continue;
        -:        -: 2121:
    #####:    #####: 2122:         assert(inst->src[i].stride == 0);
        -:        -: 2123:
    #####:    #####: 2124:         const unsigned index = stage_prog_data->binding_table.pull_constants_start;
    #####:    #####: 2125:         const unsigned block_sz = 64; /* Fetch one cacheline at a time. */
    #####:    #####: 2126:         const fs_builder ubld = ibld.exec_all().group(block_sz / 4, 0);
    #####:    #####: 2127:         const fs_reg dst = ubld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 2128:         const unsigned base = pull_index * 4;
        -:        -: 2129:
    #####:    #####: 2130:         ubld.emit(FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD,
    #####:    #####: 2131:                   dst, brw_imm_ud(index), brw_imm_ud(base & ~(block_sz - 1)));
        -:        -: 2132:
        -:        -: 2133:         /* Rewrite the instruction to use the temporary VGRF. */
    #####:    #####: 2134:         inst->src[i].file = VGRF;
    #####:    #####: 2135:         inst->src[i].nr = dst.nr;
    #####:    #####: 2136:         inst->src[i].offset = (base & (block_sz - 1)) +
    #####:    #####: 2137:                               inst->src[i].offset % 4;
        -:        -: 2138:
    #####:    #####: 2139:         brw_mark_surface_used(prog_data, index);
        -:        -: 2140:      }
        -:        -: 2141:
      340:      392: 2142:      if (inst->opcode == SHADER_OPCODE_MOV_INDIRECT &&
    #####:    #####: 2143:          inst->src[0].file == UNIFORM) {
        -:        -: 2144:
    #####:    #####: 2145:         unsigned location = inst->src[0].nr + inst->src[0].offset / 4;
    #####:    #####: 2146:         if (location >= uniforms)
    #####:    #####: 2147:            continue; /* Out of bounds access */
        -:        -: 2148:
    #####:    #####: 2149:         int pull_index = pull_constant_loc[location];
        -:        -: 2150:
    #####:    #####: 2151:         if (pull_index == -1)
    #####:    #####: 2152:	    continue;
        -:        -: 2153:
    #####:    #####: 2154:         VARYING_PULL_CONSTANT_LOAD(ibld, inst->dst,
        -:        -: 2155:                                    brw_imm_ud(index),
    #####:    #####: 2156:                                    inst->src[1],
    #####:    #####: 2157:                                    pull_index * 4);
    #####:    #####: 2158:         inst->remove(block);
        -:        -: 2159:
    #####:    #####: 2160:         brw_mark_surface_used(prog_data, index);
        -:        -: 2161:      }
        -:        -: 2162:   }
        5:        5: 2163:   invalidate_live_intervals();
        5:        5: 2164:}
        -:        -: 2165:
        -:        -: 2166:bool
       12:       14: 2167:fs_visitor::opt_algebraic()
        -:        -: 2168:{
       12:       14: 2169:   bool progress = false;
        -:        -: 2170:
      733:     1032: 2171:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      721:     1018: 2172:      switch (inst->opcode) {
        -:        -: 2173:      case BRW_OPCODE_MOV:
      213:      265: 2174:         if (inst->src[0].file != IMM)
      152:      182: 2175:            break;
        -:        -: 2176:
       61:       83: 2177:         if (inst->saturate) {
    #####:    #####: 2178:            if (inst->dst.type != inst->src[0].type)
    #####:    #####: 2179:               assert(!"unimplemented: saturate mixed types");
        -:        -: 2180:
    #####:    #####: 2181:            if (brw_saturate_immediate(inst->dst.type,
    #####:    #####: 2182:                                       &inst->src[0].as_brw_reg())) {
    #####:    #####: 2183:               inst->saturate = false;
    #####:    #####: 2184:               progress = true;
        -:        -: 2185:            }
        -:        -: 2186:         }
       61:       83: 2187:         break;
        -:        -: 2188:
        -:        -: 2189:      case BRW_OPCODE_MUL:
       54:       72: 2190:	 if (inst->src[1].file != IMM)
       54:       72: 2191:	    continue;
        -:        -: 2192:
        -:        -: 2193:	 /* a * 1.0 = a */
    #####:    #####: 2194:	 if (inst->src[1].is_one()) {
    #####:    #####: 2195:	    inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2196:	    inst->src[1] = reg_undef;
    #####:    #####: 2197:	    progress = true;
    #####:    #####: 2198:	    break;
        -:        -: 2199:	 }
        -:        -: 2200:
        -:        -: 2201:         /* a * -1.0 = -a */
    #####:    #####: 2202:         if (inst->src[1].is_negative_one()) {
    #####:    #####: 2203:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2204:            inst->src[0].negate = !inst->src[0].negate;
    #####:    #####: 2205:            inst->src[1] = reg_undef;
    #####:    #####: 2206:            progress = true;
    #####:    #####: 2207:            break;
        -:        -: 2208:         }
        -:        -: 2209:
        -:        -: 2210:         /* a * 0.0 = 0.0 */
    #####:    #####: 2211:         if (inst->src[1].is_zero()) {
    #####:    #####: 2212:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2213:            inst->src[0] = inst->src[1];
    #####:    #####: 2214:            inst->src[1] = reg_undef;
    #####:    #####: 2215:            progress = true;
    #####:    #####: 2216:            break;
        -:        -: 2217:         }
        -:        -: 2218:
    #####:    #####: 2219:         if (inst->src[0].file == IMM) {
    #####:    #####: 2220:            assert(inst->src[0].type == BRW_REGISTER_TYPE_F);
    #####:    #####: 2221:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2222:            inst->src[0].f *= inst->src[1].f;
    #####:    #####: 2223:            inst->src[1] = reg_undef;
    #####:    #####: 2224:            progress = true;
    #####:    #####: 2225:            break;
        -:        -: 2226:         }
    #####:    #####: 2227:	 break;
        -:        -: 2228:      case BRW_OPCODE_ADD:
       55:       72: 2229:         if (inst->src[1].file != IMM)
       30:       36: 2230:            continue;
        -:        -: 2231:
        -:        -: 2232:         /* a + 0.0 = a */
       25:       36: 2233:         if (inst->src[1].is_zero()) {
    #####:    #####: 2234:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2235:            inst->src[1] = reg_undef;
    #####:    #####: 2236:            progress = true;
    #####:    #####: 2237:            break;
        -:        -: 2238:         }
        -:        -: 2239:
       25:       36: 2240:         if (inst->src[0].file == IMM) {
    #####:    #####: 2241:            assert(inst->src[0].type == BRW_REGISTER_TYPE_F);
    #####:    #####: 2242:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2243:            inst->src[0].f += inst->src[1].f;
    #####:    #####: 2244:            inst->src[1] = reg_undef;
    #####:    #####: 2245:            progress = true;
    #####:    #####: 2246:            break;
        -:        -: 2247:         }
       25:       36: 2248:         break;
        -:        -: 2249:      case BRW_OPCODE_OR:
    #####:    #####: 2250:         if (inst->src[0].equals(inst->src[1])) {
    #####:    #####: 2251:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2252:            inst->src[1] = reg_undef;
    #####:    #####: 2253:            progress = true;
    #####:    #####: 2254:            break;
        -:        -: 2255:         }
    #####:    #####: 2256:         break;
        -:        -: 2257:      case BRW_OPCODE_LRP:
    #####:    #####: 2258:         if (inst->src[1].equals(inst->src[2])) {
    #####:    #####: 2259:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2260:            inst->src[0] = inst->src[1];
    #####:    #####: 2261:            inst->src[1] = reg_undef;
    #####:    #####: 2262:            inst->src[2] = reg_undef;
    #####:    #####: 2263:            progress = true;
    #####:    #####: 2264:            break;
        -:        -: 2265:         }
    #####:    #####: 2266:         break;
        -:        -: 2267:      case BRW_OPCODE_CMP:
      186:      296: 2268:         if (inst->conditional_mod == BRW_CONDITIONAL_GE &&
       54:       88: 2269:             inst->src[0].abs &&
       66:      104: 2270:             inst->src[0].negate &&
    #####:    #####: 2271:             inst->src[1].is_zero()) {
    #####:    #####: 2272:            inst->src[0].abs = false;
    #####:    #####: 2273:            inst->src[0].negate = false;
    #####:    #####: 2274:            inst->conditional_mod = BRW_CONDITIONAL_Z;
    #####:    #####: 2275:            progress = true;
    #####:    #####: 2276:            break;
        -:        -: 2277:         }
       66:      104: 2278:         break;
        -:        -: 2279:      case BRW_OPCODE_SEL:
       12:       16: 2280:         if (inst->src[0].equals(inst->src[1])) {
    #####:    #####: 2281:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2282:            inst->src[1] = reg_undef;
    #####:    #####: 2283:            inst->predicate = BRW_PREDICATE_NONE;
    #####:    #####: 2284:            inst->predicate_inverse = false;
    #####:    #####: 2285:            progress = true;
       12:       16: 2286:         } else if (inst->saturate && inst->src[1].file == IMM) {
    #####:    #####: 2287:            switch (inst->conditional_mod) {
        -:        -: 2288:            case BRW_CONDITIONAL_LE:
        -:        -: 2289:            case BRW_CONDITIONAL_L:
    #####:    #####: 2290:               switch (inst->src[1].type) {
        -:        -: 2291:               case BRW_REGISTER_TYPE_F:
    #####:    #####: 2292:                  if (inst->src[1].f >= 1.0f) {
    #####:    #####: 2293:                     inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2294:                     inst->src[1] = reg_undef;
    #####:    #####: 2295:                     inst->conditional_mod = BRW_CONDITIONAL_NONE;
    #####:    #####: 2296:                     progress = true;
        -:        -: 2297:                  }
    #####:    #####: 2298:                  break;
        -:        -: 2299:               default:
    #####:    #####: 2300:                  break;
        -:        -: 2301:               }
    #####:    #####: 2302:               break;
        -:        -: 2303:            case BRW_CONDITIONAL_GE:
        -:        -: 2304:            case BRW_CONDITIONAL_G:
    #####:    #####: 2305:               switch (inst->src[1].type) {
        -:        -: 2306:               case BRW_REGISTER_TYPE_F:
    #####:    #####: 2307:                  if (inst->src[1].f <= 0.0f) {
    #####:    #####: 2308:                     inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2309:                     inst->src[1] = reg_undef;
    #####:    #####: 2310:                     inst->conditional_mod = BRW_CONDITIONAL_NONE;
    #####:    #####: 2311:                     progress = true;
        -:        -: 2312:                  }
    #####:    #####: 2313:                  break;
        -:        -: 2314:               default:
    #####:    #####: 2315:                  break;
        -:        -: 2316:               }
        -:        -: 2317:            default:
    #####:    #####: 2318:               break;
        -:        -: 2319:            }
        -:        -: 2320:         }
       12:       16: 2321:         break;
        -:        -: 2322:      case BRW_OPCODE_MAD:
       36:       48: 2323:         if (inst->src[1].is_zero() || inst->src[2].is_zero()) {
    #####:    #####: 2324:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2325:            inst->src[1] = reg_undef;
    #####:    #####: 2326:            inst->src[2] = reg_undef;
    #####:    #####: 2327:            progress = true;
       36:       48: 2328:         } else if (inst->src[0].is_zero()) {
    #####:    #####: 2329:            inst->opcode = BRW_OPCODE_MUL;
    #####:    #####: 2330:            inst->src[0] = inst->src[2];
    #####:    #####: 2331:            inst->src[2] = reg_undef;
    #####:    #####: 2332:            progress = true;
       36:       48: 2333:         } else if (inst->src[1].is_one()) {
    #####:    #####: 2334:            inst->opcode = BRW_OPCODE_ADD;
    #####:    #####: 2335:            inst->src[1] = inst->src[2];
    #####:    #####: 2336:            inst->src[2] = reg_undef;
    #####:    #####: 2337:            progress = true;
       36:       48: 2338:         } else if (inst->src[2].is_one()) {
    #####:    #####: 2339:            inst->opcode = BRW_OPCODE_ADD;
    #####:    #####: 2340:            inst->src[2] = reg_undef;
    #####:    #####: 2341:            progress = true;
       36:       48: 2342:         } else if (inst->src[1].file == IMM && inst->src[2].file == IMM) {
    #####:    #####: 2343:            inst->opcode = BRW_OPCODE_ADD;
    #####:    #####: 2344:            inst->src[1].f *= inst->src[2].f;
    #####:    #####: 2345:            inst->src[2] = reg_undef;
    #####:    #####: 2346:            progress = true;
        -:        -: 2347:         }
       36:       48: 2348:         break;
        -:        -: 2349:      case SHADER_OPCODE_BROADCAST:
    #####:    #####: 2350:         if (is_uniform(inst->src[0])) {
    #####:    #####: 2351:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2352:            inst->sources = 1;
    #####:    #####: 2353:            inst->force_writemask_all = true;
    #####:    #####: 2354:            progress = true;
    #####:    #####: 2355:         } else if (inst->src[1].file == IMM) {
    #####:    #####: 2356:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2357:            inst->src[0] = component(inst->src[0],
    #####:    #####: 2358:                                     inst->src[1].ud);
    #####:    #####: 2359:            inst->sources = 1;
    #####:    #####: 2360:            inst->force_writemask_all = true;
    #####:    #####: 2361:            progress = true;
        -:        -: 2362:         }
    #####:    #####: 2363:         break;
        -:        -: 2364:
        -:        -: 2365:      default:
      285:      441: 2366:	 break;
        -:        -: 2367:      }
        -:        -: 2368:
        -:        -: 2369:      /* Swap if src[0] is immediate. */
      637:      910: 2370:      if (progress && inst->is_commutative()) {
    #####:    #####: 2371:         if (inst->src[0].file == IMM) {
    #####:    #####: 2372:            fs_reg tmp = inst->src[1];
    #####:    #####: 2373:            inst->src[1] = inst->src[0];
    #####:    #####: 2374:            inst->src[0] = tmp;
        -:        -: 2375:         }
        -:        -: 2376:      }
        -:        -: 2377:   }
       12:       14: 2378:   return progress;
        -:        -: 2379:}
        -:        -: 2380:
        -:        -: 2381:/**
        -:        -: 2382: * Optimize sample messages that have constant zero values for the trailing
        -:        -: 2383: * texture coordinates. We can just reduce the message length for these
        -:        -: 2384: * instructions instead of reserving a register for it. Trailing parameters
        -:        -: 2385: * that aren't sent default to zero anyway. This will cause the dead code
        -:        -: 2386: * eliminator to remove the MOV instruction that would otherwise be emitted to
        -:        -: 2387: * set up the zero value.
        -:        -: 2388: */
        -:        -: 2389:bool
        5:        5: 2390:fs_visitor::opt_zero_samples()
        -:        -: 2391:{
        -:        -: 2392:   /* Gen4 infers the texturing opcode based on the message length so we can't
        -:        -: 2393:    * change it.
        -:        -: 2394:    */
        5:        5: 2395:   if (devinfo->gen < 5)
    #####:    #####: 2396:      return false;
        -:        -: 2397:
        5:        5: 2398:   bool progress = false;
        -:        -: 2399:
      214:      226: 2400:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      209:      221: 2401:      if (!inst->is_tex())
      209:      221: 2402:         continue;
        -:        -: 2403:
    #####:    #####: 2404:      fs_inst *load_payload = (fs_inst *) inst->prev;
        -:        -: 2405:
    #####:    #####: 2406:      if (load_payload->is_head_sentinel() ||
    #####:    #####: 2407:          load_payload->opcode != SHADER_OPCODE_LOAD_PAYLOAD)
    #####:    #####: 2408:         continue;
        -:        -: 2409:
        -:        -: 2410:      /* We don't want to remove the message header or the first parameter.
        -:        -: 2411:       * Removing the first parameter is not allowed, see the Haswell PRM
        -:        -: 2412:       * volume 7, page 149:
        -:        -: 2413:       *
        -:        -: 2414:       *     "Parameter 0 is required except for the sampleinfo message, which
        -:        -: 2415:       *      has no parameter 0"
        -:        -: 2416:       */
    #####:    #####: 2417:      while (inst->mlen > inst->header_size + inst->exec_size / 8 &&
    #####:    #####: 2418:             load_payload->src[(inst->mlen - inst->header_size) /
    #####:    #####: 2419:                               (inst->exec_size / 8) +
    #####:    #####: 2420:                               inst->header_size - 1].is_zero()) {
    #####:    #####: 2421:         inst->mlen -= inst->exec_size / 8;
    #####:    #####: 2422:         progress = true;
        -:        -: 2423:      }
        -:        -: 2424:   }
        -:        -: 2425:
        5:        5: 2426:   if (progress)
    #####:    #####: 2427:      invalidate_live_intervals();
        -:        -: 2428:
        5:        5: 2429:   return progress;
        -:        -: 2430:}
        -:        -: 2431:
        -:        -: 2432:/**
        -:        -: 2433: * Optimize sample messages which are followed by the final RT write.
        -:        -: 2434: *
        -:        -: 2435: * CHV, and GEN9+ can mark a texturing SEND instruction with EOT to have its
        -:        -: 2436: * results sent directly to the framebuffer, bypassing the EU.  Recognize the
        -:        -: 2437: * final texturing results copied to the framebuffer write payload and modify
        -:        -: 2438: * them to write to the framebuffer directly.
        -:        -: 2439: */
        -:        -: 2440:bool
        5:        5: 2441:fs_visitor::opt_sampler_eot()
        -:        -: 2442:{
        5:        5: 2443:   brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
        -:        -: 2444:
        5:        5: 2445:   if (stage != MESA_SHADER_FRAGMENT)
    #####:    #####: 2446:      return false;
        -:        -: 2447:
        5:        5: 2448:   if (devinfo->gen < 9 && !devinfo->is_cherryview)
        5:        5: 2449:      return false;
        -:        -: 2450:
        -:        -: 2451:   /* FINISHME: It should be possible to implement this optimization when there
        -:        -: 2452:    * are multiple drawbuffers.
        -:        -: 2453:    */
    #####:    #####: 2454:   if (key->nr_color_regions != 1)
    #####:    #####: 2455:      return false;
        -:        -: 2456:
        -:        -: 2457:   /* Requires emitting a bunch of saturating MOV instructions during logical
        -:        -: 2458:    * send lowering to clamp the color payload, which the sampler unit isn't
        -:        -: 2459:    * going to do for us.
        -:        -: 2460:    */
    #####:    #####: 2461:   if (key->clamp_fragment_color)
    #####:    #####: 2462:      return false;
        -:        -: 2463:
        -:        -: 2464:   /* Look for a texturing instruction immediately before the final FB_WRITE. */
    #####:    #####: 2465:   bblock_t *block = cfg->blocks[cfg->num_blocks - 1];
    #####:    #####: 2466:   fs_inst *fb_write = (fs_inst *)block->end();
    #####:    #####: 2467:   assert(fb_write->eot);
    #####:    #####: 2468:   assert(fb_write->opcode == FS_OPCODE_FB_WRITE_LOGICAL);
        -:        -: 2469:
        -:        -: 2470:   /* There wasn't one; nothing to do. */
    #####:    #####: 2471:   if (unlikely(fb_write->prev->is_head_sentinel()))
    #####:    #####: 2472:      return false;
        -:        -: 2473:
    #####:    #####: 2474:   fs_inst *tex_inst = (fs_inst *) fb_write->prev;
        -:        -: 2475:
        -:        -: 2476:   /* 3D Sampler » Messages » Message Format
        -:        -: 2477:    *
        -:        -: 2478:    * “Response Length of zero is allowed on all SIMD8* and SIMD16* sampler
        -:        -: 2479:    *  messages except sample+killpix, resinfo, sampleinfo, LOD, and gather4*”
        -:        -: 2480:    */
    #####:    #####: 2481:   if (tex_inst->opcode != SHADER_OPCODE_TEX_LOGICAL &&
    #####:    #####: 2482:       tex_inst->opcode != SHADER_OPCODE_TXD_LOGICAL &&
    #####:    #####: 2483:       tex_inst->opcode != SHADER_OPCODE_TXF_LOGICAL &&
    #####:    #####: 2484:       tex_inst->opcode != SHADER_OPCODE_TXL_LOGICAL &&
    #####:    #####: 2485:       tex_inst->opcode != FS_OPCODE_TXB_LOGICAL &&
    #####:    #####: 2486:       tex_inst->opcode != SHADER_OPCODE_TXF_CMS_LOGICAL &&
    #####:    #####: 2487:       tex_inst->opcode != SHADER_OPCODE_TXF_CMS_W_LOGICAL &&
    #####:    #####: 2488:       tex_inst->opcode != SHADER_OPCODE_TXF_UMS_LOGICAL)
    #####:    #####: 2489:      return false;
        -:        -: 2490:
        -:        -: 2491:   /* XXX - This shouldn't be necessary. */
    #####:    #####: 2492:   if (tex_inst->prev->is_head_sentinel())
    #####:    #####: 2493:      return false;
        -:        -: 2494:
        -:        -: 2495:   /* Check that the FB write sources are fully initialized by the single
        -:        -: 2496:    * texturing instruction.
        -:        -: 2497:    */
    #####:    #####: 2498:   for (unsigned i = 0; i < FB_WRITE_LOGICAL_NUM_SRCS; i++) {
    #####:    #####: 2499:      if (i == FB_WRITE_LOGICAL_SRC_COLOR0) {
    #####:    #####: 2500:         if (!fb_write->src[i].equals(tex_inst->dst) ||
    #####:    #####: 2501:             fb_write->size_read(i) != tex_inst->size_written)
    #####:    #####: 2502:         return false;
    #####:    #####: 2503:      } else if (i != FB_WRITE_LOGICAL_SRC_COMPONENTS) {
    #####:    #####: 2504:         if (fb_write->src[i].file != BAD_FILE)
    #####:    #####: 2505:            return false;
        -:        -: 2506:      }
        -:        -: 2507:   }
        -:        -: 2508:
    #####:    #####: 2509:   assert(!tex_inst->eot); /* We can't get here twice */
    #####:    #####: 2510:   assert((tex_inst->offset & (0xff << 24)) == 0);
        -:        -: 2511:
    #####:    #####: 2512:   const fs_builder ibld(this, block, tex_inst);
        -:        -: 2513:
    #####:    #####: 2514:   tex_inst->offset |= fb_write->target << 24;
    #####:    #####: 2515:   tex_inst->eot = true;
    #####:    #####: 2516:   tex_inst->dst = ibld.null_reg_ud();
    #####:    #####: 2517:   tex_inst->size_written = 0;
    #####:    #####: 2518:   fb_write->remove(cfg->blocks[cfg->num_blocks - 1]);
        -:        -: 2519:
        -:        -: 2520:   /* Marking EOT is sufficient, lower_logical_sends() will notice the EOT
        -:        -: 2521:    * flag and submit a header together with the sampler message as required
        -:        -: 2522:    * by the hardware.
        -:        -: 2523:    */
    #####:    #####: 2524:   invalidate_live_intervals();
    #####:    #####: 2525:   return true;
        -:        -: 2526:}
        -:        -: 2527:
        -:        -: 2528:bool
       12:       14: 2529:fs_visitor::opt_register_renaming()
        -:        -: 2530:{
       12:       14: 2531:   bool progress = false;
       12:       14: 2532:   int depth = 0;
        -:        -: 2533:
       12:       14: 2534:   int remap[alloc.count];
       12:       14: 2535:   memset(remap, -1, sizeof(int) * alloc.count);
        -:        -: 2536:
      611:      872: 2537:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      599:      858: 2538:      if (inst->opcode == BRW_OPCODE_IF || inst->opcode == BRW_OPCODE_DO) {
       66:      100: 2539:         depth++;
     1012:     1448: 2540:      } else if (inst->opcode == BRW_OPCODE_ENDIF ||
      479:      690: 2541:                 inst->opcode == BRW_OPCODE_WHILE) {
       66:      100: 2542:         depth--;
        -:        -: 2543:      }
        -:        -: 2544:
        -:        -: 2545:      /* Rewrite instruction sources. */
     1397:     1934: 2546:      for (int i = 0; i < inst->sources; i++) {
     1290:     1738: 2547:         if (inst->src[i].file == VGRF &&
      842:     1148: 2548:             remap[inst->src[i].nr] != -1 &&
      350:      486: 2549:             remap[inst->src[i].nr] != inst->src[i].nr) {
    #####:    #####: 2550:            inst->src[i].nr = remap[inst->src[i].nr];
    #####:    #####: 2551:            progress = true;
        -:        -: 2552:         }
        -:        -: 2553:      }
        -:        -: 2554:
      599:      858: 2555:      const int dst = inst->dst.nr;
        -:        -: 2556:
      880:     1228: 2557:      if (depth == 0 &&
      490:      646: 2558:          inst->dst.file == VGRF &&
      969:     1354: 2559:          alloc.sizes[inst->dst.nr] * REG_SIZE == inst->size_written &&
      161:      220: 2560:          !inst->is_partial_write()) {
      161:      220: 2561:         if (remap[dst] == -1) {
      161:      220: 2562:            remap[dst] = dst;
        -:        -: 2563:         } else {
    #####:    #####: 2564:            remap[dst] = alloc.allocate(regs_written(inst));
    #####:    #####: 2565:            inst->dst.nr = remap[dst];
    #####:    #####: 2566:            progress = true;
        -:        -: 2567:         }
      642:      890: 2568:      } else if (inst->dst.file == VGRF &&
      246:      324: 2569:                 remap[dst] != -1 &&
       42:       72: 2570:                 remap[dst] != dst) {
    #####:    #####: 2571:         inst->dst.nr = remap[dst];
    #####:    #####: 2572:         progress = true;
        -:        -: 2573:      }
        -:        -: 2574:   }
        -:        -: 2575:
       12:       14: 2576:   if (progress) {
    #####:    #####: 2577:      invalidate_live_intervals();
        -:        -: 2578:
    #####:    #####: 2579:      for (unsigned i = 0; i < ARRAY_SIZE(delta_xy); i++) {
    #####:    #####: 2580:         if (delta_xy[i].file == VGRF && remap[delta_xy[i].nr] != -1) {
    #####:    #####: 2581:            delta_xy[i].nr = remap[delta_xy[i].nr];
        -:        -: 2582:         }
        -:        -: 2583:      }
        -:        -: 2584:   }
        -:        -: 2585:
       24:       28: 2586:   return progress;
        -:        -: 2587:}
        -:        -: 2588:
        -:        -: 2589:/**
        -:        -: 2590: * Remove redundant or useless discard jumps.
        -:        -: 2591: *
        -:        -: 2592: * For example, we can eliminate jumps in the following sequence:
        -:        -: 2593: *
        -:        -: 2594: * discard-jump       (redundant with the next jump)
        -:        -: 2595: * discard-jump       (useless; jumps to the next instruction)
        -:        -: 2596: * placeholder-halt
        -:        -: 2597: */
        -:        -: 2598:bool
        5:        5: 2599:fs_visitor::opt_redundant_discard_jumps()
        -:        -: 2600:{
        5:        5: 2601:   bool progress = false;
        -:        -: 2602:
        5:        5: 2603:   bblock_t *last_bblock = cfg->blocks[cfg->num_blocks - 1];
        -:        -: 2604:
        5:        5: 2605:   fs_inst *placeholder_halt = NULL;
       53:       53: 2606:   foreach_inst_in_block_reverse(fs_inst, inst, last_bblock) {
       48:       48: 2607:      if (inst->opcode == FS_OPCODE_PLACEHOLDER_HALT) {
    #####:    #####: 2608:         placeholder_halt = inst;
    #####:    #####: 2609:         break;
        -:        -: 2610:      }
        -:        -: 2611:   }
        -:        -: 2612:
        5:        5: 2613:   if (!placeholder_halt)
        5:        5: 2614:      return false;
        -:        -: 2615:
        -:        -: 2616:   /* Delete any HALTs immediately before the placeholder halt. */
    #####:    #####: 2617:   for (fs_inst *prev = (fs_inst *) placeholder_halt->prev;
    #####:    #####: 2618:        !prev->is_head_sentinel() && prev->opcode == FS_OPCODE_DISCARD_JUMP;
        -:        -: 2619:        prev = (fs_inst *) placeholder_halt->prev) {
    #####:    #####: 2620:      prev->remove(last_bblock);
    #####:    #####: 2621:      progress = true;
        -:        -: 2622:   }
        -:        -: 2623:
    #####:    #####: 2624:   if (progress)
    #####:    #####: 2625:      invalidate_live_intervals();
        -:        -: 2626:
    #####:    #####: 2627:   return progress;
        -:        -: 2628:}
        -:        -: 2629:
        -:        -: 2630:/**
        -:        -: 2631: * Compute a bitmask with GRF granularity with a bit set for each GRF starting
        -:        -: 2632: * from \p r.offset which overlaps the region starting at \p s.offset and
        -:        -: 2633: * spanning \p ds bytes.
        -:        -: 2634: */
        -:        -: 2635:static inline unsigned
       42:       42: 2636:mask_relative_to(const fs_reg &r, const fs_reg &s, unsigned ds)
        -:        -: 2637:{
       42:       42: 2638:   const int rel_offset = reg_offset(s) - reg_offset(r);
       42:       42: 2639:   const int shift = rel_offset / REG_SIZE;
       42:       42: 2640:   const unsigned n = DIV_ROUND_UP(rel_offset % REG_SIZE + ds, REG_SIZE);
       84:       84: 2641:   assert(reg_space(r) == reg_space(s) &&
       42:       42: 2642:          shift >= 0 && shift < int(8 * sizeof(unsigned)));
       42:       42: 2643:   return ((1 << n) - 1) << shift;
        -:        -: 2644:}
        -:        -: 2645:
        -:        -: 2646:bool
       22:       24: 2647:fs_visitor::compute_to_mrf()
        -:        -: 2648:{
       22:       24: 2649:   bool progress = false;
       22:       24: 2650:   int next_ip = 0;
        -:        -: 2651:
        -:        -: 2652:   /* No MRFs on Gen >= 7. */
       22:       24: 2653:   if (devinfo->gen >= 7)
    #####:    #####: 2654:      return false;
        -:        -: 2655:
       22:       24: 2656:   calculate_live_intervals();
        -:        -: 2657:
     1030:     1313: 2658:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
     1008:     1289: 2659:      int ip = next_ip;
     1008:     1289: 2660:      next_ip++;
        -:        -: 2661:
     2194:     2812: 2662:      if (inst->opcode != BRW_OPCODE_MOV ||
      356:      468: 2663:	  inst->is_partial_write() ||
      216:      272: 2664:	  inst->dst.file != MRF || inst->src[0].file != VGRF ||
       36:       36: 2665:	  inst->dst.type != inst->src[0].type ||
       54:       54: 2666:	  inst->src[0].abs || inst->src[0].negate ||
     1044:     1325: 2667:          !inst->src[0].is_contiguous() ||
       18:       18: 2668:          inst->src[0].offset % REG_SIZE != 0)
      990:     1271: 2669:	 continue;
        -:        -: 2670:
        -:        -: 2671:      /* Can't compute-to-MRF this GRF if someone else was going to
        -:        -: 2672:       * read it later.
        -:        -: 2673:       */
       18:       18: 2674:      if (this->virtual_grf_end[inst->src[0].nr] > ip)
    #####:    #####: 2675:	 continue;
        -:        -: 2676:
        -:        -: 2677:      /* Found a move of a GRF to a MRF.  Let's see if we can go rewrite the
        -:        -: 2678:       * things that computed the value of all GRFs of the source region.  The
        -:        -: 2679:       * regs_left bitset keeps track of the registers we haven't yet found a
        -:        -: 2680:       * generating instruction for.
        -:        -: 2681:       */
       18:       18: 2682:      unsigned regs_left = (1 << regs_read(inst, 0)) - 1;
        -:        -: 2683:
       60:       60: 2684:      foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
      120:      120: 2685:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
       60:       60: 2686:                             inst->src[0], inst->size_read(0))) {
        -:        -: 2687:	    /* Found the last thing to write our reg we want to turn
        -:        -: 2688:	     * into a compute-to-MRF.
        -:        -: 2689:	     */
        -:        -: 2690:
        -:        -: 2691:	    /* If this one instruction didn't populate all the
        -:        -: 2692:	     * channels, bail.  We might be able to rewrite everything
        -:        -: 2693:	     * that writes that reg, but it would require smarter
        -:        -: 2694:	     * tracking.
        -:        -: 2695:	     */
       21:       21: 2696:	    if (scan_inst->is_partial_write())
    #####:    #####: 2697:	       break;
        -:        -: 2698:
        -:        -: 2699:            /* Handling things not fully contained in the source of the copy
        -:        -: 2700:             * would need us to understand coalescing out more than one MOV at
        -:        -: 2701:             * a time.
        -:        -: 2702:             */
       42:       42: 2703:            if (!region_contained_in(scan_inst->dst, scan_inst->size_written,
       21:       21: 2704:                                     inst->src[0], inst->size_read(0)))
    #####:    #####: 2705:               break;
        -:        -: 2706:
        -:        -: 2707:	    /* SEND instructions can't have MRF as a destination. */
       21:       21: 2708:	    if (scan_inst->mlen)
    #####:    #####: 2709:	       break;
        -:        -: 2710:
       21:       21: 2711:	    if (devinfo->gen == 6) {
        -:        -: 2712:	       /* gen6 math instructions must have the destination be
        -:        -: 2713:		* GRF, so no compute-to-MRF for them.
        -:        -: 2714:		*/
       21:       21: 2715:	       if (scan_inst->is_math()) {
    #####:    #####: 2716:		  break;
        -:        -: 2717:	       }
        -:        -: 2718:	    }
        -:        -: 2719:
        -:        -: 2720:            /* Clear the bits for any registers this instruction overwrites. */
       42:       42: 2721:            regs_left &= ~mask_relative_to(
       42:       42: 2722:               inst->src[0], scan_inst->dst, scan_inst->size_written);
       21:       21: 2723:            if (!regs_left)
       18:       18: 2724:               break;
        -:        -: 2725:	 }
        -:        -: 2726:
        -:        -: 2727:	 /* We don't handle control flow here.  Most computation of
        -:        -: 2728:	  * values that end up in MRFs are shortly before the MRF
        -:        -: 2729:	  * write anyway.
        -:        -: 2730:	  */
       42:       42: 2731:	 if (block->start() == scan_inst)
    #####:    #####: 2732:	    break;
        -:        -: 2733:
        -:        -: 2734:	 /* You can't read from an MRF, so if someone else reads our
        -:        -: 2735:	  * MRF's source GRF that we wanted to rewrite, that stops us.
        -:        -: 2736:	  */
       42:       42: 2737:	 bool interfered = false;
      126:      126: 2738:	 for (int i = 0; i < scan_inst->sources; i++) {
      168:      168: 2739:            if (regions_overlap(scan_inst->src[i], scan_inst->size_read(i),
       84:       84: 2740:                                inst->src[0], inst->size_read(0))) {
    #####:    #####: 2741:	       interfered = true;
        -:        -: 2742:	    }
        -:        -: 2743:	 }
       42:       42: 2744:	 if (interfered)
    #####:    #####: 2745:	    break;
        -:        -: 2746:
       42:       42: 2747:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
        -:        -: 2748:                             inst->dst, inst->size_written)) {
        -:        -: 2749:	    /* If somebody else writes our MRF here, we can't
        -:        -: 2750:	     * compute-to-MRF before that.
        -:        -: 2751:	     */
    #####:    #####: 2752:            break;
        -:        -: 2753:         }
        -:        -: 2754:
      126:      126: 2755:         if (scan_inst->mlen > 0 && scan_inst->base_mrf != -1 &&
       42:       42: 2756:             regions_overlap(fs_reg(MRF, scan_inst->base_mrf), scan_inst->mlen * REG_SIZE,
        -:        -: 2757:                             inst->dst, inst->size_written)) {
        -:        -: 2758:	    /* Found a SEND instruction, which means that there are
        -:        -: 2759:	     * live values in MRFs from base_mrf to base_mrf +
        -:        -: 2760:	     * scan_inst->mlen - 1.  Don't go pushing our MRF write up
        -:        -: 2761:	     * above it.
        -:        -: 2762:	     */
    #####:    #####: 2763:            break;
        -:        -: 2764:         }
        -:        -: 2765:      }
        -:        -: 2766:
       18:       18: 2767:      if (regs_left)
    #####:    #####: 2768:         continue;
        -:        -: 2769:
        -:        -: 2770:      /* Found all generating instructions of our MRF's source value, so it
        -:        -: 2771:       * should be safe to rewrite them to point to the MRF directly.
        -:        -: 2772:       */
       18:       18: 2773:      regs_left = (1 << regs_read(inst, 0)) - 1;
        -:        -: 2774:
       60:       60: 2775:      foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
      120:      120: 2776:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
       60:       60: 2777:                             inst->src[0], inst->size_read(0))) {
        -:        -: 2778:            /* Clear the bits for any registers this instruction overwrites. */
       42:       42: 2779:            regs_left &= ~mask_relative_to(
       42:       42: 2780:               inst->src[0], scan_inst->dst, scan_inst->size_written);
        -:        -: 2781:
       21:       21: 2782:            const unsigned rel_offset = reg_offset(scan_inst->dst) -
       21:       21: 2783:                                        reg_offset(inst->src[0]);
        -:        -: 2784:
       21:       21: 2785:            if (inst->dst.nr & BRW_MRF_COMPR4) {
        -:        -: 2786:               /* Apply the same address transformation done by the hardware
        -:        -: 2787:                * for COMPR4 MRF writes.
        -:        -: 2788:                */
    #####:    #####: 2789:               assert(rel_offset < 2 * REG_SIZE);
    #####:    #####: 2790:               scan_inst->dst.nr = inst->dst.nr + rel_offset / REG_SIZE * 4;
        -:        -: 2791:
        -:        -: 2792:               /* Clear the COMPR4 bit if the generating instruction is not
        -:        -: 2793:                * compressed.
        -:        -: 2794:                */
    #####:    #####: 2795:               if (scan_inst->size_written < 2 * REG_SIZE)
    #####:    #####: 2796:                  scan_inst->dst.nr &= ~BRW_MRF_COMPR4;
        -:        -: 2797:
        -:        -: 2798:            } else {
        -:        -: 2799:               /* Calculate the MRF number the result of this instruction is
        -:        -: 2800:                * ultimately written to.
        -:        -: 2801:                */
       21:       21: 2802:               scan_inst->dst.nr = inst->dst.nr + rel_offset / REG_SIZE;
        -:        -: 2803:            }
        -:        -: 2804:
       21:       21: 2805:            scan_inst->dst.file = MRF;
       21:       21: 2806:            scan_inst->dst.offset = inst->dst.offset + rel_offset % REG_SIZE;
       21:       21: 2807:            scan_inst->saturate |= inst->saturate;
       21:       21: 2808:            if (!regs_left)
       18:       18: 2809:               break;
        -:        -: 2810:         }
        -:        -: 2811:      }
        -:        -: 2812:
       18:       18: 2813:      assert(!regs_left);
       18:       18: 2814:      inst->remove(block);
       18:       18: 2815:      progress = true;
        -:        -: 2816:   }
        -:        -: 2817:
       22:       24: 2818:   if (progress)
        5:        5: 2819:      invalidate_live_intervals();
        -:        -: 2820:
       22:       24: 2821:   return progress;
        -:        -: 2822:}
        -:        -: 2823:
        -:        -: 2824:/**
        -:        -: 2825: * Eliminate FIND_LIVE_CHANNEL instructions occurring outside any control
        -:        -: 2826: * flow.  We could probably do better here with some form of divergence
        -:        -: 2827: * analysis.
        -:        -: 2828: */
        -:        -: 2829:bool
       12:       14: 2830:fs_visitor::eliminate_find_live_channel()
        -:        -: 2831:{
       12:       14: 2832:   bool progress = false;
       12:       14: 2833:   unsigned depth = 0;
        -:        -: 2834:
       12:       14: 2835:   if (!brw_stage_has_packed_dispatch(devinfo, stage, stage_prog_data)) {
        -:        -: 2836:      /* The optimization below assumes that channel zero is live on thread
        -:        -: 2837:       * dispatch, which may not be the case if the fixed function dispatches
        -:        -: 2838:       * threads sparsely.
        -:        -: 2839:       */
    #####:    #####: 2840:      return false;
        -:        -: 2841:   }
        -:        -: 2842:
      587:      846: 2843:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      575:      832: 2844:      switch (inst->opcode) {
        -:        -: 2845:      case BRW_OPCODE_IF:
        -:        -: 2846:      case BRW_OPCODE_DO:
       66:      100: 2847:         depth++;
       66:      100: 2848:         break;
        -:        -: 2849:
        -:        -: 2850:      case BRW_OPCODE_ENDIF:
        -:        -: 2851:      case BRW_OPCODE_WHILE:
       66:      100: 2852:         depth--;
       66:      100: 2853:         break;
        -:        -: 2854:
        -:        -: 2855:      case FS_OPCODE_DISCARD_JUMP:
        -:        -: 2856:         /* This can potentially make control flow non-uniform until the end
        -:        -: 2857:          * of the program.
        -:        -: 2858:          */
    #####:    #####: 2859:         return progress;
        -:        -: 2860:
        -:        -: 2861:      case SHADER_OPCODE_FIND_LIVE_CHANNEL:
    #####:    #####: 2862:         if (depth == 0) {
    #####:    #####: 2863:            inst->opcode = BRW_OPCODE_MOV;
    #####:    #####: 2864:            inst->src[0] = brw_imm_ud(0u);
    #####:    #####: 2865:            inst->sources = 1;
    #####:    #####: 2866:            inst->force_writemask_all = true;
    #####:    #####: 2867:            progress = true;
        -:        -: 2868:         }
    #####:    #####: 2869:         break;
        -:        -: 2870:
        -:        -: 2871:      default:
      443:      632: 2872:         break;
        -:        -: 2873:      }
        -:        -: 2874:   }
        -:        -: 2875:
       12:       14: 2876:   return progress;
        -:        -: 2877:}
        -:        -: 2878:
        -:        -: 2879:/**
        -:        -: 2880: * Once we've generated code, try to convert normal FS_OPCODE_FB_WRITE
        -:        -: 2881: * instructions to FS_OPCODE_REP_FB_WRITE.
        -:        -: 2882: */
        -:        -: 2883:void
        1:        1: 2884:fs_visitor::emit_repclear_shader()
        -:        -: 2885:{
        1:        1: 2886:   brw_wm_prog_key *key = (brw_wm_prog_key*) this->key;
        1:        1: 2887:   int base_mrf = 0;
        1:        1: 2888:   int color_mrf = base_mrf + 2;
        -:        -: 2889:   fs_inst *mov;
        -:        -: 2890:
        1:        1: 2891:   if (uniforms > 0) {
    #####:    #####: 2892:      mov = bld.exec_all().group(4, 0)
    #####:    #####: 2893:               .MOV(brw_message_reg(color_mrf),
    #####:    #####: 2894:                    fs_reg(UNIFORM, 0, BRW_REGISTER_TYPE_F));
        -:        -: 2895:   } else {
        -:        -: 2896:      struct brw_reg reg =
        -:        -: 2897:         brw_reg(BRW_GENERAL_REGISTER_FILE, 2, 3, 0, 0, BRW_REGISTER_TYPE_F,
        -:        -: 2898:                 BRW_VERTICAL_STRIDE_8, BRW_WIDTH_2, BRW_HORIZONTAL_STRIDE_4,
        1:        1: 2899:                 BRW_SWIZZLE_XYZW, WRITEMASK_XYZW);
        -:        -: 2900:
        2:        2: 2901:      mov = bld.exec_all().group(4, 0)
        3:        3: 2902:               .MOV(vec4(brw_message_reg(color_mrf)), fs_reg(reg));
        -:        -: 2903:   }
        -:        -: 2904:
        -:        -: 2905:   fs_inst *write;
        1:        1: 2906:   if (key->nr_color_regions == 1) {
        1:        1: 2907:      write = bld.emit(FS_OPCODE_REP_FB_WRITE);
        1:        1: 2908:      write->saturate = key->clamp_fragment_color;
        1:        1: 2909:      write->base_mrf = color_mrf;
        1:        1: 2910:      write->target = 0;
        1:        1: 2911:      write->header_size = 0;
        1:        1: 2912:      write->mlen = 1;
        -:        -: 2913:   } else {
    #####:    #####: 2914:      assume(key->nr_color_regions > 0);
    #####:    #####: 2915:      for (int i = 0; i < key->nr_color_regions; ++i) {
    #####:    #####: 2916:         write = bld.emit(FS_OPCODE_REP_FB_WRITE);
    #####:    #####: 2917:         write->saturate = key->clamp_fragment_color;
    #####:    #####: 2918:         write->base_mrf = base_mrf;
    #####:    #####: 2919:         write->target = i;
    #####:    #####: 2920:         write->header_size = 2;
    #####:    #####: 2921:         write->mlen = 3;
        -:        -: 2922:      }
        -:        -: 2923:   }
        1:        1: 2924:   write->eot = true;
        -:        -: 2925:
        1:        1: 2926:   calculate_cfg();
        -:        -: 2927:
        1:        1: 2928:   assign_constant_locations();
        1:        1: 2929:   assign_curb_setup();
        -:        -: 2930:
        -:        -: 2931:   /* Now that we have the uniform assigned, go ahead and force it to a vec4. */
        1:        1: 2932:   if (uniforms > 0) {
    #####:    #####: 2933:      assert(mov->src[0].file == FIXED_GRF);
    #####:    #####: 2934:      mov->src[0] = brw_vec4_grf(mov->src[0].nr, 0);
        -:        -: 2935:   }
        1:        1: 2936:}
        -:        -: 2937:
        -:        -: 2938:/**
        -:        -: 2939: * Walks through basic blocks, looking for repeated MRF writes and
        -:        -: 2940: * removing the later ones.
        -:        -: 2941: */
        -:        -: 2942:bool
       17:       19: 2943:fs_visitor::remove_duplicate_mrf_writes()
        -:        -: 2944:{
    11890:    15811: 2945:   fs_inst *last_mrf_move[BRW_MAX_MRF(devinfo->gen)];
       17:       19: 2946:   bool progress = false;
        -:        -: 2947:
        -:        -: 2948:   /* Need to update the MRF tracking for compressed instructions. */
       17:       19: 2949:   if (dispatch_width >= 16)
        7:        8: 2950:      return false;
        -:        -: 2951:
       10:       11: 2952:   memset(last_mrf_move, 0, sizeof(last_mrf_move));
        -:        -: 2953:
      480:      635: 2954:   foreach_block_and_inst_safe (block, fs_inst, inst, cfg) {
      470:      624: 2955:      if (inst->is_control_flow()) {
      113:      181: 2956:	 memset(last_mrf_move, 0, sizeof(last_mrf_move));
        -:        -: 2957:      }
        -:        -: 2958:
      589:      770: 2959:      if (inst->opcode == BRW_OPCODE_MOV &&
      119:      146: 2960:	  inst->dst.file == MRF) {
    #####:    #####: 2961:         fs_inst *prev_inst = last_mrf_move[inst->dst.nr];
    #####:    #####: 2962:	 if (prev_inst && inst->equals(prev_inst)) {
    #####:    #####: 2963:	    inst->remove(block);
    #####:    #####: 2964:	    progress = true;
    #####:    #####: 2965:	    continue;
        -:        -: 2966:	 }
        -:        -: 2967:      }
        -:        -: 2968:
        -:        -: 2969:      /* Clear out the last-write records for MRFs that were overwritten. */
      470:      624: 2970:      if (inst->dst.file == MRF) {
        3:        3: 2971:         last_mrf_move[inst->dst.nr] = NULL;
        -:        -: 2972:      }
        -:        -: 2973:
      470:      624: 2974:      if (inst->mlen > 0 && inst->base_mrf != -1) {
        -:        -: 2975:	 /* Found a SEND instruction, which will include two or fewer
        -:        -: 2976:	  * implied MRF writes.  We could do better here.
        -:        -: 2977:	  */
        9:        9: 2978:	 for (int i = 0; i < implied_mrf_writes(inst); i++) {
        6:        6: 2979:	    last_mrf_move[inst->base_mrf + i] = NULL;
        -:        -: 2980:	 }
        -:        -: 2981:      }
        -:        -: 2982:
        -:        -: 2983:      /* Clear out any MRF move records whose sources got overwritten. */
    23500:    31200: 2984:      for (unsigned i = 0; i < ARRAY_SIZE(last_mrf_move); i++) {
    11280:    14976: 2985:         if (last_mrf_move[i] &&
    #####:    #####: 2986:             regions_overlap(inst->dst, inst->size_written,
    #####:    #####: 2987:                             last_mrf_move[i]->src[0],
    #####:    #####: 2988:                             last_mrf_move[i]->size_read(0))) {
    #####:    #####: 2989:            last_mrf_move[i] = NULL;
        -:        -: 2990:         }
        -:        -: 2991:      }
        -:        -: 2992:
     1059:     1394: 2993:      if (inst->opcode == BRW_OPCODE_MOV &&
      119:      146: 2994:	  inst->dst.file == MRF &&
      470:      624: 2995:	  inst->src[0].file != ARF &&
    #####:    #####: 2996:	  !inst->is_partial_write()) {
    #####:    #####: 2997:         last_mrf_move[inst->dst.nr] = inst;
        -:        -: 2998:      }
        -:        -: 2999:   }
        -:        -: 3000:
       10:       11: 3001:   if (progress)
    #####:    #####: 3002:      invalidate_live_intervals();
        -:        -: 3003:
       27:       30: 3004:   return progress;
    11750:    15600: 3005:}
        -:        -: 3006:
        -:        -: 3007:static void
    #####:    #####: 3008:clear_deps_for_inst_src(fs_inst *inst, bool *deps, int first_grf, int grf_len)
        -:        -: 3009:{
        -:        -: 3010:   /* Clear the flag for registers that actually got read (as expected). */
    #####:    #####: 3011:   for (int i = 0; i < inst->sources; i++) {
        -:        -: 3012:      int grf;
    #####:    #####: 3013:      if (inst->src[i].file == VGRF || inst->src[i].file == FIXED_GRF) {
    #####:    #####: 3014:         grf = inst->src[i].nr;
        -:        -: 3015:      } else {
    #####:    #####: 3016:         continue;
        -:        -: 3017:      }
        -:        -: 3018:
    #####:    #####: 3019:      if (grf >= first_grf &&
    #####:    #####: 3020:          grf < first_grf + grf_len) {
    #####:    #####: 3021:         deps[grf - first_grf] = false;
    #####:    #####: 3022:         if (inst->exec_size == 16)
    #####:    #####: 3023:            deps[grf - first_grf + 1] = false;
        -:        -: 3024:      }
        -:        -: 3025:   }
    #####:    #####: 3026:}
        -:        -: 3027:
        -:        -: 3028:/**
        -:        -: 3029: * Implements this workaround for the original 965:
        -:        -: 3030: *
        -:        -: 3031: *     "[DevBW, DevCL] Implementation Restrictions: As the hardware does not
        -:        -: 3032: *      check for post destination dependencies on this instruction, software
        -:        -: 3033: *      must ensure that there is no destination hazard for the case of ‘write
        -:        -: 3034: *      followed by a posted write’ shown in the following example.
        -:        -: 3035: *
        -:        -: 3036: *      1. mov r3 0
        -:        -: 3037: *      2. send r3.xy <rest of send instruction>
        -:        -: 3038: *      3. mov r2 r3
        -:        -: 3039: *
        -:        -: 3040: *      Due to no post-destination dependency check on the ‘send’, the above
        -:        -: 3041: *      code sequence could have two instructions (1 and 2) in flight at the
        -:        -: 3042: *      same time that both consider ‘r3’ as the target of their final writes.
        -:        -: 3043: */
        -:        -: 3044:void
    #####:    #####: 3045:fs_visitor::insert_gen4_pre_send_dependency_workarounds(bblock_t *block,
        -:        -: 3046:                                                        fs_inst *inst)
        -:        -: 3047:{
    #####:    #####: 3048:   int write_len = regs_written(inst);
    #####:    #####: 3049:   int first_write_grf = inst->dst.nr;
    #####:    #####: 3050:   bool needs_dep[BRW_MAX_MRF(devinfo->gen)];
    #####:    #####: 3051:   assert(write_len < (int)sizeof(needs_dep) - 1);
        -:        -: 3052:
    #####:    #####: 3053:   memset(needs_dep, false, sizeof(needs_dep));
    #####:    #####: 3054:   memset(needs_dep, true, write_len);
        -:        -: 3055:
    #####:    #####: 3056:   clear_deps_for_inst_src(inst, needs_dep, first_write_grf, write_len);
        -:        -: 3057:
        -:        -: 3058:   /* Walk backwards looking for writes to registers we're writing which
        -:        -: 3059:    * aren't read since being written.  If we hit the start of the program,
        -:        -: 3060:    * we assume that there are no outstanding dependencies on entry to the
        -:        -: 3061:    * program.
        -:        -: 3062:    */
    #####:    #####: 3063:   foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
        -:        -: 3064:      /* If we hit control flow, assume that there *are* outstanding
        -:        -: 3065:       * dependencies, and force their cleanup before our instruction.
        -:        -: 3066:       */
    #####:    #####: 3067:      if (block->start() == scan_inst && block->num != 0) {
    #####:    #####: 3068:         for (int i = 0; i < write_len; i++) {
    #####:    #####: 3069:            if (needs_dep[i])
    #####:    #####: 3070:               DEP_RESOLVE_MOV(fs_builder(this, block, inst),
    #####:    #####: 3071:                               first_write_grf + i);
        -:        -: 3072:         }
    #####:    #####: 3073:         return;
        -:        -: 3074:      }
        -:        -: 3075:
        -:        -: 3076:      /* We insert our reads as late as possible on the assumption that any
        -:        -: 3077:       * instruction but a MOV that might have left us an outstanding
        -:        -: 3078:       * dependency has more latency than a MOV.
        -:        -: 3079:       */
    #####:    #####: 3080:      if (scan_inst->dst.file == VGRF) {
    #####:    #####: 3081:         for (unsigned i = 0; i < regs_written(scan_inst); i++) {
    #####:    #####: 3082:            int reg = scan_inst->dst.nr + i;
        -:        -: 3083:
    #####:    #####: 3084:            if (reg >= first_write_grf &&
    #####:    #####: 3085:                reg < first_write_grf + write_len &&
    #####:    #####: 3086:                needs_dep[reg - first_write_grf]) {
    #####:    #####: 3087:               DEP_RESOLVE_MOV(fs_builder(this, block, inst), reg);
    #####:    #####: 3088:               needs_dep[reg - first_write_grf] = false;
    #####:    #####: 3089:               if (scan_inst->exec_size == 16)
    #####:    #####: 3090:                  needs_dep[reg - first_write_grf + 1] = false;
        -:        -: 3091:            }
        -:        -: 3092:         }
        -:        -: 3093:      }
        -:        -: 3094:
        -:        -: 3095:      /* Clear the flag for registers that actually got read (as expected). */
    #####:    #####: 3096:      clear_deps_for_inst_src(scan_inst, needs_dep, first_write_grf, write_len);
        -:        -: 3097:
        -:        -: 3098:      /* Continue the loop only if we haven't resolved all the dependencies */
        -:        -: 3099:      int i;
    #####:    #####: 3100:      for (i = 0; i < write_len; i++) {
    #####:    #####: 3101:         if (needs_dep[i])
    #####:    #####: 3102:            break;
        -:        -: 3103:      }
    #####:    #####: 3104:      if (i == write_len)
    #####:    #####: 3105:         return;
    #####:    #####: 3106:   }
    #####:    #####: 3107:}
        -:        -: 3108:
        -:        -: 3109:/**
        -:        -: 3110: * Implements this workaround for the original 965:
        -:        -: 3111: *
        -:        -: 3112: *     "[DevBW, DevCL] Errata: A destination register from a send can not be
        -:        -: 3113: *      used as a destination register until after it has been sourced by an
        -:        -: 3114: *      instruction with a different destination register.
        -:        -: 3115: */
        -:        -: 3116:void
    #####:    #####: 3117:fs_visitor::insert_gen4_post_send_dependency_workarounds(bblock_t *block, fs_inst *inst)
        -:        -: 3118:{
    #####:    #####: 3119:   int write_len = regs_written(inst);
    #####:    #####: 3120:   int first_write_grf = inst->dst.nr;
    #####:    #####: 3121:   bool needs_dep[BRW_MAX_MRF(devinfo->gen)];
    #####:    #####: 3122:   assert(write_len < (int)sizeof(needs_dep) - 1);
        -:        -: 3123:
    #####:    #####: 3124:   memset(needs_dep, false, sizeof(needs_dep));
    #####:    #####: 3125:   memset(needs_dep, true, write_len);
        -:        -: 3126:   /* Walk forwards looking for writes to registers we're writing which aren't
        -:        -: 3127:    * read before being written.
        -:        -: 3128:    */
    #####:    #####: 3129:   foreach_inst_in_block_starting_from(fs_inst, scan_inst, inst) {
        -:        -: 3130:      /* If we hit control flow, force resolve all remaining dependencies. */
    #####:    #####: 3131:      if (block->end() == scan_inst && block->num != cfg->num_blocks - 1) {
    #####:    #####: 3132:         for (int i = 0; i < write_len; i++) {
    #####:    #####: 3133:            if (needs_dep[i])
    #####:    #####: 3134:               DEP_RESOLVE_MOV(fs_builder(this, block, scan_inst),
    #####:    #####: 3135:                               first_write_grf + i);
        -:        -: 3136:         }
    #####:    #####: 3137:         return;
        -:        -: 3138:      }
        -:        -: 3139:
        -:        -: 3140:      /* Clear the flag for registers that actually got read (as expected). */
    #####:    #####: 3141:      clear_deps_for_inst_src(scan_inst, needs_dep, first_write_grf, write_len);
        -:        -: 3142:
        -:        -: 3143:      /* We insert our reads as late as possible since they're reading the
        -:        -: 3144:       * result of a SEND, which has massive latency.
        -:        -: 3145:       */
    #####:    #####: 3146:      if (scan_inst->dst.file == VGRF &&
    #####:    #####: 3147:          scan_inst->dst.nr >= first_write_grf &&
    #####:    #####: 3148:          scan_inst->dst.nr < first_write_grf + write_len &&
    #####:    #####: 3149:          needs_dep[scan_inst->dst.nr - first_write_grf]) {
    #####:    #####: 3150:         DEP_RESOLVE_MOV(fs_builder(this, block, scan_inst),
    #####:    #####: 3151:                         scan_inst->dst.nr);
    #####:    #####: 3152:         needs_dep[scan_inst->dst.nr - first_write_grf] = false;
        -:        -: 3153:      }
        -:        -: 3154:
        -:        -: 3155:      /* Continue the loop only if we haven't resolved all the dependencies */
        -:        -: 3156:      int i;
    #####:    #####: 3157:      for (i = 0; i < write_len; i++) {
    #####:    #####: 3158:         if (needs_dep[i])
    #####:    #####: 3159:            break;
        -:        -: 3160:      }
    #####:    #####: 3161:      if (i == write_len)
    #####:    #####: 3162:         return;
    #####:    #####: 3163:   }
    #####:    #####: 3164:}
        -:        -: 3165:
        -:        -: 3166:void
        5:        5: 3167:fs_visitor::insert_gen4_send_dependency_workarounds()
        -:        -: 3168:{
        5:        5: 3169:   if (devinfo->gen != 4 || devinfo->is_g4x)
        5:        5: 3170:      return;
        -:        -: 3171:
    #####:    #####: 3172:   bool progress = false;
        -:        -: 3173:
    #####:    #####: 3174:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####: 3175:      if (inst->mlen != 0 && inst->dst.file == VGRF) {
    #####:    #####: 3176:         insert_gen4_pre_send_dependency_workarounds(block, inst);
    #####:    #####: 3177:         insert_gen4_post_send_dependency_workarounds(block, inst);
    #####:    #####: 3178:         progress = true;
        -:        -: 3179:      }
        -:        -: 3180:   }
        -:        -: 3181:
    #####:    #####: 3182:   if (progress)
    #####:    #####: 3183:      invalidate_live_intervals();
        -:        -: 3184:}
        -:        -: 3185:
        -:        -: 3186:/**
        -:        -: 3187: * Turns the generic expression-style uniform pull constant load instruction
        -:        -: 3188: * into a hardware-specific series of instructions for loading a pull
        -:        -: 3189: * constant.
        -:        -: 3190: *
        -:        -: 3191: * The expression style allows the CSE pass before this to optimize out
        -:        -: 3192: * repeated loads from the same offset, and gives the pre-register-allocation
        -:        -: 3193: * scheduling full flexibility, while the conversion to native instructions
        -:        -: 3194: * allows the post-register-allocation scheduler the best information
        -:        -: 3195: * possible.
        -:        -: 3196: *
        -:        -: 3197: * Note that execution masking for setting up pull constant loads is special:
        -:        -: 3198: * the channels that need to be written are unrelated to the current execution
        -:        -: 3199: * mask, since a later instruction will use one of the result channels as a
        -:        -: 3200: * source operand for all 8 or 16 of its channels.
        -:        -: 3201: */
        -:        -: 3202:void
        5:        5: 3203:fs_visitor::lower_uniform_pull_constant_loads()
        -:        -: 3204:{
      211:      223: 3205:   foreach_block_and_inst (block, fs_inst, inst, cfg) {
      206:      218: 3206:      if (inst->opcode != FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD)
      206:      218: 3207:         continue;
        -:        -: 3208:
    #####:    #####: 3209:      if (devinfo->gen >= 7) {
    #####:    #####: 3210:         const fs_builder ubld = fs_builder(this, block, inst).exec_all();
    #####:    #####: 3211:         const fs_reg payload = ubld.group(8, 0).vgrf(BRW_REGISTER_TYPE_UD);
        -:        -: 3212:
    #####:    #####: 3213:         ubld.group(8, 0).MOV(payload,
    #####:    #####: 3214:                              retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
    #####:    #####: 3215:         ubld.group(1, 0).MOV(component(payload, 2),
    #####:    #####: 3216:                              brw_imm_ud(inst->src[1].ud / 16));
        -:        -: 3217:
    #####:    #####: 3218:         inst->opcode = FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7;
    #####:    #####: 3219:         inst->src[1] = payload;
    #####:    #####: 3220:         inst->header_size = 1;
    #####:    #####: 3221:         inst->mlen = 1;
        -:        -: 3222:
    #####:    #####: 3223:         invalidate_live_intervals();
        -:        -: 3224:      } else {
        -:        -: 3225:         /* Before register allocation, we didn't tell the scheduler about the
        -:        -: 3226:          * MRF we use.  We know it's safe to use this MRF because nothing
        -:        -: 3227:          * else does except for register spill/unspill, which generates and
        -:        -: 3228:          * uses its MRF within a single IR instruction.
        -:        -: 3229:          */
    #####:    #####: 3230:         inst->base_mrf = FIRST_PULL_LOAD_MRF(devinfo->gen) + 1;
    #####:    #####: 3231:         inst->mlen = 1;
        -:        -: 3232:      }
        -:        -: 3233:   }
        5:        5: 3234:}
        -:        -: 3235:
        -:        -: 3236:bool
        5:        5: 3237:fs_visitor::lower_load_payload()
        -:        -: 3238:{
        5:        5: 3239:   bool progress = false;
        -:        -: 3240:
      214:      226: 3241:   foreach_block_and_inst_safe (block, fs_inst, inst, cfg) {
      209:      221: 3242:      if (inst->opcode != SHADER_OPCODE_LOAD_PAYLOAD)
      204:      216: 3243:         continue;
        -:        -: 3244:
        5:        5: 3245:      assert(inst->dst.file == MRF || inst->dst.file == VGRF);
        5:        5: 3246:      assert(inst->saturate == false);
        5:        5: 3247:      fs_reg dst = inst->dst;
        -:        -: 3248:
        -:        -: 3249:      /* Get rid of COMPR4.  We'll add it back in if we need it */
        5:        5: 3250:      if (dst.file == MRF)
        5:        5: 3251:         dst.nr = dst.nr & ~BRW_MRF_COMPR4;
        -:        -: 3252:
        5:        5: 3253:      const fs_builder ibld(this, block, inst);
        5:        5: 3254:      const fs_builder hbld = ibld.exec_all().group(8, 0);
        -:        -: 3255:
        5:        5: 3256:      for (uint8_t i = 0; i < inst->header_size; i++) {
    #####:    #####: 3257:         if (inst->src[i].file != BAD_FILE) {
    #####:    #####: 3258:            fs_reg mov_dst = retype(dst, BRW_REGISTER_TYPE_UD);
    #####:    #####: 3259:            fs_reg mov_src = retype(inst->src[i], BRW_REGISTER_TYPE_UD);
    #####:    #####: 3260:            hbld.MOV(mov_dst, mov_src);
        -:        -: 3261:         }
    #####:    #####: 3262:         dst = offset(dst, hbld, 1);
        -:        -: 3263:      }
        -:        -: 3264:
        5:        5: 3265:      if (inst->dst.file == MRF && (inst->dst.nr & BRW_MRF_COMPR4) &&
    #####:    #####: 3266:          inst->exec_size > 8) {
        -:        -: 3267:         /* In this case, the payload portion of the LOAD_PAYLOAD isn't
        -:        -: 3268:          * a straightforward copy.  Instead, the result of the
        -:        -: 3269:          * LOAD_PAYLOAD is treated as interleaved and the first four
        -:        -: 3270:          * non-header sources are unpacked as:
        -:        -: 3271:          *
        -:        -: 3272:          * m + 0: r0
        -:        -: 3273:          * m + 1: g0
        -:        -: 3274:          * m + 2: b0
        -:        -: 3275:          * m + 3: a0
        -:        -: 3276:          * m + 4: r1
        -:        -: 3277:          * m + 5: g1
        -:        -: 3278:          * m + 6: b1
        -:        -: 3279:          * m + 7: a1
        -:        -: 3280:          *
        -:        -: 3281:          * This is used for gen <= 5 fb writes.
        -:        -: 3282:          */
    #####:    #####: 3283:         assert(inst->exec_size == 16);
    #####:    #####: 3284:         assert(inst->header_size + 4 <= inst->sources);
    #####:    #####: 3285:         for (uint8_t i = inst->header_size; i < inst->header_size + 4; i++) {
    #####:    #####: 3286:            if (inst->src[i].file != BAD_FILE) {
    #####:    #####: 3287:               if (devinfo->has_compr4) {
    #####:    #####: 3288:                  fs_reg compr4_dst = retype(dst, inst->src[i].type);
    #####:    #####: 3289:                  compr4_dst.nr |= BRW_MRF_COMPR4;
    #####:    #####: 3290:                  ibld.MOV(compr4_dst, inst->src[i]);
        -:        -: 3291:               } else {
        -:        -: 3292:                  /* Platform doesn't have COMPR4.  We have to fake it */
    #####:    #####: 3293:                  fs_reg mov_dst = retype(dst, inst->src[i].type);
    #####:    #####: 3294:                  ibld.half(0).MOV(mov_dst, half(inst->src[i], 0));
    #####:    #####: 3295:                  mov_dst.nr += 4;
    #####:    #####: 3296:                  ibld.half(1).MOV(mov_dst, half(inst->src[i], 1));
        -:        -: 3297:               }
        -:        -: 3298:            }
        -:        -: 3299:
    #####:    #####: 3300:            dst.nr++;
        -:        -: 3301:         }
        -:        -: 3302:
        -:        -: 3303:         /* The loop above only ever incremented us through the first set
        -:        -: 3304:          * of 4 registers.  However, thanks to the magic of COMPR4, we
        -:        -: 3305:          * actually wrote to the first 8 registers, so we need to take
        -:        -: 3306:          * that into account now.
        -:        -: 3307:          */
    #####:    #####: 3308:         dst.nr += 4;
        -:        -: 3309:
        -:        -: 3310:         /* The COMPR4 code took care of the first 4 sources.  We'll let
        -:        -: 3311:          * the regular path handle any remaining sources.  Yes, we are
        -:        -: 3312:          * modifying the instruction but we're about to delete it so
        -:        -: 3313:          * this really doesn't hurt anything.
        -:        -: 3314:          */
    #####:    #####: 3315:         inst->header_size += 4;
        -:        -: 3316:      }
        -:        -: 3317:
       25:       25: 3318:      for (uint8_t i = inst->header_size; i < inst->sources; i++) {
       20:       20: 3319:         if (inst->src[i].file != BAD_FILE)
       20:       20: 3320:            ibld.MOV(retype(dst, inst->src[i].type), inst->src[i]);
       20:       20: 3321:         dst = offset(dst, ibld, 1);
        -:        -: 3322:      }
        -:        -: 3323:
        5:        5: 3324:      inst->remove(block);
        5:        5: 3325:      progress = true;
        -:        -: 3326:   }
        -:        -: 3327:
        5:        5: 3328:   if (progress)
        5:        5: 3329:      invalidate_live_intervals();
        -:        -: 3330:
        5:        5: 3331:   return progress;
        -:        -: 3332:}
        -:        -: 3333:
        -:        -: 3334:bool
        5:        5: 3335:fs_visitor::lower_integer_multiplication()
        -:        -: 3336:{
        5:        5: 3337:   bool progress = false;
        -:        -: 3338:
      211:      223: 3339:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      206:      218: 3340:      const fs_builder ibld(this, block, inst);
        -:        -: 3341:
      206:      218: 3342:      if (inst->opcode == BRW_OPCODE_MUL) {
       54:       54: 3343:         if (inst->dst.is_accumulator() ||
       36:       36: 3344:             (inst->dst.type != BRW_REGISTER_TYPE_D &&
       18:       18: 3345:              inst->dst.type != BRW_REGISTER_TYPE_UD))
      224:      236: 3346:            continue;
        -:        -: 3347:
        -:        -: 3348:         /* Gen8's MUL instruction can do a 32-bit x 32-bit -> 32-bit
        -:        -: 3349:          * operation directly, but CHV/BXT cannot.
        -:        -: 3350:          */
    #####:    #####: 3351:         if (devinfo->gen >= 8 &&
    #####:    #####: 3352:             !devinfo->is_cherryview && !devinfo->is_broxton)
    #####:    #####: 3353:            continue;
        -:        -: 3354:
    #####:    #####: 3355:         if (inst->src[1].file == IMM &&
    #####:    #####: 3356:             inst->src[1].ud < (1 << 16)) {
        -:        -: 3357:            /* The MUL instruction isn't commutative. On Gen <= 6, only the low
        -:        -: 3358:             * 16-bits of src0 are read, and on Gen >= 7 only the low 16-bits of
        -:        -: 3359:             * src1 are used.
        -:        -: 3360:             *
        -:        -: 3361:             * If multiplying by an immediate value that fits in 16-bits, do a
        -:        -: 3362:             * single MUL instruction with that value in the proper location.
        -:        -: 3363:             */
    #####:    #####: 3364:            if (devinfo->gen < 7) {
    #####:    #####: 3365:               fs_reg imm(VGRF, alloc.allocate(dispatch_width / 8),
    #####:    #####: 3366:                          inst->dst.type);
    #####:    #####: 3367:               ibld.MOV(imm, inst->src[1]);
    #####:    #####: 3368:               ibld.MUL(inst->dst, imm, inst->src[0]);
        -:        -: 3369:            } else {
    #####:    #####: 3370:               const bool ud = (inst->src[1].type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 3371:               ibld.MUL(inst->dst, inst->src[0],
    #####:    #####: 3372:                        ud ? brw_imm_uw(inst->src[1].ud)
    #####:    #####: 3373:                           : brw_imm_w(inst->src[1].d));
    #####:    #####: 3374:            }
        -:        -: 3375:         } else {
        -:        -: 3376:            /* Gen < 8 (and some Gen8+ low-power parts like Cherryview) cannot
        -:        -: 3377:             * do 32-bit integer multiplication in one instruction, but instead
        -:        -: 3378:             * must do a sequence (which actually calculates a 64-bit result):
        -:        -: 3379:             *
        -:        -: 3380:             *    mul(8)  acc0<1>D   g3<8,8,1>D      g4<8,8,1>D
        -:        -: 3381:             *    mach(8) null       g3<8,8,1>D      g4<8,8,1>D
        -:        -: 3382:             *    mov(8)  g2<1>D     acc0<8,8,1>D
        -:        -: 3383:             *
        -:        -: 3384:             * But on Gen > 6, the ability to use second accumulator register
        -:        -: 3385:             * (acc1) for non-float data types was removed, preventing a simple
        -:        -: 3386:             * implementation in SIMD16. A 16-channel result can be calculated by
        -:        -: 3387:             * executing the three instructions twice in SIMD8, once with quarter
        -:        -: 3388:             * control of 1Q for the first eight channels and again with 2Q for
        -:        -: 3389:             * the second eight channels.
        -:        -: 3390:             *
        -:        -: 3391:             * Which accumulator register is implicitly accessed (by AccWrEnable
        -:        -: 3392:             * for instance) is determined by the quarter control. Unfortunately
        -:        -: 3393:             * Ivybridge (and presumably Baytrail) has a hardware bug in which an
        -:        -: 3394:             * implicit accumulator access by an instruction with 2Q will access
        -:        -: 3395:             * acc1 regardless of whether the data type is usable in acc1.
        -:        -: 3396:             *
        -:        -: 3397:             * Specifically, the 2Q mach(8) writes acc1 which does not exist for
        -:        -: 3398:             * integer data types.
        -:        -: 3399:             *
        -:        -: 3400:             * Since we only want the low 32-bits of the result, we can do two
        -:        -: 3401:             * 32-bit x 16-bit multiplies (like the mul and mach are doing), and
        -:        -: 3402:             * adjust the high result and add them (like the mach is doing):
        -:        -: 3403:             *
        -:        -: 3404:             *    mul(8)  g7<1>D     g3<8,8,1>D      g4.0<8,8,1>UW
        -:        -: 3405:             *    mul(8)  g8<1>D     g3<8,8,1>D      g4.1<8,8,1>UW
        -:        -: 3406:             *    shl(8)  g9<1>D     g8<8,8,1>D      16D
        -:        -: 3407:             *    add(8)  g2<1>D     g7<8,8,1>D      g8<8,8,1>D
        -:        -: 3408:             *
        -:        -: 3409:             * We avoid the shl instruction by realizing that we only want to add
        -:        -: 3410:             * the low 16-bits of the "high" result to the high 16-bits of the
        -:        -: 3411:             * "low" result and using proper regioning on the add:
        -:        -: 3412:             *
        -:        -: 3413:             *    mul(8)  g7<1>D     g3<8,8,1>D      g4.0<16,8,2>UW
        -:        -: 3414:             *    mul(8)  g8<1>D     g3<8,8,1>D      g4.1<16,8,2>UW
        -:        -: 3415:             *    add(8)  g7.1<2>UW  g7.1<16,8,2>UW  g8<16,8,2>UW
        -:        -: 3416:             *
        -:        -: 3417:             * Since it does not use the (single) accumulator register, we can
        -:        -: 3418:             * schedule multi-component multiplications much better.
        -:        -: 3419:             */
        -:        -: 3420:
    #####:    #####: 3421:            fs_reg orig_dst = inst->dst;
    #####:    #####: 3422:            if (orig_dst.is_null() || orig_dst.file == MRF) {
    #####:    #####: 3423:               inst->dst = fs_reg(VGRF, alloc.allocate(dispatch_width / 8),
    #####:    #####: 3424:                                  inst->dst.type);
        -:        -: 3425:            }
    #####:    #####: 3426:            fs_reg low = inst->dst;
    #####:    #####: 3427:            fs_reg high(VGRF, alloc.allocate(dispatch_width / 8),
    #####:    #####: 3428:                        inst->dst.type);
        -:        -: 3429:
    #####:    #####: 3430:            if (devinfo->gen >= 7) {
    #####:    #####: 3431:               if (inst->src[1].file == IMM) {
    #####:    #####: 3432:                  ibld.MUL(low, inst->src[0],
    #####:    #####: 3433:                           brw_imm_uw(inst->src[1].ud & 0xffff));
    #####:    #####: 3434:                  ibld.MUL(high, inst->src[0],
    #####:    #####: 3435:                           brw_imm_uw(inst->src[1].ud >> 16));
        -:        -: 3436:               } else {
    #####:    #####: 3437:                  ibld.MUL(low, inst->src[0],
    #####:    #####: 3438:                           subscript(inst->src[1], BRW_REGISTER_TYPE_UW, 0));
    #####:    #####: 3439:                  ibld.MUL(high, inst->src[0],
    #####:    #####: 3440:                           subscript(inst->src[1], BRW_REGISTER_TYPE_UW, 1));
        -:        -: 3441:               }
        -:        -: 3442:            } else {
    #####:    #####: 3443:               ibld.MUL(low, subscript(inst->src[0], BRW_REGISTER_TYPE_UW, 0),
    #####:    #####: 3444:                        inst->src[1]);
    #####:    #####: 3445:               ibld.MUL(high, subscript(inst->src[0], BRW_REGISTER_TYPE_UW, 1),
    #####:    #####: 3446:                        inst->src[1]);
        -:        -: 3447:            }
        -:        -: 3448:
    #####:    #####: 3449:            ibld.ADD(subscript(inst->dst, BRW_REGISTER_TYPE_UW, 1),
    #####:    #####: 3450:                     subscript(low, BRW_REGISTER_TYPE_UW, 1),
    #####:    #####: 3451:                     subscript(high, BRW_REGISTER_TYPE_UW, 0));
        -:        -: 3452:
    #####:    #####: 3453:            if (inst->conditional_mod || orig_dst.file == MRF) {
    #####:    #####: 3454:               set_condmod(inst->conditional_mod,
    #####:    #####: 3455:                           ibld.MOV(orig_dst, inst->dst));
        -:        -: 3456:            }
        -:        -: 3457:         }
        -:        -: 3458:
      188:      200: 3459:      } else if (inst->opcode == SHADER_OPCODE_MULH) {
        -:        -: 3460:         /* Should have been lowered to 8-wide. */
    #####:    #####: 3461:         assert(inst->exec_size <= get_lowered_simd_width(devinfo, inst));
    #####:    #####: 3462:         const fs_reg acc = retype(brw_acc_reg(inst->exec_size),
    #####:    #####: 3463:                                   inst->dst.type);
    #####:    #####: 3464:         fs_inst *mul = ibld.MUL(acc, inst->src[0], inst->src[1]);
    #####:    #####: 3465:         fs_inst *mach = ibld.MACH(inst->dst, inst->src[0], inst->src[1]);
        -:        -: 3466:
    #####:    #####: 3467:         if (devinfo->gen >= 8) {
        -:        -: 3468:            /* Until Gen8, integer multiplies read 32-bits from one source,
        -:        -: 3469:             * and 16-bits from the other, and relying on the MACH instruction
        -:        -: 3470:             * to generate the high bits of the result.
        -:        -: 3471:             *
        -:        -: 3472:             * On Gen8, the multiply instruction does a full 32x32-bit
        -:        -: 3473:             * multiply, but in order to do a 64-bit multiply we can simulate
        -:        -: 3474:             * the previous behavior and then use a MACH instruction.
        -:        -: 3475:             *
        -:        -: 3476:             * FINISHME: Don't use source modifiers on src1.
        -:        -: 3477:             */
    #####:    #####: 3478:            assert(mul->src[1].type == BRW_REGISTER_TYPE_D ||
    #####:    #####: 3479:                   mul->src[1].type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 3480:            mul->src[1].type = BRW_REGISTER_TYPE_UW;
    #####:    #####: 3481:            mul->src[1].stride *= 2;
        -:        -: 3482:
    #####:    #####: 3483:         } else if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####: 3484:                    inst->group > 0) {
        -:        -: 3485:            /* Among other things the quarter control bits influence which
        -:        -: 3486:             * accumulator register is used by the hardware for instructions
        -:        -: 3487:             * that access the accumulator implicitly (e.g. MACH).  A
        -:        -: 3488:             * second-half instruction would normally map to acc1, which
        -:        -: 3489:             * doesn't exist on Gen7 and up (the hardware does emulate it for
        -:        -: 3490:             * floating-point instructions *only* by taking advantage of the
        -:        -: 3491:             * extra precision of acc0 not normally used for floating point
        -:        -: 3492:             * arithmetic).
        -:        -: 3493:             *
        -:        -: 3494:             * HSW and up are careful enough not to try to access an
        -:        -: 3495:             * accumulator register that doesn't exist, but on earlier Gen7
        -:        -: 3496:             * hardware we need to make sure that the quarter control bits are
        -:        -: 3497:             * zero to avoid non-deterministic behaviour and emit an extra MOV
        -:        -: 3498:             * to get the result masked correctly according to the current
        -:        -: 3499:             * channel enables.
        -:        -: 3500:             */
    #####:    #####: 3501:            mach->group = 0;
    #####:    #####: 3502:            mach->force_writemask_all = true;
    #####:    #####: 3503:            mach->dst = ibld.vgrf(inst->dst.type);
    #####:    #####: 3504:            ibld.MOV(inst->dst, mach->dst);
        -:        -: 3505:         }
        -:        -: 3506:      } else {
      188:      200: 3507:         continue;
        -:        -: 3508:      }
        -:        -: 3509:
    #####:    #####: 3510:      inst->remove(block);
    #####:    #####: 3511:      progress = true;
        -:        -: 3512:   }
        -:        -: 3513:
        5:        5: 3514:   if (progress)
    #####:    #####: 3515:      invalidate_live_intervals();
        -:        -: 3516:
        5:        5: 3517:   return progress;
        -:        -: 3518:}
        -:        -: 3519:
        -:        -: 3520:bool
    #####:    #####: 3521:fs_visitor::lower_minmax()
        -:        -: 3522:{
    #####:    #####: 3523:   assert(devinfo->gen < 6);
        -:        -: 3524:
    #####:    #####: 3525:   bool progress = false;
        -:        -: 3526:
    #####:    #####: 3527:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
    #####:    #####: 3528:      const fs_builder ibld(this, block, inst);
        -:        -: 3529:
    #####:    #####: 3530:      if (inst->opcode == BRW_OPCODE_SEL &&
    #####:    #####: 3531:          inst->predicate == BRW_PREDICATE_NONE) {
        -:        -: 3532:         /* FIXME: Using CMP doesn't preserve the NaN propagation semantics of
        -:        -: 3533:          *        the original SEL.L/GE instruction
        -:        -: 3534:          */
    #####:    #####: 3535:         ibld.CMP(ibld.null_reg_d(), inst->src[0], inst->src[1],
    #####:    #####: 3536:                  inst->conditional_mod);
    #####:    #####: 3537:         inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####: 3538:         inst->conditional_mod = BRW_CONDITIONAL_NONE;
        -:        -: 3539:
    #####:    #####: 3540:         progress = true;
        -:        -: 3541:      }
        -:        -: 3542:   }
        -:        -: 3543:
    #####:    #####: 3544:   if (progress)
    #####:    #####: 3545:      invalidate_live_intervals();
        -:        -: 3546:
    #####:    #####: 3547:   return progress;
        -:        -: 3548:}
        -:        -: 3549:
        -:        -: 3550:static void
        5:        5: 3551:setup_color_payload(const fs_builder &bld, const brw_wm_prog_key *key,
        -:        -: 3552:                    fs_reg *dst, fs_reg color, unsigned components)
        -:        -: 3553:{
        5:        5: 3554:   if (key->clamp_fragment_color) {
    #####:    #####: 3555:      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_F, 4);
    #####:    #####: 3556:      assert(color.type == BRW_REGISTER_TYPE_F);
        -:        -: 3557:
    #####:    #####: 3558:      for (unsigned i = 0; i < components; i++)
    #####:    #####: 3559:         set_saturate(true,
    #####:    #####: 3560:                      bld.MOV(offset(tmp, bld, i), offset(color, bld, i)));
        -:        -: 3561:
    #####:    #####: 3562:      color = tmp;
        -:        -: 3563:   }
        -:        -: 3564:
       25:       25: 3565:   for (unsigned i = 0; i < components; i++)
       20:       20: 3566:      dst[i] = offset(color, bld, i);
        5:        5: 3567:}
        -:        -: 3568:
        -:        -: 3569:static void
        5:        5: 3570:lower_fb_write_logical_send(const fs_builder &bld, fs_inst *inst,
        -:        -: 3571:                            const struct brw_wm_prog_data *prog_data,
        -:        -: 3572:                            const brw_wm_prog_key *key,
        -:        -: 3573:                            const fs_visitor::thread_payload &payload)
        -:        -: 3574:{
        5:        5: 3575:   assert(inst->src[FB_WRITE_LOGICAL_SRC_COMPONENTS].file == IMM);
        5:        5: 3576:   const gen_device_info *devinfo = bld.shader->devinfo;
        5:        5: 3577:   const fs_reg &color0 = inst->src[FB_WRITE_LOGICAL_SRC_COLOR0];
        5:        5: 3578:   const fs_reg &color1 = inst->src[FB_WRITE_LOGICAL_SRC_COLOR1];
        5:        5: 3579:   const fs_reg &src0_alpha = inst->src[FB_WRITE_LOGICAL_SRC_SRC0_ALPHA];
        5:        5: 3580:   const fs_reg &src_depth = inst->src[FB_WRITE_LOGICAL_SRC_SRC_DEPTH];
        5:        5: 3581:   const fs_reg &dst_depth = inst->src[FB_WRITE_LOGICAL_SRC_DST_DEPTH];
        5:        5: 3582:   const fs_reg &src_stencil = inst->src[FB_WRITE_LOGICAL_SRC_SRC_STENCIL];
        5:        5: 3583:   fs_reg sample_mask = inst->src[FB_WRITE_LOGICAL_SRC_OMASK];
        -:        -: 3584:   const unsigned components =
        5:        5: 3585:      inst->src[FB_WRITE_LOGICAL_SRC_COMPONENTS].ud;
        -:        -: 3586:
        -:        -: 3587:   /* We can potentially have a message length of up to 15, so we have to set
        -:        -: 3588:    * base_mrf to either 0 or 1 in order to fit in m0..m15.
        -:        -: 3589:    */
        5:        5: 3590:   fs_reg sources[15];
        5:        5: 3591:   int header_size = 2, payload_header_size;
        5:        5: 3592:   unsigned length = 0;
        -:        -: 3593:
        -:        -: 3594:   /* From the Sandy Bridge PRM, volume 4, page 198:
        -:        -: 3595:    *
        -:        -: 3596:    *     "Dispatched Pixel Enables. One bit per pixel indicating
        -:        -: 3597:    *      which pixels were originally enabled when the thread was
        -:        -: 3598:    *      dispatched. This field is only required for the end-of-
        -:        -: 3599:    *      thread message and on all dual-source messages."
        -:        -: 3600:    */
       10:       10: 3601:   if (devinfo->gen >= 6 &&
       15:       15: 3602:       (devinfo->is_haswell || devinfo->gen >= 8 || !prog_data->uses_kill) &&
       10:       10: 3603:       color1.file == BAD_FILE &&
        5:        5: 3604:       key->nr_color_regions == 1) {
        5:        5: 3605:      header_size = 0;
        -:        -: 3606:   }
        -:        -: 3607:
        5:        5: 3608:   if (header_size != 0) {
    #####:    #####: 3609:      assert(header_size == 2);
        -:        -: 3610:      /* Allocate 2 registers for a header */
    #####:    #####: 3611:      length += 2;
        -:        -: 3612:   }
        -:        -: 3613:
        5:        5: 3614:   if (payload.aa_dest_stencil_reg) {
    #####:    #####: 3615:      sources[length] = fs_reg(VGRF, bld.shader->alloc.allocate(1));
    #####:    #####: 3616:      bld.group(8, 0).exec_all().annotate("FB write stencil/AA alpha")
    #####:    #####: 3617:         .MOV(sources[length],
    #####:    #####: 3618:              fs_reg(brw_vec8_grf(payload.aa_dest_stencil_reg, 0)));
    #####:    #####: 3619:      length++;
        -:        -: 3620:   }
        -:        -: 3621:
        5:        5: 3622:   if (sample_mask.file != BAD_FILE) {
    #####:    #####: 3623:      sources[length] = fs_reg(VGRF, bld.shader->alloc.allocate(1),
    #####:    #####: 3624:                               BRW_REGISTER_TYPE_UD);
        -:        -: 3625:
        -:        -: 3626:      /* Hand over gl_SampleMask.  Only the lower 16 bits of each channel are
        -:        -: 3627:       * relevant.  Since it's unsigned single words one vgrf is always
        -:        -: 3628:       * 16-wide, but only the lower or higher 8 channels will be used by the
        -:        -: 3629:       * hardware when doing a SIMD8 write depending on whether we have
        -:        -: 3630:       * selected the subspans for the first or second half respectively.
        -:        -: 3631:       */
    #####:    #####: 3632:      assert(sample_mask.file != BAD_FILE && type_sz(sample_mask.type) == 4);
    #####:    #####: 3633:      sample_mask.type = BRW_REGISTER_TYPE_UW;
    #####:    #####: 3634:      sample_mask.stride *= 2;
        -:        -: 3635:
    #####:    #####: 3636:      bld.exec_all().annotate("FB write oMask")
    #####:    #####: 3637:         .MOV(horiz_offset(retype(sources[length], BRW_REGISTER_TYPE_UW),
    #####:    #####: 3638:                           inst->group),
    #####:    #####: 3639:              sample_mask);
    #####:    #####: 3640:      length++;
        -:        -: 3641:   }
        -:        -: 3642:
        5:        5: 3643:   payload_header_size = length;
        -:        -: 3644:
        5:        5: 3645:   if (src0_alpha.file != BAD_FILE) {
        -:        -: 3646:      /* FIXME: This is being passed at the wrong location in the payload and
        -:        -: 3647:       * doesn't work when gl_SampleMask and MRTs are used simultaneously.
        -:        -: 3648:       * It's supposed to be immediately before oMask but there seems to be no
        -:        -: 3649:       * reasonable way to pass them in the correct order because LOAD_PAYLOAD
        -:        -: 3650:       * requires header sources to form a contiguous segment at the beginning
        -:        -: 3651:       * of the message and src0_alpha has per-channel semantics.
        -:        -: 3652:       */
    #####:    #####: 3653:      setup_color_payload(bld, key, &sources[length], src0_alpha, 1);
    #####:    #####: 3654:      length++;
        5:        5: 3655:   } else if (key->replicate_alpha && inst->target != 0) {
        -:        -: 3656:      /* Handle the case when fragment shader doesn't write to draw buffer
        -:        -: 3657:       * zero. No need to call setup_color_payload() for src0_alpha because
        -:        -: 3658:       * alpha value will be undefined.
        -:        -: 3659:       */
    #####:    #####: 3660:      length++;
        -:        -: 3661:   }
        -:        -: 3662:
        5:        5: 3663:   setup_color_payload(bld, key, &sources[length], color0, components);
        5:        5: 3664:   length += 4;
        -:        -: 3665:
        5:        5: 3666:   if (color1.file != BAD_FILE) {
    #####:    #####: 3667:      setup_color_payload(bld, key, &sources[length], color1, components);
    #####:    #####: 3668:      length += 4;
        -:        -: 3669:   }
        -:        -: 3670:
        5:        5: 3671:   if (src_depth.file != BAD_FILE) {
    #####:    #####: 3672:      sources[length] = src_depth;
    #####:    #####: 3673:      length++;
        -:        -: 3674:   }
        -:        -: 3675:
        5:        5: 3676:   if (dst_depth.file != BAD_FILE) {
    #####:    #####: 3677:      sources[length] = dst_depth;
    #####:    #####: 3678:      length++;
        -:        -: 3679:   }
        -:        -: 3680:
        5:        5: 3681:   if (src_stencil.file != BAD_FILE) {
    #####:    #####: 3682:      assert(devinfo->gen >= 9);
    #####:    #####: 3683:      assert(bld.dispatch_width() != 16);
        -:        -: 3684:
        -:        -: 3685:      /* XXX: src_stencil is only available on gen9+. dst_depth is never
        -:        -: 3686:       * available on gen9+. As such it's impossible to have both enabled at the
        -:        -: 3687:       * same time and therefore length cannot overrun the array.
        -:        -: 3688:       */
    #####:    #####: 3689:      assert(length < 15);
        -:        -: 3690:
    #####:    #####: 3691:      sources[length] = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 3692:      bld.exec_all().annotate("FB write OS")
    #####:    #####: 3693:         .MOV(retype(sources[length], BRW_REGISTER_TYPE_UB),
    #####:    #####: 3694:              subscript(src_stencil, BRW_REGISTER_TYPE_UB, 0));
    #####:    #####: 3695:      length++;
        -:        -: 3696:   }
        -:        -: 3697:
        -:        -: 3698:   fs_inst *load;
        5:        5: 3699:   if (devinfo->gen >= 7) {
        -:        -: 3700:      /* Send from the GRF */
    #####:    #####: 3701:      fs_reg payload = fs_reg(VGRF, -1, BRW_REGISTER_TYPE_F);
    #####:    #####: 3702:      load = bld.LOAD_PAYLOAD(payload, sources, length, payload_header_size);
    #####:    #####: 3703:      payload.nr = bld.shader->alloc.allocate(regs_written(load));
    #####:    #####: 3704:      load->dst = payload;
        -:        -: 3705:
    #####:    #####: 3706:      inst->src[0] = payload;
    #####:    #####: 3707:      inst->resize_sources(1);
        -:        -: 3708:   } else {
        -:        -: 3709:      /* Send from the MRF */
       10:       10: 3710:      load = bld.LOAD_PAYLOAD(fs_reg(MRF, 1, BRW_REGISTER_TYPE_F),
        5:        5: 3711:                              sources, length, payload_header_size);
        -:        -: 3712:
        -:        -: 3713:      /* On pre-SNB, we have to interlace the color values.  LOAD_PAYLOAD
        -:        -: 3714:       * will do this for us if we just give it a COMPR4 destination.
        -:        -: 3715:       */
        5:        5: 3716:      if (devinfo->gen < 6 && bld.dispatch_width() == 16)
    #####:    #####: 3717:         load->dst.nr |= BRW_MRF_COMPR4;
        -:        -: 3718:
        5:        5: 3719:      inst->resize_sources(0);
        5:        5: 3720:      inst->base_mrf = 1;
        -:        -: 3721:   }
        -:        -: 3722:
        5:        5: 3723:   inst->opcode = FS_OPCODE_FB_WRITE;
        5:        5: 3724:   inst->mlen = regs_written(load);
        5:        5: 3725:   inst->header_size = header_size;
        5:        5: 3726:}
        -:        -: 3727:
        -:        -: 3728:static void
    #####:    #####: 3729:lower_fb_read_logical_send(const fs_builder &bld, fs_inst *inst)
        -:        -: 3730:{
    #####:    #####: 3731:   const fs_builder &ubld = bld.exec_all();
    #####:    #####: 3732:   const unsigned length = 2;
    #####:    #####: 3733:   const fs_reg header = ubld.group(8, 0).vgrf(BRW_REGISTER_TYPE_UD, length);
        -:        -: 3734:
    #####:    #####: 3735:   ubld.group(16, 0)
    #####:    #####: 3736:       .MOV(header, retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
        -:        -: 3737:
    #####:    #####: 3738:   inst->resize_sources(1);
    #####:    #####: 3739:   inst->src[0] = header;
    #####:    #####: 3740:   inst->opcode = FS_OPCODE_FB_READ;
    #####:    #####: 3741:   inst->mlen = length;
    #####:    #####: 3742:   inst->header_size = length;
    #####:    #####: 3743:}
        -:        -: 3744:
        -:        -: 3745:static void
    #####:    #####: 3746:lower_sampler_logical_send_gen4(const fs_builder &bld, fs_inst *inst, opcode op,
        -:        -: 3747:                                const fs_reg &coordinate,
        -:        -: 3748:                                const fs_reg &shadow_c,
        -:        -: 3749:                                const fs_reg &lod, const fs_reg &lod2,
        -:        -: 3750:                                const fs_reg &surface,
        -:        -: 3751:                                const fs_reg &sampler,
        -:        -: 3752:                                unsigned coord_components,
        -:        -: 3753:                                unsigned grad_components)
        -:        -: 3754:{
    #####:    #####: 3755:   const bool has_lod = (op == SHADER_OPCODE_TXL || op == FS_OPCODE_TXB ||
    #####:    #####: 3756:                         op == SHADER_OPCODE_TXF || op == SHADER_OPCODE_TXS);
    #####:    #####: 3757:   fs_reg msg_begin(MRF, 1, BRW_REGISTER_TYPE_F);
    #####:    #####: 3758:   fs_reg msg_end = msg_begin;
        -:        -: 3759:
        -:        -: 3760:   /* g0 header. */
    #####:    #####: 3761:   msg_end = offset(msg_end, bld.group(8, 0), 1);
        -:        -: 3762:
    #####:    #####: 3763:   for (unsigned i = 0; i < coord_components; i++)
    #####:    #####: 3764:      bld.MOV(retype(offset(msg_end, bld, i), coordinate.type),
    #####:    #####: 3765:              offset(coordinate, bld, i));
        -:        -: 3766:
    #####:    #####: 3767:   msg_end = offset(msg_end, bld, coord_components);
        -:        -: 3768:
        -:        -: 3769:   /* Messages other than SAMPLE and RESINFO in SIMD16 and TXD in SIMD8
        -:        -: 3770:    * require all three components to be present and zero if they are unused.
        -:        -: 3771:    */
    #####:    #####: 3772:   if (coord_components > 0 &&
    #####:    #####: 3773:       (has_lod || shadow_c.file != BAD_FILE ||
    #####:    #####: 3774:        (op == SHADER_OPCODE_TEX && bld.dispatch_width() == 8))) {
    #####:    #####: 3775:      for (unsigned i = coord_components; i < 3; i++)
    #####:    #####: 3776:         bld.MOV(offset(msg_end, bld, i), brw_imm_f(0.0f));
        -:        -: 3777:
    #####:    #####: 3778:      msg_end = offset(msg_end, bld, 3 - coord_components);
        -:        -: 3779:   }
        -:        -: 3780:
    #####:    #####: 3781:   if (op == SHADER_OPCODE_TXD) {
        -:        -: 3782:      /* TXD unsupported in SIMD16 mode. */
    #####:    #####: 3783:      assert(bld.dispatch_width() == 8);
        -:        -: 3784:
        -:        -: 3785:      /* the slots for u and v are always present, but r is optional */
    #####:    #####: 3786:      if (coord_components < 2)
    #####:    #####: 3787:         msg_end = offset(msg_end, bld, 2 - coord_components);
        -:        -: 3788:
        -:        -: 3789:      /*  P   = u, v, r
        -:        -: 3790:       * dPdx = dudx, dvdx, drdx
        -:        -: 3791:       * dPdy = dudy, dvdy, drdy
        -:        -: 3792:       *
        -:        -: 3793:       * 1-arg: Does not exist.
        -:        -: 3794:       *
        -:        -: 3795:       * 2-arg: dudx   dvdx   dudy   dvdy
        -:        -: 3796:       *        dPdx.x dPdx.y dPdy.x dPdy.y
        -:        -: 3797:       *        m4     m5     m6     m7
        -:        -: 3798:       *
        -:        -: 3799:       * 3-arg: dudx   dvdx   drdx   dudy   dvdy   drdy
        -:        -: 3800:       *        dPdx.x dPdx.y dPdx.z dPdy.x dPdy.y dPdy.z
        -:        -: 3801:       *        m5     m6     m7     m8     m9     m10
        -:        -: 3802:       */
    #####:    #####: 3803:      for (unsigned i = 0; i < grad_components; i++)
    #####:    #####: 3804:         bld.MOV(offset(msg_end, bld, i), offset(lod, bld, i));
        -:        -: 3805:
    #####:    #####: 3806:      msg_end = offset(msg_end, bld, MAX2(grad_components, 2));
        -:        -: 3807:
    #####:    #####: 3808:      for (unsigned i = 0; i < grad_components; i++)
    #####:    #####: 3809:         bld.MOV(offset(msg_end, bld, i), offset(lod2, bld, i));
        -:        -: 3810:
    #####:    #####: 3811:      msg_end = offset(msg_end, bld, MAX2(grad_components, 2));
        -:        -: 3812:   }
        -:        -: 3813:
    #####:    #####: 3814:   if (has_lod) {
        -:        -: 3815:      /* Bias/LOD with shadow comparator is unsupported in SIMD16 -- *Without*
        -:        -: 3816:       * shadow comparator (including RESINFO) it's unsupported in SIMD8 mode.
        -:        -: 3817:       */
    #####:    #####: 3818:      assert(shadow_c.file != BAD_FILE ? bld.dispatch_width() == 8 :
    #####:    #####: 3819:             bld.dispatch_width() == 16);
        -:        -: 3820:
        -:        -: 3821:      const brw_reg_type type =
    #####:    #####: 3822:         (op == SHADER_OPCODE_TXF || op == SHADER_OPCODE_TXS ?
    #####:    #####: 3823:          BRW_REGISTER_TYPE_UD : BRW_REGISTER_TYPE_F);
    #####:    #####: 3824:      bld.MOV(retype(msg_end, type), lod);
    #####:    #####: 3825:      msg_end = offset(msg_end, bld, 1);
        -:        -: 3826:   }
        -:        -: 3827:
    #####:    #####: 3828:   if (shadow_c.file != BAD_FILE) {
    #####:    #####: 3829:      if (op == SHADER_OPCODE_TEX && bld.dispatch_width() == 8) {
        -:        -: 3830:         /* There's no plain shadow compare message, so we use shadow
        -:        -: 3831:          * compare with a bias of 0.0.
        -:        -: 3832:          */
    #####:    #####: 3833:         bld.MOV(msg_end, brw_imm_f(0.0f));
    #####:    #####: 3834:         msg_end = offset(msg_end, bld, 1);
        -:        -: 3835:      }
        -:        -: 3836:
    #####:    #####: 3837:      bld.MOV(msg_end, shadow_c);
    #####:    #####: 3838:      msg_end = offset(msg_end, bld, 1);
        -:        -: 3839:   }
        -:        -: 3840:
    #####:    #####: 3841:   inst->opcode = op;
    #####:    #####: 3842:   inst->src[0] = reg_undef;
    #####:    #####: 3843:   inst->src[1] = surface;
    #####:    #####: 3844:   inst->src[2] = sampler;
    #####:    #####: 3845:   inst->resize_sources(3);
    #####:    #####: 3846:   inst->base_mrf = msg_begin.nr;
    #####:    #####: 3847:   inst->mlen = msg_end.nr - msg_begin.nr;
    #####:    #####: 3848:   inst->header_size = 1;
    #####:    #####: 3849:}
        -:        -: 3850:
        -:        -: 3851:static void
    #####:    #####: 3852:lower_sampler_logical_send_gen5(const fs_builder &bld, fs_inst *inst, opcode op,
        -:        -: 3853:                                const fs_reg &coordinate,
        -:        -: 3854:                                const fs_reg &shadow_c,
        -:        -: 3855:                                const fs_reg &lod, const fs_reg &lod2,
        -:        -: 3856:                                const fs_reg &sample_index,
        -:        -: 3857:                                const fs_reg &surface,
        -:        -: 3858:                                const fs_reg &sampler,
        -:        -: 3859:                                unsigned coord_components,
        -:        -: 3860:                                unsigned grad_components)
        -:        -: 3861:{
    #####:    #####: 3862:   fs_reg message(MRF, 2, BRW_REGISTER_TYPE_F);
    #####:    #####: 3863:   fs_reg msg_coords = message;
    #####:    #####: 3864:   unsigned header_size = 0;
        -:        -: 3865:
    #####:    #####: 3866:   if (inst->offset != 0) {
        -:        -: 3867:      /* The offsets set up by the visitor are in the m1 header, so we can't
        -:        -: 3868:       * go headerless.
        -:        -: 3869:       */
    #####:    #####: 3870:      header_size = 1;
    #####:    #####: 3871:      message.nr--;
        -:        -: 3872:   }
        -:        -: 3873:
    #####:    #####: 3874:   for (unsigned i = 0; i < coord_components; i++)
    #####:    #####: 3875:      bld.MOV(retype(offset(msg_coords, bld, i), coordinate.type),
    #####:    #####: 3876:              offset(coordinate, bld, i));
        -:        -: 3877:
    #####:    #####: 3878:   fs_reg msg_end = offset(msg_coords, bld, coord_components);
    #####:    #####: 3879:   fs_reg msg_lod = offset(msg_coords, bld, 4);
        -:        -: 3880:
    #####:    #####: 3881:   if (shadow_c.file != BAD_FILE) {
    #####:    #####: 3882:      fs_reg msg_shadow = msg_lod;
    #####:    #####: 3883:      bld.MOV(msg_shadow, shadow_c);
    #####:    #####: 3884:      msg_lod = offset(msg_shadow, bld, 1);
    #####:    #####: 3885:      msg_end = msg_lod;
        -:        -: 3886:   }
        -:        -: 3887:
    #####:    #####: 3888:   switch (op) {
        -:        -: 3889:   case SHADER_OPCODE_TXL:
        -:        -: 3890:   case FS_OPCODE_TXB:
    #####:    #####: 3891:      bld.MOV(msg_lod, lod);
    #####:    #####: 3892:      msg_end = offset(msg_lod, bld, 1);
    #####:    #####: 3893:      break;
        -:        -: 3894:   case SHADER_OPCODE_TXD:
        -:        -: 3895:      /**
        -:        -: 3896:       *  P   =  u,    v,    r
        -:        -: 3897:       * dPdx = dudx, dvdx, drdx
        -:        -: 3898:       * dPdy = dudy, dvdy, drdy
        -:        -: 3899:       *
        -:        -: 3900:       * Load up these values:
        -:        -: 3901:       * - dudx   dudy   dvdx   dvdy   drdx   drdy
        -:        -: 3902:       * - dPdx.x dPdy.x dPdx.y dPdy.y dPdx.z dPdy.z
        -:        -: 3903:       */
    #####:    #####: 3904:      msg_end = msg_lod;
    #####:    #####: 3905:      for (unsigned i = 0; i < grad_components; i++) {
    #####:    #####: 3906:         bld.MOV(msg_end, offset(lod, bld, i));
    #####:    #####: 3907:         msg_end = offset(msg_end, bld, 1);
        -:        -: 3908:
    #####:    #####: 3909:         bld.MOV(msg_end, offset(lod2, bld, i));
    #####:    #####: 3910:         msg_end = offset(msg_end, bld, 1);
        -:        -: 3911:      }
    #####:    #####: 3912:      break;
        -:        -: 3913:   case SHADER_OPCODE_TXS:
    #####:    #####: 3914:      msg_lod = retype(msg_end, BRW_REGISTER_TYPE_UD);
    #####:    #####: 3915:      bld.MOV(msg_lod, lod);
    #####:    #####: 3916:      msg_end = offset(msg_lod, bld, 1);
    #####:    #####: 3917:      break;
        -:        -: 3918:   case SHADER_OPCODE_TXF:
    #####:    #####: 3919:      msg_lod = offset(msg_coords, bld, 3);
    #####:    #####: 3920:      bld.MOV(retype(msg_lod, BRW_REGISTER_TYPE_UD), lod);
    #####:    #####: 3921:      msg_end = offset(msg_lod, bld, 1);
    #####:    #####: 3922:      break;
        -:        -: 3923:   case SHADER_OPCODE_TXF_CMS:
    #####:    #####: 3924:      msg_lod = offset(msg_coords, bld, 3);
        -:        -: 3925:      /* lod */
    #####:    #####: 3926:      bld.MOV(retype(msg_lod, BRW_REGISTER_TYPE_UD), brw_imm_ud(0u));
        -:        -: 3927:      /* sample index */
    #####:    #####: 3928:      bld.MOV(retype(offset(msg_lod, bld, 1), BRW_REGISTER_TYPE_UD), sample_index);
    #####:    #####: 3929:      msg_end = offset(msg_lod, bld, 2);
    #####:    #####: 3930:      break;
        -:        -: 3931:   default:
    #####:    #####: 3932:      break;
        -:        -: 3933:   }
        -:        -: 3934:
    #####:    #####: 3935:   inst->opcode = op;
    #####:    #####: 3936:   inst->src[0] = reg_undef;
    #####:    #####: 3937:   inst->src[1] = surface;
    #####:    #####: 3938:   inst->src[2] = sampler;
    #####:    #####: 3939:   inst->resize_sources(3);
    #####:    #####: 3940:   inst->base_mrf = message.nr;
    #####:    #####: 3941:   inst->mlen = msg_end.nr - message.nr;
    #####:    #####: 3942:   inst->header_size = header_size;
        -:        -: 3943:
        -:        -: 3944:   /* Message length > MAX_SAMPLER_MESSAGE_SIZE disallowed by hardware. */
    #####:    #####: 3945:   assert(inst->mlen <= MAX_SAMPLER_MESSAGE_SIZE);
    #####:    #####: 3946:}
        -:        -: 3947:
        -:        -: 3948:static bool
    #####:    #####: 3949:is_high_sampler(const struct gen_device_info *devinfo, const fs_reg &sampler)
        -:        -: 3950:{
    #####:    #####: 3951:   if (devinfo->gen < 8 && !devinfo->is_haswell)
    #####:    #####: 3952:      return false;
        -:        -: 3953:
    #####:    #####: 3954:   return sampler.file != IMM || sampler.ud >= 16;
        -:        -: 3955:}
        -:        -: 3956:
        -:        -: 3957:static void
    #####:    #####: 3958:lower_sampler_logical_send_gen7(const fs_builder &bld, fs_inst *inst, opcode op,
        -:        -: 3959:                                const fs_reg &coordinate,
        -:        -: 3960:                                const fs_reg &shadow_c,
        -:        -: 3961:                                fs_reg lod, const fs_reg &lod2,
        -:        -: 3962:                                const fs_reg &sample_index,
        -:        -: 3963:                                const fs_reg &mcs,
        -:        -: 3964:                                const fs_reg &surface,
        -:        -: 3965:                                const fs_reg &sampler,
        -:        -: 3966:                                const fs_reg &tg4_offset,
        -:        -: 3967:                                unsigned coord_components,
        -:        -: 3968:                                unsigned grad_components)
        -:        -: 3969:{
    #####:    #####: 3970:   const gen_device_info *devinfo = bld.shader->devinfo;
    #####:    #####: 3971:   unsigned reg_width = bld.dispatch_width() / 8;
    #####:    #####: 3972:   unsigned header_size = 0, length = 0;
    #####:    #####: 3973:   fs_reg sources[MAX_SAMPLER_MESSAGE_SIZE];
    #####:    #####: 3974:   for (unsigned i = 0; i < ARRAY_SIZE(sources); i++)
    #####:    #####: 3975:      sources[i] = bld.vgrf(BRW_REGISTER_TYPE_F);
        -:        -: 3976:
    #####:    #####: 3977:   if (op == SHADER_OPCODE_TG4 || op == SHADER_OPCODE_TG4_OFFSET ||
    #####:    #####: 3978:       inst->offset != 0 || inst->eot ||
    #####:    #####: 3979:       op == SHADER_OPCODE_SAMPLEINFO ||
    #####:    #####: 3980:       is_high_sampler(devinfo, sampler)) {
        -:        -: 3981:      /* For general texture offsets (no txf workaround), we need a header to
        -:        -: 3982:       * put them in.  Note that we're only reserving space for it in the
        -:        -: 3983:       * message payload as it will be initialized implicitly by the
        -:        -: 3984:       * generator.
        -:        -: 3985:       *
        -:        -: 3986:       * TG4 needs to place its channel select in the header, for interaction
        -:        -: 3987:       * with ARB_texture_swizzle.  The sampler index is only 4-bits, so for
        -:        -: 3988:       * larger sampler numbers we need to offset the Sampler State Pointer in
        -:        -: 3989:       * the header.
        -:        -: 3990:       */
    #####:    #####: 3991:      header_size = 1;
    #####:    #####: 3992:      sources[0] = fs_reg();
    #####:    #####: 3993:      length++;
        -:        -: 3994:
        -:        -: 3995:      /* If we're requesting fewer than four channels worth of response,
        -:        -: 3996:       * and we have an explicit header, we need to set up the sampler
        -:        -: 3997:       * writemask.  It's reversed from normal: 1 means "don't write".
        -:        -: 3998:       */
    #####:    #####: 3999:      if (!inst->eot && regs_written(inst) != 4 * reg_width) {
    #####:    #####: 4000:         assert(regs_written(inst) % reg_width == 0);
    #####:    #####: 4001:         unsigned mask = ~((1 << (regs_written(inst) / reg_width)) - 1) & 0xf;
    #####:    #####: 4002:         inst->offset |= mask << 12;
        -:        -: 4003:      }
        -:        -: 4004:   }
        -:        -: 4005:
    #####:    #####: 4006:   if (shadow_c.file != BAD_FILE) {
    #####:    #####: 4007:      bld.MOV(sources[length], shadow_c);
    #####:    #####: 4008:      length++;
        -:        -: 4009:   }
        -:        -: 4010:
    #####:    #####: 4011:   bool coordinate_done = false;
        -:        -: 4012:
        -:        -: 4013:   /* Set up the LOD info */
    #####:    #####: 4014:   switch (op) {
        -:        -: 4015:   case FS_OPCODE_TXB:
        -:        -: 4016:   case SHADER_OPCODE_TXL:
    #####:    #####: 4017:      if (devinfo->gen >= 9 && op == SHADER_OPCODE_TXL && lod.is_zero()) {
    #####:    #####: 4018:         op = SHADER_OPCODE_TXL_LZ;
    #####:    #####: 4019:         break;
        -:        -: 4020:      }
    #####:    #####: 4021:      bld.MOV(sources[length], lod);
    #####:    #####: 4022:      length++;
    #####:    #####: 4023:      break;
        -:        -: 4024:   case SHADER_OPCODE_TXD:
        -:        -: 4025:      /* TXD should have been lowered in SIMD16 mode. */
    #####:    #####: 4026:      assert(bld.dispatch_width() == 8);
        -:        -: 4027:
        -:        -: 4028:      /* Load dPdx and the coordinate together:
        -:        -: 4029:       * [hdr], [ref], x, dPdx.x, dPdy.x, y, dPdx.y, dPdy.y, z, dPdx.z, dPdy.z
        -:        -: 4030:       */
    #####:    #####: 4031:      for (unsigned i = 0; i < coord_components; i++) {
    #####:    #####: 4032:         bld.MOV(sources[length++], offset(coordinate, bld, i));
        -:        -: 4033:
        -:        -: 4034:         /* For cube map array, the coordinate is (u,v,r,ai) but there are
        -:        -: 4035:          * only derivatives for (u, v, r).
        -:        -: 4036:          */
    #####:    #####: 4037:         if (i < grad_components) {
    #####:    #####: 4038:            bld.MOV(sources[length++], offset(lod, bld, i));
    #####:    #####: 4039:            bld.MOV(sources[length++], offset(lod2, bld, i));
        -:        -: 4040:         }
        -:        -: 4041:      }
        -:        -: 4042:
    #####:    #####: 4043:      coordinate_done = true;
    #####:    #####: 4044:      break;
        -:        -: 4045:   case SHADER_OPCODE_TXS:
    #####:    #####: 4046:      bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD), lod);
    #####:    #####: 4047:      length++;
    #####:    #####: 4048:      break;
        -:        -: 4049:   case SHADER_OPCODE_TXF:
        -:        -: 4050:      /* Unfortunately, the parameters for LD are intermixed: u, lod, v, r.
        -:        -: 4051:       * On Gen9 they are u, v, lod, r
        -:        -: 4052:       */
    #####:    #####: 4053:      bld.MOV(retype(sources[length++], BRW_REGISTER_TYPE_D), coordinate);
        -:        -: 4054:
    #####:    #####: 4055:      if (devinfo->gen >= 9) {
    #####:    #####: 4056:         if (coord_components >= 2) {
    #####:    #####: 4057:            bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_D),
    #####:    #####: 4058:                    offset(coordinate, bld, 1));
        -:        -: 4059:         } else {
    #####:    #####: 4060:            sources[length] = brw_imm_d(0);
        -:        -: 4061:         }
    #####:    #####: 4062:         length++;
        -:        -: 4063:      }
        -:        -: 4064:
    #####:    #####: 4065:      if (devinfo->gen >= 9 && lod.is_zero()) {
    #####:    #####: 4066:         op = SHADER_OPCODE_TXF_LZ;
        -:        -: 4067:      } else {
    #####:    #####: 4068:         bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_D), lod);
    #####:    #####: 4069:         length++;
        -:        -: 4070:      }
        -:        -: 4071:
    #####:    #####: 4072:      for (unsigned i = devinfo->gen >= 9 ? 2 : 1; i < coord_components; i++)
    #####:    #####: 4073:         bld.MOV(retype(sources[length++], BRW_REGISTER_TYPE_D),
    #####:    #####: 4074:                 offset(coordinate, bld, i));
        -:        -: 4075:
    #####:    #####: 4076:      coordinate_done = true;
    #####:    #####: 4077:      break;
        -:        -: 4078:
        -:        -: 4079:   case SHADER_OPCODE_TXF_CMS:
        -:        -: 4080:   case SHADER_OPCODE_TXF_CMS_W:
        -:        -: 4081:   case SHADER_OPCODE_TXF_UMS:
        -:        -: 4082:   case SHADER_OPCODE_TXF_MCS:
    #####:    #####: 4083:      if (op == SHADER_OPCODE_TXF_UMS ||
    #####:    #####: 4084:          op == SHADER_OPCODE_TXF_CMS ||
        -:        -: 4085:          op == SHADER_OPCODE_TXF_CMS_W) {
    #####:    #####: 4086:         bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD), sample_index);
    #####:    #####: 4087:         length++;
        -:        -: 4088:      }
        -:        -: 4089:
    #####:    #####: 4090:      if (op == SHADER_OPCODE_TXF_CMS || op == SHADER_OPCODE_TXF_CMS_W) {
        -:        -: 4091:         /* Data from the multisample control surface. */
    #####:    #####: 4092:         bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD), mcs);
    #####:    #####: 4093:         length++;
        -:        -: 4094:
        -:        -: 4095:         /* On Gen9+ we'll use ld2dms_w instead which has two registers for
        -:        -: 4096:          * the MCS data.
        -:        -: 4097:          */
    #####:    #####: 4098:         if (op == SHADER_OPCODE_TXF_CMS_W) {
    #####:    #####: 4099:            bld.MOV(retype(sources[length], BRW_REGISTER_TYPE_UD),
    #####:    #####: 4100:                    mcs.file == IMM ?
        -:        -: 4101:                    mcs :
    #####:    #####: 4102:                    offset(mcs, bld, 1));
    #####:    #####: 4103:            length++;
        -:        -: 4104:         }
        -:        -: 4105:      }
        -:        -: 4106:
        -:        -: 4107:      /* There is no offsetting for this message; just copy in the integer
        -:        -: 4108:       * texture coordinates.
        -:        -: 4109:       */
    #####:    #####: 4110:      for (unsigned i = 0; i < coord_components; i++)
    #####:    #####: 4111:         bld.MOV(retype(sources[length++], BRW_REGISTER_TYPE_D),
    #####:    #####: 4112:                 offset(coordinate, bld, i));
        -:        -: 4113:
    #####:    #####: 4114:      coordinate_done = true;
    #####:    #####: 4115:      break;
        -:        -: 4116:   case SHADER_OPCODE_TG4_OFFSET:
        -:        -: 4117:      /* More crazy intermixing */
    #####:    #####: 4118:      for (unsigned i = 0; i < 2; i++) /* u, v */
    #####:    #####: 4119:         bld.MOV(sources[length++], offset(coordinate, bld, i));
        -:        -: 4120:
    #####:    #####: 4121:      for (unsigned i = 0; i < 2; i++) /* offu, offv */
    #####:    #####: 4122:         bld.MOV(retype(sources[length++], BRW_REGISTER_TYPE_D),
    #####:    #####: 4123:                 offset(tg4_offset, bld, i));
        -:        -: 4124:
    #####:    #####: 4125:      if (coord_components == 3) /* r if present */
    #####:    #####: 4126:         bld.MOV(sources[length++], offset(coordinate, bld, 2));
        -:        -: 4127:
    #####:    #####: 4128:      coordinate_done = true;
    #####:    #####: 4129:      break;
        -:        -: 4130:   default:
    #####:    #####: 4131:      break;
        -:        -: 4132:   }
        -:        -: 4133:
        -:        -: 4134:   /* Set up the coordinate (except for cases where it was done above) */
    #####:    #####: 4135:   if (!coordinate_done) {
    #####:    #####: 4136:      for (unsigned i = 0; i < coord_components; i++)
    #####:    #####: 4137:         bld.MOV(sources[length++], offset(coordinate, bld, i));
        -:        -: 4138:   }
        -:        -: 4139:
        -:        -: 4140:   int mlen;
    #####:    #####: 4141:   if (reg_width == 2)
    #####:    #####: 4142:      mlen = length * reg_width - header_size;
        -:        -: 4143:   else
    #####:    #####: 4144:      mlen = length * reg_width;
        -:        -: 4145:
    #####:    #####: 4146:   const fs_reg src_payload = fs_reg(VGRF, bld.shader->alloc.allocate(mlen),
    #####:    #####: 4147:                                     BRW_REGISTER_TYPE_F);
    #####:    #####: 4148:   bld.LOAD_PAYLOAD(src_payload, sources, length, header_size);
        -:        -: 4149:
        -:        -: 4150:   /* Generate the SEND. */
    #####:    #####: 4151:   inst->opcode = op;
    #####:    #####: 4152:   inst->src[0] = src_payload;
    #####:    #####: 4153:   inst->src[1] = surface;
    #####:    #####: 4154:   inst->src[2] = sampler;
    #####:    #####: 4155:   inst->resize_sources(3);
    #####:    #####: 4156:   inst->mlen = mlen;
    #####:    #####: 4157:   inst->header_size = header_size;
        -:        -: 4158:
        -:        -: 4159:   /* Message length > MAX_SAMPLER_MESSAGE_SIZE disallowed by hardware. */
    #####:    #####: 4160:   assert(inst->mlen <= MAX_SAMPLER_MESSAGE_SIZE);
    #####:    #####: 4161:}
        -:        -: 4162:
        -:        -: 4163:static void
    #####:    #####: 4164:lower_sampler_logical_send(const fs_builder &bld, fs_inst *inst, opcode op)
        -:        -: 4165:{
    #####:    #####: 4166:   const gen_device_info *devinfo = bld.shader->devinfo;
    #####:    #####: 4167:   const fs_reg &coordinate = inst->src[TEX_LOGICAL_SRC_COORDINATE];
    #####:    #####: 4168:   const fs_reg &shadow_c = inst->src[TEX_LOGICAL_SRC_SHADOW_C];
    #####:    #####: 4169:   const fs_reg &lod = inst->src[TEX_LOGICAL_SRC_LOD];
    #####:    #####: 4170:   const fs_reg &lod2 = inst->src[TEX_LOGICAL_SRC_LOD2];
    #####:    #####: 4171:   const fs_reg &sample_index = inst->src[TEX_LOGICAL_SRC_SAMPLE_INDEX];
    #####:    #####: 4172:   const fs_reg &mcs = inst->src[TEX_LOGICAL_SRC_MCS];
    #####:    #####: 4173:   const fs_reg &surface = inst->src[TEX_LOGICAL_SRC_SURFACE];
    #####:    #####: 4174:   const fs_reg &sampler = inst->src[TEX_LOGICAL_SRC_SAMPLER];
    #####:    #####: 4175:   const fs_reg &tg4_offset = inst->src[TEX_LOGICAL_SRC_TG4_OFFSET];
    #####:    #####: 4176:   assert(inst->src[TEX_LOGICAL_SRC_COORD_COMPONENTS].file == IMM);
    #####:    #####: 4177:   const unsigned coord_components = inst->src[TEX_LOGICAL_SRC_COORD_COMPONENTS].ud;
    #####:    #####: 4178:   assert(inst->src[TEX_LOGICAL_SRC_GRAD_COMPONENTS].file == IMM);
    #####:    #####: 4179:   const unsigned grad_components = inst->src[TEX_LOGICAL_SRC_GRAD_COMPONENTS].ud;
        -:        -: 4180:
    #####:    #####: 4181:   if (devinfo->gen >= 7) {
        -:        -: 4182:      lower_sampler_logical_send_gen7(bld, inst, op, coordinate,
        -:        -: 4183:                                      shadow_c, lod, lod2, sample_index,
        -:        -: 4184:                                      mcs, surface, sampler, tg4_offset,
    #####:    #####: 4185:                                      coord_components, grad_components);
    #####:    #####: 4186:   } else if (devinfo->gen >= 5) {
        -:        -: 4187:      lower_sampler_logical_send_gen5(bld, inst, op, coordinate,
        -:        -: 4188:                                      shadow_c, lod, lod2, sample_index,
        -:        -: 4189:                                      surface, sampler,
    #####:    #####: 4190:                                      coord_components, grad_components);
        -:        -: 4191:   } else {
        -:        -: 4192:      lower_sampler_logical_send_gen4(bld, inst, op, coordinate,
        -:        -: 4193:                                      shadow_c, lod, lod2,
        -:        -: 4194:                                      surface, sampler,
    #####:    #####: 4195:                                      coord_components, grad_components);
        -:        -: 4196:   }
    #####:    #####: 4197:}
        -:        -: 4198:
        -:        -: 4199:/**
        -:        -: 4200: * Initialize the header present in some typed and untyped surface
        -:        -: 4201: * messages.
        -:        -: 4202: */
        -:        -: 4203:static fs_reg
    #####:    #####: 4204:emit_surface_header(const fs_builder &bld, const fs_reg &sample_mask)
        -:        -: 4205:{
    #####:    #####: 4206:   fs_builder ubld = bld.exec_all().group(8, 0);
    #####:    #####: 4207:   const fs_reg dst = ubld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 4208:   ubld.MOV(dst, brw_imm_d(0));
    #####:    #####: 4209:   ubld.MOV(component(dst, 7), sample_mask);
    #####:    #####: 4210:   return dst;
        -:        -: 4211:}
        -:        -: 4212:
        -:        -: 4213:static void
    #####:    #####: 4214:lower_surface_logical_send(const fs_builder &bld, fs_inst *inst, opcode op,
        -:        -: 4215:                           const fs_reg &sample_mask)
        -:        -: 4216:{
        -:        -: 4217:   /* Get the logical send arguments. */
    #####:    #####: 4218:   const fs_reg &addr = inst->src[0];
    #####:    #####: 4219:   const fs_reg &src = inst->src[1];
    #####:    #####: 4220:   const fs_reg &surface = inst->src[2];
    #####:    #####: 4221:   const UNUSED fs_reg &dims = inst->src[3];
    #####:    #####: 4222:   const fs_reg &arg = inst->src[4];
        -:        -: 4223:
        -:        -: 4224:   /* Calculate the total number of components of the payload. */
    #####:    #####: 4225:   const unsigned addr_sz = inst->components_read(0);
    #####:    #####: 4226:   const unsigned src_sz = inst->components_read(1);
    #####:    #####: 4227:   const unsigned header_sz = (sample_mask.file == BAD_FILE ? 0 : 1);
    #####:    #####: 4228:   const unsigned sz = header_sz + addr_sz + src_sz;
        -:        -: 4229:
        -:        -: 4230:   /* Allocate space for the payload. */
    #####:    #####: 4231:   fs_reg *const components = new fs_reg[sz];
    #####:    #####: 4232:   const fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, sz);
    #####:    #####: 4233:   unsigned n = 0;
        -:        -: 4234:
        -:        -: 4235:   /* Construct the payload. */
    #####:    #####: 4236:   if (header_sz)
    #####:    #####: 4237:      components[n++] = emit_surface_header(bld, sample_mask);
        -:        -: 4238:
    #####:    #####: 4239:   for (unsigned i = 0; i < addr_sz; i++)
    #####:    #####: 4240:      components[n++] = offset(addr, bld, i);
        -:        -: 4241:
    #####:    #####: 4242:   for (unsigned i = 0; i < src_sz; i++)
    #####:    #####: 4243:      components[n++] = offset(src, bld, i);
        -:        -: 4244:
    #####:    #####: 4245:   bld.LOAD_PAYLOAD(payload, components, sz, header_sz);
        -:        -: 4246:
        -:        -: 4247:   /* Update the original instruction. */
    #####:    #####: 4248:   inst->opcode = op;
    #####:    #####: 4249:   inst->mlen = header_sz + (addr_sz + src_sz) * inst->exec_size / 8;
    #####:    #####: 4250:   inst->header_size = header_sz;
        -:        -: 4251:
    #####:    #####: 4252:   inst->src[0] = payload;
    #####:    #####: 4253:   inst->src[1] = surface;
    #####:    #####: 4254:   inst->src[2] = arg;
    #####:    #####: 4255:   inst->resize_sources(3);
        -:        -: 4256:
    #####:    #####: 4257:   delete[] components;
    #####:    #####: 4258:}
        -:        -: 4259:
        -:        -: 4260:static void
    #####:    #####: 4261:lower_varying_pull_constant_logical_send(const fs_builder &bld, fs_inst *inst)
        -:        -: 4262:{
    #####:    #####: 4263:   const gen_device_info *devinfo = bld.shader->devinfo;
        -:        -: 4264:
    #####:    #####: 4265:   if (devinfo->gen >= 7) {
        -:        -: 4266:      /* We are switching the instruction from an ALU-like instruction to a
        -:        -: 4267:       * send-from-grf instruction.  Since sends can't handle strides or
        -:        -: 4268:       * source modifiers, we have to make a copy of the offset source.
        -:        -: 4269:       */
    #####:    #####: 4270:      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 4271:      bld.MOV(tmp, inst->src[1]);
    #####:    #####: 4272:      inst->src[1] = tmp;
        -:        -: 4273:
    #####:    #####: 4274:      inst->opcode = FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7;
        -:        -: 4275:
        -:        -: 4276:   } else {
    #####:    #####: 4277:      const fs_reg payload(MRF, FIRST_PULL_LOAD_MRF(devinfo->gen),
    #####:    #####: 4278:                           BRW_REGISTER_TYPE_UD);
        -:        -: 4279:
    #####:    #####: 4280:      bld.MOV(byte_offset(payload, REG_SIZE), inst->src[1]);
        -:        -: 4281:
    #####:    #####: 4282:      inst->opcode = FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN4;
    #####:    #####: 4283:      inst->resize_sources(1);
    #####:    #####: 4284:      inst->base_mrf = payload.nr;
    #####:    #####: 4285:      inst->header_size = 1;
    #####:    #####: 4286:      inst->mlen = 1 + inst->exec_size / 8;
        -:        -: 4287:   }
    #####:    #####: 4288:}
        -:        -: 4289:
        -:        -: 4290:static void
    #####:    #####: 4291:lower_math_logical_send(const fs_builder &bld, fs_inst *inst)
        -:        -: 4292:{
    #####:    #####: 4293:   assert(bld.shader->devinfo->gen < 6);
        -:        -: 4294:
    #####:    #####: 4295:   inst->base_mrf = 2;
    #####:    #####: 4296:   inst->mlen = inst->sources * inst->exec_size / 8;
        -:        -: 4297:
    #####:    #####: 4298:   if (inst->sources > 1) {
        -:        -: 4299:      /* From the Ironlake PRM, Volume 4, Part 1, Section 6.1.13
        -:        -: 4300:       * "Message Payload":
        -:        -: 4301:       *
        -:        -: 4302:       * "Operand0[7].  For the INT DIV functions, this operand is the
        -:        -: 4303:       *  denominator."
        -:        -: 4304:       *  ...
        -:        -: 4305:       * "Operand1[7].  For the INT DIV functions, this operand is the
        -:        -: 4306:       *  numerator."
        -:        -: 4307:       */
    #####:    #####: 4308:      const bool is_int_div = inst->opcode != SHADER_OPCODE_POW;
    #####:    #####: 4309:      const fs_reg src0 = is_int_div ? inst->src[1] : inst->src[0];
    #####:    #####: 4310:      const fs_reg src1 = is_int_div ? inst->src[0] : inst->src[1];
        -:        -: 4311:
    #####:    #####: 4312:      inst->resize_sources(1);
    #####:    #####: 4313:      inst->src[0] = src0;
        -:        -: 4314:
    #####:    #####: 4315:      assert(inst->exec_size == 8);
    #####:    #####: 4316:      bld.MOV(fs_reg(MRF, inst->base_mrf + 1, src1.type), src1);
        -:        -: 4317:   }
    #####:    #####: 4318:}
        -:        -: 4319:
        -:        -: 4320:bool
        5:        5: 4321:fs_visitor::lower_logical_sends()
        -:        -: 4322:{
        5:        5: 4323:   bool progress = false;
        -:        -: 4324:
      209:      221: 4325:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      204:      216: 4326:      const fs_builder ibld(this, block, inst);
        -:        -: 4327:
      204:      216: 4328:      switch (inst->opcode) {
        -:        -: 4329:      case FS_OPCODE_FB_WRITE_LOGICAL:
        5:        5: 4330:         assert(stage == MESA_SHADER_FRAGMENT);
        5:        5: 4331:         lower_fb_write_logical_send(ibld, inst,
        5:        5: 4332:                                     brw_wm_prog_data(prog_data),
        5:        5: 4333:                                     (const brw_wm_prog_key *)key,
        5:        5: 4334:                                     payload);
        5:        5: 4335:         break;
        -:        -: 4336:
        -:        -: 4337:      case FS_OPCODE_FB_READ_LOGICAL:
    #####:    #####: 4338:         lower_fb_read_logical_send(ibld, inst);
    #####:    #####: 4339:         break;
        -:        -: 4340:
        -:        -: 4341:      case SHADER_OPCODE_TEX_LOGICAL:
    #####:    #####: 4342:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TEX);
    #####:    #####: 4343:         break;
        -:        -: 4344:
        -:        -: 4345:      case SHADER_OPCODE_TXD_LOGICAL:
    #####:    #####: 4346:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXD);
    #####:    #####: 4347:         break;
        -:        -: 4348:
        -:        -: 4349:      case SHADER_OPCODE_TXF_LOGICAL:
    #####:    #####: 4350:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXF);
    #####:    #####: 4351:         break;
        -:        -: 4352:
        -:        -: 4353:      case SHADER_OPCODE_TXL_LOGICAL:
    #####:    #####: 4354:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXL);
    #####:    #####: 4355:         break;
        -:        -: 4356:
        -:        -: 4357:      case SHADER_OPCODE_TXS_LOGICAL:
    #####:    #####: 4358:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXS);
    #####:    #####: 4359:         break;
        -:        -: 4360:
        -:        -: 4361:      case FS_OPCODE_TXB_LOGICAL:
    #####:    #####: 4362:         lower_sampler_logical_send(ibld, inst, FS_OPCODE_TXB);
    #####:    #####: 4363:         break;
        -:        -: 4364:
        -:        -: 4365:      case SHADER_OPCODE_TXF_CMS_LOGICAL:
    #####:    #####: 4366:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXF_CMS);
    #####:    #####: 4367:         break;
        -:        -: 4368:
        -:        -: 4369:      case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
    #####:    #####: 4370:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXF_CMS_W);
    #####:    #####: 4371:         break;
        -:        -: 4372:
        -:        -: 4373:      case SHADER_OPCODE_TXF_UMS_LOGICAL:
    #####:    #####: 4374:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXF_UMS);
    #####:    #####: 4375:         break;
        -:        -: 4376:
        -:        -: 4377:      case SHADER_OPCODE_TXF_MCS_LOGICAL:
    #####:    #####: 4378:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TXF_MCS);
    #####:    #####: 4379:         break;
        -:        -: 4380:
        -:        -: 4381:      case SHADER_OPCODE_LOD_LOGICAL:
    #####:    #####: 4382:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_LOD);
    #####:    #####: 4383:         break;
        -:        -: 4384:
        -:        -: 4385:      case SHADER_OPCODE_TG4_LOGICAL:
    #####:    #####: 4386:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TG4);
    #####:    #####: 4387:         break;
        -:        -: 4388:
        -:        -: 4389:      case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
    #####:    #####: 4390:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_TG4_OFFSET);
    #####:    #####: 4391:         break;
        -:        -: 4392:
        -:        -: 4393:      case SHADER_OPCODE_SAMPLEINFO_LOGICAL:
    #####:    #####: 4394:         lower_sampler_logical_send(ibld, inst, SHADER_OPCODE_SAMPLEINFO);
    #####:    #####: 4395:         break;
        -:        -: 4396:
        -:        -: 4397:      case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
    #####:    #####: 4398:         lower_surface_logical_send(ibld, inst,
        -:        -: 4399:                                    SHADER_OPCODE_UNTYPED_SURFACE_READ,
    #####:    #####: 4400:                                    fs_reg());
    #####:    #####: 4401:         break;
        -:        -: 4402:
        -:        -: 4403:      case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
        -:        -: 4404:         lower_surface_logical_send(ibld, inst,
        -:        -: 4405:                                    SHADER_OPCODE_UNTYPED_SURFACE_WRITE,
    #####:    #####: 4406:                                    ibld.sample_mask_reg());
    #####:    #####: 4407:         break;
        -:        -: 4408:
        -:        -: 4409:      case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -: 4410:         lower_surface_logical_send(ibld, inst,
        -:        -: 4411:                                    SHADER_OPCODE_UNTYPED_ATOMIC,
    #####:    #####: 4412:                                    ibld.sample_mask_reg());
    #####:    #####: 4413:         break;
        -:        -: 4414:
        -:        -: 4415:      case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
    #####:    #####: 4416:         lower_surface_logical_send(ibld, inst,
        -:        -: 4417:                                    SHADER_OPCODE_TYPED_SURFACE_READ,
    #####:    #####: 4418:                                    brw_imm_d(0xffff));
    #####:    #####: 4419:         break;
        -:        -: 4420:
        -:        -: 4421:      case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
        -:        -: 4422:         lower_surface_logical_send(ibld, inst,
        -:        -: 4423:                                    SHADER_OPCODE_TYPED_SURFACE_WRITE,
    #####:    #####: 4424:                                    ibld.sample_mask_reg());
    #####:    #####: 4425:         break;
        -:        -: 4426:
        -:        -: 4427:      case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
        -:        -: 4428:         lower_surface_logical_send(ibld, inst,
        -:        -: 4429:                                    SHADER_OPCODE_TYPED_ATOMIC,
    #####:    #####: 4430:                                    ibld.sample_mask_reg());
    #####:    #####: 4431:         break;
        -:        -: 4432:
        -:        -: 4433:      case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL:
    #####:    #####: 4434:         lower_varying_pull_constant_logical_send(ibld, inst);
    #####:    #####: 4435:         break;
        -:        -: 4436:
        -:        -: 4437:      case SHADER_OPCODE_RCP:
        -:        -: 4438:      case SHADER_OPCODE_RSQ:
        -:        -: 4439:      case SHADER_OPCODE_SQRT:
        -:        -: 4440:      case SHADER_OPCODE_EXP2:
        -:        -: 4441:      case SHADER_OPCODE_LOG2:
        -:        -: 4442:      case SHADER_OPCODE_SIN:
        -:        -: 4443:      case SHADER_OPCODE_COS:
        -:        -: 4444:      case SHADER_OPCODE_POW:
        -:        -: 4445:      case SHADER_OPCODE_INT_QUOTIENT:
        -:        -: 4446:      case SHADER_OPCODE_INT_REMAINDER:
        -:        -: 4447:         /* The math opcodes are overloaded for the send-like and
        -:        -: 4448:          * expression-like instructions which seems kind of icky.  Gen6+ has
        -:        -: 4449:          * a native (but rather quirky) MATH instruction so we don't need to
        -:        -: 4450:          * do anything here.  On Gen4-5 we'll have to lower the Gen6-like
        -:        -: 4451:          * logical instructions (which we can easily recognize because they
        -:        -: 4452:          * have mlen = 0) into send-like virtual instructions.
        -:        -: 4453:          */
       12:       12: 4454:         if (devinfo->gen < 6 && inst->mlen == 0) {
    #####:    #####: 4455:            lower_math_logical_send(ibld, inst);
    #####:    #####: 4456:            break;
        -:        -: 4457:
        -:        -: 4458:         } else {
      211:      223: 4459:            continue;
        -:        -: 4460:         }
        -:        -: 4461:
        -:        -: 4462:      default:
      187:      199: 4463:         continue;
        -:        -: 4464:      }
        -:        -: 4465:
        5:        5: 4466:      progress = true;
        -:        -: 4467:   }
        -:        -: 4468:
        5:        5: 4469:   if (progress)
        5:        5: 4470:      invalidate_live_intervals();
        -:        -: 4471:
        5:        5: 4472:   return progress;
        -:        -: 4473:}
        -:        -: 4474:
        -:        -: 4475:/**
        -:        -: 4476: * Get the closest allowed SIMD width for instruction \p inst accounting for
        -:        -: 4477: * some common regioning and execution control restrictions that apply to FPU
        -:        -: 4478: * instructions.  These restrictions don't necessarily have any relevance to
        -:        -: 4479: * instructions not executed by the FPU pipeline like extended math, control
        -:        -: 4480: * flow or send message instructions.
        -:        -: 4481: *
        -:        -: 4482: * For virtual opcodes it's really up to the instruction -- In some cases
        -:        -: 4483: * (e.g. where a virtual instruction unrolls into a simple sequence of FPU
        -:        -: 4484: * instructions) it may simplify virtual instruction lowering if we can
        -:        -: 4485: * enforce FPU-like regioning restrictions already on the virtual instruction,
        -:        -: 4486: * in other cases (e.g. virtual send-like instructions) this may be
        -:        -: 4487: * excessively restrictive.
        -:        -: 4488: */
        -:        -: 4489:static unsigned
      137:      149: 4490:get_fpu_lowered_simd_width(const struct gen_device_info *devinfo,
        -:        -: 4491:                           const fs_inst *inst)
        -:        -: 4492:{
        -:        -: 4493:   /* Maximum execution size representable in the instruction controls. */
      137:      149: 4494:   unsigned max_width = MIN2(32, inst->exec_size);
        -:        -: 4495:
        -:        -: 4496:   /* According to the PRMs:
        -:        -: 4497:    *  "A. In Direct Addressing mode, a source cannot span more than 2
        -:        -: 4498:    *      adjacent GRF registers.
        -:        -: 4499:    *   B. A destination cannot span more than 2 adjacent GRF registers."
        -:        -: 4500:    *
        -:        -: 4501:    * Look for the source or destination with the largest register region
        -:        -: 4502:    * which is the one that is going to limit the overall execution size of
        -:        -: 4503:    * the instruction due to this rule.
        -:        -: 4504:    */
      137:      149: 4505:   unsigned reg_count = DIV_ROUND_UP(inst->size_written, REG_SIZE);
        -:        -: 4506:
      381:      413: 4507:   for (unsigned i = 0; i < inst->sources; i++)
      244:      264: 4508:      reg_count = MAX2(reg_count, DIV_ROUND_UP(inst->size_read(i), REG_SIZE));
        -:        -: 4509:
        -:        -: 4510:   /* Calculate the maximum execution size of the instruction based on the
        -:        -: 4511:    * factor by which it goes over the hardware limit of 2 GRFs.
        -:        -: 4512:    */
      137:      149: 4513:   if (reg_count > 2)
    #####:    #####: 4514:      max_width = MIN2(max_width, inst->exec_size / DIV_ROUND_UP(reg_count, 2));
        -:        -: 4515:
        -:        -: 4516:   /* According to the IVB PRMs:
        -:        -: 4517:    *  "When destination spans two registers, the source MUST span two
        -:        -: 4518:    *   registers. The exception to the above rule:
        -:        -: 4519:    *
        -:        -: 4520:    *    - When source is scalar, the source registers are not incremented.
        -:        -: 4521:    *    - When source is packed integer Word and destination is packed
        -:        -: 4522:    *      integer DWord, the source register is not incremented but the
        -:        -: 4523:    *      source sub register is incremented."
        -:        -: 4524:    *
        -:        -: 4525:    * The hardware specs from Gen4 to Gen7.5 mention similar regioning
        -:        -: 4526:    * restrictions.  The code below intentionally doesn't check whether the
        -:        -: 4527:    * destination type is integer because empirically the hardware doesn't
        -:        -: 4528:    * seem to care what the actual type is as long as it's dword-aligned.
        -:        -: 4529:    */
      137:      149: 4530:   if (devinfo->gen < 8) {
      381:      413: 4531:      for (unsigned i = 0; i < inst->sources; i++) {
        -:        -: 4532:         /* IVB implements DF scalars as <0;2,1> regions. */
      404:      448: 4533:         const bool is_scalar_exception = is_uniform(inst->src[i]) &&
      404:      448: 4534:            (devinfo->is_haswell || type_sz(inst->src[i].type) != 8);
        -:        -: 4535:         const bool is_packed_word_exception =
      720:      780: 4536:            type_sz(inst->dst.type) == 4 && inst->dst.stride == 1 &&
      484:      524: 4537:            type_sz(inst->src[i].type) == 2 && inst->src[i].stride == 1;
        -:        -: 4538:
      608:      658: 4539:         if (inst->size_written > REG_SIZE &&
      282:      308: 4540:             inst->size_read(i) != 0 && inst->size_read(i) <= REG_SIZE &&
      288:      314: 4541:             !is_scalar_exception && !is_packed_word_exception) {
    #####:    #####: 4542:            const unsigned reg_count = DIV_ROUND_UP(inst->size_written, REG_SIZE);
    #####:    #####: 4543:            max_width = MIN2(max_width, inst->exec_size / reg_count);
        -:        -: 4544:         }
        -:        -: 4545:      }
        -:        -: 4546:   }
        -:        -: 4547:
        -:        -: 4548:   /* From the IVB PRMs:
        -:        -: 4549:    *  "When an instruction is SIMD32, the low 16 bits of the execution mask
        -:        -: 4550:    *   are applied for both halves of the SIMD32 instruction. If different
        -:        -: 4551:    *   execution mask channels are required, split the instruction into two
        -:        -: 4552:    *   SIMD16 instructions."
        -:        -: 4553:    *
        -:        -: 4554:    * There is similar text in the HSW PRMs.  Gen4-6 don't even implement
        -:        -: 4555:    * 32-wide control flow support in hardware and will behave similarly.
        -:        -: 4556:    */
      137:      149: 4557:   if (devinfo->gen < 8 && !inst->force_writemask_all)
      136:      148: 4558:      max_width = MIN2(max_width, 16);
        -:        -: 4559:
        -:        -: 4560:   /* From the IVB PRMs (applies to HSW too):
        -:        -: 4561:    *  "Instructions with condition modifiers must not use SIMD32."
        -:        -: 4562:    *
        -:        -: 4563:    * From the BDW PRMs (applies to later hardware too):
        -:        -: 4564:    *  "Ternary instruction with condition modifiers must not use SIMD32."
        -:        -: 4565:    */
      137:      149: 4566:   if (inst->conditional_mod && (devinfo->gen < 8 || inst->is_3src(devinfo)))
       44:       56: 4567:      max_width = MIN2(max_width, 16);
        -:        -: 4568:
        -:        -: 4569:   /* From the IVB PRMs (applies to other devices that don't have the
        -:        -: 4570:    * gen_device_info::supports_simd16_3src flag set):
        -:        -: 4571:    *  "In Align16 access mode, SIMD16 is not allowed for DW operations and
        -:        -: 4572:    *   SIMD8 is not allowed for DF operations."
        -:        -: 4573:    */
      137:      149: 4574:   if (inst->is_3src(devinfo) && !devinfo->supports_simd16_3src)
       12:       12: 4575:      max_width = MIN2(max_width, inst->exec_size / reg_count);
        -:        -: 4576:
        -:        -: 4577:   /* Pre-Gen8 EUs are hardwired to use the QtrCtrl+1 (where QtrCtrl is
        -:        -: 4578:    * the 8-bit quarter of the execution mask signals specified in the
        -:        -: 4579:    * instruction control fields) for the second compressed half of any
        -:        -: 4580:    * single-precision instruction (for double-precision instructions
        -:        -: 4581:    * it's hardwired to use NibCtrl+1, at least on HSW), which means that
        -:        -: 4582:    * the EU will apply the wrong execution controls for the second
        -:        -: 4583:    * sequential GRF write if the number of channels per GRF is not exactly
        -:        -: 4584:    * eight in single-precision mode (or four in double-float mode).
        -:        -: 4585:    *
        -:        -: 4586:    * In this situation we calculate the maximum size of the split
        -:        -: 4587:    * instructions so they only ever write to a single register.
        -:        -: 4588:    */
      205:      223: 4589:   if (devinfo->gen < 8 && inst->size_written > REG_SIZE &&
       68:       74: 4590:       !inst->force_writemask_all) {
      204:      222: 4591:      const unsigned channels_per_grf = inst->exec_size /
      204:      222: 4592:         DIV_ROUND_UP(inst->size_written, REG_SIZE);
       68:       74: 4593:      const unsigned exec_type_size = get_exec_type_size(inst);
       68:       74: 4594:      assert(exec_type_size);
        -:        -: 4595:
        -:        -: 4596:      /* The hardware shifts exactly 8 channels per compressed half of the
        -:        -: 4597:       * instruction in single-precision mode and exactly 4 in double-precision.
        -:        -: 4598:       */
       68:       74: 4599:      if (channels_per_grf != (exec_type_size == 8 ? 4 : 8))
    #####:    #####: 4600:         max_width = MIN2(max_width, channels_per_grf);
        -:        -: 4601:
        -:        -: 4602:      /* Lower all non-force_writemask_all DF instructions to SIMD4 on IVB/BYT
        -:        -: 4603:       * because HW applies the same channel enable signals to both halves of
        -:        -: 4604:       * the compressed instruction which will be just wrong under
        -:        -: 4605:       * non-uniform control flow.
        -:        -: 4606:       */
       68:       74: 4607:      if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####: 4608:          (exec_type_size == 8 || type_sz(inst->dst.type) == 8))
    #####:    #####: 4609:         max_width = MIN2(max_width, 4);
        -:        -: 4610:   }
        -:        -: 4611:
        -:        -: 4612:   /* Only power-of-two execution sizes are representable in the instruction
        -:        -: 4613:    * control fields.
        -:        -: 4614:    */
      137:      149: 4615:   return 1 << _mesa_logbase2(max_width);
        -:        -: 4616:}
        -:        -: 4617:
        -:        -: 4618:/**
        -:        -: 4619: * Get the maximum allowed SIMD width for instruction \p inst accounting for
        -:        -: 4620: * various payload size restrictions that apply to sampler message
        -:        -: 4621: * instructions.
        -:        -: 4622: *
        -:        -: 4623: * This is only intended to provide a maximum theoretical bound for the
        -:        -: 4624: * execution size of the message based on the number of argument components
        -:        -: 4625: * alone, which in most cases will determine whether the SIMD8 or SIMD16
        -:        -: 4626: * variant of the message can be used, though some messages may have
        -:        -: 4627: * additional restrictions not accounted for here (e.g. pre-ILK hardware uses
        -:        -: 4628: * the message length to determine the exact SIMD width and argument count,
        -:        -: 4629: * which makes a number of sampler message combinations impossible to
        -:        -: 4630: * represent).
        -:        -: 4631: */
        -:        -: 4632:static unsigned
    #####:    #####: 4633:get_sampler_lowered_simd_width(const struct gen_device_info *devinfo,
        -:        -: 4634:                               const fs_inst *inst)
        -:        -: 4635:{
        -:        -: 4636:   /* Calculate the number of coordinate components that have to be present
        -:        -: 4637:    * assuming that additional arguments follow the texel coordinates in the
        -:        -: 4638:    * message payload.  On IVB+ there is no need for padding, on ILK-SNB we
        -:        -: 4639:    * need to pad to four or three components depending on the message,
        -:        -: 4640:    * pre-ILK we need to pad to at most three components.
        -:        -: 4641:    */
        -:        -: 4642:   const unsigned req_coord_components =
    #####:    #####: 4643:      (devinfo->gen >= 7 ||
    #####:    #####: 4644:       !inst->components_read(TEX_LOGICAL_SRC_COORDINATE)) ? 0 :
    #####:    #####: 4645:      (devinfo->gen >= 5 && inst->opcode != SHADER_OPCODE_TXF_LOGICAL &&
    #####:    #####: 4646:                            inst->opcode != SHADER_OPCODE_TXF_CMS_LOGICAL) ? 4 :
    #####:    #####: 4647:      3;
        -:        -: 4648:
        -:        -: 4649:   /* On Gen9+ the LOD argument is for free if we're able to use the LZ
        -:        -: 4650:    * variant of the TXL or TXF message.
        -:        -: 4651:    */
    #####:    #####: 4652:   const bool implicit_lod = devinfo->gen >= 9 &&
    #####:    #####: 4653:                             (inst->opcode == SHADER_OPCODE_TXL ||
    #####:    #####: 4654:                              inst->opcode == SHADER_OPCODE_TXF) &&
    #####:    #####: 4655:                             inst->src[TEX_LOGICAL_SRC_LOD].is_zero();
        -:        -: 4656:
        -:        -: 4657:   /* Calculate the total number of argument components that need to be passed
        -:        -: 4658:    * to the sampler unit.
        -:        -: 4659:    */
        -:        -: 4660:   const unsigned num_payload_components =
    #####:    #####: 4661:      MAX2(inst->components_read(TEX_LOGICAL_SRC_COORDINATE),
    #####:    #####: 4662:           req_coord_components) +
    #####:    #####: 4663:      inst->components_read(TEX_LOGICAL_SRC_SHADOW_C) +
    #####:    #####: 4664:      (implicit_lod ? 0 : inst->components_read(TEX_LOGICAL_SRC_LOD)) +
    #####:    #####: 4665:      inst->components_read(TEX_LOGICAL_SRC_LOD2) +
    #####:    #####: 4666:      inst->components_read(TEX_LOGICAL_SRC_SAMPLE_INDEX) +
    #####:    #####: 4667:      (inst->opcode == SHADER_OPCODE_TG4_OFFSET_LOGICAL ?
        -:        -: 4668:       inst->components_read(TEX_LOGICAL_SRC_TG4_OFFSET) : 0) +
    #####:    #####: 4669:      inst->components_read(TEX_LOGICAL_SRC_MCS);
        -:        -: 4670:
        -:        -: 4671:   /* SIMD16 messages with more than five arguments exceed the maximum message
        -:        -: 4672:    * size supported by the sampler, regardless of whether a header is
        -:        -: 4673:    * provided or not.
        -:        -: 4674:    */
    #####:    #####: 4675:   return MIN2(inst->exec_size,
        -:        -: 4676:               num_payload_components > MAX_SAMPLER_MESSAGE_SIZE / 2 ? 8 : 16);
        -:        -: 4677:}
        -:        -: 4678:
        -:        -: 4679:/**
        -:        -: 4680: * Get the closest native SIMD width supported by the hardware for instruction
        -:        -: 4681: * \p inst.  The instruction will be left untouched by
        -:        -: 4682: * fs_visitor::lower_simd_width() if the returned value is equal to the
        -:        -: 4683: * original execution size.
        -:        -: 4684: */
        -:        -: 4685:static unsigned
      194:      206: 4686:get_lowered_simd_width(const struct gen_device_info *devinfo,
        -:        -: 4687:                       const fs_inst *inst)
        -:        -: 4688:{
      194:      206: 4689:   switch (inst->opcode) {
        -:        -: 4690:   case BRW_OPCODE_MOV:
        -:        -: 4691:   case BRW_OPCODE_SEL:
        -:        -: 4692:   case BRW_OPCODE_NOT:
        -:        -: 4693:   case BRW_OPCODE_AND:
        -:        -: 4694:   case BRW_OPCODE_OR:
        -:        -: 4695:   case BRW_OPCODE_XOR:
        -:        -: 4696:   case BRW_OPCODE_SHR:
        -:        -: 4697:   case BRW_OPCODE_SHL:
        -:        -: 4698:   case BRW_OPCODE_ASR:
        -:        -: 4699:   case BRW_OPCODE_CMPN:
        -:        -: 4700:   case BRW_OPCODE_CSEL:
        -:        -: 4701:   case BRW_OPCODE_F32TO16:
        -:        -: 4702:   case BRW_OPCODE_F16TO32:
        -:        -: 4703:   case BRW_OPCODE_BFREV:
        -:        -: 4704:   case BRW_OPCODE_BFE:
        -:        -: 4705:   case BRW_OPCODE_ADD:
        -:        -: 4706:   case BRW_OPCODE_MUL:
        -:        -: 4707:   case BRW_OPCODE_AVG:
        -:        -: 4708:   case BRW_OPCODE_FRC:
        -:        -: 4709:   case BRW_OPCODE_RNDU:
        -:        -: 4710:   case BRW_OPCODE_RNDD:
        -:        -: 4711:   case BRW_OPCODE_RNDE:
        -:        -: 4712:   case BRW_OPCODE_RNDZ:
        -:        -: 4713:   case BRW_OPCODE_LZD:
        -:        -: 4714:   case BRW_OPCODE_FBH:
        -:        -: 4715:   case BRW_OPCODE_FBL:
        -:        -: 4716:   case BRW_OPCODE_CBIT:
        -:        -: 4717:   case BRW_OPCODE_SAD2:
        -:        -: 4718:   case BRW_OPCODE_MAD:
        -:        -: 4719:   case BRW_OPCODE_LRP:
        -:        -: 4720:   case FS_OPCODE_PACK:
       93:       97: 4721:      return get_fpu_lowered_simd_width(devinfo, inst);
        -:        -: 4722:
        -:        -: 4723:   case BRW_OPCODE_CMP: {
        -:        -: 4724:      /* The Ivybridge/BayTrail WaCMPInstFlagDepClearedEarly workaround says that
        -:        -: 4725:       * when the destination is a GRF the dependency-clear bit on the flag
        -:        -: 4726:       * register is cleared early.
        -:        -: 4727:       *
        -:        -: 4728:       * Suggested workarounds are to disable coissuing CMP instructions
        -:        -: 4729:       * or to split CMP(16) instructions into two CMP(8) instructions.
        -:        -: 4730:       *
        -:        -: 4731:       * We choose to split into CMP(8) instructions since disabling
        -:        -: 4732:       * coissuing would affect CMP instructions not otherwise affected by
        -:        -: 4733:       * the errata.
        -:        -: 4734:       */
       22:       26: 4735:      const unsigned max_width = (devinfo->gen == 7 && !devinfo->is_haswell &&
       22:       26: 4736:                                  !inst->dst.is_null() ? 8 : ~0);
       22:       26: 4737:      return MIN2(max_width, get_fpu_lowered_simd_width(devinfo, inst));
        -:        -: 4738:   }
        -:        -: 4739:   case BRW_OPCODE_BFI1:
        -:        -: 4740:   case BRW_OPCODE_BFI2:
        -:        -: 4741:      /* The Haswell WaForceSIMD8ForBFIInstruction workaround says that we
        -:        -: 4742:       * should
        -:        -: 4743:       *  "Force BFI instructions to be executed always in SIMD8."
        -:        -: 4744:       */
    #####:    #####: 4745:      return MIN2(devinfo->is_haswell ? 8 : ~0u,
        -:        -: 4746:                  get_fpu_lowered_simd_width(devinfo, inst));
        -:        -: 4747:
        -:        -: 4748:   case BRW_OPCODE_IF:
       18:       14: 4749:      assert(inst->src[0].file == BAD_FILE || inst->exec_size <= 16);
       18:       14: 4750:      return inst->exec_size;
        -:        -: 4751:
        -:        -: 4752:   case SHADER_OPCODE_RCP:
        -:        -: 4753:   case SHADER_OPCODE_RSQ:
        -:        -: 4754:   case SHADER_OPCODE_SQRT:
        -:        -: 4755:   case SHADER_OPCODE_EXP2:
        -:        -: 4756:   case SHADER_OPCODE_LOG2:
        -:        -: 4757:   case SHADER_OPCODE_SIN:
        -:        -: 4758:   case SHADER_OPCODE_COS:
        -:        -: 4759:      /* Unary extended math instructions are limited to SIMD8 on Gen4 and
        -:        -: 4760:       * Gen6.
        -:        -: 4761:       */
        8:        8: 4762:      return (devinfo->gen >= 7 ? MIN2(16, inst->exec_size) :
       16:       16: 4763:              devinfo->gen == 5 || devinfo->is_g4x ? MIN2(16, inst->exec_size) :
       16:       16: 4764:              MIN2(8, inst->exec_size));
        -:        -: 4765:
        -:        -: 4766:   case SHADER_OPCODE_POW:
        -:        -: 4767:      /* SIMD16 is only allowed on Gen7+. */
    #####:    #####: 4768:      return (devinfo->gen >= 7 ? MIN2(16, inst->exec_size) :
    #####:    #####: 4769:              MIN2(8, inst->exec_size));
        -:        -: 4770:
        -:        -: 4771:   case SHADER_OPCODE_INT_QUOTIENT:
        -:        -: 4772:   case SHADER_OPCODE_INT_REMAINDER:
        -:        -: 4773:      /* Integer division is limited to SIMD8 on all generations. */
    #####:    #####: 4774:      return MIN2(8, inst->exec_size);
        -:        -: 4775:
        -:        -: 4776:   case FS_OPCODE_LINTERP:
        -:        -: 4777:   case FS_OPCODE_GET_BUFFER_SIZE:
        -:        -: 4778:   case FS_OPCODE_DDX_COARSE:
        -:        -: 4779:   case FS_OPCODE_DDX_FINE:
        -:        -: 4780:   case FS_OPCODE_DDY_COARSE:
        -:        -: 4781:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
        -:        -: 4782:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
        -:        -: 4783:   case FS_OPCODE_PACK_HALF_2x16_SPLIT:
        -:        -: 4784:   case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_X:
        -:        -: 4785:   case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y:
        -:        -: 4786:   case FS_OPCODE_INTERPOLATE_AT_SAMPLE:
        -:        -: 4787:   case FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET:
        -:        -: 4788:   case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
        8:        8: 4789:      return MIN2(16, inst->exec_size);
        -:        -: 4790:
        -:        -: 4791:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL:
        -:        -: 4792:      /* Pre-ILK hardware doesn't have a SIMD8 variant of the texel fetch
        -:        -: 4793:       * message used to implement varying pull constant loads, so expand it
        -:        -: 4794:       * to SIMD16.  An alternative with longer message payload length but
        -:        -: 4795:       * shorter return payload would be to use the SIMD8 sampler message that
        -:        -: 4796:       * takes (header, u, v, r) as parameters instead of (header, u).
        -:        -: 4797:       */
    #####:    #####: 4798:      return (devinfo->gen == 4 ? 16 : MIN2(16, inst->exec_size));
        -:        -: 4799:
        -:        -: 4800:   case FS_OPCODE_DDY_FINE:
        -:        -: 4801:      /* The implementation of this virtual opcode may require emitting
        -:        -: 4802:       * compressed Align16 instructions, which are severely limited on some
        -:        -: 4803:       * generations.
        -:        -: 4804:       *
        -:        -: 4805:       * From the Ivy Bridge PRM, volume 4 part 3, section 3.3.9 (Register
        -:        -: 4806:       * Region Restrictions):
        -:        -: 4807:       *
        -:        -: 4808:       *  "In Align16 access mode, SIMD16 is not allowed for DW operations
        -:        -: 4809:       *   and SIMD8 is not allowed for DF operations."
        -:        -: 4810:       *
        -:        -: 4811:       * In this context, "DW operations" means "operations acting on 32-bit
        -:        -: 4812:       * values", so it includes operations on floats.
        -:        -: 4813:       *
        -:        -: 4814:       * Gen4 has a similar restriction.  From the i965 PRM, section 11.5.3
        -:        -: 4815:       * (Instruction Compression -> Rules and Restrictions):
        -:        -: 4816:       *
        -:        -: 4817:       *  "A compressed instruction must be in Align1 access mode. Align16
        -:        -: 4818:       *   mode instructions cannot be compressed."
        -:        -: 4819:       *
        -:        -: 4820:       * Similar text exists in the g45 PRM.
        -:        -: 4821:       *
        -:        -: 4822:       * Empirically, compressed align16 instructions using odd register
        -:        -: 4823:       * numbers don't appear to work on Sandybridge either.
        -:        -: 4824:       */
    #####:    #####: 4825:      return (devinfo->gen == 4 || devinfo->gen == 6 ||
    #####:    #####: 4826:              (devinfo->gen == 7 && !devinfo->is_haswell) ?
    #####:    #####: 4827:              MIN2(8, inst->exec_size) : MIN2(16, inst->exec_size));
        -:        -: 4828:
        -:        -: 4829:   case SHADER_OPCODE_MULH:
        -:        -: 4830:      /* MULH is lowered to the MUL/MACH sequence using the accumulator, which
        -:        -: 4831:       * is 8-wide on Gen7+.
        -:        -: 4832:       */
    #####:    #####: 4833:      return (devinfo->gen >= 7 ? 8 :
    #####:    #####: 4834:              get_fpu_lowered_simd_width(devinfo, inst));
        -:        -: 4835:
        -:        -: 4836:   case FS_OPCODE_FB_WRITE_LOGICAL:
        -:        -: 4837:      /* Gen6 doesn't support SIMD16 depth writes but we cannot handle them
        -:        -: 4838:       * here.
        -:        -: 4839:       */
       10:       10: 4840:      assert(devinfo->gen != 6 ||
        -:        -: 4841:             inst->src[FB_WRITE_LOGICAL_SRC_SRC_DEPTH].file == BAD_FILE ||
        5:        5: 4842:             inst->exec_size == 8);
        -:        -: 4843:      /* Dual-source FB writes are unsupported in SIMD16 mode. */
        5:        5: 4844:      return (inst->src[FB_WRITE_LOGICAL_SRC_COLOR1].file != BAD_FILE ?
        5:        5: 4845:              8 : MIN2(16, inst->exec_size));
        -:        -: 4846:
        -:        -: 4847:   case FS_OPCODE_FB_READ_LOGICAL:
    #####:    #####: 4848:      return MIN2(16, inst->exec_size);
        -:        -: 4849:
        -:        -: 4850:   case SHADER_OPCODE_TEX_LOGICAL:
        -:        -: 4851:   case SHADER_OPCODE_TXF_CMS_LOGICAL:
        -:        -: 4852:   case SHADER_OPCODE_TXF_UMS_LOGICAL:
        -:        -: 4853:   case SHADER_OPCODE_TXF_MCS_LOGICAL:
        -:        -: 4854:   case SHADER_OPCODE_LOD_LOGICAL:
        -:        -: 4855:   case SHADER_OPCODE_TG4_LOGICAL:
        -:        -: 4856:   case SHADER_OPCODE_SAMPLEINFO_LOGICAL:
        -:        -: 4857:   case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
        -:        -: 4858:   case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
    #####:    #####: 4859:      return get_sampler_lowered_simd_width(devinfo, inst);
        -:        -: 4860:
        -:        -: 4861:   case SHADER_OPCODE_TXD_LOGICAL:
        -:        -: 4862:      /* TXD is unsupported in SIMD16 mode. */
    #####:    #####: 4863:      return 8;
        -:        -: 4864:
        -:        -: 4865:   case SHADER_OPCODE_TXL_LOGICAL:
        -:        -: 4866:   case FS_OPCODE_TXB_LOGICAL:
        -:        -: 4867:      /* Only one execution size is representable pre-ILK depending on whether
        -:        -: 4868:       * the shadow reference argument is present.
        -:        -: 4869:       */
    #####:    #####: 4870:      if (devinfo->gen == 4)
    #####:    #####: 4871:         return inst->src[TEX_LOGICAL_SRC_SHADOW_C].file == BAD_FILE ? 16 : 8;
        -:        -: 4872:      else
    #####:    #####: 4873:         return get_sampler_lowered_simd_width(devinfo, inst);
        -:        -: 4874:
        -:        -: 4875:   case SHADER_OPCODE_TXF_LOGICAL:
        -:        -: 4876:   case SHADER_OPCODE_TXS_LOGICAL:
        -:        -: 4877:      /* Gen4 doesn't have SIMD8 variants for the RESINFO and LD-with-LOD
        -:        -: 4878:       * messages.  Use SIMD16 instead.
        -:        -: 4879:       */
    #####:    #####: 4880:      if (devinfo->gen == 4)
    #####:    #####: 4881:         return 16;
        -:        -: 4882:      else
    #####:    #####: 4883:         return get_sampler_lowered_simd_width(devinfo, inst);
        -:        -: 4884:
        -:        -: 4885:   case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
        -:        -: 4886:   case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
        -:        -: 4887:   case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####: 4888:      return 8;
        -:        -: 4889:
        -:        -: 4890:   case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -: 4891:   case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
        -:        -: 4892:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####: 4893:      return MIN2(16, inst->exec_size);
        -:        -: 4894:
        -:        -: 4895:   case SHADER_OPCODE_URB_READ_SIMD8:
        -:        -: 4896:   case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
        -:        -: 4897:   case SHADER_OPCODE_URB_WRITE_SIMD8:
        -:        -: 4898:   case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
        -:        -: 4899:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
        -:        -: 4900:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
    #####:    #####: 4901:      return MIN2(8, inst->exec_size);
        -:        -: 4902:
        -:        -: 4903:   case SHADER_OPCODE_MOV_INDIRECT: {
        -:        -: 4904:      /* From IVB and HSW PRMs:
        -:        -: 4905:       *
        -:        -: 4906:       * "2.When the destination requires two registers and the sources are
        -:        -: 4907:       *  indirect, the sources must use 1x1 regioning mode.
        -:        -: 4908:       *
        -:        -: 4909:       * In case of DF instructions in HSW/IVB, the exec_size is limited by
        -:        -: 4910:       * the EU decompression logic not handling VxH indirect addressing
        -:        -: 4911:       * correctly.
        -:        -: 4912:       */
    #####:    #####: 4913:      const unsigned max_size = (devinfo->gen >= 8 ? 2 : 1) * REG_SIZE;
        -:        -: 4914:      /* Prior to Broadwell, we only have 8 address subregisters. */
    #####:    #####: 4915:      return MIN3(devinfo->gen >= 8 ? 16 : 8,
        -:        -: 4916:                  max_size / (inst->dst.stride * type_sz(inst->dst.type)),
        -:        -: 4917:                  inst->exec_size);
        -:        -: 4918:   }
        -:        -: 4919:
        -:        -: 4920:   case SHADER_OPCODE_LOAD_PAYLOAD: {
        -:        -: 4921:      const unsigned reg_count =
    #####:    #####: 4922:         DIV_ROUND_UP(inst->dst.component_size(inst->exec_size), REG_SIZE);
        -:        -: 4923:
    #####:    #####: 4924:      if (reg_count > 2) {
        -:        -: 4925:         /* Only LOAD_PAYLOAD instructions with per-channel destination region
        -:        -: 4926:          * can be easily lowered (which excludes headers and heterogeneous
        -:        -: 4927:          * types).
        -:        -: 4928:          */
    #####:    #####: 4929:         assert(!inst->header_size);
    #####:    #####: 4930:         for (unsigned i = 0; i < inst->sources; i++)
    #####:    #####: 4931:            assert(type_sz(inst->dst.type) == type_sz(inst->src[i].type) ||
    #####:    #####: 4932:                   inst->src[i].file == BAD_FILE);
        -:        -: 4933:
    #####:    #####: 4934:         return inst->exec_size / DIV_ROUND_UP(reg_count, 2);
        -:        -: 4935:      } else {
    #####:    #####: 4936:         return inst->exec_size;
        -:        -: 4937:      }
        -:        -: 4938:   }
        -:        -: 4939:   default:
       40:       48: 4940:      return inst->exec_size;
        -:        -: 4941:   }
        -:        -: 4942:}
        -:        -: 4943:
        -:        -: 4944:/**
        -:        -: 4945: * Return true if splitting out the group of channels of instruction \p inst
        -:        -: 4946: * given by lbld.group() requires allocating a temporary for the i-th source
        -:        -: 4947: * of the lowered instruction.
        -:        -: 4948: */
        -:        -: 4949:static inline bool
       88:       88: 4950:needs_src_copy(const fs_builder &lbld, const fs_inst *inst, unsigned i)
        -:        -: 4951:{
       88:       88: 4952:   return !(is_periodic(inst->src[i], lbld.dispatch_width()) ||
      136:      136: 4953:            (inst->components_read(i) == 1 &&
      156:      156: 4954:             lbld.dispatch_width() <= inst->exec_size));
        -:        -: 4955:}
        -:        -: 4956:
        -:        -: 4957:/**
        -:        -: 4958: * Extract the data that would be consumed by the channel group given by
        -:        -: 4959: * lbld.group() from the i-th source region of instruction \p inst and return
        -:        -: 4960: * it as result in packed form.  If any copy instructions are required they
        -:        -: 4961: * will be emitted before the given \p inst in \p block.
        -:        -: 4962: */
        -:        -: 4963:static fs_reg
       44:       44: 4964:emit_unzip(const fs_builder &lbld, bblock_t *block, fs_inst *inst,
        -:        -: 4965:           unsigned i)
        -:        -: 4966:{
        -:        -: 4967:   /* Specified channel group from the source region. */
       44:       44: 4968:   const fs_reg src = horiz_offset(inst->src[i], lbld.group());
        -:        -: 4969:
       44:       44: 4970:   if (needs_src_copy(lbld, inst, i)) {
        -:        -: 4971:      /* Builder of the right width to perform the copy avoiding uninitialized
        -:        -: 4972:       * data if the lowered execution size is greater than the original
        -:        -: 4973:       * execution size of the instruction.
        -:        -: 4974:       */
    #####:    #####: 4975:      const fs_builder cbld = lbld.group(MIN2(lbld.dispatch_width(),
    #####:    #####: 4976:                                              inst->exec_size), 0);
    #####:    #####: 4977:      const fs_reg tmp = lbld.vgrf(inst->src[i].type, inst->components_read(i));
        -:        -: 4978:
    #####:    #####: 4979:      for (unsigned k = 0; k < inst->components_read(i); ++k)
    #####:    #####: 4980:         cbld.at(block, inst)
    #####:    #####: 4981:             .MOV(offset(tmp, lbld, k), offset(src, inst->exec_size, k));
        -:        -: 4982:
    #####:    #####: 4983:      return tmp;
        -:        -: 4984:
       44:       44: 4985:   } else if (is_periodic(inst->src[i], lbld.dispatch_width())) {
        -:        -: 4986:      /* The source is invariant for all dispatch_width-wide groups of the
        -:        -: 4987:       * original region.
        -:        -: 4988:       */
       10:       10: 4989:      return inst->src[i];
        -:        -: 4990:
        -:        -: 4991:   } else {
        -:        -: 4992:      /* We can just point the lowered instruction at the right channel group
        -:        -: 4993:       * from the original region.
        -:        -: 4994:       */
       34:       34: 4995:      return src;
        -:        -: 4996:   }
        -:        -: 4997:}
        -:        -: 4998:
        -:        -: 4999:/**
        -:        -: 5000: * Return true if splitting out the group of channels of instruction \p inst
        -:        -: 5001: * given by lbld.group() requires allocating a temporary for the destination
        -:        -: 5002: * of the lowered instruction and copying the data back to the original
        -:        -: 5003: * destination region.
        -:        -: 5004: */
        -:        -: 5005:static inline bool
       20:       20: 5006:needs_dst_copy(const fs_builder &lbld, const fs_inst *inst)
        -:        -: 5007:{
        -:        -: 5008:   /* If the instruction writes more than one component we'll have to shuffle
        -:        -: 5009:    * the results of multiple lowered instructions in order to make sure that
        -:        -: 5010:    * they end up arranged correctly in the original destination region.
        -:        -: 5011:    */
       20:       20: 5012:   if (inst->size_written > inst->dst.component_size(inst->exec_size))
    #####:    #####: 5013:      return true;
        -:        -: 5014:
        -:        -: 5015:   /* If the lowered execution size is larger than the original the result of
        -:        -: 5016:    * the instruction won't fit in the original destination, so we'll have to
        -:        -: 5017:    * allocate a temporary in any case.
        -:        -: 5018:    */
       20:       20: 5019:   if (lbld.dispatch_width() > inst->exec_size)
    #####:    #####: 5020:      return true;
        -:        -: 5021:
       64:       64: 5022:   for (unsigned i = 0; i < inst->sources; i++) {
        -:        -: 5023:      /* If we already made a copy of the source for other reasons there won't
        -:        -: 5024:       * be any overlap with the destination.
        -:        -: 5025:       */
       44:       44: 5026:      if (needs_src_copy(lbld, inst, i))
    #####:    #####: 5027:         continue;
        -:        -: 5028:
        -:        -: 5029:      /* In order to keep the logic simple we emit a copy whenever the
        -:        -: 5030:       * destination region doesn't exactly match an overlapping source, which
        -:        -: 5031:       * may point at the source and destination not being aligned group by
        -:        -: 5032:       * group which could cause one of the lowered instructions to overwrite
        -:        -: 5033:       * the data read from the same source by other lowered instructions.
        -:        -: 5034:       */
      132:      132: 5035:      if (regions_overlap(inst->dst, inst->size_written,
       88:       88: 5036:                          inst->src[i], inst->size_read(i)) &&
    #####:    #####: 5037:          !inst->dst.equals(inst->src[i]))
    #####:    #####: 5038:        return true;
        -:        -: 5039:   }
        -:        -: 5040:
       20:       20: 5041:   return false;
        -:        -: 5042:}
        -:        -: 5043:
        -:        -: 5044:/**
        -:        -: 5045: * Insert data from a packed temporary into the channel group given by
        -:        -: 5046: * lbld.group() of the destination region of instruction \p inst and return
        -:        -: 5047: * the temporary as result.  If any copy instructions are required they will
        -:        -: 5048: * be emitted around the given \p inst in \p block.
        -:        -: 5049: */
        -:        -: 5050:static fs_reg
       20:       20: 5051:emit_zip(const fs_builder &lbld, bblock_t *block, fs_inst *inst)
        -:        -: 5052:{
        -:        -: 5053:   /* Builder of the right width to perform the copy avoiding uninitialized
        -:        -: 5054:    * data if the lowered execution size is greater than the original
        -:        -: 5055:    * execution size of the instruction.
        -:        -: 5056:    */
       20:       20: 5057:   const fs_builder cbld = lbld.group(MIN2(lbld.dispatch_width(),
       20:       20: 5058:                                           inst->exec_size), 0);
        -:        -: 5059:
        -:        -: 5060:   /* Specified channel group from the destination region. */
       20:       20: 5061:   const fs_reg dst = horiz_offset(inst->dst, lbld.group());
       20:       20: 5062:   const unsigned dst_size = inst->size_written /
       20:       20: 5063:      inst->dst.component_size(inst->exec_size);
        -:        -: 5064:
       20:       20: 5065:   if (needs_dst_copy(lbld, inst)) {
    #####:    #####: 5066:      const fs_reg tmp = lbld.vgrf(inst->dst.type, dst_size);
        -:        -: 5067:
    #####:    #####: 5068:      if (inst->predicate) {
        -:        -: 5069:         /* Handle predication by copying the original contents of
        -:        -: 5070:          * the destination into the temporary before emitting the
        -:        -: 5071:          * lowered instruction.
        -:        -: 5072:          */
    #####:    #####: 5073:         for (unsigned k = 0; k < dst_size; ++k)
    #####:    #####: 5074:            cbld.at(block, inst)
    #####:    #####: 5075:                .MOV(offset(tmp, lbld, k), offset(dst, inst->exec_size, k));
        -:        -: 5076:      }
        -:        -: 5077:
    #####:    #####: 5078:      for (unsigned k = 0; k < dst_size; ++k)
    #####:    #####: 5079:         cbld.at(block, inst->next)
    #####:    #####: 5080:             .MOV(offset(dst, inst->exec_size, k), offset(tmp, lbld, k));
        -:        -: 5081:
    #####:    #####: 5082:      return tmp;
        -:        -: 5083:
        -:        -: 5084:   } else {
        -:        -: 5085:      /* No need to allocate a temporary for the lowered instruction, just
        -:        -: 5086:       * take the right group of channels from the original region.
        -:        -: 5087:       */
       20:       20: 5088:      return dst;
        -:        -: 5089:   }
        -:        -: 5090:}
        -:        -: 5091:
        -:        -: 5092:bool
        5:        5: 5093:fs_visitor::lower_simd_width()
        -:        -: 5094:{
        5:        5: 5095:   bool progress = false;
        -:        -: 5096:
      199:      211: 5097:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      194:      206: 5098:      const unsigned lower_width = get_lowered_simd_width(devinfo, inst);
        -:        -: 5099:
      194:      206: 5100:      if (lower_width != inst->exec_size) {
        -:        -: 5101:         /* Builder matching the original instruction.  We may also need to
        -:        -: 5102:          * emit an instruction of width larger than the original, set the
        -:        -: 5103:          * execution size of the builder to the highest of both for now so
        -:        -: 5104:          * we're sure that both cases can be handled.
        -:        -: 5105:          */
       10:       10: 5106:         const unsigned max_width = MAX2(inst->exec_size, lower_width);
       20:       20: 5107:         const fs_builder ibld = bld.at(block, inst)
       30:       30: 5108:                                    .exec_all(inst->force_writemask_all)
       20:       20: 5109:                                    .group(max_width, inst->group / max_width);
        -:        -: 5110:
        -:        -: 5111:         /* Split the copies in chunks of the execution width of either the
        -:        -: 5112:          * original or the lowered instruction, whichever is lower.
        -:        -: 5113:          */
       10:       10: 5114:         const unsigned n = DIV_ROUND_UP(inst->exec_size, lower_width);
       10:       10: 5115:         const unsigned dst_size = inst->size_written /
       10:       10: 5116:            inst->dst.component_size(inst->exec_size);
        -:        -: 5117:
       10:       10: 5118:         assert(!inst->writes_accumulator && !inst->mlen);
        -:        -: 5119:
       30:       30: 5120:         for (unsigned i = 0; i < n; i++) {
        -:        -: 5121:            /* Emit a copy of the original instruction with the lowered width.
        -:        -: 5122:             * If the EOT flag was set throw it away except for the last
        -:        -: 5123:             * instruction to avoid killing the thread prematurely.
        -:        -: 5124:             */
       40:       40: 5125:            fs_inst split_inst = *inst;
       20:       20: 5126:            split_inst.exec_size = lower_width;
       20:       20: 5127:            split_inst.eot = inst->eot && i == n - 1;
        -:        -: 5128:
        -:        -: 5129:            /* Select the correct channel enables for the i-th group, then
        -:        -: 5130:             * transform the sources and destination and emit the lowered
        -:        -: 5131:             * instruction.
        -:        -: 5132:             */
       20:       20: 5133:            const fs_builder lbld = ibld.group(lower_width, i);
        -:        -: 5134:
       64:       64: 5135:            for (unsigned j = 0; j < inst->sources; j++)
       44:       44: 5136:               split_inst.src[j] = emit_unzip(lbld, block, inst, j);
        -:        -: 5137:
       20:       20: 5138:            split_inst.dst = emit_zip(lbld, block, inst);
        -:        -: 5139:            split_inst.size_written =
       20:       20: 5140:               split_inst.dst.component_size(lower_width) * dst_size;
        -:        -: 5141:
       20:       20: 5142:            lbld.emit(split_inst);
        -:        -: 5143:         }
        -:        -: 5144:
       10:       10: 5145:         inst->remove(block);
       10:       10: 5146:         progress = true;
        -:        -: 5147:      }
        -:        -: 5148:   }
        -:        -: 5149:
        5:        5: 5150:   if (progress)
        1:        1: 5151:      invalidate_live_intervals();
        -:        -: 5152:
        5:        5: 5153:   return progress;
        -:        -: 5154:}
        -:        -: 5155:
        -:        -: 5156:void
    #####:    #####: 5157:fs_visitor::dump_instructions()
        -:        -: 5158:{
    #####:    #####: 5159:   dump_instructions(NULL);
    #####:    #####: 5160:}
        -:        -: 5161:
        -:        -: 5162:void
    #####:    #####: 5163:fs_visitor::dump_instructions(const char *name)
        -:        -: 5164:{
    #####:    #####: 5165:   FILE *file = stderr;
    #####:    #####: 5166:   if (name && geteuid() != 0) {
    #####:    #####: 5167:      file = fopen(name, "w");
    #####:    #####: 5168:      if (!file)
    #####:    #####: 5169:         file = stderr;
        -:        -: 5170:   }
        -:        -: 5171:
    #####:    #####: 5172:   if (cfg) {
    #####:    #####: 5173:      calculate_register_pressure();
    #####:    #####: 5174:      int ip = 0, max_pressure = 0;
    #####:    #####: 5175:      foreach_block_and_inst(block, backend_instruction, inst, cfg) {
    #####:    #####: 5176:         max_pressure = MAX2(max_pressure, regs_live_at_ip[ip]);
    #####:    #####: 5177:         fprintf(file, "{%3d} %4d: ", regs_live_at_ip[ip], ip);
    #####:    #####: 5178:         dump_instruction(inst, file);
    #####:    #####: 5179:         ip++;
        -:        -: 5180:      }
    #####:    #####: 5181:      fprintf(file, "Maximum %3d registers live at once.\n", max_pressure);
        -:        -: 5182:   } else {
    #####:    #####: 5183:      int ip = 0;
    #####:    #####: 5184:      foreach_in_list(backend_instruction, inst, &instructions) {
    #####:    #####: 5185:         fprintf(file, "%4d: ", ip++);
    #####:    #####: 5186:         dump_instruction(inst, file);
        -:        -: 5187:      }
        -:        -: 5188:   }
        -:        -: 5189:
    #####:    #####: 5190:   if (file != stderr) {
    #####:    #####: 5191:      fclose(file);
        -:        -: 5192:   }
    #####:    #####: 5193:}
        -:        -: 5194:
        -:        -: 5195:void
    #####:    #####: 5196:fs_visitor::dump_instruction(backend_instruction *be_inst)
        -:        -: 5197:{
    #####:    #####: 5198:   dump_instruction(be_inst, stderr);
    #####:    #####: 5199:}
        -:        -: 5200:
        -:        -: 5201:void
    #####:    #####: 5202:fs_visitor::dump_instruction(backend_instruction *be_inst, FILE *file)
        -:        -: 5203:{
    #####:    #####: 5204:   fs_inst *inst = (fs_inst *)be_inst;
        -:        -: 5205:
    #####:    #####: 5206:   if (inst->predicate) {
    #####:    #####: 5207:      fprintf(file, "(%cf0.%d) ",
    #####:    #####: 5208:             inst->predicate_inverse ? '-' : '+',
    #####:    #####: 5209:             inst->flag_subreg);
        -:        -: 5210:   }
        -:        -: 5211:
    #####:    #####: 5212:   fprintf(file, "%s", brw_instruction_name(devinfo, inst->opcode));
    #####:    #####: 5213:   if (inst->saturate)
    #####:    #####: 5214:      fprintf(file, ".sat");
    #####:    #####: 5215:   if (inst->conditional_mod) {
    #####:    #####: 5216:      fprintf(file, "%s", conditional_modifier[inst->conditional_mod]);
    #####:    #####: 5217:      if (!inst->predicate &&
    #####:    #####: 5218:          (devinfo->gen < 5 || (inst->opcode != BRW_OPCODE_SEL &&
    #####:    #####: 5219:                              inst->opcode != BRW_OPCODE_IF &&
    #####:    #####: 5220:                              inst->opcode != BRW_OPCODE_WHILE))) {
    #####:    #####: 5221:         fprintf(file, ".f0.%d", inst->flag_subreg);
        -:        -: 5222:      }
        -:        -: 5223:   }
    #####:    #####: 5224:   fprintf(file, "(%d) ", inst->exec_size);
        -:        -: 5225:
    #####:    #####: 5226:   if (inst->mlen) {
    #####:    #####: 5227:      fprintf(file, "(mlen: %d) ", inst->mlen);
        -:        -: 5228:   }
        -:        -: 5229:
    #####:    #####: 5230:   if (inst->eot) {
    #####:    #####: 5231:      fprintf(file, "(EOT) ");
        -:        -: 5232:   }
        -:        -: 5233:
    #####:    #####: 5234:   switch (inst->dst.file) {
        -:        -: 5235:   case VGRF:
    #####:    #####: 5236:      fprintf(file, "vgrf%d", inst->dst.nr);
    #####:    #####: 5237:      break;
        -:        -: 5238:   case FIXED_GRF:
    #####:    #####: 5239:      fprintf(file, "g%d", inst->dst.nr);
    #####:    #####: 5240:      break;
        -:        -: 5241:   case MRF:
    #####:    #####: 5242:      fprintf(file, "m%d", inst->dst.nr);
    #####:    #####: 5243:      break;
        -:        -: 5244:   case BAD_FILE:
    #####:    #####: 5245:      fprintf(file, "(null)");
    #####:    #####: 5246:      break;
        -:        -: 5247:   case UNIFORM:
    #####:    #####: 5248:      fprintf(file, "***u%d***", inst->dst.nr);
    #####:    #####: 5249:      break;
        -:        -: 5250:   case ATTR:
    #####:    #####: 5251:      fprintf(file, "***attr%d***", inst->dst.nr);
    #####:    #####: 5252:      break;
        -:        -: 5253:   case ARF:
    #####:    #####: 5254:      switch (inst->dst.nr) {
        -:        -: 5255:      case BRW_ARF_NULL:
    #####:    #####: 5256:         fprintf(file, "null");
    #####:    #####: 5257:         break;
        -:        -: 5258:      case BRW_ARF_ADDRESS:
    #####:    #####: 5259:         fprintf(file, "a0.%d", inst->dst.subnr);
    #####:    #####: 5260:         break;
        -:        -: 5261:      case BRW_ARF_ACCUMULATOR:
    #####:    #####: 5262:         fprintf(file, "acc%d", inst->dst.subnr);
    #####:    #####: 5263:         break;
        -:        -: 5264:      case BRW_ARF_FLAG:
    #####:    #####: 5265:         fprintf(file, "f%d.%d", inst->dst.nr & 0xf, inst->dst.subnr);
    #####:    #####: 5266:         break;
        -:        -: 5267:      default:
    #####:    #####: 5268:         fprintf(file, "arf%d.%d", inst->dst.nr & 0xf, inst->dst.subnr);
    #####:    #####: 5269:         break;
        -:        -: 5270:      }
    #####:    #####: 5271:      break;
        -:        -: 5272:   case IMM:
    #####:    #####: 5273:      unreachable("not reached");
        -:        -: 5274:   }
        -:        -: 5275:
    #####:    #####: 5276:   if (inst->dst.offset ||
    #####:    #####: 5277:       (inst->dst.file == VGRF &&
    #####:    #####: 5278:        alloc.sizes[inst->dst.nr] * REG_SIZE != inst->size_written)) {
    #####:    #####: 5279:      const unsigned reg_size = (inst->dst.file == UNIFORM ? 4 : REG_SIZE);
    #####:    #####: 5280:      fprintf(file, "+%d.%d", inst->dst.offset / reg_size,
    #####:    #####: 5281:              inst->dst.offset % reg_size);
        -:        -: 5282:   }
        -:        -: 5283:
    #####:    #####: 5284:   if (inst->dst.stride != 1)
    #####:    #####: 5285:      fprintf(file, "<%u>", inst->dst.stride);
    #####:    #####: 5286:   fprintf(file, ":%s, ", brw_reg_type_letters(inst->dst.type));
        -:        -: 5287:
    #####:    #####: 5288:   for (int i = 0; i < inst->sources; i++) {
    #####:    #####: 5289:      if (inst->src[i].negate)
    #####:    #####: 5290:         fprintf(file, "-");
    #####:    #####: 5291:      if (inst->src[i].abs)
    #####:    #####: 5292:         fprintf(file, "|");
    #####:    #####: 5293:      switch (inst->src[i].file) {
        -:        -: 5294:      case VGRF:
    #####:    #####: 5295:         fprintf(file, "vgrf%d", inst->src[i].nr);
    #####:    #####: 5296:         break;
        -:        -: 5297:      case FIXED_GRF:
    #####:    #####: 5298:         fprintf(file, "g%d", inst->src[i].nr);
    #####:    #####: 5299:         break;
        -:        -: 5300:      case MRF:
    #####:    #####: 5301:         fprintf(file, "***m%d***", inst->src[i].nr);
    #####:    #####: 5302:         break;
        -:        -: 5303:      case ATTR:
    #####:    #####: 5304:         fprintf(file, "attr%d", inst->src[i].nr);
    #####:    #####: 5305:         break;
        -:        -: 5306:      case UNIFORM:
    #####:    #####: 5307:         fprintf(file, "u%d", inst->src[i].nr);
    #####:    #####: 5308:         break;
        -:        -: 5309:      case BAD_FILE:
    #####:    #####: 5310:         fprintf(file, "(null)");
    #####:    #####: 5311:         break;
        -:        -: 5312:      case IMM:
    #####:    #####: 5313:         switch (inst->src[i].type) {
        -:        -: 5314:         case BRW_REGISTER_TYPE_F:
    #####:    #####: 5315:            fprintf(file, "%-gf", inst->src[i].f);
    #####:    #####: 5316:            break;
        -:        -: 5317:         case BRW_REGISTER_TYPE_DF:
    #####:    #####: 5318:            fprintf(file, "%fdf", inst->src[i].df);
    #####:    #####: 5319:            break;
        -:        -: 5320:         case BRW_REGISTER_TYPE_W:
        -:        -: 5321:         case BRW_REGISTER_TYPE_D:
    #####:    #####: 5322:            fprintf(file, "%dd", inst->src[i].d);
    #####:    #####: 5323:            break;
        -:        -: 5324:         case BRW_REGISTER_TYPE_UW:
        -:        -: 5325:         case BRW_REGISTER_TYPE_UD:
    #####:    #####: 5326:            fprintf(file, "%uu", inst->src[i].ud);
    #####:    #####: 5327:            break;
        -:        -: 5328:         case BRW_REGISTER_TYPE_VF:
    #####:    #####: 5329:            fprintf(file, "[%-gF, %-gF, %-gF, %-gF]",
    #####:    #####: 5330:                    brw_vf_to_float((inst->src[i].ud >>  0) & 0xff),
    #####:    #####: 5331:                    brw_vf_to_float((inst->src[i].ud >>  8) & 0xff),
    #####:    #####: 5332:                    brw_vf_to_float((inst->src[i].ud >> 16) & 0xff),
    #####:    #####: 5333:                    brw_vf_to_float((inst->src[i].ud >> 24) & 0xff));
    #####:    #####: 5334:            break;
        -:        -: 5335:         default:
    #####:    #####: 5336:            fprintf(file, "???");
    #####:    #####: 5337:            break;
        -:        -: 5338:         }
    #####:    #####: 5339:         break;
        -:        -: 5340:      case ARF:
    #####:    #####: 5341:         switch (inst->src[i].nr) {
        -:        -: 5342:         case BRW_ARF_NULL:
    #####:    #####: 5343:            fprintf(file, "null");
    #####:    #####: 5344:            break;
        -:        -: 5345:         case BRW_ARF_ADDRESS:
    #####:    #####: 5346:            fprintf(file, "a0.%d", inst->src[i].subnr);
    #####:    #####: 5347:            break;
        -:        -: 5348:         case BRW_ARF_ACCUMULATOR:
    #####:    #####: 5349:            fprintf(file, "acc%d", inst->src[i].subnr);
    #####:    #####: 5350:            break;
        -:        -: 5351:         case BRW_ARF_FLAG:
    #####:    #####: 5352:            fprintf(file, "f%d.%d", inst->src[i].nr & 0xf, inst->src[i].subnr);
    #####:    #####: 5353:            break;
        -:        -: 5354:         default:
    #####:    #####: 5355:            fprintf(file, "arf%d.%d", inst->src[i].nr & 0xf, inst->src[i].subnr);
    #####:    #####: 5356:            break;
        -:        -: 5357:         }
    #####:    #####: 5358:         break;
        -:        -: 5359:      }
        -:        -: 5360:
    #####:    #####: 5361:      if (inst->src[i].offset ||
    #####:    #####: 5362:          (inst->src[i].file == VGRF &&
    #####:    #####: 5363:           alloc.sizes[inst->src[i].nr] * REG_SIZE != inst->size_read(i))) {
    #####:    #####: 5364:         const unsigned reg_size = (inst->src[i].file == UNIFORM ? 4 : REG_SIZE);
    #####:    #####: 5365:         fprintf(file, "+%d.%d", inst->src[i].offset / reg_size,
    #####:    #####: 5366:                 inst->src[i].offset % reg_size);
        -:        -: 5367:      }
        -:        -: 5368:
    #####:    #####: 5369:      if (inst->src[i].abs)
    #####:    #####: 5370:         fprintf(file, "|");
        -:        -: 5371:
    #####:    #####: 5372:      if (inst->src[i].file != IMM) {
        -:        -: 5373:         unsigned stride;
    #####:    #####: 5374:         if (inst->src[i].file == ARF || inst->src[i].file == FIXED_GRF) {
    #####:    #####: 5375:            unsigned hstride = inst->src[i].hstride;
    #####:    #####: 5376:            stride = (hstride == 0 ? 0 : (1 << (hstride - 1)));
        -:        -: 5377:         } else {
    #####:    #####: 5378:            stride = inst->src[i].stride;
        -:        -: 5379:         }
    #####:    #####: 5380:         if (stride != 1)
    #####:    #####: 5381:            fprintf(file, "<%u>", stride);
        -:        -: 5382:
    #####:    #####: 5383:         fprintf(file, ":%s", brw_reg_type_letters(inst->src[i].type));
        -:        -: 5384:      }
        -:        -: 5385:
    #####:    #####: 5386:      if (i < inst->sources - 1 && inst->src[i + 1].file != BAD_FILE)
    #####:    #####: 5387:         fprintf(file, ", ");
        -:        -: 5388:   }
        -:        -: 5389:
    #####:    #####: 5390:   fprintf(file, " ");
        -:        -: 5391:
    #####:    #####: 5392:   if (inst->force_writemask_all)
    #####:    #####: 5393:      fprintf(file, "NoMask ");
        -:        -: 5394:
    #####:    #####: 5395:   if (inst->exec_size != dispatch_width)
    #####:    #####: 5396:      fprintf(file, "group%d ", inst->group);
        -:        -: 5397:
    #####:    #####: 5398:   fprintf(file, "\n");
    #####:    #####: 5399:}
        -:        -: 5400:
        -:        -: 5401:/**
        -:        -: 5402: * Possibly returns an instruction that set up @param reg.
        -:        -: 5403: *
        -:        -: 5404: * Sometimes we want to take the result of some expression/variable
        -:        -: 5405: * dereference tree and rewrite the instruction generating the result
        -:        -: 5406: * of the tree.  When processing the tree, we know that the
        -:        -: 5407: * instructions generated are all writing temporaries that are dead
        -:        -: 5408: * outside of this tree.  So, if we have some instructions that write
        -:        -: 5409: * a temporary, we're free to point that temp write somewhere else.
        -:        -: 5410: *
        -:        -: 5411: * Note that this doesn't guarantee that the instruction generated
        -:        -: 5412: * only reg -- it might be the size=4 destination of a texture instruction.
        -:        -: 5413: */
        -:        -: 5414:fs_inst *
    #####:    #####: 5415:fs_visitor::get_instruction_generating_reg(fs_inst *start,
        -:        -: 5416:					   fs_inst *end,
        -:        -: 5417:					   const fs_reg ®)
        -:        -: 5418:{
    #####:    #####: 5419:   if (end == start ||
    #####:    #####: 5420:       end->is_partial_write() ||
    #####:    #####: 5421:       !reg.equals(end->dst)) {
    #####:    #####: 5422:      return NULL;
        -:        -: 5423:   } else {
    #####:    #####: 5424:      return end;
        -:        -: 5425:   }
        -:        -: 5426:}
        -:        -: 5427:
        -:        -: 5428:void
        6:        6: 5429:fs_visitor::setup_fs_payload_gen6()
        -:        -: 5430:{
        6:        6: 5431:   assert(stage == MESA_SHADER_FRAGMENT);
        6:        6: 5432:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        -:        -: 5433:
        6:        6: 5434:   assert(devinfo->gen >= 6);
        -:        -: 5435:
        -:        -: 5436:   /* R0-1: masks, pixel X/Y coordinates. */
        6:        6: 5437:   payload.num_regs = 2;
        -:        -: 5438:   /* R2: only for 32-pixel dispatch.*/
        -:        -: 5439:
        -:        -: 5440:   /* R3-26: barycentric interpolation coordinates.  These appear in the
        -:        -: 5441:    * same order that they appear in the brw_barycentric_mode
        -:        -: 5442:    * enum.  Each set of coordinates occupies 2 registers if dispatch width
        -:        -: 5443:    * == 8 and 4 registers if dispatch width == 16.  Coordinates only
        -:        -: 5444:    * appear if they were enabled using the "Barycentric Interpolation
        -:        -: 5445:    * Mode" bits in WM_STATE.
        -:        -: 5446:    */
       42:       42: 5447:   for (int i = 0; i < BRW_BARYCENTRIC_MODE_COUNT; ++i) {
       36:       36: 5448:      if (prog_data->barycentric_interp_modes & (1 << i)) {
        2:        2: 5449:         payload.barycentric_coord_reg[i] = payload.num_regs;
        2:        2: 5450:         payload.num_regs += 2;
        2:        2: 5451:         if (dispatch_width == 16) {
        1:        1: 5452:            payload.num_regs += 2;
        -:        -: 5453:         }
        -:        -: 5454:      }
        -:        -: 5455:   }
        -:        -: 5456:
        -:        -: 5457:   /* R27: interpolated depth if uses source depth */
        -:        -: 5458:   prog_data->uses_src_depth =
        6:        6: 5459:      (nir->info->inputs_read & (1 << VARYING_SLOT_POS)) != 0;
        6:        6: 5460:   if (prog_data->uses_src_depth) {
        2:        2: 5461:      payload.source_depth_reg = payload.num_regs;
        2:        2: 5462:      payload.num_regs++;
        2:        2: 5463:      if (dispatch_width == 16) {
        -:        -: 5464:         /* R28: interpolated depth if not SIMD8. */
        1:        1: 5465:         payload.num_regs++;
        -:        -: 5466:      }
        -:        -: 5467:   }
        -:        -: 5468:
        -:        -: 5469:   /* R29: interpolated W set if GEN6_WM_USES_SOURCE_W. */
        -:        -: 5470:   prog_data->uses_src_w =
        6:        6: 5471:      (nir->info->inputs_read & (1 << VARYING_SLOT_POS)) != 0;
        6:        6: 5472:   if (prog_data->uses_src_w) {
        2:        2: 5473:      payload.source_w_reg = payload.num_regs;
        2:        2: 5474:      payload.num_regs++;
        2:        2: 5475:      if (dispatch_width == 16) {
        -:        -: 5476:         /* R30: interpolated W if not SIMD8. */
        1:        1: 5477:         payload.num_regs++;
        -:        -: 5478:      }
        -:        -: 5479:   }
        -:        -: 5480:
        -:        -: 5481:   /* R31: MSAA position offsets. */
        6:        6: 5482:   if (prog_data->persample_dispatch &&
    #####:    #####: 5483:       (nir->info->system_values_read & SYSTEM_BIT_SAMPLE_POS)) {
        -:        -: 5484:      /* From the Ivy Bridge PRM documentation for 3DSTATE_PS:
        -:        -: 5485:       *
        -:        -: 5486:       *    "MSDISPMODE_PERSAMPLE is required in order to select
        -:        -: 5487:       *    POSOFFSET_SAMPLE"
        -:        -: 5488:       *
        -:        -: 5489:       * So we can only really get sample positions if we are doing real
        -:        -: 5490:       * per-sample dispatch.  If we need gl_SamplePosition and we don't have
        -:        -: 5491:       * persample dispatch, we hard-code it to 0.5.
        -:        -: 5492:       */
    #####:    #####: 5493:      prog_data->uses_pos_offset = true;
    #####:    #####: 5494:      payload.sample_pos_reg = payload.num_regs;
    #####:    #####: 5495:      payload.num_regs++;
        -:        -: 5496:   }
        -:        -: 5497:
        -:        -: 5498:   /* R32: MSAA input coverage mask */
        -:        -: 5499:   prog_data->uses_sample_mask =
        6:        6: 5500:      (nir->info->system_values_read & SYSTEM_BIT_SAMPLE_MASK_IN) != 0;
        6:        6: 5501:   if (prog_data->uses_sample_mask) {
    #####:    #####: 5502:      assert(devinfo->gen >= 7);
    #####:    #####: 5503:      payload.sample_mask_in_reg = payload.num_regs;
    #####:    #####: 5504:      payload.num_regs++;
    #####:    #####: 5505:      if (dispatch_width == 16) {
        -:        -: 5506:         /* R33: input coverage mask if not SIMD8. */
    #####:    #####: 5507:         payload.num_regs++;
        -:        -: 5508:      }
        -:        -: 5509:   }
        -:        -: 5510:
        -:        -: 5511:   /* R34-: bary for 32-pixel. */
        -:        -: 5512:   /* R58-59: interp W for 32-pixel. */
        -:        -: 5513:
        6:        6: 5514:   if (nir->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
    #####:    #####: 5515:      source_depth_to_render_target = true;
        -:        -: 5516:   }
        6:        6: 5517:}
        -:        -: 5518:
        -:        -: 5519:void
    #####:    #####: 5520:fs_visitor::setup_vs_payload()
        -:        -: 5521:{
        -:        -: 5522:   /* R0: thread header, R1: urb handles */
    #####:    #####: 5523:   payload.num_regs = 2;
    #####:    #####: 5524:}
        -:        -: 5525:
        -:        -: 5526:void
    #####:    #####: 5527:fs_visitor::setup_gs_payload()
        -:        -: 5528:{
    #####:    #####: 5529:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 5530:
    #####:    #####: 5531:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
    #####:    #####: 5532:   struct brw_vue_prog_data *vue_prog_data = brw_vue_prog_data(prog_data);
        -:        -: 5533:
        -:        -: 5534:   /* R0: thread header, R1: output URB handles */
    #####:    #####: 5535:   payload.num_regs = 2;
        -:        -: 5536:
    #####:    #####: 5537:   if (gs_prog_data->include_primitive_id) {
        -:        -: 5538:      /* R2: Primitive ID 0..7 */
    #####:    #####: 5539:      payload.num_regs++;
        -:        -: 5540:   }
        -:        -: 5541:
        -:        -: 5542:   /* Use a maximum of 24 registers for push-model inputs. */
    #####:    #####: 5543:   const unsigned max_push_components = 24;
        -:        -: 5544:
        -:        -: 5545:   /* If pushing our inputs would take too many registers, reduce the URB read
        -:        -: 5546:    * length (which is in HWords, or 8 registers), and resort to pulling.
        -:        -: 5547:    *
        -:        -: 5548:    * Note that the GS reads <URB Read Length> HWords for every vertex - so we
        -:        -: 5549:    * have to multiply by VerticesIn to obtain the total storage requirement.
        -:        -: 5550:    */
    #####:    #####: 5551:   if (8 * vue_prog_data->urb_read_length * nir->info->gs.vertices_in >
    #####:    #####: 5552:       max_push_components || gs_prog_data->invocations > 1) {
    #####:    #####: 5553:      gs_prog_data->base.include_vue_handles = true;
        -:        -: 5554:
        -:        -: 5555:      /* R3..RN: ICP Handles for each incoming vertex (when using pull model) */
    #####:    #####: 5556:      payload.num_regs += nir->info->gs.vertices_in;
        -:        -: 5557:
        -:        -: 5558:      vue_prog_data->urb_read_length =
    #####:    #####: 5559:         ROUND_DOWN_TO(max_push_components / nir->info->gs.vertices_in, 8) / 8;
        -:        -: 5560:   }
    #####:    #####: 5561:}
        -:        -: 5562:
        -:        -: 5563:void
    #####:    #####: 5564:fs_visitor::setup_cs_payload()
        -:        -: 5565:{
    #####:    #####: 5566:   assert(devinfo->gen >= 7);
    #####:    #####: 5567:   payload.num_regs = 1;
    #####:    #####: 5568:}
        -:        -: 5569:
        -:        -: 5570:void
    #####:    #####: 5571:fs_visitor::calculate_register_pressure()
        -:        -: 5572:{
    #####:    #####: 5573:   invalidate_live_intervals();
    #####:    #####: 5574:   calculate_live_intervals();
        -:        -: 5575:
    #####:    #####: 5576:   unsigned num_instructions = 0;
    #####:    #####: 5577:   foreach_block(block, cfg)
    #####:    #####: 5578:      num_instructions += block->instructions.length();
        -:        -: 5579:
    #####:    #####: 5580:   regs_live_at_ip = rzalloc_array(mem_ctx, int, num_instructions);
        -:        -: 5581:
    #####:    #####: 5582:   for (unsigned reg = 0; reg < alloc.count; reg++) {
    #####:    #####: 5583:      for (int ip = virtual_grf_start[reg]; ip <= virtual_grf_end[reg]; ip++)
    #####:    #####: 5584:         regs_live_at_ip[ip] += alloc.sizes[reg];
        -:        -: 5585:   }
    #####:    #####: 5586:}
        -:        -: 5587:
        -:        -: 5588:/**
        -:        -: 5589: * Look for repeated FS_OPCODE_MOV_DISPATCH_TO_FLAGS and drop the later ones.
        -:        -: 5590: *
        -:        -: 5591: * The needs_unlit_centroid_workaround ends up producing one of these per
        -:        -: 5592: * channel of centroid input, so it's good to clean them up.
        -:        -: 5593: *
        -:        -: 5594: * An assumption here is that nothing ever modifies the dispatched pixels
        -:        -: 5595: * value that FS_OPCODE_MOV_DISPATCH_TO_FLAGS reads from, but the hardware
        -:        -: 5596: * dictates that anyway.
        -:        -: 5597: */
        -:        -: 5598:bool
        5:        5: 5599:fs_visitor::opt_drop_redundant_mov_to_flags()
        -:        -: 5600:{
        5:        5: 5601:   bool flag_mov_found[2] = {false};
        5:        5: 5602:   bool progress = false;
        -:        -: 5603:
        -:        -: 5604:   /* Instructions removed by this pass can only be added if this were true */
        5:        5: 5605:   if (!devinfo->needs_unlit_centroid_workaround)
    #####:    #####: 5606:      return false;
        -:        -: 5607:
      345:      397: 5608:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      340:      392: 5609:      if (inst->is_control_flow()) {
       70:      110: 5610:         memset(flag_mov_found, 0, sizeof(flag_mov_found));
      270:      282: 5611:      } else if (inst->opcode == FS_OPCODE_MOV_DISPATCH_TO_FLAGS) {
    #####:    #####: 5612:         if (!flag_mov_found[inst->flag_subreg]) {
    #####:    #####: 5613:            flag_mov_found[inst->flag_subreg] = true;
        -:        -: 5614:         } else {
    #####:    #####: 5615:            inst->remove(block);
    #####:    #####: 5616:            progress = true;
        -:        -: 5617:         }
      270:      282: 5618:      } else if (inst->flags_written()) {
       40:       52: 5619:         flag_mov_found[inst->flag_subreg] = false;
        -:        -: 5620:      }
        -:        -: 5621:   }
        -:        -: 5622:
        5:        5: 5623:   return progress;
        -:        -: 5624:}
        -:        -: 5625:
        -:        -: 5626:void
        5:        5: 5627:fs_visitor::optimize()
        -:        -: 5628:{
        -:        -: 5629:   /* Start by validating the shader we currently have. */
        5:        5: 5630:   validate();
        -:        -: 5631:
        -:        -: 5632:   /* bld is the common builder object pointing at the end of the program we
        -:        -: 5633:    * used to translate it into i965 IR.  For the optimization and lowering
        -:        -: 5634:    * passes coming next, any code added after the end of the program without
        -:        -: 5635:    * having explicitly called fs_builder::at() clearly points at a mistake.
        -:        -: 5636:    * Ideally optimization passes wouldn't be part of the visitor so they
        -:        -: 5637:    * wouldn't have access to bld at all, but they do, so just in case some
        -:        -: 5638:    * pass forgets to ask for a location explicitly set it to NULL here to
        -:        -: 5639:    * make it trip.  The dispatch width is initialized to a bogus value to
        -:        -: 5640:    * make sure that optimizations set the execution controls explicitly to
        -:        -: 5641:    * match the code they are manipulating instead of relying on the defaults.
        -:        -: 5642:    */
        5:        5: 5643:   bld = fs_builder(this, 64);
        -:        -: 5644:
        5:        5: 5645:   assign_constant_locations();
        5:        5: 5646:   lower_constant_loads();
        -:        -: 5647:
        5:        5: 5648:   validate();
        -:        -: 5649:
        5:        5: 5650:   split_virtual_grfs();
        5:        5: 5651:   validate();
        -:        -: 5652:
        -:        -: 5653:#define OPT(pass, args...) ({                                           \
        -:        -: 5654:      pass_num++;                                                       \
        -:        -: 5655:      bool this_progress = pass(args);                                  \
        -:        -: 5656:                                                                        \
        -:        -: 5657:      if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER) && this_progress) {   \
        -:        -: 5658:         char filename[64];                                             \
        -:        -: 5659:         snprintf(filename, 64, "%s%d-%s-%02d-%02d-" #pass,              \
        -:        -: 5660:                  stage_abbrev, dispatch_width, nir->info->name, iteration, pass_num); \
        -:        -: 5661:                                                                        \
        -:        -: 5662:         backend_shader::dump_instructions(filename);                   \
        -:        -: 5663:      }                                                                 \
        -:        -: 5664:                                                                        \
        -:        -: 5665:      validate();                                                       \
        -:        -: 5666:                                                                        \
        -:        -: 5667:      progress = progress || this_progress;                             \
        -:        -: 5668:      this_progress;                                                    \
        -:        -: 5669:   })
        -:        -: 5670:
        5:        5: 5671:   if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) {
        -:        -: 5672:      char filename[64];
    #####:    #####: 5673:      snprintf(filename, 64, "%s%d-%s-00-00-start",
    #####:    #####: 5674:               stage_abbrev, dispatch_width, nir->info->name);
        -:        -: 5675:
    #####:    #####: 5676:      backend_shader::dump_instructions(filename);
        -:        -: 5677:   }
        -:        -: 5678:
        5:        5: 5679:   bool progress = false;
        5:        5: 5680:   int iteration = 0;
        5:        5: 5681:   int pass_num = 0;
        -:        -: 5682:
        5:        5: 5683:   OPT(opt_drop_redundant_mov_to_flags);
        -:        -: 5684:
       12:       14: 5685:   do {
       12:       14: 5686:      progress = false;
       12:       14: 5687:      pass_num = 0;
       12:       14: 5688:      iteration++;
        -:        -: 5689:
       12:       14: 5690:      OPT(remove_duplicate_mrf_writes);
        -:        -: 5691:
       12:       14: 5692:      OPT(opt_algebraic);
       12:       14: 5693:      OPT(opt_cse);
       12:       14: 5694:      OPT(opt_copy_propagation);
       12:       14: 5695:      OPT(opt_predicated_break, this);
       12:       14: 5696:      OPT(opt_cmod_propagation);
       12:       14: 5697:      OPT(dead_code_eliminate);
       12:       14: 5698:      OPT(opt_peephole_sel);
       12:       14: 5699:      OPT(dead_control_flow_eliminate, this);
       12:       14: 5700:      OPT(opt_register_renaming);
       12:       14: 5701:      OPT(opt_saturate_propagation);
       12:       14: 5702:      OPT(register_coalesce);
       12:       14: 5703:      OPT(compute_to_mrf);
       12:       14: 5704:      OPT(eliminate_find_live_channel);
        -:        -: 5705:
       12:       14: 5706:      OPT(compact_virtual_grfs);
        -:        -: 5707:   } while (progress);
        -:        -: 5708:
        5:        5: 5709:   progress = false;
        5:        5: 5710:   pass_num = 0;
        -:        -: 5711:
        5:        5: 5712:   if (OPT(lower_pack)) {
    #####:    #####: 5713:      OPT(register_coalesce);
    #####:    #####: 5714:      OPT(dead_code_eliminate);
        -:        -: 5715:   }
        -:        -: 5716:
        5:        5: 5717:   OPT(lower_simd_width);
        -:        -: 5718:
        -:        -: 5719:   /* After SIMD lowering just in case we had to unroll the EOT send. */
        5:        5: 5720:   OPT(opt_sampler_eot);
        -:        -: 5721:
        5:        5: 5722:   OPT(lower_logical_sends);
        -:        -: 5723:
        5:        5: 5724:   if (progress) {
        5:        5: 5725:      OPT(opt_copy_propagation);
        -:        -: 5726:      /* Only run after logical send lowering because it's easier to implement
        -:        -: 5727:       * in terms of physical sends.
        -:        -: 5728:       */
        5:        5: 5729:      if (OPT(opt_zero_samples))
    #####:    #####: 5730:         OPT(opt_copy_propagation);
        -:        -: 5731:      /* Run after logical send lowering to give it a chance to CSE the
        -:        -: 5732:       * LOAD_PAYLOAD instructions created to construct the payloads of
        -:        -: 5733:       * e.g. texturing messages in cases where it wasn't possible to CSE the
        -:        -: 5734:       * whole logical instruction.
        -:        -: 5735:       */
        5:        5: 5736:      OPT(opt_cse);
        5:        5: 5737:      OPT(register_coalesce);
        5:        5: 5738:      OPT(compute_to_mrf);
        5:        5: 5739:      OPT(dead_code_eliminate);
        5:        5: 5740:      OPT(remove_duplicate_mrf_writes);
        5:        5: 5741:      OPT(opt_peephole_sel);
        -:        -: 5742:   }
        -:        -: 5743:
        5:        5: 5744:   OPT(opt_redundant_discard_jumps);
        -:        -: 5745:
        5:        5: 5746:   if (OPT(lower_load_payload)) {
        5:        5: 5747:      split_virtual_grfs();
        5:        5: 5748:      OPT(register_coalesce);
        5:        5: 5749:      OPT(compute_to_mrf);
        5:        5: 5750:      OPT(dead_code_eliminate);
        -:        -: 5751:   }
        -:        -: 5752:
        5:        5: 5753:   OPT(opt_combine_constants);
        5:        5: 5754:   OPT(lower_integer_multiplication);
        -:        -: 5755:
        5:        5: 5756:   if (devinfo->gen <= 5 && OPT(lower_minmax)) {
    #####:    #####: 5757:      OPT(opt_cmod_propagation);
    #####:    #####: 5758:      OPT(opt_cse);
    #####:    #####: 5759:      OPT(opt_copy_propagation);
    #####:    #####: 5760:      OPT(dead_code_eliminate);
        -:        -: 5761:   }
        -:        -: 5762:
        5:        5: 5763:   if (OPT(lower_conversions)) {
    #####:    #####: 5764:      OPT(opt_copy_propagation);
    #####:    #####: 5765:      OPT(dead_code_eliminate);
    #####:    #####: 5766:      OPT(lower_simd_width);
        -:        -: 5767:   }
        -:        -: 5768:
        5:        5: 5769:   lower_uniform_pull_constant_loads();
        -:        -: 5770:
        5:        5: 5771:   validate();
        5:        5: 5772:}
        -:        -: 5773:
        -:        -: 5774:/**
        -:        -: 5775: * Three source instruction must have a GRF/MRF destination register.
        -:        -: 5776: * ARF NULL is not allowed.  Fix that up by allocating a temporary GRF.
        -:        -: 5777: */
        -:        -: 5778:void
        5:        5: 5779:fs_visitor::fixup_3src_null_dest()
        -:        -: 5780:{
        5:        5: 5781:   bool progress = false;
        -:        -: 5782:
      211:      223: 5783:   foreach_block_and_inst_safe (block, fs_inst, inst, cfg) {
      206:      218: 5784:      if (inst->is_3src(devinfo) && inst->dst.is_null()) {
    #####:    #####: 5785:         inst->dst = fs_reg(VGRF, alloc.allocate(dispatch_width / 8),
    #####:    #####: 5786:                            inst->dst.type);
    #####:    #####: 5787:         progress = true;
        -:        -: 5788:      }
        -:        -: 5789:   }
        -:        -: 5790:
        5:        5: 5791:   if (progress)
    #####:    #####: 5792:      invalidate_live_intervals();
        5:        5: 5793:}
        -:        -: 5794:
        -:        -: 5795:void
        5:        5: 5796:fs_visitor::allocate_registers(bool allow_spilling)
        -:        -: 5797:{
        -:        -: 5798:   bool allocated_without_spills;
        -:        -: 5799:
        -:        -: 5800:   static const enum instruction_scheduler_mode pre_modes[] = {
        -:        -: 5801:      SCHEDULE_PRE,
        -:        -: 5802:      SCHEDULE_PRE_NON_LIFO,
        -:        -: 5803:      SCHEDULE_PRE_LIFO,
        -:        -: 5804:   };
        -:        -: 5805:
        5:        5: 5806:   bool spill_all = allow_spilling && (INTEL_DEBUG & DEBUG_SPILL_FS);
        -:        -: 5807:
        -:        -: 5808:   /* Try each scheduling heuristic to see if it can successfully register
        -:        -: 5809:    * allocate without spilling.  They should be ordered by decreasing
        -:        -: 5810:    * performance but increasing likelihood of allocating.
        -:        -: 5811:    */
        5:        5: 5812:   for (unsigned i = 0; i < ARRAY_SIZE(pre_modes); i++) {
        5:        5: 5813:      schedule_instructions(pre_modes[i]);
        -:        -: 5814:
        -:        -: 5815:      if (0) {
        -:        -: 5816:         assign_regs_trivial();
        -:        -: 5817:         allocated_without_spills = true;
        -:        -: 5818:      } else {
        5:        5: 5819:         allocated_without_spills = assign_regs(false, spill_all);
        -:        -: 5820:      }
        5:        5: 5821:      if (allocated_without_spills)
        5:        5: 5822:         break;
        -:        -: 5823:   }
        -:        -: 5824:
        5:        5: 5825:   if (!allocated_without_spills) {
    #####:    #####: 5826:      if (!allow_spilling)
    #####:    #####: 5827:         fail("Failure to register allocate and spilling is not allowed.");
        -:        -: 5828:
        -:        -: 5829:      /* We assume that any spilling is worse than just dropping back to
        -:        -: 5830:       * SIMD8.  There's probably actually some intermediate point where
        -:        -: 5831:       * SIMD16 with a couple of spills is still better.
        -:        -: 5832:       */
    #####:    #####: 5833:      if (dispatch_width > min_dispatch_width) {
        -:        -: 5834:         fail("Failure to register allocate.  Reduce number of "
    #####:    #####: 5835:              "live scalar values to avoid this.");
        -:        -: 5836:      } else {
    #####:    #####: 5837:         compiler->shader_perf_log(log_data,
        -:        -: 5838:                                   "%s shader triggered register spilling.  "
        -:        -: 5839:                                   "Try reducing the number of live scalar "
        -:        -: 5840:                                   "values to improve performance.\n",
    #####:    #####: 5841:                                   stage_name);
        -:        -: 5842:      }
        -:        -: 5843:
        -:        -: 5844:      /* Since we're out of heuristics, just go spill registers until we
        -:        -: 5845:       * get an allocation.
        -:        -: 5846:       */
    #####:    #####: 5847:      while (!assign_regs(true, spill_all)) {
    #####:    #####: 5848:         if (failed)
    #####:    #####: 5849:            break;
        -:        -: 5850:      }
        -:        -: 5851:   }
        -:        -: 5852:
        -:        -: 5853:   /* This must come after all optimization and register allocation, since
        -:        -: 5854:    * it inserts dead code that happens to have side effects, and it does
        -:        -: 5855:    * so based on the actual physical registers in use.
        -:        -: 5856:    */
        5:        5: 5857:   insert_gen4_send_dependency_workarounds();
        -:        -: 5858:
        5:        5: 5859:   if (failed)
    #####:    #####: 5860:      return;
        -:        -: 5861:
        5:        5: 5862:   schedule_instructions(SCHEDULE_POST);
        -:        -: 5863:
        5:        5: 5864:   if (last_scratch > 0) {
    #####:    #####: 5865:      MAYBE_UNUSED unsigned max_scratch_size = 2 * 1024 * 1024;
        -:        -: 5866:
    #####:    #####: 5867:      prog_data->total_scratch = brw_get_scratch_size(last_scratch);
        -:        -: 5868:
    #####:    #####: 5869:      if (stage == MESA_SHADER_COMPUTE) {
    #####:    #####: 5870:         if (devinfo->is_haswell) {
        -:        -: 5871:            /* According to the MEDIA_VFE_STATE's "Per Thread Scratch Space"
        -:        -: 5872:             * field documentation, Haswell supports a minimum of 2kB of
        -:        -: 5873:             * scratch space for compute shaders, unlike every other stage
        -:        -: 5874:             * and platform.
        -:        -: 5875:             */
    #####:    #####: 5876:            prog_data->total_scratch = MAX2(prog_data->total_scratch, 2048);
    #####:    #####: 5877:         } else if (devinfo->gen <= 7) {
        -:        -: 5878:            /* According to the MEDIA_VFE_STATE's "Per Thread Scratch Space"
        -:        -: 5879:             * field documentation, platforms prior to Haswell measure scratch
        -:        -: 5880:             * size linearly with a range of [1kB, 12kB] and 1kB granularity.
        -:        -: 5881:             */
    #####:    #####: 5882:            prog_data->total_scratch = ALIGN(last_scratch, 1024);
    #####:    #####: 5883:            max_scratch_size = 12 * 1024;
        -:        -: 5884:         }
        -:        -: 5885:      }
        -:        -: 5886:
        -:        -: 5887:      /* We currently only support up to 2MB of scratch space.  If we
        -:        -: 5888:       * need to support more eventually, the documentation suggests
        -:        -: 5889:       * that we could allocate a larger buffer, and partition it out
        -:        -: 5890:       * ourselves.  We'd just have to undo the hardware's address
        -:        -: 5891:       * calculation by subtracting (FFTID * Per Thread Scratch Space)
        -:        -: 5892:       * and then add FFTID * (Larger Per Thread Scratch Space).
        -:        -: 5893:       *
        -:        -: 5894:       * See 3D-Media-GPGPU Engine > Media GPGPU Pipeline >
        -:        -: 5895:       * Thread Group Tracking > Local Memory/Scratch Space.
        -:        -: 5896:       */
    #####:    #####: 5897:      assert(prog_data->total_scratch < max_scratch_size);
        -:        -: 5898:   }
        -:        -: 5899:}
        -:        -: 5900:
        -:        -: 5901:bool
    #####:    #####: 5902:fs_visitor::run_vs(gl_clip_plane *clip_planes)
        -:        -: 5903:{
    #####:    #####: 5904:   assert(stage == MESA_SHADER_VERTEX);
        -:        -: 5905:
    #####:    #####: 5906:   setup_vs_payload();
        -:        -: 5907:
    #####:    #####: 5908:   if (shader_time_index >= 0)
    #####:    #####: 5909:      emit_shader_time_begin();
        -:        -: 5910:
    #####:    #####: 5911:   emit_nir_code();
        -:        -: 5912:
    #####:    #####: 5913:   if (failed)
    #####:    #####: 5914:      return false;
        -:        -: 5915:
    #####:    #####: 5916:   compute_clip_distance(clip_planes);
        -:        -: 5917:
    #####:    #####: 5918:   emit_urb_writes();
        -:        -: 5919:
    #####:    #####: 5920:   if (shader_time_index >= 0)
    #####:    #####: 5921:      emit_shader_time_end();
        -:        -: 5922:
    #####:    #####: 5923:   calculate_cfg();
        -:        -: 5924:
    #####:    #####: 5925:   optimize();
        -:        -: 5926:
    #####:    #####: 5927:   assign_curb_setup();
    #####:    #####: 5928:   assign_vs_urb_setup();
        -:        -: 5929:
    #####:    #####: 5930:   fixup_3src_null_dest();
    #####:    #####: 5931:   allocate_registers(true);
        -:        -: 5932:
    #####:    #####: 5933:   return !failed;
        -:        -: 5934:}
        -:        -: 5935:
        -:        -: 5936:bool
    #####:    #####: 5937:fs_visitor::run_tcs_single_patch()
        -:        -: 5938:{
    #####:    #####: 5939:   assert(stage == MESA_SHADER_TESS_CTRL);
        -:        -: 5940:
    #####:    #####: 5941:   struct brw_tcs_prog_data *tcs_prog_data = brw_tcs_prog_data(prog_data);
        -:        -: 5942:
        -:        -: 5943:   /* r1-r4 contain the ICP handles. */
    #####:    #####: 5944:   payload.num_regs = 5;
        -:        -: 5945:
    #####:    #####: 5946:   if (shader_time_index >= 0)
    #####:    #####: 5947:      emit_shader_time_begin();
        -:        -: 5948:
        -:        -: 5949:   /* Initialize gl_InvocationID */
    #####:    #####: 5950:   fs_reg channels_uw = bld.vgrf(BRW_REGISTER_TYPE_UW);
    #####:    #####: 5951:   fs_reg channels_ud = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 5952:   bld.MOV(channels_uw, fs_reg(brw_imm_uv(0x76543210)));
    #####:    #####: 5953:   bld.MOV(channels_ud, channels_uw);
        -:        -: 5954:
    #####:    #####: 5955:   if (tcs_prog_data->instances == 1) {
    #####:    #####: 5956:      invocation_id = channels_ud;
        -:        -: 5957:   } else {
    #####:    #####: 5958:      invocation_id = bld.vgrf(BRW_REGISTER_TYPE_UD);
        -:        -: 5959:
        -:        -: 5960:      /* Get instance number from g0.2 bits 23:17, and multiply it by 8. */
    #####:    #####: 5961:      fs_reg t = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 5962:      fs_reg instance_times_8 = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 5963:      bld.AND(t, fs_reg(retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD)),
    #####:    #####: 5964:              brw_imm_ud(INTEL_MASK(23, 17)));
    #####:    #####: 5965:      bld.SHR(instance_times_8, t, brw_imm_ud(17 - 3));
        -:        -: 5966:
    #####:    #####: 5967:      bld.ADD(invocation_id, instance_times_8, channels_ud);
        -:        -: 5968:   }
        -:        -: 5969:
        -:        -: 5970:   /* Fix the disptach mask */
    #####:    #####: 5971:   if (nir->info->tess.tcs_vertices_out % 8) {
    #####:    #####: 5972:      bld.CMP(bld.null_reg_ud(), invocation_id,
    #####:    #####: 5973:              brw_imm_ud(nir->info->tess.tcs_vertices_out), BRW_CONDITIONAL_L);
    #####:    #####: 5974:      bld.IF(BRW_PREDICATE_NORMAL);
        -:        -: 5975:   }
        -:        -: 5976:
    #####:    #####: 5977:   emit_nir_code();
        -:        -: 5978:
    #####:    #####: 5979:   if (nir->info->tess.tcs_vertices_out % 8) {
    #####:    #####: 5980:      bld.emit(BRW_OPCODE_ENDIF);
        -:        -: 5981:   }
        -:        -: 5982:
        -:        -: 5983:   /* Emit EOT write; set TR DS Cache bit */
        -:        -: 5984:   fs_reg srcs[3] = {
        -:        -: 5985:      fs_reg(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD)),
        -:        -: 5986:      fs_reg(brw_imm_ud(WRITEMASK_X << 16)),
        -:        -: 5987:      fs_reg(brw_imm_ud(0)),
    #####:    #####: 5988:   };
    #####:    #####: 5989:   fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, 3);
    #####:    #####: 5990:   bld.LOAD_PAYLOAD(payload, srcs, 3, 2);
        -:        -: 5991:
    #####:    #####: 5992:   fs_inst *inst = bld.emit(SHADER_OPCODE_URB_WRITE_SIMD8_MASKED,
    #####:    #####: 5993:                            bld.null_reg_ud(), payload);
    #####:    #####: 5994:   inst->mlen = 3;
    #####:    #####: 5995:   inst->eot = true;
        -:        -: 5996:
    #####:    #####: 5997:   if (shader_time_index >= 0)
    #####:    #####: 5998:      emit_shader_time_end();
        -:        -: 5999:
    #####:    #####: 6000:   if (failed)
    #####:    #####: 6001:      return false;
        -:        -: 6002:
    #####:    #####: 6003:   calculate_cfg();
        -:        -: 6004:
    #####:    #####: 6005:   optimize();
        -:        -: 6006:
    #####:    #####: 6007:   assign_curb_setup();
    #####:    #####: 6008:   assign_tcs_single_patch_urb_setup();
        -:        -: 6009:
    #####:    #####: 6010:   fixup_3src_null_dest();
    #####:    #####: 6011:   allocate_registers(true);
        -:        -: 6012:
    #####:    #####: 6013:   return !failed;
        -:        -: 6014:}
        -:        -: 6015:
        -:        -: 6016:bool
    #####:    #####: 6017:fs_visitor::run_tes()
        -:        -: 6018:{
    #####:    #####: 6019:   assert(stage == MESA_SHADER_TESS_EVAL);
        -:        -: 6020:
        -:        -: 6021:   /* R0: thread header, R1-3: gl_TessCoord.xyz, R4: URB handles */
    #####:    #####: 6022:   payload.num_regs = 5;
        -:        -: 6023:
    #####:    #####: 6024:   if (shader_time_index >= 0)
    #####:    #####: 6025:      emit_shader_time_begin();
        -:        -: 6026:
    #####:    #####: 6027:   emit_nir_code();
        -:        -: 6028:
    #####:    #####: 6029:   if (failed)
    #####:    #####: 6030:      return false;
        -:        -: 6031:
    #####:    #####: 6032:   emit_urb_writes();
        -:        -: 6033:
    #####:    #####: 6034:   if (shader_time_index >= 0)
    #####:    #####: 6035:      emit_shader_time_end();
        -:        -: 6036:
    #####:    #####: 6037:   calculate_cfg();
        -:        -: 6038:
    #####:    #####: 6039:   optimize();
        -:        -: 6040:
    #####:    #####: 6041:   assign_curb_setup();
    #####:    #####: 6042:   assign_tes_urb_setup();
        -:        -: 6043:
    #####:    #####: 6044:   fixup_3src_null_dest();
    #####:    #####: 6045:   allocate_registers(true);
        -:        -: 6046:
    #####:    #####: 6047:   return !failed;
        -:        -: 6048:}
        -:        -: 6049:
        -:        -: 6050:bool
    #####:    #####: 6051:fs_visitor::run_gs()
        -:        -: 6052:{
    #####:    #####: 6053:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 6054:
    #####:    #####: 6055:   setup_gs_payload();
        -:        -: 6056:
    #####:    #####: 6057:   this->final_gs_vertex_count = vgrf(glsl_type::uint_type);
        -:        -: 6058:
    #####:    #####: 6059:   if (gs_compile->control_data_header_size_bits > 0) {
        -:        -: 6060:      /* Create a VGRF to store accumulated control data bits. */
    #####:    #####: 6061:      this->control_data_bits = vgrf(glsl_type::uint_type);
        -:        -: 6062:
        -:        -: 6063:      /* If we're outputting more than 32 control data bits, then EmitVertex()
        -:        -: 6064:       * will set control_data_bits to 0 after emitting the first vertex.
        -:        -: 6065:       * Otherwise, we need to initialize it to 0 here.
        -:        -: 6066:       */
    #####:    #####: 6067:      if (gs_compile->control_data_header_size_bits <= 32) {
    #####:    #####: 6068:         const fs_builder abld = bld.annotate("initialize control data bits");
    #####:    #####: 6069:         abld.MOV(this->control_data_bits, brw_imm_ud(0u));
        -:        -: 6070:      }
        -:        -: 6071:   }
        -:        -: 6072:
    #####:    #####: 6073:   if (shader_time_index >= 0)
    #####:    #####: 6074:      emit_shader_time_begin();
        -:        -: 6075:
    #####:    #####: 6076:   emit_nir_code();
        -:        -: 6077:
    #####:    #####: 6078:   emit_gs_thread_end();
        -:        -: 6079:
    #####:    #####: 6080:   if (shader_time_index >= 0)
    #####:    #####: 6081:      emit_shader_time_end();
        -:        -: 6082:
    #####:    #####: 6083:   if (failed)
    #####:    #####: 6084:      return false;
        -:        -: 6085:
    #####:    #####: 6086:   calculate_cfg();
        -:        -: 6087:
    #####:    #####: 6088:   optimize();
        -:        -: 6089:
    #####:    #####: 6090:   assign_curb_setup();
    #####:    #####: 6091:   assign_gs_urb_setup();
        -:        -: 6092:
    #####:    #####: 6093:   fixup_3src_null_dest();
    #####:    #####: 6094:   allocate_registers(true);
        -:        -: 6095:
    #####:    #####: 6096:   return !failed;
        -:        -: 6097:}
        -:        -: 6098:
        -:        -: 6099:bool
        6:        6: 6100:fs_visitor::run_fs(bool allow_spilling, bool do_rep_send)
        -:        -: 6101:{
        6:        6: 6102:   struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(this->prog_data);
        6:        6: 6103:   brw_wm_prog_key *wm_key = (brw_wm_prog_key *) this->key;
        -:        -: 6104:
        6:        6: 6105:   assert(stage == MESA_SHADER_FRAGMENT);
        -:        -: 6106:
        6:        6: 6107:   if (devinfo->gen >= 6)
        6:        6: 6108:      setup_fs_payload_gen6();
        -:        -: 6109:   else
    #####:    #####: 6110:      setup_fs_payload_gen4();
        -:        -: 6111:
        -:        -: 6112:   if (0) {
        -:        -: 6113:      emit_dummy_fs();
        6:        6: 6114:   } else if (do_rep_send) {
        1:        1: 6115:      assert(dispatch_width == 16);
        1:        1: 6116:      emit_repclear_shader();
        -:        -: 6117:   } else {
        5:        5: 6118:      if (shader_time_index >= 0)
    #####:    #####: 6119:         emit_shader_time_begin();
        -:        -: 6120:
        5:        5: 6121:      calculate_urb_setup();
        5:        5: 6122:      if (nir->info->inputs_read > 0 ||
    #####:    #####: 6123:          (nir->info->outputs_read > 0 && !wm_key->coherent_fb_fetch)) {
        5:        5: 6124:         if (devinfo->gen < 6)
    #####:    #####: 6125:            emit_interpolation_setup_gen4();
        -:        -: 6126:         else
        5:        5: 6127:            emit_interpolation_setup_gen6();
        -:        -: 6128:      }
        -:        -: 6129:
        -:        -: 6130:      /* We handle discards by keeping track of the still-live pixels in f0.1.
        -:        -: 6131:       * Initialize it with the dispatched pixels.
        -:        -: 6132:       */
        5:        5: 6133:      if (wm_prog_data->uses_kill) {
    #####:    #####: 6134:         fs_inst *discard_init = bld.emit(FS_OPCODE_MOV_DISPATCH_TO_FLAGS);
    #####:    #####: 6135:         discard_init->flag_subreg = 1;
        -:        -: 6136:      }
        -:        -: 6137:
        -:        -: 6138:      /* Generate FS IR for main().  (the visitor only descends into
        -:        -: 6139:       * functions called "main").
        -:        -: 6140:       */
        5:        5: 6141:      emit_nir_code();
        -:        -: 6142:
        5:        5: 6143:      if (failed)
    #####:    #####: 6144:	 return false;
        -:        -: 6145:
        5:        5: 6146:      if (wm_prog_data->uses_kill)
    #####:    #####: 6147:         bld.emit(FS_OPCODE_PLACEHOLDER_HALT);
        -:        -: 6148:
        5:        5: 6149:      if (wm_key->alpha_test_func)
    #####:    #####: 6150:         emit_alpha_test();
        -:        -: 6151:
        5:        5: 6152:      emit_fb_writes();
        -:        -: 6153:
        5:        5: 6154:      if (shader_time_index >= 0)
    #####:    #####: 6155:         emit_shader_time_end();
        -:        -: 6156:
        5:        5: 6157:      calculate_cfg();
        -:        -: 6158:
        5:        5: 6159:      optimize();
        -:        -: 6160:
        5:        5: 6161:      assign_curb_setup();
        5:        5: 6162:      assign_urb_setup();
        -:        -: 6163:
        5:        5: 6164:      fixup_3src_null_dest();
        5:        5: 6165:      allocate_registers(allow_spilling);
        -:        -: 6166:
        5:        5: 6167:      if (failed)
    #####:    #####: 6168:         return false;
        -:        -: 6169:   }
        -:        -: 6170:
        6:        6: 6171:   return !failed;
        -:        -: 6172:}
        -:        -: 6173:
        -:        -: 6174:bool
    #####:    #####: 6175:fs_visitor::run_cs()
        -:        -: 6176:{
    #####:    #####: 6177:   assert(stage == MESA_SHADER_COMPUTE);
        -:        -: 6178:
    #####:    #####: 6179:   setup_cs_payload();
        -:        -: 6180:
    #####:    #####: 6181:   if (shader_time_index >= 0)
    #####:    #####: 6182:      emit_shader_time_begin();
        -:        -: 6183:
    #####:    #####: 6184:   if (devinfo->is_haswell && prog_data->total_shared > 0) {
        -:        -: 6185:      /* Move SLM index from g0.0[27:24] to sr0.1[11:8] */
    #####:    #####: 6186:      const fs_builder abld = bld.exec_all().group(1, 0);
    #####:    #####: 6187:      abld.MOV(retype(brw_sr0_reg(1), BRW_REGISTER_TYPE_UW),
    #####:    #####: 6188:               suboffset(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW), 1));
        -:        -: 6189:   }
        -:        -: 6190:
    #####:    #####: 6191:   emit_nir_code();
        -:        -: 6192:
    #####:    #####: 6193:   if (failed)
    #####:    #####: 6194:      return false;
        -:        -: 6195:
    #####:    #####: 6196:   emit_cs_terminate();
        -:        -: 6197:
    #####:    #####: 6198:   if (shader_time_index >= 0)
    #####:    #####: 6199:      emit_shader_time_end();
        -:        -: 6200:
    #####:    #####: 6201:   calculate_cfg();
        -:        -: 6202:
    #####:    #####: 6203:   optimize();
        -:        -: 6204:
    #####:    #####: 6205:   assign_curb_setup();
        -:        -: 6206:
    #####:    #####: 6207:   fixup_3src_null_dest();
    #####:    #####: 6208:   allocate_registers(true);
        -:        -: 6209:
    #####:    #####: 6210:   if (failed)
    #####:    #####: 6211:      return false;
        -:        -: 6212:
    #####:    #####: 6213:   return !failed;
        -:        -: 6214:}
        -:        -: 6215:
        -:        -: 6216:/**
        -:        -: 6217: * Return a bitfield where bit n is set if barycentric interpolation mode n
        -:        -: 6218: * (see enum brw_barycentric_mode) is needed by the fragment shader.
        -:        -: 6219: *
        -:        -: 6220: * We examine the load_barycentric intrinsics rather than looking at input
        -:        -: 6221: * variables so that we catch interpolateAtCentroid() messages too, which
        -:        -: 6222: * also need the BRW_BARYCENTRIC_[NON]PERSPECTIVE_CENTROID mode set up.
        -:        -: 6223: */
        -:        -: 6224:static unsigned
        3:        3: 6225:brw_compute_barycentric_interp_modes(const struct gen_device_info *devinfo,
        -:        -: 6226:                                     const nir_shader *shader)
        -:        -: 6227:{
        3:        3: 6228:   unsigned barycentric_interp_modes = 0;
        -:        -: 6229:
        6:        6: 6230:   nir_foreach_function(f, shader) {
        3:        3: 6231:      if (!f->impl)
    #####:    #####: 6232:         continue;
        -:        -: 6233:
       37:       53: 6234:      nir_foreach_block(block, f->impl) {
      124:      146: 6235:         nir_foreach_instr(instr, block) {
       90:       96: 6236:            if (instr->type != nir_instr_type_intrinsic)
       73:       79: 6237:               continue;
        -:        -: 6238:
       17:       17: 6239:            nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       17:       17: 6240:            if (intrin->intrinsic != nir_intrinsic_load_interpolated_input)
       15:       15: 6241:               continue;
        -:        -: 6242:
        -:        -: 6243:            /* Ignore WPOS; it doesn't require interpolation. */
        2:        2: 6244:            if (nir_intrinsic_base(intrin) == VARYING_SLOT_POS)
        1:        1: 6245:               continue;
        -:        -: 6246:
        1:        1: 6247:            intrin = nir_instr_as_intrinsic(intrin->src[0].ssa->parent_instr);
        -:        -: 6248:            enum glsl_interp_mode interp = (enum glsl_interp_mode)
        1:        1: 6249:               nir_intrinsic_interp_mode(intrin);
        1:        1: 6250:            nir_intrinsic_op bary_op = intrin->intrinsic;
        -:        -: 6251:            enum brw_barycentric_mode bary =
        1:        1: 6252:               brw_barycentric_mode(interp, bary_op);
        -:        -: 6253:
        1:        1: 6254:            barycentric_interp_modes |= 1 << bary;
        -:        -: 6255:
        1:        1: 6256:            if (devinfo->needs_unlit_centroid_workaround &&
        -:        -: 6257:                bary_op == nir_intrinsic_load_barycentric_centroid)
    #####:    #####: 6258:               barycentric_interp_modes |= 1 << centroid_to_pixel(bary);
        -:        -: 6259:         }
        -:        -: 6260:      }
        -:        -: 6261:   }
        -:        -: 6262:
        3:        3: 6263:   return barycentric_interp_modes;
        -:        -: 6264:}
        -:        -: 6265:
        -:        -: 6266:static void
        3:        3: 6267:brw_compute_flat_inputs(struct brw_wm_prog_data *prog_data,
        -:        -: 6268:                        const nir_shader *shader)
        -:        -: 6269:{
        3:        3: 6270:   prog_data->flat_inputs = 0;
        -:        -: 6271:
        6:        6: 6272:   nir_foreach_variable(var, &shader->inputs) {
        3:        3: 6273:      int input_index = prog_data->urb_setup[var->data.location];
        -:        -: 6274:
        3:        3: 6275:      if (input_index < 0)
        1:        1: 6276:	 continue;
        -:        -: 6277:
        -:        -: 6278:      /* flat shading */
        2:        2: 6279:      if (var->data.interpolation == INTERP_MODE_FLAT)
        1:        1: 6280:         prog_data->flat_inputs |= (1 << input_index);
        -:        -: 6281:   }
        3:        3: 6282:}
        -:        -: 6283:
        -:        -: 6284:static uint8_t
        3:        3: 6285:computed_depth_mode(const nir_shader *shader)
        -:        -: 6286:{
        3:        3: 6287:   if (shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) {
    #####:    #####: 6288:      switch (shader->info->fs.depth_layout) {
        -:        -: 6289:      case FRAG_DEPTH_LAYOUT_NONE:
        -:        -: 6290:      case FRAG_DEPTH_LAYOUT_ANY:
    #####:    #####: 6291:         return BRW_PSCDEPTH_ON;
        -:        -: 6292:      case FRAG_DEPTH_LAYOUT_GREATER:
    #####:    #####: 6293:         return BRW_PSCDEPTH_ON_GE;
        -:        -: 6294:      case FRAG_DEPTH_LAYOUT_LESS:
    #####:    #####: 6295:         return BRW_PSCDEPTH_ON_LE;
        -:        -: 6296:      case FRAG_DEPTH_LAYOUT_UNCHANGED:
    #####:    #####: 6297:         return BRW_PSCDEPTH_OFF;
        -:        -: 6298:      }
        -:        -: 6299:   }
        3:        3: 6300:   return BRW_PSCDEPTH_OFF;
        -:        -: 6301:}
        -:        -: 6302:
        -:        -: 6303:/**
        -:        -: 6304: * Move load_interpolated_input with simple (payload-based) barycentric modes
        -:        -: 6305: * to the top of the program so we don't emit multiple PLNs for the same input.
        -:        -: 6306: *
        -:        -: 6307: * This works around CSE not being able to handle non-dominating cases
        -:        -: 6308: * such as:
        -:        -: 6309: *
        -:        -: 6310: *    if (...) {
        -:        -: 6311: *       interpolate input
        -:        -: 6312: *    } else {
        -:        -: 6313: *       interpolate the same exact input
        -:        -: 6314: *    }
        -:        -: 6315: *
        -:        -: 6316: * This should be replaced by global value numbering someday.
        -:        -: 6317: */
        -:        -: 6318:static bool
        3:        3: 6319:move_interpolation_to_top(nir_shader *nir)
        -:        -: 6320:{
        3:        3: 6321:   bool progress = false;
        -:        -: 6322:
        6:        6: 6323:   nir_foreach_function(f, nir) {
        3:        3: 6324:      if (!f->impl)
    #####:    #####: 6325:         continue;
        -:        -: 6326:
        3:        3: 6327:      nir_block *top = nir_start_block(f->impl);
        3:        3: 6328:      exec_node *cursor_node = NULL;
        -:        -: 6329:
       37:       53: 6330:      nir_foreach_block(block, f->impl) {
       34:       50: 6331:         if (block == top)
        3:        3: 6332:            continue;
        -:        -: 6333:
      180:      252: 6334:         nir_foreach_instr_safe(instr, block) {
      149:      205: 6335:            if (instr->type != nir_instr_type_intrinsic)
      274:      372: 6336:               continue;
        -:        -: 6337:
       20:       30: 6338:            nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       20:       30: 6339:            if (intrin->intrinsic != nir_intrinsic_load_interpolated_input)
       16:       22: 6340:               continue;
        -:        -: 6341:            nir_intrinsic_instr *bary_intrinsic =
        4:        8: 6342:               nir_instr_as_intrinsic(intrin->src[0].ssa->parent_instr);
        4:        8: 6343:            nir_intrinsic_op op = bary_intrinsic->intrinsic;
        -:        -: 6344:
        -:        -: 6345:            /* Leave interpolateAtSample/Offset() where they are. */
        4:        8: 6346:            if (op == nir_intrinsic_load_barycentric_at_sample ||
        -:        -: 6347:                op == nir_intrinsic_load_barycentric_at_offset)
    #####:    #####: 6348:               continue;
        -:        -: 6349:
        -:        -: 6350:            nir_instr *move[3] = {
        -:        -: 6351:               &bary_intrinsic->instr,
        4:        8: 6352:               intrin->src[1].ssa->parent_instr,
        -:        -: 6353:               instr
        8:       16: 6354:            };
        -:        -: 6355:
       16:       32: 6356:            for (unsigned i = 0; i < ARRAY_SIZE(move); i++) {
       12:       24: 6357:               if (move[i]->block != top) {
       12:       24: 6358:                  move[i]->block = top;
       12:       24: 6359:                  exec_node_remove(&move[i]->node);
       12:       24: 6360:                  if (cursor_node) {
       11:       23: 6361:                     exec_node_insert_after(cursor_node, &move[i]->node);
        -:        -: 6362:                  } else {
        1:        1: 6363:                     exec_list_push_head(&top->instr_list, &move[i]->node);
        -:        -: 6364:                  }
       12:       24: 6365:                  cursor_node = &move[i]->node;
       12:       24: 6366:                  progress = true;
        -:        -: 6367:               }
        -:        -: 6368:            }
        -:        -: 6369:         }
        -:        -: 6370:      }
        3:        3: 6371:      nir_metadata_preserve(f->impl, (nir_metadata)
        -:        -: 6372:                            ((unsigned) nir_metadata_block_index |
        3:        3: 6373:                             (unsigned) nir_metadata_dominance));
        -:        -: 6374:   }
        -:        -: 6375:
        3:        3: 6376:   return progress;
        -:        -: 6377:}
        -:        -: 6378:
        -:        -: 6379:/**
        -:        -: 6380: * Demote per-sample barycentric intrinsics to centroid.
        -:        -: 6381: *
        -:        -: 6382: * Useful when rendering to a non-multisampled buffer.
        -:        -: 6383: */
        -:        -: 6384:static bool
        3:        3: 6385:demote_sample_qualifiers(nir_shader *nir)
        -:        -: 6386:{
        3:        3: 6387:   bool progress = true;
        -:        -: 6388:
        6:        6: 6389:   nir_foreach_function(f, nir) {
        3:        3: 6390:      if (!f->impl)
    #####:    #####: 6391:         continue;
        -:        -: 6392:
        -:        -: 6393:      nir_builder b;
        3:        3: 6394:      nir_builder_init(&b, f->impl);
        -:        -: 6395:
       37:       53: 6396:      nir_foreach_block(block, f->impl) {
      217:      289: 6397:         nir_foreach_instr_safe(instr, block) {
      183:      239: 6398:            if (instr->type != nir_instr_type_intrinsic)
      154:      200: 6399:               continue;
        -:        -: 6400:
       29:       39: 6401:            nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       58:       78: 6402:            if (intrin->intrinsic != nir_intrinsic_load_barycentric_sample &&
       29:       39: 6403:                intrin->intrinsic != nir_intrinsic_load_barycentric_at_sample)
       29:       39: 6404:               continue;
        -:        -: 6405:
    #####:    #####: 6406:            b.cursor = nir_before_instr(instr);
        -:        -: 6407:            nir_ssa_def *centroid =
    #####:    #####: 6408:               nir_load_barycentric(&b, nir_intrinsic_load_barycentric_centroid,
    #####:    #####: 6409:                                    nir_intrinsic_interp_mode(intrin));
    #####:    #####: 6410:            nir_ssa_def_rewrite_uses(&intrin->dest.ssa,
    #####:    #####: 6411:                                     nir_src_for_ssa(centroid));
    #####:    #####: 6412:            nir_instr_remove(instr);
    #####:    #####: 6413:            progress = true;
        -:        -: 6414:         }
        -:        -: 6415:      }
        -:        -: 6416:
        3:        3: 6417:      nir_metadata_preserve(f->impl, (nir_metadata)
        -:        -: 6418:                            ((unsigned) nir_metadata_block_index |
        3:        3: 6419:                             (unsigned) nir_metadata_dominance));
        -:        -: 6420:   }
        -:        -: 6421:
        3:        3: 6422:   return progress;
        -:        -: 6423:}
        -:        -: 6424:
        -:        -: 6425:/**
        -:        -: 6426: * Pre-gen6, the register file of the EUs was shared between threads,
        -:        -: 6427: * and each thread used some subset allocated on a 16-register block
        -:        -: 6428: * granularity.  The unit states wanted these block counts.
        -:        -: 6429: */
        -:        -: 6430:static inline int
        5:        5: 6431:brw_register_blocks(int reg_count)
        -:        -: 6432:{
        5:        5: 6433:   return ALIGN(reg_count, 16) / 16 - 1;
        -:        -: 6434:}
        -:        -: 6435:
        -:        -: 6436:const unsigned *
        3:        3: 6437:brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
        -:        -: 6438:               void *mem_ctx,
        -:        -: 6439:               const struct brw_wm_prog_key *key,
        -:        -: 6440:               struct brw_wm_prog_data *prog_data,
        -:        -: 6441:               const nir_shader *src_shader,
        -:        -: 6442:               struct gl_program *prog,
        -:        -: 6443:               int shader_time_index8, int shader_time_index16,
        -:        -: 6444:               bool allow_spilling,
        -:        -: 6445:               bool use_rep_send, struct brw_vue_map *vue_map,
        -:        -: 6446:               unsigned *final_assembly_size,
        -:        -: 6447:               char **error_str)
        -:        -: 6448:{
        3:        3: 6449:   const struct gen_device_info *devinfo = compiler->devinfo;
        -:        -: 6450:
        3:        3: 6451:   nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
        3:        3: 6452:   shader = brw_nir_apply_sampler_key(shader, compiler, &key->tex, true);
        3:        3: 6453:   brw_nir_lower_fs_inputs(shader, devinfo, key);
        3:        3: 6454:   brw_nir_lower_fs_outputs(shader);
        -:        -: 6455:
        3:        3: 6456:   if (devinfo->gen < 6) {
    #####:    #####: 6457:      brw_setup_vue_interpolation(vue_map, shader, prog_data, devinfo);
        -:        -: 6458:   }
        -:        -: 6459:
        3:        3: 6460:   if (!key->multisample_fbo)
        3:        3: 6461:      NIR_PASS_V(shader, demote_sample_qualifiers);
        3:        3: 6462:   NIR_PASS_V(shader, move_interpolation_to_top);
        3:        3: 6463:   shader = brw_postprocess_nir(shader, compiler, true);
        -:        -: 6464:
        -:        -: 6465:   /* key->alpha_test_func means simulating alpha testing via discards,
        -:        -: 6466:    * so the shader definitely kills pixels.
        -:        -: 6467:    */
        6:        6: 6468:   prog_data->uses_kill = shader->info->fs.uses_discard ||
        6:        6: 6469:      key->alpha_test_func;
        3:        3: 6470:   prog_data->uses_omask = key->multisample_fbo &&
        3:        3: 6471:      shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK);
        3:        3: 6472:   prog_data->computed_depth_mode = computed_depth_mode(shader);
        -:        -: 6473:   prog_data->computed_stencil =
        3:        3: 6474:      shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL);
        -:        -: 6475:
        -:        -: 6476:   prog_data->persample_dispatch =
        3:        3: 6477:      key->multisample_fbo &&
    #####:    #####: 6478:      (key->persample_interp ||
    #####:    #####: 6479:       (shader->info->system_values_read & (SYSTEM_BIT_SAMPLE_ID |
    #####:    #####: 6480:                                            SYSTEM_BIT_SAMPLE_POS)) ||
    #####:    #####: 6481:       shader->info->fs.uses_sample_qualifier ||
        3:        3: 6482:       shader->info->outputs_read);
        -:        -: 6483:
        3:        3: 6484:   prog_data->early_fragment_tests = shader->info->fs.early_fragment_tests;
        3:        3: 6485:   prog_data->post_depth_coverage = shader->info->fs.post_depth_coverage;
        3:        3: 6486:   prog_data->inner_coverage = shader->info->fs.inner_coverage;
        -:        -: 6487:
        -:        -: 6488:   prog_data->barycentric_interp_modes =
        3:        3: 6489:      brw_compute_barycentric_interp_modes(compiler->devinfo, shader);
        -:        -: 6490:
        3:        3: 6491:   cfg_t *simd8_cfg = NULL, *simd16_cfg = NULL;
        3:        3: 6492:   uint8_t simd8_grf_start = 0, simd16_grf_start = 0;
        3:        3: 6493:   unsigned simd8_grf_used = 0, simd16_grf_used = 0;
        -:        -: 6494:
        -:        -: 6495:   fs_visitor v8(compiler, log_data, mem_ctx, key,
        -:        -: 6496:                 &prog_data->base, prog, shader, 8,
        6:        6: 6497:                 shader_time_index8);
        3:        3: 6498:   if (!v8.run_fs(allow_spilling, false /* do_rep_send */)) {
    #####:    #####: 6499:      if (error_str)
    #####:    #####: 6500:         *error_str = ralloc_strdup(mem_ctx, v8.fail_msg);
        -:        -: 6501:
    #####:    #####: 6502:      return NULL;
        3:        3: 6503:   } else if (likely(!(INTEL_DEBUG & DEBUG_NO8))) {
        3:        3: 6504:      simd8_cfg = v8.cfg;
        3:        3: 6505:      simd8_grf_start = v8.payload.num_regs;
        3:        3: 6506:      simd8_grf_used = v8.grf_used;
        -:        -: 6507:   }
        -:        -: 6508:
        6:        6: 6509:   if (v8.max_dispatch_width >= 16 &&
        3:        3: 6510:       likely(!(INTEL_DEBUG & DEBUG_NO16) || use_rep_send)) {
        -:        -: 6511:      /* Try a SIMD16 compile */
        -:        -: 6512:      fs_visitor v16(compiler, log_data, mem_ctx, key,
        -:        -: 6513:                     &prog_data->base, prog, shader, 16,
        6:        6: 6514:                     shader_time_index16);
        3:        3: 6515:      v16.import_uniforms(&v8);
        3:        3: 6516:      if (!v16.run_fs(allow_spilling, use_rep_send)) {
    #####:    #####: 6517:         compiler->shader_perf_log(log_data,
        -:        -: 6518:                                   "SIMD16 shader failed to compile: %s",
    #####:    #####: 6519:                                   v16.fail_msg);
        -:        -: 6520:      } else {
        3:        3: 6521:         simd16_cfg = v16.cfg;
        3:        3: 6522:         simd16_grf_start = v16.payload.num_regs;
        3:        3: 6523:         simd16_grf_used = v16.grf_used;
        -:        -: 6524:      }
        -:        -: 6525:   }
        -:        -: 6526:
        -:        -: 6527:   /* When the caller requests a repclear shader, they want SIMD16-only */
        3:        3: 6528:   if (use_rep_send)
        1:        1: 6529:      simd8_cfg = NULL;
        -:        -: 6530:
        -:        -: 6531:   /* Prior to Iron Lake, the PS had a single shader offset with a jump table
        -:        -: 6532:    * at the top to select the shader.  We've never implemented that.
        -:        -: 6533:    * Instead, we just give them exactly one shader and we pick the widest one
        -:        -: 6534:    * available.
        -:        -: 6535:    */
        3:        3: 6536:   if (compiler->devinfo->gen < 5 && simd16_cfg)
    #####:    #####: 6537:      simd8_cfg = NULL;
        -:        -: 6538:
        3:        3: 6539:   if (prog_data->persample_dispatch) {
        -:        -: 6540:      /* Starting with SandyBridge (where we first get MSAA), the different
        -:        -: 6541:       * pixel dispatch combinations are grouped into classifications A
        -:        -: 6542:       * through F (SNB PRM Vol. 2 Part 1 Section 7.7.1).  On all hardware
        -:        -: 6543:       * generations, the only configurations supporting persample dispatch
        -:        -: 6544:       * are are this in which only one dispatch width is enabled.
        -:        -: 6545:       *
        -:        -: 6546:       * If computed depth is enabled, SNB only allows SIMD8 while IVB+
        -:        -: 6547:       * allow SIMD8 or SIMD16 so we choose SIMD16 if available.
        -:        -: 6548:       */
    #####:    #####: 6549:      if (compiler->devinfo->gen == 6 &&
    #####:    #####: 6550:          prog_data->computed_depth_mode != BRW_PSCDEPTH_OFF) {
    #####:    #####: 6551:         simd16_cfg = NULL;
    #####:    #####: 6552:      } else if (simd16_cfg) {
    #####:    #####: 6553:         simd8_cfg = NULL;
        -:        -: 6554:      }
        -:        -: 6555:   }
        -:        -: 6556:
        -:        -: 6557:   /* We have to compute the flat inputs after the visitor is finished running
        -:        -: 6558:    * because it relies on prog_data->urb_setup which is computed in
        -:        -: 6559:    * fs_visitor::calculate_urb_setup().
        -:        -: 6560:    */
        3:        3: 6561:   brw_compute_flat_inputs(prog_data, shader);
        -:        -: 6562:
        -:        -: 6563:   fs_generator g(compiler, log_data, mem_ctx, (void *) key, &prog_data->base,
        3:        3: 6564:                  v8.promoted_constants, v8.runtime_check_aads_emit,
        6:        6: 6565:                  MESA_SHADER_FRAGMENT);
        -:        -: 6566:
        3:        3: 6567:   if (unlikely(INTEL_DEBUG & DEBUG_WM)) {
    #####:    #####: 6568:      g.enable_debug(ralloc_asprintf(mem_ctx, "%s fragment shader %s",
    #####:    #####: 6569:                                     shader->info->label ?
    #####:    #####: 6570:                                        shader->info->label : "unnamed",
    #####:    #####: 6571:                                     shader->info->name));
        -:        -: 6572:   }
        -:        -: 6573:
        3:        3: 6574:   if (simd8_cfg) {
        2:        2: 6575:      prog_data->dispatch_8 = true;
        2:        2: 6576:      g.generate_code(simd8_cfg, 8);
        2:        2: 6577:      prog_data->base.dispatch_grf_start_reg = simd8_grf_start;
        2:        2: 6578:      prog_data->reg_blocks_0 = brw_register_blocks(simd8_grf_used);
        -:        -: 6579:
        2:        2: 6580:      if (simd16_cfg) {
        2:        2: 6581:         prog_data->dispatch_16 = true;
        2:        2: 6582:         prog_data->prog_offset_2 = g.generate_code(simd16_cfg, 16);
        2:        2: 6583:         prog_data->dispatch_grf_start_reg_2 = simd16_grf_start;
        2:        2: 6584:         prog_data->reg_blocks_2 = brw_register_blocks(simd16_grf_used);
        -:        -: 6585:      }
        1:        1: 6586:   } else if (simd16_cfg) {
        1:        1: 6587:      prog_data->dispatch_16 = true;
        1:        1: 6588:      g.generate_code(simd16_cfg, 16);
        1:        1: 6589:      prog_data->base.dispatch_grf_start_reg = simd16_grf_start;
        1:        1: 6590:      prog_data->reg_blocks_0 = brw_register_blocks(simd16_grf_used);
        -:        -: 6591:   }
        -:        -: 6592:
        3:        3: 6593:   return g.get_assembly(final_assembly_size);
        -:        -: 6594:}
        -:        -: 6595:
        -:        -: 6596:fs_reg *
    #####:    #####: 6597:fs_visitor::emit_cs_work_group_id_setup()
        -:        -: 6598:{
    #####:    #####: 6599:   assert(stage == MESA_SHADER_COMPUTE);
        -:        -: 6600:
    #####:    #####: 6601:   fs_reg *reg = new(this->mem_ctx) fs_reg(vgrf(glsl_type::uvec3_type));
        -:        -: 6602:
    #####:    #####: 6603:   struct brw_reg r0_1(retype(brw_vec1_grf(0, 1), BRW_REGISTER_TYPE_UD));
    #####:    #####: 6604:   struct brw_reg r0_6(retype(brw_vec1_grf(0, 6), BRW_REGISTER_TYPE_UD));
    #####:    #####: 6605:   struct brw_reg r0_7(retype(brw_vec1_grf(0, 7), BRW_REGISTER_TYPE_UD));
        -:        -: 6606:
    #####:    #####: 6607:   bld.MOV(*reg, r0_1);
    #####:    #####: 6608:   bld.MOV(offset(*reg, bld, 1), r0_6);
    #####:    #####: 6609:   bld.MOV(offset(*reg, bld, 2), r0_7);
        -:        -: 6610:
    #####:    #####: 6611:   return reg;
        -:        -: 6612:}
        -:        -: 6613:
        -:        -: 6614:static void
    #####:    #####: 6615:fill_push_const_block_info(struct brw_push_const_block *block, unsigned dwords)
        -:        -: 6616:{
    #####:    #####: 6617:   block->dwords = dwords;
    #####:    #####: 6618:   block->regs = DIV_ROUND_UP(dwords, 8);
    #####:    #####: 6619:   block->size = block->regs * 32;
    #####:    #####: 6620:}
        -:        -: 6621:
        -:        -: 6622:static void
    #####:    #####: 6623:cs_fill_push_const_info(const struct gen_device_info *devinfo,
        -:        -: 6624:                        struct brw_cs_prog_data *cs_prog_data)
        -:        -: 6625:{
    #####:    #####: 6626:   const struct brw_stage_prog_data *prog_data = &cs_prog_data->base;
        -:        -: 6627:   bool fill_thread_id =
    #####:    #####: 6628:      cs_prog_data->thread_local_id_index >= 0 &&
    #####:    #####: 6629:      cs_prog_data->thread_local_id_index < (int)prog_data->nr_params;
    #####:    #####: 6630:   bool cross_thread_supported = devinfo->gen > 7 || devinfo->is_haswell;
        -:        -: 6631:
        -:        -: 6632:   /* The thread ID should be stored in the last param dword */
    #####:    #####: 6633:   assert(prog_data->nr_params > 0 || !fill_thread_id);
    #####:    #####: 6634:   assert(!fill_thread_id ||
        -:        -: 6635:          cs_prog_data->thread_local_id_index ==
    #####:    #####: 6636:             (int)prog_data->nr_params - 1);
        -:        -: 6637:
        -:        -: 6638:   unsigned cross_thread_dwords, per_thread_dwords;
    #####:    #####: 6639:   if (!cross_thread_supported) {
    #####:    #####: 6640:      cross_thread_dwords = 0u;
    #####:    #####: 6641:      per_thread_dwords = prog_data->nr_params;
    #####:    #####: 6642:   } else if (fill_thread_id) {
        -:        -: 6643:      /* Fill all but the last register with cross-thread payload */
    #####:    #####: 6644:      cross_thread_dwords = 8 * (cs_prog_data->thread_local_id_index / 8);
    #####:    #####: 6645:      per_thread_dwords = prog_data->nr_params - cross_thread_dwords;
    #####:    #####: 6646:      assert(per_thread_dwords > 0 && per_thread_dwords <= 8);
        -:        -: 6647:   } else {
        -:        -: 6648:      /* Fill all data using cross-thread payload */
    #####:    #####: 6649:      cross_thread_dwords = prog_data->nr_params;
    #####:    #####: 6650:      per_thread_dwords = 0u;
        -:        -: 6651:   }
        -:        -: 6652:
    #####:    #####: 6653:   fill_push_const_block_info(&cs_prog_data->push.cross_thread, cross_thread_dwords);
    #####:    #####: 6654:   fill_push_const_block_info(&cs_prog_data->push.per_thread, per_thread_dwords);
        -:        -: 6655:
        -:        -: 6656:   unsigned total_dwords =
    #####:    #####: 6657:      (cs_prog_data->push.per_thread.size * cs_prog_data->threads +
    #####:    #####: 6658:       cs_prog_data->push.cross_thread.size) / 4;
    #####:    #####: 6659:   fill_push_const_block_info(&cs_prog_data->push.total, total_dwords);
        -:        -: 6660:
    #####:    #####: 6661:   assert(cs_prog_data->push.cross_thread.dwords % 8 == 0 ||
    #####:    #####: 6662:          cs_prog_data->push.per_thread.size == 0);
    #####:    #####: 6663:   assert(cs_prog_data->push.cross_thread.dwords +
        -:        -: 6664:          cs_prog_data->push.per_thread.dwords ==
    #####:    #####: 6665:             prog_data->nr_params);
    #####:    #####: 6666:}
        -:        -: 6667:
        -:        -: 6668:static void
    #####:    #####: 6669:cs_set_simd_size(struct brw_cs_prog_data *cs_prog_data, unsigned size)
        -:        -: 6670:{
    #####:    #####: 6671:   cs_prog_data->simd_size = size;
    #####:    #####: 6672:   unsigned group_size = cs_prog_data->local_size[0] *
    #####:    #####: 6673:      cs_prog_data->local_size[1] * cs_prog_data->local_size[2];
    #####:    #####: 6674:   cs_prog_data->threads = (group_size + size - 1) / size;
    #####:    #####: 6675:}
        -:        -: 6676:
        -:        -: 6677:const unsigned *
    #####:    #####: 6678:brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
        -:        -: 6679:               void *mem_ctx,
        -:        -: 6680:               const struct brw_cs_prog_key *key,
        -:        -: 6681:               struct brw_cs_prog_data *prog_data,
        -:        -: 6682:               const nir_shader *src_shader,
        -:        -: 6683:               int shader_time_index,
        -:        -: 6684:               unsigned *final_assembly_size,
        -:        -: 6685:               char **error_str)
        -:        -: 6686:{
    #####:    #####: 6687:   nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
    #####:    #####: 6688:   shader = brw_nir_apply_sampler_key(shader, compiler, &key->tex, true);
    #####:    #####: 6689:   brw_nir_lower_cs_shared(shader);
    #####:    #####: 6690:   prog_data->base.total_shared += shader->num_shared;
        -:        -: 6691:
        -:        -: 6692:   /* Now that we cloned the nir_shader, we can update num_uniforms based on
        -:        -: 6693:    * the thread_local_id_index.
        -:        -: 6694:    */
    #####:    #####: 6695:   assert(prog_data->thread_local_id_index >= 0);
        -:        -: 6696:   shader->num_uniforms =
    #####:    #####: 6697:      MAX2(shader->num_uniforms,
    #####:    #####: 6698:           (unsigned)4 * (prog_data->thread_local_id_index + 1));
        -:        -: 6699:
    #####:    #####: 6700:   brw_nir_lower_intrinsics(shader, &prog_data->base);
    #####:    #####: 6701:   shader = brw_postprocess_nir(shader, compiler, true);
        -:        -: 6702:
    #####:    #####: 6703:   prog_data->local_size[0] = shader->info->cs.local_size[0];
    #####:    #####: 6704:   prog_data->local_size[1] = shader->info->cs.local_size[1];
    #####:    #####: 6705:   prog_data->local_size[2] = shader->info->cs.local_size[2];
        -:        -: 6706:   unsigned local_workgroup_size =
    #####:    #####: 6707:      shader->info->cs.local_size[0] * shader->info->cs.local_size[1] *
    #####:    #####: 6708:      shader->info->cs.local_size[2];
        -:        -: 6709:
    #####:    #####: 6710:   unsigned max_cs_threads = compiler->devinfo->max_cs_threads;
    #####:    #####: 6711:   unsigned simd_required = DIV_ROUND_UP(local_workgroup_size, max_cs_threads);
        -:        -: 6712:
    #####:    #####: 6713:   cfg_t *cfg = NULL;
    #####:    #####: 6714:   const char *fail_msg = NULL;
        -:        -: 6715:
        -:        -: 6716:   /* Now the main event: Visit the shader IR and generate our CS IR for it.
        -:        -: 6717:    */
        -:        -: 6718:   fs_visitor v8(compiler, log_data, mem_ctx, key, &prog_data->base,
        -:        -: 6719:                 NULL, /* Never used in core profile */
    #####:    #####: 6720:                 shader, 8, shader_time_index);
    #####:    #####: 6721:   if (simd_required <= 8) {
    #####:    #####: 6722:      if (!v8.run_cs()) {
    #####:    #####: 6723:         fail_msg = v8.fail_msg;
        -:        -: 6724:      } else {
    #####:    #####: 6725:         cfg = v8.cfg;
    #####:    #####: 6726:         cs_set_simd_size(prog_data, 8);
    #####:    #####: 6727:         cs_fill_push_const_info(compiler->devinfo, prog_data);
    #####:    #####: 6728:         prog_data->base.dispatch_grf_start_reg = v8.payload.num_regs;
        -:        -: 6729:      }
        -:        -: 6730:   }
        -:        -: 6731:
        -:        -: 6732:   fs_visitor v16(compiler, log_data, mem_ctx, key, &prog_data->base,
        -:        -: 6733:                 NULL, /* Never used in core profile */
    #####:    #####: 6734:                 shader, 16, shader_time_index);
    #####:    #####: 6735:   if (likely(!(INTEL_DEBUG & DEBUG_NO16)) &&
    #####:    #####: 6736:       !fail_msg && v8.max_dispatch_width >= 16 &&
        -:        -: 6737:       simd_required <= 16) {
        -:        -: 6738:      /* Try a SIMD16 compile */
    #####:    #####: 6739:      if (simd_required <= 8)
    #####:    #####: 6740:         v16.import_uniforms(&v8);
    #####:    #####: 6741:      if (!v16.run_cs()) {
    #####:    #####: 6742:         compiler->shader_perf_log(log_data,
        -:        -: 6743:                                   "SIMD16 shader failed to compile: %s",
    #####:    #####: 6744:                                   v16.fail_msg);
    #####:    #####: 6745:         if (!cfg) {
        -:        -: 6746:            fail_msg =
        -:        -: 6747:               "Couldn't generate SIMD16 program and not "
    #####:    #####: 6748:               "enough threads for SIMD8";
        -:        -: 6749:         }
        -:        -: 6750:      } else {
    #####:    #####: 6751:         cfg = v16.cfg;
    #####:    #####: 6752:         cs_set_simd_size(prog_data, 16);
    #####:    #####: 6753:         cs_fill_push_const_info(compiler->devinfo, prog_data);
    #####:    #####: 6754:         prog_data->dispatch_grf_start_reg_16 = v16.payload.num_regs;
        -:        -: 6755:      }
        -:        -: 6756:   }
        -:        -: 6757:
        -:        -: 6758:   fs_visitor v32(compiler, log_data, mem_ctx, key, &prog_data->base,
        -:        -: 6759:                 NULL, /* Never used in core profile */
    #####:    #####: 6760:                 shader, 32, shader_time_index);
    #####:    #####: 6761:   if (!fail_msg && v8.max_dispatch_width >= 32 &&
    #####:    #####: 6762:       (simd_required > 16 || (INTEL_DEBUG & DEBUG_DO32))) {
        -:        -: 6763:      /* Try a SIMD32 compile */
    #####:    #####: 6764:      if (simd_required <= 8)
    #####:    #####: 6765:         v32.import_uniforms(&v8);
    #####:    #####: 6766:      else if (simd_required <= 16)
    #####:    #####: 6767:         v32.import_uniforms(&v16);
        -:        -: 6768:
    #####:    #####: 6769:      if (!v32.run_cs()) {
    #####:    #####: 6770:         compiler->shader_perf_log(log_data,
        -:        -: 6771:                                   "SIMD32 shader failed to compile: %s",
    #####:    #####: 6772:                                   v16.fail_msg);
    #####:    #####: 6773:         if (!cfg) {
        -:        -: 6774:            fail_msg =
        -:        -: 6775:               "Couldn't generate SIMD32 program and not "
    #####:    #####: 6776:               "enough threads for SIMD16";
        -:        -: 6777:         }
        -:        -: 6778:      } else {
    #####:    #####: 6779:         cfg = v32.cfg;
    #####:    #####: 6780:         cs_set_simd_size(prog_data, 32);
    #####:    #####: 6781:         cs_fill_push_const_info(compiler->devinfo, prog_data);
        -:        -: 6782:      }
        -:        -: 6783:   }
        -:        -: 6784:
    #####:    #####: 6785:   if (unlikely(cfg == NULL)) {
    #####:    #####: 6786:      assert(fail_msg);
    #####:    #####: 6787:      if (error_str)
    #####:    #####: 6788:         *error_str = ralloc_strdup(mem_ctx, fail_msg);
        -:        -: 6789:
    #####:    #####: 6790:      return NULL;
        -:        -: 6791:   }
        -:        -: 6792:
        -:        -: 6793:   fs_generator g(compiler, log_data, mem_ctx, (void*) key, &prog_data->base,
    #####:    #####: 6794:                  v8.promoted_constants, v8.runtime_check_aads_emit,
    #####:    #####: 6795:                  MESA_SHADER_COMPUTE);
    #####:    #####: 6796:   if (INTEL_DEBUG & DEBUG_CS) {
    #####:    #####: 6797:      char *name = ralloc_asprintf(mem_ctx, "%s compute shader %s",
    #####:    #####: 6798:                                   shader->info->label ? shader->info->label :
        -:        -: 6799:                                                        "unnamed",
    #####:    #####: 6800:                                   shader->info->name);
    #####:    #####: 6801:      g.enable_debug(name);
        -:        -: 6802:   }
        -:        -: 6803:
    #####:    #####: 6804:   g.generate_code(cfg, prog_data->simd_size);
        -:        -: 6805:
    #####:    #####: 6806:   return g.get_assembly(final_assembly_size);
        -:        -: 6807:}
        -:        -: 6808:
        -:        -: 6809:/**
        -:        -: 6810: * Test the dispatch mask packing assumptions of
        -:        -: 6811: * brw_stage_has_packed_dispatch().  Call this from e.g. the top of
        -:        -: 6812: * fs_visitor::emit_nir_code() to cause a GPU hang if any shader invocation is
        -:        -: 6813: * executed with an unexpected dispatch mask.
        -:        -: 6814: */
        -:        -: 6815:static UNUSED void
    #####:    #####: 6816:brw_fs_test_dispatch_packing(const fs_builder &bld)
        -:        -: 6817:{
    #####:    #####: 6818:   const gl_shader_stage stage = bld.shader->stage;
        -:        -: 6819:
    #####:    #####: 6820:   if (brw_stage_has_packed_dispatch(bld.shader->devinfo, stage,
    #####:    #####: 6821:                                     bld.shader->stage_prog_data)) {
    #####:    #####: 6822:      const fs_builder ubld = bld.exec_all().group(1, 0);
    #####:    #####: 6823:      const fs_reg tmp = component(bld.vgrf(BRW_REGISTER_TYPE_UD), 0);
        -:        -: 6824:      const fs_reg mask = (stage == MESA_SHADER_FRAGMENT ? brw_vmask_reg() :
    #####:    #####: 6825:                           brw_dmask_reg());
        -:        -: 6826:
    #####:    #####: 6827:      ubld.ADD(tmp, mask, brw_imm_ud(1));
    #####:    #####: 6828:      ubld.AND(tmp, mask, tmp);
        -:        -: 6829:
        -:        -: 6830:      /* This will loop forever if the dispatch mask doesn't have the expected
        -:        -: 6831:       * form '2^n-1', in which case tmp will be non-zero.
        -:        -: 6832:       */
    #####:    #####: 6833:      bld.emit(BRW_OPCODE_DO);
    #####:    #####: 6834:      bld.CMP(bld.null_reg_ud(), tmp, brw_imm_ud(0), BRW_CONDITIONAL_NZ);
    #####:    #####: 6835:      set_predicate(BRW_PREDICATE_NORMAL, bld.emit(BRW_OPCODE_WHILE));
        -:        -: 6836:   }
        3:        3: 6837:}

src/intel/brw_fs_cse.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cse.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_cse.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_cfg.h"
        -:        -:   26:
        -:        -:   27:/** @file brw_fs_cse.cpp
        -:        -:   28: *
        -:        -:   29: * Support for local common subexpression elimination.
        -:        -:   30: *
        -:        -:   31: * See Muchnick's Advanced Compiler Design and Implementation, section
        -:        -:   32: * 13.1 (p378).
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:using namespace brw;
        -:        -:   36:
        -:        -:   37:namespace {
        -:        -:   38:struct aeb_entry : public exec_node {
        -:        -:   39:   /** The instruction that generates the expression value. */
        -:        -:   40:   fs_inst *generator;
        -:        -:   41:
        -:        -:   42:   /** The temporary where the value is stored. */
        -:        -:   43:   fs_reg tmp;
        -:        -:   44:};
        -:        -:   45:}
        -:        -:   46:
        -:        -:   47:static bool
      930:     1239:   48:is_expression(const fs_visitor *v, const fs_inst *const inst)
        -:        -:   49:{
      930:     1239:   50:   switch (inst->opcode) {
        -:        -:   51:   case BRW_OPCODE_MOV:
        -:        -:   52:   case BRW_OPCODE_SEL:
        -:        -:   53:   case BRW_OPCODE_NOT:
        -:        -:   54:   case BRW_OPCODE_AND:
        -:        -:   55:   case BRW_OPCODE_OR:
        -:        -:   56:   case BRW_OPCODE_XOR:
        -:        -:   57:   case BRW_OPCODE_SHR:
        -:        -:   58:   case BRW_OPCODE_SHL:
        -:        -:   59:   case BRW_OPCODE_ASR:
        -:        -:   60:   case BRW_OPCODE_CMP:
        -:        -:   61:   case BRW_OPCODE_CMPN:
        -:        -:   62:   case BRW_OPCODE_ADD:
        -:        -:   63:   case BRW_OPCODE_MUL:
        -:        -:   64:   case SHADER_OPCODE_MULH:
        -:        -:   65:   case BRW_OPCODE_FRC:
        -:        -:   66:   case BRW_OPCODE_RNDU:
        -:        -:   67:   case BRW_OPCODE_RNDD:
        -:        -:   68:   case BRW_OPCODE_RNDE:
        -:        -:   69:   case BRW_OPCODE_RNDZ:
        -:        -:   70:   case BRW_OPCODE_LINE:
        -:        -:   71:   case BRW_OPCODE_PLN:
        -:        -:   72:   case BRW_OPCODE_MAD:
        -:        -:   73:   case BRW_OPCODE_LRP:
        -:        -:   74:   case FS_OPCODE_FB_READ_LOGICAL:
        -:        -:   75:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
        -:        -:   76:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL:
        -:        -:   77:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
        -:        -:   78:   case FS_OPCODE_CINTERP:
        -:        -:   79:   case FS_OPCODE_LINTERP:
        -:        -:   80:   case SHADER_OPCODE_FIND_LIVE_CHANNEL:
        -:        -:   81:   case SHADER_OPCODE_BROADCAST:
        -:        -:   82:   case SHADER_OPCODE_MOV_INDIRECT:
        -:        -:   83:   case SHADER_OPCODE_TEX_LOGICAL:
        -:        -:   84:   case SHADER_OPCODE_TXD_LOGICAL:
        -:        -:   85:   case SHADER_OPCODE_TXF_LOGICAL:
        -:        -:   86:   case SHADER_OPCODE_TXL_LOGICAL:
        -:        -:   87:   case SHADER_OPCODE_TXS_LOGICAL:
        -:        -:   88:   case FS_OPCODE_TXB_LOGICAL:
        -:        -:   89:   case SHADER_OPCODE_TXF_CMS_LOGICAL:
        -:        -:   90:   case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
        -:        -:   91:   case SHADER_OPCODE_TXF_UMS_LOGICAL:
        -:        -:   92:   case SHADER_OPCODE_TXF_MCS_LOGICAL:
        -:        -:   93:   case SHADER_OPCODE_LOD_LOGICAL:
        -:        -:   94:   case SHADER_OPCODE_TG4_LOGICAL:
        -:        -:   95:   case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
        -:        -:   96:   case FS_OPCODE_PACK:
      629:      790:   97:      return true;
        -:        -:   98:   case SHADER_OPCODE_RCP:
        -:        -:   99:   case SHADER_OPCODE_RSQ:
        -:        -:  100:   case SHADER_OPCODE_SQRT:
        -:        -:  101:   case SHADER_OPCODE_EXP2:
        -:        -:  102:   case SHADER_OPCODE_LOG2:
        -:        -:  103:   case SHADER_OPCODE_POW:
        -:        -:  104:   case SHADER_OPCODE_INT_QUOTIENT:
        -:        -:  105:   case SHADER_OPCODE_INT_REMAINDER:
        -:        -:  106:   case SHADER_OPCODE_SIN:
        -:        -:  107:   case SHADER_OPCODE_COS:
       41:       49:  108:      return inst->mlen < 2;
        -:        -:  109:   case SHADER_OPCODE_LOAD_PAYLOAD:
        5:        5:  110:      return !inst->is_copy_payload(v->alloc);
        -:        -:  111:   default:
      255:      395:  112:      return inst->is_send_from_grf() && !inst->has_side_effects() &&
      255:      395:  113:         !inst->is_volatile();
        -:        -:  114:   }
        -:        -:  115:}
        -:        -:  116:
        -:        -:  117:static bool
      165:      212:  118:operands_match(const fs_inst *a, const fs_inst *b, bool *negate)
        -:        -:  119:{
      165:      212:  120:   fs_reg *xs = a->src;
      165:      212:  121:   fs_reg *ys = b->src;
        -:        -:  122:
      165:      212:  123:   if (a->opcode == BRW_OPCODE_MAD) {
    #####:    #####:  124:      return xs[0].equals(ys[0]) &&
    #####:    #####:  125:             ((xs[1].equals(ys[1]) && xs[2].equals(ys[2])) ||
    #####:    #####:  126:              (xs[2].equals(ys[1]) && xs[1].equals(ys[2])));
      165:      212:  127:   } else if (a->opcode == BRW_OPCODE_MUL && a->dst.type == BRW_REGISTER_TYPE_F) {
       16:       20:  128:      bool xs0_negate = xs[0].negate;
       16:       20:  129:      bool xs1_negate = xs[1].file == IMM ? xs[1].f < 0.0f
       16:       20:  130:                                          : xs[1].negate;
       16:       20:  131:      bool ys0_negate = ys[0].negate;
       16:       20:  132:      bool ys1_negate = ys[1].file == IMM ? ys[1].f < 0.0f
       16:       20:  133:                                          : ys[1].negate;
       16:       20:  134:      float xs1_imm = xs[1].f;
       16:       20:  135:      float ys1_imm = ys[1].f;
        -:        -:  136:
       16:       20:  137:      xs[0].negate = false;
       16:       20:  138:      xs[1].negate = false;
       16:       20:  139:      ys[0].negate = false;
       16:       20:  140:      ys[1].negate = false;
       16:       20:  141:      xs[1].f = fabsf(xs[1].f);
       16:       20:  142:      ys[1].f = fabsf(ys[1].f);
        -:        -:  143:
       32:       40:  144:      bool ret = (xs[0].equals(ys[0]) && xs[1].equals(ys[1])) ||
       32:       40:  145:                 (xs[1].equals(ys[0]) && xs[0].equals(ys[1]));
        -:        -:  146:
       16:       20:  147:      xs[0].negate = xs0_negate;
       16:       20:  148:      xs[1].negate = xs[1].file == IMM ? false : xs1_negate;
       16:       20:  149:      ys[0].negate = ys0_negate;
       16:       20:  150:      ys[1].negate = ys[1].file == IMM ? false : ys1_negate;
       16:       20:  151:      xs[1].f = xs1_imm;
       16:       20:  152:      ys[1].f = ys1_imm;
        -:        -:  153:
       16:       20:  154:      *negate = (xs0_negate != xs1_negate) != (ys0_negate != ys1_negate);
       16:       20:  155:      if (*negate && (a->saturate || b->saturate))
    #####:    #####:  156:         return false;
       16:       20:  157:      return ret;
      149:      192:  158:   } else if (!a->is_commutative()) {
      144:      186:  159:      bool match = true;
      356:      482:  160:      for (int i = 0; i < a->sources; i++) {
      268:      352:  161:         if (!xs[i].equals(ys[i])) {
       56:       56:  162:            match = false;
       56:       56:  163:            break;
        -:        -:  164:         }
        -:        -:  165:      }
      144:      186:  166:      return match;
        -:        -:  167:   } else {
       10:       12:  168:      return (xs[0].equals(ys[0]) && xs[1].equals(ys[1])) ||
       10:       12:  169:             (xs[1].equals(ys[0]) && xs[0].equals(ys[1]));
        -:        -:  170:   }
        -:        -:  171:}
        -:        -:  172:
        -:        -:  173:static bool
      943:     1140:  174:instructions_match(fs_inst *a, fs_inst *b, bool *negate)
        -:        -:  175:{
     1118:     1362:  176:   return a->opcode == b->opcode &&
      350:      444:  177:          a->force_writemask_all == b->force_writemask_all &&
      350:      444:  178:          a->exec_size == b->exec_size &&
      340:      434:  179:          a->group == b->group &&
      330:      424:  180:          a->saturate == b->saturate &&
      330:      424:  181:          a->predicate == b->predicate &&
      330:      424:  182:          a->predicate_inverse == b->predicate_inverse &&
      330:      424:  183:          a->conditional_mod == b->conditional_mod &&
      330:      424:  184:          a->flag_subreg == b->flag_subreg &&
      330:      424:  185:          a->dst.type == b->dst.type &&
      330:      424:  186:          a->offset == b->offset &&
      330:      424:  187:          a->mlen == b->mlen &&
      330:      424:  188:          a->size_written == b->size_written &&
      330:      424:  189:          a->base_mrf == b->base_mrf &&
      330:      424:  190:          a->eot == b->eot &&
      330:      424:  191:          a->header_size == b->header_size &&
      330:      424:  192:          a->shadow_compare == b->shadow_compare &&
      330:      424:  193:          a->pi_noperspective == b->pi_noperspective &&
      330:      424:  194:          a->target == b->target &&
     1273:     1564:  195:          a->sources == b->sources &&
     1108:     1352:  196:          operands_match(a, b, negate);
        -:        -:  197:}
        -:        -:  198:
        -:        -:  199:static void
    #####:    #####:  200:create_copy_instr(const fs_builder &bld, fs_inst *inst, fs_reg src, bool negate)
        -:        -:  201:{
    #####:    #####:  202:   unsigned written = regs_written(inst);
        -:        -:  203:   unsigned dst_width =
    #####:    #####:  204:      DIV_ROUND_UP(inst->dst.component_size(inst->exec_size), REG_SIZE);
        -:        -:  205:   fs_inst *copy;
        -:        -:  206:
    #####:    #####:  207:   if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD ||
        -:        -:  208:       written != dst_width) {
        -:        -:  209:      fs_reg *payload;
        -:        -:  210:      int sources, header_size;
    #####:    #####:  211:      if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD) {
    #####:    #####:  212:         sources = inst->sources;
    #####:    #####:  213:         header_size = inst->header_size;
        -:        -:  214:      } else {
    #####:    #####:  215:         assert(written % dst_width == 0);
    #####:    #####:  216:         sources = written / dst_width;
    #####:    #####:  217:         header_size = 0;
        -:        -:  218:      }
        -:        -:  219:
    #####:    #####:  220:      assert(src.file == VGRF);
    #####:    #####:  221:      payload = ralloc_array(bld.shader->mem_ctx, fs_reg, sources);
    #####:    #####:  222:      for (int i = 0; i < header_size; i++) {
    #####:    #####:  223:         payload[i] = src;
    #####:    #####:  224:         src.offset += REG_SIZE;
        -:        -:  225:      }
    #####:    #####:  226:      for (int i = header_size; i < sources; i++) {
    #####:    #####:  227:         payload[i] = src;
    #####:    #####:  228:         src = offset(src, bld, 1);
        -:        -:  229:      }
    #####:    #####:  230:      copy = bld.LOAD_PAYLOAD(inst->dst, payload, sources, header_size);
        -:        -:  231:   } else {
    #####:    #####:  232:      copy = bld.MOV(inst->dst, src);
    #####:    #####:  233:      copy->group = inst->group;
    #####:    #####:  234:      copy->force_writemask_all = inst->force_writemask_all;
    #####:    #####:  235:      copy->src[0].negate = negate;
        -:        -:  236:   }
    #####:    #####:  237:   assert(regs_written(copy) == written);
    #####:    #####:  238:}
        -:        -:  239:
        -:        -:  240:bool
      201:      327:  241:fs_visitor::opt_cse_local(bblock_t *block)
        -:        -:  242:{
      201:      327:  243:   bool progress = false;
      201:      327:  244:   exec_list aeb;
        -:        -:  245:
      201:      327:  246:   void *cse_ctx = ralloc_context(NULL);
        -:        -:  247:
      201:      327:  248:   int ip = block->start_ip;
     1131:     1566:  249:   foreach_inst_in_block(fs_inst, inst, block) {
        -:        -:  250:      /* Skip some cases. */
     2274:     2921:  251:      if (is_expression(this, inst) && !inst->is_partial_write() &&
     1344:     1682:  252:          ((inst->dst.file != ARF && inst->dst.file != FIXED_GRF) ||
       88:      150:  253:           inst->dst.is_null()))
        -:        -:  254:      {
      672:      841:  255:         bool found = false;
      672:      841:  256:         bool negate = false;
        -:        -:  257:
     1525:     1849:  258:         foreach_in_list_use_after(aeb_entry, entry, &aeb) {
        -:        -:  259:            /* Match current instruction's expression against those in AEB. */
     1690:     1996:  260:            if (!(entry->generator->dst.is_null() && !inst->dst.is_null()) &&
      837:      988:  261:                instructions_match(inst, entry->generator, &negate)) {
    #####:    #####:  262:               found = true;
    #####:    #####:  263:               progress = true;
    #####:    #####:  264:               break;
        -:        -:  265:            }
        -:        -:  266:         }
        -:        -:  267:
      672:      841:  268:         if (!found) {
      915:     1140:  269:            if (inst->opcode != BRW_OPCODE_MOV ||
      486:      598:  270:                (inst->opcode == BRW_OPCODE_MOV &&
      316:      398:  271:                 inst->src[0].file == IMM &&
       73:       99:  272:                 inst->src[0].type == BRW_REGISTER_TYPE_VF)) {
        -:        -:  273:               /* Our first sighting of this expression.  Create an entry. */
      429:      542:  274:               aeb_entry *entry = ralloc(cse_ctx, aeb_entry);
      429:      542:  275:               entry->tmp = reg_undef;
      429:      542:  276:               entry->generator = inst;
      429:      542:  277:               aeb.push_tail(entry);
        -:        -:  278:            }
        -:        -:  279:         } else {
        -:        -:  280:            /* This is at least our second sighting of this expression.
        -:        -:  281:             * If we don't have a temporary already, make one.
        -:        -:  282:             */
    #####:    #####:  283:            bool no_existing_temp = entry->tmp.file == BAD_FILE;
    #####:    #####:  284:            if (no_existing_temp && !entry->generator->dst.is_null()) {
        -:        -:  285:               const fs_builder ibld = fs_builder(this, block, entry->generator)
    #####:    #####:  286:                                       .at(block, entry->generator->next);
    #####:    #####:  287:               int written = regs_written(entry->generator);
        -:        -:  288:
    #####:    #####:  289:               entry->tmp = fs_reg(VGRF, alloc.allocate(written),
    #####:    #####:  290:                                   entry->generator->dst.type);
        -:        -:  291:
    #####:    #####:  292:               create_copy_instr(ibld, entry->generator, entry->tmp, false);
        -:        -:  293:
    #####:    #####:  294:               entry->generator->dst = entry->tmp;
        -:        -:  295:            }
        -:        -:  296:
        -:        -:  297:            /* dest <- temp */
    #####:    #####:  298:            if (!inst->dst.is_null()) {
    #####:    #####:  299:               assert(inst->size_written == entry->generator->size_written);
    #####:    #####:  300:               assert(inst->dst.type == entry->tmp.type);
    #####:    #####:  301:               const fs_builder ibld(this, block, inst);
        -:        -:  302:
    #####:    #####:  303:               create_copy_instr(ibld, inst, entry->tmp, negate);
        -:        -:  304:            }
        -:        -:  305:
        -:        -:  306:            /* Set our iterator so that next time through the loop inst->next
        -:        -:  307:             * will get the instruction in the basic block after the one we've
        -:        -:  308:             * removed.
        -:        -:  309:             */
    #####:    #####:  310:            fs_inst *prev = (fs_inst *)inst->prev;
        -:        -:  311:
    #####:    #####:  312:            inst->remove(block);
    #####:    #####:  313:            inst = prev;
        -:        -:  314:         }
        -:        -:  315:      }
        -:        -:  316:
     2384:     3013:  317:      foreach_in_list_safe(aeb_entry, entry, &aeb) {
        -:        -:  318:         /* Kill all AEB entries that write a different value to or read from
        -:        -:  319:          * the flag register if we just wrote it.
        -:        -:  320:          */
     1454:     1774:  321:         if (inst->flags_written()) {
        -:        -:  322:            bool negate; /* dummy */
      368:      500:  323:            if (entry->generator->flags_read(devinfo) ||
      281:      391:  324:                (entry->generator->flags_written() &&
      106:      152:  325:                 !instructions_match(inst, entry->generator, &negate))) {
       18:       22:  326:               entry->remove();
       18:       22:  327:               ralloc_free(entry);
       18:       22:  328:               continue;
        -:        -:  329:            }
        -:        -:  330:         }
        -:        -:  331:
     3453:     4249:  332:         for (int i = 0; i < entry->generator->sources; i++) {
     2299:     2849:  333:            fs_reg *src_reg = &entry->generator->src[i];
        -:        -:  334:
        -:        -:  335:            /* Kill all AEB entries that use the destination we just
        -:        -:  336:             * overwrote.
        -:        -:  337:             */
     4598:     5698:  338:            if (regions_overlap(inst->dst, inst->size_written,
     2299:     2849:  339:                                entry->generator->src[i],
     2299:     2849:  340:                                entry->generator->size_read(i))) {
       56:       70:  341:               entry->remove();
       56:       70:  342:               ralloc_free(entry);
       56:       70:  343:               break;
        -:        -:  344:            }
        -:        -:  345:
        -:        -:  346:            /* Kill any AEB entries using registers that don't get reused any
        -:        -:  347:             * more -- a sure sign they'll fail operands_match().
        -:        -:  348:             */
     2243:     2779:  349:            if (src_reg->file == VGRF && virtual_grf_end[src_reg->nr] < ip) {
      226:      282:  350:               entry->remove();
      226:      282:  351:               ralloc_free(entry);
      226:      282:  352:               break;
        -:        -:  353:            }
        -:        -:  354:         }
        -:        -:  355:      }
        -:        -:  356:
      930:     1239:  357:      ip++;
        -:        -:  358:   }
        -:        -:  359:
      201:      327:  360:   ralloc_free(cse_ctx);
        -:        -:  361:
      201:      327:  362:   return progress;
        -:        -:  363:}
        -:        -:  364:
        -:        -:  365:bool
       17:       19:  366:fs_visitor::opt_cse()
        -:        -:  367:{
       17:       19:  368:   bool progress = false;
        -:        -:  369:
       17:       19:  370:   calculate_live_intervals();
        -:        -:  371:
      218:      346:  372:   foreach_block (block, cfg) {
      201:      327:  373:      progress = opt_cse_local(block) || progress;
        -:        -:  374:   }
        -:        -:  375:
       17:       19:  376:   if (progress)
    #####:    #####:  377:      invalidate_live_intervals();
        -:        -:  378:
       17:       19:  379:   return progress;
        3:        3:  380:}

src/intel/brw_fs_dead_code_eliminate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_dead_code_eliminate.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_fs_live_variables.h"
        -:        -:   26:#include "brw_cfg.h"
        -:        -:   27:
        -:        -:   28:/** @file brw_fs_dead_code_eliminate.cpp
        -:        -:   29: *
        -:        -:   30: * Dataflow-aware dead code elimination.
        -:        -:   31: *
        -:        -:   32: * Walks the instruction list from the bottom, removing instructions that
        -:        -:   33: * have results that both aren't used in later blocks and haven't been read
        -:        -:   34: * yet in the tail end of this block.
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:/**
        -:        -:   38: * Is it safe to eliminate the instruction?
        -:        -:   39: */
        -:        -:   40:static bool
      205:      273:   41:can_eliminate(const fs_inst *inst, BITSET_WORD *flag_live)
        -:        -:   42:{
      410:      546:   43:    return !inst->is_control_flow() &&
      410:      546:   44:           !inst->has_side_effects() &&
      505:      639:   45:           !(flag_live[0] & inst->flags_written()) &&
      300:      366:   46:           !inst->writes_accumulator;
        -:        -:   47:}
        -:        -:   48:
        -:        -:   49:/**
        -:        -:   50: * Is it safe to omit the write, making the destination ARF null?
        -:        -:   51: */
        -:        -:   52:static bool
      104:      106:   53:can_omit_write(const fs_inst *inst)
        -:        -:   54:{
      104:      106:   55:   switch (inst->opcode) {
        -:        -:   56:   case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:   57:   case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -:   58:   case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:   59:   case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
    #####:    #####:   60:      return true;
        -:        -:   61:   default:
        -:        -:   62:      /* We can eliminate the destination write for ordinary instructions,
        -:        -:   63:       * but not most SENDs.
        -:        -:   64:       */
      104:      106:   65:      if (inst->opcode < 128 && inst->mlen == 0)
       95:       97:   66:         return true;
        -:        -:   67:
        -:        -:   68:      /* It might not be safe for other virtual opcodes. */
        9:        9:   69:      return false;
        -:        -:   70:   }
        -:        -:   71:}
        -:        -:   72:
        -:        -:   73:bool
       22:       24:   74:fs_visitor::dead_code_eliminate()
        -:        -:   75:{
       22:       24:   76:   bool progress = false;
        -:        -:   77:
       22:       24:   78:   calculate_live_intervals();
        -:        -:   79:
       22:       24:   80:   int num_vars = live_intervals->num_vars;
       22:       24:   81:   BITSET_WORD *live = rzalloc_array(NULL, BITSET_WORD, BITSET_WORDS(num_vars));
       22:       24:   82:   BITSET_WORD *flag_live = rzalloc_array(NULL, BITSET_WORD, 1);
        -:        -:   83:
      272:      392:   84:   foreach_block_reverse_safe(block, cfg) {
      250:      368:   85:      memcpy(live, live_intervals->block_data[block->num].liveout,
      500:      736:   86:             sizeof(BITSET_WORD) * BITSET_WORDS(num_vars));
      250:      368:   87:      memcpy(flag_live, live_intervals->block_data[block->num].flag_liveout,
      250:      368:   88:             sizeof(BITSET_WORD));
        -:        -:   89:
     1368:     1775:   90:      foreach_inst_in_block_reverse_safe(fs_inst, inst, block) {
     1118:     1407:   91:         if (inst->dst.file == VGRF) {
      698:      807:   92:            const unsigned var = live_intervals->var_from_reg(inst->dst);
      698:      807:   93:            bool result_live = false;
        -:        -:   94:
     1700:     1971:   95:            for (unsigned i = 0; i < regs_written(inst); i++)
     1002:     1164:   96:               result_live |= BITSET_TEST(live, var + i);
        -:        -:   97:
      906:     1019:   98:            if (!result_live &&
      113:      115:   99:                (can_omit_write(inst) || can_eliminate(inst, flag_live))) {
      104:      106:  100:               inst->dst = fs_reg(retype(brw_null_reg(), inst->dst.type));
      104:      106:  101:               progress = true;
        -:        -:  102:            }
        -:        -:  103:         }
        -:        -:  104:
     1118:     1407:  105:         if (inst->dst.is_null() && can_eliminate(inst, flag_live)) {
       86:       84:  106:            inst->opcode = BRW_OPCODE_NOP;
       86:       84:  107:            progress = true;
        -:        -:  108:         }
        -:        -:  109:
     1118:     1407:  110:         if (inst->dst.file == VGRF) {
      594:      701:  111:            if (!inst->is_partial_write()) {
      594:      701:  112:               int var = live_intervals->var_from_reg(inst->dst);
     1444:     1710:  113:               for (unsigned i = 0; i < regs_written(inst); i++) {
      850:     1009:  114:                  BITSET_CLEAR(live, var + i);
        -:        -:  115:               }
        -:        -:  116:            }
        -:        -:  117:         }
        -:        -:  118:
     1118:     1407:  119:         if (!inst->predicate && inst->exec_size >= 8)
     1008:     1227:  120:            flag_live[0] &= ~inst->flags_written();
        -:        -:  121:
     1118:     1407:  122:         if (inst->opcode == BRW_OPCODE_NOP) {
       86:       84:  123:            inst->remove(block);
       86:       84:  124:            continue;
        -:        -:  125:         }
        -:        -:  126:
     2356:     2949:  127:         for (int i = 0; i < inst->sources; i++) {
     1324:     1626:  128:            if (inst->src[i].file == VGRF) {
      828:     1006:  129:               int var = live_intervals->var_from_reg(inst->src[i]);
        -:        -:  130:
     2055:     2507:  131:               for (unsigned j = 0; j < regs_read(inst, i); j++) {
     1227:     1501:  132:                  BITSET_SET(live, var + j);
        -:        -:  133:               }
        -:        -:  134:            }
        -:        -:  135:         }
        -:        -:  136:
     1032:     1323:  137:         flag_live[0] |= inst->flags_read(devinfo);
        -:        -:  138:      }
        -:        -:  139:   }
        -:        -:  140:
       22:       24:  141:   ralloc_free(live);
       22:       24:  142:   ralloc_free(flag_live);
        -:        -:  143:
       22:       24:  144:   if (progress)
        7:        7:  145:      invalidate_live_intervals();
        -:        -:  146:
       22:       24:  147:   return progress;
        3:        3:  148:}

src/intel/brw_fs_generator.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_generator.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_generator.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_generator.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs_generator.cpp
        -:        -:   25: *
        -:        -:   26: * This file supports generating code from the FS LIR to the actual
        -:        -:   27: * native instructions.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "brw_eu.h"
        -:        -:   31:#include "brw_fs.h"
        -:        -:   32:#include "brw_cfg.h"
        -:        -:   33:
        -:        -:   34:static enum brw_reg_file
      283:      287:   35:brw_file_from_reg(fs_reg *reg)
        -:        -:   36:{
      283:      287:   37:   switch (reg->file) {
        -:        -:   38:   case ARF:
    #####:    #####:   39:      return BRW_ARCHITECTURE_REGISTER_FILE;
        -:        -:   40:   case FIXED_GRF:
        -:        -:   41:   case VGRF:
      263:      267:   42:      return BRW_GENERAL_REGISTER_FILE;
        -:        -:   43:   case MRF:
       20:       20:   44:      return BRW_MESSAGE_REGISTER_FILE;
        -:        -:   45:   case IMM:
    #####:    #####:   46:      return BRW_IMMEDIATE_VALUE;
        -:        -:   47:   case BAD_FILE:
        -:        -:   48:   case ATTR:
        -:        -:   49:   case UNIFORM:
    #####:    #####:   50:      unreachable("not reached");
        -:        -:   51:   }
    #####:    #####:   52:   return BRW_ARCHITECTURE_REGISTER_FILE;
        -:        -:   53:}
        -:        -:   54:
        -:        -:   55:static struct brw_reg
      454:      478:   56:brw_reg_from_fs_reg(const struct gen_device_info *devinfo, fs_inst *inst,
        -:        -:   57:                    fs_reg *reg, bool compressed)
        -:        -:   58:{
        -:        -:   59:   struct brw_reg brw_reg;
        -:        -:   60:
      454:      478:   61:   switch (reg->file) {
        -:        -:   62:   case MRF:
       20:       20:   63:      assert((reg->nr & ~BRW_MRF_COMPR4) < BRW_MAX_MRF(devinfo->gen));
        -:        -:   64:      /* Fallthrough */
        -:        -:   65:   case VGRF:
      283:      287:   66:      if (reg->stride == 0) {
    #####:    #####:   67:         brw_reg = brw_vec1_reg(brw_file_from_reg(reg), reg->nr, 0);
        -:        -:   68:      } else {
        -:        -:   69:         /* From the Haswell PRM:
        -:        -:   70:          *
        -:        -:   71:          *  "VertStride must be used to cross GRF register boundaries. This
        -:        -:   72:          *   rule implies that elements within a 'Width' cannot cross GRF
        -:        -:   73:          *   boundaries."
        -:        -:   74:          *
        -:        -:   75:          * The maximum width value that could satisfy this restriction is:
        -:        -:   76:          */
      283:      287:   77:         const unsigned reg_width = REG_SIZE / (reg->stride * type_sz(reg->type));
        -:        -:   78:
        -:        -:   79:         /* Because the hardware can only split source regions at a whole
        -:        -:   80:          * multiple of width during decompression (i.e. vertically), clamp
        -:        -:   81:          * the value obtained above to the physical execution size of a
        -:        -:   82:          * single decompressed chunk of the instruction:
        -:        -:   83:          */
       99:      101:   84:         const unsigned phys_width = compressed ? inst->exec_size / 2 :
      382:      388:   85:                                     inst->exec_size;
        -:        -:   86:
        -:        -:   87:         /* XXX - The equation above is strictly speaking not correct on
        -:        -:   88:          *       hardware that supports unbalanced GRF writes -- On Gen9+
        -:        -:   89:          *       each decompressed chunk of the instruction may have a
        -:        -:   90:          *       different execution size when the number of components
        -:        -:   91:          *       written to each destination GRF is not the same.
        -:        -:   92:          */
      283:      287:   93:         const unsigned width = MIN2(reg_width, phys_width);
      283:      287:   94:         brw_reg = brw_vecn_reg(width, brw_file_from_reg(reg), reg->nr, 0);
      283:      287:   95:         brw_reg = stride(brw_reg, width * reg->stride, width, reg->stride);
        -:        -:   96:
      283:      287:   97:         if (devinfo->gen == 7 && !devinfo->is_haswell) {
        -:        -:   98:            /* From the IvyBridge PRM (EU Changes by Processor Generation, page 13):
        -:        -:   99:             *  "Each DF (Double Float) operand uses an element size of 4 rather
        -:        -:  100:             *   than 8 and all regioning parameters are twice what the values
        -:        -:  101:             *   would be based on the true element size: ExecSize, Width,
        -:        -:  102:             *   HorzStride, and VertStride. Each DF operand uses a pair of
        -:        -:  103:             *   channels and all masking and swizzing should be adjusted
        -:        -:  104:             *   appropriately."
        -:        -:  105:             *
        -:        -:  106:             * From the IvyBridge PRM (Special Requirements for Handling Double
        -:        -:  107:             * Precision Data Types, page 71):
        -:        -:  108:             *  "In Align1 mode, all regioning parameters like stride, execution
        -:        -:  109:             *   size, and width must use the syntax of a pair of packed
        -:        -:  110:             *   floats. The offsets for these data types must be 64-bit
        -:        -:  111:             *   aligned. The execution size and regioning parameters are in terms
        -:        -:  112:             *   of floats."
        -:        -:  113:             *
        -:        -:  114:             * Summarized: when handling DF-typed arguments, ExecSize,
        -:        -:  115:             * VertStride, and Width must be doubled.
        -:        -:  116:             *
        -:        -:  117:             * It applies to BayTrail too.
        -:        -:  118:             */
    #####:    #####:  119:            if (type_sz(reg->type) == 8) {
    #####:    #####:  120:               brw_reg.width++;
    #####:    #####:  121:               if (brw_reg.vstride > 0)
    #####:    #####:  122:                  brw_reg.vstride++;
    #####:    #####:  123:               assert(brw_reg.hstride == BRW_HORIZONTAL_STRIDE_1);
        -:        -:  124:            }
        -:        -:  125:
        -:        -:  126:            /* When converting from DF->F, we set the destination stride to 2
        -:        -:  127:             * because each d2f conversion implicitly writes 2 floats, being
        -:        -:  128:             * the first one the converted value. IVB/BYT actually writes two
        -:        -:  129:             * F components per SIMD channel, and every other component is
        -:        -:  130:             * filled with garbage.
        -:        -:  131:             */
    #####:    #####:  132:            if (reg == &inst->dst && get_exec_type_size(inst) == 8 &&
    #####:    #####:  133:                type_sz(inst->dst.type) < 8) {
    #####:    #####:  134:               assert(brw_reg.hstride > BRW_HORIZONTAL_STRIDE_1);
    #####:    #####:  135:               brw_reg.hstride--;
        -:        -:  136:            }
        -:        -:  137:         }
        -:        -:  138:      }
        -:        -:  139:
      283:      287:  140:      brw_reg = retype(brw_reg, reg->type);
      283:      287:  141:      brw_reg = byte_offset(brw_reg, reg->offset);
      283:      287:  142:      brw_reg.abs = reg->abs;
      283:      287:  143:      brw_reg.negate = reg->negate;
      283:      287:  144:      break;
        -:        -:  145:   case ARF:
        -:        -:  146:   case FIXED_GRF:
        -:        -:  147:   case IMM:
      114:      130:  148:      assert(reg->offset == 0);
      114:      130:  149:      brw_reg = reg->as_brw_reg();
      114:      130:  150:      break;
        -:        -:  151:   case BAD_FILE:
        -:        -:  152:      /* Probably unused. */
       57:       61:  153:      brw_reg = brw_null_reg();
       57:       61:  154:      break;
        -:        -:  155:   case ATTR:
        -:        -:  156:   case UNIFORM:
    #####:    #####:  157:      unreachable("not reached");
        -:        -:  158:   }
        -:        -:  159:
        -:        -:  160:   /* On HSW+, scalar DF sources can be accessed using the normal <0,1,0>
        -:        -:  161:    * region, but on IVB and BYT DF regions must be programmed in terms of
        -:        -:  162:    * floats. A <0,2,1> region accomplishes this.
        -:        -:  163:    */
      908:      956:  164:   if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####:  165:       type_sz(reg->type) == 8 &&
    #####:    #####:  166:       brw_reg.vstride == BRW_VERTICAL_STRIDE_0 &&
      454:      478:  167:       brw_reg.width == BRW_WIDTH_1 &&
    #####:    #####:  168:       brw_reg.hstride == BRW_HORIZONTAL_STRIDE_0) {
    #####:    #####:  169:      brw_reg.width = BRW_WIDTH_2;
    #####:    #####:  170:      brw_reg.hstride = BRW_HORIZONTAL_STRIDE_1;
        -:        -:  171:   }
        -:        -:  172:
      454:      478:  173:   return brw_reg;
        -:        -:  174:}
        -:        -:  175:
        3:        3:  176:fs_generator::fs_generator(const struct brw_compiler *compiler, void *log_data,
        -:        -:  177:                           void *mem_ctx,
        -:        -:  178:                           const void *key,
        -:        -:  179:                           struct brw_stage_prog_data *prog_data,
        -:        -:  180:                           unsigned promoted_constants,
        -:        -:  181:                           bool runtime_check_aads_emit,
        -:        -:  182:                           gl_shader_stage stage)
        -:        -:  183:
        -:        -:  184:   : compiler(compiler), log_data(log_data),
        3:        3:  185:     devinfo(compiler->devinfo), key(key),
        -:        -:  186:     prog_data(prog_data),
        -:        -:  187:     promoted_constants(promoted_constants),
        -:        -:  188:     runtime_check_aads_emit(runtime_check_aads_emit), debug_flag(false),
        6:        6:  189:     stage(stage), mem_ctx(mem_ctx)
        -:        -:  190:{
        3:        3:  191:   p = rzalloc(mem_ctx, struct brw_codegen);
        3:        3:  192:   brw_init_codegen(devinfo, p, mem_ctx);
        3:        3:  193:}
        -:        -:  194:
        3:        3:  195:fs_generator::~fs_generator()
        -:        -:  196:{
        3:        3:  197:}
        -:        -:  198:
        -:        -:  199:class ip_record : public exec_node {
        -:        -:  200:public:
    #####:    #####:  201:   DECLARE_RALLOC_CXX_OPERATORS(ip_record)
        -:        -:  202:
    #####:    #####:  203:   ip_record(int ip)
    #####:    #####:  204:   {
    #####:    #####:  205:      this->ip = ip;
    #####:    #####:  206:   }
        -:        -:  207:
        -:        -:  208:   int ip;
        -:        -:  209:};
        -:        -:  210:
        -:        -:  211:bool
    #####:    #####:  212:fs_generator::patch_discard_jumps_to_fb_writes()
        -:        -:  213:{
    #####:    #####:  214:   if (devinfo->gen < 6 || this->discard_halt_patches.is_empty())
    #####:    #####:  215:      return false;
        -:        -:  216:
    #####:    #####:  217:   int scale = brw_jump_scale(p->devinfo);
        -:        -:  218:
        -:        -:  219:   /* There is a somewhat strange undocumented requirement of using
        -:        -:  220:    * HALT, according to the simulator.  If some channel has HALTed to
        -:        -:  221:    * a particular UIP, then by the end of the program, every channel
        -:        -:  222:    * must have HALTed to that UIP.  Furthermore, the tracking is a
        -:        -:  223:    * stack, so you can't do the final halt of a UIP after starting
        -:        -:  224:    * halting to a new UIP.
        -:        -:  225:    *
        -:        -:  226:    * Symptoms of not emitting this instruction on actual hardware
        -:        -:  227:    * included GPU hangs and sparkly rendering on the piglit discard
        -:        -:  228:    * tests.
        -:        -:  229:    */
    #####:    #####:  230:   brw_inst *last_halt = gen6_HALT(p);
    #####:    #####:  231:   brw_inst_set_uip(p->devinfo, last_halt, 1 * scale);
    #####:    #####:  232:   brw_inst_set_jip(p->devinfo, last_halt, 1 * scale);
        -:        -:  233:
    #####:    #####:  234:   int ip = p->nr_insn;
        -:        -:  235:
    #####:    #####:  236:   foreach_in_list(ip_record, patch_ip, &discard_halt_patches) {
    #####:    #####:  237:      brw_inst *patch = &p->store[patch_ip->ip];
        -:        -:  238:
    #####:    #####:  239:      assert(brw_inst_opcode(p->devinfo, patch) == BRW_OPCODE_HALT);
        -:        -:  240:      /* HALT takes a half-instruction distance from the pre-incremented IP. */
    #####:    #####:  241:      brw_inst_set_uip(p->devinfo, patch, (ip - patch_ip->ip) * scale);
        -:        -:  242:   }
        -:        -:  243:
    #####:    #####:  244:   this->discard_halt_patches.make_empty();
    #####:    #####:  245:   return true;
        -:        -:  246:}
        -:        -:  247:
        -:        -:  248:void
        5:        5:  249:fs_generator::fire_fb_write(fs_inst *inst,
        -:        -:  250:                            struct brw_reg payload,
        -:        -:  251:                            struct brw_reg implied_header,
        -:        -:  252:                            GLuint nr)
        -:        -:  253:{
        -:        -:  254:   uint32_t msg_control;
        -:        -:  255:
        5:        5:  256:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        -:        -:  257:
        5:        5:  258:   if (devinfo->gen < 6) {
    #####:    #####:  259:      brw_push_insn_state(p);
    #####:    #####:  260:      brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####:  261:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####:  262:      brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
    #####:    #####:  263:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####:  264:      brw_MOV(p, offset(payload, 1), brw_vec8_grf(1, 0));
    #####:    #####:  265:      brw_pop_insn_state(p);
        -:        -:  266:   }
        -:        -:  267:
        5:        5:  268:   if (inst->opcode == FS_OPCODE_REP_FB_WRITE)
        1:        1:  269:      msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED;
        4:        4:  270:   else if (prog_data->dual_src_blend) {
    #####:    #####:  271:      if (!inst->group)
    #####:    #####:  272:         msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01;
        -:        -:  273:      else
    #####:    #####:  274:         msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23;
        4:        4:  275:   } else if (inst->exec_size == 16)
        2:        2:  276:      msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE;
        -:        -:  277:   else
        2:        2:  278:      msg_control = BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01;
        -:        -:  279:
        -:        -:  280:   uint32_t surf_index =
        5:        5:  281:      prog_data->binding_table.render_target_start + inst->target;
        -:        -:  282:
       10:       10:  283:   bool last_render_target = inst->eot ||
        5:        5:  284:                             (prog_data->dual_src_blend && dispatch_width == 16);
        -:        -:  285:
        -:        -:  286:
       10:       10:  287:   brw_fb_WRITE(p,
        -:        -:  288:                payload,
        -:        -:  289:                implied_header,
        -:        -:  290:                msg_control,
        -:        -:  291:                surf_index,
        -:        -:  292:                nr,
        -:        -:  293:                0,
        5:        5:  294:                inst->eot,
        -:        -:  295:                last_render_target,
       10:       10:  296:                inst->header_size != 0);
        -:        -:  297:
        5:        5:  298:   brw_mark_surface_used(&prog_data->base, surf_index);
        5:        5:  299:}
        -:        -:  300:
        -:        -:  301:void
        5:        5:  302:fs_generator::generate_fb_write(fs_inst *inst, struct brw_reg payload)
        -:        -:  303:{
        5:        5:  304:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        5:        5:  305:   const brw_wm_prog_key * const key = (brw_wm_prog_key * const) this->key;
        -:        -:  306:   struct brw_reg implied_header;
        -:        -:  307:
        5:        5:  308:   if (devinfo->gen < 8 && !devinfo->is_haswell) {
        5:        5:  309:      brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
        -:        -:  310:   }
        -:        -:  311:
        5:        5:  312:   if (inst->base_mrf >= 0)
        5:        5:  313:      payload = brw_message_reg(inst->base_mrf);
        -:        -:  314:
        -:        -:  315:   /* Header is 2 regs, g0 and g1 are the contents. g0 will be implied
        -:        -:  316:    * move, here's g1.
        -:        -:  317:    */
        5:        5:  318:   if (inst->header_size != 0) {
    #####:    #####:  319:      brw_push_insn_state(p);
    #####:    #####:  320:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####:  321:      brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
    #####:    #####:  322:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####:  323:      brw_set_default_flag_reg(p, 0, 0);
        -:        -:  324:
        -:        -:  325:      /* On HSW, the GPU will use the predicate on SENDC, unless the header is
        -:        -:  326:       * present.
        -:        -:  327:       */
    #####:    #####:  328:      if (prog_data->uses_kill) {
        -:        -:  329:         struct brw_reg pixel_mask;
        -:        -:  330:
    #####:    #####:  331:         if (devinfo->gen >= 6)
    #####:    #####:  332:            pixel_mask = retype(brw_vec1_grf(1, 7), BRW_REGISTER_TYPE_UW);
        -:        -:  333:         else
    #####:    #####:  334:            pixel_mask = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW);
        -:        -:  335:
    #####:    #####:  336:         brw_MOV(p, pixel_mask, brw_flag_reg(0, 1));
        -:        -:  337:      }
        -:        -:  338:
    #####:    #####:  339:      if (devinfo->gen >= 6) {
    #####:    #####:  340:         brw_push_insn_state(p);
    #####:    #####:  341:         brw_set_default_exec_size(p, BRW_EXECUTE_16);
    #####:    #####:  342:	 brw_set_default_compression_control(p, BRW_COMPRESSION_COMPRESSED);
    #####:    #####:  343:	 brw_MOV(p,
        -:        -:  344:		 retype(payload, BRW_REGISTER_TYPE_UD),
    #####:    #####:  345:		 retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
    #####:    #####:  346:         brw_pop_insn_state(p);
        -:        -:  347:
    #####:    #####:  348:         if (inst->target > 0 && key->replicate_alpha) {
        -:        -:  349:            /* Set "Source0 Alpha Present to RenderTarget" bit in message
        -:        -:  350:             * header.
        -:        -:  351:             */
    #####:    #####:  352:            brw_OR(p,
        -:        -:  353:		   vec1(retype(payload, BRW_REGISTER_TYPE_UD)),
        -:        -:  354:		   vec1(retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD)),
    #####:    #####:  355:		   brw_imm_ud(0x1 << 11));
        -:        -:  356:         }
        -:        -:  357:
    #####:    #####:  358:	 if (inst->target > 0) {
        -:        -:  359:	    /* Set the render target index for choosing BLEND_STATE. */
    #####:    #####:  360:	    brw_MOV(p, retype(vec1(suboffset(payload, 2)),
        -:        -:  361:                              BRW_REGISTER_TYPE_UD),
    #####:    #####:  362:		    brw_imm_ud(inst->target));
        -:        -:  363:	 }
        -:        -:  364:
        -:        -:  365:         /* Set computes stencil to render target */
    #####:    #####:  366:         if (prog_data->computed_stencil) {
    #####:    #####:  367:            brw_OR(p,
        -:        -:  368:                   vec1(retype(payload, BRW_REGISTER_TYPE_UD)),
        -:        -:  369:                   vec1(retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD)),
    #####:    #####:  370:                   brw_imm_ud(0x1 << 14));
        -:        -:  371:         }
        -:        -:  372:
    #####:    #####:  373:	 implied_header = brw_null_reg();
        -:        -:  374:      } else {
    #####:    #####:  375:	 implied_header = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW);
        -:        -:  376:      }
        -:        -:  377:
    #####:    #####:  378:      brw_pop_insn_state(p);
        -:        -:  379:   } else {
        5:        5:  380:      implied_header = brw_null_reg();
        -:        -:  381:   }
        -:        -:  382:
        5:        5:  383:   if (!runtime_check_aads_emit) {
        5:        5:  384:      fire_fb_write(inst, payload, implied_header, inst->mlen);
        -:        -:  385:   } else {
        -:        -:  386:      /* This can only happen in gen < 6 */
    #####:    #####:  387:      assert(devinfo->gen < 6);
        -:        -:  388:
    #####:    #####:  389:      struct brw_reg v1_null_ud = vec1(retype(brw_null_reg(), BRW_REGISTER_TYPE_UD));
        -:        -:  390:
        -:        -:  391:      /* Check runtime bit to detect if we have to send AA data or not */
    #####:    #####:  392:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####:  393:      brw_AND(p,
        -:        -:  394:              v1_null_ud,
        -:        -:  395:              retype(brw_vec1_grf(1, 6), BRW_REGISTER_TYPE_UD),
    #####:    #####:  396:              brw_imm_ud(1<<26));
    #####:    #####:  397:      brw_inst_set_cond_modifier(p->devinfo, brw_last_inst, BRW_CONDITIONAL_NZ);
        -:        -:  398:
    #####:    #####:  399:      int jmp = brw_JMPI(p, brw_imm_ud(0), BRW_PREDICATE_NORMAL) - p->store;
    #####:    #####:  400:      brw_inst_set_exec_size(p->devinfo, brw_last_inst, BRW_EXECUTE_1);
        -:        -:  401:      {
        -:        -:  402:         /* Don't send AA data */
    #####:    #####:  403:         fire_fb_write(inst, offset(payload, 1), implied_header, inst->mlen-1);
        -:        -:  404:      }
    #####:    #####:  405:      brw_land_fwd_jump(p, jmp);
    #####:    #####:  406:      fire_fb_write(inst, payload, implied_header, inst->mlen);
        -:        -:  407:   }
        5:        5:  408:}
        -:        -:  409:
        -:        -:  410:void
    #####:    #####:  411:fs_generator::generate_fb_read(fs_inst *inst, struct brw_reg dst,
        -:        -:  412:                               struct brw_reg payload)
        -:        -:  413:{
    #####:    #####:  414:   assert(inst->size_written % REG_SIZE == 0);
    #####:    #####:  415:   struct brw_wm_prog_data *prog_data = brw_wm_prog_data(this->prog_data);
        -:        -:  416:   const unsigned surf_index =
    #####:    #####:  417:      prog_data->binding_table.render_target_start + inst->target;
        -:        -:  418:
    #####:    #####:  419:   gen9_fb_READ(p, dst, payload, surf_index,
    #####:    #####:  420:                inst->header_size, inst->size_written / REG_SIZE,
    #####:    #####:  421:                prog_data->persample_dispatch);
        -:        -:  422:
    #####:    #####:  423:   brw_mark_surface_used(&prog_data->base, surf_index);
    #####:    #####:  424:}
        -:        -:  425:
        -:        -:  426:void
    #####:    #####:  427:fs_generator::generate_mov_indirect(fs_inst *inst,
        -:        -:  428:                                    struct brw_reg dst,
        -:        -:  429:                                    struct brw_reg reg,
        -:        -:  430:                                    struct brw_reg indirect_byte_offset)
        -:        -:  431:{
    #####:    #####:  432:   assert(indirect_byte_offset.type == BRW_REGISTER_TYPE_UD);
    #####:    #####:  433:   assert(indirect_byte_offset.file == BRW_GENERAL_REGISTER_FILE);
        -:        -:  434:
    #####:    #####:  435:   unsigned imm_byte_offset = reg.nr * REG_SIZE + reg.subnr;
        -:        -:  436:
    #####:    #####:  437:   if (indirect_byte_offset.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####:  438:      imm_byte_offset += indirect_byte_offset.ud;
        -:        -:  439:
    #####:    #####:  440:      reg.nr = imm_byte_offset / REG_SIZE;
    #####:    #####:  441:      reg.subnr = imm_byte_offset % REG_SIZE;
    #####:    #####:  442:      brw_MOV(p, dst, reg);
        -:        -:  443:   } else {
        -:        -:  444:      /* Prior to Broadwell, there are only 8 address registers. */
    #####:    #####:  445:      assert(inst->exec_size <= 8 || devinfo->gen >= 8);
        -:        -:  446:
        -:        -:  447:      /* We use VxH indirect addressing, clobbering a0.0 through a0.7. */
    #####:    #####:  448:      struct brw_reg addr = vec8(brw_address_reg(0));
        -:        -:  449:
        -:        -:  450:      /* The destination stride of an instruction (in bytes) must be greater
        -:        -:  451:       * than or equal to the size of the rest of the instruction.  Since the
        -:        -:  452:       * address register is of type UW, we can't use a D-type instruction.
        -:        -:  453:       * In order to get around this, re retype to UW and use a stride.
        -:        -:  454:       */
        -:        -:  455:      indirect_byte_offset =
    #####:    #####:  456:         retype(spread(indirect_byte_offset, 2), BRW_REGISTER_TYPE_UW);
        -:        -:  457:
        -:        -:  458:      /* There are a number of reasons why we don't use the base offset here.
        -:        -:  459:       * One reason is that the field is only 9 bits which means we can only
        -:        -:  460:       * use it to access the first 16 GRFs.  Also, from the Haswell PRM
        -:        -:  461:       * section "Register Region Restrictions":
        -:        -:  462:       *
        -:        -:  463:       *    "The lower bits of the AddressImmediate must not overflow to
        -:        -:  464:       *    change the register address.  The lower 5 bits of Address
        -:        -:  465:       *    Immediate when added to lower 5 bits of address register gives
        -:        -:  466:       *    the sub-register offset. The upper bits of Address Immediate
        -:        -:  467:       *    when added to upper bits of address register gives the register
        -:        -:  468:       *    address. Any overflow from sub-register offset is dropped."
        -:        -:  469:       *
        -:        -:  470:       * Since the indirect may cause us to cross a register boundary, this
        -:        -:  471:       * makes the base offset almost useless.  We could try and do something
        -:        -:  472:       * clever where we use a actual base offset if base_offset % 32 == 0 but
        -:        -:  473:       * that would mean we were generating different code depending on the
        -:        -:  474:       * base offset.  Instead, for the sake of consistency, we'll just do the
        -:        -:  475:       * add ourselves.  This restriction is only listed in the Haswell PRM
        -:        -:  476:       * but empirical testing indicates that it applies on all older
        -:        -:  477:       * generations and is lifted on Broadwell.
        -:        -:  478:       *
        -:        -:  479:       * In the end, while base_offset is nice to look at in the generated
        -:        -:  480:       * code, using it saves us 0 instructions and would require quite a bit
        -:        -:  481:       * of case-by-case work.  It's just not worth it.
        -:        -:  482:       */
    #####:    #####:  483:      if (devinfo->gen >= 8 || devinfo->is_haswell || type_sz(reg.type) < 8) {
    #####:    #####:  484:         brw_ADD(p, addr, indirect_byte_offset, brw_imm_uw(imm_byte_offset));
        -:        -:  485:      } else {
        -:        -:  486:         /* IVB reads two address register components per channel for
        -:        -:  487:          * indirectly addressed 64-bit sources, so we need to initialize
        -:        -:  488:          * adjacent address components to consecutive dwords of the source
        -:        -:  489:          * region by emitting two separate ADD instructions.  Found
        -:        -:  490:          * empirically.
        -:        -:  491:          */
    #####:    #####:  492:         assert(inst->exec_size <= 4);
    #####:    #####:  493:         brw_push_insn_state(p);
    #####:    #####:  494:         brw_set_default_exec_size(p, cvt(inst->exec_size) - 1);
        -:        -:  495:
    #####:    #####:  496:         brw_ADD(p, spread(addr, 2), indirect_byte_offset,
    #####:    #####:  497:                 brw_imm_uw(imm_byte_offset));
    #####:    #####:  498:         brw_inst_set_no_dd_clear(devinfo, brw_last_inst, true);
        -:        -:  499:
    #####:    #####:  500:         brw_ADD(p, spread(suboffset(addr, 1), 2), indirect_byte_offset,
    #####:    #####:  501:                 brw_imm_uw(imm_byte_offset + 4));
    #####:    #####:  502:         brw_inst_set_no_dd_check(devinfo, brw_last_inst, true);
        -:        -:  503:
    #####:    #####:  504:         brw_pop_insn_state(p);
        -:        -:  505:      }
        -:        -:  506:
    #####:    #####:  507:      struct brw_reg ind_src = brw_VxH_indirect(0, 0);
        -:        -:  508:
    #####:    #####:  509:      brw_inst *mov = brw_MOV(p, dst, retype(ind_src, reg.type));
        -:        -:  510:
    #####:    #####:  511:      if (devinfo->gen == 6 && dst.file == BRW_MESSAGE_REGISTER_FILE &&
    #####:    #####:  512:          !inst->get_next()->is_tail_sentinel() &&
    #####:    #####:  513:          ((fs_inst *)inst->get_next())->mlen > 0) {
        -:        -:  514:         /* From the Sandybridge PRM:
        -:        -:  515:          *
        -:        -:  516:          *    "[Errata: DevSNB(SNB)] If MRF register is updated by any
        -:        -:  517:          *    instruction that “indexed/indirect” source AND is followed by a
        -:        -:  518:          *    send, the instruction requires a “Switch”. This is to avoid
        -:        -:  519:          *    race condition where send may dispatch before MRF is updated."
        -:        -:  520:          */
    #####:    #####:  521:         brw_inst_set_thread_control(devinfo, mov, BRW_THREAD_SWITCH);
        -:        -:  522:      }
        -:        -:  523:   }
    #####:    #####:  524:}
        -:        -:  525:
        -:        -:  526:void
    #####:    #####:  527:fs_generator::generate_urb_read(fs_inst *inst,
        -:        -:  528:                                struct brw_reg dst,
        -:        -:  529:                                struct brw_reg header)
        -:        -:  530:{
    #####:    #####:  531:   assert(inst->size_written % REG_SIZE == 0);
    #####:    #####:  532:   assert(header.file == BRW_GENERAL_REGISTER_FILE);
    #####:    #####:  533:   assert(header.type == BRW_REGISTER_TYPE_UD);
        -:        -:  534:
    #####:    #####:  535:   brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND);
    #####:    #####:  536:   brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UD));
    #####:    #####:  537:   brw_set_src0(p, send, header);
    #####:    #####:  538:   brw_set_src1(p, send, brw_imm_ud(0u));
        -:        -:  539:
    #####:    #####:  540:   brw_inst_set_sfid(p->devinfo, send, BRW_SFID_URB);
    #####:    #####:  541:   brw_inst_set_urb_opcode(p->devinfo, send, GEN8_URB_OPCODE_SIMD8_READ);
        -:        -:  542:
    #####:    #####:  543:   if (inst->opcode == SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT)
    #####:    #####:  544:      brw_inst_set_urb_per_slot_offset(p->devinfo, send, true);
        -:        -:  545:
    #####:    #####:  546:   brw_inst_set_mlen(p->devinfo, send, inst->mlen);
    #####:    #####:  547:   brw_inst_set_rlen(p->devinfo, send, inst->size_written / REG_SIZE);
    #####:    #####:  548:   brw_inst_set_header_present(p->devinfo, send, true);
    #####:    #####:  549:   brw_inst_set_urb_global_offset(p->devinfo, send, inst->offset);
    #####:    #####:  550:}
        -:        -:  551:
        -:        -:  552:void
    #####:    #####:  553:fs_generator::generate_urb_write(fs_inst *inst, struct brw_reg payload)
        -:        -:  554:{
        -:        -:  555:   brw_inst *insn;
        -:        -:  556:
    #####:    #####:  557:   insn = brw_next_insn(p, BRW_OPCODE_SEND);
        -:        -:  558:
    #####:    #####:  559:   brw_set_dest(p, insn, brw_null_reg());
    #####:    #####:  560:   brw_set_src0(p, insn, payload);
    #####:    #####:  561:   brw_set_src1(p, insn, brw_imm_d(0));
        -:        -:  562:
    #####:    #####:  563:   brw_inst_set_sfid(p->devinfo, insn, BRW_SFID_URB);
    #####:    #####:  564:   brw_inst_set_urb_opcode(p->devinfo, insn, GEN8_URB_OPCODE_SIMD8_WRITE);
        -:        -:  565:
    #####:    #####:  566:   if (inst->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT ||
    #####:    #####:  567:       inst->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT)
    #####:    #####:  568:      brw_inst_set_urb_per_slot_offset(p->devinfo, insn, true);
        -:        -:  569:
    #####:    #####:  570:   if (inst->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_MASKED ||
    #####:    #####:  571:       inst->opcode == SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT)
    #####:    #####:  572:      brw_inst_set_urb_channel_mask_present(p->devinfo, insn, true);
        -:        -:  573:
    #####:    #####:  574:   brw_inst_set_mlen(p->devinfo, insn, inst->mlen);
    #####:    #####:  575:   brw_inst_set_rlen(p->devinfo, insn, 0);
    #####:    #####:  576:   brw_inst_set_eot(p->devinfo, insn, inst->eot);
    #####:    #####:  577:   brw_inst_set_header_present(p->devinfo, insn, true);
    #####:    #####:  578:   brw_inst_set_urb_global_offset(p->devinfo, insn, inst->offset);
    #####:    #####:  579:}
        -:        -:  580:
        -:        -:  581:void
    #####:    #####:  582:fs_generator::generate_cs_terminate(fs_inst *inst, struct brw_reg payload)
        -:        -:  583:{
        -:        -:  584:   struct brw_inst *insn;
        -:        -:  585:
    #####:    #####:  586:   insn = brw_next_insn(p, BRW_OPCODE_SEND);
        -:        -:  587:
    #####:    #####:  588:   brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_UW));
    #####:    #####:  589:   brw_set_src0(p, insn, retype(payload, BRW_REGISTER_TYPE_UW));
    #####:    #####:  590:   brw_set_src1(p, insn, brw_imm_d(0));
        -:        -:  591:
        -:        -:  592:   /* Terminate a compute shader by sending a message to the thread spawner.
        -:        -:  593:    */
    #####:    #####:  594:   brw_inst_set_sfid(devinfo, insn, BRW_SFID_THREAD_SPAWNER);
    #####:    #####:  595:   brw_inst_set_mlen(devinfo, insn, 1);
    #####:    #####:  596:   brw_inst_set_rlen(devinfo, insn, 0);
    #####:    #####:  597:   brw_inst_set_eot(devinfo, insn, inst->eot);
    #####:    #####:  598:   brw_inst_set_header_present(devinfo, insn, false);
        -:        -:  599:
    #####:    #####:  600:   brw_inst_set_ts_opcode(devinfo, insn, 0); /* Dereference resource */
    #####:    #####:  601:   brw_inst_set_ts_request_type(devinfo, insn, 0); /* Root thread */
        -:        -:  602:
        -:        -:  603:   /* Note that even though the thread has a URB resource associated with it,
        -:        -:  604:    * we set the "do not dereference URB" bit, because the URB resource is
        -:        -:  605:    * managed by the fixed-function unit, so it will free it automatically.
        -:        -:  606:    */
    #####:    #####:  607:   brw_inst_set_ts_resource_select(devinfo, insn, 1); /* Do not dereference URB */
        -:        -:  608:
    #####:    #####:  609:   brw_inst_set_mask_control(devinfo, insn, BRW_MASK_DISABLE);
    #####:    #####:  610:}
        -:        -:  611:
        -:        -:  612:void
    #####:    #####:  613:fs_generator::generate_barrier(fs_inst *inst, struct brw_reg src)
        -:        -:  614:{
    #####:    #####:  615:   brw_barrier(p, src);
    #####:    #####:  616:   brw_WAIT(p);
    #####:    #####:  617:}
        -:        -:  618:
        -:        -:  619:void
        8:        8:  620:fs_generator::generate_linterp(fs_inst *inst,
        -:        -:  621:			     struct brw_reg dst, struct brw_reg *src)
        -:        -:  622:{
        -:        -:  623:   /* PLN reads:
        -:        -:  624:    *                      /   in SIMD16   \
        -:        -:  625:    *    -----------------------------------
        -:        -:  626:    *   | src1+0 | src1+1 | src1+2 | src1+3 |
        -:        -:  627:    *   |-----------------------------------|
        -:        -:  628:    *   |(x0, x1)|(y0, y1)|(x2, x3)|(y2, y3)|
        -:        -:  629:    *    -----------------------------------
        -:        -:  630:    *
        -:        -:  631:    * but for the LINE/MAC pair, the LINE reads Xs and the MAC reads Ys:
        -:        -:  632:    *
        -:        -:  633:    *    -----------------------------------
        -:        -:  634:    *   | src1+0 | src1+1 | src1+2 | src1+3 |
        -:        -:  635:    *   |-----------------------------------|
        -:        -:  636:    *   |(x0, x1)|(y0, y1)|        |        | in SIMD8
        -:        -:  637:    *   |-----------------------------------|
        -:        -:  638:    *   |(x0, x1)|(x2, x3)|(y0, y1)|(y2, y3)| in SIMD16
        -:        -:  639:    *    -----------------------------------
        -:        -:  640:    *
        -:        -:  641:    * See also: emit_interpolation_setup_gen4().
        -:        -:  642:    */
        8:        8:  643:   struct brw_reg delta_x = src[0];
        8:        8:  644:   struct brw_reg delta_y = offset(src[0], inst->exec_size / 8);
        8:        8:  645:   struct brw_reg interp = src[1];
        -:        -:  646:
       16:       16:  647:   if (devinfo->has_pln &&
       16:       16:  648:       (devinfo->gen >= 7 || (delta_x.nr & 1) == 0)) {
        8:        8:  649:      brw_PLN(p, dst, interp, delta_x);
        -:        -:  650:   } else {
    #####:    #####:  651:      brw_LINE(p, brw_null_reg(), interp, delta_x);
    #####:    #####:  652:      brw_MAC(p, dst, suboffset(interp, 1), delta_y);
        -:        -:  653:   }
        8:        8:  654:}
        -:        -:  655:
        -:        -:  656:void
    #####:    #####:  657:fs_generator::generate_get_buffer_size(fs_inst *inst,
        -:        -:  658:                                       struct brw_reg dst,
        -:        -:  659:                                       struct brw_reg src,
        -:        -:  660:                                       struct brw_reg surf_index)
        -:        -:  661:{
    #####:    #####:  662:   assert(devinfo->gen >= 7);
    #####:    #####:  663:   assert(surf_index.file == BRW_IMMEDIATE_VALUE);
        -:        -:  664:
        -:        -:  665:   uint32_t simd_mode;
    #####:    #####:  666:   int rlen = 4;
        -:        -:  667:
    #####:    #####:  668:   switch (inst->exec_size) {
        -:        -:  669:   case 8:
    #####:    #####:  670:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8;
    #####:    #####:  671:      break;
        -:        -:  672:   case 16:
    #####:    #####:  673:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
    #####:    #####:  674:      break;
        -:        -:  675:   default:
    #####:    #####:  676:      unreachable("Invalid width for texture instruction");
        -:        -:  677:   }
        -:        -:  678:
    #####:    #####:  679:   if (simd_mode == BRW_SAMPLER_SIMD_MODE_SIMD16) {
    #####:    #####:  680:      rlen = 8;
    #####:    #####:  681:      dst = vec16(dst);
        -:        -:  682:   }
        -:        -:  683:
    #####:    #####:  684:   brw_SAMPLE(p,
        -:        -:  685:              retype(dst, BRW_REGISTER_TYPE_UW),
    #####:    #####:  686:              inst->base_mrf,
        -:        -:  687:              src,
        -:        -:  688:              surf_index.ud,
        -:        -:  689:              0,
        -:        -:  690:              GEN5_SAMPLER_MESSAGE_SAMPLE_RESINFO,
        -:        -:  691:              rlen, /* response length */
    #####:    #####:  692:              inst->mlen,
    #####:    #####:  693:              inst->header_size > 0,
        -:        -:  694:              simd_mode,
    #####:    #####:  695:              BRW_SAMPLER_RETURN_FORMAT_SINT32);
        -:        -:  696:
    #####:    #####:  697:   brw_mark_surface_used(prog_data, surf_index.ud);
    #####:    #####:  698:}
        -:        -:  699:
        -:        -:  700:void
    #####:    #####:  701:fs_generator::generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src,
        -:        -:  702:                           struct brw_reg surface_index,
        -:        -:  703:                           struct brw_reg sampler_index)
        -:        -:  704:{
    #####:    #####:  705:   assert(inst->size_written % REG_SIZE == 0);
    #####:    #####:  706:   int msg_type = -1;
        -:        -:  707:   uint32_t simd_mode;
        -:        -:  708:   uint32_t return_format;
    #####:    #####:  709:   bool is_combined_send = inst->eot;
        -:        -:  710:
    #####:    #####:  711:   switch (dst.type) {
        -:        -:  712:   case BRW_REGISTER_TYPE_D:
    #####:    #####:  713:      return_format = BRW_SAMPLER_RETURN_FORMAT_SINT32;
    #####:    #####:  714:      break;
        -:        -:  715:   case BRW_REGISTER_TYPE_UD:
    #####:    #####:  716:      return_format = BRW_SAMPLER_RETURN_FORMAT_UINT32;
    #####:    #####:  717:      break;
        -:        -:  718:   default:
    #####:    #####:  719:      return_format = BRW_SAMPLER_RETURN_FORMAT_FLOAT32;
    #####:    #####:  720:      break;
        -:        -:  721:   }
        -:        -:  722:
        -:        -:  723:   /* Stomp the resinfo output type to UINT32.  On gens 4-5, the output type
        -:        -:  724:    * is set as part of the message descriptor.  On gen4, the PRM seems to
        -:        -:  725:    * allow UINT32 and FLOAT32 (i965 PRM, Vol. 4 Section 4.8.1.1), but on
        -:        -:  726:    * later gens UINT32 is required.  Once you hit Sandy Bridge, the bit is
        -:        -:  727:    * gone from the message descriptor entirely and you just get UINT32 all
        -:        -:  728:    * the time regasrdless.  Since we can really only do non-UINT32 on gen4,
        -:        -:  729:    * just stomp it to UINT32 all the time.
        -:        -:  730:    */
    #####:    #####:  731:   if (inst->opcode == SHADER_OPCODE_TXS)
    #####:    #####:  732:      return_format = BRW_SAMPLER_RETURN_FORMAT_UINT32;
        -:        -:  733:
    #####:    #####:  734:   switch (inst->exec_size) {
        -:        -:  735:   case 8:
    #####:    #####:  736:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8;
    #####:    #####:  737:      break;
        -:        -:  738:   case 16:
    #####:    #####:  739:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
    #####:    #####:  740:      break;
        -:        -:  741:   default:
    #####:    #####:  742:      unreachable("Invalid width for texture instruction");
        -:        -:  743:   }
        -:        -:  744:
    #####:    #####:  745:   if (devinfo->gen >= 5) {
    #####:    #####:  746:      switch (inst->opcode) {
        -:        -:  747:      case SHADER_OPCODE_TEX:
    #####:    #####:  748:	 if (inst->shadow_compare) {
    #####:    #####:  749:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_COMPARE;
        -:        -:  750:	 } else {
    #####:    #####:  751:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE;
        -:        -:  752:	 }
    #####:    #####:  753:	 break;
        -:        -:  754:      case FS_OPCODE_TXB:
    #####:    #####:  755:	 if (inst->shadow_compare) {
    #####:    #####:  756:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS_COMPARE;
        -:        -:  757:	 } else {
    #####:    #####:  758:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS;
        -:        -:  759:	 }
    #####:    #####:  760:	 break;
        -:        -:  761:      case SHADER_OPCODE_TXL:
    #####:    #####:  762:	 if (inst->shadow_compare) {
    #####:    #####:  763:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_LOD_COMPARE;
        -:        -:  764:	 } else {
    #####:    #####:  765:	    msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_LOD;
        -:        -:  766:	 }
    #####:    #####:  767:	 break;
        -:        -:  768:      case SHADER_OPCODE_TXL_LZ:
    #####:    #####:  769:         assert(devinfo->gen >= 9);
    #####:    #####:  770:	 if (inst->shadow_compare) {
    #####:    #####:  771:            msg_type = GEN9_SAMPLER_MESSAGE_SAMPLE_C_LZ;
        -:        -:  772:         } else {
    #####:    #####:  773:            msg_type = GEN9_SAMPLER_MESSAGE_SAMPLE_LZ;
        -:        -:  774:         }
    #####:    #####:  775:         break;
        -:        -:  776:      case SHADER_OPCODE_TXS:
    #####:    #####:  777:	 msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_RESINFO;
    #####:    #####:  778:	 break;
        -:        -:  779:      case SHADER_OPCODE_TXD:
    #####:    #####:  780:         if (inst->shadow_compare) {
        -:        -:  781:            /* Gen7.5+.  Otherwise, lowered in NIR */
    #####:    #####:  782:            assert(devinfo->gen >= 8 || devinfo->is_haswell);
    #####:    #####:  783:            msg_type = HSW_SAMPLER_MESSAGE_SAMPLE_DERIV_COMPARE;
        -:        -:  784:         } else {
    #####:    #####:  785:            msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS;
        -:        -:  786:         }
    #####:    #####:  787:	 break;
        -:        -:  788:      case SHADER_OPCODE_TXF:
    #####:    #####:  789:	 msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_LD;
    #####:    #####:  790:	 break;
        -:        -:  791:      case SHADER_OPCODE_TXF_LZ:
    #####:    #####:  792:         assert(devinfo->gen >= 9);
    #####:    #####:  793:         msg_type = GEN9_SAMPLER_MESSAGE_SAMPLE_LD_LZ;
    #####:    #####:  794:         break;
        -:        -:  795:      case SHADER_OPCODE_TXF_CMS_W:
    #####:    #####:  796:         assert(devinfo->gen >= 9);
    #####:    #####:  797:         msg_type = GEN9_SAMPLER_MESSAGE_SAMPLE_LD2DMS_W;
    #####:    #####:  798:         break;
        -:        -:  799:      case SHADER_OPCODE_TXF_CMS:
    #####:    #####:  800:         if (devinfo->gen >= 7)
    #####:    #####:  801:            msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_LD2DMS;
        -:        -:  802:         else
    #####:    #####:  803:            msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_LD;
    #####:    #####:  804:         break;
        -:        -:  805:      case SHADER_OPCODE_TXF_UMS:
    #####:    #####:  806:         assert(devinfo->gen >= 7);
    #####:    #####:  807:         msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_LD2DSS;
    #####:    #####:  808:         break;
        -:        -:  809:      case SHADER_OPCODE_TXF_MCS:
    #####:    #####:  810:         assert(devinfo->gen >= 7);
    #####:    #####:  811:         msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_LD_MCS;
    #####:    #####:  812:         break;
        -:        -:  813:      case SHADER_OPCODE_LOD:
    #####:    #####:  814:         msg_type = GEN5_SAMPLER_MESSAGE_LOD;
    #####:    #####:  815:         break;
        -:        -:  816:      case SHADER_OPCODE_TG4:
    #####:    #####:  817:         if (inst->shadow_compare) {
    #####:    #####:  818:            assert(devinfo->gen >= 7);
    #####:    #####:  819:            msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_GATHER4_C;
        -:        -:  820:         } else {
    #####:    #####:  821:            assert(devinfo->gen >= 6);
    #####:    #####:  822:            msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_GATHER4;
        -:        -:  823:         }
    #####:    #####:  824:         break;
        -:        -:  825:      case SHADER_OPCODE_TG4_OFFSET:
    #####:    #####:  826:         assert(devinfo->gen >= 7);
    #####:    #####:  827:         if (inst->shadow_compare) {
    #####:    #####:  828:            msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_GATHER4_PO_C;
        -:        -:  829:         } else {
    #####:    #####:  830:            msg_type = GEN7_SAMPLER_MESSAGE_SAMPLE_GATHER4_PO;
        -:        -:  831:         }
    #####:    #####:  832:         break;
        -:        -:  833:      case SHADER_OPCODE_SAMPLEINFO:
    #####:    #####:  834:         msg_type = GEN6_SAMPLER_MESSAGE_SAMPLE_SAMPLEINFO;
    #####:    #####:  835:         break;
        -:        -:  836:      default:
    #####:    #####:  837:	 unreachable("not reached");
        -:        -:  838:      }
        -:        -:  839:   } else {
    #####:    #####:  840:      switch (inst->opcode) {
        -:        -:  841:      case SHADER_OPCODE_TEX:
        -:        -:  842:	 /* Note that G45 and older determines shadow compare and dispatch width
        -:        -:  843:	  * from message length for most messages.
        -:        -:  844:	  */
    #####:    #####:  845:         if (inst->exec_size == 8) {
    #####:    #####:  846:            msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE;
    #####:    #####:  847:            if (inst->shadow_compare) {
    #####:    #####:  848:               assert(inst->mlen == 6);
        -:        -:  849:            } else {
    #####:    #####:  850:               assert(inst->mlen <= 4);
        -:        -:  851:            }
        -:        -:  852:         } else {
    #####:    #####:  853:            if (inst->shadow_compare) {
    #####:    #####:  854:               msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE;
    #####:    #####:  855:               assert(inst->mlen == 9);
        -:        -:  856:            } else {
    #####:    #####:  857:               msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE;
    #####:    #####:  858:               assert(inst->mlen <= 7 && inst->mlen % 2 == 1);
        -:        -:  859:            }
        -:        -:  860:         }
    #####:    #####:  861:	 break;
        -:        -:  862:      case FS_OPCODE_TXB:
    #####:    #####:  863:	 if (inst->shadow_compare) {
    #####:    #####:  864:            assert(inst->exec_size == 8);
    #####:    #####:  865:	    assert(inst->mlen == 6);
    #####:    #####:  866:	    msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_BIAS_COMPARE;
        -:        -:  867:	 } else {
    #####:    #####:  868:	    assert(inst->mlen == 9);
    #####:    #####:  869:	    msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS;
    #####:    #####:  870:	    simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
        -:        -:  871:	 }
    #####:    #####:  872:	 break;
        -:        -:  873:      case SHADER_OPCODE_TXL:
    #####:    #####:  874:	 if (inst->shadow_compare) {
    #####:    #####:  875:            assert(inst->exec_size == 8);
    #####:    #####:  876:	    assert(inst->mlen == 6);
    #####:    #####:  877:	    msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_LOD_COMPARE;
        -:        -:  878:	 } else {
    #####:    #####:  879:	    assert(inst->mlen == 9);
    #####:    #####:  880:	    msg_type = BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD;
    #####:    #####:  881:	    simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
        -:        -:  882:	 }
    #####:    #####:  883:	 break;
        -:        -:  884:      case SHADER_OPCODE_TXD:
        -:        -:  885:	 /* There is no sample_d_c message; comparisons are done manually */
    #####:    #####:  886:         assert(inst->exec_size == 8);
    #####:    #####:  887:	 assert(inst->mlen == 7 || inst->mlen == 10);
    #####:    #####:  888:	 msg_type = BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS;
    #####:    #####:  889:	 break;
        -:        -:  890:      case SHADER_OPCODE_TXF:
    #####:    #####:  891:         assert(inst->mlen <= 9 && inst->mlen % 2 == 1);
    #####:    #####:  892:	 msg_type = BRW_SAMPLER_MESSAGE_SIMD16_LD;
    #####:    #####:  893:	 simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
    #####:    #####:  894:	 break;
        -:        -:  895:      case SHADER_OPCODE_TXS:
    #####:    #####:  896:	 assert(inst->mlen == 3);
    #####:    #####:  897:	 msg_type = BRW_SAMPLER_MESSAGE_SIMD16_RESINFO;
    #####:    #####:  898:	 simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
    #####:    #####:  899:	 break;
        -:        -:  900:      default:
    #####:    #####:  901:	 unreachable("not reached");
        -:        -:  902:      }
        -:        -:  903:   }
    #####:    #####:  904:   assert(msg_type != -1);
        -:        -:  905:
    #####:    #####:  906:   if (simd_mode == BRW_SAMPLER_SIMD_MODE_SIMD16) {
    #####:    #####:  907:      dst = vec16(dst);
        -:        -:  908:   }
        -:        -:  909:
    #####:    #####:  910:   assert(devinfo->gen < 7 || inst->header_size == 0 ||
    #####:    #####:  911:          src.file == BRW_GENERAL_REGISTER_FILE);
        -:        -:  912:
    #####:    #####:  913:   assert(sampler_index.type == BRW_REGISTER_TYPE_UD);
        -:        -:  914:
        -:        -:  915:   /* Load the message header if present.  If there's a texture offset,
        -:        -:  916:    * we need to set it up explicitly and load the offset bitfield.
        -:        -:  917:    * Otherwise, we can use an implied move from g0 to the first message reg.
        -:        -:  918:    */
    #####:    #####:  919:   if (inst->header_size != 0) {
    #####:    #####:  920:      if (devinfo->gen < 6 && !inst->offset) {
        -:        -:  921:         /* Set up an implied move from g0 to the MRF. */
    #####:    #####:  922:         src = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW);
        -:        -:  923:      } else {
        -:        -:  924:         struct brw_reg header_reg;
        -:        -:  925:
    #####:    #####:  926:         if (devinfo->gen >= 7) {
    #####:    #####:  927:            header_reg = src;
        -:        -:  928:         } else {
    #####:    #####:  929:            assert(inst->base_mrf != -1);
    #####:    #####:  930:            header_reg = brw_message_reg(inst->base_mrf);
        -:        -:  931:         }
        -:        -:  932:
    #####:    #####:  933:         brw_push_insn_state(p);
    #####:    #####:  934:         brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####:  935:         brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####:  936:         brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
        -:        -:  937:         /* Explicitly set up the message header by copying g0 to the MRF. */
    #####:    #####:  938:         brw_MOV(p, header_reg, brw_vec8_grf(0, 0));
        -:        -:  939:
    #####:    #####:  940:         if (inst->offset) {
        -:        -:  941:            /* Set the offset bits in DWord 2. */
    #####:    #####:  942:            brw_MOV(p, get_element_ud(header_reg, 2),
    #####:    #####:  943:                       brw_imm_ud(inst->offset));
    #####:    #####:  944:         } else if (stage != MESA_SHADER_VERTEX &&
    #####:    #####:  945:                    stage != MESA_SHADER_FRAGMENT) {
        -:        -:  946:            /* The vertex and fragment stages have g0.2 set to 0, so
        -:        -:  947:             * header0.2 is 0 when g0 is copied. Other stages may not, so we
        -:        -:  948:             * must set it to 0 to avoid setting undesirable bits in the
        -:        -:  949:             * message.
        -:        -:  950:             */
    #####:    #####:  951:            brw_MOV(p, get_element_ud(header_reg, 2), brw_imm_ud(0));
        -:        -:  952:         }
        -:        -:  953:
    #####:    #####:  954:         brw_adjust_sampler_state_pointer(p, header_reg, sampler_index);
    #####:    #####:  955:         brw_pop_insn_state(p);
        -:        -:  956:      }
        -:        -:  957:   }
        -:        -:  958:
    #####:    #####:  959:   uint32_t base_binding_table_index = (inst->opcode == SHADER_OPCODE_TG4 ||
    #####:    #####:  960:         inst->opcode == SHADER_OPCODE_TG4_OFFSET)
    #####:    #####:  961:         ? prog_data->binding_table.gather_texture_start
    #####:    #####:  962:         : prog_data->binding_table.texture_start;
        -:        -:  963:
    #####:    #####:  964:   if (surface_index.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####:  965:       sampler_index.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####:  966:      uint32_t surface = surface_index.ud;
    #####:    #####:  967:      uint32_t sampler = sampler_index.ud;
        -:        -:  968:
    #####:    #####:  969:      brw_SAMPLE(p,
        -:        -:  970:                 retype(dst, BRW_REGISTER_TYPE_UW),
    #####:    #####:  971:                 inst->base_mrf,
        -:        -:  972:                 src,
        -:        -:  973:                 surface + base_binding_table_index,
        -:        -:  974:                 sampler % 16,
        -:        -:  975:                 msg_type,
    #####:    #####:  976:                 inst->size_written / REG_SIZE,
    #####:    #####:  977:                 inst->mlen,
    #####:    #####:  978:                 inst->header_size != 0,
        -:        -:  979:                 simd_mode,
    #####:    #####:  980:                 return_format);
        -:        -:  981:
    #####:    #####:  982:      brw_mark_surface_used(prog_data, surface + base_binding_table_index);
        -:        -:  983:   } else {
        -:        -:  984:      /* Non-const sampler index */
        -:        -:  985:
    #####:    #####:  986:      struct brw_reg addr = vec1(retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD));
    #####:    #####:  987:      struct brw_reg surface_reg = vec1(retype(surface_index, BRW_REGISTER_TYPE_UD));
    #####:    #####:  988:      struct brw_reg sampler_reg = vec1(retype(sampler_index, BRW_REGISTER_TYPE_UD));
        -:        -:  989:
    #####:    #####:  990:      brw_push_insn_state(p);
    #####:    #####:  991:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####:  992:      brw_set_default_access_mode(p, BRW_ALIGN_1);
        -:        -:  993:
    #####:    #####:  994:      if (brw_regs_equal(&surface_reg, &sampler_reg)) {
    #####:    #####:  995:         brw_MUL(p, addr, sampler_reg, brw_imm_uw(0x101));
        -:        -:  996:      } else {
    #####:    #####:  997:         if (sampler_reg.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####:  998:            brw_OR(p, addr, surface_reg, brw_imm_ud(sampler_reg.ud << 8));
        -:        -:  999:         } else {
    #####:    #####: 1000:            brw_SHL(p, addr, sampler_reg, brw_imm_ud(8));
    #####:    #####: 1001:            brw_OR(p, addr, addr, surface_reg);
        -:        -: 1002:         }
        -:        -: 1003:      }
    #####:    #####: 1004:      if (base_binding_table_index)
    #####:    #####: 1005:         brw_ADD(p, addr, addr, brw_imm_ud(base_binding_table_index));
    #####:    #####: 1006:      brw_AND(p, addr, addr, brw_imm_ud(0xfff));
        -:        -: 1007:
    #####:    #####: 1008:      brw_pop_insn_state(p);
        -:        -: 1009:
        -:        -: 1010:      /* dst = send(offset, a0.0 | <descriptor>) */
    #####:    #####: 1011:      brw_inst *insn = brw_send_indirect_message(
    #####:    #####: 1012:         p, BRW_SFID_SAMPLER, dst, src, addr);
    #####:    #####: 1013:      brw_set_sampler_message(p, insn,
        -:        -: 1014:                              0 /* surface */,
        -:        -: 1015:                              0 /* sampler */,
        -:        -: 1016:                              msg_type,
    #####:    #####: 1017:                              inst->size_written / REG_SIZE,
    #####:    #####: 1018:                              inst->mlen /* mlen */,
    #####:    #####: 1019:                              inst->header_size != 0 /* header */,
        -:        -: 1020:                              simd_mode,
    #####:    #####: 1021:                              return_format);
        -:        -: 1022:
        -:        -: 1023:      /* visitor knows more than we do about the surface limit required,
        -:        -: 1024:       * so has already done marking.
        -:        -: 1025:       */
        -:        -: 1026:   }
        -:        -: 1027:
    #####:    #####: 1028:   if (is_combined_send) {
    #####:    #####: 1029:      brw_inst_set_eot(p->devinfo, brw_last_inst, true);
    #####:    #####: 1030:      brw_inst_set_opcode(p->devinfo, brw_last_inst, BRW_OPCODE_SENDC);
        -:        -: 1031:   }
    #####:    #####: 1032:}
        -:        -: 1033:
        -:        -: 1034:
        -:        -: 1035:/* For OPCODE_DDX and OPCODE_DDY, per channel of output we've got input
        -:        -: 1036: * looking like:
        -:        -: 1037: *
        -:        -: 1038: * arg0: ss0.tl ss0.tr ss0.bl ss0.br ss1.tl ss1.tr ss1.bl ss1.br
        -:        -: 1039: *
        -:        -: 1040: * Ideally, we want to produce:
        -:        -: 1041: *
        -:        -: 1042: *           DDX                     DDY
        -:        -: 1043: * dst: (ss0.tr - ss0.tl)     (ss0.tl - ss0.bl)
        -:        -: 1044: *      (ss0.tr - ss0.tl)     (ss0.tr - ss0.br)
        -:        -: 1045: *      (ss0.br - ss0.bl)     (ss0.tl - ss0.bl)
        -:        -: 1046: *      (ss0.br - ss0.bl)     (ss0.tr - ss0.br)
        -:        -: 1047: *      (ss1.tr - ss1.tl)     (ss1.tl - ss1.bl)
        -:        -: 1048: *      (ss1.tr - ss1.tl)     (ss1.tr - ss1.br)
        -:        -: 1049: *      (ss1.br - ss1.bl)     (ss1.tl - ss1.bl)
        -:        -: 1050: *      (ss1.br - ss1.bl)     (ss1.tr - ss1.br)
        -:        -: 1051: *
        -:        -: 1052: * and add another set of two more subspans if in 16-pixel dispatch mode.
        -:        -: 1053: *
        -:        -: 1054: * For DDX, it ends up being easy: width = 2, horiz=0 gets us the same result
        -:        -: 1055: * for each pair, and vertstride = 2 jumps us 2 elements after processing a
        -:        -: 1056: * pair.  But the ideal approximation may impose a huge performance cost on
        -:        -: 1057: * sample_d.  On at least Haswell, sample_d instruction does some
        -:        -: 1058: * optimizations if the same LOD is used for all pixels in the subspan.
        -:        -: 1059: *
        -:        -: 1060: * For DDY, we need to use ALIGN16 mode since it's capable of doing the
        -:        -: 1061: * appropriate swizzling.
        -:        -: 1062: */
        -:        -: 1063:void
    #####:    #####: 1064:fs_generator::generate_ddx(enum opcode opcode,
        -:        -: 1065:                           struct brw_reg dst, struct brw_reg src)
        -:        -: 1066:{
        -:        -: 1067:   unsigned vstride, width;
        -:        -: 1068:
    #####:    #####: 1069:   if (opcode == FS_OPCODE_DDX_FINE) {
        -:        -: 1070:      /* produce accurate derivatives */
    #####:    #####: 1071:      vstride = BRW_VERTICAL_STRIDE_2;
    #####:    #####: 1072:      width = BRW_WIDTH_2;
        -:        -: 1073:   } else {
        -:        -: 1074:      /* replicate the derivative at the top-left pixel to other pixels */
    #####:    #####: 1075:      vstride = BRW_VERTICAL_STRIDE_4;
    #####:    #####: 1076:      width = BRW_WIDTH_4;
        -:        -: 1077:   }
        -:        -: 1078:
    #####:    #####: 1079:   struct brw_reg src0 = brw_reg(src.file, src.nr, 1,
    #####:    #####: 1080:                                 src.negate, src.abs,
        -:        -: 1081:				 BRW_REGISTER_TYPE_F,
        -:        -: 1082:				 vstride,
        -:        -: 1083:				 width,
        -:        -: 1084:				 BRW_HORIZONTAL_STRIDE_0,
    #####:    #####: 1085:				 BRW_SWIZZLE_XYZW, WRITEMASK_XYZW);
    #####:    #####: 1086:   struct brw_reg src1 = brw_reg(src.file, src.nr, 0,
    #####:    #####: 1087:                                 src.negate, src.abs,
        -:        -: 1088:				 BRW_REGISTER_TYPE_F,
        -:        -: 1089:				 vstride,
        -:        -: 1090:				 width,
        -:        -: 1091:				 BRW_HORIZONTAL_STRIDE_0,
    #####:    #####: 1092:				 BRW_SWIZZLE_XYZW, WRITEMASK_XYZW);
    #####:    #####: 1093:   brw_ADD(p, dst, src0, negate(src1));
    #####:    #####: 1094:}
        -:        -: 1095:
        -:        -: 1096:/* The negate_value boolean is used to negate the derivative computation for
        -:        -: 1097: * FBOs, since they place the origin at the upper left instead of the lower
        -:        -: 1098: * left.
        -:        -: 1099: */
        -:        -: 1100:void
    #####:    #####: 1101:fs_generator::generate_ddy(enum opcode opcode,
        -:        -: 1102:                           struct brw_reg dst, struct brw_reg src)
        -:        -: 1103:{
    #####:    #####: 1104:   if (opcode == FS_OPCODE_DDY_FINE) {
        -:        -: 1105:      /* produce accurate derivatives */
    #####:    #####: 1106:      struct brw_reg src0 = brw_reg(src.file, src.nr, 0,
    #####:    #####: 1107:                                    src.negate, src.abs,
        -:        -: 1108:                                    BRW_REGISTER_TYPE_F,
        -:        -: 1109:                                    BRW_VERTICAL_STRIDE_4,
        -:        -: 1110:                                    BRW_WIDTH_4,
        -:        -: 1111:                                    BRW_HORIZONTAL_STRIDE_1,
    #####:    #####: 1112:                                    BRW_SWIZZLE_XYXY, WRITEMASK_XYZW);
    #####:    #####: 1113:      struct brw_reg src1 = brw_reg(src.file, src.nr, 0,
    #####:    #####: 1114:                                    src.negate, src.abs,
        -:        -: 1115:                                    BRW_REGISTER_TYPE_F,
        -:        -: 1116:                                    BRW_VERTICAL_STRIDE_4,
        -:        -: 1117:                                    BRW_WIDTH_4,
        -:        -: 1118:                                    BRW_HORIZONTAL_STRIDE_1,
    #####:    #####: 1119:                                    BRW_SWIZZLE_ZWZW, WRITEMASK_XYZW);
    #####:    #####: 1120:      brw_push_insn_state(p);
    #####:    #####: 1121:      brw_set_default_access_mode(p, BRW_ALIGN_16);
    #####:    #####: 1122:      brw_ADD(p, dst, negate(src0), src1);
    #####:    #####: 1123:      brw_pop_insn_state(p);
        -:        -: 1124:   } else {
        -:        -: 1125:      /* replicate the derivative at the top-left pixel to other pixels */
    #####:    #####: 1126:      struct brw_reg src0 = brw_reg(src.file, src.nr, 0,
    #####:    #####: 1127:                                    src.negate, src.abs,
        -:        -: 1128:                                    BRW_REGISTER_TYPE_F,
        -:        -: 1129:                                    BRW_VERTICAL_STRIDE_4,
        -:        -: 1130:                                    BRW_WIDTH_4,
        -:        -: 1131:                                    BRW_HORIZONTAL_STRIDE_0,
    #####:    #####: 1132:                                    BRW_SWIZZLE_XYZW, WRITEMASK_XYZW);
    #####:    #####: 1133:      struct brw_reg src1 = brw_reg(src.file, src.nr, 2,
    #####:    #####: 1134:                                    src.negate, src.abs,
        -:        -: 1135:                                    BRW_REGISTER_TYPE_F,
        -:        -: 1136:                                    BRW_VERTICAL_STRIDE_4,
        -:        -: 1137:                                    BRW_WIDTH_4,
        -:        -: 1138:                                    BRW_HORIZONTAL_STRIDE_0,
    #####:    #####: 1139:                                    BRW_SWIZZLE_XYZW, WRITEMASK_XYZW);
    #####:    #####: 1140:      brw_ADD(p, dst, negate(src0), src1);
        -:        -: 1141:   }
    #####:    #####: 1142:}
        -:        -: 1143:
        -:        -: 1144:void
    #####:    #####: 1145:fs_generator::generate_discard_jump(fs_inst *inst)
        -:        -: 1146:{
    #####:    #####: 1147:   assert(devinfo->gen >= 6);
        -:        -: 1148:
        -:        -: 1149:   /* This HALT will be patched up at FB write time to point UIP at the end of
        -:        -: 1150:    * the program, and at brw_uip_jip() JIP will be set to the end of the
        -:        -: 1151:    * current block (or the program).
        -:        -: 1152:    */
    #####:    #####: 1153:   this->discard_halt_patches.push_tail(new(mem_ctx) ip_record(p->nr_insn));
    #####:    #####: 1154:   gen6_HALT(p);
    #####:    #####: 1155:}
        -:        -: 1156:
        -:        -: 1157:void
    #####:    #####: 1158:fs_generator::generate_scratch_write(fs_inst *inst, struct brw_reg src)
        -:        -: 1159:{
        -:        -: 1160:   /* The 32-wide messages only respect the first 16-wide half of the channel
        -:        -: 1161:    * enable signals which are replicated identically for the second group of
        -:        -: 1162:    * 16 channels, so we cannot use them unless the write is marked
        -:        -: 1163:    * force_writemask_all.
        -:        -: 1164:    */
    #####:    #####: 1165:   const unsigned lower_size = inst->force_writemask_all ? inst->exec_size :
    #####:    #####: 1166:                               MIN2(16, inst->exec_size);
    #####:    #####: 1167:   const unsigned block_size = 4 * lower_size / REG_SIZE;
    #####:    #####: 1168:   assert(inst->mlen != 0);
        -:        -: 1169:
    #####:    #####: 1170:   brw_push_insn_state(p);
    #####:    #####: 1171:   brw_set_default_exec_size(p, cvt(lower_size) - 1);
    #####:    #####: 1172:   brw_set_default_compression(p, lower_size > 8);
        -:        -: 1173:
    #####:    #####: 1174:   for (unsigned i = 0; i < inst->exec_size / lower_size; i++) {
    #####:    #####: 1175:      brw_set_default_group(p, inst->group + lower_size * i);
        -:        -: 1176:
    #####:    #####: 1177:      brw_MOV(p, brw_uvec_mrf(lower_size, inst->base_mrf + 1, 0),
    #####:    #####: 1178:              retype(offset(src, block_size * i), BRW_REGISTER_TYPE_UD));
        -:        -: 1179:
    #####:    #####: 1180:      brw_oword_block_write_scratch(p, brw_message_reg(inst->base_mrf),
        -:        -: 1181:                                    block_size,
    #####:    #####: 1182:                                    inst->offset + block_size * REG_SIZE * i);
        -:        -: 1183:   }
        -:        -: 1184:
    #####:    #####: 1185:   brw_pop_insn_state(p);
    #####:    #####: 1186:}
        -:        -: 1187:
        -:        -: 1188:void
    #####:    #####: 1189:fs_generator::generate_scratch_read(fs_inst *inst, struct brw_reg dst)
        -:        -: 1190:{
    #####:    #####: 1191:   assert(inst->exec_size <= 16 || inst->force_writemask_all);
    #####:    #####: 1192:   assert(inst->mlen != 0);
        -:        -: 1193:
    #####:    #####: 1194:   brw_oword_block_read_scratch(p, dst, brw_message_reg(inst->base_mrf),
    #####:    #####: 1195:                                inst->exec_size / 8, inst->offset);
    #####:    #####: 1196:}
        -:        -: 1197:
        -:        -: 1198:void
    #####:    #####: 1199:fs_generator::generate_scratch_read_gen7(fs_inst *inst, struct brw_reg dst)
        -:        -: 1200:{
    #####:    #####: 1201:   assert(inst->exec_size <= 16 || inst->force_writemask_all);
        -:        -: 1202:
    #####:    #####: 1203:   gen7_block_read_scratch(p, dst, inst->exec_size / 8, inst->offset);
    #####:    #####: 1204:}
        -:        -: 1205:
        -:        -: 1206:void
    #####:    #####: 1207:fs_generator::generate_uniform_pull_constant_load(fs_inst *inst,
        -:        -: 1208:                                                  struct brw_reg dst,
        -:        -: 1209:                                                  struct brw_reg index,
        -:        -: 1210:                                                  struct brw_reg offset)
        -:        -: 1211:{
    #####:    #####: 1212:   assert(type_sz(dst.type) == 4);
    #####:    #####: 1213:   assert(inst->mlen != 0);
        -:        -: 1214:
    #####:    #####: 1215:   assert(index.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1216:	  index.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1217:   uint32_t surf_index = index.ud;
        -:        -: 1218:
    #####:    #####: 1219:   assert(offset.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1220:	  offset.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1221:   uint32_t read_offset = offset.ud;
        -:        -: 1222:
    #####:    #####: 1223:   brw_oword_block_read(p, dst, brw_message_reg(inst->base_mrf),
    #####:    #####: 1224:			read_offset, surf_index);
    #####:    #####: 1225:}
        -:        -: 1226:
        -:        -: 1227:void
    #####:    #####: 1228:fs_generator::generate_uniform_pull_constant_load_gen7(fs_inst *inst,
        -:        -: 1229:                                                       struct brw_reg dst,
        -:        -: 1230:                                                       struct brw_reg index,
        -:        -: 1231:                                                       struct brw_reg payload)
        -:        -: 1232:{
    #####:    #####: 1233:   assert(index.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1234:   assert(payload.file == BRW_GENERAL_REGISTER_FILE);
    #####:    #####: 1235:   assert(type_sz(dst.type) == 4);
        -:        -: 1236:
    #####:    #####: 1237:   if (index.file == BRW_IMMEDIATE_VALUE) {
    #####:    #####: 1238:      const uint32_t surf_index = index.ud;
        -:        -: 1239:
    #####:    #####: 1240:      brw_push_insn_state(p);
    #####:    #####: 1241:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 1242:      brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 1243:      brw_pop_insn_state(p);
        -:        -: 1244:
    #####:    #####: 1245:      brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UD));
    #####:    #####: 1246:      brw_set_src0(p, send, retype(payload, BRW_REGISTER_TYPE_UD));
    #####:    #####: 1247:      brw_set_dp_read_message(p, send, surf_index,
    #####:    #####: 1248:                              BRW_DATAPORT_OWORD_BLOCK_DWORDS(inst->exec_size),
        -:        -: 1249:                              GEN7_DATAPORT_DC_OWORD_BLOCK_READ,
        -:        -: 1250:                              GEN6_SFID_DATAPORT_CONSTANT_CACHE,
        -:        -: 1251:                              1, /* mlen */
        -:        -: 1252:                              true, /* header */
    #####:    #####: 1253:                              DIV_ROUND_UP(inst->size_written, REG_SIZE));
        -:        -: 1254:
        -:        -: 1255:   } else {
    #####:    #####: 1256:      struct brw_reg addr = vec1(retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD));
        -:        -: 1257:
    #####:    #####: 1258:      brw_push_insn_state(p);
    #####:    #####: 1259:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 1260:
        -:        -: 1261:      /* a0.0 = surf_index & 0xff */
    #####:    #####: 1262:      brw_inst *insn_and = brw_next_insn(p, BRW_OPCODE_AND);
    #####:    #####: 1263:      brw_inst_set_exec_size(p->devinfo, insn_and, BRW_EXECUTE_1);
    #####:    #####: 1264:      brw_set_dest(p, insn_and, addr);
    #####:    #####: 1265:      brw_set_src0(p, insn_and, vec1(retype(index, BRW_REGISTER_TYPE_UD)));
    #####:    #####: 1266:      brw_set_src1(p, insn_and, brw_imm_ud(0x0ff));
        -:        -: 1267:
        -:        -: 1268:      /* dst = send(payload, a0.0 | <descriptor>) */
    #####:    #####: 1269:      brw_inst *insn = brw_send_indirect_message(
        -:        -: 1270:         p, GEN6_SFID_DATAPORT_CONSTANT_CACHE,
        -:        -: 1271:         retype(dst, BRW_REGISTER_TYPE_UD),
    #####:    #####: 1272:         retype(payload, BRW_REGISTER_TYPE_UD), addr);
    #####:    #####: 1273:      brw_set_dp_read_message(p, insn, 0 /* surface */,
    #####:    #####: 1274:                              BRW_DATAPORT_OWORD_BLOCK_DWORDS(inst->exec_size),
        -:        -: 1275:                              GEN7_DATAPORT_DC_OWORD_BLOCK_READ,
        -:        -: 1276:                              GEN6_SFID_DATAPORT_CONSTANT_CACHE,
        -:        -: 1277:                              1, /* mlen */
        -:        -: 1278:                              true, /* header */
    #####:    #####: 1279:                              DIV_ROUND_UP(inst->size_written, REG_SIZE));
        -:        -: 1280:
    #####:    #####: 1281:      brw_pop_insn_state(p);
        -:        -: 1282:   }
    #####:    #####: 1283:}
        -:        -: 1284:
        -:        -: 1285:void
    #####:    #####: 1286:fs_generator::generate_varying_pull_constant_load_gen4(fs_inst *inst,
        -:        -: 1287:                                                       struct brw_reg dst,
        -:        -: 1288:                                                       struct brw_reg index)
        -:        -: 1289:{
    #####:    #####: 1290:   assert(devinfo->gen < 7); /* Should use the gen7 variant. */
    #####:    #####: 1291:   assert(inst->header_size != 0);
    #####:    #####: 1292:   assert(inst->mlen);
        -:        -: 1293:
    #####:    #####: 1294:   assert(index.file == BRW_IMMEDIATE_VALUE &&
    #####:    #####: 1295:	  index.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1296:   uint32_t surf_index = index.ud;
        -:        -: 1297:
        -:        -: 1298:   uint32_t simd_mode, rlen, msg_type;
    #####:    #####: 1299:   if (inst->exec_size == 16) {
    #####:    #####: 1300:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
    #####:    #####: 1301:      rlen = 8;
        -:        -: 1302:   } else {
    #####:    #####: 1303:      assert(inst->exec_size == 8);
    #####:    #####: 1304:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8;
    #####:    #####: 1305:      rlen = 4;
        -:        -: 1306:   }
        -:        -: 1307:
    #####:    #####: 1308:   if (devinfo->gen >= 5)
    #####:    #####: 1309:      msg_type = GEN5_SAMPLER_MESSAGE_SAMPLE_LD;
        -:        -: 1310:   else {
        -:        -: 1311:      /* We always use the SIMD16 message so that we only have to load U, and
        -:        -: 1312:       * not V or R.
        -:        -: 1313:       */
    #####:    #####: 1314:      msg_type = BRW_SAMPLER_MESSAGE_SIMD16_LD;
    #####:    #####: 1315:      assert(inst->mlen == 3);
    #####:    #####: 1316:      assert(inst->size_written == 8 * REG_SIZE);
    #####:    #####: 1317:      rlen = 8;
    #####:    #####: 1318:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
        -:        -: 1319:   }
        -:        -: 1320:
    #####:    #####: 1321:   struct brw_reg header = brw_vec8_grf(0, 0);
    #####:    #####: 1322:   gen6_resolve_implied_move(p, &header, inst->base_mrf);
        -:        -: 1323:
    #####:    #####: 1324:   brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 1325:   brw_inst_set_compression(devinfo, send, false);
    #####:    #####: 1326:   brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UW));
    #####:    #####: 1327:   brw_set_src0(p, send, header);
    #####:    #####: 1328:   if (devinfo->gen < 6)
    #####:    #####: 1329:      brw_inst_set_base_mrf(p->devinfo, send, inst->base_mrf);
        -:        -: 1330:
        -:        -: 1331:   /* Our surface is set up as floats, regardless of what actual data is
        -:        -: 1332:    * stored in it.
        -:        -: 1333:    */
    #####:    #####: 1334:   uint32_t return_format = BRW_SAMPLER_RETURN_FORMAT_FLOAT32;
    #####:    #####: 1335:   brw_set_sampler_message(p, send,
        -:        -: 1336:                           surf_index,
        -:        -: 1337:                           0, /* sampler (unused) */
        -:        -: 1338:                           msg_type,
        -:        -: 1339:                           rlen,
    #####:    #####: 1340:                           inst->mlen,
    #####:    #####: 1341:                           inst->header_size != 0,
        -:        -: 1342:                           simd_mode,
    #####:    #####: 1343:                           return_format);
    #####:    #####: 1344:}
        -:        -: 1345:
        -:        -: 1346:void
    #####:    #####: 1347:fs_generator::generate_varying_pull_constant_load_gen7(fs_inst *inst,
        -:        -: 1348:                                                       struct brw_reg dst,
        -:        -: 1349:                                                       struct brw_reg index,
        -:        -: 1350:                                                       struct brw_reg offset)
        -:        -: 1351:{
    #####:    #####: 1352:   assert(devinfo->gen >= 7);
        -:        -: 1353:   /* Varying-offset pull constant loads are treated as a normal expression on
        -:        -: 1354:    * gen7, so the fact that it's a send message is hidden at the IR level.
        -:        -: 1355:    */
    #####:    #####: 1356:   assert(inst->header_size == 0);
    #####:    #####: 1357:   assert(!inst->mlen);
    #####:    #####: 1358:   assert(index.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1359:
        -:        -: 1360:   uint32_t simd_mode, rlen, mlen;
    #####:    #####: 1361:   if (inst->exec_size == 16) {
    #####:    #####: 1362:      mlen = 2;
    #####:    #####: 1363:      rlen = 8;
    #####:    #####: 1364:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD16;
        -:        -: 1365:   } else {
    #####:    #####: 1366:      assert(inst->exec_size == 8);
    #####:    #####: 1367:      mlen = 1;
    #####:    #####: 1368:      rlen = 4;
    #####:    #####: 1369:      simd_mode = BRW_SAMPLER_SIMD_MODE_SIMD8;
        -:        -: 1370:   }
        -:        -: 1371:
    #####:    #####: 1372:   if (index.file == BRW_IMMEDIATE_VALUE) {
        -:        -: 1373:
    #####:    #####: 1374:      uint32_t surf_index = index.ud;
        -:        -: 1375:
    #####:    #####: 1376:      brw_inst *send = brw_next_insn(p, BRW_OPCODE_SEND);
    #####:    #####: 1377:      brw_set_dest(p, send, retype(dst, BRW_REGISTER_TYPE_UW));
    #####:    #####: 1378:      brw_set_src0(p, send, offset);
    #####:    #####: 1379:      brw_set_sampler_message(p, send,
        -:        -: 1380:                              surf_index,
        -:        -: 1381:                              0, /* LD message ignores sampler unit */
        -:        -: 1382:                              GEN5_SAMPLER_MESSAGE_SAMPLE_LD,
        -:        -: 1383:                              rlen,
        -:        -: 1384:                              mlen,
        -:        -: 1385:                              false, /* no header */
        -:        -: 1386:                              simd_mode,
    #####:    #####: 1387:                              0);
        -:        -: 1388:
        -:        -: 1389:   } else {
        -:        -: 1390:
    #####:    #####: 1391:      struct brw_reg addr = vec1(retype(brw_address_reg(0), BRW_REGISTER_TYPE_UD));
        -:        -: 1392:
    #####:    #####: 1393:      brw_push_insn_state(p);
    #####:    #####: 1394:      brw_set_default_mask_control(p, BRW_MASK_DISABLE);
        -:        -: 1395:
        -:        -: 1396:      /* a0.0 = surf_index & 0xff */
    #####:    #####: 1397:      brw_inst *insn_and = brw_next_insn(p, BRW_OPCODE_AND);
    #####:    #####: 1398:      brw_inst_set_exec_size(p->devinfo, insn_and, BRW_EXECUTE_1);
    #####:    #####: 1399:      brw_set_dest(p, insn_and, addr);
    #####:    #####: 1400:      brw_set_src0(p, insn_and, vec1(retype(index, BRW_REGISTER_TYPE_UD)));
    #####:    #####: 1401:      brw_set_src1(p, insn_and, brw_imm_ud(0x0ff));
        -:        -: 1402:
    #####:    #####: 1403:      brw_pop_insn_state(p);
        -:        -: 1404:
        -:        -: 1405:      /* dst = send(offset, a0.0 | <descriptor>) */
    #####:    #####: 1406:      brw_inst *insn = brw_send_indirect_message(
        -:        -: 1407:         p, BRW_SFID_SAMPLER, retype(dst, BRW_REGISTER_TYPE_UW),
    #####:    #####: 1408:         offset, addr);
    #####:    #####: 1409:      brw_set_sampler_message(p, insn,
        -:        -: 1410:                              0 /* surface */,
        -:        -: 1411:                              0 /* sampler */,
        -:        -: 1412:                              GEN5_SAMPLER_MESSAGE_SAMPLE_LD,
        -:        -: 1413:                              rlen /* rlen */,
        -:        -: 1414:                              mlen /* mlen */,
        -:        -: 1415:                              false /* header */,
        -:        -: 1416:                              simd_mode,
    #####:    #####: 1417:                              0);
        -:        -: 1418:   }
    #####:    #####: 1419:}
        -:        -: 1420:
        -:        -: 1421:/**
        -:        -: 1422: * Cause the current pixel/sample mask (from R1.7 bits 15:0) to be transferred
        -:        -: 1423: * into the flags register (f0.0).
        -:        -: 1424: *
        -:        -: 1425: * Used only on Gen6 and above.
        -:        -: 1426: */
        -:        -: 1427:void
    #####:    #####: 1428:fs_generator::generate_mov_dispatch_to_flags(fs_inst *inst)
        -:        -: 1429:{
    #####:    #####: 1430:   struct brw_reg flags = brw_flag_reg(0, inst->flag_subreg);
        -:        -: 1431:   struct brw_reg dispatch_mask;
        -:        -: 1432:
    #####:    #####: 1433:   if (devinfo->gen >= 6)
    #####:    #####: 1434:      dispatch_mask = retype(brw_vec1_grf(1, 7), BRW_REGISTER_TYPE_UW);
        -:        -: 1435:   else
    #####:    #####: 1436:      dispatch_mask = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW);
        -:        -: 1437:
    #####:    #####: 1438:   brw_push_insn_state(p);
    #####:    #####: 1439:   brw_set_default_mask_control(p, BRW_MASK_DISABLE);
    #####:    #####: 1440:   brw_MOV(p, flags, dispatch_mask);
    #####:    #####: 1441:   brw_pop_insn_state(p);
    #####:    #####: 1442:}
        -:        -: 1443:
        -:        -: 1444:void
    #####:    #####: 1445:fs_generator::generate_pixel_interpolator_query(fs_inst *inst,
        -:        -: 1446:                                                struct brw_reg dst,
        -:        -: 1447:                                                struct brw_reg src,
        -:        -: 1448:                                                struct brw_reg msg_data,
        -:        -: 1449:                                                unsigned msg_type)
        -:        -: 1450:{
    #####:    #####: 1451:   assert(inst->size_written % REG_SIZE == 0);
    #####:    #####: 1452:   assert(msg_data.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1453:
    #####:    #####: 1454:   brw_pixel_interpolator_query(p,
        -:        -: 1455:         retype(dst, BRW_REGISTER_TYPE_UW),
        -:        -: 1456:         src,
    #####:    #####: 1457:         inst->pi_noperspective,
        -:        -: 1458:         msg_type,
        -:        -: 1459:         msg_data,
    #####:    #####: 1460:         inst->mlen,
    #####:    #####: 1461:         inst->size_written / REG_SIZE);
    #####:    #####: 1462:}
        -:        -: 1463:
        -:        -: 1464:/* Sets vstride=1, width=4, hstride=0 of register src1 during
        -:        -: 1465: * the ADD instruction.
        -:        -: 1466: */
        -:        -: 1467:void
    #####:    #####: 1468:fs_generator::generate_set_sample_id(fs_inst *inst,
        -:        -: 1469:                                     struct brw_reg dst,
        -:        -: 1470:                                     struct brw_reg src0,
        -:        -: 1471:                                     struct brw_reg src1)
        -:        -: 1472:{
    #####:    #####: 1473:   assert(dst.type == BRW_REGISTER_TYPE_D ||
    #####:    #####: 1474:          dst.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1475:   assert(src0.type == BRW_REGISTER_TYPE_D ||
    #####:    #####: 1476:          src0.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1477:
    #####:    #####: 1478:   struct brw_reg reg = stride(src1, 1, 4, 0);
    #####:    #####: 1479:   if (devinfo->gen >= 8 || inst->exec_size == 8) {
    #####:    #####: 1480:      brw_ADD(p, dst, src0, reg);
    #####:    #####: 1481:   } else if (inst->exec_size == 16) {
    #####:    #####: 1482:      brw_push_insn_state(p);
    #####:    #####: 1483:      brw_set_default_exec_size(p, BRW_EXECUTE_8);
    #####:    #####: 1484:      brw_set_default_compression_control(p, BRW_COMPRESSION_NONE);
    #####:    #####: 1485:      brw_ADD(p, firsthalf(dst), firsthalf(src0), reg);
    #####:    #####: 1486:      brw_set_default_compression_control(p, BRW_COMPRESSION_2NDHALF);
    #####:    #####: 1487:      brw_ADD(p, sechalf(dst), sechalf(src0), suboffset(reg, 2));
    #####:    #####: 1488:      brw_pop_insn_state(p);
        -:        -: 1489:   }
    #####:    #####: 1490:}
        -:        -: 1491:
        -:        -: 1492:void
    #####:    #####: 1493:fs_generator::generate_pack_half_2x16_split(fs_inst *inst,
        -:        -: 1494:                                            struct brw_reg dst,
        -:        -: 1495:                                            struct brw_reg x,
        -:        -: 1496:                                            struct brw_reg y)
        -:        -: 1497:{
    #####:    #####: 1498:   assert(devinfo->gen >= 7);
    #####:    #####: 1499:   assert(dst.type == BRW_REGISTER_TYPE_UD);
    #####:    #####: 1500:   assert(x.type == BRW_REGISTER_TYPE_F);
    #####:    #####: 1501:   assert(y.type == BRW_REGISTER_TYPE_F);
        -:        -: 1502:
        -:        -: 1503:   /* From the Ivybridge PRM, Vol4, Part3, Section 6.27 f32to16:
        -:        -: 1504:    *
        -:        -: 1505:    *   Because this instruction does not have a 16-bit floating-point type,
        -:        -: 1506:    *   the destination data type must be Word (W).
        -:        -: 1507:    *
        -:        -: 1508:    *   The destination must be DWord-aligned and specify a horizontal stride
        -:        -: 1509:    *   (HorzStride) of 2. The 16-bit result is stored in the lower word of
        -:        -: 1510:    *   each destination channel and the upper word is not modified.
        -:        -: 1511:    */
    #####:    #####: 1512:   struct brw_reg dst_w = spread(retype(dst, BRW_REGISTER_TYPE_W), 2);
        -:        -: 1513:
        -:        -: 1514:   /* Give each 32-bit channel of dst the form below, where "." means
        -:        -: 1515:    * unchanged.
        -:        -: 1516:    *   0x....hhhh
        -:        -: 1517:    */
    #####:    #####: 1518:   brw_F32TO16(p, dst_w, y);
        -:        -: 1519:
        -:        -: 1520:   /* Now the form:
        -:        -: 1521:    *   0xhhhh0000
        -:        -: 1522:    */
    #####:    #####: 1523:   brw_SHL(p, dst, dst, brw_imm_ud(16u));
        -:        -: 1524:
        -:        -: 1525:   /* And, finally the form of packHalf2x16's output:
        -:        -: 1526:    *   0xhhhhllll
        -:        -: 1527:    */
    #####:    #####: 1528:   brw_F32TO16(p, dst_w, x);
    #####:    #####: 1529:}
        -:        -: 1530:
        -:        -: 1531:void
    #####:    #####: 1532:fs_generator::generate_unpack_half_2x16_split(fs_inst *inst,
        -:        -: 1533:                                              struct brw_reg dst,
        -:        -: 1534:                                              struct brw_reg src)
        -:        -: 1535:{
    #####:    #####: 1536:   assert(devinfo->gen >= 7);
    #####:    #####: 1537:   assert(dst.type == BRW_REGISTER_TYPE_F);
    #####:    #####: 1538:   assert(src.type == BRW_REGISTER_TYPE_UD);
        -:        -: 1539:
        -:        -: 1540:   /* From the Ivybridge PRM, Vol4, Part3, Section 6.26 f16to32:
        -:        -: 1541:    *
        -:        -: 1542:    *   Because this instruction does not have a 16-bit floating-point type,
        -:        -: 1543:    *   the source data type must be Word (W). The destination type must be
        -:        -: 1544:    *   F (Float).
        -:        -: 1545:    */
    #####:    #####: 1546:   struct brw_reg src_w = spread(retype(src, BRW_REGISTER_TYPE_W), 2);
        -:        -: 1547:
        -:        -: 1548:   /* Each channel of src has the form of unpackHalf2x16's input: 0xhhhhllll.
        -:        -: 1549:    * For the Y case, we wish to access only the upper word; therefore
        -:        -: 1550:    * a 16-bit subregister offset is needed.
        -:        -: 1551:    */
    #####:    #####: 1552:   assert(inst->opcode == FS_OPCODE_UNPACK_HALF_2x16_SPLIT_X ||
    #####:    #####: 1553:          inst->opcode == FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y);
    #####:    #####: 1554:   if (inst->opcode == FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y)
    #####:    #####: 1555:      src_w.subnr += 2;
        -:        -: 1556:
    #####:    #####: 1557:   brw_F16TO32(p, dst, src_w);
    #####:    #####: 1558:}
        -:        -: 1559:
        -:        -: 1560:void
    #####:    #####: 1561:fs_generator::generate_shader_time_add(fs_inst *inst,
        -:        -: 1562:                                       struct brw_reg payload,
        -:        -: 1563:                                       struct brw_reg offset,
        -:        -: 1564:                                       struct brw_reg value)
        -:        -: 1565:{
    #####:    #####: 1566:   assert(devinfo->gen >= 7);
    #####:    #####: 1567:   brw_push_insn_state(p);
    #####:    #####: 1568:   brw_set_default_mask_control(p, true);
        -:        -: 1569:
    #####:    #####: 1570:   assert(payload.file == BRW_GENERAL_REGISTER_FILE);
    #####:    #####: 1571:   struct brw_reg payload_offset = retype(brw_vec1_grf(payload.nr, 0),
    #####:    #####: 1572:                                          offset.type);
    #####:    #####: 1573:   struct brw_reg payload_value = retype(brw_vec1_grf(payload.nr + 1, 0),
    #####:    #####: 1574:                                         value.type);
        -:        -: 1575:
    #####:    #####: 1576:   assert(offset.file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 1577:   if (value.file == BRW_GENERAL_REGISTER_FILE) {
    #####:    #####: 1578:      value.width = BRW_WIDTH_1;
    #####:    #####: 1579:      value.hstride = BRW_HORIZONTAL_STRIDE_0;
    #####:    #####: 1580:      value.vstride = BRW_VERTICAL_STRIDE_0;
        -:        -: 1581:   } else {
    #####:    #####: 1582:      assert(value.file == BRW_IMMEDIATE_VALUE);
        -:        -: 1583:   }
        -:        -: 1584:
        -:        -: 1585:   /* Trying to deal with setup of the params from the IR is crazy in the FS8
        -:        -: 1586:    * case, and we don't really care about squeezing every bit of performance
        -:        -: 1587:    * out of this path, so we just emit the MOVs from here.
        -:        -: 1588:    */
    #####:    #####: 1589:   brw_MOV(p, payload_offset, offset);
    #####:    #####: 1590:   brw_MOV(p, payload_value, value);
    #####:    #####: 1591:   brw_shader_time_add(p, payload,
    #####:    #####: 1592:                       prog_data->binding_table.shader_time_start);
    #####:    #####: 1593:   brw_pop_insn_state(p);
        -:        -: 1594:
    #####:    #####: 1595:   brw_mark_surface_used(prog_data,
    #####:    #####: 1596:                         prog_data->binding_table.shader_time_start);
    #####:    #####: 1597:}
        -:        -: 1598:
        -:        -: 1599:void
    #####:    #####: 1600:fs_generator::enable_debug(const char *shader_name)
        -:        -: 1601:{
    #####:    #####: 1602:   debug_flag = true;
    #####:    #####: 1603:   this->shader_name = shader_name;
    #####:    #####: 1604:}
        -:        -: 1605:
        -:        -: 1606:int
        7:        8: 1607:fs_generator::generate_code(const cfg_t *cfg, int dispatch_width)
        -:        -: 1608:{
        -:        -: 1609:   /* align to 64 byte boundary. */
        9:       11: 1610:   while (p->next_insn_offset % 64)
        2:        3: 1611:      brw_NOP(p);
        -:        -: 1612:
        5:        5: 1613:   this->dispatch_width = dispatch_width;
        -:        -: 1614:
        5:        5: 1615:   int start_offset = p->next_insn_offset;
        5:        5: 1616:   int spill_count = 0, fill_count = 0;
        5:        5: 1617:   int loop_count = 0;
        -:        -: 1618:
        -:        -: 1619:   struct annotation_info annotation;
        5:        5: 1620:   memset(&annotation, 0, sizeof(annotation));
        -:        -: 1621:
      208:      220: 1622:   foreach_block_and_inst (block, fs_inst, inst, cfg) {
        -:        -: 1623:      struct brw_reg src[3], dst;
      203:      215: 1624:      unsigned int last_insn_offset = p->next_insn_offset;
      203:      215: 1625:      bool multiple_instructions_emitted = false;
        -:        -: 1626:
        -:        -: 1627:      /* From the Broadwell PRM, Volume 7, "3D-Media-GPGPU", in the
        -:        -: 1628:       * "Register Region Restrictions" section: for BDW, SKL:
        -:        -: 1629:       *
        -:        -: 1630:       *    "A POW/FDIV operation must not be followed by an instruction
        -:        -: 1631:       *     that requires two destination registers."
        -:        -: 1632:       *
        -:        -: 1633:       * The documentation is often lacking annotations for Atom parts,
        -:        -: 1634:       * and empirically this affects CHV as well.
        -:        -: 1635:       */
      406:      430: 1636:      if (devinfo->gen >= 8 &&
    #####:    #####: 1637:          p->nr_insn > 1 &&
    #####:    #####: 1638:          brw_inst_opcode(devinfo, brw_last_inst) == BRW_OPCODE_MATH &&
      203:      215: 1639:          brw_inst_math_function(devinfo, brw_last_inst) == BRW_MATH_FUNCTION_POW &&
    #####:    #####: 1640:          inst->dst.component_size(inst->exec_size) > REG_SIZE) {
    #####:    #####: 1641:         brw_NOP(p);
    #####:    #####: 1642:         last_insn_offset = p->next_insn_offset;
        -:        -: 1643:      }
        -:        -: 1644:
      203:      215: 1645:      if (unlikely(debug_flag))
    #####:    #####: 1646:         annotate(p->devinfo, &annotation, cfg, inst, p->next_insn_offset);
        -:        -: 1647:
        -:        -: 1648:      /* If the instruction writes to more than one register, it needs to be
        -:        -: 1649:       * explicitly marked as compressed on Gen <= 5.  On Gen >= 6 the
        -:        -: 1650:       * hardware figures out by itself what the right compression mode is,
        -:        -: 1651:       * but we still need to know whether the instruction is compressed to
        -:        -: 1652:       * set up the source register regions appropriately.
        -:        -: 1653:       *
        -:        -: 1654:       * XXX - This is wrong for instructions that write a single register but
        -:        -: 1655:       *       read more than one which should strictly speaking be treated as
        -:        -: 1656:       *       compressed.  For instructions that don't write any registers it
        -:        -: 1657:       *       relies on the destination being a null register of the correct
        -:        -: 1658:       *       type and regioning so the instruction is considered compressed
        -:        -: 1659:       *       or not accordingly.
        -:        -: 1660:       */
        -:        -: 1661:      const bool compressed =
      203:      215: 1662:           inst->dst.component_size(inst->exec_size) > REG_SIZE;
      203:      215: 1663:      brw_set_default_compression(p, compressed);
      203:      215: 1664:      brw_set_default_group(p, inst->group);
        -:        -: 1665:
      454:      478: 1666:      for (unsigned int i = 0; i < inst->sources; i++) {
        -:        -: 1667:         src[i] = brw_reg_from_fs_reg(devinfo, inst,
      251:      263: 1668:                                      &inst->src[i], compressed);
        -:        -: 1669:	 /* The accumulator result appears to get used for the
        -:        -: 1670:	  * conditional modifier generation.  When negating a UD
        -:        -: 1671:	  * value, there is a 33rd bit generated for the sign in the
        -:        -: 1672:	  * accumulator value, so now you can't check, for example,
        -:        -: 1673:	  * equality with a 32-bit value.  See piglit fs-op-neg-uvec4.
        -:        -: 1674:	  */
      295:      319: 1675:	 assert(!inst->conditional_mod ||
        -:        -: 1676:		inst->src[i].type != BRW_REGISTER_TYPE_UD ||
      251:      263: 1677:		!inst->src[i].negate);
        -:        -: 1678:      }
        -:        -: 1679:      dst = brw_reg_from_fs_reg(devinfo, inst,
      203:      215: 1680:                                &inst->dst, compressed);
        -:        -: 1681:
      203:      215: 1682:      brw_set_default_access_mode(p, BRW_ALIGN_1);
      203:      215: 1683:      brw_set_default_predicate_control(p, inst->predicate);
      203:      215: 1684:      brw_set_default_predicate_inverse(p, inst->predicate_inverse);
      203:      215: 1685:      brw_set_default_flag_reg(p, 0, inst->flag_subreg);
      203:      215: 1686:      brw_set_default_saturate(p, inst->saturate);
      203:      215: 1687:      brw_set_default_mask_control(p, inst->force_writemask_all);
      203:      215: 1688:      brw_set_default_acc_write_control(p, inst->writes_accumulator);
        -:        -: 1689:
      203:      215: 1690:      unsigned exec_size = inst->exec_size;
      203:      215: 1691:      if (devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####: 1692:          (get_exec_type_size(inst) == 8 || type_sz(inst->dst.type) == 8)) {
    #####:    #####: 1693:         exec_size *= 2;
        -:        -: 1694:      }
        -:        -: 1695:
      203:      215: 1696:      brw_set_default_exec_size(p, cvt(exec_size) - 1);
        -:        -: 1697:
      203:      215: 1698:      assert(inst->force_writemask_all || inst->exec_size >= 4);
      203:      215: 1699:      assert(inst->force_writemask_all || inst->group % inst->exec_size == 0);
      203:      215: 1700:      assert(inst->base_mrf + inst->mlen <= BRW_MAX_MRF(devinfo->gen));
      203:      215: 1701:      assert(inst->mlen <= BRW_MAX_MSG_LENGTH);
        -:        -: 1702:
      203:      215: 1703:      switch (inst->opcode) {
        -:        -: 1704:      case BRW_OPCODE_MOV:
       33:       37: 1705:	 brw_MOV(p, dst, src[0]);
       33:       37: 1706:	 break;
        -:        -: 1707:      case BRW_OPCODE_ADD:
       17:       17: 1708:	 brw_ADD(p, dst, src[0], src[1]);
       17:       17: 1709:	 break;
        -:        -: 1710:      case BRW_OPCODE_MUL:
       18:       18: 1711:	 brw_MUL(p, dst, src[0], src[1]);
       18:       18: 1712:	 break;
        -:        -: 1713:      case BRW_OPCODE_AVG:
    #####:    #####: 1714:	 brw_AVG(p, dst, src[0], src[1]);
    #####:    #####: 1715:	 break;
        -:        -: 1716:      case BRW_OPCODE_MACH:
    #####:    #####: 1717:	 brw_MACH(p, dst, src[0], src[1]);
    #####:    #####: 1718:	 break;
        -:        -: 1719:
        -:        -: 1720:      case BRW_OPCODE_LINE:
    #####:    #####: 1721:         brw_LINE(p, dst, src[0], src[1]);
    #####:    #####: 1722:         break;
        -:        -: 1723:
        -:        -: 1724:      case BRW_OPCODE_MAD:
       18:       18: 1725:         assert(devinfo->gen >= 6);
       18:       18: 1726:	 brw_set_default_access_mode(p, BRW_ALIGN_16);
       18:       18: 1727:         brw_MAD(p, dst, src[0], src[1], src[2]);
       18:       18: 1728:	 break;
        -:        -: 1729:
        -:        -: 1730:      case BRW_OPCODE_LRP:
    #####:    #####: 1731:         assert(devinfo->gen >= 6);
    #####:    #####: 1732:	 brw_set_default_access_mode(p, BRW_ALIGN_16);
    #####:    #####: 1733:         brw_LRP(p, dst, src[0], src[1], src[2]);
    #####:    #####: 1734:	 break;
        -:        -: 1735:
        -:        -: 1736:      case BRW_OPCODE_FRC:
    #####:    #####: 1737:	 brw_FRC(p, dst, src[0]);
    #####:    #####: 1738:	 break;
        -:        -: 1739:      case BRW_OPCODE_RNDD:
       12:       12: 1740:	 brw_RNDD(p, dst, src[0]);
       12:       12: 1741:	 break;
        -:        -: 1742:      case BRW_OPCODE_RNDE:
    #####:    #####: 1743:	 brw_RNDE(p, dst, src[0]);
    #####:    #####: 1744:	 break;
        -:        -: 1745:      case BRW_OPCODE_RNDZ:
    #####:    #####: 1746:	 brw_RNDZ(p, dst, src[0]);
    #####:    #####: 1747:	 break;
        -:        -: 1748:
        -:        -: 1749:      case BRW_OPCODE_AND:
    #####:    #####: 1750:	 brw_AND(p, dst, src[0], src[1]);
    #####:    #####: 1751:	 break;
        -:        -: 1752:      case BRW_OPCODE_OR:
    #####:    #####: 1753:	 brw_OR(p, dst, src[0], src[1]);
    #####:    #####: 1754:	 break;
        -:        -: 1755:      case BRW_OPCODE_XOR:
    #####:    #####: 1756:	 brw_XOR(p, dst, src[0], src[1]);
    #####:    #####: 1757:	 break;
        -:        -: 1758:      case BRW_OPCODE_NOT:
    #####:    #####: 1759:	 brw_NOT(p, dst, src[0]);
    #####:    #####: 1760:	 break;
        -:        -: 1761:      case BRW_OPCODE_ASR:
    #####:    #####: 1762:	 brw_ASR(p, dst, src[0], src[1]);
    #####:    #####: 1763:	 break;
        -:        -: 1764:      case BRW_OPCODE_SHR:
    #####:    #####: 1765:	 brw_SHR(p, dst, src[0], src[1]);
    #####:    #####: 1766:	 break;
        -:        -: 1767:      case BRW_OPCODE_SHL:
    #####:    #####: 1768:	 brw_SHL(p, dst, src[0], src[1]);
    #####:    #####: 1769:	 break;
        -:        -: 1770:      case BRW_OPCODE_F32TO16:
    #####:    #####: 1771:         assert(devinfo->gen >= 7);
    #####:    #####: 1772:         brw_F32TO16(p, dst, src[0]);
    #####:    #####: 1773:         break;
        -:        -: 1774:      case BRW_OPCODE_F16TO32:
    #####:    #####: 1775:         assert(devinfo->gen >= 7);
    #####:    #####: 1776:         brw_F16TO32(p, dst, src[0]);
    #####:    #####: 1777:         break;
        -:        -: 1778:      case BRW_OPCODE_CMP:
       22:       26: 1779:         if (inst->exec_size >= 16 && devinfo->gen == 7 && !devinfo->is_haswell &&
    #####:    #####: 1780:             dst.file == BRW_ARCHITECTURE_REGISTER_FILE) {
        -:        -: 1781:            /* For unknown reasons the WaCMPInstFlagDepClearedEarly workaround
        -:        -: 1782:             * implemented in the compiler is not sufficient. Overriding the
        -:        -: 1783:             * type when the destination is the null register is necessary but
        -:        -: 1784:             * not sufficient by itself.
        -:        -: 1785:             */
    #####:    #####: 1786:            assert(dst.nr == BRW_ARF_NULL);
    #####:    #####: 1787:            dst.type = BRW_REGISTER_TYPE_D;
        -:        -: 1788:         }
       22:       26: 1789:         brw_CMP(p, dst, inst->conditional_mod, src[0], src[1]);
       22:       26: 1790:	 break;
        -:        -: 1791:      case BRW_OPCODE_SEL:
        4:        4: 1792:	 brw_SEL(p, dst, src[0], src[1]);
        4:        4: 1793:	 break;
        -:        -: 1794:      case BRW_OPCODE_BFREV:
    #####:    #####: 1795:         assert(devinfo->gen >= 7);
        -:        -: 1796:         /* BFREV only supports UD type for src and dst. */
    #####:    #####: 1797:         brw_BFREV(p, retype(dst, BRW_REGISTER_TYPE_UD),
    #####:    #####: 1798:                      retype(src[0], BRW_REGISTER_TYPE_UD));
    #####:    #####: 1799:         break;
        -:        -: 1800:      case BRW_OPCODE_FBH:
    #####:    #####: 1801:         assert(devinfo->gen >= 7);
        -:        -: 1802:         /* FBH only supports UD type for dst. */
    #####:    #####: 1803:         brw_FBH(p, retype(dst, BRW_REGISTER_TYPE_UD), src[0]);
    #####:    #####: 1804:         break;
        -:        -: 1805:      case BRW_OPCODE_FBL:
    #####:    #####: 1806:         assert(devinfo->gen >= 7);
        -:        -: 1807:         /* FBL only supports UD type for dst. */
    #####:    #####: 1808:         brw_FBL(p, retype(dst, BRW_REGISTER_TYPE_UD), src[0]);
    #####:    #####: 1809:         break;
        -:        -: 1810:      case BRW_OPCODE_LZD:
    #####:    #####: 1811:         brw_LZD(p, dst, src[0]);
    #####:    #####: 1812:         break;
        -:        -: 1813:      case BRW_OPCODE_CBIT:
    #####:    #####: 1814:         assert(devinfo->gen >= 7);
        -:        -: 1815:         /* CBIT only supports UD type for dst. */
    #####:    #####: 1816:         brw_CBIT(p, retype(dst, BRW_REGISTER_TYPE_UD), src[0]);
    #####:    #####: 1817:         break;
        -:        -: 1818:      case BRW_OPCODE_ADDC:
    #####:    #####: 1819:         assert(devinfo->gen >= 7);
    #####:    #####: 1820:         brw_ADDC(p, dst, src[0], src[1]);
    #####:    #####: 1821:         break;
        -:        -: 1822:      case BRW_OPCODE_SUBB:
    #####:    #####: 1823:         assert(devinfo->gen >= 7);
    #####:    #####: 1824:         brw_SUBB(p, dst, src[0], src[1]);
    #####:    #####: 1825:         break;
        -:        -: 1826:      case BRW_OPCODE_MAC:
    #####:    #####: 1827:         brw_MAC(p, dst, src[0], src[1]);
    #####:    #####: 1828:         break;
        -:        -: 1829:
        -:        -: 1830:      case BRW_OPCODE_BFE:
    #####:    #####: 1831:         assert(devinfo->gen >= 7);
    #####:    #####: 1832:         brw_set_default_access_mode(p, BRW_ALIGN_16);
    #####:    #####: 1833:         brw_BFE(p, dst, src[0], src[1], src[2]);
    #####:    #####: 1834:         break;
        -:        -: 1835:
        -:        -: 1836:      case BRW_OPCODE_BFI1:
    #####:    #####: 1837:         assert(devinfo->gen >= 7);
    #####:    #####: 1838:         brw_BFI1(p, dst, src[0], src[1]);
    #####:    #####: 1839:         break;
        -:        -: 1840:      case BRW_OPCODE_BFI2:
    #####:    #####: 1841:         assert(devinfo->gen >= 7);
    #####:    #####: 1842:         brw_set_default_access_mode(p, BRW_ALIGN_16);
    #####:    #####: 1843:         brw_BFI2(p, dst, src[0], src[1], src[2]);
    #####:    #####: 1844:         break;
        -:        -: 1845:
        -:        -: 1846:      case BRW_OPCODE_IF:
       18:       14: 1847:	 if (inst->src[0].file != BAD_FILE) {
        -:        -: 1848:	    /* The instruction has an embedded compare (only allowed on gen6) */
    #####:    #####: 1849:	    assert(devinfo->gen == 6);
    #####:    #####: 1850:	    gen6_IF(p, inst->conditional_mod, src[0], src[1]);
        -:        -: 1851:	 } else {
       18:       14: 1852:	    brw_IF(p, brw_inst_exec_size(devinfo, p->current));
        -:        -: 1853:	 }
       18:       14: 1854:	 break;
        -:        -: 1855:
        -:        -: 1856:      case BRW_OPCODE_ELSE:
    #####:    #####: 1857:	 brw_ELSE(p);
    #####:    #####: 1858:	 break;
        -:        -: 1859:      case BRW_OPCODE_ENDIF:
       18:       14: 1860:	 brw_ENDIF(p);
       18:       14: 1861:	 break;
        -:        -: 1862:
        -:        -: 1863:      case BRW_OPCODE_DO:
        4:        8: 1864:	 brw_DO(p, brw_inst_exec_size(devinfo, p->current));
        4:        8: 1865:	 break;
        -:        -: 1866:
        -:        -: 1867:      case BRW_OPCODE_BREAK:
        8:       12: 1868:	 brw_BREAK(p);
        8:       12: 1869:	 break;
        -:        -: 1870:      case BRW_OPCODE_CONTINUE:
    #####:    #####: 1871:         brw_CONT(p);
    #####:    #####: 1872:	 break;
        -:        -: 1873:
        -:        -: 1874:      case BRW_OPCODE_WHILE:
        4:        8: 1875:	 brw_WHILE(p);
        4:        8: 1876:         loop_count++;
        4:        8: 1877:	 break;
        -:        -: 1878:
        -:        -: 1879:      case SHADER_OPCODE_RCP:
        -:        -: 1880:      case SHADER_OPCODE_RSQ:
        -:        -: 1881:      case SHADER_OPCODE_SQRT:
        -:        -: 1882:      case SHADER_OPCODE_EXP2:
        -:        -: 1883:      case SHADER_OPCODE_LOG2:
        -:        -: 1884:      case SHADER_OPCODE_SIN:
        -:        -: 1885:      case SHADER_OPCODE_COS:
       12:       12: 1886:         assert(inst->conditional_mod == BRW_CONDITIONAL_NONE);
       12:       12: 1887:	 if (devinfo->gen >= 6) {
       12:       12: 1888:            assert(inst->mlen == 0);
       12:       12: 1889:            assert(devinfo->gen >= 7 || inst->exec_size == 8);
       12:       12: 1890:            gen6_math(p, dst, brw_math_function(inst->opcode),
       12:       12: 1891:                      src[0], brw_null_reg());
        -:        -: 1892:	 } else {
    #####:    #####: 1893:            assert(inst->mlen >= 1);
    #####:    #####: 1894:            assert(devinfo->gen == 5 || devinfo->is_g4x || inst->exec_size == 8);
    #####:    #####: 1895:            gen4_math(p, dst,
        -:        -: 1896:                      brw_math_function(inst->opcode),
    #####:    #####: 1897:                      inst->base_mrf, src[0],
    #####:    #####: 1898:                      BRW_MATH_PRECISION_FULL);
        -:        -: 1899:	 }
       12:       12: 1900:	 break;
        -:        -: 1901:      case SHADER_OPCODE_INT_QUOTIENT:
        -:        -: 1902:      case SHADER_OPCODE_INT_REMAINDER:
        -:        -: 1903:      case SHADER_OPCODE_POW:
    #####:    #####: 1904:         assert(inst->conditional_mod == BRW_CONDITIONAL_NONE);
    #####:    #####: 1905:         if (devinfo->gen >= 6) {
    #####:    #####: 1906:            assert(inst->mlen == 0);
    #####:    #####: 1907:            assert((devinfo->gen >= 7 && inst->opcode == SHADER_OPCODE_POW) ||
    #####:    #####: 1908:                   inst->exec_size == 8);
    #####:    #####: 1909:            gen6_math(p, dst, brw_math_function(inst->opcode), src[0], src[1]);
        -:        -: 1910:         } else {
    #####:    #####: 1911:            assert(inst->mlen >= 1);
    #####:    #####: 1912:            assert(inst->exec_size == 8);
    #####:    #####: 1913:            gen4_math(p, dst, brw_math_function(inst->opcode),
    #####:    #####: 1914:                      inst->base_mrf, src[0],
    #####:    #####: 1915:                      BRW_MATH_PRECISION_FULL);
        -:        -: 1916:	 }
    #####:    #####: 1917:	 break;
        -:        -: 1918:      case FS_OPCODE_CINTERP:
    #####:    #####: 1919:	 brw_MOV(p, dst, src[0]);
    #####:    #####: 1920:	 break;
        -:        -: 1921:      case FS_OPCODE_LINTERP:
        8:        8: 1922:	 generate_linterp(inst, dst, src);
        8:        8: 1923:	 break;
        -:        -: 1924:      case FS_OPCODE_PIXEL_X:
        1:        1: 1925:         assert(src[0].type == BRW_REGISTER_TYPE_UW);
        1:        1: 1926:         src[0].subnr = 0 * type_sz(src[0].type);
        1:        1: 1927:         brw_MOV(p, dst, stride(src[0], 8, 4, 1));
        1:        1: 1928:         break;
        -:        -: 1929:      case FS_OPCODE_PIXEL_Y:
        1:        1: 1930:         assert(src[0].type == BRW_REGISTER_TYPE_UW);
        1:        1: 1931:         src[0].subnr = 4 * type_sz(src[0].type);
        1:        1: 1932:         brw_MOV(p, dst, stride(src[0], 8, 4, 1));
        1:        1: 1933:         break;
        -:        -: 1934:      case FS_OPCODE_GET_BUFFER_SIZE:
    #####:    #####: 1935:         generate_get_buffer_size(inst, dst, src[0], src[1]);
    #####:    #####: 1936:         break;
        -:        -: 1937:      case SHADER_OPCODE_TEX:
        -:        -: 1938:      case FS_OPCODE_TXB:
        -:        -: 1939:      case SHADER_OPCODE_TXD:
        -:        -: 1940:      case SHADER_OPCODE_TXF:
        -:        -: 1941:      case SHADER_OPCODE_TXF_LZ:
        -:        -: 1942:      case SHADER_OPCODE_TXF_CMS:
        -:        -: 1943:      case SHADER_OPCODE_TXF_CMS_W:
        -:        -: 1944:      case SHADER_OPCODE_TXF_UMS:
        -:        -: 1945:      case SHADER_OPCODE_TXF_MCS:
        -:        -: 1946:      case SHADER_OPCODE_TXL:
        -:        -: 1947:      case SHADER_OPCODE_TXL_LZ:
        -:        -: 1948:      case SHADER_OPCODE_TXS:
        -:        -: 1949:      case SHADER_OPCODE_LOD:
        -:        -: 1950:      case SHADER_OPCODE_TG4:
        -:        -: 1951:      case SHADER_OPCODE_TG4_OFFSET:
        -:        -: 1952:      case SHADER_OPCODE_SAMPLEINFO:
    #####:    #####: 1953:	 generate_tex(inst, dst, src[0], src[1], src[2]);
    #####:    #####: 1954:	 break;
        -:        -: 1955:      case FS_OPCODE_DDX_COARSE:
        -:        -: 1956:      case FS_OPCODE_DDX_FINE:
    #####:    #####: 1957:         generate_ddx(inst->opcode, dst, src[0]);
    #####:    #####: 1958:         break;
        -:        -: 1959:      case FS_OPCODE_DDY_COARSE:
        -:        -: 1960:      case FS_OPCODE_DDY_FINE:
    #####:    #####: 1961:         generate_ddy(inst->opcode, dst, src[0]);
    #####:    #####: 1962:	 break;
        -:        -: 1963:
        -:        -: 1964:      case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
    #####:    #####: 1965:	 generate_scratch_write(inst, src[0]);
    #####:    #####: 1966:         spill_count++;
    #####:    #####: 1967:	 break;
        -:        -: 1968:
        -:        -: 1969:      case SHADER_OPCODE_GEN4_SCRATCH_READ:
    #####:    #####: 1970:	 generate_scratch_read(inst, dst);
    #####:    #####: 1971:         fill_count++;
    #####:    #####: 1972:	 break;
        -:        -: 1973:
        -:        -: 1974:      case SHADER_OPCODE_GEN7_SCRATCH_READ:
    #####:    #####: 1975:	 generate_scratch_read_gen7(inst, dst);
    #####:    #####: 1976:         fill_count++;
    #####:    #####: 1977:	 break;
        -:        -: 1978:
        -:        -: 1979:      case SHADER_OPCODE_MOV_INDIRECT:
    #####:    #####: 1980:         generate_mov_indirect(inst, dst, src[0], src[1]);
    #####:    #####: 1981:         break;
        -:        -: 1982:
        -:        -: 1983:      case SHADER_OPCODE_URB_READ_SIMD8:
        -:        -: 1984:      case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
    #####:    #####: 1985:         generate_urb_read(inst, dst, src[0]);
    #####:    #####: 1986:         break;
        -:        -: 1987:
        -:        -: 1988:      case SHADER_OPCODE_URB_WRITE_SIMD8:
        -:        -: 1989:      case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
        -:        -: 1990:      case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
        -:        -: 1991:      case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
    #####:    #####: 1992:	 generate_urb_write(inst, src[0]);
    #####:    #####: 1993:	 break;
        -:        -: 1994:
        -:        -: 1995:      case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
    #####:    #####: 1996:         assert(inst->force_writemask_all);
    #####:    #####: 1997:	 generate_uniform_pull_constant_load(inst, dst, src[0], src[1]);
    #####:    #####: 1998:	 break;
        -:        -: 1999:
        -:        -: 2000:      case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7:
    #####:    #####: 2001:         assert(inst->force_writemask_all);
    #####:    #####: 2002:	 generate_uniform_pull_constant_load_gen7(inst, dst, src[0], src[1]);
    #####:    #####: 2003:	 break;
        -:        -: 2004:
        -:        -: 2005:      case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN4:
    #####:    #####: 2006:	 generate_varying_pull_constant_load_gen4(inst, dst, src[0]);
    #####:    #####: 2007:	 break;
        -:        -: 2008:
        -:        -: 2009:      case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
    #####:    #####: 2010:	 generate_varying_pull_constant_load_gen7(inst, dst, src[0], src[1]);
    #####:    #####: 2011:	 break;
        -:        -: 2012:
        -:        -: 2013:      case FS_OPCODE_REP_FB_WRITE:
        -:        -: 2014:      case FS_OPCODE_FB_WRITE:
        5:        5: 2015:	 generate_fb_write(inst, src[0]);
        5:        5: 2016:	 break;
        -:        -: 2017:
        -:        -: 2018:      case FS_OPCODE_FB_READ:
    #####:    #####: 2019:         generate_fb_read(inst, dst, src[0]);
    #####:    #####: 2020:         break;
        -:        -: 2021:
        -:        -: 2022:      case FS_OPCODE_MOV_DISPATCH_TO_FLAGS:
    #####:    #####: 2023:         generate_mov_dispatch_to_flags(inst);
    #####:    #####: 2024:         break;
        -:        -: 2025:
        -:        -: 2026:      case FS_OPCODE_DISCARD_JUMP:
    #####:    #####: 2027:         generate_discard_jump(inst);
    #####:    #####: 2028:         break;
        -:        -: 2029:
        -:        -: 2030:      case SHADER_OPCODE_SHADER_TIME_ADD:
    #####:    #####: 2031:         generate_shader_time_add(inst, src[0], src[1], src[2]);
    #####:    #####: 2032:         break;
        -:        -: 2033:
        -:        -: 2034:      case SHADER_OPCODE_UNTYPED_ATOMIC:
    #####:    #####: 2035:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2036:         brw_untyped_atomic(p, dst, src[0], src[1], src[2].ud,
    #####:    #####: 2037:                            inst->mlen, !inst->dst.is_null());
    #####:    #####: 2038:         break;
        -:        -: 2039:
        -:        -: 2040:      case SHADER_OPCODE_UNTYPED_SURFACE_READ:
    #####:    #####: 2041:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2042:         brw_untyped_surface_read(p, dst, src[0], src[1],
    #####:    #####: 2043:                                  inst->mlen, src[2].ud);
    #####:    #####: 2044:         break;
        -:        -: 2045:
        -:        -: 2046:      case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
    #####:    #####: 2047:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2048:         brw_untyped_surface_write(p, src[0], src[1],
    #####:    #####: 2049:                                   inst->mlen, src[2].ud);
    #####:    #####: 2050:         break;
        -:        -: 2051:
        -:        -: 2052:      case SHADER_OPCODE_TYPED_ATOMIC:
    #####:    #####: 2053:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2054:         brw_typed_atomic(p, dst, src[0], src[1],
    #####:    #####: 2055:                          src[2].ud, inst->mlen, !inst->dst.is_null());
    #####:    #####: 2056:         break;
        -:        -: 2057:
        -:        -: 2058:      case SHADER_OPCODE_TYPED_SURFACE_READ:
    #####:    #####: 2059:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2060:         brw_typed_surface_read(p, dst, src[0], src[1],
    #####:    #####: 2061:                                inst->mlen, src[2].ud);
    #####:    #####: 2062:         break;
        -:        -: 2063:
        -:        -: 2064:      case SHADER_OPCODE_TYPED_SURFACE_WRITE:
    #####:    #####: 2065:         assert(src[2].file == BRW_IMMEDIATE_VALUE);
    #####:    #####: 2066:         brw_typed_surface_write(p, src[0], src[1], inst->mlen, src[2].ud);
    #####:    #####: 2067:         break;
        -:        -: 2068:
        -:        -: 2069:      case SHADER_OPCODE_MEMORY_FENCE:
    #####:    #####: 2070:         brw_memory_fence(p, dst);
    #####:    #####: 2071:         break;
        -:        -: 2072:
        -:        -: 2073:      case SHADER_OPCODE_FIND_LIVE_CHANNEL: {
        -:        -: 2074:         const struct brw_reg mask =
    #####:    #####: 2075:            brw_stage_has_packed_dispatch(devinfo, stage,
    #####:    #####: 2076:                                          prog_data) ? brw_imm_ud(~0u) :
    #####:    #####: 2077:            stage == MESA_SHADER_FRAGMENT ? brw_vmask_reg() :
    #####:    #####: 2078:            brw_dmask_reg();
    #####:    #####: 2079:         brw_find_live_channel(p, dst, mask);
    #####:    #####: 2080:         break;
        -:        -: 2081:      }
        -:        -: 2082:
        -:        -: 2083:      case SHADER_OPCODE_BROADCAST:
    #####:    #####: 2084:         assert(inst->force_writemask_all);
    #####:    #####: 2085:         brw_broadcast(p, dst, src[0], src[1]);
    #####:    #####: 2086:         break;
        -:        -: 2087:
        -:        -: 2088:      case FS_OPCODE_SET_SAMPLE_ID:
    #####:    #####: 2089:         generate_set_sample_id(inst, dst, src[0], src[1]);
    #####:    #####: 2090:         break;
        -:        -: 2091:
        -:        -: 2092:      case FS_OPCODE_PACK_HALF_2x16_SPLIT:
    #####:    #####: 2093:          generate_pack_half_2x16_split(inst, dst, src[0], src[1]);
    #####:    #####: 2094:          break;
        -:        -: 2095:
        -:        -: 2096:      case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_X:
        -:        -: 2097:      case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y:
    #####:    #####: 2098:         generate_unpack_half_2x16_split(inst, dst, src[0]);
    #####:    #####: 2099:         break;
        -:        -: 2100:
        -:        -: 2101:      case FS_OPCODE_PLACEHOLDER_HALT:
        -:        -: 2102:         /* This is the place where the final HALT needs to be inserted if
        -:        -: 2103:          * we've emitted any discards.  If not, this will emit no code.
        -:        -: 2104:          */
    #####:    #####: 2105:         if (!patch_discard_jumps_to_fb_writes()) {
    #####:    #####: 2106:            if (unlikely(debug_flag)) {
    #####:    #####: 2107:               annotation.ann_count--;
        -:        -: 2108:            }
        -:        -: 2109:         }
    #####:    #####: 2110:         break;
        -:        -: 2111:
        -:        -: 2112:      case FS_OPCODE_INTERPOLATE_AT_SAMPLE:
        -:        -: 2113:         generate_pixel_interpolator_query(inst, dst, src[0], src[1],
    #####:    #####: 2114:                                           GEN7_PIXEL_INTERPOLATOR_LOC_SAMPLE);
    #####:    #####: 2115:         break;
        -:        -: 2116:
        -:        -: 2117:      case FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET:
        -:        -: 2118:         generate_pixel_interpolator_query(inst, dst, src[0], src[1],
    #####:    #####: 2119:                                           GEN7_PIXEL_INTERPOLATOR_LOC_SHARED_OFFSET);
    #####:    #####: 2120:         break;
        -:        -: 2121:
        -:        -: 2122:      case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
        -:        -: 2123:         generate_pixel_interpolator_query(inst, dst, src[0], src[1],
    #####:    #####: 2124:                                           GEN7_PIXEL_INTERPOLATOR_LOC_PER_SLOT_OFFSET);
    #####:    #####: 2125:         break;
        -:        -: 2126:
        -:        -: 2127:      case CS_OPCODE_CS_TERMINATE:
    #####:    #####: 2128:         generate_cs_terminate(inst, src[0]);
    #####:    #####: 2129:         break;
        -:        -: 2130:
        -:        -: 2131:      case SHADER_OPCODE_BARRIER:
    #####:    #####: 2132:	 generate_barrier(inst, src[0]);
    #####:    #####: 2133:	 break;
        -:        -: 2134:
        -:        -: 2135:      case BRW_OPCODE_DIM:
    #####:    #####: 2136:         assert(devinfo->is_haswell);
    #####:    #####: 2137:         assert(src[0].type == BRW_REGISTER_TYPE_DF);
    #####:    #####: 2138:         assert(dst.type == BRW_REGISTER_TYPE_DF);
    #####:    #####: 2139:         brw_DIM(p, dst, retype(src[0], BRW_REGISTER_TYPE_F));
    #####:    #####: 2140:         break;
        -:        -: 2141:
        -:        -: 2142:      default:
    #####:    #####: 2143:         unreachable("Unsupported opcode");
        -:        -: 2144:
        -:        -: 2145:      case SHADER_OPCODE_LOAD_PAYLOAD:
    #####:    #####: 2146:         unreachable("Should be lowered by lower_load_payload()");
        -:        -: 2147:      }
        -:        -: 2148:
      203:      215: 2149:      if (multiple_instructions_emitted)
    #####:    #####: 2150:         continue;
        -:        -: 2151:
      203:      215: 2152:      if (inst->no_dd_clear || inst->no_dd_check || inst->conditional_mod) {
       22:       30: 2153:         assert(p->next_insn_offset == last_insn_offset + 16 ||
        -:        -: 2154:                !"conditional_mod, no_dd_check, or no_dd_clear set for IR "
       22:       30: 2155:                 "emitting more than 1 instruction");
        -:        -: 2156:
       22:       30: 2157:         brw_inst *last = &p->store[last_insn_offset / 16];
        -:        -: 2158:
       22:       30: 2159:         if (inst->conditional_mod)
       22:       30: 2160:            brw_inst_set_cond_modifier(p->devinfo, last, inst->conditional_mod);
       22:       30: 2161:         brw_inst_set_no_dd_clear(p->devinfo, last, inst->no_dd_clear);
       22:       30: 2162:         brw_inst_set_no_dd_check(p->devinfo, last, inst->no_dd_check);
        -:        -: 2163:      }
        -:        -: 2164:   }
        -:        -: 2165:
        5:        5: 2166:   brw_set_uip_jip(p, start_offset);
        5:        5: 2167:   annotation_finalize(&annotation, p->next_insn_offset);
        -:        -: 2168:
        -:        -: 2169:#ifndef NDEBUG
        5:        5: 2170:   bool validated = brw_validate_instructions(p, start_offset, &annotation);
        -:        -: 2171:#else
        -:        -: 2172:   if (unlikely(debug_flag))
        -:        -: 2173:      brw_validate_instructions(p, start_offset, &annotation);
        -:        -: 2174:#endif
        -:        -: 2175:
        5:        5: 2176:   int before_size = p->next_insn_offset - start_offset;
        5:        5: 2177:   brw_compact_instructions(p, start_offset, annotation.ann_count,
        5:        5: 2178:                            annotation.ann);
        5:        5: 2179:   int after_size = p->next_insn_offset - start_offset;
        -:        -: 2180:
        5:        5: 2181:   if (unlikely(debug_flag)) {
    #####:    #####: 2182:      fprintf(stderr, "Native code for %s\n"
        -:        -: 2183:              "SIMD%d shader: %d instructions. %d loops. %u cycles. %d:%d spills:fills. Promoted %u constants. Compacted %d to %d"
        -:        -: 2184:              " bytes (%.0f%%)\n",
    #####:    #####: 2185:              shader_name, dispatch_width, before_size / 16, loop_count, cfg->cycle_count,
        -:        -: 2186:              spill_count, fill_count, promoted_constants, before_size, after_size,
    #####:    #####: 2187:              100.0f * (before_size - after_size) / before_size);
        -:        -: 2188:
    #####:    #####: 2189:      dump_assembly(p->store, annotation.ann_count, annotation.ann,
    #####:    #####: 2190:                    p->devinfo);
    #####:    #####: 2191:      ralloc_free(annotation.mem_ctx);
        -:        -: 2192:   }
        5:        5: 2193:   assert(validated);
        -:        -: 2194:
       15:       15: 2195:   compiler->shader_debug_log(log_data,
        -:        -: 2196:                              "%s SIMD%d shader: %d inst, %d loops, %u cycles, "
        -:        -: 2197:                              "%d:%d spills:fills, Promoted %u constants, "
        -:        -: 2198:                              "compacted %d to %d bytes.",
        5:        5: 2199:                              _mesa_shader_stage_to_abbrev(stage),
        -:        -: 2200:                              dispatch_width, before_size / 16,
        5:        5: 2201:                              loop_count, cfg->cycle_count, spill_count,
        -:        -: 2202:                              fill_count, promoted_constants, before_size,
        5:        5: 2203:                              after_size);
        -:        -: 2204:
        5:        5: 2205:   return start_offset;
        -:        -: 2206:}
        -:        -: 2207:
        -:        -: 2208:const unsigned *
        3:        3: 2209:fs_generator::get_assembly(unsigned int *assembly_size)
        -:        -: 2210:{
        3:        3: 2211:   return brw_get_program(p, assembly_size);
        3:        3: 2212:}

src/intel/brw_fs.h.gcov

        -:        -:    0:Source:compiler/brw_fs.h
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef BRW_FS_H
        -:        -:   29:#define BRW_FS_H
        -:        -:   30:
        -:        -:   31:#include "brw_shader.h"
        -:        -:   32:#include "brw_ir_fs.h"
        -:        -:   33:#include "brw_fs_builder.h"
        -:        -:   34:#include "compiler/nir/nir.h"
        -:        -:   35:
        -:        -:   36:struct bblock_t;
        -:        -:   37:namespace {
        -:        -:   38:   struct acp_entry;
        -:        -:   39:}
        -:        -:   40:
        -:        -:   41:namespace brw {
        -:        -:   42:   class fs_live_variables;
        -:        -:   43:}
        -:        -:   44:
        -:        -:   45:struct brw_gs_compile;
        -:        -:   46:
        -:        -:   47:static inline fs_reg
      567:      583:   48:offset(const fs_reg ®, const brw::fs_builder &bld, unsigned delta)
        -:        -:   49:{
      567:      583:   50:   return offset(reg, bld.dispatch_width(), delta);
        -:        -:   51:}
        -:        -:   52:
        -:        -:   53:/**
        -:        -:   54: * The fragment shader front-end.
        -:        -:   55: *
        -:        -:   56: * Translates either GLSL IR or Mesa IR (for ARB_fragment_program) into FS IR.
        -:        -:   57: */
        -:        -:   58:class fs_visitor : public backend_shader
        -:        -:   59:{
        -:        -:   60:public:
        -:        -:   61:   fs_visitor(const struct brw_compiler *compiler, void *log_data,
        -:        -:   62:              void *mem_ctx,
        -:        -:   63:              const void *key,
        -:        -:   64:              struct brw_stage_prog_data *prog_data,
        -:        -:   65:              struct gl_program *prog,
        -:        -:   66:              const nir_shader *shader,
        -:        -:   67:              unsigned dispatch_width,
        -:        -:   68:              int shader_time_index,
        -:        -:   69:              const struct brw_vue_map *input_vue_map = NULL);
        -:        -:   70:   fs_visitor(const struct brw_compiler *compiler, void *log_data,
        -:        -:   71:              void *mem_ctx,
        -:        -:   72:              struct brw_gs_compile *gs_compile,
        -:        -:   73:              struct brw_gs_prog_data *prog_data,
        -:        -:   74:              const nir_shader *shader,
        -:        -:   75:              int shader_time_index);
        -:        -:   76:   void init();
        -:        -:   77:   ~fs_visitor();
        -:        -:   78:
        -:        -:   79:   fs_reg vgrf(const glsl_type *const type);
        -:        -:   80:   void import_uniforms(fs_visitor *v);
        -:        -:   81:   void setup_uniform_clipplane_values(gl_clip_plane *clip_planes);
        -:        -:   82:   void compute_clip_distance(gl_clip_plane *clip_planes);
        -:        -:   83:
        -:        -:   84:   fs_inst *get_instruction_generating_reg(fs_inst *start,
        -:        -:   85:					   fs_inst *end,
        -:        -:   86:					   const fs_reg ®);
        -:        -:   87:
        -:        -:   88:   void VARYING_PULL_CONSTANT_LOAD(const brw::fs_builder &bld,
        -:        -:   89:                                   const fs_reg &dst,
        -:        -:   90:                                   const fs_reg &surf_index,
        -:        -:   91:                                   const fs_reg &varying_offset,
        -:        -:   92:                                   uint32_t const_offset);
        -:        -:   93:   void DEP_RESOLVE_MOV(const brw::fs_builder &bld, int grf);
        -:        -:   94:
        -:        -:   95:   bool run_fs(bool allow_spilling, bool do_rep_send);
        -:        -:   96:   bool run_vs(gl_clip_plane *clip_planes);
        -:        -:   97:   bool run_tcs_single_patch();
        -:        -:   98:   bool run_tes();
        -:        -:   99:   bool run_gs();
        -:        -:  100:   bool run_cs();
        -:        -:  101:   void optimize();
        -:        -:  102:   void allocate_registers(bool allow_spilling);
        -:        -:  103:   void setup_fs_payload_gen4();
        -:        -:  104:   void setup_fs_payload_gen6();
        -:        -:  105:   void setup_vs_payload();
        -:        -:  106:   void setup_gs_payload();
        -:        -:  107:   void setup_cs_payload();
        -:        -:  108:   void fixup_3src_null_dest();
        -:        -:  109:   void assign_curb_setup();
        -:        -:  110:   void calculate_urb_setup();
        -:        -:  111:   void assign_urb_setup();
        -:        -:  112:   void convert_attr_sources_to_hw_regs(fs_inst *inst);
        -:        -:  113:   void assign_vs_urb_setup();
        -:        -:  114:   void assign_tcs_single_patch_urb_setup();
        -:        -:  115:   void assign_tes_urb_setup();
        -:        -:  116:   void assign_gs_urb_setup();
        -:        -:  117:   bool assign_regs(bool allow_spilling, bool spill_all);
        -:        -:  118:   void assign_regs_trivial();
        -:        -:  119:   void calculate_payload_ranges(int payload_node_count,
        -:        -:  120:                                 int *payload_last_use_ip);
        -:        -:  121:   void setup_payload_interference(struct ra_graph *g, int payload_reg_count,
        -:        -:  122:                                   int first_payload_node);
        -:        -:  123:   int choose_spill_reg(struct ra_graph *g);
        -:        -:  124:   void spill_reg(int spill_reg);
        -:        -:  125:   void split_virtual_grfs();
        -:        -:  126:   bool compact_virtual_grfs();
        -:        -:  127:   void assign_constant_locations();
        -:        -:  128:   void lower_constant_loads();
        -:        -:  129:   void invalidate_live_intervals();
        -:        -:  130:   void calculate_live_intervals();
        -:        -:  131:   void calculate_register_pressure();
        -:        -:  132:   void validate();
        -:        -:  133:   bool opt_algebraic();
        -:        -:  134:   bool opt_redundant_discard_jumps();
        -:        -:  135:   bool opt_cse();
        -:        -:  136:   bool opt_cse_local(bblock_t *block);
        -:        -:  137:   bool opt_copy_propagation();
        -:        -:  138:   bool try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry);
        -:        -:  139:   bool try_constant_propagate(fs_inst *inst, acp_entry *entry);
        -:        -:  140:   bool opt_copy_propagation_local(void *mem_ctx, bblock_t *block,
        -:        -:  141:                                   exec_list *acp);
        -:        -:  142:   bool opt_drop_redundant_mov_to_flags();
        -:        -:  143:   bool opt_register_renaming();
        -:        -:  144:   bool register_coalesce();
        -:        -:  145:   bool compute_to_mrf();
        -:        -:  146:   bool eliminate_find_live_channel();
        -:        -:  147:   bool dead_code_eliminate();
        -:        -:  148:   bool remove_duplicate_mrf_writes();
        -:        -:  149:
        -:        -:  150:   bool opt_sampler_eot();
        -:        -:  151:   bool virtual_grf_interferes(int a, int b);
        -:        -:  152:   void schedule_instructions(instruction_scheduler_mode mode);
        -:        -:  153:   void insert_gen4_send_dependency_workarounds();
        -:        -:  154:   void insert_gen4_pre_send_dependency_workarounds(bblock_t *block,
        -:        -:  155:                                                    fs_inst *inst);
        -:        -:  156:   void insert_gen4_post_send_dependency_workarounds(bblock_t *block,
        -:        -:  157:                                                     fs_inst *inst);
        -:        -:  158:   void vfail(const char *msg, va_list args);
        -:        -:  159:   void fail(const char *msg, ...);
        -:        -:  160:   void limit_dispatch_width(unsigned n, const char *msg);
        -:        -:  161:   void lower_uniform_pull_constant_loads();
        -:        -:  162:   bool lower_load_payload();
        -:        -:  163:   bool lower_pack();
        -:        -:  164:   bool lower_conversions();
        -:        -:  165:   bool lower_logical_sends();
        -:        -:  166:   bool lower_integer_multiplication();
        -:        -:  167:   bool lower_minmax();
        -:        -:  168:   bool lower_simd_width();
        -:        -:  169:   bool opt_combine_constants();
        -:        -:  170:
        -:        -:  171:   void emit_dummy_fs();
        -:        -:  172:   void emit_repclear_shader();
        -:        -:  173:   void emit_fragcoord_interpolation(fs_reg wpos);
        -:        -:  174:   fs_reg *emit_frontfacing_interpolation();
        -:        -:  175:   fs_reg *emit_samplepos_setup();
        -:        -:  176:   fs_reg *emit_sampleid_setup();
        -:        -:  177:   fs_reg *emit_samplemaskin_setup();
        -:        -:  178:   fs_reg *emit_vs_system_value(int location);
        -:        -:  179:   void emit_interpolation_setup_gen4();
        -:        -:  180:   void emit_interpolation_setup_gen6();
        -:        -:  181:   void compute_sample_position(fs_reg dst, fs_reg int_sample_pos);
        -:        -:  182:   fs_reg emit_mcs_fetch(const fs_reg &coordinate, unsigned components,
        -:        -:  183:                         const fs_reg &sampler);
        -:        -:  184:   void emit_gen6_gather_wa(uint8_t wa, fs_reg dst);
        -:        -:  185:   fs_reg resolve_source_modifiers(const fs_reg &src);
        -:        -:  186:   void emit_discard_jump();
        -:        -:  187:   bool opt_peephole_sel();
        -:        -:  188:   bool opt_peephole_predicated_break();
        -:        -:  189:   bool opt_saturate_propagation();
        -:        -:  190:   bool opt_cmod_propagation();
        -:        -:  191:   bool opt_zero_samples();
        -:        -:  192:
        -:        -:  193:   void emit_nir_code();
        -:        -:  194:   void nir_setup_outputs();
        -:        -:  195:   void nir_setup_uniforms();
        -:        -:  196:   void nir_emit_system_values();
        -:        -:  197:   void nir_emit_impl(nir_function_impl *impl);
        -:        -:  198:   void nir_emit_cf_list(exec_list *list);
        -:        -:  199:   void nir_emit_if(nir_if *if_stmt);
        -:        -:  200:   void nir_emit_loop(nir_loop *loop);
        -:        -:  201:   void nir_emit_block(nir_block *block);
        -:        -:  202:   void nir_emit_instr(nir_instr *instr);
        -:        -:  203:   void nir_emit_alu(const brw::fs_builder &bld, nir_alu_instr *instr);
        -:        -:  204:   void nir_emit_load_const(const brw::fs_builder &bld,
        -:        -:  205:                            nir_load_const_instr *instr);
        -:        -:  206:   void nir_emit_vs_intrinsic(const brw::fs_builder &bld,
        -:        -:  207:                              nir_intrinsic_instr *instr);
        -:        -:  208:   void nir_emit_tcs_intrinsic(const brw::fs_builder &bld,
        -:        -:  209:                               nir_intrinsic_instr *instr);
        -:        -:  210:   void nir_emit_gs_intrinsic(const brw::fs_builder &bld,
        -:        -:  211:                              nir_intrinsic_instr *instr);
        -:        -:  212:   void nir_emit_fs_intrinsic(const brw::fs_builder &bld,
        -:        -:  213:                              nir_intrinsic_instr *instr);
        -:        -:  214:   void nir_emit_cs_intrinsic(const brw::fs_builder &bld,
        -:        -:  215:                              nir_intrinsic_instr *instr);
        -:        -:  216:   void nir_emit_intrinsic(const brw::fs_builder &bld,
        -:        -:  217:                           nir_intrinsic_instr *instr);
        -:        -:  218:   void nir_emit_tes_intrinsic(const brw::fs_builder &bld,
        -:        -:  219:                               nir_intrinsic_instr *instr);
        -:        -:  220:   void nir_emit_ssbo_atomic(const brw::fs_builder &bld,
        -:        -:  221:                             int op, nir_intrinsic_instr *instr);
        -:        -:  222:   void nir_emit_shared_atomic(const brw::fs_builder &bld,
        -:        -:  223:                               int op, nir_intrinsic_instr *instr);
        -:        -:  224:   void nir_emit_texture(const brw::fs_builder &bld,
        -:        -:  225:                         nir_tex_instr *instr);
        -:        -:  226:   void nir_emit_jump(const brw::fs_builder &bld,
        -:        -:  227:                      nir_jump_instr *instr);
        -:        -:  228:   fs_reg get_nir_src(const nir_src &src);
        -:        -:  229:   fs_reg get_nir_src_imm(const nir_src &src);
        -:        -:  230:   fs_reg get_nir_dest(const nir_dest &dest);
        -:        -:  231:   fs_reg get_nir_image_deref(const nir_deref_var *deref);
        -:        -:  232:   fs_reg get_indirect_offset(nir_intrinsic_instr *instr);
        -:        -:  233:   void emit_percomp(const brw::fs_builder &bld, const fs_inst &inst,
        -:        -:  234:                     unsigned wr_mask);
        -:        -:  235:
        -:        -:  236:   bool optimize_extract_to_float(nir_alu_instr *instr,
        -:        -:  237:                                  const fs_reg &result);
        -:        -:  238:   bool optimize_frontfacing_ternary(nir_alu_instr *instr,
        -:        -:  239:                                     const fs_reg &result);
        -:        -:  240:
        -:        -:  241:   void emit_alpha_test();
        -:        -:  242:   fs_inst *emit_single_fb_write(const brw::fs_builder &bld,
        -:        -:  243:                                 fs_reg color1, fs_reg color2,
        -:        -:  244:                                 fs_reg src0_alpha, unsigned components);
        -:        -:  245:   void emit_fb_writes();
        -:        -:  246:   fs_inst *emit_non_coherent_fb_read(const brw::fs_builder &bld,
        -:        -:  247:                                      const fs_reg &dst, unsigned target);
        -:        -:  248:   void emit_urb_writes(const fs_reg &gs_vertex_count = fs_reg());
        -:        -:  249:   void set_gs_stream_control_data_bits(const fs_reg &vertex_count,
        -:        -:  250:                                        unsigned stream_id);
        -:        -:  251:   void emit_gs_control_data_bits(const fs_reg &vertex_count);
        -:        -:  252:   void emit_gs_end_primitive(const nir_src &vertex_count_nir_src);
        -:        -:  253:   void emit_gs_vertex(const nir_src &vertex_count_nir_src,
        -:        -:  254:                       unsigned stream_id);
        -:        -:  255:   void emit_gs_thread_end();
        -:        -:  256:   void emit_gs_input_load(const fs_reg &dst, const nir_src &vertex_src,
        -:        -:  257:                           unsigned base_offset, const nir_src &offset_src,
        -:        -:  258:                           unsigned num_components, unsigned first_component);
        -:        -:  259:   void emit_cs_terminate();
        -:        -:  260:   fs_reg *emit_cs_work_group_id_setup();
        -:        -:  261:
        -:        -:  262:   void emit_barrier();
        -:        -:  263:
        -:        -:  264:   void emit_shader_time_begin();
        -:        -:  265:   void emit_shader_time_end();
        -:        -:  266:   void SHADER_TIME_ADD(const brw::fs_builder &bld,
        -:        -:  267:                        int shader_time_subindex,
        -:        -:  268:                        fs_reg value);
        -:        -:  269:
        -:        -:  270:   fs_reg get_timestamp(const brw::fs_builder &bld);
        -:        -:  271:
        -:        -:  272:   struct brw_reg interp_reg(int location, int channel);
        -:        -:  273:
        -:        -:  274:   int implied_mrf_writes(fs_inst *inst);
        -:        -:  275:
        -:        -:  276:   virtual void dump_instructions();
        -:        -:  277:   virtual void dump_instructions(const char *name);
        -:        -:  278:   void dump_instruction(backend_instruction *inst);
        -:        -:  279:   void dump_instruction(backend_instruction *inst, FILE *file);
        -:        -:  280:
        -:        -:  281:   const void *const key;
        -:        -:  282:   const struct brw_sampler_prog_key_data *key_tex;
        -:        -:  283:
        -:        -:  284:   struct brw_gs_compile *gs_compile;
        -:        -:  285:
        -:        -:  286:   struct brw_stage_prog_data *prog_data;
        -:        -:  287:   struct gl_program *prog;
        -:        -:  288:
        -:        -:  289:   const struct brw_vue_map *input_vue_map;
        -:        -:  290:
        -:        -:  291:   int *virtual_grf_start;
        -:        -:  292:   int *virtual_grf_end;
        -:        -:  293:   brw::fs_live_variables *live_intervals;
        -:        -:  294:
        -:        -:  295:   int *regs_live_at_ip;
        -:        -:  296:
        -:        -:  297:   /** Number of uniform variable components visited. */
        -:        -:  298:   unsigned uniforms;
        -:        -:  299:
        -:        -:  300:   /** Byte-offset for the next available spot in the scratch space buffer. */
        -:        -:  301:   unsigned last_scratch;
        -:        -:  302:
        -:        -:  303:   /**
        -:        -:  304:    * Array mapping UNIFORM register numbers to the pull parameter index,
        -:        -:  305:    * or -1 if this uniform register isn't being uploaded as a pull constant.
        -:        -:  306:    */
        -:        -:  307:   int *pull_constant_loc;
        -:        -:  308:
        -:        -:  309:   /**
        -:        -:  310:    * Array mapping UNIFORM register numbers to the push parameter index,
        -:        -:  311:    * or -1 if this uniform register isn't being uploaded as a push constant.
        -:        -:  312:    */
        -:        -:  313:   int *push_constant_loc;
        -:        -:  314:
        -:        -:  315:   fs_reg frag_depth;
        -:        -:  316:   fs_reg frag_stencil;
        -:        -:  317:   fs_reg sample_mask;
        -:        -:  318:   fs_reg outputs[VARYING_SLOT_MAX];
        -:        -:  319:   fs_reg dual_src_output;
        -:        -:  320:   int first_non_payload_grf;
        -:        -:  321:   /** Either BRW_MAX_GRF or GEN7_MRF_HACK_START */
        -:        -:  322:   unsigned max_grf;
        -:        -:  323:
        -:        -:  324:   fs_reg *nir_locals;
        -:        -:  325:   fs_reg *nir_ssa_values;
        -:        -:  326:   fs_reg *nir_system_values;
        -:        -:  327:
        -:        -:  328:   bool failed;
        -:        -:  329:   char *fail_msg;
        -:        -:  330:
        -:        -:  331:   /** Register numbers for thread payload fields. */
        -:        -:  332:   struct thread_payload {
        -:        -:  333:      uint8_t source_depth_reg;
        -:        -:  334:      uint8_t source_w_reg;
        -:        -:  335:      uint8_t aa_dest_stencil_reg;
        -:        -:  336:      uint8_t dest_depth_reg;
        -:        -:  337:      uint8_t sample_pos_reg;
        -:        -:  338:      uint8_t sample_mask_in_reg;
        -:        -:  339:      uint8_t barycentric_coord_reg[BRW_BARYCENTRIC_MODE_COUNT];
        -:        -:  340:      uint8_t local_invocation_id_reg;
        -:        -:  341:
        -:        -:  342:      /** The number of thread payload registers the hardware will supply. */
        -:        -:  343:      uint8_t num_regs;
        -:        -:  344:   } payload;
        -:        -:  345:
        -:        -:  346:   bool source_depth_to_render_target;
        -:        -:  347:   bool runtime_check_aads_emit;
        -:        -:  348:
        -:        -:  349:   fs_reg pixel_x;
        -:        -:  350:   fs_reg pixel_y;
        -:        -:  351:   fs_reg wpos_w;
        -:        -:  352:   fs_reg pixel_w;
        -:        -:  353:   fs_reg delta_xy[BRW_BARYCENTRIC_MODE_COUNT];
        -:        -:  354:   fs_reg shader_start_time;
        -:        -:  355:   fs_reg userplane[MAX_CLIP_PLANES];
        -:        -:  356:   fs_reg final_gs_vertex_count;
        -:        -:  357:   fs_reg control_data_bits;
        -:        -:  358:   fs_reg invocation_id;
        -:        -:  359:
        -:        -:  360:   unsigned grf_used;
        -:        -:  361:   bool spilled_any_registers;
        -:        -:  362:
        -:        -:  363:   const unsigned dispatch_width; /**< 8, 16 or 32 */
        -:        -:  364:   unsigned min_dispatch_width;
        -:        -:  365:   unsigned max_dispatch_width;
        -:        -:  366:
        -:        -:  367:   int shader_time_index;
        -:        -:  368:
        -:        -:  369:   unsigned promoted_constants;
        -:        -:  370:   brw::fs_builder bld;
        -:        -:  371:};
        -:        -:  372:
        -:        -:  373:/**
        -:        -:  374: * The fragment shader code generator.
        -:        -:  375: *
        -:        -:  376: * Translates FS IR to actual i965 assembly code.
        -:        -:  377: */
        -:        -:  378:class fs_generator
        -:        -:  379:{
        -:        -:  380:public:
        -:        -:  381:   fs_generator(const struct brw_compiler *compiler, void *log_data,
        -:        -:  382:                void *mem_ctx,
        -:        -:  383:                const void *key,
        -:        -:  384:                struct brw_stage_prog_data *prog_data,
        -:        -:  385:                unsigned promoted_constants,
        -:        -:  386:                bool runtime_check_aads_emit,
        -:        -:  387:                gl_shader_stage stage);
        -:        -:  388:   ~fs_generator();
        -:        -:  389:
        -:        -:  390:   void enable_debug(const char *shader_name);
        -:        -:  391:   int generate_code(const cfg_t *cfg, int dispatch_width);
        -:        -:  392:   const unsigned *get_assembly(unsigned int *assembly_size);
        -:        -:  393:
        -:        -:  394:private:
        -:        -:  395:   void fire_fb_write(fs_inst *inst,
        -:        -:  396:                      struct brw_reg payload,
        -:        -:  397:                      struct brw_reg implied_header,
        -:        -:  398:                      GLuint nr);
        -:        -:  399:   void generate_fb_write(fs_inst *inst, struct brw_reg payload);
        -:        -:  400:   void generate_fb_read(fs_inst *inst, struct brw_reg dst,
        -:        -:  401:                         struct brw_reg payload);
        -:        -:  402:   void generate_urb_read(fs_inst *inst, struct brw_reg dst, struct brw_reg payload);
        -:        -:  403:   void generate_urb_write(fs_inst *inst, struct brw_reg payload);
        -:        -:  404:   void generate_cs_terminate(fs_inst *inst, struct brw_reg payload);
        -:        -:  405:   void generate_barrier(fs_inst *inst, struct brw_reg src);
        -:        -:  406:   void generate_linterp(fs_inst *inst, struct brw_reg dst,
        -:        -:  407:			 struct brw_reg *src);
        -:        -:  408:   void generate_tex(fs_inst *inst, struct brw_reg dst, struct brw_reg src,
        -:        -:  409:                     struct brw_reg surface_index,
        -:        -:  410:                     struct brw_reg sampler_index);
        -:        -:  411:   void generate_get_buffer_size(fs_inst *inst, struct brw_reg dst,
        -:        -:  412:                                 struct brw_reg src,
        -:        -:  413:                                 struct brw_reg surf_index);
        -:        -:  414:   void generate_ddx(enum opcode op, struct brw_reg dst, struct brw_reg src);
        -:        -:  415:   void generate_ddy(enum opcode op, struct brw_reg dst, struct brw_reg src);
        -:        -:  416:   void generate_scratch_write(fs_inst *inst, struct brw_reg src);
        -:        -:  417:   void generate_scratch_read(fs_inst *inst, struct brw_reg dst);
        -:        -:  418:   void generate_scratch_read_gen7(fs_inst *inst, struct brw_reg dst);
        -:        -:  419:   void generate_uniform_pull_constant_load(fs_inst *inst, struct brw_reg dst,
        -:        -:  420:                                            struct brw_reg index,
        -:        -:  421:                                            struct brw_reg offset);
        -:        -:  422:   void generate_uniform_pull_constant_load_gen7(fs_inst *inst,
        -:        -:  423:                                                 struct brw_reg dst,
        -:        -:  424:                                                 struct brw_reg surf_index,
        -:        -:  425:                                                 struct brw_reg payload);
        -:        -:  426:   void generate_varying_pull_constant_load_gen4(fs_inst *inst,
        -:        -:  427:                                                 struct brw_reg dst,
        -:        -:  428:                                                 struct brw_reg index);
        -:        -:  429:   void generate_varying_pull_constant_load_gen7(fs_inst *inst,
        -:        -:  430:                                                 struct brw_reg dst,
        -:        -:  431:                                                 struct brw_reg index,
        -:        -:  432:                                                 struct brw_reg offset);
        -:        -:  433:   void generate_mov_dispatch_to_flags(fs_inst *inst);
        -:        -:  434:
        -:        -:  435:   void generate_pixel_interpolator_query(fs_inst *inst,
        -:        -:  436:                                          struct brw_reg dst,
        -:        -:  437:                                          struct brw_reg src,
        -:        -:  438:                                          struct brw_reg msg_data,
        -:        -:  439:                                          unsigned msg_type);
        -:        -:  440:
        -:        -:  441:   void generate_set_sample_id(fs_inst *inst,
        -:        -:  442:                               struct brw_reg dst,
        -:        -:  443:                               struct brw_reg src0,
        -:        -:  444:                               struct brw_reg src1);
        -:        -:  445:
        -:        -:  446:   void generate_discard_jump(fs_inst *inst);
        -:        -:  447:
        -:        -:  448:   void generate_pack_half_2x16_split(fs_inst *inst,
        -:        -:  449:                                      struct brw_reg dst,
        -:        -:  450:                                      struct brw_reg x,
        -:        -:  451:                                      struct brw_reg y);
        -:        -:  452:   void generate_unpack_half_2x16_split(fs_inst *inst,
        -:        -:  453:                                        struct brw_reg dst,
        -:        -:  454:                                        struct brw_reg src);
        -:        -:  455:
        -:        -:  456:   void generate_shader_time_add(fs_inst *inst,
        -:        -:  457:                                 struct brw_reg payload,
        -:        -:  458:                                 struct brw_reg offset,
        -:        -:  459:                                 struct brw_reg value);
        -:        -:  460:
        -:        -:  461:   void generate_mov_indirect(fs_inst *inst,
        -:        -:  462:                              struct brw_reg dst,
        -:        -:  463:                              struct brw_reg reg,
        -:        -:  464:                              struct brw_reg indirect_byte_offset);
        -:        -:  465:
        -:        -:  466:   bool patch_discard_jumps_to_fb_writes();
        -:        -:  467:
        -:        -:  468:   const struct brw_compiler *compiler;
        -:        -:  469:   void *log_data; /* Passed to compiler->*_log functions */
        -:        -:  470:
        -:        -:  471:   const struct gen_device_info *devinfo;
        -:        -:  472:
        -:        -:  473:   struct brw_codegen *p;
        -:        -:  474:   const void * const key;
        -:        -:  475:   struct brw_stage_prog_data * const prog_data;
        -:        -:  476:
        -:        -:  477:   unsigned dispatch_width; /**< 8, 16 or 32 */
        -:        -:  478:
        -:        -:  479:   exec_list discard_halt_patches;
        -:        -:  480:   unsigned promoted_constants;
        -:        -:  481:   bool runtime_check_aads_emit;
        -:        -:  482:   bool debug_flag;
        -:        -:  483:   const char *shader_name;
        -:        -:  484:   gl_shader_stage stage;
        -:        -:  485:   void *mem_ctx;
        -:        -:  486:};
        -:        -:  487:
        -:        -:  488:void shuffle_32bit_load_result_to_64bit_data(const brw::fs_builder &bld,
        -:        -:  489:                                             const fs_reg &dst,
        -:        -:  490:                                             const fs_reg &src,
        -:        -:  491:                                             uint32_t components);
        -:        -:  492:
        -:        -:  493:void shuffle_64bit_data_for_32bit_write(const brw::fs_builder &bld,
        -:        -:  494:                                        const fs_reg &dst,
        -:        -:  495:                                        const fs_reg &src,
        -:        -:  496:                                        uint32_t components);
        -:        -:  497:fs_reg setup_imm_df(const brw::fs_builder &bld,
        -:        -:  498:                    double v);
        -:        -:  499:
        -:        -:  500:enum brw_barycentric_mode brw_barycentric_mode(enum glsl_interp_mode mode,
        -:        -:  501:                                               nir_intrinsic_op op);
        -:        -:  502:
        -:        -:  503:#endif /* BRW_FS_H */

src/intel/brw_fs_live_variables.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_live_variables.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_live_variables.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_live_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "brw_cfg.h"
        -:        -:   29:#include "brw_fs_live_variables.h"
        -:        -:   30:
        -:        -:   31:using namespace brw;
        -:        -:   32:
        -:        -:   33:#define MAX_INSTRUCTION (1 << 30)
        -:        -:   34:
        -:        -:   35:/** @file brw_fs_live_variables.cpp
        -:        -:   36: *
        -:        -:   37: * Support for calculating liveness information about virtual GRFs.
        -:        -:   38: *
        -:        -:   39: * This produces a live interval for each whole virtual GRF.  We could
        -:        -:   40: * choose to expose per-component live intervals for VGRFs of size > 1,
        -:        -:   41: * but we currently do not.  It is easier for the consumers of this
        -:        -:   42: * information to work with whole VGRFs.
        -:        -:   43: *
        -:        -:   44: * However, we internally track use/def information at the per-GRF level for
        -:        -:   45: * greater accuracy.  Large VGRFs may be accessed piecemeal over many
        -:        -:   46: * (possibly non-adjacent) instructions.  In this case, examining a single
        -:        -:   47: * instruction is insufficient to decide whether a whole VGRF is ultimately
        -:        -:   48: * used or defined.  Tracking individual components allows us to easily
        -:        -:   49: * assemble this information.
        -:        -:   50: *
        -:        -:   51: * See Muchnick's Advanced Compiler Design and Implementation, section
        -:        -:   52: * 14.1 (p444).
        -:        -:   53: */
        -:        -:   54:
        -:        -:   55:void
     3149:     3745:   56:fs_live_variables::setup_one_read(struct block_data *bd, fs_inst *inst,
        -:        -:   57:                                  int ip, const fs_reg ®)
        -:        -:   58:{
     3149:     3745:   59:   int var = var_from_reg(reg);
     3149:     3745:   60:   assert(var < num_vars);
        -:        -:   61:
     3149:     3745:   62:   start[var] = MIN2(start[var], ip);
     3149:     3745:   63:   end[var] = MAX2(end[var], ip);
        -:        -:   64:
        -:        -:   65:   /* The use[] bitset marks when the block makes use of a variable (VGRF
        -:        -:   66:    * channel) without having completely defined that variable within the
        -:        -:   67:    * block.
        -:        -:   68:    */
     3149:     3745:   69:   if (!BITSET_TEST(bd->def, var))
     1728:     2121:   70:      BITSET_SET(bd->use, var);
     3149:     3745:   71:}
        -:        -:   72:
        -:        -:   73:void
     2332:     2665:   74:fs_live_variables::setup_one_write(struct block_data *bd, fs_inst *inst,
        -:        -:   75:                                   int ip, const fs_reg ®)
        -:        -:   76:{
     2332:     2665:   77:   int var = var_from_reg(reg);
     2332:     2665:   78:   assert(var < num_vars);
        -:        -:   79:
     2332:     2665:   80:   start[var] = MIN2(start[var], ip);
     2332:     2665:   81:   end[var] = MAX2(end[var], ip);
        -:        -:   82:
        -:        -:   83:   /* The def[] bitset marks when an initialization in a block completely
        -:        -:   84:    * screens off previous updates of that variable (VGRF channel).
        -:        -:   85:    */
     2332:     2665:   86:   if (inst->dst.file == VGRF && !inst->is_partial_write()) {
     2332:     2665:   87:      if (!BITSET_TEST(bd->use, var))
     2080:     2371:   88:         BITSET_SET(bd->def, var);
        -:        -:   89:   }
     2332:     2665:   90:}
        -:        -:   91:
        -:        -:   92:/**
        -:        -:   93: * Sets up the use[] and def[] bitsets.
        -:        -:   94: *
        -:        -:   95: * The basic-block-level live variable analysis needs to know which
        -:        -:   96: * variables get used before they're completely defined, and which
        -:        -:   97: * variables are completely defined before they're used.
        -:        -:   98: *
        -:        -:   99: * These are tracked at the per-component level, rather than whole VGRFs.
        -:        -:  100: */
        -:        -:  101:void
       48:       52:  102:fs_live_variables::setup_def_use()
        -:        -:  103:{
       48:       52:  104:   int ip = 0;
        -:        -:  105:
      640:      944:  106:   foreach_block (block, cfg) {
      592:      892:  107:      assert(ip == block->start_ip);
      592:      892:  108:      if (block->num > 0)
      544:      840:  109:	 assert(cfg->blocks[block->num - 1]->end_ip == ip - 1);
        -:        -:  110:
      592:      892:  111:      struct block_data *bd = &block_data[block->num];
        -:        -:  112:
     3231:     4227:  113:      foreach_inst_in_block(fs_inst, inst, block) {
        -:        -:  114:	 /* Set use[] for this instruction */
     5945:     7275:  115:	 for (unsigned int i = 0; i < inst->sources; i++) {
     3306:     3940:  116:            fs_reg reg = inst->src[i];
        -:        -:  117:
     3306:     3940:  118:            if (reg.file != VGRF)
     1194:     1440:  119:               continue;
        -:        -:  120:
     5261:     6245:  121:            for (unsigned j = 0; j < regs_read(inst, i); j++) {
     3149:     3745:  122:               setup_one_read(bd, inst, ip, reg);
     3149:     3745:  123:               reg.offset += REG_SIZE;
        -:        -:  124:            }
        -:        -:  125:	 }
        -:        -:  126:
     2639:     3335:  127:         bd->flag_use[0] |= inst->flags_read(v->devinfo) & ~bd->flag_def[0];
        -:        -:  128:
        -:        -:  129:         /* Set def[] for this instruction */
     2639:     3335:  130:         if (inst->dst.file == VGRF) {
     1614:     1838:  131:            fs_reg reg = inst->dst;
     3946:     4503:  132:            for (unsigned j = 0; j < regs_written(inst); j++) {
     2332:     2665:  133:               setup_one_write(bd, inst, ip, reg);
     2332:     2665:  134:               reg.offset += REG_SIZE;
        -:        -:  135:            }
        -:        -:  136:	 }
        -:        -:  137:
     2639:     3335:  138:         if (!inst->predicate && inst->exec_size >= 8)
     2375:     2915:  139:            bd->flag_def[0] |= inst->flags_written() & ~bd->flag_use[0];
        -:        -:  140:
     2639:     3335:  141:	 ip++;
        -:        -:  142:      }
        -:        -:  143:   }
       48:       52:  144:}
        -:        -:  145:
        -:        -:  146:/**
        -:        -:  147: * The algorithm incrementally sets bits in liveout and livein,
        -:        -:  148: * propagating it through control flow.  It will eventually terminate
        -:        -:  149: * because it only ever adds bits, and stops when no bits are added in
        -:        -:  150: * a pass.
        -:        -:  151: */
        -:        -:  152:void
       48:       52:  153:fs_live_variables::compute_live_variables()
        -:        -:  154:{
       48:       52:  155:   bool cont = true;
        -:        -:  156:
      240:      288:  157:   while (cont) {
       96:      118:  158:      cont = false;
        -:        -:  159:
     1824:     3128:  160:      foreach_block_reverse (block, cfg) {
     1728:     3010:  161:         struct block_data *bd = &block_data[block->num];
        -:        -:  162:
        -:        -:  163:	 /* Update liveout */
     4008:     7124:  164:	 foreach_list_typed(bblock_link, child_link, link, &block->children) {
     2280:     4114:  165:            struct block_data *child_bd = &block_data[child_link->block->num];
        -:        -:  166:
     9564:    17663:  167:	    for (int i = 0; i < bitset_words; i++) {
    14568:    27098:  168:               BITSET_WORD new_liveout = (child_bd->livein[i] &
    14568:    27098:  169:                                          ~bd->liveout[i]);
     7284:    13549:  170:               if (new_liveout) {
     1577:     2715:  171:                  bd->liveout[i] |= new_liveout;
     1577:     2715:  172:                  cont = true;
        -:        -:  173:               }
        -:        -:  174:	    }
     4560:     8228:  175:            BITSET_WORD new_liveout = (child_bd->flag_livein[0] &
     4560:     8228:  176:                                       ~bd->flag_liveout[0]);
     2280:     4114:  177:            if (new_liveout) {
    #####:    #####:  178:               bd->flag_liveout[0] |= new_liveout;
    #####:    #####:  179:               cont = true;
        -:        -:  180:            }
        -:        -:  181:	 }
        -:        -:  182:
        -:        -:  183:         /* Update livein */
     7212:    12995:  184:         for (int i = 0; i < bitset_words; i++) {
     5484:     9985:  185:            BITSET_WORD new_livein = (bd->use[i] |
    10968:    19970:  186:                                      (bd->liveout[i] &
    10968:    19970:  187:                                       ~bd->def[i]));
     5484:     9985:  188:            if (new_livein & ~bd->livein[i]) {
     1451:     2448:  189:               bd->livein[i] |= new_livein;
     1451:     2448:  190:               cont = true;
        -:        -:  191:            }
        -:        -:  192:         }
     1728:     3010:  193:         BITSET_WORD new_livein = (bd->flag_use[0] |
     3456:     6020:  194:                                   (bd->flag_liveout[0] &
     3456:     6020:  195:                                    ~bd->flag_def[0]));
     1728:     3010:  196:         if (new_livein & ~bd->flag_livein[0]) {
    #####:    #####:  197:            bd->flag_livein[0] |= new_livein;
    #####:    #####:  198:            cont = true;
        -:        -:  199:         }
        -:        -:  200:      }
        -:        -:  201:   }
       48:       52:  202:}
        -:        -:  203:
        -:        -:  204:/**
        -:        -:  205: * Extend the start/end ranges for each variable to account for the
        -:        -:  206: * new information calculated from control flow.
        -:        -:  207: */
        -:        -:  208:void
       48:       52:  209:fs_live_variables::compute_start_end()
        -:        -:  210:{
      640:      944:  211:   foreach_block (block, cfg) {
      592:      892:  212:      struct block_data *bd = &block_data[block->num];
        -:        -:  213:
    52646:    81801:  214:      for (int i = 0; i < num_vars; i++) {
    52054:    80909:  215:         if (BITSET_TEST(bd->livein, i)) {
     6246:    12345:  216:            start[i] = MIN2(start[i], block->start_ip);
     6246:    12345:  217:            end[i] = MAX2(end[i], block->start_ip);
        -:        -:  218:         }
        -:        -:  219:
    52054:    80909:  220:         if (BITSET_TEST(bd->liveout, i)) {
     6528:    12768:  221:            start[i] = MIN2(start[i], block->end_ip);
     6528:    12768:  222:            end[i] = MAX2(end[i], block->end_ip);
        -:        -:  223:         }
        -:        -:  224:      }
        -:        -:  225:   }
       48:       52:  226:}
        -:        -:  227:
       48:       52:  228:fs_live_variables::fs_live_variables(fs_visitor *v, const cfg_t *cfg)
       48:       52:  229:   : v(v), cfg(cfg)
        -:        -:  230:{
       48:       52:  231:   mem_ctx = ralloc_context(NULL);
        -:        -:  232:
       48:       52:  233:   num_vgrfs = v->alloc.count;
       48:       52:  234:   num_vars = 0;
       48:       52:  235:   var_from_vgrf = rzalloc_array(mem_ctx, int, num_vgrfs);
     1587:     1771:  236:   for (int i = 0; i < num_vgrfs; i++) {
     1539:     1719:  237:      var_from_vgrf[i] = num_vars;
     1539:     1719:  238:      num_vars += v->alloc.sizes[i];
        -:        -:  239:   }
        -:        -:  240:
       48:       52:  241:   vgrf_from_var = rzalloc_array(mem_ctx, int, num_vars);
     1587:     1771:  242:   for (int i = 0; i < num_vgrfs; i++) {
     3937:     4402:  243:      for (unsigned j = 0; j < v->alloc.sizes[i]; j++) {
     2398:     2683:  244:         vgrf_from_var[var_from_vgrf[i] + j] = i;
        -:        -:  245:      }
        -:        -:  246:   }
        -:        -:  247:
       48:       52:  248:   start = ralloc_array(mem_ctx, int, num_vars);
       48:       52:  249:   end = rzalloc_array(mem_ctx, int, num_vars);
     2446:     2735:  250:   for (int i = 0; i < num_vars; i++) {
     2398:     2683:  251:      start[i] = MAX_INSTRUCTION;
     2398:     2683:  252:      end[i] = -1;
        -:        -:  253:   }
        -:        -:  254:
       48:       52:  255:   block_data= rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
        -:        -:  256:
       48:       52:  257:   bitset_words = BITSET_WORDS(num_vars);
      640:      944:  258:   for (int i = 0; i < cfg->num_blocks; i++) {
      592:      892:  259:      block_data[i].def = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
      592:      892:  260:      block_data[i].use = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
      592:      892:  261:      block_data[i].livein = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
      592:      892:  262:      block_data[i].liveout = rzalloc_array(mem_ctx, BITSET_WORD, bitset_words);
        -:        -:  263:
      592:      892:  264:      block_data[i].flag_def[0] = 0;
      592:      892:  265:      block_data[i].flag_use[0] = 0;
      592:      892:  266:      block_data[i].flag_livein[0] = 0;
      592:      892:  267:      block_data[i].flag_liveout[0] = 0;
        -:        -:  268:   }
        -:        -:  269:
       48:       52:  270:   setup_def_use();
       48:       52:  271:   compute_live_variables();
       48:       52:  272:   compute_start_end();
       48:       52:  273:}
        -:        -:  274:
       96:      104:  275:fs_live_variables::~fs_live_variables()
        -:        -:  276:{
       48:       52:  277:   ralloc_free(mem_ctx);
       48:       52:  278:}
        -:        -:  279:
        -:        -:  280:void
      565:      654:  281:fs_visitor::invalidate_live_intervals()
        -:        -:  282:{
      565:      654:  283:   ralloc_free(live_intervals);
      565:      654:  284:   live_intervals = NULL;
      565:      654:  285:}
        -:        -:  286:
        -:        -:  287:/**
        -:        -:  288: * Compute the live intervals for each virtual GRF.
        -:        -:  289: *
        -:        -:  290: * This uses the per-component use/def data, but combines it to produce
        -:        -:  291: * information about whole VGRFs.
        -:        -:  292: */
        -:        -:  293:void
      105:      115:  294:fs_visitor::calculate_live_intervals()
        -:        -:  295:{
      105:      115:  296:   if (this->live_intervals)
       57:       63:  297:      return;
        -:        -:  298:
       48:       52:  299:   int num_vgrfs = this->alloc.count;
       48:       52:  300:   ralloc_free(this->virtual_grf_start);
       48:       52:  301:   ralloc_free(this->virtual_grf_end);
       48:       52:  302:   virtual_grf_start = ralloc_array(mem_ctx, int, num_vgrfs);
       48:       52:  303:   virtual_grf_end = ralloc_array(mem_ctx, int, num_vgrfs);
        -:        -:  304:
     1587:     1771:  305:   for (int i = 0; i < num_vgrfs; i++) {
     1539:     1719:  306:      virtual_grf_start[i] = MAX_INSTRUCTION;
     1539:     1719:  307:      virtual_grf_end[i] = -1;
        -:        -:  308:   }
        -:        -:  309:
       48:       52:  310:   this->live_intervals = new(mem_ctx) fs_live_variables(this, cfg);
        -:        -:  311:
        -:        -:  312:   /* Merge the per-component live ranges to whole VGRF live ranges. */
     2446:     2735:  313:   for (int i = 0; i < live_intervals->num_vars; i++) {
     2398:     2683:  314:      int vgrf = live_intervals->vgrf_from_var[i];
     4796:     5366:  315:      virtual_grf_start[vgrf] = MIN2(virtual_grf_start[vgrf],
     4796:     5366:  316:                                     live_intervals->start[i]);
     4796:     5366:  317:      virtual_grf_end[vgrf] = MAX2(virtual_grf_end[vgrf],
     4796:     5366:  318:                                   live_intervals->end[i]);
        -:        -:  319:   }
        -:        -:  320:}
        -:        -:  321:
        -:        -:  322:bool
       64:       67:  323:fs_live_variables::vars_interfere(int a, int b)
        -:        -:  324:{
       64:       67:  325:   return !(end[b] <= start[a] ||
       64:       67:  326:            end[a] <= start[b]);
        -:        -:  327:}
        -:        -:  328:
        -:        -:  329:bool
     1782:     1782:  330:fs_visitor::virtual_grf_interferes(int a, int b)
        -:        -:  331:{
     1782:     1782:  332:   return !(virtual_grf_end[a] <= virtual_grf_start[b] ||
     1782:     1782:  333:            virtual_grf_end[b] <= virtual_grf_start[a]);
        3:        3:  334:}

src/intel/brw_fs_lower_conversions.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_conversions.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_lower_conversions.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_lower_conversions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_cfg.h"
        -:        -:   26:#include "brw_fs_builder.h"
        -:        -:   27:
        -:        -:   28:using namespace brw;
        -:        -:   29:
        -:        -:   30:static bool
      206:      218:   31:supports_type_conversion(const fs_inst *inst) {
      206:      218:   32:   switch (inst->opcode) {
        -:        -:   33:   case BRW_OPCODE_MOV:
        -:        -:   34:   case SHADER_OPCODE_MOV_INDIRECT:
       32:       36:   35:      return true;
        -:        -:   36:   case BRW_OPCODE_SEL:
        4:        4:   37:      return inst->dst.type == get_exec_type(inst);
        -:        -:   38:   default:
        -:        -:   39:      /* FIXME: We assume the opcodes don't explicitly mentioned
        -:        -:   40:       * before just work fine with arbitrary conversions.
        -:        -:   41:       */
      170:      178:   42:      return true;
        -:        -:   43:   }
        -:        -:   44:}
        -:        -:   45:
        -:        -:   46:bool
        5:        5:   47:fs_visitor::lower_conversions()
        -:        -:   48:{
        5:        5:   49:   bool progress = false;
        -:        -:   50:
      211:      223:   51:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      206:      218:   52:      const fs_builder ibld(this, block, inst);
      206:      218:   53:      fs_reg dst = inst->dst;
      206:      218:   54:      bool saturate = inst->saturate;
        -:        -:   55:
      206:      218:   56:      if (supports_type_conversion(inst)) {
      206:      218:   57:         if (get_exec_type_size(inst) == 8 && type_sz(inst->dst.type) < 8) {
        -:        -:   58:            /* From the Broadwell PRM, 3D Media GPGPU, "Double Precision Float to
        -:        -:   59:             * Single Precision Float":
        -:        -:   60:             *
        -:        -:   61:             *    The upper Dword of every Qword will be written with undefined
        -:        -:   62:             *    value when converting DF to F.
        -:        -:   63:             *
        -:        -:   64:             * So we need to allocate a temporary that's two registers, and then do
        -:        -:   65:             * a strided MOV to get the lower DWord of every Qword that has the
        -:        -:   66:             * result.
        -:        -:   67:             */
    #####:    #####:   68:            fs_reg temp = ibld.vgrf(get_exec_type(inst));
    #####:    #####:   69:            fs_reg strided_temp = subscript(temp, dst.type, 0);
        -:        -:   70:
    #####:    #####:   71:            assert(inst->size_written == inst->dst.component_size(inst->exec_size));
    #####:    #####:   72:            inst->dst = strided_temp;
    #####:    #####:   73:            inst->saturate = false;
        -:        -:   74:            /* As it is an strided destination, we write n-times more being n the
        -:        -:   75:             * size ratio between source and destination types. Update
        -:        -:   76:             * size_written accordingly.
        -:        -:   77:             */
    #####:    #####:   78:            inst->size_written = inst->dst.component_size(inst->exec_size);
    #####:    #####:   79:            ibld.at(block, inst->next).MOV(dst, strided_temp)->saturate = saturate;
        -:        -:   80:
    #####:    #####:   81:            progress = true;
        -:        -:   82:         }
        -:        -:   83:      } else {
    #####:    #####:   84:         fs_reg temp0 = ibld.vgrf(get_exec_type(inst));
        -:        -:   85:
    #####:    #####:   86:         assert(inst->size_written == inst->dst.component_size(inst->exec_size));
    #####:    #####:   87:         inst->dst = temp0;
        -:        -:   88:         /* As it is an strided destination, we write n-times more being n the
        -:        -:   89:          * size ratio between source and destination types. Update
        -:        -:   90:          * size_written accordingly.
        -:        -:   91:          */
    #####:    #####:   92:         inst->size_written = inst->dst.component_size(inst->exec_size);
    #####:    #####:   93:         inst->saturate = false;
        -:        -:   94:         /* Now, do the conversion to original destination's type. In next iteration,
        -:        -:   95:          * we will lower it if it is a d2f conversion.
        -:        -:   96:          */
    #####:    #####:   97:         ibld.at(block, inst->next).MOV(dst, temp0)->saturate = saturate;
        -:        -:   98:
    #####:    #####:   99:         progress = true;
        -:        -:  100:      }
        -:        -:  101:   }
        -:        -:  102:
        5:        5:  103:   if (progress)
    #####:    #####:  104:      invalidate_live_intervals();
        -:        -:  105:
        5:        5:  106:   return progress;
        3:        3:  107:}

src/intel/brw_fs_lower_pack.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_pack.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_lower_pack.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_lower_pack.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Connor Abbott
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_cfg.h"
        -:        -:   26:#include "brw_fs_builder.h"
        -:        -:   27:
        -:        -:   28:using namespace brw;
        -:        -:   29:
        -:        -:   30:bool
        5:        5:   31:fs_visitor::lower_pack()
        -:        -:   32:{
        5:        5:   33:   bool progress = false;
        -:        -:   34:
      199:      211:   35:   foreach_block_and_inst_safe(block, fs_inst, inst, cfg) {
      194:      206:   36:      if (inst->opcode != FS_OPCODE_PACK)
      194:      206:   37:         continue;
        -:        -:   38:
    #####:    #####:   39:      assert(inst->dst.file == VGRF);
    #####:    #####:   40:      assert(inst->saturate == false);
    #####:    #####:   41:      fs_reg dst = inst->dst;
        -:        -:   42:
    #####:    #####:   43:      const fs_builder ibld(this, block, inst);
    #####:    #####:   44:      for (unsigned i = 0; i < inst->sources; i++)
    #####:    #####:   45:         ibld.MOV(subscript(dst, inst->src[i].type, i), inst->src[i]);
        -:        -:   46:
    #####:    #####:   47:      inst->remove(block);
    #####:    #####:   48:      progress = true;
        -:        -:   49:   }
        -:        -:   50:
        5:        5:   51:   if (progress)
    #####:    #####:   52:      invalidate_live_intervals();
        -:        -:   53:
        5:        5:   54:   return progress;
        3:        3:   55:}

src/intel/brw_fs_nir.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_nir.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "compiler/glsl/ir.h"
        -:        -:   25:#include "brw_fs.h"
        -:        -:   26:#include "brw_fs_surface_builder.h"
        -:        -:   27:#include "brw_nir.h"
        -:        -:   28:
        -:        -:   29:using namespace brw;
        -:        -:   30:using namespace brw::surface_access;
        -:        -:   31:
        -:        -:   32:void
        5:        5:   33:fs_visitor::emit_nir_code()
        -:        -:   34:{
        -:        -:   35:   /* emit the arrays used for inputs and outputs - load/store intrinsics will
        -:        -:   36:    * be converted to reads/writes of these arrays
        -:        -:   37:    */
        5:        5:   38:   nir_setup_outputs();
        5:        5:   39:   nir_setup_uniforms();
        5:        5:   40:   nir_emit_system_values();
        -:        -:   41:
        -:        -:   42:   /* get the main function and emit it */
       10:       10:   43:   nir_foreach_function(function, nir) {
        5:        5:   44:      assert(strcmp(function->name, "main") == 0);
        5:        5:   45:      assert(function->impl);
        5:        5:   46:      nir_emit_impl(function->impl);
        -:        -:   47:   }
        5:        5:   48:}
        -:        -:   49:
        -:        -:   50:void
        5:        5:   51:fs_visitor::nir_setup_outputs()
        -:        -:   52:{
        5:        5:   53:   if (stage == MESA_SHADER_TESS_CTRL || stage == MESA_SHADER_FRAGMENT)
        5:        5:   54:      return;
        -:        -:   55:
    #####:    #####:   56:   nir_foreach_variable(var, &nir->outputs) {
        -:        -:   57:      const unsigned vec4s =
    #####:    #####:   58:         var->data.compact ? DIV_ROUND_UP(glsl_get_length(var->type), 4)
    #####:    #####:   59:                           : type_size_vec4(var->type);
    #####:    #####:   60:      fs_reg reg = bld.vgrf(BRW_REGISTER_TYPE_F, 4 * vec4s);
    #####:    #####:   61:      for (unsigned i = 0; i < vec4s; i++) {
    #####:    #####:   62:         if (outputs[var->data.driver_location + i].file == BAD_FILE)
    #####:    #####:   63:            outputs[var->data.driver_location + i] = offset(reg, bld, 4 * i);
        -:        -:   64:      }
        -:        -:   65:   }
        -:        -:   66:}
        -:        -:   67:
        -:        -:   68:void
        5:        5:   69:fs_visitor::nir_setup_uniforms()
        -:        -:   70:{
        5:        5:   71:   if (dispatch_width != min_dispatch_width)
        2:        2:   72:      return;
        -:        -:   73:
        3:        3:   74:   uniforms = nir->num_uniforms / 4;
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:static bool
       67:       99:   78:emit_system_values_block(nir_block *block, fs_visitor *v)
        -:        -:   79:{
        -:        -:   80:   fs_reg *reg;
        -:        -:   81:
      244:      288:   82:   nir_foreach_instr(instr, block) {
      177:      189:   83:      if (instr->type != nir_instr_type_intrinsic)
      145:      157:   84:         continue;
        -:        -:   85:
       32:       32:   86:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
       32:       32:   87:      switch (intrin->intrinsic) {
        -:        -:   88:      case nir_intrinsic_load_vertex_id:
    #####:    #####:   89:         unreachable("should be lowered by lower_vertex_id().");
        -:        -:   90:
        -:        -:   91:      case nir_intrinsic_load_vertex_id_zero_base:
    #####:    #####:   92:         assert(v->stage == MESA_SHADER_VERTEX);
    #####:    #####:   93:         reg = &v->nir_system_values[SYSTEM_VALUE_VERTEX_ID_ZERO_BASE];
    #####:    #####:   94:         if (reg->file == BAD_FILE)
    #####:    #####:   95:            *reg = *v->emit_vs_system_value(SYSTEM_VALUE_VERTEX_ID_ZERO_BASE);
    #####:    #####:   96:         break;
        -:        -:   97:
        -:        -:   98:      case nir_intrinsic_load_base_vertex:
    #####:    #####:   99:         assert(v->stage == MESA_SHADER_VERTEX);
    #####:    #####:  100:         reg = &v->nir_system_values[SYSTEM_VALUE_BASE_VERTEX];
    #####:    #####:  101:         if (reg->file == BAD_FILE)
    #####:    #####:  102:            *reg = *v->emit_vs_system_value(SYSTEM_VALUE_BASE_VERTEX);
    #####:    #####:  103:         break;
        -:        -:  104:
        -:        -:  105:      case nir_intrinsic_load_instance_id:
    #####:    #####:  106:         assert(v->stage == MESA_SHADER_VERTEX);
    #####:    #####:  107:         reg = &v->nir_system_values[SYSTEM_VALUE_INSTANCE_ID];
    #####:    #####:  108:         if (reg->file == BAD_FILE)
    #####:    #####:  109:            *reg = *v->emit_vs_system_value(SYSTEM_VALUE_INSTANCE_ID);
    #####:    #####:  110:         break;
        -:        -:  111:
        -:        -:  112:      case nir_intrinsic_load_base_instance:
    #####:    #####:  113:         assert(v->stage == MESA_SHADER_VERTEX);
    #####:    #####:  114:         reg = &v->nir_system_values[SYSTEM_VALUE_BASE_INSTANCE];
    #####:    #####:  115:         if (reg->file == BAD_FILE)
    #####:    #####:  116:            *reg = *v->emit_vs_system_value(SYSTEM_VALUE_BASE_INSTANCE);
    #####:    #####:  117:         break;
        -:        -:  118:
        -:        -:  119:      case nir_intrinsic_load_draw_id:
    #####:    #####:  120:         assert(v->stage == MESA_SHADER_VERTEX);
    #####:    #####:  121:         reg = &v->nir_system_values[SYSTEM_VALUE_DRAW_ID];
    #####:    #####:  122:         if (reg->file == BAD_FILE)
    #####:    #####:  123:            *reg = *v->emit_vs_system_value(SYSTEM_VALUE_DRAW_ID);
    #####:    #####:  124:         break;
        -:        -:  125:
        -:        -:  126:      case nir_intrinsic_load_invocation_id:
    #####:    #####:  127:         if (v->stage == MESA_SHADER_TESS_CTRL)
    #####:    #####:  128:            break;
    #####:    #####:  129:         assert(v->stage == MESA_SHADER_GEOMETRY);
    #####:    #####:  130:         reg = &v->nir_system_values[SYSTEM_VALUE_INVOCATION_ID];
    #####:    #####:  131:         if (reg->file == BAD_FILE) {
    #####:    #####:  132:            const fs_builder abld = v->bld.annotate("gl_InvocationID", NULL);
    #####:    #####:  133:            fs_reg g1(retype(brw_vec8_grf(1, 0), BRW_REGISTER_TYPE_UD));
    #####:    #####:  134:            fs_reg iid = abld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####:  135:            abld.SHR(iid, g1, brw_imm_ud(27u));
    #####:    #####:  136:            *reg = iid;
        -:        -:  137:         }
    #####:    #####:  138:         break;
        -:        -:  139:
        -:        -:  140:      case nir_intrinsic_load_sample_pos:
    #####:    #####:  141:         assert(v->stage == MESA_SHADER_FRAGMENT);
    #####:    #####:  142:         reg = &v->nir_system_values[SYSTEM_VALUE_SAMPLE_POS];
    #####:    #####:  143:         if (reg->file == BAD_FILE)
    #####:    #####:  144:            *reg = *v->emit_samplepos_setup();
    #####:    #####:  145:         break;
        -:        -:  146:
        -:        -:  147:      case nir_intrinsic_load_sample_id:
    #####:    #####:  148:         assert(v->stage == MESA_SHADER_FRAGMENT);
    #####:    #####:  149:         reg = &v->nir_system_values[SYSTEM_VALUE_SAMPLE_ID];
    #####:    #####:  150:         if (reg->file == BAD_FILE)
    #####:    #####:  151:            *reg = *v->emit_sampleid_setup();
    #####:    #####:  152:         break;
        -:        -:  153:
        -:        -:  154:      case nir_intrinsic_load_sample_mask_in:
    #####:    #####:  155:         assert(v->stage == MESA_SHADER_FRAGMENT);
    #####:    #####:  156:         assert(v->devinfo->gen >= 7);
    #####:    #####:  157:         reg = &v->nir_system_values[SYSTEM_VALUE_SAMPLE_MASK_IN];
    #####:    #####:  158:         if (reg->file == BAD_FILE)
    #####:    #####:  159:            *reg = *v->emit_samplemaskin_setup();
    #####:    #####:  160:         break;
        -:        -:  161:
        -:        -:  162:      case nir_intrinsic_load_work_group_id:
    #####:    #####:  163:         assert(v->stage == MESA_SHADER_COMPUTE);
    #####:    #####:  164:         reg = &v->nir_system_values[SYSTEM_VALUE_WORK_GROUP_ID];
    #####:    #####:  165:         if (reg->file == BAD_FILE)
    #####:    #####:  166:            *reg = *v->emit_cs_work_group_id_setup();
    #####:    #####:  167:         break;
        -:        -:  168:
        -:        -:  169:      case nir_intrinsic_load_helper_invocation:
    #####:    #####:  170:         assert(v->stage == MESA_SHADER_FRAGMENT);
    #####:    #####:  171:         reg = &v->nir_system_values[SYSTEM_VALUE_HELPER_INVOCATION];
    #####:    #####:  172:         if (reg->file == BAD_FILE) {
        -:        -:  173:            const fs_builder abld =
    #####:    #####:  174:               v->bld.annotate("gl_HelperInvocation", NULL);
        -:        -:  175:
        -:        -:  176:            /* On Gen6+ (gl_HelperInvocation is only exposed on Gen7+) the
        -:        -:  177:             * pixel mask is in g1.7 of the thread payload.
        -:        -:  178:             *
        -:        -:  179:             * We move the per-channel pixel enable bit to the low bit of each
        -:        -:  180:             * channel by shifting the byte containing the pixel mask by the
        -:        -:  181:             * vector immediate 0x76543210UV.
        -:        -:  182:             *
        -:        -:  183:             * The region of <1,8,0> reads only 1 byte (the pixel masks for
        -:        -:  184:             * subspans 0 and 1) in SIMD8 and an additional byte (the pixel
        -:        -:  185:             * masks for 2 and 3) in SIMD16.
        -:        -:  186:             */
    #####:    #####:  187:            fs_reg shifted = abld.vgrf(BRW_REGISTER_TYPE_UW, 1);
    #####:    #####:  188:            abld.SHR(shifted,
        -:        -:  189:                     stride(byte_offset(retype(brw_vec1_grf(1, 0),
        -:        -:  190:                                               BRW_REGISTER_TYPE_UB), 28),
        -:        -:  191:                            1, 8, 0),
    #####:    #####:  192:                     brw_imm_v(0x76543210));
        -:        -:  193:
        -:        -:  194:            /* A set bit in the pixel mask means the channel is enabled, but
        -:        -:  195:             * that is the opposite of gl_HelperInvocation so we need to invert
        -:        -:  196:             * the mask.
        -:        -:  197:             *
        -:        -:  198:             * The negate source-modifier bit of logical instructions on Gen8+
        -:        -:  199:             * performs 1's complement negation, so we can use that instead of
        -:        -:  200:             * a NOT instruction.
        -:        -:  201:             */
    #####:    #####:  202:            fs_reg inverted = negate(shifted);
    #####:    #####:  203:            if (v->devinfo->gen < 8) {
    #####:    #####:  204:               inverted = abld.vgrf(BRW_REGISTER_TYPE_UW);
    #####:    #####:  205:               abld.NOT(inverted, shifted);
        -:        -:  206:            }
        -:        -:  207:
        -:        -:  208:            /* We then resolve the 0/1 result to 0/~0 boolean values by ANDing
        -:        -:  209:             * with 1 and negating.
        -:        -:  210:             */
    #####:    #####:  211:            fs_reg anded = abld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####:  212:            abld.AND(anded, inverted, brw_imm_uw(1));
        -:        -:  213:
    #####:    #####:  214:            fs_reg dst = abld.vgrf(BRW_REGISTER_TYPE_D, 1);
    #####:    #####:  215:            abld.MOV(dst, negate(retype(anded, BRW_REGISTER_TYPE_D)));
    #####:    #####:  216:            *reg = dst;
        -:        -:  217:         }
    #####:    #####:  218:         break;
        -:        -:  219:
        -:        -:  220:      default:
       32:       32:  221:         break;
        -:        -:  222:      }
        -:        -:  223:   }
        -:        -:  224:
       67:       99:  225:   return true;
        -:        -:  226:}
        -:        -:  227:
        -:        -:  228:void
        5:        5:  229:fs_visitor::nir_emit_system_values()
        -:        -:  230:{
        5:        5:  231:   nir_system_values = ralloc_array(mem_ctx, fs_reg, SYSTEM_VALUE_MAX);
      170:      170:  232:   for (unsigned i = 0; i < SYSTEM_VALUE_MAX; i++) {
      165:      165:  233:      nir_system_values[i] = fs_reg();
        -:        -:  234:   }
        -:        -:  235:
       10:       10:  236:   nir_foreach_function(function, nir) {
        5:        5:  237:      assert(strcmp(function->name, "main") == 0);
        5:        5:  238:      assert(function->impl);
       72:      104:  239:      nir_foreach_block(block, function->impl) {
       67:       99:  240:         emit_system_values_block(block, this);
        -:        -:  241:      }
        -:        -:  242:   }
        5:        5:  243:}
        -:        -:  244:
        -:        -:  245:void
        5:        5:  246:fs_visitor::nir_emit_impl(nir_function_impl *impl)
        -:        -:  247:{
        5:        5:  248:   nir_locals = ralloc_array(mem_ctx, fs_reg, impl->reg_alloc);
       51:       51:  249:   for (unsigned i = 0; i < impl->reg_alloc; i++) {
       46:       46:  250:      nir_locals[i] = fs_reg();
        -:        -:  251:   }
        -:        -:  252:
       27:       27:  253:   foreach_list_typed(nir_register, reg, node, &impl->registers) {
        -:        -:  254:      unsigned array_elems =
       22:       22:  255:         reg->num_array_elems == 0 ? 1 : reg->num_array_elems;
       22:       22:  256:      unsigned size = array_elems * reg->num_components;
        -:        -:  257:      const brw_reg_type reg_type =
       22:       22:  258:         reg->bit_size == 32 ? BRW_REGISTER_TYPE_F : BRW_REGISTER_TYPE_DF;
       22:       22:  259:      nir_locals[reg->index] = bld.vgrf(reg_type, size);
        -:        -:  260:   }
        -:        -:  261:
        5:        5:  262:   nir_ssa_values = reralloc(mem_ctx, nir_ssa_values, fs_reg,
        5:        5:  263:                             impl->ssa_alloc);
        -:        -:  264:
        5:        5:  265:   nir_emit_cf_list(&impl->body);
        5:        5:  266:}
        -:        -:  267:
        -:        -:  268:void
       45:       65:  269:fs_visitor::nir_emit_cf_list(exec_list *list)
        -:        -:  270:{
       45:       65:  271:   exec_list_validate(list);
      134:      198:  272:   foreach_list_typed(nir_cf_node, node, node, list) {
       89:      133:  273:      switch (node->type) {
        -:        -:  274:      case nir_cf_node_if:
       18:       26:  275:         nir_emit_if(nir_cf_node_as_if(node));
       18:       26:  276:         break;
        -:        -:  277:
        -:        -:  278:      case nir_cf_node_loop:
        4:        8:  279:         nir_emit_loop(nir_cf_node_as_loop(node));
        4:        8:  280:         break;
        -:        -:  281:
        -:        -:  282:      case nir_cf_node_block:
       67:       99:  283:         nir_emit_block(nir_cf_node_as_block(node));
       67:       99:  284:         break;
        -:        -:  285:
        -:        -:  286:      default:
    #####:    #####:  287:         unreachable("Invalid CFG node block");
        -:        -:  288:      }
        -:        -:  289:   }
       45:       65:  290:}
        -:        -:  291:
        -:        -:  292:void
       18:       26:  293:fs_visitor::nir_emit_if(nir_if *if_stmt)
        -:        -:  294:{
        -:        -:  295:   /* first, put the condition into f0 */
       36:       52:  296:   fs_inst *inst = bld.MOV(bld.null_reg_d(),
       36:       52:  297:                            retype(get_nir_src(if_stmt->condition),
       36:       52:  298:                                   BRW_REGISTER_TYPE_D));
       18:       26:  299:   inst->conditional_mod = BRW_CONDITIONAL_NZ;
        -:        -:  300:
       18:       26:  301:   bld.IF(BRW_PREDICATE_NORMAL);
        -:        -:  302:
       18:       26:  303:   nir_emit_cf_list(&if_stmt->then_list);
        -:        -:  304:
        -:        -:  305:   /* note: if the else is empty, dead CF elimination will remove it */
       18:       26:  306:   bld.emit(BRW_OPCODE_ELSE);
        -:        -:  307:
       18:       26:  308:   nir_emit_cf_list(&if_stmt->else_list);
        -:        -:  309:
       18:       26:  310:   bld.emit(BRW_OPCODE_ENDIF);
       18:       26:  311:}
        -:        -:  312:
        -:        -:  313:void
        4:        8:  314:fs_visitor::nir_emit_loop(nir_loop *loop)
        -:        -:  315:{
        4:        8:  316:   bld.emit(BRW_OPCODE_DO);
        -:        -:  317:
        4:        8:  318:   nir_emit_cf_list(&loop->body);
        -:        -:  319:
        4:        8:  320:   bld.emit(BRW_OPCODE_WHILE);
        4:        8:  321:}
        -:        -:  322:
        -:        -:  323:void
       67:       99:  324:fs_visitor::nir_emit_block(nir_block *block)
        -:        -:  325:{
      244:      288:  326:   nir_foreach_instr(instr, block) {
      177:      189:  327:      nir_emit_instr(instr);
        -:        -:  328:   }
       67:       99:  329:}
        -:        -:  330:
        -:        -:  331:void
      177:      189:  332:fs_visitor::nir_emit_instr(nir_instr *instr)
        -:        -:  333:{
      177:      189:  334:   const fs_builder abld = bld.annotate(NULL, instr);
        -:        -:  335:
      177:      189:  336:   switch (instr->type) {
        -:        -:  337:   case nir_instr_type_alu:
      110:      114:  338:      nir_emit_alu(abld, nir_instr_as_alu(instr));
      110:      114:  339:      break;
        -:        -:  340:
        -:        -:  341:   case nir_instr_type_intrinsic:
       32:       32:  342:      switch (stage) {
        -:        -:  343:      case MESA_SHADER_VERTEX:
    #####:    #####:  344:         nir_emit_vs_intrinsic(abld, nir_instr_as_intrinsic(instr));
    #####:    #####:  345:         break;
        -:        -:  346:      case MESA_SHADER_TESS_CTRL:
    #####:    #####:  347:         nir_emit_tcs_intrinsic(abld, nir_instr_as_intrinsic(instr));
    #####:    #####:  348:         break;
        -:        -:  349:      case MESA_SHADER_TESS_EVAL:
    #####:    #####:  350:         nir_emit_tes_intrinsic(abld, nir_instr_as_intrinsic(instr));
    #####:    #####:  351:         break;
        -:        -:  352:      case MESA_SHADER_GEOMETRY:
    #####:    #####:  353:         nir_emit_gs_intrinsic(abld, nir_instr_as_intrinsic(instr));
    #####:    #####:  354:         break;
        -:        -:  355:      case MESA_SHADER_FRAGMENT:
       32:       32:  356:         nir_emit_fs_intrinsic(abld, nir_instr_as_intrinsic(instr));
       32:       32:  357:         break;
        -:        -:  358:      case MESA_SHADER_COMPUTE:
    #####:    #####:  359:         nir_emit_cs_intrinsic(abld, nir_instr_as_intrinsic(instr));
    #####:    #####:  360:         break;
        -:        -:  361:      default:
    #####:    #####:  362:         unreachable("unsupported shader stage");
        -:        -:  363:      }
       32:       32:  364:      break;
        -:        -:  365:
        -:        -:  366:   case nir_instr_type_tex:
    #####:    #####:  367:      nir_emit_texture(abld, nir_instr_as_tex(instr));
    #####:    #####:  368:      break;
        -:        -:  369:
        -:        -:  370:   case nir_instr_type_load_const:
       27:       27:  371:      nir_emit_load_const(abld, nir_instr_as_load_const(instr));
       27:       27:  372:      break;
        -:        -:  373:
        -:        -:  374:   case nir_instr_type_ssa_undef:
        -:        -:  375:      /* We create a new VGRF for undefs on every use (by handling
        -:        -:  376:       * them in get_nir_src()), rather than for each definition.
        -:        -:  377:       * This helps register coalescing eliminate MOVs from undef.
        -:        -:  378:       */
    #####:    #####:  379:      break;
        -:        -:  380:
        -:        -:  381:   case nir_instr_type_jump:
        8:       16:  382:      nir_emit_jump(abld, nir_instr_as_jump(instr));
        8:       16:  383:      break;
        -:        -:  384:
        -:        -:  385:   default:
    #####:    #####:  386:      unreachable("unknown instruction type");
        -:        -:  387:   }
      177:      189:  388:}
        -:        -:  389:
        -:        -:  390:/**
        -:        -:  391: * Recognizes a parent instruction of nir_op_extract_* and changes the type to
        -:        -:  392: * match instr.
        -:        -:  393: */
        -:        -:  394:bool
        4:        4:  395:fs_visitor::optimize_extract_to_float(nir_alu_instr *instr,
        -:        -:  396:                                      const fs_reg &result)
        -:        -:  397:{
        4:        4:  398:   if (!instr->src[0].src.is_ssa ||
    #####:    #####:  399:       !instr->src[0].src.ssa->parent_instr)
        4:        4:  400:      return false;
        -:        -:  401:
    #####:    #####:  402:   if (instr->src[0].src.ssa->parent_instr->type != nir_instr_type_alu)
    #####:    #####:  403:      return false;
        -:        -:  404:
        -:        -:  405:   nir_alu_instr *src0 =
    #####:    #####:  406:      nir_instr_as_alu(instr->src[0].src.ssa->parent_instr);
        -:        -:  407:
    #####:    #####:  408:   if (src0->op != nir_op_extract_u8 && src0->op != nir_op_extract_u16 &&
    #####:    #####:  409:       src0->op != nir_op_extract_i8 && src0->op != nir_op_extract_i16)
    #####:    #####:  410:      return false;
        -:        -:  411:
    #####:    #####:  412:   nir_const_value *element = nir_src_as_const_value(src0->src[1].src);
    #####:    #####:  413:   assert(element != NULL);
        -:        -:  414:
        -:        -:  415:   /* Element type to extract.*/
    #####:    #####:  416:   const brw_reg_type type = brw_int_type(
    #####:    #####:  417:      src0->op == nir_op_extract_u16 || src0->op == nir_op_extract_i16 ? 2 : 1,
    #####:    #####:  418:      src0->op == nir_op_extract_i16 || src0->op == nir_op_extract_i8);
        -:        -:  419:
    #####:    #####:  420:   fs_reg op0 = get_nir_src(src0->src[0].src);
    #####:    #####:  421:   op0.type = brw_type_for_nir_type(devinfo,
    #####:    #####:  422:      (nir_alu_type)(nir_op_infos[src0->op].input_types[0] |
    #####:    #####:  423:                     nir_src_bit_size(src0->src[0].src)));
    #####:    #####:  424:   op0 = offset(op0, bld, src0->src[0].swizzle[0]);
        -:        -:  425:
    #####:    #####:  426:   set_saturate(instr->dest.saturate,
    #####:    #####:  427:                bld.MOV(result, subscript(op0, type, element->u32[0])));
    #####:    #####:  428:   return true;
        -:        -:  429:}
        -:        -:  430:
        -:        -:  431:bool
        4:        4:  432:fs_visitor::optimize_frontfacing_ternary(nir_alu_instr *instr,
        -:        -:  433:                                         const fs_reg &result)
        -:        -:  434:{
        4:        4:  435:   if (!instr->src[0].src.is_ssa ||
    #####:    #####:  436:       instr->src[0].src.ssa->parent_instr->type != nir_instr_type_intrinsic)
        4:        4:  437:      return false;
        -:        -:  438:
        -:        -:  439:   nir_intrinsic_instr *src0 =
    #####:    #####:  440:      nir_instr_as_intrinsic(instr->src[0].src.ssa->parent_instr);
        -:        -:  441:
    #####:    #####:  442:   if (src0->intrinsic != nir_intrinsic_load_front_face)
    #####:    #####:  443:      return false;
        -:        -:  444:
    #####:    #####:  445:   nir_const_value *value1 = nir_src_as_const_value(instr->src[1].src);
    #####:    #####:  446:   if (!value1 || fabsf(value1->f32[0]) != 1.0f)
    #####:    #####:  447:      return false;
        -:        -:  448:
    #####:    #####:  449:   nir_const_value *value2 = nir_src_as_const_value(instr->src[2].src);
    #####:    #####:  450:   if (!value2 || fabsf(value2->f32[0]) != 1.0f)
    #####:    #####:  451:      return false;
        -:        -:  452:
    #####:    #####:  453:   fs_reg tmp = vgrf(glsl_type::int_type);
        -:        -:  454:
    #####:    #####:  455:   if (devinfo->gen >= 6) {
        -:        -:  456:      /* Bit 15 of g0.0 is 0 if the polygon is front facing. */
    #####:    #####:  457:      fs_reg g0 = fs_reg(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_W));
        -:        -:  458:
        -:        -:  459:      /* For (gl_FrontFacing ? 1.0 : -1.0), emit:
        -:        -:  460:       *
        -:        -:  461:       *    or(8)  tmp.1<2>W  g0.0<0,1,0>W  0x00003f80W
        -:        -:  462:       *    and(8) dst<1>D    tmp<8,8,1>D   0xbf800000D
        -:        -:  463:       *
        -:        -:  464:       * and negate g0.0<0,1,0>W for (gl_FrontFacing ? -1.0 : 1.0).
        -:        -:  465:       *
        -:        -:  466:       * This negation looks like it's safe in practice, because bits 0:4 will
        -:        -:  467:       * surely be TRIANGLES
        -:        -:  468:       */
        -:        -:  469:
    #####:    #####:  470:      if (value1->f32[0] == -1.0f) {
    #####:    #####:  471:         g0.negate = true;
        -:        -:  472:      }
        -:        -:  473:
    #####:    #####:  474:      bld.OR(subscript(tmp, BRW_REGISTER_TYPE_W, 1),
    #####:    #####:  475:             g0, brw_imm_uw(0x3f80));
        -:        -:  476:   } else {
        -:        -:  477:      /* Bit 31 of g1.6 is 0 if the polygon is front facing. */
    #####:    #####:  478:      fs_reg g1_6 = fs_reg(retype(brw_vec1_grf(1, 6), BRW_REGISTER_TYPE_D));
        -:        -:  479:
        -:        -:  480:      /* For (gl_FrontFacing ? 1.0 : -1.0), emit:
        -:        -:  481:       *
        -:        -:  482:       *    or(8)  tmp<1>D  g1.6<0,1,0>D  0x3f800000D
        -:        -:  483:       *    and(8) dst<1>D  tmp<8,8,1>D   0xbf800000D
        -:        -:  484:       *
        -:        -:  485:       * and negate g1.6<0,1,0>D for (gl_FrontFacing ? -1.0 : 1.0).
        -:        -:  486:       *
        -:        -:  487:       * This negation looks like it's safe in practice, because bits 0:4 will
        -:        -:  488:       * surely be TRIANGLES
        -:        -:  489:       */
        -:        -:  490:
    #####:    #####:  491:      if (value1->f32[0] == -1.0f) {
    #####:    #####:  492:         g1_6.negate = true;
        -:        -:  493:      }
        -:        -:  494:
    #####:    #####:  495:      bld.OR(tmp, g1_6, brw_imm_d(0x3f800000));
        -:        -:  496:   }
    #####:    #####:  497:   bld.AND(retype(result, BRW_REGISTER_TYPE_D), tmp, brw_imm_d(0xbf800000));
        -:        -:  498:
    #####:    #####:  499:   return true;
        -:        -:  500:}
        -:        -:  501:
        -:        -:  502:static void
    #####:    #####:  503:emit_find_msb_using_lzd(const fs_builder &bld,
        -:        -:  504:                        const fs_reg &result,
        -:        -:  505:                        const fs_reg &src,
        -:        -:  506:                        bool is_signed)
        -:        -:  507:{
        -:        -:  508:   fs_inst *inst;
    #####:    #####:  509:   fs_reg temp = src;
        -:        -:  510:
    #####:    #####:  511:   if (is_signed) {
        -:        -:  512:      /* LZD of an absolute value source almost always does the right
        -:        -:  513:       * thing.  There are two problem values:
        -:        -:  514:       *
        -:        -:  515:       * * 0x80000000.  Since abs(0x80000000) == 0x80000000, LZD returns
        -:        -:  516:       *   0.  However, findMSB(int(0x80000000)) == 30.
        -:        -:  517:       *
        -:        -:  518:       * * 0xffffffff.  Since abs(0xffffffff) == 1, LZD returns
        -:        -:  519:       *   31.  Section 8.8 (Integer Functions) of the GLSL 4.50 spec says:
        -:        -:  520:       *
        -:        -:  521:       *    For a value of zero or negative one, -1 will be returned.
        -:        -:  522:       *
        -:        -:  523:       * * Negative powers of two.  LZD(abs(-(1<<x))) returns x, but
        -:        -:  524:       *   findMSB(-(1<<x)) should return x-1.
        -:        -:  525:       *
        -:        -:  526:       * For all negative number cases, including 0x80000000 and
        -:        -:  527:       * 0xffffffff, the correct value is obtained from LZD if instead of
        -:        -:  528:       * negating the (already negative) value the logical-not is used.  A
        -:        -:  529:       * conditonal logical-not can be achieved in two instructions.
        -:        -:  530:       */
    #####:    #####:  531:      temp = bld.vgrf(BRW_REGISTER_TYPE_D);
        -:        -:  532:
    #####:    #####:  533:      bld.ASR(temp, src, brw_imm_d(31));
    #####:    #####:  534:      bld.XOR(temp, temp, src);
        -:        -:  535:   }
        -:        -:  536:
    #####:    #####:  537:   bld.LZD(retype(result, BRW_REGISTER_TYPE_UD),
    #####:    #####:  538:           retype(temp, BRW_REGISTER_TYPE_UD));
        -:        -:  539:
        -:        -:  540:   /* LZD counts from the MSB side, while GLSL's findMSB() wants the count
        -:        -:  541:    * from the LSB side. Subtract the result from 31 to convert the MSB
        -:        -:  542:    * count into an LSB count.  If no bits are set, LZD will return 32.
        -:        -:  543:    * 31-32 = -1, which is exactly what findMSB() is supposed to return.
        -:        -:  544:    */
    #####:    #####:  545:   inst = bld.ADD(result, retype(result, BRW_REGISTER_TYPE_D), brw_imm_d(31));
    #####:    #####:  546:   inst->src[0].negate = true;
    #####:    #####:  547:}
        -:        -:  548:
        -:        -:  549:void
      110:      114:  550:fs_visitor::nir_emit_alu(const fs_builder &bld, nir_alu_instr *instr)
        -:        -:  551:{
      110:      114:  552:   struct brw_wm_prog_key *fs_key = (struct brw_wm_prog_key *) this->key;
        -:        -:  553:   fs_inst *inst;
        -:        -:  554:
      110:      114:  555:   fs_reg result = get_nir_dest(instr->dest.dest);
      220:      228:  556:   result.type = brw_type_for_nir_type(devinfo,
      330:      342:  557:      (nir_alu_type)(nir_op_infos[instr->op].output_type |
      220:      228:  558:                     nir_dest_bit_size(instr->dest.dest)));
        -:        -:  559:
      110:      114:  560:   fs_reg op[4];
      308:      320:  561:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
      198:      206:  562:      op[i] = get_nir_src(instr->src[i].src);
      396:      412:  563:      op[i].type = brw_type_for_nir_type(devinfo,
      594:      618:  564:         (nir_alu_type)(nir_op_infos[instr->op].input_types[i] |
      396:      412:  565:                        nir_src_bit_size(instr->src[i].src)));
      198:      206:  566:      op[i].abs = instr->src[i].abs;
      198:      206:  567:      op[i].negate = instr->src[i].negate;
        -:        -:  568:   }
        -:        -:  569:
        -:        -:  570:   /* We get a bunch of mov's out of the from_ssa pass and they may still
        -:        -:  571:    * be vectorized.  We'll handle them as a special-case.  We'll also
        -:        -:  572:    * handle vecN here because it's basically the same thing.
        -:        -:  573:    */
      110:      114:  574:   switch (instr->op) {
        -:        -:  575:   case nir_op_imov:
        -:        -:  576:   case nir_op_fmov:
        -:        -:  577:   case nir_op_vec2:
        -:        -:  578:   case nir_op_vec3:
        -:        -:  579:   case nir_op_vec4: {
       20:       20:  580:      fs_reg temp = result;
       20:       20:  581:      bool need_extra_copy = false;
       46:       46:  582:      for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
       32:       32:  583:         if (!instr->src[i].src.is_ssa &&
        6:        6:  584:             instr->dest.dest.reg.reg == instr->src[i].src.reg.reg) {
    #####:    #####:  585:            need_extra_copy = true;
    #####:    #####:  586:            temp = bld.vgrf(result.type, 4);
    #####:    #####:  587:            break;
        -:        -:  588:         }
        -:        -:  589:      }
        -:        -:  590:
      100:      100:  591:      for (unsigned i = 0; i < 4; i++) {
       80:       80:  592:         if (!(instr->dest.write_mask & (1 << i)))
       54:       54:  593:            continue;
        -:        -:  594:
       26:       26:  595:         if (instr->op == nir_op_imov || instr->op == nir_op_fmov) {
       36:       36:  596:            inst = bld.MOV(offset(temp, bld, i),
       54:       54:  597:                           offset(op[0], bld, instr->src[0].swizzle[i]));
        -:        -:  598:         } else {
       16:       16:  599:            inst = bld.MOV(offset(temp, bld, i),
       24:       24:  600:                           offset(op[i], bld, instr->src[i].swizzle[0]));
        -:        -:  601:         }
       26:       26:  602:         inst->saturate = instr->dest.saturate;
        -:        -:  603:      }
        -:        -:  604:
        -:        -:  605:      /* In this case the source and destination registers were the same,
        -:        -:  606:       * so we need to insert an extra set of moves in order to deal with
        -:        -:  607:       * any swizzling.
        -:        -:  608:       */
       20:       20:  609:      if (need_extra_copy) {
    #####:    #####:  610:         for (unsigned i = 0; i < 4; i++) {
    #####:    #####:  611:            if (!(instr->dest.write_mask & (1 << i)))
    #####:    #####:  612:               continue;
        -:        -:  613:
    #####:    #####:  614:            bld.MOV(offset(result, bld, i), offset(temp, bld, i));
        -:        -:  615:         }
        -:        -:  616:      }
       20:       20:  617:      return;
        -:        -:  618:   }
        -:        -:  619:   default:
       90:       94:  620:      break;
        -:        -:  621:   }
        -:        -:  622:
        -:        -:  623:   /* At this point, we have dealt with any instruction that operates on
        -:        -:  624:    * more than a single channel.  Therefore, we can just adjust the source
        -:        -:  625:    * and destination registers for that channel and emit the instruction.
        -:        -:  626:    */
       90:       94:  627:   unsigned channel = 0;
       90:       94:  628:   if (nir_op_infos[instr->op].output_size == 0) {
        -:        -:  629:      /* Since NIR is doing the scalarizing for us, we should only ever see
        -:        -:  630:       * vectorized operations with a single channel.
        -:        -:  631:       */
       90:       94:  632:      assert(_mesa_bitcount(instr->dest.write_mask) == 1);
       90:       94:  633:      channel = ffs(instr->dest.write_mask) - 1;
        -:        -:  634:
       90:       94:  635:      result = offset(result, bld, channel);
        -:        -:  636:   }
        -:        -:  637:
      262:      274:  638:   for (unsigned i = 0; i < nir_op_infos[instr->op].num_inputs; i++) {
      172:      180:  639:      assert(nir_op_infos[instr->op].input_sizes[i] < 2);
      172:      180:  640:      op[i] = offset(op[i], bld, instr->src[i].swizzle[channel]);
        -:        -:  641:   }
        -:        -:  642:
       90:       94:  643:   switch (instr->op) {
        -:        -:  644:   case nir_op_i2f32:
        -:        -:  645:   case nir_op_u2f32:
        4:        4:  646:      if (optimize_extract_to_float(instr, result))
    #####:    #####:  647:         return;
        4:        4:  648:      inst = bld.MOV(result, op[0]);
        4:        4:  649:      inst->saturate = instr->dest.saturate;
        4:        4:  650:      break;
        -:        -:  651:
        -:        -:  652:   case nir_op_f2f64:
        -:        -:  653:   case nir_op_i2f64:
        -:        -:  654:   case nir_op_u2f64:
        -:        -:  655:      /* CHV PRM, vol07, 3D Media GPGPU Engine, Register Region Restrictions:
        -:        -:  656:       *
        -:        -:  657:       *    "When source or destination is 64b (...), regioning in Align1
        -:        -:  658:       *     must follow these rules:
        -:        -:  659:       *
        -:        -:  660:       *     1. Source and destination horizontal stride must be aligned to
        -:        -:  661:       *        the same qword.
        -:        -:  662:       *     (...)"
        -:        -:  663:       *
        -:        -:  664:       * This means that 32-bit to 64-bit conversions need to have the 32-bit
        -:        -:  665:       * data elements aligned to 64-bit. This restriction does not apply to
        -:        -:  666:       * BDW and later.
        -:        -:  667:       */
    #####:    #####:  668:      if (nir_dest_bit_size(instr->dest.dest) == 64 &&
    #####:    #####:  669:          nir_src_bit_size(instr->src[0].src) == 32 &&
    #####:    #####:  670:          (devinfo->is_cherryview || devinfo->is_broxton)) {
    #####:    #####:  671:         fs_reg tmp = bld.vgrf(result.type, 1);
    #####:    #####:  672:         tmp = subscript(tmp, op[0].type, 0);
    #####:    #####:  673:         inst = bld.MOV(tmp, op[0]);
    #####:    #####:  674:         inst = bld.MOV(result, tmp);
    #####:    #####:  675:         inst->saturate = instr->dest.saturate;
    #####:    #####:  676:         break;
        -:        -:  677:      }
        -:        -:  678:      /* fallthrough */
        -:        -:  679:   case nir_op_f2f32:
        -:        -:  680:   case nir_op_f2i32:
        -:        -:  681:   case nir_op_f2u32:
        -:        -:  682:   case nir_op_f2i64:
        -:        -:  683:   case nir_op_f2u64:
        -:        -:  684:   case nir_op_i2i32:
        -:        -:  685:   case nir_op_i2i64:
        -:        -:  686:   case nir_op_u2u32:
        -:        -:  687:   case nir_op_u2u64:
    #####:    #####:  688:      inst = bld.MOV(result, op[0]);
    #####:    #####:  689:      inst->saturate = instr->dest.saturate;
    #####:    #####:  690:      break;
        -:        -:  691:
        -:        -:  692:   case nir_op_fsign: {
    #####:    #####:  693:      if (op[0].abs) {
        -:        -:  694:         /* Straightforward since the source can be assumed to be
        -:        -:  695:          * non-negative.
        -:        -:  696:          */
    #####:    #####:  697:         set_condmod(BRW_CONDITIONAL_NZ, bld.MOV(result, op[0]));
    #####:    #####:  698:         set_predicate(BRW_PREDICATE_NORMAL, bld.MOV(result, brw_imm_f(1.0f)));
        -:        -:  699:
    #####:    #####:  700:      } else if (type_sz(op[0].type) < 8) {
        -:        -:  701:         /* AND(val, 0x80000000) gives the sign bit.
        -:        -:  702:          *
        -:        -:  703:          * Predicated OR ORs 1.0 (0x3f800000) with the sign bit if val is not
        -:        -:  704:          * zero.
        -:        -:  705:          */
    #####:    #####:  706:         bld.CMP(bld.null_reg_f(), op[0], brw_imm_f(0.0f), BRW_CONDITIONAL_NZ);
        -:        -:  707:
    #####:    #####:  708:         fs_reg result_int = retype(result, BRW_REGISTER_TYPE_UD);
    #####:    #####:  709:         op[0].type = BRW_REGISTER_TYPE_UD;
    #####:    #####:  710:         result.type = BRW_REGISTER_TYPE_UD;
    #####:    #####:  711:         bld.AND(result_int, op[0], brw_imm_ud(0x80000000u));
        -:        -:  712:
    #####:    #####:  713:         inst = bld.OR(result_int, result_int, brw_imm_ud(0x3f800000u));
    #####:    #####:  714:         inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####:  715:         if (instr->dest.saturate) {
    #####:    #####:  716:            inst = bld.MOV(result, result);
    #####:    #####:  717:            inst->saturate = true;
        -:        -:  718:         }
        -:        -:  719:      } else {
        -:        -:  720:         /* For doubles we do the same but we need to consider:
        -:        -:  721:          *
        -:        -:  722:          * - 2-src instructions can't operate with 64-bit immediates
        -:        -:  723:          * - The sign is encoded in the high 32-bit of each DF
        -:        -:  724:          * - CMP with DF requires special handling in SIMD16
        -:        -:  725:          * - We need to produce a DF result.
        -:        -:  726:          */
        -:        -:  727:
        -:        -:  728:         /* 2-src instructions can't have 64-bit immediates, so put 0.0 in
        -:        -:  729:          * a register and compare with that.
        -:        -:  730:          */
    #####:    #####:  731:         fs_reg tmp = vgrf(glsl_type::double_type);
    #####:    #####:  732:         bld.MOV(tmp, setup_imm_df(bld, 0.0));
        -:        -:  733:
        -:        -:  734:         /* A direct DF CMP using the flag register (null dst) won't work in
        -:        -:  735:          * SIMD16 because the CMP will be split in two by lower_simd_width,
        -:        -:  736:          * resulting in two CMP instructions with the same dst (NULL),
        -:        -:  737:          * leading to dead code elimination of the first one. In SIMD8,
        -:        -:  738:          * however, there is no need to split the CMP and we can save some
        -:        -:  739:          * work.
        -:        -:  740:          */
    #####:    #####:  741:         fs_reg dst_tmp = vgrf(glsl_type::double_type);
    #####:    #####:  742:         bld.CMP(dst_tmp, op[0], tmp, BRW_CONDITIONAL_NZ);
        -:        -:  743:
        -:        -:  744:         /* In SIMD16 we want to avoid using a NULL dst register with DF CMP,
        -:        -:  745:          * so we store the result of the comparison in a vgrf instead and
        -:        -:  746:          * then we generate a UD comparison from that that won't have to
        -:        -:  747:          * be split by lower_simd_width. This is what NIR does to handle
        -:        -:  748:          * double comparisons in the general case.
        -:        -:  749:          */
    #####:    #####:  750:         if (bld.dispatch_width() == 16 ) {
    #####:    #####:  751:            fs_reg dst_tmp_ud = retype(dst_tmp, BRW_REGISTER_TYPE_UD);
    #####:    #####:  752:            bld.MOV(dst_tmp_ud, subscript(dst_tmp, BRW_REGISTER_TYPE_UD, 0));
    #####:    #####:  753:            bld.CMP(bld.null_reg_ud(),
    #####:    #####:  754:                    dst_tmp_ud, brw_imm_ud(0), BRW_CONDITIONAL_NZ);
        -:        -:  755:         }
        -:        -:  756:
        -:        -:  757:         /* Get the high 32-bit of each double component where the sign is */
    #####:    #####:  758:         fs_reg result_int = retype(result, BRW_REGISTER_TYPE_UD);
    #####:    #####:  759:         bld.MOV(result_int, subscript(op[0], BRW_REGISTER_TYPE_UD, 1));
        -:        -:  760:
        -:        -:  761:         /* Get the sign bit */
    #####:    #####:  762:         bld.AND(result_int, result_int, brw_imm_ud(0x80000000u));
        -:        -:  763:
        -:        -:  764:         /* Add 1.0 to the sign, predicated to skip the case of op[0] == 0.0 */
    #####:    #####:  765:         inst = bld.OR(result_int, result_int, brw_imm_ud(0x3f800000u));
    #####:    #####:  766:         inst->predicate = BRW_PREDICATE_NORMAL;
        -:        -:  767:
        -:        -:  768:         /* Convert from 32-bit float to 64-bit double */
    #####:    #####:  769:         result.type = BRW_REGISTER_TYPE_DF;
    #####:    #####:  770:         inst = bld.MOV(result, retype(result_int, BRW_REGISTER_TYPE_F));
        -:        -:  771:
    #####:    #####:  772:         if (instr->dest.saturate) {
    #####:    #####:  773:            inst = bld.MOV(result, result);
    #####:    #####:  774:            inst->saturate = true;
        -:        -:  775:         }
        -:        -:  776:      }
    #####:    #####:  777:      break;
        -:        -:  778:   }
        -:        -:  779:
        -:        -:  780:   case nir_op_isign:
        -:        -:  781:      /*  ASR(val, 31) -> negative val generates 0xffffffff (signed -1).
        -:        -:  782:       *               -> non-negative val generates 0x00000000.
        -:        -:  783:       *  Predicated OR sets 1 if val is positive.
        -:        -:  784:       */
    #####:    #####:  785:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####:  786:      bld.CMP(bld.null_reg_d(), op[0], brw_imm_d(0), BRW_CONDITIONAL_G);
    #####:    #####:  787:      bld.ASR(result, op[0], brw_imm_d(31));
    #####:    #####:  788:      inst = bld.OR(result, result, brw_imm_d(1));
    #####:    #####:  789:      inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####:  790:      break;
        -:        -:  791:
        -:        -:  792:   case nir_op_frcp:
        8:        8:  793:      inst = bld.emit(SHADER_OPCODE_RCP, result, op[0]);
        8:        8:  794:      inst->saturate = instr->dest.saturate;
        8:        8:  795:      break;
        -:        -:  796:
        -:        -:  797:   case nir_op_fexp2:
    #####:    #####:  798:      inst = bld.emit(SHADER_OPCODE_EXP2, result, op[0]);
    #####:    #####:  799:      inst->saturate = instr->dest.saturate;
    #####:    #####:  800:      break;
        -:        -:  801:
        -:        -:  802:   case nir_op_flog2:
    #####:    #####:  803:      inst = bld.emit(SHADER_OPCODE_LOG2, result, op[0]);
    #####:    #####:  804:      inst->saturate = instr->dest.saturate;
    #####:    #####:  805:      break;
        -:        -:  806:
        -:        -:  807:   case nir_op_fsin:
    #####:    #####:  808:      inst = bld.emit(SHADER_OPCODE_SIN, result, op[0]);
    #####:    #####:  809:      inst->saturate = instr->dest.saturate;
    #####:    #####:  810:      break;
        -:        -:  811:
        -:        -:  812:   case nir_op_fcos:
    #####:    #####:  813:      inst = bld.emit(SHADER_OPCODE_COS, result, op[0]);
    #####:    #####:  814:      inst->saturate = instr->dest.saturate;
    #####:    #####:  815:      break;
        -:        -:  816:
        -:        -:  817:   case nir_op_fddx:
    #####:    #####:  818:      if (fs_key->high_quality_derivatives) {
    #####:    #####:  819:         inst = bld.emit(FS_OPCODE_DDX_FINE, result, op[0]);
        -:        -:  820:      } else {
    #####:    #####:  821:         inst = bld.emit(FS_OPCODE_DDX_COARSE, result, op[0]);
        -:        -:  822:      }
    #####:    #####:  823:      inst->saturate = instr->dest.saturate;
    #####:    #####:  824:      break;
        -:        -:  825:   case nir_op_fddx_fine:
    #####:    #####:  826:      inst = bld.emit(FS_OPCODE_DDX_FINE, result, op[0]);
    #####:    #####:  827:      inst->saturate = instr->dest.saturate;
    #####:    #####:  828:      break;
        -:        -:  829:   case nir_op_fddx_coarse:
    #####:    #####:  830:      inst = bld.emit(FS_OPCODE_DDX_COARSE, result, op[0]);
    #####:    #####:  831:      inst->saturate = instr->dest.saturate;
    #####:    #####:  832:      break;
        -:        -:  833:   case nir_op_fddy:
    #####:    #####:  834:      if (fs_key->high_quality_derivatives) {
    #####:    #####:  835:         inst = bld.emit(FS_OPCODE_DDY_FINE, result, op[0]);
        -:        -:  836:      } else {
    #####:    #####:  837:         inst = bld.emit(FS_OPCODE_DDY_COARSE, result, op[0]);
        -:        -:  838:      }
    #####:    #####:  839:      inst->saturate = instr->dest.saturate;
    #####:    #####:  840:      break;
        -:        -:  841:   case nir_op_fddy_fine:
    #####:    #####:  842:      inst = bld.emit(FS_OPCODE_DDY_FINE, result, op[0]);
    #####:    #####:  843:      inst->saturate = instr->dest.saturate;
    #####:    #####:  844:      break;
        -:        -:  845:   case nir_op_fddy_coarse:
    #####:    #####:  846:      inst = bld.emit(FS_OPCODE_DDY_COARSE, result, op[0]);
    #####:    #####:  847:      inst->saturate = instr->dest.saturate;
    #####:    #####:  848:      break;
        -:        -:  849:
        -:        -:  850:   case nir_op_iadd:
        -:        -:  851:   case nir_op_fadd:
       14:       14:  852:      inst = bld.ADD(result, op[0], op[1]);
       14:       14:  853:      inst->saturate = instr->dest.saturate;
       14:       14:  854:      break;
        -:        -:  855:
        -:        -:  856:   case nir_op_fmul:
       18:       18:  857:      inst = bld.MUL(result, op[0], op[1]);
       18:       18:  858:      inst->saturate = instr->dest.saturate;
       18:       18:  859:      break;
        -:        -:  860:
        -:        -:  861:   case nir_op_imul:
    #####:    #####:  862:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####:  863:      bld.MUL(result, op[0], op[1]);
    #####:    #####:  864:      break;
        -:        -:  865:
        -:        -:  866:   case nir_op_imul_high:
        -:        -:  867:   case nir_op_umul_high:
    #####:    #####:  868:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####:  869:      bld.emit(SHADER_OPCODE_MULH, result, op[0], op[1]);
    #####:    #####:  870:      break;
        -:        -:  871:
        -:        -:  872:   case nir_op_idiv:
        -:        -:  873:   case nir_op_udiv:
    #####:    #####:  874:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####:  875:      bld.emit(SHADER_OPCODE_INT_QUOTIENT, result, op[0], op[1]);
    #####:    #####:  876:      break;
        -:        -:  877:
        -:        -:  878:   case nir_op_uadd_carry:
    #####:    #####:  879:      unreachable("Should have been lowered by carry_to_arith().");
        -:        -:  880:
        -:        -:  881:   case nir_op_usub_borrow:
    #####:    #####:  882:      unreachable("Should have been lowered by borrow_to_arith().");
        -:        -:  883:
        -:        -:  884:   case nir_op_umod:
        -:        -:  885:   case nir_op_irem:
        -:        -:  886:      /* According to the sign table for INT DIV in the Ivy Bridge PRM, it
        -:        -:  887:       * appears that our hardware just does the right thing for signed
        -:        -:  888:       * remainder.
        -:        -:  889:       */
    #####:    #####:  890:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####:  891:      bld.emit(SHADER_OPCODE_INT_REMAINDER, result, op[0], op[1]);
    #####:    #####:  892:      break;
        -:        -:  893:
        -:        -:  894:   case nir_op_imod: {
        -:        -:  895:      /* Get a regular C-style remainder.  If a % b == 0, set the predicate. */
    #####:    #####:  896:      bld.emit(SHADER_OPCODE_INT_REMAINDER, result, op[0], op[1]);
        -:        -:  897:
        -:        -:  898:      /* Math instructions don't support conditional mod */
    #####:    #####:  899:      inst = bld.MOV(bld.null_reg_d(), result);
    #####:    #####:  900:      inst->conditional_mod = BRW_CONDITIONAL_NZ;
        -:        -:  901:
        -:        -:  902:      /* Now, we need to determine if signs of the sources are different.
        -:        -:  903:       * When we XOR the sources, the top bit is 0 if they are the same and 1
        -:        -:  904:       * if they are different.  We can then use a conditional modifier to
        -:        -:  905:       * turn that into a predicate.  This leads us to an XOR.l instruction.
        -:        -:  906:       *
        -:        -:  907:       * Technically, according to the PRM, you're not allowed to use .l on a
        -:        -:  908:       * XOR instruction.  However, emperical experiments and Curro's reading
        -:        -:  909:       * of the simulator source both indicate that it's safe.
        -:        -:  910:       */
    #####:    #####:  911:      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_D);
    #####:    #####:  912:      inst = bld.XOR(tmp, op[0], op[1]);
    #####:    #####:  913:      inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####:  914:      inst->conditional_mod = BRW_CONDITIONAL_L;
        -:        -:  915:
        -:        -:  916:      /* If the result of the initial remainder operation is non-zero and the
        -:        -:  917:       * two sources have different signs, add in a copy of op[1] to get the
        -:        -:  918:       * final integer modulus value.
        -:        -:  919:       */
    #####:    #####:  920:      inst = bld.ADD(result, result, op[1]);
    #####:    #####:  921:      inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####:  922:      break;
        -:        -:  923:   }
        -:        -:  924:
        -:        -:  925:   case nir_op_flt:
        -:        -:  926:   case nir_op_fge:
        -:        -:  927:   case nir_op_feq:
        -:        -:  928:   case nir_op_fne: {
       14:       18:  929:      fs_reg dest = result;
       14:       18:  930:      if (nir_src_bit_size(instr->src[0].src) > 32) {
    #####:    #####:  931:         dest = bld.vgrf(BRW_REGISTER_TYPE_DF, 1);
        -:        -:  932:      }
        -:        -:  933:      brw_conditional_mod cond;
       14:       18:  934:      switch (instr->op) {
        -:        -:  935:      case nir_op_flt:
    #####:    #####:  936:         cond = BRW_CONDITIONAL_L;
    #####:    #####:  937:         break;
        -:        -:  938:      case nir_op_fge:
       14:       18:  939:         cond = BRW_CONDITIONAL_GE;
       14:       18:  940:         break;
        -:        -:  941:      case nir_op_feq:
    #####:    #####:  942:         cond = BRW_CONDITIONAL_Z;
    #####:    #####:  943:         break;
        -:        -:  944:      case nir_op_fne:
    #####:    #####:  945:         cond = BRW_CONDITIONAL_NZ;
    #####:    #####:  946:         break;
        -:        -:  947:      default:
    #####:    #####:  948:         unreachable("bad opcode");
        -:        -:  949:      }
       14:       18:  950:      bld.CMP(dest, op[0], op[1], cond);
       14:       18:  951:      if (nir_src_bit_size(instr->src[0].src) > 32) {
    #####:    #####:  952:         bld.MOV(result, subscript(dest, BRW_REGISTER_TYPE_UD, 0));
        -:        -:  953:      }
       14:       18:  954:      break;
        -:        -:  955:   }
        -:        -:  956:
        -:        -:  957:   case nir_op_ilt:
        -:        -:  958:   case nir_op_ult:
        -:        -:  959:   case nir_op_ige:
        -:        -:  960:   case nir_op_uge:
        -:        -:  961:   case nir_op_ieq:
        -:        -:  962:   case nir_op_ine: {
        4:        4:  963:      fs_reg dest = result;
        4:        4:  964:      if (nir_src_bit_size(instr->src[0].src) > 32) {
    #####:    #####:  965:         dest = bld.vgrf(BRW_REGISTER_TYPE_UQ, 1);
        -:        -:  966:      }
        -:        -:  967:
        -:        -:  968:      brw_conditional_mod cond;
        4:        4:  969:      switch (instr->op) {
        -:        -:  970:      case nir_op_ilt:
        -:        -:  971:      case nir_op_ult:
    #####:    #####:  972:         cond = BRW_CONDITIONAL_L;
    #####:    #####:  973:         break;
        -:        -:  974:      case nir_op_ige:
        -:        -:  975:      case nir_op_uge:
        4:        4:  976:         cond = BRW_CONDITIONAL_GE;
        4:        4:  977:         break;
        -:        -:  978:      case nir_op_ieq:
    #####:    #####:  979:         cond = BRW_CONDITIONAL_Z;
    #####:    #####:  980:         break;
        -:        -:  981:      case nir_op_ine:
    #####:    #####:  982:         cond = BRW_CONDITIONAL_NZ;
    #####:    #####:  983:         break;
        -:        -:  984:      default:
    #####:    #####:  985:         unreachable("bad opcode");
        -:        -:  986:      }
        4:        4:  987:      bld.CMP(dest, op[0], op[1], cond);
        4:        4:  988:      if (nir_src_bit_size(instr->src[0].src) > 32) {
    #####:    #####:  989:         bld.MOV(result, subscript(dest, BRW_REGISTER_TYPE_UD, 0));
        -:        -:  990:      }
        4:        4:  991:      break;
        -:        -:  992:   }
        -:        -:  993:
        -:        -:  994:   case nir_op_inot:
    #####:    #####:  995:      if (devinfo->gen >= 8) {
    #####:    #####:  996:         op[0] = resolve_source_modifiers(op[0]);
        -:        -:  997:      }
    #####:    #####:  998:      bld.NOT(result, op[0]);
    #####:    #####:  999:      break;
        -:        -: 1000:   case nir_op_ixor:
    #####:    #####: 1001:      if (devinfo->gen >= 8) {
    #####:    #####: 1002:         op[0] = resolve_source_modifiers(op[0]);
    #####:    #####: 1003:         op[1] = resolve_source_modifiers(op[1]);
        -:        -: 1004:      }
    #####:    #####: 1005:      bld.XOR(result, op[0], op[1]);
    #####:    #####: 1006:      break;
        -:        -: 1007:   case nir_op_ior:
    #####:    #####: 1008:      if (devinfo->gen >= 8) {
    #####:    #####: 1009:         op[0] = resolve_source_modifiers(op[0]);
    #####:    #####: 1010:         op[1] = resolve_source_modifiers(op[1]);
        -:        -: 1011:      }
    #####:    #####: 1012:      bld.OR(result, op[0], op[1]);
    #####:    #####: 1013:      break;
        -:        -: 1014:   case nir_op_iand:
    #####:    #####: 1015:      if (devinfo->gen >= 8) {
    #####:    #####: 1016:         op[0] = resolve_source_modifiers(op[0]);
    #####:    #####: 1017:         op[1] = resolve_source_modifiers(op[1]);
        -:        -: 1018:      }
    #####:    #####: 1019:      bld.AND(result, op[0], op[1]);
    #####:    #####: 1020:      break;
        -:        -: 1021:
        -:        -: 1022:   case nir_op_fdot2:
        -:        -: 1023:   case nir_op_fdot3:
        -:        -: 1024:   case nir_op_fdot4:
        -:        -: 1025:   case nir_op_ball_fequal2:
        -:        -: 1026:   case nir_op_ball_iequal2:
        -:        -: 1027:   case nir_op_ball_fequal3:
        -:        -: 1028:   case nir_op_ball_iequal3:
        -:        -: 1029:   case nir_op_ball_fequal4:
        -:        -: 1030:   case nir_op_ball_iequal4:
        -:        -: 1031:   case nir_op_bany_fnequal2:
        -:        -: 1032:   case nir_op_bany_inequal2:
        -:        -: 1033:   case nir_op_bany_fnequal3:
        -:        -: 1034:   case nir_op_bany_inequal3:
        -:        -: 1035:   case nir_op_bany_fnequal4:
        -:        -: 1036:   case nir_op_bany_inequal4:
    #####:    #####: 1037:      unreachable("Lowered by nir_lower_alu_reductions");
        -:        -: 1038:
        -:        -: 1039:   case nir_op_fnoise1_1:
        -:        -: 1040:   case nir_op_fnoise1_2:
        -:        -: 1041:   case nir_op_fnoise1_3:
        -:        -: 1042:   case nir_op_fnoise1_4:
        -:        -: 1043:   case nir_op_fnoise2_1:
        -:        -: 1044:   case nir_op_fnoise2_2:
        -:        -: 1045:   case nir_op_fnoise2_3:
        -:        -: 1046:   case nir_op_fnoise2_4:
        -:        -: 1047:   case nir_op_fnoise3_1:
        -:        -: 1048:   case nir_op_fnoise3_2:
        -:        -: 1049:   case nir_op_fnoise3_3:
        -:        -: 1050:   case nir_op_fnoise3_4:
        -:        -: 1051:   case nir_op_fnoise4_1:
        -:        -: 1052:   case nir_op_fnoise4_2:
        -:        -: 1053:   case nir_op_fnoise4_3:
        -:        -: 1054:   case nir_op_fnoise4_4:
    #####:    #####: 1055:      unreachable("not reached: should be handled by lower_noise");
        -:        -: 1056:
        -:        -: 1057:   case nir_op_ldexp:
    #####:    #####: 1058:      unreachable("not reached: should be handled by ldexp_to_arith()");
        -:        -: 1059:
        -:        -: 1060:   case nir_op_fsqrt:
    #####:    #####: 1061:      inst = bld.emit(SHADER_OPCODE_SQRT, result, op[0]);
    #####:    #####: 1062:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1063:      break;
        -:        -: 1064:
        -:        -: 1065:   case nir_op_frsq:
    #####:    #####: 1066:      inst = bld.emit(SHADER_OPCODE_RSQ, result, op[0]);
    #####:    #####: 1067:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1068:      break;
        -:        -: 1069:
        -:        -: 1070:   case nir_op_b2i:
        -:        -: 1071:   case nir_op_b2f:
    #####:    #####: 1072:      bld.MOV(result, negate(op[0]));
    #####:    #####: 1073:      break;
        -:        -: 1074:
        -:        -: 1075:   case nir_op_i2b:
        -:        -: 1076:   case nir_op_f2b:
    #####:    #####: 1077:      if (nir_src_bit_size(instr->src[0].src) == 64) {
        -:        -: 1078:         /* two-argument instructions can't take 64-bit immediates */
    #####:    #####: 1079:         fs_reg zero;
    #####:    #####: 1080:         fs_reg tmp;
        -:        -: 1081:
    #####:    #####: 1082:         if (instr->op == nir_op_f2b) {
    #####:    #####: 1083:            zero = vgrf(glsl_type::double_type);
    #####:    #####: 1084:            tmp = vgrf(glsl_type::double_type);
        -:        -: 1085:         } else {
    #####:    #####: 1086:            zero = vgrf(glsl_type::int64_t_type);
    #####:    #####: 1087:            tmp = vgrf(glsl_type::int64_t_type);
        -:        -: 1088:         }
        -:        -: 1089:
    #####:    #####: 1090:         bld.MOV(zero, setup_imm_df(bld, 0.0));
        -:        -: 1091:         /* A SIMD16 execution needs to be split in two instructions, so use
        -:        -: 1092:          * a vgrf instead of the flag register as dst so instruction splitting
        -:        -: 1093:          * works
        -:        -: 1094:          */
    #####:    #####: 1095:         bld.CMP(tmp, op[0], zero, BRW_CONDITIONAL_NZ);
    #####:    #####: 1096:         bld.MOV(result, subscript(tmp, BRW_REGISTER_TYPE_UD, 0));
        -:        -: 1097:      } else {
    #####:    #####: 1098:         if (instr->op == nir_op_f2b) {
    #####:    #####: 1099:            bld.CMP(result, op[0], brw_imm_f(0.0f), BRW_CONDITIONAL_NZ);
        -:        -: 1100:         } else {
    #####:    #####: 1101:            bld.CMP(result, op[0], brw_imm_d(0), BRW_CONDITIONAL_NZ);
        -:        -: 1102:         }
        -:        -: 1103:      }
    #####:    #####: 1104:      break;
        -:        -: 1105:
        -:        -: 1106:   case nir_op_ftrunc:
    #####:    #####: 1107:      inst = bld.RNDZ(result, op[0]);
    #####:    #####: 1108:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1109:      break;
        -:        -: 1110:
        -:        -: 1111:   case nir_op_fceil: {
    #####:    #####: 1112:      op[0].negate = !op[0].negate;
    #####:    #####: 1113:      fs_reg temp = vgrf(glsl_type::float_type);
    #####:    #####: 1114:      bld.RNDD(temp, op[0]);
    #####:    #####: 1115:      temp.negate = true;
    #####:    #####: 1116:      inst = bld.MOV(result, temp);
    #####:    #####: 1117:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1118:      break;
        -:        -: 1119:   }
        -:        -: 1120:   case nir_op_ffloor:
       12:       12: 1121:      inst = bld.RNDD(result, op[0]);
       12:       12: 1122:      inst->saturate = instr->dest.saturate;
       12:       12: 1123:      break;
        -:        -: 1124:   case nir_op_ffract:
    #####:    #####: 1125:      inst = bld.FRC(result, op[0]);
    #####:    #####: 1126:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1127:      break;
        -:        -: 1128:   case nir_op_fround_even:
    #####:    #####: 1129:      inst = bld.RNDE(result, op[0]);
    #####:    #####: 1130:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1131:      break;
        -:        -: 1132:
        -:        -: 1133:   case nir_op_fquantize2f16: {
    #####:    #####: 1134:      fs_reg tmp16 = bld.vgrf(BRW_REGISTER_TYPE_D);
    #####:    #####: 1135:      fs_reg tmp32 = bld.vgrf(BRW_REGISTER_TYPE_F);
    #####:    #####: 1136:      fs_reg zero = bld.vgrf(BRW_REGISTER_TYPE_F);
        -:        -: 1137:
        -:        -: 1138:      /* The destination stride must be at least as big as the source stride. */
    #####:    #####: 1139:      tmp16.type = BRW_REGISTER_TYPE_W;
    #####:    #####: 1140:      tmp16.stride = 2;
        -:        -: 1141:
        -:        -: 1142:      /* Check for denormal */
    #####:    #####: 1143:      fs_reg abs_src0 = op[0];
    #####:    #####: 1144:      abs_src0.abs = true;
    #####:    #####: 1145:      bld.CMP(bld.null_reg_f(), abs_src0, brw_imm_f(ldexpf(1.0, -14)),
    #####:    #####: 1146:              BRW_CONDITIONAL_L);
        -:        -: 1147:      /* Get the appropriately signed zero */
    #####:    #####: 1148:      bld.AND(retype(zero, BRW_REGISTER_TYPE_UD),
    #####:    #####: 1149:              retype(op[0], BRW_REGISTER_TYPE_UD),
    #####:    #####: 1150:              brw_imm_ud(0x80000000));
        -:        -: 1151:      /* Do the actual F32 -> F16 -> F32 conversion */
    #####:    #####: 1152:      bld.emit(BRW_OPCODE_F32TO16, tmp16, op[0]);
    #####:    #####: 1153:      bld.emit(BRW_OPCODE_F16TO32, tmp32, tmp16);
        -:        -: 1154:      /* Select that or zero based on normal status */
    #####:    #####: 1155:      inst = bld.SEL(result, zero, tmp32);
    #####:    #####: 1156:      inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####: 1157:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1158:      break;
        -:        -: 1159:   }
        -:        -: 1160:
        -:        -: 1161:   case nir_op_imin:
        -:        -: 1162:   case nir_op_umin:
        -:        -: 1163:   case nir_op_fmin:
    #####:    #####: 1164:      inst = bld.emit_minmax(result, op[0], op[1], BRW_CONDITIONAL_L);
    #####:    #####: 1165:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1166:      break;
        -:        -: 1167:
        -:        -: 1168:   case nir_op_imax:
        -:        -: 1169:   case nir_op_umax:
        -:        -: 1170:   case nir_op_fmax:
    #####:    #####: 1171:      inst = bld.emit_minmax(result, op[0], op[1], BRW_CONDITIONAL_GE);
    #####:    #####: 1172:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1173:      break;
        -:        -: 1174:
        -:        -: 1175:   case nir_op_pack_snorm_2x16:
        -:        -: 1176:   case nir_op_pack_snorm_4x8:
        -:        -: 1177:   case nir_op_pack_unorm_2x16:
        -:        -: 1178:   case nir_op_pack_unorm_4x8:
        -:        -: 1179:   case nir_op_unpack_snorm_2x16:
        -:        -: 1180:   case nir_op_unpack_snorm_4x8:
        -:        -: 1181:   case nir_op_unpack_unorm_2x16:
        -:        -: 1182:   case nir_op_unpack_unorm_4x8:
        -:        -: 1183:   case nir_op_unpack_half_2x16:
        -:        -: 1184:   case nir_op_pack_half_2x16:
    #####:    #####: 1185:      unreachable("not reached: should be handled by lower_packing_builtins");
        -:        -: 1186:
        -:        -: 1187:   case nir_op_unpack_half_2x16_split_x:
    #####:    #####: 1188:      inst = bld.emit(FS_OPCODE_UNPACK_HALF_2x16_SPLIT_X, result, op[0]);
    #####:    #####: 1189:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1190:      break;
        -:        -: 1191:   case nir_op_unpack_half_2x16_split_y:
    #####:    #####: 1192:      inst = bld.emit(FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y, result, op[0]);
    #####:    #####: 1193:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1194:      break;
        -:        -: 1195:
        -:        -: 1196:   case nir_op_pack_64_2x32_split:
    #####:    #####: 1197:      bld.emit(FS_OPCODE_PACK, result, op[0], op[1]);
    #####:    #####: 1198:      break;
        -:        -: 1199:
        -:        -: 1200:   case nir_op_unpack_64_2x32_split_x:
        -:        -: 1201:   case nir_op_unpack_64_2x32_split_y: {
    #####:    #####: 1202:      if (instr->op == nir_op_unpack_64_2x32_split_x)
    #####:    #####: 1203:         bld.MOV(result, subscript(op[0], BRW_REGISTER_TYPE_UD, 0));
        -:        -: 1204:      else
    #####:    #####: 1205:         bld.MOV(result, subscript(op[0], BRW_REGISTER_TYPE_UD, 1));
    #####:    #####: 1206:      break;
        -:        -: 1207:   }
        -:        -: 1208:
        -:        -: 1209:   case nir_op_fpow:
    #####:    #####: 1210:      inst = bld.emit(SHADER_OPCODE_POW, result, op[0], op[1]);
    #####:    #####: 1211:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1212:      break;
        -:        -: 1213:
        -:        -: 1214:   case nir_op_bitfield_reverse:
    #####:    #####: 1215:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1216:      bld.BFREV(result, op[0]);
    #####:    #####: 1217:      break;
        -:        -: 1218:
        -:        -: 1219:   case nir_op_bit_count:
    #####:    #####: 1220:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1221:      bld.CBIT(result, op[0]);
    #####:    #####: 1222:      break;
        -:        -: 1223:
        -:        -: 1224:   case nir_op_ufind_msb: {
    #####:    #####: 1225:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1226:      emit_find_msb_using_lzd(bld, result, op[0], false);
    #####:    #####: 1227:      break;
        -:        -: 1228:   }
        -:        -: 1229:
        -:        -: 1230:   case nir_op_ifind_msb: {
    #####:    #####: 1231:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
        -:        -: 1232:
    #####:    #####: 1233:      if (devinfo->gen < 7) {
    #####:    #####: 1234:         emit_find_msb_using_lzd(bld, result, op[0], true);
        -:        -: 1235:      } else {
    #####:    #####: 1236:         bld.FBH(retype(result, BRW_REGISTER_TYPE_UD), op[0]);
        -:        -: 1237:
        -:        -: 1238:         /* FBH counts from the MSB side, while GLSL's findMSB() wants the
        -:        -: 1239:          * count from the LSB side. If FBH didn't return an error
        -:        -: 1240:          * (0xFFFFFFFF), then subtract the result from 31 to convert the MSB
        -:        -: 1241:          * count into an LSB count.
        -:        -: 1242:          */
    #####:    #####: 1243:         bld.CMP(bld.null_reg_d(), result, brw_imm_d(-1), BRW_CONDITIONAL_NZ);
        -:        -: 1244:
    #####:    #####: 1245:         inst = bld.ADD(result, result, brw_imm_d(31));
    #####:    #####: 1246:         inst->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####: 1247:         inst->src[0].negate = true;
        -:        -: 1248:      }
    #####:    #####: 1249:      break;
        -:        -: 1250:   }
        -:        -: 1251:
        -:        -: 1252:   case nir_op_find_lsb:
    #####:    #####: 1253:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
        -:        -: 1254:
    #####:    #####: 1255:      if (devinfo->gen < 7) {
    #####:    #####: 1256:         fs_reg temp = vgrf(glsl_type::int_type);
        -:        -: 1257:
        -:        -: 1258:         /* (x & -x) generates a value that consists of only the LSB of x.
        -:        -: 1259:          * For all powers of 2, findMSB(y) == findLSB(y).
        -:        -: 1260:          */
    #####:    #####: 1261:         fs_reg src = retype(op[0], BRW_REGISTER_TYPE_D);
    #####:    #####: 1262:         fs_reg negated_src = src;
        -:        -: 1263:
        -:        -: 1264:         /* One must be negated, and the other must be non-negated.  It
        -:        -: 1265:          * doesn't matter which is which.
        -:        -: 1266:          */
    #####:    #####: 1267:         negated_src.negate = true;
    #####:    #####: 1268:         src.negate = false;
        -:        -: 1269:
    #####:    #####: 1270:         bld.AND(temp, src, negated_src);
    #####:    #####: 1271:         emit_find_msb_using_lzd(bld, result, temp, false);
        -:        -: 1272:      } else {
    #####:    #####: 1273:         bld.FBL(result, op[0]);
        -:        -: 1274:      }
    #####:    #####: 1275:      break;
        -:        -: 1276:
        -:        -: 1277:   case nir_op_ubitfield_extract:
        -:        -: 1278:   case nir_op_ibitfield_extract:
    #####:    #####: 1279:      unreachable("should have been lowered");
        -:        -: 1280:   case nir_op_ubfe:
        -:        -: 1281:   case nir_op_ibfe:
    #####:    #####: 1282:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1283:      bld.BFE(result, op[2], op[1], op[0]);
    #####:    #####: 1284:      break;
        -:        -: 1285:   case nir_op_bfm:
    #####:    #####: 1286:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1287:      bld.BFI1(result, op[0], op[1]);
    #####:    #####: 1288:      break;
        -:        -: 1289:   case nir_op_bfi:
    #####:    #####: 1290:      assert(nir_dest_bit_size(instr->dest.dest) < 64);
    #####:    #####: 1291:      bld.BFI2(result, op[0], op[1], op[2]);
    #####:    #####: 1292:      break;
        -:        -: 1293:
        -:        -: 1294:   case nir_op_bitfield_insert:
    #####:    #####: 1295:      unreachable("not reached: should have been lowered");
        -:        -: 1296:
        -:        -: 1297:   case nir_op_ishl:
    #####:    #####: 1298:      bld.SHL(result, op[0], op[1]);
    #####:    #####: 1299:      break;
        -:        -: 1300:   case nir_op_ishr:
    #####:    #####: 1301:      bld.ASR(result, op[0], op[1]);
    #####:    #####: 1302:      break;
        -:        -: 1303:   case nir_op_ushr:
    #####:    #####: 1304:      bld.SHR(result, op[0], op[1]);
    #####:    #####: 1305:      break;
        -:        -: 1306:
        -:        -: 1307:   case nir_op_pack_half_2x16_split:
    #####:    #####: 1308:      bld.emit(FS_OPCODE_PACK_HALF_2x16_SPLIT, result, op[0], op[1]);
    #####:    #####: 1309:      break;
        -:        -: 1310:
        -:        -: 1311:   case nir_op_ffma:
       12:       12: 1312:      inst = bld.MAD(result, op[2], op[1], op[0]);
       12:       12: 1313:      inst->saturate = instr->dest.saturate;
       12:       12: 1314:      break;
        -:        -: 1315:
        -:        -: 1316:   case nir_op_flrp:
    #####:    #####: 1317:      inst = bld.LRP(result, op[0], op[1], op[2]);
    #####:    #####: 1318:      inst->saturate = instr->dest.saturate;
    #####:    #####: 1319:      break;
        -:        -: 1320:
        -:        -: 1321:   case nir_op_bcsel:
        4:        4: 1322:      if (optimize_frontfacing_ternary(instr, result))
    #####:    #####: 1323:         return;
        -:        -: 1324:
        4:        4: 1325:      bld.CMP(bld.null_reg_d(), op[0], brw_imm_d(0), BRW_CONDITIONAL_NZ);
        4:        4: 1326:      inst = bld.SEL(result, op[1], op[2]);
        4:        4: 1327:      inst->predicate = BRW_PREDICATE_NORMAL;
        4:        4: 1328:      break;
        -:        -: 1329:
        -:        -: 1330:   case nir_op_extract_u8:
        -:        -: 1331:   case nir_op_extract_i8: {
    #####:    #####: 1332:      const brw_reg_type type = brw_int_type(1, instr->op == nir_op_extract_i8);
    #####:    #####: 1333:      nir_const_value *byte = nir_src_as_const_value(instr->src[1].src);
    #####:    #####: 1334:      assert(byte != NULL);
    #####:    #####: 1335:      bld.MOV(result, subscript(op[0], type, byte->u32[0]));
    #####:    #####: 1336:      break;
        -:        -: 1337:   }
        -:        -: 1338:
        -:        -: 1339:   case nir_op_extract_u16:
        -:        -: 1340:   case nir_op_extract_i16: {
    #####:    #####: 1341:      const brw_reg_type type = brw_int_type(2, instr->op == nir_op_extract_i16);
    #####:    #####: 1342:      nir_const_value *word = nir_src_as_const_value(instr->src[1].src);
    #####:    #####: 1343:      assert(word != NULL);
    #####:    #####: 1344:      bld.MOV(result, subscript(op[0], type, word->u32[0]));
    #####:    #####: 1345:      break;
        -:        -: 1346:   }
        -:        -: 1347:
        -:        -: 1348:   default:
    #####:    #####: 1349:      unreachable("unhandled instruction");
        -:        -: 1350:   }
        -:        -: 1351:
        -:        -: 1352:   /* If we need to do a boolean resolve, replace the result with -(x & 1)
        -:        -: 1353:    * to sign extend the low bit to 0/~0
        -:        -: 1354:    */
       90:       94: 1355:   if (devinfo->gen <= 5 &&
    #####:    #####: 1356:       (instr->instr.pass_flags & BRW_NIR_BOOLEAN_MASK) == BRW_NIR_BOOLEAN_NEEDS_RESOLVE) {
    #####:    #####: 1357:      fs_reg masked = vgrf(glsl_type::int_type);
    #####:    #####: 1358:      bld.AND(masked, result, brw_imm_d(1));
    #####:    #####: 1359:      masked.negate = true;
    #####:    #####: 1360:      bld.MOV(retype(result, BRW_REGISTER_TYPE_D), masked);
        -:        -: 1361:   }
        -:        -: 1362:}
        -:        -: 1363:
        -:        -: 1364:void
       27:       27: 1365:fs_visitor::nir_emit_load_const(const fs_builder &bld,
        -:        -: 1366:                                nir_load_const_instr *instr)
        -:        -: 1367:{
        -:        -: 1368:   const brw_reg_type reg_type =
       27:       27: 1369:      instr->def.bit_size == 32 ? BRW_REGISTER_TYPE_D : BRW_REGISTER_TYPE_DF;
       27:       27: 1370:   fs_reg reg = bld.vgrf(reg_type, instr->def.num_components);
        -:        -: 1371:
       27:       27: 1372:   switch (instr->def.bit_size) {
        -:        -: 1373:   case 32:
       66:       66: 1374:      for (unsigned i = 0; i < instr->def.num_components; i++)
       39:       39: 1375:         bld.MOV(offset(reg, bld, i), brw_imm_d(instr->value.i32[i]));
       27:       27: 1376:      break;
        -:        -: 1377:
        -:        -: 1378:   case 64:
    #####:    #####: 1379:      for (unsigned i = 0; i < instr->def.num_components; i++)
    #####:    #####: 1380:         bld.MOV(offset(reg, bld, i),
    #####:    #####: 1381:                 setup_imm_df(bld, instr->value.f64[i]));
    #####:    #####: 1382:      break;
        -:        -: 1383:
        -:        -: 1384:   default:
    #####:    #####: 1385:      unreachable("Invalid bit size");
        -:        -: 1386:   }
        -:        -: 1387:
       27:       27: 1388:   nir_ssa_values[instr->def.index] = reg;
       27:       27: 1389:}
        -:        -: 1390:
        -:        -: 1391:fs_reg
      221:      237: 1392:fs_visitor::get_nir_src(const nir_src &src)
        -:        -: 1393:{
      221:      237: 1394:   fs_reg reg;
      221:      237: 1395:   if (src.is_ssa) {
      153:      165: 1396:      if (src.ssa->parent_instr->type == nir_instr_type_ssa_undef) {
    #####:    #####: 1397:         const brw_reg_type reg_type = src.ssa->bit_size == 32 ?
    #####:    #####: 1398:            BRW_REGISTER_TYPE_D : BRW_REGISTER_TYPE_DF;
    #####:    #####: 1399:         reg = bld.vgrf(reg_type, src.ssa->num_components);
        -:        -: 1400:      } else {
      153:      165: 1401:         reg = nir_ssa_values[src.ssa->index];
        -:        -: 1402:      }
        -:        -: 1403:   } else {
        -:        -: 1404:      /* We don't handle indirects on locals */
       68:       72: 1405:      assert(src.reg.indirect == NULL);
      204:      216: 1406:      reg = offset(nir_locals[src.reg.reg->index], bld,
      204:      216: 1407:                   src.reg.base_offset * src.reg.reg->num_components);
        -:        -: 1408:   }
        -:        -: 1409:
        -:        -: 1410:   /* to avoid floating-point denorm flushing problems, set the type by
        -:        -: 1411:    * default to D - instructions that need floating point semantics will set
        -:        -: 1412:    * this to F if they need to
        -:        -: 1413:    */
      221:      237: 1414:   return retype(reg, BRW_REGISTER_TYPE_D);
        -:        -: 1415:}
        -:        -: 1416:
        -:        -: 1417:/**
        -:        -: 1418: * Return an IMM for constants; otherwise call get_nir_src() as normal.
        -:        -: 1419: */
        -:        -: 1420:fs_reg
    #####:    #####: 1421:fs_visitor::get_nir_src_imm(const nir_src &src)
        -:        -: 1422:{
    #####:    #####: 1423:   nir_const_value *val = nir_src_as_const_value(src);
    #####:    #####: 1424:   return val ? fs_reg(brw_imm_d(val->i32[0])) : get_nir_src(src);
        -:        -: 1425:}
        -:        -: 1426:
        -:        -: 1427:fs_reg
      155:      159: 1428:fs_visitor::get_nir_dest(const nir_dest &dest)
        -:        -: 1429:{
      155:      159: 1430:   if (dest.is_ssa) {
        -:        -: 1431:      const brw_reg_type reg_type =
      113:      117: 1432:         dest.ssa.bit_size == 32 ? BRW_REGISTER_TYPE_F : BRW_REGISTER_TYPE_DF;
      113:      117: 1433:      nir_ssa_values[dest.ssa.index] =
      113:      117: 1434:         bld.vgrf(reg_type, dest.ssa.num_components);
      113:      117: 1435:      return nir_ssa_values[dest.ssa.index];
        -:        -: 1436:   } else {
        -:        -: 1437:      /* We don't handle indirects on locals */
       42:       42: 1438:      assert(dest.reg.indirect == NULL);
       42:       42: 1439:      return offset(nir_locals[dest.reg.reg->index], bld,
       84:       84: 1440:                    dest.reg.base_offset * dest.reg.reg->num_components);
        -:        -: 1441:   }
        -:        -: 1442:}
        -:        -: 1443:
        -:        -: 1444:fs_reg
    #####:    #####: 1445:fs_visitor::get_nir_image_deref(const nir_deref_var *deref)
        -:        -: 1446:{
    #####:    #####: 1447:   fs_reg image(UNIFORM, deref->var->data.driver_location / 4,
    #####:    #####: 1448:                BRW_REGISTER_TYPE_UD);
    #####:    #####: 1449:   fs_reg indirect;
    #####:    #####: 1450:   unsigned indirect_max = 0;
        -:        -: 1451:
    #####:    #####: 1452:   for (const nir_deref *tail = &deref->deref; tail->child;
        -:        -: 1453:        tail = tail->child) {
    #####:    #####: 1454:      const nir_deref_array *deref_array = nir_deref_as_array(tail->child);
    #####:    #####: 1455:      assert(tail->child->deref_type == nir_deref_type_array);
    #####:    #####: 1456:      const unsigned size = glsl_get_length(tail->type);
    #####:    #####: 1457:      const unsigned element_size = type_size_scalar(deref_array->deref.type);
    #####:    #####: 1458:      const unsigned base = MIN2(deref_array->base_offset, size - 1);
    #####:    #####: 1459:      image = offset(image, bld, base * element_size);
        -:        -: 1460:
    #####:    #####: 1461:      if (deref_array->deref_array_type == nir_deref_array_type_indirect) {
    #####:    #####: 1462:         fs_reg tmp = vgrf(glsl_type::uint_type);
        -:        -: 1463:
        -:        -: 1464:         /* Accessing an invalid surface index with the dataport can result
        -:        -: 1465:          * in a hang.  According to the spec "if the index used to
        -:        -: 1466:          * select an individual element is negative or greater than or
        -:        -: 1467:          * equal to the size of the array, the results of the operation
        -:        -: 1468:          * are undefined but may not lead to termination" -- which is one
        -:        -: 1469:          * of the possible outcomes of the hang.  Clamp the index to
        -:        -: 1470:          * prevent access outside of the array bounds.
        -:        -: 1471:          */
    #####:    #####: 1472:         bld.emit_minmax(tmp, retype(get_nir_src(deref_array->indirect),
    #####:    #####: 1473:                                     BRW_REGISTER_TYPE_UD),
    #####:    #####: 1474:                         brw_imm_ud(size - base - 1), BRW_CONDITIONAL_L);
        -:        -: 1475:
    #####:    #####: 1476:         indirect_max += element_size * (tail->type->length - 1);
        -:        -: 1477:
    #####:    #####: 1478:         bld.MUL(tmp, tmp, brw_imm_ud(element_size * 4));
    #####:    #####: 1479:         if (indirect.file == BAD_FILE) {
    #####:    #####: 1480:            indirect = tmp;
        -:        -: 1481:         } else {
    #####:    #####: 1482:            bld.ADD(indirect, indirect, tmp);
        -:        -: 1483:         }
        -:        -: 1484:      }
        -:        -: 1485:   }
        -:        -: 1486:
    #####:    #####: 1487:   if (indirect.file == BAD_FILE) {
    #####:    #####: 1488:      return image;
        -:        -: 1489:   } else {
        -:        -: 1490:      /* Emit a pile of MOVs to load the uniform into a temporary.  The
        -:        -: 1491:       * dead-code elimination pass will get rid of what we don't use.
        -:        -: 1492:       */
    #####:    #####: 1493:      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UD, BRW_IMAGE_PARAM_SIZE);
    #####:    #####: 1494:      for (unsigned j = 0; j < BRW_IMAGE_PARAM_SIZE; j++) {
    #####:    #####: 1495:         bld.emit(SHADER_OPCODE_MOV_INDIRECT,
    #####:    #####: 1496:                  offset(tmp, bld, j), offset(image, bld, j),
    #####:    #####: 1497:                  indirect, brw_imm_ud((indirect_max + 1) * 4));
        -:        -: 1498:      }
    #####:    #####: 1499:      return tmp;
        -:        -: 1500:   }
        -:        -: 1501:}
        -:        -: 1502:
        -:        -: 1503:void
    #####:    #####: 1504:fs_visitor::emit_percomp(const fs_builder &bld, const fs_inst &inst,
        -:        -: 1505:                         unsigned wr_mask)
        -:        -: 1506:{
    #####:    #####: 1507:   for (unsigned i = 0; i < 4; i++) {
    #####:    #####: 1508:      if (!((wr_mask >> i) & 1))
    #####:    #####: 1509:         continue;
        -:        -: 1510:
    #####:    #####: 1511:      fs_inst *new_inst = new(mem_ctx) fs_inst(inst);
    #####:    #####: 1512:      new_inst->dst = offset(new_inst->dst, bld, i);
    #####:    #####: 1513:      for (unsigned j = 0; j < new_inst->sources; j++)
    #####:    #####: 1514:         if (new_inst->src[j].file == VGRF)
    #####:    #####: 1515:            new_inst->src[j] = offset(new_inst->src[j], bld, i);
        -:        -: 1516:
    #####:    #####: 1517:      bld.emit(new_inst);
        -:        -: 1518:   }
    #####:    #####: 1519:}
        -:        -: 1520:
        -:        -: 1521:/**
        -:        -: 1522: * Get the matching channel register datatype for an image intrinsic of the
        -:        -: 1523: * specified GLSL image type.
        -:        -: 1524: */
        -:        -: 1525:static brw_reg_type
    #####:    #####: 1526:get_image_base_type(const glsl_type *type)
        -:        -: 1527:{
    #####:    #####: 1528:   switch ((glsl_base_type)type->sampled_type) {
        -:        -: 1529:   case GLSL_TYPE_UINT:
    #####:    #####: 1530:      return BRW_REGISTER_TYPE_UD;
        -:        -: 1531:   case GLSL_TYPE_INT:
    #####:    #####: 1532:      return BRW_REGISTER_TYPE_D;
        -:        -: 1533:   case GLSL_TYPE_FLOAT:
    #####:    #####: 1534:      return BRW_REGISTER_TYPE_F;
        -:        -: 1535:   default:
    #####:    #####: 1536:      unreachable("Not reached.");
        -:        -: 1537:   }
        -:        -: 1538:}
        -:        -: 1539:
        -:        -: 1540:/**
        -:        -: 1541: * Get the appropriate atomic op for an image atomic intrinsic.
        -:        -: 1542: */
        -:        -: 1543:static unsigned
    #####:    #####: 1544:get_image_atomic_op(nir_intrinsic_op op, const glsl_type *type)
        -:        -: 1545:{
    #####:    #####: 1546:   switch (op) {
        -:        -: 1547:   case nir_intrinsic_image_atomic_add:
    #####:    #####: 1548:      return BRW_AOP_ADD;
        -:        -: 1549:   case nir_intrinsic_image_atomic_min:
    #####:    #####: 1550:      return (get_image_base_type(type) == BRW_REGISTER_TYPE_D ?
    #####:    #####: 1551:              BRW_AOP_IMIN : BRW_AOP_UMIN);
        -:        -: 1552:   case nir_intrinsic_image_atomic_max:
    #####:    #####: 1553:      return (get_image_base_type(type) == BRW_REGISTER_TYPE_D ?
    #####:    #####: 1554:              BRW_AOP_IMAX : BRW_AOP_UMAX);
        -:        -: 1555:   case nir_intrinsic_image_atomic_and:
    #####:    #####: 1556:      return BRW_AOP_AND;
        -:        -: 1557:   case nir_intrinsic_image_atomic_or:
    #####:    #####: 1558:      return BRW_AOP_OR;
        -:        -: 1559:   case nir_intrinsic_image_atomic_xor:
    #####:    #####: 1560:      return BRW_AOP_XOR;
        -:        -: 1561:   case nir_intrinsic_image_atomic_exchange:
    #####:    #####: 1562:      return BRW_AOP_MOV;
        -:        -: 1563:   case nir_intrinsic_image_atomic_comp_swap:
    #####:    #####: 1564:      return BRW_AOP_CMPWR;
        -:        -: 1565:   default:
    #####:    #####: 1566:      unreachable("Not reachable.");
        -:        -: 1567:   }
        -:        -: 1568:}
        -:        -: 1569:
        -:        -: 1570:static fs_inst *
    #####:    #####: 1571:emit_pixel_interpolater_send(const fs_builder &bld,
        -:        -: 1572:                             enum opcode opcode,
        -:        -: 1573:                             const fs_reg &dst,
        -:        -: 1574:                             const fs_reg &src,
        -:        -: 1575:                             const fs_reg &desc,
        -:        -: 1576:                             glsl_interp_mode interpolation)
        -:        -: 1577:{
        -:        -: 1578:   struct brw_wm_prog_data *wm_prog_data =
    #####:    #####: 1579:      brw_wm_prog_data(bld.shader->stage_prog_data);
        -:        -: 1580:   fs_inst *inst;
    #####:    #####: 1581:   fs_reg payload;
        -:        -: 1582:   int mlen;
        -:        -: 1583:
    #####:    #####: 1584:   if (src.file == BAD_FILE) {
        -:        -: 1585:      /* Dummy payload */
    #####:    #####: 1586:      payload = bld.vgrf(BRW_REGISTER_TYPE_F, 1);
    #####:    #####: 1587:      mlen = 1;
        -:        -: 1588:   } else {
    #####:    #####: 1589:      payload = src;
    #####:    #####: 1590:      mlen = 2 * bld.dispatch_width() / 8;
        -:        -: 1591:   }
        -:        -: 1592:
    #####:    #####: 1593:   inst = bld.emit(opcode, dst, payload, desc);
    #####:    #####: 1594:   inst->mlen = mlen;
        -:        -: 1595:   /* 2 floats per slot returned */
    #####:    #####: 1596:   inst->size_written = 2 * dst.component_size(inst->exec_size);
    #####:    #####: 1597:   inst->pi_noperspective = interpolation == INTERP_MODE_NOPERSPECTIVE;
        -:        -: 1598:
    #####:    #####: 1599:   wm_prog_data->pulls_bary = true;
        -:        -: 1600:
    #####:    #####: 1601:   return inst;
        -:        -: 1602:}
        -:        -: 1603:
        -:        -: 1604:/**
        -:        -: 1605: * Computes 1 << x, given a D/UD register containing some value x.
        -:        -: 1606: */
        -:        -: 1607:static fs_reg
    #####:    #####: 1608:intexp2(const fs_builder &bld, const fs_reg &x)
        -:        -: 1609:{
    #####:    #####: 1610:   assert(x.type == BRW_REGISTER_TYPE_UD || x.type == BRW_REGISTER_TYPE_D);
        -:        -: 1611:
    #####:    #####: 1612:   fs_reg result = bld.vgrf(x.type, 1);
    #####:    #####: 1613:   fs_reg one = bld.vgrf(x.type, 1);
        -:        -: 1614:
    #####:    #####: 1615:   bld.MOV(one, retype(brw_imm_d(1), one.type));
    #####:    #####: 1616:   bld.SHL(result, one, x);
    #####:    #####: 1617:   return result;
        -:        -: 1618:}
        -:        -: 1619:
        -:        -: 1620:void
    #####:    #####: 1621:fs_visitor::emit_gs_end_primitive(const nir_src &vertex_count_nir_src)
        -:        -: 1622:{
    #####:    #####: 1623:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 1624:
    #####:    #####: 1625:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
        -:        -: 1626:
    #####:    #####: 1627:   if (gs_compile->control_data_header_size_bits == 0)
    #####:    #####: 1628:      return;
        -:        -: 1629:
        -:        -: 1630:   /* We can only do EndPrimitive() functionality when the control data
        -:        -: 1631:    * consists of cut bits.  Fortunately, the only time it isn't is when the
        -:        -: 1632:    * output type is points, in which case EndPrimitive() is a no-op.
        -:        -: 1633:    */
    #####:    #####: 1634:   if (gs_prog_data->control_data_format !=
        -:        -: 1635:       GEN7_GS_CONTROL_DATA_FORMAT_GSCTL_CUT) {
    #####:    #####: 1636:      return;
        -:        -: 1637:   }
        -:        -: 1638:
        -:        -: 1639:   /* Cut bits use one bit per vertex. */
    #####:    #####: 1640:   assert(gs_compile->control_data_bits_per_vertex == 1);
        -:        -: 1641:
    #####:    #####: 1642:   fs_reg vertex_count = get_nir_src(vertex_count_nir_src);
    #####:    #####: 1643:   vertex_count.type = BRW_REGISTER_TYPE_UD;
        -:        -: 1644:
        -:        -: 1645:   /* Cut bit n should be set to 1 if EndPrimitive() was called after emitting
        -:        -: 1646:    * vertex n, 0 otherwise.  So all we need to do here is mark bit
        -:        -: 1647:    * (vertex_count - 1) % 32 in the cut_bits register to indicate that
        -:        -: 1648:    * EndPrimitive() was called after emitting vertex (vertex_count - 1);
        -:        -: 1649:    * vec4_gs_visitor::emit_control_data_bits() will take care of the rest.
        -:        -: 1650:    *
        -:        -: 1651:    * Note that if EndPrimitive() is called before emitting any vertices, this
        -:        -: 1652:    * will cause us to set bit 31 of the control_data_bits register to 1.
        -:        -: 1653:    * That's fine because:
        -:        -: 1654:    *
        -:        -: 1655:    * - If max_vertices < 32, then vertex number 31 (zero-based) will never be
        -:        -: 1656:    *   output, so the hardware will ignore cut bit 31.
        -:        -: 1657:    *
        -:        -: 1658:    * - If max_vertices == 32, then vertex number 31 is guaranteed to be the
        -:        -: 1659:    *   last vertex, so setting cut bit 31 has no effect (since the primitive
        -:        -: 1660:    *   is automatically ended when the GS terminates).
        -:        -: 1661:    *
        -:        -: 1662:    * - If max_vertices > 32, then the ir_emit_vertex visitor will reset the
        -:        -: 1663:    *   control_data_bits register to 0 when the first vertex is emitted.
        -:        -: 1664:    */
        -:        -: 1665:
    #####:    #####: 1666:   const fs_builder abld = bld.annotate("end primitive");
        -:        -: 1667:
        -:        -: 1668:   /* control_data_bits |= 1 << ((vertex_count - 1) % 32) */
    #####:    #####: 1669:   fs_reg prev_count = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1670:   abld.ADD(prev_count, vertex_count, brw_imm_ud(0xffffffffu));
    #####:    #####: 1671:   fs_reg mask = intexp2(abld, prev_count);
        -:        -: 1672:   /* Note: we're relying on the fact that the GEN SHL instruction only pays
        -:        -: 1673:    * attention to the lower 5 bits of its second source argument, so on this
        -:        -: 1674:    * architecture, 1 << (vertex_count - 1) is equivalent to 1 <<
        -:        -: 1675:    * ((vertex_count - 1) % 32).
        -:        -: 1676:    */
    #####:    #####: 1677:   abld.OR(this->control_data_bits, this->control_data_bits, mask);
        -:        -: 1678:}
        -:        -: 1679:
        -:        -: 1680:void
    #####:    #####: 1681:fs_visitor::emit_gs_control_data_bits(const fs_reg &vertex_count)
        -:        -: 1682:{
    #####:    #####: 1683:   assert(stage == MESA_SHADER_GEOMETRY);
    #####:    #####: 1684:   assert(gs_compile->control_data_bits_per_vertex != 0);
        -:        -: 1685:
    #####:    #####: 1686:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
        -:        -: 1687:
    #####:    #####: 1688:   const fs_builder abld = bld.annotate("emit control data bits");
    #####:    #####: 1689:   const fs_builder fwa_bld = bld.exec_all();
        -:        -: 1690:
        -:        -: 1691:   /* We use a single UD register to accumulate control data bits (32 bits
        -:        -: 1692:    * for each of the SIMD8 channels).  So we need to write a DWord (32 bits)
        -:        -: 1693:    * at a time.
        -:        -: 1694:    *
        -:        -: 1695:    * Unfortunately, the URB_WRITE_SIMD8 message uses 128-bit (OWord) offsets.
        -:        -: 1696:    * We have select a 128-bit group via the Global and Per-Slot Offsets, then
        -:        -: 1697:    * use the Channel Mask phase to enable/disable which DWord within that
        -:        -: 1698:    * group to write.  (Remember, different SIMD8 channels may have emitted
        -:        -: 1699:    * different numbers of vertices, so we may need per-slot offsets.)
        -:        -: 1700:    *
        -:        -: 1701:    * Channel masking presents an annoying problem: we may have to replicate
        -:        -: 1702:    * the data up to 4 times:
        -:        -: 1703:    *
        -:        -: 1704:    * Msg = Handles, Per-Slot Offsets, Channel Masks, Data, Data, Data, Data.
        -:        -: 1705:    *
        -:        -: 1706:    * To avoid penalizing shaders that emit a small number of vertices, we
        -:        -: 1707:    * can avoid these sometimes: if the size of the control data header is
        -:        -: 1708:    * <= 128 bits, then there is only 1 OWord.  All SIMD8 channels will land
        -:        -: 1709:    * land in the same 128-bit group, so we can skip per-slot offsets.
        -:        -: 1710:    *
        -:        -: 1711:    * Similarly, if the control data header is <= 32 bits, there is only one
        -:        -: 1712:    * DWord, so we can skip channel masks.
        -:        -: 1713:    */
    #####:    #####: 1714:   enum opcode opcode = SHADER_OPCODE_URB_WRITE_SIMD8;
        -:        -: 1715:
    #####:    #####: 1716:   fs_reg channel_mask, per_slot_offset;
        -:        -: 1717:
    #####:    #####: 1718:   if (gs_compile->control_data_header_size_bits > 32) {
    #####:    #####: 1719:      opcode = SHADER_OPCODE_URB_WRITE_SIMD8_MASKED;
    #####:    #####: 1720:      channel_mask = vgrf(glsl_type::uint_type);
        -:        -: 1721:   }
        -:        -: 1722:
    #####:    #####: 1723:   if (gs_compile->control_data_header_size_bits > 128) {
    #####:    #####: 1724:      opcode = SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT;
    #####:    #####: 1725:      per_slot_offset = vgrf(glsl_type::uint_type);
        -:        -: 1726:   }
        -:        -: 1727:
        -:        -: 1728:   /* Figure out which DWord we're trying to write to using the formula:
        -:        -: 1729:    *
        -:        -: 1730:    *    dword_index = (vertex_count - 1) * bits_per_vertex / 32
        -:        -: 1731:    *
        -:        -: 1732:    * Since bits_per_vertex is a power of two, and is known at compile
        -:        -: 1733:    * time, this can be optimized to:
        -:        -: 1734:    *
        -:        -: 1735:    *    dword_index = (vertex_count - 1) >> (6 - log2(bits_per_vertex))
        -:        -: 1736:    */
    #####:    #####: 1737:   if (opcode != SHADER_OPCODE_URB_WRITE_SIMD8) {
    #####:    #####: 1738:      fs_reg dword_index = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1739:      fs_reg prev_count = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1740:      abld.ADD(prev_count, vertex_count, brw_imm_ud(0xffffffffu));
        -:        -: 1741:      unsigned log2_bits_per_vertex =
    #####:    #####: 1742:         util_last_bit(gs_compile->control_data_bits_per_vertex);
    #####:    #####: 1743:      abld.SHR(dword_index, prev_count, brw_imm_ud(6u - log2_bits_per_vertex));
        -:        -: 1744:
    #####:    #####: 1745:      if (per_slot_offset.file != BAD_FILE) {
        -:        -: 1746:         /* Set the per-slot offset to dword_index / 4, so that we'll write to
        -:        -: 1747:          * the appropriate OWord within the control data header.
        -:        -: 1748:          */
    #####:    #####: 1749:         abld.SHR(per_slot_offset, dword_index, brw_imm_ud(2u));
        -:        -: 1750:      }
        -:        -: 1751:
        -:        -: 1752:      /* Set the channel masks to 1 << (dword_index % 4), so that we'll
        -:        -: 1753:       * write to the appropriate DWORD within the OWORD.
        -:        -: 1754:       */
    #####:    #####: 1755:      fs_reg channel = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1756:      fwa_bld.AND(channel, dword_index, brw_imm_ud(3u));
    #####:    #####: 1757:      channel_mask = intexp2(fwa_bld, channel);
        -:        -: 1758:      /* Then the channel masks need to be in bits 23:16. */
    #####:    #####: 1759:      fwa_bld.SHL(channel_mask, channel_mask, brw_imm_ud(16u));
        -:        -: 1760:   }
        -:        -: 1761:
        -:        -: 1762:   /* Store the control data bits in the message payload and send it. */
    #####:    #####: 1763:   int mlen = 2;
    #####:    #####: 1764:   if (channel_mask.file != BAD_FILE)
    #####:    #####: 1765:      mlen += 4; /* channel masks, plus 3 extra copies of the data */
    #####:    #####: 1766:   if (per_slot_offset.file != BAD_FILE)
    #####:    #####: 1767:      mlen++;
        -:        -: 1768:
    #####:    #####: 1769:   fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, mlen);
    #####:    #####: 1770:   fs_reg *sources = ralloc_array(mem_ctx, fs_reg, mlen);
    #####:    #####: 1771:   int i = 0;
    #####:    #####: 1772:   sources[i++] = fs_reg(retype(brw_vec8_grf(1, 0), BRW_REGISTER_TYPE_UD));
    #####:    #####: 1773:   if (per_slot_offset.file != BAD_FILE)
    #####:    #####: 1774:      sources[i++] = per_slot_offset;
    #####:    #####: 1775:   if (channel_mask.file != BAD_FILE)
    #####:    #####: 1776:      sources[i++] = channel_mask;
    #####:    #####: 1777:   while (i < mlen) {
    #####:    #####: 1778:      sources[i++] = this->control_data_bits;
        -:        -: 1779:   }
        -:        -: 1780:
    #####:    #####: 1781:   abld.LOAD_PAYLOAD(payload, sources, mlen, mlen);
    #####:    #####: 1782:   fs_inst *inst = abld.emit(opcode, reg_undef, payload);
    #####:    #####: 1783:   inst->mlen = mlen;
        -:        -: 1784:   /* We need to increment Global Offset by 256-bits to make room for
        -:        -: 1785:    * Broadwell's extra "Vertex Count" payload at the beginning of the
        -:        -: 1786:    * URB entry.  Since this is an OWord message, Global Offset is counted
        -:        -: 1787:    * in 128-bit units, so we must set it to 2.
        -:        -: 1788:    */
    #####:    #####: 1789:   if (gs_prog_data->static_vertex_count == -1)
    #####:    #####: 1790:      inst->offset = 2;
    #####:    #####: 1791:}
        -:        -: 1792:
        -:        -: 1793:void
    #####:    #####: 1794:fs_visitor::set_gs_stream_control_data_bits(const fs_reg &vertex_count,
        -:        -: 1795:                                            unsigned stream_id)
        -:        -: 1796:{
        -:        -: 1797:   /* control_data_bits |= stream_id << ((2 * (vertex_count - 1)) % 32) */
        -:        -: 1798:
        -:        -: 1799:   /* Note: we are calling this *before* increasing vertex_count, so
        -:        -: 1800:    * this->vertex_count == vertex_count - 1 in the formula above.
        -:        -: 1801:    */
        -:        -: 1802:
        -:        -: 1803:   /* Stream mode uses 2 bits per vertex */
    #####:    #####: 1804:   assert(gs_compile->control_data_bits_per_vertex == 2);
        -:        -: 1805:
        -:        -: 1806:   /* Must be a valid stream */
    #####:    #####: 1807:   assert(stream_id >= 0 && stream_id < MAX_VERTEX_STREAMS);
        -:        -: 1808:
        -:        -: 1809:   /* Control data bits are initialized to 0 so we don't have to set any
        -:        -: 1810:    * bits when sending vertices to stream 0.
        -:        -: 1811:    */
    #####:    #####: 1812:   if (stream_id == 0)
    #####:    #####: 1813:      return;
        -:        -: 1814:
    #####:    #####: 1815:   const fs_builder abld = bld.annotate("set stream control data bits", NULL);
        -:        -: 1816:
        -:        -: 1817:   /* reg::sid = stream_id */
    #####:    #####: 1818:   fs_reg sid = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1819:   abld.MOV(sid, brw_imm_ud(stream_id));
        -:        -: 1820:
        -:        -: 1821:   /* reg:shift_count = 2 * (vertex_count - 1) */
    #####:    #####: 1822:   fs_reg shift_count = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1823:   abld.SHL(shift_count, vertex_count, brw_imm_ud(1u));
        -:        -: 1824:
        -:        -: 1825:   /* Note: we're relying on the fact that the GEN SHL instruction only pays
        -:        -: 1826:    * attention to the lower 5 bits of its second source argument, so on this
        -:        -: 1827:    * architecture, stream_id << 2 * (vertex_count - 1) is equivalent to
        -:        -: 1828:    * stream_id << ((2 * (vertex_count - 1)) % 32).
        -:        -: 1829:    */
    #####:    #####: 1830:   fs_reg mask = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1831:   abld.SHL(mask, sid, shift_count);
    #####:    #####: 1832:   abld.OR(this->control_data_bits, this->control_data_bits, mask);
        -:        -: 1833:}
        -:        -: 1834:
        -:        -: 1835:void
    #####:    #####: 1836:fs_visitor::emit_gs_vertex(const nir_src &vertex_count_nir_src,
        -:        -: 1837:                           unsigned stream_id)
        -:        -: 1838:{
    #####:    #####: 1839:   assert(stage == MESA_SHADER_GEOMETRY);
        -:        -: 1840:
    #####:    #####: 1841:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
        -:        -: 1842:
    #####:    #####: 1843:   fs_reg vertex_count = get_nir_src(vertex_count_nir_src);
    #####:    #####: 1844:   vertex_count.type = BRW_REGISTER_TYPE_UD;
        -:        -: 1845:
        -:        -: 1846:   /* Haswell and later hardware ignores the "Render Stream Select" bits
        -:        -: 1847:    * from the 3DSTATE_STREAMOUT packet when the SOL stage is disabled,
        -:        -: 1848:    * and instead sends all primitives down the pipeline for rasterization.
        -:        -: 1849:    * If the SOL stage is enabled, "Render Stream Select" is honored and
        -:        -: 1850:    * primitives bound to non-zero streams are discarded after stream output.
        -:        -: 1851:    *
        -:        -: 1852:    * Since the only purpose of primives sent to non-zero streams is to
        -:        -: 1853:    * be recorded by transform feedback, we can simply discard all geometry
        -:        -: 1854:    * bound to these streams when transform feedback is disabled.
        -:        -: 1855:    */
    #####:    #####: 1856:   if (stream_id > 0 && !nir->info->has_transform_feedback_varyings)
    #####:    #####: 1857:      return;
        -:        -: 1858:
        -:        -: 1859:   /* If we're outputting 32 control data bits or less, then we can wait
        -:        -: 1860:    * until the shader is over to output them all.  Otherwise we need to
        -:        -: 1861:    * output them as we go.  Now is the time to do it, since we're about to
        -:        -: 1862:    * output the vertex_count'th vertex, so it's guaranteed that the
        -:        -: 1863:    * control data bits associated with the (vertex_count - 1)th vertex are
        -:        -: 1864:    * correct.
        -:        -: 1865:    */
    #####:    #####: 1866:   if (gs_compile->control_data_header_size_bits > 32) {
        -:        -: 1867:      const fs_builder abld =
    #####:    #####: 1868:         bld.annotate("emit vertex: emit control data bits");
        -:        -: 1869:
        -:        -: 1870:      /* Only emit control data bits if we've finished accumulating a batch
        -:        -: 1871:       * of 32 bits.  This is the case when:
        -:        -: 1872:       *
        -:        -: 1873:       *     (vertex_count * bits_per_vertex) % 32 == 0
        -:        -: 1874:       *
        -:        -: 1875:       * (in other words, when the last 5 bits of vertex_count *
        -:        -: 1876:       * bits_per_vertex are 0).  Assuming bits_per_vertex == 2^n for some
        -:        -: 1877:       * integer n (which is always the case, since bits_per_vertex is
        -:        -: 1878:       * always 1 or 2), this is equivalent to requiring that the last 5-n
        -:        -: 1879:       * bits of vertex_count are 0:
        -:        -: 1880:       *
        -:        -: 1881:       *     vertex_count & (2^(5-n) - 1) == 0
        -:        -: 1882:       *
        -:        -: 1883:       * 2^(5-n) == 2^5 / 2^n == 32 / bits_per_vertex, so this is
        -:        -: 1884:       * equivalent to:
        -:        -: 1885:       *
        -:        -: 1886:       *     vertex_count & (32 / bits_per_vertex - 1) == 0
        -:        -: 1887:       *
        -:        -: 1888:       * TODO: If vertex_count is an immediate, we could do some of this math
        -:        -: 1889:       *       at compile time...
        -:        -: 1890:       */
        -:        -: 1891:      fs_inst *inst =
    #####:    #####: 1892:         abld.AND(bld.null_reg_d(), vertex_count,
    #####:    #####: 1893:                  brw_imm_ud(32u / gs_compile->control_data_bits_per_vertex - 1u));
    #####:    #####: 1894:      inst->conditional_mod = BRW_CONDITIONAL_Z;
        -:        -: 1895:
    #####:    #####: 1896:      abld.IF(BRW_PREDICATE_NORMAL);
        -:        -: 1897:      /* If vertex_count is 0, then no control data bits have been
        -:        -: 1898:       * accumulated yet, so we can skip emitting them.
        -:        -: 1899:       */
    #####:    #####: 1900:      abld.CMP(bld.null_reg_d(), vertex_count, brw_imm_ud(0u),
    #####:    #####: 1901:               BRW_CONDITIONAL_NEQ);
    #####:    #####: 1902:      abld.IF(BRW_PREDICATE_NORMAL);
    #####:    #####: 1903:      emit_gs_control_data_bits(vertex_count);
    #####:    #####: 1904:      abld.emit(BRW_OPCODE_ENDIF);
        -:        -: 1905:
        -:        -: 1906:      /* Reset control_data_bits to 0 so we can start accumulating a new
        -:        -: 1907:       * batch.
        -:        -: 1908:       *
        -:        -: 1909:       * Note: in the case where vertex_count == 0, this neutralizes the
        -:        -: 1910:       * effect of any call to EndPrimitive() that the shader may have
        -:        -: 1911:       * made before outputting its first vertex.
        -:        -: 1912:       */
    #####:    #####: 1913:      inst = abld.MOV(this->control_data_bits, brw_imm_ud(0u));
    #####:    #####: 1914:      inst->force_writemask_all = true;
    #####:    #####: 1915:      abld.emit(BRW_OPCODE_ENDIF);
        -:        -: 1916:   }
        -:        -: 1917:
    #####:    #####: 1918:   emit_urb_writes(vertex_count);
        -:        -: 1919:
        -:        -: 1920:   /* In stream mode we have to set control data bits for all vertices
        -:        -: 1921:    * unless we have disabled control data bits completely (which we do
        -:        -: 1922:    * do for GL_POINTS outputs that don't use streams).
        -:        -: 1923:    */
    #####:    #####: 1924:   if (gs_compile->control_data_header_size_bits > 0 &&
    #####:    #####: 1925:       gs_prog_data->control_data_format ==
        -:        -: 1926:          GEN7_GS_CONTROL_DATA_FORMAT_GSCTL_SID) {
    #####:    #####: 1927:      set_gs_stream_control_data_bits(vertex_count, stream_id);
        -:        -: 1928:   }
        -:        -: 1929:}
        -:        -: 1930:
        -:        -: 1931:void
    #####:    #####: 1932:fs_visitor::emit_gs_input_load(const fs_reg &dst,
        -:        -: 1933:                               const nir_src &vertex_src,
        -:        -: 1934:                               unsigned base_offset,
        -:        -: 1935:                               const nir_src &offset_src,
        -:        -: 1936:                               unsigned num_components,
        -:        -: 1937:                               unsigned first_component)
        -:        -: 1938:{
    #####:    #####: 1939:   struct brw_gs_prog_data *gs_prog_data = brw_gs_prog_data(prog_data);
        -:        -: 1940:
    #####:    #####: 1941:   nir_const_value *vertex_const = nir_src_as_const_value(vertex_src);
    #####:    #####: 1942:   nir_const_value *offset_const = nir_src_as_const_value(offset_src);
    #####:    #####: 1943:   const unsigned push_reg_count = gs_prog_data->base.urb_read_length * 8;
        -:        -: 1944:
        -:        -: 1945:   /* Offset 0 is the VUE header, which contains VARYING_SLOT_LAYER [.y],
        -:        -: 1946:    * VARYING_SLOT_VIEWPORT [.z], and VARYING_SLOT_PSIZ [.w].  Only
        -:        -: 1947:    * gl_PointSize is available as a GS input, however, so it must be that.
        -:        -: 1948:    */
    #####:    #####: 1949:   const bool is_point_size = (base_offset == 0);
        -:        -: 1950:
        -:        -: 1951:   /* TODO: figure out push input layout for invocations == 1 */
    #####:    #####: 1952:   if (gs_prog_data->invocations == 1 &&
    #####:    #####: 1953:       offset_const != NULL && vertex_const != NULL &&
    #####:    #####: 1954:       4 * (base_offset + offset_const->u32[0]) < push_reg_count) {
    #####:    #####: 1955:      int imm_offset = (base_offset + offset_const->u32[0]) * 4 +
    #####:    #####: 1956:                       vertex_const->u32[0] * push_reg_count;
        -:        -: 1957:      /* This input was pushed into registers. */
    #####:    #####: 1958:      if (is_point_size) {
        -:        -: 1959:         /* gl_PointSize comes in .w */
    #####:    #####: 1960:         bld.MOV(dst, fs_reg(ATTR, imm_offset + 3, dst.type));
        -:        -: 1961:      } else {
    #####:    #####: 1962:         for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 1963:            bld.MOV(offset(dst, bld, i),
    #####:    #####: 1964:                    fs_reg(ATTR, imm_offset + i + first_component, dst.type));
        -:        -: 1965:         }
        -:        -: 1966:      }
    #####:    #####: 1967:      return;
        -:        -: 1968:   }
        -:        -: 1969:
        -:        -: 1970:   /* Resort to the pull model.  Ensure the VUE handles are provided. */
    #####:    #####: 1971:   gs_prog_data->base.include_vue_handles = true;
        -:        -: 1972:
    #####:    #####: 1973:   unsigned first_icp_handle = gs_prog_data->include_primitive_id ? 3 : 2;
    #####:    #####: 1974:   fs_reg icp_handle = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
        -:        -: 1975:
    #####:    #####: 1976:   if (gs_prog_data->invocations == 1) {
    #####:    #####: 1977:      if (vertex_const) {
        -:        -: 1978:         /* The vertex index is constant; just select the proper URB handle. */
        -:        -: 1979:         icp_handle =
    #####:    #####: 1980:            retype(brw_vec8_grf(first_icp_handle + vertex_const->i32[0], 0),
    #####:    #####: 1981:                   BRW_REGISTER_TYPE_UD);
        -:        -: 1982:      } else {
        -:        -: 1983:         /* The vertex index is non-constant.  We need to use indirect
        -:        -: 1984:          * addressing to fetch the proper URB handle.
        -:        -: 1985:          *
        -:        -: 1986:          * First, we start with the sequence <7, 6, 5, 4, 3, 2, 1, 0>
        -:        -: 1987:          * indicating that channel <n> should read the handle from
        -:        -: 1988:          * DWord <n>.  We convert that to bytes by multiplying by 4.
        -:        -: 1989:          *
        -:        -: 1990:          * Next, we convert the vertex index to bytes by multiplying
        -:        -: 1991:          * by 32 (shifting by 5), and add the two together.  This is
        -:        -: 1992:          * the final indirect byte offset.
        -:        -: 1993:          */
    #####:    #####: 1994:         fs_reg sequence = bld.vgrf(BRW_REGISTER_TYPE_W, 1);
    #####:    #####: 1995:         fs_reg channel_offsets = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1996:         fs_reg vertex_offset_bytes = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 1997:         fs_reg icp_offset_bytes = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
        -:        -: 1998:
        -:        -: 1999:         /* sequence = <7, 6, 5, 4, 3, 2, 1, 0> */
    #####:    #####: 2000:         bld.MOV(sequence, fs_reg(brw_imm_v(0x76543210)));
        -:        -: 2001:         /* channel_offsets = 4 * sequence = <28, 24, 20, 16, 12, 8, 4, 0> */
    #####:    #####: 2002:         bld.SHL(channel_offsets, sequence, brw_imm_ud(2u));
        -:        -: 2003:         /* Convert vertex_index to bytes (multiply by 32) */
    #####:    #####: 2004:         bld.SHL(vertex_offset_bytes,
    #####:    #####: 2005:                 retype(get_nir_src(vertex_src), BRW_REGISTER_TYPE_UD),
    #####:    #####: 2006:                 brw_imm_ud(5u));
    #####:    #####: 2007:         bld.ADD(icp_offset_bytes, vertex_offset_bytes, channel_offsets);
        -:        -: 2008:
        -:        -: 2009:         /* Use first_icp_handle as the base offset.  There is one register
        -:        -: 2010:          * of URB handles per vertex, so inform the register allocator that
        -:        -: 2011:          * we might read up to nir->info->gs.vertices_in registers.
        -:        -: 2012:          */
    #####:    #####: 2013:         bld.emit(SHADER_OPCODE_MOV_INDIRECT, icp_handle,
    #####:    #####: 2014:                  retype(brw_vec8_grf(first_icp_handle, 0), icp_handle.type),
        -:        -: 2015:                  fs_reg(icp_offset_bytes),
    #####:    #####: 2016:                  brw_imm_ud(nir->info->gs.vertices_in * REG_SIZE));
        -:        -: 2017:      }
        -:        -: 2018:   } else {
    #####:    #####: 2019:      assert(gs_prog_data->invocations > 1);
        -:        -: 2020:
    #####:    #####: 2021:      if (vertex_const) {
    #####:    #####: 2022:         assert(devinfo->gen >= 9 || vertex_const->i32[0] <= 5);
    #####:    #####: 2023:         bld.MOV(icp_handle,
        -:        -: 2024:                 retype(brw_vec1_grf(first_icp_handle +
    #####:    #####: 2025:                                     vertex_const->i32[0] / 8,
    #####:    #####: 2026:                                     vertex_const->i32[0] % 8),
    #####:    #####: 2027:                        BRW_REGISTER_TYPE_UD));
        -:        -: 2028:      } else {
        -:        -: 2029:         /* The vertex index is non-constant.  We need to use indirect
        -:        -: 2030:          * addressing to fetch the proper URB handle.
        -:        -: 2031:          *
        -:        -: 2032:          */
    #####:    #####: 2033:         fs_reg icp_offset_bytes = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
        -:        -: 2034:
        -:        -: 2035:         /* Convert vertex_index to bytes (multiply by 4) */
    #####:    #####: 2036:         bld.SHL(icp_offset_bytes,
    #####:    #####: 2037:                 retype(get_nir_src(vertex_src), BRW_REGISTER_TYPE_UD),
    #####:    #####: 2038:                 brw_imm_ud(2u));
        -:        -: 2039:
        -:        -: 2040:         /* Use first_icp_handle as the base offset.  There is one DWord
        -:        -: 2041:          * of URB handles per vertex, so inform the register allocator that
        -:        -: 2042:          * we might read up to ceil(nir->info->gs.vertices_in / 8) registers.
        -:        -: 2043:          */
    #####:    #####: 2044:         bld.emit(SHADER_OPCODE_MOV_INDIRECT, icp_handle,
    #####:    #####: 2045:                  retype(brw_vec8_grf(first_icp_handle, 0), icp_handle.type),
        -:        -: 2046:                  fs_reg(icp_offset_bytes),
    #####:    #####: 2047:                  brw_imm_ud(DIV_ROUND_UP(nir->info->gs.vertices_in, 8) *
    #####:    #####: 2048:                             REG_SIZE));
        -:        -: 2049:      }
        -:        -: 2050:   }
        -:        -: 2051:
        -:        -: 2052:   fs_inst *inst;
        -:        -: 2053:
    #####:    #####: 2054:   fs_reg tmp_dst = dst;
    #####:    #####: 2055:   fs_reg indirect_offset = get_nir_src(offset_src);
    #####:    #####: 2056:   unsigned num_iterations = 1;
    #####:    #####: 2057:   unsigned orig_num_components = num_components;
        -:        -: 2058:
    #####:    #####: 2059:   if (type_sz(dst.type) == 8) {
    #####:    #####: 2060:      if (num_components > 2) {
    #####:    #####: 2061:         num_iterations = 2;
    #####:    #####: 2062:         num_components = 2;
        -:        -: 2063:      }
    #####:    #####: 2064:      fs_reg tmp = fs_reg(VGRF, alloc.allocate(4), dst.type);
    #####:    #####: 2065:      tmp_dst = tmp;
    #####:    #####: 2066:      first_component = first_component / 2;
        -:        -: 2067:   }
        -:        -: 2068:
    #####:    #####: 2069:   for (unsigned iter = 0; iter < num_iterations; iter++) {
    #####:    #####: 2070:      if (offset_const) {
        -:        -: 2071:         /* Constant indexing - use global offset. */
    #####:    #####: 2072:         if (first_component != 0) {
    #####:    #####: 2073:            unsigned read_components = num_components + first_component;
    #####:    #####: 2074:            fs_reg tmp = bld.vgrf(dst.type, read_components);
    #####:    #####: 2075:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp, icp_handle);
    #####:    #####: 2076:            inst->size_written = read_components *
    #####:    #####: 2077:                                 tmp.component_size(inst->exec_size);
    #####:    #####: 2078:            for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 2079:               bld.MOV(offset(tmp_dst, bld, i),
    #####:    #####: 2080:                       offset(tmp, bld, i + first_component));
        -:        -: 2081:            }
        -:        -: 2082:         } else {
    #####:    #####: 2083:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp_dst,
    #####:    #####: 2084:                            icp_handle);
    #####:    #####: 2085:            inst->size_written = num_components *
    #####:    #####: 2086:                                 tmp_dst.component_size(inst->exec_size);
        -:        -: 2087:         }
    #####:    #####: 2088:         inst->offset = base_offset + offset_const->u32[0];
    #####:    #####: 2089:         inst->mlen = 1;
        -:        -: 2090:      } else {
        -:        -: 2091:         /* Indirect indexing - use per-slot offsets as well. */
    #####:    #####: 2092:         const fs_reg srcs[] = { icp_handle, indirect_offset };
    #####:    #####: 2093:         unsigned read_components = num_components + first_component;
    #####:    #####: 2094:         fs_reg tmp = bld.vgrf(dst.type, read_components);
    #####:    #####: 2095:         fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 2096:         bld.LOAD_PAYLOAD(payload, srcs, ARRAY_SIZE(srcs), 0);
    #####:    #####: 2097:         if (first_component != 0) {
    #####:    #####: 2098:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
    #####:    #####: 2099:                            payload);
    #####:    #####: 2100:            inst->size_written = read_components *
    #####:    #####: 2101:                                 tmp.component_size(inst->exec_size);
    #####:    #####: 2102:            for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 2103:               bld.MOV(offset(tmp_dst, bld, i),
    #####:    #####: 2104:                       offset(tmp, bld, i + first_component));
        -:        -: 2105:            }
        -:        -: 2106:         } else {
    #####:    #####: 2107:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp_dst,
    #####:    #####: 2108:                         payload);
    #####:    #####: 2109:            inst->size_written = num_components *
    #####:    #####: 2110:                                 tmp_dst.component_size(inst->exec_size);
        -:        -: 2111:         }
    #####:    #####: 2112:         inst->offset = base_offset;
    #####:    #####: 2113:         inst->mlen = 2;
        -:        -: 2114:      }
        -:        -: 2115:
    #####:    #####: 2116:      if (type_sz(dst.type) == 8) {
    #####:    #####: 2117:         shuffle_32bit_load_result_to_64bit_data(
    #####:    #####: 2118:            bld, tmp_dst, retype(tmp_dst, BRW_REGISTER_TYPE_F), num_components);
        -:        -: 2119:
    #####:    #####: 2120:         for (unsigned c = 0; c < num_components; c++)
    #####:    #####: 2121:            bld.MOV(offset(dst, bld, iter * 2 + c), offset(tmp_dst, bld, c));
        -:        -: 2122:      }
        -:        -: 2123:
    #####:    #####: 2124:      if (num_iterations > 1) {
    #####:    #####: 2125:         num_components = orig_num_components - 2;
    #####:    #####: 2126:         if(offset_const) {
    #####:    #####: 2127:            base_offset++;
        -:        -: 2128:         } else {
    #####:    #####: 2129:            fs_reg new_indirect = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2130:            bld.ADD(new_indirect, indirect_offset, brw_imm_ud(1u));
    #####:    #####: 2131:            indirect_offset = new_indirect;
        -:        -: 2132:         }
        -:        -: 2133:      }
        -:        -: 2134:   }
        -:        -: 2135:
    #####:    #####: 2136:   if (is_point_size) {
        -:        -: 2137:      /* Read the whole VUE header (because of alignment) and read .w. */
    #####:    #####: 2138:      fs_reg tmp = bld.vgrf(dst.type, 4);
    #####:    #####: 2139:      inst->dst = tmp;
    #####:    #####: 2140:      inst->size_written = 4 * REG_SIZE;
    #####:    #####: 2141:      bld.MOV(dst, offset(tmp, bld, 3));
        -:        -: 2142:   }
        -:        -: 2143:}
        -:        -: 2144:
        -:        -: 2145:fs_reg
    #####:    #####: 2146:fs_visitor::get_indirect_offset(nir_intrinsic_instr *instr)
        -:        -: 2147:{
    #####:    #####: 2148:   nir_src *offset_src = nir_get_io_offset_src(instr);
    #####:    #####: 2149:   nir_const_value *const_value = nir_src_as_const_value(*offset_src);
        -:        -: 2150:
    #####:    #####: 2151:   if (const_value) {
        -:        -: 2152:      /* The only constant offset we should find is 0.  brw_nir.c's
        -:        -: 2153:       * add_const_offset_to_base() will fold other constant offsets
        -:        -: 2154:       * into instr->const_index[0].
        -:        -: 2155:       */
    #####:    #####: 2156:      assert(const_value->u32[0] == 0);
    #####:    #####: 2157:      return fs_reg();
        -:        -: 2158:   }
        -:        -: 2159:
    #####:    #####: 2160:   return get_nir_src(*offset_src);
        -:        -: 2161:}
        -:        -: 2162:
        -:        -: 2163:static void
    #####:    #####: 2164:do_untyped_vector_read(const fs_builder &bld,
        -:        -: 2165:                       const fs_reg dest,
        -:        -: 2166:                       const fs_reg surf_index,
        -:        -: 2167:                       const fs_reg offset_reg,
        -:        -: 2168:                       unsigned num_components)
        -:        -: 2169:{
    #####:    #####: 2170:   if (type_sz(dest.type) == 4) {
        -:        -: 2171:      fs_reg read_result = emit_untyped_read(bld, surf_index, offset_reg,
        -:        -: 2172:                                             1 /* dims */,
        -:        -: 2173:                                             num_components,
    #####:    #####: 2174:                                             BRW_PREDICATE_NONE);
    #####:    #####: 2175:      read_result.type = dest.type;
    #####:    #####: 2176:      for (unsigned i = 0; i < num_components; i++)
    #####:    #####: 2177:         bld.MOV(offset(dest, bld, i), offset(read_result, bld, i));
    #####:    #####: 2178:   } else if (type_sz(dest.type) == 8) {
        -:        -: 2179:      /* Reading a dvec, so we need to:
        -:        -: 2180:       *
        -:        -: 2181:       * 1. Multiply num_components by 2, to account for the fact that we
        -:        -: 2182:       *    need to read 64-bit components.
        -:        -: 2183:       * 2. Shuffle the result of the load to form valid 64-bit elements
        -:        -: 2184:       * 3. Emit a second load (for components z/w) if needed.
        -:        -: 2185:       */
    #####:    #####: 2186:      fs_reg read_offset = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 2187:      bld.MOV(read_offset, offset_reg);
        -:        -: 2188:
    #####:    #####: 2189:      int iters = num_components <= 2 ? 1 : 2;
        -:        -: 2190:
        -:        -: 2191:      /* Load the dvec, the first iteration loads components x/y, the second
        -:        -: 2192:       * iteration, if needed, loads components z/w
        -:        -: 2193:       */
    #####:    #####: 2194:      for (int it = 0; it < iters; it++) {
        -:        -: 2195:         /* Compute number of components to read in this iteration */
    #####:    #####: 2196:         int iter_components = MIN2(2, num_components);
    #####:    #####: 2197:         num_components -= iter_components;
        -:        -: 2198:
        -:        -: 2199:         /* Read. Since this message reads 32-bit components, we need to
        -:        -: 2200:          * read twice as many components.
        -:        -: 2201:          */
        -:        -: 2202:         fs_reg read_result = emit_untyped_read(bld, surf_index, read_offset,
        -:        -: 2203:                                                1 /* dims */,
    #####:    #####: 2204:                                                iter_components * 2,
    #####:    #####: 2205:                                                BRW_PREDICATE_NONE);
        -:        -: 2206:
        -:        -: 2207:         /* Shuffle the 32-bit load result into valid 64-bit data */
    #####:    #####: 2208:         const fs_reg packed_result = bld.vgrf(dest.type, iter_components);
    #####:    #####: 2209:         shuffle_32bit_load_result_to_64bit_data(
    #####:    #####: 2210:            bld, packed_result, read_result, iter_components);
        -:        -: 2211:
        -:        -: 2212:         /* Move each component to its destination */
    #####:    #####: 2213:         read_result = retype(read_result, BRW_REGISTER_TYPE_DF);
    #####:    #####: 2214:         for (int c = 0; c < iter_components; c++) {
    #####:    #####: 2215:            bld.MOV(offset(dest, bld, it * 2 + c),
    #####:    #####: 2216:                    offset(packed_result, bld, c));
        -:        -: 2217:         }
        -:        -: 2218:
    #####:    #####: 2219:         bld.ADD(read_offset, read_offset, brw_imm_ud(16));
        -:        -: 2220:      }
        -:        -: 2221:   } else {
    #####:    #####: 2222:      unreachable("Unsupported type");
        -:        -: 2223:   }
    #####:    #####: 2224:}
        -:        -: 2225:
        -:        -: 2226:void
    #####:    #####: 2227:fs_visitor::nir_emit_vs_intrinsic(const fs_builder &bld,
        -:        -: 2228:                                  nir_intrinsic_instr *instr)
        -:        -: 2229:{
    #####:    #####: 2230:   assert(stage == MESA_SHADER_VERTEX);
        -:        -: 2231:
    #####:    #####: 2232:   fs_reg dest;
    #####:    #####: 2233:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 2234:      dest = get_nir_dest(instr->dest);
        -:        -: 2235:
    #####:    #####: 2236:   switch (instr->intrinsic) {
        -:        -: 2237:   case nir_intrinsic_load_vertex_id:
    #####:    #####: 2238:      unreachable("should be lowered by lower_vertex_id()");
        -:        -: 2239:
        -:        -: 2240:   case nir_intrinsic_load_vertex_id_zero_base:
        -:        -: 2241:   case nir_intrinsic_load_base_vertex:
        -:        -: 2242:   case nir_intrinsic_load_instance_id:
        -:        -: 2243:   case nir_intrinsic_load_base_instance:
        -:        -: 2244:   case nir_intrinsic_load_draw_id: {
    #####:    #####: 2245:      gl_system_value sv = nir_system_value_from_intrinsic(instr->intrinsic);
    #####:    #####: 2246:      fs_reg val = nir_system_values[sv];
    #####:    #####: 2247:      assert(val.file != BAD_FILE);
    #####:    #####: 2248:      dest.type = val.type;
    #####:    #####: 2249:      bld.MOV(dest, val);
    #####:    #####: 2250:      break;
        -:        -: 2251:   }
        -:        -: 2252:
        -:        -: 2253:   case nir_intrinsic_load_input: {
    #####:    #####: 2254:      fs_reg src = fs_reg(ATTR, instr->const_index[0], dest.type);
    #####:    #####: 2255:      unsigned first_component = nir_intrinsic_component(instr);
    #####:    #####: 2256:      unsigned num_components = instr->num_components;
    #####:    #####: 2257:      enum brw_reg_type type = dest.type;
        -:        -: 2258:
    #####:    #####: 2259:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 2260:      assert(const_offset && "Indirect input loads not allowed");
    #####:    #####: 2261:      src = offset(src, bld, const_offset->u32[0]);
        -:        -: 2262:
    #####:    #####: 2263:      for (unsigned j = 0; j < num_components; j++) {
    #####:    #####: 2264:         bld.MOV(offset(dest, bld, j), offset(src, bld, j + first_component));
        -:        -: 2265:      }
        -:        -: 2266:
    #####:    #####: 2267:      if (type == BRW_REGISTER_TYPE_DF) {
        -:        -: 2268:         /* Once the double vector is read, set again its original register
        -:        -: 2269:          * type to continue with normal execution.
        -:        -: 2270:          */
    #####:    #####: 2271:         src = retype(src, type);
    #####:    #####: 2272:         dest = retype(dest, type);
        -:        -: 2273:      }
        -:        -: 2274:
    #####:    #####: 2275:      if (type_sz(src.type) == 8) {
    #####:    #####: 2276:         shuffle_32bit_load_result_to_64bit_data(bld,
        -:        -: 2277:                                                 dest,
    #####:    #####: 2278:                                                 retype(dest, BRW_REGISTER_TYPE_F),
    #####:    #####: 2279:                                                 instr->num_components);
        -:        -: 2280:      }
    #####:    #####: 2281:      break;
        -:        -: 2282:   }
        -:        -: 2283:
        -:        -: 2284:   default:
    #####:    #####: 2285:      nir_emit_intrinsic(bld, instr);
    #####:    #####: 2286:      break;
        -:        -: 2287:   }
    #####:    #####: 2288:}
        -:        -: 2289:
        -:        -: 2290:void
    #####:    #####: 2291:fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld,
        -:        -: 2292:                                   nir_intrinsic_instr *instr)
        -:        -: 2293:{
    #####:    #####: 2294:   assert(stage == MESA_SHADER_TESS_CTRL);
    #####:    #####: 2295:   struct brw_tcs_prog_key *tcs_key = (struct brw_tcs_prog_key *) key;
    #####:    #####: 2296:   struct brw_tcs_prog_data *tcs_prog_data = brw_tcs_prog_data(prog_data);
        -:        -: 2297:
    #####:    #####: 2298:   fs_reg dst;
    #####:    #####: 2299:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 2300:      dst = get_nir_dest(instr->dest);
        -:        -: 2301:
    #####:    #####: 2302:   switch (instr->intrinsic) {
        -:        -: 2303:   case nir_intrinsic_load_primitive_id:
    #####:    #####: 2304:      bld.MOV(dst, fs_reg(brw_vec1_grf(0, 1)));
    #####:    #####: 2305:      break;
        -:        -: 2306:   case nir_intrinsic_load_invocation_id:
    #####:    #####: 2307:      bld.MOV(retype(dst, invocation_id.type), invocation_id);
    #####:    #####: 2308:      break;
        -:        -: 2309:   case nir_intrinsic_load_patch_vertices_in:
    #####:    #####: 2310:      bld.MOV(retype(dst, BRW_REGISTER_TYPE_D),
    #####:    #####: 2311:              brw_imm_d(tcs_key->input_vertices));
    #####:    #####: 2312:      break;
        -:        -: 2313:
        -:        -: 2314:   case nir_intrinsic_barrier: {
    #####:    #####: 2315:      if (tcs_prog_data->instances == 1)
    #####:    #####: 2316:         break;
        -:        -: 2317:
    #####:    #####: 2318:      fs_reg m0 = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2319:      fs_reg m0_2 = component(m0, 2);
        -:        -: 2320:
    #####:    #####: 2321:      const fs_builder chanbld = bld.exec_all().group(1, 0);
        -:        -: 2322:
        -:        -: 2323:      /* Zero the message header */
    #####:    #####: 2324:      bld.exec_all().MOV(m0, brw_imm_ud(0u));
        -:        -: 2325:
        -:        -: 2326:      /* Copy "Barrier ID" from r0.2, bits 16:13 */
    #####:    #####: 2327:      chanbld.AND(m0_2, retype(brw_vec1_grf(0, 2), BRW_REGISTER_TYPE_UD),
    #####:    #####: 2328:                  brw_imm_ud(INTEL_MASK(16, 13)));
        -:        -: 2329:
        -:        -: 2330:      /* Shift it up to bits 27:24. */
    #####:    #####: 2331:      chanbld.SHL(m0_2, m0_2, brw_imm_ud(11));
        -:        -: 2332:
        -:        -: 2333:      /* Set the Barrier Count and the enable bit */
    #####:    #####: 2334:      chanbld.OR(m0_2, m0_2,
    #####:    #####: 2335:                 brw_imm_ud(tcs_prog_data->instances << 9 | (1 << 15)));
        -:        -: 2336:
    #####:    #####: 2337:      bld.emit(SHADER_OPCODE_BARRIER, bld.null_reg_ud(), m0);
    #####:    #####: 2338:      break;
        -:        -: 2339:   }
        -:        -: 2340:
        -:        -: 2341:   case nir_intrinsic_load_input:
    #####:    #####: 2342:      unreachable("nir_lower_io should never give us these.");
        -:        -: 2343:      break;
        -:        -: 2344:
        -:        -: 2345:   case nir_intrinsic_load_per_vertex_input: {
    #####:    #####: 2346:      fs_reg indirect_offset = get_indirect_offset(instr);
    #####:    #####: 2347:      unsigned imm_offset = instr->const_index[0];
        -:        -: 2348:
    #####:    #####: 2349:      const nir_src &vertex_src = instr->src[0];
    #####:    #####: 2350:      nir_const_value *vertex_const = nir_src_as_const_value(vertex_src);
        -:        -: 2351:
        -:        -: 2352:      fs_inst *inst;
        -:        -: 2353:
    #####:    #####: 2354:      fs_reg icp_handle;
        -:        -: 2355:
    #####:    #####: 2356:      if (vertex_const) {
        -:        -: 2357:         /* Emit a MOV to resolve <0,1,0> regioning. */
    #####:    #####: 2358:         icp_handle = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2359:         bld.MOV(icp_handle,
    #####:    #####: 2360:                 retype(brw_vec1_grf(1 + (vertex_const->i32[0] >> 3),
    #####:    #####: 2361:                                     vertex_const->i32[0] & 7),
    #####:    #####: 2362:                        BRW_REGISTER_TYPE_UD));
    #####:    #####: 2363:      } else if (tcs_prog_data->instances == 1 &&
    #####:    #####: 2364:                 vertex_src.is_ssa &&
    #####:    #####: 2365:                 vertex_src.ssa->parent_instr->type == nir_instr_type_intrinsic &&
    #####:    #####: 2366:                 nir_instr_as_intrinsic(vertex_src.ssa->parent_instr)->intrinsic == nir_intrinsic_load_invocation_id) {
        -:        -: 2367:         /* For the common case of only 1 instance, an array index of
        -:        -: 2368:          * gl_InvocationID means reading g1.  Skip all the indirect work.
        -:        -: 2369:          */
    #####:    #####: 2370:         icp_handle = retype(brw_vec8_grf(1, 0), BRW_REGISTER_TYPE_UD);
        -:        -: 2371:      } else {
        -:        -: 2372:         /* The vertex index is non-constant.  We need to use indirect
        -:        -: 2373:          * addressing to fetch the proper URB handle.
        -:        -: 2374:          */
    #####:    #####: 2375:         icp_handle = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
        -:        -: 2376:
        -:        -: 2377:         /* Each ICP handle is a single DWord (4 bytes) */
    #####:    #####: 2378:         fs_reg vertex_offset_bytes = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2379:         bld.SHL(vertex_offset_bytes,
    #####:    #####: 2380:                 retype(get_nir_src(vertex_src), BRW_REGISTER_TYPE_UD),
    #####:    #####: 2381:                 brw_imm_ud(2u));
        -:        -: 2382:
        -:        -: 2383:         /* Start at g1.  We might read up to 4 registers. */
    #####:    #####: 2384:         bld.emit(SHADER_OPCODE_MOV_INDIRECT, icp_handle,
    #####:    #####: 2385:                  retype(brw_vec8_grf(1, 0), icp_handle.type), vertex_offset_bytes,
    #####:    #####: 2386:                  brw_imm_ud(4 * REG_SIZE));
        -:        -: 2387:      }
        -:        -: 2388:
        -:        -: 2389:      /* We can only read two double components with each URB read, so
        -:        -: 2390:       * we send two read messages in that case, each one loading up to
        -:        -: 2391:       * two double components.
        -:        -: 2392:       */
    #####:    #####: 2393:      unsigned num_iterations = 1;
    #####:    #####: 2394:      unsigned num_components = instr->num_components;
    #####:    #####: 2395:      unsigned first_component = nir_intrinsic_component(instr);
    #####:    #####: 2396:      fs_reg orig_dst = dst;
    #####:    #####: 2397:      if (type_sz(dst.type) == 8) {
    #####:    #####: 2398:         first_component = first_component / 2;
    #####:    #####: 2399:         if (instr->num_components > 2) {
    #####:    #####: 2400:            num_iterations = 2;
    #####:    #####: 2401:            num_components = 2;
        -:        -: 2402:         }
        -:        -: 2403:
    #####:    #####: 2404:         fs_reg tmp = fs_reg(VGRF, alloc.allocate(4), dst.type);
    #####:    #####: 2405:         dst = tmp;
        -:        -: 2406:      }
        -:        -: 2407:
    #####:    #####: 2408:      for (unsigned iter = 0; iter < num_iterations; iter++) {
    #####:    #####: 2409:         if (indirect_offset.file == BAD_FILE) {
        -:        -: 2410:            /* Constant indexing - use global offset. */
    #####:    #####: 2411:            if (first_component != 0) {
    #####:    #####: 2412:               unsigned read_components = num_components + first_component;
    #####:    #####: 2413:               fs_reg tmp = bld.vgrf(dst.type, read_components);
    #####:    #####: 2414:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp, icp_handle);
    #####:    #####: 2415:               for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 2416:                  bld.MOV(offset(dst, bld, i),
    #####:    #####: 2417:                          offset(tmp, bld, i + first_component));
        -:        -: 2418:               }
        -:        -: 2419:            } else {
    #####:    #####: 2420:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, dst, icp_handle);
        -:        -: 2421:            }
    #####:    #####: 2422:            inst->offset = imm_offset;
    #####:    #####: 2423:            inst->mlen = 1;
        -:        -: 2424:         } else {
        -:        -: 2425:            /* Indirect indexing - use per-slot offsets as well. */
    #####:    #####: 2426:            const fs_reg srcs[] = { icp_handle, indirect_offset };
    #####:    #####: 2427:            fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 2428:            bld.LOAD_PAYLOAD(payload, srcs, ARRAY_SIZE(srcs), 0);
    #####:    #####: 2429:            if (first_component != 0) {
    #####:    #####: 2430:               unsigned read_components = num_components + first_component;
    #####:    #####: 2431:               fs_reg tmp = bld.vgrf(dst.type, read_components);
        -:        -: 2432:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
    #####:    #####: 2433:                               payload);
    #####:    #####: 2434:               for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 2435:                  bld.MOV(offset(dst, bld, i),
    #####:    #####: 2436:                          offset(tmp, bld, i + first_component));
        -:        -: 2437:               }
        -:        -: 2438:            } else {
        -:        -: 2439:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, dst,
    #####:    #####: 2440:                               payload);
        -:        -: 2441:            }
    #####:    #####: 2442:            inst->offset = imm_offset;
    #####:    #####: 2443:            inst->mlen = 2;
        -:        -: 2444:         }
    #####:    #####: 2445:         inst->size_written = (num_components + first_component) *
    #####:    #####: 2446:                              inst->dst.component_size(inst->exec_size);
        -:        -: 2447:
        -:        -: 2448:         /* If we are reading 64-bit data using 32-bit read messages we need
        -:        -: 2449:          * build proper 64-bit data elements by shuffling the low and high
        -:        -: 2450:          * 32-bit components around like we do for other things like UBOs
        -:        -: 2451:          * or SSBOs.
        -:        -: 2452:          */
    #####:    #####: 2453:         if (type_sz(dst.type) == 8) {
        -:        -: 2454:            shuffle_32bit_load_result_to_64bit_data(
    #####:    #####: 2455:               bld, dst, retype(dst, BRW_REGISTER_TYPE_F), num_components);
        -:        -: 2456:
    #####:    #####: 2457:            for (unsigned c = 0; c < num_components; c++) {
    #####:    #####: 2458:               bld.MOV(offset(orig_dst, bld, iter * 2 + c),
    #####:    #####: 2459:                       offset(dst, bld, c));
        -:        -: 2460:            }
        -:        -: 2461:         }
        -:        -: 2462:
        -:        -: 2463:         /* Copy the temporary to the destination to deal with writemasking.
        -:        -: 2464:          *
        -:        -: 2465:          * Also attempt to deal with gl_PointSize being in the .w component.
        -:        -: 2466:          */
    #####:    #####: 2467:         if (inst->offset == 0 && indirect_offset.file == BAD_FILE) {
    #####:    #####: 2468:            assert(type_sz(dst.type) < 8);
    #####:    #####: 2469:            inst->dst = bld.vgrf(dst.type, 4);
    #####:    #####: 2470:            inst->size_written = 4 * REG_SIZE;
    #####:    #####: 2471:            bld.MOV(dst, offset(inst->dst, bld, 3));
        -:        -: 2472:         }
        -:        -: 2473:
        -:        -: 2474:         /* If we are loading double data and we need a second read message
        -:        -: 2475:          * adjust the write offset
        -:        -: 2476:          */
    #####:    #####: 2477:         if (num_iterations > 1) {
    #####:    #####: 2478:            num_components = instr->num_components - 2;
    #####:    #####: 2479:            imm_offset++;
        -:        -: 2480:         }
        -:        -: 2481:      }
    #####:    #####: 2482:      break;
        -:        -: 2483:   }
        -:        -: 2484:
        -:        -: 2485:   case nir_intrinsic_load_output:
        -:        -: 2486:   case nir_intrinsic_load_per_vertex_output: {
    #####:    #####: 2487:      fs_reg indirect_offset = get_indirect_offset(instr);
    #####:    #####: 2488:      unsigned imm_offset = instr->const_index[0];
    #####:    #####: 2489:      unsigned first_component = nir_intrinsic_component(instr);
        -:        -: 2490:
        -:        -: 2491:      fs_inst *inst;
    #####:    #####: 2492:      if (indirect_offset.file == BAD_FILE) {
        -:        -: 2493:         /* Replicate the patch handle to all enabled channels */
    #####:    #####: 2494:         fs_reg patch_handle = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2495:         bld.MOV(patch_handle,
    #####:    #####: 2496:                 retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD));
        -:        -: 2497:
        -:        -: 2498:         {
    #####:    #####: 2499:            if (first_component != 0) {
        -:        -: 2500:               unsigned read_components =
    #####:    #####: 2501:                  instr->num_components + first_component;
    #####:    #####: 2502:               fs_reg tmp = bld.vgrf(dst.type, read_components);
        -:        -: 2503:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp,
    #####:    #####: 2504:                               patch_handle);
    #####:    #####: 2505:               inst->size_written = read_components * REG_SIZE;
    #####:    #####: 2506:               for (unsigned i = 0; i < instr->num_components; i++) {
    #####:    #####: 2507:                  bld.MOV(offset(dst, bld, i),
    #####:    #####: 2508:                          offset(tmp, bld, i + first_component));
        -:        -: 2509:               }
        -:        -: 2510:            } else {
        -:        -: 2511:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, dst,
    #####:    #####: 2512:                               patch_handle);
    #####:    #####: 2513:               inst->size_written = instr->num_components * REG_SIZE;
        -:        -: 2514:            }
    #####:    #####: 2515:            inst->offset = imm_offset;
    #####:    #####: 2516:            inst->mlen = 1;
        -:        -: 2517:         }
        -:        -: 2518:      } else {
        -:        -: 2519:         /* Indirect indexing - use per-slot offsets as well. */
        -:        -: 2520:         const fs_reg srcs[] = {
        -:        -: 2521:            retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD),
        -:        -: 2522:            indirect_offset
    #####:    #####: 2523:         };
    #####:    #####: 2524:         fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 2525:         bld.LOAD_PAYLOAD(payload, srcs, ARRAY_SIZE(srcs), 0);
    #####:    #####: 2526:         if (first_component != 0) {
        -:        -: 2527:            unsigned read_components =
    #####:    #####: 2528:               instr->num_components + first_component;
    #####:    #####: 2529:            fs_reg tmp = bld.vgrf(dst.type, read_components);
        -:        -: 2530:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
    #####:    #####: 2531:                            payload);
    #####:    #####: 2532:            inst->size_written = read_components * REG_SIZE;
    #####:    #####: 2533:            for (unsigned i = 0; i < instr->num_components; i++) {
    #####:    #####: 2534:               bld.MOV(offset(dst, bld, i),
    #####:    #####: 2535:                       offset(tmp, bld, i + first_component));
        -:        -: 2536:            }
        -:        -: 2537:         } else {
        -:        -: 2538:            inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, dst,
    #####:    #####: 2539:                            payload);
    #####:    #####: 2540:            inst->size_written = instr->num_components * REG_SIZE;
        -:        -: 2541:         }
    #####:    #####: 2542:         inst->offset = imm_offset;
    #####:    #####: 2543:         inst->mlen = 2;
        -:        -: 2544:      }
    #####:    #####: 2545:      break;
        -:        -: 2546:   }
        -:        -: 2547:
        -:        -: 2548:   case nir_intrinsic_store_output:
        -:        -: 2549:   case nir_intrinsic_store_per_vertex_output: {
    #####:    #####: 2550:      fs_reg value = get_nir_src(instr->src[0]);
    #####:    #####: 2551:      bool is_64bit = (instr->src[0].is_ssa ?
    #####:    #####: 2552:         instr->src[0].ssa->bit_size : instr->src[0].reg.reg->bit_size) == 64;
    #####:    #####: 2553:      fs_reg indirect_offset = get_indirect_offset(instr);
    #####:    #####: 2554:      unsigned imm_offset = instr->const_index[0];
    #####:    #####: 2555:      unsigned swiz = BRW_SWIZZLE_XYZW;
    #####:    #####: 2556:      unsigned mask = instr->const_index[1];
    #####:    #####: 2557:      unsigned header_regs = 0;
    #####:    #####: 2558:      fs_reg srcs[7];
    #####:    #####: 2559:      srcs[header_regs++] = retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD);
        -:        -: 2560:
    #####:    #####: 2561:      if (indirect_offset.file != BAD_FILE) {
    #####:    #####: 2562:         srcs[header_regs++] = indirect_offset;
        -:        -: 2563:      }
        -:        -: 2564:
    #####:    #####: 2565:      if (mask == 0)
    #####:    #####: 2566:         break;
        -:        -: 2567:
    #####:    #####: 2568:      unsigned num_components = util_last_bit(mask);
        -:        -: 2569:      enum opcode opcode;
        -:        -: 2570:
        -:        -: 2571:      /* We can only pack two 64-bit components in a single message, so send
        -:        -: 2572:       * 2 messages if we have more components
        -:        -: 2573:       */
    #####:    #####: 2574:      unsigned num_iterations = 1;
    #####:    #####: 2575:      unsigned iter_components = num_components;
    #####:    #####: 2576:      unsigned first_component = nir_intrinsic_component(instr);
    #####:    #####: 2577:      if (is_64bit) {
    #####:    #####: 2578:         first_component = first_component / 2;
    #####:    #####: 2579:         if (instr->num_components > 2) {
    #####:    #####: 2580:            num_iterations = 2;
    #####:    #####: 2581:            iter_components = 2;
        -:        -: 2582:         }
        -:        -: 2583:      }
        -:        -: 2584:
        -:        -: 2585:      /* 64-bit data needs to me shuffled before we can write it to the URB.
        -:        -: 2586:       * We will use this temporary to shuffle the components in each
        -:        -: 2587:       * iteration.
        -:        -: 2588:       */
        -:        -: 2589:      fs_reg tmp =
    #####:    #####: 2590:         fs_reg(VGRF, alloc.allocate(2 * iter_components), value.type);
        -:        -: 2591:
    #####:    #####: 2592:      mask = mask << first_component;
        -:        -: 2593:
    #####:    #####: 2594:      for (unsigned iter = 0; iter < num_iterations; iter++) {
    #####:    #####: 2595:         if (!is_64bit && mask != WRITEMASK_XYZW) {
    #####:    #####: 2596:            srcs[header_regs++] = brw_imm_ud(mask << 16);
    #####:    #####: 2597:            opcode = indirect_offset.file != BAD_FILE ?
        -:        -: 2598:               SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT :
    #####:    #####: 2599:               SHADER_OPCODE_URB_WRITE_SIMD8_MASKED;
    #####:    #####: 2600:         } else if (is_64bit && ((mask & WRITEMASK_XY) != WRITEMASK_XY)) {
        -:        -: 2601:            /* Expand the 64-bit mask to 32-bit channels. We only handle
        -:        -: 2602:             * two channels in each iteration, so we only care about X/Y.
        -:        -: 2603:             */
    #####:    #####: 2604:            unsigned mask32 = 0;
    #####:    #####: 2605:            if (mask & WRITEMASK_X)
    #####:    #####: 2606:               mask32 |= WRITEMASK_XY;
    #####:    #####: 2607:            if (mask & WRITEMASK_Y)
    #####:    #####: 2608:               mask32 |= WRITEMASK_ZW;
        -:        -: 2609:
        -:        -: 2610:            /* If the mask does not include any of the channels X or Y there
        -:        -: 2611:             * is nothing to do in this iteration. Move on to the next couple
        -:        -: 2612:             * of 64-bit channels.
        -:        -: 2613:             */
    #####:    #####: 2614:            if (!mask32) {
    #####:    #####: 2615:               mask >>= 2;
    #####:    #####: 2616:               imm_offset++;
    #####:    #####: 2617:               continue;
        -:        -: 2618:            }
        -:        -: 2619:
    #####:    #####: 2620:            srcs[header_regs++] = brw_imm_ud(mask32 << 16);
    #####:    #####: 2621:            opcode = indirect_offset.file != BAD_FILE ?
        -:        -: 2622:               SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT :
    #####:    #####: 2623:               SHADER_OPCODE_URB_WRITE_SIMD8_MASKED;
        -:        -: 2624:         } else {
    #####:    #####: 2625:            opcode = indirect_offset.file != BAD_FILE ?
        -:        -: 2626:               SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT :
    #####:    #####: 2627:               SHADER_OPCODE_URB_WRITE_SIMD8;
        -:        -: 2628:         }
        -:        -: 2629:
    #####:    #####: 2630:         for (unsigned i = 0; i < iter_components; i++) {
    #####:    #####: 2631:            if (!(mask & (1 << (i + first_component))))
    #####:    #####: 2632:               continue;
        -:        -: 2633:
    #####:    #####: 2634:            if (!is_64bit) {
        -:        -: 2635:               srcs[header_regs + i + first_component] =
    #####:    #####: 2636:                  offset(value, bld, BRW_GET_SWZ(swiz, i));
        -:        -: 2637:            } else {
        -:        -: 2638:               /* We need to shuffle the 64-bit data to match the layout
        -:        -: 2639:                * expected by our 32-bit URB write messages. We use a temporary
        -:        -: 2640:                * for that.
        -:        -: 2641:                */
    #####:    #####: 2642:               unsigned channel = BRW_GET_SWZ(swiz, iter * 2 + i);
        -:        -: 2643:               shuffle_64bit_data_for_32bit_write(bld,
    #####:    #####: 2644:                  retype(offset(tmp, bld, 2 * i), BRW_REGISTER_TYPE_F),
    #####:    #####: 2645:                  retype(offset(value, bld, 2 * channel), BRW_REGISTER_TYPE_DF),
    #####:    #####: 2646:                  1);
        -:        -: 2647:
        -:        -: 2648:               /* Now copy the data to the destination */
    #####:    #####: 2649:               fs_reg dest = fs_reg(VGRF, alloc.allocate(2), value.type);
    #####:    #####: 2650:               unsigned idx = 2 * i;
    #####:    #####: 2651:               bld.MOV(dest, offset(tmp, bld, idx));
    #####:    #####: 2652:               bld.MOV(offset(dest, bld, 1), offset(tmp, bld, idx + 1));
    #####:    #####: 2653:               srcs[header_regs + idx + first_component * 2] = dest;
        -:        -: 2654:               srcs[header_regs + idx + 1 + first_component * 2] =
    #####:    #####: 2655:                  offset(dest, bld, 1);
        -:        -: 2656:            }
        -:        -: 2657:         }
        -:        -: 2658:
        -:        -: 2659:         unsigned mlen =
    #####:    #####: 2660:            header_regs + (is_64bit ? 2 * iter_components : iter_components) +
    #####:    #####: 2661:            (is_64bit ? 2 * first_component : first_component);
        -:        -: 2662:         fs_reg payload =
    #####:    #####: 2663:            bld.vgrf(BRW_REGISTER_TYPE_UD, mlen);
    #####:    #####: 2664:         bld.LOAD_PAYLOAD(payload, srcs, mlen, header_regs);
        -:        -: 2665:
    #####:    #####: 2666:         fs_inst *inst = bld.emit(opcode, bld.null_reg_ud(), payload);
    #####:    #####: 2667:         inst->offset = imm_offset;
    #####:    #####: 2668:         inst->mlen = mlen;
        -:        -: 2669:
        -:        -: 2670:         /* If this is a 64-bit attribute, select the next two 64-bit channels
        -:        -: 2671:          * to be handled in the next iteration.
        -:        -: 2672:          */
    #####:    #####: 2673:         if (is_64bit) {
    #####:    #####: 2674:            mask >>= 2;
    #####:    #####: 2675:            imm_offset++;
        -:        -: 2676:         }
        -:        -: 2677:      }
    #####:    #####: 2678:      break;
        -:        -: 2679:   }
        -:        -: 2680:
        -:        -: 2681:   default:
    #####:    #####: 2682:      nir_emit_intrinsic(bld, instr);
    #####:    #####: 2683:      break;
        -:        -: 2684:   }
    #####:    #####: 2685:}
        -:        -: 2686:
        -:        -: 2687:void
    #####:    #####: 2688:fs_visitor::nir_emit_tes_intrinsic(const fs_builder &bld,
        -:        -: 2689:                                   nir_intrinsic_instr *instr)
        -:        -: 2690:{
    #####:    #####: 2691:   assert(stage == MESA_SHADER_TESS_EVAL);
    #####:    #####: 2692:   struct brw_tes_prog_data *tes_prog_data = brw_tes_prog_data(prog_data);
        -:        -: 2693:
    #####:    #####: 2694:   fs_reg dest;
    #####:    #####: 2695:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 2696:      dest = get_nir_dest(instr->dest);
        -:        -: 2697:
    #####:    #####: 2698:   switch (instr->intrinsic) {
        -:        -: 2699:   case nir_intrinsic_load_primitive_id:
    #####:    #####: 2700:      bld.MOV(dest, fs_reg(brw_vec1_grf(0, 1)));
    #####:    #####: 2701:      break;
        -:        -: 2702:   case nir_intrinsic_load_tess_coord:
        -:        -: 2703:      /* gl_TessCoord is part of the payload in g1-3 */
    #####:    #####: 2704:      for (unsigned i = 0; i < 3; i++) {
    #####:    #####: 2705:         bld.MOV(offset(dest, bld, i), fs_reg(brw_vec8_grf(1 + i, 0)));
        -:        -: 2706:      }
    #####:    #####: 2707:      break;
        -:        -: 2708:
        -:        -: 2709:   case nir_intrinsic_load_input:
        -:        -: 2710:   case nir_intrinsic_load_per_vertex_input: {
    #####:    #####: 2711:      fs_reg indirect_offset = get_indirect_offset(instr);
    #####:    #####: 2712:      unsigned imm_offset = instr->const_index[0];
    #####:    #####: 2713:      unsigned first_component = nir_intrinsic_component(instr);
        -:        -: 2714:
    #####:    #####: 2715:      if (type_sz(dest.type) == 8) {
    #####:    #####: 2716:         first_component = first_component / 2;
        -:        -: 2717:      }
        -:        -: 2718:
        -:        -: 2719:      fs_inst *inst;
    #####:    #####: 2720:      if (indirect_offset.file == BAD_FILE) {
        -:        -: 2721:         /* Arbitrarily only push up to 32 vec4 slots worth of data,
        -:        -: 2722:          * which is 16 registers (since each holds 2 vec4 slots).
        -:        -: 2723:          */
    #####:    #####: 2724:         const unsigned max_push_slots = 32;
    #####:    #####: 2725:         if (imm_offset < max_push_slots) {
    #####:    #####: 2726:            fs_reg src = fs_reg(ATTR, imm_offset / 2, dest.type);
    #####:    #####: 2727:            for (int i = 0; i < instr->num_components; i++) {
    #####:    #####: 2728:               unsigned comp = 16 / type_sz(dest.type) * (imm_offset % 2) +
    #####:    #####: 2729:                  i + first_component;
    #####:    #####: 2730:               bld.MOV(offset(dest, bld, i), component(src, comp));
        -:        -: 2731:            }
        -:        -: 2732:            tes_prog_data->base.urb_read_length =
    #####:    #####: 2733:               MAX2(tes_prog_data->base.urb_read_length,
    #####:    #####: 2734:                    DIV_ROUND_UP(imm_offset + 1, 2));
        -:        -: 2735:         } else {
        -:        -: 2736:            /* Replicate the patch handle to all enabled channels */
        -:        -: 2737:            const fs_reg srcs[] = {
        -:        -: 2738:               retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD)
    #####:    #####: 2739:            };
    #####:    #####: 2740:            fs_reg patch_handle = bld.vgrf(BRW_REGISTER_TYPE_UD, 1);
    #####:    #####: 2741:            bld.LOAD_PAYLOAD(patch_handle, srcs, ARRAY_SIZE(srcs), 0);
        -:        -: 2742:
    #####:    #####: 2743:            if (first_component != 0) {
        -:        -: 2744:               unsigned read_components =
    #####:    #####: 2745:                  instr->num_components + first_component;
    #####:    #####: 2746:               fs_reg tmp = bld.vgrf(dest.type, read_components);
        -:        -: 2747:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, tmp,
    #####:    #####: 2748:                               patch_handle);
    #####:    #####: 2749:               inst->size_written = read_components * REG_SIZE;
    #####:    #####: 2750:               for (unsigned i = 0; i < instr->num_components; i++) {
    #####:    #####: 2751:                  bld.MOV(offset(dest, bld, i),
    #####:    #####: 2752:                          offset(tmp, bld, i + first_component));
        -:        -: 2753:               }
        -:        -: 2754:            } else {
        -:        -: 2755:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8, dest,
    #####:    #####: 2756:                               patch_handle);
    #####:    #####: 2757:               inst->size_written = instr->num_components * REG_SIZE;
        -:        -: 2758:            }
    #####:    #####: 2759:            inst->mlen = 1;
    #####:    #####: 2760:            inst->offset = imm_offset;
        -:        -: 2761:         }
        -:        -: 2762:      } else {
        -:        -: 2763:         /* Indirect indexing - use per-slot offsets as well. */
        -:        -: 2764:
        -:        -: 2765:         /* We can only read two double components with each URB read, so
        -:        -: 2766:          * we send two read messages in that case, each one loading up to
        -:        -: 2767:          * two double components.
        -:        -: 2768:          */
    #####:    #####: 2769:         unsigned num_iterations = 1;
    #####:    #####: 2770:         unsigned num_components = instr->num_components;
    #####:    #####: 2771:         fs_reg orig_dest = dest;
    #####:    #####: 2772:         if (type_sz(dest.type) == 8) {
    #####:    #####: 2773:            if (instr->num_components > 2) {
    #####:    #####: 2774:               num_iterations = 2;
    #####:    #####: 2775:               num_components = 2;
        -:        -: 2776:            }
    #####:    #####: 2777:            fs_reg tmp = fs_reg(VGRF, alloc.allocate(4), dest.type);
    #####:    #####: 2778:            dest = tmp;
        -:        -: 2779:         }
        -:        -: 2780:
    #####:    #####: 2781:         for (unsigned iter = 0; iter < num_iterations; iter++) {
        -:        -: 2782:            const fs_reg srcs[] = {
        -:        -: 2783:               retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD),
        -:        -: 2784:               indirect_offset
    #####:    #####: 2785:            };
    #####:    #####: 2786:            fs_reg payload = bld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 2787:            bld.LOAD_PAYLOAD(payload, srcs, ARRAY_SIZE(srcs), 0);
        -:        -: 2788:
    #####:    #####: 2789:            if (first_component != 0) {
        -:        -: 2790:               unsigned read_components =
    #####:    #####: 2791:                   num_components + first_component;
    #####:    #####: 2792:               fs_reg tmp = bld.vgrf(dest.type, read_components);
        -:        -: 2793:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, tmp,
    #####:    #####: 2794:                               payload);
    #####:    #####: 2795:               for (unsigned i = 0; i < num_components; i++) {
    #####:    #####: 2796:                  bld.MOV(offset(dest, bld, i),
    #####:    #####: 2797:                          offset(tmp, bld, i + first_component));
        -:        -: 2798:               }
        -:        -: 2799:            } else {
        -:        -: 2800:               inst = bld.emit(SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT, dest,
    #####:    #####: 2801:                               payload);
        -:        -: 2802:            }
    #####:    #####: 2803:            inst->mlen = 2;
    #####:    #####: 2804:            inst->offset = imm_offset;
    #####:    #####: 2805:            inst->size_written = (num_components + first_component) *
    #####:    #####: 2806:                                 inst->dst.component_size(inst->exec_size);
        -:        -: 2807:
        -:        -: 2808:            /* If we are reading 64-bit data using 32-bit read messages we need
        -:        -: 2809:             * build proper 64-bit data elements by shuffling the low and high
        -:        -: 2810:             * 32-bit components around like we do for other things like UBOs
        -:        -: 2811:             * or SSBOs.
        -:        -: 2812:             */
    #####:    #####: 2813:            if (type_sz(dest.type) == 8) {
        -:        -: 2814:               shuffle_32bit_load_result_to_64bit_data(
    #####:    #####: 2815:                  bld, dest, retype(dest, BRW_REGISTER_TYPE_F), num_components);
        -:        -: 2816:
    #####:    #####: 2817:               for (unsigned c = 0; c < num_components; c++) {
    #####:    #####: 2818:                  bld.MOV(offset(orig_dest, bld, iter * 2 + c),
    #####:    #####: 2819:                          offset(dest, bld, c));
        -:        -: 2820:               }
        -:        -: 2821:            }
        -:        -: 2822:
        -:        -: 2823:            /* If we are loading double data and we need a second read message
        -:        -: 2824:             * adjust the offset
        -:        -: 2825:             */
    #####:    #####: 2826:            if (num_iterations > 1) {
    #####:    #####: 2827:               num_components = instr->num_components - 2;
    #####:    #####: 2828:               imm_offset++;
        -:        -: 2829:            }
        -:        -: 2830:         }
        -:        -: 2831:      }
    #####:    #####: 2832:      break;
        -:        -: 2833:   }
        -:        -: 2834:   default:
    #####:    #####: 2835:      nir_emit_intrinsic(bld, instr);
    #####:    #####: 2836:      break;
        -:        -: 2837:   }
    #####:    #####: 2838:}
        -:        -: 2839:
        -:        -: 2840:void
    #####:    #####: 2841:fs_visitor::nir_emit_gs_intrinsic(const fs_builder &bld,
        -:        -: 2842:                                  nir_intrinsic_instr *instr)
        -:        -: 2843:{
    #####:    #####: 2844:   assert(stage == MESA_SHADER_GEOMETRY);
    #####:    #####: 2845:   fs_reg indirect_offset;
        -:        -: 2846:
    #####:    #####: 2847:   fs_reg dest;
    #####:    #####: 2848:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 2849:      dest = get_nir_dest(instr->dest);
        -:        -: 2850:
    #####:    #####: 2851:   switch (instr->intrinsic) {
        -:        -: 2852:   case nir_intrinsic_load_primitive_id:
    #####:    #####: 2853:      assert(stage == MESA_SHADER_GEOMETRY);
    #####:    #####: 2854:      assert(brw_gs_prog_data(prog_data)->include_primitive_id);
    #####:    #####: 2855:      bld.MOV(retype(dest, BRW_REGISTER_TYPE_UD),
    #####:    #####: 2856:              retype(fs_reg(brw_vec8_grf(2, 0)), BRW_REGISTER_TYPE_UD));
    #####:    #####: 2857:      break;
        -:        -: 2858:
        -:        -: 2859:   case nir_intrinsic_load_input:
    #####:    #####: 2860:      unreachable("load_input intrinsics are invalid for the GS stage");
        -:        -: 2861:
        -:        -: 2862:   case nir_intrinsic_load_per_vertex_input:
    #####:    #####: 2863:      emit_gs_input_load(dest, instr->src[0], instr->const_index[0],
    #####:    #####: 2864:                         instr->src[1], instr->num_components,
    #####:    #####: 2865:                         nir_intrinsic_component(instr));
    #####:    #####: 2866:      break;
        -:        -: 2867:
        -:        -: 2868:   case nir_intrinsic_emit_vertex_with_counter:
    #####:    #####: 2869:      emit_gs_vertex(instr->src[0], instr->const_index[0]);
    #####:    #####: 2870:      break;
        -:        -: 2871:
        -:        -: 2872:   case nir_intrinsic_end_primitive_with_counter:
    #####:    #####: 2873:      emit_gs_end_primitive(instr->src[0]);
    #####:    #####: 2874:      break;
        -:        -: 2875:
        -:        -: 2876:   case nir_intrinsic_set_vertex_count:
    #####:    #####: 2877:      bld.MOV(this->final_gs_vertex_count, get_nir_src(instr->src[0]));
    #####:    #####: 2878:      break;
        -:        -: 2879:
        -:        -: 2880:   case nir_intrinsic_load_invocation_id: {
    #####:    #####: 2881:      fs_reg val = nir_system_values[SYSTEM_VALUE_INVOCATION_ID];
    #####:    #####: 2882:      assert(val.file != BAD_FILE);
    #####:    #####: 2883:      dest.type = val.type;
    #####:    #####: 2884:      bld.MOV(dest, val);
    #####:    #####: 2885:      break;
        -:        -: 2886:   }
        -:        -: 2887:
        -:        -: 2888:   default:
    #####:    #####: 2889:      nir_emit_intrinsic(bld, instr);
    #####:    #####: 2890:      break;
        -:        -: 2891:   }
    #####:    #####: 2892:}
        -:        -: 2893:
        -:        -: 2894:/**
        -:        -: 2895: * Fetch the current render target layer index.
        -:        -: 2896: */
        -:        -: 2897:static fs_reg
    #####:    #####: 2898:fetch_render_target_array_index(const fs_builder &bld)
        -:        -: 2899:{
    #####:    #####: 2900:   if (bld.shader->devinfo->gen >= 6) {
        -:        -: 2901:      /* The render target array index is provided in the thread payload as
        -:        -: 2902:       * bits 26:16 of r0.0.
        -:        -: 2903:       */
    #####:    #####: 2904:      const fs_reg idx = bld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 2905:      bld.AND(idx, brw_uw1_reg(BRW_GENERAL_REGISTER_FILE, 0, 1),
    #####:    #####: 2906:              brw_imm_uw(0x7ff));
    #####:    #####: 2907:      return idx;
        -:        -: 2908:   } else {
        -:        -: 2909:      /* Pre-SNB we only ever render into the first layer of the framebuffer
        -:        -: 2910:       * since layered rendering is not implemented.
        -:        -: 2911:       */
    #####:    #####: 2912:      return brw_imm_ud(0);
        -:        -: 2913:   }
        -:        -: 2914:}
        -:        -: 2915:
        -:        -: 2916:/**
        -:        -: 2917: * Fake non-coherent framebuffer read implemented using TXF to fetch from the
        -:        -: 2918: * framebuffer at the current fragment coordinates and sample index.
        -:        -: 2919: */
        -:        -: 2920:fs_inst *
    #####:    #####: 2921:fs_visitor::emit_non_coherent_fb_read(const fs_builder &bld, const fs_reg &dst,
        -:        -: 2922:                                      unsigned target)
        -:        -: 2923:{
    #####:    #####: 2924:   const struct gen_device_info *devinfo = bld.shader->devinfo;
        -:        -: 2925:
    #####:    #####: 2926:   assert(bld.shader->stage == MESA_SHADER_FRAGMENT);
        -:        -: 2927:   const brw_wm_prog_key *wm_key =
    #####:    #####: 2928:      reinterpret_cast<const brw_wm_prog_key *>(key);
    #####:    #####: 2929:   assert(!wm_key->coherent_fb_fetch);
        -:        -: 2930:   const struct brw_wm_prog_data *wm_prog_data =
    #####:    #####: 2931:      brw_wm_prog_data(stage_prog_data);
        -:        -: 2932:
        -:        -: 2933:   /* Calculate the surface index relative to the start of the texture binding
        -:        -: 2934:    * table block, since that's what the texturing messages expect.
        -:        -: 2935:    */
    #####:    #####: 2936:   const unsigned surface = target +
    #####:    #####: 2937:      wm_prog_data->binding_table.render_target_read_start -
    #####:    #####: 2938:      wm_prog_data->base.binding_table.texture_start;
        -:        -: 2939:
    #####:    #####: 2940:   brw_mark_surface_used(
    #####:    #####: 2941:      bld.shader->stage_prog_data,
    #####:    #####: 2942:      wm_prog_data->binding_table.render_target_read_start + target);
        -:        -: 2943:
        -:        -: 2944:   /* Calculate the fragment coordinates. */
    #####:    #####: 2945:   const fs_reg coords = bld.vgrf(BRW_REGISTER_TYPE_UD, 3);
    #####:    #####: 2946:   bld.MOV(offset(coords, bld, 0), pixel_x);
    #####:    #####: 2947:   bld.MOV(offset(coords, bld, 1), pixel_y);
    #####:    #####: 2948:   bld.MOV(offset(coords, bld, 2), fetch_render_target_array_index(bld));
        -:        -: 2949:
        -:        -: 2950:   /* Calculate the sample index and MCS payload when multisampling.  Luckily
        -:        -: 2951:    * the MCS fetch message behaves deterministically for UMS surfaces, so it
        -:        -: 2952:    * shouldn't be necessary to recompile based on whether the framebuffer is
        -:        -: 2953:    * CMS or UMS.
        -:        -: 2954:    */
    #####:    #####: 2955:   if (wm_key->multisample_fbo &&
    #####:    #####: 2956:       nir_system_values[SYSTEM_VALUE_SAMPLE_ID].file == BAD_FILE)
    #####:    #####: 2957:      nir_system_values[SYSTEM_VALUE_SAMPLE_ID] = *emit_sampleid_setup();
        -:        -: 2958:
    #####:    #####: 2959:   const fs_reg sample = nir_system_values[SYSTEM_VALUE_SAMPLE_ID];
    #####:    #####: 2960:   const fs_reg mcs = wm_key->multisample_fbo ?
    #####:    #####: 2961:      emit_mcs_fetch(coords, 3, brw_imm_ud(surface)) : fs_reg();
        -:        -: 2962:
        -:        -: 2963:   /* Use either a normal or a CMS texel fetch message depending on whether
        -:        -: 2964:    * the framebuffer is single or multisample.  On SKL+ use the wide CMS
        -:        -: 2965:    * message just in case the framebuffer uses 16x multisampling, it should
        -:        -: 2966:    * be equivalent to the normal CMS fetch for lower multisampling modes.
        -:        -: 2967:    */
    #####:    #####: 2968:   const opcode op = !wm_key->multisample_fbo ? SHADER_OPCODE_TXF_LOGICAL :
    #####:    #####: 2969:                     devinfo->gen >= 9 ? SHADER_OPCODE_TXF_CMS_W_LOGICAL :
    #####:    #####: 2970:                     SHADER_OPCODE_TXF_CMS_LOGICAL;
        -:        -: 2971:
        -:        -: 2972:   /* Emit the instruction. */
        -:        -: 2973:   const fs_reg srcs[] = { coords, fs_reg(), brw_imm_ud(0), fs_reg(),
        -:        -: 2974:                           sample, mcs,
        -:        -: 2975:                           brw_imm_ud(surface), brw_imm_ud(0),
    #####:    #####: 2976:                           fs_reg(), brw_imm_ud(3), brw_imm_ud(0) };
        -:        -: 2977:   STATIC_ASSERT(ARRAY_SIZE(srcs) == TEX_LOGICAL_NUM_SRCS);
        -:        -: 2978:
    #####:    #####: 2979:   fs_inst *inst = bld.emit(op, dst, srcs, ARRAY_SIZE(srcs));
    #####:    #####: 2980:   inst->size_written = 4 * inst->dst.component_size(inst->exec_size);
        -:        -: 2981:
    #####:    #####: 2982:   return inst;
        -:        -: 2983:}
        -:        -: 2984:
        -:        -: 2985:/**
        -:        -: 2986: * Actual coherent framebuffer read implemented using the native render target
        -:        -: 2987: * read message.  Requires SKL+.
        -:        -: 2988: */
        -:        -: 2989:static fs_inst *
    #####:    #####: 2990:emit_coherent_fb_read(const fs_builder &bld, const fs_reg &dst, unsigned target)
        -:        -: 2991:{
    #####:    #####: 2992:   assert(bld.shader->devinfo->gen >= 9);
    #####:    #####: 2993:   fs_inst *inst = bld.emit(FS_OPCODE_FB_READ_LOGICAL, dst);
    #####:    #####: 2994:   inst->target = target;
    #####:    #####: 2995:   inst->size_written = 4 * inst->dst.component_size(inst->exec_size);
        -:        -: 2996:
    #####:    #####: 2997:   return inst;
        -:        -: 2998:}
        -:        -: 2999:
        -:        -: 3000:static fs_reg
        5:        5: 3001:alloc_temporary(const fs_builder &bld, unsigned size, fs_reg *regs, unsigned n)
        -:        -: 3002:{
        5:        5: 3003:   if (n && regs[0].file != BAD_FILE) {
    #####:    #####: 3004:      return regs[0];
        -:        -: 3005:
        -:        -: 3006:   } else {
        5:        5: 3007:      const fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_F, size);
        -:        -: 3008:
       10:       10: 3009:      for (unsigned i = 0; i < n; i++)
        5:        5: 3010:         regs[i] = tmp;
        -:        -: 3011:
        5:        5: 3012:      return tmp;
        -:        -: 3013:   }
        -:        -: 3014:}
        -:        -: 3015:
        -:        -: 3016:static fs_reg
        5:        5: 3017:alloc_frag_output(fs_visitor *v, unsigned location)
        -:        -: 3018:{
        5:        5: 3019:   assert(v->stage == MESA_SHADER_FRAGMENT);
        -:        -: 3020:   const brw_wm_prog_key *const key =
        5:        5: 3021:      reinterpret_cast<const brw_wm_prog_key *>(v->key);
        5:        5: 3022:   const unsigned l = GET_FIELD(location, BRW_NIR_FRAG_OUTPUT_LOCATION);
        5:        5: 3023:   const unsigned i = GET_FIELD(location, BRW_NIR_FRAG_OUTPUT_INDEX);
        -:        -: 3024:
        5:        5: 3025:   if (i > 0 || (key->force_dual_color_blend && l == FRAG_RESULT_DATA1))
    #####:    #####: 3026:      return alloc_temporary(v->bld, 4, &v->dual_src_output, 1);
        -:        -: 3027:
        5:        5: 3028:   else if (l == FRAG_RESULT_COLOR)
        -:        -: 3029:      return alloc_temporary(v->bld, 4, v->outputs,
        5:        5: 3030:                             MAX2(key->nr_color_regions, 1));
        -:        -: 3031:
    #####:    #####: 3032:   else if (l == FRAG_RESULT_DEPTH)
    #####:    #####: 3033:      return alloc_temporary(v->bld, 1, &v->frag_depth, 1);
        -:        -: 3034:
    #####:    #####: 3035:   else if (l == FRAG_RESULT_STENCIL)
    #####:    #####: 3036:      return alloc_temporary(v->bld, 1, &v->frag_stencil, 1);
        -:        -: 3037:
    #####:    #####: 3038:   else if (l == FRAG_RESULT_SAMPLE_MASK)
    #####:    #####: 3039:      return alloc_temporary(v->bld, 1, &v->sample_mask, 1);
        -:        -: 3040:
    #####:    #####: 3041:   else if (l >= FRAG_RESULT_DATA0 &&
        -:        -: 3042:            l < FRAG_RESULT_DATA0 + BRW_MAX_DRAW_BUFFERS)
        -:        -: 3043:      return alloc_temporary(v->bld, 4,
    #####:    #####: 3044:                             &v->outputs[l - FRAG_RESULT_DATA0], 1);
        -:        -: 3045:
        -:        -: 3046:   else
    #####:    #####: 3047:      unreachable("Invalid location");
        -:        -: 3048:}
        -:        -: 3049:
        -:        -: 3050:void
       32:       32: 3051:fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld,
        -:        -: 3052:                                  nir_intrinsic_instr *instr)
        -:        -: 3053:{
       32:       32: 3054:   assert(stage == MESA_SHADER_FRAGMENT);
        -:        -: 3055:
       32:       32: 3056:   fs_reg dest;
       32:       32: 3057:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
       27:       27: 3058:      dest = get_nir_dest(instr->dest);
        -:        -: 3059:
       32:       32: 3060:   switch (instr->intrinsic) {
        -:        -: 3061:   case nir_intrinsic_load_front_face:
    #####:    #####: 3062:      bld.MOV(retype(dest, BRW_REGISTER_TYPE_D),
    #####:    #####: 3063:              *emit_frontfacing_interpolation());
    #####:    #####: 3064:      break;
        -:        -: 3065:
        -:        -: 3066:   case nir_intrinsic_load_sample_pos: {
    #####:    #####: 3067:      fs_reg sample_pos = nir_system_values[SYSTEM_VALUE_SAMPLE_POS];
    #####:    #####: 3068:      assert(sample_pos.file != BAD_FILE);
    #####:    #####: 3069:      dest.type = sample_pos.type;
    #####:    #####: 3070:      bld.MOV(dest, sample_pos);
    #####:    #####: 3071:      bld.MOV(offset(dest, bld, 1), offset(sample_pos, bld, 1));
    #####:    #####: 3072:      break;
        -:        -: 3073:   }
        -:        -: 3074:
        -:        -: 3075:   case nir_intrinsic_load_layer_id:
    #####:    #####: 3076:      dest.type = BRW_REGISTER_TYPE_UD;
    #####:    #####: 3077:      bld.MOV(dest, fetch_render_target_array_index(bld));
    #####:    #####: 3078:      break;
        -:        -: 3079:
        -:        -: 3080:   case nir_intrinsic_load_helper_invocation:
        -:        -: 3081:   case nir_intrinsic_load_sample_mask_in:
        -:        -: 3082:   case nir_intrinsic_load_sample_id: {
    #####:    #####: 3083:      gl_system_value sv = nir_system_value_from_intrinsic(instr->intrinsic);
    #####:    #####: 3084:      fs_reg val = nir_system_values[sv];
    #####:    #####: 3085:      assert(val.file != BAD_FILE);
    #####:    #####: 3086:      dest.type = val.type;
    #####:    #####: 3087:      bld.MOV(dest, val);
    #####:    #####: 3088:      break;
        -:        -: 3089:   }
        -:        -: 3090:
        -:        -: 3091:   case nir_intrinsic_store_output: {
        5:        5: 3092:      const fs_reg src = get_nir_src(instr->src[0]);
        5:        5: 3093:      const nir_const_value *const_offset = nir_src_as_const_value(instr->src[1]);
        5:        5: 3094:      assert(const_offset && "Indirect output stores not allowed");
        5:        5: 3095:      const unsigned location = nir_intrinsic_base(instr) +
        5:        5: 3096:         SET_FIELD(const_offset->u32[0], BRW_NIR_FRAG_OUTPUT_LOCATION);
        -:        -: 3097:      const fs_reg new_dest = retype(alloc_frag_output(this, location),
        5:        5: 3098:                                     src.type);
        -:        -: 3099:
       25:       25: 3100:      for (unsigned j = 0; j < instr->num_components; j++)
       40:       40: 3101:         bld.MOV(offset(new_dest, bld, nir_intrinsic_component(instr) + j),
       60:       60: 3102:                 offset(src, bld, j));
        -:        -: 3103:
        5:        5: 3104:      break;
        -:        -: 3105:   }
        -:        -: 3106:
        -:        -: 3107:   case nir_intrinsic_load_output: {
    #####:    #####: 3108:      const unsigned l = GET_FIELD(nir_intrinsic_base(instr),
        -:        -: 3109:                                   BRW_NIR_FRAG_OUTPUT_LOCATION);
    #####:    #####: 3110:      assert(l >= FRAG_RESULT_DATA0);
    #####:    #####: 3111:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 3112:      assert(const_offset && "Indirect output loads not allowed");
    #####:    #####: 3113:      const unsigned target = l - FRAG_RESULT_DATA0 + const_offset->u32[0];
    #####:    #####: 3114:      const fs_reg tmp = bld.vgrf(dest.type, 4);
        -:        -: 3115:
    #####:    #####: 3116:      if (reinterpret_cast<const brw_wm_prog_key *>(key)->coherent_fb_fetch)
    #####:    #####: 3117:         emit_coherent_fb_read(bld, tmp, target);
        -:        -: 3118:      else
    #####:    #####: 3119:         emit_non_coherent_fb_read(bld, tmp, target);
        -:        -: 3120:
    #####:    #####: 3121:      for (unsigned j = 0; j < instr->num_components; j++) {
    #####:    #####: 3122:         bld.MOV(offset(dest, bld, j),
    #####:    #####: 3123:                 offset(tmp, bld, nir_intrinsic_component(instr) + j));
        -:        -: 3124:      }
        -:        -: 3125:
    #####:    #####: 3126:      break;
        -:        -: 3127:   }
        -:        -: 3128:
        -:        -: 3129:   case nir_intrinsic_discard:
        -:        -: 3130:   case nir_intrinsic_discard_if: {
        -:        -: 3131:      /* We track our discarded pixels in f0.1.  By predicating on it, we can
        -:        -: 3132:       * update just the flag bits that aren't yet discarded.  If there's no
        -:        -: 3133:       * condition, we emit a CMP of g0 != g0, so all currently executing
        -:        -: 3134:       * channels will get turned off.
        -:        -: 3135:       */
        -:        -: 3136:      fs_inst *cmp;
    #####:    #####: 3137:      if (instr->intrinsic == nir_intrinsic_discard_if) {
    #####:    #####: 3138:         cmp = bld.CMP(bld.null_reg_f(), get_nir_src(instr->src[0]),
    #####:    #####: 3139:                       brw_imm_d(0), BRW_CONDITIONAL_Z);
        -:        -: 3140:      } else {
        -:        -: 3141:         fs_reg some_reg = fs_reg(retype(brw_vec8_grf(0, 0),
    #####:    #####: 3142:                                       BRW_REGISTER_TYPE_UW));
    #####:    #####: 3143:         cmp = bld.CMP(bld.null_reg_f(), some_reg, some_reg, BRW_CONDITIONAL_NZ);
        -:        -: 3144:      }
    #####:    #####: 3145:      cmp->predicate = BRW_PREDICATE_NORMAL;
    #####:    #####: 3146:      cmp->flag_subreg = 1;
        -:        -: 3147:
    #####:    #####: 3148:      if (devinfo->gen >= 6) {
    #####:    #####: 3149:         emit_discard_jump();
        -:        -: 3150:      }
    #####:    #####: 3151:      break;
        -:        -: 3152:   }
        -:        -: 3153:
        -:        -: 3154:   case nir_intrinsic_load_input: {
        -:        -: 3155:      /* load_input is only used for flat inputs */
        1:        1: 3156:      unsigned base = nir_intrinsic_base(instr);
        1:        1: 3157:      unsigned component = nir_intrinsic_component(instr);
        1:        1: 3158:      unsigned num_components = instr->num_components;
        1:        1: 3159:      enum brw_reg_type type = dest.type;
        -:        -: 3160:
        -:        -: 3161:      /* Special case fields in the VUE header */
        1:        1: 3162:      if (base == VARYING_SLOT_LAYER)
    #####:    #####: 3163:         component = 1;
        1:        1: 3164:      else if (base == VARYING_SLOT_VIEWPORT)
    #####:    #####: 3165:         component = 2;
        -:        -: 3166:
        1:        1: 3167:      if (nir_dest_bit_size(instr->dest) == 64) {
        -:        -: 3168:         /* const_index is in 32-bit type size units that could not be aligned
        -:        -: 3169:          * with DF. We need to read the double vector as if it was a float
        -:        -: 3170:          * vector of twice the number of components to fetch the right data.
        -:        -: 3171:          */
    #####:    #####: 3172:         type = BRW_REGISTER_TYPE_F;
    #####:    #####: 3173:         num_components *= 2;
        -:        -: 3174:      }
        -:        -: 3175:
        5:        5: 3176:      for (unsigned int i = 0; i < num_components; i++) {
        4:        4: 3177:         struct brw_reg interp = interp_reg(base, component + i);
        4:        4: 3178:         interp = suboffset(interp, 3);
        8:        8: 3179:         bld.emit(FS_OPCODE_CINTERP, offset(retype(dest, type), bld, i),
       12:       12: 3180:                  retype(fs_reg(interp), type));
        -:        -: 3181:      }
        -:        -: 3182:
        1:        1: 3183:      if (nir_dest_bit_size(instr->dest) == 64) {
    #####:    #####: 3184:         shuffle_32bit_load_result_to_64bit_data(bld,
        -:        -: 3185:                                                 dest,
    #####:    #####: 3186:                                                 retype(dest, type),
    #####:    #####: 3187:                                                 instr->num_components);
        -:        -: 3188:      }
        1:        1: 3189:      break;
        -:        -: 3190:   }
        -:        -: 3191:
        -:        -: 3192:   case nir_intrinsic_load_barycentric_pixel:
        -:        -: 3193:   case nir_intrinsic_load_barycentric_centroid:
        -:        -: 3194:   case nir_intrinsic_load_barycentric_sample:
        -:        -: 3195:      /* Do nothing - load_interpolated_input handling will handle it later. */
        4:        4: 3196:      break;
        -:        -: 3197:
        -:        -: 3198:   case nir_intrinsic_load_barycentric_at_sample: {
        -:        -: 3199:      const glsl_interp_mode interpolation =
    #####:    #####: 3200:         (enum glsl_interp_mode) nir_intrinsic_interp_mode(instr);
        -:        -: 3201:
    #####:    #####: 3202:      nir_const_value *const_sample = nir_src_as_const_value(instr->src[0]);
        -:        -: 3203:
    #####:    #####: 3204:      if (const_sample) {
    #####:    #####: 3205:         unsigned msg_data = const_sample->i32[0] << 4;
        -:        -: 3206:
    #####:    #####: 3207:         emit_pixel_interpolater_send(bld,
        -:        -: 3208:                                      FS_OPCODE_INTERPOLATE_AT_SAMPLE,
        -:        -: 3209:                                      dest,
        -:        -: 3210:                                      fs_reg(), /* src */
        -:        -: 3211:                                      brw_imm_ud(msg_data),
    #####:    #####: 3212:                                      interpolation);
        -:        -: 3213:      } else {
        -:        -: 3214:         const fs_reg sample_src = retype(get_nir_src(instr->src[0]),
    #####:    #####: 3215:                                          BRW_REGISTER_TYPE_UD);
        -:        -: 3216:
    #####:    #####: 3217:         if (nir_src_is_dynamically_uniform(instr->src[0])) {
    #####:    #####: 3218:            const fs_reg sample_id = bld.emit_uniformize(sample_src);
    #####:    #####: 3219:            const fs_reg msg_data = vgrf(glsl_type::uint_type);
    #####:    #####: 3220:            bld.exec_all().group(1, 0)
    #####:    #####: 3221:               .SHL(msg_data, sample_id, brw_imm_ud(4u));
    #####:    #####: 3222:            emit_pixel_interpolater_send(bld,
        -:        -: 3223:                                         FS_OPCODE_INTERPOLATE_AT_SAMPLE,
        -:        -: 3224:                                         dest,
        -:        -: 3225:                                         fs_reg(), /* src */
        -:        -: 3226:                                         msg_data,
    #####:    #####: 3227:                                         interpolation);
        -:        -: 3228:         } else {
        -:        -: 3229:            /* Make a loop that sends a message to the pixel interpolater
        -:        -: 3230:             * for the sample number in each live channel. If there are
        -:        -: 3231:             * multiple channels with the same sample number then these
        -:        -: 3232:             * will be handled simultaneously with a single interation of
        -:        -: 3233:             * the loop.
        -:        -: 3234:             */
    #####:    #####: 3235:            bld.emit(BRW_OPCODE_DO);
        -:        -: 3236:
        -:        -: 3237:            /* Get the next live sample number into sample_id_reg */
    #####:    #####: 3238:            const fs_reg sample_id = bld.emit_uniformize(sample_src);
        -:        -: 3239:
        -:        -: 3240:            /* Set the flag register so that we can perform the send
        -:        -: 3241:             * message on all channels that have the same sample number
        -:        -: 3242:             */
    #####:    #####: 3243:            bld.CMP(bld.null_reg_ud(),
        -:        -: 3244:                    sample_src, sample_id,
    #####:    #####: 3245:                    BRW_CONDITIONAL_EQ);
    #####:    #####: 3246:            const fs_reg msg_data = vgrf(glsl_type::uint_type);
    #####:    #####: 3247:            bld.exec_all().group(1, 0)
    #####:    #####: 3248:               .SHL(msg_data, sample_id, brw_imm_ud(4u));
        -:        -: 3249:            fs_inst *inst =
    #####:    #####: 3250:               emit_pixel_interpolater_send(bld,
        -:        -: 3251:                                            FS_OPCODE_INTERPOLATE_AT_SAMPLE,
        -:        -: 3252:                                            dest,
        -:        -: 3253:                                            fs_reg(), /* src */
        -:        -: 3254:                                            msg_data,
    #####:    #####: 3255:                                            interpolation);
    #####:    #####: 3256:            set_predicate(BRW_PREDICATE_NORMAL, inst);
        -:        -: 3257:
        -:        -: 3258:            /* Continue the loop if there are any live channels left */
    #####:    #####: 3259:            set_predicate_inv(BRW_PREDICATE_NORMAL,
        -:        -: 3260:                              true, /* inverse */
    #####:    #####: 3261:                              bld.emit(BRW_OPCODE_WHILE));
        -:        -: 3262:         }
        -:        -: 3263:      }
    #####:    #####: 3264:      break;
        -:        -: 3265:   }
        -:        -: 3266:
        -:        -: 3267:   case nir_intrinsic_load_barycentric_at_offset: {
        -:        -: 3268:      const glsl_interp_mode interpolation =
    #####:    #####: 3269:         (enum glsl_interp_mode) nir_intrinsic_interp_mode(instr);
        -:        -: 3270:
    #####:    #####: 3271:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
        -:        -: 3272:
    #####:    #####: 3273:      if (const_offset) {
    #####:    #####: 3274:         unsigned off_x = MIN2((int)(const_offset->f32[0] * 16), 7) & 0xf;
    #####:    #####: 3275:         unsigned off_y = MIN2((int)(const_offset->f32[1] * 16), 7) & 0xf;
        -:        -: 3276:
    #####:    #####: 3277:         emit_pixel_interpolater_send(bld,
        -:        -: 3278:                                      FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET,
        -:        -: 3279:                                      dest,
        -:        -: 3280:                                      fs_reg(), /* src */
    #####:    #####: 3281:                                      brw_imm_ud(off_x | (off_y << 4)),
    #####:    #####: 3282:                                      interpolation);
        -:        -: 3283:      } else {
    #####:    #####: 3284:         fs_reg src = vgrf(glsl_type::ivec2_type);
        -:        -: 3285:         fs_reg offset_src = retype(get_nir_src(instr->src[0]),
    #####:    #####: 3286:                                    BRW_REGISTER_TYPE_F);
    #####:    #####: 3287:         for (int i = 0; i < 2; i++) {
    #####:    #####: 3288:            fs_reg temp = vgrf(glsl_type::float_type);
    #####:    #####: 3289:            bld.MUL(temp, offset(offset_src, bld, i), brw_imm_f(16.0f));
    #####:    #####: 3290:            fs_reg itemp = vgrf(glsl_type::int_type);
        -:        -: 3291:            /* float to int */
    #####:    #####: 3292:            bld.MOV(itemp, temp);
        -:        -: 3293:
        -:        -: 3294:            /* Clamp the upper end of the range to +7/16.
        -:        -: 3295:             * ARB_gpu_shader5 requires that we support a maximum offset
        -:        -: 3296:             * of +0.5, which isn't representable in a S0.4 value -- if
        -:        -: 3297:             * we didn't clamp it, we'd end up with -8/16, which is the
        -:        -: 3298:             * opposite of what the shader author wanted.
        -:        -: 3299:             *
        -:        -: 3300:             * This is legal due to ARB_gpu_shader5's quantization
        -:        -: 3301:             * rules:
        -:        -: 3302:             *
        -:        -: 3303:             * "Not all values of <offset> may be supported; x and y
        -:        -: 3304:             * offsets may be rounded to fixed-point values with the
        -:        -: 3305:             * number of fraction bits given by the
        -:        -: 3306:             * implementation-dependent constant
        -:        -: 3307:             * FRAGMENT_INTERPOLATION_OFFSET_BITS"
        -:        -: 3308:             */
    #####:    #####: 3309:            set_condmod(BRW_CONDITIONAL_L,
    #####:    #####: 3310:                        bld.SEL(offset(src, bld, i), itemp, brw_imm_d(7)));
        -:        -: 3311:         }
        -:        -: 3312:
    #####:    #####: 3313:         const enum opcode opcode = FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET;
    #####:    #####: 3314:         emit_pixel_interpolater_send(bld,
        -:        -: 3315:                                      opcode,
        -:        -: 3316:                                      dest,
        -:        -: 3317:                                      src,
        -:        -: 3318:                                      brw_imm_ud(0u),
    #####:    #####: 3319:                                      interpolation);
        -:        -: 3320:      }
    #####:    #####: 3321:      break;
        -:        -: 3322:   }
        -:        -: 3323:
        -:        -: 3324:   case nir_intrinsic_load_interpolated_input: {
        4:        4: 3325:      if (nir_intrinsic_base(instr) == VARYING_SLOT_POS) {
        2:        2: 3326:         emit_fragcoord_interpolation(dest);
        2:        2: 3327:         break;
        -:        -: 3328:      }
        -:        -: 3329:
        4:        4: 3330:      assert(instr->src[0].ssa &&
        2:        2: 3331:             instr->src[0].ssa->parent_instr->type == nir_instr_type_intrinsic);
        -:        -: 3332:      nir_intrinsic_instr *bary_intrinsic =
        2:        2: 3333:         nir_instr_as_intrinsic(instr->src[0].ssa->parent_instr);
        2:        2: 3334:      nir_intrinsic_op bary_intrin = bary_intrinsic->intrinsic;
        -:        -: 3335:      enum glsl_interp_mode interp_mode =
        2:        2: 3336:         (enum glsl_interp_mode) nir_intrinsic_interp_mode(bary_intrinsic);
        2:        2: 3337:      fs_reg dst_xy;
        -:        -: 3338:
        2:        2: 3339:      if (bary_intrin == nir_intrinsic_load_barycentric_at_offset ||
        -:        -: 3340:          bary_intrin == nir_intrinsic_load_barycentric_at_sample) {
        -:        -: 3341:         /* Use the result of the PI message */
    #####:    #####: 3342:         dst_xy = retype(get_nir_src(instr->src[0]), BRW_REGISTER_TYPE_F);
        -:        -: 3343:      } else {
        -:        -: 3344:         /* Use the delta_xy values computed from the payload */
        -:        -: 3345:         enum brw_barycentric_mode bary =
        2:        2: 3346:            brw_barycentric_mode(interp_mode, bary_intrin);
        -:        -: 3347:
        2:        2: 3348:         dst_xy = this->delta_xy[bary];
        -:        -: 3349:      }
        -:        -: 3350:
       10:       10: 3351:      for (unsigned int i = 0; i < instr->num_components; i++) {
        -:        -: 3352:         fs_reg interp =
        -:        -: 3353:            fs_reg(interp_reg(nir_intrinsic_base(instr),
        8:        8: 3354:                              nir_intrinsic_component(instr) + i));
        8:        8: 3355:         interp.type = BRW_REGISTER_TYPE_F;
        8:        8: 3356:         dest.type = BRW_REGISTER_TYPE_F;
        -:        -: 3357:
        8:        8: 3358:         if (devinfo->gen < 6 && interp_mode == INTERP_MODE_SMOOTH) {
    #####:    #####: 3359:            fs_reg tmp = vgrf(glsl_type::float_type);
    #####:    #####: 3360:            bld.emit(FS_OPCODE_LINTERP, tmp, dst_xy, interp);
    #####:    #####: 3361:            bld.MUL(offset(dest, bld, i), tmp, this->pixel_w);
        -:        -: 3362:         } else {
        8:        8: 3363:            bld.emit(FS_OPCODE_LINTERP, offset(dest, bld, i), dst_xy, interp);
        -:        -: 3364:         }
        -:        -: 3365:      }
        2:        2: 3366:      break;
        -:        -: 3367:   }
        -:        -: 3368:
        -:        -: 3369:   default:
       18:       18: 3370:      nir_emit_intrinsic(bld, instr);
       18:       18: 3371:      break;
        -:        -: 3372:   }
       32:       32: 3373:}
        -:        -: 3374:
        -:        -: 3375:void
    #####:    #####: 3376:fs_visitor::nir_emit_cs_intrinsic(const fs_builder &bld,
        -:        -: 3377:                                  nir_intrinsic_instr *instr)
        -:        -: 3378:{
    #####:    #####: 3379:   assert(stage == MESA_SHADER_COMPUTE);
    #####:    #####: 3380:   struct brw_cs_prog_data *cs_prog_data = brw_cs_prog_data(prog_data);
        -:        -: 3381:
    #####:    #####: 3382:   fs_reg dest;
    #####:    #####: 3383:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 3384:      dest = get_nir_dest(instr->dest);
        -:        -: 3385:
    #####:    #####: 3386:   switch (instr->intrinsic) {
        -:        -: 3387:   case nir_intrinsic_barrier:
    #####:    #####: 3388:      emit_barrier();
    #####:    #####: 3389:      cs_prog_data->uses_barrier = true;
    #####:    #####: 3390:      break;
        -:        -: 3391:
        -:        -: 3392:   case nir_intrinsic_load_local_invocation_id:
        -:        -: 3393:   case nir_intrinsic_load_work_group_id: {
    #####:    #####: 3394:      gl_system_value sv = nir_system_value_from_intrinsic(instr->intrinsic);
    #####:    #####: 3395:      fs_reg val = nir_system_values[sv];
    #####:    #####: 3396:      assert(val.file != BAD_FILE);
    #####:    #####: 3397:      dest.type = val.type;
    #####:    #####: 3398:      for (unsigned i = 0; i < 3; i++)
    #####:    #####: 3399:         bld.MOV(offset(dest, bld, i), offset(val, bld, i));
    #####:    #####: 3400:      break;
        -:        -: 3401:   }
        -:        -: 3402:
        -:        -: 3403:   case nir_intrinsic_load_num_work_groups: {
        -:        -: 3404:      const unsigned surface =
    #####:    #####: 3405:         cs_prog_data->binding_table.work_groups_start;
        -:        -: 3406:
    #####:    #####: 3407:      cs_prog_data->uses_num_work_groups = true;
        -:        -: 3408:
    #####:    #####: 3409:      fs_reg surf_index = brw_imm_ud(surface);
    #####:    #####: 3410:      brw_mark_surface_used(prog_data, surface);
        -:        -: 3411:
        -:        -: 3412:      /* Read the 3 GLuint components of gl_NumWorkGroups */
    #####:    #####: 3413:      for (unsigned i = 0; i < 3; i++) {
        -:        -: 3414:         fs_reg read_result =
        -:        -: 3415:            emit_untyped_read(bld, surf_index,
        -:        -: 3416:                              brw_imm_ud(i << 2),
        -:        -: 3417:                              1 /* dims */, 1 /* size */,
    #####:    #####: 3418:                              BRW_PREDICATE_NONE);
    #####:    #####: 3419:         read_result.type = dest.type;
    #####:    #####: 3420:         bld.MOV(dest, read_result);
    #####:    #####: 3421:         dest = offset(dest, bld, 1);
        -:        -: 3422:      }
    #####:    #####: 3423:      break;
        -:        -: 3424:   }
        -:        -: 3425:
        -:        -: 3426:   case nir_intrinsic_shared_atomic_add:
    #####:    #####: 3427:      nir_emit_shared_atomic(bld, BRW_AOP_ADD, instr);
    #####:    #####: 3428:      break;
        -:        -: 3429:   case nir_intrinsic_shared_atomic_imin:
    #####:    #####: 3430:      nir_emit_shared_atomic(bld, BRW_AOP_IMIN, instr);
    #####:    #####: 3431:      break;
        -:        -: 3432:   case nir_intrinsic_shared_atomic_umin:
    #####:    #####: 3433:      nir_emit_shared_atomic(bld, BRW_AOP_UMIN, instr);
    #####:    #####: 3434:      break;
        -:        -: 3435:   case nir_intrinsic_shared_atomic_imax:
    #####:    #####: 3436:      nir_emit_shared_atomic(bld, BRW_AOP_IMAX, instr);
    #####:    #####: 3437:      break;
        -:        -: 3438:   case nir_intrinsic_shared_atomic_umax:
    #####:    #####: 3439:      nir_emit_shared_atomic(bld, BRW_AOP_UMAX, instr);
    #####:    #####: 3440:      break;
        -:        -: 3441:   case nir_intrinsic_shared_atomic_and:
    #####:    #####: 3442:      nir_emit_shared_atomic(bld, BRW_AOP_AND, instr);
    #####:    #####: 3443:      break;
        -:        -: 3444:   case nir_intrinsic_shared_atomic_or:
    #####:    #####: 3445:      nir_emit_shared_atomic(bld, BRW_AOP_OR, instr);
    #####:    #####: 3446:      break;
        -:        -: 3447:   case nir_intrinsic_shared_atomic_xor:
    #####:    #####: 3448:      nir_emit_shared_atomic(bld, BRW_AOP_XOR, instr);
    #####:    #####: 3449:      break;
        -:        -: 3450:   case nir_intrinsic_shared_atomic_exchange:
    #####:    #####: 3451:      nir_emit_shared_atomic(bld, BRW_AOP_MOV, instr);
    #####:    #####: 3452:      break;
        -:        -: 3453:   case nir_intrinsic_shared_atomic_comp_swap:
    #####:    #####: 3454:      nir_emit_shared_atomic(bld, BRW_AOP_CMPWR, instr);
    #####:    #####: 3455:      break;
        -:        -: 3456:
        -:        -: 3457:   case nir_intrinsic_load_shared: {
    #####:    #####: 3458:      assert(devinfo->gen >= 7);
        -:        -: 3459:
    #####:    #####: 3460:      fs_reg surf_index = brw_imm_ud(GEN7_BTI_SLM);
        -:        -: 3461:
        -:        -: 3462:      /* Get the offset to read from */
    #####:    #####: 3463:      fs_reg offset_reg;
    #####:    #####: 3464:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 3465:      if (const_offset) {
    #####:    #####: 3466:         offset_reg = brw_imm_ud(instr->const_index[0] + const_offset->u32[0]);
        -:        -: 3467:      } else {
    #####:    #####: 3468:         offset_reg = vgrf(glsl_type::uint_type);
    #####:    #####: 3469:         bld.ADD(offset_reg,
    #####:    #####: 3470:                 retype(get_nir_src(instr->src[0]), BRW_REGISTER_TYPE_UD),
    #####:    #####: 3471:                 brw_imm_ud(instr->const_index[0]));
        -:        -: 3472:      }
        -:        -: 3473:
        -:        -: 3474:      /* Read the vector */
    #####:    #####: 3475:      do_untyped_vector_read(bld, dest, surf_index, offset_reg,
    #####:    #####: 3476:                             instr->num_components);
    #####:    #####: 3477:      break;
        -:        -: 3478:   }
        -:        -: 3479:
        -:        -: 3480:   case nir_intrinsic_store_shared: {
    #####:    #####: 3481:      assert(devinfo->gen >= 7);
        -:        -: 3482:
        -:        -: 3483:      /* Block index */
    #####:    #####: 3484:      fs_reg surf_index = brw_imm_ud(GEN7_BTI_SLM);
        -:        -: 3485:
        -:        -: 3486:      /* Value */
    #####:    #####: 3487:      fs_reg val_reg = get_nir_src(instr->src[0]);
        -:        -: 3488:
        -:        -: 3489:      /* Writemask */
    #####:    #####: 3490:      unsigned writemask = instr->const_index[1];
        -:        -: 3491:
        -:        -: 3492:      /* get_nir_src() retypes to integer. Be wary of 64-bit types though
        -:        -: 3493:       * since the untyped writes below operate in units of 32-bits, which
        -:        -: 3494:       * means that we need to write twice as many components each time.
        -:        -: 3495:       * Also, we have to suffle 64-bit data to be in the appropriate layout
        -:        -: 3496:       * expected by our 32-bit write messages.
        -:        -: 3497:       */
    #####:    #####: 3498:      unsigned type_size = 4;
    #####:    #####: 3499:      unsigned bit_size = instr->src[0].is_ssa ?
    #####:    #####: 3500:         instr->src[0].ssa->bit_size : instr->src[0].reg.reg->bit_size;
    #####:    #####: 3501:      if (bit_size == 64) {
    #####:    #####: 3502:         type_size = 8;
        -:        -: 3503:         fs_reg tmp =
    #####:    #####: 3504:           fs_reg(VGRF, alloc.allocate(alloc.sizes[val_reg.nr]), val_reg.type);
    #####:    #####: 3505:         shuffle_64bit_data_for_32bit_write(
        -:        -: 3506:            bld,
    #####:    #####: 3507:            retype(tmp, BRW_REGISTER_TYPE_F),
    #####:    #####: 3508:            retype(val_reg, BRW_REGISTER_TYPE_DF),
    #####:    #####: 3509:            instr->num_components);
    #####:    #####: 3510:         val_reg = tmp;
        -:        -: 3511:      }
        -:        -: 3512:
    #####:    #####: 3513:      unsigned type_slots = type_size / 4;
        -:        -: 3514:
        -:        -: 3515:      /* Combine groups of consecutive enabled channels in one write
        -:        -: 3516:       * message. We use ffs to find the first enabled channel and then ffs on
        -:        -: 3517:       * the bit-inverse, down-shifted writemask to determine the length of
        -:        -: 3518:       * the block of enabled bits.
        -:        -: 3519:       */
    #####:    #####: 3520:      while (writemask) {
    #####:    #####: 3521:         unsigned first_component = ffs(writemask) - 1;
    #####:    #####: 3522:         unsigned length = ffs(~(writemask >> first_component)) - 1;
        -:        -: 3523:
        -:        -: 3524:         /* We can't write more than 2 64-bit components at once. Limit the
        -:        -: 3525:          * length of the write to what we can do and let the next iteration
        -:        -: 3526:          * handle the rest
        -:        -: 3527:          */
    #####:    #####: 3528:         if (type_size > 4)
    #####:    #####: 3529:            length = MIN2(2, length);
        -:        -: 3530:
    #####:    #####: 3531:         fs_reg offset_reg;
    #####:    #####: 3532:         nir_const_value *const_offset = nir_src_as_const_value(instr->src[1]);
    #####:    #####: 3533:         if (const_offset) {
    #####:    #####: 3534:            offset_reg = brw_imm_ud(instr->const_index[0] + const_offset->u32[0] +
    #####:    #####: 3535:                                    type_size * first_component);
        -:        -: 3536:         } else {
    #####:    #####: 3537:            offset_reg = vgrf(glsl_type::uint_type);
    #####:    #####: 3538:            bld.ADD(offset_reg,
    #####:    #####: 3539:                    retype(get_nir_src(instr->src[1]), BRW_REGISTER_TYPE_UD),
    #####:    #####: 3540:                    brw_imm_ud(instr->const_index[0] + type_size * first_component));
        -:        -: 3541:         }
        -:        -: 3542:
    #####:    #####: 3543:         emit_untyped_write(bld, surf_index, offset_reg,
    #####:    #####: 3544:                            offset(val_reg, bld, first_component * type_slots),
        -:        -: 3545:                            1 /* dims */, length * type_slots,
    #####:    #####: 3546:                            BRW_PREDICATE_NONE);
        -:        -: 3547:
        -:        -: 3548:         /* Clear the bits in the writemask that we just wrote, then try
        -:        -: 3549:          * again to see if more channels are left.
        -:        -: 3550:          */
    #####:    #####: 3551:         writemask &= (15 << (first_component + length));
        -:        -: 3552:      }
        -:        -: 3553:
    #####:    #####: 3554:      break;
        -:        -: 3555:   }
        -:        -: 3556:
        -:        -: 3557:   default:
    #####:    #####: 3558:      nir_emit_intrinsic(bld, instr);
    #####:    #####: 3559:      break;
        -:        -: 3560:   }
    #####:    #####: 3561:}
        -:        -: 3562:
        -:        -: 3563:void
       18:       18: 3564:fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr)
        -:        -: 3565:{
       18:       18: 3566:   fs_reg dest;
       18:       18: 3567:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
       18:       18: 3568:      dest = get_nir_dest(instr->dest);
        -:        -: 3569:
       18:       18: 3570:   switch (instr->intrinsic) {
        -:        -: 3571:   case nir_intrinsic_atomic_counter_inc:
        -:        -: 3572:   case nir_intrinsic_atomic_counter_dec:
        -:        -: 3573:   case nir_intrinsic_atomic_counter_read:
        -:        -: 3574:   case nir_intrinsic_atomic_counter_add:
        -:        -: 3575:   case nir_intrinsic_atomic_counter_min:
        -:        -: 3576:   case nir_intrinsic_atomic_counter_max:
        -:        -: 3577:   case nir_intrinsic_atomic_counter_and:
        -:        -: 3578:   case nir_intrinsic_atomic_counter_or:
        -:        -: 3579:   case nir_intrinsic_atomic_counter_xor:
        -:        -: 3580:   case nir_intrinsic_atomic_counter_exchange:
        -:        -: 3581:   case nir_intrinsic_atomic_counter_comp_swap: {
    #####:    #####: 3582:      if (stage == MESA_SHADER_FRAGMENT &&
    #####:    #####: 3583:          instr->intrinsic != nir_intrinsic_atomic_counter_read)
    #####:    #####: 3584:         brw_wm_prog_data(prog_data)->has_side_effects = true;
        -:        -: 3585:
        -:        -: 3586:      /* Get some metadata from the image intrinsic. */
    #####:    #####: 3587:      const nir_intrinsic_info *info = &nir_intrinsic_infos[instr->intrinsic];
        -:        -: 3588:
        -:        -: 3589:      /* Get the arguments of the atomic intrinsic. */
    #####:    #####: 3590:      const fs_reg offset = get_nir_src(instr->src[0]);
    #####:    #####: 3591:      const unsigned surface = (stage_prog_data->binding_table.abo_start +
    #####:    #####: 3592:                                instr->const_index[0]);
    #####:    #####: 3593:      const fs_reg src0 = (info->num_srcs >= 2
    #####:    #####: 3594:                           ? get_nir_src(instr->src[1]) : fs_reg());
    #####:    #####: 3595:      const fs_reg src1 = (info->num_srcs >= 3
    #####:    #####: 3596:                           ? get_nir_src(instr->src[2]) : fs_reg());
    #####:    #####: 3597:      fs_reg tmp;
        -:        -: 3598:
    #####:    #####: 3599:      assert(info->num_srcs <= 3);
        -:        -: 3600:
        -:        -: 3601:      /* Emit a surface read or atomic op. */
    #####:    #####: 3602:      if (instr->intrinsic == nir_intrinsic_atomic_counter_read) {
    #####:    #####: 3603:         tmp = emit_untyped_read(bld, brw_imm_ud(surface), offset, 1, 1);
        -:        -: 3604:      } else {
    #####:    #####: 3605:         tmp = emit_untyped_atomic(bld, brw_imm_ud(surface), offset, src0,
        -:        -: 3606:                                   src1, 1, 1,
    #####:    #####: 3607:                                   get_atomic_counter_op(instr->intrinsic));
        -:        -: 3608:      }
        -:        -: 3609:
        -:        -: 3610:      /* Assign the result. */
    #####:    #####: 3611:      bld.MOV(retype(dest, BRW_REGISTER_TYPE_UD), tmp);
        -:        -: 3612:
        -:        -: 3613:      /* Mark the surface as used. */
    #####:    #####: 3614:      brw_mark_surface_used(stage_prog_data, surface);
    #####:    #####: 3615:      break;
        -:        -: 3616:   }
        -:        -: 3617:
        -:        -: 3618:   case nir_intrinsic_image_load:
        -:        -: 3619:   case nir_intrinsic_image_store:
        -:        -: 3620:   case nir_intrinsic_image_atomic_add:
        -:        -: 3621:   case nir_intrinsic_image_atomic_min:
        -:        -: 3622:   case nir_intrinsic_image_atomic_max:
        -:        -: 3623:   case nir_intrinsic_image_atomic_and:
        -:        -: 3624:   case nir_intrinsic_image_atomic_or:
        -:        -: 3625:   case nir_intrinsic_image_atomic_xor:
        -:        -: 3626:   case nir_intrinsic_image_atomic_exchange:
        -:        -: 3627:   case nir_intrinsic_image_atomic_comp_swap: {
        -:        -: 3628:      using namespace image_access;
        -:        -: 3629:
    #####:    #####: 3630:      if (stage == MESA_SHADER_FRAGMENT &&
    #####:    #####: 3631:          instr->intrinsic != nir_intrinsic_image_load)
    #####:    #####: 3632:         brw_wm_prog_data(prog_data)->has_side_effects = true;
        -:        -: 3633:
        -:        -: 3634:      /* Get the referenced image variable and type. */
    #####:    #####: 3635:      const nir_variable *var = instr->variables[0]->var;
    #####:    #####: 3636:      const glsl_type *type = var->type->without_array();
    #####:    #####: 3637:      const brw_reg_type base_type = get_image_base_type(type);
        -:        -: 3638:
        -:        -: 3639:      /* Get some metadata from the image intrinsic. */
    #####:    #####: 3640:      const nir_intrinsic_info *info = &nir_intrinsic_infos[instr->intrinsic];
    #####:    #####: 3641:      const unsigned arr_dims = type->sampler_array ? 1 : 0;
    #####:    #####: 3642:      const unsigned surf_dims = type->coordinate_components() - arr_dims;
    #####:    #####: 3643:      const unsigned format = var->data.image.format;
        -:        -: 3644:
        -:        -: 3645:      /* Get the arguments of the image intrinsic. */
    #####:    #####: 3646:      const fs_reg image = get_nir_image_deref(instr->variables[0]);
        -:        -: 3647:      const fs_reg addr = retype(get_nir_src(instr->src[0]),
    #####:    #####: 3648:                                 BRW_REGISTER_TYPE_UD);
    #####:    #####: 3649:      const fs_reg src0 = (info->num_srcs >= 3 ?
    #####:    #####: 3650:                           retype(get_nir_src(instr->src[2]), base_type) :
    #####:    #####: 3651:                           fs_reg());
    #####:    #####: 3652:      const fs_reg src1 = (info->num_srcs >= 4 ?
    #####:    #####: 3653:                           retype(get_nir_src(instr->src[3]), base_type) :
    #####:    #####: 3654:                           fs_reg());
    #####:    #####: 3655:      fs_reg tmp;
        -:        -: 3656:
        -:        -: 3657:      /* Emit an image load, store or atomic op. */
    #####:    #####: 3658:      if (instr->intrinsic == nir_intrinsic_image_load)
    #####:    #####: 3659:         tmp = emit_image_load(bld, image, addr, surf_dims, arr_dims, format);
        -:        -: 3660:
    #####:    #####: 3661:      else if (instr->intrinsic == nir_intrinsic_image_store)
    #####:    #####: 3662:         emit_image_store(bld, image, addr, src0, surf_dims, arr_dims,
    #####:    #####: 3663:                          var->data.image.write_only ? GL_NONE : format);
        -:        -: 3664:
        -:        -: 3665:      else
    #####:    #####: 3666:         tmp = emit_image_atomic(bld, image, addr, src0, src1,
    #####:    #####: 3667:                                 surf_dims, arr_dims, info->dest_components,
    #####:    #####: 3668:                                 get_image_atomic_op(instr->intrinsic, type));
        -:        -: 3669:
        -:        -: 3670:      /* Assign the result. */
    #####:    #####: 3671:      for (unsigned c = 0; c < info->dest_components; ++c)
    #####:    #####: 3672:         bld.MOV(offset(retype(dest, base_type), bld, c),
    #####:    #####: 3673:                 offset(tmp, bld, c));
    #####:    #####: 3674:      break;
        -:        -: 3675:   }
        -:        -: 3676:
        -:        -: 3677:   case nir_intrinsic_memory_barrier_atomic_counter:
        -:        -: 3678:   case nir_intrinsic_memory_barrier_buffer:
        -:        -: 3679:   case nir_intrinsic_memory_barrier_image:
        -:        -: 3680:   case nir_intrinsic_memory_barrier: {
    #####:    #####: 3681:      const fs_builder ubld = bld.group(8, 0);
    #####:    #####: 3682:      const fs_reg tmp = ubld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 3683:      ubld.emit(SHADER_OPCODE_MEMORY_FENCE, tmp)
    #####:    #####: 3684:         ->size_written = 2 * REG_SIZE;
    #####:    #####: 3685:      break;
        -:        -: 3686:   }
        -:        -: 3687:
        -:        -: 3688:   case nir_intrinsic_group_memory_barrier:
        -:        -: 3689:   case nir_intrinsic_memory_barrier_shared:
        -:        -: 3690:      /* We treat these workgroup-level barriers as no-ops.  This should be
        -:        -: 3691:       * safe at present and as long as:
        -:        -: 3692:       *
        -:        -: 3693:       *  - Memory access instructions are not subsequently reordered by the
        -:        -: 3694:       *    compiler back-end.
        -:        -: 3695:       *
        -:        -: 3696:       *  - All threads from a given compute shader workgroup fit within a
        -:        -: 3697:       *    single subslice and therefore talk to the same HDC shared unit
        -:        -: 3698:       *    what supposedly guarantees ordering and coherency between threads
        -:        -: 3699:       *    from the same workgroup.  This may change in the future when we
        -:        -: 3700:       *    start splitting workgroups across multiple subslices.
        -:        -: 3701:       *
        -:        -: 3702:       *  - The context is not in fault-and-stream mode, which could cause
        -:        -: 3703:       *    memory transactions (including to SLM) prior to the barrier to be
        -:        -: 3704:       *    replayed after the barrier if a pagefault occurs.  This shouldn't
        -:        -: 3705:       *    be a problem up to and including SKL because fault-and-stream is
        -:        -: 3706:       *    not usable due to hardware issues, but that's likely to change in
        -:        -: 3707:       *    the future.
        -:        -: 3708:       */
    #####:    #####: 3709:      break;
        -:        -: 3710:
        -:        -: 3711:   case nir_intrinsic_shader_clock: {
        -:        -: 3712:      /* We cannot do anything if there is an event, so ignore it for now */
    #####:    #####: 3713:      const fs_reg shader_clock = get_timestamp(bld);
        -:        -: 3714:      const fs_reg srcs[] = { component(shader_clock, 0),
    #####:    #####: 3715:                              component(shader_clock, 1) };
    #####:    #####: 3716:      bld.LOAD_PAYLOAD(dest, srcs, ARRAY_SIZE(srcs), 0);
    #####:    #####: 3717:      break;
        -:        -: 3718:   }
        -:        -: 3719:
        -:        -: 3720:   case nir_intrinsic_image_size: {
        -:        -: 3721:      /* Get the referenced image variable and type. */
    #####:    #####: 3722:      const nir_variable *var = instr->variables[0]->var;
    #####:    #####: 3723:      const glsl_type *type = var->type->without_array();
        -:        -: 3724:
        -:        -: 3725:      /* Get the size of the image. */
    #####:    #####: 3726:      const fs_reg image = get_nir_image_deref(instr->variables[0]);
    #####:    #####: 3727:      const fs_reg size = offset(image, bld, BRW_IMAGE_PARAM_SIZE_OFFSET);
        -:        -: 3728:
        -:        -: 3729:      /* For 1DArray image types, the array index is stored in the Z component.
        -:        -: 3730:       * Fix this by swizzling the Z component to the Y component.
        -:        -: 3731:       */
        -:        -: 3732:      const bool is_1d_array_image =
    #####:    #####: 3733:                  type->sampler_dimensionality == GLSL_SAMPLER_DIM_1D &&
    #####:    #####: 3734:                  type->sampler_array;
        -:        -: 3735:
        -:        -: 3736:      /* For CubeArray images, we should count the number of cubes instead
        -:        -: 3737:       * of the number of faces. Fix it by dividing the (Z component) by 6.
        -:        -: 3738:       */
        -:        -: 3739:      const bool is_cube_array_image =
    #####:    #####: 3740:                  type->sampler_dimensionality == GLSL_SAMPLER_DIM_CUBE &&
    #####:    #####: 3741:                  type->sampler_array;
        -:        -: 3742:
        -:        -: 3743:      /* Copy all the components. */
    #####:    #####: 3744:      for (unsigned c = 0; c < instr->dest.ssa.num_components; ++c) {
    #####:    #####: 3745:         if ((int)c >= type->coordinate_components()) {
    #####:    #####: 3746:             bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c),
    #####:    #####: 3747:                     brw_imm_d(1));
    #####:    #####: 3748:         } else if (c == 1 && is_1d_array_image) {
    #####:    #####: 3749:            bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c),
    #####:    #####: 3750:                    offset(size, bld, 2));
    #####:    #####: 3751:         } else if (c == 2 && is_cube_array_image) {
    #####:    #####: 3752:            bld.emit(SHADER_OPCODE_INT_QUOTIENT,
    #####:    #####: 3753:                     offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c),
    #####:    #####: 3754:                     offset(size, bld, c), brw_imm_d(6));
        -:        -: 3755:         } else {
    #####:    #####: 3756:            bld.MOV(offset(retype(dest, BRW_REGISTER_TYPE_D), bld, c),
    #####:    #####: 3757:                    offset(size, bld, c));
        -:        -: 3758:         }
        -:        -: 3759:       }
        -:        -: 3760:
    #####:    #####: 3761:      break;
        -:        -: 3762:   }
        -:        -: 3763:
        -:        -: 3764:   case nir_intrinsic_image_samples:
        -:        -: 3765:      /* The driver does not support multi-sampled images. */
    #####:    #####: 3766:      bld.MOV(retype(dest, BRW_REGISTER_TYPE_D), brw_imm_d(1));
    #####:    #####: 3767:      break;
        -:        -: 3768:
        -:        -: 3769:   case nir_intrinsic_load_uniform: {
        -:        -: 3770:      /* Offsets are in bytes but they should always be multiples of 4 */
       18:       18: 3771:      assert(instr->const_index[0] % 4 == 0);
        -:        -: 3772:
       18:       18: 3773:      fs_reg src(UNIFORM, instr->const_index[0] / 4, dest.type);
        -:        -: 3774:
       18:       18: 3775:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
       18:       18: 3776:      if (const_offset) {
        -:        -: 3777:         /* Offsets are in bytes but they should always be multiples of 4 */
       18:       18: 3778:         assert(const_offset->u32[0] % 4 == 0);
       18:       18: 3779:         src.offset = const_offset->u32[0];
        -:        -: 3780:
       44:       44: 3781:         for (unsigned j = 0; j < instr->num_components; j++) {
       26:       26: 3782:            bld.MOV(offset(dest, bld, j), offset(src, bld, j));
        -:        -: 3783:         }
        -:        -: 3784:      } else {
        -:        -: 3785:         fs_reg indirect = retype(get_nir_src(instr->src[0]),
    #####:    #####: 3786:                                  BRW_REGISTER_TYPE_UD);
        -:        -: 3787:
        -:        -: 3788:         /* We need to pass a size to the MOV_INDIRECT but we don't want it to
        -:        -: 3789:          * go past the end of the uniform.  In order to keep the n'th
        -:        -: 3790:          * component from running past, we subtract off the size of all but
        -:        -: 3791:          * one component of the vector.
        -:        -: 3792:          */
    #####:    #####: 3793:         assert(instr->const_index[1] >=
    #####:    #####: 3794:                instr->num_components * (int) type_sz(dest.type));
    #####:    #####: 3795:         unsigned read_size = instr->const_index[1] -
    #####:    #####: 3796:            (instr->num_components - 1) * type_sz(dest.type);
        -:        -: 3797:
        -:        -: 3798:         bool supports_64bit_indirects =
    #####:    #####: 3799:            !devinfo->is_cherryview && !devinfo->is_broxton;
        -:        -: 3800:
    #####:    #####: 3801:         if (type_sz(dest.type) != 8 || supports_64bit_indirects) {
    #####:    #####: 3802:            for (unsigned j = 0; j < instr->num_components; j++) {
    #####:    #####: 3803:               bld.emit(SHADER_OPCODE_MOV_INDIRECT,
    #####:    #####: 3804:                        offset(dest, bld, j), offset(src, bld, j),
    #####:    #####: 3805:                        indirect, brw_imm_ud(read_size));
        -:        -: 3806:            }
        -:        -: 3807:         } else {
        -:        -: 3808:            const unsigned num_mov_indirects =
    #####:    #####: 3809:               type_sz(dest.type) / type_sz(BRW_REGISTER_TYPE_UD);
        -:        -: 3810:            /* We read a little bit less per MOV INDIRECT, as they are now
        -:        -: 3811:             * 32-bits ones instead of 64-bit. Fix read_size then.
        -:        -: 3812:             */
        -:        -: 3813:            const unsigned read_size_32bit = read_size -
    #####:    #####: 3814:                (num_mov_indirects - 1) * type_sz(BRW_REGISTER_TYPE_UD);
    #####:    #####: 3815:            for (unsigned j = 0; j < instr->num_components; j++) {
    #####:    #####: 3816:               for (unsigned i = 0; i < num_mov_indirects; i++) {
    #####:    #####: 3817:                  bld.emit(SHADER_OPCODE_MOV_INDIRECT,
    #####:    #####: 3818:                           subscript(offset(dest, bld, j), BRW_REGISTER_TYPE_UD, i),
    #####:    #####: 3819:                           subscript(offset(src, bld, j), BRW_REGISTER_TYPE_UD, i),
    #####:    #####: 3820:                           indirect, brw_imm_ud(read_size_32bit));
        -:        -: 3821:               }
        -:        -: 3822:            }
        -:        -: 3823:         }
        -:        -: 3824:      }
       18:       18: 3825:      break;
        -:        -: 3826:   }
        -:        -: 3827:
        -:        -: 3828:   case nir_intrinsic_load_ubo: {
    #####:    #####: 3829:      nir_const_value *const_index = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 3830:      fs_reg surf_index;
        -:        -: 3831:
    #####:    #####: 3832:      if (const_index) {
    #####:    #####: 3833:         const unsigned index = stage_prog_data->binding_table.ubo_start +
    #####:    #####: 3834:                                const_index->u32[0];
    #####:    #####: 3835:         surf_index = brw_imm_ud(index);
    #####:    #####: 3836:         brw_mark_surface_used(prog_data, index);
        -:        -: 3837:      } else {
        -:        -: 3838:         /* The block index is not a constant. Evaluate the index expression
        -:        -: 3839:          * per-channel and add the base UBO index; we have to select a value
        -:        -: 3840:          * from any live channel.
        -:        -: 3841:          */
    #####:    #####: 3842:         surf_index = vgrf(glsl_type::uint_type);
    #####:    #####: 3843:         bld.ADD(surf_index, get_nir_src(instr->src[0]),
    #####:    #####: 3844:                 brw_imm_ud(stage_prog_data->binding_table.ubo_start));
    #####:    #####: 3845:         surf_index = bld.emit_uniformize(surf_index);
        -:        -: 3846:
        -:        -: 3847:         /* Assume this may touch any UBO. It would be nice to provide
        -:        -: 3848:          * a tighter bound, but the array information is already lowered away.
        -:        -: 3849:          */
    #####:    #####: 3850:         brw_mark_surface_used(prog_data,
    #####:    #####: 3851:                               stage_prog_data->binding_table.ubo_start +
    #####:    #####: 3852:                               nir->info->num_ubos - 1);
        -:        -: 3853:      }
        -:        -: 3854:
    #####:    #####: 3855:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[1]);
    #####:    #####: 3856:      if (const_offset == NULL) {
        -:        -: 3857:         fs_reg base_offset = retype(get_nir_src(instr->src[1]),
    #####:    #####: 3858:                                     BRW_REGISTER_TYPE_UD);
        -:        -: 3859:
    #####:    #####: 3860:         for (int i = 0; i < instr->num_components; i++)
    #####:    #####: 3861:            VARYING_PULL_CONSTANT_LOAD(bld, offset(dest, bld, i), surf_index,
    #####:    #####: 3862:                                       base_offset, i * type_sz(dest.type));
        -:        -: 3863:      } else {
        -:        -: 3864:         /* Even if we are loading doubles, a pull constant load will load
        -:        -: 3865:          * a 32-bit vec4, so should only reserve vgrf space for that. If we
        -:        -: 3866:          * need to load a full dvec4 we will have to emit 2 loads. This is
        -:        -: 3867:          * similar to demote_pull_constants(), except that in that case we
        -:        -: 3868:          * see individual accesses to each component of the vector and then
        -:        -: 3869:          * we let CSE deal with duplicate loads. Here we see a vector access
        -:        -: 3870:          * and we have to split it if necessary.
        -:        -: 3871:          */
    #####:    #####: 3872:         const unsigned type_size = type_sz(dest.type);
    #####:    #####: 3873:         const unsigned block_sz = 64; /* Fetch one cacheline at a time. */
    #####:    #####: 3874:         const fs_builder ubld = bld.exec_all().group(block_sz / 4, 0);
    #####:    #####: 3875:         const fs_reg packed_consts = ubld.vgrf(BRW_REGISTER_TYPE_UD);
        -:        -: 3876:
    #####:    #####: 3877:         for (unsigned c = 0; c < instr->num_components;) {
    #####:    #####: 3878:            const unsigned base = const_offset->u32[0] + c * type_size;
        -:        -: 3879:            /* Number of usable components in the next block-aligned load. */
    #####:    #####: 3880:            const unsigned count = MIN2(instr->num_components - c,
        -:        -: 3881:                                        (block_sz - base % block_sz) / type_size);
        -:        -: 3882:
    #####:    #####: 3883:            ubld.emit(FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD,
        -:        -: 3884:                      packed_consts, surf_index,
    #####:    #####: 3885:                      brw_imm_ud(base & ~(block_sz - 1)));
        -:        -: 3886:
        -:        -: 3887:            const fs_reg consts =
        -:        -: 3888:               retype(byte_offset(packed_consts, base & (block_sz - 1)),
    #####:    #####: 3889:                      dest.type);
        -:        -: 3890:
    #####:    #####: 3891:            for (unsigned d = 0; d < count; d++)
    #####:    #####: 3892:               bld.MOV(offset(dest, bld, c + d), component(consts, d));
        -:        -: 3893:
    #####:    #####: 3894:            c += count;
        -:        -: 3895:         }
        -:        -: 3896:      }
    #####:    #####: 3897:      break;
        -:        -: 3898:   }
        -:        -: 3899:
        -:        -: 3900:   case nir_intrinsic_load_ssbo: {
    #####:    #####: 3901:      assert(devinfo->gen >= 7);
        -:        -: 3902:
        -:        -: 3903:      nir_const_value *const_uniform_block =
    #####:    #####: 3904:         nir_src_as_const_value(instr->src[0]);
        -:        -: 3905:
    #####:    #####: 3906:      fs_reg surf_index;
    #####:    #####: 3907:      if (const_uniform_block) {
    #####:    #####: 3908:         unsigned index = stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 3909:                          const_uniform_block->u32[0];
    #####:    #####: 3910:         surf_index = brw_imm_ud(index);
    #####:    #####: 3911:         brw_mark_surface_used(prog_data, index);
        -:        -: 3912:      } else {
    #####:    #####: 3913:         surf_index = vgrf(glsl_type::uint_type);
    #####:    #####: 3914:         bld.ADD(surf_index, get_nir_src(instr->src[0]),
    #####:    #####: 3915:                 brw_imm_ud(stage_prog_data->binding_table.ssbo_start));
        -:        -: 3916:
        -:        -: 3917:         /* Assume this may touch any UBO. It would be nice to provide
        -:        -: 3918:          * a tighter bound, but the array information is already lowered away.
        -:        -: 3919:          */
    #####:    #####: 3920:         brw_mark_surface_used(prog_data,
    #####:    #####: 3921:                               stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 3922:                               nir->info->num_ssbos - 1);
        -:        -: 3923:      }
        -:        -: 3924:
    #####:    #####: 3925:      fs_reg offset_reg;
    #####:    #####: 3926:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[1]);
    #####:    #####: 3927:      if (const_offset) {
    #####:    #####: 3928:         offset_reg = brw_imm_ud(const_offset->u32[0]);
        -:        -: 3929:      } else {
    #####:    #####: 3930:         offset_reg = get_nir_src(instr->src[1]);
        -:        -: 3931:      }
        -:        -: 3932:
        -:        -: 3933:      /* Read the vector */
    #####:    #####: 3934:      do_untyped_vector_read(bld, dest, surf_index, offset_reg,
    #####:    #####: 3935:                             instr->num_components);
        -:        -: 3936:
    #####:    #####: 3937:      break;
        -:        -: 3938:   }
        -:        -: 3939:
        -:        -: 3940:   case nir_intrinsic_store_ssbo: {
    #####:    #####: 3941:      assert(devinfo->gen >= 7);
        -:        -: 3942:
    #####:    #####: 3943:      if (stage == MESA_SHADER_FRAGMENT)
    #####:    #####: 3944:         brw_wm_prog_data(prog_data)->has_side_effects = true;
        -:        -: 3945:
        -:        -: 3946:      /* Block index */
    #####:    #####: 3947:      fs_reg surf_index;
        -:        -: 3948:      nir_const_value *const_uniform_block =
    #####:    #####: 3949:         nir_src_as_const_value(instr->src[1]);
    #####:    #####: 3950:      if (const_uniform_block) {
    #####:    #####: 3951:         unsigned index = stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 3952:                          const_uniform_block->u32[0];
    #####:    #####: 3953:         surf_index = brw_imm_ud(index);
    #####:    #####: 3954:         brw_mark_surface_used(prog_data, index);
        -:        -: 3955:      } else {
    #####:    #####: 3956:         surf_index = vgrf(glsl_type::uint_type);
    #####:    #####: 3957:         bld.ADD(surf_index, get_nir_src(instr->src[1]),
    #####:    #####: 3958:                  brw_imm_ud(stage_prog_data->binding_table.ssbo_start));
        -:        -: 3959:
    #####:    #####: 3960:         brw_mark_surface_used(prog_data,
    #####:    #####: 3961:                               stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 3962:                               nir->info->num_ssbos - 1);
        -:        -: 3963:      }
        -:        -: 3964:
        -:        -: 3965:      /* Value */
    #####:    #####: 3966:      fs_reg val_reg = get_nir_src(instr->src[0]);
        -:        -: 3967:
        -:        -: 3968:      /* Writemask */
    #####:    #####: 3969:      unsigned writemask = instr->const_index[0];
        -:        -: 3970:
        -:        -: 3971:      /* get_nir_src() retypes to integer. Be wary of 64-bit types though
        -:        -: 3972:       * since the untyped writes below operate in units of 32-bits, which
        -:        -: 3973:       * means that we need to write twice as many components each time.
        -:        -: 3974:       * Also, we have to suffle 64-bit data to be in the appropriate layout
        -:        -: 3975:       * expected by our 32-bit write messages.
        -:        -: 3976:       */
    #####:    #####: 3977:      unsigned type_size = 4;
    #####:    #####: 3978:      unsigned bit_size = instr->src[0].is_ssa ?
    #####:    #####: 3979:         instr->src[0].ssa->bit_size : instr->src[0].reg.reg->bit_size;
    #####:    #####: 3980:      if (bit_size == 64) {
    #####:    #####: 3981:         type_size = 8;
        -:        -: 3982:         fs_reg tmp =
    #####:    #####: 3983:           fs_reg(VGRF, alloc.allocate(alloc.sizes[val_reg.nr]), val_reg.type);
    #####:    #####: 3984:         shuffle_64bit_data_for_32bit_write(bld,
    #####:    #####: 3985:            retype(tmp, BRW_REGISTER_TYPE_F),
    #####:    #####: 3986:            retype(val_reg, BRW_REGISTER_TYPE_DF),
    #####:    #####: 3987:            instr->num_components);
    #####:    #####: 3988:         val_reg = tmp;
        -:        -: 3989:      }
        -:        -: 3990:
    #####:    #####: 3991:      unsigned type_slots = type_size / 4;
        -:        -: 3992:
        -:        -: 3993:      /* Combine groups of consecutive enabled channels in one write
        -:        -: 3994:       * message. We use ffs to find the first enabled channel and then ffs on
        -:        -: 3995:       * the bit-inverse, down-shifted writemask to determine the length of
        -:        -: 3996:       * the block of enabled bits.
        -:        -: 3997:       */
    #####:    #####: 3998:      while (writemask) {
    #####:    #####: 3999:         unsigned first_component = ffs(writemask) - 1;
    #####:    #####: 4000:         unsigned length = ffs(~(writemask >> first_component)) - 1;
        -:        -: 4001:
        -:        -: 4002:         /* We can't write more than 2 64-bit components at once. Limit the
        -:        -: 4003:          * length of the write to what we can do and let the next iteration
        -:        -: 4004:          * handle the rest
        -:        -: 4005:          */
    #####:    #####: 4006:         if (type_size > 4)
    #####:    #####: 4007:            length = MIN2(2, length);
        -:        -: 4008:
    #####:    #####: 4009:         fs_reg offset_reg;
    #####:    #####: 4010:         nir_const_value *const_offset = nir_src_as_const_value(instr->src[2]);
    #####:    #####: 4011:         if (const_offset) {
    #####:    #####: 4012:            offset_reg = brw_imm_ud(const_offset->u32[0] +
    #####:    #####: 4013:                                    type_size * first_component);
        -:        -: 4014:         } else {
    #####:    #####: 4015:            offset_reg = vgrf(glsl_type::uint_type);
    #####:    #####: 4016:            bld.ADD(offset_reg,
    #####:    #####: 4017:                    retype(get_nir_src(instr->src[2]), BRW_REGISTER_TYPE_UD),
    #####:    #####: 4018:                    brw_imm_ud(type_size * first_component));
        -:        -: 4019:         }
        -:        -: 4020:
        -:        -: 4021:
    #####:    #####: 4022:         emit_untyped_write(bld, surf_index, offset_reg,
    #####:    #####: 4023:                            offset(val_reg, bld, first_component * type_slots),
        -:        -: 4024:                            1 /* dims */, length * type_slots,
    #####:    #####: 4025:                            BRW_PREDICATE_NONE);
        -:        -: 4026:
        -:        -: 4027:         /* Clear the bits in the writemask that we just wrote, then try
        -:        -: 4028:          * again to see if more channels are left.
        -:        -: 4029:          */
    #####:    #####: 4030:         writemask &= (15 << (first_component + length));
        -:        -: 4031:      }
    #####:    #####: 4032:      break;
        -:        -: 4033:   }
        -:        -: 4034:
        -:        -: 4035:   case nir_intrinsic_store_output: {
    #####:    #####: 4036:      fs_reg src = get_nir_src(instr->src[0]);
        -:        -: 4037:
    #####:    #####: 4038:      nir_const_value *const_offset = nir_src_as_const_value(instr->src[1]);
    #####:    #####: 4039:      assert(const_offset && "Indirect output stores not allowed");
    #####:    #####: 4040:      fs_reg new_dest = retype(offset(outputs[instr->const_index[0]], bld,
    #####:    #####: 4041:                                      4 * const_offset->u32[0]), src.type);
        -:        -: 4042:
    #####:    #####: 4043:      unsigned num_components = instr->num_components;
    #####:    #####: 4044:      unsigned first_component = nir_intrinsic_component(instr);
    #####:    #####: 4045:      unsigned bit_size = instr->src[0].is_ssa ?
    #####:    #####: 4046:         instr->src[0].ssa->bit_size : instr->src[0].reg.reg->bit_size;
    #####:    #####: 4047:      if (bit_size == 64) {
        -:        -: 4048:         fs_reg tmp =
    #####:    #####: 4049:            fs_reg(VGRF, alloc.allocate(2 * num_components),
    #####:    #####: 4050:                   BRW_REGISTER_TYPE_F);
        -:        -: 4051:         shuffle_64bit_data_for_32bit_write(
    #####:    #####: 4052:            bld, tmp, retype(src, BRW_REGISTER_TYPE_DF), num_components);
    #####:    #####: 4053:         src = retype(tmp, src.type);
    #####:    #####: 4054:         num_components *= 2;
        -:        -: 4055:      }
        -:        -: 4056:
    #####:    #####: 4057:      for (unsigned j = 0; j < num_components; j++) {
    #####:    #####: 4058:         bld.MOV(offset(new_dest, bld, j + first_component),
    #####:    #####: 4059:                 offset(src, bld, j));
        -:        -: 4060:      }
    #####:    #####: 4061:      break;
        -:        -: 4062:   }
        -:        -: 4063:
        -:        -: 4064:   case nir_intrinsic_ssbo_atomic_add:
    #####:    #####: 4065:      nir_emit_ssbo_atomic(bld, BRW_AOP_ADD, instr);
    #####:    #####: 4066:      break;
        -:        -: 4067:   case nir_intrinsic_ssbo_atomic_imin:
    #####:    #####: 4068:      nir_emit_ssbo_atomic(bld, BRW_AOP_IMIN, instr);
    #####:    #####: 4069:      break;
        -:        -: 4070:   case nir_intrinsic_ssbo_atomic_umin:
    #####:    #####: 4071:      nir_emit_ssbo_atomic(bld, BRW_AOP_UMIN, instr);
    #####:    #####: 4072:      break;
        -:        -: 4073:   case nir_intrinsic_ssbo_atomic_imax:
    #####:    #####: 4074:      nir_emit_ssbo_atomic(bld, BRW_AOP_IMAX, instr);
    #####:    #####: 4075:      break;
        -:        -: 4076:   case nir_intrinsic_ssbo_atomic_umax:
    #####:    #####: 4077:      nir_emit_ssbo_atomic(bld, BRW_AOP_UMAX, instr);
    #####:    #####: 4078:      break;
        -:        -: 4079:   case nir_intrinsic_ssbo_atomic_and:
    #####:    #####: 4080:      nir_emit_ssbo_atomic(bld, BRW_AOP_AND, instr);
    #####:    #####: 4081:      break;
        -:        -: 4082:   case nir_intrinsic_ssbo_atomic_or:
    #####:    #####: 4083:      nir_emit_ssbo_atomic(bld, BRW_AOP_OR, instr);
    #####:    #####: 4084:      break;
        -:        -: 4085:   case nir_intrinsic_ssbo_atomic_xor:
    #####:    #####: 4086:      nir_emit_ssbo_atomic(bld, BRW_AOP_XOR, instr);
    #####:    #####: 4087:      break;
        -:        -: 4088:   case nir_intrinsic_ssbo_atomic_exchange:
    #####:    #####: 4089:      nir_emit_ssbo_atomic(bld, BRW_AOP_MOV, instr);
    #####:    #####: 4090:      break;
        -:        -: 4091:   case nir_intrinsic_ssbo_atomic_comp_swap:
    #####:    #####: 4092:      nir_emit_ssbo_atomic(bld, BRW_AOP_CMPWR, instr);
    #####:    #####: 4093:      break;
        -:        -: 4094:
        -:        -: 4095:   case nir_intrinsic_get_buffer_size: {
    #####:    #####: 4096:      nir_const_value *const_uniform_block = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 4097:      unsigned ssbo_index = const_uniform_block ? const_uniform_block->u32[0] : 0;
        -:        -: 4098:
        -:        -: 4099:      /* A resinfo's sampler message is used to get the buffer size.  The
        -:        -: 4100:       * SIMD8's writeback message consists of four registers and SIMD16's
        -:        -: 4101:       * writeback message consists of 8 destination registers (two per each
        -:        -: 4102:       * component).  Because we are only interested on the first channel of
        -:        -: 4103:       * the first returned component, where resinfo returns the buffer size
        -:        -: 4104:       * for SURFTYPE_BUFFER, we can just use the SIMD8 variant regardless of
        -:        -: 4105:       * the dispatch width.
        -:        -: 4106:       */
    #####:    #####: 4107:      const fs_builder ubld = bld.exec_all().group(8, 0);
    #####:    #####: 4108:      fs_reg src_payload = ubld.vgrf(BRW_REGISTER_TYPE_UD);
    #####:    #####: 4109:      fs_reg ret_payload = ubld.vgrf(BRW_REGISTER_TYPE_UD, 4);
        -:        -: 4110:
        -:        -: 4111:      /* Set LOD = 0 */
    #####:    #####: 4112:      ubld.MOV(src_payload, brw_imm_d(0));
        -:        -: 4113:
    #####:    #####: 4114:      const unsigned index = prog_data->binding_table.ssbo_start + ssbo_index;
    #####:    #####: 4115:      fs_inst *inst = ubld.emit(FS_OPCODE_GET_BUFFER_SIZE, ret_payload,
    #####:    #####: 4116:                                src_payload, brw_imm_ud(index));
    #####:    #####: 4117:      inst->header_size = 0;
    #####:    #####: 4118:      inst->mlen = 1;
    #####:    #####: 4119:      inst->size_written = 4 * REG_SIZE;
        -:        -: 4120:
    #####:    #####: 4121:      bld.MOV(retype(dest, ret_payload.type), component(ret_payload, 0));
    #####:    #####: 4122:      brw_mark_surface_used(prog_data, index);
    #####:    #####: 4123:      break;
        -:        -: 4124:   }
        -:        -: 4125:
        -:        -: 4126:   case nir_intrinsic_load_channel_num: {
    #####:    #####: 4127:      fs_reg tmp = bld.vgrf(BRW_REGISTER_TYPE_UW);
    #####:    #####: 4128:      dest = retype(dest, BRW_REGISTER_TYPE_UD);
    #####:    #####: 4129:      const fs_builder allbld8 = bld.group(8, 0).exec_all();
    #####:    #####: 4130:      allbld8.MOV(tmp, brw_imm_v(0x76543210));
    #####:    #####: 4131:      if (dispatch_width > 8)
    #####:    #####: 4132:         allbld8.ADD(byte_offset(tmp, 16), tmp, brw_imm_uw(8u));
    #####:    #####: 4133:      if (dispatch_width > 16) {
    #####:    #####: 4134:         const fs_builder allbld16 = bld.group(16, 0).exec_all();
    #####:    #####: 4135:         allbld16.ADD(byte_offset(tmp, 32), tmp, brw_imm_uw(16u));
        -:        -: 4136:      }
    #####:    #####: 4137:      bld.MOV(dest, tmp);
    #####:    #####: 4138:      break;
        -:        -: 4139:   }
        -:        -: 4140:
        -:        -: 4141:   default:
    #####:    #####: 4142:      unreachable("unknown intrinsic");
        -:        -: 4143:   }
       18:       18: 4144:}
        -:        -: 4145:
        -:        -: 4146:void
    #####:    #####: 4147:fs_visitor::nir_emit_ssbo_atomic(const fs_builder &bld,
        -:        -: 4148:                                 int op, nir_intrinsic_instr *instr)
        -:        -: 4149:{
    #####:    #####: 4150:   if (stage == MESA_SHADER_FRAGMENT)
    #####:    #####: 4151:      brw_wm_prog_data(prog_data)->has_side_effects = true;
        -:        -: 4152:
    #####:    #####: 4153:   fs_reg dest;
    #####:    #####: 4154:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 4155:      dest = get_nir_dest(instr->dest);
        -:        -: 4156:
    #####:    #####: 4157:   fs_reg surface;
    #####:    #####: 4158:   nir_const_value *const_surface = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 4159:   if (const_surface) {
    #####:    #####: 4160:      unsigned surf_index = stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 4161:                            const_surface->u32[0];
    #####:    #####: 4162:      surface = brw_imm_ud(surf_index);
    #####:    #####: 4163:      brw_mark_surface_used(prog_data, surf_index);
        -:        -: 4164:   } else {
    #####:    #####: 4165:      surface = vgrf(glsl_type::uint_type);
    #####:    #####: 4166:      bld.ADD(surface, get_nir_src(instr->src[0]),
    #####:    #####: 4167:              brw_imm_ud(stage_prog_data->binding_table.ssbo_start));
        -:        -: 4168:
        -:        -: 4169:      /* Assume this may touch any SSBO. This is the same we do for other
        -:        -: 4170:       * UBO/SSBO accesses with non-constant surface.
        -:        -: 4171:       */
    #####:    #####: 4172:      brw_mark_surface_used(prog_data,
    #####:    #####: 4173:                            stage_prog_data->binding_table.ssbo_start +
    #####:    #####: 4174:                            nir->info->num_ssbos - 1);
        -:        -: 4175:   }
        -:        -: 4176:
    #####:    #####: 4177:   fs_reg offset = get_nir_src(instr->src[1]);
    #####:    #####: 4178:   fs_reg data1 = get_nir_src(instr->src[2]);
    #####:    #####: 4179:   fs_reg data2;
    #####:    #####: 4180:   if (op == BRW_AOP_CMPWR)
    #####:    #####: 4181:      data2 = get_nir_src(instr->src[3]);
        -:        -: 4182:
        -:        -: 4183:   /* Emit the actual atomic operation */
        -:        -: 4184:
        -:        -: 4185:   fs_reg atomic_result = emit_untyped_atomic(bld, surface, offset,
        -:        -: 4186:                                              data1, data2,
        -:        -: 4187:                                              1 /* dims */, 1 /* rsize */,
        -:        -: 4188:                                              op,
    #####:    #####: 4189:                                              BRW_PREDICATE_NONE);
    #####:    #####: 4190:   dest.type = atomic_result.type;
    #####:    #####: 4191:   bld.MOV(dest, atomic_result);
    #####:    #####: 4192:}
        -:        -: 4193:
        -:        -: 4194:void
    #####:    #####: 4195:fs_visitor::nir_emit_shared_atomic(const fs_builder &bld,
        -:        -: 4196:                                   int op, nir_intrinsic_instr *instr)
        -:        -: 4197:{
    #####:    #####: 4198:   fs_reg dest;
    #####:    #####: 4199:   if (nir_intrinsic_infos[instr->intrinsic].has_dest)
    #####:    #####: 4200:      dest = get_nir_dest(instr->dest);
        -:        -: 4201:
    #####:    #####: 4202:   fs_reg surface = brw_imm_ud(GEN7_BTI_SLM);
    #####:    #####: 4203:   fs_reg offset;
    #####:    #####: 4204:   fs_reg data1 = get_nir_src(instr->src[1]);
    #####:    #####: 4205:   fs_reg data2;
    #####:    #####: 4206:   if (op == BRW_AOP_CMPWR)
    #####:    #####: 4207:      data2 = get_nir_src(instr->src[2]);
        -:        -: 4208:
        -:        -: 4209:   /* Get the offset */
    #####:    #####: 4210:   nir_const_value *const_offset = nir_src_as_const_value(instr->src[0]);
    #####:    #####: 4211:   if (const_offset) {
    #####:    #####: 4212:      offset = brw_imm_ud(instr->const_index[0] + const_offset->u32[0]);
        -:        -: 4213:   } else {
    #####:    #####: 4214:      offset = vgrf(glsl_type::uint_type);
    #####:    #####: 4215:      bld.ADD(offset,
    #####:    #####: 4216:	      retype(get_nir_src(instr->src[0]), BRW_REGISTER_TYPE_UD),
    #####:    #####: 4217:	      brw_imm_ud(instr->const_index[0]));
        -:        -: 4218:   }
        -:        -: 4219:
        -:        -: 4220:   /* Emit the actual atomic operation operation */
        -:        -: 4221:
        -:        -: 4222:   fs_reg atomic_result = emit_untyped_atomic(bld, surface, offset,
        -:        -: 4223:                                              data1, data2,
        -:        -: 4224:                                              1 /* dims */, 1 /* rsize */,
        -:        -: 4225:                                              op,
    #####:    #####: 4226:                                              BRW_PREDICATE_NONE);
    #####:    #####: 4227:   dest.type = atomic_result.type;
    #####:    #####: 4228:   bld.MOV(dest, atomic_result);
    #####:    #####: 4229:}
        -:        -: 4230:
        -:        -: 4231:void
    #####:    #####: 4232:fs_visitor::nir_emit_texture(const fs_builder &bld, nir_tex_instr *instr)
        -:        -: 4233:{
    #####:    #####: 4234:   unsigned texture = instr->texture_index;
    #####:    #####: 4235:   unsigned sampler = instr->sampler_index;
        -:        -: 4236:
    #####:    #####: 4237:   fs_reg srcs[TEX_LOGICAL_NUM_SRCS];
        -:        -: 4238:
    #####:    #####: 4239:   srcs[TEX_LOGICAL_SRC_SURFACE] = brw_imm_ud(texture);
    #####:    #####: 4240:   srcs[TEX_LOGICAL_SRC_SAMPLER] = brw_imm_ud(sampler);
        -:        -: 4241:
    #####:    #####: 4242:   int lod_components = 0;
        -:        -: 4243:
        -:        -: 4244:   /* The hardware requires a LOD for buffer textures */
    #####:    #####: 4245:   if (instr->sampler_dim == GLSL_SAMPLER_DIM_BUF)
    #####:    #####: 4246:      srcs[TEX_LOGICAL_SRC_LOD] = brw_imm_d(0);
        -:        -: 4247:
    #####:    #####: 4248:   uint32_t header_bits = 0;
    #####:    #####: 4249:   for (unsigned i = 0; i < instr->num_srcs; i++) {
    #####:    #####: 4250:      fs_reg src = get_nir_src(instr->src[i].src);
    #####:    #####: 4251:      switch (instr->src[i].src_type) {
        -:        -: 4252:      case nir_tex_src_bias:
        -:        -: 4253:         srcs[TEX_LOGICAL_SRC_LOD] =
    #####:    #####: 4254:            retype(get_nir_src_imm(instr->src[i].src), BRW_REGISTER_TYPE_F);
    #####:    #####: 4255:         break;
        -:        -: 4256:      case nir_tex_src_comparator:
    #####:    #####: 4257:         srcs[TEX_LOGICAL_SRC_SHADOW_C] = retype(src, BRW_REGISTER_TYPE_F);
    #####:    #####: 4258:         break;
        -:        -: 4259:      case nir_tex_src_coord:
    #####:    #####: 4260:         switch (instr->op) {
        -:        -: 4261:         case nir_texop_txf:
        -:        -: 4262:         case nir_texop_txf_ms:
        -:        -: 4263:         case nir_texop_txf_ms_mcs:
        -:        -: 4264:         case nir_texop_samples_identical:
    #####:    #####: 4265:            srcs[TEX_LOGICAL_SRC_COORDINATE] = retype(src, BRW_REGISTER_TYPE_D);
    #####:    #####: 4266:            break;
        -:        -: 4267:         default:
    #####:    #####: 4268:            srcs[TEX_LOGICAL_SRC_COORDINATE] = retype(src, BRW_REGISTER_TYPE_F);
    #####:    #####: 4269:            break;
        -:        -: 4270:         }
    #####:    #####: 4271:         break;
        -:        -: 4272:      case nir_tex_src_ddx:
    #####:    #####: 4273:         srcs[TEX_LOGICAL_SRC_LOD] = retype(src, BRW_REGISTER_TYPE_F);
    #####:    #####: 4274:         lod_components = nir_tex_instr_src_size(instr, i);
    #####:    #####: 4275:         break;
        -:        -: 4276:      case nir_tex_src_ddy:
    #####:    #####: 4277:         srcs[TEX_LOGICAL_SRC_LOD2] = retype(src, BRW_REGISTER_TYPE_F);
    #####:    #####: 4278:         break;
        -:        -: 4279:      case nir_tex_src_lod:
    #####:    #####: 4280:         switch (instr->op) {
        -:        -: 4281:         case nir_texop_txs:
        -:        -: 4282:            srcs[TEX_LOGICAL_SRC_LOD] =
    #####:    #####: 4283:               retype(get_nir_src_imm(instr->src[i].src), BRW_REGISTER_TYPE_UD);
    #####:    #####: 4284:            break;
        -:        -: 4285:         case nir_texop_txf:
        -:        -: 4286:            srcs[TEX_LOGICAL_SRC_LOD] =
    #####:    #####: 4287:               retype(get_nir_src_imm(instr->src[i].src), BRW_REGISTER_TYPE_D);
    #####:    #####: 4288:            break;
        -:        -: 4289:         default:
        -:        -: 4290:            srcs[TEX_LOGICAL_SRC_LOD] =
    #####:    #####: 4291:               retype(get_nir_src_imm(instr->src[i].src), BRW_REGISTER_TYPE_F);
    #####:    #####: 4292:            break;
        -:        -: 4293:         }
    #####:    #####: 4294:         break;
        -:        -: 4295:      case nir_tex_src_ms_index:
    #####:    #####: 4296:         srcs[TEX_LOGICAL_SRC_SAMPLE_INDEX] = retype(src, BRW_REGISTER_TYPE_UD);
    #####:    #####: 4297:         break;
        -:        -: 4298:
        -:        -: 4299:      case nir_tex_src_offset: {
        -:        -: 4300:         nir_const_value *const_offset =
    #####:    #####: 4301:            nir_src_as_const_value(instr->src[i].src);
    #####:    #####: 4302:         unsigned offset_bits = 0;
    #####:    #####: 4303:         if (const_offset &&
    #####:    #####: 4304:             brw_texture_offset(const_offset->i32,
        -:        -: 4305:                                nir_tex_instr_src_size(instr, i),
        -:        -: 4306:                                &offset_bits)) {
    #####:    #####: 4307:            header_bits |= offset_bits;
        -:        -: 4308:         } else {
        -:        -: 4309:            srcs[TEX_LOGICAL_SRC_TG4_OFFSET] =
    #####:    #####: 4310:               retype(src, BRW_REGISTER_TYPE_D);
        -:        -: 4311:         }
    #####:    #####: 4312:         break;
        -:        -: 4313:      }
        -:        -: 4314:
        -:        -: 4315:      case nir_tex_src_projector:
    #####:    #####: 4316:         unreachable("should be lowered");
        -:        -: 4317:
        -:        -: 4318:      case nir_tex_src_texture_offset: {
        -:        -: 4319:         /* Figure out the highest possible texture index and mark it as used */
    #####:    #####: 4320:         uint32_t max_used = texture + instr->texture_array_size - 1;
    #####:    #####: 4321:         if (instr->op == nir_texop_tg4 && devinfo->gen < 8) {
    #####:    #####: 4322:            max_used += stage_prog_data->binding_table.gather_texture_start;
        -:        -: 4323:         } else {
    #####:    #####: 4324:            max_used += stage_prog_data->binding_table.texture_start;
        -:        -: 4325:         }
    #####:    #####: 4326:         brw_mark_surface_used(prog_data, max_used);
        -:        -: 4327:
        -:        -: 4328:         /* Emit code to evaluate the actual indexing expression */
    #####:    #####: 4329:         fs_reg tmp = vgrf(glsl_type::uint_type);
    #####:    #####: 4330:         bld.ADD(tmp, src, brw_imm_ud(texture));
    #####:    #####: 4331:         srcs[TEX_LOGICAL_SRC_SURFACE] = bld.emit_uniformize(tmp);
    #####:    #####: 4332:         break;
        -:        -: 4333:      }
        -:        -: 4334:
        -:        -: 4335:      case nir_tex_src_sampler_offset: {
        -:        -: 4336:         /* Emit code to evaluate the actual indexing expression */
    #####:    #####: 4337:         fs_reg tmp = vgrf(glsl_type::uint_type);
    #####:    #####: 4338:         bld.ADD(tmp, src, brw_imm_ud(sampler));
    #####:    #####: 4339:         srcs[TEX_LOGICAL_SRC_SAMPLER] = bld.emit_uniformize(tmp);
    #####:    #####: 4340:         break;
        -:        -: 4341:      }
        -:        -: 4342:
        -:        -: 4343:      case nir_tex_src_ms_mcs:
    #####:    #####: 4344:         assert(instr->op == nir_texop_txf_ms);
    #####:    #####: 4345:         srcs[TEX_LOGICAL_SRC_MCS] = retype(src, BRW_REGISTER_TYPE_D);
    #####:    #####: 4346:         break;
        -:        -: 4347:
        -:        -: 4348:      case nir_tex_src_plane: {
        -:        -: 4349:         nir_const_value *const_plane =
    #####:    #####: 4350:            nir_src_as_const_value(instr->src[i].src);
    #####:    #####: 4351:         const uint32_t plane = const_plane->u32[0];
        -:        -: 4352:         const uint32_t texture_index =
    #####:    #####: 4353:            instr->texture_index +
    #####:    #####: 4354:            stage_prog_data->binding_table.plane_start[plane] -
    #####:    #####: 4355:            stage_prog_data->binding_table.texture_start;
        -:        -: 4356:
    #####:    #####: 4357:         srcs[TEX_LOGICAL_SRC_SURFACE] = brw_imm_ud(texture_index);
    #####:    #####: 4358:         break;
        -:        -: 4359:      }
        -:        -: 4360:
        -:        -: 4361:      default:
    #####:    #####: 4362:         unreachable("unknown texture source");
        -:        -: 4363:      }
        -:        -: 4364:   }
        -:        -: 4365:
    #####:    #####: 4366:   if (srcs[TEX_LOGICAL_SRC_MCS].file == BAD_FILE &&
    #####:    #####: 4367:       (instr->op == nir_texop_txf_ms ||
    #####:    #####: 4368:        instr->op == nir_texop_samples_identical)) {
    #####:    #####: 4369:      if (devinfo->gen >= 7 &&
    #####:    #####: 4370:          key_tex->compressed_multisample_layout_mask & (1 << texture)) {
        -:        -: 4371:         srcs[TEX_LOGICAL_SRC_MCS] =
    #####:    #####: 4372:            emit_mcs_fetch(srcs[TEX_LOGICAL_SRC_COORDINATE],
        -:        -: 4373:                           instr->coord_components,
    #####:    #####: 4374:                           srcs[TEX_LOGICAL_SRC_SURFACE]);
        -:        -: 4375:      } else {
    #####:    #####: 4376:         srcs[TEX_LOGICAL_SRC_MCS] = brw_imm_ud(0u);
        -:        -: 4377:      }
        -:        -: 4378:   }
        -:        -: 4379:
    #####:    #####: 4380:   srcs[TEX_LOGICAL_SRC_COORD_COMPONENTS] = brw_imm_d(instr->coord_components);
    #####:    #####: 4381:   srcs[TEX_LOGICAL_SRC_GRAD_COMPONENTS] = brw_imm_d(lod_components);
        -:        -: 4382:
        -:        -: 4383:   enum opcode opcode;
    #####:    #####: 4384:   switch (instr->op) {
        -:        -: 4385:   case nir_texop_tex:
    #####:    #####: 4386:      opcode = (stage == MESA_SHADER_FRAGMENT ? SHADER_OPCODE_TEX_LOGICAL :
    #####:    #####: 4387:                SHADER_OPCODE_TXL_LOGICAL);
    #####:    #####: 4388:      break;
        -:        -: 4389:   case nir_texop_txb:
    #####:    #####: 4390:      opcode = FS_OPCODE_TXB_LOGICAL;
    #####:    #####: 4391:      break;
        -:        -: 4392:   case nir_texop_txl:
    #####:    #####: 4393:      opcode = SHADER_OPCODE_TXL_LOGICAL;
    #####:    #####: 4394:      break;
        -:        -: 4395:   case nir_texop_txd:
    #####:    #####: 4396:      opcode = SHADER_OPCODE_TXD_LOGICAL;
    #####:    #####: 4397:      break;
        -:        -: 4398:   case nir_texop_txf:
    #####:    #####: 4399:      opcode = SHADER_OPCODE_TXF_LOGICAL;
    #####:    #####: 4400:      break;
        -:        -: 4401:   case nir_texop_txf_ms:
    #####:    #####: 4402:      if ((key_tex->msaa_16 & (1 << sampler)))
    #####:    #####: 4403:         opcode = SHADER_OPCODE_TXF_CMS_W_LOGICAL;
        -:        -: 4404:      else
    #####:    #####: 4405:         opcode = SHADER_OPCODE_TXF_CMS_LOGICAL;
    #####:    #####: 4406:      break;
        -:        -: 4407:   case nir_texop_txf_ms_mcs:
    #####:    #####: 4408:      opcode = SHADER_OPCODE_TXF_MCS_LOGICAL;
    #####:    #####: 4409:      break;
        -:        -: 4410:   case nir_texop_query_levels:
        -:        -: 4411:   case nir_texop_txs:
    #####:    #####: 4412:      opcode = SHADER_OPCODE_TXS_LOGICAL;
    #####:    #####: 4413:      break;
        -:        -: 4414:   case nir_texop_lod:
    #####:    #####: 4415:      opcode = SHADER_OPCODE_LOD_LOGICAL;
    #####:    #####: 4416:      break;
        -:        -: 4417:   case nir_texop_tg4:
    #####:    #####: 4418:      if (srcs[TEX_LOGICAL_SRC_TG4_OFFSET].file != BAD_FILE)
    #####:    #####: 4419:         opcode = SHADER_OPCODE_TG4_OFFSET_LOGICAL;
        -:        -: 4420:      else
    #####:    #####: 4421:         opcode = SHADER_OPCODE_TG4_LOGICAL;
    #####:    #####: 4422:      break;
        -:        -: 4423:   case nir_texop_texture_samples:
    #####:    #####: 4424:      opcode = SHADER_OPCODE_SAMPLEINFO_LOGICAL;
    #####:    #####: 4425:      break;
        -:        -: 4426:   case nir_texop_samples_identical: {
    #####:    #####: 4427:      fs_reg dst = retype(get_nir_dest(instr->dest), BRW_REGISTER_TYPE_D);
        -:        -: 4428:
        -:        -: 4429:      /* If mcs is an immediate value, it means there is no MCS.  In that case
        -:        -: 4430:       * just return false.
        -:        -: 4431:       */
    #####:    #####: 4432:      if (srcs[TEX_LOGICAL_SRC_MCS].file == BRW_IMMEDIATE_VALUE) {
    #####:    #####: 4433:         bld.MOV(dst, brw_imm_ud(0u));
    #####:    #####: 4434:      } else if ((key_tex->msaa_16 & (1 << sampler))) {
    #####:    #####: 4435:         fs_reg tmp = vgrf(glsl_type::uint_type);
        -:        -: 4436:         bld.OR(tmp, srcs[TEX_LOGICAL_SRC_MCS],
    #####:    #####: 4437:                offset(srcs[TEX_LOGICAL_SRC_MCS], bld, 1));
    #####:    #####: 4438:         bld.CMP(dst, tmp, brw_imm_ud(0u), BRW_CONDITIONAL_EQ);
        -:        -: 4439:      } else {
    #####:    #####: 4440:         bld.CMP(dst, srcs[TEX_LOGICAL_SRC_MCS], brw_imm_ud(0u),
    #####:    #####: 4441:                 BRW_CONDITIONAL_EQ);
        -:        -: 4442:      }
    #####:    #####: 4443:      return;
        -:        -: 4444:   }
        -:        -: 4445:   default:
    #####:    #####: 4446:      unreachable("unknown texture opcode");
        -:        -: 4447:   }
        -:        -: 4448:
        -:        -: 4449:   /* TXS and TXL require a LOD but not everything we implement using those
        -:        -: 4450:    * two opcodes provides one.  Provide a default LOD of 0.
        -:        -: 4451:    */
    #####:    #####: 4452:   if ((opcode == SHADER_OPCODE_TXS_LOGICAL ||
    #####:    #####: 4453:        opcode == SHADER_OPCODE_TXL_LOGICAL) &&
    #####:    #####: 4454:       srcs[TEX_LOGICAL_SRC_LOD].file == BAD_FILE) {
    #####:    #####: 4455:      srcs[TEX_LOGICAL_SRC_LOD] = brw_imm_ud(0u);
        -:        -: 4456:   }
        -:        -: 4457:
    #####:    #####: 4458:   if (instr->op == nir_texop_tg4) {
    #####:    #####: 4459:      if (instr->component == 1 &&
    #####:    #####: 4460:          key_tex->gather_channel_quirk_mask & (1 << texture)) {
        -:        -: 4461:         /* gather4 sampler is broken for green channel on RG32F --
        -:        -: 4462:          * we must ask for blue instead.
        -:        -: 4463:          */
    #####:    #####: 4464:         header_bits |= 2 << 16;
        -:        -: 4465:      } else {
    #####:    #####: 4466:         header_bits |= instr->component << 16;
        -:        -: 4467:      }
        -:        -: 4468:   }
        -:        -: 4469:
    #####:    #####: 4470:   fs_reg dst = bld.vgrf(brw_type_for_nir_type(devinfo, instr->dest_type), 4);
    #####:    #####: 4471:   fs_inst *inst = bld.emit(opcode, dst, srcs, ARRAY_SIZE(srcs));
    #####:    #####: 4472:   inst->offset = header_bits;
        -:        -: 4473:
    #####:    #####: 4474:   const unsigned dest_size = nir_tex_instr_dest_size(instr);
    #####:    #####: 4475:   if (devinfo->gen >= 9 &&
    #####:    #####: 4476:       instr->op != nir_texop_tg4 && instr->op != nir_texop_query_levels) {
    #####:    #####: 4477:      unsigned write_mask = instr->dest.is_ssa ?
    #####:    #####: 4478:                            nir_ssa_def_components_read(&instr->dest.ssa):
    #####:    #####: 4479:                            (1 << dest_size) - 1;
    #####:    #####: 4480:      assert(write_mask != 0); /* dead code should have been eliminated */
    #####:    #####: 4481:      inst->size_written = util_last_bit(write_mask) *
    #####:    #####: 4482:                           inst->dst.component_size(inst->exec_size);
        -:        -: 4483:   } else {
    #####:    #####: 4484:      inst->size_written = 4 * inst->dst.component_size(inst->exec_size);
        -:        -: 4485:   }
        -:        -: 4486:
    #####:    #####: 4487:   if (srcs[TEX_LOGICAL_SRC_SHADOW_C].file != BAD_FILE)
    #####:    #####: 4488:      inst->shadow_compare = true;
        -:        -: 4489:
    #####:    #####: 4490:   if (instr->op == nir_texop_tg4 && devinfo->gen == 6)
    #####:    #####: 4491:      emit_gen6_gather_wa(key_tex->gen6_gather_wa[texture], dst);
        -:        -: 4492:
    #####:    #####: 4493:   fs_reg nir_dest[4];
    #####:    #####: 4494:   for (unsigned i = 0; i < dest_size; i++)
    #####:    #####: 4495:      nir_dest[i] = offset(dst, bld, i);
        -:        -: 4496:
    #####:    #####: 4497:   if (instr->op == nir_texop_query_levels) {
        -:        -: 4498:      /* # levels is in .w */
    #####:    #####: 4499:      nir_dest[0] = offset(dst, bld, 3);
    #####:    #####: 4500:   } else if (instr->op == nir_texop_txs &&
    #####:    #####: 4501:              dest_size >= 3 && devinfo->gen < 7) {
        -:        -: 4502:      /* Gen4-6 return 0 instead of 1 for single layer surfaces. */
    #####:    #####: 4503:      fs_reg depth = offset(dst, bld, 2);
    #####:    #####: 4504:      nir_dest[2] = vgrf(glsl_type::int_type);
    #####:    #####: 4505:      bld.emit_minmax(nir_dest[2], depth, brw_imm_d(1), BRW_CONDITIONAL_GE);
        -:        -: 4506:   }
        -:        -: 4507:
    #####:    #####: 4508:   bld.LOAD_PAYLOAD(get_nir_dest(instr->dest), nir_dest, dest_size, 0);
        -:        -: 4509:}
        -:        -: 4510:
        -:        -: 4511:void
        8:       16: 4512:fs_visitor::nir_emit_jump(const fs_builder &bld, nir_jump_instr *instr)
        -:        -: 4513:{
        8:       16: 4514:   switch (instr->type) {
        -:        -: 4515:   case nir_jump_break:
        8:       16: 4516:      bld.emit(BRW_OPCODE_BREAK);
        8:       16: 4517:      break;
        -:        -: 4518:   case nir_jump_continue:
    #####:    #####: 4519:      bld.emit(BRW_OPCODE_CONTINUE);
    #####:    #####: 4520:      break;
        -:        -: 4521:   case nir_jump_return:
        -:        -: 4522:   default:
    #####:    #####: 4523:      unreachable("unknown jump");
        -:        -: 4524:   }
        8:       16: 4525:}
        -:        -: 4526:
        -:        -: 4527:/**
        -:        -: 4528: * This helper takes the result of a load operation that reads 32-bit elements
        -:        -: 4529: * in this format:
        -:        -: 4530: *
        -:        -: 4531: * x x x x x x x x
        -:        -: 4532: * y y y y y y y y
        -:        -: 4533: * z z z z z z z z
        -:        -: 4534: * w w w w w w w w
        -:        -: 4535: *
        -:        -: 4536: * and shuffles the data to get this:
        -:        -: 4537: *
        -:        -: 4538: * x y x y x y x y
        -:        -: 4539: * x y x y x y x y
        -:        -: 4540: * z w z w z w z w
        -:        -: 4541: * z w z w z w z w
        -:        -: 4542: *
        -:        -: 4543: * Which is exactly what we want if the load is reading 64-bit components
        -:        -: 4544: * like doubles, where x represents the low 32-bit of the x double component
        -:        -: 4545: * and y represents the high 32-bit of the x double component (likewise with
        -:        -: 4546: * z and w for double component y). The parameter @components represents
        -:        -: 4547: * the number of 64-bit components present in @src. This would typically be
        -:        -: 4548: * 2 at most, since we can only fit 2 double elements in the result of a
        -:        -: 4549: * vec4 load.
        -:        -: 4550: *
        -:        -: 4551: * Notice that @dst and @src can be the same register.
        -:        -: 4552: */
        -:        -: 4553:void
    #####:    #####: 4554:shuffle_32bit_load_result_to_64bit_data(const fs_builder &bld,
        -:        -: 4555:                                        const fs_reg &dst,
        -:        -: 4556:                                        const fs_reg &src,
        -:        -: 4557:                                        uint32_t components)
        -:        -: 4558:{
    #####:    #####: 4559:   assert(type_sz(src.type) == 4);
    #####:    #####: 4560:   assert(type_sz(dst.type) == 8);
        -:        -: 4561:
        -:        -: 4562:   /* A temporary that we will use to shuffle the 32-bit data of each
        -:        -: 4563:    * component in the vector into valid 64-bit data. We can't write directly
        -:        -: 4564:    * to dst because dst can be (and would usually be) the same as src
        -:        -: 4565:    * and in that case the first MOV in the loop below would overwrite the
        -:        -: 4566:    * data read in the second MOV.
        -:        -: 4567:    */
    #####:    #####: 4568:   fs_reg tmp = bld.vgrf(dst.type);
        -:        -: 4569:
    #####:    #####: 4570:   for (unsigned i = 0; i < components; i++) {
    #####:    #####: 4571:      const fs_reg component_i = offset(src, bld, 2 * i);
        -:        -: 4572:
    #####:    #####: 4573:      bld.MOV(subscript(tmp, src.type, 0), component_i);
    #####:    #####: 4574:      bld.MOV(subscript(tmp, src.type, 1), offset(component_i, bld, 1));
        -:        -: 4575:
    #####:    #####: 4576:      bld.MOV(offset(dst, bld, i), tmp);
        -:        -: 4577:   }
    #####:    #####: 4578:}
        -:        -: 4579:
        -:        -: 4580:/**
        -:        -: 4581: * This helper does the inverse operation of
        -:        -: 4582: * SHUFFLE_32BIT_LOAD_RESULT_TO_64BIT_DATA.
        -:        -: 4583: *
        -:        -: 4584: * We need to do this when we are going to use untyped write messsages that
        -:        -: 4585: * operate with 32-bit components in order to arrange our 64-bit data to be
        -:        -: 4586: * in the expected layout.
        -:        -: 4587: *
        -:        -: 4588: * Notice that callers of this function, unlike in the case of the inverse
        -:        -: 4589: * operation, would typically need to call this with dst and src being
        -:        -: 4590: * different registers, since they would otherwise corrupt the original
        -:        -: 4591: * 64-bit data they are about to write. Because of this the function checks
        -:        -: 4592: * that the src and dst regions involved in the operation do not overlap.
        -:        -: 4593: */
        -:        -: 4594:void
    #####:    #####: 4595:shuffle_64bit_data_for_32bit_write(const fs_builder &bld,
        -:        -: 4596:                                   const fs_reg &dst,
        -:        -: 4597:                                   const fs_reg &src,
        -:        -: 4598:                                   uint32_t components)
        -:        -: 4599:{
    #####:    #####: 4600:   assert(type_sz(src.type) == 8);
    #####:    #####: 4601:   assert(type_sz(dst.type) == 4);
        -:        -: 4602:
    #####:    #####: 4603:   assert(!regions_overlap(
        -:        -: 4604:             dst, 2 * components * dst.component_size(bld.dispatch_width()),
    #####:    #####: 4605:             src, components * src.component_size(bld.dispatch_width())));
        -:        -: 4606:
    #####:    #####: 4607:   for (unsigned i = 0; i < components; i++) {
    #####:    #####: 4608:      const fs_reg component_i = offset(src, bld, i);
    #####:    #####: 4609:      bld.MOV(offset(dst, bld, 2 * i), subscript(component_i, dst.type, 0));
    #####:    #####: 4610:      bld.MOV(offset(dst, bld, 2 * i + 1), subscript(component_i, dst.type, 1));
        -:        -: 4611:   }
    #####:    #####: 4612:}
        -:        -: 4613:
        -:        -: 4614:fs_reg
    #####:    #####: 4615:setup_imm_df(const fs_builder &bld, double v)
        -:        -: 4616:{
    #####:    #####: 4617:   const struct gen_device_info *devinfo = bld.shader->devinfo;
    #####:    #####: 4618:   assert(devinfo->gen >= 7);
        -:        -: 4619:
    #####:    #####: 4620:   if (devinfo->gen >= 8)
    #####:    #####: 4621:      return brw_imm_df(v);
        -:        -: 4622:
        -:        -: 4623:   /* gen7.5 does not support DF immediates straighforward but the DIM
        -:        -: 4624:    * instruction allows to set the 64-bit immediate value.
        -:        -: 4625:    */
    #####:    #####: 4626:   if (devinfo->is_haswell) {
    #####:    #####: 4627:      const fs_builder ubld = bld.exec_all().group(1, 0);
    #####:    #####: 4628:      fs_reg dst = ubld.vgrf(BRW_REGISTER_TYPE_DF, 1);
    #####:    #####: 4629:      ubld.DIM(dst, brw_imm_df(v));
    #####:    #####: 4630:      return component(dst, 0);
        -:        -: 4631:   }
        -:        -: 4632:
        -:        -: 4633:   /* gen7 does not support DF immediates, so we generate a 64-bit constant by
        -:        -: 4634:    * writing the low 32-bit of the constant to suboffset 0 of a VGRF and
        -:        -: 4635:    * the high 32-bit to suboffset 4 and then applying a stride of 0.
        -:        -: 4636:    *
        -:        -: 4637:    * Alternatively, we could also produce a normal VGRF (without stride 0)
        -:        -: 4638:    * by writing to all the channels in the VGRF, however, that would hit the
        -:        -: 4639:    * gen7 bug where we have to split writes that span more than 1 register
        -:        -: 4640:    * into instructions with a width of 4 (otherwise the write to the second
        -:        -: 4641:    * register written runs into an execmask hardware bug) which isn't very
        -:        -: 4642:    * nice.
        -:        -: 4643:    */
        -:        -: 4644:   union {
        -:        -: 4645:      double d;
        -:        -: 4646:      struct {
        -:        -: 4647:         uint32_t i1;
        -:        -: 4648:         uint32_t i2;
        -:        -: 4649:      };
        -:        -: 4650:   } di;
        -:        -: 4651:
    #####:    #####: 4652:   di.d = v;
        -:        -: 4653:
    #####:    #####: 4654:   const fs_builder ubld = bld.exec_all().group(1, 0);
    #####:    #####: 4655:   const fs_reg tmp = ubld.vgrf(BRW_REGISTER_TYPE_UD, 2);
    #####:    #####: 4656:   ubld.MOV(tmp, brw_imm_ud(di.i1));
    #####:    #####: 4657:   ubld.MOV(horiz_offset(tmp, 1), brw_imm_ud(di.i2));
        -:        -: 4658:
    #####:    #####: 4659:   return component(retype(tmp, BRW_REGISTER_TYPE_DF), 0);
        3:        3: 4660:}

src/intel/brw_fs_reg_allocate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_reg_allocate.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_reg_allocate.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_reg_allocate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "brw_eu.h"
        -:        -:   29:#include "brw_fs.h"
        -:        -:   30:#include "brw_cfg.h"
        -:        -:   31:#include "util/register_allocate.h"
        -:        -:   32:
        -:        -:   33:using namespace brw;
        -:        -:   34:
        -:        -:   35:static void
      460:      484:   36:assign_reg(unsigned *reg_hw_locations, fs_reg *reg)
        -:        -:   37:{
      460:      484:   38:   if (reg->file == VGRF) {
      263:      267:   39:      reg->nr = reg_hw_locations[reg->nr] + reg->offset / REG_SIZE;
      263:      267:   40:      reg->offset %= REG_SIZE;
        -:        -:   41:   }
      460:      484:   42:}
        -:        -:   43:
        -:        -:   44:void
    #####:    #####:   45:fs_visitor::assign_regs_trivial()
        -:        -:   46:{
    #####:    #####:   47:   unsigned hw_reg_mapping[this->alloc.count + 1];
        -:        -:   48:   unsigned i;
    #####:    #####:   49:   int reg_width = dispatch_width / 8;
        -:        -:   50:
        -:        -:   51:   /* Note that compressed instructions require alignment to 2 registers. */
    #####:    #####:   52:   hw_reg_mapping[0] = ALIGN(this->first_non_payload_grf, reg_width);
    #####:    #####:   53:   for (i = 1; i <= this->alloc.count; i++) {
    #####:    #####:   54:      hw_reg_mapping[i] = (hw_reg_mapping[i - 1] +
    #####:    #####:   55:			   this->alloc.sizes[i - 1]);
        -:        -:   56:   }
    #####:    #####:   57:   this->grf_used = hw_reg_mapping[this->alloc.count];
        -:        -:   58:
    #####:    #####:   59:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####:   60:      assign_reg(hw_reg_mapping, &inst->dst);
    #####:    #####:   61:      for (i = 0; i < inst->sources; i++) {
    #####:    #####:   62:         assign_reg(hw_reg_mapping, &inst->src[i]);
        -:        -:   63:      }
        -:        -:   64:   }
        -:        -:   65:
    #####:    #####:   66:   if (this->grf_used >= max_grf) {
    #####:    #####:   67:      fail("Ran out of regs on trivial allocator (%d/%d)\n",
    #####:    #####:   68:	   this->grf_used, max_grf);
        -:        -:   69:   } else {
    #####:    #####:   70:      this->alloc.count = this->grf_used;
    #####:    #####:   71:   }
        -:        -:   72:
    #####:    #####:   73:}
        -:        -:   74:
        -:        -:   75:static void
        3:        3:   76:brw_alloc_reg_set(struct brw_compiler *compiler, int dispatch_width)
        -:        -:   77:{
        3:        3:   78:   const struct gen_device_info *devinfo = compiler->devinfo;
        3:        3:   79:   int base_reg_count = BRW_MAX_GRF;
        3:        3:   80:   const int index = _mesa_logbase2(dispatch_width / 8);
        -:        -:   81:
        3:        3:   82:   if (dispatch_width > 8 && devinfo->gen >= 7) {
        -:        -:   83:      /* For IVB+, we don't need the PLN hacks or the even-reg alignment in
        -:        -:   84:       * SIMD16.  Therefore, we can use the exact same register sets for
        -:        -:   85:       * SIMD16 as we do for SIMD8 and we don't need to recalculate them.
        -:        -:   86:       */
    #####:    #####:   87:      compiler->fs_reg_sets[index] = compiler->fs_reg_sets[0];
    #####:    #####:   88:      return;
        -:        -:   89:   }
        -:        -:   90:
        -:        -:   91:   /* The registers used to make up almost all values handled in the compiler
        -:        -:   92:    * are a scalar value occupying a single register (or 2 registers in the
        -:        -:   93:    * case of SIMD16, which is handled by dividing base_reg_count by 2 and
        -:        -:   94:    * multiplying allocated register numbers by 2).  Things that were
        -:        -:   95:    * aggregates of scalar values at the GLSL level were split to scalar
        -:        -:   96:    * values by split_virtual_grfs().
        -:        -:   97:    *
        -:        -:   98:    * However, texture SEND messages return a series of contiguous registers
        -:        -:   99:    * to write into.  We currently always ask for 4 registers, but we may
        -:        -:  100:    * convert that to use less some day.
        -:        -:  101:    *
        -:        -:  102:    * Additionally, on gen5 we need aligned pairs of registers for the PLN
        -:        -:  103:    * instruction, and on gen4 we need 8 contiguous regs for workaround simd16
        -:        -:  104:    * texturing.
        -:        -:  105:    */
        3:        3:  106:   const int class_count = MAX_VGRF_SIZE;
        -:        -:  107:   int class_sizes[MAX_VGRF_SIZE];
       51:       51:  108:   for (unsigned i = 0; i < MAX_VGRF_SIZE; i++)
       48:       48:  109:      class_sizes[i] = i + 1;
        -:        -:  110:
        3:        3:  111:   memset(compiler->fs_reg_sets[index].class_to_ra_reg_range, 0,
        3:        3:  112:          sizeof(compiler->fs_reg_sets[index].class_to_ra_reg_range));
        3:        3:  113:   int *class_to_ra_reg_range = compiler->fs_reg_sets[index].class_to_ra_reg_range;
        -:        -:  114:
        -:        -:  115:   /* Compute the total number of registers across all classes. */
        3:        3:  116:   int ra_reg_count = 0;
       51:       51:  117:   for (int i = 0; i < class_count; i++) {
       48:       48:  118:      if (devinfo->gen <= 5 && dispatch_width >= 16) {
        -:        -:  119:         /* From the G45 PRM:
        -:        -:  120:          *
        -:        -:  121:          * In order to reduce the hardware complexity, the following
        -:        -:  122:          * rules and restrictions apply to the compressed instruction:
        -:        -:  123:          * ...
        -:        -:  124:          * * Operand Alignment Rule: With the exceptions listed below, a
        -:        -:  125:          *   source/destination operand in general should be aligned to
        -:        -:  126:          *   even 256-bit physical register with a region size equal to
        -:        -:  127:          *   two 256-bit physical register
        -:        -:  128:          */
    #####:    #####:  129:         ra_reg_count += (base_reg_count - (class_sizes[i] - 1)) / 2;
        -:        -:  130:      } else {
       48:       48:  131:         ra_reg_count += base_reg_count - (class_sizes[i] - 1);
        -:        -:  132:      }
        -:        -:  133:      /* Mark the last register. We'll fill in the beginnings later. */
       48:       48:  134:      class_to_ra_reg_range[class_sizes[i]] = ra_reg_count;
        -:        -:  135:   }
        -:        -:  136:
        -:        -:  137:   /* Fill out the rest of the range markers */
       51:       51:  138:   for (int i = 1; i < 17; ++i) {
       48:       48:  139:      if (class_to_ra_reg_range[i] == 0)
    #####:    #####:  140:         class_to_ra_reg_range[i] = class_to_ra_reg_range[i-1];
        -:        -:  141:   }
        -:        -:  142:
        3:        3:  143:   uint8_t *ra_reg_to_grf = ralloc_array(compiler, uint8_t, ra_reg_count);
        3:        3:  144:   struct ra_regs *regs = ra_alloc_reg_set(compiler, ra_reg_count, false);
        3:        3:  145:   if (devinfo->gen >= 6)
        3:        3:  146:      ra_set_allocate_round_robin(regs);
        3:        3:  147:   int *classes = ralloc_array(compiler, int, class_count);
        3:        3:  148:   int aligned_pairs_class = -1;
        -:        -:  149:
        -:        -:  150:   /* Allocate space for q values.  We allocate class_count + 1 because we
        -:        -:  151:    * want to leave room for the aligned pairs class if we have it. */
        3:        3:  152:   unsigned int **q_values = ralloc_array(compiler, unsigned int *,
        -:        -:  153:                                          class_count + 1);
       54:       54:  154:   for (int i = 0; i < class_count + 1; ++i)
       51:       51:  155:      q_values[i] = ralloc_array(q_values, unsigned int, class_count + 1);
        -:        -:  156:
        -:        -:  157:   /* Now, add the registers to their classes, and add the conflicts
        -:        -:  158:    * between them and the base GRF registers (and also each other).
        -:        -:  159:    */
        3:        3:  160:   int reg = 0;
        3:        3:  161:   int pairs_base_reg = 0;
        3:        3:  162:   int pairs_reg_count = 0;
       51:       51:  163:   for (int i = 0; i < class_count; i++) {
        -:        -:  164:      int class_reg_count;
       48:       48:  165:      if (devinfo->gen <= 5 && dispatch_width >= 16) {
    #####:    #####:  166:         class_reg_count = (base_reg_count - (class_sizes[i] - 1)) / 2;
        -:        -:  167:
        -:        -:  168:         /* See comment below.  The only difference here is that we are
        -:        -:  169:          * dealing with pairs of registers instead of single registers.
        -:        -:  170:          * Registers of odd sizes simply get rounded up. */
    #####:    #####:  171:         for (int j = 0; j < class_count; j++)
    #####:    #####:  172:            q_values[i][j] = (class_sizes[i] + 1) / 2 +
    #####:    #####:  173:                             (class_sizes[j] + 1) / 2 - 1;
        -:        -:  174:      } else {
       48:       48:  175:         class_reg_count = base_reg_count - (class_sizes[i] - 1);
        -:        -:  176:
        -:        -:  177:         /* From register_allocate.c:
        -:        -:  178:          *
        -:        -:  179:          * q(B,C) (indexed by C, B is this register class) in
        -:        -:  180:          * Runeson/Nyström paper.  This is "how many registers of B could
        -:        -:  181:          * the worst choice register from C conflict with".
        -:        -:  182:          *
        -:        -:  183:          * If we just let the register allocation algorithm compute these
        -:        -:  184:          * values, is extremely expensive.  However, since all of our
        -:        -:  185:          * registers are laid out, we can very easily compute them
        -:        -:  186:          * ourselves.  View the register from C as fixed starting at GRF n
        -:        -:  187:          * somwhere in the middle, and the register from B as sliding back
        -:        -:  188:          * and forth.  Then the first register to conflict from B is the
        -:        -:  189:          * one starting at n - class_size[B] + 1 and the last register to
        -:        -:  190:          * conflict will start at n + class_size[B] - 1.  Therefore, the
        -:        -:  191:          * number of conflicts from B is class_size[B] + class_size[C] - 1.
        -:        -:  192:          *
        -:        -:  193:          *   +-+-+-+-+-+-+     +-+-+-+-+-+-+
        -:        -:  194:          * B | | | | | |n| --> | | | | | | |
        -:        -:  195:          *   +-+-+-+-+-+-+     +-+-+-+-+-+-+
        -:        -:  196:          *             +-+-+-+-+-+
        -:        -:  197:          * C           |n| | | | |
        -:        -:  198:          *             +-+-+-+-+-+
        -:        -:  199:          */
      816:      816:  200:         for (int j = 0; j < class_count; j++)
      768:      768:  201:            q_values[i][j] = class_sizes[i] + class_sizes[j] - 1;
        -:        -:  202:      }
       48:       48:  203:      classes[i] = ra_alloc_reg_class(regs);
        -:        -:  204:
        -:        -:  205:      /* Save this off for the aligned pair class at the end. */
       48:       48:  206:      if (class_sizes[i] == 2) {
        3:        3:  207:         pairs_base_reg = reg;
        3:        3:  208:         pairs_reg_count = class_reg_count;
        -:        -:  209:      }
        -:        -:  210:
       48:       48:  211:      if (devinfo->gen <= 5 && dispatch_width >= 16) {
    #####:    #####:  212:         for (int j = 0; j < class_reg_count; j++) {
    #####:    #####:  213:            ra_class_add_reg(regs, classes[i], reg);
        -:        -:  214:
    #####:    #####:  215:            ra_reg_to_grf[reg] = j * 2;
        -:        -:  216:
    #####:    #####:  217:            for (int base_reg = j;
    #####:    #####:  218:                 base_reg < j + (class_sizes[i] + 1) / 2;
        -:        -:  219:                 base_reg++) {
    #####:    #####:  220:               ra_add_reg_conflict(regs, base_reg, reg);
        -:        -:  221:            }
        -:        -:  222:
    #####:    #####:  223:            reg++;
    #####:    #####:  224:         }
        -:        -:  225:      } else {
     5832:     5832:  226:         for (int j = 0; j < class_reg_count; j++) {
     5784:     5784:  227:            ra_class_add_reg(regs, classes[i], reg);
        -:        -:  228:
     5784:     5784:  229:            ra_reg_to_grf[reg] = j;
        -:        -:  230:
    53928:    53928:  231:            for (int base_reg = j;
    53928:    53928:  232:                 base_reg < j + class_sizes[i];
        -:        -:  233:                 base_reg++) {
    48144:    48144:  234:               ra_add_reg_conflict(regs, base_reg, reg);
        -:        -:  235:            }
        -:        -:  236:
     5784:     5784:  237:            reg++;
        -:        -:  238:         }
        -:        -:  239:      }
        -:        -:  240:   }
        3:        3:  241:   assert(reg == ra_reg_count);
        -:        -:  242:
        -:        -:  243:   /* Applying transitivity to all of the base registers gives us the
        -:        -:  244:    * appropreate register conflict relationships everywhere.
        -:        -:  245:    */
      387:      387:  246:   for (int reg = 0; reg < base_reg_count; reg++)
      384:      384:  247:      ra_make_reg_conflicts_transitive(regs, reg);
        -:        -:  248:
        -:        -:  249:   /* Add a special class for aligned pairs, which we'll put delta_xy
        -:        -:  250:    * in on Gen <= 6 so that we can do PLN.
        -:        -:  251:    */
        3:        3:  252:   if (devinfo->has_pln && dispatch_width == 8 && devinfo->gen <= 6) {
        1:        1:  253:      aligned_pairs_class = ra_alloc_reg_class(regs);
        -:        -:  254:
      128:      128:  255:      for (int i = 0; i < pairs_reg_count; i++) {
      127:      127:  256:	 if ((ra_reg_to_grf[pairs_base_reg + i] & 1) == 0) {
       64:       64:  257:	    ra_class_add_reg(regs, aligned_pairs_class, pairs_base_reg + i);
        -:        -:  258:	 }
        -:        -:  259:      }
        -:        -:  260:
       17:       17:  261:      for (int i = 0; i < class_count; i++) {
        -:        -:  262:         /* These are a little counter-intuitive because the pair registers
        -:        -:  263:          * are required to be aligned while the register they are
        -:        -:  264:          * potentially interferring with are not.  In the case where the
        -:        -:  265:          * size is even, the worst-case is that the register is
        -:        -:  266:          * odd-aligned.  In the odd-size case, it doesn't matter.
        -:        -:  267:          */
       16:       16:  268:         q_values[class_count][i] = class_sizes[i] / 2 + 1;
       16:       16:  269:         q_values[i][class_count] = class_sizes[i] + 1;
        -:        -:  270:      }
        1:        1:  271:      q_values[class_count][class_count] = 1;
        -:        -:  272:   }
        -:        -:  273:
        3:        3:  274:   ra_set_finalize(regs, q_values);
        -:        -:  275:
        3:        3:  276:   ralloc_free(q_values);
        -:        -:  277:
        3:        3:  278:   compiler->fs_reg_sets[index].regs = regs;
       51:       51:  279:   for (unsigned i = 0; i < ARRAY_SIZE(compiler->fs_reg_sets[index].classes); i++)
       48:       48:  280:      compiler->fs_reg_sets[index].classes[i] = -1;
       51:       51:  281:   for (int i = 0; i < class_count; i++)
       48:       48:  282:      compiler->fs_reg_sets[index].classes[class_sizes[i] - 1] = classes[i];
        3:        3:  283:   compiler->fs_reg_sets[index].ra_reg_to_grf = ra_reg_to_grf;
        3:        3:  284:   compiler->fs_reg_sets[index].aligned_pairs_class = aligned_pairs_class;
        -:        -:  285:}
        -:        -:  286:
        -:        -:  287:void
        1:        1:  288:brw_fs_alloc_reg_sets(struct brw_compiler *compiler)
        -:        -:  289:{
        1:        1:  290:   brw_alloc_reg_set(compiler, 8);
        1:        1:  291:   brw_alloc_reg_set(compiler, 16);
        1:        1:  292:   brw_alloc_reg_set(compiler, 32);
        1:        1:  293:}
        -:        -:  294:
        -:        -:  295:static int
        8:        8:  296:count_to_loop_end(const bblock_t *block)
        -:        -:  297:{
        8:        8:  298:   if (block->end()->opcode == BRW_OPCODE_WHILE)
    #####:    #####:  299:      return block->end_ip;
        -:        -:  300:
        8:        8:  301:   int depth = 1;
        -:        -:  302:   /* Skip the first block, since we don't want to count the do the calling
        -:        -:  303:    * function found.
        -:        -:  304:    */
       48:       64:  305:   for (block = block->next();
       48:       64:  306:        depth > 0;
        -:        -:  307:        block = block->next()) {
       48:       64:  308:      if (block->start()->opcode == BRW_OPCODE_DO)
    #####:        8:  309:         depth++;
       48:       64:  310:      if (block->end()->opcode == BRW_OPCODE_WHILE) {
        8:       16:  311:         depth--;
        8:       16:  312:         if (depth == 0)
        8:        8:  313:            return block->end_ip;
        -:        -:  314:      }
        -:        -:  315:   }
    #####:    #####:  316:   unreachable("not reached");
        -:        -:  317:}
        -:        -:  318:
       10:       10:  319:void fs_visitor::calculate_payload_ranges(int payload_node_count,
        -:        -:  320:                                          int *payload_last_use_ip)
        -:        -:  321:{
       10:       10:  322:   int loop_depth = 0;
       10:       10:  323:   int loop_end_ip = 0;
        -:        -:  324:
       74:       74:  325:   for (int i = 0; i < payload_node_count; i++)
       64:       64:  326:      payload_last_use_ip[i] = -1;
        -:        -:  327:
       10:       10:  328:   int ip = 0;
      422:      446:  329:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      412:      436:  330:      switch (inst->opcode) {
        -:        -:  331:      case BRW_OPCODE_DO:
        8:       16:  332:         loop_depth++;
        -:        -:  333:
        -:        -:  334:         /* Since payload regs are deffed only at the start of the shader
        -:        -:  335:          * execution, any uses of the payload within a loop mean the live
        -:        -:  336:          * interval extends to the end of the outermost loop.  Find the ip of
        -:        -:  337:          * the end now.
        -:        -:  338:          */
        8:       16:  339:         if (loop_depth == 1)
        8:        8:  340:            loop_end_ip = count_to_loop_end(block);
        8:       16:  341:         break;
        -:        -:  342:      case BRW_OPCODE_WHILE:
        8:       16:  343:         loop_depth--;
        8:       16:  344:         break;
        -:        -:  345:      default:
      396:      404:  346:         break;
        -:        -:  347:      }
        -:        -:  348:
        -:        -:  349:      int use_ip;
      412:      436:  350:      if (loop_depth > 0)
      198:      214:  351:         use_ip = loop_end_ip;
        -:        -:  352:      else
      214:      222:  353:         use_ip = ip;
        -:        -:  354:
        -:        -:  355:      /* Note that UNIFORM args have been turned into FIXED_GRF by
        -:        -:  356:       * assign_curbe_setup(), and interpolation uses fixed hardware regs from
        -:        -:  357:       * the start (see interp_reg()).
        -:        -:  358:       */
      920:      968:  359:      for (int i = 0; i < inst->sources; i++) {
      508:      532:  360:         if (inst->src[i].file == FIXED_GRF) {
      128:      128:  361:            int node_nr = inst->src[i].nr;
      128:      128:  362:            if (node_nr >= payload_node_count)
    #####:    #####:  363:               continue;
        -:        -:  364:
      288:      288:  365:            for (unsigned j = 0; j < regs_read(inst, i); j++) {
      160:      160:  366:               payload_last_use_ip[node_nr + j] = use_ip;
      160:      160:  367:               assert(node_nr + j < unsigned(payload_node_count));
        -:        -:  368:            }
        -:        -:  369:         }
        -:        -:  370:      }
        -:        -:  371:
        -:        -:  372:      /* Special case instructions which have extra implied registers used. */
      412:      436:  373:      switch (inst->opcode) {
        -:        -:  374:      case CS_OPCODE_CS_TERMINATE:
    #####:    #####:  375:         payload_last_use_ip[0] = use_ip;
    #####:    #####:  376:         break;
        -:        -:  377:
        -:        -:  378:      default:
      412:      436:  379:         if (inst->eot) {
        -:        -:  380:            /* We could omit this for the !inst->header_present case, except
        -:        -:  381:             * that the simulator apparently incorrectly reads from g0/g1
        -:        -:  382:             * instead of sideband.  It also really freaks out driver
        -:        -:  383:             * developers to see g0 used in unusual places, so just always
        -:        -:  384:             * reserve it.
        -:        -:  385:             */
       10:       10:  386:            payload_last_use_ip[0] = use_ip;
       10:       10:  387:            payload_last_use_ip[1] = use_ip;
        -:        -:  388:         }
      412:      436:  389:         break;
        -:        -:  390:      }
        -:        -:  391:
      412:      436:  392:      ip++;
        -:        -:  393:   }
       10:       10:  394:}
        -:        -:  395:
        -:        -:  396:
        -:        -:  397:/**
        -:        -:  398: * Sets up interference between thread payload registers and the virtual GRFs
        -:        -:  399: * to be allocated for program temporaries.
        -:        -:  400: *
        -:        -:  401: * We want to be able to reallocate the payload for our virtual GRFs, notably
        -:        -:  402: * because the setup coefficients for a full set of 16 FS inputs takes up 8 of
        -:        -:  403: * our 128 registers.
        -:        -:  404: *
        -:        -:  405: * The layout of the payload registers is:
        -:        -:  406: *
        -:        -:  407: * 0..payload.num_regs-1: fixed function setup (including bary coordinates).
        -:        -:  408: * payload.num_regs..payload.num_regs+curb_read_lengh-1: uniform data
        -:        -:  409: * payload.num_regs+curb_read_lengh..first_non_payload_grf-1: setup coefficients.
        -:        -:  410: *
        -:        -:  411: * And we have payload_node_count nodes covering these registers in order
        -:        -:  412: * (note that in SIMD16, a node is two registers).
        -:        -:  413: */
        -:        -:  414:void
        5:        5:  415:fs_visitor::setup_payload_interference(struct ra_graph *g,
        -:        -:  416:                                       int payload_node_count,
        -:        -:  417:                                       int first_payload_node)
        -:        -:  418:{
        5:        5:  419:   int payload_last_use_ip[payload_node_count];
        5:        5:  420:   calculate_payload_ranges(payload_node_count, payload_last_use_ip);
        -:        -:  421:
       37:       37:  422:   for (int i = 0; i < payload_node_count; i++) {
       32:       32:  423:      if (payload_last_use_ip[i] == -1)
        6:        6:  424:         continue;
        -:        -:  425:
        -:        -:  426:      /* Mark the payload node as interfering with any virtual grf that is
        -:        -:  427:       * live between the start of the program and our last use of the payload
        -:        -:  428:       * node.
        -:        -:  429:       */
      438:      438:  430:      for (unsigned j = 0; j < this->alloc.count; j++) {
        -:        -:  431:         /* Note that we use a <= comparison, unlike virtual_grf_interferes(),
        -:        -:  432:          * in order to not have to worry about the uniform issue described in
        -:        -:  433:          * calculate_live_intervals().
        -:        -:  434:          */
      412:      412:  435:         if (this->virtual_grf_start[j] <= payload_last_use_ip[i]) {
      298:      298:  436:            ra_add_node_interference(g, first_payload_node + i, j);
        -:        -:  437:         }
        -:        -:  438:      }
        -:        -:  439:   }
        -:        -:  440:
       37:       37:  441:   for (int i = 0; i < payload_node_count; i++) {
        -:        -:  442:      /* Mark each payload node as being allocated to its physical register.
        -:        -:  443:       *
        -:        -:  444:       * The alternative would be to have per-physical-register classes, which
        -:        -:  445:       * would just be silly.
        -:        -:  446:       */
       32:       32:  447:      if (devinfo->gen <= 5 && dispatch_width >= 16) {
        -:        -:  448:         /* We have to divide by 2 here because we only have even numbered
        -:        -:  449:          * registers.  Some of the payload registers will be odd, but
        -:        -:  450:          * that's ok because their physical register numbers have already
        -:        -:  451:          * been assigned.  The only thing this is used for is interference.
        -:        -:  452:          */
    #####:    #####:  453:         ra_set_node_reg(g, first_payload_node + i, i / 2);
        -:        -:  454:      } else {
       32:       32:  455:         ra_set_node_reg(g, first_payload_node + i, i);
        -:        -:  456:      }
        5:        5:  457:   }
        5:        5:  458:}
        -:        -:  459:
        -:        -:  460:/**
        -:        -:  461: * Sets the mrf_used array to indicate which MRFs are used by the shader IR
        -:        -:  462: *
        -:        -:  463: * This is used in assign_regs() to decide which of the GRFs that we use as
        -:        -:  464: * MRFs on gen7 get normally register allocated, and in register spilling to
        -:        -:  465: * see if we can actually use MRFs to do spills without overwriting normal MRF
        -:        -:  466: * contents.
        -:        -:  467: */
        -:        -:  468:static void
    #####:    #####:  469:get_used_mrfs(fs_visitor *v, bool *mrf_used)
        -:        -:  470:{
    #####:    #####:  471:   int reg_width = v->dispatch_width / 8;
        -:        -:  472:
    #####:    #####:  473:   memset(mrf_used, 0, BRW_MAX_MRF(v->devinfo->gen) * sizeof(bool));
        -:        -:  474:
    #####:    #####:  475:   foreach_block_and_inst(block, fs_inst, inst, v->cfg) {
    #####:    #####:  476:      if (inst->dst.file == MRF) {
    #####:    #####:  477:         int reg = inst->dst.nr & ~BRW_MRF_COMPR4;
    #####:    #####:  478:         mrf_used[reg] = true;
    #####:    #####:  479:         if (reg_width == 2) {
    #####:    #####:  480:            if (inst->dst.nr & BRW_MRF_COMPR4) {
    #####:    #####:  481:               mrf_used[reg + 4] = true;
        -:        -:  482:            } else {
    #####:    #####:  483:               mrf_used[reg + 1] = true;
        -:        -:  484:            }
        -:        -:  485:         }
        -:        -:  486:      }
        -:        -:  487:
    #####:    #####:  488:      if (inst->mlen > 0) {
    #####:    #####:  489:	 for (int i = 0; i < v->implied_mrf_writes(inst); i++) {
    #####:    #####:  490:            mrf_used[inst->base_mrf + i] = true;
        -:        -:  491:         }
        -:        -:  492:      }
        -:        -:  493:   }
    #####:    #####:  494:}
        -:        -:  495:
        -:        -:  496:/**
        -:        -:  497: * Sets interference between virtual GRFs and usage of the high GRFs for SEND
        -:        -:  498: * messages (treated as MRFs in code generation).
        -:        -:  499: */
        -:        -:  500:static void
    #####:    #####:  501:setup_mrf_hack_interference(fs_visitor *v, struct ra_graph *g,
        -:        -:  502:                            int first_mrf_node, int *first_used_mrf)
        -:        -:  503:{
    #####:    #####:  504:   bool mrf_used[BRW_MAX_MRF(v->devinfo->gen)];
    #####:    #####:  505:   get_used_mrfs(v, mrf_used);
        -:        -:  506:
    #####:    #####:  507:   *first_used_mrf = BRW_MAX_MRF(v->devinfo->gen);
    #####:    #####:  508:   for (int i = 0; i < BRW_MAX_MRF(v->devinfo->gen); i++) {
        -:        -:  509:      /* Mark each MRF reg node as being allocated to its physical register.
        -:        -:  510:       *
        -:        -:  511:       * The alternative would be to have per-physical-register classes, which
        -:        -:  512:       * would just be silly.
        -:        -:  513:       */
    #####:    #####:  514:      ra_set_node_reg(g, first_mrf_node + i, GEN7_MRF_HACK_START + i);
        -:        -:  515:
        -:        -:  516:      /* Since we don't have any live/dead analysis on the MRFs, just mark all
        -:        -:  517:       * that are used as conflicting with all virtual GRFs.
        -:        -:  518:       */
    #####:    #####:  519:      if (mrf_used[i]) {
    #####:    #####:  520:         if (i < *first_used_mrf)
    #####:    #####:  521:            *first_used_mrf = i;
        -:        -:  522:
    #####:    #####:  523:         for (unsigned j = 0; j < v->alloc.count; j++) {
    #####:    #####:  524:            ra_add_node_interference(g, first_mrf_node + i, j);
        -:        -:  525:         }
        -:        -:  526:      }
    #####:    #####:  527:   }
    #####:    #####:  528:}
        -:        -:  529:
        -:        -:  530:bool
        5:        5:  531:fs_visitor::assign_regs(bool allow_spilling, bool spill_all)
        -:        -:  532:{
        -:        -:  533:   /* Most of this allocation was written for a reg_width of 1
        -:        -:  534:    * (dispatch_width == 8).  In extending to SIMD16, the code was
        -:        -:  535:    * left in place and it was converted to have the hardware
        -:        -:  536:    * registers it's allocating be contiguous physical pairs of regs
        -:        -:  537:    * for reg_width == 2.
        -:        -:  538:    */
        5:        5:  539:   int reg_width = dispatch_width / 8;
        5:        5:  540:   unsigned hw_reg_mapping[this->alloc.count];
        5:        5:  541:   int payload_node_count = ALIGN(this->first_non_payload_grf, reg_width);
        5:        5:  542:   int rsi = _mesa_logbase2(reg_width); /* Which compiler->fs_reg_sets[] to use */
        5:        5:  543:   calculate_live_intervals();
        -:        -:  544:
        5:        5:  545:   int node_count = this->alloc.count;
        5:        5:  546:   int first_payload_node = node_count;
        5:        5:  547:   node_count += payload_node_count;
        5:        5:  548:   int first_mrf_hack_node = node_count;
        5:        5:  549:   if (devinfo->gen >= 7)
    #####:    #####:  550:      node_count += BRW_MAX_GRF - GEN7_MRF_HACK_START;
        -:        -:  551:   struct ra_graph *g =
        5:        5:  552:      ra_alloc_interference_graph(compiler->fs_reg_sets[rsi].regs, node_count);
        -:        -:  553:
      102:      102:  554:   for (unsigned i = 0; i < this->alloc.count; i++) {
       97:       97:  555:      unsigned size = this->alloc.sizes[i];
        -:        -:  556:      int c;
        -:        -:  557:
       97:       97:  558:      assert(size <= ARRAY_SIZE(compiler->fs_reg_sets[rsi].classes) &&
       97:       97:  559:             "Register allocation relies on split_virtual_grfs()");
       97:       97:  560:      c = compiler->fs_reg_sets[rsi].classes[size - 1];
        -:        -:  561:
        -:        -:  562:      /* Special case: on pre-GEN6 hardware that supports PLN, the
        -:        -:  563:       * second operand of a PLN instruction needs to be an
        -:        -:  564:       * even-numbered register, so we have a special register class
        -:        -:  565:       * wm_aligned_pairs_class to handle this case.  pre-GEN6 always
        -:        -:  566:       * uses this->delta_xy[BRW_BARYCENTRIC_PERSPECTIVE_PIXEL] as the
        -:        -:  567:       * second operand of a PLN instruction (since it doesn't support
        -:        -:  568:       * any other interpolation modes).  So all we need to do is find
        -:        -:  569:       * that register and set it to the appropriate class.
        -:        -:  570:       */
      147:      147:  571:      if (compiler->fs_reg_sets[rsi].aligned_pairs_class >= 0 &&
       50:       50:  572:          this->delta_xy[BRW_BARYCENTRIC_PERSPECTIVE_PIXEL].file == VGRF &&
    #####:    #####:  573:          this->delta_xy[BRW_BARYCENTRIC_PERSPECTIVE_PIXEL].nr == i) {
    #####:    #####:  574:         c = compiler->fs_reg_sets[rsi].aligned_pairs_class;
        -:        -:  575:      }
        -:        -:  576:
       97:       97:  577:      ra_set_node_class(g, i, c);
        -:        -:  578:
     1879:     1879:  579:      for (unsigned j = 0; j < i; j++) {
     1782:     1782:  580:	 if (virtual_grf_interferes(i, j)) {
      535:      593:  581:	    ra_add_node_interference(g, i, j);
        -:        -:  582:	 }
        -:        -:  583:      }
        -:        -:  584:   }
        -:        -:  585:
        -:        -:  586:   /* Certain instructions can't safely use the same register for their
        -:        -:  587:    * sources and destination.  Add interference.
        -:        -:  588:    */
      211:      223:  589:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      206:      218:  590:      if (inst->dst.file == VGRF && inst->has_source_and_destination_hazard()) {
        8:        8:  591:         for (unsigned i = 0; i < 3; i++) {
        6:        6:  592:            if (inst->src[i].file == VGRF) {
        2:        2:  593:               ra_add_node_interference(g, inst->dst.nr, inst->src[i].nr);
        -:        -:  594:            }
        -:        -:  595:         }
        -:        -:  596:      }
        -:        -:  597:   }
        -:        -:  598:
        5:        5:  599:   setup_payload_interference(g, payload_node_count, first_payload_node);
        5:        5:  600:   if (devinfo->gen >= 7) {
    #####:    #####:  601:      int first_used_mrf = BRW_MAX_MRF(devinfo->gen);
        -:        -:  602:      setup_mrf_hack_interference(this, g, first_mrf_hack_node,
    #####:    #####:  603:                                  &first_used_mrf);
        -:        -:  604:
    #####:    #####:  605:      foreach_block_and_inst(block, fs_inst, inst, cfg) {
        -:        -:  606:         /* When we do send-from-GRF for FB writes, we need to ensure that
        -:        -:  607:          * the last write instruction sends from a high register.  This is
        -:        -:  608:          * because the vertex fetcher wants to start filling the low
        -:        -:  609:          * payload registers while the pixel data port is still working on
        -:        -:  610:          * writing out the memory.  If we don't do this, we get rendering
        -:        -:  611:          * artifacts.
        -:        -:  612:          *
        -:        -:  613:          * We could just do "something high".  Instead, we just pick the
        -:        -:  614:          * highest register that works.
        -:        -:  615:          */
    #####:    #####:  616:         if (inst->eot) {
    #####:    #####:  617:            int size = alloc.sizes[inst->src[0].nr];
    #####:    #####:  618:            int reg = compiler->fs_reg_sets[rsi].class_to_ra_reg_range[size] - 1;
        -:        -:  619:
        -:        -:  620:            /* If something happened to spill, we want to push the EOT send
        -:        -:  621:             * register early enough in the register file that we don't
        -:        -:  622:             * conflict with any used MRF hack registers.
        -:        -:  623:             */
    #####:    #####:  624:            reg -= BRW_MAX_MRF(devinfo->gen) - first_used_mrf;
        -:        -:  625:
    #####:    #####:  626:            ra_set_node_reg(g, inst->src[0].nr, reg);
    #####:    #####:  627:            break;
        -:        -:  628:         }
        -:        -:  629:      }
        -:        -:  630:   }
        -:        -:  631:
        5:        5:  632:   if (dispatch_width > 8) {
        -:        -:  633:      /* In 16-wide dispatch we have an issue where a compressed
        -:        -:  634:       * instruction is actually two instructions executed simultaneiously.
        -:        -:  635:       * It's actually ok to have the source and destination registers be
        -:        -:  636:       * the same.  In this case, each instruction over-writes its own
        -:        -:  637:       * source and there's no problem.  The real problem here is if the
        -:        -:  638:       * source and destination registers are off by one.  Then you can end
        -:        -:  639:       * up in a scenario where the first instruction over-writes the
        -:        -:  640:       * source of the second instruction.  Since the compiler doesn't know
        -:        -:  641:       * about this level of granularity, we simply make the source and
        -:        -:  642:       * destination interfere.
        -:        -:  643:       */
      108:      114:  644:      foreach_block_and_inst(block, fs_inst, inst, cfg) {
      106:      112:  645:         if (inst->dst.file != VGRF)
       50:       56:  646:            continue;
        -:        -:  647:
      144:      144:  648:         for (int i = 0; i < inst->sources; ++i) {
       88:       88:  649:            if (inst->src[i].file == VGRF) {
       63:       63:  650:               ra_add_node_interference(g, inst->dst.nr, inst->src[i].nr);
        -:        -:  651:            }
        -:        -:  652:         }
        -:        -:  653:      }
        -:        -:  654:   }
        -:        -:  655:
        -:        -:  656:   /* Debug of register spilling: Go spill everything. */
        5:        5:  657:   if (unlikely(spill_all)) {
    #####:    #####:  658:      int reg = choose_spill_reg(g);
        -:        -:  659:
    #####:    #####:  660:      if (reg != -1) {
    #####:    #####:  661:         spill_reg(reg);
    #####:    #####:  662:         ralloc_free(g);
    #####:    #####:  663:         return false;
        -:        -:  664:      }
        -:        -:  665:   }
        -:        -:  666:
        5:        5:  667:   if (!ra_allocate(g)) {
        -:        -:  668:      /* Failed to allocate registers.  Spill a reg, and the caller will
        -:        -:  669:       * loop back into here to try again.
        -:        -:  670:       */
    #####:    #####:  671:      int reg = choose_spill_reg(g);
        -:        -:  672:
    #####:    #####:  673:      if (reg == -1) {
    #####:    #####:  674:         fail("no register to spill:\n");
    #####:    #####:  675:         dump_instructions(NULL);
    #####:    #####:  676:      } else if (allow_spilling) {
    #####:    #####:  677:         spill_reg(reg);
        -:        -:  678:      }
        -:        -:  679:
    #####:    #####:  680:      ralloc_free(g);
        -:        -:  681:
    #####:    #####:  682:      return false;
        -:        -:  683:   }
        -:        -:  684:
        -:        -:  685:   /* Get the chosen virtual registers for each node, and map virtual
        -:        -:  686:    * regs in the register classes back down to real hardware reg
        -:        -:  687:    * numbers.
        -:        -:  688:    */
        5:        5:  689:   this->grf_used = payload_node_count;
      102:      102:  690:   for (unsigned i = 0; i < this->alloc.count; i++) {
       97:       97:  691:      int reg = ra_get_node_reg(g, i);
        -:        -:  692:
       97:       97:  693:      hw_reg_mapping[i] = compiler->fs_reg_sets[rsi].ra_reg_to_grf[reg];
       97:       97:  694:      this->grf_used = MAX2(this->grf_used,
       97:       97:  695:			    hw_reg_mapping[i] + this->alloc.sizes[i]);
        -:        -:  696:   }
        -:        -:  697:
      211:      223:  698:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
      206:      218:  699:      assign_reg(hw_reg_mapping, &inst->dst);
      460:      484:  700:      for (int i = 0; i < inst->sources; i++) {
      254:      266:  701:         assign_reg(hw_reg_mapping, &inst->src[i]);
        -:        -:  702:      }
        -:        -:  703:   }
        -:        -:  704:
        5:        5:  705:   this->alloc.count = this->grf_used;
        -:        -:  706:
        5:        5:  707:   ralloc_free(g);
        -:        -:  708:
       10:       10:  709:   return true;
        -:        -:  710:}
        -:        -:  711:
        -:        -:  712:namespace {
        -:        -:  713:   /**
        -:        -:  714:    * Maximum spill block size we expect to encounter in 32B units.
        -:        -:  715:    *
        -:        -:  716:    * This is somewhat arbitrary and doesn't necessarily limit the maximum
        -:        -:  717:    * variable size that can be spilled -- A higher value will allow a
        -:        -:  718:    * variable of a given size to be spilled more efficiently with a smaller
        -:        -:  719:    * number of scratch messages, but will increase the likelihood of a
        -:        -:  720:    * collision between the MRFs reserved for spilling and other MRFs used by
        -:        -:  721:    * the program (and possibly increase GRF register pressure on platforms
        -:        -:  722:    * without hardware MRFs), what could cause register allocation to fail.
        -:        -:  723:    *
        -:        -:  724:    * For the moment reserve just enough space so a register of 32 bit
        -:        -:  725:    * component type and natural region width can be spilled without splitting
        -:        -:  726:    * into multiple (force_writemask_all) scratch messages.
        -:        -:  727:    */
        -:        -:  728:   unsigned
    #####:    #####:  729:   spill_max_size(const backend_shader *s)
        -:        -:  730:   {
        -:        -:  731:      /* FINISHME - On Gen7+ it should be possible to avoid this limit
        -:        -:  732:       *            altogether by spilling directly from the temporary GRF
        -:        -:  733:       *            allocated to hold the result of the instruction (and the
        -:        -:  734:       *            scratch write header).
        -:        -:  735:       */
        -:        -:  736:      /* FINISHME - The shader's dispatch width probably belongs in
        -:        -:  737:       *            backend_shader (or some nonexistent fs_shader class?)
        -:        -:  738:       *            rather than in the visitor class.
        -:        -:  739:       */
    #####:    #####:  740:      return static_cast<const fs_visitor *>(s)->dispatch_width / 8;
        -:        -:  741:   }
        -:        -:  742:
        -:        -:  743:   /**
        -:        -:  744:    * First MRF register available for spilling.
        -:        -:  745:    */
        -:        -:  746:   unsigned
    #####:    #####:  747:   spill_base_mrf(const backend_shader *s)
        -:        -:  748:   {
    #####:    #####:  749:      return BRW_MAX_MRF(s->devinfo->gen) - spill_max_size(s) - 1;
        -:        -:  750:   }
        -:        -:  751:}
        -:        -:  752:
        -:        -:  753:static void
    #####:    #####:  754:emit_unspill(const fs_builder &bld, fs_reg dst,
        -:        -:  755:             uint32_t spill_offset, unsigned count)
        -:        -:  756:{
    #####:    #####:  757:   const gen_device_info *devinfo = bld.shader->devinfo;
    #####:    #####:  758:   const unsigned reg_size = dst.component_size(bld.dispatch_width()) /
    #####:    #####:  759:                             REG_SIZE;
    #####:    #####:  760:   assert(count % reg_size == 0);
        -:        -:  761:
    #####:    #####:  762:   for (unsigned i = 0; i < count / reg_size; i++) {
        -:        -:  763:      /* The Gen7 descriptor-based offset is 12 bits of HWORD units.  Because
        -:        -:  764:       * the Gen7-style scratch block read is hardwired to BTI 255, on Gen9+
        -:        -:  765:       * it would cause the DC to do an IA-coherent read, what largely
        -:        -:  766:       * outweighs the slight advantage from not having to provide the address
        -:        -:  767:       * as part of the message header, so we're better off using plain old
        -:        -:  768:       * oword block reads.
        -:        -:  769:       */
    #####:    #####:  770:      bool gen7_read = (devinfo->gen >= 7 && devinfo->gen < 9 &&
    #####:    #####:  771:                        spill_offset < (1 << 12) * REG_SIZE);
    #####:    #####:  772:      fs_inst *unspill_inst = bld.emit(gen7_read ?
        -:        -:  773:                                       SHADER_OPCODE_GEN7_SCRATCH_READ :
        -:        -:  774:                                       SHADER_OPCODE_GEN4_SCRATCH_READ,
    #####:    #####:  775:                                       dst);
    #####:    #####:  776:      unspill_inst->offset = spill_offset;
        -:        -:  777:
    #####:    #####:  778:      if (!gen7_read) {
    #####:    #####:  779:         unspill_inst->base_mrf = spill_base_mrf(bld.shader);
    #####:    #####:  780:         unspill_inst->mlen = 1; /* header contains offset */
        -:        -:  781:      }
        -:        -:  782:
    #####:    #####:  783:      dst.offset += reg_size * REG_SIZE;
    #####:    #####:  784:      spill_offset += reg_size * REG_SIZE;
        -:        -:  785:   }
    #####:    #####:  786:}
        -:        -:  787:
        -:        -:  788:static void
    #####:    #####:  789:emit_spill(const fs_builder &bld, fs_reg src,
        -:        -:  790:           uint32_t spill_offset, unsigned count)
        -:        -:  791:{
    #####:    #####:  792:   const unsigned reg_size = src.component_size(bld.dispatch_width()) /
    #####:    #####:  793:                             REG_SIZE;
    #####:    #####:  794:   assert(count % reg_size == 0);
        -:        -:  795:
    #####:    #####:  796:   for (unsigned i = 0; i < count / reg_size; i++) {
        -:        -:  797:      fs_inst *spill_inst =
    #####:    #####:  798:         bld.emit(SHADER_OPCODE_GEN4_SCRATCH_WRITE, bld.null_reg_f(), src);
    #####:    #####:  799:      src.offset += reg_size * REG_SIZE;
    #####:    #####:  800:      spill_inst->offset = spill_offset + i * reg_size * REG_SIZE;
    #####:    #####:  801:      spill_inst->mlen = 1 + reg_size; /* header, value */
    #####:    #####:  802:      spill_inst->base_mrf = spill_base_mrf(bld.shader);
        -:        -:  803:   }
    #####:    #####:  804:}
        -:        -:  805:
        -:        -:  806:int
    #####:    #####:  807:fs_visitor::choose_spill_reg(struct ra_graph *g)
        -:        -:  808:{
    #####:    #####:  809:   float block_scale = 1.0;
    #####:    #####:  810:   float spill_costs[this->alloc.count];
    #####:    #####:  811:   bool no_spill[this->alloc.count];
        -:        -:  812:
    #####:    #####:  813:   for (unsigned i = 0; i < this->alloc.count; i++) {
    #####:    #####:  814:      spill_costs[i] = 0.0;
    #####:    #####:  815:      no_spill[i] = false;
        -:        -:  816:   }
        -:        -:  817:
        -:        -:  818:   /* Calculate costs for spilling nodes.  Call it a cost of 1 per
        -:        -:  819:    * spill/unspill we'll have to do, and guess that the insides of
        -:        -:  820:    * loops run 10 times.
        -:        -:  821:    */
    #####:    #####:  822:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
    #####:    #####:  823:      for (unsigned int i = 0; i < inst->sources; i++) {
    #####:    #####:  824:	 if (inst->src[i].file == VGRF)
    #####:    #####:  825:            spill_costs[inst->src[i].nr] += regs_read(inst, i) * block_scale;
        -:        -:  826:      }
        -:        -:  827:
    #####:    #####:  828:      if (inst->dst.file == VGRF)
    #####:    #####:  829:         spill_costs[inst->dst.nr] += regs_written(inst) * block_scale;
        -:        -:  830:
    #####:    #####:  831:      switch (inst->opcode) {
        -:        -:  832:
        -:        -:  833:      case BRW_OPCODE_DO:
    #####:    #####:  834:	 block_scale *= 10;
    #####:    #####:  835:	 break;
        -:        -:  836:
        -:        -:  837:      case BRW_OPCODE_WHILE:
    #####:    #####:  838:	 block_scale /= 10;
    #####:    #####:  839:	 break;
        -:        -:  840:
        -:        -:  841:      case BRW_OPCODE_IF:
        -:        -:  842:      case BRW_OPCODE_IFF:
    #####:    #####:  843:         block_scale *= 0.5;
    #####:    #####:  844:         break;
        -:        -:  845:
        -:        -:  846:      case BRW_OPCODE_ENDIF:
    #####:    #####:  847:         block_scale /= 0.5;
    #####:    #####:  848:         break;
        -:        -:  849:
        -:        -:  850:      case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
    #####:    #####:  851:	 if (inst->src[0].file == VGRF)
    #####:    #####:  852:            no_spill[inst->src[0].nr] = true;
    #####:    #####:  853:	 break;
        -:        -:  854:
        -:        -:  855:      case SHADER_OPCODE_GEN4_SCRATCH_READ:
        -:        -:  856:      case SHADER_OPCODE_GEN7_SCRATCH_READ:
    #####:    #####:  857:	 if (inst->dst.file == VGRF)
    #####:    #####:  858:            no_spill[inst->dst.nr] = true;
    #####:    #####:  859:	 break;
        -:        -:  860:
        -:        -:  861:      default:
    #####:    #####:  862:	 break;
        -:        -:  863:      }
        -:        -:  864:   }
        -:        -:  865:
    #####:    #####:  866:   for (unsigned i = 0; i < this->alloc.count; i++) {
    #####:    #####:  867:      if (!no_spill[i])
    #####:    #####:  868:	 ra_set_node_spill_cost(g, i, spill_costs[i]);
        -:        -:  869:   }
        -:        -:  870:
    #####:    #####:  871:   return ra_get_best_spill_node(g);
        -:        -:  872:}
        -:        -:  873:
        -:        -:  874:void
    #####:    #####:  875:fs_visitor::spill_reg(int spill_reg)
        -:        -:  876:{
    #####:    #####:  877:   int size = alloc.sizes[spill_reg];
    #####:    #####:  878:   unsigned int spill_offset = last_scratch;
    #####:    #####:  879:   assert(ALIGN(spill_offset, 16) == spill_offset); /* oword read/write req. */
        -:        -:  880:
        -:        -:  881:   /* Spills may use MRFs 13-15 in the SIMD16 case.  Our texturing is done
        -:        -:  882:    * using up to 11 MRFs starting from either m1 or m2, and fb writes can use
        -:        -:  883:    * up to m13 (gen6+ simd16: 2 header + 8 color + 2 src0alpha + 2 omask) or
        -:        -:  884:    * m15 (gen4-5 simd16: 2 header + 8 color + 1 aads + 2 src depth + 2 dst
        -:        -:  885:    * depth), starting from m1.  In summary: We may not be able to spill in
        -:        -:  886:    * SIMD16 mode, because we'd stomp the FB writes.
        -:        -:  887:    */
    #####:    #####:  888:   if (!spilled_any_registers) {
    #####:    #####:  889:      bool mrf_used[BRW_MAX_MRF(devinfo->gen)];
    #####:    #####:  890:      get_used_mrfs(this, mrf_used);
        -:        -:  891:
    #####:    #####:  892:      for (int i = spill_base_mrf(this); i < BRW_MAX_MRF(devinfo->gen); i++) {
    #####:    #####:  893:         if (mrf_used[i]) {
    #####:    #####:  894:            fail("Register spilling not supported with m%d used", i);
    #####:    #####:  895:          return;
        -:        -:  896:         }
        -:        -:  897:      }
        -:        -:  898:
    #####:    #####:  899:      spilled_any_registers = true;
        -:        -:  900:   }
        -:        -:  901:
    #####:    #####:  902:   last_scratch += size * REG_SIZE;
        -:        -:  903:
        -:        -:  904:   /* Generate spill/unspill instructions for the objects being
        -:        -:  905:    * spilled.  Right now, we spill or unspill the whole thing to a
        -:        -:  906:    * virtual grf of the same size.  For most instructions, though, we
        -:        -:  907:    * could just spill/unspill the GRF being accessed.
        -:        -:  908:    */
    #####:    #####:  909:   foreach_block_and_inst (block, fs_inst, inst, cfg) {
    #####:    #####:  910:      const fs_builder ibld = fs_builder(this, block, inst);
        -:        -:  911:
    #####:    #####:  912:      for (unsigned int i = 0; i < inst->sources; i++) {
    #####:    #####:  913:	 if (inst->src[i].file == VGRF &&
    #####:    #####:  914:             inst->src[i].nr == spill_reg) {
    #####:    #####:  915:            int count = regs_read(inst, i);
        -:        -:  916:            int subset_spill_offset = spill_offset +
    #####:    #####:  917:               ROUND_DOWN_TO(inst->src[i].offset, REG_SIZE);
    #####:    #####:  918:            fs_reg unspill_dst(VGRF, alloc.allocate(count));
        -:        -:  919:
    #####:    #####:  920:            inst->src[i].nr = unspill_dst.nr;
    #####:    #####:  921:            inst->src[i].offset %= REG_SIZE;
        -:        -:  922:
        -:        -:  923:            /* We read the largest power-of-two divisor of the register count
        -:        -:  924:             * (because only POT scratch read blocks are allowed by the
        -:        -:  925:             * hardware) up to the maximum supported block size.
        -:        -:  926:             */
        -:        -:  927:            const unsigned width =
    #####:    #####:  928:               MIN2(32, 1u << (ffs(MAX2(1, count) * 8) - 1));
        -:        -:  929:
        -:        -:  930:            /* Set exec_all() on unspill messages under the (rather
        -:        -:  931:             * pessimistic) assumption that there is no one-to-one
        -:        -:  932:             * correspondence between channels of the spilled variable in
        -:        -:  933:             * scratch space and the scratch read message, which operates on
        -:        -:  934:             * 32 bit channels.  It shouldn't hurt in any case because the
        -:        -:  935:             * unspill destination is a block-local temporary.
        -:        -:  936:             */
    #####:    #####:  937:            emit_unspill(ibld.exec_all().group(width, 0),
    #####:    #####:  938:                         unspill_dst, subset_spill_offset, count);
        -:        -:  939:	 }
        -:        -:  940:      }
        -:        -:  941:
    #####:    #####:  942:      if (inst->dst.file == VGRF &&
    #####:    #####:  943:          inst->dst.nr == spill_reg) {
        -:        -:  944:         int subset_spill_offset = spill_offset +
    #####:    #####:  945:            ROUND_DOWN_TO(inst->dst.offset, REG_SIZE);
    #####:    #####:  946:         fs_reg spill_src(VGRF, alloc.allocate(regs_written(inst)));
        -:        -:  947:
    #####:    #####:  948:         inst->dst.nr = spill_src.nr;
    #####:    #####:  949:         inst->dst.offset %= REG_SIZE;
        -:        -:  950:
        -:        -:  951:         /* If we're immediately spilling the register, we should not use
        -:        -:  952:          * destination dependency hints.  Doing so will cause the GPU do
        -:        -:  953:          * try to read and write the register at the same time and may
        -:        -:  954:          * hang the GPU.
        -:        -:  955:          */
    #####:    #####:  956:         inst->no_dd_clear = false;
    #####:    #####:  957:         inst->no_dd_check = false;
        -:        -:  958:
        -:        -:  959:         /* Calculate the execution width of the scratch messages (which work
        -:        -:  960:          * in terms of 32 bit components so we have a fixed number of eight
        -:        -:  961:          * channels per spilled register).  We attempt to write one
        -:        -:  962:          * exec_size-wide component of the variable at a time without
        -:        -:  963:          * exceeding the maximum number of (fake) MRF registers reserved for
        -:        -:  964:          * spills.
        -:        -:  965:          */
    #####:    #####:  966:         const unsigned width = 8 * MIN2(
        -:        -:  967:            DIV_ROUND_UP(inst->dst.component_size(inst->exec_size), REG_SIZE),
        -:        -:  968:            spill_max_size(this));
        -:        -:  969:
        -:        -:  970:         /* Spills should only write data initialized by the instruction for
        -:        -:  971:          * whichever channels are enabled in the excution mask.  If that's
        -:        -:  972:          * not possible we'll have to emit a matching unspill before the
        -:        -:  973:          * instruction and set force_writemask_all on the spill.
        -:        -:  974:          */
        -:        -:  975:         const bool per_channel =
    #####:    #####:  976:            inst->dst.is_contiguous() && type_sz(inst->dst.type) == 4 &&
    #####:    #####:  977:            inst->exec_size == width;
        -:        -:  978:
        -:        -:  979:         /* Builder used to emit the scratch messages. */
    #####:    #####:  980:         const fs_builder ubld = ibld.exec_all(!per_channel).group(width, 0);
        -:        -:  981:
        -:        -:  982:	 /* If our write is going to affect just part of the
        -:        -:  983:          * regs_written(inst), then we need to unspill the destination since
        -:        -:  984:          * we write back out all of the regs_written().  If the original
        -:        -:  985:          * instruction had force_writemask_all set and is not a partial
        -:        -:  986:          * write, there should be no need for the unspill since the
        -:        -:  987:          * instruction will be overwriting the whole destination in any case.
        -:        -:  988:	  */
    #####:    #####:  989:         if (inst->is_partial_write() ||
    #####:    #####:  990:             (!inst->force_writemask_all && !per_channel))
    #####:    #####:  991:            emit_unspill(ubld, spill_src, subset_spill_offset,
    #####:    #####:  992:                         regs_written(inst));
        -:        -:  993:
    #####:    #####:  994:         emit_spill(ubld.at(block, inst->next), spill_src,
    #####:    #####:  995:                    subset_spill_offset, regs_written(inst));
        -:        -:  996:      }
        -:        -:  997:   }
        -:        -:  998:
    #####:    #####:  999:   invalidate_live_intervals();
        3:        3: 1000:}

src/intel/brw_fs_register_coalesce.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_register_coalesce.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_register_coalesce.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_register_coalesce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs_register_coalesce.cpp
        -:        -:   25: *
        -:        -:   26: * Implements register coalescing: Checks if the two registers involved in a
        -:        -:   27: * raw move don't interfere, in which case they can both be stored in the same
        -:        -:   28: * place and the MOV removed.
        -:        -:   29: *
        -:        -:   30: * To do this, all uses of the source of the MOV in the shader are replaced
        -:        -:   31: * with the destination of the MOV. For example:
        -:        -:   32: *
        -:        -:   33: * add vgrf3:F, vgrf1:F, vgrf2:F
        -:        -:   34: * mov vgrf4:F, vgrf3:F
        -:        -:   35: * mul vgrf5:F, vgrf5:F, vgrf4:F
        -:        -:   36: *
        -:        -:   37: * becomes
        -:        -:   38: *
        -:        -:   39: * add vgrf4:F, vgrf1:F, vgrf2:F
        -:        -:   40: * mul vgrf5:F, vgrf5:F, vgrf4:F
        -:        -:   41: */
        -:        -:   42:
        -:        -:   43:#include "brw_fs.h"
        -:        -:   44:#include "brw_cfg.h"
        -:        -:   45:#include "brw_fs_live_variables.h"
        -:        -:   46:
        -:        -:   47:static bool
       54:       56:   48:is_nop_mov(const fs_inst *inst)
        -:        -:   49:{
       54:       56:   50:   if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD) {
    #####:    #####:   51:      fs_reg dst = inst->dst;
    #####:    #####:   52:      for (int i = 0; i < inst->sources; i++) {
    #####:    #####:   53:         if (!dst.equals(inst->src[i])) {
    #####:    #####:   54:            return false;
        -:        -:   55:         }
    #####:    #####:   56:         dst.offset += (i < inst->header_size ? REG_SIZE :
    #####:    #####:   57:                        inst->exec_size * dst.stride *
    #####:    #####:   58:                        type_sz(inst->src[i].type));
        -:        -:   59:      }
    #####:    #####:   60:      return true;
       54:       56:   61:   } else if (inst->opcode == BRW_OPCODE_MOV) {
       54:       56:   62:      return inst->dst.equals(inst->src[0]);
        -:        -:   63:   }
        -:        -:   64:
    #####:    #####:   65:   return false;
        -:        -:   66:}
        -:        -:   67:
        -:        -:   68:static bool
     1032:     1315:   69:is_coalesce_candidate(const fs_visitor *v, const fs_inst *inst)
        -:        -:   70:{
     2894:     3685:   71:   if ((inst->opcode != BRW_OPCODE_MOV &&
     1037:     1320:   72:        inst->opcode != SHADER_OPCODE_LOAD_PAYLOAD) ||
      414:      530:   73:       inst->is_partial_write() ||
      414:      530:   74:       inst->saturate ||
      314:      388:   75:       inst->src[0].file != VGRF ||
      214:      246:   76:       inst->src[0].negate ||
      214:      246:   77:       inst->src[0].abs ||
      214:      246:   78:       !inst->src[0].is_contiguous() ||
     1223:     1530:   79:       inst->dst.file != VGRF ||
       84:       92:   80:       inst->dst.type != inst->src[0].type) {
      978:     1259:   81:      return false;
        -:        -:   82:   }
        -:        -:   83:
      108:      112:   84:   if (v->alloc.sizes[inst->src[0].nr] >
       54:       56:   85:       v->alloc.sizes[inst->dst.nr])
    #####:    #####:   86:      return false;
        -:        -:   87:
       54:       56:   88:   if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD) {
    #####:    #####:   89:      if (!inst->is_copy_payload(v->alloc)) {
    #####:    #####:   90:         return false;
        -:        -:   91:      }
        -:        -:   92:   }
        -:        -:   93:
       54:       56:   94:   return true;
        -:        -:   95:}
        -:        -:   96:
        -:        -:   97:static bool
       64:       67:   98:can_coalesce_vars(brw::fs_live_variables *live_intervals,
        -:        -:   99:                  const cfg_t *cfg, const fs_inst *inst,
        -:        -:  100:                  int dst_var, int src_var)
        -:        -:  101:{
       64:       67:  102:   if (!live_intervals->vars_interfere(src_var, dst_var))
       34:       37:  103:      return true;
        -:        -:  104:
       30:       30:  105:   int dst_start = live_intervals->start[dst_var];
       30:       30:  106:   int dst_end = live_intervals->end[dst_var];
       30:       30:  107:   int src_start = live_intervals->start[src_var];
       30:       30:  108:   int src_end = live_intervals->end[src_var];
        -:        -:  109:
        -:        -:  110:   /* Variables interfere and one line range isn't a subset of the other. */
       30:       30:  111:   if ((dst_end > src_end && src_start < dst_start) ||
        4:        2:  112:       (src_end > dst_end && dst_start < src_start))
        4:    #####:  113:      return false;
        -:        -:  114:
        -:        -:  115:   /* Check for a write to either register in the intersection of their live
        -:        -:  116:    * ranges.
        -:        -:  117:    */
       26:       30:  118:   int start_ip = MAX2(dst_start, src_start);
       26:       30:  119:   int end_ip = MIN2(dst_end, src_end);
        -:        -:  120:
       72:       84:  121:   foreach_block(block, cfg) {
       72:       84:  122:      if (block->end_ip < start_ip)
       24:       28:  123:         continue;
        -:        -:  124:
       48:       56:  125:      int scan_ip = block->start_ip - 1;
        -:        -:  126:
      296:      406:  127:      foreach_inst_in_block(fs_inst, scan_inst, block) {
      274:      380:  128:         scan_ip++;
        -:        -:  129:
        -:        -:  130:         /* Ignore anything before the intersection of the live ranges */
      274:      380:  131:         if (scan_ip < start_ip)
      170:      280:  132:            continue;
        -:        -:  133:
        -:        -:  134:         /* Ignore the copying instruction itself */
      104:      100:  135:         if (scan_inst == inst)
        4:        2:  136:            continue;
        -:        -:  137:
      100:       98:  138:         if (scan_ip > end_ip)
    #####:    #####:  139:            return true; /* registers do not interfere */
        -:        -:  140:
      200:      196:  141:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
      294:      290:  142:                             inst->dst, inst->size_written) ||
      188:      188:  143:             regions_overlap(scan_inst->dst, scan_inst->size_written,
       94:       94:  144:                             inst->src[0], inst->size_read(0)))
       26:       30:  145:            return false; /* registers interfere */
        -:        -:  146:      }
        -:        -:  147:   }
        -:        -:  148:
    #####:    #####:  149:   return true;
        -:        -:  150:}
        -:        -:  151:
        -:        -:  152:bool
       22:       24:  153:fs_visitor::register_coalesce()
        -:        -:  154:{
       22:       24:  155:   bool progress = false;
        -:        -:  156:
       22:       24:  157:   calculate_live_intervals();
        -:        -:  158:
       22:       24:  159:   int src_size = 0;
       22:       24:  160:   int channels_remaining = 0;
       22:       24:  161:   int src_reg = -1, dst_reg = -1;
        -:        -:  162:   int dst_reg_offset[MAX_VGRF_SIZE];
        -:        -:  163:   fs_inst *mov[MAX_VGRF_SIZE];
        -:        -:  164:   int dst_var[MAX_VGRF_SIZE];
        -:        -:  165:   int src_var[MAX_VGRF_SIZE];
        -:        -:  166:
     1054:     1339:  167:   foreach_block_and_inst(block, fs_inst, inst, cfg) {
     1032:     1315:  168:      if (!is_coalesce_candidate(this, inst))
      978:     1259:  169:         continue;
        -:        -:  170:
       54:       56:  171:      if (is_nop_mov(inst)) {
    #####:    #####:  172:         inst->opcode = BRW_OPCODE_NOP;
    #####:    #####:  173:         progress = true;
    #####:    #####:  174:         continue;
        -:        -:  175:      }
        -:        -:  176:
       54:       56:  177:      if (src_reg != inst->src[0].nr) {
       54:       56:  178:         src_reg = inst->src[0].nr;
        -:        -:  179:
       54:       56:  180:         src_size = alloc.sizes[inst->src[0].nr];
       54:       56:  181:         assert(src_size <= MAX_VGRF_SIZE);
        -:        -:  182:
       54:       56:  183:         channels_remaining = src_size;
       54:       56:  184:         memset(mov, 0, sizeof(mov));
        -:        -:  185:
       54:       56:  186:         dst_reg = inst->dst.nr;
        -:        -:  187:      }
        -:        -:  188:
       54:       56:  189:      if (dst_reg != inst->dst.nr)
    #####:    #####:  190:         continue;
        -:        -:  191:
       54:       56:  192:      if (inst->opcode == SHADER_OPCODE_LOAD_PAYLOAD) {
    #####:    #####:  193:         for (int i = 0; i < src_size; i++) {
    #####:    #####:  194:            dst_reg_offset[i] = i;
        -:        -:  195:         }
    #####:    #####:  196:         mov[0] = inst;
    #####:    #####:  197:         channels_remaining -= regs_written(inst);
        -:        -:  198:      } else {
       54:       56:  199:         const int offset = inst->src[0].offset / REG_SIZE;
       54:       56:  200:         if (mov[offset]) {
        -:        -:  201:            /* This is the second time that this offset in the register has
        -:        -:  202:             * been set.  This means, in particular, that inst->dst was
        -:        -:  203:             * live before this instruction and that the live ranges of
        -:        -:  204:             * inst->dst and inst->src[0] overlap and we can't coalesce the
        -:        -:  205:             * two variables.  Let's ensure that doesn't happen.
        -:        -:  206:             */
    #####:    #####:  207:            channels_remaining = -1;
    #####:    #####:  208:            continue;
        -:        -:  209:         }
      133:      138:  210:         for (unsigned i = 0; i < MAX2(inst->size_written / REG_SIZE, 1); i++)
       79:       82:  211:            dst_reg_offset[offset + i] = inst->dst.offset / REG_SIZE + i;
       54:       56:  212:         mov[offset] = inst;
       54:       56:  213:         channels_remaining -= regs_written(inst);
        -:        -:  214:      }
        -:        -:  215:
       54:       56:  216:      if (channels_remaining)
    #####:    #####:  217:         continue;
        -:        -:  218:
       54:       56:  219:      bool can_coalesce = true;
       88:       93:  220:      for (int i = 0; i < src_size; i++) {
       64:       67:  221:         if (dst_reg_offset[i] != dst_reg_offset[0] + i) {
        -:        -:  222:            /* Registers are out-of-order. */
    #####:    #####:  223:            can_coalesce = false;
    #####:    #####:  224:            src_reg = -1;
    #####:    #####:  225:            break;
        -:        -:  226:         }
        -:        -:  227:
       64:       67:  228:         dst_var[i] = live_intervals->var_from_vgrf[dst_reg] + dst_reg_offset[i];
       64:       67:  229:         src_var[i] = live_intervals->var_from_vgrf[src_reg] + i;
        -:        -:  230:
       64:       67:  231:         if (!can_coalesce_vars(live_intervals, cfg, inst,
        -:        -:  232:                                dst_var[i], src_var[i])) {
       30:       30:  233:            can_coalesce = false;
       30:       30:  234:            src_reg = -1;
       30:       30:  235:            break;
        -:        -:  236:         }
        -:        -:  237:      }
        -:        -:  238:
       54:       56:  239:      if (!can_coalesce)
       30:       30:  240:         continue;
        -:        -:  241:
       24:       26:  242:      progress = true;
        -:        -:  243:
       58:       63:  244:      for (int i = 0; i < src_size; i++) {
       34:       37:  245:         if (mov[i]) {
       24:       26:  246:            mov[i]->opcode = BRW_OPCODE_NOP;
       24:       26:  247:            mov[i]->conditional_mod = BRW_CONDITIONAL_NONE;
       24:       26:  248:            mov[i]->dst = reg_undef;
       48:       52:  249:            for (int j = 0; j < mov[i]->sources; j++) {
       24:       26:  250:               mov[i]->src[j] = reg_undef;
        -:        -:  251:            }
        -:        -:  252:         }
        -:        -:  253:      }
        -:        -:  254:
     1326:     1835:  255:      foreach_block_and_inst(block, fs_inst, scan_inst, cfg) {
     2064:     2708:  256:         if (scan_inst->dst.file == VGRF &&
      762:      899:  257:             scan_inst->dst.nr == src_reg) {
       24:       26:  258:            scan_inst->dst.nr = dst_reg;
       24:       26:  259:            scan_inst->dst.offset = scan_inst->dst.offset % REG_SIZE +
       24:       26:  260:               dst_reg_offset[scan_inst->dst.offset / REG_SIZE] * REG_SIZE;
        -:        -:  261:         }
        -:        -:  262:
     3002:     3867:  263:         for (int j = 0; j < scan_inst->sources; j++) {
     2804:     3404:  264:            if (scan_inst->src[j].file == VGRF &&
     1104:     1346:  265:                scan_inst->src[j].nr == src_reg) {
       14:       14:  266:               scan_inst->src[j].nr = dst_reg;
       14:       14:  267:               scan_inst->src[j].offset = scan_inst->src[j].offset % REG_SIZE +
       14:       14:  268:                  dst_reg_offset[scan_inst->src[j].offset / REG_SIZE] * REG_SIZE;
        -:        -:  269:            }
        -:        -:  270:         }
        -:        -:  271:      }
        -:        -:  272:
       58:       63:  273:      for (int i = 0; i < src_size; i++) {
       34:       37:  274:         live_intervals->start[dst_var[i]] =
       68:       74:  275:            MIN2(live_intervals->start[dst_var[i]],
       68:       74:  276:                 live_intervals->start[src_var[i]]);
       34:       37:  277:         live_intervals->end[dst_var[i]] =
       68:       74:  278:            MAX2(live_intervals->end[dst_var[i]],
       68:       74:  279:                 live_intervals->end[src_var[i]]);
        -:        -:  280:      }
       24:       26:  281:      src_reg = -1;
        -:        -:  282:   }
        -:        -:  283:
       22:       24:  284:   if (progress) {
      231:      275:  285:      foreach_block_and_inst_safe (block, backend_instruction, inst, cfg) {
      226:      270:  286:         if (inst->opcode == BRW_OPCODE_NOP) {
       24:       26:  287:            inst->remove(block);
        -:        -:  288:         }
        -:        -:  289:      }
        -:        -:  290:
        5:        5:  291:      invalidate_live_intervals();
        -:        -:  292:   }
        -:        -:  293:
       22:       24:  294:   return progress;
        3:        3:  295:}

src/intel/brw_fs_saturate_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_saturate_propagation.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_fs_live_variables.h"
        -:        -:   26:#include "brw_cfg.h"
        -:        -:   27:
        -:        -:   28:/** @file brw_fs_saturate_propagation.cpp
        -:        -:   29: *
        -:        -:   30: * Implements a pass that propagates the SAT modifier from a MOV.SAT into the
        -:        -:   31: * instruction that produced the source of the MOV.SAT, thereby allowing the
        -:        -:   32: * MOV's src and dst to be coalesced and the MOV removed.
        -:        -:   33: *
        -:        -:   34: * For instance,
        -:        -:   35: *
        -:        -:   36: *    ADD     tmp, src0, src1
        -:        -:   37: *    MOV.SAT dst, tmp
        -:        -:   38: *
        -:        -:   39: * would be transformed into
        -:        -:   40: *
        -:        -:   41: *    ADD.SAT tmp, src0, src1
        -:        -:   42: *    MOV     dst, tmp
        -:        -:   43: */
        -:        -:   44:
        -:        -:   45:static bool
      144:      238:   46:opt_saturate_propagation_local(fs_visitor *v, bblock_t *block)
        -:        -:   47:{
      144:      238:   48:   bool progress = false;
      144:      238:   49:   int ip = block->end_ip + 1;
        -:        -:   50:
      743:     1096:   51:   foreach_inst_in_block_reverse(fs_inst, inst, block) {
      599:      858:   52:      ip--;
        -:        -:   53:
      721:     1030:   54:      if (inst->opcode != BRW_OPCODE_MOV ||
      122:      172:   55:          !inst->saturate ||
    #####:    #####:   56:          inst->dst.file != VGRF ||
    #####:    #####:   57:          inst->dst.type != inst->src[0].type ||
    #####:    #####:   58:          inst->src[0].file != VGRF ||
    #####:    #####:   59:          inst->src[0].abs)
      599:      858:   60:         continue;
        -:        -:   61:
    #####:    #####:   62:      int src_var = v->live_intervals->var_from_reg(inst->src[0]);
    #####:    #####:   63:      int src_end_ip = v->live_intervals->end[src_var];
        -:        -:   64:
    #####:    #####:   65:      bool interfered = false;
    #####:    #####:   66:      foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
    #####:    #####:   67:         if (regions_overlap(scan_inst->dst, scan_inst->size_written,
    #####:    #####:   68:                             inst->src[0], inst->size_read(0))) {
    #####:    #####:   69:            if (scan_inst->is_partial_write() ||
    #####:    #####:   70:                (scan_inst->dst.type != inst->dst.type &&
    #####:    #####:   71:                 !scan_inst->can_change_types()))
    #####:    #####:   72:               break;
        -:        -:   73:
    #####:    #####:   74:            if (scan_inst->saturate) {
    #####:    #####:   75:               inst->saturate = false;
    #####:    #####:   76:               progress = true;
    #####:    #####:   77:            } else if (src_end_ip == ip || inst->dst.equals(inst->src[0])) {
    #####:    #####:   78:               if (scan_inst->can_do_saturate()) {
    #####:    #####:   79:                  if (scan_inst->dst.type != inst->dst.type) {
    #####:    #####:   80:                     scan_inst->dst.type = inst->dst.type;
    #####:    #####:   81:                     for (int i = 0; i < scan_inst->sources; i++) {
    #####:    #####:   82:                        scan_inst->src[i].type = inst->dst.type;
        -:        -:   83:                     }
        -:        -:   84:                  }
        -:        -:   85:
    #####:    #####:   86:                  if (inst->src[0].negate) {
    #####:    #####:   87:                     if (scan_inst->opcode == BRW_OPCODE_MUL) {
    #####:    #####:   88:                        scan_inst->src[0].negate = !scan_inst->src[0].negate;
    #####:    #####:   89:                        inst->src[0].negate = false;
    #####:    #####:   90:                     } else if (scan_inst->opcode == BRW_OPCODE_MAD) {
    #####:    #####:   91:                        scan_inst->src[0].negate = !scan_inst->src[0].negate;
    #####:    #####:   92:                        scan_inst->src[1].negate = !scan_inst->src[1].negate;
    #####:    #####:   93:                        inst->src[0].negate = false;
    #####:    #####:   94:                     } else if (scan_inst->opcode == BRW_OPCODE_ADD) {
    #####:    #####:   95:                        if (scan_inst->src[1].file == IMM) {
    #####:    #####:   96:                           if (!brw_negate_immediate(scan_inst->src[1].type,
    #####:    #####:   97:                                                     &scan_inst->src[1].as_brw_reg())) {
    #####:    #####:   98:                              break;
        -:        -:   99:                           }
        -:        -:  100:                        } else {
    #####:    #####:  101:                           scan_inst->src[1].negate = !scan_inst->src[1].negate;
        -:        -:  102:                        }
    #####:    #####:  103:                        scan_inst->src[0].negate = !scan_inst->src[0].negate;
    #####:    #####:  104:                        inst->src[0].negate = false;
        -:        -:  105:                     } else {
    #####:    #####:  106:                        break;
        -:        -:  107:                     }
        -:        -:  108:                  }
        -:        -:  109:
    #####:    #####:  110:                  scan_inst->saturate = true;
    #####:    #####:  111:                  inst->saturate = false;
    #####:    #####:  112:                  progress = true;
        -:        -:  113:               }
        -:        -:  114:            }
    #####:    #####:  115:            break;
        -:        -:  116:         }
    #####:    #####:  117:         for (int i = 0; i < scan_inst->sources; i++) {
    #####:    #####:  118:            if (scan_inst->src[i].file == VGRF &&
    #####:    #####:  119:                scan_inst->src[i].nr == inst->src[0].nr &&
    #####:    #####:  120:                scan_inst->src[i].offset / REG_SIZE ==
    #####:    #####:  121:                 inst->src[0].offset / REG_SIZE) {
    #####:    #####:  122:               if (scan_inst->opcode != BRW_OPCODE_MOV ||
    #####:    #####:  123:                   !scan_inst->saturate ||
    #####:    #####:  124:                   scan_inst->src[0].abs ||
    #####:    #####:  125:                   scan_inst->src[0].negate ||
    #####:    #####:  126:                   scan_inst->src[0].abs != inst->src[0].abs ||
    #####:    #####:  127:                   scan_inst->src[0].negate != inst->src[0].negate) {
    #####:    #####:  128:                  interfered = true;
    #####:    #####:  129:                  break;
        -:        -:  130:               }
        -:        -:  131:            }
        -:        -:  132:         }
        -:        -:  133:
    #####:    #####:  134:         if (interfered)
    #####:    #####:  135:            break;
        -:        -:  136:      }
        -:        -:  137:   }
        -:        -:  138:
      144:      238:  139:   return progress;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:bool
       12:       14:  143:fs_visitor::opt_saturate_propagation()
        -:        -:  144:{
       12:       14:  145:   bool progress = false;
        -:        -:  146:
       12:       14:  147:   calculate_live_intervals();
        -:        -:  148:
      156:      252:  149:   foreach_block (block, cfg) {
      144:      238:  150:      progress = opt_saturate_propagation_local(this, block) || progress;
        -:        -:  151:   }
        -:        -:  152:
        -:        -:  153:   /* Live intervals are still valid. */
        -:        -:  154:
       12:       14:  155:   return progress;
        3:        3:  156:}

src/intel/brw_fs_sel_peephole.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_sel_peephole.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_sel_peephole.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_sel_peephole.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_fs.h"
        -:        -:   25:#include "brw_cfg.h"
        -:        -:   26:
        -:        -:   27:/** @file brw_fs_sel_peephole.cpp
        -:        -:   28: *
        -:        -:   29: * This file contains the opt_peephole_sel() optimization pass that replaces
        -:        -:   30: * MOV instructions to the same destination in the "then" and "else" bodies of
        -:        -:   31: * an if statement with SEL instructions.
        -:        -:   32: */
        -:        -:   33:
        -:        -:   34:/* Four MOVs seems to be pretty typical, so I picked the next power of two in
        -:        -:   35: * the hopes that it would handle almost anything possible in a single
        -:        -:   36: * pass.
        -:        -:   37: */
        -:        -:   38:#define MAX_MOVS 8 /**< The maximum number of MOVs to attempt to match. */
        -:        -:   39:
        -:        -:   40:using namespace brw;
        -:        -:   41:
        -:        -:   42:/**
        -:        -:   43: * Scans forwards from an IF counting consecutive MOV instructions in the
        -:        -:   44: * "then" and "else" blocks of the if statement.
        -:        -:   45: *
        -:        -:   46: * A pointer to the bblock_t following the IF is passed as the <then_block>
        -:        -:   47: * argument. The function stores pointers to the MOV instructions in the
        -:        -:   48: * <then_mov> and <else_mov> arrays.
        -:        -:   49: *
        -:        -:   50: * \return the minimum number of MOVs found in the two branches or zero if
        -:        -:   51: *         an error occurred.
        -:        -:   52: *
        -:        -:   53: * E.g.:
        -:        -:   54: *                  IF ...
        -:        -:   55: *    then_mov[0] = MOV g4, ...
        -:        -:   56: *    then_mov[1] = MOV g5, ...
        -:        -:   57: *    then_mov[2] = MOV g6, ...
        -:        -:   58: *                  ELSE ...
        -:        -:   59: *    else_mov[0] = MOV g4, ...
        -:        -:   60: *    else_mov[1] = MOV g5, ...
        -:        -:   61: *    else_mov[2] = MOV g7, ...
        -:        -:   62: *                  ENDIF
        -:        -:   63: *    returns 3.
        -:        -:   64: */
        -:        -:   65:static int
       18:       26:   66:count_movs_from_if(fs_inst *then_mov[MAX_MOVS], fs_inst *else_mov[MAX_MOVS],
        -:        -:   67:                   bblock_t *then_block, bblock_t *else_block)
        -:        -:   68:{
       18:       26:   69:   int then_movs = 0;
       30:       34:   70:   foreach_inst_in_block(fs_inst, inst, then_block) {
       30:       34:   71:      if (then_movs == MAX_MOVS || inst->opcode != BRW_OPCODE_MOV)
        -:        -:   72:         break;
        -:        -:   73:
       12:        8:   74:      then_mov[then_movs] = inst;
       12:        8:   75:      then_movs++;
        -:        -:   76:   }
        -:        -:   77:
       18:       26:   78:   int else_movs = 0;
       18:       26:   79:   foreach_inst_in_block(fs_inst, inst, else_block) {
       18:       26:   80:      if (else_movs == MAX_MOVS || inst->opcode != BRW_OPCODE_MOV)
        -:        -:   81:         break;
        -:        -:   82:
    #####:    #####:   83:      else_mov[else_movs] = inst;
    #####:    #####:   84:      else_movs++;
        -:        -:   85:   }
        -:        -:   86:
       18:       26:   87:   return MIN2(then_movs, else_movs);
        -:        -:   88:}
        -:        -:   89:
        -:        -:   90:/**
        -:        -:   91: * Try to replace IF/MOV+/ELSE/MOV+/ENDIF with SEL.
        -:        -:   92: *
        -:        -:   93: * Many GLSL shaders contain the following pattern:
        -:        -:   94: *
        -:        -:   95: *    x = condition ? foo : bar
        -:        -:   96: *
        -:        -:   97: * or
        -:        -:   98: *
        -:        -:   99: *    if (...) a.xyzw = foo.xyzw;
        -:        -:  100: *    else     a.xyzw = bar.xyzw;
        -:        -:  101: *
        -:        -:  102: * The compiler emits an ir_if tree for this, since each subexpression might be
        -:        -:  103: * a complex tree that could have side-effects or short-circuit logic.
        -:        -:  104: *
        -:        -:  105: * However, the common case is to simply select one of two constants or
        -:        -:  106: * variable values---which is exactly what SEL is for.  In this case, the
        -:        -:  107: * assembly looks like:
        -:        -:  108: *
        -:        -:  109: *    (+f0) IF
        -:        -:  110: *    MOV dst src0
        -:        -:  111: *    ...
        -:        -:  112: *    ELSE
        -:        -:  113: *    MOV dst src1
        -:        -:  114: *    ...
        -:        -:  115: *    ENDIF
        -:        -:  116: *
        -:        -:  117: * where each pair of MOVs to a common destination and can be easily translated
        -:        -:  118: * into
        -:        -:  119: *
        -:        -:  120: *    (+f0) SEL dst src0 src1
        -:        -:  121: *
        -:        -:  122: * If src0 is an immediate value, we promote it to a temporary GRF.
        -:        -:  123: */
        -:        -:  124:bool
       17:       19:  125:fs_visitor::opt_peephole_sel()
        -:        -:  126:{
       17:       19:  127:   bool progress = false;
        -:        -:  128:
      218:      330:  129:   foreach_block (block, cfg) {
        -:        -:  130:      /* IF instructions, by definition, can only be found at the ends of
        -:        -:  131:       * basic blocks.
        -:        -:  132:       */
      201:      311:  133:      fs_inst *if_inst = (fs_inst *)block->end();
      201:      311:  134:      if (if_inst->opcode != BRW_OPCODE_IF)
      330:      540:  135:         continue;
        -:        -:  136:
       72:       82:  137:      fs_inst *else_mov[MAX_MOVS] = { NULL };
       72:       82:  138:      fs_inst *then_mov[MAX_MOVS] = { NULL };
        -:        -:  139:
       72:       82:  140:      bblock_t *then_block = block->next();
       72:       82:  141:      bblock_t *else_block = NULL;
      144:      164:  142:      foreach_list_typed(bblock_link, child, link, &block->children) {
      144:      164:  143:         if (child->block != then_block) {
       72:       82:  144:            if (child->block->prev()->end()->opcode == BRW_OPCODE_ELSE) {
       18:       26:  145:               else_block = child->block;
        -:        -:  146:            }
       72:       82:  147:            break;
        -:        -:  148:         }
        -:        -:  149:      }
       72:       82:  150:      if (else_block == NULL)
       54:       56:  151:         continue;
        -:        -:  152:
       18:       26:  153:      int movs = count_movs_from_if(then_mov, else_mov, then_block, else_block);
        -:        -:  154:
       18:       26:  155:      if (movs == 0)
       18:       26:  156:         continue;
        -:        -:  157:
        -:        -:  158:      /* Generate SEL instructions for pairs of MOVs to a common destination. */
    #####:    #####:  159:      for (int i = 0; i < movs; i++) {
    #####:    #####:  160:         if (!then_mov[i] || !else_mov[i])
        -:        -:  161:            break;
        -:        -:  162:
        -:        -:  163:         /* Check that the MOVs are the right form. */
    #####:    #####:  164:         if (!then_mov[i]->dst.equals(else_mov[i]->dst) ||
    #####:    #####:  165:             then_mov[i]->exec_size != else_mov[i]->exec_size ||
    #####:    #####:  166:             then_mov[i]->group != else_mov[i]->group ||
    #####:    #####:  167:             then_mov[i]->force_writemask_all != else_mov[i]->force_writemask_all ||
    #####:    #####:  168:             then_mov[i]->is_partial_write() ||
    #####:    #####:  169:             else_mov[i]->is_partial_write() ||
    #####:    #####:  170:             then_mov[i]->conditional_mod != BRW_CONDITIONAL_NONE ||
    #####:    #####:  171:             else_mov[i]->conditional_mod != BRW_CONDITIONAL_NONE) {
    #####:    #####:  172:            movs = i;
    #####:    #####:  173:            break;
        -:        -:  174:         }
        -:        -:  175:
        -:        -:  176:         /* Check that source types for mov operations match. */
    #####:    #####:  177:         if (then_mov[i]->src[0].type != else_mov[i]->src[0].type) {
    #####:    #####:  178:            movs = i;
    #####:    #####:  179:            break;
        -:        -:  180:         }
        -:        -:  181:      }
        -:        -:  182:
    #####:    #####:  183:      if (movs == 0)
    #####:    #####:  184:         continue;
        -:        -:  185:
    #####:    #####:  186:      for (int i = 0; i < movs; i++) {
        -:        -:  187:         const fs_builder ibld = fs_builder(this, then_block, then_mov[i])
    #####:    #####:  188:                                 .at(block, if_inst);
        -:        -:  189:
    #####:    #####:  190:         if (then_mov[i]->src[0].equals(else_mov[i]->src[0])) {
    #####:    #####:  191:            ibld.MOV(then_mov[i]->dst, then_mov[i]->src[0]);
        -:        -:  192:         } else {
        -:        -:  193:            /* Only the last source register can be a constant, so if the MOV
        -:        -:  194:             * in the "then" clause uses a constant, we need to put it in a
        -:        -:  195:             * temporary.
        -:        -:  196:             */
    #####:    #####:  197:            fs_reg src0(then_mov[i]->src[0]);
    #####:    #####:  198:            if (src0.file == IMM) {
    #####:    #####:  199:               src0 = vgrf(glsl_type::float_type);
    #####:    #####:  200:               src0.type = then_mov[i]->src[0].type;
    #####:    #####:  201:               ibld.MOV(src0, then_mov[i]->src[0]);
        -:        -:  202:            }
        -:        -:  203:
    #####:    #####:  204:            set_predicate_inv(if_inst->predicate, if_inst->predicate_inverse,
    #####:    #####:  205:                              ibld.SEL(then_mov[i]->dst, src0,
    #####:    #####:  206:                                       else_mov[i]->src[0]));
        -:        -:  207:         }
        -:        -:  208:
    #####:    #####:  209:         then_mov[i]->remove(then_block);
    #####:    #####:  210:         else_mov[i]->remove(else_block);
        -:        -:  211:      }
        -:        -:  212:
    #####:    #####:  213:      progress = true;
        -:        -:  214:   }
        -:        -:  215:
       17:       19:  216:   if (progress)
    #####:    #####:  217:      invalidate_live_intervals();
        -:        -:  218:
       17:       19:  219:   return progress;
        3:        3:  220:}

src/intel/brw_fs_validate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_validate.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_fs_validate.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_fs_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/** @file brw_fs_validate.cpp
        -:        -:   25: *
        -:        -:   26: * Implements a pass that validates various invariants of the IR.  The current
        -:        -:   27: * pass only validates that GRF's uses are sane.  More can be added later.
        -:        -:   28: */
        -:        -:   29:
        -:        -:   30:#include "brw_fs.h"
        -:        -:   31:#include "brw_cfg.h"
        -:        -:   32:
        -:        -:   33:#define fsv_assert(cond) \
        -:        -:   34:   if (!(cond)) { \
        -:        -:   35:      fprintf(stderr, "ASSERT: Scalar %s validation failed!\n", stage_abbrev); \
        -:        -:   36:      dump_instruction(inst, stderr); \
        -:        -:   37:      fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, #cond); \
        -:        -:   38:      abort(); \
        -:        -:   39:   }
        -:        -:   40:
        -:        -:   41:void
      305:      335:   42:fs_visitor::validate()
        -:        -:   43:{
    15680:    20231:   44:   foreach_block_and_inst (block, fs_inst, inst, cfg) {
    15375:    19896:   45:      if (inst->dst.file == VGRF) {
     9464:    11089:   46:         fsv_assert(inst->dst.offset / REG_SIZE + regs_written(inst) <=
        -:        -:   47:                    alloc.sizes[inst->dst.nr]);
        -:        -:   48:      }
        -:        -:   49:
    35129:    44136:   50:      for (unsigned i = 0; i < inst->sources; i++) {
    19754:    24240:   51:         if (inst->src[i].file == VGRF) {
    12209:    14937:   52:            fsv_assert(inst->src[i].offset / REG_SIZE + regs_read(inst, i) <=
        -:        -:   53:                       alloc.sizes[inst->src[i].nr]);
        -:        -:   54:         }
        -:        -:   55:      }
        -:        -:   56:   }
      308:      338:   57:}

src/intel/brw_nir.c.gcov

        -:        -:    0:Source:compiler/brw_nir.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_nir.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_nir.h"
        -:        -:   25:#include "brw_shader.h"
        -:        -:   26:#include "common/gen_debug.h"
        -:        -:   27:#include "compiler/glsl_types.h"
        -:        -:   28:#include "compiler/nir/nir_builder.h"
        -:        -:   29:
        -:        -:   30:static bool
       39:       49:   31:is_input(nir_intrinsic_instr *intrin)
        -:        -:   32:{
      113:      143:   33:   return intrin->intrinsic == nir_intrinsic_load_input ||
       74:       94:   34:          intrin->intrinsic == nir_intrinsic_load_per_vertex_input ||
       35:       45:   35:          intrin->intrinsic == nir_intrinsic_load_interpolated_input;
        -:        -:   36:}
        -:        -:   37:
        -:        -:   38:static bool
    #####:    #####:   39:is_output(nir_intrinsic_instr *intrin)
        -:        -:   40:{
    #####:    #####:   41:   return intrin->intrinsic == nir_intrinsic_load_output ||
    #####:    #####:   42:          intrin->intrinsic == nir_intrinsic_load_per_vertex_output ||
    #####:    #####:   43:          intrin->intrinsic == nir_intrinsic_store_output ||
    #####:    #####:   44:          intrin->intrinsic == nir_intrinsic_store_per_vertex_output;
        -:        -:   45:}
        -:        -:   46:
        -:        -:   47:/**
        -:        -:   48: * In many cases, we just add the base and offset together, so there's no
        -:        -:   49: * reason to keep them separate.  Sometimes, combining them is essential:
        -:        -:   50: * if a shader only accesses part of a compound variable (such as a matrix
        -:        -:   51: * or array), the variable's base may not actually exist in the VUE map.
        -:        -:   52: *
        -:        -:   53: * This pass adds constant offsets to instr->const_index[0], and resets
        -:        -:   54: * the offset source to 0.  Non-constant offsets remain unchanged - since
        -:        -:   55: * we don't know what part of a compound variable is accessed, we allocate
        -:        -:   56: * storage for the entire thing.
        -:        -:   57: */
        -:        -:   58:
        -:        -:   59:static bool
       36:       52:   60:add_const_offset_to_base_block(nir_block *block, nir_builder *b,
        -:        -:   61:                               nir_variable_mode mode)
        -:        -:   62:{
      242:      310:   63:   nir_foreach_instr_safe(instr, block) {
      206:      258:   64:      if (instr->type != nir_instr_type_intrinsic)
      167:      209:   65:         continue;
        -:        -:   66:
       39:       49:   67:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:   68:
       39:       49:   69:      if ((mode == nir_var_shader_in && is_input(intrin)) ||
    #####:    #####:   70:          (mode == nir_var_shader_out && is_output(intrin))) {
        9:       13:   71:         nir_src *offset = nir_get_io_offset_src(intrin);
        9:       13:   72:         nir_const_value *const_offset = nir_src_as_const_value(*offset);
        -:        -:   73:
        9:       13:   74:         if (const_offset) {
        9:       13:   75:            intrin->const_index[0] += const_offset->u32[0];
        9:       13:   76:            b->cursor = nir_before_instr(&intrin->instr);
        9:       13:   77:            nir_instr_rewrite_src(&intrin->instr, offset,
        -:        -:   78:                                  nir_src_for_ssa(nir_imm_int(b, 0)));
        -:        -:   79:         }
        -:        -:   80:      }
        -:        -:   81:   }
       36:       52:   82:   return true;
        -:        -:   83:}
        -:        -:   84:
        -:        -:   85:static void
        5:        5:   86:add_const_offset_to_base(nir_shader *nir, nir_variable_mode mode)
        -:        -:   87:{
       10:       10:   88:   nir_foreach_function(f, nir) {
        5:        5:   89:      if (f->impl) {
        -:        -:   90:         nir_builder b;
        5:        5:   91:         nir_builder_init(&b, f->impl);
       41:       57:   92:         nir_foreach_block(block, f->impl) {
       36:       52:   93:            add_const_offset_to_base_block(block, &b, mode);
        -:        -:   94:         }
        -:        -:   95:      }
        -:        -:   96:   }
        5:        5:   97:}
        -:        -:   98:
        -:        -:   99:static bool
    #####:    #####:  100:remap_vs_attrs(nir_block *block, shader_info *nir_info)
        -:        -:  101:{
    #####:    #####:  102:   nir_foreach_instr(instr, block) {
    #####:    #####:  103:      if (instr->type != nir_instr_type_intrinsic)
    #####:    #####:  104:         continue;
        -:        -:  105:
    #####:    #####:  106:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  107:
    #####:    #####:  108:      if (intrin->intrinsic == nir_intrinsic_load_input) {
        -:        -:  109:         /* Attributes come in a contiguous block, ordered by their
        -:        -:  110:          * gl_vert_attrib value.  That means we can compute the slot
        -:        -:  111:          * number for an attribute by masking out the enabled attributes
        -:        -:  112:          * before it and counting the bits.
        -:        -:  113:          */
    #####:    #####:  114:         int attr = intrin->const_index[0];
    #####:    #####:  115:         int slot = _mesa_bitcount_64(nir_info->inputs_read &
        -:        -:  116:                                      BITFIELD64_MASK(attr));
    #####:    #####:  117:         intrin->const_index[0] = 4 * slot;
        -:        -:  118:      }
        -:        -:  119:   }
    #####:    #####:  120:   return true;
        -:        -:  121:}
        -:        -:  122:
        -:        -:  123:static bool
    #####:    #####:  124:remap_inputs_with_vue_map(nir_block *block, const struct brw_vue_map *vue_map)
        -:        -:  125:{
    #####:    #####:  126:   nir_foreach_instr(instr, block) {
    #####:    #####:  127:      if (instr->type != nir_instr_type_intrinsic)
    #####:    #####:  128:         continue;
        -:        -:  129:
    #####:    #####:  130:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  131:
    #####:    #####:  132:      if (intrin->intrinsic == nir_intrinsic_load_input ||
    #####:    #####:  133:          intrin->intrinsic == nir_intrinsic_load_per_vertex_input) {
    #####:    #####:  134:         int vue_slot = vue_map->varying_to_slot[intrin->const_index[0]];
    #####:    #####:  135:         assert(vue_slot != -1);
    #####:    #####:  136:         intrin->const_index[0] = vue_slot;
        -:        -:  137:      }
        -:        -:  138:   }
    #####:    #####:  139:   return true;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:static bool
    #####:    #####:  143:remap_tess_levels(nir_builder *b, nir_intrinsic_instr *intr,
        -:        -:  144:                  GLenum primitive_mode)
        -:        -:  145:{
    #####:    #####:  146:   const int location = nir_intrinsic_base(intr);
    #####:    #####:  147:   const unsigned component = nir_intrinsic_component(intr);
        -:        -:  148:   bool out_of_bounds;
        -:        -:  149:
    #####:    #####:  150:   if (location == VARYING_SLOT_TESS_LEVEL_INNER) {
    #####:    #####:  151:      switch (primitive_mode) {
        -:        -:  152:      case GL_QUADS:
        -:        -:  153:         /* gl_TessLevelInner[0..1] lives at DWords 3-2 (reversed). */
    #####:    #####:  154:         nir_intrinsic_set_base(intr, 0);
    #####:    #####:  155:         nir_intrinsic_set_component(intr, 3 - component);
    #####:    #####:  156:         out_of_bounds = false;
    #####:    #####:  157:         break;
        -:        -:  158:      case GL_TRIANGLES:
        -:        -:  159:         /* gl_TessLevelInner[0] lives at DWord 4. */
    #####:    #####:  160:         nir_intrinsic_set_base(intr, 1);
    #####:    #####:  161:         out_of_bounds = component > 0;
    #####:    #####:  162:         break;
        -:        -:  163:      case GL_ISOLINES:
    #####:    #####:  164:         out_of_bounds = true;
    #####:    #####:  165:         break;
        -:        -:  166:      default:
    #####:    #####:  167:         unreachable("Bogus tessellation domain");
        -:        -:  168:      }
    #####:    #####:  169:   } else if (location == VARYING_SLOT_TESS_LEVEL_OUTER) {
    #####:    #####:  170:      if (primitive_mode == GL_ISOLINES) {
        -:        -:  171:         /* gl_TessLevelOuter[0..1] lives at DWords 6-7 (in order). */
    #####:    #####:  172:         nir_intrinsic_set_base(intr, 1);
    #####:    #####:  173:         nir_intrinsic_set_component(intr, 2 + nir_intrinsic_component(intr));
    #####:    #####:  174:         out_of_bounds = component > 1;
        -:        -:  175:      } else {
        -:        -:  176:         /* Triangles use DWords 7-5 (reversed); Quads use 7-4 (reversed) */
    #####:    #####:  177:         nir_intrinsic_set_base(intr, 1);
    #####:    #####:  178:         nir_intrinsic_set_component(intr, 3 - nir_intrinsic_component(intr));
    #####:    #####:  179:         out_of_bounds = component == 3 && primitive_mode == GL_TRIANGLES;
        -:        -:  180:      }
        -:        -:  181:   } else {
    #####:    #####:  182:      return false;
        -:        -:  183:   }
        -:        -:  184:
    #####:    #####:  185:   if (out_of_bounds) {
    #####:    #####:  186:      if (nir_intrinsic_infos[intr->intrinsic].has_dest) {
    #####:    #####:  187:         b->cursor = nir_before_instr(&intr->instr);
    #####:    #####:  188:         nir_ssa_def *undef = nir_ssa_undef(b, 1, 32);
    #####:    #####:  189:         nir_ssa_def_rewrite_uses(&intr->dest.ssa, nir_src_for_ssa(undef));
        -:        -:  190:      }
    #####:    #####:  191:      nir_instr_remove(&intr->instr);
        -:        -:  192:   }
        -:        -:  193:
    #####:    #####:  194:   return true;
        -:        -:  195:}
        -:        -:  196:
        -:        -:  197:static bool
    #####:    #####:  198:remap_patch_urb_offsets(nir_block *block, nir_builder *b,
        -:        -:  199:                        const struct brw_vue_map *vue_map,
        -:        -:  200:                        GLenum tes_primitive_mode)
        -:        -:  201:{
    #####:    #####:  202:   const bool is_passthrough_tcs = b->shader->info->name &&
    #####:    #####:  203:      strcmp(b->shader->info->name, "passthrough") == 0;
        -:        -:  204:
    #####:    #####:  205:   nir_foreach_instr_safe(instr, block) {
    #####:    #####:  206:      if (instr->type != nir_instr_type_intrinsic)
    #####:    #####:  207:         continue;
        -:        -:  208:
    #####:    #####:  209:      nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
        -:        -:  210:
    #####:    #####:  211:      gl_shader_stage stage = b->shader->stage;
        -:        -:  212:
    #####:    #####:  213:      if ((stage == MESA_SHADER_TESS_CTRL && is_output(intrin)) ||
    #####:    #####:  214:          (stage == MESA_SHADER_TESS_EVAL && is_input(intrin))) {
        -:        -:  215:
    #####:    #####:  216:         if (!is_passthrough_tcs &&
    #####:    #####:  217:             remap_tess_levels(b, intrin, tes_primitive_mode))
    #####:    #####:  218:            continue;
        -:        -:  219:
    #####:    #####:  220:         int vue_slot = vue_map->varying_to_slot[intrin->const_index[0]];
    #####:    #####:  221:         assert(vue_slot != -1);
    #####:    #####:  222:         intrin->const_index[0] = vue_slot;
        -:        -:  223:
    #####:    #####:  224:         nir_src *vertex = nir_get_io_vertex_index_src(intrin);
    #####:    #####:  225:         if (vertex) {
    #####:    #####:  226:            nir_const_value *const_vertex = nir_src_as_const_value(*vertex);
    #####:    #####:  227:            if (const_vertex) {
    #####:    #####:  228:               intrin->const_index[0] += const_vertex->u32[0] *
    #####:    #####:  229:                                         vue_map->num_per_vertex_slots;
        -:        -:  230:            } else {
    #####:    #####:  231:               b->cursor = nir_before_instr(&intrin->instr);
        -:        -:  232:
        -:        -:  233:               /* Multiply by the number of per-vertex slots. */
    #####:    #####:  234:               nir_ssa_def *vertex_offset =
    #####:    #####:  235:                  nir_imul(b,
        -:        -:  236:                           nir_ssa_for_src(b, *vertex, 1),
        -:        -:  237:                           nir_imm_int(b,
        -:        -:  238:                                       vue_map->num_per_vertex_slots));
        -:        -:  239:
        -:        -:  240:               /* Add it to the existing offset */
    #####:    #####:  241:               nir_src *offset = nir_get_io_offset_src(intrin);
    #####:    #####:  242:               nir_ssa_def *total_offset =
    #####:    #####:  243:                  nir_iadd(b, vertex_offset,
        -:        -:  244:                           nir_ssa_for_src(b, *offset, 1));
        -:        -:  245:
    #####:    #####:  246:               nir_instr_rewrite_src(&intrin->instr, offset,
        -:        -:  247:                                     nir_src_for_ssa(total_offset));
        -:        -:  248:            }
        -:        -:  249:         }
        -:        -:  250:      }
        -:        -:  251:   }
    #####:    #####:  252:   return true;
        -:        -:  253:}
        -:        -:  254:
        -:        -:  255:void
        2:        2:  256:brw_nir_lower_vs_inputs(nir_shader *nir,
        -:        -:  257:                        bool is_scalar,
        -:        -:  258:                        bool use_legacy_snorm_formula,
        -:        -:  259:                        const uint8_t *vs_attrib_wa_flags)
        -:        -:  260:{
        -:        -:  261:   /* Start with the location of the variable's base. */
        5:        5:  262:   foreach_list_typed(nir_variable, var, node, &nir->inputs) {
        3:        3:  263:      var->data.driver_location = var->data.location;
        -:        -:  264:   }
        -:        -:  265:
        -:        -:  266:   /* Now use nir_lower_io to walk dereference chains.  Attribute arrays are
        -:        -:  267:    * loaded as one vec4 or dvec4 per element (or matrix column), depending on
        -:        -:  268:    * whether it is a double-precision type or not.
        -:        -:  269:    */
        2:        2:  270:   nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0);
        -:        -:  271:
        -:        -:  272:   /* This pass needs actual constants */
        2:        2:  273:   nir_opt_constant_folding(nir);
        -:        -:  274:
        2:        2:  275:   add_const_offset_to_base(nir, nir_var_shader_in);
        -:        -:  276:
        2:        2:  277:   brw_nir_apply_attribute_workarounds(nir, use_legacy_snorm_formula,
        -:        -:  278:                                       vs_attrib_wa_flags);
        -:        -:  279:
        2:        2:  280:   if (is_scalar) {
        -:        -:  281:      /* Finally, translate VERT_ATTRIB_* values into the actual registers. */
        -:        -:  282:
    #####:    #####:  283:      nir_foreach_function(function, nir) {
    #####:    #####:  284:         if (function->impl) {
    #####:    #####:  285:            nir_foreach_block(block, function->impl) {
    #####:    #####:  286:               remap_vs_attrs(block, nir->info);
        -:        -:  287:            }
        -:        -:  288:         }
        -:        -:  289:      }
        -:        -:  290:   }
        2:        2:  291:}
        -:        -:  292:
        -:        -:  293:void
    #####:    #####:  294:brw_nir_lower_vue_inputs(nir_shader *nir, bool is_scalar,
        -:        -:  295:                         const struct brw_vue_map *vue_map)
        -:        -:  296:{
    #####:    #####:  297:   foreach_list_typed(nir_variable, var, node, &nir->inputs) {
    #####:    #####:  298:      var->data.driver_location = var->data.location;
        -:        -:  299:   }
        -:        -:  300:
        -:        -:  301:   /* Inputs are stored in vec4 slots, so use type_size_vec4(). */
    #####:    #####:  302:   nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0);
        -:        -:  303:
    #####:    #####:  304:   if (is_scalar || nir->stage != MESA_SHADER_GEOMETRY) {
        -:        -:  305:      /* This pass needs actual constants */
    #####:    #####:  306:      nir_opt_constant_folding(nir);
        -:        -:  307:
    #####:    #####:  308:      add_const_offset_to_base(nir, nir_var_shader_in);
        -:        -:  309:
    #####:    #####:  310:      nir_foreach_function(function, nir) {
    #####:    #####:  311:         if (function->impl) {
    #####:    #####:  312:            nir_foreach_block(block, function->impl) {
    #####:    #####:  313:               remap_inputs_with_vue_map(block, vue_map);
        -:        -:  314:            }
        -:        -:  315:         }
        -:        -:  316:      }
        -:        -:  317:   }
    #####:    #####:  318:}
        -:        -:  319:
        -:        -:  320:void
    #####:    #####:  321:brw_nir_lower_tes_inputs(nir_shader *nir, const struct brw_vue_map *vue_map)
        -:        -:  322:{
    #####:    #####:  323:   foreach_list_typed(nir_variable, var, node, &nir->inputs) {
    #####:    #####:  324:      var->data.driver_location = var->data.location;
        -:        -:  325:   }
        -:        -:  326:
    #####:    #####:  327:   nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0);
        -:        -:  328:
        -:        -:  329:   /* This pass needs actual constants */
    #####:    #####:  330:   nir_opt_constant_folding(nir);
        -:        -:  331:
    #####:    #####:  332:   add_const_offset_to_base(nir, nir_var_shader_in);
        -:        -:  333:
    #####:    #####:  334:   nir_foreach_function(function, nir) {
    #####:    #####:  335:      if (function->impl) {
        -:        -:  336:         nir_builder b;
    #####:    #####:  337:         nir_builder_init(&b, function->impl);
    #####:    #####:  338:         nir_foreach_block(block, function->impl) {
    #####:    #####:  339:            remap_patch_urb_offsets(block, &b, vue_map,
    #####:    #####:  340:                                    nir->info->tess.primitive_mode);
        -:        -:  341:         }
        -:        -:  342:      }
        -:        -:  343:   }
    #####:    #####:  344:}
        -:        -:  345:
        -:        -:  346:void
        3:        3:  347:brw_nir_lower_fs_inputs(nir_shader *nir,
        -:        -:  348:                        const struct gen_device_info *devinfo,
        -:        -:  349:                        const struct brw_wm_prog_key *key)
        -:        -:  350:{
        6:        6:  351:   foreach_list_typed(nir_variable, var, node, &nir->inputs) {
        3:        3:  352:      var->data.driver_location = var->data.location;
        -:        -:  353:
        -:        -:  354:      /* Apply default interpolation mode.
        -:        -:  355:       *
        -:        -:  356:       * Everything defaults to smooth except for the legacy GL color
        -:        -:  357:       * built-in variables, which might be flat depending on API state.
        -:        -:  358:       */
        3:        3:  359:      if (var->data.interpolation == INTERP_MODE_NONE) {
        2:        2:  360:         const bool flat = key->flat_shade &&
    #####:    #####:  361:            (var->data.location == VARYING_SLOT_COL0 ||
    #####:    #####:  362:             var->data.location == VARYING_SLOT_COL1);
        -:        -:  363:
        2:        2:  364:         var->data.interpolation = flat ? INTERP_MODE_FLAT
        -:        -:  365:                                        : INTERP_MODE_SMOOTH;
        -:        -:  366:      }
        -:        -:  367:
        -:        -:  368:      /* On Ironlake and below, there is only one interpolation mode.
        -:        -:  369:       * Centroid interpolation doesn't mean anything on this hardware --
        -:        -:  370:       * there is no multisampling.
        -:        -:  371:       */
        3:        3:  372:      if (devinfo->gen < 6) {
    #####:    #####:  373:         var->data.centroid = false;
    #####:    #####:  374:         var->data.sample = false;
        -:        -:  375:      }
        -:        -:  376:   }
        -:        -:  377:
        3:        3:  378:   nir_lower_io_options lower_io_options = 0;
        3:        3:  379:   if (key->persample_interp)
    #####:    #####:  380:      lower_io_options |= nir_lower_io_force_sample_interpolation;
        -:        -:  381:
        3:        3:  382:   nir_lower_io(nir, nir_var_shader_in, type_size_vec4, lower_io_options);
        -:        -:  383:
        -:        -:  384:   /* This pass needs actual constants */
        3:        3:  385:   nir_opt_constant_folding(nir);
        -:        -:  386:
        3:        3:  387:   add_const_offset_to_base(nir, nir_var_shader_in);
        3:        3:  388:}
        -:        -:  389:
        -:        -:  390:void
        2:        2:  391:brw_nir_lower_vue_outputs(nir_shader *nir,
        -:        -:  392:                          bool is_scalar)
        -:        -:  393:{
        5:        5:  394:   nir_foreach_variable(var, &nir->outputs) {
        3:        3:  395:      var->data.driver_location = var->data.location;
        -:        -:  396:   }
        -:        -:  397:
        2:        2:  398:   nir_lower_io(nir, nir_var_shader_out, type_size_vec4, 0);
        2:        2:  399:}
        -:        -:  400:
        -:        -:  401:void
    #####:    #####:  402:brw_nir_lower_tcs_outputs(nir_shader *nir, const struct brw_vue_map *vue_map,
        -:        -:  403:                          GLenum tes_primitive_mode)
        -:        -:  404:{
    #####:    #####:  405:   nir_foreach_variable(var, &nir->outputs) {
    #####:    #####:  406:      var->data.driver_location = var->data.location;
        -:        -:  407:   }
        -:        -:  408:
    #####:    #####:  409:   nir_lower_io(nir, nir_var_shader_out, type_size_vec4, 0);
        -:        -:  410:
        -:        -:  411:   /* This pass needs actual constants */
    #####:    #####:  412:   nir_opt_constant_folding(nir);
        -:        -:  413:
    #####:    #####:  414:   add_const_offset_to_base(nir, nir_var_shader_out);
        -:        -:  415:
    #####:    #####:  416:   nir_foreach_function(function, nir) {
    #####:    #####:  417:      if (function->impl) {
        -:        -:  418:         nir_builder b;
    #####:    #####:  419:         nir_builder_init(&b, function->impl);
    #####:    #####:  420:         nir_foreach_block(block, function->impl) {
    #####:    #####:  421:            remap_patch_urb_offsets(block, &b, vue_map, tes_primitive_mode);
        -:        -:  422:         }
        -:        -:  423:      }
        -:        -:  424:   }
    #####:    #####:  425:}
        -:        -:  426:
        -:        -:  427:void
        3:        3:  428:brw_nir_lower_fs_outputs(nir_shader *nir)
        -:        -:  429:{
        6:        6:  430:   nir_foreach_variable(var, &nir->outputs) {
        3:        3:  431:      var->data.driver_location =
        6:        6:  432:         SET_FIELD(var->data.index, BRW_NIR_FRAG_OUTPUT_INDEX) |
        3:        3:  433:         SET_FIELD(var->data.location, BRW_NIR_FRAG_OUTPUT_LOCATION);
        -:        -:  434:   }
        -:        -:  435:
        3:        3:  436:   nir_lower_io(nir, nir_var_shader_out, type_size_dvec4, 0);
        3:        3:  437:}
        -:        -:  438:
        -:        -:  439:void
    #####:    #####:  440:brw_nir_lower_cs_shared(nir_shader *nir)
        -:        -:  441:{
    #####:    #####:  442:   nir_assign_var_locations(&nir->shared, &nir->num_shared,
        -:        -:  443:                            type_size_scalar_bytes);
    #####:    #####:  444:   nir_lower_io(nir, nir_var_shared, type_size_scalar_bytes, 0);
    #####:    #####:  445:}
        -:        -:  446:
        -:        -:  447:#define OPT(pass, ...) ({                                  \
        -:        -:  448:   bool this_progress = false;                             \
        -:        -:  449:   NIR_PASS(this_progress, nir, pass, ##__VA_ARGS__);      \
        -:        -:  450:   if (this_progress)                                      \
        -:        -:  451:      progress = true;                                     \
        -:        -:  452:   this_progress;                                          \
        -:        -:  453:})
        -:        -:  454:
        -:        -:  455:static nir_shader *
       15:       15:  456:nir_optimize(nir_shader *nir, const struct brw_compiler *compiler,
        -:        -:  457:             bool is_scalar)
        -:        -:  458:{
       15:       15:  459:   nir_variable_mode indirect_mask = 0;
       15:       15:  460:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectInput)
       15:       15:  461:      indirect_mask |= nir_var_shader_in;
       15:       15:  462:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectOutput)
        9:        9:  463:      indirect_mask |= nir_var_shader_out;
       15:       15:  464:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectTemp)
        9:        9:  465:      indirect_mask |= nir_var_local;
        -:        -:  466:
        -:        -:  467:   bool progress;
        -:        -:  468:   do {
       27:       27:  469:      progress = false;
       27:       27:  470:      OPT(nir_lower_vars_to_ssa);
       27:       27:  471:      OPT(nir_opt_copy_prop_vars);
        -:        -:  472:
       27:       27:  473:      if (is_scalar) {
       17:       17:  474:         OPT(nir_lower_alu_to_scalar);
        -:        -:  475:      }
        -:        -:  476:
       27:       27:  477:      OPT(nir_copy_prop);
        -:        -:  478:
       27:       27:  479:      if (is_scalar) {
       17:       17:  480:         OPT(nir_lower_phis_to_scalar);
        -:        -:  481:      }
        -:        -:  482:
       27:       27:  483:      OPT(nir_copy_prop);
       27:       27:  484:      OPT(nir_opt_dce);
       27:       27:  485:      OPT(nir_opt_cse);
       27:       27:  486:      OPT(nir_opt_peephole_select, 0);
       27:       27:  487:      OPT(nir_opt_algebraic);
       27:       27:  488:      OPT(nir_opt_constant_folding);
       27:       27:  489:      OPT(nir_opt_dead_cf);
       27:       27:  490:      if (OPT(nir_opt_trivial_continues)) {
        -:        -:  491:         /* If nir_opt_trivial_continues makes progress, then we need to clean
        -:        -:  492:          * things up if we want any hope of nir_opt_if or nir_opt_loop_unroll
        -:        -:  493:          * to make progress.
        -:        -:  494:          */
    #####:    #####:  495:         OPT(nir_copy_prop);
    #####:    #####:  496:         OPT(nir_opt_dce);
        -:        -:  497:      }
       27:       27:  498:      OPT(nir_opt_if);
       27:       27:  499:      if (nir->options->max_unroll_iterations != 0) {
       27:       27:  500:         OPT(nir_opt_loop_unroll, indirect_mask);
        -:        -:  501:      }
       27:       27:  502:      OPT(nir_opt_remove_phis);
       27:       27:  503:      OPT(nir_opt_undef);
       27:       27:  504:      OPT(nir_lower_doubles, nir_lower_drcp |
        -:        -:  505:                             nir_lower_dsqrt |
        -:        -:  506:                             nir_lower_drsq |
        -:        -:  507:                             nir_lower_dtrunc |
        -:        -:  508:                             nir_lower_dfloor |
        -:        -:  509:                             nir_lower_dceil |
        -:        -:  510:                             nir_lower_dfract |
        -:        -:  511:                             nir_lower_dround_even |
        -:        -:  512:                             nir_lower_dmod);
       27:       27:  513:      OPT(nir_lower_64bit_pack);
       27:       27:  514:   } while (progress);
        -:        -:  515:
       15:       15:  516:   return nir;
        -:        -:  517:}
        -:        -:  518:
        -:        -:  519:/* Does some simple lowering and runs the standard suite of optimizations
        -:        -:  520: *
        -:        -:  521: * This is intended to be called more-or-less directly after you get the
        -:        -:  522: * shader out of GLSL or some other source.  While it is geared towards i965,
        -:        -:  523: * it is not at all generator-specific except for the is_scalar flag.  Even
        -:        -:  524: * there, it is safe to call with is_scalar = false for a shader that is
        -:        -:  525: * intended for the FS backend as long as nir_optimize is called again with
        -:        -:  526: * is_scalar = true to scalarize everything prior to code gen.
        -:        -:  527: */
        -:        -:  528:nir_shader *
        5:        5:  529:brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
        -:        -:  530:{
        5:        5:  531:   const struct gen_device_info *devinfo = compiler->devinfo;
        -:        -:  532:   UNUSED bool progress; /* Written by OPT */
        -:        -:  533:
        5:        5:  534:   const bool is_scalar = compiler->scalar_stage[nir->stage];
        -:        -:  535:
        5:        5:  536:   if (nir->stage == MESA_SHADER_GEOMETRY)
    #####:    #####:  537:      OPT(nir_lower_gs_intrinsics);
        -:        -:  538:
        -:        -:  539:   /* See also brw_nir_trig_workarounds.py */
        5:        5:  540:   if (compiler->precise_trig &&
    #####:    #####:  541:       !(devinfo->gen >= 10 || devinfo->is_kabylake))
    #####:    #####:  542:      OPT(brw_nir_apply_trig_workarounds);
        -:        -:  543:
        -:        -:  544:   static const nir_lower_tex_options tex_options = {
        -:        -:  545:      .lower_txp = ~0,
        -:        -:  546:      .lower_txf_offset = true,
        -:        -:  547:      .lower_rect_offset = true,
        -:        -:  548:      .lower_txd_cube_map = true,
        -:        -:  549:   };
        -:        -:  550:
        5:        5:  551:   OPT(nir_lower_tex, &tex_options);
        5:        5:  552:   OPT(nir_normalize_cubemap_coords);
        -:        -:  553:
        5:        5:  554:   OPT(nir_lower_global_vars_to_local);
        -:        -:  555:
        5:        5:  556:   OPT(nir_split_var_copies);
        -:        -:  557:
        5:        5:  558:   nir = nir_optimize(nir, compiler, is_scalar);
        -:        -:  559:
        5:        5:  560:   if (is_scalar) {
        3:        3:  561:      OPT(nir_lower_load_const_to_scalar);
        -:        -:  562:   }
        -:        -:  563:
        -:        -:  564:   /* Lower a bunch of stuff */
        5:        5:  565:   OPT(nir_lower_var_copies);
        -:        -:  566:
        5:        5:  567:   OPT(nir_lower_clip_cull_distance_arrays);
        -:        -:  568:
        5:        5:  569:   nir_variable_mode indirect_mask = 0;
        5:        5:  570:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectInput)
        5:        5:  571:      indirect_mask |= nir_var_shader_in;
        5:        5:  572:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectOutput)
        3:        3:  573:      indirect_mask |= nir_var_shader_out;
        5:        5:  574:   if (compiler->glsl_compiler_options[nir->stage].EmitNoIndirectTemp)
        3:        3:  575:      indirect_mask |= nir_var_local;
        -:        -:  576:
        5:        5:  577:   nir_lower_indirect_derefs(nir, indirect_mask);
        -:        -:  578:
        5:        5:  579:   nir_lower_int64(nir, nir_lower_imul64 |
        -:        -:  580:                        nir_lower_isign64 |
        -:        -:  581:                        nir_lower_divmod64);
        -:        -:  582:
        -:        -:  583:   /* Get rid of split copies */
        5:        5:  584:   nir = nir_optimize(nir, compiler, is_scalar);
        -:        -:  585:
        5:        5:  586:   OPT(nir_remove_dead_variables, nir_var_local);
        -:        -:  587:
        5:        5:  588:   return nir;
        -:        -:  589:}
        -:        -:  590:
        -:        -:  591:/* Prepare the given shader for codegen
        -:        -:  592: *
        -:        -:  593: * This function is intended to be called right before going into the actual
        -:        -:  594: * backend and is highly backend-specific.  Also, once this function has been
        -:        -:  595: * called on a shader, it will no longer be in SSA form so most optimizations
        -:        -:  596: * will not work.
        -:        -:  597: */
        -:        -:  598:nir_shader *
        5:        5:  599:brw_postprocess_nir(nir_shader *nir, const struct brw_compiler *compiler,
        -:        -:  600:                    bool is_scalar)
        -:        -:  601:{
        5:        5:  602:   const struct gen_device_info *devinfo = compiler->devinfo;
        5:        5:  603:   bool debug_enabled =
        5:        5:  604:      (INTEL_DEBUG & intel_debug_flag_for_shader_stage(nir->stage));
        -:        -:  605:
        -:        -:  606:   UNUSED bool progress; /* Written by OPT */
        -:        -:  607:
        5:        5:  608:   nir = nir_optimize(nir, compiler, is_scalar);
        -:        -:  609:
        5:        5:  610:   if (devinfo->gen >= 6) {
        -:        -:  611:      /* Try and fuse multiply-adds */
        5:        5:  612:      OPT(brw_nir_opt_peephole_ffma);
        -:        -:  613:   }
        -:        -:  614:
        5:        5:  615:   OPT(nir_opt_algebraic_late);
        -:        -:  616:
        5:        5:  617:   OPT(nir_lower_to_source_mods);
        5:        5:  618:   OPT(nir_copy_prop);
        5:        5:  619:   OPT(nir_opt_dce);
        5:        5:  620:   OPT(nir_opt_move_comparisons);
        -:        -:  621:
        5:        5:  622:   OPT(nir_lower_locals_to_regs);
        -:        -:  623:
        5:        5:  624:   if (unlikely(debug_enabled)) {
        -:        -:  625:      /* Re-index SSA defs so we print more sensible numbers. */
    #####:    #####:  626:      nir_foreach_function(function, nir) {
    #####:    #####:  627:         if (function->impl)
    #####:    #####:  628:            nir_index_ssa_defs(function->impl);
        -:        -:  629:      }
        -:        -:  630:
    #####:    #####:  631:      fprintf(stderr, "NIR (SSA form) for %s shader:\n",
    #####:    #####:  632:              _mesa_shader_stage_to_string(nir->stage));
    #####:    #####:  633:      nir_print_shader(nir, stderr);
        -:        -:  634:   }
        -:        -:  635:
        5:        5:  636:   OPT(nir_convert_from_ssa, true);
        -:        -:  637:
        5:        5:  638:   if (!is_scalar) {
        2:        2:  639:      OPT(nir_move_vec_src_uses_to_dest);
        2:        2:  640:      OPT(nir_lower_vec_to_movs);
        -:        -:  641:   }
        -:        -:  642:
        -:        -:  643:   /* This is the last pass we run before we start emitting stuff.  It
        -:        -:  644:    * determines when we need to insert boolean resolves on Gen <= 5.  We
        -:        -:  645:    * run it last because it stashes data in instr->pass_flags and we don't
        -:        -:  646:    * want that to be squashed by other NIR passes.
        -:        -:  647:    */
        5:        5:  648:   if (devinfo->gen <= 5)
    #####:    #####:  649:      brw_nir_analyze_boolean_resolves(nir);
        -:        -:  650:
        5:        5:  651:   nir_sweep(nir);
        -:        -:  652:
        5:        5:  653:   if (unlikely(debug_enabled)) {
    #####:    #####:  654:      fprintf(stderr, "NIR (final form) for %s shader:\n",
    #####:    #####:  655:              _mesa_shader_stage_to_string(nir->stage));
    #####:    #####:  656:      nir_print_shader(nir, stderr);
        -:        -:  657:   }
        -:        -:  658:
        5:        5:  659:   return nir;
        -:        -:  660:}
        -:        -:  661:
        -:        -:  662:nir_shader *
        5:        5:  663:brw_nir_apply_sampler_key(nir_shader *nir,
        -:        -:  664:                          const struct brw_compiler *compiler,
        -:        -:  665:                          const struct brw_sampler_prog_key_data *key_tex,
        -:        -:  666:                          bool is_scalar)
        -:        -:  667:{
        5:        5:  668:   const struct gen_device_info *devinfo = compiler->devinfo;
        5:        5:  669:   nir_lower_tex_options tex_options = { 0 };
        -:        -:  670:
        -:        -:  671:   /* Iron Lake and prior require lowering of all rectangle textures */
        5:        5:  672:   if (devinfo->gen < 6)
    #####:    #####:  673:      tex_options.lower_rect = true;
        -:        -:  674:
        -:        -:  675:   /* Prior to Broadwell, our hardware can't actually do GL_CLAMP */
        5:        5:  676:   if (devinfo->gen < 8) {
        5:        5:  677:      tex_options.saturate_s = key_tex->gl_clamp_mask[0];
        5:        5:  678:      tex_options.saturate_t = key_tex->gl_clamp_mask[1];
        5:        5:  679:      tex_options.saturate_r = key_tex->gl_clamp_mask[2];
        -:        -:  680:   }
        -:        -:  681:
        -:        -:  682:   /* Prior to Haswell, we have to fake texture swizzle */
      165:      165:  683:   for (unsigned s = 0; s < MAX_SAMPLERS; s++) {
      160:      160:  684:      if (key_tex->swizzles[s] == SWIZZLE_NOOP)
       32:       32:  685:         continue;
        -:        -:  686:
      128:      128:  687:      tex_options.swizzle_result |= (1 << s);
      640:      640:  688:      for (unsigned c = 0; c < 4; c++)
      512:      512:  689:         tex_options.swizzles[s][c] = GET_SWZ(key_tex->swizzles[s], c);
        -:        -:  690:   }
        -:        -:  691:
        -:        -:  692:   /* Prior to Haswell, we have to lower gradients on shadow samplers */
        5:        5:  693:   tex_options.lower_txd_shadow = devinfo->gen < 8 && !devinfo->is_haswell;
        -:        -:  694:
        5:        5:  695:   tex_options.lower_y_uv_external = key_tex->y_uv_image_mask;
        5:        5:  696:   tex_options.lower_y_u_v_external = key_tex->y_u_v_image_mask;
        5:        5:  697:   tex_options.lower_yx_xuxv_external = key_tex->yx_xuxv_image_mask;
        -:        -:  698:
        5:        5:  699:   if (nir_lower_tex(nir, &tex_options)) {
    #####:    #####:  700:      nir_validate_shader(nir);
    #####:    #####:  701:      nir = nir_optimize(nir, compiler, is_scalar);
        -:        -:  702:   }
        -:        -:  703:
        5:        5:  704:   return nir;
        -:        -:  705:}
        -:        -:  706:
        -:        -:  707:enum brw_reg_type
      324:      336:  708:brw_type_for_nir_type(const struct gen_device_info *devinfo, nir_alu_type type)
        -:        -:  709:{
      324:      336:  710:   switch (type) {
        -:        -:  711:   case nir_type_uint:
        -:        -:  712:   case nir_type_uint32:
       22:       22:  713:      return BRW_REGISTER_TYPE_UD;
        -:        -:  714:   case nir_type_bool:
        -:        -:  715:   case nir_type_int:
        -:        -:  716:   case nir_type_bool32:
        -:        -:  717:   case nir_type_int32:
       86:       90:  718:      return BRW_REGISTER_TYPE_D;
        -:        -:  719:   case nir_type_float:
        -:        -:  720:   case nir_type_float32:
      216:      224:  721:      return BRW_REGISTER_TYPE_F;
        -:        -:  722:   case nir_type_float64:
    #####:    #####:  723:      return BRW_REGISTER_TYPE_DF;
        -:        -:  724:   case nir_type_int64:
    #####:    #####:  725:      return devinfo->gen < 8 ? BRW_REGISTER_TYPE_DF : BRW_REGISTER_TYPE_Q;
        -:        -:  726:   case nir_type_uint64:
    #####:    #####:  727:      return devinfo->gen < 8 ? BRW_REGISTER_TYPE_DF : BRW_REGISTER_TYPE_UQ;
        -:        -:  728:   default:
    #####:    #####:  729:      unreachable("unknown type");
        -:        -:  730:   }
        -:        -:  731:
        -:        -:  732:   return BRW_REGISTER_TYPE_F;
        -:        -:  733:}
        -:        -:  734:
        -:        -:  735:/* Returns the glsl_base_type corresponding to a nir_alu_type.
        -:        -:  736: * This is used by both brw_vec4_nir and brw_fs_nir.
        -:        -:  737: */
        -:        -:  738:enum glsl_base_type
    #####:    #####:  739:brw_glsl_base_type_for_nir_type(nir_alu_type type)
        -:        -:  740:{
    #####:    #####:  741:   switch (type) {
        -:        -:  742:   case nir_type_float:
        -:        -:  743:   case nir_type_float32:
    #####:    #####:  744:      return GLSL_TYPE_FLOAT;
        -:        -:  745:
        -:        -:  746:   case nir_type_float64:
    #####:    #####:  747:      return GLSL_TYPE_DOUBLE;
        -:        -:  748:
        -:        -:  749:   case nir_type_int:
        -:        -:  750:   case nir_type_int32:
    #####:    #####:  751:      return GLSL_TYPE_INT;
        -:        -:  752:
        -:        -:  753:   case nir_type_uint:
        -:        -:  754:   case nir_type_uint32:
    #####:    #####:  755:      return GLSL_TYPE_UINT;
        -:        -:  756:
        -:        -:  757:   default:
    #####:    #####:  758:      unreachable("bad type");
        -:        -:  759:   }
        -:        -:  760:}

src/intel/brw_nir_opt_peephole_ffma.c.gcov

        -:        -:    0:Source:compiler/brw_nir_opt_peephole_ffma.c
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2014 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Jason Ekstrand (jason@jlekstrand.net)
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "brw_nir.h"
        -:        -:   29:#include "compiler/nir/nir_builder.h"
        -:        -:   30:
        -:        -:   31:/*
        -:        -:   32: * Implements a small peephole optimization that looks for a multiply that
        -:        -:   33: * is only ever used in an add and replaces both with an fma.
        -:        -:   34: */
        -:        -:   35:
        -:        -:   36:static inline bool
       11:       11:   37:are_all_uses_fadd(nir_ssa_def *def)
        -:        -:   38:{
       11:       11:   39:   if (!list_empty(&def->if_uses))
    #####:    #####:   40:      return false;
        -:        -:   41:
       22:       22:   42:   nir_foreach_use(use_src, def) {
       11:       11:   43:      nir_instr *use_instr = use_src->parent_instr;
        -:        -:   44:
       11:       11:   45:      if (use_instr->type != nir_instr_type_alu)
    #####:    #####:   46:         return false;
        -:        -:   47:
       11:       11:   48:      nir_alu_instr *use_alu = nir_instr_as_alu(use_instr);
       11:       11:   49:      switch (use_alu->op) {
        -:        -:   50:      case nir_op_fadd:
        6:        6:   51:         break; /* This one's ok */
        -:        -:   52:
        -:        -:   53:      case nir_op_imov:
        -:        -:   54:      case nir_op_fmov:
        -:        -:   55:      case nir_op_fneg:
        -:        -:   56:      case nir_op_fabs:
        5:        5:   57:         assert(use_alu->dest.dest.is_ssa);
        5:        5:   58:         if (!are_all_uses_fadd(&use_alu->dest.dest.ssa))
    #####:    #####:   59:            return false;
        5:        5:   60:         break;
        -:        -:   61:
        -:        -:   62:      default:
    #####:    #####:   63:         return false;
        -:        -:   64:      }
        -:        -:   65:   }
        -:        -:   66:
       11:       11:   67:   return true;
        -:        -:   68:}
        -:        -:   69:
        -:        -:   70:static nir_alu_instr *
       26:       28:   71:get_mul_for_src(nir_alu_src *src, int num_components,
        -:        -:   72:                uint8_t swizzle[4], bool *negate, bool *abs)
        -:        -:   73:{
        -:        -:   74:   uint8_t swizzle_tmp[4];
       26:       28:   75:   assert(src->src.is_ssa && !src->abs && !src->negate);
        -:        -:   76:
       26:       28:   77:   nir_instr *instr = src->src.ssa->parent_instr;
       26:       28:   78:   if (instr->type != nir_instr_type_alu)
       11:       13:   79:      return NULL;
        -:        -:   80:
       15:       15:   81:   nir_alu_instr *alu = nir_instr_as_alu(instr);
        -:        -:   82:
        -:        -:   83:   /* We want to bail if any of the other ALU operations involved is labled
        -:        -:   84:    * exact.  One reason for this is that, while the value that is changing is
        -:        -:   85:    * actually the result of the add and not the multiply, the intention of
        -:        -:   86:    * the user when they specify an exact multiply is that they want *that*
        -:        -:   87:    * value and what they don't care about is the add.  Another reason is that
        -:        -:   88:    * SPIR-V explicitly requires this behaviour.
        -:        -:   89:    */
       15:       15:   90:   if (alu->exact)
    #####:    #####:   91:      return NULL;
        -:        -:   92:
       15:       15:   93:   switch (alu->op) {
        -:        -:   94:   case nir_op_imov:
        -:        -:   95:   case nir_op_fmov:
    #####:    #####:   96:      alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
    #####:    #####:   97:      break;
        -:        -:   98:
        -:        -:   99:   case nir_op_fneg:
        5:        5:  100:      alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
        5:        5:  101:      *negate = !*negate;
        5:        5:  102:      break;
        -:        -:  103:
        -:        -:  104:   case nir_op_fabs:
    #####:    #####:  105:      alu = get_mul_for_src(&alu->src[0], num_components, swizzle, negate, abs);
    #####:    #####:  106:      *negate = false;
    #####:    #####:  107:      *abs = true;
    #####:    #####:  108:      break;
        -:        -:  109:
        -:        -:  110:   case nir_op_fmul:
        -:        -:  111:      /* Only absorb a fmul into a ffma if the fmul is only used in fadd
        -:        -:  112:       * operations.  This prevents us from being too aggressive with our
        -:        -:  113:       * fusing which can actually lead to more instructions.
        -:        -:  114:       */
        6:        6:  115:      if (!are_all_uses_fadd(&alu->dest.dest.ssa))
    #####:    #####:  116:         return NULL;
        6:        6:  117:      break;
        -:        -:  118:
        -:        -:  119:   default:
        4:        4:  120:      return NULL;
        -:        -:  121:   }
        -:        -:  122:
       11:       11:  123:   if (!alu)
    #####:    #####:  124:      return NULL;
        -:        -:  125:
        -:        -:  126:   /* Copy swizzle data before overwriting it to avoid setting a wrong swizzle.
        -:        -:  127:    *
        -:        -:  128:    * Example:
        -:        -:  129:    *   Former swizzle[] = xyzw
        -:        -:  130:    *   src->swizzle[] = zyxx
        -:        -:  131:    *
        -:        -:  132:    *   Expected output swizzle = zyxx
        -:        -:  133:    *   If we reuse swizzle in the loop, then output swizzle would be zyzz.
        -:        -:  134:    */
       11:       11:  135:   memcpy(swizzle_tmp, swizzle, 4*sizeof(uint8_t));
       22:       22:  136:   for (int i = 0; i < num_components; i++)
       11:       11:  137:      swizzle[i] = swizzle_tmp[src->swizzle[i]];
        -:        -:  138:
       11:       11:  139:   return alu;
        -:        -:  140:}
        -:        -:  141:
        -:        -:  142:/**
        -:        -:  143: * Given a list of (at least two) nir_alu_src's, tells if any of them is a
        -:        -:  144: * constant value and is used only once.
        -:        -:  145: */
        -:        -:  146:static bool
        6:        6:  147:any_alu_src_is_a_constant(nir_alu_src srcs[])
        -:        -:  148:{
       18:       18:  149:   for (unsigned i = 0; i < 2; i++) {
       12:       12:  150:      if (srcs[i].src.ssa->parent_instr->type == nir_instr_type_load_const) {
    #####:    #####:  151:         nir_load_const_instr *load_const =
    #####:    #####:  152:            nir_instr_as_load_const (srcs[i].src.ssa->parent_instr);
        -:        -:  153:
    #####:    #####:  154:         if (list_is_singular(&load_const->def.uses) &&
    #####:    #####:  155:             list_empty(&load_const->def.if_uses)) {
    #####:    #####:  156:            return true;
        -:        -:  157:         }
        -:        -:  158:      }
        -:        -:  159:   }
        -:        -:  160:
        6:        6:  161:   return false;
        -:        -:  162:}
        -:        -:  163:
        -:        -:  164:static bool
       36:       52:  165:brw_nir_opt_peephole_ffma_block(nir_builder *b, nir_block *block)
        -:        -:  166:{
       36:       52:  167:   bool progress = false;
        -:        -:  168:
      167:      198:  169:   nir_foreach_instr_safe(instr, block) {
      131:      146:  170:      if (instr->type != nir_instr_type_alu)
      193:      220:  171:         continue;
        -:        -:  172:
       63:       66:  173:      nir_alu_instr *add = nir_instr_as_alu(instr);
       63:       66:  174:      if (add->op != nir_op_fadd)
       52:       54:  175:         continue;
        -:        -:  176:
       11:       12:  177:      assert(add->dest.dest.is_ssa);
       11:       12:  178:      if (add->exact)
    #####:    #####:  179:         continue;
        -:        -:  180:
       11:       12:  181:      assert(add->src[0].src.is_ssa && add->src[1].src.is_ssa);
        -:        -:  182:
        -:        -:  183:      /* This, is the case a + a.  We would rather handle this with an
        -:        -:  184:       * algebraic reduction than fuse it.  Also, we want to only fuse
        -:        -:  185:       * things where the multiply is used only once and, in this case,
        -:        -:  186:       * it would be used twice by the same instruction.
        -:        -:  187:       */
       11:       12:  188:      if (add->src[0].src.ssa == add->src[1].src.ssa)
    #####:    #####:  189:         continue;
        -:        -:  190:
        -:        -:  191:      nir_alu_instr *mul;
        -:        -:  192:      uint8_t add_mul_src, swizzle[4];
        -:        -:  193:      bool negate, abs;
       26:       29:  194:      for (add_mul_src = 0; add_mul_src < 2; add_mul_src++) {
      105:      115:  195:         for (unsigned i = 0; i < 4; i++)
       84:       92:  196:            swizzle[i] = i;
        -:        -:  197:
       21:       23:  198:         negate = false;
       21:       23:  199:         abs = false;
        -:        -:  200:
       21:       23:  201:         mul = get_mul_for_src(&add->src[add_mul_src],
       21:       23:  202:                               add->dest.dest.ssa.num_components,
        -:        -:  203:                               swizzle, &negate, &abs);
        -:        -:  204:
       21:       23:  205:         if (mul != NULL)
        6:        6:  206:            break;
        -:        -:  207:      }
        -:        -:  208:
       11:       12:  209:      if (mul == NULL)
        5:        6:  210:         continue;
        -:        -:  211:
        6:        6:  212:      unsigned bit_size = add->dest.dest.ssa.bit_size;
        -:        -:  213:
        -:        -:  214:      nir_ssa_def *mul_src[2];
        6:        6:  215:      mul_src[0] = mul->src[0].src.ssa;
        6:        6:  216:      mul_src[1] = mul->src[1].src.ssa;
        -:        -:  217:
        -:        -:  218:      /* If any of the operands of the fmul and any of the fadd is a constant,
        -:        -:  219:       * we bypass because it will be more efficient as the constants will be
        -:        -:  220:       * propagated as operands, potentially saving two load_const instructions.
        -:        -:  221:       */
        6:        6:  222:      if (any_alu_src_is_a_constant(mul->src) &&
    #####:    #####:  223:          any_alu_src_is_a_constant(add->src)) {
    #####:    #####:  224:         continue;
        -:        -:  225:      }
        -:        -:  226:
        6:        6:  227:      b->cursor = nir_before_instr(&add->instr);
        -:        -:  228:
        6:        6:  229:      if (abs) {
    #####:    #####:  230:         for (unsigned i = 0; i < 2; i++)
    #####:    #####:  231:            mul_src[i] = nir_fabs(b, mul_src[i]);
        -:        -:  232:      }
        -:        -:  233:
        6:        6:  234:      if (negate)
        5:        5:  235:         mul_src[0] = nir_fneg(b, mul_src[0]);
        -:        -:  236:
        6:        6:  237:      nir_alu_instr *ffma = nir_alu_instr_create(b->shader, nir_op_ffma);
        6:        6:  238:      ffma->dest.saturate = add->dest.saturate;
        6:        6:  239:      ffma->dest.write_mask = add->dest.write_mask;
        -:        -:  240:
       18:       18:  241:      for (unsigned i = 0; i < 2; i++) {
       12:       12:  242:         ffma->src[i].src = nir_src_for_ssa(mul_src[i]);
       24:       24:  243:         for (unsigned j = 0; j < add->dest.dest.ssa.num_components; j++)
       12:       12:  244:            ffma->src[i].swizzle[j] = mul->src[i].swizzle[swizzle[j]];
        -:        -:  245:      }
        6:        6:  246:      nir_alu_src_copy(&ffma->src[2], &add->src[1 - add_mul_src], ffma);
        -:        -:  247:
        6:        6:  248:      assert(add->dest.dest.is_ssa);
        -:        -:  249:
       12:       12:  250:      nir_ssa_dest_init(&ffma->instr, &ffma->dest.dest,
        6:        6:  251:                        add->dest.dest.ssa.num_components,
        -:        -:  252:                        bit_size,
        -:        -:  253:                        add->dest.dest.ssa.name);
        6:        6:  254:      nir_ssa_def_rewrite_uses(&add->dest.dest.ssa,
        -:        -:  255:                               nir_src_for_ssa(&ffma->dest.dest.ssa));
        -:        -:  256:
        6:        6:  257:      nir_builder_instr_insert(b, &ffma->instr);
        6:        6:  258:      assert(list_empty(&add->dest.dest.ssa.uses));
        6:        6:  259:      nir_instr_remove(&add->instr);
        -:        -:  260:
        6:        6:  261:      progress = true;
        -:        -:  262:   }
        -:        -:  263:
       36:       52:  264:   return progress;
        -:        -:  265:}
        -:        -:  266:
        -:        -:  267:static bool
        5:        5:  268:brw_nir_opt_peephole_ffma_impl(nir_function_impl *impl)
        -:        -:  269:{
        5:        5:  270:   bool progress = false;
        -:        -:  271:
        -:        -:  272:   nir_builder builder;
        5:        5:  273:   nir_builder_init(&builder, impl);
        -:        -:  274:
       41:       57:  275:   nir_foreach_block(block, impl) {
       36:       52:  276:      progress |= brw_nir_opt_peephole_ffma_block(&builder, block);
        -:        -:  277:   }
        -:        -:  278:
        5:        5:  279:   if (progress)
        1:        1:  280:      nir_metadata_preserve(impl, nir_metadata_block_index |
        -:        -:  281:                                  nir_metadata_dominance);
        -:        -:  282:
        5:        5:  283:   return progress;
        -:        -:  284:}
        -:        -:  285:
        -:        -:  286:bool
        5:        5:  287:brw_nir_opt_peephole_ffma(nir_shader *shader)
        -:        -:  288:{
        5:        5:  289:   bool progress = false;
        -:        -:  290:
       10:       10:  291:   nir_foreach_function(function, shader) {
        5:        5:  292:      if (function->impl)
        5:        5:  293:         progress |= brw_nir_opt_peephole_ffma_impl(function->impl);
        -:        -:  294:   }
        -:        -:  295:
        5:        5:  296:   return progress;
        -:        -:  297:}

src/intel/brw_predicated_break.cpp.gcov

        -:        -:    0:Source:compiler/brw_predicated_break.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_predicated_break.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_predicated_break.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_cfg.h"
        -:        -:   25:
        -:        -:   26:using namespace brw;
        -:        -:   27:
        -:        -:   28:/** @file brw_predicated_break.cpp
        -:        -:   29: *
        -:        -:   30: * Loops are often structured as
        -:        -:   31: *
        -:        -:   32: * loop:
        -:        -:   33: *    CMP.f0
        -:        -:   34: *    (+f0) IF
        -:        -:   35: *    BREAK
        -:        -:   36: *    ENDIF
        -:        -:   37: *    ...
        -:        -:   38: *    WHILE loop
        -:        -:   39: *
        -:        -:   40: * This peephole pass removes the IF and ENDIF instructions and predicates the
        -:        -:   41: * BREAK, dropping two instructions from the loop body.
        -:        -:   42: *
        -:        -:   43: * If the loop was a DO { ... } WHILE loop, it looks like
        -:        -:   44: *
        -:        -:   45: * loop:
        -:        -:   46: *    ...
        -:        -:   47: *    CMP.f0
        -:        -:   48: *    (+f0) IF
        -:        -:   49: *    BREAK
        -:        -:   50: *    ENDIF
        -:        -:   51: *    WHILE loop
        -:        -:   52: *
        -:        -:   53: * and we can remove the BREAK instruction and predicate the WHILE.
        -:        -:   54: */
        -:        -:   55:
        -:        -:   56:bool
       18:       20:   57:opt_predicated_break(backend_shader *s)
        -:        -:   58:{
       18:       20:   59:   bool progress = false;
        -:        -:   60:
      176:      292:   61:   foreach_block (block, s->cfg) {
      158:      272:   62:      if (block->start_ip != block->end_ip)
      130:      186:   63:         continue;
        -:        -:   64:
        -:        -:   65:      /* BREAK and CONTINUE instructions, by definition, can only be found at
        -:        -:   66:       * the ends of basic blocks.
        -:        -:   67:       */
       28:       86:   68:      backend_instruction *jump_inst = block->end();
       56:      148:   69:      if (jump_inst->opcode != BRW_OPCODE_BREAK &&
       28:       62:   70:          jump_inst->opcode != BRW_OPCODE_CONTINUE)
       28:       62:   71:         continue;
        -:        -:   72:
    #####:       24:   73:      backend_instruction *if_inst = block->prev()->end();
    #####:       24:   74:      if (if_inst->opcode != BRW_OPCODE_IF)
    #####:    #####:   75:         continue;
        -:        -:   76:
    #####:       24:   77:      backend_instruction *endif_inst = block->next()->start();
    #####:       24:   78:      if (endif_inst->opcode != BRW_OPCODE_ENDIF)
    #####:       12:   79:         continue;
        -:        -:   80:
    #####:       12:   81:      bblock_t *jump_block = block;
    #####:       12:   82:      bblock_t *if_block = jump_block->prev();
    #####:       12:   83:      bblock_t *endif_block = jump_block->next();
        -:        -:   84:
    #####:       12:   85:      jump_inst->predicate = if_inst->predicate;
    #####:       12:   86:      jump_inst->predicate_inverse = if_inst->predicate_inverse;
        -:        -:   87:
    #####:       12:   88:      bblock_t *earlier_block = if_block;
    #####:       12:   89:      if (if_block->start_ip == if_block->end_ip) {
    #####:    #####:   90:         earlier_block = if_block->prev();
        -:        -:   91:      }
        -:        -:   92:
    #####:       12:   93:      if_inst->remove(if_block);
        -:        -:   94:
    #####:       12:   95:      bblock_t *later_block = endif_block;
    #####:       12:   96:      if (endif_block->start_ip == endif_block->end_ip) {
    #####:    #####:   97:         later_block = endif_block->next();
        -:        -:   98:      }
    #####:       12:   99:      endif_inst->remove(endif_block);
        -:        -:  100:
    #####:       12:  101:      if (!earlier_block->ends_with_control_flow()) {
    #####:       12:  102:         earlier_block->children.make_empty();
    #####:       12:  103:         earlier_block->add_successor(s->cfg->mem_ctx, jump_block);
        -:        -:  104:      }
        -:        -:  105:
    #####:       12:  106:      if (!later_block->starts_with_control_flow()) {
    #####:       12:  107:         later_block->parents.make_empty();
        -:        -:  108:      }
    #####:       12:  109:      jump_block->add_successor(s->cfg->mem_ctx, later_block);
        -:        -:  110:
    #####:       12:  111:      if (earlier_block->can_combine_with(jump_block)) {
    #####:       12:  112:         earlier_block->combine_with(jump_block);
        -:        -:  113:
    #####:       12:  114:         block = earlier_block;
        -:        -:  115:      }
        -:        -:  116:
        -:        -:  117:      /* Now look at the first instruction of the block following the BREAK. If
        -:        -:  118:       * it's a WHILE, we can delete the break, predicate the WHILE, and join
        -:        -:  119:       * the two basic blocks.
        -:        -:  120:       */
    #####:       12:  121:      bblock_t *while_block = earlier_block->next();
    #####:       12:  122:      backend_instruction *while_inst = while_block->start();
        -:        -:  123:
    #####:       24:  124:      if (jump_inst->opcode == BRW_OPCODE_BREAK &&
    #####:       16:  125:          while_inst->opcode == BRW_OPCODE_WHILE &&
    #####:        4:  126:          while_inst->predicate == BRW_PREDICATE_NONE) {
    #####:        4:  127:         jump_inst->remove(earlier_block);
    #####:        4:  128:         while_inst->predicate = jump_inst->predicate;
    #####:        4:  129:         while_inst->predicate_inverse = !jump_inst->predicate_inverse;
        -:        -:  130:
    #####:        4:  131:         earlier_block->children.make_empty();
    #####:        4:  132:         earlier_block->add_successor(s->cfg->mem_ctx, while_block);
        -:        -:  133:
    #####:        4:  134:         assert(earlier_block->can_combine_with(while_block));
    #####:        4:  135:         earlier_block->combine_with(while_block);
        -:        -:  136:
    #####:        4:  137:         earlier_block->next()->parents.make_empty();
    #####:        4:  138:         earlier_block->add_successor(s->cfg->mem_ctx, earlier_block->next());
        -:        -:  139:      }
        -:        -:  140:
    #####:       12:  141:      progress = true;
        -:        -:  142:   }
        -:        -:  143:
       18:       20:  144:   if (progress)
    #####:        2:  145:      s->invalidate_live_intervals();
        -:        -:  146:
       18:       20:  147:   return progress;
        -:        -:  148:}

src/intel/brw_schedule_instructions.cpp.gcov

        -:        -:    0:Source:compiler/brw_schedule_instructions.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_schedule_instructions.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_schedule_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#include "brw_fs.h"
        -:        -:   29:#include "brw_fs_live_variables.h"
        -:        -:   30:#include "brw_vec4.h"
        -:        -:   31:#include "brw_cfg.h"
        -:        -:   32:#include "brw_shader.h"
        -:        -:   33:
        -:        -:   34:using namespace brw;
        -:        -:   35:
        -:        -:   36:/** @file brw_fs_schedule_instructions.cpp
        -:        -:   37: *
        -:        -:   38: * List scheduling of FS instructions.
        -:        -:   39: *
        -:        -:   40: * The basic model of the list scheduler is to take a basic block,
        -:        -:   41: * compute a DAG of the dependencies (RAW ordering with latency, WAW
        -:        -:   42: * ordering with latency, WAR ordering), and make a list of the DAG heads.
        -:        -:   43: * Heuristically pick a DAG head, then put all the children that are
        -:        -:   44: * now DAG heads into the list of things to schedule.
        -:        -:   45: *
        -:        -:   46: * The heuristic is the important part.  We're trying to be cheap,
        -:        -:   47: * since actually computing the optimal scheduling is NP complete.
        -:        -:   48: * What we do is track a "current clock".  When we schedule a node, we
        -:        -:   49: * update the earliest-unblocked clock time of its children, and
        -:        -:   50: * increment the clock.  Then, when trying to schedule, we just pick
        -:        -:   51: * the earliest-unblocked instruction to schedule.
        -:        -:   52: *
        -:        -:   53: * Note that often there will be many things which could execute
        -:        -:   54: * immediately, and there are a range of heuristic options to choose
        -:        -:   55: * from in picking among those.
        -:        -:   56: */
        -:        -:   57:
        -:        -:   58:static bool debug = false;
        -:        -:   59:
        -:        -:   60:class instruction_scheduler;
        -:        -:   61:
        -:        -:   62:class schedule_node : public exec_node
        -:        -:   63:{
        -:        -:   64:public:
        -:        -:   65:   schedule_node(backend_instruction *inst, instruction_scheduler *sched);
        -:        -:   66:   void set_latency_gen4();
        -:        -:   67:   void set_latency_gen7(bool is_haswell);
        -:        -:   68:
        -:        -:   69:   backend_instruction *inst;
        -:        -:   70:   schedule_node **children;
        -:        -:   71:   int *child_latency;
        -:        -:   72:   int child_count;
        -:        -:   73:   int parent_count;
        -:        -:   74:   int child_array_size;
        -:        -:   75:   int unblocked_time;
        -:        -:   76:   int latency;
        -:        -:   77:
        -:        -:   78:   /**
        -:        -:   79:    * Which iteration of pushing groups of children onto the candidates list
        -:        -:   80:    * this node was a part of.
        -:        -:   81:    */
        -:        -:   82:   unsigned cand_generation;
        -:        -:   83:
        -:        -:   84:   /**
        -:        -:   85:    * This is the sum of the instruction's latency plus the maximum delay of
        -:        -:   86:    * its children, or just the issue_time if it's a leaf node.
        -:        -:   87:    */
        -:        -:   88:   int delay;
        -:        -:   89:
        -:        -:   90:   /**
        -:        -:   91:    * Preferred exit node among the (direct or indirect) successors of this
        -:        -:   92:    * node.  Among the scheduler nodes blocked by this node, this will be the
        -:        -:   93:    * one that may cause earliest program termination, or NULL if none of the
        -:        -:   94:    * successors is an exit node.
        -:        -:   95:    */
        -:        -:   96:   schedule_node *exit;
        -:        -:   97:
        -:        -:   98:   bool is_barrier;
        -:        -:   99:};
        -:        -:  100:
        -:        -:  101:/**
        -:        -:  102: * Lower bound of the scheduling time after which one of the instructions
        -:        -:  103: * blocked by this node may lead to program termination.
        -:        -:  104: *
        -:        -:  105: * exit_unblocked_time() determines a strict partial ordering relation '«' on
        -:        -:  106: * the set of scheduler nodes as follows:
        -:        -:  107: *
        -:        -:  108: *   n « m <-> exit_unblocked_time(n) < exit_unblocked_time(m)
        -:        -:  109: *
        -:        -:  110: * which can be used to heuristically order nodes according to how early they
        -:        -:  111: * can unblock an exit node and lead to program termination.
        -:        -:  112: */
        -:        -:  113:static inline int
     2524:     2724:  114:exit_unblocked_time(const schedule_node *n)
        -:        -:  115:{
     2524:     2724:  116:   return n->exit ? n->exit->unblocked_time : INT_MAX;
        -:        -:  117:}
        -:        -:  118:
        -:        -:  119:void
    #####:    #####:  120:schedule_node::set_latency_gen4()
        -:        -:  121:{
    #####:    #####:  122:   int chans = 8;
    #####:    #####:  123:   int math_latency = 22;
        -:        -:  124:
    #####:    #####:  125:   switch (inst->opcode) {
        -:        -:  126:   case SHADER_OPCODE_RCP:
    #####:    #####:  127:      this->latency = 1 * chans * math_latency;
    #####:    #####:  128:      break;
        -:        -:  129:   case SHADER_OPCODE_RSQ:
    #####:    #####:  130:      this->latency = 2 * chans * math_latency;
    #####:    #####:  131:      break;
        -:        -:  132:   case SHADER_OPCODE_INT_QUOTIENT:
        -:        -:  133:   case SHADER_OPCODE_SQRT:
        -:        -:  134:   case SHADER_OPCODE_LOG2:
        -:        -:  135:      /* full precision log.  partial is 2. */
    #####:    #####:  136:      this->latency = 3 * chans * math_latency;
    #####:    #####:  137:      break;
        -:        -:  138:   case SHADER_OPCODE_INT_REMAINDER:
        -:        -:  139:   case SHADER_OPCODE_EXP2:
        -:        -:  140:      /* full precision.  partial is 3, same throughput. */
    #####:    #####:  141:      this->latency = 4 * chans * math_latency;
    #####:    #####:  142:      break;
        -:        -:  143:   case SHADER_OPCODE_POW:
    #####:    #####:  144:      this->latency = 8 * chans * math_latency;
    #####:    #####:  145:      break;
        -:        -:  146:   case SHADER_OPCODE_SIN:
        -:        -:  147:   case SHADER_OPCODE_COS:
        -:        -:  148:      /* minimum latency, max is 12 rounds. */
    #####:    #####:  149:      this->latency = 5 * chans * math_latency;
    #####:    #####:  150:      break;
        -:        -:  151:   default:
    #####:    #####:  152:      this->latency = 2;
    #####:    #####:  153:      break;
        -:        -:  154:   }
    #####:    #####:  155:}
        -:        -:  156:
        -:        -:  157:void
      217:      229:  158:schedule_node::set_latency_gen7(bool is_haswell)
        -:        -:  159:{
      217:      229:  160:   switch (inst->opcode) {
        -:        -:  161:   case BRW_OPCODE_MAD:
        -:        -:  162:      /* 2 cycles
        -:        -:  163:       *  (since the last two src operands are in different register banks):
        -:        -:  164:       * mad(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g3.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  165:       *
        -:        -:  166:       * 3 cycles on IVB, 4 on HSW
        -:        -:  167:       *  (since the last two src operands are in the same register bank):
        -:        -:  168:       * mad(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g2.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  169:       *
        -:        -:  170:       * 18 cycles on IVB, 16 on HSW
        -:        -:  171:       *  (since the last two src operands are in different register banks):
        -:        -:  172:       * mad(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g3.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  173:       * mov(8) null   g4<4,5,1>F                     { align16 WE_normal 1Q };
        -:        -:  174:       *
        -:        -:  175:       * 20 cycles on IVB, 18 on HSW
        -:        -:  176:       *  (since the last two src operands are in the same register bank):
        -:        -:  177:       * mad(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g2.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  178:       * mov(8) null   g4<4,4,1>F                     { align16 WE_normal 1Q };
        -:        -:  179:       */
        -:        -:  180:
        -:        -:  181:      /* Our register allocator doesn't know about register banks, so use the
        -:        -:  182:       * higher latency.
        -:        -:  183:       */
       18:       18:  184:      latency = is_haswell ? 16 : 18;
       18:       18:  185:      break;
        -:        -:  186:
        -:        -:  187:   case BRW_OPCODE_LRP:
        -:        -:  188:      /* 2 cycles
        -:        -:  189:       *  (since the last two src operands are in different register banks):
        -:        -:  190:       * lrp(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g3.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  191:       *
        -:        -:  192:       * 3 cycles on IVB, 4 on HSW
        -:        -:  193:       *  (since the last two src operands are in the same register bank):
        -:        -:  194:       * lrp(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g2.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  195:       *
        -:        -:  196:       * 16 cycles on IVB, 14 on HSW
        -:        -:  197:       *  (since the last two src operands are in different register banks):
        -:        -:  198:       * lrp(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g3.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  199:       * mov(8) null   g4<4,4,1>F                     { align16 WE_normal 1Q };
        -:        -:  200:       *
        -:        -:  201:       * 16 cycles
        -:        -:  202:       *  (since the last two src operands are in the same register bank):
        -:        -:  203:       * lrp(8) g4<1>F g2.2<4,4,1>F.x  g2<4,4,1>F.x g2.1<4,4,1>F.x { align16 WE_normal 1Q };
        -:        -:  204:       * mov(8) null   g4<4,4,1>F                     { align16 WE_normal 1Q };
        -:        -:  205:       */
        -:        -:  206:
        -:        -:  207:      /* Our register allocator doesn't know about register banks, so use the
        -:        -:  208:       * higher latency.
        -:        -:  209:       */
    #####:    #####:  210:      latency = 14;
    #####:    #####:  211:      break;
        -:        -:  212:
        -:        -:  213:   case SHADER_OPCODE_RCP:
        -:        -:  214:   case SHADER_OPCODE_RSQ:
        -:        -:  215:   case SHADER_OPCODE_SQRT:
        -:        -:  216:   case SHADER_OPCODE_LOG2:
        -:        -:  217:   case SHADER_OPCODE_EXP2:
        -:        -:  218:   case SHADER_OPCODE_SIN:
        -:        -:  219:   case SHADER_OPCODE_COS:
        -:        -:  220:      /* 2 cycles:
        -:        -:  221:       * math inv(8) g4<1>F g2<0,1,0>F      null       { align1 WE_normal 1Q };
        -:        -:  222:       *
        -:        -:  223:       * 18 cycles:
        -:        -:  224:       * math inv(8) g4<1>F g2<0,1,0>F      null       { align1 WE_normal 1Q };
        -:        -:  225:       * mov(8)      null   g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  226:       *
        -:        -:  227:       * Same for exp2, log2, rsq, sqrt, sin, cos.
        -:        -:  228:       */
       12:       12:  229:      latency = is_haswell ? 14 : 16;
       12:       12:  230:      break;
        -:        -:  231:
        -:        -:  232:   case SHADER_OPCODE_POW:
        -:        -:  233:      /* 2 cycles:
        -:        -:  234:       * math pow(8) g4<1>F g2<0,1,0>F   g2.1<0,1,0>F  { align1 WE_normal 1Q };
        -:        -:  235:       *
        -:        -:  236:       * 26 cycles:
        -:        -:  237:       * math pow(8) g4<1>F g2<0,1,0>F   g2.1<0,1,0>F  { align1 WE_normal 1Q };
        -:        -:  238:       * mov(8)      null   g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  239:       */
    #####:    #####:  240:      latency = is_haswell ? 22 : 24;
    #####:    #####:  241:      break;
        -:        -:  242:
        -:        -:  243:   case SHADER_OPCODE_TEX:
        -:        -:  244:   case SHADER_OPCODE_TXD:
        -:        -:  245:   case SHADER_OPCODE_TXF:
        -:        -:  246:   case SHADER_OPCODE_TXF_LZ:
        -:        -:  247:   case SHADER_OPCODE_TXL:
        -:        -:  248:   case SHADER_OPCODE_TXL_LZ:
        -:        -:  249:      /* 18 cycles:
        -:        -:  250:       * mov(8)  g115<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  251:       * mov(8)  g114<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  252:       * send(8) g4<1>UW    g114<8,8,1>F
        -:        -:  253:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  254:       *
        -:        -:  255:       * 697 +/-49 cycles (min 610, n=26):
        -:        -:  256:       * mov(8)  g115<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  257:       * mov(8)  g114<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  258:       * send(8) g4<1>UW    g114<8,8,1>F
        -:        -:  259:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  260:       * mov(8)  null       g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  261:       *
        -:        -:  262:       * So the latency on our first texture load of the batchbuffer takes
        -:        -:  263:       * ~700 cycles, since the caches are cold at that point.
        -:        -:  264:       *
        -:        -:  265:       * 840 +/- 92 cycles (min 720, n=25):
        -:        -:  266:       * mov(8)  g115<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  267:       * mov(8)  g114<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  268:       * send(8) g4<1>UW    g114<8,8,1>F
        -:        -:  269:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  270:       * mov(8)  null       g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  271:       * send(8) g4<1>UW    g114<8,8,1>F
        -:        -:  272:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  273:       * mov(8)  null       g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  274:       *
        -:        -:  275:       * On the second load, it takes just an extra ~140 cycles, and after
        -:        -:  276:       * accounting for the 14 cycles of the MOV's latency, that makes ~130.
        -:        -:  277:       *
        -:        -:  278:       * 683 +/- 49 cycles (min = 602, n=47):
        -:        -:  279:       * mov(8)  g115<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  280:       * mov(8)  g114<1>F   0F                         { align1 WE_normal 1Q };
        -:        -:  281:       * send(8) g4<1>UW    g114<8,8,1>F
        -:        -:  282:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  283:       * send(8) g50<1>UW   g114<8,8,1>F
        -:        -:  284:       *   sampler (10, 0, 0, 1) mlen 2 rlen 4         { align1 WE_normal 1Q };
        -:        -:  285:       * mov(8)  null       g4<8,8,1>F                 { align1 WE_normal 1Q };
        -:        -:  286:       *
        -:        -:  287:       * The unit appears to be pipelined, since this matches up with the
        -:        -:  288:       * cache-cold case, despite there being two loads here.  If you replace
        -:        -:  289:       * the g4 in the MOV to null with g50, it's still 693 +/- 52 (n=39).
        -:        -:  290:       *
        -:        -:  291:       * So, take some number between the cache-hot 140 cycles and the
        -:        -:  292:       * cache-cold 700 cycles.  No particular tuning was done on this.
        -:        -:  293:       *
        -:        -:  294:       * I haven't done significant testing of the non-TEX opcodes.  TXL at
        -:        -:  295:       * least looked about the same as TEX.
        -:        -:  296:       */
    #####:    #####:  297:      latency = 200;
    #####:    #####:  298:      break;
        -:        -:  299:
        -:        -:  300:   case SHADER_OPCODE_TXS:
        -:        -:  301:      /* Testing textureSize(sampler2D, 0), one load was 420 +/- 41
        -:        -:  302:       * cycles (n=15):
        -:        -:  303:       * mov(8)   g114<1>UD  0D                        { align1 WE_normal 1Q };
        -:        -:  304:       * send(8)  g6<1>UW    g114<8,8,1>F
        -:        -:  305:       *   sampler (10, 0, 10, 1) mlen 1 rlen 4        { align1 WE_normal 1Q };
        -:        -:  306:       * mov(16)  g6<1>F     g6<8,8,1>D                { align1 WE_normal 1Q };
        -:        -:  307:       *
        -:        -:  308:       *
        -:        -:  309:       * Two loads was 535 +/- 30 cycles (n=19):
        -:        -:  310:       * mov(16)   g114<1>UD  0D                       { align1 WE_normal 1H };
        -:        -:  311:       * send(16)  g6<1>UW    g114<8,8,1>F
        -:        -:  312:       *   sampler (10, 0, 10, 2) mlen 2 rlen 8        { align1 WE_normal 1H };
        -:        -:  313:       * mov(16)   g114<1>UD  0D                       { align1 WE_normal 1H };
        -:        -:  314:       * mov(16)   g6<1>F     g6<8,8,1>D               { align1 WE_normal 1H };
        -:        -:  315:       * send(16)  g8<1>UW    g114<8,8,1>F
        -:        -:  316:       *   sampler (10, 0, 10, 2) mlen 2 rlen 8        { align1 WE_normal 1H };
        -:        -:  317:       * mov(16)   g8<1>F     g8<8,8,1>D               { align1 WE_normal 1H };
        -:        -:  318:       * add(16)   g6<1>F     g6<8,8,1>F   g8<8,8,1>F  { align1 WE_normal 1H };
        -:        -:  319:       *
        -:        -:  320:       * Since the only caches that should matter are just the
        -:        -:  321:       * instruction/state cache containing the surface state, assume that we
        -:        -:  322:       * always have hot caches.
        -:        -:  323:       */
    #####:    #####:  324:      latency = 100;
    #####:    #####:  325:      break;
        -:        -:  326:
        -:        -:  327:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN4:
        -:        -:  328:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
        -:        -:  329:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
        -:        -:  330:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7:
        -:        -:  331:   case VS_OPCODE_PULL_CONSTANT_LOAD:
        -:        -:  332:      /* testing using varying-index pull constants:
        -:        -:  333:       *
        -:        -:  334:       * 16 cycles:
        -:        -:  335:       * mov(8)  g4<1>D  g2.1<0,1,0>F                  { align1 WE_normal 1Q };
        -:        -:  336:       * send(8) g4<1>F  g4<8,8,1>D
        -:        -:  337:       *   data (9, 2, 3) mlen 1 rlen 1                { align1 WE_normal 1Q };
        -:        -:  338:       *
        -:        -:  339:       * ~480 cycles:
        -:        -:  340:       * mov(8)  g4<1>D  g2.1<0,1,0>F                  { align1 WE_normal 1Q };
        -:        -:  341:       * send(8) g4<1>F  g4<8,8,1>D
        -:        -:  342:       *   data (9, 2, 3) mlen 1 rlen 1                { align1 WE_normal 1Q };
        -:        -:  343:       * mov(8)  null    g4<8,8,1>F                    { align1 WE_normal 1Q };
        -:        -:  344:       *
        -:        -:  345:       * ~620 cycles:
        -:        -:  346:       * mov(8)  g4<1>D  g2.1<0,1,0>F                  { align1 WE_normal 1Q };
        -:        -:  347:       * send(8) g4<1>F  g4<8,8,1>D
        -:        -:  348:       *   data (9, 2, 3) mlen 1 rlen 1                { align1 WE_normal 1Q };
        -:        -:  349:       * mov(8)  null    g4<8,8,1>F                    { align1 WE_normal 1Q };
        -:        -:  350:       * send(8) g4<1>F  g4<8,8,1>D
        -:        -:  351:       *   data (9, 2, 3) mlen 1 rlen 1                { align1 WE_normal 1Q };
        -:        -:  352:       * mov(8)  null    g4<8,8,1>F                    { align1 WE_normal 1Q };
        -:        -:  353:       *
        -:        -:  354:       * So, if it's cache-hot, it's about 140.  If it's cache cold, it's
        -:        -:  355:       * about 460.  We expect to mostly be cache hot, so pick something more
        -:        -:  356:       * in that direction.
        -:        -:  357:       */
    #####:    #####:  358:      latency = 200;
    #####:    #####:  359:      break;
        -:        -:  360:
        -:        -:  361:   case SHADER_OPCODE_GEN7_SCRATCH_READ:
        -:        -:  362:      /* Testing a load from offset 0, that had been previously written:
        -:        -:  363:       *
        -:        -:  364:       * send(8) g114<1>UW g0<8,8,1>F data (0, 0, 0) mlen 1 rlen 1 { align1 WE_normal 1Q };
        -:        -:  365:       * mov(8)  null      g114<8,8,1>F { align1 WE_normal 1Q };
        -:        -:  366:       *
        -:        -:  367:       * The cycles spent seemed to be grouped around 40-50 (as low as 38),
        -:        -:  368:       * then around 140.  Presumably this is cache hit vs miss.
        -:        -:  369:       */
    #####:    #####:  370:      latency = 50;
    #####:    #####:  371:      break;
        -:        -:  372:
        -:        -:  373:   case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:  374:   case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:  375:      /* Test code:
        -:        -:  376:       *   mov(8)    g112<1>ud       0x00000000ud       { align1 WE_all 1Q };
        -:        -:  377:       *   mov(1)    g112.7<1>ud     g1.7<0,1,0>ud      { align1 WE_all };
        -:        -:  378:       *   mov(8)    g113<1>ud       0x00000000ud       { align1 WE_normal 1Q };
        -:        -:  379:       *   send(8)   g4<1>ud         g112<8,8,1>ud
        -:        -:  380:       *             data (38, 5, 6) mlen 2 rlen 1      { align1 WE_normal 1Q };
        -:        -:  381:       *
        -:        -:  382:       * Running it 100 times as fragment shader on a 128x128 quad
        -:        -:  383:       * gives an average latency of 13867 cycles per atomic op,
        -:        -:  384:       * standard deviation 3%.  Note that this is a rather
        -:        -:  385:       * pessimistic estimate, the actual latency in cases with few
        -:        -:  386:       * collisions between threads and favorable pipelining has been
        -:        -:  387:       * seen to be reduced by a factor of 100.
        -:        -:  388:       */
    #####:    #####:  389:      latency = 14000;
    #####:    #####:  390:      break;
        -:        -:  391:
        -:        -:  392:   case SHADER_OPCODE_UNTYPED_SURFACE_READ:
        -:        -:  393:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
        -:        -:  394:   case SHADER_OPCODE_TYPED_SURFACE_READ:
        -:        -:  395:   case SHADER_OPCODE_TYPED_SURFACE_WRITE:
        -:        -:  396:      /* Test code:
        -:        -:  397:       *   mov(8)    g112<1>UD       0x00000000UD       { align1 WE_all 1Q };
        -:        -:  398:       *   mov(1)    g112.7<1>UD     g1.7<0,1,0>UD      { align1 WE_all };
        -:        -:  399:       *   mov(8)    g113<1>UD       0x00000000UD       { align1 WE_normal 1Q };
        -:        -:  400:       *   send(8)   g4<1>UD         g112<8,8,1>UD
        -:        -:  401:       *             data (38, 6, 5) mlen 2 rlen 1      { align1 WE_normal 1Q };
        -:        -:  402:       *   .
        -:        -:  403:       *   . [repeats 8 times]
        -:        -:  404:       *   .
        -:        -:  405:       *   mov(8)    g112<1>UD       0x00000000UD       { align1 WE_all 1Q };
        -:        -:  406:       *   mov(1)    g112.7<1>UD     g1.7<0,1,0>UD      { align1 WE_all };
        -:        -:  407:       *   mov(8)    g113<1>UD       0x00000000UD       { align1 WE_normal 1Q };
        -:        -:  408:       *   send(8)   g4<1>UD         g112<8,8,1>UD
        -:        -:  409:       *             data (38, 6, 5) mlen 2 rlen 1      { align1 WE_normal 1Q };
        -:        -:  410:       *
        -:        -:  411:       * Running it 100 times as fragment shader on a 128x128 quad
        -:        -:  412:       * gives an average latency of 583 cycles per surface read,
        -:        -:  413:       * standard deviation 0.9%.
        -:        -:  414:       */
    #####:    #####:  415:      latency = is_haswell ? 300 : 600;
    #####:    #####:  416:      break;
        -:        -:  417:
        -:        -:  418:   default:
        -:        -:  419:      /* 2 cycles:
        -:        -:  420:       * mul(8) g4<1>F g2<0,1,0>F      0.5F            { align1 WE_normal 1Q };
        -:        -:  421:       *
        -:        -:  422:       * 16 cycles:
        -:        -:  423:       * mul(8) g4<1>F g2<0,1,0>F      0.5F            { align1 WE_normal 1Q };
        -:        -:  424:       * mov(8) null   g4<8,8,1>F                      { align1 WE_normal 1Q };
        -:        -:  425:       */
      187:      199:  426:      latency = 14;
      187:      199:  427:      break;
        -:        -:  428:   }
      217:      229:  429:}
        -:        -:  430:
        -:        -:  431:class instruction_scheduler {
        -:        -:  432:public:
       12:       12:  433:   instruction_scheduler(backend_shader *s, int grf_count,
        -:        -:  434:                         int hw_reg_count, int block_count,
        -:        -:  435:                         instruction_scheduler_mode mode)
       12:       12:  436:   {
       12:       12:  437:      this->bs = s;
       12:       12:  438:      this->mem_ctx = ralloc_context(NULL);
       12:       12:  439:      this->grf_count = grf_count;
       12:       12:  440:      this->hw_reg_count = hw_reg_count;
       12:       12:  441:      this->instructions.make_empty();
       12:       12:  442:      this->instructions_to_schedule = 0;
       12:       12:  443:      this->post_reg_alloc = (mode == SCHEDULE_POST);
       12:       12:  444:      this->mode = mode;
       12:       12:  445:      if (!post_reg_alloc) {
        5:        5:  446:         this->reg_pressure_in = rzalloc_array(mem_ctx, int, block_count);
        -:        -:  447:
        5:        5:  448:         this->livein = ralloc_array(mem_ctx, BITSET_WORD *, block_count);
       54:       62:  449:         for (int i = 0; i < block_count; i++)
       49:       57:  450:            this->livein[i] = rzalloc_array(mem_ctx, BITSET_WORD,
       49:       57:  451:                                            BITSET_WORDS(grf_count));
        -:        -:  452:
        5:        5:  453:         this->liveout = ralloc_array(mem_ctx, BITSET_WORD *, block_count);
       54:       62:  454:         for (int i = 0; i < block_count; i++)
       49:       57:  455:            this->liveout[i] = rzalloc_array(mem_ctx, BITSET_WORD,
       49:       57:  456:                                             BITSET_WORDS(grf_count));
        -:        -:  457:
        5:        5:  458:         this->hw_liveout = ralloc_array(mem_ctx, BITSET_WORD *, block_count);
       54:       62:  459:         for (int i = 0; i < block_count; i++)
       49:       57:  460:            this->hw_liveout[i] = rzalloc_array(mem_ctx, BITSET_WORD,
       49:       57:  461:                                                BITSET_WORDS(hw_reg_count));
        -:        -:  462:
        5:        5:  463:         this->written = rzalloc_array(mem_ctx, bool, grf_count);
        -:        -:  464:
        5:        5:  465:         this->reads_remaining = rzalloc_array(mem_ctx, int, grf_count);
        -:        -:  466:
        5:        5:  467:         this->hw_reads_remaining = rzalloc_array(mem_ctx, int, hw_reg_count);
        -:        -:  468:      } else {
        7:        7:  469:         this->reg_pressure_in = NULL;
        7:        7:  470:         this->livein = NULL;
        7:        7:  471:         this->liveout = NULL;
        7:        7:  472:         this->hw_liveout = NULL;
        7:        7:  473:         this->written = NULL;
        7:        7:  474:         this->reads_remaining = NULL;
        7:        7:  475:         this->hw_reads_remaining = NULL;
        -:        -:  476:      }
       12:       12:  477:   }
        -:        -:  478:
       12:       12:  479:   ~instruction_scheduler()
       24:       24:  480:   {
       12:       12:  481:      ralloc_free(this->mem_ctx);
       12:       12:  482:   }
        -:        -:  483:   void add_barrier_deps(schedule_node *n);
        -:        -:  484:   void add_dep(schedule_node *before, schedule_node *after, int latency);
        -:        -:  485:   void add_dep(schedule_node *before, schedule_node *after);
        -:        -:  486:
        -:        -:  487:   void run(cfg_t *cfg);
        -:        -:  488:   void add_insts_from_block(bblock_t *block);
        -:        -:  489:   void compute_delays();
        -:        -:  490:   void compute_exits();
        -:        -:  491:   virtual void calculate_deps() = 0;
        -:        -:  492:   virtual schedule_node *choose_instruction_to_schedule() = 0;
        -:        -:  493:
        -:        -:  494:   /**
        -:        -:  495:    * Returns how many cycles it takes the instruction to issue.
        -:        -:  496:    *
        -:        -:  497:    * Instructions in gen hardware are handled one simd4 vector at a time,
        -:        -:  498:    * with 1 cycle per vector dispatched.  Thus SIMD8 pixel shaders take 2
        -:        -:  499:    * cycles to dispatch and SIMD16 (compressed) instructions take 4.
        -:        -:  500:    */
        -:        -:  501:   virtual int issue_time(backend_instruction *inst) = 0;
        -:        -:  502:
        -:        -:  503:   virtual void count_reads_remaining(backend_instruction *inst) = 0;
        -:        -:  504:   virtual void setup_liveness(cfg_t *cfg) = 0;
        -:        -:  505:   virtual void update_register_pressure(backend_instruction *inst) = 0;
        -:        -:  506:   virtual int get_register_pressure_benefit(backend_instruction *inst) = 0;
        -:        -:  507:
        -:        -:  508:   void schedule_instructions(bblock_t *block);
        -:        -:  509:
        -:        -:  510:   void *mem_ctx;
        -:        -:  511:
        -:        -:  512:   bool post_reg_alloc;
        -:        -:  513:   int instructions_to_schedule;
        -:        -:  514:   int grf_count;
        -:        -:  515:   int hw_reg_count;
        -:        -:  516:   int reg_pressure;
        -:        -:  517:   int block_idx;
        -:        -:  518:   exec_list instructions;
        -:        -:  519:   backend_shader *bs;
        -:        -:  520:
        -:        -:  521:   instruction_scheduler_mode mode;
        -:        -:  522:
        -:        -:  523:   /*
        -:        -:  524:    * The register pressure at the beginning of each basic block.
        -:        -:  525:    */
        -:        -:  526:
        -:        -:  527:   int *reg_pressure_in;
        -:        -:  528:
        -:        -:  529:   /*
        -:        -:  530:    * The virtual GRF's whose range overlaps the beginning of each basic block.
        -:        -:  531:    */
        -:        -:  532:
        -:        -:  533:   BITSET_WORD **livein;
        -:        -:  534:
        -:        -:  535:   /*
        -:        -:  536:    * The virtual GRF's whose range overlaps the end of each basic block.
        -:        -:  537:    */
        -:        -:  538:
        -:        -:  539:   BITSET_WORD **liveout;
        -:        -:  540:
        -:        -:  541:   /*
        -:        -:  542:    * The hardware GRF's whose range overlaps the end of each basic block.
        -:        -:  543:    */
        -:        -:  544:
        -:        -:  545:   BITSET_WORD **hw_liveout;
        -:        -:  546:
        -:        -:  547:   /*
        -:        -:  548:    * Whether we've scheduled a write for this virtual GRF yet.
        -:        -:  549:    */
        -:        -:  550:
        -:        -:  551:   bool *written;
        -:        -:  552:
        -:        -:  553:   /*
        -:        -:  554:    * How many reads we haven't scheduled for this virtual GRF yet.
        -:        -:  555:    */
        -:        -:  556:
        -:        -:  557:   int *reads_remaining;
        -:        -:  558:
        -:        -:  559:   /*
        -:        -:  560:    * How many reads we haven't scheduled for this hardware GRF yet.
        -:        -:  561:    */
        -:        -:  562:
        -:        -:  563:   int *hw_reads_remaining;
        -:        -:  564:};
        -:        -:  565:
       10:       10:  566:class fs_instruction_scheduler : public instruction_scheduler
        -:        -:  567:{
        -:        -:  568:public:
        -:        -:  569:   fs_instruction_scheduler(fs_visitor *v, int grf_count, int hw_reg_count,
        -:        -:  570:                            int block_count,
        -:        -:  571:                            instruction_scheduler_mode mode);
        -:        -:  572:   void calculate_deps();
        -:        -:  573:   bool is_compressed(fs_inst *inst);
        -:        -:  574:   schedule_node *choose_instruction_to_schedule();
        -:        -:  575:   int issue_time(backend_instruction *inst);
        -:        -:  576:   fs_visitor *v;
        -:        -:  577:
        -:        -:  578:   void count_reads_remaining(backend_instruction *inst);
        -:        -:  579:   void setup_liveness(cfg_t *cfg);
        -:        -:  580:   void update_register_pressure(backend_instruction *inst);
        -:        -:  581:   int get_register_pressure_benefit(backend_instruction *inst);
        -:        -:  582:};
        -:        -:  583:
       10:       10:  584:fs_instruction_scheduler::fs_instruction_scheduler(fs_visitor *v,
        -:        -:  585:                                                   int grf_count, int hw_reg_count,
        -:        -:  586:                                                   int block_count,
        -:        -:  587:                                                   instruction_scheduler_mode mode)
        -:        -:  588:   : instruction_scheduler(v, grf_count, hw_reg_count, block_count, mode),
       10:       10:  589:     v(v)
        -:        -:  590:{
       10:       10:  591:}
        -:        -:  592:
        -:        -:  593:static bool
      762:      798:  594:is_src_duplicate(fs_inst *inst, int src)
        -:        -:  595:{
     1113:     1161:  596:   for (int i = 0; i < src; i++)
      369:      381:  597:     if (inst->src[i].equals(inst->src[src]))
       18:       18:  598:       return true;
        -:        -:  599:
      744:      780:  600:  return false;
        -:        -:  601:}
        -:        -:  602:
        -:        -:  603:void
      206:      218:  604:fs_instruction_scheduler::count_reads_remaining(backend_instruction *be)
        -:        -:  605:{
      206:      218:  606:   fs_inst *inst = (fs_inst *)be;
        -:        -:  607:
      206:      218:  608:   if (!reads_remaining)
    #####:    #####:  609:      return;
        -:        -:  610:
      460:      484:  611:   for (int i = 0; i < inst->sources; i++) {
      254:      266:  612:      if (is_src_duplicate(inst, i))
        6:        6:  613:         continue;
        -:        -:  614:
      248:      260:  615:      if (inst->src[i].file == VGRF) {
      153:      157:  616:         reads_remaining[inst->src[i].nr]++;
       95:      103:  617:      } else if (inst->src[i].file == FIXED_GRF) {
       64:       64:  618:         if (inst->src[i].nr >= hw_reg_count)
    #####:    #####:  619:            continue;
        -:        -:  620:
      144:      144:  621:         for (unsigned j = 0; j < regs_read(inst, i); j++)
       80:       80:  622:            hw_reads_remaining[inst->src[i].nr + j]++;
        -:        -:  623:      }
        -:        -:  624:   }
        -:        -:  625:}
        -:        -:  626:
        -:        -:  627:void
        5:        5:  628:fs_instruction_scheduler::setup_liveness(cfg_t *cfg)
        -:        -:  629:{
        -:        -:  630:   /* First, compute liveness on a per-GRF level using the in/out sets from
        -:        -:  631:    * liveness calculation.
        -:        -:  632:    */
       54:       62:  633:   for (int block = 0; block < cfg->num_blocks; block++) {
     2963:     3475:  634:      for (int i = 0; i < v->live_intervals->num_vars; i++) {
     2914:     3418:  635:         if (BITSET_TEST(v->live_intervals->block_data[block].livein, i)) {
      429:      675:  636:            int vgrf = v->live_intervals->vgrf_from_var[i];
      429:      675:  637:            if (!BITSET_TEST(livein[block], vgrf)) {
      286:      450:  638:               reg_pressure_in[block] += v->alloc.sizes[vgrf];
      286:      450:  639:               BITSET_SET(livein[block], vgrf);
        -:        -:  640:            }
        -:        -:  641:         }
        -:        -:  642:
     2914:     3418:  643:         if (BITSET_TEST(v->live_intervals->block_data[block].liveout, i))
      450:      702:  644:            BITSET_SET(liveout[block], v->live_intervals->vgrf_from_var[i]);
        -:        -:  645:      }
        -:        -:  646:   }
        -:        -:  647:
        -:        -:  648:   /* Now, extend the live in/live out sets for when a range crosses a block
        -:        -:  649:    * boundary, which matches what our register allocator/interference code
        -:        -:  650:    * does to account for force_writemask_all and incompatible exec_mask's.
        -:        -:  651:    */
       49:       57:  652:   for (int block = 0; block < cfg->num_blocks - 1; block++) {
     1914:     2262:  653:      for (int i = 0; i < grf_count; i++) {
     2978:     3570:  654:         if (v->virtual_grf_start[i] <= cfg->blocks[block]->end_ip &&
     1108:     1360:  655:             v->virtual_grf_end[i] >= cfg->blocks[block + 1]->start_ip) {
      326:      458:  656:            if (!BITSET_TEST(livein[block + 1], i)) {
       44:       12:  657:                reg_pressure_in[block + 1] += v->alloc.sizes[i];
       44:       12:  658:                BITSET_SET(livein[block + 1], i);
        -:        -:  659:            }
        -:        -:  660:
      326:      458:  661:            BITSET_SET(liveout[block], i);
        -:        -:  662:         }
        -:        -:  663:      }
        -:        -:  664:   }
        -:        -:  665:
        5:        5:  666:   int payload_last_use_ip[hw_reg_count];
        5:        5:  667:   v->calculate_payload_ranges(hw_reg_count, payload_last_use_ip);
        -:        -:  668:
       37:       37:  669:   for (int i = 0; i < hw_reg_count; i++) {
       32:       32:  670:      if (payload_last_use_ip[i] == -1)
        6:        6:  671:         continue;
        -:        -:  672:
      228:      260:  673:      for (int block = 0; block < cfg->num_blocks; block++) {
      202:      234:  674:         if (cfg->blocks[block]->start_ip <= payload_last_use_ip[i])
      188:      220:  675:            reg_pressure_in[block]++;
        -:        -:  676:
      202:      234:  677:         if (cfg->blocks[block]->end_ip <= payload_last_use_ip[i])
      174:      206:  678:            BITSET_SET(hw_liveout[block], i);
        -:        -:  679:      }
        5:        5:  680:   }
        5:        5:  681:}
        -:        -:  682:
        -:        -:  683:void
      206:      218:  684:fs_instruction_scheduler::update_register_pressure(backend_instruction *be)
        -:        -:  685:{
      206:      218:  686:   fs_inst *inst = (fs_inst *)be;
        -:        -:  687:
      206:      218:  688:   if (!reads_remaining)
    #####:    #####:  689:      return;
        -:        -:  690:
      206:      218:  691:   if (inst->dst.file == VGRF) {
      104:      104:  692:      written[inst->dst.nr] = true;
        -:        -:  693:   }
        -:        -:  694:
      460:      484:  695:   for (int i = 0; i < inst->sources; i++) {
      254:      266:  696:      if (is_src_duplicate(inst, i))
        6:        6:  697:          continue;
        -:        -:  698:
      248:      260:  699:      if (inst->src[i].file == VGRF) {
      153:      157:  700:         reads_remaining[inst->src[i].nr]--;
      159:      167:  701:      } else if (inst->src[i].file == FIXED_GRF &&
       64:       64:  702:                 inst->src[i].nr < hw_reg_count) {
      144:      144:  703:         for (unsigned off = 0; off < regs_read(inst, i); off++)
       80:       80:  704:            hw_reads_remaining[inst->src[i].nr + off]--;
        -:        -:  705:      }
        -:        -:  706:   }
        -:        -:  707:}
        -:        -:  708:
        -:        -:  709:int
      206:      218:  710:fs_instruction_scheduler::get_register_pressure_benefit(backend_instruction *be)
        -:        -:  711:{
      206:      218:  712:   fs_inst *inst = (fs_inst *)be;
      206:      218:  713:   int benefit = 0;
        -:        -:  714:
      206:      218:  715:   if (inst->dst.file == VGRF) {
      186:      186:  716:      if (!BITSET_TEST(livein[block_idx], inst->dst.nr) &&
       82:       82:  717:          !written[inst->dst.nr])
       75:       75:  718:         benefit -= v->alloc.sizes[inst->dst.nr];
        -:        -:  719:   }
        -:        -:  720:
      460:      484:  721:   for (int i = 0; i < inst->sources; i++) {
      254:      266:  722:      if (is_src_duplicate(inst, i))
        6:        6:  723:         continue;
        -:        -:  724:
      401:      417:  725:      if (inst->src[i].file == VGRF &&
      244:      244:  726:          !BITSET_TEST(liveout[block_idx], inst->src[i].nr) &&
       91:       87:  727:          reads_remaining[inst->src[i].nr] == 1)
       69:       65:  728:         benefit += v->alloc.sizes[inst->src[i].nr];
        -:        -:  729:
      312:      324:  730:      if (inst->src[i].file == FIXED_GRF &&
       64:       64:  731:          inst->src[i].nr < hw_reg_count) {
      144:      144:  732:         for (unsigned off = 0; off < regs_read(inst, i); off++) {
       80:       80:  733:            int reg = inst->src[i].nr + off;
      127:      127:  734:            if (!BITSET_TEST(hw_liveout[block_idx], reg) &&
       47:       47:  735:                hw_reads_remaining[reg] == 1) {
       14:       14:  736:               benefit++;
        -:        -:  737:            }
        -:        -:  738:         }
        -:        -:  739:      }
        -:        -:  740:   }
        -:        -:  741:
      206:      218:  742:   return benefit;
        -:        -:  743:}
        -:        -:  744:
        2:        2:  745:class vec4_instruction_scheduler : public instruction_scheduler
        -:        -:  746:{
        -:        -:  747:public:
        -:        -:  748:   vec4_instruction_scheduler(vec4_visitor *v, int grf_count);
        -:        -:  749:   void calculate_deps();
        -:        -:  750:   schedule_node *choose_instruction_to_schedule();
        -:        -:  751:   int issue_time(backend_instruction *inst);
        -:        -:  752:   vec4_visitor *v;
        -:        -:  753:
        -:        -:  754:   void count_reads_remaining(backend_instruction *inst);
        -:        -:  755:   void setup_liveness(cfg_t *cfg);
        -:        -:  756:   void update_register_pressure(backend_instruction *inst);
        -:        -:  757:   int get_register_pressure_benefit(backend_instruction *inst);
        -:        -:  758:};
        -:        -:  759:
        2:        2:  760:vec4_instruction_scheduler::vec4_instruction_scheduler(vec4_visitor *v,
        -:        -:  761:                                                       int grf_count)
        -:        -:  762:   : instruction_scheduler(v, grf_count, 0, 0, SCHEDULE_POST),
        2:        2:  763:     v(v)
        -:        -:  764:{
        2:        2:  765:}
        -:        -:  766:
        -:        -:  767:void
    #####:    #####:  768:vec4_instruction_scheduler::count_reads_remaining(backend_instruction *be)
        -:        -:  769:{
    #####:    #####:  770:}
        -:        -:  771:
        -:        -:  772:void
    #####:    #####:  773:vec4_instruction_scheduler::setup_liveness(cfg_t *cfg)
        -:        -:  774:{
    #####:    #####:  775:}
        -:        -:  776:
        -:        -:  777:void
    #####:    #####:  778:vec4_instruction_scheduler::update_register_pressure(backend_instruction *be)
        -:        -:  779:{
    #####:    #####:  780:}
        -:        -:  781:
        -:        -:  782:int
    #####:    #####:  783:vec4_instruction_scheduler::get_register_pressure_benefit(backend_instruction *be)
        -:        -:  784:{
    #####:    #####:  785:   return 0;
        -:        -:  786:}
        -:        -:  787:
      423:      447:  788:schedule_node::schedule_node(backend_instruction *inst,
      423:      447:  789:                             instruction_scheduler *sched)
        -:        -:  790:{
      423:      447:  791:   const struct gen_device_info *devinfo = sched->bs->devinfo;
        -:        -:  792:
      423:      447:  793:   this->inst = inst;
      423:      447:  794:   this->child_array_size = 0;
      423:      447:  795:   this->children = NULL;
      423:      447:  796:   this->child_latency = NULL;
      423:      447:  797:   this->child_count = 0;
      423:      447:  798:   this->parent_count = 0;
      423:      447:  799:   this->unblocked_time = 0;
      423:      447:  800:   this->cand_generation = 0;
      423:      447:  801:   this->delay = 0;
      423:      447:  802:   this->exit = NULL;
      423:      447:  803:   this->is_barrier = false;
        -:        -:  804:
        -:        -:  805:   /* We can't measure Gen6 timings directly but expect them to be much
        -:        -:  806:    * closer to Gen7 than Gen4.
        -:        -:  807:    */
      423:      447:  808:   if (!sched->post_reg_alloc)
      206:      218:  809:      this->latency = 1;
      217:      229:  810:   else if (devinfo->gen >= 6)
      217:      229:  811:      set_latency_gen7(devinfo->is_haswell);
        -:        -:  812:   else
    #####:    #####:  813:      set_latency_gen4();
      423:      447:  814:}
        -:        -:  815:
        -:        -:  816:void
      100:      116:  817:instruction_scheduler::add_insts_from_block(bblock_t *block)
        -:        -:  818:{
      523:      563:  819:   foreach_inst_in_block(backend_instruction, inst, block) {
      423:      447:  820:      schedule_node *n = new(mem_ctx) schedule_node(inst, this);
        -:        -:  821:
      423:      447:  822:      instructions.push_tail(n);
        -:        -:  823:   }
        -:        -:  824:
      100:      116:  825:   this->instructions_to_schedule = block->end_ip - block->start_ip + 1;
      100:      116:  826:}
        -:        -:  827:
        -:        -:  828:/** Computation of the delay member of each node. */
        -:        -:  829:void
      100:      116:  830:instruction_scheduler::compute_delays()
        -:        -:  831:{
      523:      563:  832:   foreach_in_list_reverse(schedule_node, n, &instructions) {
      423:      447:  833:      if (!n->child_count) {
      128:      152:  834:         n->delay = issue_time(n->inst);
        -:        -:  835:      } else {
      893:      837:  836:         for (int i = 0; i < n->child_count; i++) {
      598:      542:  837:            assert(n->children[i]->delay);
      598:      542:  838:            n->delay = MAX2(n->delay, n->latency + n->children[i]->delay);
        -:        -:  839:         }
        -:        -:  840:      }
        -:        -:  841:   }
      100:      116:  842:}
        -:        -:  843:
        -:        -:  844:void
      100:      116:  845:instruction_scheduler::compute_exits()
        -:        -:  846:{
        -:        -:  847:   /* Calculate a lower bound of the scheduling time of each node in the
        -:        -:  848:    * graph.  This is analogous to the node's critical path but calculated
        -:        -:  849:    * from the top instead of from the bottom of the block.
        -:        -:  850:    */
      523:      563:  851:   foreach_in_list(schedule_node, n, &instructions) {
     1021:      989:  852:      for (int i = 0; i < n->child_count; i++) {
      598:      542:  853:         n->children[i]->unblocked_time =
     1196:     1084:  854:            MAX2(n->children[i]->unblocked_time,
     1196:     1084:  855:                 n->unblocked_time + issue_time(n->inst) + n->child_latency[i]);
        -:        -:  856:      }
        -:        -:  857:   }
        -:        -:  858:
        -:        -:  859:   /* Calculate the exit of each node by induction based on the exit nodes of
        -:        -:  860:    * its children.  The preferred exit of a node is the one among the exit
        -:        -:  861:    * nodes of its children which can be unblocked first according to the
        -:        -:  862:    * optimistic unblocked time estimate calculated above.
        -:        -:  863:    */
      523:      563:  864:   foreach_in_list_reverse(schedule_node, n, &instructions) {
      423:      447:  865:      n->exit = (n->inst->opcode == FS_OPCODE_DISCARD_JUMP ? n : NULL);
        -:        -:  866:
     1021:      989:  867:      for (int i = 0; i < n->child_count; i++) {
      598:      542:  868:         if (exit_unblocked_time(n->children[i]) < exit_unblocked_time(n))
    #####:    #####:  869:            n->exit = n->children[i]->exit;
        -:        -:  870:      }
        -:        -:  871:   }
      100:      116:  872:}
        -:        -:  873:
        -:        -:  874:/**
        -:        -:  875: * Add a dependency between two instruction nodes.
        -:        -:  876: *
        -:        -:  877: * The @after node will be scheduled after @before.  We will try to
        -:        -:  878: * schedule it @latency cycles after @before, but no guarantees there.
        -:        -:  879: */
        -:        -:  880:void
     1555:     1575:  881:instruction_scheduler::add_dep(schedule_node *before, schedule_node *after,
        -:        -:  882:                               int latency)
        -:        -:  883:{
     1555:     1575:  884:   if (!before || !after)
      753:      815:  885:      return;
        -:        -:  886:
      802:      760:  887:   assert(before != after);
        -:        -:  888:
     1836:     1510:  889:   for (int i = 0; i < before->child_count; i++) {
     1238:      968:  890:      if (before->children[i] == after) {
      204:      218:  891:         before->child_latency[i] = MAX2(before->child_latency[i], latency);
      204:      218:  892:         return;
        -:        -:  893:      }
        -:        -:  894:   }
        -:        -:  895:
      598:      542:  896:   if (before->child_array_size <= before->child_count) {
      295:      295:  897:      if (before->child_array_size < 16)
      295:      295:  898:         before->child_array_size = 16;
        -:        -:  899:      else
    #####:    #####:  900:         before->child_array_size *= 2;
        -:        -:  901:
      295:      295:  902:      before->children = reralloc(mem_ctx, before->children,
        -:        -:  903:                                  schedule_node *,
      295:      295:  904:                                  before->child_array_size);
      295:      295:  905:      before->child_latency = reralloc(mem_ctx, before->child_latency,
      295:      295:  906:                                       int, before->child_array_size);
        -:        -:  907:   }
        -:        -:  908:
      598:      542:  909:   before->children[before->child_count] = after;
      598:      542:  910:   before->child_latency[before->child_count] = latency;
      598:      542:  911:   before->child_count++;
      598:      542:  912:   after->parent_count++;
        -:        -:  913:}
        -:        -:  914:
        -:        -:  915:void
     1149:     1209:  916:instruction_scheduler::add_dep(schedule_node *before, schedule_node *after)
        -:        -:  917:{
     1149:     1209:  918:   if (!before)
      750:      762:  919:      return;
        -:        -:  920:
      399:      447:  921:   add_dep(before, after, before->latency);
        -:        -:  922:}
        -:        -:  923:
        -:        -:  924:/**
        -:        -:  925: * Sometimes we really want this node to execute after everything that
        -:        -:  926: * was before it and before everything that followed it.  This adds
        -:        -:  927: * the deps to do so.
        -:        -:  928: */
        -:        -:  929:void
      114:      122:  930:instruction_scheduler::add_barrier_deps(schedule_node *n)
        -:        -:  931:{
      114:      122:  932:   schedule_node *prev = (schedule_node *)n->prev;
      114:      122:  933:   schedule_node *next = (schedule_node *)n->next;
        -:        -:  934:
      114:      122:  935:   n->is_barrier = true;
        -:        -:  936:
      114:      122:  937:   if (prev) {
      550:      574:  938:      while (!prev->is_head_sentinel()) {
      262:      262:  939:         add_dep(prev, n, 0);
      262:      262:  940:         if (prev->is_barrier)
       44:       36:  941:            break;
      218:      226:  942:         prev = (schedule_node *)prev->prev;
        -:        -:  943:      }
        -:        -:  944:   }
        -:        -:  945:
      114:      122:  946:   if (next) {
      510:      390:  947:      while (!next->is_tail_sentinel()) {
      198:      134:  948:         add_dep(n, next, 0);
      198:      134:  949:         if (next->is_barrier)
    #####:    #####:  950:            break;
      198:      134:  951:         next = (schedule_node *)next->next;
        -:        -:  952:      }
        -:        -:  953:   }
      114:      122:  954:}
        -:        -:  955:
        -:        -:  956:/* instruction scheduling needs to be aware of when an MRF write
        -:        -:  957: * actually writes 2 MRFs.
        -:        -:  958: */
        -:        -:  959:bool
     1786:     1722:  960:fs_instruction_scheduler::is_compressed(fs_inst *inst)
        -:        -:  961:{
     1786:     1722:  962:   return inst->exec_size == 16;
        -:        -:  963:}
        -:        -:  964:
        -:        -:  965:static bool
      412:      436:  966:is_scheduling_barrier(const fs_inst *inst)
        -:        -:  967:{
      824:      872:  968:   return inst->opcode == FS_OPCODE_PLACEHOLDER_HALT ||
      720:      760:  969:          inst->is_control_flow() ||
      720:      760:  970:          inst->has_side_effects();
        -:        -:  971:}
        -:        -:  972:
        -:        -:  973:void
       98:      114:  974:fs_instruction_scheduler::calculate_deps()
        -:        -:  975:{
        -:        -:  976:   /* Pre-register-allocation, this tracks the last write per VGRF offset.
        -:        -:  977:    * After register allocation, reg_offsets are gone and we track individual
        -:        -:  978:    * GRF registers.
        -:        -:  979:    */
       98:      114:  980:   schedule_node *last_grf_write[grf_count * 16];
      294:      342:  981:   schedule_node *last_mrf_write[BRW_MAX_MRF(v->devinfo->gen)];
       98:      114:  982:   schedule_node *last_conditional_mod[4] = {};
       98:      114:  983:   schedule_node *last_accumulator_write = NULL;
        -:        -:  984:   /* Fixed HW registers are assumed to be separate from the virtual
        -:        -:  985:    * GRFs, so they can be tracked separately.  We don't really write
        -:        -:  986:    * to fixed GRFs much, so don't bother tracking them on a more
        -:        -:  987:    * granular level.
        -:        -:  988:    */
       98:      114:  989:   schedule_node *last_fixed_grf_write = NULL;
        -:        -:  990:
       98:      114:  991:   memset(last_grf_write, 0, sizeof(last_grf_write));
       98:      114:  992:   memset(last_mrf_write, 0, sizeof(last_mrf_write));
        -:        -:  993:
        -:        -:  994:   /* top-to-bottom dependencies: RAW and WAW. */
      510:      550:  995:   foreach_in_list(schedule_node, n, &instructions) {
      412:      436:  996:      fs_inst *inst = (fs_inst *)n->inst;
        -:        -:  997:
      412:      436:  998:      if (is_scheduling_barrier(inst))
      114:      122:  999:         add_barrier_deps(n);
        -:        -: 1000:
        -:        -: 1001:      /* read-after-write deps. */
      920:      968: 1002:      for (int i = 0; i < inst->sources; i++) {
      508:      532: 1003:         if (inst->src[i].file == VGRF) {
      318:      326: 1004:            if (post_reg_alloc) {
      370:      380: 1005:               for (unsigned r = 0; r < regs_read(inst, i); r++)
      211:      217: 1006:                  add_dep(last_grf_write[inst->src[i].nr + r], n);
        -:        -: 1007:            } else {
      370:      380: 1008:               for (unsigned r = 0; r < regs_read(inst, i); r++) {
      633:      651: 1009:                  add_dep(last_grf_write[inst->src[i].nr * 16 +
      633:      651: 1010:                                         inst->src[i].offset / REG_SIZE + r], n);
        -:        -: 1011:               }
        -:        -: 1012:            }
      190:      206: 1013:         } else if (inst->src[i].file == FIXED_GRF) {
      128:      128: 1014:            if (post_reg_alloc) {
      144:      144: 1015:               for (unsigned r = 0; r < regs_read(inst, i); r++)
       80:       80: 1016:                  add_dep(last_grf_write[inst->src[i].nr + r], n);
        -:        -: 1017:            } else {
       64:       64: 1018:               add_dep(last_fixed_grf_write, n);
        -:        -: 1019:            }
       62:       78: 1020:         } else if (inst->src[i].is_accumulator()) {
    #####:    #####: 1021:            add_dep(last_accumulator_write, n);
       62:       78: 1022:         } else if (inst->src[i].file == ARF) {
    #####:    #####: 1023:            add_barrier_deps(n);
        -:        -: 1024:         }
        -:        -: 1025:      }
        -:        -: 1026:
      412:      436: 1027:      if (inst->base_mrf != -1) {
       66:       66: 1028:         for (int i = 0; i < inst->mlen; i++) {
        -:        -: 1029:            /* It looks like the MRF regs are released in the send
        -:        -: 1030:             * instruction once it's sent, not when the result comes
        -:        -: 1031:             * back.
        -:        -: 1032:             */
       56:       56: 1033:            add_dep(last_mrf_write[inst->base_mrf + i], n);
        -:        -: 1034:         }
        -:        -: 1035:      }
        -:        -: 1036:
      412:      436: 1037:      if (const unsigned mask = inst->flags_read(v->devinfo)) {
       44:       60: 1038:         assert(mask < (1 << ARRAY_SIZE(last_conditional_mod)));
        -:        -: 1039:
      220:      300: 1040:         for (unsigned i = 0; i < ARRAY_SIZE(last_conditional_mod); i++) {
      176:      240: 1041:            if (mask & (1 << i))
       66:       90: 1042:               add_dep(last_conditional_mod[i], n);
        -:        -: 1043:         }
        -:        -: 1044:      }
        -:        -: 1045:
      412:      436: 1046:      if (inst->reads_accumulator_implicitly()) {
    #####:    #####: 1047:         add_dep(last_accumulator_write, n);
        -:        -: 1048:      }
        -:        -: 1049:
        -:        -: 1050:      /* write-after-write deps. */
      412:      436: 1051:      if (inst->dst.file == VGRF) {
      208:      208: 1052:         if (post_reg_alloc) {
      248:      248: 1053:            for (unsigned r = 0; r < regs_written(inst); r++) {
      144:      144: 1054:               add_dep(last_grf_write[inst->dst.nr + r], n);
      144:      144: 1055:               last_grf_write[inst->dst.nr + r] = n;
        -:        -: 1056:            }
        -:        -: 1057:         } else {
      248:      248: 1058:            for (unsigned r = 0; r < regs_written(inst); r++) {
      432:      432: 1059:               add_dep(last_grf_write[inst->dst.nr * 16 +
      432:      432: 1060:                                      inst->dst.offset / REG_SIZE + r], n);
      288:      288: 1061:               last_grf_write[inst->dst.nr * 16 +
      288:      288: 1062:                              inst->dst.offset / REG_SIZE + r] = n;
        -:        -: 1063:            }
        -:        -: 1064:         }
      204:      228: 1065:      } else if (inst->dst.file == MRF) {
       46:       46: 1066:         int reg = inst->dst.nr & ~BRW_MRF_COMPR4;
        -:        -: 1067:
       46:       46: 1068:         add_dep(last_mrf_write[reg], n);
       46:       46: 1069:         last_mrf_write[reg] = n;
       46:       46: 1070:         if (is_compressed(inst)) {
       10:       10: 1071:            if (inst->dst.nr & BRW_MRF_COMPR4)
    #####:    #####: 1072:               reg += 4;
        -:        -: 1073:            else
       10:       10: 1074:               reg++;
       10:       10: 1075:            add_dep(last_mrf_write[reg], n);
       10:       10: 1076:            last_mrf_write[reg] = n;
        -:        -: 1077:         }
      158:      182: 1078:      } else if (inst->dst.file == FIXED_GRF) {
    #####:    #####: 1079:         if (post_reg_alloc) {
    #####:    #####: 1080:            for (unsigned r = 0; r < regs_written(inst); r++)
    #####:    #####: 1081:               last_grf_write[inst->dst.nr + r] = n;
        -:        -: 1082:         } else {
    #####:    #####: 1083:            last_fixed_grf_write = n;
        -:        -: 1084:         }
      158:      182: 1085:      } else if (inst->dst.is_accumulator()) {
    #####:    #####: 1086:         add_dep(last_accumulator_write, n);
    #####:    #####: 1087:         last_accumulator_write = n;
      158:      182: 1088:      } else if (inst->dst.file == ARF && !inst->dst.is_null()) {
    #####:    #####: 1089:         add_barrier_deps(n);
        -:        -: 1090:      }
        -:        -: 1091:
      412:      436: 1092:      if (inst->mlen > 0 && inst->base_mrf != -1) {
       30:       30: 1093:         for (int i = 0; i < v->implied_mrf_writes(inst); i++) {
       20:       20: 1094:            add_dep(last_mrf_write[inst->base_mrf + i], n);
       20:       20: 1095:            last_mrf_write[inst->base_mrf + i] = n;
        -:        -: 1096:         }
        -:        -: 1097:      }
        -:        -: 1098:
      412:      436: 1099:      if (const unsigned mask = inst->flags_written()) {
       44:       60: 1100:         assert(mask < (1 << ARRAY_SIZE(last_conditional_mod)));
        -:        -: 1101:
      220:      300: 1102:         for (unsigned i = 0; i < ARRAY_SIZE(last_conditional_mod); i++) {
      176:      240: 1103:            if (mask & (1 << i)) {
       66:       90: 1104:               add_dep(last_conditional_mod[i], n, 0);
       66:       90: 1105:               last_conditional_mod[i] = n;
        -:        -: 1106:            }
        -:        -: 1107:         }
        -:        -: 1108:      }
        -:        -: 1109:
      412:      436: 1110:      if (inst->writes_accumulator_implicitly(v->devinfo) &&
    #####:    #####: 1111:          !inst->dst.is_accumulator()) {
    #####:    #####: 1112:         add_dep(last_accumulator_write, n);
    #####:    #####: 1113:         last_accumulator_write = n;
        -:        -: 1114:      }
        -:        -: 1115:   }
        -:        -: 1116:
        -:        -: 1117:   /* bottom-to-top dependencies: WAR */
       98:      114: 1118:   memset(last_grf_write, 0, sizeof(last_grf_write));
       98:      114: 1119:   memset(last_mrf_write, 0, sizeof(last_mrf_write));
       98:      114: 1120:   memset(last_conditional_mod, 0, sizeof(last_conditional_mod));
       98:      114: 1121:   last_accumulator_write = NULL;
       98:      114: 1122:   last_fixed_grf_write = NULL;
        -:        -: 1123:
      510:      550: 1124:   foreach_in_list_reverse_safe(schedule_node, n, &instructions) {
      412:      436: 1125:      fs_inst *inst = (fs_inst *)n->inst;
        -:        -: 1126:
        -:        -: 1127:      /* write-after-read deps. */
      920:      968: 1128:      for (int i = 0; i < inst->sources; i++) {
      508:      532: 1129:         if (inst->src[i].file == VGRF) {
      318:      326: 1130:            if (post_reg_alloc) {
      370:      380: 1131:               for (unsigned r = 0; r < regs_read(inst, i); r++)
      211:      217: 1132:                  add_dep(n, last_grf_write[inst->src[i].nr + r], 0);
        -:        -: 1133:            } else {
      370:      380: 1134:               for (unsigned r = 0; r < regs_read(inst, i); r++) {
      633:      651: 1135:                  add_dep(n, last_grf_write[inst->src[i].nr * 16 +
      633:      651: 1136:                                            inst->src[i].offset / REG_SIZE + r], 0);
        -:        -: 1137:               }
        -:        -: 1138:            }
      190:      206: 1139:         } else if (inst->src[i].file == FIXED_GRF) {
      128:      128: 1140:            if (post_reg_alloc) {
      144:      144: 1141:               for (unsigned r = 0; r < regs_read(inst, i); r++)
       80:       80: 1142:                  add_dep(n, last_grf_write[inst->src[i].nr + r], 0);
        -:        -: 1143:            } else {
       64:       64: 1144:               add_dep(n, last_fixed_grf_write, 0);
        -:        -: 1145:            }
       62:       78: 1146:         } else if (inst->src[i].is_accumulator()) {
    #####:    #####: 1147:            add_dep(n, last_accumulator_write, 0);
       62:       78: 1148:         } else if (inst->src[i].file == ARF) {
    #####:    #####: 1149:            add_barrier_deps(n);
        -:        -: 1150:         }
        -:        -: 1151:      }
        -:        -: 1152:
      412:      436: 1153:      if (inst->base_mrf != -1) {
       66:       66: 1154:         for (int i = 0; i < inst->mlen; i++) {
        -:        -: 1155:            /* It looks like the MRF regs are released in the send
        -:        -: 1156:             * instruction once it's sent, not when the result comes
        -:        -: 1157:             * back.
        -:        -: 1158:             */
       56:       56: 1159:            add_dep(n, last_mrf_write[inst->base_mrf + i], 2);
        -:        -: 1160:         }
        -:        -: 1161:      }
        -:        -: 1162:
      412:      436: 1163:      if (const unsigned mask = inst->flags_read(v->devinfo)) {
       44:       60: 1164:         assert(mask < (1 << ARRAY_SIZE(last_conditional_mod)));
        -:        -: 1165:
      220:      300: 1166:         for (unsigned i = 0; i < ARRAY_SIZE(last_conditional_mod); i++) {
      176:      240: 1167:            if (mask & (1 << i))
       66:       90: 1168:               add_dep(n, last_conditional_mod[i]);
        -:        -: 1169:         }
        -:        -: 1170:      }
        -:        -: 1171:
      412:      436: 1172:      if (inst->reads_accumulator_implicitly()) {
    #####:    #####: 1173:         add_dep(n, last_accumulator_write);
        -:        -: 1174:      }
        -:        -: 1175:
        -:        -: 1176:      /* Update the things this instruction wrote, so earlier reads
        -:        -: 1177:       * can mark this as WAR dependency.
        -:        -: 1178:       */
      412:      436: 1179:      if (inst->dst.file == VGRF) {
      208:      208: 1180:         if (post_reg_alloc) {
      248:      248: 1181:            for (unsigned r = 0; r < regs_written(inst); r++)
      144:      144: 1182:               last_grf_write[inst->dst.nr + r] = n;
        -:        -: 1183:         } else {
      248:      248: 1184:            for (unsigned r = 0; r < regs_written(inst); r++) {
      288:      288: 1185:               last_grf_write[inst->dst.nr * 16 +
      288:      288: 1186:                              inst->dst.offset / REG_SIZE + r] = n;
        -:        -: 1187:            }
        -:        -: 1188:         }
      204:      228: 1189:      } else if (inst->dst.file == MRF) {
       46:       46: 1190:         int reg = inst->dst.nr & ~BRW_MRF_COMPR4;
        -:        -: 1191:
       46:       46: 1192:         last_mrf_write[reg] = n;
        -:        -: 1193:
       46:       46: 1194:         if (is_compressed(inst)) {
       10:       10: 1195:            if (inst->dst.nr & BRW_MRF_COMPR4)
    #####:    #####: 1196:               reg += 4;
        -:        -: 1197:            else
       10:       10: 1198:               reg++;
        -:        -: 1199:
       10:       10: 1200:            last_mrf_write[reg] = n;
        -:        -: 1201:         }
      158:      182: 1202:      } else if (inst->dst.file == FIXED_GRF) {
    #####:    #####: 1203:         if (post_reg_alloc) {
    #####:    #####: 1204:            for (unsigned r = 0; r < regs_written(inst); r++)
    #####:    #####: 1205:               last_grf_write[inst->dst.nr + r] = n;
        -:        -: 1206:         } else {
    #####:    #####: 1207:            last_fixed_grf_write = n;
        -:        -: 1208:         }
      158:      182: 1209:      } else if (inst->dst.is_accumulator()) {
    #####:    #####: 1210:         last_accumulator_write = n;
      158:      182: 1211:      } else if (inst->dst.file == ARF && !inst->dst.is_null()) {
    #####:    #####: 1212:         add_barrier_deps(n);
        -:        -: 1213:      }
        -:        -: 1214:
      412:      436: 1215:      if (inst->mlen > 0 && inst->base_mrf != -1) {
       30:       30: 1216:         for (int i = 0; i < v->implied_mrf_writes(inst); i++) {
       20:       20: 1217:            last_mrf_write[inst->base_mrf + i] = n;
        -:        -: 1218:         }
        -:        -: 1219:      }
        -:        -: 1220:
      412:      436: 1221:      if (const unsigned mask = inst->flags_written()) {
       44:       60: 1222:         assert(mask < (1 << ARRAY_SIZE(last_conditional_mod)));
        -:        -: 1223:
      220:      300: 1224:         for (unsigned i = 0; i < ARRAY_SIZE(last_conditional_mod); i++) {
      176:      240: 1225:            if (mask & (1 << i))
       66:       90: 1226:               last_conditional_mod[i] = n;
        -:        -: 1227:         }
        -:        -: 1228:      }
        -:        -: 1229:
      412:      436: 1230:      if (inst->writes_accumulator_implicitly(v->devinfo)) {
    #####:    #####: 1231:         last_accumulator_write = n;
        -:        -: 1232:      }
       98:      114: 1233:   }
       98:      114: 1234:}
        -:        -: 1235:
        -:        -: 1236:static bool
       11:       11: 1237:is_scheduling_barrier(const vec4_instruction *inst)
        -:        -: 1238:{
       22:       22: 1239:   return inst->is_control_flow() ||
       22:       22: 1240:          inst->has_side_effects();
        -:        -: 1241:}
        -:        -: 1242:
        -:        -: 1243:void
        2:        2: 1244:vec4_instruction_scheduler::calculate_deps()
        -:        -: 1245:{
        2:        2: 1246:   schedule_node *last_grf_write[grf_count];
        6:        6: 1247:   schedule_node *last_mrf_write[BRW_MAX_MRF(v->devinfo->gen)];
        2:        2: 1248:   schedule_node *last_conditional_mod = NULL;
        2:        2: 1249:   schedule_node *last_accumulator_write = NULL;
        -:        -: 1250:   /* Fixed HW registers are assumed to be separate from the virtual
        -:        -: 1251:    * GRFs, so they can be tracked separately.  We don't really write
        -:        -: 1252:    * to fixed GRFs much, so don't bother tracking them on a more
        -:        -: 1253:    * granular level.
        -:        -: 1254:    */
        2:        2: 1255:   schedule_node *last_fixed_grf_write = NULL;
        -:        -: 1256:
        2:        2: 1257:   memset(last_grf_write, 0, sizeof(last_grf_write));
        2:        2: 1258:   memset(last_mrf_write, 0, sizeof(last_mrf_write));
        -:        -: 1259:
        -:        -: 1260:   /* top-to-bottom dependencies: RAW and WAW. */
       13:       13: 1261:   foreach_in_list(schedule_node, n, &instructions) {
       11:       11: 1262:      vec4_instruction *inst = (vec4_instruction *)n->inst;
        -:        -: 1263:
       11:       11: 1264:      if (is_scheduling_barrier(inst))
    #####:    #####: 1265:         add_barrier_deps(n);
        -:        -: 1266:
        -:        -: 1267:      /* read-after-write deps. */
       44:       44: 1268:      for (int i = 0; i < 3; i++) {
       33:       33: 1269:         if (inst->src[i].file == VGRF) {
    #####:    #####: 1270:            for (unsigned j = 0; j < regs_read(inst, i); ++j)
    #####:    #####: 1271:               add_dep(last_grf_write[inst->src[i].nr + j], n);
       33:       33: 1272:         } else if (inst->src[i].file == FIXED_GRF) {
        6:        6: 1273:            add_dep(last_fixed_grf_write, n);
       27:       27: 1274:         } else if (inst->src[i].is_accumulator()) {
    #####:    #####: 1275:            assert(last_accumulator_write);
    #####:    #####: 1276:            add_dep(last_accumulator_write, n);
       27:       27: 1277:         } else if (inst->src[i].file == ARF) {
    #####:    #####: 1278:            add_barrier_deps(n);
        -:        -: 1279:         }
        -:        -: 1280:      }
        -:        -: 1281:
       11:       11: 1282:      if (!inst->is_send_from_grf()) {
       19:       19: 1283:         for (int i = 0; i < inst->mlen; i++) {
        -:        -: 1284:            /* It looks like the MRF regs are released in the send
        -:        -: 1285:             * instruction once it's sent, not when the result comes
        -:        -: 1286:             * back.
        -:        -: 1287:             */
        8:        8: 1288:            add_dep(last_mrf_write[inst->base_mrf + i], n);
        -:        -: 1289:         }
        -:        -: 1290:      }
        -:        -: 1291:
       11:       11: 1292:      if (inst->reads_flag()) {
    #####:    #####: 1293:         assert(last_conditional_mod);
    #####:    #####: 1294:         add_dep(last_conditional_mod, n);
        -:        -: 1295:      }
        -:        -: 1296:
       11:       11: 1297:      if (inst->reads_accumulator_implicitly()) {
    #####:    #####: 1298:         assert(last_accumulator_write);
    #####:    #####: 1299:         add_dep(last_accumulator_write, n);
        -:        -: 1300:      }
        -:        -: 1301:
        -:        -: 1302:      /* write-after-write deps. */
       11:       11: 1303:      if (inst->dst.file == VGRF) {
    #####:    #####: 1304:         for (unsigned j = 0; j < regs_written(inst); ++j) {
    #####:    #####: 1305:            add_dep(last_grf_write[inst->dst.nr + j], n);
    #####:    #####: 1306:            last_grf_write[inst->dst.nr + j] = n;
        -:        -: 1307:         }
       11:       11: 1308:      } else if (inst->dst.file == MRF) {
        9:        9: 1309:         add_dep(last_mrf_write[inst->dst.nr], n);
        9:        9: 1310:         last_mrf_write[inst->dst.nr] = n;
        2:        2: 1311:     } else if (inst->dst.file == FIXED_GRF) {
    #####:    #####: 1312:         last_fixed_grf_write = n;
        2:        2: 1313:      } else if (inst->dst.is_accumulator()) {
    #####:    #####: 1314:         add_dep(last_accumulator_write, n);
    #####:    #####: 1315:         last_accumulator_write = n;
        2:        2: 1316:      } else if (inst->dst.file == ARF && !inst->dst.is_null()) {
    #####:    #####: 1317:         add_barrier_deps(n);
        -:        -: 1318:      }
        -:        -: 1319:
       11:       11: 1320:      if (inst->mlen > 0 && !inst->is_send_from_grf()) {
        4:        4: 1321:         for (int i = 0; i < v->implied_mrf_writes(inst); i++) {
        2:        2: 1322:            add_dep(last_mrf_write[inst->base_mrf + i], n);
        2:        2: 1323:            last_mrf_write[inst->base_mrf + i] = n;
        -:        -: 1324:         }
        -:        -: 1325:      }
        -:        -: 1326:
       11:       11: 1327:      if (inst->writes_flag()) {
    #####:    #####: 1328:         add_dep(last_conditional_mod, n, 0);
    #####:    #####: 1329:         last_conditional_mod = n;
        -:        -: 1330:      }
        -:        -: 1331:
       11:       11: 1332:      if (inst->writes_accumulator_implicitly(v->devinfo) &&
    #####:    #####: 1333:          !inst->dst.is_accumulator()) {
    #####:    #####: 1334:         add_dep(last_accumulator_write, n);
    #####:    #####: 1335:         last_accumulator_write = n;
        -:        -: 1336:      }
        -:        -: 1337:   }
        -:        -: 1338:
        -:        -: 1339:   /* bottom-to-top dependencies: WAR */
        2:        2: 1340:   memset(last_grf_write, 0, sizeof(last_grf_write));
        2:        2: 1341:   memset(last_mrf_write, 0, sizeof(last_mrf_write));
        2:        2: 1342:   last_conditional_mod = NULL;
        2:        2: 1343:   last_accumulator_write = NULL;
        2:        2: 1344:   last_fixed_grf_write = NULL;
        -:        -: 1345:
       13:       13: 1346:   foreach_in_list_reverse_safe(schedule_node, n, &instructions) {
       11:       11: 1347:      vec4_instruction *inst = (vec4_instruction *)n->inst;
        -:        -: 1348:
        -:        -: 1349:      /* write-after-read deps. */
       44:       44: 1350:      for (int i = 0; i < 3; i++) {
       33:       33: 1351:         if (inst->src[i].file == VGRF) {
    #####:    #####: 1352:            for (unsigned j = 0; j < regs_read(inst, i); ++j)
    #####:    #####: 1353:               add_dep(n, last_grf_write[inst->src[i].nr + j]);
       33:       33: 1354:         } else if (inst->src[i].file == FIXED_GRF) {
        6:        6: 1355:            add_dep(n, last_fixed_grf_write);
       27:       27: 1356:         } else if (inst->src[i].is_accumulator()) {
    #####:    #####: 1357:            add_dep(n, last_accumulator_write);
       27:       27: 1358:         } else if (inst->src[i].file == ARF) {
    #####:    #####: 1359:            add_barrier_deps(n);
        -:        -: 1360:         }
        -:        -: 1361:      }
        -:        -: 1362:
       11:       11: 1363:      if (!inst->is_send_from_grf()) {
       19:       19: 1364:         for (int i = 0; i < inst->mlen; i++) {
        -:        -: 1365:            /* It looks like the MRF regs are released in the send
        -:        -: 1366:             * instruction once it's sent, not when the result comes
        -:        -: 1367:             * back.
        -:        -: 1368:             */
        8:        8: 1369:            add_dep(n, last_mrf_write[inst->base_mrf + i], 2);
        -:        -: 1370:         }
        -:        -: 1371:      }
        -:        -: 1372:
       11:       11: 1373:      if (inst->reads_flag()) {
    #####:    #####: 1374:         add_dep(n, last_conditional_mod);
        -:        -: 1375:      }
        -:        -: 1376:
       11:       11: 1377:      if (inst->reads_accumulator_implicitly()) {
    #####:    #####: 1378:         add_dep(n, last_accumulator_write);
        -:        -: 1379:      }
        -:        -: 1380:
        -:        -: 1381:      /* Update the things this instruction wrote, so earlier reads
        -:        -: 1382:       * can mark this as WAR dependency.
        -:        -: 1383:       */
       11:       11: 1384:      if (inst->dst.file == VGRF) {
    #####:    #####: 1385:         for (unsigned j = 0; j < regs_written(inst); ++j)
    #####:    #####: 1386:            last_grf_write[inst->dst.nr + j] = n;
       11:       11: 1387:      } else if (inst->dst.file == MRF) {
        9:        9: 1388:         last_mrf_write[inst->dst.nr] = n;
        2:        2: 1389:      } else if (inst->dst.file == FIXED_GRF) {
    #####:    #####: 1390:         last_fixed_grf_write = n;
        2:        2: 1391:      } else if (inst->dst.is_accumulator()) {
    #####:    #####: 1392:         last_accumulator_write = n;
        2:        2: 1393:      } else if (inst->dst.file == ARF && !inst->dst.is_null()) {
    #####:    #####: 1394:         add_barrier_deps(n);
        -:        -: 1395:      }
        -:        -: 1396:
       11:       11: 1397:      if (inst->mlen > 0 && !inst->is_send_from_grf()) {
        4:        4: 1398:         for (int i = 0; i < v->implied_mrf_writes(inst); i++) {
        2:        2: 1399:            last_mrf_write[inst->base_mrf + i] = n;
        -:        -: 1400:         }
        -:        -: 1401:      }
        -:        -: 1402:
       11:       11: 1403:      if (inst->writes_flag()) {
    #####:    #####: 1404:         last_conditional_mod = n;
        -:        -: 1405:      }
        -:        -: 1406:
       11:       11: 1407:      if (inst->writes_accumulator_implicitly(v->devinfo)) {
    #####:    #####: 1408:         last_accumulator_write = n;
        -:        -: 1409:      }
        2:        2: 1410:   }
        2:        2: 1411:}
        -:        -: 1412:
        -:        -: 1413:schedule_node *
      412:      436: 1414:fs_instruction_scheduler::choose_instruction_to_schedule()
        -:        -: 1415:{
      412:      436: 1416:   schedule_node *chosen = NULL;
        -:        -: 1417:
      412:      436: 1418:   if (mode == SCHEDULE_PRE || mode == SCHEDULE_POST) {
      412:      436: 1419:      int chosen_time = 0;
        -:        -: 1420:
        -:        -: 1421:      /* Of the instructions ready to execute or the closest to being ready,
        -:        -: 1422:       * choose the one most likely to unblock an early program exit, or
        -:        -: 1423:       * otherwise the oldest one.
        -:        -: 1424:       */
     1156:     1282: 1425:      foreach_in_list(schedule_node, n, &instructions) {
     1076:     1256: 1426:         if (!chosen ||
     1600:     1820: 1427:             exit_unblocked_time(n) < exit_unblocked_time(chosen) ||
      664:      820: 1428:             (exit_unblocked_time(n) == exit_unblocked_time(chosen) &&
      332:      410: 1429:              n->unblocked_time < chosen_time)) {
      524:      564: 1430:            chosen = n;
      524:      564: 1431:            chosen_time = n->unblocked_time;
        -:        -: 1432:         }
      412:      436: 1433:      }
        -:        -: 1434:   } else {
        -:        -: 1435:      /* Before register allocation, we don't care about the latencies of
        -:        -: 1436:       * instructions.  All we care about is reducing live intervals of
        -:        -: 1437:       * variables so that we can avoid register spilling, or get SIMD16
        -:        -: 1438:       * shaders which naturally do a better job of hiding instruction
        -:        -: 1439:       * latency.
        -:        -: 1440:       */
    #####:    #####: 1441:      foreach_in_list(schedule_node, n, &instructions) {
    #####:    #####: 1442:         fs_inst *inst = (fs_inst *)n->inst;
        -:        -: 1443:
    #####:    #####: 1444:         if (!chosen) {
    #####:    #####: 1445:            chosen = n;
    #####:    #####: 1446:            continue;
        -:        -: 1447:         }
        -:        -: 1448:
        -:        -: 1449:         /* Most important: If we can definitely reduce register pressure, do
        -:        -: 1450:          * so immediately.
        -:        -: 1451:          */
    #####:    #####: 1452:         int register_pressure_benefit = get_register_pressure_benefit(n->inst);
        -:        -: 1453:         int chosen_register_pressure_benefit =
    #####:    #####: 1454:            get_register_pressure_benefit(chosen->inst);
        -:        -: 1455:
    #####:    #####: 1456:         if (register_pressure_benefit > 0 &&
        -:        -: 1457:             register_pressure_benefit > chosen_register_pressure_benefit) {
    #####:    #####: 1458:            chosen = n;
    #####:    #####: 1459:            continue;
    #####:    #####: 1460:         } else if (chosen_register_pressure_benefit > 0 &&
        -:        -: 1461:                    (register_pressure_benefit <
        -:        -: 1462:                     chosen_register_pressure_benefit)) {
    #####:    #####: 1463:            continue;
        -:        -: 1464:         }
        -:        -: 1465:
    #####:    #####: 1466:         if (mode == SCHEDULE_PRE_LIFO) {
        -:        -: 1467:            /* Prefer instructions that recently became available for
        -:        -: 1468:             * scheduling.  These are the things that are most likely to
        -:        -: 1469:             * (eventually) make a variable dead and reduce register pressure.
        -:        -: 1470:             * Typical register pressure estimates don't work for us because
        -:        -: 1471:             * most of our pressure comes from texturing, where no single
        -:        -: 1472:             * instruction to schedule will make a vec4 value dead.
        -:        -: 1473:             */
    #####:    #####: 1474:            if (n->cand_generation > chosen->cand_generation) {
    #####:    #####: 1475:               chosen = n;
    #####:    #####: 1476:               continue;
    #####:    #####: 1477:            } else if (n->cand_generation < chosen->cand_generation) {
    #####:    #####: 1478:               continue;
        -:        -: 1479:            }
        -:        -: 1480:
        -:        -: 1481:            /* On MRF-using chips, prefer non-SEND instructions.  If we don't
        -:        -: 1482:             * do this, then because we prefer instructions that just became
        -:        -: 1483:             * candidates, we'll end up in a pattern of scheduling a SEND,
        -:        -: 1484:             * then the MRFs for the next SEND, then the next SEND, then the
        -:        -: 1485:             * MRFs, etc., without ever consuming the results of a send.
        -:        -: 1486:             */
    #####:    #####: 1487:            if (v->devinfo->gen < 7) {
    #####:    #####: 1488:               fs_inst *chosen_inst = (fs_inst *)chosen->inst;
        -:        -: 1489:
        -:        -: 1490:               /* We use size_written > 4 * exec_size as our test for the kind
        -:        -: 1491:                * of send instruction to avoid -- only sends generate many
        -:        -: 1492:                * regs, and a single-result send is probably actually reducing
        -:        -: 1493:                * register pressure.
        -:        -: 1494:                */
    #####:    #####: 1495:               if (inst->size_written <= 4 * inst->exec_size &&
    #####:    #####: 1496:                   chosen_inst->size_written > 4 * chosen_inst->exec_size) {
    #####:    #####: 1497:                  chosen = n;
    #####:    #####: 1498:                  continue;
    #####:    #####: 1499:               } else if (inst->size_written > chosen_inst->size_written) {
    #####:    #####: 1500:                  continue;
        -:        -: 1501:               }
        -:        -: 1502:            }
        -:        -: 1503:         }
        -:        -: 1504:
        -:        -: 1505:         /* For instructions pushed on the cands list at the same time, prefer
        -:        -: 1506:          * the one with the highest delay to the end of the program.  This is
        -:        -: 1507:          * most likely to have its values able to be consumed first (such as
        -:        -: 1508:          * for a large tree of lowered ubo loads, which appear reversed in
        -:        -: 1509:          * the instruction stream with respect to when they can be consumed).
        -:        -: 1510:          */
    #####:    #####: 1511:         if (n->delay > chosen->delay) {
    #####:    #####: 1512:            chosen = n;
    #####:    #####: 1513:            continue;
    #####:    #####: 1514:         } else if (n->delay < chosen->delay) {
    #####:    #####: 1515:            continue;
        -:        -: 1516:         }
        -:        -: 1517:
        -:        -: 1518:         /* Prefer the node most likely to unblock an early program exit.
        -:        -: 1519:          */
    #####:    #####: 1520:         if (exit_unblocked_time(n) < exit_unblocked_time(chosen)) {
    #####:    #####: 1521:            chosen = n;
    #####:    #####: 1522:            continue;
    #####:    #####: 1523:         } else if (exit_unblocked_time(n) > exit_unblocked_time(chosen)) {
    #####:    #####: 1524:            continue;
        -:        -: 1525:         }
        -:        -: 1526:
        -:        -: 1527:         /* If all other metrics are equal, we prefer the first instruction in
        -:        -: 1528:          * the list (program execution).
        -:        -: 1529:          */
        -:        -: 1530:      }
        -:        -: 1531:   }
        -:        -: 1532:
      412:      436: 1533:   return chosen;
        -:        -: 1534:}
        -:        -: 1535:
        -:        -: 1536:schedule_node *
       11:       11: 1537:vec4_instruction_scheduler::choose_instruction_to_schedule()
        -:        -: 1538:{
       11:       11: 1539:   schedule_node *chosen = NULL;
       11:       11: 1540:   int chosen_time = 0;
        -:        -: 1541:
        -:        -: 1542:   /* Of the instructions ready to execute or the closest to being ready,
        -:        -: 1543:    * choose the oldest one.
        -:        -: 1544:    */
       29:       29: 1545:   foreach_in_list(schedule_node, n, &instructions) {
       18:       18: 1546:      if (!chosen || n->unblocked_time < chosen_time) {
       14:       14: 1547:         chosen = n;
       14:       14: 1548:         chosen_time = n->unblocked_time;
        -:        -: 1549:      }
        -:        -: 1550:   }
        -:        -: 1551:
       11:       11: 1552:   return chosen;
        -:        -: 1553:}
        -:        -: 1554:
        -:        -: 1555:int
     1694:     1630: 1556:fs_instruction_scheduler::issue_time(backend_instruction *inst)
        -:        -: 1557:{
     1694:     1630: 1558:   if (is_compressed((fs_inst *)inst))
      747:      707: 1559:      return 4;
        -:        -: 1560:   else
      947:      923: 1561:      return 2;
        -:        -: 1562:}
        -:        -: 1563:
        -:        -: 1564:int
       28:       28: 1565:vec4_instruction_scheduler::issue_time(backend_instruction *inst)
        -:        -: 1566:{
        -:        -: 1567:   /* We always execute as two vec4s in parallel. */
       28:       28: 1568:   return 2;
        -:        -: 1569:}
        -:        -: 1570:
        -:        -: 1571:void
      100:      116: 1572:instruction_scheduler::schedule_instructions(bblock_t *block)
        -:        -: 1573:{
      100:      116: 1574:   const struct gen_device_info *devinfo = bs->devinfo;
      100:      116: 1575:   int time = 0;
      100:      116: 1576:   if (!post_reg_alloc)
       49:       57: 1577:      reg_pressure = reg_pressure_in[block->num];
      100:      116: 1578:   block_idx = block->num;
        -:        -: 1579:
        -:        -: 1580:   /* Remove non-DAG heads from the list. */
      523:      563: 1581:   foreach_in_list_safe(schedule_node, n, &instructions) {
      423:      447: 1582:      if (n->parent_count != 0)
      268:      256: 1583:         n->remove();
        -:        -: 1584:   }
        -:        -: 1585:
      100:      116: 1586:   unsigned cand_generation = 1;
      946:     1010: 1587:   while (!instructions.is_empty()) {
      423:      447: 1588:      schedule_node *chosen = choose_instruction_to_schedule();
        -:        -: 1589:
        -:        -: 1590:      /* Schedule this instruction. */
      423:      447: 1591:      assert(chosen);
      423:      447: 1592:      chosen->remove();
      423:      447: 1593:      chosen->inst->exec_node::remove();
      423:      447: 1594:      block->instructions.push_tail(chosen->inst);
      423:      447: 1595:      instructions_to_schedule--;
        -:        -: 1596:
      423:      447: 1597:      if (!post_reg_alloc) {
      206:      218: 1598:         reg_pressure -= get_register_pressure_benefit(chosen->inst);
      206:      218: 1599:         update_register_pressure(chosen->inst);
        -:        -: 1600:      }
        -:        -: 1601:
        -:        -: 1602:      /* If we expected a delay for scheduling, then bump the clock to reflect
        -:        -: 1603:       * that.  In reality, the hardware will switch to another hyperthread
        -:        -: 1604:       * and may not return to dispatching our thread for a while even after
        -:        -: 1605:       * we're unblocked.  After this, we have the time when the chosen
        -:        -: 1606:       * instruction will start executing.
        -:        -: 1607:       */
      423:      447: 1608:      time = MAX2(time, chosen->unblocked_time);
        -:        -: 1609:
        -:        -: 1610:      /* Update the clock for how soon an instruction could start after the
        -:        -: 1611:       * chosen one.
        -:        -: 1612:       */
      423:      447: 1613:      time += issue_time(chosen->inst);
        -:        -: 1614:
      423:      447: 1615:      if (debug) {
    #####:    #####: 1616:         fprintf(stderr, "clock %4d, scheduled: ", time);
    #####:    #####: 1617:         bs->dump_instruction(chosen->inst);
    #####:    #####: 1618:         if (!post_reg_alloc)
    #####:    #####: 1619:            fprintf(stderr, "(register pressure %d)\n", reg_pressure);
        -:        -: 1620:      }
        -:        -: 1621:
        -:        -: 1622:      /* Now that we've scheduled a new instruction, some of its
        -:        -: 1623:       * children can be promoted to the list of instructions ready to
        -:        -: 1624:       * be scheduled.  Update the children's unblocked time for this
        -:        -: 1625:       * DAG edge as we do so.
        -:        -: 1626:       */
     1021:      989: 1627:      for (int i = chosen->child_count - 1; i >= 0; i--) {
      598:      542: 1628:         schedule_node *child = chosen->children[i];
        -:        -: 1629:
      598:      542: 1630:         child->unblocked_time = MAX2(child->unblocked_time,
      598:      542: 1631:                                      time + chosen->child_latency[i]);
        -:        -: 1632:
      598:      542: 1633:         if (debug) {
    #####:    #####: 1634:            fprintf(stderr, "\tchild %d, %d parents: ", i, child->parent_count);
    #####:    #####: 1635:            bs->dump_instruction(child->inst);
        -:        -: 1636:         }
        -:        -: 1637:
      598:      542: 1638:         child->cand_generation = cand_generation;
      598:      542: 1639:         child->parent_count--;
      598:      542: 1640:         if (child->parent_count == 0) {
      268:      256: 1641:            if (debug) {
    #####:    #####: 1642:               fprintf(stderr, "\t\tnow available\n");
        -:        -: 1643:            }
      268:      256: 1644:            instructions.push_head(child);
        -:        -: 1645:         }
        -:        -: 1646:      }
      423:      447: 1647:      cand_generation++;
        -:        -: 1648:
        -:        -: 1649:      /* Shared resource: the mathbox.  There's one mathbox per EU on Gen6+
        -:        -: 1650:       * but it's more limited pre-gen6, so if we send something off to it then
        -:        -: 1651:       * the next math instruction isn't going to make progress until the first
        -:        -: 1652:       * is done.
        -:        -: 1653:       */
      423:      447: 1654:      if (devinfo->gen < 6 && chosen->inst->is_math()) {
    #####:    #####: 1655:         foreach_in_list(schedule_node, n, &instructions) {
    #####:    #####: 1656:            if (n->inst->is_math())
    #####:    #####: 1657:               n->unblocked_time = MAX2(n->unblocked_time,
    #####:    #####: 1658:                                        time + chosen->latency);
        -:        -: 1659:         }
        -:        -: 1660:      }
        -:        -: 1661:   }
        -:        -: 1662:
      100:      116: 1663:   assert(instructions_to_schedule == 0);
        -:        -: 1664:
      100:      116: 1665:   block->cycle_count = time;
      100:      116: 1666:}
        -:        -: 1667:
       12:       12: 1668:static unsigned get_cycle_count(cfg_t *cfg)
        -:        -: 1669:{
       12:       12: 1670:   unsigned count = 0, multiplier = 1;
      112:      128: 1671:   foreach_block(block, cfg) {
      100:      116: 1672:      if (block->start()->opcode == BRW_OPCODE_DO)
        8:       16: 1673:         multiplier *= 10; /* assume that loops execute ~10 times */
        -:        -: 1674:
      100:      116: 1675:      count += block->cycle_count * multiplier;
        -:        -: 1676:
      100:      116: 1677:      if (block->end()->opcode == BRW_OPCODE_WHILE)
        8:       16: 1678:         multiplier /= 10;
        -:        -: 1679:   }
        -:        -: 1680:
       12:       12: 1681:   return count;
        -:        -: 1682:}
        -:        -: 1683:
        -:        -: 1684:void
       12:       12: 1685:instruction_scheduler::run(cfg_t *cfg)
        -:        -: 1686:{
       12:       12: 1687:   if (debug && !post_reg_alloc) {
    #####:    #####: 1688:      fprintf(stderr, "\nInstructions before scheduling (reg_alloc %d)\n",
    #####:    #####: 1689:              post_reg_alloc);
    #####:    #####: 1690:         bs->dump_instructions();
        -:        -: 1691:   }
        -:        -: 1692:
       12:       12: 1693:   if (!post_reg_alloc)
        5:        5: 1694:      setup_liveness(cfg);
        -:        -: 1695:
      112:      128: 1696:   foreach_block(block, cfg) {
      100:      116: 1697:      if (reads_remaining) {
       49:       57: 1698:         memset(reads_remaining, 0,
       98:      114: 1699:                grf_count * sizeof(*reads_remaining));
       49:       57: 1700:         memset(hw_reads_remaining, 0,
       98:      114: 1701:                hw_reg_count * sizeof(*hw_reads_remaining));
       49:       57: 1702:         memset(written, 0, grf_count * sizeof(*written));
        -:        -: 1703:
      255:      275: 1704:         foreach_inst_in_block(fs_inst, inst, block)
      206:      218: 1705:            count_reads_remaining(inst);
        -:        -: 1706:      }
        -:        -: 1707:
      100:      116: 1708:      add_insts_from_block(block);
        -:        -: 1709:
      100:      116: 1710:      calculate_deps();
        -:        -: 1711:
      100:      116: 1712:      compute_delays();
      100:      116: 1713:      compute_exits();
        -:        -: 1714:
      100:      116: 1715:      schedule_instructions(block);
        -:        -: 1716:   }
        -:        -: 1717:
       12:       12: 1718:   if (debug && !post_reg_alloc) {
    #####:    #####: 1719:      fprintf(stderr, "\nInstructions after scheduling (reg_alloc %d)\n",
    #####:    #####: 1720:              post_reg_alloc);
    #####:    #####: 1721:      bs->dump_instructions();
        -:        -: 1722:   }
        -:        -: 1723:
       12:       12: 1724:   cfg->cycle_count = get_cycle_count(cfg);
       12:       12: 1725:}
        -:        -: 1726:
        -:        -: 1727:void
       10:       10: 1728:fs_visitor::schedule_instructions(instruction_scheduler_mode mode)
        -:        -: 1729:{
       10:       10: 1730:   if (mode != SCHEDULE_POST)
        5:        5: 1731:      calculate_live_intervals();
        -:        -: 1732:
        -:        -: 1733:   int grf_count;
       10:       10: 1734:   if (mode == SCHEDULE_POST)
        5:        5: 1735:      grf_count = grf_used;
        -:        -: 1736:   else
        5:        5: 1737:      grf_count = alloc.count;
        -:        -: 1738:
        -:        -: 1739:   fs_instruction_scheduler sched(this, grf_count, first_non_payload_grf,
       20:       20: 1740:                                  cfg->num_blocks, mode);
       10:       10: 1741:   sched.run(cfg);
        -:        -: 1742:
       10:       10: 1743:   invalidate_live_intervals();
       10:       10: 1744:}
        -:        -: 1745:
        -:        -: 1746:void
        2:        2: 1747:vec4_visitor::opt_schedule_instructions()
        -:        -: 1748:{
        4:        4: 1749:   vec4_instruction_scheduler sched(this, prog_data->total_grf);
        2:        2: 1750:   sched.run(cfg);
        -:        -: 1751:
        2:        2: 1752:   invalidate_live_intervals();
        5:        5: 1753:}

src/intel/brw_shader.cpp.gcov

        -:        -:    0:Source:compiler/brw_shader.cpp
        -:        -:    0:Graph:compiler/.libs/compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:compiler/.libs/compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "brw_cfg.h"
        -:        -:   25:#include "brw_eu.h"
        -:        -:   26:#include "brw_fs.h"
        -:        -:   27:#include "brw_nir.h"
        -:        -:   28:#include "brw_vec4_tes.h"
        -:        -:   29:#include "common/gen_debug.h"
        -:        -:   30:#include "main/uniforms.h"
        -:        -:   31:#include "util/macros.h"
        -:        -:   32:
        -:        -:   33:enum brw_reg_type
       22:       22:   34:brw_type_for_base_type(const struct glsl_type *type)
        -:        -:   35:{
       22:       22:   36:   switch (type->base_type) {
        -:        -:   37:   case GLSL_TYPE_FLOAT:
       15:       15:   38:      return BRW_REGISTER_TYPE_F;
        -:        -:   39:   case GLSL_TYPE_INT:
        -:        -:   40:   case GLSL_TYPE_BOOL:
        -:        -:   41:   case GLSL_TYPE_SUBROUTINE:
    #####:    #####:   42:      return BRW_REGISTER_TYPE_D;
        -:        -:   43:   case GLSL_TYPE_UINT:
        7:        7:   44:      return BRW_REGISTER_TYPE_UD;
        -:        -:   45:   case GLSL_TYPE_ARRAY:
    #####:    #####:   46:      return brw_type_for_base_type(type->fields.array);
        -:        -:   47:   case GLSL_TYPE_STRUCT:
        -:        -:   48:   case GLSL_TYPE_SAMPLER:
        -:        -:   49:   case GLSL_TYPE_ATOMIC_UINT:
        -:        -:   50:      /* These should be overridden with the type of the member when
        -:        -:   51:       * dereferenced into.  BRW_REGISTER_TYPE_UD seems like a likely
        -:        -:   52:       * way to trip up if we don't.
        -:        -:   53:       */
    #####:    #####:   54:      return BRW_REGISTER_TYPE_UD;
        -:        -:   55:   case GLSL_TYPE_IMAGE:
    #####:    #####:   56:      return BRW_REGISTER_TYPE_UD;
        -:        -:   57:   case GLSL_TYPE_DOUBLE:
    #####:    #####:   58:      return BRW_REGISTER_TYPE_DF;
        -:        -:   59:   case GLSL_TYPE_UINT64:
    #####:    #####:   60:      return BRW_REGISTER_TYPE_UQ;
        -:        -:   61:   case GLSL_TYPE_INT64:
    #####:    #####:   62:      return BRW_REGISTER_TYPE_Q;
        -:        -:   63:   case GLSL_TYPE_VOID:
        -:        -:   64:   case GLSL_TYPE_ERROR:
        -:        -:   65:   case GLSL_TYPE_INTERFACE:
        -:        -:   66:   case GLSL_TYPE_FUNCTION:
    #####:    #####:   67:      unreachable("not reached");
        -:        -:   68:   }
        -:        -:   69:
    #####:    #####:   70:   return BRW_REGISTER_TYPE_F;
        -:        -:   71:}
        -:        -:   72:
        -:        -:   73:enum brw_conditional_mod
    #####:    #####:   74:brw_conditional_for_comparison(unsigned int op)
        -:        -:   75:{
    #####:    #####:   76:   switch (op) {
        -:        -:   77:   case ir_binop_less:
    #####:    #####:   78:      return BRW_CONDITIONAL_L;
        -:        -:   79:   case ir_binop_greater:
    #####:    #####:   80:      return BRW_CONDITIONAL_G;
        -:        -:   81:   case ir_binop_lequal:
    #####:    #####:   82:      return BRW_CONDITIONAL_LE;
        -:        -:   83:   case ir_binop_gequal:
    #####:    #####:   84:      return BRW_CONDITIONAL_GE;
        -:        -:   85:   case ir_binop_equal:
        -:        -:   86:   case ir_binop_all_equal: /* same as equal for scalars */
    #####:    #####:   87:      return BRW_CONDITIONAL_Z;
        -:        -:   88:   case ir_binop_nequal:
        -:        -:   89:   case ir_binop_any_nequal: /* same as nequal for scalars */
    #####:    #####:   90:      return BRW_CONDITIONAL_NZ;
        -:        -:   91:   default:
    #####:    #####:   92:      unreachable("not reached: bad operation for comparison");
        -:        -:   93:   }
        -:        -:   94:}
        -:        -:   95:
        -:        -:   96:uint32_t
       12:       12:   97:brw_math_function(enum opcode op)
        -:        -:   98:{
       12:       12:   99:   switch (op) {
        -:        -:  100:   case SHADER_OPCODE_RCP:
       12:       12:  101:      return BRW_MATH_FUNCTION_INV;
        -:        -:  102:   case SHADER_OPCODE_RSQ:
    #####:    #####:  103:      return BRW_MATH_FUNCTION_RSQ;
        -:        -:  104:   case SHADER_OPCODE_SQRT:
    #####:    #####:  105:      return BRW_MATH_FUNCTION_SQRT;
        -:        -:  106:   case SHADER_OPCODE_EXP2:
    #####:    #####:  107:      return BRW_MATH_FUNCTION_EXP;
        -:        -:  108:   case SHADER_OPCODE_LOG2:
    #####:    #####:  109:      return BRW_MATH_FUNCTION_LOG;
        -:        -:  110:   case SHADER_OPCODE_POW:
    #####:    #####:  111:      return BRW_MATH_FUNCTION_POW;
        -:        -:  112:   case SHADER_OPCODE_SIN:
    #####:    #####:  113:      return BRW_MATH_FUNCTION_SIN;
        -:        -:  114:   case SHADER_OPCODE_COS:
    #####:    #####:  115:      return BRW_MATH_FUNCTION_COS;
        -:        -:  116:   case SHADER_OPCODE_INT_QUOTIENT:
    #####:    #####:  117:      return BRW_MATH_FUNCTION_INT_DIV_QUOTIENT;
        -:        -:  118:   case SHADER_OPCODE_INT_REMAINDER:
    #####:    #####:  119:      return BRW_MATH_FUNCTION_INT_DIV_REMAINDER;
        -:        -:  120:   default:
    #####:    #####:  121:      unreachable("not reached: unknown math function");
        -:        -:  122:   }
        -:        -:  123:}
        -:        -:  124:
        -:        -:  125:bool
    #####:    #####:  126:brw_texture_offset(int *offsets, unsigned num_components, uint32_t *offset_bits)
        -:        -:  127:{
    #####:    #####:  128:   if (!offsets) return false;  /* nonconstant offset; caller will handle it. */
        -:        -:  129:
        -:        -:  130:   /* offset out of bounds; caller will handle it. */
    #####:    #####:  131:   for (unsigned i = 0; i < num_components; i++)
    #####:    #####:  132:      if (offsets[i] > 7 || offsets[i] < -8)
    #####:    #####:  133:         return false;
        -:        -:  134:
        -:        -:  135:   /* Combine all three offsets into a single unsigned dword:
        -:        -:  136:    *
        -:        -:  137:    *    bits 11:8 - U Offset (X component)
        -:        -:  138:    *    bits  7:4 - V Offset (Y component)
        -:        -:  139:    *    bits  3:0 - R Offset (Z component)
        -:        -:  140:    */
    #####:    #####:  141:   *offset_bits = 0;
    #####:    #####:  142:   for (unsigned i = 0; i < num_components; i++) {
    #####:    #####:  143:      const unsigned shift = 4 * (2 - i);
    #####:    #####:  144:      *offset_bits |= (offsets[i] << shift) & (0xF << shift);
        -:        -:  145:   }
    #####:    #####:  146:   return true;
        -:        -:  147:}
        -:        -:  148:
        -:        -:  149:const char *
    #####:    #####:  150:brw_instruction_name(const struct gen_device_info *devinfo, enum opcode op)
        -:        -:  151:{
    #####:    #####:  152:   switch (op) {
        -:        -:  153:   case BRW_OPCODE_ILLEGAL ... BRW_OPCODE_NOP:
        -:        -:  154:      /* The DO instruction doesn't exist on Gen6+, but we use it to mark the
        -:        -:  155:       * start of a loop in the IR.
        -:        -:  156:       */
    #####:    #####:  157:      if (devinfo->gen >= 6 && op == BRW_OPCODE_DO)
    #####:    #####:  158:         return "do";
        -:        -:  159:
        -:        -:  160:      /* The following conversion opcodes doesn't exist on Gen8+, but we use
        -:        -:  161:       * then to mark that we want to do the conversion.
        -:        -:  162:       */
    #####:    #####:  163:      if (devinfo->gen > 7 && op == BRW_OPCODE_F32TO16)
    #####:    #####:  164:         return "f32to16";
        -:        -:  165:
    #####:    #####:  166:      if (devinfo->gen > 7 && op == BRW_OPCODE_F16TO32)
    #####:    #####:  167:         return "f16to32";
        -:        -:  168:
    #####:    #####:  169:      assert(brw_opcode_desc(devinfo, op)->name);
    #####:    #####:  170:      return brw_opcode_desc(devinfo, op)->name;
        -:        -:  171:   case FS_OPCODE_FB_WRITE:
    #####:    #####:  172:      return "fb_write";
        -:        -:  173:   case FS_OPCODE_FB_WRITE_LOGICAL:
    #####:    #####:  174:      return "fb_write_logical";
        -:        -:  175:   case FS_OPCODE_REP_FB_WRITE:
    #####:    #####:  176:      return "rep_fb_write";
        -:        -:  177:   case FS_OPCODE_FB_READ:
    #####:    #####:  178:      return "fb_read";
        -:        -:  179:   case FS_OPCODE_FB_READ_LOGICAL:
    #####:    #####:  180:      return "fb_read_logical";
        -:        -:  181:
        -:        -:  182:   case SHADER_OPCODE_RCP:
    #####:    #####:  183:      return "rcp";
        -:        -:  184:   case SHADER_OPCODE_RSQ:
    #####:    #####:  185:      return "rsq";
        -:        -:  186:   case SHADER_OPCODE_SQRT:
    #####:    #####:  187:      return "sqrt";
        -:        -:  188:   case SHADER_OPCODE_EXP2:
    #####:    #####:  189:      return "exp2";
        -:        -:  190:   case SHADER_OPCODE_LOG2:
    #####:    #####:  191:      return "log2";
        -:        -:  192:   case SHADER_OPCODE_POW:
    #####:    #####:  193:      return "pow";
        -:        -:  194:   case SHADER_OPCODE_INT_QUOTIENT:
    #####:    #####:  195:      return "int_quot";
        -:        -:  196:   case SHADER_OPCODE_INT_REMAINDER:
    #####:    #####:  197:      return "int_rem";
        -:        -:  198:   case SHADER_OPCODE_SIN:
    #####:    #####:  199:      return "sin";
        -:        -:  200:   case SHADER_OPCODE_COS:
    #####:    #####:  201:      return "cos";
        -:        -:  202:
        -:        -:  203:   case SHADER_OPCODE_TEX:
    #####:    #####:  204:      return "tex";
        -:        -:  205:   case SHADER_OPCODE_TEX_LOGICAL:
    #####:    #####:  206:      return "tex_logical";
        -:        -:  207:   case SHADER_OPCODE_TXD:
    #####:    #####:  208:      return "txd";
        -:        -:  209:   case SHADER_OPCODE_TXD_LOGICAL:
    #####:    #####:  210:      return "txd_logical";
        -:        -:  211:   case SHADER_OPCODE_TXF:
    #####:    #####:  212:      return "txf";
        -:        -:  213:   case SHADER_OPCODE_TXF_LOGICAL:
    #####:    #####:  214:      return "txf_logical";
        -:        -:  215:   case SHADER_OPCODE_TXF_LZ:
    #####:    #####:  216:      return "txf_lz";
        -:        -:  217:   case SHADER_OPCODE_TXL:
    #####:    #####:  218:      return "txl";
        -:        -:  219:   case SHADER_OPCODE_TXL_LOGICAL:
    #####:    #####:  220:      return "txl_logical";
        -:        -:  221:   case SHADER_OPCODE_TXL_LZ:
    #####:    #####:  222:      return "txl_lz";
        -:        -:  223:   case SHADER_OPCODE_TXS:
    #####:    #####:  224:      return "txs";
        -:        -:  225:   case SHADER_OPCODE_TXS_LOGICAL:
    #####:    #####:  226:      return "txs_logical";
        -:        -:  227:   case FS_OPCODE_TXB:
    #####:    #####:  228:      return "txb";
        -:        -:  229:   case FS_OPCODE_TXB_LOGICAL:
    #####:    #####:  230:      return "txb_logical";
        -:        -:  231:   case SHADER_OPCODE_TXF_CMS:
    #####:    #####:  232:      return "txf_cms";
        -:        -:  233:   case SHADER_OPCODE_TXF_CMS_LOGICAL:
    #####:    #####:  234:      return "txf_cms_logical";
        -:        -:  235:   case SHADER_OPCODE_TXF_CMS_W:
    #####:    #####:  236:      return "txf_cms_w";
        -:        -:  237:   case SHADER_OPCODE_TXF_CMS_W_LOGICAL:
    #####:    #####:  238:      return "txf_cms_w_logical";
        -:        -:  239:   case SHADER_OPCODE_TXF_UMS:
    #####:    #####:  240:      return "txf_ums";
        -:        -:  241:   case SHADER_OPCODE_TXF_UMS_LOGICAL:
    #####:    #####:  242:      return "txf_ums_logical";
        -:        -:  243:   case SHADER_OPCODE_TXF_MCS:
    #####:    #####:  244:      return "txf_mcs";
        -:        -:  245:   case SHADER_OPCODE_TXF_MCS_LOGICAL:
    #####:    #####:  246:      return "txf_mcs_logical";
        -:        -:  247:   case SHADER_OPCODE_LOD:
    #####:    #####:  248:      return "lod";
        -:        -:  249:   case SHADER_OPCODE_LOD_LOGICAL:
    #####:    #####:  250:      return "lod_logical";
        -:        -:  251:   case SHADER_OPCODE_TG4:
    #####:    #####:  252:      return "tg4";
        -:        -:  253:   case SHADER_OPCODE_TG4_LOGICAL:
    #####:    #####:  254:      return "tg4_logical";
        -:        -:  255:   case SHADER_OPCODE_TG4_OFFSET:
    #####:    #####:  256:      return "tg4_offset";
        -:        -:  257:   case SHADER_OPCODE_TG4_OFFSET_LOGICAL:
    #####:    #####:  258:      return "tg4_offset_logical";
        -:        -:  259:   case SHADER_OPCODE_SAMPLEINFO:
    #####:    #####:  260:      return "sampleinfo";
        -:        -:  261:   case SHADER_OPCODE_SAMPLEINFO_LOGICAL:
    #####:    #####:  262:      return "sampleinfo_logical";
        -:        -:  263:
        -:        -:  264:   case SHADER_OPCODE_SHADER_TIME_ADD:
    #####:    #####:  265:      return "shader_time_add";
        -:        -:  266:
        -:        -:  267:   case SHADER_OPCODE_UNTYPED_ATOMIC:
    #####:    #####:  268:      return "untyped_atomic";
        -:        -:  269:   case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
    #####:    #####:  270:      return "untyped_atomic_logical";
        -:        -:  271:   case SHADER_OPCODE_UNTYPED_SURFACE_READ:
    #####:    #####:  272:      return "untyped_surface_read";
        -:        -:  273:   case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
    #####:    #####:  274:      return "untyped_surface_read_logical";
        -:        -:  275:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
    #####:    #####:  276:      return "untyped_surface_write";
        -:        -:  277:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####:  278:      return "untyped_surface_write_logical";
        -:        -:  279:   case SHADER_OPCODE_TYPED_ATOMIC:
    #####:    #####:  280:      return "typed_atomic";
        -:        -:  281:   case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
    #####:    #####:  282:      return "typed_atomic_logical";
        -:        -:  283:   case SHADER_OPCODE_TYPED_SURFACE_READ:
    #####:    #####:  284:      return "typed_surface_read";
        -:        -:  285:   case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
    #####:    #####:  286:      return "typed_surface_read_logical";
        -:        -:  287:   case SHADER_OPCODE_TYPED_SURFACE_WRITE:
    #####:    #####:  288:      return "typed_surface_write";
        -:        -:  289:   case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
    #####:    #####:  290:      return "typed_surface_write_logical";
        -:        -:  291:   case SHADER_OPCODE_MEMORY_FENCE:
    #####:    #####:  292:      return "memory_fence";
        -:        -:  293:
        -:        -:  294:   case SHADER_OPCODE_LOAD_PAYLOAD:
    #####:    #####:  295:      return "load_payload";
        -:        -:  296:   case FS_OPCODE_PACK:
    #####:    #####:  297:      return "pack";
        -:        -:  298:
        -:        -:  299:   case SHADER_OPCODE_GEN4_SCRATCH_READ:
    #####:    #####:  300:      return "gen4_scratch_read";
        -:        -:  301:   case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
    #####:    #####:  302:      return "gen4_scratch_write";
        -:        -:  303:   case SHADER_OPCODE_GEN7_SCRATCH_READ:
    #####:    #####:  304:      return "gen7_scratch_read";
        -:        -:  305:   case SHADER_OPCODE_URB_WRITE_SIMD8:
    #####:    #####:  306:      return "gen8_urb_write_simd8";
        -:        -:  307:   case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
    #####:    #####:  308:      return "gen8_urb_write_simd8_per_slot";
        -:        -:  309:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
    #####:    #####:  310:      return "gen8_urb_write_simd8_masked";
        -:        -:  311:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
    #####:    #####:  312:      return "gen8_urb_write_simd8_masked_per_slot";
        -:        -:  313:   case SHADER_OPCODE_URB_READ_SIMD8:
    #####:    #####:  314:      return "urb_read_simd8";
        -:        -:  315:   case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
    #####:    #####:  316:      return "urb_read_simd8_per_slot";
        -:        -:  317:
        -:        -:  318:   case SHADER_OPCODE_FIND_LIVE_CHANNEL:
    #####:    #####:  319:      return "find_live_channel";
        -:        -:  320:   case SHADER_OPCODE_BROADCAST:
    #####:    #####:  321:      return "broadcast";
        -:        -:  322:
        -:        -:  323:   case VEC4_OPCODE_MOV_BYTES:
    #####:    #####:  324:      return "mov_bytes";
        -:        -:  325:   case VEC4_OPCODE_PACK_BYTES:
    #####:    #####:  326:      return "pack_bytes";
        -:        -:  327:   case VEC4_OPCODE_UNPACK_UNIFORM:
    #####:    #####:  328:      return "unpack_uniform";
        -:        -:  329:   case VEC4_OPCODE_DOUBLE_TO_F32:
    #####:    #####:  330:      return "double_to_f32";
        -:        -:  331:   case VEC4_OPCODE_DOUBLE_TO_D32:
    #####:    #####:  332:      return "double_to_d32";
        -:        -:  333:   case VEC4_OPCODE_DOUBLE_TO_U32:
    #####:    #####:  334:      return "double_to_u32";
        -:        -:  335:   case VEC4_OPCODE_TO_DOUBLE:
    #####:    #####:  336:      return "single_to_double";
        -:        -:  337:   case VEC4_OPCODE_PICK_LOW_32BIT:
    #####:    #####:  338:      return "pick_low_32bit";
        -:        -:  339:   case VEC4_OPCODE_PICK_HIGH_32BIT:
    #####:    #####:  340:      return "pick_high_32bit";
        -:        -:  341:   case VEC4_OPCODE_SET_LOW_32BIT:
    #####:    #####:  342:      return "set_low_32bit";
        -:        -:  343:   case VEC4_OPCODE_SET_HIGH_32BIT:
    #####:    #####:  344:      return "set_high_32bit";
        -:        -:  345:
        -:        -:  346:   case FS_OPCODE_DDX_COARSE:
    #####:    #####:  347:      return "ddx_coarse";
        -:        -:  348:   case FS_OPCODE_DDX_FINE:
    #####:    #####:  349:      return "ddx_fine";
        -:        -:  350:   case FS_OPCODE_DDY_COARSE:
    #####:    #####:  351:      return "ddy_coarse";
        -:        -:  352:   case FS_OPCODE_DDY_FINE:
    #####:    #####:  353:      return "ddy_fine";
        -:        -:  354:
        -:        -:  355:   case FS_OPCODE_CINTERP:
    #####:    #####:  356:      return "cinterp";
        -:        -:  357:   case FS_OPCODE_LINTERP:
    #####:    #####:  358:      return "linterp";
        -:        -:  359:
        -:        -:  360:   case FS_OPCODE_PIXEL_X:
    #####:    #####:  361:      return "pixel_x";
        -:        -:  362:   case FS_OPCODE_PIXEL_Y:
    #####:    #####:  363:      return "pixel_y";
        -:        -:  364:
        -:        -:  365:   case FS_OPCODE_GET_BUFFER_SIZE:
    #####:    #####:  366:      return "fs_get_buffer_size";
        -:        -:  367:
        -:        -:  368:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD:
    #####:    #####:  369:      return "uniform_pull_const";
        -:        -:  370:   case FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7:
    #####:    #####:  371:      return "uniform_pull_const_gen7";
        -:        -:  372:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN4:
    #####:    #####:  373:      return "varying_pull_const_gen4";
        -:        -:  374:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7:
    #####:    #####:  375:      return "varying_pull_const_gen7";
        -:        -:  376:   case FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_LOGICAL:
    #####:    #####:  377:      return "varying_pull_const_logical";
        -:        -:  378:
        -:        -:  379:   case FS_OPCODE_MOV_DISPATCH_TO_FLAGS:
    #####:    #####:  380:      return "mov_dispatch_to_flags";
        -:        -:  381:   case FS_OPCODE_DISCARD_JUMP:
    #####:    #####:  382:      return "discard_jump";
        -:        -:  383:
        -:        -:  384:   case FS_OPCODE_SET_SAMPLE_ID:
    #####:    #####:  385:      return "set_sample_id";
        -:        -:  386:
        -:        -:  387:   case FS_OPCODE_PACK_HALF_2x16_SPLIT:
    #####:    #####:  388:      return "pack_half_2x16_split";
        -:        -:  389:   case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_X:
    #####:    #####:  390:      return "unpack_half_2x16_split_x";
        -:        -:  391:   case FS_OPCODE_UNPACK_HALF_2x16_SPLIT_Y:
    #####:    #####:  392:      return "unpack_half_2x16_split_y";
        -:        -:  393:
        -:        -:  394:   case FS_OPCODE_PLACEHOLDER_HALT:
    #####:    #####:  395:      return "placeholder_halt";
        -:        -:  396:
        -:        -:  397:   case FS_OPCODE_INTERPOLATE_AT_SAMPLE:
    #####:    #####:  398:      return "interp_sample";
        -:        -:  399:   case FS_OPCODE_INTERPOLATE_AT_SHARED_OFFSET:
    #####:    #####:  400:      return "interp_shared_offset";
        -:        -:  401:   case FS_OPCODE_INTERPOLATE_AT_PER_SLOT_OFFSET:
    #####:    #####:  402:      return "interp_per_slot_offset";
        -:        -:  403:
        -:        -:  404:   case VS_OPCODE_URB_WRITE:
    #####:    #####:  405:      return "vs_urb_write";
        -:        -:  406:   case VS_OPCODE_PULL_CONSTANT_LOAD:
    #####:    #####:  407:      return "pull_constant_load";
        -:        -:  408:   case VS_OPCODE_PULL_CONSTANT_LOAD_GEN7:
    #####:    #####:  409:      return "pull_constant_load_gen7";
        -:        -:  410:
        -:        -:  411:   case VS_OPCODE_SET_SIMD4X2_HEADER_GEN9:
    #####:    #####:  412:      return "set_simd4x2_header_gen9";
        -:        -:  413:
        -:        -:  414:   case VS_OPCODE_GET_BUFFER_SIZE:
    #####:    #####:  415:      return "vs_get_buffer_size";
        -:        -:  416:
        -:        -:  417:   case VS_OPCODE_UNPACK_FLAGS_SIMD4X2:
    #####:    #####:  418:      return "unpack_flags_simd4x2";
        -:        -:  419:
        -:        -:  420:   case GS_OPCODE_URB_WRITE:
    #####:    #####:  421:      return "gs_urb_write";
        -:        -:  422:   case GS_OPCODE_URB_WRITE_ALLOCATE:
    #####:    #####:  423:      return "gs_urb_write_allocate";
        -:        -:  424:   case GS_OPCODE_THREAD_END:
    #####:    #####:  425:      return "gs_thread_end";
        -:        -:  426:   case GS_OPCODE_SET_WRITE_OFFSET:
    #####:    #####:  427:      return "set_write_offset";
        -:        -:  428:   case GS_OPCODE_SET_VERTEX_COUNT:
    #####:    #####:  429:      return "set_vertex_count";
        -:        -:  430:   case GS_OPCODE_SET_DWORD_2:
    #####:    #####:  431:      return "set_dword_2";
        -:        -:  432:   case GS_OPCODE_PREPARE_CHANNEL_MASKS:
    #####:    #####:  433:      return "prepare_channel_masks";
        -:        -:  434:   case GS_OPCODE_SET_CHANNEL_MASKS:
    #####:    #####:  435:      return "set_channel_masks";
        -:        -:  436:   case GS_OPCODE_GET_INSTANCE_ID:
    #####:    #####:  437:      return "get_instance_id";
        -:        -:  438:   case GS_OPCODE_FF_SYNC:
    #####:    #####:  439:      return "ff_sync";
        -:        -:  440:   case GS_OPCODE_SET_PRIMITIVE_ID:
    #####:    #####:  441:      return "set_primitive_id";
        -:        -:  442:   case GS_OPCODE_SVB_WRITE:
    #####:    #####:  443:      return "gs_svb_write";
        -:        -:  444:   case GS_OPCODE_SVB_SET_DST_INDEX:
    #####:    #####:  445:      return "gs_svb_set_dst_index";
        -:        -:  446:   case GS_OPCODE_FF_SYNC_SET_PRIMITIVES:
    #####:    #####:  447:      return "gs_ff_sync_set_primitives";
        -:        -:  448:   case CS_OPCODE_CS_TERMINATE:
    #####:    #####:  449:      return "cs_terminate";
        -:        -:  450:   case SHADER_OPCODE_BARRIER:
    #####:    #####:  451:      return "barrier";
        -:        -:  452:   case SHADER_OPCODE_MULH:
    #####:    #####:  453:      return "mulh";
        -:        -:  454:   case SHADER_OPCODE_MOV_INDIRECT:
    #####:    #####:  455:      return "mov_indirect";
        -:        -:  456:
        -:        -:  457:   case VEC4_OPCODE_URB_READ:
    #####:    #####:  458:      return "urb_read";
        -:        -:  459:   case TCS_OPCODE_GET_INSTANCE_ID:
    #####:    #####:  460:      return "tcs_get_instance_id";
        -:        -:  461:   case TCS_OPCODE_URB_WRITE:
    #####:    #####:  462:      return "tcs_urb_write";
        -:        -:  463:   case TCS_OPCODE_SET_INPUT_URB_OFFSETS:
    #####:    #####:  464:      return "tcs_set_input_urb_offsets";
        -:        -:  465:   case TCS_OPCODE_SET_OUTPUT_URB_OFFSETS:
    #####:    #####:  466:      return "tcs_set_output_urb_offsets";
        -:        -:  467:   case TCS_OPCODE_GET_PRIMITIVE_ID:
    #####:    #####:  468:      return "tcs_get_primitive_id";
        -:        -:  469:   case TCS_OPCODE_CREATE_BARRIER_HEADER:
    #####:    #####:  470:      return "tcs_create_barrier_header";
        -:        -:  471:   case TCS_OPCODE_SRC0_010_IS_ZERO:
    #####:    #####:  472:      return "tcs_src0<0,1,0>_is_zero";
        -:        -:  473:   case TCS_OPCODE_RELEASE_INPUT:
    #####:    #####:  474:      return "tcs_release_input";
        -:        -:  475:   case TCS_OPCODE_THREAD_END:
    #####:    #####:  476:      return "tcs_thread_end";
        -:        -:  477:   case TES_OPCODE_CREATE_INPUT_READ_HEADER:
    #####:    #####:  478:      return "tes_create_input_read_header";
        -:        -:  479:   case TES_OPCODE_ADD_INDIRECT_URB_OFFSET:
    #####:    #####:  480:      return "tes_add_indirect_urb_offset";
        -:        -:  481:   case TES_OPCODE_GET_PRIMITIVE_ID:
    #####:    #####:  482:      return "tes_get_primitive_id";
        -:        -:  483:   }
        -:        -:  484:
    #####:    #####:  485:   unreachable("not reached");
        -:        -:  486:}
        -:        -:  487:
        -:        -:  488:bool
    #####:    #####:  489:brw_saturate_immediate(enum brw_reg_type type, struct brw_reg *reg)
        -:        -:  490:{
        -:        -:  491:   union {
        -:        -:  492:      unsigned ud;
        -:        -:  493:      int d;
        -:        -:  494:      float f;
        -:        -:  495:      double df;
    #####:    #####:  496:   } imm, sat_imm = { 0 };
        -:        -:  497:
    #####:    #####:  498:   const unsigned size = type_sz(type);
        -:        -:  499:
        -:        -:  500:   /* We want to either do a 32-bit or 64-bit data copy, the type is otherwise
        -:        -:  501:    * irrelevant, so just check the size of the type and copy from/to an
        -:        -:  502:    * appropriately sized field.
        -:        -:  503:    */
    #####:    #####:  504:   if (size < 8)
    #####:    #####:  505:      imm.ud = reg->ud;
        -:        -:  506:   else
    #####:    #####:  507:      imm.df = reg->df;
        -:        -:  508:
    #####:    #####:  509:   switch (type) {
        -:        -:  510:   case BRW_REGISTER_TYPE_UD:
        -:        -:  511:   case BRW_REGISTER_TYPE_D:
        -:        -:  512:   case BRW_REGISTER_TYPE_UW:
        -:        -:  513:   case BRW_REGISTER_TYPE_W:
        -:        -:  514:   case BRW_REGISTER_TYPE_UQ:
        -:        -:  515:   case BRW_REGISTER_TYPE_Q:
        -:        -:  516:      /* Nothing to do. */
    #####:    #####:  517:      return false;
        -:        -:  518:   case BRW_REGISTER_TYPE_F:
    #####:    #####:  519:      sat_imm.f = CLAMP(imm.f, 0.0f, 1.0f);
    #####:    #####:  520:      break;
        -:        -:  521:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  522:      sat_imm.df = CLAMP(imm.df, 0.0, 1.0);
    #####:    #####:  523:      break;
        -:        -:  524:   case BRW_REGISTER_TYPE_UB:
        -:        -:  525:   case BRW_REGISTER_TYPE_B:
    #####:    #####:  526:      unreachable("no UB/B immediates");
        -:        -:  527:   case BRW_REGISTER_TYPE_V:
        -:        -:  528:   case BRW_REGISTER_TYPE_UV:
        -:        -:  529:   case BRW_REGISTER_TYPE_VF:
    #####:    #####:  530:      unreachable("unimplemented: saturate vector immediate");
        -:        -:  531:   case BRW_REGISTER_TYPE_HF:
    #####:    #####:  532:      unreachable("unimplemented: saturate HF immediate");
        -:        -:  533:   }
        -:        -:  534:
    #####:    #####:  535:   if (size < 8) {
    #####:    #####:  536:      if (imm.ud != sat_imm.ud) {
    #####:    #####:  537:         reg->ud = sat_imm.ud;
    #####:    #####:  538:         return true;
        -:        -:  539:      }
        -:        -:  540:   } else {
    #####:    #####:  541:      if (imm.df != sat_imm.df) {
    #####:    #####:  542:         reg->df = sat_imm.df;
    #####:    #####:  543:         return true;
        -:        -:  544:      }
        -:        -:  545:   }
    #####:    #####:  546:   return false;
        -:        -:  547:}
        -:        -:  548:
        -:        -:  549:bool
    #####:        4:  550:brw_negate_immediate(enum brw_reg_type type, struct brw_reg *reg)
        -:        -:  551:{
    #####:        4:  552:   switch (type) {
        -:        -:  553:   case BRW_REGISTER_TYPE_D:
        -:        -:  554:   case BRW_REGISTER_TYPE_UD:
    #####:    #####:  555:      reg->d = -reg->d;
    #####:    #####:  556:      return true;
        -:        -:  557:   case BRW_REGISTER_TYPE_W:
        -:        -:  558:   case BRW_REGISTER_TYPE_UW:
    #####:    #####:  559:      reg->d = -(int16_t)reg->ud;
    #####:    #####:  560:      return true;
        -:        -:  561:   case BRW_REGISTER_TYPE_F:
    #####:        4:  562:      reg->f = -reg->f;
    #####:        4:  563:      return true;
        -:        -:  564:   case BRW_REGISTER_TYPE_VF:
    #####:    #####:  565:      reg->ud ^= 0x80808080;
    #####:    #####:  566:      return true;
        -:        -:  567:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  568:      reg->df = -reg->df;
    #####:    #####:  569:      return true;
        -:        -:  570:   case BRW_REGISTER_TYPE_UQ:
        -:        -:  571:   case BRW_REGISTER_TYPE_Q:
    #####:    #####:  572:      reg->d64 = -reg->d64;
    #####:    #####:  573:      return true;
        -:        -:  574:   case BRW_REGISTER_TYPE_UB:
        -:        -:  575:   case BRW_REGISTER_TYPE_B:
    #####:    #####:  576:      unreachable("no UB/B immediates");
        -:        -:  577:   case BRW_REGISTER_TYPE_UV:
        -:        -:  578:   case BRW_REGISTER_TYPE_V:
    #####:    #####:  579:      assert(!"unimplemented: negate UV/V immediate");
        -:        -:  580:   case BRW_REGISTER_TYPE_HF:
    #####:    #####:  581:      assert(!"unimplemented: negate HF immediate");
        -:        -:  582:   }
        -:        -:  583:
    #####:    #####:  584:   return false;
        -:        -:  585:}
        -:        -:  586:
        -:        -:  587:bool
    #####:    #####:  588:brw_abs_immediate(enum brw_reg_type type, struct brw_reg *reg)
        -:        -:  589:{
    #####:    #####:  590:   switch (type) {
        -:        -:  591:   case BRW_REGISTER_TYPE_D:
    #####:    #####:  592:      reg->d = abs(reg->d);
    #####:    #####:  593:      return true;
        -:        -:  594:   case BRW_REGISTER_TYPE_W:
    #####:    #####:  595:      reg->d = abs((int16_t)reg->ud);
    #####:    #####:  596:      return true;
        -:        -:  597:   case BRW_REGISTER_TYPE_F:
    #####:    #####:  598:      reg->f = fabsf(reg->f);
    #####:    #####:  599:      return true;
        -:        -:  600:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  601:      reg->df = fabs(reg->df);
    #####:    #####:  602:      return true;
        -:        -:  603:   case BRW_REGISTER_TYPE_VF:
    #####:    #####:  604:      reg->ud &= ~0x80808080;
    #####:    #####:  605:      return true;
        -:        -:  606:   case BRW_REGISTER_TYPE_Q:
    #####:    #####:  607:      reg->d64 = imaxabs(reg->d64);
    #####:    #####:  608:      return true;
        -:        -:  609:   case BRW_REGISTER_TYPE_UB:
        -:        -:  610:   case BRW_REGISTER_TYPE_B:
    #####:    #####:  611:      unreachable("no UB/B immediates");
        -:        -:  612:   case BRW_REGISTER_TYPE_UQ:
        -:        -:  613:   case BRW_REGISTER_TYPE_UD:
        -:        -:  614:   case BRW_REGISTER_TYPE_UW:
        -:        -:  615:   case BRW_REGISTER_TYPE_UV:
        -:        -:  616:      /* Presumably the absolute value modifier on an unsigned source is a
        -:        -:  617:       * nop, but it would be nice to confirm.
        -:        -:  618:       */
    #####:    #####:  619:      assert(!"unimplemented: abs unsigned immediate");
        -:        -:  620:   case BRW_REGISTER_TYPE_V:
    #####:    #####:  621:      assert(!"unimplemented: abs V immediate");
        -:        -:  622:   case BRW_REGISTER_TYPE_HF:
    #####:    #####:  623:      assert(!"unimplemented: abs HF immediate");
        -:        -:  624:   }
        -:        -:  625:
    #####:    #####:  626:   return false;
        -:        -:  627:}
        -:        -:  628:
        -:        -:  629:/**
        -:        -:  630: * Get the appropriate atomic op for an image atomic intrinsic.
        -:        -:  631: */
        -:        -:  632:unsigned
    #####:    #####:  633:get_atomic_counter_op(nir_intrinsic_op op)
        -:        -:  634:{
    #####:    #####:  635:   switch (op) {
        -:        -:  636:   case nir_intrinsic_atomic_counter_inc:
    #####:    #####:  637:      return BRW_AOP_INC;
        -:        -:  638:   case nir_intrinsic_atomic_counter_dec:
    #####:    #####:  639:      return BRW_AOP_PREDEC;
        -:        -:  640:   case nir_intrinsic_atomic_counter_add:
    #####:    #####:  641:      return BRW_AOP_ADD;
        -:        -:  642:   case nir_intrinsic_atomic_counter_min:
    #####:    #####:  643:      return BRW_AOP_UMIN;
        -:        -:  644:   case nir_intrinsic_atomic_counter_max:
    #####:    #####:  645:      return BRW_AOP_UMAX;
        -:        -:  646:   case nir_intrinsic_atomic_counter_and:
    #####:    #####:  647:      return BRW_AOP_AND;
        -:        -:  648:   case nir_intrinsic_atomic_counter_or:
    #####:    #####:  649:      return BRW_AOP_OR;
        -:        -:  650:   case nir_intrinsic_atomic_counter_xor:
    #####:    #####:  651:      return BRW_AOP_XOR;
        -:        -:  652:   case nir_intrinsic_atomic_counter_exchange:
    #####:    #####:  653:      return BRW_AOP_MOV;
        -:        -:  654:   case nir_intrinsic_atomic_counter_comp_swap:
    #####:    #####:  655:      return BRW_AOP_CMPWR;
        -:        -:  656:   default:
    #####:    #####:  657:      unreachable("Not reachable.");
        -:        -:  658:   }
        -:        -:  659:}
        -:        -:  660:
        8:        8:  661:backend_shader::backend_shader(const struct brw_compiler *compiler,
        -:        -:  662:                               void *log_data,
        -:        -:  663:                               void *mem_ctx,
        -:        -:  664:                               const nir_shader *shader,
        -:        -:  665:                               struct brw_stage_prog_data *stage_prog_data)
        -:        -:  666:   : compiler(compiler),
        -:        -:  667:     log_data(log_data),
        8:        8:  668:     devinfo(compiler->devinfo),
        -:        -:  669:     nir(shader),
        -:        -:  670:     stage_prog_data(stage_prog_data),
        -:        -:  671:     mem_ctx(mem_ctx),
        -:        -:  672:     cfg(NULL),
       16:       16:  673:     stage(shader->stage)
        -:        -:  674:{
        8:        8:  675:   debug_enabled = INTEL_DEBUG & intel_debug_flag_for_shader_stage(stage);
        8:        8:  676:   stage_name = _mesa_shader_stage_to_string(stage);
        8:        8:  677:   stage_abbrev = _mesa_shader_stage_to_abbrev(stage);
        8:        8:  678:}
        -:        -:  679:
        -:        -:  680:bool
      837:      949:  681:backend_reg::equals(const backend_reg &r) const
        -:        -:  682:{
      837:      949:  683:   return brw_regs_equal(this, &r) && offset == r.offset;
        -:        -:  684:}
        -:        -:  685:
        -:        -:  686:bool
      173:      250:  687:backend_reg::is_zero() const
        -:        -:  688:{
      173:      250:  689:   if (file != IMM)
      128:      174:  690:      return false;
        -:        -:  691:
       45:       76:  692:   switch (type) {
        -:        -:  693:   case BRW_REGISTER_TYPE_F:
        8:       24:  694:      return f == 0;
        -:        -:  695:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  696:      return df == 0;
        -:        -:  697:   case BRW_REGISTER_TYPE_D:
        -:        -:  698:   case BRW_REGISTER_TYPE_UD:
       24:       36:  699:      return d == 0;
        -:        -:  700:   case BRW_REGISTER_TYPE_UQ:
        -:        -:  701:   case BRW_REGISTER_TYPE_Q:
    #####:    #####:  702:      return u64 == 0;
        -:        -:  703:   default:
       13:       16:  704:      return false;
        -:        -:  705:   }
        -:        -:  706:}
        -:        -:  707:
        -:        -:  708:bool
       72:       96:  709:backend_reg::is_one() const
        -:        -:  710:{
       72:       96:  711:   if (file != IMM)
       72:       96:  712:      return false;
        -:        -:  713:
    #####:    #####:  714:   switch (type) {
        -:        -:  715:   case BRW_REGISTER_TYPE_F:
    #####:    #####:  716:      return f == 1.0f;
        -:        -:  717:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  718:      return df == 1.0;
        -:        -:  719:   case BRW_REGISTER_TYPE_D:
        -:        -:  720:   case BRW_REGISTER_TYPE_UD:
    #####:    #####:  721:      return d == 1;
        -:        -:  722:   case BRW_REGISTER_TYPE_UQ:
        -:        -:  723:   case BRW_REGISTER_TYPE_Q:
    #####:    #####:  724:      return u64 == 1;
        -:        -:  725:   default:
    #####:    #####:  726:      return false;
        -:        -:  727:   }
        -:        -:  728:}
        -:        -:  729:
        -:        -:  730:bool
    #####:    #####:  731:backend_reg::is_negative_one() const
        -:        -:  732:{
    #####:    #####:  733:   if (file != IMM)
    #####:    #####:  734:      return false;
        -:        -:  735:
    #####:    #####:  736:   switch (type) {
        -:        -:  737:   case BRW_REGISTER_TYPE_F:
    #####:    #####:  738:      return f == -1.0;
        -:        -:  739:   case BRW_REGISTER_TYPE_DF:
    #####:    #####:  740:      return df == -1.0;
        -:        -:  741:   case BRW_REGISTER_TYPE_D:
    #####:    #####:  742:      return d == -1;
        -:        -:  743:   case BRW_REGISTER_TYPE_Q:
    #####:    #####:  744:      return d64 == -1;
        -:        -:  745:   default:
    #####:    #####:  746:      return false;
        -:        -:  747:   }
        -:        -:  748:}
        -:        -:  749:
        -:        -:  750:bool
     2963:     3615:  751:backend_reg::is_null() const
        -:        -:  752:{
     2963:     3615:  753:   return file == ARF && nr == BRW_ARF_NULL;
        -:        -:  754:}
        -:        -:  755:
        -:        -:  756:
        -:        -:  757:bool
      543:      623:  758:backend_reg::is_accumulator() const
        -:        -:  759:{
      543:      623:  760:   return file == ARF && nr == BRW_ARF_ACCUMULATOR;
        -:        -:  761:}
        -:        -:  762:
        -:        -:  763:bool
      149:      192:  764:backend_instruction::is_commutative() const
        -:        -:  765:{
      149:      192:  766:   switch (opcode) {
        -:        -:  767:   case BRW_OPCODE_AND:
        -:        -:  768:   case BRW_OPCODE_OR:
        -:        -:  769:   case BRW_OPCODE_XOR:
        -:        -:  770:   case BRW_OPCODE_ADD:
        -:        -:  771:   case BRW_OPCODE_MUL:
        -:        -:  772:   case SHADER_OPCODE_MULH:
        5:        6:  773:      return true;
        -:        -:  774:   case BRW_OPCODE_SEL:
        -:        -:  775:      /* MIN and MAX are commutative. */
    #####:    #####:  776:      if (conditional_mod == BRW_CONDITIONAL_GE ||
    #####:    #####:  777:          conditional_mod == BRW_CONDITIONAL_L) {
    #####:    #####:  778:         return true;
        -:        -:  779:      }
        -:        -:  780:      /* fallthrough */
        -:        -:  781:   default:
      144:      186:  782:      return false;
        -:        -:  783:   }
        -:        -:  784:}
        -:        -:  785:
        -:        -:  786:bool
      402:      426:  787:backend_instruction::is_3src(const struct gen_device_info *devinfo) const
        -:        -:  788:{
      402:      426:  789:   return ::is_3src(devinfo, opcode);
        -:        -:  790:}
        -:        -:  791:
        -:        -:  792:bool
    93164:   110984:  793:backend_instruction::is_tex() const
        -:        -:  794:{
   186328:   221968:  795:   return (opcode == SHADER_OPCODE_TEX ||
   186328:   221968:  796:           opcode == FS_OPCODE_TXB ||
   186328:   221968:  797:           opcode == SHADER_OPCODE_TXD ||
   186328:   221968:  798:           opcode == SHADER_OPCODE_TXF ||
   186328:   221968:  799:           opcode == SHADER_OPCODE_TXF_LZ ||
   186328:   221968:  800:           opcode == SHADER_OPCODE_TXF_CMS ||
   186328:   221968:  801:           opcode == SHADER_OPCODE_TXF_CMS_W ||
   186328:   221968:  802:           opcode == SHADER_OPCODE_TXF_UMS ||
   186328:   221968:  803:           opcode == SHADER_OPCODE_TXF_MCS ||
   186328:   221968:  804:           opcode == SHADER_OPCODE_TXL ||
   186328:   221968:  805:           opcode == SHADER_OPCODE_TXL_LZ ||
   186328:   221968:  806:           opcode == SHADER_OPCODE_TXS ||
   186328:   221968:  807:           opcode == SHADER_OPCODE_LOD ||
   186328:   221968:  808:           opcode == SHADER_OPCODE_TG4 ||
   279492:   332952:  809:           opcode == SHADER_OPCODE_TG4_OFFSET ||
   186328:   221968:  810:           opcode == SHADER_OPCODE_SAMPLEINFO);
        -:        -:  811:}
        -:        -:  812:
        -:        -:  813:bool
      170:      176:  814:backend_instruction::is_math() const
        -:        -:  815:{
      315:      321:  816:   return (opcode == SHADER_OPCODE_RCP ||
      290:      290:  817:           opcode == SHADER_OPCODE_RSQ ||
      290:      290:  818:           opcode == SHADER_OPCODE_SQRT ||
      290:      290:  819:           opcode == SHADER_OPCODE_EXP2 ||
      290:      290:  820:           opcode == SHADER_OPCODE_LOG2 ||
      290:      290:  821:           opcode == SHADER_OPCODE_SIN ||
      290:      290:  822:           opcode == SHADER_OPCODE_COS ||
      290:      290:  823:           opcode == SHADER_OPCODE_INT_QUOTIENT ||
      460:      466:  824:           opcode == SHADER_OPCODE_INT_REMAINDER ||
      315:      321:  825:           opcode == SHADER_OPCODE_POW);
        -:        -:  826:}
        -:        -:  827:
        -:        -:  828:bool
     1438:     1736:  829:backend_instruction::is_control_flow() const
        -:        -:  830:{
     1438:     1736:  831:   switch (opcode) {
        -:        -:  832:   case BRW_OPCODE_DO:
        -:        -:  833:   case BRW_OPCODE_WHILE:
        -:        -:  834:   case BRW_OPCODE_IF:
        -:        -:  835:   case BRW_OPCODE_ELSE:
        -:        -:  836:   case BRW_OPCODE_ENDIF:
        -:        -:  837:   case BRW_OPCODE_BREAK:
        -:        -:  838:   case BRW_OPCODE_CONTINUE:
      287:      403:  839:      return true;
        -:        -:  840:   default:
     1151:     1333:  841:      return false;
        -:        -:  842:   }
        -:        -:  843:}
        -:        -:  844:
        -:        -:  845:bool
       35:       35:  846:backend_instruction::can_do_source_mods() const
        -:        -:  847:{
       35:       35:  848:   switch (opcode) {
        -:        -:  849:   case BRW_OPCODE_ADDC:
        -:        -:  850:   case BRW_OPCODE_BFE:
        -:        -:  851:   case BRW_OPCODE_BFI1:
        -:        -:  852:   case BRW_OPCODE_BFI2:
        -:        -:  853:   case BRW_OPCODE_BFREV:
        -:        -:  854:   case BRW_OPCODE_CBIT:
        -:        -:  855:   case BRW_OPCODE_FBH:
        -:        -:  856:   case BRW_OPCODE_FBL:
        -:        -:  857:   case BRW_OPCODE_SUBB:
    #####:    #####:  858:      return false;
        -:        -:  859:   default:
       35:       35:  860:      return true;
        -:        -:  861:   }
        -:        -:  862:}
        -:        -:  863:
        -:        -:  864:bool
    #####:    #####:  865:backend_instruction::can_do_saturate() const
        -:        -:  866:{
    #####:    #####:  867:   switch (opcode) {
        -:        -:  868:   case BRW_OPCODE_ADD:
        -:        -:  869:   case BRW_OPCODE_ASR:
        -:        -:  870:   case BRW_OPCODE_AVG:
        -:        -:  871:   case BRW_OPCODE_DP2:
        -:        -:  872:   case BRW_OPCODE_DP3:
        -:        -:  873:   case BRW_OPCODE_DP4:
        -:        -:  874:   case BRW_OPCODE_DPH:
        -:        -:  875:   case BRW_OPCODE_F16TO32:
        -:        -:  876:   case BRW_OPCODE_F32TO16:
        -:        -:  877:   case BRW_OPCODE_LINE:
        -:        -:  878:   case BRW_OPCODE_LRP:
        -:        -:  879:   case BRW_OPCODE_MAC:
        -:        -:  880:   case BRW_OPCODE_MAD:
        -:        -:  881:   case BRW_OPCODE_MATH:
        -:        -:  882:   case BRW_OPCODE_MOV:
        -:        -:  883:   case BRW_OPCODE_MUL:
        -:        -:  884:   case SHADER_OPCODE_MULH:
        -:        -:  885:   case BRW_OPCODE_PLN:
        -:        -:  886:   case BRW_OPCODE_RNDD:
        -:        -:  887:   case BRW_OPCODE_RNDE:
        -:        -:  888:   case BRW_OPCODE_RNDU:
        -:        -:  889:   case BRW_OPCODE_RNDZ:
        -:        -:  890:   case BRW_OPCODE_SEL:
        -:        -:  891:   case BRW_OPCODE_SHL:
        -:        -:  892:   case BRW_OPCODE_SHR:
        -:        -:  893:   case FS_OPCODE_LINTERP:
        -:        -:  894:   case SHADER_OPCODE_COS:
        -:        -:  895:   case SHADER_OPCODE_EXP2:
        -:        -:  896:   case SHADER_OPCODE_LOG2:
        -:        -:  897:   case SHADER_OPCODE_POW:
        -:        -:  898:   case SHADER_OPCODE_RCP:
        -:        -:  899:   case SHADER_OPCODE_RSQ:
        -:        -:  900:   case SHADER_OPCODE_SIN:
        -:        -:  901:   case SHADER_OPCODE_SQRT:
    #####:    #####:  902:      return true;
        -:        -:  903:   default:
    #####:    #####:  904:      return false;
        -:        -:  905:   }
        -:        -:  906:}
        -:        -:  907:
        -:        -:  908:bool
    #####:    #####:  909:backend_instruction::can_do_cmod() const
        -:        -:  910:{
    #####:    #####:  911:   switch (opcode) {
        -:        -:  912:   case BRW_OPCODE_ADD:
        -:        -:  913:   case BRW_OPCODE_ADDC:
        -:        -:  914:   case BRW_OPCODE_AND:
        -:        -:  915:   case BRW_OPCODE_ASR:
        -:        -:  916:   case BRW_OPCODE_AVG:
        -:        -:  917:   case BRW_OPCODE_CMP:
        -:        -:  918:   case BRW_OPCODE_CMPN:
        -:        -:  919:   case BRW_OPCODE_DP2:
        -:        -:  920:   case BRW_OPCODE_DP3:
        -:        -:  921:   case BRW_OPCODE_DP4:
        -:        -:  922:   case BRW_OPCODE_DPH:
        -:        -:  923:   case BRW_OPCODE_F16TO32:
        -:        -:  924:   case BRW_OPCODE_F32TO16:
        -:        -:  925:   case BRW_OPCODE_FRC:
        -:        -:  926:   case BRW_OPCODE_LINE:
        -:        -:  927:   case BRW_OPCODE_LRP:
        -:        -:  928:   case BRW_OPCODE_LZD:
        -:        -:  929:   case BRW_OPCODE_MAC:
        -:        -:  930:   case BRW_OPCODE_MACH:
        -:        -:  931:   case BRW_OPCODE_MAD:
        -:        -:  932:   case BRW_OPCODE_MOV:
        -:        -:  933:   case BRW_OPCODE_MUL:
        -:        -:  934:   case BRW_OPCODE_NOT:
        -:        -:  935:   case BRW_OPCODE_OR:
        -:        -:  936:   case BRW_OPCODE_PLN:
        -:        -:  937:   case BRW_OPCODE_RNDD:
        -:        -:  938:   case BRW_OPCODE_RNDE:
        -:        -:  939:   case BRW_OPCODE_RNDU:
        -:        -:  940:   case BRW_OPCODE_RNDZ:
        -:        -:  941:   case BRW_OPCODE_SAD2:
        -:        -:  942:   case BRW_OPCODE_SADA2:
        -:        -:  943:   case BRW_OPCODE_SHL:
        -:        -:  944:   case BRW_OPCODE_SHR:
        -:        -:  945:   case BRW_OPCODE_SUBB:
        -:        -:  946:   case BRW_OPCODE_XOR:
        -:        -:  947:   case FS_OPCODE_CINTERP:
        -:        -:  948:   case FS_OPCODE_LINTERP:
    #####:    #####:  949:      return true;
        -:        -:  950:   default:
    #####:    #####:  951:      return false;
        -:        -:  952:   }
        -:        -:  953:}
        -:        -:  954:
        -:        -:  955:bool
      855:      903:  956:backend_instruction::reads_accumulator_implicitly() const
        -:        -:  957:{
      855:      903:  958:   switch (opcode) {
        -:        -:  959:   case BRW_OPCODE_MAC:
        -:        -:  960:   case BRW_OPCODE_MACH:
        -:        -:  961:   case BRW_OPCODE_SADA2:
    #####:    #####:  962:      return true;
        -:        -:  963:   default:
      855:      903:  964:      return false;
        -:        -:  965:   }
        -:        -:  966:}
        -:        -:  967:
        -:        -:  968:bool
      846:      894:  969:backend_instruction::writes_accumulator_implicitly(const struct gen_device_info *devinfo) const
        -:        -:  970:{
     1692:     1788:  971:   return writes_accumulator ||
      846:      894:  972:          (devinfo->gen < 6 &&
    #####:    #####:  973:           ((opcode >= BRW_OPCODE_ADD && opcode < BRW_OPCODE_NOP) ||
    #####:    #####:  974:            (opcode >= FS_OPCODE_DDX_COARSE && opcode <= FS_OPCODE_LINTERP &&
      846:      894:  975:             opcode != FS_OPCODE_CINTERP)));
        -:        -:  976:}
        -:        -:  977:
        -:        -:  978:bool
      541:      625:  979:backend_instruction::has_side_effects() const
        -:        -:  980:{
      541:      625:  981:   switch (opcode) {
        -:        -:  982:   case SHADER_OPCODE_UNTYPED_ATOMIC:
        -:        -:  983:   case SHADER_OPCODE_UNTYPED_ATOMIC_LOGICAL:
        -:        -:  984:   case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
        -:        -:  985:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE:
        -:        -:  986:   case SHADER_OPCODE_UNTYPED_SURFACE_WRITE_LOGICAL:
        -:        -:  987:   case SHADER_OPCODE_TYPED_ATOMIC:
        -:        -:  988:   case SHADER_OPCODE_TYPED_ATOMIC_LOGICAL:
        -:        -:  989:   case SHADER_OPCODE_TYPED_SURFACE_WRITE:
        -:        -:  990:   case SHADER_OPCODE_TYPED_SURFACE_WRITE_LOGICAL:
        -:        -:  991:   case SHADER_OPCODE_MEMORY_FENCE:
        -:        -:  992:   case SHADER_OPCODE_URB_WRITE_SIMD8:
        -:        -:  993:   case SHADER_OPCODE_URB_WRITE_SIMD8_PER_SLOT:
        -:        -:  994:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED:
        -:        -:  995:   case SHADER_OPCODE_URB_WRITE_SIMD8_MASKED_PER_SLOT:
        -:        -:  996:   case FS_OPCODE_FB_WRITE:
        -:        -:  997:   case FS_OPCODE_FB_WRITE_LOGICAL:
        -:        -:  998:   case SHADER_OPCODE_BARRIER:
        -:        -:  999:   case TCS_OPCODE_URB_WRITE:
        -:        -: 1000:   case TCS_OPCODE_RELEASE_INPUT:
    #####:    #####: 1001:      return true;
        -:        -: 1002:   default:
      541:      625: 1003:      return false;
        -:        -: 1004:   }
        -:        -: 1005:}
        -:        -: 1006:
        -:        -: 1007:bool
    #####:    #####: 1008:backend_instruction::is_volatile() const
        -:        -: 1009:{
    #####:    #####: 1010:   switch (opcode) {
        -:        -: 1011:   case SHADER_OPCODE_UNTYPED_SURFACE_READ:
        -:        -: 1012:   case SHADER_OPCODE_UNTYPED_SURFACE_READ_LOGICAL:
        -:        -: 1013:   case SHADER_OPCODE_TYPED_SURFACE_READ:
        -:        -: 1014:   case SHADER_OPCODE_TYPED_SURFACE_READ_LOGICAL:
        -:        -: 1015:   case SHADER_OPCODE_URB_READ_SIMD8:
        -:        -: 1016:   case SHADER_OPCODE_URB_READ_SIMD8_PER_SLOT:
        -:        -: 1017:   case VEC4_OPCODE_URB_READ:
    #####:    #####: 1018:      return true;
        -:        -: 1019:   default:
    #####:    #####: 1020:      return false;
        -:        -: 1021:   }
        -:        -: 1022:}
        -:        -: 1023:
        -:        -: 1024:#ifndef NDEBUG
        -:        -: 1025:static bool
      242:      282: 1026:inst_is_in_block(const bblock_t *block, const backend_instruction *inst)
        -:        -: 1027:{
      242:      282: 1028:   bool found = false;
     2801:     2962: 1029:   foreach_inst_in_block (backend_instruction, i, block) {
     2559:     2680: 1030:      if (inst == i) {
      242:      282: 1031:         found = true;
        -:        -: 1032:      }
        -:        -: 1033:   }
      242:      282: 1034:   return found;
        -:        -: 1035:}
        -:        -: 1036:#endif
        -:        -: 1037:
        -:        -: 1038:static void
      242:      282: 1039:adjust_later_block_ips(bblock_t *start_block, int ip_adjustment)
        -:        -: 1040:{
     2165:     4007: 1041:   for (bblock_t *block_iter = start_block->next();
        -:        -: 1042:        block_iter;
        -:        -: 1043:        block_iter = block_iter->next()) {
     1923:     3725: 1044:      block_iter->start_ip += ip_adjustment;
     1923:     3725: 1045:      block_iter->end_ip += ip_adjustment;
        -:        -: 1046:   }
      242:      282: 1047:}
        -:        -: 1048:
        -:        -: 1049:void
    #####:    #####: 1050:backend_instruction::insert_after(bblock_t *block, backend_instruction *inst)
        -:        -: 1051:{
    #####:    #####: 1052:   assert(this != inst);
        -:        -: 1053:
    #####:    #####: 1054:   if (!this->is_head_sentinel())
    #####:    #####: 1055:      assert(inst_is_in_block(block, this) || !"Instruction not in block");
        -:        -: 1056:
    #####:    #####: 1057:   block->end_ip++;
        -:        -: 1058:
    #####:    #####: 1059:   adjust_later_block_ips(block, 1);
        -:        -: 1060:
    #####:    #####: 1061:   exec_node::insert_after(inst);
    #####:    #####: 1062:}
        -:        -: 1063:
        -:        -: 1064:void
       46:       46: 1065:backend_instruction::insert_before(bblock_t *block, backend_instruction *inst)
        -:        -: 1066:{
       46:       46: 1067:   assert(this != inst);
        -:        -: 1068:
       46:       46: 1069:   if (!this->is_tail_sentinel())
       46:       46: 1070:      assert(inst_is_in_block(block, this) || !"Instruction not in block");
        -:        -: 1071:
       46:       46: 1072:   block->end_ip++;
        -:        -: 1073:
       46:       46: 1074:   adjust_later_block_ips(block, 1);
        -:        -: 1075:
       46:       46: 1076:   exec_node::insert_before(inst);
       46:       46: 1077:}
        -:        -: 1078:
        -:        -: 1079:void
    #####:    #####: 1080:backend_instruction::insert_before(bblock_t *block, exec_list *list)
        -:        -: 1081:{
    #####:    #####: 1082:   assert(inst_is_in_block(block, this) || !"Instruction not in block");
        -:        -: 1083:
    #####:    #####: 1084:   unsigned num_inst = list->length();
        -:        -: 1085:
    #####:    #####: 1086:   block->end_ip += num_inst;
        -:        -: 1087:
    #####:    #####: 1088:   adjust_later_block_ips(block, num_inst);
        -:        -: 1089:
    #####:    #####: 1090:   exec_node::insert_before(list);
    #####:    #####: 1091:}
        -:        -: 1092:
        -:        -: 1093:void
      196:      236: 1094:backend_instruction::remove(bblock_t *block)
        -:        -: 1095:{
      196:      236: 1096:   assert(inst_is_in_block(block, this) || !"Instruction not in block");
        -:        -: 1097:
      196:      236: 1098:   adjust_later_block_ips(block, -1);
        -:        -: 1099:
      196:      236: 1100:   if (block->start_ip == block->end_ip) {
        8:       16: 1101:      block->cfg->remove_block(block);
        -:        -: 1102:   } else {
      188:      220: 1103:      block->end_ip--;
        -:        -: 1104:   }
        -:        -: 1105:
      196:      236: 1106:   exec_node::remove();
      196:      236: 1107:}
        -:        -: 1108:
        -:        -: 1109:void
    #####:    #####: 1110:backend_shader::dump_instructions()
        -:        -: 1111:{
    #####:    #####: 1112:   dump_instructions(NULL);
    #####:    #####: 1113:}
        -:        -: 1114:
        -:        -: 1115:void
    #####:    #####: 1116:backend_shader::dump_instructions(const char *name)
        -:        -: 1117:{
    #####:    #####: 1118:   FILE *file = stderr;
    #####:    #####: 1119:   if (name && geteuid() != 0) {
    #####:    #####: 1120:      file = fopen(name, "w");
    #####:    #####: 1121:      if (!file)
    #####:    #####: 1122:         file = stderr;
        -:        -: 1123:   }
        -:        -: 1124:
    #####:    #####: 1125:   if (cfg) {
    #####:    #####: 1126:      int ip = 0;
    #####:    #####: 1127:      foreach_block_and_inst(block, backend_instruction, inst, cfg) {
    #####:    #####: 1128:         if (!unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER))
    #####:    #####: 1129:            fprintf(file, "%4d: ", ip++);
    #####:    #####: 1130:         dump_instruction(inst, file);
        -:        -: 1131:      }
        -:        -: 1132:   } else {
    #####:    #####: 1133:      int ip = 0;
    #####:    #####: 1134:      foreach_in_list(backend_instruction, inst, &instructions) {
    #####:    #####: 1135:         if (!unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER))
    #####:    #####: 1136:            fprintf(file, "%4d: ", ip++);
    #####:    #####: 1137:         dump_instruction(inst, file);
        -:        -: 1138:      }
        -:        -: 1139:   }
        -:        -: 1140:
    #####:    #####: 1141:   if (file != stderr) {
    #####:    #####: 1142:      fclose(file);
        -:        -: 1143:   }
    #####:    #####: 1144:}
        -:        -: 1145:
        -:        -: 1146:void
        8:        8: 1147:backend_shader::calculate_cfg()
        -:        -: 1148:{
        8:        8: 1149:   if (this->cfg)
    #####:    #####: 1150:      return;
        8:        8: 1151:   cfg = new(mem_ctx) cfg_t(&this->instructions);
        -:        -: 1152:}
        -:        -: 1153:
        -:        -: 1154:extern "C" const unsigned *
    #####:    #####: 1155:brw_compile_tes(const struct brw_compiler *compiler,
        -:        -: 1156:                void *log_data,
        -:        -: 1157:                void *mem_ctx,
        -:        -: 1158:                const struct brw_tes_prog_key *key,
        -:        -: 1159:                const struct brw_vue_map *input_vue_map,
        -:        -: 1160:                struct brw_tes_prog_data *prog_data,
        -:        -: 1161:                const nir_shader *src_shader,
        -:        -: 1162:                struct gl_program *prog,
        -:        -: 1163:                int shader_time_index,
        -:        -: 1164:                unsigned *final_assembly_size,
        -:        -: 1165:                char **error_str)
        -:        -: 1166:{
    #####:    #####: 1167:   const struct gen_device_info *devinfo = compiler->devinfo;
    #####:    #####: 1168:   const bool is_scalar = compiler->scalar_stage[MESA_SHADER_TESS_EVAL];
        -:        -: 1169:
    #####:    #####: 1170:   nir_shader *nir = nir_shader_clone(mem_ctx, src_shader);
    #####:    #####: 1171:   nir->info->inputs_read = key->inputs_read;
    #####:    #####: 1172:   nir->info->patch_inputs_read = key->patch_inputs_read;
        -:        -: 1173:
    #####:    #####: 1174:   nir = brw_nir_apply_sampler_key(nir, compiler, &key->tex, is_scalar);
    #####:    #####: 1175:   brw_nir_lower_tes_inputs(nir, input_vue_map);
    #####:    #####: 1176:   brw_nir_lower_vue_outputs(nir, is_scalar);
    #####:    #####: 1177:   nir = brw_postprocess_nir(nir, compiler, is_scalar);
        -:        -: 1178:
    #####:    #####: 1179:   brw_compute_vue_map(devinfo, &prog_data->base.vue_map,
    #####:    #####: 1180:                       nir->info->outputs_written,
    #####:    #####: 1181:                       nir->info->separate_shader);
        -:        -: 1182:
    #####:    #####: 1183:   unsigned output_size_bytes = prog_data->base.vue_map.num_slots * 4 * 4;
        -:        -: 1184:
    #####:    #####: 1185:   assert(output_size_bytes >= 1);
    #####:    #####: 1186:   if (output_size_bytes > GEN7_MAX_DS_URB_ENTRY_SIZE_BYTES) {
    #####:    #####: 1187:      if (error_str)
    #####:    #####: 1188:         *error_str = ralloc_strdup(mem_ctx, "DS outputs exceed maximum size");
    #####:    #####: 1189:      return NULL;
        -:        -: 1190:   }
        -:        -: 1191:
        -:        -: 1192:   prog_data->base.clip_distance_mask =
    #####:    #####: 1193:      ((1 << nir->info->clip_distance_array_size) - 1);
        -:        -: 1194:   prog_data->base.cull_distance_mask =
    #####:    #####: 1195:      ((1 << nir->info->cull_distance_array_size) - 1) <<
    #####:    #####: 1196:      nir->info->clip_distance_array_size;
        -:        -: 1197:
        -:        -: 1198:   /* URB entry sizes are stored as a multiple of 64 bytes. */
    #####:    #####: 1199:   prog_data->base.urb_entry_size = ALIGN(output_size_bytes, 64) / 64;
    #####:    #####: 1200:   prog_data->base.urb_read_length = 0;
        -:        -: 1201:
        -:        -: 1202:   STATIC_ASSERT(BRW_TESS_PARTITIONING_INTEGER == TESS_SPACING_EQUAL - 1);
        -:        -: 1203:   STATIC_ASSERT(BRW_TESS_PARTITIONING_ODD_FRACTIONAL ==
        -:        -: 1204:                 TESS_SPACING_FRACTIONAL_ODD - 1);
        -:        -: 1205:   STATIC_ASSERT(BRW_TESS_PARTITIONING_EVEN_FRACTIONAL ==
        -:        -: 1206:                 TESS_SPACING_FRACTIONAL_EVEN - 1);
        -:        -: 1207:
        -:        -: 1208:   prog_data->partitioning =
    #####:    #####: 1209:      (enum brw_tess_partitioning) (nir->info->tess.spacing - 1);
        -:        -: 1210:
    #####:    #####: 1211:   switch (nir->info->tess.primitive_mode) {
        -:        -: 1212:   case GL_QUADS:
    #####:    #####: 1213:      prog_data->domain = BRW_TESS_DOMAIN_QUAD;
    #####:    #####: 1214:      break;
        -:        -: 1215:   case GL_TRIANGLES:
    #####:    #####: 1216:      prog_data->domain = BRW_TESS_DOMAIN_TRI;
    #####:    #####: 1217:      break;
        -:        -: 1218:   case GL_ISOLINES:
    #####:    #####: 1219:      prog_data->domain = BRW_TESS_DOMAIN_ISOLINE;
    #####:    #####: 1220:      break;
        -:        -: 1221:   default:
    #####:    #####: 1222:      unreachable("invalid domain shader primitive mode");
        -:        -: 1223:   }
        -:        -: 1224:
    #####:    #####: 1225:   if (nir->info->tess.point_mode) {
    #####:    #####: 1226:      prog_data->output_topology = BRW_TESS_OUTPUT_TOPOLOGY_POINT;
    #####:    #####: 1227:   } else if (nir->info->tess.primitive_mode == GL_ISOLINES) {
    #####:    #####: 1228:      prog_data->output_topology = BRW_TESS_OUTPUT_TOPOLOGY_LINE;
        -:        -: 1229:   } else {
        -:        -: 1230:      /* Hardware winding order is backwards from OpenGL */
        -:        -: 1231:      prog_data->output_topology =
    #####:    #####: 1232:         nir->info->tess.ccw ? BRW_TESS_OUTPUT_TOPOLOGY_TRI_CW
    #####:    #####: 1233:                             : BRW_TESS_OUTPUT_TOPOLOGY_TRI_CCW;
        -:        -: 1234:   }
        -:        -: 1235:
    #####:    #####: 1236:   if (unlikely(INTEL_DEBUG & DEBUG_TES)) {
    #####:    #####: 1237:      fprintf(stderr, "TES Input ");
    #####:    #####: 1238:      brw_print_vue_map(stderr, input_vue_map);
    #####:    #####: 1239:      fprintf(stderr, "TES Output ");
    #####:    #####: 1240:      brw_print_vue_map(stderr, &prog_data->base.vue_map);
        -:        -: 1241:   }
        -:        -: 1242:
    #####:    #####: 1243:   if (is_scalar) {
        -:        -: 1244:      fs_visitor v(compiler, log_data, mem_ctx, (void *) key,
        -:        -: 1245:                   &prog_data->base.base, NULL, nir, 8,
    #####:    #####: 1246:                   shader_time_index, input_vue_map);
    #####:    #####: 1247:      if (!v.run_tes()) {
    #####:    #####: 1248:         if (error_str)
    #####:    #####: 1249:            *error_str = ralloc_strdup(mem_ctx, v.fail_msg);
    #####:    #####: 1250:         return NULL;
        -:        -: 1251:      }
        -:        -: 1252:
    #####:    #####: 1253:      prog_data->base.base.dispatch_grf_start_reg = v.payload.num_regs;
    #####:    #####: 1254:      prog_data->base.dispatch_mode = DISPATCH_MODE_SIMD8;
        -:        -: 1255:
        -:        -: 1256:      fs_generator g(compiler, log_data, mem_ctx, (void *) key,
        -:        -: 1257:                     &prog_data->base.base, v.promoted_constants, false,
    #####:    #####: 1258:                     MESA_SHADER_TESS_EVAL);
    #####:    #####: 1259:      if (unlikely(INTEL_DEBUG & DEBUG_TES)) {
    #####:    #####: 1260:         g.enable_debug(ralloc_asprintf(mem_ctx,
        -:        -: 1261:                                        "%s tessellation evaluation shader %s",
    #####:    #####: 1262:                                        nir->info->label ? nir->info->label
        -:        -: 1263:                                                        : "unnamed",
    #####:    #####: 1264:                                        nir->info->name));
        -:        -: 1265:      }
        -:        -: 1266:
    #####:    #####: 1267:      g.generate_code(v.cfg, 8);
        -:        -: 1268:
    #####:    #####: 1269:      return g.get_assembly(final_assembly_size);
        -:        -: 1270:   } else {
        -:        -: 1271:      brw::vec4_tes_visitor v(compiler, log_data, key, prog_data,
    #####:    #####: 1272:			      nir, mem_ctx, shader_time_index);
    #####:    #####: 1273:      if (!v.run()) {
    #####:    #####: 1274:	 if (error_str)
    #####:    #####: 1275:	    *error_str = ralloc_strdup(mem_ctx, v.fail_msg);
    #####:    #####: 1276:	 return NULL;
        -:        -: 1277:      }
        -:        -: 1278:
    #####:    #####: 1279:      if (unlikely(INTEL_DEBUG & DEBUG_TES))
    #####:    #####: 1280:	 v.dump_instructions();
        -:        -: 1281:
    #####:    #####: 1282:      return brw_vec4_generate_assembly(compiler, log_data, mem_ctx, nir,
    #####:    #####: 1283:					&prog_data->base, v.cfg,
    #####:    #####: 1284:					final_assembly_size);
        -:        -: 1285:   }
        3:        3: 1286:}

src/intel/compiler/brw_cfg.cpp.gcov

        -:        -:    0:Source:compiler/brw_cfg.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_cfg.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_cfg.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       44:       68:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       44:       68:   39:/*EOF*/
       44:       68:   40:/*EOF*/
       44:       68:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       44:       68:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
      184:      408:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      184:      408:   49:/*EOF*/
      184:      408:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       60:       92:   53:/*EOF*/
       60:       92:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       60:       92:   56:/*EOF*/
       60:       92:   57:/*EOF*/
       60:       92:   58:/*EOF*/
       60:       92:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       70:      142:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       70:      142:   64:/*EOF*/
       70:      142:   65:/*EOF*/
       70:      142:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:       56:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:       88:   71:/*EOF*/
    #####:       60:   72:/*EOF*/
    #####:       28:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:       28:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:       56:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:       80:   83:/*EOF*/
    #####:       52:   84:/*EOF*/
    #####:       28:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:       28:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:       32:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:       32:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:       32:   97:/*EOF*/
    #####:       32:   98:/*EOF*/
    #####:       32:   99:/*EOF*/
    #####:       64:  100:/*EOF*/
    #####:       32:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:       32:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:       32:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:       32:  109:/*EOF*/
    #####:       32:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:       32:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:       32:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:       64:  119:/*EOF*/
    #####:       32:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:       32:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:       16:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:       16:  129:/*EOF*/
    #####:       32:  130:/*EOF*/
    #####:       16:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:       48:  133:/*EOF*/
    #####:       32:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:       16:  137:/*EOF*/
    #####:       16:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:       16:  140:/*EOF*/
    #####:       16:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        8:        8:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        8:        8:  156:/*EOF*/
        8:        8:  157:/*EOF*/
        8:        8:  158:/*EOF*/
        8:        8:  159:/*EOF*/
        8:        8:  160:/*EOF*/
        8:        8:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        8:        8:  163:/*EOF*/
        8:        8:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        8:        8:  166:/*EOF*/
        8:        8:  167:/*EOF*/
        8:        8:  168:/*EOF*/
        8:        8:  169:/*EOF*/
        8:        8:  170:/*EOF*/
        8:        8:  171:/*EOF*/
        8:        8:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        8:        8:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      377:      429:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      369:      421:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      369:      421:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      369:      421:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       18:       26:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       18:       26:  190:/*EOF*/
       18:       26:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       18:       26:  193:/*EOF*/
       18:       26:  194:/*EOF*/
       18:       26:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       18:       26:  200:/*EOF*/
       18:       26:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       18:       26:  203:/*EOF*/
       18:       26:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
       18:       26:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       18:       26:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       18:       26:  211:/*EOF*/
       18:       26:  212:/*EOF*/
       18:       26:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       18:       26:  215:/*EOF*/
       18:       26:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       18:       26:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       18:       26:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       18:       26:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       18:       26:  232:/*EOF*/
       18:       26:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       18:       26:  239:/*EOF*/
       18:       26:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       18:       26:  243:/*EOF*/
       18:       26:  244:/*EOF*/
       18:       26:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        4:        8:  251:/*EOF*/
        4:        8:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        4:        8:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        4:        8:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        4:        8:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        4:        8:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        4:        8:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        4:        8:  270:/*EOF*/
        4:        8:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        8:       16:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        8:       16:  289:/*EOF*/
        8:       16:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        8:       16:  292:/*EOF*/
        8:       16:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        8:       16:  296:/*EOF*/
        8:       16:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        4:        8:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        4:        8:  302:/*EOF*/
        4:        8:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        4:        8:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        4:        8:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        4:        8:  311:/*EOF*/
        4:        8:  312:/*EOF*/
        4:        8:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
      299:      311:  316:/*EOF*/
      299:      311:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        8:        8:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        8:        8:  323:/*EOF*/
        8:        8:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       16:       16:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        8:        8:  328:/*EOF*/
        8:        8:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        8:       32:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        8:       64:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:       76:  336:/*EOF*/
        -:        -:  337:/*EOF*/
    #####:       44:  338:/*EOF*/
    #####:       16:  339:/*EOF*/
    #####:       16:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:       88:  345:/*EOF*/
    #####:       56:  346:/*EOF*/
    #####:       28:  347:/*EOF*/
    #####:       28:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       16:       76:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       24:      120:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       16:       76:  357:/*EOF*/
        8:       44:  358:/*EOF*/
        8:       44:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        8:      100:  364:/*EOF*/
    #####:       56:  365:/*EOF*/
    #####:       28:  366:/*EOF*/
    #####:       28:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        8:       32:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      132:      700:  374:/*EOF*/
      124:      668:  375:/*EOF*/
      124:      668:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        8:       32:  379:/*EOF*/
        8:       32:  380:/*EOF*/
        8:       32:  381:/*EOF*/
        8:       32:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       60:       92:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       60:       92:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       60:       92:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       60:       92:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       60:       92:  395:/*EOF*/
       52:       84:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       60:       92:  399:/*EOF*/
       60:       92:  400:/*EOF*/
       60:       92:  401:/*EOF*/
       60:       92:  402:/*EOF*/
       60:       92:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        8:        8:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        8:        8:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        8:        8:  410:/*EOF*/
       68:      100:  411:/*EOF*/
       60:       92:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        8:        8:  414:/*EOF*/
        8:        8:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        5:        5:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       54:       62:  456:/*EOF*/
       49:       57:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        5:        5:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        7:        7:  462:/*EOF*/
        7:        7:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      102:      118:  465:/*EOF*/
       95:      111:  466:/*EOF*/
        7:        7:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       88:      104:  469:/*EOF*/
      212:      252:  470:/*EOF*/
      124:      148:  471:/*EOF*/
      120:      140:  472:/*EOF*/
       88:      104:  473:/*EOF*/
       32:       36:  474:/*EOF*/
       32:       36:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
       88:      104:  480:/*EOF*/
       44:       52:  481:/*EOF*/
       44:       52:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        5:        5:  487:/*EOF*/
        5:        5:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       64:       72:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
       96:      108:  497:/*EOF*/
      152:      228:  498:/*EOF*/
       60:       96:  499:/*EOF*/
       48:       36:  500:/*EOF*/
        8:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
       32:       36:  503:/*EOF*/
       32:       36:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/

src/intel/compiler/brw_dead_control_flow.cpp.gcov

        -:        -:    0:Source:compiler/brw_dead_control_flow.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_dead_control_flow.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_dead_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       18:       20:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       18:       20:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      176:      280:   43:/*EOF*/
      158:      260:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      158:      260:   46:/*EOF*/
       18:       20:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      140:      240:   49:/*EOF*/
      140:      240:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      194:      308:   55:/*EOF*/
       54:       68:   56:/*EOF*/
       18:       26:   57:/*EOF*/
       18:       26:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       18:       26:   60:/*EOF*/
       18:       26:   61:/*EOF*/
      158:      256:   62:/*EOF*/
       36:       42:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
      130:      230:   99:/*EOF*/
        8:       16:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       18:       20:  115:/*EOF*/
        2:        2:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       18:       20:  118:/*EOF*/

src/intel/compiler/brw_eu.c.gcov

        -:        -:    0:Source:compiler/brw_eu.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_eu.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_eu.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      221:      233:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      221:      233:  161:/*EOF*/
      221:      233:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      219:      231:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      219:      231:  166:/*EOF*/
      219:      231:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      214:      226:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      214:      226:  171:/*EOF*/
      214:      226:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      214:      226:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      214:      226:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      214:      226:  179:/*EOF*/
      214:      226:  180:/*EOF*/
        -:        -:  181:/*EOF*/
      223:      235:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      223:      235:  184:/*EOF*/
      223:      235:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        7:        7:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        7:        7:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        7:        7:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        7:        7:  200:/*EOF*/
        7:        7:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        7:        7:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      208:      220:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
      208:      220:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      208:      220:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      203:      215:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      203:      215:  249:/*EOF*/
      203:      215:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      214:      226:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
      214:      226:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      214:      226:  265:/*EOF*/
      214:      226:  266:/*EOF*/
      214:      226:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      214:      226:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      214:      226:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      214:      226:  286:/*EOF*/
      214:      226:  287:/*EOF*/
        -:        -:  288:/*EOF*/
      221:      233:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      221:      233:  291:/*EOF*/
      221:      233:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      219:      231:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      219:      231:  296:/*EOF*/
      219:      231:  297:/*EOF*/
        -:        -:  298:/*EOF*/
      214:      226:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      214:      226:  301:/*EOF*/
      214:      226:  302:/*EOF*/
      214:      226:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        2:        2:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        2:        2:  307:/*EOF*/
        2:        2:  308:/*EOF*/
        2:        2:  309:/*EOF*/
        2:        2:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        2:        2:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        2:        2:  315:/*EOF*/
        2:        2:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        5:        5:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        5:        5:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        5:        5:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        5:        5:  333:/*EOF*/
        5:        5:  334:/*EOF*/
        5:        5:  335:/*EOF*/
        5:        5:  336:/*EOF*/
        5:        5:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        5:        5:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        5:        5:  343:/*EOF*/
        5:        5:  344:/*EOF*/
        5:        5:  345:/*EOF*/
        5:        5:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        5:        5:  349:/*EOF*/
        5:        5:  350:/*EOF*/
        5:        5:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        5:        5:  353:/*EOF*/
        5:        5:  354:/*EOF*/
        5:        5:  355:/*EOF*/
        5:        5:  356:/*EOF*/
        5:        5:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        5:        5:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        5:        5:  363:/*EOF*/
        5:        5:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
     2414:     2518:  682:/*EOF*/
        -:        -:  683:/*EOF*/
     2414:     2518:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
     2414:     2518:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
     2449:     2553:  700:/*EOF*/
        -:        -:  701:/*EOF*/
     2449:     2553:  702:/*EOF*/
       35:       35:  703:/*EOF*/
        -:        -:  704:/*EOF*/
     2414:     2518:  705:/*EOF*/
     2414:     2518:  706:/*EOF*/
     2410:     2510:  707:/*EOF*/
     2410:     2510:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        4:        8:  710:/*EOF*/
        4:        8:  711:/*EOF*/
        8:       16:  712:/*EOF*/
        8:       16:  713:/*EOF*/
        4:        8:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/

src/intel/compiler/brw_eu_compact.c.gcov

        -:        -:    0:Source:compiler/brw_eu_compact.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_eu_compact.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_eu_compact.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
      171:      171:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
      513:      513:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
      171:      171:  682:/*EOF*/
      171:      171:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      171:      171:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
     1108:     1116:  691:/*EOF*/
     1104:     1112:  692:/*EOF*/
      167:      167:  693:/*EOF*/
      167:      167:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        4:        4:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
      167:      167:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
      501:      501:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
      167:      167:  709:/*EOF*/
      167:      167:  710:/*EOF*/
        -:        -:  711:/*EOF*/
     4849:     4733:  712:/*EOF*/
     4746:     4634:  713:/*EOF*/
       64:       68:  714:/*EOF*/
       64:       68:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
      103:       99:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
       64:       68:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
      128:      136:  726:/*EOF*/
       64:       68:  727:/*EOF*/
       64:       68:  728:/*EOF*/
        -:        -:  729:/*EOF*/
       64:       68:  730:/*EOF*/
       52:       52:  731:/*EOF*/
        -:        -:  732:/*EOF*/
      510:      514:  733:/*EOF*/
      508:      512:  734:/*EOF*/
       62:       66:  735:/*EOF*/
       62:       66:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        2:        2:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
      112:      116:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
      296:      300:  747:/*EOF*/
      296:      300:  748:/*EOF*/
      112:      116:  749:/*EOF*/
      112:      116:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
       62:       66:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
       62:       66:  762:/*EOF*/
        -:        -:  763:/*EOF*/
       62:       66:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
       62:       66:  767:/*EOF*/
        -:        -:  768:/*EOF*/
       62:       66:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
       62:       66:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
       62:       66:  778:/*EOF*/
       12:       16:  779:/*EOF*/
        -:        -:  780:/*EOF*/
       50:       50:  781:/*EOF*/
        -:        -:  782:/*EOF*/
       50:       50:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       62:       66:  787:/*EOF*/
        -:        -:  788:/*EOF*/
       62:       66:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
      171:      171:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
      342:      342:  853:/*EOF*/
      171:      171:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
      171:      171:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
      171:      171:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      342:      342:  875:/*EOF*/
      171:      171:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
       49:       61:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
       49:       61:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       49:       61:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
      212:      220:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
      212:      220:  969:/*EOF*/
        -:        -:  970:/*EOF*/
      212:      220:  971:/*EOF*/
       18:       18:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
       18:       18:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
      194:      202:  985:/*EOF*/
      373:      385:  986:/*EOF*/
      179:      183:  987:/*EOF*/
      243:      263:  988:/*EOF*/
       98:      122:  989:/*EOF*/
       49:       61:  990:/*EOF*/
       23:       31:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
      171:      171:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
      171:      171:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      171:      171: 1002:/*EOF*/
      171:      171: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
      171:      171: 1005:/*EOF*/
        4:        4: 1006:/*EOF*/
      167:      167: 1007:/*EOF*/
      103:       99: 1008:/*EOF*/
       64:       68: 1009:/*EOF*/
        2:        2: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
       62:       66: 1012:/*EOF*/
       62:       66: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       62:       66: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       62:       66: 1020:/*EOF*/
       62:       66: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
       62:       66: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
       62:       66: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
       62:       66: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
       62:       66: 1030:/*EOF*/
       62:       66: 1031:/*EOF*/
       62:       66: 1032:/*EOF*/
       62:       66: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
       62:       66: 1035:/*EOF*/
       12:       16: 1036:/*EOF*/
       12:       16: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
       50:       50: 1039:/*EOF*/
       50:       50: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
       62:       66: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
       62:       66: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
       16:       24: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
       16:       24: 1288:/*EOF*/
       16:       24: 1289:/*EOF*/
       16:       24: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        8:       12: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        8:       12: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        8:       12: 1303:/*EOF*/
        8:       12: 1304:/*EOF*/
        8:       12: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        8:       12: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       16:       24: 1309:/*EOF*/
       16:       24: 1310:/*EOF*/
        8:       12: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        8:       12: 1314:/*EOF*/
        8:       12: 1315:/*EOF*/
        8:       12: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        8:       12: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        1:        1: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        1:        1: 1347:/*EOF*/
        1:        1: 1348:/*EOF*/
        1:        1: 1349:/*EOF*/
        1:        1: 1350:/*EOF*/
        1:        1: 1351:/*EOF*/
        1:        1: 1352:/*EOF*/
        1:        1: 1353:/*EOF*/
        1:        1: 1354:/*EOF*/
        1:        1: 1355:/*EOF*/
        1:        1: 1356:/*EOF*/
        1:        1: 1357:/*EOF*/
        1:        1: 1358:/*EOF*/
        1:        1: 1359:/*EOF*/
        1:        1: 1360:/*EOF*/
        1:        1: 1361:/*EOF*/
        1:        1: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        1:        1: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        1:        1: 1379:/*EOF*/
        1:        1: 1380:/*EOF*/
        1:        1: 1381:/*EOF*/
        1:        1: 1382:/*EOF*/
        1:        1: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        1:        1: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        7:        7: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        7:        7: 1399:/*EOF*/
        7:        7: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        7:        7: 1403:/*EOF*/
        7:        7: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        7:        7: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        7:        7: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        7:        7: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        7:        7: 1418:/*EOF*/
        7:        7: 1419:/*EOF*/
      226:      234: 1420:/*EOF*/
      212:      220: 1421:/*EOF*/
      212:      220: 1422:/*EOF*/
      212:      220: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
      212:      220: 1425:/*EOF*/
      212:      220: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
      212:      220: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
      212:      220: 1430:/*EOF*/
       62:       66: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
       62:       66: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
       62:       66: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
      150:      154: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
      150:      154: 1460:/*EOF*/
      130:      140: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
      150:      154: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        7:        7: 1468:/*EOF*/
      226:      234: 1469:/*EOF*/
      212:      220: 1470:/*EOF*/
      212:      220: 1471:/*EOF*/
      212:      220: 1472:/*EOF*/
      212:      220: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
      212:      220: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        8:       12: 1479:/*EOF*/
        8:       12: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        8:       12: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
       40:       36: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
       40:       36: 1508:/*EOF*/
       40:       36: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
       40:       36: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
       40:       36: 1514:/*EOF*/
       40:       36: 1515:/*EOF*/
       40:       36: 1516:/*EOF*/
       40:       36: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
       40:       36: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
       17:       17: 1529:/*EOF*/
        6:        6: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
       11:       11: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
       11:       11: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        7:        7: 1553:/*EOF*/
        2:        2: 1554:/*EOF*/
        2:        2: 1555:/*EOF*/
        2:        2: 1556:/*EOF*/
        2:        2: 1557:/*EOF*/
        2:        2: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        7:        7: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        7:        7: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/

src/intel/compiler/brw_eu_emit.c.gcov

        -:        -:    0:Source:compiler/brw_eu_emit.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_eu_emit.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_eu_emit.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        2:        2:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        2:        2:   50:/*EOF*/
        2:        2:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        2:        2:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        2:        2:   57:/*EOF*/
        2:        2:   58:/*EOF*/
        2:        2:   59:/*EOF*/
        2:        2:   60:/*EOF*/
        2:        2:   61:/*EOF*/
        2:        2:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        2:        2:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        2:        2:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      548:      568:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
      548:      568:   80:/*EOF*/
      548:      568:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      548:      568:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      530:      550:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      530:      550:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       91:       99:  113:/*EOF*/
       91:       99:  114:/*EOF*/
       91:       99:  115:/*EOF*/
       91:       99:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      439:      451:  135:/*EOF*/
      439:      451:  136:/*EOF*/
      439:      451:  137:/*EOF*/
      439:      451:  138:/*EOF*/
      439:      451:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      769:      793:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      769:      793:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      769:      793:  186:/*EOF*/
      769:      793:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      769:      793:  189:/*EOF*/
      769:      793:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      194:      202:  195:/*EOF*/
        -:        -:  196:/*EOF*/
      194:      202:  197:/*EOF*/
        -:        -:  198:/*EOF*/
      194:      202:  199:/*EOF*/
       22:       22:  200:/*EOF*/
      172:      180:  201:/*EOF*/
      135:      131:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      194:      202:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      194:      202:  206:/*EOF*/
      194:      202:  207:/*EOF*/
      194:      202:  208:/*EOF*/
      194:      202:  209:/*EOF*/
      194:      202:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      194:      202:  212:/*EOF*/
      194:      202:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      194:      202:  215:/*EOF*/
      181:      189:  216:/*EOF*/
      181:      189:  217:/*EOF*/
       40:       36:  218:/*EOF*/
      181:      189:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       13:       13:  221:/*EOF*/
       13:       13:  222:/*EOF*/
       26:       26:  223:/*EOF*/
       13:       13:  224:/*EOF*/
       11:       11:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       13:       13:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      194:      202:  263:/*EOF*/
      194:      202:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      194:      202:  268:/*EOF*/
       40:       36:  269:/*EOF*/
      194:      202:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      336:      348:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
      336:      348:  276:/*EOF*/
      336:      348:  277:/*EOF*/
      336:      348:  278:/*EOF*/
      336:      348:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
      336:      348:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       51:       63:  287:/*EOF*/
        3:        3:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
      202:      222:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      385:      381:  296:/*EOF*/
      100:       96:  297:/*EOF*/
      100:       96:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
      185:      189:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
      185:      189:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      185:      189:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
      185:      189:  315:/*EOF*/
      185:      189:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
      185:      189:  319:/*EOF*/
      185:      189:  320:/*EOF*/
        -:        -:  321:/*EOF*/
      185:      189:  322:/*EOF*/
        -:        -:  323:/*EOF*/
      185:      189:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      185:      189:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      185:      189:  331:/*EOF*/
       74:       76:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      185:      189:  341:/*EOF*/
       34:       34:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      185:      189:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      185:      189:  352:/*EOF*/
       34:       34:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
       15:       19:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
       15:       19:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       15:       19:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
      194:      202:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      194:      202:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      194:      202:  374:/*EOF*/
        7:        7:  375:/*EOF*/
      187:      195:  376:/*EOF*/
      139:      147:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      194:      202:  379:/*EOF*/
        -:        -:  380:/*EOF*/
      386:      402:  381:/*EOF*/
      192:      200:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        7:        7:  387:/*EOF*/
        7:        7:  388:/*EOF*/
        7:        7:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      194:      202:  392:/*EOF*/
        -:        -:  393:/*EOF*/
      194:      202:  394:/*EOF*/
      194:      202:  395:/*EOF*/
      194:      202:  396:/*EOF*/
      194:      202:  397:/*EOF*/
      194:      202:  398:/*EOF*/
      194:      202:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      194:      202:  401:/*EOF*/
       30:       38:  402:/*EOF*/
       15:       19:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
       30:       38:  405:/*EOF*/
       15:       19:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       15:       19:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
       15:       19:  437:/*EOF*/
       15:       19:  438:/*EOF*/
        -:        -:  439:/*EOF*/
       15:       19:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       15:       19:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       21:       29:  459:/*EOF*/
        6:       10:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       29:       37:  468:/*EOF*/
       28:       36:  469:/*EOF*/
       28:       36:  470:/*EOF*/
       14:       18:  471:/*EOF*/
       14:       18:  472:/*EOF*/
       14:       18:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
      179:      183:  476:/*EOF*/
      179:      183:  477:/*EOF*/
      179:      183:  478:/*EOF*/
      169:      173:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       10:       10:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
      179:      183:  493:/*EOF*/
      211:      211:  494:/*EOF*/
       42:       38:  495:/*EOF*/
       18:       14:  496:/*EOF*/
       18:       14:  497:/*EOF*/
       18:       14:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      151:      159:  500:/*EOF*/
      151:      159:  501:/*EOF*/
      151:      159:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
       10:       10:  505:/*EOF*/
       10:       10:  506:/*EOF*/
       10:       10:  507:/*EOF*/
       10:       10:  508:/*EOF*/
       10:       10:  509:/*EOF*/
       10:       10:  510:/*EOF*/
       10:       10:  511:/*EOF*/
       10:       10:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       10:       10:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        4:        4:  518:/*EOF*/
        6:        6:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        6:        6:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
      194:      202:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
      142:      146:  539:/*EOF*/
        -:        -:  540:/*EOF*/
      142:      146:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      142:      146:  543:/*EOF*/
       90:       98:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
      142:      146:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      142:      146:  554:/*EOF*/
      142:      146:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      142:      146:  557:/*EOF*/
        -:        -:  558:/*EOF*/
      142:      146:  559:/*EOF*/
      142:      146:  560:/*EOF*/
      142:      146:  561:/*EOF*/
      142:      146:  562:/*EOF*/
      142:      146:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
      142:      146:  567:/*EOF*/
        -:        -:  568:/*EOF*/
      142:      146:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       36:       44:  571:/*EOF*/
       36:       44:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
      106:      102:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
      106:      102:  580:/*EOF*/
      106:      102:  581:/*EOF*/
      102:       98:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        4:        4:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
      106:      102:  587:/*EOF*/
      130:      122:  588:/*EOF*/
       28:       24:  589:/*EOF*/
       18:       14:  590:/*EOF*/
       18:       14:  591:/*EOF*/
       18:       14:  592:/*EOF*/
        -:        -:  593:/*EOF*/
       84:       84:  594:/*EOF*/
       84:       84:  595:/*EOF*/
       84:       84:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        4:        4:  599:/*EOF*/
        4:        4:  600:/*EOF*/
        4:        4:  601:/*EOF*/
        4:        4:  602:/*EOF*/
        4:        4:  603:/*EOF*/
        4:        4:  604:/*EOF*/
        4:        4:  605:/*EOF*/
        4:        4:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        4:        4:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        4:        4:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        4:        4:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
      142:      146:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        7:        7:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        7:        7:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        7:        7:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        7:        7:  659:/*EOF*/
        7:        7:  660:/*EOF*/
        7:        7:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        7:        7:  664:/*EOF*/
        7:        7:  665:/*EOF*/
        7:        7:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        7:        7:  668:/*EOF*/
        7:        7:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        7:        7:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        2:        2:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        2:        2:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        2:        2:  749:/*EOF*/
        2:        2:  750:/*EOF*/
        2:        2:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        2:        2:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        2:        2:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        2:        2:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        2:        2:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        2:        2:  764:/*EOF*/
        2:        2:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        2:        2:  767:/*EOF*/
        2:        2:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        2:        2:  771:/*EOF*/
        2:        2:  772:/*EOF*/
        2:        2:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        2:        2:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        5:        5:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        5:        5:  794:/*EOF*/
        5:        5:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        5:        5:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        5:        5:  801:/*EOF*/
        5:        5:  802:/*EOF*/
        5:        5:  803:/*EOF*/
        5:        5:  804:/*EOF*/
        5:        5:  805:/*EOF*/
        5:        5:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        5:        5:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
        -:        -:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
      214:      223:  892:/*EOF*/
        -:        -:  893:/*EOF*/
      214:      223:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
      214:      223:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      214:      223:  902:/*EOF*/
      214:      223:  903:/*EOF*/
      214:      223:  904:/*EOF*/
        -:        -:  905:/*EOF*/
      214:      223:  906:/*EOF*/
      214:      223:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
       54:       58:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
       54:       58:  914:/*EOF*/
       54:       58:  915:/*EOF*/
       54:       58:  916:/*EOF*/
       54:       58:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
       51:       51:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
       51:       51:  925:/*EOF*/
       51:       51:  926:/*EOF*/
        -:        -:  927:/*EOF*/
       51:       51:  928:/*EOF*/
       51:       51:  929:/*EOF*/
       51:       51:  930:/*EOF*/
       51:       51:  931:/*EOF*/
       51:       51:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
       54:       54:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
       54:       54:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
       18:       18:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
       18:       18:  949:/*EOF*/
       18:       18:  950:/*EOF*/
        -:        -:  951:/*EOF*/
       18:       18:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       18:       18:  954:/*EOF*/
        -:        -:  955:/*EOF*/
       18:       18:  956:/*EOF*/
        -:        -:  957:/*EOF*/
       18:       18:  958:/*EOF*/
       18:       18:  959:/*EOF*/
       18:       18:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
       18:       18:  964:/*EOF*/
       18:       18:  965:/*EOF*/
       18:       18:  966:/*EOF*/
        -:        -:  967:/*EOF*/
       18:       18:  968:/*EOF*/
       18:       18:  969:/*EOF*/
       18:       18:  970:/*EOF*/
        -:        -:  971:/*EOF*/
       18:       18:  972:/*EOF*/
       18:       18:  973:/*EOF*/
       18:       18:  974:/*EOF*/
       18:       18:  975:/*EOF*/
       18:       18:  976:/*EOF*/
       18:       18:  977:/*EOF*/
       18:       18:  978:/*EOF*/
       18:       18:  979:/*EOF*/
       18:       18:  980:/*EOF*/
       18:       18:  981:/*EOF*/
        -:        -:  982:/*EOF*/
       18:       18:  983:/*EOF*/
       18:       18:  984:/*EOF*/
       18:       18:  985:/*EOF*/
       18:       18:  986:/*EOF*/
       18:       18:  987:/*EOF*/
       18:       18:  988:/*EOF*/
       18:       18:  989:/*EOF*/
       18:       18:  990:/*EOF*/
       18:       18:  991:/*EOF*/
       18:       18:  992:/*EOF*/
        -:        -:  993:/*EOF*/
       18:       18:  994:/*EOF*/
       18:       18:  995:/*EOF*/
       18:       18:  996:/*EOF*/
       18:       18:  997:/*EOF*/
       18:       18:  998:/*EOF*/
       18:       18:  999:/*EOF*/
       18:       18: 1000:/*EOF*/
       18:       18: 1001:/*EOF*/
       18:       18: 1002:/*EOF*/
       18:       18: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
       18:       18: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       18:       18: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        4:        4: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
       12:       12: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        4:        4: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
       18:       18: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
       42:       46: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
       42:       46: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
       42:       46: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
       42:       46: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
       17:       17: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
       24:       24: 1182:/*EOF*/
        7:        7: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
       10:       10: 1185:/*EOF*/
       10:       10: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
       24:       24: 1189:/*EOF*/
       14:       14: 1190:/*EOF*/
        7:        7: 1191:/*EOF*/
       10:       10: 1192:/*EOF*/
       10:       10: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
       17:       17: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
       18:       18: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
       36:       36: 1225:/*EOF*/
       36:       36: 1226:/*EOF*/
       36:       36: 1227:/*EOF*/
       18:       18: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
       18:       18: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
       18:       18: 1235:/*EOF*/
       18:       18: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
       18:       18: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
       18:       18: 1242:/*EOF*/
       18:       18: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
       18:       18: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
       18:       18: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
       18:       18: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        8:        8: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        8:        8: 1268:/*EOF*/
        8:        8: 1269:/*EOF*/
        8:        8: 1270:/*EOF*/
        8:        8: 1271:/*EOF*/
        8:        8: 1272:/*EOF*/
        8:        8: 1273:/*EOF*/
        8:        8: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
    #####:    #####: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
    #####:    #####: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
    #####:    #####: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        2:        3: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        2:        3: 1358:/*EOF*/
        2:        3: 1359:/*EOF*/
        2:        3: 1360:/*EOF*/
        2:        3: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
       18:       14: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
       18:       14: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
       18:       14: 1392:/*EOF*/
       18:       14: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
       18:       14: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
       18:       14: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
       18:       14: 1403:/*EOF*/
       18:       14: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        4:        8: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        4:        8: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
    #####:    #####: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        4:        8: 1418:/*EOF*/
        4:        8: 1419:/*EOF*/
        4:        8: 1420:/*EOF*/
        4:        8: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        4:        8: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        4:        8: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
       18:       14: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
       18:       14: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
       18:       14: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
       18:       14: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
       18:       14: 1456:/*EOF*/
       18:       14: 1457:/*EOF*/
       18:       14: 1458:/*EOF*/
       18:       14: 1459:/*EOF*/
       18:       14: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
       18:       14: 1474:/*EOF*/
       18:       14: 1475:/*EOF*/
       18:       14: 1476:/*EOF*/
       18:       14: 1477:/*EOF*/
       18:       14: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
       18:       14: 1481:/*EOF*/
       18:       14: 1482:/*EOF*/
       18:       14: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
       18:       14: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
       18:       14: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
       18:       14: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
       18:       14: 1578:/*EOF*/
       18:       14: 1579:/*EOF*/
       18:       14: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
       18:       14: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
       18:       14: 1584:/*EOF*/
       18:       14: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
       18:       14: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
       18:       14: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
       18:       14: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
       18:       14: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
    #####:    #####: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
       18:       14: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
       18:       14: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
       18:       14: 1686:/*EOF*/
       18:       14: 1687:/*EOF*/
       18:       14: 1688:/*EOF*/
       18:       14: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
       18:       14: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
       18:       14: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
       18:       14: 1713:/*EOF*/
       18:       14: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
       18:       14: 1717:/*EOF*/
       18:       14: 1718:/*EOF*/
       18:       14: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
       18:       14: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       18:       14: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
       18:       14: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
       18:       14: 1735:/*EOF*/
       18:       14: 1736:/*EOF*/
       18:       14: 1737:/*EOF*/
       18:       14: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
       18:       14: 1747:/*EOF*/
       18:       14: 1748:/*EOF*/
       18:       14: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
       18:       14: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
       18:       14: 1756:/*EOF*/
       18:       14: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
       18:       14: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        8:       12: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        8:       12: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        8:       12: 1770:/*EOF*/
        8:       12: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        8:       12: 1774:/*EOF*/
        8:       12: 1775:/*EOF*/
        8:       12: 1776:/*EOF*/
        8:       12: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
    #####:    #####: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        8:       12: 1785:/*EOF*/
        8:       12: 1786:/*EOF*/
        8:       12: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        8:       12: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
    #####:    #####: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
    #####:    #####: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
    #####:    #####: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        4:        8: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        4:        8: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        4:        8: 1859:/*EOF*/
        4:        8: 1860:/*EOF*/
        4:        8: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
    #####:    #####: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        4:        8: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        4:        8: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        4:        8: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        4:        8: 1920:/*EOF*/
        4:        8: 1921:/*EOF*/
        4:        8: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        4:        8: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        4:        8: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        4:        8: 1934:/*EOF*/
        4:        8: 1935:/*EOF*/
        4:        8: 1936:/*EOF*/
        4:        8: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        4:        8: 1940:/*EOF*/
        4:        8: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        4:        8: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        4:        8: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        4:        8: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
    #####:    #####: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
       22:       26: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
       22:       26: 2004:/*EOF*/
       22:       26: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
       22:       26: 2007:/*EOF*/
       22:       26: 2008:/*EOF*/
       22:       26: 2009:/*EOF*/
       22:       26: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
       22:       26: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
       22:       26: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
    #####:    #####: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
       12:       12: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
       12:       12: 2073:/*EOF*/
       12:       12: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
       12:       12: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
       12:       12: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
       12:       12: 2081:/*EOF*/
       12:       12: 2082:/*EOF*/
       12:       12: 2083:/*EOF*/
       12:       12: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
       12:       12: 2087:/*EOF*/
       12:       12: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
       12:       12: 2095:/*EOF*/
       12:       12: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
       12:       12: 2100:/*EOF*/
       12:       12: 2101:/*EOF*/
       12:       12: 2102:/*EOF*/
       12:       12: 2103:/*EOF*/
       12:       12: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
       12:       12: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
       12:       12: 2109:/*EOF*/
       12:       12: 2110:/*EOF*/
       12:       12: 2111:/*EOF*/
       12:       12: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
    #####:    #####: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
    #####:    #####: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
    #####:    #####: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
    #####:    #####: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
    #####:    #####: 2376:/*EOF*/
    #####:    #####: 2377:/*EOF*/
    #####:    #####: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
    #####:    #####: 2381:/*EOF*/
    #####:    #####: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
    #####:    #####: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
    #####:    #####: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
    #####:    #####: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
    #####:    #####: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        5:        5: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        5:        5: 2428:/*EOF*/
        5:        5: 2429:/*EOF*/
        5:        5: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        5:        5: 2436:/*EOF*/
        3:        3: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        2:        2: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        5:        5: 2441:/*EOF*/
        5:        5: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
    #####:    #####: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        5:        5: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        5:        5: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        5:        5: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        5:        5: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
    #####:    #####: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        5:        5: 2461:/*EOF*/
        5:        5: 2462:/*EOF*/
        5:        5: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        5:        5: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
    #####:    #####: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
    #####:    #####: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
    #####:    #####: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
    #####:    #####: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
    #####:    #####: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
    #####:    #####: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
    #####:    #####: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
    #####:    #####: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
    #####:    #####: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
    #####:    #####: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
    #####:    #####: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
    #####:    #####: 2601:/*EOF*/
    #####:    #####: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        2:        2: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        2:        2: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        2:        2: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        2:        2: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
    #####:    #####: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        2:        2: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        2:        2: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        2:        2: 2644:/*EOF*/
        2:        2: 2645:/*EOF*/
        2:        2: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        2:        2: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        2:        2: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        2:        2: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
    #####:    #####: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
    #####:    #####: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
    #####:    #####: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
    #####:    #####: 2698:/*EOF*/
    #####:    #####: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
    #####:    #####: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
    #####:    #####: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
    #####:    #####: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
    #####:    #####: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
    #####:    #####: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
    #####:    #####: 2753:/*EOF*/
    #####:    #####: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
      123:      259: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
      123:      259: 2763:/*EOF*/
      369:      777: 2764:/*EOF*/
      246:      518: 2765:/*EOF*/
      123:      259: 2766:/*EOF*/
      123:      259: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
      212:      220: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
      212:      220: 2775:/*EOF*/
      212:      220: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
      212:      220: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
     4413:     5029: 2780:/*EOF*/
     4201:     4809: 2781:/*EOF*/
     3989:     4589: 2782:/*EOF*/
     4096:     4700: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
     4096:     4700: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
      397:      365: 2787:/*EOF*/
      397:      365: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
      445:      401: 2790:/*EOF*/
       48:       36: 2791:/*EOF*/
      397:      365: 2792:/*EOF*/
      397:      365: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
      115:      243: 2798:/*EOF*/
       56:      168: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
       59:       75: 2803:/*EOF*/
       59:       75: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
      105:      109: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        8:       12: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        8:       12: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        8:       12: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        8:       12: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
      103:      127: 2827:/*EOF*/
       95:      115: 2828:/*EOF*/
       87:      103: 2829:/*EOF*/
       95:      115: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
       95:      115: 2832:/*EOF*/
        8:       16: 2833:/*EOF*/
        8:       12: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        7:        7: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        7:        7: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        7:        7: 2849:/*EOF*/
        7:        7: 2850:/*EOF*/
        7:        7: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        7:        7: 2853:/*EOF*/
    #####:    #####: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
      219:      227: 2856:/*EOF*/
      212:      220: 2857:/*EOF*/
      212:      220: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
      212:      220: 2860:/*EOF*/
      212:      220: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        8:       12: 2863:/*EOF*/
        8:       12: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        8:       12: 2866:/*EOF*/
       16:       24: 2867:/*EOF*/
        8:       12: 2868:/*EOF*/
        8:       12: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
    #####:    #####: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
       18:       14: 2881:/*EOF*/
       18:       14: 2882:/*EOF*/
       18:       14: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
       18:       14: 2886:/*EOF*/
       18:       14: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
    #####:    #####: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
    #####:    #####: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
    #####:    #####: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
    #####:    #####: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
    #####:    #####: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
    #####:    #####: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
    #####:    #####: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
    #####:    #####: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
    #####:    #####: 3014:/*EOF*/
    #####:    #####: 3015:/*EOF*/
    #####:    #####: 3016:/*EOF*/
    #####:    #####: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
    #####:    #####: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
    #####:    #####: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
    #####:    #####: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
    #####:    #####: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
    #####:    #####: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
    #####:    #####: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
    #####:    #####: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
    #####:    #####: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
    #####:    #####: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
    #####:    #####: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
    #####:    #####: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
    #####:    #####: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
    #####:    #####: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
    #####:    #####: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
    #####:    #####: 3126:/*EOF*/
    #####:    #####: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
    #####:    #####: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
    #####:    #####: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
    #####:    #####: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
    #####:    #####: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
    #####:    #####: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
    #####:    #####: 3168:/*EOF*/
    #####:    #####: 3169:/*EOF*/
    #####:    #####: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
    #####:    #####: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
    #####:    #####: 3193:/*EOF*/
    #####:    #####: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
    #####:    #####: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
    #####:    #####: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
    #####:    #####: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
    #####:    #####: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
    #####:    #####: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
    #####:    #####: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
    #####:    #####: 3297:/*EOF*/
    #####:    #####: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
    #####:    #####: 3305:/*EOF*/
    #####:    #####: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
    #####:    #####: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
    #####:    #####: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
    #####:    #####: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
    #####:    #####: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
    #####:    #####: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
    #####:    #####: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
    #####:    #####: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
    #####:    #####: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
    #####:    #####: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
    #####:    #####: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
    #####:    #####: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
    #####:    #####: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
    #####:    #####: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
    #####:    #####: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
    #####:    #####: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
    #####:    #####: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
    #####:    #####: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
    #####:    #####: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
    #####:    #####: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
    #####:    #####: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
    #####:    #####: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
    #####:    #####: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
    #####:    #####: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
    #####:    #####: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
    #####:    #####: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
    #####:    #####: 3552:/*EOF*/
    #####:    #####: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
    #####:    #####: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
    #####:    #####: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
    #####:    #####: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
    #####:    #####: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
    #####:    #####: 3574:/*EOF*/
    #####:    #####: 3575:/*EOF*/
    #####:    #####: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
    #####:    #####: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
    #####:    #####: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
    #####:    #####: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
    #####:    #####: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
    #####:    #####: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
    #####:    #####: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
    #####:    #####: 3619:/*EOF*/
    #####:    #####: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
    #####:    #####: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
    #####:    #####: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
    #####:    #####: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
    #####:    #####: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
    #####:    #####: 3664:/*EOF*/
    #####:    #####: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
    #####:    #####: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
    #####:    #####: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
    #####:    #####: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
    #####:    #####: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
    #####:    #####: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
    #####:    #####: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
    #####:    #####: 3702:/*EOF*/
    #####:    #####: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
    #####:    #####: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
    #####:    #####: 3719:/*EOF*/
    #####:    #####: 3720:/*EOF*/
    #####:    #####: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
    #####:    #####: 3724:/*EOF*/
    #####:    #####: 3725:/*EOF*/

src/intel/compiler/brw_eu.h.gcov

        -:        -:    0:Source:compiler/brw_eu.h
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
      402:      426:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      402:      426:  595:/*EOF*/
      402:      426:  596:/*EOF*/

src/intel/compiler/brw_eu_validate.c.gcov

        -:        -:    0:Source:compiler/brw_eu_validate.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_eu_validate.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_eu_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      514:      538:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      514:      538:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       12:       12:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      502:      526:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      274:      290:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      325:      357:  112:/*EOF*/
       51:       67:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
      146:      154:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      146:      154:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       73:       77:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       73:       77:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       12:       12:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       34:       34:  139:/*EOF*/
       22:       22:  140:/*EOF*/
       10:       10:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        2:        2:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        4:        4:  148:/*EOF*/
        2:        2:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      987:     1027:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      987:     1027:  156:/*EOF*/
      987:     1027:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      987:     1027:  160:/*EOF*/
       60:       60:  161:/*EOF*/
      927:      967:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
      927:      967:  180:/*EOF*/
      927:      967:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       60:       60:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       60:       60:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
      212:      220:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      212:      220:  211:/*EOF*/
      212:      220:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
      212:      220:  217:/*EOF*/
       18:       18:  218:/*EOF*/
        -:        -:  219:/*EOF*/
      194:      202:  220:/*EOF*/
      146:      154:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      194:      202:  223:/*EOF*/
       73:       77:  224:/*EOF*/
        -:        -:  225:/*EOF*/
      194:      202:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      212:      220:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      212:      220:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      212:      220:  235:/*EOF*/
        2:        2:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        2:        2:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      212:      220:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      212:      220:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
      212:      220:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
      212:      224:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      212:      224:  263:/*EOF*/
       34:       42:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        3:        3:  267:/*EOF*/
        3:        3:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        1:        1:  270:/*EOF*/
        1:        1:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       30:       38:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      212:      224:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       59:       63:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       10:       10:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      143:      151:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
      139:      147:  308:/*EOF*/
        -:        -:  309:/*EOF*/
      139:      147:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      139:      147:  312:/*EOF*/
      139:      147:  313:/*EOF*/
        -:        -:  314:/*EOF*/
      139:      147:  315:/*EOF*/
      139:      147:  316:/*EOF*/
      139:      147:  317:/*EOF*/
      139:      147:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      139:      147:  323:/*EOF*/
        -:        -:  324:/*EOF*/
      139:      147:  325:/*EOF*/
      139:      147:  326:/*EOF*/
       66:       70:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       66:       70:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       73:       77:  334:/*EOF*/
       73:       77:  335:/*EOF*/
       73:       77:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      112:      112:  383:/*EOF*/
        -:        -:  384:/*EOF*/
      112:      112:  385:/*EOF*/
       90:       90:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       90:       90:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       22:       22:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      212:      220:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
      212:      220:  404:/*EOF*/
      212:      220:  405:/*EOF*/
      212:      220:  406:/*EOF*/
      212:      220:  407:/*EOF*/
      212:      220:  408:/*EOF*/
        -:        -:  409:/*EOF*/
      212:      220:  410:/*EOF*/
       18:       18:  411:/*EOF*/
        -:        -:  412:/*EOF*/
      194:      202:  413:/*EOF*/
        7:        7:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      187:      195:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
      187:      195:  419:/*EOF*/
       48:       48:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      139:      147:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
      139:      147:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
      139:      147:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      139:      147:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
      139:      147:  449:/*EOF*/
      139:      147:  450:/*EOF*/
      278:      294:  451:/*EOF*/
      139:      147:  452:/*EOF*/
        -:        -:  453:/*EOF*/
      139:      147:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      139:      147:  465:/*EOF*/
      139:      147:  466:/*EOF*/
        -:        -:  467:/*EOF*/
      139:      147:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
      139:      147:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      139:      147:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
      139:      147:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      212:      220:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      212:      220:  517:/*EOF*/
      212:      220:  518:/*EOF*/
      212:      220:  519:/*EOF*/
      212:      220:  520:/*EOF*/
      212:      220:  521:/*EOF*/
        -:        -:  522:/*EOF*/
      212:      220:  523:/*EOF*/
       18:       18:  524:/*EOF*/
        -:        -:  525:/*EOF*/
      194:      202:  526:/*EOF*/
       13:       13:  527:/*EOF*/
       11:       11:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       13:       13:  531:/*EOF*/
       13:       13:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       13:       13:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
       13:       13:  546:/*EOF*/
        4:        4:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        4:        4:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
       13:       13:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
      383:      403:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
      202:      214:  580:/*EOF*/
      133:      141:  581:/*EOF*/
       69:       73:  582:/*EOF*/
       69:       73:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      171:      175:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
      171:      175:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
      171:      175:  602:/*EOF*/
       70:       72:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
      171:      175:  611:/*EOF*/
       34:       34:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      171:      175:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
      171:      175:  627:/*EOF*/
       34:       34:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      171:      175:  636:/*EOF*/
      171:      175:  637:/*EOF*/
        -:        -:  638:/*EOF*/
      789:      799:  639:/*EOF*/
      618:      624:  640:/*EOF*/
      618:      624:  641:/*EOF*/
        -:        -:  642:/*EOF*/
     2630:     2684:  643:/*EOF*/
     2012:     2060:  644:/*EOF*/
     2012:     2060:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
      618:      624:  648:/*EOF*/
        -:        -:  649:/*EOF*/
      618:      624:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
      181:      189:  658:/*EOF*/
      106:      106:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
      181:      189:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
      272:      276:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
      272:      276:  689:/*EOF*/
      272:      276:  690:/*EOF*/
      272:      276:  691:/*EOF*/
        -:        -:  692:/*EOF*/
      988:      998:  693:/*EOF*/
      716:      722:  694:/*EOF*/
        -:        -:  695:/*EOF*/
     3892:     3946:  696:/*EOF*/
     3176:     3224:  697:/*EOF*/
     3176:     3224:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
      716:      722:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
      272:      276:  704:/*EOF*/
      272:      276:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
      318:      318:  711:/*EOF*/
        -:        -:  712:/*EOF*/
      318:      318:  713:/*EOF*/
        -:        -:  714:/*EOF*/
     8352:     8352:  715:/*EOF*/
     8123:     8123:  716:/*EOF*/
       89:       89:  717:/*EOF*/
     8034:     8034:  718:/*EOF*/
     2038:     2038:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
      229:      229:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
      212:      220:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
      212:      220:  734:/*EOF*/
      212:      220:  735:/*EOF*/
      212:      220:  736:/*EOF*/
      212:      220:  737:/*EOF*/
        -:        -:  738:/*EOF*/
      212:      220:  739:/*EOF*/
        -:        -:  740:/*EOF*/
      212:      220:  741:/*EOF*/
       18:       18:  742:/*EOF*/
        -:        -:  743:/*EOF*/
      194:      202:  744:/*EOF*/
       13:       13:  745:/*EOF*/
        -:        -:  746:/*EOF*/
      181:      189:  747:/*EOF*/
        5:        5:  748:/*EOF*/
        -:        -:  749:/*EOF*/
      176:      184:  750:/*EOF*/
      176:      184:  751:/*EOF*/
      176:      184:  752:/*EOF*/
        -:        -:  753:/*EOF*/
      373:      393:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
      197:      209:  781:/*EOF*/
      128:      136:  782:/*EOF*/
       69:       73:  783:/*EOF*/
       69:       73:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
      166:      170:  788:/*EOF*/
      166:      170:  789:/*EOF*/
      166:      170:  790:/*EOF*/
      166:      170:  791:/*EOF*/
      166:      170:  792:/*EOF*/
        -:        -:  793:/*EOF*/
      166:      170:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
      176:      184:  798:/*EOF*/
       70:       78:  799:/*EOF*/
        -:        -:  800:/*EOF*/
      106:      106:  801:/*EOF*/
      106:      106:  802:/*EOF*/
      106:      106:  803:/*EOF*/
      106:      106:  804:/*EOF*/
      106:      106:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
      106:      106:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
      106:      106:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
      106:      106:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
      106:      106:  824:/*EOF*/
      106:      106:  825:/*EOF*/
      106:      106:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
      106:      106:  842:/*EOF*/
      106:      106:  843:/*EOF*/
        1:        1:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        5:        5:  846:/*EOF*/
        4:        4:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        4:        4:  850:/*EOF*/
        4:        4:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        1:        1:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
      106:      106:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
      106:      106:  895:/*EOF*/
       45:       45:  896:/*EOF*/
        -:        -:  897:/*EOF*/
      765:      765:  898:/*EOF*/
      720:      720:  899:/*EOF*/
      360:      360:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      360:      360:  902:/*EOF*/
      360:      360:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       45:       45:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
      106:      106:  942:/*EOF*/
      112:      112:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
       67:       67:  972:/*EOF*/
       45:       45:  973:/*EOF*/
       22:       22:  974:/*EOF*/
       22:       22:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
      106:      106: 1007:/*EOF*/
       45:       45: 1008:/*EOF*/
       90:       90: 1009:/*EOF*/
       45:       45: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
      112:      112: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
       67:       67: 1032:/*EOF*/
       45:       45: 1033:/*EOF*/
       22:       22: 1034:/*EOF*/
       22:       22: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
      106:      106: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        7:        7: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        7:        7: 1048:/*EOF*/
        7:        7: 1049:/*EOF*/
        7:        7: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
      226:      234: 1052:/*EOF*/
      212:      220: 1053:/*EOF*/
      212:      220: 1054:/*EOF*/
      212:      220: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
      212:      220: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
      212:      220: 1060:/*EOF*/
      212:      220: 1061:/*EOF*/
      212:      220: 1062:/*EOF*/
      212:      220: 1063:/*EOF*/
      212:      220: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
      212:      220: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
      212:      220: 1070:/*EOF*/
      212:      220: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        7:        7: 1074:/*EOF*/

src/intel/compiler/brw_fs_cmod_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cmod_propagation.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      152:      254:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      152:      254:   54:/*EOF*/
      152:      254:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      873:     1244:   57:/*EOF*/
      721:      990:   58:/*EOF*/
        -:        -:   59:/*EOF*/
     2163:     2970:   60:/*EOF*/
     1376:     1876:   61:/*EOF*/
      934:     1255:   62:/*EOF*/
      558:      738:   63:/*EOF*/
      345:      489:   64:/*EOF*/
      845:     1210:   65:/*EOF*/
       58:      100:   66:/*EOF*/
      663:      890:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       58:      100:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       58:      100:   82:/*EOF*/
       28:       54:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       48:       76:   85:/*EOF*/
       18:       30:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       30:       46:   89:/*EOF*/
       30:       46:   90:/*EOF*/
       36:       44:   91:/*EOF*/
       18:       22:   92:/*EOF*/
       54:       66:   93:/*EOF*/
       36:       44:   94:/*EOF*/
       18:       22:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       36:       44:   99:/*EOF*/
       36:       44:  100:/*EOF*/
       18:       22:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
       18:       22:  103:/*EOF*/
       18:       22:  104:/*EOF*/
       18:       22:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      152:      254:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       12:       14:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       12:       14:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      164:      268:  175:/*EOF*/
      152:      254:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
       12:       14:  179:/*EOF*/
        2:        2:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       12:       14:  182:/*EOF*/
        3:        3:  183:/*EOF*/

src/intel/compiler/brw_fs_combine_constants.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_combine_constants.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_combine_constants.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_combine_constants.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      206:      218:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      206:      218:   50:/*EOF*/
      206:      218:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      206:      218:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      206:      218:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      188:      200:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        5:        5:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        5:        5:  199:/*EOF*/
        5:        5:  200:/*EOF*/
        5:        5:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        5:        5:  203:/*EOF*/
        5:        5:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      211:      223:  210:/*EOF*/
      206:      218:  211:/*EOF*/
        -:        -:  212:/*EOF*/
      206:      218:  213:/*EOF*/
      188:      200:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       72:       72:  216:/*EOF*/
       54:       54:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
       54:       54:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        5:        5:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        5:        5:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        3:        3:  329:/*EOF*/

src/intel/compiler/brw_fs_copy_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_copy_propagation.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_copy_propagation.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       17:       19:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       17:       19:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       17:       19:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       17:       19:  110:/*EOF*/
      218:      346:  111:/*EOF*/
     3417:     5559:  112:/*EOF*/
     3216:     5232:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       17:       19:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       17:       19:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       17:       19:  121:/*EOF*/
      218:      346:  122:/*EOF*/
      201:      327:  123:/*EOF*/
      201:      327:  124:/*EOF*/
      201:      327:  125:/*EOF*/
      201:      327:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     3417:     5559:  128:/*EOF*/
     3413:     5455:  129:/*EOF*/
      197:      223:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      197:      223:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      197:      223:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       17:       19:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       17:       19:  145:/*EOF*/
       17:       19:  146:/*EOF*/
       17:       19:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       17:       19:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      218:      346:  157:/*EOF*/
     1131:     1566:  158:/*EOF*/
      930:     1239:  159:/*EOF*/
      336:      536:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    15515:    17209:  163:/*EOF*/
    44763:    49518:  164:/*EOF*/
    59423:    65721:  165:/*EOF*/
    29320:    32406:  166:/*EOF*/
    29320:    32406:  167:/*EOF*/
      347:      391:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      218:      346:  179:/*EOF*/
      201:      327:  180:/*EOF*/
       54:       82:  181:/*EOF*/
       29:       47:  182:/*EOF*/
       29:       47:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      396:      652:  186:/*EOF*/
      220:      360:  187:/*EOF*/
      220:      360:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       17:       19:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       93:      141:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       93:      141:  203:/*EOF*/
       93:      141:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     2106:     4242:  207:/*EOF*/
     2013:     4101:  208:/*EOF*/
      165:      285:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     4092:     8244:  211:/*EOF*/
     2244:     4428:  212:/*EOF*/
        -:        -:  213:/*EOF*/
     2244:     4428:  214:/*EOF*/
     4488:     8856:  215:/*EOF*/
     4488:     8856:  216:/*EOF*/
        -:        -:  217:/*EOF*/
     2244:     4428:  218:/*EOF*/
      828:     1294:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
     2106:     4242:  226:/*EOF*/
     2013:     4101:  227:/*EOF*/
      165:      285:  228:/*EOF*/
        -:        -:  229:/*EOF*/
     4092:     8244:  230:/*EOF*/
     2244:     4428:  231:/*EOF*/
        -:        -:  232:/*EOF*/
     2244:     4428:  233:/*EOF*/
     5550:    10926:  234:/*EOF*/
     3306:     6498:  235:/*EOF*/
     3306:     6498:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
     2244:     4428:  239:/*EOF*/
      628:      956:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       17:       19:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       38:       38:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       38:       38:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       38:       38:  299:/*EOF*/
       10:       10:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       10:       10:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       28:       28:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       28:       28:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      192:      256:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      192:      256:  338:/*EOF*/
        3:        3:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      189:      253:  341:/*EOF*/
       19:       56:  342:/*EOF*/
      277:      334:  343:/*EOF*/
      170:      197:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      170:      197:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      170:      197:  350:/*EOF*/
      170:      197:  351:/*EOF*/
       57:       76:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      113:      121:  357:/*EOF*/
      113:      121:  358:/*EOF*/
       50:       52:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       63:       69:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       63:       69:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      134:      146:  372:/*EOF*/
      126:      138:  373:/*EOF*/
       55:       61:  374:/*EOF*/
       25:       31:  375:/*EOF*/
        -:        -:  376:/*EOF*/
       38:       38:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       38:       38:  384:/*EOF*/
       38:       38:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       38:       38:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       68:       68:  409:/*EOF*/
       60:       60:  410:/*EOF*/
       60:       60:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
       38:       38:  420:/*EOF*/
       38:       38:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
       38:       38:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
       38:       38:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       38:       38:  447:/*EOF*/
       38:       38:  448:/*EOF*/
       38:       38:  449:/*EOF*/
       38:       38:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       38:       38:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
       38:       38:  458:/*EOF*/
       38:       38:  459:/*EOF*/
       38:       38:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
       38:       38:  465:/*EOF*/
       76:       76:  466:/*EOF*/
       76:       76:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       38:       38:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       38:       38:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
      216:      286:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      216:      286:  495:/*EOF*/
        -:        -:  496:/*EOF*/
      216:      286:  497:/*EOF*/
      172:      199:  498:/*EOF*/
       44:       87:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
       44:       87:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      118:      243:  504:/*EOF*/
       74:      156:  505:/*EOF*/
       62:      150:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       62:      120:  508:/*EOF*/
       62:      120:  509:/*EOF*/
       38:       78:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
       24:       42:  515:/*EOF*/
       24:       42:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       24:       42:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       24:       42:  527:/*EOF*/
       24:       42:  528:/*EOF*/
        -:        -:  529:/*EOF*/
       24:       42:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
       24:       42:  537:/*EOF*/
    #####:        8:  538:/*EOF*/
    #####:        4:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       24:       42:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
       12:       14:  548:/*EOF*/
       12:       14:  549:/*EOF*/
       12:       14:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        8:        8:  585:/*EOF*/
        8:        8:  586:/*EOF*/
        8:        8:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        8:        8:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        4:       20:  614:/*EOF*/
        4:        8:  615:/*EOF*/
        4:        8:  616:/*EOF*/
    #####:       12:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        4:       20:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       44:       87:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
     1860:     2478:  722:/*EOF*/
        -:        -:  723:/*EOF*/
     2346:     3076:  724:/*EOF*/
      936:     1112:  725:/*EOF*/
      632:      708:  726:/*EOF*/
      364:      388:  727:/*EOF*/
      632:      708:  728:/*EOF*/
      536:      640:  729:/*EOF*/
      432:      520:  730:/*EOF*/
      610:      710:  731:/*EOF*/
     2700:     3434:  732:/*EOF*/
     2254:     2924:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
      402:      654:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
      402:      654:  743:/*EOF*/
        -:        -:  744:/*EOF*/
     2262:     3132:  745:/*EOF*/
        -:        -:  746:/*EOF*/
     4216:     5418:  747:/*EOF*/
     2356:     2940:  748:/*EOF*/
      864:     1082:  749:/*EOF*/
        -:        -:  750:/*EOF*/
     1708:     2144:  751:/*EOF*/
      216:      286:  752:/*EOF*/
       24:       30:  753:/*EOF*/
      192:      256:  754:/*EOF*/
       38:       38:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
     1860:     2478:  760:/*EOF*/
     1363:     1625:  761:/*EOF*/
      175:      219:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:       12:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    20196:    23902:  770:/*EOF*/
    21648:    25986:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
     2640:     3490:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
     1860:     2478:  785:/*EOF*/
      394:      446:  786:/*EOF*/
      394:      446:  787:/*EOF*/
      394:      446:  788:/*EOF*/
      394:      446:  789:/*EOF*/
      394:      446:  790:/*EOF*/
      394:      446:  791:/*EOF*/
      394:      446:  792:/*EOF*/
      394:      446:  793:/*EOF*/
     1476:     2042:  794:/*EOF*/
       10:       10:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
      402:      654:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
       17:       19:  824:/*EOF*/
        -:        -:  825:/*EOF*/
       17:       19:  826:/*EOF*/
       17:       19:  827:/*EOF*/
       17:       19:  828:/*EOF*/
        -:        -:  829:/*EOF*/
      218:      346:  830:/*EOF*/
      201:      327:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
      218:      346:  836:/*EOF*/
      201:      327:  837:/*EOF*/
      402:      654:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
       17:       19:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
      218:      346:  847:/*EOF*/
      201:      327:  848:/*EOF*/
        -:        -:  849:/*EOF*/
     4810:     7862:  850:/*EOF*/
     4609:     7535:  851:/*EOF*/
      536:     1148:  852:/*EOF*/
      536:     1148:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
      201:      327:  857:/*EOF*/
      201:      327:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
      218:      346:  861:/*EOF*/
      201:      327:  862:/*EOF*/
       17:       19:  863:/*EOF*/
        -:        -:  864:/*EOF*/
       17:       19:  865:/*EOF*/
        6:        8:  866:/*EOF*/
        -:        -:  867:/*EOF*/
       34:       38:  868:/*EOF*/
        3:        3:  869:/*EOF*/

src/intel/compiler/brw_fs.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      367:      419:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      367:      419:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      367:      419:   54:/*EOF*/
      810:      878:   55:/*EOF*/
      443:      459:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      367:      419:   58:/*EOF*/
      367:      419:   59:/*EOF*/
      367:      419:   60:/*EOF*/
      367:      419:   61:/*EOF*/
      367:      419:   62:/*EOF*/
        -:        -:   63:/*EOF*/
      367:      419:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      367:      419:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      367:      419:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      367:      419:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      291:      303:   77:/*EOF*/
      291:      303:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       76:      116:   80:/*EOF*/
       76:      116:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      367:      419:   87:/*EOF*/
      367:      419:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       71:      111:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       71:      111:   97:/*EOF*/
       71:      111:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      201:      209:  105:/*EOF*/
      201:      209:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      201:      209:  108:/*EOF*/
      201:      209:  109:/*EOF*/
      201:      209:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       73:       77:  112:/*EOF*/
       73:       77:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       73:       77:  115:/*EOF*/
       73:       77:  116:/*EOF*/
       73:       77:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       12:       12:  119:/*EOF*/
       12:       12:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       12:       12:  122:/*EOF*/
       12:       12:  123:/*EOF*/
       12:       12:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       10:       10:  126:/*EOF*/
       10:       10:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       10:       10:  129:/*EOF*/
       10:       10:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      407:      459:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      407:      459:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      407:      459:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      938:     1006:  138:/*EOF*/
      531:      547:  139:/*EOF*/
      407:      459:  140:/*EOF*/
        -:        -:  141:/*EOF*/
     1548:     1756:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      774:      878:  144:/*EOF*/
      774:      878:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        5:        5:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        5:        5:  150:/*EOF*/
        5:        5:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        5:        5:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        5:        5:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      285:      425:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      285:      425:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        5:        5:  267:/*EOF*/
        -:        -:  268:/*EOF*/
      280:      420:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      280:      420:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      104:      104:  298:/*EOF*/
        -:        -:  299:/*EOF*/
      104:      104:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      104:      104:  326:/*EOF*/
      105:      105:  327:/*EOF*/
      105:      105:  328:/*EOF*/
       80:       80:  329:/*EOF*/
       78:       78:  330:/*EOF*/
       78:       78:  331:/*EOF*/
       39:       39:  332:/*EOF*/
        2:        2:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      102:      102:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        5:        5:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        5:        5:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        5:        5:  347:/*EOF*/
        5:        5:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        5:        5:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
       23:       23:  354:/*EOF*/
       20:       20:  355:/*EOF*/
       20:       20:  356:/*EOF*/
        2:        2:  357:/*EOF*/
        -:        -:  358:/*EOF*/
       18:       18:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
       18:       18:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        3:        3:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       55:       61:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       55:       61:  372:/*EOF*/
       25:       31:  373:/*EOF*/
        -:        -:  374:/*EOF*/
       30:       30:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       30:       30:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
       30:       30:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
      513:      597:  397:/*EOF*/
        -:        -:  398:/*EOF*/
      513:      597:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     4964:     5416:  403:/*EOF*/
        -:        -:  404:/*EOF*/
     4964:     5416:  405:/*EOF*/
     4964:     5416:  406:/*EOF*/
     4964:     5416:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     4752:     5200:  410:/*EOF*/
        -:        -:  411:/*EOF*/
     4752:     5200:  412:/*EOF*/
     4752:     5200:  413:/*EOF*/
     4752:     5200:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      280:      290:  416:/*EOF*/
      280:      290:  417:/*EOF*/
        -:        -:  418:/*EOF*/
      280:      290:  419:/*EOF*/
      280:      290:  420:/*EOF*/
      335:      345:  421:/*EOF*/
      103:      103:  422:/*EOF*/
       96:       96:  423:/*EOF*/
       48:       48:  424:/*EOF*/
       48:       48:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      280:      290:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      765:      877:  430:/*EOF*/
        -:        -:  431:/*EOF*/
     1013:     1209:  432:/*EOF*/
     1013:     1209:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     4710:     5564:  437:/*EOF*/
        -:        -:  438:/*EOF*/
     4710:     5564:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    94889:   112351:  443:/*EOF*/
        -:        -:  444:/*EOF*/
   189734:   224642:  445:/*EOF*/
     4165:     4241:  446:/*EOF*/
   189778:   224702:  447:/*EOF*/
    94889:   112351:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
       62:       64:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       62:       64:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       49:       51:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
       13:       13:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
     4577:     5415:  661:/*EOF*/
        -:        -:  662:/*EOF*/
     9274:    10974:  663:/*EOF*/
     9154:    10830:  664:/*EOF*/
    13731:    16245:  665:/*EOF*/
     9154:    10830:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    94842:   112510:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    94842:   112510:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    94842:   112510:  676:/*EOF*/
        -:        -:  677:/*EOF*/
     1032:     1032:  678:/*EOF*/
     1032:     1032:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
     1120:     1288:  685:/*EOF*/
     1120:     1288:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
     2088:     2378:  689:/*EOF*/
        -:        -:  690:/*EOF*/
     2088:     2378:  691:/*EOF*/
     2088:     2378:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    90602:   107812:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    95345:   113013:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    95345:   113013:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
     1616:     1616:  806:/*EOF*/
      584:      584:  807:/*EOF*/
     1032:     1032:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
     1090:     1090:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
     1090:     1090:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    92639:   110307:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    92639:   110307:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    94761:   112429:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
     1049:     1295:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    93712:   111134:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
     1373:     2085:  854:/*EOF*/
        -:        -:  855:/*EOF*/
     1373:     2085:  856:/*EOF*/
     1373:     2085:  857:/*EOF*/
     1373:     2085:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
     4670:     5769:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
     9340:    11538:  868:/*EOF*/
     4670:     5769:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
     4670:     5769:  875:/*EOF*/
      462:      720:  876:/*EOF*/
        -:        -:  877:/*EOF*/
     4208:     5049:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
     6311:     7582:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
     7222:     8947:  888:/*EOF*/
     1822:     2730:  889:/*EOF*/
     6311:     7582:  890:/*EOF*/
     5400:     6217:  891:/*EOF*/
      911:     1365:  892:/*EOF*/
        -:        -:  893:/*EOF*/
     5400:     6217:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
       69:       69:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       69:       69:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
        -:        -:  909:/*EOF*/
       69:       69:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
       69:       69:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
       69:       69:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       19:       19:  954:/*EOF*/
        -:        -:  955:/*EOF*/
       19:       19:  956:/*EOF*/
       19:       19:  957:/*EOF*/
       38:       38:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
      212:      216:  970:/*EOF*/
        -:        -:  971:/*EOF*/
      212:      216:  972:/*EOF*/
      212:      216:  973:/*EOF*/
      212:      216:  974:/*EOF*/
      212:      216:  975:/*EOF*/
      212:      216:  976:/*EOF*/
      212:      216:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        3:        3:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        3:        3:  985:/*EOF*/
        3:        3:  986:/*EOF*/
        3:        3:  987:/*EOF*/
        3:        3:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        2:        2:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        2:        2:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        2:        2:  996:/*EOF*/
        2:        2:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        2:        2: 1000:/*EOF*/
        2:        2: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        2:        2: 1004:/*EOF*/
        2:        2: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        2:        2: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        2:        2: 1014:/*EOF*/
        2:        2: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        3:        3: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        3:        3: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        3:        3: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        3:        3: 1027:/*EOF*/
        3:        3: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        3:        3: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        3:        3: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
    #####:    #####: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        6:        6: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        6:        6: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
      214:      226: 1389:/*EOF*/
      463:      487: 1390:/*EOF*/
      255:      267: 1391:/*EOF*/
       41:       41: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
       41:       41: 1394:/*EOF*/
       41:       41: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       82:       82: 1405:/*EOF*/
       41:       41: 1406:/*EOF*/
       82:       82: 1407:/*EOF*/
       41:       41: 1408:/*EOF*/
       41:       41: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
       41:       41: 1411:/*EOF*/
       41:       41: 1412:/*EOF*/
       41:       41: 1413:/*EOF*/
       82:       82: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        6:        6: 1420:/*EOF*/
        6:        6: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        5:        5: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        5:        5: 1426:/*EOF*/
        5:        5: 1427:/*EOF*/
        5:        5: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        5:        5: 1430:/*EOF*/
        5:        5: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        5:        5: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        5:        5: 1435:/*EOF*/
        5:        5: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
      315:      315: 1447:/*EOF*/
      620:      620: 1448:/*EOF*/
      310:      310: 1449:/*EOF*/
        3:        3: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        5:        5: 1511:/*EOF*/
        5:        5: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        5:        5: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        5:        5: 1517:/*EOF*/
        5:        5: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        5:        5: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
      211:      223: 1525:/*EOF*/
      206:      218: 1526:/*EOF*/
        8:        8: 1527:/*EOF*/
        8:        8: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
      206:      218: 1531:/*EOF*/
        4:        4: 1532:/*EOF*/
        4:        4: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        5:        5: 1538:/*EOF*/
        5:        5: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
    #####:    #####: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
       10:       10: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       10:       10: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
       10:       10: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
       10:       10: 1673:/*EOF*/
       10:       10: 1674:/*EOF*/
      261:      265: 1675:/*EOF*/
      251:      255: 1676:/*EOF*/
      251:      255: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
       10:       10: 1686:/*EOF*/
       10:       10: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
      574:      638: 1690:/*EOF*/
      564:      628: 1691:/*EOF*/
      368:      372: 1692:/*EOF*/
      968:      974: 1693:/*EOF*/
      600:      602: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
     1238:     1330: 1697:/*EOF*/
      674:      702: 1698:/*EOF*/
      434:      454: 1699:/*EOF*/
      904:      970: 1700:/*EOF*/
      470:      516: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
      574:      638: 1706:/*EOF*/
      564:      628: 1707:/*EOF*/
      368:      372: 1708:/*EOF*/
      524:      530: 1709:/*EOF*/
      156:      158: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
     1238:     1330: 1712:/*EOF*/
      674:      702: 1713:/*EOF*/
      434:      454: 1714:/*EOF*/
      635:      665: 1715:/*EOF*/
      201:      211: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
       10:       10: 1721:/*EOF*/
       10:       10: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
       10:       10: 1724:/*EOF*/
      261:      265: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
      251:      255: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
      251:      255: 1730:/*EOF*/
      251:      255: 1731:/*EOF*/
      251:      255: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
      474:      480: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
      223:      225: 1739:/*EOF*/
       60:       60: 1740:/*EOF*/
       60:       60: 1741:/*EOF*/
      145:      145: 1742:/*EOF*/
       85:       85: 1743:/*EOF*/
       60:       60: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
      223:      225: 1746:/*EOF*/
      223:      225: 1747:/*EOF*/
      223:      225: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
      251:      255: 1752:/*EOF*/
      251:      255: 1753:/*EOF*/
      640:      650: 1754:/*EOF*/
      389:      395: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
       10:       10: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
      574:      638: 1759:/*EOF*/
      564:      628: 1760:/*EOF*/
      368:      372: 1761:/*EOF*/
      368:      372: 1762:/*EOF*/
      368:      372: 1763:/*EOF*/
      368:      372: 1764:/*EOF*/
      368:      372: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
     1238:     1330: 1767:/*EOF*/
      674:      702: 1768:/*EOF*/
      434:      454: 1769:/*EOF*/
      434:      454: 1770:/*EOF*/
      434:      454: 1771:/*EOF*/
      434:      454: 1772:/*EOF*/
      434:      454: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
       20:       20: 1777:/*EOF*/
       10:       10: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
       22:       24: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
       22:       24: 1792:/*EOF*/
       22:       24: 1793:/*EOF*/
       22:       24: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
     1161:     1484: 1797:/*EOF*/
     1139:     1460: 1798:/*EOF*/
      709:      818: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
     2587:     3212: 1801:/*EOF*/
     1448:     1752: 1802:/*EOF*/
      902:     1090: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
       22:       24: 1808:/*EOF*/
      676:      767: 1809:/*EOF*/
      654:      743: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
      152:      156: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
      502:      587: 1816:/*EOF*/
      502:      587: 1817:/*EOF*/
      502:      587: 1818:/*EOF*/
      502:      587: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
       22:       24: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
     1161:     1484: 1826:/*EOF*/
     1139:     1460: 1827:/*EOF*/
      709:      818: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
     2587:     3212: 1830:/*EOF*/
     1448:     1752: 1831:/*EOF*/
      902:     1090: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
      154:      168: 1840:/*EOF*/
      132:      144: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
       44:       48: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
       22:       22: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
       22:       22: 1866:/*EOF*/
       22:       22: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
       22:       22: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
       22:       22: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
       22:       22: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
       11:       11: 1880:/*EOF*/
       11:       11: 1881:/*EOF*/
       11:       11: 1882:/*EOF*/
       11:       11: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
       11:       11: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
       22:       22: 1892:/*EOF*/
       22:       22: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
       11:       11: 1895:/*EOF*/
       22:       22: 1896:/*EOF*/
       22:       22: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
       11:       11: 1903:/*EOF*/
       11:       11: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        6:        6: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        6:        6: 1921:/*EOF*/
        3:        3: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        3:        3: 1924:/*EOF*/
        3:        3: 1925:/*EOF*/
        3:        3: 1926:/*EOF*/
        3:        3: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        3:        3: 1933:/*EOF*/
        3:        3: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        3:        3: 1937:/*EOF*/
        3:        3: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
      179:      205: 1949:/*EOF*/
      386:      420: 1950:/*EOF*/
      210:      218: 1951:/*EOF*/
      197:      205: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
       13:       13: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
       13:       13: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
       13:       13: 1969:/*EOF*/
       26:       26: 1970:/*EOF*/
       26:       26: 1971:/*EOF*/
       26:       26: 1972:/*EOF*/
       13:       13: 1973:/*EOF*/
       13:       13: 1974:/*EOF*/
       13:       13: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        3:        3: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        3:        3: 1993:/*EOF*/
        3:        3: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        3:        3: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        3:        3: 2003:/*EOF*/
        3:        3: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        3:        3: 2006:/*EOF*/
        3:        3: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        3:        3: 2010:/*EOF*/
        3:        3: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        3:        3: 2013:/*EOF*/
        3:        3: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        3:        3: 2017:/*EOF*/
       14:       14: 2018:/*EOF*/
       11:       11: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
       22:       22: 2022:/*EOF*/
       11:       11: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
       22:       22: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        3:        3: 2033:/*EOF*/
       14:       14: 2034:/*EOF*/
       11:       11: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
       11:       11: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
       22:       22: 2042:/*EOF*/
       11:       11: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
       22:       22: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        3:        3: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        3:        3: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        3:        3: 2060:/*EOF*/
        6:        6: 2061:/*EOF*/
        3:        3: 2062:/*EOF*/
        3:        3: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        3:        3: 2073:/*EOF*/
       14:       14: 2074:/*EOF*/
       11:       11: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
       11:       11: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
       11:       11: 2079:/*EOF*/
       11:       11: 2080:/*EOF*/
       11:       11: 2081:/*EOF*/
    #####:    #####: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        3:        3: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        3:        3: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        6:        6: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        5:        5: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        5:        5: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
      345:      397: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
      340:      392: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
      742:      810: 2105:/*EOF*/
      402:      418: 2106:/*EOF*/
      778:      810: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
       26:       26: 2110:/*EOF*/
    #####:    #####: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
       26:       26: 2113:/*EOF*/
       26:       26: 2114:/*EOF*/
    #####:    #####: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
       26:       26: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
       26:       26: 2119:/*EOF*/
       26:       26: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
    #####:    #####: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
      340:      392: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
    #####:    #####: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
    #####:    #####: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
    #####:    #####: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
    #####:    #####: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        5:        5: 2163:/*EOF*/
        5:        5: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
       12:       14: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
       12:       14: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
      733:     1032: 2171:/*EOF*/
      721:     1018: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
      213:      265: 2174:/*EOF*/
      152:      182: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
       61:       83: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
    #####:    #####: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
       61:       83: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
       54:       72: 2190:/*EOF*/
       54:       72: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
    #####:    #####: 2194:/*EOF*/
    #####:    #####: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
    #####:    #####: 2197:/*EOF*/
    #####:    #####: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
    #####:    #####: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
       55:       72: 2229:/*EOF*/
       30:       36: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
       25:       36: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
       25:       36: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
       25:       36: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
    #####:    #####: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
      186:      296: 2268:/*EOF*/
       54:       88: 2269:/*EOF*/
       66:      104: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
       66:      104: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
       12:       16: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
    #####:    #####: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
       12:       16: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
       12:       16: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
       36:       48: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
    #####:    #####: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
       36:       48: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
    #####:    #####: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
       36:       48: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
    #####:    #####: 2336:/*EOF*/
    #####:    #####: 2337:/*EOF*/
       36:       48: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
       36:       48: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
    #####:    #####: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
       36:       48: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
    #####:    #####: 2351:/*EOF*/
    #####:    #####: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
    #####:    #####: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
      285:      441: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
      637:      910: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
       12:       14: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        5:        5: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        5:        5: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        5:        5: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
      214:      226: 2400:/*EOF*/
      209:      221: 2401:/*EOF*/
      209:      221: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
    #####:    #####: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
    #####:    #####: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        5:        5: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        5:        5: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        5:        5: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        5:        5: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        5:        5: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        5:        5: 2448:/*EOF*/
        5:        5: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
    #####:    #####: 2461:/*EOF*/
    #####:    #####: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
    #####:    #####: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
    #####:    #####: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
    #####:    #####: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
    #####:    #####: 2483:/*EOF*/
    #####:    #####: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
    #####:    #####: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
    #####:    #####: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
    #####:    #####: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
    #####:    #####: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
    #####:    #####: 2509:/*EOF*/
    #####:    #####: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
    #####:    #####: 2514:/*EOF*/
    #####:    #####: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
    #####:    #####: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
       12:       14: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
       12:       14: 2531:/*EOF*/
       12:       14: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
       12:       14: 2534:/*EOF*/
       12:       14: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
      611:      872: 2537:/*EOF*/
      599:      858: 2538:/*EOF*/
       66:      100: 2539:/*EOF*/
     1012:     1448: 2540:/*EOF*/
      479:      690: 2541:/*EOF*/
       66:      100: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
     1397:     1934: 2546:/*EOF*/
     1290:     1738: 2547:/*EOF*/
      842:     1148: 2548:/*EOF*/
      350:      486: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
      599:      858: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
      880:     1228: 2557:/*EOF*/
      490:      646: 2558:/*EOF*/
      969:     1354: 2559:/*EOF*/
      161:      220: 2560:/*EOF*/
      161:      220: 2561:/*EOF*/
      161:      220: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
    #####:    #####: 2564:/*EOF*/
    #####:    #####: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
      642:      890: 2568:/*EOF*/
      246:      324: 2569:/*EOF*/
       42:       72: 2570:/*EOF*/
    #####:    #####: 2571:/*EOF*/
    #####:    #####: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
       12:       14: 2576:/*EOF*/
    #####:    #####: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
    #####:    #####: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
       24:       28: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        5:        5: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        5:        5: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        5:        5: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        5:        5: 2605:/*EOF*/
       53:       53: 2606:/*EOF*/
       48:       48: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        5:        5: 2613:/*EOF*/
        5:        5: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
    #####:    #####: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
    #####:    #####: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
       42:       42: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
       42:       42: 2638:/*EOF*/
       42:       42: 2639:/*EOF*/
       42:       42: 2640:/*EOF*/
       84:       84: 2641:/*EOF*/
       42:       42: 2642:/*EOF*/
       42:       42: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
       22:       24: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
       22:       24: 2649:/*EOF*/
       22:       24: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
       22:       24: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
       22:       24: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
     1030:     1313: 2658:/*EOF*/
     1008:     1289: 2659:/*EOF*/
     1008:     1289: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
     2194:     2812: 2662:/*EOF*/
      356:      468: 2663:/*EOF*/
      216:      272: 2664:/*EOF*/
       36:       36: 2665:/*EOF*/
       54:       54: 2666:/*EOF*/
     1044:     1325: 2667:/*EOF*/
       18:       18: 2668:/*EOF*/
      990:     1271: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
       18:       18: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
       18:       18: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
       60:       60: 2684:/*EOF*/
      120:      120: 2685:/*EOF*/
       60:       60: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
       21:       21: 2696:/*EOF*/
    #####:    #####: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
       42:       42: 2703:/*EOF*/
       21:       21: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
       21:       21: 2708:/*EOF*/
    #####:    #####: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
       21:       21: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
       21:       21: 2715:/*EOF*/
    #####:    #####: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
       42:       42: 2721:/*EOF*/
       42:       42: 2722:/*EOF*/
       21:       21: 2723:/*EOF*/
       18:       18: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
       42:       42: 2731:/*EOF*/
    #####:    #####: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
       42:       42: 2737:/*EOF*/
      126:      126: 2738:/*EOF*/
      168:      168: 2739:/*EOF*/
       84:       84: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
       42:       42: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
       42:       42: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
      126:      126: 2755:/*EOF*/
       42:       42: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
       18:       18: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
       18:       18: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
       60:       60: 2775:/*EOF*/
      120:      120: 2776:/*EOF*/
       60:       60: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
       42:       42: 2779:/*EOF*/
       42:       42: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
       21:       21: 2782:/*EOF*/
       21:       21: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
       21:       21: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
       21:       21: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
       21:       21: 2805:/*EOF*/
       21:       21: 2806:/*EOF*/
       21:       21: 2807:/*EOF*/
       21:       21: 2808:/*EOF*/
       18:       18: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
       18:       18: 2813:/*EOF*/
       18:       18: 2814:/*EOF*/
       18:       18: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
       22:       24: 2818:/*EOF*/
        5:        5: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
       22:       24: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
       12:       14: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
       12:       14: 2832:/*EOF*/
       12:       14: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
       12:       14: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
    #####:    #####: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
      587:      846: 2843:/*EOF*/
      575:      832: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
       66:      100: 2847:/*EOF*/
       66:      100: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
       66:      100: 2852:/*EOF*/
       66:      100: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
    #####:    #####: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
      443:      632: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
       12:       14: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        1:        1: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        1:        1: 2886:/*EOF*/
        1:        1: 2887:/*EOF*/
        1:        1: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        1:        1: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
    #####:    #####: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        1:        1: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        2:        2: 2901:/*EOF*/
        3:        3: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        1:        1: 2906:/*EOF*/
        1:        1: 2907:/*EOF*/
        1:        1: 2908:/*EOF*/
        1:        1: 2909:/*EOF*/
        1:        1: 2910:/*EOF*/
        1:        1: 2911:/*EOF*/
        1:        1: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
    #####:    #####: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
    #####:    #####: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        1:        1: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        1:        1: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        1:        1: 2928:/*EOF*/
        1:        1: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        1:        1: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
    #####:    #####: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        1:        1: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
       17:       19: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    11890:    15811: 2945:/*EOF*/
       17:       19: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
       17:       19: 2949:/*EOF*/
        7:        8: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
       10:       11: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
      480:      635: 2954:/*EOF*/
      470:      624: 2955:/*EOF*/
      113:      181: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
      589:      770: 2959:/*EOF*/
      119:      146: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
    #####:    #####: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
      470:      624: 2970:/*EOF*/
        3:        3: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
      470:      624: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        9:        9: 2978:/*EOF*/
        6:        6: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    23500:    31200: 2984:/*EOF*/
    11280:    14976: 2985:/*EOF*/
    #####:    #####: 2986:/*EOF*/
    #####:    #####: 2987:/*EOF*/
    #####:    #####: 2988:/*EOF*/
    #####:    #####: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
     1059:     1394: 2993:/*EOF*/
      119:      146: 2994:/*EOF*/
      470:      624: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
       10:       11: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
       27:       30: 3004:/*EOF*/
    11750:    15600: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
    #####:    #####: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
    #####:    #####: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
    #####:    #####: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
    #####:    #####: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
    #####:    #####: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
    #####:    #####: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
    #####:    #####: 3053:/*EOF*/
    #####:    #####: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
    #####:    #####: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
    #####:    #####: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
    #####:    #####: 3070:/*EOF*/
    #####:    #####: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
    #####:    #####: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
    #####:    #####: 3081:/*EOF*/
    #####:    #####: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
    #####:    #####: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
    #####:    #####: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
    #####:    #####: 3100:/*EOF*/
    #####:    #####: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
    #####:    #####: 3104:/*EOF*/
    #####:    #####: 3105:/*EOF*/
    #####:    #####: 3106:/*EOF*/
    #####:    #####: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
    #####:    #####: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
    #####:    #####: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
    #####:    #####: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
    #####:    #####: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
    #####:    #####: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
    #####:    #####: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
    #####:    #####: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
    #####:    #####: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
    #####:    #####: 3161:/*EOF*/
    #####:    #####: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
    #####:    #####: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        5:        5: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        5:        5: 3169:/*EOF*/
        5:        5: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
    #####:    #####: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
    #####:    #####: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        5:        5: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
      211:      223: 3205:/*EOF*/
      206:      218: 3206:/*EOF*/
      206:      218: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
    #####:    #####: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
    #####:    #####: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        5:        5: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        5:        5: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        5:        5: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
      214:      226: 3241:/*EOF*/
      209:      221: 3242:/*EOF*/
      204:      216: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        5:        5: 3245:/*EOF*/
        5:        5: 3246:/*EOF*/
        5:        5: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        5:        5: 3250:/*EOF*/
        5:        5: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        5:        5: 3253:/*EOF*/
        5:        5: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        5:        5: 3256:/*EOF*/
    #####:    #####: 3257:/*EOF*/
    #####:    #####: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        5:        5: 3265:/*EOF*/
    #####:    #####: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
    #####:    #####: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
    #####:    #####: 3293:/*EOF*/
    #####:    #####: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
    #####:    #####: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
    #####:    #####: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
    #####:    #####: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
       25:       25: 3318:/*EOF*/
       20:       20: 3319:/*EOF*/
       20:       20: 3320:/*EOF*/
       20:       20: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        5:        5: 3324:/*EOF*/
        5:        5: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        5:        5: 3328:/*EOF*/
        5:        5: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        5:        5: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        5:        5: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        5:        5: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
      211:      223: 3339:/*EOF*/
      206:      218: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
      206:      218: 3342:/*EOF*/
       54:       54: 3343:/*EOF*/
       36:       36: 3344:/*EOF*/
       18:       18: 3345:/*EOF*/
      224:      236: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
    #####:    #####: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
    #####:    #####: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
    #####:    #####: 3373:/*EOF*/
    #####:    #####: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
    #####:    #####: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
    #####:    #####: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
    #####:    #####: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
    #####:    #####: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
    #####:    #####: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
      188:      200: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
    #####:    #####: 3461:/*EOF*/
    #####:    #####: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
    #####:    #####: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
    #####:    #####: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
    #####:    #####: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
    #####:    #####: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
      188:      200: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
    #####:    #####: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        5:        5: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        5:        5: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
    #####:    #####: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
    #####:    #####: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
    #####:    #####: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        5:        5: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        5:        5: 3554:/*EOF*/
    #####:    #####: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
       25:       25: 3565:/*EOF*/
       20:       20: 3566:/*EOF*/
        5:        5: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        5:        5: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        5:        5: 3575:/*EOF*/
        5:        5: 3576:/*EOF*/
        5:        5: 3577:/*EOF*/
        5:        5: 3578:/*EOF*/
        5:        5: 3579:/*EOF*/
        5:        5: 3580:/*EOF*/
        5:        5: 3581:/*EOF*/
        5:        5: 3582:/*EOF*/
        5:        5: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        5:        5: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        5:        5: 3590:/*EOF*/
        5:        5: 3591:/*EOF*/
        5:        5: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
       10:       10: 3601:/*EOF*/
       15:       15: 3602:/*EOF*/
       10:       10: 3603:/*EOF*/
        5:        5: 3604:/*EOF*/
        5:        5: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        5:        5: 3608:/*EOF*/
    #####:    #####: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        5:        5: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
    #####:    #####: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
    #####:    #####: 3618:/*EOF*/
    #####:    #####: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        5:        5: 3622:/*EOF*/
    #####:    #####: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
    #####:    #####: 3632:/*EOF*/
    #####:    #####: 3633:/*EOF*/
    #####:    #####: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
    #####:    #####: 3639:/*EOF*/
    #####:    #####: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        5:        5: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        5:        5: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
        5:        5: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
    #####:    #####: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        5:        5: 3663:/*EOF*/
        5:        5: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        5:        5: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        5:        5: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        5:        5: 3676:/*EOF*/
    #####:    #####: 3677:/*EOF*/
    #####:    #####: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        5:        5: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
    #####:    #####: 3691:/*EOF*/
    #####:    #####: 3692:/*EOF*/
    #####:    #####: 3693:/*EOF*/
    #####:    #####: 3694:/*EOF*/
    #####:    #####: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        5:        5: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
    #####:    #####: 3701:/*EOF*/
    #####:    #####: 3702:/*EOF*/
    #####:    #####: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
    #####:    #####: 3706:/*EOF*/
    #####:    #####: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
       10:       10: 3710:/*EOF*/
        5:        5: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        5:        5: 3716:/*EOF*/
    #####:    #####: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        5:        5: 3719:/*EOF*/
        5:        5: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        5:        5: 3723:/*EOF*/
        5:        5: 3724:/*EOF*/
        5:        5: 3725:/*EOF*/
        5:        5: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
    #####:    #####: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
    #####:    #####: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
    #####:    #####: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
    #####:    #####: 3739:/*EOF*/
    #####:    #####: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
    #####:    #####: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
    #####:    #####: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
    #####:    #####: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
    #####:    #####: 3763:/*EOF*/
    #####:    #####: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
    #####:    #####: 3772:/*EOF*/
    #####:    #####: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
    #####:    #####: 3775:/*EOF*/
    #####:    #####: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
    #####:    #####: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
    #####:    #####: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
    #####:    #####: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
    #####:    #####: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
    #####:    #####: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
    #####:    #####: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
    #####:    #####: 3824:/*EOF*/
    #####:    #####: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
    #####:    #####: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
    #####:    #####: 3833:/*EOF*/
    #####:    #####: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
    #####:    #####: 3837:/*EOF*/
    #####:    #####: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
    #####:    #####: 3842:/*EOF*/
    #####:    #####: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
    #####:    #####: 3845:/*EOF*/
    #####:    #####: 3846:/*EOF*/
    #####:    #####: 3847:/*EOF*/
    #####:    #####: 3848:/*EOF*/
    #####:    #####: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
    #####:    #####: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
    #####:    #####: 3862:/*EOF*/
    #####:    #####: 3863:/*EOF*/
    #####:    #####: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
    #####:    #####: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
    #####:    #####: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
    #####:    #####: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
    #####:    #####: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
    #####:    #####: 3884:/*EOF*/
    #####:    #####: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
    #####:    #####: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
    #####:    #####: 3892:/*EOF*/
    #####:    #####: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
    #####:    #####: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
    #####:    #####: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
    #####:    #####: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
    #####:    #####: 3916:/*EOF*/
    #####:    #####: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
    #####:    #####: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
    #####:    #####: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
    #####:    #####: 3928:/*EOF*/
    #####:    #####: 3929:/*EOF*/
    #####:    #####: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
    #####:    #####: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
    #####:    #####: 3935:/*EOF*/
    #####:    #####: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
    #####:    #####: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
    #####:    #####: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
    #####:    #####: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
    #####:    #####: 3951:/*EOF*/
    #####:    #####: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
    #####:    #####: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
    #####:    #####: 3970:/*EOF*/
    #####:    #####: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
    #####:    #####: 3973:/*EOF*/
    #####:    #####: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
    #####:    #####: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
    #####:    #####: 3992:/*EOF*/
    #####:    #####: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
    #####:    #####: 4001:/*EOF*/
    #####:    #####: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
    #####:    #####: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
    #####:    #####: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
    #####:    #####: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
    #####:    #####: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
    #####:    #####: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
    #####:    #####: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
    #####:    #####: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
    #####:    #####: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
    #####:    #####: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
    #####:    #####: 4065:/*EOF*/
    #####:    #####: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
    #####:    #####: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
    #####:    #####: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
    #####:    #####: 4098:/*EOF*/
    #####:    #####: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
    #####:    #####: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
    #####:    #####: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
    #####:    #####: 4125:/*EOF*/
    #####:    #####: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
    #####:    #####: 4152:/*EOF*/
    #####:    #####: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
    #####:    #####: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
    #####:    #####: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
    #####:    #####: 4169:/*EOF*/
    #####:    #####: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
    #####:    #####: 4175:/*EOF*/
    #####:    #####: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
    #####:    #####: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
    #####:    #####: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
    #####:    #####: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
    #####:    #####: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
    #####:    #####: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
    #####:    #####: 4218:/*EOF*/
    #####:    #####: 4219:/*EOF*/
    #####:    #####: 4220:/*EOF*/
    #####:    #####: 4221:/*EOF*/
    #####:    #####: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
    #####:    #####: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
    #####:    #####: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
    #####:    #####: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
    #####:    #####: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
    #####:    #####: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
    #####:    #####: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
    #####:    #####: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
    #####:    #####: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
    #####:    #####: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
    #####:    #####: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
    #####:    #####: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
    #####:    #####: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
    #####:    #####: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
    #####:    #####: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
    #####:    #####: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
    #####:    #####: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
    #####:    #####: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
    #####:    #####: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
    #####:    #####: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
    #####:    #####: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
    #####:    #####: 4308:/*EOF*/
    #####:    #####: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
    #####:    #####: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
    #####:    #####: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
    #####:    #####: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        5:        5: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        5:        5: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
      209:      221: 4325:/*EOF*/
      204:      216: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
      204:      216: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        5:        5: 4330:/*EOF*/
        5:        5: 4331:/*EOF*/
        5:        5: 4332:/*EOF*/
        5:        5: 4333:/*EOF*/
        5:        5: 4334:/*EOF*/
        5:        5: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
    #####:    #####: 4338:/*EOF*/
    #####:    #####: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
    #####:    #####: 4342:/*EOF*/
    #####:    #####: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
    #####:    #####: 4346:/*EOF*/
    #####:    #####: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
    #####:    #####: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
    #####:    #####: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
    #####:    #####: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
    #####:    #####: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
    #####:    #####: 4374:/*EOF*/
    #####:    #####: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
    #####:    #####: 4378:/*EOF*/
    #####:    #####: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
    #####:    #####: 4382:/*EOF*/
    #####:    #####: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
    #####:    #####: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
    #####:    #####: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
    #####:    #####: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
    #####:    #####: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
    #####:    #####: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
    #####:    #####: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
    #####:    #####: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
    #####:    #####: 4434:/*EOF*/
    #####:    #####: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
       12:       12: 4454:/*EOF*/
    #####:    #####: 4455:/*EOF*/
    #####:    #####: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
      211:      223: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
      187:      199: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        5:        5: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        5:        5: 4469:/*EOF*/
        5:        5: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        5:        5: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
      137:      149: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
      137:      149: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
      137:      149: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
      381:      413: 4507:/*EOF*/
      244:      264: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
      137:      149: 4513:/*EOF*/
    #####:    #####: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
      137:      149: 4530:/*EOF*/
      381:      413: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
      404:      448: 4533:/*EOF*/
      404:      448: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
      720:      780: 4536:/*EOF*/
      484:      524: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
      608:      658: 4539:/*EOF*/
      282:      308: 4540:/*EOF*/
      288:      314: 4541:/*EOF*/
    #####:    #####: 4542:/*EOF*/
    #####:    #####: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
      137:      149: 4557:/*EOF*/
      136:      148: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
      137:      149: 4566:/*EOF*/
       44:       56: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
      137:      149: 4574:/*EOF*/
       12:       12: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
      205:      223: 4589:/*EOF*/
       68:       74: 4590:/*EOF*/
      204:      222: 4591:/*EOF*/
      204:      222: 4592:/*EOF*/
       68:       74: 4593:/*EOF*/
       68:       74: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
       68:       74: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
       68:       74: 4607:/*EOF*/
    #####:    #####: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
      137:      149: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
    #####:    #####: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
    #####:    #####: 4644:/*EOF*/
    #####:    #####: 4645:/*EOF*/
    #####:    #####: 4646:/*EOF*/
    #####:    #####: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
    #####:    #####: 4652:/*EOF*/
    #####:    #####: 4653:/*EOF*/
    #####:    #####: 4654:/*EOF*/
    #####:    #####: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
    #####:    #####: 4661:/*EOF*/
    #####:    #####: 4662:/*EOF*/
    #####:    #####: 4663:/*EOF*/
    #####:    #####: 4664:/*EOF*/
    #####:    #####: 4665:/*EOF*/
    #####:    #####: 4666:/*EOF*/
    #####:    #####: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
    #####:    #####: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
    #####:    #####: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
      194:      206: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
      194:      206: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
       93:       97: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
       22:       26: 4735:/*EOF*/
       22:       26: 4736:/*EOF*/
       22:       26: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
    #####:    #####: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
       18:       14: 4749:/*EOF*/
       18:       14: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        8:        8: 4762:/*EOF*/
       16:       16: 4763:/*EOF*/
       16:       16: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
    #####:    #####: 4768:/*EOF*/
    #####:    #####: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
    #####:    #####: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        8:        8: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
    #####:    #####: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
    #####:    #####: 4825:/*EOF*/
    #####:    #####: 4826:/*EOF*/
    #####:    #####: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
    #####:    #####: 4833:/*EOF*/
    #####:    #####: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
       10:       10: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        5:        5: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        5:        5: 4844:/*EOF*/
        5:        5: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
    #####:    #####: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
    #####:    #####: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
    #####:    #####: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
    #####:    #####: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
    #####:    #####: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
    #####:    #####: 4880:/*EOF*/
    #####:    #####: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
    #####:    #####: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
    #####:    #####: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
    #####:    #####: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
    #####:    #####: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
    #####:    #####: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
    #####:    #####: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
    #####:    #####: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
    #####:    #####: 4929:/*EOF*/
    #####:    #####: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
    #####:    #####: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
    #####:    #####: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
    #####:    #####: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
       40:       48: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
       88:       88: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
       88:       88: 4952:/*EOF*/
      136:      136: 4953:/*EOF*/
      156:      156: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
       44:       44: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
       44:       44: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
       44:       44: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
    #####:    #####: 4975:/*EOF*/
    #####:    #####: 4976:/*EOF*/
    #####:    #####: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
    #####:    #####: 4979:/*EOF*/
    #####:    #####: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
       44:       44: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
       10:       10: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
       34:       34: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
       20:       20: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
       20:       20: 5012:/*EOF*/
    #####:    #####: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
       20:       20: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
       64:       64: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
       44:       44: 5026:/*EOF*/
    #####:    #####: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
      132:      132: 5035:/*EOF*/
       88:       88: 5036:/*EOF*/
    #####:    #####: 5037:/*EOF*/
    #####:    #####: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
       20:       20: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
       20:       20: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
       20:       20: 5057:/*EOF*/
       20:       20: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
       20:       20: 5061:/*EOF*/
       20:       20: 5062:/*EOF*/
       20:       20: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
       20:       20: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
    #####:    #####: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
    #####:    #####: 5073:/*EOF*/
    #####:    #####: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
    #####:    #####: 5078:/*EOF*/
    #####:    #####: 5079:/*EOF*/
    #####:    #####: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
    #####:    #####: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
       20:       20: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        5:        5: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        5:        5: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
      199:      211: 5097:/*EOF*/
      194:      206: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
      194:      206: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
       10:       10: 5106:/*EOF*/
       20:       20: 5107:/*EOF*/
       30:       30: 5108:/*EOF*/
       20:       20: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
       10:       10: 5114:/*EOF*/
       10:       10: 5115:/*EOF*/
       10:       10: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
       10:       10: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
       30:       30: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
       40:       40: 5125:/*EOF*/
       20:       20: 5126:/*EOF*/
       20:       20: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
       20:       20: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
       64:       64: 5135:/*EOF*/
       44:       44: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
       20:       20: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
       20:       20: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
       20:       20: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
       10:       10: 5145:/*EOF*/
       10:       10: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        5:        5: 5150:/*EOF*/
        1:        1: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        5:        5: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
    #####:    #####: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
    #####:    #####: 5159:/*EOF*/
    #####:    #####: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
    #####:    #####: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
    #####:    #####: 5165:/*EOF*/
    #####:    #####: 5166:/*EOF*/
    #####:    #####: 5167:/*EOF*/
    #####:    #####: 5168:/*EOF*/
    #####:    #####: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
    #####:    #####: 5172:/*EOF*/
    #####:    #####: 5173:/*EOF*/
    #####:    #####: 5174:/*EOF*/
    #####:    #####: 5175:/*EOF*/
    #####:    #####: 5176:/*EOF*/
    #####:    #####: 5177:/*EOF*/
    #####:    #####: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
    #####:    #####: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
    #####:    #####: 5183:/*EOF*/
    #####:    #####: 5184:/*EOF*/
    #####:    #####: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
    #####:    #####: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
    #####:    #####: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
    #####:    #####: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
    #####:    #####: 5198:/*EOF*/
    #####:    #####: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
    #####:    #####: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
    #####:    #####: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
    #####:    #####: 5206:/*EOF*/
    #####:    #####: 5207:/*EOF*/
    #####:    #####: 5208:/*EOF*/
    #####:    #####: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
    #####:    #####: 5212:/*EOF*/
    #####:    #####: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
    #####:    #####: 5216:/*EOF*/
    #####:    #####: 5217:/*EOF*/
    #####:    #####: 5218:/*EOF*/
    #####:    #####: 5219:/*EOF*/
    #####:    #####: 5220:/*EOF*/
    #####:    #####: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
    #####:    #####: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
    #####:    #####: 5226:/*EOF*/
    #####:    #####: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
    #####:    #####: 5230:/*EOF*/
    #####:    #####: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
    #####:    #####: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
    #####:    #####: 5236:/*EOF*/
    #####:    #####: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
    #####:    #####: 5239:/*EOF*/
    #####:    #####: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
    #####:    #####: 5242:/*EOF*/
    #####:    #####: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
    #####:    #####: 5245:/*EOF*/
    #####:    #####: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
    #####:    #####: 5248:/*EOF*/
    #####:    #####: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
    #####:    #####: 5251:/*EOF*/
    #####:    #####: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
    #####:    #####: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
    #####:    #####: 5256:/*EOF*/
    #####:    #####: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
    #####:    #####: 5259:/*EOF*/
    #####:    #####: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
    #####:    #####: 5262:/*EOF*/
    #####:    #####: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
    #####:    #####: 5265:/*EOF*/
    #####:    #####: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
    #####:    #####: 5268:/*EOF*/
    #####:    #####: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
    #####:    #####: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
    #####:    #####: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
    #####:    #####: 5276:/*EOF*/
    #####:    #####: 5277:/*EOF*/
    #####:    #####: 5278:/*EOF*/
    #####:    #####: 5279:/*EOF*/
    #####:    #####: 5280:/*EOF*/
    #####:    #####: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
    #####:    #####: 5284:/*EOF*/
    #####:    #####: 5285:/*EOF*/
    #####:    #####: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
    #####:    #####: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
    #####:    #####: 5291:/*EOF*/
    #####:    #####: 5292:/*EOF*/
    #####:    #####: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
    #####:    #####: 5295:/*EOF*/
    #####:    #####: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
    #####:    #####: 5298:/*EOF*/
    #####:    #####: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
    #####:    #####: 5301:/*EOF*/
    #####:    #####: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
    #####:    #####: 5304:/*EOF*/
    #####:    #####: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
    #####:    #####: 5307:/*EOF*/
    #####:    #####: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
    #####:    #####: 5310:/*EOF*/
    #####:    #####: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
    #####:    #####: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
    #####:    #####: 5315:/*EOF*/
    #####:    #####: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
    #####:    #####: 5318:/*EOF*/
    #####:    #####: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
    #####:    #####: 5322:/*EOF*/
    #####:    #####: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
    #####:    #####: 5326:/*EOF*/
    #####:    #####: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
    #####:    #####: 5329:/*EOF*/
    #####:    #####: 5330:/*EOF*/
    #####:    #####: 5331:/*EOF*/
    #####:    #####: 5332:/*EOF*/
    #####:    #####: 5333:/*EOF*/
    #####:    #####: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
    #####:    #####: 5336:/*EOF*/
    #####:    #####: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
    #####:    #####: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
    #####:    #####: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
    #####:    #####: 5343:/*EOF*/
    #####:    #####: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
    #####:    #####: 5346:/*EOF*/
    #####:    #####: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
    #####:    #####: 5349:/*EOF*/
    #####:    #####: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
    #####:    #####: 5352:/*EOF*/
    #####:    #####: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
    #####:    #####: 5355:/*EOF*/
    #####:    #####: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
    #####:    #####: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
    #####:    #####: 5361:/*EOF*/
    #####:    #####: 5362:/*EOF*/
    #####:    #####: 5363:/*EOF*/
    #####:    #####: 5364:/*EOF*/
    #####:    #####: 5365:/*EOF*/
    #####:    #####: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
    #####:    #####: 5369:/*EOF*/
    #####:    #####: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
    #####:    #####: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
    #####:    #####: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
    #####:    #####: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
    #####:    #####: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
    #####:    #####: 5380:/*EOF*/
    #####:    #####: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
    #####:    #####: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
    #####:    #####: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
    #####:    #####: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
    #####:    #####: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
    #####:    #####: 5395:/*EOF*/
    #####:    #####: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
    #####:    #####: 5398:/*EOF*/
    #####:    #####: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
    #####:    #####: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
    #####:    #####: 5419:/*EOF*/
    #####:    #####: 5420:/*EOF*/
    #####:    #####: 5421:/*EOF*/
    #####:    #####: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
    #####:    #####: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        6:        6: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        6:        6: 5431:/*EOF*/
        6:        6: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        6:        6: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        6:        6: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
       42:       42: 5447:/*EOF*/
       36:       36: 5448:/*EOF*/
        2:        2: 5449:/*EOF*/
        2:        2: 5450:/*EOF*/
        2:        2: 5451:/*EOF*/
        1:        1: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        6:        6: 5459:/*EOF*/
        6:        6: 5460:/*EOF*/
        2:        2: 5461:/*EOF*/
        2:        2: 5462:/*EOF*/
        2:        2: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        1:        1: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        6:        6: 5471:/*EOF*/
        6:        6: 5472:/*EOF*/
        2:        2: 5473:/*EOF*/
        2:        2: 5474:/*EOF*/
        2:        2: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        1:        1: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        6:        6: 5482:/*EOF*/
    #####:    #####: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
    #####:    #####: 5493:/*EOF*/
    #####:    #####: 5494:/*EOF*/
    #####:    #####: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        6:        6: 5500:/*EOF*/
        6:        6: 5501:/*EOF*/
    #####:    #####: 5502:/*EOF*/
    #####:    #####: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
    #####:    #####: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
    #####:    #####: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        6:        6: 5514:/*EOF*/
    #####:    #####: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        6:        6: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
    #####:    #####: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
    #####:    #####: 5523:/*EOF*/
    #####:    #####: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
    #####:    #####: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
    #####:    #####: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
    #####:    #####: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
    #####:    #####: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
    #####:    #####: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
    #####:    #####: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
    #####:    #####: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
    #####:    #####: 5551:/*EOF*/
    #####:    #####: 5552:/*EOF*/
    #####:    #####: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
    #####:    #####: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
    #####:    #####: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
    #####:    #####: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
    #####:    #####: 5566:/*EOF*/
    #####:    #####: 5567:/*EOF*/
    #####:    #####: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
    #####:    #####: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
    #####:    #####: 5573:/*EOF*/
    #####:    #####: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
    #####:    #####: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
    #####:    #####: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
    #####:    #####: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
    #####:    #####: 5582:/*EOF*/
    #####:    #####: 5583:/*EOF*/
    #####:    #####: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
    #####:    #####: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        -:        -: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        5:        5: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        5:        5: 5601:/*EOF*/
        5:        5: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        5:        5: 5605:/*EOF*/
    #####:    #####: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
      345:      397: 5608:/*EOF*/
      340:      392: 5609:/*EOF*/
       70:      110: 5610:/*EOF*/
      270:      282: 5611:/*EOF*/
    #####:    #####: 5612:/*EOF*/
    #####:    #####: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
    #####:    #####: 5615:/*EOF*/
    #####:    #####: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
      270:      282: 5618:/*EOF*/
       40:       52: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        5:        5: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        5:        5: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        5:        5: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        -:        -: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
        5:        5: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        5:        5: 5645:/*EOF*/
        5:        5: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        5:        5: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        5:        5: 5650:/*EOF*/
        5:        5: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        5:        5: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
    #####:    #####: 5673:/*EOF*/
    #####:    #####: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
    #####:    #####: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        5:        5: 5679:/*EOF*/
        5:        5: 5680:/*EOF*/
        5:        5: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        5:        5: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
       12:       14: 5685:/*EOF*/
       12:       14: 5686:/*EOF*/
       12:       14: 5687:/*EOF*/
       12:       14: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
       12:       14: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
       12:       14: 5692:/*EOF*/
       12:       14: 5693:/*EOF*/
       12:       14: 5694:/*EOF*/
       12:       14: 5695:/*EOF*/
       12:       14: 5696:/*EOF*/
       12:       14: 5697:/*EOF*/
       12:       14: 5698:/*EOF*/
       12:       14: 5699:/*EOF*/
       12:       14: 5700:/*EOF*/
       12:       14: 5701:/*EOF*/
       12:       14: 5702:/*EOF*/
       12:       14: 5703:/*EOF*/
       12:       14: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
       12:       14: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        5:        5: 5709:/*EOF*/
        5:        5: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        5:        5: 5712:/*EOF*/
    #####:    #####: 5713:/*EOF*/
    #####:    #####: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        5:        5: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        5:        5: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
        5:        5: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        5:        5: 5724:/*EOF*/
        5:        5: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        -:        -: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        5:        5: 5729:/*EOF*/
    #####:    #####: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        5:        5: 5736:/*EOF*/
        5:        5: 5737:/*EOF*/
        5:        5: 5738:/*EOF*/
        5:        5: 5739:/*EOF*/
        5:        5: 5740:/*EOF*/
        5:        5: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        5:        5: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
        5:        5: 5746:/*EOF*/
        5:        5: 5747:/*EOF*/
        5:        5: 5748:/*EOF*/
        5:        5: 5749:/*EOF*/
        5:        5: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        5:        5: 5753:/*EOF*/
        5:        5: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        5:        5: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
    #####:    #####: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
    #####:    #####: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
        5:        5: 5763:/*EOF*/
    #####:    #####: 5764:/*EOF*/
    #####:    #####: 5765:/*EOF*/
    #####:    #####: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
        5:        5: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        5:        5: 5771:/*EOF*/
        5:        5: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
        -:        -: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        5:        5: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
        5:        5: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
      211:      223: 5783:/*EOF*/
      206:      218: 5784:/*EOF*/
    #####:    #####: 5785:/*EOF*/
    #####:    #####: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        5:        5: 5791:/*EOF*/
    #####:    #####: 5792:/*EOF*/
        5:        5: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        5:        5: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
        -:        -: 5805:/*EOF*/
        5:        5: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        5:        5: 5812:/*EOF*/
        5:        5: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        5:        5: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        5:        5: 5821:/*EOF*/
        5:        5: 5822:/*EOF*/
        -:        -: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        5:        5: 5825:/*EOF*/
    #####:    #####: 5826:/*EOF*/
    #####:    #####: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
    #####:    #####: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
    #####:    #####: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
    #####:    #####: 5847:/*EOF*/
    #####:    #####: 5848:/*EOF*/
    #####:    #####: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        5:        5: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        5:        5: 5859:/*EOF*/
    #####:    #####: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        5:        5: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        5:        5: 5864:/*EOF*/
    #####:    #####: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
    #####:    #####: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
    #####:    #####: 5869:/*EOF*/
    #####:    #####: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
    #####:    #####: 5876:/*EOF*/
    #####:    #####: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
    #####:    #####: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
    #####:    #####: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
    #####:    #####: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
    #####:    #####: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
    #####:    #####: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
    #####:    #####: 5908:/*EOF*/
    #####:    #####: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
    #####:    #####: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
    #####:    #####: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
    #####:    #####: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
    #####:    #####: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
    #####:    #####: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
    #####:    #####: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
    #####:    #####: 5927:/*EOF*/
    #####:    #####: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
    #####:    #####: 5930:/*EOF*/
    #####:    #####: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
    #####:    #####: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
    #####:    #####: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
    #####:    #####: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
    #####:    #####: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
    #####:    #####: 5946:/*EOF*/
    #####:    #####: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
        -:        -: 5949:/*EOF*/
    #####:    #####: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
    #####:    #####: 5952:/*EOF*/
    #####:    #####: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
    #####:    #####: 5955:/*EOF*/
    #####:    #####: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
    #####:    #####: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
    #####:    #####: 5962:/*EOF*/
    #####:    #####: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
    #####:    #####: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
    #####:    #####: 5971:/*EOF*/
    #####:    #####: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
    #####:    #####: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
    #####:    #####: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
    #####:    #####: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
    #####:    #####: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
    #####:    #####: 5990:/*EOF*/
        -:        -: 5991:/*EOF*/
    #####:    #####: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
    #####:    #####: 5994:/*EOF*/
    #####:    #####: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
    #####:    #####: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
    #####:    #####: 6000:/*EOF*/
    #####:    #####: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
    #####:    #####: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
    #####:    #####: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
    #####:    #####: 6007:/*EOF*/
    #####:    #####: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
    #####:    #####: 6010:/*EOF*/
    #####:    #####: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
    #####:    #####: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
    #####:    #####: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
    #####:    #####: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
    #####:    #####: 6024:/*EOF*/
    #####:    #####: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
    #####:    #####: 6029:/*EOF*/
    #####:    #####: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
    #####:    #####: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
    #####:    #####: 6034:/*EOF*/
    #####:    #####: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
    #####:    #####: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
    #####:    #####: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
    #####:    #####: 6041:/*EOF*/
    #####:    #####: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
    #####:    #####: 6044:/*EOF*/
    #####:    #####: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
    #####:    #####: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
    #####:    #####: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
    #####:    #####: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
    #####:    #####: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
    #####:    #####: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
    #####:    #####: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
    #####:    #####: 6067:/*EOF*/
    #####:    #####: 6068:/*EOF*/
    #####:    #####: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
    #####:    #####: 6073:/*EOF*/
    #####:    #####: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
    #####:    #####: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
    #####:    #####: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
    #####:    #####: 6080:/*EOF*/
    #####:    #####: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
    #####:    #####: 6083:/*EOF*/
    #####:    #####: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
    #####:    #####: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
    #####:    #####: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
    #####:    #####: 6090:/*EOF*/
    #####:    #####: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
    #####:    #####: 6093:/*EOF*/
    #####:    #####: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
    #####:    #####: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
        6:        6: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        6:        6: 6102:/*EOF*/
        6:        6: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        6:        6: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        6:        6: 6107:/*EOF*/
        6:        6: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
    #####:    #####: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        6:        6: 6114:/*EOF*/
        1:        1: 6115:/*EOF*/
        1:        1: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        5:        5: 6118:/*EOF*/
    #####:    #####: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        5:        5: 6121:/*EOF*/
        5:        5: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        5:        5: 6124:/*EOF*/
    #####:    #####: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        5:        5: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        5:        5: 6133:/*EOF*/
    #####:    #####: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        5:        5: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        5:        5: 6143:/*EOF*/
    #####:    #####: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        5:        5: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        5:        5: 6149:/*EOF*/
    #####:    #####: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        5:        5: 6152:/*EOF*/
        -:        -: 6153:/*EOF*/
        5:        5: 6154:/*EOF*/
    #####:    #####: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        5:        5: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        5:        5: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        5:        5: 6161:/*EOF*/
        5:        5: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        5:        5: 6164:/*EOF*/
        5:        5: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        5:        5: 6167:/*EOF*/
    #####:    #####: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        6:        6: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
    #####:    #####: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
    #####:    #####: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
    #####:    #####: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
    #####:    #####: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
    #####:    #####: 6186:/*EOF*/
    #####:    #####: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
    #####:    #####: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
    #####:    #####: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
    #####:    #####: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
    #####:    #####: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
    #####:    #####: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
    #####:    #####: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
    #####:    #####: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
    #####:    #####: 6210:/*EOF*/
    #####:    #####: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
    #####:    #####: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
        3:        3: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        3:        3: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        6:        6: 6230:/*EOF*/
        3:        3: 6231:/*EOF*/
    #####:    #####: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
       37:       53: 6234:/*EOF*/
      124:      146: 6235:/*EOF*/
       90:       96: 6236:/*EOF*/
       73:       79: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
       17:       17: 6239:/*EOF*/
       17:       17: 6240:/*EOF*/
       15:       15: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
        2:        2: 6244:/*EOF*/
        1:        1: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        1:        1: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        1:        1: 6249:/*EOF*/
        1:        1: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        1:        1: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        1:        1: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        1:        1: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
    #####:    #####: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        3:        3: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
        3:        3: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        3:        3: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        6:        6: 6272:/*EOF*/
        3:        3: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        3:        3: 6275:/*EOF*/
        1:        1: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        2:        2: 6279:/*EOF*/
        1:        1: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        3:        3: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        3:        3: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        3:        3: 6287:/*EOF*/
    #####:    #####: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
    #####:    #####: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        3:        3: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
        -:        -: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
        -:        -: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        3:        3: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        3:        3: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        6:        6: 6323:/*EOF*/
        3:        3: 6324:/*EOF*/
    #####:    #####: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        3:        3: 6327:/*EOF*/
        3:        3: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
       37:       53: 6330:/*EOF*/
       34:       50: 6331:/*EOF*/
        3:        3: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
      180:      252: 6334:/*EOF*/
      149:      205: 6335:/*EOF*/
      274:      372: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
       20:       30: 6338:/*EOF*/
       20:       30: 6339:/*EOF*/
       16:       22: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        4:        8: 6342:/*EOF*/
        4:        8: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        4:        8: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        4:        8: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        8:       16: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
       16:       32: 6356:/*EOF*/
       12:       24: 6357:/*EOF*/
       12:       24: 6358:/*EOF*/
       12:       24: 6359:/*EOF*/
       12:       24: 6360:/*EOF*/
       11:       23: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        1:        1: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
       12:       24: 6365:/*EOF*/
       12:       24: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        3:        3: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        3:        3: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        3:        3: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        3:        3: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        3:        3: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        6:        6: 6389:/*EOF*/
        3:        3: 6390:/*EOF*/
    #####:    #####: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        3:        3: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
       37:       53: 6396:/*EOF*/
      217:      289: 6397:/*EOF*/
      183:      239: 6398:/*EOF*/
      154:      200: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
       29:       39: 6401:/*EOF*/
       58:       78: 6402:/*EOF*/
       29:       39: 6403:/*EOF*/
       29:       39: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
    #####:    #####: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
    #####:    #####: 6408:/*EOF*/
    #####:    #####: 6409:/*EOF*/
    #####:    #####: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
    #####:    #####: 6412:/*EOF*/
    #####:    #####: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        3:        3: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        3:        3: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        3:        3: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        5:        5: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        5:        5: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        3:        3: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
        -:        -: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        3:        3: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        3:        3: 6451:/*EOF*/
        3:        3: 6452:/*EOF*/
        3:        3: 6453:/*EOF*/
        3:        3: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        3:        3: 6456:/*EOF*/
    #####:    #####: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        3:        3: 6460:/*EOF*/
        3:        3: 6461:/*EOF*/
        3:        3: 6462:/*EOF*/
        3:        3: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        6:        6: 6468:/*EOF*/
        6:        6: 6469:/*EOF*/
        3:        3: 6470:/*EOF*/
        3:        3: 6471:/*EOF*/
        3:        3: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        3:        3: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        3:        3: 6477:/*EOF*/
    #####:    #####: 6478:/*EOF*/
    #####:    #####: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
    #####:    #####: 6481:/*EOF*/
        3:        3: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        3:        3: 6484:/*EOF*/
        3:        3: 6485:/*EOF*/
        3:        3: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        3:        3: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        3:        3: 6491:/*EOF*/
        3:        3: 6492:/*EOF*/
        3:        3: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        6:        6: 6497:/*EOF*/
        3:        3: 6498:/*EOF*/
    #####:    #####: 6499:/*EOF*/
    #####:    #####: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
    #####:    #####: 6502:/*EOF*/
        3:        3: 6503:/*EOF*/
        3:        3: 6504:/*EOF*/
        3:        3: 6505:/*EOF*/
        3:        3: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        6:        6: 6509:/*EOF*/
        3:        3: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        6:        6: 6514:/*EOF*/
        3:        3: 6515:/*EOF*/
        3:        3: 6516:/*EOF*/
    #####:    #####: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
    #####:    #####: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        3:        3: 6521:/*EOF*/
        3:        3: 6522:/*EOF*/
        3:        3: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        3:        3: 6528:/*EOF*/
        1:        1: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        3:        3: 6536:/*EOF*/
    #####:    #####: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        3:        3: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
    #####:    #####: 6549:/*EOF*/
    #####:    #####: 6550:/*EOF*/
    #####:    #####: 6551:/*EOF*/
    #####:    #####: 6552:/*EOF*/
    #####:    #####: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        -:        -: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        3:        3: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        3:        3: 6564:/*EOF*/
        6:        6: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        3:        3: 6567:/*EOF*/
    #####:    #####: 6568:/*EOF*/
    #####:    #####: 6569:/*EOF*/
    #####:    #####: 6570:/*EOF*/
    #####:    #####: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        -:        -: 6573:/*EOF*/
        3:        3: 6574:/*EOF*/
        2:        2: 6575:/*EOF*/
        2:        2: 6576:/*EOF*/
        2:        2: 6577:/*EOF*/
        2:        2: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        2:        2: 6580:/*EOF*/
        2:        2: 6581:/*EOF*/
        2:        2: 6582:/*EOF*/
        2:        2: 6583:/*EOF*/
        2:        2: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        1:        1: 6586:/*EOF*/
        1:        1: 6587:/*EOF*/
        1:        1: 6588:/*EOF*/
        1:        1: 6589:/*EOF*/
        1:        1: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        3:        3: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
    #####:    #####: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
    #####:    #####: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
    #####:    #####: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
    #####:    #####: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
    #####:    #####: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
    #####:    #####: 6608:/*EOF*/
    #####:    #####: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
    #####:    #####: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
    #####:    #####: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
    #####:    #####: 6618:/*EOF*/
    #####:    #####: 6619:/*EOF*/
    #####:    #####: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
    #####:    #####: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
    #####:    #####: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
    #####:    #####: 6628:/*EOF*/
    #####:    #####: 6629:/*EOF*/
    #####:    #####: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
    #####:    #####: 6633:/*EOF*/
    #####:    #####: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
    #####:    #####: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
    #####:    #####: 6639:/*EOF*/
    #####:    #####: 6640:/*EOF*/
    #####:    #####: 6641:/*EOF*/
    #####:    #####: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
    #####:    #####: 6644:/*EOF*/
    #####:    #####: 6645:/*EOF*/
    #####:    #####: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
    #####:    #####: 6649:/*EOF*/
    #####:    #####: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
    #####:    #####: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
    #####:    #####: 6657:/*EOF*/
    #####:    #####: 6658:/*EOF*/
    #####:    #####: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
    #####:    #####: 6661:/*EOF*/
    #####:    #####: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
    #####:    #####: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
    #####:    #####: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
    #####:    #####: 6671:/*EOF*/
    #####:    #####: 6672:/*EOF*/
    #####:    #####: 6673:/*EOF*/
    #####:    #####: 6674:/*EOF*/
    #####:    #####: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
    #####:    #####: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
    #####:    #####: 6687:/*EOF*/
    #####:    #####: 6688:/*EOF*/
    #####:    #####: 6689:/*EOF*/
    #####:    #####: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
    #####:    #####: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
    #####:    #####: 6697:/*EOF*/
    #####:    #####: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
    #####:    #####: 6700:/*EOF*/
    #####:    #####: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
    #####:    #####: 6703:/*EOF*/
    #####:    #####: 6704:/*EOF*/
    #####:    #####: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
    #####:    #####: 6707:/*EOF*/
    #####:    #####: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
    #####:    #####: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
    #####:    #####: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
    #####:    #####: 6720:/*EOF*/
    #####:    #####: 6721:/*EOF*/
    #####:    #####: 6722:/*EOF*/
    #####:    #####: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
    #####:    #####: 6725:/*EOF*/
    #####:    #####: 6726:/*EOF*/
    #####:    #####: 6727:/*EOF*/
    #####:    #####: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
    #####:    #####: 6734:/*EOF*/
    #####:    #####: 6735:/*EOF*/
    #####:    #####: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
    #####:    #####: 6739:/*EOF*/
    #####:    #####: 6740:/*EOF*/
    #####:    #####: 6741:/*EOF*/
    #####:    #####: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
    #####:    #####: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
    #####:    #####: 6751:/*EOF*/
    #####:    #####: 6752:/*EOF*/
    #####:    #####: 6753:/*EOF*/
    #####:    #####: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
    #####:    #####: 6760:/*EOF*/
    #####:    #####: 6761:/*EOF*/
    #####:    #####: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
    #####:    #####: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
    #####:    #####: 6766:/*EOF*/
    #####:    #####: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
    #####:    #####: 6769:/*EOF*/
    #####:    #####: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
    #####:    #####: 6772:/*EOF*/
    #####:    #####: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
    #####:    #####: 6779:/*EOF*/
    #####:    #####: 6780:/*EOF*/
    #####:    #####: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
    #####:    #####: 6785:/*EOF*/
    #####:    #####: 6786:/*EOF*/
    #####:    #####: 6787:/*EOF*/
    #####:    #####: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
    #####:    #####: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
    #####:    #####: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
    #####:    #####: 6796:/*EOF*/
    #####:    #####: 6797:/*EOF*/
    #####:    #####: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
    #####:    #####: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
    #####:    #####: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
    #####:    #####: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
    #####:    #####: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
    #####:    #####: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
    #####:    #####: 6820:/*EOF*/
    #####:    #####: 6821:/*EOF*/
    #####:    #####: 6822:/*EOF*/
    #####:    #####: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
    #####:    #####: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
    #####:    #####: 6827:/*EOF*/
    #####:    #####: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
    #####:    #####: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
    #####:    #####: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        3:        3: 6837:/*EOF*/

src/intel/compiler/brw_fs_cse.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cse.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_cse.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      930:     1239:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      930:     1239:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      629:      790:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       41:       49:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        5:        5:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      255:      395:  112:/*EOF*/
      255:      395:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      165:      212:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      165:      212:  120:/*EOF*/
      165:      212:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      165:      212:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
      165:      212:  127:/*EOF*/
       16:       20:  128:/*EOF*/
       16:       20:  129:/*EOF*/
       16:       20:  130:/*EOF*/
       16:       20:  131:/*EOF*/
       16:       20:  132:/*EOF*/
       16:       20:  133:/*EOF*/
       16:       20:  134:/*EOF*/
       16:       20:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       16:       20:  137:/*EOF*/
       16:       20:  138:/*EOF*/
       16:       20:  139:/*EOF*/
       16:       20:  140:/*EOF*/
       16:       20:  141:/*EOF*/
       16:       20:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       32:       40:  144:/*EOF*/
       32:       40:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       16:       20:  147:/*EOF*/
       16:       20:  148:/*EOF*/
       16:       20:  149:/*EOF*/
       16:       20:  150:/*EOF*/
       16:       20:  151:/*EOF*/
       16:       20:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       16:       20:  154:/*EOF*/
       16:       20:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
       16:       20:  157:/*EOF*/
      149:      192:  158:/*EOF*/
      144:      186:  159:/*EOF*/
      356:      482:  160:/*EOF*/
      268:      352:  161:/*EOF*/
       56:       56:  162:/*EOF*/
       56:       56:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      144:      186:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       10:       12:  168:/*EOF*/
       10:       12:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      943:     1140:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     1118:     1362:  176:/*EOF*/
      350:      444:  177:/*EOF*/
      350:      444:  178:/*EOF*/
      340:      434:  179:/*EOF*/
      330:      424:  180:/*EOF*/
      330:      424:  181:/*EOF*/
      330:      424:  182:/*EOF*/
      330:      424:  183:/*EOF*/
      330:      424:  184:/*EOF*/
      330:      424:  185:/*EOF*/
      330:      424:  186:/*EOF*/
      330:      424:  187:/*EOF*/
      330:      424:  188:/*EOF*/
      330:      424:  189:/*EOF*/
      330:      424:  190:/*EOF*/
      330:      424:  191:/*EOF*/
      330:      424:  192:/*EOF*/
      330:      424:  193:/*EOF*/
      330:      424:  194:/*EOF*/
     1273:     1564:  195:/*EOF*/
     1108:     1352:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      201:      327:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      201:      327:  243:/*EOF*/
      201:      327:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      201:      327:  246:/*EOF*/
        -:        -:  247:/*EOF*/
      201:      327:  248:/*EOF*/
     1131:     1566:  249:/*EOF*/
        -:        -:  250:/*EOF*/
     2274:     2921:  251:/*EOF*/
     1344:     1682:  252:/*EOF*/
       88:      150:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      672:      841:  255:/*EOF*/
      672:      841:  256:/*EOF*/
        -:        -:  257:/*EOF*/
     1525:     1849:  258:/*EOF*/
        -:        -:  259:/*EOF*/
     1690:     1996:  260:/*EOF*/
      837:      988:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      672:      841:  268:/*EOF*/
      915:     1140:  269:/*EOF*/
      486:      598:  270:/*EOF*/
      316:      398:  271:/*EOF*/
       73:       99:  272:/*EOF*/
        -:        -:  273:/*EOF*/
      429:      542:  274:/*EOF*/
      429:      542:  275:/*EOF*/
      429:      542:  276:/*EOF*/
      429:      542:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
     2384:     3013:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
     1454:     1774:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      368:      500:  323:/*EOF*/
      281:      391:  324:/*EOF*/
      106:      152:  325:/*EOF*/
       18:       22:  326:/*EOF*/
       18:       22:  327:/*EOF*/
       18:       22:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
     3453:     4249:  332:/*EOF*/
     2299:     2849:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
     4598:     5698:  338:/*EOF*/
     2299:     2849:  339:/*EOF*/
     2299:     2849:  340:/*EOF*/
       56:       70:  341:/*EOF*/
       56:       70:  342:/*EOF*/
       56:       70:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
     2243:     2779:  349:/*EOF*/
      226:      282:  350:/*EOF*/
      226:      282:  351:/*EOF*/
      226:      282:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      930:     1239:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      201:      327:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      201:      327:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       17:       19:  366:/*EOF*/
        -:        -:  367:/*EOF*/
       17:       19:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       17:       19:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      218:      346:  372:/*EOF*/
      201:      327:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       17:       19:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
       17:       19:  379:/*EOF*/
        3:        3:  380:/*EOF*/

src/intel/compiler/brw_fs_dead_code_eliminate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_dead_code_eliminate.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      205:      273:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      410:      546:   43:/*EOF*/
      410:      546:   44:/*EOF*/
      505:      639:   45:/*EOF*/
      300:      366:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      104:      106:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      104:      106:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      104:      106:   65:/*EOF*/
       95:       97:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        9:        9:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       22:       24:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       22:       24:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       22:       24:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       22:       24:   80:/*EOF*/
       22:       24:   81:/*EOF*/
       22:       24:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      272:      392:   84:/*EOF*/
      250:      368:   85:/*EOF*/
      500:      736:   86:/*EOF*/
      250:      368:   87:/*EOF*/
      250:      368:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     1368:     1775:   90:/*EOF*/
     1118:     1407:   91:/*EOF*/
      698:      807:   92:/*EOF*/
      698:      807:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1700:     1971:   95:/*EOF*/
     1002:     1164:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      906:     1019:   98:/*EOF*/
      113:      115:   99:/*EOF*/
      104:      106:  100:/*EOF*/
      104:      106:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1118:     1407:  105:/*EOF*/
       86:       84:  106:/*EOF*/
       86:       84:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
     1118:     1407:  110:/*EOF*/
      594:      701:  111:/*EOF*/
      594:      701:  112:/*EOF*/
     1444:     1710:  113:/*EOF*/
      850:     1009:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     1118:     1407:  119:/*EOF*/
     1008:     1227:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     1118:     1407:  122:/*EOF*/
       86:       84:  123:/*EOF*/
       86:       84:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     2356:     2949:  127:/*EOF*/
     1324:     1626:  128:/*EOF*/
      828:     1006:  129:/*EOF*/
        -:        -:  130:/*EOF*/
     2055:     2507:  131:/*EOF*/
     1227:     1501:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     1032:     1323:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       22:       24:  141:/*EOF*/
       22:       24:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       22:       24:  144:/*EOF*/
        7:        7:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       22:       24:  147:/*EOF*/
        3:        3:  148:/*EOF*/

src/intel/compiler/brw_fs_generator.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_generator.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_generator.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_generator.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      283:      287:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      283:      287:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      263:      267:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       20:       20:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      454:      478:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      454:      478:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       20:       20:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      283:      287:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      283:      287:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       99:      101:   84:/*EOF*/
      382:      388:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      283:      287:   93:/*EOF*/
      283:      287:   94:/*EOF*/
      283:      287:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      283:      287:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
      283:      287:  140:/*EOF*/
      283:      287:  141:/*EOF*/
      283:      287:  142:/*EOF*/
      283:      287:  143:/*EOF*/
      283:      287:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
      114:      130:  148:/*EOF*/
      114:      130:  149:/*EOF*/
      114:      130:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       57:       61:  153:/*EOF*/
       57:       61:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      908:      956:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
      454:      478:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      454:      478:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        6:        6:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        5:        5:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        5:        5:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        5:        5:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        1:        1:  269:/*EOF*/
        4:        4:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        4:        4:  275:/*EOF*/
        2:        2:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        2:        2:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        5:        5:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       10:       10:  283:/*EOF*/
        5:        5:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       10:       10:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        5:        5:  298:/*EOF*/
        5:        5:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        5:        5:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        5:        5:  304:/*EOF*/
        5:        5:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        5:        5:  308:/*EOF*/
        5:        5:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        5:        5:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        5:        5:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        5:        5:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        5:        5:  383:/*EOF*/
        5:        5:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        5:        5:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
        -:        -:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        8:        8:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        8:        8:  643:/*EOF*/
        8:        8:  644:/*EOF*/
        8:        8:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       16:       16:  647:/*EOF*/
       16:       16:  648:/*EOF*/
        8:        8:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        8:        8:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
        -:        -:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
    #####:    #####: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
    #####:    #####: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
    #####:    #####: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        7:        8: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        9:       11: 1610:/*EOF*/
        2:        3: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        5:        5: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        5:        5: 1615:/*EOF*/
        5:        5: 1616:/*EOF*/
        5:        5: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        5:        5: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
      208:      220: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
      203:      215: 1624:/*EOF*/
      203:      215: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
      406:      430: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
      203:      215: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
      203:      215: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
      203:      215: 1662:/*EOF*/
      203:      215: 1663:/*EOF*/
      203:      215: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
      454:      478: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
      251:      263: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
      295:      319: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
      251:      263: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
      203:      215: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
      203:      215: 1682:/*EOF*/
      203:      215: 1683:/*EOF*/
      203:      215: 1684:/*EOF*/
      203:      215: 1685:/*EOF*/
      203:      215: 1686:/*EOF*/
      203:      215: 1687:/*EOF*/
      203:      215: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
      203:      215: 1690:/*EOF*/
      203:      215: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
      203:      215: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
      203:      215: 1698:/*EOF*/
      203:      215: 1699:/*EOF*/
      203:      215: 1700:/*EOF*/
      203:      215: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
      203:      215: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
       33:       37: 1705:/*EOF*/
       33:       37: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
       17:       17: 1708:/*EOF*/
       17:       17: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
       18:       18: 1711:/*EOF*/
       18:       18: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       18:       18: 1725:/*EOF*/
       18:       18: 1726:/*EOF*/
       18:       18: 1727:/*EOF*/
       18:       18: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       12:       12: 1740:/*EOF*/
       12:       12: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
    #####:    #####: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
       22:       26: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
    #####:    #####: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
       22:       26: 1789:/*EOF*/
       22:       26: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        4:        4: 1792:/*EOF*/
        4:        4: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
       18:       14: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
       18:       14: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
       18:       14: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
    #####:    #####: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
       18:       14: 1860:/*EOF*/
       18:       14: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        4:        8: 1864:/*EOF*/
        4:        8: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        8:       12: 1868:/*EOF*/
        8:       12: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        4:        8: 1875:/*EOF*/
        4:        8: 1876:/*EOF*/
        4:        8: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
       12:       12: 1886:/*EOF*/
       12:       12: 1887:/*EOF*/
       12:       12: 1888:/*EOF*/
       12:       12: 1889:/*EOF*/
       12:       12: 1890:/*EOF*/
       12:       12: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
       12:       12: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        8:        8: 1922:/*EOF*/
        8:        8: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        1:        1: 1925:/*EOF*/
        1:        1: 1926:/*EOF*/
        1:        1: 1927:/*EOF*/
        1:        1: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        1:        1: 1930:/*EOF*/
        1:        1: 1931:/*EOF*/
        1:        1: 1932:/*EOF*/
        1:        1: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
    #####:    #####: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
    #####:    #####: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        5:        5: 2015:/*EOF*/
        5:        5: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
    #####:    #####: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
    #####:    #####: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
    #####:    #####: 2105:/*EOF*/
    #####:    #####: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
    #####:    #####: 2114:/*EOF*/
    #####:    #####: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
      203:      215: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
      203:      215: 2152:/*EOF*/
       22:       30: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
       22:       30: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
       22:       30: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
       22:       30: 2159:/*EOF*/
       22:       30: 2160:/*EOF*/
       22:       30: 2161:/*EOF*/
       22:       30: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        5:        5: 2166:/*EOF*/
        5:        5: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        5:        5: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        5:        5: 2176:/*EOF*/
        5:        5: 2177:/*EOF*/
        5:        5: 2178:/*EOF*/
        5:        5: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        5:        5: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
    #####:    #####: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        5:        5: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
       15:       15: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        5:        5: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        5:        5: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        5:        5: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        5:        5: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        3:        3: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        3:        3: 2211:/*EOF*/
        3:        3: 2212:/*EOF*/

src/intel/compiler/brw_fs.h.gcov

        -:        -:    0:Source:compiler/brw_fs.h
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      567:      583:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      567:      583:   50:/*EOF*/

src/intel/compiler/brw_fs_live_variables.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_live_variables.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_live_variables.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_live_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     3149:     3745:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     3149:     3745:   59:/*EOF*/
     3149:     3745:   60:/*EOF*/
        -:        -:   61:/*EOF*/
     3149:     3745:   62:/*EOF*/
     3149:     3745:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     3149:     3745:   69:/*EOF*/
     1728:     2121:   70:/*EOF*/
     3149:     3745:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
     2332:     2665:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
     2332:     2665:   77:/*EOF*/
     2332:     2665:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     2332:     2665:   80:/*EOF*/
     2332:     2665:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     2332:     2665:   86:/*EOF*/
     2332:     2665:   87:/*EOF*/
     2080:     2371:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     2332:     2665:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       48:       52:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       48:       52:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      640:      944:  106:/*EOF*/
      592:      892:  107:/*EOF*/
      592:      892:  108:/*EOF*/
      544:      840:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      592:      892:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     3231:     4227:  113:/*EOF*/
        -:        -:  114:/*EOF*/
     5945:     7275:  115:/*EOF*/
     3306:     3940:  116:/*EOF*/
        -:        -:  117:/*EOF*/
     3306:     3940:  118:/*EOF*/
     1194:     1440:  119:/*EOF*/
        -:        -:  120:/*EOF*/
     5261:     6245:  121:/*EOF*/
     3149:     3745:  122:/*EOF*/
     3149:     3745:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     2639:     3335:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     2639:     3335:  130:/*EOF*/
     1614:     1838:  131:/*EOF*/
     3946:     4503:  132:/*EOF*/
     2332:     2665:  133:/*EOF*/
     2332:     2665:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
     2639:     3335:  138:/*EOF*/
     2375:     2915:  139:/*EOF*/
        -:        -:  140:/*EOF*/
     2639:     3335:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       48:       52:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       48:       52:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       48:       52:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      240:      288:  157:/*EOF*/
       96:      118:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     1824:     3128:  160:/*EOF*/
     1728:     3010:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
     4008:     7124:  164:/*EOF*/
     2280:     4114:  165:/*EOF*/
        -:        -:  166:/*EOF*/
     9564:    17663:  167:/*EOF*/
    14568:    27098:  168:/*EOF*/
    14568:    27098:  169:/*EOF*/
     7284:    13549:  170:/*EOF*/
     1577:     2715:  171:/*EOF*/
     1577:     2715:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     4560:     8228:  175:/*EOF*/
     4560:     8228:  176:/*EOF*/
     2280:     4114:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     7212:    12995:  184:/*EOF*/
     5484:     9985:  185:/*EOF*/
    10968:    19970:  186:/*EOF*/
    10968:    19970:  187:/*EOF*/
     5484:     9985:  188:/*EOF*/
     1451:     2448:  189:/*EOF*/
     1451:     2448:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1728:     3010:  193:/*EOF*/
     3456:     6020:  194:/*EOF*/
     3456:     6020:  195:/*EOF*/
     1728:     3010:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       48:       52:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       48:       52:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      640:      944:  211:/*EOF*/
      592:      892:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    52646:    81801:  214:/*EOF*/
    52054:    80909:  215:/*EOF*/
     6246:    12345:  216:/*EOF*/
     6246:    12345:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    52054:    80909:  220:/*EOF*/
     6528:    12768:  221:/*EOF*/
     6528:    12768:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       48:       52:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       48:       52:  228:/*EOF*/
       48:       52:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       48:       52:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       48:       52:  233:/*EOF*/
       48:       52:  234:/*EOF*/
       48:       52:  235:/*EOF*/
     1587:     1771:  236:/*EOF*/
     1539:     1719:  237:/*EOF*/
     1539:     1719:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
       48:       52:  241:/*EOF*/
     1587:     1771:  242:/*EOF*/
     3937:     4402:  243:/*EOF*/
     2398:     2683:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
       48:       52:  248:/*EOF*/
       48:       52:  249:/*EOF*/
     2446:     2735:  250:/*EOF*/
     2398:     2683:  251:/*EOF*/
     2398:     2683:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       48:       52:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       48:       52:  257:/*EOF*/
      640:      944:  258:/*EOF*/
      592:      892:  259:/*EOF*/
      592:      892:  260:/*EOF*/
      592:      892:  261:/*EOF*/
      592:      892:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      592:      892:  264:/*EOF*/
      592:      892:  265:/*EOF*/
      592:      892:  266:/*EOF*/
      592:      892:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       48:       52:  270:/*EOF*/
       48:       52:  271:/*EOF*/
       48:       52:  272:/*EOF*/
       48:       52:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       96:      104:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       48:       52:  277:/*EOF*/
       48:       52:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      565:      654:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      565:      654:  283:/*EOF*/
      565:      654:  284:/*EOF*/
      565:      654:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      105:      115:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      105:      115:  296:/*EOF*/
       57:       63:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       48:       52:  299:/*EOF*/
       48:       52:  300:/*EOF*/
       48:       52:  301:/*EOF*/
       48:       52:  302:/*EOF*/
       48:       52:  303:/*EOF*/
        -:        -:  304:/*EOF*/
     1587:     1771:  305:/*EOF*/
     1539:     1719:  306:/*EOF*/
     1539:     1719:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       48:       52:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
     2446:     2735:  313:/*EOF*/
     2398:     2683:  314:/*EOF*/
     4796:     5366:  315:/*EOF*/
     4796:     5366:  316:/*EOF*/
     4796:     5366:  317:/*EOF*/
     4796:     5366:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       64:       67:  323:/*EOF*/
        -:        -:  324:/*EOF*/
       64:       67:  325:/*EOF*/
       64:       67:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
     1782:     1782:  330:/*EOF*/
        -:        -:  331:/*EOF*/
     1782:     1782:  332:/*EOF*/
     1782:     1782:  333:/*EOF*/
        3:        3:  334:/*EOF*/

src/intel/compiler/brw_fs_lower_conversions.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_conversions.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_lower_conversions.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_lower_conversions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
      206:      218:   31:/*EOF*/
      206:      218:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
       32:       36:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        4:        4:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      170:      178:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        5:        5:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        5:        5:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      211:      223:   51:/*EOF*/
      206:      218:   52:/*EOF*/
      206:      218:   53:/*EOF*/
      206:      218:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      206:      218:   56:/*EOF*/
      206:      218:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        5:        5:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/
        3:        3:  107:/*EOF*/

src/intel/compiler/brw_fs_lower_pack.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_pack.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_lower_pack.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_lower_pack.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        5:        5:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        5:        5:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      199:      211:   35:/*EOF*/
      194:      206:   36:/*EOF*/
      194:      206:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        5:        5:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        5:        5:   54:/*EOF*/
        3:        3:   55:/*EOF*/

src/intel/compiler/brw_fs_nir.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_nir.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        5:        5:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        5:        5:   38:/*EOF*/
        5:        5:   39:/*EOF*/
        5:        5:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       10:       10:   43:/*EOF*/
        5:        5:   44:/*EOF*/
        5:        5:   45:/*EOF*/
        5:        5:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        5:        5:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        5:        5:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        5:        5:   53:/*EOF*/
        5:        5:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        5:        5:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        5:        5:   71:/*EOF*/
        2:        2:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       67:       99:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      244:      288:   82:/*EOF*/
      177:      189:   83:/*EOF*/
      145:      157:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       32:       32:   86:/*EOF*/
       32:       32:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       32:       32:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       67:       99:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        5:        5:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        5:        5:  231:/*EOF*/
      170:      170:  232:/*EOF*/
      165:      165:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       10:       10:  236:/*EOF*/
        5:        5:  237:/*EOF*/
        5:        5:  238:/*EOF*/
       72:      104:  239:/*EOF*/
       67:       99:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        5:        5:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        5:        5:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        5:        5:  248:/*EOF*/
       51:       51:  249:/*EOF*/
       46:       46:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       27:       27:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       22:       22:  255:/*EOF*/
       22:       22:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       22:       22:  258:/*EOF*/
       22:       22:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        5:        5:  265:/*EOF*/
        5:        5:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       45:       65:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       45:       65:  271:/*EOF*/
      134:      198:  272:/*EOF*/
       89:      133:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       18:       26:  275:/*EOF*/
       18:       26:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        4:        8:  279:/*EOF*/
        4:        8:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       67:       99:  283:/*EOF*/
       67:       99:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       45:       65:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       18:       26:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       36:       52:  296:/*EOF*/
       36:       52:  297:/*EOF*/
       36:       52:  298:/*EOF*/
       18:       26:  299:/*EOF*/
        -:        -:  300:/*EOF*/
       18:       26:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       18:       26:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       18:       26:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       18:       26:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       18:       26:  310:/*EOF*/
       18:       26:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        4:        8:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        4:        8:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        4:        8:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        4:        8:  320:/*EOF*/
        4:        8:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
       67:       99:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      244:      288:  326:/*EOF*/
      177:      189:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       67:       99:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
      177:      189:  332:/*EOF*/
        -:        -:  333:/*EOF*/
      177:      189:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      177:      189:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      110:      114:  338:/*EOF*/
      110:      114:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       32:       32:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
       32:       32:  356:/*EOF*/
       32:       32:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       32:       32:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       27:       27:  371:/*EOF*/
       27:       27:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        8:       16:  382:/*EOF*/
        8:       16:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
      177:      189:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        4:        4:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        4:        4:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        4:        4:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        4:        4:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        4:        4:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        4:        4:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
      110:      114:  550:/*EOF*/
        -:        -:  551:/*EOF*/
      110:      114:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
      110:      114:  555:/*EOF*/
      220:      228:  556:/*EOF*/
      330:      342:  557:/*EOF*/
      220:      228:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      110:      114:  560:/*EOF*/
      308:      320:  561:/*EOF*/
      198:      206:  562:/*EOF*/
      396:      412:  563:/*EOF*/
      594:      618:  564:/*EOF*/
      396:      412:  565:/*EOF*/
      198:      206:  566:/*EOF*/
      198:      206:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
      110:      114:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
       20:       20:  580:/*EOF*/
       20:       20:  581:/*EOF*/
       46:       46:  582:/*EOF*/
       32:       32:  583:/*EOF*/
        6:        6:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      100:      100:  591:/*EOF*/
       80:       80:  592:/*EOF*/
       54:       54:  593:/*EOF*/
        -:        -:  594:/*EOF*/
       26:       26:  595:/*EOF*/
       36:       36:  596:/*EOF*/
       54:       54:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       16:       16:  599:/*EOF*/
       24:       24:  600:/*EOF*/
        -:        -:  601:/*EOF*/
       26:       26:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
       20:       20:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
       20:       20:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       90:       94:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       90:       94:  627:/*EOF*/
       90:       94:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
       90:       94:  632:/*EOF*/
       90:       94:  633:/*EOF*/
        -:        -:  634:/*EOF*/
       90:       94:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
      262:      274:  638:/*EOF*/
      172:      180:  639:/*EOF*/
      172:      180:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       90:       94:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        4:        4:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        4:        4:  648:/*EOF*/
        4:        4:  649:/*EOF*/
        4:        4:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        8:        8:  793:/*EOF*/
        8:        8:  794:/*EOF*/
        8:        8:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
       14:       14:  852:/*EOF*/
       14:       14:  853:/*EOF*/
       14:       14:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
       18:       18:  857:/*EOF*/
       18:       18:  858:/*EOF*/
       18:       18:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
       14:       18:  929:/*EOF*/
       14:       18:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
       14:       18:  934:/*EOF*/
        -:        -:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
       14:       18:  939:/*EOF*/
       14:       18:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
       14:       18:  950:/*EOF*/
       14:       18:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       14:       18:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        4:        4:  963:/*EOF*/
        4:        4:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        4:        4:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        4:        4:  976:/*EOF*/
        4:        4:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
        -:        -:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        4:        4:  987:/*EOF*/
        4:        4:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        4:        4:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
       12:       12: 1121:/*EOF*/
       12:       12: 1122:/*EOF*/
       12:       12: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
       12:       12: 1312:/*EOF*/
       12:       12: 1313:/*EOF*/
       12:       12: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        4:        4: 1322:/*EOF*/
    #####:    #####: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        4:        4: 1325:/*EOF*/
        4:        4: 1326:/*EOF*/
        4:        4: 1327:/*EOF*/
        4:        4: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
       90:       94: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
    #####:    #####: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
       27:       27: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
       27:       27: 1369:/*EOF*/
       27:       27: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
       27:       27: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
       66:       66: 1374:/*EOF*/
       39:       39: 1375:/*EOF*/
       27:       27: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
       27:       27: 1388:/*EOF*/
       27:       27: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
      221:      237: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
      221:      237: 1394:/*EOF*/
      221:      237: 1395:/*EOF*/
      153:      165: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
      153:      165: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       68:       72: 1405:/*EOF*/
      204:      216: 1406:/*EOF*/
      204:      216: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      221:      237: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
      155:      159: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
      155:      159: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
      113:      117: 1432:/*EOF*/
      113:      117: 1433:/*EOF*/
      113:      117: 1434:/*EOF*/
      113:      117: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
       42:       42: 1438:/*EOF*/
       42:       42: 1439:/*EOF*/
       84:       84: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
    #####:    #####: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
    #####:    #####: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
    #####:    #####: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
    #####:    #####: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
    #####:    #####: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
    #####:    #####: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
    #####:    #####: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
    #####:    #####: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
    #####:    #####: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
    #####:    #####: 2100:/*EOF*/
    #####:    #####: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
    #####:    #####: 2103:/*EOF*/
    #####:    #####: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
    #####:    #####: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
    #####:    #####: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
    #####:    #####: 2116:/*EOF*/
    #####:    #####: 2117:/*EOF*/
    #####:    #####: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
    #####:    #####: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
    #####:    #####: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
    #####:    #####: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
    #####:    #####: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
    #####:    #####: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
    #####:    #####: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
    #####:    #####: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
    #####:    #####: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
    #####:    #####: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
    #####:    #####: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
    #####:    #####: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
    #####:    #####: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
    #####:    #####: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
    #####:    #####: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
    #####:    #####: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
    #####:    #####: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
    #####:    #####: 2378:/*EOF*/
    #####:    #####: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
    #####:    #####: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
    #####:    #####: 2384:/*EOF*/
    #####:    #####: 2385:/*EOF*/
    #####:    #####: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
    #####:    #####: 2393:/*EOF*/
    #####:    #####: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
    #####:    #####: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
    #####:    #####: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
    #####:    #####: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
    #####:    #####: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
    #####:    #####: 2422:/*EOF*/
    #####:    #####: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
    #####:    #####: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
    #####:    #####: 2430:/*EOF*/
    #####:    #####: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
    #####:    #####: 2433:/*EOF*/
    #####:    #####: 2434:/*EOF*/
    #####:    #####: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
    #####:    #####: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
    #####:    #####: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
    #####:    #####: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
    #####:    #####: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
    #####:    #####: 2469:/*EOF*/
    #####:    #####: 2470:/*EOF*/
    #####:    #####: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
    #####:    #####: 2477:/*EOF*/
    #####:    #####: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
    #####:    #####: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
    #####:    #####: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
    #####:    #####: 2507:/*EOF*/
    #####:    #####: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
    #####:    #####: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
    #####:    #####: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
    #####:    #####: 2528:/*EOF*/
    #####:    #####: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
    #####:    #####: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
    #####:    #####: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
    #####:    #####: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
    #####:    #####: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
    #####:    #####: 2552:/*EOF*/
    #####:    #####: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
    #####:    #####: 2555:/*EOF*/
    #####:    #####: 2556:/*EOF*/
    #####:    #####: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
    #####:    #####: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
    #####:    #####: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
    #####:    #####: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
    #####:    #####: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
    #####:    #####: 2574:/*EOF*/
    #####:    #####: 2575:/*EOF*/
    #####:    #####: 2576:/*EOF*/
    #####:    #####: 2577:/*EOF*/
    #####:    #####: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
    #####:    #####: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
    #####:    #####: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
    #####:    #####: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
    #####:    #####: 2596:/*EOF*/
    #####:    #####: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
    #####:    #####: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
    #####:    #####: 2604:/*EOF*/
    #####:    #####: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
    #####:    #####: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
    #####:    #####: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
    #####:    #####: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
    #####:    #####: 2645:/*EOF*/
    #####:    #####: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
    #####:    #####: 2652:/*EOF*/
    #####:    #####: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
    #####:    #####: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
    #####:    #####: 2663:/*EOF*/
    #####:    #####: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
    #####:    #####: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
    #####:    #####: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
    #####:    #####: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
    #####:    #####: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
    #####:    #####: 2695:/*EOF*/
    #####:    #####: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
    #####:    #####: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
    #####:    #####: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
    #####:    #####: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
    #####:    #####: 2715:/*EOF*/
    #####:    #####: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
    #####:    #####: 2724:/*EOF*/
    #####:    #####: 2725:/*EOF*/
    #####:    #####: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
    #####:    #####: 2729:/*EOF*/
    #####:    #####: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
    #####:    #####: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
    #####:    #####: 2749:/*EOF*/
    #####:    #####: 2750:/*EOF*/
    #####:    #####: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
    #####:    #####: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
    #####:    #####: 2769:/*EOF*/
    #####:    #####: 2770:/*EOF*/
    #####:    #####: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
    #####:    #####: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
    #####:    #####: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
    #####:    #####: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
    #####:    #####: 2785:/*EOF*/
    #####:    #####: 2786:/*EOF*/
    #####:    #####: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
    #####:    #####: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
    #####:    #####: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
    #####:    #####: 2803:/*EOF*/
    #####:    #####: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
    #####:    #####: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
    #####:    #####: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
    #####:    #####: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
    #####:    #####: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
    #####:    #####: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
    #####:    #####: 2848:/*EOF*/
    #####:    #####: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
    #####:    #####: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
    #####:    #####: 2853:/*EOF*/
    #####:    #####: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
    #####:    #####: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
    #####:    #####: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
    #####:    #####: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
    #####:    #####: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
    #####:    #####: 2936:/*EOF*/
    #####:    #####: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
    #####:    #####: 2940:/*EOF*/
    #####:    #####: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    #####:    #####: 2945:/*EOF*/
    #####:    #####: 2946:/*EOF*/
    #####:    #####: 2947:/*EOF*/
    #####:    #####: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
    #####:    #####: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
    #####:    #####: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
    #####:    #####: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
    #####:    #####: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
    #####:    #####: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        5:        5: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        5:        5: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        5:        5: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
       10:       10: 3009:/*EOF*/
        5:        5: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        5:        5: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        5:        5: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        5:        5: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        5:        5: 3021:/*EOF*/
        5:        5: 3022:/*EOF*/
        5:        5: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        5:        5: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        5:        5: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        5:        5: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
    #####:    #####: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
    #####:    #####: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
    #####:    #####: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
       32:       32: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
       32:       32: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
       32:       32: 3056:/*EOF*/
       32:       32: 3057:/*EOF*/
       27:       27: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
       32:       32: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
    #####:    #####: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
    #####:    #####: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
    #####:    #####: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
    #####:    #####: 3070:/*EOF*/
    #####:    #####: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
    #####:    #####: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
    #####:    #####: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        5:        5: 3092:/*EOF*/
        5:        5: 3093:/*EOF*/
        5:        5: 3094:/*EOF*/
        5:        5: 3095:/*EOF*/
        5:        5: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        5:        5: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
       25:       25: 3100:/*EOF*/
       40:       40: 3101:/*EOF*/
       60:       60: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        5:        5: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
    #####:    #####: 3110:/*EOF*/
    #####:    #####: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
    #####:    #####: 3113:/*EOF*/
    #####:    #####: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
    #####:    #####: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
    #####:    #####: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
    #####:    #####: 3142:/*EOF*/
    #####:    #####: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        1:        1: 3156:/*EOF*/
        1:        1: 3157:/*EOF*/
        1:        1: 3158:/*EOF*/
        1:        1: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        1:        1: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
        1:        1: 3164:/*EOF*/
    #####:    #####: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        1:        1: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        5:        5: 3176:/*EOF*/
        4:        4: 3177:/*EOF*/
        4:        4: 3178:/*EOF*/
        8:        8: 3179:/*EOF*/
       12:       12: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        1:        1: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        1:        1: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        4:        4: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
    #####:    #####: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
    #####:    #####: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
    #####:    #####: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
    #####:    #####: 3255:/*EOF*/
    #####:    #####: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
    #####:    #####: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
    #####:    #####: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
    #####:    #####: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
    #####:    #####: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
    #####:    #####: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        4:        4: 3325:/*EOF*/
        2:        2: 3326:/*EOF*/
        2:        2: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        4:        4: 3330:/*EOF*/
        2:        2: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        2:        2: 3333:/*EOF*/
        2:        2: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        2:        2: 3336:/*EOF*/
        2:        2: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        2:        2: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        2:        2: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        2:        2: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
       10:       10: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        8:        8: 3354:/*EOF*/
        8:        8: 3355:/*EOF*/
        8:        8: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        8:        8: 3358:/*EOF*/
    #####:    #####: 3359:/*EOF*/
    #####:    #####: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        8:        8: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        2:        2: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
       18:       18: 3370:/*EOF*/
       18:       18: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
       32:       32: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
    #####:    #####: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
    #####:    #####: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
    #####:    #####: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
    #####:    #####: 3394:/*EOF*/
    #####:    #####: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
    #####:    #####: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
    #####:    #####: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
    #####:    #####: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
    #####:    #####: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
    #####:    #####: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
    #####:    #####: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
    #####:    #####: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
    #####:    #####: 3465:/*EOF*/
    #####:    #####: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
    #####:    #####: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
    #####:    #####: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
    #####:    #####: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
    #####:    #####: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
    #####:    #####: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
    #####:    #####: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
    #####:    #####: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
    #####:    #####: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
    #####:    #####: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
    #####:    #####: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
    #####:    #####: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
    #####:    #####: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
    #####:    #####: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
    #####:    #####: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
    #####:    #####: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
    #####:    #####: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
       18:       18: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
       18:       18: 3566:/*EOF*/
       18:       18: 3567:/*EOF*/
       18:       18: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
       18:       18: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
    #####:    #####: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
    #####:    #####: 3594:/*EOF*/
    #####:    #####: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
    #####:    #####: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
    #####:    #####: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
    #####:    #####: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
    #####:    #####: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
    #####:    #####: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
    #####:    #####: 3630:/*EOF*/
    #####:    #####: 3631:/*EOF*/
    #####:    #####: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
    #####:    #####: 3640:/*EOF*/
    #####:    #####: 3641:/*EOF*/
    #####:    #####: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
    #####:    #####: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
    #####:    #####: 3648:/*EOF*/
    #####:    #####: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
    #####:    #####: 3651:/*EOF*/
    #####:    #####: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
    #####:    #####: 3658:/*EOF*/
    #####:    #####: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
    #####:    #####: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
    #####:    #####: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
    #####:    #####: 3684:/*EOF*/
    #####:    #####: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
    #####:    #####: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
    #####:    #####: 3716:/*EOF*/
    #####:    #####: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
    #####:    #####: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
    #####:    #####: 3726:/*EOF*/
    #####:    #####: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
    #####:    #####: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
    #####:    #####: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
    #####:    #####: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
    #####:    #####: 3748:/*EOF*/
    #####:    #####: 3749:/*EOF*/
    #####:    #####: 3750:/*EOF*/
    #####:    #####: 3751:/*EOF*/
    #####:    #####: 3752:/*EOF*/
    #####:    #####: 3753:/*EOF*/
    #####:    #####: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
    #####:    #####: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
       18:       18: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
       18:       18: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
       18:       18: 3775:/*EOF*/
       18:       18: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
       18:       18: 3778:/*EOF*/
       18:       18: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
       44:       44: 3781:/*EOF*/
       26:       26: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
    #####:    #####: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
    #####:    #####: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
    #####:    #####: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
    #####:    #####: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
    #####:    #####: 3804:/*EOF*/
    #####:    #####: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
    #####:    #####: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
    #####:    #####: 3819:/*EOF*/
    #####:    #####: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
       18:       18: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
    #####:    #####: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
    #####:    #####: 3832:/*EOF*/
    #####:    #####: 3833:/*EOF*/
    #####:    #####: 3834:/*EOF*/
    #####:    #####: 3835:/*EOF*/
    #####:    #####: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
    #####:    #####: 3842:/*EOF*/
    #####:    #####: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
    #####:    #####: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
    #####:    #####: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
    #####:    #####: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
    #####:    #####: 3855:/*EOF*/
    #####:    #####: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
    #####:    #####: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
    #####:    #####: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
    #####:    #####: 3873:/*EOF*/
    #####:    #####: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
    #####:    #####: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
    #####:    #####: 3880:/*EOF*/
        -:        -: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
    #####:    #####: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
    #####:    #####: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
    #####:    #####: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
    #####:    #####: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
    #####:    #####: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
    #####:    #####: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
    #####:    #####: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
    #####:    #####: 3925:/*EOF*/
    #####:    #####: 3926:/*EOF*/
    #####:    #####: 3927:/*EOF*/
    #####:    #####: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
    #####:    #####: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
    #####:    #####: 3934:/*EOF*/
    #####:    #####: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
    #####:    #####: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
    #####:    #####: 3943:/*EOF*/
    #####:    #####: 3944:/*EOF*/
        -:        -: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
    #####:    #####: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
    #####:    #####: 3950:/*EOF*/
    #####:    #####: 3951:/*EOF*/
    #####:    #####: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
    #####:    #####: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
    #####:    #####: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
    #####:    #####: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
    #####:    #####: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
    #####:    #####: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
    #####:    #####: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
    #####:    #####: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
    #####:    #####: 3984:/*EOF*/
    #####:    #####: 3985:/*EOF*/
    #####:    #####: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
    #####:    #####: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
    #####:    #####: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
    #####:    #####: 4009:/*EOF*/
    #####:    #####: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
    #####:    #####: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
    #####:    #####: 4039:/*EOF*/
    #####:    #####: 4040:/*EOF*/
    #####:    #####: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
    #####:    #####: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
    #####:    #####: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
    #####:    #####: 4065:/*EOF*/
    #####:    #####: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
    #####:    #####: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
    #####:    #####: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
    #####:    #####: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
    #####:    #####: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
    #####:    #####: 4096:/*EOF*/
    #####:    #####: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
    #####:    #####: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
    #####:    #####: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
    #####:    #####: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
       18:       18: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
    #####:    #####: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
    #####:    #####: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
    #####:    #####: 4162:/*EOF*/
    #####:    #####: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
    #####:    #####: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
    #####:    #####: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
    #####:    #####: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
    #####:    #####: 4191:/*EOF*/
    #####:    #####: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
    #####:    #####: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
    #####:    #####: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
    #####:    #####: 4202:/*EOF*/
    #####:    #####: 4203:/*EOF*/
    #####:    #####: 4204:/*EOF*/
    #####:    #####: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
    #####:    #####: 4211:/*EOF*/
    #####:    #####: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
    #####:    #####: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
    #####:    #####: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
    #####:    #####: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
    #####:    #####: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
    #####:    #####: 4245:/*EOF*/
    #####:    #####: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
    #####:    #####: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
    #####:    #####: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
    #####:    #####: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
    #####:    #####: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
    #####:    #####: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
    #####:    #####: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
    #####:    #####: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
    #####:    #####: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
    #####:    #####: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
    #####:    #####: 4287:/*EOF*/
    #####:    #####: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
    #####:    #####: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
    #####:    #####: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
    #####:    #####: 4301:/*EOF*/
    #####:    #####: 4302:/*EOF*/
    #####:    #####: 4303:/*EOF*/
    #####:    #####: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
    #####:    #####: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
    #####:    #####: 4320:/*EOF*/
    #####:    #####: 4321:/*EOF*/
    #####:    #####: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
    #####:    #####: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
    #####:    #####: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
    #####:    #####: 4329:/*EOF*/
    #####:    #####: 4330:/*EOF*/
    #####:    #####: 4331:/*EOF*/
    #####:    #####: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
    #####:    #####: 4337:/*EOF*/
    #####:    #####: 4338:/*EOF*/
    #####:    #####: 4339:/*EOF*/
    #####:    #####: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
    #####:    #####: 4344:/*EOF*/
    #####:    #####: 4345:/*EOF*/
    #####:    #####: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
    #####:    #####: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
    #####:    #####: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
    #####:    #####: 4357:/*EOF*/
    #####:    #####: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
    #####:    #####: 4368:/*EOF*/
    #####:    #####: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
    #####:    #####: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
    #####:    #####: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
    #####:    #####: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
    #####:    #####: 4380:/*EOF*/
    #####:    #####: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
    #####:    #####: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
    #####:    #####: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
    #####:    #####: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
    #####:    #####: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
    #####:    #####: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
    #####:    #####: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
    #####:    #####: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
    #####:    #####: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
    #####:    #####: 4421:/*EOF*/
    #####:    #####: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
    #####:    #####: 4432:/*EOF*/
    #####:    #####: 4433:/*EOF*/
    #####:    #####: 4434:/*EOF*/
    #####:    #####: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
    #####:    #####: 4437:/*EOF*/
    #####:    #####: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
    #####:    #####: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
    #####:    #####: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
    #####:    #####: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
    #####:    #####: 4452:/*EOF*/
    #####:    #####: 4453:/*EOF*/
    #####:    #####: 4454:/*EOF*/
    #####:    #####: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
    #####:    #####: 4458:/*EOF*/
    #####:    #####: 4459:/*EOF*/
    #####:    #####: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
    #####:    #####: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
    #####:    #####: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
    #####:    #####: 4470:/*EOF*/
    #####:    #####: 4471:/*EOF*/
    #####:    #####: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
    #####:    #####: 4474:/*EOF*/
    #####:    #####: 4475:/*EOF*/
    #####:    #####: 4476:/*EOF*/
    #####:    #####: 4477:/*EOF*/
    #####:    #####: 4478:/*EOF*/
    #####:    #####: 4479:/*EOF*/
    #####:    #####: 4480:/*EOF*/
    #####:    #####: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
    #####:    #####: 4487:/*EOF*/
    #####:    #####: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
    #####:    #####: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
    #####:    #####: 4493:/*EOF*/
    #####:    #####: 4494:/*EOF*/
    #####:    #####: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
    #####:    #####: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
    #####:    #####: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
    #####:    #####: 4504:/*EOF*/
    #####:    #####: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
    #####:    #####: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        8:       16: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        8:       16: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        8:       16: 4516:/*EOF*/
        8:       16: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
    #####:    #####: 4519:/*EOF*/
    #####:    #####: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
    #####:    #####: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        8:       16: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
    #####:    #####: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
    #####:    #####: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
    #####:    #####: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
    #####:    #####: 4570:/*EOF*/
    #####:    #####: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
    #####:    #####: 4573:/*EOF*/
    #####:    #####: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
    #####:    #####: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
    #####:    #####: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
    #####:    #####: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
    #####:    #####: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
    #####:    #####: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
    #####:    #####: 4607:/*EOF*/
    #####:    #####: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
    #####:    #####: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
    #####:    #####: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
    #####:    #####: 4617:/*EOF*/
    #####:    #####: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
    #####:    #####: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
    #####:    #####: 4626:/*EOF*/
    #####:    #####: 4627:/*EOF*/
    #####:    #####: 4628:/*EOF*/
    #####:    #####: 4629:/*EOF*/
    #####:    #####: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
    #####:    #####: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
    #####:    #####: 4654:/*EOF*/
    #####:    #####: 4655:/*EOF*/
    #####:    #####: 4656:/*EOF*/
    #####:    #####: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
    #####:    #####: 4659:/*EOF*/
        3:        3: 4660:/*EOF*/

src/intel/compiler/brw_fs_reg_allocate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_reg_allocate.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_reg_allocate.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_reg_allocate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
      460:      484:   36:/*EOF*/
        -:        -:   37:/*EOF*/
      460:      484:   38:/*EOF*/
      263:      267:   39:/*EOF*/
      263:      267:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      460:      484:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        3:        3:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        3:        3:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        3:        3:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       51:       51:  108:/*EOF*/
       48:       48:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        3:        3:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
       51:       51:  117:/*EOF*/
       48:       48:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       48:       48:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       48:       48:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       51:       51:  138:/*EOF*/
       48:       48:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        3:        3:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        3:        3:  147:/*EOF*/
        3:        3:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        3:        3:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       54:       54:  154:/*EOF*/
       51:       51:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        3:        3:  161:/*EOF*/
        3:        3:  162:/*EOF*/
       51:       51:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       48:       48:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       48:       48:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
      816:      816:  200:/*EOF*/
      768:      768:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       48:       48:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       48:       48:  206:/*EOF*/
        3:        3:  207:/*EOF*/
        3:        3:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       48:       48:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
     5832:     5832:  226:/*EOF*/
     5784:     5784:  227:/*EOF*/
        -:        -:  228:/*EOF*/
     5784:     5784:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    53928:    53928:  231:/*EOF*/
    53928:    53928:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    48144:    48144:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
     5784:     5784:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        3:        3:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      387:      387:  246:/*EOF*/
      384:      384:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        3:        3:  252:/*EOF*/
        1:        1:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      128:      128:  255:/*EOF*/
      127:      127:  256:/*EOF*/
       64:       64:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       17:       17:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       16:       16:  268:/*EOF*/
       16:       16:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        1:        1:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        3:        3:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        3:        3:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        3:        3:  278:/*EOF*/
       51:       51:  279:/*EOF*/
       48:       48:  280:/*EOF*/
       51:       51:  281:/*EOF*/
       48:       48:  282:/*EOF*/
        3:        3:  283:/*EOF*/
        3:        3:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        1:        1:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        1:        1:  290:/*EOF*/
        1:        1:  291:/*EOF*/
        1:        1:  292:/*EOF*/
        1:        1:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        8:        8:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        8:        8:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        8:        8:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       48:       64:  305:/*EOF*/
       48:       64:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       48:       64:  308:/*EOF*/
    #####:        8:  309:/*EOF*/
       48:       64:  310:/*EOF*/
        8:       16:  311:/*EOF*/
        8:       16:  312:/*EOF*/
        8:        8:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
       10:       10:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
       10:       10:  322:/*EOF*/
       10:       10:  323:/*EOF*/
        -:        -:  324:/*EOF*/
       74:       74:  325:/*EOF*/
       64:       64:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       10:       10:  328:/*EOF*/
      422:      446:  329:/*EOF*/
      412:      436:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        8:       16:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        8:       16:  339:/*EOF*/
        8:        8:  340:/*EOF*/
        8:       16:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        8:       16:  343:/*EOF*/
        8:       16:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      396:      404:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      412:      436:  350:/*EOF*/
      198:      214:  351:/*EOF*/
        -:        -:  352:/*EOF*/
      214:      222:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
      920:      968:  359:/*EOF*/
      508:      532:  360:/*EOF*/
      128:      128:  361:/*EOF*/
      128:      128:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      288:      288:  365:/*EOF*/
      160:      160:  366:/*EOF*/
      160:      160:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      412:      436:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      412:      436:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       10:       10:  386:/*EOF*/
       10:       10:  387:/*EOF*/
        -:        -:  388:/*EOF*/
      412:      436:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      412:      436:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       10:       10:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        5:        5:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        5:        5:  419:/*EOF*/
        5:        5:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       37:       37:  422:/*EOF*/
       32:       32:  423:/*EOF*/
        6:        6:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      438:      438:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
      412:      412:  435:/*EOF*/
      298:      298:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
       37:       37:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       32:       32:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
       32:       32:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        5:        5:  457:/*EOF*/
        5:        5:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        5:        5:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        5:        5:  539:/*EOF*/
        5:        5:  540:/*EOF*/
        5:        5:  541:/*EOF*/
        5:        5:  542:/*EOF*/
        5:        5:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        5:        5:  545:/*EOF*/
        5:        5:  546:/*EOF*/
        5:        5:  547:/*EOF*/
        5:        5:  548:/*EOF*/
        5:        5:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        5:        5:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      102:      102:  554:/*EOF*/
       97:       97:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       97:       97:  558:/*EOF*/
       97:       97:  559:/*EOF*/
       97:       97:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
      147:      147:  571:/*EOF*/
       50:       50:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       97:       97:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     1879:     1879:  579:/*EOF*/
     1782:     1782:  580:/*EOF*/
      535:      593:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
      211:      223:  589:/*EOF*/
      206:      218:  590:/*EOF*/
        8:        8:  591:/*EOF*/
        6:        6:  592:/*EOF*/
        2:        2:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        5:        5:  599:/*EOF*/
        5:        5:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        5:        5:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
      108:      114:  644:/*EOF*/
      106:      112:  645:/*EOF*/
       50:       56:  646:/*EOF*/
        -:        -:  647:/*EOF*/
      144:      144:  648:/*EOF*/
       88:       88:  649:/*EOF*/
       63:       63:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        5:        5:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        5:        5:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        5:        5:  689:/*EOF*/
      102:      102:  690:/*EOF*/
       97:       97:  691:/*EOF*/
        -:        -:  692:/*EOF*/
       97:       97:  693:/*EOF*/
       97:       97:  694:/*EOF*/
       97:       97:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      211:      223:  698:/*EOF*/
      206:      218:  699:/*EOF*/
      460:      484:  700:/*EOF*/
      254:      266:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        5:        5:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        5:        5:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       10:       10:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        3:        3: 1000:/*EOF*/

src/intel/compiler/brw_fs_register_coalesce.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_register_coalesce.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_register_coalesce.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_register_coalesce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       54:       56:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       54:       56:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
       54:       56:   61:/*EOF*/
       54:       56:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     1032:     1315:   69:/*EOF*/
        -:        -:   70:/*EOF*/
     2894:     3685:   71:/*EOF*/
     1037:     1320:   72:/*EOF*/
      414:      530:   73:/*EOF*/
      414:      530:   74:/*EOF*/
      314:      388:   75:/*EOF*/
      214:      246:   76:/*EOF*/
      214:      246:   77:/*EOF*/
      214:      246:   78:/*EOF*/
     1223:     1530:   79:/*EOF*/
       84:       92:   80:/*EOF*/
      978:     1259:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      108:      112:   84:/*EOF*/
       54:       56:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       54:       56:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       54:       56:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       64:       67:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       64:       67:  102:/*EOF*/
       34:       37:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       30:       30:  105:/*EOF*/
       30:       30:  106:/*EOF*/
       30:       30:  107:/*EOF*/
       30:       30:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       30:       30:  111:/*EOF*/
        4:        2:  112:/*EOF*/
        4:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       26:       30:  118:/*EOF*/
       26:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       72:       84:  121:/*EOF*/
       72:       84:  122:/*EOF*/
       24:       28:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       48:       56:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      296:      406:  127:/*EOF*/
      274:      380:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
      274:      380:  131:/*EOF*/
      170:      280:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      104:      100:  135:/*EOF*/
        4:        2:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      100:       98:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      200:      196:  141:/*EOF*/
      294:      290:  142:/*EOF*/
      188:      188:  143:/*EOF*/
       94:       94:  144:/*EOF*/
       26:       30:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       22:       24:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       22:       24:  155:/*EOF*/
        -:        -:  156:/*EOF*/
       22:       24:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       22:       24:  159:/*EOF*/
       22:       24:  160:/*EOF*/
       22:       24:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
     1054:     1339:  167:/*EOF*/
     1032:     1315:  168:/*EOF*/
      978:     1259:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       54:       56:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       54:       56:  177:/*EOF*/
       54:       56:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       54:       56:  180:/*EOF*/
       54:       56:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       54:       56:  183:/*EOF*/
       54:       56:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       54:       56:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       54:       56:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       54:       56:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       54:       56:  199:/*EOF*/
       54:       56:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      133:      138:  210:/*EOF*/
       79:       82:  211:/*EOF*/
       54:       56:  212:/*EOF*/
       54:       56:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       54:       56:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       54:       56:  219:/*EOF*/
       88:       93:  220:/*EOF*/
       64:       67:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       64:       67:  228:/*EOF*/
       64:       67:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       64:       67:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       30:       30:  233:/*EOF*/
       30:       30:  234:/*EOF*/
       30:       30:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       54:       56:  239:/*EOF*/
       30:       30:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       24:       26:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       58:       63:  244:/*EOF*/
       34:       37:  245:/*EOF*/
       24:       26:  246:/*EOF*/
       24:       26:  247:/*EOF*/
       24:       26:  248:/*EOF*/
       48:       52:  249:/*EOF*/
       24:       26:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
     1326:     1835:  255:/*EOF*/
     2064:     2708:  256:/*EOF*/
      762:      899:  257:/*EOF*/
       24:       26:  258:/*EOF*/
       24:       26:  259:/*EOF*/
       24:       26:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
     3002:     3867:  263:/*EOF*/
     2804:     3404:  264:/*EOF*/
     1104:     1346:  265:/*EOF*/
       14:       14:  266:/*EOF*/
       14:       14:  267:/*EOF*/
       14:       14:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       58:       63:  273:/*EOF*/
       34:       37:  274:/*EOF*/
       68:       74:  275:/*EOF*/
       68:       74:  276:/*EOF*/
       34:       37:  277:/*EOF*/
       68:       74:  278:/*EOF*/
       68:       74:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       24:       26:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       22:       24:  284:/*EOF*/
      231:      275:  285:/*EOF*/
      226:      270:  286:/*EOF*/
       24:       26:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
       22:       24:  294:/*EOF*/
        3:        3:  295:/*EOF*/

src/intel/compiler/brw_fs_saturate_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_saturate_propagation.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      144:      238:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      144:      238:   48:/*EOF*/
      144:      238:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      743:     1096:   51:/*EOF*/
      599:      858:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      721:     1030:   54:/*EOF*/
      122:      172:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
      599:      858:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      144:      238:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       12:       14:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       12:       14:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       12:       14:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      156:      252:  149:/*EOF*/
      144:      238:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       12:       14:  155:/*EOF*/
        3:        3:  156:/*EOF*/

src/intel/compiler/brw_fs_sel_peephole.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_sel_peephole.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_sel_peephole.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_sel_peephole.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       18:       26:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       18:       26:   69:/*EOF*/
       30:       34:   70:/*EOF*/
       30:       34:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       12:        8:   74:/*EOF*/
       12:        8:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       18:       26:   78:/*EOF*/
       18:       26:   79:/*EOF*/
       18:       26:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       18:       26:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       19:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       17:       19:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      218:      330:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      201:      311:  133:/*EOF*/
      201:      311:  134:/*EOF*/
      330:      540:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       72:       82:  137:/*EOF*/
       72:       82:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       72:       82:  140:/*EOF*/
       72:       82:  141:/*EOF*/
      144:      164:  142:/*EOF*/
      144:      164:  143:/*EOF*/
       72:       82:  144:/*EOF*/
       18:       26:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       72:       82:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       72:       82:  150:/*EOF*/
       54:       56:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       18:       26:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       18:       26:  155:/*EOF*/
       18:       26:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       17:       19:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       17:       19:  219:/*EOF*/
        3:        3:  220:/*EOF*/

src/intel/compiler/brw_fs_validate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_validate.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_fs_validate.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_fs_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      305:      335:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    15680:    20231:   44:/*EOF*/
    15375:    19896:   45:/*EOF*/
     9464:    11089:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    35129:    44136:   50:/*EOF*/
    19754:    24240:   51:/*EOF*/
    12209:    14937:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      308:      338:   57:/*EOF*/

src/intel/compiler/brw_nir.c.gcov

        -:        -:    0:Source:compiler/brw_nir.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_nir.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
       39:       49:   31:/*EOF*/
        -:        -:   32:/*EOF*/
      113:      143:   33:/*EOF*/
       74:       94:   34:/*EOF*/
       35:       45:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       36:       52:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      242:      310:   63:/*EOF*/
      206:      258:   64:/*EOF*/
      167:      209:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       39:       49:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       39:       49:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        9:       13:   71:/*EOF*/
        9:       13:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        9:       13:   74:/*EOF*/
        9:       13:   75:/*EOF*/
        9:       13:   76:/*EOF*/
        9:       13:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       36:       52:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        5:        5:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       10:       10:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        5:        5:   91:/*EOF*/
       41:       57:   92:/*EOF*/
       36:       52:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        5:        5:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        2:        2:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        3:        3:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        2:        2:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        2:        2:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        2:        2:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        2:        2:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        2:        2:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        3:        3:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        6:        6:  351:/*EOF*/
        3:        3:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        3:        3:  359:/*EOF*/
        2:        2:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        2:        2:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        3:        3:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        3:        3:  378:/*EOF*/
        3:        3:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        3:        3:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        3:        3:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        3:        3:  387:/*EOF*/
        3:        3:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        2:        2:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        5:        5:  394:/*EOF*/
        3:        3:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        2:        2:  398:/*EOF*/
        2:        2:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        3:        3:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        6:        6:  430:/*EOF*/
        3:        3:  431:/*EOF*/
        6:        6:  432:/*EOF*/
        3:        3:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        3:        3:  436:/*EOF*/
        3:        3:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       15:       15:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       15:       15:  459:/*EOF*/
       15:       15:  460:/*EOF*/
       15:       15:  461:/*EOF*/
       15:       15:  462:/*EOF*/
        9:        9:  463:/*EOF*/
       15:       15:  464:/*EOF*/
        9:        9:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       27:       27:  469:/*EOF*/
       27:       27:  470:/*EOF*/
       27:       27:  471:/*EOF*/
        -:        -:  472:/*EOF*/
       27:       27:  473:/*EOF*/
       17:       17:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       27:       27:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       27:       27:  479:/*EOF*/
       17:       17:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       27:       27:  483:/*EOF*/
       27:       27:  484:/*EOF*/
       27:       27:  485:/*EOF*/
       27:       27:  486:/*EOF*/
       27:       27:  487:/*EOF*/
       27:       27:  488:/*EOF*/
       27:       27:  489:/*EOF*/
       27:       27:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
       27:       27:  498:/*EOF*/
       27:       27:  499:/*EOF*/
       27:       27:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       27:       27:  502:/*EOF*/
       27:       27:  503:/*EOF*/
       27:       27:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
       27:       27:  513:/*EOF*/
       27:       27:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       15:       15:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        5:        5:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        5:        5:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        5:        5:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        5:        5:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        5:        5:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        5:        5:  551:/*EOF*/
        5:        5:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        5:        5:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        5:        5:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        5:        5:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        5:        5:  560:/*EOF*/
        3:        3:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        5:        5:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        5:        5:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        5:        5:  569:/*EOF*/
        5:        5:  570:/*EOF*/
        5:        5:  571:/*EOF*/
        5:        5:  572:/*EOF*/
        3:        3:  573:/*EOF*/
        5:        5:  574:/*EOF*/
        3:        3:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        5:        5:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        5:        5:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        5:        5:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        5:        5:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        5:        5:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        5:        5:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        5:        5:  602:/*EOF*/
        5:        5:  603:/*EOF*/
        5:        5:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        5:        5:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        5:        5:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        5:        5:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        5:        5:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        5:        5:  617:/*EOF*/
        5:        5:  618:/*EOF*/
        5:        5:  619:/*EOF*/
        5:        5:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        5:        5:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        5:        5:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        5:        5:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        5:        5:  638:/*EOF*/
        2:        2:  639:/*EOF*/
        2:        2:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        5:        5:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        5:        5:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        5:        5:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        5:        5:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        5:        5:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        5:        5:  668:/*EOF*/
        5:        5:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        5:        5:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        5:        5:  676:/*EOF*/
        5:        5:  677:/*EOF*/
        5:        5:  678:/*EOF*/
        5:        5:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
      165:      165:  683:/*EOF*/
      160:      160:  684:/*EOF*/
       32:       32:  685:/*EOF*/
        -:        -:  686:/*EOF*/
      128:      128:  687:/*EOF*/
      640:      640:  688:/*EOF*/
      512:      512:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        5:        5:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        5:        5:  695:/*EOF*/
        5:        5:  696:/*EOF*/
        5:        5:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        5:        5:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        5:        5:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
      324:      336:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      324:      336:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
       22:       22:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       86:       90:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
      216:      224:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/

src/intel/compiler/brw_nir_opt_peephole_ffma.c.gcov

        -:        -:    0:Source:compiler/brw_nir_opt_peephole_ffma.c
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       11:       11:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       11:       11:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       22:       22:   42:/*EOF*/
       11:       11:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       11:       11:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       11:       11:   48:/*EOF*/
       11:       11:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        6:        6:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        5:        5:   57:/*EOF*/
        5:        5:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        5:        5:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       11:       11:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       26:       28:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       26:       28:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       26:       28:   77:/*EOF*/
       26:       28:   78:/*EOF*/
       11:       13:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       15:       15:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       15:       15:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       15:       15:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        5:        5:  100:/*EOF*/
        5:        5:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        6:        6:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        6:        6:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        4:        4:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       11:       11:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       11:       11:  135:/*EOF*/
       22:       22:  136:/*EOF*/
       11:       11:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       11:       11:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       18:       18:  149:/*EOF*/
       12:       12:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        6:        6:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       36:       52:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       36:       52:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      167:      198:  169:/*EOF*/
      131:      146:  170:/*EOF*/
      193:      220:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       63:       66:  173:/*EOF*/
       63:       66:  174:/*EOF*/
       52:       54:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       11:       12:  177:/*EOF*/
       11:       12:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
       11:       12:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       11:       12:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       26:       29:  194:/*EOF*/
      105:      115:  195:/*EOF*/
       84:       92:  196:/*EOF*/
        -:        -:  197:/*EOF*/
       21:       23:  198:/*EOF*/
       21:       23:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       21:       23:  201:/*EOF*/
       21:       23:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       21:       23:  205:/*EOF*/
        6:        6:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       11:       12:  209:/*EOF*/
        5:        6:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        6:        6:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        6:        6:  215:/*EOF*/
        6:        6:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        6:        6:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        6:        6:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        6:        6:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        6:        6:  234:/*EOF*/
        5:        5:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        6:        6:  237:/*EOF*/
        6:        6:  238:/*EOF*/
        6:        6:  239:/*EOF*/
        -:        -:  240:/*EOF*/
       18:       18:  241:/*EOF*/
       12:       12:  242:/*EOF*/
       24:       24:  243:/*EOF*/
       12:       12:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        6:        6:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        6:        6:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       12:       12:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        6:        6:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        6:        6:  257:/*EOF*/
        6:        6:  258:/*EOF*/
        6:        6:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        6:        6:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       36:       52:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        5:        5:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        5:        5:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       41:       57:  275:/*EOF*/
       36:       52:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        5:        5:  279:/*EOF*/
        1:        1:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        5:        5:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        5:        5:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        5:        5:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       10:       10:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        5:        5:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        5:        5:  296:/*EOF*/

src/intel/compiler/brw_predicated_break.cpp.gcov

        -:        -:    0:Source:compiler/brw_predicated_break.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_predicated_break.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_predicated_break.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       18:       20:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       18:       20:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      176:      292:   61:/*EOF*/
      158:      272:   62:/*EOF*/
      130:      186:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       28:       86:   68:/*EOF*/
       56:      148:   69:/*EOF*/
       28:       62:   70:/*EOF*/
       28:       62:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:       24:   73:/*EOF*/
    #####:       24:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:       24:   77:/*EOF*/
    #####:       24:   78:/*EOF*/
    #####:       12:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:       12:   81:/*EOF*/
    #####:       12:   82:/*EOF*/
    #####:       12:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:       12:   85:/*EOF*/
    #####:       12:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:       12:   88:/*EOF*/
    #####:       12:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:       12:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:       12:   95:/*EOF*/
    #####:       12:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:       12:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:       12:  101:/*EOF*/
    #####:       12:  102:/*EOF*/
    #####:       12:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:       12:  106:/*EOF*/
    #####:       12:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:       12:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:       12:  111:/*EOF*/
    #####:       12:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:       12:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:       12:  121:/*EOF*/
    #####:       12:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:       24:  124:/*EOF*/
    #####:       16:  125:/*EOF*/
    #####:        4:  126:/*EOF*/
    #####:        4:  127:/*EOF*/
    #####:        4:  128:/*EOF*/
    #####:        4:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:        4:  131:/*EOF*/
    #####:        4:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:        4:  134:/*EOF*/
    #####:        4:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:        4:  137:/*EOF*/
    #####:        4:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:       12:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       18:       20:  144:/*EOF*/
    #####:        2:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       18:       20:  147:/*EOF*/

src/intel/compiler/brw_schedule_instructions.cpp.gcov

        -:        -:    0:Source:compiler/brw_schedule_instructions.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_schedule_instructions.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_schedule_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     2524:     2724:  114:/*EOF*/
        -:        -:  115:/*EOF*/
     2524:     2724:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      217:      229:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      217:      229:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       18:       18:  184:/*EOF*/
       18:       18:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       12:       12:  229:/*EOF*/
       12:       12:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
      187:      199:  426:/*EOF*/
      187:      199:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      217:      229:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       12:       12:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
       12:       12:  436:/*EOF*/
       12:       12:  437:/*EOF*/
       12:       12:  438:/*EOF*/
       12:       12:  439:/*EOF*/
       12:       12:  440:/*EOF*/
       12:       12:  441:/*EOF*/
       12:       12:  442:/*EOF*/
       12:       12:  443:/*EOF*/
       12:       12:  444:/*EOF*/
       12:       12:  445:/*EOF*/
        5:        5:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        5:        5:  448:/*EOF*/
       54:       62:  449:/*EOF*/
       49:       57:  450:/*EOF*/
       49:       57:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        5:        5:  453:/*EOF*/
       54:       62:  454:/*EOF*/
       49:       57:  455:/*EOF*/
       49:       57:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        5:        5:  458:/*EOF*/
       54:       62:  459:/*EOF*/
       49:       57:  460:/*EOF*/
       49:       57:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        5:        5:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        5:        5:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        5:        5:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        7:        7:  469:/*EOF*/
        7:        7:  470:/*EOF*/
        7:        7:  471:/*EOF*/
        7:        7:  472:/*EOF*/
        7:        7:  473:/*EOF*/
        7:        7:  474:/*EOF*/
        7:        7:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       12:       12:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       12:       12:  479:/*EOF*/
       24:       24:  480:/*EOF*/
       12:       12:  481:/*EOF*/
       12:       12:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       10:       10:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       10:       10:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       10:       10:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       10:       10:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
      762:      798:  594:/*EOF*/
        -:        -:  595:/*EOF*/
     1113:     1161:  596:/*EOF*/
      369:      381:  597:/*EOF*/
       18:       18:  598:/*EOF*/
        -:        -:  599:/*EOF*/
      744:      780:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
      206:      218:  604:/*EOF*/
        -:        -:  605:/*EOF*/
      206:      218:  606:/*EOF*/
        -:        -:  607:/*EOF*/
      206:      218:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
      460:      484:  611:/*EOF*/
      254:      266:  612:/*EOF*/
        6:        6:  613:/*EOF*/
        -:        -:  614:/*EOF*/
      248:      260:  615:/*EOF*/
      153:      157:  616:/*EOF*/
       95:      103:  617:/*EOF*/
       64:       64:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
      144:      144:  621:/*EOF*/
       80:       80:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        5:        5:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
       54:       62:  633:/*EOF*/
     2963:     3475:  634:/*EOF*/
     2914:     3418:  635:/*EOF*/
      429:      675:  636:/*EOF*/
      429:      675:  637:/*EOF*/
      286:      450:  638:/*EOF*/
      286:      450:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
     2914:     3418:  643:/*EOF*/
      450:      702:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
       49:       57:  652:/*EOF*/
     1914:     2262:  653:/*EOF*/
     2978:     3570:  654:/*EOF*/
     1108:     1360:  655:/*EOF*/
      326:      458:  656:/*EOF*/
       44:       12:  657:/*EOF*/
       44:       12:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
      326:      458:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        5:        5:  666:/*EOF*/
        5:        5:  667:/*EOF*/
        -:        -:  668:/*EOF*/
       37:       37:  669:/*EOF*/
       32:       32:  670:/*EOF*/
        6:        6:  671:/*EOF*/
        -:        -:  672:/*EOF*/
      228:      260:  673:/*EOF*/
      202:      234:  674:/*EOF*/
      188:      220:  675:/*EOF*/
        -:        -:  676:/*EOF*/
      202:      234:  677:/*EOF*/
      174:      206:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        5:        5:  680:/*EOF*/
        5:        5:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
      206:      218:  684:/*EOF*/
        -:        -:  685:/*EOF*/
      206:      218:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      206:      218:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
      206:      218:  691:/*EOF*/
      104:      104:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
      460:      484:  695:/*EOF*/
      254:      266:  696:/*EOF*/
        6:        6:  697:/*EOF*/
        -:        -:  698:/*EOF*/
      248:      260:  699:/*EOF*/
      153:      157:  700:/*EOF*/
      159:      167:  701:/*EOF*/
       64:       64:  702:/*EOF*/
      144:      144:  703:/*EOF*/
       80:       80:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      206:      218:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      206:      218:  712:/*EOF*/
      206:      218:  713:/*EOF*/
        -:        -:  714:/*EOF*/
      206:      218:  715:/*EOF*/
      186:      186:  716:/*EOF*/
       82:       82:  717:/*EOF*/
       75:       75:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
      460:      484:  721:/*EOF*/
      254:      266:  722:/*EOF*/
        6:        6:  723:/*EOF*/
        -:        -:  724:/*EOF*/
      401:      417:  725:/*EOF*/
      244:      244:  726:/*EOF*/
       91:       87:  727:/*EOF*/
       69:       65:  728:/*EOF*/
        -:        -:  729:/*EOF*/
      312:      324:  730:/*EOF*/
       64:       64:  731:/*EOF*/
      144:      144:  732:/*EOF*/
       80:       80:  733:/*EOF*/
      127:      127:  734:/*EOF*/
       47:       47:  735:/*EOF*/
       14:       14:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
      206:      218:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        2:        2:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        2:        2:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        2:        2:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        2:        2:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
      423:      447:  788:/*EOF*/
      423:      447:  789:/*EOF*/
        -:        -:  790:/*EOF*/
      423:      447:  791:/*EOF*/
        -:        -:  792:/*EOF*/
      423:      447:  793:/*EOF*/
      423:      447:  794:/*EOF*/
      423:      447:  795:/*EOF*/
      423:      447:  796:/*EOF*/
      423:      447:  797:/*EOF*/
      423:      447:  798:/*EOF*/
      423:      447:  799:/*EOF*/
      423:      447:  800:/*EOF*/
      423:      447:  801:/*EOF*/
      423:      447:  802:/*EOF*/
      423:      447:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
      423:      447:  808:/*EOF*/
      206:      218:  809:/*EOF*/
      217:      229:  810:/*EOF*/
      217:      229:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
      423:      447:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
      100:      116:  817:/*EOF*/
        -:        -:  818:/*EOF*/
      523:      563:  819:/*EOF*/
      423:      447:  820:/*EOF*/
        -:        -:  821:/*EOF*/
      423:      447:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
      100:      116:  825:/*EOF*/
      100:      116:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
      100:      116:  830:/*EOF*/
        -:        -:  831:/*EOF*/
      523:      563:  832:/*EOF*/
      423:      447:  833:/*EOF*/
      128:      152:  834:/*EOF*/
        -:        -:  835:/*EOF*/
      893:      837:  836:/*EOF*/
      598:      542:  837:/*EOF*/
      598:      542:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
      100:      116:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
      100:      116:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
      523:      563:  851:/*EOF*/
     1021:      989:  852:/*EOF*/
      598:      542:  853:/*EOF*/
     1196:     1084:  854:/*EOF*/
     1196:     1084:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
      523:      563:  864:/*EOF*/
      423:      447:  865:/*EOF*/
        -:        -:  866:/*EOF*/
     1021:      989:  867:/*EOF*/
      598:      542:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
      100:      116:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
     1555:     1575:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
     1555:     1575:  884:/*EOF*/
      753:      815:  885:/*EOF*/
        -:        -:  886:/*EOF*/
      802:      760:  887:/*EOF*/
        -:        -:  888:/*EOF*/
     1836:     1510:  889:/*EOF*/
     1238:      968:  890:/*EOF*/
      204:      218:  891:/*EOF*/
      204:      218:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
      598:      542:  896:/*EOF*/
      295:      295:  897:/*EOF*/
      295:      295:  898:/*EOF*/
        -:        -:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      295:      295:  902:/*EOF*/
        -:        -:  903:/*EOF*/
      295:      295:  904:/*EOF*/
      295:      295:  905:/*EOF*/
      295:      295:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
      598:      542:  909:/*EOF*/
      598:      542:  910:/*EOF*/
      598:      542:  911:/*EOF*/
      598:      542:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
     1149:     1209:  916:/*EOF*/
        -:        -:  917:/*EOF*/
     1149:     1209:  918:/*EOF*/
      750:      762:  919:/*EOF*/
        -:        -:  920:/*EOF*/
      399:      447:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
      114:      122:  930:/*EOF*/
        -:        -:  931:/*EOF*/
      114:      122:  932:/*EOF*/
      114:      122:  933:/*EOF*/
        -:        -:  934:/*EOF*/
      114:      122:  935:/*EOF*/
        -:        -:  936:/*EOF*/
      114:      122:  937:/*EOF*/
      550:      574:  938:/*EOF*/
      262:      262:  939:/*EOF*/
      262:      262:  940:/*EOF*/
       44:       36:  941:/*EOF*/
      218:      226:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      114:      122:  946:/*EOF*/
      510:      390:  947:/*EOF*/
      198:      134:  948:/*EOF*/
      198:      134:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
      198:      134:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
      114:      122:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
     1786:     1722:  960:/*EOF*/
        -:        -:  961:/*EOF*/
     1786:     1722:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
      412:      436:  966:/*EOF*/
        -:        -:  967:/*EOF*/
      824:      872:  968:/*EOF*/
      720:      760:  969:/*EOF*/
      720:      760:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
       98:      114:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
       98:      114:  980:/*EOF*/
      294:      342:  981:/*EOF*/
       98:      114:  982:/*EOF*/
       98:      114:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
       98:      114:  989:/*EOF*/
        -:        -:  990:/*EOF*/
       98:      114:  991:/*EOF*/
       98:      114:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
      510:      550:  995:/*EOF*/
      412:      436:  996:/*EOF*/
        -:        -:  997:/*EOF*/
      412:      436:  998:/*EOF*/
      114:      122:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      920:      968: 1002:/*EOF*/
      508:      532: 1003:/*EOF*/
      318:      326: 1004:/*EOF*/
      370:      380: 1005:/*EOF*/
      211:      217: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
      370:      380: 1008:/*EOF*/
      633:      651: 1009:/*EOF*/
      633:      651: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
      190:      206: 1013:/*EOF*/
      128:      128: 1014:/*EOF*/
      144:      144: 1015:/*EOF*/
       80:       80: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       64:       64: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       62:       78: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
       62:       78: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
      412:      436: 1027:/*EOF*/
       66:       66: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
       56:       56: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
      412:      436: 1037:/*EOF*/
       44:       60: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      220:      300: 1040:/*EOF*/
      176:      240: 1041:/*EOF*/
       66:       90: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
      412:      436: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
      412:      436: 1051:/*EOF*/
      208:      208: 1052:/*EOF*/
      248:      248: 1053:/*EOF*/
      144:      144: 1054:/*EOF*/
      144:      144: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
      248:      248: 1058:/*EOF*/
      432:      432: 1059:/*EOF*/
      432:      432: 1060:/*EOF*/
      288:      288: 1061:/*EOF*/
      288:      288: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
      204:      228: 1065:/*EOF*/
       46:       46: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
       46:       46: 1068:/*EOF*/
       46:       46: 1069:/*EOF*/
       46:       46: 1070:/*EOF*/
       10:       10: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
       10:       10: 1074:/*EOF*/
       10:       10: 1075:/*EOF*/
       10:       10: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
      158:      182: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
      158:      182: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
      158:      182: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
      412:      436: 1092:/*EOF*/
       30:       30: 1093:/*EOF*/
       20:       20: 1094:/*EOF*/
       20:       20: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
      412:      436: 1099:/*EOF*/
       44:       60: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
      220:      300: 1102:/*EOF*/
      176:      240: 1103:/*EOF*/
       66:       90: 1104:/*EOF*/
       66:       90: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
      412:      436: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
       98:      114: 1118:/*EOF*/
       98:      114: 1119:/*EOF*/
       98:      114: 1120:/*EOF*/
       98:      114: 1121:/*EOF*/
       98:      114: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
      510:      550: 1124:/*EOF*/
      412:      436: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
      920:      968: 1128:/*EOF*/
      508:      532: 1129:/*EOF*/
      318:      326: 1130:/*EOF*/
      370:      380: 1131:/*EOF*/
      211:      217: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
      370:      380: 1134:/*EOF*/
      633:      651: 1135:/*EOF*/
      633:      651: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
      190:      206: 1139:/*EOF*/
      128:      128: 1140:/*EOF*/
      144:      144: 1141:/*EOF*/
       80:       80: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
       64:       64: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
       62:       78: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
       62:       78: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
      412:      436: 1153:/*EOF*/
       66:       66: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
       56:       56: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
      412:      436: 1163:/*EOF*/
       44:       60: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
      220:      300: 1166:/*EOF*/
      176:      240: 1167:/*EOF*/
       66:       90: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
      412:      436: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
      412:      436: 1179:/*EOF*/
      208:      208: 1180:/*EOF*/
      248:      248: 1181:/*EOF*/
      144:      144: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
      248:      248: 1184:/*EOF*/
      288:      288: 1185:/*EOF*/
      288:      288: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
      204:      228: 1189:/*EOF*/
       46:       46: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
       46:       46: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
       46:       46: 1194:/*EOF*/
       10:       10: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
       10:       10: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
       10:       10: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
      158:      182: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
      158:      182: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
      158:      182: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
      412:      436: 1215:/*EOF*/
       30:       30: 1216:/*EOF*/
       20:       20: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
      412:      436: 1221:/*EOF*/
       44:       60: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
      220:      300: 1224:/*EOF*/
      176:      240: 1225:/*EOF*/
       66:       90: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
      412:      436: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
       98:      114: 1233:/*EOF*/
       98:      114: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
       11:       11: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
       22:       22: 1239:/*EOF*/
       22:       22: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        2:        2: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        2:        2: 1246:/*EOF*/
        6:        6: 1247:/*EOF*/
        2:        2: 1248:/*EOF*/
        2:        2: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        2:        2: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        2:        2: 1257:/*EOF*/
        2:        2: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
       13:       13: 1261:/*EOF*/
       11:       11: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
       11:       11: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
       44:       44: 1268:/*EOF*/
       33:       33: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
       33:       33: 1272:/*EOF*/
        6:        6: 1273:/*EOF*/
       27:       27: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
       27:       27: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
       11:       11: 1282:/*EOF*/
       19:       19: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        8:        8: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
       11:       11: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
       11:       11: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
       11:       11: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
    #####:    #####: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
       11:       11: 1308:/*EOF*/
        9:        9: 1309:/*EOF*/
        9:        9: 1310:/*EOF*/
        2:        2: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        2:        2: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        2:        2: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
       11:       11: 1320:/*EOF*/
        4:        4: 1321:/*EOF*/
        2:        2: 1322:/*EOF*/
        2:        2: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
       11:       11: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
       11:       11: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        2:        2: 1340:/*EOF*/
        2:        2: 1341:/*EOF*/
        2:        2: 1342:/*EOF*/
        2:        2: 1343:/*EOF*/
        2:        2: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
       13:       13: 1346:/*EOF*/
       11:       11: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
       44:       44: 1350:/*EOF*/
       33:       33: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
       33:       33: 1354:/*EOF*/
        6:        6: 1355:/*EOF*/
       27:       27: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
       27:       27: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
       11:       11: 1363:/*EOF*/
       19:       19: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        8:        8: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
       11:       11: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
       11:       11: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
       11:       11: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
       11:       11: 1387:/*EOF*/
        9:        9: 1388:/*EOF*/
        2:        2: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
        2:        2: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
        2:        2: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
       11:       11: 1397:/*EOF*/
        4:        4: 1398:/*EOF*/
        2:        2: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
       11:       11: 1403:/*EOF*/
    #####:    #####: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
       11:       11: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        2:        2: 1410:/*EOF*/
        2:        2: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      412:      436: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
      412:      436: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
      412:      436: 1418:/*EOF*/
      412:      436: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
     1156:     1282: 1425:/*EOF*/
     1076:     1256: 1426:/*EOF*/
     1600:     1820: 1427:/*EOF*/
      664:      820: 1428:/*EOF*/
      332:      410: 1429:/*EOF*/
      524:      564: 1430:/*EOF*/
      524:      564: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
      412:      436: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
      412:      436: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
       11:       11: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
       11:       11: 1539:/*EOF*/
       11:       11: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
       29:       29: 1545:/*EOF*/
       18:       18: 1546:/*EOF*/
       14:       14: 1547:/*EOF*/
       14:       14: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
       11:       11: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
     1694:     1630: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
     1694:     1630: 1558:/*EOF*/
      747:      707: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
      947:      923: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
       28:       28: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
       28:       28: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
      100:      116: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
      100:      116: 1574:/*EOF*/
      100:      116: 1575:/*EOF*/
      100:      116: 1576:/*EOF*/
       49:       57: 1577:/*EOF*/
      100:      116: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
      523:      563: 1581:/*EOF*/
      423:      447: 1582:/*EOF*/
      268:      256: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
      100:      116: 1586:/*EOF*/
      946:     1010: 1587:/*EOF*/
      423:      447: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
      423:      447: 1591:/*EOF*/
      423:      447: 1592:/*EOF*/
      423:      447: 1593:/*EOF*/
      423:      447: 1594:/*EOF*/
      423:      447: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
      423:      447: 1597:/*EOF*/
      206:      218: 1598:/*EOF*/
      206:      218: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
      423:      447: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
      423:      447: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
      423:      447: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
     1021:      989: 1627:/*EOF*/
      598:      542: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
      598:      542: 1630:/*EOF*/
      598:      542: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
      598:      542: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
      598:      542: 1638:/*EOF*/
      598:      542: 1639:/*EOF*/
      598:      542: 1640:/*EOF*/
      268:      256: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
      268:      256: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
      423:      447: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
      423:      447: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
      100:      116: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
      100:      116: 1665:/*EOF*/
      100:      116: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       12:       12: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
       12:       12: 1670:/*EOF*/
      112:      128: 1671:/*EOF*/
      100:      116: 1672:/*EOF*/
        8:       16: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
      100:      116: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
      100:      116: 1677:/*EOF*/
        8:       16: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
       12:       12: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
       12:       12: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
       12:       12: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
       12:       12: 1693:/*EOF*/
        5:        5: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
      112:      128: 1696:/*EOF*/
      100:      116: 1697:/*EOF*/
       49:       57: 1698:/*EOF*/
       98:      114: 1699:/*EOF*/
       49:       57: 1700:/*EOF*/
       98:      114: 1701:/*EOF*/
       49:       57: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
      255:      275: 1704:/*EOF*/
      206:      218: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
      100:      116: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
      100:      116: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
      100:      116: 1712:/*EOF*/
      100:      116: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
      100:      116: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
       12:       12: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
       12:       12: 1724:/*EOF*/
       12:       12: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
       10:       10: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
       10:       10: 1730:/*EOF*/
        5:        5: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
       10:       10: 1734:/*EOF*/
        5:        5: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        5:        5: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       20:       20: 1740:/*EOF*/
       10:       10: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
       10:       10: 1743:/*EOF*/
       10:       10: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        2:        2: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        4:        4: 1749:/*EOF*/
        2:        2: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        2:        2: 1752:/*EOF*/
        5:        5: 1753:/*EOF*/

src/intel/compiler/brw_shader.cpp.gcov

        -:        -:    0:Source:compiler/brw_shader.cpp
        -:        -:    0:Graph:.libs/compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:.libs/compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       22:       22:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       22:       22:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       15:       15:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        7:        7:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       12:       12:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       12:       12:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       12:       12:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:        4:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:        4:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:        4:  562:/*EOF*/
    #####:        4:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        8:        8:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        8:        8:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
       16:       16:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        8:        8:  675:/*EOF*/
        8:        8:  676:/*EOF*/
        8:        8:  677:/*EOF*/
        8:        8:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
      837:      949:  681:/*EOF*/
        -:        -:  682:/*EOF*/
      837:      949:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
      173:      250:  687:/*EOF*/
        -:        -:  688:/*EOF*/
      173:      250:  689:/*EOF*/
      128:      174:  690:/*EOF*/
        -:        -:  691:/*EOF*/
       45:       76:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        8:       24:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       24:       36:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
       13:       16:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       72:       96:  709:/*EOF*/
        -:        -:  710:/*EOF*/
       72:       96:  711:/*EOF*/
       72:       96:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
        -:        -:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
     2963:     3615:  751:/*EOF*/
        -:        -:  752:/*EOF*/
     2963:     3615:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
      543:      623:  758:/*EOF*/
        -:        -:  759:/*EOF*/
      543:      623:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
      149:      192:  764:/*EOF*/
        -:        -:  765:/*EOF*/
      149:      192:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        5:        6:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
      144:      186:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
      402:      426:  787:/*EOF*/
        -:        -:  788:/*EOF*/
      402:      426:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    93164:   110984:  793:/*EOF*/
        -:        -:  794:/*EOF*/
   186328:   221968:  795:/*EOF*/
   186328:   221968:  796:/*EOF*/
   186328:   221968:  797:/*EOF*/
   186328:   221968:  798:/*EOF*/
   186328:   221968:  799:/*EOF*/
   186328:   221968:  800:/*EOF*/
   186328:   221968:  801:/*EOF*/
   186328:   221968:  802:/*EOF*/
   186328:   221968:  803:/*EOF*/
   186328:   221968:  804:/*EOF*/
   186328:   221968:  805:/*EOF*/
   186328:   221968:  806:/*EOF*/
   186328:   221968:  807:/*EOF*/
   186328:   221968:  808:/*EOF*/
   279492:   332952:  809:/*EOF*/
   186328:   221968:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
      170:      176:  814:/*EOF*/
        -:        -:  815:/*EOF*/
      315:      321:  816:/*EOF*/
      290:      290:  817:/*EOF*/
      290:      290:  818:/*EOF*/
      290:      290:  819:/*EOF*/
      290:      290:  820:/*EOF*/
      290:      290:  821:/*EOF*/
      290:      290:  822:/*EOF*/
      290:      290:  823:/*EOF*/
      460:      466:  824:/*EOF*/
      315:      321:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
     1438:     1736:  829:/*EOF*/
        -:        -:  830:/*EOF*/
     1438:     1736:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
      287:      403:  839:/*EOF*/
        -:        -:  840:/*EOF*/
     1151:     1333:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
       35:       35:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       35:       35:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
       35:       35:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
      855:      903:  956:/*EOF*/
        -:        -:  957:/*EOF*/
      855:      903:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
      855:      903:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
      846:      894:  969:/*EOF*/
        -:        -:  970:/*EOF*/
     1692:     1788:  971:/*EOF*/
      846:      894:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
      846:      894:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
      541:      625:  979:/*EOF*/
        -:        -:  980:/*EOF*/
      541:      625:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
      541:      625: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
      242:      282: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
      242:      282: 1028:/*EOF*/
     2801:     2962: 1029:/*EOF*/
     2559:     2680: 1030:/*EOF*/
      242:      282: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
      242:      282: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
      242:      282: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
     2165:     4007: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
     1923:     3725: 1044:/*EOF*/
     1923:     3725: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
      242:      282: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
       46:       46: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
       46:       46: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
       46:       46: 1069:/*EOF*/
       46:       46: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
       46:       46: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
       46:       46: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
       46:       46: 1076:/*EOF*/
       46:       46: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
      196:      236: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
      196:      236: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
      196:      236: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
      196:      236: 1100:/*EOF*/
        8:       16: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
      188:      220: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
      196:      236: 1106:/*EOF*/
      196:      236: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        8:        8: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        8:        8: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        8:        8: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
    #####:    #####: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        3:        3: 1286:/*EOF*/

src/intel/compiler/.libs/brw_cfg.cpp.gcov

        -:        -:    0:Source:compiler/brw_cfg.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_cfg.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_cfg.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       44:       68:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       44:       68:   39:/*EOF*/
       44:       68:   40:/*EOF*/
       44:       68:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       44:       68:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
      184:      408:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      184:      408:   49:/*EOF*/
      184:      408:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
       60:       92:   53:/*EOF*/
       60:       92:   54:/*EOF*/
        -:        -:   55:/*EOF*/
       60:       92:   56:/*EOF*/
       60:       92:   57:/*EOF*/
       60:       92:   58:/*EOF*/
       60:       92:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
       70:      142:   62:/*EOF*/
        -:        -:   63:/*EOF*/
       70:      142:   64:/*EOF*/
       70:      142:   65:/*EOF*/
       70:      142:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:       56:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:       88:   71:/*EOF*/
    #####:       60:   72:/*EOF*/
    #####:       28:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:       28:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:       56:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:       80:   83:/*EOF*/
    #####:       52:   84:/*EOF*/
    #####:       28:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:       28:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:       32:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:       32:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:       32:   97:/*EOF*/
    #####:       32:   98:/*EOF*/
    #####:       32:   99:/*EOF*/
    #####:       64:  100:/*EOF*/
    #####:       32:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:       32:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:       32:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:       32:  109:/*EOF*/
    #####:       32:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:       32:  114:/*EOF*/
        -:        -:  115:/*EOF*/
    #####:       32:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:       64:  119:/*EOF*/
    #####:       32:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:       32:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:       16:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:       16:  129:/*EOF*/
    #####:       32:  130:/*EOF*/
    #####:       16:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:       48:  133:/*EOF*/
    #####:       32:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:       16:  137:/*EOF*/
    #####:       16:  138:/*EOF*/
        -:        -:  139:/*EOF*/
    #####:       16:  140:/*EOF*/
    #####:       16:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        8:        8:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        8:        8:  156:/*EOF*/
        8:        8:  157:/*EOF*/
        8:        8:  158:/*EOF*/
        8:        8:  159:/*EOF*/
        8:        8:  160:/*EOF*/
        8:        8:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        8:        8:  163:/*EOF*/
        8:        8:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        8:        8:  166:/*EOF*/
        8:        8:  167:/*EOF*/
        8:        8:  168:/*EOF*/
        8:        8:  169:/*EOF*/
        8:        8:  170:/*EOF*/
        8:        8:  171:/*EOF*/
        8:        8:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        8:        8:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      377:      429:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      369:      421:  179:/*EOF*/
        -:        -:  180:/*EOF*/
      369:      421:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      369:      421:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       18:       26:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
       18:       26:  190:/*EOF*/
       18:       26:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       18:       26:  193:/*EOF*/
       18:       26:  194:/*EOF*/
       18:       26:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
       18:       26:  200:/*EOF*/
       18:       26:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       18:       26:  203:/*EOF*/
       18:       26:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
       18:       26:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       18:       26:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       18:       26:  211:/*EOF*/
       18:       26:  212:/*EOF*/
       18:       26:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       18:       26:  215:/*EOF*/
       18:       26:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       18:       26:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       18:       26:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
       18:       26:  230:/*EOF*/
        -:        -:  231:/*EOF*/
       18:       26:  232:/*EOF*/
       18:       26:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       18:       26:  239:/*EOF*/
       18:       26:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       18:       26:  243:/*EOF*/
       18:       26:  244:/*EOF*/
       18:       26:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        4:        8:  251:/*EOF*/
        4:        8:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        4:        8:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        4:        8:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        4:        8:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        4:        8:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        4:        8:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        4:        8:  270:/*EOF*/
        4:        8:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        8:       16:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        8:       16:  289:/*EOF*/
        8:       16:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        8:       16:  292:/*EOF*/
        8:       16:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        8:       16:  296:/*EOF*/
        8:       16:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        4:        8:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        4:        8:  302:/*EOF*/
        4:        8:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        4:        8:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        4:        8:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        4:        8:  311:/*EOF*/
        4:        8:  312:/*EOF*/
        4:        8:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
      299:      311:  316:/*EOF*/
      299:      311:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        8:        8:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        8:        8:  323:/*EOF*/
        8:        8:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       16:       16:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        8:        8:  328:/*EOF*/
        8:        8:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        8:       32:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        8:       64:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:       76:  336:/*EOF*/
        -:        -:  337:/*EOF*/
    #####:       44:  338:/*EOF*/
    #####:       16:  339:/*EOF*/
    #####:       16:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:       88:  345:/*EOF*/
    #####:       56:  346:/*EOF*/
    #####:       28:  347:/*EOF*/
    #####:       28:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
       16:       76:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       24:      120:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       16:       76:  357:/*EOF*/
        8:       44:  358:/*EOF*/
        8:       44:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        8:      100:  364:/*EOF*/
    #####:       56:  365:/*EOF*/
    #####:       28:  366:/*EOF*/
    #####:       28:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        8:       32:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      132:      700:  374:/*EOF*/
      124:      668:  375:/*EOF*/
      124:      668:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        8:       32:  379:/*EOF*/
        8:       32:  380:/*EOF*/
        8:       32:  381:/*EOF*/
        8:       32:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
       60:       92:  385:/*EOF*/
        -:        -:  386:/*EOF*/
       60:       92:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       60:       92:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       60:       92:  393:/*EOF*/
        -:        -:  394:/*EOF*/
       60:       92:  395:/*EOF*/
       52:       84:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
       60:       92:  399:/*EOF*/
       60:       92:  400:/*EOF*/
       60:       92:  401:/*EOF*/
       60:       92:  402:/*EOF*/
       60:       92:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        8:        8:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        8:        8:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        8:        8:  410:/*EOF*/
       68:      100:  411:/*EOF*/
       60:       92:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        8:        8:  414:/*EOF*/
        8:        8:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        5:        5:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       54:       62:  456:/*EOF*/
       49:       57:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        5:        5:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        7:        7:  462:/*EOF*/
        7:        7:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      102:      118:  465:/*EOF*/
       95:      111:  466:/*EOF*/
        7:        7:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       88:      104:  469:/*EOF*/
      212:      252:  470:/*EOF*/
      124:      148:  471:/*EOF*/
      120:      140:  472:/*EOF*/
       88:      104:  473:/*EOF*/
       32:       36:  474:/*EOF*/
       32:       36:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
       88:      104:  480:/*EOF*/
       44:       52:  481:/*EOF*/
       44:       52:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        5:        5:  487:/*EOF*/
        5:        5:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
       64:       72:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
       96:      108:  497:/*EOF*/
      152:      228:  498:/*EOF*/
       60:       96:  499:/*EOF*/
       48:       36:  500:/*EOF*/
        8:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
       32:       36:  503:/*EOF*/
       32:       36:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/

src/intel/compiler/.libs/brw_dead_control_flow.cpp.gcov

        -:        -:    0:Source:compiler/brw_dead_control_flow.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_dead_control_flow.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_dead_control_flow.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       18:       20:   39:/*EOF*/
        -:        -:   40:/*EOF*/
       18:       20:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      176:      280:   43:/*EOF*/
      158:      260:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      158:      260:   46:/*EOF*/
       18:       20:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      140:      240:   49:/*EOF*/
      140:      240:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      194:      308:   55:/*EOF*/
       54:       68:   56:/*EOF*/
       18:       26:   57:/*EOF*/
       18:       26:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       18:       26:   60:/*EOF*/
       18:       26:   61:/*EOF*/
      158:      256:   62:/*EOF*/
       36:       42:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
      130:      230:   99:/*EOF*/
        8:       16:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       18:       20:  115:/*EOF*/
        2:        2:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       18:       20:  118:/*EOF*/

src/intel/compiler/.libs/brw_eu.c.gcov

        -:        -:    0:Source:compiler/brw_eu.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_eu.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_eu.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
        -:        -:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      221:      233:  159:/*EOF*/
        -:        -:  160:/*EOF*/
      221:      233:  161:/*EOF*/
      221:      233:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      219:      231:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      219:      231:  166:/*EOF*/
      219:      231:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      214:      226:  169:/*EOF*/
        -:        -:  170:/*EOF*/
      214:      226:  171:/*EOF*/
      214:      226:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      214:      226:  174:/*EOF*/
        -:        -:  175:/*EOF*/
      214:      226:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      214:      226:  179:/*EOF*/
      214:      226:  180:/*EOF*/
        -:        -:  181:/*EOF*/
      223:      235:  182:/*EOF*/
        -:        -:  183:/*EOF*/
      223:      235:  184:/*EOF*/
      223:      235:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        7:        7:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        7:        7:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        7:        7:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        7:        7:  200:/*EOF*/
        7:        7:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        7:        7:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
      208:      220:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
      208:      220:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      208:      220:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      203:      215:  247:/*EOF*/
        -:        -:  248:/*EOF*/
      203:      215:  249:/*EOF*/
      203:      215:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
      214:      226:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
      214:      226:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
      214:      226:  265:/*EOF*/
      214:      226:  266:/*EOF*/
      214:      226:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      214:      226:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
      214:      226:  284:/*EOF*/
        -:        -:  285:/*EOF*/
      214:      226:  286:/*EOF*/
      214:      226:  287:/*EOF*/
        -:        -:  288:/*EOF*/
      221:      233:  289:/*EOF*/
        -:        -:  290:/*EOF*/
      221:      233:  291:/*EOF*/
      221:      233:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      219:      231:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      219:      231:  296:/*EOF*/
      219:      231:  297:/*EOF*/
        -:        -:  298:/*EOF*/
      214:      226:  299:/*EOF*/
        -:        -:  300:/*EOF*/
      214:      226:  301:/*EOF*/
      214:      226:  302:/*EOF*/
      214:      226:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        2:        2:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        2:        2:  307:/*EOF*/
        2:        2:  308:/*EOF*/
        2:        2:  309:/*EOF*/
        2:        2:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        2:        2:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        2:        2:  314:/*EOF*/
        2:        2:  315:/*EOF*/
        2:        2:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        5:        5:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        5:        5:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        5:        5:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        5:        5:  333:/*EOF*/
        5:        5:  334:/*EOF*/
        5:        5:  335:/*EOF*/
        5:        5:  336:/*EOF*/
        5:        5:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        5:        5:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        5:        5:  343:/*EOF*/
        5:        5:  344:/*EOF*/
        5:        5:  345:/*EOF*/
        5:        5:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        5:        5:  349:/*EOF*/
        5:        5:  350:/*EOF*/
        5:        5:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        5:        5:  353:/*EOF*/
        5:        5:  354:/*EOF*/
        5:        5:  355:/*EOF*/
        5:        5:  356:/*EOF*/
        5:        5:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        5:        5:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        5:        5:  363:/*EOF*/
        5:        5:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
     2414:     2518:  682:/*EOF*/
        -:        -:  683:/*EOF*/
     2414:     2518:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
     2414:     2518:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
     2449:     2553:  700:/*EOF*/
        -:        -:  701:/*EOF*/
     2449:     2553:  702:/*EOF*/
       35:       35:  703:/*EOF*/
        -:        -:  704:/*EOF*/
     2414:     2518:  705:/*EOF*/
     2414:     2518:  706:/*EOF*/
     2410:     2510:  707:/*EOF*/
     2410:     2510:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        4:        8:  710:/*EOF*/
        4:        8:  711:/*EOF*/
        8:       16:  712:/*EOF*/
        8:       16:  713:/*EOF*/
        4:        8:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/

src/intel/compiler/.libs/brw_eu_compact.c.gcov

        -:        -:    0:Source:compiler/brw_eu_compact.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_eu_compact.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_eu_compact.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
      171:      171:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
      513:      513:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
      171:      171:  682:/*EOF*/
      171:      171:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      171:      171:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
     1108:     1116:  691:/*EOF*/
     1104:     1112:  692:/*EOF*/
      167:      167:  693:/*EOF*/
      167:      167:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        4:        4:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
      167:      167:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
      501:      501:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
    #####:    #####:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
      167:      167:  709:/*EOF*/
      167:      167:  710:/*EOF*/
        -:        -:  711:/*EOF*/
     4849:     4733:  712:/*EOF*/
     4746:     4634:  713:/*EOF*/
       64:       68:  714:/*EOF*/
       64:       68:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
      103:       99:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
       64:       68:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
      128:      136:  726:/*EOF*/
       64:       68:  727:/*EOF*/
       64:       68:  728:/*EOF*/
        -:        -:  729:/*EOF*/
       64:       68:  730:/*EOF*/
       52:       52:  731:/*EOF*/
        -:        -:  732:/*EOF*/
      510:      514:  733:/*EOF*/
      508:      512:  734:/*EOF*/
       62:       66:  735:/*EOF*/
       62:       66:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        2:        2:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
      112:      116:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
      296:      300:  747:/*EOF*/
      296:      300:  748:/*EOF*/
      112:      116:  749:/*EOF*/
      112:      116:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
       62:       66:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
       62:       66:  762:/*EOF*/
        -:        -:  763:/*EOF*/
       62:       66:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
       62:       66:  767:/*EOF*/
        -:        -:  768:/*EOF*/
       62:       66:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
       62:       66:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
       62:       66:  778:/*EOF*/
       12:       16:  779:/*EOF*/
        -:        -:  780:/*EOF*/
       50:       50:  781:/*EOF*/
        -:        -:  782:/*EOF*/
       50:       50:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
       62:       66:  787:/*EOF*/
        -:        -:  788:/*EOF*/
       62:       66:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
    #####:    #####:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
      171:      171:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
      342:      342:  853:/*EOF*/
      171:      171:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
      171:      171:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
      171:      171:  873:/*EOF*/
        -:        -:  874:/*EOF*/
      342:      342:  875:/*EOF*/
      171:      171:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
        -:        -:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
    #####:    #####:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
    #####:    #####:  923:/*EOF*/
    #####:    #####:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
    #####:    #####:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
       49:       61:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
       49:       61:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       49:       61:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
      212:      220:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
      212:      220:  969:/*EOF*/
        -:        -:  970:/*EOF*/
      212:      220:  971:/*EOF*/
       18:       18:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
    #####:    #####:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
        -:        -:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
       18:       18:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
      194:      202:  985:/*EOF*/
      373:      385:  986:/*EOF*/
      179:      183:  987:/*EOF*/
      243:      263:  988:/*EOF*/
       98:      122:  989:/*EOF*/
       49:       61:  990:/*EOF*/
       23:       31:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
      171:      171:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
      171:      171:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      171:      171: 1002:/*EOF*/
      171:      171: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
      171:      171: 1005:/*EOF*/
        4:        4: 1006:/*EOF*/
      167:      167: 1007:/*EOF*/
      103:       99: 1008:/*EOF*/
       64:       68: 1009:/*EOF*/
        2:        2: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
       62:       66: 1012:/*EOF*/
       62:       66: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       62:       66: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       62:       66: 1020:/*EOF*/
       62:       66: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
       62:       66: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
       62:       66: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
       62:       66: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
       62:       66: 1030:/*EOF*/
       62:       66: 1031:/*EOF*/
       62:       66: 1032:/*EOF*/
       62:       66: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
       62:       66: 1035:/*EOF*/
       12:       16: 1036:/*EOF*/
       12:       16: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
       50:       50: 1039:/*EOF*/
       50:       50: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
       62:       66: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
       62:       66: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
    #####:    #####: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
    #####:    #####: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
       16:       24: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
       16:       24: 1288:/*EOF*/
       16:       24: 1289:/*EOF*/
       16:       24: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        8:       12: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        8:       12: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        8:       12: 1303:/*EOF*/
        8:       12: 1304:/*EOF*/
        8:       12: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        8:       12: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
       16:       24: 1309:/*EOF*/
       16:       24: 1310:/*EOF*/
        8:       12: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        8:       12: 1314:/*EOF*/
        8:       12: 1315:/*EOF*/
        8:       12: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        8:       12: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
    #####:    #####: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        1:        1: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        1:        1: 1347:/*EOF*/
        1:        1: 1348:/*EOF*/
        1:        1: 1349:/*EOF*/
        1:        1: 1350:/*EOF*/
        1:        1: 1351:/*EOF*/
        1:        1: 1352:/*EOF*/
        1:        1: 1353:/*EOF*/
        1:        1: 1354:/*EOF*/
        1:        1: 1355:/*EOF*/
        1:        1: 1356:/*EOF*/
        1:        1: 1357:/*EOF*/
        1:        1: 1358:/*EOF*/
        1:        1: 1359:/*EOF*/
        1:        1: 1360:/*EOF*/
        1:        1: 1361:/*EOF*/
        1:        1: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        1:        1: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
    #####:    #####: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        1:        1: 1379:/*EOF*/
        1:        1: 1380:/*EOF*/
        1:        1: 1381:/*EOF*/
        1:        1: 1382:/*EOF*/
        1:        1: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
    #####:    #####: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        1:        1: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        7:        7: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        7:        7: 1399:/*EOF*/
        7:        7: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        7:        7: 1403:/*EOF*/
        7:        7: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        7:        7: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        7:        7: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        7:        7: 1415:/*EOF*/
    #####:    #####: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        7:        7: 1418:/*EOF*/
        7:        7: 1419:/*EOF*/
      226:      234: 1420:/*EOF*/
      212:      220: 1421:/*EOF*/
      212:      220: 1422:/*EOF*/
      212:      220: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
      212:      220: 1425:/*EOF*/
      212:      220: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
      212:      220: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
      212:      220: 1430:/*EOF*/
       62:       66: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
       62:       66: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
    #####:    #####: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
    #####:    #####: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
       62:       66: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
      150:      154: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
      150:      154: 1460:/*EOF*/
      130:      140: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
      150:      154: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        7:        7: 1468:/*EOF*/
      226:      234: 1469:/*EOF*/
      212:      220: 1470:/*EOF*/
      212:      220: 1471:/*EOF*/
      212:      220: 1472:/*EOF*/
      212:      220: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
      212:      220: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        8:       12: 1479:/*EOF*/
        8:       12: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        8:       12: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
       40:       36: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
       40:       36: 1508:/*EOF*/
       40:       36: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
       40:       36: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
       40:       36: 1514:/*EOF*/
       40:       36: 1515:/*EOF*/
       40:       36: 1516:/*EOF*/
       40:       36: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
       40:       36: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
       17:       17: 1529:/*EOF*/
        6:        6: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
       11:       11: 1532:/*EOF*/
    #####:    #####: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
    #####:    #####: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
       11:       11: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        7:        7: 1553:/*EOF*/
        2:        2: 1554:/*EOF*/
        2:        2: 1555:/*EOF*/
        2:        2: 1556:/*EOF*/
        2:        2: 1557:/*EOF*/
        2:        2: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        7:        7: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        7:        7: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
    #####:    #####: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
    #####:    #####: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/

src/intel/compiler/.libs/brw_eu_emit.c.gcov

        -:        -:    0:Source:compiler/brw_eu_emit.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_eu_emit.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_eu_emit.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        2:        2:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        2:        2:   50:/*EOF*/
        2:        2:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        2:        2:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        2:        2:   57:/*EOF*/
        2:        2:   58:/*EOF*/
        2:        2:   59:/*EOF*/
        2:        2:   60:/*EOF*/
        2:        2:   61:/*EOF*/
        2:        2:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        2:        2:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        2:        2:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      548:      568:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
      548:      568:   80:/*EOF*/
      548:      568:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
      548:      568:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      530:      550:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
      530:      550:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       91:       99:  113:/*EOF*/
       91:       99:  114:/*EOF*/
       91:       99:  115:/*EOF*/
       91:       99:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      439:      451:  135:/*EOF*/
      439:      451:  136:/*EOF*/
      439:      451:  137:/*EOF*/
      439:      451:  138:/*EOF*/
      439:      451:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      769:      793:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      769:      793:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      769:      793:  186:/*EOF*/
      769:      793:  187:/*EOF*/
        -:        -:  188:/*EOF*/
      769:      793:  189:/*EOF*/
      769:      793:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
      194:      202:  195:/*EOF*/
        -:        -:  196:/*EOF*/
      194:      202:  197:/*EOF*/
        -:        -:  198:/*EOF*/
      194:      202:  199:/*EOF*/
       22:       22:  200:/*EOF*/
      172:      180:  201:/*EOF*/
      135:      131:  202:/*EOF*/
        -:        -:  203:/*EOF*/
      194:      202:  204:/*EOF*/
        -:        -:  205:/*EOF*/
      194:      202:  206:/*EOF*/
      194:      202:  207:/*EOF*/
      194:      202:  208:/*EOF*/
      194:      202:  209:/*EOF*/
      194:      202:  210:/*EOF*/
        -:        -:  211:/*EOF*/
      194:      202:  212:/*EOF*/
      194:      202:  213:/*EOF*/
        -:        -:  214:/*EOF*/
      194:      202:  215:/*EOF*/
      181:      189:  216:/*EOF*/
      181:      189:  217:/*EOF*/
       40:       36:  218:/*EOF*/
      181:      189:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       13:       13:  221:/*EOF*/
       13:       13:  222:/*EOF*/
       26:       26:  223:/*EOF*/
       13:       13:  224:/*EOF*/
       11:       11:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       13:       13:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      194:      202:  263:/*EOF*/
      194:      202:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      194:      202:  268:/*EOF*/
       40:       36:  269:/*EOF*/
      194:      202:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
      336:      348:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
      336:      348:  276:/*EOF*/
      336:      348:  277:/*EOF*/
      336:      348:  278:/*EOF*/
      336:      348:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
      336:      348:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       51:       63:  287:/*EOF*/
        3:        3:  288:/*EOF*/
        3:        3:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
      202:      222:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      385:      381:  296:/*EOF*/
      100:       96:  297:/*EOF*/
      100:       96:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
      185:      189:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
      185:      189:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      185:      189:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
      185:      189:  315:/*EOF*/
      185:      189:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
      185:      189:  319:/*EOF*/
      185:      189:  320:/*EOF*/
        -:        -:  321:/*EOF*/
      185:      189:  322:/*EOF*/
        -:        -:  323:/*EOF*/
      185:      189:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
      185:      189:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
      185:      189:  331:/*EOF*/
       74:       76:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      185:      189:  341:/*EOF*/
       34:       34:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      185:      189:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
      185:      189:  352:/*EOF*/
       34:       34:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
       15:       19:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
       15:       19:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       15:       19:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
      194:      202:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      194:      202:  372:/*EOF*/
        -:        -:  373:/*EOF*/
      194:      202:  374:/*EOF*/
        7:        7:  375:/*EOF*/
      187:      195:  376:/*EOF*/
      139:      147:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      194:      202:  379:/*EOF*/
        -:        -:  380:/*EOF*/
      386:      402:  381:/*EOF*/
      192:      200:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        7:        7:  387:/*EOF*/
        7:        7:  388:/*EOF*/
        7:        7:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      194:      202:  392:/*EOF*/
        -:        -:  393:/*EOF*/
      194:      202:  394:/*EOF*/
      194:      202:  395:/*EOF*/
      194:      202:  396:/*EOF*/
      194:      202:  397:/*EOF*/
      194:      202:  398:/*EOF*/
      194:      202:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      194:      202:  401:/*EOF*/
       30:       38:  402:/*EOF*/
       15:       19:  403:/*EOF*/
    #####:    #####:  404:/*EOF*/
       30:       38:  405:/*EOF*/
       15:       19:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       15:       19:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
       15:       19:  437:/*EOF*/
       15:       19:  438:/*EOF*/
        -:        -:  439:/*EOF*/
       15:       19:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
       15:       19:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       21:       29:  459:/*EOF*/
        6:       10:  460:/*EOF*/
    #####:    #####:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
       29:       37:  468:/*EOF*/
       28:       36:  469:/*EOF*/
       28:       36:  470:/*EOF*/
       14:       18:  471:/*EOF*/
       14:       18:  472:/*EOF*/
       14:       18:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
      179:      183:  476:/*EOF*/
      179:      183:  477:/*EOF*/
      179:      183:  478:/*EOF*/
      169:      173:  479:/*EOF*/
        -:        -:  480:/*EOF*/
       10:       10:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
      179:      183:  493:/*EOF*/
      211:      211:  494:/*EOF*/
       42:       38:  495:/*EOF*/
       18:       14:  496:/*EOF*/
       18:       14:  497:/*EOF*/
       18:       14:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      151:      159:  500:/*EOF*/
      151:      159:  501:/*EOF*/
      151:      159:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
       10:       10:  505:/*EOF*/
       10:       10:  506:/*EOF*/
       10:       10:  507:/*EOF*/
       10:       10:  508:/*EOF*/
       10:       10:  509:/*EOF*/
       10:       10:  510:/*EOF*/
       10:       10:  511:/*EOF*/
       10:       10:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       10:       10:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        4:        4:  518:/*EOF*/
        6:        6:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        6:        6:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
      194:      202:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
      142:      146:  539:/*EOF*/
        -:        -:  540:/*EOF*/
      142:      146:  541:/*EOF*/
        -:        -:  542:/*EOF*/
      142:      146:  543:/*EOF*/
       90:       98:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
      142:      146:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      142:      146:  554:/*EOF*/
      142:      146:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      142:      146:  557:/*EOF*/
        -:        -:  558:/*EOF*/
      142:      146:  559:/*EOF*/
      142:      146:  560:/*EOF*/
      142:      146:  561:/*EOF*/
      142:      146:  562:/*EOF*/
      142:      146:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
      142:      146:  567:/*EOF*/
        -:        -:  568:/*EOF*/
      142:      146:  569:/*EOF*/
        -:        -:  570:/*EOF*/
       36:       44:  571:/*EOF*/
       36:       44:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
      106:      102:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
      106:      102:  580:/*EOF*/
      106:      102:  581:/*EOF*/
      102:       98:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        4:        4:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
      106:      102:  587:/*EOF*/
      130:      122:  588:/*EOF*/
       28:       24:  589:/*EOF*/
       18:       14:  590:/*EOF*/
       18:       14:  591:/*EOF*/
       18:       14:  592:/*EOF*/
        -:        -:  593:/*EOF*/
       84:       84:  594:/*EOF*/
       84:       84:  595:/*EOF*/
       84:       84:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        4:        4:  599:/*EOF*/
        4:        4:  600:/*EOF*/
        4:        4:  601:/*EOF*/
        4:        4:  602:/*EOF*/
        4:        4:  603:/*EOF*/
        4:        4:  604:/*EOF*/
        4:        4:  605:/*EOF*/
        4:        4:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        4:        4:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        4:        4:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        4:        4:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
      142:      146:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        7:        7:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        7:        7:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        7:        7:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        7:        7:  659:/*EOF*/
        7:        7:  660:/*EOF*/
        7:        7:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        7:        7:  664:/*EOF*/
        7:        7:  665:/*EOF*/
        7:        7:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        7:        7:  668:/*EOF*/
        7:        7:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        7:        7:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
    #####:    #####:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
    #####:    #####:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        2:        2:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        2:        2:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        2:        2:  749:/*EOF*/
        2:        2:  750:/*EOF*/
        2:        2:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        2:        2:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        2:        2:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        2:        2:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        2:        2:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        2:        2:  764:/*EOF*/
        2:        2:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        2:        2:  767:/*EOF*/
        2:        2:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        2:        2:  771:/*EOF*/
        2:        2:  772:/*EOF*/
        2:        2:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        2:        2:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        5:        5:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        5:        5:  794:/*EOF*/
        5:        5:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        5:        5:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        5:        5:  801:/*EOF*/
        5:        5:  802:/*EOF*/
        5:        5:  803:/*EOF*/
        5:        5:  804:/*EOF*/
        5:        5:  805:/*EOF*/
        5:        5:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        5:        5:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
    #####:    #####:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
        -:        -:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
      214:      223:  892:/*EOF*/
        -:        -:  893:/*EOF*/
      214:      223:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
      214:      223:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      214:      223:  902:/*EOF*/
      214:      223:  903:/*EOF*/
      214:      223:  904:/*EOF*/
        -:        -:  905:/*EOF*/
      214:      223:  906:/*EOF*/
      214:      223:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
       54:       58:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
       54:       58:  914:/*EOF*/
       54:       58:  915:/*EOF*/
       54:       58:  916:/*EOF*/
       54:       58:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
       51:       51:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
       51:       51:  925:/*EOF*/
       51:       51:  926:/*EOF*/
        -:        -:  927:/*EOF*/
       51:       51:  928:/*EOF*/
       51:       51:  929:/*EOF*/
       51:       51:  930:/*EOF*/
       51:       51:  931:/*EOF*/
       51:       51:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
       54:       54:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
       54:       54:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
       18:       18:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
       18:       18:  949:/*EOF*/
       18:       18:  950:/*EOF*/
        -:        -:  951:/*EOF*/
       18:       18:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       18:       18:  954:/*EOF*/
        -:        -:  955:/*EOF*/
       18:       18:  956:/*EOF*/
        -:        -:  957:/*EOF*/
       18:       18:  958:/*EOF*/
       18:       18:  959:/*EOF*/
       18:       18:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
       18:       18:  964:/*EOF*/
       18:       18:  965:/*EOF*/
       18:       18:  966:/*EOF*/
        -:        -:  967:/*EOF*/
       18:       18:  968:/*EOF*/
       18:       18:  969:/*EOF*/
       18:       18:  970:/*EOF*/
        -:        -:  971:/*EOF*/
       18:       18:  972:/*EOF*/
       18:       18:  973:/*EOF*/
       18:       18:  974:/*EOF*/
       18:       18:  975:/*EOF*/
       18:       18:  976:/*EOF*/
       18:       18:  977:/*EOF*/
       18:       18:  978:/*EOF*/
       18:       18:  979:/*EOF*/
       18:       18:  980:/*EOF*/
       18:       18:  981:/*EOF*/
        -:        -:  982:/*EOF*/
       18:       18:  983:/*EOF*/
       18:       18:  984:/*EOF*/
       18:       18:  985:/*EOF*/
       18:       18:  986:/*EOF*/
       18:       18:  987:/*EOF*/
       18:       18:  988:/*EOF*/
       18:       18:  989:/*EOF*/
       18:       18:  990:/*EOF*/
       18:       18:  991:/*EOF*/
       18:       18:  992:/*EOF*/
        -:        -:  993:/*EOF*/
       18:       18:  994:/*EOF*/
       18:       18:  995:/*EOF*/
       18:       18:  996:/*EOF*/
       18:       18:  997:/*EOF*/
       18:       18:  998:/*EOF*/
       18:       18:  999:/*EOF*/
       18:       18: 1000:/*EOF*/
       18:       18: 1001:/*EOF*/
       18:       18: 1002:/*EOF*/
       18:       18: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
       18:       18: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
    #####:    #####: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
    #####:    #####: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
       18:       18: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        4:        4: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
       12:       12: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        4:        4: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
       18:       18: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
    #####:    #####: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
       42:       46: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
       42:       46: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
       42:       46: 1158:/*EOF*/
    #####:    #####: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
       42:       46: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
       17:       17: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
       24:       24: 1182:/*EOF*/
        7:        7: 1183:/*EOF*/
    #####:    #####: 1184:/*EOF*/
       10:       10: 1185:/*EOF*/
       10:       10: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
       24:       24: 1189:/*EOF*/
       14:       14: 1190:/*EOF*/
        7:        7: 1191:/*EOF*/
       10:       10: 1192:/*EOF*/
       10:       10: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
       17:       17: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
       18:       18: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
       36:       36: 1225:/*EOF*/
       36:       36: 1226:/*EOF*/
       36:       36: 1227:/*EOF*/
       18:       18: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
       18:       18: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
       18:       18: 1235:/*EOF*/
       18:       18: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
       18:       18: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
       18:       18: 1242:/*EOF*/
       18:       18: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
       18:       18: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
       18:       18: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
       18:       18: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        8:        8: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        8:        8: 1268:/*EOF*/
        8:        8: 1269:/*EOF*/
        8:        8: 1270:/*EOF*/
        8:        8: 1271:/*EOF*/
        8:        8: 1272:/*EOF*/
        8:        8: 1273:/*EOF*/
        8:        8: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
    #####:    #####: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
    #####:    #####: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
    #####:    #####: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        2:        3: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        2:        3: 1358:/*EOF*/
        2:        3: 1359:/*EOF*/
        2:        3: 1360:/*EOF*/
        2:        3: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
    #####:    #####: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
       18:       14: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
       18:       14: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
       18:       14: 1392:/*EOF*/
       18:       14: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
    #####:    #####: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
       18:       14: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
       18:       14: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
       18:       14: 1403:/*EOF*/
       18:       14: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        4:        8: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        4:        8: 1410:/*EOF*/
    #####:    #####: 1411:/*EOF*/
    #####:    #####: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
    #####:    #####: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        4:        8: 1418:/*EOF*/
        4:        8: 1419:/*EOF*/
        4:        8: 1420:/*EOF*/
        4:        8: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        4:        8: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        4:        8: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
       18:       14: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
       18:       14: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
       18:       14: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
       18:       14: 1452:/*EOF*/
    #####:    #####: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
       18:       14: 1456:/*EOF*/
       18:       14: 1457:/*EOF*/
       18:       14: 1458:/*EOF*/
       18:       14: 1459:/*EOF*/
       18:       14: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
    #####:    #####: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
    #####:    #####: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
       18:       14: 1474:/*EOF*/
       18:       14: 1475:/*EOF*/
       18:       14: 1476:/*EOF*/
       18:       14: 1477:/*EOF*/
       18:       14: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
       18:       14: 1481:/*EOF*/
       18:       14: 1482:/*EOF*/
       18:       14: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
    #####:    #####: 1502:/*EOF*/
    #####:    #####: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
    #####:    #####: 1505:/*EOF*/
    #####:    #####: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
    #####:    #####: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
    #####:    #####: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
    #####:    #####: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
    #####:    #####: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
    #####:    #####: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
       18:       14: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
       18:       14: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
       18:       14: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
       18:       14: 1578:/*EOF*/
       18:       14: 1579:/*EOF*/
       18:       14: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
       18:       14: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
       18:       14: 1584:/*EOF*/
       18:       14: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
       18:       14: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
       18:       14: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
       18:       14: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
       18:       14: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
    #####:    #####: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
    #####:    #####: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
    #####:    #####: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
    #####:    #####: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
    #####:    #####: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
       18:       14: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
    #####:    #####: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
    #####:    #####: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
    #####:    #####: 1653:/*EOF*/
    #####:    #####: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
    #####:    #####: 1659:/*EOF*/
    #####:    #####: 1660:/*EOF*/
    #####:    #####: 1661:/*EOF*/
    #####:    #####: 1662:/*EOF*/
    #####:    #####: 1663:/*EOF*/
    #####:    #####: 1664:/*EOF*/
    #####:    #####: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
    #####:    #####: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
    #####:    #####: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
    #####:    #####: 1675:/*EOF*/
    #####:    #####: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
    #####:    #####: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
    #####:    #####: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
       18:       14: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
       18:       14: 1686:/*EOF*/
       18:       14: 1687:/*EOF*/
       18:       14: 1688:/*EOF*/
       18:       14: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
       18:       14: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
       18:       14: 1705:/*EOF*/
    #####:    #####: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
       18:       14: 1713:/*EOF*/
       18:       14: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
       18:       14: 1717:/*EOF*/
       18:       14: 1718:/*EOF*/
       18:       14: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
       18:       14: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       18:       14: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
    #####:    #####: 1727:/*EOF*/
    #####:    #####: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
       18:       14: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
       18:       14: 1735:/*EOF*/
       18:       14: 1736:/*EOF*/
       18:       14: 1737:/*EOF*/
       18:       14: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
    #####:    #####: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
        -:        -: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
       18:       14: 1747:/*EOF*/
       18:       14: 1748:/*EOF*/
       18:       14: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
       18:       14: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
       18:       14: 1756:/*EOF*/
       18:       14: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
       18:       14: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
        -:        -: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
        8:       12: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
        8:       12: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
        -:        -: 1769:/*EOF*/
        8:       12: 1770:/*EOF*/
        8:       12: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        8:       12: 1774:/*EOF*/
        8:       12: 1775:/*EOF*/
        8:       12: 1776:/*EOF*/
        8:       12: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
    #####:    #####: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
    #####:    #####: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        8:       12: 1785:/*EOF*/
        8:       12: 1786:/*EOF*/
        8:       12: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        8:       12: 1789:/*EOF*/
        -:        -: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
    #####:    #####: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
    #####:    #####: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
    #####:    #####: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
    #####:    #####: 1818:/*EOF*/
        -:        -: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
    #####:    #####: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
    #####:    #####: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
        -:        -: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
    #####:    #####: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
        -:        -: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
        -:        -: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        4:        8: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        4:        8: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        4:        8: 1859:/*EOF*/
        4:        8: 1860:/*EOF*/
        4:        8: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
    #####:    #####: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
    #####:    #####: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
    #####:    #####: 1869:/*EOF*/
    #####:    #####: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
    #####:    #####: 1873:/*EOF*/
    #####:    #####: 1874:/*EOF*/
    #####:    #####: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
    #####:    #####: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
    #####:    #####: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
    #####:    #####: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
        -:        -: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
        -:        -: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        4:        8: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        4:        8: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        4:        8: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        4:        8: 1920:/*EOF*/
        4:        8: 1921:/*EOF*/
        4:        8: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        4:        8: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
    #####:    #####: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        4:        8: 1928:/*EOF*/
    #####:    #####: 1929:/*EOF*/
    #####:    #####: 1930:/*EOF*/
    #####:    #####: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        4:        8: 1934:/*EOF*/
        4:        8: 1935:/*EOF*/
        4:        8: 1936:/*EOF*/
        4:        8: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        4:        8: 1940:/*EOF*/
        4:        8: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
    #####:    #####: 1944:/*EOF*/
    #####:    #####: 1945:/*EOF*/
    #####:    #####: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
    #####:    #####: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
    #####:    #####: 1950:/*EOF*/
    #####:    #####: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
        -:        -: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        4:        8: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
        4:        8: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
        4:        8: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
    #####:    #####: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
    #####:    #####: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
    #####:    #####: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
    #####:    #####: 1987:/*EOF*/
    #####:    #####: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
    #####:    #####: 1990:/*EOF*/
    #####:    #####: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
       22:       26: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
       22:       26: 2004:/*EOF*/
       22:       26: 2005:/*EOF*/
        -:        -: 2006:/*EOF*/
       22:       26: 2007:/*EOF*/
       22:       26: 2008:/*EOF*/
       22:       26: 2009:/*EOF*/
       22:       26: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
       22:       26: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
        -:        -: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
       22:       26: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
        -:        -: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
    #####:    #####: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
        -:        -: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
    #####:    #####: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
        -:        -: 2060:/*EOF*/
        -:        -: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
       12:       12: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
       12:       12: 2073:/*EOF*/
       12:       12: 2074:/*EOF*/
        -:        -: 2075:/*EOF*/
       12:       12: 2076:/*EOF*/
        -:        -: 2077:/*EOF*/
       12:       12: 2078:/*EOF*/
        -:        -: 2079:/*EOF*/
        -:        -: 2080:/*EOF*/
       12:       12: 2081:/*EOF*/
       12:       12: 2082:/*EOF*/
       12:       12: 2083:/*EOF*/
       12:       12: 2084:/*EOF*/
        -:        -: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
       12:       12: 2087:/*EOF*/
       12:       12: 2088:/*EOF*/
        -:        -: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
    #####:    #####: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
       12:       12: 2095:/*EOF*/
       12:       12: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        -:        -: 2099:/*EOF*/
       12:       12: 2100:/*EOF*/
       12:       12: 2101:/*EOF*/
       12:       12: 2102:/*EOF*/
       12:       12: 2103:/*EOF*/
       12:       12: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
       12:       12: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
       12:       12: 2109:/*EOF*/
       12:       12: 2110:/*EOF*/
       12:       12: 2111:/*EOF*/
       12:       12: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
        -:        -: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
    #####:    #####: 2123:/*EOF*/
        -:        -: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
        -:        -: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
        -:        -: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
    #####:    #####: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
        -:        -: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
        -:        -: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
        -:        -: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
    #####:    #####: 2161:/*EOF*/
    #####:    #####: 2162:/*EOF*/
    #####:    #####: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
    #####:    #####: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
    #####:    #####: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
        -:        -: 2177:/*EOF*/
        -:        -: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
    #####:    #####: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
        -:        -: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
        -:        -: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
    #####:    #####: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
        -:        -: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
        -:        -: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
    #####:    #####: 2226:/*EOF*/
        -:        -: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
        -:        -: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
        -:        -: 2233:/*EOF*/
        -:        -: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
        -:        -: 2245:/*EOF*/
        -:        -: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
        -:        -: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
        -:        -: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
        -:        -: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
        -:        -: 2259:/*EOF*/
        -:        -: 2260:/*EOF*/
        -:        -: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
        -:        -: 2263:/*EOF*/
        -:        -: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
    #####:    #####: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
    #####:    #####: 2270:/*EOF*/
        -:        -: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
        -:        -: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
        -:        -: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
    #####:    #####: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
        -:        -: 2285:/*EOF*/
        -:        -: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
    #####:    #####: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
        -:        -: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
    #####:    #####: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
        -:        -: 2305:/*EOF*/
    #####:    #####: 2306:/*EOF*/
        -:        -: 2307:/*EOF*/
        -:        -: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
        -:        -: 2310:/*EOF*/
        -:        -: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
        -:        -: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
        -:        -: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
        -:        -: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
        -:        -: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
        -:        -: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
        -:        -: 2334:/*EOF*/
        -:        -: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
        -:        -: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
        -:        -: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
        -:        -: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
        -:        -: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
        -:        -: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
        -:        -: 2358:/*EOF*/
        -:        -: 2359:/*EOF*/
        -:        -: 2360:/*EOF*/
        -:        -: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
        -:        -: 2366:/*EOF*/
    #####:    #####: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
    #####:    #####: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
    #####:    #####: 2376:/*EOF*/
    #####:    #####: 2377:/*EOF*/
    #####:    #####: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
    #####:    #####: 2381:/*EOF*/
    #####:    #####: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
    #####:    #####: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
    #####:    #####: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
    #####:    #####: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
    #####:    #####: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
        -:        -: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
        -:        -: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
    #####:    #####: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
        -:        -: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
        -:        -: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
    #####:    #####: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
        5:        5: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
        -:        -: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
        -:        -: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        -:        -: 2426:/*EOF*/
        -:        -: 2427:/*EOF*/
        5:        5: 2428:/*EOF*/
        5:        5: 2429:/*EOF*/
        5:        5: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        5:        5: 2436:/*EOF*/
        3:        3: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        2:        2: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        5:        5: 2441:/*EOF*/
        5:        5: 2442:/*EOF*/
        -:        -: 2443:/*EOF*/
    #####:    #####: 2444:/*EOF*/
        -:        -: 2445:/*EOF*/
        5:        5: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        5:        5: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        5:        5: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        5:        5: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
    #####:    #####: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        5:        5: 2461:/*EOF*/
        5:        5: 2462:/*EOF*/
        5:        5: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
        -:        -: 2467:/*EOF*/
        -:        -: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
        -:        -: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        5:        5: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
    #####:    #####: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
        -:        -: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
    #####:    #####: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
    #####:    #####: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
    #####:    #####: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
        -:        -: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
        -:        -: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
        -:        -: 2504:/*EOF*/
        -:        -: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
    #####:    #####: 2511:/*EOF*/
        -:        -: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
        -:        -: 2515:/*EOF*/
        -:        -: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
        -:        -: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
    #####:    #####: 2527:/*EOF*/
    #####:    #####: 2528:/*EOF*/
        -:        -: 2529:/*EOF*/
    #####:    #####: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
        -:        -: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
        -:        -: 2534:/*EOF*/
        -:        -: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
        -:        -: 2539:/*EOF*/
        -:        -: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
        -:        -: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
    #####:    #####: 2547:/*EOF*/
    #####:    #####: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
    #####:    #####: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
        -:        -: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
        -:        -: 2557:/*EOF*/
        -:        -: 2558:/*EOF*/
        -:        -: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
        -:        -: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
        -:        -: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
        -:        -: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
        -:        -: 2576:/*EOF*/
        -:        -: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
        -:        -: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
    #####:    #####: 2582:/*EOF*/
    #####:    #####: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
    #####:    #####: 2585:/*EOF*/
    #####:    #####: 2586:/*EOF*/
    #####:    #####: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
    #####:    #####: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
    #####:    #####: 2598:/*EOF*/
        -:        -: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
    #####:    #####: 2601:/*EOF*/
    #####:    #####: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        -:        -: 2605:/*EOF*/
        -:        -: 2606:/*EOF*/
        -:        -: 2607:/*EOF*/
        -:        -: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        2:        2: 2613:/*EOF*/
        -:        -: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
        -:        -: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
        -:        -: 2620:/*EOF*/
        -:        -: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        2:        2: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
        -:        -: 2625:/*EOF*/
        2:        2: 2626:/*EOF*/
        -:        -: 2627:/*EOF*/
        2:        2: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
    #####:    #####: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
        -:        -: 2636:/*EOF*/
    #####:    #####: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        2:        2: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
        2:        2: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
        2:        2: 2644:/*EOF*/
        2:        2: 2645:/*EOF*/
        2:        2: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        2:        2: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
        -:        -: 2650:/*EOF*/
        2:        2: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
        -:        -: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        2:        2: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
        -:        -: 2660:/*EOF*/
    #####:    #####: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
        -:        -: 2663:/*EOF*/
        -:        -: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
        -:        -: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
        -:        -: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
    #####:    #####: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
        -:        -: 2674:/*EOF*/
        -:        -: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
    #####:    #####: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
    #####:    #####: 2684:/*EOF*/
        -:        -: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
    #####:    #####: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
    #####:    #####: 2689:/*EOF*/
    #####:    #####: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
        -:        -: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
    #####:    #####: 2698:/*EOF*/
    #####:    #####: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
    #####:    #####: 2703:/*EOF*/
    #####:    #####: 2704:/*EOF*/
        -:        -: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
    #####:    #####: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
    #####:    #####: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
    #####:    #####: 2714:/*EOF*/
        -:        -: 2715:/*EOF*/
        -:        -: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
    #####:    #####: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
        -:        -: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
    #####:    #####: 2730:/*EOF*/
    #####:    #####: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
    #####:    #####: 2735:/*EOF*/
    #####:    #####: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
        -:        -: 2739:/*EOF*/
        -:        -: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
        -:        -: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
    #####:    #####: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
    #####:    #####: 2753:/*EOF*/
    #####:    #####: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
      123:      259: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
      123:      259: 2763:/*EOF*/
      369:      777: 2764:/*EOF*/
      246:      518: 2765:/*EOF*/
      123:      259: 2766:/*EOF*/
      123:      259: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
      212:      220: 2772:/*EOF*/
        -:        -: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
      212:      220: 2775:/*EOF*/
      212:      220: 2776:/*EOF*/
        -:        -: 2777:/*EOF*/
      212:      220: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
     4413:     5029: 2780:/*EOF*/
     4201:     4809: 2781:/*EOF*/
     3989:     4589: 2782:/*EOF*/
     4096:     4700: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
     4096:     4700: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
      397:      365: 2787:/*EOF*/
      397:      365: 2788:/*EOF*/
        -:        -: 2789:/*EOF*/
      445:      401: 2790:/*EOF*/
       48:       36: 2791:/*EOF*/
      397:      365: 2792:/*EOF*/
      397:      365: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
        -:        -: 2795:/*EOF*/
        -:        -: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
      115:      243: 2798:/*EOF*/
       56:      168: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
       59:       75: 2803:/*EOF*/
       59:       75: 2804:/*EOF*/
        -:        -: 2805:/*EOF*/
        -:        -: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
      105:      109: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
        -:        -: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
        -:        -: 2815:/*EOF*/
        8:       12: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
        8:       12: 2818:/*EOF*/
        -:        -: 2819:/*EOF*/
        8:       12: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        8:       12: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
      103:      127: 2827:/*EOF*/
       95:      115: 2828:/*EOF*/
       87:      103: 2829:/*EOF*/
       95:      115: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
       95:      115: 2832:/*EOF*/
        8:       16: 2833:/*EOF*/
        8:       12: 2834:/*EOF*/
        -:        -: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
    #####:    #####: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
        -:        -: 2844:/*EOF*/
        7:        7: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
        7:        7: 2847:/*EOF*/
        -:        -: 2848:/*EOF*/
        7:        7: 2849:/*EOF*/
        7:        7: 2850:/*EOF*/
        7:        7: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
        7:        7: 2853:/*EOF*/
    #####:    #####: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
      219:      227: 2856:/*EOF*/
      212:      220: 2857:/*EOF*/
      212:      220: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
      212:      220: 2860:/*EOF*/
      212:      220: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
        8:       12: 2863:/*EOF*/
        8:       12: 2864:/*EOF*/
        -:        -: 2865:/*EOF*/
        8:       12: 2866:/*EOF*/
       16:       24: 2867:/*EOF*/
        8:       12: 2868:/*EOF*/
        8:       12: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
    #####:    #####: 2871:/*EOF*/
    #####:    #####: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
    #####:    #####: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
       18:       14: 2881:/*EOF*/
       18:       14: 2882:/*EOF*/
       18:       14: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
       18:       14: 2886:/*EOF*/
       18:       14: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
        -:        -: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
    #####:    #####: 2902:/*EOF*/
    #####:    #####: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
        -:        -: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
    #####:    #####: 2908:/*EOF*/
    #####:    #####: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
        -:        -: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
        -:        -: 2921:/*EOF*/
    #####:    #####: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        -:        -: 2924:/*EOF*/
    #####:    #####: 2925:/*EOF*/
        -:        -: 2926:/*EOF*/
    #####:    #####: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
    #####:    #####: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
    #####:    #####: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
    #####:    #####: 2935:/*EOF*/
        -:        -: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
    #####:    #####: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
        -:        -: 2945:/*EOF*/
        -:        -: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
    #####:    #####: 2954:/*EOF*/
        -:        -: 2955:/*EOF*/
        -:        -: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
        -:        -: 2959:/*EOF*/
        -:        -: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
    #####:    #####: 2971:/*EOF*/
    #####:    #####: 2972:/*EOF*/
    #####:    #####: 2973:/*EOF*/
    #####:    #####: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
        -:        -: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
    #####:    #####: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
    #####:    #####: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
    #####:    #####: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
    #####:    #####: 3000:/*EOF*/
        -:        -: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
    #####:    #####: 3009:/*EOF*/
    #####:    #####: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
    #####:    #####: 3014:/*EOF*/
    #####:    #####: 3015:/*EOF*/
    #####:    #####: 3016:/*EOF*/
    #####:    #####: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        -:        -: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
        -:        -: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
    #####:    #####: 3029:/*EOF*/
    #####:    #####: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
    #####:    #####: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
    #####:    #####: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
    #####:    #####: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
    #####:    #####: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
        -:        -: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
        -:        -: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
    #####:    #####: 3056:/*EOF*/
    #####:    #####: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
    #####:    #####: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
    #####:    #####: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
        -:        -: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
        -:        -: 3069:/*EOF*/
        -:        -: 3070:/*EOF*/
        -:        -: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
    #####:    #####: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
    #####:    #####: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
    #####:    #####: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
        -:        -: 3085:/*EOF*/
        -:        -: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
    #####:    #####: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
        -:        -: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
    #####:    #####: 3098:/*EOF*/
    #####:    #####: 3099:/*EOF*/
        -:        -: 3100:/*EOF*/
        -:        -: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        -:        -: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
    #####:    #####: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
    #####:    #####: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
        -:        -: 3117:/*EOF*/
    #####:    #####: 3118:/*EOF*/
        -:        -: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
    #####:    #####: 3126:/*EOF*/
    #####:    #####: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
    #####:    #####: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
    #####:    #####: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
    #####:    #####: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
    #####:    #####: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
        -:        -: 3148:/*EOF*/
        -:        -: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
        -:        -: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
    #####:    #####: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
        -:        -: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
        -:        -: 3159:/*EOF*/
    #####:    #####: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        -:        -: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
        -:        -: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        -:        -: 3167:/*EOF*/
    #####:    #####: 3168:/*EOF*/
    #####:    #####: 3169:/*EOF*/
    #####:    #####: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
        -:        -: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
        -:        -: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
    #####:    #####: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        -:        -: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
    #####:    #####: 3189:/*EOF*/
    #####:    #####: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
    #####:    #####: 3193:/*EOF*/
    #####:    #####: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
    #####:    #####: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
        -:        -: 3207:/*EOF*/
    #####:    #####: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
        -:        -: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
        -:        -: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
        -:        -: 3220:/*EOF*/
        -:        -: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
    #####:    #####: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
    #####:    #####: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
    #####:    #####: 3232:/*EOF*/
    #####:    #####: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
    #####:    #####: 3241:/*EOF*/
    #####:    #####: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        -:        -: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
        -:        -: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
    #####:    #####: 3250:/*EOF*/
    #####:    #####: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
    #####:    #####: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        -:        -: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
        -:        -: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
    #####:    #####: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
    #####:    #####: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
    #####:    #####: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
    #####:    #####: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
        -:        -: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
        -:        -: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
    #####:    #####: 3297:/*EOF*/
    #####:    #####: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
    #####:    #####: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
    #####:    #####: 3305:/*EOF*/
    #####:    #####: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
    #####:    #####: 3315:/*EOF*/
    #####:    #####: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
    #####:    #####: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
    #####:    #####: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        -:        -: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
    #####:    #####: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
    #####:    #####: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        -:        -: 3331:/*EOF*/
    #####:    #####: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
    #####:    #####: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
    #####:    #####: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
        -:        -: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
    #####:    #####: 3345:/*EOF*/
        -:        -: 3346:/*EOF*/
    #####:    #####: 3347:/*EOF*/
    #####:    #####: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
    #####:    #####: 3350:/*EOF*/
    #####:    #####: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
        -:        -: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
    #####:    #####: 3357:/*EOF*/
    #####:    #####: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
        -:        -: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
    #####:    #####: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
    #####:    #####: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
        -:        -: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
    #####:    #####: 3377:/*EOF*/
    #####:    #####: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
    #####:    #####: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
    #####:    #####: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
    #####:    #####: 3402:/*EOF*/
    #####:    #####: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
    #####:    #####: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
    #####:    #####: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
    #####:    #####: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
        -:        -: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
        -:        -: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
    #####:    #####: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
        -:        -: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
    #####:    #####: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
        -:        -: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
        -:        -: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
        -:        -: 3454:/*EOF*/
        -:        -: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
    #####:    #####: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
        -:        -: 3464:/*EOF*/
        -:        -: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
    #####:    #####: 3472:/*EOF*/
    #####:    #####: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
        -:        -: 3481:/*EOF*/
    #####:    #####: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
    #####:    #####: 3493:/*EOF*/
    #####:    #####: 3494:/*EOF*/
    #####:    #####: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
    #####:    #####: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
        -:        -: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
        -:        -: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
        -:        -: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
        -:        -: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
    #####:    #####: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
    #####:    #####: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
        -:        -: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
        -:        -: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
    #####:    #####: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
        -:        -: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
        -:        -: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
        -:        -: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
    #####:    #####: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        -:        -: 3551:/*EOF*/
    #####:    #####: 3552:/*EOF*/
    #####:    #####: 3553:/*EOF*/
        -:        -: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
    #####:    #####: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
        -:        -: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
    #####:    #####: 3563:/*EOF*/
    #####:    #####: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
        -:        -: 3566:/*EOF*/
        -:        -: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
    #####:    #####: 3569:/*EOF*/
    #####:    #####: 3570:/*EOF*/
    #####:    #####: 3571:/*EOF*/
    #####:    #####: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
    #####:    #####: 3574:/*EOF*/
    #####:    #####: 3575:/*EOF*/
    #####:    #####: 3576:/*EOF*/
    #####:    #####: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
    #####:    #####: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
    #####:    #####: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
    #####:    #####: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
    #####:    #####: 3588:/*EOF*/
    #####:    #####: 3589:/*EOF*/
        -:        -: 3590:/*EOF*/
        -:        -: 3591:/*EOF*/
        -:        -: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
    #####:    #####: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
    #####:    #####: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
    #####:    #####: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
        -:        -: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
    #####:    #####: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
    #####:    #####: 3612:/*EOF*/
    #####:    #####: 3613:/*EOF*/
        -:        -: 3614:/*EOF*/
        -:        -: 3615:/*EOF*/
    #####:    #####: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
    #####:    #####: 3619:/*EOF*/
    #####:    #####: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
    #####:    #####: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
        -:        -: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
        -:        -: 3636:/*EOF*/
        -:        -: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
        -:        -: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
    #####:    #####: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
    #####:    #####: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
    #####:    #####: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
    #####:    #####: 3664:/*EOF*/
    #####:    #####: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
    #####:    #####: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
        -:        -: 3672:/*EOF*/
        -:        -: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
    #####:    #####: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
    #####:    #####: 3680:/*EOF*/
        -:        -: 3681:/*EOF*/
        -:        -: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
    #####:    #####: 3685:/*EOF*/
    #####:    #####: 3686:/*EOF*/
    #####:    #####: 3687:/*EOF*/
    #####:    #####: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
    #####:    #####: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
    #####:    #####: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
    #####:    #####: 3698:/*EOF*/
    #####:    #####: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
    #####:    #####: 3702:/*EOF*/
    #####:    #####: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
    #####:    #####: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
    #####:    #####: 3716:/*EOF*/
        -:        -: 3717:/*EOF*/
    #####:    #####: 3718:/*EOF*/
    #####:    #####: 3719:/*EOF*/
    #####:    #####: 3720:/*EOF*/
    #####:    #####: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
    #####:    #####: 3724:/*EOF*/
    #####:    #####: 3725:/*EOF*/

src/intel/compiler/.libs/brw_eu.h.gcov

        -:        -:    0:Source:compiler/brw_eu.h
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
      402:      426:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      402:      426:  595:/*EOF*/
      402:      426:  596:/*EOF*/

src/intel/compiler/.libs/brw_eu_validate.c.gcov

        -:        -:    0:Source:compiler/brw_eu_validate.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_eu_validate.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_eu_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
    #####:    #####:   38:/*EOF*/
        -:        -:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      514:      538:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      514:      538:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       12:       12:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      502:      526:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
        -:        -:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
      274:      290:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      325:      357:  112:/*EOF*/
       51:       67:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
      146:      154:  117:/*EOF*/
        -:        -:  118:/*EOF*/
      146:      154:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       73:       77:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       73:       77:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       12:       12:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       34:       34:  139:/*EOF*/
       22:       22:  140:/*EOF*/
       10:       10:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        2:        2:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        4:        4:  148:/*EOF*/
        2:        2:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      987:     1027:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
      987:     1027:  156:/*EOF*/
      987:     1027:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      987:     1027:  160:/*EOF*/
       60:       60:  161:/*EOF*/
      927:      967:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
      927:      967:  180:/*EOF*/
      927:      967:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       60:       60:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
       60:       60:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
      212:      220:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      212:      220:  211:/*EOF*/
      212:      220:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
      212:      220:  217:/*EOF*/
       18:       18:  218:/*EOF*/
        -:        -:  219:/*EOF*/
      194:      202:  220:/*EOF*/
      146:      154:  221:/*EOF*/
        -:        -:  222:/*EOF*/
      194:      202:  223:/*EOF*/
       73:       77:  224:/*EOF*/
        -:        -:  225:/*EOF*/
      194:      202:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
      212:      220:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
      212:      220:  233:/*EOF*/
        -:        -:  234:/*EOF*/
      212:      220:  235:/*EOF*/
        2:        2:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        2:        2:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
      212:      220:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
      212:      220:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
      212:      220:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
      212:      224:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
      212:      224:  263:/*EOF*/
       34:       42:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        3:        3:  267:/*EOF*/
        3:        3:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        1:        1:  270:/*EOF*/
        1:        1:  271:/*EOF*/
        -:        -:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
        -:        -:  278:/*EOF*/
       30:       38:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      212:      224:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       59:       63:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       10:       10:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      143:      151:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
      139:      147:  308:/*EOF*/
        -:        -:  309:/*EOF*/
      139:      147:  310:/*EOF*/
        -:        -:  311:/*EOF*/
      139:      147:  312:/*EOF*/
      139:      147:  313:/*EOF*/
        -:        -:  314:/*EOF*/
      139:      147:  315:/*EOF*/
      139:      147:  316:/*EOF*/
      139:      147:  317:/*EOF*/
      139:      147:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      139:      147:  323:/*EOF*/
        -:        -:  324:/*EOF*/
      139:      147:  325:/*EOF*/
      139:      147:  326:/*EOF*/
       66:       70:  327:/*EOF*/
        -:        -:  328:/*EOF*/
    #####:    #####:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       66:       70:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
       73:       77:  334:/*EOF*/
       73:       77:  335:/*EOF*/
       73:       77:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
      112:      112:  383:/*EOF*/
        -:        -:  384:/*EOF*/
      112:      112:  385:/*EOF*/
       90:       90:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
       90:       90:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       22:       22:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
      212:      220:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
      212:      220:  404:/*EOF*/
      212:      220:  405:/*EOF*/
      212:      220:  406:/*EOF*/
      212:      220:  407:/*EOF*/
      212:      220:  408:/*EOF*/
        -:        -:  409:/*EOF*/
      212:      220:  410:/*EOF*/
       18:       18:  411:/*EOF*/
        -:        -:  412:/*EOF*/
      194:      202:  413:/*EOF*/
        7:        7:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      187:      195:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
      187:      195:  419:/*EOF*/
       48:       48:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      139:      147:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
      139:      147:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
      139:      147:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
      139:      147:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
      139:      147:  449:/*EOF*/
      139:      147:  450:/*EOF*/
      278:      294:  451:/*EOF*/
      139:      147:  452:/*EOF*/
        -:        -:  453:/*EOF*/
      139:      147:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      139:      147:  465:/*EOF*/
      139:      147:  466:/*EOF*/
        -:        -:  467:/*EOF*/
      139:      147:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
      139:      147:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      139:      147:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
      139:      147:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
      212:      220:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      212:      220:  517:/*EOF*/
      212:      220:  518:/*EOF*/
      212:      220:  519:/*EOF*/
      212:      220:  520:/*EOF*/
      212:      220:  521:/*EOF*/
        -:        -:  522:/*EOF*/
      212:      220:  523:/*EOF*/
       18:       18:  524:/*EOF*/
        -:        -:  525:/*EOF*/
      194:      202:  526:/*EOF*/
       13:       13:  527:/*EOF*/
       11:       11:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
       13:       13:  531:/*EOF*/
       13:       13:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
       13:       13:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
       13:       13:  546:/*EOF*/
        4:        4:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        4:        4:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
       13:       13:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
      383:      403:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
      202:      214:  580:/*EOF*/
      133:      141:  581:/*EOF*/
       69:       73:  582:/*EOF*/
       69:       73:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      171:      175:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
      171:      175:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
      171:      175:  602:/*EOF*/
       70:       72:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
      171:      175:  611:/*EOF*/
       34:       34:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      171:      175:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
      171:      175:  627:/*EOF*/
       34:       34:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
      171:      175:  636:/*EOF*/
      171:      175:  637:/*EOF*/
        -:        -:  638:/*EOF*/
      789:      799:  639:/*EOF*/
      618:      624:  640:/*EOF*/
      618:      624:  641:/*EOF*/
        -:        -:  642:/*EOF*/
     2630:     2684:  643:/*EOF*/
     2012:     2060:  644:/*EOF*/
     2012:     2060:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
      618:      624:  648:/*EOF*/
        -:        -:  649:/*EOF*/
      618:      624:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
      181:      189:  658:/*EOF*/
      106:      106:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
      181:      189:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
      272:      276:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
      272:      276:  689:/*EOF*/
      272:      276:  690:/*EOF*/
      272:      276:  691:/*EOF*/
        -:        -:  692:/*EOF*/
      988:      998:  693:/*EOF*/
      716:      722:  694:/*EOF*/
        -:        -:  695:/*EOF*/
     3892:     3946:  696:/*EOF*/
     3176:     3224:  697:/*EOF*/
     3176:     3224:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
      716:      722:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
      272:      276:  704:/*EOF*/
      272:      276:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
      318:      318:  711:/*EOF*/
        -:        -:  712:/*EOF*/
      318:      318:  713:/*EOF*/
        -:        -:  714:/*EOF*/
     8352:     8352:  715:/*EOF*/
     8123:     8123:  716:/*EOF*/
       89:       89:  717:/*EOF*/
     8034:     8034:  718:/*EOF*/
     2038:     2038:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
      229:      229:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
      212:      220:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
      212:      220:  734:/*EOF*/
      212:      220:  735:/*EOF*/
      212:      220:  736:/*EOF*/
      212:      220:  737:/*EOF*/
        -:        -:  738:/*EOF*/
      212:      220:  739:/*EOF*/
        -:        -:  740:/*EOF*/
      212:      220:  741:/*EOF*/
       18:       18:  742:/*EOF*/
        -:        -:  743:/*EOF*/
      194:      202:  744:/*EOF*/
       13:       13:  745:/*EOF*/
        -:        -:  746:/*EOF*/
      181:      189:  747:/*EOF*/
        5:        5:  748:/*EOF*/
        -:        -:  749:/*EOF*/
      176:      184:  750:/*EOF*/
      176:      184:  751:/*EOF*/
      176:      184:  752:/*EOF*/
        -:        -:  753:/*EOF*/
      373:      393:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
      197:      209:  781:/*EOF*/
      128:      136:  782:/*EOF*/
       69:       73:  783:/*EOF*/
       69:       73:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
      166:      170:  788:/*EOF*/
      166:      170:  789:/*EOF*/
      166:      170:  790:/*EOF*/
      166:      170:  791:/*EOF*/
      166:      170:  792:/*EOF*/
        -:        -:  793:/*EOF*/
      166:      170:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
      176:      184:  798:/*EOF*/
       70:       78:  799:/*EOF*/
        -:        -:  800:/*EOF*/
      106:      106:  801:/*EOF*/
      106:      106:  802:/*EOF*/
      106:      106:  803:/*EOF*/
      106:      106:  804:/*EOF*/
      106:      106:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
      106:      106:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
      106:      106:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
      106:      106:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
      106:      106:  824:/*EOF*/
      106:      106:  825:/*EOF*/
      106:      106:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
      106:      106:  842:/*EOF*/
      106:      106:  843:/*EOF*/
        1:        1:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        5:        5:  846:/*EOF*/
        4:        4:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        4:        4:  850:/*EOF*/
        4:        4:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        1:        1:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
      106:      106:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
      106:      106:  895:/*EOF*/
       45:       45:  896:/*EOF*/
        -:        -:  897:/*EOF*/
      765:      765:  898:/*EOF*/
      720:      720:  899:/*EOF*/
      360:      360:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      360:      360:  902:/*EOF*/
      360:      360:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       45:       45:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
      106:      106:  942:/*EOF*/
      112:      112:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
       67:       67:  972:/*EOF*/
       45:       45:  973:/*EOF*/
       22:       22:  974:/*EOF*/
       22:       22:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
      106:      106: 1007:/*EOF*/
       45:       45: 1008:/*EOF*/
       90:       90: 1009:/*EOF*/
       45:       45: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
      112:      112: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
       67:       67: 1032:/*EOF*/
       45:       45: 1033:/*EOF*/
       22:       22: 1034:/*EOF*/
       22:       22: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
      106:      106: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        7:        7: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        7:        7: 1048:/*EOF*/
        7:        7: 1049:/*EOF*/
        7:        7: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
      226:      234: 1052:/*EOF*/
      212:      220: 1053:/*EOF*/
      212:      220: 1054:/*EOF*/
      212:      220: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
      212:      220: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
      212:      220: 1060:/*EOF*/
      212:      220: 1061:/*EOF*/
      212:      220: 1062:/*EOF*/
      212:      220: 1063:/*EOF*/
      212:      220: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
      212:      220: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
      212:      220: 1070:/*EOF*/
      212:      220: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        7:        7: 1074:/*EOF*/

src/intel/compiler/.libs/brw_fs_cmod_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cmod_propagation.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_cmod_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      152:      254:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      152:      254:   54:/*EOF*/
      152:      254:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      873:     1244:   57:/*EOF*/
      721:      990:   58:/*EOF*/
        -:        -:   59:/*EOF*/
     2163:     2970:   60:/*EOF*/
     1376:     1876:   61:/*EOF*/
      934:     1255:   62:/*EOF*/
      558:      738:   63:/*EOF*/
      345:      489:   64:/*EOF*/
      845:     1210:   65:/*EOF*/
       58:      100:   66:/*EOF*/
      663:      890:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       58:      100:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       58:      100:   82:/*EOF*/
       28:       54:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       48:       76:   85:/*EOF*/
       18:       30:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
       30:       46:   89:/*EOF*/
       30:       46:   90:/*EOF*/
       36:       44:   91:/*EOF*/
       18:       22:   92:/*EOF*/
       54:       66:   93:/*EOF*/
       36:       44:   94:/*EOF*/
       18:       22:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       36:       44:   99:/*EOF*/
       36:       44:  100:/*EOF*/
       18:       22:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
       18:       22:  103:/*EOF*/
       18:       22:  104:/*EOF*/
       18:       22:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      152:      254:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       12:       14:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       12:       14:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      164:      268:  175:/*EOF*/
      152:      254:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
       12:       14:  179:/*EOF*/
        2:        2:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       12:       14:  182:/*EOF*/
        3:        3:  183:/*EOF*/

src/intel/compiler/.libs/brw_fs_combine_constants.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_combine_constants.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_combine_constants.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_combine_constants.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      206:      218:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      206:      218:   50:/*EOF*/
      206:      218:   51:/*EOF*/
        -:        -:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      206:      218:   68:/*EOF*/
        -:        -:   69:/*EOF*/
      206:      218:   70:/*EOF*/
        -:        -:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       18:       18:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      188:      200:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:    #####:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
        -:        -:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
        -:        -:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        5:        5:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        5:        5:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        5:        5:  199:/*EOF*/
        5:        5:  200:/*EOF*/
        5:        5:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        5:        5:  203:/*EOF*/
        5:        5:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      211:      223:  210:/*EOF*/
      206:      218:  211:/*EOF*/
        -:        -:  212:/*EOF*/
      206:      218:  213:/*EOF*/
      188:      200:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       72:       72:  216:/*EOF*/
       54:       54:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
       54:       54:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        5:        5:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        5:        5:  264:/*EOF*/
        -:        -:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        3:        3:  329:/*EOF*/

src/intel/compiler/.libs/brw_fs_copy_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_copy_propagation.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_copy_propagation.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_copy_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       17:       19:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       17:       19:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       17:       19:  108:/*EOF*/
        -:        -:  109:/*EOF*/
       17:       19:  110:/*EOF*/
      218:      346:  111:/*EOF*/
     3417:     5559:  112:/*EOF*/
     3216:     5232:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       17:       19:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       17:       19:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       17:       19:  121:/*EOF*/
      218:      346:  122:/*EOF*/
      201:      327:  123:/*EOF*/
      201:      327:  124:/*EOF*/
      201:      327:  125:/*EOF*/
      201:      327:  126:/*EOF*/
        -:        -:  127:/*EOF*/
     3417:     5559:  128:/*EOF*/
     3413:     5455:  129:/*EOF*/
      197:      223:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      197:      223:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      197:      223:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       17:       19:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       17:       19:  145:/*EOF*/
       17:       19:  146:/*EOF*/
       17:       19:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       17:       19:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      218:      346:  157:/*EOF*/
     1131:     1566:  158:/*EOF*/
      930:     1239:  159:/*EOF*/
      336:      536:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    15515:    17209:  163:/*EOF*/
    44763:    49518:  164:/*EOF*/
    59423:    65721:  165:/*EOF*/
    29320:    32406:  166:/*EOF*/
    29320:    32406:  167:/*EOF*/
      347:      391:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      218:      346:  179:/*EOF*/
      201:      327:  180:/*EOF*/
       54:       82:  181:/*EOF*/
       29:       47:  182:/*EOF*/
       29:       47:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      396:      652:  186:/*EOF*/
      220:      360:  187:/*EOF*/
      220:      360:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       17:       19:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       93:      141:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       93:      141:  203:/*EOF*/
       93:      141:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     2106:     4242:  207:/*EOF*/
     2013:     4101:  208:/*EOF*/
      165:      285:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     4092:     8244:  211:/*EOF*/
     2244:     4428:  212:/*EOF*/
        -:        -:  213:/*EOF*/
     2244:     4428:  214:/*EOF*/
     4488:     8856:  215:/*EOF*/
     4488:     8856:  216:/*EOF*/
        -:        -:  217:/*EOF*/
     2244:     4428:  218:/*EOF*/
      828:     1294:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
     2106:     4242:  226:/*EOF*/
     2013:     4101:  227:/*EOF*/
      165:      285:  228:/*EOF*/
        -:        -:  229:/*EOF*/
     4092:     8244:  230:/*EOF*/
     2244:     4428:  231:/*EOF*/
        -:        -:  232:/*EOF*/
     2244:     4428:  233:/*EOF*/
     5550:    10926:  234:/*EOF*/
     3306:     6498:  235:/*EOF*/
     3306:     6498:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
     2244:     4428:  239:/*EOF*/
      628:      956:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       17:       19:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
        -:        -:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
    #####:    #####:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
    #####:    #####:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
    #####:    #####:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
        -:        -:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
    #####:    #####:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
    #####:    #####:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       38:       38:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       38:       38:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       38:       38:  299:/*EOF*/
       10:       10:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       10:       10:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       28:       28:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       28:       28:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      192:      256:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      192:      256:  338:/*EOF*/
        3:        3:  339:/*EOF*/
        -:        -:  340:/*EOF*/
      189:      253:  341:/*EOF*/
       19:       56:  342:/*EOF*/
      277:      334:  343:/*EOF*/
      170:      197:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      170:      197:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      170:      197:  350:/*EOF*/
      170:      197:  351:/*EOF*/
       57:       76:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      113:      121:  357:/*EOF*/
      113:      121:  358:/*EOF*/
       50:       52:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       63:       69:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       63:       69:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      134:      146:  372:/*EOF*/
      126:      138:  373:/*EOF*/
       55:       61:  374:/*EOF*/
       25:       31:  375:/*EOF*/
        -:        -:  376:/*EOF*/
       38:       38:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
       38:       38:  384:/*EOF*/
       38:       38:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
       38:       38:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
       68:       68:  409:/*EOF*/
       60:       60:  410:/*EOF*/
       60:       60:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
       38:       38:  420:/*EOF*/
       38:       38:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
       38:       38:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
       38:       38:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
        -:        -:  433:/*EOF*/
    #####:    #####:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       38:       38:  447:/*EOF*/
       38:       38:  448:/*EOF*/
       38:       38:  449:/*EOF*/
       38:       38:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
       38:       38:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
       38:       38:  458:/*EOF*/
       38:       38:  459:/*EOF*/
       38:       38:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
       38:       38:  465:/*EOF*/
       76:       76:  466:/*EOF*/
       76:       76:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       38:       38:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
       38:       38:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
      216:      286:  493:/*EOF*/
        -:        -:  494:/*EOF*/
      216:      286:  495:/*EOF*/
        -:        -:  496:/*EOF*/
      216:      286:  497:/*EOF*/
      172:      199:  498:/*EOF*/
       44:       87:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
       44:       87:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
      118:      243:  504:/*EOF*/
       74:      156:  505:/*EOF*/
       62:      150:  506:/*EOF*/
        -:        -:  507:/*EOF*/
       62:      120:  508:/*EOF*/
       62:      120:  509:/*EOF*/
       38:       78:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
       24:       42:  515:/*EOF*/
       24:       42:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
       24:       42:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       24:       42:  527:/*EOF*/
       24:       42:  528:/*EOF*/
        -:        -:  529:/*EOF*/
       24:       42:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
       24:       42:  537:/*EOF*/
    #####:        8:  538:/*EOF*/
    #####:        4:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       24:       42:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
       12:       14:  548:/*EOF*/
       12:       14:  549:/*EOF*/
       12:       14:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        8:        8:  585:/*EOF*/
        8:        8:  586:/*EOF*/
        8:        8:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        8:        8:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        4:       20:  614:/*EOF*/
        4:        8:  615:/*EOF*/
        4:        8:  616:/*EOF*/
    #####:       12:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
    #####:    #####:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        4:       20:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
    #####:    #####:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
    #####:    #####:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
    #####:    #####:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
    #####:    #####:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
    #####:    #####:  703:/*EOF*/
    #####:    #####:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       44:       87:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
     1860:     2478:  722:/*EOF*/
        -:        -:  723:/*EOF*/
     2346:     3076:  724:/*EOF*/
      936:     1112:  725:/*EOF*/
      632:      708:  726:/*EOF*/
      364:      388:  727:/*EOF*/
      632:      708:  728:/*EOF*/
      536:      640:  729:/*EOF*/
      432:      520:  730:/*EOF*/
      610:      710:  731:/*EOF*/
     2700:     3434:  732:/*EOF*/
     2254:     2924:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
      402:      654:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
      402:      654:  743:/*EOF*/
        -:        -:  744:/*EOF*/
     2262:     3132:  745:/*EOF*/
        -:        -:  746:/*EOF*/
     4216:     5418:  747:/*EOF*/
     2356:     2940:  748:/*EOF*/
      864:     1082:  749:/*EOF*/
        -:        -:  750:/*EOF*/
     1708:     2144:  751:/*EOF*/
      216:      286:  752:/*EOF*/
       24:       30:  753:/*EOF*/
      192:      256:  754:/*EOF*/
       38:       38:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
     1860:     2478:  760:/*EOF*/
     1363:     1625:  761:/*EOF*/
      175:      219:  762:/*EOF*/
        -:        -:  763:/*EOF*/
    #####:       12:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    20196:    23902:  770:/*EOF*/
    21648:    25986:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
     2640:     3490:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
     1860:     2478:  785:/*EOF*/
      394:      446:  786:/*EOF*/
      394:      446:  787:/*EOF*/
      394:      446:  788:/*EOF*/
      394:      446:  789:/*EOF*/
      394:      446:  790:/*EOF*/
      394:      446:  791:/*EOF*/
      394:      446:  792:/*EOF*/
      394:      446:  793:/*EOF*/
     1476:     2042:  794:/*EOF*/
       10:       10:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
      402:      654:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
       17:       19:  824:/*EOF*/
        -:        -:  825:/*EOF*/
       17:       19:  826:/*EOF*/
       17:       19:  827:/*EOF*/
       17:       19:  828:/*EOF*/
        -:        -:  829:/*EOF*/
      218:      346:  830:/*EOF*/
      201:      327:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
      218:      346:  836:/*EOF*/
      201:      327:  837:/*EOF*/
      402:      654:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
       17:       19:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
      218:      346:  847:/*EOF*/
      201:      327:  848:/*EOF*/
        -:        -:  849:/*EOF*/
     4810:     7862:  850:/*EOF*/
     4609:     7535:  851:/*EOF*/
      536:     1148:  852:/*EOF*/
      536:     1148:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
      201:      327:  857:/*EOF*/
      201:      327:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
      218:      346:  861:/*EOF*/
      201:      327:  862:/*EOF*/
       17:       19:  863:/*EOF*/
        -:        -:  864:/*EOF*/
       17:       19:  865:/*EOF*/
        6:        8:  866:/*EOF*/
        -:        -:  867:/*EOF*/
       34:       38:  868:/*EOF*/
        3:        3:  869:/*EOF*/

src/intel/compiler/.libs/brw_fs.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
      367:      419:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
      367:      419:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      367:      419:   54:/*EOF*/
      810:      878:   55:/*EOF*/
      443:      459:   56:/*EOF*/
        -:        -:   57:/*EOF*/
      367:      419:   58:/*EOF*/
      367:      419:   59:/*EOF*/
      367:      419:   60:/*EOF*/
      367:      419:   61:/*EOF*/
      367:      419:   62:/*EOF*/
        -:        -:   63:/*EOF*/
      367:      419:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      367:      419:   66:/*EOF*/
        -:        -:   67:/*EOF*/
      367:      419:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
      367:      419:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      291:      303:   77:/*EOF*/
      291:      303:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       76:      116:   80:/*EOF*/
       76:      116:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
      367:      419:   87:/*EOF*/
      367:      419:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
       71:      111:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       71:      111:   97:/*EOF*/
       71:      111:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
      201:      209:  105:/*EOF*/
      201:      209:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      201:      209:  108:/*EOF*/
      201:      209:  109:/*EOF*/
      201:      209:  110:/*EOF*/
        -:        -:  111:/*EOF*/
       73:       77:  112:/*EOF*/
       73:       77:  113:/*EOF*/
        -:        -:  114:/*EOF*/
       73:       77:  115:/*EOF*/
       73:       77:  116:/*EOF*/
       73:       77:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       12:       12:  119:/*EOF*/
       12:       12:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       12:       12:  122:/*EOF*/
       12:       12:  123:/*EOF*/
       12:       12:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       10:       10:  126:/*EOF*/
       10:       10:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       10:       10:  129:/*EOF*/
       10:       10:  130:/*EOF*/
        -:        -:  131:/*EOF*/
      407:      459:  132:/*EOF*/
        -:        -:  133:/*EOF*/
      407:      459:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      407:      459:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      938:     1006:  138:/*EOF*/
      531:      547:  139:/*EOF*/
      407:      459:  140:/*EOF*/
        -:        -:  141:/*EOF*/
     1548:     1756:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      774:      878:  144:/*EOF*/
      774:      878:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        5:        5:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        5:        5:  150:/*EOF*/
        5:        5:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        5:        5:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        5:        5:  156:/*EOF*/
        5:        5:  157:/*EOF*/
        5:        5:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        5:        5:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
    #####:    #####:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
      285:      425:  242:/*EOF*/
        -:        -:  243:/*EOF*/
      285:      425:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        5:        5:  267:/*EOF*/
        -:        -:  268:/*EOF*/
      280:      420:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
      280:      420:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
      104:      104:  298:/*EOF*/
        -:        -:  299:/*EOF*/
      104:      104:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      104:      104:  326:/*EOF*/
      105:      105:  327:/*EOF*/
      105:      105:  328:/*EOF*/
       80:       80:  329:/*EOF*/
       78:       78:  330:/*EOF*/
       78:       78:  331:/*EOF*/
       39:       39:  332:/*EOF*/
        2:        2:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
      102:      102:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        5:        5:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        5:        5:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        5:        5:  347:/*EOF*/
        5:        5:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        5:        5:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
       23:       23:  354:/*EOF*/
       20:       20:  355:/*EOF*/
       20:       20:  356:/*EOF*/
        2:        2:  357:/*EOF*/
        -:        -:  358:/*EOF*/
       18:       18:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
       18:       18:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        3:        3:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       55:       61:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       55:       61:  372:/*EOF*/
       25:       31:  373:/*EOF*/
        -:        -:  374:/*EOF*/
       30:       30:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
       30:       30:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
       30:       30:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
      513:      597:  397:/*EOF*/
        -:        -:  398:/*EOF*/
      513:      597:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
     4964:     5416:  403:/*EOF*/
        -:        -:  404:/*EOF*/
     4964:     5416:  405:/*EOF*/
     4964:     5416:  406:/*EOF*/
     4964:     5416:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
     4752:     5200:  410:/*EOF*/
        -:        -:  411:/*EOF*/
     4752:     5200:  412:/*EOF*/
     4752:     5200:  413:/*EOF*/
     4752:     5200:  414:/*EOF*/
        -:        -:  415:/*EOF*/
      280:      290:  416:/*EOF*/
      280:      290:  417:/*EOF*/
        -:        -:  418:/*EOF*/
      280:      290:  419:/*EOF*/
      280:      290:  420:/*EOF*/
      335:      345:  421:/*EOF*/
      103:      103:  422:/*EOF*/
       96:       96:  423:/*EOF*/
       48:       48:  424:/*EOF*/
       48:       48:  425:/*EOF*/
        -:        -:  426:/*EOF*/
      280:      290:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      765:      877:  430:/*EOF*/
        -:        -:  431:/*EOF*/
     1013:     1209:  432:/*EOF*/
     1013:     1209:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
     4710:     5564:  437:/*EOF*/
        -:        -:  438:/*EOF*/
     4710:     5564:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    94889:   112351:  443:/*EOF*/
        -:        -:  444:/*EOF*/
   189734:   224642:  445:/*EOF*/
     4165:     4241:  446:/*EOF*/
   189778:   224702:  447:/*EOF*/
    94889:   112351:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
       62:       64:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       62:       64:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
       49:       51:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
       13:       13:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
    #####:    #####:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
        -:        -:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
    #####:    #####:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
        -:        -:  605:/*EOF*/
    #####:    #####:  606:/*EOF*/
        -:        -:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
    #####:    #####:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
    #####:    #####:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
     4577:     5415:  661:/*EOF*/
        -:        -:  662:/*EOF*/
     9274:    10974:  663:/*EOF*/
     9154:    10830:  664:/*EOF*/
    13731:    16245:  665:/*EOF*/
     9154:    10830:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    94842:   112510:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    94842:   112510:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    94842:   112510:  676:/*EOF*/
        -:        -:  677:/*EOF*/
     1032:     1032:  678:/*EOF*/
     1032:     1032:  679:/*EOF*/
        -:        -:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
     1120:     1288:  685:/*EOF*/
     1120:     1288:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
     2088:     2378:  689:/*EOF*/
        -:        -:  690:/*EOF*/
     2088:     2378:  691:/*EOF*/
     2088:     2378:  692:/*EOF*/
        -:        -:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
    #####:    #####:  764:/*EOF*/
        -:        -:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    90602:   107812:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    95345:   113013:  777:/*EOF*/
        -:        -:  778:/*EOF*/
    95345:   113013:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
    #####:    #####:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
     1616:     1616:  806:/*EOF*/
      584:      584:  807:/*EOF*/
     1032:     1032:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
     1090:     1090:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
     1090:     1090:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
    #####:    #####:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
    92639:   110307:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    92639:   110307:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    94761:   112429:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
     1049:     1295:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
    93712:   111134:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
     1373:     2085:  854:/*EOF*/
        -:        -:  855:/*EOF*/
     1373:     2085:  856:/*EOF*/
     1373:     2085:  857:/*EOF*/
     1373:     2085:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
     4670:     5769:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
     9340:    11538:  868:/*EOF*/
     4670:     5769:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
    #####:    #####:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
     4670:     5769:  875:/*EOF*/
      462:      720:  876:/*EOF*/
        -:        -:  877:/*EOF*/
     4208:     5049:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
     6311:     7582:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
     7222:     8947:  888:/*EOF*/
     1822:     2730:  889:/*EOF*/
     6311:     7582:  890:/*EOF*/
     5400:     6217:  891:/*EOF*/
      911:     1365:  892:/*EOF*/
        -:        -:  893:/*EOF*/
     5400:     6217:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
       69:       69:  905:/*EOF*/
        -:        -:  906:/*EOF*/
       69:       69:  907:/*EOF*/
    #####:    #####:  908:/*EOF*/
        -:        -:  909:/*EOF*/
       69:       69:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
       69:       69:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
    #####:    #####:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
       69:       69:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       19:       19:  954:/*EOF*/
        -:        -:  955:/*EOF*/
       19:       19:  956:/*EOF*/
       19:       19:  957:/*EOF*/
       38:       38:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
        -:        -:  962:/*EOF*/
    #####:    #####:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
    #####:    #####:  968:/*EOF*/
        -:        -:  969:/*EOF*/
      212:      216:  970:/*EOF*/
        -:        -:  971:/*EOF*/
      212:      216:  972:/*EOF*/
      212:      216:  973:/*EOF*/
      212:      216:  974:/*EOF*/
      212:      216:  975:/*EOF*/
      212:      216:  976:/*EOF*/
      212:      216:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        3:        3:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        3:        3:  985:/*EOF*/
        3:        3:  986:/*EOF*/
        3:        3:  987:/*EOF*/
        3:        3:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        2:        2:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        2:        2:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        2:        2:  996:/*EOF*/
        2:        2:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        2:        2: 1000:/*EOF*/
        2:        2: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        2:        2: 1004:/*EOF*/
        2:        2: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
    #####:    #####: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        2:        2: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        2:        2: 1014:/*EOF*/
        2:        2: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        3:        3: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        3:        3: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        3:        3: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        3:        3: 1027:/*EOF*/
        3:        3: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
    #####:    #####: 1034:/*EOF*/
    #####:    #####: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        3:        3: 1040:/*EOF*/
    #####:    #####: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        3:        3: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
    #####:    #####: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
    #####:    #####: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
    #####:    #####: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
    #####:    #####: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
    #####:    #####: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
    #####:    #####: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
    #####:    #####: 1330:/*EOF*/
    #####:    #####: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
    #####:    #####: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
    #####:    #####: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
    #####:    #####: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
    #####:    #####: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
    #####:    #####: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        6:        6: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        6:        6: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
      214:      226: 1389:/*EOF*/
      463:      487: 1390:/*EOF*/
      255:      267: 1391:/*EOF*/
       41:       41: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
       41:       41: 1394:/*EOF*/
       41:       41: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
    #####:    #####: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       82:       82: 1405:/*EOF*/
       41:       41: 1406:/*EOF*/
       82:       82: 1407:/*EOF*/
       41:       41: 1408:/*EOF*/
       41:       41: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
       41:       41: 1411:/*EOF*/
       41:       41: 1412:/*EOF*/
       41:       41: 1413:/*EOF*/
       82:       82: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        6:        6: 1420:/*EOF*/
        6:        6: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        5:        5: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        5:        5: 1426:/*EOF*/
        5:        5: 1427:/*EOF*/
        5:        5: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        5:        5: 1430:/*EOF*/
        5:        5: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        5:        5: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        5:        5: 1435:/*EOF*/
        5:        5: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
      315:      315: 1447:/*EOF*/
      620:      620: 1448:/*EOF*/
      310:      310: 1449:/*EOF*/
        3:        3: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
    #####:    #####: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
    #####:    #####: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
    #####:    #####: 1469:/*EOF*/
    #####:    #####: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        5:        5: 1511:/*EOF*/
        5:        5: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        5:        5: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        5:        5: 1517:/*EOF*/
        5:        5: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        5:        5: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
      211:      223: 1525:/*EOF*/
      206:      218: 1526:/*EOF*/
        8:        8: 1527:/*EOF*/
        8:        8: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
      206:      218: 1531:/*EOF*/
        4:        4: 1532:/*EOF*/
        4:        4: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        5:        5: 1538:/*EOF*/
        5:        5: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
    #####:    #####: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
    #####:    #####: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
    #####:    #####: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
    #####:    #####: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
    #####:    #####: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
    #####:    #####: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
    #####:    #####: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
    #####:    #####: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
    #####:    #####: 1606:/*EOF*/
    #####:    #####: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
    #####:    #####: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
    #####:    #####: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
    #####:    #####: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
    #####:    #####: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
    #####:    #####: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
    #####:    #####: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
       10:       10: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
        -:        -: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       10:       10: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
       10:       10: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
       10:       10: 1673:/*EOF*/
       10:       10: 1674:/*EOF*/
      261:      265: 1675:/*EOF*/
      251:      255: 1676:/*EOF*/
      251:      255: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
       10:       10: 1686:/*EOF*/
       10:       10: 1687:/*EOF*/
        -:        -: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
      574:      638: 1690:/*EOF*/
      564:      628: 1691:/*EOF*/
      368:      372: 1692:/*EOF*/
      968:      974: 1693:/*EOF*/
      600:      602: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
     1238:     1330: 1697:/*EOF*/
      674:      702: 1698:/*EOF*/
      434:      454: 1699:/*EOF*/
      904:      970: 1700:/*EOF*/
      470:      516: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
      574:      638: 1706:/*EOF*/
      564:      628: 1707:/*EOF*/
      368:      372: 1708:/*EOF*/
      524:      530: 1709:/*EOF*/
      156:      158: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
     1238:     1330: 1712:/*EOF*/
      674:      702: 1713:/*EOF*/
      434:      454: 1714:/*EOF*/
      635:      665: 1715:/*EOF*/
      201:      211: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
        -:        -: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
       10:       10: 1721:/*EOF*/
       10:       10: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
       10:       10: 1724:/*EOF*/
      261:      265: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
      251:      255: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
      251:      255: 1730:/*EOF*/
      251:      255: 1731:/*EOF*/
      251:      255: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
      474:      480: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        -:        -: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
      223:      225: 1739:/*EOF*/
       60:       60: 1740:/*EOF*/
       60:       60: 1741:/*EOF*/
      145:      145: 1742:/*EOF*/
       85:       85: 1743:/*EOF*/
       60:       60: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
      223:      225: 1746:/*EOF*/
      223:      225: 1747:/*EOF*/
      223:      225: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
      251:      255: 1752:/*EOF*/
      251:      255: 1753:/*EOF*/
      640:      650: 1754:/*EOF*/
      389:      395: 1755:/*EOF*/
        -:        -: 1756:/*EOF*/
       10:       10: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
      574:      638: 1759:/*EOF*/
      564:      628: 1760:/*EOF*/
      368:      372: 1761:/*EOF*/
      368:      372: 1762:/*EOF*/
      368:      372: 1763:/*EOF*/
      368:      372: 1764:/*EOF*/
      368:      372: 1765:/*EOF*/
        -:        -: 1766:/*EOF*/
     1238:     1330: 1767:/*EOF*/
      674:      702: 1768:/*EOF*/
      434:      454: 1769:/*EOF*/
      434:      454: 1770:/*EOF*/
      434:      454: 1771:/*EOF*/
      434:      454: 1772:/*EOF*/
      434:      454: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
        -:        -: 1775:/*EOF*/
        -:        -: 1776:/*EOF*/
       20:       20: 1777:/*EOF*/
       10:       10: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
        -:        -: 1789:/*EOF*/
       22:       24: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
       22:       24: 1792:/*EOF*/
       22:       24: 1793:/*EOF*/
       22:       24: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
     1161:     1484: 1797:/*EOF*/
     1139:     1460: 1798:/*EOF*/
      709:      818: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
     2587:     3212: 1801:/*EOF*/
     1448:     1752: 1802:/*EOF*/
      902:     1090: 1803:/*EOF*/
        -:        -: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
       22:       24: 1808:/*EOF*/
      676:      767: 1809:/*EOF*/
      654:      743: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
        -:        -: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
      152:      156: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
      502:      587: 1816:/*EOF*/
      502:      587: 1817:/*EOF*/
      502:      587: 1818:/*EOF*/
      502:      587: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
       22:       24: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
     1161:     1484: 1826:/*EOF*/
     1139:     1460: 1827:/*EOF*/
      709:      818: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
     2587:     3212: 1830:/*EOF*/
     1448:     1752: 1831:/*EOF*/
      902:     1090: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
        -:        -: 1839:/*EOF*/
      154:      168: 1840:/*EOF*/
      132:      144: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
        -:        -: 1844:/*EOF*/
    #####:    #####: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
       44:       48: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
       22:       22: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
        -:        -: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
       22:       22: 1866:/*EOF*/
       22:       22: 1867:/*EOF*/
        -:        -: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
       22:       22: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
       22:       22: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
       22:       22: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
       11:       11: 1880:/*EOF*/
       11:       11: 1881:/*EOF*/
       11:       11: 1882:/*EOF*/
       11:       11: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
       11:       11: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
       22:       22: 1892:/*EOF*/
       22:       22: 1893:/*EOF*/
        -:        -: 1894:/*EOF*/
       11:       11: 1895:/*EOF*/
       22:       22: 1896:/*EOF*/
       22:       22: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
    #####:    #####: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
       11:       11: 1903:/*EOF*/
       11:       11: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
        -:        -: 1913:/*EOF*/
        -:        -: 1914:/*EOF*/
        -:        -: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
        6:        6: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        6:        6: 1921:/*EOF*/
        3:        3: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
        3:        3: 1924:/*EOF*/
        3:        3: 1925:/*EOF*/
        3:        3: 1926:/*EOF*/
        3:        3: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
        -:        -: 1932:/*EOF*/
        3:        3: 1933:/*EOF*/
        3:        3: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        3:        3: 1937:/*EOF*/
        3:        3: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
      179:      205: 1949:/*EOF*/
      386:      420: 1950:/*EOF*/
      210:      218: 1951:/*EOF*/
      197:      205: 1952:/*EOF*/
        -:        -: 1953:/*EOF*/
       13:       13: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
       13:       13: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
    #####:    #####: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
       13:       13: 1969:/*EOF*/
       26:       26: 1970:/*EOF*/
       26:       26: 1971:/*EOF*/
       26:       26: 1972:/*EOF*/
       13:       13: 1973:/*EOF*/
       13:       13: 1974:/*EOF*/
       13:       13: 1975:/*EOF*/
        -:        -: 1976:/*EOF*/
        -:        -: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
        -:        -: 1980:/*EOF*/
        -:        -: 1981:/*EOF*/
        3:        3: 1982:/*EOF*/
    #####:    #####: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        3:        3: 1993:/*EOF*/
        3:        3: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
        -:        -: 1996:/*EOF*/
        -:        -: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
        3:        3: 2001:/*EOF*/
        -:        -: 2002:/*EOF*/
        3:        3: 2003:/*EOF*/
        3:        3: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
        3:        3: 2006:/*EOF*/
        3:        3: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        3:        3: 2010:/*EOF*/
        3:        3: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        3:        3: 2013:/*EOF*/
        3:        3: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
        -:        -: 2016:/*EOF*/
        3:        3: 2017:/*EOF*/
       14:       14: 2018:/*EOF*/
       11:       11: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
       22:       22: 2022:/*EOF*/
       11:       11: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
        -:        -: 2027:/*EOF*/
       22:       22: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
        3:        3: 2033:/*EOF*/
       14:       14: 2034:/*EOF*/
       11:       11: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
        -:        -: 2037:/*EOF*/
        -:        -: 2038:/*EOF*/
       11:       11: 2039:/*EOF*/
    #####:    #####: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
       22:       22: 2042:/*EOF*/
       11:       11: 2043:/*EOF*/
        -:        -: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
        -:        -: 2047:/*EOF*/
       22:       22: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        3:        3: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
        -:        -: 2054:/*EOF*/
        -:        -: 2055:/*EOF*/
        -:        -: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        3:        3: 2058:/*EOF*/
        -:        -: 2059:/*EOF*/
        3:        3: 2060:/*EOF*/
        6:        6: 2061:/*EOF*/
        3:        3: 2062:/*EOF*/
        3:        3: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
        -:        -: 2065:/*EOF*/
        -:        -: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
        -:        -: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        3:        3: 2073:/*EOF*/
       14:       14: 2074:/*EOF*/
       11:       11: 2075:/*EOF*/
        -:        -: 2076:/*EOF*/
       11:       11: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
       11:       11: 2079:/*EOF*/
       11:       11: 2080:/*EOF*/
       11:       11: 2081:/*EOF*/
    #####:    #####: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
        -:        -: 2084:/*EOF*/
        3:        3: 2085:/*EOF*/
        -:        -: 2086:/*EOF*/
        3:        3: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
        6:        6: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
        -:        -: 2093:/*EOF*/
        -:        -: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        5:        5: 2097:/*EOF*/
        -:        -: 2098:/*EOF*/
        5:        5: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
      345:      397: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
      340:      392: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
      742:      810: 2105:/*EOF*/
      402:      418: 2106:/*EOF*/
      778:      810: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
       26:       26: 2110:/*EOF*/
    #####:    #####: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
       26:       26: 2113:/*EOF*/
       26:       26: 2114:/*EOF*/
    #####:    #####: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
       26:       26: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
       26:       26: 2119:/*EOF*/
       26:       26: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
    #####:    #####: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
        -:        -: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
    #####:    #####: 2134:/*EOF*/
    #####:    #####: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
        -:        -: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
        -:        -: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
      340:      392: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
    #####:    #####: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
    #####:    #####: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
    #####:    #####: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
    #####:    #####: 2151:/*EOF*/
    #####:    #####: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
    #####:    #####: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
    #####:    #####: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        5:        5: 2163:/*EOF*/
        5:        5: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
       12:       14: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
       12:       14: 2169:/*EOF*/
        -:        -: 2170:/*EOF*/
      733:     1032: 2171:/*EOF*/
      721:     1018: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
      213:      265: 2174:/*EOF*/
      152:      182: 2175:/*EOF*/
        -:        -: 2176:/*EOF*/
       61:       83: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
    #####:    #####: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
    #####:    #####: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
    #####:    #####: 2183:/*EOF*/
    #####:    #####: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
       61:       83: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
        -:        -: 2189:/*EOF*/
       54:       72: 2190:/*EOF*/
       54:       72: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
    #####:    #####: 2194:/*EOF*/
    #####:    #####: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
    #####:    #####: 2197:/*EOF*/
    #####:    #####: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
    #####:    #####: 2202:/*EOF*/
    #####:    #####: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
    #####:    #####: 2206:/*EOF*/
    #####:    #####: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        -:        -: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
    #####:    #####: 2211:/*EOF*/
    #####:    #####: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
    #####:    #####: 2220:/*EOF*/
    #####:    #####: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
    #####:    #####: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
    #####:    #####: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
       55:       72: 2229:/*EOF*/
       30:       36: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
        -:        -: 2232:/*EOF*/
       25:       36: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
    #####:    #####: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
    #####:    #####: 2237:/*EOF*/
        -:        -: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
       25:       36: 2240:/*EOF*/
    #####:    #####: 2241:/*EOF*/
    #####:    #####: 2242:/*EOF*/
    #####:    #####: 2243:/*EOF*/
    #####:    #####: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
        -:        -: 2247:/*EOF*/
       25:       36: 2248:/*EOF*/
        -:        -: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
    #####:    #####: 2251:/*EOF*/
    #####:    #####: 2252:/*EOF*/
    #####:    #####: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
        -:        -: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
        -:        -: 2257:/*EOF*/
    #####:    #####: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
    #####:    #####: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
    #####:    #####: 2266:/*EOF*/
        -:        -: 2267:/*EOF*/
      186:      296: 2268:/*EOF*/
       54:       88: 2269:/*EOF*/
       66:      104: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
    #####:    #####: 2273:/*EOF*/
    #####:    #####: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
       66:      104: 2278:/*EOF*/
        -:        -: 2279:/*EOF*/
       12:       16: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
    #####:    #####: 2282:/*EOF*/
    #####:    #####: 2283:/*EOF*/
    #####:    #####: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
       12:       16: 2286:/*EOF*/
    #####:    #####: 2287:/*EOF*/
        -:        -: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
    #####:    #####: 2290:/*EOF*/
        -:        -: 2291:/*EOF*/
    #####:    #####: 2292:/*EOF*/
    #####:    #####: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
        -:        -: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
        -:        -: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
    #####:    #####: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
        -:        -: 2312:/*EOF*/
    #####:    #####: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
        -:        -: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
        -:        -: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
       12:       16: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
       36:       48: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
    #####:    #####: 2325:/*EOF*/
    #####:    #####: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
       36:       48: 2328:/*EOF*/
    #####:    #####: 2329:/*EOF*/
    #####:    #####: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
    #####:    #####: 2332:/*EOF*/
       36:       48: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
    #####:    #####: 2336:/*EOF*/
    #####:    #####: 2337:/*EOF*/
       36:       48: 2338:/*EOF*/
    #####:    #####: 2339:/*EOF*/
    #####:    #####: 2340:/*EOF*/
    #####:    #####: 2341:/*EOF*/
       36:       48: 2342:/*EOF*/
    #####:    #####: 2343:/*EOF*/
    #####:    #####: 2344:/*EOF*/
    #####:    #####: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
        -:        -: 2347:/*EOF*/
       36:       48: 2348:/*EOF*/
        -:        -: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
    #####:    #####: 2351:/*EOF*/
    #####:    #####: 2352:/*EOF*/
    #####:    #####: 2353:/*EOF*/
    #####:    #####: 2354:/*EOF*/
    #####:    #####: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
    #####:    #####: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
        -:        -: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
        -:        -: 2364:/*EOF*/
        -:        -: 2365:/*EOF*/
      285:      441: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
      637:      910: 2370:/*EOF*/
    #####:    #####: 2371:/*EOF*/
    #####:    #####: 2372:/*EOF*/
    #####:    #####: 2373:/*EOF*/
    #####:    #####: 2374:/*EOF*/
        -:        -: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
       12:       14: 2378:/*EOF*/
        -:        -: 2379:/*EOF*/
        -:        -: 2380:/*EOF*/
        -:        -: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
        -:        -: 2384:/*EOF*/
        -:        -: 2385:/*EOF*/
        -:        -: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        5:        5: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
        -:        -: 2393:/*EOF*/
        -:        -: 2394:/*EOF*/
        5:        5: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
        -:        -: 2397:/*EOF*/
        5:        5: 2398:/*EOF*/
        -:        -: 2399:/*EOF*/
      214:      226: 2400:/*EOF*/
      209:      221: 2401:/*EOF*/
      209:      221: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
        -:        -: 2405:/*EOF*/
    #####:    #####: 2406:/*EOF*/
    #####:    #####: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
        -:        -: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
        -:        -: 2411:/*EOF*/
        -:        -: 2412:/*EOF*/
        -:        -: 2413:/*EOF*/
        -:        -: 2414:/*EOF*/
        -:        -: 2415:/*EOF*/
        -:        -: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
    #####:    #####: 2418:/*EOF*/
    #####:    #####: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
    #####:    #####: 2421:/*EOF*/
    #####:    #####: 2422:/*EOF*/
        -:        -: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
        5:        5: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
        -:        -: 2428:/*EOF*/
        5:        5: 2429:/*EOF*/
        -:        -: 2430:/*EOF*/
        -:        -: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
        -:        -: 2433:/*EOF*/
        -:        -: 2434:/*EOF*/
        -:        -: 2435:/*EOF*/
        -:        -: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
        -:        -: 2440:/*EOF*/
        5:        5: 2441:/*EOF*/
        -:        -: 2442:/*EOF*/
        5:        5: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
        5:        5: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        5:        5: 2448:/*EOF*/
        5:        5: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
        -:        -: 2453:/*EOF*/
    #####:    #####: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
        -:        -: 2457:/*EOF*/
        -:        -: 2458:/*EOF*/
        -:        -: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
    #####:    #####: 2461:/*EOF*/
    #####:    #####: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
    #####:    #####: 2465:/*EOF*/
    #####:    #####: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
        -:        -: 2469:/*EOF*/
        -:        -: 2470:/*EOF*/
    #####:    #####: 2471:/*EOF*/
    #####:    #####: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
    #####:    #####: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
        -:        -: 2477:/*EOF*/
        -:        -: 2478:/*EOF*/
        -:        -: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
    #####:    #####: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
    #####:    #####: 2483:/*EOF*/
    #####:    #####: 2484:/*EOF*/
    #####:    #####: 2485:/*EOF*/
    #####:    #####: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
    #####:    #####: 2493:/*EOF*/
        -:        -: 2494:/*EOF*/
        -:        -: 2495:/*EOF*/
        -:        -: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
    #####:    #####: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
    #####:    #####: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
    #####:    #####: 2502:/*EOF*/
    #####:    #####: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
        -:        -: 2506:/*EOF*/
        -:        -: 2507:/*EOF*/
        -:        -: 2508:/*EOF*/
    #####:    #####: 2509:/*EOF*/
    #####:    #####: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
        -:        -: 2513:/*EOF*/
    #####:    #####: 2514:/*EOF*/
    #####:    #####: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
    #####:    #####: 2517:/*EOF*/
    #####:    #####: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
        -:        -: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
        -:        -: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
        -:        -: 2528:/*EOF*/
       12:       14: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
       12:       14: 2531:/*EOF*/
       12:       14: 2532:/*EOF*/
        -:        -: 2533:/*EOF*/
       12:       14: 2534:/*EOF*/
       12:       14: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
      611:      872: 2537:/*EOF*/
      599:      858: 2538:/*EOF*/
       66:      100: 2539:/*EOF*/
     1012:     1448: 2540:/*EOF*/
      479:      690: 2541:/*EOF*/
       66:      100: 2542:/*EOF*/
        -:        -: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
        -:        -: 2545:/*EOF*/
     1397:     1934: 2546:/*EOF*/
     1290:     1738: 2547:/*EOF*/
      842:     1148: 2548:/*EOF*/
      350:      486: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
        -:        -: 2552:/*EOF*/
        -:        -: 2553:/*EOF*/
        -:        -: 2554:/*EOF*/
      599:      858: 2555:/*EOF*/
        -:        -: 2556:/*EOF*/
      880:     1228: 2557:/*EOF*/
      490:      646: 2558:/*EOF*/
      969:     1354: 2559:/*EOF*/
      161:      220: 2560:/*EOF*/
      161:      220: 2561:/*EOF*/
      161:      220: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
    #####:    #####: 2564:/*EOF*/
    #####:    #####: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
      642:      890: 2568:/*EOF*/
      246:      324: 2569:/*EOF*/
       42:       72: 2570:/*EOF*/
    #####:    #####: 2571:/*EOF*/
    #####:    #####: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
        -:        -: 2574:/*EOF*/
        -:        -: 2575:/*EOF*/
       12:       14: 2576:/*EOF*/
    #####:    #####: 2577:/*EOF*/
        -:        -: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
    #####:    #####: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
       24:       28: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
        -:        -: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
        -:        -: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
        -:        -: 2594:/*EOF*/
        -:        -: 2595:/*EOF*/
        -:        -: 2596:/*EOF*/
        -:        -: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
        5:        5: 2599:/*EOF*/
        -:        -: 2600:/*EOF*/
        5:        5: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        5:        5: 2603:/*EOF*/
        -:        -: 2604:/*EOF*/
        5:        5: 2605:/*EOF*/
       53:       53: 2606:/*EOF*/
       48:       48: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
    #####:    #####: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        5:        5: 2613:/*EOF*/
        5:        5: 2614:/*EOF*/
        -:        -: 2615:/*EOF*/
        -:        -: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
    #####:    #####: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
        -:        -: 2623:/*EOF*/
    #####:    #####: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
        -:        -: 2630:/*EOF*/
        -:        -: 2631:/*EOF*/
        -:        -: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
        -:        -: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
       42:       42: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
       42:       42: 2638:/*EOF*/
       42:       42: 2639:/*EOF*/
       42:       42: 2640:/*EOF*/
       84:       84: 2641:/*EOF*/
       42:       42: 2642:/*EOF*/
       42:       42: 2643:/*EOF*/
        -:        -: 2644:/*EOF*/
        -:        -: 2645:/*EOF*/
        -:        -: 2646:/*EOF*/
       22:       24: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
       22:       24: 2649:/*EOF*/
       22:       24: 2650:/*EOF*/
        -:        -: 2651:/*EOF*/
        -:        -: 2652:/*EOF*/
       22:       24: 2653:/*EOF*/
    #####:    #####: 2654:/*EOF*/
        -:        -: 2655:/*EOF*/
       22:       24: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
     1030:     1313: 2658:/*EOF*/
     1008:     1289: 2659:/*EOF*/
     1008:     1289: 2660:/*EOF*/
        -:        -: 2661:/*EOF*/
     2194:     2812: 2662:/*EOF*/
      356:      468: 2663:/*EOF*/
      216:      272: 2664:/*EOF*/
       36:       36: 2665:/*EOF*/
       54:       54: 2666:/*EOF*/
     1044:     1325: 2667:/*EOF*/
       18:       18: 2668:/*EOF*/
      990:     1271: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
        -:        -: 2673:/*EOF*/
       18:       18: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
        -:        -: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
       18:       18: 2682:/*EOF*/
        -:        -: 2683:/*EOF*/
       60:       60: 2684:/*EOF*/
      120:      120: 2685:/*EOF*/
       60:       60: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
        -:        -: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
        -:        -: 2691:/*EOF*/
        -:        -: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
        -:        -: 2694:/*EOF*/
        -:        -: 2695:/*EOF*/
       21:       21: 2696:/*EOF*/
    #####:    #####: 2697:/*EOF*/
        -:        -: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
        -:        -: 2700:/*EOF*/
        -:        -: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
       42:       42: 2703:/*EOF*/
       21:       21: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
        -:        -: 2707:/*EOF*/
       21:       21: 2708:/*EOF*/
    #####:    #####: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
       21:       21: 2711:/*EOF*/
        -:        -: 2712:/*EOF*/
        -:        -: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
       21:       21: 2715:/*EOF*/
    #####:    #####: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
        -:        -: 2720:/*EOF*/
       42:       42: 2721:/*EOF*/
       42:       42: 2722:/*EOF*/
       21:       21: 2723:/*EOF*/
       18:       18: 2724:/*EOF*/
        -:        -: 2725:/*EOF*/
        -:        -: 2726:/*EOF*/
        -:        -: 2727:/*EOF*/
        -:        -: 2728:/*EOF*/
        -:        -: 2729:/*EOF*/
        -:        -: 2730:/*EOF*/
       42:       42: 2731:/*EOF*/
    #####:    #####: 2732:/*EOF*/
        -:        -: 2733:/*EOF*/
        -:        -: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
       42:       42: 2737:/*EOF*/
      126:      126: 2738:/*EOF*/
      168:      168: 2739:/*EOF*/
       84:       84: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
        -:        -: 2743:/*EOF*/
       42:       42: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
        -:        -: 2746:/*EOF*/
       42:       42: 2747:/*EOF*/
        -:        -: 2748:/*EOF*/
        -:        -: 2749:/*EOF*/
        -:        -: 2750:/*EOF*/
        -:        -: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
      126:      126: 2755:/*EOF*/
       42:       42: 2756:/*EOF*/
        -:        -: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
        -:        -: 2759:/*EOF*/
        -:        -: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
    #####:    #####: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
       18:       18: 2767:/*EOF*/
    #####:    #####: 2768:/*EOF*/
        -:        -: 2769:/*EOF*/
        -:        -: 2770:/*EOF*/
        -:        -: 2771:/*EOF*/
        -:        -: 2772:/*EOF*/
       18:       18: 2773:/*EOF*/
        -:        -: 2774:/*EOF*/
       60:       60: 2775:/*EOF*/
      120:      120: 2776:/*EOF*/
       60:       60: 2777:/*EOF*/
        -:        -: 2778:/*EOF*/
       42:       42: 2779:/*EOF*/
       42:       42: 2780:/*EOF*/
        -:        -: 2781:/*EOF*/
       21:       21: 2782:/*EOF*/
       21:       21: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
       21:       21: 2785:/*EOF*/
        -:        -: 2786:/*EOF*/
        -:        -: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
    #####:    #####: 2790:/*EOF*/
        -:        -: 2791:/*EOF*/
        -:        -: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
        -:        -: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
        -:        -: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
        -:        -: 2801:/*EOF*/
       21:       21: 2802:/*EOF*/
        -:        -: 2803:/*EOF*/
        -:        -: 2804:/*EOF*/
       21:       21: 2805:/*EOF*/
       21:       21: 2806:/*EOF*/
       21:       21: 2807:/*EOF*/
       21:       21: 2808:/*EOF*/
       18:       18: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
       18:       18: 2813:/*EOF*/
       18:       18: 2814:/*EOF*/
       18:       18: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
        -:        -: 2817:/*EOF*/
       22:       24: 2818:/*EOF*/
        5:        5: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
       22:       24: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
        -:        -: 2826:/*EOF*/
        -:        -: 2827:/*EOF*/
        -:        -: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
       12:       14: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
       12:       14: 2832:/*EOF*/
       12:       14: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
       12:       14: 2835:/*EOF*/
        -:        -: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
        -:        -: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
    #####:    #####: 2840:/*EOF*/
        -:        -: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
      587:      846: 2843:/*EOF*/
      575:      832: 2844:/*EOF*/
        -:        -: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
       66:      100: 2847:/*EOF*/
       66:      100: 2848:/*EOF*/
        -:        -: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
        -:        -: 2851:/*EOF*/
       66:      100: 2852:/*EOF*/
       66:      100: 2853:/*EOF*/
        -:        -: 2854:/*EOF*/
        -:        -: 2855:/*EOF*/
        -:        -: 2856:/*EOF*/
        -:        -: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
    #####:    #####: 2859:/*EOF*/
        -:        -: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
    #####:    #####: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
    #####:    #####: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
        -:        -: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
      443:      632: 2872:/*EOF*/
        -:        -: 2873:/*EOF*/
        -:        -: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
       12:       14: 2876:/*EOF*/
        -:        -: 2877:/*EOF*/
        -:        -: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
        -:        -: 2881:/*EOF*/
        -:        -: 2882:/*EOF*/
        -:        -: 2883:/*EOF*/
        1:        1: 2884:/*EOF*/
        -:        -: 2885:/*EOF*/
        1:        1: 2886:/*EOF*/
        1:        1: 2887:/*EOF*/
        1:        1: 2888:/*EOF*/
        -:        -: 2889:/*EOF*/
        -:        -: 2890:/*EOF*/
        1:        1: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
    #####:    #####: 2893:/*EOF*/
    #####:    #####: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
        -:        -: 2898:/*EOF*/
        1:        1: 2899:/*EOF*/
        -:        -: 2900:/*EOF*/
        2:        2: 2901:/*EOF*/
        3:        3: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
        -:        -: 2904:/*EOF*/
        -:        -: 2905:/*EOF*/
        1:        1: 2906:/*EOF*/
        1:        1: 2907:/*EOF*/
        1:        1: 2908:/*EOF*/
        1:        1: 2909:/*EOF*/
        1:        1: 2910:/*EOF*/
        1:        1: 2911:/*EOF*/
        1:        1: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
    #####:    #####: 2914:/*EOF*/
    #####:    #####: 2915:/*EOF*/
    #####:    #####: 2916:/*EOF*/
    #####:    #####: 2917:/*EOF*/
    #####:    #####: 2918:/*EOF*/
    #####:    #####: 2919:/*EOF*/
    #####:    #####: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
        1:        1: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
        1:        1: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
        1:        1: 2928:/*EOF*/
        1:        1: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
        -:        -: 2931:/*EOF*/
        1:        1: 2932:/*EOF*/
    #####:    #####: 2933:/*EOF*/
    #####:    #####: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
        1:        1: 2936:/*EOF*/
        -:        -: 2937:/*EOF*/
        -:        -: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
        -:        -: 2940:/*EOF*/
        -:        -: 2941:/*EOF*/
        -:        -: 2942:/*EOF*/
       17:       19: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    11890:    15811: 2945:/*EOF*/
       17:       19: 2946:/*EOF*/
        -:        -: 2947:/*EOF*/
        -:        -: 2948:/*EOF*/
       17:       19: 2949:/*EOF*/
        7:        8: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
       10:       11: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
      480:      635: 2954:/*EOF*/
      470:      624: 2955:/*EOF*/
      113:      181: 2956:/*EOF*/
        -:        -: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
      589:      770: 2959:/*EOF*/
      119:      146: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
    #####:    #####: 2962:/*EOF*/
    #####:    #####: 2963:/*EOF*/
    #####:    #####: 2964:/*EOF*/
    #####:    #####: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
        -:        -: 2968:/*EOF*/
        -:        -: 2969:/*EOF*/
      470:      624: 2970:/*EOF*/
        3:        3: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
      470:      624: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
        -:        -: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        9:        9: 2978:/*EOF*/
        6:        6: 2979:/*EOF*/
        -:        -: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
        -:        -: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
    23500:    31200: 2984:/*EOF*/
    11280:    14976: 2985:/*EOF*/
    #####:    #####: 2986:/*EOF*/
    #####:    #####: 2987:/*EOF*/
    #####:    #####: 2988:/*EOF*/
    #####:    #####: 2989:/*EOF*/
        -:        -: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
        -:        -: 2992:/*EOF*/
     1059:     1394: 2993:/*EOF*/
      119:      146: 2994:/*EOF*/
      470:      624: 2995:/*EOF*/
    #####:    #####: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
       10:       11: 3001:/*EOF*/
    #####:    #####: 3002:/*EOF*/
        -:        -: 3003:/*EOF*/
       27:       30: 3004:/*EOF*/
    11750:    15600: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        -:        -: 3007:/*EOF*/
    #####:    #####: 3008:/*EOF*/
        -:        -: 3009:/*EOF*/
        -:        -: 3010:/*EOF*/
    #####:    #####: 3011:/*EOF*/
        -:        -: 3012:/*EOF*/
    #####:    #####: 3013:/*EOF*/
    #####:    #####: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
    #####:    #####: 3016:/*EOF*/
        -:        -: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
    #####:    #####: 3019:/*EOF*/
    #####:    #####: 3020:/*EOF*/
    #####:    #####: 3021:/*EOF*/
    #####:    #####: 3022:/*EOF*/
    #####:    #####: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        -:        -: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        -:        -: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        -:        -: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
        -:        -: 3032:/*EOF*/
        -:        -: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
        -:        -: 3035:/*EOF*/
        -:        -: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
        -:        -: 3038:/*EOF*/
        -:        -: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
        -:        -: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
        -:        -: 3044:/*EOF*/
    #####:    #####: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
        -:        -: 3047:/*EOF*/
    #####:    #####: 3048:/*EOF*/
    #####:    #####: 3049:/*EOF*/
    #####:    #####: 3050:/*EOF*/
    #####:    #####: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
    #####:    #####: 3053:/*EOF*/
    #####:    #####: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
    #####:    #####: 3056:/*EOF*/
        -:        -: 3057:/*EOF*/
        -:        -: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
        -:        -: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
        -:        -: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
        -:        -: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
    #####:    #####: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
    #####:    #####: 3070:/*EOF*/
    #####:    #####: 3071:/*EOF*/
        -:        -: 3072:/*EOF*/
    #####:    #####: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
        -:        -: 3076:/*EOF*/
        -:        -: 3077:/*EOF*/
        -:        -: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
    #####:    #####: 3080:/*EOF*/
    #####:    #####: 3081:/*EOF*/
    #####:    #####: 3082:/*EOF*/
        -:        -: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
    #####:    #####: 3089:/*EOF*/
    #####:    #####: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        -:        -: 3092:/*EOF*/
        -:        -: 3093:/*EOF*/
        -:        -: 3094:/*EOF*/
        -:        -: 3095:/*EOF*/
    #####:    #####: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        -:        -: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
    #####:    #####: 3100:/*EOF*/
    #####:    #####: 3101:/*EOF*/
    #####:    #####: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
    #####:    #####: 3104:/*EOF*/
    #####:    #####: 3105:/*EOF*/
    #####:    #####: 3106:/*EOF*/
    #####:    #####: 3107:/*EOF*/
        -:        -: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
        -:        -: 3110:/*EOF*/
        -:        -: 3111:/*EOF*/
        -:        -: 3112:/*EOF*/
        -:        -: 3113:/*EOF*/
        -:        -: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
        -:        -: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
    #####:    #####: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
        -:        -: 3123:/*EOF*/
    #####:    #####: 3124:/*EOF*/
    #####:    #####: 3125:/*EOF*/
        -:        -: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
    #####:    #####: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
    #####:    #####: 3131:/*EOF*/
    #####:    #####: 3132:/*EOF*/
    #####:    #####: 3133:/*EOF*/
    #####:    #####: 3134:/*EOF*/
    #####:    #####: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
        -:        -: 3138:/*EOF*/
        -:        -: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
    #####:    #####: 3141:/*EOF*/
        -:        -: 3142:/*EOF*/
        -:        -: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
        -:        -: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
    #####:    #####: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
    #####:    #####: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
    #####:    #####: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        -:        -: 3156:/*EOF*/
    #####:    #####: 3157:/*EOF*/
    #####:    #####: 3158:/*EOF*/
    #####:    #####: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
    #####:    #####: 3161:/*EOF*/
    #####:    #####: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
    #####:    #####: 3164:/*EOF*/
        -:        -: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        5:        5: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        5:        5: 3169:/*EOF*/
        5:        5: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
        -:        -: 3173:/*EOF*/
    #####:    #####: 3174:/*EOF*/
    #####:    #####: 3175:/*EOF*/
    #####:    #####: 3176:/*EOF*/
    #####:    #####: 3177:/*EOF*/
    #####:    #####: 3178:/*EOF*/
        -:        -: 3179:/*EOF*/
        -:        -: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
    #####:    #####: 3182:/*EOF*/
    #####:    #####: 3183:/*EOF*/
        -:        -: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
        -:        -: 3186:/*EOF*/
        -:        -: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        -:        -: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        -:        -: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
        -:        -: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
        -:        -: 3202:/*EOF*/
        5:        5: 3203:/*EOF*/
        -:        -: 3204:/*EOF*/
      211:      223: 3205:/*EOF*/
      206:      218: 3206:/*EOF*/
      206:      218: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
    #####:    #####: 3209:/*EOF*/
    #####:    #####: 3210:/*EOF*/
    #####:    #####: 3211:/*EOF*/
        -:        -: 3212:/*EOF*/
    #####:    #####: 3213:/*EOF*/
    #####:    #####: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
    #####:    #####: 3216:/*EOF*/
        -:        -: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
        -:        -: 3222:/*EOF*/
    #####:    #####: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
        -:        -: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
    #####:    #####: 3230:/*EOF*/
    #####:    #####: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        5:        5: 3234:/*EOF*/
        -:        -: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        5:        5: 3237:/*EOF*/
        -:        -: 3238:/*EOF*/
        5:        5: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
      214:      226: 3241:/*EOF*/
      209:      221: 3242:/*EOF*/
      204:      216: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
        5:        5: 3245:/*EOF*/
        5:        5: 3246:/*EOF*/
        5:        5: 3247:/*EOF*/
        -:        -: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
        5:        5: 3250:/*EOF*/
        5:        5: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        5:        5: 3253:/*EOF*/
        5:        5: 3254:/*EOF*/
        -:        -: 3255:/*EOF*/
        5:        5: 3256:/*EOF*/
    #####:    #####: 3257:/*EOF*/
    #####:    #####: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
    #####:    #####: 3260:/*EOF*/
        -:        -: 3261:/*EOF*/
    #####:    #####: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
        -:        -: 3264:/*EOF*/
        5:        5: 3265:/*EOF*/
    #####:    #####: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
        -:        -: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
        -:        -: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
        -:        -: 3273:/*EOF*/
        -:        -: 3274:/*EOF*/
        -:        -: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
        -:        -: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
        -:        -: 3281:/*EOF*/
        -:        -: 3282:/*EOF*/
    #####:    #####: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
    #####:    #####: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
        -:        -: 3292:/*EOF*/
    #####:    #####: 3293:/*EOF*/
    #####:    #####: 3294:/*EOF*/
    #####:    #####: 3295:/*EOF*/
    #####:    #####: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
    #####:    #####: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
    #####:    #####: 3308:/*EOF*/
        -:        -: 3309:/*EOF*/
        -:        -: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
        -:        -: 3313:/*EOF*/
        -:        -: 3314:/*EOF*/
    #####:    #####: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
       25:       25: 3318:/*EOF*/
       20:       20: 3319:/*EOF*/
       20:       20: 3320:/*EOF*/
       20:       20: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        5:        5: 3324:/*EOF*/
        5:        5: 3325:/*EOF*/
        -:        -: 3326:/*EOF*/
        -:        -: 3327:/*EOF*/
        5:        5: 3328:/*EOF*/
        5:        5: 3329:/*EOF*/
        -:        -: 3330:/*EOF*/
        5:        5: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        -:        -: 3333:/*EOF*/
        -:        -: 3334:/*EOF*/
        5:        5: 3335:/*EOF*/
        -:        -: 3336:/*EOF*/
        5:        5: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
      211:      223: 3339:/*EOF*/
      206:      218: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
      206:      218: 3342:/*EOF*/
       54:       54: 3343:/*EOF*/
       36:       36: 3344:/*EOF*/
       18:       18: 3345:/*EOF*/
      224:      236: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        -:        -: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
    #####:    #####: 3351:/*EOF*/
    #####:    #####: 3352:/*EOF*/
    #####:    #####: 3353:/*EOF*/
        -:        -: 3354:/*EOF*/
    #####:    #####: 3355:/*EOF*/
    #####:    #####: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        -:        -: 3358:/*EOF*/
        -:        -: 3359:/*EOF*/
        -:        -: 3360:/*EOF*/
        -:        -: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        -:        -: 3363:/*EOF*/
    #####:    #####: 3364:/*EOF*/
    #####:    #####: 3365:/*EOF*/
    #####:    #####: 3366:/*EOF*/
    #####:    #####: 3367:/*EOF*/
    #####:    #####: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
    #####:    #####: 3370:/*EOF*/
    #####:    #####: 3371:/*EOF*/
    #####:    #####: 3372:/*EOF*/
    #####:    #####: 3373:/*EOF*/
    #####:    #####: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
        -:        -: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
        -:        -: 3379:/*EOF*/
        -:        -: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
        -:        -: 3382:/*EOF*/
        -:        -: 3383:/*EOF*/
        -:        -: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
        -:        -: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
        -:        -: 3388:/*EOF*/
        -:        -: 3389:/*EOF*/
        -:        -: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
        -:        -: 3394:/*EOF*/
        -:        -: 3395:/*EOF*/
        -:        -: 3396:/*EOF*/
        -:        -: 3397:/*EOF*/
        -:        -: 3398:/*EOF*/
        -:        -: 3399:/*EOF*/
        -:        -: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
        -:        -: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
        -:        -: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
        -:        -: 3409:/*EOF*/
        -:        -: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
        -:        -: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
        -:        -: 3418:/*EOF*/
        -:        -: 3419:/*EOF*/
        -:        -: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
    #####:    #####: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
    #####:    #####: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
    #####:    #####: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
    #####:    #####: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
    #####:    #####: 3435:/*EOF*/
        -:        -: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
    #####:    #####: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
        -:        -: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
    #####:    #####: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
        -:        -: 3448:/*EOF*/
    #####:    #####: 3449:/*EOF*/
    #####:    #####: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
        -:        -: 3452:/*EOF*/
    #####:    #####: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
        -:        -: 3458:/*EOF*/
      188:      200: 3459:/*EOF*/
        -:        -: 3460:/*EOF*/
    #####:    #####: 3461:/*EOF*/
    #####:    #####: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
    #####:    #####: 3465:/*EOF*/
        -:        -: 3466:/*EOF*/
    #####:    #####: 3467:/*EOF*/
        -:        -: 3468:/*EOF*/
        -:        -: 3469:/*EOF*/
        -:        -: 3470:/*EOF*/
        -:        -: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
        -:        -: 3475:/*EOF*/
        -:        -: 3476:/*EOF*/
        -:        -: 3477:/*EOF*/
    #####:    #####: 3478:/*EOF*/
    #####:    #####: 3479:/*EOF*/
    #####:    #####: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
    #####:    #####: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
        -:        -: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
        -:        -: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
        -:        -: 3498:/*EOF*/
        -:        -: 3499:/*EOF*/
        -:        -: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
    #####:    #####: 3502:/*EOF*/
    #####:    #####: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
        -:        -: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
      188:      200: 3507:/*EOF*/
        -:        -: 3508:/*EOF*/
        -:        -: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
    #####:    #####: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
        -:        -: 3513:/*EOF*/
        5:        5: 3514:/*EOF*/
    #####:    #####: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        5:        5: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
        -:        -: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
        -:        -: 3522:/*EOF*/
    #####:    #####: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
    #####:    #####: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
    #####:    #####: 3527:/*EOF*/
    #####:    #####: 3528:/*EOF*/
        -:        -: 3529:/*EOF*/
    #####:    #####: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
        -:        -: 3532:/*EOF*/
        -:        -: 3533:/*EOF*/
        -:        -: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
    #####:    #####: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
        -:        -: 3539:/*EOF*/
    #####:    #####: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
        -:        -: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
    #####:    #####: 3545:/*EOF*/
        -:        -: 3546:/*EOF*/
    #####:    #####: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
        5:        5: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
        5:        5: 3554:/*EOF*/
    #####:    #####: 3555:/*EOF*/
    #####:    #####: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
    #####:    #####: 3560:/*EOF*/
        -:        -: 3561:/*EOF*/
    #####:    #####: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
        -:        -: 3564:/*EOF*/
       25:       25: 3565:/*EOF*/
       20:       20: 3566:/*EOF*/
        5:        5: 3567:/*EOF*/
        -:        -: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
        5:        5: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        5:        5: 3575:/*EOF*/
        5:        5: 3576:/*EOF*/
        5:        5: 3577:/*EOF*/
        5:        5: 3578:/*EOF*/
        5:        5: 3579:/*EOF*/
        5:        5: 3580:/*EOF*/
        5:        5: 3581:/*EOF*/
        5:        5: 3582:/*EOF*/
        5:        5: 3583:/*EOF*/
        -:        -: 3584:/*EOF*/
        5:        5: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
        -:        -: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
        5:        5: 3590:/*EOF*/
        5:        5: 3591:/*EOF*/
        5:        5: 3592:/*EOF*/
        -:        -: 3593:/*EOF*/
        -:        -: 3594:/*EOF*/
        -:        -: 3595:/*EOF*/
        -:        -: 3596:/*EOF*/
        -:        -: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
        -:        -: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
       10:       10: 3601:/*EOF*/
       15:       15: 3602:/*EOF*/
       10:       10: 3603:/*EOF*/
        5:        5: 3604:/*EOF*/
        5:        5: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
        -:        -: 3607:/*EOF*/
        5:        5: 3608:/*EOF*/
    #####:    #####: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
        5:        5: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
    #####:    #####: 3616:/*EOF*/
    #####:    #####: 3617:/*EOF*/
    #####:    #####: 3618:/*EOF*/
    #####:    #####: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        5:        5: 3622:/*EOF*/
    #####:    #####: 3623:/*EOF*/
    #####:    #####: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
        -:        -: 3630:/*EOF*/
        -:        -: 3631:/*EOF*/
    #####:    #####: 3632:/*EOF*/
    #####:    #####: 3633:/*EOF*/
    #####:    #####: 3634:/*EOF*/
        -:        -: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
    #####:    #####: 3638:/*EOF*/
    #####:    #####: 3639:/*EOF*/
    #####:    #####: 3640:/*EOF*/
        -:        -: 3641:/*EOF*/
        -:        -: 3642:/*EOF*/
        5:        5: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        5:        5: 3645:/*EOF*/
        -:        -: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
        -:        -: 3648:/*EOF*/
        -:        -: 3649:/*EOF*/
        -:        -: 3650:/*EOF*/
        -:        -: 3651:/*EOF*/
        -:        -: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
        5:        5: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
        -:        -: 3658:/*EOF*/
        -:        -: 3659:/*EOF*/
    #####:    #####: 3660:/*EOF*/
        -:        -: 3661:/*EOF*/
        -:        -: 3662:/*EOF*/
        5:        5: 3663:/*EOF*/
        5:        5: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
        5:        5: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
        5:        5: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
        -:        -: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        5:        5: 3676:/*EOF*/
    #####:    #####: 3677:/*EOF*/
    #####:    #####: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
        5:        5: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
        -:        -: 3684:/*EOF*/
        -:        -: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
    #####:    #####: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
    #####:    #####: 3691:/*EOF*/
    #####:    #####: 3692:/*EOF*/
    #####:    #####: 3693:/*EOF*/
    #####:    #####: 3694:/*EOF*/
    #####:    #####: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        5:        5: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
    #####:    #####: 3701:/*EOF*/
    #####:    #####: 3702:/*EOF*/
    #####:    #####: 3703:/*EOF*/
    #####:    #####: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
    #####:    #####: 3706:/*EOF*/
    #####:    #####: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
        -:        -: 3709:/*EOF*/
       10:       10: 3710:/*EOF*/
        5:        5: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
        -:        -: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
        -:        -: 3715:/*EOF*/
        5:        5: 3716:/*EOF*/
    #####:    #####: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        5:        5: 3719:/*EOF*/
        5:        5: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
        -:        -: 3722:/*EOF*/
        5:        5: 3723:/*EOF*/
        5:        5: 3724:/*EOF*/
        5:        5: 3725:/*EOF*/
        5:        5: 3726:/*EOF*/
        -:        -: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
    #####:    #####: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
    #####:    #####: 3731:/*EOF*/
    #####:    #####: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
        -:        -: 3734:/*EOF*/
    #####:    #####: 3735:/*EOF*/
    #####:    #####: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
    #####:    #####: 3738:/*EOF*/
    #####:    #####: 3739:/*EOF*/
    #####:    #####: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
    #####:    #####: 3742:/*EOF*/
    #####:    #####: 3743:/*EOF*/
        -:        -: 3744:/*EOF*/
        -:        -: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
        -:        -: 3747:/*EOF*/
        -:        -: 3748:/*EOF*/
        -:        -: 3749:/*EOF*/
        -:        -: 3750:/*EOF*/
        -:        -: 3751:/*EOF*/
        -:        -: 3752:/*EOF*/
        -:        -: 3753:/*EOF*/
        -:        -: 3754:/*EOF*/
    #####:    #####: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
    #####:    #####: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
    #####:    #####: 3763:/*EOF*/
    #####:    #####: 3764:/*EOF*/
    #####:    #####: 3765:/*EOF*/
        -:        -: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
        -:        -: 3771:/*EOF*/
    #####:    #####: 3772:/*EOF*/
    #####:    #####: 3773:/*EOF*/
    #####:    #####: 3774:/*EOF*/
    #####:    #####: 3775:/*EOF*/
    #####:    #####: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
    #####:    #####: 3778:/*EOF*/
        -:        -: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
    #####:    #####: 3781:/*EOF*/
        -:        -: 3782:/*EOF*/
    #####:    #####: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
    #####:    #####: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
        -:        -: 3793:/*EOF*/
        -:        -: 3794:/*EOF*/
        -:        -: 3795:/*EOF*/
        -:        -: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
        -:        -: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
        -:        -: 3801:/*EOF*/
        -:        -: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
    #####:    #####: 3804:/*EOF*/
        -:        -: 3805:/*EOF*/
    #####:    #####: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
    #####:    #####: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
    #####:    #####: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
        -:        -: 3815:/*EOF*/
        -:        -: 3816:/*EOF*/
        -:        -: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
    #####:    #####: 3819:/*EOF*/
        -:        -: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
    #####:    #####: 3822:/*EOF*/
    #####:    #####: 3823:/*EOF*/
    #####:    #####: 3824:/*EOF*/
    #####:    #####: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
    #####:    #####: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
        -:        -: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
        -:        -: 3832:/*EOF*/
    #####:    #####: 3833:/*EOF*/
    #####:    #####: 3834:/*EOF*/
        -:        -: 3835:/*EOF*/
        -:        -: 3836:/*EOF*/
    #####:    #####: 3837:/*EOF*/
    #####:    #####: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
    #####:    #####: 3841:/*EOF*/
    #####:    #####: 3842:/*EOF*/
    #####:    #####: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
    #####:    #####: 3845:/*EOF*/
    #####:    #####: 3846:/*EOF*/
    #####:    #####: 3847:/*EOF*/
    #####:    #####: 3848:/*EOF*/
    #####:    #####: 3849:/*EOF*/
        -:        -: 3850:/*EOF*/
        -:        -: 3851:/*EOF*/
    #####:    #####: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
        -:        -: 3855:/*EOF*/
        -:        -: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
        -:        -: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
        -:        -: 3860:/*EOF*/
        -:        -: 3861:/*EOF*/
    #####:    #####: 3862:/*EOF*/
    #####:    #####: 3863:/*EOF*/
    #####:    #####: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
    #####:    #####: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
    #####:    #####: 3870:/*EOF*/
    #####:    #####: 3871:/*EOF*/
        -:        -: 3872:/*EOF*/
        -:        -: 3873:/*EOF*/
    #####:    #####: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
    #####:    #####: 3876:/*EOF*/
        -:        -: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
    #####:    #####: 3879:/*EOF*/
        -:        -: 3880:/*EOF*/
    #####:    #####: 3881:/*EOF*/
    #####:    #####: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
    #####:    #####: 3884:/*EOF*/
    #####:    #####: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
    #####:    #####: 3888:/*EOF*/
        -:        -: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
    #####:    #####: 3892:/*EOF*/
    #####:    #####: 3893:/*EOF*/
        -:        -: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
        -:        -: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
        -:        -: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
    #####:    #####: 3905:/*EOF*/
    #####:    #####: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
        -:        -: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
        -:        -: 3911:/*EOF*/
    #####:    #####: 3912:/*EOF*/
        -:        -: 3913:/*EOF*/
    #####:    #####: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
    #####:    #####: 3916:/*EOF*/
    #####:    #####: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
    #####:    #####: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
    #####:    #####: 3924:/*EOF*/
        -:        -: 3925:/*EOF*/
    #####:    #####: 3926:/*EOF*/
        -:        -: 3927:/*EOF*/
    #####:    #####: 3928:/*EOF*/
    #####:    #####: 3929:/*EOF*/
    #####:    #####: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
    #####:    #####: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
        -:        -: 3934:/*EOF*/
    #####:    #####: 3935:/*EOF*/
    #####:    #####: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
    #####:    #####: 3938:/*EOF*/
    #####:    #####: 3939:/*EOF*/
    #####:    #####: 3940:/*EOF*/
    #####:    #####: 3941:/*EOF*/
    #####:    #####: 3942:/*EOF*/
        -:        -: 3943:/*EOF*/
        -:        -: 3944:/*EOF*/
    #####:    #####: 3945:/*EOF*/
    #####:    #####: 3946:/*EOF*/
        -:        -: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
        -:        -: 3950:/*EOF*/
    #####:    #####: 3951:/*EOF*/
    #####:    #####: 3952:/*EOF*/
        -:        -: 3953:/*EOF*/
    #####:    #####: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
        -:        -: 3956:/*EOF*/
        -:        -: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
        -:        -: 3960:/*EOF*/
        -:        -: 3961:/*EOF*/
        -:        -: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
        -:        -: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
        -:        -: 3969:/*EOF*/
    #####:    #####: 3970:/*EOF*/
    #####:    #####: 3971:/*EOF*/
    #####:    #####: 3972:/*EOF*/
    #####:    #####: 3973:/*EOF*/
    #####:    #####: 3974:/*EOF*/
    #####:    #####: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
    #####:    #####: 3980:/*EOF*/
        -:        -: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
        -:        -: 3983:/*EOF*/
        -:        -: 3984:/*EOF*/
        -:        -: 3985:/*EOF*/
        -:        -: 3986:/*EOF*/
        -:        -: 3987:/*EOF*/
        -:        -: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
    #####:    #####: 3992:/*EOF*/
    #####:    #####: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
        -:        -: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
    #####:    #####: 4001:/*EOF*/
    #####:    #####: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
    #####:    #####: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
    #####:    #####: 4008:/*EOF*/
        -:        -: 4009:/*EOF*/
        -:        -: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
        -:        -: 4012:/*EOF*/
        -:        -: 4013:/*EOF*/
    #####:    #####: 4014:/*EOF*/
        -:        -: 4015:/*EOF*/
        -:        -: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
    #####:    #####: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
    #####:    #####: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
        -:        -: 4025:/*EOF*/
    #####:    #####: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
        -:        -: 4030:/*EOF*/
    #####:    #####: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
        -:        -: 4036:/*EOF*/
    #####:    #####: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
    #####:    #####: 4039:/*EOF*/
        -:        -: 4040:/*EOF*/
        -:        -: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
        -:        -: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
    #####:    #####: 4048:/*EOF*/
        -:        -: 4049:/*EOF*/
        -:        -: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
        -:        -: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
        -:        -: 4054:/*EOF*/
    #####:    #####: 4055:/*EOF*/
    #####:    #####: 4056:/*EOF*/
    #####:    #####: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
        -:        -: 4059:/*EOF*/
    #####:    #####: 4060:/*EOF*/
        -:        -: 4061:/*EOF*/
    #####:    #####: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
    #####:    #####: 4065:/*EOF*/
    #####:    #####: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
    #####:    #####: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
        -:        -: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
    #####:    #####: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
        -:        -: 4075:/*EOF*/
    #####:    #####: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
        -:        -: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
        -:        -: 4080:/*EOF*/
        -:        -: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
        -:        -: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
        -:        -: 4096:/*EOF*/
        -:        -: 4097:/*EOF*/
    #####:    #####: 4098:/*EOF*/
    #####:    #####: 4099:/*EOF*/
    #####:    #####: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
    #####:    #####: 4102:/*EOF*/
    #####:    #####: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
        -:        -: 4107:/*EOF*/
        -:        -: 4108:/*EOF*/
        -:        -: 4109:/*EOF*/
    #####:    #####: 4110:/*EOF*/
    #####:    #####: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
        -:        -: 4116:/*EOF*/
        -:        -: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
    #####:    #####: 4125:/*EOF*/
    #####:    #####: 4126:/*EOF*/
        -:        -: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
        -:        -: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
        -:        -: 4132:/*EOF*/
        -:        -: 4133:/*EOF*/
        -:        -: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
    #####:    #####: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
        -:        -: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
    #####:    #####: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
    #####:    #####: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
    #####:    #####: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
    #####:    #####: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
        -:        -: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
    #####:    #####: 4152:/*EOF*/
    #####:    #####: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
    #####:    #####: 4155:/*EOF*/
    #####:    #####: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
        -:        -: 4158:/*EOF*/
        -:        -: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
        -:        -: 4162:/*EOF*/
        -:        -: 4163:/*EOF*/
    #####:    #####: 4164:/*EOF*/
        -:        -: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
    #####:    #####: 4168:/*EOF*/
    #####:    #####: 4169:/*EOF*/
    #####:    #####: 4170:/*EOF*/
    #####:    #####: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
    #####:    #####: 4175:/*EOF*/
    #####:    #####: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
    #####:    #####: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
        -:        -: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
    #####:    #####: 4185:/*EOF*/
    #####:    #####: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
        -:        -: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
        -:        -: 4191:/*EOF*/
        -:        -: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
    #####:    #####: 4197:/*EOF*/
        -:        -: 4198:/*EOF*/
        -:        -: 4199:/*EOF*/
        -:        -: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
        -:        -: 4202:/*EOF*/
        -:        -: 4203:/*EOF*/
    #####:    #####: 4204:/*EOF*/
        -:        -: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
    #####:    #####: 4208:/*EOF*/
    #####:    #####: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
        -:        -: 4211:/*EOF*/
        -:        -: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
        -:        -: 4215:/*EOF*/
        -:        -: 4216:/*EOF*/
        -:        -: 4217:/*EOF*/
    #####:    #####: 4218:/*EOF*/
    #####:    #####: 4219:/*EOF*/
    #####:    #####: 4220:/*EOF*/
    #####:    #####: 4221:/*EOF*/
    #####:    #####: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
    #####:    #####: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
    #####:    #####: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
        -:        -: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
    #####:    #####: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
    #####:    #####: 4233:/*EOF*/
        -:        -: 4234:/*EOF*/
        -:        -: 4235:/*EOF*/
    #####:    #####: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
    #####:    #####: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
    #####:    #####: 4245:/*EOF*/
        -:        -: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
    #####:    #####: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
        -:        -: 4251:/*EOF*/
    #####:    #####: 4252:/*EOF*/
    #####:    #####: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
    #####:    #####: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
    #####:    #####: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
        -:        -: 4260:/*EOF*/
    #####:    #####: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
    #####:    #####: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
        -:        -: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
        -:        -: 4268:/*EOF*/
        -:        -: 4269:/*EOF*/
    #####:    #####: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
    #####:    #####: 4272:/*EOF*/
        -:        -: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
        -:        -: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
    #####:    #####: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
    #####:    #####: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
    #####:    #####: 4284:/*EOF*/
    #####:    #####: 4285:/*EOF*/
    #####:    #####: 4286:/*EOF*/
        -:        -: 4287:/*EOF*/
    #####:    #####: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
    #####:    #####: 4291:/*EOF*/
        -:        -: 4292:/*EOF*/
    #####:    #####: 4293:/*EOF*/
        -:        -: 4294:/*EOF*/
    #####:    #####: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
        -:        -: 4297:/*EOF*/
    #####:    #####: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
        -:        -: 4301:/*EOF*/
        -:        -: 4302:/*EOF*/
        -:        -: 4303:/*EOF*/
        -:        -: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
        -:        -: 4307:/*EOF*/
    #####:    #####: 4308:/*EOF*/
    #####:    #####: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
    #####:    #####: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
    #####:    #####: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
    #####:    #####: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
        -:        -: 4320:/*EOF*/
        5:        5: 4321:/*EOF*/
        -:        -: 4322:/*EOF*/
        5:        5: 4323:/*EOF*/
        -:        -: 4324:/*EOF*/
      209:      221: 4325:/*EOF*/
      204:      216: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
      204:      216: 4328:/*EOF*/
        -:        -: 4329:/*EOF*/
        5:        5: 4330:/*EOF*/
        5:        5: 4331:/*EOF*/
        5:        5: 4332:/*EOF*/
        5:        5: 4333:/*EOF*/
        5:        5: 4334:/*EOF*/
        5:        5: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
        -:        -: 4337:/*EOF*/
    #####:    #####: 4338:/*EOF*/
    #####:    #####: 4339:/*EOF*/
        -:        -: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
    #####:    #####: 4342:/*EOF*/
    #####:    #####: 4343:/*EOF*/
        -:        -: 4344:/*EOF*/
        -:        -: 4345:/*EOF*/
    #####:    #####: 4346:/*EOF*/
    #####:    #####: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
    #####:    #####: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
        -:        -: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
        -:        -: 4357:/*EOF*/
    #####:    #####: 4358:/*EOF*/
    #####:    #####: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
    #####:    #####: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
        -:        -: 4368:/*EOF*/
        -:        -: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
    #####:    #####: 4371:/*EOF*/
        -:        -: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
    #####:    #####: 4374:/*EOF*/
    #####:    #####: 4375:/*EOF*/
        -:        -: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
    #####:    #####: 4378:/*EOF*/
    #####:    #####: 4379:/*EOF*/
        -:        -: 4380:/*EOF*/
        -:        -: 4381:/*EOF*/
    #####:    #####: 4382:/*EOF*/
    #####:    #####: 4383:/*EOF*/
        -:        -: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
        -:        -: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
    #####:    #####: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
        -:        -: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
    #####:    #####: 4395:/*EOF*/
        -:        -: 4396:/*EOF*/
        -:        -: 4397:/*EOF*/
    #####:    #####: 4398:/*EOF*/
        -:        -: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
    #####:    #####: 4401:/*EOF*/
        -:        -: 4402:/*EOF*/
        -:        -: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
        -:        -: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
    #####:    #####: 4407:/*EOF*/
        -:        -: 4408:/*EOF*/
        -:        -: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
    #####:    #####: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
        -:        -: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
    #####:    #####: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
        -:        -: 4421:/*EOF*/
        -:        -: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
        -:        -: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
    #####:    #####: 4430:/*EOF*/
    #####:    #####: 4431:/*EOF*/
        -:        -: 4432:/*EOF*/
        -:        -: 4433:/*EOF*/
    #####:    #####: 4434:/*EOF*/
    #####:    #####: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
        -:        -: 4437:/*EOF*/
        -:        -: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
        -:        -: 4440:/*EOF*/
        -:        -: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
        -:        -: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
        -:        -: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
        -:        -: 4452:/*EOF*/
        -:        -: 4453:/*EOF*/
       12:       12: 4454:/*EOF*/
    #####:    #####: 4455:/*EOF*/
    #####:    #####: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
        -:        -: 4458:/*EOF*/
      211:      223: 4459:/*EOF*/
        -:        -: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
      187:      199: 4463:/*EOF*/
        -:        -: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
        5:        5: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        5:        5: 4469:/*EOF*/
        5:        5: 4470:/*EOF*/
        -:        -: 4471:/*EOF*/
        5:        5: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
        -:        -: 4474:/*EOF*/
        -:        -: 4475:/*EOF*/
        -:        -: 4476:/*EOF*/
        -:        -: 4477:/*EOF*/
        -:        -: 4478:/*EOF*/
        -:        -: 4479:/*EOF*/
        -:        -: 4480:/*EOF*/
        -:        -: 4481:/*EOF*/
        -:        -: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
        -:        -: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
        -:        -: 4487:/*EOF*/
        -:        -: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
      137:      149: 4490:/*EOF*/
        -:        -: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
        -:        -: 4493:/*EOF*/
      137:      149: 4494:/*EOF*/
        -:        -: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
        -:        -: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
        -:        -: 4499:/*EOF*/
        -:        -: 4500:/*EOF*/
        -:        -: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
        -:        -: 4503:/*EOF*/
        -:        -: 4504:/*EOF*/
      137:      149: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
      381:      413: 4507:/*EOF*/
      244:      264: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        -:        -: 4512:/*EOF*/
      137:      149: 4513:/*EOF*/
    #####:    #####: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        -:        -: 4516:/*EOF*/
        -:        -: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
        -:        -: 4519:/*EOF*/
        -:        -: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
        -:        -: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        -:        -: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
      137:      149: 4530:/*EOF*/
      381:      413: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
      404:      448: 4533:/*EOF*/
      404:      448: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
      720:      780: 4536:/*EOF*/
      484:      524: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
      608:      658: 4539:/*EOF*/
      282:      308: 4540:/*EOF*/
      288:      314: 4541:/*EOF*/
    #####:    #####: 4542:/*EOF*/
    #####:    #####: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
        -:        -: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
      137:      149: 4557:/*EOF*/
      136:      148: 4558:/*EOF*/
        -:        -: 4559:/*EOF*/
        -:        -: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
      137:      149: 4566:/*EOF*/
       44:       56: 4567:/*EOF*/
        -:        -: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
        -:        -: 4570:/*EOF*/
        -:        -: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
        -:        -: 4573:/*EOF*/
      137:      149: 4574:/*EOF*/
       12:       12: 4575:/*EOF*/
        -:        -: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
        -:        -: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
      205:      223: 4589:/*EOF*/
       68:       74: 4590:/*EOF*/
      204:      222: 4591:/*EOF*/
      204:      222: 4592:/*EOF*/
       68:       74: 4593:/*EOF*/
       68:       74: 4594:/*EOF*/
        -:        -: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
       68:       74: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
        -:        -: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
        -:        -: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
        -:        -: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
       68:       74: 4607:/*EOF*/
    #####:    #####: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
        -:        -: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
        -:        -: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
      137:      149: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
        -:        -: 4617:/*EOF*/
        -:        -: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
        -:        -: 4620:/*EOF*/
        -:        -: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
        -:        -: 4626:/*EOF*/
        -:        -: 4627:/*EOF*/
        -:        -: 4628:/*EOF*/
        -:        -: 4629:/*EOF*/
        -:        -: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
    #####:    #####: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
    #####:    #####: 4643:/*EOF*/
    #####:    #####: 4644:/*EOF*/
    #####:    #####: 4645:/*EOF*/
    #####:    #####: 4646:/*EOF*/
    #####:    #####: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
    #####:    #####: 4652:/*EOF*/
    #####:    #####: 4653:/*EOF*/
    #####:    #####: 4654:/*EOF*/
    #####:    #####: 4655:/*EOF*/
        -:        -: 4656:/*EOF*/
        -:        -: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
        -:        -: 4659:/*EOF*/
        -:        -: 4660:/*EOF*/
    #####:    #####: 4661:/*EOF*/
    #####:    #####: 4662:/*EOF*/
    #####:    #####: 4663:/*EOF*/
    #####:    #####: 4664:/*EOF*/
    #####:    #####: 4665:/*EOF*/
    #####:    #####: 4666:/*EOF*/
    #####:    #####: 4667:/*EOF*/
        -:        -: 4668:/*EOF*/
    #####:    #####: 4669:/*EOF*/
        -:        -: 4670:/*EOF*/
        -:        -: 4671:/*EOF*/
        -:        -: 4672:/*EOF*/
        -:        -: 4673:/*EOF*/
        -:        -: 4674:/*EOF*/
    #####:    #####: 4675:/*EOF*/
        -:        -: 4676:/*EOF*/
        -:        -: 4677:/*EOF*/
        -:        -: 4678:/*EOF*/
        -:        -: 4679:/*EOF*/
        -:        -: 4680:/*EOF*/
        -:        -: 4681:/*EOF*/
        -:        -: 4682:/*EOF*/
        -:        -: 4683:/*EOF*/
        -:        -: 4684:/*EOF*/
        -:        -: 4685:/*EOF*/
      194:      206: 4686:/*EOF*/
        -:        -: 4687:/*EOF*/
        -:        -: 4688:/*EOF*/
      194:      206: 4689:/*EOF*/
        -:        -: 4690:/*EOF*/
        -:        -: 4691:/*EOF*/
        -:        -: 4692:/*EOF*/
        -:        -: 4693:/*EOF*/
        -:        -: 4694:/*EOF*/
        -:        -: 4695:/*EOF*/
        -:        -: 4696:/*EOF*/
        -:        -: 4697:/*EOF*/
        -:        -: 4698:/*EOF*/
        -:        -: 4699:/*EOF*/
        -:        -: 4700:/*EOF*/
        -:        -: 4701:/*EOF*/
        -:        -: 4702:/*EOF*/
        -:        -: 4703:/*EOF*/
        -:        -: 4704:/*EOF*/
        -:        -: 4705:/*EOF*/
        -:        -: 4706:/*EOF*/
        -:        -: 4707:/*EOF*/
        -:        -: 4708:/*EOF*/
        -:        -: 4709:/*EOF*/
        -:        -: 4710:/*EOF*/
        -:        -: 4711:/*EOF*/
        -:        -: 4712:/*EOF*/
        -:        -: 4713:/*EOF*/
        -:        -: 4714:/*EOF*/
        -:        -: 4715:/*EOF*/
        -:        -: 4716:/*EOF*/
        -:        -: 4717:/*EOF*/
        -:        -: 4718:/*EOF*/
        -:        -: 4719:/*EOF*/
        -:        -: 4720:/*EOF*/
       93:       97: 4721:/*EOF*/
        -:        -: 4722:/*EOF*/
        -:        -: 4723:/*EOF*/
        -:        -: 4724:/*EOF*/
        -:        -: 4725:/*EOF*/
        -:        -: 4726:/*EOF*/
        -:        -: 4727:/*EOF*/
        -:        -: 4728:/*EOF*/
        -:        -: 4729:/*EOF*/
        -:        -: 4730:/*EOF*/
        -:        -: 4731:/*EOF*/
        -:        -: 4732:/*EOF*/
        -:        -: 4733:/*EOF*/
        -:        -: 4734:/*EOF*/
       22:       26: 4735:/*EOF*/
       22:       26: 4736:/*EOF*/
       22:       26: 4737:/*EOF*/
        -:        -: 4738:/*EOF*/
        -:        -: 4739:/*EOF*/
        -:        -: 4740:/*EOF*/
        -:        -: 4741:/*EOF*/
        -:        -: 4742:/*EOF*/
        -:        -: 4743:/*EOF*/
        -:        -: 4744:/*EOF*/
    #####:    #####: 4745:/*EOF*/
        -:        -: 4746:/*EOF*/
        -:        -: 4747:/*EOF*/
        -:        -: 4748:/*EOF*/
       18:       14: 4749:/*EOF*/
       18:       14: 4750:/*EOF*/
        -:        -: 4751:/*EOF*/
        -:        -: 4752:/*EOF*/
        -:        -: 4753:/*EOF*/
        -:        -: 4754:/*EOF*/
        -:        -: 4755:/*EOF*/
        -:        -: 4756:/*EOF*/
        -:        -: 4757:/*EOF*/
        -:        -: 4758:/*EOF*/
        -:        -: 4759:/*EOF*/
        -:        -: 4760:/*EOF*/
        -:        -: 4761:/*EOF*/
        8:        8: 4762:/*EOF*/
       16:       16: 4763:/*EOF*/
       16:       16: 4764:/*EOF*/
        -:        -: 4765:/*EOF*/
        -:        -: 4766:/*EOF*/
        -:        -: 4767:/*EOF*/
    #####:    #####: 4768:/*EOF*/
    #####:    #####: 4769:/*EOF*/
        -:        -: 4770:/*EOF*/
        -:        -: 4771:/*EOF*/
        -:        -: 4772:/*EOF*/
        -:        -: 4773:/*EOF*/
    #####:    #####: 4774:/*EOF*/
        -:        -: 4775:/*EOF*/
        -:        -: 4776:/*EOF*/
        -:        -: 4777:/*EOF*/
        -:        -: 4778:/*EOF*/
        -:        -: 4779:/*EOF*/
        -:        -: 4780:/*EOF*/
        -:        -: 4781:/*EOF*/
        -:        -: 4782:/*EOF*/
        -:        -: 4783:/*EOF*/
        -:        -: 4784:/*EOF*/
        -:        -: 4785:/*EOF*/
        -:        -: 4786:/*EOF*/
        -:        -: 4787:/*EOF*/
        -:        -: 4788:/*EOF*/
        8:        8: 4789:/*EOF*/
        -:        -: 4790:/*EOF*/
        -:        -: 4791:/*EOF*/
        -:        -: 4792:/*EOF*/
        -:        -: 4793:/*EOF*/
        -:        -: 4794:/*EOF*/
        -:        -: 4795:/*EOF*/
        -:        -: 4796:/*EOF*/
        -:        -: 4797:/*EOF*/
    #####:    #####: 4798:/*EOF*/
        -:        -: 4799:/*EOF*/
        -:        -: 4800:/*EOF*/
        -:        -: 4801:/*EOF*/
        -:        -: 4802:/*EOF*/
        -:        -: 4803:/*EOF*/
        -:        -: 4804:/*EOF*/
        -:        -: 4805:/*EOF*/
        -:        -: 4806:/*EOF*/
        -:        -: 4807:/*EOF*/
        -:        -: 4808:/*EOF*/
        -:        -: 4809:/*EOF*/
        -:        -: 4810:/*EOF*/
        -:        -: 4811:/*EOF*/
        -:        -: 4812:/*EOF*/
        -:        -: 4813:/*EOF*/
        -:        -: 4814:/*EOF*/
        -:        -: 4815:/*EOF*/
        -:        -: 4816:/*EOF*/
        -:        -: 4817:/*EOF*/
        -:        -: 4818:/*EOF*/
        -:        -: 4819:/*EOF*/
        -:        -: 4820:/*EOF*/
        -:        -: 4821:/*EOF*/
        -:        -: 4822:/*EOF*/
        -:        -: 4823:/*EOF*/
        -:        -: 4824:/*EOF*/
    #####:    #####: 4825:/*EOF*/
    #####:    #####: 4826:/*EOF*/
    #####:    #####: 4827:/*EOF*/
        -:        -: 4828:/*EOF*/
        -:        -: 4829:/*EOF*/
        -:        -: 4830:/*EOF*/
        -:        -: 4831:/*EOF*/
        -:        -: 4832:/*EOF*/
    #####:    #####: 4833:/*EOF*/
    #####:    #####: 4834:/*EOF*/
        -:        -: 4835:/*EOF*/
        -:        -: 4836:/*EOF*/
        -:        -: 4837:/*EOF*/
        -:        -: 4838:/*EOF*/
        -:        -: 4839:/*EOF*/
       10:       10: 4840:/*EOF*/
        -:        -: 4841:/*EOF*/
        5:        5: 4842:/*EOF*/
        -:        -: 4843:/*EOF*/
        5:        5: 4844:/*EOF*/
        5:        5: 4845:/*EOF*/
        -:        -: 4846:/*EOF*/
        -:        -: 4847:/*EOF*/
    #####:    #####: 4848:/*EOF*/
        -:        -: 4849:/*EOF*/
        -:        -: 4850:/*EOF*/
        -:        -: 4851:/*EOF*/
        -:        -: 4852:/*EOF*/
        -:        -: 4853:/*EOF*/
        -:        -: 4854:/*EOF*/
        -:        -: 4855:/*EOF*/
        -:        -: 4856:/*EOF*/
        -:        -: 4857:/*EOF*/
        -:        -: 4858:/*EOF*/
    #####:    #####: 4859:/*EOF*/
        -:        -: 4860:/*EOF*/
        -:        -: 4861:/*EOF*/
        -:        -: 4862:/*EOF*/
    #####:    #####: 4863:/*EOF*/
        -:        -: 4864:/*EOF*/
        -:        -: 4865:/*EOF*/
        -:        -: 4866:/*EOF*/
        -:        -: 4867:/*EOF*/
        -:        -: 4868:/*EOF*/
        -:        -: 4869:/*EOF*/
    #####:    #####: 4870:/*EOF*/
    #####:    #####: 4871:/*EOF*/
        -:        -: 4872:/*EOF*/
    #####:    #####: 4873:/*EOF*/
        -:        -: 4874:/*EOF*/
        -:        -: 4875:/*EOF*/
        -:        -: 4876:/*EOF*/
        -:        -: 4877:/*EOF*/
        -:        -: 4878:/*EOF*/
        -:        -: 4879:/*EOF*/
    #####:    #####: 4880:/*EOF*/
    #####:    #####: 4881:/*EOF*/
        -:        -: 4882:/*EOF*/
    #####:    #####: 4883:/*EOF*/
        -:        -: 4884:/*EOF*/
        -:        -: 4885:/*EOF*/
        -:        -: 4886:/*EOF*/
        -:        -: 4887:/*EOF*/
    #####:    #####: 4888:/*EOF*/
        -:        -: 4889:/*EOF*/
        -:        -: 4890:/*EOF*/
        -:        -: 4891:/*EOF*/
        -:        -: 4892:/*EOF*/
    #####:    #####: 4893:/*EOF*/
        -:        -: 4894:/*EOF*/
        -:        -: 4895:/*EOF*/
        -:        -: 4896:/*EOF*/
        -:        -: 4897:/*EOF*/
        -:        -: 4898:/*EOF*/
        -:        -: 4899:/*EOF*/
        -:        -: 4900:/*EOF*/
    #####:    #####: 4901:/*EOF*/
        -:        -: 4902:/*EOF*/
        -:        -: 4903:/*EOF*/
        -:        -: 4904:/*EOF*/
        -:        -: 4905:/*EOF*/
        -:        -: 4906:/*EOF*/
        -:        -: 4907:/*EOF*/
        -:        -: 4908:/*EOF*/
        -:        -: 4909:/*EOF*/
        -:        -: 4910:/*EOF*/
        -:        -: 4911:/*EOF*/
        -:        -: 4912:/*EOF*/
    #####:    #####: 4913:/*EOF*/
        -:        -: 4914:/*EOF*/
    #####:    #####: 4915:/*EOF*/
        -:        -: 4916:/*EOF*/
        -:        -: 4917:/*EOF*/
        -:        -: 4918:/*EOF*/
        -:        -: 4919:/*EOF*/
        -:        -: 4920:/*EOF*/
        -:        -: 4921:/*EOF*/
    #####:    #####: 4922:/*EOF*/
        -:        -: 4923:/*EOF*/
    #####:    #####: 4924:/*EOF*/
        -:        -: 4925:/*EOF*/
        -:        -: 4926:/*EOF*/
        -:        -: 4927:/*EOF*/
        -:        -: 4928:/*EOF*/
    #####:    #####: 4929:/*EOF*/
    #####:    #####: 4930:/*EOF*/
    #####:    #####: 4931:/*EOF*/
    #####:    #####: 4932:/*EOF*/
        -:        -: 4933:/*EOF*/
    #####:    #####: 4934:/*EOF*/
        -:        -: 4935:/*EOF*/
    #####:    #####: 4936:/*EOF*/
        -:        -: 4937:/*EOF*/
        -:        -: 4938:/*EOF*/
        -:        -: 4939:/*EOF*/
       40:       48: 4940:/*EOF*/
        -:        -: 4941:/*EOF*/
        -:        -: 4942:/*EOF*/
        -:        -: 4943:/*EOF*/
        -:        -: 4944:/*EOF*/
        -:        -: 4945:/*EOF*/
        -:        -: 4946:/*EOF*/
        -:        -: 4947:/*EOF*/
        -:        -: 4948:/*EOF*/
        -:        -: 4949:/*EOF*/
       88:       88: 4950:/*EOF*/
        -:        -: 4951:/*EOF*/
       88:       88: 4952:/*EOF*/
      136:      136: 4953:/*EOF*/
      156:      156: 4954:/*EOF*/
        -:        -: 4955:/*EOF*/
        -:        -: 4956:/*EOF*/
        -:        -: 4957:/*EOF*/
        -:        -: 4958:/*EOF*/
        -:        -: 4959:/*EOF*/
        -:        -: 4960:/*EOF*/
        -:        -: 4961:/*EOF*/
        -:        -: 4962:/*EOF*/
        -:        -: 4963:/*EOF*/
       44:       44: 4964:/*EOF*/
        -:        -: 4965:/*EOF*/
        -:        -: 4966:/*EOF*/
        -:        -: 4967:/*EOF*/
       44:       44: 4968:/*EOF*/
        -:        -: 4969:/*EOF*/
       44:       44: 4970:/*EOF*/
        -:        -: 4971:/*EOF*/
        -:        -: 4972:/*EOF*/
        -:        -: 4973:/*EOF*/
        -:        -: 4974:/*EOF*/
    #####:    #####: 4975:/*EOF*/
    #####:    #####: 4976:/*EOF*/
    #####:    #####: 4977:/*EOF*/
        -:        -: 4978:/*EOF*/
    #####:    #####: 4979:/*EOF*/
    #####:    #####: 4980:/*EOF*/
    #####:    #####: 4981:/*EOF*/
        -:        -: 4982:/*EOF*/
    #####:    #####: 4983:/*EOF*/
        -:        -: 4984:/*EOF*/
       44:       44: 4985:/*EOF*/
        -:        -: 4986:/*EOF*/
        -:        -: 4987:/*EOF*/
        -:        -: 4988:/*EOF*/
       10:       10: 4989:/*EOF*/
        -:        -: 4990:/*EOF*/
        -:        -: 4991:/*EOF*/
        -:        -: 4992:/*EOF*/
        -:        -: 4993:/*EOF*/
        -:        -: 4994:/*EOF*/
       34:       34: 4995:/*EOF*/
        -:        -: 4996:/*EOF*/
        -:        -: 4997:/*EOF*/
        -:        -: 4998:/*EOF*/
        -:        -: 4999:/*EOF*/
        -:        -: 5000:/*EOF*/
        -:        -: 5001:/*EOF*/
        -:        -: 5002:/*EOF*/
        -:        -: 5003:/*EOF*/
        -:        -: 5004:/*EOF*/
        -:        -: 5005:/*EOF*/
       20:       20: 5006:/*EOF*/
        -:        -: 5007:/*EOF*/
        -:        -: 5008:/*EOF*/
        -:        -: 5009:/*EOF*/
        -:        -: 5010:/*EOF*/
        -:        -: 5011:/*EOF*/
       20:       20: 5012:/*EOF*/
    #####:    #####: 5013:/*EOF*/
        -:        -: 5014:/*EOF*/
        -:        -: 5015:/*EOF*/
        -:        -: 5016:/*EOF*/
        -:        -: 5017:/*EOF*/
        -:        -: 5018:/*EOF*/
       20:       20: 5019:/*EOF*/
    #####:    #####: 5020:/*EOF*/
        -:        -: 5021:/*EOF*/
       64:       64: 5022:/*EOF*/
        -:        -: 5023:/*EOF*/
        -:        -: 5024:/*EOF*/
        -:        -: 5025:/*EOF*/
       44:       44: 5026:/*EOF*/
    #####:    #####: 5027:/*EOF*/
        -:        -: 5028:/*EOF*/
        -:        -: 5029:/*EOF*/
        -:        -: 5030:/*EOF*/
        -:        -: 5031:/*EOF*/
        -:        -: 5032:/*EOF*/
        -:        -: 5033:/*EOF*/
        -:        -: 5034:/*EOF*/
      132:      132: 5035:/*EOF*/
       88:       88: 5036:/*EOF*/
    #####:    #####: 5037:/*EOF*/
    #####:    #####: 5038:/*EOF*/
        -:        -: 5039:/*EOF*/
        -:        -: 5040:/*EOF*/
       20:       20: 5041:/*EOF*/
        -:        -: 5042:/*EOF*/
        -:        -: 5043:/*EOF*/
        -:        -: 5044:/*EOF*/
        -:        -: 5045:/*EOF*/
        -:        -: 5046:/*EOF*/
        -:        -: 5047:/*EOF*/
        -:        -: 5048:/*EOF*/
        -:        -: 5049:/*EOF*/
        -:        -: 5050:/*EOF*/
       20:       20: 5051:/*EOF*/
        -:        -: 5052:/*EOF*/
        -:        -: 5053:/*EOF*/
        -:        -: 5054:/*EOF*/
        -:        -: 5055:/*EOF*/
        -:        -: 5056:/*EOF*/
       20:       20: 5057:/*EOF*/
       20:       20: 5058:/*EOF*/
        -:        -: 5059:/*EOF*/
        -:        -: 5060:/*EOF*/
       20:       20: 5061:/*EOF*/
       20:       20: 5062:/*EOF*/
       20:       20: 5063:/*EOF*/
        -:        -: 5064:/*EOF*/
       20:       20: 5065:/*EOF*/
    #####:    #####: 5066:/*EOF*/
        -:        -: 5067:/*EOF*/
    #####:    #####: 5068:/*EOF*/
        -:        -: 5069:/*EOF*/
        -:        -: 5070:/*EOF*/
        -:        -: 5071:/*EOF*/
        -:        -: 5072:/*EOF*/
    #####:    #####: 5073:/*EOF*/
    #####:    #####: 5074:/*EOF*/
    #####:    #####: 5075:/*EOF*/
        -:        -: 5076:/*EOF*/
        -:        -: 5077:/*EOF*/
    #####:    #####: 5078:/*EOF*/
    #####:    #####: 5079:/*EOF*/
    #####:    #####: 5080:/*EOF*/
        -:        -: 5081:/*EOF*/
    #####:    #####: 5082:/*EOF*/
        -:        -: 5083:/*EOF*/
        -:        -: 5084:/*EOF*/
        -:        -: 5085:/*EOF*/
        -:        -: 5086:/*EOF*/
        -:        -: 5087:/*EOF*/
       20:       20: 5088:/*EOF*/
        -:        -: 5089:/*EOF*/
        -:        -: 5090:/*EOF*/
        -:        -: 5091:/*EOF*/
        -:        -: 5092:/*EOF*/
        5:        5: 5093:/*EOF*/
        -:        -: 5094:/*EOF*/
        5:        5: 5095:/*EOF*/
        -:        -: 5096:/*EOF*/
      199:      211: 5097:/*EOF*/
      194:      206: 5098:/*EOF*/
        -:        -: 5099:/*EOF*/
      194:      206: 5100:/*EOF*/
        -:        -: 5101:/*EOF*/
        -:        -: 5102:/*EOF*/
        -:        -: 5103:/*EOF*/
        -:        -: 5104:/*EOF*/
        -:        -: 5105:/*EOF*/
       10:       10: 5106:/*EOF*/
       20:       20: 5107:/*EOF*/
       30:       30: 5108:/*EOF*/
       20:       20: 5109:/*EOF*/
        -:        -: 5110:/*EOF*/
        -:        -: 5111:/*EOF*/
        -:        -: 5112:/*EOF*/
        -:        -: 5113:/*EOF*/
       10:       10: 5114:/*EOF*/
       10:       10: 5115:/*EOF*/
       10:       10: 5116:/*EOF*/
        -:        -: 5117:/*EOF*/
       10:       10: 5118:/*EOF*/
        -:        -: 5119:/*EOF*/
       30:       30: 5120:/*EOF*/
        -:        -: 5121:/*EOF*/
        -:        -: 5122:/*EOF*/
        -:        -: 5123:/*EOF*/
        -:        -: 5124:/*EOF*/
       40:       40: 5125:/*EOF*/
       20:       20: 5126:/*EOF*/
       20:       20: 5127:/*EOF*/
        -:        -: 5128:/*EOF*/
        -:        -: 5129:/*EOF*/
        -:        -: 5130:/*EOF*/
        -:        -: 5131:/*EOF*/
        -:        -: 5132:/*EOF*/
       20:       20: 5133:/*EOF*/
        -:        -: 5134:/*EOF*/
       64:       64: 5135:/*EOF*/
       44:       44: 5136:/*EOF*/
        -:        -: 5137:/*EOF*/
       20:       20: 5138:/*EOF*/
        -:        -: 5139:/*EOF*/
       20:       20: 5140:/*EOF*/
        -:        -: 5141:/*EOF*/
       20:       20: 5142:/*EOF*/
        -:        -: 5143:/*EOF*/
        -:        -: 5144:/*EOF*/
       10:       10: 5145:/*EOF*/
       10:       10: 5146:/*EOF*/
        -:        -: 5147:/*EOF*/
        -:        -: 5148:/*EOF*/
        -:        -: 5149:/*EOF*/
        5:        5: 5150:/*EOF*/
        1:        1: 5151:/*EOF*/
        -:        -: 5152:/*EOF*/
        5:        5: 5153:/*EOF*/
        -:        -: 5154:/*EOF*/
        -:        -: 5155:/*EOF*/
        -:        -: 5156:/*EOF*/
    #####:    #####: 5157:/*EOF*/
        -:        -: 5158:/*EOF*/
    #####:    #####: 5159:/*EOF*/
    #####:    #####: 5160:/*EOF*/
        -:        -: 5161:/*EOF*/
        -:        -: 5162:/*EOF*/
    #####:    #####: 5163:/*EOF*/
        -:        -: 5164:/*EOF*/
    #####:    #####: 5165:/*EOF*/
    #####:    #####: 5166:/*EOF*/
    #####:    #####: 5167:/*EOF*/
    #####:    #####: 5168:/*EOF*/
    #####:    #####: 5169:/*EOF*/
        -:        -: 5170:/*EOF*/
        -:        -: 5171:/*EOF*/
    #####:    #####: 5172:/*EOF*/
    #####:    #####: 5173:/*EOF*/
    #####:    #####: 5174:/*EOF*/
    #####:    #####: 5175:/*EOF*/
    #####:    #####: 5176:/*EOF*/
    #####:    #####: 5177:/*EOF*/
    #####:    #####: 5178:/*EOF*/
    #####:    #####: 5179:/*EOF*/
        -:        -: 5180:/*EOF*/
    #####:    #####: 5181:/*EOF*/
        -:        -: 5182:/*EOF*/
    #####:    #####: 5183:/*EOF*/
    #####:    #####: 5184:/*EOF*/
    #####:    #####: 5185:/*EOF*/
    #####:    #####: 5186:/*EOF*/
        -:        -: 5187:/*EOF*/
        -:        -: 5188:/*EOF*/
        -:        -: 5189:/*EOF*/
    #####:    #####: 5190:/*EOF*/
    #####:    #####: 5191:/*EOF*/
        -:        -: 5192:/*EOF*/
    #####:    #####: 5193:/*EOF*/
        -:        -: 5194:/*EOF*/
        -:        -: 5195:/*EOF*/
    #####:    #####: 5196:/*EOF*/
        -:        -: 5197:/*EOF*/
    #####:    #####: 5198:/*EOF*/
    #####:    #####: 5199:/*EOF*/
        -:        -: 5200:/*EOF*/
        -:        -: 5201:/*EOF*/
    #####:    #####: 5202:/*EOF*/
        -:        -: 5203:/*EOF*/
    #####:    #####: 5204:/*EOF*/
        -:        -: 5205:/*EOF*/
    #####:    #####: 5206:/*EOF*/
    #####:    #####: 5207:/*EOF*/
    #####:    #####: 5208:/*EOF*/
    #####:    #####: 5209:/*EOF*/
        -:        -: 5210:/*EOF*/
        -:        -: 5211:/*EOF*/
    #####:    #####: 5212:/*EOF*/
    #####:    #####: 5213:/*EOF*/
    #####:    #####: 5214:/*EOF*/
    #####:    #####: 5215:/*EOF*/
    #####:    #####: 5216:/*EOF*/
    #####:    #####: 5217:/*EOF*/
    #####:    #####: 5218:/*EOF*/
    #####:    #####: 5219:/*EOF*/
    #####:    #####: 5220:/*EOF*/
    #####:    #####: 5221:/*EOF*/
        -:        -: 5222:/*EOF*/
        -:        -: 5223:/*EOF*/
    #####:    #####: 5224:/*EOF*/
        -:        -: 5225:/*EOF*/
    #####:    #####: 5226:/*EOF*/
    #####:    #####: 5227:/*EOF*/
        -:        -: 5228:/*EOF*/
        -:        -: 5229:/*EOF*/
    #####:    #####: 5230:/*EOF*/
    #####:    #####: 5231:/*EOF*/
        -:        -: 5232:/*EOF*/
        -:        -: 5233:/*EOF*/
    #####:    #####: 5234:/*EOF*/
        -:        -: 5235:/*EOF*/
    #####:    #####: 5236:/*EOF*/
    #####:    #####: 5237:/*EOF*/
        -:        -: 5238:/*EOF*/
    #####:    #####: 5239:/*EOF*/
    #####:    #####: 5240:/*EOF*/
        -:        -: 5241:/*EOF*/
    #####:    #####: 5242:/*EOF*/
    #####:    #####: 5243:/*EOF*/
        -:        -: 5244:/*EOF*/
    #####:    #####: 5245:/*EOF*/
    #####:    #####: 5246:/*EOF*/
        -:        -: 5247:/*EOF*/
    #####:    #####: 5248:/*EOF*/
    #####:    #####: 5249:/*EOF*/
        -:        -: 5250:/*EOF*/
    #####:    #####: 5251:/*EOF*/
    #####:    #####: 5252:/*EOF*/
        -:        -: 5253:/*EOF*/
    #####:    #####: 5254:/*EOF*/
        -:        -: 5255:/*EOF*/
    #####:    #####: 5256:/*EOF*/
    #####:    #####: 5257:/*EOF*/
        -:        -: 5258:/*EOF*/
    #####:    #####: 5259:/*EOF*/
    #####:    #####: 5260:/*EOF*/
        -:        -: 5261:/*EOF*/
    #####:    #####: 5262:/*EOF*/
    #####:    #####: 5263:/*EOF*/
        -:        -: 5264:/*EOF*/
    #####:    #####: 5265:/*EOF*/
    #####:    #####: 5266:/*EOF*/
        -:        -: 5267:/*EOF*/
    #####:    #####: 5268:/*EOF*/
    #####:    #####: 5269:/*EOF*/
        -:        -: 5270:/*EOF*/
    #####:    #####: 5271:/*EOF*/
        -:        -: 5272:/*EOF*/
    #####:    #####: 5273:/*EOF*/
        -:        -: 5274:/*EOF*/
        -:        -: 5275:/*EOF*/
    #####:    #####: 5276:/*EOF*/
    #####:    #####: 5277:/*EOF*/
    #####:    #####: 5278:/*EOF*/
    #####:    #####: 5279:/*EOF*/
    #####:    #####: 5280:/*EOF*/
    #####:    #####: 5281:/*EOF*/
        -:        -: 5282:/*EOF*/
        -:        -: 5283:/*EOF*/
    #####:    #####: 5284:/*EOF*/
    #####:    #####: 5285:/*EOF*/
    #####:    #####: 5286:/*EOF*/
        -:        -: 5287:/*EOF*/
    #####:    #####: 5288:/*EOF*/
    #####:    #####: 5289:/*EOF*/
    #####:    #####: 5290:/*EOF*/
    #####:    #####: 5291:/*EOF*/
    #####:    #####: 5292:/*EOF*/
    #####:    #####: 5293:/*EOF*/
        -:        -: 5294:/*EOF*/
    #####:    #####: 5295:/*EOF*/
    #####:    #####: 5296:/*EOF*/
        -:        -: 5297:/*EOF*/
    #####:    #####: 5298:/*EOF*/
    #####:    #####: 5299:/*EOF*/
        -:        -: 5300:/*EOF*/
    #####:    #####: 5301:/*EOF*/
    #####:    #####: 5302:/*EOF*/
        -:        -: 5303:/*EOF*/
    #####:    #####: 5304:/*EOF*/
    #####:    #####: 5305:/*EOF*/
        -:        -: 5306:/*EOF*/
    #####:    #####: 5307:/*EOF*/
    #####:    #####: 5308:/*EOF*/
        -:        -: 5309:/*EOF*/
    #####:    #####: 5310:/*EOF*/
    #####:    #####: 5311:/*EOF*/
        -:        -: 5312:/*EOF*/
    #####:    #####: 5313:/*EOF*/
        -:        -: 5314:/*EOF*/
    #####:    #####: 5315:/*EOF*/
    #####:    #####: 5316:/*EOF*/
        -:        -: 5317:/*EOF*/
    #####:    #####: 5318:/*EOF*/
    #####:    #####: 5319:/*EOF*/
        -:        -: 5320:/*EOF*/
        -:        -: 5321:/*EOF*/
    #####:    #####: 5322:/*EOF*/
    #####:    #####: 5323:/*EOF*/
        -:        -: 5324:/*EOF*/
        -:        -: 5325:/*EOF*/
    #####:    #####: 5326:/*EOF*/
    #####:    #####: 5327:/*EOF*/
        -:        -: 5328:/*EOF*/
    #####:    #####: 5329:/*EOF*/
    #####:    #####: 5330:/*EOF*/
    #####:    #####: 5331:/*EOF*/
    #####:    #####: 5332:/*EOF*/
    #####:    #####: 5333:/*EOF*/
    #####:    #####: 5334:/*EOF*/
        -:        -: 5335:/*EOF*/
    #####:    #####: 5336:/*EOF*/
    #####:    #####: 5337:/*EOF*/
        -:        -: 5338:/*EOF*/
    #####:    #####: 5339:/*EOF*/
        -:        -: 5340:/*EOF*/
    #####:    #####: 5341:/*EOF*/
        -:        -: 5342:/*EOF*/
    #####:    #####: 5343:/*EOF*/
    #####:    #####: 5344:/*EOF*/
        -:        -: 5345:/*EOF*/
    #####:    #####: 5346:/*EOF*/
    #####:    #####: 5347:/*EOF*/
        -:        -: 5348:/*EOF*/
    #####:    #####: 5349:/*EOF*/
    #####:    #####: 5350:/*EOF*/
        -:        -: 5351:/*EOF*/
    #####:    #####: 5352:/*EOF*/
    #####:    #####: 5353:/*EOF*/
        -:        -: 5354:/*EOF*/
    #####:    #####: 5355:/*EOF*/
    #####:    #####: 5356:/*EOF*/
        -:        -: 5357:/*EOF*/
    #####:    #####: 5358:/*EOF*/
        -:        -: 5359:/*EOF*/
        -:        -: 5360:/*EOF*/
    #####:    #####: 5361:/*EOF*/
    #####:    #####: 5362:/*EOF*/
    #####:    #####: 5363:/*EOF*/
    #####:    #####: 5364:/*EOF*/
    #####:    #####: 5365:/*EOF*/
    #####:    #####: 5366:/*EOF*/
        -:        -: 5367:/*EOF*/
        -:        -: 5368:/*EOF*/
    #####:    #####: 5369:/*EOF*/
    #####:    #####: 5370:/*EOF*/
        -:        -: 5371:/*EOF*/
    #####:    #####: 5372:/*EOF*/
        -:        -: 5373:/*EOF*/
    #####:    #####: 5374:/*EOF*/
    #####:    #####: 5375:/*EOF*/
    #####:    #####: 5376:/*EOF*/
        -:        -: 5377:/*EOF*/
    #####:    #####: 5378:/*EOF*/
        -:        -: 5379:/*EOF*/
    #####:    #####: 5380:/*EOF*/
    #####:    #####: 5381:/*EOF*/
        -:        -: 5382:/*EOF*/
    #####:    #####: 5383:/*EOF*/
        -:        -: 5384:/*EOF*/
        -:        -: 5385:/*EOF*/
    #####:    #####: 5386:/*EOF*/
    #####:    #####: 5387:/*EOF*/
        -:        -: 5388:/*EOF*/
        -:        -: 5389:/*EOF*/
    #####:    #####: 5390:/*EOF*/
        -:        -: 5391:/*EOF*/
    #####:    #####: 5392:/*EOF*/
    #####:    #####: 5393:/*EOF*/
        -:        -: 5394:/*EOF*/
    #####:    #####: 5395:/*EOF*/
    #####:    #####: 5396:/*EOF*/
        -:        -: 5397:/*EOF*/
    #####:    #####: 5398:/*EOF*/
    #####:    #####: 5399:/*EOF*/
        -:        -: 5400:/*EOF*/
        -:        -: 5401:/*EOF*/
        -:        -: 5402:/*EOF*/
        -:        -: 5403:/*EOF*/
        -:        -: 5404:/*EOF*/
        -:        -: 5405:/*EOF*/
        -:        -: 5406:/*EOF*/
        -:        -: 5407:/*EOF*/
        -:        -: 5408:/*EOF*/
        -:        -: 5409:/*EOF*/
        -:        -: 5410:/*EOF*/
        -:        -: 5411:/*EOF*/
        -:        -: 5412:/*EOF*/
        -:        -: 5413:/*EOF*/
        -:        -: 5414:/*EOF*/
    #####:    #####: 5415:/*EOF*/
        -:        -: 5416:/*EOF*/
        -:        -: 5417:/*EOF*/
        -:        -: 5418:/*EOF*/
    #####:    #####: 5419:/*EOF*/
    #####:    #####: 5420:/*EOF*/
    #####:    #####: 5421:/*EOF*/
    #####:    #####: 5422:/*EOF*/
        -:        -: 5423:/*EOF*/
    #####:    #####: 5424:/*EOF*/
        -:        -: 5425:/*EOF*/
        -:        -: 5426:/*EOF*/
        -:        -: 5427:/*EOF*/
        -:        -: 5428:/*EOF*/
        6:        6: 5429:/*EOF*/
        -:        -: 5430:/*EOF*/
        6:        6: 5431:/*EOF*/
        6:        6: 5432:/*EOF*/
        -:        -: 5433:/*EOF*/
        6:        6: 5434:/*EOF*/
        -:        -: 5435:/*EOF*/
        -:        -: 5436:/*EOF*/
        6:        6: 5437:/*EOF*/
        -:        -: 5438:/*EOF*/
        -:        -: 5439:/*EOF*/
        -:        -: 5440:/*EOF*/
        -:        -: 5441:/*EOF*/
        -:        -: 5442:/*EOF*/
        -:        -: 5443:/*EOF*/
        -:        -: 5444:/*EOF*/
        -:        -: 5445:/*EOF*/
        -:        -: 5446:/*EOF*/
       42:       42: 5447:/*EOF*/
       36:       36: 5448:/*EOF*/
        2:        2: 5449:/*EOF*/
        2:        2: 5450:/*EOF*/
        2:        2: 5451:/*EOF*/
        1:        1: 5452:/*EOF*/
        -:        -: 5453:/*EOF*/
        -:        -: 5454:/*EOF*/
        -:        -: 5455:/*EOF*/
        -:        -: 5456:/*EOF*/
        -:        -: 5457:/*EOF*/
        -:        -: 5458:/*EOF*/
        6:        6: 5459:/*EOF*/
        6:        6: 5460:/*EOF*/
        2:        2: 5461:/*EOF*/
        2:        2: 5462:/*EOF*/
        2:        2: 5463:/*EOF*/
        -:        -: 5464:/*EOF*/
        1:        1: 5465:/*EOF*/
        -:        -: 5466:/*EOF*/
        -:        -: 5467:/*EOF*/
        -:        -: 5468:/*EOF*/
        -:        -: 5469:/*EOF*/
        -:        -: 5470:/*EOF*/
        6:        6: 5471:/*EOF*/
        6:        6: 5472:/*EOF*/
        2:        2: 5473:/*EOF*/
        2:        2: 5474:/*EOF*/
        2:        2: 5475:/*EOF*/
        -:        -: 5476:/*EOF*/
        1:        1: 5477:/*EOF*/
        -:        -: 5478:/*EOF*/
        -:        -: 5479:/*EOF*/
        -:        -: 5480:/*EOF*/
        -:        -: 5481:/*EOF*/
        6:        6: 5482:/*EOF*/
    #####:    #####: 5483:/*EOF*/
        -:        -: 5484:/*EOF*/
        -:        -: 5485:/*EOF*/
        -:        -: 5486:/*EOF*/
        -:        -: 5487:/*EOF*/
        -:        -: 5488:/*EOF*/
        -:        -: 5489:/*EOF*/
        -:        -: 5490:/*EOF*/
        -:        -: 5491:/*EOF*/
        -:        -: 5492:/*EOF*/
    #####:    #####: 5493:/*EOF*/
    #####:    #####: 5494:/*EOF*/
    #####:    #####: 5495:/*EOF*/
        -:        -: 5496:/*EOF*/
        -:        -: 5497:/*EOF*/
        -:        -: 5498:/*EOF*/
        -:        -: 5499:/*EOF*/
        6:        6: 5500:/*EOF*/
        6:        6: 5501:/*EOF*/
    #####:    #####: 5502:/*EOF*/
    #####:    #####: 5503:/*EOF*/
    #####:    #####: 5504:/*EOF*/
    #####:    #####: 5505:/*EOF*/
        -:        -: 5506:/*EOF*/
    #####:    #####: 5507:/*EOF*/
        -:        -: 5508:/*EOF*/
        -:        -: 5509:/*EOF*/
        -:        -: 5510:/*EOF*/
        -:        -: 5511:/*EOF*/
        -:        -: 5512:/*EOF*/
        -:        -: 5513:/*EOF*/
        6:        6: 5514:/*EOF*/
    #####:    #####: 5515:/*EOF*/
        -:        -: 5516:/*EOF*/
        6:        6: 5517:/*EOF*/
        -:        -: 5518:/*EOF*/
        -:        -: 5519:/*EOF*/
    #####:    #####: 5520:/*EOF*/
        -:        -: 5521:/*EOF*/
        -:        -: 5522:/*EOF*/
    #####:    #####: 5523:/*EOF*/
    #####:    #####: 5524:/*EOF*/
        -:        -: 5525:/*EOF*/
        -:        -: 5526:/*EOF*/
    #####:    #####: 5527:/*EOF*/
        -:        -: 5528:/*EOF*/
    #####:    #####: 5529:/*EOF*/
        -:        -: 5530:/*EOF*/
    #####:    #####: 5531:/*EOF*/
    #####:    #####: 5532:/*EOF*/
        -:        -: 5533:/*EOF*/
        -:        -: 5534:/*EOF*/
    #####:    #####: 5535:/*EOF*/
        -:        -: 5536:/*EOF*/
    #####:    #####: 5537:/*EOF*/
        -:        -: 5538:/*EOF*/
    #####:    #####: 5539:/*EOF*/
        -:        -: 5540:/*EOF*/
        -:        -: 5541:/*EOF*/
        -:        -: 5542:/*EOF*/
    #####:    #####: 5543:/*EOF*/
        -:        -: 5544:/*EOF*/
        -:        -: 5545:/*EOF*/
        -:        -: 5546:/*EOF*/
        -:        -: 5547:/*EOF*/
        -:        -: 5548:/*EOF*/
        -:        -: 5549:/*EOF*/
        -:        -: 5550:/*EOF*/
    #####:    #####: 5551:/*EOF*/
    #####:    #####: 5552:/*EOF*/
    #####:    #####: 5553:/*EOF*/
        -:        -: 5554:/*EOF*/
        -:        -: 5555:/*EOF*/
    #####:    #####: 5556:/*EOF*/
        -:        -: 5557:/*EOF*/
        -:        -: 5558:/*EOF*/
    #####:    #####: 5559:/*EOF*/
        -:        -: 5560:/*EOF*/
    #####:    #####: 5561:/*EOF*/
        -:        -: 5562:/*EOF*/
        -:        -: 5563:/*EOF*/
    #####:    #####: 5564:/*EOF*/
        -:        -: 5565:/*EOF*/
    #####:    #####: 5566:/*EOF*/
    #####:    #####: 5567:/*EOF*/
    #####:    #####: 5568:/*EOF*/
        -:        -: 5569:/*EOF*/
        -:        -: 5570:/*EOF*/
    #####:    #####: 5571:/*EOF*/
        -:        -: 5572:/*EOF*/
    #####:    #####: 5573:/*EOF*/
    #####:    #####: 5574:/*EOF*/
        -:        -: 5575:/*EOF*/
    #####:    #####: 5576:/*EOF*/
    #####:    #####: 5577:/*EOF*/
    #####:    #####: 5578:/*EOF*/
        -:        -: 5579:/*EOF*/
    #####:    #####: 5580:/*EOF*/
        -:        -: 5581:/*EOF*/
    #####:    #####: 5582:/*EOF*/
    #####:    #####: 5583:/*EOF*/
    #####:    #####: 5584:/*EOF*/
        -:        -: 5585:/*EOF*/
    #####:    #####: 5586:/*EOF*/
        -:        -: 5587:/*EOF*/
        -:        -: 5588:/*EOF*/
        -:        -: 5589:/*EOF*/
        -:        -: 5590:/*EOF*/
        -:        -: 5591:/*EOF*/
        -:        -: 5592:/*EOF*/
        -:        -: 5593:/*EOF*/
        -:        -: 5594:/*EOF*/
        -:        -: 5595:/*EOF*/
        -:        -: 5596:/*EOF*/
        -:        -: 5597:/*EOF*/
        -:        -: 5598:/*EOF*/
        5:        5: 5599:/*EOF*/
        -:        -: 5600:/*EOF*/
        5:        5: 5601:/*EOF*/
        5:        5: 5602:/*EOF*/
        -:        -: 5603:/*EOF*/
        -:        -: 5604:/*EOF*/
        5:        5: 5605:/*EOF*/
    #####:    #####: 5606:/*EOF*/
        -:        -: 5607:/*EOF*/
      345:      397: 5608:/*EOF*/
      340:      392: 5609:/*EOF*/
       70:      110: 5610:/*EOF*/
      270:      282: 5611:/*EOF*/
    #####:    #####: 5612:/*EOF*/
    #####:    #####: 5613:/*EOF*/
        -:        -: 5614:/*EOF*/
    #####:    #####: 5615:/*EOF*/
    #####:    #####: 5616:/*EOF*/
        -:        -: 5617:/*EOF*/
      270:      282: 5618:/*EOF*/
       40:       52: 5619:/*EOF*/
        -:        -: 5620:/*EOF*/
        -:        -: 5621:/*EOF*/
        -:        -: 5622:/*EOF*/
        5:        5: 5623:/*EOF*/
        -:        -: 5624:/*EOF*/
        -:        -: 5625:/*EOF*/
        -:        -: 5626:/*EOF*/
        5:        5: 5627:/*EOF*/
        -:        -: 5628:/*EOF*/
        -:        -: 5629:/*EOF*/
        5:        5: 5630:/*EOF*/
        -:        -: 5631:/*EOF*/
        -:        -: 5632:/*EOF*/
        -:        -: 5633:/*EOF*/
        -:        -: 5634:/*EOF*/
        -:        -: 5635:/*EOF*/
        -:        -: 5636:/*EOF*/
        -:        -: 5637:/*EOF*/
        -:        -: 5638:/*EOF*/
        -:        -: 5639:/*EOF*/
        -:        -: 5640:/*EOF*/
        -:        -: 5641:/*EOF*/
        -:        -: 5642:/*EOF*/
        5:        5: 5643:/*EOF*/
        -:        -: 5644:/*EOF*/
        5:        5: 5645:/*EOF*/
        5:        5: 5646:/*EOF*/
        -:        -: 5647:/*EOF*/
        5:        5: 5648:/*EOF*/
        -:        -: 5649:/*EOF*/
        5:        5: 5650:/*EOF*/
        5:        5: 5651:/*EOF*/
        -:        -: 5652:/*EOF*/
        -:        -: 5653:/*EOF*/
        -:        -: 5654:/*EOF*/
        -:        -: 5655:/*EOF*/
        -:        -: 5656:/*EOF*/
        -:        -: 5657:/*EOF*/
        -:        -: 5658:/*EOF*/
        -:        -: 5659:/*EOF*/
        -:        -: 5660:/*EOF*/
        -:        -: 5661:/*EOF*/
        -:        -: 5662:/*EOF*/
        -:        -: 5663:/*EOF*/
        -:        -: 5664:/*EOF*/
        -:        -: 5665:/*EOF*/
        -:        -: 5666:/*EOF*/
        -:        -: 5667:/*EOF*/
        -:        -: 5668:/*EOF*/
        -:        -: 5669:/*EOF*/
        -:        -: 5670:/*EOF*/
        5:        5: 5671:/*EOF*/
        -:        -: 5672:/*EOF*/
    #####:    #####: 5673:/*EOF*/
    #####:    #####: 5674:/*EOF*/
        -:        -: 5675:/*EOF*/
    #####:    #####: 5676:/*EOF*/
        -:        -: 5677:/*EOF*/
        -:        -: 5678:/*EOF*/
        5:        5: 5679:/*EOF*/
        5:        5: 5680:/*EOF*/
        5:        5: 5681:/*EOF*/
        -:        -: 5682:/*EOF*/
        5:        5: 5683:/*EOF*/
        -:        -: 5684:/*EOF*/
       12:       14: 5685:/*EOF*/
       12:       14: 5686:/*EOF*/
       12:       14: 5687:/*EOF*/
       12:       14: 5688:/*EOF*/
        -:        -: 5689:/*EOF*/
       12:       14: 5690:/*EOF*/
        -:        -: 5691:/*EOF*/
       12:       14: 5692:/*EOF*/
       12:       14: 5693:/*EOF*/
       12:       14: 5694:/*EOF*/
       12:       14: 5695:/*EOF*/
       12:       14: 5696:/*EOF*/
       12:       14: 5697:/*EOF*/
       12:       14: 5698:/*EOF*/
       12:       14: 5699:/*EOF*/
       12:       14: 5700:/*EOF*/
       12:       14: 5701:/*EOF*/
       12:       14: 5702:/*EOF*/
       12:       14: 5703:/*EOF*/
       12:       14: 5704:/*EOF*/
        -:        -: 5705:/*EOF*/
       12:       14: 5706:/*EOF*/
        -:        -: 5707:/*EOF*/
        -:        -: 5708:/*EOF*/
        5:        5: 5709:/*EOF*/
        5:        5: 5710:/*EOF*/
        -:        -: 5711:/*EOF*/
        5:        5: 5712:/*EOF*/
    #####:    #####: 5713:/*EOF*/
    #####:    #####: 5714:/*EOF*/
        -:        -: 5715:/*EOF*/
        -:        -: 5716:/*EOF*/
        5:        5: 5717:/*EOF*/
        -:        -: 5718:/*EOF*/
        -:        -: 5719:/*EOF*/
        5:        5: 5720:/*EOF*/
        -:        -: 5721:/*EOF*/
        5:        5: 5722:/*EOF*/
        -:        -: 5723:/*EOF*/
        5:        5: 5724:/*EOF*/
        5:        5: 5725:/*EOF*/
        -:        -: 5726:/*EOF*/
        -:        -: 5727:/*EOF*/
        -:        -: 5728:/*EOF*/
        5:        5: 5729:/*EOF*/
    #####:    #####: 5730:/*EOF*/
        -:        -: 5731:/*EOF*/
        -:        -: 5732:/*EOF*/
        -:        -: 5733:/*EOF*/
        -:        -: 5734:/*EOF*/
        -:        -: 5735:/*EOF*/
        5:        5: 5736:/*EOF*/
        5:        5: 5737:/*EOF*/
        5:        5: 5738:/*EOF*/
        5:        5: 5739:/*EOF*/
        5:        5: 5740:/*EOF*/
        5:        5: 5741:/*EOF*/
        -:        -: 5742:/*EOF*/
        -:        -: 5743:/*EOF*/
        5:        5: 5744:/*EOF*/
        -:        -: 5745:/*EOF*/
        5:        5: 5746:/*EOF*/
        5:        5: 5747:/*EOF*/
        5:        5: 5748:/*EOF*/
        5:        5: 5749:/*EOF*/
        5:        5: 5750:/*EOF*/
        -:        -: 5751:/*EOF*/
        -:        -: 5752:/*EOF*/
        5:        5: 5753:/*EOF*/
        5:        5: 5754:/*EOF*/
        -:        -: 5755:/*EOF*/
        5:        5: 5756:/*EOF*/
    #####:    #####: 5757:/*EOF*/
    #####:    #####: 5758:/*EOF*/
    #####:    #####: 5759:/*EOF*/
    #####:    #####: 5760:/*EOF*/
        -:        -: 5761:/*EOF*/
        -:        -: 5762:/*EOF*/
        5:        5: 5763:/*EOF*/
    #####:    #####: 5764:/*EOF*/
    #####:    #####: 5765:/*EOF*/
    #####:    #####: 5766:/*EOF*/
        -:        -: 5767:/*EOF*/
        -:        -: 5768:/*EOF*/
        5:        5: 5769:/*EOF*/
        -:        -: 5770:/*EOF*/
        5:        5: 5771:/*EOF*/
        5:        5: 5772:/*EOF*/
        -:        -: 5773:/*EOF*/
        -:        -: 5774:/*EOF*/
        -:        -: 5775:/*EOF*/
        -:        -: 5776:/*EOF*/
        -:        -: 5777:/*EOF*/
        -:        -: 5778:/*EOF*/
        5:        5: 5779:/*EOF*/
        -:        -: 5780:/*EOF*/
        5:        5: 5781:/*EOF*/
        -:        -: 5782:/*EOF*/
      211:      223: 5783:/*EOF*/
      206:      218: 5784:/*EOF*/
    #####:    #####: 5785:/*EOF*/
    #####:    #####: 5786:/*EOF*/
    #####:    #####: 5787:/*EOF*/
        -:        -: 5788:/*EOF*/
        -:        -: 5789:/*EOF*/
        -:        -: 5790:/*EOF*/
        5:        5: 5791:/*EOF*/
    #####:    #####: 5792:/*EOF*/
        5:        5: 5793:/*EOF*/
        -:        -: 5794:/*EOF*/
        -:        -: 5795:/*EOF*/
        5:        5: 5796:/*EOF*/
        -:        -: 5797:/*EOF*/
        -:        -: 5798:/*EOF*/
        -:        -: 5799:/*EOF*/
        -:        -: 5800:/*EOF*/
        -:        -: 5801:/*EOF*/
        -:        -: 5802:/*EOF*/
        -:        -: 5803:/*EOF*/
        -:        -: 5804:/*EOF*/
        -:        -: 5805:/*EOF*/
        5:        5: 5806:/*EOF*/
        -:        -: 5807:/*EOF*/
        -:        -: 5808:/*EOF*/
        -:        -: 5809:/*EOF*/
        -:        -: 5810:/*EOF*/
        -:        -: 5811:/*EOF*/
        5:        5: 5812:/*EOF*/
        5:        5: 5813:/*EOF*/
        -:        -: 5814:/*EOF*/
        -:        -: 5815:/*EOF*/
        -:        -: 5816:/*EOF*/
        -:        -: 5817:/*EOF*/
        -:        -: 5818:/*EOF*/
        5:        5: 5819:/*EOF*/
        -:        -: 5820:/*EOF*/
        5:        5: 5821:/*EOF*/
        5:        5: 5822:/*EOF*/
        -:        -: 5823:/*EOF*/
        -:        -: 5824:/*EOF*/
        5:        5: 5825:/*EOF*/
    #####:    #####: 5826:/*EOF*/
    #####:    #####: 5827:/*EOF*/
        -:        -: 5828:/*EOF*/
        -:        -: 5829:/*EOF*/
        -:        -: 5830:/*EOF*/
        -:        -: 5831:/*EOF*/
        -:        -: 5832:/*EOF*/
    #####:    #####: 5833:/*EOF*/
        -:        -: 5834:/*EOF*/
    #####:    #####: 5835:/*EOF*/
        -:        -: 5836:/*EOF*/
    #####:    #####: 5837:/*EOF*/
        -:        -: 5838:/*EOF*/
        -:        -: 5839:/*EOF*/
        -:        -: 5840:/*EOF*/
    #####:    #####: 5841:/*EOF*/
        -:        -: 5842:/*EOF*/
        -:        -: 5843:/*EOF*/
        -:        -: 5844:/*EOF*/
        -:        -: 5845:/*EOF*/
        -:        -: 5846:/*EOF*/
    #####:    #####: 5847:/*EOF*/
    #####:    #####: 5848:/*EOF*/
    #####:    #####: 5849:/*EOF*/
        -:        -: 5850:/*EOF*/
        -:        -: 5851:/*EOF*/
        -:        -: 5852:/*EOF*/
        -:        -: 5853:/*EOF*/
        -:        -: 5854:/*EOF*/
        -:        -: 5855:/*EOF*/
        -:        -: 5856:/*EOF*/
        5:        5: 5857:/*EOF*/
        -:        -: 5858:/*EOF*/
        5:        5: 5859:/*EOF*/
    #####:    #####: 5860:/*EOF*/
        -:        -: 5861:/*EOF*/
        5:        5: 5862:/*EOF*/
        -:        -: 5863:/*EOF*/
        5:        5: 5864:/*EOF*/
    #####:    #####: 5865:/*EOF*/
        -:        -: 5866:/*EOF*/
    #####:    #####: 5867:/*EOF*/
        -:        -: 5868:/*EOF*/
    #####:    #####: 5869:/*EOF*/
    #####:    #####: 5870:/*EOF*/
        -:        -: 5871:/*EOF*/
        -:        -: 5872:/*EOF*/
        -:        -: 5873:/*EOF*/
        -:        -: 5874:/*EOF*/
        -:        -: 5875:/*EOF*/
    #####:    #####: 5876:/*EOF*/
    #####:    #####: 5877:/*EOF*/
        -:        -: 5878:/*EOF*/
        -:        -: 5879:/*EOF*/
        -:        -: 5880:/*EOF*/
        -:        -: 5881:/*EOF*/
    #####:    #####: 5882:/*EOF*/
    #####:    #####: 5883:/*EOF*/
        -:        -: 5884:/*EOF*/
        -:        -: 5885:/*EOF*/
        -:        -: 5886:/*EOF*/
        -:        -: 5887:/*EOF*/
        -:        -: 5888:/*EOF*/
        -:        -: 5889:/*EOF*/
        -:        -: 5890:/*EOF*/
        -:        -: 5891:/*EOF*/
        -:        -: 5892:/*EOF*/
        -:        -: 5893:/*EOF*/
        -:        -: 5894:/*EOF*/
        -:        -: 5895:/*EOF*/
        -:        -: 5896:/*EOF*/
    #####:    #####: 5897:/*EOF*/
        -:        -: 5898:/*EOF*/
        -:        -: 5899:/*EOF*/
        -:        -: 5900:/*EOF*/
        -:        -: 5901:/*EOF*/
    #####:    #####: 5902:/*EOF*/
        -:        -: 5903:/*EOF*/
    #####:    #####: 5904:/*EOF*/
        -:        -: 5905:/*EOF*/
    #####:    #####: 5906:/*EOF*/
        -:        -: 5907:/*EOF*/
    #####:    #####: 5908:/*EOF*/
    #####:    #####: 5909:/*EOF*/
        -:        -: 5910:/*EOF*/
    #####:    #####: 5911:/*EOF*/
        -:        -: 5912:/*EOF*/
    #####:    #####: 5913:/*EOF*/
    #####:    #####: 5914:/*EOF*/
        -:        -: 5915:/*EOF*/
    #####:    #####: 5916:/*EOF*/
        -:        -: 5917:/*EOF*/
    #####:    #####: 5918:/*EOF*/
        -:        -: 5919:/*EOF*/
    #####:    #####: 5920:/*EOF*/
    #####:    #####: 5921:/*EOF*/
        -:        -: 5922:/*EOF*/
    #####:    #####: 5923:/*EOF*/
        -:        -: 5924:/*EOF*/
    #####:    #####: 5925:/*EOF*/
        -:        -: 5926:/*EOF*/
    #####:    #####: 5927:/*EOF*/
    #####:    #####: 5928:/*EOF*/
        -:        -: 5929:/*EOF*/
    #####:    #####: 5930:/*EOF*/
    #####:    #####: 5931:/*EOF*/
        -:        -: 5932:/*EOF*/
    #####:    #####: 5933:/*EOF*/
        -:        -: 5934:/*EOF*/
        -:        -: 5935:/*EOF*/
        -:        -: 5936:/*EOF*/
    #####:    #####: 5937:/*EOF*/
        -:        -: 5938:/*EOF*/
    #####:    #####: 5939:/*EOF*/
        -:        -: 5940:/*EOF*/
    #####:    #####: 5941:/*EOF*/
        -:        -: 5942:/*EOF*/
        -:        -: 5943:/*EOF*/
    #####:    #####: 5944:/*EOF*/
        -:        -: 5945:/*EOF*/
    #####:    #####: 5946:/*EOF*/
    #####:    #####: 5947:/*EOF*/
        -:        -: 5948:/*EOF*/
        -:        -: 5949:/*EOF*/
    #####:    #####: 5950:/*EOF*/
    #####:    #####: 5951:/*EOF*/
    #####:    #####: 5952:/*EOF*/
    #####:    #####: 5953:/*EOF*/
        -:        -: 5954:/*EOF*/
    #####:    #####: 5955:/*EOF*/
    #####:    #####: 5956:/*EOF*/
        -:        -: 5957:/*EOF*/
    #####:    #####: 5958:/*EOF*/
        -:        -: 5959:/*EOF*/
        -:        -: 5960:/*EOF*/
    #####:    #####: 5961:/*EOF*/
    #####:    #####: 5962:/*EOF*/
    #####:    #####: 5963:/*EOF*/
    #####:    #####: 5964:/*EOF*/
    #####:    #####: 5965:/*EOF*/
        -:        -: 5966:/*EOF*/
    #####:    #####: 5967:/*EOF*/
        -:        -: 5968:/*EOF*/
        -:        -: 5969:/*EOF*/
        -:        -: 5970:/*EOF*/
    #####:    #####: 5971:/*EOF*/
    #####:    #####: 5972:/*EOF*/
    #####:    #####: 5973:/*EOF*/
    #####:    #####: 5974:/*EOF*/
        -:        -: 5975:/*EOF*/
        -:        -: 5976:/*EOF*/
    #####:    #####: 5977:/*EOF*/
        -:        -: 5978:/*EOF*/
    #####:    #####: 5979:/*EOF*/
    #####:    #####: 5980:/*EOF*/
        -:        -: 5981:/*EOF*/
        -:        -: 5982:/*EOF*/
        -:        -: 5983:/*EOF*/
        -:        -: 5984:/*EOF*/
        -:        -: 5985:/*EOF*/
        -:        -: 5986:/*EOF*/
        -:        -: 5987:/*EOF*/
    #####:    #####: 5988:/*EOF*/
    #####:    #####: 5989:/*EOF*/
    #####:    #####: 5990:/*EOF*/
        -:        -: 5991:/*EOF*/
    #####:    #####: 5992:/*EOF*/
    #####:    #####: 5993:/*EOF*/
    #####:    #####: 5994:/*EOF*/
    #####:    #####: 5995:/*EOF*/
        -:        -: 5996:/*EOF*/
    #####:    #####: 5997:/*EOF*/
    #####:    #####: 5998:/*EOF*/
        -:        -: 5999:/*EOF*/
    #####:    #####: 6000:/*EOF*/
    #####:    #####: 6001:/*EOF*/
        -:        -: 6002:/*EOF*/
    #####:    #####: 6003:/*EOF*/
        -:        -: 6004:/*EOF*/
    #####:    #####: 6005:/*EOF*/
        -:        -: 6006:/*EOF*/
    #####:    #####: 6007:/*EOF*/
    #####:    #####: 6008:/*EOF*/
        -:        -: 6009:/*EOF*/
    #####:    #####: 6010:/*EOF*/
    #####:    #####: 6011:/*EOF*/
        -:        -: 6012:/*EOF*/
    #####:    #####: 6013:/*EOF*/
        -:        -: 6014:/*EOF*/
        -:        -: 6015:/*EOF*/
        -:        -: 6016:/*EOF*/
    #####:    #####: 6017:/*EOF*/
        -:        -: 6018:/*EOF*/
    #####:    #####: 6019:/*EOF*/
        -:        -: 6020:/*EOF*/
        -:        -: 6021:/*EOF*/
    #####:    #####: 6022:/*EOF*/
        -:        -: 6023:/*EOF*/
    #####:    #####: 6024:/*EOF*/
    #####:    #####: 6025:/*EOF*/
        -:        -: 6026:/*EOF*/
    #####:    #####: 6027:/*EOF*/
        -:        -: 6028:/*EOF*/
    #####:    #####: 6029:/*EOF*/
    #####:    #####: 6030:/*EOF*/
        -:        -: 6031:/*EOF*/
    #####:    #####: 6032:/*EOF*/
        -:        -: 6033:/*EOF*/
    #####:    #####: 6034:/*EOF*/
    #####:    #####: 6035:/*EOF*/
        -:        -: 6036:/*EOF*/
    #####:    #####: 6037:/*EOF*/
        -:        -: 6038:/*EOF*/
    #####:    #####: 6039:/*EOF*/
        -:        -: 6040:/*EOF*/
    #####:    #####: 6041:/*EOF*/
    #####:    #####: 6042:/*EOF*/
        -:        -: 6043:/*EOF*/
    #####:    #####: 6044:/*EOF*/
    #####:    #####: 6045:/*EOF*/
        -:        -: 6046:/*EOF*/
    #####:    #####: 6047:/*EOF*/
        -:        -: 6048:/*EOF*/
        -:        -: 6049:/*EOF*/
        -:        -: 6050:/*EOF*/
    #####:    #####: 6051:/*EOF*/
        -:        -: 6052:/*EOF*/
    #####:    #####: 6053:/*EOF*/
        -:        -: 6054:/*EOF*/
    #####:    #####: 6055:/*EOF*/
        -:        -: 6056:/*EOF*/
    #####:    #####: 6057:/*EOF*/
        -:        -: 6058:/*EOF*/
    #####:    #####: 6059:/*EOF*/
        -:        -: 6060:/*EOF*/
    #####:    #####: 6061:/*EOF*/
        -:        -: 6062:/*EOF*/
        -:        -: 6063:/*EOF*/
        -:        -: 6064:/*EOF*/
        -:        -: 6065:/*EOF*/
        -:        -: 6066:/*EOF*/
    #####:    #####: 6067:/*EOF*/
    #####:    #####: 6068:/*EOF*/
    #####:    #####: 6069:/*EOF*/
        -:        -: 6070:/*EOF*/
        -:        -: 6071:/*EOF*/
        -:        -: 6072:/*EOF*/
    #####:    #####: 6073:/*EOF*/
    #####:    #####: 6074:/*EOF*/
        -:        -: 6075:/*EOF*/
    #####:    #####: 6076:/*EOF*/
        -:        -: 6077:/*EOF*/
    #####:    #####: 6078:/*EOF*/
        -:        -: 6079:/*EOF*/
    #####:    #####: 6080:/*EOF*/
    #####:    #####: 6081:/*EOF*/
        -:        -: 6082:/*EOF*/
    #####:    #####: 6083:/*EOF*/
    #####:    #####: 6084:/*EOF*/
        -:        -: 6085:/*EOF*/
    #####:    #####: 6086:/*EOF*/
        -:        -: 6087:/*EOF*/
    #####:    #####: 6088:/*EOF*/
        -:        -: 6089:/*EOF*/
    #####:    #####: 6090:/*EOF*/
    #####:    #####: 6091:/*EOF*/
        -:        -: 6092:/*EOF*/
    #####:    #####: 6093:/*EOF*/
    #####:    #####: 6094:/*EOF*/
        -:        -: 6095:/*EOF*/
    #####:    #####: 6096:/*EOF*/
        -:        -: 6097:/*EOF*/
        -:        -: 6098:/*EOF*/
        -:        -: 6099:/*EOF*/
        6:        6: 6100:/*EOF*/
        -:        -: 6101:/*EOF*/
        6:        6: 6102:/*EOF*/
        6:        6: 6103:/*EOF*/
        -:        -: 6104:/*EOF*/
        6:        6: 6105:/*EOF*/
        -:        -: 6106:/*EOF*/
        6:        6: 6107:/*EOF*/
        6:        6: 6108:/*EOF*/
        -:        -: 6109:/*EOF*/
    #####:    #####: 6110:/*EOF*/
        -:        -: 6111:/*EOF*/
        -:        -: 6112:/*EOF*/
        -:        -: 6113:/*EOF*/
        6:        6: 6114:/*EOF*/
        1:        1: 6115:/*EOF*/
        1:        1: 6116:/*EOF*/
        -:        -: 6117:/*EOF*/
        5:        5: 6118:/*EOF*/
    #####:    #####: 6119:/*EOF*/
        -:        -: 6120:/*EOF*/
        5:        5: 6121:/*EOF*/
        5:        5: 6122:/*EOF*/
    #####:    #####: 6123:/*EOF*/
        5:        5: 6124:/*EOF*/
    #####:    #####: 6125:/*EOF*/
        -:        -: 6126:/*EOF*/
        5:        5: 6127:/*EOF*/
        -:        -: 6128:/*EOF*/
        -:        -: 6129:/*EOF*/
        -:        -: 6130:/*EOF*/
        -:        -: 6131:/*EOF*/
        -:        -: 6132:/*EOF*/
        5:        5: 6133:/*EOF*/
    #####:    #####: 6134:/*EOF*/
    #####:    #####: 6135:/*EOF*/
        -:        -: 6136:/*EOF*/
        -:        -: 6137:/*EOF*/
        -:        -: 6138:/*EOF*/
        -:        -: 6139:/*EOF*/
        -:        -: 6140:/*EOF*/
        5:        5: 6141:/*EOF*/
        -:        -: 6142:/*EOF*/
        5:        5: 6143:/*EOF*/
    #####:    #####: 6144:/*EOF*/
        -:        -: 6145:/*EOF*/
        5:        5: 6146:/*EOF*/
    #####:    #####: 6147:/*EOF*/
        -:        -: 6148:/*EOF*/
        5:        5: 6149:/*EOF*/
    #####:    #####: 6150:/*EOF*/
        -:        -: 6151:/*EOF*/
        5:        5: 6152:/*EOF*/
        -:        -: 6153:/*EOF*/
        5:        5: 6154:/*EOF*/
    #####:    #####: 6155:/*EOF*/
        -:        -: 6156:/*EOF*/
        5:        5: 6157:/*EOF*/
        -:        -: 6158:/*EOF*/
        5:        5: 6159:/*EOF*/
        -:        -: 6160:/*EOF*/
        5:        5: 6161:/*EOF*/
        5:        5: 6162:/*EOF*/
        -:        -: 6163:/*EOF*/
        5:        5: 6164:/*EOF*/
        5:        5: 6165:/*EOF*/
        -:        -: 6166:/*EOF*/
        5:        5: 6167:/*EOF*/
    #####:    #####: 6168:/*EOF*/
        -:        -: 6169:/*EOF*/
        -:        -: 6170:/*EOF*/
        6:        6: 6171:/*EOF*/
        -:        -: 6172:/*EOF*/
        -:        -: 6173:/*EOF*/
        -:        -: 6174:/*EOF*/
    #####:    #####: 6175:/*EOF*/
        -:        -: 6176:/*EOF*/
    #####:    #####: 6177:/*EOF*/
        -:        -: 6178:/*EOF*/
    #####:    #####: 6179:/*EOF*/
        -:        -: 6180:/*EOF*/
    #####:    #####: 6181:/*EOF*/
    #####:    #####: 6182:/*EOF*/
        -:        -: 6183:/*EOF*/
    #####:    #####: 6184:/*EOF*/
        -:        -: 6185:/*EOF*/
    #####:    #####: 6186:/*EOF*/
    #####:    #####: 6187:/*EOF*/
    #####:    #####: 6188:/*EOF*/
        -:        -: 6189:/*EOF*/
        -:        -: 6190:/*EOF*/
    #####:    #####: 6191:/*EOF*/
        -:        -: 6192:/*EOF*/
    #####:    #####: 6193:/*EOF*/
    #####:    #####: 6194:/*EOF*/
        -:        -: 6195:/*EOF*/
    #####:    #####: 6196:/*EOF*/
        -:        -: 6197:/*EOF*/
    #####:    #####: 6198:/*EOF*/
    #####:    #####: 6199:/*EOF*/
        -:        -: 6200:/*EOF*/
    #####:    #####: 6201:/*EOF*/
        -:        -: 6202:/*EOF*/
    #####:    #####: 6203:/*EOF*/
        -:        -: 6204:/*EOF*/
    #####:    #####: 6205:/*EOF*/
        -:        -: 6206:/*EOF*/
    #####:    #####: 6207:/*EOF*/
    #####:    #####: 6208:/*EOF*/
        -:        -: 6209:/*EOF*/
    #####:    #####: 6210:/*EOF*/
    #####:    #####: 6211:/*EOF*/
        -:        -: 6212:/*EOF*/
    #####:    #####: 6213:/*EOF*/
        -:        -: 6214:/*EOF*/
        -:        -: 6215:/*EOF*/
        -:        -: 6216:/*EOF*/
        -:        -: 6217:/*EOF*/
        -:        -: 6218:/*EOF*/
        -:        -: 6219:/*EOF*/
        -:        -: 6220:/*EOF*/
        -:        -: 6221:/*EOF*/
        -:        -: 6222:/*EOF*/
        -:        -: 6223:/*EOF*/
        -:        -: 6224:/*EOF*/
        3:        3: 6225:/*EOF*/
        -:        -: 6226:/*EOF*/
        -:        -: 6227:/*EOF*/
        3:        3: 6228:/*EOF*/
        -:        -: 6229:/*EOF*/
        6:        6: 6230:/*EOF*/
        3:        3: 6231:/*EOF*/
    #####:    #####: 6232:/*EOF*/
        -:        -: 6233:/*EOF*/
       37:       53: 6234:/*EOF*/
      124:      146: 6235:/*EOF*/
       90:       96: 6236:/*EOF*/
       73:       79: 6237:/*EOF*/
        -:        -: 6238:/*EOF*/
       17:       17: 6239:/*EOF*/
       17:       17: 6240:/*EOF*/
       15:       15: 6241:/*EOF*/
        -:        -: 6242:/*EOF*/
        -:        -: 6243:/*EOF*/
        2:        2: 6244:/*EOF*/
        1:        1: 6245:/*EOF*/
        -:        -: 6246:/*EOF*/
        1:        1: 6247:/*EOF*/
        -:        -: 6248:/*EOF*/
        1:        1: 6249:/*EOF*/
        1:        1: 6250:/*EOF*/
        -:        -: 6251:/*EOF*/
        1:        1: 6252:/*EOF*/
        -:        -: 6253:/*EOF*/
        1:        1: 6254:/*EOF*/
        -:        -: 6255:/*EOF*/
        1:        1: 6256:/*EOF*/
        -:        -: 6257:/*EOF*/
    #####:    #####: 6258:/*EOF*/
        -:        -: 6259:/*EOF*/
        -:        -: 6260:/*EOF*/
        -:        -: 6261:/*EOF*/
        -:        -: 6262:/*EOF*/
        3:        3: 6263:/*EOF*/
        -:        -: 6264:/*EOF*/
        -:        -: 6265:/*EOF*/
        -:        -: 6266:/*EOF*/
        3:        3: 6267:/*EOF*/
        -:        -: 6268:/*EOF*/
        -:        -: 6269:/*EOF*/
        3:        3: 6270:/*EOF*/
        -:        -: 6271:/*EOF*/
        6:        6: 6272:/*EOF*/
        3:        3: 6273:/*EOF*/
        -:        -: 6274:/*EOF*/
        3:        3: 6275:/*EOF*/
        1:        1: 6276:/*EOF*/
        -:        -: 6277:/*EOF*/
        -:        -: 6278:/*EOF*/
        2:        2: 6279:/*EOF*/
        1:        1: 6280:/*EOF*/
        -:        -: 6281:/*EOF*/
        3:        3: 6282:/*EOF*/
        -:        -: 6283:/*EOF*/
        -:        -: 6284:/*EOF*/
        3:        3: 6285:/*EOF*/
        -:        -: 6286:/*EOF*/
        3:        3: 6287:/*EOF*/
    #####:    #####: 6288:/*EOF*/
        -:        -: 6289:/*EOF*/
        -:        -: 6290:/*EOF*/
    #####:    #####: 6291:/*EOF*/
        -:        -: 6292:/*EOF*/
    #####:    #####: 6293:/*EOF*/
        -:        -: 6294:/*EOF*/
    #####:    #####: 6295:/*EOF*/
        -:        -: 6296:/*EOF*/
    #####:    #####: 6297:/*EOF*/
        -:        -: 6298:/*EOF*/
        -:        -: 6299:/*EOF*/
        3:        3: 6300:/*EOF*/
        -:        -: 6301:/*EOF*/
        -:        -: 6302:/*EOF*/
        -:        -: 6303:/*EOF*/
        -:        -: 6304:/*EOF*/
        -:        -: 6305:/*EOF*/
        -:        -: 6306:/*EOF*/
        -:        -: 6307:/*EOF*/
        -:        -: 6308:/*EOF*/
        -:        -: 6309:/*EOF*/
        -:        -: 6310:/*EOF*/
        -:        -: 6311:/*EOF*/
        -:        -: 6312:/*EOF*/
        -:        -: 6313:/*EOF*/
        -:        -: 6314:/*EOF*/
        -:        -: 6315:/*EOF*/
        -:        -: 6316:/*EOF*/
        -:        -: 6317:/*EOF*/
        -:        -: 6318:/*EOF*/
        3:        3: 6319:/*EOF*/
        -:        -: 6320:/*EOF*/
        3:        3: 6321:/*EOF*/
        -:        -: 6322:/*EOF*/
        6:        6: 6323:/*EOF*/
        3:        3: 6324:/*EOF*/
    #####:    #####: 6325:/*EOF*/
        -:        -: 6326:/*EOF*/
        3:        3: 6327:/*EOF*/
        3:        3: 6328:/*EOF*/
        -:        -: 6329:/*EOF*/
       37:       53: 6330:/*EOF*/
       34:       50: 6331:/*EOF*/
        3:        3: 6332:/*EOF*/
        -:        -: 6333:/*EOF*/
      180:      252: 6334:/*EOF*/
      149:      205: 6335:/*EOF*/
      274:      372: 6336:/*EOF*/
        -:        -: 6337:/*EOF*/
       20:       30: 6338:/*EOF*/
       20:       30: 6339:/*EOF*/
       16:       22: 6340:/*EOF*/
        -:        -: 6341:/*EOF*/
        4:        8: 6342:/*EOF*/
        4:        8: 6343:/*EOF*/
        -:        -: 6344:/*EOF*/
        -:        -: 6345:/*EOF*/
        4:        8: 6346:/*EOF*/
        -:        -: 6347:/*EOF*/
    #####:    #####: 6348:/*EOF*/
        -:        -: 6349:/*EOF*/
        -:        -: 6350:/*EOF*/
        -:        -: 6351:/*EOF*/
        4:        8: 6352:/*EOF*/
        -:        -: 6353:/*EOF*/
        8:       16: 6354:/*EOF*/
        -:        -: 6355:/*EOF*/
       16:       32: 6356:/*EOF*/
       12:       24: 6357:/*EOF*/
       12:       24: 6358:/*EOF*/
       12:       24: 6359:/*EOF*/
       12:       24: 6360:/*EOF*/
       11:       23: 6361:/*EOF*/
        -:        -: 6362:/*EOF*/
        1:        1: 6363:/*EOF*/
        -:        -: 6364:/*EOF*/
       12:       24: 6365:/*EOF*/
       12:       24: 6366:/*EOF*/
        -:        -: 6367:/*EOF*/
        -:        -: 6368:/*EOF*/
        -:        -: 6369:/*EOF*/
        -:        -: 6370:/*EOF*/
        3:        3: 6371:/*EOF*/
        -:        -: 6372:/*EOF*/
        3:        3: 6373:/*EOF*/
        -:        -: 6374:/*EOF*/
        -:        -: 6375:/*EOF*/
        3:        3: 6376:/*EOF*/
        -:        -: 6377:/*EOF*/
        -:        -: 6378:/*EOF*/
        -:        -: 6379:/*EOF*/
        -:        -: 6380:/*EOF*/
        -:        -: 6381:/*EOF*/
        -:        -: 6382:/*EOF*/
        -:        -: 6383:/*EOF*/
        -:        -: 6384:/*EOF*/
        3:        3: 6385:/*EOF*/
        -:        -: 6386:/*EOF*/
        3:        3: 6387:/*EOF*/
        -:        -: 6388:/*EOF*/
        6:        6: 6389:/*EOF*/
        3:        3: 6390:/*EOF*/
    #####:    #####: 6391:/*EOF*/
        -:        -: 6392:/*EOF*/
        -:        -: 6393:/*EOF*/
        3:        3: 6394:/*EOF*/
        -:        -: 6395:/*EOF*/
       37:       53: 6396:/*EOF*/
      217:      289: 6397:/*EOF*/
      183:      239: 6398:/*EOF*/
      154:      200: 6399:/*EOF*/
        -:        -: 6400:/*EOF*/
       29:       39: 6401:/*EOF*/
       58:       78: 6402:/*EOF*/
       29:       39: 6403:/*EOF*/
       29:       39: 6404:/*EOF*/
        -:        -: 6405:/*EOF*/
    #####:    #####: 6406:/*EOF*/
        -:        -: 6407:/*EOF*/
    #####:    #####: 6408:/*EOF*/
    #####:    #####: 6409:/*EOF*/
    #####:    #####: 6410:/*EOF*/
    #####:    #####: 6411:/*EOF*/
    #####:    #####: 6412:/*EOF*/
    #####:    #####: 6413:/*EOF*/
        -:        -: 6414:/*EOF*/
        -:        -: 6415:/*EOF*/
        -:        -: 6416:/*EOF*/
        3:        3: 6417:/*EOF*/
        -:        -: 6418:/*EOF*/
        3:        3: 6419:/*EOF*/
        -:        -: 6420:/*EOF*/
        -:        -: 6421:/*EOF*/
        3:        3: 6422:/*EOF*/
        -:        -: 6423:/*EOF*/
        -:        -: 6424:/*EOF*/
        -:        -: 6425:/*EOF*/
        -:        -: 6426:/*EOF*/
        -:        -: 6427:/*EOF*/
        -:        -: 6428:/*EOF*/
        -:        -: 6429:/*EOF*/
        -:        -: 6430:/*EOF*/
        5:        5: 6431:/*EOF*/
        -:        -: 6432:/*EOF*/
        5:        5: 6433:/*EOF*/
        -:        -: 6434:/*EOF*/
        -:        -: 6435:/*EOF*/
        -:        -: 6436:/*EOF*/
        3:        3: 6437:/*EOF*/
        -:        -: 6438:/*EOF*/
        -:        -: 6439:/*EOF*/
        -:        -: 6440:/*EOF*/
        -:        -: 6441:/*EOF*/
        -:        -: 6442:/*EOF*/
        -:        -: 6443:/*EOF*/
        -:        -: 6444:/*EOF*/
        -:        -: 6445:/*EOF*/
        -:        -: 6446:/*EOF*/
        -:        -: 6447:/*EOF*/
        -:        -: 6448:/*EOF*/
        3:        3: 6449:/*EOF*/
        -:        -: 6450:/*EOF*/
        3:        3: 6451:/*EOF*/
        3:        3: 6452:/*EOF*/
        3:        3: 6453:/*EOF*/
        3:        3: 6454:/*EOF*/
        -:        -: 6455:/*EOF*/
        3:        3: 6456:/*EOF*/
    #####:    #####: 6457:/*EOF*/
        -:        -: 6458:/*EOF*/
        -:        -: 6459:/*EOF*/
        3:        3: 6460:/*EOF*/
        3:        3: 6461:/*EOF*/
        3:        3: 6462:/*EOF*/
        3:        3: 6463:/*EOF*/
        -:        -: 6464:/*EOF*/
        -:        -: 6465:/*EOF*/
        -:        -: 6466:/*EOF*/
        -:        -: 6467:/*EOF*/
        6:        6: 6468:/*EOF*/
        6:        6: 6469:/*EOF*/
        3:        3: 6470:/*EOF*/
        3:        3: 6471:/*EOF*/
        3:        3: 6472:/*EOF*/
        -:        -: 6473:/*EOF*/
        3:        3: 6474:/*EOF*/
        -:        -: 6475:/*EOF*/
        -:        -: 6476:/*EOF*/
        3:        3: 6477:/*EOF*/
    #####:    #####: 6478:/*EOF*/
    #####:    #####: 6479:/*EOF*/
    #####:    #####: 6480:/*EOF*/
    #####:    #####: 6481:/*EOF*/
        3:        3: 6482:/*EOF*/
        -:        -: 6483:/*EOF*/
        3:        3: 6484:/*EOF*/
        3:        3: 6485:/*EOF*/
        3:        3: 6486:/*EOF*/
        -:        -: 6487:/*EOF*/
        -:        -: 6488:/*EOF*/
        3:        3: 6489:/*EOF*/
        -:        -: 6490:/*EOF*/
        3:        3: 6491:/*EOF*/
        3:        3: 6492:/*EOF*/
        3:        3: 6493:/*EOF*/
        -:        -: 6494:/*EOF*/
        -:        -: 6495:/*EOF*/
        -:        -: 6496:/*EOF*/
        6:        6: 6497:/*EOF*/
        3:        3: 6498:/*EOF*/
    #####:    #####: 6499:/*EOF*/
    #####:    #####: 6500:/*EOF*/
        -:        -: 6501:/*EOF*/
    #####:    #####: 6502:/*EOF*/
        3:        3: 6503:/*EOF*/
        3:        3: 6504:/*EOF*/
        3:        3: 6505:/*EOF*/
        3:        3: 6506:/*EOF*/
        -:        -: 6507:/*EOF*/
        -:        -: 6508:/*EOF*/
        6:        6: 6509:/*EOF*/
        3:        3: 6510:/*EOF*/
        -:        -: 6511:/*EOF*/
        -:        -: 6512:/*EOF*/
        -:        -: 6513:/*EOF*/
        6:        6: 6514:/*EOF*/
        3:        3: 6515:/*EOF*/
        3:        3: 6516:/*EOF*/
    #####:    #####: 6517:/*EOF*/
        -:        -: 6518:/*EOF*/
    #####:    #####: 6519:/*EOF*/
        -:        -: 6520:/*EOF*/
        3:        3: 6521:/*EOF*/
        3:        3: 6522:/*EOF*/
        3:        3: 6523:/*EOF*/
        -:        -: 6524:/*EOF*/
        -:        -: 6525:/*EOF*/
        -:        -: 6526:/*EOF*/
        -:        -: 6527:/*EOF*/
        3:        3: 6528:/*EOF*/
        1:        1: 6529:/*EOF*/
        -:        -: 6530:/*EOF*/
        -:        -: 6531:/*EOF*/
        -:        -: 6532:/*EOF*/
        -:        -: 6533:/*EOF*/
        -:        -: 6534:/*EOF*/
        -:        -: 6535:/*EOF*/
        3:        3: 6536:/*EOF*/
    #####:    #####: 6537:/*EOF*/
        -:        -: 6538:/*EOF*/
        3:        3: 6539:/*EOF*/
        -:        -: 6540:/*EOF*/
        -:        -: 6541:/*EOF*/
        -:        -: 6542:/*EOF*/
        -:        -: 6543:/*EOF*/
        -:        -: 6544:/*EOF*/
        -:        -: 6545:/*EOF*/
        -:        -: 6546:/*EOF*/
        -:        -: 6547:/*EOF*/
        -:        -: 6548:/*EOF*/
    #####:    #####: 6549:/*EOF*/
    #####:    #####: 6550:/*EOF*/
    #####:    #####: 6551:/*EOF*/
    #####:    #####: 6552:/*EOF*/
    #####:    #####: 6553:/*EOF*/
        -:        -: 6554:/*EOF*/
        -:        -: 6555:/*EOF*/
        -:        -: 6556:/*EOF*/
        -:        -: 6557:/*EOF*/
        -:        -: 6558:/*EOF*/
        -:        -: 6559:/*EOF*/
        -:        -: 6560:/*EOF*/
        3:        3: 6561:/*EOF*/
        -:        -: 6562:/*EOF*/
        -:        -: 6563:/*EOF*/
        3:        3: 6564:/*EOF*/
        6:        6: 6565:/*EOF*/
        -:        -: 6566:/*EOF*/
        3:        3: 6567:/*EOF*/
    #####:    #####: 6568:/*EOF*/
    #####:    #####: 6569:/*EOF*/
    #####:    #####: 6570:/*EOF*/
    #####:    #####: 6571:/*EOF*/
        -:        -: 6572:/*EOF*/
        -:        -: 6573:/*EOF*/
        3:        3: 6574:/*EOF*/
        2:        2: 6575:/*EOF*/
        2:        2: 6576:/*EOF*/
        2:        2: 6577:/*EOF*/
        2:        2: 6578:/*EOF*/
        -:        -: 6579:/*EOF*/
        2:        2: 6580:/*EOF*/
        2:        2: 6581:/*EOF*/
        2:        2: 6582:/*EOF*/
        2:        2: 6583:/*EOF*/
        2:        2: 6584:/*EOF*/
        -:        -: 6585:/*EOF*/
        1:        1: 6586:/*EOF*/
        1:        1: 6587:/*EOF*/
        1:        1: 6588:/*EOF*/
        1:        1: 6589:/*EOF*/
        1:        1: 6590:/*EOF*/
        -:        -: 6591:/*EOF*/
        -:        -: 6592:/*EOF*/
        3:        3: 6593:/*EOF*/
        -:        -: 6594:/*EOF*/
        -:        -: 6595:/*EOF*/
        -:        -: 6596:/*EOF*/
    #####:    #####: 6597:/*EOF*/
        -:        -: 6598:/*EOF*/
    #####:    #####: 6599:/*EOF*/
        -:        -: 6600:/*EOF*/
    #####:    #####: 6601:/*EOF*/
        -:        -: 6602:/*EOF*/
    #####:    #####: 6603:/*EOF*/
    #####:    #####: 6604:/*EOF*/
    #####:    #####: 6605:/*EOF*/
        -:        -: 6606:/*EOF*/
    #####:    #####: 6607:/*EOF*/
    #####:    #####: 6608:/*EOF*/
    #####:    #####: 6609:/*EOF*/
        -:        -: 6610:/*EOF*/
    #####:    #####: 6611:/*EOF*/
        -:        -: 6612:/*EOF*/
        -:        -: 6613:/*EOF*/
        -:        -: 6614:/*EOF*/
    #####:    #####: 6615:/*EOF*/
        -:        -: 6616:/*EOF*/
    #####:    #####: 6617:/*EOF*/
    #####:    #####: 6618:/*EOF*/
    #####:    #####: 6619:/*EOF*/
    #####:    #####: 6620:/*EOF*/
        -:        -: 6621:/*EOF*/
        -:        -: 6622:/*EOF*/
    #####:    #####: 6623:/*EOF*/
        -:        -: 6624:/*EOF*/
        -:        -: 6625:/*EOF*/
    #####:    #####: 6626:/*EOF*/
        -:        -: 6627:/*EOF*/
    #####:    #####: 6628:/*EOF*/
    #####:    #####: 6629:/*EOF*/
    #####:    #####: 6630:/*EOF*/
        -:        -: 6631:/*EOF*/
        -:        -: 6632:/*EOF*/
    #####:    #####: 6633:/*EOF*/
    #####:    #####: 6634:/*EOF*/
        -:        -: 6635:/*EOF*/
    #####:    #####: 6636:/*EOF*/
        -:        -: 6637:/*EOF*/
        -:        -: 6638:/*EOF*/
    #####:    #####: 6639:/*EOF*/
    #####:    #####: 6640:/*EOF*/
    #####:    #####: 6641:/*EOF*/
    #####:    #####: 6642:/*EOF*/
        -:        -: 6643:/*EOF*/
    #####:    #####: 6644:/*EOF*/
    #####:    #####: 6645:/*EOF*/
    #####:    #####: 6646:/*EOF*/
        -:        -: 6647:/*EOF*/
        -:        -: 6648:/*EOF*/
    #####:    #####: 6649:/*EOF*/
    #####:    #####: 6650:/*EOF*/
        -:        -: 6651:/*EOF*/
        -:        -: 6652:/*EOF*/
    #####:    #####: 6653:/*EOF*/
    #####:    #####: 6654:/*EOF*/
        -:        -: 6655:/*EOF*/
        -:        -: 6656:/*EOF*/
    #####:    #####: 6657:/*EOF*/
    #####:    #####: 6658:/*EOF*/
    #####:    #####: 6659:/*EOF*/
        -:        -: 6660:/*EOF*/
    #####:    #####: 6661:/*EOF*/
    #####:    #####: 6662:/*EOF*/
    #####:    #####: 6663:/*EOF*/
        -:        -: 6664:/*EOF*/
    #####:    #####: 6665:/*EOF*/
    #####:    #####: 6666:/*EOF*/
        -:        -: 6667:/*EOF*/
        -:        -: 6668:/*EOF*/
    #####:    #####: 6669:/*EOF*/
        -:        -: 6670:/*EOF*/
    #####:    #####: 6671:/*EOF*/
    #####:    #####: 6672:/*EOF*/
    #####:    #####: 6673:/*EOF*/
    #####:    #####: 6674:/*EOF*/
    #####:    #####: 6675:/*EOF*/
        -:        -: 6676:/*EOF*/
        -:        -: 6677:/*EOF*/
    #####:    #####: 6678:/*EOF*/
        -:        -: 6679:/*EOF*/
        -:        -: 6680:/*EOF*/
        -:        -: 6681:/*EOF*/
        -:        -: 6682:/*EOF*/
        -:        -: 6683:/*EOF*/
        -:        -: 6684:/*EOF*/
        -:        -: 6685:/*EOF*/
        -:        -: 6686:/*EOF*/
    #####:    #####: 6687:/*EOF*/
    #####:    #####: 6688:/*EOF*/
    #####:    #####: 6689:/*EOF*/
    #####:    #####: 6690:/*EOF*/
        -:        -: 6691:/*EOF*/
        -:        -: 6692:/*EOF*/
        -:        -: 6693:/*EOF*/
        -:        -: 6694:/*EOF*/
    #####:    #####: 6695:/*EOF*/
        -:        -: 6696:/*EOF*/
    #####:    #####: 6697:/*EOF*/
    #####:    #####: 6698:/*EOF*/
        -:        -: 6699:/*EOF*/
    #####:    #####: 6700:/*EOF*/
    #####:    #####: 6701:/*EOF*/
        -:        -: 6702:/*EOF*/
    #####:    #####: 6703:/*EOF*/
    #####:    #####: 6704:/*EOF*/
    #####:    #####: 6705:/*EOF*/
        -:        -: 6706:/*EOF*/
    #####:    #####: 6707:/*EOF*/
    #####:    #####: 6708:/*EOF*/
        -:        -: 6709:/*EOF*/
    #####:    #####: 6710:/*EOF*/
    #####:    #####: 6711:/*EOF*/
        -:        -: 6712:/*EOF*/
    #####:    #####: 6713:/*EOF*/
    #####:    #####: 6714:/*EOF*/
        -:        -: 6715:/*EOF*/
        -:        -: 6716:/*EOF*/
        -:        -: 6717:/*EOF*/
        -:        -: 6718:/*EOF*/
        -:        -: 6719:/*EOF*/
    #####:    #####: 6720:/*EOF*/
    #####:    #####: 6721:/*EOF*/
    #####:    #####: 6722:/*EOF*/
    #####:    #####: 6723:/*EOF*/
        -:        -: 6724:/*EOF*/
    #####:    #####: 6725:/*EOF*/
    #####:    #####: 6726:/*EOF*/
    #####:    #####: 6727:/*EOF*/
    #####:    #####: 6728:/*EOF*/
        -:        -: 6729:/*EOF*/
        -:        -: 6730:/*EOF*/
        -:        -: 6731:/*EOF*/
        -:        -: 6732:/*EOF*/
        -:        -: 6733:/*EOF*/
    #####:    #####: 6734:/*EOF*/
    #####:    #####: 6735:/*EOF*/
    #####:    #####: 6736:/*EOF*/
        -:        -: 6737:/*EOF*/
        -:        -: 6738:/*EOF*/
    #####:    #####: 6739:/*EOF*/
    #####:    #####: 6740:/*EOF*/
    #####:    #####: 6741:/*EOF*/
    #####:    #####: 6742:/*EOF*/
        -:        -: 6743:/*EOF*/
    #####:    #####: 6744:/*EOF*/
    #####:    #####: 6745:/*EOF*/
        -:        -: 6746:/*EOF*/
        -:        -: 6747:/*EOF*/
    #####:    #####: 6748:/*EOF*/
        -:        -: 6749:/*EOF*/
        -:        -: 6750:/*EOF*/
    #####:    #####: 6751:/*EOF*/
    #####:    #####: 6752:/*EOF*/
    #####:    #####: 6753:/*EOF*/
    #####:    #####: 6754:/*EOF*/
        -:        -: 6755:/*EOF*/
        -:        -: 6756:/*EOF*/
        -:        -: 6757:/*EOF*/
        -:        -: 6758:/*EOF*/
        -:        -: 6759:/*EOF*/
    #####:    #####: 6760:/*EOF*/
    #####:    #####: 6761:/*EOF*/
    #####:    #####: 6762:/*EOF*/
        -:        -: 6763:/*EOF*/
    #####:    #####: 6764:/*EOF*/
    #####:    #####: 6765:/*EOF*/
    #####:    #####: 6766:/*EOF*/
    #####:    #####: 6767:/*EOF*/
        -:        -: 6768:/*EOF*/
    #####:    #####: 6769:/*EOF*/
    #####:    #####: 6770:/*EOF*/
        -:        -: 6771:/*EOF*/
    #####:    #####: 6772:/*EOF*/
    #####:    #####: 6773:/*EOF*/
        -:        -: 6774:/*EOF*/
        -:        -: 6775:/*EOF*/
    #####:    #####: 6776:/*EOF*/
        -:        -: 6777:/*EOF*/
        -:        -: 6778:/*EOF*/
    #####:    #####: 6779:/*EOF*/
    #####:    #####: 6780:/*EOF*/
    #####:    #####: 6781:/*EOF*/
        -:        -: 6782:/*EOF*/
        -:        -: 6783:/*EOF*/
        -:        -: 6784:/*EOF*/
    #####:    #####: 6785:/*EOF*/
    #####:    #####: 6786:/*EOF*/
    #####:    #####: 6787:/*EOF*/
    #####:    #####: 6788:/*EOF*/
        -:        -: 6789:/*EOF*/
    #####:    #####: 6790:/*EOF*/
        -:        -: 6791:/*EOF*/
        -:        -: 6792:/*EOF*/
        -:        -: 6793:/*EOF*/
    #####:    #####: 6794:/*EOF*/
    #####:    #####: 6795:/*EOF*/
    #####:    #####: 6796:/*EOF*/
    #####:    #####: 6797:/*EOF*/
    #####:    #####: 6798:/*EOF*/
        -:        -: 6799:/*EOF*/
    #####:    #####: 6800:/*EOF*/
    #####:    #####: 6801:/*EOF*/
        -:        -: 6802:/*EOF*/
        -:        -: 6803:/*EOF*/
    #####:    #####: 6804:/*EOF*/
        -:        -: 6805:/*EOF*/
    #####:    #####: 6806:/*EOF*/
        -:        -: 6807:/*EOF*/
        -:        -: 6808:/*EOF*/
        -:        -: 6809:/*EOF*/
        -:        -: 6810:/*EOF*/
        -:        -: 6811:/*EOF*/
        -:        -: 6812:/*EOF*/
        -:        -: 6813:/*EOF*/
        -:        -: 6814:/*EOF*/
        -:        -: 6815:/*EOF*/
    #####:    #####: 6816:/*EOF*/
        -:        -: 6817:/*EOF*/
    #####:    #####: 6818:/*EOF*/
        -:        -: 6819:/*EOF*/
    #####:    #####: 6820:/*EOF*/
    #####:    #####: 6821:/*EOF*/
    #####:    #####: 6822:/*EOF*/
    #####:    #####: 6823:/*EOF*/
        -:        -: 6824:/*EOF*/
    #####:    #####: 6825:/*EOF*/
        -:        -: 6826:/*EOF*/
    #####:    #####: 6827:/*EOF*/
    #####:    #####: 6828:/*EOF*/
        -:        -: 6829:/*EOF*/
        -:        -: 6830:/*EOF*/
        -:        -: 6831:/*EOF*/
        -:        -: 6832:/*EOF*/
    #####:    #####: 6833:/*EOF*/
    #####:    #####: 6834:/*EOF*/
    #####:    #####: 6835:/*EOF*/
        -:        -: 6836:/*EOF*/
        3:        3: 6837:/*EOF*/

src/intel/compiler/.libs/brw_fs_cse.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_cse.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_cse.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_cse.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      930:     1239:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      930:     1239:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      629:      790:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       41:       49:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        5:        5:  110:/*EOF*/
        -:        -:  111:/*EOF*/
      255:      395:  112:/*EOF*/
      255:      395:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      165:      212:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      165:      212:  120:/*EOF*/
      165:      212:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      165:      212:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
      165:      212:  127:/*EOF*/
       16:       20:  128:/*EOF*/
       16:       20:  129:/*EOF*/
       16:       20:  130:/*EOF*/
       16:       20:  131:/*EOF*/
       16:       20:  132:/*EOF*/
       16:       20:  133:/*EOF*/
       16:       20:  134:/*EOF*/
       16:       20:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       16:       20:  137:/*EOF*/
       16:       20:  138:/*EOF*/
       16:       20:  139:/*EOF*/
       16:       20:  140:/*EOF*/
       16:       20:  141:/*EOF*/
       16:       20:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       32:       40:  144:/*EOF*/
       32:       40:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       16:       20:  147:/*EOF*/
       16:       20:  148:/*EOF*/
       16:       20:  149:/*EOF*/
       16:       20:  150:/*EOF*/
       16:       20:  151:/*EOF*/
       16:       20:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       16:       20:  154:/*EOF*/
       16:       20:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
       16:       20:  157:/*EOF*/
      149:      192:  158:/*EOF*/
      144:      186:  159:/*EOF*/
      356:      482:  160:/*EOF*/
      268:      352:  161:/*EOF*/
       56:       56:  162:/*EOF*/
       56:       56:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      144:      186:  166:/*EOF*/
        -:        -:  167:/*EOF*/
       10:       12:  168:/*EOF*/
       10:       12:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
      943:     1140:  174:/*EOF*/
        -:        -:  175:/*EOF*/
     1118:     1362:  176:/*EOF*/
      350:      444:  177:/*EOF*/
      350:      444:  178:/*EOF*/
      340:      434:  179:/*EOF*/
      330:      424:  180:/*EOF*/
      330:      424:  181:/*EOF*/
      330:      424:  182:/*EOF*/
      330:      424:  183:/*EOF*/
      330:      424:  184:/*EOF*/
      330:      424:  185:/*EOF*/
      330:      424:  186:/*EOF*/
      330:      424:  187:/*EOF*/
      330:      424:  188:/*EOF*/
      330:      424:  189:/*EOF*/
      330:      424:  190:/*EOF*/
      330:      424:  191:/*EOF*/
      330:      424:  192:/*EOF*/
      330:      424:  193:/*EOF*/
      330:      424:  194:/*EOF*/
     1273:     1564:  195:/*EOF*/
     1108:     1352:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
      201:      327:  241:/*EOF*/
        -:        -:  242:/*EOF*/
      201:      327:  243:/*EOF*/
      201:      327:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      201:      327:  246:/*EOF*/
        -:        -:  247:/*EOF*/
      201:      327:  248:/*EOF*/
     1131:     1566:  249:/*EOF*/
        -:        -:  250:/*EOF*/
     2274:     2921:  251:/*EOF*/
     1344:     1682:  252:/*EOF*/
       88:      150:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      672:      841:  255:/*EOF*/
      672:      841:  256:/*EOF*/
        -:        -:  257:/*EOF*/
     1525:     1849:  258:/*EOF*/
        -:        -:  259:/*EOF*/
     1690:     1996:  260:/*EOF*/
      837:      988:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
      672:      841:  268:/*EOF*/
      915:     1140:  269:/*EOF*/
      486:      598:  270:/*EOF*/
      316:      398:  271:/*EOF*/
       73:       99:  272:/*EOF*/
        -:        -:  273:/*EOF*/
      429:      542:  274:/*EOF*/
      429:      542:  275:/*EOF*/
      429:      542:  276:/*EOF*/
      429:      542:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
    #####:    #####:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
    #####:    #####:  301:/*EOF*/
        -:        -:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
     2384:     3013:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
     1454:     1774:  321:/*EOF*/
        -:        -:  322:/*EOF*/
      368:      500:  323:/*EOF*/
      281:      391:  324:/*EOF*/
      106:      152:  325:/*EOF*/
       18:       22:  326:/*EOF*/
       18:       22:  327:/*EOF*/
       18:       22:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
     3453:     4249:  332:/*EOF*/
     2299:     2849:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
     4598:     5698:  338:/*EOF*/
     2299:     2849:  339:/*EOF*/
     2299:     2849:  340:/*EOF*/
       56:       70:  341:/*EOF*/
       56:       70:  342:/*EOF*/
       56:       70:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
     2243:     2779:  349:/*EOF*/
      226:      282:  350:/*EOF*/
      226:      282:  351:/*EOF*/
      226:      282:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
      930:     1239:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
      201:      327:  360:/*EOF*/
        -:        -:  361:/*EOF*/
      201:      327:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       17:       19:  366:/*EOF*/
        -:        -:  367:/*EOF*/
       17:       19:  368:/*EOF*/
        -:        -:  369:/*EOF*/
       17:       19:  370:/*EOF*/
        -:        -:  371:/*EOF*/
      218:      346:  372:/*EOF*/
      201:      327:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       17:       19:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
       17:       19:  379:/*EOF*/
        3:        3:  380:/*EOF*/

src/intel/compiler/.libs/brw_fs_dead_code_eliminate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_dead_code_eliminate.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_dead_code_eliminate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
      205:      273:   41:/*EOF*/
        -:        -:   42:/*EOF*/
      410:      546:   43:/*EOF*/
      410:      546:   44:/*EOF*/
      505:      639:   45:/*EOF*/
      300:      366:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
      104:      106:   53:/*EOF*/
        -:        -:   54:/*EOF*/
      104:      106:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
      104:      106:   65:/*EOF*/
       95:       97:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        9:        9:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       22:       24:   74:/*EOF*/
        -:        -:   75:/*EOF*/
       22:       24:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       22:       24:   78:/*EOF*/
        -:        -:   79:/*EOF*/
       22:       24:   80:/*EOF*/
       22:       24:   81:/*EOF*/
       22:       24:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      272:      392:   84:/*EOF*/
      250:      368:   85:/*EOF*/
      500:      736:   86:/*EOF*/
      250:      368:   87:/*EOF*/
      250:      368:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     1368:     1775:   90:/*EOF*/
     1118:     1407:   91:/*EOF*/
      698:      807:   92:/*EOF*/
      698:      807:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1700:     1971:   95:/*EOF*/
     1002:     1164:   96:/*EOF*/
        -:        -:   97:/*EOF*/
      906:     1019:   98:/*EOF*/
      113:      115:   99:/*EOF*/
      104:      106:  100:/*EOF*/
      104:      106:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
     1118:     1407:  105:/*EOF*/
       86:       84:  106:/*EOF*/
       86:       84:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
     1118:     1407:  110:/*EOF*/
      594:      701:  111:/*EOF*/
      594:      701:  112:/*EOF*/
     1444:     1710:  113:/*EOF*/
      850:     1009:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
     1118:     1407:  119:/*EOF*/
     1008:     1227:  120:/*EOF*/
        -:        -:  121:/*EOF*/
     1118:     1407:  122:/*EOF*/
       86:       84:  123:/*EOF*/
       86:       84:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     2356:     2949:  127:/*EOF*/
     1324:     1626:  128:/*EOF*/
      828:     1006:  129:/*EOF*/
        -:        -:  130:/*EOF*/
     2055:     2507:  131:/*EOF*/
     1227:     1501:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
     1032:     1323:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
       22:       24:  141:/*EOF*/
       22:       24:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       22:       24:  144:/*EOF*/
        7:        7:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       22:       24:  147:/*EOF*/
        3:        3:  148:/*EOF*/

src/intel/compiler/.libs/brw_fs_generator.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_generator.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_generator.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_generator.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      283:      287:   35:/*EOF*/
        -:        -:   36:/*EOF*/
      283:      287:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      263:      267:   42:/*EOF*/
        -:        -:   43:/*EOF*/
       20:       20:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    #####:    #####:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      454:      478:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      454:      478:   61:/*EOF*/
        -:        -:   62:/*EOF*/
       20:       20:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
      283:      287:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
      283:      287:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
       99:      101:   84:/*EOF*/
      382:      388:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
      283:      287:   93:/*EOF*/
      283:      287:   94:/*EOF*/
      283:      287:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      283:      287:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
      283:      287:  140:/*EOF*/
      283:      287:  141:/*EOF*/
      283:      287:  142:/*EOF*/
      283:      287:  143:/*EOF*/
      283:      287:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
      114:      130:  148:/*EOF*/
      114:      130:  149:/*EOF*/
      114:      130:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       57:       61:  153:/*EOF*/
       57:       61:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
      908:      956:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
      454:      478:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
      454:      478:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        3:        3:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        3:        3:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        6:        6:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        3:        3:  192:/*EOF*/
        3:        3:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        3:        3:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        3:        3:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
    #####:    #####:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        5:        5:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        5:        5:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        5:        5:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
    #####:    #####:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
    #####:    #####:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        1:        1:  269:/*EOF*/
        4:        4:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        4:        4:  275:/*EOF*/
        2:        2:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        2:        2:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        5:        5:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       10:       10:  283:/*EOF*/
        5:        5:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
       10:       10:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        5:        5:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       10:       10:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        5:        5:  298:/*EOF*/
        5:        5:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        5:        5:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        5:        5:  304:/*EOF*/
        5:        5:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        5:        5:  308:/*EOF*/
        5:        5:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        5:        5:  312:/*EOF*/
        5:        5:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        5:        5:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
    #####:    #####:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
    #####:    #####:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
        -:        -:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        5:        5:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        5:        5:  383:/*EOF*/
        5:        5:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
    #####:    #####:  396:/*EOF*/
    #####:    #####:  397:/*EOF*/
        -:        -:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        5:        5:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
    #####:    #####:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
        -:        -:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
    #####:    #####:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
    #####:    #####:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
        -:        -:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
    #####:    #####:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
    #####:    #####:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
    #####:    #####:  561:/*EOF*/
        -:        -:  562:/*EOF*/
    #####:    #####:  563:/*EOF*/
    #####:    #####:  564:/*EOF*/
        -:        -:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
    #####:    #####:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
        -:        -:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
    #####:    #####:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
    #####:    #####:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
    #####:    #####:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
        -:        -:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        8:        8:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        8:        8:  643:/*EOF*/
        8:        8:  644:/*EOF*/
        8:        8:  645:/*EOF*/
        -:        -:  646:/*EOF*/
       16:       16:  647:/*EOF*/
       16:       16:  648:/*EOF*/
        8:        8:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        8:        8:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
    #####:    #####:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
        -:        -:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
    #####:    #####:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
    #####:    #####:  719:/*EOF*/
    #####:    #####:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
    #####:    #####:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
    #####:    #####:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
    #####:    #####:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
        -:        -:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
    #####:    #####:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
    #####:    #####:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
    #####:    #####:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
    #####:    #####:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
        -:        -:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
    #####:    #####:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
    #####:    #####:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
        -:        -:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
        -:        -:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
    #####:    #####:  854:/*EOF*/
    #####:    #####:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
    #####:    #####:  861:/*EOF*/
        -:        -:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
    #####:    #####:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
        -:        -:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
    #####:    #####:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
    #####:    #####:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
    #####:    #####:  906:/*EOF*/
    #####:    #####:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
    #####:    #####:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
        -:        -:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
    #####:    #####:  926:/*EOF*/
    #####:    #####:  927:/*EOF*/
        -:        -:  928:/*EOF*/
    #####:    #####:  929:/*EOF*/
    #####:    #####:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
    #####:    #####:  954:/*EOF*/
    #####:    #####:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
    #####:    #####:  959:/*EOF*/
    #####:    #####:  960:/*EOF*/
    #####:    #####:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
    #####:    #####:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
    #####:    #####:  967:/*EOF*/
        -:        -:  968:/*EOF*/
    #####:    #####:  969:/*EOF*/
        -:        -:  970:/*EOF*/
    #####:    #####:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
    #####:    #####:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
    #####:    #####:  986:/*EOF*/
    #####:    #####:  987:/*EOF*/
    #####:    #####:  988:/*EOF*/
        -:        -:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
        -:        -:  999:/*EOF*/
    #####:    #####: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
    #####:    #####: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
    #####:    #####: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
    #####:    #####: 1029:/*EOF*/
    #####:    #####: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
    #####:    #####: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
    #####:    #####: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
    #####:    #####: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
    #####:    #####: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
    #####:    #####: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
    #####:    #####: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
    #####:    #####: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
    #####:    #####: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
    #####:    #####: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
    #####:    #####: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
    #####:    #####: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
    #####:    #####: 1321:/*EOF*/
    #####:    #####: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
    #####:    #####: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
    #####:    #####: 1326:/*EOF*/
    #####:    #####: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
    #####:    #####: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
    #####:    #####: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
    #####:    #####: 1361:/*EOF*/
    #####:    #####: 1362:/*EOF*/
    #####:    #####: 1363:/*EOF*/
    #####:    #####: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
    #####:    #####: 1367:/*EOF*/
    #####:    #####: 1368:/*EOF*/
    #####:    #####: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
    #####:    #####: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
    #####:    #####: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
    #####:    #####: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
    #####:    #####: 1400:/*EOF*/
    #####:    #####: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
    #####:    #####: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
    #####:    #####: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
    #####:    #####: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
    #####:    #####: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
    #####:    #####: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/
    #####:    #####: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
    #####:    #####: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
    #####:    #####: 1438:/*EOF*/
    #####:    #####: 1439:/*EOF*/
    #####:    #####: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
    #####:    #####: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
    #####:    #####: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
    #####:    #####: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
    #####:    #####: 1483:/*EOF*/
    #####:    #####: 1484:/*EOF*/
    #####:    #####: 1485:/*EOF*/
    #####:    #####: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
    #####:    #####: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
    #####:    #####: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    #####:    #####: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
    #####:    #####: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
    #####:    #####: 1537:/*EOF*/
    #####:    #####: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
    #####:    #####: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
    #####:    #####: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
    #####:    #####: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
    #####:    #####: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
    #####:    #####: 1567:/*EOF*/
    #####:    #####: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
    #####:    #####: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
    #####:    #####: 1572:/*EOF*/
    #####:    #####: 1573:/*EOF*/
    #####:    #####: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
    #####:    #####: 1576:/*EOF*/
    #####:    #####: 1577:/*EOF*/
    #####:    #####: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
    #####:    #####: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
    #####:    #####: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
    #####:    #####: 1591:/*EOF*/
    #####:    #####: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
    #####:    #####: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
    #####:    #####: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
    #####:    #####: 1602:/*EOF*/
    #####:    #####: 1603:/*EOF*/
    #####:    #####: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        7:        8: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        9:       11: 1610:/*EOF*/
        2:        3: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        5:        5: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        5:        5: 1615:/*EOF*/
        5:        5: 1616:/*EOF*/
        5:        5: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        5:        5: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
      208:      220: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
      203:      215: 1624:/*EOF*/
      203:      215: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
      406:      430: 1636:/*EOF*/
    #####:    #####: 1637:/*EOF*/
    #####:    #####: 1638:/*EOF*/
      203:      215: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
    #####:    #####: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
      203:      215: 1645:/*EOF*/
    #####:    #####: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
      203:      215: 1662:/*EOF*/
      203:      215: 1663:/*EOF*/
      203:      215: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
      454:      478: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
      251:      263: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
        -:        -: 1670:/*EOF*/
        -:        -: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
      295:      319: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
      251:      263: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
      203:      215: 1680:/*EOF*/
        -:        -: 1681:/*EOF*/
      203:      215: 1682:/*EOF*/
      203:      215: 1683:/*EOF*/
      203:      215: 1684:/*EOF*/
      203:      215: 1685:/*EOF*/
      203:      215: 1686:/*EOF*/
      203:      215: 1687:/*EOF*/
      203:      215: 1688:/*EOF*/
        -:        -: 1689:/*EOF*/
      203:      215: 1690:/*EOF*/
      203:      215: 1691:/*EOF*/
    #####:    #####: 1692:/*EOF*/
    #####:    #####: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
      203:      215: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
      203:      215: 1698:/*EOF*/
      203:      215: 1699:/*EOF*/
      203:      215: 1700:/*EOF*/
      203:      215: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
      203:      215: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
       33:       37: 1705:/*EOF*/
       33:       37: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
       17:       17: 1708:/*EOF*/
       17:       17: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
       18:       18: 1711:/*EOF*/
       18:       18: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
    #####:    #####: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
    #####:    #####: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
        -:        -: 1719:/*EOF*/
        -:        -: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
    #####:    #####: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
        -:        -: 1724:/*EOF*/
       18:       18: 1725:/*EOF*/
       18:       18: 1726:/*EOF*/
       18:       18: 1727:/*EOF*/
       18:       18: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
    #####:    #####: 1731:/*EOF*/
    #####:    #####: 1732:/*EOF*/
    #####:    #####: 1733:/*EOF*/
    #####:    #####: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       12:       12: 1740:/*EOF*/
       12:       12: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
    #####:    #####: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
    #####:    #####: 1746:/*EOF*/
    #####:    #####: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        -:        -: 1749:/*EOF*/
    #####:    #####: 1750:/*EOF*/
    #####:    #####: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
    #####:    #####: 1753:/*EOF*/
    #####:    #####: 1754:/*EOF*/
        -:        -: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
    #####:    #####: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
    #####:    #####: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
        -:        -: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
        -:        -: 1767:/*EOF*/
    #####:    #####: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
        -:        -: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
        -:        -: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
        -:        -: 1778:/*EOF*/
       22:       26: 1779:/*EOF*/
    #####:    #####: 1780:/*EOF*/
        -:        -: 1781:/*EOF*/
        -:        -: 1782:/*EOF*/
        -:        -: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
    #####:    #####: 1786:/*EOF*/
    #####:    #####: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
       22:       26: 1789:/*EOF*/
       22:       26: 1790:/*EOF*/
        -:        -: 1791:/*EOF*/
        4:        4: 1792:/*EOF*/
        4:        4: 1793:/*EOF*/
        -:        -: 1794:/*EOF*/
    #####:    #####: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
    #####:    #####: 1797:/*EOF*/
    #####:    #####: 1798:/*EOF*/
    #####:    #####: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
    #####:    #####: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
    #####:    #####: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
    #####:    #####: 1806:/*EOF*/
        -:        -: 1807:/*EOF*/
    #####:    #####: 1808:/*EOF*/
    #####:    #####: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
    #####:    #####: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
        -:        -: 1813:/*EOF*/
    #####:    #####: 1814:/*EOF*/
        -:        -: 1815:/*EOF*/
    #####:    #####: 1816:/*EOF*/
    #####:    #####: 1817:/*EOF*/
        -:        -: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
    #####:    #####: 1820:/*EOF*/
    #####:    #####: 1821:/*EOF*/
        -:        -: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
    #####:    #####: 1824:/*EOF*/
    #####:    #####: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
    #####:    #####: 1827:/*EOF*/
    #####:    #####: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
        -:        -: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
    #####:    #####: 1833:/*EOF*/
    #####:    #####: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
        -:        -: 1836:/*EOF*/
    #####:    #####: 1837:/*EOF*/
    #####:    #####: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
    #####:    #####: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
       18:       14: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
    #####:    #####: 1849:/*EOF*/
    #####:    #####: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
       18:       14: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
       18:       14: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
        -:        -: 1856:/*EOF*/
    #####:    #####: 1857:/*EOF*/
    #####:    #####: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
       18:       14: 1860:/*EOF*/
       18:       14: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        4:        8: 1864:/*EOF*/
        4:        8: 1865:/*EOF*/
        -:        -: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
        8:       12: 1868:/*EOF*/
        8:       12: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
    #####:    #####: 1871:/*EOF*/
    #####:    #####: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        4:        8: 1875:/*EOF*/
        4:        8: 1876:/*EOF*/
        4:        8: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
       12:       12: 1886:/*EOF*/
       12:       12: 1887:/*EOF*/
       12:       12: 1888:/*EOF*/
       12:       12: 1889:/*EOF*/
       12:       12: 1890:/*EOF*/
       12:       12: 1891:/*EOF*/
        -:        -: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
    #####:    #####: 1895:/*EOF*/
        -:        -: 1896:/*EOF*/
    #####:    #####: 1897:/*EOF*/
    #####:    #####: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
       12:       12: 1900:/*EOF*/
        -:        -: 1901:/*EOF*/
        -:        -: 1902:/*EOF*/
        -:        -: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
    #####:    #####: 1905:/*EOF*/
    #####:    #####: 1906:/*EOF*/
    #####:    #####: 1907:/*EOF*/
    #####:    #####: 1908:/*EOF*/
    #####:    #####: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
    #####:    #####: 1911:/*EOF*/
    #####:    #####: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
    #####:    #####: 1917:/*EOF*/
        -:        -: 1918:/*EOF*/
    #####:    #####: 1919:/*EOF*/
    #####:    #####: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        8:        8: 1922:/*EOF*/
        8:        8: 1923:/*EOF*/
        -:        -: 1924:/*EOF*/
        1:        1: 1925:/*EOF*/
        1:        1: 1926:/*EOF*/
        1:        1: 1927:/*EOF*/
        1:        1: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        1:        1: 1930:/*EOF*/
        1:        1: 1931:/*EOF*/
        1:        1: 1932:/*EOF*/
        1:        1: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
    #####:    #####: 1935:/*EOF*/
    #####:    #####: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
        -:        -: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
        -:        -: 1941:/*EOF*/
        -:        -: 1942:/*EOF*/
        -:        -: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
        -:        -: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
        -:        -: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
        -:        -: 1955:/*EOF*/
        -:        -: 1956:/*EOF*/
    #####:    #####: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
        -:        -: 1960:/*EOF*/
    #####:    #####: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
        -:        -: 1963:/*EOF*/
        -:        -: 1964:/*EOF*/
    #####:    #####: 1965:/*EOF*/
    #####:    #####: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
    #####:    #####: 1970:/*EOF*/
    #####:    #####: 1971:/*EOF*/
    #####:    #####: 1972:/*EOF*/
        -:        -: 1973:/*EOF*/
        -:        -: 1974:/*EOF*/
    #####:    #####: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
    #####:    #####: 1985:/*EOF*/
    #####:    #####: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
    #####:    #####: 1992:/*EOF*/
    #####:    #####: 1993:/*EOF*/
        -:        -: 1994:/*EOF*/
        -:        -: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
    #####:    #####: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
        -:        -: 2000:/*EOF*/
    #####:    #####: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
    #####:    #####: 2003:/*EOF*/
        -:        -: 2004:/*EOF*/
        -:        -: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
    #####:    #####: 2010:/*EOF*/
    #####:    #####: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
        -:        -: 2013:/*EOF*/
        -:        -: 2014:/*EOF*/
        5:        5: 2015:/*EOF*/
        5:        5: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
    #####:    #####: 2020:/*EOF*/
        -:        -: 2021:/*EOF*/
        -:        -: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
    #####:    #####: 2024:/*EOF*/
        -:        -: 2025:/*EOF*/
        -:        -: 2026:/*EOF*/
    #####:    #####: 2027:/*EOF*/
    #####:    #####: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
    #####:    #####: 2031:/*EOF*/
    #####:    #####: 2032:/*EOF*/
        -:        -: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
    #####:    #####: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
    #####:    #####: 2041:/*EOF*/
    #####:    #####: 2042:/*EOF*/
    #####:    #####: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
        -:        -: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
    #####:    #####: 2049:/*EOF*/
    #####:    #####: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
    #####:    #####: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
        -:        -: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
        -:        -: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
    #####:    #####: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
        -:        -: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
    #####:    #####: 2071:/*EOF*/
        -:        -: 2072:/*EOF*/
        -:        -: 2073:/*EOF*/
        -:        -: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
        -:        -: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
        -:        -: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
    #####:    #####: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
        -:        -: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
        -:        -: 2095:/*EOF*/
        -:        -: 2096:/*EOF*/
        -:        -: 2097:/*EOF*/
    #####:    #####: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
        -:        -: 2100:/*EOF*/
        -:        -: 2101:/*EOF*/
        -:        -: 2102:/*EOF*/
        -:        -: 2103:/*EOF*/
        -:        -: 2104:/*EOF*/
    #####:    #####: 2105:/*EOF*/
    #####:    #####: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
        -:        -: 2108:/*EOF*/
        -:        -: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
        -:        -: 2112:/*EOF*/
        -:        -: 2113:/*EOF*/
    #####:    #####: 2114:/*EOF*/
    #####:    #####: 2115:/*EOF*/
        -:        -: 2116:/*EOF*/
        -:        -: 2117:/*EOF*/
        -:        -: 2118:/*EOF*/
    #####:    #####: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
        -:        -: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
        -:        -: 2126:/*EOF*/
        -:        -: 2127:/*EOF*/
    #####:    #####: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
        -:        -: 2130:/*EOF*/
        -:        -: 2131:/*EOF*/
    #####:    #####: 2132:/*EOF*/
    #####:    #####: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
    #####:    #####: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
        -:        -: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
    #####:    #####: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
        -:        -: 2148:/*EOF*/
      203:      215: 2149:/*EOF*/
    #####:    #####: 2150:/*EOF*/
        -:        -: 2151:/*EOF*/
      203:      215: 2152:/*EOF*/
       22:       30: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
       22:       30: 2155:/*EOF*/
        -:        -: 2156:/*EOF*/
       22:       30: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
       22:       30: 2159:/*EOF*/
       22:       30: 2160:/*EOF*/
       22:       30: 2161:/*EOF*/
       22:       30: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
        -:        -: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        5:        5: 2166:/*EOF*/
        5:        5: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
        5:        5: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
        -:        -: 2174:/*EOF*/
        -:        -: 2175:/*EOF*/
        5:        5: 2176:/*EOF*/
        5:        5: 2177:/*EOF*/
        5:        5: 2178:/*EOF*/
        5:        5: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        5:        5: 2181:/*EOF*/
    #####:    #####: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
    #####:    #####: 2185:/*EOF*/
        -:        -: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
    #####:    #####: 2190:/*EOF*/
    #####:    #####: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        5:        5: 2193:/*EOF*/
        -:        -: 2194:/*EOF*/
       15:       15: 2195:/*EOF*/
        -:        -: 2196:/*EOF*/
        -:        -: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        5:        5: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        5:        5: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        5:        5: 2203:/*EOF*/
        -:        -: 2204:/*EOF*/
        5:        5: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
        -:        -: 2208:/*EOF*/
        3:        3: 2209:/*EOF*/
        -:        -: 2210:/*EOF*/
        3:        3: 2211:/*EOF*/
        3:        3: 2212:/*EOF*/

src/intel/compiler/.libs/brw_fs.h.gcov

        -:        -:    0:Source:compiler/brw_fs.h
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      567:      583:   48:/*EOF*/
        -:        -:   49:/*EOF*/
      567:      583:   50:/*EOF*/

src/intel/compiler/.libs/brw_fs_live_variables.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_live_variables.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_live_variables.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_live_variables.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
     3149:     3745:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
     3149:     3745:   59:/*EOF*/
     3149:     3745:   60:/*EOF*/
        -:        -:   61:/*EOF*/
     3149:     3745:   62:/*EOF*/
     3149:     3745:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     3149:     3745:   69:/*EOF*/
     1728:     2121:   70:/*EOF*/
     3149:     3745:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
     2332:     2665:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
     2332:     2665:   77:/*EOF*/
     2332:     2665:   78:/*EOF*/
        -:        -:   79:/*EOF*/
     2332:     2665:   80:/*EOF*/
     2332:     2665:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
     2332:     2665:   86:/*EOF*/
     2332:     2665:   87:/*EOF*/
     2080:     2371:   88:/*EOF*/
        -:        -:   89:/*EOF*/
     2332:     2665:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       48:       52:  102:/*EOF*/
        -:        -:  103:/*EOF*/
       48:       52:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      640:      944:  106:/*EOF*/
      592:      892:  107:/*EOF*/
      592:      892:  108:/*EOF*/
      544:      840:  109:/*EOF*/
        -:        -:  110:/*EOF*/
      592:      892:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     3231:     4227:  113:/*EOF*/
        -:        -:  114:/*EOF*/
     5945:     7275:  115:/*EOF*/
     3306:     3940:  116:/*EOF*/
        -:        -:  117:/*EOF*/
     3306:     3940:  118:/*EOF*/
     1194:     1440:  119:/*EOF*/
        -:        -:  120:/*EOF*/
     5261:     6245:  121:/*EOF*/
     3149:     3745:  122:/*EOF*/
     3149:     3745:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
     2639:     3335:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
     2639:     3335:  130:/*EOF*/
     1614:     1838:  131:/*EOF*/
     3946:     4503:  132:/*EOF*/
     2332:     2665:  133:/*EOF*/
     2332:     2665:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
     2639:     3335:  138:/*EOF*/
     2375:     2915:  139:/*EOF*/
        -:        -:  140:/*EOF*/
     2639:     3335:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       48:       52:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       48:       52:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       48:       52:  155:/*EOF*/
        -:        -:  156:/*EOF*/
      240:      288:  157:/*EOF*/
       96:      118:  158:/*EOF*/
        -:        -:  159:/*EOF*/
     1824:     3128:  160:/*EOF*/
     1728:     3010:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
     4008:     7124:  164:/*EOF*/
     2280:     4114:  165:/*EOF*/
        -:        -:  166:/*EOF*/
     9564:    17663:  167:/*EOF*/
    14568:    27098:  168:/*EOF*/
    14568:    27098:  169:/*EOF*/
     7284:    13549:  170:/*EOF*/
     1577:     2715:  171:/*EOF*/
     1577:     2715:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     4560:     8228:  175:/*EOF*/
     4560:     8228:  176:/*EOF*/
     2280:     4114:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     7212:    12995:  184:/*EOF*/
     5484:     9985:  185:/*EOF*/
    10968:    19970:  186:/*EOF*/
    10968:    19970:  187:/*EOF*/
     5484:     9985:  188:/*EOF*/
     1451:     2448:  189:/*EOF*/
     1451:     2448:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
     1728:     3010:  193:/*EOF*/
     3456:     6020:  194:/*EOF*/
     3456:     6020:  195:/*EOF*/
     1728:     3010:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
       48:       52:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       48:       52:  209:/*EOF*/
        -:        -:  210:/*EOF*/
      640:      944:  211:/*EOF*/
      592:      892:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    52646:    81801:  214:/*EOF*/
    52054:    80909:  215:/*EOF*/
     6246:    12345:  216:/*EOF*/
     6246:    12345:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    52054:    80909:  220:/*EOF*/
     6528:    12768:  221:/*EOF*/
     6528:    12768:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
       48:       52:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       48:       52:  228:/*EOF*/
       48:       52:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       48:       52:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       48:       52:  233:/*EOF*/
       48:       52:  234:/*EOF*/
       48:       52:  235:/*EOF*/
     1587:     1771:  236:/*EOF*/
     1539:     1719:  237:/*EOF*/
     1539:     1719:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
       48:       52:  241:/*EOF*/
     1587:     1771:  242:/*EOF*/
     3937:     4402:  243:/*EOF*/
     2398:     2683:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
       48:       52:  248:/*EOF*/
       48:       52:  249:/*EOF*/
     2446:     2735:  250:/*EOF*/
     2398:     2683:  251:/*EOF*/
     2398:     2683:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       48:       52:  255:/*EOF*/
        -:        -:  256:/*EOF*/
       48:       52:  257:/*EOF*/
      640:      944:  258:/*EOF*/
      592:      892:  259:/*EOF*/
      592:      892:  260:/*EOF*/
      592:      892:  261:/*EOF*/
      592:      892:  262:/*EOF*/
        -:        -:  263:/*EOF*/
      592:      892:  264:/*EOF*/
      592:      892:  265:/*EOF*/
      592:      892:  266:/*EOF*/
      592:      892:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
       48:       52:  270:/*EOF*/
       48:       52:  271:/*EOF*/
       48:       52:  272:/*EOF*/
       48:       52:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       96:      104:  275:/*EOF*/
        -:        -:  276:/*EOF*/
       48:       52:  277:/*EOF*/
       48:       52:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
      565:      654:  281:/*EOF*/
        -:        -:  282:/*EOF*/
      565:      654:  283:/*EOF*/
      565:      654:  284:/*EOF*/
      565:      654:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
      105:      115:  294:/*EOF*/
        -:        -:  295:/*EOF*/
      105:      115:  296:/*EOF*/
       57:       63:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       48:       52:  299:/*EOF*/
       48:       52:  300:/*EOF*/
       48:       52:  301:/*EOF*/
       48:       52:  302:/*EOF*/
       48:       52:  303:/*EOF*/
        -:        -:  304:/*EOF*/
     1587:     1771:  305:/*EOF*/
     1539:     1719:  306:/*EOF*/
     1539:     1719:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       48:       52:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
     2446:     2735:  313:/*EOF*/
     2398:     2683:  314:/*EOF*/
     4796:     5366:  315:/*EOF*/
     4796:     5366:  316:/*EOF*/
     4796:     5366:  317:/*EOF*/
     4796:     5366:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       64:       67:  323:/*EOF*/
        -:        -:  324:/*EOF*/
       64:       67:  325:/*EOF*/
       64:       67:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
     1782:     1782:  330:/*EOF*/
        -:        -:  331:/*EOF*/
     1782:     1782:  332:/*EOF*/
     1782:     1782:  333:/*EOF*/
        3:        3:  334:/*EOF*/

src/intel/compiler/.libs/brw_fs_lower_conversions.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_conversions.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_lower_conversions.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_lower_conversions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
      206:      218:   31:/*EOF*/
      206:      218:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
       32:       36:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        4:        4:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      170:      178:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        5:        5:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        5:        5:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      211:      223:   51:/*EOF*/
      206:      218:   52:/*EOF*/
      206:      218:   53:/*EOF*/
      206:      218:   54:/*EOF*/
        -:        -:   55:/*EOF*/
      206:      218:   56:/*EOF*/
      206:      218:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        5:        5:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        5:        5:  106:/*EOF*/
        3:        3:  107:/*EOF*/

src/intel/compiler/.libs/brw_fs_lower_pack.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_lower_pack.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_lower_pack.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_lower_pack.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        5:        5:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        5:        5:   33:/*EOF*/
        -:        -:   34:/*EOF*/
      199:      211:   35:/*EOF*/
      194:      206:   36:/*EOF*/
      194:      206:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
        -:        -:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
    #####:    #####:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        5:        5:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        5:        5:   54:/*EOF*/
        3:        3:   55:/*EOF*/

src/intel/compiler/.libs/brw_fs_nir.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_nir.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_nir.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        5:        5:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        5:        5:   38:/*EOF*/
        5:        5:   39:/*EOF*/
        5:        5:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
       10:       10:   43:/*EOF*/
        5:        5:   44:/*EOF*/
        5:        5:   45:/*EOF*/
        5:        5:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        5:        5:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        5:        5:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        5:        5:   53:/*EOF*/
        5:        5:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        5:        5:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        5:        5:   71:/*EOF*/
        2:        2:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        3:        3:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       67:       99:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
      244:      288:   82:/*EOF*/
      177:      189:   83:/*EOF*/
      145:      157:   84:/*EOF*/
        -:        -:   85:/*EOF*/
       32:       32:   86:/*EOF*/
       32:       32:   87:/*EOF*/
        -:        -:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:    #####:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
    #####:    #####:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
    #####:    #####:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
       32:       32:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       67:       99:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        5:        5:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        5:        5:  231:/*EOF*/
      170:      170:  232:/*EOF*/
      165:      165:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
       10:       10:  236:/*EOF*/
        5:        5:  237:/*EOF*/
        5:        5:  238:/*EOF*/
       72:      104:  239:/*EOF*/
       67:       99:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        5:        5:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        5:        5:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        5:        5:  248:/*EOF*/
       51:       51:  249:/*EOF*/
       46:       46:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
       27:       27:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       22:       22:  255:/*EOF*/
       22:       22:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       22:       22:  258:/*EOF*/
       22:       22:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        5:        5:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        5:        5:  265:/*EOF*/
        5:        5:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
       45:       65:  269:/*EOF*/
        -:        -:  270:/*EOF*/
       45:       65:  271:/*EOF*/
      134:      198:  272:/*EOF*/
       89:      133:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       18:       26:  275:/*EOF*/
       18:       26:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        4:        8:  279:/*EOF*/
        4:        8:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
       67:       99:  283:/*EOF*/
       67:       99:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       45:       65:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
       18:       26:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       36:       52:  296:/*EOF*/
       36:       52:  297:/*EOF*/
       36:       52:  298:/*EOF*/
       18:       26:  299:/*EOF*/
        -:        -:  300:/*EOF*/
       18:       26:  301:/*EOF*/
        -:        -:  302:/*EOF*/
       18:       26:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       18:       26:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       18:       26:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       18:       26:  310:/*EOF*/
       18:       26:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        4:        8:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        4:        8:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        4:        8:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        4:        8:  320:/*EOF*/
        4:        8:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
       67:       99:  324:/*EOF*/
        -:        -:  325:/*EOF*/
      244:      288:  326:/*EOF*/
      177:      189:  327:/*EOF*/
        -:        -:  328:/*EOF*/
       67:       99:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
      177:      189:  332:/*EOF*/
        -:        -:  333:/*EOF*/
      177:      189:  334:/*EOF*/
        -:        -:  335:/*EOF*/
      177:      189:  336:/*EOF*/
        -:        -:  337:/*EOF*/
      110:      114:  338:/*EOF*/
      110:      114:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
       32:       32:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
       32:       32:  356:/*EOF*/
       32:       32:  357:/*EOF*/
        -:        -:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       32:       32:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
    #####:    #####:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       27:       27:  371:/*EOF*/
       27:       27:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        8:       16:  382:/*EOF*/
        8:       16:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
        -:        -:  387:/*EOF*/
      177:      189:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        4:        4:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        4:        4:  398:/*EOF*/
    #####:    #####:  399:/*EOF*/
        4:        4:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
    #####:    #####:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
        -:        -:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        4:        4:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        4:        4:  435:/*EOF*/
    #####:    #####:  436:/*EOF*/
        4:        4:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
    #####:    #####:  491:/*EOF*/
    #####:    #####:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
    #####:    #####:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
      110:      114:  550:/*EOF*/
        -:        -:  551:/*EOF*/
      110:      114:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
      110:      114:  555:/*EOF*/
      220:      228:  556:/*EOF*/
      330:      342:  557:/*EOF*/
      220:      228:  558:/*EOF*/
        -:        -:  559:/*EOF*/
      110:      114:  560:/*EOF*/
      308:      320:  561:/*EOF*/
      198:      206:  562:/*EOF*/
      396:      412:  563:/*EOF*/
      594:      618:  564:/*EOF*/
      396:      412:  565:/*EOF*/
      198:      206:  566:/*EOF*/
      198:      206:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
      110:      114:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
       20:       20:  580:/*EOF*/
       20:       20:  581:/*EOF*/
       46:       46:  582:/*EOF*/
       32:       32:  583:/*EOF*/
        6:        6:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
    #####:    #####:  586:/*EOF*/
    #####:    #####:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      100:      100:  591:/*EOF*/
       80:       80:  592:/*EOF*/
       54:       54:  593:/*EOF*/
        -:        -:  594:/*EOF*/
       26:       26:  595:/*EOF*/
       36:       36:  596:/*EOF*/
       54:       54:  597:/*EOF*/
        -:        -:  598:/*EOF*/
       16:       16:  599:/*EOF*/
       24:       24:  600:/*EOF*/
        -:        -:  601:/*EOF*/
       26:       26:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
       20:       20:  609:/*EOF*/
    #####:    #####:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
    #####:    #####:  612:/*EOF*/
        -:        -:  613:/*EOF*/
    #####:    #####:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
       20:       20:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       90:       94:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
       90:       94:  627:/*EOF*/
       90:       94:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
       90:       94:  632:/*EOF*/
       90:       94:  633:/*EOF*/
        -:        -:  634:/*EOF*/
       90:       94:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
      262:      274:  638:/*EOF*/
      172:      180:  639:/*EOF*/
      172:      180:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
       90:       94:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        4:        4:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        4:        4:  648:/*EOF*/
        4:        4:  649:/*EOF*/
        4:        4:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
    #####:    #####:  668:/*EOF*/
    #####:    #####:  669:/*EOF*/
    #####:    #####:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
    #####:    #####:  698:/*EOF*/
        -:        -:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
    #####:    #####:  706:/*EOF*/
        -:        -:  707:/*EOF*/
    #####:    #####:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
        -:        -:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
    #####:    #####:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
    #####:    #####:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
    #####:    #####:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
    #####:    #####:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
    #####:    #####:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        8:        8:  793:/*EOF*/
        8:        8:  794:/*EOF*/
        8:        8:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
    #####:    #####:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
    #####:    #####:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
    #####:    #####:  818:/*EOF*/
    #####:    #####:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
        -:        -:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
    #####:    #####:  826:/*EOF*/
    #####:    #####:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
    #####:    #####:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
    #####:    #####:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
        -:        -:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
    #####:    #####:  840:/*EOF*/
        -:        -:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
       14:       14:  852:/*EOF*/
       14:       14:  853:/*EOF*/
       14:       14:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
       18:       18:  857:/*EOF*/
       18:       18:  858:/*EOF*/
       18:       18:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
    #####:    #####:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
    #####:    #####:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
    #####:    #####:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
    #####:    #####:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
    #####:    #####:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
       14:       18:  929:/*EOF*/
       14:       18:  930:/*EOF*/
    #####:    #####:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
       14:       18:  934:/*EOF*/
        -:        -:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
        -:        -:  938:/*EOF*/
       14:       18:  939:/*EOF*/
       14:       18:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
        -:        -:  949:/*EOF*/
       14:       18:  950:/*EOF*/
       14:       18:  951:/*EOF*/
    #####:    #####:  952:/*EOF*/
        -:        -:  953:/*EOF*/
       14:       18:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        4:        4:  963:/*EOF*/
        4:        4:  964:/*EOF*/
    #####:    #####:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        4:        4:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
    #####:    #####:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        4:        4:  976:/*EOF*/
        4:        4:  977:/*EOF*/
        -:        -:  978:/*EOF*/
    #####:    #####:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
    #####:    #####:  982:/*EOF*/
    #####:    #####:  983:/*EOF*/
        -:        -:  984:/*EOF*/
    #####:    #####:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        4:        4:  987:/*EOF*/
        4:        4:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        4:        4:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
    #####:    #####:  996:/*EOF*/
        -:        -:  997:/*EOF*/
    #####:    #####:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
    #####:    #####: 1002:/*EOF*/
    #####:    #####: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
    #####:    #####: 1005:/*EOF*/
    #####:    #####: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
    #####:    #####: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
    #####:    #####: 1012:/*EOF*/
    #####:    #####: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
    #####:    #####: 1016:/*EOF*/
    #####:    #####: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
    #####:    #####: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
    #####:    #####: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
    #####:    #####: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
    #####:    #####: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
    #####:    #####: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
    #####:    #####: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
       12:       12: 1121:/*EOF*/
       12:       12: 1122:/*EOF*/
       12:       12: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
    #####:    #####: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
    #####:    #####: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
    #####:    #####: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
    #####:    #####: 1152:/*EOF*/
    #####:    #####: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
    #####:    #####: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
    #####:    #####: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
    #####:    #####: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
    #####:    #####: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
    #####:    #####: 1197:/*EOF*/
    #####:    #####: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
    #####:    #####: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
    #####:    #####: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
    #####:    #####: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
    #####:    #####: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
    #####:    #####: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
    #####:    #####: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
    #####:    #####: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
    #####:    #####: 1287:/*EOF*/
    #####:    #####: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
    #####:    #####: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
    #####:    #####: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
    #####:    #####: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
       12:       12: 1312:/*EOF*/
       12:       12: 1313:/*EOF*/
       12:       12: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        4:        4: 1322:/*EOF*/
    #####:    #####: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        4:        4: 1325:/*EOF*/
        4:        4: 1326:/*EOF*/
        4:        4: 1327:/*EOF*/
        4:        4: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
    #####:    #####: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
    #####:    #####: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
    #####:    #####: 1342:/*EOF*/
    #####:    #####: 1343:/*EOF*/
    #####:    #####: 1344:/*EOF*/
    #####:    #####: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
    #####:    #####: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
       90:       94: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
    #####:    #####: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
    #####:    #####: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
       27:       27: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
       27:       27: 1369:/*EOF*/
       27:       27: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
       27:       27: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
       66:       66: 1374:/*EOF*/
       39:       39: 1375:/*EOF*/
       27:       27: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
    #####:    #####: 1379:/*EOF*/
    #####:    #####: 1380:/*EOF*/
    #####:    #####: 1381:/*EOF*/
    #####:    #####: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
       27:       27: 1388:/*EOF*/
       27:       27: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
      221:      237: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
      221:      237: 1394:/*EOF*/
      221:      237: 1395:/*EOF*/
      153:      165: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
      153:      165: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
       68:       72: 1405:/*EOF*/
      204:      216: 1406:/*EOF*/
      204:      216: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      221:      237: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
    #####:    #####: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
    #####:    #####: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
      155:      159: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
      155:      159: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
      113:      117: 1432:/*EOF*/
      113:      117: 1433:/*EOF*/
      113:      117: 1434:/*EOF*/
      113:      117: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
       42:       42: 1438:/*EOF*/
       42:       42: 1439:/*EOF*/
       84:       84: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
    #####:    #####: 1447:/*EOF*/
    #####:    #####: 1448:/*EOF*/
    #####:    #####: 1449:/*EOF*/
    #####:    #####: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
    #####:    #####: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
    #####:    #####: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
    #####:    #####: 1461:/*EOF*/
    #####:    #####: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
    #####:    #####: 1472:/*EOF*/
    #####:    #####: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
    #####:    #####: 1479:/*EOF*/
    #####:    #####: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
    #####:    #####: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
    #####:    #####: 1493:/*EOF*/
    #####:    #####: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
    #####:    #####: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
    #####:    #####: 1507:/*EOF*/
    #####:    #####: 1508:/*EOF*/
    #####:    #####: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
    #####:    #####: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
    #####:    #####: 1519:/*EOF*/
        -:        -: 1520:/*EOF*/
        -:        -: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
    #####:    #####: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
    #####:    #####: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
    #####:    #####: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
    #####:    #####: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
    #####:    #####: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
    #####:    #####: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
    #####:    #####: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
    #####:    #####: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
    #####:    #####: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
    #####:    #####: 1550:/*EOF*/
    #####:    #####: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
    #####:    #####: 1553:/*EOF*/
    #####:    #####: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
    #####:    #####: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
    #####:    #####: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
    #####:    #####: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
    #####:    #####: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
    #####:    #####: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
    #####:    #####: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
    #####:    #####: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
    #####:    #####: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
    #####:    #####: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
    #####:    #####: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
    #####:    #####: 1586:/*EOF*/
    #####:    #####: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
    #####:    #####: 1589:/*EOF*/
    #####:    #####: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
    #####:    #####: 1593:/*EOF*/
    #####:    #####: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
    #####:    #####: 1596:/*EOF*/
    #####:    #####: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
    #####:    #####: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
    #####:    #####: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
    #####:    #####: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
    #####:    #####: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
    #####:    #####: 1612:/*EOF*/
    #####:    #####: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
    #####:    #####: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
    #####:    #####: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
    #####:    #####: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
    #####:    #####: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
    #####:    #####: 1627:/*EOF*/
    #####:    #####: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
    #####:    #####: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
    #####:    #####: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
    #####:    #####: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
    #####:    #####: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
        -:        -: 1668:/*EOF*/
    #####:    #####: 1669:/*EOF*/
    #####:    #####: 1670:/*EOF*/
    #####:    #####: 1671:/*EOF*/
        -:        -: 1672:/*EOF*/
        -:        -: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
        -:        -: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
    #####:    #####: 1677:/*EOF*/
        -:        -: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
    #####:    #####: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
    #####:    #####: 1683:/*EOF*/
    #####:    #####: 1684:/*EOF*/
        -:        -: 1685:/*EOF*/
    #####:    #####: 1686:/*EOF*/
        -:        -: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
        -:        -: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
        -:        -: 1693:/*EOF*/
        -:        -: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
        -:        -: 1696:/*EOF*/
        -:        -: 1697:/*EOF*/
        -:        -: 1698:/*EOF*/
        -:        -: 1699:/*EOF*/
        -:        -: 1700:/*EOF*/
        -:        -: 1701:/*EOF*/
        -:        -: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
        -:        -: 1704:/*EOF*/
        -:        -: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
        -:        -: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
        -:        -: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
        -:        -: 1712:/*EOF*/
        -:        -: 1713:/*EOF*/
    #####:    #####: 1714:/*EOF*/
        -:        -: 1715:/*EOF*/
    #####:    #####: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
    #####:    #####: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
        -:        -: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
    #####:    #####: 1723:/*EOF*/
    #####:    #####: 1724:/*EOF*/
    #####:    #####: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
        -:        -: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
        -:        -: 1730:/*EOF*/
        -:        -: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
        -:        -: 1734:/*EOF*/
        -:        -: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
    #####:    #####: 1737:/*EOF*/
    #####:    #####: 1738:/*EOF*/
    #####:    #####: 1739:/*EOF*/
    #####:    #####: 1740:/*EOF*/
        -:        -: 1741:/*EOF*/
    #####:    #####: 1742:/*EOF*/
    #####:    #####: 1743:/*EOF*/
        -:        -: 1744:/*EOF*/
    #####:    #####: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        -:        -: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
    #####:    #####: 1749:/*EOF*/
        -:        -: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        -:        -: 1752:/*EOF*/
        -:        -: 1753:/*EOF*/
        -:        -: 1754:/*EOF*/
    #####:    #####: 1755:/*EOF*/
    #####:    #####: 1756:/*EOF*/
    #####:    #####: 1757:/*EOF*/
        -:        -: 1758:/*EOF*/
    #####:    #####: 1759:/*EOF*/
        -:        -: 1760:/*EOF*/
        -:        -: 1761:/*EOF*/
        -:        -: 1762:/*EOF*/
    #####:    #####: 1763:/*EOF*/
    #####:    #####: 1764:/*EOF*/
    #####:    #####: 1765:/*EOF*/
    #####:    #####: 1766:/*EOF*/
    #####:    #####: 1767:/*EOF*/
        -:        -: 1768:/*EOF*/
    #####:    #####: 1769:/*EOF*/
    #####:    #####: 1770:/*EOF*/
    #####:    #####: 1771:/*EOF*/
    #####:    #####: 1772:/*EOF*/
    #####:    #####: 1773:/*EOF*/
    #####:    #####: 1774:/*EOF*/
    #####:    #####: 1775:/*EOF*/
    #####:    #####: 1776:/*EOF*/
    #####:    #####: 1777:/*EOF*/
    #####:    #####: 1778:/*EOF*/
        -:        -: 1779:/*EOF*/
        -:        -: 1780:/*EOF*/
    #####:    #####: 1781:/*EOF*/
    #####:    #####: 1782:/*EOF*/
    #####:    #####: 1783:/*EOF*/
        -:        -: 1784:/*EOF*/
        -:        -: 1785:/*EOF*/
        -:        -: 1786:/*EOF*/
        -:        -: 1787:/*EOF*/
        -:        -: 1788:/*EOF*/
    #####:    #####: 1789:/*EOF*/
    #####:    #####: 1790:/*EOF*/
    #####:    #####: 1791:/*EOF*/
        -:        -: 1792:/*EOF*/
        -:        -: 1793:/*EOF*/
    #####:    #####: 1794:/*EOF*/
        -:        -: 1795:/*EOF*/
        -:        -: 1796:/*EOF*/
        -:        -: 1797:/*EOF*/
        -:        -: 1798:/*EOF*/
        -:        -: 1799:/*EOF*/
        -:        -: 1800:/*EOF*/
        -:        -: 1801:/*EOF*/
        -:        -: 1802:/*EOF*/
        -:        -: 1803:/*EOF*/
    #####:    #####: 1804:/*EOF*/
        -:        -: 1805:/*EOF*/
        -:        -: 1806:/*EOF*/
    #####:    #####: 1807:/*EOF*/
        -:        -: 1808:/*EOF*/
        -:        -: 1809:/*EOF*/
        -:        -: 1810:/*EOF*/
        -:        -: 1811:/*EOF*/
    #####:    #####: 1812:/*EOF*/
    #####:    #####: 1813:/*EOF*/
        -:        -: 1814:/*EOF*/
    #####:    #####: 1815:/*EOF*/
        -:        -: 1816:/*EOF*/
        -:        -: 1817:/*EOF*/
    #####:    #####: 1818:/*EOF*/
    #####:    #####: 1819:/*EOF*/
        -:        -: 1820:/*EOF*/
        -:        -: 1821:/*EOF*/
    #####:    #####: 1822:/*EOF*/
    #####:    #####: 1823:/*EOF*/
        -:        -: 1824:/*EOF*/
        -:        -: 1825:/*EOF*/
        -:        -: 1826:/*EOF*/
        -:        -: 1827:/*EOF*/
        -:        -: 1828:/*EOF*/
        -:        -: 1829:/*EOF*/
    #####:    #####: 1830:/*EOF*/
    #####:    #####: 1831:/*EOF*/
    #####:    #####: 1832:/*EOF*/
        -:        -: 1833:/*EOF*/
        -:        -: 1834:/*EOF*/
        -:        -: 1835:/*EOF*/
    #####:    #####: 1836:/*EOF*/
        -:        -: 1837:/*EOF*/
        -:        -: 1838:/*EOF*/
    #####:    #####: 1839:/*EOF*/
        -:        -: 1840:/*EOF*/
    #####:    #####: 1841:/*EOF*/
        -:        -: 1842:/*EOF*/
    #####:    #####: 1843:/*EOF*/
    #####:    #####: 1844:/*EOF*/
        -:        -: 1845:/*EOF*/
        -:        -: 1846:/*EOF*/
        -:        -: 1847:/*EOF*/
        -:        -: 1848:/*EOF*/
        -:        -: 1849:/*EOF*/
        -:        -: 1850:/*EOF*/
        -:        -: 1851:/*EOF*/
        -:        -: 1852:/*EOF*/
        -:        -: 1853:/*EOF*/
        -:        -: 1854:/*EOF*/
        -:        -: 1855:/*EOF*/
    #####:    #####: 1856:/*EOF*/
    #####:    #####: 1857:/*EOF*/
        -:        -: 1858:/*EOF*/
        -:        -: 1859:/*EOF*/
        -:        -: 1860:/*EOF*/
        -:        -: 1861:/*EOF*/
        -:        -: 1862:/*EOF*/
        -:        -: 1863:/*EOF*/
        -:        -: 1864:/*EOF*/
        -:        -: 1865:/*EOF*/
    #####:    #####: 1866:/*EOF*/
        -:        -: 1867:/*EOF*/
    #####:    #####: 1868:/*EOF*/
        -:        -: 1869:/*EOF*/
        -:        -: 1870:/*EOF*/
        -:        -: 1871:/*EOF*/
        -:        -: 1872:/*EOF*/
        -:        -: 1873:/*EOF*/
        -:        -: 1874:/*EOF*/
        -:        -: 1875:/*EOF*/
        -:        -: 1876:/*EOF*/
        -:        -: 1877:/*EOF*/
        -:        -: 1878:/*EOF*/
        -:        -: 1879:/*EOF*/
        -:        -: 1880:/*EOF*/
        -:        -: 1881:/*EOF*/
        -:        -: 1882:/*EOF*/
        -:        -: 1883:/*EOF*/
        -:        -: 1884:/*EOF*/
        -:        -: 1885:/*EOF*/
        -:        -: 1886:/*EOF*/
        -:        -: 1887:/*EOF*/
        -:        -: 1888:/*EOF*/
        -:        -: 1889:/*EOF*/
        -:        -: 1890:/*EOF*/
        -:        -: 1891:/*EOF*/
    #####:    #####: 1892:/*EOF*/
    #####:    #####: 1893:/*EOF*/
    #####:    #####: 1894:/*EOF*/
        -:        -: 1895:/*EOF*/
    #####:    #####: 1896:/*EOF*/
        -:        -: 1897:/*EOF*/
        -:        -: 1898:/*EOF*/
        -:        -: 1899:/*EOF*/
    #####:    #####: 1900:/*EOF*/
    #####:    #####: 1901:/*EOF*/
    #####:    #####: 1902:/*EOF*/
    #####:    #####: 1903:/*EOF*/
    #####:    #####: 1904:/*EOF*/
        -:        -: 1905:/*EOF*/
        -:        -: 1906:/*EOF*/
        -:        -: 1907:/*EOF*/
        -:        -: 1908:/*EOF*/
        -:        -: 1909:/*EOF*/
        -:        -: 1910:/*EOF*/
        -:        -: 1911:/*EOF*/
        -:        -: 1912:/*EOF*/
    #####:    #####: 1913:/*EOF*/
    #####:    #####: 1914:/*EOF*/
    #####:    #####: 1915:/*EOF*/
        -:        -: 1916:/*EOF*/
        -:        -: 1917:/*EOF*/
    #####:    #####: 1918:/*EOF*/
        -:        -: 1919:/*EOF*/
        -:        -: 1920:/*EOF*/
        -:        -: 1921:/*EOF*/
        -:        -: 1922:/*EOF*/
        -:        -: 1923:/*EOF*/
    #####:    #####: 1924:/*EOF*/
    #####:    #####: 1925:/*EOF*/
        -:        -: 1926:/*EOF*/
    #####:    #####: 1927:/*EOF*/
        -:        -: 1928:/*EOF*/
        -:        -: 1929:/*EOF*/
        -:        -: 1930:/*EOF*/
        -:        -: 1931:/*EOF*/
    #####:    #####: 1932:/*EOF*/
        -:        -: 1933:/*EOF*/
        -:        -: 1934:/*EOF*/
        -:        -: 1935:/*EOF*/
        -:        -: 1936:/*EOF*/
        -:        -: 1937:/*EOF*/
        -:        -: 1938:/*EOF*/
    #####:    #####: 1939:/*EOF*/
        -:        -: 1940:/*EOF*/
    #####:    #####: 1941:/*EOF*/
    #####:    #####: 1942:/*EOF*/
    #####:    #####: 1943:/*EOF*/
        -:        -: 1944:/*EOF*/
        -:        -: 1945:/*EOF*/
        -:        -: 1946:/*EOF*/
        -:        -: 1947:/*EOF*/
        -:        -: 1948:/*EOF*/
    #####:    #####: 1949:/*EOF*/
        -:        -: 1950:/*EOF*/
        -:        -: 1951:/*EOF*/
    #####:    #####: 1952:/*EOF*/
    #####:    #####: 1953:/*EOF*/
    #####:    #####: 1954:/*EOF*/
    #####:    #####: 1955:/*EOF*/
    #####:    #####: 1956:/*EOF*/
        -:        -: 1957:/*EOF*/
    #####:    #####: 1958:/*EOF*/
        -:        -: 1959:/*EOF*/
    #####:    #####: 1960:/*EOF*/
        -:        -: 1961:/*EOF*/
    #####:    #####: 1962:/*EOF*/
    #####:    #####: 1963:/*EOF*/
    #####:    #####: 1964:/*EOF*/
        -:        -: 1965:/*EOF*/
        -:        -: 1966:/*EOF*/
    #####:    #####: 1967:/*EOF*/
        -:        -: 1968:/*EOF*/
        -:        -: 1969:/*EOF*/
        -:        -: 1970:/*EOF*/
    #####:    #####: 1971:/*EOF*/
        -:        -: 1972:/*EOF*/
    #####:    #####: 1973:/*EOF*/
    #####:    #####: 1974:/*EOF*/
        -:        -: 1975:/*EOF*/
    #####:    #####: 1976:/*EOF*/
    #####:    #####: 1977:/*EOF*/
        -:        -: 1978:/*EOF*/
        -:        -: 1979:/*EOF*/
    #####:    #####: 1980:/*EOF*/
    #####:    #####: 1981:/*EOF*/
        -:        -: 1982:/*EOF*/
        -:        -: 1983:/*EOF*/
        -:        -: 1984:/*EOF*/
        -:        -: 1985:/*EOF*/
        -:        -: 1986:/*EOF*/
        -:        -: 1987:/*EOF*/
        -:        -: 1988:/*EOF*/
        -:        -: 1989:/*EOF*/
        -:        -: 1990:/*EOF*/
        -:        -: 1991:/*EOF*/
        -:        -: 1992:/*EOF*/
        -:        -: 1993:/*EOF*/
    #####:    #####: 1994:/*EOF*/
    #####:    #####: 1995:/*EOF*/
    #####:    #####: 1996:/*EOF*/
    #####:    #####: 1997:/*EOF*/
        -:        -: 1998:/*EOF*/
        -:        -: 1999:/*EOF*/
    #####:    #####: 2000:/*EOF*/
        -:        -: 2001:/*EOF*/
    #####:    #####: 2002:/*EOF*/
        -:        -: 2003:/*EOF*/
    #####:    #####: 2004:/*EOF*/
    #####:    #####: 2005:/*EOF*/
    #####:    #####: 2006:/*EOF*/
    #####:    #####: 2007:/*EOF*/
        -:        -: 2008:/*EOF*/
        -:        -: 2009:/*EOF*/
        -:        -: 2010:/*EOF*/
        -:        -: 2011:/*EOF*/
        -:        -: 2012:/*EOF*/
    #####:    #####: 2013:/*EOF*/
    #####:    #####: 2014:/*EOF*/
        -:        -: 2015:/*EOF*/
    #####:    #####: 2016:/*EOF*/
        -:        -: 2017:/*EOF*/
        -:        -: 2018:/*EOF*/
    #####:    #####: 2019:/*EOF*/
        -:        -: 2020:/*EOF*/
    #####:    #####: 2021:/*EOF*/
    #####:    #####: 2022:/*EOF*/
    #####:    #####: 2023:/*EOF*/
        -:        -: 2024:/*EOF*/
    #####:    #####: 2025:/*EOF*/
    #####:    #####: 2026:/*EOF*/
    #####:    #####: 2027:/*EOF*/
        -:        -: 2028:/*EOF*/
        -:        -: 2029:/*EOF*/
        -:        -: 2030:/*EOF*/
        -:        -: 2031:/*EOF*/
        -:        -: 2032:/*EOF*/
    #####:    #####: 2033:/*EOF*/
        -:        -: 2034:/*EOF*/
        -:        -: 2035:/*EOF*/
    #####:    #####: 2036:/*EOF*/
    #####:    #####: 2037:/*EOF*/
    #####:    #####: 2038:/*EOF*/
        -:        -: 2039:/*EOF*/
        -:        -: 2040:/*EOF*/
        -:        -: 2041:/*EOF*/
        -:        -: 2042:/*EOF*/
        -:        -: 2043:/*EOF*/
    #####:    #####: 2044:/*EOF*/
    #####:    #####: 2045:/*EOF*/
        -:        -: 2046:/*EOF*/
    #####:    #####: 2047:/*EOF*/
    #####:    #####: 2048:/*EOF*/
        -:        -: 2049:/*EOF*/
        -:        -: 2050:/*EOF*/
        -:        -: 2051:/*EOF*/
        -:        -: 2052:/*EOF*/
        -:        -: 2053:/*EOF*/
    #####:    #####: 2054:/*EOF*/
    #####:    #####: 2055:/*EOF*/
    #####:    #####: 2056:/*EOF*/
    #####:    #####: 2057:/*EOF*/
        -:        -: 2058:/*EOF*/
    #####:    #####: 2059:/*EOF*/
    #####:    #####: 2060:/*EOF*/
    #####:    #####: 2061:/*EOF*/
    #####:    #####: 2062:/*EOF*/
        -:        -: 2063:/*EOF*/
    #####:    #####: 2064:/*EOF*/
    #####:    #####: 2065:/*EOF*/
    #####:    #####: 2066:/*EOF*/
        -:        -: 2067:/*EOF*/
        -:        -: 2068:/*EOF*/
    #####:    #####: 2069:/*EOF*/
    #####:    #####: 2070:/*EOF*/
        -:        -: 2071:/*EOF*/
    #####:    #####: 2072:/*EOF*/
    #####:    #####: 2073:/*EOF*/
    #####:    #####: 2074:/*EOF*/
    #####:    #####: 2075:/*EOF*/
    #####:    #####: 2076:/*EOF*/
    #####:    #####: 2077:/*EOF*/
    #####:    #####: 2078:/*EOF*/
    #####:    #####: 2079:/*EOF*/
    #####:    #####: 2080:/*EOF*/
        -:        -: 2081:/*EOF*/
        -:        -: 2082:/*EOF*/
    #####:    #####: 2083:/*EOF*/
    #####:    #####: 2084:/*EOF*/
    #####:    #####: 2085:/*EOF*/
    #####:    #####: 2086:/*EOF*/
        -:        -: 2087:/*EOF*/
    #####:    #####: 2088:/*EOF*/
    #####:    #####: 2089:/*EOF*/
        -:        -: 2090:/*EOF*/
        -:        -: 2091:/*EOF*/
    #####:    #####: 2092:/*EOF*/
    #####:    #####: 2093:/*EOF*/
    #####:    #####: 2094:/*EOF*/
    #####:    #####: 2095:/*EOF*/
    #####:    #####: 2096:/*EOF*/
    #####:    #####: 2097:/*EOF*/
    #####:    #####: 2098:/*EOF*/
    #####:    #####: 2099:/*EOF*/
    #####:    #####: 2100:/*EOF*/
    #####:    #####: 2101:/*EOF*/
    #####:    #####: 2102:/*EOF*/
    #####:    #####: 2103:/*EOF*/
    #####:    #####: 2104:/*EOF*/
        -:        -: 2105:/*EOF*/
        -:        -: 2106:/*EOF*/
    #####:    #####: 2107:/*EOF*/
    #####:    #####: 2108:/*EOF*/
    #####:    #####: 2109:/*EOF*/
    #####:    #####: 2110:/*EOF*/
        -:        -: 2111:/*EOF*/
    #####:    #####: 2112:/*EOF*/
    #####:    #####: 2113:/*EOF*/
        -:        -: 2114:/*EOF*/
        -:        -: 2115:/*EOF*/
    #####:    #####: 2116:/*EOF*/
    #####:    #####: 2117:/*EOF*/
    #####:    #####: 2118:/*EOF*/
        -:        -: 2119:/*EOF*/
    #####:    #####: 2120:/*EOF*/
    #####:    #####: 2121:/*EOF*/
        -:        -: 2122:/*EOF*/
        -:        -: 2123:/*EOF*/
    #####:    #####: 2124:/*EOF*/
    #####:    #####: 2125:/*EOF*/
    #####:    #####: 2126:/*EOF*/
    #####:    #####: 2127:/*EOF*/
        -:        -: 2128:/*EOF*/
    #####:    #####: 2129:/*EOF*/
    #####:    #####: 2130:/*EOF*/
    #####:    #####: 2131:/*EOF*/
        -:        -: 2132:/*EOF*/
        -:        -: 2133:/*EOF*/
        -:        -: 2134:/*EOF*/
        -:        -: 2135:/*EOF*/
    #####:    #####: 2136:/*EOF*/
        -:        -: 2137:/*EOF*/
    #####:    #####: 2138:/*EOF*/
    #####:    #####: 2139:/*EOF*/
    #####:    #####: 2140:/*EOF*/
    #####:    #####: 2141:/*EOF*/
        -:        -: 2142:/*EOF*/
        -:        -: 2143:/*EOF*/
        -:        -: 2144:/*EOF*/
        -:        -: 2145:/*EOF*/
    #####:    #####: 2146:/*EOF*/
        -:        -: 2147:/*EOF*/
    #####:    #####: 2148:/*EOF*/
    #####:    #####: 2149:/*EOF*/
        -:        -: 2150:/*EOF*/
    #####:    #####: 2151:/*EOF*/
        -:        -: 2152:/*EOF*/
        -:        -: 2153:/*EOF*/
        -:        -: 2154:/*EOF*/
        -:        -: 2155:/*EOF*/
    #####:    #####: 2156:/*EOF*/
    #####:    #####: 2157:/*EOF*/
        -:        -: 2158:/*EOF*/
        -:        -: 2159:/*EOF*/
    #####:    #####: 2160:/*EOF*/
        -:        -: 2161:/*EOF*/
        -:        -: 2162:/*EOF*/
        -:        -: 2163:/*EOF*/
    #####:    #####: 2164:/*EOF*/
        -:        -: 2165:/*EOF*/
        -:        -: 2166:/*EOF*/
        -:        -: 2167:/*EOF*/
        -:        -: 2168:/*EOF*/
        -:        -: 2169:/*EOF*/
    #####:    #####: 2170:/*EOF*/
        -:        -: 2171:/*EOF*/
        -:        -: 2172:/*EOF*/
        -:        -: 2173:/*EOF*/
    #####:    #####: 2174:/*EOF*/
    #####:    #####: 2175:/*EOF*/
    #####:    #####: 2176:/*EOF*/
    #####:    #####: 2177:/*EOF*/
    #####:    #####: 2178:/*EOF*/
        -:        -: 2179:/*EOF*/
        -:        -: 2180:/*EOF*/
        -:        -: 2181:/*EOF*/
        -:        -: 2182:/*EOF*/
        -:        -: 2183:/*EOF*/
        -:        -: 2184:/*EOF*/
        -:        -: 2185:/*EOF*/
    #####:    #####: 2186:/*EOF*/
    #####:    #####: 2187:/*EOF*/
        -:        -: 2188:/*EOF*/
    #####:    #####: 2189:/*EOF*/
        -:        -: 2190:/*EOF*/
        -:        -: 2191:/*EOF*/
        -:        -: 2192:/*EOF*/
        -:        -: 2193:/*EOF*/
    #####:    #####: 2194:/*EOF*/
        -:        -: 2195:/*EOF*/
    #####:    #####: 2196:/*EOF*/
    #####:    #####: 2197:/*EOF*/
        -:        -: 2198:/*EOF*/
        -:        -: 2199:/*EOF*/
        -:        -: 2200:/*EOF*/
        -:        -: 2201:/*EOF*/
        -:        -: 2202:/*EOF*/
        -:        -: 2203:/*EOF*/
    #####:    #####: 2204:/*EOF*/
    #####:    #####: 2205:/*EOF*/
        -:        -: 2206:/*EOF*/
        -:        -: 2207:/*EOF*/
    #####:    #####: 2208:/*EOF*/
    #####:    #####: 2209:/*EOF*/
    #####:    #####: 2210:/*EOF*/
        -:        -: 2211:/*EOF*/
        -:        -: 2212:/*EOF*/
    #####:    #####: 2213:/*EOF*/
    #####:    #####: 2214:/*EOF*/
    #####:    #####: 2215:/*EOF*/
    #####:    #####: 2216:/*EOF*/
        -:        -: 2217:/*EOF*/
        -:        -: 2218:/*EOF*/
    #####:    #####: 2219:/*EOF*/
        -:        -: 2220:/*EOF*/
        -:        -: 2221:/*EOF*/
    #####:    #####: 2222:/*EOF*/
        -:        -: 2223:/*EOF*/
    #####:    #####: 2224:/*EOF*/
        -:        -: 2225:/*EOF*/
        -:        -: 2226:/*EOF*/
    #####:    #####: 2227:/*EOF*/
        -:        -: 2228:/*EOF*/
        -:        -: 2229:/*EOF*/
    #####:    #####: 2230:/*EOF*/
        -:        -: 2231:/*EOF*/
    #####:    #####: 2232:/*EOF*/
    #####:    #####: 2233:/*EOF*/
    #####:    #####: 2234:/*EOF*/
        -:        -: 2235:/*EOF*/
    #####:    #####: 2236:/*EOF*/
        -:        -: 2237:/*EOF*/
    #####:    #####: 2238:/*EOF*/
        -:        -: 2239:/*EOF*/
        -:        -: 2240:/*EOF*/
        -:        -: 2241:/*EOF*/
        -:        -: 2242:/*EOF*/
        -:        -: 2243:/*EOF*/
        -:        -: 2244:/*EOF*/
    #####:    #####: 2245:/*EOF*/
    #####:    #####: 2246:/*EOF*/
    #####:    #####: 2247:/*EOF*/
    #####:    #####: 2248:/*EOF*/
    #####:    #####: 2249:/*EOF*/
    #####:    #####: 2250:/*EOF*/
        -:        -: 2251:/*EOF*/
        -:        -: 2252:/*EOF*/
        -:        -: 2253:/*EOF*/
    #####:    #####: 2254:/*EOF*/
    #####:    #####: 2255:/*EOF*/
    #####:    #####: 2256:/*EOF*/
    #####:    #####: 2257:/*EOF*/
        -:        -: 2258:/*EOF*/
    #####:    #####: 2259:/*EOF*/
    #####:    #####: 2260:/*EOF*/
    #####:    #####: 2261:/*EOF*/
        -:        -: 2262:/*EOF*/
    #####:    #####: 2263:/*EOF*/
    #####:    #####: 2264:/*EOF*/
        -:        -: 2265:/*EOF*/
        -:        -: 2266:/*EOF*/
    #####:    #####: 2267:/*EOF*/
        -:        -: 2268:/*EOF*/
        -:        -: 2269:/*EOF*/
        -:        -: 2270:/*EOF*/
    #####:    #####: 2271:/*EOF*/
    #####:    #####: 2272:/*EOF*/
        -:        -: 2273:/*EOF*/
        -:        -: 2274:/*EOF*/
    #####:    #####: 2275:/*EOF*/
    #####:    #####: 2276:/*EOF*/
        -:        -: 2277:/*EOF*/
    #####:    #####: 2278:/*EOF*/
    #####:    #####: 2279:/*EOF*/
        -:        -: 2280:/*EOF*/
    #####:    #####: 2281:/*EOF*/
        -:        -: 2282:/*EOF*/
        -:        -: 2283:/*EOF*/
        -:        -: 2284:/*EOF*/
    #####:    #####: 2285:/*EOF*/
    #####:    #####: 2286:/*EOF*/
        -:        -: 2287:/*EOF*/
    #####:    #####: 2288:/*EOF*/
        -:        -: 2289:/*EOF*/
        -:        -: 2290:/*EOF*/
    #####:    #####: 2291:/*EOF*/
        -:        -: 2292:/*EOF*/
        -:        -: 2293:/*EOF*/
    #####:    #####: 2294:/*EOF*/
    #####:    #####: 2295:/*EOF*/
    #####:    #####: 2296:/*EOF*/
        -:        -: 2297:/*EOF*/
    #####:    #####: 2298:/*EOF*/
    #####:    #####: 2299:/*EOF*/
    #####:    #####: 2300:/*EOF*/
        -:        -: 2301:/*EOF*/
    #####:    #####: 2302:/*EOF*/
        -:        -: 2303:/*EOF*/
    #####:    #####: 2304:/*EOF*/
    #####:    #####: 2305:/*EOF*/
        -:        -: 2306:/*EOF*/
    #####:    #####: 2307:/*EOF*/
    #####:    #####: 2308:/*EOF*/
        -:        -: 2309:/*EOF*/
    #####:    #####: 2310:/*EOF*/
    #####:    #####: 2311:/*EOF*/
    #####:    #####: 2312:/*EOF*/
        -:        -: 2313:/*EOF*/
        -:        -: 2314:/*EOF*/
    #####:    #####: 2315:/*EOF*/
    #####:    #####: 2316:/*EOF*/
        -:        -: 2317:/*EOF*/
    #####:    #####: 2318:/*EOF*/
    #####:    #####: 2319:/*EOF*/
        -:        -: 2320:/*EOF*/
    #####:    #####: 2321:/*EOF*/
        -:        -: 2322:/*EOF*/
        -:        -: 2323:/*EOF*/
    #####:    #####: 2324:/*EOF*/
        -:        -: 2325:/*EOF*/
        -:        -: 2326:/*EOF*/
    #####:    #####: 2327:/*EOF*/
    #####:    #####: 2328:/*EOF*/
        -:        -: 2329:/*EOF*/
        -:        -: 2330:/*EOF*/
    #####:    #####: 2331:/*EOF*/
        -:        -: 2332:/*EOF*/
        -:        -: 2333:/*EOF*/
    #####:    #####: 2334:/*EOF*/
    #####:    #####: 2335:/*EOF*/
        -:        -: 2336:/*EOF*/
    #####:    #####: 2337:/*EOF*/
    #####:    #####: 2338:/*EOF*/
        -:        -: 2339:/*EOF*/
        -:        -: 2340:/*EOF*/
        -:        -: 2341:/*EOF*/
    #####:    #####: 2342:/*EOF*/
        -:        -: 2343:/*EOF*/
        -:        -: 2344:/*EOF*/
        -:        -: 2345:/*EOF*/
    #####:    #####: 2346:/*EOF*/
    #####:    #####: 2347:/*EOF*/
        -:        -: 2348:/*EOF*/
    #####:    #####: 2349:/*EOF*/
    #####:    #####: 2350:/*EOF*/
        -:        -: 2351:/*EOF*/
        -:        -: 2352:/*EOF*/
        -:        -: 2353:/*EOF*/
    #####:    #####: 2354:/*EOF*/
        -:        -: 2355:/*EOF*/
    #####:    #####: 2356:/*EOF*/
        -:        -: 2357:/*EOF*/
    #####:    #####: 2358:/*EOF*/
    #####:    #####: 2359:/*EOF*/
    #####:    #####: 2360:/*EOF*/
    #####:    #####: 2361:/*EOF*/
    #####:    #####: 2362:/*EOF*/
    #####:    #####: 2363:/*EOF*/
    #####:    #####: 2364:/*EOF*/
    #####:    #####: 2365:/*EOF*/
    #####:    #####: 2366:/*EOF*/
        -:        -: 2367:/*EOF*/
        -:        -: 2368:/*EOF*/
        -:        -: 2369:/*EOF*/
    #####:    #####: 2370:/*EOF*/
        -:        -: 2371:/*EOF*/
        -:        -: 2372:/*EOF*/
        -:        -: 2373:/*EOF*/
        -:        -: 2374:/*EOF*/
    #####:    #####: 2375:/*EOF*/
        -:        -: 2376:/*EOF*/
        -:        -: 2377:/*EOF*/
    #####:    #####: 2378:/*EOF*/
    #####:    #####: 2379:/*EOF*/
    #####:    #####: 2380:/*EOF*/
    #####:    #####: 2381:/*EOF*/
        -:        -: 2382:/*EOF*/
        -:        -: 2383:/*EOF*/
    #####:    #####: 2384:/*EOF*/
    #####:    #####: 2385:/*EOF*/
    #####:    #####: 2386:/*EOF*/
        -:        -: 2387:/*EOF*/
        -:        -: 2388:/*EOF*/
        -:        -: 2389:/*EOF*/
        -:        -: 2390:/*EOF*/
        -:        -: 2391:/*EOF*/
        -:        -: 2392:/*EOF*/
    #####:    #####: 2393:/*EOF*/
    #####:    #####: 2394:/*EOF*/
    #####:    #####: 2395:/*EOF*/
    #####:    #####: 2396:/*EOF*/
    #####:    #####: 2397:/*EOF*/
    #####:    #####: 2398:/*EOF*/
    #####:    #####: 2399:/*EOF*/
    #####:    #####: 2400:/*EOF*/
    #####:    #####: 2401:/*EOF*/
        -:        -: 2402:/*EOF*/
        -:        -: 2403:/*EOF*/
    #####:    #####: 2404:/*EOF*/
    #####:    #####: 2405:/*EOF*/
        -:        -: 2406:/*EOF*/
        -:        -: 2407:/*EOF*/
    #####:    #####: 2408:/*EOF*/
    #####:    #####: 2409:/*EOF*/
        -:        -: 2410:/*EOF*/
    #####:    #####: 2411:/*EOF*/
    #####:    #####: 2412:/*EOF*/
    #####:    #####: 2413:/*EOF*/
    #####:    #####: 2414:/*EOF*/
    #####:    #####: 2415:/*EOF*/
    #####:    #####: 2416:/*EOF*/
    #####:    #####: 2417:/*EOF*/
        -:        -: 2418:/*EOF*/
        -:        -: 2419:/*EOF*/
    #####:    #####: 2420:/*EOF*/
        -:        -: 2421:/*EOF*/
    #####:    #####: 2422:/*EOF*/
    #####:    #####: 2423:/*EOF*/
        -:        -: 2424:/*EOF*/
        -:        -: 2425:/*EOF*/
    #####:    #####: 2426:/*EOF*/
    #####:    #####: 2427:/*EOF*/
    #####:    #####: 2428:/*EOF*/
    #####:    #####: 2429:/*EOF*/
    #####:    #####: 2430:/*EOF*/
    #####:    #####: 2431:/*EOF*/
        -:        -: 2432:/*EOF*/
    #####:    #####: 2433:/*EOF*/
    #####:    #####: 2434:/*EOF*/
    #####:    #####: 2435:/*EOF*/
    #####:    #####: 2436:/*EOF*/
        -:        -: 2437:/*EOF*/
        -:        -: 2438:/*EOF*/
        -:        -: 2439:/*EOF*/
    #####:    #####: 2440:/*EOF*/
        -:        -: 2441:/*EOF*/
    #####:    #####: 2442:/*EOF*/
    #####:    #####: 2443:/*EOF*/
        -:        -: 2444:/*EOF*/
    #####:    #####: 2445:/*EOF*/
    #####:    #####: 2446:/*EOF*/
        -:        -: 2447:/*EOF*/
        -:        -: 2448:/*EOF*/
        -:        -: 2449:/*EOF*/
        -:        -: 2450:/*EOF*/
        -:        -: 2451:/*EOF*/
        -:        -: 2452:/*EOF*/
    #####:    #####: 2453:/*EOF*/
        -:        -: 2454:/*EOF*/
    #####:    #####: 2455:/*EOF*/
        -:        -: 2456:/*EOF*/
    #####:    #####: 2457:/*EOF*/
    #####:    #####: 2458:/*EOF*/
    #####:    #####: 2459:/*EOF*/
        -:        -: 2460:/*EOF*/
        -:        -: 2461:/*EOF*/
        -:        -: 2462:/*EOF*/
        -:        -: 2463:/*EOF*/
        -:        -: 2464:/*EOF*/
        -:        -: 2465:/*EOF*/
        -:        -: 2466:/*EOF*/
    #####:    #####: 2467:/*EOF*/
    #####:    #####: 2468:/*EOF*/
    #####:    #####: 2469:/*EOF*/
    #####:    #####: 2470:/*EOF*/
    #####:    #####: 2471:/*EOF*/
        -:        -: 2472:/*EOF*/
        -:        -: 2473:/*EOF*/
        -:        -: 2474:/*EOF*/
        -:        -: 2475:/*EOF*/
        -:        -: 2476:/*EOF*/
    #####:    #####: 2477:/*EOF*/
    #####:    #####: 2478:/*EOF*/
    #####:    #####: 2479:/*EOF*/
        -:        -: 2480:/*EOF*/
        -:        -: 2481:/*EOF*/
    #####:    #####: 2482:/*EOF*/
        -:        -: 2483:/*EOF*/
        -:        -: 2484:/*EOF*/
        -:        -: 2485:/*EOF*/
        -:        -: 2486:/*EOF*/
    #####:    #####: 2487:/*EOF*/
    #####:    #####: 2488:/*EOF*/
    #####:    #####: 2489:/*EOF*/
        -:        -: 2490:/*EOF*/
        -:        -: 2491:/*EOF*/
    #####:    #####: 2492:/*EOF*/
        -:        -: 2493:/*EOF*/
    #####:    #####: 2494:/*EOF*/
    #####:    #####: 2495:/*EOF*/
    #####:    #####: 2496:/*EOF*/
        -:        -: 2497:/*EOF*/
        -:        -: 2498:/*EOF*/
    #####:    #####: 2499:/*EOF*/
        -:        -: 2500:/*EOF*/
    #####:    #####: 2501:/*EOF*/
    #####:    #####: 2502:/*EOF*/
        -:        -: 2503:/*EOF*/
    #####:    #####: 2504:/*EOF*/
    #####:    #####: 2505:/*EOF*/
    #####:    #####: 2506:/*EOF*/
    #####:    #####: 2507:/*EOF*/
    #####:    #####: 2508:/*EOF*/
        -:        -: 2509:/*EOF*/
        -:        -: 2510:/*EOF*/
        -:        -: 2511:/*EOF*/
    #####:    #####: 2512:/*EOF*/
    #####:    #####: 2513:/*EOF*/
        -:        -: 2514:/*EOF*/
    #####:    #####: 2515:/*EOF*/
    #####:    #####: 2516:/*EOF*/
        -:        -: 2517:/*EOF*/
        -:        -: 2518:/*EOF*/
        -:        -: 2519:/*EOF*/
        -:        -: 2520:/*EOF*/
        -:        -: 2521:/*EOF*/
        -:        -: 2522:/*EOF*/
    #####:    #####: 2523:/*EOF*/
    #####:    #####: 2524:/*EOF*/
    #####:    #####: 2525:/*EOF*/
    #####:    #####: 2526:/*EOF*/
        -:        -: 2527:/*EOF*/
    #####:    #####: 2528:/*EOF*/
    #####:    #####: 2529:/*EOF*/
        -:        -: 2530:/*EOF*/
    #####:    #####: 2531:/*EOF*/
    #####:    #####: 2532:/*EOF*/
    #####:    #####: 2533:/*EOF*/
    #####:    #####: 2534:/*EOF*/
    #####:    #####: 2535:/*EOF*/
        -:        -: 2536:/*EOF*/
        -:        -: 2537:/*EOF*/
        -:        -: 2538:/*EOF*/
    #####:    #####: 2539:/*EOF*/
    #####:    #####: 2540:/*EOF*/
        -:        -: 2541:/*EOF*/
    #####:    #####: 2542:/*EOF*/
    #####:    #####: 2543:/*EOF*/
        -:        -: 2544:/*EOF*/
    #####:    #####: 2545:/*EOF*/
        -:        -: 2546:/*EOF*/
        -:        -: 2547:/*EOF*/
        -:        -: 2548:/*EOF*/
        -:        -: 2549:/*EOF*/
    #####:    #####: 2550:/*EOF*/
    #####:    #####: 2551:/*EOF*/
    #####:    #####: 2552:/*EOF*/
    #####:    #####: 2553:/*EOF*/
    #####:    #####: 2554:/*EOF*/
    #####:    #####: 2555:/*EOF*/
    #####:    #####: 2556:/*EOF*/
    #####:    #####: 2557:/*EOF*/
    #####:    #####: 2558:/*EOF*/
    #####:    #####: 2559:/*EOF*/
        -:        -: 2560:/*EOF*/
    #####:    #####: 2561:/*EOF*/
    #####:    #####: 2562:/*EOF*/
        -:        -: 2563:/*EOF*/
        -:        -: 2564:/*EOF*/
    #####:    #####: 2565:/*EOF*/
    #####:    #####: 2566:/*EOF*/
        -:        -: 2567:/*EOF*/
    #####:    #####: 2568:/*EOF*/
        -:        -: 2569:/*EOF*/
        -:        -: 2570:/*EOF*/
        -:        -: 2571:/*EOF*/
        -:        -: 2572:/*EOF*/
        -:        -: 2573:/*EOF*/
    #####:    #####: 2574:/*EOF*/
    #####:    #####: 2575:/*EOF*/
    #####:    #####: 2576:/*EOF*/
    #####:    #####: 2577:/*EOF*/
    #####:    #####: 2578:/*EOF*/
    #####:    #####: 2579:/*EOF*/
    #####:    #####: 2580:/*EOF*/
    #####:    #####: 2581:/*EOF*/
        -:        -: 2582:/*EOF*/
        -:        -: 2583:/*EOF*/
        -:        -: 2584:/*EOF*/
        -:        -: 2585:/*EOF*/
        -:        -: 2586:/*EOF*/
        -:        -: 2587:/*EOF*/
        -:        -: 2588:/*EOF*/
        -:        -: 2589:/*EOF*/
    #####:    #####: 2590:/*EOF*/
        -:        -: 2591:/*EOF*/
    #####:    #####: 2592:/*EOF*/
        -:        -: 2593:/*EOF*/
    #####:    #####: 2594:/*EOF*/
    #####:    #####: 2595:/*EOF*/
    #####:    #####: 2596:/*EOF*/
    #####:    #####: 2597:/*EOF*/
        -:        -: 2598:/*EOF*/
    #####:    #####: 2599:/*EOF*/
    #####:    #####: 2600:/*EOF*/
        -:        -: 2601:/*EOF*/
        -:        -: 2602:/*EOF*/
        -:        -: 2603:/*EOF*/
    #####:    #####: 2604:/*EOF*/
    #####:    #####: 2605:/*EOF*/
    #####:    #####: 2606:/*EOF*/
    #####:    #####: 2607:/*EOF*/
    #####:    #####: 2608:/*EOF*/
        -:        -: 2609:/*EOF*/
        -:        -: 2610:/*EOF*/
        -:        -: 2611:/*EOF*/
        -:        -: 2612:/*EOF*/
        -:        -: 2613:/*EOF*/
    #####:    #####: 2614:/*EOF*/
    #####:    #####: 2615:/*EOF*/
    #####:    #####: 2616:/*EOF*/
    #####:    #####: 2617:/*EOF*/
        -:        -: 2618:/*EOF*/
        -:        -: 2619:/*EOF*/
    #####:    #####: 2620:/*EOF*/
    #####:    #####: 2621:/*EOF*/
        -:        -: 2622:/*EOF*/
    #####:    #####: 2623:/*EOF*/
        -:        -: 2624:/*EOF*/
    #####:    #####: 2625:/*EOF*/
        -:        -: 2626:/*EOF*/
    #####:    #####: 2627:/*EOF*/
        -:        -: 2628:/*EOF*/
        -:        -: 2629:/*EOF*/
    #####:    #####: 2630:/*EOF*/
    #####:    #####: 2631:/*EOF*/
    #####:    #####: 2632:/*EOF*/
        -:        -: 2633:/*EOF*/
    #####:    #####: 2634:/*EOF*/
        -:        -: 2635:/*EOF*/
    #####:    #####: 2636:/*EOF*/
        -:        -: 2637:/*EOF*/
        -:        -: 2638:/*EOF*/
        -:        -: 2639:/*EOF*/
        -:        -: 2640:/*EOF*/
        -:        -: 2641:/*EOF*/
    #####:    #####: 2642:/*EOF*/
        -:        -: 2643:/*EOF*/
    #####:    #####: 2644:/*EOF*/
    #####:    #####: 2645:/*EOF*/
    #####:    #####: 2646:/*EOF*/
        -:        -: 2647:/*EOF*/
        -:        -: 2648:/*EOF*/
    #####:    #####: 2649:/*EOF*/
    #####:    #####: 2650:/*EOF*/
    #####:    #####: 2651:/*EOF*/
    #####:    #####: 2652:/*EOF*/
    #####:    #####: 2653:/*EOF*/
        -:        -: 2654:/*EOF*/
    #####:    #####: 2655:/*EOF*/
        -:        -: 2656:/*EOF*/
        -:        -: 2657:/*EOF*/
        -:        -: 2658:/*EOF*/
        -:        -: 2659:/*EOF*/
    #####:    #####: 2660:/*EOF*/
    #####:    #####: 2661:/*EOF*/
        -:        -: 2662:/*EOF*/
    #####:    #####: 2663:/*EOF*/
    #####:    #####: 2664:/*EOF*/
        -:        -: 2665:/*EOF*/
    #####:    #####: 2666:/*EOF*/
    #####:    #####: 2667:/*EOF*/
    #####:    #####: 2668:/*EOF*/
        -:        -: 2669:/*EOF*/
        -:        -: 2670:/*EOF*/
        -:        -: 2671:/*EOF*/
        -:        -: 2672:/*EOF*/
    #####:    #####: 2673:/*EOF*/
    #####:    #####: 2674:/*EOF*/
    #####:    #####: 2675:/*EOF*/
        -:        -: 2676:/*EOF*/
        -:        -: 2677:/*EOF*/
    #####:    #####: 2678:/*EOF*/
        -:        -: 2679:/*EOF*/
        -:        -: 2680:/*EOF*/
        -:        -: 2681:/*EOF*/
    #####:    #####: 2682:/*EOF*/
    #####:    #####: 2683:/*EOF*/
        -:        -: 2684:/*EOF*/
    #####:    #####: 2685:/*EOF*/
        -:        -: 2686:/*EOF*/
        -:        -: 2687:/*EOF*/
    #####:    #####: 2688:/*EOF*/
        -:        -: 2689:/*EOF*/
        -:        -: 2690:/*EOF*/
    #####:    #####: 2691:/*EOF*/
    #####:    #####: 2692:/*EOF*/
        -:        -: 2693:/*EOF*/
    #####:    #####: 2694:/*EOF*/
    #####:    #####: 2695:/*EOF*/
    #####:    #####: 2696:/*EOF*/
        -:        -: 2697:/*EOF*/
    #####:    #####: 2698:/*EOF*/
        -:        -: 2699:/*EOF*/
    #####:    #####: 2700:/*EOF*/
    #####:    #####: 2701:/*EOF*/
        -:        -: 2702:/*EOF*/
        -:        -: 2703:/*EOF*/
    #####:    #####: 2704:/*EOF*/
    #####:    #####: 2705:/*EOF*/
        -:        -: 2706:/*EOF*/
    #####:    #####: 2707:/*EOF*/
        -:        -: 2708:/*EOF*/
        -:        -: 2709:/*EOF*/
        -:        -: 2710:/*EOF*/
    #####:    #####: 2711:/*EOF*/
    #####:    #####: 2712:/*EOF*/
    #####:    #####: 2713:/*EOF*/
        -:        -: 2714:/*EOF*/
    #####:    #####: 2715:/*EOF*/
    #####:    #####: 2716:/*EOF*/
        -:        -: 2717:/*EOF*/
        -:        -: 2718:/*EOF*/
        -:        -: 2719:/*EOF*/
    #####:    #####: 2720:/*EOF*/
        -:        -: 2721:/*EOF*/
        -:        -: 2722:/*EOF*/
        -:        -: 2723:/*EOF*/
    #####:    #####: 2724:/*EOF*/
    #####:    #####: 2725:/*EOF*/
    #####:    #####: 2726:/*EOF*/
    #####:    #####: 2727:/*EOF*/
    #####:    #####: 2728:/*EOF*/
    #####:    #####: 2729:/*EOF*/
    #####:    #####: 2730:/*EOF*/
        -:        -: 2731:/*EOF*/
        -:        -: 2732:/*EOF*/
    #####:    #####: 2733:/*EOF*/
    #####:    #####: 2734:/*EOF*/
        -:        -: 2735:/*EOF*/
        -:        -: 2736:/*EOF*/
        -:        -: 2737:/*EOF*/
        -:        -: 2738:/*EOF*/
    #####:    #####: 2739:/*EOF*/
    #####:    #####: 2740:/*EOF*/
    #####:    #####: 2741:/*EOF*/
        -:        -: 2742:/*EOF*/
    #####:    #####: 2743:/*EOF*/
        -:        -: 2744:/*EOF*/
    #####:    #####: 2745:/*EOF*/
    #####:    #####: 2746:/*EOF*/
        -:        -: 2747:/*EOF*/
    #####:    #####: 2748:/*EOF*/
    #####:    #####: 2749:/*EOF*/
    #####:    #####: 2750:/*EOF*/
    #####:    #####: 2751:/*EOF*/
    #####:    #####: 2752:/*EOF*/
        -:        -: 2753:/*EOF*/
        -:        -: 2754:/*EOF*/
        -:        -: 2755:/*EOF*/
    #####:    #####: 2756:/*EOF*/
    #####:    #####: 2757:/*EOF*/
        -:        -: 2758:/*EOF*/
    #####:    #####: 2759:/*EOF*/
    #####:    #####: 2760:/*EOF*/
        -:        -: 2761:/*EOF*/
        -:        -: 2762:/*EOF*/
        -:        -: 2763:/*EOF*/
        -:        -: 2764:/*EOF*/
        -:        -: 2765:/*EOF*/
        -:        -: 2766:/*EOF*/
        -:        -: 2767:/*EOF*/
        -:        -: 2768:/*EOF*/
    #####:    #####: 2769:/*EOF*/
    #####:    #####: 2770:/*EOF*/
    #####:    #####: 2771:/*EOF*/
    #####:    #####: 2772:/*EOF*/
    #####:    #####: 2773:/*EOF*/
    #####:    #####: 2774:/*EOF*/
    #####:    #####: 2775:/*EOF*/
        -:        -: 2776:/*EOF*/
    #####:    #####: 2777:/*EOF*/
    #####:    #####: 2778:/*EOF*/
        -:        -: 2779:/*EOF*/
        -:        -: 2780:/*EOF*/
    #####:    #####: 2781:/*EOF*/
        -:        -: 2782:/*EOF*/
        -:        -: 2783:/*EOF*/
        -:        -: 2784:/*EOF*/
    #####:    #####: 2785:/*EOF*/
    #####:    #####: 2786:/*EOF*/
    #####:    #####: 2787:/*EOF*/
        -:        -: 2788:/*EOF*/
    #####:    #####: 2789:/*EOF*/
        -:        -: 2790:/*EOF*/
    #####:    #####: 2791:/*EOF*/
    #####:    #####: 2792:/*EOF*/
        -:        -: 2793:/*EOF*/
    #####:    #####: 2794:/*EOF*/
    #####:    #####: 2795:/*EOF*/
    #####:    #####: 2796:/*EOF*/
    #####:    #####: 2797:/*EOF*/
        -:        -: 2798:/*EOF*/
        -:        -: 2799:/*EOF*/
        -:        -: 2800:/*EOF*/
    #####:    #####: 2801:/*EOF*/
        -:        -: 2802:/*EOF*/
    #####:    #####: 2803:/*EOF*/
    #####:    #####: 2804:/*EOF*/
    #####:    #####: 2805:/*EOF*/
    #####:    #####: 2806:/*EOF*/
        -:        -: 2807:/*EOF*/
        -:        -: 2808:/*EOF*/
        -:        -: 2809:/*EOF*/
        -:        -: 2810:/*EOF*/
        -:        -: 2811:/*EOF*/
        -:        -: 2812:/*EOF*/
    #####:    #####: 2813:/*EOF*/
        -:        -: 2814:/*EOF*/
    #####:    #####: 2815:/*EOF*/
        -:        -: 2816:/*EOF*/
    #####:    #####: 2817:/*EOF*/
    #####:    #####: 2818:/*EOF*/
    #####:    #####: 2819:/*EOF*/
        -:        -: 2820:/*EOF*/
        -:        -: 2821:/*EOF*/
        -:        -: 2822:/*EOF*/
        -:        -: 2823:/*EOF*/
        -:        -: 2824:/*EOF*/
        -:        -: 2825:/*EOF*/
    #####:    #####: 2826:/*EOF*/
    #####:    #####: 2827:/*EOF*/
    #####:    #####: 2828:/*EOF*/
        -:        -: 2829:/*EOF*/
        -:        -: 2830:/*EOF*/
        -:        -: 2831:/*EOF*/
    #####:    #####: 2832:/*EOF*/
        -:        -: 2833:/*EOF*/
        -:        -: 2834:/*EOF*/
    #####:    #####: 2835:/*EOF*/
    #####:    #####: 2836:/*EOF*/
        -:        -: 2837:/*EOF*/
    #####:    #####: 2838:/*EOF*/
        -:        -: 2839:/*EOF*/
        -:        -: 2840:/*EOF*/
    #####:    #####: 2841:/*EOF*/
        -:        -: 2842:/*EOF*/
        -:        -: 2843:/*EOF*/
    #####:    #####: 2844:/*EOF*/
    #####:    #####: 2845:/*EOF*/
        -:        -: 2846:/*EOF*/
    #####:    #####: 2847:/*EOF*/
    #####:    #####: 2848:/*EOF*/
    #####:    #####: 2849:/*EOF*/
        -:        -: 2850:/*EOF*/
    #####:    #####: 2851:/*EOF*/
        -:        -: 2852:/*EOF*/
    #####:    #####: 2853:/*EOF*/
    #####:    #####: 2854:/*EOF*/
    #####:    #####: 2855:/*EOF*/
    #####:    #####: 2856:/*EOF*/
    #####:    #####: 2857:/*EOF*/
        -:        -: 2858:/*EOF*/
        -:        -: 2859:/*EOF*/
    #####:    #####: 2860:/*EOF*/
        -:        -: 2861:/*EOF*/
        -:        -: 2862:/*EOF*/
    #####:    #####: 2863:/*EOF*/
    #####:    #####: 2864:/*EOF*/
    #####:    #####: 2865:/*EOF*/
    #####:    #####: 2866:/*EOF*/
        -:        -: 2867:/*EOF*/
        -:        -: 2868:/*EOF*/
    #####:    #####: 2869:/*EOF*/
    #####:    #####: 2870:/*EOF*/
        -:        -: 2871:/*EOF*/
        -:        -: 2872:/*EOF*/
    #####:    #####: 2873:/*EOF*/
    #####:    #####: 2874:/*EOF*/
        -:        -: 2875:/*EOF*/
        -:        -: 2876:/*EOF*/
    #####:    #####: 2877:/*EOF*/
    #####:    #####: 2878:/*EOF*/
        -:        -: 2879:/*EOF*/
        -:        -: 2880:/*EOF*/
    #####:    #####: 2881:/*EOF*/
    #####:    #####: 2882:/*EOF*/
    #####:    #####: 2883:/*EOF*/
    #####:    #####: 2884:/*EOF*/
    #####:    #####: 2885:/*EOF*/
        -:        -: 2886:/*EOF*/
        -:        -: 2887:/*EOF*/
        -:        -: 2888:/*EOF*/
    #####:    #####: 2889:/*EOF*/
    #####:    #####: 2890:/*EOF*/
        -:        -: 2891:/*EOF*/
    #####:    #####: 2892:/*EOF*/
        -:        -: 2893:/*EOF*/
        -:        -: 2894:/*EOF*/
        -:        -: 2895:/*EOF*/
        -:        -: 2896:/*EOF*/
        -:        -: 2897:/*EOF*/
    #####:    #####: 2898:/*EOF*/
        -:        -: 2899:/*EOF*/
    #####:    #####: 2900:/*EOF*/
        -:        -: 2901:/*EOF*/
        -:        -: 2902:/*EOF*/
        -:        -: 2903:/*EOF*/
    #####:    #####: 2904:/*EOF*/
    #####:    #####: 2905:/*EOF*/
    #####:    #####: 2906:/*EOF*/
    #####:    #####: 2907:/*EOF*/
        -:        -: 2908:/*EOF*/
        -:        -: 2909:/*EOF*/
        -:        -: 2910:/*EOF*/
        -:        -: 2911:/*EOF*/
    #####:    #####: 2912:/*EOF*/
        -:        -: 2913:/*EOF*/
        -:        -: 2914:/*EOF*/
        -:        -: 2915:/*EOF*/
        -:        -: 2916:/*EOF*/
        -:        -: 2917:/*EOF*/
        -:        -: 2918:/*EOF*/
        -:        -: 2919:/*EOF*/
        -:        -: 2920:/*EOF*/
    #####:    #####: 2921:/*EOF*/
        -:        -: 2922:/*EOF*/
        -:        -: 2923:/*EOF*/
    #####:    #####: 2924:/*EOF*/
        -:        -: 2925:/*EOF*/
    #####:    #####: 2926:/*EOF*/
        -:        -: 2927:/*EOF*/
    #####:    #####: 2928:/*EOF*/
    #####:    #####: 2929:/*EOF*/
        -:        -: 2930:/*EOF*/
    #####:    #####: 2931:/*EOF*/
        -:        -: 2932:/*EOF*/
        -:        -: 2933:/*EOF*/
        -:        -: 2934:/*EOF*/
        -:        -: 2935:/*EOF*/
    #####:    #####: 2936:/*EOF*/
    #####:    #####: 2937:/*EOF*/
    #####:    #####: 2938:/*EOF*/
        -:        -: 2939:/*EOF*/
    #####:    #####: 2940:/*EOF*/
    #####:    #####: 2941:/*EOF*/
    #####:    #####: 2942:/*EOF*/
        -:        -: 2943:/*EOF*/
        -:        -: 2944:/*EOF*/
    #####:    #####: 2945:/*EOF*/
    #####:    #####: 2946:/*EOF*/
    #####:    #####: 2947:/*EOF*/
    #####:    #####: 2948:/*EOF*/
        -:        -: 2949:/*EOF*/
        -:        -: 2950:/*EOF*/
        -:        -: 2951:/*EOF*/
        -:        -: 2952:/*EOF*/
        -:        -: 2953:/*EOF*/
        -:        -: 2954:/*EOF*/
    #####:    #####: 2955:/*EOF*/
    #####:    #####: 2956:/*EOF*/
    #####:    #####: 2957:/*EOF*/
        -:        -: 2958:/*EOF*/
    #####:    #####: 2959:/*EOF*/
    #####:    #####: 2960:/*EOF*/
    #####:    #####: 2961:/*EOF*/
        -:        -: 2962:/*EOF*/
        -:        -: 2963:/*EOF*/
        -:        -: 2964:/*EOF*/
        -:        -: 2965:/*EOF*/
        -:        -: 2966:/*EOF*/
        -:        -: 2967:/*EOF*/
    #####:    #####: 2968:/*EOF*/
    #####:    #####: 2969:/*EOF*/
    #####:    #####: 2970:/*EOF*/
        -:        -: 2971:/*EOF*/
        -:        -: 2972:/*EOF*/
        -:        -: 2973:/*EOF*/
        -:        -: 2974:/*EOF*/
        -:        -: 2975:/*EOF*/
    #####:    #####: 2976:/*EOF*/
        -:        -: 2977:/*EOF*/
        -:        -: 2978:/*EOF*/
    #####:    #####: 2979:/*EOF*/
    #####:    #####: 2980:/*EOF*/
        -:        -: 2981:/*EOF*/
    #####:    #####: 2982:/*EOF*/
        -:        -: 2983:/*EOF*/
        -:        -: 2984:/*EOF*/
        -:        -: 2985:/*EOF*/
        -:        -: 2986:/*EOF*/
        -:        -: 2987:/*EOF*/
        -:        -: 2988:/*EOF*/
        -:        -: 2989:/*EOF*/
    #####:    #####: 2990:/*EOF*/
        -:        -: 2991:/*EOF*/
    #####:    #####: 2992:/*EOF*/
    #####:    #####: 2993:/*EOF*/
    #####:    #####: 2994:/*EOF*/
    #####:    #####: 2995:/*EOF*/
        -:        -: 2996:/*EOF*/
    #####:    #####: 2997:/*EOF*/
        -:        -: 2998:/*EOF*/
        -:        -: 2999:/*EOF*/
        -:        -: 3000:/*EOF*/
        5:        5: 3001:/*EOF*/
        -:        -: 3002:/*EOF*/
        5:        5: 3003:/*EOF*/
    #####:    #####: 3004:/*EOF*/
        -:        -: 3005:/*EOF*/
        -:        -: 3006:/*EOF*/
        5:        5: 3007:/*EOF*/
        -:        -: 3008:/*EOF*/
       10:       10: 3009:/*EOF*/
        5:        5: 3010:/*EOF*/
        -:        -: 3011:/*EOF*/
        5:        5: 3012:/*EOF*/
        -:        -: 3013:/*EOF*/
        -:        -: 3014:/*EOF*/
        -:        -: 3015:/*EOF*/
        -:        -: 3016:/*EOF*/
        5:        5: 3017:/*EOF*/
        -:        -: 3018:/*EOF*/
        5:        5: 3019:/*EOF*/
        -:        -: 3020:/*EOF*/
        5:        5: 3021:/*EOF*/
        5:        5: 3022:/*EOF*/
        5:        5: 3023:/*EOF*/
        -:        -: 3024:/*EOF*/
        5:        5: 3025:/*EOF*/
    #####:    #####: 3026:/*EOF*/
        -:        -: 3027:/*EOF*/
        5:        5: 3028:/*EOF*/
        -:        -: 3029:/*EOF*/
        5:        5: 3030:/*EOF*/
        -:        -: 3031:/*EOF*/
    #####:    #####: 3032:/*EOF*/
    #####:    #####: 3033:/*EOF*/
        -:        -: 3034:/*EOF*/
    #####:    #####: 3035:/*EOF*/
    #####:    #####: 3036:/*EOF*/
        -:        -: 3037:/*EOF*/
    #####:    #####: 3038:/*EOF*/
    #####:    #####: 3039:/*EOF*/
        -:        -: 3040:/*EOF*/
    #####:    #####: 3041:/*EOF*/
        -:        -: 3042:/*EOF*/
        -:        -: 3043:/*EOF*/
    #####:    #####: 3044:/*EOF*/
        -:        -: 3045:/*EOF*/
        -:        -: 3046:/*EOF*/
    #####:    #####: 3047:/*EOF*/
        -:        -: 3048:/*EOF*/
        -:        -: 3049:/*EOF*/
        -:        -: 3050:/*EOF*/
       32:       32: 3051:/*EOF*/
        -:        -: 3052:/*EOF*/
        -:        -: 3053:/*EOF*/
       32:       32: 3054:/*EOF*/
        -:        -: 3055:/*EOF*/
       32:       32: 3056:/*EOF*/
       32:       32: 3057:/*EOF*/
       27:       27: 3058:/*EOF*/
        -:        -: 3059:/*EOF*/
       32:       32: 3060:/*EOF*/
        -:        -: 3061:/*EOF*/
    #####:    #####: 3062:/*EOF*/
    #####:    #####: 3063:/*EOF*/
    #####:    #####: 3064:/*EOF*/
        -:        -: 3065:/*EOF*/
        -:        -: 3066:/*EOF*/
    #####:    #####: 3067:/*EOF*/
    #####:    #####: 3068:/*EOF*/
    #####:    #####: 3069:/*EOF*/
    #####:    #####: 3070:/*EOF*/
    #####:    #####: 3071:/*EOF*/
    #####:    #####: 3072:/*EOF*/
        -:        -: 3073:/*EOF*/
        -:        -: 3074:/*EOF*/
        -:        -: 3075:/*EOF*/
    #####:    #####: 3076:/*EOF*/
    #####:    #####: 3077:/*EOF*/
    #####:    #####: 3078:/*EOF*/
        -:        -: 3079:/*EOF*/
        -:        -: 3080:/*EOF*/
        -:        -: 3081:/*EOF*/
        -:        -: 3082:/*EOF*/
    #####:    #####: 3083:/*EOF*/
    #####:    #####: 3084:/*EOF*/
    #####:    #####: 3085:/*EOF*/
    #####:    #####: 3086:/*EOF*/
    #####:    #####: 3087:/*EOF*/
    #####:    #####: 3088:/*EOF*/
        -:        -: 3089:/*EOF*/
        -:        -: 3090:/*EOF*/
        -:        -: 3091:/*EOF*/
        5:        5: 3092:/*EOF*/
        5:        5: 3093:/*EOF*/
        5:        5: 3094:/*EOF*/
        5:        5: 3095:/*EOF*/
        5:        5: 3096:/*EOF*/
        -:        -: 3097:/*EOF*/
        5:        5: 3098:/*EOF*/
        -:        -: 3099:/*EOF*/
       25:       25: 3100:/*EOF*/
       40:       40: 3101:/*EOF*/
       60:       60: 3102:/*EOF*/
        -:        -: 3103:/*EOF*/
        5:        5: 3104:/*EOF*/
        -:        -: 3105:/*EOF*/
        -:        -: 3106:/*EOF*/
        -:        -: 3107:/*EOF*/
    #####:    #####: 3108:/*EOF*/
        -:        -: 3109:/*EOF*/
    #####:    #####: 3110:/*EOF*/
    #####:    #####: 3111:/*EOF*/
    #####:    #####: 3112:/*EOF*/
    #####:    #####: 3113:/*EOF*/
    #####:    #####: 3114:/*EOF*/
        -:        -: 3115:/*EOF*/
    #####:    #####: 3116:/*EOF*/
    #####:    #####: 3117:/*EOF*/
        -:        -: 3118:/*EOF*/
    #####:    #####: 3119:/*EOF*/
        -:        -: 3120:/*EOF*/
    #####:    #####: 3121:/*EOF*/
    #####:    #####: 3122:/*EOF*/
    #####:    #####: 3123:/*EOF*/
        -:        -: 3124:/*EOF*/
        -:        -: 3125:/*EOF*/
    #####:    #####: 3126:/*EOF*/
        -:        -: 3127:/*EOF*/
        -:        -: 3128:/*EOF*/
        -:        -: 3129:/*EOF*/
        -:        -: 3130:/*EOF*/
        -:        -: 3131:/*EOF*/
        -:        -: 3132:/*EOF*/
        -:        -: 3133:/*EOF*/
        -:        -: 3134:/*EOF*/
        -:        -: 3135:/*EOF*/
        -:        -: 3136:/*EOF*/
    #####:    #####: 3137:/*EOF*/
    #####:    #####: 3138:/*EOF*/
    #####:    #####: 3139:/*EOF*/
        -:        -: 3140:/*EOF*/
        -:        -: 3141:/*EOF*/
    #####:    #####: 3142:/*EOF*/
    #####:    #####: 3143:/*EOF*/
        -:        -: 3144:/*EOF*/
    #####:    #####: 3145:/*EOF*/
    #####:    #####: 3146:/*EOF*/
        -:        -: 3147:/*EOF*/
    #####:    #####: 3148:/*EOF*/
    #####:    #####: 3149:/*EOF*/
        -:        -: 3150:/*EOF*/
    #####:    #####: 3151:/*EOF*/
        -:        -: 3152:/*EOF*/
        -:        -: 3153:/*EOF*/
        -:        -: 3154:/*EOF*/
        -:        -: 3155:/*EOF*/
        1:        1: 3156:/*EOF*/
        1:        1: 3157:/*EOF*/
        1:        1: 3158:/*EOF*/
        1:        1: 3159:/*EOF*/
        -:        -: 3160:/*EOF*/
        -:        -: 3161:/*EOF*/
        1:        1: 3162:/*EOF*/
    #####:    #####: 3163:/*EOF*/
        1:        1: 3164:/*EOF*/
    #####:    #####: 3165:/*EOF*/
        -:        -: 3166:/*EOF*/
        1:        1: 3167:/*EOF*/
        -:        -: 3168:/*EOF*/
        -:        -: 3169:/*EOF*/
        -:        -: 3170:/*EOF*/
        -:        -: 3171:/*EOF*/
    #####:    #####: 3172:/*EOF*/
    #####:    #####: 3173:/*EOF*/
        -:        -: 3174:/*EOF*/
        -:        -: 3175:/*EOF*/
        5:        5: 3176:/*EOF*/
        4:        4: 3177:/*EOF*/
        4:        4: 3178:/*EOF*/
        8:        8: 3179:/*EOF*/
       12:       12: 3180:/*EOF*/
        -:        -: 3181:/*EOF*/
        -:        -: 3182:/*EOF*/
        1:        1: 3183:/*EOF*/
    #####:    #####: 3184:/*EOF*/
        -:        -: 3185:/*EOF*/
    #####:    #####: 3186:/*EOF*/
    #####:    #####: 3187:/*EOF*/
        -:        -: 3188:/*EOF*/
        1:        1: 3189:/*EOF*/
        -:        -: 3190:/*EOF*/
        -:        -: 3191:/*EOF*/
        -:        -: 3192:/*EOF*/
        -:        -: 3193:/*EOF*/
        -:        -: 3194:/*EOF*/
        -:        -: 3195:/*EOF*/
        4:        4: 3196:/*EOF*/
        -:        -: 3197:/*EOF*/
        -:        -: 3198:/*EOF*/
        -:        -: 3199:/*EOF*/
    #####:    #####: 3200:/*EOF*/
        -:        -: 3201:/*EOF*/
    #####:    #####: 3202:/*EOF*/
        -:        -: 3203:/*EOF*/
    #####:    #####: 3204:/*EOF*/
    #####:    #####: 3205:/*EOF*/
        -:        -: 3206:/*EOF*/
    #####:    #####: 3207:/*EOF*/
        -:        -: 3208:/*EOF*/
        -:        -: 3209:/*EOF*/
        -:        -: 3210:/*EOF*/
        -:        -: 3211:/*EOF*/
    #####:    #####: 3212:/*EOF*/
        -:        -: 3213:/*EOF*/
        -:        -: 3214:/*EOF*/
    #####:    #####: 3215:/*EOF*/
        -:        -: 3216:/*EOF*/
    #####:    #####: 3217:/*EOF*/
    #####:    #####: 3218:/*EOF*/
    #####:    #####: 3219:/*EOF*/
    #####:    #####: 3220:/*EOF*/
    #####:    #####: 3221:/*EOF*/
    #####:    #####: 3222:/*EOF*/
        -:        -: 3223:/*EOF*/
        -:        -: 3224:/*EOF*/
        -:        -: 3225:/*EOF*/
        -:        -: 3226:/*EOF*/
    #####:    #####: 3227:/*EOF*/
        -:        -: 3228:/*EOF*/
        -:        -: 3229:/*EOF*/
        -:        -: 3230:/*EOF*/
        -:        -: 3231:/*EOF*/
        -:        -: 3232:/*EOF*/
        -:        -: 3233:/*EOF*/
        -:        -: 3234:/*EOF*/
    #####:    #####: 3235:/*EOF*/
        -:        -: 3236:/*EOF*/
        -:        -: 3237:/*EOF*/
    #####:    #####: 3238:/*EOF*/
        -:        -: 3239:/*EOF*/
        -:        -: 3240:/*EOF*/
        -:        -: 3241:/*EOF*/
        -:        -: 3242:/*EOF*/
    #####:    #####: 3243:/*EOF*/
        -:        -: 3244:/*EOF*/
    #####:    #####: 3245:/*EOF*/
    #####:    #####: 3246:/*EOF*/
    #####:    #####: 3247:/*EOF*/
    #####:    #####: 3248:/*EOF*/
        -:        -: 3249:/*EOF*/
    #####:    #####: 3250:/*EOF*/
        -:        -: 3251:/*EOF*/
        -:        -: 3252:/*EOF*/
        -:        -: 3253:/*EOF*/
        -:        -: 3254:/*EOF*/
    #####:    #####: 3255:/*EOF*/
    #####:    #####: 3256:/*EOF*/
        -:        -: 3257:/*EOF*/
        -:        -: 3258:/*EOF*/
    #####:    #####: 3259:/*EOF*/
        -:        -: 3260:/*EOF*/
    #####:    #####: 3261:/*EOF*/
        -:        -: 3262:/*EOF*/
        -:        -: 3263:/*EOF*/
    #####:    #####: 3264:/*EOF*/
        -:        -: 3265:/*EOF*/
        -:        -: 3266:/*EOF*/
        -:        -: 3267:/*EOF*/
        -:        -: 3268:/*EOF*/
    #####:    #####: 3269:/*EOF*/
        -:        -: 3270:/*EOF*/
    #####:    #####: 3271:/*EOF*/
        -:        -: 3272:/*EOF*/
    #####:    #####: 3273:/*EOF*/
    #####:    #####: 3274:/*EOF*/
    #####:    #####: 3275:/*EOF*/
        -:        -: 3276:/*EOF*/
    #####:    #####: 3277:/*EOF*/
        -:        -: 3278:/*EOF*/
        -:        -: 3279:/*EOF*/
        -:        -: 3280:/*EOF*/
    #####:    #####: 3281:/*EOF*/
    #####:    #####: 3282:/*EOF*/
        -:        -: 3283:/*EOF*/
    #####:    #####: 3284:/*EOF*/
        -:        -: 3285:/*EOF*/
    #####:    #####: 3286:/*EOF*/
    #####:    #####: 3287:/*EOF*/
    #####:    #####: 3288:/*EOF*/
    #####:    #####: 3289:/*EOF*/
    #####:    #####: 3290:/*EOF*/
        -:        -: 3291:/*EOF*/
    #####:    #####: 3292:/*EOF*/
        -:        -: 3293:/*EOF*/
        -:        -: 3294:/*EOF*/
        -:        -: 3295:/*EOF*/
        -:        -: 3296:/*EOF*/
        -:        -: 3297:/*EOF*/
        -:        -: 3298:/*EOF*/
        -:        -: 3299:/*EOF*/
        -:        -: 3300:/*EOF*/
        -:        -: 3301:/*EOF*/
        -:        -: 3302:/*EOF*/
        -:        -: 3303:/*EOF*/
        -:        -: 3304:/*EOF*/
        -:        -: 3305:/*EOF*/
        -:        -: 3306:/*EOF*/
        -:        -: 3307:/*EOF*/
        -:        -: 3308:/*EOF*/
    #####:    #####: 3309:/*EOF*/
    #####:    #####: 3310:/*EOF*/
        -:        -: 3311:/*EOF*/
        -:        -: 3312:/*EOF*/
    #####:    #####: 3313:/*EOF*/
    #####:    #####: 3314:/*EOF*/
        -:        -: 3315:/*EOF*/
        -:        -: 3316:/*EOF*/
        -:        -: 3317:/*EOF*/
        -:        -: 3318:/*EOF*/
    #####:    #####: 3319:/*EOF*/
        -:        -: 3320:/*EOF*/
    #####:    #####: 3321:/*EOF*/
        -:        -: 3322:/*EOF*/
        -:        -: 3323:/*EOF*/
        -:        -: 3324:/*EOF*/
        4:        4: 3325:/*EOF*/
        2:        2: 3326:/*EOF*/
        2:        2: 3327:/*EOF*/
        -:        -: 3328:/*EOF*/
        -:        -: 3329:/*EOF*/
        4:        4: 3330:/*EOF*/
        2:        2: 3331:/*EOF*/
        -:        -: 3332:/*EOF*/
        2:        2: 3333:/*EOF*/
        2:        2: 3334:/*EOF*/
        -:        -: 3335:/*EOF*/
        2:        2: 3336:/*EOF*/
        2:        2: 3337:/*EOF*/
        -:        -: 3338:/*EOF*/
        2:        2: 3339:/*EOF*/
        -:        -: 3340:/*EOF*/
        -:        -: 3341:/*EOF*/
    #####:    #####: 3342:/*EOF*/
        -:        -: 3343:/*EOF*/
        -:        -: 3344:/*EOF*/
        -:        -: 3345:/*EOF*/
        2:        2: 3346:/*EOF*/
        -:        -: 3347:/*EOF*/
        2:        2: 3348:/*EOF*/
        -:        -: 3349:/*EOF*/
        -:        -: 3350:/*EOF*/
       10:       10: 3351:/*EOF*/
        -:        -: 3352:/*EOF*/
        -:        -: 3353:/*EOF*/
        8:        8: 3354:/*EOF*/
        8:        8: 3355:/*EOF*/
        8:        8: 3356:/*EOF*/
        -:        -: 3357:/*EOF*/
        8:        8: 3358:/*EOF*/
    #####:    #####: 3359:/*EOF*/
    #####:    #####: 3360:/*EOF*/
    #####:    #####: 3361:/*EOF*/
        -:        -: 3362:/*EOF*/
        8:        8: 3363:/*EOF*/
        -:        -: 3364:/*EOF*/
        -:        -: 3365:/*EOF*/
        2:        2: 3366:/*EOF*/
        -:        -: 3367:/*EOF*/
        -:        -: 3368:/*EOF*/
        -:        -: 3369:/*EOF*/
       18:       18: 3370:/*EOF*/
       18:       18: 3371:/*EOF*/
        -:        -: 3372:/*EOF*/
       32:       32: 3373:/*EOF*/
        -:        -: 3374:/*EOF*/
        -:        -: 3375:/*EOF*/
    #####:    #####: 3376:/*EOF*/
        -:        -: 3377:/*EOF*/
        -:        -: 3378:/*EOF*/
    #####:    #####: 3379:/*EOF*/
    #####:    #####: 3380:/*EOF*/
        -:        -: 3381:/*EOF*/
    #####:    #####: 3382:/*EOF*/
    #####:    #####: 3383:/*EOF*/
    #####:    #####: 3384:/*EOF*/
        -:        -: 3385:/*EOF*/
    #####:    #####: 3386:/*EOF*/
        -:        -: 3387:/*EOF*/
    #####:    #####: 3388:/*EOF*/
    #####:    #####: 3389:/*EOF*/
    #####:    #####: 3390:/*EOF*/
        -:        -: 3391:/*EOF*/
        -:        -: 3392:/*EOF*/
        -:        -: 3393:/*EOF*/
    #####:    #####: 3394:/*EOF*/
    #####:    #####: 3395:/*EOF*/
    #####:    #####: 3396:/*EOF*/
    #####:    #####: 3397:/*EOF*/
    #####:    #####: 3398:/*EOF*/
    #####:    #####: 3399:/*EOF*/
    #####:    #####: 3400:/*EOF*/
        -:        -: 3401:/*EOF*/
        -:        -: 3402:/*EOF*/
        -:        -: 3403:/*EOF*/
        -:        -: 3404:/*EOF*/
    #####:    #####: 3405:/*EOF*/
        -:        -: 3406:/*EOF*/
    #####:    #####: 3407:/*EOF*/
        -:        -: 3408:/*EOF*/
    #####:    #####: 3409:/*EOF*/
    #####:    #####: 3410:/*EOF*/
        -:        -: 3411:/*EOF*/
        -:        -: 3412:/*EOF*/
    #####:    #####: 3413:/*EOF*/
        -:        -: 3414:/*EOF*/
        -:        -: 3415:/*EOF*/
        -:        -: 3416:/*EOF*/
        -:        -: 3417:/*EOF*/
    #####:    #####: 3418:/*EOF*/
    #####:    #####: 3419:/*EOF*/
    #####:    #####: 3420:/*EOF*/
    #####:    #####: 3421:/*EOF*/
        -:        -: 3422:/*EOF*/
    #####:    #####: 3423:/*EOF*/
        -:        -: 3424:/*EOF*/
        -:        -: 3425:/*EOF*/
        -:        -: 3426:/*EOF*/
    #####:    #####: 3427:/*EOF*/
    #####:    #####: 3428:/*EOF*/
        -:        -: 3429:/*EOF*/
    #####:    #####: 3430:/*EOF*/
    #####:    #####: 3431:/*EOF*/
        -:        -: 3432:/*EOF*/
    #####:    #####: 3433:/*EOF*/
    #####:    #####: 3434:/*EOF*/
        -:        -: 3435:/*EOF*/
    #####:    #####: 3436:/*EOF*/
    #####:    #####: 3437:/*EOF*/
        -:        -: 3438:/*EOF*/
    #####:    #####: 3439:/*EOF*/
    #####:    #####: 3440:/*EOF*/
        -:        -: 3441:/*EOF*/
    #####:    #####: 3442:/*EOF*/
    #####:    #####: 3443:/*EOF*/
        -:        -: 3444:/*EOF*/
    #####:    #####: 3445:/*EOF*/
    #####:    #####: 3446:/*EOF*/
        -:        -: 3447:/*EOF*/
    #####:    #####: 3448:/*EOF*/
    #####:    #####: 3449:/*EOF*/
        -:        -: 3450:/*EOF*/
    #####:    #####: 3451:/*EOF*/
    #####:    #####: 3452:/*EOF*/
        -:        -: 3453:/*EOF*/
    #####:    #####: 3454:/*EOF*/
    #####:    #####: 3455:/*EOF*/
        -:        -: 3456:/*EOF*/
        -:        -: 3457:/*EOF*/
    #####:    #####: 3458:/*EOF*/
        -:        -: 3459:/*EOF*/
    #####:    #####: 3460:/*EOF*/
        -:        -: 3461:/*EOF*/
        -:        -: 3462:/*EOF*/
    #####:    #####: 3463:/*EOF*/
    #####:    #####: 3464:/*EOF*/
    #####:    #####: 3465:/*EOF*/
    #####:    #####: 3466:/*EOF*/
        -:        -: 3467:/*EOF*/
    #####:    #####: 3468:/*EOF*/
    #####:    #####: 3469:/*EOF*/
    #####:    #####: 3470:/*EOF*/
    #####:    #####: 3471:/*EOF*/
        -:        -: 3472:/*EOF*/
        -:        -: 3473:/*EOF*/
        -:        -: 3474:/*EOF*/
    #####:    #####: 3475:/*EOF*/
    #####:    #####: 3476:/*EOF*/
    #####:    #####: 3477:/*EOF*/
        -:        -: 3478:/*EOF*/
        -:        -: 3479:/*EOF*/
        -:        -: 3480:/*EOF*/
    #####:    #####: 3481:/*EOF*/
        -:        -: 3482:/*EOF*/
        -:        -: 3483:/*EOF*/
    #####:    #####: 3484:/*EOF*/
        -:        -: 3485:/*EOF*/
        -:        -: 3486:/*EOF*/
    #####:    #####: 3487:/*EOF*/
        -:        -: 3488:/*EOF*/
        -:        -: 3489:/*EOF*/
    #####:    #####: 3490:/*EOF*/
        -:        -: 3491:/*EOF*/
        -:        -: 3492:/*EOF*/
        -:        -: 3493:/*EOF*/
        -:        -: 3494:/*EOF*/
        -:        -: 3495:/*EOF*/
        -:        -: 3496:/*EOF*/
        -:        -: 3497:/*EOF*/
    #####:    #####: 3498:/*EOF*/
    #####:    #####: 3499:/*EOF*/
    #####:    #####: 3500:/*EOF*/
    #####:    #####: 3501:/*EOF*/
    #####:    #####: 3502:/*EOF*/
        -:        -: 3503:/*EOF*/
    #####:    #####: 3504:/*EOF*/
    #####:    #####: 3505:/*EOF*/
        -:        -: 3506:/*EOF*/
    #####:    #####: 3507:/*EOF*/
    #####:    #####: 3508:/*EOF*/
    #####:    #####: 3509:/*EOF*/
    #####:    #####: 3510:/*EOF*/
        -:        -: 3511:/*EOF*/
        -:        -: 3512:/*EOF*/
    #####:    #####: 3513:/*EOF*/
        -:        -: 3514:/*EOF*/
        -:        -: 3515:/*EOF*/
        -:        -: 3516:/*EOF*/
        -:        -: 3517:/*EOF*/
        -:        -: 3518:/*EOF*/
        -:        -: 3519:/*EOF*/
    #####:    #####: 3520:/*EOF*/
    #####:    #####: 3521:/*EOF*/
    #####:    #####: 3522:/*EOF*/
        -:        -: 3523:/*EOF*/
        -:        -: 3524:/*EOF*/
        -:        -: 3525:/*EOF*/
        -:        -: 3526:/*EOF*/
        -:        -: 3527:/*EOF*/
    #####:    #####: 3528:/*EOF*/
    #####:    #####: 3529:/*EOF*/
        -:        -: 3530:/*EOF*/
    #####:    #####: 3531:/*EOF*/
    #####:    #####: 3532:/*EOF*/
    #####:    #####: 3533:/*EOF*/
    #####:    #####: 3534:/*EOF*/
    #####:    #####: 3535:/*EOF*/
        -:        -: 3536:/*EOF*/
    #####:    #####: 3537:/*EOF*/
    #####:    #####: 3538:/*EOF*/
    #####:    #####: 3539:/*EOF*/
    #####:    #####: 3540:/*EOF*/
        -:        -: 3541:/*EOF*/
        -:        -: 3542:/*EOF*/
    #####:    #####: 3543:/*EOF*/
    #####:    #####: 3544:/*EOF*/
        -:        -: 3545:/*EOF*/
    #####:    #####: 3546:/*EOF*/
        -:        -: 3547:/*EOF*/
        -:        -: 3548:/*EOF*/
        -:        -: 3549:/*EOF*/
        -:        -: 3550:/*EOF*/
    #####:    #####: 3551:/*EOF*/
        -:        -: 3552:/*EOF*/
        -:        -: 3553:/*EOF*/
    #####:    #####: 3554:/*EOF*/
        -:        -: 3555:/*EOF*/
        -:        -: 3556:/*EOF*/
        -:        -: 3557:/*EOF*/
    #####:    #####: 3558:/*EOF*/
    #####:    #####: 3559:/*EOF*/
        -:        -: 3560:/*EOF*/
    #####:    #####: 3561:/*EOF*/
        -:        -: 3562:/*EOF*/
        -:        -: 3563:/*EOF*/
       18:       18: 3564:/*EOF*/
        -:        -: 3565:/*EOF*/
       18:       18: 3566:/*EOF*/
       18:       18: 3567:/*EOF*/
       18:       18: 3568:/*EOF*/
        -:        -: 3569:/*EOF*/
       18:       18: 3570:/*EOF*/
        -:        -: 3571:/*EOF*/
        -:        -: 3572:/*EOF*/
        -:        -: 3573:/*EOF*/
        -:        -: 3574:/*EOF*/
        -:        -: 3575:/*EOF*/
        -:        -: 3576:/*EOF*/
        -:        -: 3577:/*EOF*/
        -:        -: 3578:/*EOF*/
        -:        -: 3579:/*EOF*/
        -:        -: 3580:/*EOF*/
        -:        -: 3581:/*EOF*/
    #####:    #####: 3582:/*EOF*/
    #####:    #####: 3583:/*EOF*/
    #####:    #####: 3584:/*EOF*/
        -:        -: 3585:/*EOF*/
        -:        -: 3586:/*EOF*/
    #####:    #####: 3587:/*EOF*/
        -:        -: 3588:/*EOF*/
        -:        -: 3589:/*EOF*/
    #####:    #####: 3590:/*EOF*/
    #####:    #####: 3591:/*EOF*/
    #####:    #####: 3592:/*EOF*/
    #####:    #####: 3593:/*EOF*/
    #####:    #####: 3594:/*EOF*/
    #####:    #####: 3595:/*EOF*/
    #####:    #####: 3596:/*EOF*/
    #####:    #####: 3597:/*EOF*/
        -:        -: 3598:/*EOF*/
    #####:    #####: 3599:/*EOF*/
        -:        -: 3600:/*EOF*/
        -:        -: 3601:/*EOF*/
    #####:    #####: 3602:/*EOF*/
    #####:    #####: 3603:/*EOF*/
        -:        -: 3604:/*EOF*/
    #####:    #####: 3605:/*EOF*/
        -:        -: 3606:/*EOF*/
    #####:    #####: 3607:/*EOF*/
        -:        -: 3608:/*EOF*/
        -:        -: 3609:/*EOF*/
        -:        -: 3610:/*EOF*/
    #####:    #####: 3611:/*EOF*/
        -:        -: 3612:/*EOF*/
        -:        -: 3613:/*EOF*/
    #####:    #####: 3614:/*EOF*/
    #####:    #####: 3615:/*EOF*/
        -:        -: 3616:/*EOF*/
        -:        -: 3617:/*EOF*/
        -:        -: 3618:/*EOF*/
        -:        -: 3619:/*EOF*/
        -:        -: 3620:/*EOF*/
        -:        -: 3621:/*EOF*/
        -:        -: 3622:/*EOF*/
        -:        -: 3623:/*EOF*/
        -:        -: 3624:/*EOF*/
        -:        -: 3625:/*EOF*/
        -:        -: 3626:/*EOF*/
        -:        -: 3627:/*EOF*/
        -:        -: 3628:/*EOF*/
        -:        -: 3629:/*EOF*/
    #####:    #####: 3630:/*EOF*/
    #####:    #####: 3631:/*EOF*/
    #####:    #####: 3632:/*EOF*/
        -:        -: 3633:/*EOF*/
        -:        -: 3634:/*EOF*/
    #####:    #####: 3635:/*EOF*/
    #####:    #####: 3636:/*EOF*/
    #####:    #####: 3637:/*EOF*/
        -:        -: 3638:/*EOF*/
        -:        -: 3639:/*EOF*/
    #####:    #####: 3640:/*EOF*/
    #####:    #####: 3641:/*EOF*/
    #####:    #####: 3642:/*EOF*/
    #####:    #####: 3643:/*EOF*/
        -:        -: 3644:/*EOF*/
        -:        -: 3645:/*EOF*/
    #####:    #####: 3646:/*EOF*/
        -:        -: 3647:/*EOF*/
    #####:    #####: 3648:/*EOF*/
    #####:    #####: 3649:/*EOF*/
    #####:    #####: 3650:/*EOF*/
    #####:    #####: 3651:/*EOF*/
    #####:    #####: 3652:/*EOF*/
    #####:    #####: 3653:/*EOF*/
    #####:    #####: 3654:/*EOF*/
    #####:    #####: 3655:/*EOF*/
        -:        -: 3656:/*EOF*/
        -:        -: 3657:/*EOF*/
    #####:    #####: 3658:/*EOF*/
    #####:    #####: 3659:/*EOF*/
        -:        -: 3660:/*EOF*/
    #####:    #####: 3661:/*EOF*/
    #####:    #####: 3662:/*EOF*/
    #####:    #####: 3663:/*EOF*/
        -:        -: 3664:/*EOF*/
        -:        -: 3665:/*EOF*/
    #####:    #####: 3666:/*EOF*/
    #####:    #####: 3667:/*EOF*/
    #####:    #####: 3668:/*EOF*/
        -:        -: 3669:/*EOF*/
        -:        -: 3670:/*EOF*/
    #####:    #####: 3671:/*EOF*/
    #####:    #####: 3672:/*EOF*/
    #####:    #####: 3673:/*EOF*/
    #####:    #####: 3674:/*EOF*/
        -:        -: 3675:/*EOF*/
        -:        -: 3676:/*EOF*/
        -:        -: 3677:/*EOF*/
        -:        -: 3678:/*EOF*/
        -:        -: 3679:/*EOF*/
        -:        -: 3680:/*EOF*/
    #####:    #####: 3681:/*EOF*/
    #####:    #####: 3682:/*EOF*/
    #####:    #####: 3683:/*EOF*/
    #####:    #####: 3684:/*EOF*/
    #####:    #####: 3685:/*EOF*/
        -:        -: 3686:/*EOF*/
        -:        -: 3687:/*EOF*/
        -:        -: 3688:/*EOF*/
        -:        -: 3689:/*EOF*/
        -:        -: 3690:/*EOF*/
        -:        -: 3691:/*EOF*/
        -:        -: 3692:/*EOF*/
        -:        -: 3693:/*EOF*/
        -:        -: 3694:/*EOF*/
        -:        -: 3695:/*EOF*/
        -:        -: 3696:/*EOF*/
        -:        -: 3697:/*EOF*/
        -:        -: 3698:/*EOF*/
        -:        -: 3699:/*EOF*/
        -:        -: 3700:/*EOF*/
        -:        -: 3701:/*EOF*/
        -:        -: 3702:/*EOF*/
        -:        -: 3703:/*EOF*/
        -:        -: 3704:/*EOF*/
        -:        -: 3705:/*EOF*/
        -:        -: 3706:/*EOF*/
        -:        -: 3707:/*EOF*/
        -:        -: 3708:/*EOF*/
    #####:    #####: 3709:/*EOF*/
        -:        -: 3710:/*EOF*/
        -:        -: 3711:/*EOF*/
        -:        -: 3712:/*EOF*/
    #####:    #####: 3713:/*EOF*/
        -:        -: 3714:/*EOF*/
    #####:    #####: 3715:/*EOF*/
    #####:    #####: 3716:/*EOF*/
    #####:    #####: 3717:/*EOF*/
        -:        -: 3718:/*EOF*/
        -:        -: 3719:/*EOF*/
        -:        -: 3720:/*EOF*/
        -:        -: 3721:/*EOF*/
    #####:    #####: 3722:/*EOF*/
    #####:    #####: 3723:/*EOF*/
        -:        -: 3724:/*EOF*/
        -:        -: 3725:/*EOF*/
    #####:    #####: 3726:/*EOF*/
    #####:    #####: 3727:/*EOF*/
        -:        -: 3728:/*EOF*/
        -:        -: 3729:/*EOF*/
        -:        -: 3730:/*EOF*/
        -:        -: 3731:/*EOF*/
        -:        -: 3732:/*EOF*/
    #####:    #####: 3733:/*EOF*/
    #####:    #####: 3734:/*EOF*/
        -:        -: 3735:/*EOF*/
        -:        -: 3736:/*EOF*/
        -:        -: 3737:/*EOF*/
        -:        -: 3738:/*EOF*/
        -:        -: 3739:/*EOF*/
    #####:    #####: 3740:/*EOF*/
    #####:    #####: 3741:/*EOF*/
        -:        -: 3742:/*EOF*/
        -:        -: 3743:/*EOF*/
    #####:    #####: 3744:/*EOF*/
    #####:    #####: 3745:/*EOF*/
    #####:    #####: 3746:/*EOF*/
    #####:    #####: 3747:/*EOF*/
    #####:    #####: 3748:/*EOF*/
    #####:    #####: 3749:/*EOF*/
    #####:    #####: 3750:/*EOF*/
    #####:    #####: 3751:/*EOF*/
    #####:    #####: 3752:/*EOF*/
    #####:    #####: 3753:/*EOF*/
    #####:    #####: 3754:/*EOF*/
        -:        -: 3755:/*EOF*/
    #####:    #####: 3756:/*EOF*/
    #####:    #####: 3757:/*EOF*/
        -:        -: 3758:/*EOF*/
        -:        -: 3759:/*EOF*/
        -:        -: 3760:/*EOF*/
    #####:    #####: 3761:/*EOF*/
        -:        -: 3762:/*EOF*/
        -:        -: 3763:/*EOF*/
        -:        -: 3764:/*EOF*/
        -:        -: 3765:/*EOF*/
    #####:    #####: 3766:/*EOF*/
    #####:    #####: 3767:/*EOF*/
        -:        -: 3768:/*EOF*/
        -:        -: 3769:/*EOF*/
        -:        -: 3770:/*EOF*/
       18:       18: 3771:/*EOF*/
        -:        -: 3772:/*EOF*/
       18:       18: 3773:/*EOF*/
        -:        -: 3774:/*EOF*/
       18:       18: 3775:/*EOF*/
       18:       18: 3776:/*EOF*/
        -:        -: 3777:/*EOF*/
       18:       18: 3778:/*EOF*/
       18:       18: 3779:/*EOF*/
        -:        -: 3780:/*EOF*/
       44:       44: 3781:/*EOF*/
       26:       26: 3782:/*EOF*/
        -:        -: 3783:/*EOF*/
        -:        -: 3784:/*EOF*/
        -:        -: 3785:/*EOF*/
    #####:    #####: 3786:/*EOF*/
        -:        -: 3787:/*EOF*/
        -:        -: 3788:/*EOF*/
        -:        -: 3789:/*EOF*/
        -:        -: 3790:/*EOF*/
        -:        -: 3791:/*EOF*/
        -:        -: 3792:/*EOF*/
    #####:    #####: 3793:/*EOF*/
    #####:    #####: 3794:/*EOF*/
    #####:    #####: 3795:/*EOF*/
    #####:    #####: 3796:/*EOF*/
        -:        -: 3797:/*EOF*/
        -:        -: 3798:/*EOF*/
    #####:    #####: 3799:/*EOF*/
        -:        -: 3800:/*EOF*/
    #####:    #####: 3801:/*EOF*/
    #####:    #####: 3802:/*EOF*/
    #####:    #####: 3803:/*EOF*/
    #####:    #####: 3804:/*EOF*/
    #####:    #####: 3805:/*EOF*/
        -:        -: 3806:/*EOF*/
        -:        -: 3807:/*EOF*/
        -:        -: 3808:/*EOF*/
    #####:    #####: 3809:/*EOF*/
        -:        -: 3810:/*EOF*/
        -:        -: 3811:/*EOF*/
        -:        -: 3812:/*EOF*/
        -:        -: 3813:/*EOF*/
    #####:    #####: 3814:/*EOF*/
    #####:    #####: 3815:/*EOF*/
    #####:    #####: 3816:/*EOF*/
    #####:    #####: 3817:/*EOF*/
    #####:    #####: 3818:/*EOF*/
    #####:    #####: 3819:/*EOF*/
    #####:    #####: 3820:/*EOF*/
        -:        -: 3821:/*EOF*/
        -:        -: 3822:/*EOF*/
        -:        -: 3823:/*EOF*/
        -:        -: 3824:/*EOF*/
       18:       18: 3825:/*EOF*/
        -:        -: 3826:/*EOF*/
        -:        -: 3827:/*EOF*/
        -:        -: 3828:/*EOF*/
    #####:    #####: 3829:/*EOF*/
    #####:    #####: 3830:/*EOF*/
        -:        -: 3831:/*EOF*/
    #####:    #####: 3832:/*EOF*/
    #####:    #####: 3833:/*EOF*/
    #####:    #####: 3834:/*EOF*/
    #####:    #####: 3835:/*EOF*/
    #####:    #####: 3836:/*EOF*/
        -:        -: 3837:/*EOF*/
        -:        -: 3838:/*EOF*/
        -:        -: 3839:/*EOF*/
        -:        -: 3840:/*EOF*/
        -:        -: 3841:/*EOF*/
    #####:    #####: 3842:/*EOF*/
    #####:    #####: 3843:/*EOF*/
    #####:    #####: 3844:/*EOF*/
    #####:    #####: 3845:/*EOF*/
        -:        -: 3846:/*EOF*/
        -:        -: 3847:/*EOF*/
        -:        -: 3848:/*EOF*/
        -:        -: 3849:/*EOF*/
    #####:    #####: 3850:/*EOF*/
    #####:    #####: 3851:/*EOF*/
    #####:    #####: 3852:/*EOF*/
        -:        -: 3853:/*EOF*/
        -:        -: 3854:/*EOF*/
    #####:    #####: 3855:/*EOF*/
    #####:    #####: 3856:/*EOF*/
        -:        -: 3857:/*EOF*/
    #####:    #####: 3858:/*EOF*/
        -:        -: 3859:/*EOF*/
    #####:    #####: 3860:/*EOF*/
    #####:    #####: 3861:/*EOF*/
    #####:    #####: 3862:/*EOF*/
        -:        -: 3863:/*EOF*/
        -:        -: 3864:/*EOF*/
        -:        -: 3865:/*EOF*/
        -:        -: 3866:/*EOF*/
        -:        -: 3867:/*EOF*/
        -:        -: 3868:/*EOF*/
        -:        -: 3869:/*EOF*/
        -:        -: 3870:/*EOF*/
        -:        -: 3871:/*EOF*/
    #####:    #####: 3872:/*EOF*/
    #####:    #####: 3873:/*EOF*/
    #####:    #####: 3874:/*EOF*/
    #####:    #####: 3875:/*EOF*/
        -:        -: 3876:/*EOF*/
    #####:    #####: 3877:/*EOF*/
    #####:    #####: 3878:/*EOF*/
        -:        -: 3879:/*EOF*/
    #####:    #####: 3880:/*EOF*/
        -:        -: 3881:/*EOF*/
        -:        -: 3882:/*EOF*/
    #####:    #####: 3883:/*EOF*/
        -:        -: 3884:/*EOF*/
    #####:    #####: 3885:/*EOF*/
        -:        -: 3886:/*EOF*/
        -:        -: 3887:/*EOF*/
        -:        -: 3888:/*EOF*/
    #####:    #####: 3889:/*EOF*/
        -:        -: 3890:/*EOF*/
    #####:    #####: 3891:/*EOF*/
    #####:    #####: 3892:/*EOF*/
        -:        -: 3893:/*EOF*/
    #####:    #####: 3894:/*EOF*/
        -:        -: 3895:/*EOF*/
        -:        -: 3896:/*EOF*/
    #####:    #####: 3897:/*EOF*/
        -:        -: 3898:/*EOF*/
        -:        -: 3899:/*EOF*/
        -:        -: 3900:/*EOF*/
    #####:    #####: 3901:/*EOF*/
        -:        -: 3902:/*EOF*/
        -:        -: 3903:/*EOF*/
    #####:    #####: 3904:/*EOF*/
        -:        -: 3905:/*EOF*/
    #####:    #####: 3906:/*EOF*/
    #####:    #####: 3907:/*EOF*/
    #####:    #####: 3908:/*EOF*/
    #####:    #####: 3909:/*EOF*/
    #####:    #####: 3910:/*EOF*/
    #####:    #####: 3911:/*EOF*/
        -:        -: 3912:/*EOF*/
    #####:    #####: 3913:/*EOF*/
    #####:    #####: 3914:/*EOF*/
    #####:    #####: 3915:/*EOF*/
        -:        -: 3916:/*EOF*/
        -:        -: 3917:/*EOF*/
        -:        -: 3918:/*EOF*/
        -:        -: 3919:/*EOF*/
    #####:    #####: 3920:/*EOF*/
    #####:    #####: 3921:/*EOF*/
    #####:    #####: 3922:/*EOF*/
        -:        -: 3923:/*EOF*/
        -:        -: 3924:/*EOF*/
    #####:    #####: 3925:/*EOF*/
    #####:    #####: 3926:/*EOF*/
    #####:    #####: 3927:/*EOF*/
    #####:    #####: 3928:/*EOF*/
        -:        -: 3929:/*EOF*/
    #####:    #####: 3930:/*EOF*/
        -:        -: 3931:/*EOF*/
        -:        -: 3932:/*EOF*/
        -:        -: 3933:/*EOF*/
    #####:    #####: 3934:/*EOF*/
    #####:    #####: 3935:/*EOF*/
        -:        -: 3936:/*EOF*/
    #####:    #####: 3937:/*EOF*/
        -:        -: 3938:/*EOF*/
        -:        -: 3939:/*EOF*/
        -:        -: 3940:/*EOF*/
    #####:    #####: 3941:/*EOF*/
        -:        -: 3942:/*EOF*/
    #####:    #####: 3943:/*EOF*/
    #####:    #####: 3944:/*EOF*/
        -:        -: 3945:/*EOF*/
        -:        -: 3946:/*EOF*/
    #####:    #####: 3947:/*EOF*/
        -:        -: 3948:/*EOF*/
    #####:    #####: 3949:/*EOF*/
    #####:    #####: 3950:/*EOF*/
    #####:    #####: 3951:/*EOF*/
    #####:    #####: 3952:/*EOF*/
    #####:    #####: 3953:/*EOF*/
    #####:    #####: 3954:/*EOF*/
        -:        -: 3955:/*EOF*/
    #####:    #####: 3956:/*EOF*/
    #####:    #####: 3957:/*EOF*/
    #####:    #####: 3958:/*EOF*/
        -:        -: 3959:/*EOF*/
    #####:    #####: 3960:/*EOF*/
    #####:    #####: 3961:/*EOF*/
    #####:    #####: 3962:/*EOF*/
        -:        -: 3963:/*EOF*/
        -:        -: 3964:/*EOF*/
        -:        -: 3965:/*EOF*/
    #####:    #####: 3966:/*EOF*/
        -:        -: 3967:/*EOF*/
        -:        -: 3968:/*EOF*/
    #####:    #####: 3969:/*EOF*/
        -:        -: 3970:/*EOF*/
        -:        -: 3971:/*EOF*/
        -:        -: 3972:/*EOF*/
        -:        -: 3973:/*EOF*/
        -:        -: 3974:/*EOF*/
        -:        -: 3975:/*EOF*/
        -:        -: 3976:/*EOF*/
    #####:    #####: 3977:/*EOF*/
    #####:    #####: 3978:/*EOF*/
    #####:    #####: 3979:/*EOF*/
    #####:    #####: 3980:/*EOF*/
    #####:    #####: 3981:/*EOF*/
        -:        -: 3982:/*EOF*/
    #####:    #####: 3983:/*EOF*/
    #####:    #####: 3984:/*EOF*/
    #####:    #####: 3985:/*EOF*/
    #####:    #####: 3986:/*EOF*/
    #####:    #####: 3987:/*EOF*/
    #####:    #####: 3988:/*EOF*/
        -:        -: 3989:/*EOF*/
        -:        -: 3990:/*EOF*/
    #####:    #####: 3991:/*EOF*/
        -:        -: 3992:/*EOF*/
        -:        -: 3993:/*EOF*/
        -:        -: 3994:/*EOF*/
        -:        -: 3995:/*EOF*/
        -:        -: 3996:/*EOF*/
        -:        -: 3997:/*EOF*/
    #####:    #####: 3998:/*EOF*/
    #####:    #####: 3999:/*EOF*/
    #####:    #####: 4000:/*EOF*/
        -:        -: 4001:/*EOF*/
        -:        -: 4002:/*EOF*/
        -:        -: 4003:/*EOF*/
        -:        -: 4004:/*EOF*/
        -:        -: 4005:/*EOF*/
    #####:    #####: 4006:/*EOF*/
    #####:    #####: 4007:/*EOF*/
        -:        -: 4008:/*EOF*/
    #####:    #####: 4009:/*EOF*/
    #####:    #####: 4010:/*EOF*/
    #####:    #####: 4011:/*EOF*/
    #####:    #####: 4012:/*EOF*/
    #####:    #####: 4013:/*EOF*/
        -:        -: 4014:/*EOF*/
    #####:    #####: 4015:/*EOF*/
    #####:    #####: 4016:/*EOF*/
    #####:    #####: 4017:/*EOF*/
    #####:    #####: 4018:/*EOF*/
        -:        -: 4019:/*EOF*/
        -:        -: 4020:/*EOF*/
        -:        -: 4021:/*EOF*/
    #####:    #####: 4022:/*EOF*/
    #####:    #####: 4023:/*EOF*/
        -:        -: 4024:/*EOF*/
    #####:    #####: 4025:/*EOF*/
        -:        -: 4026:/*EOF*/
        -:        -: 4027:/*EOF*/
        -:        -: 4028:/*EOF*/
        -:        -: 4029:/*EOF*/
    #####:    #####: 4030:/*EOF*/
        -:        -: 4031:/*EOF*/
    #####:    #####: 4032:/*EOF*/
        -:        -: 4033:/*EOF*/
        -:        -: 4034:/*EOF*/
        -:        -: 4035:/*EOF*/
    #####:    #####: 4036:/*EOF*/
        -:        -: 4037:/*EOF*/
    #####:    #####: 4038:/*EOF*/
    #####:    #####: 4039:/*EOF*/
    #####:    #####: 4040:/*EOF*/
    #####:    #####: 4041:/*EOF*/
        -:        -: 4042:/*EOF*/
    #####:    #####: 4043:/*EOF*/
    #####:    #####: 4044:/*EOF*/
    #####:    #####: 4045:/*EOF*/
    #####:    #####: 4046:/*EOF*/
    #####:    #####: 4047:/*EOF*/
        -:        -: 4048:/*EOF*/
    #####:    #####: 4049:/*EOF*/
    #####:    #####: 4050:/*EOF*/
        -:        -: 4051:/*EOF*/
    #####:    #####: 4052:/*EOF*/
    #####:    #####: 4053:/*EOF*/
    #####:    #####: 4054:/*EOF*/
        -:        -: 4055:/*EOF*/
        -:        -: 4056:/*EOF*/
    #####:    #####: 4057:/*EOF*/
    #####:    #####: 4058:/*EOF*/
    #####:    #####: 4059:/*EOF*/
        -:        -: 4060:/*EOF*/
    #####:    #####: 4061:/*EOF*/
        -:        -: 4062:/*EOF*/
        -:        -: 4063:/*EOF*/
        -:        -: 4064:/*EOF*/
    #####:    #####: 4065:/*EOF*/
    #####:    #####: 4066:/*EOF*/
        -:        -: 4067:/*EOF*/
    #####:    #####: 4068:/*EOF*/
    #####:    #####: 4069:/*EOF*/
        -:        -: 4070:/*EOF*/
    #####:    #####: 4071:/*EOF*/
    #####:    #####: 4072:/*EOF*/
        -:        -: 4073:/*EOF*/
    #####:    #####: 4074:/*EOF*/
    #####:    #####: 4075:/*EOF*/
        -:        -: 4076:/*EOF*/
    #####:    #####: 4077:/*EOF*/
    #####:    #####: 4078:/*EOF*/
        -:        -: 4079:/*EOF*/
    #####:    #####: 4080:/*EOF*/
    #####:    #####: 4081:/*EOF*/
        -:        -: 4082:/*EOF*/
    #####:    #####: 4083:/*EOF*/
    #####:    #####: 4084:/*EOF*/
        -:        -: 4085:/*EOF*/
    #####:    #####: 4086:/*EOF*/
    #####:    #####: 4087:/*EOF*/
        -:        -: 4088:/*EOF*/
    #####:    #####: 4089:/*EOF*/
    #####:    #####: 4090:/*EOF*/
        -:        -: 4091:/*EOF*/
    #####:    #####: 4092:/*EOF*/
    #####:    #####: 4093:/*EOF*/
        -:        -: 4094:/*EOF*/
        -:        -: 4095:/*EOF*/
    #####:    #####: 4096:/*EOF*/
    #####:    #####: 4097:/*EOF*/
        -:        -: 4098:/*EOF*/
        -:        -: 4099:/*EOF*/
        -:        -: 4100:/*EOF*/
        -:        -: 4101:/*EOF*/
        -:        -: 4102:/*EOF*/
        -:        -: 4103:/*EOF*/
        -:        -: 4104:/*EOF*/
        -:        -: 4105:/*EOF*/
        -:        -: 4106:/*EOF*/
    #####:    #####: 4107:/*EOF*/
    #####:    #####: 4108:/*EOF*/
    #####:    #####: 4109:/*EOF*/
        -:        -: 4110:/*EOF*/
        -:        -: 4111:/*EOF*/
    #####:    #####: 4112:/*EOF*/
        -:        -: 4113:/*EOF*/
    #####:    #####: 4114:/*EOF*/
    #####:    #####: 4115:/*EOF*/
    #####:    #####: 4116:/*EOF*/
    #####:    #####: 4117:/*EOF*/
    #####:    #####: 4118:/*EOF*/
    #####:    #####: 4119:/*EOF*/
        -:        -: 4120:/*EOF*/
    #####:    #####: 4121:/*EOF*/
    #####:    #####: 4122:/*EOF*/
    #####:    #####: 4123:/*EOF*/
        -:        -: 4124:/*EOF*/
        -:        -: 4125:/*EOF*/
        -:        -: 4126:/*EOF*/
    #####:    #####: 4127:/*EOF*/
    #####:    #####: 4128:/*EOF*/
    #####:    #####: 4129:/*EOF*/
    #####:    #####: 4130:/*EOF*/
    #####:    #####: 4131:/*EOF*/
    #####:    #####: 4132:/*EOF*/
    #####:    #####: 4133:/*EOF*/
    #####:    #####: 4134:/*EOF*/
    #####:    #####: 4135:/*EOF*/
        -:        -: 4136:/*EOF*/
    #####:    #####: 4137:/*EOF*/
    #####:    #####: 4138:/*EOF*/
        -:        -: 4139:/*EOF*/
        -:        -: 4140:/*EOF*/
        -:        -: 4141:/*EOF*/
    #####:    #####: 4142:/*EOF*/
        -:        -: 4143:/*EOF*/
       18:       18: 4144:/*EOF*/
        -:        -: 4145:/*EOF*/
        -:        -: 4146:/*EOF*/
    #####:    #####: 4147:/*EOF*/
        -:        -: 4148:/*EOF*/
        -:        -: 4149:/*EOF*/
    #####:    #####: 4150:/*EOF*/
    #####:    #####: 4151:/*EOF*/
        -:        -: 4152:/*EOF*/
    #####:    #####: 4153:/*EOF*/
    #####:    #####: 4154:/*EOF*/
    #####:    #####: 4155:/*EOF*/
        -:        -: 4156:/*EOF*/
    #####:    #####: 4157:/*EOF*/
    #####:    #####: 4158:/*EOF*/
    #####:    #####: 4159:/*EOF*/
    #####:    #####: 4160:/*EOF*/
    #####:    #####: 4161:/*EOF*/
    #####:    #####: 4162:/*EOF*/
    #####:    #####: 4163:/*EOF*/
        -:        -: 4164:/*EOF*/
    #####:    #####: 4165:/*EOF*/
    #####:    #####: 4166:/*EOF*/
    #####:    #####: 4167:/*EOF*/
        -:        -: 4168:/*EOF*/
        -:        -: 4169:/*EOF*/
        -:        -: 4170:/*EOF*/
        -:        -: 4171:/*EOF*/
    #####:    #####: 4172:/*EOF*/
    #####:    #####: 4173:/*EOF*/
    #####:    #####: 4174:/*EOF*/
        -:        -: 4175:/*EOF*/
        -:        -: 4176:/*EOF*/
    #####:    #####: 4177:/*EOF*/
    #####:    #####: 4178:/*EOF*/
    #####:    #####: 4179:/*EOF*/
    #####:    #####: 4180:/*EOF*/
    #####:    #####: 4181:/*EOF*/
        -:        -: 4182:/*EOF*/
        -:        -: 4183:/*EOF*/
        -:        -: 4184:/*EOF*/
        -:        -: 4185:/*EOF*/
        -:        -: 4186:/*EOF*/
        -:        -: 4187:/*EOF*/
        -:        -: 4188:/*EOF*/
    #####:    #####: 4189:/*EOF*/
    #####:    #####: 4190:/*EOF*/
    #####:    #####: 4191:/*EOF*/
    #####:    #####: 4192:/*EOF*/
        -:        -: 4193:/*EOF*/
        -:        -: 4194:/*EOF*/
    #####:    #####: 4195:/*EOF*/
        -:        -: 4196:/*EOF*/
        -:        -: 4197:/*EOF*/
    #####:    #####: 4198:/*EOF*/
    #####:    #####: 4199:/*EOF*/
    #####:    #####: 4200:/*EOF*/
        -:        -: 4201:/*EOF*/
    #####:    #####: 4202:/*EOF*/
    #####:    #####: 4203:/*EOF*/
    #####:    #####: 4204:/*EOF*/
    #####:    #####: 4205:/*EOF*/
    #####:    #####: 4206:/*EOF*/
    #####:    #####: 4207:/*EOF*/
        -:        -: 4208:/*EOF*/
        -:        -: 4209:/*EOF*/
    #####:    #####: 4210:/*EOF*/
    #####:    #####: 4211:/*EOF*/
    #####:    #####: 4212:/*EOF*/
        -:        -: 4213:/*EOF*/
    #####:    #####: 4214:/*EOF*/
    #####:    #####: 4215:/*EOF*/
    #####:    #####: 4216:/*EOF*/
    #####:    #####: 4217:/*EOF*/
        -:        -: 4218:/*EOF*/
        -:        -: 4219:/*EOF*/
        -:        -: 4220:/*EOF*/
        -:        -: 4221:/*EOF*/
        -:        -: 4222:/*EOF*/
        -:        -: 4223:/*EOF*/
        -:        -: 4224:/*EOF*/
        -:        -: 4225:/*EOF*/
    #####:    #####: 4226:/*EOF*/
    #####:    #####: 4227:/*EOF*/
    #####:    #####: 4228:/*EOF*/
    #####:    #####: 4229:/*EOF*/
        -:        -: 4230:/*EOF*/
        -:        -: 4231:/*EOF*/
    #####:    #####: 4232:/*EOF*/
        -:        -: 4233:/*EOF*/
    #####:    #####: 4234:/*EOF*/
    #####:    #####: 4235:/*EOF*/
        -:        -: 4236:/*EOF*/
    #####:    #####: 4237:/*EOF*/
        -:        -: 4238:/*EOF*/
    #####:    #####: 4239:/*EOF*/
    #####:    #####: 4240:/*EOF*/
        -:        -: 4241:/*EOF*/
    #####:    #####: 4242:/*EOF*/
        -:        -: 4243:/*EOF*/
        -:        -: 4244:/*EOF*/
    #####:    #####: 4245:/*EOF*/
    #####:    #####: 4246:/*EOF*/
        -:        -: 4247:/*EOF*/
    #####:    #####: 4248:/*EOF*/
    #####:    #####: 4249:/*EOF*/
    #####:    #####: 4250:/*EOF*/
    #####:    #####: 4251:/*EOF*/
        -:        -: 4252:/*EOF*/
        -:        -: 4253:/*EOF*/
    #####:    #####: 4254:/*EOF*/
    #####:    #####: 4255:/*EOF*/
        -:        -: 4256:/*EOF*/
    #####:    #####: 4257:/*EOF*/
    #####:    #####: 4258:/*EOF*/
        -:        -: 4259:/*EOF*/
    #####:    #####: 4260:/*EOF*/
        -:        -: 4261:/*EOF*/
        -:        -: 4262:/*EOF*/
        -:        -: 4263:/*EOF*/
        -:        -: 4264:/*EOF*/
    #####:    #####: 4265:/*EOF*/
    #####:    #####: 4266:/*EOF*/
        -:        -: 4267:/*EOF*/
    #####:    #####: 4268:/*EOF*/
    #####:    #####: 4269:/*EOF*/
        -:        -: 4270:/*EOF*/
    #####:    #####: 4271:/*EOF*/
        -:        -: 4272:/*EOF*/
    #####:    #####: 4273:/*EOF*/
    #####:    #####: 4274:/*EOF*/
    #####:    #####: 4275:/*EOF*/
        -:        -: 4276:/*EOF*/
    #####:    #####: 4277:/*EOF*/
    #####:    #####: 4278:/*EOF*/
        -:        -: 4279:/*EOF*/
    #####:    #####: 4280:/*EOF*/
        -:        -: 4281:/*EOF*/
        -:        -: 4282:/*EOF*/
    #####:    #####: 4283:/*EOF*/
    #####:    #####: 4284:/*EOF*/
        -:        -: 4285:/*EOF*/
        -:        -: 4286:/*EOF*/
    #####:    #####: 4287:/*EOF*/
    #####:    #####: 4288:/*EOF*/
        -:        -: 4289:/*EOF*/
        -:        -: 4290:/*EOF*/
    #####:    #####: 4291:/*EOF*/
    #####:    #####: 4292:/*EOF*/
        -:        -: 4293:/*EOF*/
    #####:    #####: 4294:/*EOF*/
        -:        -: 4295:/*EOF*/
    #####:    #####: 4296:/*EOF*/
    #####:    #####: 4297:/*EOF*/
        -:        -: 4298:/*EOF*/
        -:        -: 4299:/*EOF*/
        -:        -: 4300:/*EOF*/
    #####:    #####: 4301:/*EOF*/
    #####:    #####: 4302:/*EOF*/
    #####:    #####: 4303:/*EOF*/
    #####:    #####: 4304:/*EOF*/
        -:        -: 4305:/*EOF*/
        -:        -: 4306:/*EOF*/
    #####:    #####: 4307:/*EOF*/
        -:        -: 4308:/*EOF*/
        -:        -: 4309:/*EOF*/
    #####:    #####: 4310:/*EOF*/
        -:        -: 4311:/*EOF*/
    #####:    #####: 4312:/*EOF*/
        -:        -: 4313:/*EOF*/
        -:        -: 4314:/*EOF*/
        -:        -: 4315:/*EOF*/
    #####:    #####: 4316:/*EOF*/
        -:        -: 4317:/*EOF*/
        -:        -: 4318:/*EOF*/
        -:        -: 4319:/*EOF*/
    #####:    #####: 4320:/*EOF*/
    #####:    #####: 4321:/*EOF*/
    #####:    #####: 4322:/*EOF*/
        -:        -: 4323:/*EOF*/
    #####:    #####: 4324:/*EOF*/
        -:        -: 4325:/*EOF*/
    #####:    #####: 4326:/*EOF*/
        -:        -: 4327:/*EOF*/
        -:        -: 4328:/*EOF*/
    #####:    #####: 4329:/*EOF*/
    #####:    #####: 4330:/*EOF*/
    #####:    #####: 4331:/*EOF*/
    #####:    #####: 4332:/*EOF*/
        -:        -: 4333:/*EOF*/
        -:        -: 4334:/*EOF*/
        -:        -: 4335:/*EOF*/
        -:        -: 4336:/*EOF*/
    #####:    #####: 4337:/*EOF*/
    #####:    #####: 4338:/*EOF*/
    #####:    #####: 4339:/*EOF*/
    #####:    #####: 4340:/*EOF*/
        -:        -: 4341:/*EOF*/
        -:        -: 4342:/*EOF*/
        -:        -: 4343:/*EOF*/
    #####:    #####: 4344:/*EOF*/
    #####:    #####: 4345:/*EOF*/
    #####:    #####: 4346:/*EOF*/
        -:        -: 4347:/*EOF*/
        -:        -: 4348:/*EOF*/
        -:        -: 4349:/*EOF*/
    #####:    #####: 4350:/*EOF*/
    #####:    #####: 4351:/*EOF*/
        -:        -: 4352:/*EOF*/
    #####:    #####: 4353:/*EOF*/
    #####:    #####: 4354:/*EOF*/
    #####:    #####: 4355:/*EOF*/
        -:        -: 4356:/*EOF*/
    #####:    #####: 4357:/*EOF*/
    #####:    #####: 4358:/*EOF*/
        -:        -: 4359:/*EOF*/
        -:        -: 4360:/*EOF*/
        -:        -: 4361:/*EOF*/
    #####:    #####: 4362:/*EOF*/
        -:        -: 4363:/*EOF*/
        -:        -: 4364:/*EOF*/
        -:        -: 4365:/*EOF*/
    #####:    #####: 4366:/*EOF*/
    #####:    #####: 4367:/*EOF*/
    #####:    #####: 4368:/*EOF*/
    #####:    #####: 4369:/*EOF*/
    #####:    #####: 4370:/*EOF*/
        -:        -: 4371:/*EOF*/
    #####:    #####: 4372:/*EOF*/
        -:        -: 4373:/*EOF*/
    #####:    #####: 4374:/*EOF*/
        -:        -: 4375:/*EOF*/
    #####:    #####: 4376:/*EOF*/
        -:        -: 4377:/*EOF*/
        -:        -: 4378:/*EOF*/
        -:        -: 4379:/*EOF*/
    #####:    #####: 4380:/*EOF*/
    #####:    #####: 4381:/*EOF*/
        -:        -: 4382:/*EOF*/
        -:        -: 4383:/*EOF*/
    #####:    #####: 4384:/*EOF*/
        -:        -: 4385:/*EOF*/
    #####:    #####: 4386:/*EOF*/
    #####:    #####: 4387:/*EOF*/
    #####:    #####: 4388:/*EOF*/
        -:        -: 4389:/*EOF*/
    #####:    #####: 4390:/*EOF*/
    #####:    #####: 4391:/*EOF*/
        -:        -: 4392:/*EOF*/
    #####:    #####: 4393:/*EOF*/
    #####:    #####: 4394:/*EOF*/
        -:        -: 4395:/*EOF*/
    #####:    #####: 4396:/*EOF*/
    #####:    #####: 4397:/*EOF*/
        -:        -: 4398:/*EOF*/
    #####:    #####: 4399:/*EOF*/
    #####:    #####: 4400:/*EOF*/
        -:        -: 4401:/*EOF*/
    #####:    #####: 4402:/*EOF*/
    #####:    #####: 4403:/*EOF*/
        -:        -: 4404:/*EOF*/
    #####:    #####: 4405:/*EOF*/
    #####:    #####: 4406:/*EOF*/
        -:        -: 4407:/*EOF*/
    #####:    #####: 4408:/*EOF*/
    #####:    #####: 4409:/*EOF*/
        -:        -: 4410:/*EOF*/
        -:        -: 4411:/*EOF*/
    #####:    #####: 4412:/*EOF*/
    #####:    #####: 4413:/*EOF*/
        -:        -: 4414:/*EOF*/
    #####:    #####: 4415:/*EOF*/
    #####:    #####: 4416:/*EOF*/
        -:        -: 4417:/*EOF*/
    #####:    #####: 4418:/*EOF*/
    #####:    #####: 4419:/*EOF*/
        -:        -: 4420:/*EOF*/
    #####:    #####: 4421:/*EOF*/
    #####:    #####: 4422:/*EOF*/
        -:        -: 4423:/*EOF*/
    #####:    #####: 4424:/*EOF*/
    #####:    #####: 4425:/*EOF*/
        -:        -: 4426:/*EOF*/
    #####:    #####: 4427:/*EOF*/
        -:        -: 4428:/*EOF*/
        -:        -: 4429:/*EOF*/
        -:        -: 4430:/*EOF*/
        -:        -: 4431:/*EOF*/
    #####:    #####: 4432:/*EOF*/
    #####:    #####: 4433:/*EOF*/
    #####:    #####: 4434:/*EOF*/
    #####:    #####: 4435:/*EOF*/
        -:        -: 4436:/*EOF*/
    #####:    #####: 4437:/*EOF*/
    #####:    #####: 4438:/*EOF*/
        -:        -: 4439:/*EOF*/
    #####:    #####: 4440:/*EOF*/
    #####:    #####: 4441:/*EOF*/
        -:        -: 4442:/*EOF*/
    #####:    #####: 4443:/*EOF*/
        -:        -: 4444:/*EOF*/
        -:        -: 4445:/*EOF*/
    #####:    #####: 4446:/*EOF*/
        -:        -: 4447:/*EOF*/
        -:        -: 4448:/*EOF*/
        -:        -: 4449:/*EOF*/
        -:        -: 4450:/*EOF*/
        -:        -: 4451:/*EOF*/
    #####:    #####: 4452:/*EOF*/
    #####:    #####: 4453:/*EOF*/
    #####:    #####: 4454:/*EOF*/
    #####:    #####: 4455:/*EOF*/
        -:        -: 4456:/*EOF*/
        -:        -: 4457:/*EOF*/
    #####:    #####: 4458:/*EOF*/
    #####:    #####: 4459:/*EOF*/
    #####:    #####: 4460:/*EOF*/
        -:        -: 4461:/*EOF*/
        -:        -: 4462:/*EOF*/
        -:        -: 4463:/*EOF*/
    #####:    #####: 4464:/*EOF*/
        -:        -: 4465:/*EOF*/
    #####:    #####: 4466:/*EOF*/
        -:        -: 4467:/*EOF*/
        -:        -: 4468:/*EOF*/
        -:        -: 4469:/*EOF*/
    #####:    #####: 4470:/*EOF*/
    #####:    #####: 4471:/*EOF*/
    #####:    #####: 4472:/*EOF*/
        -:        -: 4473:/*EOF*/
    #####:    #####: 4474:/*EOF*/
    #####:    #####: 4475:/*EOF*/
    #####:    #####: 4476:/*EOF*/
    #####:    #####: 4477:/*EOF*/
    #####:    #####: 4478:/*EOF*/
    #####:    #####: 4479:/*EOF*/
    #####:    #####: 4480:/*EOF*/
    #####:    #####: 4481:/*EOF*/
    #####:    #####: 4482:/*EOF*/
        -:        -: 4483:/*EOF*/
    #####:    #####: 4484:/*EOF*/
        -:        -: 4485:/*EOF*/
        -:        -: 4486:/*EOF*/
    #####:    #####: 4487:/*EOF*/
    #####:    #####: 4488:/*EOF*/
        -:        -: 4489:/*EOF*/
    #####:    #####: 4490:/*EOF*/
    #####:    #####: 4491:/*EOF*/
        -:        -: 4492:/*EOF*/
    #####:    #####: 4493:/*EOF*/
    #####:    #####: 4494:/*EOF*/
    #####:    #####: 4495:/*EOF*/
        -:        -: 4496:/*EOF*/
    #####:    #####: 4497:/*EOF*/
        -:        -: 4498:/*EOF*/
    #####:    #####: 4499:/*EOF*/
    #####:    #####: 4500:/*EOF*/
    #####:    #####: 4501:/*EOF*/
        -:        -: 4502:/*EOF*/
    #####:    #####: 4503:/*EOF*/
    #####:    #####: 4504:/*EOF*/
    #####:    #####: 4505:/*EOF*/
        -:        -: 4506:/*EOF*/
        -:        -: 4507:/*EOF*/
    #####:    #####: 4508:/*EOF*/
        -:        -: 4509:/*EOF*/
        -:        -: 4510:/*EOF*/
        -:        -: 4511:/*EOF*/
        8:       16: 4512:/*EOF*/
        -:        -: 4513:/*EOF*/
        8:       16: 4514:/*EOF*/
        -:        -: 4515:/*EOF*/
        8:       16: 4516:/*EOF*/
        8:       16: 4517:/*EOF*/
        -:        -: 4518:/*EOF*/
    #####:    #####: 4519:/*EOF*/
    #####:    #####: 4520:/*EOF*/
        -:        -: 4521:/*EOF*/
        -:        -: 4522:/*EOF*/
    #####:    #####: 4523:/*EOF*/
        -:        -: 4524:/*EOF*/
        8:       16: 4525:/*EOF*/
        -:        -: 4526:/*EOF*/
        -:        -: 4527:/*EOF*/
        -:        -: 4528:/*EOF*/
        -:        -: 4529:/*EOF*/
        -:        -: 4530:/*EOF*/
        -:        -: 4531:/*EOF*/
        -:        -: 4532:/*EOF*/
        -:        -: 4533:/*EOF*/
        -:        -: 4534:/*EOF*/
        -:        -: 4535:/*EOF*/
        -:        -: 4536:/*EOF*/
        -:        -: 4537:/*EOF*/
        -:        -: 4538:/*EOF*/
        -:        -: 4539:/*EOF*/
        -:        -: 4540:/*EOF*/
        -:        -: 4541:/*EOF*/
        -:        -: 4542:/*EOF*/
        -:        -: 4543:/*EOF*/
        -:        -: 4544:/*EOF*/
        -:        -: 4545:/*EOF*/
        -:        -: 4546:/*EOF*/
        -:        -: 4547:/*EOF*/
        -:        -: 4548:/*EOF*/
        -:        -: 4549:/*EOF*/
        -:        -: 4550:/*EOF*/
        -:        -: 4551:/*EOF*/
        -:        -: 4552:/*EOF*/
        -:        -: 4553:/*EOF*/
    #####:    #####: 4554:/*EOF*/
        -:        -: 4555:/*EOF*/
        -:        -: 4556:/*EOF*/
        -:        -: 4557:/*EOF*/
        -:        -: 4558:/*EOF*/
    #####:    #####: 4559:/*EOF*/
    #####:    #####: 4560:/*EOF*/
        -:        -: 4561:/*EOF*/
        -:        -: 4562:/*EOF*/
        -:        -: 4563:/*EOF*/
        -:        -: 4564:/*EOF*/
        -:        -: 4565:/*EOF*/
        -:        -: 4566:/*EOF*/
        -:        -: 4567:/*EOF*/
    #####:    #####: 4568:/*EOF*/
        -:        -: 4569:/*EOF*/
    #####:    #####: 4570:/*EOF*/
    #####:    #####: 4571:/*EOF*/
        -:        -: 4572:/*EOF*/
    #####:    #####: 4573:/*EOF*/
    #####:    #####: 4574:/*EOF*/
        -:        -: 4575:/*EOF*/
    #####:    #####: 4576:/*EOF*/
        -:        -: 4577:/*EOF*/
    #####:    #####: 4578:/*EOF*/
        -:        -: 4579:/*EOF*/
        -:        -: 4580:/*EOF*/
        -:        -: 4581:/*EOF*/
        -:        -: 4582:/*EOF*/
        -:        -: 4583:/*EOF*/
        -:        -: 4584:/*EOF*/
        -:        -: 4585:/*EOF*/
        -:        -: 4586:/*EOF*/
        -:        -: 4587:/*EOF*/
        -:        -: 4588:/*EOF*/
        -:        -: 4589:/*EOF*/
        -:        -: 4590:/*EOF*/
        -:        -: 4591:/*EOF*/
        -:        -: 4592:/*EOF*/
        -:        -: 4593:/*EOF*/
        -:        -: 4594:/*EOF*/
    #####:    #####: 4595:/*EOF*/
        -:        -: 4596:/*EOF*/
        -:        -: 4597:/*EOF*/
        -:        -: 4598:/*EOF*/
        -:        -: 4599:/*EOF*/
    #####:    #####: 4600:/*EOF*/
    #####:    #####: 4601:/*EOF*/
        -:        -: 4602:/*EOF*/
    #####:    #####: 4603:/*EOF*/
        -:        -: 4604:/*EOF*/
    #####:    #####: 4605:/*EOF*/
        -:        -: 4606:/*EOF*/
    #####:    #####: 4607:/*EOF*/
    #####:    #####: 4608:/*EOF*/
    #####:    #####: 4609:/*EOF*/
    #####:    #####: 4610:/*EOF*/
        -:        -: 4611:/*EOF*/
    #####:    #####: 4612:/*EOF*/
        -:        -: 4613:/*EOF*/
        -:        -: 4614:/*EOF*/
    #####:    #####: 4615:/*EOF*/
        -:        -: 4616:/*EOF*/
    #####:    #####: 4617:/*EOF*/
    #####:    #####: 4618:/*EOF*/
        -:        -: 4619:/*EOF*/
    #####:    #####: 4620:/*EOF*/
    #####:    #####: 4621:/*EOF*/
        -:        -: 4622:/*EOF*/
        -:        -: 4623:/*EOF*/
        -:        -: 4624:/*EOF*/
        -:        -: 4625:/*EOF*/
    #####:    #####: 4626:/*EOF*/
    #####:    #####: 4627:/*EOF*/
    #####:    #####: 4628:/*EOF*/
    #####:    #####: 4629:/*EOF*/
    #####:    #####: 4630:/*EOF*/
        -:        -: 4631:/*EOF*/
        -:        -: 4632:/*EOF*/
        -:        -: 4633:/*EOF*/
        -:        -: 4634:/*EOF*/
        -:        -: 4635:/*EOF*/
        -:        -: 4636:/*EOF*/
        -:        -: 4637:/*EOF*/
        -:        -: 4638:/*EOF*/
        -:        -: 4639:/*EOF*/
        -:        -: 4640:/*EOF*/
        -:        -: 4641:/*EOF*/
        -:        -: 4642:/*EOF*/
        -:        -: 4643:/*EOF*/
        -:        -: 4644:/*EOF*/
        -:        -: 4645:/*EOF*/
        -:        -: 4646:/*EOF*/
        -:        -: 4647:/*EOF*/
        -:        -: 4648:/*EOF*/
        -:        -: 4649:/*EOF*/
        -:        -: 4650:/*EOF*/
        -:        -: 4651:/*EOF*/
    #####:    #####: 4652:/*EOF*/
        -:        -: 4653:/*EOF*/
    #####:    #####: 4654:/*EOF*/
    #####:    #####: 4655:/*EOF*/
    #####:    #####: 4656:/*EOF*/
    #####:    #####: 4657:/*EOF*/
        -:        -: 4658:/*EOF*/
    #####:    #####: 4659:/*EOF*/
        3:        3: 4660:/*EOF*/

src/intel/compiler/.libs/brw_fs_reg_allocate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_reg_allocate.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_reg_allocate.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_reg_allocate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
      460:      484:   36:/*EOF*/
        -:        -:   37:/*EOF*/
      460:      484:   38:/*EOF*/
      263:      267:   39:/*EOF*/
      263:      267:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      460:      484:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
    #####:    #####:   45:/*EOF*/
        -:        -:   46:/*EOF*/
    #####:    #####:   47:/*EOF*/
        -:        -:   48:/*EOF*/
    #####:    #####:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
    #####:    #####:   55:/*EOF*/
        -:        -:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
        -:        -:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        3:        3:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        3:        3:   78:/*EOF*/
        3:        3:   79:/*EOF*/
        3:        3:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        3:        3:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        3:        3:  106:/*EOF*/
        -:        -:  107:/*EOF*/
       51:       51:  108:/*EOF*/
       48:       48:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        3:        3:  111:/*EOF*/
        3:        3:  112:/*EOF*/
        3:        3:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        3:        3:  116:/*EOF*/
       51:       51:  117:/*EOF*/
       48:       48:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
       48:       48:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
       48:       48:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
       51:       51:  138:/*EOF*/
       48:       48:  139:/*EOF*/
    #####:    #####:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        3:        3:  143:/*EOF*/
        3:        3:  144:/*EOF*/
        3:        3:  145:/*EOF*/
        3:        3:  146:/*EOF*/
        3:        3:  147:/*EOF*/
        3:        3:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        3:        3:  152:/*EOF*/
        -:        -:  153:/*EOF*/
       54:       54:  154:/*EOF*/
       51:       51:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        3:        3:  160:/*EOF*/
        3:        3:  161:/*EOF*/
        3:        3:  162:/*EOF*/
       51:       51:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       48:       48:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       48:       48:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
      816:      816:  200:/*EOF*/
      768:      768:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       48:       48:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
       48:       48:  206:/*EOF*/
        3:        3:  207:/*EOF*/
        3:        3:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
       48:       48:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
     5832:     5832:  226:/*EOF*/
     5784:     5784:  227:/*EOF*/
        -:        -:  228:/*EOF*/
     5784:     5784:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    53928:    53928:  231:/*EOF*/
    53928:    53928:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    48144:    48144:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
     5784:     5784:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        3:        3:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
      387:      387:  246:/*EOF*/
      384:      384:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        3:        3:  252:/*EOF*/
        1:        1:  253:/*EOF*/
        -:        -:  254:/*EOF*/
      128:      128:  255:/*EOF*/
      127:      127:  256:/*EOF*/
       64:       64:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
       17:       17:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       16:       16:  268:/*EOF*/
       16:       16:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        1:        1:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        3:        3:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        3:        3:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        3:        3:  278:/*EOF*/
       51:       51:  279:/*EOF*/
       48:       48:  280:/*EOF*/
       51:       51:  281:/*EOF*/
       48:       48:  282:/*EOF*/
        3:        3:  283:/*EOF*/
        3:        3:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        1:        1:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        1:        1:  290:/*EOF*/
        1:        1:  291:/*EOF*/
        1:        1:  292:/*EOF*/
        1:        1:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        8:        8:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        8:        8:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        8:        8:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
       48:       64:  305:/*EOF*/
       48:       64:  306:/*EOF*/
        -:        -:  307:/*EOF*/
       48:       64:  308:/*EOF*/
    #####:        8:  309:/*EOF*/
       48:       64:  310:/*EOF*/
        8:       16:  311:/*EOF*/
        8:       16:  312:/*EOF*/
        8:        8:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
       10:       10:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
       10:       10:  322:/*EOF*/
       10:       10:  323:/*EOF*/
        -:        -:  324:/*EOF*/
       74:       74:  325:/*EOF*/
       64:       64:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       10:       10:  328:/*EOF*/
      422:      446:  329:/*EOF*/
      412:      436:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        8:       16:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        8:       16:  339:/*EOF*/
        8:        8:  340:/*EOF*/
        8:       16:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        8:       16:  343:/*EOF*/
        8:       16:  344:/*EOF*/
        -:        -:  345:/*EOF*/
      396:      404:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
      412:      436:  350:/*EOF*/
      198:      214:  351:/*EOF*/
        -:        -:  352:/*EOF*/
      214:      222:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
      920:      968:  359:/*EOF*/
      508:      532:  360:/*EOF*/
      128:      128:  361:/*EOF*/
      128:      128:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
      288:      288:  365:/*EOF*/
      160:      160:  366:/*EOF*/
      160:      160:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
      412:      436:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
      412:      436:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
       10:       10:  386:/*EOF*/
       10:       10:  387:/*EOF*/
        -:        -:  388:/*EOF*/
      412:      436:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
      412:      436:  392:/*EOF*/
        -:        -:  393:/*EOF*/
       10:       10:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        5:        5:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        5:        5:  419:/*EOF*/
        5:        5:  420:/*EOF*/
        -:        -:  421:/*EOF*/
       37:       37:  422:/*EOF*/
       32:       32:  423:/*EOF*/
        6:        6:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      438:      438:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
      412:      412:  435:/*EOF*/
      298:      298:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
       37:       37:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
       32:       32:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
       32:       32:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        5:        5:  457:/*EOF*/
        5:        5:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
        -:        -:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
    #####:    #####:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        5:        5:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        5:        5:  539:/*EOF*/
        5:        5:  540:/*EOF*/
        5:        5:  541:/*EOF*/
        5:        5:  542:/*EOF*/
        5:        5:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        5:        5:  545:/*EOF*/
        5:        5:  546:/*EOF*/
        5:        5:  547:/*EOF*/
        5:        5:  548:/*EOF*/
        5:        5:  549:/*EOF*/
    #####:    #####:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        5:        5:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      102:      102:  554:/*EOF*/
       97:       97:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
       97:       97:  558:/*EOF*/
       97:       97:  559:/*EOF*/
       97:       97:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
      147:      147:  571:/*EOF*/
       50:       50:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
    #####:    #####:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
       97:       97:  577:/*EOF*/
        -:        -:  578:/*EOF*/
     1879:     1879:  579:/*EOF*/
     1782:     1782:  580:/*EOF*/
      535:      593:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
      211:      223:  589:/*EOF*/
      206:      218:  590:/*EOF*/
        8:        8:  591:/*EOF*/
        6:        6:  592:/*EOF*/
        2:        2:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        5:        5:  599:/*EOF*/
        5:        5:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
        -:        -:  602:/*EOF*/
    #####:    #####:  603:/*EOF*/
        -:        -:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/
    #####:    #####:  617:/*EOF*/
    #####:    #####:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
    #####:    #####:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        5:        5:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
      108:      114:  644:/*EOF*/
      106:      112:  645:/*EOF*/
       50:       56:  646:/*EOF*/
        -:        -:  647:/*EOF*/
      144:      144:  648:/*EOF*/
       88:       88:  649:/*EOF*/
       63:       63:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        5:        5:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
        -:        -:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
    #####:    #####:  661:/*EOF*/
    #####:    #####:  662:/*EOF*/
    #####:    #####:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        5:        5:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
    #####:    #####:  671:/*EOF*/
        -:        -:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        5:        5:  689:/*EOF*/
      102:      102:  690:/*EOF*/
       97:       97:  691:/*EOF*/
        -:        -:  692:/*EOF*/
       97:       97:  693:/*EOF*/
       97:       97:  694:/*EOF*/
       97:       97:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
      211:      223:  698:/*EOF*/
      206:      218:  699:/*EOF*/
      460:      484:  700:/*EOF*/
      254:      266:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        5:        5:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        5:        5:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       10:       10:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
    #####:    #####:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
    #####:    #####:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
    #####:    #####:  793:/*EOF*/
    #####:    #####:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
    #####:    #####:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
    #####:    #####:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
    #####:    #####:  814:/*EOF*/
    #####:    #####:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
    #####:    #####:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
    #####:    #####:  829:/*EOF*/
        -:        -:  830:/*EOF*/
    #####:    #####:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
    #####:    #####:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
    #####:    #####:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
    #####:    #####:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
    #####:    #####:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
    #####:    #####:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
    #####:    #####:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
    #####:    #####:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
    #####:    #####:  892:/*EOF*/
    #####:    #####:  893:/*EOF*/
    #####:    #####:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
    #####:    #####:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
    #####:    #####:  910:/*EOF*/
        -:        -:  911:/*EOF*/
    #####:    #####:  912:/*EOF*/
    #####:    #####:  913:/*EOF*/
    #####:    #####:  914:/*EOF*/
    #####:    #####:  915:/*EOF*/
        -:        -:  916:/*EOF*/
    #####:    #####:  917:/*EOF*/
    #####:    #####:  918:/*EOF*/
        -:        -:  919:/*EOF*/
    #####:    #####:  920:/*EOF*/
    #####:    #####:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
    #####:    #####:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
    #####:    #####:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
    #####:    #####:  946:/*EOF*/
        -:        -:  947:/*EOF*/
    #####:    #####:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
    #####:    #####:  956:/*EOF*/
    #####:    #####:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
    #####:    #####:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
    #####:    #####:  976:/*EOF*/
    #####:    #####:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
    #####:    #####:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
    #####:    #####:  989:/*EOF*/
    #####:    #####:  990:/*EOF*/
    #####:    #####:  991:/*EOF*/
    #####:    #####:  992:/*EOF*/
        -:        -:  993:/*EOF*/
    #####:    #####:  994:/*EOF*/
    #####:    #####:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
    #####:    #####:  999:/*EOF*/
        3:        3: 1000:/*EOF*/

src/intel/compiler/.libs/brw_fs_register_coalesce.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_register_coalesce.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_register_coalesce.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_register_coalesce.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       54:       56:   48:/*EOF*/
        -:        -:   49:/*EOF*/
       54:       56:   50:/*EOF*/
    #####:    #####:   51:/*EOF*/
    #####:    #####:   52:/*EOF*/
    #####:    #####:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
       54:       56:   61:/*EOF*/
       54:       56:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
     1032:     1315:   69:/*EOF*/
        -:        -:   70:/*EOF*/
     2894:     3685:   71:/*EOF*/
     1037:     1320:   72:/*EOF*/
      414:      530:   73:/*EOF*/
      414:      530:   74:/*EOF*/
      314:      388:   75:/*EOF*/
      214:      246:   76:/*EOF*/
      214:      246:   77:/*EOF*/
      214:      246:   78:/*EOF*/
     1223:     1530:   79:/*EOF*/
       84:       92:   80:/*EOF*/
      978:     1259:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
      108:      112:   84:/*EOF*/
       54:       56:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       54:       56:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
       54:       56:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
       64:       67:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
       64:       67:  102:/*EOF*/
       34:       37:  103:/*EOF*/
        -:        -:  104:/*EOF*/
       30:       30:  105:/*EOF*/
       30:       30:  106:/*EOF*/
       30:       30:  107:/*EOF*/
       30:       30:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
       30:       30:  111:/*EOF*/
        4:        2:  112:/*EOF*/
        4:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
       26:       30:  118:/*EOF*/
       26:       30:  119:/*EOF*/
        -:        -:  120:/*EOF*/
       72:       84:  121:/*EOF*/
       72:       84:  122:/*EOF*/
       24:       28:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       48:       56:  125:/*EOF*/
        -:        -:  126:/*EOF*/
      296:      406:  127:/*EOF*/
      274:      380:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
      274:      380:  131:/*EOF*/
      170:      280:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
      104:      100:  135:/*EOF*/
        4:        2:  136:/*EOF*/
        -:        -:  137:/*EOF*/
      100:       98:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      200:      196:  141:/*EOF*/
      294:      290:  142:/*EOF*/
      188:      188:  143:/*EOF*/
       94:       94:  144:/*EOF*/
       26:       30:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       22:       24:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       22:       24:  155:/*EOF*/
        -:        -:  156:/*EOF*/
       22:       24:  157:/*EOF*/
        -:        -:  158:/*EOF*/
       22:       24:  159:/*EOF*/
       22:       24:  160:/*EOF*/
       22:       24:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
     1054:     1339:  167:/*EOF*/
     1032:     1315:  168:/*EOF*/
      978:     1259:  169:/*EOF*/
        -:        -:  170:/*EOF*/
       54:       56:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       54:       56:  177:/*EOF*/
       54:       56:  178:/*EOF*/
        -:        -:  179:/*EOF*/
       54:       56:  180:/*EOF*/
       54:       56:  181:/*EOF*/
        -:        -:  182:/*EOF*/
       54:       56:  183:/*EOF*/
       54:       56:  184:/*EOF*/
        -:        -:  185:/*EOF*/
       54:       56:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
       54:       56:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
        -:        -:  191:/*EOF*/
       54:       56:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
    #####:    #####:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
       54:       56:  199:/*EOF*/
       54:       56:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
      133:      138:  210:/*EOF*/
       79:       82:  211:/*EOF*/
       54:       56:  212:/*EOF*/
       54:       56:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       54:       56:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       54:       56:  219:/*EOF*/
       88:       93:  220:/*EOF*/
       64:       67:  221:/*EOF*/
        -:        -:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
       64:       67:  228:/*EOF*/
       64:       67:  229:/*EOF*/
        -:        -:  230:/*EOF*/
       64:       67:  231:/*EOF*/
        -:        -:  232:/*EOF*/
       30:       30:  233:/*EOF*/
       30:       30:  234:/*EOF*/
       30:       30:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       54:       56:  239:/*EOF*/
       30:       30:  240:/*EOF*/
        -:        -:  241:/*EOF*/
       24:       26:  242:/*EOF*/
        -:        -:  243:/*EOF*/
       58:       63:  244:/*EOF*/
       34:       37:  245:/*EOF*/
       24:       26:  246:/*EOF*/
       24:       26:  247:/*EOF*/
       24:       26:  248:/*EOF*/
       48:       52:  249:/*EOF*/
       24:       26:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
     1326:     1835:  255:/*EOF*/
     2064:     2708:  256:/*EOF*/
      762:      899:  257:/*EOF*/
       24:       26:  258:/*EOF*/
       24:       26:  259:/*EOF*/
       24:       26:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
     3002:     3867:  263:/*EOF*/
     2804:     3404:  264:/*EOF*/
     1104:     1346:  265:/*EOF*/
       14:       14:  266:/*EOF*/
       14:       14:  267:/*EOF*/
       14:       14:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
       58:       63:  273:/*EOF*/
       34:       37:  274:/*EOF*/
       68:       74:  275:/*EOF*/
       68:       74:  276:/*EOF*/
       34:       37:  277:/*EOF*/
       68:       74:  278:/*EOF*/
       68:       74:  279:/*EOF*/
        -:        -:  280:/*EOF*/
       24:       26:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       22:       24:  284:/*EOF*/
      231:      275:  285:/*EOF*/
      226:      270:  286:/*EOF*/
       24:       26:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        5:        5:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
       22:       24:  294:/*EOF*/
        3:        3:  295:/*EOF*/

src/intel/compiler/.libs/brw_fs_saturate_propagation.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_saturate_propagation.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_saturate_propagation.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
      144:      238:   46:/*EOF*/
        -:        -:   47:/*EOF*/
      144:      238:   48:/*EOF*/
      144:      238:   49:/*EOF*/
        -:        -:   50:/*EOF*/
      743:     1096:   51:/*EOF*/
      599:      858:   52:/*EOF*/
        -:        -:   53:/*EOF*/
      721:     1030:   54:/*EOF*/
      122:      172:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
    #####:    #####:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
      599:      858:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
    #####:    #####:   65:/*EOF*/
    #####:    #####:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
    #####:    #####:   68:/*EOF*/
    #####:    #####:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
    #####:    #####:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
    #####:    #####:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
    #####:    #####:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
    #####:    #####:   88:/*EOF*/
    #####:    #####:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
    #####:    #####:   93:/*EOF*/
    #####:    #####:   94:/*EOF*/
    #####:    #####:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
    #####:    #####:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:    #####:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
    #####:    #####:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
    #####:    #####:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
    #####:    #####:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      144:      238:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
       12:       14:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       12:       14:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       12:       14:  147:/*EOF*/
        -:        -:  148:/*EOF*/
      156:      252:  149:/*EOF*/
      144:      238:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       12:       14:  155:/*EOF*/
        3:        3:  156:/*EOF*/

src/intel/compiler/.libs/brw_fs_sel_peephole.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_sel_peephole.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_sel_peephole.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_sel_peephole.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
       18:       26:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       18:       26:   69:/*EOF*/
       30:       34:   70:/*EOF*/
       30:       34:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
       12:        8:   74:/*EOF*/
       12:        8:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
       18:       26:   78:/*EOF*/
       18:       26:   79:/*EOF*/
       18:       26:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
    #####:    #####:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       18:       26:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       17:       19:  125:/*EOF*/
        -:        -:  126:/*EOF*/
       17:       19:  127:/*EOF*/
        -:        -:  128:/*EOF*/
      218:      330:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
      201:      311:  133:/*EOF*/
      201:      311:  134:/*EOF*/
      330:      540:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       72:       82:  137:/*EOF*/
       72:       82:  138:/*EOF*/
        -:        -:  139:/*EOF*/
       72:       82:  140:/*EOF*/
       72:       82:  141:/*EOF*/
      144:      164:  142:/*EOF*/
      144:      164:  143:/*EOF*/
       72:       82:  144:/*EOF*/
       18:       26:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       72:       82:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
       72:       82:  150:/*EOF*/
       54:       56:  151:/*EOF*/
        -:        -:  152:/*EOF*/
       18:       26:  153:/*EOF*/
        -:        -:  154:/*EOF*/
       18:       26:  155:/*EOF*/
       18:       26:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
    #####:    #####:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
    #####:    #####:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
    #####:    #####:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
        -:        -:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
    #####:    #####:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
    #####:    #####:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
       17:       19:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       17:       19:  219:/*EOF*/
        3:        3:  220:/*EOF*/

src/intel/compiler/.libs/brw_fs_validate.cpp.gcov

        -:        -:    0:Source:compiler/brw_fs_validate.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_fs_validate.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_fs_validate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
      305:      335:   42:/*EOF*/
        -:        -:   43:/*EOF*/
    15680:    20231:   44:/*EOF*/
    15375:    19896:   45:/*EOF*/
     9464:    11089:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
    35129:    44136:   50:/*EOF*/
    19754:    24240:   51:/*EOF*/
    12209:    14937:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
      308:      338:   57:/*EOF*/

src/intel/compiler/.libs/brw_nir.c.gcov

        -:        -:    0:Source:compiler/brw_nir.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_nir.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_nir.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
       39:       49:   31:/*EOF*/
        -:        -:   32:/*EOF*/
      113:      143:   33:/*EOF*/
       74:       94:   34:/*EOF*/
       35:       45:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
    #####:    #####:   39:/*EOF*/
        -:        -:   40:/*EOF*/
    #####:    #####:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
    #####:    #####:   43:/*EOF*/
    #####:    #####:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
       36:       52:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
      242:      310:   63:/*EOF*/
      206:      258:   64:/*EOF*/
      167:      209:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       39:       49:   67:/*EOF*/
        -:        -:   68:/*EOF*/
       39:       49:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        9:       13:   71:/*EOF*/
        9:       13:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        9:       13:   74:/*EOF*/
        9:       13:   75:/*EOF*/
        9:       13:   76:/*EOF*/
        9:       13:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
       36:       52:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        5:        5:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       10:       10:   88:/*EOF*/
        5:        5:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        5:        5:   91:/*EOF*/
       41:       57:   92:/*EOF*/
       36:       52:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        5:        5:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        -:        -:  101:/*EOF*/
    #####:    #####:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
        -:        -:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:    #####:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
    #####:    #####:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
    #####:    #####:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
    #####:    #####:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
    #####:    #####:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
    #####:    #####:  165:/*EOF*/
        -:        -:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
    #####:    #####:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
    #####:    #####:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
    #####:    #####:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
    #####:    #####:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
    #####:    #####:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
    #####:    #####:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    #####:    #####:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
    #####:    #####:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
    #####:    #####:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
    #####:    #####:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        2:        2:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        5:        5:  262:/*EOF*/
        3:        3:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        2:        2:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        2:        2:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        2:        2:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        2:        2:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        2:        2:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        2:        2:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
    #####:    #####:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
    #####:    #####:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
    #####:    #####:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
    #####:    #####:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
    #####:    #####:  335:/*EOF*/
        -:        -:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        3:        3:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        6:        6:  351:/*EOF*/
        3:        3:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        3:        3:  359:/*EOF*/
        2:        2:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        2:        2:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        3:        3:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        3:        3:  378:/*EOF*/
        3:        3:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        3:        3:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        3:        3:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        3:        3:  387:/*EOF*/
        3:        3:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        2:        2:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        5:        5:  394:/*EOF*/
        3:        3:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        2:        2:  398:/*EOF*/
        2:        2:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
    #####:    #####:  414:/*EOF*/
        -:        -:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
    #####:    #####:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        3:        3:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        6:        6:  430:/*EOF*/
        3:        3:  431:/*EOF*/
        6:        6:  432:/*EOF*/
        3:        3:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        3:        3:  436:/*EOF*/
        3:        3:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
       15:       15:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
       15:       15:  459:/*EOF*/
       15:       15:  460:/*EOF*/
       15:       15:  461:/*EOF*/
       15:       15:  462:/*EOF*/
        9:        9:  463:/*EOF*/
       15:       15:  464:/*EOF*/
        9:        9:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       27:       27:  469:/*EOF*/
       27:       27:  470:/*EOF*/
       27:       27:  471:/*EOF*/
        -:        -:  472:/*EOF*/
       27:       27:  473:/*EOF*/
       17:       17:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       27:       27:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       27:       27:  479:/*EOF*/
       17:       17:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       27:       27:  483:/*EOF*/
       27:       27:  484:/*EOF*/
       27:       27:  485:/*EOF*/
       27:       27:  486:/*EOF*/
       27:       27:  487:/*EOF*/
       27:       27:  488:/*EOF*/
       27:       27:  489:/*EOF*/
       27:       27:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
       27:       27:  498:/*EOF*/
       27:       27:  499:/*EOF*/
       27:       27:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       27:       27:  502:/*EOF*/
       27:       27:  503:/*EOF*/
       27:       27:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
       27:       27:  513:/*EOF*/
       27:       27:  514:/*EOF*/
        -:        -:  515:/*EOF*/
       15:       15:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        5:        5:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        5:        5:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        5:        5:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        5:        5:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        5:        5:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        5:        5:  551:/*EOF*/
        5:        5:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        5:        5:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        5:        5:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        5:        5:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        5:        5:  560:/*EOF*/
        3:        3:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        5:        5:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        5:        5:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        5:        5:  569:/*EOF*/
        5:        5:  570:/*EOF*/
        5:        5:  571:/*EOF*/
        5:        5:  572:/*EOF*/
        3:        3:  573:/*EOF*/
        5:        5:  574:/*EOF*/
        3:        3:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        5:        5:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        5:        5:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        5:        5:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        5:        5:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        5:        5:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        5:        5:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        5:        5:  602:/*EOF*/
        5:        5:  603:/*EOF*/
        5:        5:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        5:        5:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        5:        5:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        5:        5:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        5:        5:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        5:        5:  617:/*EOF*/
        5:        5:  618:/*EOF*/
        5:        5:  619:/*EOF*/
        5:        5:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        5:        5:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        5:        5:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
    #####:    #####:  627:/*EOF*/
    #####:    #####:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
    #####:    #####:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        5:        5:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        5:        5:  638:/*EOF*/
        2:        2:  639:/*EOF*/
        2:        2:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        5:        5:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        5:        5:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        5:        5:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        5:        5:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        5:        5:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        5:        5:  668:/*EOF*/
        5:        5:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        5:        5:  672:/*EOF*/
    #####:    #####:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        5:        5:  676:/*EOF*/
        5:        5:  677:/*EOF*/
        5:        5:  678:/*EOF*/
        5:        5:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
      165:      165:  683:/*EOF*/
      160:      160:  684:/*EOF*/
       32:       32:  685:/*EOF*/
        -:        -:  686:/*EOF*/
      128:      128:  687:/*EOF*/
      640:      640:  688:/*EOF*/
      512:      512:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        5:        5:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        5:        5:  695:/*EOF*/
        5:        5:  696:/*EOF*/
        5:        5:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        5:        5:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        5:        5:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
      324:      336:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      324:      336:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
       22:       22:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
       86:       90:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
      216:      224:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
        -:        -:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
    #####:    #####:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
    #####:    #####:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/

src/intel/compiler/.libs/brw_nir_opt_peephole_ffma.c.gcov

        -:        -:    0:Source:compiler/brw_nir_opt_peephole_ffma.c
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_nir_opt_peephole_ffma.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
       11:       11:   37:/*EOF*/
        -:        -:   38:/*EOF*/
       11:       11:   39:/*EOF*/
    #####:    #####:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       22:       22:   42:/*EOF*/
       11:       11:   43:/*EOF*/
        -:        -:   44:/*EOF*/
       11:       11:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
       11:       11:   48:/*EOF*/
       11:       11:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        6:        6:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        5:        5:   57:/*EOF*/
        5:        5:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        5:        5:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
       11:       11:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
       26:       28:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
       26:       28:   75:/*EOF*/
        -:        -:   76:/*EOF*/
       26:       28:   77:/*EOF*/
       26:       28:   78:/*EOF*/
       11:       13:   79:/*EOF*/
        -:        -:   80:/*EOF*/
       15:       15:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       15:       15:   90:/*EOF*/
    #####:    #####:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       15:       15:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    #####:    #####:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        5:        5:  100:/*EOF*/
        5:        5:  101:/*EOF*/
        5:        5:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
    #####:    #####:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
    #####:    #####:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        6:        6:  115:/*EOF*/
    #####:    #####:  116:/*EOF*/
        6:        6:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        4:        4:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
       11:       11:  123:/*EOF*/
    #####:    #####:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       11:       11:  135:/*EOF*/
       22:       22:  136:/*EOF*/
       11:       11:  137:/*EOF*/
        -:        -:  138:/*EOF*/
       11:       11:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        6:        6:  147:/*EOF*/
        -:        -:  148:/*EOF*/
       18:       18:  149:/*EOF*/
       12:       12:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
    #####:    #####:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        6:        6:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
       36:       52:  165:/*EOF*/
        -:        -:  166:/*EOF*/
       36:       52:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      167:      198:  169:/*EOF*/
      131:      146:  170:/*EOF*/
      193:      220:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       63:       66:  173:/*EOF*/
       63:       66:  174:/*EOF*/
       52:       54:  175:/*EOF*/
        -:        -:  176:/*EOF*/
       11:       12:  177:/*EOF*/
       11:       12:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
       11:       12:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       11:       12:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
       26:       29:  194:/*EOF*/
      105:      115:  195:/*EOF*/
       84:       92:  196:/*EOF*/
        -:        -:  197:/*EOF*/
       21:       23:  198:/*EOF*/
       21:       23:  199:/*EOF*/
        -:        -:  200:/*EOF*/
       21:       23:  201:/*EOF*/
       21:       23:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       21:       23:  205:/*EOF*/
        6:        6:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
       11:       12:  209:/*EOF*/
        5:        6:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        6:        6:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        6:        6:  215:/*EOF*/
        6:        6:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        6:        6:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        6:        6:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        6:        6:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
    #####:    #####:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        6:        6:  234:/*EOF*/
        5:        5:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        6:        6:  237:/*EOF*/
        6:        6:  238:/*EOF*/
        6:        6:  239:/*EOF*/
        -:        -:  240:/*EOF*/
       18:       18:  241:/*EOF*/
       12:       12:  242:/*EOF*/
       24:       24:  243:/*EOF*/
       12:       12:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        6:        6:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        6:        6:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       12:       12:  250:/*EOF*/
        6:        6:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        6:        6:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        6:        6:  257:/*EOF*/
        6:        6:  258:/*EOF*/
        6:        6:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        6:        6:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
       36:       52:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        5:        5:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        5:        5:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       41:       57:  275:/*EOF*/
       36:       52:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        5:        5:  279:/*EOF*/
        1:        1:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        5:        5:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        5:        5:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        5:        5:  289:/*EOF*/
        -:        -:  290:/*EOF*/
       10:       10:  291:/*EOF*/
        5:        5:  292:/*EOF*/
        5:        5:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        5:        5:  296:/*EOF*/

src/intel/compiler/.libs/brw_predicated_break.cpp.gcov

        -:        -:    0:Source:compiler/brw_predicated_break.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_predicated_break.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_predicated_break.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
       18:       20:   57:/*EOF*/
        -:        -:   58:/*EOF*/
       18:       20:   59:/*EOF*/
        -:        -:   60:/*EOF*/
      176:      292:   61:/*EOF*/
      158:      272:   62:/*EOF*/
      130:      186:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
       28:       86:   68:/*EOF*/
       56:      148:   69:/*EOF*/
       28:       62:   70:/*EOF*/
       28:       62:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:       24:   73:/*EOF*/
    #####:       24:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
    #####:       24:   77:/*EOF*/
    #####:       24:   78:/*EOF*/
    #####:       12:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:       12:   81:/*EOF*/
    #####:       12:   82:/*EOF*/
    #####:       12:   83:/*EOF*/
        -:        -:   84:/*EOF*/
    #####:       12:   85:/*EOF*/
    #####:       12:   86:/*EOF*/
        -:        -:   87:/*EOF*/
    #####:       12:   88:/*EOF*/
    #####:       12:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
    #####:       12:   93:/*EOF*/
        -:        -:   94:/*EOF*/
    #####:       12:   95:/*EOF*/
    #####:       12:   96:/*EOF*/
    #####:    #####:   97:/*EOF*/
        -:        -:   98:/*EOF*/
    #####:       12:   99:/*EOF*/
        -:        -:  100:/*EOF*/
    #####:       12:  101:/*EOF*/
    #####:       12:  102:/*EOF*/
    #####:       12:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    #####:       12:  106:/*EOF*/
    #####:       12:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:       12:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:       12:  111:/*EOF*/
    #####:       12:  112:/*EOF*/
        -:        -:  113:/*EOF*/
    #####:       12:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:       12:  121:/*EOF*/
    #####:       12:  122:/*EOF*/
        -:        -:  123:/*EOF*/
    #####:       24:  124:/*EOF*/
    #####:       16:  125:/*EOF*/
    #####:        4:  126:/*EOF*/
    #####:        4:  127:/*EOF*/
    #####:        4:  128:/*EOF*/
    #####:        4:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:        4:  131:/*EOF*/
    #####:        4:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:        4:  134:/*EOF*/
    #####:        4:  135:/*EOF*/
        -:        -:  136:/*EOF*/
    #####:        4:  137:/*EOF*/
    #####:        4:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:       12:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
       18:       20:  144:/*EOF*/
    #####:        2:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       18:       20:  147:/*EOF*/

src/intel/compiler/.libs/brw_schedule_instructions.cpp.gcov

        -:        -:    0:Source:compiler/brw_schedule_instructions.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_schedule_instructions.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_schedule_instructions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
     2524:     2724:  114:/*EOF*/
        -:        -:  115:/*EOF*/
     2524:     2724:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
    #####:    #####:  120:/*EOF*/
        -:        -:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
    #####:    #####:  123:/*EOF*/
        -:        -:  124:/*EOF*/
    #####:    #####:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
    #####:    #####:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
        -:        -:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
    #####:    #####:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
    #####:    #####:  153:/*EOF*/
        -:        -:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      217:      229:  158:/*EOF*/
        -:        -:  159:/*EOF*/
      217:      229:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
       18:       18:  184:/*EOF*/
       18:       18:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
       12:       12:  229:/*EOF*/
       12:       12:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
    #####:    #####:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
    #####:    #####:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
    #####:    #####:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
    #####:    #####:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
      187:      199:  426:/*EOF*/
      187:      199:  427:/*EOF*/
        -:        -:  428:/*EOF*/
      217:      229:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
       12:       12:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
       12:       12:  436:/*EOF*/
       12:       12:  437:/*EOF*/
       12:       12:  438:/*EOF*/
       12:       12:  439:/*EOF*/
       12:       12:  440:/*EOF*/
       12:       12:  441:/*EOF*/
       12:       12:  442:/*EOF*/
       12:       12:  443:/*EOF*/
       12:       12:  444:/*EOF*/
       12:       12:  445:/*EOF*/
        5:        5:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        5:        5:  448:/*EOF*/
       54:       62:  449:/*EOF*/
       49:       57:  450:/*EOF*/
       49:       57:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        5:        5:  453:/*EOF*/
       54:       62:  454:/*EOF*/
       49:       57:  455:/*EOF*/
       49:       57:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        5:        5:  458:/*EOF*/
       54:       62:  459:/*EOF*/
       49:       57:  460:/*EOF*/
       49:       57:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        5:        5:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        5:        5:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        5:        5:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        7:        7:  469:/*EOF*/
        7:        7:  470:/*EOF*/
        7:        7:  471:/*EOF*/
        7:        7:  472:/*EOF*/
        7:        7:  473:/*EOF*/
        7:        7:  474:/*EOF*/
        7:        7:  475:/*EOF*/
        -:        -:  476:/*EOF*/
       12:       12:  477:/*EOF*/
        -:        -:  478:/*EOF*/
       12:       12:  479:/*EOF*/
       24:       24:  480:/*EOF*/
       12:       12:  481:/*EOF*/
       12:       12:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
       10:       10:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
       10:       10:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       10:       10:  589:/*EOF*/
        -:        -:  590:/*EOF*/
       10:       10:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
      762:      798:  594:/*EOF*/
        -:        -:  595:/*EOF*/
     1113:     1161:  596:/*EOF*/
      369:      381:  597:/*EOF*/
       18:       18:  598:/*EOF*/
        -:        -:  599:/*EOF*/
      744:      780:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
      206:      218:  604:/*EOF*/
        -:        -:  605:/*EOF*/
      206:      218:  606:/*EOF*/
        -:        -:  607:/*EOF*/
      206:      218:  608:/*EOF*/
    #####:    #####:  609:/*EOF*/
        -:        -:  610:/*EOF*/
      460:      484:  611:/*EOF*/
      254:      266:  612:/*EOF*/
        6:        6:  613:/*EOF*/
        -:        -:  614:/*EOF*/
      248:      260:  615:/*EOF*/
      153:      157:  616:/*EOF*/
       95:      103:  617:/*EOF*/
       64:       64:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
      144:      144:  621:/*EOF*/
       80:       80:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        5:        5:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
       54:       62:  633:/*EOF*/
     2963:     3475:  634:/*EOF*/
     2914:     3418:  635:/*EOF*/
      429:      675:  636:/*EOF*/
      429:      675:  637:/*EOF*/
      286:      450:  638:/*EOF*/
      286:      450:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
     2914:     3418:  643:/*EOF*/
      450:      702:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
       49:       57:  652:/*EOF*/
     1914:     2262:  653:/*EOF*/
     2978:     3570:  654:/*EOF*/
     1108:     1360:  655:/*EOF*/
      326:      458:  656:/*EOF*/
       44:       12:  657:/*EOF*/
       44:       12:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
      326:      458:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        5:        5:  666:/*EOF*/
        5:        5:  667:/*EOF*/
        -:        -:  668:/*EOF*/
       37:       37:  669:/*EOF*/
       32:       32:  670:/*EOF*/
        6:        6:  671:/*EOF*/
        -:        -:  672:/*EOF*/
      228:      260:  673:/*EOF*/
      202:      234:  674:/*EOF*/
      188:      220:  675:/*EOF*/
        -:        -:  676:/*EOF*/
      202:      234:  677:/*EOF*/
      174:      206:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        5:        5:  680:/*EOF*/
        5:        5:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
      206:      218:  684:/*EOF*/
        -:        -:  685:/*EOF*/
      206:      218:  686:/*EOF*/
        -:        -:  687:/*EOF*/
      206:      218:  688:/*EOF*/
    #####:    #####:  689:/*EOF*/
        -:        -:  690:/*EOF*/
      206:      218:  691:/*EOF*/
      104:      104:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
      460:      484:  695:/*EOF*/
      254:      266:  696:/*EOF*/
        6:        6:  697:/*EOF*/
        -:        -:  698:/*EOF*/
      248:      260:  699:/*EOF*/
      153:      157:  700:/*EOF*/
      159:      167:  701:/*EOF*/
       64:       64:  702:/*EOF*/
      144:      144:  703:/*EOF*/
       80:       80:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
      206:      218:  710:/*EOF*/
        -:        -:  711:/*EOF*/
      206:      218:  712:/*EOF*/
      206:      218:  713:/*EOF*/
        -:        -:  714:/*EOF*/
      206:      218:  715:/*EOF*/
      186:      186:  716:/*EOF*/
       82:       82:  717:/*EOF*/
       75:       75:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
      460:      484:  721:/*EOF*/
      254:      266:  722:/*EOF*/
        6:        6:  723:/*EOF*/
        -:        -:  724:/*EOF*/
      401:      417:  725:/*EOF*/
      244:      244:  726:/*EOF*/
       91:       87:  727:/*EOF*/
       69:       65:  728:/*EOF*/
        -:        -:  729:/*EOF*/
      312:      324:  730:/*EOF*/
       64:       64:  731:/*EOF*/
      144:      144:  732:/*EOF*/
       80:       80:  733:/*EOF*/
      127:      127:  734:/*EOF*/
       47:       47:  735:/*EOF*/
       14:       14:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
      206:      218:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        2:        2:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        2:        2:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        2:        2:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        2:        2:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
    #####:    #####:  768:/*EOF*/
        -:        -:  769:/*EOF*/
    #####:    #####:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
    #####:    #####:  783:/*EOF*/
        -:        -:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
      423:      447:  788:/*EOF*/
      423:      447:  789:/*EOF*/
        -:        -:  790:/*EOF*/
      423:      447:  791:/*EOF*/
        -:        -:  792:/*EOF*/
      423:      447:  793:/*EOF*/
      423:      447:  794:/*EOF*/
      423:      447:  795:/*EOF*/
      423:      447:  796:/*EOF*/
      423:      447:  797:/*EOF*/
      423:      447:  798:/*EOF*/
      423:      447:  799:/*EOF*/
      423:      447:  800:/*EOF*/
      423:      447:  801:/*EOF*/
      423:      447:  802:/*EOF*/
      423:      447:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
      423:      447:  808:/*EOF*/
      206:      218:  809:/*EOF*/
      217:      229:  810:/*EOF*/
      217:      229:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
      423:      447:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
      100:      116:  817:/*EOF*/
        -:        -:  818:/*EOF*/
      523:      563:  819:/*EOF*/
      423:      447:  820:/*EOF*/
        -:        -:  821:/*EOF*/
      423:      447:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
      100:      116:  825:/*EOF*/
      100:      116:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
      100:      116:  830:/*EOF*/
        -:        -:  831:/*EOF*/
      523:      563:  832:/*EOF*/
      423:      447:  833:/*EOF*/
      128:      152:  834:/*EOF*/
        -:        -:  835:/*EOF*/
      893:      837:  836:/*EOF*/
      598:      542:  837:/*EOF*/
      598:      542:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
      100:      116:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
      100:      116:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
      523:      563:  851:/*EOF*/
     1021:      989:  852:/*EOF*/
      598:      542:  853:/*EOF*/
     1196:     1084:  854:/*EOF*/
     1196:     1084:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
      523:      563:  864:/*EOF*/
      423:      447:  865:/*EOF*/
        -:        -:  866:/*EOF*/
     1021:      989:  867:/*EOF*/
      598:      542:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
      100:      116:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
     1555:     1575:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
     1555:     1575:  884:/*EOF*/
      753:      815:  885:/*EOF*/
        -:        -:  886:/*EOF*/
      802:      760:  887:/*EOF*/
        -:        -:  888:/*EOF*/
     1836:     1510:  889:/*EOF*/
     1238:      968:  890:/*EOF*/
      204:      218:  891:/*EOF*/
      204:      218:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
      598:      542:  896:/*EOF*/
      295:      295:  897:/*EOF*/
      295:      295:  898:/*EOF*/
        -:        -:  899:/*EOF*/
    #####:    #####:  900:/*EOF*/
        -:        -:  901:/*EOF*/
      295:      295:  902:/*EOF*/
        -:        -:  903:/*EOF*/
      295:      295:  904:/*EOF*/
      295:      295:  905:/*EOF*/
      295:      295:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
      598:      542:  909:/*EOF*/
      598:      542:  910:/*EOF*/
      598:      542:  911:/*EOF*/
      598:      542:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
     1149:     1209:  916:/*EOF*/
        -:        -:  917:/*EOF*/
     1149:     1209:  918:/*EOF*/
      750:      762:  919:/*EOF*/
        -:        -:  920:/*EOF*/
      399:      447:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
      114:      122:  930:/*EOF*/
        -:        -:  931:/*EOF*/
      114:      122:  932:/*EOF*/
      114:      122:  933:/*EOF*/
        -:        -:  934:/*EOF*/
      114:      122:  935:/*EOF*/
        -:        -:  936:/*EOF*/
      114:      122:  937:/*EOF*/
      550:      574:  938:/*EOF*/
      262:      262:  939:/*EOF*/
      262:      262:  940:/*EOF*/
       44:       36:  941:/*EOF*/
      218:      226:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
      114:      122:  946:/*EOF*/
      510:      390:  947:/*EOF*/
      198:      134:  948:/*EOF*/
      198:      134:  949:/*EOF*/
    #####:    #####:  950:/*EOF*/
      198:      134:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
      114:      122:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
     1786:     1722:  960:/*EOF*/
        -:        -:  961:/*EOF*/
     1786:     1722:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
      412:      436:  966:/*EOF*/
        -:        -:  967:/*EOF*/
      824:      872:  968:/*EOF*/
      720:      760:  969:/*EOF*/
      720:      760:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
       98:      114:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
       98:      114:  980:/*EOF*/
      294:      342:  981:/*EOF*/
       98:      114:  982:/*EOF*/
       98:      114:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
       98:      114:  989:/*EOF*/
        -:        -:  990:/*EOF*/
       98:      114:  991:/*EOF*/
       98:      114:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
      510:      550:  995:/*EOF*/
      412:      436:  996:/*EOF*/
        -:        -:  997:/*EOF*/
      412:      436:  998:/*EOF*/
      114:      122:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
      920:      968: 1002:/*EOF*/
      508:      532: 1003:/*EOF*/
      318:      326: 1004:/*EOF*/
      370:      380: 1005:/*EOF*/
      211:      217: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
      370:      380: 1008:/*EOF*/
      633:      651: 1009:/*EOF*/
      633:      651: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
      190:      206: 1013:/*EOF*/
      128:      128: 1014:/*EOF*/
      144:      144: 1015:/*EOF*/
       80:       80: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
       64:       64: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
       62:       78: 1020:/*EOF*/
    #####:    #####: 1021:/*EOF*/
       62:       78: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
      412:      436: 1027:/*EOF*/
       66:       66: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
       56:       56: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
      412:      436: 1037:/*EOF*/
       44:       60: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
      220:      300: 1040:/*EOF*/
      176:      240: 1041:/*EOF*/
       66:       90: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
      412:      436: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
      412:      436: 1051:/*EOF*/
      208:      208: 1052:/*EOF*/
      248:      248: 1053:/*EOF*/
      144:      144: 1054:/*EOF*/
      144:      144: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
      248:      248: 1058:/*EOF*/
      432:      432: 1059:/*EOF*/
      432:      432: 1060:/*EOF*/
      288:      288: 1061:/*EOF*/
      288:      288: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
      204:      228: 1065:/*EOF*/
       46:       46: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
       46:       46: 1068:/*EOF*/
       46:       46: 1069:/*EOF*/
       46:       46: 1070:/*EOF*/
       10:       10: 1071:/*EOF*/
    #####:    #####: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
       10:       10: 1074:/*EOF*/
       10:       10: 1075:/*EOF*/
       10:       10: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
      158:      182: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
    #####:    #####: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
      158:      182: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
      158:      182: 1088:/*EOF*/
    #####:    #####: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
      412:      436: 1092:/*EOF*/
       30:       30: 1093:/*EOF*/
       20:       20: 1094:/*EOF*/
       20:       20: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
      412:      436: 1099:/*EOF*/
       44:       60: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
      220:      300: 1102:/*EOF*/
      176:      240: 1103:/*EOF*/
       66:       90: 1104:/*EOF*/
       66:       90: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
      412:      436: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
       98:      114: 1118:/*EOF*/
       98:      114: 1119:/*EOF*/
       98:      114: 1120:/*EOF*/
       98:      114: 1121:/*EOF*/
       98:      114: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
      510:      550: 1124:/*EOF*/
      412:      436: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
      920:      968: 1128:/*EOF*/
      508:      532: 1129:/*EOF*/
      318:      326: 1130:/*EOF*/
      370:      380: 1131:/*EOF*/
      211:      217: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
      370:      380: 1134:/*EOF*/
      633:      651: 1135:/*EOF*/
      633:      651: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
      190:      206: 1139:/*EOF*/
      128:      128: 1140:/*EOF*/
      144:      144: 1141:/*EOF*/
       80:       80: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
       64:       64: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
       62:       78: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
       62:       78: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
      412:      436: 1153:/*EOF*/
       66:       66: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
       56:       56: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
      412:      436: 1163:/*EOF*/
       44:       60: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
      220:      300: 1166:/*EOF*/
      176:      240: 1167:/*EOF*/
       66:       90: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
      412:      436: 1172:/*EOF*/
    #####:    #####: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
      412:      436: 1179:/*EOF*/
      208:      208: 1180:/*EOF*/
      248:      248: 1181:/*EOF*/
      144:      144: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
      248:      248: 1184:/*EOF*/
      288:      288: 1185:/*EOF*/
      288:      288: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
      204:      228: 1189:/*EOF*/
       46:       46: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
       46:       46: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
       46:       46: 1194:/*EOF*/
       10:       10: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
       10:       10: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
       10:       10: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
      158:      182: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
    #####:    #####: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
    #####:    #####: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
      158:      182: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
      158:      182: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
      412:      436: 1215:/*EOF*/
       30:       30: 1216:/*EOF*/
       20:       20: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
      412:      436: 1221:/*EOF*/
       44:       60: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
      220:      300: 1224:/*EOF*/
      176:      240: 1225:/*EOF*/
       66:       90: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
      412:      436: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
       98:      114: 1233:/*EOF*/
       98:      114: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
       11:       11: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
       22:       22: 1239:/*EOF*/
       22:       22: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        2:        2: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        2:        2: 1246:/*EOF*/
        6:        6: 1247:/*EOF*/
        2:        2: 1248:/*EOF*/
        2:        2: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        2:        2: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        2:        2: 1257:/*EOF*/
        2:        2: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
       13:       13: 1261:/*EOF*/
       11:       11: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
       11:       11: 1264:/*EOF*/
    #####:    #####: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
       44:       44: 1268:/*EOF*/
       33:       33: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
       33:       33: 1272:/*EOF*/
        6:        6: 1273:/*EOF*/
       27:       27: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
       27:       27: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
       11:       11: 1282:/*EOF*/
       19:       19: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        8:        8: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
       11:       11: 1292:/*EOF*/
    #####:    #####: 1293:/*EOF*/
    #####:    #####: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
       11:       11: 1297:/*EOF*/
    #####:    #####: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
       11:       11: 1303:/*EOF*/
    #####:    #####: 1304:/*EOF*/
    #####:    #####: 1305:/*EOF*/
    #####:    #####: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
       11:       11: 1308:/*EOF*/
        9:        9: 1309:/*EOF*/
        9:        9: 1310:/*EOF*/
        2:        2: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
        2:        2: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
    #####:    #####: 1315:/*EOF*/
        2:        2: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
       11:       11: 1320:/*EOF*/
        4:        4: 1321:/*EOF*/
        2:        2: 1322:/*EOF*/
        2:        2: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
       11:       11: 1327:/*EOF*/
    #####:    #####: 1328:/*EOF*/
    #####:    #####: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
       11:       11: 1332:/*EOF*/
    #####:    #####: 1333:/*EOF*/
    #####:    #####: 1334:/*EOF*/
    #####:    #####: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        2:        2: 1340:/*EOF*/
        2:        2: 1341:/*EOF*/
        2:        2: 1342:/*EOF*/
        2:        2: 1343:/*EOF*/
        2:        2: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
       13:       13: 1346:/*EOF*/
       11:       11: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
       44:       44: 1350:/*EOF*/
       33:       33: 1351:/*EOF*/
    #####:    #####: 1352:/*EOF*/
    #####:    #####: 1353:/*EOF*/
       33:       33: 1354:/*EOF*/
        6:        6: 1355:/*EOF*/
       27:       27: 1356:/*EOF*/
    #####:    #####: 1357:/*EOF*/
       27:       27: 1358:/*EOF*/
    #####:    #####: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
       11:       11: 1363:/*EOF*/
       19:       19: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        8:        8: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
       11:       11: 1373:/*EOF*/
    #####:    #####: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
       11:       11: 1377:/*EOF*/
    #####:    #####: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
       11:       11: 1384:/*EOF*/
    #####:    #####: 1385:/*EOF*/
    #####:    #####: 1386:/*EOF*/
       11:       11: 1387:/*EOF*/
        9:        9: 1388:/*EOF*/
        2:        2: 1389:/*EOF*/
    #####:    #####: 1390:/*EOF*/
        2:        2: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
        2:        2: 1393:/*EOF*/
    #####:    #####: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
       11:       11: 1397:/*EOF*/
        4:        4: 1398:/*EOF*/
        2:        2: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
       11:       11: 1403:/*EOF*/
    #####:    #####: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
       11:       11: 1407:/*EOF*/
    #####:    #####: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        2:        2: 1410:/*EOF*/
        2:        2: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
      412:      436: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
      412:      436: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
      412:      436: 1418:/*EOF*/
      412:      436: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
     1156:     1282: 1425:/*EOF*/
     1076:     1256: 1426:/*EOF*/
     1600:     1820: 1427:/*EOF*/
      664:      820: 1428:/*EOF*/
      332:      410: 1429:/*EOF*/
      524:      564: 1430:/*EOF*/
      524:      564: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
      412:      436: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
    #####:    #####: 1441:/*EOF*/
    #####:    #####: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
    #####:    #####: 1444:/*EOF*/
    #####:    #####: 1445:/*EOF*/
    #####:    #####: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
    #####:    #####: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
    #####:    #####: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
    #####:    #####: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
    #####:    #####: 1458:/*EOF*/
    #####:    #####: 1459:/*EOF*/
    #####:    #####: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
    #####:    #####: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
    #####:    #####: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
    #####:    #####: 1474:/*EOF*/
    #####:    #####: 1475:/*EOF*/
    #####:    #####: 1476:/*EOF*/
    #####:    #####: 1477:/*EOF*/
    #####:    #####: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
    #####:    #####: 1487:/*EOF*/
    #####:    #####: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
    #####:    #####: 1495:/*EOF*/
    #####:    #####: 1496:/*EOF*/
    #####:    #####: 1497:/*EOF*/
    #####:    #####: 1498:/*EOF*/
    #####:    #####: 1499:/*EOF*/
    #####:    #####: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
    #####:    #####: 1511:/*EOF*/
    #####:    #####: 1512:/*EOF*/
    #####:    #####: 1513:/*EOF*/
    #####:    #####: 1514:/*EOF*/
    #####:    #####: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
        -:        -: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    #####:    #####: 1520:/*EOF*/
    #####:    #####: 1521:/*EOF*/
    #####:    #####: 1522:/*EOF*/
    #####:    #####: 1523:/*EOF*/
    #####:    #####: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
      412:      436: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
       11:       11: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
       11:       11: 1539:/*EOF*/
       11:       11: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
       29:       29: 1545:/*EOF*/
       18:       18: 1546:/*EOF*/
       14:       14: 1547:/*EOF*/
       14:       14: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
       11:       11: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
     1694:     1630: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
     1694:     1630: 1558:/*EOF*/
      747:      707: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
      947:      923: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
       28:       28: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
       28:       28: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
      100:      116: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
      100:      116: 1574:/*EOF*/
      100:      116: 1575:/*EOF*/
      100:      116: 1576:/*EOF*/
       49:       57: 1577:/*EOF*/
      100:      116: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
      523:      563: 1581:/*EOF*/
      423:      447: 1582:/*EOF*/
      268:      256: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
      100:      116: 1586:/*EOF*/
      946:     1010: 1587:/*EOF*/
      423:      447: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
      423:      447: 1591:/*EOF*/
      423:      447: 1592:/*EOF*/
      423:      447: 1593:/*EOF*/
      423:      447: 1594:/*EOF*/
      423:      447: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
      423:      447: 1597:/*EOF*/
      206:      218: 1598:/*EOF*/
      206:      218: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
      423:      447: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
      423:      447: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
      423:      447: 1615:/*EOF*/
    #####:    #####: 1616:/*EOF*/
    #####:    #####: 1617:/*EOF*/
    #####:    #####: 1618:/*EOF*/
    #####:    #####: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
     1021:      989: 1627:/*EOF*/
      598:      542: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
      598:      542: 1630:/*EOF*/
      598:      542: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
      598:      542: 1633:/*EOF*/
    #####:    #####: 1634:/*EOF*/
    #####:    #####: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
      598:      542: 1638:/*EOF*/
      598:      542: 1639:/*EOF*/
      598:      542: 1640:/*EOF*/
      268:      256: 1641:/*EOF*/
    #####:    #####: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
      268:      256: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
      423:      447: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
      423:      447: 1654:/*EOF*/
    #####:    #####: 1655:/*EOF*/
    #####:    #####: 1656:/*EOF*/
    #####:    #####: 1657:/*EOF*/
    #####:    #####: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
      100:      116: 1663:/*EOF*/
        -:        -: 1664:/*EOF*/
      100:      116: 1665:/*EOF*/
      100:      116: 1666:/*EOF*/
        -:        -: 1667:/*EOF*/
       12:       12: 1668:/*EOF*/
        -:        -: 1669:/*EOF*/
       12:       12: 1670:/*EOF*/
      112:      128: 1671:/*EOF*/
      100:      116: 1672:/*EOF*/
        8:       16: 1673:/*EOF*/
        -:        -: 1674:/*EOF*/
      100:      116: 1675:/*EOF*/
        -:        -: 1676:/*EOF*/
      100:      116: 1677:/*EOF*/
        8:       16: 1678:/*EOF*/
        -:        -: 1679:/*EOF*/
        -:        -: 1680:/*EOF*/
       12:       12: 1681:/*EOF*/
        -:        -: 1682:/*EOF*/
        -:        -: 1683:/*EOF*/
        -:        -: 1684:/*EOF*/
       12:       12: 1685:/*EOF*/
        -:        -: 1686:/*EOF*/
       12:       12: 1687:/*EOF*/
    #####:    #####: 1688:/*EOF*/
    #####:    #####: 1689:/*EOF*/
    #####:    #####: 1690:/*EOF*/
        -:        -: 1691:/*EOF*/
        -:        -: 1692:/*EOF*/
       12:       12: 1693:/*EOF*/
        5:        5: 1694:/*EOF*/
        -:        -: 1695:/*EOF*/
      112:      128: 1696:/*EOF*/
      100:      116: 1697:/*EOF*/
       49:       57: 1698:/*EOF*/
       98:      114: 1699:/*EOF*/
       49:       57: 1700:/*EOF*/
       98:      114: 1701:/*EOF*/
       49:       57: 1702:/*EOF*/
        -:        -: 1703:/*EOF*/
      255:      275: 1704:/*EOF*/
      206:      218: 1705:/*EOF*/
        -:        -: 1706:/*EOF*/
        -:        -: 1707:/*EOF*/
      100:      116: 1708:/*EOF*/
        -:        -: 1709:/*EOF*/
      100:      116: 1710:/*EOF*/
        -:        -: 1711:/*EOF*/
      100:      116: 1712:/*EOF*/
      100:      116: 1713:/*EOF*/
        -:        -: 1714:/*EOF*/
      100:      116: 1715:/*EOF*/
        -:        -: 1716:/*EOF*/
        -:        -: 1717:/*EOF*/
       12:       12: 1718:/*EOF*/
    #####:    #####: 1719:/*EOF*/
    #####:    #####: 1720:/*EOF*/
    #####:    #####: 1721:/*EOF*/
        -:        -: 1722:/*EOF*/
        -:        -: 1723:/*EOF*/
       12:       12: 1724:/*EOF*/
       12:       12: 1725:/*EOF*/
        -:        -: 1726:/*EOF*/
        -:        -: 1727:/*EOF*/
       10:       10: 1728:/*EOF*/
        -:        -: 1729:/*EOF*/
       10:       10: 1730:/*EOF*/
        5:        5: 1731:/*EOF*/
        -:        -: 1732:/*EOF*/
        -:        -: 1733:/*EOF*/
       10:       10: 1734:/*EOF*/
        5:        5: 1735:/*EOF*/
        -:        -: 1736:/*EOF*/
        5:        5: 1737:/*EOF*/
        -:        -: 1738:/*EOF*/
        -:        -: 1739:/*EOF*/
       20:       20: 1740:/*EOF*/
       10:       10: 1741:/*EOF*/
        -:        -: 1742:/*EOF*/
       10:       10: 1743:/*EOF*/
       10:       10: 1744:/*EOF*/
        -:        -: 1745:/*EOF*/
        -:        -: 1746:/*EOF*/
        2:        2: 1747:/*EOF*/
        -:        -: 1748:/*EOF*/
        4:        4: 1749:/*EOF*/
        2:        2: 1750:/*EOF*/
        -:        -: 1751:/*EOF*/
        2:        2: 1752:/*EOF*/
        5:        5: 1753:/*EOF*/

src/intel/compiler/.libs/brw_shader.cpp.gcov

        -:        -:    0:Source:compiler/brw_shader.cpp
        -:        -:    0:Graph:compiler_libintel_compiler_la-brw_shader.gcno
        -:        -:    0:Data:compiler_libintel_compiler_la-brw_shader.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
       22:       22:   34:/*EOF*/
        -:        -:   35:/*EOF*/
       22:       22:   36:/*EOF*/
        -:        -:   37:/*EOF*/
       15:       15:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
    #####:    #####:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        7:        7:   44:/*EOF*/
        -:        -:   45:/*EOF*/
    #####:    #####:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
    #####:    #####:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
    #####:    #####:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
    #####:    #####:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
    #####:    #####:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
        -:        -:   75:/*EOF*/
    #####:    #####:   76:/*EOF*/
        -:        -:   77:/*EOF*/
    #####:    #####:   78:/*EOF*/
        -:        -:   79:/*EOF*/
    #####:    #####:   80:/*EOF*/
        -:        -:   81:/*EOF*/
    #####:    #####:   82:/*EOF*/
        -:        -:   83:/*EOF*/
    #####:    #####:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
    #####:    #####:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
       12:       12:   97:/*EOF*/
        -:        -:   98:/*EOF*/
       12:       12:   99:/*EOF*/
        -:        -:  100:/*EOF*/
       12:       12:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
        -:        -:  104:/*EOF*/
    #####:    #####:  105:/*EOF*/
        -:        -:  106:/*EOF*/
    #####:    #####:  107:/*EOF*/
        -:        -:  108:/*EOF*/
    #####:    #####:  109:/*EOF*/
        -:        -:  110:/*EOF*/
    #####:    #####:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    #####:    #####:  113:/*EOF*/
        -:        -:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    #####:    #####:  117:/*EOF*/
        -:        -:  118:/*EOF*/
    #####:    #####:  119:/*EOF*/
        -:        -:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
    #####:    #####:  126:/*EOF*/
        -:        -:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
    #####:    #####:  132:/*EOF*/
    #####:    #####:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
    #####:    #####:  141:/*EOF*/
    #####:    #####:  142:/*EOF*/
    #####:    #####:  143:/*EOF*/
    #####:    #####:  144:/*EOF*/
        -:        -:  145:/*EOF*/
    #####:    #####:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
        -:        -:  151:/*EOF*/
    #####:    #####:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
    #####:    #####:  157:/*EOF*/
    #####:    #####:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
    #####:    #####:  163:/*EOF*/
    #####:    #####:  164:/*EOF*/
        -:        -:  165:/*EOF*/
    #####:    #####:  166:/*EOF*/
    #####:    #####:  167:/*EOF*/
        -:        -:  168:/*EOF*/
    #####:    #####:  169:/*EOF*/
    #####:    #####:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    #####:    #####:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    #####:    #####:  174:/*EOF*/
        -:        -:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
    #####:    #####:  178:/*EOF*/
        -:        -:  179:/*EOF*/
    #####:    #####:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    #####:    #####:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    #####:    #####:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
    #####:    #####:  195:/*EOF*/
        -:        -:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
        -:        -:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
    #####:    #####:  206:/*EOF*/
        -:        -:  207:/*EOF*/
    #####:    #####:  208:/*EOF*/
        -:        -:  209:/*EOF*/
    #####:    #####:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
        -:        -:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
    #####:    #####:  218:/*EOF*/
        -:        -:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
        -:        -:  223:/*EOF*/
    #####:    #####:  224:/*EOF*/
        -:        -:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
    #####:    #####:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
        -:        -:  235:/*EOF*/
    #####:    #####:  236:/*EOF*/
        -:        -:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    #####:    #####:  250:/*EOF*/
        -:        -:  251:/*EOF*/
    #####:    #####:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    #####:    #####:  258:/*EOF*/
        -:        -:  259:/*EOF*/
    #####:    #####:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
    #####:    #####:  274:/*EOF*/
        -:        -:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
        -:        -:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
    #####:    #####:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    #####:    #####:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
    #####:    #####:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
    #####:    #####:  319:/*EOF*/
        -:        -:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
    #####:    #####:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    #####:    #####:  328:/*EOF*/
        -:        -:  329:/*EOF*/
    #####:    #####:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    #####:    #####:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    #####:    #####:  336:/*EOF*/
        -:        -:  337:/*EOF*/
    #####:    #####:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    #####:    #####:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    #####:    #####:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
        -:        -:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
        -:        -:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
    #####:    #####:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
    #####:    #####:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
    #####:    #####:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
    #####:    #####:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
    #####:    #####:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
        -:        -:  426:/*EOF*/
    #####:    #####:  427:/*EOF*/
        -:        -:  428:/*EOF*/
    #####:    #####:  429:/*EOF*/
        -:        -:  430:/*EOF*/
    #####:    #####:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
        -:        -:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
    #####:    #####:  453:/*EOF*/
        -:        -:  454:/*EOF*/
    #####:    #####:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
        -:        -:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
    #####:    #####:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
        -:        -:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
        -:        -:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
    #####:    #####:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
    #####:    #####:  504:/*EOF*/
    #####:    #####:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
        -:        -:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
        -:        -:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
    #####:    #####:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
    #####:    #####:  530:/*EOF*/
        -:        -:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
    #####:    #####:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
    #####:    #####:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
    #####:        4:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:        4:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
    #####:    #####:  559:/*EOF*/
    #####:    #####:  560:/*EOF*/
        -:        -:  561:/*EOF*/
    #####:        4:  562:/*EOF*/
    #####:        4:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
    #####:    #####:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
    #####:    #####:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
        -:        -:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
        -:        -:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
    #####:    #####:  599:/*EOF*/
        -:        -:  600:/*EOF*/
    #####:    #####:  601:/*EOF*/
    #####:    #####:  602:/*EOF*/
        -:        -:  603:/*EOF*/
    #####:    #####:  604:/*EOF*/
    #####:    #####:  605:/*EOF*/
        -:        -:  606:/*EOF*/
    #####:    #####:  607:/*EOF*/
    #####:    #####:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
    #####:    #####:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
    #####:    #####:  619:/*EOF*/
        -:        -:  620:/*EOF*/
    #####:    #####:  621:/*EOF*/
        -:        -:  622:/*EOF*/
    #####:    #####:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
    #####:    #####:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
    #####:    #####:  633:/*EOF*/
        -:        -:  634:/*EOF*/
    #####:    #####:  635:/*EOF*/
        -:        -:  636:/*EOF*/
    #####:    #####:  637:/*EOF*/
        -:        -:  638:/*EOF*/
    #####:    #####:  639:/*EOF*/
        -:        -:  640:/*EOF*/
    #####:    #####:  641:/*EOF*/
        -:        -:  642:/*EOF*/
    #####:    #####:  643:/*EOF*/
        -:        -:  644:/*EOF*/
    #####:    #####:  645:/*EOF*/
        -:        -:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
        -:        -:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        8:        8:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        8:        8:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
       16:       16:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        8:        8:  675:/*EOF*/
        8:        8:  676:/*EOF*/
        8:        8:  677:/*EOF*/
        8:        8:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
      837:      949:  681:/*EOF*/
        -:        -:  682:/*EOF*/
      837:      949:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
      173:      250:  687:/*EOF*/
        -:        -:  688:/*EOF*/
      173:      250:  689:/*EOF*/
      128:      174:  690:/*EOF*/
        -:        -:  691:/*EOF*/
       45:       76:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        8:       24:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
       24:       36:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
       13:       16:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
       72:       96:  709:/*EOF*/
        -:        -:  710:/*EOF*/
       72:       96:  711:/*EOF*/
       72:       96:  712:/*EOF*/
        -:        -:  713:/*EOF*/
    #####:    #####:  714:/*EOF*/
        -:        -:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
        -:        -:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
    #####:    #####:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
        -:        -:  739:/*EOF*/
    #####:    #####:  740:/*EOF*/
        -:        -:  741:/*EOF*/
    #####:    #####:  742:/*EOF*/
        -:        -:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
     2963:     3615:  751:/*EOF*/
        -:        -:  752:/*EOF*/
     2963:     3615:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
      543:      623:  758:/*EOF*/
        -:        -:  759:/*EOF*/
      543:      623:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
      149:      192:  764:/*EOF*/
        -:        -:  765:/*EOF*/
      149:      192:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        5:        6:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
      144:      186:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
      402:      426:  787:/*EOF*/
        -:        -:  788:/*EOF*/
      402:      426:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
    93164:   110984:  793:/*EOF*/
        -:        -:  794:/*EOF*/
   186328:   221968:  795:/*EOF*/
   186328:   221968:  796:/*EOF*/
   186328:   221968:  797:/*EOF*/
   186328:   221968:  798:/*EOF*/
   186328:   221968:  799:/*EOF*/
   186328:   221968:  800:/*EOF*/
   186328:   221968:  801:/*EOF*/
   186328:   221968:  802:/*EOF*/
   186328:   221968:  803:/*EOF*/
   186328:   221968:  804:/*EOF*/
   186328:   221968:  805:/*EOF*/
   186328:   221968:  806:/*EOF*/
   186328:   221968:  807:/*EOF*/
   186328:   221968:  808:/*EOF*/
   279492:   332952:  809:/*EOF*/
   186328:   221968:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
      170:      176:  814:/*EOF*/
        -:        -:  815:/*EOF*/
      315:      321:  816:/*EOF*/
      290:      290:  817:/*EOF*/
      290:      290:  818:/*EOF*/
      290:      290:  819:/*EOF*/
      290:      290:  820:/*EOF*/
      290:      290:  821:/*EOF*/
      290:      290:  822:/*EOF*/
      290:      290:  823:/*EOF*/
      460:      466:  824:/*EOF*/
      315:      321:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
     1438:     1736:  829:/*EOF*/
        -:        -:  830:/*EOF*/
     1438:     1736:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
      287:      403:  839:/*EOF*/
        -:        -:  840:/*EOF*/
     1151:     1333:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
       35:       35:  846:/*EOF*/
        -:        -:  847:/*EOF*/
       35:       35:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
    #####:    #####:  858:/*EOF*/
        -:        -:  859:/*EOF*/
       35:       35:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
    #####:    #####:  902:/*EOF*/
        -:        -:  903:/*EOF*/
    #####:    #####:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
    #####:    #####:  909:/*EOF*/
        -:        -:  910:/*EOF*/
    #####:    #####:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
    #####:    #####:  949:/*EOF*/
        -:        -:  950:/*EOF*/
    #####:    #####:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
      855:      903:  956:/*EOF*/
        -:        -:  957:/*EOF*/
      855:      903:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
    #####:    #####:  962:/*EOF*/
        -:        -:  963:/*EOF*/
      855:      903:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
      846:      894:  969:/*EOF*/
        -:        -:  970:/*EOF*/
     1692:     1788:  971:/*EOF*/
      846:      894:  972:/*EOF*/
    #####:    #####:  973:/*EOF*/
    #####:    #####:  974:/*EOF*/
      846:      894:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
      541:      625:  979:/*EOF*/
        -:        -:  980:/*EOF*/
      541:      625:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
    #####:    #####: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
      541:      625: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
    #####:    #####: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
    #####:    #####: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
    #####:    #####: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
    #####:    #####: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
      242:      282: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
      242:      282: 1028:/*EOF*/
     2801:     2962: 1029:/*EOF*/
     2559:     2680: 1030:/*EOF*/
      242:      282: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
      242:      282: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
      242:      282: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
     2165:     4007: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
     1923:     3725: 1044:/*EOF*/
     1923:     3725: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
      242:      282: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
    #####:    #####: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
    #####:    #####: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
    #####:    #####: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
       46:       46: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
       46:       46: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
       46:       46: 1069:/*EOF*/
       46:       46: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
       46:       46: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
       46:       46: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
       46:       46: 1076:/*EOF*/
       46:       46: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
    #####:    #####: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
    #####:    #####: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
    #####:    #####: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
      196:      236: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
      196:      236: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
      196:      236: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
      196:      236: 1100:/*EOF*/
        8:       16: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
      188:      220: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
      196:      236: 1106:/*EOF*/
      196:      236: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
    #####:    #####: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
    #####:    #####: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
    #####:    #####: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
    #####:    #####: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
    #####:    #####: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
    #####:    #####: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        8:        8: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        8:        8: 1149:/*EOF*/
    #####:    #####: 1150:/*EOF*/
        8:        8: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
    #####:    #####: 1175:/*EOF*/
    #####:    #####: 1176:/*EOF*/
    #####:    #####: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
    #####:    #####: 1179:/*EOF*/
    #####:    #####: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
    #####:    #####: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
    #####:    #####: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
    #####:    #####: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
    #####:    #####: 1195:/*EOF*/
    #####:    #####: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
    #####:    #####: 1199:/*EOF*/
    #####:    #####: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
    #####:    #####: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
    #####:    #####: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
    #####:    #####: 1213:/*EOF*/
    #####:    #####: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
    #####:    #####: 1216:/*EOF*/
    #####:    #####: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
    #####:    #####: 1219:/*EOF*/
    #####:    #####: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
    #####:    #####: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
    #####:    #####: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
    #####:    #####: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
    #####:    #####: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
    #####:    #####: 1237:/*EOF*/
    #####:    #####: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
    #####:    #####: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
    #####:    #####: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
    #####:    #####: 1259:/*EOF*/
    #####:    #####: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
    #####:    #####: 1274:/*EOF*/
    #####:    #####: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
    #####:    #####: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        3:        3: 1286:/*EOF*/

src/loader/.libs/loader_dri3_helper.c.gcov

        -:        -:    0:Source:loader_dri3_helper.c
        -:        -:    0:Graph:loader_dri3_helper.gcno
        -:        -:    0:Data:loader_dri3_helper.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        6:        6:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        6:        6:   46:/*EOF*/
        6:        6:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        2:        2:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        2:        2:   52:/*EOF*/
        2:        2:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
    #####:    #####:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
    #####:    #####:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        8:        8:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        8:        8:   64:/*EOF*/
        8:        8:   65:/*EOF*/
        8:        8:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        7:        7:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        7:        7:   71:/*EOF*/
    #####:    #####:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        7:        7:   74:/*EOF*/
        7:        7:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        2:        2:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        2:        2:   80:/*EOF*/
        2:        2:   81:/*EOF*/
        2:        2:   82:/*EOF*/
        2:        2:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        2:        2:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        2:        2:   94:/*EOF*/
        2:        2:   95:/*EOF*/
        2:        2:   96:/*EOF*/
        2:        2:   97:/*EOF*/
        2:        2:   98:/*EOF*/
        2:        2:   99:/*EOF*/
    #####:    #####:  100:/*EOF*/
        2:        2:  101:/*EOF*/
        2:        2:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        1:        1:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        1:        1:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        6:        6:  111:/*EOF*/
        5:        5:  112:/*EOF*/
        2:        2:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        1:        1:  116:/*EOF*/
        1:        1:  117:/*EOF*/
        1:        1:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        1:        1:  121:/*EOF*/
        1:        1:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        1:        1:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        1:        1:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        1:        1:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        1:        1:  142:/*EOF*/
        1:        1:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        1:        1:  145:/*EOF*/
        1:        1:  146:/*EOF*/
        1:        1:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        1:        1:  149:/*EOF*/
        1:        1:  150:/*EOF*/
        1:        1:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        1:        1:  153:/*EOF*/
        1:        1:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        1:        1:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
    #####:    #####:  160:/*EOF*/
    #####:    #####:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        1:        1:  165:/*EOF*/
        1:        1:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        1:        1:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        1:        1:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        1:        1:  173:/*EOF*/
        1:        1:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        1:        1:  178:/*EOF*/
    #####:    #####:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        1:        1:  181:/*EOF*/
        1:        1:  182:/*EOF*/
        1:        1:  183:/*EOF*/
    #####:    #####:  184:/*EOF*/
    #####:    #####:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        1:        1:  188:/*EOF*/
        1:        1:  189:/*EOF*/
        1:        1:  190:/*EOF*/
        1:        1:  191:/*EOF*/
        1:        1:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        1:        1:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        1:        1:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        9:        9:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        9:        9:  210:/*EOF*/
        -:        -:  211:/*EOF*/
    #####:    #####:  212:/*EOF*/
        -:        -:  213:/*EOF*/
    #####:    #####:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
    #####:    #####:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        4:        4:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        4:        4:  226:/*EOF*/
        4:        4:  227:/*EOF*/
        4:        4:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        4:        4:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        3:        3:  235:/*EOF*/
        3:        3:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        4:        4:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        4:        4:  240:/*EOF*/
        4:        4:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        4:        4:  243:/*EOF*/
        4:        4:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    #####:    #####:  246:/*EOF*/
    #####:    #####:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        4:        4:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        5:        5:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        7:        7:  256:/*EOF*/
        7:        7:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        7:        7:  259:/*EOF*/
        5:        5:  260:/*EOF*/
        5:        5:  261:/*EOF*/
    #####:    #####:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        5:        5:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        5:        5:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        9:        9:  271:/*EOF*/
        9:        9:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
    #####:    #####:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
    #####:    #####:  283:/*EOF*/
    #####:    #####:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
    #####:    #####:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
    #####:    #####:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
    #####:    #####:  315:/*EOF*/
    #####:    #####:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
    #####:    #####:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
    #####:    #####:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
    #####:    #####:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        9:       10:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
       17:       20:  371:/*EOF*/
       16:       18:  372:/*EOF*/
       16:       18:  373:/*EOF*/
        -:        -:  374:/*EOF*/
       16:       18:  375:/*EOF*/
        8:        8:  376:/*EOF*/
        8:        8:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        1:        2:  380:/*EOF*/
        1:        2:  381:/*EOF*/
        1:        2:  382:/*EOF*/
    #####:    #####:  383:/*EOF*/
        1:        2:  384:/*EOF*/
        1:        2:  385:/*EOF*/
        1:        2:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
    #####:    #####:  390:/*EOF*/
        -:        -:  391:/*EOF*/
    #####:    #####:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
    #####:    #####:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
    #####:    #####:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    #####:    #####:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
    #####:    #####:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        6:        6:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        6:        6:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        6:        6:  457:/*EOF*/
        6:        6:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        6:        6:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
    #####:    #####:  477:/*EOF*/
        -:        -:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
    #####:    #####:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
        -:        -:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
        -:        -:  485:/*EOF*/
    #####:    #####:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
    #####:    #####:  495:/*EOF*/
    #####:    #####:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
    #####:    #####:  500:/*EOF*/
    #####:    #####:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
    #####:    #####:  507:/*EOF*/
    #####:    #####:  508:/*EOF*/
    #####:    #####:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
    #####:    #####:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
    #####:    #####:  517:/*EOF*/
    #####:    #####:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
    #####:    #####:  525:/*EOF*/
        -:        -:  526:/*EOF*/
    #####:    #####:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
    #####:    #####:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
    #####:    #####:  541:/*EOF*/
    #####:    #####:  542:/*EOF*/
    #####:    #####:  543:/*EOF*/
    #####:    #####:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
    #####:    #####:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
    #####:    #####:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
    #####:    #####:  565:/*EOF*/
    #####:    #####:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
    #####:    #####:  569:/*EOF*/
    #####:    #####:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
    #####:    #####:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
    #####:    #####:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
    #####:    #####:  581:/*EOF*/
    #####:    #####:  582:/*EOF*/
        -:        -:  583:/*EOF*/
    #####:    #####:  584:/*EOF*/
    #####:    #####:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
    #####:    #####:  594:/*EOF*/
    #####:    #####:  595:/*EOF*/
    #####:    #####:  596:/*EOF*/
    #####:    #####:  597:/*EOF*/
    #####:    #####:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
       14:       14:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
       14:       14:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
       36:       35:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        8:        7:  616:/*EOF*/
        8:        7:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
       14:       14:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        6:        6:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        6:        6:  634:/*EOF*/
        6:        6:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        6:        6:  638:/*EOF*/
        6:        6:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        6:        6:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        6:        6:  643:/*EOF*/
        6:        6:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
    #####:    #####:  650:/*EOF*/
    #####:    #####:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        6:        6:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        6:        6:  665:/*EOF*/
        6:        6:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        6:        6:  673:/*EOF*/
        6:        6:  674:/*EOF*/
       12:       12:  675:/*EOF*/
        6:        6:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        6:        6:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        6:        6:  701:/*EOF*/
    #####:    #####:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        6:        6:  704:/*EOF*/
        6:        6:  705:/*EOF*/
       12:       12:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        6:        6:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        6:        6:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        6:        6:  728:/*EOF*/
    #####:    #####:  729:/*EOF*/
    #####:    #####:  730:/*EOF*/
        -:        -:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        6:        6:  738:/*EOF*/
        6:        6:  739:/*EOF*/
        6:        6:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        6:        6:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        6:        6:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
    #####:    #####:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
        -:        -:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        1:        1:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        1:        1:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        1:        1:  779:/*EOF*/
        1:        1:  780:/*EOF*/
    #####:    #####:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        1:        1:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
    #####:    #####:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        1:        1:  788:/*EOF*/
        1:        1:  789:/*EOF*/
        1:        1:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        1:        1:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        2:        2:  796:/*EOF*/
        2:        2:  797:/*EOF*/
        -:        -:  798:/*EOF*/
    #####:    #####:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        2:        2:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
    #####:    #####:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        2:        2:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        2:        2:  840:/*EOF*/
        2:        2:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        2:        2:  844:/*EOF*/
        2:        2:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        2:        2:  850:/*EOF*/
        2:        2:  851:/*EOF*/
    #####:    #####:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        2:        2:  854:/*EOF*/
        2:        2:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        2:        2:  858:/*EOF*/
        2:        2:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        2:        2:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        2:        2:  868:/*EOF*/
    #####:    #####:  869:/*EOF*/
        -:        -:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
    #####:    #####:  880:/*EOF*/
    #####:    #####:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
        -:        -:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        2:        2:  895:/*EOF*/
        -:        -:  896:/*EOF*/
    #####:    #####:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        2:        2:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        2:        2:  901:/*EOF*/
        -:        -:  902:/*EOF*/
    #####:    #####:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        8:        8:  905:/*EOF*/
        2:        2:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        2:        2:  909:/*EOF*/
        2:        2:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        2:        2:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        2:        2:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        2:        2:  919:/*EOF*/
        2:        2:  920:/*EOF*/
        2:        2:  921:/*EOF*/
        2:        2:  922:/*EOF*/
        2:        2:  923:/*EOF*/
        2:        2:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        2:        2:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        2:        2:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
    #####:    #####:  933:/*EOF*/
        -:        -:  934:/*EOF*/
    #####:    #####:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
    #####:    #####:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
        -:        -:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        8:        8:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        8:        8:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        1:        1:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        1:        1:  975:/*EOF*/
        1:        1:  976:/*EOF*/
        1:        1:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        1:        1:  982:/*EOF*/
        1:        1:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        1:        1:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        1:        1:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        1:        1:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        1:        1:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        1:        1:  999:/*EOF*/
        1:        1: 1000:/*EOF*/
        1:        1: 1001:/*EOF*/
        1:        1: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        1:        1: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        1:        1: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        1:        1: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        1:        1: 1015:/*EOF*/
        1:        1: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        1:        1: 1020:/*EOF*/
        1:        1: 1021:/*EOF*/
        1:        1: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        1:        1: 1026:/*EOF*/
    #####:    #####: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
    #####:    #####: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
    #####:    #####: 1031:/*EOF*/
    #####:    #####: 1032:/*EOF*/
    #####:    #####: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        8:        8: 1036:/*EOF*/
        8:        8: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
    #####:    #####: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
    #####:    #####: 1050:/*EOF*/
    #####:    #####: 1051:/*EOF*/
    #####:    #####: 1052:/*EOF*/
    #####:    #####: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
    #####:    #####: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
    #####:    #####: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
    #####:    #####: 1085:/*EOF*/
    #####:    #####: 1086:/*EOF*/
    #####:    #####: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
    #####:    #####: 1091:/*EOF*/
    #####:    #####: 1092:/*EOF*/
    #####:    #####: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
    #####:    #####: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
    #####:    #####: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
    #####:    #####: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
    #####:    #####: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
    #####:    #####: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
    #####:    #####: 1122:/*EOF*/
    #####:    #####: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
    #####:    #####: 1127:/*EOF*/
    #####:    #####: 1128:/*EOF*/
    #####:    #####: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
    #####:    #####: 1131:/*EOF*/
    #####:    #####: 1132:/*EOF*/
    #####:    #####: 1133:/*EOF*/
    #####:    #####: 1134:/*EOF*/
    #####:    #####: 1135:/*EOF*/
    #####:    #####: 1136:/*EOF*/
    #####:    #####: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
    #####:    #####: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
    #####:    #####: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
    #####:    #####: 1146:/*EOF*/
    #####:    #####: 1147:/*EOF*/
    #####:    #####: 1148:/*EOF*/
    #####:    #####: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
    #####:    #####: 1155:/*EOF*/
    #####:    #####: 1156:/*EOF*/
    #####:    #####: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
    #####:    #####: 1160:/*EOF*/
    #####:    #####: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
    #####:    #####: 1163:/*EOF*/
    #####:    #####: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
    #####:    #####: 1166:/*EOF*/
    #####:    #####: 1167:/*EOF*/
    #####:    #####: 1168:/*EOF*/
    #####:    #####: 1169:/*EOF*/
    #####:    #####: 1170:/*EOF*/
    #####:    #####: 1171:/*EOF*/
    #####:    #####: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
    #####:    #####: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
    #####:    #####: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
    #####:    #####: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
    #####:    #####: 1181:/*EOF*/
    #####:    #####: 1182:/*EOF*/
    #####:    #####: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
    #####:    #####: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
    #####:    #####: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        8:        8: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        8:        8: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        8:        8: 1206:/*EOF*/
        8:        8: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        8:        8: 1209:/*EOF*/
    #####:    #####: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
    #####:    #####: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        8:        8: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
       14:       14: 1220:/*EOF*/
        6:        6: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        2:        2: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        2:        2: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        2:        2: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        2:        2: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
    #####:    #####: 1241:/*EOF*/
    #####:    #####: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
    #####:    #####: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
    #####:    #####: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        2:        2: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
    #####:    #####: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
    #####:    #####: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
    #####:    #####: 1271:/*EOF*/
    #####:    #####: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        2:        2: 1281:/*EOF*/
        2:        2: 1282:/*EOF*/
        2:        2: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        8:        8: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        8:        8: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        8:        8: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        8:        8: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
    #####:    #####: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        8:        8: 1312:/*EOF*/
        8:        8: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
       16:       16: 1316:/*EOF*/
        8:        8: 1317:/*EOF*/
        8:        8: 1318:/*EOF*/
    #####:    #####: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        8:        8: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        8:        8: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        8:        8: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        8:        8: 1342:/*EOF*/
        8:        8: 1343:/*EOF*/
        8:        8: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        8:        8: 1346:/*EOF*/
        8:        8: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        8:        8: 1349:/*EOF*/
    #####:    #####: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        8:        8: 1353:/*EOF*/
    #####:    #####: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        8:        8: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
    #####:    #####: 1365:/*EOF*/
    #####:    #####: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
    #####:    #####: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
    #####:    #####: 1376:/*EOF*/
    #####:    #####: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        8:        8: 1379:/*EOF*/
        8:        8: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        8:        8: 1383:/*EOF*/
        8:        8: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        8:        8: 1388:/*EOF*/
    #####:    #####: 1389:/*EOF*/
        8:        8: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
    #####:    #####: 1392:/*EOF*/
    #####:    #####: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        8:        8: 1396:/*EOF*/
    #####:    #####: 1397:/*EOF*/
    #####:    #####: 1398:/*EOF*/
    #####:    #####: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        8:        8: 1402:/*EOF*/
        8:        8: 1403:/*EOF*/
        8:        8: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        8:        8: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        8:        8: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
    #####:    #####: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
    #####:    #####: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
    #####:    #####: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
    #####:    #####: 1426:/*EOF*/
    #####:    #####: 1427:/*EOF*/
    #####:    #####: 1428:/*EOF*/
    #####:    #####: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
    #####:    #####: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
    #####:    #####: 1433:/*EOF*/

src/loader/loader_dri3_helper.c.gcov

        -:        -:    0:Source:loader_dri3_helper.c
        -:        -:    0:Graph:.libs/loader_dri3_helper.gcno
        -:        -:    0:Data:.libs/loader_dri3_helper.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2013 Keith Packard
        -:        -:    3: * Copyright © 2015 Boyan Ding
        -:        -:    4: *
        -:        -:    5: * Permission to use, copy, modify, distribute, and sell this software and its
        -:        -:    6: * documentation for any purpose is hereby granted without fee, provided that
        -:        -:    7: * the above copyright notice appear in all copies and that both that copyright
        -:        -:    8: * notice and this permission notice appear in supporting documentation, and
        -:        -:    9: * that the name of the copyright holders not be used in advertising or
        -:        -:   10: * publicity pertaining to distribution of the software without specific,
        -:        -:   11: * written prior permission.  The copyright holders make no representations
        -:        -:   12: * about the suitability of this software for any purpose.  It is provided "as
        -:        -:   13: * is" without express or implied warranty.
        -:        -:   14: *
        -:        -:   15: * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
        -:        -:   16: * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
        -:        -:   17: * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
        -:        -:   18: * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
        -:        -:   19: * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
        -:        -:   20: * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
        -:        -:   21: * OF THIS SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include <fcntl.h>
        -:        -:   25:#include <stdlib.h>
        -:        -:   26:#include <unistd.h>
        -:        -:   27:
        -:        -:   28:#include <X11/xshmfence.h>
        -:        -:   29:#include <xcb/xcb.h>
        -:        -:   30:#include <xcb/dri3.h>
        -:        -:   31:#include <xcb/present.h>
        -:        -:   32:
        -:        -:   33:#include <X11/Xlib-xcb.h>
        -:        -:   34:
        -:        -:   35:#include "loader_dri3_helper.h"
        -:        -:   36:
        -:        -:   37:/* From xmlpool/options.h, user exposed so should be stable */
        -:        -:   38:#define DRI_CONF_VBLANK_NEVER 0
        -:        -:   39:#define DRI_CONF_VBLANK_DEF_INTERVAL_0 1
        -:        -:   40:#define DRI_CONF_VBLANK_DEF_INTERVAL_1 2
        -:        -:   41:#define DRI_CONF_VBLANK_ALWAYS_SYNC 3
        -:        -:   42:
        -:        -:   43:static inline void
        6:        6:   44:dri3_fence_reset(xcb_connection_t *c, struct loader_dri3_buffer *buffer)
        -:        -:   45:{
        6:        6:   46:   xshmfence_reset(buffer->shm_fence);
        6:        6:   47:}
        -:        -:   48:
        -:        -:   49:static inline void
        2:        2:   50:dri3_fence_set(struct loader_dri3_buffer *buffer)
        -:        -:   51:{
        2:        2:   52:   xshmfence_trigger(buffer->shm_fence);
        2:        2:   53:}
        -:        -:   54:
        -:        -:   55:static inline void
    #####:    #####:   56:dri3_fence_trigger(xcb_connection_t *c, struct loader_dri3_buffer *buffer)
        -:        -:   57:{
    #####:    #####:   58:   xcb_sync_trigger_fence(c, buffer->sync_fence);
    #####:    #####:   59:}
        -:        -:   60:
        -:        -:   61:static inline void
        8:        8:   62:dri3_fence_await(xcb_connection_t *c, struct loader_dri3_buffer *buffer)
        -:        -:   63:{
        8:        8:   64:   xcb_flush(c);
        8:        8:   65:   xshmfence_await(buffer->shm_fence);
        8:        8:   66:}
        -:        -:   67:
        -:        -:   68:static void
        7:        7:   69:dri3_update_num_back(struct loader_dri3_drawable *draw)
        -:        -:   70:{
        7:        7:   71:   if (draw->flipping)
    #####:    #####:   72:      draw->num_back = 3;
        -:        -:   73:   else
        7:        7:   74:      draw->num_back = 2;
        7:        7:   75:}
        -:        -:   76:
        -:        -:   77:void
        2:        2:   78:loader_dri3_set_swap_interval(struct loader_dri3_drawable *draw, int interval)
        -:        -:   79:{
        2:        2:   80:   interval = draw->vtable->clamp_swap_interval(draw, interval);
        2:        2:   81:   draw->vtable->set_swap_interval(draw, interval);
        2:        2:   82:   dri3_update_num_back(draw);
        2:        2:   83:}
        -:        -:   84:
        -:        -:   85:/** dri3_free_render_buffer
        -:        -:   86: *
        -:        -:   87: * Free everything associated with one render buffer including pixmap, fence
        -:        -:   88: * stuff and the driver image
        -:        -:   89: */
        -:        -:   90:static void
        2:        2:   91:dri3_free_render_buffer(struct loader_dri3_drawable *draw,
        -:        -:   92:                        struct loader_dri3_buffer *buffer)
        -:        -:   93:{
        2:        2:   94:   if (buffer->own_pixmap)
        2:        2:   95:      xcb_free_pixmap(draw->conn, buffer->pixmap);
        2:        2:   96:   xcb_sync_destroy_fence(draw->conn, buffer->sync_fence);
        2:        2:   97:   xshmfence_unmap_shm(buffer->shm_fence);
        2:        2:   98:   draw->ext->image->destroyImage(buffer->image);
        2:        2:   99:   if (buffer->linear_buffer)
    #####:    #####:  100:      draw->ext->image->destroyImage(buffer->linear_buffer);
        2:        2:  101:   free(buffer);
        2:        2:  102:}
        -:        -:  103:
        -:        -:  104:void
        1:        1:  105:loader_dri3_drawable_fini(struct loader_dri3_drawable *draw)
        -:        -:  106:{
        -:        -:  107:   int i;
        -:        -:  108:
        1:        1:  109:   draw->ext->core->destroyDrawable(draw->dri_drawable);
        -:        -:  110:
        6:        6:  111:   for (i = 0; i < LOADER_DRI3_NUM_BUFFERS; i++) {
        5:        5:  112:      if (draw->buffers[i])
        2:        2:  113:         dri3_free_render_buffer(draw, draw->buffers[i]);
        -:        -:  114:   }
        -:        -:  115:
        1:        1:  116:   if (draw->special_event) {
        1:        1:  117:      xcb_void_cookie_t cookie =
        1:        1:  118:         xcb_present_select_input_checked(draw->conn, draw->eid, draw->drawable,
        -:        -:  119:                                          XCB_PRESENT_EVENT_MASK_NO_EVENT);
        -:        -:  120:
        1:        1:  121:      xcb_discard_reply(draw->conn, cookie.sequence);
        1:        1:  122:      xcb_unregister_for_special_event(draw->conn, draw->special_event);
        -:        -:  123:   }
        1:        1:  124:}
        -:        -:  125:
        -:        -:  126:int
        1:        1:  127:loader_dri3_drawable_init(xcb_connection_t *conn,
        -:        -:  128:                          xcb_drawable_t drawable,
        -:        -:  129:                          __DRIscreen *dri_screen,
        -:        -:  130:                          bool is_different_gpu,
        -:        -:  131:                          const __DRIconfig *dri_config,
        -:        -:  132:                          struct loader_dri3_extensions *ext,
        -:        -:  133:                          const struct loader_dri3_vtable *vtable,
        -:        -:  134:                          struct loader_dri3_drawable *draw)
        -:        -:  135:{
        -:        -:  136:   xcb_get_geometry_cookie_t cookie;
        -:        -:  137:   xcb_get_geometry_reply_t *reply;
        -:        -:  138:   xcb_generic_error_t *error;
        1:        1:  139:   GLint vblank_mode = DRI_CONF_VBLANK_DEF_INTERVAL_1;
        -:        -:  140:   int swap_interval;
        -:        -:  141:
        1:        1:  142:   draw->conn = conn;
        1:        1:  143:   draw->ext = ext;
        1:        1:  144:   draw->vtable = vtable;
        1:        1:  145:   draw->drawable = drawable;
        1:        1:  146:   draw->dri_screen = dri_screen;
        1:        1:  147:   draw->is_different_gpu = is_different_gpu;
        -:        -:  148:
        1:        1:  149:   draw->have_back = 0;
        1:        1:  150:   draw->have_fake_front = 0;
        1:        1:  151:   draw->first_init = true;
        -:        -:  152:
        1:        1:  153:   if (draw->ext->config)
        1:        1:  154:      draw->ext->config->configQueryi(draw->dri_screen,
        -:        -:  155:                                      "vblank_mode", &vblank_mode);
        -:        -:  156:
        1:        1:  157:   switch (vblank_mode) {
        -:        -:  158:   case DRI_CONF_VBLANK_NEVER:
        -:        -:  159:   case DRI_CONF_VBLANK_DEF_INTERVAL_0:
    #####:    #####:  160:      swap_interval = 0;
    #####:    #####:  161:      break;
        -:        -:  162:   case DRI_CONF_VBLANK_DEF_INTERVAL_1:
        -:        -:  163:   case DRI_CONF_VBLANK_ALWAYS_SYNC:
        -:        -:  164:   default:
        1:        1:  165:      swap_interval = 1;
        1:        1:  166:      break;
        -:        -:  167:   }
        1:        1:  168:   draw->vtable->set_swap_interval(draw, swap_interval);
        -:        -:  169:
        1:        1:  170:   dri3_update_num_back(draw);
        -:        -:  171:
        -:        -:  172:   /* Create a new drawable */
        1:        1:  173:   draw->dri_drawable =
        1:        1:  174:      draw->ext->image_driver->createNewDrawable(dri_screen,
        -:        -:  175:                                                 dri_config,
        -:        -:  176:                                                 draw);
        -:        -:  177:
        1:        1:  178:   if (!draw->dri_drawable)
    #####:    #####:  179:      return 1;
        -:        -:  180:
        1:        1:  181:   cookie = xcb_get_geometry(draw->conn, draw->drawable);
        1:        1:  182:   reply = xcb_get_geometry_reply(draw->conn, cookie, &error);
        1:        1:  183:   if (reply == NULL || error != NULL) {
    #####:    #####:  184:      draw->ext->core->destroyDrawable(draw->dri_drawable);
    #####:    #####:  185:      return 1;
        -:        -:  186:   }
        -:        -:  187:
        1:        1:  188:   draw->width = reply->width;
        1:        1:  189:   draw->height = reply->height;
        1:        1:  190:   draw->depth = reply->depth;
        1:        1:  191:   draw->vtable->set_drawable_size(draw, draw->width, draw->height);
        1:        1:  192:   free(reply);
        -:        -:  193:
        -:        -:  194:   /*
        -:        -:  195:    * Make sure server has the same swap interval we do for the new
        -:        -:  196:    * drawable.
        -:        -:  197:    */
        1:        1:  198:   loader_dri3_set_swap_interval(draw, swap_interval);
        -:        -:  199:
        1:        1:  200:   return 0;
        -:        -:  201:}
        -:        -:  202:
        -:        -:  203:/*
        -:        -:  204: * Process one Present event
        -:        -:  205: */
        -:        -:  206:static void
        9:        9:  207:dri3_handle_present_event(struct loader_dri3_drawable *draw,
        -:        -:  208:                          xcb_present_generic_event_t *ge)
        -:        -:  209:{
        9:        9:  210:   switch (ge->evtype) {
        -:        -:  211:   case XCB_PRESENT_CONFIGURE_NOTIFY: {
    #####:    #####:  212:      xcb_present_configure_notify_event_t *ce = (void *) ge;
        -:        -:  213:
    #####:    #####:  214:      draw->width = ce->width;
    #####:    #####:  215:      draw->height = ce->height;
    #####:    #####:  216:      draw->vtable->set_drawable_size(draw, draw->width, draw->height);
    #####:    #####:  217:      break;
        -:        -:  218:   }
        -:        -:  219:   case XCB_PRESENT_COMPLETE_NOTIFY: {
        4:        4:  220:      xcb_present_complete_notify_event_t *ce = (void *) ge;
        -:        -:  221:
        -:        -:  222:      /* Compute the processed SBC number from the received 32-bit serial number
        -:        -:  223:       * merged with the upper 32-bits of the sent 64-bit serial number while
        -:        -:  224:       * checking for wrap.
        -:        -:  225:       */
        4:        4:  226:      if (ce->kind == XCB_PRESENT_COMPLETE_KIND_PIXMAP) {
        4:        4:  227:         draw->recv_sbc = (draw->send_sbc & 0xffffffff00000000LL) | ce->serial;
        4:        4:  228:         if (draw->recv_sbc > draw->send_sbc)
    #####:    #####:  229:            draw->recv_sbc -= 0x100000000;
        4:        4:  230:         switch (ce->mode) {
        -:        -:  231:         case XCB_PRESENT_COMPLETE_MODE_FLIP:
    #####:    #####:  232:            draw->flipping = true;
    #####:    #####:  233:            break;
        -:        -:  234:         case XCB_PRESENT_COMPLETE_MODE_COPY:
        3:        3:  235:            draw->flipping = false;
        3:        3:  236:            break;
        -:        -:  237:         }
        4:        4:  238:         dri3_update_num_back(draw);
        -:        -:  239:
        4:        4:  240:         if (draw->vtable->show_fps)
        4:        4:  241:            draw->vtable->show_fps(draw, ce->ust);
        -:        -:  242:
        4:        4:  243:         draw->ust = ce->ust;
        4:        4:  244:         draw->msc = ce->msc;
        -:        -:  245:      } else {
    #####:    #####:  246:         draw->recv_msc_serial = ce->serial;
    #####:    #####:  247:         draw->notify_ust = ce->ust;
    #####:    #####:  248:         draw->notify_msc = ce->msc;
        -:        -:  249:      }
        4:        4:  250:      break;
        -:        -:  251:   }
        -:        -:  252:   case XCB_PRESENT_EVENT_IDLE_NOTIFY: {
        5:        5:  253:      xcb_present_idle_notify_event_t *ie = (void *) ge;
        -:        -:  254:      int b;
        -:        -:  255:
        7:        7:  256:      for (b = 0; b < sizeof(draw->buffers) / sizeof(draw->buffers[0]); b++) {
        7:        7:  257:         struct loader_dri3_buffer *buf = draw->buffers[b];
        -:        -:  258:
        7:        7:  259:         if (buf && buf->pixmap == ie->pixmap) {
        5:        5:  260:            buf->busy = 0;
        5:        5:  261:            if (draw->num_back <= b && b < LOADER_DRI3_MAX_BACK) {
    #####:    #####:  262:               dri3_free_render_buffer(draw, buf);
    #####:    #####:  263:               draw->buffers[b] = NULL;
        -:        -:  264:            }
        5:        5:  265:            break;
        -:        -:  266:         }
        -:        -:  267:      }
        5:        5:  268:      break;
        -:        -:  269:   }
        -:        -:  270:   }
        9:        9:  271:   free(ge);
        9:        9:  272:}
        -:        -:  273:
        -:        -:  274:static bool
    #####:    #####:  275:dri3_wait_for_event(struct loader_dri3_drawable *draw)
        -:        -:  276:{
        -:        -:  277:   xcb_generic_event_t *ev;
        -:        -:  278:   xcb_present_generic_event_t *ge;
        -:        -:  279:
    #####:    #####:  280:   xcb_flush(draw->conn);
    #####:    #####:  281:   ev = xcb_wait_for_special_event(draw->conn, draw->special_event);
    #####:    #####:  282:   if (!ev)
    #####:    #####:  283:      return false;
    #####:    #####:  284:   ge = (void *) ev;
    #####:    #####:  285:   dri3_handle_present_event(draw, ge);
    #####:    #####:  286:   return true;
        -:        -:  287:}
        -:        -:  288:
        -:        -:  289:/** loader_dri3_wait_for_msc
        -:        -:  290: *
        -:        -:  291: * Get the X server to send an event when the target msc/divisor/remainder is
        -:        -:  292: * reached.
        -:        -:  293: */
        -:        -:  294:bool
    #####:    #####:  295:loader_dri3_wait_for_msc(struct loader_dri3_drawable *draw,
        -:        -:  296:                         int64_t target_msc,
        -:        -:  297:                         int64_t divisor, int64_t remainder,
        -:        -:  298:                         int64_t *ust, int64_t *msc, int64_t *sbc)
        -:        -:  299:{
        -:        -:  300:   uint32_t msc_serial;
        -:        -:  301:
    #####:    #####:  302:   msc_serial = ++draw->send_msc_serial;
    #####:    #####:  303:   xcb_present_notify_msc(draw->conn,
        -:        -:  304:                          draw->drawable,
        -:        -:  305:                          msc_serial,
        -:        -:  306:                          target_msc,
        -:        -:  307:                          divisor,
        -:        -:  308:                          remainder);
        -:        -:  309:
    #####:    #####:  310:   xcb_flush(draw->conn);
        -:        -:  311:
        -:        -:  312:   /* Wait for the event */
    #####:    #####:  313:   if (draw->special_event) {
    #####:    #####:  314:      while ((int32_t) (msc_serial - draw->recv_msc_serial) > 0) {
    #####:    #####:  315:         if (!dri3_wait_for_event(draw))
    #####:    #####:  316:            return false;
        -:        -:  317:      }
        -:        -:  318:   }
        -:        -:  319:
    #####:    #####:  320:   *ust = draw->notify_ust;
    #####:    #####:  321:   *msc = draw->notify_msc;
    #####:    #####:  322:   *sbc = draw->recv_sbc;
        -:        -:  323:
    #####:    #####:  324:   return true;
        -:        -:  325:}
        -:        -:  326:
        -:        -:  327:/** loader_dri3_wait_for_sbc
        -:        -:  328: *
        -:        -:  329: * Wait for the completed swap buffer count to reach the specified
        -:        -:  330: * target. Presumably the application knows that this will be reached with
        -:        -:  331: * outstanding complete events, or we're going to be here awhile.
        -:        -:  332: */
        -:        -:  333:int
    #####:    #####:  334:loader_dri3_wait_for_sbc(struct loader_dri3_drawable *draw,
        -:        -:  335:                         int64_t target_sbc, int64_t *ust,
        -:        -:  336:                         int64_t *msc, int64_t *sbc)
        -:        -:  337:{
        -:        -:  338:   /* From the GLX_OML_sync_control spec:
        -:        -:  339:    *
        -:        -:  340:    *     "If <target_sbc> = 0, the function will block until all previous
        -:        -:  341:    *      swaps requested with glXSwapBuffersMscOML for that window have
        -:        -:  342:    *      completed."
        -:        -:  343:    */
    #####:    #####:  344:   if (!target_sbc)
    #####:    #####:  345:      target_sbc = draw->send_sbc;
        -:        -:  346:
    #####:    #####:  347:   while (draw->recv_sbc < target_sbc) {
    #####:    #####:  348:      if (!dri3_wait_for_event(draw))
    #####:    #####:  349:         return 0;
        -:        -:  350:   }
        -:        -:  351:
    #####:    #####:  352:   *ust = draw->ust;
    #####:    #####:  353:   *msc = draw->msc;
    #####:    #####:  354:   *sbc = draw->recv_sbc;
    #####:    #####:  355:   return 1;
        -:        -:  356:}
        -:        -:  357:
        -:        -:  358:/** loader_dri3_find_back
        -:        -:  359: *
        -:        -:  360: * Find an idle back buffer. If there isn't one, then
        -:        -:  361: * wait for a present idle notify event from the X server
        -:        -:  362: */
        -:        -:  363:static int
        9:       10:  364:dri3_find_back(struct loader_dri3_drawable *draw)
        -:        -:  365:{
        -:        -:  366:   int b;
        -:        -:  367:   xcb_generic_event_t *ev;
        -:        -:  368:   xcb_present_generic_event_t *ge;
        -:        -:  369:
        -:        -:  370:   for (;;) {
       17:       20:  371:      for (b = 0; b < draw->num_back; b++) {
       16:       18:  372:         int id = LOADER_DRI3_BACK_ID((b + draw->cur_back) % draw->num_back);
       16:       18:  373:         struct loader_dri3_buffer *buffer = draw->buffers[id];
        -:        -:  374:
       16:       18:  375:         if (!buffer || !buffer->busy) {
        8:        8:  376:            draw->cur_back = id;
        8:        8:  377:            return id;
        -:        -:  378:         }
        -:        -:  379:      }
        1:        2:  380:      xcb_flush(draw->conn);
        1:        2:  381:      ev = xcb_wait_for_special_event(draw->conn, draw->special_event);
        1:        2:  382:      if (!ev)
    #####:    #####:  383:         return -1;
        1:        2:  384:      ge = (void *) ev;
        1:        2:  385:      dri3_handle_present_event(draw, ge);
        1:        2:  386:   }
        -:        -:  387:}
        -:        -:  388:
        -:        -:  389:static xcb_gcontext_t
    #####:    #####:  390:dri3_drawable_gc(struct loader_dri3_drawable *draw)
        -:        -:  391:{
    #####:    #####:  392:   if (!draw->gc) {
    #####:    #####:  393:      uint32_t v = 0;
    #####:    #####:  394:      xcb_create_gc(draw->conn,
    #####:    #####:  395:                    (draw->gc = xcb_generate_id(draw->conn)),
        -:        -:  396:                    draw->drawable,
        -:        -:  397:                    XCB_GC_GRAPHICS_EXPOSURES,
        -:        -:  398:                    &v);
        -:        -:  399:   }
    #####:    #####:  400:   return draw->gc;
        -:        -:  401:}
        -:        -:  402:
        -:        -:  403:
        -:        -:  404:static struct loader_dri3_buffer *
    #####:    #####:  405:dri3_back_buffer(struct loader_dri3_drawable *draw)
        -:        -:  406:{
    #####:    #####:  407:   return draw->buffers[LOADER_DRI3_BACK_ID(draw->cur_back)];
        -:        -:  408:}
        -:        -:  409:
        -:        -:  410:static struct loader_dri3_buffer *
    #####:    #####:  411:dri3_fake_front_buffer(struct loader_dri3_drawable *draw)
        -:        -:  412:{
    #####:    #####:  413:   return draw->buffers[LOADER_DRI3_FRONT_ID];
        -:        -:  414:}
        -:        -:  415:
        -:        -:  416:static void
    #####:    #####:  417:dri3_copy_area(xcb_connection_t *c,
        -:        -:  418:               xcb_drawable_t    src_drawable,
        -:        -:  419:               xcb_drawable_t    dst_drawable,
        -:        -:  420:               xcb_gcontext_t    gc,
        -:        -:  421:               int16_t           src_x,
        -:        -:  422:               int16_t           src_y,
        -:        -:  423:               int16_t           dst_x,
        -:        -:  424:               int16_t           dst_y,
        -:        -:  425:               uint16_t          width,
        -:        -:  426:               uint16_t          height)
        -:        -:  427:{
        -:        -:  428:   xcb_void_cookie_t cookie;
        -:        -:  429:
    #####:    #####:  430:   cookie = xcb_copy_area_checked(c,
        -:        -:  431:                                  src_drawable,
        -:        -:  432:                                  dst_drawable,
        -:        -:  433:                                  gc,
        -:        -:  434:                                  src_x,
        -:        -:  435:                                  src_y,
        -:        -:  436:                                  dst_x,
        -:        -:  437:                                  dst_y,
        -:        -:  438:                                  width,
        -:        -:  439:                                  height);
    #####:    #####:  440:   xcb_discard_reply(c, cookie.sequence);
    #####:    #####:  441:}
        -:        -:  442:
        -:        -:  443:/**
        -:        -:  444: * Asks the driver to flush any queued work necessary for serializing with the
        -:        -:  445: * X command stream, and optionally the slightly more strict requirement of
        -:        -:  446: * glFlush() equivalence (which would require flushing even if nothing had
        -:        -:  447: * been drawn to a window system framebuffer, for example).
        -:        -:  448: */
        -:        -:  449:void
        6:        6:  450:loader_dri3_flush(struct loader_dri3_drawable *draw,
        -:        -:  451:                  unsigned flags,
        -:        -:  452:                  enum __DRI2throttleReason throttle_reason)
        -:        -:  453:{
        -:        -:  454:   /* NEED TO CHECK WHETHER CONTEXT IS NULL */
        6:        6:  455:   __DRIcontext *dri_context = draw->vtable->get_dri_context(draw);
        -:        -:  456:
        6:        6:  457:   if (dri_context) {
        6:        6:  458:      draw->ext->flush->flush_with_flags(dri_context, draw->dri_drawable,
        -:        -:  459:                                         flags, throttle_reason);
        -:        -:  460:   }
        6:        6:  461:}
        -:        -:  462:
        -:        -:  463:void
    #####:    #####:  464:loader_dri3_copy_sub_buffer(struct loader_dri3_drawable *draw,
        -:        -:  465:                            int x, int y,
        -:        -:  466:                            int width, int height,
        -:        -:  467:                            bool flush)
        -:        -:  468:{
        -:        -:  469:   struct loader_dri3_buffer *back;
    #####:    #####:  470:   unsigned flags = __DRI2_FLUSH_DRAWABLE;
        -:        -:  471:   __DRIcontext *dri_context;
        -:        -:  472:
    #####:    #####:  473:   dri_context = draw->vtable->get_dri_context(draw);
        -:        -:  474:
        -:        -:  475:   /* Check we have the right attachments */
    #####:    #####:  476:   if (!draw->have_back || draw->is_pixmap)
    #####:    #####:  477:      return;
        -:        -:  478:
    #####:    #####:  479:   if (flush)
    #####:    #####:  480:      flags |= __DRI2_FLUSH_CONTEXT;
    #####:    #####:  481:   loader_dri3_flush(draw, flags, __DRI2_THROTTLE_SWAPBUFFER);
        -:        -:  482:
    #####:    #####:  483:   back = dri3_back_buffer(draw);
    #####:    #####:  484:   y = draw->height - y - height;
        -:        -:  485:
    #####:    #####:  486:   if (draw->is_different_gpu && draw->vtable->in_current_context(draw)) {
        -:        -:  487:      /* Update the linear buffer part of the back buffer
        -:        -:  488:       * for the dri3_copy_area operation
        -:        -:  489:       */
    #####:    #####:  490:      draw->ext->image->blitImage(dri_context,
        -:        -:  491:                                  back->linear_buffer,
        -:        -:  492:                                  back->image,
    #####:    #####:  493:                                  0, 0, back->width,
    #####:    #####:  494:                                  back->height,
    #####:    #####:  495:                                  0, 0, back->width,
    #####:    #####:  496:                                  back->height, __BLIT_FLAG_FLUSH);
        -:        -:  497:      /* We use blitImage to update our fake front,
        -:        -:  498:       */
    #####:    #####:  499:      if (draw->have_fake_front)
    #####:    #####:  500:         draw->ext->image->blitImage(dri_context,
    #####:    #####:  501:                                     dri3_fake_front_buffer(draw)->image,
        -:        -:  502:                                     back->image,
        -:        -:  503:                                     x, y, width, height,
        -:        -:  504:                                     x, y, width, height, __BLIT_FLAG_FLUSH);
        -:        -:  505:   }
        -:        -:  506:
    #####:    #####:  507:   dri3_fence_reset(draw->conn, back);
    #####:    #####:  508:   dri3_copy_area(draw->conn,
    #####:    #####:  509:                  dri3_back_buffer(draw)->pixmap,
        -:        -:  510:                  draw->drawable,
        -:        -:  511:                  dri3_drawable_gc(draw),
        -:        -:  512:                  x, y, x, y, width, height);
    #####:    #####:  513:   dri3_fence_trigger(draw->conn, back);
        -:        -:  514:   /* Refresh the fake front (if present) after we just damaged the real
        -:        -:  515:    * front.
        -:        -:  516:    */
    #####:    #####:  517:   if (draw->have_fake_front && !draw->is_different_gpu) {
    #####:    #####:  518:      dri3_fence_reset(draw->conn, dri3_fake_front_buffer(draw));
    #####:    #####:  519:      dri3_copy_area(draw->conn,
    #####:    #####:  520:                     dri3_back_buffer(draw)->pixmap,
    #####:    #####:  521:                     dri3_fake_front_buffer(draw)->pixmap,
        -:        -:  522:                     dri3_drawable_gc(draw),
        -:        -:  523:                     x, y, x, y, width, height);
    #####:    #####:  524:      dri3_fence_trigger(draw->conn, dri3_fake_front_buffer(draw));
    #####:    #####:  525:      dri3_fence_await(draw->conn, dri3_fake_front_buffer(draw));
        -:        -:  526:   }
    #####:    #####:  527:   dri3_fence_await(draw->conn, back);
        -:        -:  528:}
        -:        -:  529:
        -:        -:  530:void
    #####:    #####:  531:loader_dri3_copy_drawable(struct loader_dri3_drawable *draw,
        -:        -:  532:                          xcb_drawable_t dest,
        -:        -:  533:                          xcb_drawable_t src)
        -:        -:  534:{
    #####:    #####:  535:   loader_dri3_flush(draw, __DRI2_FLUSH_DRAWABLE, 0);
        -:        -:  536:
    #####:    #####:  537:   dri3_fence_reset(draw->conn, dri3_fake_front_buffer(draw));
    #####:    #####:  538:   dri3_copy_area(draw->conn,
        -:        -:  539:                  src, dest,
        -:        -:  540:                  dri3_drawable_gc(draw),
    #####:    #####:  541:                  0, 0, 0, 0, draw->width, draw->height);
    #####:    #####:  542:   dri3_fence_trigger(draw->conn, dri3_fake_front_buffer(draw));
    #####:    #####:  543:   dri3_fence_await(draw->conn, dri3_fake_front_buffer(draw));
    #####:    #####:  544:}
        -:        -:  545:
        -:        -:  546:void
    #####:    #####:  547:loader_dri3_wait_x(struct loader_dri3_drawable *draw)
        -:        -:  548:{
        -:        -:  549:   struct loader_dri3_buffer *front;
        -:        -:  550:   __DRIcontext *dri_context;
        -:        -:  551:
    #####:    #####:  552:   if (draw == NULL || !draw->have_fake_front)
    #####:    #####:  553:      return;
        -:        -:  554:
    #####:    #####:  555:   front = dri3_fake_front_buffer(draw);
    #####:    #####:  556:   dri_context = draw->vtable->get_dri_context(draw);
        -:        -:  557:
    #####:    #####:  558:   loader_dri3_copy_drawable(draw, front->pixmap, draw->drawable);
        -:        -:  559:
        -:        -:  560:   /* In the psc->is_different_gpu case, the linear buffer has been updated,
        -:        -:  561:    * but not yet the tiled buffer.
        -:        -:  562:    * Copy back to the tiled buffer we use for rendering.
        -:        -:  563:    * Note that we don't need flushing.
        -:        -:  564:    */
    #####:    #####:  565:   if (draw->is_different_gpu && draw->vtable->in_current_context(draw))
    #####:    #####:  566:      draw->ext->image->blitImage(dri_context,
        -:        -:  567:                                  front->image,
        -:        -:  568:                                  front->linear_buffer,
    #####:    #####:  569:                                  0, 0, front->width,
    #####:    #####:  570:                                  front->height,
    #####:    #####:  571:                                  0, 0, front->width,
    #####:    #####:  572:                                  front->height, 0);
        -:        -:  573:}
        -:        -:  574:
        -:        -:  575:void
    #####:    #####:  576:loader_dri3_wait_gl(struct loader_dri3_drawable *draw)
        -:        -:  577:{
        -:        -:  578:   struct loader_dri3_buffer *front;
        -:        -:  579:   __DRIcontext *dri_context;
        -:        -:  580:
    #####:    #####:  581:   if (draw == NULL || !draw->have_fake_front)
    #####:    #####:  582:      return;
        -:        -:  583:
    #####:    #####:  584:   front = dri3_fake_front_buffer(draw);
    #####:    #####:  585:   dri_context = draw->vtable->get_dri_context(draw);
        -:        -:  586:
        -:        -:  587:   /* In the psc->is_different_gpu case, we update the linear_buffer
        -:        -:  588:    * before updating the real front.
        -:        -:  589:    */
    #####:    #####:  590:   if (draw->is_different_gpu && draw->vtable->in_current_context(draw))
    #####:    #####:  591:      draw->ext->image->blitImage(dri_context,
        -:        -:  592:                                  front->linear_buffer,
        -:        -:  593:                                  front->image,
    #####:    #####:  594:                                  0, 0, front->width,
    #####:    #####:  595:                                  front->height,
    #####:    #####:  596:                                  0, 0, front->width,
    #####:    #####:  597:                                  front->height, __BLIT_FLAG_FLUSH);
    #####:    #####:  598:   loader_dri3_copy_drawable(draw, draw->drawable, front->pixmap);
        -:        -:  599:}
        -:        -:  600:
        -:        -:  601:/** dri3_flush_present_events
        -:        -:  602: *
        -:        -:  603: * Process any present events that have been received from the X server
        -:        -:  604: */
        -:        -:  605:static void
       14:       14:  606:dri3_flush_present_events(struct loader_dri3_drawable *draw)
        -:        -:  607:{
        -:        -:  608:   /* Check to see if any configuration changes have occurred
        -:        -:  609:    * since we were last invoked
        -:        -:  610:    */
       14:       14:  611:   if (draw->special_event) {
        -:        -:  612:      xcb_generic_event_t    *ev;
        -:        -:  613:
       36:       35:  614:      while ((ev = xcb_poll_for_special_event(draw->conn,
        -:        -:  615:                                              draw->special_event)) != NULL) {
        8:        7:  616:         xcb_present_generic_event_t *ge = (void *) ev;
        8:        7:  617:         dri3_handle_present_event(draw, ge);
        -:        -:  618:      }
        -:        -:  619:   }
       14:       14:  620:}
        -:        -:  621:
        -:        -:  622:/** loader_dri3_swap_buffers_msc
        -:        -:  623: *
        -:        -:  624: * Make the current back buffer visible using the present extension
        -:        -:  625: */
        -:        -:  626:int64_t
        6:        6:  627:loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
        -:        -:  628:                             int64_t target_msc, int64_t divisor,
        -:        -:  629:                             int64_t remainder, unsigned flush_flags,
        -:        -:  630:                             bool force_copy)
        -:        -:  631:{
        -:        -:  632:   struct loader_dri3_buffer *back;
        -:        -:  633:   __DRIcontext *dri_context;
        6:        6:  634:   int64_t ret = 0;
        6:        6:  635:   uint32_t options = XCB_PRESENT_OPTION_NONE;
        -:        -:  636:   int swap_interval;
        -:        -:  637:
        6:        6:  638:   dri_context = draw->vtable->get_dri_context(draw);
        6:        6:  639:   swap_interval = draw->vtable->get_swap_interval(draw);
        -:        -:  640:
        6:        6:  641:   draw->vtable->flush_drawable(draw, flush_flags);
        -:        -:  642:
        6:        6:  643:   back = draw->buffers[LOADER_DRI3_BACK_ID(draw->cur_back)];
        6:        6:  644:   if (draw->is_different_gpu && back) {
        -:        -:  645:      /* Update the linear buffer before presenting the pixmap */
    #####:    #####:  646:      draw->ext->image->blitImage(dri_context,
        -:        -:  647:                                  back->linear_buffer,
        -:        -:  648:                                  back->image,
    #####:    #####:  649:                                  0, 0, back->width,
    #####:    #####:  650:                                  back->height,
    #####:    #####:  651:                                  0, 0, back->width,
    #####:    #####:  652:                                  back->height, __BLIT_FLAG_FLUSH);
        -:        -:  653:      /* Update the fake front */
    #####:    #####:  654:      if (draw->have_fake_front)
    #####:    #####:  655:         draw->ext->image->blitImage(dri_context,
    #####:    #####:  656:                                     draw->buffers[LOADER_DRI3_FRONT_ID]->image,
        -:        -:  657:                                     back->image,
        -:        -:  658:                                     0, 0, draw->width, draw->height,
        -:        -:  659:                                     0, 0, draw->width, draw->height,
        -:        -:  660:                                     __BLIT_FLAG_FLUSH);
        -:        -:  661:   }
        -:        -:  662:
        6:        6:  663:   dri3_flush_present_events(draw);
        -:        -:  664:
        6:        6:  665:   if (back && !draw->is_pixmap) {
        6:        6:  666:      dri3_fence_reset(draw->conn, back);
        -:        -:  667:
        -:        -:  668:      /* Compute when we want the frame shown by taking the last known
        -:        -:  669:       * successful MSC and adding in a swap interval for each outstanding swap
        -:        -:  670:       * request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers()
        -:        -:  671:       * semantic"
        -:        -:  672:       */
        6:        6:  673:      ++draw->send_sbc;
        6:        6:  674:      if (target_msc == 0 && divisor == 0 && remainder == 0)
       12:       12:  675:         target_msc = draw->msc + swap_interval *
        6:        6:  676:                      (draw->send_sbc - draw->recv_sbc);
    #####:    #####:  677:      else if (divisor == 0 && remainder > 0) {
        -:        -:  678:         /* From the GLX_OML_sync_control spec:
        -:        -:  679:          *     "If <divisor> = 0, the swap will occur when MSC becomes
        -:        -:  680:          *      greater than or equal to <target_msc>."
        -:        -:  681:          *
        -:        -:  682:          * Note that there's no mention of the remainder.  The Present
        -:        -:  683:          * extension throws BadValue for remainder != 0 with divisor == 0, so
        -:        -:  684:          * just drop the passed in value.
        -:        -:  685:          */
    #####:    #####:  686:         remainder = 0;
        -:        -:  687:      }
        -:        -:  688:
        -:        -:  689:      /* From the GLX_EXT_swap_control spec
        -:        -:  690:       * and the EGL 1.4 spec (page 53):
        -:        -:  691:       *
        -:        -:  692:       *     "If <interval> is set to a value of 0, buffer swaps are not
        -:        -:  693:       *      synchronized to a video frame."
        -:        -:  694:       *
        -:        -:  695:       * Implementation note: It is possible to enable triple buffering
        -:        -:  696:       * behaviour by not using XCB_PRESENT_OPTION_ASYNC, but this should not be
        -:        -:  697:       * the default.
        -:        -:  698:       */
        6:        6:  699:      if (swap_interval == 0)
    #####:    #####:  700:          options |= XCB_PRESENT_OPTION_ASYNC;
        6:        6:  701:      if (force_copy)
    #####:    #####:  702:          options |= XCB_PRESENT_OPTION_COPY;
        -:        -:  703:
        6:        6:  704:      back->busy = 1;
        6:        6:  705:      back->last_swap = draw->send_sbc;
       12:       12:  706:      xcb_present_pixmap(draw->conn,
        -:        -:  707:                         draw->drawable,
        -:        -:  708:                         back->pixmap,
        6:        6:  709:                         (uint32_t) draw->send_sbc,
        -:        -:  710:                         0,                                    /* valid */
        -:        -:  711:                         0,                                    /* update */
        -:        -:  712:                         0,                                    /* x_off */
        -:        -:  713:                         0,                                    /* y_off */
        -:        -:  714:                         None,                                 /* target_crtc */
        -:        -:  715:                         None,
        -:        -:  716:                         back->sync_fence,
        -:        -:  717:                         options,
        -:        -:  718:                         target_msc,
        -:        -:  719:                         divisor,
        -:        -:  720:                         remainder, 0, NULL);
        6:        6:  721:      ret = (int64_t) draw->send_sbc;
        -:        -:  722:
        -:        -:  723:      /* If there's a fake front, then copy the source back buffer
        -:        -:  724:       * to the fake front to keep it up to date. This needs
        -:        -:  725:       * to reset the fence and make future users block until
        -:        -:  726:       * the X server is done copying the bits
        -:        -:  727:       */
        6:        6:  728:      if (draw->have_fake_front && !draw->is_different_gpu) {
    #####:    #####:  729:         dri3_fence_reset(draw->conn, draw->buffers[LOADER_DRI3_FRONT_ID]);
    #####:    #####:  730:         dri3_copy_area(draw->conn,
        -:        -:  731:                        back->pixmap,
    #####:    #####:  732:                        draw->buffers[LOADER_DRI3_FRONT_ID]->pixmap,
        -:        -:  733:                        dri3_drawable_gc(draw),
        -:        -:  734:                        0, 0, 0, 0,
    #####:    #####:  735:                        draw->width, draw->height);
    #####:    #####:  736:         dri3_fence_trigger(draw->conn, draw->buffers[LOADER_DRI3_FRONT_ID]);
        -:        -:  737:      }
        6:        6:  738:      xcb_flush(draw->conn);
        6:        6:  739:      if (draw->stamp)
        6:        6:  740:         ++(*draw->stamp);
        -:        -:  741:   }
        -:        -:  742:
        6:        6:  743:   draw->ext->flush->invalidate(draw->dri_drawable);
        -:        -:  744:
        6:        6:  745:   return ret;
        -:        -:  746:}
        -:        -:  747:
        -:        -:  748:int
    #####:    #####:  749:loader_dri3_query_buffer_age(struct loader_dri3_drawable *draw)
        -:        -:  750:{
    #####:    #####:  751:   int back_id = LOADER_DRI3_BACK_ID(dri3_find_back(draw));
        -:        -:  752:
    #####:    #####:  753:   if (back_id < 0 || !draw->buffers[back_id])
    #####:    #####:  754:      return 0;
        -:        -:  755:
    #####:    #####:  756:   if (draw->buffers[back_id]->last_swap != 0)
    #####:    #####:  757:      return draw->send_sbc - draw->buffers[back_id]->last_swap + 1;
        -:        -:  758:   else
    #####:    #####:  759:      return 0;
        -:        -:  760:}
        -:        -:  761:
        -:        -:  762:/** loader_dri3_open
        -:        -:  763: *
        -:        -:  764: * Wrapper around xcb_dri3_open
        -:        -:  765: */
        -:        -:  766:int
        1:        1:  767:loader_dri3_open(xcb_connection_t *conn,
        -:        -:  768:                 xcb_window_t root,
        -:        -:  769:                 uint32_t provider)
        -:        -:  770:{
        -:        -:  771:   xcb_dri3_open_cookie_t       cookie;
        -:        -:  772:   xcb_dri3_open_reply_t        *reply;
        -:        -:  773:   int                          fd;
        -:        -:  774:
        1:        1:  775:   cookie = xcb_dri3_open(conn,
        -:        -:  776:                          root,
        -:        -:  777:                          provider);
        -:        -:  778:
        1:        1:  779:   reply = xcb_dri3_open_reply(conn, cookie, NULL);
        1:        1:  780:   if (!reply)
    #####:    #####:  781:      return -1;
        -:        -:  782:
        1:        1:  783:   if (reply->nfd != 1) {
    #####:    #####:  784:      free(reply);
    #####:    #####:  785:      return -1;
        -:        -:  786:   }
        -:        -:  787:
        1:        1:  788:   fd = xcb_dri3_open_reply_fds(conn, reply)[0];
        1:        1:  789:   free(reply);
        1:        1:  790:   fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
        -:        -:  791:
        1:        1:  792:   return fd;
        -:        -:  793:}
        -:        -:  794:
        -:        -:  795:static uint32_t
        2:        2:  796:dri3_cpp_for_format(uint32_t format) {
        2:        2:  797:   switch (format) {
        -:        -:  798:   case  __DRI_IMAGE_FORMAT_R8:
    #####:    #####:  799:      return 1;
        -:        -:  800:   case  __DRI_IMAGE_FORMAT_RGB565:
        -:        -:  801:   case  __DRI_IMAGE_FORMAT_GR88:
    #####:    #####:  802:      return 2;
        -:        -:  803:   case  __DRI_IMAGE_FORMAT_XRGB8888:
        -:        -:  804:   case  __DRI_IMAGE_FORMAT_ARGB8888:
        -:        -:  805:   case  __DRI_IMAGE_FORMAT_ABGR8888:
        -:        -:  806:   case  __DRI_IMAGE_FORMAT_XBGR8888:
        -:        -:  807:   case  __DRI_IMAGE_FORMAT_XRGB2101010:
        -:        -:  808:   case  __DRI_IMAGE_FORMAT_ARGB2101010:
        -:        -:  809:   case  __DRI_IMAGE_FORMAT_SARGB8:
        2:        2:  810:      return 4;
        -:        -:  811:   case  __DRI_IMAGE_FORMAT_NONE:
        -:        -:  812:   default:
    #####:    #####:  813:      return 0;
        -:        -:  814:   }
        -:        -:  815:}
        -:        -:  816:
        -:        -:  817:/** loader_dri3_alloc_render_buffer
        -:        -:  818: *
        -:        -:  819: * Use the driver createImage function to construct a __DRIimage, then
        -:        -:  820: * get a file descriptor for that and create an X pixmap from that
        -:        -:  821: *
        -:        -:  822: * Allocate an xshmfence for synchronization
        -:        -:  823: */
        -:        -:  824:static struct loader_dri3_buffer *
        2:        2:  825:dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format,
        -:        -:  826:                         int width, int height, int depth)
        -:        -:  827:{
        -:        -:  828:   struct loader_dri3_buffer *buffer;
        -:        -:  829:   __DRIimage *pixmap_buffer;
        -:        -:  830:   xcb_pixmap_t pixmap;
        -:        -:  831:   xcb_sync_fence_t sync_fence;
        -:        -:  832:   struct xshmfence *shm_fence;
        -:        -:  833:   int buffer_fd, fence_fd;
        -:        -:  834:   int stride;
        -:        -:  835:
        -:        -:  836:   /* Create an xshmfence object and
        -:        -:  837:    * prepare to send that to the X server
        -:        -:  838:    */
        -:        -:  839:
        2:        2:  840:   fence_fd = xshmfence_alloc_shm();
        2:        2:  841:   if (fence_fd < 0)
    #####:    #####:  842:      return NULL;
        -:        -:  843:
        2:        2:  844:   shm_fence = xshmfence_map_shm(fence_fd);
        2:        2:  845:   if (shm_fence == NULL)
    #####:    #####:  846:      goto no_shm_fence;
        -:        -:  847:
        -:        -:  848:   /* Allocate the image from the driver
        -:        -:  849:    */
        2:        2:  850:   buffer = calloc(1, sizeof *buffer);
        2:        2:  851:   if (!buffer)
    #####:    #####:  852:      goto no_buffer;
        -:        -:  853:
        2:        2:  854:   buffer->cpp = dri3_cpp_for_format(format);
        2:        2:  855:   if (!buffer->cpp)
    #####:    #####:  856:      goto no_image;
        -:        -:  857:
        2:        2:  858:   if (!draw->is_different_gpu) {
        2:        2:  859:      buffer->image = draw->ext->image->createImage(draw->dri_screen,
        -:        -:  860:                                                    width, height,
        -:        -:  861:                                                    format,
        -:        -:  862:                                                    __DRI_IMAGE_USE_SHARE |
        -:        -:  863:                                                    __DRI_IMAGE_USE_SCANOUT |
        -:        -:  864:                                                    __DRI_IMAGE_USE_BACKBUFFER,
        -:        -:  865:                                                    buffer);
        2:        2:  866:      pixmap_buffer = buffer->image;
        -:        -:  867:
        2:        2:  868:      if (!buffer->image)
    #####:    #####:  869:         goto no_image;
        -:        -:  870:   } else {
    #####:    #####:  871:      buffer->image = draw->ext->image->createImage(draw->dri_screen,
        -:        -:  872:                                                    width, height,
        -:        -:  873:                                                    format,
        -:        -:  874:                                                    0,
        -:        -:  875:                                                    buffer);
        -:        -:  876:
    #####:    #####:  877:      if (!buffer->image)
    #####:    #####:  878:         goto no_image;
        -:        -:  879:
    #####:    #####:  880:      buffer->linear_buffer =
    #####:    #####:  881:        draw->ext->image->createImage(draw->dri_screen,
        -:        -:  882:                                      width, height, format,
        -:        -:  883:                                      __DRI_IMAGE_USE_SHARE |
        -:        -:  884:                                      __DRI_IMAGE_USE_LINEAR |
        -:        -:  885:                                      __DRI_IMAGE_USE_BACKBUFFER,
        -:        -:  886:                                      buffer);
    #####:    #####:  887:      pixmap_buffer = buffer->linear_buffer;
        -:        -:  888:
    #####:    #####:  889:      if (!buffer->linear_buffer)
    #####:    #####:  890:         goto no_linear_buffer;
        -:        -:  891:   }
        -:        -:  892:
        -:        -:  893:   /* X wants the stride, so ask the image for it
        -:        -:  894:    */
        2:        2:  895:   if (!draw->ext->image->queryImage(pixmap_buffer, __DRI_IMAGE_ATTRIB_STRIDE,
        -:        -:  896:                                     &stride))
    #####:    #####:  897:      goto no_buffer_attrib;
        -:        -:  898:
        2:        2:  899:   buffer->pitch = stride;
        -:        -:  900:
        2:        2:  901:   if (!draw->ext->image->queryImage(pixmap_buffer, __DRI_IMAGE_ATTRIB_FD,
        -:        -:  902:                                     &buffer_fd))
    #####:    #####:  903:      goto no_buffer_attrib;
        -:        -:  904:
        8:        8:  905:   xcb_dri3_pixmap_from_buffer(draw->conn,
        2:        2:  906:                               (pixmap = xcb_generate_id(draw->conn)),
        -:        -:  907:                               draw->drawable,
        -:        -:  908:                               buffer->size,
        2:        2:  909:                               width, height, buffer->pitch,
        2:        2:  910:                               depth, buffer->cpp * 8,
        -:        -:  911:                               buffer_fd);
        -:        -:  912:
        2:        2:  913:   xcb_dri3_fence_from_fd(draw->conn,
        -:        -:  914:                          pixmap,
        2:        2:  915:                          (sync_fence = xcb_generate_id(draw->conn)),
        -:        -:  916:                          false,
        -:        -:  917:                          fence_fd);
        -:        -:  918:
        2:        2:  919:   buffer->pixmap = pixmap;
        2:        2:  920:   buffer->own_pixmap = true;
        2:        2:  921:   buffer->sync_fence = sync_fence;
        2:        2:  922:   buffer->shm_fence = shm_fence;
        2:        2:  923:   buffer->width = width;
        2:        2:  924:   buffer->height = height;
        -:        -:  925:
        -:        -:  926:   /* Mark the buffer as idle
        -:        -:  927:    */
        2:        2:  928:   dri3_fence_set(buffer);
        -:        -:  929:
        2:        2:  930:   return buffer;
        -:        -:  931:
        -:        -:  932:no_buffer_attrib:
    #####:    #####:  933:   draw->ext->image->destroyImage(pixmap_buffer);
        -:        -:  934:no_linear_buffer:
    #####:    #####:  935:   if (draw->is_different_gpu)
    #####:    #####:  936:      draw->ext->image->destroyImage(buffer->image);
        -:        -:  937:no_image:
    #####:    #####:  938:   free(buffer);
        -:        -:  939:no_buffer:
    #####:    #####:  940:   xshmfence_unmap_shm(shm_fence);
        -:        -:  941:no_shm_fence:
    #####:    #####:  942:   close(fence_fd);
    #####:    #####:  943:   return NULL;
        -:        -:  944:}
        -:        -:  945:
        -:        -:  946:/** loader_dri3_update_drawable
        -:        -:  947: *
        -:        -:  948: * Called the first time we use the drawable and then
        -:        -:  949: * after we receive present configure notify events to
        -:        -:  950: * track the geometry of the drawable
        -:        -:  951: */
        -:        -:  952:static int
        8:        8:  953:dri3_update_drawable(__DRIdrawable *driDrawable,
        -:        -:  954:                     struct loader_dri3_drawable *draw)
        -:        -:  955:{
        8:        8:  956:   if (draw->first_init) {
        -:        -:  957:      xcb_get_geometry_cookie_t                 geom_cookie;
        -:        -:  958:      xcb_get_geometry_reply_t                  *geom_reply;
        -:        -:  959:      xcb_void_cookie_t                         cookie;
        -:        -:  960:      xcb_generic_error_t                       *error;
        -:        -:  961:      xcb_present_query_capabilities_cookie_t   present_capabilities_cookie;
        -:        -:  962:      xcb_present_query_capabilities_reply_t    *present_capabilities_reply;
        -:        -:  963:
        1:        1:  964:      draw->first_init = false;
        -:        -:  965:
        -:        -:  966:      /* Try to select for input on the window.
        -:        -:  967:       *
        -:        -:  968:       * If the drawable is a window, this will get our events
        -:        -:  969:       * delivered.
        -:        -:  970:       *
        -:        -:  971:       * Otherwise, we'll get a BadWindow error back from this request which
        -:        -:  972:       * will let us know that the drawable is a pixmap instead.
        -:        -:  973:       */
        -:        -:  974:
        1:        1:  975:      draw->eid = xcb_generate_id(draw->conn);
        1:        1:  976:      cookie =
        1:        1:  977:         xcb_present_select_input_checked(draw->conn, draw->eid, draw->drawable,
        -:        -:  978:                                          XCB_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY |
        -:        -:  979:                                          XCB_PRESENT_EVENT_MASK_COMPLETE_NOTIFY |
        -:        -:  980:                                          XCB_PRESENT_EVENT_MASK_IDLE_NOTIFY);
        -:        -:  981:
        1:        1:  982:      present_capabilities_cookie =
        1:        1:  983:         xcb_present_query_capabilities(draw->conn, draw->drawable);
        -:        -:  984:
        -:        -:  985:      /* Create an XCB event queue to hold present events outside of the usual
        -:        -:  986:       * application event queue
        -:        -:  987:       */
        1:        1:  988:      draw->special_event = xcb_register_for_special_xge(draw->conn,
        -:        -:  989:                                                         &xcb_present_id,
        -:        -:  990:                                                         draw->eid,
        -:        -:  991:                                                         draw->stamp);
        1:        1:  992:      geom_cookie = xcb_get_geometry(draw->conn, draw->drawable);
        -:        -:  993:
        1:        1:  994:      geom_reply = xcb_get_geometry_reply(draw->conn, geom_cookie, NULL);
        -:        -:  995:
        1:        1:  996:      if (!geom_reply)
    #####:    #####:  997:         return false;
        -:        -:  998:
        1:        1:  999:      draw->width = geom_reply->width;
        1:        1: 1000:      draw->height = geom_reply->height;
        1:        1: 1001:      draw->depth = geom_reply->depth;
        1:        1: 1002:      draw->vtable->set_drawable_size(draw, draw->width, draw->height);
        -:        -: 1003:
        1:        1: 1004:      free(geom_reply);
        -:        -: 1005:
        1:        1: 1006:      draw->is_pixmap = false;
        -:        -: 1007:
        -:        -: 1008:      /* Check to see if our select input call failed. If it failed with a
        -:        -: 1009:       * BadWindow error, then assume the drawable is a pixmap. Destroy the
        -:        -: 1010:       * special event queue created above and mark the drawable as a pixmap
        -:        -: 1011:       */
        -:        -: 1012:
        1:        1: 1013:      error = xcb_request_check(draw->conn, cookie);
        -:        -: 1014:
        1:        1: 1015:      present_capabilities_reply =
        1:        1: 1016:          xcb_present_query_capabilities_reply(draw->conn,
        -:        -: 1017:                                               present_capabilities_cookie,
        -:        -: 1018:                                               NULL);
        -:        -: 1019:
        1:        1: 1020:      if (present_capabilities_reply) {
        1:        1: 1021:         draw->present_capabilities = present_capabilities_reply->capabilities;
        1:        1: 1022:         free(present_capabilities_reply);
        -:        -: 1023:      } else
    #####:    #####: 1024:         draw->present_capabilities = 0;
        -:        -: 1025:
        1:        1: 1026:      if (error) {
    #####:    #####: 1027:         if (error->error_code != BadWindow) {
    #####:    #####: 1028:            free(error);
    #####:    #####: 1029:            return false;
        -:        -: 1030:         }
    #####:    #####: 1031:         draw->is_pixmap = true;
    #####:    #####: 1032:         xcb_unregister_for_special_event(draw->conn, draw->special_event);
    #####:    #####: 1033:         draw->special_event = NULL;
        -:        -: 1034:      }
        -:        -: 1035:   }
        8:        8: 1036:   dri3_flush_present_events(draw);
        8:        8: 1037:   return true;
        -:        -: 1038:}
        -:        -: 1039:
        -:        -: 1040:/* the DRIimage createImage function takes __DRI_IMAGE_FORMAT codes, while
        -:        -: 1041: * the createImageFromFds call takes __DRI_IMAGE_FOURCC codes. To avoid
        -:        -: 1042: * complete confusion, just deal in __DRI_IMAGE_FORMAT codes for now and
        -:        -: 1043: * translate to __DRI_IMAGE_FOURCC codes in the call to createImageFromFds
        -:        -: 1044: */
        -:        -: 1045:static int
    #####:    #####: 1046:image_format_to_fourcc(int format)
        -:        -: 1047:{
        -:        -: 1048:
        -:        -: 1049:   /* Convert from __DRI_IMAGE_FORMAT to __DRI_IMAGE_FOURCC (sigh) */
    #####:    #####: 1050:   switch (format) {
    #####:    #####: 1051:   case __DRI_IMAGE_FORMAT_SARGB8: return __DRI_IMAGE_FOURCC_SARGB8888;
    #####:    #####: 1052:   case __DRI_IMAGE_FORMAT_RGB565: return __DRI_IMAGE_FOURCC_RGB565;
    #####:    #####: 1053:   case __DRI_IMAGE_FORMAT_XRGB8888: return __DRI_IMAGE_FOURCC_XRGB8888;
    #####:    #####: 1054:   case __DRI_IMAGE_FORMAT_ARGB8888: return __DRI_IMAGE_FOURCC_ARGB8888;
    #####:    #####: 1055:   case __DRI_IMAGE_FORMAT_ABGR8888: return __DRI_IMAGE_FOURCC_ABGR8888;
    #####:    #####: 1056:   case __DRI_IMAGE_FORMAT_XBGR8888: return __DRI_IMAGE_FOURCC_XBGR8888;
        -:        -: 1057:   }
    #####:    #####: 1058:   return 0;
        -:        -: 1059:}
        -:        -: 1060:
        -:        -: 1061:__DRIimage *
    #####:    #####: 1062:loader_dri3_create_image(xcb_connection_t *c,
        -:        -: 1063:                         xcb_dri3_buffer_from_pixmap_reply_t *bp_reply,
        -:        -: 1064:                         unsigned int format,
        -:        -: 1065:                         __DRIscreen *dri_screen,
        -:        -: 1066:                         const __DRIimageExtension *image,
        -:        -: 1067:                         void *loaderPrivate)
        -:        -: 1068:{
        -:        -: 1069:   int                                  *fds;
        -:        -: 1070:   __DRIimage                           *image_planar, *ret;
        -:        -: 1071:   int                                  stride, offset;
        -:        -: 1072:
        -:        -: 1073:   /* Get an FD for the pixmap object
        -:        -: 1074:    */
    #####:    #####: 1075:   fds = xcb_dri3_buffer_from_pixmap_reply_fds(c, bp_reply);
        -:        -: 1076:
    #####:    #####: 1077:   stride = bp_reply->stride;
    #####:    #####: 1078:   offset = 0;
        -:        -: 1079:
        -:        -: 1080:   /* createImageFromFds creates a wrapper __DRIimage structure which
        -:        -: 1081:    * can deal with multiple planes for things like Yuv images. So, once
        -:        -: 1082:    * we've gotten the planar wrapper, pull the single plane out of it and
        -:        -: 1083:    * discard the wrapper.
        -:        -: 1084:    */
    #####:    #####: 1085:   image_planar = image->createImageFromFds(dri_screen,
    #####:    #####: 1086:                                            bp_reply->width,
    #####:    #####: 1087:                                            bp_reply->height,
        -:        -: 1088:                                            image_format_to_fourcc(format),
        -:        -: 1089:                                            fds, 1,
        -:        -: 1090:                                            &stride, &offset, loaderPrivate);
    #####:    #####: 1091:   close(fds[0]);
    #####:    #####: 1092:   if (!image_planar)
    #####:    #####: 1093:      return NULL;
        -:        -: 1094:
    #####:    #####: 1095:   ret = image->fromPlanar(image_planar, 0, loaderPrivate);
        -:        -: 1096:
    #####:    #####: 1097:   image->destroyImage(image_planar);
        -:        -: 1098:
    #####:    #####: 1099:   return ret;
        -:        -: 1100:}
        -:        -: 1101:
        -:        -: 1102:/** dri3_get_pixmap_buffer
        -:        -: 1103: *
        -:        -: 1104: * Get the DRM object for a pixmap from the X server and
        -:        -: 1105: * wrap that with a __DRIimage structure using createImageFromFds
        -:        -: 1106: */
        -:        -: 1107:static struct loader_dri3_buffer *
    #####:    #####: 1108:dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format,
        -:        -: 1109:                       enum loader_dri3_buffer_type buffer_type,
        -:        -: 1110:                       struct loader_dri3_drawable *draw)
        -:        -: 1111:{
    #####:    #####: 1112:   int                                  buf_id = loader_dri3_pixmap_buf_id(buffer_type);
    #####:    #####: 1113:   struct loader_dri3_buffer            *buffer = draw->buffers[buf_id];
        -:        -: 1114:   xcb_drawable_t                       pixmap;
        -:        -: 1115:   xcb_dri3_buffer_from_pixmap_cookie_t bp_cookie;
        -:        -: 1116:   xcb_dri3_buffer_from_pixmap_reply_t  *bp_reply;
        -:        -: 1117:   xcb_sync_fence_t                     sync_fence;
        -:        -: 1118:   struct xshmfence                     *shm_fence;
        -:        -: 1119:   int                                  fence_fd;
        -:        -: 1120:   __DRIscreen                          *cur_screen;
        -:        -: 1121:
    #####:    #####: 1122:   if (buffer)
    #####:    #####: 1123:      return buffer;
        -:        -: 1124:
    #####:    #####: 1125:   pixmap = draw->drawable;
        -:        -: 1126:
    #####:    #####: 1127:   buffer = calloc(1, sizeof *buffer);
    #####:    #####: 1128:   if (!buffer)
    #####:    #####: 1129:      goto no_buffer;
        -:        -: 1130:
    #####:    #####: 1131:   fence_fd = xshmfence_alloc_shm();
    #####:    #####: 1132:   if (fence_fd < 0)
    #####:    #####: 1133:      goto no_fence;
    #####:    #####: 1134:   shm_fence = xshmfence_map_shm(fence_fd);
    #####:    #####: 1135:   if (shm_fence == NULL) {
    #####:    #####: 1136:      close (fence_fd);
    #####:    #####: 1137:      goto no_fence;
        -:        -: 1138:   }
        -:        -: 1139:
    #####:    #####: 1140:   xcb_dri3_fence_from_fd(draw->conn,
        -:        -: 1141:                          pixmap,
    #####:    #####: 1142:                          (sync_fence = xcb_generate_id(draw->conn)),
        -:        -: 1143:                          false,
        -:        -: 1144:                          fence_fd);
        -:        -: 1145:
    #####:    #####: 1146:   bp_cookie = xcb_dri3_buffer_from_pixmap(draw->conn, pixmap);
    #####:    #####: 1147:   bp_reply = xcb_dri3_buffer_from_pixmap_reply(draw->conn, bp_cookie, NULL);
    #####:    #####: 1148:   if (!bp_reply)
    #####:    #####: 1149:      goto no_image;
        -:        -: 1150:
        -:        -: 1151:   /* Get the currently-bound screen or revert to using the drawable's screen if
        -:        -: 1152:    * no contexts are currently bound. The latter case is at least necessary for
        -:        -: 1153:    * obs-studio, when using Window Capture (Xcomposite) as a Source.
        -:        -: 1154:    */
    #####:    #####: 1155:   cur_screen = draw->vtable->get_dri_screen(draw);
    #####:    #####: 1156:   if (!cur_screen) {
    #####:    #####: 1157:       cur_screen = draw->dri_screen;
        -:        -: 1158:   }
        -:        -: 1159:
    #####:    #####: 1160:   buffer->image = loader_dri3_create_image(draw->conn, bp_reply, format,
    #####:    #####: 1161:                                            cur_screen, draw->ext->image,
        -:        -: 1162:                                            buffer);
    #####:    #####: 1163:   if (!buffer->image)
    #####:    #####: 1164:      goto no_image;
        -:        -: 1165:
    #####:    #####: 1166:   buffer->pixmap = pixmap;
    #####:    #####: 1167:   buffer->own_pixmap = false;
    #####:    #####: 1168:   buffer->width = bp_reply->width;
    #####:    #####: 1169:   buffer->height = bp_reply->height;
    #####:    #####: 1170:   buffer->buffer_type = buffer_type;
    #####:    #####: 1171:   buffer->shm_fence = shm_fence;
    #####:    #####: 1172:   buffer->sync_fence = sync_fence;
        -:        -: 1173:
    #####:    #####: 1174:   draw->buffers[buf_id] = buffer;
        -:        -: 1175:
    #####:    #####: 1176:   free(bp_reply);
        -:        -: 1177:
    #####:    #####: 1178:   return buffer;
        -:        -: 1179:
        -:        -: 1180:no_image:
    #####:    #####: 1181:   free(bp_reply);
    #####:    #####: 1182:   xcb_sync_destroy_fence(draw->conn, sync_fence);
    #####:    #####: 1183:   xshmfence_unmap_shm(shm_fence);
        -:        -: 1184:no_fence:
    #####:    #####: 1185:   free(buffer);
        -:        -: 1186:no_buffer:
    #####:    #####: 1187:   return NULL;
        -:        -: 1188:}
        -:        -: 1189:
        -:        -: 1190:/** dri3_get_buffer
        -:        -: 1191: *
        -:        -: 1192: * Find a front or back buffer, allocating new ones as necessary
        -:        -: 1193: */
        -:        -: 1194:static struct loader_dri3_buffer *
        8:        8: 1195:dri3_get_buffer(__DRIdrawable *driDrawable,
        -:        -: 1196:                unsigned int format,
        -:        -: 1197:                enum loader_dri3_buffer_type buffer_type,
        -:        -: 1198:                struct loader_dri3_drawable *draw)
        -:        -: 1199:{
        -:        -: 1200:   struct loader_dri3_buffer *buffer;
        -:        -: 1201:   int buf_id;
        -:        -: 1202:   __DRIcontext *dri_context;
        -:        -: 1203:
        8:        8: 1204:   dri_context = draw->vtable->get_dri_context(draw);
        -:        -: 1205:
        8:        8: 1206:   if (buffer_type == loader_dri3_buffer_back) {
        8:        8: 1207:      buf_id = dri3_find_back(draw);
        -:        -: 1208:
        8:        8: 1209:      if (buf_id < 0)
    #####:    #####: 1210:         return NULL;
        -:        -: 1211:   } else {
    #####:    #####: 1212:      buf_id = LOADER_DRI3_FRONT_ID;
        -:        -: 1213:   }
        -:        -: 1214:
        8:        8: 1215:   buffer = draw->buffers[buf_id];
        -:        -: 1216:
        -:        -: 1217:   /* Allocate a new buffer if there isn't an old one, or if that
        -:        -: 1218:    * old one is the wrong size
        -:        -: 1219:    */
       14:       14: 1220:   if (!buffer || buffer->width != draw->width ||
        6:        6: 1221:       buffer->height != draw->height) {
        -:        -: 1222:      struct loader_dri3_buffer *new_buffer;
        -:        -: 1223:
        -:        -: 1224:      /* Allocate the new buffers
        -:        -: 1225:       */
        2:        2: 1226:      new_buffer = dri3_alloc_render_buffer(draw,
        -:        -: 1227:                                                   format,
        -:        -: 1228:                                                   draw->width,
        -:        -: 1229:                                                   draw->height,
        -:        -: 1230:                                                   draw->depth);
        2:        2: 1231:      if (!new_buffer)
    #####:    #####: 1232:         return NULL;
        -:        -: 1233:
        -:        -: 1234:      /* When resizing, copy the contents of the old buffer, waiting for that
        -:        -: 1235:       * copy to complete using our fences before proceeding
        -:        -: 1236:       */
        2:        2: 1237:      switch (buffer_type) {
        -:        -: 1238:      case loader_dri3_buffer_back:
        2:        2: 1239:         if (buffer) {
    #####:    #####: 1240:            if (!buffer->linear_buffer) {
    #####:    #####: 1241:               dri3_fence_reset(draw->conn, new_buffer);
    #####:    #####: 1242:               dri3_fence_await(draw->conn, buffer);
    #####:    #####: 1243:               dri3_copy_area(draw->conn,
        -:        -: 1244:                              buffer->pixmap,
        -:        -: 1245:                              new_buffer->pixmap,
        -:        -: 1246:                              dri3_drawable_gc(draw),
        -:        -: 1247:                              0, 0, 0, 0,
    #####:    #####: 1248:                              draw->width, draw->height);
    #####:    #####: 1249:               dri3_fence_trigger(draw->conn, new_buffer);
    #####:    #####: 1250:            } else if (draw->vtable->in_current_context(draw)) {
    #####:    #####: 1251:               draw->ext->image->blitImage(dri_context,
        -:        -: 1252:                                           new_buffer->image,
        -:        -: 1253:                                           buffer->image,
        -:        -: 1254:                                           0, 0, draw->width, draw->height,
        -:        -: 1255:                                           0, 0, draw->width, draw->height, 0);
        -:        -: 1256:            }
    #####:    #####: 1257:            dri3_free_render_buffer(draw, buffer);
        -:        -: 1258:         }
        2:        2: 1259:         break;
        -:        -: 1260:      case loader_dri3_buffer_front:
    #####:    #####: 1261:         dri3_fence_reset(draw->conn, new_buffer);
    #####:    #####: 1262:         dri3_copy_area(draw->conn,
        -:        -: 1263:                        draw->drawable,
        -:        -: 1264:                        new_buffer->pixmap,
        -:        -: 1265:                        dri3_drawable_gc(draw),
        -:        -: 1266:                        0, 0, 0, 0,
    #####:    #####: 1267:                        draw->width, draw->height);
    #####:    #####: 1268:         dri3_fence_trigger(draw->conn, new_buffer);
        -:        -: 1269:
    #####:    #####: 1270:         if (new_buffer->linear_buffer &&
    #####:    #####: 1271:             draw->vtable->in_current_context(draw)) {
    #####:    #####: 1272:            dri3_fence_await(draw->conn, new_buffer);
    #####:    #####: 1273:            draw->ext->image->blitImage(dri_context,
        -:        -: 1274:                                        new_buffer->image,
        -:        -: 1275:                                        new_buffer->linear_buffer,
        -:        -: 1276:                                        0, 0, draw->width, draw->height,
        -:        -: 1277:                                        0, 0, draw->width, draw->height, 0);
        -:        -: 1278:         }
    #####:    #####: 1279:         break;
        -:        -: 1280:      }
        2:        2: 1281:      buffer = new_buffer;
        2:        2: 1282:      buffer->buffer_type = buffer_type;
        2:        2: 1283:      draw->buffers[buf_id] = buffer;
        -:        -: 1284:   }
        8:        8: 1285:   dri3_fence_await(draw->conn, buffer);
        -:        -: 1286:
        -:        -: 1287:   /* Return the requested buffer */
        8:        8: 1288:   return buffer;
        -:        -: 1289:}
        -:        -: 1290:
        -:        -: 1291:/** dri3_free_buffers
        -:        -: 1292: *
        -:        -: 1293: * Free the front bufffer or all of the back buffers. Used
        -:        -: 1294: * when the application changes which buffers it needs
        -:        -: 1295: */
        -:        -: 1296:static void
        8:        8: 1297:dri3_free_buffers(__DRIdrawable *driDrawable,
        -:        -: 1298:                  enum loader_dri3_buffer_type buffer_type,
        -:        -: 1299:                  struct loader_dri3_drawable *draw)
        -:        -: 1300:{
        -:        -: 1301:   struct loader_dri3_buffer *buffer;
        -:        -: 1302:   int first_id;
        -:        -: 1303:   int n_id;
        -:        -: 1304:   int buf_id;
        -:        -: 1305:
        8:        8: 1306:   switch (buffer_type) {
        -:        -: 1307:   case loader_dri3_buffer_back:
    #####:    #####: 1308:      first_id = LOADER_DRI3_BACK_ID(0);
    #####:    #####: 1309:      n_id = LOADER_DRI3_MAX_BACK;
    #####:    #####: 1310:      break;
        -:        -: 1311:   case loader_dri3_buffer_front:
        8:        8: 1312:      first_id = LOADER_DRI3_FRONT_ID;
        8:        8: 1313:      n_id = 1;
        -:        -: 1314:   }
        -:        -: 1315:
       16:       16: 1316:   for (buf_id = first_id; buf_id < first_id + n_id; buf_id++) {
        8:        8: 1317:      buffer = draw->buffers[buf_id];
        8:        8: 1318:      if (buffer) {
    #####:    #####: 1319:         dri3_free_render_buffer(draw, buffer);
    #####:    #####: 1320:         draw->buffers[buf_id] = NULL;
        -:        -: 1321:      }
        -:        -: 1322:   }
        8:        8: 1323:}
        -:        -: 1324:
        -:        -: 1325:/** loader_dri3_get_buffers
        -:        -: 1326: *
        -:        -: 1327: * The published buffer allocation API.
        -:        -: 1328: * Returns all of the necessary buffers, allocating
        -:        -: 1329: * as needed.
        -:        -: 1330: */
        -:        -: 1331:int
        8:        8: 1332:loader_dri3_get_buffers(__DRIdrawable *driDrawable,
        -:        -: 1333:                        unsigned int format,
        -:        -: 1334:                        uint32_t *stamp,
        -:        -: 1335:                        void *loaderPrivate,
        -:        -: 1336:                        uint32_t buffer_mask,
        -:        -: 1337:                        struct __DRIimageList *buffers)
        -:        -: 1338:{
        8:        8: 1339:   struct loader_dri3_drawable *draw = loaderPrivate;
        -:        -: 1340:   struct loader_dri3_buffer   *front, *back;
        -:        -: 1341:
        8:        8: 1342:   buffers->image_mask = 0;
        8:        8: 1343:   buffers->front = NULL;
        8:        8: 1344:   buffers->back = NULL;
        -:        -: 1345:
        8:        8: 1346:   front = NULL;
        8:        8: 1347:   back = NULL;
        -:        -: 1348:
        8:        8: 1349:   if (!dri3_update_drawable(driDrawable, draw))
    #####:    #####: 1350:      return false;
        -:        -: 1351:
        -:        -: 1352:   /* pixmaps always have front buffers */
        8:        8: 1353:   if (draw->is_pixmap)
    #####:    #####: 1354:      buffer_mask |= __DRI_IMAGE_BUFFER_FRONT;
        -:        -: 1355:
        8:        8: 1356:   if (buffer_mask & __DRI_IMAGE_BUFFER_FRONT) {
        -:        -: 1357:      /* All pixmaps are owned by the server gpu.
        -:        -: 1358:       * When we use a different gpu, we can't use the pixmap
        -:        -: 1359:       * as buffer since it is potentially tiled a way
        -:        -: 1360:       * our device can't understand. In this case, use
        -:        -: 1361:       * a fake front buffer. Hopefully the pixmap
        -:        -: 1362:       * content will get synced with the fake front
        -:        -: 1363:       * buffer.
        -:        -: 1364:       */
    #####:    #####: 1365:      if (draw->is_pixmap && !draw->is_different_gpu)
    #####:    #####: 1366:         front = dri3_get_pixmap_buffer(driDrawable,
        -:        -: 1367:                                               format,
        -:        -: 1368:                                               loader_dri3_buffer_front,
        -:        -: 1369:                                               draw);
        -:        -: 1370:      else
    #####:    #####: 1371:         front = dri3_get_buffer(driDrawable,
        -:        -: 1372:                                        format,
        -:        -: 1373:                                        loader_dri3_buffer_front,
        -:        -: 1374:                                        draw);
        -:        -: 1375:
    #####:    #####: 1376:      if (!front)
    #####:    #####: 1377:         return false;
        -:        -: 1378:   } else {
        8:        8: 1379:      dri3_free_buffers(driDrawable, loader_dri3_buffer_front, draw);
        8:        8: 1380:      draw->have_fake_front = 0;
        -:        -: 1381:   }
        -:        -: 1382:
        8:        8: 1383:   if (buffer_mask & __DRI_IMAGE_BUFFER_BACK) {
        8:        8: 1384:      back = dri3_get_buffer(driDrawable,
        -:        -: 1385:                                    format,
        -:        -: 1386:                                    loader_dri3_buffer_back,
        -:        -: 1387:                                    draw);
        8:        8: 1388:      if (!back)
    #####:    #####: 1389:         return false;
        8:        8: 1390:      draw->have_back = 1;
        -:        -: 1391:   } else {
    #####:    #####: 1392:      dri3_free_buffers(driDrawable, loader_dri3_buffer_back, draw);
    #####:    #####: 1393:      draw->have_back = 0;
        -:        -: 1394:   }
        -:        -: 1395:
        8:        8: 1396:   if (front) {
    #####:    #####: 1397:      buffers->image_mask |= __DRI_IMAGE_BUFFER_FRONT;
    #####:    #####: 1398:      buffers->front = front->image;
    #####:    #####: 1399:      draw->have_fake_front = draw->is_different_gpu || !draw->is_pixmap;
        -:        -: 1400:   }
        -:        -: 1401:
        8:        8: 1402:   if (back) {
        8:        8: 1403:      buffers->image_mask |= __DRI_IMAGE_BUFFER_BACK;
        8:        8: 1404:      buffers->back = back->image;
        -:        -: 1405:   }
        -:        -: 1406:
        8:        8: 1407:   draw->stamp = stamp;
        -:        -: 1408:
        8:        8: 1409:   return true;
        -:        -: 1410:}
        -:        -: 1411:
        -:        -: 1412:/** loader_dri3_update_drawable_geometry
        -:        -: 1413: *
        -:        -: 1414: * Get the current drawable geometry.
        -:        -: 1415: */
        -:        -: 1416:void
    #####:    #####: 1417:loader_dri3_update_drawable_geometry(struct loader_dri3_drawable *draw)
        -:        -: 1418:{
        -:        -: 1419:   xcb_get_geometry_cookie_t geom_cookie;
        -:        -: 1420:   xcb_get_geometry_reply_t *geom_reply;
        -:        -: 1421:
    #####:    #####: 1422:   geom_cookie = xcb_get_geometry(draw->conn, draw->drawable);
        -:        -: 1423:
    #####:    #####: 1424:   geom_reply = xcb_get_geometry_reply(draw->conn, geom_cookie, NULL);
        -:        -: 1425:
    #####:    #####: 1426:   if (geom_reply) {
    #####:    #####: 1427:      draw->width = geom_reply->width;
    #####:    #####: 1428:      draw->height = geom_reply->height;
    #####:    #####: 1429:      draw->vtable->set_drawable_size(draw, draw->width, draw->height);
        -:        -: 1430:
    #####:    #####: 1431:      free(geom_reply);
        -:        -: 1432:   }
    #####:    #####: 1433:}

src/mesa/drivers/dri/i965/brw_bufmgr.c.gcov

        -:        -:    0:Source:brw_bufmgr.c
        -:        -:    0:Graph:.libs/brw_bufmgr.gcno
        -:        -:    0:Data:.libs/brw_bufmgr.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/**************************************************************************
        -:        -:    2: *
        -:        -:    3: * Copyright © 2007 Red Hat Inc.
        -:        -:    4: * Copyright © 2007-2012 Intel Corporation
        -:        -:    5: * Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND., USA
        -:        -:    6: * All Rights Reserved.
        -:        -:    7: *
        -:        -:    8: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    9: * copy of this software and associated documentation files (the
        -:        -:   10: * "Software"), to deal in the Software without restriction, including
        -:        -:   11: * without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   12: * distribute, sub license, and/or sell copies of the Software, and to
        -:        -:   13: * permit persons to whom the Software is furnished to do so, subject to
        -:        -:   14: * the following conditions:
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
        -:        -:   19: * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
        -:        -:   20: * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
        -:        -:   21: * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
        -:        -:   22: * USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   23: *
        -:        -:   24: * The above copyright notice and this permission notice (including the
        -:        -:   25: * next paragraph) shall be included in all copies or substantial portions
        -:        -:   26: * of the Software.
        -:        -:   27: *
        -:        -:   28: *
        -:        -:   29: **************************************************************************/
        -:        -:   30:/*
        -:        -:   31: * Authors: Thomas Hellström <thomas-at-tungstengraphics-dot-com>
        -:        -:   32: *          Keith Whitwell <keithw-at-tungstengraphics-dot-com>
        -:        -:   33: *          Eric Anholt <eric@anholt.net>
        -:        -:   34: *          Dave Airlie <airlied@linux.ie>
        -:        -:   35: */
        -:        -:   36:
        -:        -:   37:#ifdef HAVE_CONFIG_H
        -:        -:   38:#include "config.h"
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:#include <xf86drm.h>
        -:        -:   42:#include <util/u_atomic.h>
        -:        -:   43:#include <fcntl.h>
        -:        -:   44:#include <stdio.h>
        -:        -:   45:#include <stdlib.h>
        -:        -:   46:#include <string.h>
        -:        -:   47:#include <unistd.h>
        -:        -:   48:#include <assert.h>
        -:        -:   49:#include <pthread.h>
        -:        -:   50:#include <sys/ioctl.h>
        -:        -:   51:#include <sys/stat.h>
        -:        -:   52:#include <sys/types.h>
        -:        -:   53:#include <stdbool.h>
        -:        -:   54:
        -:        -:   55:#include "errno.h"
        -:        -:   56:#ifndef ETIME
        -:        -:   57:#define ETIME ETIMEDOUT
        -:        -:   58:#endif
        -:        -:   59:#include "common/gen_debug.h"
        -:        -:   60:#include "common/gen_device_info.h"
        -:        -:   61:#include "libdrm_macros.h"
        -:        -:   62:#include "main/macros.h"
        -:        -:   63:#include "util/macros.h"
        -:        -:   64:#include "util/hash_table.h"
        -:        -:   65:#include "util/list.h"
        -:        -:   66:#include "brw_bufmgr.h"
        -:        -:   67:#include "brw_context.h"
        -:        -:   68:#include "string.h"
        -:        -:   69:
        -:        -:   70:#include "i915_drm.h"
        -:        -:   71:
        -:        -:   72:#ifdef HAVE_VALGRIND
        -:        -:   73:#include <valgrind.h>
        -:        -:   74:#include <memcheck.h>
        -:        -:   75:#define VG(x) x
        -:        -:   76:#else
        -:        -:   77:#define VG(x)
        -:        -:   78:#endif
        -:        -:   79:
        -:        -:   80:#define memclear(s) memset(&s, 0, sizeof(s))
        -:        -:   81:
        -:        -:   82:#define FILE_DEBUG_FLAG DEBUG_BUFMGR
        -:        -:   83:
        -:        -:   84:static inline int
       83:       83:   85:atomic_add_unless(int *v, int add, int unless)
        -:        -:   86:{
        -:        -:   87:   int c, old;
       83:       83:   88:   c = p_atomic_read(v);
      166:      166:   89:   while (c != unless && (old = p_atomic_cmpxchg(v, c, c + add)) != c)
    #####:    #####:   90:      c = old;
       83:       83:   91:   return c == unless;
        -:        -:   92:}
        -:        -:   93:
        -:        -:   94:struct bo_cache_bucket {
        -:        -:   95:   struct list_head head;
        -:        -:   96:   uint64_t size;
        -:        -:   97:};
        -:        -:   98:
        -:        -:   99:struct brw_bufmgr {
        -:        -:  100:   int fd;
        -:        -:  101:
        -:        -:  102:   pthread_mutex_t lock;
        -:        -:  103:
        -:        -:  104:   /** Array of lists of cached gem objects of power-of-two sizes */
        -:        -:  105:   struct bo_cache_bucket cache_bucket[14 * 4];
        -:        -:  106:   int num_buckets;
        -:        -:  107:   time_t time;
        -:        -:  108:
        -:        -:  109:   struct hash_table *name_table;
        -:        -:  110:   struct hash_table *handle_table;
        -:        -:  111:
        -:        -:  112:   bool has_llc:1;
        -:        -:  113:   bool bo_reuse:1;
        -:        -:  114:};
        -:        -:  115:
        -:        -:  116:static int bo_set_tiling_internal(struct brw_bo *bo, uint32_t tiling_mode,
        -:        -:  117:                                  uint32_t stride);
        -:        -:  118:
        -:        -:  119:static void bo_free(struct brw_bo *bo);
        -:        -:  120:
        -:        -:  121:static uint32_t
       32:       32:  122:key_hash_uint(const void *key)
        -:        -:  123:{
       32:       32:  124:   return _mesa_hash_data(key, 4);
        -:        -:  125:}
        -:        -:  126:
        -:        -:  127:static bool
       16:       16:  128:key_uint_equal(const void *a, const void *b)
        -:        -:  129:{
       16:       16:  130:   return *((unsigned *) a) == *((unsigned *) b);
        -:        -:  131:}
        -:        -:  132:
        -:        -:  133:static struct brw_bo *
    #####:    #####:  134:hash_find_bo(struct hash_table *ht, unsigned int key)
        -:        -:  135:{
    #####:    #####:  136:   struct hash_entry *entry = _mesa_hash_table_search(ht, &key);
    #####:    #####:  137:   return entry ? (struct brw_bo *) entry->data : NULL;
        -:        -:  138:}
        -:        -:  139:
        -:        -:  140:static uint64_t
        6:        6:  141:bo_tile_size(struct brw_bufmgr *bufmgr, uint64_t size, uint32_t tiling)
        -:        -:  142:{
        6:        6:  143:   if (tiling == I915_TILING_NONE)
        1:        1:  144:      return size;
        -:        -:  145:
        -:        -:  146:   /* 965+ just need multiples of page size for tiling */
        5:        5:  147:   return ALIGN(size, 4096);
        -:        -:  148:}
        -:        -:  149:
        -:        -:  150:/*
        -:        -:  151: * Round a given pitch up to the minimum required for X tiling on a
        -:        -:  152: * given chip.  We use 512 as the minimum to allow for a later tiling
        -:        -:  153: * change.
        -:        -:  154: */
        -:        -:  155:static uint32_t
        6:        6:  156:bo_tile_pitch(struct brw_bufmgr *bufmgr, uint32_t pitch, uint32_t tiling)
        -:        -:  157:{
        -:        -:  158:   unsigned long tile_width;
        -:        -:  159:
        -:        -:  160:   /* If untiled, then just align it so that we can do rendering
        -:        -:  161:    * to it with the 3D engine.
        -:        -:  162:    */
        6:        6:  163:   if (tiling == I915_TILING_NONE)
        1:        1:  164:      return ALIGN(pitch, 64);
        -:        -:  165:
        5:        5:  166:   if (tiling == I915_TILING_X)
        3:        3:  167:      tile_width = 512;
        -:        -:  168:   else
        2:        2:  169:      tile_width = 128;
        -:        -:  170:
        -:        -:  171:   /* 965 is flexible */
        5:        5:  172:   return ALIGN(pitch, tile_width);
        -:        -:  173:}
        -:        -:  174:
        -:        -:  175:static struct bo_cache_bucket *
       40:       40:  176:bucket_for_size(struct brw_bufmgr *bufmgr, uint64_t size)
        -:        -:  177:{
        -:        -:  178:   int i;
        -:        -:  179:
      324:      324:  180:   for (i = 0; i < bufmgr->num_buckets; i++) {
      324:      324:  181:      struct bo_cache_bucket *bucket = &bufmgr->cache_bucket[i];
      324:      324:  182:      if (bucket->size >= size) {
       40:       40:  183:         return bucket;
        -:        -:  184:      }
        -:        -:  185:   }
        -:        -:  186:
    #####:    #####:  187:   return NULL;
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:inline void
       63:       63:  191:brw_bo_reference(struct brw_bo *bo)
        -:        -:  192:{
       63:       63:  193:   p_atomic_inc(&bo->refcount);
       63:       63:  194:}
        -:        -:  195:
        -:        -:  196:int
        4:        4:  197:brw_bo_busy(struct brw_bo *bo)
        -:        -:  198:{
        4:        4:  199:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  200:   struct drm_i915_gem_busy busy;
        -:        -:  201:   int ret;
        -:        -:  202:
        4:        4:  203:   memclear(busy);
        4:        4:  204:   busy.handle = bo->gem_handle;
        -:        -:  205:
        4:        4:  206:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_BUSY, &busy);
        4:        4:  207:   if (ret == 0) {
        4:        4:  208:      bo->idle = !busy.busy;
        4:        4:  209:      return busy.busy;
        -:        -:  210:   }
    #####:    #####:  211:   return false;
        -:        -:  212:}
        -:        -:  213:
        -:        -:  214:int
       21:       21:  215:brw_bo_madvise(struct brw_bo *bo, int state)
        -:        -:  216:{
        -:        -:  217:   struct drm_i915_gem_madvise madv;
        -:        -:  218:
       21:       21:  219:   memclear(madv);
       21:       21:  220:   madv.handle = bo->gem_handle;
       21:       21:  221:   madv.madv = state;
       21:       21:  222:   madv.retained = 1;
       21:       21:  223:   drmIoctl(bo->bufmgr->fd, DRM_IOCTL_I915_GEM_MADVISE, &madv);
        -:        -:  224:
       21:       21:  225:   return madv.retained;
        -:        -:  226:}
        -:        -:  227:
        -:        -:  228:/* drop the oldest entries that have been purged by the kernel */
        -:        -:  229:static void
    #####:    #####:  230:brw_bo_cache_purge_bucket(struct brw_bufmgr *bufmgr,
        -:        -:  231:                          struct bo_cache_bucket *bucket)
        -:        -:  232:{
    #####:    #####:  233:   list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
    #####:    #####:  234:      if (brw_bo_madvise(bo, I915_MADV_DONTNEED))
    #####:    #####:  235:         break;
        -:        -:  236:
    #####:    #####:  237:      list_del(&bo->head);
    #####:    #####:  238:      bo_free(bo);
        -:        -:  239:   }
    #####:    #####:  240:}
        -:        -:  241:
        -:        -:  242:static struct brw_bo *
       20:       20:  243:bo_alloc_internal(struct brw_bufmgr *bufmgr,
        -:        -:  244:                  const char *name,
        -:        -:  245:                  uint64_t size,
        -:        -:  246:                  unsigned flags,
        -:        -:  247:                  uint32_t tiling_mode,
        -:        -:  248:                  uint32_t stride, uint64_t alignment)
        -:        -:  249:{
        -:        -:  250:   struct brw_bo *bo;
       20:       20:  251:   unsigned int page_size = getpagesize();
        -:        -:  252:   int ret;
        -:        -:  253:   struct bo_cache_bucket *bucket;
        -:        -:  254:   bool alloc_from_cache;
        -:        -:  255:   uint64_t bo_size;
       20:       20:  256:   bool for_render = false;
        -:        -:  257:
       20:       20:  258:   if (flags & BO_ALLOC_FOR_RENDER)
        3:        3:  259:      for_render = true;
        -:        -:  260:
        -:        -:  261:   /* Round the allocated size up to a power of two number of pages. */
       20:       20:  262:   bucket = bucket_for_size(bufmgr, size);
        -:        -:  263:
        -:        -:  264:   /* If we don't have caching at this size, don't actually round the
        -:        -:  265:    * allocation up.
        -:        -:  266:    */
       20:       20:  267:   if (bucket == NULL) {
    #####:    #####:  268:      bo_size = size;
    #####:    #####:  269:      if (bo_size < page_size)
    #####:    #####:  270:         bo_size = page_size;
        -:        -:  271:   } else {
       20:       20:  272:      bo_size = bucket->size;
        -:        -:  273:   }
        -:        -:  274:
       20:       20:  275:   pthread_mutex_lock(&bufmgr->lock);
        -:        -:  276:   /* Get a buffer out of the cache if available */
        -:        -:  277:retry:
       20:       20:  278:   alloc_from_cache = false;
       20:       20:  279:   if (bucket != NULL && !list_empty(&bucket->head)) {
        4:        4:  280:      if (for_render) {
        -:        -:  281:         /* Allocate new render-target BOs from the tail (MRU)
        -:        -:  282:          * of the list, as it will likely be hot in the GPU
        -:        -:  283:          * cache and in the aperture for us.
        -:        -:  284:          */
    #####:    #####:  285:         bo = LIST_ENTRY(struct brw_bo, bucket->head.prev, head);
    #####:    #####:  286:         list_del(&bo->head);
    #####:    #####:  287:         alloc_from_cache = true;
    #####:    #####:  288:         bo->align = alignment;
        -:        -:  289:      } else {
        4:        4:  290:         assert(alignment == 0);
        -:        -:  291:         /* For non-render-target BOs (where we're probably
        -:        -:  292:          * going to map it first thing in order to fill it
        -:        -:  293:          * with data), check if the last BO in the cache is
        -:        -:  294:          * unbusy, and only reuse in that case. Otherwise,
        -:        -:  295:          * allocating a new buffer is probably faster than
        -:        -:  296:          * waiting for the GPU to finish.
        -:        -:  297:          */
        4:        4:  298:         bo = LIST_ENTRY(struct brw_bo, bucket->head.next, head);
        4:        4:  299:         if (!brw_bo_busy(bo)) {
        4:        4:  300:            alloc_from_cache = true;
        4:        4:  301:            list_del(&bo->head);
        -:        -:  302:         }
        -:        -:  303:      }
        -:        -:  304:
        4:        4:  305:      if (alloc_from_cache) {
        4:        4:  306:         if (!brw_bo_madvise(bo, I915_MADV_WILLNEED)) {
    #####:    #####:  307:            bo_free(bo);
    #####:    #####:  308:            brw_bo_cache_purge_bucket(bufmgr, bucket);
    #####:    #####:  309:            goto retry;
        -:        -:  310:         }
        -:        -:  311:
        4:        4:  312:         if (bo_set_tiling_internal(bo, tiling_mode, stride)) {
    #####:    #####:  313:            bo_free(bo);
    #####:    #####:  314:            goto retry;
        -:        -:  315:         }
        -:        -:  316:      }
        -:        -:  317:   }
        -:        -:  318:
       20:       20:  319:   if (!alloc_from_cache) {
        -:        -:  320:      struct drm_i915_gem_create create;
        -:        -:  321:
       16:       16:  322:      bo = calloc(1, sizeof(*bo));
       16:       16:  323:      if (!bo)
    #####:    #####:  324:         goto err;
        -:        -:  325:
       16:       16:  326:      bo->size = bo_size;
        -:        -:  327:
       16:       16:  328:      memclear(create);
       16:       16:  329:      create.size = bo_size;
        -:        -:  330:
       16:       16:  331:      ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_CREATE, &create);
       16:       16:  332:      if (ret != 0) {
    #####:    #####:  333:         free(bo);
    #####:    #####:  334:         goto err;
        -:        -:  335:      }
        -:        -:  336:
       16:       16:  337:      bo->gem_handle = create.handle;
       16:       16:  338:      _mesa_hash_table_insert(bufmgr->handle_table, &bo->gem_handle, bo);
        -:        -:  339:
       16:       16:  340:      bo->bufmgr = bufmgr;
       16:       16:  341:      bo->align = alignment;
        -:        -:  342:
       16:       16:  343:      bo->tiling_mode = I915_TILING_NONE;
       16:       16:  344:      bo->swizzle_mode = I915_BIT_6_SWIZZLE_NONE;
       16:       16:  345:      bo->stride = 0;
        -:        -:  346:
       16:       16:  347:      if (bo_set_tiling_internal(bo, tiling_mode, stride))
    #####:    #####:  348:         goto err_free;
        -:        -:  349:   }
        -:        -:  350:
       20:       20:  351:   bo->name = name;
       20:       20:  352:   p_atomic_set(&bo->refcount, 1);
       20:       20:  353:   bo->reusable = true;
        -:        -:  354:
       20:       20:  355:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  356:
       20:       20:  357:   DBG("bo_create: buf %d (%s) %ldb\n", bo->gem_handle, bo->name, size);
        -:        -:  358:
       20:       20:  359:   return bo;
        -:        -:  360:
        -:        -:  361:err_free:
    #####:    #####:  362:   bo_free(bo);
        -:        -:  363:err:
    #####:    #####:  364:   pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####:  365:   return NULL;
        -:        -:  366:}
        -:        -:  367:
        -:        -:  368:struct brw_bo *
       14:       14:  369:brw_bo_alloc(struct brw_bufmgr *bufmgr,
        -:        -:  370:             const char *name, uint64_t size, uint64_t alignment)
        -:        -:  371:{
       14:       14:  372:   return bo_alloc_internal(bufmgr, name, size, 0, I915_TILING_NONE, 0, 0);
        -:        -:  373:}
        -:        -:  374:
        -:        -:  375:struct brw_bo *
        6:        6:  376:brw_bo_alloc_tiled(struct brw_bufmgr *bufmgr, const char *name,
        -:        -:  377:                   int x, int y, int cpp, uint32_t tiling,
        -:        -:  378:                   uint32_t *pitch, unsigned flags)
        -:        -:  379:{
        -:        -:  380:   uint64_t size;
        -:        -:  381:   uint32_t stride;
        -:        -:  382:   unsigned long aligned_y, height_alignment;
        -:        -:  383:
        -:        -:  384:   /* If we're tiled, our allocations are in 8 or 32-row blocks,
        -:        -:  385:    * so failure to align our height means that we won't allocate
        -:        -:  386:    * enough pages.
        -:        -:  387:    *
        -:        -:  388:    * If we're untiled, we still have to align to 2 rows high
        -:        -:  389:    * because the data port accesses 2x2 blocks even if the
        -:        -:  390:    * bottom row isn't to be rendered, so failure to align means
        -:        -:  391:    * we could walk off the end of the GTT and fault.  This is
        -:        -:  392:    * documented on 965, and may be the case on older chipsets
        -:        -:  393:    * too so we try to be careful.
        -:        -:  394:    */
        6:        6:  395:   aligned_y = y;
        6:        6:  396:   height_alignment = 2;
        -:        -:  397:
        6:        6:  398:   if (tiling == I915_TILING_X)
        3:        3:  399:      height_alignment = 8;
        3:        3:  400:   else if (tiling == I915_TILING_Y)
        2:        2:  401:      height_alignment = 32;
        6:        6:  402:   aligned_y = ALIGN(y, height_alignment);
        -:        -:  403:
        6:        6:  404:   stride = x * cpp;
        6:        6:  405:   stride = bo_tile_pitch(bufmgr, stride, tiling);
        6:        6:  406:   size = stride * aligned_y;
        6:        6:  407:   size = bo_tile_size(bufmgr, size, tiling);
        6:        6:  408:   *pitch = stride;
        -:        -:  409:
        6:        6:  410:   if (tiling == I915_TILING_NONE)
        1:        1:  411:      stride = 0;
        -:        -:  412:
        6:        6:  413:   return bo_alloc_internal(bufmgr, name, size, flags, tiling, stride, 0);
        -:        -:  414:}
        -:        -:  415:
        -:        -:  416:/**
        -:        -:  417: * Returns a brw_bo wrapping the given buffer object handle.
        -:        -:  418: *
        -:        -:  419: * This can be used when one application needs to pass a buffer object
        -:        -:  420: * to another.
        -:        -:  421: */
        -:        -:  422:struct brw_bo *
    #####:    #####:  423:brw_bo_gem_create_from_name(struct brw_bufmgr *bufmgr,
        -:        -:  424:                            const char *name, unsigned int handle)
        -:        -:  425:{
        -:        -:  426:   struct brw_bo *bo;
        -:        -:  427:   int ret;
        -:        -:  428:   struct drm_gem_open open_arg;
        -:        -:  429:   struct drm_i915_gem_get_tiling get_tiling;
        -:        -:  430:
        -:        -:  431:   /* At the moment most applications only have a few named bo.
        -:        -:  432:    * For instance, in a DRI client only the render buffers passed
        -:        -:  433:    * between X and the client are named. And since X returns the
        -:        -:  434:    * alternating names for the front/back buffer a linear search
        -:        -:  435:    * provides a sufficiently fast match.
        -:        -:  436:    */
    #####:    #####:  437:   pthread_mutex_lock(&bufmgr->lock);
    #####:    #####:  438:   bo = hash_find_bo(bufmgr->name_table, handle);
    #####:    #####:  439:   if (bo) {
    #####:    #####:  440:      brw_bo_reference(bo);
    #####:    #####:  441:      goto out;
        -:        -:  442:   }
        -:        -:  443:
    #####:    #####:  444:   memclear(open_arg);
    #####:    #####:  445:   open_arg.name = handle;
    #####:    #####:  446:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_GEM_OPEN, &open_arg);
    #####:    #####:  447:   if (ret != 0) {
    #####:    #####:  448:      DBG("Couldn't reference %s handle 0x%08x: %s\n",
        -:        -:  449:          name, handle, strerror(errno));
    #####:    #####:  450:      bo = NULL;
    #####:    #####:  451:      goto out;
        -:        -:  452:   }
        -:        -:  453:   /* Now see if someone has used a prime handle to get this
        -:        -:  454:    * object from the kernel before by looking through the list
        -:        -:  455:    * again for a matching gem_handle
        -:        -:  456:    */
    #####:    #####:  457:   bo = hash_find_bo(bufmgr->handle_table, open_arg.handle);
    #####:    #####:  458:   if (bo) {
    #####:    #####:  459:      brw_bo_reference(bo);
    #####:    #####:  460:      goto out;
        -:        -:  461:   }
        -:        -:  462:
    #####:    #####:  463:   bo = calloc(1, sizeof(*bo));
    #####:    #####:  464:   if (!bo)
    #####:    #####:  465:      goto out;
        -:        -:  466:
    #####:    #####:  467:   p_atomic_set(&bo->refcount, 1);
        -:        -:  468:
    #####:    #####:  469:   bo->size = open_arg.size;
    #####:    #####:  470:   bo->offset64 = 0;
    #####:    #####:  471:   bo->virtual = NULL;
    #####:    #####:  472:   bo->bufmgr = bufmgr;
    #####:    #####:  473:   bo->gem_handle = open_arg.handle;
    #####:    #####:  474:   bo->name = name;
    #####:    #####:  475:   bo->global_name = handle;
    #####:    #####:  476:   bo->reusable = false;
        -:        -:  477:
    #####:    #####:  478:   _mesa_hash_table_insert(bufmgr->handle_table, &bo->gem_handle, bo);
    #####:    #####:  479:   _mesa_hash_table_insert(bufmgr->name_table, &bo->global_name, bo);
        -:        -:  480:
    #####:    #####:  481:   memclear(get_tiling);
    #####:    #####:  482:   get_tiling.handle = bo->gem_handle;
    #####:    #####:  483:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling);
    #####:    #####:  484:   if (ret != 0)
    #####:    #####:  485:      goto err_unref;
        -:        -:  486:
    #####:    #####:  487:   bo->tiling_mode = get_tiling.tiling_mode;
    #####:    #####:  488:   bo->swizzle_mode = get_tiling.swizzle_mode;
        -:        -:  489:   /* XXX stride is unknown */
    #####:    #####:  490:   DBG("bo_create_from_handle: %d (%s)\n", handle, bo->name);
        -:        -:  491:
        -:        -:  492:out:
    #####:    #####:  493:   pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####:  494:   return bo;
        -:        -:  495:
        -:        -:  496:err_unref:
    #####:    #####:  497:   bo_free(bo);
    #####:    #####:  498:   pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####:  499:   return NULL;
        -:        -:  500:}
        -:        -:  501:
        -:        -:  502:static void
       16:       16:  503:bo_free(struct brw_bo *bo)
        -:        -:  504:{
       16:       16:  505:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  506:   struct drm_gem_close close;
        -:        -:  507:   struct hash_entry *entry;
        -:        -:  508:   int ret;
        -:        -:  509:
       16:       16:  510:   if (bo->mem_virtual) {
        4:        4:  511:      VG(VALGRIND_FREELIKE_BLOCK(bo->mem_virtual, 0));
        4:        4:  512:      drm_munmap(bo->mem_virtual, bo->size);
        -:        -:  513:   }
       16:       16:  514:   if (bo->wc_virtual) {
    #####:    #####:  515:      VG(VALGRIND_FREELIKE_BLOCK(bo->wc_virtual, 0));
    #####:    #####:  516:      drm_munmap(bo->wc_virtual, bo->size);
        -:        -:  517:   }
       16:       16:  518:   if (bo->gtt_virtual) {
        1:        1:  519:      drm_munmap(bo->gtt_virtual, bo->size);
        -:        -:  520:   }
        -:        -:  521:
       16:       16:  522:   if (bo->global_name) {
    #####:    #####:  523:      entry = _mesa_hash_table_search(bufmgr->name_table, &bo->global_name);
    #####:    #####:  524:      _mesa_hash_table_remove(bufmgr->name_table, entry);
        -:        -:  525:   }
       16:       16:  526:   entry = _mesa_hash_table_search(bufmgr->handle_table, &bo->gem_handle);
       16:       16:  527:   _mesa_hash_table_remove(bufmgr->handle_table, entry);
        -:        -:  528:
        -:        -:  529:   /* Close this object */
       16:       16:  530:   memclear(close);
       16:       16:  531:   close.handle = bo->gem_handle;
       16:       16:  532:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_GEM_CLOSE, &close);
       16:       16:  533:   if (ret != 0) {
    #####:    #####:  534:      DBG("DRM_IOCTL_GEM_CLOSE %d failed (%s): %s\n",
        -:        -:  535:          bo->gem_handle, bo->name, strerror(errno));
        -:        -:  536:   }
       16:       16:  537:   free(bo);
       16:       16:  538:}
        -:        -:  539:
        -:        -:  540:static void
       14:       14:  541:bo_mark_mmaps_incoherent(struct brw_bo *bo)
        -:        -:  542:{
        -:        -:  543:#if HAVE_VALGRIND
       14:       14:  544:   if (bo->mem_virtual)
       12:       12:  545:      VALGRIND_MAKE_MEM_NOACCESS(bo->mem_virtual, bo->size);
        -:        -:  546:
       14:       14:  547:   if (bo->wc_virtual)
    #####:    #####:  548:      VALGRIND_MAKE_MEM_NOACCESS(bo->wc_virtual, bo->size);
        -:        -:  549:
       14:       14:  550:   if (bo->gtt_virtual)
        2:        2:  551:      VALGRIND_MAKE_MEM_NOACCESS(bo->gtt_virtual, bo->size);
        -:        -:  552:#endif
       14:       14:  553:}
        -:        -:  554:
        -:        -:  555:/** Frees all cached buffers significantly older than @time. */
        -:        -:  556:static void
       20:       20:  557:cleanup_bo_cache(struct brw_bufmgr *bufmgr, time_t time)
        -:        -:  558:{
        -:        -:  559:   int i;
        -:        -:  560:
       20:       20:  561:   if (bufmgr->time == time)
       19:       18:  562:      return;
        -:        -:  563:
       56:      112:  564:   for (i = 0; i < bufmgr->num_buckets; i++) {
       55:      110:  565:      struct bo_cache_bucket *bucket = &bufmgr->cache_bucket[i];
        -:        -:  566:
       55:      110:  567:      list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
    #####:        1:  568:         if (time - bo->free_time <= 1)
    #####:        1:  569:            break;
        -:        -:  570:
    #####:    #####:  571:         list_del(&bo->head);
        -:        -:  572:
    #####:    #####:  573:         bo_free(bo);
        -:        -:  574:      }
        -:        -:  575:   }
        -:        -:  576:
        1:        2:  577:   bufmgr->time = time;
        -:        -:  578:}
        -:        -:  579:
        -:        -:  580:static void
       20:       20:  581:bo_unreference_final(struct brw_bo *bo, time_t time)
        -:        -:  582:{
       20:       20:  583:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  584:   struct bo_cache_bucket *bucket;
        -:        -:  585:
       20:       20:  586:   DBG("bo_unreference final: %d (%s)\n", bo->gem_handle, bo->name);
        -:        -:  587:
        -:        -:  588:   /* Clear any left-over mappings */
       20:       20:  589:   if (bo->map_count) {
    #####:    #####:  590:      DBG("bo freed with non-zero map-count %d\n", bo->map_count);
    #####:    #####:  591:      bo->map_count = 0;
    #####:    #####:  592:      bo_mark_mmaps_incoherent(bo);
        -:        -:  593:   }
        -:        -:  594:
       20:       20:  595:   bucket = bucket_for_size(bufmgr, bo->size);
        -:        -:  596:   /* Put the buffer into our internal cache for reuse if we can. */
       37:       37:  597:   if (bufmgr->bo_reuse && bo->reusable && bucket != NULL &&
       17:       17:  598:       brw_bo_madvise(bo, I915_MADV_DONTNEED)) {
       14:       14:  599:      bo->free_time = time;
        -:        -:  600:
       14:       14:  601:      bo->name = NULL;
        -:        -:  602:
       14:       14:  603:      list_addtail(&bo->head, &bucket->head);
        -:        -:  604:   } else {
        6:        6:  605:      bo_free(bo);
        -:        -:  606:   }
       20:       20:  607:}
        -:        -:  608:
        -:        -:  609:void
       97:       97:  610:brw_bo_unreference(struct brw_bo *bo)
        -:        -:  611:{
       97:       97:  612:   if (bo == NULL)
       14:       14:  613:      return;
        -:        -:  614:
       83:       83:  615:   assert(p_atomic_read(&bo->refcount) > 0);
        -:        -:  616:
       83:       83:  617:   if (atomic_add_unless(&bo->refcount, -1, 1)) {
       20:       20:  618:      struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  619:      struct timespec time;
        -:        -:  620:
       20:       20:  621:      clock_gettime(CLOCK_MONOTONIC, &time);
        -:        -:  622:
       20:       20:  623:      pthread_mutex_lock(&bufmgr->lock);
        -:        -:  624:
       20:       20:  625:      if (p_atomic_dec_zero(&bo->refcount)) {
       20:       20:  626:         bo_unreference_final(bo, time.tv_sec);
       20:       20:  627:         cleanup_bo_cache(bufmgr, time.tv_sec);
        -:        -:  628:      }
        -:        -:  629:
       20:       20:  630:      pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  631:   }
        -:        -:  632:}
        -:        -:  633:
        -:        -:  634:static void
       12:       12:  635:set_domain(struct brw_context *brw, const char *action,
        -:        -:  636:           struct brw_bo *bo, uint32_t read_domains, uint32_t write_domain)
        -:        -:  637:{
       12:       12:  638:   struct drm_i915_gem_set_domain sd = {
       12:       12:  639:      .handle = bo->gem_handle,
        -:        -:  640:      .read_domains = read_domains,
        -:        -:  641:      .write_domain = write_domain,
        -:        -:  642:   };
        -:        -:  643:
       12:       12:  644:   double elapsed = unlikely(brw && brw->perf_debug) ? -get_time() : 0.0;
        -:        -:  645:
       12:       12:  646:   if (drmIoctl(bo->bufmgr->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, &sd) != 0) {
    #####:    #####:  647:      DBG("%s:%d: Error setting memory domains %d (%08x %08x): %s.\n",
        -:        -:  648:          __FILE__, __LINE__, bo->gem_handle, read_domains, write_domain,
        -:        -:  649:          strerror(errno));
        -:        -:  650:   }
        -:        -:  651:
       12:       12:  652:   if (unlikely(brw && brw->perf_debug)) {
    #####:    #####:  653:      elapsed += get_time();
    #####:    #####:  654:      if (elapsed > 1e-5) /* 0.01ms */
    #####:    #####:  655:         perf_debug("%s a busy \"%s\" BO stalled and took %.03f ms.\n",
        -:        -:  656:                    action, bo->name, elapsed * 1000);
        -:        -:  657:   }
       12:       12:  658:}
        -:        -:  659:
        -:        -:  660:int
        8:        8:  661:brw_bo_map(struct brw_context *brw, struct brw_bo *bo, int write_enable)
        -:        -:  662:{
        8:        8:  663:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  664:   int ret;
        -:        -:  665:
        8:        8:  666:   pthread_mutex_lock(&bufmgr->lock);
        -:        -:  667:
        8:        8:  668:   if (!bo->mem_virtual) {
        -:        -:  669:      struct drm_i915_gem_mmap mmap_arg;
        -:        -:  670:
        4:        4:  671:      DBG("bo_map: %d (%s), map_count=%d\n",
        -:        -:  672:          bo->gem_handle, bo->name, bo->map_count);
        -:        -:  673:
        4:        4:  674:      memclear(mmap_arg);
        4:        4:  675:      mmap_arg.handle = bo->gem_handle;
        4:        4:  676:      mmap_arg.size = bo->size;
        4:        4:  677:      ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg);
        4:        4:  678:      if (ret != 0) {
    #####:    #####:  679:         ret = -errno;
    #####:    #####:  680:         DBG("%s:%d: Error mapping buffer %d (%s): %s .\n",
        -:        -:  681:             __FILE__, __LINE__, bo->gem_handle, bo->name, strerror(errno));
    #####:    #####:  682:         pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####:  683:         return ret;
        -:        -:  684:      }
        4:        4:  685:      bo->map_count++;
        4:        4:  686:      VG(VALGRIND_MALLOCLIKE_BLOCK(mmap_arg.addr_ptr, mmap_arg.size, 0, 1));
        4:        4:  687:      bo->mem_virtual = (void *) (uintptr_t) mmap_arg.addr_ptr;
        -:        -:  688:   }
        8:        8:  689:   DBG("bo_map: %d (%s) -> %p\n", bo->gem_handle, bo->name, bo->mem_virtual);
        8:        8:  690:   bo->virtual = bo->mem_virtual;
        -:        -:  691:
        8:        8:  692:   set_domain(brw, "CPU mapping", bo, I915_GEM_DOMAIN_CPU,
        -:        -:  693:              write_enable ? I915_GEM_DOMAIN_CPU : 0);
        -:        -:  694:
        8:        8:  695:   bo_mark_mmaps_incoherent(bo);
        8:        8:  696:   VG(VALGRIND_MAKE_MEM_DEFINED(bo->mem_virtual, bo->size));
        8:        8:  697:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  698:
        8:        8:  699:   return 0;
        -:        -:  700:}
        -:        -:  701:
        -:        -:  702:static int
        1:        1:  703:map_gtt(struct brw_bo *bo)
        -:        -:  704:{
        1:        1:  705:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  706:   int ret;
        -:        -:  707:
        -:        -:  708:   /* Get a mapping of the buffer if we haven't before. */
        1:        1:  709:   if (bo->gtt_virtual == NULL) {
        -:        -:  710:      struct drm_i915_gem_mmap_gtt mmap_arg;
        -:        -:  711:
        1:        1:  712:      DBG("bo_map_gtt: mmap %d (%s), map_count=%d\n",
        -:        -:  713:          bo->gem_handle, bo->name, bo->map_count);
        -:        -:  714:
        1:        1:  715:      memclear(mmap_arg);
        1:        1:  716:      mmap_arg.handle = bo->gem_handle;
        -:        -:  717:
        -:        -:  718:      /* Get the fake offset back... */
        1:        1:  719:      ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_MMAP_GTT, &mmap_arg);
        1:        1:  720:      if (ret != 0) {
    #####:    #####:  721:         ret = -errno;
    #####:    #####:  722:         DBG("%s:%d: Error preparing buffer map %d (%s): %s .\n",
        -:        -:  723:             __FILE__, __LINE__, bo->gem_handle, bo->name, strerror(errno));
    #####:    #####:  724:         return ret;
        -:        -:  725:      }
        -:        -:  726:
        -:        -:  727:      /* and mmap it */
        1:        1:  728:      bo->gtt_virtual = drm_mmap(0, bo->size, PROT_READ | PROT_WRITE,
        -:        -:  729:                                 MAP_SHARED, bufmgr->fd, mmap_arg.offset);
        1:        1:  730:      if (bo->gtt_virtual == MAP_FAILED) {
    #####:    #####:  731:         bo->gtt_virtual = NULL;
    #####:    #####:  732:         ret = -errno;
    #####:    #####:  733:         DBG("%s:%d: Error mapping buffer %d (%s): %s .\n",
        -:        -:  734:             __FILE__, __LINE__, bo->gem_handle, bo->name, strerror(errno));
    #####:    #####:  735:         return ret;
        -:        -:  736:      }
        -:        -:  737:   }
        -:        -:  738:
        1:        1:  739:   bo->map_count++;
        1:        1:  740:   bo->virtual = bo->gtt_virtual;
        -:        -:  741:
        1:        1:  742:   DBG("bo_map_gtt: %d (%s) -> %p\n", bo->gem_handle, bo->name,
        -:        -:  743:       bo->gtt_virtual);
        -:        -:  744:
        1:        1:  745:   return 0;
        -:        -:  746:}
        -:        -:  747:
        -:        -:  748:int
    #####:    #####:  749:brw_bo_map_gtt(struct brw_context *brw, struct brw_bo *bo)
        -:        -:  750:{
    #####:    #####:  751:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  752:   int ret;
        -:        -:  753:
    #####:    #####:  754:   pthread_mutex_lock(&bufmgr->lock);
        -:        -:  755:
    #####:    #####:  756:   ret = map_gtt(bo);
    #####:    #####:  757:   if (ret) {
    #####:    #####:  758:      pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####:  759:      return ret;
        -:        -:  760:   }
        -:        -:  761:
        -:        -:  762:   /* Now move it to the GTT domain so that the GPU and CPU
        -:        -:  763:    * caches are flushed and the GPU isn't actively using the
        -:        -:  764:    * buffer.
        -:        -:  765:    *
        -:        -:  766:    * The pagefault handler does this domain change for us when
        -:        -:  767:    * it has unbound the BO from the GTT, but it's up to us to
        -:        -:  768:    * tell it when we're about to use things if we had done
        -:        -:  769:    * rendering and it still happens to be bound to the GTT.
        -:        -:  770:    */
    #####:    #####:  771:   set_domain(brw, "GTT mapping", bo,
        -:        -:  772:              I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
        -:        -:  773:
    #####:    #####:  774:   bo_mark_mmaps_incoherent(bo);
    #####:    #####:  775:   VG(VALGRIND_MAKE_MEM_DEFINED(bo->gtt_virtual, bo->size));
    #####:    #####:  776:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  777:
    #####:    #####:  778:   return 0;
        -:        -:  779:}
        -:        -:  780:
        -:        -:  781:/**
        -:        -:  782: * Performs a mapping of the buffer object like the normal GTT
        -:        -:  783: * mapping, but avoids waiting for the GPU to be done reading from or
        -:        -:  784: * rendering to the buffer.
        -:        -:  785: *
        -:        -:  786: * This is used in the implementation of GL_ARB_map_buffer_range: The
        -:        -:  787: * user asks to create a buffer, then does a mapping, fills some
        -:        -:  788: * space, runs a drawing command, then asks to map it again without
        -:        -:  789: * synchronizing because it guarantees that it won't write over the
        -:        -:  790: * data that the GPU is busy using (or, more specifically, that if it
        -:        -:  791: * does write over the data, it acknowledges that rendering is
        -:        -:  792: * undefined).
        -:        -:  793: */
        -:        -:  794:
        -:        -:  795:int
        1:        1:  796:brw_bo_map_unsynchronized(struct brw_context *brw, struct brw_bo *bo)
        -:        -:  797:{
        1:        1:  798:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  799:   int ret;
        -:        -:  800:
        -:        -:  801:   /* If the CPU cache isn't coherent with the GTT, then use a
        -:        -:  802:    * regular synchronized mapping.  The problem is that we don't
        -:        -:  803:    * track where the buffer was last used on the CPU side in
        -:        -:  804:    * terms of brw_bo_map vs brw_bo_map_gtt, so
        -:        -:  805:    * we would potentially corrupt the buffer even when the user
        -:        -:  806:    * does reasonable things.
        -:        -:  807:    */
        1:        1:  808:   if (!bufmgr->has_llc)
    #####:    #####:  809:      return brw_bo_map_gtt(brw, bo);
        -:        -:  810:
        1:        1:  811:   pthread_mutex_lock(&bufmgr->lock);
        -:        -:  812:
        1:        1:  813:   ret = map_gtt(bo);
        1:        1:  814:   if (ret == 0) {
        1:        1:  815:      bo_mark_mmaps_incoherent(bo);
        1:        1:  816:      VG(VALGRIND_MAKE_MEM_DEFINED(bo->gtt_virtual, bo->size));
        -:        -:  817:   }
        -:        -:  818:
        1:        1:  819:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  820:
        1:        1:  821:   return ret;
        -:        -:  822:}
        -:        -:  823:
        -:        -:  824:int
        8:        8:  825:brw_bo_unmap(struct brw_bo *bo)
        -:        -:  826:{
        8:        8:  827:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        8:        8:  828:   int ret = 0;
        -:        -:  829:
        8:        8:  830:   pthread_mutex_lock(&bufmgr->lock);
        -:        -:  831:
        8:        8:  832:   if (bo->map_count <= 0) {
        3:        3:  833:      DBG("attempted to unmap an unmapped bo\n");
        3:        3:  834:      pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  835:      /* Preserve the old behaviour of just treating this as a
        -:        -:  836:       * no-op rather than reporting the error.
        -:        -:  837:       */
        3:        3:  838:      return 0;
        -:        -:  839:   }
        -:        -:  840:
        5:        5:  841:   if (--bo->map_count == 0) {
        5:        5:  842:      bo_mark_mmaps_incoherent(bo);
        5:        5:  843:      bo->virtual = NULL;
        -:        -:  844:   }
        5:        5:  845:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -:  846:
        5:        5:  847:   return ret;
        -:        -:  848:}
        -:        -:  849:
        -:        -:  850:int
        2:        2:  851:brw_bo_subdata(struct brw_bo *bo, uint64_t offset,
        -:        -:  852:               uint64_t size, const void *data)
        -:        -:  853:{
        2:        2:  854:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  855:   struct drm_i915_gem_pwrite pwrite;
        -:        -:  856:   int ret;
        -:        -:  857:
        2:        2:  858:   memclear(pwrite);
        2:        2:  859:   pwrite.handle = bo->gem_handle;
        2:        2:  860:   pwrite.offset = offset;
        2:        2:  861:   pwrite.size = size;
        2:        2:  862:   pwrite.data_ptr = (uint64_t) (uintptr_t) data;
        2:        2:  863:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_PWRITE, &pwrite);
        2:        2:  864:   if (ret != 0) {
    #####:    #####:  865:      ret = -errno;
    #####:    #####:  866:      DBG("%s:%d: Error writing data to buffer %d: "
        -:        -:  867:          "(%"PRIu64" %"PRIu64") %s .\n",
        -:        -:  868:          __FILE__, __LINE__, bo->gem_handle, offset, size, strerror(errno));
        -:        -:  869:   }
        -:        -:  870:
        2:        2:  871:   return ret;
        -:        -:  872:}
        -:        -:  873:
        -:        -:  874:int
    #####:    #####:  875:brw_bo_get_subdata(struct brw_bo *bo, uint64_t offset,
        -:        -:  876:                   uint64_t size, void *data)
        -:        -:  877:{
    #####:    #####:  878:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  879:   struct drm_i915_gem_pread pread;
        -:        -:  880:   int ret;
        -:        -:  881:
    #####:    #####:  882:   memclear(pread);
    #####:    #####:  883:   pread.handle = bo->gem_handle;
    #####:    #####:  884:   pread.offset = offset;
    #####:    #####:  885:   pread.size = size;
    #####:    #####:  886:   pread.data_ptr = (uint64_t) (uintptr_t) data;
    #####:    #####:  887:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_PREAD, &pread);
    #####:    #####:  888:   if (ret != 0) {
    #####:    #####:  889:      ret = -errno;
    #####:    #####:  890:      DBG("%s:%d: Error reading data from buffer %d: "
        -:        -:  891:          "(%"PRIu64" %"PRIu64") %s .\n",
        -:        -:  892:          __FILE__, __LINE__, bo->gem_handle, offset, size, strerror(errno));
        -:        -:  893:   }
        -:        -:  894:
    #####:    #####:  895:   return ret;
        -:        -:  896:}
        -:        -:  897:
        -:        -:  898:/** Waits for all GPU rendering with the object to have completed. */
        -:        -:  899:void
        4:        4:  900:brw_bo_wait_rendering(struct brw_context *brw, struct brw_bo *bo)
        -:        -:  901:{
        4:        4:  902:   set_domain(brw, "waiting for",
        -:        -:  903:              bo, I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
        4:        4:  904:}
        -:        -:  905:
        -:        -:  906:/**
        -:        -:  907: * Waits on a BO for the given amount of time.
        -:        -:  908: *
        -:        -:  909: * @bo: buffer object to wait for
        -:        -:  910: * @timeout_ns: amount of time to wait in nanoseconds.
        -:        -:  911: *   If value is less than 0, an infinite wait will occur.
        -:        -:  912: *
        -:        -:  913: * Returns 0 if the wait was successful ie. the last batch referencing the
        -:        -:  914: * object has completed within the allotted time. Otherwise some negative return
        -:        -:  915: * value describes the error. Of particular interest is -ETIME when the wait has
        -:        -:  916: * failed to yield the desired result.
        -:        -:  917: *
        -:        -:  918: * Similar to brw_bo_wait_rendering except a timeout parameter allows
        -:        -:  919: * the operation to give up after a certain amount of time. Another subtle
        -:        -:  920: * difference is the internal locking semantics are different (this variant does
        -:        -:  921: * not hold the lock for the duration of the wait). This makes the wait subject
        -:        -:  922: * to a larger userspace race window.
        -:        -:  923: *
        -:        -:  924: * The implementation shall wait until the object is no longer actively
        -:        -:  925: * referenced within a batch buffer at the time of the call. The wait will
        -:        -:  926: * not guarantee that the buffer is re-issued via another thread, or an flinked
        -:        -:  927: * handle. Userspace must make sure this race does not occur if such precision
        -:        -:  928: * is important.
        -:        -:  929: *
        -:        -:  930: * Note that some kernels have broken the inifite wait for negative values
        -:        -:  931: * promise, upgrade to latest stable kernels if this is the case.
        -:        -:  932: */
        -:        -:  933:int
    #####:    #####:  934:brw_bo_wait(struct brw_bo *bo, int64_t timeout_ns)
        -:        -:  935:{
    #####:    #####:  936:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  937:   struct drm_i915_gem_wait wait;
        -:        -:  938:   int ret;
        -:        -:  939:
    #####:    #####:  940:   memclear(wait);
    #####:    #####:  941:   wait.bo_handle = bo->gem_handle;
    #####:    #####:  942:   wait.timeout_ns = timeout_ns;
    #####:    #####:  943:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_WAIT, &wait);
    #####:    #####:  944:   if (ret == -1)
    #####:    #####:  945:      return -errno;
        -:        -:  946:
    #####:    #####:  947:   return ret;
        -:        -:  948:}
        -:        -:  949:
        -:        -:  950:void
        1:        1:  951:brw_bufmgr_destroy(struct brw_bufmgr *bufmgr)
        -:        -:  952:{
        1:        1:  953:   pthread_mutex_destroy(&bufmgr->lock);
        -:        -:  954:
        -:        -:  955:   /* Free any cached buffer objects we were going to reuse */
       56:       56:  956:   for (int i = 0; i < bufmgr->num_buckets; i++) {
       55:       55:  957:      struct bo_cache_bucket *bucket = &bufmgr->cache_bucket[i];
        -:        -:  958:
       65:       65:  959:      list_for_each_entry_safe(struct brw_bo, bo, &bucket->head, head) {
       10:       10:  960:         list_del(&bo->head);
        -:        -:  961:
       10:       10:  962:         bo_free(bo);
        -:        -:  963:      }
        -:        -:  964:   }
        -:        -:  965:
        1:        1:  966:   _mesa_hash_table_destroy(bufmgr->name_table, NULL);
        1:        1:  967:   _mesa_hash_table_destroy(bufmgr->handle_table, NULL);
        -:        -:  968:
        1:        1:  969:   free(bufmgr);
        1:        1:  970:}
        -:        -:  971:
        -:        -:  972:static int
       20:       20:  973:bo_set_tiling_internal(struct brw_bo *bo, uint32_t tiling_mode,
        -:        -:  974:                       uint32_t stride)
        -:        -:  975:{
       20:       20:  976:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -:  977:   struct drm_i915_gem_set_tiling set_tiling;
        -:        -:  978:   int ret;
        -:        -:  979:
       40:       40:  980:   if (bo->global_name == 0 &&
       35:       35:  981:       tiling_mode == bo->tiling_mode && stride == bo->stride)
       15:       15:  982:      return 0;
        -:        -:  983:
        5:        5:  984:   memset(&set_tiling, 0, sizeof(set_tiling));
        -:        -:  985:   do {
        -:        -:  986:      /* set_tiling is slightly broken and overwrites the
        -:        -:  987:       * input on the error path, so we have to open code
        -:        -:  988:       * rmIoctl.
        -:        -:  989:       */
        5:        5:  990:      set_tiling.handle = bo->gem_handle;
        5:        5:  991:      set_tiling.tiling_mode = tiling_mode;
        5:        5:  992:      set_tiling.stride = stride;
        -:        -:  993:
        5:        5:  994:      ret = ioctl(bufmgr->fd, DRM_IOCTL_I915_GEM_SET_TILING, &set_tiling);
        5:        5:  995:   } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
        5:        5:  996:   if (ret == -1)
    #####:    #####:  997:      return -errno;
        -:        -:  998:
        5:        5:  999:   bo->tiling_mode = set_tiling.tiling_mode;
        5:        5: 1000:   bo->swizzle_mode = set_tiling.swizzle_mode;
        5:        5: 1001:   bo->stride = set_tiling.stride;
        5:        5: 1002:   return 0;
        -:        -: 1003:}
        -:        -: 1004:
        -:        -: 1005:int
        8:        8: 1006:brw_bo_get_tiling(struct brw_bo *bo, uint32_t *tiling_mode,
        -:        -: 1007:                  uint32_t *swizzle_mode)
        -:        -: 1008:{
        8:        8: 1009:   *tiling_mode = bo->tiling_mode;
        8:        8: 1010:   *swizzle_mode = bo->swizzle_mode;
        8:        8: 1011:   return 0;
        -:        -: 1012:}
        -:        -: 1013:
        -:        -: 1014:struct brw_bo *
    #####:    #####: 1015:brw_bo_gem_create_from_prime(struct brw_bufmgr *bufmgr, int prime_fd,
        -:        -: 1016:                             int size)
        -:        -: 1017:{
        -:        -: 1018:   int ret;
        -:        -: 1019:   uint32_t handle;
        -:        -: 1020:   struct brw_bo *bo;
        -:        -: 1021:   struct drm_i915_gem_get_tiling get_tiling;
        -:        -: 1022:
    #####:    #####: 1023:   pthread_mutex_lock(&bufmgr->lock);
    #####:    #####: 1024:   ret = drmPrimeFDToHandle(bufmgr->fd, prime_fd, &handle);
    #####:    #####: 1025:   if (ret) {
    #####:    #####: 1026:      DBG("create_from_prime: failed to obtain handle from fd: %s\n",
        -:        -: 1027:          strerror(errno));
    #####:    #####: 1028:      pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####: 1029:      return NULL;
        -:        -: 1030:   }
        -:        -: 1031:
        -:        -: 1032:   /*
        -:        -: 1033:    * See if the kernel has already returned this buffer to us. Just as
        -:        -: 1034:    * for named buffers, we must not create two bo's pointing at the same
        -:        -: 1035:    * kernel object
        -:        -: 1036:    */
    #####:    #####: 1037:   bo = hash_find_bo(bufmgr->handle_table, handle);
    #####:    #####: 1038:   if (bo) {
    #####:    #####: 1039:      brw_bo_reference(bo);
    #####:    #####: 1040:      goto out;
        -:        -: 1041:   }
        -:        -: 1042:
    #####:    #####: 1043:   bo = calloc(1, sizeof(*bo));
    #####:    #####: 1044:   if (!bo)
    #####:    #####: 1045:      goto out;
        -:        -: 1046:
    #####:    #####: 1047:   p_atomic_set(&bo->refcount, 1);
        -:        -: 1048:
        -:        -: 1049:   /* Determine size of bo.  The fd-to-handle ioctl really should
        -:        -: 1050:    * return the size, but it doesn't.  If we have kernel 3.12 or
        -:        -: 1051:    * later, we can lseek on the prime fd to get the size.  Older
        -:        -: 1052:    * kernels will just fail, in which case we fall back to the
        -:        -: 1053:    * provided (estimated or guess size). */
    #####:    #####: 1054:   ret = lseek(prime_fd, 0, SEEK_END);
    #####:    #####: 1055:   if (ret != -1)
    #####:    #####: 1056:      bo->size = ret;
        -:        -: 1057:   else
    #####:    #####: 1058:      bo->size = size;
        -:        -: 1059:
    #####:    #####: 1060:   bo->bufmgr = bufmgr;
        -:        -: 1061:
    #####:    #####: 1062:   bo->gem_handle = handle;
    #####:    #####: 1063:   _mesa_hash_table_insert(bufmgr->handle_table, &bo->gem_handle, bo);
        -:        -: 1064:
    #####:    #####: 1065:   bo->name = "prime";
    #####:    #####: 1066:   bo->reusable = false;
        -:        -: 1067:
    #####:    #####: 1068:   memclear(get_tiling);
    #####:    #####: 1069:   get_tiling.handle = bo->gem_handle;
    #####:    #####: 1070:   if (drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_GET_TILING, &get_tiling))
    #####:    #####: 1071:      goto err;
        -:        -: 1072:
    #####:    #####: 1073:   bo->tiling_mode = get_tiling.tiling_mode;
    #####:    #####: 1074:   bo->swizzle_mode = get_tiling.swizzle_mode;
        -:        -: 1075:   /* XXX stride is unknown */
        -:        -: 1076:
        -:        -: 1077:out:
    #####:    #####: 1078:   pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####: 1079:   return bo;
        -:        -: 1080:
        -:        -: 1081:err:
    #####:    #####: 1082:   bo_free(bo);
    #####:    #####: 1083:   pthread_mutex_unlock(&bufmgr->lock);
    #####:    #####: 1084:   return NULL;
        -:        -: 1085:}
        -:        -: 1086:
        -:        -: 1087:int
        2:        2: 1088:brw_bo_gem_export_to_prime(struct brw_bo *bo, int *prime_fd)
        -:        -: 1089:{
        2:        2: 1090:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -: 1091:
        2:        2: 1092:   if (drmPrimeHandleToFD(bufmgr->fd, bo->gem_handle,
        -:        -: 1093:                          DRM_CLOEXEC, prime_fd) != 0)
    #####:    #####: 1094:      return -errno;
        -:        -: 1095:
        2:        2: 1096:   bo->reusable = false;
        -:        -: 1097:
        2:        2: 1098:   return 0;
        -:        -: 1099:}
        -:        -: 1100:
        -:        -: 1101:int
    #####:    #####: 1102:brw_bo_flink(struct brw_bo *bo, uint32_t *name)
        -:        -: 1103:{
    #####:    #####: 1104:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -: 1105:
    #####:    #####: 1106:   if (!bo->global_name) {
        -:        -: 1107:      struct drm_gem_flink flink;
        -:        -: 1108:
    #####:    #####: 1109:      memclear(flink);
    #####:    #####: 1110:      flink.handle = bo->gem_handle;
    #####:    #####: 1111:      if (drmIoctl(bufmgr->fd, DRM_IOCTL_GEM_FLINK, &flink))
    #####:    #####: 1112:         return -errno;
        -:        -: 1113:
    #####:    #####: 1114:      pthread_mutex_lock(&bufmgr->lock);
    #####:    #####: 1115:      if (!bo->global_name) {
    #####:    #####: 1116:         bo->global_name = flink.name;
    #####:    #####: 1117:         bo->reusable = false;
        -:        -: 1118:
    #####:    #####: 1119:         _mesa_hash_table_insert(bufmgr->name_table, &bo->global_name, bo);
        -:        -: 1120:      }
    #####:    #####: 1121:      pthread_mutex_unlock(&bufmgr->lock);
        -:        -: 1122:   }
        -:        -: 1123:
    #####:    #####: 1124:   *name = bo->global_name;
    #####:    #####: 1125:   return 0;
        -:        -: 1126:}
        -:        -: 1127:
        -:        -: 1128:/**
        -:        -: 1129: * Enables unlimited caching of buffer objects for reuse.
        -:        -: 1130: *
        -:        -: 1131: * This is potentially very memory expensive, as the cache at each bucket
        -:        -: 1132: * size is only bounded by how many buffers of that size we've managed to have
        -:        -: 1133: * in flight at once.
        -:        -: 1134: */
        -:        -: 1135:void
        1:        1: 1136:brw_bufmgr_enable_reuse(struct brw_bufmgr *bufmgr)
        -:        -: 1137:{
        1:        1: 1138:   bufmgr->bo_reuse = true;
        1:        1: 1139:}
        -:        -: 1140:
        -:        -: 1141:static void
       55:       55: 1142:add_bucket(struct brw_bufmgr *bufmgr, int size)
        -:        -: 1143:{
       55:       55: 1144:   unsigned int i = bufmgr->num_buckets;
        -:        -: 1145:
       55:       55: 1146:   assert(i < ARRAY_SIZE(bufmgr->cache_bucket));
        -:        -: 1147:
       55:       55: 1148:   list_inithead(&bufmgr->cache_bucket[i].head);
       55:       55: 1149:   bufmgr->cache_bucket[i].size = size;
       55:       55: 1150:   bufmgr->num_buckets++;
       55:       55: 1151:}
        -:        -: 1152:
        -:        -: 1153:static void
        1:        1: 1154:init_cache_buckets(struct brw_bufmgr *bufmgr)
        -:        -: 1155:{
        1:        1: 1156:   uint64_t size, cache_max_size = 64 * 1024 * 1024;
        -:        -: 1157:
        -:        -: 1158:   /* OK, so power of two buckets was too wasteful of memory.
        -:        -: 1159:    * Give 3 other sizes between each power of two, to hopefully
        -:        -: 1160:    * cover things accurately enough.  (The alternative is
        -:        -: 1161:    * probably to just go for exact matching of sizes, and assume
        -:        -: 1162:    * that for things like composited window resize the tiled
        -:        -: 1163:    * width/height alignment and rounding of sizes to pages will
        -:        -: 1164:    * get us useful cache hit rates anyway)
        -:        -: 1165:    */
        1:        1: 1166:   add_bucket(bufmgr, 4096);
        1:        1: 1167:   add_bucket(bufmgr, 4096 * 2);
        1:        1: 1168:   add_bucket(bufmgr, 4096 * 3);
        -:        -: 1169:
        -:        -: 1170:   /* Initialize the linked lists for BO reuse cache. */
       14:       14: 1171:   for (size = 4 * 4096; size <= cache_max_size; size *= 2) {
       13:       13: 1172:      add_bucket(bufmgr, size);
        -:        -: 1173:
       13:       13: 1174:      add_bucket(bufmgr, size + size * 1 / 4);
       13:       13: 1175:      add_bucket(bufmgr, size + size * 2 / 4);
       13:       13: 1176:      add_bucket(bufmgr, size + size * 3 / 4);
        -:        -: 1177:   }
        1:        1: 1178:}
        -:        -: 1179:
        -:        -: 1180:uint32_t
        1:        1: 1181:brw_create_hw_context(struct brw_bufmgr *bufmgr)
        -:        -: 1182:{
        -:        -: 1183:   struct drm_i915_gem_context_create create;
        -:        -: 1184:   int ret;
        -:        -: 1185:
        1:        1: 1186:   memclear(create);
        1:        1: 1187:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create);
        1:        1: 1188:   if (ret != 0) {
    #####:    #####: 1189:      DBG("DRM_IOCTL_I915_GEM_CONTEXT_CREATE failed: %s\n", strerror(errno));
    #####:    #####: 1190:      return 0;
        -:        -: 1191:   }
        -:        -: 1192:
        1:        1: 1193:   return create.ctx_id;
        -:        -: 1194:}
        -:        -: 1195:
        -:        -: 1196:void
        1:        1: 1197:brw_destroy_hw_context(struct brw_bufmgr *bufmgr, uint32_t ctx_id)
        -:        -: 1198:{
        1:        1: 1199:   struct drm_i915_gem_context_destroy d = {.ctx_id = ctx_id };
        -:        -: 1200:
        2:        2: 1201:   if (ctx_id != 0 &&
        1:        1: 1202:       drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, &d) != 0) {
    #####:    #####: 1203:      fprintf(stderr, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY failed: %s\n",
    #####:    #####: 1204:              strerror(errno));
        -:        -: 1205:   }
        1:        1: 1206:}
        -:        -: 1207:
        -:        -: 1208:int
        1:        1: 1209:brw_reg_read(struct brw_bufmgr *bufmgr, uint32_t offset, uint64_t *result)
        -:        -: 1210:{
        -:        -: 1211:   struct drm_i915_reg_read reg_read;
        -:        -: 1212:   int ret;
        -:        -: 1213:
        1:        1: 1214:   memclear(reg_read);
        1:        1: 1215:   reg_read.offset = offset;
        -:        -: 1216:
        1:        1: 1217:   ret = drmIoctl(bufmgr->fd, DRM_IOCTL_I915_REG_READ, ®_read);
        -:        -: 1218:
        1:        1: 1219:   *result = reg_read.val;
        1:        1: 1220:   return ret;
        -:        -: 1221:}
        -:        -: 1222:
        -:        -: 1223:void *
    #####:    #####: 1224:brw_bo_map__gtt(struct brw_bo *bo)
        -:        -: 1225:{
    #####:    #####: 1226:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -: 1227:
    #####:    #####: 1228:   if (bo->gtt_virtual)
    #####:    #####: 1229:      return bo->gtt_virtual;
        -:        -: 1230:
    #####:    #####: 1231:   pthread_mutex_lock(&bufmgr->lock);
    #####:    #####: 1232:   if (bo->gtt_virtual == NULL) {
        -:        -: 1233:      struct drm_i915_gem_mmap_gtt mmap_arg;
        -:        -: 1234:      void *ptr;
        -:        -: 1235:
    #####:    #####: 1236:      DBG("bo_map_gtt: mmap %d (%s), map_count=%d\n",
        -:        -: 1237:          bo->gem_handle, bo->name, bo->map_count);
        -:        -: 1238:
    #####:    #####: 1239:      memclear(mmap_arg);
    #####:    #####: 1240:      mmap_arg.handle = bo->gem_handle;
        -:        -: 1241:
        -:        -: 1242:      /* Get the fake offset back... */
    #####:    #####: 1243:      ptr = MAP_FAILED;
    #####:    #####: 1244:      if (drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_MMAP_GTT, &mmap_arg) == 0) {
        -:        -: 1245:         /* and mmap it */
    #####:    #####: 1246:         ptr = drm_mmap(0, bo->size, PROT_READ | PROT_WRITE,
        -:        -: 1247:                        MAP_SHARED, bufmgr->fd, mmap_arg.offset);
        -:        -: 1248:      }
    #####:    #####: 1249:      if (ptr == MAP_FAILED) {
    #####:    #####: 1250:         --bo->map_count;
    #####:    #####: 1251:         ptr = NULL;
        -:        -: 1252:      }
        -:        -: 1253:
    #####:    #####: 1254:      bo->gtt_virtual = ptr;
        -:        -: 1255:   }
    #####:    #####: 1256:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -: 1257:
    #####:    #####: 1258:   return bo->gtt_virtual;
        -:        -: 1259:}
        -:        -: 1260:
        -:        -: 1261:void *
    #####:    #####: 1262:brw_bo_map__cpu(struct brw_bo *bo)
        -:        -: 1263:{
    #####:    #####: 1264:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -: 1265:
    #####:    #####: 1266:   if (bo->mem_virtual)
    #####:    #####: 1267:      return bo->mem_virtual;
        -:        -: 1268:
    #####:    #####: 1269:   pthread_mutex_lock(&bufmgr->lock);
    #####:    #####: 1270:   if (!bo->mem_virtual) {
        -:        -: 1271:      struct drm_i915_gem_mmap mmap_arg;
        -:        -: 1272:
    #####:    #####: 1273:      DBG("bo_map: %d (%s), map_count=%d\n",
        -:        -: 1274:          bo->gem_handle, bo->name, bo->map_count);
        -:        -: 1275:
    #####:    #####: 1276:      memclear(mmap_arg);
    #####:    #####: 1277:      mmap_arg.handle = bo->gem_handle;
    #####:    #####: 1278:      mmap_arg.size = bo->size;
    #####:    #####: 1279:      if (drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg)) {
    #####:    #####: 1280:         DBG("%s:%d: Error mapping buffer %d (%s): %s .\n",
        -:        -: 1281:             __FILE__, __LINE__, bo->gem_handle, bo->name, strerror(errno));
        -:        -: 1282:      } else {
    #####:    #####: 1283:         bo->map_count++;
    #####:    #####: 1284:         VG(VALGRIND_MALLOCLIKE_BLOCK
        -:        -: 1285:            (mmap_arg.addr_ptr, mmap_arg.size, 0, 1));
    #####:    #####: 1286:         bo->mem_virtual = (void *) (uintptr_t) mmap_arg.addr_ptr;
        -:        -: 1287:      }
        -:        -: 1288:   }
    #####:    #####: 1289:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -: 1290:
    #####:    #####: 1291:   return bo->mem_virtual;
        -:        -: 1292:}
        -:        -: 1293:
        -:        -: 1294:void *
    #####:    #####: 1295:brw_bo_map__wc(struct brw_bo *bo)
        -:        -: 1296:{
    #####:    #####: 1297:   struct brw_bufmgr *bufmgr = bo->bufmgr;
        -:        -: 1298:
    #####:    #####: 1299:   if (bo->wc_virtual)
    #####:    #####: 1300:      return bo->wc_virtual;
        -:        -: 1301:
    #####:    #####: 1302:   pthread_mutex_lock(&bufmgr->lock);
    #####:    #####: 1303:   if (!bo->wc_virtual) {
        -:        -: 1304:      struct drm_i915_gem_mmap mmap_arg;
        -:        -: 1305:
    #####:    #####: 1306:      DBG("bo_map: %d (%s), map_count=%d\n",
        -:        -: 1307:          bo->gem_handle, bo->name, bo->map_count);
        -:        -: 1308:
    #####:    #####: 1309:      memclear(mmap_arg);
    #####:    #####: 1310:      mmap_arg.handle = bo->gem_handle;
    #####:    #####: 1311:      mmap_arg.size = bo->size;
    #####:    #####: 1312:      mmap_arg.flags = I915_MMAP_WC;
    #####:    #####: 1313:      if (drmIoctl(bufmgr->fd, DRM_IOCTL_I915_GEM_MMAP, &mmap_arg)) {
    #####:    #####: 1314:         DBG("%s:%d: Error mapping buffer %d (%s): %s .\n",
        -:        -: 1315:             __FILE__, __LINE__, bo->gem_handle, bo->name, strerror(errno));
        -:        -: 1316:      } else {
    #####:    #####: 1317:         bo->map_count++;
    #####:    #####: 1318:         VG(VALGRIND_MALLOCLIKE_BLOCK
        -:        -: 1319:            (mmap_arg.addr_ptr, mmap_arg.size, 0, 1));
    #####:    #####: 1320:         bo->wc_virtual = (void *) (uintptr_t) mmap_arg.addr_ptr;
        -:        -: 1321:      }
        -:        -: 1322:   }
    #####:    #####: 1323:   pthread_mutex_unlock(&bufmgr->lock);
        -:        -: 1324:
    #####:    #####: 1325:   return bo->wc_virtual;
        -:        -: 1326:}
        -:        -: 1327:
        -:        -: 1328:/**
        -:        -: 1329: * Initializes the GEM buffer manager, which uses the kernel to allocate, map,
        -:        -: 1330: * and manage map buffer objections.
        -:        -: 1331: *
        -:        -: 1332: * \param fd File descriptor of the opened DRM device.
        -:        -: 1333: */
        -:        -: 1334:struct brw_bufmgr *
        1:        1: 1335:brw_bufmgr_init(struct gen_device_info *devinfo, int fd, int batch_size)
        -:        -: 1336:{
        -:        -: 1337:   struct brw_bufmgr *bufmgr;
        -:        -: 1338:
        1:        1: 1339:   bufmgr = calloc(1, sizeof(*bufmgr));
        1:        1: 1340:   if (bufmgr == NULL)
    #####:    #####: 1341:      return NULL;
        -:        -: 1342:
        -:        -: 1343:   /* Handles to buffer objects belong to the device fd and are not
        -:        -: 1344:    * reference counted by the kernel.  If the same fd is used by
        -:        -: 1345:    * multiple parties (threads sharing the same screen bufmgr, or
        -:        -: 1346:    * even worse the same device fd passed to multiple libraries)
        -:        -: 1347:    * ownership of those handles is shared by those independent parties.
        -:        -: 1348:    *
        -:        -: 1349:    * Don't do this! Ensure that each library/bufmgr has its own device
        -:        -: 1350:    * fd so that its namespace does not clash with another.
        -:        -: 1351:    */
        1:        1: 1352:   bufmgr->fd = fd;
        -:        -: 1353:
        1:        1: 1354:   if (pthread_mutex_init(&bufmgr->lock, NULL) != 0) {
    #####:    #####: 1355:      free(bufmgr);
    #####:    #####: 1356:      return NULL;
        -:        -: 1357:   }
        -:        -: 1358:
        1:        1: 1359:   bufmgr->has_llc = devinfo->has_llc;
        -:        -: 1360:
        1:        1: 1361:   init_cache_buckets(bufmgr);
        -:        -: 1362:
        1:        1: 1363:   bufmgr->name_table =
        1:        1: 1364:      _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
        1:        1: 1365:   bufmgr->handle_table =
        1:        1: 1366:      _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
        -:        -: 1367:
        1:        1: 1368:   return bufmgr;
        -:        -: 1369:}

src/mesa/drivers/dri/i965/brw_fs_channel_expressions.cpp.gcov

        -:        -:    0:Source:brw_fs_channel_expressions.cpp
        -:        -:    0:Graph:.libs/brw_fs_channel_expressions.gcno
        -:        -:    0:Data:.libs/brw_fs_channel_expressions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file brw_wm_channel_expressions.cpp
        -:        -:   26: *
        -:        -:   27: * Breaks vector operations down into operations on each component.
        -:        -:   28: *
        -:        -:   29: * The 965 fragment shader receives 8 or 16 pixels at a time, so each
        -:        -:   30: * channel of a vector is laid out as 1 or 2 8-float registers.  Each
        -:        -:   31: * ALU operation operates on one of those channel registers.  As a
        -:        -:   32: * result, there is no value to the 965 fragment shader in tracking
        -:        -:   33: * "vector" expressions in the sense of GLSL fragment shaders, when
        -:        -:   34: * doing a channel at a time may help in constant folding, algebraic
        -:        -:   35: * simplification, and reducing the liveness of channel registers.
        -:        -:   36: *
        -:        -:   37: * The exception to the desire to break everything down to floats is
        -:        -:   38: * texturing.  The texture sampler returns a writemasked masked
        -:        -:   39: * 4/8-register sequence containing the texture values.  We don't want
        -:        -:   40: * to dispatch to the sampler separately for each channel we need, so
        -:        -:   41: * we do retain the vector types in that case.
        -:        -:   42: */
        -:        -:   43:
        -:        -:   44:#include "brw_program.h"
        -:        -:   45:#include "compiler/glsl/ir.h"
        -:        -:   46:#include "compiler/glsl/ir_expression_flattening.h"
        -:        -:   47:#include "compiler/glsl_types.h"
        -:        -:   48:
        -:        -:   49:class ir_channel_expressions_visitor : public ir_hierarchical_visitor {
        -:        -:   50:public:
        4:        4:   51:   ir_channel_expressions_visitor()
        4:        4:   52:   {
        4:        4:   53:      this->progress = false;
        4:        4:   54:      this->mem_ctx = NULL;
        4:        4:   55:   }
        -:        -:   56:
        -:        -:   57:   ir_visitor_status visit_leave(ir_assignment *);
        -:        -:   58:
        -:        -:   59:   ir_rvalue *get_element(ir_variable *var, unsigned int element);
        -:        -:   60:   void assign(ir_assignment *ir, int elem, ir_rvalue *val);
        -:        -:   61:
        -:        -:   62:   bool progress;
        -:        -:   63:   void *mem_ctx;
        -:        -:   64:};
        -:        -:   65:
        -:        -:   66:static bool
      630:      660:   67:channel_expressions_predicate(ir_instruction *ir)
        -:        -:   68:{
      630:      660:   69:   ir_expression *expr = ir->as_expression();
        -:        -:   70:   unsigned int i;
        -:        -:   71:
      630:      660:   72:   if (!expr)
      510:      534:   73:      return false;
        -:        -:   74:
      120:      126:   75:   switch (expr->operation) {
        -:        -:   76:      case ir_unop_pack_half_2x16:
        -:        -:   77:      case ir_unop_pack_snorm_2x16:
        -:        -:   78:      case ir_unop_pack_snorm_4x8:
        -:        -:   79:      case ir_unop_pack_unorm_2x16:
        -:        -:   80:      case ir_unop_pack_unorm_4x8:
    #####:    #####:   81:         return false;
        -:        -:   82:
        -:        -:   83:      /* these opcodes need to act on the whole vector,
        -:        -:   84:       * just like texturing.
        -:        -:   85:       */
        -:        -:   86:      case ir_unop_interpolate_at_centroid:
        -:        -:   87:      case ir_binop_interpolate_at_offset:
        -:        -:   88:      case ir_binop_interpolate_at_sample:
        -:        -:   89:      case ir_unop_pack_double_2x32:
        -:        -:   90:      case ir_unop_pack_int_2x32:
        -:        -:   91:      case ir_unop_pack_uint_2x32:
    #####:    #####:   92:         return false;
        -:        -:   93:      default:
      120:      126:   94:         break;
        -:        -:   95:   }
        -:        -:   96:
      336:      354:   97:   for (i = 0; i < expr->get_num_operands(); i++) {
      219:      231:   98:      if (expr->operands[i]->type->is_vector())
        3:        3:   99:	 return true;
        -:        -:  100:   }
        -:        -:  101:
      117:      123:  102:   return false;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:bool
        4:        4:  106:brw_do_channel_expressions(exec_list *instructions)
        -:        -:  107:{
        4:        4:  108:   ir_channel_expressions_visitor v;
        -:        -:  109:
        -:        -:  110:   /* Pull out any matrix expression to a separate assignment to a
        -:        -:  111:    * temp.  This will make our handling of the breakdown to
        -:        -:  112:    * operations on the matrix's vector components much easier.
        -:        -:  113:    */
        4:        4:  114:   do_expression_flattening(instructions, channel_expressions_predicate);
        -:        -:  115:
        4:        4:  116:   visit_list_elements(&v, instructions);
        -:        -:  117:
        4:        4:  118:   return v.progress;
        -:        -:  119:}
        -:        -:  120:
        -:        -:  121:ir_rvalue *
       24:       24:  122:ir_channel_expressions_visitor::get_element(ir_variable *var, unsigned int elem)
        -:        -:  123:{
        -:        -:  124:   ir_dereference *deref;
        -:        -:  125:
       24:       24:  126:   if (var->type->is_scalar())
    #####:    #####:  127:      return new(mem_ctx) ir_dereference_variable(var);
        -:        -:  128:
       24:       24:  129:   assert(elem < var->type->components());
       24:       24:  130:   deref = new(mem_ctx) ir_dereference_variable(var);
       24:       24:  131:   return new(mem_ctx) ir_swizzle(deref, elem, 0, 0, 0, 1);
        -:        -:  132:}
        -:        -:  133:
        -:        -:  134:void
       12:       12:  135:ir_channel_expressions_visitor::assign(ir_assignment *ir, int elem, ir_rvalue *val)
        -:        -:  136:{
       12:       12:  137:   ir_dereference *lhs = ir->lhs->clone(mem_ctx, NULL);
        -:        -:  138:   ir_assignment *assign;
        -:        -:  139:
        -:        -:  140:   /* This assign-of-expression should have been generated by the
        -:        -:  141:    * expression flattening visitor (since we never short circit to
        -:        -:  142:    * not flatten, even for plain assignments of variables), so the
        -:        -:  143:    * writemask is always full.
        -:        -:  144:    */
       12:       12:  145:   assert(ir->write_mask == (1 << ir->lhs->type->components()) - 1);
        -:        -:  146:
       12:       12:  147:   assign = new(mem_ctx) ir_assignment(lhs, val, NULL, (1 << elem));
       12:       12:  148:   ir->insert_before(assign);
       12:       12:  149:}
        -:        -:  150:
        -:        -:  151:ir_visitor_status
      204:      204:  152:ir_channel_expressions_visitor::visit_leave(ir_assignment *ir)
        -:        -:  153:{
      204:      204:  154:   ir_expression *expr = ir->rhs->as_expression();
      204:      204:  155:   bool found_vector = false;
      204:      204:  156:   unsigned int i, vector_elements = 1;
        -:        -:  157:   ir_variable *op_var[4];
        -:        -:  158:
      204:      204:  159:   if (!expr)
      158:      158:  160:      return visit_continue;
        -:        -:  161:
       46:       46:  162:   if (!this->mem_ctx)
        3:        3:  163:      this->mem_ctx = ralloc_parent(ir);
        -:        -:  164:
      129:      129:  165:   for (i = 0; i < expr->get_num_operands(); i++) {
       86:       86:  166:      if (expr->operands[i]->type->is_vector()) {
        3:        3:  167:	 found_vector = true;
        3:        3:  168:	 vector_elements = expr->operands[i]->type->vector_elements;
        3:        3:  169:	 break;
        -:        -:  170:      }
        -:        -:  171:   }
       46:       46:  172:   if (!found_vector)
       43:       43:  173:      return visit_continue;
        -:        -:  174:
        3:        3:  175:   switch (expr->operation) {
        -:        -:  176:      case ir_unop_pack_half_2x16:
        -:        -:  177:      case ir_unop_pack_snorm_2x16:
        -:        -:  178:      case ir_unop_pack_snorm_4x8:
        -:        -:  179:      case ir_unop_pack_unorm_2x16:
        -:        -:  180:      case ir_unop_pack_unorm_4x8:
        -:        -:  181:      case ir_unop_interpolate_at_centroid:
        -:        -:  182:      case ir_binop_interpolate_at_offset:
        -:        -:  183:      case ir_binop_interpolate_at_sample:
        -:        -:  184:      /* We scalarize these in NIR, so no need to do it here */
        -:        -:  185:      case ir_unop_pack_double_2x32:
        -:        -:  186:      case ir_unop_pack_int_2x32:
        -:        -:  187:      case ir_unop_pack_uint_2x32:
    #####:    #####:  188:         return visit_continue;
        -:        -:  189:
        -:        -:  190:      default:
        3:        3:  191:         break;
        -:        -:  192:   }
        -:        -:  193:
        -:        -:  194:   /* Store the expression operands in temps so we can use them
        -:        -:  195:    * multiple times.
        -:        -:  196:    */
        9:        9:  197:   for (i = 0; i < expr->get_num_operands(); i++) {
        -:        -:  198:      ir_assignment *assign;
        -:        -:  199:      ir_dereference *deref;
        -:        -:  200:
        6:        6:  201:      assert(!expr->operands[i]->type->is_matrix());
        -:        -:  202:
        6:        6:  203:      op_var[i] = new(mem_ctx) ir_variable(expr->operands[i]->type,
        -:        -:  204:					   "channel_expressions",
       12:       12:  205:					   ir_var_temporary);
        6:        6:  206:      ir->insert_before(op_var[i]);
        -:        -:  207:
        6:        6:  208:      deref = new(mem_ctx) ir_dereference_variable(op_var[i]);
        -:        -:  209:      assign = new(mem_ctx) ir_assignment(deref,
        -:        -:  210:					  expr->operands[i],
        6:        6:  211:					  NULL);
        6:        6:  212:      ir->insert_before(assign);
        -:        -:  213:   }
        -:        -:  214:
        3:        3:  215:   const glsl_type *element_type = glsl_type::get_instance(ir->lhs->type->base_type,
        3:        3:  216:							   1, 1);
        -:        -:  217:
        -:        -:  218:   /* OK, time to break down this vector operation. */
        3:        3:  219:   switch (expr->operation) {
        -:        -:  220:   case ir_unop_bit_not:
        -:        -:  221:   case ir_unop_logic_not:
        -:        -:  222:   case ir_unop_neg:
        -:        -:  223:   case ir_unop_abs:
        -:        -:  224:   case ir_unop_sign:
        -:        -:  225:   case ir_unop_rcp:
        -:        -:  226:   case ir_unop_rsq:
        -:        -:  227:   case ir_unop_sqrt:
        -:        -:  228:   case ir_unop_exp:
        -:        -:  229:   case ir_unop_log:
        -:        -:  230:   case ir_unop_exp2:
        -:        -:  231:   case ir_unop_log2:
        -:        -:  232:   case ir_unop_bitcast_i2f:
        -:        -:  233:   case ir_unop_bitcast_f2i:
        -:        -:  234:   case ir_unop_bitcast_f2u:
        -:        -:  235:   case ir_unop_bitcast_u2f:
        -:        -:  236:   case ir_unop_bitcast_u642d:
        -:        -:  237:   case ir_unop_bitcast_i642d:
        -:        -:  238:   case ir_unop_bitcast_d2u64:
        -:        -:  239:   case ir_unop_bitcast_d2i64:
        -:        -:  240:   case ir_unop_i2u:
        -:        -:  241:   case ir_unop_u2i:
        -:        -:  242:   case ir_unop_f2i:
        -:        -:  243:   case ir_unop_f2u:
        -:        -:  244:   case ir_unop_i2f:
        -:        -:  245:   case ir_unop_f2b:
        -:        -:  246:   case ir_unop_b2f:
        -:        -:  247:   case ir_unop_i2b:
        -:        -:  248:   case ir_unop_b2i:
        -:        -:  249:   case ir_unop_u2f:
        -:        -:  250:   case ir_unop_d2f:
        -:        -:  251:   case ir_unop_f2d:
        -:        -:  252:   case ir_unop_d2i:
        -:        -:  253:   case ir_unop_i2d:
        -:        -:  254:   case ir_unop_d2u:
        -:        -:  255:   case ir_unop_u2d:
        -:        -:  256:   case ir_unop_d2b:
        -:        -:  257:   case ir_unop_i642i:
        -:        -:  258:   case ir_unop_u642i:
        -:        -:  259:   case ir_unop_i642u:
        -:        -:  260:   case ir_unop_u642u:
        -:        -:  261:   case ir_unop_i642b:
        -:        -:  262:   case ir_unop_i642f:
        -:        -:  263:   case ir_unop_u642f:
        -:        -:  264:   case ir_unop_i642d:
        -:        -:  265:   case ir_unop_u642d:
        -:        -:  266:   case ir_unop_i2i64:
        -:        -:  267:   case ir_unop_u2i64:
        -:        -:  268:   case ir_unop_b2i64:
        -:        -:  269:   case ir_unop_f2i64:
        -:        -:  270:   case ir_unop_d2i64:
        -:        -:  271:   case ir_unop_i2u64:
        -:        -:  272:   case ir_unop_u2u64:
        -:        -:  273:   case ir_unop_f2u64:
        -:        -:  274:   case ir_unop_d2u64:
        -:        -:  275:   case ir_unop_u642i64:
        -:        -:  276:   case ir_unop_i642u64:
        -:        -:  277:   case ir_unop_trunc:
        -:        -:  278:   case ir_unop_ceil:
        -:        -:  279:   case ir_unop_floor:
        -:        -:  280:   case ir_unop_fract:
        -:        -:  281:   case ir_unop_round_even:
        -:        -:  282:   case ir_unop_sin:
        -:        -:  283:   case ir_unop_cos:
        -:        -:  284:   case ir_unop_dFdx:
        -:        -:  285:   case ir_unop_dFdx_coarse:
        -:        -:  286:   case ir_unop_dFdx_fine:
        -:        -:  287:   case ir_unop_dFdy:
        -:        -:  288:   case ir_unop_dFdy_coarse:
        -:        -:  289:   case ir_unop_dFdy_fine:
        -:        -:  290:   case ir_unop_bitfield_reverse:
        -:        -:  291:   case ir_unop_bit_count:
        -:        -:  292:   case ir_unop_find_msb:
        -:        -:  293:   case ir_unop_find_lsb:
        -:        -:  294:   case ir_unop_saturate:
        -:        -:  295:   case ir_unop_subroutine_to_int:
    #####:    #####:  296:      for (i = 0; i < vector_elements; i++) {
    #####:    #####:  297:	 ir_rvalue *op0 = get_element(op_var[0], i);
        -:        -:  298:
    #####:    #####:  299:	 assign(ir, i, new(mem_ctx) ir_expression(expr->operation,
        -:        -:  300:						  element_type,
        -:        -:  301:						  op0,
    #####:    #####:  302:						  NULL));
        -:        -:  303:      }
    #####:    #####:  304:      break;
        -:        -:  305:
        -:        -:  306:   case ir_binop_add:
        -:        -:  307:   case ir_binop_sub:
        -:        -:  308:   case ir_binop_mul:
        -:        -:  309:   case ir_binop_imul_high:
        -:        -:  310:   case ir_binop_div:
        -:        -:  311:   case ir_binop_carry:
        -:        -:  312:   case ir_binop_borrow:
        -:        -:  313:   case ir_binop_mod:
        -:        -:  314:   case ir_binop_min:
        -:        -:  315:   case ir_binop_max:
        -:        -:  316:   case ir_binop_pow:
        -:        -:  317:   case ir_binop_lshift:
        -:        -:  318:   case ir_binop_rshift:
        -:        -:  319:   case ir_binop_bit_and:
        -:        -:  320:   case ir_binop_bit_xor:
        -:        -:  321:   case ir_binop_bit_or:
        -:        -:  322:   case ir_binop_logic_and:
        -:        -:  323:   case ir_binop_logic_xor:
        -:        -:  324:   case ir_binop_logic_or:
        -:        -:  325:   case ir_binop_less:
        -:        -:  326:   case ir_binop_greater:
        -:        -:  327:   case ir_binop_lequal:
        -:        -:  328:   case ir_binop_gequal:
        -:        -:  329:   case ir_binop_equal:
        -:        -:  330:   case ir_binop_nequal:
        -:        -:  331:   case ir_binop_ldexp:
       15:       15:  332:      for (i = 0; i < vector_elements; i++) {
       12:       12:  333:	 ir_rvalue *op0 = get_element(op_var[0], i);
       12:       12:  334:	 ir_rvalue *op1 = get_element(op_var[1], i);
        -:        -:  335:
       24:       24:  336:	 assign(ir, i, new(mem_ctx) ir_expression(expr->operation,
        -:        -:  337:						  element_type,
        -:        -:  338:						  op0,
       24:       24:  339:						  op1));
        -:        -:  340:      }
        3:        3:  341:      break;
        -:        -:  342:
        -:        -:  343:   case ir_binop_dot: {
    #####:    #####:  344:      ir_expression *last = NULL;
    #####:    #####:  345:      for (i = 0; i < vector_elements; i++) {
    #####:    #####:  346:	 ir_rvalue *op0 = get_element(op_var[0], i);
    #####:    #####:  347:	 ir_rvalue *op1 = get_element(op_var[1], i);
        -:        -:  348:	 ir_expression *temp;
        -:        -:  349:
        -:        -:  350:	 temp = new(mem_ctx) ir_expression(ir_binop_mul,
        -:        -:  351:					   element_type,
        -:        -:  352:					   op0,
    #####:    #####:  353:					   op1);
    #####:    #####:  354:	 if (last) {
        -:        -:  355:	    last = new(mem_ctx) ir_expression(ir_binop_add,
        -:        -:  356:					      element_type,
        -:        -:  357:					      temp,
    #####:    #####:  358:					      last);
        -:        -:  359:	 } else {
    #####:    #####:  360:	    last = temp;
        -:        -:  361:	 }
        -:        -:  362:      }
    #####:    #####:  363:      assign(ir, 0, last);
    #####:    #####:  364:      break;
        -:        -:  365:   }
        -:        -:  366:
        -:        -:  367:   case ir_binop_all_equal:
        -:        -:  368:   case ir_binop_any_nequal: {
    #####:    #####:  369:      ir_expression *last = NULL;
    #####:    #####:  370:      for (i = 0; i < vector_elements; i++) {
    #####:    #####:  371:	 ir_rvalue *op0 = get_element(op_var[0], i);
    #####:    #####:  372:	 ir_rvalue *op1 = get_element(op_var[1], i);
        -:        -:  373:	 ir_expression *temp;
        -:        -:  374:	 ir_expression_operation join;
        -:        -:  375:
    #####:    #####:  376:	 if (expr->operation == ir_binop_all_equal)
    #####:    #####:  377:	    join = ir_binop_logic_and;
        -:        -:  378:	 else
    #####:    #####:  379:	    join = ir_binop_logic_or;
        -:        -:  380:
    #####:    #####:  381:	 temp = new(mem_ctx) ir_expression(expr->operation,
        -:        -:  382:					   element_type,
        -:        -:  383:					   op0,
    #####:    #####:  384:					   op1);
    #####:    #####:  385:	 if (last) {
        -:        -:  386:	    last = new(mem_ctx) ir_expression(join,
        -:        -:  387:					      element_type,
        -:        -:  388:					      temp,
    #####:    #####:  389:					      last);
        -:        -:  390:	 } else {
    #####:    #####:  391:	    last = temp;
        -:        -:  392:	 }
        -:        -:  393:      }
    #####:    #####:  394:      assign(ir, 0, last);
    #####:    #####:  395:      break;
        -:        -:  396:   }
        -:        -:  397:   case ir_unop_noise:
    #####:    #####:  398:      unreachable("noise should have been broken down to function call");
        -:        -:  399:
        -:        -:  400:   case ir_binop_ubo_load:
        -:        -:  401:   case ir_unop_get_buffer_size:
    #####:    #####:  402:      unreachable("not yet supported");
        -:        -:  403:
        -:        -:  404:   case ir_triop_fma:
        -:        -:  405:   case ir_triop_lrp:
        -:        -:  406:   case ir_triop_csel:
        -:        -:  407:   case ir_triop_bitfield_extract:
    #####:    #####:  408:      for (i = 0; i < vector_elements; i++) {
    #####:    #####:  409:	 ir_rvalue *op0 = get_element(op_var[0], i);
    #####:    #####:  410:	 ir_rvalue *op1 = get_element(op_var[1], i);
    #####:    #####:  411:	 ir_rvalue *op2 = get_element(op_var[2], i);
        -:        -:  412:
    #####:    #####:  413:	 assign(ir, i, new(mem_ctx) ir_expression(expr->operation,
        -:        -:  414:						  element_type,
        -:        -:  415:						  op0,
        -:        -:  416:						  op1,
    #####:    #####:  417:						  op2));
        -:        -:  418:      }
    #####:    #####:  419:      break;
        -:        -:  420:
        -:        -:  421:   case ir_quadop_bitfield_insert:
    #####:    #####:  422:      for (i = 0; i < vector_elements; i++) {
    #####:    #####:  423:         ir_rvalue *op0 = get_element(op_var[0], i);
    #####:    #####:  424:         ir_rvalue *op1 = get_element(op_var[1], i);
    #####:    #####:  425:         ir_rvalue *op2 = get_element(op_var[2], i);
    #####:    #####:  426:         ir_rvalue *op3 = get_element(op_var[3], i);
        -:        -:  427:
    #####:    #####:  428:         assign(ir, i, new(mem_ctx) ir_expression(expr->operation,
        -:        -:  429:                                                  element_type,
        -:        -:  430:                                                  op0,
        -:        -:  431:                                                  op1,
        -:        -:  432:                                                  op2,
    #####:    #####:  433:                                                  op3));
        -:        -:  434:      }
    #####:    #####:  435:      break;
        -:        -:  436:
        -:        -:  437:   case ir_unop_pack_snorm_2x16:
        -:        -:  438:   case ir_unop_pack_snorm_4x8:
        -:        -:  439:   case ir_unop_pack_unorm_2x16:
        -:        -:  440:   case ir_unop_pack_unorm_4x8:
        -:        -:  441:   case ir_unop_pack_half_2x16:
        -:        -:  442:   case ir_unop_unpack_snorm_2x16:
        -:        -:  443:   case ir_unop_unpack_snorm_4x8:
        -:        -:  444:   case ir_unop_unpack_unorm_2x16:
        -:        -:  445:   case ir_unop_unpack_unorm_4x8:
        -:        -:  446:   case ir_unop_unpack_half_2x16:
        -:        -:  447:   case ir_binop_vector_extract:
        -:        -:  448:   case ir_triop_vector_insert:
        -:        -:  449:   case ir_quadop_vector:
        -:        -:  450:   case ir_unop_ssbo_unsized_array_length:
    #####:    #####:  451:      unreachable("should have been lowered");
        -:        -:  452:
        -:        -:  453:   case ir_unop_interpolate_at_centroid:
        -:        -:  454:   case ir_binop_interpolate_at_offset:
        -:        -:  455:   case ir_binop_interpolate_at_sample:
        -:        -:  456:   case ir_unop_unpack_double_2x32:
    #####:    #####:  457:      unreachable("not reached: expression operates on scalars only");
        -:        -:  458:
        -:        -:  459:   case ir_unop_pack_double_2x32:
        -:        -:  460:   case ir_unop_pack_int_2x32:
        -:        -:  461:   case ir_unop_pack_uint_2x32:
    #####:    #####:  462:      unreachable("not reached: to be lowered in NIR, should've been skipped");
        -:        -:  463:
        -:        -:  464:   case ir_unop_frexp_sig:
        -:        -:  465:   case ir_unop_frexp_exp:
    #####:    #####:  466:      unreachable("should have been lowered by lower_instructions");
        -:        -:  467:
        -:        -:  468:   case ir_unop_vote_any:
        -:        -:  469:   case ir_unop_vote_all:
        -:        -:  470:   case ir_unop_vote_eq:
        -:        -:  471:   case ir_unop_unpack_int_2x32:
        -:        -:  472:   case ir_unop_unpack_uint_2x32:
        -:        -:  473:   case ir_unop_ballot:
        -:        -:  474:   case ir_unop_read_first_invocation:
        -:        -:  475:   case ir_binop_read_invocation:
    #####:    #####:  476:      unreachable("unsupported");
        -:        -:  477:   }
        -:        -:  478:
        3:        3:  479:   ir->remove();
        3:        3:  480:   this->progress = true;
        -:        -:  481:
        3:        3:  482:   return visit_continue;
        -:        -:  483:}

src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp.gcov

        -:        -:    0:Source:brw_fs_vector_splitting.cpp
        -:        -:    0:Graph:.libs/brw_fs_vector_splitting.gcno
        -:        -:    0:Data:.libs/brw_fs_vector_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:/**
        -:        -:   25: * \file brw_wm_vector_splitting.cpp
        -:        -:   26: *
        -:        -:   27: * If a vector is only ever referenced by its components, then
        -:        -:   28: * split those components out to individual variables so they can be
        -:        -:   29: * handled normally by other optimization passes.
        -:        -:   30: *
        -:        -:   31: * This skips vectors in uniforms and varyings, which need to be
        -:        -:   32: * accessible as vectors for their access by the GL.  Also, vector
        -:        -:   33: * results of non-variable-derefs in assignments aren't handled
        -:        -:   34: * because to do so we would have to store the vector result to a
        -:        -:   35: * temporary in order to unload each channel, and to do so would just
        -:        -:   36: * loop us back to where we started.  For the 965, this is exactly the
        -:        -:   37: * behavior we want for the results of texture lookups, but probably not for
        -:        -:   38: */
        -:        -:   39:
        -:        -:   40:#include "brw_program.h"
        -:        -:   41:#include "main/imports.h"
        -:        -:   42:#include "compiler/glsl/ir.h"
        -:        -:   43:#include "compiler/glsl/ir_rvalue_visitor.h"
        -:        -:   44:#include "compiler/glsl_types.h"
        -:        -:   45:#include "util/hash_table.h"
        -:        -:   46:
        -:        -:   47:static bool debug = false;
        -:        -:   48:
        -:        -:   49:class variable_entry : public exec_node
        -:        -:   50:{
        -:        -:   51:public:
       21:       21:   52:   variable_entry(ir_variable *var)
       21:       21:   53:   {
       21:       21:   54:      this->var = var;
       21:       21:   55:      this->whole_vector_access = 0;
       21:       21:   56:      this->mem_ctx = NULL;
       21:       21:   57:   }
        -:        -:   58:
        -:        -:   59:   ir_variable *var; /* The key: the variable's pointer. */
        -:        -:   60:
        -:        -:   61:   /** Number of times the variable is referenced, including assignments. */
        -:        -:   62:   unsigned whole_vector_access;
        -:        -:   63:
        -:        -:   64:   ir_variable *components[4];
        -:        -:   65:
        -:        -:   66:   /** ralloc_parent(this->var) -- the shader's ralloc context. */
        -:        -:   67:   void *mem_ctx;
        -:        -:   68:};
        -:        -:   69:
        -:        -:   70:class ir_vector_reference_visitor : public ir_hierarchical_visitor {
        -:        -:   71:public:
        4:        4:   72:   ir_vector_reference_visitor(void)
        4:        4:   73:   {
        4:        4:   74:      this->mem_ctx = ralloc_context(NULL);
        4:        4:   75:      this->ht = _mesa_hash_table_create(mem_ctx, _mesa_hash_pointer,
        4:        4:   76:                                         _mesa_key_pointer_equal);
        4:        4:   77:   }
        -:        -:   78:
        4:        4:   79:   ~ir_vector_reference_visitor(void)
        8:        8:   80:   {
        4:        4:   81:      ralloc_free(mem_ctx);
        4:        4:   82:   }
        -:        -:   83:
        -:        -:   84:   virtual ir_visitor_status visit(ir_variable *);
        -:        -:   85:   virtual ir_visitor_status visit(ir_dereference_variable *);
        -:        -:   86:   virtual ir_visitor_status visit_enter(ir_swizzle *);
        -:        -:   87:   virtual ir_visitor_status visit_enter(ir_assignment *);
        -:        -:   88:   virtual ir_visitor_status visit_enter(ir_function_signature *);
        -:        -:   89:
        -:        -:   90:   variable_entry *get_variable_entry(ir_variable *var);
        -:        -:   91:
        -:        -:   92:   /* List of variable_entry */
        -:        -:   93:   struct hash_table *ht;
        -:        -:   94:
        -:        -:   95:   void *mem_ctx;
        -:        -:   96:};
        -:        -:   97:
        -:        -:   98:variable_entry *
      358:      364:   99:ir_vector_reference_visitor::get_variable_entry(ir_variable *var)
        -:        -:  100:{
      358:      364:  101:   assert(var);
        -:        -:  102:
      358:      364:  103:   if (!var->type->is_vector())
      317:      323:  104:      return NULL;
        -:        -:  105:
       41:       41:  106:   switch (var->data.mode) {
        -:        -:  107:   case ir_var_uniform:
        -:        -:  108:   case ir_var_shader_storage:
        -:        -:  109:   case ir_var_shader_shared:
        -:        -:  110:   case ir_var_shader_in:
        -:        -:  111:   case ir_var_shader_out:
        -:        -:  112:   case ir_var_system_value:
        -:        -:  113:   case ir_var_function_in:
        -:        -:  114:   case ir_var_function_out:
        -:        -:  115:   case ir_var_function_inout:
        -:        -:  116:      /* Can't split varyings or uniforms.  Function in/outs won't get split
        -:        -:  117:       * either.
        -:        -:  118:       */
       11:       11:  119:      return NULL;
        -:        -:  120:   case ir_var_auto:
        -:        -:  121:   case ir_var_temporary:
       30:       30:  122:      break;
        -:        -:  123:   }
        -:        -:  124:
       30:       30:  125:   struct hash_entry *hte = _mesa_hash_table_search(ht, var);
       30:       30:  126:   if (hte)
        9:        9:  127:      return (struct variable_entry *) hte->data;
        -:        -:  128:
       21:       21:  129:   variable_entry *entry = new(mem_ctx) variable_entry(var);
       21:       21:  130:   _mesa_hash_table_insert(ht, var, entry);
       21:       21:  131:   return entry;
        -:        -:  132:}
        -:        -:  133:
        -:        -:  134:
        -:        -:  135:ir_visitor_status
      126:      126:  136:ir_vector_reference_visitor::visit(ir_variable *ir)
        -:        -:  137:{
        -:        -:  138:   /* Make sure splitting looks at splitting this variable */
      126:      126:  139:   (void)this->get_variable_entry(ir);
        -:        -:  140:
      126:      126:  141:   return visit_continue;
        -:        -:  142:}
        -:        -:  143:
        -:        -:  144:ir_visitor_status
      232:      238:  145:ir_vector_reference_visitor::visit(ir_dereference_variable *ir)
        -:        -:  146:{
      232:      238:  147:   ir_variable *const var = ir->var;
      232:      238:  148:   variable_entry *entry = this->get_variable_entry(var);
        -:        -:  149:
      232:      238:  150:   if (entry)
        9:        9:  151:      entry->whole_vector_access++;
        -:        -:  152:
      232:      238:  153:   return visit_continue;
        -:        -:  154:}
        -:        -:  155:
        -:        -:  156:ir_visitor_status
       63:       69:  157:ir_vector_reference_visitor::visit_enter(ir_swizzle *ir)
        -:        -:  158:{
        -:        -:  159:   /* Don't descend into a vector ir_dereference_variable below. */
       63:       69:  160:   if (ir->val->as_dereference_variable() && ir->type->is_scalar())
       60:       66:  161:      return visit_continue_with_parent;
        -:        -:  162:
        3:        3:  163:   return visit_continue;
        -:        -:  164:}
        -:        -:  165:
        -:        -:  166:ir_visitor_status
      219:      219:  167:ir_vector_reference_visitor::visit_enter(ir_assignment *ir)
        -:        -:  168:{
      657:      657:  169:   if (ir->lhs->as_dereference_variable() &&
      311:      311:  170:       ir->rhs->as_dereference_variable() &&
       92:       92:  171:       !ir->condition) {
        -:        -:  172:      /* We'll split copies of a vector to copies of channels, so don't
        -:        -:  173:       * descend to the ir_dereference_variables.
        -:        -:  174:       */
       68:       68:  175:      return visit_continue_with_parent;
        -:        -:  176:   }
      453:      453:  177:   if (ir->lhs->as_dereference_variable() &&
      293:      293:  178:       _mesa_is_pow_two(ir->write_mask) &&
      142:      142:  179:       !ir->condition) {
        -:        -:  180:      /* If we're writing just a channel, then channel-splitting the LHS is OK.
        -:        -:  181:       */
      106:      106:  182:      ir->rhs->accept(this);
      106:      106:  183:      return visit_continue_with_parent;
        -:        -:  184:   }
       45:       45:  185:   return visit_continue;
        -:        -:  186:}
        -:        -:  187:
        -:        -:  188:ir_visitor_status
        4:        4:  189:ir_vector_reference_visitor::visit_enter(ir_function_signature *ir)
        -:        -:  190:{
        -:        -:  191:   /* We don't want to descend into the function parameters and
        -:        -:  192:    * split them, so just accept the body here.
        -:        -:  193:    */
        4:        4:  194:   visit_list_elements(this, &ir->body);
        4:        4:  195:   return visit_continue_with_parent;
        -:        -:  196:}
        -:        -:  197:
        -:        -:  198:class ir_vector_splitting_visitor : public ir_rvalue_visitor {
        -:        -:  199:public:
        1:        1:  200:   ir_vector_splitting_visitor(struct hash_table *vars)
        1:        1:  201:   {
        1:        1:  202:      this->ht = vars;
        1:        1:  203:   }
        -:        -:  204:
        -:        -:  205:   virtual ir_visitor_status visit_leave(ir_assignment *);
        -:        -:  206:
        -:        -:  207:   void handle_rvalue(ir_rvalue **rvalue);
        -:        -:  208:   variable_entry *get_splitting_entry(ir_variable *var);
        -:        -:  209:
        -:        -:  210:   struct hash_table *ht;
        -:        -:  211:};
        -:        -:  212:
        -:        -:  213:variable_entry *
      164:      166:  214:ir_vector_splitting_visitor::get_splitting_entry(ir_variable *var)
        -:        -:  215:{
      164:      166:  216:   assert(var);
        -:        -:  217:
      164:      166:  218:   if (!var->type->is_vector())
       58:       58:  219:      return NULL;
        -:        -:  220:
      106:      108:  221:   struct hash_entry *hte = _mesa_hash_table_search(ht, var);
      106:      108:  222:   return hte ? (struct variable_entry *) hte->data : NULL;
        -:        -:  223:}
        -:        -:  224:
        -:        -:  225:void
      339:      349:  226:ir_vector_splitting_visitor::handle_rvalue(ir_rvalue **rvalue)
        -:        -:  227:{
      339:      349:  228:   if (!*rvalue)
       75:       75:  229:      return;
        -:        -:  230:
      264:      274:  231:   ir_swizzle *swiz = (*rvalue)->as_swizzle();
      264:      274:  232:   if (!swiz || !swiz->type->is_scalar())
      210:      218:  233:      return;
        -:        -:  234:
       54:       56:  235:   ir_dereference_variable *deref_var = swiz->val->as_dereference_variable();
       54:       56:  236:   if (!deref_var)
    #####:    #####:  237:      return;
        -:        -:  238:
       54:       56:  239:   variable_entry *entry = get_splitting_entry(deref_var->var);
       54:       56:  240:   if (!entry)
       27:       29:  241:      return;
        -:        -:  242:
       27:       27:  243:   ir_variable *var = entry->components[swiz->mask.x];
       27:       27:  244:   *rvalue = new(entry->mem_ctx) ir_dereference_variable(var);
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:ir_visitor_status
       87:       87:  248:ir_vector_splitting_visitor::visit_leave(ir_assignment *ir)
        -:        -:  249:{
       87:       87:  250:   ir_dereference_variable *lhs_deref = ir->lhs->as_dereference_variable();
       87:       87:  251:   ir_dereference_variable *rhs_deref = ir->rhs->as_dereference_variable();
       87:       87:  252:   variable_entry *lhs = lhs_deref ? get_splitting_entry(lhs_deref->var) : NULL;
       87:       87:  253:   variable_entry *rhs = rhs_deref ? get_splitting_entry(rhs_deref->var) : NULL;
        -:        -:  254:
       87:       87:  255:   if (lhs_deref && rhs_deref && (lhs || rhs) && !ir->condition) {
       16:       16:  256:      unsigned int rhs_chan = 0;
        -:        -:  257:
        -:        -:  258:      /* Straight assignment of vector variables. */
       80:       80:  259:      for (unsigned int i = 0; i < ir->lhs->type->vector_elements; i++) {
        -:        -:  260:	 ir_dereference *new_lhs;
        -:        -:  261:	 ir_rvalue *new_rhs;
       64:       64:  262:	 void *mem_ctx = lhs ? lhs->mem_ctx : rhs->mem_ctx;
        -:        -:  263:	 unsigned int writemask;
        -:        -:  264:
       64:       64:  265:	 if (!(ir->write_mask & (1 << i)))
       18:       18:  266:	    continue;
        -:        -:  267:
       46:       46:  268:	 if (lhs) {
       42:       42:  269:	    new_lhs = new(mem_ctx) ir_dereference_variable(lhs->components[i]);
       42:       42:  270:	    writemask = 1;
        -:        -:  271:	 } else {
        4:        4:  272:	    new_lhs = ir->lhs->clone(mem_ctx, NULL);
        4:        4:  273:	    writemask = 1 << i;
        -:        -:  274:	 }
        -:        -:  275:
       46:       46:  276:	 if (rhs) {
        -:        -:  277:	    new_rhs =
       40:       40:  278:	       new(mem_ctx) ir_dereference_variable(rhs->components[rhs_chan]);
        -:        -:  279:	 } else {
        6:        6:  280:	    new_rhs = new(mem_ctx) ir_swizzle(ir->rhs->clone(mem_ctx, NULL),
        6:        6:  281:					      rhs_chan, 0, 0, 0, 1);
        -:        -:  282:	 }
        -:        -:  283:
       46:       46:  284:	 ir->insert_before(new(mem_ctx) ir_assignment(new_lhs,
        -:        -:  285:						      new_rhs,
       92:       92:  286:						      NULL, writemask));
        -:        -:  287:
       46:       46:  288:	 rhs_chan++;
        -:        -:  289:      }
       16:       16:  290:      ir->remove();
       71:       71:  291:   } else if (lhs) {
       20:       20:  292:      void *mem_ctx = lhs->mem_ctx;
       20:       20:  293:      int elem = -1;
        -:        -:  294:
       20:       20:  295:      switch (ir->write_mask) {
        -:        -:  296:      case (1 << 0):
        5:        5:  297:	 elem = 0;
        5:        5:  298:	 break;
        -:        -:  299:      case (1 << 1):
        5:        5:  300:	 elem = 1;
        5:        5:  301:	 break;
        -:        -:  302:      case (1 << 2):
        6:        6:  303:	 elem = 2;
        6:        6:  304:	 break;
        -:        -:  305:      case (1 << 3):
        4:        4:  306:	 elem = 3;
        4:        4:  307:	 break;
        -:        -:  308:      default:
    #####:    #####:  309:	 ir->fprint(stderr);
    #####:    #####:  310:	 unreachable("not reached: non-channelwise dereference of LHS.");
        -:        -:  311:      }
        -:        -:  312:
       20:       20:  313:      ir->lhs = new(mem_ctx) ir_dereference_variable(lhs->components[elem]);
       20:       20:  314:      ir->write_mask = (1 << 0);
        -:        -:  315:
       20:       20:  316:      handle_rvalue(&ir->rhs);
        -:        -:  317:   } else {
       51:       51:  318:      handle_rvalue(&ir->rhs);
        -:        -:  319:   }
        -:        -:  320:
       87:       87:  321:   handle_rvalue(&ir->condition);
        -:        -:  322:
       87:       87:  323:   return visit_continue;
        -:        -:  324:}
        -:        -:  325:
        -:        -:  326:bool
        4:        4:  327:brw_do_vector_splitting(exec_list *instructions)
        -:        -:  328:{
        -:        -:  329:   struct hash_entry *hte;
        -:        -:  330:
        8:        8:  331:   ir_vector_reference_visitor refs;
        -:        -:  332:
        4:        4:  333:   visit_list_elements(&refs, instructions);
        -:        -:  334:
        -:        -:  335:   /* Trim out variables we can't split. */
       25:       25:  336:   hash_table_foreach(refs.ht, hte) {
       21:       21:  337:      struct variable_entry *entry = (struct variable_entry *) hte->data;
       21:       21:  338:      if (debug) {
    #####:    #####:  339:	 fprintf(stderr, "vector %s@%p: whole_access %d\n",
    #####:    #####:  340:                 entry->var->name, (void *) entry->var,
    #####:    #####:  341:                 entry->whole_vector_access);
        -:        -:  342:      }
        -:        -:  343:
       21:       21:  344:      if (entry->whole_vector_access) {
        9:        9:  345:         _mesa_hash_table_remove(refs.ht, hte);
        -:        -:  346:      }
        -:        -:  347:   }
        -:        -:  348:
        4:        4:  349:   if (refs.ht->entries == 0)
        3:        3:  350:      return false;
        -:        -:  351:
        1:        1:  352:   void *mem_ctx = ralloc_context(NULL);
        -:        -:  353:
        -:        -:  354:   /* Replace the decls of the vectors to be split with their split
        -:        -:  355:    * components.
        -:        -:  356:    */
       13:       13:  357:   hash_table_foreach(refs.ht, hte) {
       12:       12:  358:      struct variable_entry *entry = (struct variable_entry *) hte->data;
        -:        -:  359:      const struct glsl_type *type;
       12:       12:  360:      type = glsl_type::get_instance(entry->var->type->base_type, 1, 1);
        -:        -:  361:
       12:       12:  362:      entry->mem_ctx = ralloc_parent(entry->var);
        -:        -:  363:
       60:       60:  364:      for (unsigned int i = 0; i < entry->var->type->vector_elements; i++) {
        -:        -:  365:         char *const name = ir_variable::temporaries_allocate_names
       96:       96:  366:            ? ralloc_asprintf(mem_ctx, "%s_%c",
       48:       48:  367:                              entry->var->name,
       48:       48:  368:                              "xyzw"[i])
       96:       96:  369:            : NULL;
        -:        -:  370:
        -:        -:  371:	 entry->components[i] = new(entry->mem_ctx) ir_variable(type, name,
       48:       48:  372:								ir_var_temporary);
        -:        -:  373:
       48:       48:  374:         ralloc_free(name);
        -:        -:  375:
       48:       48:  376:         if (entry->var->constant_initializer) {
    #####:    #####:  377:            ir_constant_data data = {0};
    #####:    #####:  378:            assert(entry->var->data.has_initializer);
    #####:    #####:  379:            if (entry->var->type->is_double()) {
    #####:    #####:  380:               data.d[0] = entry->var->constant_initializer->value.d[i];
        -:        -:  381:            } else {
    #####:    #####:  382:               data.u[0] = entry->var->constant_initializer->value.u[i];
        -:        -:  383:            }
    #####:    #####:  384:            entry->components[i]->data.has_initializer = true;
    #####:    #####:  385:            entry->components[i]->constant_initializer = new(entry->components[i]) ir_constant(type, &data);
        -:        -:  386:         }
        -:        -:  387:
       48:       48:  388:	 entry->var->insert_before(entry->components[i]);
        -:        -:  389:      }
        -:        -:  390:
       12:       12:  391:      entry->var->remove();
        -:        -:  392:   }
        -:        -:  393:
        1:        1:  394:   ir_vector_splitting_visitor split(refs.ht);
        1:        1:  395:   visit_list_elements(&split, instructions);
        -:        -:  396:
        1:        1:  397:   ralloc_free(mem_ctx);
        -:        -:  398:
        1:        1:  399:   return true;
        -:        -:  400:}

src/mesa/drivers/dri/i965/brw_nir.h.gcov

        -:        -:    0:Source:../../../../../src/intel/compiler/brw_nir.h
        -:        -:    0:Graph:.libs/brw_program.gcno
        -:        -:    0:Data:.libs/brw_program.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2015 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#ifndef BRW_NIR_H
        -:        -:   25:#define BRW_NIR_H
        -:        -:   26:
        -:        -:   27:#include "brw_reg.h"
        -:        -:   28:#include "compiler/nir/nir.h"
        -:        -:   29:#include "brw_compiler.h"
        -:        -:   30:
        -:        -:   31:#ifdef __cplusplus
        -:        -:   32:extern "C" {
        -:        -:   33:#endif
        -:        -:   34:
        -:        -:   35:int type_size_scalar(const struct glsl_type *type);
        -:        -:   36:int type_size_vec4(const struct glsl_type *type);
        -:        -:   37:int type_size_dvec4(const struct glsl_type *type);
        -:        -:   38:
        -:        -:   39:static inline int
       30:       32:   40:type_size_scalar_bytes(const struct glsl_type *type)
        -:        -:   41:{
       30:       32:   42:   return type_size_scalar(type) * 4;
        -:        -:   43:}
        -:        -:   44:
        -:        -:   45:static inline int
        9:        9:   46:type_size_vec4_bytes(const struct glsl_type *type)
        -:        -:   47:{
        9:        9:   48:   return type_size_vec4(type) * 16;
        -:        -:   49:}
        -:        -:   50:
        -:        -:   51:/* Flags set in the instr->pass_flags field by i965 analysis passes */
        -:        -:   52:enum {
        -:        -:   53:   BRW_NIR_NON_BOOLEAN           = 0x0,
        -:        -:   54:
        -:        -:   55:   /* Indicates that the given instruction's destination is a boolean
        -:        -:   56:    * value but that it needs to be resolved before it can be used.
        -:        -:   57:    * On Gen <= 5, CMP instructions return a 32-bit value where the bottom
        -:        -:   58:    * bit represents the actual true/false value of the compare and the top
        -:        -:   59:    * 31 bits are undefined.  In order to use this value, we have to do a
        -:        -:   60:    * "resolve" operation by replacing the value of the CMP with -(x & 1)
        -:        -:   61:    * to sign-extend the bottom bit to 0/~0.
        -:        -:   62:    */
        -:        -:   63:   BRW_NIR_BOOLEAN_NEEDS_RESOLVE = 0x1,
        -:        -:   64:
        -:        -:   65:   /* Indicates that the given instruction's destination is a boolean
        -:        -:   66:    * value that has intentionally been left unresolved.  Not all boolean
        -:        -:   67:    * values need to be resolved immediately.  For instance, if we have
        -:        -:   68:    *
        -:        -:   69:    *    CMP r1 r2 r3
        -:        -:   70:    *    CMP r4 r5 r6
        -:        -:   71:    *    AND r7 r1 r4
        -:        -:   72:    *
        -:        -:   73:    * We don't have to resolve the result of the two CMP instructions
        -:        -:   74:    * immediately because the AND still does an AND of the bottom bits.
        -:        -:   75:    * Instead, we can save ourselves instructions by delaying the resolve
        -:        -:   76:    * until after the AND.  The result of the two CMP instructions is left
        -:        -:   77:    * as BRW_NIR_BOOLEAN_UNRESOLVED.
        -:        -:   78:    */
        -:        -:   79:   BRW_NIR_BOOLEAN_UNRESOLVED    = 0x2,
        -:        -:   80:
        -:        -:   81:   /* Indicates a that the given instruction's destination is a boolean
        -:        -:   82:    * value that does not need a resolve.  For instance, if you AND two
        -:        -:   83:    * values that are BRW_NIR_BOOLEAN_NEEDS_RESOLVE then we know that both
        -:        -:   84:    * values will be 0/~0 before we get them and the result of the AND is
        -:        -:   85:    * also guaranteed to be 0/~0 and does not need a resolve.
        -:        -:   86:    */
        -:        -:   87:   BRW_NIR_BOOLEAN_NO_RESOLVE    = 0x3,
        -:        -:   88:
        -:        -:   89:   /* A mask to mask the boolean status values off of instr->pass_flags */
        -:        -:   90:   BRW_NIR_BOOLEAN_MASK          = 0x3,
        -:        -:   91:};
        -:        -:   92:
        -:        -:   93:void brw_nir_analyze_boolean_resolves(nir_shader *nir);
        -:        -:   94:
        -:        -:   95:nir_shader *brw_preprocess_nir(const struct brw_compiler *compiler,
        -:        -:   96:                               nir_shader *nir);
        -:        -:   97:
        -:        -:   98:bool brw_nir_lower_intrinsics(nir_shader *nir,
        -:        -:   99:                              struct brw_stage_prog_data *prog_data);
        -:        -:  100:void brw_nir_lower_vs_inputs(nir_shader *nir,
        -:        -:  101:                             bool is_scalar,
        -:        -:  102:                             bool use_legacy_snorm_formula,
        -:        -:  103:                             const uint8_t *vs_attrib_wa_flags);
        -:        -:  104:void brw_nir_lower_vue_inputs(nir_shader *nir, bool is_scalar,
        -:        -:  105:                              const struct brw_vue_map *vue_map);
        -:        -:  106:void brw_nir_lower_tes_inputs(nir_shader *nir, const struct brw_vue_map *vue);
        -:        -:  107:void brw_nir_lower_fs_inputs(nir_shader *nir,
        -:        -:  108:                             const struct gen_device_info *devinfo,
        -:        -:  109:                             const struct brw_wm_prog_key *key);
        -:        -:  110:void brw_nir_lower_vue_outputs(nir_shader *nir, bool is_scalar);
        -:        -:  111:void brw_nir_lower_tcs_outputs(nir_shader *nir, const struct brw_vue_map *vue,
        -:        -:  112:                               GLenum tes_primitive_mode);
        -:        -:  113:void brw_nir_lower_fs_outputs(nir_shader *nir);
        -:        -:  114:void brw_nir_lower_cs_shared(nir_shader *nir);
        -:        -:  115:
        -:        -:  116:nir_shader *brw_postprocess_nir(nir_shader *nir,
        -:        -:  117:                                const struct brw_compiler *compiler,
        -:        -:  118:                                bool is_scalar);
        -:        -:  119:
        -:        -:  120:bool brw_nir_apply_attribute_workarounds(nir_shader *nir,
        -:        -:  121:                                         bool use_legacy_snorm_formula,
        -:        -:  122:                                         const uint8_t *attrib_wa_flags);
        -:        -:  123:
        -:        -:  124:bool brw_nir_apply_trig_workarounds(nir_shader *nir);
        -:        -:  125:
        -:        -:  126:void brw_nir_apply_tcs_quads_workaround(nir_shader *nir);
        -:        -:  127:
        -:        -:  128:nir_shader *brw_nir_apply_sampler_key(nir_shader *nir,
        -:        -:  129:                                      const struct brw_compiler *compiler,
        -:        -:  130:                                      const struct brw_sampler_prog_key_data *key,
        -:        -:  131:                                      bool is_scalar);
        -:        -:  132:
        -:        -:  133:enum brw_reg_type brw_type_for_nir_type(const struct gen_device_info *devinfo,
        -:        -:  134:                                        nir_alu_type type);
        -:        -:  135:
        -:        -:  136:enum glsl_base_type brw_glsl_base_type_for_nir_type(nir_alu_type type);
        -:        -:  137:
        -:        -:  138:void brw_nir_setup_glsl_uniforms(nir_shader *shader,
        -:        -:  139:                                 const struct gl_program *prog,
        -:        -:  140:                                 struct brw_stage_prog_data *stage_prog_data,
        -:        -:  141:                                 bool is_scalar);
        -:        -:  142:
        -:        -:  143:void brw_nir_setup_arb_uniforms(nir_shader *shader, struct gl_program *prog,
        -:        -:  144:                                struct brw_stage_prog_data *stage_prog_data);
        -:        -:  145:
        -:        -:  146:bool brw_nir_opt_peephole_ffma(nir_shader *shader);
        -:        -:  147:
        -:        -:  148:#define BRW_NIR_FRAG_OUTPUT_INDEX_SHIFT 0
        -:        -:  149:#define BRW_NIR_FRAG_OUTPUT_INDEX_MASK INTEL_MASK(0, 0)
        -:        -:  150:#define BRW_NIR_FRAG_OUTPUT_LOCATION_SHIFT 1
        -:        -:  151:#define BRW_NIR_FRAG_OUTPUT_LOCATION_MASK INTEL_MASK(31, 1)
        -:        -:  152:
        -:        -:  153:#ifdef __cplusplus
        -:        -:  154:}
        -:        -:  155:#endif
        -:        -:  156:
        -:        -:  157:#endif /* BRW_NIR_H */

src/mesa/drivers/dri/i965/hash_table.h.gcov

        -:        -:    0:Source:../../../../../src/util/hash_table.h
        -:        -:    0:Graph:.libs/brw_fs_vector_splitting.gcno
        -:        -:    0:Data:.libs/brw_fs_vector_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009,2012 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:#ifndef _HASH_TABLE_H
        -:        -:   29:#define _HASH_TABLE_H
        -:        -:   30:
        -:        -:   31:#include <stdlib.h>
        -:        -:   32:#include <inttypes.h>
        -:        -:   33:#include <stdbool.h>
        -:        -:   34:#include "c99_compat.h"
        -:        -:   35:#include "macros.h"
        -:        -:   36:
        -:        -:   37:#ifdef __cplusplus
        -:        -:   38:extern "C" {
        -:        -:   39:#endif
        -:        -:   40:
        -:        -:   41:struct hash_entry {
        -:        -:   42:   uint32_t hash;
        -:        -:   43:   const void *key;
        -:        -:   44:   void *data;
        -:        -:   45:};
        -:        -:   46:
        -:        -:   47:struct hash_table {
        -:        -:   48:   struct hash_entry *table;
        -:        -:   49:   uint32_t (*key_hash_function)(const void *key);
        -:        -:   50:   bool (*key_equals_function)(const void *a, const void *b);
        -:        -:   51:   const void *deleted_key;
        -:        -:   52:   uint32_t size;
        -:        -:   53:   uint32_t rehash;
        -:        -:   54:   uint32_t max_entries;
        -:        -:   55:   uint32_t size_index;
        -:        -:   56:   uint32_t entries;
        -:        -:   57:   uint32_t deleted_entries;
        -:        -:   58:};
        -:        -:   59:
        -:        -:   60:struct hash_table *
        -:        -:   61:_mesa_hash_table_create(void *mem_ctx,
        -:        -:   62:                        uint32_t (*key_hash_function)(const void *key),
        -:        -:   63:                        bool (*key_equals_function)(const void *a,
        -:        -:   64:                                                    const void *b));
        -:        -:   65:void _mesa_hash_table_destroy(struct hash_table *ht,
        -:        -:   66:                              void (*delete_function)(struct hash_entry *entry));
        -:        -:   67:void _mesa_hash_table_clear(struct hash_table *ht,
        -:        -:   68:                            void (*delete_function)(struct hash_entry *entry));
        -:        -:   69:void _mesa_hash_table_set_deleted_key(struct hash_table *ht,
        -:        -:   70:                                      const void *deleted_key);
        -:        -:   71:
        -:        -:   72:static inline uint32_t _mesa_hash_table_num_entries(struct hash_table *ht)
        -:        -:   73:{
        -:        -:   74:   return ht->entries;
        -:        -:   75:}
        -:        -:   76:
        -:        -:   77:struct hash_entry *
        -:        -:   78:_mesa_hash_table_insert(struct hash_table *ht, const void *key, void *data);
        -:        -:   79:struct hash_entry *
        -:        -:   80:_mesa_hash_table_insert_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   81:                                   const void *key, void *data);
        -:        -:   82:struct hash_entry *
        -:        -:   83:_mesa_hash_table_search(struct hash_table *ht, const void *key);
        -:        -:   84:struct hash_entry *
        -:        -:   85:_mesa_hash_table_search_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:   86:                                  const void *key);
        -:        -:   87:void _mesa_hash_table_remove(struct hash_table *ht,
        -:        -:   88:                             struct hash_entry *entry);
        -:        -:   89:
        -:        -:   90:struct hash_entry *_mesa_hash_table_next_entry(struct hash_table *ht,
        -:        -:   91:                                               struct hash_entry *entry);
        -:        -:   92:struct hash_entry *
        -:        -:   93:_mesa_hash_table_random_entry(struct hash_table *ht,
        -:        -:   94:                              bool (*predicate)(struct hash_entry *entry));
        -:        -:   95:
        -:        -:   96:uint32_t _mesa_hash_data(const void *data, size_t size);
        -:        -:   97:uint32_t _mesa_hash_string(const char *key);
        -:        -:   98:bool _mesa_key_string_equal(const void *a, const void *b);
        -:        -:   99:bool _mesa_key_pointer_equal(const void *a, const void *b);
        -:        -:  100:
        -:        -:  101:static inline uint32_t _mesa_key_hash_string(const void *key)
        -:        -:  102:{
        -:        -:  103:   return _mesa_hash_string((const char *)key);
        -:        -:  104:}
        -:        -:  105:
      157:      159:  106:static inline uint32_t _mesa_hash_pointer(const void *pointer)
        -:        -:  107:{
      157:      159:  108:   return _mesa_hash_data(&pointer, sizeof(pointer));
        -:        -:  109:}
        -:        -:  110:
        -:        -:  111:enum {
        -:        -:  112:   _mesa_fnv32_1a_offset_bias = 2166136261u,
        -:        -:  113:};
        -:        -:  114:
        -:        -:  115:static inline uint32_t
        -:        -:  116:_mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size)
        -:        -:  117:{
        -:        -:  118:   const uint8_t *bytes = (const uint8_t *)data;
        -:        -:  119:
        -:        -:  120:   while (size-- != 0) {
        -:        -:  121:      hash ^= *bytes;
        -:        -:  122:      hash = hash * 0x01000193;
        -:        -:  123:      bytes++;
        -:        -:  124:   }
        -:        -:  125:
        -:        -:  126:   return hash;
        -:        -:  127:}
        -:        -:  128:
        -:        -:  129:#define _mesa_fnv32_1a_accumulate(hash, expr) \
        -:        -:  130:   _mesa_fnv32_1a_accumulate_block(hash, &(expr), sizeof(expr))
        -:        -:  131:
        -:        -:  132:/**
        -:        -:  133: * This foreach function is safe against deletion (which just replaces
        -:        -:  134: * an entry's data with the deleted marker), but not against insertion
        -:        -:  135: * (which may rehash the table, making entry a dangling pointer).
        -:        -:  136: */
        -:        -:  137:#define hash_table_foreach(ht, entry)                   \
        -:        -:  138:   for (entry = _mesa_hash_table_next_entry(ht, NULL);  \
        -:        -:  139:        entry != NULL;                                  \
        -:        -:  140:        entry = _mesa_hash_table_next_entry(ht, entry))
        -:        -:  141:
        -:        -:  142:static inline void
        -:        -:  143:hash_table_call_foreach(struct hash_table *ht,
        -:        -:  144:                        void (*callback)(const void *key,
        -:        -:  145:                                         void *data,
        -:        -:  146:                                         void *closure),
        -:        -:  147:                        void *closure)
        -:        -:  148:{
        -:        -:  149:   struct hash_entry *entry;
        -:        -:  150:
        -:        -:  151:   hash_table_foreach(ht, entry)
        -:        -:  152:      callback(entry->key, entry->data, closure);
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:#ifdef __cplusplus
        -:        -:  156:} /* extern C */
        -:        -:  157:#endif
        -:        -:  158:
        -:        -:  159:#endif /* _HASH_TABLE_H */

src/mesa/drivers/dri/i965/.libs/brw_bufmgr.c.gcov

        -:        -:    0:Source:brw_bufmgr.c
        -:        -:    0:Graph:brw_bufmgr.gcno
        -:        -:    0:Data:brw_bufmgr.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       83:       83:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
       83:       83:   88:/*EOF*/
      166:      166:   89:/*EOF*/
    #####:    #####:   90:/*EOF*/
       83:       83:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       32:       32:  122:/*EOF*/
        -:        -:  123:/*EOF*/
       32:       32:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
       16:       16:  128:/*EOF*/
        -:        -:  129:/*EOF*/
       16:       16:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
    #####:    #####:  134:/*EOF*/
        -:        -:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        6:        6:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        6:        6:  143:/*EOF*/
        1:        1:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        5:        5:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        6:        6:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        6:        6:  163:/*EOF*/
        1:        1:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        5:        5:  166:/*EOF*/
        3:        3:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        2:        2:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        5:        5:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
       40:       40:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
      324:      324:  180:/*EOF*/
      324:      324:  181:/*EOF*/
      324:      324:  182:/*EOF*/
       40:       40:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
       63:       63:  191:/*EOF*/
        -:        -:  192:/*EOF*/
       63:       63:  193:/*EOF*/
       63:       63:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        4:        4:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        4:        4:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        4:        4:  203:/*EOF*/
        4:        4:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        4:        4:  206:/*EOF*/
        4:        4:  207:/*EOF*/
        4:        4:  208:/*EOF*/
        4:        4:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
       21:       21:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
       21:       21:  219:/*EOF*/
       21:       21:  220:/*EOF*/
       21:       21:  221:/*EOF*/
       21:       21:  222:/*EOF*/
       21:       21:  223:/*EOF*/
        -:        -:  224:/*EOF*/
       21:       21:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    #####:    #####:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
        -:        -:  239:/*EOF*/
    #####:    #####:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       20:       20:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
       20:       20:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
       20:       20:  256:/*EOF*/
        -:        -:  257:/*EOF*/
       20:       20:  258:/*EOF*/
        3:        3:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       20:       20:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
       20:       20:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
       20:       20:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
       20:       20:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       20:       20:  278:/*EOF*/
       20:       20:  279:/*EOF*/
        4:        4:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    #####:    #####:  285:/*EOF*/
    #####:    #####:  286:/*EOF*/
    #####:    #####:  287:/*EOF*/
    #####:    #####:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        4:        4:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        4:        4:  298:/*EOF*/
        4:        4:  299:/*EOF*/
        4:        4:  300:/*EOF*/
        4:        4:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        4:        4:  305:/*EOF*/
        4:        4:  306:/*EOF*/
    #####:    #####:  307:/*EOF*/
    #####:    #####:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        4:        4:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
    #####:    #####:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
       20:       20:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
       16:       16:  322:/*EOF*/
       16:       16:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
       16:       16:  326:/*EOF*/
        -:        -:  327:/*EOF*/
       16:       16:  328:/*EOF*/
       16:       16:  329:/*EOF*/
        -:        -:  330:/*EOF*/
       16:       16:  331:/*EOF*/
       16:       16:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
    #####:    #####:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
       16:       16:  337:/*EOF*/
       16:       16:  338:/*EOF*/
        -:        -:  339:/*EOF*/
       16:       16:  340:/*EOF*/
       16:       16:  341:/*EOF*/
        -:        -:  342:/*EOF*/
       16:       16:  343:/*EOF*/
       16:       16:  344:/*EOF*/
       16:       16:  345:/*EOF*/
        -:        -:  346:/*EOF*/
       16:       16:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
       20:       20:  351:/*EOF*/
       20:       20:  352:/*EOF*/
       20:       20:  353:/*EOF*/
        -:        -:  354:/*EOF*/
       20:       20:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       20:       20:  357:/*EOF*/
        -:        -:  358:/*EOF*/
       20:       20:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
    #####:    #####:  362:/*EOF*/
        -:        -:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
       14:       14:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       14:       14:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        6:        6:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        6:        6:  395:/*EOF*/
        6:        6:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        6:        6:  398:/*EOF*/
        3:        3:  399:/*EOF*/
        3:        3:  400:/*EOF*/
        2:        2:  401:/*EOF*/
        6:        6:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        6:        6:  404:/*EOF*/
        6:        6:  405:/*EOF*/
        6:        6:  406:/*EOF*/
        6:        6:  407:/*EOF*/
        6:        6:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        6:        6:  410:/*EOF*/
        1:        1:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        6:        6:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
    #####:    #####:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
    #####:    #####:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
    #####:    #####:  463:/*EOF*/
    #####:    #####:  464:/*EOF*/
    #####:    #####:  465:/*EOF*/
        -:        -:  466:/*EOF*/
    #####:    #####:  467:/*EOF*/
        -:        -:  468:/*EOF*/
    #####:    #####:  469:/*EOF*/
    #####:    #####:  470:/*EOF*/
    #####:    #####:  471:/*EOF*/
    #####:    #####:  472:/*EOF*/
    #####:    #####:  473:/*EOF*/
    #####:    #####:  474:/*EOF*/
    #####:    #####:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
    #####:    #####:  478:/*EOF*/
    #####:    #####:  479:/*EOF*/
        -:        -:  480:/*EOF*/
    #####:    #####:  481:/*EOF*/
    #####:    #####:  482:/*EOF*/
    #####:    #####:  483:/*EOF*/
    #####:    #####:  484:/*EOF*/
    #####:    #####:  485:/*EOF*/
        -:        -:  486:/*EOF*/
    #####:    #####:  487:/*EOF*/
    #####:    #####:  488:/*EOF*/
        -:        -:  489:/*EOF*/
    #####:    #####:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
    #####:    #####:  493:/*EOF*/
    #####:    #####:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
    #####:    #####:  497:/*EOF*/
    #####:    #####:  498:/*EOF*/
    #####:    #####:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
       16:       16:  503:/*EOF*/
        -:        -:  504:/*EOF*/
       16:       16:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
       16:       16:  510:/*EOF*/
        4:        4:  511:/*EOF*/
        4:        4:  512:/*EOF*/
        -:        -:  513:/*EOF*/
       16:       16:  514:/*EOF*/
    #####:    #####:  515:/*EOF*/
    #####:    #####:  516:/*EOF*/
        -:        -:  517:/*EOF*/
       16:       16:  518:/*EOF*/
        1:        1:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
       16:       16:  522:/*EOF*/
    #####:    #####:  523:/*EOF*/
    #####:    #####:  524:/*EOF*/
        -:        -:  525:/*EOF*/
       16:       16:  526:/*EOF*/
       16:       16:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
       16:       16:  530:/*EOF*/
       16:       16:  531:/*EOF*/
       16:       16:  532:/*EOF*/
       16:       16:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
       16:       16:  537:/*EOF*/
       16:       16:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
       14:       14:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
       14:       14:  544:/*EOF*/
       12:       12:  545:/*EOF*/
        -:        -:  546:/*EOF*/
       14:       14:  547:/*EOF*/
    #####:    #####:  548:/*EOF*/
        -:        -:  549:/*EOF*/
       14:       14:  550:/*EOF*/
        2:        2:  551:/*EOF*/
        -:        -:  552:/*EOF*/
       14:       14:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
       20:       20:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
       20:       20:  561:/*EOF*/
       19:       18:  562:/*EOF*/
        -:        -:  563:/*EOF*/
       56:      112:  564:/*EOF*/
       55:      110:  565:/*EOF*/
        -:        -:  566:/*EOF*/
       55:      110:  567:/*EOF*/
    #####:        1:  568:/*EOF*/
    #####:        1:  569:/*EOF*/
        -:        -:  570:/*EOF*/
    #####:    #####:  571:/*EOF*/
        -:        -:  572:/*EOF*/
    #####:    #####:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        1:        2:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
       20:       20:  581:/*EOF*/
        -:        -:  582:/*EOF*/
       20:       20:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
       20:       20:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
       20:       20:  589:/*EOF*/
    #####:    #####:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
    #####:    #####:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
       20:       20:  595:/*EOF*/
        -:        -:  596:/*EOF*/
       37:       37:  597:/*EOF*/
       17:       17:  598:/*EOF*/
       14:       14:  599:/*EOF*/
        -:        -:  600:/*EOF*/
       14:       14:  601:/*EOF*/
        -:        -:  602:/*EOF*/
       14:       14:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        6:        6:  605:/*EOF*/
        -:        -:  606:/*EOF*/
       20:       20:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
       97:       97:  610:/*EOF*/
        -:        -:  611:/*EOF*/
       97:       97:  612:/*EOF*/
       14:       14:  613:/*EOF*/
        -:        -:  614:/*EOF*/
       83:       83:  615:/*EOF*/
        -:        -:  616:/*EOF*/
       83:       83:  617:/*EOF*/
       20:       20:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
       20:       20:  621:/*EOF*/
        -:        -:  622:/*EOF*/
       20:       20:  623:/*EOF*/
        -:        -:  624:/*EOF*/
       20:       20:  625:/*EOF*/
       20:       20:  626:/*EOF*/
       20:       20:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
       20:       20:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
       12:       12:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
       12:       12:  638:/*EOF*/
       12:       12:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
       12:       12:  644:/*EOF*/
        -:        -:  645:/*EOF*/
       12:       12:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
       12:       12:  652:/*EOF*/
    #####:    #####:  653:/*EOF*/
    #####:    #####:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
       12:       12:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        8:        8:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        8:        8:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        8:        8:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        8:        8:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        4:        4:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        4:        4:  674:/*EOF*/
        4:        4:  675:/*EOF*/
        4:        4:  676:/*EOF*/
        4:        4:  677:/*EOF*/
        4:        4:  678:/*EOF*/
    #####:    #####:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
        -:        -:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        4:        4:  685:/*EOF*/
        4:        4:  686:/*EOF*/
        4:        4:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        8:        8:  689:/*EOF*/
        8:        8:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        8:        8:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        8:        8:  695:/*EOF*/
        8:        8:  696:/*EOF*/
        8:        8:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        8:        8:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        1:        1:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        1:        1:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        1:        1:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        1:        1:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        1:        1:  715:/*EOF*/
        1:        1:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        1:        1:  719:/*EOF*/
        1:        1:  720:/*EOF*/
    #####:    #####:  721:/*EOF*/
    #####:    #####:  722:/*EOF*/
        -:        -:  723:/*EOF*/
    #####:    #####:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        1:        1:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        1:        1:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
    #####:    #####:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
    #####:    #####:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        1:        1:  739:/*EOF*/
        1:        1:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        1:        1:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        1:        1:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
    #####:    #####:  749:/*EOF*/
        -:        -:  750:/*EOF*/
    #####:    #####:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
    #####:    #####:  754:/*EOF*/
        -:        -:  755:/*EOF*/
    #####:    #####:  756:/*EOF*/
    #####:    #####:  757:/*EOF*/
    #####:    #####:  758:/*EOF*/
    #####:    #####:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
    #####:    #####:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
    #####:    #####:  774:/*EOF*/
    #####:    #####:  775:/*EOF*/
    #####:    #####:  776:/*EOF*/
        -:        -:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        1:        1:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        1:        1:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        1:        1:  808:/*EOF*/
    #####:    #####:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        1:        1:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        1:        1:  813:/*EOF*/
        1:        1:  814:/*EOF*/
        1:        1:  815:/*EOF*/
        1:        1:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        1:        1:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        1:        1:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        8:        8:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        8:        8:  827:/*EOF*/
        8:        8:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        8:        8:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        8:        8:  832:/*EOF*/
        3:        3:  833:/*EOF*/
        3:        3:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        3:        3:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        5:        5:  841:/*EOF*/
        5:        5:  842:/*EOF*/
        5:        5:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        5:        5:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        5:        5:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        2:        2:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        2:        2:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        2:        2:  858:/*EOF*/
        2:        2:  859:/*EOF*/
        2:        2:  860:/*EOF*/
        2:        2:  861:/*EOF*/
        2:        2:  862:/*EOF*/
        2:        2:  863:/*EOF*/
        2:        2:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
    #####:    #####:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        2:        2:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
    #####:    #####:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
    #####:    #####:  882:/*EOF*/
    #####:    #####:  883:/*EOF*/
    #####:    #####:  884:/*EOF*/
    #####:    #####:  885:/*EOF*/
    #####:    #####:  886:/*EOF*/
    #####:    #####:  887:/*EOF*/
    #####:    #####:  888:/*EOF*/
    #####:    #####:  889:/*EOF*/
    #####:    #####:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
    #####:    #####:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        4:        4:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        4:        4:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        4:        4:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
    #####:    #####:  934:/*EOF*/
        -:        -:  935:/*EOF*/
    #####:    #####:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
    #####:    #####:  940:/*EOF*/
    #####:    #####:  941:/*EOF*/
    #####:    #####:  942:/*EOF*/
    #####:    #####:  943:/*EOF*/
    #####:    #####:  944:/*EOF*/
    #####:    #####:  945:/*EOF*/
        -:        -:  946:/*EOF*/
    #####:    #####:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        1:        1:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        1:        1:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
       56:       56:  956:/*EOF*/
       55:       55:  957:/*EOF*/
        -:        -:  958:/*EOF*/
       65:       65:  959:/*EOF*/
       10:       10:  960:/*EOF*/
        -:        -:  961:/*EOF*/
       10:       10:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        1:        1:  966:/*EOF*/
        1:        1:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        1:        1:  969:/*EOF*/
        1:        1:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
       20:       20:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
       20:       20:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
       40:       40:  980:/*EOF*/
       35:       35:  981:/*EOF*/
       15:       15:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        5:        5:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        5:        5:  990:/*EOF*/
        5:        5:  991:/*EOF*/
        5:        5:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        5:        5:  994:/*EOF*/
        5:        5:  995:/*EOF*/
        5:        5:  996:/*EOF*/
    #####:    #####:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        5:        5:  999:/*EOF*/
        5:        5: 1000:/*EOF*/
        5:        5: 1001:/*EOF*/
        5:        5: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        8:        8: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        8:        8: 1009:/*EOF*/
        8:        8: 1010:/*EOF*/
        8:        8: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
    #####:    #####: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
    #####:    #####: 1023:/*EOF*/
    #####:    #####: 1024:/*EOF*/
    #####:    #####: 1025:/*EOF*/
    #####:    #####: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
    #####:    #####: 1028:/*EOF*/
    #####:    #####: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
    #####:    #####: 1037:/*EOF*/
    #####:    #####: 1038:/*EOF*/
    #####:    #####: 1039:/*EOF*/
    #####:    #####: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
    #####:    #####: 1043:/*EOF*/
    #####:    #####: 1044:/*EOF*/
    #####:    #####: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
    #####:    #####: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
    #####:    #####: 1054:/*EOF*/
    #####:    #####: 1055:/*EOF*/
    #####:    #####: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
    #####:    #####: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
    #####:    #####: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
    #####:    #####: 1062:/*EOF*/
    #####:    #####: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
    #####:    #####: 1065:/*EOF*/
    #####:    #####: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
    #####:    #####: 1068:/*EOF*/
    #####:    #####: 1069:/*EOF*/
    #####:    #####: 1070:/*EOF*/
    #####:    #####: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
    #####:    #####: 1073:/*EOF*/
    #####:    #####: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
    #####:    #####: 1078:/*EOF*/
    #####:    #####: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
    #####:    #####: 1082:/*EOF*/
    #####:    #####: 1083:/*EOF*/
    #####:    #####: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        2:        2: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        2:        2: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        2:        2: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
    #####:    #####: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        2:        2: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        2:        2: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
    #####:    #####: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
    #####:    #####: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
    #####:    #####: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
    #####:    #####: 1109:/*EOF*/
    #####:    #####: 1110:/*EOF*/
    #####:    #####: 1111:/*EOF*/
    #####:    #####: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
    #####:    #####: 1114:/*EOF*/
    #####:    #####: 1115:/*EOF*/
    #####:    #####: 1116:/*EOF*/
    #####:    #####: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
    #####:    #####: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
    #####:    #####: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
    #####:    #####: 1124:/*EOF*/
    #####:    #####: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        1:        1: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        1:        1: 1138:/*EOF*/
        1:        1: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
       55:       55: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
       55:       55: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
       55:       55: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
       55:       55: 1148:/*EOF*/
       55:       55: 1149:/*EOF*/
       55:       55: 1150:/*EOF*/
       55:       55: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        1:        1: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        1:        1: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        1:        1: 1166:/*EOF*/
        1:        1: 1167:/*EOF*/
        1:        1: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
       14:       14: 1171:/*EOF*/
       13:       13: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
       13:       13: 1174:/*EOF*/
       13:       13: 1175:/*EOF*/
       13:       13: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        1:        1: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        1:        1: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        1:        1: 1186:/*EOF*/
        1:        1: 1187:/*EOF*/
        1:        1: 1188:/*EOF*/
    #####:    #####: 1189:/*EOF*/
    #####:    #####: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        1:        1: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        1:        1: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        1:        1: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        2:        2: 1201:/*EOF*/
        1:        1: 1202:/*EOF*/
    #####:    #####: 1203:/*EOF*/
    #####:    #####: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        1:        1: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        1:        1: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        1:        1: 1214:/*EOF*/
        1:        1: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        1:        1: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        1:        1: 1219:/*EOF*/
        1:        1: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
    #####:    #####: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
    #####:    #####: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
    #####:    #####: 1228:/*EOF*/
    #####:    #####: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
    #####:    #####: 1231:/*EOF*/
    #####:    #####: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
    #####:    #####: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
    #####:    #####: 1239:/*EOF*/
    #####:    #####: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
    #####:    #####: 1243:/*EOF*/
    #####:    #####: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
    #####:    #####: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
    #####:    #####: 1249:/*EOF*/
    #####:    #####: 1250:/*EOF*/
    #####:    #####: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
    #####:    #####: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
    #####:    #####: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
    #####:    #####: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
    #####:    #####: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
    #####:    #####: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
    #####:    #####: 1266:/*EOF*/
    #####:    #####: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
    #####:    #####: 1269:/*EOF*/
    #####:    #####: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
    #####:    #####: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
    #####:    #####: 1276:/*EOF*/
    #####:    #####: 1277:/*EOF*/
    #####:    #####: 1278:/*EOF*/
    #####:    #####: 1279:/*EOF*/
    #####:    #####: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
    #####:    #####: 1283:/*EOF*/
    #####:    #####: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
    #####:    #####: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
    #####:    #####: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
    #####:    #####: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
    #####:    #####: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
    #####:    #####: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
    #####:    #####: 1299:/*EOF*/
    #####:    #####: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
    #####:    #####: 1302:/*EOF*/
    #####:    #####: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
    #####:    #####: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
    #####:    #####: 1309:/*EOF*/
    #####:    #####: 1310:/*EOF*/
    #####:    #####: 1311:/*EOF*/
    #####:    #####: 1312:/*EOF*/
    #####:    #####: 1313:/*EOF*/
    #####:    #####: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
    #####:    #####: 1317:/*EOF*/
    #####:    #####: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
    #####:    #####: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
    #####:    #####: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
    #####:    #####: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        1:        1: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        1:        1: 1339:/*EOF*/
        1:        1: 1340:/*EOF*/
    #####:    #####: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        1:        1: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        1:        1: 1354:/*EOF*/
    #####:    #####: 1355:/*EOF*/
    #####:    #####: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        1:        1: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        1:        1: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        1:        1: 1363:/*EOF*/
        1:        1: 1364:/*EOF*/
        1:        1: 1365:/*EOF*/
        1:        1: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        1:        1: 1368:/*EOF*/

src/mesa/drivers/dri/i965/.libs/brw_fs_channel_expressions.cpp.gcov

        -:        -:    0:Source:brw_fs_channel_expressions.cpp
        -:        -:    0:Graph:brw_fs_channel_expressions.gcno
        -:        -:    0:Data:brw_fs_channel_expressions.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        4:        4:   51:/*EOF*/
        4:        4:   52:/*EOF*/
        4:        4:   53:/*EOF*/
        4:        4:   54:/*EOF*/
        4:        4:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
      630:      660:   67:/*EOF*/
        -:        -:   68:/*EOF*/
      630:      660:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
      630:      660:   72:/*EOF*/
      510:      534:   73:/*EOF*/
        -:        -:   74:/*EOF*/
      120:      126:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
    #####:    #####:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
    #####:    #####:   92:/*EOF*/
        -:        -:   93:/*EOF*/
      120:      126:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
      336:      354:   97:/*EOF*/
      219:      231:   98:/*EOF*/
        3:        3:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
      117:      123:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        4:        4:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        4:        4:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        4:        4:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        4:        4:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        4:        4:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       24:       24:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
       24:       24:  126:/*EOF*/
    #####:    #####:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       24:       24:  129:/*EOF*/
       24:       24:  130:/*EOF*/
       24:       24:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
       12:       12:  135:/*EOF*/
        -:        -:  136:/*EOF*/
       12:       12:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
       12:       12:  145:/*EOF*/
        -:        -:  146:/*EOF*/
       12:       12:  147:/*EOF*/
       12:       12:  148:/*EOF*/
       12:       12:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
      204:      204:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      204:      204:  154:/*EOF*/
      204:      204:  155:/*EOF*/
      204:      204:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
      204:      204:  159:/*EOF*/
      158:      158:  160:/*EOF*/
        -:        -:  161:/*EOF*/
       46:       46:  162:/*EOF*/
        3:        3:  163:/*EOF*/
        -:        -:  164:/*EOF*/
      129:      129:  165:/*EOF*/
       86:       86:  166:/*EOF*/
        3:        3:  167:/*EOF*/
        3:        3:  168:/*EOF*/
        3:        3:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
       46:       46:  172:/*EOF*/
       43:       43:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        3:        3:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
    #####:    #####:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        3:        3:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        9:        9:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        6:        6:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        6:        6:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       12:       12:  205:/*EOF*/
        6:        6:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        6:        6:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        6:        6:  211:/*EOF*/
        6:        6:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        3:        3:  215:/*EOF*/
        3:        3:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        3:        3:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    #####:    #####:  296:/*EOF*/
    #####:    #####:  297:/*EOF*/
        -:        -:  298:/*EOF*/
    #####:    #####:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
    #####:    #####:  302:/*EOF*/
        -:        -:  303:/*EOF*/
    #####:    #####:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
       15:       15:  332:/*EOF*/
       12:       12:  333:/*EOF*/
       12:       12:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       24:       24:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
       24:       24:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        3:        3:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
    #####:    #####:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
    #####:    #####:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    #####:    #####:  353:/*EOF*/
    #####:    #####:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
    #####:    #####:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
    #####:    #####:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
    #####:    #####:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
    #####:    #####:  394:/*EOF*/
    #####:    #####:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
    #####:    #####:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
    #####:    #####:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
    #####:    #####:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
    #####:    #####:  417:/*EOF*/
        -:        -:  418:/*EOF*/
    #####:    #####:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
    #####:    #####:  422:/*EOF*/
    #####:    #####:  423:/*EOF*/
    #####:    #####:  424:/*EOF*/
    #####:    #####:  425:/*EOF*/
    #####:    #####:  426:/*EOF*/
        -:        -:  427:/*EOF*/
    #####:    #####:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
    #####:    #####:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
    #####:    #####:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
    #####:    #####:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
    #####:    #####:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        3:        3:  479:/*EOF*/
        3:        3:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        3:        3:  482:/*EOF*/

src/mesa/drivers/dri/i965/.libs/brw_fs_vector_splitting.cpp.gcov

        -:        -:    0:Source:brw_fs_vector_splitting.cpp
        -:        -:    0:Graph:brw_fs_vector_splitting.gcno
        -:        -:    0:Data:brw_fs_vector_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
       21:       21:   52:/*EOF*/
       21:       21:   53:/*EOF*/
       21:       21:   54:/*EOF*/
       21:       21:   55:/*EOF*/
       21:       21:   56:/*EOF*/
       21:       21:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        4:        4:   72:/*EOF*/
        4:        4:   73:/*EOF*/
        4:        4:   74:/*EOF*/
        4:        4:   75:/*EOF*/
        4:        4:   76:/*EOF*/
        4:        4:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        4:        4:   79:/*EOF*/
        8:        8:   80:/*EOF*/
        4:        4:   81:/*EOF*/
        4:        4:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
      358:      364:   99:/*EOF*/
        -:        -:  100:/*EOF*/
      358:      364:  101:/*EOF*/
        -:        -:  102:/*EOF*/
      358:      364:  103:/*EOF*/
      317:      323:  104:/*EOF*/
        -:        -:  105:/*EOF*/
       41:       41:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       11:       11:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
       30:       30:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       30:       30:  125:/*EOF*/
       30:       30:  126:/*EOF*/
        9:        9:  127:/*EOF*/
        -:        -:  128:/*EOF*/
       21:       21:  129:/*EOF*/
       21:       21:  130:/*EOF*/
       21:       21:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
      126:      126:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
      126:      126:  139:/*EOF*/
        -:        -:  140:/*EOF*/
      126:      126:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
      232:      238:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      232:      238:  147:/*EOF*/
      232:      238:  148:/*EOF*/
        -:        -:  149:/*EOF*/
      232:      238:  150:/*EOF*/
        9:        9:  151:/*EOF*/
        -:        -:  152:/*EOF*/
      232:      238:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
       63:       69:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
       63:       69:  160:/*EOF*/
       60:       66:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        3:        3:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
      219:      219:  167:/*EOF*/
        -:        -:  168:/*EOF*/
      657:      657:  169:/*EOF*/
      311:      311:  170:/*EOF*/
       92:       92:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
       68:       68:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      453:      453:  177:/*EOF*/
      293:      293:  178:/*EOF*/
      142:      142:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
      106:      106:  182:/*EOF*/
      106:      106:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       45:       45:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        4:        4:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        4:        4:  194:/*EOF*/
        4:        4:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        1:        1:  200:/*EOF*/
        1:        1:  201:/*EOF*/
        1:        1:  202:/*EOF*/
        1:        1:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
      164:      166:  214:/*EOF*/
        -:        -:  215:/*EOF*/
      164:      166:  216:/*EOF*/
        -:        -:  217:/*EOF*/
      164:      166:  218:/*EOF*/
       58:       58:  219:/*EOF*/
        -:        -:  220:/*EOF*/
      106:      108:  221:/*EOF*/
      106:      108:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
      339:      349:  226:/*EOF*/
        -:        -:  227:/*EOF*/
      339:      349:  228:/*EOF*/
       75:       75:  229:/*EOF*/
        -:        -:  230:/*EOF*/
      264:      274:  231:/*EOF*/
      264:      274:  232:/*EOF*/
      210:      218:  233:/*EOF*/
        -:        -:  234:/*EOF*/
       54:       56:  235:/*EOF*/
       54:       56:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
        -:        -:  238:/*EOF*/
       54:       56:  239:/*EOF*/
       54:       56:  240:/*EOF*/
       27:       29:  241:/*EOF*/
        -:        -:  242:/*EOF*/
       27:       27:  243:/*EOF*/
       27:       27:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
       87:       87:  248:/*EOF*/
        -:        -:  249:/*EOF*/
       87:       87:  250:/*EOF*/
       87:       87:  251:/*EOF*/
       87:       87:  252:/*EOF*/
       87:       87:  253:/*EOF*/
        -:        -:  254:/*EOF*/
       87:       87:  255:/*EOF*/
       16:       16:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
       80:       80:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
       64:       64:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
       64:       64:  265:/*EOF*/
       18:       18:  266:/*EOF*/
        -:        -:  267:/*EOF*/
       46:       46:  268:/*EOF*/
       42:       42:  269:/*EOF*/
       42:       42:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        4:        4:  272:/*EOF*/
        4:        4:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
       46:       46:  276:/*EOF*/
        -:        -:  277:/*EOF*/
       40:       40:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        6:        6:  280:/*EOF*/
        6:        6:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
       46:       46:  284:/*EOF*/
        -:        -:  285:/*EOF*/
       92:       92:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       46:       46:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       16:       16:  290:/*EOF*/
       71:       71:  291:/*EOF*/
       20:       20:  292:/*EOF*/
       20:       20:  293:/*EOF*/
        -:        -:  294:/*EOF*/
       20:       20:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        5:        5:  297:/*EOF*/
        5:        5:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        5:        5:  300:/*EOF*/
        5:        5:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        6:        6:  303:/*EOF*/
        6:        6:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        4:        4:  306:/*EOF*/
        4:        4:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
    #####:    #####:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
       20:       20:  313:/*EOF*/
       20:       20:  314:/*EOF*/
        -:        -:  315:/*EOF*/
       20:       20:  316:/*EOF*/
        -:        -:  317:/*EOF*/
       51:       51:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
       87:       87:  321:/*EOF*/
        -:        -:  322:/*EOF*/
       87:       87:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        4:        4:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        8:        8:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        4:        4:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
       25:       25:  336:/*EOF*/
       21:       21:  337:/*EOF*/
       21:       21:  338:/*EOF*/
    #####:    #####:  339:/*EOF*/
    #####:    #####:  340:/*EOF*/
    #####:    #####:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
       21:       21:  344:/*EOF*/
        9:        9:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        4:        4:  349:/*EOF*/
        3:        3:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        1:        1:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
       13:       13:  357:/*EOF*/
       12:       12:  358:/*EOF*/
        -:        -:  359:/*EOF*/
       12:       12:  360:/*EOF*/
        -:        -:  361:/*EOF*/
       12:       12:  362:/*EOF*/
        -:        -:  363:/*EOF*/
       60:       60:  364:/*EOF*/
        -:        -:  365:/*EOF*/
       96:       96:  366:/*EOF*/
       48:       48:  367:/*EOF*/
       48:       48:  368:/*EOF*/
       96:       96:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
       48:       48:  372:/*EOF*/
        -:        -:  373:/*EOF*/
       48:       48:  374:/*EOF*/
        -:        -:  375:/*EOF*/
       48:       48:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
    #####:    #####:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
       48:       48:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
       12:       12:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        1:        1:  394:/*EOF*/
        1:        1:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        1:        1:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        1:        1:  399:/*EOF*/

src/mesa/drivers/dri/i965/.libs/brw_nir.h.gcov

        -:        -:    0:Source:../../../../../src/intel/compiler/brw_nir.h
        -:        -:    0:Graph:brw_program.gcno
        -:        -:    0:Data:brw_program.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
       30:       32:   40:/*EOF*/
        -:        -:   41:/*EOF*/
       30:       32:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        9:        9:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        9:        9:   48:/*EOF*/

src/mesa/drivers/dri/i965/.libs/hash_table.h.gcov

        -:        -:    0:Source:../../../../../src/util/hash_table.h
        -:        -:    0:Graph:brw_fs_vector_splitting.gcno
        -:        -:    0:Data:brw_fs_vector_splitting.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
      157:      159:  106:/*EOF*/
        -:        -:  107:/*EOF*/
      157:      159:  108:/*EOF*/

src/mesa/glsl_types.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl_types.h
        -:        -:    0:Graph:main/.libs/shader_query.gcno
        -:        -:    0:Data:main/.libs/shader_query.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/* -*- c++ -*- */
        -:        -:    2:/*
        -:        -:    3: * Copyright © 2009 Intel Corporation
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   22: * DEALINGS IN THE SOFTWARE.
        -:        -:   23: */
        -:        -:   24:
        -:        -:   25:#ifndef GLSL_TYPES_H
        -:        -:   26:#define GLSL_TYPES_H
        -:        -:   27:
        -:        -:   28:#include <string.h>
        -:        -:   29:#include <assert.h>
        -:        -:   30:
        -:        -:   31:#ifdef __cplusplus
        -:        -:   32:extern "C" {
        -:        -:   33:#endif
        -:        -:   34:
        -:        -:   35:struct _mesa_glsl_parse_state;
        -:        -:   36:struct glsl_symbol_table;
        -:        -:   37:
        -:        -:   38:extern void
        -:        -:   39:_mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state);
        -:        -:   40:
        -:        -:   41:extern void
        -:        -:   42:_mesa_glsl_release_types(void);
        -:        -:   43:
        -:        -:   44:#ifdef __cplusplus
        -:        -:   45:}
        -:        -:   46:#endif
        -:        -:   47:
        -:        -:   48:enum glsl_base_type {
        -:        -:   49:   /* Note: GLSL_TYPE_UINT, GLSL_TYPE_INT, and GLSL_TYPE_FLOAT must be 0, 1,
        -:        -:   50:    * and 2 so that they will fit in the 2 bits of glsl_type::sampled_type.
        -:        -:   51:    */
        -:        -:   52:   GLSL_TYPE_UINT = 0,
        -:        -:   53:   GLSL_TYPE_INT,
        -:        -:   54:   GLSL_TYPE_FLOAT,
        -:        -:   55:   GLSL_TYPE_DOUBLE,
        -:        -:   56:   GLSL_TYPE_UINT64,
        -:        -:   57:   GLSL_TYPE_INT64,
        -:        -:   58:   GLSL_TYPE_BOOL,
        -:        -:   59:   GLSL_TYPE_SAMPLER,
        -:        -:   60:   GLSL_TYPE_IMAGE,
        -:        -:   61:   GLSL_TYPE_ATOMIC_UINT,
        -:        -:   62:   GLSL_TYPE_STRUCT,
        -:        -:   63:   GLSL_TYPE_INTERFACE,
        -:        -:   64:   GLSL_TYPE_ARRAY,
        -:        -:   65:   GLSL_TYPE_VOID,
        -:        -:   66:   GLSL_TYPE_SUBROUTINE,
        -:        -:   67:   GLSL_TYPE_FUNCTION,
        -:        -:   68:   GLSL_TYPE_ERROR
        -:        -:   69:};
        -:        -:   70:
        -:        -:   71:static inline bool glsl_base_type_is_64bit(enum glsl_base_type type)
        -:        -:   72:{
        -:        -:   73:   return type == GLSL_TYPE_DOUBLE ||
        -:        -:   74:          type == GLSL_TYPE_UINT64 ||
        -:        -:   75:          type == GLSL_TYPE_INT64;
        -:        -:   76:}
        -:        -:   77:
        -:        -:   78:enum glsl_sampler_dim {
        -:        -:   79:   GLSL_SAMPLER_DIM_1D = 0,
        -:        -:   80:   GLSL_SAMPLER_DIM_2D,
        -:        -:   81:   GLSL_SAMPLER_DIM_3D,
        -:        -:   82:   GLSL_SAMPLER_DIM_CUBE,
        -:        -:   83:   GLSL_SAMPLER_DIM_RECT,
        -:        -:   84:   GLSL_SAMPLER_DIM_BUF,
        -:        -:   85:   GLSL_SAMPLER_DIM_EXTERNAL,
        -:        -:   86:   GLSL_SAMPLER_DIM_MS,
        -:        -:   87:   GLSL_SAMPLER_DIM_SUBPASS, /* for vulkan input attachments */
        -:        -:   88:   GLSL_SAMPLER_DIM_SUBPASS_MS, /* for multisampled vulkan input attachments */
        -:        -:   89:};
        -:        -:   90:
        -:        -:   91:enum glsl_interface_packing {
        -:        -:   92:   GLSL_INTERFACE_PACKING_STD140,
        -:        -:   93:   GLSL_INTERFACE_PACKING_SHARED,
        -:        -:   94:   GLSL_INTERFACE_PACKING_PACKED,
        -:        -:   95:   GLSL_INTERFACE_PACKING_STD430
        -:        -:   96:};
        -:        -:   97:
        -:        -:   98:enum glsl_matrix_layout {
        -:        -:   99:   /**
        -:        -:  100:    * The layout of the matrix is inherited from the object containing the
        -:        -:  101:    * matrix (the top level structure or the uniform block).
        -:        -:  102:    */
        -:        -:  103:   GLSL_MATRIX_LAYOUT_INHERITED,
        -:        -:  104:
        -:        -:  105:   /**
        -:        -:  106:    * Explicit column-major layout
        -:        -:  107:    *
        -:        -:  108:    * If a uniform block doesn't have an explicit layout set, it will default
        -:        -:  109:    * to this layout.
        -:        -:  110:    */
        -:        -:  111:   GLSL_MATRIX_LAYOUT_COLUMN_MAJOR,
        -:        -:  112:
        -:        -:  113:   /**
        -:        -:  114:    * Row-major layout
        -:        -:  115:    */
        -:        -:  116:   GLSL_MATRIX_LAYOUT_ROW_MAJOR
        -:        -:  117:};
        -:        -:  118:
        -:        -:  119:enum {
        -:        -:  120:   GLSL_PRECISION_NONE = 0,
        -:        -:  121:   GLSL_PRECISION_HIGH,
        -:        -:  122:   GLSL_PRECISION_MEDIUM,
        -:        -:  123:   GLSL_PRECISION_LOW
        -:        -:  124:};
        -:        -:  125:
        -:        -:  126:#ifdef __cplusplus
        -:        -:  127:#include "GL/gl.h"
        -:        -:  128:#include "util/ralloc.h"
        -:        -:  129:#include "main/mtypes.h" /* for gl_texture_index, C++'s enum rules are broken */
        -:        -:  130:
        -:        -:  131:struct glsl_type {
        -:        -:  132:   GLenum gl_type;
        -:        -:  133:   glsl_base_type base_type;
        -:        -:  134:
        -:        -:  135:   unsigned sampler_dimensionality:4; /**< \see glsl_sampler_dim */
        -:        -:  136:   unsigned sampler_shadow:1;
        -:        -:  137:   unsigned sampler_array:1;
        -:        -:  138:   unsigned sampled_type:2;    /**< Type of data returned using this
        -:        -:  139:				* sampler or image.  Only \c
        -:        -:  140:				* GLSL_TYPE_FLOAT, \c GLSL_TYPE_INT,
        -:        -:  141:				* and \c GLSL_TYPE_UINT are valid.
        -:        -:  142:				*/
        -:        -:  143:   unsigned interface_packing:2;
        -:        -:  144:   unsigned interface_row_major:1;
        -:        -:  145:
        -:        -:  146:   /* Callers of this ralloc-based new need not call delete. It's
        -:        -:  147:    * easier to just ralloc_free 'mem_ctx' (or any of its ancestors). */
        -:        -:  148:   static void* operator new(size_t size)
        -:        -:  149:   {
        -:        -:  150:      mtx_lock(&glsl_type::mutex);
        -:        -:  151:
        -:        -:  152:      /* mem_ctx should have been created by the static members */
        -:        -:  153:      assert(glsl_type::mem_ctx != NULL);
        -:        -:  154:
        -:        -:  155:      void *type;
        -:        -:  156:
        -:        -:  157:      type = ralloc_size(glsl_type::mem_ctx, size);
        -:        -:  158:      assert(type != NULL);
        -:        -:  159:
        -:        -:  160:      mtx_unlock(&glsl_type::mutex);
        -:        -:  161:
        -:        -:  162:      return type;
        -:        -:  163:   }
        -:        -:  164:
        -:        -:  165:   /* If the user *does* call delete, that's OK, we will just
        -:        -:  166:    * ralloc_free in that case. */
        -:        -:  167:   static void operator delete(void *type)
        -:        -:  168:   {
        -:        -:  169:      mtx_lock(&glsl_type::mutex);
        -:        -:  170:      ralloc_free(type);
        -:        -:  171:      mtx_unlock(&glsl_type::mutex);
        -:        -:  172:   }
        -:        -:  173:
        -:        -:  174:   /**
        -:        -:  175:    * \name Vector and matrix element counts
        -:        -:  176:    *
        -:        -:  177:    * For scalars, each of these values will be 1.  For non-numeric types
        -:        -:  178:    * these will be 0.
        -:        -:  179:    */
        -:        -:  180:   /*@{*/
        -:        -:  181:   uint8_t vector_elements;    /**< 1, 2, 3, or 4 vector elements. */
        -:        -:  182:   uint8_t matrix_columns;     /**< 1, 2, 3, or 4 matrix columns. */
        -:        -:  183:   /*@}*/
        -:        -:  184:
        -:        -:  185:   /**
        -:        -:  186:    * For \c GLSL_TYPE_ARRAY, this is the length of the array.  For
        -:        -:  187:    * \c GLSL_TYPE_STRUCT or \c GLSL_TYPE_INTERFACE, it is the number of
        -:        -:  188:    * elements in the structure and the number of values pointed to by
        -:        -:  189:    * \c fields.structure (below).
        -:        -:  190:    */
        -:        -:  191:   unsigned length;
        -:        -:  192:
        -:        -:  193:   /**
        -:        -:  194:    * Name of the data type
        -:        -:  195:    *
        -:        -:  196:    * Will never be \c NULL.
        -:        -:  197:    */
        -:        -:  198:   const char *name;
        -:        -:  199:
        -:        -:  200:   /**
        -:        -:  201:    * Subtype of composite data types.
        -:        -:  202:    */
        -:        -:  203:   union {
        -:        -:  204:      const struct glsl_type *array;            /**< Type of array elements. */
        -:        -:  205:      struct glsl_function_param *parameters;   /**< Parameters to function. */
        -:        -:  206:      struct glsl_struct_field *structure;      /**< List of struct fields. */
        -:        -:  207:   } fields;
        -:        -:  208:
        -:        -:  209:   /**
        -:        -:  210:    * \name Pointers to various public type singletons
        -:        -:  211:    */
        -:        -:  212:   /*@{*/
        -:        -:  213:#undef  DECL_TYPE
        -:        -:  214:#define DECL_TYPE(NAME, ...) \
        -:        -:  215:   static const glsl_type *const NAME##_type;
        -:        -:  216:#undef  STRUCT_TYPE
        -:        -:  217:#define STRUCT_TYPE(NAME) \
        -:        -:  218:   static const glsl_type *const struct_##NAME##_type;
        -:        -:  219:#include "compiler/builtin_type_macros.h"
        -:        -:  220:   /*@}*/
        -:        -:  221:
        -:        -:  222:   /**
        -:        -:  223:    * Convenience accessors for vector types (shorter than get_instance()).
        -:        -:  224:    * @{
        -:        -:  225:    */
        -:        -:  226:   static const glsl_type *vec(unsigned components);
        -:        -:  227:   static const glsl_type *dvec(unsigned components);
        -:        -:  228:   static const glsl_type *ivec(unsigned components);
        -:        -:  229:   static const glsl_type *uvec(unsigned components);
        -:        -:  230:   static const glsl_type *bvec(unsigned components);
        -:        -:  231:   static const glsl_type *i64vec(unsigned components);
        -:        -:  232:   static const glsl_type *u64vec(unsigned components);
        -:        -:  233:   /**@}*/
        -:        -:  234:
        -:        -:  235:   /**
        -:        -:  236:    * For numeric and boolean derived types returns the basic scalar type
        -:        -:  237:    *
        -:        -:  238:    * If the type is a numeric or boolean scalar, vector, or matrix type,
        -:        -:  239:    * this function gets the scalar type of the individual components.  For
        -:        -:  240:    * all other types, including arrays of numeric or boolean types, the
        -:        -:  241:    * error type is returned.
        -:        -:  242:    */
        -:        -:  243:   const glsl_type *get_base_type() const;
        -:        -:  244:
        -:        -:  245:   /**
        -:        -:  246:    * Get the basic scalar type which this type aggregates.
        -:        -:  247:    *
        -:        -:  248:    * If the type is a numeric or boolean scalar, vector, or matrix, or an
        -:        -:  249:    * array of any of those, this function gets the scalar type of the
        -:        -:  250:    * individual components.  For structs and arrays of structs, this function
        -:        -:  251:    * returns the struct type.  For samplers and arrays of samplers, this
        -:        -:  252:    * function returns the sampler type.
        -:        -:  253:    */
        -:        -:  254:   const glsl_type *get_scalar_type() const;
        -:        -:  255:
        -:        -:  256:   /**
        -:        -:  257:    * Get the instance of a built-in scalar, vector, or matrix type
        -:        -:  258:    */
        -:        -:  259:   static const glsl_type *get_instance(unsigned base_type, unsigned rows,
        -:        -:  260:					unsigned columns);
        -:        -:  261:
        -:        -:  262:   /**
        -:        -:  263:    * Get the instance of a sampler type
        -:        -:  264:    */
        -:        -:  265:   static const glsl_type *get_sampler_instance(enum glsl_sampler_dim dim,
        -:        -:  266:                                                bool shadow,
        -:        -:  267:                                                bool array,
        -:        -:  268:                                                glsl_base_type type);
        -:        -:  269:
        -:        -:  270:   static const glsl_type *get_image_instance(enum glsl_sampler_dim dim,
        -:        -:  271:                                              bool array, glsl_base_type type);
        -:        -:  272:
        -:        -:  273:   /**
        -:        -:  274:    * Get the instance of an array type
        -:        -:  275:    */
        -:        -:  276:   static const glsl_type *get_array_instance(const glsl_type *base,
        -:        -:  277:					      unsigned elements);
        -:        -:  278:
        -:        -:  279:   /**
        -:        -:  280:    * Get the instance of a record type
        -:        -:  281:    */
        -:        -:  282:   static const glsl_type *get_record_instance(const glsl_struct_field *fields,
        -:        -:  283:					       unsigned num_fields,
        -:        -:  284:					       const char *name);
        -:        -:  285:
        -:        -:  286:   /**
        -:        -:  287:    * Get the instance of an interface block type
        -:        -:  288:    */
        -:        -:  289:   static const glsl_type *get_interface_instance(const glsl_struct_field *fields,
        -:        -:  290:						  unsigned num_fields,
        -:        -:  291:						  enum glsl_interface_packing packing,
        -:        -:  292:						  bool row_major,
        -:        -:  293:						  const char *block_name);
        -:        -:  294:
        -:        -:  295:   /**
        -:        -:  296:    * Get the instance of an subroutine type
        -:        -:  297:    */
        -:        -:  298:   static const glsl_type *get_subroutine_instance(const char *subroutine_name);
        -:        -:  299:
        -:        -:  300:   /**
        -:        -:  301:    * Get the instance of a function type
        -:        -:  302:    */
        -:        -:  303:   static const glsl_type *get_function_instance(const struct glsl_type *return_type,
        -:        -:  304:                                                 const glsl_function_param *parameters,
        -:        -:  305:                                                 unsigned num_params);
        -:        -:  306:
        -:        -:  307:   /**
        -:        -:  308:    * Get the type resulting from a multiplication of \p type_a * \p type_b
        -:        -:  309:    */
        -:        -:  310:   static const glsl_type *get_mul_type(const glsl_type *type_a,
        -:        -:  311:                                        const glsl_type *type_b);
        -:        -:  312:
        -:        -:  313:   /**
        -:        -:  314:    * Query the total number of scalars that make up a scalar, vector or matrix
        -:        -:  315:    */
        -:        -:  316:   unsigned components() const
        -:        -:  317:   {
        -:        -:  318:      return vector_elements * matrix_columns;
        -:        -:  319:   }
        -:        -:  320:
        -:        -:  321:   /**
        -:        -:  322:    * Calculate the number of components slots required to hold this type
        -:        -:  323:    *
        -:        -:  324:    * This is used to determine how many uniform or varying locations a type
        -:        -:  325:    * might occupy.
        -:        -:  326:    */
        -:        -:  327:   unsigned component_slots() const;
        -:        -:  328:
        -:        -:  329:   /**
        -:        -:  330:    * Calculate offset between the base location of the struct in
        -:        -:  331:    * uniform storage and a struct member.
        -:        -:  332:    * For the initial call, length is the index of the member to find the
        -:        -:  333:    * offset for.
        -:        -:  334:    */
        -:        -:  335:   unsigned record_location_offset(unsigned length) const;
        -:        -:  336:
        -:        -:  337:   /**
        -:        -:  338:    * Calculate the number of unique values from glGetUniformLocation for the
        -:        -:  339:    * elements of the type.
        -:        -:  340:    *
        -:        -:  341:    * This is used to allocate slots in the UniformRemapTable, the amount of
        -:        -:  342:    * locations may not match with actual used storage space by the driver.
        -:        -:  343:    */
        -:        -:  344:   unsigned uniform_locations() const;
        -:        -:  345:
        -:        -:  346:   /**
        -:        -:  347:    * Used to count the number of varyings contained in the type ignoring
        -:        -:  348:    * innermost array elements.
        -:        -:  349:    */
        -:        -:  350:   unsigned varying_count() const;
        -:        -:  351:
        -:        -:  352:   /**
        -:        -:  353:    * Calculate the number of attribute slots required to hold this type
        -:        -:  354:    *
        -:        -:  355:    * This implements the language rules of GLSL 1.50 for counting the number
        -:        -:  356:    * of slots used by a vertex attribute.  It also determines the number of
        -:        -:  357:    * varying slots the type will use up in the absence of varying packing
        -:        -:  358:    * (and thus, it can be used to measure the number of varying slots used by
        -:        -:  359:    * the varyings that are generated by lower_packed_varyings).
        -:        -:  360:    *
        -:        -:  361:    * For vertex shader attributes - doubles only take one slot.
        -:        -:  362:    * For inter-shader varyings - dvec3/dvec4 take two slots.
        -:        -:  363:    */
        -:        -:  364:   unsigned count_attribute_slots(bool is_vertex_input) const;
        -:        -:  365:
        -:        -:  366:   /**
        -:        -:  367:    * Alignment in bytes of the start of this type in a std140 uniform
        -:        -:  368:    * block.
        -:        -:  369:    */
        -:        -:  370:   unsigned std140_base_alignment(bool row_major) const;
        -:        -:  371:
        -:        -:  372:   /** Size in bytes of this type in a std140 uniform block.
        -:        -:  373:    *
        -:        -:  374:    * Note that this is not GL_UNIFORM_SIZE (which is the number of
        -:        -:  375:    * elements in the array)
        -:        -:  376:    */
        -:        -:  377:   unsigned std140_size(bool row_major) const;
        -:        -:  378:
        -:        -:  379:   /**
        -:        -:  380:    * Alignment in bytes of the start of this type in a std430 shader
        -:        -:  381:    * storage block.
        -:        -:  382:    */
        -:        -:  383:   unsigned std430_base_alignment(bool row_major) const;
        -:        -:  384:
        -:        -:  385:   /**
        -:        -:  386:    * Calculate array stride in bytes of this type in a std430 shader storage
        -:        -:  387:    * block.
        -:        -:  388:    */
        -:        -:  389:   unsigned std430_array_stride(bool row_major) const;
        -:        -:  390:
        -:        -:  391:   /**
        -:        -:  392:    * Size in bytes of this type in a std430 shader storage block.
        -:        -:  393:    *
        -:        -:  394:    * Note that this is not GL_BUFFER_SIZE
        -:        -:  395:    */
        -:        -:  396:   unsigned std430_size(bool row_major) const;
        -:        -:  397:
        -:        -:  398:   /**
        -:        -:  399:    * \brief Can this type be implicitly converted to another?
        -:        -:  400:    *
        -:        -:  401:    * \return True if the types are identical or if this type can be converted
        -:        -:  402:    *         to \c desired according to Section 4.1.10 of the GLSL spec.
        -:        -:  403:    *
        -:        -:  404:    * \verbatim
        -:        -:  405:    * From page 25 (31 of the pdf) of the GLSL 1.50 spec, Section 4.1.10
        -:        -:  406:    * Implicit Conversions:
        -:        -:  407:    *
        -:        -:  408:    *     In some situations, an expression and its type will be implicitly
        -:        -:  409:    *     converted to a different type. The following table shows all allowed
        -:        -:  410:    *     implicit conversions:
        -:        -:  411:    *
        -:        -:  412:    *     Type of expression | Can be implicitly converted to
        -:        -:  413:    *     --------------------------------------------------
        -:        -:  414:    *     int                  float
        -:        -:  415:    *     uint
        -:        -:  416:    *
        -:        -:  417:    *     ivec2                vec2
        -:        -:  418:    *     uvec2
        -:        -:  419:    *
        -:        -:  420:    *     ivec3                vec3
        -:        -:  421:    *     uvec3
        -:        -:  422:    *
        -:        -:  423:    *     ivec4                vec4
        -:        -:  424:    *     uvec4
        -:        -:  425:    *
        -:        -:  426:    *     There are no implicit array or structure conversions. For example,
        -:        -:  427:    *     an array of int cannot be implicitly converted to an array of float.
        -:        -:  428:    *     There are no implicit conversions between signed and unsigned
        -:        -:  429:    *     integers.
        -:        -:  430:    * \endverbatim
        -:        -:  431:    */
        -:        -:  432:   bool can_implicitly_convert_to(const glsl_type *desired,
        -:        -:  433:                                  _mesa_glsl_parse_state *state) const;
        -:        -:  434:
        -:        -:  435:   /**
        -:        -:  436:    * Query whether or not a type is a scalar (non-vector and non-matrix).
        -:        -:  437:    */
        -:        -:  438:   bool is_scalar() const
        -:        -:  439:   {
        -:        -:  440:      return (vector_elements == 1)
        -:        -:  441:	 && (base_type >= GLSL_TYPE_UINT)
        -:        -:  442:	 && (base_type <= GLSL_TYPE_BOOL);
        -:        -:  443:   }
        -:        -:  444:
        -:        -:  445:   /**
        -:        -:  446:    * Query whether or not a type is a vector
        -:        -:  447:    */
        -:        -:  448:   bool is_vector() const
        -:        -:  449:   {
        -:        -:  450:      return (vector_elements > 1)
        -:        -:  451:	 && (matrix_columns == 1)
        -:        -:  452:	 && (base_type >= GLSL_TYPE_UINT)
        -:        -:  453:	 && (base_type <= GLSL_TYPE_BOOL);
        -:        -:  454:   }
        -:        -:  455:
        -:        -:  456:   /**
        -:        -:  457:    * Query whether or not a type is a matrix
        -:        -:  458:    */
        -:        -:  459:   bool is_matrix() const
        -:        -:  460:   {
        -:        -:  461:      /* GLSL only has float matrices. */
        -:        -:  462:      return (matrix_columns > 1) && (base_type == GLSL_TYPE_FLOAT || base_type == GLSL_TYPE_DOUBLE);
        -:        -:  463:   }
        -:        -:  464:
        -:        -:  465:   /**
        -:        -:  466:    * Query whether or not a type is a non-array numeric type
        -:        -:  467:    */
        -:        -:  468:   bool is_numeric() const
        -:        -:  469:   {
        -:        -:  470:      return (base_type >= GLSL_TYPE_UINT) && (base_type <= GLSL_TYPE_INT64);
        -:        -:  471:   }
        -:        -:  472:
        -:        -:  473:   /**
        -:        -:  474:    * Query whether or not a type is an integral type
        -:        -:  475:    */
        -:        -:  476:   bool is_integer() const
        -:        -:  477:   {
        -:        -:  478:      return (base_type == GLSL_TYPE_UINT) || (base_type == GLSL_TYPE_INT);
        -:        -:  479:   }
        -:        -:  480:
        -:        -:  481:   /**
        -:        -:  482:    * Query whether or not a type is a 32-bit or 64-bit integer
        -:        -:  483:    */
        -:        -:  484:   bool is_integer_32_64() const
        -:        -:  485:   {
        -:        -:  486:      return (base_type == GLSL_TYPE_UINT) || (base_type == GLSL_TYPE_INT) ||
        -:        -:  487:             (base_type == GLSL_TYPE_UINT64) || (base_type == GLSL_TYPE_INT64);
        -:        -:  488:   }
        -:        -:  489:
        -:        -:  490:   /**
        -:        -:  491:    * Query whether or not type is an integral type, or for struct and array
        -:        -:  492:    * types, contains an integral type.
        -:        -:  493:    */
        -:        -:  494:   bool contains_integer() const;
        -:        -:  495:
        -:        -:  496:   /**
        -:        -:  497:    * Query whether or not type is a double type, or for struct, interface and
        -:        -:  498:    * array types, contains a double type.
        -:        -:  499:    */
        -:        -:  500:   bool contains_double() const;
        -:        -:  501:
        -:        -:  502:   /**
        -:        -:  503:    * Query whether or not a type is a float type
        -:        -:  504:    */
        -:        -:  505:   bool is_float() const
        -:        -:  506:   {
        -:        -:  507:      return base_type == GLSL_TYPE_FLOAT;
        -:        -:  508:   }
        -:        -:  509:
        -:        -:  510:   /**
        -:        -:  511:    * Query whether or not a type is a double type
        -:        -:  512:    */
        -:        -:  513:   bool is_double() const
        -:        -:  514:   {
        -:        -:  515:      return base_type == GLSL_TYPE_DOUBLE;
        -:        -:  516:   }
        -:        -:  517:
        -:        -:  518:   /**
        -:        -:  519:    * Query whether a 64-bit type takes two slots.
        -:        -:  520:    */
        -:        -:  521:   bool is_dual_slot() const
        -:        -:  522:   {
        -:        -:  523:      return is_64bit() && vector_elements > 2;
        -:        -:  524:   }
        -:        -:  525:
        -:        -:  526:   /**
        -:        -:  527:    * Query whether or not a type is 64-bit
        -:        -:  528:    */
        -:        -:  529:   bool is_64bit() const
        -:        -:  530:   {
        -:        -:  531:      return glsl_base_type_is_64bit(base_type);
        -:        -:  532:   }
        -:        -:  533:
        -:        -:  534:   /**
        -:        -:  535:    * Query whether or not a type is a non-array boolean type
        -:        -:  536:    */
        -:        -:  537:   bool is_boolean() const
        -:        -:  538:   {
        -:        -:  539:      return base_type == GLSL_TYPE_BOOL;
        -:        -:  540:   }
        -:        -:  541:
        -:        -:  542:   /**
        -:        -:  543:    * Query whether or not a type is a sampler
        -:        -:  544:    */
        -:        -:  545:   bool is_sampler() const
        -:        -:  546:   {
        -:        -:  547:      return base_type == GLSL_TYPE_SAMPLER;
        -:        -:  548:   }
        -:        -:  549:
        -:        -:  550:   /**
        -:        -:  551:    * Query whether or not type is a sampler, or for struct, interface and
        -:        -:  552:    * array types, contains a sampler.
        -:        -:  553:    */
        -:        -:  554:   bool contains_sampler() const;
        -:        -:  555:
        -:        -:  556:   /**
        -:        -:  557:    * Get the Mesa texture target index for a sampler type.
        -:        -:  558:    */
        -:        -:  559:   gl_texture_index sampler_index() const;
        -:        -:  560:
        -:        -:  561:   /**
        -:        -:  562:    * Query whether or not type is an image, or for struct, interface and
        -:        -:  563:    * array types, contains an image.
        -:        -:  564:    */
        -:        -:  565:   bool contains_image() const;
        -:        -:  566:
        -:        -:  567:   /**
        -:        -:  568:    * Query whether or not a type is an image
        -:        -:  569:    */
        -:        -:  570:   bool is_image() const
        -:        -:  571:   {
        -:        -:  572:      return base_type == GLSL_TYPE_IMAGE;
        -:        -:  573:   }
        -:        -:  574:
        -:        -:  575:   /**
        -:        -:  576:    * Query whether or not a type is an array
        -:        -:  577:    */
    16889:    16964:  578:   bool is_array() const
        -:        -:  579:   {
    16889:    16964:  580:      return base_type == GLSL_TYPE_ARRAY;
        -:        -:  581:   }
        -:        -:  582:
        -:        -:  583:   bool is_array_of_arrays() const
        -:        -:  584:   {
        -:        -:  585:      return is_array() && fields.array->is_array();
        -:        -:  586:   }
        -:        -:  587:
        -:        -:  588:   /**
        -:        -:  589:    * Query whether or not a type is a record
        -:        -:  590:    */
      931:      964:  591:   bool is_record() const
        -:        -:  592:   {
      931:      964:  593:      return base_type == GLSL_TYPE_STRUCT;
        -:        -:  594:   }
        -:        -:  595:
        -:        -:  596:   /**
        -:        -:  597:    * Query whether or not a type is an interface
        -:        -:  598:    */
        -:        -:  599:   bool is_interface() const
        -:        -:  600:   {
        -:        -:  601:      return base_type == GLSL_TYPE_INTERFACE;
        -:        -:  602:   }
        -:        -:  603:
        -:        -:  604:   /**
        -:        -:  605:    * Query whether or not a type is the void type singleton.
        -:        -:  606:    */
        -:        -:  607:   bool is_void() const
        -:        -:  608:   {
        -:        -:  609:      return base_type == GLSL_TYPE_VOID;
        -:        -:  610:   }
        -:        -:  611:
        -:        -:  612:   /**
        -:        -:  613:    * Query whether or not a type is the error type singleton.
        -:        -:  614:    */
        -:        -:  615:   bool is_error() const
        -:        -:  616:   {
        -:        -:  617:      return base_type == GLSL_TYPE_ERROR;
        -:        -:  618:   }
        -:        -:  619:
        -:        -:  620:   /**
        -:        -:  621:    * Query if a type is unnamed/anonymous (named by the parser)
        -:        -:  622:    */
        -:        -:  623:
        -:        -:  624:   bool is_subroutine() const
        -:        -:  625:   {
        -:        -:  626:      return base_type == GLSL_TYPE_SUBROUTINE;
        -:        -:  627:   }
        -:        -:  628:   bool contains_subroutine() const;
        -:        -:  629:
        -:        -:  630:   bool is_anonymous() const
        -:        -:  631:   {
        -:        -:  632:      return !strncmp(name, "#anon", 5);
        -:        -:  633:   }
        -:        -:  634:
        -:        -:  635:   /**
        -:        -:  636:    * Get the type stripped of any arrays
        -:        -:  637:    *
        -:        -:  638:    * \return
        -:        -:  639:    * Pointer to the type of elements of the first non-array type for array
        -:        -:  640:    * types, or pointer to itself for non-array types.
        -:        -:  641:    */
     9151:     9151:  642:   const glsl_type *without_array() const
        -:        -:  643:   {
     9151:     9151:  644:      const glsl_type *t = this;
        -:        -:  645:
    10607:    10607:  646:      while (t->is_array())
      728:      728:  647:         t = t->fields.array;
        -:        -:  648:
     9151:     9151:  649:      return t;
        -:        -:  650:   }
        -:        -:  651:
        -:        -:  652:   /**
        -:        -:  653:    * Return the total number of elements in an array including the elements
        -:        -:  654:    * in arrays of arrays.
        -:        -:  655:    */
        -:        -:  656:   unsigned arrays_of_arrays_size() const
        -:        -:  657:   {
        -:        -:  658:      if (!is_array())
        -:        -:  659:         return 0;
        -:        -:  660:
        -:        -:  661:      unsigned size = length;
        -:        -:  662:      const glsl_type *base_type = fields.array;
        -:        -:  663:
        -:        -:  664:      while (base_type->is_array()) {
        -:        -:  665:         size = size * base_type->length;
        -:        -:  666:         base_type = base_type->fields.array;
        -:        -:  667:      }
        -:        -:  668:      return size;
        -:        -:  669:   }
        -:        -:  670:
        -:        -:  671:   /**
        -:        -:  672:    * Return the amount of atomic counter storage required for a type.
        -:        -:  673:    */
        -:        -:  674:   unsigned atomic_size() const
        -:        -:  675:   {
        -:        -:  676:      if (base_type == GLSL_TYPE_ATOMIC_UINT)
        -:        -:  677:         return ATOMIC_COUNTER_SIZE;
        -:        -:  678:      else if (is_array())
        -:        -:  679:         return length * fields.array->atomic_size();
        -:        -:  680:      else
        -:        -:  681:         return 0;
        -:        -:  682:   }
        -:        -:  683:
        -:        -:  684:   /**
        -:        -:  685:    * Return whether a type contains any atomic counters.
        -:        -:  686:    */
        -:        -:  687:   bool contains_atomic() const
        -:        -:  688:   {
        -:        -:  689:      return atomic_size() > 0;
        -:        -:  690:   }
        -:        -:  691:
        -:        -:  692:   /**
        -:        -:  693:    * Return whether a type contains any opaque types.
        -:        -:  694:    */
        -:        -:  695:   bool contains_opaque() const;
        -:        -:  696:
        -:        -:  697:   /**
        -:        -:  698:    * Query the full type of a matrix row
        -:        -:  699:    *
        -:        -:  700:    * \return
        -:        -:  701:    * If the type is not a matrix, \c glsl_type::error_type is returned.
        -:        -:  702:    * Otherwise a type matching the rows of the matrix is returned.
        -:        -:  703:    */
        -:        -:  704:   const glsl_type *row_type() const
        -:        -:  705:   {
        -:        -:  706:      return is_matrix()
        -:        -:  707:	 ? get_instance(base_type, matrix_columns, 1)
        -:        -:  708:	 : error_type;
        -:        -:  709:   }
        -:        -:  710:
        -:        -:  711:   /**
        -:        -:  712:    * Query the full type of a matrix column
        -:        -:  713:    *
        -:        -:  714:    * \return
        -:        -:  715:    * If the type is not a matrix, \c glsl_type::error_type is returned.
        -:        -:  716:    * Otherwise a type matching the columns of the matrix is returned.
        -:        -:  717:    */
        -:        -:  718:   const glsl_type *column_type() const
        -:        -:  719:   {
        -:        -:  720:      return is_matrix()
        -:        -:  721:	 ? get_instance(base_type, vector_elements, 1)
        -:        -:  722:	 : error_type;
        -:        -:  723:   }
        -:        -:  724:
        -:        -:  725:   /**
        -:        -:  726:    * Get the type of a structure field
        -:        -:  727:    *
        -:        -:  728:    * \return
        -:        -:  729:    * Pointer to the type of the named field.  If the type is not a structure
        -:        -:  730:    * or the named field does not exist, \c glsl_type::error_type is returned.
        -:        -:  731:    */
        -:        -:  732:   const glsl_type *field_type(const char *name) const;
        -:        -:  733:
        -:        -:  734:   /**
        -:        -:  735:    * Get the location of a field within a record type
        -:        -:  736:    */
        -:        -:  737:   int field_index(const char *name) const;
        -:        -:  738:
        -:        -:  739:   /**
        -:        -:  740:    * Query the number of elements in an array type
        -:        -:  741:    *
        -:        -:  742:    * \return
        -:        -:  743:    * The number of elements in the array for array types or -1 for non-array
        -:        -:  744:    * types.  If the number of elements in the array has not yet been declared,
        -:        -:  745:    * zero is returned.
        -:        -:  746:    */
        -:        -:  747:   int array_size() const
        -:        -:  748:   {
        -:        -:  749:      return is_array() ? length : -1;
        -:        -:  750:   }
        -:        -:  751:
        -:        -:  752:   /**
        -:        -:  753:    * Query whether the array size for all dimensions has been declared.
        -:        -:  754:    */
        -:        -:  755:   bool is_unsized_array() const
        -:        -:  756:   {
        -:        -:  757:      return is_array() && length == 0;
        -:        -:  758:   }
        -:        -:  759:
        -:        -:  760:   /**
        -:        -:  761:    * Return the number of coordinate components needed for this
        -:        -:  762:    * sampler or image type.
        -:        -:  763:    *
        -:        -:  764:    * This is based purely on the sampler's dimensionality.  For example, this
        -:        -:  765:    * returns 1 for sampler1D, and 3 for sampler2DArray.
        -:        -:  766:    *
        -:        -:  767:    * Note that this is often different than actual coordinate type used in
        -:        -:  768:    * a texturing built-in function, since those pack additional values (such
        -:        -:  769:    * as the shadow comparator or projector) into the coordinate type.
        -:        -:  770:    */
        -:        -:  771:   int coordinate_components() const;
        -:        -:  772:
        -:        -:  773:   /**
        -:        -:  774:    * Compare a record type against another record type.
        -:        -:  775:    *
        -:        -:  776:    * This is useful for matching record types declared across shader stages.
        -:        -:  777:    * The option to not match locations is to deal with places where the
        -:        -:  778:    * same struct is defined in a block which has a location set on it.
        -:        -:  779:    */
        -:        -:  780:   bool record_compare(const glsl_type *b, bool match_locations = true) const;
        -:        -:  781:
        -:        -:  782:   /**
        -:        -:  783:    * Get the type interface packing.
        -:        -:  784:    */
        -:        -:  785:   enum glsl_interface_packing get_interface_packing() const
        -:        -:  786:   {
        -:        -:  787:      return (enum glsl_interface_packing)interface_packing;
        -:        -:  788:   }
        -:        -:  789:
        -:        -:  790:   /**
        -:        -:  791:    * Check if the type interface is row major
        -:        -:  792:    */
        -:        -:  793:   bool get_interface_row_major() const
        -:        -:  794:   {
        -:        -:  795:      return (bool) interface_row_major;
        -:        -:  796:   }
        -:        -:  797:
        -:        -:  798:private:
        -:        -:  799:
        -:        -:  800:   static mtx_t mutex;
        -:        -:  801:
        -:        -:  802:   /**
        -:        -:  803:    * ralloc context for all glsl_type allocations
        -:        -:  804:    *
        -:        -:  805:    * Set on the first call to \c glsl_type::new.
        -:        -:  806:    */
        -:        -:  807:   static void *mem_ctx;
        -:        -:  808:
        -:        -:  809:   void init_ralloc_type_ctx(void);
        -:        -:  810:
        -:        -:  811:   /** Constructor for vector and matrix types */
        -:        -:  812:   glsl_type(GLenum gl_type,
        -:        -:  813:	     glsl_base_type base_type, unsigned vector_elements,
        -:        -:  814:	     unsigned matrix_columns, const char *name);
        -:        -:  815:
        -:        -:  816:   /** Constructor for sampler or image types */
        -:        -:  817:   glsl_type(GLenum gl_type, glsl_base_type base_type,
        -:        -:  818:	     enum glsl_sampler_dim dim, bool shadow, bool array,
        -:        -:  819:	     unsigned type, const char *name);
        -:        -:  820:
        -:        -:  821:   /** Constructor for record types */
        -:        -:  822:   glsl_type(const glsl_struct_field *fields, unsigned num_fields,
        -:        -:  823:	     const char *name);
        -:        -:  824:
        -:        -:  825:   /** Constructor for interface types */
        -:        -:  826:   glsl_type(const glsl_struct_field *fields, unsigned num_fields,
        -:        -:  827:	     enum glsl_interface_packing packing,
        -:        -:  828:	     bool row_major, const char *name);
        -:        -:  829:
        -:        -:  830:   /** Constructor for interface types */
        -:        -:  831:   glsl_type(const glsl_type *return_type,
        -:        -:  832:             const glsl_function_param *params, unsigned num_params);
        -:        -:  833:
        -:        -:  834:   /** Constructor for array types */
        -:        -:  835:   glsl_type(const glsl_type *array, unsigned length);
        -:        -:  836:
        -:        -:  837:   /** Constructor for subroutine types */
        -:        -:  838:   glsl_type(const char *name);
        -:        -:  839:
        -:        -:  840:   /** Hash table containing the known array types. */
        -:        -:  841:   static struct hash_table *array_types;
        -:        -:  842:
        -:        -:  843:   /** Hash table containing the known record types. */
        -:        -:  844:   static struct hash_table *record_types;
        -:        -:  845:
        -:        -:  846:   /** Hash table containing the known interface types. */
        -:        -:  847:   static struct hash_table *interface_types;
        -:        -:  848:
        -:        -:  849:   /** Hash table containing the known subroutine types. */
        -:        -:  850:   static struct hash_table *subroutine_types;
        -:        -:  851:
        -:        -:  852:   /** Hash table containing the known function types. */
        -:        -:  853:   static struct hash_table *function_types;
        -:        -:  854:
        -:        -:  855:   static bool record_key_compare(const void *a, const void *b);
        -:        -:  856:   static unsigned record_key_hash(const void *key);
        -:        -:  857:
        -:        -:  858:   /**
        -:        -:  859:    * \name Built-in type flyweights
        -:        -:  860:    */
        -:        -:  861:   /*@{*/
        -:        -:  862:#undef  DECL_TYPE
        -:        -:  863:#define DECL_TYPE(NAME, ...) static const glsl_type _##NAME##_type;
        -:        -:  864:#undef  STRUCT_TYPE
        -:        -:  865:#define STRUCT_TYPE(NAME)        static const glsl_type _struct_##NAME##_type;
        -:        -:  866:#include "compiler/builtin_type_macros.h"
        -:        -:  867:   /*@}*/
        -:        -:  868:
        -:        -:  869:   /**
        -:        -:  870:    * \name Friend functions.
        -:        -:  871:    *
        -:        -:  872:    * These functions are friends because they must have C linkage and the
        -:        -:  873:    * need to call various private methods or access various private static
        -:        -:  874:    * data.
        -:        -:  875:    */
        -:        -:  876:   /*@{*/
        -:        -:  877:   friend void _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *);
        -:        -:  878:   friend void _mesa_glsl_release_types(void);
        -:        -:  879:   /*@}*/
        -:        -:  880:};
        -:        -:  881:
        -:        -:  882:#undef DECL_TYPE
        -:        -:  883:#undef STRUCT_TYPE
        -:        -:  884:#endif /* __cplusplus */
        -:        -:  885:
        -:        -:  886:struct glsl_struct_field {
        -:        -:  887:   const struct glsl_type *type;
        -:        -:  888:   const char *name;
        -:        -:  889:
        -:        -:  890:   /**
        -:        -:  891:    * For interface blocks, gl_varying_slot corresponding to the input/output
        -:        -:  892:    * if this is a built-in input/output (i.e. a member of the built-in
        -:        -:  893:    * gl_PerVertex interface block); -1 otherwise.
        -:        -:  894:    *
        -:        -:  895:    * Ignored for structs.
        -:        -:  896:    */
        -:        -:  897:   int location;
        -:        -:  898:
        -:        -:  899:   /**
        -:        -:  900:    * For interface blocks, members may have an explicit byte offset
        -:        -:  901:    * specified; -1 otherwise. Also used for xfb_offset layout qualifier.
        -:        -:  902:    *
        -:        -:  903:    * Unless used for xfb_offset this field is ignored for structs.
        -:        -:  904:    */
        -:        -:  905:   int offset;
        -:        -:  906:
        -:        -:  907:   /**
        -:        -:  908:    * For interface blocks, members may define a transform feedback buffer;
        -:        -:  909:    * -1 otherwise.
        -:        -:  910:    */
        -:        -:  911:   int xfb_buffer;
        -:        -:  912:
        -:        -:  913:   /**
        -:        -:  914:    * For interface blocks, members may define a transform feedback stride;
        -:        -:  915:    * -1 otherwise.
        -:        -:  916:    */
        -:        -:  917:   int xfb_stride;
        -:        -:  918:
        -:        -:  919:   /**
        -:        -:  920:    * For interface blocks, the interpolation mode (as in
        -:        -:  921:    * ir_variable::interpolation).  0 otherwise.
        -:        -:  922:    */
        -:        -:  923:   unsigned interpolation:2;
        -:        -:  924:
        -:        -:  925:   /**
        -:        -:  926:    * For interface blocks, 1 if this variable uses centroid interpolation (as
        -:        -:  927:    * in ir_variable::centroid).  0 otherwise.
        -:        -:  928:    */
        -:        -:  929:   unsigned centroid:1;
        -:        -:  930:
        -:        -:  931:   /**
        -:        -:  932:    * For interface blocks, 1 if this variable uses sample interpolation (as
        -:        -:  933:    * in ir_variable::sample). 0 otherwise.
        -:        -:  934:    */
        -:        -:  935:   unsigned sample:1;
        -:        -:  936:
        -:        -:  937:   /**
        -:        -:  938:    * Layout of the matrix.  Uses glsl_matrix_layout values.
        -:        -:  939:    */
        -:        -:  940:   unsigned matrix_layout:2;
        -:        -:  941:
        -:        -:  942:   /**
        -:        -:  943:    * For interface blocks, 1 if this variable is a per-patch input or output
        -:        -:  944:    * (as in ir_variable::patch). 0 otherwise.
        -:        -:  945:    */
        -:        -:  946:   unsigned patch:1;
        -:        -:  947:
        -:        -:  948:   /**
        -:        -:  949:    * Precision qualifier
        -:        -:  950:    */
        -:        -:  951:   unsigned precision:2;
        -:        -:  952:
        -:        -:  953:   /**
        -:        -:  954:    * Image qualifiers, applicable to buffer variables defined in shader
        -:        -:  955:    * storage buffer objects (SSBOs)
        -:        -:  956:    */
        -:        -:  957:   unsigned image_read_only:1;
        -:        -:  958:   unsigned image_write_only:1;
        -:        -:  959:   unsigned image_coherent:1;
        -:        -:  960:   unsigned image_volatile:1;
        -:        -:  961:   unsigned image_restrict:1;
        -:        -:  962:
        -:        -:  963:   /**
        -:        -:  964:    * Any of the xfb_* qualifiers trigger the shader to be in transform
        -:        -:  965:    * feedback mode so we need to keep track of whether the buffer was
        -:        -:  966:    * explicitly set or if its just been assigned the default global value.
        -:        -:  967:    */
        -:        -:  968:   unsigned explicit_xfb_buffer:1;
        -:        -:  969:
        -:        -:  970:   unsigned implicit_sized_array:1;
        -:        -:  971:#ifdef __cplusplus
        -:        -:  972:   glsl_struct_field(const struct glsl_type *_type, const char *_name)
        -:        -:  973:      : type(_type), name(_name), location(-1), offset(0), xfb_buffer(0),
        -:        -:  974:        xfb_stride(0), interpolation(0), centroid(0),
        -:        -:  975:        sample(0), matrix_layout(GLSL_MATRIX_LAYOUT_INHERITED), patch(0),
        -:        -:  976:        precision(GLSL_PRECISION_NONE), image_read_only(0), image_write_only(0),
        -:        -:  977:        image_coherent(0), image_volatile(0), image_restrict(0),
        -:        -:  978:        explicit_xfb_buffer(0), implicit_sized_array(0)
        -:        -:  979:   {
        -:        -:  980:      /* empty */
        -:        -:  981:   }
        -:        -:  982:
        -:        -:  983:   glsl_struct_field()
        -:        -:  984:   {
        -:        -:  985:      /* empty */
        -:        -:  986:   }
        -:        -:  987:#endif
        -:        -:  988:};
        -:        -:  989:
        -:        -:  990:struct glsl_function_param {
        -:        -:  991:   const struct glsl_type *type;
        -:        -:  992:
        -:        -:  993:   bool in;
        -:        -:  994:   bool out;
        -:        -:  995:};
        -:        -:  996:
        -:        -:  997:static inline unsigned int
        -:        -:  998:glsl_align(unsigned int a, unsigned int align)
        -:        -:  999:{
        -:        -: 1000:   return (a + align - 1) / align * align;
        -:        -: 1001:}
        -:        -: 1002:
        -:        -: 1003:#endif /* GLSL_TYPES_H */

src/mesa/main/glsl_types.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl_types.h
        -:        -:    0:Graph:.libs/shader_query.gcno
        -:        -:    0:Data:.libs/shader_query.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    16889:    16964:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    16889:    16964:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      931:      964:  591:/*EOF*/
        -:        -:  592:/*EOF*/
      931:      964:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
     9151:     9151:  642:/*EOF*/
        -:        -:  643:/*EOF*/
     9151:     9151:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    10607:    10607:  646:/*EOF*/
      728:      728:  647:/*EOF*/
        -:        -:  648:/*EOF*/
     9151:     9151:  649:/*EOF*/

src/mesa/main/.libs/glsl_types.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl_types.h
        -:        -:    0:Graph:shader_query.gcno
        -:        -:    0:Data:shader_query.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    16889:    16964:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    16889:    16964:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
      931:      964:  591:/*EOF*/
        -:        -:  592:/*EOF*/
      931:      964:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
     9151:     9151:  642:/*EOF*/
        -:        -:  643:/*EOF*/
     9151:     9151:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    10607:    10607:  646:/*EOF*/
      728:      728:  647:/*EOF*/
        -:        -:  648:/*EOF*/
     9151:     9151:  649:/*EOF*/

src/mesa/program/glsl_types.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl_types.h
        -:        -:    0:Graph:.libs/ir_to_mesa.gcno
        -:        -:    0:Data:.libs/ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
     7206:     7597:  448:/*EOF*/
        -:        -:  449:/*EOF*/
     7206:     7597:  450:/*EOF*/
     3254:     3546:  451:/*EOF*/
     3254:     3546:  452:/*EOF*/
    10460:    11143:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
      134:      134:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      134:      134:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
       52:       52:  674:/*EOF*/
        -:        -:  675:/*EOF*/
       52:       52:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
       52:       52:  678:/*EOF*/
        7:        7:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       45:       45:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
       45:       45:  687:/*EOF*/
        -:        -:  688:/*EOF*/
       45:       45:  689:/*EOF*/

src/mesa/program/hash_table.h.gcov

        -:        -:    0:Source:mesa/program/../../util/hash_table.h
        -:        -:    0:Graph:.libs/symbol_table.gcno
        -:        -:    0:Data:.libs/symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
     4099:     4103:  101:/*EOF*/
        -:        -:  102:/*EOF*/
     4099:     4103:  103:/*EOF*/

src/mesa/program/ir.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl/ir.h
        -:        -:    0:Graph:.libs/ir_to_mesa.gcno
        -:        -:    0:Data:.libs/ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      516:      536:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      996:     1036:  125:/*EOF*/
      996:     1036:  126:/*EOF*/
      996:     1036:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      516:      536:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
     4852:     4917:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     2057:     2119:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      147:      152:  177:/*EOF*/
     9823:    10376:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
     2854:     2982:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      372:      378:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      559:      571:  439:/*EOF*/
      557:      563:  440:/*EOF*/
      557:      563:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
     2175:     2175:  472:/*EOF*/
        -:        -:  473:/*EOF*/
     2175:     2175:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
      153:      153:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      153:      153:  557:/*EOF*/
      153:      153:  558:/*EOF*/
      153:      153:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
      288:      288:  569:/*EOF*/
        -:        -:  570:/*EOF*/
      288:      288:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    34511:    37680: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    34511:    37680: 1520:/*EOF*/
    34511:    37680: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
      127:      132: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
      127:      132: 1666:/*EOF*/

src/mesa/program/.libs/glsl_types.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl_types.h
        -:        -:    0:Graph:ir_to_mesa.gcno
        -:        -:    0:Data:ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
    #####:    #####:   71:/*EOF*/
        -:        -:   72:/*EOF*/
    #####:    #####:   73:/*EOF*/
    #####:    #####:   74:/*EOF*/
    #####:    #####:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
    #####:    #####:  438:/*EOF*/
        -:        -:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
     7206:     7597:  448:/*EOF*/
        -:        -:  449:/*EOF*/
     7206:     7597:  450:/*EOF*/
     3254:     3546:  451:/*EOF*/
     3254:     3546:  452:/*EOF*/
    10460:    11143:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
    #####:    #####:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
    #####:    #####:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
      134:      134:  476:/*EOF*/
        -:        -:  477:/*EOF*/
      134:      134:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
    #####:    #####:  537:/*EOF*/
        -:        -:  538:/*EOF*/
    #####:    #####:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
    #####:    #####:  545:/*EOF*/
        -:        -:  546:/*EOF*/
    #####:    #####:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
    #####:    #####:  578:/*EOF*/
        -:        -:  579:/*EOF*/
    #####:    #####:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
    #####:    #####:  591:/*EOF*/
        -:        -:  592:/*EOF*/
    #####:    #####:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
    #####:    #####:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
    #####:    #####:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
        -:        -:  648:/*EOF*/
    #####:    #####:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
       52:       52:  674:/*EOF*/
        -:        -:  675:/*EOF*/
       52:       52:  676:/*EOF*/
    #####:    #####:  677:/*EOF*/
       52:       52:  678:/*EOF*/
        7:        7:  679:/*EOF*/
        -:        -:  680:/*EOF*/
       45:       45:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
       45:       45:  687:/*EOF*/
        -:        -:  688:/*EOF*/
       45:       45:  689:/*EOF*/

src/mesa/program/.libs/hash_table.h.gcov

        -:        -:    0:Source:mesa/program/../../util/hash_table.h
        -:        -:    0:Graph:symbol_table.gcno
        -:        -:    0:Data:symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
     4099:     4103:  101:/*EOF*/
        -:        -:  102:/*EOF*/
     4099:     4103:  103:/*EOF*/

src/mesa/program/.libs/ir.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl/ir.h
        -:        -:    0:Graph:ir_to_mesa.gcno
        -:        -:    0:Data:ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
      516:      536:  123:/*EOF*/
        -:        -:  124:/*EOF*/
      996:     1036:  125:/*EOF*/
      996:     1036:  126:/*EOF*/
      996:     1036:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
      516:      536:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
     4852:     4917:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     2057:     2119:  175:/*EOF*/
        -:        -:  176:/*EOF*/
      147:      152:  177:/*EOF*/
     9823:    10376:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
     2854:     2982:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
      372:      378:  437:/*EOF*/
        -:        -:  438:/*EOF*/
      559:      571:  439:/*EOF*/
      557:      563:  440:/*EOF*/
      557:      563:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
     2175:     2175:  472:/*EOF*/
        -:        -:  473:/*EOF*/
     2175:     2175:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
      153:      153:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      153:      153:  557:/*EOF*/
      153:      153:  558:/*EOF*/
      153:      153:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
      288:      288:  569:/*EOF*/
        -:        -:  570:/*EOF*/
      288:      288:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
        -:        -:  603:/*EOF*/
        -:        -:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
        -:        -:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
        -:        -:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
        -:        -:  640:/*EOF*/
        -:        -:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
        -:        -:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
        -:        -:  655:/*EOF*/
        -:        -:  656:/*EOF*/
        -:        -:  657:/*EOF*/
        -:        -:  658:/*EOF*/
        -:        -:  659:/*EOF*/
        -:        -:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
        -:        -:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
        -:        -:  690:/*EOF*/
        -:        -:  691:/*EOF*/
        -:        -:  692:/*EOF*/
        -:        -:  693:/*EOF*/
        -:        -:  694:/*EOF*/
        -:        -:  695:/*EOF*/
        -:        -:  696:/*EOF*/
        -:        -:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
        -:        -:  709:/*EOF*/
        -:        -:  710:/*EOF*/
        -:        -:  711:/*EOF*/
        -:        -:  712:/*EOF*/
        -:        -:  713:/*EOF*/
        -:        -:  714:/*EOF*/
        -:        -:  715:/*EOF*/
        -:        -:  716:/*EOF*/
        -:        -:  717:/*EOF*/
        -:        -:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
        -:        -:  723:/*EOF*/
        -:        -:  724:/*EOF*/
        -:        -:  725:/*EOF*/
        -:        -:  726:/*EOF*/
        -:        -:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
        -:        -:  731:/*EOF*/
        -:        -:  732:/*EOF*/
        -:        -:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
        -:        -:  736:/*EOF*/
        -:        -:  737:/*EOF*/
        -:        -:  738:/*EOF*/
        -:        -:  739:/*EOF*/
        -:        -:  740:/*EOF*/
        -:        -:  741:/*EOF*/
        -:        -:  742:/*EOF*/
        -:        -:  743:/*EOF*/
        -:        -:  744:/*EOF*/
        -:        -:  745:/*EOF*/
        -:        -:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
        -:        -:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
        -:        -:  759:/*EOF*/
        -:        -:  760:/*EOF*/
        -:        -:  761:/*EOF*/
        -:        -:  762:/*EOF*/
        -:        -:  763:/*EOF*/
        -:        -:  764:/*EOF*/
        -:        -:  765:/*EOF*/
        -:        -:  766:/*EOF*/
        -:        -:  767:/*EOF*/
        -:        -:  768:/*EOF*/
        -:        -:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
        -:        -:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
        -:        -:  777:/*EOF*/
        -:        -:  778:/*EOF*/
        -:        -:  779:/*EOF*/
        -:        -:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
        -:        -:  784:/*EOF*/
        -:        -:  785:/*EOF*/
        -:        -:  786:/*EOF*/
        -:        -:  787:/*EOF*/
        -:        -:  788:/*EOF*/
        -:        -:  789:/*EOF*/
        -:        -:  790:/*EOF*/
        -:        -:  791:/*EOF*/
        -:        -:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
        -:        -:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
        -:        -:  800:/*EOF*/
        -:        -:  801:/*EOF*/
        -:        -:  802:/*EOF*/
        -:        -:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
        -:        -:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
        -:        -:  810:/*EOF*/
        -:        -:  811:/*EOF*/
        -:        -:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
        -:        -:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
        -:        -:  821:/*EOF*/
        -:        -:  822:/*EOF*/
        -:        -:  823:/*EOF*/
        -:        -:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
        -:        -:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
        -:        -:  834:/*EOF*/
        -:        -:  835:/*EOF*/
        -:        -:  836:/*EOF*/
        -:        -:  837:/*EOF*/
        -:        -:  838:/*EOF*/
        -:        -:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
        -:        -:  842:/*EOF*/
        -:        -:  843:/*EOF*/
        -:        -:  844:/*EOF*/
        -:        -:  845:/*EOF*/
        -:        -:  846:/*EOF*/
        -:        -:  847:/*EOF*/
        -:        -:  848:/*EOF*/
        -:        -:  849:/*EOF*/
        -:        -:  850:/*EOF*/
        -:        -:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
        -:        -:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
        -:        -:  860:/*EOF*/
        -:        -:  861:/*EOF*/
        -:        -:  862:/*EOF*/
        -:        -:  863:/*EOF*/
        -:        -:  864:/*EOF*/
        -:        -:  865:/*EOF*/
        -:        -:  866:/*EOF*/
        -:        -:  867:/*EOF*/
        -:        -:  868:/*EOF*/
        -:        -:  869:/*EOF*/
        -:        -:  870:/*EOF*/
        -:        -:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
        -:        -:  875:/*EOF*/
        -:        -:  876:/*EOF*/
        -:        -:  877:/*EOF*/
        -:        -:  878:/*EOF*/
        -:        -:  879:/*EOF*/
        -:        -:  880:/*EOF*/
        -:        -:  881:/*EOF*/
        -:        -:  882:/*EOF*/
        -:        -:  883:/*EOF*/
        -:        -:  884:/*EOF*/
        -:        -:  885:/*EOF*/
        -:        -:  886:/*EOF*/
        -:        -:  887:/*EOF*/
        -:        -:  888:/*EOF*/
        -:        -:  889:/*EOF*/
        -:        -:  890:/*EOF*/
        -:        -:  891:/*EOF*/
        -:        -:  892:/*EOF*/
        -:        -:  893:/*EOF*/
        -:        -:  894:/*EOF*/
        -:        -:  895:/*EOF*/
        -:        -:  896:/*EOF*/
        -:        -:  897:/*EOF*/
        -:        -:  898:/*EOF*/
        -:        -:  899:/*EOF*/
        -:        -:  900:/*EOF*/
        -:        -:  901:/*EOF*/
        -:        -:  902:/*EOF*/
        -:        -:  903:/*EOF*/
        -:        -:  904:/*EOF*/
        -:        -:  905:/*EOF*/
        -:        -:  906:/*EOF*/
        -:        -:  907:/*EOF*/
        -:        -:  908:/*EOF*/
        -:        -:  909:/*EOF*/
        -:        -:  910:/*EOF*/
        -:        -:  911:/*EOF*/
        -:        -:  912:/*EOF*/
        -:        -:  913:/*EOF*/
        -:        -:  914:/*EOF*/
        -:        -:  915:/*EOF*/
        -:        -:  916:/*EOF*/
        -:        -:  917:/*EOF*/
        -:        -:  918:/*EOF*/
        -:        -:  919:/*EOF*/
        -:        -:  920:/*EOF*/
        -:        -:  921:/*EOF*/
        -:        -:  922:/*EOF*/
        -:        -:  923:/*EOF*/
        -:        -:  924:/*EOF*/
        -:        -:  925:/*EOF*/
        -:        -:  926:/*EOF*/
        -:        -:  927:/*EOF*/
        -:        -:  928:/*EOF*/
        -:        -:  929:/*EOF*/
        -:        -:  930:/*EOF*/
        -:        -:  931:/*EOF*/
        -:        -:  932:/*EOF*/
        -:        -:  933:/*EOF*/
        -:        -:  934:/*EOF*/
        -:        -:  935:/*EOF*/
        -:        -:  936:/*EOF*/
        -:        -:  937:/*EOF*/
        -:        -:  938:/*EOF*/
        -:        -:  939:/*EOF*/
        -:        -:  940:/*EOF*/
        -:        -:  941:/*EOF*/
        -:        -:  942:/*EOF*/
        -:        -:  943:/*EOF*/
        -:        -:  944:/*EOF*/
        -:        -:  945:/*EOF*/
        -:        -:  946:/*EOF*/
        -:        -:  947:/*EOF*/
        -:        -:  948:/*EOF*/
        -:        -:  949:/*EOF*/
        -:        -:  950:/*EOF*/
        -:        -:  951:/*EOF*/
        -:        -:  952:/*EOF*/
        -:        -:  953:/*EOF*/
        -:        -:  954:/*EOF*/
        -:        -:  955:/*EOF*/
        -:        -:  956:/*EOF*/
        -:        -:  957:/*EOF*/
        -:        -:  958:/*EOF*/
        -:        -:  959:/*EOF*/
        -:        -:  960:/*EOF*/
        -:        -:  961:/*EOF*/
        -:        -:  962:/*EOF*/
        -:        -:  963:/*EOF*/
        -:        -:  964:/*EOF*/
        -:        -:  965:/*EOF*/
        -:        -:  966:/*EOF*/
        -:        -:  967:/*EOF*/
        -:        -:  968:/*EOF*/
        -:        -:  969:/*EOF*/
        -:        -:  970:/*EOF*/
        -:        -:  971:/*EOF*/
        -:        -:  972:/*EOF*/
        -:        -:  973:/*EOF*/
        -:        -:  974:/*EOF*/
        -:        -:  975:/*EOF*/
        -:        -:  976:/*EOF*/
        -:        -:  977:/*EOF*/
        -:        -:  978:/*EOF*/
        -:        -:  979:/*EOF*/
        -:        -:  980:/*EOF*/
        -:        -:  981:/*EOF*/
        -:        -:  982:/*EOF*/
        -:        -:  983:/*EOF*/
        -:        -:  984:/*EOF*/
        -:        -:  985:/*EOF*/
        -:        -:  986:/*EOF*/
        -:        -:  987:/*EOF*/
        -:        -:  988:/*EOF*/
        -:        -:  989:/*EOF*/
        -:        -:  990:/*EOF*/
        -:        -:  991:/*EOF*/
        -:        -:  992:/*EOF*/
        -:        -:  993:/*EOF*/
        -:        -:  994:/*EOF*/
        -:        -:  995:/*EOF*/
        -:        -:  996:/*EOF*/
        -:        -:  997:/*EOF*/
        -:        -:  998:/*EOF*/
        -:        -:  999:/*EOF*/
        -:        -: 1000:/*EOF*/
        -:        -: 1001:/*EOF*/
        -:        -: 1002:/*EOF*/
        -:        -: 1003:/*EOF*/
        -:        -: 1004:/*EOF*/
        -:        -: 1005:/*EOF*/
        -:        -: 1006:/*EOF*/
        -:        -: 1007:/*EOF*/
        -:        -: 1008:/*EOF*/
        -:        -: 1009:/*EOF*/
        -:        -: 1010:/*EOF*/
        -:        -: 1011:/*EOF*/
        -:        -: 1012:/*EOF*/
        -:        -: 1013:/*EOF*/
        -:        -: 1014:/*EOF*/
        -:        -: 1015:/*EOF*/
        -:        -: 1016:/*EOF*/
        -:        -: 1017:/*EOF*/
        -:        -: 1018:/*EOF*/
        -:        -: 1019:/*EOF*/
        -:        -: 1020:/*EOF*/
        -:        -: 1021:/*EOF*/
        -:        -: 1022:/*EOF*/
        -:        -: 1023:/*EOF*/
        -:        -: 1024:/*EOF*/
        -:        -: 1025:/*EOF*/
        -:        -: 1026:/*EOF*/
        -:        -: 1027:/*EOF*/
        -:        -: 1028:/*EOF*/
        -:        -: 1029:/*EOF*/
        -:        -: 1030:/*EOF*/
        -:        -: 1031:/*EOF*/
        -:        -: 1032:/*EOF*/
        -:        -: 1033:/*EOF*/
        -:        -: 1034:/*EOF*/
        -:        -: 1035:/*EOF*/
        -:        -: 1036:/*EOF*/
        -:        -: 1037:/*EOF*/
        -:        -: 1038:/*EOF*/
        -:        -: 1039:/*EOF*/
        -:        -: 1040:/*EOF*/
        -:        -: 1041:/*EOF*/
        -:        -: 1042:/*EOF*/
        -:        -: 1043:/*EOF*/
        -:        -: 1044:/*EOF*/
        -:        -: 1045:/*EOF*/
        -:        -: 1046:/*EOF*/
        -:        -: 1047:/*EOF*/
        -:        -: 1048:/*EOF*/
        -:        -: 1049:/*EOF*/
        -:        -: 1050:/*EOF*/
        -:        -: 1051:/*EOF*/
        -:        -: 1052:/*EOF*/
        -:        -: 1053:/*EOF*/
        -:        -: 1054:/*EOF*/
        -:        -: 1055:/*EOF*/
        -:        -: 1056:/*EOF*/
        -:        -: 1057:/*EOF*/
        -:        -: 1058:/*EOF*/
        -:        -: 1059:/*EOF*/
        -:        -: 1060:/*EOF*/
        -:        -: 1061:/*EOF*/
        -:        -: 1062:/*EOF*/
        -:        -: 1063:/*EOF*/
        -:        -: 1064:/*EOF*/
        -:        -: 1065:/*EOF*/
        -:        -: 1066:/*EOF*/
        -:        -: 1067:/*EOF*/
        -:        -: 1068:/*EOF*/
        -:        -: 1069:/*EOF*/
        -:        -: 1070:/*EOF*/
        -:        -: 1071:/*EOF*/
        -:        -: 1072:/*EOF*/
        -:        -: 1073:/*EOF*/
        -:        -: 1074:/*EOF*/
        -:        -: 1075:/*EOF*/
        -:        -: 1076:/*EOF*/
        -:        -: 1077:/*EOF*/
        -:        -: 1078:/*EOF*/
        -:        -: 1079:/*EOF*/
        -:        -: 1080:/*EOF*/
        -:        -: 1081:/*EOF*/
        -:        -: 1082:/*EOF*/
        -:        -: 1083:/*EOF*/
        -:        -: 1084:/*EOF*/
        -:        -: 1085:/*EOF*/
        -:        -: 1086:/*EOF*/
        -:        -: 1087:/*EOF*/
        -:        -: 1088:/*EOF*/
        -:        -: 1089:/*EOF*/
        -:        -: 1090:/*EOF*/
        -:        -: 1091:/*EOF*/
        -:        -: 1092:/*EOF*/
        -:        -: 1093:/*EOF*/
        -:        -: 1094:/*EOF*/
        -:        -: 1095:/*EOF*/
        -:        -: 1096:/*EOF*/
        -:        -: 1097:/*EOF*/
        -:        -: 1098:/*EOF*/
        -:        -: 1099:/*EOF*/
        -:        -: 1100:/*EOF*/
        -:        -: 1101:/*EOF*/
        -:        -: 1102:/*EOF*/
        -:        -: 1103:/*EOF*/
        -:        -: 1104:/*EOF*/
        -:        -: 1105:/*EOF*/
        -:        -: 1106:/*EOF*/
        -:        -: 1107:/*EOF*/
        -:        -: 1108:/*EOF*/
        -:        -: 1109:/*EOF*/
        -:        -: 1110:/*EOF*/
        -:        -: 1111:/*EOF*/
        -:        -: 1112:/*EOF*/
        -:        -: 1113:/*EOF*/
        -:        -: 1114:/*EOF*/
        -:        -: 1115:/*EOF*/
        -:        -: 1116:/*EOF*/
        -:        -: 1117:/*EOF*/
        -:        -: 1118:/*EOF*/
        -:        -: 1119:/*EOF*/
        -:        -: 1120:/*EOF*/
        -:        -: 1121:/*EOF*/
        -:        -: 1122:/*EOF*/
        -:        -: 1123:/*EOF*/
        -:        -: 1124:/*EOF*/
        -:        -: 1125:/*EOF*/
        -:        -: 1126:/*EOF*/
        -:        -: 1127:/*EOF*/
        -:        -: 1128:/*EOF*/
        -:        -: 1129:/*EOF*/
        -:        -: 1130:/*EOF*/
        -:        -: 1131:/*EOF*/
        -:        -: 1132:/*EOF*/
        -:        -: 1133:/*EOF*/
        -:        -: 1134:/*EOF*/
        -:        -: 1135:/*EOF*/
        -:        -: 1136:/*EOF*/
        -:        -: 1137:/*EOF*/
        -:        -: 1138:/*EOF*/
        -:        -: 1139:/*EOF*/
        -:        -: 1140:/*EOF*/
        -:        -: 1141:/*EOF*/
        -:        -: 1142:/*EOF*/
        -:        -: 1143:/*EOF*/
        -:        -: 1144:/*EOF*/
        -:        -: 1145:/*EOF*/
        -:        -: 1146:/*EOF*/
        -:        -: 1147:/*EOF*/
        -:        -: 1148:/*EOF*/
        -:        -: 1149:/*EOF*/
        -:        -: 1150:/*EOF*/
        -:        -: 1151:/*EOF*/
        -:        -: 1152:/*EOF*/
        -:        -: 1153:/*EOF*/
        -:        -: 1154:/*EOF*/
        -:        -: 1155:/*EOF*/
        -:        -: 1156:/*EOF*/
        -:        -: 1157:/*EOF*/
        -:        -: 1158:/*EOF*/
        -:        -: 1159:/*EOF*/
        -:        -: 1160:/*EOF*/
        -:        -: 1161:/*EOF*/
        -:        -: 1162:/*EOF*/
        -:        -: 1163:/*EOF*/
        -:        -: 1164:/*EOF*/
        -:        -: 1165:/*EOF*/
        -:        -: 1166:/*EOF*/
        -:        -: 1167:/*EOF*/
        -:        -: 1168:/*EOF*/
        -:        -: 1169:/*EOF*/
        -:        -: 1170:/*EOF*/
        -:        -: 1171:/*EOF*/
        -:        -: 1172:/*EOF*/
        -:        -: 1173:/*EOF*/
        -:        -: 1174:/*EOF*/
        -:        -: 1175:/*EOF*/
        -:        -: 1176:/*EOF*/
        -:        -: 1177:/*EOF*/
        -:        -: 1178:/*EOF*/
        -:        -: 1179:/*EOF*/
        -:        -: 1180:/*EOF*/
        -:        -: 1181:/*EOF*/
        -:        -: 1182:/*EOF*/
        -:        -: 1183:/*EOF*/
        -:        -: 1184:/*EOF*/
        -:        -: 1185:/*EOF*/
        -:        -: 1186:/*EOF*/
        -:        -: 1187:/*EOF*/
        -:        -: 1188:/*EOF*/
        -:        -: 1189:/*EOF*/
        -:        -: 1190:/*EOF*/
        -:        -: 1191:/*EOF*/
        -:        -: 1192:/*EOF*/
        -:        -: 1193:/*EOF*/
        -:        -: 1194:/*EOF*/
        -:        -: 1195:/*EOF*/
        -:        -: 1196:/*EOF*/
        -:        -: 1197:/*EOF*/
        -:        -: 1198:/*EOF*/
        -:        -: 1199:/*EOF*/
        -:        -: 1200:/*EOF*/
        -:        -: 1201:/*EOF*/
        -:        -: 1202:/*EOF*/
        -:        -: 1203:/*EOF*/
        -:        -: 1204:/*EOF*/
        -:        -: 1205:/*EOF*/
        -:        -: 1206:/*EOF*/
        -:        -: 1207:/*EOF*/
        -:        -: 1208:/*EOF*/
        -:        -: 1209:/*EOF*/
        -:        -: 1210:/*EOF*/
        -:        -: 1211:/*EOF*/
        -:        -: 1212:/*EOF*/
        -:        -: 1213:/*EOF*/
        -:        -: 1214:/*EOF*/
        -:        -: 1215:/*EOF*/
        -:        -: 1216:/*EOF*/
        -:        -: 1217:/*EOF*/
        -:        -: 1218:/*EOF*/
        -:        -: 1219:/*EOF*/
        -:        -: 1220:/*EOF*/
        -:        -: 1221:/*EOF*/
        -:        -: 1222:/*EOF*/
        -:        -: 1223:/*EOF*/
        -:        -: 1224:/*EOF*/
        -:        -: 1225:/*EOF*/
        -:        -: 1226:/*EOF*/
        -:        -: 1227:/*EOF*/
        -:        -: 1228:/*EOF*/
        -:        -: 1229:/*EOF*/
        -:        -: 1230:/*EOF*/
        -:        -: 1231:/*EOF*/
        -:        -: 1232:/*EOF*/
        -:        -: 1233:/*EOF*/
        -:        -: 1234:/*EOF*/
        -:        -: 1235:/*EOF*/
        -:        -: 1236:/*EOF*/
        -:        -: 1237:/*EOF*/
        -:        -: 1238:/*EOF*/
        -:        -: 1239:/*EOF*/
        -:        -: 1240:/*EOF*/
        -:        -: 1241:/*EOF*/
        -:        -: 1242:/*EOF*/
        -:        -: 1243:/*EOF*/
        -:        -: 1244:/*EOF*/
        -:        -: 1245:/*EOF*/
        -:        -: 1246:/*EOF*/
        -:        -: 1247:/*EOF*/
        -:        -: 1248:/*EOF*/
        -:        -: 1249:/*EOF*/
        -:        -: 1250:/*EOF*/
        -:        -: 1251:/*EOF*/
        -:        -: 1252:/*EOF*/
        -:        -: 1253:/*EOF*/
        -:        -: 1254:/*EOF*/
        -:        -: 1255:/*EOF*/
        -:        -: 1256:/*EOF*/
        -:        -: 1257:/*EOF*/
        -:        -: 1258:/*EOF*/
        -:        -: 1259:/*EOF*/
        -:        -: 1260:/*EOF*/
        -:        -: 1261:/*EOF*/
        -:        -: 1262:/*EOF*/
        -:        -: 1263:/*EOF*/
        -:        -: 1264:/*EOF*/
        -:        -: 1265:/*EOF*/
        -:        -: 1266:/*EOF*/
        -:        -: 1267:/*EOF*/
        -:        -: 1268:/*EOF*/
        -:        -: 1269:/*EOF*/
        -:        -: 1270:/*EOF*/
        -:        -: 1271:/*EOF*/
        -:        -: 1272:/*EOF*/
        -:        -: 1273:/*EOF*/
        -:        -: 1274:/*EOF*/
        -:        -: 1275:/*EOF*/
        -:        -: 1276:/*EOF*/
        -:        -: 1277:/*EOF*/
        -:        -: 1278:/*EOF*/
        -:        -: 1279:/*EOF*/
        -:        -: 1280:/*EOF*/
        -:        -: 1281:/*EOF*/
        -:        -: 1282:/*EOF*/
        -:        -: 1283:/*EOF*/
        -:        -: 1284:/*EOF*/
        -:        -: 1285:/*EOF*/
        -:        -: 1286:/*EOF*/
        -:        -: 1287:/*EOF*/
        -:        -: 1288:/*EOF*/
        -:        -: 1289:/*EOF*/
        -:        -: 1290:/*EOF*/
        -:        -: 1291:/*EOF*/
        -:        -: 1292:/*EOF*/
        -:        -: 1293:/*EOF*/
        -:        -: 1294:/*EOF*/
        -:        -: 1295:/*EOF*/
        -:        -: 1296:/*EOF*/
        -:        -: 1297:/*EOF*/
        -:        -: 1298:/*EOF*/
        -:        -: 1299:/*EOF*/
        -:        -: 1300:/*EOF*/
        -:        -: 1301:/*EOF*/
        -:        -: 1302:/*EOF*/
        -:        -: 1303:/*EOF*/
        -:        -: 1304:/*EOF*/
        -:        -: 1305:/*EOF*/
        -:        -: 1306:/*EOF*/
        -:        -: 1307:/*EOF*/
        -:        -: 1308:/*EOF*/
        -:        -: 1309:/*EOF*/
        -:        -: 1310:/*EOF*/
        -:        -: 1311:/*EOF*/
        -:        -: 1312:/*EOF*/
        -:        -: 1313:/*EOF*/
        -:        -: 1314:/*EOF*/
        -:        -: 1315:/*EOF*/
        -:        -: 1316:/*EOF*/
        -:        -: 1317:/*EOF*/
        -:        -: 1318:/*EOF*/
        -:        -: 1319:/*EOF*/
        -:        -: 1320:/*EOF*/
        -:        -: 1321:/*EOF*/
        -:        -: 1322:/*EOF*/
        -:        -: 1323:/*EOF*/
        -:        -: 1324:/*EOF*/
        -:        -: 1325:/*EOF*/
        -:        -: 1326:/*EOF*/
        -:        -: 1327:/*EOF*/
        -:        -: 1328:/*EOF*/
        -:        -: 1329:/*EOF*/
        -:        -: 1330:/*EOF*/
        -:        -: 1331:/*EOF*/
        -:        -: 1332:/*EOF*/
        -:        -: 1333:/*EOF*/
        -:        -: 1334:/*EOF*/
        -:        -: 1335:/*EOF*/
        -:        -: 1336:/*EOF*/
        -:        -: 1337:/*EOF*/
        -:        -: 1338:/*EOF*/
        -:        -: 1339:/*EOF*/
        -:        -: 1340:/*EOF*/
        -:        -: 1341:/*EOF*/
        -:        -: 1342:/*EOF*/
        -:        -: 1343:/*EOF*/
        -:        -: 1344:/*EOF*/
        -:        -: 1345:/*EOF*/
        -:        -: 1346:/*EOF*/
        -:        -: 1347:/*EOF*/
        -:        -: 1348:/*EOF*/
        -:        -: 1349:/*EOF*/
        -:        -: 1350:/*EOF*/
        -:        -: 1351:/*EOF*/
        -:        -: 1352:/*EOF*/
        -:        -: 1353:/*EOF*/
        -:        -: 1354:/*EOF*/
        -:        -: 1355:/*EOF*/
        -:        -: 1356:/*EOF*/
        -:        -: 1357:/*EOF*/
        -:        -: 1358:/*EOF*/
        -:        -: 1359:/*EOF*/
        -:        -: 1360:/*EOF*/
        -:        -: 1361:/*EOF*/
        -:        -: 1362:/*EOF*/
        -:        -: 1363:/*EOF*/
        -:        -: 1364:/*EOF*/
        -:        -: 1365:/*EOF*/
        -:        -: 1366:/*EOF*/
        -:        -: 1367:/*EOF*/
        -:        -: 1368:/*EOF*/
        -:        -: 1369:/*EOF*/
        -:        -: 1370:/*EOF*/
        -:        -: 1371:/*EOF*/
        -:        -: 1372:/*EOF*/
        -:        -: 1373:/*EOF*/
        -:        -: 1374:/*EOF*/
        -:        -: 1375:/*EOF*/
        -:        -: 1376:/*EOF*/
        -:        -: 1377:/*EOF*/
        -:        -: 1378:/*EOF*/
        -:        -: 1379:/*EOF*/
        -:        -: 1380:/*EOF*/
        -:        -: 1381:/*EOF*/
        -:        -: 1382:/*EOF*/
        -:        -: 1383:/*EOF*/
        -:        -: 1384:/*EOF*/
        -:        -: 1385:/*EOF*/
        -:        -: 1386:/*EOF*/
        -:        -: 1387:/*EOF*/
        -:        -: 1388:/*EOF*/
        -:        -: 1389:/*EOF*/
        -:        -: 1390:/*EOF*/
        -:        -: 1391:/*EOF*/
        -:        -: 1392:/*EOF*/
        -:        -: 1393:/*EOF*/
        -:        -: 1394:/*EOF*/
        -:        -: 1395:/*EOF*/
        -:        -: 1396:/*EOF*/
        -:        -: 1397:/*EOF*/
        -:        -: 1398:/*EOF*/
        -:        -: 1399:/*EOF*/
        -:        -: 1400:/*EOF*/
        -:        -: 1401:/*EOF*/
        -:        -: 1402:/*EOF*/
        -:        -: 1403:/*EOF*/
        -:        -: 1404:/*EOF*/
        -:        -: 1405:/*EOF*/
        -:        -: 1406:/*EOF*/
        -:        -: 1407:/*EOF*/
        -:        -: 1408:/*EOF*/
        -:        -: 1409:/*EOF*/
        -:        -: 1410:/*EOF*/
        -:        -: 1411:/*EOF*/
        -:        -: 1412:/*EOF*/
        -:        -: 1413:/*EOF*/
        -:        -: 1414:/*EOF*/
        -:        -: 1415:/*EOF*/
        -:        -: 1416:/*EOF*/
        -:        -: 1417:/*EOF*/
        -:        -: 1418:/*EOF*/
        -:        -: 1419:/*EOF*/
        -:        -: 1420:/*EOF*/
        -:        -: 1421:/*EOF*/
        -:        -: 1422:/*EOF*/
        -:        -: 1423:/*EOF*/
        -:        -: 1424:/*EOF*/
        -:        -: 1425:/*EOF*/
        -:        -: 1426:/*EOF*/
        -:        -: 1427:/*EOF*/
        -:        -: 1428:/*EOF*/
        -:        -: 1429:/*EOF*/
        -:        -: 1430:/*EOF*/
        -:        -: 1431:/*EOF*/
        -:        -: 1432:/*EOF*/
        -:        -: 1433:/*EOF*/
        -:        -: 1434:/*EOF*/
        -:        -: 1435:/*EOF*/
        -:        -: 1436:/*EOF*/
        -:        -: 1437:/*EOF*/
        -:        -: 1438:/*EOF*/
        -:        -: 1439:/*EOF*/
        -:        -: 1440:/*EOF*/
        -:        -: 1441:/*EOF*/
        -:        -: 1442:/*EOF*/
        -:        -: 1443:/*EOF*/
        -:        -: 1444:/*EOF*/
        -:        -: 1445:/*EOF*/
        -:        -: 1446:/*EOF*/
        -:        -: 1447:/*EOF*/
        -:        -: 1448:/*EOF*/
        -:        -: 1449:/*EOF*/
        -:        -: 1450:/*EOF*/
        -:        -: 1451:/*EOF*/
        -:        -: 1452:/*EOF*/
        -:        -: 1453:/*EOF*/
        -:        -: 1454:/*EOF*/
        -:        -: 1455:/*EOF*/
        -:        -: 1456:/*EOF*/
        -:        -: 1457:/*EOF*/
        -:        -: 1458:/*EOF*/
        -:        -: 1459:/*EOF*/
        -:        -: 1460:/*EOF*/
        -:        -: 1461:/*EOF*/
        -:        -: 1462:/*EOF*/
        -:        -: 1463:/*EOF*/
        -:        -: 1464:/*EOF*/
        -:        -: 1465:/*EOF*/
        -:        -: 1466:/*EOF*/
        -:        -: 1467:/*EOF*/
        -:        -: 1468:/*EOF*/
        -:        -: 1469:/*EOF*/
        -:        -: 1470:/*EOF*/
        -:        -: 1471:/*EOF*/
        -:        -: 1472:/*EOF*/
        -:        -: 1473:/*EOF*/
        -:        -: 1474:/*EOF*/
        -:        -: 1475:/*EOF*/
        -:        -: 1476:/*EOF*/
        -:        -: 1477:/*EOF*/
        -:        -: 1478:/*EOF*/
        -:        -: 1479:/*EOF*/
        -:        -: 1480:/*EOF*/
        -:        -: 1481:/*EOF*/
        -:        -: 1482:/*EOF*/
        -:        -: 1483:/*EOF*/
        -:        -: 1484:/*EOF*/
        -:        -: 1485:/*EOF*/
        -:        -: 1486:/*EOF*/
        -:        -: 1487:/*EOF*/
        -:        -: 1488:/*EOF*/
        -:        -: 1489:/*EOF*/
        -:        -: 1490:/*EOF*/
        -:        -: 1491:/*EOF*/
        -:        -: 1492:/*EOF*/
        -:        -: 1493:/*EOF*/
        -:        -: 1494:/*EOF*/
        -:        -: 1495:/*EOF*/
        -:        -: 1496:/*EOF*/
        -:        -: 1497:/*EOF*/
        -:        -: 1498:/*EOF*/
        -:        -: 1499:/*EOF*/
        -:        -: 1500:/*EOF*/
        -:        -: 1501:/*EOF*/
        -:        -: 1502:/*EOF*/
        -:        -: 1503:/*EOF*/
        -:        -: 1504:/*EOF*/
        -:        -: 1505:/*EOF*/
        -:        -: 1506:/*EOF*/
        -:        -: 1507:/*EOF*/
        -:        -: 1508:/*EOF*/
        -:        -: 1509:/*EOF*/
        -:        -: 1510:/*EOF*/
        -:        -: 1511:/*EOF*/
        -:        -: 1512:/*EOF*/
        -:        -: 1513:/*EOF*/
        -:        -: 1514:/*EOF*/
        -:        -: 1515:/*EOF*/
        -:        -: 1516:/*EOF*/
        -:        -: 1517:/*EOF*/
    34511:    37680: 1518:/*EOF*/
        -:        -: 1519:/*EOF*/
    34511:    37680: 1520:/*EOF*/
    34511:    37680: 1521:/*EOF*/
        -:        -: 1522:/*EOF*/
        -:        -: 1523:/*EOF*/
        -:        -: 1524:/*EOF*/
        -:        -: 1525:/*EOF*/
        -:        -: 1526:/*EOF*/
        -:        -: 1527:/*EOF*/
        -:        -: 1528:/*EOF*/
        -:        -: 1529:/*EOF*/
        -:        -: 1530:/*EOF*/
        -:        -: 1531:/*EOF*/
        -:        -: 1532:/*EOF*/
        -:        -: 1533:/*EOF*/
        -:        -: 1534:/*EOF*/
        -:        -: 1535:/*EOF*/
        -:        -: 1536:/*EOF*/
        -:        -: 1537:/*EOF*/
        -:        -: 1538:/*EOF*/
        -:        -: 1539:/*EOF*/
        -:        -: 1540:/*EOF*/
        -:        -: 1541:/*EOF*/
        -:        -: 1542:/*EOF*/
        -:        -: 1543:/*EOF*/
        -:        -: 1544:/*EOF*/
        -:        -: 1545:/*EOF*/
        -:        -: 1546:/*EOF*/
        -:        -: 1547:/*EOF*/
        -:        -: 1548:/*EOF*/
        -:        -: 1549:/*EOF*/
        -:        -: 1550:/*EOF*/
        -:        -: 1551:/*EOF*/
        -:        -: 1552:/*EOF*/
        -:        -: 1553:/*EOF*/
        -:        -: 1554:/*EOF*/
        -:        -: 1555:/*EOF*/
        -:        -: 1556:/*EOF*/
        -:        -: 1557:/*EOF*/
        -:        -: 1558:/*EOF*/
        -:        -: 1559:/*EOF*/
        -:        -: 1560:/*EOF*/
        -:        -: 1561:/*EOF*/
        -:        -: 1562:/*EOF*/
        -:        -: 1563:/*EOF*/
        -:        -: 1564:/*EOF*/
        -:        -: 1565:/*EOF*/
        -:        -: 1566:/*EOF*/
        -:        -: 1567:/*EOF*/
        -:        -: 1568:/*EOF*/
        -:        -: 1569:/*EOF*/
        -:        -: 1570:/*EOF*/
        -:        -: 1571:/*EOF*/
        -:        -: 1572:/*EOF*/
        -:        -: 1573:/*EOF*/
        -:        -: 1574:/*EOF*/
        -:        -: 1575:/*EOF*/
        -:        -: 1576:/*EOF*/
        -:        -: 1577:/*EOF*/
        -:        -: 1578:/*EOF*/
        -:        -: 1579:/*EOF*/
        -:        -: 1580:/*EOF*/
        -:        -: 1581:/*EOF*/
        -:        -: 1582:/*EOF*/
        -:        -: 1583:/*EOF*/
        -:        -: 1584:/*EOF*/
        -:        -: 1585:/*EOF*/
        -:        -: 1586:/*EOF*/
        -:        -: 1587:/*EOF*/
        -:        -: 1588:/*EOF*/
        -:        -: 1589:/*EOF*/
        -:        -: 1590:/*EOF*/
        -:        -: 1591:/*EOF*/
        -:        -: 1592:/*EOF*/
        -:        -: 1593:/*EOF*/
        -:        -: 1594:/*EOF*/
        -:        -: 1595:/*EOF*/
        -:        -: 1596:/*EOF*/
        -:        -: 1597:/*EOF*/
        -:        -: 1598:/*EOF*/
        -:        -: 1599:/*EOF*/
        -:        -: 1600:/*EOF*/
        -:        -: 1601:/*EOF*/
        -:        -: 1602:/*EOF*/
        -:        -: 1603:/*EOF*/
        -:        -: 1604:/*EOF*/
        -:        -: 1605:/*EOF*/
        -:        -: 1606:/*EOF*/
        -:        -: 1607:/*EOF*/
        -:        -: 1608:/*EOF*/
        -:        -: 1609:/*EOF*/
        -:        -: 1610:/*EOF*/
        -:        -: 1611:/*EOF*/
        -:        -: 1612:/*EOF*/
        -:        -: 1613:/*EOF*/
        -:        -: 1614:/*EOF*/
        -:        -: 1615:/*EOF*/
        -:        -: 1616:/*EOF*/
        -:        -: 1617:/*EOF*/
        -:        -: 1618:/*EOF*/
        -:        -: 1619:/*EOF*/
        -:        -: 1620:/*EOF*/
        -:        -: 1621:/*EOF*/
        -:        -: 1622:/*EOF*/
        -:        -: 1623:/*EOF*/
        -:        -: 1624:/*EOF*/
        -:        -: 1625:/*EOF*/
        -:        -: 1626:/*EOF*/
        -:        -: 1627:/*EOF*/
        -:        -: 1628:/*EOF*/
        -:        -: 1629:/*EOF*/
        -:        -: 1630:/*EOF*/
        -:        -: 1631:/*EOF*/
        -:        -: 1632:/*EOF*/
        -:        -: 1633:/*EOF*/
        -:        -: 1634:/*EOF*/
        -:        -: 1635:/*EOF*/
        -:        -: 1636:/*EOF*/
        -:        -: 1637:/*EOF*/
        -:        -: 1638:/*EOF*/
        -:        -: 1639:/*EOF*/
        -:        -: 1640:/*EOF*/
        -:        -: 1641:/*EOF*/
        -:        -: 1642:/*EOF*/
        -:        -: 1643:/*EOF*/
        -:        -: 1644:/*EOF*/
        -:        -: 1645:/*EOF*/
        -:        -: 1646:/*EOF*/
        -:        -: 1647:/*EOF*/
        -:        -: 1648:/*EOF*/
        -:        -: 1649:/*EOF*/
        -:        -: 1650:/*EOF*/
        -:        -: 1651:/*EOF*/
        -:        -: 1652:/*EOF*/
        -:        -: 1653:/*EOF*/
        -:        -: 1654:/*EOF*/
        -:        -: 1655:/*EOF*/
        -:        -: 1656:/*EOF*/
        -:        -: 1657:/*EOF*/
        -:        -: 1658:/*EOF*/
        -:        -: 1659:/*EOF*/
        -:        -: 1660:/*EOF*/
        -:        -: 1661:/*EOF*/
        -:        -: 1662:/*EOF*/
        -:        -: 1663:/*EOF*/
      127:      132: 1664:/*EOF*/
        -:        -: 1665:/*EOF*/
      127:      132: 1666:/*EOF*/

src/mesa/program/.libs/list.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl/list.h
        -:        -:    0:Graph:ir_to_mesa.gcno
        -:        -:    0:Data:ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    77246:    93721:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    77246:    93721:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    77246:    93721:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    77246:    93721:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
     6426:    11004:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
     6426:    11004:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
     3224:     5240:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     3224:     5240:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
     3435:     5477:  423:/*EOF*/
      211:      237:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
     3224:     5240:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
     6426:    11004:  558:/*EOF*/
        -:        -:  559:/*EOF*/
     6426:    11004:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
     3224:     5240:  603:/*EOF*/
        -:        -:  604:/*EOF*/
     3224:     5240:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/

src/mesa/program/.libs/symbol_table.c.gcov

        -:        -:    0:Source:mesa/program/symbol_table.c
        -:        -:    0:Graph:symbol_table.gcno
        -:        -:    0:Data:symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       37:       39:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       37:       39:   87:/*EOF*/
       37:       39:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       37:       39:   90:/*EOF*/
       37:       39:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       37:       39:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1183:     1187:   95:/*EOF*/
     1109:     1109:   96:/*EOF*/
     1109:     1109:   97:/*EOF*/
     1109:     1109:   98:/*EOF*/
     1109:     1109:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
     1109:     1109:  106:/*EOF*/
     1109:     1109:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
     1109:     1109:  110:/*EOF*/
     1109:     1109:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       37:       39:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       37:       39:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       37:       39:  119:/*EOF*/
       37:       39:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       37:       39:  125:/*EOF*/
       37:       39:  126:/*EOF*/
       37:       39:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
     1881:     1885:  132:/*EOF*/
        -:        -:  133:/*EOF*/
     1881:     1885:  134:/*EOF*/
     1881:     1885:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        2:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        2:        2:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        2:        2:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
      770:      774:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      770:      774:  166:/*EOF*/
      770:      774:  167:/*EOF*/
      511:      512:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      259:      262:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     1109:     1109:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
     1109:     1109:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     1109:     1109:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     1109:     1109:  184:/*EOF*/
     1109:     1109:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
     1109:     1109:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     1109:     1109:  195:/*EOF*/
     1109:     1109:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
     1109:     1109:  203:/*EOF*/
     1109:     1109:  204:/*EOF*/
     1109:     1109:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     1109:     1109:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     1109:     1109:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     1109:     1109:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       18:       18:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       18:       18:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       18:       18:  292:/*EOF*/
       18:       18:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       18:       18:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       18:       18:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       18:       18:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       56:       56:  306:/*EOF*/
       20:       20:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       18:       18:  310:/*EOF*/
       18:       18:  311:/*EOF*/
       18:       18:  312:/*EOF*/

src/mesa/program/list.h.gcov

        -:        -:    0:Source:../../src/compiler/glsl/list.h
        -:        -:    0:Graph:.libs/ir_to_mesa.gcno
        -:        -:    0:Data:.libs/ir_to_mesa.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
    #####:    #####:   58:/*EOF*/
        -:        -:   59:/*EOF*/
    #####:    #####:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
    #####:    #####:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
    77246:    93721:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    77246:    93721:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
        -:        -:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
    77246:    93721:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    77246:    93721:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
        -:        -:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
    #####:    #####:  291:/*EOF*/
    #####:    #####:  292:/*EOF*/
    #####:    #####:  293:/*EOF*/
    #####:    #####:  294:/*EOF*/
        -:        -:  295:/*EOF*/
        -:        -:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
        -:        -:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    #####:    #####:  345:/*EOF*/
        -:        -:  346:/*EOF*/
    #####:    #####:  347:/*EOF*/
    #####:    #####:  348:/*EOF*/
    #####:    #####:  349:/*EOF*/
    #####:    #####:  350:/*EOF*/
    #####:    #####:  351:/*EOF*/
        -:        -:  352:/*EOF*/
        -:        -:  353:/*EOF*/
     6426:    11004:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
     6426:    11004:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        -:        -:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
        -:        -:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        -:        -:  394:/*EOF*/
        -:        -:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
        -:        -:  410:/*EOF*/
        -:        -:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
     3224:     5240:  418:/*EOF*/
        -:        -:  419:/*EOF*/
     3224:     5240:  420:/*EOF*/
        -:        -:  421:/*EOF*/
        -:        -:  422:/*EOF*/
     3435:     5477:  423:/*EOF*/
      211:      237:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
     3224:     5240:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
    #####:    #####:  441:/*EOF*/
        -:        -:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
        -:        -:  445:/*EOF*/
    #####:    #####:  446:/*EOF*/
    #####:    #####:  447:/*EOF*/
    #####:    #####:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
        -:        -:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
        -:        -:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
        -:        -:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        -:        -:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
        -:        -:  506:/*EOF*/
        -:        -:  507:/*EOF*/
        -:        -:  508:/*EOF*/
        -:        -:  509:/*EOF*/
        -:        -:  510:/*EOF*/
        -:        -:  511:/*EOF*/
        -:        -:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
        -:        -:  515:/*EOF*/
        -:        -:  516:/*EOF*/
        -:        -:  517:/*EOF*/
        -:        -:  518:/*EOF*/
        -:        -:  519:/*EOF*/
        -:        -:  520:/*EOF*/
        -:        -:  521:/*EOF*/
        -:        -:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
    #####:    #####:  553:/*EOF*/
        -:        -:  554:/*EOF*/
    #####:    #####:  555:/*EOF*/
    #####:    #####:  556:/*EOF*/
        -:        -:  557:/*EOF*/
     6426:    11004:  558:/*EOF*/
        -:        -:  559:/*EOF*/
     6426:    11004:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
        -:        -:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
     3224:     5240:  603:/*EOF*/
        -:        -:  604:/*EOF*/
     3224:     5240:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        -:        -:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
    #####:    #####:  613:/*EOF*/
        -:        -:  614:/*EOF*/
    #####:    #####:  615:/*EOF*/
    #####:    #####:  616:/*EOF*/

src/mesa/program/symbol_table.c.gcov

        -:        -:    0:Source:mesa/program/symbol_table.c
        -:        -:    0:Graph:.libs/symbol_table.gcno
        -:        -:    0:Data:.libs/symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       37:       39:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       37:       39:   87:/*EOF*/
       37:       39:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       37:       39:   90:/*EOF*/
       37:       39:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       37:       39:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1183:     1187:   95:/*EOF*/
     1109:     1109:   96:/*EOF*/
     1109:     1109:   97:/*EOF*/
     1109:     1109:   98:/*EOF*/
     1109:     1109:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
     1109:     1109:  106:/*EOF*/
     1109:     1109:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
     1109:     1109:  110:/*EOF*/
     1109:     1109:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       37:       39:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       37:       39:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       37:       39:  119:/*EOF*/
       37:       39:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       37:       39:  125:/*EOF*/
       37:       39:  126:/*EOF*/
       37:       39:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
     1881:     1885:  132:/*EOF*/
        -:        -:  133:/*EOF*/
     1881:     1885:  134:/*EOF*/
     1881:     1885:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        2:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        2:        2:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        2:        2:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
      770:      774:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      770:      774:  166:/*EOF*/
      770:      774:  167:/*EOF*/
      511:      512:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      259:      262:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     1109:     1109:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
     1109:     1109:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     1109:     1109:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     1109:     1109:  184:/*EOF*/
     1109:     1109:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
     1109:     1109:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     1109:     1109:  195:/*EOF*/
     1109:     1109:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
     1109:     1109:  203:/*EOF*/
     1109:     1109:  204:/*EOF*/
     1109:     1109:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     1109:     1109:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     1109:     1109:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     1109:     1109:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       18:       18:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       18:       18:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       18:       18:  292:/*EOF*/
       18:       18:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       18:       18:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       18:       18:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       18:       18:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       56:       56:  306:/*EOF*/
       20:       20:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       18:       18:  310:/*EOF*/
       18:       18:  311:/*EOF*/
       18:       18:  312:/*EOF*/

src/mesa/symbol_table.c.gcov

        -:        -:    0:Source:mesa/program/symbol_table.c
        -:        -:    0:Graph:program/.libs/symbol_table.gcno
        -:        -:    0:Data:program/.libs/symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
       37:       39:   85:/*EOF*/
        -:        -:   86:/*EOF*/
       37:       39:   87:/*EOF*/
       37:       39:   88:/*EOF*/
        -:        -:   89:/*EOF*/
       37:       39:   90:/*EOF*/
       37:       39:   91:/*EOF*/
        -:        -:   92:/*EOF*/
       37:       39:   93:/*EOF*/
        -:        -:   94:/*EOF*/
     1183:     1187:   95:/*EOF*/
     1109:     1109:   96:/*EOF*/
     1109:     1109:   97:/*EOF*/
     1109:     1109:   98:/*EOF*/
     1109:     1109:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
    #####:    #####:  103:/*EOF*/
    #####:    #####:  104:/*EOF*/
        -:        -:  105:/*EOF*/
     1109:     1109:  106:/*EOF*/
     1109:     1109:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
     1109:     1109:  110:/*EOF*/
     1109:     1109:  111:/*EOF*/
        -:        -:  112:/*EOF*/
       37:       39:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
       37:       39:  117:/*EOF*/
        -:        -:  118:/*EOF*/
       37:       39:  119:/*EOF*/
       37:       39:  120:/*EOF*/
    #####:    #####:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
       37:       39:  125:/*EOF*/
       37:       39:  126:/*EOF*/
       37:       39:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
     1881:     1885:  132:/*EOF*/
        -:        -:  133:/*EOF*/
     1881:     1885:  134:/*EOF*/
     1881:     1885:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        2:        2:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        2:        2:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        2:        2:  153:/*EOF*/
    #####:    #####:  154:/*EOF*/
    #####:    #####:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        2:        2:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
      770:      774:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
      770:      774:  166:/*EOF*/
      770:      774:  167:/*EOF*/
      511:      512:  168:/*EOF*/
        -:        -:  169:/*EOF*/
      259:      262:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
     1109:     1109:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
     1109:     1109:  179:/*EOF*/
        -:        -:  180:/*EOF*/
     1109:     1109:  181:/*EOF*/
    #####:    #####:  182:/*EOF*/
        -:        -:  183:/*EOF*/
     1109:     1109:  184:/*EOF*/
     1109:     1109:  185:/*EOF*/
    #####:    #####:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
     1109:     1109:  190:/*EOF*/
        -:        -:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
    #####:    #####:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     1109:     1109:  195:/*EOF*/
     1109:     1109:  196:/*EOF*/
    #####:    #####:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
    #####:    #####:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
     1109:     1109:  203:/*EOF*/
     1109:     1109:  204:/*EOF*/
     1109:     1109:  205:/*EOF*/
        -:        -:  206:/*EOF*/
     1109:     1109:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     1109:     1109:  209:/*EOF*/
        -:        -:  210:/*EOF*/
     1109:     1109:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
    #####:    #####:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    #####:    #####:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    #####:    #####:  222:/*EOF*/
    #####:    #####:  223:/*EOF*/
        -:        -:  224:/*EOF*/
    #####:    #####:  225:/*EOF*/
    #####:    #####:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        -:        -:  228:/*EOF*/
        -:        -:  229:/*EOF*/
    #####:    #####:  230:/*EOF*/
        -:        -:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
    #####:    #####:  234:/*EOF*/
    #####:    #####:  235:/*EOF*/
        -:        -:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
    #####:    #####:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    #####:    #####:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    #####:    #####:  248:/*EOF*/
    #####:    #####:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
        -:        -:  252:/*EOF*/
    #####:    #####:  253:/*EOF*/
    #####:    #####:  254:/*EOF*/
    #####:    #####:  255:/*EOF*/
    #####:    #####:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
    #####:    #####:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
    #####:    #####:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
    #####:    #####:  268:/*EOF*/
    #####:    #####:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
    #####:    #####:  271:/*EOF*/
        -:        -:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
    #####:    #####:  276:/*EOF*/
        -:        -:  277:/*EOF*/
    #####:    #####:  278:/*EOF*/
        -:        -:  279:/*EOF*/
    #####:    #####:  280:/*EOF*/
        -:        -:  281:/*EOF*/
    #####:    #####:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
       18:       18:  288:/*EOF*/
        -:        -:  289:/*EOF*/
       18:       18:  290:/*EOF*/
        -:        -:  291:/*EOF*/
       18:       18:  292:/*EOF*/
       18:       18:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
       18:       18:  296:/*EOF*/
        -:        -:  297:/*EOF*/
        -:        -:  298:/*EOF*/
       18:       18:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
       18:       18:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       56:       56:  306:/*EOF*/
       20:       20:  307:/*EOF*/
        -:        -:  308:/*EOF*/
        -:        -:  309:/*EOF*/
       18:       18:  310:/*EOF*/
       18:       18:  311:/*EOF*/
       18:       18:  312:/*EOF*/

src/symbol_table.c.gcov

        -:        -:    0:Source:mesa/program/symbol_table.c
        -:        -:    0:Graph:mesa/program/.libs/symbol_table.gcno
        -:        -:    0:Data:mesa/program/.libs/symbol_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2008 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include "main/imports.h"
        -:        -:   25:#include "symbol_table.h"
        -:        -:   26:#include "../../util/hash_table.h"
        -:        -:   27:
        -:        -:   28:struct symbol {
        -:        -:   29:   /** Symbol name. */
        -:        -:   30:   char *name;
        -:        -:   31:
        -:        -:   32:    /**
        -:        -:   33:     * Link to the next symbol in the table with the same name
        -:        -:   34:     *
        -:        -:   35:     * The linked list of symbols with the same name is ordered by scope
        -:        -:   36:     * from inner-most to outer-most.
        -:        -:   37:     */
        -:        -:   38:    struct symbol *next_with_same_name;
        -:        -:   39:
        -:        -:   40:    /**
        -:        -:   41:     * Link to the next symbol in the table with the same scope
        -:        -:   42:     *
        -:        -:   43:     * The linked list of symbols with the same scope is unordered.  Symbols
        -:        -:   44:     * in this list my have unique names.
        -:        -:   45:     */
        -:        -:   46:    struct symbol *next_with_same_scope;
        -:        -:   47:
        -:        -:   48:    /** Scope depth where this symbol was defined. */
        -:        -:   49:    unsigned depth;
        -:        -:   50:
        -:        -:   51:    /**
        -:        -:   52:     * Arbitrary user supplied data.
        -:        -:   53:     */
        -:        -:   54:    void *data;
        -:        -:   55:};
        -:        -:   56:
        -:        -:   57:
        -:        -:   58:/**
        -:        -:   59: * Element of the scope stack.
        -:        -:   60: */
        -:        -:   61:struct scope_level {
        -:        -:   62:    /** Link to next (inner) scope level. */
        -:        -:   63:    struct scope_level *next;
        -:        -:   64:    
        -:        -:   65:    /** Linked list of symbols with the same scope. */
        -:        -:   66:    struct symbol *symbols;
        -:        -:   67:};
        -:        -:   68:
        -:        -:   69:
        -:        -:   70:/**
        -:        -:   71: *
        -:        -:   72: */
        -:        -:   73:struct _mesa_symbol_table {
        -:        -:   74:    /** Hash table containing all symbols in the symbol table. */
        -:        -:   75:    struct hash_table *ht;
        -:        -:   76:
        -:        -:   77:    /** Top of scope stack. */
        -:        -:   78:    struct scope_level *current_scope;
        -:        -:   79:
        -:        -:   80:    /** Current scope depth. */
        -:        -:   81:    unsigned depth;
        -:        -:   82:};
        -:        -:   83:
        -:        -:   84:void
       37:       39:   85:_mesa_symbol_table_pop_scope(struct _mesa_symbol_table *table)
        -:        -:   86:{
       37:       39:   87:    struct scope_level *const scope = table->current_scope;
       37:       39:   88:    struct symbol *sym = scope->symbols;
        -:        -:   89:
       37:       39:   90:    table->current_scope = scope->next;
       37:       39:   91:    table->depth--;
        -:        -:   92:
       37:       39:   93:    free(scope);
        -:        -:   94:
     1183:     1187:   95:    while (sym != NULL) {
     1109:     1109:   96:        struct symbol *const next = sym->next_with_same_scope;
     1109:     1109:   97:        struct hash_entry *hte = _mesa_hash_table_search(table->ht,
     1109:     1109:   98:                                                         sym->name);
     1109:     1109:   99:        if (sym->next_with_same_name) {
        -:        -:  100:           /* If there is a symbol with this name in an outer scope update
        -:        -:  101:            * the hash table to point to it.
        -:        -:  102:            */
    #####:    #####:  103:           hte->key = sym->next_with_same_name->name;
    #####:    #####:  104:           hte->data = sym->next_with_same_name;
        -:        -:  105:        } else {
     1109:     1109:  106:           _mesa_hash_table_remove(table->ht, hte);
     1109:     1109:  107:           free(sym->name);
        -:        -:  108:        }
        -:        -:  109:
     1109:     1109:  110:        free(sym);
     1109:     1109:  111:        sym = next;
        -:        -:  112:    }
       37:       39:  113:}
        -:        -:  114:
        -:        -:  115:
        -:        -:  116:void
       37:       39:  117:_mesa_symbol_table_push_scope(struct _mesa_symbol_table *table)
        -:        -:  118:{
       37:       39:  119:    struct scope_level *const scope = calloc(1, sizeof(*scope));
       37:       39:  120:    if (scope == NULL) {
    #####:    #####:  121:       _mesa_error_no_memory(__func__);
    #####:    #####:  122:       return;
        -:        -:  123:    }
        -:        -:  124:
       37:       39:  125:    scope->next = table->current_scope;
       37:       39:  126:    table->current_scope = scope;
       37:       39:  127:    table->depth++;
        -:        -:  128:}
        -:        -:  129:
        -:        -:  130:
        -:        -:  131:static struct symbol *
     1881:     1885:  132:find_symbol(struct _mesa_symbol_table *table, const char *name)
        -:        -:  133:{
     1881:     1885:  134:   struct hash_entry *entry = _mesa_hash_table_search(table->ht, name);
     1881:     1885:  135:   return entry ? (struct symbol *) entry->data : NULL;
        -:        -:  136:}
        -:        -:  137:
        -:        -:  138:
        -:        -:  139:/**
        -:        -:  140: * Determine the scope "distance" of a symbol from the current scope
        -:        -:  141: *
        -:        -:  142: * \return
        -:        -:  143: * A non-negative number for the number of scopes between the current scope
        -:        -:  144: * and the scope where a symbol was defined.  A value of zero means the current
        -:        -:  145: * scope.  A negative number if the symbol does not exist.
        -:        -:  146: */
        -:        -:  147:int
        2:        2:  148:_mesa_symbol_table_symbol_scope(struct _mesa_symbol_table *table,
        -:        -:  149:                                const char *name)
        -:        -:  150:{
        2:        2:  151:   struct symbol *const sym = find_symbol(table, name);
        -:        -:  152:
        2:        2:  153:   if (sym) {
    #####:    #####:  154:      assert(sym->depth <= table->depth);
    #####:    #####:  155:      return sym->depth - table->depth;
        -:        -:  156:   }
        -:        -:  157:
        2:        2:  158:   return -1;
        -:        -:  159:}
        -:        -:  160:
        -:        -:  161:
        -:        -:  162:void *
      770:      774:  163:_mesa_symbol_table_find_symbol(struct _mesa_symbol_table *table,
        -:        -:  164:                               const char *name)
        -:        -:  165:{
      770:      774:  166:   struct symbol *const sym = find_symbol(table, name);
      770:      774:  167:   if (sym)
      511:      512:  168:      return sym->data;
        -:        -:  169:
      259:      262:  170:   return NULL;
        -:        -:  171:}
        -:        -:  172:
        -:        -:  173:
        -:        -:  174:int
     1109:     1109:  175:_mesa_symbol_table_add_symbol(struct _mesa_symbol_table *table,
        -:        -:  176:                              const char *name, void *declaration)
        -:        -:  177:{
        -:        -:  178:   struct symbol *new_sym;
     1109:     1109:  179:   struct symbol *sym = find_symbol(table, name);
        -:        -:  180:
     1109:     1109:  181:   if (sym && sym->depth == table->depth)
    #####:    #####:  182:      return -1;
        -:        -:  183:
     1109:     1109:  184:   new_sym = calloc(1, sizeof(*sym));
     1109:     1109:  185:   if (new_sym == NULL) {
    #####:    #####:  186:      _mesa_error_no_memory(__func__);
    #####:    #####:  187:      return -1;
        -:        -:  188:   }
        -:        -:  189:
     1109:     1109:  190:   if (sym) {
        -:        -:  191:      /* Store link to symbol in outer scope with the same name */
    #####:    #####:  192:      new_sym->next_with_same_name = sym;
    #####:    #####:  193:      new_sym->name = sym->name;
        -:        -:  194:   } else {
     1109:     1109:  195:      new_sym->name = strdup(name);
     1109:     1109:  196:      if (new_sym->name == NULL) {
    #####:    #####:  197:         free(new_sym);
    #####:    #####:  198:         _mesa_error_no_memory(__func__);
    #####:    #####:  199:         return -1;
        -:        -:  200:      }
        -:        -:  201:   }
        -:        -:  202:
     1109:     1109:  203:   new_sym->next_with_same_scope = table->current_scope->symbols;
     1109:     1109:  204:   new_sym->data = declaration;
     1109:     1109:  205:   new_sym->depth = table->depth;
        -:        -:  206:
     1109:     1109:  207:   table->current_scope->symbols = new_sym;
        -:        -:  208:
     1109:     1109:  209:   _mesa_hash_table_insert(table->ht, new_sym->name, new_sym);
        -:        -:  210:
     1109:     1109:  211:   return 0;
        -:        -:  212:}
        -:        -:  213:
        -:        -:  214:int
    #####:    #####:  215:_mesa_symbol_table_replace_symbol(struct _mesa_symbol_table *table,
        -:        -:  216:                                  const char *name,
        -:        -:  217:                                  void *declaration)
        -:        -:  218:{
    #####:    #####:  219:    struct symbol *sym = find_symbol(table, name);
        -:        -:  220:
        -:        -:  221:    /* If the symbol doesn't exist, it cannot be replaced. */
    #####:    #####:  222:    if (sym == NULL)
    #####:    #####:  223:       return -1;
        -:        -:  224:
    #####:    #####:  225:    sym->data = declaration;
    #####:    #####:  226:    return 0;
        -:        -:  227:}
        -:        -:  228:
        -:        -:  229:int
    #####:    #####:  230:_mesa_symbol_table_add_global_symbol(struct _mesa_symbol_table *table,
        -:        -:  231:                                     const char *name, void *declaration)
        -:        -:  232:{
        -:        -:  233:   struct scope_level *top_scope;
    #####:    #####:  234:   struct symbol *inner_sym = NULL;
    #####:    #####:  235:   struct symbol *sym = find_symbol(table, name);
        -:        -:  236:
    #####:    #####:  237:   while (sym) {
    #####:    #####:  238:      if (sym->depth == 0)
    #####:    #####:  239:         return -1;
        -:        -:  240:
    #####:    #####:  241:      inner_sym = sym;
        -:        -:  242:
        -:        -:  243:      /* Get symbol from the outer scope with the same name */
    #####:    #####:  244:      sym = sym->next_with_same_name;
        -:        -:  245:   }
        -:        -:  246:
        -:        -:  247:   /* Find the top-level scope */
    #####:    #####:  248:   for (top_scope = table->current_scope; top_scope->next != NULL;
    #####:    #####:  249:        top_scope = top_scope->next) {
        -:        -:  250:      /* empty */
        -:        -:  251:   }
        -:        -:  252:
    #####:    #####:  253:   sym = calloc(1, sizeof(*sym));
    #####:    #####:  254:   if (sym == NULL) {
    #####:    #####:  255:      _mesa_error_no_memory(__func__);
    #####:    #####:  256:      return -1;
        -:        -:  257:   }
        -:        -:  258:
    #####:    #####:  259:   if (inner_sym) {
        -:        -:  260:      /* In case we add the global out of order store a link to the global
        -:        -:  261:       * symbol in global.
        -:        -:  262:       */
    #####:    #####:  263:      inner_sym->next_with_same_name = sym;
        -:        -:  264:
    #####:    #####:  265:      sym->name = inner_sym->name;
        -:        -:  266:   } else {
    #####:    #####:  267:      sym->name = strdup(name);
    #####:    #####:  268:      if (sym->name == NULL) {
    #####:    #####:  269:         free(sym);
    #####:    #####:  270:         _mesa_error_no_memory(__func__);
    #####:    #####:  271:         return -1;
        -:        -:  272:      }
        -:        -:  273:   }
        -:        -:  274:
    #####:    #####:  275:   sym->next_with_same_scope = top_scope->symbols;
    #####:    #####:  276:   sym->data = declaration;
        -:        -:  277:
    #####:    #####:  278:   top_scope->symbols = sym;
        -:        -:  279:
    #####:    #####:  280:   _mesa_hash_table_insert(table->ht, sym->name, sym);
        -:        -:  281:
    #####:    #####:  282:   return 0;
        -:        -:  283:}
        -:        -:  284:
        -:        -:  285:
        -:        -:  286:
        -:        -:  287:struct _mesa_symbol_table *
       18:       18:  288:_mesa_symbol_table_ctor(void)
        -:        -:  289:{
       18:       18:  290:    struct _mesa_symbol_table *table = calloc(1, sizeof(*table));
        -:        -:  291:
       18:       18:  292:    if (table != NULL) {
       18:       18:  293:       table->ht = _mesa_hash_table_create(NULL, _mesa_key_hash_string,
        -:        -:  294:                                           _mesa_key_string_equal);
        -:        -:  295:
       18:       18:  296:       _mesa_symbol_table_push_scope(table);
        -:        -:  297:    }
        -:        -:  298:
       18:       18:  299:    return table;
        -:        -:  300:}
        -:        -:  301:
        -:        -:  302:
        -:        -:  303:void
       18:       18:  304:_mesa_symbol_table_dtor(struct _mesa_symbol_table *table)
        -:        -:  305:{
       56:       56:  306:   while (table->current_scope != NULL) {
       20:       20:  307:      _mesa_symbol_table_pop_scope(table);
        -:        -:  308:   }
        -:        -:  309:
       18:       18:  310:   _mesa_hash_table_destroy(table->ht, NULL);
       18:       18:  311:   free(table);
       18:       18:  312:}

src/util/crc32.c.gcov

        -:        -:    0:Source:crc32.c
        -:        -:    0:Graph:.libs/libmesautil_la-crc32.gcno
        -:        -:    0:Data:.libs/libmesautil_la-crc32.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/**************************************************************************
        -:        -:    2: *
        -:        -:    3: * Copyright 2008 VMware, Inc.
        -:        -:    4: * All Rights Reserved.
        -:        -:    5: *
        -:        -:    6: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    7: * copy of this software and associated documentation files (the
        -:        -:    8: * "Software"), to deal in the Software without restriction, including
        -:        -:    9: * without limitation the rights to use, copy, modify, merge, publish,
        -:        -:   10: * distribute, sub license, and/or sell copies of the Software, and to
        -:        -:   11: * permit persons to whom the Software is furnished to do so, subject to
        -:        -:   12: * the following conditions:
        -:        -:   13: *
        -:        -:   14: * The above copyright notice and this permission notice (including the
        -:        -:   15: * next paragraph) shall be included in all copies or substantial portions
        -:        -:   16: * of the Software.
        -:        -:   17: *
        -:        -:   18: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
        -:        -:   19: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   20: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
        -:        -:   21: * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
        -:        -:   22: * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        -:        -:   23: * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
        -:        -:   24: * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   25: *
        -:        -:   26: **************************************************************************/
        -:        -:   27:
        -:        -:   28:/**
        -:        -:   29: * @file
        -:        -:   30: * CRC32 implementation.
        -:        -:   31: * 
        -:        -:   32: * @author Jose Fonseca
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:
        -:        -:   36:#include "crc32.h"
        -:        -:   37:
        -:        -:   38:
        -:        -:   39:static const uint32_t 
        -:        -:   40:util_crc32_table[256] = {
        -:        -:   41:   0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 
        -:        -:   42:   0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 
        -:        -:   43:   0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 
        -:        -:   44:   0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 
        -:        -:   45:   0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 
        -:        -:   46:   0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 
        -:        -:   47:   0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 
        -:        -:   48:   0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 
        -:        -:   49:   0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 
        -:        -:   50:   0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 
        -:        -:   51:   0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 
        -:        -:   52:   0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 
        -:        -:   53:   0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 
        -:        -:   54:   0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 
        -:        -:   55:   0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 
        -:        -:   56:   0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 
        -:        -:   57:   0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 
        -:        -:   58:   0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 
        -:        -:   59:   0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 
        -:        -:   60:   0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 
        -:        -:   61:   0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 
        -:        -:   62:   0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 
        -:        -:   63:   0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 
        -:        -:   64:   0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 
        -:        -:   65:   0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 
        -:        -:   66:   0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 
        -:        -:   67:   0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 
        -:        -:   68:   0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 
        -:        -:   69:   0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 
        -:        -:   70:   0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 
        -:        -:   71:   0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 
        -:        -:   72:   0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 
        -:        -:   73:   0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 
        -:        -:   74:   0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 
        -:        -:   75:   0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 
        -:        -:   76:   0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 
        -:        -:   77:   0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 
        -:        -:   78:   0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 
        -:        -:   79:   0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 
        -:        -:   80:   0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 
        -:        -:   81:   0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 
        -:        -:   82:   0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 
        -:        -:   83:   0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 
        -:        -:   84:   0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 
        -:        -:   85:   0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 
        -:        -:   86:   0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 
        -:        -:   87:   0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 
        -:        -:   88:   0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 
        -:        -:   89:   0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 
        -:        -:   90:   0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 
        -:        -:   91:   0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 
        -:        -:   92:   0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 
        -:        -:   93:   0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 
        -:        -:   94:   0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 
        -:        -:   95:   0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 
        -:        -:   96:   0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 
        -:        -:   97:   0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 
        -:        -:   98:   0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 
        -:        -:   99:   0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 
        -:        -:  100:   0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 
        -:        -:  101:   0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 
        -:        -:  102:   0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 
        -:        -:  103:   0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 
        -:        -:  104:   0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
        -:        -:  105:};
        -:        -:  106:
        -:        -:  107:
        -:        -:  108:/**
        -:        -:  109: * @sa http://www.w3.org/TR/PNG/#D-CRCAppendix
        -:        -:  110: */
        -:        -:  111:uint32_t
        2:        2:  112:util_hash_crc32(const void *data, size_t size)
        -:        -:  113:{
        2:        2:  114:   uint8_t *p = (uint8_t *)data;
        2:        2:  115:   uint32_t crc = 0xffffffff;
        -:        -:  116: 
     1766:     1826:  117:   while (size--)
     1762:     1822:  118:      crc = util_crc32_table[(crc ^ *p++) & 0xff] ^ (crc >> 8);
        -:        -:  119:   
        2:        2:  120:   return crc;
        -:        -:  121:}

src/util/hash_table.c.gcov

        -:        -:    0:Source:hash_table.c
        -:        -:    0:Graph:.libs/libmesautil_la-hash_table.gcno
        -:        -:    0:Data:.libs/libmesautil_la-hash_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009,2012 Intel Corporation
        -:        -:    3: * Copyright © 1988-2004 Keith Packard and Bart Massey.
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   22: * IN THE SOFTWARE.
        -:        -:   23: *
        -:        -:   24: * Except as contained in this notice, the names of the authors
        -:        -:   25: * or their institutions shall not be used in advertising or
        -:        -:   26: * otherwise to promote the sale, use or other dealings in this
        -:        -:   27: * Software without prior written authorization from the
        -:        -:   28: * authors.
        -:        -:   29: *
        -:        -:   30: * Authors:
        -:        -:   31: *    Eric Anholt <eric@anholt.net>
        -:        -:   32: *    Keith Packard <keithp@keithp.com>
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:/**
        -:        -:   36: * Implements an open-addressing, linear-reprobing hash table.
        -:        -:   37: *
        -:        -:   38: * For more information, see:
        -:        -:   39: *
        -:        -:   40: * http://cgit.freedesktop.org/~anholt/hash_table/tree/README
        -:        -:   41: */
        -:        -:   42:
        -:        -:   43:#include <stdlib.h>
        -:        -:   44:#include <string.h>
        -:        -:   45:#include <assert.h>
        -:        -:   46:
        -:        -:   47:#include "hash_table.h"
        -:        -:   48:#include "ralloc.h"
        -:        -:   49:#include "macros.h"
        -:        -:   50:
        -:        -:   51:static const uint32_t deleted_key_value;
        -:        -:   52:
        -:        -:   53:/**
        -:        -:   54: * From Knuth -- a good choice for hash/rehash values is p, p-2 where
        -:        -:   55: * p and p-2 are both prime.  These tables are sized to have an extra 10%
        -:        -:   56: * free to avoid exponential performance degradation as the hash table fills
        -:        -:   57: */
        -:        -:   58:static const struct {
        -:        -:   59:   uint32_t max_entries, size, rehash;
        -:        -:   60:} hash_sizes[] = {
        -:        -:   61:   { 2,			5,		3	  },
        -:        -:   62:   { 4,			7,		5	  },
        -:        -:   63:   { 8,			13,		11	  },
        -:        -:   64:   { 16,		19,		17	  },
        -:        -:   65:   { 32,		43,		41        },
        -:        -:   66:   { 64,		73,		71        },
        -:        -:   67:   { 128,		151,		149       },
        -:        -:   68:   { 256,		283,		281       },
        -:        -:   69:   { 512,		571,		569       },
        -:        -:   70:   { 1024,		1153,		1151      },
        -:        -:   71:   { 2048,		2269,		2267      },
        -:        -:   72:   { 4096,		4519,		4517      },
        -:        -:   73:   { 8192,		9013,		9011      },
        -:        -:   74:   { 16384,		18043,		18041     },
        -:        -:   75:   { 32768,		36109,		36107     },
        -:        -:   76:   { 65536,		72091,		72089     },
        -:        -:   77:   { 131072,		144409,		144407    },
        -:        -:   78:   { 262144,		288361,		288359    },
        -:        -:   79:   { 524288,		576883,		576881    },
        -:        -:   80:   { 1048576,		1153459,	1153457   },
        -:        -:   81:   { 2097152,		2307163,	2307161   },
        -:        -:   82:   { 4194304,		4613893,	4613891   },
        -:        -:   83:   { 8388608,		9227641,	9227639   },
        -:        -:   84:   { 16777216,		18455029,	18455027  },
        -:        -:   85:   { 33554432,		36911011,	36911009  },
        -:        -:   86:   { 67108864,		73819861,	73819859  },
        -:        -:   87:   { 134217728,		147639589,	147639587 },
        -:        -:   88:   { 268435456,		295279081,	295279079 },
        -:        -:   89:   { 536870912,		590559793,	590559791 },
        -:        -:   90:   { 1073741824,	1181116273,	1181116271},
        -:        -:   91:   { 2147483648ul,	2362232233ul,	2362232231ul}
        -:        -:   92:};
        -:        -:   93:
        -:        -:   94:static int
   265033:   292166:   95:entry_is_free(const struct hash_entry *entry)
        -:        -:   96:{
   265033:   292166:   97:   return entry->key == NULL;
        -:        -:   98:}
        -:        -:   99:
        -:        -:  100:static int
   177504:   188497:  101:entry_is_deleted(const struct hash_table *ht, struct hash_entry *entry)
        -:        -:  102:{
   177504:   188497:  103:   return entry->key == ht->deleted_key;
        -:        -:  104:}
        -:        -:  105:
        -:        -:  106:static int
   435000:   474847:  107:entry_is_present(const struct hash_table *ht, struct hash_entry *entry)
        -:        -:  108:{
   435000:   474847:  109:   return entry->key != NULL && entry->key != ht->deleted_key;
        -:        -:  110:}
        -:        -:  111:
        -:        -:  112:struct hash_table *
     4211:     5224:  113:_mesa_hash_table_create(void *mem_ctx,
        -:        -:  114:                        uint32_t (*key_hash_function)(const void *key),
        -:        -:  115:                        bool (*key_equals_function)(const void *a,
        -:        -:  116:                                                    const void *b))
        -:        -:  117:{
        -:        -:  118:   struct hash_table *ht;
        -:        -:  119:
     4211:     5224:  120:   ht = ralloc(mem_ctx, struct hash_table);
     4211:     5224:  121:   if (ht == NULL)
    #####:    #####:  122:      return NULL;
        -:        -:  123:
     4211:     5224:  124:   ht->size_index = 0;
     4211:     5224:  125:   ht->size = hash_sizes[ht->size_index].size;
     4211:     5224:  126:   ht->rehash = hash_sizes[ht->size_index].rehash;
     4211:     5224:  127:   ht->max_entries = hash_sizes[ht->size_index].max_entries;
     4211:     5224:  128:   ht->key_hash_function = key_hash_function;
     4211:     5224:  129:   ht->key_equals_function = key_equals_function;
     4211:     5224:  130:   ht->table = rzalloc_array(ht, struct hash_entry, ht->size);
     4211:     5224:  131:   ht->entries = 0;
     4211:     5224:  132:   ht->deleted_entries = 0;
     4211:     5224:  133:   ht->deleted_key = &deleted_key_value;
        -:        -:  134:
     4211:     5224:  135:   if (ht->table == NULL) {
    #####:    #####:  136:      ralloc_free(ht);
    #####:    #####:  137:      return NULL;
        -:        -:  138:   }
        -:        -:  139:
     4211:     5224:  140:   return ht;
        -:        -:  141:}
        -:        -:  142:
        -:        -:  143:/**
        -:        -:  144: * Frees the given hash table.
        -:        -:  145: *
        -:        -:  146: * If delete_function is passed, it gets called on each entry present before
        -:        -:  147: * freeing.
        -:        -:  148: */
        -:        -:  149:void
     3866:     4802:  150:_mesa_hash_table_destroy(struct hash_table *ht,
        -:        -:  151:                         void (*delete_function)(struct hash_entry *entry))
        -:        -:  152:{
     3866:     4802:  153:   if (!ht)
        4:        4:  154:      return;
        -:        -:  155:
     3862:     4798:  156:   if (delete_function) {
        -:        -:  157:      struct hash_entry *entry;
        -:        -:  158:
     1203:     1206:  159:      hash_table_foreach(ht, entry) {
     1157:     1160:  160:         delete_function(entry);
        -:        -:  161:      }
        -:        -:  162:   }
     3862:     4798:  163:   ralloc_free(ht);
        -:        -:  164:}
        -:        -:  165:
        -:        -:  166:/**
        -:        -:  167: * Deletes all entries of the given hash table without deleting the table
        -:        -:  168: * itself or changing its structure.
        -:        -:  169: *
        -:        -:  170: * If delete_function is passed, it gets called on each entry present.
        -:        -:  171: */
        -:        -:  172:void
       18:       18:  173:_mesa_hash_table_clear(struct hash_table *ht,
        -:        -:  174:                       void (*delete_function)(struct hash_entry *entry))
        -:        -:  175:{
        -:        -:  176:   struct hash_entry *entry;
        -:        -:  177:
      116:      116:  178:   for (entry = ht->table; entry != ht->table + ht->size; entry++) {
       98:       98:  179:      if (entry->key == NULL)
       72:       72:  180:         continue;
        -:        -:  181:
       26:       26:  182:      if (delete_function != NULL && entry->key != ht->deleted_key)
    #####:    #####:  183:         delete_function(entry);
        -:        -:  184:
       26:       26:  185:      entry->key = NULL;
        -:        -:  186:   }
        -:        -:  187:
       18:       18:  188:   ht->entries = 0;
       18:       18:  189:   ht->deleted_entries = 0;
       18:       18:  190:}
        -:        -:  191:
        -:        -:  192:/** Sets the value of the key pointer used for deleted entries in the table.
        -:        -:  193: *
        -:        -:  194: * The assumption is that usually keys are actual pointers, so we use a
        -:        -:  195: * default value of a pointer to an arbitrary piece of storage in the library.
        -:        -:  196: * But in some cases a consumer wants to store some other sort of value in the
        -:        -:  197: * table, like a uint32_t, in which case that pointer may conflict with one of
        -:        -:  198: * their valid keys.  This lets that user select a safe value.
        -:        -:  199: *
        -:        -:  200: * This must be called before any keys are actually deleted from the table.
        -:        -:  201: */
        -:        -:  202:void
       16:       16:  203:_mesa_hash_table_set_deleted_key(struct hash_table *ht, const void *deleted_key)
        -:        -:  204:{
       16:       16:  205:   ht->deleted_key = deleted_key;
       16:       16:  206:}
        -:        -:  207:
        -:        -:  208:static struct hash_entry *
    87100:    96179:  209:hash_table_search(struct hash_table *ht, uint32_t hash, const void *key)
        -:        -:  210:{
    87100:    96179:  211:   uint32_t start_hash_address = hash % ht->size;
    87100:    96179:  212:   uint32_t hash_address = start_hash_address;
        -:        -:  213:
        -:        -:  214:   do {
        -:        -:  215:      uint32_t double_hash;
        -:        -:  216:
   167588:   189972:  217:      struct hash_entry *entry = ht->table + hash_address;
        -:        -:  218:
   167588:   189972:  219:      if (entry_is_free(entry)) {
    10255:    11487:  220:         return NULL;
   157333:   178485:  221:      } else if (entry_is_present(ht, entry) && entry->hash == hash) {
    76845:    84692:  222:         if (ht->key_equals_function(key, entry->key)) {
    76845:    84692:  223:            return entry;
        -:        -:  224:         }
        -:        -:  225:      }
        -:        -:  226:
    80488:    93793:  227:      double_hash = 1 + hash % ht->rehash;
        -:        -:  228:
    80488:    93793:  229:      hash_address = (hash_address + double_hash) % ht->size;
    80488:    93793:  230:   } while (hash_address != start_hash_address);
        -:        -:  231:
    #####:    #####:  232:   return NULL;
        -:        -:  233:}
        -:        -:  234:
        -:        -:  235:/**
        -:        -:  236: * Finds a hash table entry with the given key and hash of that key.
        -:        -:  237: *
        -:        -:  238: * Returns NULL if no entry is found.  Note that the data pointer may be
        -:        -:  239: * modified by the user.
        -:        -:  240: */
        -:        -:  241:struct hash_entry *
    87079:    96158:  242:_mesa_hash_table_search(struct hash_table *ht, const void *key)
        -:        -:  243:{
    87079:    96158:  244:   assert(ht->key_hash_function);
    87079:    96158:  245:   return hash_table_search(ht, ht->key_hash_function(key), key);
        -:        -:  246:}
        -:        -:  247:
        -:        -:  248:struct hash_entry *
       21:       21:  249:_mesa_hash_table_search_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:  250:                                  const void *key)
        -:        -:  251:{
       21:       21:  252:   assert(ht->key_hash_function == NULL || hash == ht->key_hash_function(key));
       21:       21:  253:   return hash_table_search(ht, hash, key);
        -:        -:  254:}
        -:        -:  255:
        -:        -:  256:static struct hash_entry *
        -:        -:  257:hash_table_insert(struct hash_table *ht, uint32_t hash,
        -:        -:  258:                  const void *key, void *data);
        -:        -:  259:
        -:        -:  260:static void
     3524:     3623:  261:_mesa_hash_table_rehash(struct hash_table *ht, unsigned new_size_index)
        -:        -:  262:{
        -:        -:  263:   struct hash_table old_ht;
        -:        -:  264:   struct hash_entry *table, *entry;
        -:        -:  265:
     3524:     3623:  266:   if (new_size_index >= ARRAY_SIZE(hash_sizes))
    #####:    #####:  267:      return;
        -:        -:  268:
     3524:     3623:  269:   table = rzalloc_array(ht, struct hash_entry,
        -:        -:  270:                         hash_sizes[new_size_index].size);
     3524:     3623:  271:   if (table == NULL)
    #####:    #####:  272:      return;
        -:        -:  273:
     3524:     3623:  274:   old_ht = *ht;
        -:        -:  275:
     3524:     3623:  276:   ht->table = table;
     3524:     3623:  277:   ht->size_index = new_size_index;
     3524:     3623:  278:   ht->size = hash_sizes[ht->size_index].size;
     3524:     3623:  279:   ht->rehash = hash_sizes[ht->size_index].rehash;
     3524:     3623:  280:   ht->max_entries = hash_sizes[ht->size_index].max_entries;
     3524:     3623:  281:   ht->entries = 0;
     3524:     3623:  282:   ht->deleted_entries = 0;
        -:        -:  283:
    58889:    60220:  284:   hash_table_foreach(&old_ht, entry) {
    55365:    56597:  285:      hash_table_insert(ht, entry->hash, entry->key, entry->data);
        -:        -:  286:   }
        -:        -:  287:
     3524:     3623:  288:   ralloc_free(old_ht.table);
        -:        -:  289:}
        -:        -:  290:
        -:        -:  291:static struct hash_entry *
    97535:   102286:  292:hash_table_insert(struct hash_table *ht, uint32_t hash,
        -:        -:  293:                  const void *key, void *data)
        -:        -:  294:{
        -:        -:  295:   uint32_t start_hash_address, hash_address;
    97535:   102286:  296:   struct hash_entry *available_entry = NULL;
        -:        -:  297:
    97535:   102286:  298:   assert(key != NULL);
        -:        -:  299:
    97535:   102286:  300:   if (ht->entries >= ht->max_entries) {
     3509:     3608:  301:      _mesa_hash_table_rehash(ht, ht->size_index + 1);
    94026:    98678:  302:   } else if (ht->deleted_entries + ht->entries >= ht->max_entries) {
       15:       15:  303:      _mesa_hash_table_rehash(ht, ht->size_index);
        -:        -:  304:   }
        -:        -:  305:
    97535:   102286:  306:   start_hash_address = hash % ht->size;
    97535:   102286:  307:   hash_address = start_hash_address;
        -:        -:  308:   do {
   177504:   188497:  309:      struct hash_entry *entry = ht->table + hash_address;
        -:        -:  310:      uint32_t double_hash;
        -:        -:  311:
   177504:   188497:  312:      if (!entry_is_present(ht, entry)) {
        -:        -:  313:         /* Stash the first available entry we find */
    97445:   102194:  314:         if (available_entry == NULL)
    97428:   102179:  315:            available_entry = entry;
    97445:   102194:  316:         if (entry_is_free(entry))
    97428:   102179:  317:            break;
        -:        -:  318:      }
        -:        -:  319:
        -:        -:  320:      /* Implement replacement when another insert happens
        -:        -:  321:       * with a matching key.  This is a relatively common
        -:        -:  322:       * feature of hash tables, with the alternative
        -:        -:  323:       * generally being "insert the new value as well, and
        -:        -:  324:       * return it first when the key is searched for".
        -:        -:  325:       *
        -:        -:  326:       * Note that the hash table doesn't have a delete
        -:        -:  327:       * callback.  If freeing of old data pointers is
        -:        -:  328:       * required to avoid memory leaks, perform a search
        -:        -:  329:       * before inserting.
        -:        -:  330:       */
   160135:   172621:  331:      if (!entry_is_deleted(ht, entry) &&
    80166:    86410:  332:          entry->hash == hash &&
      107:      107:  333:          ht->key_equals_function(key, entry->key)) {
      107:      107:  334:         entry->key = key;
      107:      107:  335:         entry->data = data;
      107:      107:  336:         return entry;
        -:        -:  337:      }
        -:        -:  338:
        -:        -:  339:
    79969:    86211:  340:      double_hash = 1 + hash % ht->rehash;
        -:        -:  341:
    79969:    86211:  342:      hash_address = (hash_address + double_hash) % ht->size;
    79969:    86211:  343:   } while (hash_address != start_hash_address);
        -:        -:  344:
    97428:   102179:  345:   if (available_entry) {
    97428:   102179:  346:      if (entry_is_deleted(ht, available_entry))
       17:       15:  347:         ht->deleted_entries--;
    97428:   102179:  348:      available_entry->hash = hash;
    97428:   102179:  349:      available_entry->key = key;
    97428:   102179:  350:      available_entry->data = data;
    97428:   102179:  351:      ht->entries++;
    97428:   102179:  352:      return available_entry;
        -:        -:  353:   }
        -:        -:  354:
        -:        -:  355:   /* We could hit here if a required resize failed. An unchecked-malloc
        -:        -:  356:    * application could ignore this result.
        -:        -:  357:    */
    #####:    #####:  358:   return NULL;
        -:        -:  359:}
        -:        -:  360:
        -:        -:  361:/**
        -:        -:  362: * Inserts the key with the given hash into the table.
        -:        -:  363: *
        -:        -:  364: * Note that insertion may rearrange the table on a resize or rehash,
        -:        -:  365: * so previously found hash_entries are no longer valid after this function.
        -:        -:  366: */
        -:        -:  367:struct hash_entry *
    42167:    45686:  368:_mesa_hash_table_insert(struct hash_table *ht, const void *key, void *data)
        -:        -:  369:{
    42167:    45686:  370:   assert(ht->key_hash_function);
    42167:    45686:  371:   return hash_table_insert(ht, ht->key_hash_function(key), key, data);
        -:        -:  372:}
        -:        -:  373:
        -:        -:  374:struct hash_entry *
        3:        3:  375:_mesa_hash_table_insert_pre_hashed(struct hash_table *ht, uint32_t hash,
        -:        -:  376:                                   const void *key, void *data)
        -:        -:  377:{
        3:        3:  378:   assert(ht->key_hash_function == NULL || hash == ht->key_hash_function(key));
        3:        3:  379:   return hash_table_insert(ht, hash, key, data);
        -:        -:  380:}
        -:        -:  381:
        -:        -:  382:/**
        -:        -:  383: * This function deletes the given hash table entry.
        -:        -:  384: *
        -:        -:  385: * Note that deletion doesn't otherwise modify the table, so an iteration over
        -:        -:  386: * the table deleting entries is safe.
        -:        -:  387: */
        -:        -:  388:void
     1244:     1244:  389:_mesa_hash_table_remove(struct hash_table *ht,
        -:        -:  390:                        struct hash_entry *entry)
        -:        -:  391:{
     1244:     1244:  392:   if (!entry)
    #####:    #####:  393:      return;
        -:        -:  394:
     1244:     1244:  395:   entry->key = ht->deleted_key;
     1244:     1244:  396:   ht->entries--;
     1244:     1244:  397:   ht->deleted_entries++;
        -:        -:  398:}
        -:        -:  399:
        -:        -:  400:/**
        -:        -:  401: * This function is an iterator over the hash table.
        -:        -:  402: *
        -:        -:  403: * Pass in NULL for the first entry, as in the start of a for loop.  Note that
        -:        -:  404: * an iteration over the table is O(table_size) not O(entries).
        -:        -:  405: */
        -:        -:  406:struct hash_entry *
    71072:    73984:  407:_mesa_hash_table_next_entry(struct hash_table *ht,
        -:        -:  408:                            struct hash_entry *entry)
        -:        -:  409:{
    71072:    73984:  410:   if (entry == NULL)
     6371:     7617:  411:      entry = ht->table;
        -:        -:  412:   else
    64701:    66367:  413:      entry = entry + 1;
        -:        -:  414:
   106534:   115482:  415:   for (; entry != ht->table + ht->size; entry++) {
   100163:   107865:  416:      if (entry_is_present(ht, entry)) {
    64701:    66367:  417:         return entry;
        -:        -:  418:      }
        -:        -:  419:   }
        -:        -:  420:
     6371:     7617:  421:   return NULL;
        -:        -:  422:}
        -:        -:  423:
        -:        -:  424:/**
        -:        -:  425: * Returns a random entry from the hash table.
        -:        -:  426: *
        -:        -:  427: * This may be useful in implementing random replacement (as opposed
        -:        -:  428: * to just removing everything) in caches based on this hash table
        -:        -:  429: * implementation.  @predicate may be used to filter entries, or may
        -:        -:  430: * be set to NULL for no filtering.
        -:        -:  431: */
        -:        -:  432:struct hash_entry *
    #####:    #####:  433:_mesa_hash_table_random_entry(struct hash_table *ht,
        -:        -:  434:                              bool (*predicate)(struct hash_entry *entry))
        -:        -:  435:{
        -:        -:  436:   struct hash_entry *entry;
    #####:    #####:  437:   uint32_t i = rand() % ht->size;
        -:        -:  438:
    #####:    #####:  439:   if (ht->entries == 0)
    #####:    #####:  440:      return NULL;
        -:        -:  441:
    #####:    #####:  442:   for (entry = ht->table + i; entry != ht->table + ht->size; entry++) {
    #####:    #####:  443:      if (entry_is_present(ht, entry) &&
    #####:    #####:  444:          (!predicate || predicate(entry))) {
    #####:    #####:  445:         return entry;
        -:        -:  446:      }
        -:        -:  447:   }
        -:        -:  448:
    #####:    #####:  449:   for (entry = ht->table; entry != ht->table + i; entry++) {
    #####:    #####:  450:      if (entry_is_present(ht, entry) &&
    #####:    #####:  451:          (!predicate || predicate(entry))) {
    #####:    #####:  452:         return entry;
        -:        -:  453:      }
        -:        -:  454:   }
        -:        -:  455:
    #####:    #####:  456:   return NULL;
        -:        -:  457:}
        -:        -:  458:
        -:        -:  459:
        -:        -:  460:/**
        -:        -:  461: * Quick FNV-1a hash implementation based on:
        -:        -:  462: * http://www.isthe.com/chongo/tech/comp/fnv/
        -:        -:  463: *
        -:        -:  464: * FNV-1a is not be the best hash out there -- Jenkins's lookup3 is supposed
        -:        -:  465: * to be quite good, and it probably beats FNV.  But FNV has the advantage
        -:        -:  466: * that it involves almost no code.  For an improvement on both, see Paul
        -:        -:  467: * Hsieh's http://www.azillionmonkeys.com/qed/hash.html
        -:        -:  468: */
        -:        -:  469:uint32_t
   219031:   245560:  470:_mesa_hash_data(const void *data, size_t size)
        -:        -:  471:{
   219031:   245560:  472:   return _mesa_fnv32_1a_accumulate_block(_mesa_fnv32_1a_offset_bias,
        -:        -:  473:                                          data, size);
        -:        -:  474:}
        -:        -:  475:
        -:        -:  476:/** FNV-1a string hash implementation */
        -:        -:  477:uint32_t
     4584:     4596:  478:_mesa_hash_string(const char *key)
        -:        -:  479:{
     4584:     4596:  480:   uint32_t hash = _mesa_fnv32_1a_offset_bias;
        -:        -:  481:
    81900:    82012:  482:   while (*key != 0) {
    72732:    72820:  483:      hash = _mesa_fnv32_1a_accumulate(hash, *key);
    72732:    72820:  484:      key++;
        -:        -:  485:   }
        -:        -:  486:
     4584:     4596:  487:   return hash;
        -:        -:  488:}
        -:        -:  489:
        -:        -:  490:/**
        -:        -:  491: * String compare function for use as the comparison callback in
        -:        -:  492: * _mesa_hash_table_create().
        -:        -:  493: */
        -:        -:  494:bool
     1689:     1690:  495:_mesa_key_string_equal(const void *a, const void *b)
        -:        -:  496:{
     1689:     1690:  497:   return strcmp(a, b) == 0;
        -:        -:  498:}
        -:        -:  499:
        -:        -:  500:bool
   124866:   141285:  501:_mesa_key_pointer_equal(const void *a, const void *b)
        -:        -:  502:{
   124866:   141285:  503:   return a == b;
        -:        -:  504:}

src/util/.libs/crc32.c.gcov

        -:        -:    0:Source:crc32.c
        -:        -:    0:Graph:libmesautil_la-crc32.gcno
        -:        -:    0:Data:libmesautil_la-crc32.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        2:        2:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        2:        2:  114:/*EOF*/
        2:        2:  115:/*EOF*/
        -:        -:  116:/*EOF*/
     1766:     1826:  117:/*EOF*/
     1762:     1822:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        2:        2:  120:/*EOF*/

src/util/.libs/hash_table.c.gcov

        -:        -:    0:Source:hash_table.c
        -:        -:    0:Graph:libmesautil_la-hash_table.gcno
        -:        -:    0:Data:libmesautil_la-hash_table.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
   265033:   292166:   95:/*EOF*/
        -:        -:   96:/*EOF*/
   265033:   292166:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
   177504:   188497:  101:/*EOF*/
        -:        -:  102:/*EOF*/
   177504:   188497:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
   435000:   474847:  107:/*EOF*/
        -:        -:  108:/*EOF*/
   435000:   474847:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
     4211:     5224:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
     4211:     5224:  120:/*EOF*/
     4211:     5224:  121:/*EOF*/
    #####:    #####:  122:/*EOF*/
        -:        -:  123:/*EOF*/
     4211:     5224:  124:/*EOF*/
     4211:     5224:  125:/*EOF*/
     4211:     5224:  126:/*EOF*/
     4211:     5224:  127:/*EOF*/
     4211:     5224:  128:/*EOF*/
     4211:     5224:  129:/*EOF*/
     4211:     5224:  130:/*EOF*/
     4211:     5224:  131:/*EOF*/
     4211:     5224:  132:/*EOF*/
     4211:     5224:  133:/*EOF*/
        -:        -:  134:/*EOF*/
     4211:     5224:  135:/*EOF*/
    #####:    #####:  136:/*EOF*/
    #####:    #####:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
     4211:     5224:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
     3866:     4802:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
     3866:     4802:  153:/*EOF*/
        4:        4:  154:/*EOF*/
        -:        -:  155:/*EOF*/
     3862:     4798:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
     1203:     1206:  159:/*EOF*/
     1157:     1160:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
     3862:     4798:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
       18:       18:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
      116:      116:  178:/*EOF*/
       98:       98:  179:/*EOF*/
       72:       72:  180:/*EOF*/
        -:        -:  181:/*EOF*/
       26:       26:  182:/*EOF*/
    #####:    #####:  183:/*EOF*/
        -:        -:  184:/*EOF*/
       26:       26:  185:/*EOF*/
        -:        -:  186:/*EOF*/
        -:        -:  187:/*EOF*/
       18:       18:  188:/*EOF*/
       18:       18:  189:/*EOF*/
       18:       18:  190:/*EOF*/
        -:        -:  191:/*EOF*/
        -:        -:  192:/*EOF*/
        -:        -:  193:/*EOF*/
        -:        -:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
        -:        -:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
        -:        -:  201:/*EOF*/
        -:        -:  202:/*EOF*/
       16:       16:  203:/*EOF*/
        -:        -:  204:/*EOF*/
       16:       16:  205:/*EOF*/
       16:       16:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
    87100:    96179:  209:/*EOF*/
        -:        -:  210:/*EOF*/
    87100:    96179:  211:/*EOF*/
    87100:    96179:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
   167588:   189972:  217:/*EOF*/
        -:        -:  218:/*EOF*/
   167588:   189972:  219:/*EOF*/
    10255:    11487:  220:/*EOF*/
   157333:   178485:  221:/*EOF*/
    76845:    84692:  222:/*EOF*/
    76845:    84692:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        -:        -:  226:/*EOF*/
    80488:    93793:  227:/*EOF*/
        -:        -:  228:/*EOF*/
    80488:    93793:  229:/*EOF*/
    80488:    93793:  230:/*EOF*/
        -:        -:  231:/*EOF*/
    #####:    #####:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
        -:        -:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    87079:    96158:  242:/*EOF*/
        -:        -:  243:/*EOF*/
    87079:    96158:  244:/*EOF*/
    87079:    96158:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
       21:       21:  249:/*EOF*/
        -:        -:  250:/*EOF*/
        -:        -:  251:/*EOF*/
       21:       21:  252:/*EOF*/
       21:       21:  253:/*EOF*/
        -:        -:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
     3524:     3623:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
        -:        -:  265:/*EOF*/
     3524:     3623:  266:/*EOF*/
    #####:    #####:  267:/*EOF*/
        -:        -:  268:/*EOF*/
     3524:     3623:  269:/*EOF*/
        -:        -:  270:/*EOF*/
     3524:     3623:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
        -:        -:  273:/*EOF*/
     3524:     3623:  274:/*EOF*/
        -:        -:  275:/*EOF*/
     3524:     3623:  276:/*EOF*/
     3524:     3623:  277:/*EOF*/
     3524:     3623:  278:/*EOF*/
     3524:     3623:  279:/*EOF*/
     3524:     3623:  280:/*EOF*/
     3524:     3623:  281:/*EOF*/
     3524:     3623:  282:/*EOF*/
        -:        -:  283:/*EOF*/
    58889:    60220:  284:/*EOF*/
    55365:    56597:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
     3524:     3623:  288:/*EOF*/
        -:        -:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    97535:   102286:  292:/*EOF*/
        -:        -:  293:/*EOF*/
        -:        -:  294:/*EOF*/
        -:        -:  295:/*EOF*/
    97535:   102286:  296:/*EOF*/
        -:        -:  297:/*EOF*/
    97535:   102286:  298:/*EOF*/
        -:        -:  299:/*EOF*/
    97535:   102286:  300:/*EOF*/
     3509:     3608:  301:/*EOF*/
    94026:    98678:  302:/*EOF*/
       15:       15:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
    97535:   102286:  306:/*EOF*/
    97535:   102286:  307:/*EOF*/
        -:        -:  308:/*EOF*/
   177504:   188497:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
   177504:   188497:  312:/*EOF*/
        -:        -:  313:/*EOF*/
    97445:   102194:  314:/*EOF*/
    97428:   102179:  315:/*EOF*/
    97445:   102194:  316:/*EOF*/
    97428:   102179:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        -:        -:  321:/*EOF*/
        -:        -:  322:/*EOF*/
        -:        -:  323:/*EOF*/
        -:        -:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
   160135:   172621:  331:/*EOF*/
    80166:    86410:  332:/*EOF*/
      107:      107:  333:/*EOF*/
      107:      107:  334:/*EOF*/
      107:      107:  335:/*EOF*/
      107:      107:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
    79969:    86211:  340:/*EOF*/
        -:        -:  341:/*EOF*/
    79969:    86211:  342:/*EOF*/
    79969:    86211:  343:/*EOF*/
        -:        -:  344:/*EOF*/
    97428:   102179:  345:/*EOF*/
    97428:   102179:  346:/*EOF*/
       17:       15:  347:/*EOF*/
    97428:   102179:  348:/*EOF*/
    97428:   102179:  349:/*EOF*/
    97428:   102179:  350:/*EOF*/
    97428:   102179:  351:/*EOF*/
    97428:   102179:  352:/*EOF*/
        -:        -:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    #####:    #####:  358:/*EOF*/
        -:        -:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    42167:    45686:  368:/*EOF*/
        -:        -:  369:/*EOF*/
    42167:    45686:  370:/*EOF*/
    42167:    45686:  371:/*EOF*/
        -:        -:  372:/*EOF*/
        -:        -:  373:/*EOF*/
        -:        -:  374:/*EOF*/
        3:        3:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        3:        3:  378:/*EOF*/
        3:        3:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        -:        -:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        -:        -:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        -:        -:  388:/*EOF*/
     1244:     1244:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        -:        -:  391:/*EOF*/
     1244:     1244:  392:/*EOF*/
    #####:    #####:  393:/*EOF*/
        -:        -:  394:/*EOF*/
     1244:     1244:  395:/*EOF*/
     1244:     1244:  396:/*EOF*/
     1244:     1244:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        -:        -:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
    71072:    73984:  407:/*EOF*/
        -:        -:  408:/*EOF*/
        -:        -:  409:/*EOF*/
    71072:    73984:  410:/*EOF*/
     6371:     7617:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    64701:    66367:  413:/*EOF*/
        -:        -:  414:/*EOF*/
   106534:   115482:  415:/*EOF*/
   100163:   107865:  416:/*EOF*/
    64701:    66367:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
     6371:     7617:  421:/*EOF*/
        -:        -:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        -:        -:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
        -:        -:  431:/*EOF*/
        -:        -:  432:/*EOF*/
    #####:    #####:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
    #####:    #####:  437:/*EOF*/
        -:        -:  438:/*EOF*/
    #####:    #####:  439:/*EOF*/
    #####:    #####:  440:/*EOF*/
        -:        -:  441:/*EOF*/
    #####:    #####:  442:/*EOF*/
    #####:    #####:  443:/*EOF*/
    #####:    #####:  444:/*EOF*/
    #####:    #####:  445:/*EOF*/
        -:        -:  446:/*EOF*/
        -:        -:  447:/*EOF*/
        -:        -:  448:/*EOF*/
    #####:    #####:  449:/*EOF*/
    #####:    #####:  450:/*EOF*/
    #####:    #####:  451:/*EOF*/
    #####:    #####:  452:/*EOF*/
        -:        -:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
    #####:    #####:  456:/*EOF*/
        -:        -:  457:/*EOF*/
        -:        -:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
        -:        -:  461:/*EOF*/
        -:        -:  462:/*EOF*/
        -:        -:  463:/*EOF*/
        -:        -:  464:/*EOF*/
        -:        -:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
        -:        -:  469:/*EOF*/
   219031:   245560:  470:/*EOF*/
        -:        -:  471:/*EOF*/
   219031:   245560:  472:/*EOF*/
        -:        -:  473:/*EOF*/
        -:        -:  474:/*EOF*/
        -:        -:  475:/*EOF*/
        -:        -:  476:/*EOF*/
        -:        -:  477:/*EOF*/
     4584:     4596:  478:/*EOF*/
        -:        -:  479:/*EOF*/
     4584:     4596:  480:/*EOF*/
        -:        -:  481:/*EOF*/
    81900:    82012:  482:/*EOF*/
    72732:    72820:  483:/*EOF*/
    72732:    72820:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
     4584:     4596:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
     1689:     1690:  495:/*EOF*/
        -:        -:  496:/*EOF*/
     1689:     1690:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
        -:        -:  500:/*EOF*/
   124866:   141285:  501:/*EOF*/
        -:        -:  502:/*EOF*/
   124866:   141285:  503:/*EOF*/

src/util/.libs/ralloc.c.gcov

        -:        -:    0:Source:ralloc.c
        -:        -:    0:Graph:libmesautil_la-ralloc.gcno
        -:        -:    0:Data:libmesautil_la-ralloc.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
   246571:   269368:   92:/*EOF*/
        -:        -:   93:/*EOF*/
   246571:   269368:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
   246571:   269368:   97:/*EOF*/
        -:        -:   98:/*EOF*/
   246571:   269368:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
   212222:   232558:  105:/*EOF*/
        -:        -:  106:/*EOF*/
   212222:   232558:  107:/*EOF*/
   207137:   226618:  108:/*EOF*/
   207137:   226618:  109:/*EOF*/
   207137:   226618:  110:/*EOF*/
        -:        -:  111:/*EOF*/
   207137:   226618:  112:/*EOF*/
   117502:   127361:  113:/*EOF*/
        -:        -:  114:/*EOF*/
   212222:   232558:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
      961:     1188:  118:/*EOF*/
        -:        -:  119:/*EOF*/
      961:     1188:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
   210742:   230986:  124:/*EOF*/
        -:        -:  125:/*EOF*/
   210742:   230986:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
   210742:   230986:  130:/*EOF*/
    #####:    #####:  131:/*EOF*/
        -:        -:  132:/*EOF*/
   210742:   230986:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
   210742:   230986:  138:/*EOF*/
   210742:   230986:  139:/*EOF*/
   210742:   230986:  140:/*EOF*/
   210742:   230986:  141:/*EOF*/
   210742:   230986:  142:/*EOF*/
        -:        -:  143:/*EOF*/
   210742:   230986:  144:/*EOF*/
        -:        -:  145:/*EOF*/
   210742:   230986:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
   210742:   230986:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
   210742:   230986:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
   113880:   123086:  156:/*EOF*/
        -:        -:  157:/*EOF*/
   113880:   123086:  158:/*EOF*/
        -:        -:  159:/*EOF*/
   113880:   123086:  160:/*EOF*/
   113880:   123086:  161:/*EOF*/
        -:        -:  162:/*EOF*/
   113880:   123086:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
      830:      866:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
      830:      866:  172:/*EOF*/
      830:      866:  173:/*EOF*/
        -:        -:  174:/*EOF*/
      830:      866:  175:/*EOF*/
    #####:    #####:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
      830:      866:  179:/*EOF*/
      285:      308:  180:/*EOF*/
       38:       37:  181:/*EOF*/
        -:        -:  182:/*EOF*/
      285:      308:  183:/*EOF*/
      247:      271:  184:/*EOF*/
        -:        -:  185:/*EOF*/
      285:      308:  186:/*EOF*/
      285:      308:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
      830:      866:  191:/*EOF*/
    #####:    #####:  192:/*EOF*/
        -:        -:  193:/*EOF*/
      830:      866:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
     1056:     1136:  198:/*EOF*/
        -:        -:  199:/*EOF*/
     1056:     1136:  200:/*EOF*/
      737:      801:  201:/*EOF*/
        -:        -:  202:/*EOF*/
      319:      335:  203:/*EOF*/
      319:      335:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
     1800:     1878:  208:/*EOF*/
        -:        -:  209:/*EOF*/
     1800:     1878:  210:/*EOF*/
    #####:    #####:  211:/*EOF*/
        -:        -:  212:/*EOF*/
     1800:     1878:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
    80678:    89557:  217:/*EOF*/
        -:        -:  218:/*EOF*/
    80678:    89557:  219:/*EOF*/
    #####:    #####:  220:/*EOF*/
        -:        -:  221:/*EOF*/
    80678:    89557:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
     1055:     1135:  226:/*EOF*/
        -:        -:  227:/*EOF*/
     1055:     1135:  228:/*EOF*/
    #####:    #####:  229:/*EOF*/
        -:        -:  230:/*EOF*/
     1055:     1135:  231:/*EOF*/
        -:        -:  232:/*EOF*/
        -:        -:  233:/*EOF*/
        -:        -:  234:/*EOF*/
    24804:    27638:  235:/*EOF*/
        -:        -:  236:/*EOF*/
        -:        -:  237:/*EOF*/
        -:        -:  238:/*EOF*/
    24804:    27638:  239:/*EOF*/
     8266:     8351:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    16538:    19287:  242:/*EOF*/
    16538:    19287:  243:/*EOF*/
    16538:    19287:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    18018:    20859:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    18018:    20859:  251:/*EOF*/
    12933:    14919:  252:/*EOF*/
     1494:     2394:  253:/*EOF*/
        -:        -:  254:/*EOF*/
    12933:    14919:  255:/*EOF*/
    11439:    12525:  256:/*EOF*/
        -:        -:  257:/*EOF*/
    12933:    14919:  258:/*EOF*/
     4247:     5425:  259:/*EOF*/
        -:        -:  260:/*EOF*/
    18018:    20859:  261:/*EOF*/
    18018:    20859:  262:/*EOF*/
    18018:    20859:  263:/*EOF*/
    18018:    20859:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
   210742:   230986:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
        -:        -:  270:/*EOF*/
   615688:   673671:  271:/*EOF*/
   194204:   211699:  272:/*EOF*/
   194204:   211699:  273:/*EOF*/
   194204:   211699:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
   210742:   230986:  278:/*EOF*/
      456:      512:  279:/*EOF*/
        -:        -:  280:/*EOF*/
   210742:   230986:  281:/*EOF*/
   210742:   230986:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
     1491:     1583:  285:/*EOF*/
        -:        -:  286:/*EOF*/
        -:        -:  287:/*EOF*/
        -:        -:  288:/*EOF*/
     1491:     1583:  289:/*EOF*/
       11:       11:  290:/*EOF*/
        -:        -:  291:/*EOF*/
     1480:     1572:  292:/*EOF*/
     1480:     1572:  293:/*EOF*/
        -:        -:  294:/*EOF*/
     1480:     1572:  295:/*EOF*/
        -:        -:  296:/*EOF*/
     1480:     1572:  297:/*EOF*/
        -:        -:  298:/*EOF*/
        -:        -:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        8:        8:  301:/*EOF*/
        -:        -:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        8:        8:  305:/*EOF*/
    #####:    #####:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        8:        8:  308:/*EOF*/
        8:        8:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        8:        8:  312:/*EOF*/
    #####:    #####:  313:/*EOF*/
        -:        -:  314:/*EOF*/
        -:        -:  315:/*EOF*/
      705:      836:  316:/*EOF*/
      697:      828:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
        -:        -:  320:/*EOF*/
        8:        8:  321:/*EOF*/
        8:        8:  322:/*EOF*/
        8:        8:  323:/*EOF*/
        8:        8:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
    20100:    20483:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
    20100:    20483:  332:/*EOF*/
    #####:    #####:  333:/*EOF*/
        -:        -:  334:/*EOF*/
    20100:    20483:  335:/*EOF*/
    20100:    20483:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
      470:      526:  340:/*EOF*/
        -:        -:  341:/*EOF*/
      470:      526:  342:/*EOF*/
      470:      526:  343:/*EOF*/
      470:      526:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
     2241:     2395:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
        -:        -:  351:/*EOF*/
     2241:     2395:  352:/*EOF*/
     1375:     1527:  353:/*EOF*/
        -:        -:  354:/*EOF*/
      866:      868:  355:/*EOF*/
      866:      868:  356:/*EOF*/
      866:      868:  357:/*EOF*/
      866:      868:  358:/*EOF*/
      866:      868:  359:/*EOF*/
        -:        -:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
        -:        -:  370:/*EOF*/
    #####:    #####:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
        -:        -:  377:/*EOF*/
        -:        -:  378:/*EOF*/
        -:        -:  379:/*EOF*/
        4:        4:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
        4:        4:  384:/*EOF*/
        -:        -:  385:/*EOF*/
        4:        4:  386:/*EOF*/
        4:        4:  387:/*EOF*/
        4:        4:  388:/*EOF*/
    #####:    #####:  389:/*EOF*/
        -:        -:  390:/*EOF*/
        4:        4:  391:/*EOF*/
        4:        4:  392:/*EOF*/
        -:        -:  393:/*EOF*/
        4:        4:  394:/*EOF*/
        4:        4:  395:/*EOF*/
        -:        -:  396:/*EOF*/
        -:        -:  397:/*EOF*/
        -:        -:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        4:        4:  400:/*EOF*/
        -:        -:  401:/*EOF*/
        4:        4:  402:/*EOF*/
        -:        -:  403:/*EOF*/
        -:        -:  404:/*EOF*/
        -:        -:  405:/*EOF*/
    #####:    #####:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
    #####:    #####:  409:/*EOF*/
    #####:    #####:  410:/*EOF*/
    #####:    #####:  411:/*EOF*/
        -:        -:  412:/*EOF*/
    #####:    #####:  413:/*EOF*/
        -:        -:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
      555:      555:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        -:        -:  419:/*EOF*/
        -:        -:  420:/*EOF*/
      555:      555:  421:/*EOF*/
      555:      555:  422:/*EOF*/
      555:      555:  423:/*EOF*/
      555:      555:  424:/*EOF*/
        -:        -:  425:/*EOF*/
        -:        -:  426:/*EOF*/
        -:        -:  427:/*EOF*/
        -:        -:  428:/*EOF*/
        -:        -:  429:/*EOF*/
        -:        -:  430:/*EOF*/
     1062:     1082:  431:/*EOF*/
        -:        -:  432:/*EOF*/
        -:        -:  433:/*EOF*/
        -:        -:  434:/*EOF*/
        -:        -:  435:/*EOF*/
        -:        -:  436:/*EOF*/
        -:        -:  437:/*EOF*/
     1062:     1082:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        -:        -:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
        -:        -:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
     1062:     1082:  447:/*EOF*/
        -:        -:  448:/*EOF*/
     1062:     1082:  449:/*EOF*/
        -:        -:  450:/*EOF*/
     1062:     1082:  451:/*EOF*/
        -:        -:  452:/*EOF*/
     1062:     1082:  453:/*EOF*/
        -:        -:  454:/*EOF*/
        -:        -:  455:/*EOF*/
        -:        -:  456:/*EOF*/
      555:      555:  457:/*EOF*/
        -:        -:  458:/*EOF*/
      555:      555:  459:/*EOF*/
        -:        -:  460:/*EOF*/
      555:      555:  461:/*EOF*/
      555:      555:  462:/*EOF*/
      555:      555:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      555:      555:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
       15:       15:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
        -:        -:  472:/*EOF*/
       15:       15:  473:/*EOF*/
       15:       15:  474:/*EOF*/
       15:       15:  475:/*EOF*/
       15:       15:  476:/*EOF*/
        -:        -:  477:/*EOF*/
        -:        -:  478:/*EOF*/
        -:        -:  479:/*EOF*/
       15:       15:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
       15:       15:  483:/*EOF*/
       15:       15:  484:/*EOF*/
       15:       15:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
      492:      512:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
      492:      512:  493:/*EOF*/
      492:      512:  494:/*EOF*/
      492:      512:  495:/*EOF*/
      492:      512:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        -:        -:  498:/*EOF*/
        -:        -:  499:/*EOF*/
      507:      527:  500:/*EOF*/
        -:        -:  501:/*EOF*/
        -:        -:  502:/*EOF*/
        -:        -:  503:/*EOF*/
        -:        -:  504:/*EOF*/
        -:        -:  505:/*EOF*/
      507:      527:  506:/*EOF*/
        -:        -:  507:/*EOF*/
      507:      527:  508:/*EOF*/
        -:        -:  509:/*EOF*/
    #####:    #####:  510:/*EOF*/
    #####:    #####:  511:/*EOF*/
    #####:    #####:  512:/*EOF*/
        -:        -:  513:/*EOF*/
        -:        -:  514:/*EOF*/
      507:      527:  515:/*EOF*/
        -:        -:  516:/*EOF*/
      507:      527:  517:/*EOF*/
      507:      527:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
        -:        -:  520:/*EOF*/
      507:      527:  521:/*EOF*/
      507:      527:  522:/*EOF*/
      507:      527:  523:/*EOF*/
      507:      527:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
        -:        -:  527:/*EOF*/
        -:        -:  528:/*EOF*/
        -:        -:  529:/*EOF*/
        -:        -:  530:/*EOF*/
        -:        -:  531:/*EOF*/
        -:        -:  532:/*EOF*/
        -:        -:  533:/*EOF*/
        -:        -:  534:/*EOF*/
        -:        -:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        -:        -:  539:/*EOF*/
        -:        -:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        -:        -:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        -:        -:  552:/*EOF*/
        -:        -:  553:/*EOF*/
        -:        -:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
        -:        -:  557:/*EOF*/
        -:        -:  558:/*EOF*/
        -:        -:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
        -:        -:  564:/*EOF*/
        -:        -:  565:/*EOF*/
        -:        -:  566:/*EOF*/
        -:        -:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
        -:        -:  570:/*EOF*/
        -:        -:  571:/*EOF*/
        -:        -:  572:/*EOF*/
        -:        -:  573:/*EOF*/
        -:        -:  574:/*EOF*/
        -:        -:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
        -:        -:  578:/*EOF*/
        -:        -:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
        -:        -:  585:/*EOF*/
        -:        -:  586:/*EOF*/
        -:        -:  587:/*EOF*/
        -:        -:  588:/*EOF*/
      463:      543:  589:/*EOF*/
        -:        -:  590:/*EOF*/
        -:        -:  591:/*EOF*/
        -:        -:  592:/*EOF*/
      463:      543:  593:/*EOF*/
        -:        -:  594:/*EOF*/
      463:      543:  595:/*EOF*/
      463:      543:  596:/*EOF*/
        -:        -:  597:/*EOF*/
      463:      543:  598:/*EOF*/
      463:      543:  599:/*EOF*/
    #####:    #####:  600:/*EOF*/
        -:        -:  601:/*EOF*/
        -:        -:  602:/*EOF*/
      463:      543:  603:/*EOF*/
        -:        -:  604:/*EOF*/
      463:      543:  605:/*EOF*/
      463:      543:  606:/*EOF*/
      463:      543:  607:/*EOF*/
      463:      543:  608:/*EOF*/
      463:      543:  609:/*EOF*/
      463:      543:  610:/*EOF*/
        -:        -:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        -:        -:  613:/*EOF*/
     5245:     5485:  614:/*EOF*/
        -:        -:  615:/*EOF*/
     5245:     5485:  616:/*EOF*/
     5245:     5485:  617:/*EOF*/
        -:        -:  618:/*EOF*/
        -:        -:  619:/*EOF*/
        -:        -:  620:/*EOF*/
        -:        -:  621:/*EOF*/
     5245:     5485:  622:/*EOF*/
     5245:     5485:  623:/*EOF*/
        -:        -:  624:/*EOF*/
     5245:     5485:  625:/*EOF*/
     5245:     5485:  626:/*EOF*/
        -:        -:  627:/*EOF*/
     5245:     5485:  628:/*EOF*/
        -:        -:  629:/*EOF*/
       98:      101:  630:/*EOF*/
       98:      101:  631:/*EOF*/
    #####:    #####:  632:/*EOF*/
        -:        -:  633:/*EOF*/
       98:      101:  634:/*EOF*/
       98:      101:  635:/*EOF*/
       98:      101:  636:/*EOF*/
       98:      101:  637:/*EOF*/
        -:        -:  638:/*EOF*/
        -:        -:  639:/*EOF*/
     5245:     5485:  640:/*EOF*/
     5245:     5485:  641:/*EOF*/
     5245:     5485:  642:/*EOF*/
     5245:     5485:  643:/*EOF*/
        -:        -:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
      365:      442:  647:/*EOF*/
        -:        -:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
      365:      442:  651:/*EOF*/
    #####:    #####:  652:/*EOF*/
        -:        -:  653:/*EOF*/
      365:      442:  654:/*EOF*/
        -:        -:  655:/*EOF*/
      365:      442:  656:/*EOF*/
      365:      442:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
        -:        -:  659:/*EOF*/
      365:      442:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
        -:        -:  664:/*EOF*/
        -:        -:  665:/*EOF*/
     2180:     2298:  666:/*EOF*/
        -:        -:  667:/*EOF*/
     2180:     2298:  668:/*EOF*/
        -:        -:  669:/*EOF*/
     2180:     2298:  670:/*EOF*/
     2180:     2298:  671:/*EOF*/
     2180:     2298:  672:/*EOF*/
        -:        -:  673:/*EOF*/
        -:        -:  674:/*EOF*/
        -:        -:  675:/*EOF*/
    #####:    #####:  676:/*EOF*/
        -:        -:  677:/*EOF*/
    #####:    #####:  678:/*EOF*/
        -:        -:  679:/*EOF*/
    #####:    #####:  680:/*EOF*/
    #####:    #####:  681:/*EOF*/
    #####:    #####:  682:/*EOF*/
        -:        -:  683:/*EOF*/
        -:        -:  684:/*EOF*/
        -:        -:  685:/*EOF*/
    #####:    #####:  686:/*EOF*/
        -:        -:  687:/*EOF*/
        -:        -:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
    #####:    #####:  694:/*EOF*/
        -:        -:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
    #####:    #####:  699:/*EOF*/
    #####:    #####:  700:/*EOF*/
        -:        -:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
    #####:    #####:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
    #####:    #####:  710:/*EOF*/
        -:        -:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/
    #####:    #####:  713:/*EOF*/
        -:        -:  714:/*EOF*/
    #####:    #####:  715:/*EOF*/
    #####:    #####:  716:/*EOF*/
    #####:    #####:  717:/*EOF*/
    #####:    #####:  718:/*EOF*/
        -:        -:  719:/*EOF*/
        -:        -:  720:/*EOF*/
        -:        -:  721:/*EOF*/
        -:        -:  722:/*EOF*/
    #####:    #####:  723:/*EOF*/
        -:        -:  724:/*EOF*/
    #####:    #####:  725:/*EOF*/
    #####:    #####:  726:/*EOF*/
    #####:    #####:  727:/*EOF*/
        -:        -:  728:/*EOF*/
        -:        -:  729:/*EOF*/
        -:        -:  730:/*EOF*/
    #####:    #####:  731:/*EOF*/
        -:        -:  732:/*EOF*/
    #####:    #####:  733:/*EOF*/
        -:        -:  734:/*EOF*/
        -:        -:  735:/*EOF*/
    #####:    #####:  736:/*EOF*/
        -:        -:  737:/*EOF*/
    #####:    #####:  738:/*EOF*/
    #####:    #####:  739:/*EOF*/
        -:        -:  740:/*EOF*/
    #####:    #####:  741:/*EOF*/
        -:        -:  742:/*EOF*/
    #####:    #####:  743:/*EOF*/
    #####:    #####:  744:/*EOF*/
        -:        -:  745:/*EOF*/
    #####:    #####:  746:/*EOF*/
        -:        -:  747:/*EOF*/
        -:        -:  748:/*EOF*/
        -:        -:  749:/*EOF*/
        -:        -:  750:/*EOF*/
        -:        -:  751:/*EOF*/
        -:        -:  752:/*EOF*/
        -:        -:  753:/*EOF*/
      352:      359:  754:/*EOF*/
        -:        -:  755:/*EOF*/
        -:        -:  756:/*EOF*/
        -:        -:  757:/*EOF*/
        -:        -:  758:/*EOF*/
      352:      359:  759:/*EOF*/
    #####:    #####:  760:/*EOF*/
        -:        -:  761:/*EOF*/
      352:      359:  762:/*EOF*/
      352:      359:  763:/*EOF*/
      352:      359:  764:/*EOF*/
    #####:    #####:  765:/*EOF*/
        -:        -:  766:/*EOF*/
      352:      359:  767:/*EOF*/
      352:      359:  768:/*EOF*/
      352:      359:  769:/*EOF*/
        -:        -:  770:/*EOF*/
        -:        -:  771:/*EOF*/
        -:        -:  772:/*EOF*/
    #####:    #####:  773:/*EOF*/
        -:        -:  774:/*EOF*/
        -:        -:  775:/*EOF*/
        -:        -:  776:/*EOF*/
    #####:    #####:  777:/*EOF*/
    #####:    #####:  778:/*EOF*/
    #####:    #####:  779:/*EOF*/
    #####:    #####:  780:/*EOF*/
        -:        -:  781:/*EOF*/
        -:        -:  782:/*EOF*/
        -:        -:  783:/*EOF*/
    #####:    #####:  784:/*EOF*/
        -:        -:  785:/*EOF*/
    #####:    #####:  786:/*EOF*/
        -:        -:  787:/*EOF*/
    #####:    #####:  788:/*EOF*/
    #####:    #####:  789:/*EOF*/
    #####:    #####:  790:/*EOF*/
        -:        -:  791:/*EOF*/
    #####:    #####:  792:/*EOF*/
        -:        -:  793:/*EOF*/
        -:        -:  794:/*EOF*/
        -:        -:  795:/*EOF*/
    #####:    #####:  796:/*EOF*/
        -:        -:  797:/*EOF*/
        -:        -:  798:/*EOF*/
        -:        -:  799:/*EOF*/
    #####:    #####:  800:/*EOF*/
    #####:    #####:  801:/*EOF*/
    #####:    #####:  802:/*EOF*/
    #####:    #####:  803:/*EOF*/
        -:        -:  804:/*EOF*/
        -:        -:  805:/*EOF*/
        -:        -:  806:/*EOF*/
    #####:    #####:  807:/*EOF*/
        -:        -:  808:/*EOF*/
        -:        -:  809:/*EOF*/
    #####:    #####:  810:/*EOF*/
    #####:    #####:  811:/*EOF*/
    #####:    #####:  812:/*EOF*/
        -:        -:  813:/*EOF*/
        -:        -:  814:/*EOF*/
        -:        -:  815:/*EOF*/
    #####:    #####:  816:/*EOF*/
        -:        -:  817:/*EOF*/
        -:        -:  818:/*EOF*/
        -:        -:  819:/*EOF*/
        -:        -:  820:/*EOF*/
    #####:    #####:  821:/*EOF*/
    #####:    #####:  822:/*EOF*/
    #####:    #####:  823:/*EOF*/
    #####:    #####:  824:/*EOF*/
        -:        -:  825:/*EOF*/
        -:        -:  826:/*EOF*/
        -:        -:  827:/*EOF*/
    #####:    #####:  828:/*EOF*/
        -:        -:  829:/*EOF*/
        -:        -:  830:/*EOF*/
        -:        -:  831:/*EOF*/
        -:        -:  832:/*EOF*/
        -:        -:  833:/*EOF*/
    #####:    #####:  834:/*EOF*/
        -:        -:  835:/*EOF*/
    #####:    #####:  836:/*EOF*/
    #####:    #####:  837:/*EOF*/
    #####:    #####:  838:/*EOF*/
    #####:    #####:  839:/*EOF*/
        -:        -:  840:/*EOF*/
        -:        -:  841:/*EOF*/
    #####:    #####:  842:/*EOF*/
        -:        -:  843:/*EOF*/
    #####:    #####:  844:/*EOF*/
    #####:    #####:  845:/*EOF*/
    #####:    #####:  846:/*EOF*/
        -:        -:  847:/*EOF*/
    #####:    #####:  848:/*EOF*/
    #####:    #####:  849:/*EOF*/
    #####:    #####:  850:/*EOF*/
    #####:    #####:  851:/*EOF*/
        -:        -:  852:/*EOF*/
        -:        -:  853:/*EOF*/
        -:        -:  854:/*EOF*/
        -:        -:  855:/*EOF*/
    #####:    #####:  856:/*EOF*/
        -:        -:  857:/*EOF*/
        -:        -:  858:/*EOF*/
        -:        -:  859:/*EOF*/
    #####:    #####:  860:/*EOF*/
        -:        -:  861:/*EOF*/
    #####:    #####:  862:/*EOF*/
    #####:    #####:  863:/*EOF*/
    #####:    #####:  864:/*EOF*/
    #####:    #####:  865:/*EOF*/
        -:        -:  866:/*EOF*/
    #####:    #####:  867:/*EOF*/
    #####:    #####:  868:/*EOF*/
        -:        -:  869:/*EOF*/
    #####:    #####:  870:/*EOF*/
    #####:    #####:  871:/*EOF*/
        -:        -:  872:/*EOF*/
        -:        -:  873:/*EOF*/
        -:        -:  874:/*EOF*/
    #####:    #####:  875:/*EOF*/
        -:        -:  876:/*EOF*/
    #####:    #####:  877:/*EOF*/

src/util/.libs/register_allocate.c.gcov

        -:        -:    0:Source:register_allocate.c
        -:        -:    0:Graph:libmesautil_la-register_allocate.gcno
        -:        -:    0:Data:libmesautil_la-register_allocate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
        -:        -:   88:/*EOF*/
        -:        -:   89:/*EOF*/
        -:        -:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
        -:        -:   94:/*EOF*/
        -:        -:   95:/*EOF*/
        -:        -:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
        -:        -:  100:/*EOF*/
        -:        -:  101:/*EOF*/
        -:        -:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
        -:        -:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
        -:        -:  113:/*EOF*/
        -:        -:  114:/*EOF*/
        -:        -:  115:/*EOF*/
        -:        -:  116:/*EOF*/
        -:        -:  117:/*EOF*/
        -:        -:  118:/*EOF*/
        -:        -:  119:/*EOF*/
        -:        -:  120:/*EOF*/
        -:        -:  121:/*EOF*/
        -:        -:  122:/*EOF*/
        -:        -:  123:/*EOF*/
        -:        -:  124:/*EOF*/
        -:        -:  125:/*EOF*/
        -:        -:  126:/*EOF*/
        -:        -:  127:/*EOF*/
        -:        -:  128:/*EOF*/
        -:        -:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
        -:        -:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
        -:        -:  142:/*EOF*/
        -:        -:  143:/*EOF*/
        -:        -:  144:/*EOF*/
        -:        -:  145:/*EOF*/
        -:        -:  146:/*EOF*/
        -:        -:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
        -:        -:  150:/*EOF*/
        -:        -:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
        -:        -:  154:/*EOF*/
        -:        -:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
        -:        -:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
        -:        -:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
        -:        -:  172:/*EOF*/
        -:        -:  173:/*EOF*/
        -:        -:  174:/*EOF*/
        -:        -:  175:/*EOF*/
        -:        -:  176:/*EOF*/
        -:        -:  177:/*EOF*/
        -:        -:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
        -:        -:  182:/*EOF*/
        -:        -:  183:/*EOF*/
        -:        -:  184:/*EOF*/
        -:        -:  185:/*EOF*/
        4:        4:  186:/*EOF*/
        -:        -:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
        4:        4:  191:/*EOF*/
        4:        4:  192:/*EOF*/
        4:        4:  193:/*EOF*/
        -:        -:  194:/*EOF*/
     7716:     7716:  195:/*EOF*/
     7712:     7712:  196:/*EOF*/
        -:        -:  197:/*EOF*/
     7712:     7712:  198:/*EOF*/
        -:        -:  199:/*EOF*/
     7712:     7712:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
    #####:    #####:  204:/*EOF*/
        -:        -:  205:/*EOF*/
     7712:     7712:  206:/*EOF*/
     7712:     7712:  207:/*EOF*/
        -:        -:  208:/*EOF*/
     7712:     7712:  209:/*EOF*/
        -:        -:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        4:        4:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
        -:        -:  215:/*EOF*/
        -:        -:  216:/*EOF*/
        -:        -:  217:/*EOF*/
        -:        -:  218:/*EOF*/
        -:        -:  219:/*EOF*/
        -:        -:  220:/*EOF*/
        -:        -:  221:/*EOF*/
        -:        -:  222:/*EOF*/
        -:        -:  223:/*EOF*/
        -:        -:  224:/*EOF*/
        -:        -:  225:/*EOF*/
        4:        4:  226:/*EOF*/
        -:        -:  227:/*EOF*/
        4:        4:  228:/*EOF*/
        4:        4:  229:/*EOF*/
        -:        -:  230:/*EOF*/
        -:        -:  231:/*EOF*/
   127360:   127360:  232:/*EOF*/
        -:        -:  233:/*EOF*/
   127360:   127360:  234:/*EOF*/
        -:        -:  235:/*EOF*/
   127360:   127360:  236:/*EOF*/
    #####:    #####:  237:/*EOF*/
    #####:    #####:  238:/*EOF*/
    #####:    #####:  239:/*EOF*/
        -:        -:  240:/*EOF*/
        -:        -:  241:/*EOF*/
    #####:    #####:  242:/*EOF*/
        -:        -:  243:/*EOF*/
   127360:   127360:  244:/*EOF*/
   127360:   127360:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
    64192:    64192:  248:/*EOF*/
        -:        -:  249:/*EOF*/
    64192:    64192:  250:/*EOF*/
    63680:    63680:  251:/*EOF*/
    63680:    63680:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    64192:    64192:  254:/*EOF*/
        -:        -:  255:/*EOF*/
        -:        -:  256:/*EOF*/
        -:        -:  257:/*EOF*/
        -:        -:  258:/*EOF*/
        -:        -:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
        -:        -:  262:/*EOF*/
        -:        -:  263:/*EOF*/
        -:        -:  264:/*EOF*/
    #####:    #####:  265:/*EOF*/
        -:        -:  266:/*EOF*/
        -:        -:  267:/*EOF*/
        -:        -:  268:/*EOF*/
        -:        -:  269:/*EOF*/
    #####:    #####:  270:/*EOF*/
        -:        -:  271:/*EOF*/
    #####:    #####:  272:/*EOF*/
    #####:    #####:  273:/*EOF*/
        -:        -:  274:/*EOF*/
    #####:    #####:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
        -:        -:  285:/*EOF*/
        -:        -:  286:/*EOF*/
      512:      512:  287:/*EOF*/
        -:        -:  288:/*EOF*/
      512:      512:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
        -:        -:  292:/*EOF*/
    65216:    65216:  293:/*EOF*/
    64192:    64192:  294:/*EOF*/
        -:        -:  295:/*EOF*/
  3979904:  3979904:  296:/*EOF*/
  3915712:  3915712:  297:/*EOF*/
        -:        -:  298:/*EOF*/
      512:      512:  299:/*EOF*/
        -:        -:  300:/*EOF*/
        -:        -:  301:/*EOF*/
       65:       65:  302:/*EOF*/
        -:        -:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
       65:       65:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
       65:       65:  309:/*EOF*/
       65:       65:  310:/*EOF*/
        -:        -:  311:/*EOF*/
       65:       65:  312:/*EOF*/
        -:        -:  313:/*EOF*/
       65:       65:  314:/*EOF*/
        -:        -:  315:/*EOF*/
        -:        -:  316:/*EOF*/
        -:        -:  317:/*EOF*/
     7776:     7776:  318:/*EOF*/
        -:        -:  319:/*EOF*/
     7776:     7776:  320:/*EOF*/
        -:        -:  321:/*EOF*/
     7776:     7776:  322:/*EOF*/
     7776:     7776:  323:/*EOF*/
     7776:     7776:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
     2289:     2322:  330:/*EOF*/
        -:        -:  331:/*EOF*/
     2289:     2322:  332:/*EOF*/
        -:        -:  333:/*EOF*/
        -:        -:  334:/*EOF*/
        -:        -:  335:/*EOF*/
        -:        -:  336:/*EOF*/
        -:        -:  337:/*EOF*/
        -:        -:  338:/*EOF*/
        -:        -:  339:/*EOF*/
        -:        -:  340:/*EOF*/
        -:        -:  341:/*EOF*/
        4:        4:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
       69:       69:  346:/*EOF*/
       65:       65:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        4:        4:  350:/*EOF*/
       69:       69:  351:/*EOF*/
     1122:     1122:  352:/*EOF*/
     1057:     1057:  353:/*EOF*/
        -:        -:  354:/*EOF*/
        -:        -:  355:/*EOF*/
        -:        -:  356:/*EOF*/
        -:        -:  357:/*EOF*/
        -:        -:  358:/*EOF*/
        -:        -:  359:/*EOF*/
    #####:    #####:  360:/*EOF*/
    #####:    #####:  361:/*EOF*/
        -:        -:  362:/*EOF*/
    #####:    #####:  363:/*EOF*/
        -:        -:  364:/*EOF*/
    #####:    #####:  365:/*EOF*/
    #####:    #####:  366:/*EOF*/
        -:        -:  367:/*EOF*/
        -:        -:  368:/*EOF*/
    #####:    #####:  369:/*EOF*/
    #####:    #####:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
    #####:    #####:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
        -:        -:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
        -:        -:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
     7716:     7716:  384:/*EOF*/
     7712:     7712:  385:/*EOF*/
     7712:     7712:  386:/*EOF*/
        -:        -:  387:/*EOF*/
        4:        4:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
     1997:     2113:  391:/*EOF*/
        -:        -:  392:/*EOF*/
     1997:     2113:  393:/*EOF*/
        -:        -:  394:/*EOF*/
     1997:     2113:  395:/*EOF*/
     1846:     1962:  396:/*EOF*/
     1846:     1962:  397:/*EOF*/
     1846:     1962:  398:/*EOF*/
        -:        -:  399:/*EOF*/
        -:        -:  400:/*EOF*/
     3994:     4226:  401:/*EOF*/
     1997:     2113:  402:/*EOF*/
      253:      269:  403:/*EOF*/
      253:      269:  404:/*EOF*/
        -:        -:  405:/*EOF*/
        -:        -:  406:/*EOF*/
        -:        -:  407:/*EOF*/
        -:        -:  408:/*EOF*/
     1997:     2113:  409:/*EOF*/
     1997:     2113:  410:/*EOF*/
     1997:     2113:  411:/*EOF*/
        -:        -:  412:/*EOF*/
        -:        -:  413:/*EOF*/
        7:        7:  414:/*EOF*/
        -:        -:  415:/*EOF*/
        -:        -:  416:/*EOF*/
        -:        -:  417:/*EOF*/
        -:        -:  418:/*EOF*/
        7:        7:  419:/*EOF*/
        7:        7:  420:/*EOF*/
        7:        7:  421:/*EOF*/
        7:        7:  422:/*EOF*/
        -:        -:  423:/*EOF*/
        7:        7:  424:/*EOF*/
        -:        -:  425:/*EOF*/
      158:      158:  426:/*EOF*/
      151:      151:  427:/*EOF*/
      151:      151:  428:/*EOF*/
        -:        -:  429:/*EOF*/
      151:      151:  430:/*EOF*/
      302:      302:  431:/*EOF*/
      151:      151:  432:/*EOF*/
      151:      151:  433:/*EOF*/
      151:      151:  434:/*EOF*/
        -:        -:  435:/*EOF*/
      151:      151:  436:/*EOF*/
      151:      151:  437:/*EOF*/
        -:        -:  438:/*EOF*/
        -:        -:  439:/*EOF*/
        7:        7:  440:/*EOF*/
        -:        -:  441:/*EOF*/
        -:        -:  442:/*EOF*/
        -:        -:  443:/*EOF*/
      112:      112:  444:/*EOF*/
        -:        -:  445:/*EOF*/
        -:        -:  446:/*EOF*/
      112:      112:  447:/*EOF*/
      112:      112:  448:/*EOF*/
        -:        -:  449:/*EOF*/
        -:        -:  450:/*EOF*/
      990:     1048:  451:/*EOF*/
        -:        -:  452:/*EOF*/
        -:        -:  453:/*EOF*/
      990:     1048:  454:/*EOF*/
      923:      981:  455:/*EOF*/
      923:      981:  456:/*EOF*/
        -:        -:  457:/*EOF*/
      990:     1048:  458:/*EOF*/
        -:        -:  459:/*EOF*/
        -:        -:  460:/*EOF*/
      112:      112:  461:/*EOF*/
        -:        -:  462:/*EOF*/
      112:      112:  463:/*EOF*/
        -:        -:  464:/*EOF*/
      112:      112:  465:/*EOF*/
        -:        -:  466:/*EOF*/
        -:        -:  467:/*EOF*/
        -:        -:  468:/*EOF*/
      112:      112:  469:/*EOF*/
        -:        -:  470:/*EOF*/
        -:        -:  471:/*EOF*/
      112:      112:  472:/*EOF*/
        -:        -:  473:/*EOF*/
     1687:     1803:  474:/*EOF*/
     1575:     1691:  475:/*EOF*/
     1575:     1691:  476:/*EOF*/
        -:        -:  477:/*EOF*/
     1575:     1691:  478:/*EOF*/
      912:      970:  479:/*EOF*/
      912:      970:  480:/*EOF*/
        -:        -:  481:/*EOF*/
        -:        -:  482:/*EOF*/
      112:      112:  483:/*EOF*/
        -:        -:  484:/*EOF*/
        -:        -:  485:/*EOF*/
        -:        -:  486:/*EOF*/
        -:        -:  487:/*EOF*/
        -:        -:  488:/*EOF*/
        -:        -:  489:/*EOF*/
        -:        -:  490:/*EOF*/
        -:        -:  491:/*EOF*/
        -:        -:  492:/*EOF*/
        -:        -:  493:/*EOF*/
        -:        -:  494:/*EOF*/
        -:        -:  495:/*EOF*/
        7:        7:  496:/*EOF*/
        -:        -:  497:/*EOF*/
        7:        7:  498:/*EOF*/
        7:        7:  499:/*EOF*/
        -:        -:  500:/*EOF*/
        -:        -:  501:/*EOF*/
       28:       28:  502:/*EOF*/
       14:       14:  503:/*EOF*/
       14:       14:  504:/*EOF*/
        -:        -:  505:/*EOF*/
       14:       14:  506:/*EOF*/
        -:        -:  507:/*EOF*/
      316:      316:  508:/*EOF*/
      302:      302:  509:/*EOF*/
      190:      190:  510:/*EOF*/
        -:        -:  511:/*EOF*/
      112:      112:  512:/*EOF*/
      112:      112:  513:/*EOF*/
      112:      112:  514:/*EOF*/
      112:      112:  515:/*EOF*/
      112:      112:  516:/*EOF*/
      112:      112:  517:/*EOF*/
        -:        -:  518:/*EOF*/
    #####:    #####:  519:/*EOF*/
    #####:    #####:  520:/*EOF*/
    #####:    #####:  521:/*EOF*/
    #####:    #####:  522:/*EOF*/
        -:        -:  523:/*EOF*/
        -:        -:  524:/*EOF*/
        -:        -:  525:/*EOF*/
        -:        -:  526:/*EOF*/
       14:       14:  527:/*EOF*/
    #####:    #####:  528:/*EOF*/
    #####:    #####:  529:/*EOF*/
        -:        -:  530:/*EOF*/
    #####:    #####:  531:/*EOF*/
    #####:    #####:  532:/*EOF*/
    #####:    #####:  533:/*EOF*/
    #####:    #####:  534:/*EOF*/
    #####:    #####:  535:/*EOF*/
        -:        -:  536:/*EOF*/
        -:        -:  537:/*EOF*/
        -:        -:  538:/*EOF*/
        7:        7:  539:/*EOF*/
        7:        7:  540:/*EOF*/
        -:        -:  541:/*EOF*/
        -:        -:  542:/*EOF*/
        -:        -:  543:/*EOF*/
        -:        -:  544:/*EOF*/
        -:        -:  545:/*EOF*/
        -:        -:  546:/*EOF*/
        -:        -:  547:/*EOF*/
        -:        -:  548:/*EOF*/
        -:        -:  549:/*EOF*/
        7:        7:  550:/*EOF*/
        -:        -:  551:/*EOF*/
        7:        7:  552:/*EOF*/
        -:        -:  553:/*EOF*/
      126:      126:  554:/*EOF*/
        -:        -:  555:/*EOF*/
        -:        -:  556:/*EOF*/
      112:      112:  557:/*EOF*/
      112:      112:  558:/*EOF*/
      112:      112:  559:/*EOF*/
        -:        -:  560:/*EOF*/
        -:        -:  561:/*EOF*/
        -:        -:  562:/*EOF*/
        -:        -:  563:/*EOF*/
     2289:     2322:  564:/*EOF*/
     2289:     2322:  565:/*EOF*/
     2289:     2322:  566:/*EOF*/
     2101:     2097:  567:/*EOF*/
        -:        -:  568:/*EOF*/
        -:        -:  569:/*EOF*/
     2408:     3201:  570:/*EOF*/
     2296:     3089:  571:/*EOF*/
        -:        -:  572:/*EOF*/
     3638:     5121:  573:/*EOF*/
     1342:     2032:  574:/*EOF*/
       76:      113:  575:/*EOF*/
        -:        -:  576:/*EOF*/
        -:        -:  577:/*EOF*/
      188:      225:  578:/*EOF*/
      112:      112:  579:/*EOF*/
        -:        -:  580:/*EOF*/
        -:        -:  581:/*EOF*/
        -:        -:  582:/*EOF*/
        -:        -:  583:/*EOF*/
        -:        -:  584:/*EOF*/
      112:      112:  585:/*EOF*/
        -:        -:  586:/*EOF*/
      112:      112:  587:/*EOF*/
    #####:    #####:  588:/*EOF*/
        -:        -:  589:/*EOF*/
      112:      112:  590:/*EOF*/
      112:      112:  591:/*EOF*/
        -:        -:  592:/*EOF*/
        -:        -:  593:/*EOF*/
        -:        -:  594:/*EOF*/
        -:        -:  595:/*EOF*/
        -:        -:  596:/*EOF*/
        -:        -:  597:/*EOF*/
        -:        -:  598:/*EOF*/
        -:        -:  599:/*EOF*/
        -:        -:  600:/*EOF*/
        -:        -:  601:/*EOF*/
      224:      224:  602:/*EOF*/
      112:      112:  603:/*EOF*/
      112:      112:  604:/*EOF*/
        -:        -:  605:/*EOF*/
        -:        -:  606:/*EOF*/
        7:        7:  607:/*EOF*/
        -:        -:  608:/*EOF*/
        -:        -:  609:/*EOF*/
        -:        -:  610:/*EOF*/
        7:        7:  611:/*EOF*/
        -:        -:  612:/*EOF*/
        7:        7:  613:/*EOF*/
        7:        7:  614:/*EOF*/
        -:        -:  615:/*EOF*/
        -:        -:  616:/*EOF*/
        -:        -:  617:/*EOF*/
      112:      112:  618:/*EOF*/
        -:        -:  619:/*EOF*/
      112:      112:  620:/*EOF*/
        -:        -:  621:/*EOF*/
        -:        -:  622:/*EOF*/
        -:        -:  623:/*EOF*/
        -:        -:  624:/*EOF*/
        -:        -:  625:/*EOF*/
        -:        -:  626:/*EOF*/
        -:        -:  627:/*EOF*/
        -:        -:  628:/*EOF*/
        -:        -:  629:/*EOF*/
        -:        -:  630:/*EOF*/
        -:        -:  631:/*EOF*/
        -:        -:  632:/*EOF*/
        -:        -:  633:/*EOF*/
        -:        -:  634:/*EOF*/
        -:        -:  635:/*EOF*/
        -:        -:  636:/*EOF*/
       39:       39:  637:/*EOF*/
        -:        -:  638:/*EOF*/
       39:       39:  639:/*EOF*/
       39:       39:  640:/*EOF*/
       39:       39:  641:/*EOF*/
        -:        -:  642:/*EOF*/
        -:        -:  643:/*EOF*/
    #####:    #####:  644:/*EOF*/
        -:        -:  645:/*EOF*/
        -:        -:  646:/*EOF*/
    #####:    #####:  647:/*EOF*/
    #####:    #####:  648:/*EOF*/
        -:        -:  649:/*EOF*/
        -:        -:  650:/*EOF*/
        -:        -:  651:/*EOF*/
        -:        -:  652:/*EOF*/
        -:        -:  653:/*EOF*/
        -:        -:  654:/*EOF*/
    #####:    #####:  655:/*EOF*/
    #####:    #####:  656:/*EOF*/
    #####:    #####:  657:/*EOF*/
    #####:    #####:  658:/*EOF*/
    #####:    #####:  659:/*EOF*/
    #####:    #####:  660:/*EOF*/
        -:        -:  661:/*EOF*/
        -:        -:  662:/*EOF*/
        -:        -:  663:/*EOF*/
    #####:    #####:  664:/*EOF*/
        -:        -:  665:/*EOF*/
        -:        -:  666:/*EOF*/
        -:        -:  667:/*EOF*/
        -:        -:  668:/*EOF*/
        -:        -:  669:/*EOF*/
        -:        -:  670:/*EOF*/
        -:        -:  671:/*EOF*/
    #####:    #####:  672:/*EOF*/
        -:        -:  673:/*EOF*/
    #####:    #####:  674:/*EOF*/
    #####:    #####:  675:/*EOF*/
        -:        -:  676:/*EOF*/
        -:        -:  677:/*EOF*/
        -:        -:  678:/*EOF*/
        -:        -:  679:/*EOF*/
        -:        -:  680:/*EOF*/
        -:        -:  681:/*EOF*/
        -:        -:  682:/*EOF*/
    #####:    #####:  683:/*EOF*/
    #####:    #####:  684:/*EOF*/
        -:        -:  685:/*EOF*/
        -:        -:  686:/*EOF*/
    #####:    #####:  687:/*EOF*/
    #####:    #####:  688:/*EOF*/
        -:        -:  689:/*EOF*/
    #####:    #####:  690:/*EOF*/
    #####:    #####:  691:/*EOF*/
        -:        -:  692:/*EOF*/
    #####:    #####:  693:/*EOF*/
        -:        -:  694:/*EOF*/
    #####:    #####:  695:/*EOF*/
    #####:    #####:  696:/*EOF*/
    #####:    #####:  697:/*EOF*/
        -:        -:  698:/*EOF*/
        -:        -:  699:/*EOF*/
        -:        -:  700:/*EOF*/
    #####:    #####:  701:/*EOF*/
        -:        -:  702:/*EOF*/
        -:        -:  703:/*EOF*/
        -:        -:  704:/*EOF*/
        -:        -:  705:/*EOF*/
        -:        -:  706:/*EOF*/
        -:        -:  707:/*EOF*/
        -:        -:  708:/*EOF*/
    #####:    #####:  709:/*EOF*/
        -:        -:  710:/*EOF*/
    #####:    #####:  711:/*EOF*/
    #####:    #####:  712:/*EOF*/

src/util/.libs/set.c.gcov

        -:        -:    0:Source:set.c
        -:        -:    0:Graph:libmesautil_la-set.gcno
        -:        -:    0:Data:libmesautil_la-set.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        -:        -:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        -:        -:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        -:        -:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        -:        -:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        -:        -:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        -:        -:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
        -:        -:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
        -:        -:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        -:        -:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        -:        -:   79:/*EOF*/
        -:        -:   80:/*EOF*/
        -:        -:   81:/*EOF*/
        -:        -:   82:/*EOF*/
        -:        -:   83:/*EOF*/
        -:        -:   84:/*EOF*/
        -:        -:   85:/*EOF*/
        -:        -:   86:/*EOF*/
        -:        -:   87:/*EOF*/
   124984:   141452:   88:/*EOF*/
        -:        -:   89:/*EOF*/
   124984:   141452:   90:/*EOF*/
        -:        -:   91:/*EOF*/
        -:        -:   92:/*EOF*/
        -:        -:   93:/*EOF*/
    78258:    85852:   94:/*EOF*/
        -:        -:   95:/*EOF*/
    78258:    85852:   96:/*EOF*/
        -:        -:   97:/*EOF*/
        -:        -:   98:/*EOF*/
        -:        -:   99:/*EOF*/
   217423:   254417:  100:/*EOF*/
        -:        -:  101:/*EOF*/
   217423:   254417:  102:/*EOF*/
        -:        -:  103:/*EOF*/
        -:        -:  104:/*EOF*/
        -:        -:  105:/*EOF*/
    55673:    61355:  106:/*EOF*/
        -:        -:  107:/*EOF*/
        -:        -:  108:/*EOF*/
        -:        -:  109:/*EOF*/
        -:        -:  110:/*EOF*/
        -:        -:  111:/*EOF*/
        -:        -:  112:/*EOF*/
    55673:    61355:  113:/*EOF*/
    55673:    61355:  114:/*EOF*/
    #####:    #####:  115:/*EOF*/
        -:        -:  116:/*EOF*/
    55673:    61355:  117:/*EOF*/
    55673:    61355:  118:/*EOF*/
    55673:    61355:  119:/*EOF*/
    55673:    61355:  120:/*EOF*/
    55673:    61355:  121:/*EOF*/
    55673:    61355:  122:/*EOF*/
    55673:    61355:  123:/*EOF*/
    55673:    61355:  124:/*EOF*/
    55673:    61355:  125:/*EOF*/
        -:        -:  126:/*EOF*/
    55673:    61355:  127:/*EOF*/
    #####:    #####:  128:/*EOF*/
    #####:    #####:  129:/*EOF*/
        -:        -:  130:/*EOF*/
        -:        -:  131:/*EOF*/
    55673:    61355:  132:/*EOF*/
        -:        -:  133:/*EOF*/
        -:        -:  134:/*EOF*/
        -:        -:  135:/*EOF*/
        -:        -:  136:/*EOF*/
        -:        -:  137:/*EOF*/
        -:        -:  138:/*EOF*/
        -:        -:  139:/*EOF*/
        -:        -:  140:/*EOF*/
        -:        -:  141:/*EOF*/
      467:      779:  142:/*EOF*/
        -:        -:  143:/*EOF*/
      467:      779:  144:/*EOF*/
    #####:    #####:  145:/*EOF*/
        -:        -:  146:/*EOF*/
      467:      779:  147:/*EOF*/
        -:        -:  148:/*EOF*/
        -:        -:  149:/*EOF*/
    #####:    #####:  150:/*EOF*/
    #####:    #####:  151:/*EOF*/
        -:        -:  152:/*EOF*/
        -:        -:  153:/*EOF*/
      467:      779:  154:/*EOF*/
      467:      779:  155:/*EOF*/
        -:        -:  156:/*EOF*/
        -:        -:  157:/*EOF*/
        -:        -:  158:/*EOF*/
        -:        -:  159:/*EOF*/
        -:        -:  160:/*EOF*/
        -:        -:  161:/*EOF*/
        -:        -:  162:/*EOF*/
        -:        -:  163:/*EOF*/
    52090:    60833:  164:/*EOF*/
        -:        -:  165:/*EOF*/
        -:        -:  166:/*EOF*/
        -:        -:  167:/*EOF*/
    52090:    60833:  168:/*EOF*/
        -:        -:  169:/*EOF*/
        -:        -:  170:/*EOF*/
        -:        -:  171:/*EOF*/
    62329:    72339:  172:/*EOF*/
        -:        -:  173:/*EOF*/
    62329:    72339:  174:/*EOF*/
     2239:     2386:  175:/*EOF*/
    60090:    69953:  176:/*EOF*/
    49930:    58519:  177:/*EOF*/
    49851:    58447:  178:/*EOF*/
        -:        -:  179:/*EOF*/
        -:        -:  180:/*EOF*/
        -:        -:  181:/*EOF*/
    10239:    11506:  182:/*EOF*/
        -:        -:  183:/*EOF*/
    10239:    11506:  184:/*EOF*/
    10239:    11506:  185:/*EOF*/
        -:        -:  186:/*EOF*/
    #####:    #####:  187:/*EOF*/
        -:        -:  188:/*EOF*/
        -:        -:  189:/*EOF*/
        -:        -:  190:/*EOF*/
    52090:    60833:  191:/*EOF*/
        -:        -:  192:/*EOF*/
    52090:    60833:  193:/*EOF*/
    52090:    60833:  194:/*EOF*/
        -:        -:  195:/*EOF*/
        -:        -:  196:/*EOF*/
        -:        -:  197:/*EOF*/
    #####:    #####:  198:/*EOF*/
        -:        -:  199:/*EOF*/
        -:        -:  200:/*EOF*/
    #####:    #####:  201:/*EOF*/
        -:        -:  202:/*EOF*/
    #####:    #####:  203:/*EOF*/
        -:        -:  204:/*EOF*/
        -:        -:  205:/*EOF*/
        -:        -:  206:/*EOF*/
        -:        -:  207:/*EOF*/
        -:        -:  208:/*EOF*/
        -:        -:  209:/*EOF*/
     5575:     5892:  210:/*EOF*/
        -:        -:  211:/*EOF*/
        -:        -:  212:/*EOF*/
        -:        -:  213:/*EOF*/
        -:        -:  214:/*EOF*/
     5575:     5892:  215:/*EOF*/
    #####:    #####:  216:/*EOF*/
        -:        -:  217:/*EOF*/
     5575:     5892:  218:/*EOF*/
        -:        -:  219:/*EOF*/
     5575:     5892:  220:/*EOF*/
    #####:    #####:  221:/*EOF*/
        -:        -:  222:/*EOF*/
     5575:     5892:  223:/*EOF*/
        -:        -:  224:/*EOF*/
     5575:     5892:  225:/*EOF*/
     5575:     5892:  226:/*EOF*/
     5575:     5892:  227:/*EOF*/
     5575:     5892:  228:/*EOF*/
     5575:     5892:  229:/*EOF*/
     5575:     5892:  230:/*EOF*/
     5575:     5892:  231:/*EOF*/
        -:        -:  232:/*EOF*/
    47331:    50148:  233:/*EOF*/
    41756:    44256:  234:/*EOF*/
    36181:    38364:  235:/*EOF*/
    36181:    38364:  236:/*EOF*/
    18281:    19310:  237:/*EOF*/
        -:        -:  238:/*EOF*/
        -:        -:  239:/*EOF*/
        -:        -:  240:/*EOF*/
     5575:     5892:  241:/*EOF*/
        -:        -:  242:/*EOF*/
        -:        -:  243:/*EOF*/
        -:        -:  244:/*EOF*/
        -:        -:  245:/*EOF*/
        -:        -:  246:/*EOF*/
        -:        -:  247:/*EOF*/
        -:        -:  248:/*EOF*/
        -:        -:  249:/*EOF*/
        -:        -:  250:/*EOF*/
    63104:    69590:  251:/*EOF*/
        -:        -:  252:/*EOF*/
        -:        -:  253:/*EOF*/
    63104:    69590:  254:/*EOF*/
        -:        -:  255:/*EOF*/
    63104:    69590:  256:/*EOF*/
     5453:     5748:  257:/*EOF*/
    57651:    63842:  258:/*EOF*/
      122:      144:  259:/*EOF*/
        -:        -:  260:/*EOF*/
        -:        -:  261:/*EOF*/
    63104:    69590:  262:/*EOF*/
        -:        -:  263:/*EOF*/
    78258:    85852:  264:/*EOF*/
        -:        -:  265:/*EOF*/
        -:        -:  266:/*EOF*/
    78258:    85852:  267:/*EOF*/
        -:        -:  268:/*EOF*/
    62655:    69113:  269:/*EOF*/
    62416:    68832:  270:/*EOF*/
    62655:    69113:  271:/*EOF*/
    62416:    68832:  272:/*EOF*/
        -:        -:  273:/*EOF*/
        -:        -:  274:/*EOF*/
        -:        -:  275:/*EOF*/
        -:        -:  276:/*EOF*/
        -:        -:  277:/*EOF*/
        -:        -:  278:/*EOF*/
        -:        -:  279:/*EOF*/
        -:        -:  280:/*EOF*/
        -:        -:  281:/*EOF*/
        -:        -:  282:/*EOF*/
        -:        -:  283:/*EOF*/
        -:        -:  284:/*EOF*/
    31445:    33759:  285:/*EOF*/
    16369:    17577:  286:/*EOF*/
      766:      838:  287:/*EOF*/
      688:      758:  288:/*EOF*/
      688:      758:  289:/*EOF*/
        -:        -:  290:/*EOF*/
        -:        -:  291:/*EOF*/
    15154:    16262:  292:/*EOF*/
        -:        -:  293:/*EOF*/
    15154:    16262:  294:/*EOF*/
    15154:    16262:  295:/*EOF*/
        -:        -:  296:/*EOF*/
    62416:    68832:  297:/*EOF*/
    62416:    68832:  298:/*EOF*/
      178:      196:  299:/*EOF*/
    62416:    68832:  300:/*EOF*/
    62416:    68832:  301:/*EOF*/
    62416:    68832:  302:/*EOF*/
    62416:    68832:  303:/*EOF*/
        -:        -:  304:/*EOF*/
        -:        -:  305:/*EOF*/
        -:        -:  306:/*EOF*/
        -:        -:  307:/*EOF*/
        -:        -:  308:/*EOF*/
    #####:    #####:  309:/*EOF*/
        -:        -:  310:/*EOF*/
        -:        -:  311:/*EOF*/
        -:        -:  312:/*EOF*/
    44823:    50280:  313:/*EOF*/
        -:        -:  314:/*EOF*/
    44823:    50280:  315:/*EOF*/
    44823:    50280:  316:/*EOF*/
        -:        -:  317:/*EOF*/
        -:        -:  318:/*EOF*/
        -:        -:  319:/*EOF*/
    #####:    #####:  320:/*EOF*/
        -:        -:  321:/*EOF*/
    #####:    #####:  322:/*EOF*/
        -:        -:  323:/*EOF*/
    #####:    #####:  324:/*EOF*/
        -:        -:  325:/*EOF*/
        -:        -:  326:/*EOF*/
        -:        -:  327:/*EOF*/
        -:        -:  328:/*EOF*/
        -:        -:  329:/*EOF*/
        -:        -:  330:/*EOF*/
        -:        -:  331:/*EOF*/
        -:        -:  332:/*EOF*/
        -:        -:  333:/*EOF*/
    40326:    45370:  334:/*EOF*/
        -:        -:  335:/*EOF*/
    40326:    45370:  336:/*EOF*/
    #####:    #####:  337:/*EOF*/
        -:        -:  338:/*EOF*/
    40326:    45370:  339:/*EOF*/
    40326:    45370:  340:/*EOF*/
    40326:    45370:  341:/*EOF*/
        -:        -:  342:/*EOF*/
        -:        -:  343:/*EOF*/
        -:        -:  344:/*EOF*/
        -:        -:  345:/*EOF*/
        -:        -:  346:/*EOF*/
        -:        -:  347:/*EOF*/
        -:        -:  348:/*EOF*/
        -:        -:  349:/*EOF*/
        -:        -:  350:/*EOF*/
    18477:    26067:  351:/*EOF*/
        -:        -:  352:/*EOF*/
    18477:    26067:  353:/*EOF*/
     8438:    11910:  354:/*EOF*/
        -:        -:  355:/*EOF*/
    10039:    14157:  356:/*EOF*/
        -:        -:  357:/*EOF*/
    51314:    72140:  358:/*EOF*/
    42894:    60248:  359:/*EOF*/
    10057:    14175:  360:/*EOF*/
        -:        -:  361:/*EOF*/
        -:        -:  362:/*EOF*/
        -:        -:  363:/*EOF*/
     8420:    11892:  364:/*EOF*/
        -:        -:  365:/*EOF*/
        -:        -:  366:/*EOF*/
        -:        -:  367:/*EOF*/
    #####:    #####:  368:/*EOF*/
        -:        -:  369:/*EOF*/
        -:        -:  370:/*EOF*/
        -:        -:  371:/*EOF*/
    #####:    #####:  372:/*EOF*/
        -:        -:  373:/*EOF*/
    #####:    #####:  374:/*EOF*/
    #####:    #####:  375:/*EOF*/
        -:        -:  376:/*EOF*/
    #####:    #####:  377:/*EOF*/
    #####:    #####:  378:/*EOF*/
    #####:    #####:  379:/*EOF*/
    #####:    #####:  380:/*EOF*/
        -:        -:  381:/*EOF*/
        -:        -:  382:/*EOF*/
        -:        -:  383:/*EOF*/
    #####:    #####:  384:/*EOF*/
    #####:    #####:  385:/*EOF*/
    #####:    #####:  386:/*EOF*/
    #####:    #####:  387:/*EOF*/
        -:        -:  388:/*EOF*/
        -:        -:  389:/*EOF*/
        -:        -:  390:/*EOF*/
    #####:    #####:  391:/*EOF*/

src/util/.libs/strtod.c.gcov

        -:        -:    0:Source:strtod.c
        -:        -:    0:Graph:libmesautil_la-strtod.gcno
        -:        -:    0:Data:libmesautil_la-strtod.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*EOF*/
        -:        -:    2:/*EOF*/
        -:        -:    3:/*EOF*/
        -:        -:    4:/*EOF*/
        -:        -:    5:/*EOF*/
        -:        -:    6:/*EOF*/
        -:        -:    7:/*EOF*/
        -:        -:    8:/*EOF*/
        -:        -:    9:/*EOF*/
        -:        -:   10:/*EOF*/
        -:        -:   11:/*EOF*/
        -:        -:   12:/*EOF*/
        -:        -:   13:/*EOF*/
        -:        -:   14:/*EOF*/
        -:        -:   15:/*EOF*/
        -:        -:   16:/*EOF*/
        -:        -:   17:/*EOF*/
        -:        -:   18:/*EOF*/
        -:        -:   19:/*EOF*/
        -:        -:   20:/*EOF*/
        -:        -:   21:/*EOF*/
        -:        -:   22:/*EOF*/
        -:        -:   23:/*EOF*/
        -:        -:   24:/*EOF*/
        -:        -:   25:/*EOF*/
        -:        -:   26:/*EOF*/
        -:        -:   27:/*EOF*/
        -:        -:   28:/*EOF*/
        -:        -:   29:/*EOF*/
        -:        -:   30:/*EOF*/
        -:        -:   31:/*EOF*/
        -:        -:   32:/*EOF*/
        -:        -:   33:/*EOF*/
        -:        -:   34:/*EOF*/
        -:        -:   35:/*EOF*/
        -:        -:   36:/*EOF*/
        -:        -:   37:/*EOF*/
        -:        -:   38:/*EOF*/
        -:        -:   39:/*EOF*/
        -:        -:   40:/*EOF*/
        1:        1:   41:/*EOF*/
        -:        -:   42:/*EOF*/
        -:        -:   43:/*EOF*/
        1:        1:   44:/*EOF*/
        -:        -:   45:/*EOF*/
        1:        1:   46:/*EOF*/
        -:        -:   47:/*EOF*/
        -:        -:   48:/*EOF*/
        1:        1:   49:/*EOF*/
        -:        -:   50:/*EOF*/
        -:        -:   51:/*EOF*/
        1:        1:   52:/*EOF*/
        -:        -:   53:/*EOF*/
        1:        1:   54:/*EOF*/
        -:        -:   55:/*EOF*/
        -:        -:   56:/*EOF*/
        -:        -:   57:/*EOF*/
        -:        -:   58:/*EOF*/
        -:        -:   59:/*EOF*/
        -:        -:   60:/*EOF*/
    #####:    #####:   61:/*EOF*/
        -:        -:   62:/*EOF*/
        -:        -:   63:/*EOF*/
    #####:    #####:   64:/*EOF*/
        -:        -:   65:/*EOF*/
        -:        -:   66:/*EOF*/
        -:        -:   67:/*EOF*/
        -:        -:   68:/*EOF*/
        -:        -:   69:/*EOF*/
        -:        -:   70:/*EOF*/
        -:        -:   71:/*EOF*/
        -:        -:   72:/*EOF*/
        -:        -:   73:/*EOF*/
        -:        -:   74:/*EOF*/
        -:        -:   75:/*EOF*/
        2:        3:   76:/*EOF*/
        -:        -:   77:/*EOF*/
        -:        -:   78:/*EOF*/
        2:        3:   79:/*EOF*/

src/util/ralloc.c.gcov

        -:        -:    0:Source:ralloc.c
        -:        -:    0:Graph:.libs/libmesautil_la-ralloc.gcno
        -:        -:    0:Data:.libs/libmesautil_la-ralloc.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
        -:        -:   21: * DEALINGS IN THE SOFTWARE.
        -:        -:   22: */
        -:        -:   23:
        -:        -:   24:#include <assert.h>
        -:        -:   25:#include <stdlib.h>
        -:        -:   26:#include <stdarg.h>
        -:        -:   27:#include <stdio.h>
        -:        -:   28:#include <string.h>
        -:        -:   29:#include <stdint.h>
        -:        -:   30:
        -:        -:   31:/* Android defines SIZE_MAX in limits.h, instead of the standard stdint.h */
        -:        -:   32:#ifdef ANDROID
        -:        -:   33:#include <limits.h>
        -:        -:   34:#endif
        -:        -:   35:
        -:        -:   36:/* Some versions of MinGW are missing _vscprintf's declaration, although they
        -:        -:   37: * still provide the symbol in the import library. */
        -:        -:   38:#ifdef __MINGW32__
        -:        -:   39:_CRTIMP int _vscprintf(const char *format, va_list argptr);
        -:        -:   40:#endif
        -:        -:   41:
        -:        -:   42:#include "ralloc.h"
        -:        -:   43:
        -:        -:   44:#ifndef va_copy
        -:        -:   45:#ifdef __va_copy
        -:        -:   46:#define va_copy(dest, src) __va_copy((dest), (src))
        -:        -:   47:#else
        -:        -:   48:#define va_copy(dest, src) (dest) = (src)
        -:        -:   49:#endif
        -:        -:   50:#endif
        -:        -:   51:
        -:        -:   52:#define CANARY 0x5A1106
        -:        -:   53:
        -:        -:   54:/* Align the header's size so that ralloc() allocations will return with the
        -:        -:   55: * same alignment as a libc malloc would have (8 on 32-bit GLIBC, 16 on
        -:        -:   56: * 64-bit), avoiding performance penalities on x86 and alignment faults on
        -:        -:   57: * ARM.
        -:        -:   58: */
        -:        -:   59:struct
        -:        -:   60:#ifdef _MSC_VER
        -:        -:   61: __declspec(align(8))
        -:        -:   62:#elif defined(__LP64__)
        -:        -:   63: __attribute__((aligned(16)))
        -:        -:   64:#else
        -:        -:   65: __attribute__((aligned(8)))
        -:        -:   66:#endif
        -:        -:   67:   ralloc_header
        -:        -:   68:{
        -:        -:   69:#ifdef DEBUG
        -:        -:   70:   /* A canary value used to determine whether a pointer is ralloc'd. */
        -:        -:   71:   unsigned canary;
        -:        -:   72:#endif
        -:        -:   73:
        -:        -:   74:   struct ralloc_header *parent;
        -:        -:   75:
        -:        -:   76:   /* The first child (head of a linked list) */
        -:        -:   77:   struct ralloc_header *child;
        -:        -:   78:
        -:        -:   79:   /* Linked list of siblings */
        -:        -:   80:   struct ralloc_header *prev;
        -:        -:   81:   struct ralloc_header *next;
        -:        -:   82:
        -:        -:   83:   void (*destructor)(void *);
        -:        -:   84:};
        -:        -:   85:
        -:        -:   86:typedef struct ralloc_header ralloc_header;
        -:        -:   87:
        -:        -:   88:static void unlink_block(ralloc_header *info);
        -:        -:   89:static void unsafe_free(ralloc_header *info);
        -:        -:   90:
        -:        -:   91:static ralloc_header *
   246571:   269368:   92:get_header(const void *ptr)
        -:        -:   93:{
   246571:   269368:   94:   ralloc_header *info = (ralloc_header *) (((char *) ptr) -
        -:        -:   95:					    sizeof(ralloc_header));
        -:        -:   96:#ifdef DEBUG
   246571:   269368:   97:   assert(info->canary == CANARY);
        -:        -:   98:#endif
   246571:   269368:   99:   return info;
        -:        -:  100:}
        -:        -:  101:
        -:        -:  102:#define PTR_FROM_HEADER(info) (((char *) info) + sizeof(ralloc_header))
        -:        -:  103:
        -:        -:  104:static void
   212222:   232558:  105:add_child(ralloc_header *parent, ralloc_header *info)
        -:        -:  106:{
   212222:   232558:  107:   if (parent != NULL) {
   207137:   226618:  108:      info->parent = parent;
   207137:   226618:  109:      info->next = parent->child;
   207137:   226618:  110:      parent->child = info;
        -:        -:  111:
   207137:   226618:  112:      if (info->next != NULL)
   117502:   127361:  113:	 info->next->prev = info;
        -:        -:  114:   }
   212222:   232558:  115:}
        -:        -:  116:
        -:        -:  117:void *
      961:     1188:  118:ralloc_context(const void *ctx)
        -:        -:  119:{
      961:     1188:  120:   return ralloc_size(ctx, 0);
        -:        -:  121:}
        -:        -:  122:
        -:        -:  123:void *
   210742:   230986:  124:ralloc_size(const void *ctx, size_t size)
        -:        -:  125:{
   210742:   230986:  126:   void *block = malloc(size + sizeof(ralloc_header));
        -:        -:  127:   ralloc_header *info;
        -:        -:  128:   ralloc_header *parent;
        -:        -:  129:
   210742:   230986:  130:   if (unlikely(block == NULL))
    #####:    #####:  131:      return NULL;
        -:        -:  132:
   210742:   230986:  133:   info = (ralloc_header *) block;
        -:        -:  134:   /* measurements have shown that calloc is slower (because of
        -:        -:  135:    * the multiplication overflow checking?), so clear things
        -:        -:  136:    * manually
        -:        -:  137:    */
   210742:   230986:  138:   info->parent = NULL;
   210742:   230986:  139:   info->child = NULL;
   210742:   230986:  140:   info->prev = NULL;
   210742:   230986:  141:   info->next = NULL;
   210742:   230986:  142:   info->destructor = NULL;
        -:        -:  143:
   210742:   230986:  144:   parent = ctx != NULL ? get_header(ctx) : NULL;
        -:        -:  145:
   210742:   230986:  146:   add_child(parent, info);
        -:        -:  147:
        -:        -:  148:#ifdef DEBUG
   210742:   230986:  149:   info->canary = CANARY;
        -:        -:  150:#endif
        -:        -:  151:
   210742:   230986:  152:   return PTR_FROM_HEADER(info);
        -:        -:  153:}
        -:        -:  154:
        -:        -:  155:void *
   113880:   123086:  156:rzalloc_size(const void *ctx, size_t size)
        -:        -:  157:{
   113880:   123086:  158:   void *ptr = ralloc_size(ctx, size);
        -:        -:  159:
   113880:   123086:  160:   if (likely(ptr))
   113880:   123086:  161:      memset(ptr, 0, size);
        -:        -:  162:
   113880:   123086:  163:   return ptr;
        -:        -:  164:}
        -:        -:  165:
        -:        -:  166:/* helper function - assumes ptr != NULL */
        -:        -:  167:static void *
      830:      866:  168:resize(void *ptr, size_t size)
        -:        -:  169:{
        -:        -:  170:   ralloc_header *child, *old, *info;
        -:        -:  171:
      830:      866:  172:   old = get_header(ptr);
      830:      866:  173:   info = realloc(old, size + sizeof(ralloc_header));
        -:        -:  174:
      830:      866:  175:   if (info == NULL)
    #####:    #####:  176:      return NULL;
        -:        -:  177:
        -:        -:  178:   /* Update parent and sibling's links to the reallocated node. */
      830:      866:  179:   if (info != old && info->parent != NULL) {
      285:      308:  180:      if (info->parent->child == old)
       38:       37:  181:	 info->parent->child = info;
        -:        -:  182:
      285:      308:  183:      if (info->prev != NULL)
      247:      271:  184:	 info->prev->next = info;
        -:        -:  185:
      285:      308:  186:      if (info->next != NULL)
      285:      308:  187:	 info->next->prev = info;
        -:        -:  188:   }
        -:        -:  189:
        -:        -:  190:   /* Update child->parent links for all children */
      830:      866:  191:   for (child = info->child; child != NULL; child = child->next)
    #####:    #####:  192:      child->parent = info;
        -:        -:  193:
      830:      866:  194:   return PTR_FROM_HEADER(info);
        -:        -:  195:}
        -:        -:  196:
        -:        -:  197:void *
     1056:     1136:  198:reralloc_size(const void *ctx, void *ptr, size_t size)
        -:        -:  199:{
     1056:     1136:  200:   if (unlikely(ptr == NULL))
      737:      801:  201:      return ralloc_size(ctx, size);
        -:        -:  202:
      319:      335:  203:   assert(ralloc_parent(ptr) == ctx);
      319:      335:  204:   return resize(ptr, size);
        -:        -:  205:}
        -:        -:  206:
        -:        -:  207:void *
     1800:     1878:  208:ralloc_array_size(const void *ctx, size_t size, unsigned count)
        -:        -:  209:{
     1800:     1878:  210:   if (count > SIZE_MAX/size)
    #####:    #####:  211:      return NULL;
        -:        -:  212:
     1800:     1878:  213:   return ralloc_size(ctx, size * count);
        -:        -:  214:}
        -:        -:  215:
        -:        -:  216:void *
    80678:    89557:  217:rzalloc_array_size(const void *ctx, size_t size, unsigned count)
        -:        -:  218:{
    80678:    89557:  219:   if (count > SIZE_MAX/size)
    #####:    #####:  220:      return NULL;
        -:        -:  221:
    80678:    89557:  222:   return rzalloc_size(ctx, size * count);
        -:        -:  223:}
        -:        -:  224:
        -:        -:  225:void *
     1055:     1135:  226:reralloc_array_size(const void *ctx, void *ptr, size_t size, unsigned count)
        -:        -:  227:{
     1055:     1135:  228:   if (count > SIZE_MAX/size)
    #####:    #####:  229:      return NULL;
        -:        -:  230:
     1055:     1135:  231:   return reralloc_size(ctx, ptr, size * count);
        -:        -:  232:}
        -:        -:  233:
        -:        -:  234:void
    24804:    27638:  235:ralloc_free(void *ptr)
        -:        -:  236:{
        -:        -:  237:   ralloc_header *info;
        -:        -:  238:
    24804:    27638:  239:   if (ptr == NULL)
     8266:     8351:  240:      return;
        -:        -:  241:
    16538:    19287:  242:   info = get_header(ptr);
    16538:    19287:  243:   unlink_block(info);
    16538:    19287:  244:   unsafe_free(info);
        -:        -:  245:}
        -:        -:  246:
        -:        -:  247:static void
    18018:    20859:  248:unlink_block(ralloc_header *info)
        -:        -:  249:{
        -:        -:  250:   /* Unlink from parent & siblings */
    18018:    20859:  251:   if (info->parent != NULL) {
    12933:    14919:  252:      if (info->parent->child == info)
     1494:     2394:  253:	 info->parent->child = info->next;
        -:        -:  254:
    12933:    14919:  255:      if (info->prev != NULL)
    11439:    12525:  256:	 info->prev->next = info->next;
        -:        -:  257:
    12933:    14919:  258:      if (info->next != NULL)
     4247:     5425:  259:	 info->next->prev = info->prev;
        -:        -:  260:   }
    18018:    20859:  261:   info->parent = NULL;
    18018:    20859:  262:   info->prev = NULL;
    18018:    20859:  263:   info->next = NULL;
    18018:    20859:  264:}
        -:        -:  265:
        -:        -:  266:static void
   210742:   230986:  267:unsafe_free(ralloc_header *info)
        -:        -:  268:{
        -:        -:  269:   /* Recursively free any children...don't waste time unlinking them. */
        -:        -:  270:   ralloc_header *temp;
   615688:   673671:  271:   while (info->child != NULL) {
   194204:   211699:  272:      temp = info->child;
   194204:   211699:  273:      info->child = temp->next;
   194204:   211699:  274:      unsafe_free(temp);
        -:        -:  275:   }
        -:        -:  276:
        -:        -:  277:   /* Free the block itself.  Call the destructor first, if any. */
   210742:   230986:  278:   if (info->destructor != NULL)
      456:      512:  279:      info->destructor(PTR_FROM_HEADER(info));
        -:        -:  280:
   210742:   230986:  281:   free(info);
   210742:   230986:  282:}
        -:        -:  283:
        -:        -:  284:void
     1491:     1583:  285:ralloc_steal(const void *new_ctx, void *ptr)
        -:        -:  286:{
        -:        -:  287:   ralloc_header *info, *parent;
        -:        -:  288:
     1491:     1583:  289:   if (unlikely(ptr == NULL))
       11:       11:  290:      return;
        -:        -:  291:
     1480:     1572:  292:   info = get_header(ptr);
     1480:     1572:  293:   parent = get_header(new_ctx);
        -:        -:  294:
     1480:     1572:  295:   unlink_block(info);
        -:        -:  296:
     1480:     1572:  297:   add_child(parent, info);
        -:        -:  298:}
        -:        -:  299:
        -:        -:  300:void
        8:        8:  301:ralloc_adopt(const void *new_ctx, void *old_ctx)
        -:        -:  302:{
        -:        -:  303:   ralloc_header *new_info, *old_info, *child;
        -:        -:  304:
        8:        8:  305:   if (unlikely(old_ctx == NULL))
    #####:    #####:  306:      return;
        -:        -:  307:
        8:        8:  308:   old_info = get_header(old_ctx);
        8:        8:  309:   new_info = get_header(new_ctx);
        -:        -:  310:
        -:        -:  311:   /* If there are no children, bail. */
        8:        8:  312:   if (unlikely(old_info->child == NULL))
    #####:    #####:  313:      return;
        -:        -:  314:
        -:        -:  315:   /* Set all the children's parent to new_ctx; get a pointer to the last child. */
      705:      836:  316:   for (child = old_info->child; child->next != NULL; child = child->next) {
      697:      828:  317:      child->parent = new_info;
        -:        -:  318:   }
        -:        -:  319:
        -:        -:  320:   /* Connect the two lists together; parent them to new_ctx; make old_ctx empty. */
        8:        8:  321:   child->next = new_info->child;
        8:        8:  322:   child->parent = new_info;
        8:        8:  323:   new_info->child = old_info->child;
        8:        8:  324:   old_info->child = NULL;
        -:        -:  325:}
        -:        -:  326:
        -:        -:  327:void *
    20100:    20483:  328:ralloc_parent(const void *ptr)
        -:        -:  329:{
        -:        -:  330:   ralloc_header *info;
        -:        -:  331:
    20100:    20483:  332:   if (unlikely(ptr == NULL))
    #####:    #####:  333:      return NULL;
        -:        -:  334:
    20100:    20483:  335:   info = get_header(ptr);
    20100:    20483:  336:   return info->parent ? PTR_FROM_HEADER(info->parent) : NULL;
        -:        -:  337:}
        -:        -:  338:
        -:        -:  339:void
      470:      526:  340:ralloc_set_destructor(const void *ptr, void(*destructor)(void *))
        -:        -:  341:{
      470:      526:  342:   ralloc_header *info = get_header(ptr);
      470:      526:  343:   info->destructor = destructor;
      470:      526:  344:}
        -:        -:  345:
        -:        -:  346:char *
     2241:     2395:  347:ralloc_strdup(const void *ctx, const char *str)
        -:        -:  348:{
        -:        -:  349:   size_t n;
        -:        -:  350:   char *ptr;
        -:        -:  351:
     2241:     2395:  352:   if (unlikely(str == NULL))
     1375:     1527:  353:      return NULL;
        -:        -:  354:
      866:      868:  355:   n = strlen(str);
      866:      868:  356:   ptr = ralloc_array(ctx, char, n + 1);
      866:      868:  357:   memcpy(ptr, str, n);
      866:      868:  358:   ptr[n] = '\0';
      866:      868:  359:   return ptr;
        -:        -:  360:}
        -:        -:  361:
        -:        -:  362:char *
    #####:    #####:  363:ralloc_strndup(const void *ctx, const char *str, size_t max)
        -:        -:  364:{
        -:        -:  365:   size_t n;
        -:        -:  366:   char *ptr;
        -:        -:  367:
    #####:    #####:  368:   if (unlikely(str == NULL))
    #####:    #####:  369:      return NULL;
        -:        -:  370:
    #####:    #####:  371:   n = strnlen(str, max);
    #####:    #####:  372:   ptr = ralloc_array(ctx, char, n + 1);
    #####:    #####:  373:   memcpy(ptr, str, n);
    #####:    #####:  374:   ptr[n] = '\0';
    #####:    #####:  375:   return ptr;
        -:        -:  376:}
        -:        -:  377:
        -:        -:  378:/* helper routine for strcat/strncat - n is the exact amount to copy */
        -:        -:  379:static bool
        4:        4:  380:cat(char **dest, const char *str, size_t n)
        -:        -:  381:{
        -:        -:  382:   char *both;
        -:        -:  383:   size_t existing_length;
        4:        4:  384:   assert(dest != NULL && *dest != NULL);
        -:        -:  385:
        4:        4:  386:   existing_length = strlen(*dest);
        4:        4:  387:   both = resize(*dest, existing_length + n + 1);
        4:        4:  388:   if (unlikely(both == NULL))
    #####:    #####:  389:      return false;
        -:        -:  390:
        4:        4:  391:   memcpy(both + existing_length, str, n);
        4:        4:  392:   both[existing_length + n] = '\0';
        -:        -:  393:
        4:        4:  394:   *dest = both;
        4:        4:  395:   return true;
        -:        -:  396:}
        -:        -:  397:
        -:        -:  398:
        -:        -:  399:bool
        4:        4:  400:ralloc_strcat(char **dest, const char *str)
        -:        -:  401:{
        4:        4:  402:   return cat(dest, str, strlen(str));
        -:        -:  403:}
        -:        -:  404:
        -:        -:  405:bool
    #####:    #####:  406:ralloc_strncat(char **dest, const char *str, size_t n)
        -:        -:  407:{
        -:        -:  408:   /* Clamp n to the string length */
    #####:    #####:  409:   size_t str_length = strlen(str);
    #####:    #####:  410:   if (str_length < n)
    #####:    #####:  411:      n = str_length;
        -:        -:  412:
    #####:    #####:  413:   return cat(dest, str, n);
        -:        -:  414:}
        -:        -:  415:
        -:        -:  416:char *
      555:      555:  417:ralloc_asprintf(const void *ctx, const char *fmt, ...)
        -:        -:  418:{
        -:        -:  419:   char *ptr;
        -:        -:  420:   va_list args;
      555:      555:  421:   va_start(args, fmt);
      555:      555:  422:   ptr = ralloc_vasprintf(ctx, fmt, args);
      555:      555:  423:   va_end(args);
      555:      555:  424:   return ptr;
        -:        -:  425:}
        -:        -:  426:
        -:        -:  427:/* Return the length of the string that would be generated by a printf-style
        -:        -:  428: * format and argument list, not including the \0 byte.
        -:        -:  429: */
        -:        -:  430:static size_t
     1062:     1082:  431:printf_length(const char *fmt, va_list untouched_args)
        -:        -:  432:{
        -:        -:  433:   int size;
        -:        -:  434:   char junk;
        -:        -:  435:
        -:        -:  436:   /* Make a copy of the va_list so the original caller can still use it */
        -:        -:  437:   va_list args;
     1062:     1082:  438:   va_copy(args, untouched_args);
        -:        -:  439:
        -:        -:  440:#ifdef _WIN32
        -:        -:  441:   /* We need to use _vcsprintf to calculate the size as vsnprintf returns -1
        -:        -:  442:    * if the number of characters to write is greater than count.
        -:        -:  443:    */
        -:        -:  444:   size = _vscprintf(fmt, args);
        -:        -:  445:   (void)junk;
        -:        -:  446:#else
     1062:     1082:  447:   size = vsnprintf(&junk, 1, fmt, args);
        -:        -:  448:#endif
     1062:     1082:  449:   assert(size >= 0);
        -:        -:  450:
     1062:     1082:  451:   va_end(args);
        -:        -:  452:
     1062:     1082:  453:   return size;
        -:        -:  454:}
        -:        -:  455:
        -:        -:  456:char *
      555:      555:  457:ralloc_vasprintf(const void *ctx, const char *fmt, va_list args)
        -:        -:  458:{
      555:      555:  459:   size_t size = printf_length(fmt, args) + 1;
        -:        -:  460:
      555:      555:  461:   char *ptr = ralloc_size(ctx, size);
      555:      555:  462:   if (ptr != NULL)
      555:      555:  463:      vsnprintf(ptr, size, fmt, args);
        -:        -:  464:
      555:      555:  465:   return ptr;
        -:        -:  466:}
        -:        -:  467:
        -:        -:  468:bool
       15:       15:  469:ralloc_asprintf_append(char **str, const char *fmt, ...)
        -:        -:  470:{
        -:        -:  471:   bool success;
        -:        -:  472:   va_list args;
       15:       15:  473:   va_start(args, fmt);
       15:       15:  474:   success = ralloc_vasprintf_append(str, fmt, args);
       15:       15:  475:   va_end(args);
       15:       15:  476:   return success;
        -:        -:  477:}
        -:        -:  478:
        -:        -:  479:bool
       15:       15:  480:ralloc_vasprintf_append(char **str, const char *fmt, va_list args)
        -:        -:  481:{
        -:        -:  482:   size_t existing_length;
       15:       15:  483:   assert(str != NULL);
       15:       15:  484:   existing_length = *str ? strlen(*str) : 0;
       15:       15:  485:   return ralloc_vasprintf_rewrite_tail(str, &existing_length, fmt, args);
        -:        -:  486:}
        -:        -:  487:
        -:        -:  488:bool
      492:      512:  489:ralloc_asprintf_rewrite_tail(char **str, size_t *start, const char *fmt, ...)
        -:        -:  490:{
        -:        -:  491:   bool success;
        -:        -:  492:   va_list args;
      492:      512:  493:   va_start(args, fmt);
      492:      512:  494:   success = ralloc_vasprintf_rewrite_tail(str, start, fmt, args);
      492:      512:  495:   va_end(args);
      492:      512:  496:   return success;
        -:        -:  497:}
        -:        -:  498:
        -:        -:  499:bool
      507:      527:  500:ralloc_vasprintf_rewrite_tail(char **str, size_t *start, const char *fmt,
        -:        -:  501:			      va_list args)
        -:        -:  502:{
        -:        -:  503:   size_t new_length;
        -:        -:  504:   char *ptr;
        -:        -:  505:
      507:      527:  506:   assert(str != NULL);
        -:        -:  507:
      507:      527:  508:   if (unlikely(*str == NULL)) {
        -:        -:  509:      // Assuming a NULL context is probably bad, but it's expected behavior.
    #####:    #####:  510:      *str = ralloc_vasprintf(NULL, fmt, args);
    #####:    #####:  511:      *start = strlen(*str);
    #####:    #####:  512:      return true;
        -:        -:  513:   }
        -:        -:  514:
      507:      527:  515:   new_length = printf_length(fmt, args);
        -:        -:  516:
      507:      527:  517:   ptr = resize(*str, *start + new_length + 1);
      507:      527:  518:   if (unlikely(ptr == NULL))
    #####:    #####:  519:      return false;
        -:        -:  520:
      507:      527:  521:   vsnprintf(ptr + *start, new_length + 1, fmt, args);
      507:      527:  522:   *str = ptr;
      507:      527:  523:   *start += new_length;
      507:      527:  524:   return true;
        -:        -:  525:}
        -:        -:  526:
        -:        -:  527:/***************************************************************************
        -:        -:  528: * Linear allocator for short-lived allocations.
        -:        -:  529: ***************************************************************************
        -:        -:  530: *
        -:        -:  531: * The allocator consists of a parent node (2K buffer), which requires
        -:        -:  532: * a ralloc parent, and child nodes (allocations). Child nodes can't be freed
        -:        -:  533: * directly, because the parent doesn't track them. You have to release
        -:        -:  534: * the parent node in order to release all its children.
        -:        -:  535: *
        -:        -:  536: * The allocator uses a fixed-sized buffer with a monotonically increasing
        -:        -:  537: * offset after each allocation. If the buffer is all used, another buffer
        -:        -:  538: * is allocated, sharing the same ralloc parent, so all buffers are at
        -:        -:  539: * the same level in the ralloc hierarchy.
        -:        -:  540: *
        -:        -:  541: * The linear parent node is always the first buffer and keeps track of all
        -:        -:  542: * other buffers.
        -:        -:  543: */
        -:        -:  544:
        -:        -:  545:#define ALIGN_POT(x, y) (((x) + (y) - 1) & ~((y) - 1))
        -:        -:  546:
        -:        -:  547:#define MIN_LINEAR_BUFSIZE 2048
        -:        -:  548:#define SUBALLOC_ALIGNMENT sizeof(uintptr_t)
        -:        -:  549:#define LMAGIC 0x87b9c7d3
        -:        -:  550:
        -:        -:  551:struct linear_header {
        -:        -:  552:#ifdef DEBUG
        -:        -:  553:   unsigned magic;   /* for debugging */
        -:        -:  554:#endif
        -:        -:  555:   unsigned offset;  /* points to the first unused byte in the buffer */
        -:        -:  556:   unsigned size;    /* size of the buffer */
        -:        -:  557:   void *ralloc_parent;          /* new buffers will use this */
        -:        -:  558:   struct linear_header *next;   /* next buffer if we have more */
        -:        -:  559:   struct linear_header *latest; /* the only buffer that has free space */
        -:        -:  560:
        -:        -:  561:   /* After this structure, the buffer begins.
        -:        -:  562:    * Each suballocation consists of linear_size_chunk as its header followed
        -:        -:  563:    * by the suballocation, so it goes:
        -:        -:  564:    *
        -:        -:  565:    * - linear_size_chunk
        -:        -:  566:    * - allocated space
        -:        -:  567:    * - linear_size_chunk
        -:        -:  568:    * - allocated space
        -:        -:  569:    * etc.
        -:        -:  570:    *
        -:        -:  571:    * linear_size_chunk is only needed by linear_realloc.
        -:        -:  572:    */
        -:        -:  573:};
        -:        -:  574:
        -:        -:  575:struct linear_size_chunk {
        -:        -:  576:   unsigned size; /* for realloc */
        -:        -:  577:   unsigned _padding;
        -:        -:  578:};
        -:        -:  579:
        -:        -:  580:typedef struct linear_header linear_header;
        -:        -:  581:typedef struct linear_size_chunk linear_size_chunk;
        -:        -:  582:
        -:        -:  583:#define LINEAR_PARENT_TO_HEADER(parent) \
        -:        -:  584:   (linear_header*) \
        -:        -:  585:   ((char*)(parent) - sizeof(linear_size_chunk) - sizeof(linear_header))
        -:        -:  586:
        -:        -:  587:/* Allocate the linear buffer with its header. */
        -:        -:  588:static linear_header *
      463:      543:  589:create_linear_node(void *ralloc_ctx, unsigned min_size)
        -:        -:  590:{
        -:        -:  591:   linear_header *node;
        -:        -:  592:
      463:      543:  593:   min_size += sizeof(linear_size_chunk);
        -:        -:  594:
      463:      543:  595:   if (likely(min_size < MIN_LINEAR_BUFSIZE))
      463:      543:  596:      min_size = MIN_LINEAR_BUFSIZE;
        -:        -:  597:
      463:      543:  598:   node = ralloc_size(ralloc_ctx, sizeof(linear_header) + min_size);
      463:      543:  599:   if (unlikely(!node))
    #####:    #####:  600:      return NULL;
        -:        -:  601:
        -:        -:  602:#ifdef DEBUG
      463:      543:  603:   node->magic = LMAGIC;
        -:        -:  604:#endif
      463:      543:  605:   node->offset = 0;
      463:      543:  606:   node->size = min_size;
      463:      543:  607:   node->ralloc_parent = ralloc_ctx;
      463:      543:  608:   node->next = NULL;
      463:      543:  609:   node->latest = node;
      463:      543:  610:   return node;
        -:        -:  611:}
        -:        -:  612:
        -:        -:  613:void *
     5245:     5485:  614:linear_alloc_child(void *parent, unsigned size)
        -:        -:  615:{
     5245:     5485:  616:   linear_header *first = LINEAR_PARENT_TO_HEADER(parent);
     5245:     5485:  617:   linear_header *latest = first->latest;
        -:        -:  618:   linear_header *new_node;
        -:        -:  619:   linear_size_chunk *ptr;
        -:        -:  620:   unsigned full_size;
        -:        -:  621:
     5245:     5485:  622:   assert(first->magic == LMAGIC);
     5245:     5485:  623:   assert(!latest->next);
        -:        -:  624:
     5245:     5485:  625:   size = ALIGN_POT(size, SUBALLOC_ALIGNMENT);
     5245:     5485:  626:   full_size = sizeof(linear_size_chunk) + size;
        -:        -:  627:
     5245:     5485:  628:   if (unlikely(latest->offset + full_size > latest->size)) {
        -:        -:  629:      /* allocate a new node */
       98:      101:  630:      new_node = create_linear_node(latest->ralloc_parent, size);
       98:      101:  631:      if (unlikely(!new_node))
    #####:    #####:  632:         return NULL;
        -:        -:  633:
       98:      101:  634:      first->latest = new_node;
       98:      101:  635:      latest->latest = new_node;
       98:      101:  636:      latest->next = new_node;
       98:      101:  637:      latest = new_node;
        -:        -:  638:   }
        -:        -:  639:
     5245:     5485:  640:   ptr = (linear_size_chunk *)((char*)&latest[1] + latest->offset);
     5245:     5485:  641:   ptr->size = size;
     5245:     5485:  642:   latest->offset += full_size;
     5245:     5485:  643:   return &ptr[1];
        -:        -:  644:}
        -:        -:  645:
        -:        -:  646:void *
      365:      442:  647:linear_alloc_parent(void *ralloc_ctx, unsigned size)
        -:        -:  648:{
        -:        -:  649:   linear_header *node;
        -:        -:  650:
      365:      442:  651:   if (unlikely(!ralloc_ctx))
    #####:    #####:  652:      return NULL;
        -:        -:  653:
      365:      442:  654:   size = ALIGN_POT(size, SUBALLOC_ALIGNMENT);
        -:        -:  655:
      365:      442:  656:   node = create_linear_node(ralloc_ctx, size);
      365:      442:  657:   if (unlikely(!node))
    #####:    #####:  658:      return NULL;
        -:        -:  659:
      365:      442:  660:   return linear_alloc_child((char*)node +
        -:        -:  661:                             sizeof(linear_header) +
        -:        -:  662:                             sizeof(linear_size_chunk), size);
        -:        -:  663:}
        -:        -:  664:
        -:        -:  665:void *
     2180:     2298:  666:linear_zalloc_child(void *parent, unsigned size)
        -:        -:  667:{
     2180:     2298:  668:   void *ptr = linear_alloc_child(parent, size);
        -:        -:  669:
     2180:     2298:  670:   if (likely(ptr))
     2180:     2298:  671:      memset(ptr, 0, size);
     2180:     2298:  672:   return ptr;
        -:        -:  673:}
        -:        -:  674:
        -:        -:  675:void *
    #####:    #####:  676:linear_zalloc_parent(void *parent, unsigned size)
        -:        -:  677:{
    #####:    #####:  678:   void *ptr = linear_alloc_parent(parent, size);
        -:        -:  679:
    #####:    #####:  680:   if (likely(ptr))
    #####:    #####:  681:      memset(ptr, 0, size);
    #####:    #####:  682:   return ptr;
        -:        -:  683:}
        -:        -:  684:
        -:        -:  685:void
    #####:    #####:  686:linear_free_parent(void *ptr)
        -:        -:  687:{
        -:        -:  688:   linear_header *node;
        -:        -:  689:
    #####:    #####:  690:   if (unlikely(!ptr))
    #####:    #####:  691:      return;
        -:        -:  692:
    #####:    #####:  693:   node = LINEAR_PARENT_TO_HEADER(ptr);
    #####:    #####:  694:   assert(node->magic == LMAGIC);
        -:        -:  695:
    #####:    #####:  696:   while (node) {
    #####:    #####:  697:      void *ptr = node;
        -:        -:  698:
    #####:    #####:  699:      node = node->next;
    #####:    #####:  700:      ralloc_free(ptr);
        -:        -:  701:   }
        -:        -:  702:}
        -:        -:  703:
        -:        -:  704:void
    #####:    #####:  705:ralloc_steal_linear_parent(void *new_ralloc_ctx, void *ptr)
        -:        -:  706:{
        -:        -:  707:   linear_header *node;
        -:        -:  708:
    #####:    #####:  709:   if (unlikely(!ptr))
    #####:    #####:  710:      return;
        -:        -:  711:
    #####:    #####:  712:   node = LINEAR_PARENT_TO_HEADER(ptr);
    #####:    #####:  713:   assert(node->magic == LMAGIC);
        -:        -:  714:
    #####:    #####:  715:   while (node) {
    #####:    #####:  716:      ralloc_steal(new_ralloc_ctx, node);
    #####:    #####:  717:      node->ralloc_parent = new_ralloc_ctx;
    #####:    #####:  718:      node = node->next;
        -:        -:  719:   }
        -:        -:  720:}
        -:        -:  721:
        -:        -:  722:void *
    #####:    #####:  723:ralloc_parent_of_linear_parent(void *ptr)
        -:        -:  724:{
    #####:    #####:  725:   linear_header *node = LINEAR_PARENT_TO_HEADER(ptr);
    #####:    #####:  726:   assert(node->magic == LMAGIC);
    #####:    #####:  727:   return node->ralloc_parent;
        -:        -:  728:}
        -:        -:  729:
        -:        -:  730:void *
    #####:    #####:  731:linear_realloc(void *parent, void *old, unsigned new_size)
        -:        -:  732:{
    #####:    #####:  733:   unsigned old_size = 0;
        -:        -:  734:   ralloc_header *new_ptr;
        -:        -:  735:
    #####:    #####:  736:   new_ptr = linear_alloc_child(parent, new_size);
        -:        -:  737:
    #####:    #####:  738:   if (unlikely(!old))
    #####:    #####:  739:      return new_ptr;
        -:        -:  740:
    #####:    #####:  741:   old_size = ((linear_size_chunk*)old)[-1].size;
        -:        -:  742:
    #####:    #####:  743:   if (likely(new_ptr && old_size))
    #####:    #####:  744:      memcpy(new_ptr, old, MIN2(old_size, new_size));
        -:        -:  745:
    #####:    #####:  746:   return new_ptr;
        -:        -:  747:}
        -:        -:  748:
        -:        -:  749:/* All code below is pretty much copied from ralloc and only the alloc
        -:        -:  750: * calls are different.
        -:        -:  751: */
        -:        -:  752:
        -:        -:  753:char *
      352:      359:  754:linear_strdup(void *parent, const char *str)
        -:        -:  755:{
        -:        -:  756:   unsigned n;
        -:        -:  757:   char *ptr;
        -:        -:  758:
      352:      359:  759:   if (unlikely(!str))
    #####:    #####:  760:      return NULL;
        -:        -:  761:
      352:      359:  762:   n = strlen(str);
      352:      359:  763:   ptr = linear_alloc_child(parent, n + 1);
      352:      359:  764:   if (unlikely(!ptr))
    #####:    #####:  765:      return NULL;
        -:        -:  766:
      352:      359:  767:   memcpy(ptr, str, n);
      352:      359:  768:   ptr[n] = '\0';
      352:      359:  769:   return ptr;
        -:        -:  770:}
        -:        -:  771:
        -:        -:  772:char *
    #####:    #####:  773:linear_asprintf(void *parent, const char *fmt, ...)
        -:        -:  774:{
        -:        -:  775:   char *ptr;
        -:        -:  776:   va_list args;
    #####:    #####:  777:   va_start(args, fmt);
    #####:    #####:  778:   ptr = linear_vasprintf(parent, fmt, args);
    #####:    #####:  779:   va_end(args);
    #####:    #####:  780:   return ptr;
        -:        -:  781:}
        -:        -:  782:
        -:        -:  783:char *
    #####:    #####:  784:linear_vasprintf(void *parent, const char *fmt, va_list args)
        -:        -:  785:{
    #####:    #####:  786:   unsigned size = printf_length(fmt, args) + 1;
        -:        -:  787:
    #####:    #####:  788:   char *ptr = linear_alloc_child(parent, size);
    #####:    #####:  789:   if (ptr != NULL)
    #####:    #####:  790:      vsnprintf(ptr, size, fmt, args);
        -:        -:  791:
    #####:    #####:  792:   return ptr;
        -:        -:  793:}
        -:        -:  794:
        -:        -:  795:bool
    #####:    #####:  796:linear_asprintf_append(void *parent, char **str, const char *fmt, ...)
        -:        -:  797:{
        -:        -:  798:   bool success;
        -:        -:  799:   va_list args;
    #####:    #####:  800:   va_start(args, fmt);
    #####:    #####:  801:   success = linear_vasprintf_append(parent, str, fmt, args);
    #####:    #####:  802:   va_end(args);
    #####:    #####:  803:   return success;
        -:        -:  804:}
        -:        -:  805:
        -:        -:  806:bool
    #####:    #####:  807:linear_vasprintf_append(void *parent, char **str, const char *fmt, va_list args)
        -:        -:  808:{
        -:        -:  809:   size_t existing_length;
    #####:    #####:  810:   assert(str != NULL);
    #####:    #####:  811:   existing_length = *str ? strlen(*str) : 0;
    #####:    #####:  812:   return linear_vasprintf_rewrite_tail(parent, str, &existing_length, fmt, args);
        -:        -:  813:}
        -:        -:  814:
        -:        -:  815:bool
    #####:    #####:  816:linear_asprintf_rewrite_tail(void *parent, char **str, size_t *start,
        -:        -:  817:                             const char *fmt, ...)
        -:        -:  818:{
        -:        -:  819:   bool success;
        -:        -:  820:   va_list args;
    #####:    #####:  821:   va_start(args, fmt);
    #####:    #####:  822:   success = linear_vasprintf_rewrite_tail(parent, str, start, fmt, args);
    #####:    #####:  823:   va_end(args);
    #####:    #####:  824:   return success;
        -:        -:  825:}
        -:        -:  826:
        -:        -:  827:bool
    #####:    #####:  828:linear_vasprintf_rewrite_tail(void *parent, char **str, size_t *start,
        -:        -:  829:                              const char *fmt, va_list args)
        -:        -:  830:{
        -:        -:  831:   size_t new_length;
        -:        -:  832:   char *ptr;
        -:        -:  833:
    #####:    #####:  834:   assert(str != NULL);
        -:        -:  835:
    #####:    #####:  836:   if (unlikely(*str == NULL)) {
    #####:    #####:  837:      *str = linear_vasprintf(parent, fmt, args);
    #####:    #####:  838:      *start = strlen(*str);
    #####:    #####:  839:      return true;
        -:        -:  840:   }
        -:        -:  841:
    #####:    #####:  842:   new_length = printf_length(fmt, args);
        -:        -:  843:
    #####:    #####:  844:   ptr = linear_realloc(parent, *str, *start + new_length + 1);
    #####:    #####:  845:   if (unlikely(ptr == NULL))
    #####:    #####:  846:      return false;
        -:        -:  847:
    #####:    #####:  848:   vsnprintf(ptr + *start, new_length + 1, fmt, args);
    #####:    #####:  849:   *str = ptr;
    #####:    #####:  850:   *start += new_length;
    #####:    #####:  851:   return true;
        -:        -:  852:}
        -:        -:  853:
        -:        -:  854:/* helper routine for strcat/strncat - n is the exact amount to copy */
        -:        -:  855:static bool
    #####:    #####:  856:linear_cat(void *parent, char **dest, const char *str, unsigned n)
        -:        -:  857:{
        -:        -:  858:   char *both;
        -:        -:  859:   unsigned existing_length;
    #####:    #####:  860:   assert(dest != NULL && *dest != NULL);
        -:        -:  861:
    #####:    #####:  862:   existing_length = strlen(*dest);
    #####:    #####:  863:   both = linear_realloc(parent, *dest, existing_length + n + 1);
    #####:    #####:  864:   if (unlikely(both == NULL))
    #####:    #####:  865:      return false;
        -:        -:  866:
    #####:    #####:  867:   memcpy(both + existing_length, str, n);
    #####:    #####:  868:   both[existing_length + n] = '\0';
        -:        -:  869:
    #####:    #####:  870:   *dest = both;
    #####:    #####:  871:   return true;
        -:        -:  872:}
        -:        -:  873:
        -:        -:  874:bool
    #####:    #####:  875:linear_strcat(void *parent, char **dest, const char *str)
        -:        -:  876:{
    #####:    #####:  877:   return linear_cat(parent, dest, str, strlen(str));
        -:        -:  878:}

src/util/register_allocate.c.gcov

        -:        -:    0:Source:register_allocate.c
        -:        -:    0:Graph:.libs/libmesautil_la-register_allocate.gcno
        -:        -:    0:Data:.libs/libmesautil_la-register_allocate.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2010 Intel Corporation
        -:        -:    3: *
        -:        -:    4: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    5: * copy of this software and associated documentation files (the "Software"),
        -:        -:    6: * to deal in the Software without restriction, including without limitation
        -:        -:    7: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    8: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:    9: * Software is furnished to do so, subject to the following conditions:
        -:        -:   10: *
        -:        -:   11: * The above copyright notice and this permission notice (including the next
        -:        -:   12: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   13: * Software.
        -:        -:   14: *
        -:        -:   15: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   16: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   17: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   18: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   19: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   20: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   21: * IN THE SOFTWARE.
        -:        -:   22: *
        -:        -:   23: * Authors:
        -:        -:   24: *    Eric Anholt <eric@anholt.net>
        -:        -:   25: *
        -:        -:   26: */
        -:        -:   27:
        -:        -:   28:/** @file register_allocate.c
        -:        -:   29: *
        -:        -:   30: * Graph-coloring register allocator.
        -:        -:   31: *
        -:        -:   32: * The basic idea of graph coloring is to make a node in a graph for
        -:        -:   33: * every thing that needs a register (color) number assigned, and make
        -:        -:   34: * edges in the graph between nodes that interfere (can't be allocated
        -:        -:   35: * to the same register at the same time).
        -:        -:   36: *
        -:        -:   37: * During the "simplify" process, any any node with fewer edges than
        -:        -:   38: * there are registers means that that edge can get assigned a
        -:        -:   39: * register regardless of what its neighbors choose, so that node is
        -:        -:   40: * pushed on a stack and removed (with its edges) from the graph.
        -:        -:   41: * That likely causes other nodes to become trivially colorable as well.
        -:        -:   42: *
        -:        -:   43: * Then during the "select" process, nodes are popped off of that
        -:        -:   44: * stack, their edges restored, and assigned a color different from
        -:        -:   45: * their neighbors.  Because they were pushed on the stack only when
        -:        -:   46: * they were trivially colorable, any color chosen won't interfere
        -:        -:   47: * with the registers to be popped later.
        -:        -:   48: *
        -:        -:   49: * The downside to most graph coloring is that real hardware often has
        -:        -:   50: * limitations, like registers that need to be allocated to a node in
        -:        -:   51: * pairs, or aligned on some boundary.  This implementation follows
        -:        -:   52: * the paper "Retargetable Graph-Coloring Register Allocation for
        -:        -:   53: * Irregular Architectures" by Johan Runeson and Sven-Olof Nyström.
        -:        -:   54: *
        -:        -:   55: * In this system, there are register classes each containing various
        -:        -:   56: * registers, and registers may interfere with other registers.  For
        -:        -:   57: * example, one might have a class of base registers, and a class of
        -:        -:   58: * aligned register pairs that would each interfere with their pair of
        -:        -:   59: * the base registers.  Each node has a register class it needs to be
        -:        -:   60: * assigned to.  Define p(B) to be the size of register class B, and
        -:        -:   61: * q(B,C) to be the number of registers in B that the worst choice
        -:        -:   62: * register in C could conflict with.  Then, this system replaces the
        -:        -:   63: * basic graph coloring test of "fewer edges from this node than there
        -:        -:   64: * are registers" with "For this node of class B, the sum of q(B,C)
        -:        -:   65: * for each neighbor node of class C is less than pB".
        -:        -:   66: *
        -:        -:   67: * A nice feature of the pq test is that q(B,C) can be computed once
        -:        -:   68: * up front and stored in a 2-dimensional array, so that the cost of
        -:        -:   69: * coloring a node is constant with the number of registers.  We do
        -:        -:   70: * this during ra_set_finalize().
        -:        -:   71: */
        -:        -:   72:
        -:        -:   73:#include <stdbool.h>
        -:        -:   74:
        -:        -:   75:#include "ralloc.h"
        -:        -:   76:#include "main/imports.h"
        -:        -:   77:#include "main/macros.h"
        -:        -:   78:#include "main/mtypes.h"
        -:        -:   79:#include "util/bitset.h"
        -:        -:   80:#include "register_allocate.h"
        -:        -:   81:
        -:        -:   82:#define NO_REG ~0U
        -:        -:   83:
        -:        -:   84:struct ra_reg {
        -:        -:   85:   BITSET_WORD *conflicts;
        -:        -:   86:   unsigned int *conflict_list;
        -:        -:   87:   unsigned int conflict_list_size;
        -:        -:   88:   unsigned int num_conflicts;
        -:        -:   89:};
        -:        -:   90:
        -:        -:   91:struct ra_regs {
        -:        -:   92:   struct ra_reg *regs;
        -:        -:   93:   unsigned int count;
        -:        -:   94:
        -:        -:   95:   struct ra_class **classes;
        -:        -:   96:   unsigned int class_count;
        -:        -:   97:
        -:        -:   98:   bool round_robin;
        -:        -:   99:};
        -:        -:  100:
        -:        -:  101:struct ra_class {
        -:        -:  102:   /**
        -:        -:  103:    * Bitset indicating which registers belong to this class.
        -:        -:  104:    *
        -:        -:  105:    * (If bit N is set, then register N belongs to this class.)
        -:        -:  106:    */
        -:        -:  107:   BITSET_WORD *regs;
        -:        -:  108:
        -:        -:  109:   /**
        -:        -:  110:    * p(B) in Runeson/Nyström paper.
        -:        -:  111:    *
        -:        -:  112:    * This is "how many regs are in the set."
        -:        -:  113:    */
        -:        -:  114:   unsigned int p;
        -:        -:  115:
        -:        -:  116:   /**
        -:        -:  117:    * q(B,C) (indexed by C, B is this register class) in
        -:        -:  118:    * Runeson/Nyström paper.  This is "how many registers of B could
        -:        -:  119:    * the worst choice register from C conflict with".
        -:        -:  120:    */
        -:        -:  121:   unsigned int *q;
        -:        -:  122:};
        -:        -:  123:
        -:        -:  124:struct ra_node {
        -:        -:  125:   /** @{
        -:        -:  126:    *
        -:        -:  127:    * List of which nodes this node interferes with.  This should be
        -:        -:  128:    * symmetric with the other node.
        -:        -:  129:    */
        -:        -:  130:   BITSET_WORD *adjacency;
        -:        -:  131:   unsigned int *adjacency_list;
        -:        -:  132:   unsigned int adjacency_list_size;
        -:        -:  133:   unsigned int adjacency_count;
        -:        -:  134:   /** @} */
        -:        -:  135:
        -:        -:  136:   unsigned int class;
        -:        -:  137:
        -:        -:  138:   /* Register, if assigned, or NO_REG. */
        -:        -:  139:   unsigned int reg;
        -:        -:  140:
        -:        -:  141:   /**
        -:        -:  142:    * Set when the node is in the trivially colorable stack.  When
        -:        -:  143:    * set, the adjacency to this node is ignored, to implement the
        -:        -:  144:    * "remove the edge from the graph" in simplification without
        -:        -:  145:    * having to actually modify the adjacency_list.
        -:        -:  146:    */
        -:        -:  147:   bool in_stack;
        -:        -:  148:
        -:        -:  149:   /**
        -:        -:  150:    * The q total, as defined in the Runeson/Nyström paper, for all the
        -:        -:  151:    * interfering nodes not in the stack.
        -:        -:  152:    */
        -:        -:  153:   unsigned int q_total;
        -:        -:  154:
        -:        -:  155:   /* For an implementation that needs register spilling, this is the
        -:        -:  156:    * approximate cost of spilling this node.
        -:        -:  157:    */
        -:        -:  158:   float spill_cost;
        -:        -:  159:};
        -:        -:  160:
        -:        -:  161:struct ra_graph {
        -:        -:  162:   struct ra_regs *regs;
        -:        -:  163:   /**
        -:        -:  164:    * the variables that need register allocation.
        -:        -:  165:    */
        -:        -:  166:   struct ra_node *nodes;
        -:        -:  167:   unsigned int count; /**< count of nodes. */
        -:        -:  168:
        -:        -:  169:   unsigned int *stack;
        -:        -:  170:   unsigned int stack_count;
        -:        -:  171:
        -:        -:  172:   /**
        -:        -:  173:    * Tracks the start of the set of optimistically-colored registers in the
        -:        -:  174:    * stack.
        -:        -:  175:    */
        -:        -:  176:   unsigned int stack_optimistic_start;
        -:        -:  177:};
        -:        -:  178:
        -:        -:  179:/**
        -:        -:  180: * Creates a set of registers for the allocator.
        -:        -:  181: *
        -:        -:  182: * mem_ctx is a ralloc context for the allocator.  The reg set may be freed
        -:        -:  183: * using ralloc_free().
        -:        -:  184: */
        -:        -:  185:struct ra_regs *
        4:        4:  186:ra_alloc_reg_set(void *mem_ctx, unsigned int count, bool need_conflict_lists)
        -:        -:  187:{
        -:        -:  188:   unsigned int i;
        -:        -:  189:   struct ra_regs *regs;
        -:        -:  190:
        4:        4:  191:   regs = rzalloc(mem_ctx, struct ra_regs);
        4:        4:  192:   regs->count = count;
        4:        4:  193:   regs->regs = rzalloc_array(regs, struct ra_reg, count);
        -:        -:  194:
     7716:     7716:  195:   for (i = 0; i < count; i++) {
     7712:     7712:  196:      regs->regs[i].conflicts = rzalloc_array(regs->regs, BITSET_WORD,
        -:        -:  197:                                              BITSET_WORDS(count));
     7712:     7712:  198:      BITSET_SET(regs->regs[i].conflicts, i);
        -:        -:  199:
     7712:     7712:  200:      if (need_conflict_lists) {
    #####:    #####:  201:         regs->regs[i].conflict_list = ralloc_array(regs->regs,
        -:        -:  202:                                                    unsigned int, 4);
    #####:    #####:  203:         regs->regs[i].conflict_list_size = 4;
    #####:    #####:  204:         regs->regs[i].conflict_list[0] = i;
        -:        -:  205:      } else {
     7712:     7712:  206:         regs->regs[i].conflict_list = NULL;
     7712:     7712:  207:         regs->regs[i].conflict_list_size = 0;
        -:        -:  208:      }
     7712:     7712:  209:      regs->regs[i].num_conflicts = 1;
        -:        -:  210:   }
        -:        -:  211:
        4:        4:  212:   return regs;
        -:        -:  213:}
        -:        -:  214:
        -:        -:  215:/**
        -:        -:  216: * The register allocator by default prefers to allocate low register numbers,
        -:        -:  217: * since it was written for hardware (gen4/5 Intel) that is limited in its
        -:        -:  218: * multithreadedness by the number of registers used in a given shader.
        -:        -:  219: *
        -:        -:  220: * However, for hardware without that restriction, densely packed register
        -:        -:  221: * allocation can put serious constraints on instruction scheduling.  This
        -:        -:  222: * function tells the allocator to rotate around the registers if possible as
        -:        -:  223: * it allocates the nodes.
        -:        -:  224: */
        -:        -:  225:void
        4:        4:  226:ra_set_allocate_round_robin(struct ra_regs *regs)
        -:        -:  227:{
        4:        4:  228:   regs->round_robin = true;
        4:        4:  229:}
        -:        -:  230:
        -:        -:  231:static void
   127360:   127360:  232:ra_add_conflict_list(struct ra_regs *regs, unsigned int r1, unsigned int r2)
        -:        -:  233:{
   127360:   127360:  234:   struct ra_reg *reg1 = ®s->regs[r1];
        -:        -:  235:
   127360:   127360:  236:   if (reg1->conflict_list) {
    #####:    #####:  237:      if (reg1->conflict_list_size == reg1->num_conflicts) {
    #####:    #####:  238:         reg1->conflict_list_size *= 2;
    #####:    #####:  239:         reg1->conflict_list = reralloc(regs->regs, reg1->conflict_list,
        -:        -:  240:                                        unsigned int, reg1->conflict_list_size);
        -:        -:  241:      }
    #####:    #####:  242:      reg1->conflict_list[reg1->num_conflicts++] = r2;
        -:        -:  243:   }
   127360:   127360:  244:   BITSET_SET(reg1->conflicts, r2);
   127360:   127360:  245:}
        -:        -:  246:
        -:        -:  247:void
    64192:    64192:  248:ra_add_reg_conflict(struct ra_regs *regs, unsigned int r1, unsigned int r2)
        -:        -:  249:{
    64192:    64192:  250:   if (!BITSET_TEST(regs->regs[r1].conflicts, r2)) {
    63680:    63680:  251:      ra_add_conflict_list(regs, r1, r2);
    63680:    63680:  252:      ra_add_conflict_list(regs, r2, r1);
        -:        -:  253:   }
    64192:    64192:  254:}
        -:        -:  255:
        -:        -:  256:/**
        -:        -:  257: * Adds a conflict between base_reg and reg, and also between reg and
        -:        -:  258: * anything that base_reg conflicts with.
        -:        -:  259: *
        -:        -:  260: * This can simplify code for setting up multiple register classes
        -:        -:  261: * which are aggregates of some base hardware registers, compared to
        -:        -:  262: * explicitly using ra_add_reg_conflict.
        -:        -:  263: */
        -:        -:  264:void
    #####:    #####:  265:ra_add_transitive_reg_conflict(struct ra_regs *regs,
        -:        -:  266:                               unsigned int base_reg, unsigned int reg)
        -:        -:  267:{
        -:        -:  268:   unsigned int i;
        -:        -:  269:
    #####:    #####:  270:   ra_add_reg_conflict(regs, reg, base_reg);
        -:        -:  271:
    #####:    #####:  272:   for (i = 0; i < regs->regs[base_reg].num_conflicts; i++) {
    #####:    #####:  273:      ra_add_reg_conflict(regs, reg, regs->regs[base_reg].conflict_list[i]);
        -:        -:  274:   }
    #####:    #####:  275:}
        -:        -:  276:
        -:        -:  277:/**
        -:        -:  278: * Makes every conflict on the given register transitive.  In other words,
        -:        -:  279: * every register that conflicts with r will now conflict with every other
        -:        -:  280: * register conflicting with r.
        -:        -:  281: *
        -:        -:  282: * This can simplify code for setting up multiple register classes
        -:        -:  283: * which are aggregates of some base hardware registers, compared to
        -:        -:  284: * explicitly using ra_add_reg_conflict.
        -:        -:  285: */
        -:        -:  286:void
      512:      512:  287:ra_make_reg_conflicts_transitive(struct ra_regs *regs, unsigned int r)
        -:        -:  288:{
      512:      512:  289:   struct ra_reg *reg = ®s->regs[r];
        -:        -:  290:   BITSET_WORD tmp;
        -:        -:  291:   int c;
        -:        -:  292:
    65216:    65216:  293:   BITSET_FOREACH_SET(c, tmp, reg->conflicts, regs->count) {
    64192:    64192:  294:      struct ra_reg *other = ®s->regs[c];
        -:        -:  295:      unsigned i;
  3979904:  3979904:  296:      for (i = 0; i < BITSET_WORDS(regs->count); i++)
  3915712:  3915712:  297:         other->conflicts[i] |= reg->conflicts[i];
        -:        -:  298:   }
      512:      512:  299:}
        -:        -:  300:
        -:        -:  301:unsigned int
       65:       65:  302:ra_alloc_reg_class(struct ra_regs *regs)
        -:        -:  303:{
        -:        -:  304:   struct ra_class *class;
        -:        -:  305:
       65:       65:  306:   regs->classes = reralloc(regs->regs, regs->classes, struct ra_class *,
        -:        -:  307:                            regs->class_count + 1);
        -:        -:  308:
       65:       65:  309:   class = rzalloc(regs, struct ra_class);
       65:       65:  310:   regs->classes[regs->class_count] = class;
        -:        -:  311:
       65:       65:  312:   class->regs = rzalloc_array(class, BITSET_WORD, BITSET_WORDS(regs->count));
        -:        -:  313:
       65:       65:  314:   return regs->class_count++;
        -:        -:  315:}
        -:        -:  316:
        -:        -:  317:void
     7776:     7776:  318:ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int r)
        -:        -:  319:{
     7776:     7776:  320:   struct ra_class *class = regs->classes[c];
        -:        -:  321:
     7776:     7776:  322:   BITSET_SET(class->regs, r);
     7776:     7776:  323:   class->p++;
     7776:     7776:  324:}
        -:        -:  325:
        -:        -:  326:/**
        -:        -:  327: * Returns true if the register belongs to the given class.
        -:        -:  328: */
        -:        -:  329:static bool
     2289:     2322:  330:reg_belongs_to_class(unsigned int r, struct ra_class *c)
        -:        -:  331:{
     2289:     2322:  332:   return BITSET_TEST(c->regs, r);
        -:        -:  333:}
        -:        -:  334:
        -:        -:  335:/**
        -:        -:  336: * Must be called after all conflicts and register classes have been
        -:        -:  337: * set up and before the register set is used for allocation.
        -:        -:  338: * To avoid costly q value computation, use the q_values paramater
        -:        -:  339: * to pass precomputed q values to this function.
        -:        -:  340: */
        -:        -:  341:void
        4:        4:  342:ra_set_finalize(struct ra_regs *regs, unsigned int **q_values)
        -:        -:  343:{
        -:        -:  344:   unsigned int b, c;
        -:        -:  345:
       69:       69:  346:   for (b = 0; b < regs->class_count; b++) {
       65:       65:  347:      regs->classes[b]->q = ralloc_array(regs, unsigned int, regs->class_count);
        -:        -:  348:   }
        -:        -:  349:
        4:        4:  350:   if (q_values) {
       69:       69:  351:      for (b = 0; b < regs->class_count; b++) {
     1122:     1122:  352:         for (c = 0; c < regs->class_count; c++) {
     1057:     1057:  353:            regs->classes[b]->q[c] = q_values[b][c];
        -:        -:  354:         }
        -:        -:  355:      }
        -:        -:  356:   } else {
        -:        -:  357:      /* Compute, for each class B and C, how many regs of B an
        -:        -:  358:       * allocation to C could conflict with.
        -:        -:  359:       */
    #####:    #####:  360:      for (b = 0; b < regs->class_count; b++) {
    #####:    #####:  361:         for (c = 0; c < regs->class_count; c++) {
        -:        -:  362:            unsigned int rc;
    #####:    #####:  363:            int max_conflicts = 0;
        -:        -:  364:
    #####:    #####:  365:            for (rc = 0; rc < regs->count; rc++) {
    #####:    #####:  366:               int conflicts = 0;
        -:        -:  367:               unsigned int i;
        -:        -:  368:
    #####:    #####:  369:               if (!reg_belongs_to_class(rc, regs->classes[c]))
    #####:    #####:  370:                  continue;
        -:        -:  371:
    #####:    #####:  372:               for (i = 0; i < regs->regs[rc].num_conflicts; i++) {
    #####:    #####:  373:                  unsigned int rb = regs->regs[rc].conflict_list[i];
    #####:    #####:  374:                  if (reg_belongs_to_class(rb, regs->classes[b]))
    #####:    #####:  375:                     conflicts++;
        -:        -:  376:               }
    #####:    #####:  377:               max_conflicts = MAX2(max_conflicts, conflicts);
        -:        -:  378:            }
    #####:    #####:  379:            regs->classes[b]->q[c] = max_conflicts;
        -:        -:  380:         }
        -:        -:  381:      }
        -:        -:  382:   }
        -:        -:  383:
     7716:     7716:  384:   for (b = 0; b < regs->count; b++) {
     7712:     7712:  385:      ralloc_free(regs->regs[b].conflict_list);
     7712:     7712:  386:      regs->regs[b].conflict_list = NULL;
        -:        -:  387:   }
        4:        4:  388:}
        -:        -:  389:
        -:        -:  390:static void
     1997:     2113:  391:ra_add_node_adjacency(struct ra_graph *g, unsigned int n1, unsigned int n2)
        -:        -:  392:{
     1997:     2113:  393:   BITSET_SET(g->nodes[n1].adjacency, n2);
        -:        -:  394:
     1997:     2113:  395:   if (n1 != n2) {
     1846:     1962:  396:      int n1_class = g->nodes[n1].class;
     1846:     1962:  397:      int n2_class = g->nodes[n2].class;
     1846:     1962:  398:      g->nodes[n1].q_total += g->regs->classes[n1_class]->q[n2_class];
        -:        -:  399:   }
        -:        -:  400:
     3994:     4226:  401:   if (g->nodes[n1].adjacency_count >=
     1997:     2113:  402:       g->nodes[n1].adjacency_list_size) {
      253:      269:  403:      g->nodes[n1].adjacency_list_size *= 2;
      253:      269:  404:      g->nodes[n1].adjacency_list = reralloc(g, g->nodes[n1].adjacency_list,
        -:        -:  405:                                             unsigned int,
        -:        -:  406:                                             g->nodes[n1].adjacency_list_size);
        -:        -:  407:   }
        -:        -:  408:
     1997:     2113:  409:   g->nodes[n1].adjacency_list[g->nodes[n1].adjacency_count] = n2;
     1997:     2113:  410:   g->nodes[n1].adjacency_count++;
     1997:     2113:  411:}
        -:        -:  412:
        -:        -:  413:struct ra_graph *
        7:        7:  414:ra_alloc_interference_graph(struct ra_regs *regs, unsigned int count)
        -:        -:  415:{
        -:        -:  416:   struct ra_graph *g;
        -:        -:  417:   unsigned int i;
        -:        -:  418:
        7:        7:  419:   g = rzalloc(NULL, struct ra_graph);
        7:        7:  420:   g->regs = regs;
        7:        7:  421:   g->nodes = rzalloc_array(g, struct ra_node, count);
        7:        7:  422:   g->count = count;
        -:        -:  423:
        7:        7:  424:   g->stack = rzalloc_array(g, unsigned int, count);
        -:        -:  425:
      158:      158:  426:   for (i = 0; i < count; i++) {
      151:      151:  427:      int bitset_count = BITSET_WORDS(count);
      151:      151:  428:      g->nodes[i].adjacency = rzalloc_array(g, BITSET_WORD, bitset_count);
        -:        -:  429:
      151:      151:  430:      g->nodes[i].adjacency_list_size = 4;
      302:      302:  431:      g->nodes[i].adjacency_list =
      151:      151:  432:         ralloc_array(g, unsigned int, g->nodes[i].adjacency_list_size);
      151:      151:  433:      g->nodes[i].adjacency_count = 0;
      151:      151:  434:      g->nodes[i].q_total = 0;
        -:        -:  435:
      151:      151:  436:      ra_add_node_adjacency(g, i, i);
      151:      151:  437:      g->nodes[i].reg = NO_REG;
        -:        -:  438:   }
        -:        -:  439:
        7:        7:  440:   return g;
        -:        -:  441:}
        -:        -:  442:
        -:        -:  443:void
      112:      112:  444:ra_set_node_class(struct ra_graph *g,
        -:        -:  445:                  unsigned int n, unsigned int class)
        -:        -:  446:{
      112:      112:  447:   g->nodes[n].class = class;
      112:      112:  448:}
        -:        -:  449:
        -:        -:  450:void
      990:     1048:  451:ra_add_node_interference(struct ra_graph *g,
        -:        -:  452:                         unsigned int n1, unsigned int n2)
        -:        -:  453:{
      990:     1048:  454:   if (!BITSET_TEST(g->nodes[n1].adjacency, n2)) {
      923:      981:  455:      ra_add_node_adjacency(g, n1, n2);
      923:      981:  456:      ra_add_node_adjacency(g, n2, n1);
        -:        -:  457:   }
      990:     1048:  458:}
        -:        -:  459:
        -:        -:  460:static bool
      112:      112:  461:pq_test(struct ra_graph *g, unsigned int n)
        -:        -:  462:{
      112:      112:  463:   int n_class = g->nodes[n].class;
        -:        -:  464:
      112:      112:  465:   return g->nodes[n].q_total < g->regs->classes[n_class]->p;
        -:        -:  466:}
        -:        -:  467:
        -:        -:  468:static void
      112:      112:  469:decrement_q(struct ra_graph *g, unsigned int n)
        -:        -:  470:{
        -:        -:  471:   unsigned int i;
      112:      112:  472:   int n_class = g->nodes[n].class;
        -:        -:  473:
     1687:     1803:  474:   for (i = 0; i < g->nodes[n].adjacency_count; i++) {
     1575:     1691:  475:      unsigned int n2 = g->nodes[n].adjacency_list[i];
     1575:     1691:  476:      unsigned int n2_class = g->nodes[n2].class;
        -:        -:  477:
     1575:     1691:  478:      if (n != n2 && !g->nodes[n2].in_stack) {
      912:      970:  479:         assert(g->nodes[n2].q_total >= g->regs->classes[n2_class]->q[n_class]);
      912:      970:  480:         g->nodes[n2].q_total -= g->regs->classes[n2_class]->q[n_class];
        -:        -:  481:      }
        -:        -:  482:   }
      112:      112:  483:}
        -:        -:  484:
        -:        -:  485:/**
        -:        -:  486: * Simplifies the interference graph by pushing all
        -:        -:  487: * trivially-colorable nodes into a stack of nodes to be colored,
        -:        -:  488: * removing them from the graph, and rinsing and repeating.
        -:        -:  489: *
        -:        -:  490: * If we encounter a case where we can't push any nodes on the stack, then
        -:        -:  491: * we optimistically choose a node and push it on the stack. We heuristically
        -:        -:  492: * push the node with the lowest total q value, since it has the fewest
        -:        -:  493: * neighbors and therefore is most likely to be allocated.
        -:        -:  494: */
        -:        -:  495:static void
        7:        7:  496:ra_simplify(struct ra_graph *g)
        -:        -:  497:{
        7:        7:  498:   bool progress = true;
        7:        7:  499:   unsigned int stack_optimistic_start = UINT_MAX;
        -:        -:  500:   int i;
        -:        -:  501:
       28:       28:  502:   while (progress) {
       14:       14:  503:      unsigned int best_optimistic_node = ~0;
       14:       14:  504:      unsigned int lowest_q_total = ~0;
        -:        -:  505:
       14:       14:  506:      progress = false;
        -:        -:  507:
      316:      316:  508:      for (i = g->count - 1; i >= 0; i--) {
      302:      302:  509:	 if (g->nodes[i].in_stack || g->nodes[i].reg != NO_REG)
      190:      190:  510:	    continue;
        -:        -:  511:
      112:      112:  512:	 if (pq_test(g, i)) {
      112:      112:  513:	    decrement_q(g, i);
      112:      112:  514:	    g->stack[g->stack_count] = i;
      112:      112:  515:	    g->stack_count++;
      112:      112:  516:	    g->nodes[i].in_stack = true;
      112:      112:  517:	    progress = true;
        -:        -:  518:	 } else {
    #####:    #####:  519:	    unsigned int new_q_total = g->nodes[i].q_total;
    #####:    #####:  520:	    if (new_q_total < lowest_q_total) {
    #####:    #####:  521:	       best_optimistic_node = i;
    #####:    #####:  522:	       lowest_q_total = new_q_total;
        -:        -:  523:	    }
        -:        -:  524:	 }
        -:        -:  525:      }
        -:        -:  526:
       14:       14:  527:      if (!progress && best_optimistic_node != ~0U) {
    #####:    #####:  528:         if (stack_optimistic_start == UINT_MAX)
    #####:    #####:  529:            stack_optimistic_start = g->stack_count;
        -:        -:  530:
    #####:    #####:  531:	 decrement_q(g, best_optimistic_node);
    #####:    #####:  532:	 g->stack[g->stack_count] = best_optimistic_node;
    #####:    #####:  533:	 g->stack_count++;
    #####:    #####:  534:	 g->nodes[best_optimistic_node].in_stack = true;
    #####:    #####:  535:	 progress = true;
        -:        -:  536:      }
        -:        -:  537:   }
        -:        -:  538:
        7:        7:  539:   g->stack_optimistic_start = stack_optimistic_start;
        7:        7:  540:}
        -:        -:  541:
        -:        -:  542:/**
        -:        -:  543: * Pops nodes from the stack back into the graph, coloring them with
        -:        -:  544: * registers as they go.
        -:        -:  545: *
        -:        -:  546: * If all nodes were trivially colorable, then this must succeed.  If
        -:        -:  547: * not (optimistic coloring), then it may return false;
        -:        -:  548: */
        -:        -:  549:static bool
        7:        7:  550:ra_select(struct ra_graph *g)
        -:        -:  551:{
        7:        7:  552:   int start_search_reg = 0;
        -:        -:  553:
      126:      126:  554:   while (g->stack_count != 0) {
        -:        -:  555:      unsigned int i;
        -:        -:  556:      unsigned int ri;
      112:      112:  557:      unsigned int r = -1;
      112:      112:  558:      int n = g->stack[g->stack_count - 1];
      112:      112:  559:      struct ra_class *c = g->regs->classes[g->nodes[n].class];
        -:        -:  560:
        -:        -:  561:      /* Find the lowest-numbered reg which is not used by a member
        -:        -:  562:       * of the graph adjacent to us.
        -:        -:  563:       */
     2289:     2322:  564:      for (ri = 0; ri < g->regs->count; ri++) {
     2289:     2322:  565:         r = (start_search_reg + ri) % g->regs->count;
     2289:     2322:  566:         if (!reg_belongs_to_class(r, c))
     2101:     2097:  567:	    continue;
        -:        -:  568:
        -:        -:  569:	 /* Check if any of our neighbors conflict with this register choice. */
     2408:     3201:  570:	 for (i = 0; i < g->nodes[n].adjacency_count; i++) {
     2296:     3089:  571:	    unsigned int n2 = g->nodes[n].adjacency_list[i];
        -:        -:  572:
     3638:     5121:  573:	    if (!g->nodes[n2].in_stack &&
     1342:     2032:  574:		BITSET_TEST(g->regs->regs[r].conflicts, g->nodes[n2].reg)) {
       76:      113:  575:	       break;
        -:        -:  576:	    }
        -:        -:  577:	 }
      188:      225:  578:	 if (i == g->nodes[n].adjacency_count)
      112:      112:  579:	    break;
        -:        -:  580:      }
        -:        -:  581:
        -:        -:  582:      /* set this to false even if we return here so that
        -:        -:  583:       * ra_get_best_spill_node() considers this node later.
        -:        -:  584:       */
      112:      112:  585:      g->nodes[n].in_stack = false;
        -:        -:  586:
      112:      112:  587:      if (ri == g->regs->count)
    #####:    #####:  588:	 return false;
        -:        -:  589:
      112:      112:  590:      g->nodes[n].reg = r;
      112:      112:  591:      g->stack_count--;
        -:        -:  592:
        -:        -:  593:      /* Rotate the starting point except for any nodes above the lowest
        -:        -:  594:       * optimistically colorable node.  The likelihood that we will succeed
        -:        -:  595:       * at allocating optimistically colorable nodes is highly dependent on
        -:        -:  596:       * the way that the previous nodes popped off the stack are laid out.
        -:        -:  597:       * The round-robin strategy increases the fragmentation of the register
        -:        -:  598:       * file and decreases the number of nearby nodes assigned to the same
        -:        -:  599:       * color, what increases the likelihood of spilling with respect to the
        -:        -:  600:       * dense packing strategy.
        -:        -:  601:       */
      224:      224:  602:      if (g->regs->round_robin &&
      112:      112:  603:          g->stack_count - 1 <= g->stack_optimistic_start)
      112:      112:  604:         start_search_reg = r + 1;
        -:        -:  605:   }
        -:        -:  606:
        7:        7:  607:   return true;
        -:        -:  608:}
        -:        -:  609:
        -:        -:  610:bool
        7:        7:  611:ra_allocate(struct ra_graph *g)
        -:        -:  612:{
        7:        7:  613:   ra_simplify(g);
        7:        7:  614:   return ra_select(g);
        -:        -:  615:}
        -:        -:  616:
        -:        -:  617:unsigned int
      112:      112:  618:ra_get_node_reg(struct ra_graph *g, unsigned int n)
        -:        -:  619:{
      112:      112:  620:   return g->nodes[n].reg;
        -:        -:  621:}
        -:        -:  622:
        -:        -:  623:/**
        -:        -:  624: * Forces a node to a specific register.  This can be used to avoid
        -:        -:  625: * creating a register class containing one node when handling data
        -:        -:  626: * that must live in a fixed location and is known to not conflict
        -:        -:  627: * with other forced register assignment (as is common with shader
        -:        -:  628: * input data).  These nodes do not end up in the stack during
        -:        -:  629: * ra_simplify(), and thus at ra_select() time it is as if they were
        -:        -:  630: * the first popped off the stack and assigned their fixed locations.
        -:        -:  631: * Nodes that use this function do not need to be assigned a register
        -:        -:  632: * class.
        -:        -:  633: *
        -:        -:  634: * Must be called before ra_simplify().
        -:        -:  635: */
        -:        -:  636:void
       39:       39:  637:ra_set_node_reg(struct ra_graph *g, unsigned int n, unsigned int reg)
        -:        -:  638:{
       39:       39:  639:   g->nodes[n].reg = reg;
       39:       39:  640:   g->nodes[n].in_stack = false;
       39:       39:  641:}
        -:        -:  642:
        -:        -:  643:static float
    #####:    #####:  644:ra_get_spill_benefit(struct ra_graph *g, unsigned int n)
        -:        -:  645:{
        -:        -:  646:   unsigned int j;
    #####:    #####:  647:   float benefit = 0;
    #####:    #####:  648:   int n_class = g->nodes[n].class;
        -:        -:  649:
        -:        -:  650:   /* Define the benefit of eliminating an interference between n, n2
        -:        -:  651:    * through spilling as q(C, B) / p(C).  This is similar to the
        -:        -:  652:    * "count number of edges" approach of traditional graph coloring,
        -:        -:  653:    * but takes classes into account.
        -:        -:  654:    */
    #####:    #####:  655:   for (j = 0; j < g->nodes[n].adjacency_count; j++) {
    #####:    #####:  656:      unsigned int n2 = g->nodes[n].adjacency_list[j];
    #####:    #####:  657:      if (n != n2) {
    #####:    #####:  658:	 unsigned int n2_class = g->nodes[n2].class;
    #####:    #####:  659:	 benefit += ((float)g->regs->classes[n_class]->q[n2_class] /
    #####:    #####:  660:		     g->regs->classes[n_class]->p);
        -:        -:  661:      }
        -:        -:  662:   }
        -:        -:  663:
    #####:    #####:  664:   return benefit;
        -:        -:  665:}
        -:        -:  666:
        -:        -:  667:/**
        -:        -:  668: * Returns a node number to be spilled according to the cost/benefit using
        -:        -:  669: * the pq test, or -1 if there are no spillable nodes.
        -:        -:  670: */
        -:        -:  671:int
    #####:    #####:  672:ra_get_best_spill_node(struct ra_graph *g)
        -:        -:  673:{
    #####:    #####:  674:   unsigned int best_node = -1;
    #####:    #####:  675:   float best_benefit = 0.0;
        -:        -:  676:   unsigned int n;
        -:        -:  677:
        -:        -:  678:   /* Consider any nodes that we colored successfully or the node we failed to
        -:        -:  679:    * color for spilling. When we failed to color a node in ra_select(), we
        -:        -:  680:    * only considered these nodes, so spilling any other ones would not result
        -:        -:  681:    * in us making progress.
        -:        -:  682:    */
    #####:    #####:  683:   for (n = 0; n < g->count; n++) {
    #####:    #####:  684:      float cost = g->nodes[n].spill_cost;
        -:        -:  685:      float benefit;
        -:        -:  686:
    #####:    #####:  687:      if (cost <= 0.0f)
    #####:    #####:  688:	 continue;
        -:        -:  689:
    #####:    #####:  690:      if (g->nodes[n].in_stack)
    #####:    #####:  691:         continue;
        -:        -:  692:
    #####:    #####:  693:      benefit = ra_get_spill_benefit(g, n);
        -:        -:  694:
    #####:    #####:  695:      if (benefit / cost > best_benefit) {
    #####:    #####:  696:	 best_benefit = benefit / cost;
    #####:    #####:  697:	 best_node = n;
        -:        -:  698:      }
        -:        -:  699:   }
        -:        -:  700:
    #####:    #####:  701:   return best_node;
        -:        -:  702:}
        -:        -:  703:
        -:        -:  704:/**
        -:        -:  705: * Only nodes with a spill cost set (cost != 0.0) will be considered
        -:        -:  706: * for register spilling.
        -:        -:  707: */
        -:        -:  708:void
    #####:    #####:  709:ra_set_node_spill_cost(struct ra_graph *g, unsigned int n, float cost)
        -:        -:  710:{
    #####:    #####:  711:   g->nodes[n].spill_cost = cost;
    #####:    #####:  712:}

src/util/set.c.gcov

        -:        -:    0:Source:set.c
        -:        -:    0:Graph:.libs/libmesautil_la-set.gcno
        -:        -:    0:Data:.libs/libmesautil_la-set.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright © 2009-2012 Intel Corporation
        -:        -:    3: * Copyright © 1988-2004 Keith Packard and Bart Massey.
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the "Software"),
        -:        -:    7: * to deal in the Software without restriction, including without limitation
        -:        -:    8: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
        -:        -:    9: * and/or sell copies of the Software, and to permit persons to whom the
        -:        -:   10: * Software is furnished to do so, subject to the following conditions:
        -:        -:   11: *
        -:        -:   12: * The above copyright notice and this permission notice (including the next
        -:        -:   13: * paragraph) shall be included in all copies or substantial portions of the
        -:        -:   14: * Software.
        -:        -:   15: *
        -:        -:   16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        -:        -:   17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        -:        -:   18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
        -:        -:   19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        -:        -:   20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
        -:        -:   21: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
        -:        -:   22: * IN THE SOFTWARE.
        -:        -:   23: *
        -:        -:   24: * Except as contained in this notice, the names of the authors
        -:        -:   25: * or their institutions shall not be used in advertising or
        -:        -:   26: * otherwise to promote the sale, use or other dealings in this
        -:        -:   27: * Software without prior written authorization from the
        -:        -:   28: * authors.
        -:        -:   29: *
        -:        -:   30: * Authors:
        -:        -:   31: *    Eric Anholt <eric@anholt.net>
        -:        -:   32: *    Keith Packard <keithp@keithp.com>
        -:        -:   33: */
        -:        -:   34:
        -:        -:   35:#include <stdlib.h>
        -:        -:   36:#include <assert.h>
        -:        -:   37:
        -:        -:   38:#include "macros.h"
        -:        -:   39:#include "ralloc.h"
        -:        -:   40:#include "set.h"
        -:        -:   41:
        -:        -:   42:/*
        -:        -:   43: * From Knuth -- a good choice for hash/rehash values is p, p-2 where
        -:        -:   44: * p and p-2 are both prime.  These tables are sized to have an extra 10%
        -:        -:   45: * free to avoid exponential performance degradation as the hash table fills
        -:        -:   46: */
        -:        -:   47:
        -:        -:   48:uint32_t deleted_key_value;
        -:        -:   49:const void *deleted_key = &deleted_key_value;
        -:        -:   50:
        -:        -:   51:static const struct {
        -:        -:   52:   uint32_t max_entries, size, rehash;
        -:        -:   53:} hash_sizes[] = {
        -:        -:   54:   { 2,            5,            3            },
        -:        -:   55:   { 4,            7,            5            },
        -:        -:   56:   { 8,            13,           11           },
        -:        -:   57:   { 16,           19,           17           },
        -:        -:   58:   { 32,           43,           41           },
        -:        -:   59:   { 64,           73,           71           },
        -:        -:   60:   { 128,          151,          149          },
        -:        -:   61:   { 256,          283,          281          },
        -:        -:   62:   { 512,          571,          569          },
        -:        -:   63:   { 1024,         1153,         1151         },
        -:        -:   64:   { 2048,         2269,         2267         },
        -:        -:   65:   { 4096,         4519,         4517         },
        -:        -:   66:   { 8192,         9013,         9011         },
        -:        -:   67:   { 16384,        18043,        18041        },
        -:        -:   68:   { 32768,        36109,        36107        },
        -:        -:   69:   { 65536,        72091,        72089        },
        -:        -:   70:   { 131072,       144409,       144407       },
        -:        -:   71:   { 262144,       288361,       288359       },
        -:        -:   72:   { 524288,       576883,       576881       },
        -:        -:   73:   { 1048576,      1153459,      1153457      },
        -:        -:   74:   { 2097152,      2307163,      2307161      },
        -:        -:   75:   { 4194304,      4613893,      4613891      },
        -:        -:   76:   { 8388608,      9227641,      9227639      },
        -:        -:   77:   { 16777216,     18455029,     18455027     },
        -:        -:   78:   { 33554432,     36911011,     36911009     },
        -:        -:   79:   { 67108864,     73819861,     73819859     },
        -:        -:   80:   { 134217728,    147639589,    147639587    },
        -:        -:   81:   { 268435456,    295279081,    295279079    },
        -:        -:   82:   { 536870912,    590559793,    590559791    },
        -:        -:   83:   { 1073741824,   1181116273,   1181116271   },
        -:        -:   84:   { 2147483648ul, 2362232233ul, 2362232231ul }
        -:        -:   85:};
        -:        -:   86:
        -:        -:   87:static int
   124984:   141452:   88:entry_is_free(struct set_entry *entry)
        -:        -:   89:{
   124984:   141452:   90:   return entry->key == NULL;
        -:        -:   91:}
        -:        -:   92:
        -:        -:   93:static int
    78258:    85852:   94:entry_is_deleted(struct set_entry *entry)
        -:        -:   95:{
    78258:    85852:   96:   return entry->key == deleted_key;
        -:        -:   97:}
        -:        -:   98:
        -:        -:   99:static int
   217423:   254417:  100:entry_is_present(struct set_entry *entry)
        -:        -:  101:{
   217423:   254417:  102:   return entry->key != NULL && entry->key != deleted_key;
        -:        -:  103:}
        -:        -:  104:
        -:        -:  105:struct set *
    55673:    61355:  106:_mesa_set_create(void *mem_ctx,
        -:        -:  107:                 uint32_t (*key_hash_function)(const void *key),
        -:        -:  108:                 bool (*key_equals_function)(const void *a,
        -:        -:  109:                                             const void *b))
        -:        -:  110:{
        -:        -:  111:   struct set *ht;
        -:        -:  112:
    55673:    61355:  113:   ht = ralloc(mem_ctx, struct set);
    55673:    61355:  114:   if (ht == NULL)
    #####:    #####:  115:      return NULL;
        -:        -:  116:
    55673:    61355:  117:   ht->size_index = 0;
    55673:    61355:  118:   ht->size = hash_sizes[ht->size_index].size;
    55673:    61355:  119:   ht->rehash = hash_sizes[ht->size_index].rehash;
    55673:    61355:  120:   ht->max_entries = hash_sizes[ht->size_index].max_entries;
    55673:    61355:  121:   ht->key_hash_function = key_hash_function;
    55673:    61355:  122:   ht->key_equals_function = key_equals_function;
    55673:    61355:  123:   ht->table = rzalloc_array(ht, struct set_entry, ht->size);
    55673:    61355:  124:   ht->entries = 0;
    55673:    61355:  125:   ht->deleted_entries = 0;
        -:        -:  126:
    55673:    61355:  127:   if (ht->table == NULL) {
    #####:    #####:  128:      ralloc_free(ht);
    #####:    #####:  129:      return NULL;
        -:        -:  130:   }
        -:        -:  131:
    55673:    61355:  132:   return ht;
        -:        -:  133:}
        -:        -:  134:
        -:        -:  135:/**
        -:        -:  136: * Frees the given set.
        -:        -:  137: *
        -:        -:  138: * If delete_function is passed, it gets called on each entry present before
        -:        -:  139: * freeing.
        -:        -:  140: */
        -:        -:  141:void
      467:      779:  142:_mesa_set_destroy(struct set *ht, void (*delete_function)(struct set_entry *entry))
        -:        -:  143:{
      467:      779:  144:   if (!ht)
    #####:    #####:  145:      return;
        -:        -:  146:
      467:      779:  147:   if (delete_function) {
        -:        -:  148:      struct set_entry *entry;
        -:        -:  149:
    #####:    #####:  150:      set_foreach (ht, entry) {
    #####:    #####:  151:         delete_function(entry);
        -:        -:  152:      }
        -:        -:  153:   }
      467:      779:  154:   ralloc_free(ht->table);
      467:      779:  155:   ralloc_free(ht);
        -:        -:  156:}
        -:        -:  157:
        -:        -:  158:/**
        -:        -:  159: * Finds a set entry with the given key and hash of that key.
        -:        -:  160: *
        -:        -:  161: * Returns NULL if no entry is found.
        -:        -:  162: */
        -:        -:  163:static struct set_entry *
    52090:    60833:  164:set_search(const struct set *ht, uint32_t hash, const void *key)
        -:        -:  165:{
        -:        -:  166:   uint32_t hash_address;
        -:        -:  167:
    52090:    60833:  168:   hash_address = hash % ht->size;
        -:        -:  169:   do {
        -:        -:  170:      uint32_t double_hash;
        -:        -:  171:
    62329:    72339:  172:      struct set_entry *entry = ht->table + hash_address;
        -:        -:  173:
    62329:    72339:  174:      if (entry_is_free(entry)) {
     2239:     2386:  175:         return NULL;
    60090:    69953:  176:      } else if (entry_is_present(entry) && entry->hash == hash) {
    49930:    58519:  177:         if (ht->key_equals_function(key, entry->key)) {
    49851:    58447:  178:            return entry;
        -:        -:  179:         }
        -:        -:  180:      }
        -:        -:  181:
    10239:    11506:  182:      double_hash = 1 + hash % ht->rehash;
        -:        -:  183:
    10239:    11506:  184:      hash_address = (hash_address + double_hash) % ht->size;
    10239:    11506:  185:   } while (hash_address != hash % ht->size);
        -:        -:  186:
    #####:    #####:  187:   return NULL;
        -:        -:  188:}
        -:        -:  189:
        -:        -:  190:struct set_entry *
    52090:    60833:  191:_mesa_set_search(const struct set *set, const void *key)
        -:        -:  192:{
    52090:    60833:  193:   assert(set->key_hash_function);
    52090:    60833:  194:   return set_search(set, set->key_hash_function(key), key);
        -:        -:  195:}
        -:        -:  196:
        -:        -:  197:struct set_entry *
    #####:    #####:  198:_mesa_set_search_pre_hashed(const struct set *set, uint32_t hash,
        -:        -:  199:                            const void *key)
        -:        -:  200:{
    #####:    #####:  201:   assert(set->key_hash_function == NULL ||
        -:        -:  202:          hash == set->key_hash_function(key));
    #####:    #####:  203:   return set_search(set, hash, key);
        -:        -:  204:}
        -:        -:  205:
        -:        -:  206:static struct set_entry *
        -:        -:  207:set_add(struct set *ht, uint32_t hash, const void *key);
        -:        -:  208:
        -:        -:  209:static void
     5575:     5892:  210:set_rehash(struct set *ht, unsigned new_size_index)
        -:        -:  211:{
        -:        -:  212:   struct set old_ht;
        -:        -:  213:   struct set_entry *table, *entry;
        -:        -:  214:
     5575:     5892:  215:   if (new_size_index >= ARRAY_SIZE(hash_sizes))
    #####:    #####:  216:      return;
        -:        -:  217:
     5575:     5892:  218:   table = rzalloc_array(ht, struct set_entry,
        -:        -:  219:                         hash_sizes[new_size_index].size);
     5575:     5892:  220:   if (table == NULL)
    #####:    #####:  221:      return;
        -:        -:  222:
     5575:     5892:  223:   old_ht = *ht;
        -:        -:  224:
     5575:     5892:  225:   ht->table = table;
     5575:     5892:  226:   ht->size_index = new_size_index;
     5575:     5892:  227:   ht->size = hash_sizes[ht->size_index].size;
     5575:     5892:  228:   ht->rehash = hash_sizes[ht->size_index].rehash;
     5575:     5892:  229:   ht->max_entries = hash_sizes[ht->size_index].max_entries;
     5575:     5892:  230:   ht->entries = 0;
     5575:     5892:  231:   ht->deleted_entries = 0;
        -:        -:  232:
    47331:    50148:  233:   for (entry = old_ht.table;
    41756:    44256:  234:        entry != old_ht.table + old_ht.size;
    36181:    38364:  235:        entry++) {
    36181:    38364:  236:      if (entry_is_present(entry)) {
    18281:    19310:  237:         set_add(ht, entry->hash, entry->key);
        -:        -:  238:      }
        -:        -:  239:   }
        -:        -:  240:
     5575:     5892:  241:   ralloc_free(old_ht.table);
        -:        -:  242:}
        -:        -:  243:
        -:        -:  244:/**
        -:        -:  245: * Inserts the key with the given hash into the table.
        -:        -:  246: *
        -:        -:  247: * Note that insertion may rearrange the table on a resize or rehash,
        -:        -:  248: * so previously found hash_entries are no longer valid after this function.
        -:        -:  249: */
        -:        -:  250:static struct set_entry *
    63104:    69590:  251:set_add(struct set *ht, uint32_t hash, const void *key)
        -:        -:  252:{
        -:        -:  253:   uint32_t hash_address;
    63104:    69590:  254:   struct set_entry *available_entry = NULL;
        -:        -:  255:
    63104:    69590:  256:   if (ht->entries >= ht->max_entries) {
     5453:     5748:  257:      set_rehash(ht, ht->size_index + 1);
    57651:    63842:  258:   } else if (ht->deleted_entries + ht->entries >= ht->max_entries) {
      122:      144:  259:      set_rehash(ht, ht->size_index);
        -:        -:  260:   }
        -:        -:  261:
    63104:    69590:  262:   hash_address = hash % ht->size;
        -:        -:  263:   do {
    78258:    85852:  264:      struct set_entry *entry = ht->table + hash_address;
        -:        -:  265:      uint32_t double_hash;
        -:        -:  266:
    78258:    85852:  267:      if (!entry_is_present(entry)) {
        -:        -:  268:         /* Stash the first available entry we find */
    62655:    69113:  269:         if (available_entry == NULL)
    62416:    68832:  270:            available_entry = entry;
    62655:    69113:  271:         if (entry_is_free(entry))
    62416:    68832:  272:            break;
        -:        -:  273:      }
        -:        -:  274:
        -:        -:  275:      /* Implement replacement when another insert happens
        -:        -:  276:       * with a matching key.  This is a relatively common
        -:        -:  277:       * feature of hash tables, with the alternative
        -:        -:  278:       * generally being "insert the new value as well, and
        -:        -:  279:       * return it first when the key is searched for".
        -:        -:  280:       *
        -:        -:  281:       * Note that the hash table doesn't have a delete callback.
        -:        -:  282:       * If freeing of old keys is required to avoid memory leaks,
        -:        -:  283:       * perform a search before inserting.
        -:        -:  284:       */
    31445:    33759:  285:      if (!entry_is_deleted(entry) &&
    16369:    17577:  286:          entry->hash == hash &&
      766:      838:  287:          ht->key_equals_function(key, entry->key)) {
      688:      758:  288:         entry->key = key;
      688:      758:  289:         return entry;
        -:        -:  290:      }
        -:        -:  291:
    15154:    16262:  292:      double_hash = 1 + hash % ht->rehash;
        -:        -:  293:
    15154:    16262:  294:      hash_address = (hash_address + double_hash) % ht->size;
    15154:    16262:  295:   } while (hash_address != hash % ht->size);
        -:        -:  296:
    62416:    68832:  297:   if (available_entry) {
    62416:    68832:  298:      if (entry_is_deleted(available_entry))
      178:      196:  299:         ht->deleted_entries--;
    62416:    68832:  300:      available_entry->hash = hash;
    62416:    68832:  301:      available_entry->key = key;
    62416:    68832:  302:      ht->entries++;
    62416:    68832:  303:      return available_entry;
        -:        -:  304:   }
        -:        -:  305:
        -:        -:  306:   /* We could hit here if a required resize failed. An unchecked-malloc
        -:        -:  307:    * application could ignore this result.
        -:        -:  308:    */
    #####:    #####:  309:   return NULL;
        -:        -:  310:}
        -:        -:  311:
        -:        -:  312:struct set_entry *
    44823:    50280:  313:_mesa_set_add(struct set *set, const void *key)
        -:        -:  314:{
    44823:    50280:  315:   assert(set->key_hash_function);
    44823:    50280:  316:   return set_add(set, set->key_hash_function(key), key);
        -:        -:  317:}
        -:        -:  318:
        -:        -:  319:struct set_entry *
    #####:    #####:  320:_mesa_set_add_pre_hashed(struct set *set, uint32_t hash, const void *key)
        -:        -:  321:{
    #####:    #####:  322:   assert(set->key_hash_function == NULL ||
        -:        -:  323:          hash == set->key_hash_function(key));
    #####:    #####:  324:   return set_add(set, hash, key);
        -:        -:  325:}
        -:        -:  326:
        -:        -:  327:/**
        -:        -:  328: * This function deletes the given hash table entry.
        -:        -:  329: *
        -:        -:  330: * Note that deletion doesn't otherwise modify the table, so an iteration over
        -:        -:  331: * the table deleting entries is safe.
        -:        -:  332: */
        -:        -:  333:void
    40326:    45370:  334:_mesa_set_remove(struct set *ht, struct set_entry *entry)
        -:        -:  335:{
    40326:    45370:  336:   if (!entry)
    #####:    #####:  337:      return;
        -:        -:  338:
    40326:    45370:  339:   entry->key = deleted_key;
    40326:    45370:  340:   ht->entries--;
    40326:    45370:  341:   ht->deleted_entries++;
        -:        -:  342:}
        -:        -:  343:
        -:        -:  344:/**
        -:        -:  345: * This function is an iterator over the hash table.
        -:        -:  346: *
        -:        -:  347: * Pass in NULL for the first entry, as in the start of a for loop.  Note that
        -:        -:  348: * an iteration over the table is O(table_size) not O(entries).
        -:        -:  349: */
        -:        -:  350:struct set_entry *
    18477:    26067:  351:_mesa_set_next_entry(const struct set *ht, struct set_entry *entry)
        -:        -:  352:{
    18477:    26067:  353:   if (entry == NULL)
     8438:    11910:  354:      entry = ht->table;
        -:        -:  355:   else
    10039:    14157:  356:      entry = entry + 1;
        -:        -:  357:
    51314:    72140:  358:   for (; entry != ht->table + ht->size; entry++) {
    42894:    60248:  359:      if (entry_is_present(entry)) {
    10057:    14175:  360:         return entry;
        -:        -:  361:      }
        -:        -:  362:   }
        -:        -:  363:
     8420:    11892:  364:   return NULL;
        -:        -:  365:}
        -:        -:  366:
        -:        -:  367:struct set_entry *
    #####:    #####:  368:_mesa_set_random_entry(struct set *ht,
        -:        -:  369:                       int (*predicate)(struct set_entry *entry))
        -:        -:  370:{
        -:        -:  371:   struct set_entry *entry;
    #####:    #####:  372:   uint32_t i = rand() % ht->size;
        -:        -:  373:
    #####:    #####:  374:   if (ht->entries == 0)
    #####:    #####:  375:      return NULL;
        -:        -:  376:
    #####:    #####:  377:   for (entry = ht->table + i; entry != ht->table + ht->size; entry++) {
    #####:    #####:  378:      if (entry_is_present(entry) &&
    #####:    #####:  379:          (!predicate || predicate(entry))) {
    #####:    #####:  380:         return entry;
        -:        -:  381:      }
        -:        -:  382:   }
        -:        -:  383:
    #####:    #####:  384:   for (entry = ht->table; entry != ht->table + i; entry++) {
    #####:    #####:  385:      if (entry_is_present(entry) &&
    #####:    #####:  386:          (!predicate || predicate(entry))) {
    #####:    #####:  387:         return entry;
        -:        -:  388:      }
        -:        -:  389:   }
        -:        -:  390:
    #####:    #####:  391:   return NULL;
        -:        -:  392:}

src/util/strtod.c.gcov

        -:        -:    0:Source:strtod.c
        -:        -:    0:Graph:.libs/libmesautil_la-strtod.gcno
        -:        -:    0:Data:.libs/libmesautil_la-strtod.gcda
        -:        -:    0:Runs:1
        -:        -:    0:Programs:1
        -:        -:    1:/*
        -:        -:    2: * Copyright 2010 VMware, Inc.
        -:        -:    3: * All Rights Reserved.
        -:        -:    4: *
        -:        -:    5: * Permission is hereby granted, free of charge, to any person obtaining a
        -:        -:    6: * copy of this software and associated documentation files (the
        -:        -:    7: * "Software"), to deal in the Software without restriction, including
        -:        -:    8: * without limitation the rights to use, copy, modify, merge, publish,
        -:        -:    9: * distribute, sub license, and/or sell copies of the Software, and to
        -:        -:   10: * permit persons to whom the Software is furnished to do so, subject to
        -:        -:   11: * the following conditions:
        -:        -:   12: *
        -:        -:   13: * The above copyright notice and this permission notice (including the
        -:        -:   14: * next paragraph) shall be included in all copies or substantial portions
        -:        -:   15: * of the Software.
        -:        -:   16: *
        -:        -:   17: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
        -:        -:   18: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        -:        -:   19: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
        -:        -:   20: * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
        -:        -:   21: * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        -:        -:   22: * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
        -:        -:   23: * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        -:        -:   24: */
        -:        -:   25:
        -:        -:   26:
        -:        -:   27:#include <stdlib.h>
        -:        -:   28:
        -:        -:   29:#ifdef _GNU_SOURCE
        -:        -:   30:#include <locale.h>
        -:        -:   31:#ifdef HAVE_XLOCALE_H
        -:        -:   32:#include <xlocale.h>
        -:        -:   33:static locale_t loc;
        -:        -:   34:#endif
        -:        -:   35:#endif
        -:        -:   36:
        -:        -:   37:#include "strtod.h"
        -:        -:   38:
        -:        -:   39:
        -:        -:   40:void
        1:        1:   41:_mesa_locale_init(void)
        -:        -:   42:{
        -:        -:   43:#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
        1:        1:   44:   loc = newlocale(LC_CTYPE_MASK, "C", NULL);
        -:        -:   45:#endif
        1:        1:   46:}
        -:        -:   47:
        -:        -:   48:void
        1:        1:   49:_mesa_locale_fini(void)
        -:        -:   50:{
        -:        -:   51:#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
        1:        1:   52:   freelocale(loc);
        -:        -:   53:#endif
        1:        1:   54:}
        -:        -:   55:
        -:        -:   56:/**
        -:        -:   57: * Wrapper around strtod which uses the "C" locale so the decimal
        -:        -:   58: * point is always '.'
        -:        -:   59: */
        -:        -:   60:double
    #####:    #####:   61:_mesa_strtod(const char *s, char **end)
        -:        -:   62:{
        -:        -:   63:#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
    #####:    #####:   64:   return strtod_l(s, end, loc);
        -:        -:   65:#else
        -:        -:   66:   return strtod(s, end);
        -:        -:   67:#endif
        -:        -:   68:}
        -:        -:   69:
        -:        -:   70:
        -:        -:   71:/**
        -:        -:   72: * Wrapper around strtof which uses the "C" locale so the decimal
        -:        -:   73: * point is always '.'
        -:        -:   74: */
        -:        -:   75:float
        2:        3:   76:_mesa_strtof(const char *s, char **end)
        -:        -:   77:{
        -:        -:   78:#if defined(_GNU_SOURCE) && defined(HAVE_XLOCALE_H)
        2:        3:   79:   return strtof_l(s, end, loc);
        -:        -:   80:#elif defined(HAVE_STRTOF)
        -:        -:   81:   return strtof(s, end);
        -:        -:   82:#else
        -:        -:   83:   return (float) strtod(s, end);
        -:        -:   84:#endif
        -:        -:   85:}